vite-plugin-react-server 1.1.20 → 1.2.0-alpha.1
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 +95 -396
- package/dist/_virtual/dynamic-import-helper.js +1 -1
- package/dist/client.d.ts +2 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +6 -2
- package/dist/index.js +1 -1
- package/dist/package.json +58 -25
- package/dist/plugin/components/{css-collector-elements.d.ts → css.d.ts} +2 -2
- package/dist/plugin/components/css.d.ts.map +1 -0
- package/dist/plugin/components/css.js +33 -0
- package/dist/plugin/components/html.d.ts +1 -1
- package/dist/plugin/components/html.d.ts.map +1 -1
- package/dist/plugin/components/html.js +5 -5
- package/dist/plugin/components/index.d.ts +3 -3
- package/dist/plugin/components/index.d.ts.map +1 -1
- package/dist/plugin/components/index.js +9 -3
- package/dist/plugin/components/root.d.ts +7 -0
- package/dist/plugin/components/root.d.ts.map +1 -0
- package/dist/plugin/components/root.js +18 -0
- package/dist/plugin/config/autoDiscover/createGlobAutoDiscover.js +1 -1
- package/dist/plugin/config/autoDiscover/customWorkerFiles.js +1 -1
- package/dist/plugin/config/autoDiscover/pageAndPropFiles.js +1 -1
- package/dist/plugin/config/autoDiscover/resolveAutoDiscover.d.ts +5 -4
- package/dist/plugin/config/autoDiscover/resolveAutoDiscover.d.ts.map +1 -1
- package/dist/plugin/config/autoDiscover/resolveAutoDiscover.js +26 -7
- package/dist/plugin/config/autoDiscover/resolveBuildPages.d.ts +25 -2
- package/dist/plugin/config/autoDiscover/resolveBuildPages.d.ts.map +1 -1
- package/dist/plugin/config/autoDiscover/resolveBuildPages.js +84 -5
- package/dist/plugin/config/createModuleID.d.ts +3 -6
- package/dist/plugin/config/createModuleID.d.ts.map +1 -1
- package/dist/plugin/config/createModuleID.js +42 -32
- package/dist/plugin/config/defaults.d.ts +294 -121
- package/dist/plugin/config/defaults.d.ts.map +1 -1
- package/dist/plugin/config/defaults.js +156 -89
- package/dist/plugin/config/extMap.d.ts +6 -2
- package/dist/plugin/config/extMap.d.ts.map +1 -1
- package/dist/plugin/config/extMap.js +38 -48
- package/dist/plugin/config/flightBindings.d.ts +4 -0
- package/dist/plugin/config/flightBindings.d.ts.map +1 -0
- package/dist/plugin/config/flightBindings.js +215 -0
- package/dist/plugin/config/getCondition.d.ts +2 -0
- package/dist/plugin/config/getCondition.d.ts.map +1 -1
- package/dist/plugin/config/getCondition.js +4 -2
- package/dist/plugin/config/getPaths.js +1 -1
- package/dist/plugin/config/index.d.ts +17 -4
- package/dist/plugin/config/index.d.ts.map +1 -1
- package/dist/plugin/config/index.js +29 -7
- package/dist/plugin/config/interpolatePattern.d.ts +13 -0
- package/dist/plugin/config/interpolatePattern.d.ts.map +1 -0
- package/dist/plugin/config/interpolatePattern.js +13 -0
- package/dist/plugin/config/mimeTypes.js +1 -1
- package/dist/plugin/config/parsePattern.d.ts +25 -0
- package/dist/plugin/config/parsePattern.d.ts.map +1 -0
- package/dist/plugin/config/parsePattern.js +30 -0
- package/dist/plugin/config/resolveAllowedDirectives.d.ts +26 -0
- package/dist/plugin/config/resolveAllowedDirectives.d.ts.map +1 -0
- package/dist/plugin/config/resolveAllowedDirectives.js +35 -0
- package/dist/plugin/config/resolveDirectiveMatcher.d.ts +25 -0
- package/dist/plugin/config/resolveDirectiveMatcher.d.ts.map +1 -0
- package/dist/plugin/config/resolveDirectiveMatcher.js +33 -0
- package/dist/plugin/config/resolveEnv.d.ts +1 -1
- package/dist/plugin/config/resolveEnv.d.ts.map +1 -1
- package/dist/plugin/config/resolveEnv.js +45 -28
- package/dist/plugin/config/resolveOptions.d.ts +13 -3
- package/dist/plugin/config/resolveOptions.d.ts.map +1 -1
- package/dist/plugin/config/resolveOptions.js +230 -219
- package/dist/plugin/config/resolvePages.js +1 -1
- package/dist/plugin/config/resolvePatternWithValues.d.ts +39 -0
- package/dist/plugin/config/resolvePatternWithValues.d.ts.map +1 -0
- package/dist/plugin/config/resolvePatternWithValues.js +36 -0
- package/dist/plugin/config/resolveRegExp.d.ts +29 -0
- package/dist/plugin/config/resolveRegExp.d.ts.map +1 -0
- package/dist/plugin/config/resolveRegExp.js +39 -0
- package/dist/plugin/config/resolveUrlOption.d.ts +37 -6
- package/dist/plugin/config/resolveUrlOption.d.ts.map +1 -1
- package/dist/plugin/config/resolveUrlOption.js +42 -12
- package/dist/plugin/config/resolveUserConfig.d.ts +5 -4
- package/dist/plugin/config/resolveUserConfig.d.ts.map +1 -1
- package/dist/plugin/config/resolveUserConfig.js +98 -47
- package/dist/plugin/env/createConfigEnv.d.ts +7 -0
- package/dist/plugin/env/createConfigEnv.d.ts.map +1 -0
- package/dist/plugin/env/createConfigEnv.js +30 -0
- package/dist/plugin/env/getArgValue.d.ts +8 -0
- package/dist/plugin/env/getArgValue.d.ts.map +1 -0
- package/dist/plugin/env/getArgValue.js +32 -0
- package/dist/plugin/env/getEnvKey.d.ts +40 -0
- package/dist/plugin/env/getEnvKey.d.ts.map +1 -0
- package/dist/plugin/env/getEnvKey.js +24 -0
- package/dist/plugin/env/index.d.ts +3 -0
- package/dist/plugin/env/index.d.ts.map +1 -1
- package/dist/plugin/env/index.js +3 -0
- package/dist/plugin/env/plugin.d.ts +6 -0
- package/dist/plugin/env/plugin.d.ts.map +1 -1
- package/dist/plugin/env/plugin.js +69 -93
- package/dist/plugin/env/userConfigEnv.d.ts +2 -0
- package/dist/plugin/env/userConfigEnv.d.ts.map +1 -0
- package/dist/plugin/env/userConfigEnv.js +21 -0
- package/dist/plugin/error/directiveError.d.ts +13 -0
- package/dist/plugin/error/directiveError.d.ts.map +1 -0
- package/dist/plugin/error/directiveError.js +21 -0
- package/dist/plugin/error/enhanceError.d.ts +14 -0
- package/dist/plugin/error/enhanceError.d.ts.map +1 -0
- package/dist/plugin/error/enhanceError.js +24 -0
- package/dist/plugin/error/index.d.ts +4 -0
- package/dist/plugin/error/index.d.ts.map +1 -0
- package/dist/plugin/error/index.js +9 -0
- package/dist/plugin/error/logError.d.ts +3 -0
- package/dist/plugin/error/logError.d.ts.map +1 -0
- package/dist/plugin/error/logError.js +50 -0
- package/dist/plugin/error/serializeError.d.ts +7 -0
- package/dist/plugin/error/serializeError.d.ts.map +1 -0
- package/dist/plugin/error/serializeError.js +37 -0
- package/dist/plugin/error/toError.d.ts +1 -8
- package/dist/plugin/error/toError.d.ts.map +1 -1
- package/dist/plugin/error/toError.js +62 -34
- package/dist/plugin/file-preserver/plugin.js +93 -105
- package/dist/plugin/getNodeEnv.d.ts +11 -0
- package/dist/plugin/getNodeEnv.d.ts.map +1 -0
- package/dist/plugin/getNodeEnv.js +17 -0
- package/dist/plugin/helpers/cleanObject.d.ts.map +1 -1
- package/dist/plugin/helpers/cleanObject.js +2 -1
- package/dist/plugin/helpers/collectManifestCss.js +1 -1
- package/dist/plugin/helpers/collectViteModuleGraphCss.d.ts +6 -4
- package/dist/plugin/helpers/collectViteModuleGraphCss.d.ts.map +1 -1
- package/dist/plugin/helpers/collectViteModuleGraphCss.js +15 -9
- package/dist/plugin/helpers/createCssProps.d.ts +3 -4
- package/dist/plugin/helpers/createCssProps.d.ts.map +1 -1
- package/dist/plugin/helpers/createCssProps.js +16 -15
- package/dist/plugin/helpers/createEventHandler.d.ts +2 -2
- package/dist/plugin/helpers/createEventHandler.d.ts.map +1 -1
- package/dist/plugin/helpers/createEventHandler.js +1 -1
- package/dist/plugin/helpers/createHandler.d.ts +10 -8
- package/dist/plugin/helpers/createHandler.d.ts.map +1 -1
- package/dist/plugin/helpers/createHandler.js +11 -5
- package/dist/plugin/helpers/createRscStream.d.ts +18 -5
- package/dist/plugin/helpers/createRscStream.d.ts.map +1 -1
- package/dist/plugin/helpers/createRscStream.js +53 -15
- package/dist/plugin/helpers/formatMetrics.d.ts +1 -5
- package/dist/plugin/helpers/formatMetrics.d.ts.map +1 -1
- package/dist/plugin/helpers/formatMetrics.js +2 -39
- package/dist/plugin/helpers/getBundleManifest.d.ts.map +1 -1
- package/dist/plugin/helpers/getBundleManifest.js +9 -2
- package/dist/plugin/helpers/getRouteFiles.d.ts +30 -2
- package/dist/plugin/helpers/getRouteFiles.d.ts.map +1 -1
- package/dist/plugin/helpers/getRouteFiles.js +100 -8
- package/dist/plugin/helpers/handleServerAction.d.ts +8 -7
- package/dist/plugin/helpers/handleServerAction.d.ts.map +1 -1
- package/dist/plugin/helpers/handleServerAction.js +7 -3
- package/dist/plugin/helpers/hydrateUserOptions.d.ts +9 -0
- package/dist/plugin/helpers/hydrateUserOptions.d.ts.map +1 -0
- package/dist/plugin/helpers/hydrateUserOptions.js +22 -0
- package/dist/plugin/helpers/index.d.ts +2 -0
- package/dist/plugin/helpers/index.d.ts.map +1 -1
- package/dist/plugin/helpers/index.js +31 -31
- package/dist/plugin/helpers/inputNormalizer.d.ts +1 -1
- package/dist/plugin/helpers/inputNormalizer.d.ts.map +1 -1
- package/dist/plugin/helpers/inputNormalizer.js +33 -20
- package/dist/plugin/helpers/metrics.d.ts +4 -10
- package/dist/plugin/helpers/metrics.d.ts.map +1 -1
- package/dist/plugin/helpers/metrics.js +3 -59
- package/dist/plugin/helpers/moduleRefs.js +1 -1
- package/dist/plugin/helpers/moduleResolver.d.ts +24 -2
- package/dist/plugin/helpers/moduleResolver.d.ts.map +1 -1
- package/dist/plugin/helpers/moduleResolver.js +61 -22
- package/dist/plugin/helpers/requestInfo.d.ts +31 -4
- package/dist/plugin/helpers/requestInfo.d.ts.map +1 -1
- package/dist/plugin/helpers/requestInfo.js +62 -35
- package/dist/plugin/helpers/requestToRoute.d.ts +1 -1
- package/dist/plugin/helpers/requestToRoute.d.ts.map +1 -1
- package/dist/plugin/helpers/requestToRoute.js +17 -9
- package/dist/plugin/helpers/resolveComponent.d.ts +57 -0
- package/dist/plugin/helpers/resolveComponent.d.ts.map +1 -0
- package/dist/plugin/helpers/resolveComponent.js +71 -0
- package/dist/plugin/helpers/resolveComponents.d.ts +27 -0
- package/dist/plugin/helpers/resolveComponents.d.ts.map +1 -0
- package/dist/plugin/helpers/resolveComponents.js +146 -0
- package/dist/plugin/helpers/resolvePage.d.ts +15 -11
- package/dist/plugin/helpers/resolvePage.d.ts.map +1 -1
- package/dist/plugin/helpers/resolvePage.js +11 -7
- package/dist/plugin/helpers/resolvePageAndProps.d.ts +3 -10
- package/dist/plugin/helpers/resolvePageAndProps.d.ts.map +1 -1
- package/dist/plugin/helpers/resolvePageAndProps.js +28 -18
- package/dist/plugin/helpers/resolveProps.d.ts +13 -7
- package/dist/plugin/helpers/resolveProps.d.ts.map +1 -1
- package/dist/plugin/helpers/resolveProps.js +55 -25
- package/dist/plugin/helpers/resolveUserComponents.d.ts +33 -0
- package/dist/plugin/helpers/resolveUserComponents.d.ts.map +1 -0
- package/dist/plugin/helpers/resolveUserComponents.js +163 -0
- package/dist/plugin/helpers/serializeUserOptions.d.ts +7 -7
- package/dist/plugin/helpers/serializeUserOptions.d.ts.map +1 -1
- package/dist/plugin/helpers/serializeUserOptions.js +127 -42
- package/dist/plugin/helpers/stashReturnValue.d.ts +2 -1
- package/dist/plugin/helpers/stashReturnValue.d.ts.map +1 -1
- package/dist/plugin/helpers/stashReturnValue.js +6 -3
- package/dist/plugin/helpers/tryManifest.d.ts +1 -2
- package/dist/plugin/helpers/tryManifest.d.ts.map +1 -1
- package/dist/plugin/helpers/tryManifest.js +1 -1
- package/dist/plugin/loader/createDefaultLoader.d.ts +19 -8
- package/dist/plugin/loader/createDefaultLoader.d.ts.map +1 -1
- package/dist/plugin/loader/createDefaultLoader.js +69 -107
- package/dist/plugin/loader/createTransformer.d.ts +6 -0
- package/dist/plugin/loader/createTransformer.d.ts.map +1 -0
- package/dist/plugin/loader/createTransformer.js +92 -0
- package/dist/plugin/loader/{css-loader.development.d.ts → css-loader.d.ts} +6 -8
- package/dist/plugin/loader/css-loader.d.ts.map +1 -0
- package/dist/plugin/loader/css-loader.js +134 -0
- package/dist/plugin/loader/directives/addLocalExportedNames.d.ts +4 -0
- package/dist/plugin/loader/directives/addLocalExportedNames.d.ts.map +1 -0
- package/dist/plugin/loader/directives/addLocalExportedNames.js +57 -0
- package/dist/plugin/loader/directives/analyzeDirectives.d.ts +9 -0
- package/dist/plugin/loader/directives/analyzeDirectives.d.ts.map +1 -0
- package/dist/plugin/loader/directives/analyzeDirectives.js +221 -0
- package/dist/plugin/loader/directives/analyzeModule.d.ts +7 -0
- package/dist/plugin/loader/directives/analyzeModule.d.ts.map +1 -0
- package/dist/plugin/loader/directives/analyzeModule.js +48 -0
- package/dist/plugin/loader/directives/collectExports.d.ts +13 -0
- package/dist/plugin/loader/directives/collectExports.d.ts.map +1 -0
- package/dist/plugin/loader/directives/collectExports.js +116 -0
- package/dist/plugin/loader/directives/collectExportsFromModule.d.ts +6 -0
- package/dist/plugin/loader/directives/collectExportsFromModule.d.ts.map +1 -0
- package/dist/plugin/loader/directives/collectExportsFromModule.js +24 -0
- package/dist/plugin/loader/directives/findDirectiveMatches.d.ts +3 -0
- package/dist/plugin/loader/directives/findDirectiveMatches.d.ts.map +1 -0
- package/dist/plugin/loader/directives/findDirectiveMatches.js +46 -0
- package/dist/plugin/loader/directives/getExportedName.d.ts +3 -0
- package/dist/plugin/loader/directives/getExportedName.d.ts.map +1 -0
- package/dist/plugin/loader/directives/getExportedName.js +59 -0
- package/dist/plugin/loader/directives/getExports.d.ts +7 -0
- package/dist/plugin/loader/directives/getExports.d.ts.map +1 -0
- package/dist/plugin/loader/directives/getExports.js +28 -0
- package/dist/plugin/loader/directives/getFunctionBody.d.ts +3 -0
- package/dist/plugin/loader/directives/getFunctionBody.d.ts.map +1 -0
- package/dist/plugin/loader/directives/getFunctionBody.js +31 -0
- package/dist/plugin/loader/directives/getFunctionName.d.ts +10 -0
- package/dist/plugin/loader/directives/getFunctionName.d.ts.map +1 -0
- package/dist/plugin/loader/directives/getFunctionName.js +42 -0
- package/dist/plugin/loader/directives/getQualifiedName.d.ts +3 -0
- package/dist/plugin/loader/directives/getQualifiedName.d.ts.map +1 -0
- package/dist/plugin/loader/directives/getQualifiedName.js +65 -0
- package/dist/plugin/loader/directives/index.d.ts +14 -0
- package/dist/plugin/loader/directives/index.d.ts.map +1 -0
- package/dist/plugin/loader/directives/index.js +18 -0
- package/dist/plugin/loader/directives/processFunctionNode.d.ts +4 -0
- package/dist/plugin/loader/directives/processFunctionNode.d.ts.map +1 -0
- package/dist/plugin/loader/directives/processFunctionNode.js +86 -0
- package/dist/plugin/loader/directives/typeGuards.d.ts +37 -0
- package/dist/plugin/loader/directives/typeGuards.d.ts.map +1 -0
- package/dist/plugin/loader/directives/typeGuards.js +100 -0
- package/dist/plugin/loader/directives/types.d.ts +154 -0
- package/dist/plugin/loader/directives/types.d.ts.map +1 -0
- package/dist/plugin/loader/directives/utils.d.ts +14 -0
- package/dist/plugin/loader/directives/utils.d.ts.map +1 -0
- package/dist/plugin/loader/directives/utils.js +21 -0
- package/dist/plugin/loader/env-loader.d.ts +12 -0
- package/dist/plugin/loader/env-loader.d.ts.map +1 -0
- package/dist/plugin/loader/env-loader.js +88 -0
- package/dist/plugin/loader/index.d.ts +8 -1
- package/dist/plugin/loader/index.d.ts.map +1 -1
- package/dist/plugin/loader/index.js +13 -4
- package/dist/plugin/loader/parse.d.ts +12 -2
- package/dist/plugin/loader/parse.d.ts.map +1 -1
- package/dist/plugin/loader/parse.js +28 -5
- package/dist/plugin/loader/react-loader.d.ts +22 -1
- package/dist/plugin/loader/react-loader.d.ts.map +1 -1
- package/dist/plugin/loader/react-loader.js +169 -6
- package/dist/plugin/loader/removeDirectives.d.ts +5 -0
- package/dist/plugin/loader/removeDirectives.d.ts.map +1 -0
- package/dist/plugin/loader/removeDirectives.js +17 -0
- package/dist/plugin/loader/removeRanges.d.ts +5 -0
- package/dist/plugin/loader/removeRanges.d.ts.map +1 -0
- package/dist/plugin/loader/removeRanges.js +20 -0
- package/dist/plugin/loader/sourceMap.d.ts +16 -24
- package/dist/plugin/loader/sourceMap.d.ts.map +1 -1
- package/dist/plugin/loader/sourceMap.js +125 -97
- package/dist/plugin/loader/transformClientModule.d.ts +9 -0
- package/dist/plugin/loader/transformClientModule.d.ts.map +1 -0
- package/dist/plugin/loader/transformClientModule.js +46 -0
- package/dist/plugin/loader/transformModule.d.ts +6 -0
- package/dist/plugin/loader/transformModule.d.ts.map +1 -0
- package/dist/plugin/loader/transformModule.js +37 -0
- package/dist/plugin/loader/transformModuleIfNeeded.d.ts +12 -1
- package/dist/plugin/loader/transformModuleIfNeeded.d.ts.map +1 -1
- package/dist/plugin/loader/transformModuleIfNeeded.js +9 -20
- package/dist/plugin/loader/transformNonServerEnvironment.d.ts +10 -0
- package/dist/plugin/loader/transformNonServerEnvironment.d.ts.map +1 -0
- package/dist/plugin/loader/transformNonServerEnvironment.js +72 -0
- package/dist/plugin/loader/transformServerModule.d.ts +10 -0
- package/dist/plugin/loader/transformServerModule.d.ts.map +1 -0
- package/dist/plugin/loader/transformServerModule.js +103 -0
- package/dist/plugin/loader/transformWithAcornLoose.d.ts +12 -0
- package/dist/plugin/loader/transformWithAcornLoose.d.ts.map +1 -0
- package/dist/plugin/loader/transformWithAcornLoose.js +16 -0
- package/dist/plugin/loader/types.d.ts +48 -13
- package/dist/plugin/loader/types.d.ts.map +1 -1
- package/dist/plugin/metrics/collectStreamMetrics.d.ts +9 -0
- package/dist/plugin/metrics/collectStreamMetrics.d.ts.map +1 -0
- package/dist/plugin/metrics/collectStreamMetrics.js +35 -0
- package/dist/plugin/metrics/createRenderMetrics.d.ts +3 -0
- package/dist/plugin/metrics/createRenderMetrics.d.ts.map +1 -0
- package/dist/plugin/metrics/createRenderMetrics.js +24 -0
- package/dist/plugin/metrics/createStreamMetrics.d.ts +3 -0
- package/dist/plugin/metrics/createStreamMetrics.d.ts.map +1 -0
- package/dist/plugin/metrics/createStreamMetrics.js +19 -0
- package/dist/plugin/metrics/formatMetrics.d.ts +6 -3
- package/dist/plugin/metrics/formatMetrics.d.ts.map +1 -1
- package/dist/plugin/metrics/formatMetrics.js +5 -2
- package/dist/plugin/metrics/index.d.ts +3 -1
- package/dist/plugin/metrics/index.d.ts.map +1 -1
- package/dist/plugin/metrics/index.js +9 -1
- package/dist/plugin/metrics/types.d.ts +23 -0
- package/dist/plugin/metrics/types.d.ts.map +1 -0
- package/dist/plugin/metrics/types.js +1 -0
- package/dist/plugin/plugin.client.d.ts +23 -2
- package/dist/plugin/plugin.client.d.ts.map +1 -1
- package/dist/plugin/plugin.client.js +14 -9
- package/dist/plugin/plugin.server.d.ts +13 -2
- package/dist/plugin/plugin.server.d.ts.map +1 -1
- package/dist/plugin/plugin.server.js +15 -16
- package/dist/plugin/process-env.d.ts +18 -6
- package/dist/plugin/process-env.d.ts.map +1 -1
- package/dist/plugin/process-env.js +17 -0
- package/dist/plugin/react-client/cleanupWorkerServerAction.d.ts +11 -0
- package/dist/plugin/react-client/cleanupWorkerServerAction.d.ts.map +1 -0
- package/dist/plugin/react-client/cleanupWorkerServerAction.js +18 -0
- package/dist/plugin/react-client/configureWorkerRequestHandler.d.ts +9 -9
- package/dist/plugin/react-client/configureWorkerRequestHandler.d.ts.map +1 -1
- package/dist/plugin/react-client/configureWorkerRequestHandler.js +31 -26
- package/dist/plugin/react-client/createMessageHandlers.d.ts +1 -1
- package/dist/plugin/react-client/createMessageHandlers.d.ts.map +1 -1
- package/dist/plugin/react-client/createMessageHandlers.js +15 -3
- package/dist/plugin/react-client/createWorkerStream.d.ts +12 -10
- package/dist/plugin/react-client/createWorkerStream.d.ts.map +1 -1
- package/dist/plugin/react-client/createWorkerStream.js +27 -29
- package/dist/plugin/react-client/handleWorkerRscStream.d.ts +13 -8
- package/dist/plugin/react-client/handleWorkerRscStream.d.ts.map +1 -1
- package/dist/plugin/react-client/handleWorkerRscStream.js +51 -24
- package/dist/plugin/react-client/handleWorkerServerAction.d.ts +2 -1
- package/dist/plugin/react-client/handleWorkerServerAction.d.ts.map +1 -1
- package/dist/plugin/react-client/handleWorkerServerAction.js +43 -28
- package/dist/plugin/react-client/index.d.ts +4 -1
- package/dist/plugin/react-client/index.d.ts.map +1 -1
- package/dist/plugin/react-client/index.js +10 -1
- package/dist/plugin/react-client/plugin.d.ts +5 -3
- package/dist/plugin/react-client/plugin.d.ts.map +1 -1
- package/dist/plugin/react-client/plugin.js +9 -11
- package/dist/plugin/react-client/restartWorker.d.ts +5 -4
- package/dist/plugin/react-client/restartWorker.d.ts.map +1 -1
- package/dist/plugin/react-client/restartWorker.js +14 -13
- package/dist/plugin/react-server/configureReactServer.d.ts +5 -4
- package/dist/plugin/react-server/configureReactServer.d.ts.map +1 -1
- package/dist/plugin/react-server/configureReactServer.js +106 -47
- package/dist/plugin/react-server/handleServerAction.d.ts +3 -2
- package/dist/plugin/react-server/handleServerAction.d.ts.map +1 -1
- package/dist/plugin/react-server/handleServerAction.js +14 -20
- package/dist/plugin/react-server/plugin.d.ts +3 -4
- package/dist/plugin/react-server/plugin.d.ts.map +1 -1
- package/dist/plugin/react-server/plugin.js +30 -31
- package/dist/plugin/react-static/collectHtmlWorkerContent.d.ts +8 -6
- package/dist/plugin/react-static/collectHtmlWorkerContent.d.ts.map +1 -1
- package/dist/plugin/react-static/collectHtmlWorkerContent.js +4 -4
- package/dist/plugin/react-static/collectRscContent.d.ts +8 -6
- package/dist/plugin/react-static/collectRscContent.d.ts.map +1 -1
- package/dist/plugin/react-static/collectRscContent.js +4 -4
- package/dist/plugin/react-static/configurePreviewServer.d.ts +6 -4
- package/dist/plugin/react-static/configurePreviewServer.d.ts.map +1 -1
- package/dist/plugin/react-static/configurePreviewServer.js +32 -36
- package/dist/plugin/react-static/createBuildLoader.d.ts +5 -5
- package/dist/plugin/react-static/createBuildLoader.d.ts.map +1 -1
- package/dist/plugin/react-static/createBuildLoader.js +122 -30
- package/dist/plugin/react-static/fileWriter.js +1 -1
- package/dist/plugin/react-static/plugin.d.ts +3 -4
- package/dist/plugin/react-static/plugin.d.ts.map +1 -1
- package/dist/plugin/react-static/plugin.js +62 -47
- package/dist/plugin/react-static/renderPage.d.ts +4 -2
- package/dist/plugin/react-static/renderPage.d.ts.map +1 -1
- package/dist/plugin/react-static/renderPage.js +21 -17
- package/dist/plugin/react-static/renderPages.d.ts +4 -2
- package/dist/plugin/react-static/renderPages.d.ts.map +1 -1
- package/dist/plugin/react-static/renderPages.js +7 -6
- package/dist/plugin/react-static/renderStreams.d.ts +5 -22
- package/dist/plugin/react-static/renderStreams.d.ts.map +1 -1
- package/dist/plugin/react-static/renderStreams.js +6 -6
- package/dist/plugin/react-static/rscToHtmlStream.d.ts.map +1 -1
- package/dist/plugin/react-static/rscToHtmlStream.js +1 -1
- package/dist/plugin/react-static/temporaryReferences.js +1 -1
- package/dist/plugin/react-static/types.d.ts +0 -1
- package/dist/plugin/react-static/types.d.ts.map +1 -1
- package/dist/plugin/root.js +1 -1
- package/dist/plugin/transformer/plugin.client.d.ts +29 -1
- package/dist/plugin/transformer/plugin.client.d.ts.map +1 -1
- package/dist/plugin/transformer/plugin.client.js +96 -1
- package/dist/plugin/transformer/plugin.js +1 -1
- package/dist/plugin/transformer/plugin.server.d.ts +5 -3
- package/dist/plugin/transformer/plugin.server.d.ts.map +1 -1
- package/dist/plugin/transformer/plugin.server.js +60 -69
- package/dist/plugin/types/css-tracking.d.ts +2 -2
- package/dist/plugin/types/css-tracking.d.ts.map +1 -1
- package/dist/plugin/types.d.ts +451 -192
- package/dist/plugin/types.d.ts.map +1 -1
- package/dist/plugin/types.js +2 -1
- package/dist/plugin/utils/callServer.js +1 -1
- package/dist/plugin/utils/createCallServer.d.ts +1 -1
- package/dist/plugin/utils/createCallServer.d.ts.map +1 -1
- package/dist/plugin/utils/createCallServer.js +1 -1
- package/dist/plugin/utils/createReactFetcher.d.ts +2 -3
- package/dist/plugin/utils/createReactFetcher.d.ts.map +1 -1
- package/dist/plugin/utils/createReactFetcher.js +1 -1
- package/dist/plugin/utils/env.js +1 -1
- package/dist/plugin/utils/envUrls.node.d.ts.map +1 -1
- package/dist/plugin/utils/envUrls.node.js +3 -2
- package/dist/plugin/utils/index.d.ts +1 -0
- package/dist/plugin/utils/index.d.ts.map +1 -1
- package/dist/plugin/utils/index.js +12 -5
- package/dist/plugin/utils/routeToURL.d.ts +12 -0
- package/dist/plugin/utils/routeToURL.d.ts.map +1 -0
- package/dist/plugin/utils/routeToURL.js +26 -0
- package/dist/plugin/utils/urls.d.ts.map +1 -1
- package/dist/plugin/utils/urls.js +5 -3
- package/dist/plugin/vendor/index.js +7 -1
- package/dist/plugin/vendor/vendor.client.js +1 -1
- package/dist/plugin/vendor/vendor.js +1 -1
- package/dist/plugin/vendor/vendor.server.js +1 -1
- package/dist/plugin/worker/createWorker.d.ts +31 -17
- package/dist/plugin/worker/createWorker.d.ts.map +1 -1
- package/dist/plugin/worker/createWorker.js +18 -12
- package/dist/plugin/worker/html/createHtmlWorkerRenderState.d.ts +2 -2
- package/dist/plugin/worker/html/createHtmlWorkerRenderState.d.ts.map +1 -1
- package/dist/plugin/worker/html/createHtmlWorkerRenderState.js +5 -2
- package/dist/plugin/worker/html/html-worker.development.js +3 -3
- package/dist/plugin/worker/html/html-worker.production.js +1 -1
- package/dist/plugin/worker/html/index.d.ts +1 -1
- package/dist/plugin/worker/html/index.d.ts.map +1 -1
- package/dist/plugin/worker/html/index.js +1 -1
- package/dist/plugin/worker/html/messageHandler.d.ts +1 -1
- package/dist/plugin/worker/html/messageHandler.d.ts.map +1 -1
- package/dist/plugin/worker/html/messageHandler.js +9 -11
- package/dist/plugin/worker/html/sendHtmlWorkerMessage.d.ts +3 -0
- package/dist/plugin/worker/html/sendHtmlWorkerMessage.d.ts.map +1 -0
- package/dist/plugin/worker/html/sendHtmlWorkerMessage.js +2 -0
- package/dist/plugin/worker/html/types.d.ts +20 -2
- package/dist/plugin/worker/html/types.d.ts.map +1 -1
- package/dist/plugin/worker/index.d.ts +3 -0
- package/dist/plugin/worker/index.d.ts.map +1 -0
- package/dist/plugin/worker/index.js +7 -0
- package/dist/plugin/worker/registerLoaders.js +2 -2
- package/dist/plugin/worker/rsc/handleRender.d.ts +5 -3
- package/dist/plugin/worker/rsc/handleRender.d.ts.map +1 -1
- package/dist/plugin/worker/rsc/handleRender.js +57 -38
- package/dist/plugin/worker/rsc/handlers.d.ts.map +1 -1
- package/dist/plugin/worker/rsc/handlers.js +19 -15
- package/dist/plugin/worker/rsc/index.d.ts +1 -1
- package/dist/plugin/worker/rsc/index.d.ts.map +1 -1
- package/dist/plugin/worker/rsc/index.js +1 -1
- package/dist/plugin/worker/rsc/messageHandler.d.ts +1 -1
- package/dist/plugin/worker/rsc/messageHandler.d.ts.map +1 -1
- package/dist/plugin/worker/rsc/messageHandler.js +22 -8
- package/dist/plugin/worker/rsc/rsc-worker.development.js +77 -11
- package/dist/plugin/worker/rsc/rsc-worker.production.js +37 -8
- package/dist/plugin/worker/rsc/sendRscWorkerMessage.d.ts +3 -0
- package/dist/plugin/worker/rsc/sendRscWorkerMessage.d.ts.map +1 -0
- package/dist/plugin/worker/rsc/sendRscWorkerMessage.js +11 -0
- package/dist/plugin/worker/rsc/state.js +1 -1
- package/dist/plugin/worker/rsc/types.d.ts +95 -0
- package/dist/plugin/worker/rsc/types.d.ts.map +1 -0
- package/dist/plugin/worker/rsc/types.js +1 -0
- package/dist/plugin/worker/rsc/userOptions.d.ts +1 -1
- package/dist/plugin/worker/rsc/userOptions.d.ts.map +1 -1
- package/dist/plugin/worker/rsc/userOptions.js +3 -4
- package/dist/plugin/worker/sendMessage.d.ts +3 -4
- package/dist/plugin/worker/sendMessage.d.ts.map +1 -1
- package/dist/plugin/worker/sendMessage.js +15 -5
- package/dist/plugin/worker/types.d.ts +109 -260
- package/dist/plugin/worker/types.d.ts.map +1 -1
- package/dist/server.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +59 -26
- package/plugin/components/{css-collector-elements.tsx → css.tsx} +3 -3
- package/plugin/components/html.tsx +4 -4
- package/plugin/components/index.ts +3 -3
- package/plugin/components/root.tsx +20 -0
- package/plugin/config/autoDiscover/resolveAutoDiscover.ts +173 -134
- package/plugin/config/autoDiscover/resolveBuildPages.ts +120 -7
- package/plugin/config/createModuleID.ts +60 -39
- package/plugin/config/defaults.tsx +189 -96
- package/plugin/config/extMap.ts +51 -56
- package/plugin/config/flightBindings.ts +221 -0
- package/plugin/config/getCondition.ts +6 -0
- package/plugin/config/index.ts +17 -4
- package/plugin/config/interpolatePattern.ts +19 -0
- package/plugin/config/parsePattern.ts +81 -0
- package/plugin/config/resolveAllowedDirectives.ts +59 -0
- package/plugin/config/resolveDirectiveMatcher.ts +57 -0
- package/plugin/config/resolveEnv.ts +41 -37
- package/plugin/config/resolveOptions.ts +437 -318
- package/plugin/config/resolvePatternWithValues.ts +70 -0
- package/plugin/config/resolveRegExp.ts +89 -0
- package/plugin/config/resolveUrlOption.ts +92 -20
- package/plugin/config/resolveUserConfig.ts +427 -351
- package/plugin/env/createConfigEnv.ts +40 -0
- package/plugin/env/getArgValue.ts +56 -0
- package/plugin/env/getEnvKey.ts +61 -0
- package/plugin/env/index.ts +4 -1
- package/plugin/env/plugin.ts +13 -18
- package/plugin/env/userConfigEnv.ts +22 -0
- package/plugin/error/directiveError.ts +29 -0
- package/plugin/error/enhanceError.ts +41 -0
- package/plugin/error/index.ts +3 -0
- package/plugin/error/logError.ts +48 -0
- package/plugin/error/serializeError.ts +34 -0
- package/plugin/error/toError.ts +75 -45
- package/plugin/file-preserver/plugin.ts +3 -3
- package/plugin/getNodeEnv.ts +24 -0
- package/plugin/helpers/cleanObject.ts +2 -1
- package/plugin/helpers/collectViteModuleGraphCss.ts +138 -118
- package/plugin/helpers/createCssProps.tsx +29 -30
- package/plugin/helpers/createEventHandler.ts +1 -1
- package/plugin/helpers/createHandler.ts +40 -12
- package/plugin/helpers/createRscStream.tsx +103 -36
- package/plugin/helpers/formatMetrics.ts +2 -37
- package/plugin/helpers/getBundleManifest.ts +10 -1
- package/plugin/helpers/getRouteFiles.ts +154 -9
- package/plugin/helpers/handleServerAction.ts +12 -7
- package/plugin/helpers/hydrateUserOptions.ts +23 -0
- package/plugin/helpers/index.ts +4 -0
- package/plugin/helpers/inputNormalizer.ts +44 -24
- package/plugin/helpers/metrics.ts +4 -64
- package/plugin/helpers/moduleResolver.ts +74 -19
- package/plugin/helpers/requestInfo.ts +95 -61
- package/plugin/helpers/requestToRoute.ts +38 -12
- package/plugin/helpers/resolveComponent.ts +173 -0
- package/plugin/helpers/resolveComponents.ts +202 -0
- package/plugin/helpers/resolvePage.ts +35 -29
- package/plugin/helpers/resolvePageAndProps.ts +82 -61
- package/plugin/helpers/resolveProps.ts +100 -37
- package/plugin/helpers/resolveUserComponents.ts +190 -0
- package/plugin/helpers/serializeUserOptions.ts +190 -69
- package/plugin/helpers/stashReturnValue.ts +7 -4
- package/plugin/helpers/tryManifest.ts +1 -1
- package/plugin/loader/createDefaultLoader.ts +119 -119
- package/plugin/loader/createTransformer.ts +110 -0
- package/plugin/loader/css-loader.ts +206 -0
- package/plugin/loader/directives/addLocalExportedNames.ts +78 -0
- package/plugin/loader/directives/analyzeDirectives.ts +298 -0
- package/plugin/loader/directives/analyzeModule.ts +57 -0
- package/plugin/loader/directives/collectExports.ts +181 -0
- package/plugin/loader/directives/collectExportsFromModule.ts +25 -0
- package/plugin/loader/directives/findDirectiveMatches.ts +58 -0
- package/plugin/loader/directives/getExportedName.ts +73 -0
- package/plugin/loader/directives/getExports.ts +27 -0
- package/plugin/loader/directives/getFunctionBody.ts +32 -0
- package/plugin/loader/directives/getFunctionName.ts +70 -0
- package/plugin/loader/directives/getQualifiedName.ts +76 -0
- package/plugin/loader/directives/index.ts +13 -0
- package/plugin/loader/directives/processFunctionNode.ts +97 -0
- package/plugin/loader/directives/typeGuards.ts +160 -0
- package/plugin/loader/directives/types.ts +174 -0
- package/plugin/loader/directives/utils.ts +35 -0
- package/plugin/loader/env-loader.ts +135 -0
- package/plugin/loader/index.ts +8 -6
- package/plugin/loader/parse.ts +42 -12
- package/plugin/loader/react-loader.ts +256 -4
- package/plugin/loader/removeDirectives.ts +14 -0
- package/plugin/loader/removeRanges.ts +21 -0
- package/plugin/loader/sourceMap.ts +174 -84
- package/plugin/loader/transformClientModule.ts +60 -0
- package/plugin/loader/transformModule.ts +59 -0
- package/plugin/loader/transformModuleIfNeeded.ts +40 -40
- package/plugin/loader/transformNonServerEnvironment.ts +95 -0
- package/plugin/loader/transformServerModule.ts +167 -0
- package/plugin/loader/transformWithAcornLoose.ts +27 -0
- package/plugin/loader/types.ts +58 -13
- package/plugin/metrics/collectStreamMetrics.ts +38 -0
- package/plugin/metrics/createRenderMetrics.ts +17 -0
- package/plugin/metrics/createStreamMetrics.ts +14 -0
- package/plugin/metrics/formatMetrics.ts +7 -3
- package/plugin/metrics/index.ts +3 -1
- package/plugin/metrics/types.ts +24 -0
- package/plugin/plugin.client.ts +43 -16
- package/plugin/plugin.server.ts +41 -21
- package/plugin/process-env.ts +27 -6
- package/plugin/react-client/cleanupWorkerServerAction.ts +33 -0
- package/plugin/react-client/configureWorkerRequestHandler.ts +206 -201
- package/plugin/react-client/createMessageHandlers.ts +17 -3
- package/plugin/react-client/createWorkerStream.ts +55 -51
- package/plugin/react-client/handleWorkerRscStream.ts +130 -61
- package/plugin/react-client/handleWorkerServerAction.ts +59 -37
- package/plugin/react-client/index.ts +4 -1
- package/plugin/react-client/plugin.ts +17 -18
- package/plugin/react-client/restartWorker.ts +74 -70
- package/plugin/react-server/configureReactServer.ts +204 -142
- package/plugin/react-server/handleServerAction.ts +156 -160
- package/plugin/react-server/plugin.ts +150 -157
- package/plugin/react-static/collectHtmlWorkerContent.ts +109 -102
- package/plugin/react-static/collectRscContent.ts +55 -51
- package/plugin/react-static/configurePreviewServer.ts +99 -100
- package/plugin/react-static/createBuildLoader.ts +157 -48
- package/plugin/react-static/plugin.ts +368 -357
- package/plugin/react-static/renderPage.ts +31 -24
- package/plugin/react-static/renderPages.ts +21 -14
- package/plugin/react-static/renderStreams.ts +13 -15
- package/plugin/react-static/rscToHtmlStream.ts +4 -6
- package/plugin/react-static/types.ts +0 -3
- package/plugin/transformer/README.md +82 -8
- package/plugin/transformer/plugin.client.ts +142 -0
- package/plugin/transformer/plugin.server.ts +87 -112
- package/plugin/types/css-tracking.ts +1 -1
- package/plugin/types/global.d.ts +2 -2
- package/plugin/types/react-server-dom-esm.d.ts +12 -13
- package/plugin/types.ts +684 -309
- package/plugin/utils/createCallServer.ts +5 -5
- package/plugin/utils/createReactFetcher.ts +4 -6
- package/plugin/utils/envUrls.node.ts +15 -10
- package/plugin/utils/index.ts +2 -1
- package/plugin/utils/routeToURL.ts +34 -0
- package/plugin/utils/urls.ts +10 -7
- package/plugin/worker/createWorker.ts +67 -34
- package/plugin/worker/html/README.md +10 -0
- package/plugin/worker/html/createHtmlWorkerRenderState.tsx +7 -4
- package/plugin/worker/html/html-worker.development.tsx +4 -3
- package/plugin/worker/html/index.ts +3 -1
- package/plugin/worker/html/messageHandler.tsx +10 -16
- package/plugin/worker/html/sendHtmlWorkerMessage.ts +8 -0
- package/plugin/worker/html/types.ts +67 -1
- package/plugin/worker/index.ts +2 -0
- package/plugin/worker/registerLoaders.ts +3 -3
- package/plugin/worker/rsc/README.md +203 -1
- package/plugin/worker/rsc/handleRender.ts +75 -45
- package/plugin/worker/rsc/handlers.ts +30 -22
- package/plugin/worker/rsc/index.ts +2 -0
- package/plugin/worker/rsc/messageHandler.tsx +23 -13
- package/plugin/worker/rsc/rsc-worker.development.ts +104 -17
- package/plugin/worker/rsc/rsc-worker.production.ts +57 -10
- package/plugin/worker/rsc/sendRscWorkerMessage.ts +7 -0
- package/plugin/worker/rsc/state.ts +1 -1
- package/plugin/worker/rsc/types.ts +185 -0
- package/plugin/worker/rsc/userOptions.ts +2 -3
- package/plugin/worker/sendMessage.ts +23 -14
- package/plugin/worker/types.ts +131 -386
- package/scripts/check-react-version.mjs +3 -3
- package/scripts/fix-unused-imports.mjs +77 -0
- package/tsconfig.json +1 -1
- package/dist/_virtual/dynamic-import-helper.js.map +0 -1
- package/dist/client.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/plugin/components/css-collector-elements.d.ts.map +0 -1
- package/dist/plugin/components/css-collector-elements.js +0 -33
- package/dist/plugin/components/css-collector-elements.js.map +0 -1
- package/dist/plugin/components/css-collector.d.ts +0 -7
- package/dist/plugin/components/css-collector.d.ts.map +0 -1
- package/dist/plugin/components/css-collector.js +0 -18
- package/dist/plugin/components/css-collector.js.map +0 -1
- package/dist/plugin/components/html.js.map +0 -1
- package/dist/plugin/components.js +0 -9
- package/dist/plugin/components.js.map +0 -1
- package/dist/plugin/config/autoDiscover/createGlobAutoDiscover.js.map +0 -1
- package/dist/plugin/config/autoDiscover/customWorkerFiles.js.map +0 -1
- package/dist/plugin/config/autoDiscover/pageAndPropFiles.js.map +0 -1
- package/dist/plugin/config/autoDiscover/resolveAutoDiscover.js.map +0 -1
- package/dist/plugin/config/autoDiscover/resolveBuildPages.js.map +0 -1
- package/dist/plugin/config/defaults.js.map +0 -1
- package/dist/plugin/config/extMap.js.map +0 -1
- package/dist/plugin/config/getCondition.js.map +0 -1
- package/dist/plugin/config/getPaths.js.map +0 -1
- package/dist/plugin/config/mimeTypes.js.map +0 -1
- package/dist/plugin/config/resolveAutoDiscoverMatcher.d.ts +0 -5
- package/dist/plugin/config/resolveAutoDiscoverMatcher.d.ts.map +0 -1
- package/dist/plugin/config/resolveAutoDiscoverMatcher.js +0 -25
- package/dist/plugin/config/resolveAutoDiscoverMatcher.js.map +0 -1
- package/dist/plugin/config/resolveEnv.js.map +0 -1
- package/dist/plugin/config/resolveOptions.js.map +0 -1
- package/dist/plugin/config/resolvePages.js.map +0 -1
- package/dist/plugin/config/resolveUrlOption.js.map +0 -1
- package/dist/plugin/config/resolveUserConfig.js.map +0 -1
- package/dist/plugin/config.js +0 -17
- package/dist/plugin/config.js.map +0 -1
- package/dist/plugin/env.js +0 -79
- package/dist/plugin/env.js.map +0 -1
- package/dist/plugin/error/toError.js.map +0 -1
- package/dist/plugin/file-preserver.js +0 -96
- package/dist/plugin/file-preserver.js.map +0 -1
- package/dist/plugin/helpers/cleanObject.js.map +0 -1
- package/dist/plugin/helpers/collectManifestCss.js.map +0 -1
- package/dist/plugin/helpers/collectViteModuleGraphCss.js.map +0 -1
- package/dist/plugin/helpers/createCssProps.js.map +0 -1
- package/dist/plugin/helpers/createEventHandler.js.map +0 -1
- package/dist/plugin/helpers/createHandler.js.map +0 -1
- package/dist/plugin/helpers/createRscStream.js.map +0 -1
- package/dist/plugin/helpers/formatMetrics.js.map +0 -1
- package/dist/plugin/helpers/getBundleManifest.js.map +0 -1
- package/dist/plugin/helpers/getRouteFiles.js.map +0 -1
- package/dist/plugin/helpers/handleServerAction.js.map +0 -1
- package/dist/plugin/helpers/inputNormalizer.js.map +0 -1
- package/dist/plugin/helpers/metrics.js.map +0 -1
- package/dist/plugin/helpers/moduleRefs.js.map +0 -1
- package/dist/plugin/helpers/requestInfo.js.map +0 -1
- package/dist/plugin/helpers/requestToRoute.js.map +0 -1
- package/dist/plugin/helpers/resolvePage.js.map +0 -1
- package/dist/plugin/helpers/resolvePageAndProps.js.map +0 -1
- package/dist/plugin/helpers/resolveProps.js.map +0 -1
- package/dist/plugin/helpers/serializeUserOptions.js.map +0 -1
- package/dist/plugin/helpers/sourceMap.d.ts +0 -8
- package/dist/plugin/helpers/sourceMap.d.ts.map +0 -1
- package/dist/plugin/helpers/sourceMap.js +0 -136
- package/dist/plugin/helpers/stashReturnValue.js.map +0 -1
- package/dist/plugin/helpers/tryManifest.js.map +0 -1
- package/dist/plugin/helpers.js +0 -27
- package/dist/plugin/helpers.js.map +0 -1
- package/dist/plugin/loader/css-loader.development.d.ts.map +0 -1
- package/dist/plugin/loader/css-loader.development.js +0 -76
- package/dist/plugin/loader/css-loader.development.js.map +0 -1
- package/dist/plugin/loader/css-loader.production.d.ts +0 -31
- package/dist/plugin/loader/css-loader.production.d.ts.map +0 -1
- package/dist/plugin/loader/css-loader.production.js +0 -45
- package/dist/plugin/loader/css-loader.production.js.map +0 -1
- package/dist/plugin/loader/env-loader.development.d.ts +0 -13
- package/dist/plugin/loader/env-loader.development.d.ts.map +0 -1
- package/dist/plugin/loader/env-loader.development.js +0 -68
- package/dist/plugin/loader/handleExports.d.ts +0 -40
- package/dist/plugin/loader/handleExports.d.ts.map +0 -1
- package/dist/plugin/loader/handleExports.js +0 -209
- package/dist/plugin/loader/handleExports.js.map +0 -1
- package/dist/plugin/loader/parse.js.map +0 -1
- package/dist/plugin/loader/react-loader.client.d.ts +0 -2
- package/dist/plugin/loader/react-loader.client.d.ts.map +0 -1
- package/dist/plugin/loader/react-loader.client.js +0 -2
- package/dist/plugin/loader/react-loader.js.map +0 -1
- package/dist/plugin/loader/react-loader.server.d.ts +0 -21
- package/dist/plugin/loader/react-loader.server.d.ts.map +0 -1
- package/dist/plugin/loader/react-loader.server.js +0 -131
- package/dist/plugin/loader/transformModuleIfNeeded.js.map +0 -1
- package/dist/plugin/loader/transformModuleWithPreservedFunctions.d.ts +0 -48
- package/dist/plugin/loader/transformModuleWithPreservedFunctions.d.ts.map +0 -1
- package/dist/plugin/loader/transformModuleWithPreservedFunctions.js +0 -428
- package/dist/plugin/loader/transformModuleWithPreservedFunctions.js.map +0 -1
- package/dist/plugin/metrics/formatMetrics.js.map +0 -1
- package/dist/plugin/metrics.js +0 -7
- package/dist/plugin/metrics.js.map +0 -1
- package/dist/plugin/plugin.client.js.map +0 -1
- package/dist/plugin/plugin.server.js.map +0 -1
- package/dist/plugin/preserver/index.d.ts +0 -2
- package/dist/plugin/preserver/index.d.ts.map +0 -1
- package/dist/plugin/preserver/index.js +0 -1
- package/dist/plugin/preserver/plugin.d.ts +0 -3
- package/dist/plugin/preserver/plugin.d.ts.map +0 -1
- package/dist/plugin/preserver/plugin.js +0 -130
- package/dist/plugin/preserver/plugin.js.map +0 -1
- package/dist/plugin/react-client/configureWorkerRequestHandler.js.map +0 -1
- package/dist/plugin/react-client/createMessageHandlers.js.map +0 -1
- package/dist/plugin/react-client/createWorkerStream.js.map +0 -1
- package/dist/plugin/react-client/handleWorkerRscStream.js.map +0 -1
- package/dist/plugin/react-client/handleWorkerServerAction.js.map +0 -1
- package/dist/plugin/react-client/plugin.js.map +0 -1
- package/dist/plugin/react-client/restartWorker.js.map +0 -1
- package/dist/plugin/react-server/configureReactServer.js.map +0 -1
- package/dist/plugin/react-server/handleServerAction.js.map +0 -1
- package/dist/plugin/react-server/plugin.js.map +0 -1
- package/dist/plugin/react-static/collectHtmlWorkerContent.js.map +0 -1
- package/dist/plugin/react-static/collectRscContent.js.map +0 -1
- package/dist/plugin/react-static/configurePreviewServer.js.map +0 -1
- package/dist/plugin/react-static/createBuildLoader.js.map +0 -1
- package/dist/plugin/react-static/fileWriter.js.map +0 -1
- package/dist/plugin/react-static/plugin.js.map +0 -1
- package/dist/plugin/react-static/renderPage.js.map +0 -1
- package/dist/plugin/react-static/renderPages.js.map +0 -1
- package/dist/plugin/react-static/renderStreams.js.map +0 -1
- package/dist/plugin/react-static/rscToHtmlStream.js.map +0 -1
- package/dist/plugin/react-static/streamHandler.d.ts +0 -2
- package/dist/plugin/react-static/streamHandler.d.ts.map +0 -1
- package/dist/plugin/react-static/temporaryReferences.js.map +0 -1
- package/dist/plugin/root.js.map +0 -1
- package/dist/plugin/source-map/createMappingsSerializer.d.ts +0 -2
- package/dist/plugin/source-map/createMappingsSerializer.d.ts.map +0 -1
- package/dist/plugin/source-map/createMappingsSerializer.js +0 -129
- package/dist/plugin/source-map/createMappingsSerializer.js.map +0 -1
- package/dist/plugin/source-map/readMappings.d.ts +0 -2
- package/dist/plugin/source-map/readMappings.d.ts.map +0 -1
- package/dist/plugin/source-map/readMappings.js +0 -200
- package/dist/plugin/transformer/plugin.js.map +0 -1
- package/dist/plugin/transformer/plugin.server.js.map +0 -1
- package/dist/plugin/utils/callServer.js.map +0 -1
- package/dist/plugin/utils/createCallServer.js.map +0 -1
- package/dist/plugin/utils/createReactFetcher.js.map +0 -1
- package/dist/plugin/utils/env.js.map +0 -1
- package/dist/plugin/utils/envUrls.node.js.map +0 -1
- package/dist/plugin/utils/urls.js.map +0 -1
- package/dist/plugin/utils.js +0 -11
- package/dist/plugin/utils.js.map +0 -1
- package/dist/plugin/vendor/vendor.client.js.map +0 -1
- package/dist/plugin/vendor/vendor.js.map +0 -1
- package/dist/plugin/vendor/vendor.server.js.map +0 -1
- package/dist/plugin/vendor.js +0 -7
- package/dist/plugin/vendor.js.map +0 -1
- package/dist/plugin/worker/createWorker.js.map +0 -1
- package/dist/plugin/worker/html/createHtmlWorkerRenderState.js.map +0 -1
- package/dist/plugin/worker/html/html-worker.development.js.map +0 -1
- package/dist/plugin/worker/html/html-worker.production.js.map +0 -1
- package/dist/plugin/worker/html/index.js.map +0 -1
- package/dist/plugin/worker/html/messageHandler.js.map +0 -1
- package/dist/plugin/worker/rsc/handleRender.js.map +0 -1
- package/dist/plugin/worker/rsc/handlers.js.map +0 -1
- package/dist/plugin/worker/rsc/index.js.map +0 -1
- package/dist/plugin/worker/rsc/messageHandler.js.map +0 -1
- package/dist/plugin/worker/rsc/rsc-worker.development.js.map +0 -1
- package/dist/plugin/worker/rsc/rsc-worker.production.js.map +0 -1
- package/dist/plugin/worker/rsc/state.js.map +0 -1
- package/dist/plugin/worker/rsc/userOptions.js.map +0 -1
- package/dist/plugin/worker/sendMessage.js.map +0 -1
- package/dist/server.js.map +0 -1
- package/plugin/components/css-collector.tsx +0 -20
- package/plugin/config/resolveAutoDiscoverMatcher.ts +0 -23
- package/plugin/helpers/sourceMap.ts +0 -182
- package/plugin/loader/css-loader.development.ts +0 -135
- package/plugin/loader/css-loader.production.ts +0 -84
- package/plugin/loader/env-loader.development.ts +0 -107
- package/plugin/loader/handleExports.ts +0 -309
- package/plugin/loader/react-loader.client.ts +0 -1
- package/plugin/loader/react-loader.server.ts +0 -185
- package/plugin/loader/transformModuleWithPreservedFunctions.ts +0 -593
- package/plugin/preserver/index.ts +0 -1
- package/plugin/preserver/plugin.ts +0 -178
- package/plugin/react-static/streamHandler.ts +0 -0
- package/plugin/source-map/createMappingsSerializer.ts +0 -181
- package/plugin/source-map/readMappings.ts +0 -194
- /package/dist/plugin/{react-static/streamHandler.js → loader/directives/types.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createBuildLoader.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/createBuildLoader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"createBuildLoader.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/createBuildLoader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAM3C,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE;IACxC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,WAAW,EAAE,mBAAmB,CAAC;IACjC,cAAc,EAAE,QAAQ,CAAC;IACzB,cAAc,EAAE,QAAQ,CAAC;IACzB,cAAc,EAAE,QAAQ,CAAC;CAC1B,EAAE,MAAM,EAAE,YAAY,KAAK,iBAAiB,CAAC;AAE9C;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,EAAE,mBA+Q/B,CAAA"}
|
|
@@ -7,8 +7,10 @@ import { join } from 'node:path';
|
|
|
7
7
|
import { getModuleRef } from '../helpers/moduleRefs.js';
|
|
8
8
|
import { temporaryReferences } from './temporaryReferences.js';
|
|
9
9
|
import { toError } from '../error/toError.js';
|
|
10
|
+
import { readFile, writeFile, unlink } from 'fs/promises';
|
|
11
|
+
import { existsSync } from 'fs';
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
const createBuildLoader = function _createBuildLoader({
|
|
12
14
|
userOptions,
|
|
13
15
|
serverManifest,
|
|
14
16
|
clientManifest,
|
|
@@ -19,8 +21,12 @@ async function createBuildLoader({
|
|
|
19
21
|
throw new Error("Server manifest is empty");
|
|
20
22
|
}
|
|
21
23
|
return async function buildLoader(id) {
|
|
24
|
+
if (userOptions.verbose) {
|
|
25
|
+
console.log("[buildLoader] id: ", id);
|
|
26
|
+
}
|
|
22
27
|
const [withoutQuery, query] = id.split("?", 2);
|
|
23
|
-
const [
|
|
28
|
+
const [moduleId, exportName] = withoutQuery.split("#", 2);
|
|
29
|
+
const [normalizedKey, normalizedValue] = userOptions.normalizer(moduleId);
|
|
24
30
|
const moduleRef = getModuleRef(id);
|
|
25
31
|
if (temporaryReferences?.has(moduleRef)) {
|
|
26
32
|
const mod = temporaryReferences.get(moduleRef);
|
|
@@ -38,12 +44,12 @@ async function createBuildLoader({
|
|
|
38
44
|
)?.[1];
|
|
39
45
|
if (serverChunk) {
|
|
40
46
|
if (serverChunk.type === "asset") {
|
|
41
|
-
if (userOptions.autoDiscover.jsonPattern(normalizedValue)) {
|
|
47
|
+
if (userOptions.autoDiscover.jsonPattern.test(normalizedValue)) {
|
|
42
48
|
const jsonContent = serverChunk.source;
|
|
43
49
|
if (typeof jsonContent === "string") {
|
|
44
50
|
return { default: JSON.parse(jsonContent) };
|
|
45
51
|
}
|
|
46
|
-
} else if (userOptions.autoDiscover.cssPattern(normalizedValue)) {
|
|
52
|
+
} else if (userOptions.autoDiscover.cssPattern.test(normalizedValue)) {
|
|
47
53
|
const cssContent = serverChunk.source;
|
|
48
54
|
if (typeof cssContent === "string") {
|
|
49
55
|
return { default: cssContent };
|
|
@@ -57,12 +63,12 @@ async function createBuildLoader({
|
|
|
57
63
|
console.warn("Could not find inline module for: " + normalizedValue);
|
|
58
64
|
return null;
|
|
59
65
|
}
|
|
60
|
-
const isClientComponent = userOptions.autoDiscover.
|
|
61
|
-
const isServerAction = userOptions.autoDiscover.serverFunctions(normalizedValue);
|
|
62
|
-
const isPage = userOptions.autoDiscover.pagePattern(normalizedValue);
|
|
63
|
-
const isProps = userOptions.autoDiscover.propsPattern(normalizedValue);
|
|
66
|
+
const isClientComponent = userOptions.autoDiscover.clientPattern.test(normalizedValue);
|
|
64
67
|
if (isClientComponent) {
|
|
65
68
|
const clientEntry = clientManifest[normalizedValue];
|
|
69
|
+
if (userOptions.verbose) {
|
|
70
|
+
console.log("clientEntry", clientEntry);
|
|
71
|
+
}
|
|
66
72
|
if (clientEntry) {
|
|
67
73
|
try {
|
|
68
74
|
const module = await import(join(
|
|
@@ -81,26 +87,6 @@ async function createBuildLoader({
|
|
|
81
87
|
}
|
|
82
88
|
}
|
|
83
89
|
}
|
|
84
|
-
if (isServerAction || isPage || isProps) {
|
|
85
|
-
const serverEntry = serverManifest[normalizedValue];
|
|
86
|
-
if (serverEntry) {
|
|
87
|
-
try {
|
|
88
|
-
const module = await import(join(
|
|
89
|
-
userOptions.projectRoot,
|
|
90
|
-
userOptions.build.outDir,
|
|
91
|
-
userOptions.build.server,
|
|
92
|
-
serverEntry.file
|
|
93
|
-
));
|
|
94
|
-
temporaryReferences?.set(moduleRef, module);
|
|
95
|
-
return module;
|
|
96
|
-
} catch (error) {
|
|
97
|
-
const err = toError(error);
|
|
98
|
-
console.warn("Error loading server module:", err);
|
|
99
|
-
temporaryReferences?.delete(moduleRef);
|
|
100
|
-
throw err;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
90
|
const staticEntry = staticManifest[normalizedValue];
|
|
105
91
|
if (staticEntry) {
|
|
106
92
|
try {
|
|
@@ -111,6 +97,9 @@ async function createBuildLoader({
|
|
|
111
97
|
staticEntry.file
|
|
112
98
|
));
|
|
113
99
|
temporaryReferences?.set(moduleRef, module);
|
|
100
|
+
if (exportName && !(exportName in module)) {
|
|
101
|
+
throw new Error(`Export ${exportName} not found in module ${normalizedValue}`);
|
|
102
|
+
}
|
|
114
103
|
return module;
|
|
115
104
|
} catch (error) {
|
|
116
105
|
const err = toError(error);
|
|
@@ -119,6 +108,109 @@ async function createBuildLoader({
|
|
|
119
108
|
throw err;
|
|
120
109
|
}
|
|
121
110
|
}
|
|
111
|
+
const serverEntry = serverManifest[normalizedValue];
|
|
112
|
+
if (serverEntry) {
|
|
113
|
+
try {
|
|
114
|
+
const module = await import(join(
|
|
115
|
+
userOptions.projectRoot,
|
|
116
|
+
userOptions.build.outDir,
|
|
117
|
+
userOptions.build.server,
|
|
118
|
+
serverEntry.file
|
|
119
|
+
));
|
|
120
|
+
temporaryReferences?.set(moduleRef, module);
|
|
121
|
+
if (exportName && !(exportName in module)) {
|
|
122
|
+
throw new Error(`Export ${exportName} not found in module ${normalizedValue}`);
|
|
123
|
+
}
|
|
124
|
+
return module;
|
|
125
|
+
} catch (error) {
|
|
126
|
+
const err = toError(error);
|
|
127
|
+
if (userOptions.panicThreshold === "critical_errors") {
|
|
128
|
+
console.warn("Error loading server module:", err);
|
|
129
|
+
temporaryReferences?.delete(moduleRef);
|
|
130
|
+
} else {
|
|
131
|
+
console.error("Error loading server module:", err);
|
|
132
|
+
throw err;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
const sourceFilePath = join(userOptions.projectRoot, normalizedValue);
|
|
137
|
+
if (userOptions.verbose) {
|
|
138
|
+
console.log("[buildLoader] Checking source file:", sourceFilePath, "exists:", existsSync(sourceFilePath));
|
|
139
|
+
}
|
|
140
|
+
if (existsSync(sourceFilePath)) {
|
|
141
|
+
try {
|
|
142
|
+
if (userOptions.verbose) {
|
|
143
|
+
console.log("[buildLoader] Loading source file:", sourceFilePath);
|
|
144
|
+
}
|
|
145
|
+
if (sourceFilePath.endsWith(".tsx") || sourceFilePath.endsWith(".ts") || sourceFilePath.endsWith(".mts")) {
|
|
146
|
+
const relativePath = normalizedValue.replace(/^src\//, "");
|
|
147
|
+
const staticBuiltPath = join(
|
|
148
|
+
userOptions.projectRoot,
|
|
149
|
+
userOptions.build.outDir,
|
|
150
|
+
userOptions.build.static,
|
|
151
|
+
relativePath.replace(/\.(tsx?|mts)$/, ".js")
|
|
152
|
+
);
|
|
153
|
+
const serverBuiltPath = join(
|
|
154
|
+
userOptions.projectRoot,
|
|
155
|
+
userOptions.build.outDir,
|
|
156
|
+
userOptions.build.server,
|
|
157
|
+
relativePath.replace(/\.(tsx?|mts)$/, ".js")
|
|
158
|
+
);
|
|
159
|
+
let builtModulePath = null;
|
|
160
|
+
if (existsSync(staticBuiltPath)) {
|
|
161
|
+
builtModulePath = staticBuiltPath;
|
|
162
|
+
} else if (existsSync(serverBuiltPath)) {
|
|
163
|
+
builtModulePath = serverBuiltPath;
|
|
164
|
+
}
|
|
165
|
+
if (builtModulePath) {
|
|
166
|
+
if (userOptions.verbose) {
|
|
167
|
+
console.log("[buildLoader] Found built module:", builtModulePath);
|
|
168
|
+
}
|
|
169
|
+
const module = await import(builtModulePath);
|
|
170
|
+
temporaryReferences?.set(moduleRef, module);
|
|
171
|
+
if (exportName && !(exportName in module)) {
|
|
172
|
+
throw new Error(`Export ${exportName} not found in module ${normalizedValue}`);
|
|
173
|
+
}
|
|
174
|
+
return module;
|
|
175
|
+
}
|
|
176
|
+
if (userOptions.verbose) {
|
|
177
|
+
console.log("[buildLoader] No built module found, trying to compile source file");
|
|
178
|
+
}
|
|
179
|
+
const { transformWithEsbuild } = await import('vite');
|
|
180
|
+
const sourceCode = await readFile(sourceFilePath, "utf-8");
|
|
181
|
+
const result = await transformWithEsbuild(sourceCode, sourceFilePath, {
|
|
182
|
+
format: "esm",
|
|
183
|
+
sourcemap: false
|
|
184
|
+
});
|
|
185
|
+
const tempFilePath = sourceFilePath.replace(/\.(tsx?|mts)$/, ".temp.js");
|
|
186
|
+
await writeFile(tempFilePath, result.code);
|
|
187
|
+
try {
|
|
188
|
+
const module = await import(tempFilePath);
|
|
189
|
+
temporaryReferences?.set(moduleRef, module);
|
|
190
|
+
if (exportName && !(exportName in module)) {
|
|
191
|
+
throw new Error(`Export ${exportName} not found in module ${normalizedValue}`);
|
|
192
|
+
}
|
|
193
|
+
return module;
|
|
194
|
+
} finally {
|
|
195
|
+
try {
|
|
196
|
+
await unlink(tempFilePath);
|
|
197
|
+
} catch (cleanupError) {
|
|
198
|
+
if (userOptions.verbose) {
|
|
199
|
+
console.warn("[buildLoader] Failed to cleanup temp file:", cleanupError);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
} else {
|
|
204
|
+
const content = await readFile(sourceFilePath, "utf-8");
|
|
205
|
+
return { default: content };
|
|
206
|
+
}
|
|
207
|
+
} catch (error) {
|
|
208
|
+
const err = toError(error);
|
|
209
|
+
console.warn("Error loading source file:", err);
|
|
210
|
+
temporaryReferences?.delete(moduleRef);
|
|
211
|
+
throw err;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
122
214
|
throw new Error(`Module ${normalizedValue} not found during build`);
|
|
123
215
|
} catch (error) {
|
|
124
216
|
const emptyExports = {
|
|
@@ -129,7 +221,7 @@ async function createBuildLoader({
|
|
|
129
221
|
return emptyExports;
|
|
130
222
|
}
|
|
131
223
|
};
|
|
132
|
-
}
|
|
224
|
+
};
|
|
133
225
|
|
|
134
226
|
export { createBuildLoader };
|
|
135
|
-
//# sourceMappingURL=createBuildLoader.js.map
|
|
227
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlQnVpbGRMb2FkZXIuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BsdWdpbi9yZWFjdC1zdGF0aWMvY3JlYXRlQnVpbGRMb2FkZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHtcbiAgQnVpbGRNb2R1bGVMb2FkZXIsXG4gIFJlc29sdmVkVXNlckNvbmZpZyxcbiAgUmVzb2x2ZWRVc2VyT3B0aW9ucyxcbn0gZnJvbSBcIi4uLy4uL3NlcnZlci5qc1wiO1xuaW1wb3J0IHR5cGUgeyBNYW5pZmVzdCB9IGZyb20gXCJ2aXRlXCI7XG5pbXBvcnQgeyBnZXRNb2R1bGVSZWYgfSBmcm9tIFwiLi4vaGVscGVycy9tb2R1bGVSZWZzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IE91dHB1dEJ1bmRsZSB9IGZyb20gXCJyb2xsdXBcIjtcbmltcG9ydCB7IHRlbXBvcmFyeVJlZmVyZW5jZXMgfSBmcm9tIFwiLi90ZW1wb3JhcnlSZWZlcmVuY2VzLmpzXCI7XG5pbXBvcnQgeyB0b0Vycm9yIH0gZnJvbSBcIi4uL2Vycm9yL3RvRXJyb3IuanNcIjtcbmltcG9ydCB7IHJlYWRGaWxlLCB3cml0ZUZpbGUsIHVubGluayB9IGZyb20gXCJmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gXCJmc1wiO1xuXG5leHBvcnQgdHlwZSBDcmVhdGVCdWlsZExvYWRlckZuID0gKHByb3BzOiB7XG4gIHVzZXJDb25maWc6IFJlc29sdmVkVXNlckNvbmZpZztcbiAgdXNlck9wdGlvbnM6IFJlc29sdmVkVXNlck9wdGlvbnM7XG4gIHNlcnZlck1hbmlmZXN0OiBNYW5pZmVzdDtcbiAgY2xpZW50TWFuaWZlc3Q6IE1hbmlmZXN0O1xuICBzdGF0aWNNYW5pZmVzdDogTWFuaWZlc3Q7XG59LCBidW5kbGU6IE91dHB1dEJ1bmRsZSkgPT4gQnVpbGRNb2R1bGVMb2FkZXI7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGxvYWRlciBmdW5jdGlvbiBmb3IgaGFuZGxpbmcgbW9kdWxlIHJlc29sdXRpb24gZHVyaW5nIGJ1aWxkLlxuICpcbiAqIFRoZSBsb2FkZXIgaGFuZGxlcyB0aGUgZm9sbG93aW5nIHN0cmF0ZWd5OlxuICogIC0gRm9yIGNsaWVudCBjb21wb25lbnRzOiBVc2UgY2xpZW50IG1hbmlmZXN0IGFuZCBjbGllbnQuYnJvd3Nlci5qc1xuICogIC0gRm9yIHNlcnZlciBjb21wb25lbnRzOiBVc2Ugc2VydmVyIG1hbmlmZXN0IGFuZCBzZXJ2ZXIuanNcbiAqICAtIEZvciBzdGF0aWMgYXNzZXRzOiBVc2Ugc3RhdGljIG1hbmlmZXN0XG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVCdWlsZExvYWRlcjogQ3JlYXRlQnVpbGRMb2FkZXJGbiA9IGZ1bmN0aW9uIF9jcmVhdGVCdWlsZExvYWRlcihcbiAge1xuICAgIHVzZXJPcHRpb25zLFxuICAgIHNlcnZlck1hbmlmZXN0LFxuICAgIGNsaWVudE1hbmlmZXN0LFxuICAgIHN0YXRpY01hbmlmZXN0LFxuICB9LFxuICBidW5kbGVcbikge1xuICBjb25zdCBtYW5pZmVzdEtleXMgPSBPYmplY3Qua2V5cyhzZXJ2ZXJNYW5pZmVzdCk7XG4gIGlmICghbWFuaWZlc3RLZXlzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlNlcnZlciBtYW5pZmVzdCBpcyBlbXB0eVwiKTtcbiAgfVxuXG4gIHJldHVybiBhc3luYyBmdW5jdGlvbiBidWlsZExvYWRlcihpZCkge1xuICAgIGlmICh1c2VyT3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICBjb25zb2xlLmxvZyhcIltidWlsZExvYWRlcl0gaWQ6IFwiLCBpZCk7XG4gICAgfVxuICAgIGNvbnN0IFt3aXRob3V0UXVlcnksIHF1ZXJ5XSA9IGlkLnNwbGl0KFwiP1wiLCAyKTtcbiAgICBjb25zdCBbbW9kdWxlSWQsIGV4cG9ydE5hbWVdID0gd2l0aG91dFF1ZXJ5LnNwbGl0KFwiI1wiLCAyKTtcbiAgICBjb25zdCBbbm9ybWFsaXplZEtleSwgbm9ybWFsaXplZFZhbHVlXSA9IHVzZXJPcHRpb25zLm5vcm1hbGl6ZXIobW9kdWxlSWQpO1xuICAgIGNvbnN0IG1vZHVsZVJlZiA9IGdldE1vZHVsZVJlZihpZCk7XG5cbiAgICAvLyBDaGVjayBpZiB3ZSBoYXZlIGEgdGVtcG9yYXJ5IHJlZmVyZW5jZSAoY2FjaGVkIG1vZHVsZSlcbiAgICBpZiAodGVtcG9yYXJ5UmVmZXJlbmNlcz8uaGFzKG1vZHVsZVJlZikpIHtcbiAgICAgIGNvbnN0IG1vZCA9IHRlbXBvcmFyeVJlZmVyZW5jZXMuZ2V0KG1vZHVsZVJlZik7XG4gICAgICBpZiAodHlwZW9mIG1vZCA9PT0gXCJvYmplY3RcIiAmJiBtb2QgIT09IG51bGwgJiYgXCJlcnJvclwiIGluIG1vZCkge1xuICAgICAgICAvLyBpZ25vcmUgaXRcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBtb2Q7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIC8vIEZvciBpbmxpbmUgbW9kdWxlcywgaGFuZGxlIHRoZW0gZGlyZWN0bHlcbiAgICAgIGlmIChxdWVyeSA9PT0gXCJpbmxpbmVcIikge1xuICAgICAgICBjb25zdCBzdGFydHNXaXRoTWFya2VyID0gbm9ybWFsaXplZEtleS5zcGxpdChcIi1cIilbMF07XG4gICAgICAgIGNvbnN0IHNlcnZlckNodW5rID1cbiAgICAgICAgICBidW5kbGVbc2VydmVyTWFuaWZlc3Rbbm9ybWFsaXplZFZhbHVlXT8uZmlsZV0gPz9cbiAgICAgICAgICBidW5kbGVbc3RhdGljTWFuaWZlc3Rbbm9ybWFsaXplZFZhbHVlXT8uZmlsZV0gPz9cbiAgICAgICAgICBidW5kbGVbY2xpZW50TWFuaWZlc3Rbbm9ybWFsaXplZFZhbHVlXT8uZmlsZV0gPz9cbiAgICAgICAgICBidW5kbGVbd2l0aG91dFF1ZXJ5XSA/P1xuICAgICAgICAgIGJ1bmRsZVtub3JtYWxpemVkVmFsdWVdID8/XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoYnVuZGxlKS5maW5kKFxuICAgICAgICAgICAgKFssIHZhbHVlXSkgPT4gdmFsdWUubmFtZSA9PT0gbm9ybWFsaXplZFZhbHVlXG4gICAgICAgICAgKT8uWzFdID8/XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoYnVuZGxlKS5maW5kKChbX2tleV0pID0+XG4gICAgICAgICAgICBfa2V5LnN0YXJ0c1dpdGgoc3RhcnRzV2l0aE1hcmtlcilcbiAgICAgICAgICApPy5bMV07XG5cbiAgICAgICAgaWYgKHNlcnZlckNodW5rKSB7XG4gICAgICAgICAgaWYgKHNlcnZlckNodW5rLnR5cGUgPT09IFwiYXNzZXRcIikge1xuICAgICAgICAgICAgLy8gRm9yIENTUyBmaWxlcywgZW5zdXJlIHdlJ3JlIGluIHRoZSBSZWFjdCBTZXJ2ZXIgZW52aXJvbm1lbnRcbiAgICAgICAgICAgIGlmICh1c2VyT3B0aW9ucy5hdXRvRGlzY292ZXIuanNvblBhdHRlcm4udGVzdChub3JtYWxpemVkVmFsdWUpKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGpzb25Db250ZW50ID0gc2VydmVyQ2h1bmsuc291cmNlO1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIGpzb25Db250ZW50ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGVmYXVsdDogSlNPTi5wYXJzZShqc29uQ29udGVudCkgfTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgdXNlck9wdGlvbnMuYXV0b0Rpc2NvdmVyLmNzc1BhdHRlcm4udGVzdChub3JtYWxpemVkVmFsdWUpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgY29uc3QgY3NzQ29udGVudCA9IHNlcnZlckNodW5rLnNvdXJjZTtcbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjc3NDb250ZW50ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGVmYXVsdDogY3NzQ29udGVudCB9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4geyBkZWZhdWx0OiBzZXJ2ZXJDaHVuay5zb3VyY2UgfTtcbiAgICAgICAgICB9IGVsc2UgaWYgKFwiY29kZVwiIGluIHNlcnZlckNodW5rKSB7XG4gICAgICAgICAgICByZXR1cm4geyBkZWZhdWx0OiBzZXJ2ZXJDaHVuay5jb2RlIH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUud2FybihcIkNvdWxkIG5vdCBmaW5kIGlubGluZSBtb2R1bGUgZm9yOiBcIiArIG5vcm1hbGl6ZWRWYWx1ZSk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICAvLyBEZXRlcm1pbmUgaWYgdGhpcyBpcyBhIGNsaWVudCBjb21wb25lbnRcbiAgICAgIGNvbnN0IGlzQ2xpZW50Q29tcG9uZW50ID1cbiAgICAgICAgdXNlck9wdGlvbnMuYXV0b0Rpc2NvdmVyLmNsaWVudFBhdHRlcm4udGVzdChub3JtYWxpemVkVmFsdWUpO1xuXG4gICAgICAvLyBGb3IgY2xpZW50IGNvbXBvbmVudHMsIHVzZSBjbGllbnQgbWFuaWZlc3RcbiAgICAgIGlmIChpc0NsaWVudENvbXBvbmVudCkge1xuICAgICAgICBjb25zdCBjbGllbnRFbnRyeSA9IGNsaWVudE1hbmlmZXN0W25vcm1hbGl6ZWRWYWx1ZV07XG4gICAgICAgIGlmICh1c2VyT3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coXCJjbGllbnRFbnRyeVwiLCBjbGllbnRFbnRyeSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNsaWVudEVudHJ5KSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IG1vZHVsZSA9IGF3YWl0IGltcG9ydChcbiAgICAgICAgICAgICAgam9pbihcbiAgICAgICAgICAgICAgICB1c2VyT3B0aW9ucy5wcm9qZWN0Um9vdCxcbiAgICAgICAgICAgICAgICB1c2VyT3B0aW9ucy5idWlsZC5vdXREaXIsXG4gICAgICAgICAgICAgICAgdXNlck9wdGlvbnMuYnVpbGQuY2xpZW50LFxuICAgICAgICAgICAgICAgIGNsaWVudEVudHJ5LmZpbGVcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRlbXBvcmFyeVJlZmVyZW5jZXM/LnNldChtb2R1bGVSZWYsIG1vZHVsZSk7XG4gICAgICAgICAgICByZXR1cm4gbW9kdWxlO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zdCBlcnIgPSB0b0Vycm9yKGVycm9yKTtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcIkVycm9yIGxvYWRpbmcgY2xpZW50IG1vZHVsZTpcIiwgZXJyKTtcbiAgICAgICAgICAgIHRlbXBvcmFyeVJlZmVyZW5jZXM/LmRlbGV0ZShtb2R1bGVSZWYpO1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBGb3Igc3RhdGljIGFzc2V0cywgdXNlIHN0YXRpYyBtYW5pZmVzdFxuICAgICAgY29uc3Qgc3RhdGljRW50cnkgPSBzdGF0aWNNYW5pZmVzdFtub3JtYWxpemVkVmFsdWVdO1xuICAgICAgaWYgKHN0YXRpY0VudHJ5KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgbW9kdWxlID0gYXdhaXQgaW1wb3J0KFxuICAgICAgICAgICAgam9pbihcbiAgICAgICAgICAgICAgdXNlck9wdGlvbnMucHJvamVjdFJvb3QsXG4gICAgICAgICAgICAgIHVzZXJPcHRpb25zLmJ1aWxkLm91dERpcixcbiAgICAgICAgICAgICAgdXNlck9wdGlvbnMuYnVpbGQuc3RhdGljLFxuICAgICAgICAgICAgICBzdGF0aWNFbnRyeS5maWxlXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0ZW1wb3JhcnlSZWZlcmVuY2VzPy5zZXQobW9kdWxlUmVmLCBtb2R1bGUpO1xuICAgICAgICAgIC8vIElmIHdlIGhhdmUgYW4gZXhwb3J0IG5hbWUsIG1ha2Ugc3VyZSBpdCdzIGEga2V5XG4gICAgICAgICAgaWYgKGV4cG9ydE5hbWUgJiYgIShleHBvcnROYW1lIGluIG1vZHVsZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwb3J0ICR7ZXhwb3J0TmFtZX0gbm90IGZvdW5kIGluIG1vZHVsZSAke25vcm1hbGl6ZWRWYWx1ZX1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG1vZHVsZTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb25zdCBlcnIgPSB0b0Vycm9yKGVycm9yKTtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXCJFcnJvciBsb2FkaW5nIHN0YXRpYyBtb2R1bGU6XCIsIGVycik7XG4gICAgICAgICAgdGVtcG9yYXJ5UmVmZXJlbmNlcz8uZGVsZXRlKG1vZHVsZVJlZik7XG4gICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIHNlcnZlciBtYW5pZmVzdCBmb3IgYW55IHJlbWFpbmluZyBtb2R1bGVzIChpbmNsdWRpbmcgSHRtbC9Sb290IGNvbXBvbmVudHMpXG4gICAgICBjb25zdCBzZXJ2ZXJFbnRyeSA9IHNlcnZlck1hbmlmZXN0W25vcm1hbGl6ZWRWYWx1ZV07XG5cbiAgICAgIGlmIChzZXJ2ZXJFbnRyeSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IG1vZHVsZSA9IGF3YWl0IGltcG9ydChcbiAgICAgICAgICAgIGpvaW4oXG4gICAgICAgICAgICAgIHVzZXJPcHRpb25zLnByb2plY3RSb290LFxuICAgICAgICAgICAgICB1c2VyT3B0aW9ucy5idWlsZC5vdXREaXIsXG4gICAgICAgICAgICAgIHVzZXJPcHRpb25zLmJ1aWxkLnNlcnZlcixcbiAgICAgICAgICAgICAgc2VydmVyRW50cnkuZmlsZVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGVtcG9yYXJ5UmVmZXJlbmNlcz8uc2V0KG1vZHVsZVJlZiwgbW9kdWxlKTtcbiAgICAgICAgICAvLyBJZiB3ZSBoYXZlIGFuIGV4cG9ydCBuYW1lLCBtYWtlIHN1cmUgaXQncyBhIGtleVxuICAgICAgICAgIGlmIChleHBvcnROYW1lICYmICEoZXhwb3J0TmFtZSBpbiBtb2R1bGUpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cG9ydCAke2V4cG9ydE5hbWV9IG5vdCBmb3VuZCBpbiBtb2R1bGUgJHtub3JtYWxpemVkVmFsdWV9YCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBtb2R1bGU7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY29uc3QgZXJyID0gdG9FcnJvcihlcnJvcik7XG4gICAgICAgICAgaWYodXNlck9wdGlvbnMucGFuaWNUaHJlc2hvbGQgPT09IFwiY3JpdGljYWxfZXJyb3JzXCIpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcIkVycm9yIGxvYWRpbmcgc2VydmVyIG1vZHVsZTpcIiwgZXJyKTtcbiAgICAgICAgICAgIHRlbXBvcmFyeVJlZmVyZW5jZXM/LmRlbGV0ZShtb2R1bGVSZWYpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgbG9hZGluZyBzZXJ2ZXIgbW9kdWxlOlwiLCBlcnIpO1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBGb3Igc291cmNlIGZpbGVzIChsaWtlIGN1c3RvbSBSb290L0h0bWwgY29tcG9uZW50cyksIHRyeSB0byBsb2FkIGRpcmVjdGx5IGZyb20gZmlsZXN5c3RlbVxuICAgICAgY29uc3Qgc291cmNlRmlsZVBhdGggPSBqb2luKHVzZXJPcHRpb25zLnByb2plY3RSb290LCBub3JtYWxpemVkVmFsdWUpO1xuICAgICAgaWYgKHVzZXJPcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJbYnVpbGRMb2FkZXJdIENoZWNraW5nIHNvdXJjZSBmaWxlOlwiLCBzb3VyY2VGaWxlUGF0aCwgXCJleGlzdHM6XCIsIGV4aXN0c1N5bmMoc291cmNlRmlsZVBhdGgpKTtcbiAgICAgIH1cbiAgICAgIGlmIChleGlzdHNTeW5jKHNvdXJjZUZpbGVQYXRoKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGlmICh1c2VyT3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIltidWlsZExvYWRlcl0gTG9hZGluZyBzb3VyY2UgZmlsZTpcIiwgc291cmNlRmlsZVBhdGgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEZvciBUeXBlU2NyaXB0L1RTWCBmaWxlcywgZmlyc3QgY2hlY2sgaWYgdGhlcmUncyBhIGJ1aWx0IHZlcnNpb24gaW4gZGlzdFxuICAgICAgICAgIGlmIChzb3VyY2VGaWxlUGF0aC5lbmRzV2l0aCgnLnRzeCcpIHx8IHNvdXJjZUZpbGVQYXRoLmVuZHNXaXRoKCcudHMnKSB8fCBzb3VyY2VGaWxlUGF0aC5lbmRzV2l0aCgnLm10cycpKSB7XG4gICAgICAgICAgICAvLyBUcnkgdG8gZmluZCB0aGUgYnVpbHQgbW9kdWxlIGZpcnN0IC0gY2hlY2sgYm90aCBzdGF0aWMgYW5kIHNlcnZlciBkaXJlY3Rvcmllc1xuICAgICAgICAgICAgY29uc3QgcmVsYXRpdmVQYXRoID0gbm9ybWFsaXplZFZhbHVlLnJlcGxhY2UoL15zcmNcXC8vLCAnJyk7XG4gICAgICAgICAgICBjb25zdCBzdGF0aWNCdWlsdFBhdGggPSBqb2luKFxuICAgICAgICAgICAgICB1c2VyT3B0aW9ucy5wcm9qZWN0Um9vdCxcbiAgICAgICAgICAgICAgdXNlck9wdGlvbnMuYnVpbGQub3V0RGlyLFxuICAgICAgICAgICAgICB1c2VyT3B0aW9ucy5idWlsZC5zdGF0aWMsXG4gICAgICAgICAgICAgIHJlbGF0aXZlUGF0aC5yZXBsYWNlKC9cXC4odHN4P3xtdHMpJC8sICcuanMnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IHNlcnZlckJ1aWx0UGF0aCA9IGpvaW4oXG4gICAgICAgICAgICAgIHVzZXJPcHRpb25zLnByb2plY3RSb290LFxuICAgICAgICAgICAgICB1c2VyT3B0aW9ucy5idWlsZC5vdXREaXIsXG4gICAgICAgICAgICAgIHVzZXJPcHRpb25zLmJ1aWxkLnNlcnZlcixcbiAgICAgICAgICAgICAgcmVsYXRpdmVQYXRoLnJlcGxhY2UoL1xcLih0c3g/fG10cykkLywgJy5qcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAvLyBDaGVjayBzdGF0aWMgZGlyZWN0b3J5IGZpcnN0LCB0aGVuIHNlcnZlciBkaXJlY3RvcnlcbiAgICAgICAgICAgIGxldCBidWlsdE1vZHVsZVBhdGg6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgICAgICAgICAgaWYgKGV4aXN0c1N5bmMoc3RhdGljQnVpbHRQYXRoKSkge1xuICAgICAgICAgICAgICBidWlsdE1vZHVsZVBhdGggPSBzdGF0aWNCdWlsdFBhdGg7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV4aXN0c1N5bmMoc2VydmVyQnVpbHRQYXRoKSkge1xuICAgICAgICAgICAgICBidWlsdE1vZHVsZVBhdGggPSBzZXJ2ZXJCdWlsdFBhdGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChidWlsdE1vZHVsZVBhdGgpIHtcbiAgICAgICAgICAgICAgaWYgKHVzZXJPcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIltidWlsZExvYWRlcl0gRm91bmQgYnVpbHQgbW9kdWxlOlwiLCBidWlsdE1vZHVsZVBhdGgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IG1vZHVsZSA9IGF3YWl0IGltcG9ydChidWlsdE1vZHVsZVBhdGgpO1xuICAgICAgICAgICAgICB0ZW1wb3JhcnlSZWZlcmVuY2VzPy5zZXQobW9kdWxlUmVmLCBtb2R1bGUpO1xuICAgICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIGFuIGV4cG9ydCBuYW1lLCBtYWtlIHN1cmUgaXQncyBhIGtleVxuICAgICAgICAgICAgICBpZiAoZXhwb3J0TmFtZSAmJiAhKGV4cG9ydE5hbWUgaW4gbW9kdWxlKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwb3J0ICR7ZXhwb3J0TmFtZX0gbm90IGZvdW5kIGluIG1vZHVsZSAke25vcm1hbGl6ZWRWYWx1ZX1gKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gbW9kdWxlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBJZiBubyBidWlsdCBtb2R1bGUgZm91bmQsIHRyeSB0byBjb21waWxlIHRoZSBzb3VyY2UgZmlsZVxuICAgICAgICAgICAgaWYgKHVzZXJPcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJbYnVpbGRMb2FkZXJdIE5vIGJ1aWx0IG1vZHVsZSBmb3VuZCwgdHJ5aW5nIHRvIGNvbXBpbGUgc291cmNlIGZpbGVcIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFVzZSBlc2J1aWxkIHRvIGNvbXBpbGUgdGhlIFR5cGVTY3JpcHQvVFNYIGZpbGVcbiAgICAgICAgICAgIGNvbnN0IHsgdHJhbnNmb3JtV2l0aEVzYnVpbGQgfSA9IGF3YWl0IGltcG9ydCgndml0ZScpO1xuICAgICAgICAgICAgY29uc3Qgc291cmNlQ29kZSA9IGF3YWl0IHJlYWRGaWxlKHNvdXJjZUZpbGVQYXRoLCAndXRmLTgnKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRyYW5zZm9ybVdpdGhFc2J1aWxkKHNvdXJjZUNvZGUsIHNvdXJjZUZpbGVQYXRoLCB7XG4gICAgICAgICAgICAgIGZvcm1hdDogJ2VzbScsXG4gICAgICAgICAgICAgIHNvdXJjZW1hcDogZmFsc2UsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gQ3JlYXRlIGEgdGVtcG9yYXJ5IGZpbGUgd2l0aCB0aGUgY29tcGlsZWQgY29kZVxuICAgICAgICAgICAgY29uc3QgdGVtcEZpbGVQYXRoID0gc291cmNlRmlsZVBhdGgucmVwbGFjZSgvXFwuKHRzeD98bXRzKSQvLCAnLnRlbXAuanMnKTtcbiAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZSh0ZW1wRmlsZVBhdGgsIHJlc3VsdC5jb2RlKTtcblxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgY29uc3QgbW9kdWxlID0gYXdhaXQgaW1wb3J0KHRlbXBGaWxlUGF0aCk7XG4gICAgICAgICAgICAgIHRlbXBvcmFyeVJlZmVyZW5jZXM/LnNldChtb2R1bGVSZWYsIG1vZHVsZSk7XG4gICAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgYW4gZXhwb3J0IG5hbWUsIG1ha2Ugc3VyZSBpdCdzIGEga2V5XG4gICAgICAgICAgICAgIGlmIChleHBvcnROYW1lICYmICEoZXhwb3J0TmFtZSBpbiBtb2R1bGUpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBvcnQgJHtleHBvcnROYW1lfSBub3QgZm91bmQgaW4gbW9kdWxlICR7bm9ybWFsaXplZFZhbHVlfWApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBtb2R1bGU7XG4gICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAvLyBDbGVhbiB1cCB0ZW1wb3JhcnkgZmlsZVxuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHVubGluayh0ZW1wRmlsZVBhdGgpO1xuICAgICAgICAgICAgICB9IGNhdGNoIChjbGVhbnVwRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgY2xlYW51cCBlcnJvcnNcbiAgICAgICAgICAgICAgICBpZiAodXNlck9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiW2J1aWxkTG9hZGVyXSBGYWlsZWQgdG8gY2xlYW51cCB0ZW1wIGZpbGU6XCIsIGNsZWFudXBFcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEZvciBvdGhlciBmaWxlcywgcmVhZCBhcyB0ZXh0XG4gICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVhZEZpbGUoc291cmNlRmlsZVBhdGgsICd1dGYtOCcpO1xuICAgICAgICAgICAgcmV0dXJuIHsgZGVmYXVsdDogY29udGVudCB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb25zdCBlcnIgPSB0b0Vycm9yKGVycm9yKTtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXCJFcnJvciBsb2FkaW5nIHNvdXJjZSBmaWxlOlwiLCBlcnIpO1xuICAgICAgICAgIHRlbXBvcmFyeVJlZmVyZW5jZXM/LmRlbGV0ZShtb2R1bGVSZWYpO1xuICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1vZHVsZSAke25vcm1hbGl6ZWRWYWx1ZX0gbm90IGZvdW5kIGR1cmluZyBidWlsZGApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zdCBlbXB0eUV4cG9ydHMgPSB7XG4gICAgICAgIGVycm9yOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IgOiBuZXcgRXJyb3IoU3RyaW5nKGVycm9yKSksXG4gICAgICAgIGlkOiBpZCxcbiAgICAgIH07XG4gICAgICB0ZW1wb3JhcnlSZWZlcmVuY2VzPy5kZWxldGUobW9kdWxlUmVmKTtcbiAgICAgIHJldHVybiBl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
|
|
@@ -66,4 +66,4 @@ async function fileWriter(stream, fileType, options) {
|
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
export { fileWriter };
|
|
69
|
-
//# sourceMappingURL=
|
|
69
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZVdyaXRlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGx1Z2luL3JlYWN0LXN0YXRpYy9maWxlV3JpdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogZmlsZVdyaXRlci50c1xuICpcbiAqIFBVUlBPU0U6IEhhbmRsZXMgZmlsZSB3cml0aW5nIG9wZXJhdGlvbnMgZm9yIFJlYWN0IFNlcnZlciBDb21wb25lbnRzIChSU0MpIHJlbmRlcmluZ1xuICpcbiAqIFRoaXMgbW9kdWxlOlxuICogMS4gV3JpdGVzIEhUTUwgYW5kIFJTQyBmaWxlcyB0byB0aGUgZmlsZXN5c3RlbSB1c2luZyBzdHJlYW1zXG4gKiAyLiBDcmVhdGVzIG5lY2Vzc2FyeSBkaXJlY3Rvcmllc1xuICogMy4gSGFuZGxlcyBmaWxlIHBhdGggY29uc3RydWN0aW9uXG4gKiA0LiBQcm92aWRlcyBhIGNsZWFuIGludGVyZmFjZSBmb3IgZmlsZSBvcGVyYXRpb25zXG4gKi9cbmltcG9ydCB0eXBlIHsgRmlsZVdyaXRlck9wdGlvbnMgfSBmcm9tIFwiLi4vdHlwZXMuanNcIjtcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBjcmVhdGVXcml0ZVN0cmVhbSB9IGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgeyBta2RpciB9IGZyb20gXCJub2RlOmZzL3Byb21pc2VzXCI7XG5pbXBvcnQgeyB0eXBlIFJlYWRhYmxlLCBUcmFuc2Zvcm0gfSBmcm9tIFwibm9kZTpzdHJlYW1cIjtcblxuLyoqXG4gKiBXcml0ZXMgSFRNTCBhbmQgUlNDIGZpbGVzIGZvciBhIHJvdXRlIHVzaW5nIHN0cmVhbXNcbiAqXG4gKiBAcGFyYW0gc3RyZWFtIFRoZSByZWFkYWJsZSBzdHJlYW0gY29udGFpbmluZyB0aGUgY29udGVudFxuICogQHBhcmFtIGZpbGVUeXBlIFRoZSB0eXBlIG9mIGZpbGUgYmVpbmcgd3JpdHRlbiAoXCJodG1sXCIgb3IgXCJyc2NcIilcbiAqIEBwYXJhbSBvcHRpb25zIFRoZSBmaWxlIHdyaXRlciBvcHRpb25zXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmaWxlIGlzIHdyaXR0ZW5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZpbGVXcml0ZXIoXG4gIHN0cmVhbTogUmVhZGFibGUsXG4gIGZpbGVUeXBlOiBcImh0bWxcIiB8IFwicnNjXCIsXG4gIG9wdGlvbnM6IEZpbGVXcml0ZXJPcHRpb25zXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBvbkV2ZW50IH0gPSBvcHRpb25zO1xuXG4gIC8vIFZhbGlkYXRlIHN0cmVhbVxuICBpZiAoIXN0cmVhbSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyBzdHJlYW0gZm9yIHJvdXRlOiAke29wdGlvbnMucm91dGV9YCk7XG4gIH1cblxuICBjb25zdCBvdXRwdXRQYXRoID0gam9pbihcbiAgICBvcHRpb25zLmJ1aWxkLm91dERpcixcbiAgICBvcHRpb25zLmJ1aWxkLnN0YXRpYyxcbiAgICBvcHRpb25zLnJvdXRlLFxuICAgIGZpbGVUeXBlID09PSBcImh0bWxcIiA/IG9wdGlvbnMuYnVpbGQuaHRtbE91dHB1dFBhdGggOiBvcHRpb25zLmJ1aWxkLnJzY091dHB1dFBhdGhcbiAgKTtcblxuICAvLyBFbnN1cmUgZGlyZWN0b3J5IGV4aXN0c1xuICB0cnkge1xuICAgIGF3YWl0IG1rZGlyKGpvaW4ob3B0aW9ucy5idWlsZC5vdXREaXIsIG9wdGlvbnMuYnVpbGQuc3RhdGljLCBvcHRpb25zLnJvdXRlKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcihgRXJyb3IgY3JlYXRpbmcgZGlyZWN0b3J5OiAke2Vycm9yfWApO1xuICB9XG5cbiAgLy8gQ3JlYXRlIHdyaXRlIHN0cmVhbVxuICBjb25zdCB3cml0ZVN0cmVhbSA9IGNyZWF0ZVdyaXRlU3RyZWFtKG91dHB1dFBhdGgpO1xuXG4gIC8vIENyZWF0ZSB0cmFuc2Zvcm0gc3RyZWFtIHRvIGNhcHR1cmUgY29udGVudFxuICBjb25zdCBjb250ZW50Q2FwdHVyZSA9IG5ldyBUcmFuc2Zvcm0oe1xuICAgIHRyYW5zZm9ybShjaHVuaywgX2VuY29kaW5nLCBjYWxsYmFjaykge1xuICAgICAgLy8gUGFzcyB0aHJvdWdoIHRoZSBjaHVua1xuICAgICAgY2FsbGJhY2sobnVsbCwgY2h1bmspO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gQ29sbGVjdCBjaHVua3MgZm9yIGNvbnRlbnRcbiAgY29uc3QgY2h1bmtzOiBCdWZmZXJbXSA9IFtdO1xuICBjb250ZW50Q2FwdHVyZS5vbignZGF0YScsIChjaHVuaykgPT4ge1xuICAgIGNodW5rcy5wdXNoKEJ1ZmZlci5mcm9tKGNodW5rKSk7XG4gIH0pO1xuXG4gIC8vIEVtaXQgZmlsZS53cml0ZSBldmVudHMgaWYgb25FdmVudCBpcyBwcm92aWRlZFxuICBpZiAob25FdmVudCkge1xuICAgIG9uRXZlbnQoe1xuICAgICAgdHlwZTogXCJmaWxlLndyaXRlXCIsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGZpbGVUeXBlOiBmaWxlVHlwZSxcbiAgICAgICAgcm91dGU6IG9wdGlvbnMucm91dGUsXG4gICAgICAgIHN0cmVhbTogc3RyZWFtLFxuICAgICAgICBwYXRoOiBvdXRwdXRQYXRoLFxuICAgICAgICBvbkNvbXBsZXRlOiBhc3luYyAoKSA9PiB7fSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvLyBQaXBlIHRoZSBzdHJlYW0gdGhyb3VnaCBjb250ZW50IGNhcHR1cmUgdG8gZmlsZVxuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHN0cmVhbVxuICAgICAgLnBpcGUoY29udGVudENhcHR1cmUpXG4gICAgICAucGlwZSh3cml0ZVN0cmVhbSlcbiAgICAgIC5vbihcImZpbmlzaFwiLCAoKSA9PiB7XG4gICAgICAgIC8vIENvbWJpbmUgY2h1bmtzIGludG8gY29udGVudFxuICAgICAgICBjb25zdCBjb250ZW50ID0gQnVmZmVyLmNvbmNhdChjaHVua3MpLnRvU3RyaW5nKCd1dGYtOCcpO1xuICAgICAgICBcbiAgICAgICAgLy8gRW1pdCBmaWxlLndyaXRlLmRvbmUgZXZlbnQgd2l0aCBjb250ZW50XG4gICAgICAgIGlmIChvbkV2ZW50KSB7XG4gICAgICAgICAgb25FdmVudCh7XG4gICAgICAgICAgICB0eXBlOiBcImZpbGUud3JpdGUuZG9uZVwiLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBmaWxlVHlwZTogZmlsZVR5cGUsXG4gICAgICAgICAgICAgIHJvdXRlOiBvcHRpb25zLnJvdXRlLFxuICAgICAgICAgICAgICBjb250ZW50OiBjb250ZW50XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH0pXG4gICAgICAub24oXCJlcnJvclwiLCByZWplY3QpO1xuICB9KTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBeUJBLGVBQXNCLFVBQUEsQ0FDcEIsTUFDQSxFQUFBLFFBQUEsRUFDQSxPQUNlLEVBQUE7QUFDZixFQUFNLE1BQUEsRUFBRSxTQUFZLEdBQUEsT0FBQTtBQUdwQixFQUFBLElBQUksQ0FBQyxNQUFRLEVBQUE7QUFDWCxJQUFBLE1BQU0sSUFBSSxLQUFBLENBQU0sQ0FBNkIsMEJBQUEsRUFBQSxPQUFBLENBQVEsS0FBSyxDQUFFLENBQUEsQ0FBQTtBQUFBO0FBRzlELEVBQUEsTUFBTSxVQUFhLEdBQUEsSUFBQTtBQUFBLElBQ2pCLFFBQVEsS0FBTSxDQUFBLE1BQUE7QUFBQSxJQUNkLFFBQVEsS0FBTSxDQUFBLE1BQUE7QUFBQSxJQUNkLE9BQVEsQ0FBQSxLQUFBO0FBQUEsSUFDUixhQUFhLE1BQVMsR0FBQSxPQUFBLENBQVEsS0FBTSxDQUFBLGNBQUEsR0FBaUIsUUFBUSxLQUFNLENBQUE7QUFBQSxHQUNyRTtBQUdBLEVBQUksSUFBQTtBQUNGLElBQUEsTUFBTSxLQUFNLENBQUEsSUFBQSxDQUFLLE9BQVEsQ0FBQSxLQUFBLENBQU0sUUFBUSxPQUFRLENBQUEsS0FBQSxDQUFNLE1BQVEsRUFBQSxPQUFBLENBQVEsS0FBSyxDQUFBLEVBQUcsRUFBRSxTQUFBLEVBQVcsTUFBTSxDQUFBO0FBQUEsV0FDekYsS0FBTyxFQUFBO0FBQ2QsSUFBUSxPQUFBLENBQUEsS0FBQSxDQUFNLENBQTZCLDBCQUFBLEVBQUEsS0FBSyxDQUFFLENBQUEsQ0FBQTtBQUFBO0FBSXBELEVBQU0sTUFBQSxXQUFBLEdBQWMsa0JBQWtCLFVBQVUsQ0FBQTtBQUdoRCxFQUFNLE1BQUEsY0FBQSxHQUFpQixJQUFJLFNBQVUsQ0FBQTtBQUFBLElBQ25DLFNBQUEsQ0FBVSxLQUFPLEVBQUEsU0FBQSxFQUFXLFFBQVUsRUFBQTtBQUVwQyxNQUFBLFFBQUEsQ0FBUyxNQUFNLEtBQUssQ0FBQTtBQUFBO0FBQ3RCLEdBQ0QsQ0FBQTtBQUdELEVBQUEsTUFBTSxTQUFtQixFQUFDO0FBQzFCLEVBQWUsY0FBQSxDQUFBLEVBQUEsQ0FBRyxNQUFRLEVBQUEsQ0FBQyxLQUFVLEtBQUE7QUFDbkMsSUFBQSxNQUFBLENBQU8sSUFBSyxDQUFBLE1BQUEsQ0FBTyxJQUFLLENBQUEsS0FBSyxDQUFDLENBQUE7QUFBQSxHQUMvQixDQUFBO0FBR0QsRUFBQSxJQUFJLE9BQVMsRUFBQTtBQUNYLElBQVEsT0FBQSxDQUFBO0FBQUEsTUFDTixJQUFNLEVBQUEsWUFBQTtBQUFBLE1BQ04sSUFBTSxFQUFBO0FBQUEsUUFDSixRQUFBO0FBQUEsUUFDQSxPQUFPLE9BQVEsQ0FBQSxLQUFBO0FBQUEsUUFDZixNQUFBO0FBQUEsUUFDQSxJQUFNLEVBQUEsVUFBQTtBQUFBLFFBQ04sWUFBWSxZQUFZO0FBQUE7QUFBQztBQUMzQixLQUNELENBQUE7QUFBQTtBQUlILEVBQUEsT0FBTyxJQUFJLE9BQUEsQ0FBUSxDQUFDLE9BQUEsRUFBUyxNQUFXLEtBQUE7QUFDdEMsSUFDRyxNQUFBLENBQUEsSUFBQSxDQUFLLGNBQWMsQ0FDbkIsQ0FBQSxJQUFBLENBQUssV0FBVyxDQUNoQixDQUFBLEVBQUEsQ0FBRyxVQUFVLE1BQU07QUFFbEIsTUFBQSxNQUFNLFVBQVUsTUFBTyxDQUFBLE1BQUEsQ0FBTyxNQUFNLENBQUEsQ0FBRSxTQUFTLE9BQU8sQ0FBQTtBQUd0RCxNQUFBLElBQUksT0FBUyxFQUFBO0FBQ1gsUUFBUSxPQUFBLENBQUE7QUFBQSxVQUNOLElBQU0sRUFBQSxpQkFBQTtBQUFBLFVBQ04sSUFBTSxFQUFBO0FBQUEsWUFDSixRQUFBO0FBQUEsWUFDQSxPQUFPLE9BQVEsQ0FBQSxLQUFBO0FBQUEsWUFDZjtBQUFBO0FBQ0YsU0FDRCxDQUFBO0FBQUE7QUFFSCxNQUFRLE9BQUEsRUFBQTtBQUFBLEtBQ1QsQ0FBQSxDQUNBLEVBQUcsQ0FBQSxPQUFBLEVBQVMsTUFBTSxDQUFBO0FBQUEsR0FDdEIsQ0FBQTtBQUNIOzs7OyJ9
|
|
@@ -13,10 +13,9 @@
|
|
|
13
13
|
* 5. Manages worker threads for parallel rendering
|
|
14
14
|
* 6. Handles error reporting and metrics collection
|
|
15
15
|
*/
|
|
16
|
-
import
|
|
17
|
-
|
|
18
|
-
import { type StreamPluginOptions } from "../types.js";
|
|
19
|
-
export declare function reactStaticPlugin<T extends PagePropOpt = PagePropOpt, InlineCSS extends InlineCssOpt = InlineCssOpt>(options: StreamPluginOptions<T, InlineCSS>): VitePlugin<{
|
|
16
|
+
import type { ReactStreamPluginMeta, ReactStreamPluginFn } from "../types.js";
|
|
17
|
+
export type ReactStaticPluginFn = ReactStreamPluginFn<{
|
|
20
18
|
meta: ReactStreamPluginMeta;
|
|
21
19
|
}>;
|
|
20
|
+
export declare const reactStaticPlugin: ReactStaticPluginFn;
|
|
22
21
|
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,OAAO,KAAK,EAEV,qBAAqB,EAMrB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAoBrB,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;IACpD,IAAI,EAAE,qBAAqB,CAAC;CAC7B,CAAC,CAAC;AAEH,eAAO,MAAM,iBAAiB,EAAE,mBAyY7B,CAAC"}
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
* MIT License
|
|
5
5
|
*/
|
|
6
6
|
import { join } from 'node:path';
|
|
7
|
-
import 'node:worker_threads';
|
|
8
7
|
import { createLogger } from 'vite';
|
|
9
8
|
import { resolveOptions } from '../config/resolveOptions.js';
|
|
10
9
|
import { resolveUserConfig } from '../config/resolveUserConfig.js';
|
|
@@ -13,7 +12,6 @@ import { renderPages } from './renderPages.js';
|
|
|
13
12
|
import { getBundleManifest } from '../helpers/getBundleManifest.js';
|
|
14
13
|
import { createWorker } from '../worker/createWorker.js';
|
|
15
14
|
import { resolveAutoDiscover } from '../config/autoDiscover/resolveAutoDiscover.js';
|
|
16
|
-
import { getCondition } from '../config/getCondition.js';
|
|
17
15
|
import { serializedOptions, serializeResolvedConfig } from '../helpers/serializeUserOptions.js';
|
|
18
16
|
import { collectManifestCss } from '../helpers/collectManifestCss.js';
|
|
19
17
|
import { createCssProps } from '../helpers/createCssProps.js';
|
|
@@ -21,20 +19,16 @@ import { performance } from 'node:perf_hooks';
|
|
|
21
19
|
import { DEFAULT_CONFIG } from '../config/defaults.js';
|
|
22
20
|
import { baseURL } from '../utils/envUrls.node.js';
|
|
23
21
|
import { readFile } from 'node:fs/promises';
|
|
22
|
+
import { logError } from '../error/logError.js';
|
|
23
|
+
import { toError } from '../error/toError.js';
|
|
24
|
+
import { createDefaultModuleID } from '../config/createModuleID.js';
|
|
24
25
|
|
|
25
|
-
|
|
26
|
-
throw new Error(
|
|
27
|
-
"Condition mismatch, should be react-server but got " + process.env["NODE_OPTIONS"]
|
|
28
|
-
);
|
|
29
|
-
}
|
|
30
|
-
function reactStaticPlugin(options) {
|
|
26
|
+
const reactStaticPlugin = function _reactStaticPlugin(options) {
|
|
31
27
|
let worker;
|
|
32
28
|
let userConfig;
|
|
33
29
|
let resolvedConfig;
|
|
34
|
-
let userOptions;
|
|
35
30
|
let autoDiscoveredFiles = null;
|
|
36
31
|
let serverManifest = void 0;
|
|
37
|
-
let buildLoader;
|
|
38
32
|
const timing = {
|
|
39
33
|
start: Date.now(),
|
|
40
34
|
configResolved: 0,
|
|
@@ -45,7 +39,7 @@ function reactStaticPlugin(options) {
|
|
|
45
39
|
if (resolvedOptions.type === "error") {
|
|
46
40
|
throw resolvedOptions.error;
|
|
47
41
|
}
|
|
48
|
-
userOptions = resolvedOptions.userOptions;
|
|
42
|
+
const userOptions = resolvedOptions.userOptions;
|
|
49
43
|
return {
|
|
50
44
|
name: "vite:plugin-react-server/static",
|
|
51
45
|
enforce: "post",
|
|
@@ -59,6 +53,9 @@ function reactStaticPlugin(options) {
|
|
|
59
53
|
if (configEnv.command !== "build") {
|
|
60
54
|
return;
|
|
61
55
|
}
|
|
56
|
+
if (typeof userOptions.moduleID !== "function") {
|
|
57
|
+
userOptions.moduleID = createDefaultModuleID(userOptions, configEnv, userOptions.loader?.mode);
|
|
58
|
+
}
|
|
62
59
|
const autoDiscoverResult = await resolveAutoDiscover({
|
|
63
60
|
config,
|
|
64
61
|
configEnv,
|
|
@@ -117,7 +114,7 @@ function reactStaticPlugin(options) {
|
|
|
117
114
|
normalizer: userOptions.normalizer
|
|
118
115
|
});
|
|
119
116
|
const manifestPath = typeof resolvedConfig.build.manifest === "string" ? resolvedConfig.build.manifest : ".vite/manifest.json";
|
|
120
|
-
if (!("source" in bundleManifest[manifestPath])) {
|
|
117
|
+
if (!bundleManifest[manifestPath] || !("source" in bundleManifest[manifestPath])) {
|
|
121
118
|
throw new Error("Server manifest not found");
|
|
122
119
|
}
|
|
123
120
|
serverManifest = JSON.parse(
|
|
@@ -126,7 +123,7 @@ function reactStaticPlugin(options) {
|
|
|
126
123
|
if (!serverManifest) {
|
|
127
124
|
throw new Error("Failed to parse server manifest");
|
|
128
125
|
}
|
|
129
|
-
buildLoader =
|
|
126
|
+
const buildLoader = createBuildLoader(
|
|
130
127
|
{
|
|
131
128
|
userConfig,
|
|
132
129
|
userOptions,
|
|
@@ -139,12 +136,12 @@ function reactStaticPlugin(options) {
|
|
|
139
136
|
const cssFilesByPage = /* @__PURE__ */ new Map();
|
|
140
137
|
const indexHtmlCssInputs = collectManifestCss(
|
|
141
138
|
autoDiscoveredFiles?.staticManifest ?? {},
|
|
142
|
-
|
|
139
|
+
"index.html"
|
|
143
140
|
);
|
|
144
|
-
const clientEntryCssInputs = collectManifestCss(
|
|
141
|
+
const clientEntryCssInputs = userOptions.clientEntry ? collectManifestCss(
|
|
145
142
|
autoDiscoveredFiles?.staticManifest ?? {},
|
|
146
143
|
userOptions.clientEntry
|
|
147
|
-
);
|
|
144
|
+
) : null;
|
|
148
145
|
const globalCssInputs = {
|
|
149
146
|
...indexHtmlCssInputs,
|
|
150
147
|
...clientEntryCssInputs
|
|
@@ -172,8 +169,8 @@ function reactStaticPlugin(options) {
|
|
|
172
169
|
const pageCssMap = /* @__PURE__ */ new Map();
|
|
173
170
|
if (Object.keys(globalCssInputs).length > 0) {
|
|
174
171
|
for (const [key, value] of Object.entries(globalCssInputs)) {
|
|
175
|
-
let cssContent = await buildLoader(value
|
|
176
|
-
(r) =>
|
|
172
|
+
let cssContent = await buildLoader(`${value}?inline`).then(
|
|
173
|
+
(r) => r.default
|
|
177
174
|
);
|
|
178
175
|
if (cssContent === "undefined" || !cssContent) {
|
|
179
176
|
cssContent = await readFile(
|
|
@@ -200,10 +197,10 @@ function reactStaticPlugin(options) {
|
|
|
200
197
|
}
|
|
201
198
|
for (const [key, value] of Object.entries(cssInputs)) {
|
|
202
199
|
try {
|
|
203
|
-
const
|
|
204
|
-
|
|
200
|
+
const cssContent = await buildLoader(`${value}?inline`).then(
|
|
201
|
+
(r) => String(r.default)
|
|
205
202
|
);
|
|
206
|
-
if (typeof cssContent !== "string") {
|
|
203
|
+
if (typeof cssContent !== "string" || cssContent === "undefined") {
|
|
207
204
|
continue;
|
|
208
205
|
}
|
|
209
206
|
if (cssContent) {
|
|
@@ -251,9 +248,7 @@ function reactStaticPlugin(options) {
|
|
|
251
248
|
logger: this.environment.logger,
|
|
252
249
|
workerData: {
|
|
253
250
|
resolvedConfig: serializeResolvedConfig(resolvedConfig),
|
|
254
|
-
userOptions:
|
|
255
|
-
...serializedUserOptions
|
|
256
|
-
}
|
|
251
|
+
userOptions: serializedUserOptions
|
|
257
252
|
}
|
|
258
253
|
});
|
|
259
254
|
if (workerResult.type === "error") {
|
|
@@ -276,8 +271,8 @@ function reactStaticPlugin(options) {
|
|
|
276
271
|
worker,
|
|
277
272
|
logger: createLogger(),
|
|
278
273
|
onEvent: async (event) => {
|
|
279
|
-
if (
|
|
280
|
-
|
|
274
|
+
if (onEvent) {
|
|
275
|
+
onEvent(event);
|
|
281
276
|
}
|
|
282
277
|
if (event.type === "file.write") {
|
|
283
278
|
await event.data.onComplete();
|
|
@@ -297,15 +292,38 @@ function reactStaticPlugin(options) {
|
|
|
297
292
|
globalCss,
|
|
298
293
|
css: {
|
|
299
294
|
...handlerOptions.css,
|
|
300
|
-
inlineCss: handlerOptions.css
|
|
295
|
+
inlineCss: handlerOptions.css.inlineCss
|
|
301
296
|
}
|
|
302
297
|
},
|
|
303
298
|
cssFilesByPage
|
|
304
299
|
);
|
|
305
300
|
let finalResult;
|
|
301
|
+
const errors = [];
|
|
306
302
|
for await (const result of renderPagesGenerator) {
|
|
307
303
|
if (result.type === "error") {
|
|
308
|
-
|
|
304
|
+
errors.push(result.error);
|
|
305
|
+
if (result.error.message.includes("Attempted to load a Client Module outside the hosted root")) {
|
|
306
|
+
const failedRoutes = Array.from(result.failedRoutes || []);
|
|
307
|
+
const failingPage = failedRoutes[failedRoutes.length - 1] || "unknown";
|
|
308
|
+
const hostedRoot = userOptions.moduleBaseURL || "/";
|
|
309
|
+
this.environment.logger.error(
|
|
310
|
+
`❌ Page: ${failingPage} | Hosted root: ${hostedRoot} | Client modules registered outside hosted root`
|
|
311
|
+
);
|
|
312
|
+
} else {
|
|
313
|
+
this.environment.logger.warn(
|
|
314
|
+
`Failed to render page, skipping: ${result.error.message}`
|
|
315
|
+
);
|
|
316
|
+
}
|
|
317
|
+
finalResult = {
|
|
318
|
+
type: "success",
|
|
319
|
+
completedRoutes: result.completedRoutes,
|
|
320
|
+
failedRoutes: void 0,
|
|
321
|
+
htmlSizes: result.htmlSizes,
|
|
322
|
+
rscSizes: result.rscSizes,
|
|
323
|
+
streamMetrics: result.streamMetrics,
|
|
324
|
+
results: result.results
|
|
325
|
+
};
|
|
326
|
+
continue;
|
|
309
327
|
}
|
|
310
328
|
finalResult = result;
|
|
311
329
|
}
|
|
@@ -318,6 +336,11 @@ function reactStaticPlugin(options) {
|
|
|
318
336
|
this.environment.logger.info(
|
|
319
337
|
`Rendered ${finalResult.completedRoutes.size} unique routes in ${finalResult.streamMetrics.duration}ms`
|
|
320
338
|
);
|
|
339
|
+
if (errors.length > 0) {
|
|
340
|
+
this.environment.logger.warn(
|
|
341
|
+
`${errors.length} pages failed to render and were skipped`
|
|
342
|
+
);
|
|
343
|
+
}
|
|
321
344
|
if (process.env["NODE_ENV"] !== "production") {
|
|
322
345
|
this.environment.logger.warn(
|
|
323
346
|
`THIS IS BUILD IS NOT INTENDED FOR PRODUCTION (${process.env["NODE_ENV"]})`
|
|
@@ -325,27 +348,19 @@ function reactStaticPlugin(options) {
|
|
|
325
348
|
}
|
|
326
349
|
timing.render = Date.now() - (timing.renderStart ?? timing.start);
|
|
327
350
|
} catch (error) {
|
|
328
|
-
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
(code) => code === 1 ? resolve() : reject(new Error(`Worker terminated with code ${code}`))
|
|
338
|
-
).catch(reject);
|
|
339
|
-
}
|
|
340
|
-
};
|
|
341
|
-
worker.on("message", shutdownHandler);
|
|
342
|
-
});
|
|
343
|
-
} catch (error) {
|
|
344
|
-
throw error;
|
|
351
|
+
logError(toError(error), this.environment.logger);
|
|
352
|
+
} finally {
|
|
353
|
+
if (worker) {
|
|
354
|
+
try {
|
|
355
|
+
await worker.terminate();
|
|
356
|
+
} catch (error) {
|
|
357
|
+
logError(toError(error), this.environment.logger);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
345
360
|
}
|
|
346
361
|
}
|
|
347
362
|
};
|
|
348
|
-
}
|
|
363
|
+
};
|
|
349
364
|
|
|
350
365
|
export { reactStaticPlugin };
|
|
351
|
-
//# sourceMappingURL=plugin.js.map
|
|
366
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9wbHVnaW4vcmVhY3Qtc3RhdGljL3BsdWdpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIHBsdWdpbi50c1xuICpcbiAqIFBVUlBPU0U6IE1haW4gVml0ZSBwbHVnaW4gZm9yIFJlYWN0IFNlcnZlciBDb21wb25lbnRzIChSU0MpIHN0YXRpYyBzaXRlIGdlbmVyYXRpb25cbiAqXG4gKiBUaGlzIG1vZHVsZTpcbiAqIDEuIE9yY2hlc3RyYXRlcyB0aGUgZW50aXJlIHN0YXRpYyBzaXRlIGdlbmVyYXRpb24gcHJvY2Vzc1xuICogMi4gTWFuYWdlcyB0aGUgbGlmZWN5Y2xlIG9mIHRoZSBSU0MgcmVuZGVyaW5nIHByb2Nlc3NcbiAqIDMuIEhhbmRsZXMgZmlsZSB3cml0aW5nIGZvciBib3RoIGluaXRpYWwgcGFnZSBsb2FkcyBhbmQgY2xpZW50LXNpZGUgbmF2aWdhdGlvblxuICogICAgLSBXcml0ZXMgLmh0bWwgZmlsZXMgZm9yIGluaXRpYWwgcGFnZSBsb2FkcyAoY29tcGxldGUgSFRNTCBkb2N1bWVudClcbiAqICAgIC0gV3JpdGVzIC5yc2MgZmlsZXMgZm9yIGNsaWVudC1zaWRlIG5hdmlnYXRpb24gKFJTQyBjb250ZW50IG9ubHkpXG4gKiA0LiBQcm92aWRlcyBob29rcyBmb3IgVml0ZSB0byBpbnRlZ3JhdGUgd2l0aCB0aGUgYnVpbGQgcHJvY2Vzc1xuICogNS4gTWFuYWdlcyB3b3JrZXIgdGhyZWFkcyBmb3IgcGFyYWxsZWwgcmVuZGVyaW5nXG4gKiA2LiBIYW5kbGVzIGVycm9yIHJlcG9ydGluZyBhbmQgbWV0cmljcyBjb2xsZWN0aW9uXG4gKi9cblxuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgV29ya2VyIH0gZnJvbSBcIm5vZGU6d29ya2VyX3RocmVhZHNcIjtcbmltcG9ydCB7IHR5cGUgTWFuaWZlc3QsIHR5cGUgUmVzb2x2ZWRDb25maWcsIGNyZWF0ZUxvZ2dlciB9IGZyb20gXCJ2aXRlXCI7XG5pbXBvcnQgeyByZXNvbHZlT3B0aW9ucyB9IGZyb20gXCIuLi9jb25maWcvcmVzb2x2ZU9wdGlvbnMuanNcIjtcbmltcG9ydCB7IHJlc29sdmVVc2VyQ29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9yZXNvbHZlVXNlckNvbmZpZy5qc1wiO1xuaW1wb3J0IHsgY3JlYXRlQnVpbGRMb2FkZXIgfSBmcm9tIFwiLi9jcmVhdGVCdWlsZExvYWRlci5qc1wiO1xuaW1wb3J0IHR5cGUge1xuICBCdWlsZFRpbWluZyxcbiAgUmVhY3RTdHJlYW1QbHVnaW5NZXRhLFxuICBSZXNvbHZlZFVzZXJDb25maWcsXG4gIFBsdWdpbkV2ZW50LFxuICBSZW5kZXJQYWdlc1Jlc3VsdCxcbiAgQXV0b0Rpc2NvdmVyZWRGaWxlcyxcbiAgQ3NzQ29udGVudCxcbiAgUmVhY3RTdHJlYW1QbHVnaW5Gbixcbn0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyByZW5kZXJQYWdlcyB9IGZyb20gXCIuL3JlbmRlclBhZ2VzLmpzXCI7XG5pbXBvcnQgeyBnZXRCdW5kbGVNYW5pZmVzdCB9IGZyb20gXCIuLi9oZWxwZXJzL2dldEJ1bmRsZU1hbmlmZXN0LmpzXCI7XG5pbXBvcnQgeyBjcmVhdGVXb3JrZXIgfSBmcm9tIFwiLi4vd29ya2VyL2NyZWF0ZVdvcmtlci5qc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZUF1dG9EaXNjb3ZlciB9IGZyb20gXCIuLi9jb25maWcvYXV0b0Rpc2NvdmVyL3Jlc29sdmVBdXRvRGlzY292ZXIuanNcIjtcbmltcG9ydCB7XG4gIHNlcmlhbGl6ZWRPcHRpb25zLFxuICBzZXJpYWxpemVSZXNvbHZlZENvbmZpZyxcbn0gZnJvbSBcIi4uL2hlbHBlcnMvc2VyaWFsaXplVXNlck9wdGlvbnMuanNcIjtcbmltcG9ydCB7IGNvbGxlY3RNYW5pZmVzdENzcyB9IGZyb20gXCIuLi9oZWxwZXJzL2NvbGxlY3RNYW5pZmVzdENzcy5qc1wiO1xuaW1wb3J0IHsgY3JlYXRlQ3NzUHJvcHMgfSBmcm9tIFwiLi4vaGVscGVycy9jcmVhdGVDc3NQcm9wcy5qc1wiO1xuaW1wb3J0IHsgcGVyZm9ybWFuY2UgfSBmcm9tIFwibm9kZTpwZXJmX2hvb2tzXCI7XG5pbXBvcnQgeyBERUZBVUxUX0NPTkZJRyB9IGZyb20gXCIuLi9jb25maWcvZGVmYXVsdHMuanNcIjtcbmltcG9ydCB7IGJhc2VVUkwgfSBmcm9tIFwiLi4vdXRpbHMvZW52VXJscy5ub2RlLmpzXCI7XG5pbXBvcnQgeyByZWFkRmlsZSB9IGZyb20gXCJub2RlOmZzL3Byb21pc2VzXCI7XG5pbXBvcnQgeyBsb2dFcnJvciB9IGZyb20gXCIuLi9lcnJvci9sb2dFcnJvci5qc1wiO1xuaW1wb3J0IHsgdG9FcnJvciB9IGZyb20gXCIuLi9lcnJvci90b0Vycm9yLmpzXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZhdWx0TW9kdWxlSUQgfSBmcm9tIFwiLi4vY29uZmlnL2NyZWF0ZU1vZHVsZUlELmpzXCI7XG5cblxuZXhwb3J0IHR5cGUgUmVhY3RTdGF0aWNQbHVnaW5GbiA9IFJlYWN0U3RyZWFtUGx1Z2luRm48e1xuICBtZXRhOiBSZWFjdFN0cmVhbVBsdWdpbk1ldGE7XG59PjtcblxuZXhwb3J0IGNvbnN0IHJlYWN0U3RhdGljUGx1Z2luOiBSZWFjdFN0YXRpY1BsdWdpbkZuID1cbiAgZnVuY3Rpb24gX3JlYWN0U3RhdGljUGx1Z2luKG9wdGlvbnMpIHtcbiAgICBsZXQgd29ya2VyOiBXb3JrZXI7XG4gICAgbGV0IHVzZXJDb25maWc6IFJlc29sdmVkVXNlckNvbmZpZztcbiAgICBsZXQgcmVzb2x2ZWRDb25maWc6IFJlc29sdmVkQ29uZmlnO1xuICAgIGxldCBhdXRvRGlzY292ZXJlZEZpbGVzOiBBdXRvRGlzY292ZXJlZEZpbGVzIHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IHNlcnZlck1hbmlmZXN0OiBNYW5pZmVzdCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBjb25zdCB0aW1pbmc6IEJ1aWxkVGltaW5nID0ge1xuICAgICAgc3RhcnQ6IERhdGUubm93KCksXG4gICAgICBjb25maWdSZXNvbHZlZDogMCxcbiAgICAgIGJ1aWxkU3RhcnQ6IDAsXG4gICAgICByZW5kZXJTdGFydDogMCxcbiAgICB9O1xuXG4gICAgY29uc3QgcmVzb2x2ZWRPcHRpb25zID0gcmVzb2x2ZU9wdGlvbnMob3B0aW9ucyk7XG4gICAgaWYgKHJlc29sdmVkT3B0aW9ucy50eXBlID09PSBcImVycm9yXCIpIHtcbiAgICAgIHRocm93IHJlc29sdmVkT3B0aW9ucy5lcnJvcjtcbiAgICB9XG4gICAgY29uc3QgdXNlck9wdGlvbnMgPSByZXNvbHZlZE9wdGlvbnMudXNlck9wdGlvbnM7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogXCJ2aXRlOnBsdWdpbi1yZWFjdC1zZXJ2ZXIvc3RhdGljXCIsXG4gICAgICBlbmZvcmNlOiBcInBvc3RcIixcbiAgICAgIGFwaToge1xuICAgICAgICBtZXRhOiB7IHRpbWluZyB9LFxuICAgICAgfSxcblxuICAgICAgYXN5bmMgY29uZmlnKGNvbmZpZywgY29uZmlnRW52KSB7XG4gICAgICAgIGlmIChjb25maWcucm9vdCAmJiBjb25maWcucm9vdCAhPT0gdXNlck9wdGlvbnMucHJvamVjdFJvb3QpIHtcbiAgICAgICAgICB1c2VyT3B0aW9ucy5wcm9qZWN0Um9vdCA9IGNvbmZpZy5yb290O1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25maWdFbnYuY29tbWFuZCAhPT0gXCJidWlsZFwiKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmKHR5cGVvZiB1c2VyT3B0aW9ucy5tb2R1bGVJRCAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgdXNlck9wdGlvbnMubW9kdWxlSUQgPSBjcmVhdGVEZWZhdWx0TW9kdWxlSUQodXNlck9wdGlvbnMsIGNvbmZpZ0VudiwgdXNlck9wdGlvbnMubG9hZGVyPy5tb2RlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJbml0aWFsaXplIGF1dG9EaXNjb3ZlcmVkRmlsZXMgZm9yIGJvdGggc2VydmVyIGFuZCBjbGllbnQgYnVpbGRzXG4gICAgICAgIGNvbnN0IGF1dG9EaXNjb3ZlclJlc3VsdCA9IGF3YWl0IHJlc29sdmVBdXRvRGlzY292ZXIoe1xuICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICBjb25maWdFbnYsXG4gICAgICAgICAgdXNlck9wdGlvbnMsXG4gICAgICAgICAgY29uZGl0aW9uOiBcInJlYWN0LXNlcnZlclwiLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGF1dG9EaXNjb3ZlclJlc3VsdC50eXBlID09PSBcImVycm9yXCIpIHtcbiAgICAgICAgICB0aHJvdyBhdXRvRGlzY292ZXJSZXN1bHQuZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgYXV0b0Rpc2NvdmVyZWRGaWxlcyA9IGF1dG9EaXNjb3ZlclJlc3VsdC5hdXRvRGlzY292ZXJlZEZpbGVzO1xuICAgICAgICBjb25zdCByZXNvbHZlZENvbmZpZyA9IHJlc29sdmVVc2VyQ29uZmlnKHtcbiAgICAgICAgICBjb25kaXRpb246IFwicmVhY3Qtc2VydmVyXCIsXG4gICAgICAgICAgY29uZmlnLFxuICAgICAgICAgIGNvbmZpZ0VudixcbiAgICAgICAgICB1c2VyT3B0aW9ucyxcbiAgICAgICAgICBhdXRvRGlzY292ZXJlZEZpbGVzLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHJlc29sdmVkQ29uZmlnLnR5cGUgPT09IFwiZXJyb3JcIikge1xuICAgICAgICAgIHRocm93IHJlc29sdmVkQ29uZmlnLmVycm9yO1xuICAgICAgICB9XG5cbiAgICAgICAgdXNlckNvbmZpZyA9IHJlc29sdmVkQ29uZmlnLnVzZXJDb25maWc7XG4gICAgICAgIHRpbWluZy5jb25maWdSZXNvbHZlZCA9IERhdGUubm93KCk7XG4gICAgICB9LFxuICAgICAgY29uZmlnUmVzb2x2ZWQoY29uZmlnKSB7XG4gICAgICAgIHJlc29sdmVkQ29uZmlnID0gY29uZmlnO1xuICAgICAgfSxcbiAgICAgIGFzeW5jIGJ1aWxkU3RhcnQoKSB7XG4gICAgICAgIHRpbWluZy5idWlsZFN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgaWYgKHVzZXJPcHRpb25zLm9uRXZlbnQgJiYgYXV0b0Rpc2NvdmVyZWRGaWxlcykge1xuICAgICAgICAgIHVzZXJPcHRpb25zLm9uRXZlbnQoe1xuICAgICAgICAgICAgdHlwZTogXCJidWlsZC5zdGFydFwiLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBwYWdlczogQXJyYXkuZnJvbShhdXRvRGlzY292ZXJlZEZpbGVzLnVybE1hcC5rZXlzKCkpLFxuICAgICAgICAgICAgICBmaWxlczogYXV0b0Rpc2NvdmVyZWRGaWxlcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgIGFzeW5jIHJlbmRlclN0YXJ0KCkge1xuICAgICAgICB0aW1pbmcucmVuZGVyU3RhcnQgPSBEYXRlLm5vdygpO1xuICAgICAgfSxcblxuICAgICAgYXN5bmMgd3JpdGVCdW5kbGUob3B0aW9ucywgYnVuZGxlKSB7XG4gICAgICAgIGlmICh1c2VyT3B0aW9ucy5vbkV2ZW50KSB7XG4gICAgICAgICAgdXNlck9wdGlvbnMub25FdmVudCh7XG4gICAgICAgICAgICB0eXBlOiBcImJ1aWxkLndyaXRlQnVuZGxlLnN0YXRpYy1zZXJ2ZXJcIixcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgcGFnZXM6IEFycmF5LmZyb20oYXV0b0Rpc2NvdmVyZWRGaWxlcz8udXJsTWFwLmtleXMoKSA/PyBbXSksXG4gICAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgICAgIGJ1bmRsZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBidW5kbGVNYW5pZmVzdCA9IGdldEJ1bmRsZU1hbmlmZXN0PGZhbHNlPih7XG4gICAgICAgICAgICBidW5kbGUsXG4gICAgICAgICAgICBub3JtYWxpemVyOiB1c2VyT3B0aW9ucy5ub3JtYWxpemVyLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNvbnN0IG1hbmlmZXN0UGF0aCA9XG4gICAgICAgICAgICB0eXBlb2YgcmVzb2x2ZWRDb25maWcuYnVpbGQubWFuaWZlc3QgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgPyByZXNvbHZlZENvbmZpZy5idWlsZC5tYW5pZmVzdFxuICAgICAgICAgICAgICA6IFwiLnZpdGUvbWFuaWZlc3QuanNvblwiO1xuICAgICAgICAgIGlmICghYnVuZGxlTWFuaWZlc3RbbWFuaWZlc3RQYXRoXSB8fCAhKFwic291cmNlXCIgaW4gYnVuZGxlTWFuaWZlc3RbbWFuaWZlc3RQYXRoXSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlNlcnZlciBtYW5pZmVzdCBub3QgZm91bmRcIik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc2VydmVyTWFuaWZlc3QgPSBKU09OLnBhcnNlKFxuICAgICAgICAgICAgYnVuZGxlTWFuaWZlc3RbbWFuaWZlc3RQYXRoXS5zb3VyY2UgYXMgc3RyaW5nXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmICghc2VydmVyTWFuaWZlc3QpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkZhaWxlZCB0byBwYXJzZSBzZXJ2ZXIgbWFuaWZlc3RcIik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgYnVpbGRMb2FkZXIgPSBjcmVhdGVCdWlsZExvYWRlcihcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdXNlckNvbmZpZyxcbiAgICAgICAgICAgICAgdXNlck9wdGlvbnM6IHVzZXJPcHRpb25zLFxuICAgICAgICAgICAgICBzZXJ2ZXJNYW5pZmVzdDogc2VydmVyTWFuaWZlc3QgPz8ge30sXG4gICAgICAgICAgICAgIHN0YXRpY01hbmlmZXN0OiBhdXRvRGlzY292ZXJlZEZpbGVzPy5zdGF0aWNNYW5pZmVzdCA/PyB7fSxcbiAgICAgICAgICAgICAgY2xpZW50TWFuaWZlc3Q6IHt9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJ1bmRsZVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICAvLyBDcmVhdGUgQ1NTIHByb3BzIGZvciBlYWNoIENTUyBmaWxlXG4gICAgICAgICAgY29uc3QgY3NzRmlsZXNCeVBhZ2UgPSBuZXcgTWFwKCk7XG5cbiAgICAgICAgICAvLyBGaXJzdCBjb2xsZWN0IGdsb2JhbCBzdHlsZXMgZnJvbSBpbmRleC5odG1sXG4gICAgICAgICAgY29uc3QgaW5kZXhIdG1sQ3NzSW5wdXRzID0gY29sbGVjdE1hbmlmZXN0Q3NzKFxuICAgICAgICAgICAgYXV0b0Rpc2NvdmVyZWRGaWxlcz8uc3RhdGljTWFuaWZlc3QgPz8ge30sXG4gICAgICAgICAgICBcImluZGV4Lmh0bWxcIlxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgY2xpZW50RW50cnlDc3NJbnB1dHMgPSB1c2VyT3B0aW9ucy5jbGllbnRFbnRyeVxuICAgICAgICAgICAgPyBjb2xsZWN0TWFuaWZlc3RDc3MoXG4gICAgICAgICAgICAgICAgYXV0b0Rpc2NvdmVyZWRGaWxlcz8uc3RhdGljTWFuaWZlc3QgPz8ge30sXG4gICAgICAgICAgICAgICAgdXNlck9wdGlvbnMuY2xpZW50RW50cnlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICAgIGNvbnN0IGdsb2JhbENzc0lucHV0cyA9IHtcbiAgICAgICAgICAgIC4uLmluZGV4SHRtbENzc0lucHV0cyxcbiAgICAgICAgICAgIC4uLmNsaWVudEVudHJ5Q3NzSW5wdXRzLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBjb25zdCBnbG9iYWxDc3MgPSBuZXcgTWFwKCk7XG4gICAgICAgICAgLy8gQ29sbGVjdCBDU1MgZmlsZXMgZm9yIGVhY2ggcGFnZSBhbmQgaXRzIHByb3BzXG4gICAgICAgICAgZm9yIChjb25zdCBbdXJsLCB7IHBhZ2UsIHByb3BzIH1dIG9mIGF1dG9EaXNjb3ZlcmVkRmlsZXM/LnVybE1hcCA/P1xuICAgICAgICAgICAgW10pIHtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkU2VydmVyTWFuaWZlc3QgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHNlcnZlck1hbmlmZXN0KS5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdmFsdWUuY3NzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBba2V5LCB2YWx1ZV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBjc3M6XG4gICAgICAgICAgICAgICAgICAgICAgYXV0b0Rpc2NvdmVyZWRGaWxlcz8uc3RhdGljTWFuaWZlc3Rba2V5XT8uY3NzID8/XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWUuY3NzLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGNzc0lucHV0cyA9IGNvbGxlY3RNYW5pZmVzdENzcyhcbiAgICAgICAgICAgICAgdHJhbnNmb3JtZWRTZXJ2ZXJNYW5pZmVzdCxcbiAgICAgICAgICAgICAgcHJvcHMgPyBbcGFnZSwgcHJvcHNdIDogcGFnZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIC8vIENyZWF0ZSBhIG1hcCBmb3IgdGhpcyBwYWdlJ3MgQ1NTIGZpbGVzXG4gICAgICAgICAgICBjb25zdCBwYWdlQ3NzTWFwOiBNYXA8c3RyaW5nLCBDc3NDb250ZW50PiA9IG5ldyBNYXAoKTtcbiAgICAgICAgICAgIC8vIEFkZCBnbG9iYWwgc3R5bGVzIGlmIHRoZXkgZXhpc3RcbiAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhnbG9iYWxDc3NJbnB1dHMpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZ2xvYmFsQ3NzSW5wdXRzKSkge1xuICAgICAgICAgICAgICAgIGxldCBjc3NDb250ZW50ID0gYXdhaXQgYnVpbGRMb2FkZXIoYCR7dmFsdWV9P2lubGluZWApLnRoZW4oXG4gICAgICAgICAgICAgICAgICAocikgPT4gci5kZWZhdWx0XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAoY3NzQ29udGVudCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhY3NzQ29udGVudCkge1xuICAgICAgICAgICAgICAgICAgY3NzQ29udGVudCA9XG4gICAgICAgICAgICAgICAgICAgIChhd2FpdCByZWFkRmlsZShcbiAgICAgICAgICAgICAgICAgICAgICBqb2luKFxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlck9wdGlvbnMucHJvamVjdFJvb3QsXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VyT3B0aW9ucy5idWlsZC5vdXREaXIsXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VyT3B0aW9ucy5idWlsZC5zdGF0aWMsXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXlcbiAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgIFwidXRmLThcIlxuICAgICAgICAgICAgICAgICAgICApKSA/PyBcIlwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY3NzQ29udGVudCkge1xuICAgICAgICAgICAgICAgICAgZ2xvYmFsQ3NzLnNldChcbiAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICBjcmVhdGVDc3NQcm9wcyh7XG4gICAgICAgICAgICAgICAgICAgICAgaWQ6IGtleSxcbiAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBjc3NDb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgIHVzZXJPcHRpb25zOiB1c2VyT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEFkZCBwYWdlLXNwZWNpZmljIHN0eWxlc1xuICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoY3NzSW5wdXRzKSkge1xuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNzc0NvbnRlbnQgPSBhd2FpdCBidWlsZExvYWRlcihgJHt2YWx1ZX0/aW5saW5lYCkudGhlbihcbiAgICAgICAgICAgICAgICAgIChyKSA9PiBTdHJpbmcoci5kZWZhdWx0KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgdHlwZW9mIGNzc0NvbnRlbnQgIT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgICAgICAgICAgIGNzc0NvbnRlbnQgPT09IFwidW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY3NzQ29udGVudCkge1xuICAgICAgICAgICAgICAgICAgLy8gRW5zdXJlIHRoZSBDU1MgZmlsZSBwYXRoIGlzIHByb3Blcmx5IHJlc29sdmVkXG4gICAgICAgICAgICAgICAgICBwYWdlQ3NzTWFwLnNldChcbiAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICBjcmVhdGVDc3NQcm9wcyh7XG4gICAgICAgICAgICAgICAgICAgICAgaWQ6IGtleSxcbiAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBjc3NDb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgIHVzZXJPcHRpb25zOiB1c2VyT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgRmFpbGVkIHRvIHByb2Nlc3MgQ1NTIGZpbGUgJHt2YWx1ZX06YCwgZXJyb3IpO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjc3NGaWxlc0J5UGFnZS5zZXQodXJsLCBwYWdlQ3NzTWFwKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBzdGF0aWNNYW5pZmVzdCA9IGF1dG9EaXNjb3ZlcmVkRmlsZXM/LnN0YXRpY01hbmlmZXN0ID8/IHt9O1xuICAgICAgICAgIGNvbnN0IGluZGV4SHRtbCA9IHN0YXRpY01hbmlmZXN0Py5bXCJpbmRleC5odG1sXCJdPy5maWxlO1xuICAgICAgICAgIGNvbnN0IHBpcGVhYmxlU3RyZWFtT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIC4uLnVzZXJPcHRpb25zLnBpcGVhYmxlU3RyZWFtT3B0aW9ucyxcbiAgICAgICAgICAgIGJvb3RzdHJhcE1vZHVsZXM6IFtcbiAgICAgICAgICAgICAgLi4uKGluZGV4SHRtbCA/IFtiYXNlVVJMKGluZGV4SHRtbCldIDogW10pLFxuICAgICAgICAgICAgICAuLi4odXNlck9wdGlvbnMucGlwZWFibGVTdHJlYW1PcHRpb25zPy5ib290c3RyYXBNb2R1bGVzID8/IFtdKSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfTtcbiAgICAgICAgICB1c2VyT3B0aW9ucy5waXBlYWJsZVN0cmVhbU9wdGlvbnMgPSBwaXBlYWJsZVN0cmVhbU9wdGlvbnM7XG4gICAgICAgICAgY29uc3Qgc2VyaWFsaXplZFVzZXJPcHRpb25zID0gc2VyaWFsaXplZE9wdGlvbnMoXG4gICAgICAgICAgICB1c2VyT3B0aW9ucyxcbiAgICAgICAgICAgIGF1dG9EaXNjb3ZlcmVkRmlsZXMhXG4gICAgICAgICAgKTtcbiAgICAgICAgICAvLyBDcmVhdGUgd29ya2VyXG4gICAgICAgICAgaWYgKCF3b3JrZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHZpdGVFbnZQcmVmaXggPVxuICAgICAgICAgICAgICB0eXBlb2YgcmVzb2x2ZWRDb25maWcuZW52UHJlZml4ID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgPyByZXNvbHZlZENvbmZpZy5lbnZQcmVmaXhcbiAgICAgICAgICAgICAgICA6IEFycmF5LmlzQXJyYXkocmVzb2x2ZWRDb25maWcuZW52UHJlZml4KVxuICAgICAgICAgICAgICAgID8gcmVzb2x2ZWRDb25maWcuZW52UHJlZml4WzBdXG4gICAgICAgICAgICAgICAgOiBERUZBVUxUX0NPTkZJRy5FTlZfUFJFRklYO1xuICAgICAgICAgICAgY29uc3Qgcm91dGVDb3VudCA9IGF1dG9EaXNjb3ZlcmVkRmlsZXM/LnVybE1hcC5zaXplID8/IDA7XG4gICAgICAgICAgICBjb25zdCBtYXhMaXN0ZW5lcnMgPSByb3V0ZUNvdW50ICsgMTtcbiAgICAgICAgICAgIGNvbnN0IHdvcmtlclJlc3VsdCA9IGF3YWl0IGNyZWF0ZVdvcmtlcih7XG4gICAgICAgICAgICAgIHByb2plY3RSb290OiB1c2VyT3B0aW9ucy5wcm9qZWN0Um9vdCxcbiAgICAgICAgICAgICAgd29ya2VyUGF0aDogdXNlck9wdGlvbnMuaHRtbFdvcmtlclBhdGgsXG4gICAgICAgICAgICAgIGN1cnJlbnRDb25kaXRpb246IFwicmVhY3Qtc2VydmVyXCIsXG4gICAgICAgICAgICAgIHJldmVyc2VDb25kaXRpb246IFwicmVhY3QtY2xpZW50XCIsXG4gICAgICAgICAgICAgIG1heExpc3RlbmVyczogbWF4TGlzdGVuZXJzLFxuICAgICAgICAgICAgICBlbnZQcmVmaXg6IHZpdGVFbnZQcmVmaXgsXG4gICAgICAgICAgICAgIGxvZ2dlcjogdGhpcy5lbnZpcm9ubWVudC5sb2dnZXIsXG4gICAgICAgICAgICAgIHdvcmtlckRhdGE6IHtcbiAgICAgICAgICAgICAgICByZXNvbHZlZENvbmZpZzogc2VyaWFsaXplUmVzb2x2ZWRDb25maWcocmVzb2x2ZWRDb25maWcpLFxuICAgICAgICAgICAgICAgIHVzZXJPcHRpb25zOiBzZXJpYWxpemVkVXNlck9wdGlvbnMsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICh3b3JrZXJSZXN1bHQudHlwZSA9PT0gXCJlcnJvclwiKSB7XG4gICAgICAgICAgICAgIHRocm93IHdvcmtlclJlc3VsdC5lcnJvcjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAod29ya2VyUmVzdWx0LnR5cGUgPT09IFwic2tpcFwiKSB7XG4gICAgICAgICAgICAgIHRoaXMuZW52aXJvbm1lbnQubG9nZ2VyLmluZm8oXG4gICAgICAgICAgICAgICAgXCJXb3JrZXIgbm90IGNyZWF0ZWQsIHNraXBwaW5nIHN0YXRpYyBidWlsZFwiXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHdvcmtlciA9IHdvcmtlclJlc3VsdC53b3JrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFJlbmRlciBwYWdlcyAtIGNvbXBvbmVudCByZXNvbHV0aW9uIG5vdyBoYXBwZW5zIHBlci1yb3V0ZSBpbiByZW5kZXJQYWdlXG4gICAgICAgICAgY29uc3QgeyBvbkV2ZW50LCAuLi5oYW5kbGVyT3B0aW9ucyB9ID0gdXNlck9wdGlvbnM7XG4gICAgICAgICAgY29uc3QgcmVuZGVyUGFnZXNHZW5lcmF0b3IgPSByZW5kZXJQYWdlcyhcbiAgICAgICAgICAgIGF1dG9EaXNjb3ZlcmVkRmlsZXMhLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi5oYW5kbGVyT3B0aW9ucyxcbiAgICAgICAgICAgICAgbG9hZGVyOiBidWlsZExvYWRlcixcbiAgICAgICAgICAgICAgd29ya2VyOiB3b3JrZXIsXG4gICAgICAgICAgICAgIGxvZ2dlcjogY3JlYXRlTG9nZ2VyKCksXG4gICAgICAgICAgICAgIG9uRXZlbnQ6IGFzeW5jIChldmVudDogUGx1Z2luRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAob25FdmVudCkge1xuICAgICAgICAgICAgICAgICAgb25FdmVudChldmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIEFkZCBmaWxlIHdyaXRlIGNvbXBsZXRpb24gZXZlbnRcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gXCJmaWxlLndyaXRlXCIpIHtcbiAgICAgICAgICAgICAgICAgIGF3YWl0IGV2ZW50LmRhdGEub25Db21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcGlwZWFibGVTdHJlYW1PcHRpb25zOiBwaXBlYWJsZVN0cmVhbU9wdGlvbnMsXG4gICAgICAgICAgICAgIG1hbmlmZXN0OiBzZXJ2ZXJNYW5pZmVzdCA/PyB7fSxcbiAgICAgICAgICAgICAgYnVpbGQ6IHtcbiAgICAgICAgICAgICAgICBodG1sT3V0cHV0UGF0aDogdXNlck9wdGlvbnMuYnVpbGQuaHRtbE91dHB1dFBhdGgsXG4gICAgICAgICAgICAgICAgcnNjT3V0cHV0UGF0aDogdXNlck9wdGlvbnMuYnVpbGQucnNjT3V0cHV0UGF0aCxcbiAgICAgICAgICAgICAgICBvdXREaXI6IHVzZXJPcHRpb25zLmJ1aWxkLm91dERpcixcbiAgICAgICAgICAgICAgICBwYWdlczogdXNlck9wdGlvbnMuYnVpbGQucGFnZXMsXG4gICAgICAgICAgICAgICAgc2VydmVyOiB1c2VyT3B0aW9ucy5idWlsZC5zZXJ2ZXIsXG4gICAgICAgICAgICAgICAgc3RhdGljOiB1c2VyT3B0aW9ucy5idWlsZC5zdGF0aWMsXG4gICAgICAgICAgICAgICAgY2xpZW50OiB1c2VyT3B0aW9ucy5idWlsZC5jbGllbnQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGdsb2JhbENzczogZ2xvYmFsQ3NzLFxuICAgICAgICAgICAgICBjc3M6IHtcbiAgICAgICAgICAgICAgICAuLi5oYW5kbGVyT3B0aW9ucy5jc3MsXG4gICAgICAgICAgICAgICAgaW5saW5lQ3NzOiBoYW5kbGVyT3B0aW9ucy5jc3MuaW5saW5lQ3NzLFxuICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY3NzRmlsZXNCeVBhZ2VcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgLy8gUHJvY2VzcyByZW5kZXIgcmVzdWx0c1xuICAgICAgICAgIGxldCBmaW5hbFJlc3VsdDogUmVuZGVyUGFnZXNSZXN1bHQgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgY29uc3QgZXJyb3JzOiBFcnJvcltdID0gW107XG4gICAgICAgICAgZm9yIGF3YWl0IChjb25zdCByZXN1bHQgb2YgcmVuZGVyUGFnZXNHZW5lcmF0b3IpIHtcbiAgICAgICAgICAgIGlmIChyZXN1bHQudHlwZSA9PT0gXCJlcnJvclwiKSB7XG4gICAgICAgICAgICAgIGVycm9ycy5wdXNoKHJlc3VsdC5lcnJvcik7XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAvLyBQcm92aWRlIGRldmVsb3Blci1mcmllbmRseSBlcnJvciBtZXNzYWdlcyBmb3IgY29tbW9uIGlzc3Vlc1xuICAgICAgICAgICAgICBpZiAocmVzdWx0LmVycm9yLm1lc3NhZ2UuaW5jbHVkZXMoXCJBdHRlbXB0ZWQgdG8gbG9hZCBhIENsaWVudCBNb2R1bGUgb3V0c2lkZSB0aGUgaG9zdGVkIHJvb3RcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmYWlsZWRSb3V0ZXMgPSBBcnJheS5mcm9tKHJlc3VsdC5mYWlsZWRSb3V0ZXMgfHwgW10pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZhaWxpbmdQYWdlID0gZmFpbGVkUm91dGVzW2ZhaWxlZFJvdXRlcy5sZW5ndGggLSAxXSB8fCAndW5rbm93bic7XG4gICAgICAgICAgICAgICAgY29uc3QgaG9zdGVkUm9vdCA9IHVzZXJPcHRpb25zLm1vZHVsZUJhc2VVUkwgfHwgJy8nO1xuICAgICAgICAgICAgICAgIHRoaXMuZW52aXJvbm1lbnQubG9nZ2VyLmVycm9yKFxuICAgICAgICAgICAgICAgICAgYOKdjCBQYWdlOiAke2ZhaWxpbmdQYWdlfSB8IEhvc3RlZCByb290OiAke2hvc3RlZFJvb3R9IHwgQ2xpZW50IG1vZHVsZXMgcmVnaXN0ZXJlZCBvdXRzaWRlIGhvc3RlZCByb290YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbnZpcm9ubWVudC5sb2dnZXIud2FybihcbiAgICAgICAgICAgICAgICAgIGBGYWlsZWQgdG8gcmVuZGVyIHBhZ2UsIHNraXBwaW5nOiAke3Jlc3VsdC5lcnJvci5tZXNzYWdlfWBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAvLyBDb250aW51ZSBwcm9jZXNzaW5nIG90aGVyIHBhZ2VzIGluc3RlYWQgb2YgdGhyb3dpbmdcbiAgICAgICAgICAgICAgZmluYWxSZXN1bHQgPSB7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgICAgICAgY29tcGxldGVkUm91dGVzOiByZXN1bHQuY29tcGxldGVkUm91dGVzLFxuICAgICAgICAgICAgICAgIGZhaWxlZFJvdXRlczogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGh0bWxTaXplczogcmVzdWx0Lmh0bWxTaXplcyxcbiAgICAgICAgICAgICAgICByc2NTaXplczogcmVzdWx0LnJzY1NpemVzLFxuICAgICAgICAgICAgICAgIHN0cmVhbU1ldHJpY3M6IHJlc3VsdC5zdHJlYW1NZXRyaWNzLFxuICAgICAgICAgICAgICAgIHJlc3VsdHM6IHJlc3VsdC5yZXN1bHRzLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpbmFsUmVzdWx0ID0gcmVzdWx0O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghZmluYWxSZXN1bHQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vIHJlbmRlciByZXN1bHQgcHJvZHVjZWRcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGZpbmFsUmVzdWx0LnN0cmVhbU1ldHJpY3MuZHVyYXRpb24gPSBNYXRoLnJvdW5kKFxuICAgICAgICAgICAgcGVyZm9ybWFuY2Uubm93KCkgLSBmaW5hbFJlc3VsdC5zdHJlYW1NZXRyaWNzLnN0YXJ0VGltZVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICB0aGlzLmVudmlyb25tZW50LmxvZ2dlci5pbmZvKFxuICAgICAgICAgICAgYFJlbmRlcmVkICR7ZmluYWxSZXN1bHQuY29tcGxldGVkUm91dGVzLnNpemV9IHVuaXF1ZSByb3V0ZXMgaW4gJHtmaW5hbFJlc3VsdC5zdHJlYW1NZXRyaWNzLmR1cmF0aW9ufW1zYFxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmVudmlyb25tZW50LmxvZ2dlci53YXJuKFxuICAgICAgICAgICAgICBgJHtlcnJvcnMubGVuZ3RofSBwYWdlcyBmYWlsZWQgdG8gcmVuZGVyIGFuZCB3ZXJlIHNraXBwZWRgXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocHJvY2Vzcy5lbnZbXCJOT0RFX0VOVlwiXSAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgICAgICAgIHRoaXMuZW52aXJvbm1lbnQubG9nZ2VyLndhcm4oXG4gICAgICAgICAgICAgIGBUSElTIElTIEJVSUxEIElTIE5PVCBJTlRFTkRFRCBGT1IgUFJPRFVDVElPTiAoJHtwcm9jZXNzLmVudltcIk5PREVfRU5WXCJdfSlgXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFVwZGF0ZSB0aW1pbmdcbiAgICAgICAgICB0aW1pbmcucmVuZGVyID0gRGF0ZS5ub3coKSAtICh0aW1pbmcucmVuZGVyU3RhcnQgPz8gdGltaW5nLnN0YXJ0KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBsb2dFcnJvcih0b0Vycm9yKGVycm9yKSwgdGhpcy5lbnZpcm9ubWVudC5sb2dnZXIpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIC8vIENsZWFudXBcbiAgICAgICAgICBpZiAod29ya2VyKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAvLyBGb3JjZSB0ZXJtaW5hdGUgdGhlIHdvcmtlciB3aXRob3V0IHdhaXRpbmcgZm9yIGdyYWNlZnVsIHNodXRkb3duXG4gICAgICAgICAgICAgIGF3YWl0IHdvcmtlci50ZXJtaW5hdGUoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgIGxvZ0Vycm9yKHRvRXJyb3IoZXJyb3IpLCB0aGlzLmVudmlyb25tZW50LmxvZ2dlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0gYXMgY29uc3Q7XG4gIH07XG4iXSwibmFtZXMiOlsicmVzb2x2ZWRDb25maWciLCJvcHRpb25zIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBdURhLE1BQUEsaUJB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
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export
|
|
1
|
+
import type { RenderPageResult, ReactStreamHandlerFn } from "../types.js";
|
|
2
|
+
export type RenderPageReturn = AsyncGenerator<RenderPageResult, void, unknown>;
|
|
3
|
+
export type RenderPageFn = ReactStreamHandlerFn<RenderPageReturn>;
|
|
4
|
+
export declare const renderPage: RenderPageFn;
|
|
3
5
|
//# sourceMappingURL=renderPage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderPage.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/renderPage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"renderPage.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/renderPage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAMrB,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAE/E,MAAM,MAAM,YAAY,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,CAAA;AAEjE,eAAO,MAAM,UAAU,EAAE,YAmJxB,CAAA"}
|