@litsx/babel-preset-litsx 0.8.0 → 0.8.2
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.
- package/dist/index.cjs +1 -1
- package/dist/internal/transform-litsx-components.cjs +65 -3
- package/dist/internal/transform-litsx-components.cjs.map +1 -1
- package/dist/internal/transform-litsx-hooks.cjs +35 -0
- package/dist/internal/transform-litsx-hooks.cjs.map +1 -1
- package/dist/internal/transform-litsx-renderer-props.cjs +1 -1
- package/dist/pipeline.cjs +2 -2
- package/dist/pipeline.cjs.map +1 -1
- package/dist/shared/{transform-litsx-element-candidates-JMFlPFXK.cjs → transform-litsx-element-candidates-D0uvqG4Y.cjs} +86 -2
- package/dist/shared/transform-litsx-element-candidates-D0uvqG4Y.cjs.map +1 -0
- package/package.json +5 -5
- package/src/internal/transform-litsx-element-candidates.js +85 -1
- package/src/internal/transform-litsx-hooks.js +35 -0
- package/src/internal/transform-litsx-param-rewrites.js +55 -1
- package/src/internal/transform-litsx-render-body.js +9 -1
- package/src/pipeline.js +1 -1
- package/dist/shared/transform-litsx-element-candidates-JMFlPFXK.cjs.map +0 -1
|
@@ -81,6 +81,42 @@ function createThisMemberExpression(propName) {
|
|
|
81
81
|
return t.memberExpression(t.thisExpression(), t.identifier(propName));
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
+
function createPropsObjectExpression(bindingInfo, propertyMap = new Map()) {
|
|
85
|
+
if (
|
|
86
|
+
bindingInfo &&
|
|
87
|
+
typeof bindingInfo !== "object" &&
|
|
88
|
+
bindingInfo !== "props"
|
|
89
|
+
) {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
const propNames = new Set([
|
|
94
|
+
...(bindingInfo && typeof bindingInfo === "object" && bindingInfo.kind === "alias"
|
|
95
|
+
? Array.from(bindingInfo.properties?.keys?.() || [])
|
|
96
|
+
: []),
|
|
97
|
+
...Array.from(propertyMap.keys?.() || []),
|
|
98
|
+
]);
|
|
99
|
+
const properties = Array.from(propNames)
|
|
100
|
+
.filter((propName) => typeof propName === "string" && propName.length > 0)
|
|
101
|
+
.sort()
|
|
102
|
+
.map((propName) =>
|
|
103
|
+
t.objectProperty(
|
|
104
|
+
t.isValidIdentifier(propName) ? t.identifier(propName) : t.stringLiteral(propName),
|
|
105
|
+
createThisMemberExpression(propName)
|
|
106
|
+
)
|
|
107
|
+
);
|
|
108
|
+
|
|
109
|
+
return t.objectExpression(properties);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
function isObjectDestructuringInitializer(refPath) {
|
|
113
|
+
return (
|
|
114
|
+
refPath.parentPath?.isVariableDeclarator() &&
|
|
115
|
+
refPath.parentKey === "init" &&
|
|
116
|
+
t.isObjectPattern(refPath.parentPath.node.id)
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
|
|
84
120
|
export function transformJSXExpressions(jsxPath, bindings, state = null) {
|
|
85
121
|
const localNames = Array.from(bindings.keys());
|
|
86
122
|
|
|
@@ -218,10 +254,20 @@ export function replaceParamReferences(functionPath, bindings, propertyMap = new
|
|
|
218
254
|
refPath.parentPath.isObjectProperty({ shorthand: true }) &&
|
|
219
255
|
refPath.parentKey === "value"
|
|
220
256
|
) {
|
|
257
|
+
const propsObject = createPropsObjectExpression(bindingInfo, propertyMap);
|
|
258
|
+
if (propsObject) {
|
|
259
|
+
refPath.parentPath.node.shorthand = false;
|
|
260
|
+
refPath.replaceWith(propsObject);
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
221
263
|
return;
|
|
222
264
|
}
|
|
223
265
|
|
|
224
|
-
refPath.replaceWith(
|
|
266
|
+
refPath.replaceWith(
|
|
267
|
+
isObjectDestructuringInitializer(refPath)
|
|
268
|
+
? t.thisExpression()
|
|
269
|
+
: createPropsObjectExpression(bindingInfo, propertyMap) ?? t.thisExpression()
|
|
270
|
+
);
|
|
225
271
|
return;
|
|
226
272
|
}
|
|
227
273
|
|
|
@@ -303,6 +349,14 @@ export function replaceParamReferences(functionPath, bindings, propertyMap = new
|
|
|
303
349
|
}
|
|
304
350
|
}
|
|
305
351
|
|
|
352
|
+
if (localName === "props") {
|
|
353
|
+
const propsObject = createPropsObjectExpression(bindingInfo, propertyMap);
|
|
354
|
+
if (propsObject) {
|
|
355
|
+
refPath.replaceWith(propsObject);
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
|
|
306
360
|
refPath.replaceWith(getReplacementForProp(targetProp || localName, refPath));
|
|
307
361
|
});
|
|
308
362
|
});
|
|
@@ -60,12 +60,20 @@ function throwFirstImplicitChildrenProjectionIssue(functionPath) {
|
|
|
60
60
|
throw functionPath.buildCodeFrameError(issue.message);
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
+
function isRenderableJsx(node) {
|
|
64
|
+
return t.isJSXElement(node) || t.isJSXFragment(node);
|
|
65
|
+
}
|
|
66
|
+
|
|
63
67
|
function collectReturnStatement(functionPath, bindings, state) {
|
|
64
68
|
let returnStatement = null;
|
|
65
69
|
|
|
66
70
|
functionPath.traverse({
|
|
67
71
|
ReturnStatement(returnPath) {
|
|
68
|
-
if (
|
|
72
|
+
if (returnPath.getFunctionParent() !== functionPath) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
if (isRenderableJsx(returnPath.node.argument)) {
|
|
69
77
|
returnStatement = returnPath.node;
|
|
70
78
|
transformJSXRendererCalls(returnPath, bindings, state);
|
|
71
79
|
transformJSXExpressions(returnPath, bindings, state);
|
package/src/pipeline.js
CHANGED
|
@@ -14,7 +14,7 @@ const NATIVE_TRANSFORM_OPTION_KEYS = [
|
|
|
14
14
|
"__litsxCompilationSession",
|
|
15
15
|
];
|
|
16
16
|
|
|
17
|
-
const HOOK_FEATURE_PATTERN = /\b(?:useOnConnect|useAfterUpdate|useOnCommit|useMemoValue|useStableCallback|useEvent|useEmit|usePrevious|useReducedState|useState|useControlledState|useAsyncState|useOptimistic|useExpose|useExternalStore|useHost|useHostContent|useSlot|useTextContent|useTransition|useDeferredValue|useStyle|useRef|useCallbackRef)\b/;
|
|
17
|
+
const HOOK_FEATURE_PATTERN = /\b(?:useOnConnect|useAfterUpdate|useOnCommit|useMemoValue|useStableCallback|useEvent|useEmit|usePrevious|useReducedState|useState|useControlledState|useAsyncState|useOptimistic|useExpose|useExternalStore|useHost|useHostContent|useSlot|useTextContent|useTransition|useDeferredValue|useStyle|useRef|useCallbackRef|useStableId)\b/;
|
|
18
18
|
const REF_FEATURE_PATTERN = /\buseRef\b|\bref\s*=/;
|
|
19
19
|
const SCOPED_ELEMENTS_PATTERN = /<\s*(?:[A-Z][\w.]*(?=[\s/>])|[a-z][\w]*-[\w-]*(?=[\s/>]))/;
|
|
20
20
|
const LIGHT_DOM_PATTERN = /\^lightDom\b|static\s+lightDom\s*=\s*true\b/;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transform-litsx-element-candidates-JMFlPFXK.cjs","sources":["../../src/internal/transform-litsx-element-candidates.js"],"sourcesContent":["import helperPluginUtils from \"@babel/helper-plugin-utils\";\nimport babelTraverse from \"@babel/traverse\";\nimport jsxSyntaxPlugin from \"@babel/plugin-syntax-jsx\";\nimport parser from \"@litsx/babel-parser\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { normalizeFilePath } from \"@litsx/typescript-session\";\nimport { ensureTypescriptModule } from \"./transform-litsx-properties.js\";\n\nconst { declare } = helperPluginUtils;\nconst traverse = babelTraverse.default || babelTraverse;\nconst IMPORT_RESOLUTION_EXTENSIONS = [\n \".litsx\",\n \".litsx.jsx\",\n \".jsx\",\n \".js\",\n \".tsx\",\n \".ts\",\n];\nconst DEFAULT_MODULE_RESOLUTION_OPTIONS = {\n moduleResolution: 100,\n allowJs: true,\n checkJs: false,\n jsx: 1,\n target: 99,\n module: 99,\n esModuleInterop: true,\n allowSyntheticDefaultImports: true,\n};\n\nlet t;\n\nexport function setElementCandidatesBabelTypes(nextTypes) {\n t = nextTypes;\n}\n\nfunction isInsideFunctionOrClass(path) {\n return path.findParent(\n (p) =>\n p.isFunctionDeclaration() ||\n p.isFunctionExpression() ||\n p.isArrowFunctionExpression() ||\n p.isClassDeclaration()\n );\n}\n\nfunction isRelativeSpecifier(value) {\n return typeof value === \"string\" && (\n value.startsWith(\"./\") ||\n value.startsWith(\"../\") ||\n value.startsWith(\"/\")\n );\n}\n\nfunction createEmptyCandidateResult() {\n return {\n localCandidates: new Set(),\n importedCandidates: new Map(),\n };\n}\n\nfunction cloneCandidateResult(result) {\n return {\n localCandidates: new Set(result?.localCandidates || []),\n importedCandidates: new Map(result?.importedCandidates || []),\n };\n}\n\nfunction mergeCandidateResults(target, source) {\n source.localCandidates.forEach((candidate) => target.localCandidates.add(candidate));\n source.importedCandidates.forEach((candidate, key) => {\n if (!target.importedCandidates.has(key)) {\n target.importedCandidates.set(key, candidate);\n }\n });\n}\n\nfunction toImportRecordKey(record) {\n return `${record.sourceFile}:${record.importedName}:${record.tagName}`;\n}\n\nfunction toRelativeModuleSpecifier(fromFilename, targetFilename) {\n const fromDir = path.dirname(fromFilename);\n let relativePath = normalizeFilePath(path.relative(fromDir, targetFilename));\n\n if (!relativePath.startsWith(\".\") && !relativePath.startsWith(\"/\")) {\n relativePath = `./${relativePath}`;\n }\n\n return relativePath;\n}\n\nfunction hasSupportedExtension(filePath) {\n return IMPORT_RESOLUTION_EXTENSIONS.some((extension) => filePath.endsWith(extension));\n}\n\nfunction resolveImportSource(fromFilename, sourceValue, context) {\n const cacheKey = `${normalizeFilePath(fromFilename)}::${sourceValue}`;\n if (context.resolvedImportCache.has(cacheKey)) {\n return context.resolvedImportCache.get(cacheKey);\n }\n\n const existingFile = (candidatePath) => {\n try {\n return fs.existsSync(candidatePath) && fs.statSync(candidatePath).isFile();\n } catch {\n return false;\n }\n };\n\n const resolveWithExtensions = (basePath) => {\n const normalizedBasePath = normalizeFilePath(basePath);\n const candidates = [];\n\n if (hasSupportedExtension(normalizedBasePath)) {\n candidates.push(normalizedBasePath);\n } else {\n IMPORT_RESOLUTION_EXTENSIONS.forEach((extension) => {\n candidates.push(`${normalizedBasePath}${extension}`);\n });\n IMPORT_RESOLUTION_EXTENSIONS.forEach((extension) => {\n candidates.push(normalizeFilePath(path.join(normalizedBasePath, `index${extension}`)));\n });\n }\n\n return candidates.find(existingFile) || null;\n };\n\n const resolvePathAlias = () => {\n const compilerOptions = context.getCompilerOptions?.(fromFilename) || {};\n const baseUrl = compilerOptions.baseUrl\n ? normalizeFilePath(\n path.isAbsolute(compilerOptions.baseUrl)\n ? compilerOptions.baseUrl\n : path.resolve(path.dirname(fromFilename), compilerOptions.baseUrl)\n )\n : normalizeFilePath(path.dirname(fromFilename));\n const pathMappings = compilerOptions.paths || {};\n\n for (const [pattern, substitutions] of Object.entries(pathMappings)) {\n const starIndex = pattern.indexOf(\"*\");\n const isStarPattern = starIndex !== -1;\n const prefix = isStarPattern ? pattern.slice(0, starIndex) : pattern;\n const suffix = isStarPattern ? pattern.slice(starIndex + 1) : \"\";\n\n if (isStarPattern) {\n if (!sourceValue.startsWith(prefix) || !sourceValue.endsWith(suffix)) {\n continue;\n }\n } else if (sourceValue !== pattern) {\n continue;\n }\n\n const wildcardValue = isStarPattern\n ? sourceValue.slice(prefix.length, sourceValue.length - suffix.length)\n : \"\";\n\n for (const substitution of substitutions || []) {\n const substituted = isStarPattern\n ? substitution.replace(\"*\", wildcardValue)\n : substitution;\n const candidateBase = path.isAbsolute(substituted)\n ? substituted\n : path.join(baseUrl, substituted);\n const resolvedPath = resolveWithExtensions(candidateBase);\n if (resolvedPath) {\n return resolvedPath;\n }\n }\n }\n\n return null;\n };\n\n let resolved = null;\n if (fromFilename && isRelativeSpecifier(sourceValue)) {\n resolved = resolveWithExtensions(\n path.resolve(path.dirname(fromFilename), sourceValue)\n );\n } else if (fromFilename) {\n resolved = resolvePathAlias();\n if (!resolved) {\n const ts = ensureTypescriptModule();\n const compilerOptions = context.getCompilerOptions?.(fromFilename) || DEFAULT_MODULE_RESOLUTION_OPTIONS;\n const moduleResolutionHost = context.getModuleResolutionHost?.(fromFilename) || ts.sys;\n try {\n const resolution = ts.resolveModuleName(\n sourceValue,\n normalizeFilePath(fromFilename),\n compilerOptions,\n moduleResolutionHost\n );\n const resolvedFileName = resolution?.resolvedModule?.resolvedFileName;\n if (resolvedFileName) {\n resolved = resolveWithExtensions(resolvedFileName) || normalizeFilePath(resolvedFileName);\n }\n } catch {\n resolved = null;\n }\n }\n }\n\n context.resolvedImportCache.set(cacheKey, resolved);\n return resolved;\n}\n\nfunction createCompilerContextResolver(options = {}) {\n const providedTypescriptSession =\n options?.typescriptSession?.projectSession || options?.typescriptSession || null;\n\n const compilerOptionsCache = new Map();\n const moduleResolutionHostCache = new Map();\n\n function getProgramForFile(filename) {\n if (!providedTypescriptSession?.getProgram || !filename) {\n return null;\n }\n\n try {\n if (providedTypescriptSession.kind === \"project\") {\n return providedTypescriptSession.getProgram();\n }\n\n if (providedTypescriptSession.kind === \"standalone\") {\n return providedTypescriptSession.getProgram(normalizeFilePath(filename));\n }\n } catch {\n return null;\n }\n\n return null;\n }\n\n return {\n getCompilerOptions(filename) {\n const cacheKey = normalizeFilePath(filename);\n if (compilerOptionsCache.has(cacheKey)) {\n return compilerOptionsCache.get(cacheKey);\n }\n\n const program = getProgramForFile(filename);\n const compilerOptions = program?.getCompilerOptions?.() || DEFAULT_MODULE_RESOLUTION_OPTIONS;\n compilerOptionsCache.set(cacheKey, compilerOptions);\n return compilerOptions;\n },\n getModuleResolutionHost(filename) {\n const cacheKey = normalizeFilePath(filename);\n if (moduleResolutionHostCache.has(cacheKey)) {\n return moduleResolutionHostCache.get(cacheKey);\n }\n\n const ts = ensureTypescriptModule();\n const program = getProgramForFile(filename);\n const host = providedTypescriptSession?.host || ts.sys;\n moduleResolutionHostCache.set(cacheKey, host);\n return host;\n },\n };\n}\n\nfunction getOrCreateAvailableNames(programPath) {\n const cached = programPath.getData(\"__litsxAvailableNames\");\n if (cached) {\n return cached;\n }\n\n const availableNames = new Set();\n programPath.get(\"body\").forEach((nodePath) => {\n if (nodePath.isImportDeclaration()) {\n nodePath.node.specifiers.forEach((specifier) => {\n if (specifier.local?.name) {\n availableNames.add(specifier.local.name);\n }\n });\n return;\n }\n\n if (nodePath.isClassDeclaration() && nodePath.node.id?.name) {\n availableNames.add(nodePath.node.id.name);\n return;\n }\n\n if (\n (nodePath.isExportNamedDeclaration() || nodePath.isExportDefaultDeclaration()) &&\n nodePath.get(\"declaration\")?.isClassDeclaration?.() &&\n nodePath.node.declaration?.id?.name\n ) {\n availableNames.add(nodePath.node.declaration.id.name);\n return;\n }\n\n if (nodePath.isFunctionDeclaration() && nodePath.node.id?.name) {\n availableNames.add(nodePath.node.id.name);\n return;\n }\n\n if (\n (nodePath.isExportNamedDeclaration() || nodePath.isExportDefaultDeclaration()) &&\n nodePath.get(\"declaration\")?.isFunctionDeclaration?.() &&\n nodePath.node.declaration?.id?.name\n ) {\n availableNames.add(nodePath.node.declaration.id.name);\n return;\n }\n\n if (\n (nodePath.isExportNamedDeclaration() || nodePath.isExportDefaultDeclaration()) &&\n nodePath.get(\"declaration\")?.isVariableDeclaration?.()\n ) {\n nodePath.get(\"declaration.declarations\").forEach((declaratorPath) => {\n const declarator = declaratorPath.node;\n if (t.isIdentifier(declarator.id)) {\n availableNames.add(declarator.id.name);\n }\n });\n return;\n }\n\n if (!nodePath.isVariableDeclaration()) return;\n nodePath.get(\"declarations\").forEach((declaratorPath) => {\n const declarator = declaratorPath.node;\n if (t.isIdentifier(declarator.id)) {\n availableNames.add(declarator.id.name);\n }\n });\n });\n\n programPath.setData(\"__litsxAvailableNames\", availableNames);\n return availableNames;\n}\n\nfunction getOrCreateHelperPaths(programPath) {\n const cached = programPath.getData(\"__litsxHelperPaths\");\n if (cached) {\n return cached;\n }\n\n const helperPaths = new Map();\n programPath.get(\"body\").forEach((nodePath) => {\n if (nodePath.isFunctionDeclaration() && nodePath.node.id?.name) {\n helperPaths.set(nodePath.node.id.name, nodePath);\n return;\n }\n\n if (\n (nodePath.isExportNamedDeclaration() || nodePath.isExportDefaultDeclaration()) &&\n nodePath.get(\"declaration\")?.isFunctionDeclaration?.() &&\n nodePath.node.declaration?.id?.name\n ) {\n helperPaths.set(nodePath.node.declaration.id.name, nodePath.get(\"declaration\"));\n return;\n }\n\n if (\n (nodePath.isExportNamedDeclaration() || nodePath.isExportDefaultDeclaration()) &&\n nodePath.get(\"declaration\")?.isVariableDeclaration?.()\n ) {\n nodePath.get(\"declaration.declarations\").forEach((declaratorPath) => {\n const declarator = declaratorPath.node;\n if (!t.isIdentifier(declarator.id)) {\n return;\n }\n\n const initPath = declaratorPath.get(\"init\");\n if (\n initPath?.isArrowFunctionExpression?.() ||\n initPath?.isFunctionExpression?.()\n ) {\n helperPaths.set(declarator.id.name, initPath);\n }\n });\n return;\n }\n\n if (!nodePath.isVariableDeclaration()) return;\n nodePath.get(\"declarations\").forEach((declaratorPath) => {\n const declarator = declaratorPath.node;\n if (!t.isIdentifier(declarator.id)) {\n return;\n }\n\n const initPath = declaratorPath.get(\"init\");\n if (\n initPath?.isArrowFunctionExpression?.() ||\n initPath?.isFunctionExpression?.()\n ) {\n helperPaths.set(declarator.id.name, initPath);\n }\n });\n });\n\n programPath.setData(\"__litsxHelperPaths\", helperPaths);\n return helperPaths;\n}\n\nfunction buildModuleAnalysis(programPath, filename, context) {\n const availableNames = getOrCreateAvailableNames(programPath);\n const helperPaths = getOrCreateHelperPaths(programPath);\n const importBindings = new Map();\n const exportBindings = new Map();\n\n programPath.get(\"body\").forEach((nodePath) => {\n if (nodePath.isImportDeclaration()) {\n const sourceValue = nodePath.node.source.value;\n const resolvedSource = resolveImportSource(filename, sourceValue, context);\n\n nodePath.node.specifiers.forEach((specifier) => {\n if (!specifier.local?.name) {\n return;\n }\n\n let importedName = null;\n if (specifier.type === \"ImportDefaultSpecifier\") {\n importedName = \"default\";\n } else if (specifier.type === \"ImportSpecifier\") {\n importedName = specifier.imported?.name ?? specifier.imported?.value ?? null;\n } else if (specifier.type === \"ImportNamespaceSpecifier\") {\n importedName = \"*\";\n }\n\n importBindings.set(specifier.local.name, {\n localName: specifier.local.name,\n importedName,\n sourceValue,\n resolvedSource,\n });\n });\n\n return;\n }\n\n if (nodePath.isExportNamedDeclaration()) {\n const declarationPath = nodePath.get(\"declaration\");\n if (declarationPath?.node) {\n if (declarationPath.isFunctionDeclaration() || declarationPath.isClassDeclaration()) {\n const localName = declarationPath.node.id?.name;\n if (localName) {\n exportBindings.set(localName, { localName });\n }\n } else if (declarationPath.isVariableDeclaration()) {\n declarationPath.get(\"declarations\").forEach((declaratorPath) => {\n const localName = declaratorPath.node.id?.name;\n if (localName) {\n exportBindings.set(localName, { localName });\n }\n });\n }\n }\n\n nodePath.get(\"specifiers\").forEach((specifierPath) => {\n const exportedName =\n specifierPath.node.exported?.name ?? specifierPath.node.exported?.value ?? null;\n if (!exportedName) {\n return;\n }\n\n const sourceValue = nodePath.node.source?.value ?? null;\n if (sourceValue) {\n const localName =\n specifierPath.node.local?.name ?? specifierPath.node.local?.value ?? exportedName;\n exportBindings.set(exportedName, {\n reexportSource: resolveImportSource(filename, sourceValue, context),\n importedName: localName === \"default\" ? \"default\" : localName,\n });\n return;\n }\n\n const localName =\n specifierPath.node.local?.name ?? specifierPath.node.local?.value ?? null;\n if (localName) {\n exportBindings.set(exportedName, { localName });\n }\n });\n\n return;\n }\n\n if (!nodePath.isExportDefaultDeclaration()) {\n return;\n }\n\n const declarationPath = nodePath.get(\"declaration\");\n if (declarationPath.isIdentifier()) {\n exportBindings.set(\"default\", { localName: declarationPath.node.name });\n return;\n }\n\n if (\n declarationPath.isFunctionDeclaration() ||\n declarationPath.isClassDeclaration()\n ) {\n const localName = declarationPath.node.id?.name;\n if (localName) {\n exportBindings.set(\"default\", { localName });\n } else {\n exportBindings.set(\"default\", { path: declarationPath });\n }\n return;\n }\n\n if (\n declarationPath.isArrowFunctionExpression() ||\n declarationPath.isFunctionExpression()\n ) {\n exportBindings.set(\"default\", { path: declarationPath });\n }\n });\n\n return {\n filename,\n programPath,\n availableNames,\n helperPaths,\n importBindings,\n exportBindings,\n compatPascalNames: new Set(),\n };\n}\n\nfunction getOrCreateModuleAnalysis(filename, context) {\n const normalizedFilename = normalizeFilePath(filename);\n if (!normalizedFilename) {\n return null;\n }\n\n if (context.moduleAnalysisCache.has(normalizedFilename)) {\n return context.moduleAnalysisCache.get(normalizedFilename);\n }\n\n let source;\n try {\n source = fs.readFileSync(normalizedFilename, \"utf8\");\n } catch {\n return null;\n }\n\n let programPath = null;\n try {\n const ast = parser.parse(source, { sourceType: \"module\" });\n traverse(ast, {\n Program(path) {\n if (!programPath) {\n programPath = path;\n path.scope.crawl();\n }\n },\n });\n } catch {\n return null;\n }\n\n if (!programPath) {\n return null;\n }\n\n const analysis = buildModuleAnalysis(programPath, normalizedFilename, context);\n context.moduleAnalysisCache.set(normalizedFilename, analysis);\n return analysis;\n}\n\nfunction isCapitalizedName(name) {\n if (typeof name !== \"string\" || name.length === 0) {\n return false;\n }\n\n const first = name[0];\n return first === first.toUpperCase() && first !== first.toLowerCase();\n}\n\nfunction isProgramLevelBinding(binding) {\n return binding?.scope?.path?.isProgram?.() === true;\n}\n\nfunction validateComponentName(nameNode, pathForErrors, context) {\n if (!nameNode || nameNode.type !== \"JSXIdentifier\") return null;\n const originalName = nameNode.__scopedOriginal || nameNode.name;\n if (!isCapitalizedName(originalName)) return null;\n\n const binding = pathForErrors?.scope?.getBinding?.(originalName) || null;\n if (!binding) {\n if (context.availableNames.has(originalName)) {\n return originalName;\n }\n if (context.compatPascalNames.has(originalName)) {\n return null;\n }\n if (context.options?.allowUnknownPascalCase === true) {\n return null;\n }\n throw (pathForErrors?.buildCodeFrameError?.(\n `Unknown LitSX component \"${originalName}\". Add an import or declare it in this module before using it in JSX.`\n ) || new Error(\n `Unknown LitSX component \"${originalName}\". Add an import or declare it in this module before using it in JSX.`\n ));\n }\n\n if (!isProgramLevelBinding(binding)) {\n return null;\n }\n\n return originalName;\n}\n\nfunction resolveImportedHelper(moduleAnalysis, helperName, context, seen = new Set()) {\n const importInfo = moduleAnalysis.importBindings.get(helperName);\n if (!importInfo?.resolvedSource || importInfo.importedName === \"*\") {\n return null;\n }\n\n const visitedKey = `${moduleAnalysis.filename}:${helperName}:${importInfo.resolvedSource}:${importInfo.importedName}`;\n if (seen.has(visitedKey)) {\n return null;\n }\n const nextSeen = new Set(seen);\n nextSeen.add(visitedKey);\n\n const importedModule = getOrCreateModuleAnalysis(importInfo.resolvedSource, context);\n if (!importedModule) {\n return null;\n }\n\n return resolveExportedHelper(importedModule, importInfo.importedName, context, nextSeen);\n}\n\nfunction resolveExportedHelper(moduleAnalysis, exportedName, context, seen = new Set()) {\n const exportInfo = moduleAnalysis.exportBindings.get(exportedName);\n if (!exportInfo) {\n return null;\n }\n\n if (exportInfo.path?.node) {\n return {\n moduleAnalysis,\n path: exportInfo.path,\n };\n }\n\n if (exportInfo.localName) {\n const helperPath = moduleAnalysis.helperPaths.get(exportInfo.localName);\n if (!helperPath?.node) {\n if (moduleAnalysis.importBindings.has(exportInfo.localName)) {\n return resolveImportedHelper(moduleAnalysis, exportInfo.localName, context, seen);\n }\n return null;\n }\n return {\n moduleAnalysis,\n path: helperPath,\n };\n }\n\n if (exportInfo.reexportSource) {\n const reexportedModule = getOrCreateModuleAnalysis(exportInfo.reexportSource, context);\n if (!reexportedModule) {\n return null;\n }\n return resolveExportedHelper(\n reexportedModule,\n exportInfo.importedName,\n context,\n seen\n );\n }\n\n return null;\n}\n\nfunction resolveImportedElementRequirement(candidateName, moduleAnalysis, context, rootFilename) {\n const binding = moduleAnalysis.programPath.scope.getBinding(candidateName);\n if (!binding || !isProgramLevelBinding(binding)) {\n return null;\n }\n\n if (\n binding.path.isImportSpecifier?.() ||\n binding.path.isImportDefaultSpecifier?.()\n ) {\n const importInfo = moduleAnalysis.importBindings.get(candidateName);\n if (!importInfo?.resolvedSource || importInfo.importedName === \"*\") {\n return null;\n }\n\n return {\n sourceFile: importInfo.resolvedSource,\n sourceSpecifier: isRelativeSpecifier(importInfo.sourceValue)\n ? null\n : importInfo.sourceValue,\n importedName: importInfo.importedName,\n originalName: candidateName,\n tagName: candidateName.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase(),\n rootFilename,\n };\n }\n\n const exportInfo =\n moduleAnalysis.exportBindings.get(candidateName) ||\n moduleAnalysis.exportBindings.get(\"default\");\n if (!exportInfo) {\n throw new Error(\n `Imported renderer helper transitively renders \"${candidateName}\" from \"${moduleAnalysis.filename}\", but that symbol is not exported and cannot be added to static elements in \"${rootFilename}\".`\n );\n }\n\n const importedName = exportInfo.localName === candidateName\n ? candidateName\n : [...moduleAnalysis.exportBindings.entries()].find(\n ([, entry]) => entry.localName === candidateName\n )?.[0] ?? null;\n\n if (!importedName) {\n throw new Error(\n `Imported renderer helper transitively renders \"${candidateName}\" from \"${moduleAnalysis.filename}\", but that symbol cannot be resolved as an importable export for \"${rootFilename}\".`\n );\n }\n\n return {\n sourceFile: moduleAnalysis.filename,\n sourceSpecifier: null,\n importedName,\n originalName: candidateName,\n tagName: candidateName.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase(),\n rootFilename,\n };\n}\n\nfunction collectCandidateResult(functionPath, programPath, options = {}) {\n const result = createEmptyCandidateResult();\n if (!programPath || !functionPath?.node) return result;\n programPath.scope.crawl();\n const compilationSession = options.__litsxCompilationSession || null;\n\n const rootFilename = normalizeFilePath(\n options.filename || programPath.hub.file?.opts?.filename || \"\"\n );\n const helperCandidateCache =\n programPath.getData(\"__litsxHelperCandidateCache\") || new WeakMap();\n programPath.setData(\"__litsxHelperCandidateCache\", helperCandidateCache);\n const moduleAnalysisCache =\n compilationSession?.importedModuleAnalysisCache ||\n programPath.getData(\"__litsxImportedModuleAnalyses\") ||\n new Map();\n programPath.setData(\"__litsxImportedModuleAnalyses\", moduleAnalysisCache);\n const resolvedImportCache =\n compilationSession?.resolvedImportCache ||\n programPath.getData(\"__litsxResolvedImports\") ||\n new Map();\n programPath.setData(\"__litsxResolvedImports\", resolvedImportCache);\n\n const rootModule = {\n filename: rootFilename,\n programPath,\n availableNames: getOrCreateAvailableNames(programPath),\n helperPaths: getOrCreateHelperPaths(programPath),\n compatPascalNames: programPath.getData(\"__litsxCompatPascalNames\") || new Set(),\n importBindings: new Map(),\n exportBindings: new Map(),\n };\n\n programPath.get(\"body\").forEach((nodePath) => {\n if (!nodePath.isImportDeclaration()) {\n return;\n }\n\n const sourceValue = nodePath.node.source.value;\n const resolvedSource = resolveImportSource(rootFilename, sourceValue, {\n moduleAnalysisCache,\n resolvedImportCache,\n });\n\n nodePath.node.specifiers.forEach((specifier) => {\n if (!specifier.local?.name) {\n return;\n }\n\n let importedName = null;\n if (specifier.type === \"ImportDefaultSpecifier\") {\n importedName = \"default\";\n } else if (specifier.type === \"ImportSpecifier\") {\n importedName = specifier.imported?.name ?? specifier.imported?.value ?? null;\n } else if (specifier.type === \"ImportNamespaceSpecifier\") {\n importedName = \"*\";\n }\n\n rootModule.importBindings.set(specifier.local.name, {\n localName: specifier.local.name,\n importedName,\n sourceValue,\n resolvedSource,\n });\n });\n });\n\n const context = {\n rootFilename,\n rootModule,\n options,\n helperCandidateCache,\n moduleAnalysisCache,\n resolvedImportCache,\n ...createCompilerContextResolver(options),\n };\n\n function scanFunction(path, moduleAnalysis, seen = new Set()) {\n if (!path?.node) {\n return createEmptyCandidateResult();\n }\n\n if (context.helperCandidateCache.has(path.node)) {\n return cloneCandidateResult(context.helperCandidateCache.get(path.node));\n }\n\n if (seen.has(path.node)) {\n return createEmptyCandidateResult();\n }\n\n const nextSeen = new Set(seen);\n nextSeen.add(path.node);\n const localResult = createEmptyCandidateResult();\n const referencedHelpers = [];\n const scanContext = {\n availableNames: moduleAnalysis.availableNames,\n helperPaths: moduleAnalysis.helperPaths,\n compatPascalNames: moduleAnalysis.compatPascalNames,\n options,\n };\n\n path.traverse({\n JSXOpeningElement(jsxPath) {\n const candidate = validateComponentName(jsxPath.node.name, jsxPath, scanContext);\n if (candidate) {\n if (moduleAnalysis.filename === context.rootFilename) {\n localResult.localCandidates.add(candidate);\n } else {\n const requirement = resolveImportedElementRequirement(\n candidate,\n moduleAnalysis,\n context,\n context.rootFilename\n );\n if (requirement) {\n localResult.importedCandidates.set(\n toImportRecordKey(requirement),\n requirement\n );\n }\n }\n }\n },\n JSXClosingElement(jsxPath) {\n validateComponentName(jsxPath.node.name, jsxPath, scanContext);\n },\n Identifier(identifierPath) {\n if (!identifierPath.isReferencedIdentifier()) {\n return;\n }\n\n if (moduleAnalysis.helperPaths.has(identifierPath.node.name)) {\n referencedHelpers.push({\n moduleAnalysis,\n path: moduleAnalysis.helperPaths.get(identifierPath.node.name),\n });\n return;\n }\n\n const binding = identifierPath.scope.getBinding(identifierPath.node.name);\n if (!binding) {\n return;\n }\n\n if (\n !binding.path.isImportSpecifier?.() &&\n !binding.path.isImportDefaultSpecifier?.()\n ) {\n return;\n }\n\n const resolvedHelper = resolveImportedHelper(\n moduleAnalysis,\n identifierPath.node.name,\n context\n );\n if (!resolvedHelper?.path?.node) {\n return;\n }\n\n referencedHelpers.push(resolvedHelper);\n },\n });\n\n referencedHelpers.forEach((helperEntry) => {\n const helperCandidates = scanFunction(\n helperEntry.path,\n helperEntry.moduleAnalysis,\n nextSeen\n );\n mergeCandidateResults(localResult, helperCandidates);\n });\n\n context.helperCandidateCache.set(path.node, cloneCandidateResult(localResult));\n return localResult;\n }\n\n return scanFunction(functionPath, rootModule);\n}\n\nexport function getAnnotatedElementCandidates(path, programPath, options = {}) {\n if (path?.node?._litsxElementCandidates instanceof Set) {\n return new Set(path.node._litsxElementCandidates);\n }\n\n return collectCandidateResult(path, programPath, options).localCandidates;\n}\n\nexport function getAnnotatedImportedElementCandidates(path, programPath, options = {}) {\n if (Array.isArray(path?.node?._litsxImportedElementCandidates)) {\n return [...path.node._litsxImportedElementCandidates];\n }\n\n return [...collectCandidateResult(path, programPath, options).importedCandidates.values()];\n}\n\nexport function importedBindingNeedsRendererContext(programPath, localName, options = {}) {\n if (!programPath?.node || !localName) {\n return false;\n }\n\n programPath.scope.crawl();\n const compilationSession = options.__litsxCompilationSession || null;\n const rootFilename = normalizeFilePath(\n options.filename || programPath.hub.file?.opts?.filename || \"\"\n );\n const helperCandidateCache =\n programPath.getData(\"__litsxHelperCandidateCache\") || new WeakMap();\n programPath.setData(\"__litsxHelperCandidateCache\", helperCandidateCache);\n const moduleAnalysisCache =\n compilationSession?.importedModuleAnalysisCache ||\n programPath.getData(\"__litsxImportedModuleAnalyses\") ||\n new Map();\n programPath.setData(\"__litsxImportedModuleAnalyses\", moduleAnalysisCache);\n const resolvedImportCache =\n compilationSession?.resolvedImportCache ||\n programPath.getData(\"__litsxResolvedImports\") ||\n new Map();\n programPath.setData(\"__litsxResolvedImports\", resolvedImportCache);\n\n const rootModule = {\n filename: rootFilename,\n programPath,\n availableNames: getOrCreateAvailableNames(programPath),\n helperPaths: getOrCreateHelperPaths(programPath),\n compatPascalNames: programPath.getData(\"__litsxCompatPascalNames\") || new Set(),\n importBindings: new Map(),\n exportBindings: new Map(),\n };\n\n programPath.get(\"body\").forEach((nodePath) => {\n if (!nodePath.isImportDeclaration()) {\n return;\n }\n\n const sourceValue = nodePath.node.source.value;\n const resolvedSource = resolveImportSource(rootFilename, sourceValue, {\n moduleAnalysisCache,\n resolvedImportCache,\n });\n\n nodePath.node.specifiers.forEach((specifier) => {\n if (!specifier.local?.name) {\n return;\n }\n\n let importedName = null;\n if (specifier.type === \"ImportDefaultSpecifier\") {\n importedName = \"default\";\n } else if (specifier.type === \"ImportSpecifier\") {\n importedName = specifier.imported?.name ?? specifier.imported?.value ?? null;\n } else if (specifier.type === \"ImportNamespaceSpecifier\") {\n importedName = \"*\";\n }\n\n rootModule.importBindings.set(specifier.local.name, {\n localName: specifier.local.name,\n importedName,\n sourceValue,\n resolvedSource,\n });\n });\n });\n\n const context = {\n rootFilename,\n rootModule,\n options,\n helperCandidateCache,\n moduleAnalysisCache,\n resolvedImportCache,\n ...createCompilerContextResolver(options),\n };\n\n const resolvedHelper = resolveImportedHelper(rootModule, localName, context);\n if (!resolvedHelper?.path?.node) {\n return false;\n }\n\n function scanFunction(path, moduleAnalysis, seen = new Set()) {\n if (!path?.node) {\n return false;\n }\n\n const cacheKey = path.node;\n if (context.helperCandidateCache.has(cacheKey)) {\n const cached = context.helperCandidateCache.get(cacheKey);\n return cached.localCandidates.size > 0 || cached.importedCandidates.size > 0;\n }\n\n if (seen.has(path.node)) {\n return false;\n }\n\n const nextSeen = new Set(seen);\n nextSeen.add(path.node);\n let needsContext = false;\n const referencedHelpers = [];\n const scanContext = {\n availableNames: moduleAnalysis.availableNames,\n helperPaths: moduleAnalysis.helperPaths,\n compatPascalNames: moduleAnalysis.compatPascalNames,\n options,\n };\n\n path.traverse({\n JSXOpeningElement(jsxPath) {\n const candidate = validateComponentName(jsxPath.node.name, jsxPath, scanContext);\n if (candidate) {\n needsContext = true;\n }\n },\n JSXClosingElement(jsxPath) {\n validateComponentName(jsxPath.node.name, jsxPath, scanContext);\n },\n Identifier(identifierPath) {\n if (!identifierPath.isReferencedIdentifier()) {\n return;\n }\n\n if (moduleAnalysis.helperPaths.has(identifierPath.node.name)) {\n referencedHelpers.push({\n moduleAnalysis,\n path: moduleAnalysis.helperPaths.get(identifierPath.node.name),\n });\n return;\n }\n\n const binding = identifierPath.scope.getBinding(identifierPath.node.name);\n if (\n !binding ||\n (\n !binding.path.isImportSpecifier?.() &&\n !binding.path.isImportDefaultSpecifier?.()\n )\n ) {\n return;\n }\n\n const importedHelper = resolveImportedHelper(\n moduleAnalysis,\n identifierPath.node.name,\n context\n );\n if (importedHelper?.path?.node) {\n referencedHelpers.push(importedHelper);\n }\n },\n });\n\n if (!needsContext) {\n needsContext = referencedHelpers.some((helperEntry) =>\n scanFunction(helperEntry.path, helperEntry.moduleAnalysis, nextSeen)\n );\n }\n\n context.helperCandidateCache.set(cacheKey, needsContext\n ? {\n localCandidates: new Set([\"__context\"]),\n importedCandidates: new Map(),\n }\n : createEmptyCandidateResult()\n );\n\n return needsContext;\n }\n\n return scanFunction(resolvedHelper.path, resolvedHelper.moduleAnalysis);\n}\n\nexport default declare((api) => {\n api.assertVersion(7);\n t = api.types;\n\n return {\n name: \"transform-litsx-element-candidates\",\n inherits: jsxSyntaxPlugin.default || jsxSyntaxPlugin,\n visitor: {\n Program: {\n enter(path) {\n path.scope.crawl();\n path.setData(\"__litsxAvailableNames\", null);\n path.setData(\"__litsxHelperPaths\", null);\n path.setData(\"__litsxHelperCandidateCache\", new WeakMap());\n path.setData(\"__litsxImportedModuleAnalyses\", new Map());\n path.setData(\"__litsxResolvedImports\", new Map());\n },\n },\n FunctionDeclaration: {\n exit(path, state) {\n if (isInsideFunctionOrClass(path)) {\n return;\n }\n\n const programPath = path.findParent((entry) => entry.isProgram());\n const result = collectCandidateResult(\n path,\n programPath,\n {\n ...(state.opts || {}),\n filename: state.file?.opts?.filename || \"\",\n }\n );\n path.node._litsxElementCandidates = result.localCandidates;\n path.node._litsxImportedElementCandidates = [...result.importedCandidates.values()];\n },\n },\n ArrowFunctionExpression: {\n exit(path, state) {\n if (isInsideFunctionOrClass(path)) {\n return;\n }\n\n const programPath = path.findParent((entry) => entry.isProgram());\n const result = collectCandidateResult(\n path,\n programPath,\n {\n ...(state.opts || {}),\n filename: state.file?.opts?.filename || \"\",\n }\n );\n path.node._litsxElementCandidates = result.localCandidates;\n path.node._litsxImportedElementCandidates = [...result.importedCandidates.values()];\n },\n },\n FunctionExpression: {\n exit(path, state) {\n if (isInsideFunctionOrClass(path)) {\n return;\n }\n\n const programPath = path.findParent((entry) => entry.isProgram());\n const result = collectCandidateResult(\n path,\n programPath,\n {\n ...(state.opts || {}),\n filename: state.file?.opts?.filename || \"\",\n }\n );\n path.node._litsxElementCandidates = result.localCandidates;\n path.node._litsxImportedElementCandidates = [...result.importedCandidates.values()];\n },\n },\n },\n };\n});\n"],"names":["normalizeFilePath","ensureTypescriptModule"],"mappings":"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"}
|