vite-plugin-react-server 0.3.14 → 0.3.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/patch.mjs +12 -19
- package/dist/package.json +8 -8
- package/dist/plugin/collect-css-manifest.js +5 -4
- package/dist/plugin/collect-css-manifest.js.map +1 -1
- package/dist/plugin/config/defaults.d.ts +3 -3
- package/dist/plugin/config/defaults.js +3 -3
- package/dist/plugin/config/defaults.js.map +1 -1
- package/dist/plugin/react-server/plugin.d.ts.map +1 -1
- package/dist/plugin/react-server/plugin.js +3 -9
- package/dist/plugin/react-server/plugin.js.map +1 -1
- package/dist/plugin/resolveProps.d.ts.map +1 -1
- package/dist/plugin/resolveProps.js +1 -0
- package/dist/plugin/resolveProps.js.map +1 -1
- package/dist/plugin/worker/createWorker.js +2 -2
- package/dist/plugin/worker/createWorker.js.map +1 -1
- package/dist/plugin/worker/html/html-worker.production.js +5 -0
- package/dist/plugin/worker/html/html-worker.production.js.map +1 -1
- package/dist/plugin/worker/html/messageHandler.d.ts.map +1 -1
- package/dist/plugin/worker/html/messageHandler.js.map +1 -1
- package/dist/plugin/worker/html/renderPages.d.ts.map +1 -1
- package/dist/plugin/worker/html/renderPages.js +2 -2
- package/dist/plugin/worker/html/renderPages.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
- package/plugin/collect-css-manifest.ts +6 -6
- package/plugin/config/defaults.ts +3 -3
- package/plugin/react-server/plugin.ts +4 -9
- package/plugin/resolveProps.ts +1 -0
- package/plugin/worker/createWorker.ts +1 -1
- package/plugin/worker/html/html-worker.production.tsx +5 -0
- package/plugin/worker/html/messageHandler.ts +0 -2
- package/plugin/worker/html/renderPages.ts +2 -3
- package/scripts/check-react-version.mjs +8 -26
- package/scripts/react+0.0.0-experimental-eda36a1c-20250228.patch +57 -0
- package/scripts/react-dom+0.0.0-experimental-eda36a1c-20250228.patch +552 -0
- package/scripts/{react-server-dom-esm+0.0.0-experimental-b3a95caf-20250113.patch → react-server-dom-esm+0.0.0-experimental-eda36a1c-20250228.patch} +103 -82
- package/tsconfig.json +1 -1
- package/dist/plugin/server.d.ts +0 -2
- package/dist/plugin/server.d.ts.map +0 -1
- package/dist/plugin/server.js +0 -1
- package/plugin/server.tsx +0 -0
- package/scripts/react+0.0.0-experimental-b3a95caf-20250113.patch +0 -264
- package/scripts/react-dom+0.0.0-experimental-b3a95caf-20250113.patch +0 -32990
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderPages.js","sources":["../../../../plugin/worker/html/renderPages.ts"],"sourcesContent":["import { mkdirSync } from \"node:fs\";\nimport { mkdir, writeFile } from \"node:fs/promises\";\nimport { dirname, join, resolve as resolvePath } from \"node:path\";\nimport { Transform } from \"node:stream\";\nimport type { Worker } from \"node:worker_threads\";\nimport { createHandler } from \"../../react-server/createHandler.js\";\nimport type { CheckFilesExistReturn, ResolvedUserConfig, ResolvedUserOptions } from \"../../types.js\";\nimport type {\n HtmlWorkerResponse,\n WorkerRscChunkMessage,\n} from \"../types.js\";\nimport type { Manifest } from \"vite\";\nimport type {\n PluginContext,\n} from \"rollup\";\nimport React from \"react\";\nimport { collectManifestCss } from \"../../collect-css-manifest.js\";\n\ninterface PipeableStreamOptions {\n bootstrapModules?: string[];\n bootstrapScripts?: string[];\n bootstrapScriptContent?: string;\n signal?: AbortSignal;\n identifierPrefix?: string;\n namespaceURI?: string;\n nonce?: string;\n progressiveChunkSize?: number;\n onShellReady?: () => void;\n onAllReady?: () => void;\n onError?: (error: unknown) => void;\n importMap?: {\n imports?: Record<string, string>;\n };\n}\n\ntype RenderPagesOptions = {\n pluginOptions: ResolvedUserOptions;\n userConfig: ResolvedUserConfig;\n clientManifest: Manifest;\n serverManifest: Manifest;\n worker: Worker;\n pipableStreamOptions?: PipeableStreamOptions;\n loader: (id: string) => Promise<Record<string, any>>;\n onCssFile?: (url: string, parentUrl: string) => void;\n clientCss?: string[];\n moduleBasePath: string;\n moduleBaseURL: string;\n};\n\nexport async function renderPages(\n pluginContext: PluginContext,\n routes: string[],\n files: CheckFilesExistReturn,\n options: RenderPagesOptions,\n) {\n const root = pluginContext.environment.config.root;\n const outDir = pluginContext.environment.config.build.outDir;\n const failedRoutes = new Map<string, Error>();\n const completedRoutes = new Set<string>();\n const writePromises = new Map<string, Promise<void>>();\n const clientCss = options.clientCss ?? [];\n try {\n // Set up worker message handling\n const allRoutesComplete = new Promise<void>((resolve, reject) => {\n options.worker.on(\"message\", (msg: HtmlWorkerResponse) => {\n switch (msg.type) {\n case \"ALL_READY\": {\n const { id, html, outputPath } = msg;\n mkdirSync(dirname(outputPath), { recursive: true });\n \n writeFile(outputPath, html)\n .then(() => {\n completedRoutes.add(id);\n if (completedRoutes.size === routes.length) {\n resolve();\n }\n })\n .catch((error) => {\n console.error('Write error for route:', id, error);\n failedRoutes.set(id, error as Error);\n reject(error);\n });\n break;\n }\n case \"ERROR\": {\n console.error('Worker error for route:', msg.id, msg.error);\n failedRoutes.set(msg.id, new Error(msg.error));\n reject(new Error(msg.error));\n break;\n }\n }\n });\n });\n\n collectManifestCss(\n options.clientManifest,\n options.moduleBasePath,\n 'index.html',\n (url, parentUrl)=>{\n options?.onCssFile?.(url, parentUrl);\n if(!clientCss.includes(url)){\n clientCss.push(url);\n }\n },\n join(root, options.pluginOptions.build.outDir, options.pluginOptions.build.client)\n );\n\n // Process routes sequentially\n for (const route of routes) {\n const routeFiles = files.urlMap.get(route);\n if (!routeFiles) {\n console.error('No files found for route:', route);\n failedRoutes.set(route, new Error(`No files found for ${route}`));\n continue;\n }\n\n collectManifestCss(\n options.serverManifest,\n options.moduleBasePath,\n routeFiles.page,\n (url, parentUrl)=>{\n options.onCssFile?.(url, parentUrl);\n if(!clientCss.includes(url)){\n clientCss.push(url);\n }\n }\n );\n\n // Create handler for pure RSC output\n const rscResult = await createHandler(route, {\n ...options.pluginOptions,\n Html: React.Fragment // Use Fragment for pure RSC output\n }, {\n loader: options.loader,\n clientManifest: options.clientManifest,\n serverManifest: options.serverManifest,\n cssFiles: clientCss,\n pipableStreamOptions: {\n ...options.pipableStreamOptions,\n importMap: {\n imports: {\n ...options.pipableStreamOptions?.importMap?.imports,\n }\n }\n },\n });\n\n // Create handler for HTML output\n const htmlResult = await createHandler(route, options.pluginOptions, {\n loader: options.loader,\n clientManifest: options.clientManifest,\n serverManifest: options.serverManifest,\n cssFiles: clientCss,\n pipableStreamOptions: {\n ...options.pipableStreamOptions,\n importMap: {\n imports: {\n ...options.pipableStreamOptions?.importMap?.imports\n }\n }\n },\n });\n\n if (rscResult.type !== \"success\" || htmlResult.type !== \"success\") {\n console.error('Handler failed for route:', route);\n failedRoutes.set(route, new Error(`Handler failed for ${route}`));\n continue;\n }\n\n // Process both streams\n await Promise.all([\n // Save RSC stream to .rsc file in client directory\n new Promise<void>((resolve, reject) => {\n const chunks: Buffer[] = [];\n const rscTransform = new Transform({\n transform(chunk, _encoding, callback) {\n try {\n chunks.push(Buffer.from(chunk));\n callback(null, chunk);\n } catch (error) {\n callback(error as Error);\n }\n },\n flush(callback) {\n try {\n const rscPath = join(options.pluginOptions.build.outDir, options.pluginOptions.build.client, route, 'index.rsc');\n \n // Ensure directory exists\n mkdirSync(dirname(rscPath), { recursive: true });\n \n // Write complete file\n writeFile(rscPath, Buffer.concat(chunks))\n .then(() => {\n callback();\n resolve();\n })\n .catch(error => {\n console.error('RSC write error:', error);\n callback(error as Error);\n reject(error);\n });\n } catch (error) {\n callback(error as Error);\n reject(error);\n }\n }\n });\n\n rscResult.stream.pipe(rscTransform);\n }),\n\n // Send HTML stream to worker\n new Promise<void>((resolve, reject) => {\n const htmlTransform = new Transform({\n transform(chunk, _encoding, callback) {\n try {\n options.worker.postMessage({\n type: \"RSC_CHUNK\",\n id: route,\n chunk: chunk.toString(),\n moduleRootPath: join(root, options.pluginOptions.build.outDir, options.pluginOptions.build.client),\n moduleBaseURL: options.moduleBaseURL,\n htmlOutputPath: join(options.pluginOptions.build.outDir, options.pluginOptions.build.client, route, 'index.html'),\n pipableStreamOptions: options.pipableStreamOptions,\n });\n callback(null, chunk);\n } catch (error) {\n callback(error as Error);\n }\n },\n flush(callback) {\n options.worker.postMessage({\n type: \"RSC_END\",\n id: route,\n });\n callback();\n resolve();\n }\n });\n\n htmlResult.stream.pipe(htmlTransform);\n })\n ]);\n }\n\n await allRoutesComplete;\n\n } catch (error) {\n console.error('Render error:', error);\n throw error;\n }\n\n return { failedRoutes, completedRoutes };\n}\n"],"names":["React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"renderPages.js","sources":["../../../../plugin/worker/html/renderPages.ts"],"sourcesContent":["import { mkdirSync } from \"node:fs\";\nimport { mkdir, writeFile } from \"node:fs/promises\";\nimport { dirname, join, resolve as resolvePath } from \"node:path\";\nimport { Transform } from \"node:stream\";\nimport type { Worker } from \"node:worker_threads\";\nimport { createHandler } from \"../../react-server/createHandler.js\";\nimport type { CheckFilesExistReturn, ResolvedUserConfig, ResolvedUserOptions } from \"../../types.js\";\nimport type {\n HtmlWorkerResponse,\n WorkerRscChunkMessage,\n} from \"../types.js\";\nimport type { Manifest } from \"vite\";\nimport type {\n PluginContext,\n} from \"rollup\";\nimport React from \"react\";\nimport { collectManifestCss } from \"../../collect-css-manifest.js\";\n\ninterface PipeableStreamOptions {\n bootstrapModules?: string[];\n bootstrapScripts?: string[];\n bootstrapScriptContent?: string;\n signal?: AbortSignal;\n identifierPrefix?: string;\n namespaceURI?: string;\n nonce?: string;\n progressiveChunkSize?: number;\n onShellReady?: () => void;\n onAllReady?: () => void;\n onError?: (error: unknown) => void;\n importMap?: {\n imports?: Record<string, string>;\n };\n}\n\ntype RenderPagesOptions = {\n pluginOptions: ResolvedUserOptions;\n userConfig: ResolvedUserConfig;\n clientManifest: Manifest;\n serverManifest: Manifest;\n worker: Worker;\n pipableStreamOptions?: PipeableStreamOptions;\n loader: (id: string) => Promise<Record<string, any>>;\n onCssFile?: (url: string, parentUrl: string) => void;\n clientCss?: string[];\n moduleBasePath: string;\n moduleBaseURL: string;\n};\n\nexport async function renderPages(\n pluginContext: PluginContext,\n routes: string[],\n files: CheckFilesExistReturn,\n options: RenderPagesOptions,\n) {\n const root = pluginContext.environment.config.root;\n const outDir = pluginContext.environment.config.build.outDir;\n const failedRoutes = new Map<string, Error>();\n const completedRoutes = new Set<string>();\n const writePromises = new Map<string, Promise<void>>();\n const clientCss = options.clientCss ?? [];\n try {\n // Set up worker message handling\n const allRoutesComplete = new Promise<void>((resolve, reject) => {\n options.worker.on(\"message\", (msg: HtmlWorkerResponse) => {\n switch (msg.type) {\n case \"ALL_READY\": {\n const { id, html, outputPath } = msg;\n mkdirSync(dirname(outputPath), { recursive: true });\n \n writeFile(outputPath, html)\n .then(() => {\n completedRoutes.add(id);\n if (completedRoutes.size === routes.length) {\n resolve();\n }\n })\n .catch((error) => {\n console.error('Write error for route:', id, error);\n failedRoutes.set(id, error as Error);\n reject(error);\n });\n break;\n }\n case \"ERROR\": {\n console.error('Worker error for route:', msg.id, msg.error);\n failedRoutes.set(msg.id, new Error(msg.error));\n reject(new Error(msg.error));\n break;\n }\n }\n });\n });\n\n const newCssFiles = collectManifestCss(\n options.clientManifest,\n options.moduleBasePath,\n 'index.html',\n (url, parentUrl)=>{\n options?.onCssFile?.(url, parentUrl);\n if(!clientCss.includes(url)){\n clientCss.push(url);\n }\n },\n join(root, options.pluginOptions.build.outDir, options.pluginOptions.build.client)\n );\n\n // Process routes sequentially\n for (const route of routes) {\n const routeFiles = files.urlMap.get(route);\n if (!routeFiles) {\n console.error('No files found for route:', route);\n failedRoutes.set(route, new Error(`No files found for ${route}`));\n continue;\n }\n\n collectManifestCss(\n options.serverManifest,\n options.moduleBasePath,\n routeFiles.page,\n (url, parentUrl)=>{\n options.onCssFile?.(url, parentUrl);\n if(!clientCss.includes(url)){\n clientCss.push(url);\n }\n }\n );\n // Create handler for pure RSC output\n const rscResult = await createHandler(route, {\n ...options.pluginOptions,\n Html: React.Fragment // Use Fragment for pure RSC output\n }, {\n loader: options.loader,\n clientManifest: options.clientManifest,\n serverManifest: options.serverManifest,\n cssFiles: Array.from(newCssFiles.values()).concat(clientCss),\n pipableStreamOptions: {\n ...options.pipableStreamOptions,\n importMap: {\n imports: {\n ...options.pipableStreamOptions?.importMap?.imports,\n }\n }\n },\n });\n\n // Create handler for HTML output\n const htmlResult = await createHandler(route, options.pluginOptions, {\n loader: options.loader,\n clientManifest: options.clientManifest,\n serverManifest: options.serverManifest,\n cssFiles: clientCss,\n pipableStreamOptions: {\n ...options.pipableStreamOptions,\n importMap: {\n imports: {\n ...options.pipableStreamOptions?.importMap?.imports\n }\n }\n },\n });\n\n if (rscResult.type !== \"success\" || htmlResult.type !== \"success\") {\n console.error('Handler failed for route:', route);\n failedRoutes.set(route, new Error(`Handler failed for ${route}`));\n continue;\n }\n\n // Process both streams\n await Promise.all([\n // Save RSC stream to .rsc file in client directory\n new Promise<void>((resolve, reject) => {\n const chunks: Buffer[] = [];\n const rscTransform = new Transform({\n transform(chunk, _encoding, callback) {\n try {\n chunks.push(Buffer.from(chunk));\n callback(null, chunk);\n } catch (error) {\n callback(error as Error);\n }\n },\n flush(callback) {\n try {\n const rscPath = join(options.pluginOptions.build.outDir, options.pluginOptions.build.client, route, 'index.rsc');\n \n // Ensure directory exists\n mkdirSync(dirname(rscPath), { recursive: true });\n \n // Write complete file\n writeFile(rscPath, Buffer.concat(chunks))\n .then(() => {\n callback();\n resolve();\n })\n .catch(error => {\n console.error('RSC write error:', error);\n callback(error as Error);\n reject(error);\n });\n } catch (error) {\n callback(error as Error);\n reject(error);\n }\n }\n });\n\n rscResult.stream.pipe(rscTransform);\n }),\n\n // Send HTML stream to worker\n new Promise<void>((resolve, reject) => {\n const htmlTransform = new Transform({\n transform(chunk, _encoding, callback) {\n try {\n options.worker.postMessage({\n type: \"RSC_CHUNK\",\n id: route,\n chunk: chunk.toString(),\n moduleRootPath: join(root, options.pluginOptions.build.outDir, options.pluginOptions.build.client),\n moduleBaseURL: options.moduleBaseURL,\n htmlOutputPath: join(options.pluginOptions.build.outDir, options.pluginOptions.build.client, route, 'index.html'),\n pipableStreamOptions: options.pipableStreamOptions,\n });\n callback(null, chunk);\n } catch (error) {\n callback(error as Error);\n }\n },\n flush(callback) {\n options.worker.postMessage({\n type: \"RSC_END\",\n id: route,\n });\n callback();\n resolve();\n }\n });\n\n htmlResult.stream.pipe(htmlTransform);\n })\n ]);\n }\n\n await allRoutesComplete;\n\n } catch (error) {\n console.error('Render error:', error);\n throw error;\n }\n\n return { failedRoutes, completedRoutes };\n}\n"],"names":["React"],"mappings":"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"}
|