@reckona/mreact-compiler 0.0.67 → 0.0.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/compiler-module-context.js.map +1 -1
  2. package/dist/diagnostics.js.map +1 -1
  3. package/dist/emit-client.js.map +1 -1
  4. package/dist/emit-compat.js.map +1 -1
  5. package/dist/emit-escape-helper.js.map +1 -1
  6. package/dist/emit-server-shared.js.map +1 -1
  7. package/dist/emit-server-stream.js.map +1 -1
  8. package/dist/emit-server.js.map +1 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/internal.js.map +1 -1
  11. package/dist/ir.js.map +1 -1
  12. package/dist/oxc-analysis-types.js.map +1 -1
  13. package/dist/oxc-await-analysis.js.map +1 -1
  14. package/dist/oxc-await-ids.js.map +1 -1
  15. package/dist/oxc-await-validation.js.map +1 -1
  16. package/dist/oxc-bindings.js.map +1 -1
  17. package/dist/oxc-body-lowering.js.map +1 -1
  18. package/dist/oxc-child-analysis.js.map +1 -1
  19. package/dist/oxc-code-utils.js.map +1 -1
  20. package/dist/oxc-component-detection.js.map +1 -1
  21. package/dist/oxc-component-props.js.map +1 -1
  22. package/dist/oxc-component-references.js.map +1 -1
  23. package/dist/oxc-dom-lowering.js.map +1 -1
  24. package/dist/oxc-expression-utils.js.map +1 -1
  25. package/dist/oxc-jsx-attributes.js.map +1 -1
  26. package/dist/oxc-jsx-text.js.map +1 -1
  27. package/dist/oxc-nested-lowering.js.map +1 -1
  28. package/dist/oxc-node-utils.js.map +1 -1
  29. package/dist/oxc-raw-jsx.js.map +1 -1
  30. package/dist/oxc-render-values.d.ts +2 -1
  31. package/dist/oxc-render-values.d.ts.map +1 -1
  32. package/dist/oxc-render-values.js +172 -3
  33. package/dist/oxc-render-values.js.map +1 -1
  34. package/dist/oxc-runtime-emit.js.map +1 -1
  35. package/dist/oxc-transform.js.map +1 -1
  36. package/dist/oxc.d.ts.map +1 -1
  37. package/dist/oxc.js +10 -9
  38. package/dist/oxc.js.map +1 -1
  39. package/dist/transform.js.map +1 -1
  40. package/dist/types.js.map +1 -1
  41. package/package.json +2 -2
  42. package/src/oxc-render-values.ts +261 -8
  43. package/src/oxc.ts +14 -1
@@ -1 +1 @@
1
- {"version":3,"file":"oxc-node-utils.js","sourceRoot":"","sources":["../src/oxc-node-utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAE,KAAiC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/F,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,IAAa;IACpD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ;QACvE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;QACtC,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,UAAmC;IAEnC,IAAI,OAAO,GAAG,UAAU,CAAC;IAEzB,OAAO,OAAO,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;QAClD,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,IAAa;IACxD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;IAErC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,IAAY,EACZ,KAAa;IAEb,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACjE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,CAAC;YACV,MAAM,GAAG,CAAC,CAAC;QACb,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAuB,EAAE,KAAwB;IAC3E,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9F,CAAC"}
1
+ {"version":3,"file":"oxc-node-utils.js","sourceRoot":"","sources":["../src/oxc-node-utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAE,KAAiC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/F,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,IAAa;IACpD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ;QACvE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;QACtC,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,UAAmC;IAEnC,IAAI,OAAO,GAAG,UAAU,CAAC;IAEzB,OAAO,OAAO,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;QAClD,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,IAAa;IACxD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;IAErC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,IAAY,EACZ,KAAa;IAEb,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACjE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,CAAC;YACV,MAAM,GAAG,CAAC,CAAC;QACb,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAuB,EAAE,KAAwB;IAC3E,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9F,CAAC","sourcesContent":["import type { SourceLocation } from \"./types.js\";\n\nexport function readObject(value: unknown): Record<string, unknown> {\n return typeof value === \"object\" && value !== null ? (value as Record<string, unknown>) : {};\n}\n\nexport function readArray(value: unknown): unknown[] {\n return Array.isArray(value) ? value : [];\n}\n\nexport function readSource(code: string, node: unknown): string {\n const object = readObject(node);\n return typeof object.start === \"number\" && typeof object.end === \"number\"\n ? code.slice(object.start, object.end)\n : \"\";\n}\n\nexport function unwrapOxcParentheses(\n expression: Record<string, unknown>,\n): Record<string, unknown> {\n let current = expression;\n\n while (current.type === \"ParenthesizedExpression\") {\n current = readObject(current.expression);\n }\n\n return current;\n}\n\nexport function getOxcLocation(code: string, node: unknown): SourceLocation | undefined {\n const start = readObject(node).start;\n\n if (typeof start !== \"number\") {\n return undefined;\n }\n\n return getOxcLocationFromOffset(code, start);\n}\n\nexport function getOxcLocationFromOffset(\n code: string,\n start: number,\n): SourceLocation | undefined {\n if (!Number.isInteger(start) || start < 0 || start > code.length) {\n return undefined;\n }\n\n let line = 1;\n let column = 1;\n\n for (let index = 0; index < start; index += 1) {\n if (code[index] === \"\\n\") {\n line += 1;\n column = 1;\n } else {\n column += 1;\n }\n }\n\n return { line, column };\n}\n\nexport function arraysEqual(left: readonly string[], right: readonly string[]): boolean {\n return left.length === right.length && left.every((value, index) => value === right[index]);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oxc-raw-jsx.js","sourceRoot":"","sources":["../src/oxc-raw-jsx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oxc-raw-jsx.js","sourceRoot":"","sources":["../src/oxc-raw-jsx.ts"],"names":[],"mappings":"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","sourcesContent":["import type { JsxNodeIr, ModuleIr } from \"./ir.js\";\n\nconst rawJsxCandidatePattern = /<[A-Za-z][\\w.:-]*(?:\\s|>|\\/)/;\nconst rawJsxCandidateGlobalPattern = /<[A-Za-z][\\w.:-]*(?:\\s|>|\\/)/g;\n\nexport function containsRawJsxInIr(ir: ModuleIr): boolean {\n return ir.components.some(\n (component) =>\n component.bodyStatements.some(containsRawJsx) || containsRawJsxInNode(component.root),\n );\n}\n\nfunction containsRawJsx(value: string): boolean {\n if (rawJsxCandidatePattern.test(value)) {\n rawJsxCandidateGlobalPattern.lastIndex = 0;\n\n for (\n let match = rawJsxCandidateGlobalPattern.exec(value);\n match !== null;\n match = rawJsxCandidateGlobalPattern.exec(value)\n ) {\n if (isCodePosition(value, match.index) && isLikelyRawJsxStart(value, match.index)) {\n return true;\n }\n }\n }\n\n return false;\n}\n\nfunction isCodePosition(value: string, target: number): boolean {\n let index = 0;\n\n while (index < target) {\n const char = value[index];\n if (char === '\"' || char === \"'\") {\n const next = skipQuotedString(value, index, char);\n if (next > target) {\n return false;\n }\n index = next;\n continue;\n }\n\n if (char === \"`\") {\n const next = skipTemplateLiteral(value, index);\n if (next > target) {\n return false;\n }\n index = next;\n continue;\n }\n\n if (char === \"/\" && value[index + 1] === \"/\") {\n const next = skipLineComment(value, index + 2);\n if (next > target) {\n return false;\n }\n index = next;\n continue;\n }\n\n if (char === \"/\" && value[index + 1] === \"*\") {\n const next = skipBlockComment(value, index + 2);\n if (next > target) {\n return false;\n }\n index = next;\n continue;\n }\n\n index += 1;\n }\n\n return true;\n}\n\nfunction containsRawJsxInNode(node: JsxNodeIr): boolean {\n if (node.kind === \"list\") {\n return (\n node.bodyStatements?.some(containsRawJsx) === true || node.children.some(containsRawJsxInNode)\n );\n }\n\n if (node.kind === \"conditional\") {\n return node.whenTrue.some(containsRawJsxInNode) || node.whenFalse.some(containsRawJsxInNode);\n }\n\n if (node.kind === \"fragment\") {\n return node.children.some(containsRawJsxInNode);\n }\n\n if (node.kind === \"component\") {\n return (\n node.children.some(containsRawJsxInNode) ||\n node.props.some(\n (prop) => prop.kind === \"render-prop\" && prop.children.some(containsRawJsxInNode),\n )\n );\n }\n\n if (node.kind === \"async-boundary\") {\n return (\n node.children.some(containsRawJsxInNode) ||\n node.placeholderChildren?.some(containsRawJsxInNode) === true ||\n node.catchChildren?.some(containsRawJsxInNode) === true\n );\n }\n\n return node.kind === \"element\" && node.children.some(containsRawJsxInNode);\n}\n\nfunction skipQuotedString(value: string, start: number, quote: string): number {\n let index = start + 1;\n\n while (index < value.length) {\n const char = value[index];\n if (char === \"\\\\\") {\n index += 2;\n continue;\n }\n\n if (char === quote) {\n return index + 1;\n }\n\n index += 1;\n }\n\n return value.length;\n}\n\nfunction skipTemplateLiteral(value: string, start: number): number {\n let index = start + 1;\n\n while (index < value.length) {\n const char = value[index];\n if (char === \"\\\\\") {\n index += 2;\n continue;\n }\n\n if (char === \"`\") {\n return index + 1;\n }\n\n index += 1;\n }\n\n return value.length;\n}\n\nfunction skipLineComment(value: string, start: number): number {\n const end = value.indexOf(\"\\n\", start);\n return end === -1 ? value.length : end + 1;\n}\n\nfunction skipBlockComment(value: string, start: number): number {\n const end = value.indexOf(\"*/\", start);\n return end === -1 ? value.length : end + 2;\n}\n\nfunction isLikelyRawJsxStart(value: string, start: number): boolean {\n const next = value[start + 1];\n if (next === \">\") {\n return hasJsxExpressionPrefix(value, start);\n }\n\n if (next === undefined || !isAsciiLetter(next)) {\n return false;\n }\n\n let index = start + 2;\n while (index < value.length && isJsxNameChar(value[index] ?? \"\")) {\n index += 1;\n }\n\n const afterName = value[index];\n if (\n afterName !== undefined &&\n !isWhitespace(afterName) &&\n afterName !== \">\" &&\n afterName !== \"/\"\n ) {\n return false;\n }\n\n return hasJsxExpressionPrefix(value, start);\n}\n\nfunction hasJsxExpressionPrefix(value: string, start: number): boolean {\n let index = start - 1;\n while (index >= 0 && isWhitespace(value[index] ?? \"\")) {\n index -= 1;\n }\n\n if (index < 0) {\n return true;\n }\n\n const previous = value[index] ?? \"\";\n if (\"([{?:,=;&|!+-*~^>\".includes(previous)) {\n return true;\n }\n\n if (isIdentifierChar(previous)) {\n const end = index + 1;\n while (index >= 0 && isIdentifierChar(value[index] ?? \"\")) {\n index -= 1;\n }\n\n const word = value.slice(index + 1, end);\n return word === \"return\" || word === \"yield\" || word === \"throw\";\n }\n\n return false;\n}\n\nfunction isAsciiLetter(value: string): boolean {\n const code = value.charCodeAt(0);\n return (code >= 65 && code <= 90) || (code >= 97 && code <= 122);\n}\n\nfunction isJsxNameChar(value: string): boolean {\n return isIdentifierChar(value) || value === \".\" || value === \":\" || value === \"-\";\n}\n\nfunction isIdentifierChar(value: string): boolean {\n if (value === \"_\" || value === \"$\") {\n return true;\n }\n\n const code = value.charCodeAt(0);\n return (code >= 65 && code <= 90) || (code >= 97 && code <= 122) || (code >= 48 && code <= 57);\n}\n\nfunction isWhitespace(value: string): boolean {\n return value === \" \" || value === \"\\t\" || value === \"\\n\" || value === \"\\r\";\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  import type { JsxNodeIr } from "./ir.js";
2
2
  export declare function collectOxcBodyJsxBindingNames(statements: readonly unknown[]): Set<string>;
3
- export declare function collectOxcReactiveReadAliases(code: string, statements: readonly unknown[]): Map<string, string>;
3
+ export declare function collectOxcReactiveReadAliases(code: string, statements: readonly unknown[], reactiveDerivedFunctions?: ReadonlySet<string>): Map<string, string>;
4
+ export declare function collectOxcReactiveDerivedFunctionNames(statements: readonly unknown[]): Set<string>;
4
5
  export declare function rewriteOxcReactiveAliasExpressionCode(code: string, expression: Record<string, unknown>, aliases: ReadonlyMap<string, string> | undefined): string | undefined;
5
6
  export declare function markOxcRenderValueExpressions(nodes: readonly JsxNodeIr[], names: Set<string>, renderMode?: "dynamic" | "html"): void;
6
7
  export declare function isOxcRenderValueExpression(expression: Record<string, unknown>): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"oxc-render-values.d.ts","sourceRoot":"","sources":["../src/oxc-render-values.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAczC,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,SAAS,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAkCzF;AAED,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,SAAS,OAAO,EAAE,GAC7B,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAuBrB;AAED,wBAAgB,qCAAqC,CACnD,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAC/C,MAAM,GAAG,SAAS,CAiCpB;AAiPD,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,SAAS,SAAS,EAAE,EAC3B,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,EAClB,UAAU,GAAE,SAAS,GAAG,MAAkB,GACzC,IAAI,CA0BN;AAED,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAkBvF;AAgBD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAU3E"}
1
+ {"version":3,"file":"oxc-render-values.d.ts","sourceRoot":"","sources":["../src/oxc-render-values.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAczC,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,SAAS,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAkCzF;AAED,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,SAAS,OAAO,EAAE,EAC9B,wBAAwB,GAAE,WAAW,CAAC,MAAM,CAAa,GACxD,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA4BrB;AAED,wBAAgB,sCAAsC,CACpD,UAAU,EAAE,SAAS,OAAO,EAAE,GAC7B,GAAG,CAAC,MAAM,CAAC,CAmCb;AAED,wBAAgB,qCAAqC,CACnD,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAC/C,MAAM,GAAG,SAAS,CAwCpB;AAiTD,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,SAAS,SAAS,EAAE,EAC3B,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,EAClB,UAAU,GAAE,SAAS,GAAG,MAAkB,GACzC,IAAI,CA0BN;AAED,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAkBvF;AAgBD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAU3E"}
@@ -30,7 +30,7 @@ export function collectOxcBodyJsxBindingNames(statements) {
30
30
  }
31
31
  return names;
32
32
  }
33
- export function collectOxcReactiveReadAliases(code, statements) {
33
+ export function collectOxcReactiveReadAliases(code, statements, reactiveDerivedFunctions = new Set()) {
34
34
  const aliases = new Map();
35
35
  for (const statement of statements) {
36
36
  const object = readObject(statement);
@@ -43,13 +43,43 @@ export function collectOxcReactiveReadAliases(code, statements) {
43
43
  const initializer = unwrapOxcParentheses(readObject(declaration.init));
44
44
  if (typeof id.name !== "string")
45
45
  continue;
46
- if (!isOxcReactiveAliasExpression(initializer))
46
+ if (!isOxcReactiveAliasExpression(initializer) &&
47
+ !isOxcReactiveDerivedAliasExpression(initializer, reactiveDerivedFunctions)) {
47
48
  continue;
49
+ }
48
50
  aliases.set(id.name, readSource(code, initializer));
49
51
  }
50
52
  }
51
53
  return aliases;
52
54
  }
55
+ export function collectOxcReactiveDerivedFunctionNames(statements) {
56
+ const names = new Set();
57
+ for (const statementValue of statements) {
58
+ const statement = readObject(statementValue);
59
+ if (statement.type === "FunctionDeclaration") {
60
+ const id = readObject(statement.id);
61
+ if (typeof id.name === "string" && isOxcReactiveDerivedFunction(statement)) {
62
+ names.add(id.name);
63
+ }
64
+ continue;
65
+ }
66
+ if (statement.type !== "VariableDeclaration" || statement.kind !== "const") {
67
+ continue;
68
+ }
69
+ for (const declarationValue of readArray(statement.declarations)) {
70
+ const declaration = readObject(declarationValue);
71
+ const id = readObject(declaration.id);
72
+ const initializer = unwrapOxcParentheses(readObject(declaration.init));
73
+ if (typeof id.name === "string" &&
74
+ (initializer.type === "FunctionExpression" ||
75
+ initializer.type === "ArrowFunctionExpression") &&
76
+ isOxcReactiveDerivedFunction(initializer)) {
77
+ names.add(id.name);
78
+ }
79
+ }
80
+ }
81
+ return names;
82
+ }
53
83
  export function rewriteOxcReactiveAliasExpressionCode(code, expression, aliases) {
54
84
  if (aliases === undefined || aliases.size === 0) {
55
85
  return undefined;
@@ -94,7 +124,9 @@ function collectOxcReactiveAliasReplacements(node, parent, parentKey, aliases, s
94
124
  replacements.push({
95
125
  end,
96
126
  start,
97
- text: isOxcShorthandPropertyValue(object, parent) ? `${object.name}: (${replacement})` : `(${replacement})`,
127
+ text: isOxcShorthandPropertyValue(object, parent)
128
+ ? `${object.name}: (${replacement})`
129
+ : `(${replacement})`,
98
130
  });
99
131
  }
100
132
  return;
@@ -236,6 +268,53 @@ function collectOxcBindingNames(node, names) {
236
268
  }
237
269
  }
238
270
  }
271
+ function collectOxcFunctionLocalBindings(functionNode, names) {
272
+ collectOxcBindingNames(functionNode.id, names);
273
+ for (const parameter of readArray(functionNode.params)) {
274
+ collectOxcBindingNames(parameter, names);
275
+ }
276
+ collectOxcLocalBindingsFromNode(readObject(functionNode.body), names);
277
+ }
278
+ function collectOxcLocalBindingsFromNode(node, names) {
279
+ const object = readObject(node);
280
+ if (typeof object.type !== "string" || object.type.startsWith("TS")) {
281
+ return;
282
+ }
283
+ if (object.type === "VariableDeclaration") {
284
+ for (const declaration of readArray(object.declarations)) {
285
+ collectOxcBindingNames(readObject(declaration).id, names);
286
+ }
287
+ }
288
+ else if (object.type === "FunctionDeclaration" || object.type === "ClassDeclaration") {
289
+ collectOxcBindingNames(object.id, names);
290
+ return;
291
+ }
292
+ else if (object.type === "ForOfStatement" || object.type === "ForInStatement") {
293
+ const left = readObject(object.left);
294
+ const declarations = readArray(left.declarations);
295
+ collectOxcBindingNames(declarations.length > 0 ? readObject(declarations[0]).id : object.left, names);
296
+ }
297
+ else if (object.type === "ForStatement") {
298
+ collectOxcLocalBindingsFromNode(object.init, names);
299
+ }
300
+ else if (isOxcFunctionNode(object)) {
301
+ return;
302
+ }
303
+ for (const [key, value] of Object.entries(object)) {
304
+ if (key === "type" || key === "start" || key === "end" || key === "loc") {
305
+ continue;
306
+ }
307
+ if (Array.isArray(value)) {
308
+ for (const item of value) {
309
+ collectOxcLocalBindingsFromNode(item, names);
310
+ }
311
+ continue;
312
+ }
313
+ if (typeof value === "object" && value !== null) {
314
+ collectOxcLocalBindingsFromNode(value, names);
315
+ }
316
+ }
317
+ }
239
318
  function readNumber(value) {
240
319
  return typeof value === "number" ? value : undefined;
241
320
  }
@@ -330,6 +409,96 @@ function isOxcReactiveAliasExpression(expression) {
330
409
  const state = analyzeOxcReactiveAliasExpression(expression);
331
410
  return state.safe && state.reactive;
332
411
  }
412
+ function isOxcReactiveDerivedAliasExpression(expression, reactiveDerivedFunctions) {
413
+ if (reactiveDerivedFunctions.size === 0) {
414
+ return false;
415
+ }
416
+ const unwrappedExpression = unwrapOxcParentheses(expression);
417
+ if (unwrappedExpression.type !== "CallExpression") {
418
+ return false;
419
+ }
420
+ if (readArray(unwrappedExpression.arguments).length !== 0) {
421
+ return false;
422
+ }
423
+ const callee = readObject(unwrappedExpression.callee);
424
+ return (callee.type === "Identifier" &&
425
+ typeof callee.name === "string" &&
426
+ reactiveDerivedFunctions.has(callee.name));
427
+ }
428
+ function isOxcReactiveDerivedFunction(functionNode) {
429
+ if (readArray(functionNode.params).length !== 0) {
430
+ return false;
431
+ }
432
+ const localBindings = new Set();
433
+ collectOxcFunctionLocalBindings(functionNode, localBindings);
434
+ const usage = analyzeOxcReactiveDerivedFunctionUsage(readObject(functionNode.body), localBindings);
435
+ return usage.reactive && usage.safe;
436
+ }
437
+ function analyzeOxcReactiveDerivedFunctionUsage(node, localBindings) {
438
+ const object = readObject(node);
439
+ if (typeof object.type !== "string" || object.type.startsWith("TS")) {
440
+ return { reactive: false, safe: true };
441
+ }
442
+ if (isOxcFunctionNode(object)) {
443
+ return { reactive: false, safe: true };
444
+ }
445
+ if (object.type === "CallExpression") {
446
+ const callee = readObject(object.callee);
447
+ const member = callee.type === "MemberExpression" ? callee : undefined;
448
+ const property = readObject(member?.property);
449
+ const owner = readObject(member?.object);
450
+ const propertyName = member?.computed === true
451
+ ? undefined
452
+ : typeof property.name === "string"
453
+ ? property.name
454
+ : undefined;
455
+ const ownerName = owner.type === "Identifier" ? owner.name : undefined;
456
+ if (propertyName === "get" && typeof ownerName === "string" && !localBindings.has(ownerName)) {
457
+ return mergeReactiveAliasStates([
458
+ { reactive: true, safe: true },
459
+ ...readArray(object.arguments).map((argument) => analyzeOxcReactiveDerivedFunctionUsage(argument, localBindings)),
460
+ ]);
461
+ }
462
+ if (propertyName !== undefined &&
463
+ typeof ownerName === "string" &&
464
+ !localBindings.has(ownerName) &&
465
+ isLikelyMutatingMethodName(propertyName)) {
466
+ return { reactive: false, safe: false };
467
+ }
468
+ }
469
+ const states = [];
470
+ for (const [key, value] of Object.entries(object)) {
471
+ if (key === "type" || key === "start" || key === "end" || key === "loc") {
472
+ continue;
473
+ }
474
+ if (Array.isArray(value)) {
475
+ states.push(...value.map((item) => analyzeOxcReactiveDerivedFunctionUsage(item, localBindings)));
476
+ continue;
477
+ }
478
+ if (typeof value === "object" && value !== null) {
479
+ states.push(analyzeOxcReactiveDerivedFunctionUsage(value, localBindings));
480
+ }
481
+ }
482
+ return mergeReactiveAliasStates(states);
483
+ }
484
+ function mergeReactiveAliasStates(states) {
485
+ return states.reduce((merged, state) => ({
486
+ reactive: merged.reactive || state.reactive,
487
+ safe: merged.safe && state.safe,
488
+ }), { reactive: false, safe: true });
489
+ }
490
+ function isLikelyMutatingMethodName(name) {
491
+ return (name === "set" ||
492
+ name === "delete" ||
493
+ name === "clear" ||
494
+ name === "push" ||
495
+ name === "pop" ||
496
+ name === "shift" ||
497
+ name === "unshift" ||
498
+ name === "splice" ||
499
+ name === "sort" ||
500
+ name === "reverse");
501
+ }
333
502
  function analyzeOxcReactiveAliasExpression(expression) {
334
503
  const unwrappedExpression = unwrapOxcParentheses(expression);
335
504
  if (unwrappedExpression.type === "Literal" ||
@@ -1 +1 @@
1
- {"version":3,"file":"oxc-render-values.js","sourceRoot":"","sources":["../src/oxc-render-values.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oxc-render-values.js","sourceRoot":"","sources":["../src/oxc-render-values.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAa9F,MAAM,UAAU,6BAA6B,CAAC,UAA8B;IAC1E,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAEhC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;QAErC,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACvE,6BAA6B,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;YAC9E,SAAS;QACX,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAC1C,SAAS;QACX,CAAC;QAED,MAAM,eAAe,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9E,MAAM,kBAAkB,GAAG,eAAe,KAAK,OAAO,CAAC;QAEvD,KAAK,MAAM,gBAAgB,IAAI,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9D,MAAM,WAAW,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;YACjD,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACtC,MAAM,WAAW,GAAG,oBAAoB,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;YAEvE,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ;gBAAE,SAAS;YAC1C,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC;gBAAE,SAAS;YACjD,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC;gBAAE,SAAS;YACjD,IAAI,CAAC,kBAAkB,IAAI,mBAAmB,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpE,SAAS;YACX,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,IAAY,EACZ,UAA8B,EAC9B,2BAAgD,IAAI,GAAG,EAAE;IAEzD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE1C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;QAErC,IAAI,MAAM,CAAC,IAAI,KAAK,qBAAqB,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACrE,SAAS;QACX,CAAC;QAED,KAAK,MAAM,gBAAgB,IAAI,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9D,MAAM,WAAW,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;YACjD,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACtC,MAAM,WAAW,GAAG,oBAAoB,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;YAEvE,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ;gBAAE,SAAS;YAC1C,IACE,CAAC,4BAA4B,CAAC,WAAW,CAAC;gBAC1C,CAAC,mCAAmC,CAAC,WAAW,EAAE,wBAAwB,CAAC,EAC3E,CAAC;gBACD,SAAS;YACX,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,sCAAsC,CACpD,UAA8B;IAE9B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAEhC,KAAK,MAAM,cAAc,IAAI,UAAU,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;QAE7C,IAAI,SAAS,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAC7C,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACpC,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,4BAA4B,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3E,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,SAAS,CAAC,IAAI,KAAK,qBAAqB,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3E,SAAS;QACX,CAAC;QAED,KAAK,MAAM,gBAAgB,IAAI,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;YACjE,MAAM,WAAW,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;YACjD,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACtC,MAAM,WAAW,GAAG,oBAAoB,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;YAEvE,IACE,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ;gBAC3B,CAAC,WAAW,CAAC,IAAI,KAAK,oBAAoB;oBACxC,WAAW,CAAC,IAAI,KAAK,yBAAyB,CAAC;gBACjD,4BAA4B,CAAC,WAAW,CAAC,EACzC,CAAC;gBACD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,qCAAqC,CACnD,IAAY,EACZ,UAAmC,EACnC,OAAgD;IAEhD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,eAAe,GAAG,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAEjD,IAAI,eAAe,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QACjE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,YAAY,GAA+B,EAAE,CAAC;IACpD,mCAAmC,CACjC,UAAU,EACV,SAAS,EACT,SAAS,EACT,OAAO,EACP,IAAI,GAAG,EAAE,EACT,YAAY,CACb,CAAC;IAEF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAE1C,KAAK,MAAM,WAAW,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACvF,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,GAAG,eAAe,CAAC;QAClD,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,GAAG,eAAe,CAAC;QAE9C,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;YACpD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9E,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,mCAAmC,CAC1C,IAAa,EACb,MAA2C,EAC3C,SAA6B,EAC7B,OAAoC,EACpC,QAA6B,EAC7B,YAAwC;IAExC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,OAAO;IACT,CAAC;IAED,IACE,MAAM,CAAC,IAAI,KAAK,YAAY;QAC5B,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAC/B,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAC1B,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EACtD,CAAC;QACD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEnC,IAAI,WAAW,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC1E,YAAY,CAAC,IAAI,CAAC;gBAChB,GAAG;gBACH,KAAK;gBACL,IAAI,EAAE,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC;oBAC/C,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,MAAM,WAAW,GAAG;oBACpC,CAAC,CAAC,IAAI,WAAW,GAAG;aACvB,CAAC,CAAC;QACL,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,sBAAsB,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;QACpD,KAAK,MAAM,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACjD,sBAAsB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACtD,CAAC;QACD,mCAAmC,CACjC,MAAM,CAAC,IAAI,EACX,MAAM,EACN,MAAM,EACN,OAAO,EACP,uBAAuB,CAAC,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,EACtD,YAAY,CACb,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,aAAa,GACjB,MAAM,CAAC,IAAI,KAAK,gBAAgB,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAC3D,CAAC,CAAC,uBAAuB,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpD,CAAC,CAAC,QAAQ,CAAC;IAEf,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;YACxE,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,IAAI,IAAI,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,QAAQ,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,KAAK,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;YACjD,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,mCAAmC,CACjC,IAAI,EACJ,MAAM,EACN,GAAG,EACH,OAAO,EACP,aAAa,EACb,YAAY,CACb,CAAC;YACJ,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAChD,mCAAmC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;QAChG,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAClC,IAA6B,EAC7B,MAA2C,EAC3C,SAA6B;IAE7B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,IAAI,SAAS,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC/F,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,SAAS,KAAK,IAAI,IAAI,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,SAAS,KAAK,QAAQ,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,SAAS,KAAK,KAAK,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;QACvD,OAAO,2BAA2B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IAED,IACE,CAAC,MAAM,CAAC,IAAI,KAAK,gBAAgB;QAC/B,MAAM,CAAC,IAAI,KAAK,mBAAmB;QACnC,MAAM,CAAC,IAAI,KAAK,kBAAkB,CAAC;QACrC,SAAS,KAAK,OAAO,EACrB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,2BAA2B,CAClC,IAA6B,EAC7B,MAA2C;IAE3C,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,OAAO,CACL,MAAM,KAAK,SAAS;QACpB,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,CAAC;QAChE,MAAM,CAAC,SAAS,KAAK,IAAI;QACzB,MAAM,CAAC,KAAK,KAAK,IAAI;QACrB,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAChD,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAC7C,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,IAA6B;IACxD,OAAO,CACL,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU;QACvB,IAAI,CAAC,IAAI,KAAK,gBAAgB;QAC9B,IAAI,CAAC,IAAI,KAAK,oBAAoB;QAClC,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC;QACnC,IAAI,CAAC,QAAQ,KAAK,IAAI,CACvB,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,IAA6B;IAC3D,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,oBAAoB;QAClC,IAAI,CAAC,IAAI,KAAK,qBAAqB;QACnC,IAAI,CAAC,IAAI,KAAK,oBAAoB;QAClC,IAAI,CAAC,IAAI,KAAK,kBAAkB;QAChC,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAChC,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,IAA6B;IACtD,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,yBAAyB;QACvC,IAAI,CAAC,IAAI,KAAK,qBAAqB;QACnC,IAAI,CAAC,IAAI,KAAK,oBAAoB,CACnC,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAa,EAAE,QAAqB;IACnE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEpC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,IAAI,EAAE,CAAC;QAC7B,+BAA+B,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,+BAA+B,CAAC,IAAa,EAAE,KAAkB;IACxE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,MAAM,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;QAC1C,KAAK,MAAM,WAAW,IAAI,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YACzD,sBAAsB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,qBAAqB,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QAChF,sBAAsB,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAa,EAAE,KAAkB;IAC/D,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QAClC,sBAAsB,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC/C,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;QACxC,sBAAsB,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QACnC,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACpC,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YACpD,sBAAsB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,+BAA+B,CACtC,YAAqC,EACrC,KAAkB;IAElB,sBAAsB,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAE/C,KAAK,MAAM,SAAS,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QACvD,sBAAsB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,+BAA+B,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,+BAA+B,CAAC,IAAa,EAAE,KAAkB;IACxE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACpE,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;QAC1C,KAAK,MAAM,WAAW,IAAI,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YACzD,sBAAsB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,qBAAqB,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACvF,sBAAsB,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACzC,OAAO;IACT,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAChF,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClD,sBAAsB,CACpB,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EACtE,KAAK,CACN,CAAC;IACJ,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QAC1C,+BAA+B,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;SAAM,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,OAAO;IACT,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;YACxE,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,+BAA+B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC/C,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAChD,+BAA+B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,KAA2B,EAC3B,KAAkB,EAClB,aAAiC,SAAS;IAE1C,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO;IACT,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAChC,6BAA6B,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;YAChE,6BAA6B,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;YACjE,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,6BAA6B,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;YAChE,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACrF,6BAA6B,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,UAAmC;IAC5E,IAAI,2BAA2B,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEjD,OAAO,CACL,MAAM,CAAC,IAAI,KAAK,YAAY;QAC5B,MAAM,CAAC,IAAI,KAAK,OAAO;QACvB,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ;QACjC,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CACjF,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,UAAmC;IACtE,IAAI,UAAU,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAE7C,OAAO,CACL,MAAM,CAAC,IAAI,KAAK,YAAY;QAC5B,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAC/B,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CACtC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAA6B;IAChE,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CACxC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAClB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,oBAAoB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAC3F,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,IAA6B;IACzD,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa;QAAE,OAAO,IAAI,CAAC;IAC3E,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;QAC1C,OAAO,CACL,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACjD,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CACjD,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;QACtC,OAAO,CACL,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAC5F,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,mBAAmB,CAAC,UAA8B,EAAE,IAAY;IACvE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,oBAAoB,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;IACrE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,2BAA2B,CAAC,UAAmC;IACtE,IAAI,UAAU,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAE7C,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC/F,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE7C,OAAO,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC;AACnE,CAAC;AAED,SAAS,4BAA4B,CAAC,UAAmC;IACvE,MAAM,KAAK,GAAG,iCAAiC,CAAC,UAAU,CAAC,CAAC;IAC5D,OAAO,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC;AACtC,CAAC;AAED,SAAS,mCAAmC,CAC1C,UAAmC,EACnC,wBAA6C;IAE7C,IAAI,wBAAwB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAE7D,IAAI,mBAAmB,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,SAAS,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAEtD,OAAO,CACL,MAAM,CAAC,IAAI,KAAK,YAAY;QAC5B,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAC/B,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAC1C,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,YAAqC;IACzE,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,+BAA+B,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,sCAAsC,CAClD,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAC7B,aAAa,CACd,CAAC;IAEF,OAAO,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC;AACtC,CAAC;AAED,SAAS,sCAAsC,CAC7C,IAAa,EACb,aAAkC;IAElC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACpE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACvE,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACzC,MAAM,YAAY,GAChB,MAAM,EAAE,QAAQ,KAAK,IAAI;YACvB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ;gBACjC,CAAC,CAAC,QAAQ,CAAC,IAAI;gBACf,CAAC,CAAC,SAAS,CAAC;QAClB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAEvE,IAAI,YAAY,KAAK,KAAK,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7F,OAAO,wBAAwB,CAAC;gBAC9B,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;gBAC9B,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC9C,sCAAsC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAChE;aACF,CAAC,CAAC;QACL,CAAC;QAED,IACE,YAAY,KAAK,SAAS;YAC1B,OAAO,SAAS,KAAK,QAAQ;YAC7B,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;YAC7B,0BAA0B,CAAC,YAAY,CAAC,EACxC,CAAC;YACD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAmC,EAAE,CAAC;IAElD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;YACxE,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CACT,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,sCAAsC,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CACpF,CAAC;YACF,SAAS;QACX,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,wBAAwB,CAC/B,MAA+C;IAE/C,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ;QAC3C,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI;KAChC,CAAC,EACF,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAChC,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CAAC,IAAY;IAC9C,OAAO,CACL,IAAI,KAAK,KAAK;QACd,IAAI,KAAK,QAAQ;QACjB,IAAI,KAAK,OAAO;QAChB,IAAI,KAAK,MAAM;QACf,IAAI,KAAK,KAAK;QACd,IAAI,KAAK,OAAO;QAChB,IAAI,KAAK,SAAS;QAClB,IAAI,KAAK,QAAQ;QACjB,IAAI,KAAK,MAAM;QACf,IAAI,KAAK,SAAS,CACnB,CAAC;AACJ,CAAC;AAED,SAAS,iCAAiC,CACxC,UAAmC;IAEnC,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAE7D,IACE,mBAAmB,CAAC,IAAI,KAAK,SAAS;QACtC,mBAAmB,CAAC,IAAI,KAAK,YAAY;QACzC,mBAAmB,CAAC,IAAI,KAAK,gBAAgB,EAC7C,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,2BAA2B,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACrD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC;IAED,IAAI,mBAAmB,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACnD,OAAO,iCAAiC,CAAC,UAAU,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,IACE,mBAAmB,CAAC,IAAI,KAAK,gBAAgB;QAC7C,mBAAmB,CAAC,IAAI,KAAK,uBAAuB;QACpD,mBAAmB,CAAC,IAAI,KAAK,qBAAqB;QAClD,mBAAmB,CAAC,IAAI,KAAK,2BAA2B;QACxD,mBAAmB,CAAC,IAAI,KAAK,oBAAoB,EACjD,CAAC;QACD,OAAO,iCAAiC,CAAC,UAAU,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,IAAI,mBAAmB,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACpD,MAAM,WAAW,GAAG,iCAAiC,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9F,MAAM,aAAa,GACjB,mBAAmB,CAAC,QAAQ,KAAK,IAAI;YACnC,CAAC,CAAC,iCAAiC,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAC7E,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAEtC,OAAO;YACL,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAAI,aAAa,CAAC,QAAQ;YACxD,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,aAAa,CAAC,IAAI;SAC7C,CAAC;IACJ,CAAC;IAED,IAAI,mBAAmB,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACnD,OAAO,iCAAiC,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,IACE,mBAAmB,CAAC,IAAI,KAAK,kBAAkB;QAC/C,mBAAmB,CAAC,IAAI,KAAK,mBAAmB,EAChD,CAAC;QACD,MAAM,SAAS,GAAG,iCAAiC,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1F,MAAM,UAAU,GAAG,iCAAiC,CAAC,UAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;QAE5F,OAAO;YACL,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ;YACnD,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI;SACxC,CAAC;IACJ,CAAC;IAED,IAAI,mBAAmB,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;QACzD,MAAM,SAAS,GAAG,iCAAiC,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1F,MAAM,eAAe,GAAG,iCAAiC,CACvD,UAAU,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAC3C,CAAC;QACF,MAAM,cAAc,GAAG,iCAAiC,CACtD,UAAU,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAC1C,CAAC;QAEF,OAAO;YACL,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,eAAe,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ;YACnF,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,eAAe,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI;SACpE,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,oBAAoB,CAAC,IAA6B,EAAE,IAAY;IACvE,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;IACpE,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;IAC5E,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IACE,OAAO,IAAI,KAAK,QAAQ;oBACxB,IAAI,KAAK,IAAI;oBACb,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAC5C,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACvD,IAAI,oBAAoB,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;QACjE,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,6BAA6B,CAAC,UAA8B,EAAE,KAAkB;IACvF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;QAErC,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACvE,6BAA6B,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;YAC9E,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEjD,IAAI,MAAM,CAAC,IAAI,KAAK,qBAAqB,IAAI,UAAU,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAClF,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtF,IACE,MAAM,CAAC,IAAI,KAAK,kBAAkB;YAClC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,MAAM;YAC3C,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAC/B,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEzC,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["import type { JsxNodeIr } from \"./ir.js\";\nimport { readArray, readObject, readSource, unwrapOxcParentheses } from \"./oxc-node-utils.js\";\n\ninterface ReactiveAliasReplacement {\n end: number;\n start: number;\n text: string;\n}\n\ninterface ReactiveAliasExpressionState {\n reactive: boolean;\n safe: boolean;\n}\n\nexport function collectOxcBodyJsxBindingNames(statements: readonly unknown[]): Set<string> {\n const names = new Set<string>();\n\n for (const statement of statements) {\n const object = readObject(statement);\n\n if (object.type === \"ForOfStatement\" || object.type === \"ForStatement\") {\n collectOxcPushJsxBindingNames(readArray(readObject(object.body).body), names);\n continue;\n }\n\n if (object.type !== \"VariableDeclaration\") {\n continue;\n }\n\n const declarationKind = typeof object.kind === \"string\" ? object.kind : \"let\";\n const isImmutableBinding = declarationKind === \"const\";\n\n for (const declarationValue of readArray(object.declarations)) {\n const declaration = readObject(declarationValue);\n const id = readObject(declaration.id);\n const initializer = unwrapOxcParentheses(readObject(declaration.init));\n\n if (typeof id.name !== \"string\") continue;\n if (!containsOxcJsxSyntax(initializer)) continue;\n if (!isJsxLikeInitializer(initializer)) continue;\n if (!isImmutableBinding && isBindingReassigned(statements, id.name)) {\n continue;\n }\n names.add(id.name);\n }\n }\n\n return names;\n}\n\nexport function collectOxcReactiveReadAliases(\n code: string,\n statements: readonly unknown[],\n reactiveDerivedFunctions: ReadonlySet<string> = new Set(),\n): Map<string, string> {\n const aliases = new Map<string, string>();\n\n for (const statement of statements) {\n const object = readObject(statement);\n\n if (object.type !== \"VariableDeclaration\" || object.kind !== \"const\") {\n continue;\n }\n\n for (const declarationValue of readArray(object.declarations)) {\n const declaration = readObject(declarationValue);\n const id = readObject(declaration.id);\n const initializer = unwrapOxcParentheses(readObject(declaration.init));\n\n if (typeof id.name !== \"string\") continue;\n if (\n !isOxcReactiveAliasExpression(initializer) &&\n !isOxcReactiveDerivedAliasExpression(initializer, reactiveDerivedFunctions)\n ) {\n continue;\n }\n\n aliases.set(id.name, readSource(code, initializer));\n }\n }\n\n return aliases;\n}\n\nexport function collectOxcReactiveDerivedFunctionNames(\n statements: readonly unknown[],\n): Set<string> {\n const names = new Set<string>();\n\n for (const statementValue of statements) {\n const statement = readObject(statementValue);\n\n if (statement.type === \"FunctionDeclaration\") {\n const id = readObject(statement.id);\n if (typeof id.name === \"string\" && isOxcReactiveDerivedFunction(statement)) {\n names.add(id.name);\n }\n continue;\n }\n\n if (statement.type !== \"VariableDeclaration\" || statement.kind !== \"const\") {\n continue;\n }\n\n for (const declarationValue of readArray(statement.declarations)) {\n const declaration = readObject(declarationValue);\n const id = readObject(declaration.id);\n const initializer = unwrapOxcParentheses(readObject(declaration.init));\n\n if (\n typeof id.name === \"string\" &&\n (initializer.type === \"FunctionExpression\" ||\n initializer.type === \"ArrowFunctionExpression\") &&\n isOxcReactiveDerivedFunction(initializer)\n ) {\n names.add(id.name);\n }\n }\n }\n\n return names;\n}\n\nexport function rewriteOxcReactiveAliasExpressionCode(\n code: string,\n expression: Record<string, unknown>,\n aliases: ReadonlyMap<string, string> | undefined,\n): string | undefined {\n if (aliases === undefined || aliases.size === 0) {\n return undefined;\n }\n\n const expressionStart = readNumber(expression.start);\n const expressionEnd = readNumber(expression.end);\n\n if (expressionStart === undefined || expressionEnd === undefined) {\n return undefined;\n }\n\n const replacements: ReactiveAliasReplacement[] = [];\n collectOxcReactiveAliasReplacements(\n expression,\n undefined,\n undefined,\n aliases,\n new Set(),\n replacements,\n );\n\n if (replacements.length === 0) {\n return undefined;\n }\n\n let source = readSource(code, expression);\n\n for (const replacement of replacements.sort((left, right) => right.start - left.start)) {\n const start = replacement.start - expressionStart;\n const end = replacement.end - expressionStart;\n\n if (start < 0 || end > source.length || start > end) {\n return undefined;\n }\n\n source = `${source.slice(0, start)}${replacement.text}${source.slice(end)}`;\n }\n\n return source;\n}\n\nfunction collectOxcReactiveAliasReplacements(\n node: unknown,\n parent: Record<string, unknown> | undefined,\n parentKey: string | undefined,\n aliases: ReadonlyMap<string, string>,\n shadowed: ReadonlySet<string>,\n replacements: ReactiveAliasReplacement[],\n): void {\n const object = readObject(node);\n\n if (typeof object.type !== \"string\") {\n return;\n }\n\n if (object.type.startsWith(\"TS\")) {\n return;\n }\n\n if (\n object.type === \"Identifier\" &&\n typeof object.name === \"string\" &&\n !shadowed.has(object.name) &&\n isOxcReactiveAliasReference(object, parent, parentKey)\n ) {\n const replacement = aliases.get(object.name);\n const start = readNumber(object.start);\n const end = readNumber(object.end);\n\n if (replacement !== undefined && start !== undefined && end !== undefined) {\n replacements.push({\n end,\n start,\n text: isOxcShorthandPropertyValue(object, parent)\n ? `${object.name}: (${replacement})`\n : `(${replacement})`,\n });\n }\n return;\n }\n\n if (isOxcFunctionNode(object)) {\n const functionShadowed = new Set(shadowed);\n collectOxcBindingNames(object.id, functionShadowed);\n for (const parameter of readArray(object.params)) {\n collectOxcBindingNames(parameter, functionShadowed);\n }\n collectOxcReactiveAliasReplacements(\n object.body,\n object,\n \"body\",\n aliases,\n addOxcBlockBindingNames(object.body, functionShadowed),\n replacements,\n );\n return;\n }\n\n const childShadowed =\n object.type === \"BlockStatement\" || object.type === \"Program\"\n ? addOxcBlockBindingNames(object, new Set(shadowed))\n : shadowed;\n\n for (const [key, value] of Object.entries(object)) {\n if (key === \"type\" || key === \"start\" || key === \"end\" || key === \"loc\") {\n continue;\n }\n\n if (key === \"id\" && isOxcDeclarationWithId(object)) {\n continue;\n }\n\n if (key === \"params\" && isOxcFunctionNode(object)) {\n continue;\n }\n\n if (key === \"key\" && isOxcNonComputedKey(object)) {\n continue;\n }\n\n if (Array.isArray(value)) {\n for (const item of value) {\n collectOxcReactiveAliasReplacements(\n item,\n object,\n key,\n aliases,\n childShadowed,\n replacements,\n );\n }\n continue;\n }\n\n if (typeof value === \"object\" && value !== null) {\n collectOxcReactiveAliasReplacements(value, object, key, aliases, childShadowed, replacements);\n }\n }\n}\n\nfunction isOxcReactiveAliasReference(\n node: Record<string, unknown>,\n parent: Record<string, unknown> | undefined,\n parentKey: string | undefined,\n): boolean {\n if (parent === undefined) {\n return true;\n }\n\n if (parent.type === \"MemberExpression\" && parentKey === \"property\" && parent.computed !== true) {\n return false;\n }\n\n if (parentKey === \"id\" && isOxcDeclarationWithId(parent)) {\n return false;\n }\n\n if (parentKey === \"params\" && isOxcFunctionNode(parent)) {\n return false;\n }\n\n if (parentKey === \"key\" && isOxcNonComputedKey(parent)) {\n return isOxcShorthandPropertyValue(node, parent);\n }\n\n if (\n (parent.type === \"BreakStatement\" ||\n parent.type === \"ContinueStatement\" ||\n parent.type === \"LabeledStatement\") &&\n parentKey === \"label\"\n ) {\n return false;\n }\n\n return true;\n}\n\nfunction isOxcShorthandPropertyValue(\n node: Record<string, unknown>,\n parent: Record<string, unknown> | undefined,\n): boolean {\n const key = readObject(parent?.key);\n return (\n parent !== undefined &&\n (parent.type === \"Property\" || parent.type === \"ObjectProperty\") &&\n parent.shorthand === true &&\n parent.value === node &&\n readNumber(key.start) === readNumber(node.start) &&\n readNumber(key.end) === readNumber(node.end)\n );\n}\n\nfunction isOxcNonComputedKey(node: Record<string, unknown>): boolean {\n return (\n (node.type === \"Property\" ||\n node.type === \"ObjectProperty\" ||\n node.type === \"PropertyDefinition\" ||\n node.type === \"MethodDefinition\") &&\n node.computed !== true\n );\n}\n\nfunction isOxcDeclarationWithId(node: Record<string, unknown>): boolean {\n return (\n node.type === \"VariableDeclarator\" ||\n node.type === \"FunctionDeclaration\" ||\n node.type === \"FunctionExpression\" ||\n node.type === \"ClassDeclaration\" ||\n node.type === \"ClassExpression\"\n );\n}\n\nfunction isOxcFunctionNode(node: Record<string, unknown>): boolean {\n return (\n node.type === \"ArrowFunctionExpression\" ||\n node.type === \"FunctionDeclaration\" ||\n node.type === \"FunctionExpression\"\n );\n}\n\nfunction addOxcBlockBindingNames(node: unknown, shadowed: Set<string>): ReadonlySet<string> {\n const object = readObject(node);\n const body = readArray(object.body);\n\n if (body.length === 0) {\n return shadowed;\n }\n\n for (const statement of body) {\n collectOxcStatementBindingNames(statement, shadowed);\n }\n\n return shadowed;\n}\n\nfunction collectOxcStatementBindingNames(node: unknown, names: Set<string>): void {\n const object = readObject(node);\n\n if (object.type === \"VariableDeclaration\") {\n for (const declaration of readArray(object.declarations)) {\n collectOxcBindingNames(readObject(declaration).id, names);\n }\n return;\n }\n\n if (object.type === \"FunctionDeclaration\" || object.type === \"ClassDeclaration\") {\n collectOxcBindingNames(object.id, names);\n }\n}\n\nfunction collectOxcBindingNames(node: unknown, names: Set<string>): void {\n const object = readObject(node);\n\n if (object.type === \"Identifier\" && typeof object.name === \"string\") {\n names.add(object.name);\n return;\n }\n\n if (object.type === \"RestElement\") {\n collectOxcBindingNames(object.argument, names);\n return;\n }\n\n if (object.type === \"AssignmentPattern\") {\n collectOxcBindingNames(object.left, names);\n return;\n }\n\n if (object.type === \"ArrayPattern\") {\n for (const element of readArray(object.elements)) {\n collectOxcBindingNames(element, names);\n }\n return;\n }\n\n if (object.type === \"ObjectPattern\") {\n for (const property of readArray(object.properties)) {\n collectOxcBindingNames(readObject(property).value ?? readObject(property).argument, names);\n }\n }\n}\n\nfunction collectOxcFunctionLocalBindings(\n functionNode: Record<string, unknown>,\n names: Set<string>,\n): void {\n collectOxcBindingNames(functionNode.id, names);\n\n for (const parameter of readArray(functionNode.params)) {\n collectOxcBindingNames(parameter, names);\n }\n\n collectOxcLocalBindingsFromNode(readObject(functionNode.body), names);\n}\n\nfunction collectOxcLocalBindingsFromNode(node: unknown, names: Set<string>): void {\n const object = readObject(node);\n\n if (typeof object.type !== \"string\" || object.type.startsWith(\"TS\")) {\n return;\n }\n\n if (object.type === \"VariableDeclaration\") {\n for (const declaration of readArray(object.declarations)) {\n collectOxcBindingNames(readObject(declaration).id, names);\n }\n } else if (object.type === \"FunctionDeclaration\" || object.type === \"ClassDeclaration\") {\n collectOxcBindingNames(object.id, names);\n return;\n } else if (object.type === \"ForOfStatement\" || object.type === \"ForInStatement\") {\n const left = readObject(object.left);\n const declarations = readArray(left.declarations);\n collectOxcBindingNames(\n declarations.length > 0 ? readObject(declarations[0]).id : object.left,\n names,\n );\n } else if (object.type === \"ForStatement\") {\n collectOxcLocalBindingsFromNode(object.init, names);\n } else if (isOxcFunctionNode(object)) {\n return;\n }\n\n for (const [key, value] of Object.entries(object)) {\n if (key === \"type\" || key === \"start\" || key === \"end\" || key === \"loc\") {\n continue;\n }\n\n if (Array.isArray(value)) {\n for (const item of value) {\n collectOxcLocalBindingsFromNode(item, names);\n }\n continue;\n }\n\n if (typeof value === \"object\" && value !== null) {\n collectOxcLocalBindingsFromNode(value, names);\n }\n }\n}\n\nfunction readNumber(value: unknown): number | undefined {\n return typeof value === \"number\" ? value : undefined;\n}\n\nexport function markOxcRenderValueExpressions(\n nodes: readonly JsxNodeIr[],\n names: Set<string>,\n renderMode: \"dynamic\" | \"html\" = \"dynamic\",\n): void {\n if (names.size === 0) {\n return;\n }\n\n for (const node of nodes) {\n if (node.kind === \"expr\" && names.has(node.code)) {\n node.renderMode = renderMode;\n continue;\n }\n\n if (node.kind === \"conditional\") {\n markOxcRenderValueExpressions(node.whenTrue, names, renderMode);\n markOxcRenderValueExpressions(node.whenFalse, names, renderMode);\n continue;\n }\n\n if (node.kind === \"list\") {\n markOxcRenderValueExpressions(node.children, names, renderMode);\n continue;\n }\n\n if (node.kind === \"fragment\" || node.kind === \"element\" || node.kind === \"component\") {\n markOxcRenderValueExpressions(node.children, names, renderMode);\n }\n }\n}\n\nexport function isOxcRenderValueExpression(expression: Record<string, unknown>): boolean {\n if (isOxcRendererCallExpression(expression)) {\n return true;\n }\n\n if (expression.type !== \"MemberExpression\") {\n return false;\n }\n\n const object = readObject(expression.object);\n const property = readObject(expression.property);\n\n return (\n object.type === \"Identifier\" &&\n object.name === \"props\" &&\n typeof property.name === \"string\" &&\n [\"children\", \"fallback\", \"header\", \"sidebar\", \"element\"].includes(property.name)\n );\n}\n\nfunction isOxcRendererCallExpression(expression: Record<string, unknown>): boolean {\n if (expression.type !== \"CallExpression\") {\n return false;\n }\n\n const callee = readObject(expression.callee);\n\n return (\n callee.type === \"Identifier\" &&\n typeof callee.name === \"string\" &&\n /^render[A-Z0-9_$]/.test(callee.name)\n );\n}\n\nexport function containsOxcJsxSyntax(node: Record<string, unknown>): boolean {\n if (node.type === \"JSXElement\" || node.type === \"JSXFragment\") {\n return true;\n }\n\n return Object.values(node).some((value) =>\n Array.isArray(value)\n ? value.some((item) => containsOxcJsxSyntax(readObject(item)))\n : typeof value === \"object\" && value !== null && containsOxcJsxSyntax(readObject(value)),\n );\n}\n\nfunction isJsxLikeInitializer(node: Record<string, unknown>): boolean {\n if (node.type === \"JSXElement\" || node.type === \"JSXFragment\") return true;\n if (node.type === \"ConditionalExpression\") {\n return (\n isJsxLikeInitializer(readObject(node.consequent)) ||\n isJsxLikeInitializer(readObject(node.alternate))\n );\n }\n if (node.type === \"LogicalExpression\") {\n return (\n isJsxLikeInitializer(readObject(node.left)) || isJsxLikeInitializer(readObject(node.right))\n );\n }\n if (node.type === \"ArrayExpression\" || node.type === \"ObjectExpression\") {\n return false;\n }\n return containsOxcJsxSyntax(node);\n}\n\nfunction isBindingReassigned(statements: readonly unknown[], name: string): boolean {\n for (const statement of statements) {\n if (containsAssignmentTo(readObject(statement), name)) return true;\n }\n return false;\n}\n\nfunction isOxcReactiveReadExpression(expression: Record<string, unknown>): boolean {\n if (expression.type !== \"CallExpression\") {\n return false;\n }\n\n const callee = readObject(expression.callee);\n\n if (callee.type !== \"MemberExpression\" || callee.computed === true || callee.optional === true) {\n return false;\n }\n\n const property = readObject(callee.property);\n\n return property.type === \"Identifier\" && property.name === \"get\";\n}\n\nfunction isOxcReactiveAliasExpression(expression: Record<string, unknown>): boolean {\n const state = analyzeOxcReactiveAliasExpression(expression);\n return state.safe && state.reactive;\n}\n\nfunction isOxcReactiveDerivedAliasExpression(\n expression: Record<string, unknown>,\n reactiveDerivedFunctions: ReadonlySet<string>,\n): boolean {\n if (reactiveDerivedFunctions.size === 0) {\n return false;\n }\n\n const unwrappedExpression = unwrapOxcParentheses(expression);\n\n if (unwrappedExpression.type !== \"CallExpression\") {\n return false;\n }\n\n if (readArray(unwrappedExpression.arguments).length !== 0) {\n return false;\n }\n\n const callee = readObject(unwrappedExpression.callee);\n\n return (\n callee.type === \"Identifier\" &&\n typeof callee.name === \"string\" &&\n reactiveDerivedFunctions.has(callee.name)\n );\n}\n\nfunction isOxcReactiveDerivedFunction(functionNode: Record<string, unknown>): boolean {\n if (readArray(functionNode.params).length !== 0) {\n return false;\n }\n\n const localBindings = new Set<string>();\n collectOxcFunctionLocalBindings(functionNode, localBindings);\n const usage = analyzeOxcReactiveDerivedFunctionUsage(\n readObject(functionNode.body),\n localBindings,\n );\n\n return usage.reactive && usage.safe;\n}\n\nfunction analyzeOxcReactiveDerivedFunctionUsage(\n node: unknown,\n localBindings: ReadonlySet<string>,\n): ReactiveAliasExpressionState {\n const object = readObject(node);\n\n if (typeof object.type !== \"string\" || object.type.startsWith(\"TS\")) {\n return { reactive: false, safe: true };\n }\n\n if (isOxcFunctionNode(object)) {\n return { reactive: false, safe: true };\n }\n\n if (object.type === \"CallExpression\") {\n const callee = readObject(object.callee);\n const member = callee.type === \"MemberExpression\" ? callee : undefined;\n const property = readObject(member?.property);\n const owner = readObject(member?.object);\n const propertyName =\n member?.computed === true\n ? undefined\n : typeof property.name === \"string\"\n ? property.name\n : undefined;\n const ownerName = owner.type === \"Identifier\" ? owner.name : undefined;\n\n if (propertyName === \"get\" && typeof ownerName === \"string\" && !localBindings.has(ownerName)) {\n return mergeReactiveAliasStates([\n { reactive: true, safe: true },\n ...readArray(object.arguments).map((argument) =>\n analyzeOxcReactiveDerivedFunctionUsage(argument, localBindings),\n ),\n ]);\n }\n\n if (\n propertyName !== undefined &&\n typeof ownerName === \"string\" &&\n !localBindings.has(ownerName) &&\n isLikelyMutatingMethodName(propertyName)\n ) {\n return { reactive: false, safe: false };\n }\n }\n\n const states: ReactiveAliasExpressionState[] = [];\n\n for (const [key, value] of Object.entries(object)) {\n if (key === \"type\" || key === \"start\" || key === \"end\" || key === \"loc\") {\n continue;\n }\n\n if (Array.isArray(value)) {\n states.push(\n ...value.map((item) => analyzeOxcReactiveDerivedFunctionUsage(item, localBindings)),\n );\n continue;\n }\n\n if (typeof value === \"object\" && value !== null) {\n states.push(analyzeOxcReactiveDerivedFunctionUsage(value, localBindings));\n }\n }\n\n return mergeReactiveAliasStates(states);\n}\n\nfunction mergeReactiveAliasStates(\n states: readonly ReactiveAliasExpressionState[],\n): ReactiveAliasExpressionState {\n return states.reduce<ReactiveAliasExpressionState>(\n (merged, state) => ({\n reactive: merged.reactive || state.reactive,\n safe: merged.safe && state.safe,\n }),\n { reactive: false, safe: true },\n );\n}\n\nfunction isLikelyMutatingMethodName(name: string): boolean {\n return (\n name === \"set\" ||\n name === \"delete\" ||\n name === \"clear\" ||\n name === \"push\" ||\n name === \"pop\" ||\n name === \"shift\" ||\n name === \"unshift\" ||\n name === \"splice\" ||\n name === \"sort\" ||\n name === \"reverse\"\n );\n}\n\nfunction analyzeOxcReactiveAliasExpression(\n expression: Record<string, unknown>,\n): ReactiveAliasExpressionState {\n const unwrappedExpression = unwrapOxcParentheses(expression);\n\n if (\n unwrappedExpression.type === \"Literal\" ||\n unwrappedExpression.type === \"Identifier\" ||\n unwrappedExpression.type === \"ThisExpression\"\n ) {\n return { reactive: false, safe: true };\n }\n\n if (isOxcReactiveReadExpression(unwrappedExpression)) {\n return { reactive: true, safe: true };\n }\n\n if (unwrappedExpression.type === \"ChainExpression\") {\n return analyzeOxcReactiveAliasExpression(readObject(unwrappedExpression.expression));\n }\n\n if (\n unwrappedExpression.type === \"TSAsExpression\" ||\n unwrappedExpression.type === \"TSSatisfiesExpression\" ||\n unwrappedExpression.type === \"TSNonNullExpression\" ||\n unwrappedExpression.type === \"TSInstantiationExpression\" ||\n unwrappedExpression.type === \"TypeCastExpression\"\n ) {\n return analyzeOxcReactiveAliasExpression(readObject(unwrappedExpression.expression));\n }\n\n if (unwrappedExpression.type === \"MemberExpression\") {\n const objectState = analyzeOxcReactiveAliasExpression(readObject(unwrappedExpression.object));\n const propertyState =\n unwrappedExpression.computed === true\n ? analyzeOxcReactiveAliasExpression(readObject(unwrappedExpression.property))\n : { reactive: false, safe: true };\n\n return {\n reactive: objectState.reactive || propertyState.reactive,\n safe: objectState.safe && propertyState.safe,\n };\n }\n\n if (unwrappedExpression.type === \"UnaryExpression\") {\n return analyzeOxcReactiveAliasExpression(readObject(unwrappedExpression.argument));\n }\n\n if (\n unwrappedExpression.type === \"BinaryExpression\" ||\n unwrappedExpression.type === \"LogicalExpression\"\n ) {\n const leftState = analyzeOxcReactiveAliasExpression(readObject(unwrappedExpression.left));\n const rightState = analyzeOxcReactiveAliasExpression(readObject(unwrappedExpression.right));\n\n return {\n reactive: leftState.reactive || rightState.reactive,\n safe: leftState.safe && rightState.safe,\n };\n }\n\n if (unwrappedExpression.type === \"ConditionalExpression\") {\n const testState = analyzeOxcReactiveAliasExpression(readObject(unwrappedExpression.test));\n const consequentState = analyzeOxcReactiveAliasExpression(\n readObject(unwrappedExpression.consequent),\n );\n const alternateState = analyzeOxcReactiveAliasExpression(\n readObject(unwrappedExpression.alternate),\n );\n\n return {\n reactive: testState.reactive || consequentState.reactive || alternateState.reactive,\n safe: testState.safe && consequentState.safe && alternateState.safe,\n };\n }\n\n return { reactive: false, safe: false };\n}\n\nfunction containsAssignmentTo(node: Record<string, unknown>, name: string): boolean {\n if (node.type === \"AssignmentExpression\") {\n const left = readObject(node.left);\n if (left.type === \"Identifier\" && left.name === name) return true;\n }\n if (node.type === \"UpdateExpression\") {\n const argument = readObject(node.argument);\n if (argument.type === \"Identifier\" && argument.name === name) return true;\n }\n for (const value of Object.values(node)) {\n if (Array.isArray(value)) {\n for (const item of value) {\n if (\n typeof item === \"object\" &&\n item !== null &&\n containsAssignmentTo(readObject(item), name)\n ) {\n return true;\n }\n }\n } else if (typeof value === \"object\" && value !== null) {\n if (containsAssignmentTo(readObject(value), name)) return true;\n }\n }\n return false;\n}\n\nfunction collectOxcPushJsxBindingNames(statements: readonly unknown[], names: Set<string>): void {\n for (const statement of statements) {\n const object = readObject(statement);\n\n if (object.type === \"ForOfStatement\" || object.type === \"ForStatement\") {\n collectOxcPushJsxBindingNames(readArray(readObject(object.body).body), names);\n continue;\n }\n\n const expression = readObject(object.expression);\n\n if (object.type !== \"ExpressionStatement\" || expression.type !== \"CallExpression\") {\n continue;\n }\n\n const callee = readObject(expression.callee);\n const argument = unwrapOxcParentheses(readObject(readArray(expression.arguments)[0]));\n\n if (\n callee.type !== \"MemberExpression\" ||\n readObject(callee.property).name !== \"push\" ||\n !containsOxcJsxSyntax(argument)\n ) {\n continue;\n }\n\n const target = readObject(callee.object);\n\n if (typeof target.name === \"string\") {\n names.add(target.name);\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oxc-runtime-emit.js","sourceRoot":"","sources":["../src/oxc-runtime-emit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oxc-runtime-emit.js","sourceRoot":"","sources":["../src/oxc-runtime-emit.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AttributeIr, ComponentPropIr, JsxNodeIr } from \"./ir.js\";\nimport { escapeHtmlAttribute } from \"@reckona/mreact-shared/html-escape\";\n\nexport const oxcServerStringReactNodeRenderHelperPlaceholder =\n \"__mreactRenderReactNodeToString\";\n\nexport function emitOxcServerStringChildren(children: readonly JsxNodeIr[]): string {\n if (children.length === 0) {\n return '\"\"';\n }\n\n return children.map(emitOxcServerStringNode).join(\" + \");\n}\n\nfunction emitOxcServerStringNode(node: JsxNodeIr): string {\n if (node.kind === \"text\") {\n return JSON.stringify(node.value);\n }\n\n if (node.kind === \"expr\") {\n return `_escapeHtml(${node.code})`;\n }\n\n if (node.kind === \"conditional\") {\n return `((${node.conditionCode}) ? ${emitOxcServerStringChildren(node.whenTrue)} : ${emitOxcServerStringChildren(node.whenFalse)})`;\n }\n\n if (node.kind === \"list\") {\n const parameters =\n node.indexName === undefined ? node.itemName : `${node.itemName}, ${node.indexName}`;\n return `(${node.itemsCode}).map((${parameters}) => ${emitOxcServerStringChildren(node.children)}).join(\"\")`;\n }\n\n if (node.kind === \"fragment\") {\n return emitOxcServerStringChildren(node.children);\n }\n\n if (node.kind === \"component\") {\n const props = emitOxcServerComponentProps(node.props, node.children);\n if (node.runtime === \"compat\") {\n return `${oxcServerStringReactNodeRenderHelperPlaceholder}(${node.name}, ${props})`;\n }\n return `${node.name}(${props})`;\n }\n\n if (node.kind === \"async-boundary\") {\n return '\"\"';\n }\n\n const attrs = node.attributes.map(emitOxcServerAttribute).join(\" + \");\n const open =\n attrs === \"\"\n ? JSON.stringify(`<${node.tagName}>`)\n : `${JSON.stringify(`<${node.tagName}`)} + ${attrs} + \">\"`;\n return `${open} + ${emitOxcServerStringChildren(node.children)} + ${JSON.stringify(`</${node.tagName}>`)}`;\n}\n\nfunction emitOxcServerComponentProps(\n props: readonly ComponentPropIr[],\n children: readonly JsxNodeIr[],\n): string {\n const entries = props.map((prop) => {\n if (prop.kind === \"spread-prop\") {\n return `...(${prop.code})`;\n }\n\n if (prop.kind === \"render-prop\") {\n return `${emitOxcCompatObjectPropName(prop.name)}: ${emitOxcServerStringChildren(prop.children)}`;\n }\n\n return `${emitOxcCompatObjectPropName(prop.name)}: (${prop.code})`;\n });\n\n if (children.length > 0) {\n entries.push(`children: ${emitOxcServerStringChildren(children)}`);\n }\n\n return `{ ${entries.join(\", \")} }`;\n}\n\nfunction emitOxcServerAttribute(attr: AttributeIr): string {\n if (attr.kind === \"static-attr\") {\n return JSON.stringify(` ${attr.name}=\"${escapeHtmlAttribute(attr.value)}\"`);\n }\n\n if (attr.kind === \"dynamic-attr\") {\n return `${JSON.stringify(` ${attr.name}=\"`)} + _escapeHtml(${attr.code}) + ${JSON.stringify('\"')}`;\n }\n\n return '\"\"';\n}\n\nfunction emitOxcCompatObjectNode(node: JsxNodeIr): string {\n if (node.kind === \"text\") {\n return JSON.stringify(node.value);\n }\n\n if (node.kind === \"expr\") {\n return `(${node.code})`;\n }\n\n if (node.kind === \"conditional\") {\n return `(${node.conditionCode}) ? ${emitOxcCompatObjectChildren(node.whenTrue)} : ${emitOxcCompatObjectChildren(node.whenFalse)}`;\n }\n\n if (node.kind === \"list\") {\n const parameters =\n node.indexName === undefined ? node.itemName : `${node.itemName}, ${node.indexName}`;\n return `(${node.itemsCode}).map((${parameters}) => ${emitOxcCompatObjectChildren(node.children)})`;\n }\n\n if (node.kind === \"fragment\") {\n return emitOxcCompatObjectElement('Symbol.for(\"modular.react.fragment\")', [], node.children);\n }\n\n if (node.kind === \"component\") {\n return emitOxcCompatObjectElement(\n node.name,\n node.props.map(emitOxcCompatObjectComponentProp),\n node.children,\n node.keyCode,\n );\n }\n\n if (node.kind === \"async-boundary\") {\n return \"null\";\n }\n\n return emitOxcCompatObjectElement(\n JSON.stringify(node.tagName),\n node.attributes.map(emitOxcCompatObjectAttribute),\n node.children,\n node.keyCode,\n );\n}\n\nexport function emitOxcCompatObjectChildren(children: readonly JsxNodeIr[]): string {\n if (children.length === 0) {\n return \"null\";\n }\n\n if (children.length === 1) {\n return emitOxcCompatObjectNode(children[0] as JsxNodeIr);\n }\n\n return `[${children.map(emitOxcCompatObjectNode).join(\", \")}]`;\n}\n\nfunction emitOxcCompatObjectElement(\n typeCode: string,\n propEntries: readonly string[],\n children: readonly JsxNodeIr[],\n explicitKeyCode?: string,\n): string {\n const entries = [...propEntries];\n\n if (children.length > 0) {\n entries.push(`children: ${emitOxcCompatObjectChildren(children)}`);\n }\n\n const keyExpression =\n explicitKeyCode === undefined\n ? \"_props.key === undefined ? null : String(_props.key)\"\n : `String(${explicitKeyCode})`;\n\n return [\n \"(() => {\",\n ` const _props = { ${entries.join(\", \")} };`,\n ` const _key = ${keyExpression};`,\n \" const _ref = _props.ref ?? null;\",\n \" delete _props.key;\",\n \" delete _props.ref;\",\n ' return { $$typeof: Symbol.for(\"modular.react.element\"),',\n ` type: ${typeCode},`,\n \" key: _key,\",\n \" ref: _ref,\",\n \" props: _props };\",\n \"})()\",\n ].join(\"\\n\");\n}\n\nfunction emitOxcCompatObjectAttribute(attr: AttributeIr): string {\n if (attr.kind === \"spread-attr\") {\n return `...(${attr.code})`;\n }\n\n if (attr.kind === \"static-attr\") {\n return `${emitOxcCompatObjectPropName(attr.name)}: ${JSON.stringify(attr.value)}`;\n }\n\n if (attr.kind === \"dynamic-attr\") {\n return `${emitOxcCompatObjectPropName(attr.name)}: (${attr.code})`;\n }\n\n return `${emitOxcCompatObjectPropName(attr.name)}: ${attr.code}`;\n}\n\nfunction emitOxcCompatObjectComponentProp(prop: ComponentPropIr): string {\n if (prop.kind === \"spread-prop\") {\n return `...(${prop.code})`;\n }\n\n if (prop.kind === \"render-prop\") {\n return `${emitOxcCompatObjectPropName(prop.name)}: ${emitOxcCompatObjectChildren(prop.children)}`;\n }\n\n return `${emitOxcCompatObjectPropName(prop.name)}: (${prop.code})`;\n}\n\nfunction emitOxcCompatObjectPropName(name: string): string {\n return /^[A-Za-z_$][\\w$]*$/.test(name) ? name : JSON.stringify(name);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oxc-transform.js","sourceRoot":"","sources":["../src/oxc-transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,UAAU,sBAAsB,CAAC,MAAc;IACnD,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE;QAClD,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,UAAU;QACf,UAAU,EAAE;YACV,qBAAqB,EAAE,IAAI;SAC5B;KACF,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAc;IAC9C,OAAO,CACL,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,6BAA6B,CAAC,IAAI,CAAC,MAAM,CAAC;QAC1C,kCAAkC,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/C,sCAAsC,CAAC,IAAI,CAAC,MAAM,CAAC;QACnD,qCAAqC,CAAC,IAAI,CAAC,MAAM,CAAC;QAClD,6CAA6C,CAAC,IAAI,CAAC,MAAM,CAAC,CAC3D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE;QAClD,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE;YACH,OAAO,EAAE,WAAW;YACpB,YAAY,EAAE,wBAAwB;SACvC;QACD,UAAU,EAAE;YACV,qBAAqB,EAAE,IAAI;SAC5B;KACF,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;QACnD,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,MAAc;IAC/D,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE;QAClD,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE;YACH,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,eAAe;YACvB,UAAU,EAAE,UAAU;SACvB;QACD,UAAU,EAAE;YACV,qBAAqB,EAAE,IAAI;SAC5B;KACF,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;QACnD,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"oxc-transform.js","sourceRoot":"","sources":["../src/oxc-transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,UAAU,sBAAsB,CAAC,MAAc;IACnD,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE;QAClD,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,UAAU;QACf,UAAU,EAAE;YACV,qBAAqB,EAAE,IAAI;SAC5B;KACF,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAc;IAC9C,OAAO,CACL,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,6BAA6B,CAAC,IAAI,CAAC,MAAM,CAAC;QAC1C,kCAAkC,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/C,sCAAsC,CAAC,IAAI,CAAC,MAAM,CAAC;QACnD,qCAAqC,CAAC,IAAI,CAAC,MAAM,CAAC;QAClD,6CAA6C,CAAC,IAAI,CAAC,MAAM,CAAC,CAC3D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE;QAClD,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE;YACH,OAAO,EAAE,WAAW;YACpB,YAAY,EAAE,wBAAwB;SACvC;QACD,UAAU,EAAE;YACV,qBAAqB,EAAE,IAAI;SAC5B;KACF,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;QACnD,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,MAAc;IAC/D,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE;QAClD,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE;YACH,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,eAAe;YACvB,UAAU,EAAE,UAAU;SACvB;QACD,UAAU,EAAE;YACV,qBAAqB,EAAE,IAAI;SAC5B;KACF,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;QACnD,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AAC/B,CAAC","sourcesContent":["import { transformSync } from \"oxc-transform\";\n\nexport function stripTypeScriptWithOxc(source: string): string {\n if (!needsTypeScriptStripping(source)) {\n return source.trimEnd();\n }\n\n const result = transformSync(\"snippet.tsx\", source, {\n lang: \"tsx\",\n sourceType: \"module\",\n target: \"es2022\",\n jsx: \"preserve\",\n typescript: {\n onlyRemoveTypeImports: true,\n },\n });\n\n if (result.errors.length > 0) {\n return source.trimEnd();\n }\n\n return result.code.trimEnd();\n}\n\nfunction needsTypeScriptStripping(source: string): boolean {\n return (\n /\\bimport\\s+type\\b/.test(source) ||\n /\\btype\\s+[A-Za-z_$][\\w$]*\\b/.test(source) ||\n /\\binterface\\s+[A-Za-z_$][\\w$]*\\b/.test(source) ||\n /\\b[A-Za-z_$][\\w$.]*\\s*<[^>\\n]+>\\s*\\(/.test(source) ||\n /\\bas\\s+(?:const|[A-Za-z_$][\\w$]*)\\b/.test(source) ||\n /:\\s*[A-Za-z_$][\\w$<>,\\s|&.[\\]?]*(?=[,)=;{])/.test(source)\n );\n}\n\nexport function transformJsxWithOxc(source: string): string {\n const result = transformSync(\"snippet.tsx\", source, {\n lang: \"tsx\",\n sourceType: \"module\",\n target: \"es2022\",\n jsx: {\n runtime: \"automatic\",\n importSource: \"@reckona/mreact-compat\",\n },\n typescript: {\n onlyRemoveTypeImports: true,\n },\n });\n\n if (result.errors.length > 0 && result.code === \"\") {\n return stripTypeScriptWithOxc(source);\n }\n\n return result.code.trimEnd();\n}\n\nexport function transformJsxToCreateElementWithOxc(source: string): string {\n const result = transformSync(\"snippet.tsx\", source, {\n lang: \"tsx\",\n sourceType: \"module\",\n target: \"es2022\",\n jsx: {\n runtime: \"classic\",\n pragma: \"createElement\",\n pragmaFrag: \"Fragment\",\n },\n typescript: {\n onlyRemoveTypeImports: true,\n },\n });\n\n if (result.errors.length > 0 && result.code === \"\") {\n return stripTypeScriptWithOxc(source);\n }\n\n return result.code.trimEnd();\n}\n"]}
package/dist/oxc.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"oxc.d.ts","sourceRoot":"","sources":["../src/oxc.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAkC,QAAQ,EAAE,MAAM,SAAS,CAAC;AAiFxE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE;QACH,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,kBAAkB,EAAE,MAAM,EAAE,CAAC;QAC7B,EAAE,CAAC,EAAE,QAAQ,CAAC;QACd,sBAAsB,EAAE,OAAO,CAAC;QAChC,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;CACH;AA+CD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,eAAe,CA6BzE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAQzE;AAED,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,qBAAqB,EAC9B,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,UAAU,CAAC,GACjD,iBAAiB,CAWnB"}
1
+ {"version":3,"file":"oxc.d.ts","sourceRoot":"","sources":["../src/oxc.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAkC,QAAQ,EAAE,MAAM,SAAS,CAAC;AAkFxE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE;QACH,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,kBAAkB,EAAE,MAAM,EAAE,CAAC;QAC7B,EAAE,CAAC,EAAE,QAAQ,CAAC;QACd,sBAAsB,EAAE,OAAO,CAAC;QAChC,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;CACH;AA+CD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,eAAe,CA6BzE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAQzE;AAED,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,qBAAqB,EAC9B,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,UAAU,CAAC,GACjD,iBAAiB,CAWnB"}
package/dist/oxc.js CHANGED
@@ -16,7 +16,7 @@ import { analyzeOxcExpressionChild, analyzeOxcJsxNode, } from "./oxc-child-analy
16
16
  import { lowerOxcDomNodeExpression } from "./oxc-dom-lowering.js";
17
17
  import { lowerOxcCompatObjectExpression, lowerOxcCompatReactNodeExpression, lowerOxcNestedJsxExpression, lowerOxcServerStringExpression, } from "./oxc-nested-lowering.js";
18
18
  import { isOxcJsxBranch, readOxcReturnExpressionFromStatement, } from "./oxc-expression-utils.js";
19
- import { collectOxcBodyJsxBindingNames, collectOxcReactiveReadAliases, containsOxcJsxSyntax, markOxcRenderValueExpressions, rewriteOxcReactiveAliasExpressionCode, } from "./oxc-render-values.js";
19
+ import { collectOxcBodyJsxBindingNames, collectOxcReactiveDerivedFunctionNames, collectOxcReactiveReadAliases, containsOxcJsxSyntax, markOxcRenderValueExpressions, rewriteOxcReactiveAliasExpressionCode, } from "./oxc-render-values.js";
20
20
  import { containsRawJsxInIr } from "./oxc-raw-jsx.js";
21
21
  const oxcBodyLowerers = createOxcBodyLowerers();
22
22
  function createOxcBodyLowerers(compatRuntimeImports = new Map()) {
@@ -105,6 +105,7 @@ function analyzeOxcToIr(code, program, target, options) {
105
105
  const compatRuntimeImports = collectOxcCompatRuntimeImportComponents(program);
106
106
  const bodyLowerers = createOxcBodyLowerers(compatRuntimeImports);
107
107
  const moduleRenderValueBindings = collectOxcBodyJsxBindingNames(body);
108
+ const reactiveDerivedFunctionNames = collectOxcReactiveDerivedFunctionNames(body);
108
109
  for (const statement of body) {
109
110
  const object = readObject(statement);
110
111
  if (object.type === "ImportDeclaration") {
@@ -156,7 +157,7 @@ function analyzeOxcToIr(code, program, target, options) {
156
157
  const componentNames = componentNamesFromProgram(program, moduleBindingNames);
157
158
  const componentCallNames = options?.serverOutput === "stream" ? componentCallNamesFromProgram(program) : undefined;
158
159
  const asyncComponentNames = collectOxcAsyncComponentNames(program);
159
- const components = body.flatMap((statement) => analyzeOxcComponent(code, statement, componentNames, target, diagnostics, options?.bodyStatementJsx ?? "dom-node", moduleRenderValueBindings, options?.compatReactNodeReturn === true, options?.serverOutput, componentCallNames, bodyLowerers));
160
+ const components = body.flatMap((statement) => analyzeOxcComponent(code, statement, componentNames, target, diagnostics, options?.bodyStatementJsx ?? "dom-node", moduleRenderValueBindings, options?.compatReactNodeReturn === true, options?.serverOutput, componentCallNames, bodyLowerers, reactiveDerivedFunctionNames));
160
161
  for (const component of components) {
161
162
  markOxcAsyncComponentReferences(component.root, asyncComponentNames);
162
163
  markOxcClientReferences(component.root, clientBoundaryImports);
@@ -195,7 +196,7 @@ function componentCallNamesFromProgram(program) {
195
196
  ...collectOxcPlainComponentNames(program),
196
197
  ]);
197
198
  }
198
- function analyzeOxcComponent(code, statement, componentNames, target, diagnostics, bodyStatementJsx, moduleRenderValueBindings, compatReactNodeReturn, serverOutput, componentCallNames, bodyLowerers) {
199
+ function analyzeOxcComponent(code, statement, componentNames, target, diagnostics, bodyStatementJsx, moduleRenderValueBindings, compatReactNodeReturn, serverOutput, componentCallNames, bodyLowerers, reactiveDerivedFunctionNames) {
199
200
  const object = readObject(statement);
200
201
  if (object.type === "ExportDefaultDeclaration") {
201
202
  const declaration = unwrapOxcComponentFunctionLikeInitializer(readObject(object.declaration));
@@ -205,7 +206,7 @@ function analyzeOxcComponent(code, statement, componentNames, target, diagnostic
205
206
  const id = readObject(declaration.id);
206
207
  const name = typeof id.name === "string" ? id.name : "DefaultExport";
207
208
  return [
208
- analyzeOxcFunctionLikeComponent(code, name, declaration, "default", componentNames, target, diagnostics, bodyStatementJsx, moduleRenderValueBindings, compatReactNodeReturn, serverOutput, componentCallNames, bodyLowerers, true),
209
+ analyzeOxcFunctionLikeComponent(code, name, declaration, "default", componentNames, target, diagnostics, bodyStatementJsx, moduleRenderValueBindings, compatReactNodeReturn, serverOutput, componentCallNames, bodyLowerers, reactiveDerivedFunctionNames, true),
209
210
  ];
210
211
  }
211
212
  if (object.type !== "ExportNamedDeclaration") {
@@ -215,7 +216,7 @@ function analyzeOxcComponent(code, statement, componentNames, target, diagnostic
215
216
  }
216
217
  return [
217
218
  {
218
- ...analyzeOxcFunctionLikeComponent(code, plainComponent.name, plainComponent.initializer, plainComponent.name, componentNames, target, diagnostics, bodyStatementJsx, moduleRenderValueBindings, compatReactNodeReturn, serverOutput, componentCallNames, bodyLowerers),
219
+ ...analyzeOxcFunctionLikeComponent(code, plainComponent.name, plainComponent.initializer, plainComponent.name, componentNames, target, diagnostics, bodyStatementJsx, moduleRenderValueBindings, compatReactNodeReturn, serverOutput, componentCallNames, bodyLowerers, reactiveDerivedFunctionNames),
219
220
  exported: false,
220
221
  },
221
222
  ];
@@ -227,7 +228,7 @@ function analyzeOxcComponent(code, statement, componentNames, target, diagnostic
227
228
  return [];
228
229
  }
229
230
  return [
230
- analyzeOxcFunctionLikeComponent(code, variableComponent.name, variableComponent.initializer, variableComponent.name, componentNames, target, diagnostics, bodyStatementJsx, moduleRenderValueBindings, compatReactNodeReturn, serverOutput, componentCallNames, bodyLowerers),
231
+ analyzeOxcFunctionLikeComponent(code, variableComponent.name, variableComponent.initializer, variableComponent.name, componentNames, target, diagnostics, bodyStatementJsx, moduleRenderValueBindings, compatReactNodeReturn, serverOutput, componentCallNames, bodyLowerers, reactiveDerivedFunctionNames),
231
232
  ];
232
233
  }
233
234
  if (declaration.type !== "FunctionDeclaration" ||
@@ -239,10 +240,10 @@ function analyzeOxcComponent(code, statement, componentNames, target, diagnostic
239
240
  return [];
240
241
  }
241
242
  return [
242
- analyzeOxcFunctionLikeComponent(code, id.name, declaration, id.name, componentNames, target, diagnostics, bodyStatementJsx, moduleRenderValueBindings, compatReactNodeReturn, serverOutput, componentCallNames, bodyLowerers),
243
+ analyzeOxcFunctionLikeComponent(code, id.name, declaration, id.name, componentNames, target, diagnostics, bodyStatementJsx, moduleRenderValueBindings, compatReactNodeReturn, serverOutput, componentCallNames, bodyLowerers, reactiveDerivedFunctionNames),
243
244
  ];
244
245
  }
245
- function analyzeOxcFunctionLikeComponent(code, name, functionLike, exportName, componentNames, target, diagnostics, bodyStatementJsx, moduleRenderValueBindings, compatReactNodeReturn, serverOutput, componentCallNames, bodyLowerers, exportDefault = false) {
246
+ function analyzeOxcFunctionLikeComponent(code, name, functionLike, exportName, componentNames, target, diagnostics, bodyStatementJsx, moduleRenderValueBindings, compatReactNodeReturn, serverOutput, componentCallNames, bodyLowerers, reactiveDerivedFunctionNames, exportDefault = false) {
246
247
  const functionBody = readObject(functionLike.body);
247
248
  const body = functionBody.type === "BlockStatement" ? readArray(functionBody.body) : [];
248
249
  const earlyIfRootReturn = bodyStatementJsx === "compat-object" ? undefined : findOxcEarlyIfRootReturn(body);
@@ -262,7 +263,7 @@ function analyzeOxcFunctionLikeComponent(code, name, functionLike, exportName, c
262
263
  bodyStatement !== earlyIfRootReturn?.fallthroughStatement)
263
264
  .map((bodyStatement) => lowerOxcBodyStatementJsx(code, bodyStatement, componentNames, target, diagnostics, bodyStatementJsx, bodyLowerers) ?? formatOxcBodyStatement(code, bodyStatement, bodyStatementJsx));
264
265
  const componentBodyBindings = collectOxcVariableInitializers(body);
265
- const reactiveAliasBindings = collectOxcReactiveReadAliases(code, body);
266
+ const reactiveAliasBindings = collectOxcReactiveReadAliases(code, body, reactiveDerivedFunctionNames);
266
267
  const childAnalysisContext = createOxcChildAnalysisContext(componentNames, target, diagnostics, bodyStatementJsx, componentBodyBindings, reactiveAliasBindings, serverOutput, componentCallNames, bodyLowerers);
267
268
  const root = analyzeOxcEarlyIfRootReturn(code, earlyIfRootReturn, childAnalysisContext, bodyStatementJsx) ??
268
269
  analyzeOxcSwitchRootReturn(code, rootStatement, childAnalysisContext, bodyStatementJsx) ??