@microsoft/api-extractor-model 7.9.7 → 7.10.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/CHANGELOG.json +75 -0
  2. package/CHANGELOG.md +29 -1
  3. package/README.md +9 -0
  4. package/dist/rollup.d.ts +62 -62
  5. package/dist/tsdoc-metadata.json +1 -1
  6. package/lib/aedoc/AedocDefinitions.d.ts +1 -1
  7. package/lib/aedoc/AedocDefinitions.d.ts.map +1 -1
  8. package/lib/aedoc/AedocDefinitions.js +2 -1
  9. package/lib/aedoc/AedocDefinitions.js.map +1 -1
  10. package/lib/aedoc/ReleaseTag.js +1 -0
  11. package/lib/aedoc/ReleaseTag.js.map +1 -1
  12. package/lib/index.js +37 -37
  13. package/lib/index.js.map +1 -1
  14. package/lib/items/ApiDeclaredItem.d.ts +2 -2
  15. package/lib/items/ApiDeclaredItem.d.ts.map +1 -1
  16. package/lib/items/ApiDeclaredItem.js +1 -0
  17. package/lib/items/ApiDeclaredItem.js.map +1 -1
  18. package/lib/items/ApiDocumentedItem.d.ts +1 -1
  19. package/lib/items/ApiDocumentedItem.d.ts.map +1 -1
  20. package/lib/items/ApiDocumentedItem.js +21 -1
  21. package/lib/items/ApiDocumentedItem.js.map +1 -1
  22. package/lib/items/ApiItem.d.ts +6 -6
  23. package/lib/items/ApiItem.d.ts.map +1 -1
  24. package/lib/items/ApiItem.js +1 -0
  25. package/lib/items/ApiItem.js.map +1 -1
  26. package/lib/items/ApiPropertyItem.d.ts +1 -1
  27. package/lib/items/ApiPropertyItem.d.ts.map +1 -1
  28. package/lib/items/ApiPropertyItem.js +1 -0
  29. package/lib/items/ApiPropertyItem.js.map +1 -1
  30. package/lib/mixins/ApiItemContainerMixin.js +1 -0
  31. package/lib/mixins/ApiItemContainerMixin.js.map +1 -1
  32. package/lib/mixins/ApiNameMixin.js +1 -0
  33. package/lib/mixins/ApiNameMixin.js.map +1 -1
  34. package/lib/mixins/ApiParameterListMixin.js +1 -0
  35. package/lib/mixins/ApiParameterListMixin.js.map +1 -1
  36. package/lib/mixins/ApiReleaseTagMixin.d.ts.map +1 -1
  37. package/lib/mixins/ApiReleaseTagMixin.js +4 -1
  38. package/lib/mixins/ApiReleaseTagMixin.js.map +1 -1
  39. package/lib/mixins/ApiReturnTypeMixin.js +1 -0
  40. package/lib/mixins/ApiReturnTypeMixin.js.map +1 -1
  41. package/lib/mixins/ApiStaticMixin.js +1 -0
  42. package/lib/mixins/ApiStaticMixin.js.map +1 -1
  43. package/lib/mixins/ApiTypeParameterListMixin.js +1 -0
  44. package/lib/mixins/ApiTypeParameterListMixin.js.map +1 -1
  45. package/lib/mixins/Excerpt.d.ts +5 -5
  46. package/lib/mixins/Excerpt.d.ts.map +1 -1
  47. package/lib/mixins/Excerpt.js +1 -0
  48. package/lib/mixins/Excerpt.js.map +1 -1
  49. package/lib/model/ApiCallSignature.d.ts +2 -2
  50. package/lib/model/ApiCallSignature.d.ts.map +1 -1
  51. package/lib/model/ApiCallSignature.js +1 -0
  52. package/lib/model/ApiCallSignature.js.map +1 -1
  53. package/lib/model/ApiClass.d.ts +3 -3
  54. package/lib/model/ApiClass.d.ts.map +1 -1
  55. package/lib/model/ApiClass.js +1 -0
  56. package/lib/model/ApiClass.js.map +1 -1
  57. package/lib/model/ApiConstructSignature.d.ts +2 -2
  58. package/lib/model/ApiConstructSignature.d.ts.map +1 -1
  59. package/lib/model/ApiConstructSignature.js +1 -0
  60. package/lib/model/ApiConstructSignature.js.map +1 -1
  61. package/lib/model/ApiConstructor.d.ts +2 -2
  62. package/lib/model/ApiConstructor.d.ts.map +1 -1
  63. package/lib/model/ApiConstructor.js +1 -0
  64. package/lib/model/ApiConstructor.js.map +1 -1
  65. package/lib/model/ApiEntryPoint.d.ts +3 -3
  66. package/lib/model/ApiEntryPoint.d.ts.map +1 -1
  67. package/lib/model/ApiEntryPoint.js +1 -0
  68. package/lib/model/ApiEntryPoint.js.map +1 -1
  69. package/lib/model/ApiEnum.d.ts +3 -3
  70. package/lib/model/ApiEnum.d.ts.map +1 -1
  71. package/lib/model/ApiEnum.js +1 -0
  72. package/lib/model/ApiEnum.js.map +1 -1
  73. package/lib/model/ApiEnumMember.d.ts +2 -2
  74. package/lib/model/ApiEnumMember.d.ts.map +1 -1
  75. package/lib/model/ApiEnumMember.js +1 -0
  76. package/lib/model/ApiEnumMember.js.map +1 -1
  77. package/lib/model/ApiFunction.d.ts +2 -2
  78. package/lib/model/ApiFunction.d.ts.map +1 -1
  79. package/lib/model/ApiFunction.js +1 -0
  80. package/lib/model/ApiFunction.js.map +1 -1
  81. package/lib/model/ApiIndexSignature.d.ts +2 -2
  82. package/lib/model/ApiIndexSignature.d.ts.map +1 -1
  83. package/lib/model/ApiIndexSignature.js +1 -0
  84. package/lib/model/ApiIndexSignature.js.map +1 -1
  85. package/lib/model/ApiInterface.d.ts +3 -3
  86. package/lib/model/ApiInterface.d.ts.map +1 -1
  87. package/lib/model/ApiInterface.js +1 -0
  88. package/lib/model/ApiInterface.js.map +1 -1
  89. package/lib/model/ApiMethod.d.ts +2 -2
  90. package/lib/model/ApiMethod.d.ts.map +1 -1
  91. package/lib/model/ApiMethod.js +1 -0
  92. package/lib/model/ApiMethod.js.map +1 -1
  93. package/lib/model/ApiMethodSignature.d.ts +2 -2
  94. package/lib/model/ApiMethodSignature.d.ts.map +1 -1
  95. package/lib/model/ApiMethodSignature.js +1 -0
  96. package/lib/model/ApiMethodSignature.js.map +1 -1
  97. package/lib/model/ApiModel.d.ts +3 -3
  98. package/lib/model/ApiModel.d.ts.map +1 -1
  99. package/lib/model/ApiModel.js +1 -0
  100. package/lib/model/ApiModel.js.map +1 -1
  101. package/lib/model/ApiNamespace.d.ts +2 -2
  102. package/lib/model/ApiNamespace.d.ts.map +1 -1
  103. package/lib/model/ApiNamespace.js +1 -0
  104. package/lib/model/ApiNamespace.js.map +1 -1
  105. package/lib/model/ApiPackage.d.ts +3 -3
  106. package/lib/model/ApiPackage.d.ts.map +1 -1
  107. package/lib/model/ApiPackage.js +1 -0
  108. package/lib/model/ApiPackage.js.map +1 -1
  109. package/lib/model/ApiProperty.d.ts +2 -2
  110. package/lib/model/ApiProperty.d.ts.map +1 -1
  111. package/lib/model/ApiProperty.js +1 -0
  112. package/lib/model/ApiProperty.js.map +1 -1
  113. package/lib/model/ApiPropertySignature.d.ts +2 -2
  114. package/lib/model/ApiPropertySignature.d.ts.map +1 -1
  115. package/lib/model/ApiPropertySignature.js +1 -0
  116. package/lib/model/ApiPropertySignature.js.map +1 -1
  117. package/lib/model/ApiTypeAlias.d.ts +2 -2
  118. package/lib/model/ApiTypeAlias.d.ts.map +1 -1
  119. package/lib/model/ApiTypeAlias.js +1 -0
  120. package/lib/model/ApiTypeAlias.js.map +1 -1
  121. package/lib/model/ApiVariable.d.ts +2 -2
  122. package/lib/model/ApiVariable.d.ts.map +1 -1
  123. package/lib/model/ApiVariable.js +1 -0
  124. package/lib/model/ApiVariable.js.map +1 -1
  125. package/lib/model/Deserializer.js +1 -0
  126. package/lib/model/Deserializer.js.map +1 -1
  127. package/lib/model/DeserializerContext.js +1 -0
  128. package/lib/model/DeserializerContext.js.map +1 -1
  129. package/lib/model/HeritageType.js +1 -0
  130. package/lib/model/HeritageType.js.map +1 -1
  131. package/lib/model/ModelReferenceResolver.js +1 -0
  132. package/lib/model/ModelReferenceResolver.js.map +1 -1
  133. package/lib/model/Parameter.d.ts +1 -1
  134. package/lib/model/Parameter.d.ts.map +1 -1
  135. package/lib/model/Parameter.js +1 -0
  136. package/lib/model/Parameter.js.map +1 -1
  137. package/lib/model/TypeParameter.d.ts +1 -1
  138. package/lib/model/TypeParameter.d.ts.map +1 -1
  139. package/lib/model/TypeParameter.js +1 -0
  140. package/lib/model/TypeParameter.js.map +1 -1
  141. package/package.json +6 -6
package/lib/index.js CHANGED
@@ -11,79 +11,79 @@ Object.defineProperty(exports, "__esModule", { value: true });
11
11
  * @packageDocumentation
12
12
  */
13
13
  var AedocDefinitions_1 = require("./aedoc/AedocDefinitions");
14
- exports.AedocDefinitions = AedocDefinitions_1.AedocDefinitions;
14
+ Object.defineProperty(exports, "AedocDefinitions", { enumerable: true, get: function () { return AedocDefinitions_1.AedocDefinitions; } });
15
15
  var ReleaseTag_1 = require("./aedoc/ReleaseTag");
16
- exports.ReleaseTag = ReleaseTag_1.ReleaseTag;
16
+ Object.defineProperty(exports, "ReleaseTag", { enumerable: true, get: function () { return ReleaseTag_1.ReleaseTag; } });
17
17
  // items
18
18
  var ApiDeclaredItem_1 = require("./items/ApiDeclaredItem");
19
- exports.ApiDeclaredItem = ApiDeclaredItem_1.ApiDeclaredItem;
19
+ Object.defineProperty(exports, "ApiDeclaredItem", { enumerable: true, get: function () { return ApiDeclaredItem_1.ApiDeclaredItem; } });
20
20
  var ApiDocumentedItem_1 = require("./items/ApiDocumentedItem");
21
- exports.ApiDocumentedItem = ApiDocumentedItem_1.ApiDocumentedItem;
21
+ Object.defineProperty(exports, "ApiDocumentedItem", { enumerable: true, get: function () { return ApiDocumentedItem_1.ApiDocumentedItem; } });
22
22
  var ApiItem_1 = require("./items/ApiItem");
23
- exports.ApiItem = ApiItem_1.ApiItem;
23
+ Object.defineProperty(exports, "ApiItem", { enumerable: true, get: function () { return ApiItem_1.ApiItem; } });
24
24
  var ApiPropertyItem_1 = require("./items/ApiPropertyItem");
25
- exports.ApiPropertyItem = ApiPropertyItem_1.ApiPropertyItem;
25
+ Object.defineProperty(exports, "ApiPropertyItem", { enumerable: true, get: function () { return ApiPropertyItem_1.ApiPropertyItem; } });
26
26
  // mixins
27
27
  var ApiParameterListMixin_1 = require("./mixins/ApiParameterListMixin");
28
- exports.ApiParameterListMixin = ApiParameterListMixin_1.ApiParameterListMixin;
28
+ Object.defineProperty(exports, "ApiParameterListMixin", { enumerable: true, get: function () { return ApiParameterListMixin_1.ApiParameterListMixin; } });
29
29
  var ApiTypeParameterListMixin_1 = require("./mixins/ApiTypeParameterListMixin");
30
- exports.ApiTypeParameterListMixin = ApiTypeParameterListMixin_1.ApiTypeParameterListMixin;
30
+ Object.defineProperty(exports, "ApiTypeParameterListMixin", { enumerable: true, get: function () { return ApiTypeParameterListMixin_1.ApiTypeParameterListMixin; } });
31
31
  var ApiItemContainerMixin_1 = require("./mixins/ApiItemContainerMixin");
32
- exports.ApiItemContainerMixin = ApiItemContainerMixin_1.ApiItemContainerMixin;
32
+ Object.defineProperty(exports, "ApiItemContainerMixin", { enumerable: true, get: function () { return ApiItemContainerMixin_1.ApiItemContainerMixin; } });
33
33
  var ApiReleaseTagMixin_1 = require("./mixins/ApiReleaseTagMixin");
34
- exports.ApiReleaseTagMixin = ApiReleaseTagMixin_1.ApiReleaseTagMixin;
34
+ Object.defineProperty(exports, "ApiReleaseTagMixin", { enumerable: true, get: function () { return ApiReleaseTagMixin_1.ApiReleaseTagMixin; } });
35
35
  var ApiReturnTypeMixin_1 = require("./mixins/ApiReturnTypeMixin");
36
- exports.ApiReturnTypeMixin = ApiReturnTypeMixin_1.ApiReturnTypeMixin;
36
+ Object.defineProperty(exports, "ApiReturnTypeMixin", { enumerable: true, get: function () { return ApiReturnTypeMixin_1.ApiReturnTypeMixin; } });
37
37
  var ApiStaticMixin_1 = require("./mixins/ApiStaticMixin");
38
- exports.ApiStaticMixin = ApiStaticMixin_1.ApiStaticMixin;
38
+ Object.defineProperty(exports, "ApiStaticMixin", { enumerable: true, get: function () { return ApiStaticMixin_1.ApiStaticMixin; } });
39
39
  var ApiNameMixin_1 = require("./mixins/ApiNameMixin");
40
- exports.ApiNameMixin = ApiNameMixin_1.ApiNameMixin;
40
+ Object.defineProperty(exports, "ApiNameMixin", { enumerable: true, get: function () { return ApiNameMixin_1.ApiNameMixin; } });
41
41
  var Excerpt_1 = require("./mixins/Excerpt");
42
- exports.ExcerptToken = Excerpt_1.ExcerptToken;
43
- exports.Excerpt = Excerpt_1.Excerpt;
42
+ Object.defineProperty(exports, "ExcerptToken", { enumerable: true, get: function () { return Excerpt_1.ExcerptToken; } });
43
+ Object.defineProperty(exports, "Excerpt", { enumerable: true, get: function () { return Excerpt_1.Excerpt; } });
44
44
  // model
45
45
  var ApiCallSignature_1 = require("./model/ApiCallSignature");
46
- exports.ApiCallSignature = ApiCallSignature_1.ApiCallSignature;
46
+ Object.defineProperty(exports, "ApiCallSignature", { enumerable: true, get: function () { return ApiCallSignature_1.ApiCallSignature; } });
47
47
  var ApiClass_1 = require("./model/ApiClass");
48
- exports.ApiClass = ApiClass_1.ApiClass;
48
+ Object.defineProperty(exports, "ApiClass", { enumerable: true, get: function () { return ApiClass_1.ApiClass; } });
49
49
  var ApiConstructor_1 = require("./model/ApiConstructor");
50
- exports.ApiConstructor = ApiConstructor_1.ApiConstructor;
50
+ Object.defineProperty(exports, "ApiConstructor", { enumerable: true, get: function () { return ApiConstructor_1.ApiConstructor; } });
51
51
  var ApiConstructSignature_1 = require("./model/ApiConstructSignature");
52
- exports.ApiConstructSignature = ApiConstructSignature_1.ApiConstructSignature;
52
+ Object.defineProperty(exports, "ApiConstructSignature", { enumerable: true, get: function () { return ApiConstructSignature_1.ApiConstructSignature; } });
53
53
  var ApiEntryPoint_1 = require("./model/ApiEntryPoint");
54
- exports.ApiEntryPoint = ApiEntryPoint_1.ApiEntryPoint;
54
+ Object.defineProperty(exports, "ApiEntryPoint", { enumerable: true, get: function () { return ApiEntryPoint_1.ApiEntryPoint; } });
55
55
  var ApiEnum_1 = require("./model/ApiEnum");
56
- exports.ApiEnum = ApiEnum_1.ApiEnum;
56
+ Object.defineProperty(exports, "ApiEnum", { enumerable: true, get: function () { return ApiEnum_1.ApiEnum; } });
57
57
  var ApiEnumMember_1 = require("./model/ApiEnumMember");
58
- exports.ApiEnumMember = ApiEnumMember_1.ApiEnumMember;
58
+ Object.defineProperty(exports, "ApiEnumMember", { enumerable: true, get: function () { return ApiEnumMember_1.ApiEnumMember; } });
59
59
  var ApiFunction_1 = require("./model/ApiFunction");
60
- exports.ApiFunction = ApiFunction_1.ApiFunction;
60
+ Object.defineProperty(exports, "ApiFunction", { enumerable: true, get: function () { return ApiFunction_1.ApiFunction; } });
61
61
  var ApiIndexSignature_1 = require("./model/ApiIndexSignature");
62
- exports.ApiIndexSignature = ApiIndexSignature_1.ApiIndexSignature;
62
+ Object.defineProperty(exports, "ApiIndexSignature", { enumerable: true, get: function () { return ApiIndexSignature_1.ApiIndexSignature; } });
63
63
  var ApiInterface_1 = require("./model/ApiInterface");
64
- exports.ApiInterface = ApiInterface_1.ApiInterface;
64
+ Object.defineProperty(exports, "ApiInterface", { enumerable: true, get: function () { return ApiInterface_1.ApiInterface; } });
65
65
  var ApiMethod_1 = require("./model/ApiMethod");
66
- exports.ApiMethod = ApiMethod_1.ApiMethod;
66
+ Object.defineProperty(exports, "ApiMethod", { enumerable: true, get: function () { return ApiMethod_1.ApiMethod; } });
67
67
  var ApiMethodSignature_1 = require("./model/ApiMethodSignature");
68
- exports.ApiMethodSignature = ApiMethodSignature_1.ApiMethodSignature;
68
+ Object.defineProperty(exports, "ApiMethodSignature", { enumerable: true, get: function () { return ApiMethodSignature_1.ApiMethodSignature; } });
69
69
  var ApiModel_1 = require("./model/ApiModel");
70
- exports.ApiModel = ApiModel_1.ApiModel;
70
+ Object.defineProperty(exports, "ApiModel", { enumerable: true, get: function () { return ApiModel_1.ApiModel; } });
71
71
  var ApiNamespace_1 = require("./model/ApiNamespace");
72
- exports.ApiNamespace = ApiNamespace_1.ApiNamespace;
72
+ Object.defineProperty(exports, "ApiNamespace", { enumerable: true, get: function () { return ApiNamespace_1.ApiNamespace; } });
73
73
  var ApiPackage_1 = require("./model/ApiPackage");
74
- exports.ApiPackage = ApiPackage_1.ApiPackage;
74
+ Object.defineProperty(exports, "ApiPackage", { enumerable: true, get: function () { return ApiPackage_1.ApiPackage; } });
75
75
  var Parameter_1 = require("./model/Parameter");
76
- exports.Parameter = Parameter_1.Parameter;
76
+ Object.defineProperty(exports, "Parameter", { enumerable: true, get: function () { return Parameter_1.Parameter; } });
77
77
  var ApiProperty_1 = require("./model/ApiProperty");
78
- exports.ApiProperty = ApiProperty_1.ApiProperty;
78
+ Object.defineProperty(exports, "ApiProperty", { enumerable: true, get: function () { return ApiProperty_1.ApiProperty; } });
79
79
  var ApiPropertySignature_1 = require("./model/ApiPropertySignature");
80
- exports.ApiPropertySignature = ApiPropertySignature_1.ApiPropertySignature;
80
+ Object.defineProperty(exports, "ApiPropertySignature", { enumerable: true, get: function () { return ApiPropertySignature_1.ApiPropertySignature; } });
81
81
  var ApiTypeAlias_1 = require("./model/ApiTypeAlias");
82
- exports.ApiTypeAlias = ApiTypeAlias_1.ApiTypeAlias;
82
+ Object.defineProperty(exports, "ApiTypeAlias", { enumerable: true, get: function () { return ApiTypeAlias_1.ApiTypeAlias; } });
83
83
  var TypeParameter_1 = require("./model/TypeParameter");
84
- exports.TypeParameter = TypeParameter_1.TypeParameter;
84
+ Object.defineProperty(exports, "TypeParameter", { enumerable: true, get: function () { return TypeParameter_1.TypeParameter; } });
85
85
  var ApiVariable_1 = require("./model/ApiVariable");
86
- exports.ApiVariable = ApiVariable_1.ApiVariable;
86
+ Object.defineProperty(exports, "ApiVariable", { enumerable: true, get: function () { return ApiVariable_1.ApiVariable; } });
87
87
  var HeritageType_1 = require("./model/HeritageType");
88
- exports.HeritageType = HeritageType_1.HeritageType;
88
+ Object.defineProperty(exports, "HeritageType", { enumerable: true, get: function () { return HeritageType_1.HeritageType; } });
89
89
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;AAE3D;;;;;;;GAOG;AAEH,6DAA4D;AAAnD,8CAAA,gBAAgB,CAAA;AACzB,iDAAgD;AAAvC,kCAAA,UAAU,CAAA;AAEnB,QAAQ;AACR,2DAAmF;AAAjD,4CAAA,eAAe,CAAA;AACjD,+DAAyF;AAArD,gDAAA,iBAAiB,CAAA;AACrD,2CAA6F;AAAtD,4BAAA,OAAO,CAAA;AAC9C,2DAAmF;AAAjD,4CAAA,eAAe,CAAA;AAEjD,SAAS;AACT,wEAIwC;AADtC,wDAAA,qBAAqB,CAAA;AAEvB,gFAI4C;AAD1C,gEAAA,yBAAyB,CAAA;AAE3B,wEAAsG;AAA9D,wDAAA,qBAAqB,CAAA;AAC7D,kEAA6F;AAAxD,kDAAA,kBAAkB,CAAA;AACvD,kEAA6F;AAAxD,kDAAA,kBAAkB,CAAA;AACvD,0DAAiF;AAAhD,0CAAA,cAAc,CAAA;AAC/C,sDAA2E;AAA5C,sCAAA,YAAY,CAAA;AAC3C,4CAA8G;AAAhD,iCAAA,YAAY,CAAA;AAAE,4BAAA,OAAO,CAAA;AAGnF,QAAQ;AACR,6DAAsF;AAAnD,8CAAA,gBAAgB,CAAA;AACnD,6CAA8D;AAAnC,8BAAA,QAAQ,CAAA;AACnC,yDAAgF;AAA/C,0CAAA,cAAc,CAAA;AAC/C,uEAAqG;AAA7D,wDAAA,qBAAqB,CAAA;AAC7D,uDAA6E;AAA7C,wCAAA,aAAa,CAAA;AAC7C,2CAA2D;AAAjC,4BAAA,OAAO,CAAA;AACjC,uDAA6E;AAA7C,wCAAA,aAAa,CAAA;AAC7C,mDAAuE;AAAzC,oCAAA,WAAW,CAAA;AACzC,+DAAyF;AAArD,gDAAA,iBAAiB,CAAA;AACrD,qDAA0E;AAA3C,sCAAA,YAAY,CAAA;AAC3C,+CAAiE;AAArC,gCAAA,SAAS,CAAA;AACrC,iEAA4F;AAAvD,kDAAA,kBAAkB,CAAA;AACvD,6CAA4C;AAAnC,8BAAA,QAAQ,CAAA;AACjB,qDAA0E;AAA3C,sCAAA,YAAY,CAAA;AAC3C,iDAA4F;AAA/D,kCAAA,UAAU,CAAA;AACvC,+CAAiE;AAArC,gCAAA,SAAS,CAAA;AACrC,mDAAuE;AAAzC,oCAAA,WAAW,CAAA;AACzC,qEAAkG;AAA3D,sDAAA,oBAAoB,CAAA;AAC3D,qDAA0E;AAA3C,sCAAA,YAAY,CAAA;AAC3C,uDAA6E;AAA7C,wCAAA,aAAa,CAAA;AAC7C,mDAAuE;AAAzC,oCAAA,WAAW,CAAA;AAEzC,qDAAoD;AAA3C,sCAAA,YAAY,CAAA","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\r\n// See LICENSE in the project root for license information.\r\n\r\n/**\r\n * Use this library to read and write *.api.json files as defined by the\r\n * {@link https://api-extractor.com/ | API Extractor} tool. These files are used to generate a documentation\r\n * website for your TypeScript package. The files store the API signatures and doc comments that were extracted\r\n * from your package.\r\n *\r\n * @packageDocumentation\r\n */\r\n\r\nexport { AedocDefinitions } from './aedoc/AedocDefinitions';\r\nexport { ReleaseTag } from './aedoc/ReleaseTag';\r\n\r\n// items\r\nexport { IApiDeclaredItemOptions, ApiDeclaredItem } from './items/ApiDeclaredItem';\r\nexport { IApiDocumentedItemOptions, ApiDocumentedItem } from './items/ApiDocumentedItem';\r\nexport { ApiItemKind, IApiItemOptions, ApiItem, IApiItemConstructor } from './items/ApiItem';\r\nexport { IApiPropertyItemOptions, ApiPropertyItem } from './items/ApiPropertyItem';\r\n\r\n// mixins\r\nexport {\r\n IApiParameterListMixinOptions,\r\n IApiParameterOptions,\r\n ApiParameterListMixin\r\n} from './mixins/ApiParameterListMixin';\r\nexport {\r\n IApiTypeParameterOptions,\r\n IApiTypeParameterListMixinOptions,\r\n ApiTypeParameterListMixin\r\n} from './mixins/ApiTypeParameterListMixin';\r\nexport { IApiItemContainerMixinOptions, ApiItemContainerMixin } from './mixins/ApiItemContainerMixin';\r\nexport { IApiReleaseTagMixinOptions, ApiReleaseTagMixin } from './mixins/ApiReleaseTagMixin';\r\nexport { IApiReturnTypeMixinOptions, ApiReturnTypeMixin } from './mixins/ApiReturnTypeMixin';\r\nexport { IApiStaticMixinOptions, ApiStaticMixin } from './mixins/ApiStaticMixin';\r\nexport { IApiNameMixinOptions, ApiNameMixin } from './mixins/ApiNameMixin';\r\nexport { ExcerptTokenKind, IExcerptTokenRange, IExcerptToken, ExcerptToken, Excerpt } from './mixins/Excerpt';\r\nexport { Constructor, PropertiesOf } from './mixins/Mixin';\r\n\r\n// model\r\nexport { IApiCallSignatureOptions, ApiCallSignature } from './model/ApiCallSignature';\r\nexport { IApiClassOptions, ApiClass } from './model/ApiClass';\r\nexport { IApiConstructorOptions, ApiConstructor } from './model/ApiConstructor';\r\nexport { IApiConstructSignatureOptions, ApiConstructSignature } from './model/ApiConstructSignature';\r\nexport { IApiEntryPointOptions, ApiEntryPoint } from './model/ApiEntryPoint';\r\nexport { IApiEnumOptions, ApiEnum } from './model/ApiEnum';\r\nexport { IApiEnumMemberOptions, ApiEnumMember } from './model/ApiEnumMember';\r\nexport { IApiFunctionOptions, ApiFunction } from './model/ApiFunction';\r\nexport { IApiIndexSignatureOptions, ApiIndexSignature } from './model/ApiIndexSignature';\r\nexport { IApiInterfaceOptions, ApiInterface } from './model/ApiInterface';\r\nexport { IApiMethodOptions, ApiMethod } from './model/ApiMethod';\r\nexport { IApiMethodSignatureOptions, ApiMethodSignature } from './model/ApiMethodSignature';\r\nexport { ApiModel } from './model/ApiModel';\r\nexport { IApiNamespaceOptions, ApiNamespace } from './model/ApiNamespace';\r\nexport { IApiPackageOptions, ApiPackage, IApiPackageSaveOptions } from './model/ApiPackage';\r\nexport { IParameterOptions, Parameter } from './model/Parameter';\r\nexport { IApiPropertyOptions, ApiProperty } from './model/ApiProperty';\r\nexport { IApiPropertySignatureOptions, ApiPropertySignature } from './model/ApiPropertySignature';\r\nexport { IApiTypeAliasOptions, ApiTypeAlias } from './model/ApiTypeAlias';\r\nexport { ITypeParameterOptions, TypeParameter } from './model/TypeParameter';\r\nexport { IApiVariableOptions, ApiVariable } from './model/ApiVariable';\r\nexport { IResolveDeclarationReferenceResult } from './model/ModelReferenceResolver';\r\nexport { HeritageType } from './model/HeritageType';\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;AAE3D;;;;;;;GAOG;AAEH,6DAA4D;AAAnD,oHAAA,gBAAgB,OAAA;AACzB,iDAAgD;AAAvC,wGAAA,UAAU,OAAA;AAEnB,QAAQ;AACR,2DAAmF;AAAjD,kHAAA,eAAe,OAAA;AACjD,+DAAyF;AAArD,sHAAA,iBAAiB,OAAA;AACrD,2CAA6F;AAAtD,kGAAA,OAAO,OAAA;AAC9C,2DAAmF;AAAjD,kHAAA,eAAe,OAAA;AAEjD,SAAS;AACT,wEAIwC;AADtC,8HAAA,qBAAqB,OAAA;AAEvB,gFAI4C;AAD1C,sIAAA,yBAAyB,OAAA;AAE3B,wEAAsG;AAA9D,8HAAA,qBAAqB,OAAA;AAC7D,kEAA6F;AAAxD,wHAAA,kBAAkB,OAAA;AACvD,kEAA6F;AAAxD,wHAAA,kBAAkB,OAAA;AACvD,0DAAiF;AAAhD,gHAAA,cAAc,OAAA;AAC/C,sDAA2E;AAA5C,4GAAA,YAAY,OAAA;AAC3C,4CAA8G;AAAhD,uGAAA,YAAY,OAAA;AAAE,kGAAA,OAAO,OAAA;AAGnF,QAAQ;AACR,6DAAsF;AAAnD,oHAAA,gBAAgB,OAAA;AACnD,6CAA8D;AAAnC,oGAAA,QAAQ,OAAA;AACnC,yDAAgF;AAA/C,gHAAA,cAAc,OAAA;AAC/C,uEAAqG;AAA7D,8HAAA,qBAAqB,OAAA;AAC7D,uDAA6E;AAA7C,8GAAA,aAAa,OAAA;AAC7C,2CAA2D;AAAjC,kGAAA,OAAO,OAAA;AACjC,uDAA6E;AAA7C,8GAAA,aAAa,OAAA;AAC7C,mDAAuE;AAAzC,0GAAA,WAAW,OAAA;AACzC,+DAAyF;AAArD,sHAAA,iBAAiB,OAAA;AACrD,qDAA0E;AAA3C,4GAAA,YAAY,OAAA;AAC3C,+CAAiE;AAArC,sGAAA,SAAS,OAAA;AACrC,iEAA4F;AAAvD,wHAAA,kBAAkB,OAAA;AACvD,6CAA4C;AAAnC,oGAAA,QAAQ,OAAA;AACjB,qDAA0E;AAA3C,4GAAA,YAAY,OAAA;AAC3C,iDAA4F;AAA/D,wGAAA,UAAU,OAAA;AACvC,+CAAiE;AAArC,sGAAA,SAAS,OAAA;AACrC,mDAAuE;AAAzC,0GAAA,WAAW,OAAA;AACzC,qEAAkG;AAA3D,4HAAA,oBAAoB,OAAA;AAC3D,qDAA0E;AAA3C,4GAAA,YAAY,OAAA;AAC3C,uDAA6E;AAA7C,8GAAA,aAAa,OAAA;AAC7C,mDAAuE;AAAzC,0GAAA,WAAW,OAAA;AAEzC,qDAAoD;AAA3C,4GAAA,YAAY,OAAA","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\r\n// See LICENSE in the project root for license information.\r\n\r\n/**\r\n * Use this library to read and write *.api.json files as defined by the\r\n * {@link https://api-extractor.com/ | API Extractor} tool. These files are used to generate a documentation\r\n * website for your TypeScript package. The files store the API signatures and doc comments that were extracted\r\n * from your package.\r\n *\r\n * @packageDocumentation\r\n */\r\n\r\nexport { AedocDefinitions } from './aedoc/AedocDefinitions';\r\nexport { ReleaseTag } from './aedoc/ReleaseTag';\r\n\r\n// items\r\nexport { IApiDeclaredItemOptions, ApiDeclaredItem } from './items/ApiDeclaredItem';\r\nexport { IApiDocumentedItemOptions, ApiDocumentedItem } from './items/ApiDocumentedItem';\r\nexport { ApiItemKind, IApiItemOptions, ApiItem, IApiItemConstructor } from './items/ApiItem';\r\nexport { IApiPropertyItemOptions, ApiPropertyItem } from './items/ApiPropertyItem';\r\n\r\n// mixins\r\nexport {\r\n IApiParameterListMixinOptions,\r\n IApiParameterOptions,\r\n ApiParameterListMixin\r\n} from './mixins/ApiParameterListMixin';\r\nexport {\r\n IApiTypeParameterOptions,\r\n IApiTypeParameterListMixinOptions,\r\n ApiTypeParameterListMixin\r\n} from './mixins/ApiTypeParameterListMixin';\r\nexport { IApiItemContainerMixinOptions, ApiItemContainerMixin } from './mixins/ApiItemContainerMixin';\r\nexport { IApiReleaseTagMixinOptions, ApiReleaseTagMixin } from './mixins/ApiReleaseTagMixin';\r\nexport { IApiReturnTypeMixinOptions, ApiReturnTypeMixin } from './mixins/ApiReturnTypeMixin';\r\nexport { IApiStaticMixinOptions, ApiStaticMixin } from './mixins/ApiStaticMixin';\r\nexport { IApiNameMixinOptions, ApiNameMixin } from './mixins/ApiNameMixin';\r\nexport { ExcerptTokenKind, IExcerptTokenRange, IExcerptToken, ExcerptToken, Excerpt } from './mixins/Excerpt';\r\nexport { Constructor, PropertiesOf } from './mixins/Mixin';\r\n\r\n// model\r\nexport { IApiCallSignatureOptions, ApiCallSignature } from './model/ApiCallSignature';\r\nexport { IApiClassOptions, ApiClass } from './model/ApiClass';\r\nexport { IApiConstructorOptions, ApiConstructor } from './model/ApiConstructor';\r\nexport { IApiConstructSignatureOptions, ApiConstructSignature } from './model/ApiConstructSignature';\r\nexport { IApiEntryPointOptions, ApiEntryPoint } from './model/ApiEntryPoint';\r\nexport { IApiEnumOptions, ApiEnum } from './model/ApiEnum';\r\nexport { IApiEnumMemberOptions, ApiEnumMember } from './model/ApiEnumMember';\r\nexport { IApiFunctionOptions, ApiFunction } from './model/ApiFunction';\r\nexport { IApiIndexSignatureOptions, ApiIndexSignature } from './model/ApiIndexSignature';\r\nexport { IApiInterfaceOptions, ApiInterface } from './model/ApiInterface';\r\nexport { IApiMethodOptions, ApiMethod } from './model/ApiMethod';\r\nexport { IApiMethodSignatureOptions, ApiMethodSignature } from './model/ApiMethodSignature';\r\nexport { ApiModel } from './model/ApiModel';\r\nexport { IApiNamespaceOptions, ApiNamespace } from './model/ApiNamespace';\r\nexport { IApiPackageOptions, ApiPackage, IApiPackageSaveOptions } from './model/ApiPackage';\r\nexport { IParameterOptions, Parameter } from './model/Parameter';\r\nexport { IApiPropertyOptions, ApiProperty } from './model/ApiProperty';\r\nexport { IApiPropertySignatureOptions, ApiPropertySignature } from './model/ApiPropertySignature';\r\nexport { IApiTypeAliasOptions, ApiTypeAlias } from './model/ApiTypeAlias';\r\nexport { ITypeParameterOptions, TypeParameter } from './model/TypeParameter';\r\nexport { IApiVariableOptions, ApiVariable } from './model/ApiVariable';\r\nexport { IResolveDeclarationReferenceResult } from './model/ModelReferenceResolver';\r\nexport { HeritageType } from './model/HeritageType';\r\n"]}
@@ -33,11 +33,11 @@ export declare class ApiDeclaredItem extends ApiDocumentedItem {
33
33
  /**
34
34
  * The source code excerpt where the API item is declared.
35
35
  */
36
- readonly excerpt: Excerpt;
36
+ get excerpt(): Excerpt;
37
37
  /**
38
38
  * The individual source code tokens that comprise the main excerpt.
39
39
  */
40
- readonly excerptTokens: ReadonlyArray<ExcerptToken>;
40
+ get excerptTokens(): ReadonlyArray<ExcerptToken>;
41
41
  /**
42
42
  * If the API item has certain important modifier tags such as `@sealed`, `@virtual`, or `@override`,
43
43
  * this prepends them as a doc comment above the excerpt.
@@ -1 +1 @@
1
- {"version":3,"file":"ApiDeclaredItem.d.ts","sourceRoot":"","sources":["../../src/items/ApiDeclaredItem.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAC3G,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,uBAAwB,SAAQ,yBAAyB;IACxE,aAAa,EAAE,aAAa,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,oBAAqB,SAAQ,sBAAsB;IAClE,aAAa,EAAE,aAAa,EAAE,CAAC;CAChC;AAED;;;;;;;;;;;;GAYG;AAEH,qBAAa,eAAgB,SAAQ,iBAAiB;IACpD,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,QAAQ,CAAU;gBAEP,OAAO,EAAE,uBAAuB;IAanD,gBAAgB;WACF,iBAAiB,CAC7B,OAAO,EAAE,OAAO,CAAC,uBAAuB,CAAC,EACzC,OAAO,EAAE,mBAAmB,EAC5B,UAAU,EAAE,oBAAoB,GAC/B,IAAI;IAMP;;OAEG;aACQ,OAAO,EAAI,OAAO;IAI7B;;OAEG;aACQ,aAAa,EAAI,aAAa,CAAC,YAAY,CAAC;IAIvD;;;OAGG;IACI,uBAAuB,IAAI,MAAM;IA0BxC,gBAAgB;IACT,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI;IAWrE;;OAEG;IACI,YAAY,CAAC,UAAU,EAAE,kBAAkB,GAAG,OAAO;CAG7D"}
1
+ {"version":3,"file":"ApiDeclaredItem.d.ts","sourceRoot":"","sources":["../../src/items/ApiDeclaredItem.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAC3G,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,uBAAwB,SAAQ,yBAAyB;IACxE,aAAa,EAAE,aAAa,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,oBAAqB,SAAQ,sBAAsB;IAClE,aAAa,EAAE,aAAa,EAAE,CAAC;CAChC;AAED;;;;;;;;;;;;GAYG;AAEH,qBAAa,eAAgB,SAAQ,iBAAiB;IACpD,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,QAAQ,CAAU;gBAEP,OAAO,EAAE,uBAAuB;IAanD,gBAAgB;WACF,iBAAiB,CAC7B,OAAO,EAAE,OAAO,CAAC,uBAAuB,CAAC,EACzC,OAAO,EAAE,mBAAmB,EAC5B,UAAU,EAAE,oBAAoB,GAC/B,IAAI;IAMP;;OAEG;IACH,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED;;OAEG;IACH,IAAW,aAAa,IAAI,aAAa,CAAC,YAAY,CAAC,CAEtD;IAED;;;OAGG;IACI,uBAAuB,IAAI,MAAM;IA0BxC,gBAAgB;IACT,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI;IAWrE;;OAEG;IACI,YAAY,CAAC,UAAU,EAAE,kBAAkB,GAAG,OAAO;CAG7D"}
@@ -2,6 +2,7 @@
2
2
  // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
3
3
  // See LICENSE in the project root for license information.s
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.ApiDeclaredItem = void 0;
5
6
  const DeclarationReference_1 = require("@microsoft/tsdoc/lib/beta/DeclarationReference");
6
7
  const ApiDocumentedItem_1 = require("./ApiDocumentedItem");
7
8
  const Excerpt_1 = require("../mixins/Excerpt");
@@ -1 +1 @@
1
- {"version":3,"file":"ApiDeclaredItem.js","sourceRoot":"","sources":["../../src/items/ApiDeclaredItem.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\r\n// See LICENSE in the project root for license information.s\r\n\r\nimport { DeclarationReference } from '@microsoft/tsdoc/lib/beta/DeclarationReference';\r\nimport { ApiDocumentedItem, IApiDocumentedItemJson, IApiDocumentedItemOptions } from './ApiDocumentedItem';\r\nimport { Excerpt, ExcerptToken, IExcerptTokenRange, IExcerptToken } from '../mixins/Excerpt';\r\nimport { DeserializerContext } from '../model/DeserializerContext';\r\n\r\n/**\r\n * Constructor options for {@link ApiDeclaredItem}.\r\n * @public\r\n */\r\nexport interface IApiDeclaredItemOptions extends IApiDocumentedItemOptions {\r\n excerptTokens: IExcerptToken[];\r\n}\r\n\r\nexport interface IApiDeclaredItemJson extends IApiDocumentedItemJson {\r\n excerptTokens: IExcerptToken[];\r\n}\r\n\r\n/**\r\n * The base class for API items that have an associated source code excerpt containing a TypeScript declaration.\r\n *\r\n * @remarks\r\n *\r\n * This is part of the {@link ApiModel} hierarchy of classes, which are serializable representations of\r\n * API declarations.\r\n *\r\n * Most `ApiItem` subclasses have declarations and thus extend `ApiDeclaredItem`. Counterexamples include\r\n * `ApiModel` and `ApiPackage`, which do not have any corresponding TypeScript source code.\r\n *\r\n * @public\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport class ApiDeclaredItem extends ApiDocumentedItem {\r\n private _excerptTokens: ExcerptToken[];\r\n private _excerpt: Excerpt;\r\n\r\n public constructor(options: IApiDeclaredItemOptions) {\r\n super(options);\r\n\r\n this._excerptTokens = options.excerptTokens.map((token) => {\r\n const canonicalReference: DeclarationReference | undefined =\r\n token.canonicalReference === undefined\r\n ? undefined\r\n : DeclarationReference.parse(token.canonicalReference);\r\n return new ExcerptToken(token.kind, token.text, canonicalReference);\r\n });\r\n this._excerpt = new Excerpt(this.excerptTokens, { startIndex: 0, endIndex: this.excerptTokens.length });\r\n }\r\n\r\n /** @override */\r\n public static onDeserializeInto(\r\n options: Partial<IApiDeclaredItemOptions>,\r\n context: DeserializerContext,\r\n jsonObject: IApiDeclaredItemJson\r\n ): void {\r\n super.onDeserializeInto(options, context, jsonObject);\r\n\r\n options.excerptTokens = jsonObject.excerptTokens;\r\n }\r\n\r\n /**\r\n * The source code excerpt where the API item is declared.\r\n */\r\n public get excerpt(): Excerpt {\r\n return this._excerpt;\r\n }\r\n\r\n /**\r\n * The individual source code tokens that comprise the main excerpt.\r\n */\r\n public get excerptTokens(): ReadonlyArray<ExcerptToken> {\r\n return this._excerptTokens;\r\n }\r\n\r\n /**\r\n * If the API item has certain important modifier tags such as `@sealed`, `@virtual`, or `@override`,\r\n * this prepends them as a doc comment above the excerpt.\r\n */\r\n public getExcerptWithModifiers(): string {\r\n const excerpt: string = this.excerpt.text;\r\n const modifierTags: string[] = [];\r\n\r\n if (excerpt.length > 0) {\r\n if (this instanceof ApiDocumentedItem) {\r\n if (this.tsdocComment) {\r\n if (this.tsdocComment.modifierTagSet.isSealed()) {\r\n modifierTags.push('@sealed');\r\n }\r\n if (this.tsdocComment.modifierTagSet.isVirtual()) {\r\n modifierTags.push('@virtual');\r\n }\r\n if (this.tsdocComment.modifierTagSet.isOverride()) {\r\n modifierTags.push('@override');\r\n }\r\n }\r\n if (modifierTags.length > 0) {\r\n return '/** ' + modifierTags.join(' ') + ' */\\n' + excerpt;\r\n }\r\n }\r\n }\r\n\r\n return excerpt;\r\n }\r\n\r\n /** @override */\r\n public serializeInto(jsonObject: Partial<IApiDeclaredItemJson>): void {\r\n super.serializeInto(jsonObject);\r\n jsonObject.excerptTokens = this.excerptTokens.map((x) => {\r\n const excerptToken: IExcerptToken = { kind: x.kind, text: x.text };\r\n if (x.canonicalReference !== undefined) {\r\n excerptToken.canonicalReference = x.canonicalReference.toString();\r\n }\r\n return excerptToken;\r\n });\r\n }\r\n\r\n /**\r\n * Constructs a new {@link Excerpt} corresponding to the provided token range.\r\n */\r\n public buildExcerpt(tokenRange: IExcerptTokenRange): Excerpt {\r\n return new Excerpt(this.excerptTokens, tokenRange);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ApiDeclaredItem.js","sourceRoot":"","sources":["../../src/items/ApiDeclaredItem.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\r\n// See LICENSE in the project root for license information.s\r\n\r\nimport { DeclarationReference } from '@microsoft/tsdoc/lib/beta/DeclarationReference';\r\nimport { ApiDocumentedItem, IApiDocumentedItemJson, IApiDocumentedItemOptions } from './ApiDocumentedItem';\r\nimport { Excerpt, ExcerptToken, IExcerptTokenRange, IExcerptToken } from '../mixins/Excerpt';\r\nimport { DeserializerContext } from '../model/DeserializerContext';\r\n\r\n/**\r\n * Constructor options for {@link ApiDeclaredItem}.\r\n * @public\r\n */\r\nexport interface IApiDeclaredItemOptions extends IApiDocumentedItemOptions {\r\n excerptTokens: IExcerptToken[];\r\n}\r\n\r\nexport interface IApiDeclaredItemJson extends IApiDocumentedItemJson {\r\n excerptTokens: IExcerptToken[];\r\n}\r\n\r\n/**\r\n * The base class for API items that have an associated source code excerpt containing a TypeScript declaration.\r\n *\r\n * @remarks\r\n *\r\n * This is part of the {@link ApiModel} hierarchy of classes, which are serializable representations of\r\n * API declarations.\r\n *\r\n * Most `ApiItem` subclasses have declarations and thus extend `ApiDeclaredItem`. Counterexamples include\r\n * `ApiModel` and `ApiPackage`, which do not have any corresponding TypeScript source code.\r\n *\r\n * @public\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport class ApiDeclaredItem extends ApiDocumentedItem {\r\n private _excerptTokens: ExcerptToken[];\r\n private _excerpt: Excerpt;\r\n\r\n public constructor(options: IApiDeclaredItemOptions) {\r\n super(options);\r\n\r\n this._excerptTokens = options.excerptTokens.map((token) => {\r\n const canonicalReference: DeclarationReference | undefined =\r\n token.canonicalReference === undefined\r\n ? undefined\r\n : DeclarationReference.parse(token.canonicalReference);\r\n return new ExcerptToken(token.kind, token.text, canonicalReference);\r\n });\r\n this._excerpt = new Excerpt(this.excerptTokens, { startIndex: 0, endIndex: this.excerptTokens.length });\r\n }\r\n\r\n /** @override */\r\n public static onDeserializeInto(\r\n options: Partial<IApiDeclaredItemOptions>,\r\n context: DeserializerContext,\r\n jsonObject: IApiDeclaredItemJson\r\n ): void {\r\n super.onDeserializeInto(options, context, jsonObject);\r\n\r\n options.excerptTokens = jsonObject.excerptTokens;\r\n }\r\n\r\n /**\r\n * The source code excerpt where the API item is declared.\r\n */\r\n public get excerpt(): Excerpt {\r\n return this._excerpt;\r\n }\r\n\r\n /**\r\n * The individual source code tokens that comprise the main excerpt.\r\n */\r\n public get excerptTokens(): ReadonlyArray<ExcerptToken> {\r\n return this._excerptTokens;\r\n }\r\n\r\n /**\r\n * If the API item has certain important modifier tags such as `@sealed`, `@virtual`, or `@override`,\r\n * this prepends them as a doc comment above the excerpt.\r\n */\r\n public getExcerptWithModifiers(): string {\r\n const excerpt: string = this.excerpt.text;\r\n const modifierTags: string[] = [];\r\n\r\n if (excerpt.length > 0) {\r\n if (this instanceof ApiDocumentedItem) {\r\n if (this.tsdocComment) {\r\n if (this.tsdocComment.modifierTagSet.isSealed()) {\r\n modifierTags.push('@sealed');\r\n }\r\n if (this.tsdocComment.modifierTagSet.isVirtual()) {\r\n modifierTags.push('@virtual');\r\n }\r\n if (this.tsdocComment.modifierTagSet.isOverride()) {\r\n modifierTags.push('@override');\r\n }\r\n }\r\n if (modifierTags.length > 0) {\r\n return '/** ' + modifierTags.join(' ') + ' */\\n' + excerpt;\r\n }\r\n }\r\n }\r\n\r\n return excerpt;\r\n }\r\n\r\n /** @override */\r\n public serializeInto(jsonObject: Partial<IApiDeclaredItemJson>): void {\r\n super.serializeInto(jsonObject);\r\n jsonObject.excerptTokens = this.excerptTokens.map((x) => {\r\n const excerptToken: IExcerptToken = { kind: x.kind, text: x.text };\r\n if (x.canonicalReference !== undefined) {\r\n excerptToken.canonicalReference = x.canonicalReference.toString();\r\n }\r\n return excerptToken;\r\n });\r\n }\r\n\r\n /**\r\n * Constructs a new {@link Excerpt} corresponding to the provided token range.\r\n */\r\n public buildExcerpt(tokenRange: IExcerptTokenRange): Excerpt {\r\n return new Excerpt(this.excerptTokens, tokenRange);\r\n }\r\n}\r\n"]}
@@ -26,7 +26,7 @@ export declare class ApiDocumentedItem extends ApiItem {
26
26
  constructor(options: IApiDocumentedItemOptions);
27
27
  /** @override */
28
28
  static onDeserializeInto(options: Partial<IApiDocumentedItemOptions>, context: DeserializerContext, jsonObject: IApiItemJson): void;
29
- readonly tsdocComment: tsdoc.DocComment | undefined;
29
+ get tsdocComment(): tsdoc.DocComment | undefined;
30
30
  /** @override */
31
31
  serializeInto(jsonObject: Partial<IApiDocumentedItemJson>): void;
32
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ApiDocumentedItem.d.ts","sourceRoot":"","sources":["../../src/items/ApiDocumentedItem.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,yBAA0B,SAAQ,eAAe;IAChE,UAAU,EAAE,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;CAC1C;AAED,MAAM,WAAW,sBAAuB,SAAQ,YAAY;IAC1D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,SAAQ,OAAO;IAC5C,OAAO,CAAC,aAAa,CAA+B;gBAEjC,OAAO,EAAE,yBAAyB;IAKrD,gBAAgB;WACF,iBAAiB,CAC7B,OAAO,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC3C,OAAO,EAAE,mBAAmB,EAC5B,UAAU,EAAE,YAAY,GACvB,IAAI;aAkBI,YAAY,EAAI,KAAK,CAAC,UAAU,GAAG,SAAS;IAIvD,gBAAgB;IACT,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI;CAQxE"}
1
+ {"version":3,"file":"ApiDocumentedItem.d.ts","sourceRoot":"","sources":["../../src/items/ApiDocumentedItem.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,yBAA0B,SAAQ,eAAe;IAChE,UAAU,EAAE,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;CAC1C;AAED,MAAM,WAAW,sBAAuB,SAAQ,YAAY;IAC1D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,SAAQ,OAAO;IAC5C,OAAO,CAAC,aAAa,CAA+B;gBAEjC,OAAO,EAAE,yBAAyB;IAKrD,gBAAgB;WACF,iBAAiB,CAC7B,OAAO,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC3C,OAAO,EAAE,mBAAmB,EAC5B,UAAU,EAAE,YAAY,GACvB,IAAI;IAkBP,IAAW,YAAY,IAAI,KAAK,CAAC,UAAU,GAAG,SAAS,CAEtD;IAED,gBAAgB;IACT,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI;CAQxE"}
@@ -1,8 +1,28 @@
1
1
  "use strict";
2
2
  // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
3
3
  // See LICENSE in the project root for license information.
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
7
+ }) : (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ o[k2] = m[k];
10
+ }));
11
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
12
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
13
+ }) : function(o, v) {
14
+ o["default"] = v;
15
+ });
16
+ var __importStar = (this && this.__importStar) || function (mod) {
17
+ if (mod && mod.__esModule) return mod;
18
+ var result = {};
19
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
20
+ __setModuleDefault(result, mod);
21
+ return result;
22
+ };
4
23
  Object.defineProperty(exports, "__esModule", { value: true });
5
- const tsdoc = require("@microsoft/tsdoc");
24
+ exports.ApiDocumentedItem = void 0;
25
+ const tsdoc = __importStar(require("@microsoft/tsdoc"));
6
26
  const ApiItem_1 = require("./ApiItem");
7
27
  const AedocDefinitions_1 = require("../aedoc/AedocDefinitions");
8
28
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ApiDocumentedItem.js","sourceRoot":"","sources":["../../src/items/ApiDocumentedItem.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;AAE3D,0CAA0C;AAC1C,uCAAmE;AACnE,gEAA6D;AAe7D;;;;;;;;;GASG;AACH,MAAa,iBAAkB,SAAQ,iBAAO;IAG5C,YAAmB,OAAkC;QACnD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;IAC1C,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,iBAAiB,CAC7B,OAA2C,EAC3C,OAA4B,EAC5B,UAAwB;QAExB,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAEtD,MAAM,cAAc,GAA2B,UAAoC,CAAC;QAEpF,IAAI,cAAc,CAAC,UAAU,EAAE;YAC7B,MAAM,WAAW,GAAsB,IAAI,KAAK,CAAC,WAAW,CAAC,mCAAgB,CAAC,kBAAkB,CAAC,CAAC;YAElG,8EAA8E;YAC9E,2FAA2F;YAC3F,gGAAgG;YAChG,8EAA8E;YAC9E,MAAM,aAAa,GAAwB,WAAW,CAAC,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAE9F,OAAO,CAAC,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;SAC/C;IACH,CAAC;IAED,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,gBAAgB;IACT,aAAa,CAAC,UAA2C;QAC9D,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;YACnC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACzD;aAAM;YACL,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC;SAC5B;IACH,CAAC;CACF;AA5CD,8CA4CC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\r\n// See LICENSE in the project root for license information.\r\n\r\nimport * as tsdoc from '@microsoft/tsdoc';\r\nimport { ApiItem, IApiItemOptions, IApiItemJson } from './ApiItem';\r\nimport { AedocDefinitions } from '../aedoc/AedocDefinitions';\r\nimport { DeserializerContext } from '../model/DeserializerContext';\r\n\r\n/**\r\n * Constructor options for {@link ApiDocumentedItem}.\r\n * @public\r\n */\r\nexport interface IApiDocumentedItemOptions extends IApiItemOptions {\r\n docComment: tsdoc.DocComment | undefined;\r\n}\r\n\r\nexport interface IApiDocumentedItemJson extends IApiItemJson {\r\n docComment: string;\r\n}\r\n\r\n/**\r\n * An abstract base class for API declarations that can have an associated TSDoc comment.\r\n *\r\n * @remarks\r\n *\r\n * This is part of the {@link ApiModel} hierarchy of classes, which are serializable representations of\r\n * API declarations.\r\n *\r\n * @public\r\n */\r\nexport class ApiDocumentedItem extends ApiItem {\r\n private _tsdocComment: tsdoc.DocComment | undefined;\r\n\r\n public constructor(options: IApiDocumentedItemOptions) {\r\n super(options);\r\n this._tsdocComment = options.docComment;\r\n }\r\n\r\n /** @override */\r\n public static onDeserializeInto(\r\n options: Partial<IApiDocumentedItemOptions>,\r\n context: DeserializerContext,\r\n jsonObject: IApiItemJson\r\n ): void {\r\n super.onDeserializeInto(options, context, jsonObject);\r\n\r\n const documentedJson: IApiDocumentedItemJson = jsonObject as IApiDocumentedItemJson;\r\n\r\n if (documentedJson.docComment) {\r\n const tsdocParser: tsdoc.TSDocParser = new tsdoc.TSDocParser(AedocDefinitions.tsdocConfiguration);\r\n\r\n // NOTE: For now, we ignore TSDoc errors found in a serialized .api.json file.\r\n // Normally these errors would have already been reported by API Extractor during analysis.\r\n // However, they could also arise if the JSON file was edited manually, or if the file was saved\r\n // using a different release of the software that used an incompatible syntax.\r\n const parserContext: tsdoc.ParserContext = tsdocParser.parseString(documentedJson.docComment);\r\n\r\n options.docComment = parserContext.docComment;\r\n }\r\n }\r\n\r\n public get tsdocComment(): tsdoc.DocComment | undefined {\r\n return this._tsdocComment;\r\n }\r\n\r\n /** @override */\r\n public serializeInto(jsonObject: Partial<IApiDocumentedItemJson>): void {\r\n super.serializeInto(jsonObject);\r\n if (this.tsdocComment !== undefined) {\r\n jsonObject.docComment = this.tsdocComment.emitAsTsdoc();\r\n } else {\r\n jsonObject.docComment = '';\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ApiDocumentedItem.js","sourceRoot":"","sources":["../../src/items/ApiDocumentedItem.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;;;;;;;;;;;;;;;;;;;;AAE3D,wDAA0C;AAC1C,uCAAmE;AACnE,gEAA6D;AAe7D;;;;;;;;;GASG;AACH,MAAa,iBAAkB,SAAQ,iBAAO;IAG5C,YAAmB,OAAkC;QACnD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;IAC1C,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,iBAAiB,CAC7B,OAA2C,EAC3C,OAA4B,EAC5B,UAAwB;QAExB,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAEtD,MAAM,cAAc,GAA2B,UAAoC,CAAC;QAEpF,IAAI,cAAc,CAAC,UAAU,EAAE;YAC7B,MAAM,WAAW,GAAsB,IAAI,KAAK,CAAC,WAAW,CAAC,mCAAgB,CAAC,kBAAkB,CAAC,CAAC;YAElG,8EAA8E;YAC9E,2FAA2F;YAC3F,gGAAgG;YAChG,8EAA8E;YAC9E,MAAM,aAAa,GAAwB,WAAW,CAAC,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAE9F,OAAO,CAAC,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;SAC/C;IACH,CAAC;IAED,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,gBAAgB;IACT,aAAa,CAAC,UAA2C;QAC9D,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;YACnC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACzD;aAAM;YACL,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC;SAC5B;IACH,CAAC;CACF;AA5CD,8CA4CC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\r\n// See LICENSE in the project root for license information.\r\n\r\nimport * as tsdoc from '@microsoft/tsdoc';\r\nimport { ApiItem, IApiItemOptions, IApiItemJson } from './ApiItem';\r\nimport { AedocDefinitions } from '../aedoc/AedocDefinitions';\r\nimport { DeserializerContext } from '../model/DeserializerContext';\r\n\r\n/**\r\n * Constructor options for {@link ApiDocumentedItem}.\r\n * @public\r\n */\r\nexport interface IApiDocumentedItemOptions extends IApiItemOptions {\r\n docComment: tsdoc.DocComment | undefined;\r\n}\r\n\r\nexport interface IApiDocumentedItemJson extends IApiItemJson {\r\n docComment: string;\r\n}\r\n\r\n/**\r\n * An abstract base class for API declarations that can have an associated TSDoc comment.\r\n *\r\n * @remarks\r\n *\r\n * This is part of the {@link ApiModel} hierarchy of classes, which are serializable representations of\r\n * API declarations.\r\n *\r\n * @public\r\n */\r\nexport class ApiDocumentedItem extends ApiItem {\r\n private _tsdocComment: tsdoc.DocComment | undefined;\r\n\r\n public constructor(options: IApiDocumentedItemOptions) {\r\n super(options);\r\n this._tsdocComment = options.docComment;\r\n }\r\n\r\n /** @override */\r\n public static onDeserializeInto(\r\n options: Partial<IApiDocumentedItemOptions>,\r\n context: DeserializerContext,\r\n jsonObject: IApiItemJson\r\n ): void {\r\n super.onDeserializeInto(options, context, jsonObject);\r\n\r\n const documentedJson: IApiDocumentedItemJson = jsonObject as IApiDocumentedItemJson;\r\n\r\n if (documentedJson.docComment) {\r\n const tsdocParser: tsdoc.TSDocParser = new tsdoc.TSDocParser(AedocDefinitions.tsdocConfiguration);\r\n\r\n // NOTE: For now, we ignore TSDoc errors found in a serialized .api.json file.\r\n // Normally these errors would have already been reported by API Extractor during analysis.\r\n // However, they could also arise if the JSON file was edited manually, or if the file was saved\r\n // using a different release of the software that used an incompatible syntax.\r\n const parserContext: tsdoc.ParserContext = tsdocParser.parseString(documentedJson.docComment);\r\n\r\n options.docComment = parserContext.docComment;\r\n }\r\n }\r\n\r\n public get tsdocComment(): tsdoc.DocComment | undefined {\r\n return this._tsdocComment;\r\n }\r\n\r\n /** @override */\r\n public serializeInto(jsonObject: Partial<IApiDocumentedItemJson>): void {\r\n super.serializeInto(jsonObject);\r\n if (this.tsdocComment !== undefined) {\r\n jsonObject.docComment = this.tsdocComment.emitAsTsdoc();\r\n } else {\r\n jsonObject.docComment = '';\r\n }\r\n }\r\n}\r\n"]}
@@ -62,7 +62,7 @@ export declare class ApiItem {
62
62
  * Identifies the subclass of the `ApiItem` base class.
63
63
  * @virtual
64
64
  */
65
- readonly kind: ApiItemKind;
65
+ get kind(): ApiItemKind;
66
66
  /**
67
67
  * Warning: This API is used internally by API extractor but is not yet ready for general usage.
68
68
  *
@@ -72,7 +72,7 @@ export declare class ApiItem {
72
72
  *
73
73
  * @beta
74
74
  */
75
- readonly canonicalReference: DeclarationReference;
75
+ get canonicalReference(): DeclarationReference;
76
76
  /**
77
77
  * Returns a string key that can be used to efficiently retrieve an `ApiItem` from an `ApiItemContainerMixin`.
78
78
  * The key is unique within the container. Its format is undocumented and may change at any time.
@@ -83,7 +83,7 @@ export declare class ApiItem {
83
83
  *
84
84
  * @virtual
85
85
  */
86
- readonly containerKey: string;
86
+ get containerKey(): string;
87
87
  /**
88
88
  * Returns a name for this object that can be used in diagnostic messages, for example.
89
89
  *
@@ -93,21 +93,21 @@ export declare class ApiItem {
93
93
  *
94
94
  * @virtual
95
95
  */
96
- readonly displayName: string;
96
+ get displayName(): string;
97
97
  /**
98
98
  * If this item was added to a ApiItemContainerMixin item, then this returns the container item.
99
99
  * If this is an Parameter that was added to a method or function, then this returns the function item.
100
100
  * Otherwise, it returns undefined.
101
101
  * @virtual
102
102
  */
103
- readonly parent: ApiItem | undefined;
103
+ get parent(): ApiItem | undefined;
104
104
  /**
105
105
  * This property supports a visitor pattern for walking the tree.
106
106
  * For items with ApiItemContainerMixin, it returns the contained items.
107
107
  * Otherwise it returns an empty array.
108
108
  * @virtual
109
109
  */
110
- readonly members: ReadonlyArray<ApiItem>;
110
+ get members(): ReadonlyArray<ApiItem>;
111
111
  /**
112
112
  * If this item has a name (i.e. extends `ApiNameMixin`), then return all items that have the same parent
113
113
  * and the same name. Otherwise, return all items that have the same parent and the same `ApiItemKind`.
@@ -1 +1 @@
1
- {"version":3,"file":"ApiItem.d.ts","sourceRoot":"","sources":["../../src/items/ApiItem.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAInE;;;;;GAKG;AACH,0BAAkB,WAAW;IAC3B,aAAa,kBAAkB;IAC/B,KAAK,UAAU;IACf,WAAW,gBAAgB;IAC3B,kBAAkB,uBAAuB;IACzC,UAAU,eAAe;IACzB,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,cAAc,mBAAmB;IACjC,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,eAAe,oBAAoB;IACnC,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,iBAAiB,sBAAsB;IACvC,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;CAAG;AAEnC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAID,eAAO,MAAM,uBAAuB,EAAE,OAAO,MAA4C,CAAC;AAE1F;;;;;;;GAOG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,mBAAmB,CAAmC;IAC9D,OAAO,CAAC,OAAO,CAAsB;gBAElB,OAAO,EAAE,eAAe;WAI7B,WAAW,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO;IAO1F,eAAe;WACD,iBAAiB,CAC7B,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,EACjC,OAAO,EAAE,mBAAmB,EAC5B,UAAU,EAAE,YAAY,GACvB,IAAI;IAIP,eAAe;IACR,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAK7D;;;OAGG;aACQ,IAAI,EAAI,WAAW;IAI9B;;;;;;;;OAQG;aACQ,kBAAkB,EAAI,oBAAoB;IAYrD;;;;;;;;;OASG;aACQ,YAAY,EAAI,MAAM;IAIjC;;;;;;;;OAQG;aACQ,WAAW,EAAI,MAAM;IAgBhC;;;;;OAKG;aACQ,MAAM,EAAI,OAAO,GAAG,SAAS;IAIxC;;;;;OAKG;aACQ,OAAO,EAAI,aAAa,CAAC,OAAO,CAAC;IAI5C;;;;;;;;;OASG;IACI,iBAAiB,IAAI,aAAa,CAAC,OAAO,CAAC;IAQlD;;OAEG;IACI,YAAY,IAAI,aAAa,CAAC,OAAO,CAAC;IAS7C;;;;;;OAMG;IACI,0BAA0B,IAAI,MAAM;IAiC3C;;;OAGG;IACI,oBAAoB,IAAI,UAAU,GAAG,SAAS;IASrD,eAAe;IACR,UAAU,IAAI,MAAM;IAI3B;;;;;;;OAOG;IACI,CAAC,uBAAuB,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI;IAKnE;;;OAGG;IACH,SAAS,CAAC,uBAAuB,IAAI,oBAAoB;CAG1D;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAoB,SAAQ,WAAW,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,OAAO,OAAO,CAAC;CAAG"}
1
+ {"version":3,"file":"ApiItem.d.ts","sourceRoot":"","sources":["../../src/items/ApiItem.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAInE;;;;;GAKG;AACH,0BAAkB,WAAW;IAC3B,aAAa,kBAAkB;IAC/B,KAAK,UAAU;IACf,WAAW,gBAAgB;IAC3B,kBAAkB,uBAAuB;IACzC,UAAU,eAAe;IACzB,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,cAAc,mBAAmB;IACjC,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,eAAe,oBAAoB;IACnC,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,iBAAiB,sBAAsB;IACvC,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;CAAG;AAEnC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAID,eAAO,MAAM,uBAAuB,EAAE,OAAO,MAA4C,CAAC;AAE1F;;;;;;;GAOG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,mBAAmB,CAAmC;IAC9D,OAAO,CAAC,OAAO,CAAsB;gBAElB,OAAO,EAAE,eAAe;WAI7B,WAAW,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO;IAO1F,eAAe;WACD,iBAAiB,CAC7B,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,EACjC,OAAO,EAAE,mBAAmB,EAC5B,UAAU,EAAE,YAAY,GACvB,IAAI;IAIP,eAAe;IACR,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAK7D;;;OAGG;IACH,IAAW,IAAI,IAAI,WAAW,CAE7B;IAED;;;;;;;;OAQG;IACH,IAAW,kBAAkB,IAAI,oBAAoB,CAUpD;IAED;;;;;;;;;OASG;IACH,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED;;;;;;;;OAQG;IACH,IAAW,WAAW,IAAI,MAAM,CAc/B;IAED;;;;;OAKG;IACH,IAAW,MAAM,IAAI,OAAO,GAAG,SAAS,CAEvC;IAED;;;;;OAKG;IACH,IAAW,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,CAE3C;IAED;;;;;;;;;OASG;IACI,iBAAiB,IAAI,aAAa,CAAC,OAAO,CAAC;IAQlD;;OAEG;IACI,YAAY,IAAI,aAAa,CAAC,OAAO,CAAC;IAS7C;;;;;;OAMG;IACI,0BAA0B,IAAI,MAAM;IAiC3C;;;OAGG;IACI,oBAAoB,IAAI,UAAU,GAAG,SAAS;IASrD,eAAe;IACR,UAAU,IAAI,MAAM;IAI3B;;;;;;;OAOG;IACI,CAAC,uBAAuB,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI;IAKnE;;;OAGG;IACH,SAAS,CAAC,uBAAuB,IAAI,oBAAoB;CAG1D;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAoB,SAAQ,WAAW,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,OAAO,OAAO,CAAC;CAAG"}
@@ -2,6 +2,7 @@
2
2
  // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
3
3
  // See LICENSE in the project root for license information.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.ApiItem = exports.apiItem_onParentChanged = void 0;
5
6
  const ApiParameterListMixin_1 = require("../mixins/ApiParameterListMixin");
6
7
  const node_core_library_1 = require("@rushstack/node-core-library");
7
8
  const ApiItemContainerMixin_1 = require("../mixins/ApiItemContainerMixin");
@@ -1 +1 @@
1
- {"version":3,"file":"ApiItem.js","sourceRoot":"","sources":["../../src/items/ApiItem.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\r\n// See LICENSE in the project root for license information.\r\n\r\nimport { DeclarationReference } from '@microsoft/tsdoc/lib/beta/DeclarationReference';\r\nimport { Constructor, PropertiesOf } from '../mixins/Mixin';\r\nimport { ApiPackage } from '../model/ApiPackage';\r\nimport { ApiParameterListMixin } from '../mixins/ApiParameterListMixin';\r\nimport { DeserializerContext } from '../model/DeserializerContext';\r\nimport { InternalError } from '@rushstack/node-core-library';\r\nimport { ApiItemContainerMixin } from '../mixins/ApiItemContainerMixin';\r\n\r\n/**\r\n * The type returned by the {@link ApiItem.kind} property, which can be used to easily distinguish subclasses of\r\n * {@link ApiItem}.\r\n *\r\n * @public\r\n */\r\nexport const enum ApiItemKind {\r\n CallSignature = 'CallSignature',\r\n Class = 'Class',\r\n Constructor = 'Constructor',\r\n ConstructSignature = 'ConstructSignature',\r\n EntryPoint = 'EntryPoint',\r\n Enum = 'Enum',\r\n EnumMember = 'EnumMember',\r\n Function = 'Function',\r\n IndexSignature = 'IndexSignature',\r\n Interface = 'Interface',\r\n Method = 'Method',\r\n MethodSignature = 'MethodSignature',\r\n Model = 'Model',\r\n Namespace = 'Namespace',\r\n Package = 'Package',\r\n Property = 'Property',\r\n PropertySignature = 'PropertySignature',\r\n TypeAlias = 'TypeAlias',\r\n Variable = 'Variable',\r\n None = 'None'\r\n}\r\n\r\n/**\r\n * Constructor options for {@link ApiItem}.\r\n * @public\r\n */\r\nexport interface IApiItemOptions {}\r\n\r\nexport interface IApiItemJson {\r\n kind: ApiItemKind;\r\n canonicalReference: string;\r\n}\r\n\r\n// PRIVATE - Allows ApiItemContainerMixin to assign the parent.\r\n//\r\nexport const apiItem_onParentChanged: unique symbol = Symbol('ApiItem._onAddToContainer');\r\n\r\n/**\r\n * The abstract base class for all members of an `ApiModel` object.\r\n *\r\n * @remarks\r\n * This is part of the {@link ApiModel} hierarchy of classes, which are serializable representations of\r\n * API declarations.\r\n * @public\r\n */\r\nexport class ApiItem {\r\n private _canonicalReference: DeclarationReference | undefined;\r\n private _parent: ApiItem | undefined;\r\n\r\n public constructor(options: IApiItemOptions) {\r\n // (\"options\" is not used here, but part of the inheritance pattern)\r\n }\r\n\r\n public static deserialize(jsonObject: IApiItemJson, context: DeserializerContext): ApiItem {\r\n // The Deserializer class is coupled with a ton of other classes, so we delay loading it\r\n // to avoid ES5 circular imports.\r\n const deserializerModule: typeof import('../model/Deserializer') = require('../model/Deserializer');\r\n return deserializerModule.Deserializer.deserialize(context, jsonObject);\r\n }\r\n\r\n /** @virtual */\r\n public static onDeserializeInto(\r\n options: Partial<IApiItemOptions>,\r\n context: DeserializerContext,\r\n jsonObject: IApiItemJson\r\n ): void {\r\n // (implemented by subclasses)\r\n }\r\n\r\n /** @virtual */\r\n public serializeInto(jsonObject: Partial<IApiItemJson>): void {\r\n jsonObject.kind = this.kind;\r\n jsonObject.canonicalReference = this.canonicalReference.toString();\r\n }\r\n\r\n /**\r\n * Identifies the subclass of the `ApiItem` base class.\r\n * @virtual\r\n */\r\n public get kind(): ApiItemKind {\r\n throw new Error('ApiItem.kind was not implemented by the child class');\r\n }\r\n\r\n /**\r\n * Warning: This API is used internally by API extractor but is not yet ready for general usage.\r\n *\r\n * @remarks\r\n *\r\n * Returns a `DeclarationReference` object using the experimental new declaration reference notation.\r\n *\r\n * @beta\r\n */\r\n public get canonicalReference(): DeclarationReference {\r\n if (!this._canonicalReference) {\r\n try {\r\n this._canonicalReference = this.buildCanonicalReference();\r\n } catch (e) {\r\n const name: string = this.getScopedNameWithinPackage() || this.displayName;\r\n throw new InternalError(`Error building canonical reference for ${name}:\\n` + e.message);\r\n }\r\n }\r\n return this._canonicalReference;\r\n }\r\n\r\n /**\r\n * Returns a string key that can be used to efficiently retrieve an `ApiItem` from an `ApiItemContainerMixin`.\r\n * The key is unique within the container. Its format is undocumented and may change at any time.\r\n *\r\n * @remarks\r\n * Use the `getContainerKey()` static member to construct the key. Each subclass has a different implementation\r\n * of this function, according to the aspects that are important for identifying it.\r\n *\r\n * @virtual\r\n */\r\n public get containerKey(): string {\r\n throw new InternalError('ApiItem.containerKey was not implemented by the child class');\r\n }\r\n\r\n /**\r\n * Returns a name for this object that can be used in diagnostic messages, for example.\r\n *\r\n * @remarks\r\n * For an object that inherits ApiNameMixin, this will return the declared name (e.g. the name of a TypeScript\r\n * function). Otherwise, it will return a string such as \"(call signature)\" or \"(model)\".\r\n *\r\n * @virtual\r\n */\r\n public get displayName(): string {\r\n switch (this.kind) {\r\n case ApiItemKind.CallSignature:\r\n return '(call)';\r\n case ApiItemKind.Constructor:\r\n return '(constructor)';\r\n case ApiItemKind.ConstructSignature:\r\n return '(new)';\r\n case ApiItemKind.IndexSignature:\r\n return '(indexer)';\r\n case ApiItemKind.Model:\r\n return '(model)';\r\n }\r\n return '(???)'; // All other types should inherit ApiNameMixin which will override this property\r\n }\r\n\r\n /**\r\n * If this item was added to a ApiItemContainerMixin item, then this returns the container item.\r\n * If this is an Parameter that was added to a method or function, then this returns the function item.\r\n * Otherwise, it returns undefined.\r\n * @virtual\r\n */\r\n public get parent(): ApiItem | undefined {\r\n return this._parent;\r\n }\r\n\r\n /**\r\n * This property supports a visitor pattern for walking the tree.\r\n * For items with ApiItemContainerMixin, it returns the contained items.\r\n * Otherwise it returns an empty array.\r\n * @virtual\r\n */\r\n public get members(): ReadonlyArray<ApiItem> {\r\n return [];\r\n }\r\n\r\n /**\r\n * If this item has a name (i.e. extends `ApiNameMixin`), then return all items that have the same parent\r\n * and the same name. Otherwise, return all items that have the same parent and the same `ApiItemKind`.\r\n *\r\n * @remarks\r\n * Examples: For a function, this would return all overloads for the function. For a constructor, this would\r\n * return all overloads for the constructor. For a merged declaration (e.g. a `namespace` and `enum` with the\r\n * same name), this would return both declarations. If this item does not have a parent, or if it is the only\r\n * item of its name/kind, then the result is an array containing only this item.\r\n */\r\n public getMergedSiblings(): ReadonlyArray<ApiItem> {\r\n const parent: ApiItem | undefined = this._parent;\r\n if (parent && ApiItemContainerMixin.isBaseClassOf(parent)) {\r\n return parent._getMergedSiblingsForMember(this);\r\n }\r\n return [];\r\n }\r\n\r\n /**\r\n * Returns the chain of ancestors, starting from the root of the tree, and ending with the this item.\r\n */\r\n public getHierarchy(): ReadonlyArray<ApiItem> {\r\n const hierarchy: ApiItem[] = [];\r\n for (let current: ApiItem | undefined = this; current !== undefined; current = current.parent) {\r\n hierarchy.push(current);\r\n }\r\n hierarchy.reverse();\r\n return hierarchy;\r\n }\r\n\r\n /**\r\n * This returns a scoped name such as `\"Namespace1.Namespace2.MyClass.myMember()\"`. It does not include the\r\n * package name or entry point.\r\n *\r\n * @remarks\r\n * If called on an ApiEntrypoint, ApiPackage, or ApiModel item, the result is an empty string.\r\n */\r\n public getScopedNameWithinPackage(): string {\r\n const reversedParts: string[] = [];\r\n\r\n for (let current: ApiItem | undefined = this; current !== undefined; current = current.parent) {\r\n if (\r\n current.kind === ApiItemKind.Model ||\r\n current.kind === ApiItemKind.Package ||\r\n current.kind === ApiItemKind.EntryPoint\r\n ) {\r\n break;\r\n }\r\n if (reversedParts.length !== 0) {\r\n reversedParts.push('.');\r\n } else {\r\n switch (current.kind) {\r\n case ApiItemKind.CallSignature:\r\n case ApiItemKind.ConstructSignature:\r\n case ApiItemKind.Constructor:\r\n case ApiItemKind.IndexSignature:\r\n // These functional forms don't have a proper name, so we don't append the \"()\" suffix\r\n break;\r\n default:\r\n if (ApiParameterListMixin.isBaseClassOf(current)) {\r\n reversedParts.push('()');\r\n }\r\n }\r\n }\r\n reversedParts.push(current.displayName);\r\n }\r\n\r\n return reversedParts.reverse().join('');\r\n }\r\n\r\n /**\r\n * If this item is an ApiPackage or has an ApiPackage as one of its parents, then that object is returned.\r\n * Otherwise undefined is returned.\r\n */\r\n public getAssociatedPackage(): ApiPackage | undefined {\r\n for (let current: ApiItem | undefined = this; current !== undefined; current = current.parent) {\r\n if (current.kind === ApiItemKind.Package) {\r\n return current as ApiPackage;\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n /** @virtual */\r\n public getSortKey(): string {\r\n return this.containerKey;\r\n }\r\n\r\n /**\r\n * PRIVATE\r\n *\r\n * @privateRemarks\r\n * Allows ApiItemContainerMixin to assign the parent when the item is added to a container.\r\n *\r\n * @internal\r\n */\r\n public [apiItem_onParentChanged](parent: ApiItem | undefined): void {\r\n this._parent = parent;\r\n this._canonicalReference = undefined;\r\n }\r\n\r\n /**\r\n * Builds the cached object used by the `canonicalReference` property.\r\n * @virtual\r\n */\r\n protected buildCanonicalReference(): DeclarationReference {\r\n throw new InternalError('ApiItem.canonicalReference was not implemented by the child class');\r\n }\r\n}\r\n\r\n/**\r\n * This abstraction is used by the mixin pattern.\r\n * It describes a class type that inherits from {@link ApiItem}.\r\n *\r\n * @public\r\n */\r\nexport interface IApiItemConstructor extends Constructor<ApiItem>, PropertiesOf<typeof ApiItem> {}\r\n"]}
1
+ {"version":3,"file":"ApiItem.js","sourceRoot":"","sources":["../../src/items/ApiItem.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\r\n// See LICENSE in the project root for license information.\r\n\r\nimport { DeclarationReference } from '@microsoft/tsdoc/lib/beta/DeclarationReference';\r\nimport { Constructor, PropertiesOf } from '../mixins/Mixin';\r\nimport { ApiPackage } from '../model/ApiPackage';\r\nimport { ApiParameterListMixin } from '../mixins/ApiParameterListMixin';\r\nimport { DeserializerContext } from '../model/DeserializerContext';\r\nimport { InternalError } from '@rushstack/node-core-library';\r\nimport { ApiItemContainerMixin } from '../mixins/ApiItemContainerMixin';\r\n\r\n/**\r\n * The type returned by the {@link ApiItem.kind} property, which can be used to easily distinguish subclasses of\r\n * {@link ApiItem}.\r\n *\r\n * @public\r\n */\r\nexport const enum ApiItemKind {\r\n CallSignature = 'CallSignature',\r\n Class = 'Class',\r\n Constructor = 'Constructor',\r\n ConstructSignature = 'ConstructSignature',\r\n EntryPoint = 'EntryPoint',\r\n Enum = 'Enum',\r\n EnumMember = 'EnumMember',\r\n Function = 'Function',\r\n IndexSignature = 'IndexSignature',\r\n Interface = 'Interface',\r\n Method = 'Method',\r\n MethodSignature = 'MethodSignature',\r\n Model = 'Model',\r\n Namespace = 'Namespace',\r\n Package = 'Package',\r\n Property = 'Property',\r\n PropertySignature = 'PropertySignature',\r\n TypeAlias = 'TypeAlias',\r\n Variable = 'Variable',\r\n None = 'None'\r\n}\r\n\r\n/**\r\n * Constructor options for {@link ApiItem}.\r\n * @public\r\n */\r\nexport interface IApiItemOptions {}\r\n\r\nexport interface IApiItemJson {\r\n kind: ApiItemKind;\r\n canonicalReference: string;\r\n}\r\n\r\n// PRIVATE - Allows ApiItemContainerMixin to assign the parent.\r\n//\r\nexport const apiItem_onParentChanged: unique symbol = Symbol('ApiItem._onAddToContainer');\r\n\r\n/**\r\n * The abstract base class for all members of an `ApiModel` object.\r\n *\r\n * @remarks\r\n * This is part of the {@link ApiModel} hierarchy of classes, which are serializable representations of\r\n * API declarations.\r\n * @public\r\n */\r\nexport class ApiItem {\r\n private _canonicalReference: DeclarationReference | undefined;\r\n private _parent: ApiItem | undefined;\r\n\r\n public constructor(options: IApiItemOptions) {\r\n // (\"options\" is not used here, but part of the inheritance pattern)\r\n }\r\n\r\n public static deserialize(jsonObject: IApiItemJson, context: DeserializerContext): ApiItem {\r\n // The Deserializer class is coupled with a ton of other classes, so we delay loading it\r\n // to avoid ES5 circular imports.\r\n const deserializerModule: typeof import('../model/Deserializer') = require('../model/Deserializer');\r\n return deserializerModule.Deserializer.deserialize(context, jsonObject);\r\n }\r\n\r\n /** @virtual */\r\n public static onDeserializeInto(\r\n options: Partial<IApiItemOptions>,\r\n context: DeserializerContext,\r\n jsonObject: IApiItemJson\r\n ): void {\r\n // (implemented by subclasses)\r\n }\r\n\r\n /** @virtual */\r\n public serializeInto(jsonObject: Partial<IApiItemJson>): void {\r\n jsonObject.kind = this.kind;\r\n jsonObject.canonicalReference = this.canonicalReference.toString();\r\n }\r\n\r\n /**\r\n * Identifies the subclass of the `ApiItem` base class.\r\n * @virtual\r\n */\r\n public get kind(): ApiItemKind {\r\n throw new Error('ApiItem.kind was not implemented by the child class');\r\n }\r\n\r\n /**\r\n * Warning: This API is used internally by API extractor but is not yet ready for general usage.\r\n *\r\n * @remarks\r\n *\r\n * Returns a `DeclarationReference` object using the experimental new declaration reference notation.\r\n *\r\n * @beta\r\n */\r\n public get canonicalReference(): DeclarationReference {\r\n if (!this._canonicalReference) {\r\n try {\r\n this._canonicalReference = this.buildCanonicalReference();\r\n } catch (e) {\r\n const name: string = this.getScopedNameWithinPackage() || this.displayName;\r\n throw new InternalError(`Error building canonical reference for ${name}:\\n` + e.message);\r\n }\r\n }\r\n return this._canonicalReference;\r\n }\r\n\r\n /**\r\n * Returns a string key that can be used to efficiently retrieve an `ApiItem` from an `ApiItemContainerMixin`.\r\n * The key is unique within the container. Its format is undocumented and may change at any time.\r\n *\r\n * @remarks\r\n * Use the `getContainerKey()` static member to construct the key. Each subclass has a different implementation\r\n * of this function, according to the aspects that are important for identifying it.\r\n *\r\n * @virtual\r\n */\r\n public get containerKey(): string {\r\n throw new InternalError('ApiItem.containerKey was not implemented by the child class');\r\n }\r\n\r\n /**\r\n * Returns a name for this object that can be used in diagnostic messages, for example.\r\n *\r\n * @remarks\r\n * For an object that inherits ApiNameMixin, this will return the declared name (e.g. the name of a TypeScript\r\n * function). Otherwise, it will return a string such as \"(call signature)\" or \"(model)\".\r\n *\r\n * @virtual\r\n */\r\n public get displayName(): string {\r\n switch (this.kind) {\r\n case ApiItemKind.CallSignature:\r\n return '(call)';\r\n case ApiItemKind.Constructor:\r\n return '(constructor)';\r\n case ApiItemKind.ConstructSignature:\r\n return '(new)';\r\n case ApiItemKind.IndexSignature:\r\n return '(indexer)';\r\n case ApiItemKind.Model:\r\n return '(model)';\r\n }\r\n return '(???)'; // All other types should inherit ApiNameMixin which will override this property\r\n }\r\n\r\n /**\r\n * If this item was added to a ApiItemContainerMixin item, then this returns the container item.\r\n * If this is an Parameter that was added to a method or function, then this returns the function item.\r\n * Otherwise, it returns undefined.\r\n * @virtual\r\n */\r\n public get parent(): ApiItem | undefined {\r\n return this._parent;\r\n }\r\n\r\n /**\r\n * This property supports a visitor pattern for walking the tree.\r\n * For items with ApiItemContainerMixin, it returns the contained items.\r\n * Otherwise it returns an empty array.\r\n * @virtual\r\n */\r\n public get members(): ReadonlyArray<ApiItem> {\r\n return [];\r\n }\r\n\r\n /**\r\n * If this item has a name (i.e. extends `ApiNameMixin`), then return all items that have the same parent\r\n * and the same name. Otherwise, return all items that have the same parent and the same `ApiItemKind`.\r\n *\r\n * @remarks\r\n * Examples: For a function, this would return all overloads for the function. For a constructor, this would\r\n * return all overloads for the constructor. For a merged declaration (e.g. a `namespace` and `enum` with the\r\n * same name), this would return both declarations. If this item does not have a parent, or if it is the only\r\n * item of its name/kind, then the result is an array containing only this item.\r\n */\r\n public getMergedSiblings(): ReadonlyArray<ApiItem> {\r\n const parent: ApiItem | undefined = this._parent;\r\n if (parent && ApiItemContainerMixin.isBaseClassOf(parent)) {\r\n return parent._getMergedSiblingsForMember(this);\r\n }\r\n return [];\r\n }\r\n\r\n /**\r\n * Returns the chain of ancestors, starting from the root of the tree, and ending with the this item.\r\n */\r\n public getHierarchy(): ReadonlyArray<ApiItem> {\r\n const hierarchy: ApiItem[] = [];\r\n for (let current: ApiItem | undefined = this; current !== undefined; current = current.parent) {\r\n hierarchy.push(current);\r\n }\r\n hierarchy.reverse();\r\n return hierarchy;\r\n }\r\n\r\n /**\r\n * This returns a scoped name such as `\"Namespace1.Namespace2.MyClass.myMember()\"`. It does not include the\r\n * package name or entry point.\r\n *\r\n * @remarks\r\n * If called on an ApiEntrypoint, ApiPackage, or ApiModel item, the result is an empty string.\r\n */\r\n public getScopedNameWithinPackage(): string {\r\n const reversedParts: string[] = [];\r\n\r\n for (let current: ApiItem | undefined = this; current !== undefined; current = current.parent) {\r\n if (\r\n current.kind === ApiItemKind.Model ||\r\n current.kind === ApiItemKind.Package ||\r\n current.kind === ApiItemKind.EntryPoint\r\n ) {\r\n break;\r\n }\r\n if (reversedParts.length !== 0) {\r\n reversedParts.push('.');\r\n } else {\r\n switch (current.kind) {\r\n case ApiItemKind.CallSignature:\r\n case ApiItemKind.ConstructSignature:\r\n case ApiItemKind.Constructor:\r\n case ApiItemKind.IndexSignature:\r\n // These functional forms don't have a proper name, so we don't append the \"()\" suffix\r\n break;\r\n default:\r\n if (ApiParameterListMixin.isBaseClassOf(current)) {\r\n reversedParts.push('()');\r\n }\r\n }\r\n }\r\n reversedParts.push(current.displayName);\r\n }\r\n\r\n return reversedParts.reverse().join('');\r\n }\r\n\r\n /**\r\n * If this item is an ApiPackage or has an ApiPackage as one of its parents, then that object is returned.\r\n * Otherwise undefined is returned.\r\n */\r\n public getAssociatedPackage(): ApiPackage | undefined {\r\n for (let current: ApiItem | undefined = this; current !== undefined; current = current.parent) {\r\n if (current.kind === ApiItemKind.Package) {\r\n return current as ApiPackage;\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n /** @virtual */\r\n public getSortKey(): string {\r\n return this.containerKey;\r\n }\r\n\r\n /**\r\n * PRIVATE\r\n *\r\n * @privateRemarks\r\n * Allows ApiItemContainerMixin to assign the parent when the item is added to a container.\r\n *\r\n * @internal\r\n */\r\n public [apiItem_onParentChanged](parent: ApiItem | undefined): void {\r\n this._parent = parent;\r\n this._canonicalReference = undefined;\r\n }\r\n\r\n /**\r\n * Builds the cached object used by the `canonicalReference` property.\r\n * @virtual\r\n */\r\n protected buildCanonicalReference(): DeclarationReference {\r\n throw new InternalError('ApiItem.canonicalReference was not implemented by the child class');\r\n }\r\n}\r\n\r\n/**\r\n * This abstraction is used by the mixin pattern.\r\n * It describes a class type that inherits from {@link ApiItem}.\r\n *\r\n * @public\r\n */\r\nexport interface IApiItemConstructor extends Constructor<ApiItem>, PropertiesOf<typeof ApiItem> {}\r\n"]}
@@ -37,7 +37,7 @@ export declare class ApiPropertyItem extends ApiPropertyItem_base {
37
37
  * The documentation should display such properties under an "Events" heading instead of the
38
38
  * usual "Properties" heading.
39
39
  */
40
- readonly isEventProperty: boolean;
40
+ get isEventProperty(): boolean;
41
41
  /** @override */
42
42
  serializeInto(jsonObject: Partial<IApiPropertyItemJson>): void;
43
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ApiPropertyItem.d.ts","sourceRoot":"","sources":["../../src/items/ApiPropertyItem.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC1G,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,uBACf,SAAQ,oBAAoB,EAC1B,0BAA0B,EAC1B,uBAAuB;IACzB,sBAAsB,EAAE,kBAAkB,CAAC;CAC5C;AAED,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAChE,sBAAsB,EAAE,kBAAkB,CAAC;CAC5C;;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,oBAAiD;IACpF;;OAEG;IACH,SAAgB,mBAAmB,EAAE,OAAO,CAAC;gBAE1B,OAAO,EAAE,uBAAuB;IAMnD,gBAAgB;WACF,iBAAiB,CAC7B,OAAO,EAAE,OAAO,CAAC,uBAAuB,CAAC,EACzC,OAAO,EAAE,mBAAmB,EAC5B,UAAU,EAAE,oBAAoB,GAC/B,IAAI;IAMP;;;;;;;;;OASG;aACQ,eAAe,EAAI,OAAO;IAOrC,gBAAgB;IACT,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI;CAKtE"}
1
+ {"version":3,"file":"ApiPropertyItem.d.ts","sourceRoot":"","sources":["../../src/items/ApiPropertyItem.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC1G,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,uBACf,SAAQ,oBAAoB,EAC1B,0BAA0B,EAC1B,uBAAuB;IACzB,sBAAsB,EAAE,kBAAkB,CAAC;CAC5C;AAED,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAChE,sBAAsB,EAAE,kBAAkB,CAAC;CAC5C;;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,oBAAiD;IACpF;;OAEG;IACH,SAAgB,mBAAmB,EAAE,OAAO,CAAC;gBAE1B,OAAO,EAAE,uBAAuB;IAMnD,gBAAgB;WACF,iBAAiB,CAC7B,OAAO,EAAE,OAAO,CAAC,uBAAuB,CAAC,EACzC,OAAO,EAAE,mBAAmB,EAC5B,UAAU,EAAE,oBAAoB,GAC/B,IAAI;IAMP;;;;;;;;;OASG;IACH,IAAW,eAAe,IAAI,OAAO,CAKpC;IAED,gBAAgB;IACT,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI;CAKtE"}
@@ -2,6 +2,7 @@
2
2
  // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
3
3
  // See LICENSE in the project root for license information.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.ApiPropertyItem = void 0;
5
6
  const ApiDeclaredItem_1 = require("../items/ApiDeclaredItem");
6
7
  const ApiReleaseTagMixin_1 = require("../mixins/ApiReleaseTagMixin");
7
8
  const ApiNameMixin_1 = require("../mixins/ApiNameMixin");
@@ -1 +1 @@
1
- {"version":3,"file":"ApiPropertyItem.js","sourceRoot":"","sources":["../../src/items/ApiPropertyItem.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;AAG3D,8DAA0G;AAC1G,qEAA8F;AAC9F,yDAA4E;AAkB5E;;;;GAIG;AACH,MAAa,eAAgB,SAAQ,2BAAY,CAAC,uCAAkB,CAAC,iCAAe,CAAC,CAAC;IAMpF,YAAmB,OAAgC;QACjD,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC/E,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,iBAAiB,CAC7B,OAAyC,EACzC,OAA4B,EAC5B,UAAgC;QAEhC,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAEtD,OAAO,CAAC,sBAAsB,GAAG,UAAU,CAAC,sBAAsB,CAAC;IACrE,CAAC;IAED;;;;;;;;;OASG;IACH,IAAW,eAAe;QACxB,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;SAC3D;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gBAAgB;IACT,aAAa,CAAC,UAAyC;QAC5D,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAEhC,UAAU,CAAC,sBAAsB,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC;IAC1E,CAAC;CACF;AA9CD,0CA8CC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\r\n// See LICENSE in the project root for license information.\r\n\r\nimport { Excerpt, IExcerptTokenRange } from '../mixins/Excerpt';\r\nimport { IApiDeclaredItemOptions, ApiDeclaredItem, IApiDeclaredItemJson } from '../items/ApiDeclaredItem';\r\nimport { ApiReleaseTagMixin, IApiReleaseTagMixinOptions } from '../mixins/ApiReleaseTagMixin';\r\nimport { IApiNameMixinOptions, ApiNameMixin } from '../mixins/ApiNameMixin';\r\nimport { DeserializerContext } from '../model/DeserializerContext';\r\n\r\n/**\r\n * Constructor options for {@link ApiPropertyItem}.\r\n * @public\r\n */\r\nexport interface IApiPropertyItemOptions\r\n extends IApiNameMixinOptions,\r\n IApiReleaseTagMixinOptions,\r\n IApiDeclaredItemOptions {\r\n propertyTypeTokenRange: IExcerptTokenRange;\r\n}\r\n\r\nexport interface IApiPropertyItemJson extends IApiDeclaredItemJson {\r\n propertyTypeTokenRange: IExcerptTokenRange;\r\n}\r\n\r\n/**\r\n * The abstract base class for {@link ApiProperty} and {@link ApiPropertySignature}.\r\n *\r\n * @public\r\n */\r\nexport class ApiPropertyItem extends ApiNameMixin(ApiReleaseTagMixin(ApiDeclaredItem)) {\r\n /**\r\n * An {@link Excerpt} that describes the type of the property.\r\n */\r\n public readonly propertyTypeExcerpt: Excerpt;\r\n\r\n public constructor(options: IApiPropertyItemOptions) {\r\n super(options);\r\n\r\n this.propertyTypeExcerpt = this.buildExcerpt(options.propertyTypeTokenRange);\r\n }\r\n\r\n /** @override */\r\n public static onDeserializeInto(\r\n options: Partial<IApiPropertyItemOptions>,\r\n context: DeserializerContext,\r\n jsonObject: IApiPropertyItemJson\r\n ): void {\r\n super.onDeserializeInto(options, context, jsonObject);\r\n\r\n options.propertyTypeTokenRange = jsonObject.propertyTypeTokenRange;\r\n }\r\n\r\n /**\r\n * Returns true if this property should be documented as an event.\r\n *\r\n * @remarks\r\n * The `@eventProperty` TSDoc modifier can be added to readonly properties to indicate that they return an\r\n * event object that event handlers can be attached to. The event-handling API is implementation-defined, but\r\n * typically the return type would be a class with members such as `addHandler()` and `removeHandler()`.\r\n * The documentation should display such properties under an \"Events\" heading instead of the\r\n * usual \"Properties\" heading.\r\n */\r\n public get isEventProperty(): boolean {\r\n if (this.tsdocComment) {\r\n return this.tsdocComment.modifierTagSet.isEventProperty();\r\n }\r\n return false;\r\n }\r\n\r\n /** @override */\r\n public serializeInto(jsonObject: Partial<IApiPropertyItemJson>): void {\r\n super.serializeInto(jsonObject);\r\n\r\n jsonObject.propertyTypeTokenRange = this.propertyTypeExcerpt.tokenRange;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ApiPropertyItem.js","sourceRoot":"","sources":["../../src/items/ApiPropertyItem.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;AAG3D,8DAA0G;AAC1G,qEAA8F;AAC9F,yDAA4E;AAkB5E;;;;GAIG;AACH,MAAa,eAAgB,SAAQ,2BAAY,CAAC,uCAAkB,CAAC,iCAAe,CAAC,CAAC;IAMpF,YAAmB,OAAgC;QACjD,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC/E,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,iBAAiB,CAC7B,OAAyC,EACzC,OAA4B,EAC5B,UAAgC;QAEhC,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAEtD,OAAO,CAAC,sBAAsB,GAAG,UAAU,CAAC,sBAAsB,CAAC;IACrE,CAAC;IAED;;;;;;;;;OASG;IACH,IAAW,eAAe;QACxB,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;SAC3D;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gBAAgB;IACT,aAAa,CAAC,UAAyC;QAC5D,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAEhC,UAAU,CAAC,sBAAsB,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC;IAC1E,CAAC;CACF;AA9CD,0CA8CC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\r\n// See LICENSE in the project root for license information.\r\n\r\nimport { Excerpt, IExcerptTokenRange } from '../mixins/Excerpt';\r\nimport { IApiDeclaredItemOptions, ApiDeclaredItem, IApiDeclaredItemJson } from '../items/ApiDeclaredItem';\r\nimport { ApiReleaseTagMixin, IApiReleaseTagMixinOptions } from '../mixins/ApiReleaseTagMixin';\r\nimport { IApiNameMixinOptions, ApiNameMixin } from '../mixins/ApiNameMixin';\r\nimport { DeserializerContext } from '../model/DeserializerContext';\r\n\r\n/**\r\n * Constructor options for {@link ApiPropertyItem}.\r\n * @public\r\n */\r\nexport interface IApiPropertyItemOptions\r\n extends IApiNameMixinOptions,\r\n IApiReleaseTagMixinOptions,\r\n IApiDeclaredItemOptions {\r\n propertyTypeTokenRange: IExcerptTokenRange;\r\n}\r\n\r\nexport interface IApiPropertyItemJson extends IApiDeclaredItemJson {\r\n propertyTypeTokenRange: IExcerptTokenRange;\r\n}\r\n\r\n/**\r\n * The abstract base class for {@link ApiProperty} and {@link ApiPropertySignature}.\r\n *\r\n * @public\r\n */\r\nexport class ApiPropertyItem extends ApiNameMixin(ApiReleaseTagMixin(ApiDeclaredItem)) {\r\n /**\r\n * An {@link Excerpt} that describes the type of the property.\r\n */\r\n public readonly propertyTypeExcerpt: Excerpt;\r\n\r\n public constructor(options: IApiPropertyItemOptions) {\r\n super(options);\r\n\r\n this.propertyTypeExcerpt = this.buildExcerpt(options.propertyTypeTokenRange);\r\n }\r\n\r\n /** @override */\r\n public static onDeserializeInto(\r\n options: Partial<IApiPropertyItemOptions>,\r\n context: DeserializerContext,\r\n jsonObject: IApiPropertyItemJson\r\n ): void {\r\n super.onDeserializeInto(options, context, jsonObject);\r\n\r\n options.propertyTypeTokenRange = jsonObject.propertyTypeTokenRange;\r\n }\r\n\r\n /**\r\n * Returns true if this property should be documented as an event.\r\n *\r\n * @remarks\r\n * The `@eventProperty` TSDoc modifier can be added to readonly properties to indicate that they return an\r\n * event object that event handlers can be attached to. The event-handling API is implementation-defined, but\r\n * typically the return type would be a class with members such as `addHandler()` and `removeHandler()`.\r\n * The documentation should display such properties under an \"Events\" heading instead of the\r\n * usual \"Properties\" heading.\r\n */\r\n public get isEventProperty(): boolean {\r\n if (this.tsdocComment) {\r\n return this.tsdocComment.modifierTagSet.isEventProperty();\r\n }\r\n return false;\r\n }\r\n\r\n /** @override */\r\n public serializeInto(jsonObject: Partial<IApiPropertyItemJson>): void {\r\n super.serializeInto(jsonObject);\r\n\r\n jsonObject.propertyTypeTokenRange = this.propertyTypeExcerpt.tokenRange;\r\n }\r\n}\r\n"]}
@@ -2,6 +2,7 @@
2
2
  // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
3
3
  // See LICENSE in the project root for license information.s
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.ApiItemContainerMixin = void 0;
5
6
  const ApiItem_1 = require("../items/ApiItem");
6
7
  const ApiNameMixin_1 = require("./ApiNameMixin");
7
8
  const node_core_library_1 = require("@rushstack/node-core-library");
@@ -1 +1 @@
1
- {"version":3,"file":"ApiItemContainerMixin.js","sourceRoot":"","sources":["../../src/mixins/ApiItemContainerMixin.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\r\n// See LICENSE in the project root for license information.s\r\n\r\nimport {\r\n ApiItem,\r\n apiItem_onParentChanged,\r\n IApiItemJson,\r\n IApiItemOptions,\r\n IApiItemConstructor,\r\n ApiItemKind\r\n} from '../items/ApiItem';\r\nimport { ApiNameMixin } from './ApiNameMixin';\r\nimport { DeserializerContext } from '../model/DeserializerContext';\r\nimport { InternalError, LegacyAdapters } from '@rushstack/node-core-library';\r\n\r\n/**\r\n * Constructor options for {@link (ApiItemContainerMixin:interface)}.\r\n * @public\r\n */\r\nexport interface IApiItemContainerMixinOptions extends IApiItemOptions {\r\n members?: ApiItem[];\r\n}\r\n\r\nexport interface IApiItemContainerJson extends IApiItemJson {\r\n members: IApiItemJson[];\r\n}\r\n\r\nconst _members: unique symbol = Symbol('ApiItemContainerMixin._members');\r\nconst _membersSorted: unique symbol = Symbol('ApiItemContainerMixin._membersSorted');\r\nconst _membersByContainerKey: unique symbol = Symbol('ApiItemContainerMixin._membersByContainerKey');\r\nconst _membersByName: unique symbol = Symbol('ApiItemContainerMixin._membersByName');\r\nconst _membersByKind: unique symbol = Symbol('ApiItemContainerMixin._membersByKind');\r\n\r\n/**\r\n * The mixin base class for API items that act as containers for other child items.\r\n *\r\n * @remarks\r\n *\r\n * This is part of the {@link ApiModel} hierarchy of classes, which are serializable representations of\r\n * API declarations. The non-abstract classes (e.g. `ApiClass`, `ApiEnum`, `ApiInterface`, etc.) use\r\n * TypeScript \"mixin\" functions (e.g. `ApiDeclaredItem`, `ApiItemContainerMixin`, etc.) to add various\r\n * features that cannot be represented as a normal inheritance chain (since TypeScript does not allow a child class\r\n * to extend more than one base class). The \"mixin\" is a TypeScript merged declaration with three components:\r\n * the function that generates a subclass, an interface that describes the members of the subclass, and\r\n * a namespace containing static members of the class.\r\n *\r\n * Examples of `ApiItemContainerMixin` child classes include `ApiModel`, `ApiPackage`, `ApiEntryPoint`,\r\n * and `ApiEnum`. But note that `Parameter` is not considered a \"member\" of an `ApiMethod`; this relationship\r\n * is modeled using {@link (ApiParameterListMixin:interface).parameters} instead\r\n * of {@link (ApiItemContainerMixin:interface).members}.\r\n *\r\n * @public\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport interface ApiItemContainerMixin extends ApiItem {\r\n /**\r\n * Returns the members of this container, sorted alphabetically.\r\n */\r\n readonly members: ReadonlyArray<ApiItem>;\r\n\r\n /**\r\n * Adds a new member to the container.\r\n *\r\n * @remarks\r\n * An ApiItem cannot be added to more than one container.\r\n */\r\n addMember(member: ApiItem): void;\r\n\r\n /**\r\n * Attempts to retrieve a member using its containerKey, or returns `undefined` if no matching member was found.\r\n *\r\n * @remarks\r\n * Use the `getContainerKey()` static member to construct the key. Each subclass has a different implementation\r\n * of this function, according to the aspects that are important for identifying it.\r\n *\r\n * See {@link ApiItem.containerKey} for more information.\r\n */\r\n tryGetMemberByKey(containerKey: string): ApiItem | undefined;\r\n\r\n /**\r\n * Returns a list of members with the specified name.\r\n */\r\n findMembersByName(name: string): ReadonlyArray<ApiItem>;\r\n\r\n /**\r\n * For a given member of this container, return its `ApiItem.getMergedSiblings()` list.\r\n * @internal\r\n */\r\n _getMergedSiblingsForMember(memberApiItem: ApiItem): ReadonlyArray<ApiItem>;\r\n\r\n /** @override */\r\n serializeInto(jsonObject: Partial<IApiItemJson>): void;\r\n}\r\n\r\n/**\r\n * Mixin function for {@link ApiDeclaredItem}.\r\n *\r\n * @param baseClass - The base class to be extended\r\n * @returns A child class that extends baseClass, adding the {@link (ApiItemContainerMixin:interface)} functionality.\r\n *\r\n * @public\r\n */\r\nexport function ApiItemContainerMixin<TBaseClass extends IApiItemConstructor>(\r\n baseClass: TBaseClass\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n): TBaseClass & (new (...args: any[]) => ApiItemContainerMixin) {\r\n abstract class MixedClass extends baseClass implements ApiItemContainerMixin {\r\n public readonly [_members]: ApiItem[];\r\n public [_membersSorted]: boolean;\r\n public [_membersByContainerKey]: Map<string, ApiItem>;\r\n\r\n // For members of this container that extend ApiNameMixin, this stores the list of members with a given name.\r\n // Examples include merged declarations, overloaded functions, etc.\r\n public [_membersByName]: Map<string, ApiItem[]> | undefined;\r\n\r\n // For members of this container that do NOT extend ApiNameMixin, this stores the list of members\r\n // that share a common ApiItemKind. Examples include overloaded constructors or index signatures.\r\n public [_membersByKind]: Map<string, ApiItem[]> | undefined; // key is ApiItemKind\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n public constructor(...args: any[]) {\r\n super(...args);\r\n const options: IApiItemContainerMixinOptions = args[0] as IApiItemContainerMixinOptions;\r\n\r\n this[_members] = [];\r\n this[_membersByContainerKey] = new Map<string, ApiItem>();\r\n\r\n if (options.members) {\r\n for (const member of options.members) {\r\n this.addMember(member);\r\n }\r\n }\r\n }\r\n\r\n /** @override */\r\n public static onDeserializeInto(\r\n options: Partial<IApiItemContainerMixinOptions>,\r\n context: DeserializerContext,\r\n jsonObject: IApiItemContainerJson\r\n ): void {\r\n baseClass.onDeserializeInto(options, context, jsonObject);\r\n\r\n options.members = [];\r\n for (const memberObject of jsonObject.members) {\r\n options.members.push(ApiItem.deserialize(memberObject, context));\r\n }\r\n }\r\n\r\n public get members(): ReadonlyArray<ApiItem> {\r\n if (!this[_membersSorted]) {\r\n LegacyAdapters.sortStable(this[_members], (x, y) => x.getSortKey().localeCompare(y.getSortKey()));\r\n this[_membersSorted] = true;\r\n }\r\n\r\n return this[_members];\r\n }\r\n\r\n public addMember(member: ApiItem): void {\r\n if (this[_membersByContainerKey].has(member.containerKey)) {\r\n throw new Error(\r\n `Another member has already been added with the same name (${member.displayName})` +\r\n ` and containerKey (${member.containerKey})`\r\n );\r\n }\r\n\r\n const existingParent: ApiItem | undefined = member.parent;\r\n if (existingParent !== undefined) {\r\n throw new Error(\r\n `This item has already been added to another container: \"${existingParent.displayName}\"`\r\n );\r\n }\r\n\r\n this[_members].push(member);\r\n this[_membersByName] = undefined; // invalidate the lookup\r\n this[_membersByKind] = undefined; // invalidate the lookup\r\n this[_membersSorted] = false;\r\n this[_membersByContainerKey].set(member.containerKey, member);\r\n\r\n member[apiItem_onParentChanged](this);\r\n }\r\n\r\n public tryGetMemberByKey(containerKey: string): ApiItem | undefined {\r\n return this[_membersByContainerKey].get(containerKey);\r\n }\r\n\r\n public findMembersByName(name: string): ReadonlyArray<ApiItem> {\r\n this._ensureMemberMaps();\r\n return this[_membersByName]!.get(name) || [];\r\n }\r\n\r\n /** @internal */\r\n public _getMergedSiblingsForMember(memberApiItem: ApiItem): ReadonlyArray<ApiItem> {\r\n this._ensureMemberMaps();\r\n let result: ApiItem[] | undefined;\r\n if (ApiNameMixin.isBaseClassOf(memberApiItem)) {\r\n result = this[_membersByName]!.get(memberApiItem.name);\r\n } else {\r\n result = this[_membersByKind]!.get(memberApiItem.kind);\r\n }\r\n if (!result) {\r\n throw new InternalError('Item was not found in the _membersByName/_membersByKind lookup');\r\n }\r\n return result;\r\n }\r\n\r\n /** @internal */\r\n public _ensureMemberMaps(): void {\r\n // Build the _membersByName and _membersByKind tables if they don't already exist\r\n if (this[_membersByName] === undefined) {\r\n const membersByName: Map<string, ApiItem[]> = new Map<string, ApiItem[]>();\r\n const membersByKind: Map<string, ApiItem[]> = new Map<string, ApiItem[]>();\r\n\r\n for (const member of this[_members]) {\r\n let map: Map<string, ApiItem[]> | Map<ApiItemKind, ApiItem[]>;\r\n let key: string | ApiItemKind;\r\n\r\n if (ApiNameMixin.isBaseClassOf(member)) {\r\n map = membersByName;\r\n key = member.name;\r\n } else {\r\n map = membersByKind;\r\n key = member.kind;\r\n }\r\n\r\n let list: ApiItem[] | undefined = map.get(key);\r\n if (list === undefined) {\r\n list = [];\r\n map.set(key, list);\r\n }\r\n list.push(member);\r\n }\r\n\r\n this[_membersByName] = membersByName;\r\n this[_membersByKind] = membersByKind;\r\n }\r\n }\r\n\r\n /** @override */\r\n public serializeInto(jsonObject: Partial<IApiItemContainerJson>): void {\r\n super.serializeInto(jsonObject);\r\n\r\n const memberObjects: IApiItemJson[] = [];\r\n\r\n for (const member of this.members) {\r\n const memberJsonObject: Partial<IApiItemJson> = {};\r\n member.serializeInto(memberJsonObject);\r\n memberObjects.push(memberJsonObject as IApiItemJson);\r\n }\r\n\r\n jsonObject.members = memberObjects;\r\n }\r\n }\r\n\r\n return MixedClass;\r\n}\r\n\r\n/**\r\n * Static members for {@link (ApiItemContainerMixin:interface)}.\r\n * @public\r\n */\r\nexport namespace ApiItemContainerMixin {\r\n /**\r\n * A type guard that tests whether the specified `ApiItem` subclass extends the `ApiItemContainerMixin` mixin.\r\n *\r\n * @remarks\r\n *\r\n * The JavaScript `instanceof` operator cannot be used to test for mixin inheritance, because each invocation of\r\n * the mixin function produces a different subclass. (This could be mitigated by `Symbol.hasInstance`, however\r\n * the TypeScript type system cannot invoke a runtime test.)\r\n */\r\n export function isBaseClassOf(apiItem: ApiItem): apiItem is ApiItemContainerMixin {\r\n return apiItem.hasOwnProperty(_members);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ApiItemContainerMixin.js","sourceRoot":"","sources":["../../src/mixins/ApiItemContainerMixin.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\r\n// See LICENSE in the project root for license information.s\r\n\r\nimport {\r\n ApiItem,\r\n apiItem_onParentChanged,\r\n IApiItemJson,\r\n IApiItemOptions,\r\n IApiItemConstructor,\r\n ApiItemKind\r\n} from '../items/ApiItem';\r\nimport { ApiNameMixin } from './ApiNameMixin';\r\nimport { DeserializerContext } from '../model/DeserializerContext';\r\nimport { InternalError, LegacyAdapters } from '@rushstack/node-core-library';\r\n\r\n/**\r\n * Constructor options for {@link (ApiItemContainerMixin:interface)}.\r\n * @public\r\n */\r\nexport interface IApiItemContainerMixinOptions extends IApiItemOptions {\r\n members?: ApiItem[];\r\n}\r\n\r\nexport interface IApiItemContainerJson extends IApiItemJson {\r\n members: IApiItemJson[];\r\n}\r\n\r\nconst _members: unique symbol = Symbol('ApiItemContainerMixin._members');\r\nconst _membersSorted: unique symbol = Symbol('ApiItemContainerMixin._membersSorted');\r\nconst _membersByContainerKey: unique symbol = Symbol('ApiItemContainerMixin._membersByContainerKey');\r\nconst _membersByName: unique symbol = Symbol('ApiItemContainerMixin._membersByName');\r\nconst _membersByKind: unique symbol = Symbol('ApiItemContainerMixin._membersByKind');\r\n\r\n/**\r\n * The mixin base class for API items that act as containers for other child items.\r\n *\r\n * @remarks\r\n *\r\n * This is part of the {@link ApiModel} hierarchy of classes, which are serializable representations of\r\n * API declarations. The non-abstract classes (e.g. `ApiClass`, `ApiEnum`, `ApiInterface`, etc.) use\r\n * TypeScript \"mixin\" functions (e.g. `ApiDeclaredItem`, `ApiItemContainerMixin`, etc.) to add various\r\n * features that cannot be represented as a normal inheritance chain (since TypeScript does not allow a child class\r\n * to extend more than one base class). The \"mixin\" is a TypeScript merged declaration with three components:\r\n * the function that generates a subclass, an interface that describes the members of the subclass, and\r\n * a namespace containing static members of the class.\r\n *\r\n * Examples of `ApiItemContainerMixin` child classes include `ApiModel`, `ApiPackage`, `ApiEntryPoint`,\r\n * and `ApiEnum`. But note that `Parameter` is not considered a \"member\" of an `ApiMethod`; this relationship\r\n * is modeled using {@link (ApiParameterListMixin:interface).parameters} instead\r\n * of {@link (ApiItemContainerMixin:interface).members}.\r\n *\r\n * @public\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport interface ApiItemContainerMixin extends ApiItem {\r\n /**\r\n * Returns the members of this container, sorted alphabetically.\r\n */\r\n readonly members: ReadonlyArray<ApiItem>;\r\n\r\n /**\r\n * Adds a new member to the container.\r\n *\r\n * @remarks\r\n * An ApiItem cannot be added to more than one container.\r\n */\r\n addMember(member: ApiItem): void;\r\n\r\n /**\r\n * Attempts to retrieve a member using its containerKey, or returns `undefined` if no matching member was found.\r\n *\r\n * @remarks\r\n * Use the `getContainerKey()` static member to construct the key. Each subclass has a different implementation\r\n * of this function, according to the aspects that are important for identifying it.\r\n *\r\n * See {@link ApiItem.containerKey} for more information.\r\n */\r\n tryGetMemberByKey(containerKey: string): ApiItem | undefined;\r\n\r\n /**\r\n * Returns a list of members with the specified name.\r\n */\r\n findMembersByName(name: string): ReadonlyArray<ApiItem>;\r\n\r\n /**\r\n * For a given member of this container, return its `ApiItem.getMergedSiblings()` list.\r\n * @internal\r\n */\r\n _getMergedSiblingsForMember(memberApiItem: ApiItem): ReadonlyArray<ApiItem>;\r\n\r\n /** @override */\r\n serializeInto(jsonObject: Partial<IApiItemJson>): void;\r\n}\r\n\r\n/**\r\n * Mixin function for {@link ApiDeclaredItem}.\r\n *\r\n * @param baseClass - The base class to be extended\r\n * @returns A child class that extends baseClass, adding the {@link (ApiItemContainerMixin:interface)} functionality.\r\n *\r\n * @public\r\n */\r\nexport function ApiItemContainerMixin<TBaseClass extends IApiItemConstructor>(\r\n baseClass: TBaseClass\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n): TBaseClass & (new (...args: any[]) => ApiItemContainerMixin) {\r\n abstract class MixedClass extends baseClass implements ApiItemContainerMixin {\r\n public readonly [_members]: ApiItem[];\r\n public [_membersSorted]: boolean;\r\n public [_membersByContainerKey]: Map<string, ApiItem>;\r\n\r\n // For members of this container that extend ApiNameMixin, this stores the list of members with a given name.\r\n // Examples include merged declarations, overloaded functions, etc.\r\n public [_membersByName]: Map<string, ApiItem[]> | undefined;\r\n\r\n // For members of this container that do NOT extend ApiNameMixin, this stores the list of members\r\n // that share a common ApiItemKind. Examples include overloaded constructors or index signatures.\r\n public [_membersByKind]: Map<string, ApiItem[]> | undefined; // key is ApiItemKind\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n public constructor(...args: any[]) {\r\n super(...args);\r\n const options: IApiItemContainerMixinOptions = args[0] as IApiItemContainerMixinOptions;\r\n\r\n this[_members] = [];\r\n this[_membersByContainerKey] = new Map<string, ApiItem>();\r\n\r\n if (options.members) {\r\n for (const member of options.members) {\r\n this.addMember(member);\r\n }\r\n }\r\n }\r\n\r\n /** @override */\r\n public static onDeserializeInto(\r\n options: Partial<IApiItemContainerMixinOptions>,\r\n context: DeserializerContext,\r\n jsonObject: IApiItemContainerJson\r\n ): void {\r\n baseClass.onDeserializeInto(options, context, jsonObject);\r\n\r\n options.members = [];\r\n for (const memberObject of jsonObject.members) {\r\n options.members.push(ApiItem.deserialize(memberObject, context));\r\n }\r\n }\r\n\r\n public get members(): ReadonlyArray<ApiItem> {\r\n if (!this[_membersSorted]) {\r\n LegacyAdapters.sortStable(this[_members], (x, y) => x.getSortKey().localeCompare(y.getSortKey()));\r\n this[_membersSorted] = true;\r\n }\r\n\r\n return this[_members];\r\n }\r\n\r\n public addMember(member: ApiItem): void {\r\n if (this[_membersByContainerKey].has(member.containerKey)) {\r\n throw new Error(\r\n `Another member has already been added with the same name (${member.displayName})` +\r\n ` and containerKey (${member.containerKey})`\r\n );\r\n }\r\n\r\n const existingParent: ApiItem | undefined = member.parent;\r\n if (existingParent !== undefined) {\r\n throw new Error(\r\n `This item has already been added to another container: \"${existingParent.displayName}\"`\r\n );\r\n }\r\n\r\n this[_members].push(member);\r\n this[_membersByName] = undefined; // invalidate the lookup\r\n this[_membersByKind] = undefined; // invalidate the lookup\r\n this[_membersSorted] = false;\r\n this[_membersByContainerKey].set(member.containerKey, member);\r\n\r\n member[apiItem_onParentChanged](this);\r\n }\r\n\r\n public tryGetMemberByKey(containerKey: string): ApiItem | undefined {\r\n return this[_membersByContainerKey].get(containerKey);\r\n }\r\n\r\n public findMembersByName(name: string): ReadonlyArray<ApiItem> {\r\n this._ensureMemberMaps();\r\n return this[_membersByName]!.get(name) || [];\r\n }\r\n\r\n /** @internal */\r\n public _getMergedSiblingsForMember(memberApiItem: ApiItem): ReadonlyArray<ApiItem> {\r\n this._ensureMemberMaps();\r\n let result: ApiItem[] | undefined;\r\n if (ApiNameMixin.isBaseClassOf(memberApiItem)) {\r\n result = this[_membersByName]!.get(memberApiItem.name);\r\n } else {\r\n result = this[_membersByKind]!.get(memberApiItem.kind);\r\n }\r\n if (!result) {\r\n throw new InternalError('Item was not found in the _membersByName/_membersByKind lookup');\r\n }\r\n return result;\r\n }\r\n\r\n /** @internal */\r\n public _ensureMemberMaps(): void {\r\n // Build the _membersByName and _membersByKind tables if they don't already exist\r\n if (this[_membersByName] === undefined) {\r\n const membersByName: Map<string, ApiItem[]> = new Map<string, ApiItem[]>();\r\n const membersByKind: Map<string, ApiItem[]> = new Map<string, ApiItem[]>();\r\n\r\n for (const member of this[_members]) {\r\n let map: Map<string, ApiItem[]> | Map<ApiItemKind, ApiItem[]>;\r\n let key: string | ApiItemKind;\r\n\r\n if (ApiNameMixin.isBaseClassOf(member)) {\r\n map = membersByName;\r\n key = member.name;\r\n } else {\r\n map = membersByKind;\r\n key = member.kind;\r\n }\r\n\r\n let list: ApiItem[] | undefined = map.get(key);\r\n if (list === undefined) {\r\n list = [];\r\n map.set(key, list);\r\n }\r\n list.push(member);\r\n }\r\n\r\n this[_membersByName] = membersByName;\r\n this[_membersByKind] = membersByKind;\r\n }\r\n }\r\n\r\n /** @override */\r\n public serializeInto(jsonObject: Partial<IApiItemContainerJson>): void {\r\n super.serializeInto(jsonObject);\r\n\r\n const memberObjects: IApiItemJson[] = [];\r\n\r\n for (const member of this.members) {\r\n const memberJsonObject: Partial<IApiItemJson> = {};\r\n member.serializeInto(memberJsonObject);\r\n memberObjects.push(memberJsonObject as IApiItemJson);\r\n }\r\n\r\n jsonObject.members = memberObjects;\r\n }\r\n }\r\n\r\n return MixedClass;\r\n}\r\n\r\n/**\r\n * Static members for {@link (ApiItemContainerMixin:interface)}.\r\n * @public\r\n */\r\nexport namespace ApiItemContainerMixin {\r\n /**\r\n * A type guard that tests whether the specified `ApiItem` subclass extends the `ApiItemContainerMixin` mixin.\r\n *\r\n * @remarks\r\n *\r\n * The JavaScript `instanceof` operator cannot be used to test for mixin inheritance, because each invocation of\r\n * the mixin function produces a different subclass. (This could be mitigated by `Symbol.hasInstance`, however\r\n * the TypeScript type system cannot invoke a runtime test.)\r\n */\r\n export function isBaseClassOf(apiItem: ApiItem): apiItem is ApiItemContainerMixin {\r\n return apiItem.hasOwnProperty(_members);\r\n }\r\n}\r\n"]}
@@ -2,6 +2,7 @@
2
2
  // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
3
3
  // See LICENSE in the project root for license information.s
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.ApiNameMixin = void 0;
5
6
  const _name = Symbol('ApiNameMixin._name');
6
7
  /**
7
8
  * Mixin function for {@link (ApiNameMixin:interface)}.