@arcmantle/lit-jsx 1.0.6 → 1.0.7

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 (55) hide show
  1. package/README.md +22 -16
  2. package/dist/compiler/babel-plugin.d.ts +4 -0
  3. package/dist/compiler/babel-plugin.d.ts.map +1 -0
  4. package/dist/compiler/babel-plugin.js +20 -0
  5. package/dist/compiler/babel-plugin.js.map +1 -0
  6. package/dist/compiler/babel-traverse.d.ts +3 -0
  7. package/dist/compiler/babel-traverse.d.ts.map +1 -0
  8. package/dist/compiler/babel-traverse.js +7 -0
  9. package/dist/compiler/babel-traverse.js.map +1 -0
  10. package/dist/compiler/compiler-utils.d.ts +3 -2
  11. package/dist/compiler/compiler-utils.d.ts.map +1 -1
  12. package/dist/compiler/compiler-utils.js +25 -23
  13. package/dist/compiler/compiler-utils.js.map +1 -1
  14. package/dist/compiler/config.d.ts +5 -1
  15. package/dist/compiler/config.d.ts.map +1 -1
  16. package/dist/compiler/config.js +2 -2
  17. package/dist/compiler/config.js.map +1 -1
  18. package/dist/compiler/create-logger.d.ts +3 -0
  19. package/dist/compiler/create-logger.d.ts.map +1 -0
  20. package/dist/compiler/create-logger.js +32 -0
  21. package/dist/compiler/create-logger.js.map +1 -0
  22. package/dist/compiler/import-discovery.d.ts +43 -4
  23. package/dist/compiler/import-discovery.d.ts.map +1 -1
  24. package/dist/compiler/import-discovery.js +306 -160
  25. package/dist/compiler/import-discovery.js.map +1 -1
  26. package/dist/compiler/preprocess.d.ts +1 -1
  27. package/dist/compiler/preprocess.d.ts.map +1 -1
  28. package/dist/compiler/preprocess.js +5 -4
  29. package/dist/compiler/preprocess.js.map +1 -1
  30. package/dist/compiler/transpiler.js +4 -4
  31. package/dist/compiler/transpiler.js.map +1 -1
  32. package/dist/compiler/vite-plugin.d.ts +1 -0
  33. package/dist/compiler/vite-plugin.d.ts.map +1 -1
  34. package/dist/compiler/vite-plugin.js +9 -13
  35. package/dist/compiler/vite-plugin.js.map +1 -1
  36. package/dist/runtime/type-helpers.d.ts +24 -36
  37. package/dist/runtime/type-helpers.d.ts.map +1 -1
  38. package/dist/runtime/type-helpers.js +22 -34
  39. package/dist/runtime/type-helpers.js.map +1 -1
  40. package/package.json +5 -2
  41. package/src/compiler/babel-plugin.ts +23 -0
  42. package/src/compiler/babel-traverse.ts +7 -0
  43. package/src/compiler/compiler-utils.ts +35 -25
  44. package/src/compiler/config.ts +7 -2
  45. package/src/compiler/create-logger.ts +35 -0
  46. package/src/compiler/import-discovery.ts +381 -202
  47. package/src/compiler/preprocess.ts +9 -7
  48. package/src/compiler/transpiler.ts +4 -4
  49. package/src/compiler/vite-plugin.ts +16 -22
  50. package/src/runtime/type-helpers.ts +24 -36
  51. package/dist/compiler/babel-preset.d.ts +0 -6
  52. package/dist/compiler/babel-preset.d.ts.map +0 -1
  53. package/dist/compiler/babel-preset.js +0 -27
  54. package/dist/compiler/babel-preset.js.map +0 -1
  55. package/src/compiler/babel-preset.ts +0 -34
@@ -1,179 +1,325 @@
1
1
  import { existsSync, readFileSync } from 'node:fs';
2
- import { dirname, resolve } from 'node:path';
2
+ import { dirname } from 'node:path';
3
3
  import * as babel from '@babel/core';
4
- import traverse, { Binding, Hub, NodePath, Scope } from '@babel/traverse';
5
4
  import * as t from '@babel/types';
6
- // Cache for parsed files to avoid re-parsing
7
- const fileCache = new Map();
8
- // Helper function to find the definition of a JSX element
9
- export function findElementDefinition(path) {
10
- const elementName = path.node.name;
11
- const hub = path.hub;
12
- const currentFileName = hub.file.opts.filename;
13
- // Only handle JSXIdentifier (not JSXMemberExpression or JSXNamespacedName)
14
- if (!t.isJSXIdentifier(elementName))
15
- return { type: 'unknown' };
16
- const elementNameString = elementName.name;
17
- //console.log('Tracing element:', elementNameString);
18
- // Start tracing with the current file context
19
- return traceElementDefinition(elementNameString, path.scope, currentFileName);
20
- }
21
- // Core recursive tracing function
22
- function traceElementDefinition(elementName, scope, currentFileName, visitedFiles = new Set()) {
23
- // Prevent infinite recursion
24
- if (visitedFiles.has(`${currentFileName}:${elementName}`))
25
- return { type: 'unknown' };
26
- visitedFiles.add(`${currentFileName}:${elementName}`);
27
- // Check if there's a binding for this identifier in the current scope
28
- const binding = scope.getBinding(elementName);
29
- if (!binding) {
30
- //console.log('No binding found for:', elementName);
31
- return { type: 'unknown' };
5
+ import oxcResolver from 'oxc-resolver';
6
+ import { traverse } from "./babel-traverse.js";
7
+ import { getPathFilename, isComponent } from "./compiler-utils.js";
8
+ import { babelPlugins, debugMode } from "./config.js";
9
+ import { createLogger } from "./create-logger.js";
10
+ export class ImportDiscovery {
11
+ static { this.definitionCache = new Map(); }
12
+ static { this.fileBindingsCache = new Map(); }
13
+ static { this.fileDependencies = new Map(); }
14
+ static { this.EMPTY_BINDINGS = new Map(); }
15
+ static clearCacheForFileAndDependents(changedFilePath) {
16
+ // Clear the changed file itself
17
+ ImportDiscovery.definitionCache.delete(changedFilePath);
18
+ ImportDiscovery.fileBindingsCache.delete(changedFilePath);
19
+ ImportDiscovery.fileDependencies.delete(changedFilePath);
20
+ // Find and clear all files that depend on the changed file in one pass
21
+ for (const [file, dependencies] of ImportDiscovery.fileDependencies) {
22
+ if (!dependencies.has(changedFilePath))
23
+ continue;
24
+ ImportDiscovery.definitionCache.delete(file);
25
+ ImportDiscovery.fileBindingsCache.delete(file);
26
+ ImportDiscovery.fileDependencies.delete(file);
27
+ }
32
28
  }
33
- //console.log('Binding kind:', binding.kind, 'type:', binding.path.type);
34
- // Handle imports
35
- if (binding.kind === 'module' && t.isImportSpecifier(binding.path.node))
36
- return traceImport(binding, currentFileName, elementName, visitedFiles);
37
- // Handle local variables/constants
38
- if (binding.kind === 'const' || binding.kind === 'let' || binding.kind === 'var')
39
- return traceLocalVariable(binding, currentFileName, visitedFiles);
40
- return { type: 'unknown' };
41
- }
42
- function traceImport(binding, currentFileName, elementName, visitedFiles) {
43
- const importDeclaration = binding.path.parent;
44
- if (!t.isImportDeclaration(importDeclaration))
45
- return { type: 'unknown' };
46
- const importSource = importDeclaration.source.value;
47
- const currentDir = dirname(currentFileName);
48
- const resolvedPath = resolve(currentDir, importSource);
49
- //console.log('Tracing import from:', importSource);
50
- //console.log('Resolved to:', resolvedPath);
51
- // Use cached parsing
52
- const ast = getOrParseFile(resolvedPath);
53
- if (!ast)
54
- return { type: 'unknown' };
55
- let result = { type: 'unknown' };
56
- traverse(ast, {
57
- Program(programPath) {
58
- // First try to find a local binding (normal export)
59
- const localBinding = programPath.scope.getBinding(elementName);
60
- if (localBinding) {
61
- //console.log('Found local binding in imported file');
62
- result = traceElementDefinition(elementName, programPath.scope, resolvedPath, visitedFiles);
63
- return;
29
+ constructor() {
30
+ this.visitedFiles = new Set();
31
+ this.resolver = oxcResolver;
32
+ this.log = createLogger('import-discovery', debugMode.value);
33
+ this.fs = { existsSync, readFileSync, dirname };
34
+ }
35
+ /**
36
+ * Finds the definition of a JSX element in the given path.
37
+ */
38
+ findElementDefinition(path) {
39
+ this.visitedFiles.clear();
40
+ const filePath = getPathFilename(path);
41
+ const cacheKey = String(path.node.start);
42
+ const fileCache = ImportDiscovery.definitionCache.get(filePath);
43
+ if (fileCache) {
44
+ const cached = fileCache.get(cacheKey);
45
+ if (cached)
46
+ return cached;
47
+ }
48
+ if (!t.isJSXIdentifier(path.node.name))
49
+ return { type: 'unknown' };
50
+ const elementName = path.node.name.name;
51
+ if (!isComponent(elementName))
52
+ return { type: 'unknown' };
53
+ const currentFileName = getPathFilename(path);
54
+ const result = this.traceElementDefinition(elementName, path.scope, currentFileName);
55
+ // Store in file-specific cache
56
+ const definitionCache = ImportDiscovery.definitionCache.get(filePath)
57
+ ?? ImportDiscovery.definitionCache
58
+ .set(filePath, new Map())
59
+ .get(filePath);
60
+ definitionCache.set(cacheKey, result);
61
+ return result;
62
+ }
63
+ // Trace the element definition recursively
64
+ traceElementDefinition(elementName, scope, currentFileName) {
65
+ const traceKey = `${currentFileName}:${elementName}`;
66
+ // Prevent infinite recursion
67
+ if (this.visitedFiles.has(traceKey))
68
+ return { type: 'unknown' };
69
+ this.visitedFiles.add(traceKey);
70
+ // Use batched file analysis
71
+ const fileBindings = this.analyzeFileBindings(currentFileName);
72
+ // Check if we have this element in our batch analysis
73
+ if (fileBindings.has(elementName)) {
74
+ const definition = fileBindings.get(elementName);
75
+ // Resolve any lazy references
76
+ return this.resolveLazyDefinition(definition);
77
+ }
78
+ // Fallback to scope-based lookup for dynamic cases
79
+ const binding = scope.getBinding(elementName);
80
+ if (!binding)
81
+ return { type: 'unknown' };
82
+ // Use the fast analysis methods
83
+ const result = this.analyzeBindingFast(binding, currentFileName);
84
+ // Resolve any lazy references (imports, local references)
85
+ return this.resolveLazyDefinition(result);
86
+ }
87
+ // Analyze all relevant bindings in a file at once
88
+ analyzeFileBindings(filePath) {
89
+ const fileBinding = ImportDiscovery.fileBindingsCache.get(filePath);
90
+ if (fileBinding)
91
+ return fileBinding;
92
+ if (!this.fs.existsSync(filePath)) {
93
+ ImportDiscovery.fileBindingsCache.set(filePath, ImportDiscovery.EMPTY_BINDINGS);
94
+ return ImportDiscovery.EMPTY_BINDINGS;
95
+ }
96
+ const fileContent = this.fs.readFileSync(filePath, 'utf-8');
97
+ let ast;
98
+ try {
99
+ ast = babel.parseSync(fileContent, {
100
+ filename: filePath,
101
+ parserOpts: {
102
+ plugins: babelPlugins,
103
+ },
104
+ });
105
+ }
106
+ catch (error) {
107
+ // Failed to parse, cache empty result
108
+ ImportDiscovery.fileBindingsCache.set(filePath, ImportDiscovery.EMPTY_BINDINGS);
109
+ return ImportDiscovery.EMPTY_BINDINGS;
110
+ }
111
+ let programPath = undefined;
112
+ traverse(ast, { Program(path) { programPath = path; path.stop(); } });
113
+ const bindings = new Map();
114
+ // 1. Analyze all relevant local bindings at once
115
+ this.analyzeFileDeclarations(programPath, filePath, bindings);
116
+ // 2. Analyze all exports at once
117
+ this.analyzeFileExports(programPath, filePath, bindings);
118
+ const readonlyBindings = new Map(bindings);
119
+ ImportDiscovery.fileBindingsCache.set(filePath, readonlyBindings);
120
+ return readonlyBindings;
121
+ }
122
+ // Resolve lazy references in the definition
123
+ analyzeFileDeclarations(programPath, filePath, bindings) {
124
+ for (const [name, binding] of Object.entries(programPath.scope.bindings)) {
125
+ // Skip function/import bindings that are clearly not component-related
126
+ if (binding.kind === 'module' || binding.kind === 'hoisted') {
127
+ if (!isComponent(name))
128
+ continue;
64
129
  }
65
- // If no local binding found, check for re-exports
66
- //console.log('No local binding, checking for re-exports...');
67
- result = checkForReExports(programPath, elementName, resolvedPath, visitedFiles);
68
- },
69
- });
70
- return result;
71
- }
72
- function traceLocalVariable(binding, currentFileName, visitedFiles) {
73
- //console.log('Tracing local variable:', binding.kind, binding.path.type);
74
- // Check if it's a variable declarator (const/let/var)
75
- if (t.isVariableDeclarator(binding.path.node)) {
130
+ const definition = this.analyzeBindingFast(binding, filePath);
131
+ if (definition.type !== 'unknown')
132
+ bindings.set(name, definition);
133
+ }
134
+ }
135
+ // Fast binding analysis without deep traversal
136
+ analyzeBindingFast(binding, filePath) {
137
+ // Handle imports
138
+ if (binding.kind === 'module' && t.isImportSpecifier(binding.path.node))
139
+ return this.analyzeImportBinding(binding, filePath);
140
+ // Handle local variables
141
+ if (binding.kind === 'const' || binding.kind === 'let' || binding.kind === 'var')
142
+ return this.analyzeLocalBinding(binding, filePath);
143
+ return { type: 'unknown' };
144
+ }
145
+ // Analyze import without deep file traversal
146
+ analyzeImportBinding(binding, currentFileName) {
147
+ const importDeclaration = binding.path.parent;
148
+ if (!t.isImportDeclaration(importDeclaration))
149
+ return { type: 'unknown' };
150
+ const importSpecifier = binding.path.node;
151
+ if (!t.isImportSpecifier(importSpecifier))
152
+ return { type: 'unknown' };
153
+ const originalExportedName = t.isIdentifier(importSpecifier.imported)
154
+ ? importSpecifier.imported.name
155
+ : importSpecifier.imported.value;
156
+ const importSource = importDeclaration.source.value;
157
+ const currentDir = dirname(currentFileName);
158
+ const resolvedResult = this.resolver.sync(currentDir, importSource);
159
+ const resolvedPath = resolvedResult.path;
160
+ if (!resolvedPath)
161
+ return { type: 'unknown' };
162
+ // Instead of deep traversal, just mark as import and resolve lazily
163
+ return {
164
+ type: 'import',
165
+ source: importSource,
166
+ originalName: originalExportedName,
167
+ localName: binding.identifier.name,
168
+ // Store resolved path for later lookup
169
+ resolvedPath: resolvedPath,
170
+ };
171
+ }
172
+ // Analyze local binding without recursion
173
+ analyzeLocalBinding(binding, filePath) {
174
+ if (!t.isVariableDeclarator(binding.path.node))
175
+ return { type: 'local-variable' };
76
176
  const declarator = binding.path.node;
77
- // Check if it's assigned to a call expression
78
- if (declarator.init && t.isCallExpression(declarator.init)) {
79
- const callExpr = declarator.init;
80
- // Check if it's a toJSX call
81
- if (t.isIdentifier(callExpr.callee) && callExpr.callee.name === 'toJSX') {
177
+ if (!declarator.init)
178
+ return { type: 'local-variable' };
179
+ // Check for toComponent/toTag calls
180
+ if (t.isCallExpression(declarator.init)) {
181
+ if (this.isToComponentOrTagCall(declarator.init, binding.path.scope)) {
82
182
  return {
83
183
  type: 'custom-element',
84
- source: currentFileName,
85
- callExpression: callExpr,
184
+ source: filePath,
185
+ callExpression: declarator.init,
86
186
  };
87
187
  }
88
- // Could be assigned to another function call - trace that too
89
- //console.log('Local variable assigned to call expression:', callExpr.callee);
90
188
  }
91
- // Check if it's assigned to an identifier (another variable)
92
- if (declarator.init && t.isIdentifier(declarator.init)) {
93
- const assignedIdentifier = declarator.init.name;
94
- //console.log('Local variable assigned to identifier:', assignedIdentifier);
95
- // Recursively trace this identifier in the same scope
96
- return traceElementDefinition(assignedIdentifier, binding.path.scope, currentFileName, visitedFiles);
189
+ // For identifier assignments, store reference for later resolution
190
+ if (t.isIdentifier(declarator.init)) {
191
+ return {
192
+ type: 'local-variable',
193
+ source: filePath,
194
+ referencedName: declarator.init.name,
195
+ };
97
196
  }
197
+ return { type: 'local-variable' };
98
198
  }
99
- return { type: 'local-variable' };
100
- }
101
- function checkForReExports(programPath, elementName, currentFileName, visitedFiles) {
102
- let result = { type: 'unknown' };
103
- // Check all export declarations for re-exports
104
- programPath.traverse({
105
- ExportNamedDeclaration(exportPath) {
106
- const node = exportPath.node;
107
- if (!node.source || !node.specifiers)
108
- return; // Skip if no source or specifiers
109
- // Handle re-exports: export { X } from './file'
110
- //console.log('Found re-export from:', node.source.value);
111
- for (const specifier of node.specifiers) {
112
- if (!t.isExportSpecifier(specifier))
113
- continue; // Only handle export specifiers
114
- const exportedName = t.isIdentifier(specifier.exported)
115
- ? specifier.exported.name
116
- : specifier.exported.value;
117
- // Check if this re-export matches our element name
118
- if (exportedName !== elementName)
119
- continue;
120
- const originalName = specifier.local.name;
121
- //console.log(`Found re-export: ${ originalName } as ${ exportedName }`);
122
- // Resolve and trace the re-exported file
123
- const reExportSource = node.source.value;
124
- const currentDir = dirname(currentFileName);
125
- const resolvedPath = resolve(currentDir, reExportSource);
126
- if (!existsSync(resolvedPath))
127
- continue; // Skip if file doesn't exist
128
- //console.log('Tracing re-export to:', resolvedPath);
129
- result = traceReExport(originalName, resolvedPath, visitedFiles);
130
- // Stop traversing once we find the match
131
- return exportPath.stop();
132
- }
133
- },
134
- });
135
- return result;
136
- }
137
- function traceReExport(elementName, filePath, visitedFiles) {
138
- // Use cached parsing
139
- const ast = getOrParseFile(filePath);
140
- if (!ast)
141
- return { type: 'unknown' };
142
- let result = { type: 'unknown' };
143
- traverse(ast, {
144
- Program(programPath) {
145
- // Continue tracing in the re-exported file
146
- result = traceElementDefinition(elementName, programPath.scope, filePath, visitedFiles);
147
- },
148
- });
149
- return result;
150
- }
151
- // Helper function to get or parse a file with caching
152
- function getOrParseFile(filePath) {
153
- // Check cache first
154
- if (fileCache.has(filePath)) {
155
- //console.log('Using cached AST for:', filePath);
156
- return fileCache.get(filePath);
199
+ // Helper function to check if a call expression is a toComponent/toTag call
200
+ // even if the function has been renamed through imports
201
+ isToComponentOrTagCall(callExpr, scope) {
202
+ if (!t.isIdentifier(callExpr.callee))
203
+ return false;
204
+ const functionName = callExpr.callee.name;
205
+ // Check direct names first (fast path)
206
+ if (functionName === 'toComponent' || functionName === 'toTag')
207
+ return true;
208
+ // Check if this identifier is bound to an import that originally was toComponent/toTag
209
+ const binding = scope.getBinding(functionName);
210
+ if (!binding || binding.kind !== 'module')
211
+ return false;
212
+ if (!t.isImportSpecifier(binding.path.node))
213
+ return false;
214
+ const importSpecifier = binding.path.node;
215
+ const originalImportedName = t.isIdentifier(importSpecifier.imported)
216
+ ? importSpecifier.imported.name
217
+ : importSpecifier.imported.value;
218
+ // Check if the original imported name was toComponent or toTag
219
+ const isOriginallyToComponentOrTag = originalImportedName === 'toComponent'
220
+ || originalImportedName === 'toTag';
221
+ return isOriginallyToComponentOrTag;
157
222
  }
158
- // File not in cache, parse it
159
- if (!existsSync(filePath))
160
- return;
161
- const fileContent = readFileSync(filePath, 'utf-8');
162
- try {
163
- const ast = babel.parseSync(fileContent, {
164
- filename: filePath,
165
- parserOpts: {
166
- plugins: ['jsx', 'typescript'],
167
- },
168
- });
169
- if (ast) {
170
- //console.log('Parsed and cached:', filePath);
171
- fileCache.set(filePath, ast);
172
- return ast;
223
+ // Analyze all exports in one pass
224
+ analyzeFileExports(programPath, filePath, bindings) {
225
+ for (const statement of programPath.node.body) {
226
+ // Handle named exports: export { X } from './file' or export { X }
227
+ if (t.isExportNamedDeclaration(statement)) {
228
+ for (const specifier of statement.specifiers) {
229
+ if (!t.isExportSpecifier(specifier))
230
+ continue;
231
+ const exportedName = t.isIdentifier(specifier.exported)
232
+ ? specifier.exported.name
233
+ : specifier.exported.value;
234
+ const localName = specifier.local.name;
235
+ if (!isComponent(exportedName))
236
+ continue;
237
+ // For re-exports with source
238
+ if (statement.source) {
239
+ const definition = {
240
+ type: 'import',
241
+ source: statement.source.value,
242
+ originalName: localName,
243
+ localName: exportedName,
244
+ };
245
+ bindings.set(exportedName, definition);
246
+ }
247
+ else {
248
+ // For local exports, reference the local binding
249
+ const definition = {
250
+ type: 'local-variable',
251
+ source: filePath,
252
+ referencedName: localName,
253
+ localName: exportedName,
254
+ };
255
+ bindings.set(exportedName, definition);
256
+ }
257
+ }
258
+ }
259
+ // Handle wildcard exports: export * from './file'
260
+ else if (t.isExportAllDeclaration(statement) && statement.source) {
261
+ // For wildcard exports, we need to mark this as a wildcard re-export
262
+ // The actual resolution will happen in resolveLazyDefinition
263
+ const definition = {
264
+ type: 'wildcard-export',
265
+ source: statement.source.value,
266
+ };
267
+ // Store with a special key to indicate wildcard export
268
+ bindings.set('*', definition);
269
+ }
173
270
  }
174
271
  }
175
- catch (error) {
176
- console.log('Failed to parse file:', filePath, error);
272
+ // Resolve lazy definitions (imports, references)
273
+ resolveLazyDefinition(definition) {
274
+ if (definition.type === 'import' && definition.resolvedPath && definition.originalName) {
275
+ if (definition.source) {
276
+ const currentFile = definition.source;
277
+ const dependsOn = definition.resolvedPath;
278
+ let fileDependencies = ImportDiscovery.fileDependencies.get(currentFile);
279
+ if (!fileDependencies) {
280
+ fileDependencies = new Set();
281
+ ImportDiscovery.fileDependencies.set(currentFile, fileDependencies);
282
+ }
283
+ fileDependencies.add(dependsOn);
284
+ }
285
+ // Recursively analyze the imported file
286
+ const importedBindings = this.analyzeFileBindings(definition.resolvedPath);
287
+ const binding = importedBindings.get(definition.originalName);
288
+ if (binding) // Recursively resolve the found definition
289
+ return this.resolveLazyDefinition(binding);
290
+ // If specific export not found, check for wildcard exports
291
+ const wildcardExport = importedBindings.get('*');
292
+ if (wildcardExport && wildcardExport.type === 'wildcard-export') {
293
+ // Resolve the wildcard export by looking in the target file
294
+ const currentDir = this.fs.dirname(definition.resolvedPath);
295
+ const resolvedResult = this.resolver.sync(currentDir, wildcardExport.source);
296
+ const resolvedPath = resolvedResult.path;
297
+ if (resolvedPath) {
298
+ // Create a new import definition for the wildcard target
299
+ const wildcardTargetDefinition = {
300
+ type: 'import',
301
+ source: wildcardExport.source,
302
+ originalName: definition.originalName,
303
+ localName: definition.localName,
304
+ resolvedPath: resolvedPath,
305
+ };
306
+ return this.resolveLazyDefinition(wildcardTargetDefinition);
307
+ }
308
+ }
309
+ }
310
+ if (definition.type === 'local-variable' && definition.referencedName && definition.source) {
311
+ // Resolve local references
312
+ const fileBindings = this.analyzeFileBindings(definition.source);
313
+ const binding = fileBindings.get(definition.referencedName);
314
+ if (binding)
315
+ return this.resolveLazyDefinition(binding);
316
+ }
317
+ return definition;
177
318
  }
178
319
  }
320
+ let discovery;
321
+ export const findElementDefinition = (...args) => {
322
+ discovery ??= new ImportDiscovery();
323
+ return discovery.findElementDefinition(...args);
324
+ };
179
325
  //# sourceMappingURL=import-discovery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"import-discovery.js","sourceRoot":"","sources":["../../src/compiler/import-discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"import-discovery.js","sourceRoot":"","sources":["../../src/compiler/import-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AAErC,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,WAAW,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAwBlD,MAAM,OAAO,eAAe;aAEX,oBAAe,GAAkD,IAAI,GAAG,EAAE,AAA3D,CAA4D;aAC3E,sBAAiB,GAAwD,IAAI,GAAG,EAAE,AAAjE,CAAkE;aACnF,qBAAgB,GAA8B,IAAI,GAAG,EAAE,AAAvC,CAAwC;aACxD,mBAAc,GAA8C,IAAI,GAAG,EAAE,AAAvD,CAAwD;IAEtF,MAAM,CAAC,8BAA8B,CAAC,eAAuB;QAC5D,gCAAgC;QAChC,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACxD,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC1D,eAAe,CAAC,gBAAgB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAEzD,uEAAuE;QACvE,KAAK,MAAM,CAAE,IAAI,EAAE,YAAY,CAAE,IAAI,eAAe,CAAC,gBAAgB,EAAE,CAAC;YACvE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC;gBACrC,SAAS;YAEV,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC7C,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/C,eAAe,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;IACF,CAAC;IAOD;QALmB,iBAAY,GAAgB,IAAI,GAAG,EAAE,CAAC;QAMxD,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;QAC5B,IAAI,CAAC,GAAG,GAAQ,YAAY,CAAC,kBAAkB,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QAClE,IAAI,CAAC,EAAE,GAAS,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,qBAAqB,CACpB,IAAmC;QAEnC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAE1B,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEzC,MAAM,SAAS,GAAG,eAAe,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,SAAS,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,MAAM;gBACT,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACrC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAE5B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACxC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;YAC5B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAE5B,MAAM,eAAe,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QAErF,+BAA+B;QAC/B,MAAM,eAAe,GAAG,eAAe,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;eACjE,eAAe,CAAC,eAAe;iBAChC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC;iBACxB,GAAG,CAAC,QAAQ,CAAE,CAAC;QAElB,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEtC,OAAO,MAAM,CAAC;IACf,CAAC;IAED,2CAA2C;IACjC,sBAAsB,CAC/B,WAAmB,EACnB,KAAY,EACZ,eAAuB;QAEvB,MAAM,QAAQ,GAAG,GAAI,eAAgB,IAAK,WAAY,EAAE,CAAC;QAEzD,6BAA6B;QAC7B,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAE5B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEhC,4BAA4B;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;QAE/D,sDAAsD;QACtD,IAAI,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC;YAElD,8BAA8B;YAC9B,OAAO,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAC/C,CAAC;QAED,mDAAmD;QACnD,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO;YACX,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAE5B,gCAAgC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAEjE,0DAA0D;QAC1D,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,kDAAkD;IACxC,mBAAmB,CAAC,QAAgB;QAC7C,MAAM,WAAW,GAAG,eAAe,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpE,IAAI,WAAW;YACd,OAAO,WAAW,CAAC;QAEpB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,eAAe,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC;YAEhF,OAAO,eAAe,CAAC,cAAc,CAAC;QACvC,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,GAAW,CAAC;QAEhB,IAAI,CAAC;YACJ,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE;gBAClC,QAAQ,EAAI,QAAQ;gBACpB,UAAU,EAAE;oBACX,OAAO,EAAE,YAAY;iBACrB;aACD,CAAE,CAAC;QACL,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACd,sCAAsC;YACtC,eAAe,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC;YAEhF,OAAO,eAAe,CAAC,cAAc,CAAC;QACvC,CAAC;QAED,IAAI,WAAW,GAAwC,SAAgB,CAAC;QACxE,QAAQ,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,WAAW,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAEtE,MAAM,QAAQ,GAAmC,IAAI,GAAG,EAAE,CAAC;QAE3D,iDAAiD;QACjD,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE9D,iCAAiC;QACjC,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEzD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAA2C,CAAC;QACrF,eAAe,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAElE,OAAO,gBAAgB,CAAC;IACzB,CAAC;IAED,4CAA4C;IAClC,uBAAuB,CAChC,WAAgD,EAChD,QAAgB,EAChB,QAAwC;QAExC,KAAK,MAAM,CAAE,IAAI,EAAE,OAAO,CAAE,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5E,uEAAuE;YACvE,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC7D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;oBACrB,SAAS;YACX,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC9D,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS;gBAChC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACjC,CAAC;IACF,CAAC;IAED,+CAA+C;IACrC,kBAAkB,CAC3B,OAAgB,EAChB,QAAgB;QAEhB,iBAAiB;QACjB,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YACtE,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAErD,yBAAyB;QACzB,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK;YAC/E,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAEpD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC5B,CAAC;IAED,6CAA6C;IACnC,oBAAoB,CAAC,OAAgB,EAAE,eAAuB;QACvE,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9C,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,iBAAiB,CAAC;YAC5C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAE5B,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1C,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC;YACxC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAE5B,MAAM,oBAAoB,GAAG,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC;YACpE,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI;YAC/B,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC;QAElC,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC;QACpD,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;QAE5C,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC;QAEzC,IAAI,CAAC,YAAY;YAChB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAE5B,oEAAoE;QACpE,OAAO;YACN,IAAI,EAAU,QAAQ;YACtB,MAAM,EAAQ,YAAY;YAC1B,YAAY,EAAE,oBAAoB;YAClC,SAAS,EAAK,OAAO,CAAC,UAAU,CAAC,IAAI;YACrC,uCAAuC;YACvC,YAAY,EAAE,YAAY;SAC1B,CAAC;IACH,CAAC;IAED,0CAA0C;IAChC,mBAAmB,CAAC,OAAgB,EAAE,QAAgB;QAC/D,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7C,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;QAGnC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,IAAI;YACnB,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;QAGnC,oCAAoC;QACpC,IAAI,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtE,OAAO;oBACN,IAAI,EAAY,gBAAgB;oBAChC,MAAM,EAAU,QAAQ;oBACxB,cAAc,EAAE,UAAU,CAAC,IAAI;iBAC/B,CAAC;YACH,CAAC;QACF,CAAC;QAED,mEAAmE;QACnE,IAAI,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,OAAO;gBACN,IAAI,EAAY,gBAAgB;gBAChC,MAAM,EAAU,QAAQ;gBACxB,cAAc,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI;aACpC,CAAC;QACH,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;IACnC,CAAC;IAED,4EAA4E;IAC5E,wDAAwD;IAC9C,sBAAsB,CAC/B,QAA0B,EAC1B,KAAY;QAEZ,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC;YACnC,OAAO,KAAK,CAAC;QAEd,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QAE1C,uCAAuC;QACvC,IAAI,YAAY,KAAK,aAAa,IAAI,YAAY,KAAK,OAAO;YAC7D,OAAO,IAAI,CAAC;QAEb,uFAAuF;QACvF,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ;YACxC,OAAO,KAAK,CAAC;QAEd,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1C,OAAO,KAAK,CAAC;QAEd,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1C,MAAM,oBAAoB,GAAG,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC;YACpE,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI;YAC/B,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC;QAElC,+DAA+D;QAC/D,MAAM,4BAA4B,GAChC,oBAAoB,KAAK,aAAa;eACpC,oBAAoB,KAAK,OAAO,CAAC;QAErC,OAAO,4BAA4B,CAAC;IACrC,CAAC;IAED,kCAAkC;IACxB,kBAAkB,CAC3B,WAAgD,EAChD,QAAgB,EAChB,QAAwC;QAExC,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/C,mEAAmE;YACnE,IAAI,CAAC,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3C,KAAK,MAAM,SAAS,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;oBAC9C,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC;wBAClC,SAAS;oBAEV,MAAM,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC;wBACtD,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI;wBACzB,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAE5B,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;oBAEvC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;wBAC7B,SAAS;oBAEV,6BAA6B;oBAC7B,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;wBACtB,MAAM,UAAU,GAAG;4BAClB,IAAI,EAAU,QAAiB;4BAC/B,MAAM,EAAQ,SAAS,CAAC,MAAM,CAAC,KAAK;4BACpC,YAAY,EAAE,SAAS;4BACvB,SAAS,EAAK,YAAY;yBAC1B,CAAC;wBACF,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;oBACxC,CAAC;yBACI,CAAC;wBACL,iDAAiD;wBACjD,MAAM,UAAU,GAAG;4BAClB,IAAI,EAAY,gBAAyB;4BACzC,MAAM,EAAU,QAAQ;4BACxB,cAAc,EAAE,SAAS;4BACzB,SAAS,EAAO,YAAY;yBAC5B,CAAC;wBACF,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;oBACxC,CAAC;gBACF,CAAC;YACF,CAAC;YACD,kDAAkD;iBAC7C,IAAI,CAAC,CAAC,sBAAsB,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;gBAClE,qEAAqE;gBACrE,6DAA6D;gBAC7D,MAAM,UAAU,GAAG;oBAClB,IAAI,EAAI,iBAA0B;oBAClC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK;iBAC9B,CAAC;gBACF,uDAAuD;gBACvD,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAC/B,CAAC;QACF,CAAC;IACF,CAAC;IAED,iDAAiD;IACvC,qBAAqB,CAAC,UAA6B;QAC5D,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,IAAI,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;YACxF,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBACvB,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC;gBACtC,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC;gBAE1C,IAAI,gBAAgB,GAAG,eAAe,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACzE,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACvB,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;oBACrC,eAAe,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;gBACrE,CAAC;gBAED,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACjC,CAAC;YAED,wCAAwC;YACxC,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAC3E,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAE9D,IAAI,OAAO,EAAE,2CAA2C;gBACvD,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAE5C,2DAA2D;YAC3D,MAAM,cAAc,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,cAAc,IAAI,cAAc,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBACjE,4DAA4D;gBAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;gBAC5D,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,MAAO,CAAC,CAAC;gBAC9E,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC;gBAEzC,IAAI,YAAY,EAAE,CAAC;oBAClB,yDAAyD;oBACzD,MAAM,wBAAwB,GAAsB;wBACnD,IAAI,EAAU,QAAQ;wBACtB,MAAM,EAAQ,cAAc,CAAC,MAAM;wBACnC,YAAY,EAAE,UAAU,CAAC,YAAY;wBACrC,SAAS,EAAK,UAAU,CAAC,SAAS;wBAClC,YAAY,EAAE,YAAY;qBAC1B,CAAC;oBAEF,OAAO,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,CAAC;gBAC7D,CAAC;YACF,CAAC;QACF,CAAC;QAED,IAAI,UAAU,CAAC,IAAI,KAAK,gBAAgB,IAAI,UAAU,CAAC,cAAc,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YAC5F,2BAA2B;YAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACjE,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAE5D,IAAI,OAAO;gBACV,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,UAAU,CAAC;IACnB,CAAC;;AAKF,IAAI,SAA0B,CAAC;AAC/B,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACpC,GAAG,IAA0D,EACN,EAAE;IACzD,SAAS,KAAK,IAAI,eAAe,EAAE,CAAC;IAEpC,OAAO,SAAS,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,CAAC;AACjD,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { PluginPass } from '@babel/core';
2
2
  import type { VisitNodeFunction } from '@babel/traverse';
3
- import { type Program } from '@babel/types';
3
+ import type { Program } from '@babel/types';
4
4
  export declare const preprocess: VisitNodeFunction<PluginPass, Program>;
5
5
  //# sourceMappingURL=preprocess.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"preprocess.d.ts","sourceRoot":"","sources":["../../src/compiler/preprocess.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAiC,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAmC3E,eAAO,MAAM,UAAU,EAAE,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAE7D,CAAC"}
1
+ {"version":3,"file":"preprocess.d.ts","sourceRoot":"","sources":["../../src/compiler/preprocess.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAY,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAc,OAAO,EAAE,MAAM,cAAc,CAAC;AAqCxD,eAAO,MAAM,UAAU,EAAE,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAE7D,CAAC"}
@@ -1,8 +1,9 @@
1
1
  import { isJSXElement, isJSXIdentifier } from '@babel/types';
2
2
  import { isValidHTMLNesting } from 'validate-html-nesting';
3
3
  import { isComponent } from './compiler-utils.js';
4
- // From https://github.com/MananTank/babel-plugin-validate-jsx-nesting/blob/main/src/index.js
5
- const JSXValidator = {
4
+ const preprocessVisitors = {
5
+ // From https://github.com/MananTank/babel-plugin-validate-jsx-nesting/blob/main/src/index.js
6
+ // Validates JSX nesting based on HTML5 rules.
6
7
  JSXElement(path) {
7
8
  const elName = path.node.openingElement.name;
8
9
  const parent = path.parent;
@@ -22,7 +23,7 @@ const JSXValidator = {
22
23
  }
23
24
  },
24
25
  };
25
- export const preprocess = (path, state) => {
26
- path.traverse(JSXValidator);
26
+ export const preprocess = (path) => {
27
+ path.traverse(preprocessVisitors);
27
28
  };
28
29
  //# sourceMappingURL=preprocess.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"preprocess.js","sourceRoot":"","sources":["../../src/compiler/preprocess.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAgB,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,6FAA6F;AAC7F,MAAM,YAAY,GAAG;IACpB,UAAU,CAAC,IAAS;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;YACpD,OAAO;QAER,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC;QAC9B,IAAI,WAAW,CAAC,SAAS,CAAC;YACzB,OAAO;QAER,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC;QAChD,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;YACjC,OAAO;QAER,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;gBACrD,MAAM,IAAI,CAAC,mBAAmB,CAC9B,iBAAkB,SAAU,yBAA0B,eAAgB,GAAG,CACxE,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC;CACD,CAAC;AAGF,MAAM,CAAC,MAAM,UAAU,GAA2C,CAAC,IAAI,EAAE,KAAK,EAAQ,EAAE;IACvF,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC7B,CAAC,CAAC"}
1
+ {"version":3,"file":"preprocess.js","sourceRoot":"","sources":["../../src/compiler/preprocess.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,MAAM,kBAAkB,GAAG;IAC1B,6FAA6F;IAC7F,8CAA8C;IAC9C,UAAU,CAAC,IAA0B;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;YACpD,OAAO;QAER,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC;QAC9B,IAAI,WAAW,CAAC,SAAS,CAAC;YACzB,OAAO;QAER,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC;QAChD,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;YACjC,OAAO;QAER,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;gBACrD,MAAM,IAAI,CAAC,mBAAmB,CAC9B,iBAAkB,SAAU,yBAA0B,eAAgB,GAAG,CACxE,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC;CACD,CAAC;AAGF,MAAM,CAAC,MAAM,UAAU,GAA2C,CAAC,IAAI,EAAQ,EAAE;IAChF,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AACnC,CAAC,CAAC"}
@@ -33,14 +33,14 @@ export class TemplateTranspiler extends JSXTranspiler {
33
33
  return;
34
34
  }
35
35
  context.tagName = getJSXElementName(context.path.node);
36
- if (isJSXCustomElementComponent(context.tagName)) {
36
+ if (isJSXCustomElementComponent(context.path)) {
37
37
  this.openingTag(context);
38
38
  this.attributes(context);
39
39
  this.children(context);
40
40
  this.closingTag(context);
41
41
  return;
42
42
  }
43
- if (isJSXFunctionElementComponent(context.tagName)) {
43
+ if (isJSXFunctionElementComponent(context.path)) {
44
44
  // Process attributes and children into a props object
45
45
  if (!context.isInitialElement)
46
46
  return this.functionalComponent(context);
@@ -54,7 +54,7 @@ export class TemplateTranspiler extends JSXTranspiler {
54
54
  this.closingTag(context);
55
55
  }
56
56
  openingTag(context) {
57
- if (isJSXCustomElementComponent(context.tagName)) {
57
+ if (isJSXCustomElementComponent(context.path)) {
58
58
  const literalIdentifier = Ensure.componentLiteral(context.tagName, COMPONENT_LITERAL_PREFIX + context.tagName, context.path, context.program);
59
59
  context.literalName = literalIdentifier.name;
60
60
  context.builder.addText('<');
@@ -283,7 +283,7 @@ export class CompiledTranspiler extends JSXTranspiler {
283
283
  return;
284
284
  }
285
285
  context.tagName = getJSXElementName(context.path.node);
286
- if (isJSXFunctionElementComponent(context.tagName)) {
286
+ if (isJSXFunctionElementComponent(context.path)) {
287
287
  // Process attributes and children into a props object
288
288
  if (!context.isInitialElement)
289
289
  return this.functionalComponent(context);