@lwc/metadata 2.19.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 (223) hide show
  1. package/LICENSE.txt +21 -0
  2. package/dist/__tests__/bundle-metadata.spec.d.ts +1 -0
  3. package/dist/bundle-metadata.d.ts +3 -0
  4. package/dist/bundle-metadata.js +119 -0
  5. package/dist/bundle-metadata.js.map +1 -0
  6. package/dist/dependency-analyzer/__tests__/komaci-script-docs.fixtures.spec.d.ts +1 -0
  7. package/dist/dependency-analyzer/__tests__/komaci-template-docs.fixtures.spec.d.ts +1 -0
  8. package/dist/dependency-analyzer/analyzeScriptFile.d.ts +4 -0
  9. package/dist/dependency-analyzer/analyzeScriptFile.js +465 -0
  10. package/dist/dependency-analyzer/analyzeScriptFile.js.map +1 -0
  11. package/dist/dependency-analyzer/analyzeTemplateFile.d.ts +3 -0
  12. package/dist/dependency-analyzer/analyzeTemplateFile.js +364 -0
  13. package/dist/dependency-analyzer/analyzeTemplateFile.js.map +1 -0
  14. package/dist/dependency-analyzer/index.d.ts +2 -0
  15. package/dist/errors/errors.d.ts +9 -0
  16. package/dist/errors/errors.js +119 -0
  17. package/dist/errors/errors.js.map +1 -0
  18. package/dist/index.d.ts +7 -0
  19. package/dist/index.js +20 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/schema/typescript-types/bundle-metadata-types.d.ts +14 -0
  22. package/dist/schema/typescript-types/common-metadata-types.d.ts +25 -0
  23. package/dist/schema/typescript-types/script-metadata-types.d.ts +241 -0
  24. package/dist/schema/typescript-types/script-metadata-types.js +18 -0
  25. package/dist/schema/typescript-types/script-metadata-types.js.map +1 -0
  26. package/dist/schema/typescript-types/style-metadata-types.d.ts +35 -0
  27. package/dist/schema/typescript-types/style-metadata-types.js +13 -0
  28. package/dist/schema/typescript-types/style-metadata-types.js.map +1 -0
  29. package/dist/schema/typescript-types/template-metadata-types.d.ts +11 -0
  30. package/dist/schema/typescript-types/template-metadata-types.js +13 -0
  31. package/dist/schema/typescript-types/template-metadata-types.js.map +1 -0
  32. package/dist/script-metadata/__tests__/class.members.spec.d.ts +1 -0
  33. package/dist/script-metadata/__tests__/classes.spec.d.ts +1 -0
  34. package/dist/script-metadata/__tests__/dynamic-import-hints.spec.d.ts +1 -0
  35. package/dist/script-metadata/__tests__/dynamic-imports.spec.d.ts +1 -0
  36. package/dist/script-metadata/__tests__/exports-default.spec.d.ts +1 -0
  37. package/dist/script-metadata/__tests__/exports.spec.d.ts +1 -0
  38. package/dist/script-metadata/__tests__/imports.spec.d.ts +1 -0
  39. package/dist/script-metadata/__tests__/module-references.spec.d.ts +1 -0
  40. package/dist/script-metadata/__tests__/reexports.spec.d.ts +1 -0
  41. package/dist/script-metadata/__tests__/script-metadata.spec.d.ts +1 -0
  42. package/dist/script-metadata/__tests__/test-util.d.ts +3 -0
  43. package/dist/script-metadata/decorators/__tests__/decorators.spec.d.ts +1 -0
  44. package/dist/script-metadata/decorators/index.d.ts +4 -0
  45. package/dist/script-metadata/decorators/index.js +184 -0
  46. package/dist/script-metadata/decorators/index.js.map +1 -0
  47. package/dist/script-metadata/events/__tests__/event-construction.spec.d.ts +1 -0
  48. package/dist/script-metadata/events/__tests__/event-dispatch.spec.d.ts +1 -0
  49. package/dist/script-metadata/events/__tests__/event-listener.spec.d.ts +1 -0
  50. package/dist/script-metadata/events/event-construction.d.ts +7 -0
  51. package/dist/script-metadata/events/event-construction.js +55 -0
  52. package/dist/script-metadata/events/event-construction.js.map +1 -0
  53. package/dist/script-metadata/events/event-dispatch.d.ts +5 -0
  54. package/dist/script-metadata/events/event-dispatch.js +46 -0
  55. package/dist/script-metadata/events/event-dispatch.js.map +1 -0
  56. package/dist/script-metadata/events/event-listener.d.ts +4 -0
  57. package/dist/script-metadata/events/event-listener.js +74 -0
  58. package/dist/script-metadata/events/event-listener.js.map +1 -0
  59. package/dist/script-metadata/events/util.d.ts +14 -0
  60. package/dist/script-metadata/events/util.js +63 -0
  61. package/dist/script-metadata/events/util.js.map +1 -0
  62. package/dist/script-metadata/index.d.ts +8 -0
  63. package/dist/script-metadata/index.js +203 -0
  64. package/dist/script-metadata/index.js.map +1 -0
  65. package/dist/script-metadata/module-references/__tests__/generic-module.spec.d.ts +1 -0
  66. package/dist/script-metadata/module-references/__tests__/local-module.spec.d.ts +1 -0
  67. package/dist/script-metadata/module-references/__tests__/salesforce-references/access-check.spec.d.ts +1 -0
  68. package/dist/script-metadata/module-references/__tests__/salesforce-references/apex-continuation.spec.d.ts +1 -0
  69. package/dist/script-metadata/module-references/__tests__/salesforce-references/apex.spec.d.ts +1 -0
  70. package/dist/script-metadata/module-references/__tests__/salesforce-references/base.spec.d.ts +1 -0
  71. package/dist/script-metadata/module-references/__tests__/salesforce-references/client.spec.d.ts +1 -0
  72. package/dist/script-metadata/module-references/__tests__/salesforce-references/commerce.spec.d.ts +1 -0
  73. package/dist/script-metadata/module-references/__tests__/salesforce-references/community.spec.d.ts +1 -0
  74. package/dist/script-metadata/module-references/__tests__/salesforce-references/content-asset-url.spec.d.ts +1 -0
  75. package/dist/script-metadata/module-references/__tests__/salesforce-references/custom-permission.spec.d.ts +1 -0
  76. package/dist/script-metadata/module-references/__tests__/salesforce-references/gates.spec.d.ts +1 -0
  77. package/dist/script-metadata/module-references/__tests__/salesforce-references/i18n.spec.d.ts +1 -0
  78. package/dist/script-metadata/module-references/__tests__/salesforce-references/internal.spec.d.ts +1 -0
  79. package/dist/script-metadata/module-references/__tests__/salesforce-references/komaci.spec.d.ts +1 -0
  80. package/dist/script-metadata/module-references/__tests__/salesforce-references/label.spec.d.ts +1 -0
  81. package/dist/script-metadata/module-references/__tests__/salesforce-references/loader.spec.d.ts +1 -0
  82. package/dist/script-metadata/module-references/__tests__/salesforce-references/message-channel.spec.d.ts +1 -0
  83. package/dist/script-metadata/module-references/__tests__/salesforce-references/metric.spec.d.ts +1 -0
  84. package/dist/script-metadata/module-references/__tests__/salesforce-references/resource-url.spec.d.ts +1 -0
  85. package/dist/script-metadata/module-references/__tests__/salesforce-references/schema.spec.d.ts +1 -0
  86. package/dist/script-metadata/module-references/__tests__/salesforce-references/site.spec.d.ts +1 -0
  87. package/dist/script-metadata/module-references/__tests__/salesforce-references/slds.spec.d.ts +1 -0
  88. package/dist/script-metadata/module-references/__tests__/salesforce-references/user-permission.spec.d.ts +1 -0
  89. package/dist/script-metadata/module-references/__tests__/salesforce-references/user.spec.d.ts +1 -0
  90. package/dist/script-metadata/module-references/collectors/__tests__/collection-api.spec.d.ts +1 -0
  91. package/dist/script-metadata/module-references/collectors/generic-module.d.ts +3 -0
  92. package/dist/script-metadata/module-references/collectors/generic-module.js +92 -0
  93. package/dist/script-metadata/module-references/collectors/generic-module.js.map +1 -0
  94. package/dist/script-metadata/module-references/collectors/local-module.d.ts +3 -0
  95. package/dist/script-metadata/module-references/collectors/local-module.js +16 -0
  96. package/dist/script-metadata/module-references/collectors/local-module.js.map +1 -0
  97. package/dist/script-metadata/module-references/collectors/main.d.ts +8 -0
  98. package/dist/script-metadata/module-references/collectors/main.js +37 -0
  99. package/dist/script-metadata/module-references/collectors/main.js.map +1 -0
  100. package/dist/script-metadata/module-references/collectors/scoped/access-check.d.ts +3 -0
  101. package/dist/script-metadata/module-references/collectors/scoped/access-check.js +12 -0
  102. package/dist/script-metadata/module-references/collectors/scoped/access-check.js.map +1 -0
  103. package/dist/script-metadata/module-references/collectors/scoped/apex.d.ts +3 -0
  104. package/dist/script-metadata/module-references/collectors/scoped/apex.js +88 -0
  105. package/dist/script-metadata/module-references/collectors/scoped/apex.js.map +1 -0
  106. package/dist/script-metadata/module-references/collectors/scoped/client.d.ts +3 -0
  107. package/dist/script-metadata/module-references/collectors/scoped/client.js +28 -0
  108. package/dist/script-metadata/module-references/collectors/scoped/client.js.map +1 -0
  109. package/dist/script-metadata/module-references/collectors/scoped/commerce.d.ts +3 -0
  110. package/dist/script-metadata/module-references/collectors/scoped/commerce.js +26 -0
  111. package/dist/script-metadata/module-references/collectors/scoped/commerce.js.map +1 -0
  112. package/dist/script-metadata/module-references/collectors/scoped/community.d.ts +3 -0
  113. package/dist/script-metadata/module-references/collectors/scoped/community.js +29 -0
  114. package/dist/script-metadata/module-references/collectors/scoped/community.js.map +1 -0
  115. package/dist/script-metadata/module-references/collectors/scoped/content-asset-url.d.ts +3 -0
  116. package/dist/script-metadata/module-references/collectors/scoped/content-asset-url.js +12 -0
  117. package/dist/script-metadata/module-references/collectors/scoped/content-asset-url.js.map +1 -0
  118. package/dist/script-metadata/module-references/collectors/scoped/custom-permissions.d.ts +3 -0
  119. package/dist/script-metadata/module-references/collectors/scoped/custom-permissions.js +12 -0
  120. package/dist/script-metadata/module-references/collectors/scoped/custom-permissions.js.map +1 -0
  121. package/dist/script-metadata/module-references/collectors/scoped/design-system.d.ts +3 -0
  122. package/dist/script-metadata/module-references/collectors/scoped/design-system.js +21 -0
  123. package/dist/script-metadata/module-references/collectors/scoped/design-system.js.map +1 -0
  124. package/dist/script-metadata/module-references/collectors/scoped/gate.d.ts +3 -0
  125. package/dist/script-metadata/module-references/collectors/scoped/gate.js +12 -0
  126. package/dist/script-metadata/module-references/collectors/scoped/gate.js.map +1 -0
  127. package/dist/script-metadata/module-references/collectors/scoped/generic-prefix-salesforce-collector.d.ts +9 -0
  128. package/dist/script-metadata/module-references/collectors/scoped/generic-prefix-salesforce-collector.js +22 -0
  129. package/dist/script-metadata/module-references/collectors/scoped/generic-prefix-salesforce-collector.js.map +1 -0
  130. package/dist/script-metadata/module-references/collectors/scoped/i18n.d.ts +3 -0
  131. package/dist/script-metadata/module-references/collectors/scoped/i18n.js +12 -0
  132. package/dist/script-metadata/module-references/collectors/scoped/i18n.js.map +1 -0
  133. package/dist/script-metadata/module-references/collectors/scoped/internal.d.ts +3 -0
  134. package/dist/script-metadata/module-references/collectors/scoped/internal.js +35 -0
  135. package/dist/script-metadata/module-references/collectors/scoped/internal.js.map +1 -0
  136. package/dist/script-metadata/module-references/collectors/scoped/komaci.d.ts +3 -0
  137. package/dist/script-metadata/module-references/collectors/scoped/komaci.js +67 -0
  138. package/dist/script-metadata/module-references/collectors/scoped/komaci.js.map +1 -0
  139. package/dist/script-metadata/module-references/collectors/scoped/label.d.ts +3 -0
  140. package/dist/script-metadata/module-references/collectors/scoped/label.js +12 -0
  141. package/dist/script-metadata/module-references/collectors/scoped/label.js.map +1 -0
  142. package/dist/script-metadata/module-references/collectors/scoped/message-channel.d.ts +3 -0
  143. package/dist/script-metadata/module-references/collectors/scoped/message-channel.js +12 -0
  144. package/dist/script-metadata/module-references/collectors/scoped/message-channel.js.map +1 -0
  145. package/dist/script-metadata/module-references/collectors/scoped/metric.d.ts +3 -0
  146. package/dist/script-metadata/module-references/collectors/scoped/metric.js +12 -0
  147. package/dist/script-metadata/module-references/collectors/scoped/metric.js.map +1 -0
  148. package/dist/script-metadata/module-references/collectors/scoped/resource-url.d.ts +3 -0
  149. package/dist/script-metadata/module-references/collectors/scoped/resource-url.js +12 -0
  150. package/dist/script-metadata/module-references/collectors/scoped/resource-url.js.map +1 -0
  151. package/dist/script-metadata/module-references/collectors/scoped/schema.d.ts +3 -0
  152. package/dist/script-metadata/module-references/collectors/scoped/schema.js +12 -0
  153. package/dist/script-metadata/module-references/collectors/scoped/schema.js.map +1 -0
  154. package/dist/script-metadata/module-references/collectors/scoped/site.d.ts +3 -0
  155. package/dist/script-metadata/module-references/collectors/scoped/site.js +28 -0
  156. package/dist/script-metadata/module-references/collectors/scoped/site.js.map +1 -0
  157. package/dist/script-metadata/module-references/collectors/scoped/user-permissions.d.ts +3 -0
  158. package/dist/script-metadata/module-references/collectors/scoped/user-permissions.js +12 -0
  159. package/dist/script-metadata/module-references/collectors/scoped/user-permissions.js.map +1 -0
  160. package/dist/script-metadata/module-references/collectors/scoped/user.d.ts +3 -0
  161. package/dist/script-metadata/module-references/collectors/scoped/user.js +28 -0
  162. package/dist/script-metadata/module-references/collectors/scoped/user.js.map +1 -0
  163. package/dist/script-metadata/module-references/collectors/utils.d.ts +16 -0
  164. package/dist/script-metadata/module-references/collectors/utils.js +166 -0
  165. package/dist/script-metadata/module-references/collectors/utils.js.map +1 -0
  166. package/dist/script-metadata/module-references/reference.d.ts +4 -0
  167. package/dist/script-metadata/module-references/reference.js +78 -0
  168. package/dist/script-metadata/module-references/reference.js.map +1 -0
  169. package/dist/script-metadata/resolver.d.ts +17 -0
  170. package/dist/script-metadata/resolver.js +306 -0
  171. package/dist/script-metadata/resolver.js.map +1 -0
  172. package/dist/script-metadata/utils.d.ts +34 -0
  173. package/dist/script-metadata/utils.js +118 -0
  174. package/dist/script-metadata/utils.js.map +1 -0
  175. package/dist/script-metadata/visitors/call-expression-visitor.d.ts +5 -0
  176. package/dist/script-metadata/visitors/call-expression-visitor.js +124 -0
  177. package/dist/script-metadata/visitors/call-expression-visitor.js.map +1 -0
  178. package/dist/script-metadata/visitors/class-visitor.d.ts +5 -0
  179. package/dist/script-metadata/visitors/class-visitor.js +195 -0
  180. package/dist/script-metadata/visitors/class-visitor.js.map +1 -0
  181. package/dist/script-metadata/visitors/dynamic-imports-visitor.d.ts +9 -0
  182. package/dist/script-metadata/visitors/dynamic-imports-visitor.js +68 -0
  183. package/dist/script-metadata/visitors/dynamic-imports-visitor.js.map +1 -0
  184. package/dist/script-metadata/visitors/export-all-visitor.d.ts +10 -0
  185. package/dist/script-metadata/visitors/export-all-visitor.js +65 -0
  186. package/dist/script-metadata/visitors/export-all-visitor.js.map +1 -0
  187. package/dist/script-metadata/visitors/export-default-visitor.d.ts +5 -0
  188. package/dist/script-metadata/visitors/export-default-visitor.js +67 -0
  189. package/dist/script-metadata/visitors/export-default-visitor.js.map +1 -0
  190. package/dist/script-metadata/visitors/export-named-visitor.d.ts +5 -0
  191. package/dist/script-metadata/visitors/export-named-visitor.js +125 -0
  192. package/dist/script-metadata/visitors/export-named-visitor.js.map +1 -0
  193. package/dist/script-metadata/visitors/module-imports-visitor.d.ts +5 -0
  194. package/dist/script-metadata/visitors/module-imports-visitor.js +63 -0
  195. package/dist/script-metadata/visitors/module-imports-visitor.js.map +1 -0
  196. package/dist/script-metadata/visitors/new-expression-visitor.d.ts +5 -0
  197. package/dist/script-metadata/visitors/new-expression-visitor.js +36 -0
  198. package/dist/script-metadata/visitors/new-expression-visitor.js.map +1 -0
  199. package/dist/shared/config.d.ts +15 -0
  200. package/dist/shared/utils.d.ts +66 -0
  201. package/dist/shared/utils.js +129 -0
  202. package/dist/shared/utils.js.map +1 -0
  203. package/dist/style-metadata/__tests__/component-references.spec.d.ts +1 -0
  204. package/dist/style-metadata/__tests__/custom-properties.spec.d.ts +1 -0
  205. package/dist/style-metadata/__tests__/imports.spec.d.ts +1 -0
  206. package/dist/style-metadata/__tests__/index.spec.d.ts +1 -0
  207. package/dist/style-metadata/component-references.d.ts +4 -0
  208. package/dist/style-metadata/component-references.js +82 -0
  209. package/dist/style-metadata/component-references.js.map +1 -0
  210. package/dist/style-metadata/custom-properties.d.ts +3 -0
  211. package/dist/style-metadata/custom-properties.js +70 -0
  212. package/dist/style-metadata/custom-properties.js.map +1 -0
  213. package/dist/style-metadata/imports.d.ts +4 -0
  214. package/dist/style-metadata/imports.js +120 -0
  215. package/dist/style-metadata/imports.js.map +1 -0
  216. package/dist/style-metadata/index.d.ts +6 -0
  217. package/dist/style-metadata/index.js +70 -0
  218. package/dist/style-metadata/index.js.map +1 -0
  219. package/dist/template-metadata/__tests__/component-reference.spec.d.ts +1 -0
  220. package/dist/template-metadata/index.d.ts +6 -0
  221. package/dist/template-metadata/index.js +136 -0
  222. package/dist/template-metadata/index.js.map +1 -0
  223. package/package.json +35 -0
@@ -0,0 +1,63 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var reference = require('../module-references/reference.js');
6
+ var utils$1 = require('../../shared/utils.js');
7
+ var utils = require('../utils.js');
8
+ var resolver = require('../resolver.js');
9
+
10
+ // Copyright (c) 2022, Salesforce, Inc.,
11
+ function gatherImportMetadata(node, result, refId) {
12
+ const { source: { value: moduleSpecifier }, specifiers, } = node;
13
+ const importMetadata = {
14
+ moduleSpecifier,
15
+ location: utils.generateSourceLocation(node),
16
+ refId,
17
+ };
18
+ const namedImports = [];
19
+ specifiers.forEach((specifier) => {
20
+ const { local } = specifier;
21
+ const location = utils.generateSourceLocation(specifier);
22
+ switch (specifier.type) {
23
+ case 'ImportDefaultSpecifier': {
24
+ importMetadata.defaultBinding = {
25
+ name: local.name,
26
+ location,
27
+ };
28
+ break;
29
+ }
30
+ case 'ImportNamespaceSpecifier': {
31
+ importMetadata.namespaceImport = {
32
+ aliasName: local.name,
33
+ location,
34
+ };
35
+ break;
36
+ }
37
+ case 'ImportSpecifier': {
38
+ const { imported } = specifier;
39
+ const importedName = resolver.resolveImportSpecifierImported(imported);
40
+ namedImports.push({
41
+ name: importedName,
42
+ aliasName: local.name === importedName ? undefined : local.name,
43
+ location,
44
+ });
45
+ break;
46
+ }
47
+ }
48
+ });
49
+ if (!utils$1.isEmpty(namedImports)) {
50
+ importMetadata.namedImports = namedImports;
51
+ }
52
+ result.imports.push(importMetadata);
53
+ }
54
+ function moduleImportVisitor(state, result) {
55
+ return function ImportVisitorFunction(path) {
56
+ const { node } = path;
57
+ const moduleReference = reference.gatherModuleReference(node, state, result);
58
+ gatherImportMetadata(node, result, moduleReference.id);
59
+ };
60
+ }
61
+
62
+ exports["default"] = moduleImportVisitor;
63
+ //# sourceMappingURL=module-imports-visitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-imports-visitor.js","sources":["../../../src/script-metadata/visitors/module-imports-visitor.ts"],"sourcesContent":[null],"names":["generateSourceLocation","resolveImportSpecifierImported","isEmpty","gatherModuleReference"],"mappings":";;;;;;;;;AAAA;AAgBA,SAAS,oBAAoB,CAAC,IAAyB,EAAE,MAAkB,EAAE,KAAa,EAAA;AACtF,IAAA,MAAM,EACF,MAAM,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,EAClC,UAAU,GACb,GAAG,IAAI,CAAC;AACT,IAAA,MAAM,cAAc,GAAW;QAC3B,eAAe;AACf,QAAA,QAAQ,EAAEA,4BAAsB,CAAC,IAAI,CAAC;QACtC,KAAK;KACR,CAAC;IAEF,MAAM,YAAY,GAAkB,EAAE,CAAC;AAEvC,IAAA,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;AAC7B,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;AAC5B,QAAA,MAAM,QAAQ,GAAGA,4BAAsB,CAAC,SAAS,CAAC,CAAC;QACnD,QAAQ,SAAS,CAAC,IAAI;YAClB,KAAK,wBAAwB,EAAE;gBAC3B,cAAc,CAAC,cAAc,GAAG;oBAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,QAAQ;iBACX,CAAC;gBACF,MAAM;AACT,aAAA;YACD,KAAK,0BAA0B,EAAE;gBAC7B,cAAc,CAAC,eAAe,GAAG;oBAC7B,SAAS,EAAE,KAAK,CAAC,IAAI;oBACrB,QAAQ;iBACX,CAAC;gBACF,MAAM;AACT,aAAA;YACD,KAAK,iBAAiB,EAAE;AACpB,gBAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;AAC/B,gBAAA,MAAM,YAAY,GAAGC,uCAA8B,CAAC,QAAQ,CAAC,CAAC;gBAC9D,YAAY,CAAC,IAAI,CAAC;AACd,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,SAAS,EAAE,KAAK,CAAC,IAAI,KAAK,YAAY,GAAG,SAAS,GAAG,KAAK,CAAC,IAAI;oBAC/D,QAAQ;AACX,iBAAA,CAAC,CAAC;gBACH,MAAM;AACT,aAAA;AACJ,SAAA;AACL,KAAC,CAAC,CAAC;AACH,IAAA,IAAI,CAACC,eAAO,CAAC,YAAY,CAAC,EAAE;AACxB,QAAA,cAAc,CAAC,YAAY,GAAG,YAAY,CAAC;AAC9C,KAAA;AAED,IAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACxC,CAAC;AAEa,SAAU,mBAAmB,CAAC,KAAkB,EAAE,MAAkB,EAAA;IAC9E,OAAO,SAAS,qBAAqB,CAAC,IAAmC,EAAA;AACrE,QAAA,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QACtB,MAAM,eAAe,GAAGC,+BAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACnE,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC;AAC3D,KAAC,CAAC;AACN;;;;"}
@@ -0,0 +1,5 @@
1
+ import * as t from '@babel/types';
2
+ import { NodePath } from '@babel/traverse';
3
+ import { ScriptFile } from '../../schema/typescript-types/script-metadata-types';
4
+ import { ScriptState } from '../utils';
5
+ export default function visitorFunction(state: ScriptState, result: ScriptFile): (path: NodePath<t.NewExpression>) => void;
@@ -0,0 +1,36 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var eventConstruction = require('../events/event-construction.js');
6
+ var utils = require('../utils.js');
7
+
8
+ // Copyright (c) 2022, Salesforce, Inc.,
9
+ function visitorFunction(state, result) {
10
+ return function NewExpressionVisitorFunction(path) {
11
+ const { callee } = path.node;
12
+ if (callee.type === 'Identifier') {
13
+ const { name } = callee;
14
+ // process expressions like new Event()
15
+ if (eventConstruction.VALID_EVENT_INTERFACES.has(name) && utils.isGlobalIdentifier(callee, path.scope)) {
16
+ eventConstruction.gatherEventMetadata(path, name, result, state);
17
+ }
18
+ }
19
+ if (callee.type === 'MemberExpression') {
20
+ const { object, property } = callee;
21
+ // process expressions like new window.Event()
22
+ if (property.type === 'Identifier' &&
23
+ eventConstruction.VALID_EVENT_INTERFACES.has(property.name) &&
24
+ object.type === 'Identifier' &&
25
+ (object.name === 'window' ||
26
+ object.name === 'globalThis' ||
27
+ object.name === 'self') &&
28
+ utils.isGlobalIdentifier(object, path.scope)) {
29
+ eventConstruction.gatherEventMetadata(path, property.name, result, state);
30
+ }
31
+ }
32
+ };
33
+ }
34
+
35
+ exports["default"] = visitorFunction;
36
+ //# sourceMappingURL=new-expression-visitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-expression-visitor.js","sources":["../../../src/script-metadata/visitors/new-expression-visitor.ts"],"sourcesContent":[null],"names":["VALID_EVENT_INTERFACES","isGlobalIdentifier","gatherEventMetadata"],"mappings":";;;;;;;AAAA;AAec,SAAU,eAAe,CAAC,KAAkB,EAAE,MAAkB,EAAA;IAC1E,OAAO,SAAS,4BAA4B,CAAC,IAA+B,EAAA;AACxE,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;AAC7B,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE;AAC9B,YAAA,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;;AAExB,YAAA,IAAIA,wCAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAIC,wBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC5EC,qCAAmB,CAAC,IAAI,EAAE,IAA0B,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AACxE,aAAA;AACJ,SAAA;AACD,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,EAAE;AACpC,YAAA,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;;AAEpC,YAAA,IACI,QAAQ,CAAC,IAAI,KAAK,YAAY;AAC9B,gBAAAF,wCAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACzC,MAAM,CAAC,IAAI,KAAK,YAAY;AAC5B,iBAAC,MAAM,CAAC,IAAI,KAAK,QAAQ;oBACrB,MAAM,CAAC,IAAI,KAAK,YAAY;AAC5B,oBAAA,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC;AAC3B,gBAAAC,wBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EACxC;gBACEC,qCAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAA0B,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AACjF,aAAA;AACJ,SAAA;AACL,KAAC,CAAC;AACN;;;;"}
@@ -0,0 +1,15 @@
1
+ export declare type NamespaceMapping = {
2
+ [name: string]: string;
3
+ };
4
+ export declare type BundleType = 'internal' | 'platform';
5
+ export interface BundleConfig {
6
+ type: BundleType;
7
+ name: string;
8
+ namespace: string;
9
+ namespaceMapping: NamespaceMapping;
10
+ files: {
11
+ fileName: string;
12
+ source: string;
13
+ }[];
14
+ enableKomaci?: boolean;
15
+ }
@@ -0,0 +1,66 @@
1
+ import { ID } from '../schema/typescript-types/script-metadata-types';
2
+ import { BundleType, NamespaceMapping } from './config';
3
+ /**
4
+ * Returns true if the value is null
5
+ * @param {any} o
6
+ */
7
+ export declare function isNull(o: any): o is null;
8
+ /**
9
+ * Returns true if the value is undefined
10
+ * @param {any} o
11
+ */
12
+ export declare function isUndefined(o: any): o is undefined;
13
+ /**
14
+ * Returns true if value is true
15
+ * @param {any} o
16
+ */
17
+ export declare function isTrue(o: any): o is true;
18
+ /**
19
+ * Returns false if value is false
20
+ * @param {any} o
21
+ */
22
+ export declare function isFalse(o: any): o is false;
23
+ /**
24
+ * Returns true if
25
+ * the value is an array and length is zero or
26
+ * the value is a string and the trimmed value is an empty string
27
+ * @param {string | Array<any>} o
28
+ */
29
+ export declare function isEmpty(o: string | Array<any>): boolean;
30
+ /**
31
+ * Returns true if
32
+ * the value is truthy and has no enumerable keys
33
+ * @param {object} o
34
+ */
35
+ export declare function isEmptyObject(o: object): boolean;
36
+ /**
37
+ * Generate a unique reference id for a reference object
38
+ * @param refType Reference type
39
+ * @param idx unique numerical identifier to be appended to the end of the generated id
40
+ * @param name name of the reference
41
+ */
42
+ export declare function generateReferenceId(refType: string, idx: number, name?: string): ID;
43
+ export declare class State {
44
+ private idx;
45
+ fileName: string;
46
+ namespaceMapping: NamespaceMapping;
47
+ bundleType: BundleType;
48
+ constructor({ fileName, namespaceMapping, bundleType, }: {
49
+ fileName: string;
50
+ namespaceMapping: NamespaceMapping;
51
+ bundleType: BundleType;
52
+ });
53
+ generateReferenceId(refType: string, name?: string): ID;
54
+ }
55
+ export declare function tagNameToComponentName(name: string): string;
56
+ export declare function attributeNameToPropertyName(name: string): string;
57
+ declare const assign: {
58
+ <T extends {}, U>(target: T, source: U): T & U;
59
+ <T_1 extends {}, U_1, V>(target: T_1, source1: U_1, source2: V): T_1 & U_1 & V;
60
+ <T_2 extends {}, U_2, V_1, W>(target: T_2, source1: U_2, source2: V_1, source3: W): T_2 & U_2 & V_1 & W;
61
+ (target: object, ...sources: any[]): any;
62
+ }, keys: {
63
+ (o: object): string[];
64
+ (o: {}): string[];
65
+ };
66
+ export { assign, keys };
@@ -0,0 +1,129 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ // Copyright (c) 2022, Salesforce, Inc.,
6
+ // All rights reserved.
7
+ // For full license text, see the LICENSE.txt file
8
+ /**
9
+ * Returns true if the value is null
10
+ * @param {any} o
11
+ */
12
+ function isNull(o) {
13
+ return o === null;
14
+ }
15
+ /**
16
+ * Returns true if the value is undefined
17
+ * @param {any} o
18
+ */
19
+ function isUndefined(o) {
20
+ return o === undefined;
21
+ }
22
+ /**
23
+ * Returns true if value is true
24
+ * @param {any} o
25
+ */
26
+ function isTrue(o) {
27
+ return o === true;
28
+ }
29
+ /**
30
+ * Returns true if
31
+ * the value is an array and length is zero or
32
+ * the value is a string and the trimmed value is an empty string
33
+ * @param {string | Array<any>} o
34
+ */
35
+ function isEmpty(o) {
36
+ if (Array.isArray(o) && o.length === 0) {
37
+ return true;
38
+ }
39
+ else if (typeof o === 'string' && o.trim().length === 0) {
40
+ return true;
41
+ }
42
+ return false;
43
+ }
44
+ /**
45
+ * Returns true if
46
+ * the value is truthy and has no enumerable keys
47
+ * @param {object} o
48
+ */
49
+ function isEmptyObject(o) {
50
+ return o && typeof o === 'object' && Object.keys(o).length === 0;
51
+ }
52
+ /**
53
+ * Generate a unique reference id for a reference object
54
+ * @param refType Reference type
55
+ * @param idx unique numerical identifier to be appended to the end of the generated id
56
+ * @param name name of the reference
57
+ */
58
+ function generateReferenceId(refType, idx, name) {
59
+ return `${refType}#${name}#${idx}`;
60
+ }
61
+ class State {
62
+ constructor({ fileName, namespaceMapping, bundleType, }) {
63
+ this.idx = 0;
64
+ this.fileName = fileName;
65
+ this.namespaceMapping = namespaceMapping;
66
+ this.bundleType = bundleType;
67
+ }
68
+ generateReferenceId(refType, name) {
69
+ return `${refType}#${name}#${this.idx++}`;
70
+ }
71
+ }
72
+ // Converts a tag name (e.g. lightning-input-field) into a namespaced
73
+ // qualified component name (e.g. lightning/inputField).
74
+ function tagNameToComponentName(name) {
75
+ const newName = [];
76
+ let nsFound = false;
77
+ let upper = false;
78
+ for (const currChar of name) {
79
+ if (currChar === '-') {
80
+ if (!nsFound) {
81
+ nsFound = true;
82
+ newName.push('/');
83
+ }
84
+ else {
85
+ upper = true;
86
+ }
87
+ }
88
+ else {
89
+ // Converts kebab case to camel case.
90
+ newName.push(upper ? currChar.toUpperCase() : currChar);
91
+ upper = false;
92
+ }
93
+ }
94
+ return newName.join('');
95
+ }
96
+ // Converts an element's attribute (e.g. record-id) into a class
97
+ // property (e.g. recordId).
98
+ //
99
+ // TODO: export method toPropertyName in template-compiler's
100
+ // shared/utils.ts and utilize that instead.
101
+ function attributeNameToPropertyName(name) {
102
+ const newName = [];
103
+ let upper = false;
104
+ for (const currChar of name) {
105
+ if (currChar === '-') {
106
+ upper = true;
107
+ }
108
+ else {
109
+ // Converts kebab case to camel case.
110
+ newName.push(upper ? currChar.toUpperCase() : currChar);
111
+ upper = false;
112
+ }
113
+ }
114
+ return newName.join('');
115
+ }
116
+ const { assign, keys } = Object;
117
+
118
+ exports.State = State;
119
+ exports.assign = assign;
120
+ exports.attributeNameToPropertyName = attributeNameToPropertyName;
121
+ exports.generateReferenceId = generateReferenceId;
122
+ exports.isEmpty = isEmpty;
123
+ exports.isEmptyObject = isEmptyObject;
124
+ exports.isNull = isNull;
125
+ exports.isTrue = isTrue;
126
+ exports.isUndefined = isUndefined;
127
+ exports.keys = keys;
128
+ exports.tagNameToComponentName = tagNameToComponentName;
129
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../src/shared/utils.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import { Root } from 'postcss';
2
+ import { CSSFile } from '../schema/typescript-types/style-metadata-types';
3
+ import { NamespaceMapping } from '../shared/config';
4
+ export declare function collectComponentReferences(result: CSSFile, root: Root, namespaceMapping: NamespaceMapping): void;
@@ -0,0 +1,82 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var sfdcCompilerUtils = require('@lwc/sfdc-compiler-utils');
6
+ var postcssSelector = require('postcss-selector-parser');
7
+ var utils = require('../shared/utils.js');
8
+
9
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
+
11
+ var postcssSelector__default = /*#__PURE__*/_interopDefaultLegacy(postcssSelector);
12
+
13
+ // Copyright (c) 2022, Salesforce, Inc.,
14
+ function isCustomElementSelector(tag) {
15
+ return tag.includes('-');
16
+ }
17
+ function getReferenceLocation({ input }, start, length) {
18
+ const startLoc = input.fromOffset(start);
19
+ const endLoc = input.fromOffset(start + length);
20
+ return {
21
+ start,
22
+ end: start + length,
23
+ startLine: startLoc.line,
24
+ startColumn: startLoc.col,
25
+ endLine: endLoc.line,
26
+ endColumn: endLoc.col,
27
+ };
28
+ }
29
+ function getSelectorReferences({ selector, source }, offset, namespaceMapping) {
30
+ const references = [];
31
+ const processor = postcssSelector__default["default"]();
32
+ const root = processor.astSync(selector, { lossless: true });
33
+ root.walkTags((node) => {
34
+ // [W-7479930] Workaround issue where An+B CSS micro-syntax is incorrectly parsed by
35
+ // postcss-selector-parser: https://github.com/postcss/postcss-selector-parser/issues/14.
36
+ // Currently `3n-1` inside `:nth-last-of-type(3n-1)` is wrongly treated as a tag selector.
37
+ if (postcssSelector__default["default"].isSelector(node.parent) &&
38
+ postcssSelector__default["default"].isPseudo(node.parent.parent) &&
39
+ node.parent.parent.value.startsWith(':nth')) {
40
+ return;
41
+ }
42
+ const tagName = node.value;
43
+ if (!isCustomElementSelector(tagName)) {
44
+ return;
45
+ }
46
+ const moduleName = utils.tagNameToComponentName(tagName);
47
+ const ref = {
48
+ name: utils.tagNameToComponentName(tagName),
49
+ tagName,
50
+ type: 'external',
51
+ locations: [getReferenceLocation(source, offset + node.sourceIndex, tagName.length)],
52
+ };
53
+ const namespacedName = sfdcCompilerUtils.getNamespacedIdForResource(moduleName, namespaceMapping);
54
+ if (!utils.isUndefined(namespacedName)) {
55
+ ref.namespacedName = namespacedName;
56
+ }
57
+ references.push(ref);
58
+ });
59
+ return references;
60
+ }
61
+ function collectComponentReferences(result, root, namespaceMapping) {
62
+ const references = new Map();
63
+ root.walkRules((rule) => {
64
+ const selectorOffset = rule.source.start.offset;
65
+ const ruleReferences = getSelectorReferences(rule, selectorOffset, namespaceMapping);
66
+ for (const referenceInRule of ruleReferences) {
67
+ const { tagName } = referenceInRule;
68
+ let reference = references.get(tagName);
69
+ if (utils.isUndefined(reference)) {
70
+ reference = referenceInRule;
71
+ references.set(tagName, reference);
72
+ }
73
+ else {
74
+ reference.locations.push(...referenceInRule.locations);
75
+ }
76
+ }
77
+ });
78
+ result.componentReferences.push(...references.values());
79
+ }
80
+
81
+ exports.collectComponentReferences = collectComponentReferences;
82
+ //# sourceMappingURL=component-references.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-references.js","sources":["../../src/style-metadata/component-references.ts"],"sourcesContent":[null],"names":["postcssSelector","tagNameToComponentName","getNamespacedIdForResource","isUndefined"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Root } from 'postcss';
2
+ import { CSSFile } from '../schema/typescript-types/style-metadata-types';
3
+ export declare function collectCustomProperties(result: CSSFile, root: Root): void;
@@ -0,0 +1,70 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var postcssValueParser = require('postcss-value-parser');
6
+ var utils = require('../shared/utils.js');
7
+
8
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
+
10
+ var postcssValueParser__default = /*#__PURE__*/_interopDefaultLegacy(postcssValueParser);
11
+
12
+ // Copyright (c) 2022, Salesforce, Inc.,
13
+ function collectCustomProperties(result, root) {
14
+ root.walkDecls((decl) => {
15
+ // Early exit if the declaration doesn't includes a var() function. This avoid parsing the
16
+ // selector when not needed.
17
+ if (!decl.value.includes('var(')) {
18
+ return;
19
+ }
20
+ // The value offset from the start of the declaration node is:
21
+ // - the declaration property name length
22
+ // - the space between the declaration and the value (raws.between includes the `:`)
23
+ const valueOffset = decl.prop.length + (decl.raws.between?.length ?? 1);
24
+ let parsedValue;
25
+ try {
26
+ parsedValue = postcssValueParser__default["default"](decl.value);
27
+ }
28
+ catch (error) {
29
+ // Ignore cases where the declaration value is malformed.
30
+ return;
31
+ }
32
+ const { nodes } = parsedValue;
33
+ // To keep the implementation backwards compatible with metadata-v1, only process declaration
34
+ // values that start with a "var". This is not comprehensive, as lwc tokens nested with in
35
+ // css functions are not collected. But doing so now will break existing usages in production
36
+ const declarationValueStartsWithVar = nodes.filter((n) => {
37
+ return n.type === 'function' && n.value === 'var';
38
+ });
39
+ postcssValueParser__default["default"].walk(declarationValueStartsWithVar, (node) => {
40
+ if (node.type !== 'function' || node.value !== 'var') {
41
+ return;
42
+ }
43
+ const params = node.nodes;
44
+ if (utils.isUndefined(params[0]) || params[0].type !== 'word') {
45
+ return;
46
+ }
47
+ const name = params[0].value;
48
+ // Relative position of the variable with respect to the declaration
49
+ const relativeOffset = valueOffset + params[0].sourceIndex;
50
+ const start = decl.positionInside(relativeOffset);
51
+ const end = decl.positionInside(relativeOffset + name.length);
52
+ const startOffset = decl.source.start.offset + relativeOffset;
53
+ // const endOffset = startOffset + name.length;
54
+ result.customProperties.push({
55
+ name,
56
+ location: {
57
+ startLine: start.line,
58
+ startColumn: start.column,
59
+ endLine: end.line,
60
+ endColumn: end.column,
61
+ start: startOffset,
62
+ end: startOffset + name.length,
63
+ },
64
+ });
65
+ });
66
+ });
67
+ }
68
+
69
+ exports.collectCustomProperties = collectCustomProperties;
70
+ //# sourceMappingURL=custom-properties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-properties.js","sources":["../../src/style-metadata/custom-properties.ts"],"sourcesContent":[null],"names":["postcssValueParser","isUndefined"],"mappings":";;;;;;;;;;;AAAA;AAUgB,SAAA,uBAAuB,CAAC,MAAe,EAAE,IAAU,EAAA;AAC/D,IAAA,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;;;QAGpB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC9B,OAAO;AACV,SAAA;;;;AAKD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;AAExE,QAAA,IAAI,WAAwB,CAAC;QAC7B,IAAI;AACA,YAAA,WAAW,GAAGA,sCAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChD,SAAA;AAAC,QAAA,OAAO,KAAK,EAAE;;YAEZ,OAAO;AACV,SAAA;AAED,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC;;;;QAK9B,MAAM,6BAA6B,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAI;YACrD,OAAO,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC;AACtD,SAAC,CAAC,CAAC;QAEHA,sCAAkB,CAAC,IAAI,CAAC,6BAA6B,EAAE,CAAC,IAAI,KAAI;YAC5D,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;gBAClD,OAAO;AACV,aAAA;AAED,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;AAE1B,YAAA,IAAIC,iBAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE;gBACrD,OAAO;AACV,aAAA;YAED,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;;YAE7B,MAAM,cAAc,GAAG,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;AAClD,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAO,CAAC,KAAM,CAAC,MAAM,GAAG,cAAc,CAAC;;AAEhE,YAAA,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC;gBACzB,IAAI;AACJ,gBAAA,QAAQ,EAAE;oBACN,SAAS,EAAE,KAAK,CAAC,IAAI;oBACrB,WAAW,EAAE,KAAK,CAAC,MAAM;oBACzB,OAAO,EAAE,GAAG,CAAC,IAAI;oBACjB,SAAS,EAAE,GAAG,CAAC,MAAM;AACrB,oBAAA,KAAK,EAAE,WAAW;AAClB,oBAAA,GAAG,EAAE,WAAW,GAAG,IAAI,CAAC,MAAM;AACjC,iBAAA;AACJ,aAAA,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;AACP,KAAC,CAAC,CAAC;AACP;;;;"}
@@ -0,0 +1,4 @@
1
+ import { Root } from 'postcss';
2
+ import { NamespaceMapping } from '../shared/config';
3
+ import { CSSFile } from '../schema/typescript-types/style-metadata-types';
4
+ export declare function collectImports(result: CSSFile, root: Root, namespaceMapping: NamespaceMapping): void;
@@ -0,0 +1,120 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var postcssValueParser = require('postcss-value-parser');
6
+ var sfdcCompilerUtils = require('@lwc/sfdc-compiler-utils');
7
+ var utils = require('../shared/utils.js');
8
+ var utils$1 = require('../script-metadata/utils.js');
9
+
10
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
+
12
+ var postcssValueParser__default = /*#__PURE__*/_interopDefaultLegacy(postcssValueParser);
13
+
14
+ // Copyright (c) 2022, Salesforce, Inc.,
15
+ function getImportInfo(param) {
16
+ let root;
17
+ try {
18
+ root = postcssValueParser__default["default"](param);
19
+ }
20
+ catch {
21
+ // Ignore cases where the params value is malformed.
22
+ return;
23
+ }
24
+ const node = root.nodes[0];
25
+ if (utils.isUndefined(node)) {
26
+ return;
27
+ }
28
+ // @import "./module.css";
29
+ if (node.type === 'string') {
30
+ return {
31
+ name: node.value,
32
+ offset: node.sourceIndex,
33
+ };
34
+ }
35
+ // @import url(./module.css);
36
+ // @import url("./module.css");
37
+ if (node.type === 'function' && node.value === 'url') {
38
+ const params = node.nodes;
39
+ if (utils.isUndefined(params[0])) {
40
+ return;
41
+ }
42
+ if (params[0].type === 'string') {
43
+ return {
44
+ name: params[0].value,
45
+ offset: params[0].sourceIndex + 1, // Add the front quote to the offset.
46
+ };
47
+ }
48
+ if (params[0].type === 'word') {
49
+ return {
50
+ name: params[0].value,
51
+ offset: params[0].sourceIndex,
52
+ };
53
+ }
54
+ }
55
+ }
56
+ function getLocation(rule, info) {
57
+ // The at-rule parameter offset relative to the at-rule node is:
58
+ // - 1 for the '@' prefix length
59
+ // - the at-rule name length
60
+ // - the whitespace after the name length.
61
+ const paramOffset = 1 + rule.name.length + (rule.raws.afterName?.length ?? 1);
62
+ // relative position of module name with respect to the import statement
63
+ const moduleNameRelativeOffset = paramOffset + info.offset + utils$1.QUOTE_LENGTH;
64
+ const start = rule.positionInside(moduleNameRelativeOffset);
65
+ const end = rule.positionInside(moduleNameRelativeOffset + info.name.length);
66
+ const startOffset = rule.source.start.offset + moduleNameRelativeOffset;
67
+ return {
68
+ startLine: start.line,
69
+ startColumn: start.column,
70
+ endLine: end.line,
71
+ endColumn: end.column,
72
+ start: startOffset,
73
+ end: startOffset + info.name.length,
74
+ };
75
+ }
76
+ function getImportType(name) {
77
+ if (name.startsWith('.')) {
78
+ return 'local';
79
+ }
80
+ else if (name.startsWith('@salesforce')) {
81
+ return '@salesforce';
82
+ }
83
+ else {
84
+ return 'external';
85
+ }
86
+ }
87
+ function createReference(name, references, namespaceMapping) {
88
+ const type = getImportType(name);
89
+ const id = utils.generateReferenceId('ModuleReference', references.size, name);
90
+ const namespacedName = type === 'external' ? sfdcCompilerUtils.getNamespacedIdForResource(name, namespaceMapping) : undefined;
91
+ return {
92
+ id,
93
+ name,
94
+ namespacedName,
95
+ type,
96
+ locations: [],
97
+ };
98
+ }
99
+ function collectImports(result, root, namespaceMapping) {
100
+ const references = new Map();
101
+ root.walkAtRules('import', (rule) => {
102
+ const importInfo = getImportInfo(rule.params);
103
+ // Ignore malformed at-rule imports.
104
+ if (utils.isUndefined(importInfo)) {
105
+ return;
106
+ }
107
+ const { name } = importInfo;
108
+ const importLocation = getLocation(rule, importInfo);
109
+ let reference = references.get(name);
110
+ if (utils.isUndefined(reference)) {
111
+ reference = createReference(name, references, namespaceMapping);
112
+ result.imports.push(reference);
113
+ references.set(name, reference);
114
+ }
115
+ reference.locations.push(importLocation);
116
+ });
117
+ }
118
+
119
+ exports.collectImports = collectImports;
120
+ //# sourceMappingURL=imports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imports.js","sources":["../../src/style-metadata/imports.ts"],"sourcesContent":[null],"names":["postcssValueParser","isUndefined","QUOTE_LENGTH","generateReferenceId","getNamespacedIdForResource"],"mappings":"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"}