vite-plugin-react-server 0.3.4 → 0.3.6
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/README.md +113 -222
- package/bin/patch.mjs +84 -0
- package/dist/client.d.ts +3 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +7 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -3
- package/dist/index.js.map +1 -1
- package/dist/node_modules/magic-string/dist/magic-string.es.js +1283 -0
- package/dist/node_modules/magic-string/dist/magic-string.es.js.map +1 -0
- package/dist/package.json +130 -0
- package/dist/plugin/assertServerCondition.d.ts.map +1 -0
- package/dist/plugin/assertServerCondition.js +15 -0
- package/dist/plugin/build/createClientBuildConfig.d.ts +3 -0
- package/dist/plugin/build/createClientBuildConfig.d.ts.map +1 -0
- package/dist/plugin/build/createClientBuildConfig.js +14 -0
- package/dist/plugin/build/createServerBuildConfig.d.ts +12 -0
- package/dist/plugin/build/createServerBuildConfig.d.ts.map +1 -0
- package/dist/plugin/build/createServerBuildConfig.js +40 -0
- package/dist/plugin/build/createSharedBuildConfig.d.ts +5 -0
- package/dist/plugin/build/createSharedBuildConfig.d.ts.map +1 -0
- package/dist/plugin/build/createSharedBuildConfig.js +28 -0
- package/dist/plugin/build/mergeInputs.d.ts +9 -0
- package/dist/plugin/build/mergeInputs.d.ts.map +1 -0
- package/dist/plugin/build/mergeInputs.js +56 -0
- package/dist/plugin/checkFilesExist.d.ts +3 -0
- package/dist/plugin/checkFilesExist.d.ts.map +1 -0
- package/dist/plugin/checkFilesExist.js +78 -0
- package/dist/plugin/checkFilesExist.js.map +1 -0
- package/dist/{collect-css-manifest.d.ts → plugin/collect-css-manifest.d.ts} +2 -2
- package/dist/plugin/collect-css-manifest.d.ts.map +1 -0
- package/dist/{src → plugin}/collect-css-manifest.js +8 -5
- package/dist/plugin/collect-css-manifest.js.map +1 -0
- package/dist/plugin/components.d.ts.map +1 -0
- package/dist/{src → plugin}/components.js +9 -4
- package/dist/plugin/components.js.map +1 -0
- package/dist/plugin/config/defaults.d.ts +51 -0
- package/dist/plugin/config/defaults.d.ts.map +1 -0
- package/dist/plugin/config/defaults.js +52 -0
- package/dist/plugin/config/defaults.js.map +1 -0
- package/dist/plugin/config/getCondition.d.ts +2 -0
- package/dist/plugin/config/getCondition.d.ts.map +1 -0
- package/dist/plugin/config/getCondition.js +11 -0
- package/dist/plugin/config/getCondition.js.map +1 -0
- package/dist/plugin/config/getPaths.d.ts +5 -0
- package/dist/plugin/config/getPaths.d.ts.map +1 -0
- package/dist/plugin/config/getPaths.js +21 -0
- package/dist/plugin/config/getPaths.js.map +1 -0
- package/dist/plugin/config/getWorkerPath.d.ts +2 -0
- package/dist/plugin/config/getWorkerPath.d.ts.map +1 -0
- package/dist/plugin/config/getWorkerPath.js +4 -0
- package/dist/plugin/config/index.d.ts +8 -0
- package/dist/plugin/config/index.d.ts.map +1 -0
- package/dist/plugin/config/index.js +7 -0
- package/dist/plugin/config/moduleIdDefault.d.ts +8 -0
- package/dist/plugin/config/moduleIdDefault.d.ts.map +1 -0
- package/dist/plugin/config/moduleIdDefault.js +23 -0
- package/dist/plugin/config/moduleIdDefault.js.map +1 -0
- package/dist/plugin/config/resolveOptions.d.ts +9 -0
- package/dist/plugin/config/resolveOptions.d.ts.map +1 -0
- package/dist/plugin/config/resolveOptions.js +56 -0
- package/dist/plugin/config/resolveOptions.js.map +1 -0
- package/dist/plugin/config/resolvePages.d.ts +9 -0
- package/dist/plugin/config/resolvePages.d.ts.map +1 -0
- package/dist/plugin/config/resolvePages.js +38 -0
- package/dist/plugin/config/resolvePages.js.map +1 -0
- package/dist/plugin/config/resolveUserConfig.d.ts +18 -0
- package/dist/plugin/config/resolveUserConfig.d.ts.map +1 -0
- package/dist/plugin/config/resolveUserConfig.js +84 -0
- package/dist/plugin/config/resolveUserConfig.js.map +1 -0
- package/dist/plugin/copy-dir.d.ts.map +1 -0
- package/dist/plugin/copy-dir.js +20 -0
- package/dist/plugin/getCondition.d.ts +2 -0
- package/dist/plugin/getCondition.d.ts.map +1 -0
- package/dist/plugin/getCondition.js +1 -0
- package/dist/plugin/getEnv.d.ts.map +1 -0
- package/dist/plugin/getEnv.js +107 -0
- package/dist/plugin/helpers/createClientInputNormalizer.d.ts +8 -0
- package/dist/plugin/helpers/createClientInputNormalizer.d.ts.map +1 -0
- package/dist/plugin/helpers/createClientInputNormalizer.js +35 -0
- package/dist/plugin/helpers/createServerInputNormalizer.d.ts +9 -0
- package/dist/plugin/helpers/createServerInputNormalizer.d.ts.map +1 -0
- package/dist/plugin/helpers/createServerInputNormalizer.js +37 -0
- package/dist/plugin/helpers/createStaticInputNormalizer.d.ts +7 -0
- package/dist/plugin/helpers/createStaticInputNormalizer.d.ts.map +1 -0
- package/dist/plugin/helpers/createStaticInputNormalizer.js +18 -0
- package/dist/plugin/helpers/getModuleManifest.d.ts +12 -0
- package/dist/plugin/helpers/getModuleManifest.d.ts.map +1 -0
- package/dist/plugin/helpers/getModuleManifest.js +24 -0
- package/dist/plugin/helpers/getModuleManifest.js.map +1 -0
- package/dist/plugin/helpers/inputNormalizer.d.ts +3 -0
- package/dist/plugin/helpers/inputNormalizer.d.ts.map +1 -0
- package/dist/plugin/helpers/inputNormalizer.js +35 -0
- package/dist/plugin/helpers/inputNormalizer.js.map +1 -0
- package/dist/plugin/helpers/inputNormalizerWorker.d.ts +11 -0
- package/dist/plugin/helpers/inputNormalizerWorker.d.ts.map +1 -0
- package/dist/plugin/helpers/inputNormalizerWorker.js +30 -0
- package/dist/plugin/helpers/normalizedRelativePath.d.ts.map +1 -0
- package/dist/plugin/helpers/normalizedRelativePath.js +36 -0
- package/dist/plugin/helpers/resolveFilePath.d.ts +13 -0
- package/dist/plugin/helpers/resolveFilePath.d.ts.map +1 -0
- package/dist/plugin/helpers/resolveFilePath.js +74 -0
- package/dist/plugin/helpers/resolveWorkerModule.d.ts +6 -0
- package/dist/plugin/helpers/resolveWorkerModule.d.ts.map +1 -0
- package/dist/plugin/helpers/resolveWorkerModule.js +24 -0
- package/dist/plugin/helpers/tryManifest.d.ts.map +1 -0
- package/dist/{src → plugin}/helpers/tryManifest.js +11 -6
- package/dist/plugin/helpers/tryManifest.js.map +1 -0
- package/dist/plugin/helpers/validateModuleBase.d.ts +3 -0
- package/dist/plugin/helpers/validateModuleBase.d.ts.map +1 -0
- package/dist/plugin/helpers/validateModuleBase.js +16 -0
- package/dist/plugin/helpers/validateResolvedConfig.d.ts +3 -0
- package/dist/plugin/helpers/validateResolvedConfig.d.ts.map +1 -0
- package/dist/plugin/helpers/validateResolvedConfig.js +17 -0
- package/dist/plugin/index.d.ts +3 -0
- package/dist/plugin/index.d.ts.map +1 -0
- package/dist/plugin/index.js +1 -0
- package/dist/plugin/loader/createBuildLoader.d.ts +9 -0
- package/dist/plugin/loader/createBuildLoader.d.ts.map +1 -0
- package/dist/plugin/loader/createBuildLoader.js +38 -0
- package/dist/plugin/loader/createBuildLoader.js.map +1 -0
- package/dist/plugin/loader/createCssLoader.d.ts +30 -0
- package/dist/plugin/loader/createCssLoader.d.ts.map +1 -0
- package/dist/plugin/loader/createCssLoader.js +35 -0
- package/dist/{html → plugin/loader}/createPageLoader.d.ts +2 -4
- package/dist/plugin/loader/createPageLoader.d.ts.map +1 -0
- package/dist/plugin/loader/createPageLoader.js +57 -0
- package/dist/plugin/manifest.d.ts.map +1 -0
- package/dist/plugin/manifest.js +13 -0
- package/dist/plugin/module-graph.d.ts.map +1 -0
- package/dist/plugin/module-graph.js +35 -0
- package/dist/plugin/plugin.d.ts +7 -0
- package/dist/plugin/plugin.d.ts.map +1 -0
- package/dist/plugin/plugin.js +8 -0
- package/dist/plugin/preserver/index.d.ts +2 -0
- package/dist/plugin/preserver/index.d.ts.map +1 -0
- package/dist/plugin/preserver/index.js +1 -0
- package/dist/plugin/preserver/plugin.d.ts +3 -0
- package/dist/plugin/preserver/plugin.d.ts.map +1 -0
- package/dist/plugin/preserver/plugin.js +90 -0
- package/dist/plugin/preserver/plugin.js.map +1 -0
- package/dist/plugin/react-client/index.d.ts +2 -0
- package/dist/plugin/react-client/index.d.ts.map +1 -0
- package/dist/plugin/react-client/index.js +1 -0
- package/dist/plugin/react-client/plugin.d.ts +4 -0
- package/dist/plugin/react-client/plugin.d.ts.map +1 -0
- package/dist/plugin/react-client/plugin.js +34 -0
- package/dist/plugin/react-client/plugin.js.map +1 -0
- package/dist/plugin/react-server/createDevMiddleware.d.ts.map +1 -0
- package/dist/plugin/react-server/createDevMiddleware.js +68 -0
- package/dist/plugin/react-server/createDevServer.d.ts.map +1 -0
- package/dist/plugin/react-server/createDevServer.js +4 -0
- package/dist/plugin/react-server/createHandler.d.ts +17 -0
- package/dist/plugin/react-server/createHandler.d.ts.map +1 -0
- package/dist/{src → plugin}/react-server/createHandler.js +28 -17
- package/dist/plugin/react-server/createHandler.js.map +1 -0
- package/dist/plugin/react-server/createReactNodeStreamer.d.ts.map +1 -0
- package/dist/plugin/react-server/createReactNodeStreamer.js +7 -0
- package/dist/{react-server → plugin/react-server}/createRscStream.d.ts +1 -1
- package/dist/plugin/react-server/createRscStream.d.ts.map +1 -0
- package/dist/{src → plugin}/react-server/createRscStream.js +14 -13
- package/dist/plugin/react-server/createRscStream.js.map +1 -0
- package/dist/{react-server → plugin/react-server}/createSsrHandler.d.ts +1 -1
- package/dist/plugin/react-server/createSsrHandler.d.ts.map +1 -0
- package/dist/plugin/react-server/createSsrHandler.js +102 -0
- package/dist/plugin/react-server/index.d.ts +3 -0
- package/dist/plugin/react-server/index.d.ts.map +1 -0
- package/dist/plugin/react-server/index.js +10 -0
- package/dist/plugin/react-server/plugin.d.ts +7 -0
- package/dist/plugin/react-server/plugin.d.ts.map +1 -0
- package/dist/plugin/react-server/plugin.js +377 -0
- package/dist/plugin/react-server/plugin.js.map +1 -0
- package/dist/plugin/resolvePage.d.ts.map +1 -0
- package/dist/{src → plugin}/resolvePage.js +8 -4
- package/dist/plugin/resolvePage.js.map +1 -0
- package/dist/plugin/resolveProps.d.ts.map +1 -0
- package/dist/{src → plugin}/resolveProps.js +21 -8
- package/dist/plugin/resolveProps.js.map +1 -0
- package/dist/plugin/server.d.ts +2 -0
- package/dist/plugin/server.d.ts.map +1 -0
- package/dist/plugin/server.js +1 -0
- package/dist/plugin/transformer/index.d.ts +2 -0
- package/dist/plugin/transformer/index.d.ts.map +1 -0
- package/dist/plugin/transformer/index.js +1 -0
- package/dist/{transformer/index.d.ts → plugin/transformer/plugin.d.ts} +3 -4
- package/dist/plugin/transformer/plugin.d.ts.map +1 -0
- package/dist/plugin/transformer/plugin.js +94 -0
- package/dist/plugin/transformer/plugin.js.map +1 -0
- package/dist/plugin/transformer/transformer-client-components.d.ts +21 -0
- package/dist/plugin/transformer/transformer-client-components.d.ts.map +1 -0
- package/dist/plugin/transformer/transformer-client-components.js +61 -0
- package/dist/plugin/transformer/transformer-client-components.js.map +1 -0
- package/dist/{transformer/transformer.d.ts → plugin/transformer/transformer-server-actions.d.ts} +3 -4
- package/dist/plugin/transformer/transformer-server-actions.d.ts.map +1 -0
- package/dist/plugin/transformer/transformer-server-actions.js +76 -0
- package/dist/plugin/transformer/transformer-server-actions.js.map +1 -0
- package/dist/plugin/transformer/types.d.ts.map +1 -0
- package/dist/plugin/transformer/types.js +1 -0
- package/dist/plugin/types.d.ts +225 -0
- package/dist/plugin/types.d.ts.map +1 -0
- package/dist/plugin/types.js +1 -0
- package/dist/plugin/worker/createWorker.d.ts +15 -0
- package/dist/plugin/worker/createWorker.d.ts.map +1 -0
- package/dist/plugin/worker/createWorker.js +71 -0
- package/dist/plugin/worker/createWorker.js.map +1 -0
- package/dist/plugin/worker/html/html-worker.d.ts +2 -0
- package/dist/plugin/worker/html/html-worker.d.ts.map +1 -0
- package/dist/plugin/worker/html/html-worker.development.d.ts +2 -0
- package/dist/plugin/worker/html/html-worker.development.d.ts.map +1 -0
- package/dist/plugin/worker/html/html-worker.development.js +12 -0
- package/dist/plugin/worker/html/html-worker.development.js.map +1 -0
- package/dist/plugin/worker/html/html-worker.js +4 -0
- package/dist/plugin/worker/html/html-worker.production.d.ts +2 -0
- package/dist/plugin/worker/html/html-worker.production.d.ts.map +1 -0
- package/dist/plugin/worker/html/html-worker.production.js +12 -0
- package/dist/plugin/worker/html/html-worker.production.js.map +1 -0
- package/dist/plugin/worker/html/index.d.ts +2 -0
- package/dist/plugin/worker/html/index.d.ts.map +1 -0
- package/dist/plugin/worker/html/index.js +7 -0
- package/dist/plugin/worker/html/index.js.map +1 -0
- package/dist/plugin/worker/html/messageHandler.d.ts +3 -0
- package/dist/plugin/worker/html/messageHandler.d.ts.map +1 -0
- package/dist/plugin/worker/html/messageHandler.js +98 -0
- package/dist/plugin/worker/html/messageHandler.js.map +1 -0
- package/dist/plugin/worker/html/plugin.d.ts +4 -0
- package/dist/plugin/worker/html/plugin.d.ts.map +1 -0
- package/dist/plugin/worker/html/plugin.js +89 -0
- package/dist/plugin/worker/html/renderPages.d.ts +38 -0
- package/dist/plugin/worker/html/renderPages.d.ts.map +1 -0
- package/dist/plugin/worker/html/renderPages.js +123 -0
- package/dist/plugin/worker/html/renderPages.js.map +1 -0
- package/dist/plugin/worker/loader.d.ts.map +1 -0
- package/dist/plugin/worker/loader.js +11 -0
- package/dist/plugin/worker/loader.js.map +1 -0
- package/dist/plugin/worker/plugin.d.ts +10 -0
- package/dist/plugin/worker/plugin.d.ts.map +1 -0
- package/dist/plugin/worker/plugin.js +14 -0
- package/dist/plugin/worker/rsc/createRscStream.d.ts +5 -0
- package/dist/plugin/worker/rsc/createRscStream.d.ts.map +1 -0
- package/dist/plugin/worker/rsc/createRscStream.js +39 -0
- package/dist/plugin/worker/rsc/createRscStream.js.map +1 -0
- package/dist/plugin/worker/rsc/development.d.ts +5 -0
- package/dist/plugin/worker/rsc/development.d.ts.map +1 -0
- package/dist/plugin/worker/rsc/development.js +13 -0
- package/dist/plugin/worker/rsc/development.js.map +1 -0
- package/dist/plugin/worker/rsc/index.d.ts +4 -0
- package/dist/plugin/worker/rsc/index.d.ts.map +1 -0
- package/dist/plugin/worker/rsc/index.js +15 -0
- package/dist/plugin/worker/rsc/index.js.map +1 -0
- package/dist/plugin/worker/rsc/plugin.d.ts +4 -0
- package/dist/plugin/worker/rsc/plugin.d.ts.map +1 -0
- package/dist/plugin/worker/rsc/plugin.js +82 -0
- package/dist/plugin/worker/rsc/plugin.js.map +1 -0
- package/dist/plugin/worker/rsc/production.d.ts +5 -0
- package/dist/plugin/worker/rsc/production.d.ts.map +1 -0
- package/dist/plugin/worker/rsc/production.js +13 -0
- package/dist/plugin/worker/rsc/production.js.map +1 -0
- package/dist/plugin/worker/rsc/rsc-worker.d.ts +2 -0
- package/dist/plugin/worker/rsc/rsc-worker.d.ts.map +1 -0
- package/dist/plugin/worker/rsc/rsc-worker.js +106 -0
- package/dist/plugin/worker/types.d.ts +99 -0
- package/dist/plugin/worker/types.d.ts.map +1 -0
- package/dist/plugin/worker/types.js +1 -0
- package/dist/server.d.ts +4 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +9 -0
- package/dist/server.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types.d.ts +1 -201
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/package.json +42 -25
- package/plugin/build/createClientBuildConfig.ts +21 -0
- package/plugin/build/createServerBuildConfig.ts +66 -0
- package/plugin/build/createSharedBuildConfig.ts +35 -0
- package/plugin/build/mergeInputs.ts +58 -0
- package/plugin/checkFilesExist.ts +82 -0
- package/{src → plugin}/collect-css-manifest.ts +4 -2
- package/plugin/config/defaults.ts +44 -0
- package/plugin/config/getCondition.ts +3 -0
- package/plugin/config/getPaths.ts +25 -0
- package/plugin/config/getWorkerPath.ts +5 -0
- package/plugin/config/index.ts +8 -0
- package/plugin/config/moduleIdDefault.ts +23 -0
- package/plugin/config/resolveOptions.ts +53 -0
- package/plugin/config/resolvePages.ts +43 -0
- package/plugin/config/resolveUserConfig.ts +97 -0
- package/{src → plugin}/getEnv.ts +1 -1
- package/plugin/helpers/createClientInputNormalizer.ts +48 -0
- package/plugin/helpers/createServerInputNormalizer.ts +52 -0
- package/plugin/helpers/createStaticInputNormalizer.ts +26 -0
- package/plugin/helpers/getModuleManifest.ts +31 -0
- package/plugin/helpers/inputNormalizer.ts +39 -0
- package/plugin/helpers/inputNormalizerWorker.ts +47 -0
- package/plugin/helpers/resolveFilePath.ts +108 -0
- package/plugin/helpers/resolveWorkerModule.ts +41 -0
- package/plugin/helpers/validateModuleBase.ts +30 -0
- package/plugin/helpers/validateResolvedConfig.ts +21 -0
- package/plugin/index.ts +2 -0
- package/plugin/loader/createBuildLoader.ts +44 -0
- package/plugin/loader/createCssLoader.ts +73 -0
- package/{src/html → plugin/loader}/createPageLoader.ts +35 -27
- package/plugin/plugin.ts +8 -0
- package/plugin/preserver/index.ts +1 -0
- package/plugin/preserver/plugin.ts +109 -0
- package/plugin/react-client/index.ts +1 -0
- package/plugin/react-client/plugin.ts +33 -0
- package/{src → plugin}/react-server/createDevMiddleware.ts +17 -1
- package/{src → plugin}/react-server/createDevServer.ts +0 -1
- package/{src → plugin}/react-server/createHandler.ts +31 -10
- package/{src → plugin}/react-server/createReactNodeStreamer.ts +1 -0
- package/{src → plugin}/react-server/createRscStream.ts +8 -12
- package/{src → plugin}/react-server/createSsrHandler.ts +16 -19
- package/plugin/react-server/index.ts +12 -0
- package/plugin/react-server/plugin.ts +464 -0
- package/{src → plugin}/resolvePage.ts +1 -1
- package/{src → plugin}/resolveProps.ts +15 -6
- package/plugin/server.tsx +0 -0
- package/plugin/transformer/index.ts +1 -0
- package/plugin/transformer/plugin.ts +141 -0
- package/plugin/transformer/transformer-client-components.ts +94 -0
- package/{src/transformer/transformer.ts → plugin/transformer/transformer-server-actions.ts} +14 -27
- package/{src → plugin}/types.ts +97 -55
- package/plugin/worker/createWorker.ts +84 -0
- package/plugin/worker/html/html-worker.development.tsx +8 -0
- package/plugin/worker/html/html-worker.production.tsx +8 -0
- package/plugin/worker/html/html-worker.ts +5 -0
- package/plugin/worker/html/index.ts +5 -0
- package/plugin/worker/html/messageHandler.ts +116 -0
- package/plugin/worker/html/plugin.ts +97 -0
- package/plugin/worker/html/renderPages.ts +188 -0
- package/plugin/worker/plugin.ts +17 -0
- package/plugin/worker/rsc/createRscStream.ts +42 -0
- package/plugin/worker/rsc/development.ts +6 -0
- package/plugin/worker/rsc/index.ts +14 -0
- package/plugin/worker/rsc/plugin.ts +83 -0
- package/plugin/worker/rsc/production.ts +6 -0
- package/plugin/worker/rsc/rsc-worker.tsx +128 -0
- package/plugin/worker/types.ts +124 -0
- package/scripts/check-react-version.mjs +48 -30
- package/scripts/react+0.0.0-experimental-b3a95caf-20250113.patch +4291 -0
- package/scripts/react-dom+0.0.0-experimental-b3a95caf-20250113.patch +108798 -0
- package/scripts/react-server-dom-esm+0.0.0-experimental-b3a95caf-20250113.patch +24775 -0
- package/{patches → scripts}/react-server-dom-esm+0.0.1.patch +11354 -3
- package/tsconfig.json +15 -13
- package/dist/assertServerCondition.d.ts.map +0 -1
- package/dist/bin/patch.js +0 -51
- package/dist/bin/patch.js.map +0 -1
- package/dist/build/createBuildConfig.d.ts +0 -13
- package/dist/build/createBuildConfig.d.ts.map +0 -1
- package/dist/build/mergeInputs.d.ts +0 -5
- package/dist/build/mergeInputs.d.ts.map +0 -1
- package/dist/checkFilesExist.d.ts +0 -8
- package/dist/checkFilesExist.d.ts.map +0 -1
- package/dist/collect-css-manifest.d.ts.map +0 -1
- package/dist/components.d.ts.map +0 -1
- package/dist/copy-dir.d.ts.map +0 -1
- package/dist/getEnv.d.ts.map +0 -1
- package/dist/helpers/inputNormalizer.d.ts +0 -6
- package/dist/helpers/inputNormalizer.d.ts.map +0 -1
- package/dist/helpers/normalizedRelativePath.d.ts.map +0 -1
- package/dist/helpers/tryManifest.d.ts.map +0 -1
- package/dist/html/createPageLoader.d.ts.map +0 -1
- package/dist/manifest.d.ts.map +0 -1
- package/dist/module-graph.d.ts.map +0 -1
- package/dist/options.d.ts +0 -91
- package/dist/options.d.ts.map +0 -1
- package/dist/plugin.d.ts +0 -3
- package/dist/plugin.d.ts.map +0 -1
- package/dist/react-client/plugin.d.ts +0 -4
- package/dist/react-client/plugin.d.ts.map +0 -1
- package/dist/react-client/plugin.js +0 -28
- package/dist/react-client/plugin.js.map +0 -1
- package/dist/react-server/createDevMiddleware.d.ts.map +0 -1
- package/dist/react-server/createDevServer.d.ts.map +0 -1
- package/dist/react-server/createHandler.d.ts +0 -23
- package/dist/react-server/createHandler.d.ts.map +0 -1
- package/dist/react-server/createReactNodeStreamer.d.ts.map +0 -1
- package/dist/react-server/createRscStream.d.ts.map +0 -1
- package/dist/react-server/createSsrHandler.d.ts.map +0 -1
- package/dist/react-server/plugin.d.ts +0 -8
- package/dist/react-server/plugin.d.ts.map +0 -1
- package/dist/react-server/plugin.js +0 -345
- package/dist/react-server/plugin.js.map +0 -1
- package/dist/resolvePage.d.ts.map +0 -1
- package/dist/resolveProps.d.ts.map +0 -1
- package/dist/scripts/check-react-version.js +0 -34
- package/dist/scripts/check-react-version.js.map +0 -1
- package/dist/src/build/createBuildConfig.js +0 -44
- package/dist/src/build/createBuildConfig.js.map +0 -1
- package/dist/src/build/mergeInputs.js +0 -16
- package/dist/src/build/mergeInputs.js.map +0 -1
- package/dist/src/checkFilesExist.js +0 -61
- package/dist/src/checkFilesExist.js.map +0 -1
- package/dist/src/collect-css-manifest.js.map +0 -1
- package/dist/src/components.js.map +0 -1
- package/dist/src/getEnv.js +0 -76
- package/dist/src/getEnv.js.map +0 -1
- package/dist/src/helpers/inputNormalizer.js +0 -11
- package/dist/src/helpers/inputNormalizer.js.map +0 -1
- package/dist/src/helpers/normalizedRelativePath.js +0 -34
- package/dist/src/helpers/normalizedRelativePath.js.map +0 -1
- package/dist/src/helpers/tryManifest.js.map +0 -1
- package/dist/src/html/createPageLoader.js +0 -72
- package/dist/src/html/createPageLoader.js.map +0 -1
- package/dist/src/options.js +0 -307
- package/dist/src/options.js.map +0 -1
- package/dist/src/react-server/createHandler.js.map +0 -1
- package/dist/src/react-server/createRscStream.js.map +0 -1
- package/dist/src/resolvePage.js.map +0 -1
- package/dist/src/resolveProps.js.map +0 -1
- package/dist/src/worker/createHtmlStream.js +0 -62
- package/dist/src/worker/createHtmlStream.js.map +0 -1
- package/dist/src/worker/createWorker.js +0 -34
- package/dist/src/worker/createWorker.js.map +0 -1
- package/dist/src/worker/renderPages.js +0 -99
- package/dist/src/worker/renderPages.js.map +0 -1
- package/dist/transformer/index.d.ts.map +0 -1
- package/dist/transformer/preserveDirectives.d.ts +0 -4
- package/dist/transformer/preserveDirectives.d.ts.map +0 -1
- package/dist/transformer/preserver.d.ts +0 -2
- package/dist/transformer/preserver.d.ts.map +0 -1
- package/dist/transformer/transformer.d.ts.map +0 -1
- package/dist/transformer/types.d.ts.map +0 -1
- package/dist/worker/createHtmlStream.d.ts +0 -7
- package/dist/worker/createHtmlStream.d.ts.map +0 -1
- package/dist/worker/createWorker.d.ts +0 -10
- package/dist/worker/createWorker.d.ts.map +0 -1
- package/dist/worker/loader.d.ts.map +0 -1
- package/dist/worker/loader.js +0 -7
- package/dist/worker/loader.js.map +0 -1
- package/dist/worker/renderPages.d.ts +0 -18
- package/dist/worker/renderPages.d.ts.map +0 -1
- package/dist/worker/types.d.ts +0 -31
- package/dist/worker/types.d.ts.map +0 -1
- package/dist/worker/worker.d.ts +0 -7
- package/dist/worker/worker.d.ts.map +0 -1
- package/dist/worker/worker.js +0 -112
- package/dist/worker/worker.js.map +0 -1
- package/src/build/createBuildConfig.ts +0 -57
- package/src/build/mergeInputs.ts +0 -42
- package/src/checkFilesExist.ts +0 -67
- package/src/helpers/inputNormalizer.ts +0 -22
- package/src/index.ts +0 -4
- package/src/options.ts +0 -423
- package/src/plugin.ts +0 -5
- package/src/react-client/plugin.ts +0 -34
- package/src/react-server/plugin.ts +0 -409
- package/src/transformer/index.ts +0 -112
- package/src/transformer/preserveDirectives.ts +0 -100
- package/src/transformer/preserver.ts +0 -47
- package/src/worker/createHtmlStream.ts +0 -76
- package/src/worker/createWorker.ts +0 -44
- package/src/worker/renderPages.ts +0 -144
- package/src/worker/types.ts +0 -38
- package/src/worker/worker.tsx +0 -136
- /package/dist/{assertServerCondition.d.ts → plugin/assertServerCondition.d.ts} +0 -0
- /package/dist/{components.d.ts → plugin/components.d.ts} +0 -0
- /package/dist/{copy-dir.d.ts → plugin/copy-dir.d.ts} +0 -0
- /package/dist/{getEnv.d.ts → plugin/getEnv.d.ts} +0 -0
- /package/dist/{helpers → plugin/helpers}/normalizedRelativePath.d.ts +0 -0
- /package/dist/{helpers → plugin/helpers}/tryManifest.d.ts +0 -0
- /package/dist/{manifest.d.ts → plugin/manifest.d.ts} +0 -0
- /package/dist/{module-graph.d.ts → plugin/module-graph.d.ts} +0 -0
- /package/dist/{react-server → plugin/react-server}/createDevMiddleware.d.ts +0 -0
- /package/dist/{react-server → plugin/react-server}/createDevServer.d.ts +0 -0
- /package/dist/{react-server → plugin/react-server}/createReactNodeStreamer.d.ts +0 -0
- /package/dist/{resolvePage.d.ts → plugin/resolvePage.d.ts} +0 -0
- /package/dist/{resolveProps.d.ts → plugin/resolveProps.d.ts} +0 -0
- /package/dist/{transformer → plugin/transformer}/types.d.ts +0 -0
- /package/dist/{worker → plugin/worker}/loader.d.ts +0 -0
- /package/{src → plugin}/assertServerCondition.ts +0 -0
- /package/{src → plugin}/components.tsx +0 -0
- /package/{src → plugin}/copy-dir.ts +0 -0
- /package/{src/server.tsx → plugin/getCondition.ts} +0 -0
- /package/{src → plugin}/helpers/normalizedRelativePath.ts +0 -0
- /package/{src → plugin}/helpers/tryManifest.ts +0 -0
- /package/{src → plugin}/manifest.ts +0 -0
- /package/{src → plugin}/module-graph.ts +0 -0
- /package/{src → plugin}/transformer/README.md +0 -0
- /package/{src → plugin}/transformer/types.ts +0 -0
- /package/{src → plugin}/worker/loader.ts +0 -0
|
@@ -56,7 +56,7 @@ export async function resolvePage({
|
|
|
56
56
|
typeof pageModule === "object" && pageModule != null
|
|
57
57
|
? keys.length
|
|
58
58
|
? "Available exports: " + keys.join(", ")
|
|
59
|
-
: "The object was defined but has no properties."
|
|
59
|
+
: "The object was defined but has no properties. \"" + JSON.stringify(pageModule) + "\""
|
|
60
60
|
: "typeof pageModule =" + typeof pageModule
|
|
61
61
|
}`,
|
|
62
62
|
{ cause: pageModule }
|
|
@@ -37,11 +37,14 @@ export async function resolveProps({
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
const keys = Object.keys(propsModule);
|
|
40
|
-
|
|
40
|
+
let found = keys.find((v) => v === exportName || v === url || v === path);
|
|
41
|
+
if(exportName in propsModule) {
|
|
42
|
+
found = exportName;
|
|
43
|
+
}
|
|
41
44
|
if (found) {
|
|
42
|
-
|
|
43
|
-
|
|
45
|
+
let value = propsModule[found];
|
|
44
46
|
try {
|
|
47
|
+
console.log("[resolveProps] Found:", found, value);
|
|
45
48
|
// If it's a function, call it with the URL
|
|
46
49
|
if (isFunction(value)) {
|
|
47
50
|
const props = await value(url);
|
|
@@ -71,7 +74,7 @@ export async function resolveProps({
|
|
|
71
74
|
};
|
|
72
75
|
}
|
|
73
76
|
|
|
74
|
-
|
|
77
|
+
|
|
75
78
|
return {
|
|
76
79
|
type: "error",
|
|
77
80
|
error: new Error(
|
|
@@ -104,10 +107,16 @@ export async function resolveProps({
|
|
|
104
107
|
: exportKeys.length
|
|
105
108
|
? exportKeys.join(", ")
|
|
106
109
|
: "no keys"
|
|
107
|
-
}, this will not work. Make sure to set esModule: true in rollupOptions.output`
|
|
110
|
+
}, this will not work. Make sure to set esModule: true in rollupOptions.output. ${JSON.stringify(propsModule)}`
|
|
108
111
|
),
|
|
109
112
|
};
|
|
110
113
|
}
|
|
114
|
+
if (Object.keys(propsModule).includes("error")) {
|
|
115
|
+
return {
|
|
116
|
+
type: "error",
|
|
117
|
+
error: propsModule["error"],
|
|
118
|
+
};
|
|
119
|
+
}
|
|
111
120
|
|
|
112
121
|
return {
|
|
113
122
|
type: "error",
|
|
@@ -115,7 +124,7 @@ export async function resolveProps({
|
|
|
115
124
|
`Could not find props export "${exportName}" in "${path}". ${
|
|
116
125
|
keys.length
|
|
117
126
|
? "Available exports: " + keys.join(", ")
|
|
118
|
-
: "The object was defined but has no properties."
|
|
127
|
+
: "The object was defined but has no properties. \"" + JSON.stringify(propsModule) + "\""
|
|
119
128
|
}`
|
|
120
129
|
),
|
|
121
130
|
};
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { reactTransformPlugin } from "./plugin.js";
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { DEFAULT_CONFIG } from "../config/defaults.js";
|
|
2
|
+
import type { StreamPluginOptions } from "../types.js";
|
|
3
|
+
import { createClientComponentTransformer } from "./transformer-client-components.js";
|
|
4
|
+
import { createServerActionTransformer } from "./transformer-server-actions.js";
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Plugin for transforming React Client Components.
|
|
9
|
+
*
|
|
10
|
+
* Core responsibilities:
|
|
11
|
+
* 1. Detects "use client" directives
|
|
12
|
+
* 2. Transforms client components for RSC boundaries
|
|
13
|
+
* 3. Adds client reference metadata for RSC
|
|
14
|
+
*
|
|
15
|
+
* When a component is marked with "use client", it:
|
|
16
|
+
* - Gets transformed into a client reference
|
|
17
|
+
* - Maintains module ID for RSC boundaries
|
|
18
|
+
* - Preserves class/function behavior
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* export default defineConfig({
|
|
23
|
+
* plugins: [
|
|
24
|
+
* viteReactClientTransformPlugin({
|
|
25
|
+
* projectRoot: process.cwd(),
|
|
26
|
+
* })
|
|
27
|
+
* ]
|
|
28
|
+
* });
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
export function reactTransformPlugin(
|
|
33
|
+
options?: StreamPluginOptions
|
|
34
|
+
): import("vite").Plugin {
|
|
35
|
+
if (process.env["NODE_OPTIONS"]?.match(/--conditions[= ]react-server/)) {
|
|
36
|
+
console.log("react-server");
|
|
37
|
+
} else {
|
|
38
|
+
console.log(process.env["NODE_OPTIONS"]);
|
|
39
|
+
throw new Error(
|
|
40
|
+
'react-server condition not found, set NODE_OPTIONS="--conditions react-server"'
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
const projectRoot = options?.projectRoot || process.cwd();
|
|
44
|
+
// const includeClient = options?.autoDiscover?.clientComponents || DEFAULT_CONFIG.AUTO_DISCOVER.clientComponents;
|
|
45
|
+
// const includeServerFunctions = options?.autoDiscover?.serverFunctions || DEFAULT_CONFIG.AUTO_DISCOVER.serverFunctions;
|
|
46
|
+
let transformClientComponent: any;
|
|
47
|
+
let transformServerAction: any;
|
|
48
|
+
// get the file we are imported from (parent)
|
|
49
|
+
|
|
50
|
+
// Track client components
|
|
51
|
+
const clientComponents = new Set<string>();
|
|
52
|
+
|
|
53
|
+
return {
|
|
54
|
+
name: "vite:react-stream-transformer",
|
|
55
|
+
enforce: "post",
|
|
56
|
+
|
|
57
|
+
configResolved(config) {
|
|
58
|
+
transformClientComponent = createClientComponentTransformer({
|
|
59
|
+
moduleId:
|
|
60
|
+
options?.moduleId ||
|
|
61
|
+
DEFAULT_CONFIG.MODULE_ID({
|
|
62
|
+
projectRoot: projectRoot,
|
|
63
|
+
output: {
|
|
64
|
+
dir: config.build?.outDir ?? DEFAULT_CONFIG.BUILD.server,
|
|
65
|
+
},
|
|
66
|
+
isProduction: config.isProduction,
|
|
67
|
+
}),
|
|
68
|
+
}).transform;
|
|
69
|
+
transformServerAction = createServerActionTransformer({
|
|
70
|
+
moduleId:
|
|
71
|
+
options?.moduleId ||
|
|
72
|
+
DEFAULT_CONFIG.MODULE_ID({
|
|
73
|
+
projectRoot: projectRoot,
|
|
74
|
+
output: {
|
|
75
|
+
dir: config.build?.outDir ?? DEFAULT_CONFIG.BUILD.server,
|
|
76
|
+
},
|
|
77
|
+
isProduction: config.isProduction,
|
|
78
|
+
}),
|
|
79
|
+
}).transform;
|
|
80
|
+
},
|
|
81
|
+
|
|
82
|
+
config(config) {
|
|
83
|
+
// Get existing inputs
|
|
84
|
+
const existingInput = config.build?.rollupOptions?.input || {};
|
|
85
|
+
const currentInputs =
|
|
86
|
+
typeof existingInput === "string"
|
|
87
|
+
? { default: existingInput }
|
|
88
|
+
: existingInput;
|
|
89
|
+
|
|
90
|
+
// Add client components
|
|
91
|
+
const entries = Array.from(clientComponents).reduce(
|
|
92
|
+
(acc, path) => ({
|
|
93
|
+
...acc,
|
|
94
|
+
[path.replace(DEFAULT_CONFIG.FILE_REGEX, "")]: path,
|
|
95
|
+
}),
|
|
96
|
+
{}
|
|
97
|
+
);
|
|
98
|
+
|
|
99
|
+
return {
|
|
100
|
+
build: {
|
|
101
|
+
rollupOptions: {
|
|
102
|
+
input: {
|
|
103
|
+
...currentInputs,
|
|
104
|
+
...entries,
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
};
|
|
109
|
+
},
|
|
110
|
+
|
|
111
|
+
buildStart() {
|
|
112
|
+
// Reset client components at start of each build
|
|
113
|
+
clientComponents.clear();
|
|
114
|
+
},
|
|
115
|
+
|
|
116
|
+
async transform(code: string, id: string, options?: { ssr?: boolean }) {
|
|
117
|
+
// Check for directives
|
|
118
|
+
const hasClientDirective = code.match(/^["']use client["'];?/);
|
|
119
|
+
if (!hasClientDirective) {
|
|
120
|
+
const hasServerDirective = code.match(/^["']use server["'];?/);
|
|
121
|
+
if (!hasServerDirective) {
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
return transformServerAction.bind(this)(code, id, options);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// Track client component and transform
|
|
128
|
+
clientComponents.add(id);
|
|
129
|
+
console.log("[TransformerPlugin] Found client component:", id);
|
|
130
|
+
return transformClientComponent.bind(this)(code, id, options);
|
|
131
|
+
},
|
|
132
|
+
|
|
133
|
+
// Log final client components list
|
|
134
|
+
buildEnd() {
|
|
135
|
+
console.log(
|
|
136
|
+
"[TransformerPlugin] Final client components:",
|
|
137
|
+
Array.from(clientComponents)
|
|
138
|
+
);
|
|
139
|
+
},
|
|
140
|
+
};
|
|
141
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import type { Plugin as RollupPlugin } from "rollup";
|
|
2
|
+
import type { TransformerOptions } from "./types.js";
|
|
3
|
+
|
|
4
|
+
export function createClientComponentTransformer({
|
|
5
|
+
moduleId: userModuleId,
|
|
6
|
+
}: TransformerOptions): RollupPlugin {
|
|
7
|
+
let moduleIdFn = userModuleId;
|
|
8
|
+
|
|
9
|
+
return {
|
|
10
|
+
name: "vite-plugin-react-server:client-components-transformer",
|
|
11
|
+
|
|
12
|
+
async transform(code: string, id: string, options?: { ssr?: boolean }) {
|
|
13
|
+
try {
|
|
14
|
+
// Skip node_modules and vite internal files
|
|
15
|
+
if (id.includes('node_modules') || id.includes('vite/dist')) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// Check if this is a client component from metadata or directive
|
|
20
|
+
const info = this?.getModuleInfo(id);
|
|
21
|
+
const hasDirective = code.match(/^["']use client["'];?/);
|
|
22
|
+
const isClientComponent = hasDirective || info?.meta?.['directives']?.includes('use client');
|
|
23
|
+
|
|
24
|
+
if (!isClientComponent) {
|
|
25
|
+
return null; // Not a client component, skip
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
let transformedCode = code;
|
|
29
|
+
const moduleId = moduleIdFn!(id, options?.ssr ?? false);
|
|
30
|
+
|
|
31
|
+
// Find all named exports
|
|
32
|
+
const exportMatches = Array.from(
|
|
33
|
+
code.matchAll(/export\s+(?:const|let|var|function|class)\s+(\w+)/g)
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
if (!exportMatches.length) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// Transform each export
|
|
41
|
+
for (const [fullMatch, exportName] of exportMatches) {
|
|
42
|
+
if (!exportName) continue;
|
|
43
|
+
|
|
44
|
+
const isClass = fullMatch.includes("class");
|
|
45
|
+
|
|
46
|
+
// Remove export keyword
|
|
47
|
+
transformedCode = transformedCode.replace(
|
|
48
|
+
fullMatch,
|
|
49
|
+
fullMatch.replace("export ", "")
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
transformedCode += `
|
|
53
|
+
const ${exportName}Ref = Object.defineProperties(
|
|
54
|
+
${isClass
|
|
55
|
+
? `class extends ${exportName} {
|
|
56
|
+
constructor(...args) { super(...args); }
|
|
57
|
+
}`
|
|
58
|
+
: `function(...args) { return ${exportName}.apply(null, args); }`
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
$$typeof: { value: Symbol.for("react.client.reference") },
|
|
62
|
+
$$id: { value: ${JSON.stringify(moduleId + "#" + exportName)} },
|
|
63
|
+
$$filepath: { value: ${JSON.stringify(id)} }
|
|
64
|
+
}
|
|
65
|
+
);
|
|
66
|
+
export { ${exportName}Ref as ${exportName} };`;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return { code: transformedCode, map: null };
|
|
70
|
+
} catch (error) {
|
|
71
|
+
console.error(`[RSC] Error transforming client component: ${id}`, error);
|
|
72
|
+
throw error;
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* transformedCode += `
|
|
80
|
+
const ${exportName}Ref = Object.defineProperties(
|
|
81
|
+
${
|
|
82
|
+
isClass
|
|
83
|
+
? `class extends ${exportName} {
|
|
84
|
+
constructor(...args) { super(...args); }
|
|
85
|
+
}`
|
|
86
|
+
: `function(...args) { return ${exportName}.apply(null, args); }`
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
$$typeof: { value: Symbol.for("react.client.reference") },
|
|
90
|
+
$$id: { value: ${JSON.stringify(moduleId + "#" + exportName)} }
|
|
91
|
+
}
|
|
92
|
+
);
|
|
93
|
+
export { ${exportName}Ref as ${exportName} };`;
|
|
94
|
+
*/
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { SourceMapGenerator } from "source-map";
|
|
2
2
|
import type { TransformerOptions } from "./types.js";
|
|
3
3
|
|
|
4
|
-
export function
|
|
4
|
+
export function createServerActionTransformer(options: TransformerOptions) {
|
|
5
5
|
return {
|
|
6
|
-
name: "vite
|
|
6
|
+
name: "vite-plugin-react-server:server-actions-transformer",
|
|
7
7
|
enforce: "post" as const,
|
|
8
8
|
|
|
9
9
|
async transform(
|
|
10
10
|
code: string,
|
|
11
11
|
path: string,
|
|
12
|
-
{ ssr }: {
|
|
12
|
+
{ ssr }: { ssr: boolean } = { ssr: false }
|
|
13
13
|
) {
|
|
14
14
|
try {
|
|
15
15
|
let transformedCode = code;
|
|
16
|
-
const directiveMatch = code.match(/^["']use
|
|
16
|
+
const directiveMatch = code.match(/^["']use server["'];?/);
|
|
17
17
|
const moduleId = options.moduleId(path, ssr);
|
|
18
18
|
|
|
19
19
|
// Log the path transformation
|
|
@@ -28,14 +28,18 @@ export function createRscTransformer(options: TransformerOptions) {
|
|
|
28
28
|
);
|
|
29
29
|
|
|
30
30
|
if (!exportMatches.length) {
|
|
31
|
-
console.warn(
|
|
31
|
+
console.warn(
|
|
32
|
+
`[RSC] No exports found in server action module: ${path}`
|
|
33
|
+
);
|
|
32
34
|
return null;
|
|
33
35
|
}
|
|
34
36
|
|
|
35
37
|
// Transform each export
|
|
36
38
|
for (const [fullMatch, exportName] of exportMatches) {
|
|
37
39
|
if (!exportName) {
|
|
38
|
-
console.warn(
|
|
40
|
+
console.warn(
|
|
41
|
+
`[RSC] Invalid export in server action module: ${path}`
|
|
42
|
+
);
|
|
39
43
|
continue;
|
|
40
44
|
}
|
|
41
45
|
|
|
@@ -48,7 +52,9 @@ export function createRscTransformer(options: TransformerOptions) {
|
|
|
48
52
|
);
|
|
49
53
|
|
|
50
54
|
if (!directiveMatch || directiveMatch.index !== 0) {
|
|
51
|
-
// Server
|
|
55
|
+
// Server action
|
|
56
|
+
} else {
|
|
57
|
+
// Client component
|
|
52
58
|
transformedCode += `
|
|
53
59
|
const ${exportName}Ref = Object.defineProperties(
|
|
54
60
|
${
|
|
@@ -66,26 +72,7 @@ const ${exportName}Ref = Object.defineProperties(
|
|
|
66
72
|
}
|
|
67
73
|
);
|
|
68
74
|
export { ${exportName}Ref as ${exportName} };
|
|
69
|
-
`;
|
|
70
|
-
} else {
|
|
71
|
-
// Client component
|
|
72
|
-
transformedCode += `
|
|
73
|
-
const ${exportName}Ref = Object.defineProperties(
|
|
74
|
-
${
|
|
75
|
-
isClass
|
|
76
|
-
? `class extends ${exportName} {
|
|
77
|
-
constructor(...args) { super(...args); }
|
|
78
|
-
}`
|
|
79
|
-
: `function(...args) { return ${exportName}.apply(null, args); }`
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
$$typeof: { value: Symbol.for("react.client.reference") },
|
|
83
|
-
$$id: { value: ${JSON.stringify(moduleId + "#" + exportName)} },
|
|
84
|
-
$$filepath: { value: ${JSON.stringify(path)} }
|
|
85
|
-
}
|
|
86
|
-
);
|
|
87
|
-
export { ${exportName}Ref as ${exportName} };
|
|
88
|
-
`;
|
|
75
|
+
`;
|
|
89
76
|
}
|
|
90
77
|
}
|
|
91
78
|
|
package/{src → plugin}/types.ts
RENAMED
|
@@ -1,14 +1,43 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
1
|
+
import type { ComponentType } from 'react';
|
|
2
|
+
import type {
|
|
3
|
+
UserConfig,
|
|
3
4
|
BuildOptions,
|
|
5
|
+
InlineConfig,
|
|
6
|
+
AliasOptions,
|
|
4
7
|
Connect,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
} from 'vite';
|
|
9
|
+
|
|
10
|
+
// Input can be a string path, React component, tuple, or array
|
|
11
|
+
export type NormalizerInput = string | ComponentType<any> | [string, string] | string[];
|
|
12
|
+
|
|
13
|
+
export type InputNormalizer = (input: NormalizerInput) => [string, string];
|
|
14
|
+
|
|
15
|
+
export type InputNormalizerWorker = (input: NormalizerInput) => Promise<[string, string]>;
|
|
16
|
+
|
|
17
|
+
export type ResolvedUserConfig = Required<Pick<UserConfig, "root" | "mode" | "build">> &
|
|
18
|
+
Omit<UserConfig, "root" | "mode" | "build"> & {
|
|
19
|
+
build: NonNullable<Required<Pick<BuildOptions,
|
|
20
|
+
"target" |
|
|
21
|
+
"outDir" |
|
|
22
|
+
"assetsDir" |
|
|
23
|
+
"ssr" |
|
|
24
|
+
"ssrEmitAssets" |
|
|
25
|
+
"ssrManifest" |
|
|
26
|
+
"manifest" |
|
|
27
|
+
"rollupOptions"
|
|
28
|
+
>>> &
|
|
29
|
+
Omit<BuildOptions,
|
|
30
|
+
"target" |
|
|
31
|
+
"outDir" |
|
|
32
|
+
"assetsDir" |
|
|
33
|
+
"ssr" |
|
|
34
|
+
"ssrEmitAssets" |
|
|
35
|
+
"ssrManifest" |
|
|
36
|
+
"manifest"
|
|
37
|
+
>
|
|
38
|
+
};
|
|
11
39
|
|
|
40
|
+
// Client plugin options
|
|
12
41
|
export interface StreamPluginOptionsClient {
|
|
13
42
|
outDir?: string;
|
|
14
43
|
build?: BuildConfig;
|
|
@@ -37,11 +66,11 @@ export type ResolvedUserOptions = Required<
|
|
|
37
66
|
| "collectCss"
|
|
38
67
|
| "collectAssets"
|
|
39
68
|
| "assetsDir"
|
|
40
|
-
| "
|
|
69
|
+
| "htmlWorkerPath"
|
|
70
|
+
| "rscWorkerPath"
|
|
41
71
|
| "loaderPath"
|
|
42
72
|
| "clientEntry"
|
|
43
|
-
| "
|
|
44
|
-
| "clientOutDir"
|
|
73
|
+
| "serverEntry"
|
|
45
74
|
| "moduleBaseExceptions"
|
|
46
75
|
>
|
|
47
76
|
> & {
|
|
@@ -49,36 +78,44 @@ export type ResolvedUserOptions = Required<
|
|
|
49
78
|
autoDiscover: NonNullable<Required<StreamPluginOptions["autoDiscover"]>>;
|
|
50
79
|
};
|
|
51
80
|
|
|
52
|
-
export type
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
81
|
+
export type createBuildConfigFn<C extends "react-client" | "react-server"> = (input: {
|
|
82
|
+
condition: C;
|
|
83
|
+
userOptions: ResolvedUserOptions;
|
|
84
|
+
userConfig: ResolvedUserConfig;
|
|
85
|
+
mode: "production" | "development" | "test";
|
|
86
|
+
inputNormalizer: C extends "react-server" ? InputNormalizerWorker : InputNormalizerWorker;
|
|
87
|
+
}) => C extends "react-server" ? Promise<InlineConfig> : Promise<InlineConfig>;
|
|
57
88
|
|
|
58
89
|
export interface StreamPluginOptions {
|
|
59
90
|
projectRoot?: string;
|
|
60
91
|
assetsDir?: string;
|
|
61
|
-
moduleBase
|
|
92
|
+
moduleBase: string;
|
|
62
93
|
moduleBasePath?: string;
|
|
63
94
|
moduleBaseURL?: string;
|
|
64
95
|
clientEntry?: string;
|
|
65
|
-
|
|
66
|
-
clientOutDir?: string;
|
|
96
|
+
serverEntry?: string;
|
|
67
97
|
// Auto-discovery (zero-config)
|
|
68
98
|
autoDiscover?: {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
99
|
+
// default: [Pp]age.tsx
|
|
100
|
+
pagePattern?: RegExp;
|
|
101
|
+
// default: [Pp]rops.ts
|
|
102
|
+
propsPattern?: RegExp;
|
|
103
|
+
// default: "use client" and .client./\.(m|c)?(j|t)sx?$/
|
|
104
|
+
clientComponents?: RegExp;
|
|
105
|
+
// default: "use server" and .server./\.(m|c)?(j|t)sx?$/
|
|
106
|
+
serverFunctions?: RegExp;
|
|
107
|
+
} | undefined;
|
|
72
108
|
// Manual configuration
|
|
73
109
|
Page: string | ((url: string) => string);
|
|
74
110
|
props?: undefined | string | ((url: string) => string);
|
|
75
111
|
// Escape hatches
|
|
76
|
-
|
|
112
|
+
htmlWorkerPath?: string;
|
|
113
|
+
rscWorkerPath?: string;
|
|
77
114
|
loaderPath?: string;
|
|
78
115
|
pageExportName?: string;
|
|
79
116
|
propsExportName?: string;
|
|
80
117
|
Html?: React.FC<{
|
|
81
|
-
manifest: Manifest;
|
|
118
|
+
manifest: import("vite").Manifest;
|
|
82
119
|
pageProps: any;
|
|
83
120
|
route: string;
|
|
84
121
|
url: string;
|
|
@@ -88,15 +125,16 @@ export interface StreamPluginOptions {
|
|
|
88
125
|
collectAssets?: boolean;
|
|
89
126
|
build?: BuildConfig;
|
|
90
127
|
moduleBaseExceptions?: string[];
|
|
128
|
+
moduleId?: (id: string) => string;
|
|
91
129
|
}
|
|
92
130
|
|
|
93
131
|
export interface CreateHandlerOptions<T = any> {
|
|
94
132
|
loader: (id: string) => Promise<T>;
|
|
95
|
-
manifest?: Manifest;
|
|
96
|
-
moduleGraph?: ModuleGraph;
|
|
133
|
+
manifest?: import("vite").Manifest;
|
|
134
|
+
moduleGraph?: import("vite").ModuleGraph;
|
|
97
135
|
cssFiles?: string[];
|
|
98
136
|
onCssFile?: (path: string) => void;
|
|
99
|
-
logger?: Logger;
|
|
137
|
+
logger?: import("vite").Logger;
|
|
100
138
|
pipableStreamOptions?: any;
|
|
101
139
|
}
|
|
102
140
|
|
|
@@ -107,7 +145,7 @@ export type ModuleLoader = (
|
|
|
107
145
|
) => Promise<Record<string, any>>;
|
|
108
146
|
|
|
109
147
|
export interface BaseProps {
|
|
110
|
-
manifest: Manifest;
|
|
148
|
+
manifest: import("vite").Manifest;
|
|
111
149
|
children?: React.ReactNode;
|
|
112
150
|
assets?: {
|
|
113
151
|
css?: string[];
|
|
@@ -129,8 +167,9 @@ export interface RscStreamOptions {
|
|
|
129
167
|
Page: React.ComponentType;
|
|
130
168
|
props: any;
|
|
131
169
|
Html: any;
|
|
132
|
-
logger?: Console | Logger;
|
|
170
|
+
logger?: Console | import("vite").Logger;
|
|
133
171
|
cssFiles?: string[];
|
|
172
|
+
htmlProps: any;
|
|
134
173
|
route: string;
|
|
135
174
|
url: string;
|
|
136
175
|
pipableStreamOptions?: any;
|
|
@@ -161,6 +200,7 @@ export interface BuildConfig {
|
|
|
161
200
|
pages: string[] | (() => Promise<string[]> | string[]);
|
|
162
201
|
client?: string; // Output directory for client files
|
|
163
202
|
server?: string; // Output directory for server files
|
|
203
|
+
static?: string; // Output directory for static environment - works in both
|
|
164
204
|
}
|
|
165
205
|
|
|
166
206
|
export interface RscResolver {
|
|
@@ -174,32 +214,6 @@ export interface RscResolver {
|
|
|
174
214
|
}>;
|
|
175
215
|
}
|
|
176
216
|
|
|
177
|
-
export interface Options {
|
|
178
|
-
include?: RegExp;
|
|
179
|
-
projectRoot?: string;
|
|
180
|
-
moduleBase: string;
|
|
181
|
-
// can be inferred from moduleBase, will add / to moduleBase by default (if not already present)
|
|
182
|
-
moduleBasePath?: string;
|
|
183
|
-
Html?: React.ComponentType<React.PropsWithChildren<{ manifest: Manifest }>>;
|
|
184
|
-
Page: string | ((url: string) => string);
|
|
185
|
-
props?: string | ((url: string) => string);
|
|
186
|
-
pageExportName?: string;
|
|
187
|
-
propsExportName?: string;
|
|
188
|
-
collectCss?: boolean;
|
|
189
|
-
collectAssets?: boolean;
|
|
190
|
-
emitCss?: boolean;
|
|
191
|
-
moduleLoader?: (server: ViteDevServer) => ModuleLoader;
|
|
192
|
-
build?: BuildConfig;
|
|
193
|
-
outDir?: string; // defaults to 'dist'
|
|
194
|
-
/**
|
|
195
|
-
* Configure static asset copying
|
|
196
|
-
* - true: Copy all assets
|
|
197
|
-
* - false: Don't copy assets
|
|
198
|
-
* - Function: Custom filter for which files to copy
|
|
199
|
-
*/
|
|
200
|
-
copyAssets?: boolean | ((file: string) => boolean);
|
|
201
|
-
}
|
|
202
|
-
|
|
203
217
|
export type RequestHandler = Connect.NextHandleFunction;
|
|
204
218
|
|
|
205
219
|
export interface SsrStreamOptions {
|
|
@@ -261,3 +275,31 @@ export interface BuildTiming {
|
|
|
261
275
|
renderEnd?: number;
|
|
262
276
|
total?: number;
|
|
263
277
|
}
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
export type CheckFilesExistReturn = {
|
|
281
|
+
propsMap: Map<string,string>,
|
|
282
|
+
propsSet: Set<string>
|
|
283
|
+
pageMap: Map<string,string>,
|
|
284
|
+
pageSet: Set<string>
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
// Add strict type checking for worker messages
|
|
288
|
+
export type WorkerMessage =
|
|
289
|
+
| { type: 'READY' }
|
|
290
|
+
| { type: 'ERROR'; error: string | Error }
|
|
291
|
+
| { type: 'RSC_CHUNK'; id: string; chunk: Buffer }
|
|
292
|
+
| { type: 'RSC_END'; id: string }
|
|
293
|
+
| { type: 'SHUTDOWN' };
|
|
294
|
+
|
|
295
|
+
// Add branded types for safety
|
|
296
|
+
export type ModuleId = string & { readonly __brand: unique symbol };
|
|
297
|
+
export type PagePath = string & { readonly __brand: unique symbol };
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
export type HtmlProps = {
|
|
301
|
+
pageProps: any;
|
|
302
|
+
route: string;
|
|
303
|
+
url: string;
|
|
304
|
+
cssFiles: string[];
|
|
305
|
+
}
|