vite-plugin-react-server 1.4.1 → 1.4.3
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 +48 -313
- package/dist/package.json +123 -13
- package/dist/plugin/bundle/deferredStaticGeneration.js +14 -39
- package/dist/plugin/bundle/manifests.js +30 -48
- package/dist/plugin/config/autoDiscover/resolveAutoDiscover.d.ts.map +1 -1
- package/dist/plugin/config/autoDiscover/resolveAutoDiscover.js +4 -1
- package/dist/plugin/config/envPrefixFromConfig.js +12 -7
- package/dist/plugin/config/getCondition.d.ts.map +1 -1
- package/dist/plugin/config/getCondition.js +7 -5
- package/dist/plugin/dev-server/configureReactServer.server.d.ts.map +1 -1
- package/dist/plugin/dev-server/configureReactServer.server.js +5 -8
- package/dist/plugin/dev-server/plugin.client.d.ts.map +1 -1
- package/dist/plugin/dev-server/plugin.client.js +2 -1
- package/dist/plugin/dev-server/plugin.server.d.ts.map +1 -1
- package/dist/plugin/dev-server/plugin.server.js +2 -36
- package/dist/plugin/dev-server/virtualRscHmrPlugin.js +23 -23
- package/dist/plugin/environments/createBuildEventPlugin.js +88 -98
- package/dist/plugin/environments/createEnvironmentPlugin.js +222 -250
- package/dist/plugin/error/index.d.ts +1 -2
- package/dist/plugin/error/index.d.ts.map +1 -1
- package/dist/plugin/error/index.js +2 -3
- package/dist/plugin/error/panicThresholdHandler.js +14 -3
- package/dist/plugin/error/setupGlobalErrorHandler.d.ts.map +1 -1
- package/dist/plugin/error/setupGlobalErrorHandler.js +23 -16
- package/dist/plugin/helpers/createRscRenderHelpers.d.ts +0 -5
- package/dist/plugin/helpers/createRscRenderHelpers.d.ts.map +1 -1
- package/dist/plugin/helpers/createRscRenderHelpers.js +32 -55
- package/dist/plugin/helpers/createSharedLoader.d.ts.map +1 -1
- package/dist/plugin/helpers/createSharedLoader.js +4 -2
- package/dist/plugin/helpers/headlessStreamReuseHandler.js +30 -22
- package/dist/plugin/helpers/headlessStreamState.d.ts +0 -38
- package/dist/plugin/helpers/headlessStreamState.d.ts.map +1 -1
- package/dist/plugin/helpers/headlessStreamState.js +15 -76
- package/dist/plugin/helpers/index.d.ts +0 -3
- package/dist/plugin/helpers/index.d.ts.map +1 -1
- package/dist/plugin/helpers/index.js +1 -4
- package/dist/plugin/helpers/requestInfo.d.ts.map +1 -1
- package/dist/plugin/helpers/requestInfo.js +3 -3
- package/dist/plugin/helpers/resolveComponent.d.ts.map +1 -1
- package/dist/plugin/helpers/resolveComponent.js +4 -2
- package/dist/plugin/helpers/workerCleanup.d.ts +1 -12
- package/dist/plugin/helpers/workerCleanup.d.ts.map +1 -1
- package/dist/plugin/helpers/workerCleanup.js +1 -1
- package/dist/plugin/index.client.d.ts +5 -0
- package/dist/plugin/index.client.d.ts.map +1 -0
- package/dist/plugin/index.client.js +4 -0
- package/dist/plugin/index.d.ts +4 -3
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +10 -5
- package/dist/plugin/index.server.d.ts +5 -0
- package/dist/plugin/index.server.d.ts.map +1 -0
- package/dist/plugin/index.server.js +4 -0
- package/dist/plugin/loader/directives/index.d.ts +0 -1
- package/dist/plugin/loader/directives/index.d.ts.map +1 -1
- package/dist/plugin/loader/directives/index.js +1 -2
- package/dist/plugin/metrics/createWorkerStartupMetrics.js +31 -13
- package/dist/plugin/orchestrator/createPluginOrchestrator.client.js +41 -38
- package/dist/plugin/orchestrator/createPluginOrchestrator.server.js +43 -46
- package/dist/plugin/plugin.client.js +2 -2
- package/dist/plugin/plugin.server.js +2 -2
- package/dist/plugin/react-static/createBuildLoader.client.js +12 -6
- package/dist/plugin/react-static/createBuildLoader.server.js +255 -235
- package/dist/plugin/react-static/plugin.client.js +684 -770
- package/dist/plugin/react-static/plugin.server.js +517 -603
- package/dist/plugin/react-static/processCssFilesForPages.js +103 -88
- package/dist/plugin/react-static/renderPage.client.js +455 -529
- package/dist/plugin/react-static/renderPage.server.js +485 -508
- package/dist/plugin/react-static/renderPagesBatched.js +277 -275
- package/dist/plugin/react-static/rscToHtmlStream.client.js +48 -29
- package/dist/plugin/react-static/rscToHtmlStream.server.js +62 -37
- package/dist/plugin/react-static/temporaryReferences.server.js +11 -2
- package/dist/plugin/stream/createMainThreadHandlers.js +40 -31
- package/dist/plugin/stream/renderRscStream.server.d.ts.map +1 -1
- package/dist/plugin/stream/renderRscStream.server.js +127 -144
- package/dist/plugin/transformer/createTransformerPlugin.js +226 -265
- package/dist/plugin/utils/checkReactVersion.d.ts +7 -0
- package/dist/plugin/utils/checkReactVersion.d.ts.map +1 -0
- package/dist/plugin/utils/checkReactVersion.js +23 -0
- package/dist/plugin/utils/envUrls.node.js +12 -11
- package/dist/plugin/vendor/vendor-alias.js +84 -114
- package/dist/plugin/vendor/vendor.client.d.ts.map +1 -1
- package/dist/plugin/vendor/vendor.client.js +1 -3
- package/dist/plugin/worker/rsc/handleRscRender.d.ts.map +1 -1
- package/dist/plugin/worker/rsc/handleRscRender.js +3 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +123 -13
- package/plugin/config/autoDiscover/resolveAutoDiscover.ts +4 -0
- package/plugin/config/getCondition.ts +6 -4
- package/plugin/dev-server/configureReactServer.server.ts +7 -10
- package/plugin/dev-server/plugin.client.ts +2 -0
- package/plugin/dev-server/plugin.server.ts +2 -49
- package/plugin/error/index.ts +1 -2
- package/plugin/error/setupGlobalErrorHandler.ts +24 -25
- package/plugin/helpers/createRscRenderHelpers.ts +0 -29
- package/plugin/helpers/createSharedLoader.ts +6 -1
- package/plugin/helpers/headlessStreamState.ts +0 -69
- package/plugin/helpers/index.ts +0 -3
- package/plugin/helpers/requestInfo.ts +1 -2
- package/plugin/helpers/resolveComponent.ts +6 -1
- package/plugin/helpers/workerCleanup.ts +1 -38
- package/plugin/index.client.ts +4 -0
- package/plugin/index.server.ts +4 -0
- package/plugin/index.ts +12 -5
- package/plugin/loader/directives/index.ts +0 -1
- package/plugin/plugin.client.ts +1 -1
- package/plugin/plugin.server.ts +1 -1
- package/plugin/stream/renderRscStream.server.ts +3 -0
- package/plugin/transformer/README.md +1 -1
- package/plugin/utils/checkReactVersion.ts +28 -0
- package/plugin/vendor/vendor.client.ts +0 -2
- package/plugin/worker/html/README.md +1 -1
- package/plugin/worker/rsc/README.md +1 -1
- package/plugin/worker/rsc/handleRscRender.ts +2 -0
- package/scripts/generate-toc.mjs +27 -294
- package/dist/plugin/error/assertPanic.d.ts +0 -2
- package/dist/plugin/error/assertPanic.d.ts.map +0 -1
- package/dist/plugin/error/assertPanic.js +0 -15
- package/dist/plugin/error/directiveError.d.ts +0 -13
- package/dist/plugin/error/directiveError.d.ts.map +0 -1
- package/dist/plugin/error/directiveError.js +0 -21
- package/dist/plugin/error/enhanceError.d.ts +0 -14
- package/dist/plugin/error/enhanceError.d.ts.map +0 -1
- package/dist/plugin/error/enhanceError.js +0 -24
- package/dist/plugin/helpers/createSafePageComponent.d.ts +0 -36
- package/dist/plugin/helpers/createSafePageComponent.d.ts.map +0 -1
- package/dist/plugin/helpers/createSafePageComponent.js +0 -50
- package/dist/plugin/helpers/moduleResolver.d.ts +0 -25
- package/dist/plugin/helpers/moduleResolver.d.ts.map +0 -1
- package/dist/plugin/helpers/moduleResolver.js +0 -64
- package/dist/plugin/helpers/stashReturnValue.d.ts +0 -3
- package/dist/plugin/helpers/stashReturnValue.d.ts.map +0 -1
- package/dist/plugin/helpers/stashReturnValue.js +0 -23
- package/dist/plugin/helpers/workerManager.d.ts +0 -5
- package/dist/plugin/helpers/workerManager.d.ts.map +0 -1
- package/dist/plugin/helpers/workerManager.js +0 -18
- package/dist/plugin/loader/directives/collectExportsFromModule.d.ts +0 -6
- package/dist/plugin/loader/directives/collectExportsFromModule.d.ts.map +0 -1
- package/dist/plugin/loader/directives/collectExportsFromModule.js +0 -24
- package/plugin/error/assertPanic.ts +0 -9
- package/plugin/error/directiveError.ts +0 -29
- package/plugin/error/enhanceError.ts +0 -41
- package/plugin/helpers/createSafePageComponent.ts +0 -64
- package/plugin/helpers/moduleResolver.ts +0 -91
- package/plugin/helpers/stashReturnValue.ts +0 -19
- package/plugin/helpers/workerManager.ts +0 -16
- package/plugin/loader/directives/collectExportsFromModule.ts +0 -25
|
@@ -1,257 +1,229 @@
|
|
|
1
|
-
import { resolveAutoDiscover } from "../config/autoDiscover/resolveAutoDiscover.js";
|
|
2
|
-
import { resolveUserConfig } from "../config/resolveUserConfig.js";
|
|
3
|
-
import { resolveOptions } from "../config/resolveOptions.js";
|
|
4
|
-
import { handleError } from "../error/handleError.js";
|
|
5
|
-
import { createDefaultModuleID } from "../config/createModuleID.js";
|
|
6
|
-
import { createLogger } from "vite";
|
|
7
|
-
import { join } from "node:path";
|
|
8
|
-
import { DEFAULT_LOADER_CONFIG } from "../config/defaults.js";
|
|
9
|
-
import { runDeferredStaticGeneration } from "../bundle/deferredStaticGeneration.js";
|
|
10
1
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
|
|
14
|
-
*/
|
|
15
|
-
// Note: Path normalization should be handled in the file naming functions, not in writeBundle
|
|
16
|
-
/**
|
|
17
|
-
* Environment Configuration Plugin
|
|
18
|
-
*
|
|
19
|
-
* This plugin configures Vite Environment API environments for React Server Components.
|
|
20
|
-
* It's separate from the env plugin which handles process environment variables.
|
|
21
|
-
*
|
|
22
|
-
* Environment mapping:
|
|
23
|
-
* - client (Vite client = browser) → dist/client (React client components - real implementations)
|
|
24
|
-
* - ssr (Vite SSR = SSR-safe) → dist/static (SSR-compatible static files)
|
|
25
|
-
* - server (custom) → dist/server (React server components with registerClientReference)
|
|
2
|
+
* vite-plugin-react-server
|
|
3
|
+
* Copyright (c) Nico Brinkkemper
|
|
4
|
+
* MIT License
|
|
26
5
|
*/
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
6
|
+
import { resolveAutoDiscover } from '../config/autoDiscover/resolveAutoDiscover.js';
|
|
7
|
+
import { resolveUserConfig } from '../config/resolveUserConfig.js';
|
|
8
|
+
import { resolveOptions } from '../config/resolveOptions.js';
|
|
9
|
+
import { handleError } from '../error/handleError.js';
|
|
10
|
+
import { createDefaultModuleID } from '../config/createModuleID.js';
|
|
11
|
+
import { createLogger } from 'vite';
|
|
12
|
+
import { join } from 'node:path';
|
|
13
|
+
import { DEFAULT_LOADER_CONFIG } from '../config/defaults.js';
|
|
14
|
+
import { runDeferredStaticGeneration } from '../bundle/deferredStaticGeneration.js';
|
|
15
|
+
|
|
16
|
+
const createEnvironmentPlugin = (options) => {
|
|
17
|
+
const environmentPlugin = {
|
|
18
|
+
name: "vite:plugin-react-server/environments",
|
|
19
|
+
enforce: "pre",
|
|
20
|
+
async config(config, configEnv) {
|
|
21
|
+
const resolvedOptionsResult = resolveOptions(options);
|
|
22
|
+
if (resolvedOptionsResult.type === "error") {
|
|
23
|
+
throw resolvedOptionsResult.error;
|
|
24
|
+
}
|
|
25
|
+
const userOptions = resolvedOptionsResult.userOptions;
|
|
26
|
+
if (!config.plugins) {
|
|
27
|
+
config.plugins = [];
|
|
28
|
+
}
|
|
29
|
+
const logger = config.customLogger || createLogger();
|
|
30
|
+
if (typeof userOptions.moduleID !== "function") {
|
|
31
|
+
userOptions.moduleID = createDefaultModuleID(
|
|
32
|
+
userOptions,
|
|
33
|
+
configEnv,
|
|
34
|
+
userOptions.loader?.mode
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
if (!userOptions.loader) {
|
|
38
|
+
userOptions.loader = DEFAULT_LOADER_CONFIG;
|
|
39
|
+
}
|
|
40
|
+
userOptions.loader.moduleID = createDefaultModuleID(
|
|
41
|
+
userOptions,
|
|
42
|
+
configEnv,
|
|
43
|
+
userOptions.loader?.mode
|
|
44
|
+
);
|
|
45
|
+
const autoDiscoverResult = await resolveAutoDiscover({
|
|
46
|
+
config,
|
|
47
|
+
configEnv,
|
|
48
|
+
userOptions,
|
|
49
|
+
logger
|
|
50
|
+
});
|
|
51
|
+
if (autoDiscoverResult.type === "error") {
|
|
52
|
+
const panicError = handleError({
|
|
53
|
+
error: autoDiscoverResult.error,
|
|
54
|
+
logger,
|
|
55
|
+
panicThreshold: userOptions.panicThreshold,
|
|
56
|
+
critical: true
|
|
57
|
+
// Auto-discovery is critical for environment setup
|
|
58
|
+
});
|
|
59
|
+
if (panicError != null) {
|
|
60
|
+
throw panicError;
|
|
61
|
+
} else {
|
|
62
|
+
throw new Error("Cannot continue without auto-discovery");
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
const autoDiscoveredFiles = autoDiscoverResult.autoDiscoveredFiles;
|
|
66
|
+
const allEnvironmentConfigs = [
|
|
67
|
+
{
|
|
68
|
+
name: "client",
|
|
69
|
+
condition: "react-client",
|
|
70
|
+
ssr: false,
|
|
71
|
+
outDir: join(userOptions.build.outDir, userOptions.build.static)
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
name: "ssr",
|
|
75
|
+
condition: "react-client",
|
|
76
|
+
ssr: true,
|
|
77
|
+
outDir: join(userOptions.build.outDir, userOptions.build.client)
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
name: "server",
|
|
81
|
+
condition: "react-server",
|
|
82
|
+
ssr: true,
|
|
83
|
+
outDir: join(userOptions.build.outDir, userOptions.build.server)
|
|
84
|
+
}
|
|
85
|
+
];
|
|
86
|
+
const availableEnvironments = userOptions.availableEnvironments || ["client", "ssr", "server"];
|
|
87
|
+
const environmentConfigs = allEnvironmentConfigs.filter(
|
|
88
|
+
(config2) => availableEnvironments.includes(config2.name)
|
|
89
|
+
);
|
|
90
|
+
const environments = {};
|
|
91
|
+
const sortedEnvConfigs = environmentConfigs;
|
|
92
|
+
for (const envConfig of sortedEnvConfigs) {
|
|
93
|
+
const configResult = resolveUserConfig({
|
|
94
|
+
condition: envConfig.condition,
|
|
95
|
+
config,
|
|
96
|
+
configEnv,
|
|
97
|
+
userOptions,
|
|
98
|
+
autoDiscoveredFiles,
|
|
99
|
+
ssr: envConfig.ssr
|
|
100
|
+
});
|
|
101
|
+
if (configResult.type === "error") {
|
|
102
|
+
const panicError = handleError({
|
|
103
|
+
error: configResult.error,
|
|
104
|
+
logger,
|
|
105
|
+
context: `createEnvironmentPlugin(${envConfig.name}Config)`,
|
|
106
|
+
panicThreshold: userOptions.panicThreshold,
|
|
107
|
+
critical: true
|
|
108
|
+
});
|
|
109
|
+
if (panicError != null) {
|
|
110
|
+
throw panicError;
|
|
111
|
+
} else {
|
|
112
|
+
throw new Error(
|
|
113
|
+
`Cannot continue without ${envConfig.name} environment configuration`
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
const userConfig = configResult.userConfig;
|
|
118
|
+
if (userOptions.verbose) {
|
|
119
|
+
logger?.info(
|
|
120
|
+
`${envConfig.name} environment rollup inputs: ${JSON.stringify(
|
|
121
|
+
userConfig.build.rollupOptions.input,
|
|
122
|
+
null,
|
|
123
|
+
2
|
|
124
|
+
)}`
|
|
125
|
+
);
|
|
126
|
+
logger?.info(
|
|
127
|
+
`${envConfig.name} environment output preserveModulesRoot: ${JSON.stringify(
|
|
128
|
+
userConfig.build.rollupOptions.output,
|
|
129
|
+
null,
|
|
130
|
+
2
|
|
131
|
+
)}`
|
|
132
|
+
);
|
|
133
|
+
}
|
|
134
|
+
if (userOptions.verbose) {
|
|
135
|
+
logger?.info(
|
|
136
|
+
`${envConfig.name} userConfig.resolve: ${JSON.stringify(
|
|
137
|
+
userConfig.resolve,
|
|
138
|
+
null,
|
|
139
|
+
2
|
|
140
|
+
)}`
|
|
141
|
+
);
|
|
142
|
+
logger?.info(
|
|
143
|
+
`${envConfig.name} userConfig.build.rollupOptions.external: ${JSON.stringify(
|
|
144
|
+
userConfig.build.rollupOptions.external,
|
|
145
|
+
null,
|
|
146
|
+
2
|
|
147
|
+
)}`
|
|
148
|
+
);
|
|
149
|
+
}
|
|
150
|
+
const legacyBuild = userOptions.strategy?.legacyBuilder && !config?.builder;
|
|
151
|
+
const implicitSsr = userOptions.strategy?.mainThreadCondition === "react-server" && userOptions.strategy?.legacyBuilder;
|
|
152
|
+
const implicitViteBuildName = userOptions.strategy?.legacyBuilder && !config.build?.ssr ? "client" : "ssr";
|
|
153
|
+
const consumer = legacyBuild ? implicitViteBuildName === "ssr" ? "server" : "client" : envConfig.name === "server" || envConfig.name === "ssr" ? "server" : "client";
|
|
154
|
+
environments[envConfig.name] = {
|
|
155
|
+
keepProcessEnv: envConfig.name === "server" ? true : false,
|
|
156
|
+
define: userConfig.define,
|
|
157
|
+
consumer,
|
|
158
|
+
resolve: {
|
|
159
|
+
...userConfig.resolve,
|
|
160
|
+
// IMPORTANT: Map externals from resolveUserConfig (rollupOptions.external) to Environment API format
|
|
161
|
+
// In Environment API, externals go in resolve.external, not build.rollupOptions.external
|
|
162
|
+
// For static builds (browser/ESM): don't externalize anything - bundle everything to avoid _virtual files
|
|
163
|
+
// For client/server builds (SSR): externalize as configured
|
|
164
|
+
external: (() => {
|
|
165
|
+
const isStaticBuild = envConfig.name === "static" || !envConfig.ssr && envConfig.name === "client";
|
|
166
|
+
if (isStaticBuild) {
|
|
167
|
+
return [];
|
|
168
|
+
}
|
|
169
|
+
return Array.isArray(userConfig.build.rollupOptions.external) ? userConfig.build.rollupOptions.external.filter(
|
|
170
|
+
(item) => typeof item === "string"
|
|
171
|
+
) : [];
|
|
172
|
+
})()
|
|
173
|
+
},
|
|
174
|
+
build: {
|
|
175
|
+
...userConfig.build,
|
|
176
|
+
ssr: envConfig.name === "server" ? true : legacyBuild ? implicitSsr : envConfig.name === "ssr",
|
|
177
|
+
target: userConfig.build.target,
|
|
178
|
+
// Remove externals from rollupOptions since they should be in resolve.external for Environment API
|
|
179
|
+
rollupOptions: {
|
|
180
|
+
...userConfig.build.rollupOptions,
|
|
181
|
+
external: void 0,
|
|
182
|
+
// Remove external from rollupOptions, it's now in resolve.external
|
|
183
|
+
// Set preserveModules in the output configuration, not at the top level
|
|
184
|
+
output: (() => {
|
|
185
|
+
const output = userConfig.build.rollupOptions.output;
|
|
186
|
+
if (Array.isArray(output)) {
|
|
187
|
+
const pluginOutput = output.find((o) => o && typeof o === "object" && "preserveModulesRoot" in o);
|
|
188
|
+
if (pluginOutput) {
|
|
189
|
+
return pluginOutput;
|
|
190
|
+
}
|
|
191
|
+
if (output.length > 0) {
|
|
192
|
+
return output[0];
|
|
193
|
+
}
|
|
74
194
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
195
|
+
if (output && typeof output === "object" && !Array.isArray(output)) {
|
|
196
|
+
const hasPreserveModulesRoot = "preserveModulesRoot" in output;
|
|
197
|
+
if (hasPreserveModulesRoot) {
|
|
198
|
+
return output;
|
|
199
|
+
} else {
|
|
200
|
+
const preserveModulesRootString = userOptions.build.preserveModulesRoot === false ? userOptions.moduleBase : void 0;
|
|
201
|
+
return { ...output, preserveModulesRoot: preserveModulesRootString };
|
|
202
|
+
}
|
|
78
203
|
}
|
|
204
|
+
return output;
|
|
205
|
+
})()
|
|
79
206
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
name: "ssr",
|
|
92
|
-
condition: "react-client",
|
|
93
|
-
ssr: true,
|
|
94
|
-
outDir: join(userOptions.build.outDir, userOptions.build.client),
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
name: "server",
|
|
98
|
-
condition: "react-server",
|
|
99
|
-
ssr: true,
|
|
100
|
-
outDir: join(userOptions.build.outDir, userOptions.build.server),
|
|
101
|
-
},
|
|
102
|
-
];
|
|
103
|
-
// Filter environments based on availableEnvironments from orchestrator
|
|
104
|
-
const availableEnvironments = userOptions
|
|
105
|
-
.availableEnvironments || ["client", "ssr", "server"];
|
|
106
|
-
const environmentConfigs = allEnvironmentConfigs.filter((config) => availableEnvironments.includes(config.name));
|
|
107
|
-
// Resolve all environment configurations using resolveUserConfig
|
|
108
|
-
const environments = {};
|
|
109
|
-
// Sort environments to process static first (to establish hashes)
|
|
110
|
-
// Use the environment configs as-is
|
|
111
|
-
const sortedEnvConfigs = environmentConfigs;
|
|
112
|
-
for (const envConfig of sortedEnvConfigs) {
|
|
113
|
-
const configResult = resolveUserConfig({
|
|
114
|
-
condition: envConfig.condition,
|
|
115
|
-
config,
|
|
116
|
-
configEnv,
|
|
117
|
-
userOptions,
|
|
118
|
-
autoDiscoveredFiles,
|
|
119
|
-
ssr: envConfig.ssr,
|
|
120
|
-
});
|
|
121
|
-
if (configResult.type === "error") {
|
|
122
|
-
const panicError = handleError({
|
|
123
|
-
error: configResult.error,
|
|
124
|
-
logger,
|
|
125
|
-
context: `createEnvironmentPlugin(${envConfig.name}Config)`,
|
|
126
|
-
panicThreshold: userOptions.panicThreshold,
|
|
127
|
-
critical: true,
|
|
128
|
-
});
|
|
129
|
-
if (panicError != null) {
|
|
130
|
-
throw panicError;
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
throw new Error(`Cannot continue without ${envConfig.name} environment configuration`);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
// Map the resolved user config to Environment API compatible options
|
|
137
|
-
const userConfig = configResult.userConfig;
|
|
138
|
-
// Log the rollup inputs for this environment (only in verbose mode)
|
|
139
|
-
if (userOptions.verbose) {
|
|
140
|
-
logger?.info(`${envConfig.name} environment rollup inputs: ${JSON.stringify(userConfig.build.rollupOptions.input, null, 2)}`);
|
|
141
|
-
logger?.info(`${envConfig.name} environment output preserveModulesRoot: ${JSON.stringify(userConfig.build.rollupOptions.output, null, 2)}`);
|
|
142
|
-
}
|
|
143
|
-
// Debug: Log what resolveUserConfig provided
|
|
144
|
-
if (userOptions.verbose) {
|
|
145
|
-
logger?.info(`${envConfig.name} userConfig.resolve: ${JSON.stringify(userConfig.resolve, null, 2)}`);
|
|
146
|
-
logger?.info(`${envConfig.name} userConfig.build.rollupOptions.external: ${JSON.stringify(userConfig.build.rollupOptions.external, null, 2)}`);
|
|
147
|
-
}
|
|
148
|
-
// detect if legacy build or not
|
|
149
|
-
const legacyBuild = userOptions.strategy?.legacyBuilder && !config?.builder;
|
|
150
|
-
const implicitSsr = userOptions.strategy?.mainThreadCondition === "react-server" &&
|
|
151
|
-
userOptions.strategy?.legacyBuilder;
|
|
152
|
-
// this follows vite's logic for legacy builds
|
|
153
|
-
const implicitViteBuildName = userOptions.strategy?.legacyBuilder && !config.build?.ssr
|
|
154
|
-
? "client"
|
|
155
|
-
: "ssr";
|
|
156
|
-
const consumer = legacyBuild
|
|
157
|
-
? implicitViteBuildName === "ssr"
|
|
158
|
-
? "server"
|
|
159
|
-
: "client"
|
|
160
|
-
: envConfig.name === "server" || envConfig.name === "ssr"
|
|
161
|
-
? "server"
|
|
162
|
-
: "client";
|
|
163
|
-
// Note: Path normalization should be handled in the file naming functions
|
|
164
|
-
environments[envConfig.name] = {
|
|
165
|
-
keepProcessEnv: envConfig.name === "server" ? true : false,
|
|
166
|
-
define: userConfig.define,
|
|
167
|
-
consumer: consumer,
|
|
168
|
-
resolve: {
|
|
169
|
-
...userConfig.resolve,
|
|
170
|
-
// IMPORTANT: Map externals from resolveUserConfig (rollupOptions.external) to Environment API format
|
|
171
|
-
// In Environment API, externals go in resolve.external, not build.rollupOptions.external
|
|
172
|
-
// For static builds (browser/ESM): don't externalize anything - bundle everything to avoid _virtual files
|
|
173
|
-
// For client/server builds (SSR): externalize as configured
|
|
174
|
-
external: (() => {
|
|
175
|
-
const isStaticBuild = envConfig.name === "static" || (!envConfig.ssr && envConfig.name === "client");
|
|
176
|
-
if (isStaticBuild) {
|
|
177
|
-
// For static builds, don't externalize anything (bundle everything)
|
|
178
|
-
return [];
|
|
179
|
-
}
|
|
180
|
-
// For SSR builds, use configured externals
|
|
181
|
-
return Array.isArray(userConfig.build.rollupOptions.external)
|
|
182
|
-
? userConfig.build.rollupOptions.external.filter((item) => typeof item === "string")
|
|
183
|
-
: [];
|
|
184
|
-
})(),
|
|
185
|
-
},
|
|
186
|
-
build: {
|
|
187
|
-
...userConfig.build,
|
|
188
|
-
ssr: envConfig.name === "server"
|
|
189
|
-
? true
|
|
190
|
-
: legacyBuild
|
|
191
|
-
? implicitSsr
|
|
192
|
-
: envConfig.name === "ssr",
|
|
193
|
-
target: userConfig.build.target,
|
|
194
|
-
// Remove externals from rollupOptions since they should be in resolve.external for Environment API
|
|
195
|
-
rollupOptions: {
|
|
196
|
-
...userConfig.build.rollupOptions,
|
|
197
|
-
external: undefined, // Remove external from rollupOptions, it's now in resolve.external
|
|
198
|
-
// Set preserveModules in the output configuration, not at the top level
|
|
199
|
-
output: (() => {
|
|
200
|
-
const output = userConfig.build.rollupOptions.output;
|
|
201
|
-
// Handle array output configuration - extract the plugin output that contains preserveModulesRoot
|
|
202
|
-
if (Array.isArray(output)) {
|
|
203
|
-
const pluginOutput = output.find(o => o && typeof o === 'object' && 'preserveModulesRoot' in o);
|
|
204
|
-
if (pluginOutput) {
|
|
205
|
-
return pluginOutput;
|
|
206
|
-
}
|
|
207
|
-
// If no pluginOutput found, use the first output configuration
|
|
208
|
-
if (output.length > 0) {
|
|
209
|
-
return output[0];
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
// Ensure preserveModulesRoot is always present in the output configuration
|
|
213
|
-
if (output && typeof output === 'object' && !Array.isArray(output)) {
|
|
214
|
-
// Check if the property exists in the object (not just checking the value)
|
|
215
|
-
const hasPreserveModulesRoot = 'preserveModulesRoot' in output;
|
|
216
|
-
if (hasPreserveModulesRoot) {
|
|
217
|
-
// Property exists, preserve the preserveModules value from the output (don't override it)
|
|
218
|
-
// This is critical for static builds where preserveModules: false is set
|
|
219
|
-
return output; // Return as-is, preserveModules is already set correctly
|
|
220
|
-
}
|
|
221
|
-
else {
|
|
222
|
-
// Property missing, add it based on user options
|
|
223
|
-
const preserveModulesRootString = userOptions.build.preserveModulesRoot === false
|
|
224
|
-
? userOptions.moduleBase
|
|
225
|
-
: undefined;
|
|
226
|
-
return { ...output, preserveModulesRoot: preserveModulesRootString };
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
return output;
|
|
230
|
-
})(),
|
|
231
|
-
},
|
|
232
|
-
},
|
|
233
|
-
};
|
|
207
|
+
}
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
return {
|
|
211
|
+
root: userOptions.projectRoot,
|
|
212
|
+
...config,
|
|
213
|
+
environments,
|
|
214
|
+
builder: {
|
|
215
|
+
async buildApp(builder) {
|
|
216
|
+
for (const environment of Object.values(builder.environments)) {
|
|
217
|
+
await builder.build(environment);
|
|
234
218
|
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
environments,
|
|
243
|
-
builder: {
|
|
244
|
-
async buildApp(builder) {
|
|
245
|
-
// Build all environments in definition order
|
|
246
|
-
for (const environment of Object.values(builder.environments)) {
|
|
247
|
-
await builder.build(environment);
|
|
248
|
-
}
|
|
249
|
-
// Step 4: Run deferred static generation now that all manifests are available
|
|
250
|
-
await runDeferredStaticGeneration();
|
|
251
|
-
},
|
|
252
|
-
},
|
|
253
|
-
};
|
|
254
|
-
},
|
|
255
|
-
};
|
|
256
|
-
return environmentPlugin;
|
|
219
|
+
await runDeferredStaticGeneration();
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
};
|
|
225
|
+
return environmentPlugin;
|
|
257
226
|
};
|
|
227
|
+
|
|
228
|
+
export { createEnvironmentPlugin };
|
|
229
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlRW52aXJvbm1lbnRQbHVnaW4uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BsdWdpbi9lbnZpcm9ubWVudHMvY3JlYXRlRW52aXJvbm1lbnRQbHVnaW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQbHVnaW4sIFVzZXJDb25maWcsIFZpdGVCdWlsZGVyIH0gZnJvbSBcInZpdGVcIjtcbmltcG9ydCB0eXBlIHsgVml0ZVBsdWdpbkZuIH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5cbmltcG9ydCB7IHJlc29sdmVBdXRvRGlzY292ZXIgfSBmcm9tIFwiLi4vY29uZmlnL2F1dG9EaXNjb3Zlci9yZXNvbHZlQXV0b0Rpc2NvdmVyLmpzXCI7XG5pbXBvcnQgeyByZXNvbHZlVXNlckNvbmZpZyB9IGZyb20gXCIuLi9jb25maWcvcmVzb2x2ZVVzZXJDb25maWcuanNcIjtcbmltcG9ydCB7IHJlc29sdmVPcHRpb25zIH0gZnJvbSBcIi4uL2NvbmZpZy9yZXNvbHZlT3B0aW9ucy5qc1wiO1xuaW1wb3J0IHsgaGFuZGxlRXJyb3IgfSBmcm9tIFwiLi4vZXJyb3IvaGFuZGxlRXJyb3IuanNcIjtcbmltcG9ydCB7IGNyZWF0ZURlZmF1bHRNb2R1bGVJRCB9IGZyb20gXCIuLi9jb25maWcvY3JlYXRlTW9kdWxlSUQuanNcIjtcbmltcG9ydCB7IGNyZWF0ZUxvZ2dlciB9IGZyb20gXCJ2aXRlXCI7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgREVGQVVMVF9MT0FERVJfQ09ORklHIH0gZnJvbSBcIi4uL2NvbmZpZy9kZWZhdWx0cy5qc1wiO1xuaW1wb3J0IHsgcnVuRGVmZXJyZWRTdGF0aWNHZW5lcmF0aW9uIH0gZnJvbSBcIi4uL2J1bmRsZS9kZWZlcnJlZFN0YXRpY0dlbmVyYXRpb24uanNcIjtcblxuLyoqXG4gKiBDcmVhdGVzIGEgcGx1Z2luIHRoYXQgZW5zdXJlcyBjb25zaXN0ZW50IGhhc2ggZ2VuZXJhdGlvbiBhY3Jvc3MgZW52aXJvbm1lbnRzXG4gKiBieSB1c2luZyB0aGUgb3JpZ2luYWwgc291cmNlIGZpbGUgY29udGVudCBhcyB0aGUgYmFzaXMgZm9yIGhhc2ggZ2VuZXJhdGlvbi5cblxuKi9cbi8vIE5vdGU6IFBhdGggbm9ybWFsaXphdGlvbiBzaG91bGQgYmUgaGFuZGxlZCBpbiB0aGUgZmlsZSBuYW1pbmcgZnVuY3Rpb25zLCBub3QgaW4gd3JpdGVCdW5kbGVcblxuLyoqXG4gKiBFbnZpcm9ubWVudCBDb25maWd1cmF0aW9uIFBsdWdpblxuICpcbiAqIFRoaXMgcGx1Z2luIGNvbmZpZ3VyZXMgVml0ZSBFbnZpcm9ubWVudCBBUEkgZW52aXJvbm1lbnRzIGZvciBSZWFjdCBTZXJ2ZXIgQ29tcG9uZW50cy5cbiAqIEl0J3Mgc2VwYXJhdGUgZnJvbSB0aGUgZW52IHBsdWdpbiB3aGljaCBoYW5kbGVzIHByb2Nlc3MgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICpcbiAqIEVudmlyb25tZW50IG1hcHBpbmc6XG4gKiAtIGNsaWVudCAoVml0ZSBjbGllbnQgPSBicm93c2VyKSDihpIgZGlzdC9jbGllbnQgKFJlYWN0IGNsaWVudCBjb21wb25lbnRzIC0gcmVhbCBpbXBsZW1lbnRhdGlvbnMpXG4gKiAtIHNzciAoVml0ZSBTU1IgPSBTU1Itc2FmZSkg4oaSIGRpc3Qvc3RhdGljIChTU1ItY29tcGF0aWJsZSBzdGF0aWMgZmlsZXMpXG4gKiAtIHNlcnZlciAoY3VzdG9tKSDihpIgZGlzdC9zZXJ2ZXIgKFJlYWN0IHNlcnZlciBjb21wb25lbnRzIHdpdGggcmVnaXN0ZXJDbGllbnRSZWZlcmVuY2UpXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVFbnZpcm9ubWVudFBsdWdpbjogVml0ZVBsdWdpbkZuID0gKG9wdGlvbnMpOiBQbHVnaW4gPT4ge1xuICBjb25zdCBlbnZpcm9ubWVudFBsdWdpbjogUGx1Z2luID0ge1xuICAgIG5hbWU6IFwidml0ZTpwbHVnaW4tcmVhY3Qtc2VydmVyL2Vudmlyb25tZW50c1wiLFxuICAgIGVuZm9yY2U6IFwicHJlXCIsXG5cbiAgICBhc3luYyBjb25maWcoY29uZmlnOiBVc2VyQ29uZmlnLCBjb25maWdFbnYpIHtcbiAgICAgIC8vIFJlc29sdmUgcGx1Z2luIG9wdGlvbnNcbiAgICAgIGNvbnN0IHJlc29sdmVkT3B0aW9uc1Jlc3VsdCA9IHJlc29sdmVPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgaWYgKHJlc29sdmVkT3B0aW9uc1Jlc3VsdC50eXBlID09PSBcImVycm9yXCIpIHtcbiAgICAgICAgdGhyb3cgcmVzb2x2ZWRPcHRpb25zUmVzdWx0LmVycm9yO1xuICAgICAgfVxuICAgICAgY29uc3QgdXNlck9wdGlvbnMgPSByZXNvbHZlZE9wdGlvbnNSZXN1bHQudXNlck9wdGlvbnM7XG5cbiAgICAgIC8vIEFkZCB0cmFuc2Zvcm1lciBwbHVnaW5zIGF0IHRoZSBWaXRlIGxldmVsIHdpdGggcHJvcGVyIGVudmlyb25tZW50IGZpbHRlcmluZ1xuICAgICAgaWYgKCFjb25maWcucGx1Z2lucykge1xuICAgICAgICBjb25maWcucGx1Z2lucyA9IFtdO1xuICAgICAgfVxuXG4gICAgICAvLyBOb3RlOiBUcmFuc2Zvcm1lciBpcyBub3cgYWRkZWQgdmlhIG9yY2hlc3RyYXRvciwgc28gc2tpcCBhZGRpbmcgaXQgaGVyZVxuICAgICAgLy8gdG8gYXZvaWQgZHVwbGljYXRlcyBhbmQgZW5zdXJlIHByb3BlciByZWdpc3RyYXRpb25cblxuICAgICAgLy8gTm90ZTogSGFzaCBjb29yZGluYXRpb24gaXMgaGFuZGxlZCBieSB0aGUgc2VxdWVudGlhbCBidWlsZCBhcHByb2FjaFxuICAgICAgLy8gRWFjaCBlbnZpcm9ubWVudCB3aWxsIHVzZSB0aGUgbWFuaWZlc3QgZnJvbSB0aGUgcHJldmlvdXMgYnVpbGRcblxuICAgICAgLy8gU2V0IHVwIGxvZ2dlciBhbmQgbW9kdWxlSURcbiAgICAgIGNvbnN0IGxvZ2dlciA9IGNvbmZpZy5jdXN0b21Mb2dnZXIgfHwgY3JlYXRlTG9nZ2VyKCk7XG4gICAgICBpZiAodHlwZW9mIHVzZXJPcHRpb25zLm1vZHVsZUlEICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdXNlck9wdGlvbnMubW9kdWxlSUQgPSBjcmVhdGVEZWZhdWx0TW9kdWxlSUQoXG4gICAgICAgICAgdXNlck9wdGlvbnMsXG4gICAgICAgICAgY29uZmlnRW52LFxuICAgICAgICAgIHVzZXJPcHRpb25zLmxvYWRlcj8ubW9kZVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgLy8gQWx3YXlzIG92ZXJyaWRlIHRoZSBtb2R1bGVJRCBmdW5jdGlvbiB0byBlbnN1cmUgaXQgaGFzIHRoZSBmb3JUcmFuc2Zvcm1lciBsb2dpY1xuICAgICAgaWYgKCF1c2VyT3B0aW9ucy5sb2FkZXIpIHtcbiAgICAgICAgdXNlck9wdGlvbnMubG9hZGVyID0gREVGQVVMVF9MT0FERVJfQ09ORklHO1xuICAgICAgfVxuICAgICAgdXNlck9wdGlvbnMubG9hZGVyLm1vZHVsZUlEID0gY3JlYXRlRGVmYXVsdE1vZHVsZUlEKFxuICAgICAgICB1c2VyT3B0aW9ucyxcbiAgICAgICAgY29uZmlnRW52LFxuICAgICAgICB1c2VyT3B0aW9ucy5sb2FkZXI/Lm1vZGVcbiAgICAgICk7XG5cbiAgICAgIC8vIFJ1biBhdXRvLWRpc2NvdmVyeSBvbmNlIHRvIGdldCBhbGwgZmlsZXMgLSB3ZSBkb24ndCBuZWVkIHNlcGFyYXRlIGNhbGxzIHNpbmNlXG4gICAgICAvLyB0aGUgZmlsZSBkaXNjb3ZlcnkgcHJvY2VzcyBpcyBpZGVudGljYWwsIG9ubHkgdGhlIG9yZ2FuaXphdGlvbiBkaWZmZXJzXG4gICAgICBjb25zdCBhdXRvRGlzY292ZXJSZXN1bHQgPSBhd2FpdCByZXNvbHZlQXV0b0Rpc2NvdmVyKHtcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBjb25maWdFbnYsXG4gICAgICAgIHVzZXJPcHRpb25zLFxuICAgICAgICBsb2dnZXIsXG4gICAgICB9KTtcblxuICAgICAgaWYgKGF1dG9EaXNjb3ZlclJlc3VsdC50eXBlID09PSBcImVycm9yXCIpIHtcbiAgICAgICAgY29uc3QgcGFuaWNFcnJvciA9IGhhbmRsZUVycm9yKHtcbiAgICAgICAgICBlcnJvcjogYXV0b0Rpc2NvdmVyUmVzdWx0LmVycm9yLFxuICAgICAgICAgIGxvZ2dlcixcbiAgICAgICAgICBjb250ZXh0OiBcImNyZWF0ZUVudmlyb25tZW50UGx1Z2luKGF1dG9EaXNjb3ZlcilcIixcbiAgICAgICAgICBwYW5pY1RocmVzaG9sZDogdXNlck9wdGlvbnMucGFuaWNUaHJlc2hvbGQsXG4gICAgICAgICAgY3JpdGljYWw6IHRydWUsIC8vIEF1dG8tZGlzY292ZXJ5IGlzIGNyaXRpY2FsIGZvciBlbnZpcm9ubWVudCBzZXR1cFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHBhbmljRXJyb3IgIT0gbnVsbCkge1xuICAgICAgICAgIHRocm93IHBhbmljRXJyb3I7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gSWYgaGFuZGxlRXJyb3IgcmV0dXJucyBudWxsIGJ1dCB0aGlzIGlzIGNyaXRpY2FsLCB3ZSBjYW4ndCBjb250aW51ZVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBjb250aW51ZSB3aXRob3V0IGF1dG8tZGlzY292ZXJ5XCIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEdldCB0aGUgYXV0by1kaXNjb3ZlcmVkIGZpbGVzIChzYWZlIHRvIGFjY2VzcyBzaW5jZSB3ZSBjaGVja2VkIGZvciBlcnJvcnMgYWJvdmUpXG4gICAgICBjb25zdCBhdXRvRGlzY292ZXJlZEZpbGVzID0gYXV0b0Rpc2NvdmVyUmVzdWx0LmF1dG9EaXNjb3ZlcmVkRmlsZXMhO1xuXG4gICAgICAvLyBEZWZpbmUgZW52aXJvbm1lbnQgY29uZmlndXJhdGlvbnNcbiAgICAgIGNvbnN0IGFsbEVudmlyb25tZW50Q29uZmlncyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiY2xpZW50XCIsXG4gICAgICAgICAgY29uZGl0aW9uOiBcInJlYWN0LWNsaWVudFwiIGFzIGNvbnN0LFxuICAgICAgICAgIHNzcjogZmFsc2UsXG4gICAgICAgICAgb3V0RGlyOiBqb2luKHVzZXJPcHRpb25zLmJ1aWxkLm91dERpciwgdXNlck9wdGlvbnMuYnVpbGQuc3RhdGljKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwic3NyXCIsXG4gICAgICAgICAgY29uZGl0aW9uOiBcInJlYWN0LWNsaWVudFwiIGFzIGNvbnN0LFxuICAgICAgICAgIHNzcjogdHJ1ZSxcbiAgICAgICAgICBvdXREaXI6IGpvaW4odXNlck9wdGlvbnMuYnVpbGQub3V0RGlyLCB1c2VyT3B0aW9ucy5idWlsZC5jbGllbnQpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJzZXJ2ZXJcIixcbiAgICAgICAgICBjb25kaXRpb246IFwicmVhY3Qtc2VydmVyXCIgYXMgY29uc3QsXG4gICAgICAgICAgc3NyOiB0cnVlLFxuICAgICAgICAgIG91dERpcjogam9pbih1c2VyT3B0aW9ucy5idWlsZC5vdXREaXIsIHVzZXJPcHRpb25zLmJ1aWxkLnNlcnZlciksXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICAvLyBGaWx0ZXIgZW52aXJvbm1lbnRzIGJhc2VkIG9uIGF2YWlsYWJsZUVudmlyb25tZW50cyBmcm9tIG9yY2hlc3RyYXRvclxuXG4gICAgICBjb25zdCBhdmFpbGFibGVFbnZpcm9ubWVudHMgPSAodXNlck9wdGlvbnMgYXMgYW55KVxuICAgICAgICAuYXZhaWxhYmxlRW52aXJvbm1lbnRzIHx8IFtcImNsaWVudFwiLCBcInNzclwiLCBcInNlcnZlclwiXTtcblxuICAgICAgY29uc3QgZW52aXJvbm1lbnRDb25maWdzID0gYWxsRW52aXJvbm1lbnRDb25maWdzLmZpbHRlcigoY29uZmlnKSA9PlxuICAgICAgICBhdmFpbGFibGVFbnZpcm9ubWVudHMuaW5jbHVkZXMoY29uZmlnLm5hbWUpXG4gICAgICApO1xuXG5cbiAgICAgIC8vIFJlc29sdmUgYWxsIGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb25zIHVzaW5nIHJlc29sdmVVc2VyQ29uZmlnXG4gICAgICBjb25zdCBlbnZpcm9ubWVudHM6IFJlY29yZDxzdHJpbmcsIGltcG9ydChcInZpdGVcIikuRW52aXJvbm1lbnRPcHRpb25zPiA9XG4gICAgICAgIHt9O1xuXG4gICAgICAvLyBTb3J0IGVudmlyb25tZW50cyB0byBwcm9jZXNzIHN0YXRpYyBmaXJzdCAodG8gZXN0YWJsaXNoIGhhc2hlcylcbiAgICAgIC8vIFVzZSB0aGUgZW52aXJvbm1lbnQgY29uZmlncyBhcy1pc1xuICAgICAgY29uc3Qgc29ydGVkRW52Q29uZmlncyA9IGVudmlyb25tZW50Q29uZmlncztcblxuICAgICAgZm9yIChjb25zdCBlbnZDb25maWcgb2Ygc29ydGVkRW52Q29uZmlncykge1xuICAgICAgICBjb25zdCBjb25maWdSZXN1bHQgPSByZXNvbHZlVXNlckNvbmZpZyh7XG4gICAgICAgICAgY29uZGl0aW9uOiBlbnZDb25maWcuY29uZGl0aW9uLFxuICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICBjb25maWdFbnYsXG4gICAgICAgICAgdXNlck9wdGlvbnMsXG4gICAgICAgICAgYXV0b0Rpc2NvdmVyZWRGaWxlcyxcbiAgICAgICAgICBzc3I6IGVudkNvbmZpZy5zc3IsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjb25maWdSZXN1bHQudHlwZSA9PT0gXCJlcnJvclwiKSB7XG4gICAgICAgICAgY29uc3QgcGFuaWNFcnJvciA9IGhhbmRsZUVycm9yKHtcbiAgICAgICAgICAgIGVycm9yOiBjb25maWdSZXN1bHQuZXJyb3IsXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgICAgICBjb250ZXh0OiBgY3JlYXRlRW52aXJvbm1lbnRQbHVnaW4oJHtlbnZDb25maWcubmFtZX1Db25maWcpYCxcbiAgICAgICAgICAgIHBhbmljVGhyZXNob2xkOiB1c2VyT3B0aW9ucy5wYW5pY1RocmVzaG9sZCxcbiAgICAgICAgICAgIGNyaXRpY2FsOiB0cnVlLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmIChwYW5pY0Vycm9yICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IHBhbmljRXJyb3I7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYENhbm5vdCBjb250aW51ZSB3aXRob3V0ICR7ZW52Q29uZmlnLm5hbWV9IGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb25gXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1hcCB0aGUgcmVzb2x2ZWQgdXNlciBjb25maWcgdG8gRW52aXJvbm1lbnQgQVBJIGNvbXBhdGlibGUgb3B0aW9uc1xuICAgICAgICBjb25zdCB1c2VyQ29uZmlnID0gY29uZmlnUmVzdWx0LnVzZXJDb25maWc7XG5cbiAgICAgICAgLy8gTG9nIHRoZSByb2xsdXAgaW5wdXRzIGZvciB0aGlzIGVudmlyb25tZW50IChvbmx5IGluIHZlcmJvc2UgbW9kZSlcbiAgICAgICAgaWYgKHVzZXJPcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgICBsb2dnZXI/LmluZm8oXG4gICAgICAgICAgICBgJHtlbnZDb25maWcubmFtZX0gZW52aXJvbm1lbnQgcm9sbHVwIGlucHV0czogJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgdXNlckNvbmZpZy5idWlsZC5yb2xsdXBPcHRpb25zLmlucHV0LFxuICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAyXG4gICAgICAgICAgICApfWBcbiAgICAgICAgICApO1xuICAgICAgICAgIGxvZ2dlcj8uaW5mbyhcbiAgICAgICAgICAgIGAke1xuICAgICAgICAgICAgICBlbnZDb25maWcubmFtZVxuICAgICAgICAgICAgfSBlbnZpcm9ubWVudCBvdXRwdXQgcHJlc2VydmVNb2R1bGVzUm9vdDogJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgdXNlckNvbmZpZy5idWlsZC5yb2xsdXBPcHRpb25zLm91dHB1dCxcbiAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgMlxuICAgICAgICAgICAgKX1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERlYnVnOiBMb2cgd2hhdCByZXNvbHZlVXNlckNvbmZpZyBwcm92aWRlZFxuICAgICAgICBpZiAodXNlck9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgIGxvZ2dlcj8uaW5mbyhcbiAgICAgICAgICAgIGAke2VudkNvbmZpZy5uYW1lfSB1c2VyQ29uZmlnLnJlc29sdmU6ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICAgIHVzZXJDb25maWcucmVzb2x2ZSxcbiAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgMlxuICAgICAgICAgICAgKX1gXG4gICAgICAgICAgKTtcbiAgICAgICAgICBsb2dnZXI/LmluZm8oXG4gICAgICAgICAgICBgJHtcbiAgICAgICAgICAgICAgZW52Q29uZmlnLm5hbWVcbiAgICAgICAgICAgIH0gdXNlckNvbmZpZy5idWlsZC5yb2xsdXBPcHRpb25zLmV4dGVybmFsOiAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgICB1c2VyQ29uZmlnLmJ1aWxkLnJvbGx1cE9wdGlvbnMuZXh0ZXJuYWwsXG4gICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgIDJcbiAgICAgICAgICAgICl9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZGV0ZWN0IGlmIGxlZ2FjeSBidWlsZCBvciBub3RcbiAgICAgICAgY29uc3QgbGVnYWN5QnVpbGQgPSB1c2VyT3B0aW9ucy5zdHJhdGVneT8ubGVnYWN5QnVpbGRlciAmJiAhY29uZmlnPy5idWlsZGVyO1xuICAgICAgICBjb25zdCBpbXBsaWNpdFNzciA9XG4gICAgICAgICAgdXNlck9wdGlvbnMuc3RyYXRlZ3k/Lm1haW5UaHJlYWRDb25kaXRpb24gPT09IFwicmVhY3Qtc2VydmVyXCIgJiZcbiAgICAgICAgICB1c2VyT3B0aW9ucy5zdHJhdGVneT8ubGVnYWN5QnVpbGRlcjtcbiAgICAgICAgLy8gdGhpcyBmb2xsb3dzIHZpdGUncyBsb2dpYyBmb3IgbGVnYWN5IGJ1aWxkc1xuICAgICAgICBjb25zdCBpbXBsaWNpdFZpdGVCdWlsZE5hbWUgPVxuICAgICAgICAgIHVzZXJPcHRpb25zLnN0cmF0ZWd5Py5sZWdhY3lCdWlsZGVyICYmICFjb25maWcuYnVpbGQ/LnNzclxuICAgICAgICAgICAgPyBcImNsaWVudFwiXG4gICAgICAgICAgICA6IFwic3NyXCI7XG4gICAgICAgIGNvbnN0IGNvbnN1bWVyID0gbGVnYWN5QnVpbGRcbiAgICAgICAgICA/IGltcGxpY2l0Vml0ZUJ1aWxkTmFtZSA9PT0gXCJzc3JcIlxuICAgICAgICAgICAgPyBcInNlcnZlclwiXG4gICAgICAgICAgICA6IFwiY2xpZW50XCJcbiAgICAgICAgICA6IGVudkNvbmZpZy5uYW1lID09PSBcInNlcnZlclwiIHx8IGVudkNvbmZpZy5uYW1lID09PSBcInNzclwiXG4gICAgICAgICAgPyBcInNlcnZlclwiXG4gICAgICAgICAgOiBcImNsaWVudFwiO1xuXG4gICAgICAgIC8vIE5vdGU6IFBhdGggbm9ybWFsaXphdGlvbiBzaG91bGQgYmUgaGFuZGxlZCBpbiB0aGUgZmlsZSBuYW1pbmcgZnVuY3Rpb25zXG4gICAgICAgIGVudmlyb25tZW50c1tlbnZDb25maWcubmFtZV0gPSB7XG4gICAgICAgICAga2VlcFByb2Nlc3NFbnY6IGVudkNvbmZpZy5uYW1lID09PSBcInNlcnZlclwiID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgICAgIGRlZmluZTogdXNlckNvbmZpZy5kZWZpbmUsXG4gICAgICAgICAgY29uc3VtZXI6IGNvbnN1bWVyLFxuICAgICAgICAgIHJlc29sdmU6IHtcbiAgICAgICAgICAgIC4uLnVzZXJDb25maWcucmVzb2x2ZSxcbiAgICAgICAgICAgIC8vIElNUE9SVEFOVDogTWFwIGV4dGVybmFscyBmcm9tIHJlc29sdmVVc2VyQ29uZmlnIChyb2xsdXBPcHRpb25zLmV4dGVybmFsKSB0byBFbnZpcm9ubWVudCBBUEkgZm9ybWF0XG4gICAgICAgICAgICAvLyBJbiBFbnZpcm9ubWVudCBBUEksIGV4dGVybmFscyBnbyBpbiByZXNvbHZlLmV4dGVybmFsLCBub3QgYnVpbGQucm9sbHVwT3B0aW9ucy5leHRlcm5hbFxuICAgICAgICAgICAgLy8gRm9yIHN0YXRpYyBidWlsZHMgKGJyb3dzZXIvRVNNKTogZG9uJ3QgZXh0ZXJuYWxpemUgYW55dGhpbmcgLSBidW5kbGUgZXZlcnl0aGluZyB0byBhdm9pZCBfdmlydHVhbCBmaWxlc1xuICAgICAgICAgICAgLy8gRm9yIGNsaWVudC9zZXJ2ZXIgYnVpbGRzIChTU1IpOiBleHRlcm5hbGl6ZSBhcyBjb25maWd1cmVkXG4gICAgICAgICAgICBleHRlcm5hbDogKCgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgaXNTdGF0aWNCdWlsZCA9IGVudkNvbmZpZy5uYW1lID09PSBcInN0YXRpY1wiIHx8ICghZW52Q29uZmlnLnNzciAmJiBlbnZDb25maWcubmFtZSA9PT0gXCJjbGllbnRcIik7XG4gICAgICAgICAgICAgIGlmIChpc1N0YXRpY0J1aWxkKSB7XG4gICAgICAgICAgICAgICAgLy8gRm9yIHN0YXRpYyBidWlsZHMsIGRvbid0IGV4dGVybmFsaXplIGFueXRoaW5nIChidW5kbGUgZXZlcnl0aGluZylcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLy8gRm9yIFNTUiBidWlsZHMsIHVzZSBjb25maWd1cmVkIGV4dGVybmFsc1xuICAgICAgICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh1c2VyQ29uZmlnLmJ1aWxkLnJvbGx1cE9wdGlvbnMuZXh0ZXJuYWwpXG4gICAgICAgICAgICAgICAgPyB1c2VyQ29uZmlnLmJ1aWxkLnJvbGx1cE9wdGlvbnMuZXh0ZXJuYWwuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAoaXRlbSk6IGl0ZW0gaXMgc3RyaW5nID0+IHR5cGVvZiBpdGVtID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiBbXTtcbiAgICAgICAgICAgIH0pKCksXG4gICAgICAgICAgfSxcbiAgICAgICAgICBidWlsZDoge1xuICAgICAgICAgICAgLi4udXNlckNvbmZpZy5idWlsZCxcbiAgICAgICAgICAgIHNzcjpcbiAgICAgICAgICAgICAgZW52Q29uZmlnLm5hbWUgPT09IFwic2VydmVyXCJcbiAgICAgICAgICAgICAgICA/IHRydWVcbiAgICAgICAgICAgICAgICA6IGxlZ2FjeUJ1aWxkXG4gICAgICAgICAgICAgICAgPyBpbXBsaWNpdFNzclxuICAgICAgICAgICAgICAgIDogZW52Q29uZmlnLm5hbWUgPT09IFwic3NyXCIsXG4gICAgICAgICAgICB0YXJnZXQ6IHVzZXJDb25maWcuYnVpbGQudGFyZ2V0LFxuICAgICAgICAgICAgLy8gUmVtb3ZlIGV4dGVybmFscyBmcm9tIHJvbGx1cE9wdGlvbnMgc2luY2UgdGhleSBzaG91bGQgYmUgaW4gcmVzb2x2ZS5leHRlcm5hbCBmb3IgRW52aXJvbm1lbnQgQVBJXG4gICAgICAgICAgICByb2xsdXBPcHRpb25zOiB7XG4gICAgICAgICAgICAgIC4uLnVzZXJDb25maWcuYnVpbGQucm9sbHVwT3B0aW9ucyxcbiAgICAgICAgICAgICAgZXh0ZXJuYWw6IHVuZGVmaW5lZCwgLy8gUmVtb3ZlIGV4dGVybmFsIGZyb20gcm9sbHVwT3B0aW9ucywgaXQncyBub3cgaW4gcmVzb2x2ZS5leHRlcm5hbFxuICAgICAgICAgICAgICAvLyBTZXQgcHJlc2VydmVNb2R1bGVzIGluIHRoZSBvdXRwdXQgY29uZmlndXJhdGlvbiwgbm90IGF0IHRoZSB0b3AgbGV2ZWxcbiAgICAgICAgICAgICAgb3V0cHV0OiAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dHB1dCA9IHVzZXJDb25maWcuYnVpbGQucm9sbHVwT3B0aW9ucy5vdXRwdXQ7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgLy8gSGFuZGxlIGFycmF5IG91dHB1dCBjb25maWd1cmF0aW9uIC0gZXh0cmFjdCB0aGUgcGx1Z2luIG91dHB1dCB0aGF0IGNvbnRhaW5zIHByZXNlcnZlTW9kdWxlc1Jvb3RcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvdXRwdXQpKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBwbHVnaW5PdXRwdXQgPSBvdXRwdXQuZmluZChvID0+IG8gJiYgdHlwZW9mIG8gPT09ICdvYmplY3QnICYmICdwcmVzZXJ2ZU1vZHVsZXNSb290JyBpbiBvKTtcbiAgICAgICAgICAgICAgICAgIGlmIChwbHVnaW5PdXRwdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBsdWdpbk91dHB1dDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIC8vIElmIG5vIHBsdWdpbk91dHB1dCBmb3VuZCwgdXNlIHRoZSBmaXJzdCBvdXRwdXQgY29uZmlndXJhdGlvblxuICAgICAgICAgICAgICAgICAgaWYgKG91dHB1dC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvdXRwdXRbMF07XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIC8vIEVuc3VyZSBwcmVzZXJ2ZU1vZHVsZXNSb290IGlzIGFsd2F5cyBwcmVzZW50IGluIHRoZSBvdXRwdXQgY29uZmlndXJhdGlvblxuICAgICAgICAgICAgICAgIGlmIChvdXRwdXQgJiYgdHlwZW9mIG91dHB1dCA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkob3V0cHV0KSkge1xuICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIHByb3BlcnR5IGV4aXN0cyBpbiB0aGUgb2JqZWN0IChub3QganVzdCBjaGVja2luZyB0aGUgdmFsdWUpXG4gICAgICAgICAgICAgICAgICBjb25zdCBoYXNQcmVzZXJ2ZU1vZHVsZXNSb290ID0gJ3ByZXNlcnZlTW9kdWxlc1Jvb3QnIGluIG91dHB1dDtcbiAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgaWYgKGhhc1ByZXNlcnZlTW9kdWxlc1Jvb3QpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gUHJvcGVydHkgZXhpc3RzLCBwcmVzZXJ2ZSB0aGUgcHJlc2VydmVNb2R1bGVzIHZhbHVlIGZyb20gdGhlIG91dHB1dCAoZG9uJ3Qgb3ZlcnJpZGUgaXQpXG4gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgY3JpdGljYWwgZm9yIHN0YXRpYyBidWlsZHMgd2hlcmUgcHJlc2VydmVNb2R1bGVzOiBmYWxzZSBpcyBzZXRcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG91dHB1dDsgLy8gUmV0dXJuIGFzLWlzLCBwcmVzZXJ2ZU1vZHVsZXMgaXMgYWxyZWFkeSBzZXQgY29ycmVjdGx5XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBQcm9wZXJ0eSBtaXNzaW5nLCBhZGQgaXQgYmFzZWQgb24gdXNlciBvcHRpb25zXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXNlcnZlTW9kdWxlc1Jvb3RTdHJpbmcgPSB1c2VyT3B0aW9ucy5idWlsZC5wcmVzZXJ2ZU1vZHVsZXNSb290ID09PSBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgID8gdXNlck9wdGlvbnMubW9kdWxlQmFzZVxuICAgICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyAuLi5vdXRwdXQsIHByZXNlcnZlTW9kdWxlc1Jvb3Q6IHByZXNlcnZlTW9kdWxlc1Jvb3RTdHJpbmcgfTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICAgICAgICAgICAgfSkoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgLy8gUmV0dXJuIHRoZSBjb25maWd1cmF0aW9uIHdpdGggYWxsIGVudmlyb25tZW50c1xuICAgICAgLy8gQnVpbGQgb3JkZXI6IGNsaWVudCDihpIgc3NyIOKGkiBzZXJ2ZXIg4oaSIHN0YXRpYyBnZW5lcmF0aW9uIChzdGVwIDQpXG4gICAgICAvLyBTZXJ2ZXIgYnVpbGQgcnVucyBMQVNUIHNvIGRpc3QvY2xpZW50IGV4aXN0cyB3aGVuIEhUTUwgcmVuZGVyaW5nIHJlZmVyZW5jZXMgY2xpZW50IGNvbXBvbmVudHNcbiAgICAgIC8vIFN0YXRpYyBnZW5lcmF0aW9uIGlzIGRlZmVycmVkIHRvIHJ1biBhZnRlciBBTEwgZW52aXJvbm1lbnRzIGNvbXBsZXRlIChuZWVkcyBzZXJ2ZXIgbWFuaWZlc3QpXG4gICAgICByZXR1cm4ge1xuICAgICAgICByb290OiB1c2VyT3B0aW9ucy5wcm9qZWN0Um9vdCxcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICBlbnZpcm9ubWVudHMsXG4gICAgICAgIGJ1aWxkZXI6IHtcbiAgICAgICAgICBhc3luYyBidWlsZEFwcChidWlsZGVyOiBWaXRlQnVpbGRlcikge1xuICAgICAgICAgICAgLy8gQnVpbGQgYWxsIGVudmlyb25tZW50cyBpbiBkZWZpbml0aW9uIG9yZGVyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGVudmlyb25tZW50IG9mIE9iamVjdC52YWx1ZXMoYnVpbGRlci5lbnZpcm9ubWVudHMpKSB7XG4gICAgICAgICAgICAgIGF3YWl0IGJ1aWxkZXIuYnVpbGQoZW52aXJvbm1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gU3RlcCA0OiBSdW4gZGVmZXJyZWQgc3RhdGljIGdlbmVyYXRpb24gbm93IHRoYXQgYWxsIG1hbmlmZXN0cyBhcmUgYXZhaWxhYmxlXG4gICAgICAgICAgICBhd2FpdCBydW5EZWZlcnJlZFN0YXRpY0dlbmVyYXRpb24oKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9LFxuICB9O1xuXG4gIHJldHVybiBlbnZpcm9ubWVudFBsdWdpbjtcbn07XG4iXSwibmFtZXMiOlsiY29uZmlnIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUErQmEsTUFBQSx1QkFBQSxHQUF3QyxDQUFDLE9BQW9CLEtBQUE7QUFDeEUsRUFBQSxNQUFNLGlCQUE0QixHQUFBO0FBQUEsSUFDaEMsSUFBTSxFQUFBLHVDQUFBO0FBQUEsSUFDTixPQUFTLEVBQUEsS0FBQTtBQUFBLElBRVQsTUFBTSxNQUFPLENBQUEsTUFBQSxFQUFvQixTQUFXLEVBQUE7QUFFMUMsTUFBTSxNQUFBLHFCQUFBLEdBQXdCLGVBQWUsT0FBTyxDQUFBO0FBQ3BELE1BQUksSUFBQSxxQkFBQSxDQUFzQixTQUFTLE9BQVMsRUFBQTtBQUMxQyxRQUFBLE1BQU0scUJBQXNCLENBQUEsS0FBQTtBQUFBO0FBRTlCLE1BQUEsTUFBTSxjQUFjLHFCQUFzQixDQUFBLFdBQUE7QUFHMUMsTUFBSSxJQUFBLENBQUMsT0FBTyxPQUFTLEVBQUE7QUFDbkIsUUFBQSxNQUFBLENBQU8sVUFBVSxFQUFDO0FBQUE7QUFVcEIsTUFBTSxNQUFBLE1BQUEsR0FBUyxNQUFPLENBQUEsWUFBQSxJQUFnQixZQUFhLEVBQUE7QUFDbkQsTUFBSSxJQUFBLE9BQU8sV0FBWSxDQUFBLFFBQUEsS0FBYSxVQUFZLEVBQUE7QUFDOUMsUUFBQSxXQUFBLENBQVksUUFBVyxHQUFBLHFCQUFBO0FBQUEsVUFDckIsV0FBQTtBQUFBLFVBQ0EsU0FBQTtBQUFBLFVBQ0EsWUFBWSxNQUFRLEVBQUE7QUFBQSxTQUN0QjtBQUFBO0FBR0YsTUFB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
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export { toError } from "./toError.js";
|
|
2
2
|
export { logError } from "./logError.js";
|
|
3
|
-
export { enhanceError, createContextualError } from "./enhanceError.js";
|
|
4
3
|
export { handleError } from "./handleError.js";
|
|
5
4
|
export { shouldPanic, PANIC_SYMBOL, isPanic } from "./shouldPanic.js";
|
|
6
|
-
export {
|
|
5
|
+
export { shouldCausePanic, handlePanicThreshold, isPanicError } from "./panicThresholdHandler.js";
|
|
7
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../plugin/error/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../plugin/error/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -5,8 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export { toError } from './toError.js';
|
|
7
7
|
export { logError } from './logError.js';
|
|
8
|
-
export { createContextualError, enhanceError } from './enhanceError.js';
|
|
9
8
|
export { handleError } from './handleError.js';
|
|
10
9
|
export { PANIC_SYMBOL, isPanic, shouldPanic } from './shouldPanic.js';
|
|
11
|
-
export {
|
|
12
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
10
|
+
export { handlePanicThreshold, isPanicError, shouldCausePanic } from './panicThresholdHandler.js';
|
|
11
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7In0=
|
|
@@ -3,11 +3,22 @@
|
|
|
3
3
|
* Copyright (c) Nico Brinkkemper
|
|
4
4
|
* MIT License
|
|
5
5
|
*/
|
|
6
|
-
import { shouldPanic } from './shouldPanic.js';
|
|
6
|
+
import { isPanic, shouldPanic } from './shouldPanic.js';
|
|
7
7
|
|
|
8
8
|
function shouldCausePanic(error, options) {
|
|
9
9
|
return shouldPanic(error, options.panicThreshold, options.critical);
|
|
10
10
|
}
|
|
11
|
+
function handlePanicThreshold(error, options) {
|
|
12
|
+
if (shouldCausePanic(error, options)) {
|
|
13
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
14
|
+
err[Symbol.for("vite-plugin-react-server.panic")] = true;
|
|
15
|
+
return err;
|
|
16
|
+
}
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
function isPanicError(error) {
|
|
20
|
+
return isPanic(error);
|
|
21
|
+
}
|
|
11
22
|
|
|
12
|
-
export { shouldCausePanic };
|
|
13
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuaWNUaHJlc2hvbGRIYW5kbGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9wbHVnaW4vZXJyb3IvcGFuaWNUaHJlc2hvbGRIYW5kbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2VudHJhbGl6ZWQgcGFuaWMgdGhyZXNob2xkIGhhbmRsaW5nIGxvZ2ljXG4gKiBcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgc2luZ2xlIHBsYWNlIHRvIGhhbmRsZSBwYW5pYyB0aHJlc2hvbGQgZGVjaXNpb25zXG4gKiBpbnN0ZWFkIG9mIHNjYXR0ZXJpbmcgdGhlIGxvZ2ljIGFjcm9zcyBtdWx0aXBsZSBmaWxlcy5cbiAqL1xuXG5pbXBvcnQgeyBzaG91bGRQYW5pYywgaXNQYW5pYyB9IGZyb20gXCIuL3Nob3VsZFBhbmljLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFBhbmljVGhyZXNob2xkIH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFuaWNUaHJlc2hvbGRPcHRpb25zIHtcbiAgcGFuaWNUaHJlc2hvbGQ6IFBhbmljVGhyZXNob2xkO1xuICBjcml0aWNhbD86IGJvb2xlYW47XG4gIGxvZ2dlcj86IGFueTtcbiAgY29udGV4dD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIGFuIGVycm9yIHNob3VsZCBjYXVzZSBhIHBhbmljIGJhc2VkIG9uIHBhbmljIHRocmVzaG9sZCBzZXR0aW5nc1xuICovXG5leHBvcnQgZnVuY3Rpb24gc2hvdWxkQ2F1c2VQYW5pYyhcbiAgZXJyb3I6IHVua25vd24sXG4gIG9wdGlvbnM6IFBhbmljVGhyZXNob2xkT3B0aW9uc1xuKTogYm9vbGVhbiB7XG4gIHJldHVybiBzaG91bGRQYW5pYyhlcnJvciwgb3B0aW9ucy5wYW5pY1RocmVzaG9sZCwgb3B0aW9ucy5jcml0aWNhbCk7XG59XG5cbi8qKlxuICogSGFuZGxlcyBhbiBlcnJvciBiYXNlZCBvbiBwYW5pYyB0aHJlc2hvbGQgc2V0dGluZ3NcbiAqIFJldHVybnMgdGhlIGVycm9yIGlmIGl0IHNob3VsZCBjYXVzZSBhIHBhbmljLCBudWxsIG90aGVyd2lzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlUGFuaWNUaHJlc2hvbGQoXG4gIGVycm9yOiB1bmtub3duLFxuICBvcHRpb25zOiBQYW5pY1RocmVzaG9sZE9wdGlvbnNcbik6IEVycm9yIHwgbnVsbCB7XG4gIGlmIChzaG91bGRDYXVzZVBhbmljKGVycm9yLCBvcHRpb25zKSkge1xuICAgIC8vIE1hcmsgZXJyb3IgZm9yIHBhbmljIGFuZCByZXR1cm4gaXQgdG8gYmUgdGhyb3duXG4gICAgY29uc3QgZXJyID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/
|
|
23
|
+
export { handlePanicThreshold, isPanicError, shouldCausePanic };
|
|
24
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuaWNUaHJlc2hvbGRIYW5kbGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9wbHVnaW4vZXJyb3IvcGFuaWNUaHJlc2hvbGRIYW5kbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2VudHJhbGl6ZWQgcGFuaWMgdGhyZXNob2xkIGhhbmRsaW5nIGxvZ2ljXG4gKiBcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgc2luZ2xlIHBsYWNlIHRvIGhhbmRsZSBwYW5pYyB0aHJlc2hvbGQgZGVjaXNpb25zXG4gKiBpbnN0ZWFkIG9mIHNjYXR0ZXJpbmcgdGhlIGxvZ2ljIGFjcm9zcyBtdWx0aXBsZSBmaWxlcy5cbiAqL1xuXG5pbXBvcnQgeyBzaG91bGRQYW5pYywgaXNQYW5pYyB9IGZyb20gXCIuL3Nob3VsZFBhbmljLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFBhbmljVGhyZXNob2xkIH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFuaWNUaHJlc2hvbGRPcHRpb25zIHtcbiAgcGFuaWNUaHJlc2hvbGQ6IFBhbmljVGhyZXNob2xkO1xuICBjcml0aWNhbD86IGJvb2xlYW47XG4gIGxvZ2dlcj86IGFueTtcbiAgY29udGV4dD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIGFuIGVycm9yIHNob3VsZCBjYXVzZSBhIHBhbmljIGJhc2VkIG9uIHBhbmljIHRocmVzaG9sZCBzZXR0aW5nc1xuICovXG5leHBvcnQgZnVuY3Rpb24gc2hvdWxkQ2F1c2VQYW5pYyhcbiAgZXJyb3I6IHVua25vd24sXG4gIG9wdGlvbnM6IFBhbmljVGhyZXNob2xkT3B0aW9uc1xuKTogYm9vbGVhbiB7XG4gIHJldHVybiBzaG91bGRQYW5pYyhlcnJvciwgb3B0aW9ucy5wYW5pY1RocmVzaG9sZCwgb3B0aW9ucy5jcml0aWNhbCk7XG59XG5cbi8qKlxuICogSGFuZGxlcyBhbiBlcnJvciBiYXNlZCBvbiBwYW5pYyB0aHJlc2hvbGQgc2V0dGluZ3NcbiAqIFJldHVybnMgdGhlIGVycm9yIGlmIGl0IHNob3VsZCBjYXVzZSBhIHBhbmljLCBudWxsIG90aGVyd2lzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlUGFuaWNUaHJlc2hvbGQoXG4gIGVycm9yOiB1bmtub3duLFxuICBvcHRpb25zOiBQYW5pY1RocmVzaG9sZE9wdGlvbnNcbik6IEVycm9yIHwgbnVsbCB7XG4gIGlmIChzaG91bGRDYXVzZVBhbmljKGVycm9yLCBvcHRpb25zKSkge1xuICAgIC8vIE1hcmsgZXJyb3IgZm9yIHBhbmljIGFuZCByZXR1cm4gaXQgdG8gYmUgdGhyb3duXG4gICAgY29uc3QgZXJyID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yIDogbmV3IEVycm9yKFN0cmluZyhlcnJvcikpO1xuICAgIChlcnIgYXMgYW55KVtTeW1ib2wuZm9yKCd2aXRlLXBsdWdpbi1yZWFjdC1zZXJ2ZXIucGFuaWMnKV0gPSB0cnVlO1xuICAgIHJldHVybiBlcnI7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGFuIGVycm9yIGlzIGFscmVhZHkgbWFya2VkIGFzIGEgcGFuaWMgZXJyb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUGFuaWNFcnJvcihlcnJvcjogdW5rbm93bik6IGJvb2xlYW4ge1xuICByZXR1cm4gaXNQYW5pYyhlcnJvcik7XG59XG5cblxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFvQk8sU0FBUyxnQkFBQSxDQUNkLE9BQ0EsT0FDUyxFQUFBO0FBQ1QsRUFBQSxPQUFPLFdBQVksQ0FBQSxLQUFBLEVBQU8sT0FBUSxDQUFBLGNBQUEsRUFBZ0IsUUFBUSxRQUFRLENBQUE7QUFDcEU7QUFNTyxTQUFTLG9CQUFBLENBQ2QsT0FDQSxPQUNjLEVBQUE7QUFDZCxFQUFJLElBQUEsZ0JBQUEsQ0FBaUIsS0FBTyxFQUFBLE9BQU8sQ0FBRyxFQUFBO0FBRXBDLElBQU0sTUFBQSxHQUFBLEdBQU0saUJBQWlCLEtBQVEsR0FBQSxLQUFBLEdBQVEsSUFBSSxLQUFNLENBQUEsTUFBQSxDQUFPLEtBQUssQ0FBQyxDQUFBO0FBQ3BFLElBQUMsR0FBWSxDQUFBLE1BQUEsQ0FBTyxHQUFJLENBQUEsZ0NBQWdDLENBQUMsQ0FBSSxHQUFBLElBQUE7QUFDN0QsSUFBTyxPQUFBLEdBQUE7QUFBQTtBQUVULEVBQU8sT0FBQSxJQUFBO0FBQ1Q7QUFLTyxTQUFTLGFBQWEsS0FBeUIsRUFBQTtBQUNwRCxFQUFBLE9BQU8sUUFBUSxLQUFLLENBQUE7QUFDdEI7Ozs7In0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupGlobalErrorHandler.d.ts","sourceRoot":"","sources":["../../../plugin/error/setupGlobalErrorHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"setupGlobalErrorHandler.d.ts","sourceRoot":"","sources":["../../../plugin/error/setupGlobalErrorHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,YAAY,CAAC;AAMpB,eAAO,MAAM,uBAAuB,EAAE,yBA0CnC,CAAC;AAEJ,eAAO,MAAM,yBAAyB,EAAE,2BAgBrC,CAAC"}
|