• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2023 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16import ts from 'typescript';
17import { ApiInfo, MethodInfo, ApiType } from '../parser/ApiInfoDefination';
18import { Comment } from '../parser/Comment';
19import { NumberConstant } from '../../utils/Constant';
20export class BasicDiffInfo {
21  private static EMPTY = '';
22  //apiType
23  apiType: string = BasicDiffInfo.EMPTY;
24  statusCode: ApiStatusCode = ApiStatusCode.DEFAULT;
25  // parentModuleName: string = 'global';
26  //旧数据
27  oldApiDefinedText: string = BasicDiffInfo.EMPTY;
28  //新数据
29  newApiDefinedText: string = BasicDiffInfo.EMPTY;
30  //旧apiName
31  oldApiName: string = BasicDiffInfo.EMPTY;
32  //新apiName
33  newApiName: string = BasicDiffInfo.EMPTY;
34  //旧dts文件名
35  oldDtsName: string = BasicDiffInfo.EMPTY;
36  //新dts文件名
37  newDtsName: string = BasicDiffInfo.EMPTY;
38  //diff节点类型
39  diffType: ApiDiffType = ApiDiffType.DEFAULT;
40  //diff节点类型描述
41  diffMessage: string = '';
42  // 获取json的url
43  changeLogUrl: string = '';
44  // json中的数据
45  changeLogs: string[] = [];
46  //是否兼容
47  isCompatible: boolean = true;
48  //层次关系
49  oldHierarchicalRelations: string[] = [];
50  //层次关系
51  newHierarchicalRelations: string[] = [];
52  // api所在的位置信息
53  oldPos: ts.LineAndCharacter = { line: -1, character: -1 };
54  // api所在的位置信息
55  newPos: ts.LineAndCharacter = { line: -1, character: -1 };
56  oldDescription: string = '';
57  newDescription: string = '';
58  //syscap中用于区分子系统的字段
59  oldSyscapField: string = '';
60  newSyscapField: string = '';
61  //kit信息
62  oldKitInfo: string = '';
63  newKitInfo: string = '';
64  //是否为系统API
65  isSystemapi: boolean = false;
66  //是否为同名函数的变更
67  isSameNameFunction: boolean = false;
68
69  setApiType(apiType: string): BasicDiffInfo {
70    if (apiType) {
71      this.apiType = apiType;
72    } else {
73      this.apiType = BasicDiffInfo.EMPTY;
74    }
75    return this;
76  }
77
78  getApiType(): string {
79    return this.apiType;
80  }
81
82  getStatusCode(): ApiStatusCode {
83    return this.statusCode;
84  }
85
86  setStatusCode(statusCode: ApiStatusCode): BasicDiffInfo {
87    this.statusCode = statusCode;
88    return this;
89  }
90
91  setOldApiDefinedText(oldApiDefinedText: string): BasicDiffInfo {
92    this.oldApiDefinedText = oldApiDefinedText;
93    return this;
94  }
95
96  getOldApiDefinedText(): string {
97    return this.oldApiDefinedText;
98  }
99
100  setNewApiDefinedText(newApiDefinedText: string): BasicDiffInfo {
101    this.newApiDefinedText = newApiDefinedText;
102    return this;
103  }
104
105  getNewApiDefinedText(): string {
106    return this.newApiDefinedText;
107  }
108
109  setOldApiName(oldApiName: string): BasicDiffInfo {
110    this.oldApiName = oldApiName;
111    return this;
112  }
113
114  getOldApiName(): string {
115    return this.oldApiName;
116  }
117
118  setNewApiName(newApiName: string): BasicDiffInfo {
119    this.newApiName = newApiName;
120    return this;
121  }
122
123  getNewApiName(): string {
124    return this.newApiName;
125  }
126
127  setOldDtsName(oldDtsName: string): BasicDiffInfo {
128    this.oldDtsName = oldDtsName;
129    return this;
130  }
131
132  getOldDtsName(): string {
133    return this.oldDtsName;
134  }
135
136  setNewDtsName(newDtsName: string): BasicDiffInfo {
137    this.newDtsName = newDtsName;
138    return this;
139  }
140
141  getNewDtsName(): string {
142    return this.newDtsName;
143  }
144
145  setDiffType(diffType: ApiDiffType): BasicDiffInfo {
146    this.diffType = diffType;
147    return this;
148  }
149
150  getDiffType(): ApiDiffType {
151    return this.diffType;
152  }
153
154  setDiffMessage(diffMessage: string): BasicDiffInfo {
155    this.diffMessage = diffMessage;
156    return this;
157  }
158
159  getDiffMessage(): string {
160    return this.diffMessage;
161  }
162
163  setChangeLogUrl(changeLogUrl: string): BasicDiffInfo {
164    this.changeLogUrl = changeLogUrl;
165    return this;
166  }
167
168  getChangeLogUrl(): string {
169    return this.changeLogUrl;
170  }
171
172  addChangeLogs(changeLogs: string): BasicDiffInfo {
173    this.changeLogs.push(changeLogs);
174    return this;
175  }
176
177  getChangeLogs(): string[] {
178    return this.changeLogs;
179  }
180
181  setIsCompatible(isCompatible: boolean): BasicDiffInfo {
182    this.isCompatible = isCompatible;
183    return this;
184  }
185
186  getIsCompatible(): boolean {
187    return this.isCompatible;
188  }
189
190  setOldHierarchicalRelations(oldHierarchicalRelations: string[]): BasicDiffInfo {
191    this.oldHierarchicalRelations = oldHierarchicalRelations;
192    return this;
193  }
194
195  getOldHierarchicalRelations(): string[] {
196    return this.oldHierarchicalRelations;
197  }
198
199  setNewHierarchicalRelations(newHierarchicalRelations: string[]): BasicDiffInfo {
200    this.newHierarchicalRelations = newHierarchicalRelations;
201    return this;
202  }
203
204  getNewHierarchicalRelations(): string[] {
205    return this.newHierarchicalRelations;
206  }
207
208  setOldPos(oldPos: ts.LineAndCharacter): BasicDiffInfo {
209    this.oldPos = oldPos;
210    return this;
211  }
212
213  getOldPos(): ts.LineAndCharacter {
214    return this.oldPos;
215  }
216
217  setNewPos(newPos: ts.LineAndCharacter): BasicDiffInfo {
218    this.newPos = newPos;
219    return this;
220  }
221
222  getNewPos(): ts.LineAndCharacter {
223    return this.newPos;
224  }
225
226  getOldDescription(): string {
227    return this.oldDescription;
228  }
229
230  setOldDescription(oldDescription: string): BasicDiffInfo {
231    this.oldDescription = oldDescription;
232    return this;
233  }
234
235  getNewDescription(): string {
236    return this.newDescription;
237  }
238
239  setNewDescription(newDescription: string): BasicDiffInfo {
240    this.newDescription = newDescription;
241    return this;
242  }
243
244  getOldApiInfo(): string {
245    return '';
246  }
247
248  getParentModuleName(hierarchicalRelations: string[]): string {
249    let parentModuleName: string = 'global';
250    if (hierarchicalRelations.length > NumberConstant.RELATION_LENGTH) {
251      parentModuleName = hierarchicalRelations[hierarchicalRelations.length - NumberConstant.RELATION_LENGTH];
252    }
253    return parentModuleName;
254  }
255
256  setOldSyscapField(syscapField: string): BasicDiffInfo {
257    this.oldSyscapField = syscapField;
258    return this;
259  }
260
261  getOldSyscapField(): string {
262    return this.oldSyscapField;
263  }
264
265  setNewSyscapField(syscapField: string): BasicDiffInfo {
266    this.newSyscapField = syscapField;
267    return this;
268  }
269
270  getNewSyscapField(): string {
271    return this.newSyscapField;
272  }
273
274  setOldKitInfo(kitInfo: string): BasicDiffInfo {
275    this.oldKitInfo = kitInfo;
276    return this;
277  }
278
279  getOldKitInfo(): string {
280    return this.oldKitInfo;
281  }
282
283  setNewKitInfo(kitInfo: string): BasicDiffInfo {
284    this.newKitInfo = kitInfo;
285    return this;
286  }
287
288  getNewKitInfo(): string {
289    return this.newKitInfo;
290  }
291
292  setIsSystemapi(isSystemapi: boolean | undefined): BasicDiffInfo {
293    if (isSystemapi) {
294      this.isSystemapi = isSystemapi;
295    }
296    return this;
297  }
298
299  getIsSystemapi(): boolean {
300    return this.isSystemapi;
301  }
302
303  setIsSameNameFunction(isSameNameFunction: boolean): BasicDiffInfo {
304    this.isSameNameFunction = isSameNameFunction;
305    return this;
306  }
307
308  getIsSameNameFunction(): boolean {
309    return this.isSameNameFunction;
310  }
311}
312
313export class DiffTypeInfo {
314  private diffType: ApiDiffType = ApiDiffType.DEFAULT; //diff节点类型
315  private statusCode: ApiStatusCode = ApiStatusCode.DEFAULT;
316  private oldMessage: string = ''; //旧版本信息
317  private newMessage: string = ''; //新版本信息
318
319  constructor(statusCode?: ApiStatusCode, diffType?: ApiDiffType, oldMessage?: string, newMessage?: string) {
320    if (statusCode !== undefined) {
321      this.setStatusCode(statusCode);
322    }
323    if (diffType) {
324      this.setDiffType(diffType);
325    }
326    if (oldMessage) {
327      this.setOldMessage(oldMessage);
328    }
329    if (newMessage) {
330      this.setNewMessage(newMessage);
331    }
332  }
333
334  getStatusCode(): ApiStatusCode {
335    return this.statusCode;
336  }
337
338  setStatusCode(statusCode: ApiStatusCode): DiffTypeInfo {
339    this.statusCode = statusCode;
340    return this;
341  }
342
343  getDiffType(): ApiDiffType {
344    return this.diffType;
345  }
346
347  setDiffType(diffType: ApiDiffType): DiffTypeInfo {
348    this.diffType = diffType;
349    return this;
350  }
351
352  getOldMessage(): string {
353    return this.oldMessage;
354  }
355  setOldMessage(oldMessage: string): DiffTypeInfo {
356    this.oldMessage = oldMessage;
357    return this;
358  }
359
360  getNewMessage(): string {
361    return this.newMessage;
362  }
363  setNewMessage(newMessage: string): DiffTypeInfo {
364    this.newMessage = newMessage;
365    return this;
366  }
367}
368
369export class DiffNumberInfo {
370  apiName: string = '';
371  kitName: string = '';
372  subsystem: string = '';
373  apiType: string = '';
374  allDiffType: string[] = [];
375  allChangeType: string[] = [];
376  compatibleInfo: object = {};
377  oldDiffMessage: string[] = [];
378  newDiffMessage: string[] = [];
379  allCompatible: boolean[] = [];
380  diffTypeNumber: number = 0;
381  isApi: boolean = true;
382  apiRelation: string = '';
383  isSystemapi: boolean = false;
384  isSameNameFunction: boolean = false;
385
386  setApiName(apiName: string): DiffNumberInfo {
387    this.apiName = apiName;
388    return this;
389  }
390
391  getApiName(): string {
392    return this.apiName;
393  }
394
395  setKitName(kitName: string | undefined): DiffNumberInfo {
396    if (!kitName) {
397      return this;
398    }
399    this.kitName = kitName;
400    return this;
401  }
402
403  getKitName(): string {
404    return this.kitName;
405  }
406
407  setSubsystem(subsystem: string | undefined): DiffNumberInfo {
408    if (!subsystem) {
409      return this;
410    }
411    this.subsystem = subsystem;
412    return this;
413  }
414
415  getSubsystem(): string {
416    return this.subsystem;
417  }
418
419  setApiType(apiType: string): DiffNumberInfo {
420    this.apiType = apiType;
421    return this;
422  }
423
424  getApiType(): string {
425    return this.apiType;
426  }
427
428  setAllDiffType(diffType: string): DiffNumberInfo {
429    this.allDiffType.push(diffType);
430    return this;
431  }
432
433  getAllDiffType(): string[] {
434    return this.allDiffType;
435  }
436
437  setOldDiffMessage(oldDiffMessage: string): DiffNumberInfo {
438    if (oldDiffMessage === '-1' || oldDiffMessage === '' ) {
439      this.oldDiffMessage.push('NA');
440      return this;
441    }
442    this.oldDiffMessage.push(oldDiffMessage);
443    return this;
444  }
445
446  getOldDiffMessage(): string[] {
447    return this.oldDiffMessage;
448  }
449
450  setNewDiffMessage(newDiffMessage: string): DiffNumberInfo {
451    if (newDiffMessage === '-1' || newDiffMessage === '') {
452      this.newDiffMessage.push('NA');
453      return this;
454    }
455    this.newDiffMessage.push(newDiffMessage);
456    return this;
457  }
458
459  getNewDiffMessage(): string[] {
460    return this.newDiffMessage;
461  }
462
463  setAllChangeType(changeType: string | undefined): DiffNumberInfo {
464    if (!changeType) {
465      return this;
466    }
467    this.allChangeType.push(changeType);
468    return this;
469  }
470
471  getAllChangeType(): string[] {
472    return this.allChangeType;
473  }
474
475  setAllCompatible(isCompatible: boolean): DiffNumberInfo {
476    this.allCompatible.push(isCompatible);
477    return this;
478  }
479
480  getAllCompatible(): boolean[] {
481    return this.allCompatible;
482  }
483  setDiffTypeNumber(diffTypeNumber: number): DiffNumberInfo {
484    this.diffTypeNumber = diffTypeNumber;
485    return this;
486  }
487
488  getDiffTypeNumber(): number {
489    return this.diffTypeNumber;
490  }
491
492  setIsApi(isApi: boolean): DiffNumberInfo {
493    this.isApi = isApi;
494    return this;
495  }
496
497  getIsApi(): boolean {
498    return this.isApi;
499  }
500
501  setApiRelation(apiRelation: string): DiffNumberInfo {
502    this.apiRelation = apiRelation;
503    return this;
504  }
505
506  getApiRelation(): string {
507    return this.apiRelation;
508  }
509
510  setIsSystemapi(isSystemapi: boolean): DiffNumberInfo {
511    this.isSystemapi = isSystemapi;
512    return this;
513  }
514
515  getIsSystemapi(): boolean {
516    return this.isSystemapi;
517  }
518
519  setIsSameNameFunction(isSameNameFunction: boolean): DiffNumberInfo {
520    this.isSameNameFunction = isSameNameFunction;
521    return this;
522  }
523
524  getIsSameNameFunction(): boolean {
525    return this.isSameNameFunction;
526  }
527}
528
529export interface JsDocDiffProcessor {
530  (oldJsDocInfo: Comment.JsDocInfo | undefined, newJsDocInfo: Comment.JsDocInfo | undefined, isAllDeprecated?: boolean,
531    isAllSheet?: boolean): DiffTypeInfo | undefined;
532}
533
534export interface ApiSceneDiffProcessor {
535  (oldApiInfo: ApiInfo, newApiInfo: ApiInfo): DiffTypeInfo | undefined;
536}
537export interface ApiScenesDiffProcessor {
538  (oldApiInfo: MethodInfo, newApiInfo: MethodInfo): DiffTypeInfo[] | DiffTypeInfo | undefined;
539}
540
541export interface ApiNodeDiffProcessor {
542  (oldApiInfo: ApiInfo, newApiInfo: ApiInfo, diffInfos: BasicDiffInfo[]): void;
543}
544
545export interface TagInfoDiffProcessor {
546  (oldJsDocInfo: Comment.JsDocInfo | undefined, newJsDocInfo: Comment.JsDocInfo | undefined): boolean;
547}
548
549export enum ApiStatusCode {
550  DEFAULT = -1,
551  DELETE = 0,
552  DELETE_DTS = 1,
553  DELETE_CLASS = 2,
554  NEW_API = 3,
555  VERSION_CHNAGES = 4,
556  DEPRECATED_CHNAGES = 5,
557  NEW_ERRORCODE = 6,
558  ERRORCODE_CHANGES = 7,
559  SYSCAP_CHANGES = 8,
560  SYSTEM_API_CHNAGES = 9,
561  PERMISSION_DELETE = 10,
562  PERMISSION_NEW = 11,
563  PERMISSION_CHANGES = 12,
564  MODEL_CHNAGES = 13,
565  TYPE_CHNAGES = 14,
566  CLASS_CHANGES = 15,
567  FUNCTION_CHANGES = 16,
568  CHANGELOG = 17,
569  DTS_CHANGED = 18,
570  FORM_CHANGED = 19,
571  CROSSPLATFORM_CHANGED = 20,
572  NEW_DTS = 21,
573  NEW_CLASS = 22,
574  NEW_DECORATOR = 23,
575  DELETE_DECORATOR = 24,
576  KIT_CHANGE = 26,
577  ATOMICSERVICE_CHANGE = 27,
578  ERRORCODE_DELETE = 28,
579}
580
581export enum ApiDiffType {
582  DEFAULT = 0,
583  SYSTEM_TO_PUBLIC,
584  PUBLIC_TO_SYSTEM,
585  NA_TO_STAGE,
586  NA_TO_FA,
587  FA_TO_STAGE,
588  STAGE_TO_FA,
589  STAGE_TO_NA,
590  FA_TO_NA,
591  NA_TO_CARD,
592  CARD_TO_NA,
593  NA_TO_CROSS_PLATFORM,
594  CROSS_PLATFORM_TO_NA,
595  SYSCAP_NA_TO_HAVE,
596  SYSCAP_HAVE_TO_NA,
597  SYSCAP_A_TO_B,
598  DEPRECATED_NA_TO_HAVE,
599  DEPRECATED_HAVE_TO_NA,
600  DEPRECATED_A_TO_B,
601  DEPRECATED_NOT_All,
602  ERROR_CODE_NA_TO_HAVE,
603  ERROR_CODE_ADD,
604  ERROR_CODE_REDUCE,
605  ERROR_CODE_CHANGE,
606  PERMISSION_NA_TO_HAVE,
607  PERMISSION_HAVE_TO_NA,
608  /** 增加or或减少and权限 权限范围变大 */
609  PERMISSION_RANGE_BIGGER,
610  /** 减少or或增加and权限 权限范围变小 */
611  PERMISSION_RANGE_SMALLER,
612  /** 同时存在权限范围变大和变小的情况 */
613  PERMISSION_RANGE_CHANGE,
614  /** type范围变大 */
615  TYPE_RANGE_BIGGER,
616  /** type范围减小 */
617  TYPE_RANGE_SMALLER,
618  /** type范围改变,既有变大情况也有变小情况 */
619  TYPE_RANGE_CHANGE,
620  API_NAME_CHANGE,
621  FUNCTION_RETURN_TYPE_ADD,
622  FUNCTION_RETURN_TYPE_REDUCE,
623  FUNCTION_RETURN_TYPE_CHANGE,
624  FUNCTION_PARAM_POS_CHANGE,
625  /** 函数新增可选参数 */
626  FUNCTION_PARAM_UNREQUIRED_ADD,
627  /** 函数新增必选参数 */
628  FUNCTION_PARAM_REQUIRED_ADD,
629  FUNCTION_PARAM_REDUCE,
630  /** 函数中的必选参数变为可选参数 */
631  FUNCTION_PARAM_TO_UNREQUIRED,
632  /** 函数中的可选参数变为必选参数 */
633  FUNCTION_PARAM_TO_REQUIRED,
634  FUNCTION_PARAM_NAME_CHANGE,
635  FUNCTION_PARAM_TYPE_CHANGE,
636  /**  函数的参数类型范围扩大 */
637  FUNCTION_PARAM_TYPE_ADD,
638  /**  函数的参数类型范围缩小 */
639  FUNCTION_PARAM_TYPE_REDUCE,
640  FUNCTION_PARAM_CHANGE,
641  /** 同名函数变更类型 */
642  FUNCTION_CHANGES,
643  PROPERTY_READONLY_TO_UNREQUIRED,
644  PROPERTY_READONLY_TO_REQUIRED,
645  PROPERTY_WRITABLE_TO_UNREQUIRED,
646  PROPERTY_WRITABLE_TO_REQUIRED,
647  PROPERTY_TYPE_CHANGE,
648  PROPERTY_READONLY_ADD,
649  PROPERTY_READONLY_REDUCE,
650  PROPERTY_WRITABLE_ADD,
651  PROPERTY_WRITABLE_REDUCE,
652  CONSTANT_VALUE_CHANGE,
653  TYPE_ALIAS_CHANGE,
654  TYPE_ALIAS_ADD,
655  TYPE_ALIAS_REDUCE,
656  TYPE_ALIAS_FUNCTION_RETURN_TYPE_ADD,
657  TYPE_ALIAS_FUNCTION_RETURN_TYPE_REDUCE,
658  TYPE_ALIAS_FUNCTION_RETURN_TYPE_CHANGE,
659  TYPE_ALIAS_FUNCTION_PARAM_POS_CHAHGE,
660  /** 自定义类型方法新增可选参数 */
661  TYPE_ALIAS_FUNCTION_PARAM_UNREQUIRED_ADD,
662  /** 自定义类型方法新增必选参数 */
663  TYPE_ALIAS_FUNCTION_PARAM_REQUIRED_ADD,
664  TYPE_ALIAS_FUNCTION_PARAM_REDUCE,
665  TYPE_ALIAS_FUNCTION_PARAM_TYPE_CHANGE,
666  /** 自定义类型方法中的必选参数变为可选参数 */
667  TYPE_ALIAS_FUNCTION_PARAM_TO_UNREQUIRED,
668  /** 自定义类型方法中的可选参数变为必选参数 */
669  TYPE_ALIAS_FUNCTION_PARAM_TO_REQUIRED,
670  /**  自定义类型方法的参数类型范围扩大 */
671  TYPE_ALIAS_FUNCTION_PARAM_TYPE_ADD,
672  /**  自定义类型方法的参数类型范围缩小 */
673  TYPE_ALIAS_FUNCTION_PARAM_TYPE_REDUCE,
674  TYPE_ALIAS_FUNCTION_PARAM_CHANGE,
675  ENUM_MEMBER_VALUE_CHANGE,
676  ADD,
677  REDUCE,
678  NEW_DECORATOR,
679  DELETE_DECORATOR,
680  SINCE_VERSION_NA_TO_HAVE,
681  SINCE_VERSION_HAVE_TO_NA,
682  SINCE_VERSION_A_TO_B,
683  HISTORICAL_JSDOC_CHANGE,
684  HISTORICAL_API_CHANGE,
685  KIT_CHANGE,
686  ATOMIC_SERVICE_NA_TO_HAVE,
687  ATOMIC_SERVICE_HAVE_TO_NA,
688  PROPERTY_TYPE_SIGN_CHANGE,
689  KIT_HAVE_TO_NA,
690  KIT_NA_TO_HAVE,
691  NEW_SAME_NAME_FUNCTION,
692  REDUCE_SAME_NAME_FUNCTION,
693  /** 匿名对象整改导致的参数类型的兼容改变,*/
694  PARAM_TYPE_CHANGE_COMPATIABLE,
695  /** 匿名对象整改导致的参数类型的不兼容改变,*/
696  PARAM_TYPE_CHANGE_IN_COMPATIABLE,
697}
698
699export const diffTypeMap: Map<ApiDiffType, string> = new Map([
700  [ApiDiffType.SYSTEM_TO_PUBLIC, 'API访问级别变更'],
701  [ApiDiffType.PUBLIC_TO_SYSTEM, 'API访问级别变更'],
702  [ApiDiffType.NA_TO_STAGE, 'API模型切换'],
703  [ApiDiffType.NA_TO_FA, 'API模型切换'],
704  [ApiDiffType.FA_TO_STAGE, 'API模型切换'],
705  [ApiDiffType.STAGE_TO_FA, 'API模型切换'],
706  [ApiDiffType.STAGE_TO_NA, 'API模型切换'],
707  [ApiDiffType.FA_TO_NA, 'API模型切换'],
708  [ApiDiffType.NA_TO_CARD, 'API卡片权限变更'],
709  [ApiDiffType.CARD_TO_NA, 'API卡片权限变更'],
710  [ApiDiffType.NA_TO_CROSS_PLATFORM, 'API跨平台权限变更'],
711  [ApiDiffType.CROSS_PLATFORM_TO_NA, 'API跨平台权限变更'],
712  [ApiDiffType.SYSCAP_NA_TO_HAVE, 'syscap变更'],
713  [ApiDiffType.SYSCAP_HAVE_TO_NA, 'syscap变更'],
714  [ApiDiffType.SYSCAP_A_TO_B, 'syscap变更'],
715  [ApiDiffType.DEPRECATED_NA_TO_HAVE, 'API废弃版本变更'],
716  [ApiDiffType.DEPRECATED_HAVE_TO_NA, 'API废弃版本变更'],
717  [ApiDiffType.DEPRECATED_NOT_All, 'API废弃版本变更'],
718  [ApiDiffType.DEPRECATED_A_TO_B, 'API废弃版本变更'],
719  [ApiDiffType.ERROR_CODE_NA_TO_HAVE, '错误码变更'],
720  [ApiDiffType.ERROR_CODE_ADD, '错误码变更'],
721  [ApiDiffType.ERROR_CODE_REDUCE, '错误码变更'],
722  [ApiDiffType.ERROR_CODE_CHANGE, '错误码变更'],
723  [ApiDiffType.PERMISSION_NA_TO_HAVE, '权限变更'],
724  [ApiDiffType.PERMISSION_HAVE_TO_NA, '权限变更'],
725  [ApiDiffType.PERMISSION_RANGE_BIGGER, '权限变更'],
726  [ApiDiffType.PERMISSION_RANGE_SMALLER, '权限变更'],
727  [ApiDiffType.PERMISSION_RANGE_CHANGE, '权限变更'],
728  [ApiDiffType.TYPE_RANGE_BIGGER, '自定义类型变更'],
729  [ApiDiffType.TYPE_RANGE_SMALLER, '自定义类型变更'],
730  [ApiDiffType.TYPE_RANGE_CHANGE, '自定义类型变更'],
731  [ApiDiffType.API_NAME_CHANGE, 'API名称变更'],
732  [ApiDiffType.FUNCTION_RETURN_TYPE_ADD, '函数变更'],
733  [ApiDiffType.FUNCTION_RETURN_TYPE_REDUCE, '函数变更'],
734  [ApiDiffType.FUNCTION_RETURN_TYPE_CHANGE, '函数变更'],
735  [ApiDiffType.FUNCTION_PARAM_POS_CHANGE, '函数变更'],
736  [ApiDiffType.FUNCTION_PARAM_UNREQUIRED_ADD, '函数变更'],
737  [ApiDiffType.FUNCTION_PARAM_REQUIRED_ADD, '函数变更'],
738  [ApiDiffType.FUNCTION_PARAM_REDUCE, '函数变更'],
739  [ApiDiffType.FUNCTION_PARAM_TO_UNREQUIRED, '函数变更'],
740  [ApiDiffType.FUNCTION_PARAM_TO_REQUIRED, '函数变更'],
741  [ApiDiffType.FUNCTION_PARAM_NAME_CHANGE, '函数变更'],
742  [ApiDiffType.FUNCTION_PARAM_TYPE_CHANGE, '函数变更'],
743  [ApiDiffType.FUNCTION_PARAM_TYPE_ADD, '函数变更'],
744  [ApiDiffType.FUNCTION_PARAM_TYPE_REDUCE, '函数变更'],
745  [ApiDiffType.FUNCTION_PARAM_CHANGE, '函数变更'],
746  [ApiDiffType.FUNCTION_CHANGES, '函数变更'],
747  [ApiDiffType.PROPERTY_READONLY_TO_UNREQUIRED, '属性变更'],
748  [ApiDiffType.PROPERTY_READONLY_TO_REQUIRED, '属性变更'],
749  [ApiDiffType.PROPERTY_WRITABLE_TO_UNREQUIRED, '属性变更'],
750  [ApiDiffType.PROPERTY_WRITABLE_TO_REQUIRED, '属性变更'],
751  [ApiDiffType.PROPERTY_TYPE_CHANGE, '属性变更'],
752  [ApiDiffType.PROPERTY_READONLY_ADD, '属性变更'],
753  [ApiDiffType.PROPERTY_READONLY_REDUCE, '属性变更'],
754  [ApiDiffType.PROPERTY_WRITABLE_ADD, '属性变更'],
755  [ApiDiffType.PROPERTY_WRITABLE_REDUCE, '属性变更'],
756  [ApiDiffType.PROPERTY_TYPE_SIGN_CHANGE, '属性变更'],
757  [ApiDiffType.CONSTANT_VALUE_CHANGE, '常量变更'],
758  [ApiDiffType.TYPE_ALIAS_CHANGE, '自定义类型变更'],
759  [ApiDiffType.TYPE_ALIAS_ADD, '自定义类型变更'],
760  [ApiDiffType.TYPE_ALIAS_REDUCE, '自定义类型变更'],
761  [ApiDiffType.TYPE_ALIAS_FUNCTION_RETURN_TYPE_ADD, '函数变更'],
762  [ApiDiffType.TYPE_ALIAS_FUNCTION_RETURN_TYPE_REDUCE, '函数变更'],
763  [ApiDiffType.TYPE_ALIAS_FUNCTION_RETURN_TYPE_CHANGE, '函数变更'],
764  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_POS_CHAHGE, '自定义类型变更'],
765  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_UNREQUIRED_ADD, '自定义类型变更'],
766  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_REQUIRED_ADD, '自定义类型变更'],
767  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_REDUCE, '自定义类型变更'],
768  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TO_UNREQUIRED, '自定义类型变更'],
769  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TO_REQUIRED, '自定义类型变更'],
770  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TYPE_CHANGE, '自定义类型变更'],
771  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TYPE_ADD, '自定义类型变更'],
772  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TYPE_REDUCE, '自定义类型变更'],
773  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_CHANGE, '自定义类型变更'],
774  [ApiDiffType.ENUM_MEMBER_VALUE_CHANGE, '枚举赋值发生改变'],
775  [ApiDiffType.ADD, '新增API'],
776  [ApiDiffType.REDUCE, '删除API'],
777  [ApiDiffType.DELETE_DECORATOR, '删除装饰器'],
778  [ApiDiffType.NEW_DECORATOR, '新增装饰器'],
779  [ApiDiffType.SINCE_VERSION_A_TO_B, '起始版本有变化'],
780  [ApiDiffType.SINCE_VERSION_HAVE_TO_NA, '起始版本有变化'],
781  [ApiDiffType.SINCE_VERSION_NA_TO_HAVE, '起始版本有变化'],
782  [ApiDiffType.KIT_CHANGE, 'kit变更'],
783  [ApiDiffType.KIT_HAVE_TO_NA, '删除kit'],
784  [ApiDiffType.KIT_NA_TO_HAVE, '新增kit'],
785  [ApiDiffType.ATOMIC_SERVICE_HAVE_TO_NA, 'API从支持元服务到不支持元服务'],
786  [ApiDiffType.ATOMIC_SERVICE_NA_TO_HAVE, 'API从不支持元服务到支持元服务'],
787  [ApiDiffType.NEW_SAME_NAME_FUNCTION, '新增同名函数'],
788  [ApiDiffType.REDUCE_SAME_NAME_FUNCTION, '删除同名函数'],
789  [ApiDiffType.PARAM_TYPE_CHANGE_COMPATIABLE, '函数变更'],
790  [ApiDiffType.PARAM_TYPE_CHANGE_IN_COMPATIABLE, '函数变更'],
791]);
792
793export const diffMap: Map<ApiDiffType, string> = new Map([
794  [ApiDiffType.SYSTEM_TO_PUBLIC, '从系统API变更为公开API'],
795  [ApiDiffType.PUBLIC_TO_SYSTEM, '从公开API变更为系统API'],
796  [ApiDiffType.NA_TO_STAGE, '从无模型使用限制到仅在Stage模型下使用'],
797  [ApiDiffType.NA_TO_FA, '从无模型使用限制到仅在FA模型下使用'],
798  [ApiDiffType.FA_TO_STAGE, '从仅在FA模型下使用到仅在Stage模型下使用'],
799  [ApiDiffType.STAGE_TO_FA, '从仅在Stage模型下使用到仅在FA模型下使用'],
800  [ApiDiffType.STAGE_TO_NA, '从仅在Stage模型下使用到无模型使用限制'],
801  [ApiDiffType.FA_TO_NA, '从仅在FA模型下使用到无模型使用限制'],
802  [ApiDiffType.NA_TO_CARD, '从不支持卡片到支持卡片'],
803  [ApiDiffType.CARD_TO_NA, '从支持卡片到不支持卡片'],
804  [ApiDiffType.NA_TO_CROSS_PLATFORM, '从不支持跨平台到支持跨平台'],
805  [ApiDiffType.CROSS_PLATFORM_TO_NA, '从支持跨平台到不支持跨平台'],
806  [ApiDiffType.SYSCAP_NA_TO_HAVE, '从没有syscap到有syscap'],
807  [ApiDiffType.SYSCAP_HAVE_TO_NA, '从有syscap到没有syscap'],
808  [ApiDiffType.SYSCAP_A_TO_B, 'syscap发生改变'],
809  [ApiDiffType.DEPRECATED_NA_TO_HAVE, '接口变更为废弃'],
810  [ApiDiffType.DEPRECATED_HAVE_TO_NA, '废弃接口变更为不废弃'],
811  [ApiDiffType.DEPRECATED_NOT_All, '接口变更为废弃'],
812  [ApiDiffType.DEPRECATED_A_TO_B, '接口废弃版本发生变化'],
813  [ApiDiffType.ERROR_CODE_NA_TO_HAVE, '错误码从无到有'],
814  [ApiDiffType.ERROR_CODE_ADD, '错误码增加'],
815  [ApiDiffType.ERROR_CODE_REDUCE, '错误码减少'],
816  [ApiDiffType.ERROR_CODE_CHANGE, '错误码的code值发生变化'],
817  [ApiDiffType.PERMISSION_NA_TO_HAVE, '权限从无到有'],
818  [ApiDiffType.PERMISSION_HAVE_TO_NA, '权限从有到无'],
819  [ApiDiffType.PERMISSION_RANGE_BIGGER, '增加or或减少and权限'],
820  [ApiDiffType.PERMISSION_RANGE_SMALLER, '减少or或增加and权限'],
821  [ApiDiffType.PERMISSION_RANGE_CHANGE, '权限发生改变无法判断范围变化'],
822  [ApiDiffType.TYPE_RANGE_BIGGER, '类型范围变大'],
823  [ApiDiffType.TYPE_RANGE_SMALLER, '类型范围变小'],
824  [ApiDiffType.TYPE_RANGE_CHANGE, '类型范围改变'],
825  [ApiDiffType.API_NAME_CHANGE, 'API名称变更'],
826  [ApiDiffType.FUNCTION_RETURN_TYPE_ADD, '函数返回值类型扩大'],
827  [ApiDiffType.FUNCTION_RETURN_TYPE_REDUCE, '函数返回值类型缩小'],
828  [ApiDiffType.FUNCTION_RETURN_TYPE_CHANGE, '函数返回值类型改变'],
829  [ApiDiffType.FUNCTION_PARAM_POS_CHANGE, '函数参数位置发生改变'],
830  [ApiDiffType.FUNCTION_PARAM_UNREQUIRED_ADD, '函数新增可选参数'],
831  [ApiDiffType.FUNCTION_PARAM_REQUIRED_ADD, '函数新增必选参数'],
832  [ApiDiffType.FUNCTION_PARAM_REDUCE, '函数删除参数'],
833  [ApiDiffType.FUNCTION_PARAM_TO_UNREQUIRED, '函数中的必选参数变为可选参数'],
834  [ApiDiffType.FUNCTION_PARAM_TO_REQUIRED, '函数中的可选参数变为必选参数'],
835  [ApiDiffType.FUNCTION_PARAM_NAME_CHANGE, '函数中的参数名称发生改变'],
836  [ApiDiffType.FUNCTION_PARAM_TYPE_CHANGE, '函数的参数类型变更'],
837  [ApiDiffType.FUNCTION_PARAM_TYPE_ADD, '函数的参数类型范围扩大'],
838  [ApiDiffType.FUNCTION_PARAM_TYPE_REDUCE, '函数的参数类型范围缩小'],
839  [ApiDiffType.FUNCTION_PARAM_CHANGE, '函数的参数变更'],
840  [ApiDiffType.FUNCTION_CHANGES, '函数有变化'],
841  [ApiDiffType.PROPERTY_READONLY_TO_UNREQUIRED, '只读属性由必选变为可选'],
842  [ApiDiffType.PROPERTY_READONLY_TO_REQUIRED, '只读属性由可选变为必选'],
843  [ApiDiffType.PROPERTY_WRITABLE_TO_UNREQUIRED, '可写属性由必选变为可选'],
844  [ApiDiffType.PROPERTY_WRITABLE_TO_REQUIRED, '可写属性由可选变为必选'],
845  [ApiDiffType.PROPERTY_TYPE_CHANGE, '属性类型发生改变'],
846  [ApiDiffType.PROPERTY_TYPE_SIGN_CHANGE, '属性类型发生改变'],
847  [ApiDiffType.PROPERTY_READONLY_ADD, '只读属性类型范围扩大'],
848  [ApiDiffType.PROPERTY_READONLY_REDUCE, '只读属性类型范围缩小'],
849  [ApiDiffType.PROPERTY_WRITABLE_ADD, '可写属性类型范围扩大'],
850  [ApiDiffType.PROPERTY_WRITABLE_REDUCE, '可写属性类型范围缩小'],
851  [ApiDiffType.CONSTANT_VALUE_CHANGE, '常量值发生改变'],
852  [ApiDiffType.TYPE_ALIAS_CHANGE, '自定义类型值改变'],
853  [ApiDiffType.TYPE_ALIAS_ADD, '自定义类型值范围扩大'],
854  [ApiDiffType.TYPE_ALIAS_REDUCE, '自定义类型值范围缩小'],
855  [ApiDiffType.TYPE_ALIAS_FUNCTION_RETURN_TYPE_ADD, '自定义方法类型返回值类型扩大'],
856  [ApiDiffType.TYPE_ALIAS_FUNCTION_RETURN_TYPE_REDUCE, '自定义方法类型返回值类型缩小'],
857  [ApiDiffType.TYPE_ALIAS_FUNCTION_RETURN_TYPE_CHANGE, '自定义方法类型返回值类型改变'],
858  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_POS_CHAHGE, '自定义方法类型参数位置发生改变'],
859  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_UNREQUIRED_ADD, '自定义方法类型新增可选参数'],
860  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_REQUIRED_ADD, '自定义方法类型新增必选参数'],
861  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_REDUCE, '自定义方法类型删除参数'],
862  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TO_UNREQUIRED, '自定义方法类型的必选参数变为可选参数'],
863  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TO_REQUIRED, '自定义方法类型的可选参数变为必选参数'],
864  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TYPE_CHANGE, '自定义方法类型的参数类型变更'],
865  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TYPE_ADD, '自定义方法类型的参数类型范围扩大'],
866  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TYPE_REDUCE, '自定义方法类型的参数类型范围缩小'],
867  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_CHANGE, '自定义方法类型的参数变更'],
868  [ApiDiffType.ENUM_MEMBER_VALUE_CHANGE, '枚举赋值发生改变'],
869  [ApiDiffType.ADD, '新增API'],
870  [ApiDiffType.REDUCE, '删除API'],
871  [ApiDiffType.DELETE_DECORATOR, '删除装饰器'],
872  [ApiDiffType.NEW_DECORATOR, '新增装饰器'],
873  [ApiDiffType.SINCE_VERSION_A_TO_B, '起始版本号变更'],
874  [ApiDiffType.SINCE_VERSION_HAVE_TO_NA, '起始版本号删除'],
875  [ApiDiffType.SINCE_VERSION_NA_TO_HAVE, '起始版本号新增'],
876  [ApiDiffType.HISTORICAL_JSDOC_CHANGE, '历史版本jsdoc变更'],
877  [ApiDiffType.HISTORICAL_API_CHANGE, '历史版本API变更'],
878  [ApiDiffType.KIT_CHANGE, 'kit变更'],
879  [ApiDiffType.KIT_HAVE_TO_NA, 'kit信息从有到无'],
880  [ApiDiffType.KIT_NA_TO_HAVE, 'kit信息从无到有'],
881  [ApiDiffType.ATOMIC_SERVICE_HAVE_TO_NA, 'API从支持元服务到不支持元服务'],
882  [ApiDiffType.ATOMIC_SERVICE_NA_TO_HAVE, 'API从不支持元服务到支持元服务'],
883  [ApiDiffType.NEW_SAME_NAME_FUNCTION, '新增同名函数'],
884  [ApiDiffType.REDUCE_SAME_NAME_FUNCTION, '删除同名函数'],
885  [ApiDiffType.PARAM_TYPE_CHANGE_COMPATIABLE, '函数的参数类型变更'],
886  [ApiDiffType.PARAM_TYPE_CHANGE_IN_COMPATIABLE, '函数的参数类型变更'],
887]);
888
889export const apiChangeMap: Map<ApiDiffType, string> = new Map([
890  [ApiDiffType.SYSTEM_TO_PUBLIC, 'API修改(约束变化)'],
891  [ApiDiffType.PUBLIC_TO_SYSTEM, 'API修改(约束变化)'],
892  [ApiDiffType.NA_TO_STAGE, 'API修改(约束变化)'],
893  [ApiDiffType.NA_TO_FA, 'API修改(约束变化)'],
894  [ApiDiffType.FA_TO_STAGE, 'API修改(约束变化)'],
895  [ApiDiffType.STAGE_TO_FA, 'API修改(约束变化)'],
896  [ApiDiffType.STAGE_TO_NA, 'API修改(约束变化)'],
897  [ApiDiffType.FA_TO_NA, 'API修改(约束变化)'],
898  [ApiDiffType.NA_TO_CARD, 'API修改(约束变化)'],
899  [ApiDiffType.CARD_TO_NA, 'API修改(约束变化)'],
900  [ApiDiffType.NA_TO_CROSS_PLATFORM, 'API修改(约束变化)'],
901  [ApiDiffType.CROSS_PLATFORM_TO_NA, 'API修改(约束变化)'],
902  [ApiDiffType.SYSCAP_NA_TO_HAVE, 'API修改(约束变化)'],
903  [ApiDiffType.SYSCAP_HAVE_TO_NA, 'API修改(约束变化)'],
904  [ApiDiffType.SYSCAP_A_TO_B, 'API修改(约束变化)'],
905  [ApiDiffType.DEPRECATED_NA_TO_HAVE, 'API废弃'],
906  [ApiDiffType.DEPRECATED_HAVE_TO_NA, 'API废弃'],
907  [ApiDiffType.DEPRECATED_NOT_All, 'API修改(约束变化)'],
908  [ApiDiffType.DEPRECATED_A_TO_B, 'API废弃'],
909  [ApiDiffType.ERROR_CODE_NA_TO_HAVE, 'API修改(约束变化)'],
910  [ApiDiffType.ERROR_CODE_ADD, 'API修改(原型修改)'],
911  [ApiDiffType.ERROR_CODE_REDUCE, 'API修改(原型修改)'],
912  [ApiDiffType.ERROR_CODE_CHANGE, 'API修改(原型修改)'],
913  [ApiDiffType.PERMISSION_NA_TO_HAVE, 'API修改(约束变化)'],
914  [ApiDiffType.PERMISSION_HAVE_TO_NA, 'API修改(约束变化)'],
915  [ApiDiffType.PERMISSION_RANGE_BIGGER, 'API修改(约束变化)'],
916  [ApiDiffType.PERMISSION_RANGE_SMALLER, 'API修改(约束变化)'],
917  [ApiDiffType.PERMISSION_RANGE_CHANGE, 'API修改(约束变化)'],
918  [ApiDiffType.TYPE_RANGE_BIGGER, 'API修改(原型修改)'],
919  [ApiDiffType.TYPE_RANGE_SMALLER, 'API修改(原型修改)'],
920  [ApiDiffType.TYPE_RANGE_CHANGE, 'API修改(原型修改)'],
921  [ApiDiffType.API_NAME_CHANGE, 'API修改(原型修改)'],
922  [ApiDiffType.FUNCTION_RETURN_TYPE_ADD, 'API修改(原型修改)'],
923  [ApiDiffType.FUNCTION_RETURN_TYPE_REDUCE, 'API修改(原型修改)'],
924  [ApiDiffType.FUNCTION_RETURN_TYPE_CHANGE, 'API修改(原型修改)'],
925  [ApiDiffType.FUNCTION_PARAM_POS_CHANGE, 'API修改(原型修改)'],
926  [ApiDiffType.FUNCTION_PARAM_UNREQUIRED_ADD, 'API修改(原型修改)'],
927  [ApiDiffType.FUNCTION_PARAM_REQUIRED_ADD, 'API修改(原型修改)'],
928  [ApiDiffType.FUNCTION_PARAM_REDUCE, 'API修改(原型修改)'],
929  [ApiDiffType.FUNCTION_PARAM_TO_UNREQUIRED, 'API修改(原型修改)'],
930  [ApiDiffType.FUNCTION_PARAM_TO_REQUIRED, 'API修改(原型修改)'],
931  [ApiDiffType.FUNCTION_PARAM_NAME_CHANGE, 'API修改(原型修改)'],
932  [ApiDiffType.FUNCTION_PARAM_TYPE_CHANGE, 'API修改(原型修改)'],
933  [ApiDiffType.FUNCTION_PARAM_TYPE_ADD, 'API修改(原型修改)'],
934  [ApiDiffType.FUNCTION_PARAM_TYPE_REDUCE, 'API修改(原型修改)'],
935  [ApiDiffType.FUNCTION_CHANGES, 'API修改(原型修改)'],
936  [ApiDiffType.FUNCTION_PARAM_CHANGE, 'API修改(原型修改)'],
937  [ApiDiffType.PROPERTY_READONLY_TO_UNREQUIRED, 'API修改(约束变化)'],
938  [ApiDiffType.PROPERTY_READONLY_TO_REQUIRED, 'API修改(约束变化)'],
939  [ApiDiffType.PROPERTY_WRITABLE_TO_UNREQUIRED, 'API修改(约束变化)'],
940  [ApiDiffType.PROPERTY_WRITABLE_TO_REQUIRED, 'API修改(约束变化)'],
941  [ApiDiffType.PROPERTY_TYPE_CHANGE, 'API修改(原型修改)'],
942  [ApiDiffType.PROPERTY_TYPE_SIGN_CHANGE, 'API修改(原型修改)'],
943  [ApiDiffType.PROPERTY_READONLY_ADD, 'API修改(约束变化)'],
944  [ApiDiffType.PROPERTY_READONLY_REDUCE, 'API修改(约束变化)'],
945  [ApiDiffType.PROPERTY_WRITABLE_ADD, 'API修改(约束变化)'],
946  [ApiDiffType.PROPERTY_WRITABLE_REDUCE, 'API修改(约束变化)'],
947  [ApiDiffType.CONSTANT_VALUE_CHANGE, 'API修改(原型修改)'],
948  [ApiDiffType.TYPE_ALIAS_CHANGE, 'API修改(原型修改)'],
949  [ApiDiffType.TYPE_ALIAS_ADD, 'API修改(原型修改)'],
950  [ApiDiffType.TYPE_ALIAS_REDUCE, 'API修改(原型修改)'],
951  [ApiDiffType.ENUM_MEMBER_VALUE_CHANGE, 'API修改(原型修改)'],
952  [ApiDiffType.ADD, 'API新增'],
953  [ApiDiffType.REDUCE, 'API删除'],
954  [ApiDiffType.DELETE_DECORATOR, 'API修改(约束变化)'],
955  [ApiDiffType.NEW_DECORATOR, 'API修改(约束变化)'],
956  [ApiDiffType.SINCE_VERSION_A_TO_B, 'API修改(约束变化)'],
957  [ApiDiffType.SINCE_VERSION_HAVE_TO_NA, 'API修改(约束变化)'],
958  [ApiDiffType.SINCE_VERSION_NA_TO_HAVE, 'API修改(约束变化)'],
959  [ApiDiffType.KIT_CHANGE, '非API变更'],
960  [ApiDiffType.KIT_HAVE_TO_NA, '非API变更'],
961  [ApiDiffType.KIT_NA_TO_HAVE, '非API变更'],
962  [ApiDiffType.ATOMIC_SERVICE_HAVE_TO_NA, 'API修改(约束变化)'],
963  [ApiDiffType.ATOMIC_SERVICE_NA_TO_HAVE, 'API修改(约束变化)'],
964  [ApiDiffType.TYPE_ALIAS_FUNCTION_RETURN_TYPE_ADD, 'API修改(原型修改)'],
965  [ApiDiffType.TYPE_ALIAS_FUNCTION_RETURN_TYPE_REDUCE, 'API修改(原型修改)'],
966  [ApiDiffType.TYPE_ALIAS_FUNCTION_RETURN_TYPE_CHANGE, 'API修改(原型修改)'],
967  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_POS_CHAHGE, 'API修改(原型修改)'],
968  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_UNREQUIRED_ADD, 'API修改(原型修改)'],
969  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_REQUIRED_ADD, 'API修改(原型修改)'],
970  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_REDUCE, 'API修改(原型修改)'],
971  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TO_UNREQUIRED, 'API修改(原型修改)'],
972  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TO_REQUIRED, 'API修改(原型修改)'],
973  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TYPE_CHANGE, 'API修改(原型修改)'],
974  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TYPE_ADD, 'API修改(原型修改)'],
975  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TYPE_REDUCE, 'API修改(原型修改)'],
976  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_CHANGE, 'API修改(原型修改)'],
977  [ApiDiffType.NEW_SAME_NAME_FUNCTION, 'API修改(原型修改)'],
978  [ApiDiffType.REDUCE_SAME_NAME_FUNCTION, 'API修改(原型修改)'],
979  [ApiDiffType.PARAM_TYPE_CHANGE_COMPATIABLE, 'API修改(原型修改)'],
980  [ApiDiffType.PARAM_TYPE_CHANGE_IN_COMPATIABLE, 'API修改(原型修改)'],
981]);
982
983/**
984 * 非兼容性变更类型
985 */
986export const incompatibleApiDiffTypes: Set<ApiDiffType> = new Set([
987  ApiDiffType.PUBLIC_TO_SYSTEM,
988  ApiDiffType.NA_TO_STAGE,
989  ApiDiffType.NA_TO_FA,
990  ApiDiffType.FA_TO_STAGE,
991  ApiDiffType.STAGE_TO_FA,
992  ApiDiffType.CARD_TO_NA,
993  ApiDiffType.CROSS_PLATFORM_TO_NA,
994  ApiDiffType.ERROR_CODE_NA_TO_HAVE,
995  ApiDiffType.ERROR_CODE_CHANGE,
996  ApiDiffType.PERMISSION_NA_TO_HAVE,
997  ApiDiffType.PERMISSION_RANGE_SMALLER,
998  ApiDiffType.PERMISSION_RANGE_CHANGE,
999  ApiDiffType.API_NAME_CHANGE,
1000  ApiDiffType.FUNCTION_RETURN_TYPE_ADD,
1001  ApiDiffType.FUNCTION_RETURN_TYPE_CHANGE,
1002  ApiDiffType.FUNCTION_PARAM_POS_CHANGE,
1003  ApiDiffType.FUNCTION_PARAM_REQUIRED_ADD,
1004  ApiDiffType.FUNCTION_PARAM_REDUCE,
1005  ApiDiffType.FUNCTION_PARAM_TO_REQUIRED,
1006  ApiDiffType.FUNCTION_PARAM_TYPE_CHANGE,
1007  ApiDiffType.FUNCTION_PARAM_TYPE_REDUCE,
1008  ApiDiffType.FUNCTION_PARAM_CHANGE,
1009  ApiDiffType.FUNCTION_CHANGES,
1010  ApiDiffType.PROPERTY_READONLY_TO_REQUIRED,
1011  ApiDiffType.PROPERTY_WRITABLE_TO_UNREQUIRED,
1012  ApiDiffType.PROPERTY_WRITABLE_TO_REQUIRED,
1013  ApiDiffType.PROPERTY_TYPE_CHANGE,
1014  ApiDiffType.PROPERTY_READONLY_ADD,
1015  ApiDiffType.PROPERTY_WRITABLE_ADD,
1016  ApiDiffType.PROPERTY_WRITABLE_REDUCE,
1017  ApiDiffType.CONSTANT_VALUE_CHANGE,
1018  ApiDiffType.TYPE_ALIAS_CHANGE,
1019  ApiDiffType.TYPE_ALIAS_ADD,
1020  ApiDiffType.TYPE_ALIAS_REDUCE,
1021  ApiDiffType.ENUM_MEMBER_VALUE_CHANGE,
1022  ApiDiffType.REDUCE,
1023  ApiDiffType.HISTORICAL_JSDOC_CHANGE,
1024  ApiDiffType.HISTORICAL_API_CHANGE,
1025  ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TYPE_REDUCE,
1026  ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TYPE_CHANGE,
1027  ApiDiffType.FUNCTION_RETURN_TYPE_REDUCE,
1028  ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TYPE_ADD,
1029  ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_CHANGE,
1030  ApiDiffType.ATOMIC_SERVICE_HAVE_TO_NA,
1031  ApiDiffType.DELETE_DECORATOR,
1032  ApiDiffType.NEW_DECORATOR,
1033  ApiDiffType.SYSCAP_A_TO_B,
1034  ApiDiffType.SYSCAP_HAVE_TO_NA,
1035  ApiDiffType.SYSCAP_NA_TO_HAVE,
1036  ApiDiffType.KIT_CHANGE,
1037  ApiDiffType.KIT_HAVE_TO_NA,
1038  ApiDiffType.REDUCE_SAME_NAME_FUNCTION,
1039  ApiDiffType.PARAM_TYPE_CHANGE_IN_COMPATIABLE,
1040]);
1041
1042export const isNotApiSet: Set<string> = new Set([
1043  ApiType.NAMESPACE,
1044  ApiType.ENUM,
1045  ApiType.SOURCE_FILE,
1046]);
1047
1048/**
1049 * 以下API类型中新增必选属性/方法都是非兼容性变更
1050 */
1051export const parentApiTypeSet: Set<string> = new Set([
1052  ApiType.INTERFACE,
1053  ApiType.STRUCT,
1054  ApiType.CLASS,
1055  ApiType.TYPE_ALIAS,
1056]);
1057