@reckona/mreact-compiler 0.0.143 → 0.0.145

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.
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"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","sourcesContent":["import { emitClient } from \"./emit-client.js\";\nimport { emitCompat } from \"./emit-compat.js\";\nimport { emitServer } from \"./emit-server.js\";\nimport { emitServerStream } from \"./emit-server-stream.js\";\nimport { analyzeCompilerModuleContextWithOxc, analyzeWithOxc } from \"./oxc.js\";\nimport type { ComponentIr, JsxNodeIr } from \"./ir.js\";\nimport type { AnalyzeToIrInput, AnalyzeToIrOutput, CompilerModuleContext } from \"./internal.js\";\nimport type { AnalyzeModuleOptions } from \"./types.js\";\nimport type {\n ClientReferenceMetadata,\n EventHydrationEntryMetadata,\n ModuleMetadata,\n TransformInput,\n TransformOutput,\n} from \"./types.js\";\n\nexport function transform(input: TransformInput): TransformOutput {\n return transformWithAnalyzer(input, (analyzeTarget, analyzeOptions) =>\n analyzeWithOxc({\n code: input.code,\n filename: input.filename,\n target: analyzeTarget,\n options: analyzeOptions,\n }),\n );\n}\n\nexport function transformCompilerModuleContext(\n input: TransformInput & { moduleContext: CompilerModuleContext },\n): TransformOutput {\n if (input.moduleContext.code !== input.code || input.moduleContext.filename !== input.filename) {\n throw new Error(\"Transform input moduleContext must match the input code and filename.\");\n }\n\n return transformWithAnalyzer(input, (analyzeTarget, analyzeOptions) =>\n analyzeCompilerModuleContextWithOxc(input.moduleContext, {\n target: analyzeTarget,\n options: analyzeOptions,\n }),\n );\n}\n\nfunction transformWithAnalyzer(\n input: TransformInput,\n analyze: (target: AnalyzeToIrInput[\"target\"], options: AnalyzeModuleOptions) => AnalyzeToIrOutput,\n): TransformOutput {\n const mode = input.mode ?? \"reactive\";\n const serverOutput = input.serverOutput ?? \"string\";\n const serverBootstrap = input.serverBootstrap ?? \"none\";\n const analyzeTarget = mode === \"compat\" ? \"client\" : input.target;\n const bodyStatementJsx =\n input.target === \"server\"\n ? \"server-string\"\n : mode === \"compat\" && input.target === \"client\"\n ? \"compat-object\"\n : \"dom-node\";\n const analyzeOptions = {\n topLevelJsx:\n mode === \"compat\" && input.target === \"client\"\n ? \"compat-object\"\n : input.target === \"server\"\n ? \"server-string\"\n : \"diagnostic\",\n bodyStatementJsx,\n ...(input.target === \"server\" ? { serverOutput } : {}),\n awaitCompatComponents:\n input.target === \"server\" && serverOutput === \"stream\" ? \"lower\" : \"diagnostic\",\n clientBoundaryImports: input.clientBoundaryImports ?? [],\n clientBoundaryFallbackImports: input.clientBoundaryFallbackImports ?? [],\n compatReactNodeReturn: mode === \"compat\",\n ...(mode === \"compat\" && input.target === \"server\"\n ? { compatReactNodeReturnRenderMode: \"react-node\" as const }\n : {}),\n } as const;\n const analyzed = analyze(analyzeTarget, analyzeOptions);\n const diagnostics = [...analyzed.diagnostics];\n const emitted =\n mode === \"compat\" && input.target === \"client\"\n ? emitCompat(analyzed.ir, { dev: input.dev })\n : input.target === \"server\"\n ? serverOutput === \"stream\"\n ? emitServerStream(analyzed.ir, {\n ...createServerOptions(\n serverBootstrap,\n input.serverBootstrapNonce,\n input.serverBootstrapSrc,\n input.serverHydration,\n input.reactSuspenseRevealScriptSrc,\n ),\n ...(input.serverAwaitHydration === true\n ? { serverAwaitHydration: true as const }\n : {}),\n dynamicAttributes: mode === \"compat\" ? \"drop\" : \"emit\",\n escape: input.serverEscape,\n })\n : emitServer(analyzed.ir, {\n ...createServerOptions(\n serverBootstrap,\n input.serverBootstrapNonce,\n input.serverBootstrapSrc,\n input.serverHydration,\n ),\n dynamicAttributes: mode === \"compat\" ? \"drop\" : \"emit\",\n escape: input.serverEscape,\n })\n : emitClient(analyzed.ir);\n\n const metadata: ModuleMetadata = {\n filename: input.filename,\n target: input.target,\n compiler: {\n frontend: \"oxc\",\n typescriptFallback: false,\n },\n components: analyzed.ir.components.map((component) => ({\n name: component.name,\n exportName: component.exportName,\n })),\n imports: emitted.imports,\n };\n const events = collectEventHydrationEntries(analyzed.ir.components);\n\n if (events.length > 0) {\n metadata.eventHydrationManifest = {\n version: 1,\n events,\n };\n }\n const clientReferences = collectClientReferences(analyzed.ir.components);\n\n if (clientReferences.length > 0) {\n metadata.clientReferences = clientReferences;\n }\n const clientReferenceManifest = collectClientReferenceManifest(analyzed.ir.components);\n\n if (clientReferenceManifest.length > 0) {\n metadata.clientReferenceManifest = clientReferenceManifest;\n }\n\n if (input.target === \"server\") {\n metadata.serverOutput = serverOutput;\n\n if (serverBootstrap !== \"none\") {\n metadata.serverBootstrap = serverBootstrap;\n }\n\n if (input.serverBootstrapNonce !== undefined) {\n metadata.serverBootstrapNonce = input.serverBootstrapNonce;\n }\n\n if (input.serverBootstrapSrc !== undefined) {\n metadata.serverBootstrapSrc = input.serverBootstrapSrc;\n }\n\n if (input.serverHydration === true) {\n metadata.serverHydration = true;\n }\n\n if (input.reactSuspenseRevealScriptSrc !== undefined) {\n metadata.reactSuspenseRevealScriptSrc = input.reactSuspenseRevealScriptSrc;\n }\n }\n\n return {\n code: emitted.code,\n map: input.sourceMap === true ? createSourceMap(input, emitted.code) : null,\n diagnostics,\n metadata,\n };\n}\n\nfunction createSourceMap(input: TransformInput, outputCode: string): string {\n const generatedMap = createSegmentMappings(outputCode, input.code);\n\n return JSON.stringify({\n version: 3,\n file: `${input.filename}.js`,\n sources: [input.filename],\n sourcesContent: [input.code],\n names: generatedMap.names,\n mappings: generatedMap.mappings,\n });\n}\n\ninterface GeneratedSourceMap {\n mappings: string;\n names: string[];\n}\n\nfunction createSegmentMappings(outputCode: string, sourceCode: string): GeneratedSourceMap {\n const generatedLines = outputCode.split(\"\\n\");\n const sourceLines = sourceCode.split(\"\\n\");\n const lines: string[] = [];\n const names: string[] = [];\n const nameIndexes = new Map<string, number>();\n let previousSourceIndex = 0;\n let previousSourceLine = 0;\n let previousSourceColumn = 0;\n let previousNameIndex = 0;\n const searchState: SourceMapSearchState = { tokenOffsets: new Map() };\n\n for (const [lineIndex, generatedLine] of generatedLines.entries()) {\n let previousGeneratedColumn = 0;\n const segments = collectSourceMapSegments(generatedLine, lineIndex, sourceLines, searchState);\n\n lines.push(\n segments\n .map((segment) => {\n const fields = [\n encodeVlq(segment.generatedColumn - previousGeneratedColumn),\n encodeVlq(0 - previousSourceIndex),\n encodeVlq(segment.sourceLine - previousSourceLine),\n encodeVlq(segment.sourceColumn - previousSourceColumn),\n ];\n\n if (segment.name !== undefined) {\n const nameIndex = getSourceMapNameIndex(segment.name, names, nameIndexes);\n fields.push(encodeVlq(nameIndex - previousNameIndex));\n previousNameIndex = nameIndex;\n }\n\n const encoded = fields.join(\"\");\n previousGeneratedColumn = segment.generatedColumn;\n previousSourceIndex = 0;\n previousSourceLine = segment.sourceLine;\n previousSourceColumn = segment.sourceColumn;\n return encoded;\n })\n .join(\",\"),\n );\n }\n\n return { mappings: lines.join(\";\"), names };\n}\n\ninterface SourceMapSegment {\n generatedColumn: number;\n sourceLine: number;\n sourceColumn: number;\n name?: string;\n}\n\ninterface SourceMapSearchState {\n tokenOffsets: Map<string, number>;\n}\n\nfunction collectSourceMapSegments(\n generatedLine: string,\n generatedLineIndex: number,\n sourceLines: readonly string[],\n searchState: SourceMapSearchState,\n): SourceMapSegment[] {\n const fallbackSourceLine = findFallbackSourceLine(generatedLine, generatedLineIndex, sourceLines);\n const segments: SourceMapSegment[] = [\n {\n generatedColumn: 0,\n sourceLine: fallbackSourceLine,\n sourceColumn: 0,\n },\n ];\n\n const functionMatch = /function\\s+([A-Za-z_$][\\w$]*)/.exec(generatedLine);\n if (functionMatch !== null && functionMatch.index !== undefined) {\n const token = `function ${functionMatch[1]}`;\n const sourceLocation = findSourceLocation(sourceLines, token);\n\n if (sourceLocation !== undefined) {\n segments.push({\n generatedColumn: functionMatch.index,\n sourceLine: sourceLocation.line,\n sourceColumn: sourceLocation.column,\n });\n }\n }\n\n const returnColumn = generatedLine.indexOf(\"return\");\n if (returnColumn >= 0) {\n const sourceLocation = findSourceLocation(sourceLines, \"return\");\n\n if (sourceLocation !== undefined) {\n segments.push({\n generatedColumn: returnColumn,\n sourceLine: sourceLocation.line,\n sourceColumn: sourceLocation.column,\n });\n }\n }\n\n const templateStart = generatedLine.indexOf('createTemplate(\"');\n const templateTag =\n templateStart < 0\n ? undefined\n : generatedLine.slice(templateStart).match(/<[A-Za-z][\\w:-]*/)?.[0];\n if (templateTag !== undefined) {\n const generatedColumn = generatedLine.indexOf(templateTag);\n const sourceLocation = findSourceLocation(sourceLines, templateTag);\n\n if (generatedColumn >= 0 && sourceLocation !== undefined) {\n segments.push({\n generatedColumn,\n sourceLine: sourceLocation.line,\n sourceColumn: sourceLocation.column,\n });\n }\n }\n\n const dynamicExpression = /=> \\(([^)]+)\\)/.exec(generatedLine)?.[1]?.trim();\n if (dynamicExpression !== undefined && dynamicExpression !== \"\") {\n const generatedColumn = generatedLine.indexOf(dynamicExpression);\n const bindPropAttribute = /bindProp\\([^,]+,\\s+\"([^\"]+)\"/.exec(generatedLine)?.[1];\n const sourceLocation =\n bindPropAttribute === undefined\n ? undefined\n : (findSourceLocation(\n sourceLines,\n `${bindPropAttribute}={${dynamicExpression}}`,\n searchState,\n ) ??\n findSourceLocation(\n sourceLines,\n `${bindPropAttribute}=\"${dynamicExpression}\"`,\n searchState,\n ));\n const fallbackSourceLocation =\n findSourceLocation(sourceLines, `{${dynamicExpression}}`, searchState) ??\n findJsxExpressionTokenLocation(sourceLines, dynamicExpression) ??\n findSourceLocation(sourceLines, dynamicExpression, searchState);\n const resolvedSourceLocation = sourceLocation ?? fallbackSourceLocation;\n\n if (generatedColumn >= 0 && resolvedSourceLocation !== undefined) {\n const sourceColumnOffset =\n bindPropAttribute !== undefined && sourceLocation !== undefined\n ? bindPropAttribute.length + 2\n : sourceLines[resolvedSourceLocation.line]?.startsWith(\"{\", resolvedSourceLocation.column)\n ? 1\n : 0;\n\n segments.push({\n generatedColumn,\n sourceLine: resolvedSourceLocation.line,\n sourceColumn: resolvedSourceLocation.column + sourceColumnOffset,\n ...(isIdentifierName(dynamicExpression) ? { name: dynamicExpression } : {}),\n });\n\n for (const identifier of collectIdentifierReferences(dynamicExpression)) {\n segments.push({\n generatedColumn: generatedColumn + identifier.column,\n sourceLine: resolvedSourceLocation.line,\n sourceColumn: resolvedSourceLocation.column + sourceColumnOffset + identifier.column,\n name: identifier.name,\n });\n }\n }\n }\n\n return dedupeAndSortSegments(segments);\n}\n\nfunction getSourceMapNameIndex(\n name: string,\n names: string[],\n indexes: Map<string, number>,\n): number {\n const existing = indexes.get(name);\n\n if (existing !== undefined) {\n return existing;\n }\n\n const index = names.length;\n names.push(name);\n indexes.set(name, index);\n return index;\n}\n\nfunction isIdentifierName(value: string): boolean {\n return /^[A-Za-z_$][\\w$]*$/.test(value);\n}\n\nfunction collectIdentifierReferences(expression: string): { name: string; column: number }[] {\n const references: { name: string; column: number }[] = [];\n const seen = new Set<string>();\n const identifierPattern = /\\b[A-Za-z_$][\\w$]*\\b/g;\n\n for (const match of expression.matchAll(identifierPattern)) {\n const name = match[0];\n const column = match.index ?? 0;\n\n if (sourceMapIgnoredIdentifiers.has(name) || seen.has(`${name}:${column}`)) {\n continue;\n }\n\n references.push({ name, column });\n seen.add(`${name}:${column}`);\n }\n\n return references;\n}\n\nconst sourceMapIgnoredIdentifiers = new Set([\"false\", \"null\", \"true\", \"undefined\"]);\n\nfunction findFallbackSourceLine(\n generatedLine: string,\n generatedLineIndex: number,\n sourceLines: readonly string[],\n): number {\n const functionName = /function\\s+([A-Za-z_$][\\w$]*)/.exec(generatedLine)?.[1];\n\n if (functionName !== undefined) {\n return findSourceLocation(sourceLines, `function ${functionName}`)?.line ?? 0;\n }\n\n if (generatedLine.includes(\"createTemplate\")) {\n const jsxLine = sourceLines.findIndex((line) => line.includes(\"<\"));\n return jsxLine < 0 ? 0 : jsxLine;\n }\n\n if (generatedLine.includes(\"return\")) {\n return findSourceLocation(sourceLines, \"return\")?.line ?? 0;\n }\n\n return Math.min(generatedLineIndex, Math.max(0, sourceLines.length - 1));\n}\n\nfunction findSourceLocation(\n sourceLines: readonly string[],\n token: string,\n searchState?: SourceMapSearchState,\n): { line: number; column: number } | undefined {\n const source = sourceLines.join(\"\\n\");\n const start = searchState?.tokenOffsets.get(token) ?? 0;\n let offset = source.indexOf(token, start);\n\n if (offset < 0 && start > 0) {\n offset = source.indexOf(token);\n }\n\n if (offset < 0) {\n return undefined;\n }\n\n searchState?.tokenOffsets.set(token, offset + token.length);\n return sourceOffsetToLineColumn(sourceLines, offset);\n}\n\nfunction sourceOffsetToLineColumn(\n sourceLines: readonly string[],\n offset: number,\n): { line: number; column: number } {\n let remaining = offset;\n\n for (const [line, sourceLine] of sourceLines.entries()) {\n if (remaining <= sourceLine.length) {\n return { line, column: remaining };\n }\n\n remaining -= sourceLine.length + 1;\n }\n\n return {\n line: Math.max(0, sourceLines.length - 1),\n column: sourceLines.at(-1)?.length ?? 0,\n };\n}\n\nfunction findJsxExpressionTokenLocation(\n sourceLines: readonly string[],\n token: string,\n): { line: number; column: number } | undefined {\n let insideJsxExpression = false;\n\n for (const [line, sourceLine] of sourceLines.entries()) {\n if (sourceLine.includes(\"<\") && sourceLine.includes(\"{\")) {\n insideJsxExpression = true;\n }\n\n if (insideJsxExpression) {\n const column = sourceLine.indexOf(token);\n\n if (column >= 0) {\n return { line, column };\n }\n }\n\n if (sourceLine.includes(\"}\")) {\n insideJsxExpression = false;\n }\n }\n\n return undefined;\n}\n\nfunction dedupeAndSortSegments(segments: readonly SourceMapSegment[]): SourceMapSegment[] {\n const byGeneratedColumn = new Map<number, SourceMapSegment>();\n\n for (const segment of segments) {\n byGeneratedColumn.set(segment.generatedColumn, segment);\n }\n\n return Array.from(byGeneratedColumn.values()).sort(\n (left, right) => left.generatedColumn - right.generatedColumn,\n );\n}\n\nconst sourceMapBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\nfunction encodeVlq(value: number): string {\n let vlq = value < 0 ? (-value << 1) + 1 : value << 1;\n let encoded = \"\";\n\n do {\n let digit = vlq & 31;\n vlq >>>= 5;\n\n if (vlq > 0) {\n digit |= 32;\n }\n\n encoded += sourceMapBase64[digit] ?? \"\";\n } while (vlq > 0);\n\n return encoded;\n}\n\nfunction collectEventHydrationEntries(\n components: readonly ComponentIr[],\n): EventHydrationEntryMetadata[] {\n return components.flatMap((component) => {\n const entries: EventHydrationEntryMetadata[] = [];\n collectEventsFromNode(component.root, component.name, \"0\", entries);\n return entries;\n });\n}\n\nfunction collectClientReferences(components: readonly ComponentIr[]): string[] {\n const references = new Set<string>();\n\n for (const component of components) {\n collectClientReferencesFromNode(component.root, references);\n }\n\n return Array.from(references);\n}\n\nfunction collectClientReferenceManifest(\n components: readonly ComponentIr[],\n): ClientReferenceMetadata[] {\n const references = new Map<string, ClientReferenceMetadata>();\n\n for (const component of components) {\n collectClientReferenceManifestFromNode(component.root, references);\n }\n\n return Array.from(references.values());\n}\n\nfunction collectClientReferenceManifestFromNode(\n node: JsxNodeIr,\n references: Map<string, ClientReferenceMetadata>,\n): void {\n if (node.kind === \"component\" && node.clientReference !== undefined) {\n references.set(\n `${node.name}:${node.clientReference.moduleId}:${node.clientReference.exportName}`,\n {\n name: node.name,\n moduleId: node.clientReference.moduleId,\n exportName: node.clientReference.exportName,\n },\n );\n }\n\n for (const child of getNodeChildren(node)) {\n collectClientReferenceManifestFromNode(child, references);\n }\n\n if (node.kind === \"component\") {\n for (const prop of node.props) {\n if (prop.kind === \"render-prop\") {\n for (const child of prop.children) {\n collectClientReferenceManifestFromNode(child, references);\n }\n }\n }\n }\n}\n\nfunction collectClientReferencesFromNode(node: JsxNodeIr, references: Set<string>): void {\n if (\n node.kind === \"component\" &&\n node.runtime === \"compat\" &&\n node.clientReference !== undefined\n ) {\n references.add(node.name);\n }\n\n for (const child of getNodeChildren(node)) {\n collectClientReferencesFromNode(child, references);\n }\n\n if (node.kind === \"component\") {\n for (const prop of node.props) {\n if (prop.kind === \"render-prop\") {\n for (const child of prop.children) {\n collectClientReferencesFromNode(child, references);\n }\n }\n }\n }\n}\n\nfunction collectEventsFromNode(\n node: JsxNodeIr,\n componentName: string,\n path: string,\n entries: EventHydrationEntryMetadata[],\n): void {\n if (node.kind === \"element\") {\n for (const attr of node.attributes) {\n if (attr.kind === \"event\") {\n entries.push({\n id: `${componentName}:${path}`,\n event: attr.eventName,\n handler: attr.code,\n });\n }\n }\n }\n\n for (const [index, child] of getNodeChildren(node).entries()) {\n collectEventsFromNode(child, componentName, `${path}.${index}`, entries);\n }\n}\n\nfunction getNodeChildren(node: JsxNodeIr): readonly JsxNodeIr[] {\n if (node.kind === \"element\" || node.kind === \"fragment\") {\n return node.children;\n }\n\n if (node.kind === \"conditional\") {\n return [...node.whenTrue, ...node.whenFalse];\n }\n\n if (node.kind === \"list\") {\n return node.children;\n }\n\n if (node.kind === \"async-boundary\") {\n return [...node.children, ...(node.placeholderChildren ?? []), ...(node.catchChildren ?? [])];\n }\n\n return [];\n}\n\nfunction createServerOptions(\n serverBootstrap: NonNullable<TransformInput[\"serverBootstrap\"]>,\n serverBootstrapNonce?: string,\n serverBootstrapSrc?: string,\n serverHydration?: boolean,\n reactSuspenseRevealScriptSrc?: string,\n) {\n return {\n serverBootstrap,\n ...(serverBootstrapNonce === undefined ? {} : { serverBootstrapNonce }),\n ...(serverBootstrapSrc === undefined ? {} : { serverBootstrapSrc }),\n ...(serverHydration === undefined ? {} : { serverHydration }),\n ...(reactSuspenseRevealScriptSrc === undefined ? {} : { reactSuspenseRevealScriptSrc }),\n };\n}\n"]}
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"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","sourcesContent":["import { emitClient } from \"./emit-client.js\";\nimport { emitCompat } from \"./emit-compat.js\";\nimport { emitServer } from \"./emit-server.js\";\nimport { emitServerStream } from \"./emit-server-stream.js\";\nimport { analyzeCompilerModuleContextWithOxc, analyzeWithOxc } from \"./oxc.js\";\nimport { unsupportedClientAsyncComponentDiagnostic } from \"./diagnostics.js\";\nimport type { ComponentIr, JsxNodeIr } from \"./ir.js\";\nimport type { AnalyzeToIrInput, AnalyzeToIrOutput, CompilerModuleContext } from \"./internal.js\";\nimport type { AnalyzeModuleOptions } from \"./types.js\";\nimport type {\n ClientReferenceMetadata,\n EventHydrationEntryMetadata,\n ModuleMetadata,\n TransformInput,\n TransformOutput,\n} from \"./types.js\";\n\nexport function transform(input: TransformInput): TransformOutput {\n return transformWithAnalyzer(input, (analyzeTarget, analyzeOptions) =>\n analyzeWithOxc({\n code: input.code,\n filename: input.filename,\n target: analyzeTarget,\n options: analyzeOptions,\n }),\n );\n}\n\nexport function transformCompilerModuleContext(\n input: TransformInput & { moduleContext: CompilerModuleContext },\n): TransformOutput {\n if (input.moduleContext.code !== input.code || input.moduleContext.filename !== input.filename) {\n throw new Error(\"Transform input moduleContext must match the input code and filename.\");\n }\n\n return transformWithAnalyzer(input, (analyzeTarget, analyzeOptions) =>\n analyzeCompilerModuleContextWithOxc(input.moduleContext, {\n target: analyzeTarget,\n options: analyzeOptions,\n }),\n );\n}\n\nfunction transformWithAnalyzer(\n input: TransformInput,\n analyze: (target: AnalyzeToIrInput[\"target\"], options: AnalyzeModuleOptions) => AnalyzeToIrOutput,\n): TransformOutput {\n const mode = input.mode ?? \"reactive\";\n const serverOutput = input.serverOutput ?? \"string\";\n const serverBootstrap = input.serverBootstrap ?? \"none\";\n const analyzeTarget = mode === \"compat\" ? \"client\" : input.target;\n const bodyStatementJsx =\n input.target === \"server\"\n ? \"server-string\"\n : mode === \"compat\" && input.target === \"client\"\n ? \"compat-object\"\n : \"dom-node\";\n const analyzeOptions = {\n topLevelJsx:\n mode === \"compat\" && input.target === \"client\"\n ? \"compat-object\"\n : input.target === \"server\"\n ? \"server-string\"\n : \"diagnostic\",\n bodyStatementJsx,\n ...(input.target === \"server\" ? { serverOutput } : {}),\n awaitCompatComponents:\n input.target === \"server\" && serverOutput === \"stream\" ? \"lower\" : \"diagnostic\",\n clientBoundaryImports: input.clientBoundaryImports ?? [],\n clientBoundaryFallbackImports: input.clientBoundaryFallbackImports ?? [],\n compatReactNodeReturn: mode === \"compat\",\n ...(mode === \"compat\" && input.target === \"server\"\n ? { compatReactNodeReturnRenderMode: \"react-node\" as const }\n : {}),\n } as const;\n const analyzed = analyze(analyzeTarget, analyzeOptions);\n const diagnostics = [...analyzed.diagnostics];\n\n if (input.target === \"client\") {\n diagnostics.push(...collectClientAsyncComponentDiagnostics(analyzed.ir.components));\n }\n\n const emitted =\n mode === \"compat\" && input.target === \"client\"\n ? emitCompat(analyzed.ir, { dev: input.dev })\n : input.target === \"server\"\n ? serverOutput === \"stream\"\n ? emitServerStream(analyzed.ir, {\n ...createServerOptions(\n serverBootstrap,\n input.serverBootstrapNonce,\n input.serverBootstrapSrc,\n input.serverHydration,\n input.reactSuspenseRevealScriptSrc,\n ),\n ...(input.serverAwaitHydration === true\n ? { serverAwaitHydration: true as const }\n : {}),\n dynamicAttributes: mode === \"compat\" ? \"drop\" : \"emit\",\n escape: input.serverEscape,\n })\n : emitServer(analyzed.ir, {\n ...createServerOptions(\n serverBootstrap,\n input.serverBootstrapNonce,\n input.serverBootstrapSrc,\n input.serverHydration,\n ),\n dynamicAttributes: mode === \"compat\" ? \"drop\" : \"emit\",\n escape: input.serverEscape,\n })\n : emitClient(analyzed.ir);\n\n const metadata: ModuleMetadata = {\n filename: input.filename,\n target: input.target,\n compiler: {\n frontend: \"oxc\",\n typescriptFallback: false,\n },\n components: analyzed.ir.components.map((component) => ({\n name: component.name,\n exportName: component.exportName,\n })),\n imports: emitted.imports,\n };\n const events = collectEventHydrationEntries(analyzed.ir.components);\n\n if (events.length > 0) {\n metadata.eventHydrationManifest = {\n version: 1,\n events,\n };\n }\n const clientReferences = collectClientReferences(analyzed.ir.components);\n\n if (clientReferences.length > 0) {\n metadata.clientReferences = clientReferences;\n }\n const clientReferenceManifest = collectClientReferenceManifest(analyzed.ir.components);\n\n if (clientReferenceManifest.length > 0) {\n metadata.clientReferenceManifest = clientReferenceManifest;\n }\n\n if (input.target === \"server\") {\n metadata.serverOutput = serverOutput;\n\n if (serverBootstrap !== \"none\") {\n metadata.serverBootstrap = serverBootstrap;\n }\n\n if (input.serverBootstrapNonce !== undefined) {\n metadata.serverBootstrapNonce = input.serverBootstrapNonce;\n }\n\n if (input.serverBootstrapSrc !== undefined) {\n metadata.serverBootstrapSrc = input.serverBootstrapSrc;\n }\n\n if (input.serverHydration === true) {\n metadata.serverHydration = true;\n }\n\n if (input.reactSuspenseRevealScriptSrc !== undefined) {\n metadata.reactSuspenseRevealScriptSrc = input.reactSuspenseRevealScriptSrc;\n }\n }\n\n return {\n code: emitted.code,\n map: input.sourceMap === true ? createSourceMap(input, emitted.code) : null,\n diagnostics,\n metadata,\n };\n}\n\nfunction collectClientAsyncComponentDiagnostics(\n components: readonly ComponentIr[],\n): TransformOutput[\"diagnostics\"] {\n return components\n .filter((component) => component.async === true)\n .map((component) => unsupportedClientAsyncComponentDiagnostic(component.name));\n}\n\nfunction createSourceMap(input: TransformInput, outputCode: string): string {\n const generatedMap = createSegmentMappings(outputCode, input.code);\n\n return JSON.stringify({\n version: 3,\n file: `${input.filename}.js`,\n sources: [input.filename],\n sourcesContent: [input.code],\n names: generatedMap.names,\n mappings: generatedMap.mappings,\n });\n}\n\ninterface GeneratedSourceMap {\n mappings: string;\n names: string[];\n}\n\nfunction createSegmentMappings(outputCode: string, sourceCode: string): GeneratedSourceMap {\n const generatedLines = outputCode.split(\"\\n\");\n const sourceLines = sourceCode.split(\"\\n\");\n const lines: string[] = [];\n const names: string[] = [];\n const nameIndexes = new Map<string, number>();\n let previousSourceIndex = 0;\n let previousSourceLine = 0;\n let previousSourceColumn = 0;\n let previousNameIndex = 0;\n const searchState: SourceMapSearchState = { tokenOffsets: new Map() };\n\n for (const [lineIndex, generatedLine] of generatedLines.entries()) {\n let previousGeneratedColumn = 0;\n const segments = collectSourceMapSegments(generatedLine, lineIndex, sourceLines, searchState);\n\n lines.push(\n segments\n .map((segment) => {\n const fields = [\n encodeVlq(segment.generatedColumn - previousGeneratedColumn),\n encodeVlq(0 - previousSourceIndex),\n encodeVlq(segment.sourceLine - previousSourceLine),\n encodeVlq(segment.sourceColumn - previousSourceColumn),\n ];\n\n if (segment.name !== undefined) {\n const nameIndex = getSourceMapNameIndex(segment.name, names, nameIndexes);\n fields.push(encodeVlq(nameIndex - previousNameIndex));\n previousNameIndex = nameIndex;\n }\n\n const encoded = fields.join(\"\");\n previousGeneratedColumn = segment.generatedColumn;\n previousSourceIndex = 0;\n previousSourceLine = segment.sourceLine;\n previousSourceColumn = segment.sourceColumn;\n return encoded;\n })\n .join(\",\"),\n );\n }\n\n return { mappings: lines.join(\";\"), names };\n}\n\ninterface SourceMapSegment {\n generatedColumn: number;\n sourceLine: number;\n sourceColumn: number;\n name?: string;\n}\n\ninterface SourceMapSearchState {\n tokenOffsets: Map<string, number>;\n}\n\nfunction collectSourceMapSegments(\n generatedLine: string,\n generatedLineIndex: number,\n sourceLines: readonly string[],\n searchState: SourceMapSearchState,\n): SourceMapSegment[] {\n const fallbackSourceLine = findFallbackSourceLine(generatedLine, generatedLineIndex, sourceLines);\n const segments: SourceMapSegment[] = [\n {\n generatedColumn: 0,\n sourceLine: fallbackSourceLine,\n sourceColumn: 0,\n },\n ];\n\n const functionMatch = /function\\s+([A-Za-z_$][\\w$]*)/.exec(generatedLine);\n if (functionMatch !== null && functionMatch.index !== undefined) {\n const token = `function ${functionMatch[1]}`;\n const sourceLocation = findSourceLocation(sourceLines, token);\n\n if (sourceLocation !== undefined) {\n segments.push({\n generatedColumn: functionMatch.index,\n sourceLine: sourceLocation.line,\n sourceColumn: sourceLocation.column,\n });\n }\n }\n\n const returnColumn = generatedLine.indexOf(\"return\");\n if (returnColumn >= 0) {\n const sourceLocation = findSourceLocation(sourceLines, \"return\");\n\n if (sourceLocation !== undefined) {\n segments.push({\n generatedColumn: returnColumn,\n sourceLine: sourceLocation.line,\n sourceColumn: sourceLocation.column,\n });\n }\n }\n\n const templateStart = generatedLine.indexOf('createTemplate(\"');\n const templateTag =\n templateStart < 0\n ? undefined\n : generatedLine.slice(templateStart).match(/<[A-Za-z][\\w:-]*/)?.[0];\n if (templateTag !== undefined) {\n const generatedColumn = generatedLine.indexOf(templateTag);\n const sourceLocation = findSourceLocation(sourceLines, templateTag);\n\n if (generatedColumn >= 0 && sourceLocation !== undefined) {\n segments.push({\n generatedColumn,\n sourceLine: sourceLocation.line,\n sourceColumn: sourceLocation.column,\n });\n }\n }\n\n const dynamicExpression = /=> \\(([^)]+)\\)/.exec(generatedLine)?.[1]?.trim();\n if (dynamicExpression !== undefined && dynamicExpression !== \"\") {\n const generatedColumn = generatedLine.indexOf(dynamicExpression);\n const bindPropAttribute = /bindProp\\([^,]+,\\s+\"([^\"]+)\"/.exec(generatedLine)?.[1];\n const sourceLocation =\n bindPropAttribute === undefined\n ? undefined\n : (findSourceLocation(\n sourceLines,\n `${bindPropAttribute}={${dynamicExpression}}`,\n searchState,\n ) ??\n findSourceLocation(\n sourceLines,\n `${bindPropAttribute}=\"${dynamicExpression}\"`,\n searchState,\n ));\n const fallbackSourceLocation =\n findSourceLocation(sourceLines, `{${dynamicExpression}}`, searchState) ??\n findJsxExpressionTokenLocation(sourceLines, dynamicExpression) ??\n findSourceLocation(sourceLines, dynamicExpression, searchState);\n const resolvedSourceLocation = sourceLocation ?? fallbackSourceLocation;\n\n if (generatedColumn >= 0 && resolvedSourceLocation !== undefined) {\n const sourceColumnOffset =\n bindPropAttribute !== undefined && sourceLocation !== undefined\n ? bindPropAttribute.length + 2\n : sourceLines[resolvedSourceLocation.line]?.startsWith(\"{\", resolvedSourceLocation.column)\n ? 1\n : 0;\n\n segments.push({\n generatedColumn,\n sourceLine: resolvedSourceLocation.line,\n sourceColumn: resolvedSourceLocation.column + sourceColumnOffset,\n ...(isIdentifierName(dynamicExpression) ? { name: dynamicExpression } : {}),\n });\n\n for (const identifier of collectIdentifierReferences(dynamicExpression)) {\n segments.push({\n generatedColumn: generatedColumn + identifier.column,\n sourceLine: resolvedSourceLocation.line,\n sourceColumn: resolvedSourceLocation.column + sourceColumnOffset + identifier.column,\n name: identifier.name,\n });\n }\n }\n }\n\n return dedupeAndSortSegments(segments);\n}\n\nfunction getSourceMapNameIndex(\n name: string,\n names: string[],\n indexes: Map<string, number>,\n): number {\n const existing = indexes.get(name);\n\n if (existing !== undefined) {\n return existing;\n }\n\n const index = names.length;\n names.push(name);\n indexes.set(name, index);\n return index;\n}\n\nfunction isIdentifierName(value: string): boolean {\n return /^[A-Za-z_$][\\w$]*$/.test(value);\n}\n\nfunction collectIdentifierReferences(expression: string): { name: string; column: number }[] {\n const references: { name: string; column: number }[] = [];\n const seen = new Set<string>();\n const identifierPattern = /\\b[A-Za-z_$][\\w$]*\\b/g;\n\n for (const match of expression.matchAll(identifierPattern)) {\n const name = match[0];\n const column = match.index ?? 0;\n\n if (sourceMapIgnoredIdentifiers.has(name) || seen.has(`${name}:${column}`)) {\n continue;\n }\n\n references.push({ name, column });\n seen.add(`${name}:${column}`);\n }\n\n return references;\n}\n\nconst sourceMapIgnoredIdentifiers = new Set([\"false\", \"null\", \"true\", \"undefined\"]);\n\nfunction findFallbackSourceLine(\n generatedLine: string,\n generatedLineIndex: number,\n sourceLines: readonly string[],\n): number {\n const functionName = /function\\s+([A-Za-z_$][\\w$]*)/.exec(generatedLine)?.[1];\n\n if (functionName !== undefined) {\n return findSourceLocation(sourceLines, `function ${functionName}`)?.line ?? 0;\n }\n\n if (generatedLine.includes(\"createTemplate\")) {\n const jsxLine = sourceLines.findIndex((line) => line.includes(\"<\"));\n return jsxLine < 0 ? 0 : jsxLine;\n }\n\n if (generatedLine.includes(\"return\")) {\n return findSourceLocation(sourceLines, \"return\")?.line ?? 0;\n }\n\n return Math.min(generatedLineIndex, Math.max(0, sourceLines.length - 1));\n}\n\nfunction findSourceLocation(\n sourceLines: readonly string[],\n token: string,\n searchState?: SourceMapSearchState,\n): { line: number; column: number } | undefined {\n const source = sourceLines.join(\"\\n\");\n const start = searchState?.tokenOffsets.get(token) ?? 0;\n let offset = source.indexOf(token, start);\n\n if (offset < 0 && start > 0) {\n offset = source.indexOf(token);\n }\n\n if (offset < 0) {\n return undefined;\n }\n\n searchState?.tokenOffsets.set(token, offset + token.length);\n return sourceOffsetToLineColumn(sourceLines, offset);\n}\n\nfunction sourceOffsetToLineColumn(\n sourceLines: readonly string[],\n offset: number,\n): { line: number; column: number } {\n let remaining = offset;\n\n for (const [line, sourceLine] of sourceLines.entries()) {\n if (remaining <= sourceLine.length) {\n return { line, column: remaining };\n }\n\n remaining -= sourceLine.length + 1;\n }\n\n return {\n line: Math.max(0, sourceLines.length - 1),\n column: sourceLines.at(-1)?.length ?? 0,\n };\n}\n\nfunction findJsxExpressionTokenLocation(\n sourceLines: readonly string[],\n token: string,\n): { line: number; column: number } | undefined {\n let insideJsxExpression = false;\n\n for (const [line, sourceLine] of sourceLines.entries()) {\n if (sourceLine.includes(\"<\") && sourceLine.includes(\"{\")) {\n insideJsxExpression = true;\n }\n\n if (insideJsxExpression) {\n const column = sourceLine.indexOf(token);\n\n if (column >= 0) {\n return { line, column };\n }\n }\n\n if (sourceLine.includes(\"}\")) {\n insideJsxExpression = false;\n }\n }\n\n return undefined;\n}\n\nfunction dedupeAndSortSegments(segments: readonly SourceMapSegment[]): SourceMapSegment[] {\n const byGeneratedColumn = new Map<number, SourceMapSegment>();\n\n for (const segment of segments) {\n byGeneratedColumn.set(segment.generatedColumn, segment);\n }\n\n return Array.from(byGeneratedColumn.values()).sort(\n (left, right) => left.generatedColumn - right.generatedColumn,\n );\n}\n\nconst sourceMapBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\nfunction encodeVlq(value: number): string {\n let vlq = value < 0 ? (-value << 1) + 1 : value << 1;\n let encoded = \"\";\n\n do {\n let digit = vlq & 31;\n vlq >>>= 5;\n\n if (vlq > 0) {\n digit |= 32;\n }\n\n encoded += sourceMapBase64[digit] ?? \"\";\n } while (vlq > 0);\n\n return encoded;\n}\n\nfunction collectEventHydrationEntries(\n components: readonly ComponentIr[],\n): EventHydrationEntryMetadata[] {\n return components.flatMap((component) => {\n const entries: EventHydrationEntryMetadata[] = [];\n collectEventsFromNode(component.root, component.name, \"0\", entries);\n return entries;\n });\n}\n\nfunction collectClientReferences(components: readonly ComponentIr[]): string[] {\n const references = new Set<string>();\n\n for (const component of components) {\n collectClientReferencesFromNode(component.root, references);\n }\n\n return Array.from(references);\n}\n\nfunction collectClientReferenceManifest(\n components: readonly ComponentIr[],\n): ClientReferenceMetadata[] {\n const references = new Map<string, ClientReferenceMetadata>();\n\n for (const component of components) {\n collectClientReferenceManifestFromNode(component.root, references);\n }\n\n return Array.from(references.values());\n}\n\nfunction collectClientReferenceManifestFromNode(\n node: JsxNodeIr,\n references: Map<string, ClientReferenceMetadata>,\n): void {\n if (node.kind === \"component\" && node.clientReference !== undefined) {\n references.set(\n `${node.name}:${node.clientReference.moduleId}:${node.clientReference.exportName}`,\n {\n name: node.name,\n moduleId: node.clientReference.moduleId,\n exportName: node.clientReference.exportName,\n },\n );\n }\n\n for (const child of getNodeChildren(node)) {\n collectClientReferenceManifestFromNode(child, references);\n }\n\n if (node.kind === \"component\") {\n for (const prop of node.props) {\n if (prop.kind === \"render-prop\") {\n for (const child of prop.children) {\n collectClientReferenceManifestFromNode(child, references);\n }\n }\n }\n }\n}\n\nfunction collectClientReferencesFromNode(node: JsxNodeIr, references: Set<string>): void {\n if (\n node.kind === \"component\" &&\n node.runtime === \"compat\" &&\n node.clientReference !== undefined\n ) {\n references.add(node.name);\n }\n\n for (const child of getNodeChildren(node)) {\n collectClientReferencesFromNode(child, references);\n }\n\n if (node.kind === \"component\") {\n for (const prop of node.props) {\n if (prop.kind === \"render-prop\") {\n for (const child of prop.children) {\n collectClientReferencesFromNode(child, references);\n }\n }\n }\n }\n}\n\nfunction collectEventsFromNode(\n node: JsxNodeIr,\n componentName: string,\n path: string,\n entries: EventHydrationEntryMetadata[],\n): void {\n if (node.kind === \"element\") {\n for (const attr of node.attributes) {\n if (attr.kind === \"event\") {\n entries.push({\n id: `${componentName}:${path}`,\n event: attr.eventName,\n handler: attr.code,\n });\n }\n }\n }\n\n for (const [index, child] of getNodeChildren(node).entries()) {\n collectEventsFromNode(child, componentName, `${path}.${index}`, entries);\n }\n}\n\nfunction getNodeChildren(node: JsxNodeIr): readonly JsxNodeIr[] {\n if (node.kind === \"element\" || node.kind === \"fragment\") {\n return node.children;\n }\n\n if (node.kind === \"conditional\") {\n return [...node.whenTrue, ...node.whenFalse];\n }\n\n if (node.kind === \"list\") {\n return node.children;\n }\n\n if (node.kind === \"async-boundary\") {\n return [...node.children, ...(node.placeholderChildren ?? []), ...(node.catchChildren ?? [])];\n }\n\n return [];\n}\n\nfunction createServerOptions(\n serverBootstrap: NonNullable<TransformInput[\"serverBootstrap\"]>,\n serverBootstrapNonce?: string,\n serverBootstrapSrc?: string,\n serverHydration?: boolean,\n reactSuspenseRevealScriptSrc?: string,\n) {\n return {\n serverBootstrap,\n ...(serverBootstrapNonce === undefined ? {} : { serverBootstrapNonce }),\n ...(serverBootstrapSrc === undefined ? {} : { serverBootstrapSrc }),\n ...(serverHydration === undefined ? {} : { serverHydration }),\n ...(reactSuspenseRevealScriptSrc === undefined ? {} : { reactSuspenseRevealScriptSrc }),\n };\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reckona/mreact-compiler",
3
- "version": "0.0.143",
3
+ "version": "0.0.145",
4
4
  "description": "Compiler passes and OXC-backed JSX analysis for mreact.",
5
5
  "keywords": [
6
6
  "compiler",
@@ -50,6 +50,6 @@
50
50
  "dependencies": {
51
51
  "oxc-parser": "0.129.0",
52
52
  "oxc-transform": "0.129.0",
53
- "@reckona/mreact-shared": "0.0.143"
53
+ "@reckona/mreact-shared": "0.0.145"
54
54
  }
55
55
  }
@@ -77,6 +77,14 @@ export function unsupportedCompatServerTargetDiagnostic(): Diagnostic {
77
77
  };
78
78
  }
79
79
 
80
+ export function unsupportedClientAsyncComponentDiagnostic(name: string): Diagnostic {
81
+ return {
82
+ level: "error",
83
+ code: "MR_ASYNC_COMPONENT_CLIENT_UNSUPPORTED",
84
+ message: `Async component '${name}' cannot be emitted by the client target. Async components are server-only; move data fetching into a route loader with <Await>, or fetch on the client with an effect or query library.`,
85
+ };
86
+ }
87
+
80
88
  export function unsupportedAwaitInnerComponentDiagnostic(
81
89
  name: string,
82
90
  loc?: SourceLocation,
@@ -293,11 +293,12 @@ function emitComponent(
293
293
  const allocator = createNameAllocator([...component.bindingNames, templateName]);
294
294
  const body = component.bodyStatements.map((statement) => ` ${statement}`);
295
295
  const parameters = component.parameters.join(", ");
296
+ const functionKeyword = emitFunctionKeyword(component);
296
297
 
297
298
  if (component.root.kind === "component") {
298
299
  const state = { allocateName: allocator, textIndex: 0, helperNames, clientBoundaryHelperName };
299
300
  return [
300
- `${component.exported === false ? "" : "export "}function ${component.name}(${parameters}) {`,
301
+ `${functionKeyword} ${component.name}(${parameters}) {`,
301
302
  ...body,
302
303
  ` return ${emitComponentCall(
303
304
  component.root.name,
@@ -317,7 +318,7 @@ function emitComponent(
317
318
  const fragmentName = allocator("_fragment");
318
319
  const markerName = allocator("_marker");
319
320
  return [
320
- `${component.exportDefault === true ? "export default " : component.exported === false ? "" : "export "}function ${component.name}(${parameters}) {`,
321
+ `${functionKeyword} ${component.name}(${parameters}) {`,
321
322
  ...body,
322
323
  ` const ${fragmentName} = document.createDocumentFragment();`,
323
324
  ` const ${markerName} = document.createComment("");`,
@@ -339,7 +340,7 @@ function emitComponent(
339
340
  });
340
341
  return [
341
342
  `const ${templateName} = ${helperNames.createTemplate}(${templateHtml});`,
342
- `${component.exportDefault === true ? "export default " : component.exported === false ? "" : "export "}function ${component.name}(${parameters}) {`,
343
+ `${functionKeyword} ${component.name}(${parameters}) {`,
343
344
  ...body,
344
345
  ` const ${fragmentName} = ${templateName}();`,
345
346
  component.root.kind === "fragment"
@@ -353,6 +354,12 @@ function emitComponent(
353
354
  .join("\n");
354
355
  }
355
356
 
357
+ function emitFunctionKeyword(component: ComponentIr): string {
358
+ return `${component.exportDefault === true ? "export default " : component.exported === false ? "" : "export "}${
359
+ component.async === true ? "async " : ""
360
+ }function`;
361
+ }
362
+
356
363
  function renderStaticHtml(node: JsxNodeIr): string {
357
364
  if (node.kind === "text") {
358
365
  return escapeHtml(node.value);