@tamagui/compiler-core 3.0.7 → 3.0.8
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/cjs/lower.cjs +3 -3
- package/dist/cjs/materialize.cjs +1 -0
- package/dist/cjs/normalize.cjs +10 -0
- package/dist/esm/lower.mjs +4 -4
- package/dist/esm/lower.mjs.map +1 -1
- package/dist/esm/materialize.mjs +1 -0
- package/dist/esm/materialize.mjs.map +1 -1
- package/dist/esm/normalize.mjs +10 -0
- package/dist/esm/normalize.mjs.map +1 -1
- package/package.json +3 -3
- package/src/ir.ts +2 -0
- package/src/lower.ts +3 -3
- package/src/materialize.ts +2 -0
- package/src/normalize.ts +16 -0
- package/types/ir.d.ts +2 -0
- package/types/ir.d.ts.map +1 -1
- package/types/lower.d.ts +1 -1
- package/types/materialize.d.ts +1 -0
- package/types/materialize.d.ts.map +1 -1
- package/types/normalize.d.ts.map +1 -1
package/dist/cjs/lower.cjs
CHANGED
|
@@ -26,7 +26,7 @@ __export(lower_exports, {
|
|
|
26
26
|
module.exports = __toCommonJS(lower_exports);
|
|
27
27
|
var import_diagnostics = require("./diagnostics.cjs");
|
|
28
28
|
var import_output = require("./output.cjs");
|
|
29
|
-
const LOWERED_MODULE_PLAN_VERSION =
|
|
29
|
+
const LOWERED_MODULE_PLAN_VERSION = 6;
|
|
30
30
|
function compareCodeUnits(left, right) {
|
|
31
31
|
return left < right ? -1 : left > right ? 1 : 0;
|
|
32
32
|
}
|
|
@@ -209,8 +209,8 @@ function lowerModule({ module: module2, source, target, host, options, structura
|
|
|
209
209
|
}
|
|
210
210
|
for (const candidateImport of imports.values()) {
|
|
211
211
|
edits.push({
|
|
212
|
-
start:
|
|
213
|
-
end:
|
|
212
|
+
start: module2.declarationsAt,
|
|
213
|
+
end: module2.declarationsAt,
|
|
214
214
|
content: candidateImport.content,
|
|
215
215
|
origin: candidateImport.origin
|
|
216
216
|
});
|
package/dist/cjs/materialize.cjs
CHANGED
|
@@ -213,6 +213,7 @@ function materializeModule(graph, id) {
|
|
|
213
213
|
...definition,
|
|
214
214
|
value: materializeValue(graph, definition.value)
|
|
215
215
|
})),
|
|
216
|
+
declarationsAt: result.declarationsAt,
|
|
216
217
|
diagnostics: graph.diagnostics().filter(({ span }) => span.id === id)
|
|
217
218
|
};
|
|
218
219
|
return {
|
package/dist/cjs/normalize.cjs
CHANGED
|
@@ -613,9 +613,19 @@ function normalizeElements(candidate, rawId, imports = []) {
|
|
|
613
613
|
elements: elements.sort((left, right) => left.span.start - right.span.start),
|
|
614
614
|
styledDefinitions: styledDefinitions(candidate, id, program, imports, bailouts),
|
|
615
615
|
domStyleDefinitions: domStyleDefinitions(id, program, imports),
|
|
616
|
+
declarationsAt: declarationsOffset(program),
|
|
616
617
|
bailouts: bailouts.sort((left, right) => left.span.start - right.span.start)
|
|
617
618
|
};
|
|
618
619
|
}
|
|
620
|
+
function declarationsOffset(program) {
|
|
621
|
+
let offset = 0;
|
|
622
|
+
for (const statement of (0, import_ast.childNodes)(program, "body")) {
|
|
623
|
+
if (statement.type === "ImportDeclaration" || typeof statement.directive === "string") {
|
|
624
|
+
offset = statement.end;
|
|
625
|
+
} else break;
|
|
626
|
+
}
|
|
627
|
+
return offset;
|
|
628
|
+
}
|
|
619
629
|
function nodeAtSpan(program, start, end) {
|
|
620
630
|
return (0, import_ast.findAstNode)(program, (node) => node.start === start && node.end === end, {
|
|
621
631
|
start,
|
package/dist/esm/lower.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { localBailout } from "./diagnostics.mjs";
|
|
2
2
|
import { sourceContentHash, validateSourceEdits } from "./output.mjs";
|
|
3
3
|
|
|
4
|
-
const LOWERED_MODULE_PLAN_VERSION =
|
|
4
|
+
const LOWERED_MODULE_PLAN_VERSION = 6;
|
|
5
5
|
function compareCodeUnits(left, right) {
|
|
6
6
|
return left < right ? -1 : left > right ? 1 : 0;
|
|
7
7
|
}
|
|
@@ -184,14 +184,14 @@ function lowerModule({ module, source, target, host, options, structuralPass })
|
|
|
184
184
|
}
|
|
185
185
|
for (const candidateImport of imports.values()) {
|
|
186
186
|
edits.push({
|
|
187
|
-
start:
|
|
188
|
-
end:
|
|
187
|
+
start: module.declarationsAt,
|
|
188
|
+
end: module.declarationsAt,
|
|
189
189
|
content: candidateImport.content,
|
|
190
190
|
origin: candidateImport.origin
|
|
191
191
|
});
|
|
192
192
|
}
|
|
193
193
|
return {
|
|
194
|
-
version:
|
|
194
|
+
version: 6,
|
|
195
195
|
id: module.id,
|
|
196
196
|
target,
|
|
197
197
|
inputHash: module.inputHash,
|
package/dist/esm/lower.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lower.js","names":[],"sources":["esm/lower.js"],"sourcesContent":["import { localBailout } from \"./diagnostics\";\nimport {\n sourceContentHash,\n validateSourceEdits\n} from \"./output\";\nconst LOWERED_MODULE_PLAN_VERSION = 5;\nfunction compareCodeUnits(left, right) {\n return left < right ? -1 : left > right ? 1 : 0;\n}\nfunction blocking(reason) {\n return { ...reason, blocking: true };\n}\nfunction diagnostic(code, element, message, prop) {\n return {\n ...localBailout(code, element.span, message),\n component: element.component.name,\n specifier: element.component.provenance?.specifier,\n prop\n };\n}\nfunction styledDefinitionFor(module, element) {\n const definition = element.component.definition;\n if (!definition) return null;\n return module.styledDefinitions.find(\n (candidate) => candidate.id === definition.id && candidate.name === definition.name\n ) ?? null;\n}\nfunction unsafeEntry(element, entry, component, host) {\n if (entry.kind === \"spread\" && entry.value.kind !== \"static\") {\n return diagnostic(\n \"local/unsafe-style-spread\",\n element,\n \"Unevaluated spread may change style and duplicate-prop precedence\"\n );\n }\n if (entry.kind === \"prop\" && host.isStyleProp(entry.name, component) && (entry.value.kind === \"bailout\" || entry.value.kind === \"conditional\") && !host.canLowerDynamicStyleProp?.(\n entry.name,\n component,\n entry.value.kind,\n entry.value.kind === \"bailout\" ? entry.value.dynamic : null\n )) {\n return diagnostic(\n \"local/dynamic-style-value\",\n element,\n `Style prop ${entry.name} could not be evaluated`,\n entry.name\n );\n }\n if (entry.kind === \"prop\" && entry.value.kind === \"object\") {\n for (const member of entry.value.members) {\n if (member.value.kind !== \"bailout\" && member.value.kind !== \"conditional\") continue;\n if (!host.isStyleProp(member.name, component) || !host.canLowerDynamicStyleProp?.(\n member.name,\n component,\n member.value.kind,\n member.value.kind === \"bailout\" ? member.value.dynamic : null\n )) {\n return diagnostic(\n \"local/dynamic-style-value\",\n element,\n `Style prop ${member.name} could not be evaluated`,\n member.name\n );\n }\n }\n }\n return null;\n}\nfunction editsAreCandidateLocal(element, edits) {\n return edits.every(\n (edit) => edit.origin.id === element.id && edit.start >= element.span.start && edit.end <= element.span.end\n );\n}\nfunction overlapsCommitted(edits, committed) {\n return edits.some(\n (edit) => committed.some((existing) => {\n if (edit.start === edit.end) {\n return edit.start > existing.start && edit.start < existing.end;\n }\n if (existing.start === existing.end) {\n return existing.start > edit.start && existing.start < edit.end;\n }\n return edit.start < existing.end && existing.start < edit.end;\n })\n );\n}\nfunction lowerModule({\n module,\n source,\n target,\n host,\n options,\n structuralPass\n}) {\n const stats = {\n found: 0,\n lowered: 0,\n flattened: 0,\n styled: 0,\n bailed: 0\n };\n const structural = structuralPass ? structuralPass.transform({ module, source, target }) : {\n module,\n edits: [],\n imports: [],\n diagnostics: [],\n dependencies: []\n };\n if (structural.module.id !== module.id) {\n throw new Error(\n `Structural pass changed module identity from ${module.id} to ${structural.module.id}`\n );\n }\n if (structuralPass && !structuralPass.versionHash) {\n throw new Error(\"Structural pass must provide a non-empty version hash\");\n }\n module = structural.module;\n validateSourceEdits(source, structural.edits);\n const edits = [...structural.edits];\n const css = /* @__PURE__ */ new Set();\n const diagnostics = [...module.diagnostics, ...structural.diagnostics];\n const dependencies = /* @__PURE__ */ new Set([...module.dependencies, ...structural.dependencies]);\n const imports = new Map(\n structural.imports.map((candidateImport) => [\n candidateImport.content,\n candidateImport\n ])\n );\n for (const element of module.elements) {\n const styledDefinition = styledDefinitionFor(module, element);\n const component = host.resolveComponent(element, styledDefinition);\n if (!component) continue;\n stats.found++;\n const input = {\n id: module.id,\n source,\n target,\n module,\n element,\n styledDefinition,\n component\n };\n const commitDevelopmentDebug = (result2) => {\n const debugEdits = host.developmentDebugInstrumentation?.(input, result2);\n if (!debugEdits) return;\n validateSourceEdits(source, debugEdits);\n if (!editsAreCandidateLocal(element, debugEdits) || overlapsCommitted(debugEdits, edits)) {\n throw new Error(\"Development debug instrumentation must stay candidate-local\");\n }\n edits.push(...debugEdits);\n };\n if (!element.complete || styledDefinition && !styledDefinition.complete) {\n const reasons = [\n ...element.bailouts.map(blocking),\n ...(styledDefinition?.bailouts ?? []).map(blocking)\n ];\n diagnostics.push(...reasons);\n const reason = reasons[0];\n if (reason) commitDevelopmentDebug({ ok: false, bailout: reason });\n stats.bailed++;\n continue;\n }\n const unsafe = element.entries.map((entry) => unsafeEntry(element, entry, component, host)).find((result2) => result2 !== null);\n if (unsafe) {\n diagnostics.push(blocking(unsafe));\n commitDevelopmentDebug({ ok: false, bailout: blocking(unsafe) });\n stats.bailed++;\n continue;\n }\n let result;\n try {\n result = host.lowerCandidate(input);\n } catch (error) {\n result = {\n ok: false,\n bailout: diagnostic(\n \"local/style-resolution-failed\",\n element,\n `Style resolution failed: ${error instanceof Error ? error.message : String(error)}`\n )\n };\n }\n if (!result.ok) {\n diagnostics.push(blocking(result.bailout));\n commitDevelopmentDebug(result);\n stats.bailed++;\n continue;\n }\n try {\n validateSourceEdits(source, result.edits);\n } catch (error) {\n const reason = blocking(\n diagnostic(\n \"local/overlapping-edit\",\n element,\n error instanceof Error ? error.message : String(error)\n )\n );\n diagnostics.push(reason);\n commitDevelopmentDebug({ ok: false, bailout: reason });\n stats.bailed++;\n continue;\n }\n if (!editsAreCandidateLocal(element, result.edits) || overlapsCommitted(result.edits, edits)) {\n const reason = blocking(\n diagnostic(\n \"local/overlapping-edit\",\n element,\n \"Candidate edits overlap another candidate or escape the element span\"\n )\n );\n diagnostics.push(reason);\n commitDevelopmentDebug({ ok: false, bailout: reason });\n stats.bailed++;\n continue;\n }\n diagnostics.push(...result.diagnostics ?? []);\n edits.push(...result.edits);\n commitDevelopmentDebug(result);\n for (const rule of result.css) css.add(rule);\n for (const candidateImport of result.imports) {\n if (!imports.has(candidateImport.content)) {\n imports.set(candidateImport.content, candidateImport);\n }\n }\n for (const dependency of result.dependencies ?? []) dependencies.add(dependency);\n stats.lowered++;\n if (result.flattened) stats.flattened++;\n if (styledDefinition) stats.styled++;\n }\n for (const candidateImport of imports.values()) {\n edits.push({\n start: source.length,\n end: source.length,\n content: candidateImport.content,\n origin: candidateImport.origin\n });\n }\n return {\n version: LOWERED_MODULE_PLAN_VERSION,\n id: module.id,\n target,\n inputHash: module.inputHash,\n sourceHash: sourceContentHash(source),\n projectGeneration: options.projectGeneration,\n structuralPassHash: structuralPass?.versionHash ?? `${target}-noop-v1`,\n edits,\n css: [...css].join(\"\"),\n diagnostics,\n dependencies: [...dependencies].sort(compareCodeUnits),\n stats\n };\n}\nexport {\n LOWERED_MODULE_PLAN_VERSION,\n lowerModule\n};\n//# sourceMappingURL=lower.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lower.js","names":[],"sources":["esm/lower.js"],"sourcesContent":["import { localBailout } from \"./diagnostics\";\nimport {\n sourceContentHash,\n validateSourceEdits\n} from \"./output\";\nconst LOWERED_MODULE_PLAN_VERSION = 6;\nfunction compareCodeUnits(left, right) {\n return left < right ? -1 : left > right ? 1 : 0;\n}\nfunction blocking(reason) {\n return { ...reason, blocking: true };\n}\nfunction diagnostic(code, element, message, prop) {\n return {\n ...localBailout(code, element.span, message),\n component: element.component.name,\n specifier: element.component.provenance?.specifier,\n prop\n };\n}\nfunction styledDefinitionFor(module, element) {\n const definition = element.component.definition;\n if (!definition) return null;\n return module.styledDefinitions.find(\n (candidate) => candidate.id === definition.id && candidate.name === definition.name\n ) ?? null;\n}\nfunction unsafeEntry(element, entry, component, host) {\n if (entry.kind === \"spread\" && entry.value.kind !== \"static\") {\n return diagnostic(\n \"local/unsafe-style-spread\",\n element,\n \"Unevaluated spread may change style and duplicate-prop precedence\"\n );\n }\n if (entry.kind === \"prop\" && host.isStyleProp(entry.name, component) && (entry.value.kind === \"bailout\" || entry.value.kind === \"conditional\") && !host.canLowerDynamicStyleProp?.(\n entry.name,\n component,\n entry.value.kind,\n entry.value.kind === \"bailout\" ? entry.value.dynamic : null\n )) {\n return diagnostic(\n \"local/dynamic-style-value\",\n element,\n `Style prop ${entry.name} could not be evaluated`,\n entry.name\n );\n }\n if (entry.kind === \"prop\" && entry.value.kind === \"object\") {\n for (const member of entry.value.members) {\n if (member.value.kind !== \"bailout\" && member.value.kind !== \"conditional\") continue;\n if (!host.isStyleProp(member.name, component) || !host.canLowerDynamicStyleProp?.(\n member.name,\n component,\n member.value.kind,\n member.value.kind === \"bailout\" ? member.value.dynamic : null\n )) {\n return diagnostic(\n \"local/dynamic-style-value\",\n element,\n `Style prop ${member.name} could not be evaluated`,\n member.name\n );\n }\n }\n }\n return null;\n}\nfunction editsAreCandidateLocal(element, edits) {\n return edits.every(\n (edit) => edit.origin.id === element.id && edit.start >= element.span.start && edit.end <= element.span.end\n );\n}\nfunction overlapsCommitted(edits, committed) {\n return edits.some(\n (edit) => committed.some((existing) => {\n if (edit.start === edit.end) {\n return edit.start > existing.start && edit.start < existing.end;\n }\n if (existing.start === existing.end) {\n return existing.start > edit.start && existing.start < edit.end;\n }\n return edit.start < existing.end && existing.start < edit.end;\n })\n );\n}\nfunction lowerModule({\n module,\n source,\n target,\n host,\n options,\n structuralPass\n}) {\n const stats = {\n found: 0,\n lowered: 0,\n flattened: 0,\n styled: 0,\n bailed: 0\n };\n const structural = structuralPass ? structuralPass.transform({ module, source, target }) : {\n module,\n edits: [],\n imports: [],\n diagnostics: [],\n dependencies: []\n };\n if (structural.module.id !== module.id) {\n throw new Error(\n `Structural pass changed module identity from ${module.id} to ${structural.module.id}`\n );\n }\n if (structuralPass && !structuralPass.versionHash) {\n throw new Error(\"Structural pass must provide a non-empty version hash\");\n }\n module = structural.module;\n validateSourceEdits(source, structural.edits);\n const edits = [...structural.edits];\n const css = /* @__PURE__ */ new Set();\n const diagnostics = [...module.diagnostics, ...structural.diagnostics];\n const dependencies = /* @__PURE__ */ new Set([...module.dependencies, ...structural.dependencies]);\n const imports = new Map(\n structural.imports.map((candidateImport) => [\n candidateImport.content,\n candidateImport\n ])\n );\n for (const element of module.elements) {\n const styledDefinition = styledDefinitionFor(module, element);\n const component = host.resolveComponent(element, styledDefinition);\n if (!component) continue;\n stats.found++;\n const input = {\n id: module.id,\n source,\n target,\n module,\n element,\n styledDefinition,\n component\n };\n const commitDevelopmentDebug = (result2) => {\n const debugEdits = host.developmentDebugInstrumentation?.(input, result2);\n if (!debugEdits) return;\n validateSourceEdits(source, debugEdits);\n if (!editsAreCandidateLocal(element, debugEdits) || overlapsCommitted(debugEdits, edits)) {\n throw new Error(\"Development debug instrumentation must stay candidate-local\");\n }\n edits.push(...debugEdits);\n };\n if (!element.complete || styledDefinition && !styledDefinition.complete) {\n const reasons = [\n ...element.bailouts.map(blocking),\n ...(styledDefinition?.bailouts ?? []).map(blocking)\n ];\n diagnostics.push(...reasons);\n const reason = reasons[0];\n if (reason) commitDevelopmentDebug({ ok: false, bailout: reason });\n stats.bailed++;\n continue;\n }\n const unsafe = element.entries.map((entry) => unsafeEntry(element, entry, component, host)).find((result2) => result2 !== null);\n if (unsafe) {\n diagnostics.push(blocking(unsafe));\n commitDevelopmentDebug({ ok: false, bailout: blocking(unsafe) });\n stats.bailed++;\n continue;\n }\n let result;\n try {\n result = host.lowerCandidate(input);\n } catch (error) {\n result = {\n ok: false,\n bailout: diagnostic(\n \"local/style-resolution-failed\",\n element,\n `Style resolution failed: ${error instanceof Error ? error.message : String(error)}`\n )\n };\n }\n if (!result.ok) {\n diagnostics.push(blocking(result.bailout));\n commitDevelopmentDebug(result);\n stats.bailed++;\n continue;\n }\n try {\n validateSourceEdits(source, result.edits);\n } catch (error) {\n const reason = blocking(\n diagnostic(\n \"local/overlapping-edit\",\n element,\n error instanceof Error ? error.message : String(error)\n )\n );\n diagnostics.push(reason);\n commitDevelopmentDebug({ ok: false, bailout: reason });\n stats.bailed++;\n continue;\n }\n if (!editsAreCandidateLocal(element, result.edits) || overlapsCommitted(result.edits, edits)) {\n const reason = blocking(\n diagnostic(\n \"local/overlapping-edit\",\n element,\n \"Candidate edits overlap another candidate or escape the element span\"\n )\n );\n diagnostics.push(reason);\n commitDevelopmentDebug({ ok: false, bailout: reason });\n stats.bailed++;\n continue;\n }\n diagnostics.push(...result.diagnostics ?? []);\n edits.push(...result.edits);\n commitDevelopmentDebug(result);\n for (const rule of result.css) css.add(rule);\n for (const candidateImport of result.imports) {\n if (!imports.has(candidateImport.content)) {\n imports.set(candidateImport.content, candidateImport);\n }\n }\n for (const dependency of result.dependencies ?? []) dependencies.add(dependency);\n stats.lowered++;\n if (result.flattened) stats.flattened++;\n if (styledDefinition) stats.styled++;\n }\n for (const candidateImport of imports.values()) {\n edits.push({\n start: module.declarationsAt,\n end: module.declarationsAt,\n content: candidateImport.content,\n origin: candidateImport.origin\n });\n }\n return {\n version: LOWERED_MODULE_PLAN_VERSION,\n id: module.id,\n target,\n inputHash: module.inputHash,\n sourceHash: sourceContentHash(source),\n projectGeneration: options.projectGeneration,\n structuralPassHash: structuralPass?.versionHash ?? `${target}-noop-v1`,\n edits,\n css: [...css].join(\"\"),\n diagnostics,\n dependencies: [...dependencies].sort(compareCodeUnits),\n stats\n };\n}\nexport {\n LOWERED_MODULE_PLAN_VERSION,\n lowerModule\n};\n//# sourceMappingURL=lower.js.map\n"],"mappings":"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"}
|
package/dist/esm/materialize.mjs
CHANGED
|
@@ -191,6 +191,7 @@ function materializeModule(graph, id) {
|
|
|
191
191
|
...definition,
|
|
192
192
|
value: materializeValue(graph, definition.value)
|
|
193
193
|
})),
|
|
194
|
+
declarationsAt: result.declarationsAt,
|
|
194
195
|
diagnostics: graph.diagnostics().filter(({ span }) => span.id === id)
|
|
195
196
|
};
|
|
196
197
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materialize.js","names":[],"sources":["esm/materialize.js"],"sourcesContent":["import { collectBranchDependencies } from \"./evaluate\";\nfunction compareCodeUnits(left, right) {\n return left < right ? -1 : left > right ? 1 : 0;\n}\nfunction materializeValue(graph, value) {\n if (value.kind === \"static\") {\n return {\n kind: \"static\",\n value: value.value,\n dependencies: [],\n span: value.span,\n literalOrigin: true\n };\n }\n if (value.kind === \"dom-style\") {\n return {\n kind: \"dom-style\",\n span: value.span,\n items: value.items.map((item) => ({\n condition: item.condition,\n value: materializeValue(graph, item.value)\n }))\n };\n }\n const result = graph.evaluate(value);\n if (result.ok) {\n return {\n kind: \"static\",\n value: result.value,\n dependencies: result.dependencies,\n span: value\n };\n }\n const tree = graph.evaluateBranches(value);\n if (tree) {\n return {\n kind: \"conditional\",\n tree,\n dependencies: collectBranchDependencies(tree).sort(compareCodeUnits),\n bailout: result.bailout,\n span: value\n };\n }\n return {\n kind: \"bailout\",\n bailout: result.bailout,\n span: value,\n dynamic: graph.evaluateDynamic(value)\n };\n}\nfunction materializeStyleObject(graph, reference, bailout) {\n const members = graph.objectMembers(reference);\n if (!members) return null;\n return {\n kind: \"object\",\n span: reference,\n members: members.map((member) => ({\n name: member.name,\n span: member.span,\n value: materializeValue(graph, member.value)\n })),\n bailout\n };\n}\nfunction materializeEntry(graph, entry) {\n if (entry.kind === \"prop\") {\n const value = materializeValue(graph, entry.value);\n return {\n kind: entry.kind,\n name: entry.name,\n span: entry.span,\n value: entry.name === \"style\" && value.kind === \"bailout\" && entry.value.kind === \"expression\" ? materializeStyleObject(graph, entry.value, value.bailout) ?? value : value\n };\n }\n if (entry.kind === \"spread\") {\n return {\n kind: entry.kind,\n span: entry.span,\n value: materializeValue(graph, entry.value)\n };\n }\n if (entry.value.kind === \"element\" || entry.value.kind === \"empty\") {\n return { kind: entry.kind, span: entry.span, value: entry.value };\n }\n return {\n kind: entry.kind,\n span: entry.span,\n value: materializeValue(graph, entry.value)\n };\n}\nfunction materializeElement(graph, element) {\n const entries = element.complete ? element.entries : element.bailedEntries;\n return {\n kind: element.kind,\n form: element.form,\n id: element.id,\n span: element.span,\n propsSpan: element.propsSpan,\n component: element.component,\n complete: element.complete,\n entries: entries.map((entry) => materializeEntry(graph, entry)),\n bailouts: [...element.bailouts]\n };\n}\nfunction materializeStyledDefinition(graph, definition) {\n return {\n kind: definition.kind,\n id: definition.id,\n name: definition.name,\n span: definition.span,\n definitionSpan: definition.definitionSpan,\n factory: definition.factory,\n base: definition.base,\n baseClassName: definition.baseClassName ? materializeValue(graph, definition.baseClassName) : null,\n options: materializeValue(graph, definition.options),\n staticConfig: definition.staticConfig ? materializeValue(graph, definition.staticConfig) : null,\n complete: definition.complete,\n bailouts: [...definition.bailouts]\n };\n}\nfunction collectDependencies(module) {\n const dependencies = /* @__PURE__ */ new Set();\n const collect = (value) => {\n if (value.kind === \"static\" || value.kind === \"conditional\") {\n for (const dependency of value.dependencies) dependencies.add(dependency);\n } else if (value.kind === \"dom-style\") {\n for (const item of value.items) collect(item.value);\n } else if (value.kind === \"object\") {\n for (const member of value.members) collect(member.value);\n if (value.bailout.dependencyId) dependencies.add(value.bailout.dependencyId);\n } else {\n for (const dependency of value.dynamic?.dependencies ?? []) {\n dependencies.add(dependency);\n }\n if (value.bailout.dependencyId) dependencies.add(value.bailout.dependencyId);\n }\n };\n for (const element of module.elements) {\n if (element.component.provenance) {\n dependencies.add(element.component.provenance.resolvedId);\n }\n if (element.component.definition) dependencies.add(element.component.definition.id);\n for (const entry of element.entries) {\n if (\"value\" in entry && entry.value.kind !== \"element\" && entry.value.kind !== \"empty\") {\n collect(entry.value);\n }\n }\n }\n for (const definition of module.styledDefinitions) {\n dependencies.add(definition.factory.resolvedId);\n if (definition.base.provenance)\n dependencies.add(definition.base.provenance.resolvedId);\n if (definition.base.definition) dependencies.add(definition.base.definition.id);\n if (definition.baseClassName) collect(definition.baseClassName);\n collect(definition.options);\n if (definition.staticConfig) collect(definition.staticConfig);\n }\n for (const definition of module.domStyleDefinitions) {\n dependencies.add(definition.factory.resolvedId);\n collect(definition.value);\n }\n return [...dependencies].sort(compareCodeUnits);\n}\nfunction materializeModule(graph, id) {\n const inputHash = graph.contentHash(id);\n if (!inputHash) throw new Error(`Cannot materialize unknown host module ${id}`);\n const result = graph.elementsOf(id);\n const definitions = [...result.styledDefinitions];\n const definitionKeys = new Set(\n definitions.map((definition) => `${definition.id}\\0${definition.name}`)\n );\n for (const element of result.elements) {\n const linked = element.component.definition;\n if (!linked || linked.id === id) continue;\n const definition = graph.elementsOf(linked.id).styledDefinitions.find(\n (candidate) => candidate.id === linked.id && candidate.name === linked.name\n );\n const key = definition && `${definition.id}\\0${definition.name}`;\n if (definition && key && !definitionKeys.has(key)) {\n definitionKeys.add(key);\n definitions.push(definition);\n }\n }\n const base = {\n version: 1,\n id,\n inputHash,\n elements: result.elements.map((element) => materializeElement(graph, element)),\n styledDefinitions: definitions.map(\n (definition) => materializeStyledDefinition(graph, definition)\n ),\n domStyleDefinitions: result.domStyleDefinitions.map((definition) => ({\n ...definition,\n value: materializeValue(graph, definition.value)\n })),\n diagnostics: graph.diagnostics().filter(({ span }) => span.id === id)\n };\n return { ...base, dependencies: collectDependencies(base) };\n}\nexport {\n materializeModule\n};\n//# sourceMappingURL=materialize.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"materialize.js","names":[],"sources":["esm/materialize.js"],"sourcesContent":["import { collectBranchDependencies } from \"./evaluate\";\nfunction compareCodeUnits(left, right) {\n return left < right ? -1 : left > right ? 1 : 0;\n}\nfunction materializeValue(graph, value) {\n if (value.kind === \"static\") {\n return {\n kind: \"static\",\n value: value.value,\n dependencies: [],\n span: value.span,\n literalOrigin: true\n };\n }\n if (value.kind === \"dom-style\") {\n return {\n kind: \"dom-style\",\n span: value.span,\n items: value.items.map((item) => ({\n condition: item.condition,\n value: materializeValue(graph, item.value)\n }))\n };\n }\n const result = graph.evaluate(value);\n if (result.ok) {\n return {\n kind: \"static\",\n value: result.value,\n dependencies: result.dependencies,\n span: value\n };\n }\n const tree = graph.evaluateBranches(value);\n if (tree) {\n return {\n kind: \"conditional\",\n tree,\n dependencies: collectBranchDependencies(tree).sort(compareCodeUnits),\n bailout: result.bailout,\n span: value\n };\n }\n return {\n kind: \"bailout\",\n bailout: result.bailout,\n span: value,\n dynamic: graph.evaluateDynamic(value)\n };\n}\nfunction materializeStyleObject(graph, reference, bailout) {\n const members = graph.objectMembers(reference);\n if (!members) return null;\n return {\n kind: \"object\",\n span: reference,\n members: members.map((member) => ({\n name: member.name,\n span: member.span,\n value: materializeValue(graph, member.value)\n })),\n bailout\n };\n}\nfunction materializeEntry(graph, entry) {\n if (entry.kind === \"prop\") {\n const value = materializeValue(graph, entry.value);\n return {\n kind: entry.kind,\n name: entry.name,\n span: entry.span,\n value: entry.name === \"style\" && value.kind === \"bailout\" && entry.value.kind === \"expression\" ? materializeStyleObject(graph, entry.value, value.bailout) ?? value : value\n };\n }\n if (entry.kind === \"spread\") {\n return {\n kind: entry.kind,\n span: entry.span,\n value: materializeValue(graph, entry.value)\n };\n }\n if (entry.value.kind === \"element\" || entry.value.kind === \"empty\") {\n return { kind: entry.kind, span: entry.span, value: entry.value };\n }\n return {\n kind: entry.kind,\n span: entry.span,\n value: materializeValue(graph, entry.value)\n };\n}\nfunction materializeElement(graph, element) {\n const entries = element.complete ? element.entries : element.bailedEntries;\n return {\n kind: element.kind,\n form: element.form,\n id: element.id,\n span: element.span,\n propsSpan: element.propsSpan,\n component: element.component,\n complete: element.complete,\n entries: entries.map((entry) => materializeEntry(graph, entry)),\n bailouts: [...element.bailouts]\n };\n}\nfunction materializeStyledDefinition(graph, definition) {\n return {\n kind: definition.kind,\n id: definition.id,\n name: definition.name,\n span: definition.span,\n definitionSpan: definition.definitionSpan,\n factory: definition.factory,\n base: definition.base,\n baseClassName: definition.baseClassName ? materializeValue(graph, definition.baseClassName) : null,\n options: materializeValue(graph, definition.options),\n staticConfig: definition.staticConfig ? materializeValue(graph, definition.staticConfig) : null,\n complete: definition.complete,\n bailouts: [...definition.bailouts]\n };\n}\nfunction collectDependencies(module) {\n const dependencies = /* @__PURE__ */ new Set();\n const collect = (value) => {\n if (value.kind === \"static\" || value.kind === \"conditional\") {\n for (const dependency of value.dependencies) dependencies.add(dependency);\n } else if (value.kind === \"dom-style\") {\n for (const item of value.items) collect(item.value);\n } else if (value.kind === \"object\") {\n for (const member of value.members) collect(member.value);\n if (value.bailout.dependencyId) dependencies.add(value.bailout.dependencyId);\n } else {\n for (const dependency of value.dynamic?.dependencies ?? []) {\n dependencies.add(dependency);\n }\n if (value.bailout.dependencyId) dependencies.add(value.bailout.dependencyId);\n }\n };\n for (const element of module.elements) {\n if (element.component.provenance) {\n dependencies.add(element.component.provenance.resolvedId);\n }\n if (element.component.definition) dependencies.add(element.component.definition.id);\n for (const entry of element.entries) {\n if (\"value\" in entry && entry.value.kind !== \"element\" && entry.value.kind !== \"empty\") {\n collect(entry.value);\n }\n }\n }\n for (const definition of module.styledDefinitions) {\n dependencies.add(definition.factory.resolvedId);\n if (definition.base.provenance)\n dependencies.add(definition.base.provenance.resolvedId);\n if (definition.base.definition) dependencies.add(definition.base.definition.id);\n if (definition.baseClassName) collect(definition.baseClassName);\n collect(definition.options);\n if (definition.staticConfig) collect(definition.staticConfig);\n }\n for (const definition of module.domStyleDefinitions) {\n dependencies.add(definition.factory.resolvedId);\n collect(definition.value);\n }\n return [...dependencies].sort(compareCodeUnits);\n}\nfunction materializeModule(graph, id) {\n const inputHash = graph.contentHash(id);\n if (!inputHash) throw new Error(`Cannot materialize unknown host module ${id}`);\n const result = graph.elementsOf(id);\n const definitions = [...result.styledDefinitions];\n const definitionKeys = new Set(\n definitions.map((definition) => `${definition.id}\\0${definition.name}`)\n );\n for (const element of result.elements) {\n const linked = element.component.definition;\n if (!linked || linked.id === id) continue;\n const definition = graph.elementsOf(linked.id).styledDefinitions.find(\n (candidate) => candidate.id === linked.id && candidate.name === linked.name\n );\n const key = definition && `${definition.id}\\0${definition.name}`;\n if (definition && key && !definitionKeys.has(key)) {\n definitionKeys.add(key);\n definitions.push(definition);\n }\n }\n const base = {\n version: 1,\n id,\n inputHash,\n elements: result.elements.map((element) => materializeElement(graph, element)),\n styledDefinitions: definitions.map(\n (definition) => materializeStyledDefinition(graph, definition)\n ),\n domStyleDefinitions: result.domStyleDefinitions.map((definition) => ({\n ...definition,\n value: materializeValue(graph, definition.value)\n })),\n declarationsAt: result.declarationsAt,\n diagnostics: graph.diagnostics().filter(({ span }) => span.id === id)\n };\n return { ...base, dependencies: collectDependencies(base) };\n}\nexport {\n materializeModule\n};\n//# sourceMappingURL=materialize.js.map\n"],"mappings":"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"}
|
package/dist/esm/normalize.mjs
CHANGED
|
@@ -586,9 +586,19 @@ function normalizeElements(candidate, rawId, imports = []) {
|
|
|
586
586
|
elements: elements.sort((left, right) => left.span.start - right.span.start),
|
|
587
587
|
styledDefinitions: styledDefinitions(candidate, id, program, imports, bailouts),
|
|
588
588
|
domStyleDefinitions: domStyleDefinitions(id, program, imports),
|
|
589
|
+
declarationsAt: declarationsOffset(program),
|
|
589
590
|
bailouts: bailouts.sort((left, right) => left.span.start - right.span.start)
|
|
590
591
|
};
|
|
591
592
|
}
|
|
593
|
+
function declarationsOffset(program) {
|
|
594
|
+
let offset = 0;
|
|
595
|
+
for (const statement of childNodes(program, "body")) {
|
|
596
|
+
if (statement.type === "ImportDeclaration" || typeof statement.directive === "string") {
|
|
597
|
+
offset = statement.end;
|
|
598
|
+
} else break;
|
|
599
|
+
}
|
|
600
|
+
return offset;
|
|
601
|
+
}
|
|
592
602
|
function nodeAtSpan(program, start, end) {
|
|
593
603
|
return findAstNode(program, (node) => node.start === start && node.end === end, {
|
|
594
604
|
start,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.js","names":[],"sources":["esm/normalize.js"],"sourcesContent":["import {\n childNode,\n childNodes,\n findAstNode,\n identifierName,\n isAstNode,\n walkAst\n} from \"./ast\";\nimport {\n expressionReference,\n resolvedModuleId,\n spanOf\n} from \"./contracts\";\nimport { linkedBailout, localBailout } from \"./diagnostics\";\nimport { hostImportProvenance } from \"./ir\";\nfunction finalizeElement(base, entries, bailouts) {\n if (bailouts.length === 0) {\n return { ...base, complete: true, entries, bailouts: [] };\n }\n return {\n ...base,\n complete: false,\n bailedEntries: entries,\n bailouts\n };\n}\nfunction definitionFromDeclaration(id, name, declaration, parentOf) {\n let identifier = declaration;\n let initializer = null;\n let constant = false;\n if (declaration.type === \"VariableDeclarator\") {\n identifier = childNode(declaration, \"id\") ?? declaration;\n initializer = childNode(declaration, \"init\");\n const parent = parentOf(declaration);\n constant = parent?.type === \"VariableDeclaration\" && parent.kind === \"const\";\n } else if (declaration.type === \"Identifier\") {\n const declarator = parentOf(declaration);\n if (declarator?.type === \"VariableDeclarator\" && childNode(declarator, \"id\")?.start === declaration.start) {\n initializer = childNode(declarator, \"init\");\n const parent = parentOf(declarator);\n constant = parent?.type === \"VariableDeclaration\" && parent.kind === \"const\";\n }\n }\n return {\n id: resolvedModuleId(id),\n name,\n start: identifier.start,\n end: identifier.end,\n initializer,\n constant\n };\n}\nfunction importBinding(program, localName) {\n for (const statement of childNodes(program, \"body\")) {\n if (statement.type !== \"ImportDeclaration\") continue;\n const source = childNode(statement, \"source\");\n const sourceValue = source && typeof source.value === \"string\" ? source.value : null;\n if (!sourceValue) continue;\n for (const specifier of childNodes(statement, \"specifiers\")) {\n if (identifierName(childNode(specifier, \"local\")) !== localName) continue;\n if (specifier.type === \"ImportDefaultSpecifier\") {\n return { source: sourceValue, imported: \"default\" };\n }\n if (specifier.type === \"ImportNamespaceSpecifier\") {\n return { source: sourceValue, imported: \"*\" };\n }\n const imported = childNode(specifier, \"imported\");\n const importedName = identifierName(imported) ?? (typeof imported?.value === \"string\" ? imported.value : null);\n return importedName ? { source: sourceValue, imported: importedName } : null;\n }\n }\n return null;\n}\nfunction asStaticValue(node) {\n if (!node) return void 0;\n if (node.type === \"NullLiteral\") return null;\n if (node.type === \"Literal\" || node.type.endsWith(\"Literal\")) {\n const value = node.value;\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\" || value === null) {\n return value;\n }\n }\n return void 0;\n}\nfunction elementValue(id, node) {\n const staticValue = asStaticValue(node);\n return staticValue === void 0 ? expressionReference(id, node) : { kind: \"static\", value: staticValue, span: spanOf(id, node) };\n}\nfunction symbolDefinition(definition) {\n if (!definition) return null;\n return {\n id: definition.id,\n name: definition.name,\n span: {\n id: definition.id,\n start: definition.start,\n end: definition.end\n },\n initializer: definition.initializer ? expressionReference(definition.id, definition.initializer) : null,\n constant: definition.constant\n };\n}\nfunction componentFromNode(candidate, id, program, imports, node, bailouts) {\n const literal = asStaticValue(node);\n if (typeof literal === \"string\") {\n return {\n kind: \"intrinsic\",\n name: literal,\n span: spanOf(id, node),\n closingSpan: null,\n definition: null,\n provenance: null\n };\n }\n if ((node.type === \"MemberExpression\" || node.type === \"JSXMemberExpression\") && node.computed !== true) {\n const objectName = identifierName(childNode(node, \"object\"));\n const memberName = identifierName(childNode(node, \"property\"));\n const binding2 = objectName ? importBinding(program, objectName) : null;\n if (memberName && binding2?.imported === \"html\") {\n const provenance2 = hostImportProvenance(imports, binding2.source, binding2.imported);\n if (provenance2) {\n return {\n kind: \"binding\",\n name: memberName,\n span: spanOf(id, node),\n closingSpan: null,\n definition: null,\n provenance: provenance2\n };\n }\n }\n }\n const name = identifierName(node);\n if (!name) {\n bailouts.push(\n localBailout(\n \"local/unsupported-element-name\",\n spanOf(id, node),\n `Element target ${node.type} is not a stable identifier or intrinsic tag`\n )\n );\n return null;\n }\n const intrinsic = /^[a-z]/.test(name);\n const binding = intrinsic ? null : importBinding(program, name);\n const provenance = binding ? hostImportProvenance(imports, binding.source, binding.imported) : null;\n const definition = intrinsic ? null : symbolDefinition(candidate.definitionOf(id, name));\n if (!intrinsic && !definition && !provenance) {\n bailouts.push(\n linkedBailout(\n \"linked/unresolved-component-binding\",\n spanOf(id, node),\n `Component binding ${name} has no linked definition`\n )\n );\n }\n return {\n kind: intrinsic ? \"intrinsic\" : \"binding\",\n name,\n span: spanOf(id, node),\n closingSpan: null,\n definition,\n provenance\n };\n}\nfunction jsxComponentNode(opening) {\n return childNode(opening, \"name\");\n}\nfunction jsxEntries(id, element, opening, bailouts) {\n const entries = [];\n for (const attribute of childNodes(opening, \"attributes\")) {\n if (attribute.type === \"JSXSpreadAttribute\") {\n const argument = childNode(attribute, \"argument\");\n if (argument) {\n entries.push({\n kind: \"spread\",\n span: spanOf(id, attribute),\n value: expressionReference(id, argument)\n });\n }\n continue;\n }\n if (attribute.type !== \"JSXAttribute\") continue;\n const nameNode = childNode(attribute, \"name\");\n const name = identifierName(nameNode);\n if (!name) {\n bailouts.push(\n localBailout(\n \"local/unsupported-prop-key\",\n spanOf(id, attribute),\n \"Namespaced JSX attributes are not statically supported\"\n )\n );\n continue;\n }\n const rawValue = childNode(attribute, \"value\");\n let value;\n if (!rawValue) {\n value = { kind: \"static\", value: true, span: spanOf(id, attribute) };\n } else if (rawValue.type === \"JSXExpressionContainer\") {\n const expression = childNode(rawValue, \"expression\");\n if (!expression || expression.type === \"JSXEmptyExpression\") {\n bailouts.push(\n localBailout(\n \"local/unsupported-expression\",\n spanOf(id, rawValue),\n `JSX prop ${name} has no expression`\n )\n );\n continue;\n }\n value = elementValue(id, expression);\n } else {\n value = elementValue(id, rawValue);\n }\n entries.push({ kind: \"prop\", name, span: spanOf(id, attribute), value });\n }\n for (const child of childNodes(element, \"children\")) {\n let value;\n if (child.type === \"JSXText\") {\n if (typeof child.value !== \"string\" || child.value.trim() === \"\") continue;\n value = {\n kind: \"static\",\n value: child.value,\n span: spanOf(id, child)\n };\n } else if (child.type === \"JSXExpressionContainer\") {\n const expression = childNode(child, \"expression\");\n value = !expression || expression.type === \"JSXEmptyExpression\" ? { kind: \"empty\", span: spanOf(id, child) } : elementValue(id, expression);\n } else if (child.type === \"JSXElement\" || child.type === \"JSXFragment\") {\n value = { kind: \"element\", span: spanOf(id, child) };\n } else {\n bailouts.push(\n localBailout(\n \"local/unsupported-child\",\n spanOf(id, child),\n `JSX child ${child.type} cannot be normalized`\n )\n );\n continue;\n }\n entries.push({ kind: \"child\", span: spanOf(id, child), value });\n }\n return entries.sort((left, right) => left.span.start - right.span.start);\n}\nfunction propertyName(property) {\n if (property.computed === true) return null;\n const key = childNode(property, \"key\");\n const name = identifierName(key);\n if (name) return name;\n const literal = asStaticValue(key);\n return typeof literal === \"string\" || typeof literal === \"number\" ? String(literal) : null;\n}\nfunction runtimeChildEntries(id, program, node, bailouts) {\n const rawNodes = node.type === \"ArrayExpression\" ? node.elements : null;\n if (Array.isArray(rawNodes) && rawNodes.some((child) => child === null || !isAstNode(child))) {\n bailouts.push(\n localBailout(\n \"local/unsupported-child\",\n spanOf(id, node),\n \"Sparse compiled children cannot be normalized without changing order\"\n )\n );\n return [];\n }\n const nodes = Array.isArray(rawNodes) ? rawNodes.filter(isAstNode) : [node];\n return nodes.flatMap((child) => {\n if (child.type === \"SpreadElement\") {\n bailouts.push(\n localBailout(\n \"local/unsupported-child\",\n spanOf(id, child),\n \"Spread children cannot be statically ordered\"\n )\n );\n return [];\n }\n if (child.type === \"CallExpression\" && runtimeCall(program, child)) {\n return [\n {\n kind: \"child\",\n span: spanOf(id, child),\n value: { kind: \"element\", span: spanOf(id, child) }\n }\n ];\n }\n return [{ kind: \"child\", span: spanOf(id, child), value: elementValue(id, child) }];\n });\n}\nfunction objectEntries(id, program, object, bailouts) {\n const entries = [];\n for (const property of childNodes(object, \"properties\")) {\n if (property.type === \"SpreadElement\") {\n const argument = childNode(property, \"argument\");\n if (argument) {\n const spread = {\n kind: \"spread\",\n span: spanOf(id, property),\n value: expressionReference(id, argument)\n };\n entries.push(spread);\n }\n continue;\n }\n if (property.type !== \"Property\" && property.type !== \"ObjectProperty\") {\n bailouts.push(\n localBailout(\n \"local/unsupported-prop-key\",\n spanOf(id, property),\n `Runtime props entry ${property.type} is not a data property`\n )\n );\n continue;\n }\n const name = propertyName(property);\n const valueNode = childNode(property, \"value\");\n if (!name || !valueNode) {\n bailouts.push(\n localBailout(\n \"local/unsupported-prop-key\",\n spanOf(id, property),\n \"Computed runtime prop keys are not statically supported\"\n )\n );\n continue;\n }\n if (name === \"children\") {\n entries.push(...runtimeChildEntries(id, program, valueNode, bailouts));\n continue;\n }\n const prop = {\n kind: \"prop\",\n name,\n span: spanOf(id, property),\n value: elementValue(id, valueNode)\n };\n entries.push(prop);\n }\n return entries;\n}\nfunction runtimeCall(program, call) {\n const callee = childNode(call, \"callee\");\n if (!callee) return null;\n const directName = identifierName(callee);\n if (directName) {\n const provenance2 = importBinding(program, directName);\n if (provenance2?.source === \"react/jsx-runtime\" && (provenance2.imported === \"jsx\" || provenance2.imported === \"jsxs\")) {\n return { form: \"jsx-runtime\" };\n }\n if (provenance2?.source === \"react\" && provenance2.imported === \"createElement\") {\n return { form: \"create-element\" };\n }\n }\n if (callee.type !== \"MemberExpression\" || callee.computed === true) return null;\n const objectName = identifierName(childNode(callee, \"object\"));\n const propertyName2 = identifierName(childNode(callee, \"property\"));\n if (propertyName2 !== \"createElement\" || !objectName) return null;\n const provenance = importBinding(program, objectName);\n return provenance?.source === \"react\" && (provenance.imported === \"default\" || provenance.imported === \"*\") ? { form: \"create-element\" } : null;\n}\nfunction normalizeRuntimeElement(candidate, id, program, imports, call, runtime, bailouts) {\n const bailoutStart = bailouts.length;\n const args = childNodes(call, \"arguments\");\n const target = args[0];\n if (!target) {\n bailouts.push(\n localBailout(\n \"local/invalid-element-call\",\n spanOf(id, call),\n `${runtime.form} call has no element target`\n )\n );\n return null;\n }\n const component = componentFromNode(candidate, id, program, imports, target, bailouts);\n if (!component) return null;\n const entries = [];\n const props = args[1];\n if (props && asStaticValue(props) !== null) {\n if (props.type === \"ObjectExpression\") {\n entries.push(...objectEntries(id, program, props, bailouts));\n } else {\n entries.push({\n kind: \"spread\",\n span: spanOf(id, props),\n value: expressionReference(id, props)\n });\n }\n }\n if (runtime.form === \"create-element\") {\n for (const child of args.slice(2)) {\n entries.push(...runtimeChildEntries(id, program, child, bailouts));\n }\n }\n return finalizeElement(\n {\n kind: \"element\",\n form: runtime.form,\n id,\n span: spanOf(id, call),\n propsSpan: props ? spanOf(id, props) : null,\n component\n },\n entries.sort((left, right) => left.span.start - right.span.start),\n bailouts.slice(bailoutStart)\n );\n}\nfunction styledDefinitions(candidate, id, program, imports, bailouts) {\n const definitions = [];\n walkAst(program, (node) => {\n if (node.type !== \"VariableDeclarator\") return;\n const identifier = childNode(node, \"id\");\n const name = identifierName(identifier);\n const call = childNode(node, \"init\");\n if (!name || !identifier || call?.type !== \"CallExpression\") return;\n const callee = childNode(call, \"callee\");\n const factoryName = callee && identifierName(callee);\n if (!factoryName) return;\n const binding = importBinding(program, factoryName);\n if (!binding || binding.imported !== \"styled\") return;\n const factory = hostImportProvenance(imports, binding.source, binding.imported);\n if (!factory) return;\n const definitionBailouts = [];\n const args = childNodes(call, \"arguments\");\n const baseNode = args[0];\n const objectForm = args[1]?.type === \"ObjectExpression\";\n const optionsNode = objectForm ? args[1] : args.length >= 3 ? args[2] : args[1];\n if (!baseNode || !optionsNode) {\n definitionBailouts.push(\n localBailout(\n \"local/unsupported-styled-definition\",\n spanOf(id, call),\n `styled definition ${name} must provide a base and options object`\n )\n );\n bailouts.push(...definitionBailouts);\n return;\n }\n const base = componentFromNode(\n candidate,\n id,\n program,\n imports,\n baseNode,\n definitionBailouts\n );\n if (!base) {\n bailouts.push(...definitionBailouts);\n return;\n }\n const baseClassNode = objectForm ? null : args.length >= 3 ? args[1] : null;\n const staticConfigNode = objectForm && args.length >= 3 ? args[2] : null;\n const baseDefinition = {\n kind: \"styled-definition\",\n id,\n name,\n span: spanOf(id, call),\n definitionSpan: spanOf(id, identifier),\n factory,\n base,\n baseClassName: baseClassNode ? elementValue(id, baseClassNode) : null,\n options: expressionReference(id, optionsNode),\n staticConfig: staticConfigNode ? expressionReference(id, staticConfigNode) : null\n };\n definitions.push(\n definitionBailouts.length === 0 ? { ...baseDefinition, complete: true, bailouts: [] } : {\n ...baseDefinition,\n complete: false,\n bailouts: definitionBailouts\n }\n );\n bailouts.push(...definitionBailouts);\n });\n return definitions.sort((left, right) => left.span.start - right.span.start);\n}\nconst DOM_STYLE_FRONTENDS = /* @__PURE__ */ new Set([\n \"tamagui/dom\",\n \"@tamagui/core/dom\",\n \"@tamagui/tailwind\"\n]);\nconst STYLE_FRONTENDS = /* @__PURE__ */ new Set([\n ...DOM_STYLE_FRONTENDS,\n \"tamagui\",\n \"@tamagui/core\",\n \"@tamagui/web\"\n]);\nfunction domStyleDefinitions(id, program, imports) {\n const definitions = [];\n walkAst(program, (node) => {\n if (node.type !== \"VariableDeclarator\") return;\n const identifier = childNode(node, \"id\");\n const name = identifierName(identifier);\n const call = childNode(node, \"init\");\n if (!name || !identifier || call?.type !== \"CallExpression\") return;\n const callee = childNode(call, \"callee\");\n const factoryName = callee && identifierName(callee);\n if (!factoryName) return;\n const binding = importBinding(program, factoryName);\n if (!binding || binding.imported !== \"style\" || !STYLE_FRONTENDS.has(binding.source)) {\n return;\n }\n const factory = hostImportProvenance(imports, binding.source, binding.imported);\n const value = childNodes(call, \"arguments\")[0];\n if (!factory || !value) return;\n definitions.push({\n kind: \"dom-style-definition\",\n id,\n name,\n span: spanOf(id, call),\n definitionSpan: spanOf(id, identifier),\n factory,\n value: expressionReference(id, value)\n });\n });\n return definitions.sort((left, right) => left.span.start - right.span.start);\n}\nfunction domStyleArgument(candidate, id, program, node) {\n let call = node;\n if (node.type === \"Identifier\") {\n const name = identifierName(node);\n const definition = name ? candidate.definitionOf(id, name) : null;\n if (!definition?.constant || !definition.initializer) return null;\n call = definition.initializer;\n }\n if (call.type !== \"CallExpression\") return null;\n const callee = childNode(call, \"callee\");\n const factoryName = callee && identifierName(callee);\n if (!factoryName) return null;\n const binding = importBinding(program, factoryName);\n if (!binding || binding.imported !== \"style\" || !STYLE_FRONTENDS.has(binding.source)) {\n return null;\n }\n return childNodes(call, \"arguments\")[0] ?? null;\n}\nfunction domStyleProgram(candidate, id, program, node) {\n if (node.type !== \"ArrayExpression\" || !Array.isArray(node.elements)) {\n const argument = domStyleArgument(candidate, id, program, node);\n return argument ? {\n kind: \"dom-style\",\n span: spanOf(id, node),\n items: [{ condition: null, value: expressionReference(id, argument) }]\n } : null;\n }\n const items = [];\n for (const rawItem of node.elements) {\n if (!isAstNode(rawItem)) return null;\n let item = rawItem;\n let condition = null;\n if (item.type === \"LogicalExpression\" && item.operator === \"&&\") {\n const left = childNode(item, \"left\");\n const right = childNode(item, \"right\");\n if (!left || !right) return null;\n condition = expressionReference(id, left);\n item = right;\n }\n const argument = domStyleArgument(candidate, id, program, item);\n if (!argument) {\n const staticValue = asStaticValue(item);\n if (staticValue === false || staticValue === null) continue;\n return null;\n }\n items.push({ condition, value: expressionReference(id, argument) });\n }\n return { kind: \"dom-style\", span: spanOf(id, node), items };\n}\nfunction normalizeElements(candidate, rawId, imports = []) {\n const id = resolvedModuleId(rawId);\n const program = candidate.programOf(id);\n const elements = [];\n const bailouts = [];\n walkAst(program, (node) => {\n if (node.type === \"JSXElement\") {\n const bailoutStart = bailouts.length;\n const opening = childNode(node, \"openingElement\");\n const target = opening && jsxComponentNode(opening);\n if (!opening || !target) return;\n const component = componentFromNode(\n candidate,\n id,\n program,\n imports,\n target,\n bailouts\n );\n if (!component) return;\n const closingElement = childNode(node, \"closingElement\");\n const closingName = closingElement && childNode(closingElement, \"name\");\n if (closingName) component.closingSpan = spanOf(id, closingName);\n const entries = jsxEntries(id, node, opening, bailouts);\n for (const entry of entries) {\n if (entry.kind !== \"prop\" || entry.name !== \"style\") continue;\n const raw = entry.value.kind === \"expression\" ? nodeAtSpan(program, entry.value.start, entry.value.end) : null;\n const styleProgram = raw && domStyleProgram(candidate, id, program, raw);\n const argument = raw && domStyleArgument(candidate, id, program, raw);\n if (styleProgram) entry.value = styleProgram;\n else if (argument) entry.value = expressionReference(id, argument);\n }\n elements.push(\n finalizeElement(\n {\n kind: \"element\",\n form: \"jsx\",\n id,\n span: spanOf(id, node),\n propsSpan: spanOf(id, opening),\n component\n },\n entries,\n bailouts.slice(bailoutStart)\n )\n );\n return;\n }\n if (node.type !== \"CallExpression\") return;\n const runtime = runtimeCall(program, node);\n if (!runtime) return;\n const element = normalizeRuntimeElement(\n candidate,\n id,\n program,\n imports,\n node,\n runtime,\n bailouts\n );\n if (element) {\n const entries = element.complete ? element.entries : element.bailedEntries;\n for (const entry of entries) {\n if (entry.kind !== \"prop\" || entry.name !== \"style\") continue;\n const raw = entry.value.kind === \"expression\" ? nodeAtSpan(program, entry.value.start, entry.value.end) : null;\n const styleProgram = raw && domStyleProgram(candidate, id, program, raw);\n const argument = raw && domStyleArgument(candidate, id, program, raw);\n if (styleProgram) entry.value = styleProgram;\n else if (argument) entry.value = expressionReference(id, argument);\n }\n elements.push(element);\n }\n });\n return {\n elements: elements.sort((left, right) => left.span.start - right.span.start),\n styledDefinitions: styledDefinitions(candidate, id, program, imports, bailouts),\n domStyleDefinitions: domStyleDefinitions(id, program, imports),\n bailouts: bailouts.sort((left, right) => left.span.start - right.span.start)\n };\n}\nfunction nodeAtSpan(program, start, end) {\n return findAstNode(program, (node) => node.start === start && node.end === end, {\n start,\n end\n });\n}\nfunction asAstNode(value, label) {\n if (!isAstNode(value)) throw new Error(`${label} is not an AST node`);\n return value;\n}\nexport {\n asAstNode,\n definitionFromDeclaration,\n nodeAtSpan,\n normalizeElements\n};\n//# sourceMappingURL=normalize.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"normalize.js","names":[],"sources":["esm/normalize.js"],"sourcesContent":["import {\n childNode,\n childNodes,\n findAstNode,\n identifierName,\n isAstNode,\n walkAst\n} from \"./ast\";\nimport {\n expressionReference,\n resolvedModuleId,\n spanOf\n} from \"./contracts\";\nimport { linkedBailout, localBailout } from \"./diagnostics\";\nimport { hostImportProvenance } from \"./ir\";\nfunction finalizeElement(base, entries, bailouts) {\n if (bailouts.length === 0) {\n return { ...base, complete: true, entries, bailouts: [] };\n }\n return {\n ...base,\n complete: false,\n bailedEntries: entries,\n bailouts\n };\n}\nfunction definitionFromDeclaration(id, name, declaration, parentOf) {\n let identifier = declaration;\n let initializer = null;\n let constant = false;\n if (declaration.type === \"VariableDeclarator\") {\n identifier = childNode(declaration, \"id\") ?? declaration;\n initializer = childNode(declaration, \"init\");\n const parent = parentOf(declaration);\n constant = parent?.type === \"VariableDeclaration\" && parent.kind === \"const\";\n } else if (declaration.type === \"Identifier\") {\n const declarator = parentOf(declaration);\n if (declarator?.type === \"VariableDeclarator\" && childNode(declarator, \"id\")?.start === declaration.start) {\n initializer = childNode(declarator, \"init\");\n const parent = parentOf(declarator);\n constant = parent?.type === \"VariableDeclaration\" && parent.kind === \"const\";\n }\n }\n return {\n id: resolvedModuleId(id),\n name,\n start: identifier.start,\n end: identifier.end,\n initializer,\n constant\n };\n}\nfunction importBinding(program, localName) {\n for (const statement of childNodes(program, \"body\")) {\n if (statement.type !== \"ImportDeclaration\") continue;\n const source = childNode(statement, \"source\");\n const sourceValue = source && typeof source.value === \"string\" ? source.value : null;\n if (!sourceValue) continue;\n for (const specifier of childNodes(statement, \"specifiers\")) {\n if (identifierName(childNode(specifier, \"local\")) !== localName) continue;\n if (specifier.type === \"ImportDefaultSpecifier\") {\n return { source: sourceValue, imported: \"default\" };\n }\n if (specifier.type === \"ImportNamespaceSpecifier\") {\n return { source: sourceValue, imported: \"*\" };\n }\n const imported = childNode(specifier, \"imported\");\n const importedName = identifierName(imported) ?? (typeof imported?.value === \"string\" ? imported.value : null);\n return importedName ? { source: sourceValue, imported: importedName } : null;\n }\n }\n return null;\n}\nfunction asStaticValue(node) {\n if (!node) return void 0;\n if (node.type === \"NullLiteral\") return null;\n if (node.type === \"Literal\" || node.type.endsWith(\"Literal\")) {\n const value = node.value;\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\" || value === null) {\n return value;\n }\n }\n return void 0;\n}\nfunction elementValue(id, node) {\n const staticValue = asStaticValue(node);\n return staticValue === void 0 ? expressionReference(id, node) : { kind: \"static\", value: staticValue, span: spanOf(id, node) };\n}\nfunction symbolDefinition(definition) {\n if (!definition) return null;\n return {\n id: definition.id,\n name: definition.name,\n span: {\n id: definition.id,\n start: definition.start,\n end: definition.end\n },\n initializer: definition.initializer ? expressionReference(definition.id, definition.initializer) : null,\n constant: definition.constant\n };\n}\nfunction componentFromNode(candidate, id, program, imports, node, bailouts) {\n const literal = asStaticValue(node);\n if (typeof literal === \"string\") {\n return {\n kind: \"intrinsic\",\n name: literal,\n span: spanOf(id, node),\n closingSpan: null,\n definition: null,\n provenance: null\n };\n }\n if ((node.type === \"MemberExpression\" || node.type === \"JSXMemberExpression\") && node.computed !== true) {\n const objectName = identifierName(childNode(node, \"object\"));\n const memberName = identifierName(childNode(node, \"property\"));\n const binding2 = objectName ? importBinding(program, objectName) : null;\n if (memberName && binding2?.imported === \"html\") {\n const provenance2 = hostImportProvenance(imports, binding2.source, binding2.imported);\n if (provenance2) {\n return {\n kind: \"binding\",\n name: memberName,\n span: spanOf(id, node),\n closingSpan: null,\n definition: null,\n provenance: provenance2\n };\n }\n }\n }\n const name = identifierName(node);\n if (!name) {\n bailouts.push(\n localBailout(\n \"local/unsupported-element-name\",\n spanOf(id, node),\n `Element target ${node.type} is not a stable identifier or intrinsic tag`\n )\n );\n return null;\n }\n const intrinsic = /^[a-z]/.test(name);\n const binding = intrinsic ? null : importBinding(program, name);\n const provenance = binding ? hostImportProvenance(imports, binding.source, binding.imported) : null;\n const definition = intrinsic ? null : symbolDefinition(candidate.definitionOf(id, name));\n if (!intrinsic && !definition && !provenance) {\n bailouts.push(\n linkedBailout(\n \"linked/unresolved-component-binding\",\n spanOf(id, node),\n `Component binding ${name} has no linked definition`\n )\n );\n }\n return {\n kind: intrinsic ? \"intrinsic\" : \"binding\",\n name,\n span: spanOf(id, node),\n closingSpan: null,\n definition,\n provenance\n };\n}\nfunction jsxComponentNode(opening) {\n return childNode(opening, \"name\");\n}\nfunction jsxEntries(id, element, opening, bailouts) {\n const entries = [];\n for (const attribute of childNodes(opening, \"attributes\")) {\n if (attribute.type === \"JSXSpreadAttribute\") {\n const argument = childNode(attribute, \"argument\");\n if (argument) {\n entries.push({\n kind: \"spread\",\n span: spanOf(id, attribute),\n value: expressionReference(id, argument)\n });\n }\n continue;\n }\n if (attribute.type !== \"JSXAttribute\") continue;\n const nameNode = childNode(attribute, \"name\");\n const name = identifierName(nameNode);\n if (!name) {\n bailouts.push(\n localBailout(\n \"local/unsupported-prop-key\",\n spanOf(id, attribute),\n \"Namespaced JSX attributes are not statically supported\"\n )\n );\n continue;\n }\n const rawValue = childNode(attribute, \"value\");\n let value;\n if (!rawValue) {\n value = { kind: \"static\", value: true, span: spanOf(id, attribute) };\n } else if (rawValue.type === \"JSXExpressionContainer\") {\n const expression = childNode(rawValue, \"expression\");\n if (!expression || expression.type === \"JSXEmptyExpression\") {\n bailouts.push(\n localBailout(\n \"local/unsupported-expression\",\n spanOf(id, rawValue),\n `JSX prop ${name} has no expression`\n )\n );\n continue;\n }\n value = elementValue(id, expression);\n } else {\n value = elementValue(id, rawValue);\n }\n entries.push({ kind: \"prop\", name, span: spanOf(id, attribute), value });\n }\n for (const child of childNodes(element, \"children\")) {\n let value;\n if (child.type === \"JSXText\") {\n if (typeof child.value !== \"string\" || child.value.trim() === \"\") continue;\n value = {\n kind: \"static\",\n value: child.value,\n span: spanOf(id, child)\n };\n } else if (child.type === \"JSXExpressionContainer\") {\n const expression = childNode(child, \"expression\");\n value = !expression || expression.type === \"JSXEmptyExpression\" ? { kind: \"empty\", span: spanOf(id, child) } : elementValue(id, expression);\n } else if (child.type === \"JSXElement\" || child.type === \"JSXFragment\") {\n value = { kind: \"element\", span: spanOf(id, child) };\n } else {\n bailouts.push(\n localBailout(\n \"local/unsupported-child\",\n spanOf(id, child),\n `JSX child ${child.type} cannot be normalized`\n )\n );\n continue;\n }\n entries.push({ kind: \"child\", span: spanOf(id, child), value });\n }\n return entries.sort((left, right) => left.span.start - right.span.start);\n}\nfunction propertyName(property) {\n if (property.computed === true) return null;\n const key = childNode(property, \"key\");\n const name = identifierName(key);\n if (name) return name;\n const literal = asStaticValue(key);\n return typeof literal === \"string\" || typeof literal === \"number\" ? String(literal) : null;\n}\nfunction runtimeChildEntries(id, program, node, bailouts) {\n const rawNodes = node.type === \"ArrayExpression\" ? node.elements : null;\n if (Array.isArray(rawNodes) && rawNodes.some((child) => child === null || !isAstNode(child))) {\n bailouts.push(\n localBailout(\n \"local/unsupported-child\",\n spanOf(id, node),\n \"Sparse compiled children cannot be normalized without changing order\"\n )\n );\n return [];\n }\n const nodes = Array.isArray(rawNodes) ? rawNodes.filter(isAstNode) : [node];\n return nodes.flatMap((child) => {\n if (child.type === \"SpreadElement\") {\n bailouts.push(\n localBailout(\n \"local/unsupported-child\",\n spanOf(id, child),\n \"Spread children cannot be statically ordered\"\n )\n );\n return [];\n }\n if (child.type === \"CallExpression\" && runtimeCall(program, child)) {\n return [\n {\n kind: \"child\",\n span: spanOf(id, child),\n value: { kind: \"element\", span: spanOf(id, child) }\n }\n ];\n }\n return [{ kind: \"child\", span: spanOf(id, child), value: elementValue(id, child) }];\n });\n}\nfunction objectEntries(id, program, object, bailouts) {\n const entries = [];\n for (const property of childNodes(object, \"properties\")) {\n if (property.type === \"SpreadElement\") {\n const argument = childNode(property, \"argument\");\n if (argument) {\n const spread = {\n kind: \"spread\",\n span: spanOf(id, property),\n value: expressionReference(id, argument)\n };\n entries.push(spread);\n }\n continue;\n }\n if (property.type !== \"Property\" && property.type !== \"ObjectProperty\") {\n bailouts.push(\n localBailout(\n \"local/unsupported-prop-key\",\n spanOf(id, property),\n `Runtime props entry ${property.type} is not a data property`\n )\n );\n continue;\n }\n const name = propertyName(property);\n const valueNode = childNode(property, \"value\");\n if (!name || !valueNode) {\n bailouts.push(\n localBailout(\n \"local/unsupported-prop-key\",\n spanOf(id, property),\n \"Computed runtime prop keys are not statically supported\"\n )\n );\n continue;\n }\n if (name === \"children\") {\n entries.push(...runtimeChildEntries(id, program, valueNode, bailouts));\n continue;\n }\n const prop = {\n kind: \"prop\",\n name,\n span: spanOf(id, property),\n value: elementValue(id, valueNode)\n };\n entries.push(prop);\n }\n return entries;\n}\nfunction runtimeCall(program, call) {\n const callee = childNode(call, \"callee\");\n if (!callee) return null;\n const directName = identifierName(callee);\n if (directName) {\n const provenance2 = importBinding(program, directName);\n if (provenance2?.source === \"react/jsx-runtime\" && (provenance2.imported === \"jsx\" || provenance2.imported === \"jsxs\")) {\n return { form: \"jsx-runtime\" };\n }\n if (provenance2?.source === \"react\" && provenance2.imported === \"createElement\") {\n return { form: \"create-element\" };\n }\n }\n if (callee.type !== \"MemberExpression\" || callee.computed === true) return null;\n const objectName = identifierName(childNode(callee, \"object\"));\n const propertyName2 = identifierName(childNode(callee, \"property\"));\n if (propertyName2 !== \"createElement\" || !objectName) return null;\n const provenance = importBinding(program, objectName);\n return provenance?.source === \"react\" && (provenance.imported === \"default\" || provenance.imported === \"*\") ? { form: \"create-element\" } : null;\n}\nfunction normalizeRuntimeElement(candidate, id, program, imports, call, runtime, bailouts) {\n const bailoutStart = bailouts.length;\n const args = childNodes(call, \"arguments\");\n const target = args[0];\n if (!target) {\n bailouts.push(\n localBailout(\n \"local/invalid-element-call\",\n spanOf(id, call),\n `${runtime.form} call has no element target`\n )\n );\n return null;\n }\n const component = componentFromNode(candidate, id, program, imports, target, bailouts);\n if (!component) return null;\n const entries = [];\n const props = args[1];\n if (props && asStaticValue(props) !== null) {\n if (props.type === \"ObjectExpression\") {\n entries.push(...objectEntries(id, program, props, bailouts));\n } else {\n entries.push({\n kind: \"spread\",\n span: spanOf(id, props),\n value: expressionReference(id, props)\n });\n }\n }\n if (runtime.form === \"create-element\") {\n for (const child of args.slice(2)) {\n entries.push(...runtimeChildEntries(id, program, child, bailouts));\n }\n }\n return finalizeElement(\n {\n kind: \"element\",\n form: runtime.form,\n id,\n span: spanOf(id, call),\n propsSpan: props ? spanOf(id, props) : null,\n component\n },\n entries.sort((left, right) => left.span.start - right.span.start),\n bailouts.slice(bailoutStart)\n );\n}\nfunction styledDefinitions(candidate, id, program, imports, bailouts) {\n const definitions = [];\n walkAst(program, (node) => {\n if (node.type !== \"VariableDeclarator\") return;\n const identifier = childNode(node, \"id\");\n const name = identifierName(identifier);\n const call = childNode(node, \"init\");\n if (!name || !identifier || call?.type !== \"CallExpression\") return;\n const callee = childNode(call, \"callee\");\n const factoryName = callee && identifierName(callee);\n if (!factoryName) return;\n const binding = importBinding(program, factoryName);\n if (!binding || binding.imported !== \"styled\") return;\n const factory = hostImportProvenance(imports, binding.source, binding.imported);\n if (!factory) return;\n const definitionBailouts = [];\n const args = childNodes(call, \"arguments\");\n const baseNode = args[0];\n const objectForm = args[1]?.type === \"ObjectExpression\";\n const optionsNode = objectForm ? args[1] : args.length >= 3 ? args[2] : args[1];\n if (!baseNode || !optionsNode) {\n definitionBailouts.push(\n localBailout(\n \"local/unsupported-styled-definition\",\n spanOf(id, call),\n `styled definition ${name} must provide a base and options object`\n )\n );\n bailouts.push(...definitionBailouts);\n return;\n }\n const base = componentFromNode(\n candidate,\n id,\n program,\n imports,\n baseNode,\n definitionBailouts\n );\n if (!base) {\n bailouts.push(...definitionBailouts);\n return;\n }\n const baseClassNode = objectForm ? null : args.length >= 3 ? args[1] : null;\n const staticConfigNode = objectForm && args.length >= 3 ? args[2] : null;\n const baseDefinition = {\n kind: \"styled-definition\",\n id,\n name,\n span: spanOf(id, call),\n definitionSpan: spanOf(id, identifier),\n factory,\n base,\n baseClassName: baseClassNode ? elementValue(id, baseClassNode) : null,\n options: expressionReference(id, optionsNode),\n staticConfig: staticConfigNode ? expressionReference(id, staticConfigNode) : null\n };\n definitions.push(\n definitionBailouts.length === 0 ? { ...baseDefinition, complete: true, bailouts: [] } : {\n ...baseDefinition,\n complete: false,\n bailouts: definitionBailouts\n }\n );\n bailouts.push(...definitionBailouts);\n });\n return definitions.sort((left, right) => left.span.start - right.span.start);\n}\nconst DOM_STYLE_FRONTENDS = /* @__PURE__ */ new Set([\n \"tamagui/dom\",\n \"@tamagui/core/dom\",\n \"@tamagui/tailwind\"\n]);\nconst STYLE_FRONTENDS = /* @__PURE__ */ new Set([\n ...DOM_STYLE_FRONTENDS,\n \"tamagui\",\n \"@tamagui/core\",\n \"@tamagui/web\"\n]);\nfunction domStyleDefinitions(id, program, imports) {\n const definitions = [];\n walkAst(program, (node) => {\n if (node.type !== \"VariableDeclarator\") return;\n const identifier = childNode(node, \"id\");\n const name = identifierName(identifier);\n const call = childNode(node, \"init\");\n if (!name || !identifier || call?.type !== \"CallExpression\") return;\n const callee = childNode(call, \"callee\");\n const factoryName = callee && identifierName(callee);\n if (!factoryName) return;\n const binding = importBinding(program, factoryName);\n if (!binding || binding.imported !== \"style\" || !STYLE_FRONTENDS.has(binding.source)) {\n return;\n }\n const factory = hostImportProvenance(imports, binding.source, binding.imported);\n const value = childNodes(call, \"arguments\")[0];\n if (!factory || !value) return;\n definitions.push({\n kind: \"dom-style-definition\",\n id,\n name,\n span: spanOf(id, call),\n definitionSpan: spanOf(id, identifier),\n factory,\n value: expressionReference(id, value)\n });\n });\n return definitions.sort((left, right) => left.span.start - right.span.start);\n}\nfunction domStyleArgument(candidate, id, program, node) {\n let call = node;\n if (node.type === \"Identifier\") {\n const name = identifierName(node);\n const definition = name ? candidate.definitionOf(id, name) : null;\n if (!definition?.constant || !definition.initializer) return null;\n call = definition.initializer;\n }\n if (call.type !== \"CallExpression\") return null;\n const callee = childNode(call, \"callee\");\n const factoryName = callee && identifierName(callee);\n if (!factoryName) return null;\n const binding = importBinding(program, factoryName);\n if (!binding || binding.imported !== \"style\" || !STYLE_FRONTENDS.has(binding.source)) {\n return null;\n }\n return childNodes(call, \"arguments\")[0] ?? null;\n}\nfunction domStyleProgram(candidate, id, program, node) {\n if (node.type !== \"ArrayExpression\" || !Array.isArray(node.elements)) {\n const argument = domStyleArgument(candidate, id, program, node);\n return argument ? {\n kind: \"dom-style\",\n span: spanOf(id, node),\n items: [{ condition: null, value: expressionReference(id, argument) }]\n } : null;\n }\n const items = [];\n for (const rawItem of node.elements) {\n if (!isAstNode(rawItem)) return null;\n let item = rawItem;\n let condition = null;\n if (item.type === \"LogicalExpression\" && item.operator === \"&&\") {\n const left = childNode(item, \"left\");\n const right = childNode(item, \"right\");\n if (!left || !right) return null;\n condition = expressionReference(id, left);\n item = right;\n }\n const argument = domStyleArgument(candidate, id, program, item);\n if (!argument) {\n const staticValue = asStaticValue(item);\n if (staticValue === false || staticValue === null) continue;\n return null;\n }\n items.push({ condition, value: expressionReference(id, argument) });\n }\n return { kind: \"dom-style\", span: spanOf(id, node), items };\n}\nfunction normalizeElements(candidate, rawId, imports = []) {\n const id = resolvedModuleId(rawId);\n const program = candidate.programOf(id);\n const elements = [];\n const bailouts = [];\n walkAst(program, (node) => {\n if (node.type === \"JSXElement\") {\n const bailoutStart = bailouts.length;\n const opening = childNode(node, \"openingElement\");\n const target = opening && jsxComponentNode(opening);\n if (!opening || !target) return;\n const component = componentFromNode(\n candidate,\n id,\n program,\n imports,\n target,\n bailouts\n );\n if (!component) return;\n const closingElement = childNode(node, \"closingElement\");\n const closingName = closingElement && childNode(closingElement, \"name\");\n if (closingName) component.closingSpan = spanOf(id, closingName);\n const entries = jsxEntries(id, node, opening, bailouts);\n for (const entry of entries) {\n if (entry.kind !== \"prop\" || entry.name !== \"style\") continue;\n const raw = entry.value.kind === \"expression\" ? nodeAtSpan(program, entry.value.start, entry.value.end) : null;\n const styleProgram = raw && domStyleProgram(candidate, id, program, raw);\n const argument = raw && domStyleArgument(candidate, id, program, raw);\n if (styleProgram) entry.value = styleProgram;\n else if (argument) entry.value = expressionReference(id, argument);\n }\n elements.push(\n finalizeElement(\n {\n kind: \"element\",\n form: \"jsx\",\n id,\n span: spanOf(id, node),\n propsSpan: spanOf(id, opening),\n component\n },\n entries,\n bailouts.slice(bailoutStart)\n )\n );\n return;\n }\n if (node.type !== \"CallExpression\") return;\n const runtime = runtimeCall(program, node);\n if (!runtime) return;\n const element = normalizeRuntimeElement(\n candidate,\n id,\n program,\n imports,\n node,\n runtime,\n bailouts\n );\n if (element) {\n const entries = element.complete ? element.entries : element.bailedEntries;\n for (const entry of entries) {\n if (entry.kind !== \"prop\" || entry.name !== \"style\") continue;\n const raw = entry.value.kind === \"expression\" ? nodeAtSpan(program, entry.value.start, entry.value.end) : null;\n const styleProgram = raw && domStyleProgram(candidate, id, program, raw);\n const argument = raw && domStyleArgument(candidate, id, program, raw);\n if (styleProgram) entry.value = styleProgram;\n else if (argument) entry.value = expressionReference(id, argument);\n }\n elements.push(element);\n }\n });\n return {\n elements: elements.sort((left, right) => left.span.start - right.span.start),\n styledDefinitions: styledDefinitions(candidate, id, program, imports, bailouts),\n domStyleDefinitions: domStyleDefinitions(id, program, imports),\n declarationsAt: declarationsOffset(program),\n bailouts: bailouts.sort((left, right) => left.span.start - right.span.start)\n };\n}\nfunction declarationsOffset(program) {\n let offset = 0;\n for (const statement of childNodes(program, \"body\")) {\n if (statement.type === \"ImportDeclaration\" || typeof statement.directive === \"string\") {\n offset = statement.end;\n } else break;\n }\n return offset;\n}\nfunction nodeAtSpan(program, start, end) {\n return findAstNode(program, (node) => node.start === start && node.end === end, {\n start,\n end\n });\n}\nfunction asAstNode(value, label) {\n if (!isAstNode(value)) throw new Error(`${label} is not an AST node`);\n return value;\n}\nexport {\n asAstNode,\n definitionFromDeclaration,\n nodeAtSpan,\n normalizeElements\n};\n//# sourceMappingURL=normalize.js.map\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/compiler-core",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.8",
|
|
4
4
|
"description": "Shared parser-independent Tamagui compiler graph and element IR",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"yuku-analyzer": "0.6.1"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@tamagui/build": "3.0.
|
|
43
|
+
"@tamagui/build": "3.0.8",
|
|
44
44
|
"typescript": "7.0.2"
|
|
45
45
|
},
|
|
46
46
|
"repository": {
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
"url": "git+https://github.com/tamagui/tamagui.git",
|
|
49
49
|
"directory": "code/compiler/compiler-core"
|
|
50
50
|
},
|
|
51
|
-
"releaseSourceCommit": "
|
|
51
|
+
"releaseSourceCommit": "b723356193510591d9ad15877b8937e8e6a31910"
|
|
52
52
|
}
|
package/src/ir.ts
CHANGED
|
@@ -136,6 +136,8 @@ export interface ElementIRResult {
|
|
|
136
136
|
elements: ElementIR[]
|
|
137
137
|
styledDefinitions: StyledDefinitionIR[]
|
|
138
138
|
domStyleDefinitions: DOMStyleDefinitionIR[]
|
|
139
|
+
/** offset after the leading directives and imports, where generated module declarations go */
|
|
140
|
+
declarationsAt: number
|
|
139
141
|
bailouts: BailoutReason[]
|
|
140
142
|
}
|
|
141
143
|
|
package/src/lower.ts
CHANGED
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
type SourceEdit,
|
|
15
15
|
} from './output'
|
|
16
16
|
|
|
17
|
-
export const LOWERED_MODULE_PLAN_VERSION =
|
|
17
|
+
export const LOWERED_MODULE_PLAN_VERSION = 6
|
|
18
18
|
|
|
19
19
|
export type CompilerTarget = 'web' | 'native'
|
|
20
20
|
|
|
@@ -424,8 +424,8 @@ export function lowerModule({
|
|
|
424
424
|
|
|
425
425
|
for (const candidateImport of imports.values()) {
|
|
426
426
|
edits.push({
|
|
427
|
-
start:
|
|
428
|
-
end:
|
|
427
|
+
start: module.declarationsAt,
|
|
428
|
+
end: module.declarationsAt,
|
|
429
429
|
content: candidateImport.content,
|
|
430
430
|
origin: candidateImport.origin,
|
|
431
431
|
})
|
package/src/materialize.ts
CHANGED
|
@@ -132,6 +132,7 @@ export interface MaterializedModule {
|
|
|
132
132
|
elements: MaterializedElement[]
|
|
133
133
|
styledDefinitions: MaterializedStyledDefinition[]
|
|
134
134
|
domStyleDefinitions: MaterializedDOMStyleDefinition[]
|
|
135
|
+
declarationsAt: number
|
|
135
136
|
diagnostics: BailoutReason[]
|
|
136
137
|
dependencies: ResolvedModuleId[]
|
|
137
138
|
}
|
|
@@ -377,6 +378,7 @@ export function materializeModule(
|
|
|
377
378
|
...definition,
|
|
378
379
|
value: materializeValue(graph, definition.value),
|
|
379
380
|
})),
|
|
381
|
+
declarationsAt: result.declarationsAt,
|
|
380
382
|
diagnostics: graph.diagnostics().filter(({ span }) => span.id === id),
|
|
381
383
|
}
|
|
382
384
|
return { ...base, dependencies: collectDependencies(base) }
|
package/src/normalize.ts
CHANGED
|
@@ -817,10 +817,26 @@ export function normalizeElements(
|
|
|
817
817
|
elements: elements.sort((left, right) => left.span.start - right.span.start),
|
|
818
818
|
styledDefinitions: styledDefinitions(candidate, id, program, imports, bailouts),
|
|
819
819
|
domStyleDefinitions: domStyleDefinitions(id, program, imports),
|
|
820
|
+
declarationsAt: declarationsOffset(program),
|
|
820
821
|
bailouts: bailouts.sort((left, right) => left.span.start - right.span.start),
|
|
821
822
|
}
|
|
822
823
|
}
|
|
823
824
|
|
|
825
|
+
// generated declarations must precede any module-scope use, so they go right
|
|
826
|
+
// after the import prologue instead of at the end of the module
|
|
827
|
+
function declarationsOffset(program: AstNode): number {
|
|
828
|
+
let offset = 0
|
|
829
|
+
for (const statement of childNodes(program, 'body')) {
|
|
830
|
+
if (
|
|
831
|
+
statement.type === 'ImportDeclaration' ||
|
|
832
|
+
typeof statement.directive === 'string'
|
|
833
|
+
) {
|
|
834
|
+
offset = statement.end
|
|
835
|
+
} else break
|
|
836
|
+
}
|
|
837
|
+
return offset
|
|
838
|
+
}
|
|
839
|
+
|
|
824
840
|
export function nodeAtSpan(program: AstNode, start: number, end: number): AstNode | null {
|
|
825
841
|
return findAstNode(program, (node) => node.start === start && node.end === end, {
|
|
826
842
|
start,
|
package/types/ir.d.ts
CHANGED
|
@@ -114,6 +114,8 @@ export interface ElementIRResult {
|
|
|
114
114
|
elements: ElementIR[];
|
|
115
115
|
styledDefinitions: StyledDefinitionIR[];
|
|
116
116
|
domStyleDefinitions: DOMStyleDefinitionIR[];
|
|
117
|
+
/** offset after the leading directives and imports, where generated module declarations go */
|
|
118
|
+
declarationsAt: number;
|
|
117
119
|
bailouts: BailoutReason[];
|
|
118
120
|
}
|
|
119
121
|
export declare function hostImportProvenance(imports: readonly HostResolvedImport[], specifier: string, importedName: string): ComponentImportProvenance | null;
|
package/types/ir.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../src/ir.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../src/ir.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EACjB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAElD,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,aAAa,GAAG,gBAAgB,CAAA;AAElE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;AAE1D,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GACxD,mBAAmB,GACnB,iBAAiB,CAAA;AAErB,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,EAAE;QACL,SAAS,EAAE,mBAAmB,GAAG,IAAI,CAAA;QACrC,KAAK,EAAE,mBAAmB,CAAA;KAC3B,EAAE,CAAA;CACJ;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,gBAAgB,CAAA;IAC5B,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,SAAS,GAAG,WAAW,CAAA;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,CAAA;IAChB,WAAW,EAAE,UAAU,GAAG,IAAI,CAAA;IAC9B,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAA;IACnC,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAA;CAC7C;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,EAAE,YAAY,CAAA;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,EAAE,mBAAmB,CAAA;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,EACD,YAAY,GACZ;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,GACrC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,CAAA;CACxC;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,eAAe,GAAG,cAAc,CAAA;AAE7E,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,WAAW,CAAA;IACjB,EAAE,EAAE,gBAAgB,CAAA;IACpB,IAAI,EAAE,UAAU,CAAA;IAChB,uFAAuF;IACvF,SAAS,EAAE,UAAU,GAAG,IAAI,CAAA;IAC5B,SAAS,EAAE,kBAAkB,CAAA;CAC9B;AAED,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,QAAQ,EAAE,IAAI,CAAA;IACd,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,QAAQ,EAAE,SAAS,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,QAAQ,EAAE,KAAK,CAAA;IACf,kFAAkF;IAClF,aAAa,EAAE,cAAc,EAAE,CAAA;IAC/B,QAAQ,EAAE,SAAS,CAAC,aAAa,EAAE,GAAG,aAAa,EAAE,CAAC,CAAA;CACvD;AAED,MAAM,MAAM,SAAS,GAAG,iBAAiB,GAAG,mBAAmB,CAAA;AAE/D,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,mBAAmB,CAAA;IACzB,EAAE,EAAE,gBAAgB,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,CAAA;IAChB,cAAc,EAAE,UAAU,CAAA;IAC1B,OAAO,EAAE,yBAAyB,CAAA;IAClC,IAAI,EAAE,kBAAkB,CAAA;IACxB,aAAa,EAAE,YAAY,GAAG,IAAI,CAAA;IAClC,OAAO,EAAE,mBAAmB,CAAA;IAC5B,8EAA8E;IAC9E,YAAY,EAAE,mBAAmB,GAAG,IAAI,CAAA;CACzC;AAED,MAAM,WAAW,0BAA2B,SAAQ,sBAAsB;IACxE,QAAQ,EAAE,IAAI,CAAA;IACd,QAAQ,EAAE,SAAS,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,4BAA6B,SAAQ,sBAAsB;IAC1E,QAAQ,EAAE,KAAK,CAAA;IACf,QAAQ,EAAE,SAAS,CAAC,aAAa,EAAE,GAAG,aAAa,EAAE,CAAC,CAAA;CACvD;AAED,MAAM,MAAM,kBAAkB,GAAG,0BAA0B,GAAG,4BAA4B,CAAA;AAE1F,wEAAwE;AACxE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,sBAAsB,CAAA;IAC5B,EAAE,EAAE,gBAAgB,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,4CAA4C;IAC5C,IAAI,EAAE,UAAU,CAAA;IAChB,cAAc,EAAE,UAAU,CAAA;IAC1B,OAAO,EAAE,yBAAyB,CAAA;IAClC,KAAK,EAAE,mBAAmB,CAAA;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,iBAAiB,EAAE,kBAAkB,EAAE,CAAA;IACvC,mBAAmB,EAAE,oBAAoB,EAAE,CAAA;IAC3C,8FAA8F;IAC9F,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,aAAa,EAAE,CAAA;CAC1B;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,SAAS,kBAAkB,EAAE,EACtC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,yBAAyB,GAAG,IAAI,CAUlC"}
|
package/types/lower.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { DynamicEvaluation } from './evaluate';
|
|
|
3
3
|
import { type BailoutReason } from './diagnostics';
|
|
4
4
|
import type { MaterializedElement, MaterializedModule, MaterializedStyledDefinition } from './materialize';
|
|
5
5
|
import { type ApplicableLoweredModulePlan, type SourceEdit } from './output';
|
|
6
|
-
export declare const LOWERED_MODULE_PLAN_VERSION =
|
|
6
|
+
export declare const LOWERED_MODULE_PLAN_VERSION = 6;
|
|
7
7
|
export type CompilerTarget = 'web' | 'native';
|
|
8
8
|
export interface LoweredModuleStats {
|
|
9
9
|
found: number;
|
package/types/materialize.d.ts
CHANGED
|
@@ -114,6 +114,7 @@ export interface MaterializedModule {
|
|
|
114
114
|
elements: MaterializedElement[];
|
|
115
115
|
styledDefinitions: MaterializedStyledDefinition[];
|
|
116
116
|
domStyleDefinitions: MaterializedDOMStyleDefinition[];
|
|
117
|
+
declarationsAt: number;
|
|
117
118
|
diagnostics: BailoutReason[];
|
|
118
119
|
dependencies: ResolvedModuleId[];
|
|
119
120
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materialize.d.ts","sourceRoot":"","sources":["../src/materialize.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"materialize.d.ts","sourceRoot":"","sources":["../src/materialize.ts"],"names":[],"mappings":"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"}
|
package/types/normalize.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAQA,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,kBAAkB,EAGxB,MAAM,aAAa,CAAA;AAEpB,OAAO,KAAK,EAMV,eAAe,EAQhB,MAAM,MAAM,CAAA;AAmBb,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,OAAO,EACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,GAAG,IAAI,GAC1C,cAAc,CA8BhB;AAioBD,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,iBAAiB,EAC5B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,SAAS,kBAAkB,EAAO,GAC1C,eAAe,
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAQA,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,kBAAkB,EAGxB,MAAM,aAAa,CAAA;AAEpB,OAAO,KAAK,EAMV,eAAe,EAQhB,MAAM,MAAM,CAAA;AAmBb,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,OAAO,EACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,GAAG,IAAI,GAC1C,cAAc,CA8BhB;AAioBD,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,iBAAiB,EAC5B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,SAAS,kBAAkB,EAAO,GAC1C,eAAe,CAyFjB;AAiBD,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAKvF;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAGhE"}
|