@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,241 @@
1
+ import { File, SourceLocation } from './common-metadata-types';
2
+ interface ScriptFile extends File {
3
+ fileType: 'js';
4
+ moduleReferences: ModuleReference[];
5
+ classes: Class[];
6
+ /**
7
+ * If the file has uses an "export default <ClassDeclaration | Identifier that resolved to a local class>",
8
+ * this property provides a reference to the class metadata.
9
+ */
10
+ mainClass?: {
11
+ name?: string;
12
+ refId: ID;
13
+ };
14
+ imports: Import[];
15
+ dynamicImports: DynamicImport[];
16
+ exports: Export[];
17
+ domEvents: DOMEvent[];
18
+ eventListeners: ProgrammaticEventListener[];
19
+ eventsDispatched: EventDispatch[];
20
+ }
21
+ declare function isScriptFile(file: File): file is ScriptFile;
22
+ interface Class {
23
+ name?: string;
24
+ isComponentClass?: boolean;
25
+ extends?: ParentClass;
26
+ properties: ClassProperty[];
27
+ methods: ClassMethod[];
28
+ location: SourceLocation;
29
+ id: ID;
30
+ __internal__doc: string | undefined;
31
+ }
32
+ interface ClassProperty {
33
+ type: 'Property';
34
+ name: string;
35
+ propertyType: 'accessor' | 'dataProperty';
36
+ dataProperty?: DataProperty;
37
+ getter?: Getter;
38
+ setter?: Setter;
39
+ decorators: LwcDecorator[];
40
+ static: boolean;
41
+ __internal__doc: string | undefined;
42
+ }
43
+ interface DataProperty {
44
+ initialValue: Value;
45
+ location: SourceLocation;
46
+ }
47
+ interface Getter {
48
+ initialValue: Value;
49
+ location: SourceLocation;
50
+ }
51
+ interface Setter {
52
+ location: SourceLocation;
53
+ }
54
+ interface ClassMethod {
55
+ type: 'Method';
56
+ name: string;
57
+ decorators: LwcDecorator[];
58
+ __internal__doc: string | undefined;
59
+ location: SourceLocation;
60
+ }
61
+ interface Decorator {
62
+ type: string;
63
+ location: SourceLocation;
64
+ }
65
+ interface ApiDecorator extends Decorator {
66
+ type: 'Api';
67
+ }
68
+ interface TrackDecorator extends Decorator {
69
+ type: 'Track';
70
+ }
71
+ interface WireDecorator extends Decorator {
72
+ type: 'Wire';
73
+ adapterId: {
74
+ importedName: string;
75
+ localName: string;
76
+ location: SourceLocation;
77
+ };
78
+ adapterModule: string;
79
+ adapterConfig?: {
80
+ reactive: {
81
+ [prop: string]: ReactiveWireProperty;
82
+ };
83
+ static: {
84
+ [prop: string]: StaticWireProperty;
85
+ };
86
+ };
87
+ }
88
+ interface ReactiveWireProperty {
89
+ keyLocation: SourceLocation;
90
+ classProperty: string;
91
+ valueLocation: SourceLocation;
92
+ }
93
+ interface StaticWireProperty {
94
+ keyLocation: SourceLocation;
95
+ value: Value;
96
+ valueLocation: SourceLocation;
97
+ }
98
+ declare type LwcDecorator = ApiDecorator | TrackDecorator | WireDecorator;
99
+ interface UnresolvedValue {
100
+ type: 'Unresolved';
101
+ value: 'unresolved';
102
+ }
103
+ interface NumberValue {
104
+ type: 'Number';
105
+ value: number;
106
+ }
107
+ interface BooleanValue {
108
+ type: 'Boolean';
109
+ value: boolean;
110
+ }
111
+ interface StringValue {
112
+ type: 'String';
113
+ value: string;
114
+ }
115
+ interface NullValue {
116
+ type: 'Null';
117
+ value: null;
118
+ }
119
+ interface UndefinedValue {
120
+ type: 'Undefined';
121
+ value: undefined;
122
+ }
123
+ interface ObjectValue {
124
+ type: 'Object';
125
+ value: {
126
+ [name: string]: Value;
127
+ };
128
+ }
129
+ interface ArrayValue {
130
+ type: 'Array';
131
+ value: Value[];
132
+ }
133
+ interface ImportedValue {
134
+ type: 'ImportedValue';
135
+ localName: string;
136
+ importedName: string;
137
+ moduleSpecifier: string;
138
+ }
139
+ declare type Value = BooleanValue | StringValue | NullValue | ObjectValue | ArrayValue | UndefinedValue | NumberValue | UnresolvedValue | ImportedValue;
140
+ interface Import {
141
+ defaultBinding?: DefaultBinding;
142
+ namedImports?: NamedImport[];
143
+ namespaceImport?: NamespaceImport;
144
+ moduleSpecifier: string;
145
+ location: SourceLocation;
146
+ refId: ID;
147
+ }
148
+ interface DefaultBinding {
149
+ name: string;
150
+ location: SourceLocation;
151
+ }
152
+ interface NamedImport {
153
+ name: string;
154
+ aliasName?: string;
155
+ location: SourceLocation;
156
+ }
157
+ interface NamespaceImport {
158
+ aliasName: string;
159
+ location: SourceLocation;
160
+ }
161
+ declare enum ModuleNameType {
162
+ UNRESOLVED = "unresolved",
163
+ STRING = "string"
164
+ }
165
+ interface DynamicImport {
166
+ moduleSpecifier: string;
167
+ moduleNameType: ModuleNameType;
168
+ location: SourceLocation;
169
+ hints: DynamicImportHint[];
170
+ }
171
+ interface DynamicImportHint {
172
+ rawValue: string;
173
+ key: string;
174
+ value: string;
175
+ location: SourceLocation;
176
+ }
177
+ interface Export {
178
+ namedExports?: NamedExport[];
179
+ defaultExport?: DefaultExport;
180
+ location: SourceLocation;
181
+ moduleSpecifier?: string;
182
+ refId?: ID;
183
+ }
184
+ interface NamedExport {
185
+ localName?: string;
186
+ exportedName: string;
187
+ location: SourceLocation;
188
+ }
189
+ interface DefaultExport {
190
+ location: SourceLocation;
191
+ }
192
+ interface DOMEvent {
193
+ eventType: string;
194
+ interface: 'Event' | 'CustomEvent';
195
+ options?: {
196
+ bubbles?: boolean;
197
+ composed?: boolean;
198
+ };
199
+ location: SourceLocation;
200
+ id: ID;
201
+ }
202
+ interface ProgrammaticEventListener {
203
+ eventType: string;
204
+ targetType: 'host' | 'shadowRoot' | 'document' | 'window' | 'unresolved';
205
+ options?: {
206
+ capture?: boolean;
207
+ };
208
+ location: SourceLocation;
209
+ }
210
+ interface EventDispatch {
211
+ targetType: 'host' | 'shadowRoot' | 'document' | 'window' | 'unresolved';
212
+ event: {
213
+ refId: ID;
214
+ } | 'unresolved';
215
+ location: SourceLocation;
216
+ }
217
+ declare type ParentClass = {
218
+ name: string;
219
+ refId?: ID;
220
+ location: SourceLocation;
221
+ } | {
222
+ name: string;
223
+ moduleSpecifier: string;
224
+ refId: ID;
225
+ location: SourceLocation;
226
+ } | 'unresolved';
227
+ declare type SfdcResourceType = 'accessCheck' | 'apex' | 'apexMethod' | 'apexContinuation' | 'client' | 'commerce' | 'community' | 'component' | 'contentAssetUrl' | 'customPermission' | 'dynamicComponent' | 'messageChannel' | 'i18n' | 'gate' | 'label' | 'metric' | 'internal' | 'resourceUrl' | 'schema' | 'site' | 'slds' | 'user' | 'userPermission' | 'komaci';
228
+ interface ModuleReference {
229
+ name: string;
230
+ namespacedName?: string;
231
+ sfdcResource?: {
232
+ scoped: SfdcResourceType;
233
+ namespacedId?: string;
234
+ id?: string;
235
+ };
236
+ type: 'lwc' | '@salesforce' | 'local' | 'external';
237
+ locations: SourceLocation[];
238
+ id: ID;
239
+ }
240
+ declare type ID = string;
241
+ export { ApiDecorator, Class, ClassProperty, ClassMethod, DefaultBinding, DefaultExport, DOMEvent, DynamicImport, DynamicImportHint, EventDispatch, ID, Import, ImportedValue, ModuleNameType, ModuleReference, NamedExport, NamedImport, NamespaceImport, ParentClass, ProgrammaticEventListener, ScriptFile, SfdcResourceType, TrackDecorator, UnresolvedValue, Value, WireDecorator, LwcDecorator, StaticWireProperty, ReactiveWireProperty, isScriptFile, };
@@ -0,0 +1,18 @@
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
+ function isScriptFile(file) {
9
+ return file.fileType === 'js';
10
+ }
11
+ exports.ModuleNameType = void 0;
12
+ (function (ModuleNameType) {
13
+ ModuleNameType["UNRESOLVED"] = "unresolved";
14
+ ModuleNameType["STRING"] = "string";
15
+ })(exports.ModuleNameType || (exports.ModuleNameType = {}));
16
+
17
+ exports.isScriptFile = isScriptFile;
18
+ //# sourceMappingURL=script-metadata-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script-metadata-types.js","sources":["../../../src/schema/typescript-types/script-metadata-types.ts"],"sourcesContent":[null],"names":["ModuleNameType"],"mappings":";;;;AAAA;AACA;AACA;AA2CA,SAAS,YAAY,CAAC,IAAU,EAAA;AAC5B,IAAA,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;AAClC,CAAC;AA+NIA,gCAGJ;AAHD,CAAA,UAAK,cAAc,EAAA;AACf,IAAA,cAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACrB,CAAC,EAHIA,sBAAc,KAAdA,sBAAc,GAGlB,EAAA,CAAA,CAAA;;;;"}
@@ -0,0 +1,35 @@
1
+ import { ComponentReference, File, SourceLocation } from './common-metadata-types';
2
+ import { ModuleReference } from './script-metadata-types';
3
+ /**
4
+ * Root metadata object for a css file.
5
+ */
6
+ interface CSSFile extends File {
7
+ fileType: 'css';
8
+ /**
9
+ * The list of imported CSS modules via the @import CSS at-rule.
10
+ */
11
+ imports: ModuleReference[];
12
+ /**
13
+ * The list of referenced component modules in CSS rules.
14
+ */
15
+ componentReferences: ComponentReference[];
16
+ /**
17
+ * The list of CSS custom properties.
18
+ */
19
+ customProperties: CSSCustomProperty[];
20
+ }
21
+ declare function isCSSFile(file: File): file is CSSFile;
22
+ /**
23
+ * CSS custom property detail.
24
+ */
25
+ interface CSSCustomProperty {
26
+ /**
27
+ * The custom property name.
28
+ */
29
+ name: string;
30
+ /**
31
+ * The custom property location.
32
+ */
33
+ location: SourceLocation;
34
+ }
35
+ export { CSSFile, CSSCustomProperty, isCSSFile };
@@ -0,0 +1,13 @@
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
+ function isCSSFile(file) {
9
+ return file.fileType === 'css';
10
+ }
11
+
12
+ exports.isCSSFile = isCSSFile;
13
+ //# sourceMappingURL=style-metadata-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style-metadata-types.js","sources":["../../../src/schema/typescript-types/style-metadata-types.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAAA;AACA;AACA;AA2BA,SAAS,SAAS,CAAC,IAAU,EAAA;AACzB,IAAA,OAAO,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC;AACnC;;;;"}
@@ -0,0 +1,11 @@
1
+ import { Root } from '@lwc/template-compiler';
2
+ import { ComponentReference, File } from './common-metadata-types';
3
+ interface HTMLTemplateFile extends File {
4
+ fileType: 'html';
5
+ /** List of unique components referenced in the template. */
6
+ componentReferences: ComponentReference[];
7
+ /** Template in AST format starting with the root <template> node. */
8
+ ast?: Root;
9
+ }
10
+ declare function isHTMLTemplateFile(file: File): file is HTMLTemplateFile;
11
+ export { HTMLTemplateFile, ComponentReference, isHTMLTemplateFile };
@@ -0,0 +1,13 @@
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
+ function isHTMLTemplateFile(file) {
9
+ return file.fileType === 'html';
10
+ }
11
+
12
+ exports.isHTMLTemplateFile = isHTMLTemplateFile;
13
+ //# sourceMappingURL=template-metadata-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-metadata-types.js","sources":["../../../src/schema/typescript-types/template-metadata-types.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAAA;AACA;AACA;AAcA,SAAS,kBAAkB,CAAC,IAAU,EAAA;AAClC,IAAA,OAAO,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC;AACpC;;;;"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import { NamespaceMapping, BundleType } from '../../shared/config';
2
+ import { ScriptFile } from '../../schema/typescript-types/script-metadata-types';
3
+ export declare function collectScriptMetadata(source: string, namespaceMapping?: NamespaceMapping, filename?: string, bundleType?: BundleType): ScriptFile;
@@ -0,0 +1,4 @@
1
+ import { Scope } from '@babel/traverse';
2
+ import { LwcDecorator } from '../../schema/typescript-types/script-metadata-types';
3
+ import { ClassMember, ScriptState } from '../utils';
4
+ export declare function gatherDecoratorMetadata(classMember: ClassMember, scope: Scope, state: ScriptState): LwcDecorator[];
@@ -0,0 +1,184 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var t = require('@babel/types');
6
+ var errors$1 = require('@lwc/errors');
7
+ var errors = require('../../errors/errors.js');
8
+ var utils = require('../../shared/utils.js');
9
+ var resolver = require('../resolver.js');
10
+ var utils$1 = require('../utils.js');
11
+
12
+ function _interopNamespace(e) {
13
+ if (e && e.__esModule) return e;
14
+ var n = Object.create(null);
15
+ if (e) {
16
+ Object.keys(e).forEach(function (k) {
17
+ if (k !== 'default') {
18
+ var d = Object.getOwnPropertyDescriptor(e, k);
19
+ Object.defineProperty(n, k, d.get ? d : {
20
+ enumerable: true,
21
+ get: function () { return e[k]; }
22
+ });
23
+ }
24
+ });
25
+ }
26
+ n["default"] = e;
27
+ return Object.freeze(n);
28
+ }
29
+
30
+ var t__namespace = /*#__PURE__*/_interopNamespace(t);
31
+
32
+ // Copyright (c) 2022, Salesforce, Inc.,
33
+ const WIRE_REACTIVE_PROP_PREFIX = '$';
34
+ function gatherWireDecoratorMetadata(decoratorNode, scope, state) {
35
+ const expression = decoratorNode.expression;
36
+ const [adapter, adapterConfig] = expression.arguments;
37
+ const wireDecoratorMeta = {
38
+ type: 'Wire',
39
+ location: utils$1.generateSourceLocation(decoratorNode),
40
+ adapterId: {
41
+ importedName: 'unresolved',
42
+ localName: 'unresolved',
43
+ location: utils$1.generateSourceLocation(adapter || decoratorNode),
44
+ },
45
+ adapterModule: 'unresolved',
46
+ };
47
+ if (t__namespace.isIdentifier(adapter)) {
48
+ const binding = scope.getBinding(adapter.name);
49
+ wireDecoratorMeta.adapterId.localName = adapter.name;
50
+ if (!utils.isUndefined(binding)) {
51
+ const path = binding.path;
52
+ // binding identifier loc refers to original import not the adapterId
53
+ if (t__namespace.isImportDeclaration(path.parent)) {
54
+ if (t__namespace.isImportSpecifier(path.node)) {
55
+ // Gather the imported name of the import specifier and not the local name
56
+ // Example: import { getRecord as getRecordAlias } from 'lightning/uiRecordApi';
57
+ // adapterId will be 'getRecord'
58
+ wireDecoratorMeta.adapterId.importedName = resolver.resolveImportSpecifierImported(path.node.imported);
59
+ wireDecoratorMeta.adapterModule = path.parent.source.value;
60
+ }
61
+ else if (t__namespace.isImportDefaultSpecifier(path.node)) {
62
+ // Example: import getContactList from '@salesforce/apex/ContactController.getContactList';
63
+ // @wire(getContactList)
64
+ wireDecoratorMeta.adapterId.importedName = 'default';
65
+ wireDecoratorMeta.adapterModule = path.parent.source.value;
66
+ }
67
+ // Adapter IDs cannot be a namespaced import
68
+ }
69
+ }
70
+ }
71
+ if (adapterConfig !== undefined) {
72
+ if (t__namespace.isObjectExpression(adapterConfig)) {
73
+ const reactiveProps = {};
74
+ const staticProps = {};
75
+ adapterConfig.properties.forEach((prop) => {
76
+ if (!t__namespace.isObjectProperty(prop) || !t__namespace.isIdentifier(prop.key) || prop.computed) {
77
+ return;
78
+ }
79
+ const { key, value } = prop;
80
+ const keyLoc = utils$1.generateSourceLocation(key);
81
+ const valueLoc = utils$1.generateSourceLocation(value);
82
+ // Only consider object property and when the property key is an identifier skip
83
+ // spread element and object methods.
84
+ if (t__namespace.isStringLiteral(value) && value.value.startsWith(WIRE_REACTIVE_PROP_PREFIX)) {
85
+ // Collect metadata about adapterConfig fields that are mapped to a reactive
86
+ // field - eg. @wire(getRecord, { recordId: '$recordId'})
87
+ reactiveProps[key.name] = {
88
+ keyLocation: keyLoc,
89
+ classProperty: value.value.slice(1),
90
+ valueLocation: valueLoc,
91
+ };
92
+ }
93
+ else if (t__namespace.isExpression(value)) {
94
+ staticProps[key.name] = {
95
+ keyLocation: keyLoc,
96
+ value: resolver.resolveExpression(value, scope),
97
+ valueLocation: valueLoc,
98
+ };
99
+ }
100
+ });
101
+ wireDecoratorMeta.adapterConfig = {
102
+ reactive: reactiveProps,
103
+ static: staticProps,
104
+ };
105
+ }
106
+ else {
107
+ throw new errors.MetadataCollectionError([
108
+ errors$1.generateCompilerDiagnostic(errors.Errors.INVALID_WIRE_CONFIG_USAGE, {
109
+ messageArgs: [],
110
+ origin: {
111
+ filename: state.fileName,
112
+ location: {
113
+ line: adapterConfig.loc.start.line,
114
+ column: adapterConfig.loc.start.column,
115
+ start: adapterConfig.start,
116
+ },
117
+ },
118
+ }),
119
+ ]);
120
+ }
121
+ }
122
+ return wireDecoratorMeta;
123
+ }
124
+ function gatherDecoratorMetadata(classMember, scope, state) {
125
+ const decoratorMeta = [];
126
+ const decoratorNodes = classMember.decorators;
127
+ if (!utils.isNull(decoratorNodes) && !utils.isUndefined(decoratorNodes)) {
128
+ decoratorNodes.forEach((decorator) => {
129
+ const { expression } = decorator;
130
+ let name;
131
+ if (t__namespace.isIdentifier(expression)) {
132
+ name = expression.name;
133
+ }
134
+ else if (t__namespace.isCallExpression(expression) && t__namespace.isIdentifier(expression.callee)) {
135
+ name = expression.callee.name;
136
+ }
137
+ switch (name) {
138
+ case 'api':
139
+ if (!t__namespace.isIdentifier(expression)) {
140
+ throw generateDecoratorUsageError(decorator, errors.Errors.INVALID_API_USAGE, state);
141
+ }
142
+ decoratorMeta.push({
143
+ type: 'Api',
144
+ location: utils$1.generateSourceLocation(decorator),
145
+ });
146
+ break;
147
+ case 'track':
148
+ if (!t__namespace.isIdentifier(expression)) {
149
+ throw generateDecoratorUsageError(decorator, errors.Errors.INVALID_TRACK_USAGE, state);
150
+ }
151
+ decoratorMeta.push({
152
+ type: 'Track',
153
+ location: utils$1.generateSourceLocation(decorator),
154
+ });
155
+ break;
156
+ case 'wire':
157
+ if (!t__namespace.isCallExpression(expression)) {
158
+ throw generateDecoratorUsageError(decorator, errors.Errors.INVALID_WIRE_USAGE, state);
159
+ }
160
+ decoratorMeta.push(gatherWireDecoratorMetadata(decorator, scope, state));
161
+ break;
162
+ }
163
+ });
164
+ }
165
+ return decoratorMeta;
166
+ }
167
+ function generateDecoratorUsageError(decoratorNode, errorInfo, state) {
168
+ return new errors.MetadataCollectionError([
169
+ errors$1.generateCompilerDiagnostic(errorInfo, {
170
+ messageArgs: [],
171
+ origin: {
172
+ filename: state.fileName,
173
+ location: {
174
+ line: decoratorNode.loc.start.line,
175
+ column: decoratorNode.loc.start.column,
176
+ start: decoratorNode.start,
177
+ },
178
+ },
179
+ }),
180
+ ]);
181
+ }
182
+
183
+ exports.gatherDecoratorMetadata = gatherDecoratorMetadata;
184
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/script-metadata/decorators/index.ts"],"sourcesContent":[null],"names":["generateSourceLocation","t","isUndefined","resolveImportSpecifierImported","resolveExpression","MetadataCollectionError","generateCompilerDiagnostic","Errors","isNull"],"mappings":"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"}
@@ -0,0 +1,7 @@
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 declare type EventInterfaceName = 'CustomEvent' | 'Event';
6
+ export declare const VALID_EVENT_INTERFACES: Set<string>;
7
+ export declare function gatherEventMetadata(path: NodePath<t.NewExpression>, eventInterface: EventInterfaceName, result: ScriptFile, state: ScriptState): void;
@@ -0,0 +1,55 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var utils = require('../../shared/utils.js');
6
+ var utils$1 = require('../utils.js');
7
+ var util = require('./util.js');
8
+
9
+ // Copyright (c) 2022, Salesforce, Inc.,
10
+ const VALID_EVENT_INTERFACES = new Set(['CustomEvent', 'Event']);
11
+ const QUALIFIED_EVENT_OPTIONS = new Set(['bubbles', 'composed']);
12
+ const DEFAULT_EVENT_OPTIONS = {
13
+ bubbles: false,
14
+ composed: false,
15
+ };
16
+ function generateEventMetadata(path, eventInterface) {
17
+ const { arguments: args } = path.node;
18
+ // If event type param in constructor is unknown or not statically analyzable, no metadata will be gathered
19
+ if (utils.isEmpty(args) || args[0].type !== 'StringLiteral') {
20
+ return;
21
+ }
22
+ const domEvent = {
23
+ eventType: args[0].value,
24
+ interface: eventInterface,
25
+ location: utils$1.generateSourceLocation(path.node),
26
+ id: '',
27
+ };
28
+ // eventInit options
29
+ if (args.length === 1) {
30
+ // If no event options were specified, return the default values per spec
31
+ domEvent.options = DEFAULT_EVENT_OPTIONS;
32
+ }
33
+ else if (args[1].type === 'ObjectExpression') {
34
+ // Will consider analyzing only event options that are object
35
+ const filteredOptions = util.extractObjectValue(args[1], DEFAULT_EVENT_OPTIONS, QUALIFIED_EVENT_OPTIONS);
36
+ if (utils.keys(filteredOptions).length > 0) {
37
+ domEvent.options = util.coerceObjectValuesToBoolean(filteredOptions);
38
+ }
39
+ }
40
+ return domEvent;
41
+ }
42
+ function gatherEventMetadata(path, eventInterface, result, state) {
43
+ const domEvent = generateEventMetadata(path, eventInterface);
44
+ // If dom event is not statically analyzable, no metadata will be gathered
45
+ if (utils.isUndefined(domEvent)) {
46
+ return;
47
+ }
48
+ domEvent.id = state.generateReferenceId('DOMEvent', domEvent.eventType);
49
+ state.eventLookup.set(path.node, domEvent);
50
+ result.domEvents.push(domEvent);
51
+ }
52
+
53
+ exports.VALID_EVENT_INTERFACES = VALID_EVENT_INTERFACES;
54
+ exports.gatherEventMetadata = gatherEventMetadata;
55
+ //# sourceMappingURL=event-construction.js.map