vite-plugin-react-server 0.3.3 → 0.3.5
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/_virtual/sourcemap-codec.umd.js +11 -0
- package/dist/_virtual/sourcemap-codec.umd.js.map +1 -0
- package/dist/_virtual/sourcemap-codec.umd2.js +9 -0
- package/dist/_virtual/sourcemap-codec.umd2.js.map +1 -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 +6 -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/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js +457 -0
- package/dist/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js.map +1 -0
- 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 +131 -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 +52 -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 +4 -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 +4 -0
- package/dist/plugin/react-server/index.d.ts.map +1 -0
- package/dist/plugin/react-server/index.js +10 -0
- package/dist/{react-server → plugin/react-server}/plugin.d.ts +2 -2
- package/dist/plugin/react-server/plugin.d.ts.map +1 -0
- package/dist/plugin/react-server/plugin.js +375 -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 -3
- package/dist/plugin/transformer/plugin.d.ts.map +1 -0
- package/dist/plugin/transformer/plugin.js +86 -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 +121 -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 +44 -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 +60 -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 +110 -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 +13 -0
- package/plugin/react-server/plugin.ts +465 -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 +131 -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 +187 -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/bump-version.mjs +68 -0
- package/scripts/check-react-version.mjs +66 -0
- 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 +10259 -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.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/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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateModuleBase.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/validateModuleBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,MAAM,EAClB,oBAAoB,EAAE,MAAM,EAAE,QAwB/B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export function validateModuleBase(input, moduleBase, moduleBaseExceptions) {
|
|
2
|
+
for (const [key, value] of Object.entries(input)) {
|
|
3
|
+
const isException = moduleBaseExceptions.includes(key) || ["/index", "index"].includes(key);
|
|
4
|
+
if (!key.includes("/"))
|
|
5
|
+
return;
|
|
6
|
+
if (value.startsWith("//")) {
|
|
7
|
+
throw new Error(`Path shouldn't start with //`);
|
|
8
|
+
}
|
|
9
|
+
if (!key.startsWith(moduleBase) && !isException) {
|
|
10
|
+
throw new Error(`Invalid input: ${key} does not start with ${moduleBase}. If this is a valid key, add it to moduleBaseExceptions otherwise put the file in the ${moduleBase} directory. Exception: ${moduleBaseExceptions.join(", ")}`);
|
|
11
|
+
}
|
|
12
|
+
if (!value.startsWith("/" + moduleBase) && !isException) {
|
|
13
|
+
throw new Error(`Invalid value: ${value} does not start with ${moduleBase}. If this is a valid path, add it to moduleBaseExceptions otherwise put the file in the ${moduleBase} directory. Exception: ${moduleBaseExceptions.join(", ")}`);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateResolvedConfig.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/validateResolvedConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAE3C,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,IAAI,cAAc,CAiB7F"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export function validateResolvedConfig(config) {
|
|
2
|
+
if (typeof config === "object" &&
|
|
3
|
+
config != null &&
|
|
4
|
+
"build" in config &&
|
|
5
|
+
typeof config.build === "object" &&
|
|
6
|
+
config.build != null &&
|
|
7
|
+
"rollupOptions" in config.build &&
|
|
8
|
+
typeof config.build.rollupOptions === "object" &&
|
|
9
|
+
config.build.rollupOptions != null &&
|
|
10
|
+
"input" in config.build.rollupOptions &&
|
|
11
|
+
typeof config.build.rollupOptions.input === "object" &&
|
|
12
|
+
config.build.rollupOptions.input != null) {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
throw new Error("Invalid config");
|
|
16
|
+
}
|
|
17
|
+
;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../plugin/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,mBAAmB,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './plugin.js';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PluginContext } from "rollup";
|
|
2
|
+
import type { ResolvedUserConfig } from "../../server.js";
|
|
3
|
+
export interface BuildLoaderOptions {
|
|
4
|
+
root: string;
|
|
5
|
+
pluginContext: PluginContext;
|
|
6
|
+
userConfig: ResolvedUserConfig;
|
|
7
|
+
}
|
|
8
|
+
export declare function createBuildLoader({ root, pluginContext, userConfig, }: BuildLoaderOptions): (id: string) => Promise<any>;
|
|
9
|
+
//# sourceMappingURL=createBuildLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createBuildLoader.d.ts","sourceRoot":"","sources":["../../../plugin/loader/createBuildLoader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAK1D,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,EAAE,kBAAkB,CAAC;CAChC;AAED,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,aAAa,EACb,UAAU,GACX,EAAE,kBAAkB,QAED,MAAM,kBAwCzB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vite-plugin-react-server
|
|
3
|
+
* Copyright (c) Nico Brinkkemper
|
|
4
|
+
* MIT License
|
|
5
|
+
*/
|
|
6
|
+
import { join } from 'path';
|
|
7
|
+
import { DEFAULT_CONFIG } from '../config/defaults.js';
|
|
8
|
+
import { stat, mkdir, writeFile } from 'node:fs/promises';
|
|
9
|
+
|
|
10
|
+
function createBuildLoader({
|
|
11
|
+
root,
|
|
12
|
+
pluginContext,
|
|
13
|
+
userConfig
|
|
14
|
+
}) {
|
|
15
|
+
return async (id) => {
|
|
16
|
+
console.log("[createBuildLoader] Loading module:", id);
|
|
17
|
+
const moduleId = join(root, id);
|
|
18
|
+
const result = await pluginContext.load({ id: moduleId });
|
|
19
|
+
if (!result) {
|
|
20
|
+
throw new Error(`Failed to load module: ${id}`);
|
|
21
|
+
}
|
|
22
|
+
let destination = id.replace(DEFAULT_CONFIG.FILE_REGEX, "") + ".js";
|
|
23
|
+
let fullDestination = join(root, userConfig.build.outDir, destination);
|
|
24
|
+
try {
|
|
25
|
+
let emitIfNotExists = await stat(fullDestination).then((stats) => stats.isFile());
|
|
26
|
+
if (emitIfNotExists) {
|
|
27
|
+
console.log(
|
|
28
|
+
"[createBuildLoader] Emitting file:",
|
|
29
|
+
id,
|
|
30
|
+
pluginContext.getModuleInfo(id),
|
|
31
|
+
pluginContext.getWatchFiles(),
|
|
32
|
+
destination,
|
|
33
|
+
emitIfNotExists
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
return await import(fullDestination);
|
|
37
|
+
} catch (error) {
|
|
38
|
+
console.log(
|
|
39
|
+
"[createBuildLoader] A file wasn't emitted, emitting now",
|
|
40
|
+
error
|
|
41
|
+
);
|
|
42
|
+
console.log("[createBuildLoader] Module doesn't exist, emitting it", fullDestination, result.code);
|
|
43
|
+
await mkdir(join(root, userConfig.build.outDir), { recursive: true });
|
|
44
|
+
await writeFile(fullDestination, result.code ?? "");
|
|
45
|
+
console.log("[createBuildLoader] Emitted file:", fullDestination);
|
|
46
|
+
return await import(fullDestination);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export { createBuildLoader };
|
|
52
|
+
//# sourceMappingURL=createBuildLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createBuildLoader.js","sources":["../../../plugin/loader/createBuildLoader.ts"],"sourcesContent":["import { join, relative } from \"path\";\nimport type { PluginContext } from \"rollup\";\nimport type { ResolvedUserConfig } from \"../../server.js\";\nimport { createInputNormalizer } from \"../helpers/inputNormalizer.js\";\nimport { DEFAULT_CONFIG } from \"../config/defaults.js\";\nimport { mkdir, stat, writeFile } from \"node:fs/promises\";\n\nexport interface BuildLoaderOptions {\n root: string;\n pluginContext: PluginContext;\n userConfig: ResolvedUserConfig;\n}\n\nexport function createBuildLoader({\n root,\n pluginContext,\n userConfig,\n}: BuildLoaderOptions) {\n const normalizer = createInputNormalizer(root);\n return async (id: string) => {\n console.log(\"[createBuildLoader] Loading module:\", id);\n const moduleId = join(root, id);\n\n // Load the module source\n const result = await pluginContext.load({ id: moduleId });\n if (!result) {\n throw new Error(`Failed to load module: ${id}`);\n }\n let destination = id.replace(DEFAULT_CONFIG.FILE_REGEX, \"\") + \".js\";\n let fullDestination = join(root, userConfig.build.outDir, destination);\n\n\n // Import and evaluate the module\n try {\n let emitIfNotExists = await stat(fullDestination).then(stats => stats.isFile());\n if (emitIfNotExists) {\n console.log(\n \"[createBuildLoader] Emitting file:\",\n id,\n pluginContext.getModuleInfo(id),\n pluginContext.getWatchFiles(),\n destination,\n emitIfNotExists\n );\n }\n return await import(fullDestination);\n } catch (error) {\n console.log(\n \"[createBuildLoader] A file wasn't emitted, emitting now\",\n error\n );\n console.log(\"[createBuildLoader] Module doesn't exist, emitting it\", fullDestination, result.code);\n await mkdir(join(root, userConfig.build.outDir), { recursive: true });\n\n await writeFile(fullDestination, result.code ?? \"\");\n console.log(\"[createBuildLoader] Emitted file:\", fullDestination);\n return await import(fullDestination);\n }\n };\n}\n"],"names":[],"mappings":";;;;;;;;;AAaO,SAAS,iBAAkB,CAAA;AAAA,EAChC,IAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAuB,EAAA;AAErB,EAAA,OAAO,OAAO,EAAe,KAAA;AAC3B,IAAQ,OAAA,CAAA,GAAA,CAAI,uCAAuC,EAAE,CAAA;AACrD,IAAM,MAAA,QAAA,GAAW,IAAK,CAAA,IAAA,EAAM,EAAE,CAAA;AAG9B,IAAA,MAAM,SAAS,MAAM,aAAA,CAAc,KAAK,EAAE,EAAA,EAAI,UAAU,CAAA;AACxD,IAAA,IAAI,CAAC,MAAQ,EAAA;AACX,MAAA,MAAM,IAAI,KAAA,CAAM,CAA0B,uBAAA,EAAA,EAAE,CAAE,CAAA,CAAA;AAAA;AAEhD,IAAA,IAAI,cAAc,EAAG,CAAA,OAAA,CAAQ,cAAe,CAAA,UAAA,EAAY,EAAE,CAAI,GAAA,KAAA;AAC9D,IAAA,IAAI,kBAAkB,IAAK,CAAA,IAAA,EAAM,UAAW,CAAA,KAAA,CAAM,QAAQ,WAAW,CAAA;AAIrE,IAAI,IAAA;AACF,MAAI,IAAA,eAAA,GAAkB,MAAM,IAAK,CAAA,eAAe,EAAE,IAAK,CAAA,CAAA,KAAA,KAAS,KAAM,CAAA,MAAA,EAAQ,CAAA;AAC9E,MAAA,IAAI,eAAiB,EAAA;AACnB,QAAQ,OAAA,CAAA,GAAA;AAAA,UACN,oCAAA;AAAA,UACA,EAAA;AAAA,UACA,aAAA,CAAc,cAAc,EAAE,CAAA;AAAA,UAC9B,cAAc,aAAc,EAAA;AAAA,UAC5B,WAAA;AAAA,UACA;AAAA,SACF;AAAA;AAEF,MAAA,OAAO,MAAM,OAAO,eAAA,CAAA;AAAA,aACb,KAAO,EAAA;AACd,MAAQ,OAAA,CAAA,GAAA;AAAA,QACN,yDAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,OAAA,CAAQ,GAAI,CAAA,uDAAA,EAAyD,eAAiB,EAAA,MAAA,CAAO,IAAI,CAAA;AACjG,MAAM,MAAA,KAAA,CAAM,IAAK,CAAA,IAAA,EAAM,UAAW,CAAA,KAAA,CAAM,MAAM,CAAG,EAAA,EAAE,SAAW,EAAA,IAAA,EAAM,CAAA;AAEpE,MAAA,MAAM,SAAU,CAAA,eAAA,EAAiB,MAAO,CAAA,IAAA,IAAQ,EAAE,CAAA;AAClD,MAAQ,OAAA,CAAA,GAAA,CAAI,qCAAqC,eAAe,CAAA;AAChE,MAAA,OAAO,MAAM,OAAO,eAAA,CAAA;AAAA;AACtB,GACF;AACF;;;;"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ModuleGraph, type Manifest } from "vite";
|
|
2
|
+
type BaseCssLoaderOptions = {
|
|
3
|
+
/** callback to add css files to the stream */
|
|
4
|
+
onCssFile: (css: string) => void;
|
|
5
|
+
/** loader to load the module */
|
|
6
|
+
loader: (id: string) => Promise<Record<string, any>>;
|
|
7
|
+
/** url of the page */
|
|
8
|
+
url: string;
|
|
9
|
+
/** manually provided css files to add */
|
|
10
|
+
cssFiles: string[];
|
|
11
|
+
};
|
|
12
|
+
type CreateCssLoaderOptions = (BaseCssLoaderOptions & {
|
|
13
|
+
/** manifest to collect css from */
|
|
14
|
+
manifest: Manifest;
|
|
15
|
+
/** when manifest is given, moduleGraph is not needed */
|
|
16
|
+
moduleGraph?: never;
|
|
17
|
+
}) | (BaseCssLoaderOptions & {
|
|
18
|
+
/** when moduleGraph is given, manifest is not needed, manual cssFiles can still be provided */
|
|
19
|
+
manifest?: never;
|
|
20
|
+
/** when moduleGraph is given, manifest is not needed, manual cssFiles can still be provided */
|
|
21
|
+
moduleGraph: ModuleGraph;
|
|
22
|
+
});
|
|
23
|
+
/**
|
|
24
|
+
* create a loader that can be used to load css files from a manifest or a moduleGraph
|
|
25
|
+
* @param options
|
|
26
|
+
* @returns
|
|
27
|
+
*/
|
|
28
|
+
export declare function createCssLoader(options: CreateCssLoaderOptions): Promise<(id: string) => Promise<Record<string, any>>>;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=createCssLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createCssLoader.d.ts","sourceRoot":"","sources":["../../../plugin/loader/createCssLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,MAAM,CAAC;AAMlD,KAAK,oBAAoB,GAAG;IAC1B,8CAA8C;IAC9C,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,gCAAgC;IAChC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACrD,sBAAsB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,yCAAyC;IACzC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,KAAK,sBAAsB,GACvB,CAAC,oBAAoB,GAAG;IACtB,mCAAmC;IACnC,QAAQ,EAAE,QAAQ,CAAC;IACnB,wDAAwD;IACxD,WAAW,CAAC,EAAE,KAAK,CAAC;CACrB,CAAC,GACF,CAAC,oBAAoB,GAAG;IACtB,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,+FAA+F;IAC/F,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC,CAAC;AAEP;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,gBAkBpC,MAAM,mCAkBtC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ModuleGraph } from "vite";
|
|
2
|
+
import { collectManifestCss, collectModuleGraphCss, } from "../collect-css-manifest.js";
|
|
3
|
+
/**
|
|
4
|
+
* create a loader that can be used to load css files from a manifest or a moduleGraph
|
|
5
|
+
* @param options
|
|
6
|
+
* @returns
|
|
7
|
+
*/
|
|
8
|
+
export async function createCssLoader(options) {
|
|
9
|
+
const root = process.cwd();
|
|
10
|
+
const cssModules = new Set();
|
|
11
|
+
if (!(options.manifest || options.moduleGraph))
|
|
12
|
+
throw new Error("Missing manifest or moduleGraph, pass it to options.");
|
|
13
|
+
const getCss = options.manifest
|
|
14
|
+
? (id) => collectManifestCss(options.manifest, root, id, options.onCssFile)
|
|
15
|
+
: (id) => collectModuleGraphCss(options.moduleGraph, id, options.onCssFile);
|
|
16
|
+
const loadWithCss = async (id) => {
|
|
17
|
+
if (!id)
|
|
18
|
+
return {};
|
|
19
|
+
try {
|
|
20
|
+
const mod = await options.loader(id);
|
|
21
|
+
const pageCss = await Promise.resolve(getCss(id));
|
|
22
|
+
Array.from(pageCss.keys()).forEach((css) => cssModules.add(css));
|
|
23
|
+
return mod;
|
|
24
|
+
}
|
|
25
|
+
catch (e) {
|
|
26
|
+
if (e.message?.includes("module runner has been closed")) {
|
|
27
|
+
return { type: "skip" };
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
return { type: "error", error: e };
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
return loadWithCss;
|
|
35
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
type CreatePageLoaderOptions = {
|
|
2
2
|
manifest: Record<string, {
|
|
3
3
|
file: string;
|
|
4
|
+
src?: string;
|
|
4
5
|
}>;
|
|
5
6
|
root: string;
|
|
6
7
|
outDir: string;
|
|
@@ -18,9 +19,6 @@ type CreateDefaultLoaderOptions = {
|
|
|
18
19
|
alwaysRegisterClient?: boolean;
|
|
19
20
|
};
|
|
20
21
|
export declare const createDefaultLoader: ({ id, registerServer, registerClient, alwaysRegisterServer, alwaysRegisterClient, }: CreateDefaultLoaderOptions) => (url: string) => Promise<any>;
|
|
21
|
-
export declare
|
|
22
|
-
format: string;
|
|
23
|
-
source: string;
|
|
24
|
-
}>;
|
|
22
|
+
export declare function createPageLoader({ manifest, root, outDir, moduleBase, alwaysRegisterServer, alwaysRegisterClient, registerServer, registerClient, }: CreatePageLoaderOptions): (id: string) => Promise<any>;
|
|
25
23
|
export {};
|
|
26
24
|
//# sourceMappingURL=createPageLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createPageLoader.d.ts","sourceRoot":"","sources":["../../../plugin/loader/createPageLoader.ts"],"names":[],"mappings":"AAaA,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,mBAAmB,wFAM7B,0BAA0B,WAqBR,MAAM,iBAM1B,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,UAAU,EACV,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,cAAc,GACf,EAAE,uBAAuB,QACS,MAAM,kBA+BxC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { resolve as resolvePath } from "node:path";
|
|
2
|
+
import { load
|
|
3
|
+
// @ts-ignore
|
|
4
|
+
} from "react-server-dom-esm/node-loader";
|
|
5
|
+
import { registerClientReference, registerServerReference,
|
|
6
|
+
// @ts-ignore
|
|
7
|
+
} from "react-server-dom-esm/server.node";
|
|
8
|
+
export const createDefaultLoader = ({ id, registerServer, registerClient, alwaysRegisterServer = false, alwaysRegisterClient = false, }) => {
|
|
9
|
+
const mapper = ([key, value]) => {
|
|
10
|
+
try {
|
|
11
|
+
if (registerClient?.includes(key) ||
|
|
12
|
+
(alwaysRegisterClient && typeof value === "function")) {
|
|
13
|
+
return [key, registerClientReference(value, id, key)];
|
|
14
|
+
}
|
|
15
|
+
if (registerServer?.includes(key) ||
|
|
16
|
+
(alwaysRegisterServer && typeof value === "function")) {
|
|
17
|
+
return [key, registerServerReference(value, id, key)];
|
|
18
|
+
}
|
|
19
|
+
return [key, value];
|
|
20
|
+
}
|
|
21
|
+
catch (e) {
|
|
22
|
+
console.error("[RSC] Error registering reference:", key, value, e);
|
|
23
|
+
return [key, value];
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
return async (url) => {
|
|
27
|
+
console.log("[createDefaultLoader] Loading:", url);
|
|
28
|
+
const result = await import(url);
|
|
29
|
+
console.log("[createDefaultLoader] Result:", result);
|
|
30
|
+
return Object.fromEntries(Object.entries(result).map(mapper));
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
export function createPageLoader({ manifest, root, outDir, moduleBase, alwaysRegisterServer, alwaysRegisterClient, registerServer, registerClient, }) {
|
|
34
|
+
return async function loader(id) {
|
|
35
|
+
console.log("[pageLoader] Loading:", {
|
|
36
|
+
id,
|
|
37
|
+
manifest: Object.keys(manifest),
|
|
38
|
+
outDir,
|
|
39
|
+
moduleBase
|
|
40
|
+
});
|
|
41
|
+
console.log("[pageLoader] Manifest:", manifest);
|
|
42
|
+
// Try to find the entry directly or by source file
|
|
43
|
+
const manifestEntry = manifest[id] ||
|
|
44
|
+
Object.values(manifest).find(entry => entry.src === id);
|
|
45
|
+
if (!manifestEntry) {
|
|
46
|
+
throw new Error(`Could not find manifest entry for ${id} from ${root}. Available entries: ${Object.keys(manifest).join(', ')}`);
|
|
47
|
+
}
|
|
48
|
+
const loaderResult = await load(resolvePath(root, outDir, manifestEntry.file), { format: "module" }, createDefaultLoader({
|
|
49
|
+
id,
|
|
50
|
+
registerServer,
|
|
51
|
+
registerClient,
|
|
52
|
+
alwaysRegisterServer,
|
|
53
|
+
alwaysRegisterClient,
|
|
54
|
+
}));
|
|
55
|
+
return loaderResult;
|
|
56
|
+
};
|
|
57
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../plugin/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGrC,MAAM,WAAW,WAAW;IAC1B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,QAAQ,GACjB,MAAM,GAAG,SAAS,CAapB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { normalizePath } from "vite";
|
|
2
|
+
export function resolveManifestEntry(id, manifest) {
|
|
3
|
+
// Try exact match
|
|
4
|
+
if (manifest[id]) {
|
|
5
|
+
return manifest[id].file;
|
|
6
|
+
}
|
|
7
|
+
// Try normalized path
|
|
8
|
+
const normalizedId = normalizePath(id);
|
|
9
|
+
if (manifest[normalizedId]) {
|
|
10
|
+
return manifest[normalizedId].file;
|
|
11
|
+
}
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-graph.d.ts","sourceRoot":"","sources":["../../plugin/module-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,MAAM,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAClB,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAClB;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa;0BAEpB,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;EAqC/D"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export function getModuleGraph(server) {
|
|
2
|
+
return {
|
|
3
|
+
async getModuleWithDeps(id) {
|
|
4
|
+
// Load module first to ensure it's in the module graph
|
|
5
|
+
await server.ssrLoadModule(id);
|
|
6
|
+
const resolvedId = await server.pluginContainer.resolveId(id, undefined, {
|
|
7
|
+
// Add ssr and react-server conditions
|
|
8
|
+
ssr: true,
|
|
9
|
+
});
|
|
10
|
+
if (!resolvedId)
|
|
11
|
+
throw new Error(`Module not found: ${id}`);
|
|
12
|
+
const moduleNode = server.moduleGraph.getModuleById(resolvedId.id);
|
|
13
|
+
if (!moduleNode)
|
|
14
|
+
throw new Error(`Module node not found: ${id}`);
|
|
15
|
+
const deps = new Set();
|
|
16
|
+
const css = new Set();
|
|
17
|
+
// Recursively collect dependencies
|
|
18
|
+
const collectDeps = (node) => {
|
|
19
|
+
// Track CSS imports
|
|
20
|
+
if (node.id?.endsWith(".css") && node.id) {
|
|
21
|
+
css.add(node.id);
|
|
22
|
+
}
|
|
23
|
+
// Track all dependencies
|
|
24
|
+
for (const dep of node.importedModules) {
|
|
25
|
+
if (dep.id && !deps.has(dep.id)) {
|
|
26
|
+
deps.add(dep.id);
|
|
27
|
+
collectDeps(dep);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
collectDeps(moduleNode);
|
|
32
|
+
return { id: moduleNode.id ?? "", deps, css };
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import "./assertServerCondition.js";
|
|
2
|
+
export { reactServerPlugin } from "./react-server/plugin.js";
|
|
3
|
+
export { reactClientPlugin } from "./react-client/plugin.js";
|
|
4
|
+
export { reactTransformPlugin } from "./transformer/plugin.js";
|
|
5
|
+
export { reactPreservePlugin } from "./preserver/plugin.js";
|
|
6
|
+
export { vitePluginReactServer } from "./react-server/index.js";
|
|
7
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../plugin/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import "./assertServerCondition.js";
|
|
2
|
+
export { reactServerPlugin } from "./react-server/plugin.js";
|
|
3
|
+
export { reactClientPlugin } from "./react-client/plugin.js";
|
|
4
|
+
export { reactTransformPlugin } from "./transformer/plugin.js";
|
|
5
|
+
export { reactPreservePlugin } from "./preserver/plugin.js";
|
|
6
|
+
export { vitePluginReactServer } from "./react-server/index.js";
|
|
7
|
+
// the main plugin is version is the server version, if you want the client version, use the `vite-plugin-react-server/client` import
|
|
8
|
+
// this is because the workflow assumes main thread = react server condition
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../plugin/preserver/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { reactPreservePlugin } from "./plugin.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../plugin/preserver/plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAIvD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,CAsGzE"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vite-plugin-react-server
|
|
3
|
+
* Copyright (c) Nico Brinkkemper
|
|
4
|
+
* MIT License
|
|
5
|
+
*/
|
|
6
|
+
import MagicString from '../../node_modules/magic-string/dist/magic-string.es.js';
|
|
7
|
+
|
|
8
|
+
const REACT_DIRECTIVES = /* @__PURE__ */ new Set(["use client", "use server"]);
|
|
9
|
+
function reactPreservePlugin(_options) {
|
|
10
|
+
const meta = {};
|
|
11
|
+
return {
|
|
12
|
+
name: "vite-plugin-react-server:preserve-directives",
|
|
13
|
+
enforce: "post",
|
|
14
|
+
transform: {
|
|
15
|
+
order: "post",
|
|
16
|
+
// Ensure this runs last in transform phase
|
|
17
|
+
handler(code, id) {
|
|
18
|
+
if (id.includes("node_modules") || id.includes("vite/dist")) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
let ast;
|
|
22
|
+
try {
|
|
23
|
+
ast = this.parse(code, {
|
|
24
|
+
allowReturnOutsideFunction: true,
|
|
25
|
+
jsx: true
|
|
26
|
+
});
|
|
27
|
+
} catch (e) {
|
|
28
|
+
console.warn(`[PreservePlugin] Failed to parse ${id}`, e);
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
if (ast.type !== "Program") {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
const magicString = new MagicString(code);
|
|
35
|
+
let hasChanged = false;
|
|
36
|
+
for (const node of ast.body) {
|
|
37
|
+
if (node.type !== "ExpressionStatement") {
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
let directive = null;
|
|
41
|
+
if ("directive" in node) {
|
|
42
|
+
directive = node.directive;
|
|
43
|
+
} else if (node.expression.type === "Literal" && typeof node.expression.value === "string" && REACT_DIRECTIVES.has(node.expression.value)) {
|
|
44
|
+
directive = node.expression.value;
|
|
45
|
+
}
|
|
46
|
+
if (directive) {
|
|
47
|
+
meta[id] ||= /* @__PURE__ */ new Set();
|
|
48
|
+
meta[id].add(directive);
|
|
49
|
+
if ("start" in node && "end" in node) {
|
|
50
|
+
magicString.remove(node.start, node.end);
|
|
51
|
+
hasChanged = true;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
if (!hasChanged) {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
code: magicString.toString(),
|
|
60
|
+
map: magicString.generateMap({ hires: true }),
|
|
61
|
+
meta: {
|
|
62
|
+
directives: Array.from(meta[id] || [])
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
renderChunk(code, chunk) {
|
|
68
|
+
const chunkDirectives = /* @__PURE__ */ new Set();
|
|
69
|
+
for (const id of chunk.moduleIds) {
|
|
70
|
+
if (meta[id]) {
|
|
71
|
+
meta[id].forEach((d) => chunkDirectives.add(d));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (chunkDirectives.size) {
|
|
75
|
+
const magicString = new MagicString(code);
|
|
76
|
+
magicString.prepend(
|
|
77
|
+
Array.from(chunkDirectives).map((d) => `"${d}";`).join("\n") + "\n"
|
|
78
|
+
);
|
|
79
|
+
return {
|
|
80
|
+
code: magicString.toString(),
|
|
81
|
+
map: magicString.generateMap({ hires: true })
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export { reactPreservePlugin };
|
|
90
|
+
//# sourceMappingURL=plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sources":["../../../plugin/preserver/plugin.ts"],"sourcesContent":["import type { Node } from \"estree\";\nimport type { Plugin } from \"vite\";\nimport MagicString from \"magic-string\";\nimport type { StreamPluginOptions } from \"../types.js\";\n\nconst REACT_DIRECTIVES = new Set([\"use client\", \"use server\"]);\n\nexport function reactPreservePlugin(_options: StreamPluginOptions): Plugin {\n const meta: Record<string, Set<string>> = {};\n\n return {\n name: \"vite-plugin-react-server:preserve-directives\",\n enforce: 'post',\n\n transform: {\n order: 'post', // Ensure this runs last in transform phase\n handler(code: string, id: string) {\n // Skip node_modules and vite files\n if (id.includes('node_modules') || id.includes('vite/dist')) {\n return null;\n }\n\n let ast: Node;\n try {\n ast = this.parse(code, {\n allowReturnOutsideFunction: true,\n jsx: true\n }) as Node;\n } catch (e) {\n console.warn(`[PreservePlugin] Failed to parse ${id}`, e);\n return null;\n }\n\n if (ast.type !== 'Program') {\n return null;\n }\n\n const magicString = new MagicString(code);\n let hasChanged = false;\n\n // Only look at top-level directives\n for (const node of ast.body) {\n if (node.type !== 'ExpressionStatement') {\n break;\n }\n\n let directive: string | null = null;\n if ('directive' in node) {\n directive = node.directive;\n } else if (\n node.expression.type === 'Literal' && \n typeof node.expression.value === 'string' &&\n REACT_DIRECTIVES.has(node.expression.value)\n ) {\n directive = node.expression.value;\n }\n\n if (directive) {\n meta[id] ||= new Set<string>();\n meta[id].add(directive);\n \n if ('start' in node && 'end' in node) {\n magicString.remove(node.start as number, node.end as number);\n hasChanged = true;\n }\n }\n }\n\n if (!hasChanged) {\n return null;\n }\n\n return {\n code: magicString.toString(),\n map: magicString.generateMap({ hires: true }),\n meta: {\n directives: Array.from(meta[id] || [])\n }\n };\n }\n },\n\n renderChunk(code, chunk) {\n const chunkDirectives = new Set<string>();\n \n // Collect directives from all modules in chunk\n for (const id of chunk.moduleIds) {\n if (meta[id]) {\n meta[id].forEach(d => chunkDirectives.add(d));\n }\n }\n\n if (chunkDirectives.size) {\n const magicString = new MagicString(code);\n magicString.prepend(\n Array.from(chunkDirectives)\n .map(d => `\"${d}\";`)\n .join('\\n') + '\\n'\n );\n\n return {\n code: magicString.toString(),\n map: magicString.generateMap({ hires: true })\n };\n }\n\n return null;\n }\n };\n}\n"],"names":[],"mappings":";;;;;;;AAKA,MAAM,mCAAuB,IAAA,GAAA,CAAI,CAAC,YAAA,EAAc,YAAY,CAAC,CAAA;AAEtD,SAAS,oBAAoB,QAAuC,EAAA;AACzE,EAAA,MAAM,OAAoC,EAAC;AAE3C,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,8CAAA;AAAA,IACN,OAAS,EAAA,MAAA;AAAA,IAET,SAAW,EAAA;AAAA,MACT,KAAO,EAAA,MAAA;AAAA;AAAA,MACP,OAAA,CAAQ,MAAc,EAAY,EAAA;AAEhC,QAAA,IAAI,GAAG,QAAS,CAAA,cAAc,KAAK,EAAG,CAAA,QAAA,CAAS,WAAW,CAAG,EAAA;AAC3D,UAAO,OAAA,IAAA;AAAA;AAGT,QAAI,IAAA,GAAA;AACJ,QAAI,IAAA;AACF,UAAM,GAAA,GAAA,IAAA,CAAK,MAAM,IAAM,EAAA;AAAA,YACrB,0BAA4B,EAAA,IAAA;AAAA,YAC5B,GAAK,EAAA;AAAA,WACN,CAAA;AAAA,iBACM,CAAG,EAAA;AACV,UAAA,OAAA,CAAQ,IAAK,CAAA,CAAA,iCAAA,EAAoC,EAAE,CAAA,CAAA,EAAI,CAAC,CAAA;AACxD,UAAO,OAAA,IAAA;AAAA;AAGT,QAAI,IAAA,GAAA,CAAI,SAAS,SAAW,EAAA;AAC1B,UAAO,OAAA,IAAA;AAAA;AAGT,QAAM,MAAA,WAAA,GAAc,IAAI,WAAA,CAAY,IAAI,CAAA;AACxC,QAAA,IAAI,UAAa,GAAA,KAAA;AAGjB,QAAW,KAAA,MAAA,IAAA,IAAQ,IAAI,IAAM,EAAA;AAC3B,UAAI,IAAA,IAAA,CAAK,SAAS,qBAAuB,EAAA;AACvC,YAAA;AAAA;AAGF,UAAA,IAAI,SAA2B,GAAA,IAAA;AAC/B,UAAA,IAAI,eAAe,IAAM,EAAA;AACvB,YAAA,SAAA,GAAY,IAAK,CAAA,SAAA;AAAA,WAEjB,MAAA,IAAA,IAAA,CAAK,UAAW,CAAA,IAAA,KAAS,aACzB,OAAO,IAAA,CAAK,UAAW,CAAA,KAAA,KAAU,YACjC,gBAAiB,CAAA,GAAA,CAAI,IAAK,CAAA,UAAA,CAAW,KAAK,CAC1C,EAAA;AACA,YAAA,SAAA,GAAY,KAAK,UAAW,CAAA,KAAA;AAAA;AAG9B,UAAA,IAAI,SAAW,EAAA;AACb,YAAK,IAAA,CAAA,EAAE,CAAM,qBAAA,IAAI,GAAY,EAAA;AAC7B,YAAK,IAAA,CAAA,EAAE,CAAE,CAAA,GAAA,CAAI,SAAS,CAAA;AAEtB,YAAI,IAAA,OAAA,IAAW,IAAQ,IAAA,KAAA,IAAS,IAAM,EAAA;AACpC,cAAA,WAAA,CAAY,MAAO,CAAA,IAAA,CAAK,KAAiB,EAAA,IAAA,CAAK,GAAa,CAAA;AAC3D,cAAa,UAAA,GAAA,IAAA;AAAA;AACf;AACF;AAGF,QAAA,IAAI,CAAC,UAAY,EAAA;AACf,UAAO,OAAA,IAAA;AAAA;AAGT,QAAO,OAAA;AAAA,UACL,IAAA,EAAM,YAAY,QAAS,EAAA;AAAA,UAC3B,KAAK,WAAY,CAAA,WAAA,CAAY,EAAE,KAAA,EAAO,MAAM,CAAA;AAAA,UAC5C,IAAM,EAAA;AAAA,YACJ,YAAY,KAAM,CAAA,IAAA,CAAK,KAAK,EAAE,CAAA,IAAK,EAAE;AAAA;AACvC,SACF;AAAA;AACF,KACF;AAAA,IAEA,WAAA,CAAY,MAAM,KAAO,EAAA;AACvB,MAAM,MAAA,eAAA,uBAAsB,GAAY,EAAA;AAGxC,MAAW,KAAA,MAAA,EAAA,IAAM,MAAM,SAAW,EAAA;AAChC,QAAI,IAAA,IAAA,CAAK,EAAE,CAAG,EAAA;AACZ,UAAA,IAAA,CAAK,EAAE,CAAE,CAAA,OAAA,CAAQ,OAAK,eAAgB,CAAA,GAAA,CAAI,CAAC,CAAC,CAAA;AAAA;AAC9C;AAGF,MAAA,IAAI,gBAAgB,IAAM,EAAA;AACxB,QAAM,MAAA,WAAA,GAAc,IAAI,WAAA,CAAY,IAAI,CAAA;AACxC,QAAY,WAAA,CAAA,OAAA;AAAA,UACV,KAAM,CAAA,IAAA,CAAK,eAAe,CAAA,CACvB,GAAI,CAAA,CAAA,CAAA,KAAK,CAAI,CAAA,EAAA,CAAC,CAAI,EAAA,CAAA,CAAA,CAClB,IAAK,CAAA,IAAI,CAAI,GAAA;AAAA,SAClB;AAEA,QAAO,OAAA;AAAA,UACL,IAAA,EAAM,YAAY,QAAS,EAAA;AAAA,UAC3B,KAAK,WAAY,CAAA,WAAA,CAAY,EAAE,KAAA,EAAO,MAAM;AAAA,SAC9C;AAAA;AAGF,MAAO,OAAA,IAAA;AAAA;AACT,GACF;AACF;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../plugin/react-client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { reactClientPlugin } from "./plugin.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../plugin/react-client/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAc,MAAM,MAAM,CAAC;AAE7D,OAAO,KAAK,EAAuB,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAM5E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,UAAU,CAwB1E"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vite-plugin-react-server
|
|
3
|
+
* Copyright (c) Nico Brinkkemper
|
|
4
|
+
* MIT License
|
|
5
|
+
*/
|
|
6
|
+
import { resolveOptions } from '../config/resolveOptions.js';
|
|
7
|
+
import { resolveUserConfig } from '../config/resolveUserConfig.js';
|
|
8
|
+
|
|
9
|
+
let userOptions;
|
|
10
|
+
function reactClientPlugin(options) {
|
|
11
|
+
const resolvedOptions = resolveOptions(options);
|
|
12
|
+
if (resolvedOptions.type === "error") {
|
|
13
|
+
throw resolvedOptions.error;
|
|
14
|
+
}
|
|
15
|
+
userOptions = resolvedOptions.userOptions;
|
|
16
|
+
return {
|
|
17
|
+
name: "vite:react-stream-client",
|
|
18
|
+
async config(config) {
|
|
19
|
+
const resolvedConfig = resolveUserConfig({
|
|
20
|
+
condition: "react-client",
|
|
21
|
+
config,
|
|
22
|
+
configEnv: { command: "build"},
|
|
23
|
+
userOptions
|
|
24
|
+
});
|
|
25
|
+
if (resolvedConfig.type === "error") {
|
|
26
|
+
throw resolvedConfig.error;
|
|
27
|
+
}
|
|
28
|
+
return resolvedConfig.userConfig;
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export { reactClientPlugin };
|
|
34
|
+
//# sourceMappingURL=plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sources":["../../../plugin/react-client/plugin.ts"],"sourcesContent":["import type { Plugin as VitePlugin, UserConfig } from \"vite\";\n\nimport type { ResolvedUserOptions, StreamPluginOptions } from \"../types.js\";\nimport { resolveOptions } from \"../config/resolveOptions.js\";\nimport { resolveUserConfig } from \"../config/resolveUserConfig.js\";\n\nlet userOptions: ResolvedUserOptions;\n\nexport function reactClientPlugin(options: StreamPluginOptions): VitePlugin {\n const resolvedOptions = resolveOptions(options);\n if (resolvedOptions.type === \"error\") {\n throw resolvedOptions.error;\n }\n userOptions = resolvedOptions.userOptions;\n\n return {\n name: \"vite:react-stream-client\",\n async config(config): Promise<UserConfig> {\n const resolvedConfig = resolveUserConfig({\n condition: \"react-client\",\n config,\n configEnv: { command: \"build\", mode: \"production\" },\n userOptions,\n });\n\n if (resolvedConfig.type === \"error\") {\n throw resolvedConfig.error;\n }\n\n return resolvedConfig.userConfig;\n }\n };\n}\n"],"names":[],"mappings":";;;;;;;;AAMA,IAAI,WAAA;AAEG,SAAS,kBAAkB,OAA0C,EAAA;AAC1E,EAAM,MAAA,eAAA,GAAkB,eAAe,OAAO,CAAA;AAC9C,EAAI,IAAA,eAAA,CAAgB,SAAS,OAAS,EAAA;AACpC,IAAA,MAAM,eAAgB,CAAA,KAAA;AAAA;AAExB,EAAA,WAAA,GAAc,eAAgB,CAAA,WAAA;AAE9B,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,0BAAA;AAAA,IACN,MAAM,OAAO,MAA6B,EAAA;AACxC,MAAA,MAAM,iBAAiB,iBAAkB,CAAA;AAAA,QACvC,SAAW,EAAA,cAAA;AAAA,QACX,MAAA;AAAA,QACA,SAAW,EAAA,EAAE,OAAS,EAAA,OAA4B,CAAA;AAAA,QAClD;AAAA,OACD,CAAA;AAED,MAAI,IAAA,cAAA,CAAe,SAAS,OAAS,EAAA;AACnC,QAAA,MAAM,cAAe,CAAA,KAAA;AAAA;AAGvB,MAAA,OAAO,cAAe,CAAA,UAAA;AAAA;AACxB,GACF;AACF;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createDevMiddleware.d.ts","sourceRoot":"","sources":["../../../plugin/react-server/createDevMiddleware.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAG5E,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CACzC,IAAI,CACF,mBAAmB,EACnB,YAAY,GAAG,gBAAgB,GAAG,eAAe,GAAG,aAAa,CAClE,CACF,GACC,IAAI,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,gBAAgB,GAAG,iBAAiB,CAAC,CAAC;AAExG;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,oBAAoB,GAC5B,cAAc,CAuEhB"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { IncomingMessage, ServerResponse } from "http";
|
|
2
|
+
import {} from "../types.js";
|
|
3
|
+
import { createHandler } from "./createHandler.js";
|
|
4
|
+
/**
|
|
5
|
+
* Creates a request handler for development
|
|
6
|
+
*/
|
|
7
|
+
export function createDevMiddleware(server, options) {
|
|
8
|
+
// Add HMR support
|
|
9
|
+
const hmr = server.hot;
|
|
10
|
+
hmr?.on('vite:beforeUpdate', () => {
|
|
11
|
+
// Clear module cache before updates
|
|
12
|
+
server.moduleGraph.invalidateAll();
|
|
13
|
+
});
|
|
14
|
+
return async (req, res, next) => {
|
|
15
|
+
// Skip non-page requests
|
|
16
|
+
if (!req.url ||
|
|
17
|
+
(req.url.includes(".") && !req.url.endsWith("/index.rsc"))) {
|
|
18
|
+
return next();
|
|
19
|
+
}
|
|
20
|
+
const url = req.url.endsWith("/index.rsc")
|
|
21
|
+
? req.url.replace("/index.rsc", "/")
|
|
22
|
+
: req.url;
|
|
23
|
+
try {
|
|
24
|
+
console.log("[stream] Handling RSC stream");
|
|
25
|
+
const result = await createHandler(url, options, {
|
|
26
|
+
loader: (id) => {
|
|
27
|
+
const mod = server.ssrLoadModule(id);
|
|
28
|
+
if (!mod) {
|
|
29
|
+
throw new Error(`[RSC] Module not found: ${id}`);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
console.log('[RSC] Loaded module:', id);
|
|
33
|
+
}
|
|
34
|
+
return mod;
|
|
35
|
+
},
|
|
36
|
+
moduleGraph: server.moduleGraph,
|
|
37
|
+
});
|
|
38
|
+
if (result.type === "error") {
|
|
39
|
+
if (result.error.message?.includes("module runner has been closed")) {
|
|
40
|
+
console.log("[RSC] Module runner closed, returning 503");
|
|
41
|
+
res.writeHead(503, { "Content-Type": "text/x-component" });
|
|
42
|
+
res.end('{"error":"Server restarting..."}');
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
console.error("[RSC] Stream error:", result.error);
|
|
46
|
+
res.writeHead(500, { "Content-Type": "text/x-component" });
|
|
47
|
+
res.end('{"error":"Internal Server Error"}');
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (result.type !== "success") {
|
|
51
|
+
res.end();
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
res.setHeader("Content-Type", "text/x-component");
|
|
55
|
+
if (result.stream)
|
|
56
|
+
result.stream.pipe(res);
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
if (error.message?.includes("module runner has been closed")) {
|
|
60
|
+
console.log("[RSC] Module runner closed, returning 503");
|
|
61
|
+
res.writeHead(503, { "Content-Type": "text/x-component" });
|
|
62
|
+
res.end('{"error":"Server restarting..."}');
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
next(error);
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
}
|