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
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vite-plugin-react-server
|
|
3
|
+
* Copyright (c) Nico Brinkkemper
|
|
4
|
+
* MIT License
|
|
5
|
+
*/
|
|
6
|
+
import { findDirectiveMatches } from './findDirectiveMatches.js';
|
|
7
|
+
import { isFunctionNode } from './typeGuards.js';
|
|
8
|
+
import { getFunctionBody } from './getFunctionBody.js';
|
|
9
|
+
import { getFunctionName } from './getFunctionName.js';
|
|
10
|
+
import { getExportedName } from './getExportedName.js';
|
|
11
|
+
import { processFunctionNode } from './processFunctionNode.js';
|
|
12
|
+
import { getDirectiveValue, isDirectiveAtStart, matchOverlapsDirective } from './utils.js';
|
|
13
|
+
|
|
14
|
+
function analyzeDirectives(ast, source, optionsOrMatches) {
|
|
15
|
+
const hasOptions = optionsOrMatches != null && typeof optionsOrMatches === "object";
|
|
16
|
+
const directiveMatches = hasOptions && "matches" in optionsOrMatches ? optionsOrMatches : findDirectiveMatches(source);
|
|
17
|
+
const directiveInfo = {
|
|
18
|
+
fileLevel: null,
|
|
19
|
+
functionLevel: [],
|
|
20
|
+
warnings: []
|
|
21
|
+
};
|
|
22
|
+
let foundNonDirective = false;
|
|
23
|
+
let firstDirective = null;
|
|
24
|
+
let verbose = hasOptions && "verbose" in optionsOrMatches && optionsOrMatches.verbose;
|
|
25
|
+
for (const node of ast.body) {
|
|
26
|
+
if (verbose) {
|
|
27
|
+
console.log("[analyzeDirectives] Processing node:", {
|
|
28
|
+
type: node.type,
|
|
29
|
+
start: node.start,
|
|
30
|
+
end: node.end,
|
|
31
|
+
directive: "directive" in node ? node.directive : void 0,
|
|
32
|
+
beforeNode: node.start > 0 ? JSON.stringify(source.slice(0, node.start)) : "none",
|
|
33
|
+
foundNonDirective
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
if (node.type === "ExpressionStatement") {
|
|
37
|
+
let directive = null;
|
|
38
|
+
if ("directive" in node && typeof node.directive === "string") {
|
|
39
|
+
directive = node.directive;
|
|
40
|
+
} else if (node.expression.type === "Literal" && typeof node.expression.value === "string" && (node.expression.value === "use server" || node.expression.value === "use client")) {
|
|
41
|
+
directive = node.expression.value;
|
|
42
|
+
}
|
|
43
|
+
if (directive) {
|
|
44
|
+
const getDirectiveType = optionsOrMatches != null && "loader" in optionsOrMatches ? optionsOrMatches.loader?.getDirectiveType : void 0;
|
|
45
|
+
const type = getDirectiveType?.(directive) ?? (directive === "use server" ? "server" : "client");
|
|
46
|
+
if (!firstDirective) {
|
|
47
|
+
firstDirective = { type, range: [node.start, node.end] };
|
|
48
|
+
if (verbose) {
|
|
49
|
+
console.log("[analyzeDirectives] Found first directive:", directive, "at range:", [node.start, node.end]);
|
|
50
|
+
}
|
|
51
|
+
} else {
|
|
52
|
+
directiveInfo.warnings.push({
|
|
53
|
+
message: "Cannot have both 'use client' and 'use server' directives in the same file",
|
|
54
|
+
range: [0, 0],
|
|
55
|
+
type: "server"
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
} else {
|
|
59
|
+
if (!firstDirective) {
|
|
60
|
+
foundNonDirective = true;
|
|
61
|
+
if (optionsOrMatches != null && "verbose" in optionsOrMatches && optionsOrMatches?.verbose) {
|
|
62
|
+
console.log("[analyzeDirectives] Found non-directive expression before first directive, setting foundNonDirective=true");
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
} else if (node.type !== "ImportDeclaration" && node.type !== "ExportNamedDeclaration" && node.type !== "ExportDefaultDeclaration") {
|
|
67
|
+
if (!firstDirective) {
|
|
68
|
+
foundNonDirective = true;
|
|
69
|
+
if (verbose) {
|
|
70
|
+
console.log("[analyzeDirectives] Found non-directive node before first directive:", node.type, "setting foundNonDirective=true");
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (!firstDirective && node.start > 0) {
|
|
75
|
+
const beforeNode = source.slice(0, node.start).trim();
|
|
76
|
+
if (beforeNode.length > 0) {
|
|
77
|
+
foundNonDirective = true;
|
|
78
|
+
if (verbose) {
|
|
79
|
+
console.log("[analyzeDirectives] Found content before first directive:", JSON.stringify(beforeNode), "setting foundNonDirective=true");
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (firstDirective) {
|
|
85
|
+
directiveInfo.fileLevel = firstDirective;
|
|
86
|
+
if (!foundNonDirective && firstDirective.range[0] > 0) {
|
|
87
|
+
const beforeDirective = source.slice(0, firstDirective.range[0]).trim();
|
|
88
|
+
if (beforeDirective.length > 0) {
|
|
89
|
+
foundNonDirective = true;
|
|
90
|
+
if (verbose) {
|
|
91
|
+
console.log("[analyzeDirectives] Found content before directive:", JSON.stringify(beforeDirective), "setting foundNonDirective=true for directive");
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
if (foundNonDirective) {
|
|
96
|
+
directiveInfo.warnings.push({
|
|
97
|
+
message: "File-level directives must be at the top of the file, before any other code",
|
|
98
|
+
range: [firstDirective.range[0], firstDirective.range[1]],
|
|
99
|
+
type: firstDirective.type
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
const functionLevelMatches = directiveMatches.matches.filter((match) => {
|
|
104
|
+
if (directiveInfo.fileLevel && match.range[0] === directiveInfo.fileLevel.range[0] && match.range[1] === directiveInfo.fileLevel.range[1]) {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
return true;
|
|
108
|
+
});
|
|
109
|
+
const processedFunctions = /* @__PURE__ */ new Set();
|
|
110
|
+
const functionNodes = [];
|
|
111
|
+
function traverseWithContext(node, context) {
|
|
112
|
+
if (isFunctionNode(node)) {
|
|
113
|
+
const body = getFunctionBody(node);
|
|
114
|
+
if (body) {
|
|
115
|
+
for (const match of functionLevelMatches) {
|
|
116
|
+
const directiveValue = getDirectiveValue(match.type);
|
|
117
|
+
if (isDirectiveAtStart(node, directiveValue)) {
|
|
118
|
+
const directiveNode = body.body[0];
|
|
119
|
+
const directiveStart = directiveNode.start;
|
|
120
|
+
const directiveEnd = directiveNode.end;
|
|
121
|
+
const matchOverlaps = matchOverlapsDirective(match.range, directiveStart, directiveEnd);
|
|
122
|
+
if (matchOverlaps) {
|
|
123
|
+
const functionName = getFunctionName(node) || "anonymous";
|
|
124
|
+
if (context.inFunction) {
|
|
125
|
+
const nameDesc = functionName === "anonymous" ? "" : ` '${functionName}'`;
|
|
126
|
+
directiveInfo.warnings.push({
|
|
127
|
+
message: `Function${nameDesc} with '${directiveValue}' directive cannot be nested inside another function. Directives are only allowed in top-level functions.`,
|
|
128
|
+
range: match.range,
|
|
129
|
+
type: match.type
|
|
130
|
+
});
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
if (context.inClass) {
|
|
134
|
+
const nameDesc = functionName === "anonymous" ? "" : ` '${functionName}'`;
|
|
135
|
+
directiveInfo.warnings.push({
|
|
136
|
+
message: `Class method${nameDesc} with '${directiveValue}' directive is not supported. Directives are only allowed in top-level functions.`,
|
|
137
|
+
range: match.range,
|
|
138
|
+
type: match.type
|
|
139
|
+
});
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
if (match.type === "server") {
|
|
143
|
+
functionNodes.push({ node, match, context: context.inFunction ? "nested" : context.inClass ? "class" : "top-level" });
|
|
144
|
+
} else {
|
|
145
|
+
directiveInfo.warnings.push({
|
|
146
|
+
message: "Function-level 'use client' isn't allowed",
|
|
147
|
+
range: match.range,
|
|
148
|
+
type: "client"
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
traverseChildren(node, { inFunction: true, inClass: context.inClass });
|
|
157
|
+
} else if (node.type === "ClassDeclaration" || node.type === "ClassExpression") {
|
|
158
|
+
traverseChildren(node, { inFunction: context.inFunction, inClass: true });
|
|
159
|
+
} else if (node.type === "MethodDefinition") {
|
|
160
|
+
traverseChildren(node, { inFunction: context.inFunction, inClass: true });
|
|
161
|
+
} else {
|
|
162
|
+
traverseChildren(node, context);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
function traverseChildren(node, context) {
|
|
166
|
+
const nodeWithChildren = node;
|
|
167
|
+
for (const key in nodeWithChildren) {
|
|
168
|
+
if (key === "parent" || key === "start" || key === "end" || key === "loc" || key === "range") {
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
const value = nodeWithChildren[key];
|
|
172
|
+
if (value && typeof value === "object") {
|
|
173
|
+
if (Array.isArray(value)) {
|
|
174
|
+
for (const child of value) {
|
|
175
|
+
if (child && typeof child === "object" && child.type) {
|
|
176
|
+
traverseWithContext(child, context);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
} else if (value.type) {
|
|
180
|
+
traverseWithContext(value, context);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
traverseWithContext(ast, { inFunction: false, inClass: false });
|
|
186
|
+
for (const { node, match } of functionNodes) {
|
|
187
|
+
const name = getFunctionName(node) || "anonymous";
|
|
188
|
+
const exportName = getExportedName(node);
|
|
189
|
+
const functionKey = `${name}-${exportName || ""}-${match.range[0]}`;
|
|
190
|
+
if (processedFunctions.has(functionKey)) continue;
|
|
191
|
+
processedFunctions.add(functionKey);
|
|
192
|
+
processFunctionNode(node, name, exportName, match, directiveInfo);
|
|
193
|
+
}
|
|
194
|
+
if (directiveInfo.fileLevel && directiveInfo.functionLevel.length > 0) {
|
|
195
|
+
for (const func of directiveInfo.functionLevel) {
|
|
196
|
+
if (directiveInfo.fileLevel.type !== func.type) {
|
|
197
|
+
directiveInfo.warnings.push({
|
|
198
|
+
message: `Cannot have both 'use ${directiveInfo.fileLevel.type}' and 'use ${func.type}' directives in the same file`,
|
|
199
|
+
range: func.range,
|
|
200
|
+
type: "server"
|
|
201
|
+
});
|
|
202
|
+
} else if (func.type !== "server") {
|
|
203
|
+
directiveInfo.warnings.push({
|
|
204
|
+
message: `Function-level directives should be 'use server', but got 'use ${func.type}'`,
|
|
205
|
+
range: func.range,
|
|
206
|
+
type: "client"
|
|
207
|
+
});
|
|
208
|
+
} else {
|
|
209
|
+
directiveInfo.warnings.push({
|
|
210
|
+
message: `'use server' is already defined at the top of the file, this directive should be removed.`,
|
|
211
|
+
range: func.range,
|
|
212
|
+
type: "server"
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
return directiveInfo;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
export { analyzeDirectives };
|
|
221
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZURpcmVjdGl2ZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BsdWdpbi9sb2FkZXIvZGlyZWN0aXZlcy9hbmFseXplRGlyZWN0aXZlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaW5kRGlyZWN0aXZlTWF0Y2hlcyB9IGZyb20gXCIuL2ZpbmREaXJlY3RpdmVNYXRjaGVzLmpzXCI7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uTm9kZSB9IGZyb20gXCIuL3R5cGVHdWFyZHMuanNcIjtcbmltcG9ydCB7IGdldEZ1bmN0aW9uQm9keSB9IGZyb20gXCIuL2dldEZ1bmN0aW9uQm9keS5qc1wiO1xuaW1wb3J0IHsgZ2V0RnVuY3Rpb25OYW1lIH0gZnJvbSBcIi4vZ2V0RnVuY3Rpb25OYW1lLmpzXCI7XG5pbXBvcnQgeyBnZXRFeHBvcnRlZE5hbWUgfSBmcm9tIFwiLi9nZXRFeHBvcnRlZE5hbWUuanNcIjtcbmltcG9ydCB7IHByb2Nlc3NGdW5jdGlvbk5vZGUgfSBmcm9tIFwiLi9wcm9jZXNzRnVuY3Rpb25Ob2RlLmpzXCI7XG5pbXBvcnQgeyBpc0RpcmVjdGl2ZUF0U3RhcnQsIGdldERpcmVjdGl2ZVZhbHVlLCBtYXRjaE92ZXJsYXBzRGlyZWN0aXZlIH0gZnJvbSBcIi4vdXRpbHMuanNcIjtcbmltcG9ydCB0eXBlIHsgRGlyZWN0aXZlSW5mbywgRGlyZWN0aXZlTWF0Y2gsIERpcmVjdGl2ZU1hdGNoZXMgfSBmcm9tIFwiLi90eXBlcy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBOb2RlLCBQcm9ncmFtIH0gZnJvbSBcImFjb3JuXCI7XG5pbXBvcnQgdHlwZSB7IERpcmVjdGl2ZU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vdHlwZXMuanNcIjtcblxuLyoqXG4gKiBBbmFseXplcyBkaXJlY3RpdmVzIGluIHRoZSBnaXZlbiBzb3VyY2UgYW5kIEFTVCwgcmV0dXJuaW5nIGRpcmVjdGl2ZUluZm8uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhbmFseXplRGlyZWN0aXZlcyhcbiAgYXN0OiBQcm9ncmFtLCBcbiAgc291cmNlOiBzdHJpbmcsXG4gIG1hdGNoZXM/OiBEaXJlY3RpdmVNYXRjaGVzLFxuKTogRGlyZWN0aXZlSW5mbztcbmV4cG9ydCBmdW5jdGlvbiBhbmFseXplRGlyZWN0aXZlcyhcbiAgYXN0OiBQcm9ncmFtLCBcbiAgc291cmNlOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBEaXJlY3RpdmVPcHRpb25zLFxuKTogRGlyZWN0aXZlSW5mbztcbmV4cG9ydCBmdW5jdGlvbiBhbmFseXplRGlyZWN0aXZlcyhcbiAgYXN0OiBQcm9ncmFtLCBcbiAgc291cmNlOiBzdHJpbmcsXG4gIG9wdGlvbnNPck1hdGNoZXM/OiBEaXJlY3RpdmVNYXRjaGVzIHwgRGlyZWN0aXZlT3B0aW9ucyxcbik6IERpcmVjdGl2ZUluZm8ge1xuICBjb25zdCBoYXNPcHRpb25zICA9IG9wdGlvbnNPck1hdGNoZXMgIT0gbnVsbCAmJiB0eXBlb2Ygb3B0aW9uc09yTWF0Y2hlcyA9PT0gJ29iamVjdCc7XG4gIGNvbnN0IGRpcmVjdGl2ZU1hdGNoZXMgPSBoYXNPcHRpb25zICYmICdtYXRjaGVzJyBpbiBvcHRpb25zT3JNYXRjaGVzXG4gICAgPyBvcHRpb25zT3JNYXRjaGVzXG4gICAgOiBmaW5kRGlyZWN0aXZlTWF0Y2hlcyhzb3VyY2UpO1xuXG4gIGNvbnN0IGRpcmVjdGl2ZUluZm86IERpcmVjdGl2ZUluZm8gPSB7XG4gICAgZmlsZUxldmVsOiBudWxsLFxuICAgIGZ1bmN0aW9uTGV2ZWw6IFtdLFxuICAgIHdhcm5pbmdzOiBbXVxuICB9O1xuXG4gIC8vIEZpbmQgZmlsZS1sZXZlbCBkaXJlY3RpdmVzIGJ5IGNoZWNraW5nIEFTVFxuICBsZXQgZm91bmROb25EaXJlY3RpdmUgPSBmYWxzZTtcbiAgbGV0IGZpcnN0RGlyZWN0aXZlOiBEaXJlY3RpdmVNYXRjaCB8IG51bGwgPSBudWxsO1xuICBsZXQgdmVyYm9zZSA9IGhhc09wdGlvbnMgJiYgJ3ZlcmJvc2UnIGluIG9wdGlvbnNPck1hdGNoZXMgJiYgb3B0aW9uc09yTWF0Y2hlcy52ZXJib3NlO1xuICBmb3IgKGNvbnN0IG5vZGUgb2YgYXN0LmJvZHkpIHtcbiAgICAvLyBEZWJ1ZyBsb2dnaW5nXG4gICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdbYW5hbHl6ZURpcmVjdGl2ZXNdIFByb2Nlc3Npbmcgbm9kZTonLCB7XG4gICAgICAgIHR5cGU6IG5vZGUudHlwZSxcbiAgICAgICAgc3RhcnQ6IG5vZGUuc3RhcnQsXG4gICAgICAgIGVuZDogbm9kZS5lbmQsXG4gICAgICAgIGRpcmVjdGl2ZTogJ2RpcmVjdGl2ZScgaW4gbm9kZSA/IG5vZGUuZGlyZWN0aXZlIDogdW5kZWZpbmVkLFxuICAgICAgICBiZWZvcmVOb2RlOiBub2RlLnN0YXJ0ISA+IDAgPyBKU09OLnN0cmluZ2lmeShzb3VyY2Uuc2xpY2UoMCwgbm9kZS5zdGFydCEpKSA6ICdub25lJyxcbiAgICAgICAgZm91bmROb25EaXJlY3RpdmVcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIE9ubHkgY2hlY2sgZm9yIGRpcmVjdGl2ZXMgaW4gZXhwcmVzc2lvbiBzdGF0ZW1lbnRzXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gXCJFeHByZXNzaW9uU3RhdGVtZW50XCIpIHtcbiAgICAgIGxldCBkaXJlY3RpdmU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgICAgaWYgKFwiZGlyZWN0aXZlXCIgaW4gbm9kZSAmJiB0eXBlb2Ygbm9kZS5kaXJlY3RpdmUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgZGlyZWN0aXZlID0gbm9kZS5kaXJlY3RpdmU7XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBub2RlLmV4cHJlc3Npb24udHlwZSA9PT0gXCJMaXRlcmFsXCIgJiZcbiAgICAgICAgdHlwZW9mIG5vZGUuZXhwcmVzc2lvbi52YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgICAgICAobm9kZS5leHByZXNzaW9uLnZhbHVlID09PSBcInVzZSBzZXJ2ZXJcIiB8fCBub2RlLmV4cHJlc3Npb24udmFsdWUgPT09IFwidXNlIGNsaWVudFwiKVxuICAgICAgKSB7XG4gICAgICAgIGRpcmVjdGl2ZSA9IG5vZGUuZXhwcmVzc2lvbi52YWx1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRpcmVjdGl2ZSkge1xuICAgICAgICBjb25zdCBnZXREaXJlY3RpdmVUeXBlID0gb3B0aW9uc09yTWF0Y2hlcyAhPSBudWxsICYmICdsb2FkZXInIGluIG9wdGlvbnNPck1hdGNoZXMgPyBvcHRpb25zT3JNYXRjaGVzLmxvYWRlcj8uZ2V0RGlyZWN0aXZlVHlwZSA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgdHlwZSA9IGdldERpcmVjdGl2ZVR5cGU/LihkaXJlY3RpdmUpID8/IFxuICAgICAgICAgIChkaXJlY3RpdmUgPT09IFwidXNlIHNlcnZlclwiID8gXCJzZXJ2ZXJcIiA6IFwiY2xpZW50XCIpO1xuICAgICAgICBpZiAoIWZpcnN0RGlyZWN0aXZlKSB7XG4gICAgICAgICAgZmlyc3REaXJlY3RpdmUgPSB7IHR5cGUsIHJhbmdlOiBbbm9kZS5zdGFydCEsIG5vZGUuZW5kIV0gfTtcbiAgICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1thbmFseXplRGlyZWN0aXZlc10gRm91bmQgZmlyc3QgZGlyZWN0aXZlOicsIGRpcmVjdGl2ZSwgJ2F0IHJhbmdlOicsIFtub2RlLnN0YXJ0ISwgbm9kZS5lbmQhXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRpcmVjdGl2ZUluZm8ud2FybmluZ3MucHVzaCh7XG4gICAgICAgICAgICBtZXNzYWdlOiBcIkNhbm5vdCBoYXZlIGJvdGggJ3VzZSBjbGllbnQnIGFuZCAndXNlIHNlcnZlcicgZGlyZWN0aXZlcyBpbiB0aGUgc2FtZSBmaWxlXCIsXG4gICAgICAgICAgICByYW5nZTogWzAsIDBdLFxuICAgICAgICAgICAgdHlwZTogXCJzZXJ2ZXJcIlxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUaGlzIGV4cHJlc3Npb24gc3RhdGVtZW50IGlzIG5vdCBhIGRpcmVjdGl2ZSwgc28gbWFyayBhcyBub24tZGlyZWN0aXZlXG4gICAgICAgIC8vIGlmIHdlIGhhdmVuJ3QgZm91bmQgdGhlIGZpcnN0IGRpcmVjdGl2ZSB5ZXRcbiAgICAgICAgaWYgKCFmaXJzdERpcmVjdGl2ZSkge1xuICAgICAgICAgIGZvdW5kTm9uRGlyZWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICBpZiAob3B0aW9uc09yTWF0Y2hlcyAhPSBudWxsICYmICd2ZXJib3NlJyBpbiBvcHRpb25zT3JNYXRjaGVzICYmIG9wdGlvbnNPck1hdGNoZXM/LnZlcmJvc2UpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdbYW5hbHl6ZURpcmVjdGl2ZXNdIEZvdW5kIG5vbi1kaXJlY3RpdmUgZXhwcmVzc2lvbiBiZWZvcmUgZmlyc3QgZGlyZWN0aXZlLCBzZXR0aW5nIGZvdW5kTm9uRGlyZWN0aXZlPXRydWUnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG5vZGUudHlwZSAhPT0gXCJJbXBvcnREZWNsYXJhdGlvblwiICYmIG5vZGUudHlwZSAhPT0gXCJFeHBvcnROYW1lZERlY2xhcmF0aW9uXCIgJiYgbm9kZS50eXBlICE9PSBcIkV4cG9ydERlZmF1bHREZWNsYXJhdGlvblwiKSB7XG4gICAgICAvLyBPbmx5IG1hcmsgYWN0dWFsIGNvZGUgKG5vdCBpbXBvcnRzL2V4cG9ydHMpIGFzIG5vbi1kaXJlY3RpdmVcbiAgICAgIC8vIGlmIHdlIGhhdmVuJ3QgZm91bmQgdGhlIGZpcnN0IGRpcmVjdGl2ZSB5ZXRcbiAgICAgIGlmICghZmlyc3REaXJlY3RpdmUpIHtcbiAgICAgICAgZm91bmROb25EaXJlY3RpdmUgPSB0cnVlO1xuICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdbYW5hbHl6ZURpcmVjdGl2ZXNdIEZvdW5kIG5vbi1kaXJlY3RpdmUgbm9kZSBiZWZvcmUgZmlyc3QgZGlyZWN0aXZlOicsIG5vZGUudHlwZSwgJ3NldHRpbmcgZm91bmROb25EaXJlY3RpdmU9dHJ1ZScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgdGhpcyBub2RlIGlzIGFmdGVyIGFueSBjb21tZW50cyBvciBub24td2hpdGVzcGFjZSBjb250ZW50XG4gICAgLy8gT25seSBtYXR0ZXJzIGlmIHdlIGhhdmVuJ3QgZm91bmQgdGhlIGZpcnN0IGRpcmVjdGl2ZSB5ZXRcbiAgICBpZiAoIWZpcnN0RGlyZWN0aXZlICYmIG5vZGUuc3RhcnQhID4gMCkge1xuICAgICAgY29uc3QgYmVmb3JlTm9kZSA9IHNvdXJjZS5zbGljZSgwLCBub2RlLnN0YXJ0ISkudHJpbSgpO1xuICAgICAgaWYgKGJlZm9yZU5vZGUubGVuZ3RoID4gMCkge1xuICAgICAgICBmb3VuZE5vbkRpcmVjdGl2ZSA9IHRydWU7XG4gICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ1thbmFseXplRGlyZWN0aXZlc10gRm91bmQgY29udGVudCBiZWZvcmUgZmlyc3QgZGlyZWN0aXZlOicsIEpTT04uc3RyaW5naWZ5KGJlZm9yZU5vZGUpLCAnc2V0dGluZyBmb3VuZE5vbkRpcmVjdGl2ZT10cnVlJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTZXQgdGhlIGZpcnN0IGRpcmVjdGl2ZSBhcyBmaWxlLWxldmVsIGlmIGZvdW5kXG4gIGlmIChmaXJzdERpcmVjdGl2ZSkge1xuICAgIGRpcmVjdGl2ZUluZm8uZmlsZUxldmVsID0gZmlyc3REaXJlY3RpdmU7XG4gICAgXG4gICAgLy8gQ2hlY2sgaWYgdGhlcmUgd2FzIGNvbnRlbnQgKGluY2x1ZGluZyBjb21tZW50cykgYmVmb3JlIHRoZSBkaXJlY3RpdmVcbiAgICBpZiAoIWZvdW5kTm9uRGlyZWN0aXZlICYmIGZpcnN0RGlyZWN0aXZlLnJhbmdlWzBdID4gMCkge1xuICAgICAgY29uc3QgYmVmb3JlRGlyZWN0aXZlID0gc291cmNlLnNsaWNlKDAsIGZpcnN0RGlyZWN0aXZlLnJhbmdlWzBdKS50cmltKCk7XG4gICAgICBpZiAoYmVmb3JlRGlyZWN0aXZlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZm91bmROb25EaXJlY3RpdmUgPSB0cnVlO1xuICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdbYW5hbHl6ZURpcmVjdGl2ZXNdIEZvdW5kIGNvbnRlbnQgYmVmb3JlIGRpcmVjdGl2ZTonLCBKU09OLnN0cmluZ2lmeShiZWZvcmVEaXJlY3RpdmUpLCAnc2V0dGluZyBmb3VuZE5vbkRpcmVjdGl2ZT10cnVlIGZvciBkaXJlY3RpdmUnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBpZiAoZm91bmROb25EaXJlY3RpdmUpIHtcbiAgICAgIGRpcmVjdGl2ZUluZm8ud2FybmluZ3MucHVzaCh7XG4gICAgICAgIG1lc3NhZ2U6IFwiRmlsZS1sZXZlbCBkaXJlY3RpdmVzIG11c3QgYmUgYXQgdGhlIHRvcCBvZiB0aGUgZmlsZSwgYmVmb3JlIGFueSBvdGhlciBjb2RlXCIsXG4gICAgICAgIHJhbmdlOiBbZmlyc3REaXJlY3RpdmUucmFuZ2VbMF0sIGZpcnN0RGlyZWN0aXZlLnJhbmdlWzFdXSxcbiAgICAgICAgdHlwZTogZmlyc3REaXJlY3RpdmUudHlwZVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gUHJvY2VzcyBmdW5jdGlvbi1sZXZlbCBkaXJlY3RpdmVzXG4gIGNvbnN0IGZ1bmN0aW9uTGV2ZWxNYXRjaGVzID0gZGlyZWN0aXZlTWF0Y2hlcy5tYXRjaGVzLmZpbHRlcigobWF0Y2g6IERpcmVjdGl2ZU1hdGNoKSA9PiB7XG4gICAgLy8gU2tpcCBpZiB0aGlzIG1hdGNoIGlzIGFscmVhZHkgdXNlZCBhcyBhIGZpbGUtbGV2ZWwgZGlyZWN0aXZlXG4gICAgaWYgKGRpcmVjdGl2ZUluZm8uZmlsZUxldmVsICYmIFxuICAgICAgICBtYXRjaC5yYW5nZVswXSA9PT0gZGlyZWN0aXZlSW5mby5maWxlTGV2ZWwucmFuZ2VbMF0gJiYgXG4gICAgICAgIG1hdGNoLnJhbmdlWzFdID09PSBkaXJlY3RpdmVJbmZvLmZpbGVMZXZlbC5yYW5nZVsxXSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG5cbiAgY29uc3QgcHJvY2Vzc2VkRnVuY3Rpb25zID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgLy8gRmlyc3QgcGFzczogY29sbGVjdCBhbGwgZnVuY3Rpb24gbm9kZXMgd2l0aCB0aGVpciBkaXJlY3RpdmVzXG4gIGNvbnN0IGZ1bmN0aW9uTm9kZXM6IEFycmF5PHtub2RlOiBOb2RlLCBtYXRjaDogRGlyZWN0aXZlTWF0Y2gsIGNvbnRleHQ6IHN0cmluZ30+ID0gW107XG4gIFxuICAvLyBUcmFjayBjb250ZXh0IGR1cmluZyB0cmF2ZXJzYWxcbiAgZnVuY3Rpb24gdHJhdmVyc2VXaXRoQ29udGV4dChub2RlOiBOb2RlLCBjb250ZXh0OiB7IGluRnVuY3Rpb246IGJvb2xlYW4sIGluQ2xhc3M6IGJvb2xlYW4gfSkge1xuICAgIGlmIChpc0Z1bmN0aW9uTm9kZShub2RlKSkge1xuICAgICAgY29uc3QgYm9keSA9IGdldEZ1bmN0aW9uQm9keShub2RlKTtcbiAgICAgIGlmIChib2R5KSB7XG4gICAgICAgIC8vIENoZWNrIGlmIGRpcmVjdGl2ZSBpcyBhdCB0aGUgc3RhcnQgb2YgdGhlIGZ1bmN0aW9uIGJvZHlcbiAgICAgICAgZm9yIChjb25zdCBtYXRjaCBvZiBmdW5jdGlvbkxldmVsTWF0Y2hlcykge1xuICAgICAgICAgIGNvbnN0IGRpcmVjdGl2ZVZhbHVlID0gZ2V0RGlyZWN0aXZlVmFsdWUobWF0Y2gudHlwZSk7XG4gICAgICAgICAgXG4gICAgICAgICAgaWYgKGlzRGlyZWN0aXZlQXRTdGFydChub2RlLCBkaXJlY3RpdmVWYWx1ZSkpIHtcbiAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBtYXRjaCByYW5nZSBjb3JyZXNwb25kcyB0byB0aGlzIHNwZWNpZmljIGRpcmVjdGl2ZSBwb3NpdGlvblxuICAgICAgICAgICAgY29uc3QgZGlyZWN0aXZlTm9kZSA9IGJvZHkuYm9keVswXTtcbiAgICAgICAgICAgIGNvbnN0IGRpcmVjdGl2ZVN0YXJ0ID0gZGlyZWN0aXZlTm9kZS5zdGFydCE7XG4gICAgICAgICAgICBjb25zdCBkaXJlY3RpdmVFbmQgPSBkaXJlY3RpdmVOb2RlLmVuZCE7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIE1hdGNoIGJhc2VkIG9uIHBvc2l0aW9uIC0gdGhlIG1hdGNoIHNob3VsZCBvdmVybGFwIHdpdGggdGhlIGRpcmVjdGl2ZSBub2RlXG4gICAgICAgICAgICBjb25zdCBtYXRjaE92ZXJsYXBzID0gbWF0Y2hPdmVybGFwc0RpcmVjdGl2ZShtYXRjaC5yYW5nZSwgZGlyZWN0aXZlU3RhcnQsIGRpcmVjdGl2ZUVuZCk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmIChtYXRjaE92ZXJsYXBzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IGdldEZ1bmN0aW9uTmFtZShub2RlKSB8fCBcImFub255bW91c1wiO1xuICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgLy8gQ2hlY2sgZm9yIGludmFsaWQgY29udGV4dHMgYmFzZWQgb24gdHJhdmVyc2FsIGNvbnRleHRcbiAgICAgICAgICAgICAgaWYgKGNvbnRleHQuaW5GdW5jdGlvbikge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5hbWVEZXNjID0gZnVuY3Rpb25OYW1lID09PSBcImFub255bW91c1wiID8gXCJcIiA6IGAgJyR7ZnVuY3Rpb25OYW1lfSdgO1xuICAgICAgICAgICAgICAgIGRpcmVjdGl2ZUluZm8ud2FybmluZ3MucHVzaCh7XG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBgRnVuY3Rpb24ke25hbWVEZXNjfSB3aXRoICcke2RpcmVjdGl2ZVZhbHVlfScgZGlyZWN0aXZlIGNhbm5vdCBiZSBuZXN0ZWQgaW5zaWRlIGFub3RoZXIgZnVuY3Rpb24uIERpcmVjdGl2ZXMgYXJlIG9ubHkgYWxsb3dlZCBpbiB0b3AtbGV2ZWwgZnVuY3Rpb25zLmAsXG4gICAgICAgICAgICAgICAgICByYW5nZTogbWF0Y2gucmFuZ2UsXG4gICAgICAgICAgICAgICAgICB0eXBlOiBtYXRjaC50eXBlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBTa2lwIHRoaXMgZnVuY3Rpb24gZW50aXJlbHlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgaWYgKGNvbnRleHQuaW5DbGFzcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5hbWVEZXNjID0gZnVuY3Rpb25OYW1lID09PSBcImFub255bW91c1wiID8gXCJcIiA6IGAgJyR7ZnVuY3Rpb25OYW1lfSdgO1xuICAgICAgICAgICAgICAgIGRpcmVjdGl2ZUluZm8ud2FybmluZ3MucHVzaCh7XG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBgQ2xhc3MgbWV0aG9kJHtuYW1lRGVzY30gd2l0aCAnJHtkaXJlY3RpdmVWYWx1ZX0nIGRpcmVjdGl2ZSBpcyBub3Qgc3VwcG9ydGVkLiBEaXJlY3RpdmVzIGFyZSBvbmx5IGFsbG93ZWQgaW4gdG9wLWxldmVsIGZ1bmN0aW9ucy5gLFxuICAgICAgICAgICAgICAgICAgcmFuZ2U6IG1hdGNoLnJhbmdlLFxuICAgICAgICAgICAgICAgICAgdHlwZTogbWF0Y2gudHlwZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjsgLy8gU2tpcCB0aGlzIGZ1bmN0aW9uIGVudGlyZWx5XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBPbmx5IGFsbG93IHNlcnZlciBkaXJlY3RpdmVzIGluIGZ1bmN0aW9uLWxldmVsIGNvbnRleHRzXG4gICAgICAgICAgICAgIGlmIChtYXRjaC50eXBlID09PSBcInNlcnZlclwiKSB7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb25Ob2Rlcy5wdXNoKHsgbm9kZSwgbWF0Y2gsIGNvbnRleHQ6IGNvbnRleHQuaW5GdW5jdGlvbiA/IFwibmVzdGVkXCIgOiBjb250ZXh0LmluQ2xhc3MgPyBcImNsYXNzXCIgOiBcInRvcC1sZXZlbFwiIH0pO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIEdlbmVyYXRlIHdhcm5pbmcgZm9yIGNsaWVudCBkaXJlY3RpdmVzIGluIGZ1bmN0aW9uc1xuICAgICAgICAgICAgICAgIGRpcmVjdGl2ZUluZm8ud2FybmluZ3MucHVzaCh7XG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIkZ1bmN0aW9uLWxldmVsICd1c2UgY2xpZW50JyBpc24ndCBhbGxvd2VkXCIsXG4gICAgICAgICAgICAgICAgICByYW5nZTogbWF0Y2gucmFuZ2UsXG4gICAgICAgICAgICAgICAgICB0eXBlOiBcImNsaWVudFwiXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIENvbnRpbnVlIHRyYXZlcnNhbCB3aXRoIHVwZGF0ZWQgY29udGV4dCAobm93IGluc2lkZSBhIGZ1bmN0aW9uKVxuICAgICAgdHJhdmVyc2VDaGlsZHJlbihub2RlLCB7IGluRnVuY3Rpb246IHRydWUsIGluQ2xhc3M6IGNvbnRleHQuaW5DbGFzcyB9KTtcbiAgICB9IGVsc2UgaWYgKG5vZGUudHlwZSA9PT0gXCJDbGFzc0RlY2xhcmF0aW9uXCIgfHwgbm9kZS50eXBlID09PSBcIkNsYXNzRXhwcmVzc2lvblwiKSB7XG4gICAgICAvLyBDb250aW51ZSB0cmF2ZXJzYWwgd2l0aCB1cGRhdGVkIGNvbnRleHQgKG5vdyBpbnNpZGUgYSBjbGFzcylcbiAgICAgIHRyYXZlcnNlQ2hpbGRyZW4obm9kZSwgeyBpbkZ1bmN0aW9uOiBjb250ZXh0LmluRnVuY3Rpb24sIGluQ2xhc3M6IHRydWUgfSk7XG4gICAgfSBlbHNlIGlmIChub2RlLnR5cGUgPT09IFwiTWV0aG9kRGVmaW5pdGlvblwiKSB7XG4gICAgICAvLyBNZXRob2QgZGVmaW5pdGlvbnMgYXJlIGluc2lkZSBjbGFzc2VzXG4gICAgICB0cmF2ZXJzZUNoaWxkcmVuKG5vZGUsIHsgaW5GdW5jdGlvbjogY29udGV4dC5pbkZ1bmN0aW9uLCBpbkNsYXNzOiB0cnVlIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDb250aW51ZSB3aXRoIHNhbWUgY29udGV4dFxuICAgICAgdHJhdmVyc2VDaGlsZHJlbihub2RlLCBjb250ZXh0KTtcbiAgICB9XG4gIH1cbiAgXG4gIGZ1bmN0aW9uIHRyYXZlcnNlQ2hpbGRyZW4obm9kZTogTm9kZSwgY29udGV4dDogeyBpbkZ1bmN0aW9uOiBib29sZWFuLCBpbkNsYXNzOiBib29sZWFuIH0pIHtcbiAgICBjb25zdCBub2RlV2l0aENoaWxkcmVuID0gbm9kZSBhcyBhbnk7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gbm9kZVdpdGhDaGlsZHJlbikge1xuICAgICAgaWYgKGtleSA9PT0gJ3BhcmVudCcgfHwga2V5ID09PSAnc3RhcnQnIHx8IGtleSA9PT0gJ2VuZCcgfHwga2V5ID09PSAnbG9jJyB8fCBrZXkgPT09ICdyYW5nZScpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGNvbnN0IHZhbHVlID0gbm9kZVdpdGhDaGlsZHJlbltrZXldO1xuICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiB2YWx1ZSkge1xuICAgICAgICAgICAgaWYgKGNoaWxkICYmIHR5cGVvZiBjaGlsZCA9PT0gJ29iamVjdCcgJiYgY2hpbGQudHlwZSkge1xuICAgICAgICAgICAgICB0cmF2ZXJzZVdpdGhDb250ZXh0KGNoaWxkLCBjb250ZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUudHlwZSkge1xuICAgICAgICAgIHRyYXZlcnNlV2l0aENvbnRleHQodmFsdWUsIGNvbnRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICAvLyBTdGFydCB0cmF2ZXJzYWwgYXQgdG9wIGxldmVsIChub3QgaW4gZnVuY3Rpb24gb3IgY2xhc3MpXG4gIHRyYXZlcnNlV2l0aENvbnRleHQoYXN0LCB7IGluRnVuY3Rpb246IGZhbHNlLCBpbkNsYXNzOiBmYWxzZSB9KTtcblxuICAvLyBTZWNvbmQgcGFzczogcHJvY2VzcyBmdW5jdGlvbnMgaW4gb3JkZXJcbiAgZm9yIChjb25zdCB7IG5vZGUsIG1hdGNoIH0gb2YgZnVuY3Rpb25Ob2Rlcykge1xuICAgIGNvbnN0IG5hbWUgPSBnZXRGdW5jdGlvbk5hbWUobm9kZSkgfHwgXCJhbm9ueW1vdXNcIjtcbiAgICBjb25zdCBleHBvcnROYW1lID0gZ2V0RXhwb3J0ZWROYW1lKG5vZGUpO1xuICAgIGNvbnN0IGZ1bmN0aW9uS2V5ID0gYCR7bmFtZX0tJHtleHBvcnROYW1lIHx8ICcnfS0ke21hdGNoLnJhbmdlWzBdfWA7XG5cbiAgICAvLyBTa2lwIGlmIHdlJ3ZlIGFscmVhZHkgcHJvY2Vzc2VkIHRoaXMgZnVuY3Rpb25cbiAgICBpZiAocHJvY2Vzc2VkRnVuY3Rpb25zLmhhcyhmdW5jdGlvbktleSkpIGNvbnRpbnVlO1xuICAgIHByb2Nlc3NlZEZ1bmN0aW9ucy5hZGQoZnVuY3Rpb25LZXkpO1xuXG4gICAgcHJvY2Vzc0Z1bmN0aW9uTm9kZShub2RlLCBuYW1lLCBleHBvcnROYW1lLCBtYXRjaCwgZGlyZWN0aXZlSW5mbyk7XG4gIH1cblxuICAvLyBBZGQgd2FybmluZ3MgZm9yIG1peGVkIHNlcnZlci9jbGllbnQgZGlyZWN0aXZlc1xuICBpZiAoZGlyZWN0aXZlSW5mby5maWxlTGV2ZWwgJiYgZGlyZWN0aXZlSW5mby5mdW5jdGlvbkxldmVsLmxlbmd0aCA+IDApIHtcbiAgICBmb3IgKGNvbnN0IGZ1bmMgb2YgZGlyZWN0aXZlSW5mby5mdW5jdGlvbkxldmVsKSB7XG4gICAgICBpZiAoZGlyZWN0aXZlSW5mby5maWxlTGV2ZWwudHlwZSAhPT0gZnVuYy50eXBlKSB7XG4gICAgICAgIGRpcmVjdGl2ZUluZm8ud2FybmluZ3MucHVzaCh7XG4gICAgICAgICAgbWVzc2FnZTogYENhbm5vdCBoYXZlIGJvdGggJ3VzZSAke2RpcmVjdGl2ZUluZm8uZmlsZUxldmVsLnR5cGV9JyBhbmQgJ3VzZSAke2Z1bmMudHlwZX0nIGRpcmVjdGl2ZXMgaW4gdGhlIHNhbWUgZmlsZWAsXG4gICAgICAgICAgcmFuZ2U6IGZ1bmMucmFuZ2UsXG4gICAgICAgICAgdHlwZTogXCJzZXJ2ZXJcIlxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoZnVuYy50eXBlICE9PSBcInNlcnZlclwiKSB7XG4gICAgICAgIGRpcmVjdGl2ZUluZm8ud2FybmluZ3MucHVzaCh7XG4gICAgICAgICAgbWVzc2FnZTogYEZ1bmN0aW9uLWxldmVsIGRpcmVjdGl2ZXMgc2hvdWxkIGJlICd1c2Ugc2VydmVyJywgYnV0IGdvdCAndXNlICR7ZnVuYy50eXBlfSdgLFxuICAgICAgICAgIHJhbmdlOiBmdW5jLnJhbmdlLFxuICAgICAgICAgIHR5cGU6IFwiY2xpZW50XCJcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkaXJlY3RpdmVJbmZvLndhcm5pbmdzLnB1c2goe1xuICAgICAgICAgIG1lc3NhZ2U6IGAndXNlIHNlcnZlcicgaXMgYWxyZWFkeSBkZWZpbmVkIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUsIHRoaXMgZGlyZWN0aXZlIHNob3VsZCBiZSByZW1vdmVkLmAsXG4gICAgICAgICAgcmFuZ2U6IGZ1bmMucmFuZ2UsXG4gICAgICAgICAgdHlwZTogXCJzZXJ2ZXJcIlxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGlyZWN0aXZlSW5mbztcbn0gIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUF3Qk8sU0FBUyxpQkFBQSxDQUNkLEdBQ0EsRUFBQSxNQUFBLEVBQ0EsZ0JBQ2UsRUFBQTtBQUNmLEVBQUEsTUFBTSxVQUFjLEdBQUEsZ0JBQUEsSUFBb0IsSUFBUSxJQUFBLE9BQU8sZ0JBQXFCLEtBQUEsUUFBQTtBQUM1RSxFQUFBLE1BQU0sbUJBQW1CLFVBQWMsSUFBQSxTQUFBLElBQWEsZ0JBQ2hELEdBQUEsZ0JBQUEsR0FDQSxxQkFBcUIsTUFBTSxDQUFBO0FBRS9CLEVBQUEsTUFBTSxhQUErQixHQUFBO0FBQUEsSUFDbkMsU0FBVyxFQUFBLElBQUE7QUFBQSxJQUNYLGVBQWUsRUFBQztBQUFBLElBQ2hCLFVBQVU7QUFBQyxHQUNiO0FBR0EsRUFBQSxJQUFJLGlCQUFvQixHQUFBLEtBQUE7QUFDeEIsRUFBQSxJQUFJLGNBQXdDLEdBQUEsSUFBQTtBQUM1QyxFQUFBLElBQUksT0FBVSxHQUFBLFVBQUEsSUFBYyxTQUFhLElBQUEsZ0JBQUEsSUFBb0IsZ0JBQWlCLENBQUEsT0FBQTtBQUM5RSxFQUFXLEtBQUEsTUFBQSxJQUFBLElBQVEsSUFBSSxJQUFNLEVBQUE7QUFFM0IsSUFBQSxJQUFJLE9BQVMsRUFBQTtBQUNYLE1BQUEsT0FBQSxDQUFRLElBQUksc0NBQXdDLEVBQUE7QUFBQSxRQUNsRCxNQUFNLElBQUssQ0FBQSxJQUFBO0FBQUEsUUFDWCxPQUFPLElBQUssQ0FBQSxLQUFBO0FBQUEsUUFDWixLQUFLLElBQUssQ0FBQSxHQUFBO0FBQUEsUUFDVixTQUFXLEVBQUEsV0FBQSxJQUFlLElBQU8sR0FBQSxJQUFBLENBQUssU0FBWSxHQUFBLE1BQUE7QUFB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
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ParseResult } from "./types.js";
|
|
2
|
+
import type { DirectiveOptions } from "../../types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Analyzes a module for directives and returns the parse result with directive info.
|
|
5
|
+
*/
|
|
6
|
+
export declare function analyzeModule(source: string, options?: DirectiveOptions): Promise<ParseResult>;
|
|
7
|
+
//# sourceMappingURL=analyzeModule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyzeModule.d.ts","sourceRoot":"","sources":["../../../../plugin/loader/directives/analyzeModule.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAiB,WAAW,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD;;GAEG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,WAAW,CAAC,CA4CtB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vite-plugin-react-server
|
|
3
|
+
* Copyright (c) Nico Brinkkemper
|
|
4
|
+
* MIT License
|
|
5
|
+
*/
|
|
6
|
+
import { parse } from '../parse.js';
|
|
7
|
+
import { analyzeDirectives } from './analyzeDirectives.js';
|
|
8
|
+
import { getExports } from './getExports.js';
|
|
9
|
+
|
|
10
|
+
async function analyzeModule(source, options) {
|
|
11
|
+
let result = typeof options?.loader.parse === "function" ? options.loader.parse(source) : parse(source);
|
|
12
|
+
if (result instanceof Promise) {
|
|
13
|
+
result = await result;
|
|
14
|
+
}
|
|
15
|
+
if (typeof result === "object" && !("ast" in result)) {
|
|
16
|
+
result = {
|
|
17
|
+
ast: result
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
const exports = typeof result === "object" && "exports" in result && result.exports ? result.exports : await getExports(result.ast);
|
|
21
|
+
if (options?.verbose) {
|
|
22
|
+
if (exports && exports.exports.size > 0) {
|
|
23
|
+
console.log(
|
|
24
|
+
"[analyzeModule] exports",
|
|
25
|
+
Array.from(exports.exports.values())
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const directiveInfo = analyzeDirectives(result.ast, source, options);
|
|
30
|
+
if (options?.verbose) {
|
|
31
|
+
if (directiveInfo.warnings.length > 0) {
|
|
32
|
+
console.log("[analyzeModule] warnings", directiveInfo.warnings);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
let { code = source, map, ast, exports: _, ...rest } = result;
|
|
36
|
+
return {
|
|
37
|
+
type: "success",
|
|
38
|
+
...rest,
|
|
39
|
+
code,
|
|
40
|
+
map,
|
|
41
|
+
ast,
|
|
42
|
+
exports,
|
|
43
|
+
directiveInfo
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export { analyzeModule };
|
|
48
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZU1vZHVsZS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGx1Z2luL2xvYWRlci9kaXJlY3RpdmVzL2FuYWx5emVNb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2UgfSBmcm9tIFwiLi4vcGFyc2UuanNcIjtcbmltcG9ydCB7IGFuYWx5emVEaXJlY3RpdmVzIH0gZnJvbSBcIi4vYW5hbHl6ZURpcmVjdGl2ZXMuanNcIjtcbmltcG9ydCB7IGdldEV4cG9ydHMgfSBmcm9tIFwiLi9nZXRFeHBvcnRzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFBhcnNlZEV4cG9ydHMsIFBhcnNlUmVzdWx0IH0gZnJvbSBcIi4vdHlwZXMuanNcIjtcbmltcG9ydCB0eXBlIHsgRGlyZWN0aXZlT3B0aW9ucyB9IGZyb20gXCIuLi8uLi90eXBlcy5qc1wiO1xuXG4vKipcbiAqIEFuYWx5emVzIGEgbW9kdWxlIGZvciBkaXJlY3RpdmVzIGFuZCByZXR1cm5zIHRoZSBwYXJzZSByZXN1bHQgd2l0aCBkaXJlY3RpdmUgaW5mby5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFuYWx5emVNb2R1bGUoXG4gIHNvdXJjZTogc3RyaW5nLFxuICBvcHRpb25zPzogRGlyZWN0aXZlT3B0aW9uc1xuKTogUHJvbWlzZTxQYXJzZVJlc3VsdD4ge1xuICBsZXQgcmVzdWx0ID1cbiAgICB0eXBlb2Ygb3B0aW9ucz8ubG9hZGVyLnBhcnNlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgID8gb3B0aW9ucy5sb2FkZXIucGFyc2Uoc291cmNlKVxuICAgICAgOiBwYXJzZShzb3VyY2UpO1xuICBpZiAocmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgIHJlc3VsdCA9IGF3YWl0IHJlc3VsdDtcbiAgfVxuICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gXCJvYmplY3RcIiAmJiAhKFwiYXN0XCIgaW4gcmVzdWx0KSkge1xuICAgIHJlc3VsdCA9IHtcbiAgICAgIGFzdDogcmVzdWx0LFxuICAgIH07XG4gIH1cbiAgLy8gQ29sbGVjdCBleHBvcnRzIGZyb20gdGhlIEFTVCBmaXJzdFxuICBjb25zdCBleHBvcnRzOiBQYXJzZWRFeHBvcnRzID1cbiAgICB0eXBlb2YgcmVzdWx0ID09PSBcIm9iamVjdFwiICYmIFwiZXhwb3J0c1wiIGluIHJlc3VsdCAmJiByZXN1bHQuZXhwb3J0c1xuICAgICAgPyByZXN1bHQuZXhwb3J0c1xuICAgICAgOiBhd2FpdCBnZXRFeHBvcnRzKHJlc3VsdC5hc3QpO1xuXG4gIGlmIChvcHRpb25zPy52ZXJib3NlKSB7XG4gICAgaWYgKGV4cG9ydHMgJiYgZXhwb3J0cy5leHBvcnRzLnNpemUgPiAwKSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgXCJbYW5hbHl6ZU1vZHVsZV0gZXhwb3J0c1wiLFxuICAgICAgICBBcnJheS5mcm9tKGV4cG9ydHMuZXhwb3J0cy52YWx1ZXMoKSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZGlyZWN0aXZlSW5mbyA9IGFuYWx5emVEaXJlY3RpdmVzKHJlc3VsdC5hc3QsIHNvdXJjZSwgb3B0aW9ucyk7XG4gIGlmIChvcHRpb25zPy52ZXJib3NlKSB7XG4gICAgaWYgKGRpcmVjdGl2ZUluZm8ud2FybmluZ3MubGVuZ3RoID4gMCkge1xuICAgICAgY29uc29sZS5sb2coXCJbYW5hbHl6ZU1vZHVsZV0gd2FybmluZ3NcIiwgZGlyZWN0aXZlSW5mby53YXJuaW5ncyk7XG4gICAgfVxuICB9XG4gIGxldCB7IGNvZGUgPSBzb3VyY2UsIG1hcCwgYXN0LCBleHBvcnRzOiBfLCAuLi5yZXN0IH0gPSByZXN1bHQ7XG4gIHJldHVybiB7XG4gICAgdHlwZTogXCJzdWNjZXNzXCIsXG4gICAgLi4ucmVzdCxcbiAgICBjb2RlOiBjb2RlLFxuICAgIG1hcDogbWFwLFxuICAgIGFzdDogYXN0LFxuICAgIGV4cG9ydHMsXG4gICAgZGlyZWN0aXZlSW5mbyxcbiAgfTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFTQSxlQUFzQixhQUFBLENBQ3BCLFFBQ0EsT0FDc0IsRUFBQTtBQUN0QixFQUFBLElBQUksTUFDRixHQUFBLE9BQU8sT0FBUyxFQUFBLE1BQUEsQ0FBTyxLQUFVLEtBQUEsVUFBQSxHQUM3QixPQUFRLENBQUEsTUFBQSxDQUFPLEtBQU0sQ0FBQSxNQUFNLENBQzNCLEdBQUEsS0FBQSxDQUFNLE1BQU0sQ0FBQTtBQUNsQixFQUFBLElBQUksa0JBQWtCLE9BQVMsRUFBQTtBQUM3QixJQUFBLE1BQUEsR0FBUyxNQUFNLE1BQUE7QUFBQTtBQUVqQixFQUFBLElBQUksT0FBTyxNQUFBLEtBQVcsUUFBWSxJQUFBLEVBQUUsU0FBUyxNQUFTLENBQUEsRUFBQTtBQUNwRCxJQUFTLE1BQUEsR0FBQTtBQUFBLE1BQ1AsR0FBSyxFQUFBO0FBQUEsS0FDUDtBQUFBO0FBR0YsRUFBQSxNQUFNLE9BQ0osR0FBQSxPQUFPLE1BQVcsS0FBQSxRQUFBLElBQVksU0FBYSxJQUFBLE1BQUEsSUFBVSxNQUFPLENBQUEsT0FBQSxHQUN4RCxNQUFPLENBQUEsT0FBQSxHQUNQLE1BQU0sVUFBQSxDQUFXLE9BQU8sR0FBRyxDQUFBO0FBRWpDLEVBQUEsSUFBSSxTQUFTLE9BQVMsRUFBQTtBQUNwQixJQUFBLElBQUksT0FBVyxJQUFBLE9BQUEsQ0FBUSxPQUFRLENBQUEsSUFBQSxHQUFPLENBQUcsRUFBQTtBQUN2QyxNQUFRLE9BQUEsQ0FBQSxHQUFBO0FBQUEsUUFDTix5QkFBQTtBQUFBLFFBQ0EsS0FBTSxDQUFBLElBQUEsQ0FBSyxPQUFRLENBQUEsT0FBQSxDQUFRLFFBQVE7QUFBQSxPQUNyQztBQUFBO0FBQ0Y7QUFHRixFQUFBLE1BQU0sYUFBZ0IsR0FBQSxpQkFBQSxDQUFrQixNQUFPLENBQUEsR0FBQSxFQUFLLFFBQVEsT0FBTyxDQUFBO0FBQ25FLEVBQUEsSUFBSSxTQUFTLE9BQVMsRUFBQTtBQUNwQixJQUFJLElBQUEsYUFBQSxDQUFjLFFBQVMsQ0FBQSxNQUFBLEdBQVMsQ0FBRyxFQUFBO0FBQ3JDLE1BQVEsT0FBQSxDQUFBLEdBQUEsQ0FBSSwwQkFBNEIsRUFBQSxhQUFBLENBQWMsUUFBUSxDQUFBO0FBQUE7QUFDaEU7QUFFRixFQUFJLElBQUEsRUFBRSxPQUFPLE1BQVEsRUFBQSxHQUFBLEVBQUssS0FBSyxPQUFTLEVBQUEsQ0FBQSxFQUFHLEdBQUcsSUFBQSxFQUFTLEdBQUEsTUFBQTtBQUN2RCxFQUFPLE9BQUE7QUFBQSxJQUNMLElBQU0sRUFBQSxTQUFBO0FBQUEsSUFDTixHQUFHLElBQUE7QUFBQSxJQUNILElBQUE7QUFBQSxJQUNBLEdBQUE7QUFBQSxJQUNBLEdBQUE7QUFBQSxJQUNBLE9BQUE7QUFBQSxJQUNBO0FBQUEsR0FDRjtBQUNGOzs7OyJ9
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Program } from "acorn";
|
|
2
|
+
import type { ExportInfo } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Collects all exports from a module, including:
|
|
5
|
+
* - Named exports
|
|
6
|
+
* - Default exports
|
|
7
|
+
* - Re-exports
|
|
8
|
+
* - Object method exports
|
|
9
|
+
* - Class method exports
|
|
10
|
+
* - Export * declarations
|
|
11
|
+
*/
|
|
12
|
+
export declare function collectExports(program: Program): Promise<ExportInfo[]>;
|
|
13
|
+
//# sourceMappingURL=collectExports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collectExports.d.ts","sourceRoot":"","sources":["../../../../plugin/loader/directives/collectExports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAQV,OAAO,EACR,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA0H7C;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAuC5E"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vite-plugin-react-server
|
|
3
|
+
* Copyright (c) Nico Brinkkemper
|
|
4
|
+
* MIT License
|
|
5
|
+
*/
|
|
6
|
+
import { isArrowFunctionExpression, isFunctionExpression } from './typeGuards.js';
|
|
7
|
+
import { addLocalExportedNames } from './addLocalExportedNames.js';
|
|
8
|
+
|
|
9
|
+
function createExportInfo(localName, exportName, type, range, originalModuleId) {
|
|
10
|
+
return {
|
|
11
|
+
localName,
|
|
12
|
+
exportName,
|
|
13
|
+
type,
|
|
14
|
+
range,
|
|
15
|
+
originalModuleId
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function handleTypedExport(id, exportName, type, range) {
|
|
19
|
+
return createExportInfo(
|
|
20
|
+
id?.name || "anonymous",
|
|
21
|
+
exportName,
|
|
22
|
+
type,
|
|
23
|
+
range
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
function handleDefaultExport(declaration, range) {
|
|
27
|
+
if (declaration.type === "Identifier") {
|
|
28
|
+
return createExportInfo(declaration.name, "default", null, range);
|
|
29
|
+
} else if (declaration.type === "FunctionDeclaration") {
|
|
30
|
+
return handleTypedExport(declaration.id, "default", "function", range);
|
|
31
|
+
} else if (declaration.type === "ClassDeclaration") {
|
|
32
|
+
return handleTypedExport(declaration.id, "default", "class", range);
|
|
33
|
+
} else if (declaration.type === "ArrowFunctionExpression") {
|
|
34
|
+
return handleTypedExport(null, "default", "function", range);
|
|
35
|
+
}
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
function handleNamedExport(declaration, range) {
|
|
39
|
+
const exports = [];
|
|
40
|
+
if (declaration.type === "VariableDeclaration") {
|
|
41
|
+
for (const decl of declaration.declarations) {
|
|
42
|
+
if (decl.init) {
|
|
43
|
+
if (isArrowFunctionExpression(decl.init) || isFunctionExpression(decl.init)) {
|
|
44
|
+
if (decl.id.type === "Identifier") {
|
|
45
|
+
exports.push(handleTypedExport(decl.id, decl.id.name, "function", range));
|
|
46
|
+
}
|
|
47
|
+
} else {
|
|
48
|
+
addLocalExportedNames(exports, decl.id, range);
|
|
49
|
+
}
|
|
50
|
+
} else {
|
|
51
|
+
addLocalExportedNames(exports, decl.id, range);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
} else if (declaration.type === "FunctionDeclaration" && declaration.id) {
|
|
55
|
+
exports.push(
|
|
56
|
+
handleTypedExport(declaration.id, declaration.id.name, "function", range)
|
|
57
|
+
);
|
|
58
|
+
} else if (declaration.type === "ClassDeclaration" && declaration.id) {
|
|
59
|
+
exports.push(handleTypedExport(declaration.id, declaration.id.name, "class", range));
|
|
60
|
+
}
|
|
61
|
+
return exports;
|
|
62
|
+
}
|
|
63
|
+
async function handleReExports(specifiers, range, sourceModuleId) {
|
|
64
|
+
const exports = [];
|
|
65
|
+
for (const specifier of specifiers) {
|
|
66
|
+
if (specifier.local.type === "Identifier" && specifier.exported.type === "Identifier") {
|
|
67
|
+
const functionName = sourceModuleId ? specifier.exported.name : specifier.local.name;
|
|
68
|
+
exports.push(
|
|
69
|
+
createExportInfo(
|
|
70
|
+
functionName,
|
|
71
|
+
// Function reference name
|
|
72
|
+
specifier.exported.name,
|
|
73
|
+
// Export name
|
|
74
|
+
"function",
|
|
75
|
+
range
|
|
76
|
+
)
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return exports;
|
|
81
|
+
}
|
|
82
|
+
async function collectExports(program) {
|
|
83
|
+
const exports = [];
|
|
84
|
+
for (const node of program.body) {
|
|
85
|
+
switch (node.type) {
|
|
86
|
+
case "ExportDefaultDeclaration": {
|
|
87
|
+
const exportInfo = handleDefaultExport(node.declaration, [
|
|
88
|
+
node.start,
|
|
89
|
+
node.end
|
|
90
|
+
]);
|
|
91
|
+
if (exportInfo) {
|
|
92
|
+
exports.push(exportInfo);
|
|
93
|
+
}
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
case "ExportAllDeclaration":
|
|
97
|
+
break;
|
|
98
|
+
case "ExportNamedDeclaration":
|
|
99
|
+
if (node.declaration) {
|
|
100
|
+
exports.push(
|
|
101
|
+
...handleNamedExport(node.declaration, [node.start, node.end])
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
if (node.specifiers) {
|
|
105
|
+
const sourceModuleId = node.source && typeof node.source.value === "string" ? node.source.value : void 0;
|
|
106
|
+
const reExports = await handleReExports(node.specifiers, [node.start, node.end], sourceModuleId);
|
|
107
|
+
exports.push(...reExports);
|
|
108
|
+
}
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return exports;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export { collectExports };
|
|
116
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdEV4cG9ydHMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BsdWdpbi9sb2FkZXIvZGlyZWN0aXZlcy9jb2xsZWN0RXhwb3J0cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEFub255bW91c0NsYXNzRGVjbGFyYXRpb24sXG4gIEFub255bW91c0Z1bmN0aW9uRGVjbGFyYXRpb24sXG4gIENsYXNzRGVjbGFyYXRpb24sXG4gIERlY2xhcmF0aW9uLFxuICBFeHBvcnRTcGVjaWZpZXIsXG4gIEV4cHJlc3Npb24sXG4gIEZ1bmN0aW9uRGVjbGFyYXRpb24sXG4gIFByb2dyYW0sXG59IGZyb20gXCJhY29yblwiO1xuaW1wb3J0IHR5cGUgeyBFeHBvcnRJbmZvIH0gZnJvbSBcIi4vdHlwZXMuanNcIjtcbmltcG9ydCB7XG4gIGlzQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24sXG4gIGlzRnVuY3Rpb25FeHByZXNzaW9uLFxufSBmcm9tIFwiLi90eXBlR3VhcmRzLmpzXCI7XG5pbXBvcnQgeyBhZGRMb2NhbEV4cG9ydGVkTmFtZXMgfSBmcm9tIFwiLi9hZGRMb2NhbEV4cG9ydGVkTmFtZXMuanNcIjtcblxuZnVuY3Rpb24gY3JlYXRlRXhwb3J0SW5mbyhcbiAgbG9jYWxOYW1lOiBzdHJpbmcsXG4gIGV4cG9ydE5hbWU6IHN0cmluZyxcbiAgdHlwZTogXCJmdW5jdGlvblwiIHwgXCJjbGFzc1wiIHwgXCJ2YXJpYWJsZVwiIHwgbnVsbCxcbiAgcmFuZ2U6IFtudW1iZXIsIG51bWJlcl0sXG4gIG9yaWdpbmFsTW9kdWxlSWQ/OiBzdHJpbmdcbik6IEV4cG9ydEluZm8ge1xuICByZXR1cm4ge1xuICAgIGxvY2FsTmFtZSxcbiAgICBleHBvcnROYW1lLFxuICAgIHR5cGUsXG4gICAgcmFuZ2UsXG4gICAgb3JpZ2luYWxNb2R1bGVJZCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gaGFuZGxlVHlwZWRFeHBvcnQoXG4gIGlkOiB7IG5hbWU6IHN0cmluZyB9IHwgbnVsbCxcbiAgZXhwb3J0TmFtZTogc3RyaW5nLFxuICB0eXBlOiBcImZ1bmN0aW9uXCIgfCBcImNsYXNzXCIsXG4gIHJhbmdlOiBbbnVtYmVyLCBudW1iZXJdXG4pOiBFeHBvcnRJbmZvIHtcbiAgcmV0dXJuIGNyZWF0ZUV4cG9ydEluZm8oXG4gICAgaWQ/Lm5hbWUgfHwgXCJhbm9ueW1vdXNcIixcbiAgICBleHBvcnROYW1lLFxuICAgIHR5cGUsXG4gICAgcmFuZ2VcbiAgKTtcbn1cblxuZnVuY3Rpb24gaGFuZGxlRGVmYXVsdEV4cG9ydChcbiAgZGVjbGFyYXRpb246XG4gICAgfCBBbm9ueW1vdXNGdW5jdGlvbkRlY2xhcmF0aW9uXG4gICAgfCBGdW5jdGlvbkRlY2xhcmF0aW9uXG4gICAgfCBBbm9ueW1vdXNDbGFzc0RlY2xhcmF0aW9uXG4gICAgfCBDbGFzc0RlY2xhcmF0aW9uXG4gICAgfCBFeHByZXNzaW9uLFxuICByYW5nZTogW251bWJlciwgbnVtYmVyXVxuKTogRXhwb3J0SW5mbyB8IG51bGwge1xuICBpZiAoZGVjbGFyYXRpb24udHlwZSA9PT0gXCJJZGVudGlmaWVyXCIpIHtcbiAgICByZXR1cm4gY3JlYXRlRXhwb3J0SW5mbyhkZWNsYXJhdGlvbi5uYW1lLCBcImRlZmF1bHRcIiwgbnVsbCwgcmFuZ2UpO1xuICB9IGVsc2UgaWYgKGRlY2xhcmF0aW9uLnR5cGUgPT09IFwiRnVuY3Rpb25EZWNsYXJhdGlvblwiKSB7XG4gICAgcmV0dXJuIGhhbmRsZVR5cGVkRXhwb3J0KGRlY2xhcmF0aW9uLmlkLCBcImRlZmF1bHRcIiwgXCJmdW5jdGlvblwiLCByYW5nZSk7XG4gIH0gZWxzZSBpZiAoZGVjbGFyYXRpb24udHlwZSA9PT0gXCJDbGFzc0RlY2xhcmF0aW9uXCIpIHtcbiAgICByZXR1cm4gaGFuZGxlVHlwZWRFeHBvcnQoZGVjbGFyYXRpb24uaWQsIFwiZGVmYXVsdFwiLCBcImNsYXNzXCIsIHJhbmdlKTtcbiAgfSBlbHNlIGlmIChkZWNsYXJhdGlvbi50eXBlID09PSBcIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCIpIHtcbiAgICByZXR1cm4gaGFuZGxlVHlwZWRFeHBvcnQobnVsbCwgXCJkZWZhdWx0XCIsIFwiZnVuY3Rpb25cIiwgcmFuZ2UpO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBoYW5kbGVOYW1lZEV4cG9ydChcbiAgZGVjbGFyYXRpb246IERlY2xhcmF0aW9uIHwgRXhwcmVzc2lvbixcbiAgcmFuZ2U6IFtudW1iZXIsIG51bWJlcl1cbik6IEV4cG9ydEluZm9bXSB7XG4gIGNvbnN0IGV4cG9ydHM6IEV4cG9ydEluZm9bXSA9IFtdO1xuXG4gIGlmIChkZWNsYXJhdGlvbi50eXBlID09PSBcIlZhcmlhYmxlRGVjbGFyYXRpb25cIikge1xuICAgIGZvciAoY29uc3QgZGVjbCBvZiBkZWNsYXJhdGlvbi5kZWNsYXJhdGlvbnMpIHtcbiAgICAgIGlmIChkZWNsLmluaXQpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGlzQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24oZGVjbC5pbml0KSB8fFxuICAgICAgICAgIGlzRnVuY3Rpb25FeHByZXNzaW9uKGRlY2wuaW5pdClcbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKGRlY2wuaWQudHlwZSA9PT0gXCJJZGVudGlmaWVyXCIpIHtcbiAgICAgICAgICAgIGV4cG9ydHMucHVzaChoYW5kbGVUeXBlZEV4cG9ydChkZWNsLmlkLCBkZWNsLmlkLm5hbWUsIFwiZnVuY3Rpb25cIiwgcmFuZ2UpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWRkTG9jYWxFeHBvcnRlZE5hbWVzKGV4cG9ydHMsIGRlY2wuaWQsIHJhbmdlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWRkTG9jYWxFeHBvcnRlZE5hbWVzKGV4cG9ydHMsIGRlY2wuaWQsIHJhbmdlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAoZGVjbGFyYXRpb24udHlwZSA9PT0gXCJGdW5jdGlvbkRlY2xhcmF0aW9uXCIgJiYgZGVjbGFyYXRpb24uaWQpIHtcbiAgICBleHBvcnRzLnB1c2goXG4gICAgICBoYW5kbGVUeXBlZEV4cG9ydChkZWNsYXJhdGlvbi5pZCwgZGVjbGFyYXRpb24uaWQubmFtZSwgXCJmdW5jdGlvblwiLCByYW5nZSlcbiAgICApO1xuICB9IGVsc2UgaWYgKGRlY2xhcmF0aW9uLnR5cGUgPT09IFwiQ2xhc3NEZWNsYXJhdGlvblwiICYmIGRlY2xhcmF0aW9uLmlkKSB7XG4gICAgZXhwb3J0cy5wdXNoKGhhbmRsZVR5cGVkRXhwb3J0KGRlY2xhcmF0aW9uLmlkLCBkZWNsYXJhdGlvbi5pZC5uYW1lLCBcImNsYXNzXCIsIHJhbmdlKSk7XG4gIH1cblxuICByZXR1cm4gZXhwb3J0cztcbn1cblxuYXN5bmMgZnVuY3Rpb24gaGFuZGxlUmVFeHBvcnRzKFxuICBzcGVjaWZpZXJzOiBFeHBvcnRTcGVjaWZpZXJbXSxcbiAgcmFuZ2U6IFtudW1iZXIsIG51bWJlcl0sXG4gIHNvdXJjZU1vZHVsZUlkPzogc3RyaW5nXG4pOiBQcm9taXNlPEV4cG9ydEluZm9bXT4ge1xuICBjb25zdCBleHBvcnRzOiBFeHBvcnRJbmZvW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IHNwZWNpZmllciBvZiBzcGVjaWZpZXJzKSB7XG4gICAgaWYgKFxuICAgICAgc3BlY2lmaWVyLmxvY2FsLnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXG4gICAgICBzcGVjaWZpZXIuZXhwb3J0ZWQudHlwZSA9PT0gXCJJZGVudGlmaWVyXCJcbiAgICApIHtcbiAgICAgIC8vIEZvciByZS1leHBvcnRzIGZyb20gYW5vdGhlciBtb2R1bGUsIHVzZSBleHBvcnRlZCBuYW1lIGZvciBmdW5jdGlvbiByZWZlcmVuY2VcbiAgICAgIC8vIEZvciBsb2NhbCBleHBvcnRzIHdpdGggYWxpYXNlcywgdXNlIGxvY2FsIG5hbWUgZm9yIGZ1bmN0aW9uIHJlZmVyZW5jZVxuICAgICAgY29uc3QgZnVuY3Rpb25OYW1lID0gc291cmNlTW9kdWxlSWQgPyBzcGVjaWZpZXIuZXhwb3J0ZWQubmFtZSA6IHNwZWNpZmllci5sb2NhbC5uYW1lO1xuICAgICAgXG4gICAgICBleHBvcnRzLnB1c2goXG4gICAgICAgIGNyZWF0ZUV4cG9ydEluZm8oXG4gICAgICAgICAgZnVuY3Rpb25OYW1lLCAgICAgICAgICAgICAgLy8gRnVuY3Rpb24gcmVmZXJlbmNlIG5hbWVcbiAgICAgICAgICBzcGVjaWZpZXIuZXhwb3J0ZWQubmFtZSwgICAvLyBFeHBvcnQgbmFtZVxuICAgICAgICAgIFwiZnVuY3Rpb25cIixcbiAgICAgICAgICByYW5nZSxcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZXhwb3J0cztcbn1cblxuLyoqXG4gKiBDb2xsZWN0cyBhbGwgZXhwb3J0cyBmcm9tIGEgbW9kdWxlLCBpbmNsdWRpbmc6XG4gKiAtIE5hbWVkIGV4cG9ydHNcbiAqIC0gRGVmYXVsdCBleHBvcnRzXG4gKiAtIFJlLWV4cG9ydHNcbiAqIC0gT2JqZWN0IG1ldGhvZCBleHBvcnRzXG4gKiAtIENsYXNzIG1ldGhvZCBleHBvcnRzXG4gKiAtIEV4cG9ydCAqIGRlY2xhcmF0aW9uc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29sbGVjdEV4cG9ydHMocHJvZ3JhbTogUHJvZ3JhbSk6IFByb21pc2U8RXhwb3J0SW5mb1tdPiB7XG4gIGNvbnN0IGV4cG9ydHM6IEV4cG9ydEluZm9bXSA9IFtdO1xuXG4gIGZvciAoY29uc3Qgbm9kZSBvZiBwcm9ncmFtLmJvZHkpIHtcbiAgICBzd2l0Y2ggKG5vZGUudHlwZSkge1xuICAgICAgY2FzZSBcIkV4cG9ydERlZmF1bHREZWNsYXJhdGlvblwiOiB7XG4gICAgICAgIGNvbnN0IGV4cG9ydEluZm8gPSBoYW5kbGVEZWZhdWx0RXhwb3J0KG5vZGUuZGVjbGFyYXRpb24sIFtcbiAgICAgICAgICBub2RlLnN0YXJ0LFxuICAgICAgICAgIG5vZGUuZW5kLFxuICAgICAgICBdKTtcbiAgICAgICAgaWYgKGV4cG9ydEluZm8pIHtcbiAgICAgICAgICBleHBvcnRzLnB1c2goZXhwb3J0SW5mbyk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgXCJFeHBvcnRBbGxEZWNsYXJhdGlvblwiOlxuICAgICAgICAvLyBJZiBleHBvcnQgKiBpcyB1c2VkLCB0aGUgb3RoZXIgZmlsZSBuZWVkcyB0byBleHBsaWNpdGx5IG9wdCBpbnRvIFwidXNlIHNlcnZlclwiIHRvby5cbiAgICAgICAgLy8gVGhpcyBtYXRjaGVzIFJlYWN0J3MgbG9hZGVyIGJlaGF2aW9yIC0gd2UgaWdub3JlIGV4cG9ydCAqIGRlY2xhcmF0aW9uc1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBcIkV4cG9ydE5hbWVkRGVjbGFyYXRpb25cIjpcbiAgICAgICAgaWYgKG5vZGUuZGVjbGFyYXRpb24pIHtcbiAgICAgICAgICBleHBvcnRzLnB1c2goXG4gICAgICAgICAgICAuLi5oYW5kbGVOYW1lZEV4cG9ydChub2RlLmRlY2xhcmF0aW9uLCBbbm9kZS5zdGFydCwgbm9kZS5lbmRdKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGUuc3BlY2lmaWVycykge1xuICAgICAgICAgIGNvbnN0IHNvdXJjZU1vZHVsZUlkID0gbm9kZS5zb3VyY2UgJiYgdHlwZW9mIG5vZGUuc291cmNlLnZhbHVlID09PSBcInN0cmluZ1wiIFxuICAgICAgICAgICAgPyBub2RlLnNvdXJjZS52YWx1ZSBcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICAgIGNvbnN0IHJlRXhwb3J0cyA9IGF3YWl0IGhhbmRsZVJlRXhwb3J0cyhub2RlLnNwZWNpZmllcnMsIFtub2RlLnN0YXJ0LCBub2RlLmVuZF0sIHNvdXJjZU1vZHVsZUlkKTtcbiAgICAgICAgICBleHBvcnRzLnB1c2goLi4ucmVFeHBvcnRzKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG4g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
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ExportInfo } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Recursively collects exports from a module that uses export *
|
|
4
|
+
*/
|
|
5
|
+
export declare function collectExportsFromModule(moduleId: string): Promise<ExportInfo[]>;
|
|
6
|
+
//# sourceMappingURL=collectExportsFromModule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collectExportsFromModule.d.ts","sourceRoot":"","sources":["../../../../plugin/loader/directives/collectExportsFromModule.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAgBpF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vite-plugin-react-server
|
|
3
|
+
* Copyright (c) Nico Brinkkemper
|
|
4
|
+
* MIT License
|
|
5
|
+
*/
|
|
6
|
+
import { parse } from '../parse.js';
|
|
7
|
+
import { getExports } from './getExports.js';
|
|
8
|
+
import { loadClientSource } from '../../helpers/moduleResolver.js';
|
|
9
|
+
|
|
10
|
+
async function collectExportsFromModule(moduleId) {
|
|
11
|
+
const source = await loadClientSource(moduleId);
|
|
12
|
+
if (typeof source !== "string") {
|
|
13
|
+
throw new Error("Expected source to be a string");
|
|
14
|
+
}
|
|
15
|
+
const { ast } = await parse(source);
|
|
16
|
+
const exports = await getExports(ast);
|
|
17
|
+
return Array.from(exports.exports.values()).map((exp) => ({
|
|
18
|
+
...exp,
|
|
19
|
+
originalModuleId: exp.originalModuleId || moduleId
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export { collectExportsFromModule };
|
|
24
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdEV4cG9ydHNGcm9tTW9kdWxlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wbHVnaW4vbG9hZGVyL2RpcmVjdGl2ZXMvY29sbGVjdEV4cG9ydHNGcm9tTW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlIH0gZnJvbSBcIi4uL3BhcnNlLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEV4cG9ydEluZm8gfSBmcm9tIFwiLi90eXBlcy5qc1wiO1xuaW1wb3J0IHsgZ2V0RXhwb3J0cyB9IGZyb20gXCIuL2dldEV4cG9ydHMuanNcIjtcbmltcG9ydCB7IGxvYWRDbGllbnRTb3VyY2UgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9tb2R1bGVSZXNvbHZlci5qc1wiO1xuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IGNvbGxlY3RzIGV4cG9ydHMgZnJvbSBhIG1vZHVsZSB0aGF0IHVzZXMgZXhwb3J0ICpcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvbGxlY3RFeHBvcnRzRnJvbU1vZHVsZShtb2R1bGVJZDogc3RyaW5nKTogUHJvbWlzZTxFeHBvcnRJbmZvW10+IHtcbiAgICBjb25zdCBzb3VyY2UgPSBhd2FpdCBsb2FkQ2xpZW50U291cmNlKG1vZHVsZUlkKTtcbiAgXG4gICAgaWYgKHR5cGVvZiBzb3VyY2UgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHNvdXJjZSB0byBiZSBhIHN0cmluZycpO1xuICAgIH1cbiAgXG4gICAgLy8gVXNlIG91ciBleGlzdGluZyBwYXJzZSBmdW5jdGlvblxuICAgIGNvbnN0IHsgYXN0IH0gPSBhd2FpdCBwYXJzZShzb3VyY2UpO1xuICAgIGNvbnN0IGV4cG9ydHMgPSBhd2FpdCBnZXRFeHBvcnRzKGFzdCk7XG4gICAgXG4gICAgLy8gU2V0IG9yaWdpbmFsTW9kdWxlSWQgZm9yIGxvY2FsIGV4cG9ydHMsIHByZXNlcnZlIGl0IGZvciByZS1leHBvcnRzXG4gICAgcmV0dXJuIEFycmF5LmZyb20oZXhwb3J0cy5leHBvcnRzLnZhbHVlcygpKS5tYXAoZXhwID0+ICh7XG4gICAgICAuLi5leHAsXG4gICAgICBvcmlnaW5hbE1vZHVsZUlkOiBleHAub3JpZ2luYWxNb2R1bGVJZCB8fCBtb2R1bGVJZFxuICAgIH0pKTtcbiAgfSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFRQSxlQUFzQix5QkFBeUIsUUFBeUMsRUFBQTtBQUNwRixFQUFNLE1BQUEsTUFBQSxHQUFTLE1BQU0sZ0JBQUEsQ0FBaUIsUUFBUSxDQUFBO0FBRTlDLEVBQUksSUFBQSxPQUFPLFdBQVcsUUFBVSxFQUFBO0FBQzlCLElBQU0sTUFBQSxJQUFJLE1BQU0sZ0NBQWdDLENBQUE7QUFBQTtBQUlsRCxFQUFBLE1BQU0sRUFBRSxHQUFBLEVBQVEsR0FBQSxNQUFNLE1BQU0sTUFBTSxDQUFBO0FBQ2xDLEVBQU0sTUFBQSxPQUFBLEdBQVUsTUFBTSxVQUFBLENBQVcsR0FBRyxDQUFBO0FBR3BDLEVBQU8sT0FBQSxLQUFBLENBQU0sS0FBSyxPQUFRLENBQUEsT0FBQSxDQUFRLFFBQVEsQ0FBQSxDQUFFLElBQUksQ0FBUSxHQUFBLE1BQUE7QUFBQSxJQUN0RCxHQUFHLEdBQUE7QUFBQSxJQUNILGdCQUFBLEVBQWtCLElBQUksZ0JBQW9CLElBQUE7QUFBQSxHQUMxQyxDQUFBLENBQUE7QUFDSjs7OzsifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findDirectiveMatches.d.ts","sourceRoot":"","sources":["../../../../plugin/loader/directives/findDirectiveMatches.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,gBAAgB,EAAoB,MAAM,YAAY,CAAC;AAErF,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,GACb,gBAAgB,CAuBlB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vite-plugin-react-server
|
|
3
|
+
* Copyright (c) Nico Brinkkemper
|
|
4
|
+
* MIT License
|
|
5
|
+
*/
|
|
6
|
+
function findDirectiveMatches(source) {
|
|
7
|
+
const matches = [];
|
|
8
|
+
const warnings = [];
|
|
9
|
+
const serverMatches = findServerDirectives(source);
|
|
10
|
+
const clientMatches = findClientDirectives(source);
|
|
11
|
+
const allMatches = [...serverMatches, ...clientMatches].sort((a, b) => a.range[0] - b.range[0]);
|
|
12
|
+
if (allMatches.length === 0) {
|
|
13
|
+
return { matches, warnings };
|
|
14
|
+
}
|
|
15
|
+
for (const match of allMatches) {
|
|
16
|
+
matches.push(match);
|
|
17
|
+
}
|
|
18
|
+
return { matches, warnings };
|
|
19
|
+
}
|
|
20
|
+
function findServerDirectives(source) {
|
|
21
|
+
const matches = [];
|
|
22
|
+
const regex = /"use server"|'use server'/g;
|
|
23
|
+
let match;
|
|
24
|
+
while ((match = regex.exec(source)) !== null) {
|
|
25
|
+
matches.push({
|
|
26
|
+
type: "server",
|
|
27
|
+
range: [match.index, match.index + match[0].length]
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
return matches;
|
|
31
|
+
}
|
|
32
|
+
function findClientDirectives(source) {
|
|
33
|
+
const matches = [];
|
|
34
|
+
const regex = /"use client"|'use client'/g;
|
|
35
|
+
let match;
|
|
36
|
+
while ((match = regex.exec(source)) !== null) {
|
|
37
|
+
matches.push({
|
|
38
|
+
type: "client",
|
|
39
|
+
range: [match.index, match.index + match[0].length]
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
return matches;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export { findDirectiveMatches };
|
|
46
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZERpcmVjdGl2ZU1hdGNoZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BsdWdpbi9sb2FkZXIvZGlyZWN0aXZlcy9maW5kRGlyZWN0aXZlTWF0Y2hlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpcmVjdGl2ZU1hdGNoLCBEaXJlY3RpdmVNYXRjaGVzLCBEaXJlY3RpdmVXYXJuaW5nIH0gZnJvbSBcIi4vdHlwZXMuanNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmREaXJlY3RpdmVNYXRjaGVzKFxuICBzb3VyY2U6IHN0cmluZyxcbik6IERpcmVjdGl2ZU1hdGNoZXMge1xuICBjb25zdCBtYXRjaGVzOiBEaXJlY3RpdmVNYXRjaFtdID0gW107XG4gIGNvbnN0IHdhcm5pbmdzOiBEaXJlY3RpdmVXYXJuaW5nW10gPSBbXTtcblxuICAvLyBGaW5kIGFsbCBkaXJlY3RpdmUgbWF0Y2hlcyBpbiBvcmRlclxuICBjb25zdCBzZXJ2ZXJNYXRjaGVzID0gZmluZFNlcnZlckRpcmVjdGl2ZXMoc291cmNlKTtcbiAgY29uc3QgY2xpZW50TWF0Y2hlcyA9IGZpbmRDbGllbnREaXJlY3RpdmVzKHNvdXJjZSk7XG5cbiAgLy8gU29ydCBhbGwgbWF0Y2hlcyBieSB0aGVpciBwb3NpdGlvbiBpbiB0aGUgc291cmNlXG4gIGNvbnN0IGFsbE1hdGNoZXMgPSBbLi4uc2VydmVyTWF0Y2hlcywgLi4uY2xpZW50TWF0Y2hlc10uc29ydCgoYSwgYikgPT4gYS5yYW5nZVswXSAtIGIucmFuZ2VbMF0pO1xuXG4gIC8vIElmIG5vIGRpcmVjdGl2ZXMgZm91bmQsIHJldHVybiBlYXJseVxuICBpZiAoYWxsTWF0Y2hlcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4geyBtYXRjaGVzLCB3YXJuaW5ncyB9O1xuICB9XG5cbiAgLy8gQWRkIGFsbCBtYXRjaGVzIGFzIGZ1bmN0aW9uLWxldmVsIGZvciBub3dcbiAgLy8gYW5hbHl6ZURpcmVjdGl2ZXMgd2lsbCBkZXRlcm1pbmUgaWYgdGhleSdyZSBmaWxlLWxldmVsXG4gIGZvciAoY29uc3QgbWF0Y2ggb2YgYWxsTWF0Y2hlcykge1xuICAgIG1hdGNoZXMucHVzaChtYXRjaCk7XG4gIH1cblxuICByZXR1cm4geyBtYXRjaGVzLCB3YXJuaW5ncyB9O1xufVxuXG5mdW5jdGlvbiBmaW5kU2VydmVyRGlyZWN0aXZlcyhzb3VyY2U6IHN0cmluZyk6IERpcmVjdGl2ZU1hdGNoW10ge1xuICBjb25zdCBtYXRjaGVzOiBEaXJlY3RpdmVNYXRjaFtdID0gW107XG4gIGNvbnN0IHJlZ2V4ID0gL1widXNlIHNlcnZlclwifCd1c2Ugc2VydmVyJy9nO1xuICBsZXQgbWF0Y2g7XG5cbiAgd2hpbGUgKChtYXRjaCA9IHJlZ2V4LmV4ZWMoc291cmNlKSkgIT09IG51bGwpIHtcbiAgICBtYXRjaGVzLnB1c2goe1xuICAgICAgdHlwZTogXCJzZXJ2ZXJcIixcbiAgICAgIHJhbmdlOiBbbWF0Y2guaW5kZXgsIG1hdGNoLmluZGV4ICsgbWF0Y2hbMF0ubGVuZ3RoXVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIG1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIGZpbmRDbGllbnREaXJlY3RpdmVzKHNvdXJjZTogc3RyaW5nKTogRGlyZWN0aXZlTWF0Y2hbXSB7XG4gIGNvbnN0IG1hdGNoZXM6IERpcmVjdGl2ZU1hdGNoW10gPSBbXTtcbiAgY29uc3QgcmVnZXggPSAvXCJ1c2UgY2xpZW50XCJ8J3VzZSBjbGllbnQnL2c7XG4gIGxldCBtYXRjaDtcblxuICB3aGlsZSAoKG1hdGNoID0gcmVnZXguZXhlYyhzb3VyY2UpKSAhPT0gbnVsbCkge1xuICAgIG1hdGNoZXMucHVzaCh7XG4gICAgICB0eXBlOiBcImNsaWVudFwiLFxuICAgICAgcmFuZ2U6IFttYXRjaC5pbmRleCwgbWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGhdXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gbWF0Y2hlcztcbn0gIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRU8sU0FBUyxxQkFDZCxNQUNrQixFQUFBO0FBQ2xCLEVBQUEsTUFBTSxVQUE0QixFQUFDO0FBQ25DLEVBQUEsTUFBTSxXQUErQixFQUFDO0FBR3RDLEVBQU0sTUFBQSxhQUFBLEdBQWdCLHFCQUFxQixNQUFNLENBQUE7QUFDakQsRUFBTSxNQUFBLGFBQUEsR0FBZ0IscUJBQXFCLE1BQU0sQ0FBQTtBQUdqRCxFQUFBLE1BQU0sYUFBYSxDQUFDLEdBQUcsZUFBZSxHQUFHLGFBQWEsRUFBRSxJQUFLLENBQUEsQ0FBQyxDQUFHLEVBQUEsQ0FBQSxLQUFNLEVBQUUsS0FBTSxDQUFBLENBQUMsSUFBSSxDQUFFLENBQUEsS0FBQSxDQUFNLENBQUMsQ0FBQyxDQUFBO0FBRzlGLEVBQUksSUFBQSxVQUFBLENBQVcsV0FBVyxDQUFHLEVBQUE7QUFDM0IsSUFBTyxPQUFBLEVBQUUsU0FBUyxRQUFTLEVBQUE7QUFBQTtBQUs3QixFQUFBLEtBQUEsTUFBVyxTQUFTLFVBQVksRUFBQTtBQUM5QixJQUFBLE9BQUEsQ0FBUSxLQUFLLEtBQUssQ0FBQTtBQUFBO0FBR3BCLEVBQU8sT0FBQSxFQUFFLFNBQVMsUUFBUyxFQUFBO0FBQzdCO0FBRUEsU0FBUyxxQkFBcUIsTUFBa0MsRUFBQTtBQUM5RCxFQUFBLE1BQU0sVUFBNEIsRUFBQztBQUNuQyxFQUFBLE1BQU0sS0FBUSxHQUFBLDRCQUFBO0FBQ2QsRUFBSSxJQUFBLEtBQUE7QUFFSixFQUFBLE9BQUEsQ0FBUSxLQUFRLEdBQUEsS0FBQSxDQUFNLElBQUssQ0FBQSxNQUFNLE9BQU8sSUFBTSxFQUFBO0FBQzVDLElBQUEsT0FBQSxDQUFRLElBQUssQ0FBQTtBQUFBLE1BQ1gsSUFBTSxFQUFBLFFBQUE7QUFBQSxNQUNOLEtBQUEsRUFBTyxDQUFDLEtBQU0sQ0FBQSxLQUFBLEVBQU8sTUFBTSxLQUFRLEdBQUEsS0FBQSxDQUFNLENBQUMsQ0FBQSxDQUFFLE1BQU07QUFBQSxLQUNuRCxDQUFBO0FBQUE7QUFHSCxFQUFPLE9BQUEsT0FBQTtBQUNUO0FBRUEsU0FBUyxxQkFBcUIsTUFBa0MsRUFBQTtBQUM5RCxFQUFBLE1BQU0sVUFBNEIsRUFBQztBQUNuQyxFQUFBLE1BQU0sS0FBUSxHQUFBLDRCQUFBO0FBQ2QsRUFBSSxJQUFBLEtBQUE7QUFFSixFQUFBLE9BQUEsQ0FBUSxLQUFRLEdBQUEsS0FBQSxDQUFNLElBQUssQ0FBQSxNQUFNLE9BQU8sSUFBTSxFQUFBO0FBQzVDLElBQUEsT0FBQSxDQUFRLElBQUssQ0FBQTtBQUFBLE1BQ1gsSUFBTSxFQUFBLFFBQUE7QUFBQSxNQUNOLEtBQUEsRUFBTyxDQUFDLEtBQU0sQ0FBQSxLQUFBLEVBQU8sTUFBTSxLQUFRLEdBQUEsS0FBQSxDQUFNLENBQUMsQ0FBQSxDQUFFLE1BQU07QUFBQSxLQUNuRCxDQUFBO0FBQUE7QUFHSCxFQUFPLE9BQUEsT0FBQTtBQUNUOzs7OyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getExportedName.d.ts","sourceRoot":"","sources":["../../../../plugin/loader/directives/getExportedName.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAkI,MAAM,OAAO,CAAC;AAElK,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAsE9D"}
|