• 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 enum ApiStatusCode {
546  DEFAULT = -1,
547  DELETE = 0,
548  DELETE_DTS = 1,
549  DELETE_CLASS = 2,
550  NEW_API = 3,
551  VERSION_CHNAGES = 4,
552  DEPRECATED_CHNAGES = 5,
553  NEW_ERRORCODE = 6,
554  ERRORCODE_CHANGES = 7,
555  SYSCAP_CHANGES = 8,
556  SYSTEM_API_CHNAGES = 9,
557  PERMISSION_DELETE = 10,
558  PERMISSION_NEW = 11,
559  PERMISSION_CHANGES = 12,
560  MODEL_CHNAGES = 13,
561  TYPE_CHNAGES = 14,
562  CLASS_CHANGES = 15,
563  FUNCTION_CHANGES = 16,
564  CHANGELOG = 17,
565  DTS_CHANGED = 18,
566  FORM_CHANGED = 19,
567  CROSSPLATFORM_CHANGED = 20,
568  NEW_DTS = 21,
569  NEW_CLASS = 22,
570  NEW_DECORATOR = 23,
571  DELETE_DECORATOR = 24,
572  KIT_CHANGE = 26,
573  ATOMICSERVICE_CHANGE = 27,
574  ERRORCODE_DELETE = 28,
575}
576
577export enum ApiDiffType {
578  DEFAULT = 0,
579  SYSTEM_TO_PUBLIC,
580  PUBLIC_TO_SYSTEM,
581  NA_TO_STAGE,
582  NA_TO_FA,
583  FA_TO_STAGE,
584  STAGE_TO_FA,
585  STAGE_TO_NA,
586  FA_TO_NA,
587  NA_TO_CARD,
588  CARD_TO_NA,
589  NA_TO_CROSS_PLATFORM,
590  CROSS_PLATFORM_TO_NA,
591  SYSCAP_NA_TO_HAVE,
592  SYSCAP_HAVE_TO_NA,
593  SYSCAP_A_TO_B,
594  DEPRECATED_NA_TO_HAVE,
595  DEPRECATED_HAVE_TO_NA,
596  DEPRECATED_A_TO_B,
597  DEPRECATED_NOT_All,
598  ERROR_CODE_NA_TO_HAVE,
599  ERROR_CODE_ADD,
600  ERROR_CODE_REDUCE,
601  ERROR_CODE_CHANGE,
602  PERMISSION_NA_TO_HAVE,
603  PERMISSION_HAVE_TO_NA,
604  /** 增加or或减少and权限 权限范围变大 */
605  PERMISSION_RANGE_BIGGER,
606  /** 减少or或增加and权限 权限范围变小 */
607  PERMISSION_RANGE_SMALLER,
608  /** 同时存在权限范围变大和变小的情况 */
609  PERMISSION_RANGE_CHANGE,
610  /** type范围变大 */
611  TYPE_RANGE_BIGGER,
612  /** type范围减小 */
613  TYPE_RANGE_SMALLER,
614  /** type范围改变,既有变大情况也有变小情况 */
615  TYPE_RANGE_CHANGE,
616  API_NAME_CHANGE,
617  FUNCTION_RETURN_TYPE_ADD,
618  FUNCTION_RETURN_TYPE_REDUCE,
619  FUNCTION_RETURN_TYPE_CHANGE,
620  FUNCTION_PARAM_POS_CHANGE,
621  /** 函数新增可选参数 */
622  FUNCTION_PARAM_UNREQUIRED_ADD,
623  /** 函数新增必选参数 */
624  FUNCTION_PARAM_REQUIRED_ADD,
625  FUNCTION_PARAM_REDUCE,
626  /** 函数中的必选参数变为可选参数 */
627  FUNCTION_PARAM_TO_UNREQUIRED,
628  /** 函数中的可选参数变为必选参数 */
629  FUNCTION_PARAM_TO_REQUIRED,
630  FUNCTION_PARAM_NAME_CHANGE,
631  FUNCTION_PARAM_TYPE_CHANGE,
632  /**  函数的参数类型范围扩大 */
633  FUNCTION_PARAM_TYPE_ADD,
634  /**  函数的参数类型范围缩小 */
635  FUNCTION_PARAM_TYPE_REDUCE,
636  FUNCTION_PARAM_CHANGE,
637  /** 同名函数变更类型 */
638  FUNCTION_CHANGES,
639  PROPERTY_READONLY_TO_UNREQUIRED,
640  PROPERTY_READONLY_TO_REQUIRED,
641  PROPERTY_WRITABLE_TO_UNREQUIRED,
642  PROPERTY_WRITABLE_TO_REQUIRED,
643  PROPERTY_TYPE_CHANGE,
644  PROPERTY_READONLY_ADD,
645  PROPERTY_READONLY_REDUCE,
646  PROPERTY_WRITABLE_ADD,
647  PROPERTY_WRITABLE_REDUCE,
648  CONSTANT_VALUE_CHANGE,
649  TYPE_ALIAS_CHANGE,
650  TYPE_ALIAS_ADD,
651  TYPE_ALIAS_REDUCE,
652  TYPE_ALIAS_FUNCTION_RETURN_TYPE_ADD,
653  TYPE_ALIAS_FUNCTION_RETURN_TYPE_REDUCE,
654  TYPE_ALIAS_FUNCTION_RETURN_TYPE_CHANGE,
655  TYPE_ALIAS_FUNCTION_PARAM_POS_CHAHGE,
656  /** 自定义类型方法新增可选参数 */
657  TYPE_ALIAS_FUNCTION_PARAM_UNREQUIRED_ADD,
658  /** 自定义类型方法新增必选参数 */
659  TYPE_ALIAS_FUNCTION_PARAM_REQUIRED_ADD,
660  TYPE_ALIAS_FUNCTION_PARAM_REDUCE,
661  TYPE_ALIAS_FUNCTION_PARAM_TYPE_CHANGE,
662  /** 自定义类型方法中的必选参数变为可选参数 */
663  TYPE_ALIAS_FUNCTION_PARAM_TO_UNREQUIRED,
664  /** 自定义类型方法中的可选参数变为必选参数 */
665  TYPE_ALIAS_FUNCTION_PARAM_TO_REQUIRED,
666  /**  自定义类型方法的参数类型范围扩大 */
667  TYPE_ALIAS_FUNCTION_PARAM_TYPE_ADD,
668  /**  自定义类型方法的参数类型范围缩小 */
669  TYPE_ALIAS_FUNCTION_PARAM_TYPE_REDUCE,
670  TYPE_ALIAS_FUNCTION_PARAM_CHANGE,
671  ENUM_MEMBER_VALUE_CHANGE,
672  ADD,
673  REDUCE,
674  NEW_DECORATOR,
675  DELETE_DECORATOR,
676  SINCE_VERSION_NA_TO_HAVE,
677  SINCE_VERSION_HAVE_TO_NA,
678  SINCE_VERSION_A_TO_B,
679  HISTORICAL_JSDOC_CHANGE,
680  HISTORICAL_API_CHANGE,
681  KIT_CHANGE,
682  ATOMIC_SERVICE_NA_TO_HAVE,
683  ATOMIC_SERVICE_HAVE_TO_NA,
684  PROPERTY_TYPE_SIGN_CHANGE,
685  KIT_HAVE_TO_NA,
686  KIT_NA_TO_HAVE,
687}
688
689export const diffTypeMap: Map<ApiDiffType, string> = new Map([
690  [ApiDiffType.SYSTEM_TO_PUBLIC, 'API访问级别变更'],
691  [ApiDiffType.PUBLIC_TO_SYSTEM, 'API访问级别变更'],
692  [ApiDiffType.NA_TO_STAGE, 'API模型切换'],
693  [ApiDiffType.NA_TO_FA, 'API模型切换'],
694  [ApiDiffType.FA_TO_STAGE, 'API模型切换'],
695  [ApiDiffType.STAGE_TO_FA, 'API模型切换'],
696  [ApiDiffType.STAGE_TO_NA, 'API模型切换'],
697  [ApiDiffType.FA_TO_NA, 'API模型切换'],
698  [ApiDiffType.NA_TO_CARD, 'API卡片权限变更'],
699  [ApiDiffType.CARD_TO_NA, 'API卡片权限变更'],
700  [ApiDiffType.NA_TO_CROSS_PLATFORM, 'API跨平台权限变更'],
701  [ApiDiffType.CROSS_PLATFORM_TO_NA, 'API跨平台权限变更'],
702  [ApiDiffType.SYSCAP_NA_TO_HAVE, 'syscap变更'],
703  [ApiDiffType.SYSCAP_HAVE_TO_NA, 'syscap变更'],
704  [ApiDiffType.SYSCAP_A_TO_B, 'syscap变更'],
705  [ApiDiffType.DEPRECATED_NA_TO_HAVE, 'API废弃版本变更'],
706  [ApiDiffType.DEPRECATED_HAVE_TO_NA, 'API废弃版本变更'],
707  [ApiDiffType.DEPRECATED_NOT_All, 'API废弃版本变更'],
708  [ApiDiffType.DEPRECATED_A_TO_B, 'API废弃版本变更'],
709  [ApiDiffType.ERROR_CODE_NA_TO_HAVE, '错误码变更'],
710  [ApiDiffType.ERROR_CODE_ADD, '错误码变更'],
711  [ApiDiffType.ERROR_CODE_REDUCE, '错误码变更'],
712  [ApiDiffType.ERROR_CODE_CHANGE, '错误码变更'],
713  [ApiDiffType.PERMISSION_NA_TO_HAVE, '权限变更'],
714  [ApiDiffType.PERMISSION_HAVE_TO_NA, '权限变更'],
715  [ApiDiffType.PERMISSION_RANGE_BIGGER, '权限变更'],
716  [ApiDiffType.PERMISSION_RANGE_SMALLER, '权限变更'],
717  [ApiDiffType.PERMISSION_RANGE_CHANGE, '权限变更'],
718  [ApiDiffType.TYPE_RANGE_BIGGER, '自定义类型变更'],
719  [ApiDiffType.TYPE_RANGE_SMALLER, '自定义类型变更'],
720  [ApiDiffType.TYPE_RANGE_CHANGE, '自定义类型变更'],
721  [ApiDiffType.API_NAME_CHANGE, 'API名称变更'],
722  [ApiDiffType.FUNCTION_RETURN_TYPE_ADD, '函数变更'],
723  [ApiDiffType.FUNCTION_RETURN_TYPE_REDUCE, '函数变更'],
724  [ApiDiffType.FUNCTION_RETURN_TYPE_CHANGE, '函数变更'],
725  [ApiDiffType.FUNCTION_PARAM_POS_CHANGE, '函数变更'],
726  [ApiDiffType.FUNCTION_PARAM_UNREQUIRED_ADD, '函数变更'],
727  [ApiDiffType.FUNCTION_PARAM_REQUIRED_ADD, '函数变更'],
728  [ApiDiffType.FUNCTION_PARAM_REDUCE, '函数变更'],
729  [ApiDiffType.FUNCTION_PARAM_TO_UNREQUIRED, '函数变更'],
730  [ApiDiffType.FUNCTION_PARAM_TO_REQUIRED, '函数变更'],
731  [ApiDiffType.FUNCTION_PARAM_NAME_CHANGE, '函数变更'],
732  [ApiDiffType.FUNCTION_PARAM_TYPE_CHANGE, '函数变更'],
733  [ApiDiffType.FUNCTION_PARAM_TYPE_ADD, '函数变更'],
734  [ApiDiffType.FUNCTION_PARAM_TYPE_REDUCE, '函数变更'],
735  [ApiDiffType.FUNCTION_PARAM_CHANGE, '函数变更'],
736  [ApiDiffType.FUNCTION_CHANGES, '函数变更'],
737  [ApiDiffType.PROPERTY_READONLY_TO_UNREQUIRED, '属性变更'],
738  [ApiDiffType.PROPERTY_READONLY_TO_REQUIRED, '属性变更'],
739  [ApiDiffType.PROPERTY_WRITABLE_TO_UNREQUIRED, '属性变更'],
740  [ApiDiffType.PROPERTY_WRITABLE_TO_REQUIRED, '属性变更'],
741  [ApiDiffType.PROPERTY_TYPE_CHANGE, '属性变更'],
742  [ApiDiffType.PROPERTY_READONLY_ADD, '属性变更'],
743  [ApiDiffType.PROPERTY_READONLY_REDUCE, '属性变更'],
744  [ApiDiffType.PROPERTY_WRITABLE_ADD, '属性变更'],
745  [ApiDiffType.PROPERTY_WRITABLE_REDUCE, '属性变更'],
746  [ApiDiffType.PROPERTY_TYPE_SIGN_CHANGE, '属性变更'],
747  [ApiDiffType.CONSTANT_VALUE_CHANGE, '常量变更'],
748  [ApiDiffType.TYPE_ALIAS_CHANGE, '自定义类型变更'],
749  [ApiDiffType.TYPE_ALIAS_ADD, '自定义类型变更'],
750  [ApiDiffType.TYPE_ALIAS_REDUCE, '自定义类型变更'],
751  [ApiDiffType.TYPE_ALIAS_FUNCTION_RETURN_TYPE_ADD, '函数变更'],
752  [ApiDiffType.TYPE_ALIAS_FUNCTION_RETURN_TYPE_REDUCE, '函数变更'],
753  [ApiDiffType.TYPE_ALIAS_FUNCTION_RETURN_TYPE_CHANGE, '函数变更'],
754  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_POS_CHAHGE, '自定义类型变更'],
755  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_UNREQUIRED_ADD, '自定义类型变更'],
756  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_REQUIRED_ADD, '自定义类型变更'],
757  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_REDUCE, '自定义类型变更'],
758  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TO_UNREQUIRED, '自定义类型变更'],
759  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TO_REQUIRED, '自定义类型变更'],
760  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TYPE_CHANGE, '自定义类型变更'],
761  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TYPE_ADD, '自定义类型变更'],
762  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TYPE_REDUCE, '自定义类型变更'],
763  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_CHANGE, '自定义类型变更'],
764  [ApiDiffType.ENUM_MEMBER_VALUE_CHANGE, '枚举赋值发生改变'],
765  [ApiDiffType.ADD, '新增API'],
766  [ApiDiffType.REDUCE, '删除API'],
767  [ApiDiffType.DELETE_DECORATOR, '删除装饰器'],
768  [ApiDiffType.NEW_DECORATOR, '新增装饰器'],
769  [ApiDiffType.SINCE_VERSION_A_TO_B, '起始版本有变化'],
770  [ApiDiffType.SINCE_VERSION_HAVE_TO_NA, '起始版本有变化'],
771  [ApiDiffType.SINCE_VERSION_NA_TO_HAVE, '起始版本有变化'],
772  [ApiDiffType.KIT_CHANGE, 'kit变更'],
773  [ApiDiffType.KIT_HAVE_TO_NA, '删除kit'],
774  [ApiDiffType.KIT_NA_TO_HAVE, '新增kit'],
775  [ApiDiffType.ATOMIC_SERVICE_HAVE_TO_NA, 'API从支持元服务到不支持元服务'],
776  [ApiDiffType.ATOMIC_SERVICE_NA_TO_HAVE, 'API从不支持元服务到支持元服务'],
777]);
778
779export const diffMap: Map<ApiDiffType, string> = new Map([
780  [ApiDiffType.SYSTEM_TO_PUBLIC, '从系统API变更为公开API'],
781  [ApiDiffType.PUBLIC_TO_SYSTEM, '从公开API变更为系统API'],
782  [ApiDiffType.NA_TO_STAGE, '从无模型使用限制到仅在Stage模型下使用'],
783  [ApiDiffType.NA_TO_FA, '从无模型使用限制到仅在FA模型下使用'],
784  [ApiDiffType.FA_TO_STAGE, '从仅在FA模型下使用到仅在Stage模型下使用'],
785  [ApiDiffType.STAGE_TO_FA, '从仅在Stage模型下使用到仅在FA模型下使用'],
786  [ApiDiffType.STAGE_TO_NA, '从仅在Stage模型下使用到无模型使用限制'],
787  [ApiDiffType.FA_TO_NA, '从仅在FA模型下使用到无模型使用限制'],
788  [ApiDiffType.NA_TO_CARD, '从不支持卡片到支持卡片'],
789  [ApiDiffType.CARD_TO_NA, '从支持卡片到不支持卡片'],
790  [ApiDiffType.NA_TO_CROSS_PLATFORM, '从不支持跨平台到支持跨平台'],
791  [ApiDiffType.CROSS_PLATFORM_TO_NA, '从支持跨平台到不支持跨平台'],
792  [ApiDiffType.SYSCAP_NA_TO_HAVE, '从没有syscap到有syscap'],
793  [ApiDiffType.SYSCAP_HAVE_TO_NA, '从有syscap到没有syscap'],
794  [ApiDiffType.SYSCAP_A_TO_B, 'syscap发生改变'],
795  [ApiDiffType.DEPRECATED_NA_TO_HAVE, '接口变更为废弃'],
796  [ApiDiffType.DEPRECATED_HAVE_TO_NA, '废弃接口变更为不废弃'],
797  [ApiDiffType.DEPRECATED_NOT_All, '接口变更为废弃'],
798  [ApiDiffType.DEPRECATED_A_TO_B, '接口废弃版本发生变化'],
799  [ApiDiffType.ERROR_CODE_NA_TO_HAVE, '错误码从无到有'],
800  [ApiDiffType.ERROR_CODE_ADD, '错误码增加'],
801  [ApiDiffType.ERROR_CODE_REDUCE, '错误码减少'],
802  [ApiDiffType.ERROR_CODE_CHANGE, '错误码的code值发生变化'],
803  [ApiDiffType.PERMISSION_NA_TO_HAVE, '权限从无到有'],
804  [ApiDiffType.PERMISSION_HAVE_TO_NA, '权限从有到无'],
805  [ApiDiffType.PERMISSION_RANGE_BIGGER, '增加or或减少and权限'],
806  [ApiDiffType.PERMISSION_RANGE_SMALLER, '减少or或增加and权限'],
807  [ApiDiffType.PERMISSION_RANGE_CHANGE, '权限发生改变无法判断范围变化'],
808  [ApiDiffType.TYPE_RANGE_BIGGER, '类型范围变大'],
809  [ApiDiffType.TYPE_RANGE_SMALLER, '类型范围变小'],
810  [ApiDiffType.TYPE_RANGE_CHANGE, '类型范围改变'],
811  [ApiDiffType.API_NAME_CHANGE, 'API名称变更'],
812  [ApiDiffType.FUNCTION_RETURN_TYPE_ADD, '函数返回值类型扩大'],
813  [ApiDiffType.FUNCTION_RETURN_TYPE_REDUCE, '函数返回值类型缩小'],
814  [ApiDiffType.FUNCTION_RETURN_TYPE_CHANGE, '函数返回值类型改变'],
815  [ApiDiffType.FUNCTION_PARAM_POS_CHANGE, '函数参数位置发生改变'],
816  [ApiDiffType.FUNCTION_PARAM_UNREQUIRED_ADD, '函数新增可选参数'],
817  [ApiDiffType.FUNCTION_PARAM_REQUIRED_ADD, '函数新增必选参数'],
818  [ApiDiffType.FUNCTION_PARAM_REDUCE, '函数删除参数'],
819  [ApiDiffType.FUNCTION_PARAM_TO_UNREQUIRED, '函数中的必选参数变为可选参数'],
820  [ApiDiffType.FUNCTION_PARAM_TO_REQUIRED, '函数中的可选参数变为必选参数'],
821  [ApiDiffType.FUNCTION_PARAM_NAME_CHANGE, '函数中的参数名称发生改变'],
822  [ApiDiffType.FUNCTION_PARAM_TYPE_CHANGE, '函数的参数类型变更'],
823  [ApiDiffType.FUNCTION_PARAM_TYPE_ADD, '函数的参数类型范围扩大'],
824  [ApiDiffType.FUNCTION_PARAM_TYPE_REDUCE, '函数的参数类型范围缩小'],
825  [ApiDiffType.FUNCTION_PARAM_CHANGE, '函数的参数变更'],
826  [ApiDiffType.FUNCTION_CHANGES, '函数有变化'],
827  [ApiDiffType.PROPERTY_READONLY_TO_UNREQUIRED, '只读属性由必选变为可选'],
828  [ApiDiffType.PROPERTY_READONLY_TO_REQUIRED, '只读属性由可选变为必选'],
829  [ApiDiffType.PROPERTY_WRITABLE_TO_UNREQUIRED, '可写属性由必选变为可选'],
830  [ApiDiffType.PROPERTY_WRITABLE_TO_REQUIRED, '可写属性由可选变为必选'],
831  [ApiDiffType.PROPERTY_TYPE_CHANGE, '属性类型发生改变'],
832  [ApiDiffType.PROPERTY_TYPE_SIGN_CHANGE, '属性类型发生改变'],
833  [ApiDiffType.PROPERTY_READONLY_ADD, '只读属性类型范围扩大'],
834  [ApiDiffType.PROPERTY_READONLY_REDUCE, '只读属性类型范围缩小'],
835  [ApiDiffType.PROPERTY_WRITABLE_ADD, '可写属性类型范围扩大'],
836  [ApiDiffType.PROPERTY_WRITABLE_REDUCE, '可写属性类型范围缩小'],
837  [ApiDiffType.CONSTANT_VALUE_CHANGE, '常量值发生改变'],
838  [ApiDiffType.TYPE_ALIAS_CHANGE, '自定义类型值改变'],
839  [ApiDiffType.TYPE_ALIAS_ADD, '自定义类型值范围扩大'],
840  [ApiDiffType.TYPE_ALIAS_REDUCE, '自定义类型值范围缩小'],
841  [ApiDiffType.TYPE_ALIAS_FUNCTION_RETURN_TYPE_ADD, '自定义方法类型返回值类型扩大'],
842  [ApiDiffType.TYPE_ALIAS_FUNCTION_RETURN_TYPE_REDUCE, '自定义方法类型返回值类型缩小'],
843  [ApiDiffType.TYPE_ALIAS_FUNCTION_RETURN_TYPE_CHANGE, '自定义方法类型返回值类型改变'],
844  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_POS_CHAHGE, '自定义方法类型参数位置发生改变'],
845  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_UNREQUIRED_ADD, '自定义方法类型新增可选参数'],
846  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_REQUIRED_ADD, '自定义方法类型新增必选参数'],
847  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_REDUCE, '自定义方法类型删除参数'],
848  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TO_UNREQUIRED, '自定义方法类型的必选参数变为可选参数'],
849  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TO_REQUIRED, '自定义方法类型的可选参数变为必选参数'],
850  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TYPE_CHANGE, '自定义方法类型的参数类型变更'],
851  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TYPE_ADD, '自定义方法类型的参数类型范围扩大'],
852  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TYPE_REDUCE, '自定义方法类型的参数类型范围缩小'],
853  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_CHANGE, '自定义方法类型的参数变更'],
854  [ApiDiffType.ENUM_MEMBER_VALUE_CHANGE, '枚举赋值发生改变'],
855  [ApiDiffType.ADD, '新增API'],
856  [ApiDiffType.REDUCE, '删除API'],
857  [ApiDiffType.DELETE_DECORATOR, '删除装饰器'],
858  [ApiDiffType.NEW_DECORATOR, '新增装饰器'],
859  [ApiDiffType.SINCE_VERSION_A_TO_B, '起始版本号变更'],
860  [ApiDiffType.SINCE_VERSION_HAVE_TO_NA, '起始版本号删除'],
861  [ApiDiffType.SINCE_VERSION_NA_TO_HAVE, '起始版本号新增'],
862  [ApiDiffType.HISTORICAL_JSDOC_CHANGE, '历史版本jsdoc变更'],
863  [ApiDiffType.HISTORICAL_API_CHANGE, '历史版本API变更'],
864  [ApiDiffType.KIT_CHANGE, 'kit变更'],
865  [ApiDiffType.KIT_HAVE_TO_NA, 'kit信息从有到无'],
866  [ApiDiffType.KIT_NA_TO_HAVE, 'kit信息从无到有'],
867  [ApiDiffType.ATOMIC_SERVICE_HAVE_TO_NA, 'API从支持元服务到不支持元服务'],
868  [ApiDiffType.ATOMIC_SERVICE_NA_TO_HAVE, 'API从不支持元服务到支持元服务'],
869]);
870
871export const apiChangeMap: Map<ApiDiffType, string> = new Map([
872  [ApiDiffType.SYSTEM_TO_PUBLIC, 'API修改(约束变化)'],
873  [ApiDiffType.PUBLIC_TO_SYSTEM, 'API修改(约束变化)'],
874  [ApiDiffType.NA_TO_STAGE, 'API修改(约束变化)'],
875  [ApiDiffType.NA_TO_FA, 'API修改(约束变化)'],
876  [ApiDiffType.FA_TO_STAGE, 'API修改(约束变化)'],
877  [ApiDiffType.STAGE_TO_FA, 'API修改(约束变化)'],
878  [ApiDiffType.STAGE_TO_NA, 'API修改(约束变化)'],
879  [ApiDiffType.FA_TO_NA, 'API修改(约束变化)'],
880  [ApiDiffType.NA_TO_CARD, 'API修改(约束变化)'],
881  [ApiDiffType.CARD_TO_NA, 'API修改(约束变化)'],
882  [ApiDiffType.NA_TO_CROSS_PLATFORM, 'API修改(约束变化)'],
883  [ApiDiffType.CROSS_PLATFORM_TO_NA, 'API修改(约束变化)'],
884  [ApiDiffType.SYSCAP_NA_TO_HAVE, 'API修改(约束变化)'],
885  [ApiDiffType.SYSCAP_HAVE_TO_NA, 'API修改(约束变化)'],
886  [ApiDiffType.SYSCAP_A_TO_B, 'API修改(约束变化)'],
887  [ApiDiffType.DEPRECATED_NA_TO_HAVE, 'API废弃'],
888  [ApiDiffType.DEPRECATED_HAVE_TO_NA, 'API废弃'],
889  [ApiDiffType.DEPRECATED_NOT_All, 'API修改(约束变化)'],
890  [ApiDiffType.DEPRECATED_A_TO_B, 'API废弃'],
891  [ApiDiffType.ERROR_CODE_NA_TO_HAVE, 'API修改(约束变化)'],
892  [ApiDiffType.ERROR_CODE_ADD, 'API修改(原型修改)'],
893  [ApiDiffType.ERROR_CODE_REDUCE, 'API修改(原型修改)'],
894  [ApiDiffType.ERROR_CODE_CHANGE, 'API修改(原型修改)'],
895  [ApiDiffType.PERMISSION_NA_TO_HAVE, 'API修改(约束变化)'],
896  [ApiDiffType.PERMISSION_HAVE_TO_NA, 'API修改(约束变化)'],
897  [ApiDiffType.PERMISSION_RANGE_BIGGER, 'API修改(约束变化)'],
898  [ApiDiffType.PERMISSION_RANGE_SMALLER, 'API修改(约束变化)'],
899  [ApiDiffType.PERMISSION_RANGE_CHANGE, 'API修改(约束变化)'],
900  [ApiDiffType.TYPE_RANGE_BIGGER, 'API修改(原型修改)'],
901  [ApiDiffType.TYPE_RANGE_SMALLER, 'API修改(原型修改)'],
902  [ApiDiffType.TYPE_RANGE_CHANGE, 'API修改(原型修改)'],
903  [ApiDiffType.API_NAME_CHANGE, 'API修改(原型修改)'],
904  [ApiDiffType.FUNCTION_RETURN_TYPE_ADD, 'API修改(原型修改)'],
905  [ApiDiffType.FUNCTION_RETURN_TYPE_REDUCE, 'API修改(原型修改)'],
906  [ApiDiffType.FUNCTION_RETURN_TYPE_CHANGE, 'API修改(原型修改)'],
907  [ApiDiffType.FUNCTION_PARAM_POS_CHANGE, 'API修改(原型修改)'],
908  [ApiDiffType.FUNCTION_PARAM_UNREQUIRED_ADD, 'API修改(原型修改)'],
909  [ApiDiffType.FUNCTION_PARAM_REQUIRED_ADD, 'API修改(原型修改)'],
910  [ApiDiffType.FUNCTION_PARAM_REDUCE, 'API修改(原型修改)'],
911  [ApiDiffType.FUNCTION_PARAM_TO_UNREQUIRED, 'API修改(原型修改)'],
912  [ApiDiffType.FUNCTION_PARAM_TO_REQUIRED, 'API修改(原型修改)'],
913  [ApiDiffType.FUNCTION_PARAM_NAME_CHANGE, 'API修改(原型修改)'],
914  [ApiDiffType.FUNCTION_PARAM_TYPE_CHANGE, 'API修改(原型修改)'],
915  [ApiDiffType.FUNCTION_PARAM_TYPE_ADD, 'API修改(原型修改)'],
916  [ApiDiffType.FUNCTION_PARAM_TYPE_REDUCE, 'API修改(原型修改)'],
917  [ApiDiffType.FUNCTION_CHANGES, 'API修改(原型修改)'],
918  [ApiDiffType.FUNCTION_PARAM_CHANGE, 'API修改(原型修改)'],
919  [ApiDiffType.PROPERTY_READONLY_TO_UNREQUIRED, 'API修改(约束变化)'],
920  [ApiDiffType.PROPERTY_READONLY_TO_REQUIRED, 'API修改(约束变化)'],
921  [ApiDiffType.PROPERTY_WRITABLE_TO_UNREQUIRED, 'API修改(约束变化)'],
922  [ApiDiffType.PROPERTY_WRITABLE_TO_REQUIRED, 'API修改(约束变化)'],
923  [ApiDiffType.PROPERTY_TYPE_CHANGE, 'API修改(原型修改)'],
924  [ApiDiffType.PROPERTY_TYPE_SIGN_CHANGE, 'API修改(原型修改)'],
925  [ApiDiffType.PROPERTY_READONLY_ADD, 'API修改(约束变化)'],
926  [ApiDiffType.PROPERTY_READONLY_REDUCE, 'API修改(约束变化)'],
927  [ApiDiffType.PROPERTY_WRITABLE_ADD, 'API修改(约束变化)'],
928  [ApiDiffType.PROPERTY_WRITABLE_REDUCE, 'API修改(约束变化)'],
929  [ApiDiffType.CONSTANT_VALUE_CHANGE, 'API修改(原型修改)'],
930  [ApiDiffType.TYPE_ALIAS_CHANGE, 'API修改(原型修改)'],
931  [ApiDiffType.TYPE_ALIAS_ADD, 'API修改(原型修改)'],
932  [ApiDiffType.TYPE_ALIAS_REDUCE, 'API修改(原型修改)'],
933  [ApiDiffType.ENUM_MEMBER_VALUE_CHANGE, 'API修改(原型修改)'],
934  [ApiDiffType.ADD, 'API新增'],
935  [ApiDiffType.REDUCE, 'API删除'],
936  [ApiDiffType.DELETE_DECORATOR, 'API修改(约束变化)'],
937  [ApiDiffType.NEW_DECORATOR, 'API修改(约束变化)'],
938  [ApiDiffType.SINCE_VERSION_A_TO_B, 'API修改(约束变化)'],
939  [ApiDiffType.SINCE_VERSION_HAVE_TO_NA, 'API修改(约束变化)'],
940  [ApiDiffType.SINCE_VERSION_NA_TO_HAVE, 'API修改(约束变化)'],
941  [ApiDiffType.KIT_CHANGE, '非API变更'],
942  [ApiDiffType.KIT_HAVE_TO_NA, '非API变更'],
943  [ApiDiffType.KIT_NA_TO_HAVE, '非API变更'],
944  [ApiDiffType.ATOMIC_SERVICE_HAVE_TO_NA, 'API修改(约束变化)'],
945  [ApiDiffType.ATOMIC_SERVICE_NA_TO_HAVE, 'API修改(约束变化)'],
946  [ApiDiffType.TYPE_ALIAS_FUNCTION_RETURN_TYPE_ADD, 'API修改(原型修改)'],
947  [ApiDiffType.TYPE_ALIAS_FUNCTION_RETURN_TYPE_REDUCE, 'API修改(原型修改)'],
948  [ApiDiffType.TYPE_ALIAS_FUNCTION_RETURN_TYPE_CHANGE, 'API修改(原型修改)'],
949  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_POS_CHAHGE, 'API修改(原型修改)'],
950  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_UNREQUIRED_ADD, 'API修改(原型修改)'],
951  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_REQUIRED_ADD, 'API修改(原型修改)'],
952  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_REDUCE, 'API修改(原型修改)'],
953  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TO_UNREQUIRED, 'API修改(原型修改)'],
954  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TO_REQUIRED, 'API修改(原型修改)'],
955  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TYPE_CHANGE, 'API修改(原型修改)'],
956  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TYPE_ADD, 'API修改(原型修改)'],
957  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TYPE_REDUCE, 'API修改(原型修改)'],
958  [ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_CHANGE, 'API修改(原型修改)'],
959]);
960
961/**
962 * 非兼容性变更类型
963 */
964export const incompatibleApiDiffTypes: Set<ApiDiffType> = new Set([
965  ApiDiffType.PUBLIC_TO_SYSTEM,
966  ApiDiffType.NA_TO_STAGE,
967  ApiDiffType.NA_TO_FA,
968  ApiDiffType.FA_TO_STAGE,
969  ApiDiffType.STAGE_TO_FA,
970  ApiDiffType.CARD_TO_NA,
971  ApiDiffType.CROSS_PLATFORM_TO_NA,
972  ApiDiffType.ERROR_CODE_NA_TO_HAVE,
973  ApiDiffType.ERROR_CODE_CHANGE,
974  ApiDiffType.PERMISSION_NA_TO_HAVE,
975  ApiDiffType.PERMISSION_RANGE_SMALLER,
976  ApiDiffType.PERMISSION_RANGE_CHANGE,
977  ApiDiffType.API_NAME_CHANGE,
978  ApiDiffType.FUNCTION_RETURN_TYPE_ADD,
979  ApiDiffType.FUNCTION_RETURN_TYPE_CHANGE,
980  ApiDiffType.FUNCTION_PARAM_POS_CHANGE,
981  ApiDiffType.FUNCTION_PARAM_REQUIRED_ADD,
982  ApiDiffType.FUNCTION_PARAM_REDUCE,
983  ApiDiffType.FUNCTION_PARAM_TO_REQUIRED,
984  ApiDiffType.FUNCTION_PARAM_TYPE_CHANGE,
985  ApiDiffType.FUNCTION_PARAM_TYPE_REDUCE,
986  ApiDiffType.FUNCTION_PARAM_CHANGE,
987  ApiDiffType.FUNCTION_CHANGES,
988  ApiDiffType.PROPERTY_READONLY_TO_REQUIRED,
989  ApiDiffType.PROPERTY_WRITABLE_TO_UNREQUIRED,
990  ApiDiffType.PROPERTY_WRITABLE_TO_REQUIRED,
991  ApiDiffType.PROPERTY_TYPE_CHANGE,
992  ApiDiffType.PROPERTY_READONLY_ADD,
993  ApiDiffType.PROPERTY_WRITABLE_ADD,
994  ApiDiffType.PROPERTY_WRITABLE_REDUCE,
995  ApiDiffType.CONSTANT_VALUE_CHANGE,
996  ApiDiffType.TYPE_ALIAS_CHANGE,
997  ApiDiffType.TYPE_ALIAS_ADD,
998  ApiDiffType.TYPE_ALIAS_REDUCE,
999  ApiDiffType.ENUM_MEMBER_VALUE_CHANGE,
1000  ApiDiffType.REDUCE,
1001  ApiDiffType.HISTORICAL_JSDOC_CHANGE,
1002  ApiDiffType.HISTORICAL_API_CHANGE,
1003  ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TYPE_REDUCE,
1004  ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TYPE_CHANGE,
1005  ApiDiffType.FUNCTION_RETURN_TYPE_REDUCE,
1006  ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_TYPE_ADD,
1007  ApiDiffType.TYPE_ALIAS_FUNCTION_PARAM_CHANGE,
1008  ApiDiffType.ATOMIC_SERVICE_HAVE_TO_NA,
1009  ApiDiffType.DELETE_DECORATOR,
1010  ApiDiffType.NEW_DECORATOR,
1011  ApiDiffType.SYSCAP_A_TO_B,
1012  ApiDiffType.SYSCAP_HAVE_TO_NA,
1013  ApiDiffType.SYSCAP_NA_TO_HAVE,
1014  ApiDiffType.KIT_CHANGE,
1015  ApiDiffType.KIT_HAVE_TO_NA,
1016]);
1017
1018export const isNotApiSet: Set<string> = new Set([
1019  ApiType.NAMESPACE,
1020  ApiType.ENUM,
1021  ApiType.SOURCE_FILE,
1022]);
1023
1024/**
1025 * 以下API类型中新增必选属性/方法都是非兼容性变更
1026 */
1027export const parentApiTypeSet: Set<string> = new Set([
1028  ApiType.INTERFACE,
1029  ApiType.STRUCT,
1030  ApiType.CLASS
1031]);
1032