@breadstone-tools/cem-core 0.0.12-beta.0

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 (246) hide show
  1. package/Ast/Ast.d.ts +224 -0
  2. package/Ast/Ast.d.ts.map +1 -0
  3. package/Ast/Ast.js +557 -0
  4. package/Ast/Ast.js.map +1 -0
  5. package/Ast/Builder/BuildArrowFunction.d.ts +14 -0
  6. package/Ast/Builder/BuildArrowFunction.d.ts.map +1 -0
  7. package/Ast/Builder/BuildArrowFunction.js +29 -0
  8. package/Ast/Builder/BuildArrowFunction.js.map +1 -0
  9. package/Ast/Builder/BuildAttribute.d.ts +16 -0
  10. package/Ast/Builder/BuildAttribute.d.ts.map +1 -0
  11. package/Ast/Builder/BuildAttribute.js +36 -0
  12. package/Ast/Builder/BuildAttribute.js.map +1 -0
  13. package/Ast/Builder/BuildClass.d.ts +24 -0
  14. package/Ast/Builder/BuildClass.d.ts.map +1 -0
  15. package/Ast/Builder/BuildClass.js +251 -0
  16. package/Ast/Builder/BuildClass.js.map +1 -0
  17. package/Ast/Builder/BuildClassField.d.ts +14 -0
  18. package/Ast/Builder/BuildClassField.d.ts.map +1 -0
  19. package/Ast/Builder/BuildClassField.js +34 -0
  20. package/Ast/Builder/BuildClassField.js.map +1 -0
  21. package/Ast/Builder/BuildFunctionLike.d.ts +41 -0
  22. package/Ast/Builder/BuildFunctionLike.d.ts.map +1 -0
  23. package/Ast/Builder/BuildFunctionLike.js +80 -0
  24. package/Ast/Builder/BuildFunctionLike.js.map +1 -0
  25. package/Ast/Builder/BuildMixin.d.ts +19 -0
  26. package/Ast/Builder/BuildMixin.d.ts.map +1 -0
  27. package/Ast/Builder/BuildMixin.js +50 -0
  28. package/Ast/Builder/BuildMixin.js.map +1 -0
  29. package/Ast/Builder/BuildVariable.d.ts +15 -0
  30. package/Ast/Builder/BuildVariable.d.ts.map +1 -0
  31. package/Ast/Builder/BuildVariable.js +29 -0
  32. package/Ast/Builder/BuildVariable.js.map +1 -0
  33. package/Ast/Handler/HandleAttrJsDoc.d.ts +10 -0
  34. package/Ast/Handler/HandleAttrJsDoc.d.ts.map +1 -0
  35. package/Ast/Handler/HandleAttrJsDoc.js +43 -0
  36. package/Ast/Handler/HandleAttrJsDoc.js.map +1 -0
  37. package/Ast/Handler/HandleCollectMixins.d.ts +10 -0
  38. package/Ast/Handler/HandleCollectMixins.d.ts.map +1 -0
  39. package/Ast/Handler/HandleCollectMixins.js +27 -0
  40. package/Ast/Handler/HandleCollectMixins.js.map +1 -0
  41. package/Ast/Handler/HandleCreateClassDeclarationMixin.d.ts +9 -0
  42. package/Ast/Handler/HandleCreateClassDeclarationMixin.d.ts.map +1 -0
  43. package/Ast/Handler/HandleCreateClassDeclarationMixin.js +38 -0
  44. package/Ast/Handler/HandleCreateClassDeclarationMixin.js.map +1 -0
  45. package/Ast/Handler/HandleCustomJsDocTags.d.ts +8 -0
  46. package/Ast/Handler/HandleCustomJsDocTags.d.ts.map +1 -0
  47. package/Ast/Handler/HandleCustomJsDocTags.js +31 -0
  48. package/Ast/Handler/HandleCustomJsDocTags.js.map +1 -0
  49. package/Ast/Handler/HandleDefaultValue.d.ts +10 -0
  50. package/Ast/Handler/HandleDefaultValue.d.ts.map +1 -0
  51. package/Ast/Handler/HandleDefaultValue.js +48 -0
  52. package/Ast/Handler/HandleDefaultValue.js.map +1 -0
  53. package/Ast/Handler/HandleExplicitType.d.ts +10 -0
  54. package/Ast/Handler/HandleExplicitType.d.ts.map +1 -0
  55. package/Ast/Handler/HandleExplicitType.js +28 -0
  56. package/Ast/Handler/HandleExplicitType.js.map +1 -0
  57. package/Ast/Handler/HandleHeritage.d.ts +11 -0
  58. package/Ast/Handler/HandleHeritage.d.ts.map +1 -0
  59. package/Ast/Handler/HandleHeritage.js +67 -0
  60. package/Ast/Handler/HandleHeritage.js.map +1 -0
  61. package/Ast/Handler/HandleJsDoc.d.ts +9 -0
  62. package/Ast/Handler/HandleJsDoc.d.ts.map +1 -0
  63. package/Ast/Handler/HandleJsDoc.js +90 -0
  64. package/Ast/Handler/HandleJsDoc.js.map +1 -0
  65. package/Ast/Handler/HandleJsDocParameterTag.d.ts +8 -0
  66. package/Ast/Handler/HandleJsDocParameterTag.d.ts.map +1 -0
  67. package/Ast/Handler/HandleJsDocParameterTag.js +59 -0
  68. package/Ast/Handler/HandleJsDocParameterTag.js.map +1 -0
  69. package/Ast/Handler/HandleModifiers.d.ts +13 -0
  70. package/Ast/Handler/HandleModifiers.d.ts.map +1 -0
  71. package/Ast/Handler/HandleModifiers.js +49 -0
  72. package/Ast/Handler/HandleModifiers.js.map +1 -0
  73. package/Ast/Handler/HandlePrivateMember.d.ts +10 -0
  74. package/Ast/Handler/HandlePrivateMember.d.ts.map +1 -0
  75. package/Ast/Handler/HandlePrivateMember.js +25 -0
  76. package/Ast/Handler/HandlePrivateMember.js.map +1 -0
  77. package/Ast/Handler/HandleTypeInference.d.ts +9 -0
  78. package/Ast/Handler/HandleTypeInference.d.ts.map +1 -0
  79. package/Ast/Handler/HandleTypeInference.js +46 -0
  80. package/Ast/Handler/HandleTypeInference.js.map +1 -0
  81. package/Ast/Handler/HandleWellKnownTypes.d.ts +11 -0
  82. package/Ast/Handler/HandleWellKnownTypes.d.ts.map +1 -0
  83. package/Ast/Handler/HandleWellKnownTypes.js +28 -0
  84. package/Ast/Handler/HandleWellKnownTypes.js.map +1 -0
  85. package/Ast/Manifest.d.ts +47 -0
  86. package/Ast/Manifest.d.ts.map +1 -0
  87. package/Ast/Manifest.js +209 -0
  88. package/Ast/Manifest.js.map +1 -0
  89. package/Index.d.ts +9 -0
  90. package/Index.d.ts.map +1 -0
  91. package/Index.js +8 -0
  92. package/Index.js.map +1 -0
  93. package/LICENSE +21 -0
  94. package/Plugins/Analyse/ArrowFunctionPlugin.d.ts +13 -0
  95. package/Plugins/Analyse/ArrowFunctionPlugin.d.ts.map +1 -0
  96. package/Plugins/Analyse/ArrowFunctionPlugin.js +37 -0
  97. package/Plugins/Analyse/ArrowFunctionPlugin.js.map +1 -0
  98. package/Plugins/Analyse/ClassJsDocPlugin.d.ts +25 -0
  99. package/Plugins/Analyse/ClassJsDocPlugin.d.ts.map +1 -0
  100. package/Plugins/Analyse/ClassJsDocPlugin.js +200 -0
  101. package/Plugins/Analyse/ClassJsDocPlugin.js.map +1 -0
  102. package/Plugins/Analyse/ClassPlugin.d.ts +13 -0
  103. package/Plugins/Analyse/ClassPlugin.d.ts.map +1 -0
  104. package/Plugins/Analyse/ClassPlugin.js +32 -0
  105. package/Plugins/Analyse/ClassPlugin.js.map +1 -0
  106. package/Plugins/Analyse/CustomElementsDefineCallsPlugin.d.ts +15 -0
  107. package/Plugins/Analyse/CustomElementsDefineCallsPlugin.d.ts.map +1 -0
  108. package/Plugins/Analyse/CustomElementsDefineCallsPlugin.js +112 -0
  109. package/Plugins/Analyse/CustomElementsDefineCallsPlugin.js.map +1 -0
  110. package/Plugins/Analyse/ExportsPlugin.d.ts +18 -0
  111. package/Plugins/Analyse/ExportsPlugin.d.ts.map +1 -0
  112. package/Plugins/Analyse/ExportsPlugin.js +154 -0
  113. package/Plugins/Analyse/ExportsPlugin.js.map +1 -0
  114. package/Plugins/Analyse/FunctionLikePlugin.d.ts +14 -0
  115. package/Plugins/Analyse/FunctionLikePlugin.d.ts.map +1 -0
  116. package/Plugins/Analyse/FunctionLikePlugin.js +36 -0
  117. package/Plugins/Analyse/FunctionLikePlugin.js.map +1 -0
  118. package/Plugins/Analyse/MixinPlugin.d.ts +13 -0
  119. package/Plugins/Analyse/MixinPlugin.d.ts.map +1 -0
  120. package/Plugins/Analyse/MixinPlugin.js +36 -0
  121. package/Plugins/Analyse/MixinPlugin.js.map +1 -0
  122. package/Plugins/Analyse/ReexportedWrappedMixinExportsPlugin.d.ts +15 -0
  123. package/Plugins/Analyse/ReexportedWrappedMixinExportsPlugin.d.ts.map +1 -0
  124. package/Plugins/Analyse/ReexportedWrappedMixinExportsPlugin.js +56 -0
  125. package/Plugins/Analyse/ReexportedWrappedMixinExportsPlugin.js.map +1 -0
  126. package/Plugins/Analyse/VariablePlugin.d.ts +13 -0
  127. package/Plugins/Analyse/VariablePlugin.d.ts.map +1 -0
  128. package/Plugins/Analyse/VariablePlugin.js +40 -0
  129. package/Plugins/Analyse/VariablePlugin.js.map +1 -0
  130. package/Plugins/Collect/CollectImportsPlugin.d.ts +6 -0
  131. package/Plugins/Collect/CollectImportsPlugin.d.ts.map +1 -0
  132. package/Plugins/Collect/CollectImportsPlugin.js +100 -0
  133. package/Plugins/Collect/CollectImportsPlugin.js.map +1 -0
  134. package/Plugins/Framework/Catalyst/Catalyst.d.ts +3 -0
  135. package/Plugins/Framework/Catalyst/Catalyst.d.ts.map +1 -0
  136. package/Plugins/Framework/Catalyst/Catalyst.js +9 -0
  137. package/Plugins/Framework/Catalyst/Catalyst.js.map +1 -0
  138. package/Plugins/Framework/Fast/Fast.d.ts +3 -0
  139. package/Plugins/Framework/Fast/Fast.d.ts.map +1 -0
  140. package/Plugins/Framework/Fast/Fast.js +9 -0
  141. package/Plugins/Framework/Fast/Fast.js.map +1 -0
  142. package/Plugins/Framework/Lit/Lit.d.ts +8 -0
  143. package/Plugins/Framework/Lit/Lit.d.ts.map +1 -0
  144. package/Plugins/Framework/Lit/Lit.js +25 -0
  145. package/Plugins/Framework/Lit/Lit.js.map +1 -0
  146. package/Plugins/Framework/Lit/MemberDenyListPlugin.d.ts +16 -0
  147. package/Plugins/Framework/Lit/MemberDenyListPlugin.d.ts.map +1 -0
  148. package/Plugins/Framework/Lit/MemberDenyListPlugin.js +37 -0
  149. package/Plugins/Framework/Lit/MemberDenyListPlugin.js.map +1 -0
  150. package/Plugins/Framework/Lit/MethodDenyListPlugin.d.ts +24 -0
  151. package/Plugins/Framework/Lit/MethodDenyListPlugin.d.ts.map +1 -0
  152. package/Plugins/Framework/Lit/MethodDenyListPlugin.js +51 -0
  153. package/Plugins/Framework/Lit/MethodDenyListPlugin.js.map +1 -0
  154. package/Plugins/Framework/Lit/PropertyDecoratorPlugin.d.ts +16 -0
  155. package/Plugins/Framework/Lit/PropertyDecoratorPlugin.d.ts.map +1 -0
  156. package/Plugins/Framework/Lit/PropertyDecoratorPlugin.js +100 -0
  157. package/Plugins/Framework/Lit/PropertyDecoratorPlugin.js.map +1 -0
  158. package/Plugins/Framework/Lit/StaticPropertiesPlugin.d.ts +17 -0
  159. package/Plugins/Framework/Lit/StaticPropertiesPlugin.d.ts.map +1 -0
  160. package/Plugins/Framework/Lit/StaticPropertiesPlugin.js +126 -0
  161. package/Plugins/Framework/Lit/StaticPropertiesPlugin.js.map +1 -0
  162. package/Plugins/Framework/Lwc/Lwc.d.ts +3 -0
  163. package/Plugins/Framework/Lwc/Lwc.d.ts.map +1 -0
  164. package/Plugins/Framework/Lwc/Lwc.js +9 -0
  165. package/Plugins/Framework/Lwc/Lwc.js.map +1 -0
  166. package/Plugins/Framework/Shared/AttrDecoratorPlugin.d.ts +18 -0
  167. package/Plugins/Framework/Shared/AttrDecoratorPlugin.d.ts.map +1 -0
  168. package/Plugins/Framework/Shared/AttrDecoratorPlugin.js +80 -0
  169. package/Plugins/Framework/Shared/AttrDecoratorPlugin.js.map +1 -0
  170. package/Plugins/Framework/Shared/CustomElementDecoratorPlugin.d.ts +14 -0
  171. package/Plugins/Framework/Shared/CustomElementDecoratorPlugin.d.ts.map +1 -0
  172. package/Plugins/Framework/Shared/CustomElementDecoratorPlugin.js +67 -0
  173. package/Plugins/Framework/Shared/CustomElementDecoratorPlugin.js.map +1 -0
  174. package/Plugins/Framework/Stencil/Stencil.d.ts +3 -0
  175. package/Plugins/Framework/Stencil/Stencil.d.ts.map +1 -0
  176. package/Plugins/Framework/Stencil/Stencil.js +9 -0
  177. package/Plugins/Framework/Stencil/Stencil.js.map +1 -0
  178. package/Plugins/Link/CleanupClassesPlugin.d.ts +6 -0
  179. package/Plugins/Link/CleanupClassesPlugin.d.ts.map +1 -0
  180. package/Plugins/Link/CleanupClassesPlugin.js +24 -0
  181. package/Plugins/Link/CleanupClassesPlugin.js.map +1 -0
  182. package/Plugins/Link/FieldDenyListPlugin.d.ts +6 -0
  183. package/Plugins/Link/FieldDenyListPlugin.d.ts.map +1 -0
  184. package/Plugins/Link/FieldDenyListPlugin.js +23 -0
  185. package/Plugins/Link/FieldDenyListPlugin.js.map +1 -0
  186. package/Plugins/Link/MethodDenyListPlugin.d.ts +6 -0
  187. package/Plugins/Link/MethodDenyListPlugin.d.ts.map +1 -0
  188. package/Plugins/Link/MethodDenyListPlugin.js +26 -0
  189. package/Plugins/Link/MethodDenyListPlugin.js.map +1 -0
  190. package/Plugins/PostProcessing/ApplyInheritancePlugin.d.ts +6 -0
  191. package/Plugins/PostProcessing/ApplyInheritancePlugin.d.ts.map +1 -0
  192. package/Plugins/PostProcessing/ApplyInheritancePlugin.js +87 -0
  193. package/Plugins/PostProcessing/ApplyInheritancePlugin.js.map +1 -0
  194. package/Plugins/PostProcessing/IsCustomElementPlugin.d.ts +6 -0
  195. package/Plugins/PostProcessing/IsCustomElementPlugin.d.ts.map +1 -0
  196. package/Plugins/PostProcessing/IsCustomElementPlugin.js +35 -0
  197. package/Plugins/PostProcessing/IsCustomElementPlugin.js.map +1 -0
  198. package/Plugins/PostProcessing/LinkClassToTagnamePlugin.d.ts +6 -0
  199. package/Plugins/PostProcessing/LinkClassToTagnamePlugin.d.ts.map +1 -0
  200. package/Plugins/PostProcessing/LinkClassToTagnamePlugin.js +28 -0
  201. package/Plugins/PostProcessing/LinkClassToTagnamePlugin.js.map +1 -0
  202. package/Plugins/PostProcessing/RemoveUnexportedDeclarationsPlugin.d.ts +6 -0
  203. package/Plugins/PostProcessing/RemoveUnexportedDeclarationsPlugin.d.ts.map +1 -0
  204. package/Plugins/PostProcessing/RemoveUnexportedDeclarationsPlugin.js +21 -0
  205. package/Plugins/PostProcessing/RemoveUnexportedDeclarationsPlugin.js.map +1 -0
  206. package/Plugins/PostProcessing/ResolveInitializersPlugin.d.ts +6 -0
  207. package/Plugins/PostProcessing/ResolveInitializersPlugin.d.ts.map +1 -0
  208. package/Plugins/PostProcessing/ResolveInitializersPlugin.js +59 -0
  209. package/Plugins/PostProcessing/ResolveInitializersPlugin.js.map +1 -0
  210. package/Services/DependencyService.d.ts +1 -0
  211. package/Services/DependencyService.d.ts.map +1 -0
  212. package/Services/DependencyService.js +112 -0
  213. package/Services/DependencyService.js.map +1 -0
  214. package/Services/Interfaces/IDependencyService.d.ts +12 -0
  215. package/Services/Interfaces/IDependencyService.d.ts.map +1 -0
  216. package/Services/Interfaces/IDependencyService.js +4 -0
  217. package/Services/Interfaces/IDependencyService.js.map +1 -0
  218. package/Services/Interfaces/IManifestBuilder.d.ts +16 -0
  219. package/Services/Interfaces/IManifestBuilder.d.ts.map +1 -0
  220. package/Services/Interfaces/IManifestBuilder.js +4 -0
  221. package/Services/Interfaces/IManifestBuilder.js.map +1 -0
  222. package/Services/Interfaces/IManifestEngine.d.ts +16 -0
  223. package/Services/Interfaces/IManifestEngine.d.ts.map +1 -0
  224. package/Services/Interfaces/IManifestEngine.js +4 -0
  225. package/Services/Interfaces/IManifestEngine.js.map +1 -0
  226. package/Services/ManifestBuilder.d.ts +47 -0
  227. package/Services/ManifestBuilder.d.ts.map +1 -0
  228. package/Services/ManifestBuilder.js +49 -0
  229. package/Services/ManifestBuilder.js.map +1 -0
  230. package/Services/ManifestEngine.d.ts +62 -0
  231. package/Services/ManifestEngine.d.ts.map +1 -0
  232. package/Services/ManifestEngine.js +283 -0
  233. package/Services/ManifestEngine.js.map +1 -0
  234. package/Types/Framework.d.ts +2 -0
  235. package/Types/Framework.d.ts.map +1 -0
  236. package/Types/Framework.js +3 -0
  237. package/Types/Framework.js.map +1 -0
  238. package/Types.d.ts +1 -0
  239. package/Types.d.ts.map +1 -0
  240. package/Types.js +45 -0
  241. package/Types.js.map +1 -0
  242. package/Utils.d.ts +50 -0
  243. package/Utils.d.ts.map +1 -0
  244. package/Utils.js +147 -0
  245. package/Utils.js.map +1 -0
  246. package/package.json +23 -0
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ //#region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.methodDenyListPlugin = methodDenyListPlugin;
5
+ //#endregion
6
+ /**
7
+ * Method Deny List Plugin - Excludes methods from the manifest.
8
+ */
9
+ function methodDenyListPlugin() {
10
+ const METHOD_DENY_LIST = [
11
+ 'connectedCallback',
12
+ 'disconnectedCallback',
13
+ 'attributeChangedCallback',
14
+ 'adoptedCallback'
15
+ ];
16
+ return {
17
+ name: 'CORE - METHOD-DENYLIST',
18
+ onModuleLink: (parmas) => {
19
+ const classes = parmas.moduleDoc.declarations?.filter((declaration) => declaration.kind === 'class' || declaration.kind === 'mixin');
20
+ classes?.forEach((klass) => {
21
+ klass.members = klass?.members?.filter((member) => !METHOD_DENY_LIST.includes(member.name));
22
+ });
23
+ }
24
+ };
25
+ }
26
+ //# sourceMappingURL=MethodDenyListPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MethodDenyListPlugin.js","sourceRoot":"","sources":["../../../src/Plugins/Link/MethodDenyListPlugin.ts"],"names":[],"mappings":";AAAA,iBAAiB;;AASjB,oDAkBC;AAvBD,YAAY;AAEZ;;GAEG;AACH,SAAgB,oBAAoB;IAChC,MAAM,gBAAgB,GAAG;QACrB,mBAAmB;QACnB,sBAAsB;QACtB,0BAA0B;QAC1B,iBAAiB;KACpB,CAAC;IAEF,OAAO;QACH,IAAI,EAAE,wBAAwB;QAC9B,YAAY,EAAE,CAAC,MAA8B,EAAE,EAAE;YAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,WAAgB,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,OAAO,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;YAE1I,OAAO,EAAE,OAAO,CAAC,CAAC,KAAU,EAAE,EAAE;gBAC5B,KAAK,CAAC,OAAO,GAAG,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YACrG,CAAC,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { IPlugin } from '@breadstone-tools/cem-plugin';
2
+ /**
3
+ * Apply Inheritance Plugin - Applies inheritance for all classes in the manifest.
4
+ */
5
+ export declare function applyInheritancePlugin(): IPlugin;
6
+ //# sourceMappingURL=ApplyInheritancePlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApplyInheritancePlugin.d.ts","sourceRoot":"","sources":["../../../src/Plugins/PostProcessing/ApplyInheritancePlugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA2B,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAKrF;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAkEhD"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ //#region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.applyInheritancePlugin = applyInheritancePlugin;
5
+ const Manifest_js_1 = require("../../Ast/Manifest.js");
6
+ //#endregion
7
+ /**
8
+ * Apply Inheritance Plugin - Applies inheritance for all classes in the manifest.
9
+ */
10
+ function applyInheritancePlugin() {
11
+ return {
12
+ name: 'CORE - APPLY-INHERITANCE',
13
+ onPackageLink: (params) => {
14
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
15
+ // @ts-ignore
16
+ const allManifests = [params.customElementsManifest, ...(params.context.thirdPartyCEMs || [])];
17
+ const classLikes = [];
18
+ allManifests.forEach(manifest => {
19
+ const classes = (0, Manifest_js_1.getAllDeclarationsOfKind)(manifest, 'class');
20
+ const mixins = (0, Manifest_js_1.getAllDeclarationsOfKind)(manifest, 'mixin');
21
+ classLikes.push(...classes, ...mixins);
22
+ });
23
+ classLikes.forEach(customElement => {
24
+ const inheritanceChain = (0, Manifest_js_1.getInheritanceTree)(allManifests, customElement.name);
25
+ inheritanceChain.forEach((klass) => {
26
+ if (klass?.name === customElement.name) {
27
+ return;
28
+ }
29
+ ['slots', 'cssParts', 'cssProperties', 'attributes', 'members', 'events', 'cssStates'].forEach(type => {
30
+ klass?.[type]?.forEach((currItem) => {
31
+ const containingModulePath = (0, Manifest_js_1.getModuleForClassLike)(allManifests, klass.name);
32
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
33
+ // @ts-ignore
34
+ const containingModule = (0, Manifest_js_1.getModuleFromManifests)(allManifests, containingModulePath);
35
+ const newItem = { ...currItem };
36
+ const existing = customElement?.[type]?.find((item) => newItem.name === item.name);
37
+ if (existing) {
38
+ existing.inheritedFrom = {
39
+ name: klass.name,
40
+ ...resolveModuleOrPackageSpecifier(containingModule, params.context, klass.name)
41
+ };
42
+ customElement[type] = customElement?.[type]?.map((item) => item.name === existing.name
43
+ ? {
44
+ ...newItem,
45
+ ...existing,
46
+ ...{
47
+ ...(newItem.type ? { type: newItem.type } : {}),
48
+ ...(newItem.privacy ? { privacy: newItem.privacy } : {})
49
+ }
50
+ }
51
+ : item);
52
+ }
53
+ else {
54
+ newItem.inheritedFrom = {
55
+ name: klass.name,
56
+ ...resolveModuleOrPackageSpecifier(containingModule, params.context, klass.name)
57
+ };
58
+ customElement[type] = [...(customElement[type] || []), newItem];
59
+ }
60
+ });
61
+ });
62
+ });
63
+ });
64
+ }
65
+ };
66
+ }
67
+ /**
68
+ * Resolves the module or package specifier for a given name.
69
+ * @param moduleDoc - The module documentation object.
70
+ * @param context - The context object containing imports.
71
+ * @param name - The name to resolve the specifier for.
72
+ * @returns An object with the resolved module or package specifier.
73
+ */
74
+ function resolveModuleOrPackageSpecifier(moduleDoc, context, name) {
75
+ const foundImport = context?.imports?.find((i) => i.name === name);
76
+ if (foundImport) {
77
+ if (foundImport.isBareModuleSpecifier) {
78
+ // Import is from a 3rd party package
79
+ return { package: foundImport.importPath };
80
+ }
81
+ // Import is from a local module
82
+ return { module: new URL(foundImport.importPath, `file:///${moduleDoc.path}`).pathname };
83
+ }
84
+ // Item is in the current module
85
+ return { module: moduleDoc.path };
86
+ }
87
+ //# sourceMappingURL=ApplyInheritancePlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApplyInheritancePlugin.js","sourceRoot":"","sources":["../../../src/Plugins/PostProcessing/ApplyInheritancePlugin.ts"],"names":[],"mappings":";AAAA,iBAAiB;;AAUjB,wDAkEC;AAzED,uDAAoI;AAEpI,YAAY;AAEZ;;GAEG;AACH,SAAgB,sBAAsB;IAClC,OAAO;QACH,IAAI,EAAE,0BAA0B;QAChC,aAAa,EAAE,CAAC,MAA+B,EAAE,EAAE;YAC/C,6DAA6D;YAC7D,aAAa;YACb,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/F,MAAM,UAAU,GAAe,EAAE,CAAC;YAElC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAC5B,MAAM,OAAO,GAAG,IAAA,sCAAwB,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC5D,MAAM,MAAM,GAAG,IAAA,sCAAwB,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC3D,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;YAEH,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;gBAC/B,MAAM,gBAAgB,GAAG,IAAA,gCAAkB,EAAC,YAAY,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;gBAE9E,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,EAAE;oBACpC,IAAI,KAAK,EAAE,IAAI,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;wBACrC,OAAO;oBACX,CAAC;oBAED,CAAC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;wBAClG,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,QAAa,EAAE,EAAE;4BACrC,MAAM,oBAAoB,GAAG,IAAA,mCAAqB,EAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;4BAC7E,6DAA6D;4BAC7D,aAAa;4BACb,MAAM,gBAAgB,GAAG,IAAA,oCAAsB,EAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;4BAEpF,MAAM,OAAO,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;4BAEhC,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;4BAExF,IAAI,QAAQ,EAAE,CAAC;gCACX,QAAQ,CAAC,aAAa,GAAG;oCACrB,IAAI,EAAE,KAAK,CAAC,IAAI;oCAChB,GAAG,+BAA+B,CAAC,gBAAgB,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC;iCACnF,CAAC;gCAEF,aAAa,CAAC,IAAI,CAAC,GAAG,aAAa,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAC3D,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;oCACvB,CAAC,CAAC;wCACE,GAAG,OAAO;wCACV,GAAG,QAAQ;wCACX,GAAG;4CACC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4CAC/C,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yCAC3D;qCACJ;oCACD,CAAC,CAAC,IAAI,CACb,CAAC;4BACN,CAAC;iCAAM,CAAC;gCACJ,OAAO,CAAC,aAAa,GAAG;oCACpB,IAAI,EAAE,KAAK,CAAC,IAAI;oCAChB,GAAG,+BAA+B,CAAC,gBAAgB,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC;iCACnF,CAAC;gCAEF,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;4BACpE,CAAC;wBACL,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACH,SAAS,+BAA+B,CAAC,SAAc,EAAE,OAAY,EAAE,IAAY;IAC/E,MAAM,WAAW,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAExE,IAAI,WAAW,EAAE,CAAC;QACd,IAAI,WAAW,CAAC,qBAAqB,EAAE,CAAC;YACpC,qCAAqC;YACrC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC;QAC/C,CAAC;QAED,gCAAgC;QAChC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC7F,CAAC;IAED,gCAAgC;IAChC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;AACtC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { IPlugin } from '@breadstone-tools/cem-plugin';
2
+ /**
3
+ * Is Custom Element Plugin - Heuristic to see whether or not a class is a custom element.
4
+ */
5
+ export declare function isCustomElementPlugin(): IPlugin;
6
+ //# sourceMappingURL=IsCustomElementPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsCustomElementPlugin.d.ts","sourceRoot":"","sources":["../../../src/Plugins/PostProcessing/IsCustomElementPlugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA2B,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAIrF;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CA4B/C"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ //#region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.isCustomElementPlugin = isCustomElementPlugin;
5
+ //#endregion
6
+ /**
7
+ * Is Custom Element Plugin - Heuristic to see whether or not a class is a custom element.
8
+ */
9
+ function isCustomElementPlugin() {
10
+ const BASECLASSES = [
11
+ 'htmlelement',
12
+ 'litelement',
13
+ 'fastelement'
14
+ ];
15
+ return {
16
+ name: 'CORE - IS-CUSTOM-ELEMENT',
17
+ onPackageLink: (params) => {
18
+ params.customElementsManifest.modules.forEach((_module) => {
19
+ _module?.declarations?.forEach((declaration) => {
20
+ if (declaration?.kind === 'class') {
21
+ /** If a class has a tagName, that means it's been defined, and is a custom element */
22
+ if (declaration?.tagName) {
23
+ declaration.customElement = true;
24
+ }
25
+ /** If a class extends from any of these, it's a custom element */
26
+ if (BASECLASSES.includes(declaration?.superclass?.name?.toLowerCase())) {
27
+ declaration.customElement = true;
28
+ }
29
+ }
30
+ });
31
+ });
32
+ }
33
+ };
34
+ }
35
+ //# sourceMappingURL=IsCustomElementPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsCustomElementPlugin.js","sourceRoot":"","sources":["../../../src/Plugins/PostProcessing/IsCustomElementPlugin.ts"],"names":[],"mappings":";AAAA,iBAAiB;;AASjB,sDA4BC;AAjCD,YAAY;AAEZ;;GAEG;AACH,SAAgB,qBAAqB;IACjC,MAAM,WAAW,GAAG;QAChB,aAAa;QACb,YAAY;QACZ,aAAa;KAChB,CAAC;IAEF,OAAO;QACH,IAAI,EAAE,0BAA0B;QAChC,aAAa,EAAE,CAAC,MAA+B,EAAE,EAAE;YAC/C,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;gBAC3D,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,WAAgB,EAAE,EAAE;oBAChD,IAAI,WAAW,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;wBAEhC,sFAAsF;wBACtF,IAAI,WAAW,EAAE,OAAO,EAAE,CAAC;4BACvB,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC;wBACrC,CAAC;wBAED,kEAAkE;wBAClE,IAAI,WAAW,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;4BACrE,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC;wBACrC,CAAC;oBACL,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { IPlugin } from '@breadstone-tools/cem-plugin';
2
+ /**
3
+ * Link Class To Tagname Plugin - Links a custom element definition to its corresponding class.
4
+ */
5
+ export declare function linkClassToTagnamePlugin(): IPlugin;
6
+ //# sourceMappingURL=LinkClassToTagnamePlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkClassToTagnamePlugin.d.ts","sourceRoot":"","sources":["../../../src/Plugins/PostProcessing/LinkClassToTagnamePlugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA2B,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAKrF;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,OAAO,CAmBlD"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ //#region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.linkClassToTagnamePlugin = linkClassToTagnamePlugin;
5
+ const Manifest_js_1 = require("../../Ast/Manifest.js");
6
+ //#endregion
7
+ /**
8
+ * Link Class To Tagname Plugin - Links a custom element definition to its corresponding class.
9
+ */
10
+ function linkClassToTagnamePlugin() {
11
+ return {
12
+ name: 'CORE - LINK-CLASS-TO-TAGNAME',
13
+ onPackageLink: (params) => {
14
+ // Get all class declarations and custom element definitions in the manifest
15
+ const classes = (0, Manifest_js_1.getAllDeclarationsOfKind)(params.customElementsManifest, 'class');
16
+ const definitions = (0, Manifest_js_1.getAllExportsOfKind)(params.customElementsManifest, 'custom-element-definition');
17
+ // Loop through all classes, and try to find their corresponding custom element definition
18
+ classes.forEach((klass) => {
19
+ const tagName = definitions.find((def) => def?.declaration?.name === klass?.name)?.name;
20
+ // If there's a match, we can link the custom element definition to the class
21
+ if (tagName && !klass.tagName) {
22
+ klass.tagName = tagName;
23
+ }
24
+ });
25
+ }
26
+ };
27
+ }
28
+ //# sourceMappingURL=LinkClassToTagnamePlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkClassToTagnamePlugin.js","sourceRoot":"","sources":["../../../src/Plugins/PostProcessing/LinkClassToTagnamePlugin.ts"],"names":[],"mappings":";AAAA,iBAAiB;;AAUjB,4DAmBC;AA1BD,uDAAsF;AAEtF,YAAY;AAEZ;;GAEG;AACH,SAAgB,wBAAwB;IACpC,OAAO;QACH,IAAI,EAAE,8BAA8B;QACpC,aAAa,EAAE,CAAC,MAA+B,EAAE,EAAE;YAC/C,4EAA4E;YAC5E,MAAM,OAAO,GAAG,IAAA,sCAAwB,EAAC,MAAM,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;YACjF,MAAM,WAAW,GAAG,IAAA,iCAAmB,EAAC,MAAM,CAAC,sBAAsB,EAAE,2BAA2B,CAAC,CAAC;YAEpG,0FAA0F;YAC1F,OAAO,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,EAAE;gBAC3B,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,KAAK,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC;gBAE7F,6EAA6E;gBAC7E,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;oBAC5B,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;gBAC5B,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { IPlugin } from '@breadstone-tools/cem-plugin';
2
+ /**
3
+ * Remove Unexported Declarations Plugin - If a module has declarations that are _not_ exported, that means those declarations are considered 'private' to that module, and they shouldn't be present in the manifest, so we remove them.
4
+ */
5
+ export declare function removeUnexportedDeclarationsPlugin(): IPlugin;
6
+ //# sourceMappingURL=RemoveUnexportedDeclarationsPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoveUnexportedDeclarationsPlugin.d.ts","sourceRoot":"","sources":["../../../src/Plugins/PostProcessing/RemoveUnexportedDeclarationsPlugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA2B,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAIrF;;GAEG;AACH,wBAAgB,kCAAkC,IAAI,OAAO,CAW5D"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ //#region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.removeUnexportedDeclarationsPlugin = removeUnexportedDeclarationsPlugin;
5
+ //#endregion
6
+ /**
7
+ * Remove Unexported Declarations Plugin - If a module has declarations that are _not_ exported, that means those declarations are considered 'private' to that module, and they shouldn't be present in the manifest, so we remove them.
8
+ */
9
+ function removeUnexportedDeclarationsPlugin() {
10
+ return {
11
+ name: 'CORE - REMOVE-UNEXPORTED-DECLARATIONS',
12
+ onPackageLink: (params) => {
13
+ params.customElementsManifest.modules.forEach((mod) => {
14
+ if (Array.isArray(mod?.declarations)) {
15
+ mod.declarations = mod?.declarations?.filter((declaration) => mod?.exports?.some((_export) => declaration?.name === _export?.name || declaration?.name === _export?.declaration?.name));
16
+ }
17
+ });
18
+ },
19
+ };
20
+ }
21
+ //# sourceMappingURL=RemoveUnexportedDeclarationsPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoveUnexportedDeclarationsPlugin.js","sourceRoot":"","sources":["../../../src/Plugins/PostProcessing/RemoveUnexportedDeclarationsPlugin.ts"],"names":[],"mappings":";AAAA,iBAAiB;;AASjB,gFAWC;AAhBD,YAAY;AAEZ;;GAEG;AACH,SAAgB,kCAAkC;IAC9C,OAAO;QACH,IAAI,EAAE,uCAAuC;QAC7C,aAAa,EAAE,CAAC,MAA+B,EAAE,EAAE;YAC/C,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,EAAE;gBACvD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC;oBACnC,GAAG,CAAC,YAAY,GAAG,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,WAAgB,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,OAAY,EAAE,EAAE,CAAC,WAAW,EAAE,IAAI,KAAK,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,IAAI,KAAK,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;gBACtM,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { IPlugin } from '@breadstone-tools/cem-plugin';
2
+ /**
3
+ * Resolve Initializers Plugin - Resolves initializers for class fields that have a `resolveInitializer` property.
4
+ */
5
+ export declare function resolveInitializersPlugin(): IPlugin;
6
+ //# sourceMappingURL=ResolveInitializersPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResolveInitializersPlugin.d.ts","sourceRoot":"","sources":["../../../src/Plugins/PostProcessing/ResolveInitializersPlugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA2B,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAIrF;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,OAAO,CAyDnD"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ //#region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.resolveInitializersPlugin = resolveInitializersPlugin;
5
+ //#endregion
6
+ /**
7
+ * Resolve Initializers Plugin - Resolves initializers for class fields that have a `resolveInitializer` property.
8
+ */
9
+ function resolveInitializersPlugin() {
10
+ return {
11
+ name: 'CORE - RESOLVE-INITIALIZERS',
12
+ onPackageLink: (params) => {
13
+ params.customElementsManifest.modules.forEach((mod) => {
14
+ mod?.declarations?.forEach((declaration) => {
15
+ declaration?.members
16
+ ?.filter(({ resolveInitializer }) => resolveInitializer)
17
+ ?.forEach((member) => {
18
+ /** We ignore variables imported from a third party package */
19
+ if ('package' in member.resolveInitializer) {
20
+ delete member.resolveInitializer;
21
+ return;
22
+ }
23
+ /** Find the module */
24
+ const foundModule = params.customElementsManifest.modules.find(({ path }) => {
25
+ let toResolve = url(member?.resolveInitializer?.module);
26
+ const modulePath = url(path);
27
+ if (!toResolve.endsWith('.js') && !toResolve.endsWith('.ts')) {
28
+ toResolve += '.ts';
29
+ }
30
+ return toResolve === modulePath;
31
+ });
32
+ if (foundModule) {
33
+ /** Find the declaration */
34
+ const foundReference = foundModule.declarations?.find((decl) => decl?.name === member?.default);
35
+ /** Overwrite the type with the type of the reference we found */
36
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
37
+ // @ts-ignore
38
+ if (foundReference?.type && !member?.type) {
39
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
40
+ // @ts-ignore
41
+ member.type = foundReference.type;
42
+ }
43
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
44
+ // @ts-ignore
45
+ if (foundReference?.default) {
46
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
47
+ // @ts-ignore
48
+ member.default = foundReference.default;
49
+ }
50
+ }
51
+ delete member.resolveInitializer;
52
+ });
53
+ });
54
+ });
55
+ }
56
+ };
57
+ }
58
+ const url = (path) => new URL('', `file:///${path}`).pathname;
59
+ //# sourceMappingURL=ResolveInitializersPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResolveInitializersPlugin.js","sourceRoot":"","sources":["../../../src/Plugins/PostProcessing/ResolveInitializersPlugin.ts"],"names":[],"mappings":";AAAA,iBAAiB;;AASjB,8DAyDC;AA9DD,YAAY;AAEZ;;GAEG;AACH,SAAgB,yBAAyB;IACrC,OAAO;QACH,IAAI,EAAE,6BAA6B;QACnC,aAAa,EAAE,CAAC,MAA+B,EAAE,EAAE;YAC/C,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,EAAE;gBACvD,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,WAAgB,EAAE,EAAE;oBAC5C,WAAW,EAAE,OAAO;wBAChB,EAAE,MAAM,CAAC,CAAC,EAAE,kBAAkB,EAA+B,EAAE,EAAE,CAAC,kBAAkB,CAAC;wBACrF,EAAE,OAAO,CAAC,CAAC,MAAW,EAAE,EAAE;wBAEtB,8DAA8D;wBAC9D,IAAI,SAAS,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;4BACzC,OAAO,MAAM,CAAC,kBAAkB,CAAC;4BACjC,OAAO;wBACX,CAAC;wBAED,sBAAsB;wBACtB,MAAM,WAAW,GAAG,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;4BAC1F,IAAI,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC;4BACxD,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;4BAE7B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gCAC3D,SAAS,IAAI,KAAK,CAAC;4BACvB,CAAC;4BAED,OAAO,SAAS,KAAK,UAAU,CAAC;wBACpC,CAAC,CAAC,CAAC;wBAEH,IAAI,WAAW,EAAE,CAAC;4BAEd,2BAA2B;4BAC3B,MAAM,cAAc,GAAG,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,EAAE,OAAO,CAAC,CAAC;4BAErG,iEAAiE;4BACjE,6DAA6D;4BAC7D,aAAa;4BACb,IAAI,cAAc,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;gCACxC,6DAA6D;gCAC7D,aAAa;gCACb,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;4BACtC,CAAC;4BAED,6DAA6D;4BAC7D,aAAa;4BACb,IAAI,cAAc,EAAE,OAAO,EAAE,CAAC;gCAC1B,6DAA6D;gCAC7D,aAAa;gCACb,MAAM,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC;4BAC5C,CAAC;wBACL,CAAC;wBAED,OAAO,MAAM,CAAC,kBAAkB,CAAC;oBACrC,CAAC,CAAC,CAAC;gBACX,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;AACN,CAAC;AAED,MAAM,GAAG,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=DependencyService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DependencyService.d.ts","sourceRoot":"","sources":["../../src/Services/DependencyService.ts"],"names":[],"mappings":""}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ // //#region Imports
3
+ // import { type Logger } from '@breadstone-infrastructure/utilities';
4
+ // import { init, parse } from 'es-module-lexer';
5
+ // import fs from 'fs';
6
+ // import { builtinModules, createRequire } from 'module';
7
+ // import path from 'path';
8
+ // import { isBareModuleSpecifier, splitPath, traverseUp } from '../Utils.js';
9
+ // import { type IDependencyService } from './Interfaces/IDependencyService';
10
+ // //#endregion
11
+ // const require = createRequire(import.meta.url);
12
+ // /**
13
+ // * The `DependencyService` class.
14
+ // *
15
+ // * @public
16
+ // */
17
+ // export class DependencyService implements IDependencyService {
18
+ // //#region Fields
19
+ // private readonly _logger: Logger;
20
+ // //#endregion
21
+ // //#region Ctor
22
+ // /**
23
+ // * Constructs a new instance of the `DependencyService` class.
24
+ // *
25
+ // * @public
26
+ // */
27
+ // public constructor(logger: Logger) {
28
+ // this._logger = logger;
29
+ // }
30
+ // //#endregion
31
+ // //#region Properties
32
+ // //#endregion
33
+ // //#region Methods
34
+ // /**
35
+ // * Finds dependencies for the given paths.
36
+ // *
37
+ // * @param paths - The array of paths to scan for dependencies.
38
+ // * @param options - Optional parameters for nodeModulesDepth and basePath.
39
+ // * @returns A promise that resolves to an array of found dependencies.
40
+ // * @public
41
+ // */
42
+ // public async findDependencies(paths: Array<string>, options: { nodeModulesDepth?: number; basePath?: string } = {}): Promise<Array<string>> {
43
+ // const importsToScan: Set<string> = new Set();
44
+ // const dependencies: Set<string> = new Set();
45
+ // const nodeModulesDepth: number = options.nodeModulesDepth ?? 3;
46
+ // const basePath: string = options.basePath ?? process.cwd();
47
+ // // Init es-module-lexer wasm
48
+ // await init;
49
+ // for (const filePath of paths) {
50
+ // const source: string = fs.readFileSync(filePath, 'utf8');
51
+ // const imports = parse(source)[0];
52
+ // for (const i of imports) {
53
+ // // Skip built-in modules like fs, path, etc.
54
+ // if (builtinModules.includes(i.n ?? '')) {
55
+ // continue;
56
+ // }
57
+ // try {
58
+ // const pathToDependency: string = require.resolve(i.n ?? '', {
59
+ // paths: [
60
+ // // Current project's node_modules
61
+ // basePath,
62
+ // // Monorepo, look upwards in filetree n times
63
+ // ...traverseUp(nodeModulesDepth, { cwd: basePath })
64
+ // ]
65
+ // });
66
+ // importsToScan.add(pathToDependency);
67
+ // dependencies.add(pathToDependency);
68
+ // } catch {
69
+ // this._logger.logError(`Failed to resolve dependency "${i.n}".`);
70
+ // }
71
+ // }
72
+ // }
73
+ // while (importsToScan.size) {
74
+ // for (const dep of importsToScan) {
75
+ // importsToScan.delete(dep);
76
+ // const source: string = fs.readFileSync(dep, 'utf8');
77
+ // const imports = parse(source)[0];
78
+ // for (const i of imports) {
79
+ // // Skip built-in modules like fs, path, etc.
80
+ // if (builtinModules.includes(i.n ?? '')) {
81
+ // continue;
82
+ // }
83
+ // const packageRoot = splitPath(dep).packageRoot;
84
+ // const fileToFind = isBareModuleSpecifier(i.n ?? '') ? (i.n ?? '') : path.join(path.dirname(dep), i.n ?? '');
85
+ // try {
86
+ // // First check in the dependencies' node_modules, then in the project's node_modules, then up, and up, and up
87
+ // const pathToDependency: string = require.resolve(fileToFind, {
88
+ // paths: [
89
+ // // Nested node_modules
90
+ // packageRoot,
91
+ // // Current project's node_modules
92
+ // basePath,
93
+ // // Monorepo, look upwards in filetree n times
94
+ // ...traverseUp(nodeModulesDepth, { cwd: basePath })
95
+ // ]
96
+ // });
97
+ // // Don't add dependencies we've already scanned, also avoids circular dependencies and multiple modules importing from the same module
98
+ // if (!dependencies.has(pathToDependency)) {
99
+ // importsToScan.add(pathToDependency);
100
+ // dependencies.add(pathToDependency);
101
+ // }
102
+ // } catch {
103
+ // this._logger.logError(`Failed to resolve dependency "${i.n}".`);
104
+ // }
105
+ // }
106
+ // }
107
+ // }
108
+ // return Array.from(dependencies);
109
+ // }
110
+ // //#endregion
111
+ // }
112
+ //# sourceMappingURL=DependencyService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DependencyService.js","sourceRoot":"","sources":["../../src/Services/DependencyService.ts"],"names":[],"mappings":";AAAA,oBAAoB;AAEpB,sEAAsE;AACtE,iDAAiD;AACjD,uBAAuB;AACvB,0DAA0D;AAC1D,2BAA2B;AAC3B,8EAA8E;AAC9E,6EAA6E;AAE7E,eAAe;AAEf,kDAAkD;AAElD,MAAM;AACN,oCAAoC;AACpC,KAAK;AACL,aAAa;AACb,MAAM;AACN,iEAAiE;AAEjE,uBAAuB;AAEvB,wCAAwC;AAExC,mBAAmB;AAEnB,qBAAqB;AAErB,UAAU;AACV,qEAAqE;AACrE,SAAS;AACT,iBAAiB;AACjB,UAAU;AACV,2CAA2C;AAC3C,iCAAiC;AACjC,QAAQ;AAER,mBAAmB;AAEnB,2BAA2B;AAC3B,mBAAmB;AAEnB,wBAAwB;AAExB,UAAU;AACV,iDAAiD;AACjD,SAAS;AACT,qEAAqE;AACrE,iFAAiF;AACjF,6EAA6E;AAC7E,iBAAiB;AACjB,UAAU;AACV,oJAAoJ;AACpJ,wDAAwD;AACxD,uDAAuD;AAEvD,0EAA0E;AAC1E,sEAAsE;AAEtE,uCAAuC;AACvC,sBAAsB;AAEtB,0CAA0C;AAC1C,wEAAwE;AACxE,gDAAgD;AAEhD,yCAAyC;AACzC,+DAA+D;AAC/D,4DAA4D;AAC5D,gCAAgC;AAChC,oBAAoB;AAEpB,wBAAwB;AACxB,oFAAoF;AACpF,mCAAmC;AACnC,gEAAgE;AAChE,wCAAwC;AACxC,4EAA4E;AAC5E,iFAAiF;AACjF,4BAA4B;AAC5B,0BAA0B;AAE1B,2DAA2D;AAC3D,0DAA0D;AAC1D,4BAA4B;AAC5B,uFAAuF;AACvF,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AAEZ,uCAAuC;AACvC,iDAAiD;AACjD,6CAA6C;AAE7C,uEAAuE;AACvE,oDAAoD;AAEpD,6CAA6C;AAC7C,mEAAmE;AACnE,gEAAgE;AAChE,oCAAoC;AACpC,wBAAwB;AACxB,sEAAsE;AACtE,mIAAmI;AACnI,4BAA4B;AAC5B,wIAAwI;AACxI,yFAAyF;AACzF,uCAAuC;AACvC,yDAAyD;AACzD,+CAA+C;AAC/C,oEAAoE;AACpE,4CAA4C;AAC5C,gFAAgF;AAChF,qFAAqF;AACrF,gCAAgC;AAChC,8BAA8B;AAE9B,iKAAiK;AACjK,qEAAqE;AACrE,mEAAmE;AACnE,kEAAkE;AAClE,4BAA4B;AAC5B,gCAAgC;AAChC,2FAA2F;AAC3F,wBAAwB;AACxB,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AAEZ,2CAA2C;AAC3C,QAAQ;AAER,mBAAmB;AAEnB,IAAI"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Represents the `IDependencyService` interface.
3
+ *
4
+ * @public
5
+ */
6
+ export interface IDependencyService {
7
+ findDependencies(paths: Array<string>, options: {
8
+ nodeModulesDepth?: number;
9
+ basePath?: string;
10
+ }): Promise<Array<string>>;
11
+ }
12
+ //# sourceMappingURL=IDependencyService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IDependencyService.d.ts","sourceRoot":"","sources":["../../../src/Services/Interfaces/IDependencyService.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAM/B,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;CAI7H"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ //#region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=IDependencyService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IDependencyService.js","sourceRoot":"","sources":["../../../src/Services/Interfaces/IDependencyService.ts"],"names":[],"mappings":";AAAA,iBAAiB"}
@@ -0,0 +1,16 @@
1
+ import type { IPlugin } from '@breadstone-tools/cem-plugin';
2
+ import type ts from 'typescript';
3
+ export interface IManifestBuilderCreateResult {
4
+ schemaVersion: string;
5
+ readme: string;
6
+ modules: Array<any>;
7
+ }
8
+ /**
9
+ * Represents the `IManifestBuilder` interface.
10
+ *
11
+ * @public
12
+ */
13
+ export interface IManifestBuilder {
14
+ create(sources: Array<ts.SourceFile>, plugins?: Array<IPlugin>): IManifestBuilderCreateResult;
15
+ }
16
+ //# sourceMappingURL=IManifestBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IManifestBuilder.d.ts","sourceRoot":"","sources":["../../../src/Services/Interfaces/IManifestBuilder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAIjC,MAAM,WAAW,4BAA4B;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAI7B,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,4BAA4B,CAAC;CAIjG"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ //#region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=IManifestBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IManifestBuilder.js","sourceRoot":"","sources":["../../../src/Services/Interfaces/IManifestBuilder.ts"],"names":[],"mappings":";AAAA,iBAAiB"}
@@ -0,0 +1,16 @@
1
+ import type { IPlugin } from '@breadstone-tools/cem-plugin';
2
+ import type ts from 'typescript';
3
+ export interface IManifestEngineRunResult {
4
+ schemaVersion: string;
5
+ readme: string;
6
+ modules: Array<any>;
7
+ }
8
+ /**
9
+ * Represents the `IManifestEngine` interface.
10
+ *
11
+ * @public
12
+ */
13
+ export interface IManifestEngine {
14
+ run(sources: Array<ts.SourceFile>, plugins?: Array<IPlugin>): IManifestEngineRunResult;
15
+ }
16
+ //# sourceMappingURL=IManifestEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IManifestEngine.d.ts","sourceRoot":"","sources":["../../../src/Services/Interfaces/IManifestEngine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAIjC,MAAM,WAAW,wBAAwB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAI5B,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,wBAAwB,CAAC;CAI1F"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ //#region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=IManifestEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IManifestEngine.js","sourceRoot":"","sources":["../../../src/Services/Interfaces/IManifestEngine.ts"],"names":[],"mappings":";AAAA,iBAAiB"}
@@ -0,0 +1,47 @@
1
+ import type { IPlugin } from '@breadstone-tools/cem-plugin';
2
+ import type ts from 'typescript';
3
+ import type { Framework } from '../Types/Framework.js';
4
+ import type { IManifestBuilder, IManifestBuilderCreateResult } from './Interfaces/IManifestBuilder.js';
5
+ import type { IManifestEngine } from './Interfaces/IManifestEngine.js';
6
+ import type { ILogger } from '@breadstone-infrastructure/utilities';
7
+ /**
8
+ * @public
9
+ */
10
+ export interface IManifestBuilderConfig {
11
+ compiler: {
12
+ program: ts.Program;
13
+ typeChecker: ts.TypeChecker;
14
+ };
15
+ debug?: boolean;
16
+ quiet?: boolean;
17
+ verbose?: boolean;
18
+ logger: ILogger;
19
+ engine?: IManifestEngine;
20
+ framework?: Framework;
21
+ }
22
+ /**
23
+ * The `ManifestBuilder` class.
24
+ *
25
+ * @public
26
+ */
27
+ export declare class ManifestBuilder implements IManifestBuilder {
28
+ private readonly _logger;
29
+ private readonly _engine;
30
+ /**
31
+ * Constructs a new instance of the `ManifestBuilder` class.
32
+ *
33
+ * @public
34
+ */
35
+ constructor(config: IManifestBuilderConfig);
36
+ /**
37
+ * Creates a manifest.
38
+ *
39
+ * @param sources - The sources to include in the manifest.
40
+ * @param plugins - The plugins to use when creating the manifest.
41
+ * @returns The manifest.
42
+ *
43
+ * @public
44
+ */
45
+ create(sources: Array<ts.SourceFile>, plugins?: Array<IPlugin>): IManifestBuilderCreateResult;
46
+ }
47
+ //# sourceMappingURL=ManifestBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ManifestBuilder.d.ts","sourceRoot":"","sources":["../../src/Services/ManifestBuilder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AACvG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAIpE;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,QAAQ,EAAE;QACN,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;QACpB,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC;KAC/B,CAAC;IACF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,CAAC;CACzB;AAED;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;IAIpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAM1C;;;;OAIG;gBACgB,MAAM,EAAE,sBAAsB;IAgBjD;;;;;;;;OAQG;IACI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,4BAA4B;CAMvG"}