vite 5.0.0-beta.17 → 5.0.0-beta.18
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/dist/client/client.mjs +1 -1
- package/dist/client/client.mjs.map +1 -1
- package/dist/node/chunks/{dep-pKKs8JVV.js → dep-faMUqRRE.js} +1 -1
- package/dist/node/chunks/{dep-3p9Yqpeo.js → dep-pW7U7Lse.js} +518 -423
- package/dist/node/chunks/{dep-zjm7Opl5.js → dep-qfw-A_Gb.js} +1 -1
- package/dist/node/cli.js +7 -7
- package/dist/node/constants.js +1 -2
- package/dist/node/index.d.ts +4 -5
- package/dist/node/index.js +2 -2
- package/index.cjs +0 -1
- package/package.json +2 -2
|
@@ -20,11 +20,11 @@ import require$$1$1 from 'http';
|
|
|
20
20
|
import require$$0$7 from 'stream';
|
|
21
21
|
import require$$2 from 'os';
|
|
22
22
|
import require$$2$1 from 'child_process';
|
|
23
|
-
import { CLIENT_ENTRY, VALID_ID_PREFIX, NULL_BYTE_PLACEHOLDER, OPTIMIZABLE_ENTRY_RE, FS_PREFIX, wildcardHosts, loopbackHosts, CLIENT_PUBLIC_PATH, ENV_PUBLIC_PATH, ENV_ENTRY, DEP_VERSION_RE, SPECIAL_QUERY_RE, DEFAULT_MAIN_FIELDS, DEFAULT_EXTENSIONS, CSS_LANGS_RE, ESBUILD_MODULES_TARGET, KNOWN_ASSET_TYPES, VITE_PACKAGE_DIR, ASYNC_DISPOSE, DEFAULT_DEV_PORT, CLIENT_DIR, JS_TYPES_RE, VERSION as VERSION$1, DEFAULT_PREVIEW_PORT, DEFAULT_ASSETS_RE, DEFAULT_CONFIG_FILES } from '../constants.js';
|
|
24
23
|
import os$4 from 'node:os';
|
|
25
24
|
import { exec } from 'node:child_process';
|
|
26
25
|
import { createHash as createHash$2 } from 'node:crypto';
|
|
27
26
|
import { promises } from 'node:dns';
|
|
27
|
+
import { CLIENT_ENTRY, VALID_ID_PREFIX, NULL_BYTE_PLACEHOLDER, OPTIMIZABLE_ENTRY_RE, FS_PREFIX, wildcardHosts, loopbackHosts, CLIENT_PUBLIC_PATH, ENV_PUBLIC_PATH, ENV_ENTRY, DEP_VERSION_RE, SPECIAL_QUERY_RE, DEFAULT_MAIN_FIELDS, DEFAULT_EXTENSIONS, CSS_LANGS_RE, ESBUILD_MODULES_TARGET, KNOWN_ASSET_TYPES, VITE_PACKAGE_DIR, DEFAULT_DEV_PORT, CLIENT_DIR, JS_TYPES_RE, VERSION as VERSION$1, DEFAULT_PREVIEW_PORT, DEFAULT_ASSETS_RE, DEFAULT_CONFIG_FILES } from '../constants.js';
|
|
28
28
|
import require$$0$a from 'crypto';
|
|
29
29
|
import { Buffer as Buffer$1 } from 'node:buffer';
|
|
30
30
|
import require$$0$8, { createRequire as createRequire$2 } from 'module';
|
|
@@ -12712,9 +12712,6 @@ const requireResolveFromRootWithFallback = (root, id) => {
|
|
|
12712
12712
|
function emptyCssComments(raw) {
|
|
12713
12713
|
return raw.replace(multilineCommentsRE$1, (s) => ' '.repeat(s.length));
|
|
12714
12714
|
}
|
|
12715
|
-
function removeComments(raw) {
|
|
12716
|
-
return raw.replace(multilineCommentsRE$1, '').replace(singlelineCommentsRE$1, '');
|
|
12717
|
-
}
|
|
12718
12715
|
function backwardCompatibleWorkerPlugins(plugins) {
|
|
12719
12716
|
if (Array.isArray(plugins)) {
|
|
12720
12717
|
return plugins;
|
|
@@ -13091,6 +13088,7 @@ function buildReporterPlugin(config) {
|
|
|
13091
13088
|
let chunkCount = 0;
|
|
13092
13089
|
let compressedCount = 0;
|
|
13093
13090
|
let startTime = Date.now();
|
|
13091
|
+
let buildFailed = false;
|
|
13094
13092
|
async function getCompressedSize(code) {
|
|
13095
13093
|
if (config.build.ssr || !config.build.reportCompressedSize) {
|
|
13096
13094
|
return null;
|
|
@@ -13139,10 +13137,11 @@ function buildReporterPlugin(config) {
|
|
|
13139
13137
|
buildStart() {
|
|
13140
13138
|
transformedCount = 0;
|
|
13141
13139
|
},
|
|
13142
|
-
buildEnd() {
|
|
13140
|
+
buildEnd(error) {
|
|
13141
|
+
buildFailed = !!error;
|
|
13143
13142
|
if (shouldLogInfo) {
|
|
13144
13143
|
if (tty) {
|
|
13145
|
-
clearLine();
|
|
13144
|
+
clearLine$1();
|
|
13146
13145
|
}
|
|
13147
13146
|
config.logger.info(`${colors$1.green(`✓`)} ${transformedCount} modules transformed.`);
|
|
13148
13147
|
}
|
|
@@ -13187,7 +13186,7 @@ function buildReporterPlugin(config) {
|
|
|
13187
13186
|
},
|
|
13188
13187
|
generateBundle() {
|
|
13189
13188
|
if (shouldLogInfo && tty)
|
|
13190
|
-
clearLine();
|
|
13189
|
+
clearLine$1();
|
|
13191
13190
|
},
|
|
13192
13191
|
async writeBundle({ dir: outDir }, output) {
|
|
13193
13192
|
let hasLargeChunks = false;
|
|
@@ -13219,7 +13218,7 @@ function buildReporterPlugin(config) {
|
|
|
13219
13218
|
}
|
|
13220
13219
|
}))).filter(isDefined);
|
|
13221
13220
|
if (tty)
|
|
13222
|
-
clearLine();
|
|
13221
|
+
clearLine$1();
|
|
13223
13222
|
let longest = 0;
|
|
13224
13223
|
let biggestSize = 0;
|
|
13225
13224
|
let biggestMap = 0;
|
|
@@ -13287,14 +13286,14 @@ function buildReporterPlugin(config) {
|
|
|
13287
13286
|
}
|
|
13288
13287
|
},
|
|
13289
13288
|
closeBundle() {
|
|
13290
|
-
if (shouldLogInfo && !config.build.watch) {
|
|
13289
|
+
if (shouldLogInfo && !config.build.watch && !buildFailed) {
|
|
13291
13290
|
config.logger.info(`${colors$1.green(`✓ built in ${displayTime(Date.now() - startTime)}`)}`);
|
|
13292
13291
|
}
|
|
13293
13292
|
},
|
|
13294
13293
|
};
|
|
13295
13294
|
}
|
|
13296
13295
|
function writeLine(output) {
|
|
13297
|
-
clearLine();
|
|
13296
|
+
clearLine$1();
|
|
13298
13297
|
if (output.length < process.stdout.columns) {
|
|
13299
13298
|
process.stdout.write(output);
|
|
13300
13299
|
}
|
|
@@ -13302,7 +13301,7 @@ function writeLine(output) {
|
|
|
13302
13301
|
process.stdout.write(output.substring(0, process.stdout.columns - 1));
|
|
13303
13302
|
}
|
|
13304
13303
|
}
|
|
13305
|
-
function clearLine() {
|
|
13304
|
+
function clearLine$1() {
|
|
13306
13305
|
process.stdout.clearLine(0);
|
|
13307
13306
|
process.stdout.cursorTo(0);
|
|
13308
13307
|
}
|
|
@@ -15745,18 +15744,7 @@ function manifestPlugin(config) {
|
|
|
15745
15744
|
},
|
|
15746
15745
|
generateBundle({ format }, bundle) {
|
|
15747
15746
|
function getChunkName(chunk) {
|
|
15748
|
-
|
|
15749
|
-
let name = normalizePath$3(path$o.relative(config.root, chunk.facadeModuleId));
|
|
15750
|
-
if (format === 'system' && !chunk.name.includes('-legacy')) {
|
|
15751
|
-
const ext = path$o.extname(name);
|
|
15752
|
-
const endPos = ext.length !== 0 ? -ext.length : undefined;
|
|
15753
|
-
name = name.slice(0, endPos) + `-legacy` + ext;
|
|
15754
|
-
}
|
|
15755
|
-
return name.replace(/\0/g, '');
|
|
15756
|
-
}
|
|
15757
|
-
else {
|
|
15758
|
-
return `_` + path$o.basename(chunk.fileName);
|
|
15759
|
-
}
|
|
15747
|
+
return getChunkOriginalFileName(chunk, config.root, format);
|
|
15760
15748
|
}
|
|
15761
15749
|
function getInternalImports(imports) {
|
|
15762
15750
|
const filteredImports = [];
|
|
@@ -15827,6 +15815,10 @@ function manifestPlugin(config) {
|
|
|
15827
15815
|
const assetMeta = fileNameToAssetMeta.get(chunk.fileName);
|
|
15828
15816
|
const src = assetMeta?.originalName ?? chunk.name;
|
|
15829
15817
|
const asset = createAsset(chunk, src, assetMeta?.isEntry);
|
|
15818
|
+
// If JS chunk and asset chunk are both generated from the same source file,
|
|
15819
|
+
// prioritize JS chunk as it contains more information
|
|
15820
|
+
if (manifest[src]?.file.endsWith('.js'))
|
|
15821
|
+
continue;
|
|
15830
15822
|
manifest[src] = asset;
|
|
15831
15823
|
fileNameToAsset.set(chunk.fileName, asset);
|
|
15832
15824
|
}
|
|
@@ -15856,6 +15848,20 @@ function manifestPlugin(config) {
|
|
|
15856
15848
|
},
|
|
15857
15849
|
};
|
|
15858
15850
|
}
|
|
15851
|
+
function getChunkOriginalFileName(chunk, root, format) {
|
|
15852
|
+
if (chunk.facadeModuleId) {
|
|
15853
|
+
let name = normalizePath$3(path$o.relative(root, chunk.facadeModuleId));
|
|
15854
|
+
if (format === 'system' && !chunk.name.includes('-legacy')) {
|
|
15855
|
+
const ext = path$o.extname(name);
|
|
15856
|
+
const endPos = ext.length !== 0 ? -ext.length : undefined;
|
|
15857
|
+
name = name.slice(0, endPos) + `-legacy` + ext;
|
|
15858
|
+
}
|
|
15859
|
+
return name.replace(/\0/g, '');
|
|
15860
|
+
}
|
|
15861
|
+
else {
|
|
15862
|
+
return `_` + path$o.basename(chunk.fileName);
|
|
15863
|
+
}
|
|
15864
|
+
}
|
|
15859
15865
|
|
|
15860
15866
|
// This is based on @rollup/plugin-data-uri
|
|
15861
15867
|
// MIT Licensed https://github.com/rollup/plugins/blob/master/LICENSE
|
|
@@ -15905,8 +15911,8 @@ function dataURIPlugin() {
|
|
|
15905
15911
|
};
|
|
15906
15912
|
}
|
|
15907
15913
|
|
|
15908
|
-
/* es-module-lexer 1.
|
|
15909
|
-
const A=1===new Uint8Array(new Uint16Array([1]).buffer)[0];function parse$e(E,g="@"){if(!C)return init.then((()=>parse$e(E)));const I=E.length+1,o=(C.__heap_base.value||C.__heap_base)+4*I-C.memory.buffer.byteLength;o>0&&C.memory.grow(Math.ceil(o/65536));const K=C.sa(I-1);if((A?B:Q)(E,new Uint16Array(C.memory.buffer,K,I)),!C.parse())throw Object.assign(new Error(`Parse error ${g}:${E.slice(0,C.e()).split("\n").length}:${C.e()-E.lastIndexOf("\n",C.e()-1)}`),{idx:C.e()});const D=[],k=[];for(;C.ri();){const A=C.is(),Q=C.ie(),B=C.ai(),g=C.id(),I=C.ss(),o=C.se();let K;C.ip()&&(K=J(E.slice(-1===g?A-1:A,-1===g?Q+1:Q))),D.push({n:K,s:A,e:Q,ss:I,se:o,d:g,a:B});}for(;C.re();){const A=C.es(),Q=C.ee(),B=C.els(),g=C.ele(),I=E.slice(A,Q),o=I[0],K=B<0?void 0:E.slice(B,g),D=K?K[0]:"";k.push({s:A,e:Q,ls:B,le:g,n:'"'===o||"'"===o?J(I):I,ln:'"'===D||"'"===D?J(K):K});}function J(A){try{return (0, eval)(A)}catch(A){}}return [D,k,!!C.f()]}function Q(A,Q){const B=A.length;let C=0;for(;C<B;){const B=A.charCodeAt(C);Q[C++]=(255&B)<<8|B>>>8;}}function B(A,Q){const B=A.length;let C=0;for(;C<B;)Q[C]=A.charCodeAt(C++);}let C;const init=WebAssembly.compile((E="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DQFBACgCoAohAQwCC0EAKAKgCiIBQQJqQbAIQQoQLQ0BQQYhAAwCC0EAKAKgCiIBLwECQekARw0AIAEvAQRB9ABHDQBBBCEAIAEvAQZB6ABGDQELQQAgAUF+ajYCoAoPC0EAIAEgAEEBdGo2AqAKAkBBARAnQfsARg0AQQAgATYCoAoPC0EAKAKgCiICIQADQEEAIABBAmo2AqAKAkACQAJAQQEQJyIAQSJGDQAgAEEnRw0BQScQGEEAQQAoAqAKQQJqNgKgCkEBECchAAwCC0EiEBhBAEEAKAKgCkECajYCoApBARAnIQAMAQsgABAqIQALAkAgAEE6Rg0AQQAgATYCoAoPC0EAQQAoAqAKQQJqNgKgCgJAQQEQJyIAQSJGDQAgAEEnRg0AQQAgATYCoAoPCyAAEBhBAEEAKAKgCkECajYCoAoCQAJAQQEQJyIAQSxGDQAgAEH9AEYNAUEAIAE2AqAKDwtBAEEAKAKgCkECajYCoApBARAnQf0ARg0AQQAoAqAKIQAMAQsLQQAoAuQJIgEgAjYCECABQQAoAqAKQQJqNgIMC20BAn8CQAJAA0ACQCAAQf//A3EiAUF3aiICQRdLDQBBASACdEGfgIAEcQ0CCyABQaABRg0BIAAhAiABECYNAkEAIQJBAEEAKAKgCiIAQQJqNgKgCiAALwECIgANAAwCCwsgACECCyACQf//A3ELqwEBBH8CQAJAQQAoAqAKIgIvAQAiA0HhAEYNACABIQQgACEFDAELQQAgAkEEajYCoApBARAnIQJBACgCoAohBQJAAkAgAkEiRg0AIAJBJ0YNACACECoaQQAoAqAKIQQMAQsgAhAYQQBBACgCoApBAmoiBDYCoAoLQQEQJyEDQQAoAqAKIQILAkAgAiAFRg0AIAUgBEEAIAAgACABRiICG0EAIAEgAhsQAgsgAwtyAQR/QQAoAqAKIQBBACgCpAohAQJAAkADQCAAQQJqIQIgACABTw0BAkACQCACLwEAIgNBpH9qDgIBBAALIAIhACADQXZqDgQCAQECAQsgAEEEaiEADAALC0EAIAI2AqAKECJBAA8LQQAgAjYCoApB3QALSQEDf0EAIQMCQCACRQ0AAkADQCAALQAAIgQgAS0AACIFRw0BIAFBAWohASAAQQFqIQAgAkF/aiICDQAMAgsLIAQgBWshAwsgAwsL4gECAEGACAvEAQAAeABwAG8AcgB0AG0AcABvAHIAdABlAHQAYQByAG8AbQB1AG4AYwB0AGkAbwBuAHMAcwBlAHIAdAB2AG8AeQBpAGUAZABlAGwAZQBjAG8AbgB0AGkAbgBpAG4AcwB0AGEAbgB0AHkAYgByAGUAYQByAGUAdAB1AHIAZABlAGIAdQBnAGcAZQBhAHcAYQBpAHQAaAByAHcAaABpAGwAZQBmAG8AcgBpAGYAYwBhAHQAYwBmAGkAbgBhAGwAbABlAGwAcwAAQcQJCxABAAAAAgAAAAAEAAAwOQAA","undefined"!=typeof Buffer?Buffer.from(E,"base64"):Uint8Array.from(atob(E),(A=>A.charCodeAt(0))))).then(WebAssembly.instantiate).then((({exports:A})=>{C=A;}));var E;
|
|
15914
|
+
/* es-module-lexer 1.4.0 */
|
|
15915
|
+
const A=1===new Uint8Array(new Uint16Array([1]).buffer)[0];function parse$e(E,g="@"){if(!C)return init.then((()=>parse$e(E)));const I=E.length+1,o=(C.__heap_base.value||C.__heap_base)+4*I-C.memory.buffer.byteLength;o>0&&C.memory.grow(Math.ceil(o/65536));const k=C.sa(I-1);if((A?B:Q)(E,new Uint16Array(C.memory.buffer,k,I)),!C.parse())throw Object.assign(new Error(`Parse error ${g}:${E.slice(0,C.e()).split("\n").length}:${C.e()-E.lastIndexOf("\n",C.e()-1)}`),{idx:C.e()});const D=[],K=[];for(;C.ri();){const A=C.is(),Q=C.ie(),B=C.ai(),g=C.id(),I=C.ss(),o=C.se();let k;C.ip()&&(k=w(E.slice(-1===g?A-1:A,-1===g?Q+1:Q))),D.push({n:k,s:A,e:Q,ss:I,se:o,d:g,a:B});}for(;C.re();){const A=C.es(),Q=C.ee(),B=C.els(),g=C.ele(),I=E.slice(A,Q),o=I[0],k=B<0?void 0:E.slice(B,g),D=k?k[0]:"";K.push({s:A,e:Q,ls:B,le:g,n:'"'===o||"'"===o?w(I):I,ln:'"'===D||"'"===D?w(k):k});}function w(A){try{return (0, eval)(A)}catch(A){}}return [D,K,!!C.f(),!!C.ms()]}function Q(A,Q){const B=A.length;let C=0;for(;C<B;){const B=A.charCodeAt(C);Q[C++]=(255&B)<<8|B>>>8;}}function B(A,Q){const B=A.length;let C=0;for(;C<B;)Q[C]=A.charCodeAt(C++);}let C;const init=WebAssembly.compile((E="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","undefined"!=typeof Buffer?Buffer.from(E,"base64"):Uint8Array.from(atob(E),(A=>A.charCodeAt(0))))).then(WebAssembly.instantiate).then((({exports:A})=>{C=A;}));var E;
|
|
15910
15916
|
|
|
15911
15917
|
var convertSourceMap$1 = {};
|
|
15912
15918
|
|
|
@@ -38016,11 +38022,8 @@ function cssPostPlugin(config) {
|
|
|
38016
38022
|
}
|
|
38017
38023
|
if (opts.format === 'es' || opts.format === 'cjs') {
|
|
38018
38024
|
const isEntry = chunk.isEntry && isPureCssChunk;
|
|
38019
|
-
const cssAssetName =
|
|
38020
|
-
|
|
38021
|
-
: chunk.name);
|
|
38022
|
-
const lang = path$o.extname(cssAssetName).slice(1);
|
|
38023
|
-
const cssFileName = ensureFileExt(cssAssetName, '.css');
|
|
38025
|
+
const cssAssetName = ensureFileExt(chunk.name, '.css');
|
|
38026
|
+
const originalFilename = getChunkOriginalFileName(chunk, config.root, opts.format);
|
|
38024
38027
|
chunkCSS = resolveAssetUrlsInCss(chunkCSS, cssAssetName);
|
|
38025
38028
|
const previousTask = emitTasks[emitTasks.length - 1];
|
|
38026
38029
|
// finalizeCss is async which makes `emitFile` non-deterministic, so
|
|
@@ -38037,14 +38040,13 @@ function cssPostPlugin(config) {
|
|
|
38037
38040
|
await thisTask;
|
|
38038
38041
|
// emit corresponding css file
|
|
38039
38042
|
const referenceId = this.emitFile({
|
|
38040
|
-
name:
|
|
38043
|
+
name: cssAssetName,
|
|
38041
38044
|
type: 'asset',
|
|
38042
38045
|
source: chunkCSS,
|
|
38043
38046
|
});
|
|
38044
|
-
const originalName = isPreProcessor(lang) ? cssAssetName : cssFileName;
|
|
38045
38047
|
generatedAssets
|
|
38046
38048
|
.get(config)
|
|
38047
|
-
.set(referenceId, { originalName, isEntry });
|
|
38049
|
+
.set(referenceId, { originalName: originalFilename, isEntry });
|
|
38048
38050
|
chunk.viteMetadata.importedCss.add(this.getFileName(referenceId));
|
|
38049
38051
|
if (emitTasksLength === emitTasks.length) {
|
|
38050
38052
|
// this is the last task, clear `emitTasks` to free up memory
|
|
@@ -38494,8 +38496,8 @@ function createCachedImport(imp) {
|
|
|
38494
38496
|
return cached;
|
|
38495
38497
|
};
|
|
38496
38498
|
}
|
|
38497
|
-
const importPostcssImport = createCachedImport(() => import('./dep-
|
|
38498
|
-
const importPostcssModules = createCachedImport(() => import('./dep-
|
|
38499
|
+
const importPostcssImport = createCachedImport(() => import('./dep-qfw-A_Gb.js').then(function (n) { return n.i; }));
|
|
38500
|
+
const importPostcssModules = createCachedImport(() => import('./dep-faMUqRRE.js').then(function (n) { return n.i; }));
|
|
38499
38501
|
const importPostcss = createCachedImport(() => import('postcss'));
|
|
38500
38502
|
/**
|
|
38501
38503
|
* @experimental
|
|
@@ -47421,7 +47423,7 @@ function sirv (dir, opts={}) {
|
|
|
47421
47423
|
}
|
|
47422
47424
|
|
|
47423
47425
|
const knownJavascriptExtensionRE = /\.[tj]sx?$/;
|
|
47424
|
-
const sirvOptions = ({
|
|
47426
|
+
const sirvOptions = ({ getHeaders, shouldServe, }) => {
|
|
47425
47427
|
return {
|
|
47426
47428
|
dev: true,
|
|
47427
47429
|
etag: true,
|
|
@@ -47435,6 +47437,7 @@ const sirvOptions = ({ headers, shouldServe, }) => {
|
|
|
47435
47437
|
if (knownJavascriptExtensionRE.test(pathname)) {
|
|
47436
47438
|
res.setHeader('Content-Type', 'application/javascript');
|
|
47437
47439
|
}
|
|
47440
|
+
const headers = getHeaders();
|
|
47438
47441
|
if (headers) {
|
|
47439
47442
|
for (const name in headers) {
|
|
47440
47443
|
res.setHeader(name, headers[name]);
|
|
@@ -47444,9 +47447,10 @@ const sirvOptions = ({ headers, shouldServe, }) => {
|
|
|
47444
47447
|
shouldServe,
|
|
47445
47448
|
};
|
|
47446
47449
|
};
|
|
47447
|
-
function servePublicMiddleware(
|
|
47450
|
+
function servePublicMiddleware(server) {
|
|
47451
|
+
const dir = server.config.publicDir;
|
|
47448
47452
|
const serve = sirv(dir, sirvOptions({
|
|
47449
|
-
headers,
|
|
47453
|
+
getHeaders: () => server.config.server.headers,
|
|
47450
47454
|
shouldServe: (filePath) => shouldServeFile(filePath, dir),
|
|
47451
47455
|
}));
|
|
47452
47456
|
// Keep the named function. The name is visible in debug logs via `DEBUG=connect:dispatcher ...`
|
|
@@ -47458,9 +47462,10 @@ function servePublicMiddleware(dir, headers) {
|
|
|
47458
47462
|
serve(req, res, next);
|
|
47459
47463
|
};
|
|
47460
47464
|
}
|
|
47461
|
-
function serveStaticMiddleware(
|
|
47465
|
+
function serveStaticMiddleware(server) {
|
|
47466
|
+
const dir = server.config.root;
|
|
47462
47467
|
const serve = sirv(dir, sirvOptions({
|
|
47463
|
-
|
|
47468
|
+
getHeaders: () => server.config.server.headers,
|
|
47464
47469
|
}));
|
|
47465
47470
|
// Keep the named function. The name is visible in debug logs via `DEBUG=connect:dispatcher ...`
|
|
47466
47471
|
return function viteServeStaticMiddleware(req, res, next) {
|
|
@@ -47510,7 +47515,7 @@ function serveStaticMiddleware(dir, server) {
|
|
|
47510
47515
|
};
|
|
47511
47516
|
}
|
|
47512
47517
|
function serveRawFsMiddleware(server) {
|
|
47513
|
-
const serveFromRoot = sirv('/', sirvOptions({
|
|
47518
|
+
const serveFromRoot = sirv('/', sirvOptions({ getHeaders: () => server.config.server.headers }));
|
|
47514
47519
|
// Keep the named function. The name is visible in debug logs via `DEBUG=connect:dispatcher ...`
|
|
47515
47520
|
return function viteServeRawFsMiddleware(req, res, next) {
|
|
47516
47521
|
const url = new URL(req.url.replace(/^\/{2,}/, '/'), 'http://example.com');
|
|
@@ -54930,9 +54935,6 @@ function createWebSocketServer(server, config, httpsOptions) {
|
|
|
54930
54935
|
});
|
|
54931
54936
|
});
|
|
54932
54937
|
},
|
|
54933
|
-
[ASYNC_DISPOSE]() {
|
|
54934
|
-
return this.close();
|
|
54935
|
-
},
|
|
54936
54938
|
};
|
|
54937
54939
|
}
|
|
54938
54940
|
|
|
@@ -57660,9 +57662,6 @@ const devHtmlHook = async (html, { path: htmlPath, filename, server, originalUrl
|
|
|
57660
57662
|
};
|
|
57661
57663
|
function indexHtmlMiddleware(root, server) {
|
|
57662
57664
|
const isDev = isDevServer(server);
|
|
57663
|
-
const headers = isDev
|
|
57664
|
-
? server.config.server.headers
|
|
57665
|
-
: server.config.preview.headers;
|
|
57666
57665
|
// Keep the named function. The name is visible in debug logs via `DEBUG=connect:dispatcher ...`
|
|
57667
57666
|
return async function viteIndexHtmlMiddleware(req, res, next) {
|
|
57668
57667
|
if (res.writableEnded) {
|
|
@@ -57679,6 +57678,9 @@ function indexHtmlMiddleware(root, server) {
|
|
|
57679
57678
|
filePath = path$o.join(root, decodeURIComponent(url));
|
|
57680
57679
|
}
|
|
57681
57680
|
if (fs$l.existsSync(filePath)) {
|
|
57681
|
+
const headers = isDev
|
|
57682
|
+
? server.config.server.headers
|
|
57683
|
+
: server.config.preview.headers;
|
|
57682
57684
|
try {
|
|
57683
57685
|
let html = await fsp.readFile(filePath, 'utf-8');
|
|
57684
57686
|
if (isDev) {
|
|
@@ -57827,8 +57829,6 @@ class ModuleGraph {
|
|
|
57827
57829
|
}
|
|
57828
57830
|
invalidateModule(mod, seen = new Set(), timestamp = Date.now(), isHmr = false,
|
|
57829
57831
|
/** @internal */
|
|
57830
|
-
hmrBoundaries = [],
|
|
57831
|
-
/** @internal */
|
|
57832
57832
|
softInvalidate = false) {
|
|
57833
57833
|
const prevInvalidationState = mod.invalidationState;
|
|
57834
57834
|
const prevSsrInvalidationState = mod.ssrInvalidationState;
|
|
@@ -57866,14 +57866,6 @@ class ModuleGraph {
|
|
|
57866
57866
|
mod.ssrTransformResult = null;
|
|
57867
57867
|
mod.ssrModule = null;
|
|
57868
57868
|
mod.ssrError = null;
|
|
57869
|
-
// https://github.com/vitejs/vite/issues/3033
|
|
57870
|
-
// Given b.js -> c.js -> b.js (arrow means top-level import), if c.js self-accepts
|
|
57871
|
-
// and refetches itself, the execution order becomes c.js -> b.js -> c.js. The import
|
|
57872
|
-
// order matters here as it will fail. The workaround for now is to not hmr invalidate
|
|
57873
|
-
// b.js so that c.js refetches the already cached b.js, skipping the import loop.
|
|
57874
|
-
if (hmrBoundaries.includes(mod)) {
|
|
57875
|
-
return;
|
|
57876
|
-
}
|
|
57877
57869
|
mod.importers.forEach((importer) => {
|
|
57878
57870
|
if (!importer.acceptedHmrDeps.has(mod)) {
|
|
57879
57871
|
// If the importer statically imports the current module, we can soft-invalidate the importer
|
|
@@ -57881,7 +57873,7 @@ class ModuleGraph {
|
|
|
57881
57873
|
// we can only soft invalidate if the current module was also soft-invalidated. A soft-invalidation
|
|
57882
57874
|
// doesn't need to trigger a re-load and re-transform of the importer.
|
|
57883
57875
|
const shouldSoftInvalidateImporter = importer.staticImportedUrls?.has(mod.url) || softInvalidate;
|
|
57884
|
-
this.invalidateModule(importer, seen, timestamp, isHmr,
|
|
57876
|
+
this.invalidateModule(importer, seen, timestamp, isHmr, shouldSoftInvalidateImporter);
|
|
57885
57877
|
}
|
|
57886
57878
|
});
|
|
57887
57879
|
}
|
|
@@ -58469,9 +58461,6 @@ async function _createServer(inlineConfig = {}, options) {
|
|
|
58469
58461
|
}
|
|
58470
58462
|
server.resolvedUrls = null;
|
|
58471
58463
|
},
|
|
58472
|
-
[ASYNC_DISPOSE]() {
|
|
58473
|
-
return this.close();
|
|
58474
|
-
},
|
|
58475
58464
|
printUrls() {
|
|
58476
58465
|
if (server.resolvedUrls) {
|
|
58477
58466
|
printServerUrls(server.resolvedUrls, serverConfig.host, config.logger.info);
|
|
@@ -58606,13 +58595,13 @@ async function _createServer(inlineConfig = {}, options) {
|
|
|
58606
58595
|
// this applies before the transform middleware so that these files are served
|
|
58607
58596
|
// as-is without transforms.
|
|
58608
58597
|
if (config.publicDir) {
|
|
58609
|
-
middlewares.use(servePublicMiddleware(
|
|
58598
|
+
middlewares.use(servePublicMiddleware(server));
|
|
58610
58599
|
}
|
|
58611
58600
|
// main transform middleware
|
|
58612
58601
|
middlewares.use(transformMiddleware(server));
|
|
58613
58602
|
// serve static files
|
|
58614
58603
|
middlewares.use(serveRawFsMiddleware(server));
|
|
58615
|
-
middlewares.use(serveStaticMiddleware(
|
|
58604
|
+
middlewares.use(serveStaticMiddleware(server));
|
|
58616
58605
|
// html fallback
|
|
58617
58606
|
if (config.appType === 'spa' || config.appType === 'mpa') {
|
|
58618
58607
|
middlewares.use(htmlFallbackMiddleware(root, config.appType === 'spa'));
|
|
@@ -58681,14 +58670,22 @@ async function startServer(server, inlinePort) {
|
|
|
58681
58670
|
throw new Error('Cannot call server.listen in middleware mode.');
|
|
58682
58671
|
}
|
|
58683
58672
|
const options = server.config.server;
|
|
58684
|
-
const port = inlinePort ?? options.port ?? DEFAULT_DEV_PORT;
|
|
58685
58673
|
const hostname = await resolveHostname(options.host);
|
|
58686
|
-
|
|
58674
|
+
const configPort = inlinePort ?? options.port;
|
|
58675
|
+
// When using non strict port for the dev server, the running port can be different from the config one.
|
|
58676
|
+
// When restarting, the original port may be available but to avoid a switch of URL for the running
|
|
58677
|
+
// browser tabs, we enforce the previously used port, expect if the config port changed.
|
|
58678
|
+
const port = (!configPort || configPort === server._configServerPort
|
|
58679
|
+
? server._currentServerPort
|
|
58680
|
+
: configPort) ?? DEFAULT_DEV_PORT;
|
|
58681
|
+
server._configServerPort = configPort;
|
|
58682
|
+
const serverPort = await httpServerStart(httpServer, {
|
|
58687
58683
|
port,
|
|
58688
58684
|
strictPort: options.strictPort,
|
|
58689
58685
|
host: hostname.host,
|
|
58690
58686
|
logger: server.config.logger,
|
|
58691
58687
|
});
|
|
58688
|
+
server._currentServerPort = serverPort;
|
|
58692
58689
|
}
|
|
58693
58690
|
function createServerCloseFn(server) {
|
|
58694
58691
|
if (!server) {
|
|
@@ -58781,6 +58778,8 @@ async function restartServer(server) {
|
|
|
58781
58778
|
}
|
|
58782
58779
|
await server.close();
|
|
58783
58780
|
// Assign new server props to existing server instance
|
|
58781
|
+
newServer._configServerPort = server._configServerPort;
|
|
58782
|
+
newServer._currentServerPort = server._currentServerPort;
|
|
58784
58783
|
Object.assign(server, newServer);
|
|
58785
58784
|
// Rebind internal server variable so functions reference the user server
|
|
58786
58785
|
newServer._setInternalServer(server);
|
|
@@ -58911,12 +58910,12 @@ function updateModules(file, modules, timestamp, { config, ws, moduleGraph }, af
|
|
|
58911
58910
|
for (const mod of modules) {
|
|
58912
58911
|
const boundaries = [];
|
|
58913
58912
|
const hasDeadEnd = propagateUpdate(mod, traversedModules, boundaries);
|
|
58914
|
-
moduleGraph.invalidateModule(mod, invalidatedModules, timestamp, true
|
|
58913
|
+
moduleGraph.invalidateModule(mod, invalidatedModules, timestamp, true);
|
|
58915
58914
|
if (needFullReload) {
|
|
58916
58915
|
continue;
|
|
58917
58916
|
}
|
|
58918
58917
|
if (hasDeadEnd) {
|
|
58919
|
-
needFullReload =
|
|
58918
|
+
needFullReload = hasDeadEnd;
|
|
58920
58919
|
continue;
|
|
58921
58920
|
}
|
|
58922
58921
|
updates.push(...boundaries.map(({ boundary, acceptedVia }) => ({
|
|
@@ -58930,10 +58929,10 @@ function updateModules(file, modules, timestamp, { config, ws, moduleGraph }, af
|
|
|
58930
58929
|
})));
|
|
58931
58930
|
}
|
|
58932
58931
|
if (needFullReload) {
|
|
58933
|
-
|
|
58934
|
-
|
|
58935
|
-
|
|
58936
|
-
});
|
|
58932
|
+
const reason = typeof needFullReload === 'string'
|
|
58933
|
+
? colors$1.dim(` (${needFullReload})`)
|
|
58934
|
+
: '';
|
|
58935
|
+
config.logger.info(colors$1.green(`page reload `) + colors$1.dim(file) + reason, { clear: !afterInvalidation, timestamp: true });
|
|
58937
58936
|
ws.send({
|
|
58938
58937
|
type: 'full-reload',
|
|
58939
58938
|
});
|
|
@@ -58986,6 +58985,9 @@ function propagateUpdate(node, traversedModules, boundaries, currentChain = [nod
|
|
|
58986
58985
|
}
|
|
58987
58986
|
if (node.isSelfAccepting) {
|
|
58988
58987
|
boundaries.push({ boundary: node, acceptedVia: node });
|
|
58988
|
+
const result = isNodeWithinCircularImports(node, currentChain);
|
|
58989
|
+
if (result)
|
|
58990
|
+
return result;
|
|
58989
58991
|
// additionally check for CSS importers, since a PostCSS plugin like
|
|
58990
58992
|
// Tailwind JIT may register any file as a dependency to a CSS file.
|
|
58991
58993
|
for (const importer of node.importers) {
|
|
@@ -59002,6 +59004,9 @@ function propagateUpdate(node, traversedModules, boundaries, currentChain = [nod
|
|
|
59002
59004
|
// so that they do get the fresh imported module when/if they are reloaded.
|
|
59003
59005
|
if (node.acceptedHmrExports) {
|
|
59004
59006
|
boundaries.push({ boundary: node, acceptedVia: node });
|
|
59007
|
+
const result = isNodeWithinCircularImports(node, currentChain);
|
|
59008
|
+
if (result)
|
|
59009
|
+
return result;
|
|
59005
59010
|
}
|
|
59006
59011
|
else {
|
|
59007
59012
|
if (!node.importers.size) {
|
|
@@ -59019,6 +59024,9 @@ function propagateUpdate(node, traversedModules, boundaries, currentChain = [nod
|
|
|
59019
59024
|
const subChain = currentChain.concat(importer);
|
|
59020
59025
|
if (importer.acceptedHmrDeps.has(node)) {
|
|
59021
59026
|
boundaries.push({ boundary: importer, acceptedVia: node });
|
|
59027
|
+
const result = isNodeWithinCircularImports(importer, subChain);
|
|
59028
|
+
if (result)
|
|
59029
|
+
return result;
|
|
59022
59030
|
continue;
|
|
59023
59031
|
}
|
|
59024
59032
|
if (node.id && node.acceptedHmrExports && importer.importedBindings) {
|
|
@@ -59028,12 +59036,67 @@ function propagateUpdate(node, traversedModules, boundaries, currentChain = [nod
|
|
|
59028
59036
|
continue;
|
|
59029
59037
|
}
|
|
59030
59038
|
}
|
|
59031
|
-
if (currentChain.includes(importer)
|
|
59032
|
-
|
|
59039
|
+
if (!currentChain.includes(importer) &&
|
|
59040
|
+
propagateUpdate(importer, traversedModules, boundaries, subChain)) {
|
|
59033
59041
|
return true;
|
|
59034
59042
|
}
|
|
59035
|
-
|
|
59036
|
-
|
|
59043
|
+
}
|
|
59044
|
+
return false;
|
|
59045
|
+
}
|
|
59046
|
+
/**
|
|
59047
|
+
* Check importers recursively if it's an import loop. An accepted module within
|
|
59048
|
+
* an import loop cannot recover its execution order and should be reloaded.
|
|
59049
|
+
*
|
|
59050
|
+
* @param node The node that accepts HMR and is a boundary
|
|
59051
|
+
* @param nodeChain The chain of nodes/imports that lead to the node.
|
|
59052
|
+
* (The last node in the chain imports the `node` parameter)
|
|
59053
|
+
* @param currentChain The current chain tracked from the `node` parameter
|
|
59054
|
+
*/
|
|
59055
|
+
function isNodeWithinCircularImports(node, nodeChain, currentChain = [node]) {
|
|
59056
|
+
// To help visualize how each parameters work, imagine this import graph:
|
|
59057
|
+
//
|
|
59058
|
+
// A -> B -> C -> ACCEPTED -> D -> E -> NODE
|
|
59059
|
+
// ^--------------------------|
|
|
59060
|
+
//
|
|
59061
|
+
// ACCEPTED: the node that accepts HMR. the `node` parameter.
|
|
59062
|
+
// NODE : the initial node that triggered this HMR.
|
|
59063
|
+
//
|
|
59064
|
+
// This function will return true in the above graph, which:
|
|
59065
|
+
// `node` : ACCEPTED
|
|
59066
|
+
// `nodeChain` : [NODE, E, D, ACCEPTED]
|
|
59067
|
+
// `currentChain` : [ACCEPTED, C, B]
|
|
59068
|
+
//
|
|
59069
|
+
// It works by checking if any `node` importers are within `nodeChain`, which
|
|
59070
|
+
// means there's an import loop with a HMR-accepted module in it.
|
|
59071
|
+
for (const importer of node.importers) {
|
|
59072
|
+
// Node may import itself which is safe
|
|
59073
|
+
if (importer === node)
|
|
59074
|
+
continue;
|
|
59075
|
+
// Check circular imports
|
|
59076
|
+
const importerIndex = nodeChain.indexOf(importer);
|
|
59077
|
+
if (importerIndex > -1) {
|
|
59078
|
+
// Log extra debug information so users can fix and remove the circular imports
|
|
59079
|
+
if (debugHmr) {
|
|
59080
|
+
// Following explanation above:
|
|
59081
|
+
// `importer` : E
|
|
59082
|
+
// `currentChain` reversed : [B, C, ACCEPTED]
|
|
59083
|
+
// `nodeChain` sliced & reversed : [D, E]
|
|
59084
|
+
// Combined : [E, B, C, ACCEPTED, D, E]
|
|
59085
|
+
const importChain = [
|
|
59086
|
+
importer,
|
|
59087
|
+
...[...currentChain].reverse(),
|
|
59088
|
+
...nodeChain.slice(importerIndex, -1).reverse(),
|
|
59089
|
+
];
|
|
59090
|
+
debugHmr(colors$1.yellow(`circular imports detected: `) +
|
|
59091
|
+
importChain.map((m) => colors$1.dim(m.url)).join(' -> '));
|
|
59092
|
+
}
|
|
59093
|
+
return 'circular imports';
|
|
59094
|
+
}
|
|
59095
|
+
// Continue recursively
|
|
59096
|
+
if (!currentChain.includes(importer)) {
|
|
59097
|
+
const result = isNodeWithinCircularImports(importer, nodeChain, currentChain.concat(importer));
|
|
59098
|
+
if (result)
|
|
59099
|
+
return result;
|
|
59037
59100
|
}
|
|
59038
59101
|
}
|
|
59039
59102
|
return false;
|
|
@@ -59393,6 +59456,324 @@ function canJsonParse(value) {
|
|
|
59393
59456
|
}
|
|
59394
59457
|
}
|
|
59395
59458
|
|
|
59459
|
+
const WORKER_FILE_ID = 'worker_file';
|
|
59460
|
+
const workerCache = new WeakMap();
|
|
59461
|
+
function saveEmitWorkerAsset(config, asset) {
|
|
59462
|
+
const fileName = asset.fileName;
|
|
59463
|
+
const workerMap = workerCache.get(config.mainConfig || config);
|
|
59464
|
+
workerMap.assets.set(fileName, asset);
|
|
59465
|
+
}
|
|
59466
|
+
async function bundleWorkerEntry(config, id, query) {
|
|
59467
|
+
// bundle the file as entry to support imports
|
|
59468
|
+
const { rollup } = await import('rollup');
|
|
59469
|
+
const { plugins, rollupOptions, format } = config.worker;
|
|
59470
|
+
const bundle = await rollup({
|
|
59471
|
+
...rollupOptions,
|
|
59472
|
+
input: cleanUrl(id),
|
|
59473
|
+
plugins: await plugins(),
|
|
59474
|
+
onwarn(warning, warn) {
|
|
59475
|
+
onRollupWarning(warning, warn, config);
|
|
59476
|
+
},
|
|
59477
|
+
preserveEntrySignatures: false,
|
|
59478
|
+
});
|
|
59479
|
+
let chunk;
|
|
59480
|
+
try {
|
|
59481
|
+
const workerOutputConfig = config.worker.rollupOptions.output;
|
|
59482
|
+
const workerConfig = workerOutputConfig
|
|
59483
|
+
? Array.isArray(workerOutputConfig)
|
|
59484
|
+
? workerOutputConfig[0] || {}
|
|
59485
|
+
: workerOutputConfig
|
|
59486
|
+
: {};
|
|
59487
|
+
const { output: [outputChunk, ...outputChunks], } = await bundle.generate({
|
|
59488
|
+
entryFileNames: path$o.posix.join(config.build.assetsDir, '[name]-[hash].js'),
|
|
59489
|
+
chunkFileNames: path$o.posix.join(config.build.assetsDir, '[name]-[hash].js'),
|
|
59490
|
+
assetFileNames: path$o.posix.join(config.build.assetsDir, '[name]-[hash].[ext]'),
|
|
59491
|
+
...workerConfig,
|
|
59492
|
+
format,
|
|
59493
|
+
sourcemap: config.build.sourcemap,
|
|
59494
|
+
});
|
|
59495
|
+
chunk = outputChunk;
|
|
59496
|
+
outputChunks.forEach((outputChunk) => {
|
|
59497
|
+
if (outputChunk.type === 'asset') {
|
|
59498
|
+
saveEmitWorkerAsset(config, outputChunk);
|
|
59499
|
+
}
|
|
59500
|
+
else if (outputChunk.type === 'chunk') {
|
|
59501
|
+
saveEmitWorkerAsset(config, {
|
|
59502
|
+
fileName: outputChunk.fileName,
|
|
59503
|
+
source: outputChunk.code,
|
|
59504
|
+
type: 'asset',
|
|
59505
|
+
});
|
|
59506
|
+
}
|
|
59507
|
+
});
|
|
59508
|
+
}
|
|
59509
|
+
finally {
|
|
59510
|
+
await bundle.close();
|
|
59511
|
+
}
|
|
59512
|
+
return emitSourcemapForWorkerEntry(config, query, chunk);
|
|
59513
|
+
}
|
|
59514
|
+
function emitSourcemapForWorkerEntry(config, query, chunk) {
|
|
59515
|
+
const { map: sourcemap } = chunk;
|
|
59516
|
+
if (sourcemap) {
|
|
59517
|
+
if (config.build.sourcemap === 'hidden' ||
|
|
59518
|
+
config.build.sourcemap === true) {
|
|
59519
|
+
const data = sourcemap.toString();
|
|
59520
|
+
const mapFileName = chunk.fileName + '.map';
|
|
59521
|
+
saveEmitWorkerAsset(config, {
|
|
59522
|
+
fileName: mapFileName,
|
|
59523
|
+
type: 'asset',
|
|
59524
|
+
source: data,
|
|
59525
|
+
});
|
|
59526
|
+
}
|
|
59527
|
+
}
|
|
59528
|
+
return chunk;
|
|
59529
|
+
}
|
|
59530
|
+
const workerAssetUrlRE = /__VITE_WORKER_ASSET__([a-z\d]{8})__/g;
|
|
59531
|
+
function encodeWorkerAssetFileName(fileName, workerCache) {
|
|
59532
|
+
const { fileNameHash } = workerCache;
|
|
59533
|
+
const hash = getHash(fileName);
|
|
59534
|
+
if (!fileNameHash.get(hash)) {
|
|
59535
|
+
fileNameHash.set(hash, fileName);
|
|
59536
|
+
}
|
|
59537
|
+
return `__VITE_WORKER_ASSET__${hash}__`;
|
|
59538
|
+
}
|
|
59539
|
+
async function workerFileToUrl(config, id, query) {
|
|
59540
|
+
const workerMap = workerCache.get(config.mainConfig || config);
|
|
59541
|
+
let fileName = workerMap.bundle.get(id);
|
|
59542
|
+
if (!fileName) {
|
|
59543
|
+
const outputChunk = await bundleWorkerEntry(config, id, query);
|
|
59544
|
+
fileName = outputChunk.fileName;
|
|
59545
|
+
saveEmitWorkerAsset(config, {
|
|
59546
|
+
fileName,
|
|
59547
|
+
source: outputChunk.code,
|
|
59548
|
+
type: 'asset',
|
|
59549
|
+
});
|
|
59550
|
+
workerMap.bundle.set(id, fileName);
|
|
59551
|
+
}
|
|
59552
|
+
return encodeWorkerAssetFileName(fileName, workerMap);
|
|
59553
|
+
}
|
|
59554
|
+
function webWorkerPostPlugin() {
|
|
59555
|
+
return {
|
|
59556
|
+
name: 'vite:worker-post',
|
|
59557
|
+
resolveImportMeta(property, { chunkId, format }) {
|
|
59558
|
+
// document is undefined in the worker, so we need to avoid it in iife
|
|
59559
|
+
if (property === 'url' && format === 'iife') {
|
|
59560
|
+
return 'self.location.href';
|
|
59561
|
+
}
|
|
59562
|
+
return null;
|
|
59563
|
+
},
|
|
59564
|
+
};
|
|
59565
|
+
}
|
|
59566
|
+
function webWorkerPlugin(config) {
|
|
59567
|
+
const isBuild = config.command === 'build';
|
|
59568
|
+
let server;
|
|
59569
|
+
const isWorker = config.isWorker;
|
|
59570
|
+
const isWorkerQueryId = (id) => {
|
|
59571
|
+
const parsedQuery = parseRequest(id);
|
|
59572
|
+
if (parsedQuery &&
|
|
59573
|
+
(parsedQuery.worker ?? parsedQuery.sharedworker) != null) {
|
|
59574
|
+
return true;
|
|
59575
|
+
}
|
|
59576
|
+
return false;
|
|
59577
|
+
};
|
|
59578
|
+
return {
|
|
59579
|
+
name: 'vite:worker',
|
|
59580
|
+
configureServer(_server) {
|
|
59581
|
+
server = _server;
|
|
59582
|
+
},
|
|
59583
|
+
buildStart() {
|
|
59584
|
+
if (isWorker) {
|
|
59585
|
+
return;
|
|
59586
|
+
}
|
|
59587
|
+
workerCache.set(config, {
|
|
59588
|
+
assets: new Map(),
|
|
59589
|
+
bundle: new Map(),
|
|
59590
|
+
fileNameHash: new Map(),
|
|
59591
|
+
});
|
|
59592
|
+
},
|
|
59593
|
+
load(id) {
|
|
59594
|
+
if (isBuild && isWorkerQueryId(id)) {
|
|
59595
|
+
return '';
|
|
59596
|
+
}
|
|
59597
|
+
},
|
|
59598
|
+
shouldTransformCachedModule({ id }) {
|
|
59599
|
+
if (isBuild && config.build.watch && isWorkerQueryId(id)) {
|
|
59600
|
+
return true;
|
|
59601
|
+
}
|
|
59602
|
+
},
|
|
59603
|
+
async transform(raw, id, options) {
|
|
59604
|
+
const ssr = options?.ssr === true;
|
|
59605
|
+
const query = parseRequest(id);
|
|
59606
|
+
if (query && query[WORKER_FILE_ID] != null) {
|
|
59607
|
+
// if import worker by worker constructor will have query.type
|
|
59608
|
+
// other type will be import worker by esm
|
|
59609
|
+
const workerType = query['type'];
|
|
59610
|
+
let injectEnv = '';
|
|
59611
|
+
const scriptPath = JSON.stringify(path$o.posix.join(config.base, ENV_PUBLIC_PATH));
|
|
59612
|
+
if (workerType === 'classic') {
|
|
59613
|
+
injectEnv = `importScripts(${scriptPath})\n`;
|
|
59614
|
+
}
|
|
59615
|
+
else if (workerType === 'module') {
|
|
59616
|
+
injectEnv = `import ${scriptPath}\n`;
|
|
59617
|
+
}
|
|
59618
|
+
else if (workerType === 'ignore') {
|
|
59619
|
+
if (isBuild) {
|
|
59620
|
+
injectEnv = '';
|
|
59621
|
+
}
|
|
59622
|
+
else if (server) {
|
|
59623
|
+
// dynamic worker type we can't know how import the env
|
|
59624
|
+
// so we copy /@vite/env code of server transform result into file header
|
|
59625
|
+
const { moduleGraph } = server;
|
|
59626
|
+
const module = moduleGraph.getModuleById(ENV_ENTRY);
|
|
59627
|
+
injectEnv = module?.transformResult?.code || '';
|
|
59628
|
+
}
|
|
59629
|
+
}
|
|
59630
|
+
if (injectEnv) {
|
|
59631
|
+
const s = new MagicString(raw);
|
|
59632
|
+
s.prepend(injectEnv);
|
|
59633
|
+
return {
|
|
59634
|
+
code: s.toString(),
|
|
59635
|
+
map: s.generateMap({ hires: 'boundary' }),
|
|
59636
|
+
};
|
|
59637
|
+
}
|
|
59638
|
+
return;
|
|
59639
|
+
}
|
|
59640
|
+
if (query == null ||
|
|
59641
|
+
(query && (query.worker ?? query.sharedworker) == null)) {
|
|
59642
|
+
return;
|
|
59643
|
+
}
|
|
59644
|
+
// stringified url or `new URL(...)`
|
|
59645
|
+
let url;
|
|
59646
|
+
const { format } = config.worker;
|
|
59647
|
+
const workerConstructor = query.sharedworker != null ? 'SharedWorker' : 'Worker';
|
|
59648
|
+
const workerType = isBuild
|
|
59649
|
+
? format === 'es'
|
|
59650
|
+
? 'module'
|
|
59651
|
+
: 'classic'
|
|
59652
|
+
: 'module';
|
|
59653
|
+
const workerTypeOption = `{
|
|
59654
|
+
${workerType === 'module' ? `type: "module",` : ''}
|
|
59655
|
+
name: options?.name
|
|
59656
|
+
}`;
|
|
59657
|
+
if (isBuild) {
|
|
59658
|
+
getDepsOptimizer(config, ssr)?.registerWorkersSource(id);
|
|
59659
|
+
if (query.inline != null) {
|
|
59660
|
+
const chunk = await bundleWorkerEntry(config, id, query);
|
|
59661
|
+
const encodedJs = `const encodedJs = "${Buffer.from(chunk.code).toString('base64')}";`;
|
|
59662
|
+
const code =
|
|
59663
|
+
// Using blob URL for SharedWorker results in multiple instances of a same worker
|
|
59664
|
+
workerConstructor === 'Worker'
|
|
59665
|
+
? `${encodedJs}
|
|
59666
|
+
const blob = typeof window !== "undefined" && window.Blob && new Blob([${workerType === 'classic'
|
|
59667
|
+
? ''
|
|
59668
|
+
: // `URL` is always available, in `Worker[type="module"]`
|
|
59669
|
+
`'URL.revokeObjectURL(import.meta.url);'+`}atob(encodedJs)], { type: "text/javascript;charset=utf-8" });
|
|
59670
|
+
export default function WorkerWrapper(options) {
|
|
59671
|
+
let objURL;
|
|
59672
|
+
try {
|
|
59673
|
+
objURL = blob && (window.URL || window.webkitURL).createObjectURL(blob);
|
|
59674
|
+
if (!objURL) throw ''
|
|
59675
|
+
const worker = new ${workerConstructor}(objURL, ${workerTypeOption});
|
|
59676
|
+
worker.addEventListener("error", () => {
|
|
59677
|
+
(window.URL || window.webkitURL).revokeObjectURL(objURL);
|
|
59678
|
+
});
|
|
59679
|
+
return worker;
|
|
59680
|
+
} catch(e) {
|
|
59681
|
+
return new ${workerConstructor}(
|
|
59682
|
+
"data:application/javascript;base64," + encodedJs,
|
|
59683
|
+
${workerTypeOption}
|
|
59684
|
+
);
|
|
59685
|
+
}${
|
|
59686
|
+
// For module workers, we should not revoke the URL until the worker runs,
|
|
59687
|
+
// otherwise the worker fails to run
|
|
59688
|
+
workerType === 'classic'
|
|
59689
|
+
? ` finally {
|
|
59690
|
+
objURL && (window.URL || window.webkitURL).revokeObjectURL(objURL);
|
|
59691
|
+
}`
|
|
59692
|
+
: ''}
|
|
59693
|
+
}`
|
|
59694
|
+
: `${encodedJs}
|
|
59695
|
+
export default function WorkerWrapper(options) {
|
|
59696
|
+
return new ${workerConstructor}(
|
|
59697
|
+
"data:application/javascript;base64," + encodedJs,
|
|
59698
|
+
${workerTypeOption}
|
|
59699
|
+
);
|
|
59700
|
+
}
|
|
59701
|
+
`;
|
|
59702
|
+
return {
|
|
59703
|
+
code,
|
|
59704
|
+
// Empty sourcemap to suppress Rollup warning
|
|
59705
|
+
map: { mappings: '' },
|
|
59706
|
+
};
|
|
59707
|
+
}
|
|
59708
|
+
else {
|
|
59709
|
+
url = await workerFileToUrl(config, id, query);
|
|
59710
|
+
}
|
|
59711
|
+
}
|
|
59712
|
+
else {
|
|
59713
|
+
url = await fileToUrl$1(cleanUrl(id), config, this);
|
|
59714
|
+
url = injectQuery(url, WORKER_FILE_ID);
|
|
59715
|
+
url = injectQuery(url, `type=${workerType}`);
|
|
59716
|
+
}
|
|
59717
|
+
if (query.url != null) {
|
|
59718
|
+
return {
|
|
59719
|
+
code: `export default ${JSON.stringify(url)}`,
|
|
59720
|
+
map: { mappings: '' }, // Empty sourcemap to suppress Rollup warning
|
|
59721
|
+
};
|
|
59722
|
+
}
|
|
59723
|
+
return {
|
|
59724
|
+
code: `export default function WorkerWrapper(options) {
|
|
59725
|
+
return new ${workerConstructor}(
|
|
59726
|
+
${JSON.stringify(url)},
|
|
59727
|
+
${workerTypeOption}
|
|
59728
|
+
);
|
|
59729
|
+
}`,
|
|
59730
|
+
map: { mappings: '' }, // Empty sourcemap to suppress Rollup warning
|
|
59731
|
+
};
|
|
59732
|
+
},
|
|
59733
|
+
renderChunk(code, chunk, outputOptions) {
|
|
59734
|
+
let s;
|
|
59735
|
+
const result = () => {
|
|
59736
|
+
return (s && {
|
|
59737
|
+
code: s.toString(),
|
|
59738
|
+
map: config.build.sourcemap
|
|
59739
|
+
? s.generateMap({ hires: 'boundary' })
|
|
59740
|
+
: null,
|
|
59741
|
+
});
|
|
59742
|
+
};
|
|
59743
|
+
if (code.match(workerAssetUrlRE)) {
|
|
59744
|
+
const toRelativeRuntime = createToImportMetaURLBasedRelativeRuntime(outputOptions.format, config.isWorker);
|
|
59745
|
+
let match;
|
|
59746
|
+
s = new MagicString(code);
|
|
59747
|
+
workerAssetUrlRE.lastIndex = 0;
|
|
59748
|
+
// Replace "__VITE_WORKER_ASSET__5aa0ddc0__" using relative paths
|
|
59749
|
+
const workerMap = workerCache.get(config.mainConfig || config);
|
|
59750
|
+
const { fileNameHash } = workerMap;
|
|
59751
|
+
while ((match = workerAssetUrlRE.exec(code))) {
|
|
59752
|
+
const [full, hash] = match;
|
|
59753
|
+
const filename = fileNameHash.get(hash);
|
|
59754
|
+
const replacement = toOutputFilePathInJS(filename, 'asset', chunk.fileName, 'js', config, toRelativeRuntime);
|
|
59755
|
+
const replacementString = typeof replacement === 'string'
|
|
59756
|
+
? JSON.stringify(replacement).slice(1, -1)
|
|
59757
|
+
: `"+${replacement.runtime}+"`;
|
|
59758
|
+
s.update(match.index, match.index + full.length, replacementString);
|
|
59759
|
+
}
|
|
59760
|
+
}
|
|
59761
|
+
return result();
|
|
59762
|
+
},
|
|
59763
|
+
generateBundle(opts) {
|
|
59764
|
+
// @ts-expect-error asset emits are skipped in legacy bundle
|
|
59765
|
+
if (opts.__vite_skip_asset_emit__ || isWorker) {
|
|
59766
|
+
return;
|
|
59767
|
+
}
|
|
59768
|
+
const workerMap = workerCache.get(config);
|
|
59769
|
+
workerMap.assets.forEach((asset) => {
|
|
59770
|
+
this.emitFile(asset);
|
|
59771
|
+
workerMap.assets.delete(asset.fileName);
|
|
59772
|
+
});
|
|
59773
|
+
},
|
|
59774
|
+
};
|
|
59775
|
+
}
|
|
59776
|
+
|
|
59396
59777
|
const debug$4 = createDebugger('vite:import-analysis');
|
|
59397
59778
|
const clientDir = normalizePath$3(CLIENT_DIR);
|
|
59398
59779
|
const skipRE = /\.(?:map|json)(?:$|\?)/;
|
|
@@ -59401,7 +59782,6 @@ const optimizedDepChunkRE$1 = /\/chunk-[A-Z\d]{8}\.js/;
|
|
|
59401
59782
|
const optimizedDepDynamicRE$1 = /-[A-Z\d]{8}\.js/;
|
|
59402
59783
|
const hasImportInQueryParamsRE = /[?&]import=?\b/;
|
|
59403
59784
|
const hasViteIgnoreRE = /\/\*\s*@vite-ignore\s*\*\//;
|
|
59404
|
-
const cleanUpRawUrlRE = /\/\*[\s\S]*?\*\/|([^\\:]|^)\/\/.*$/gm;
|
|
59405
59785
|
const urlIsStringRE = /^(?:'.*'|".*"|`.*`)$/;
|
|
59406
59786
|
const templateLiteralRE = /^\s*`(.*)`\s*$/;
|
|
59407
59787
|
function isExplicitImportRequired(url) {
|
|
@@ -59531,7 +59911,8 @@ function importAnalysisPlugin(config) {
|
|
|
59531
59911
|
try {
|
|
59532
59912
|
[imports, exports] = parse$e(source);
|
|
59533
59913
|
}
|
|
59534
|
-
catch (
|
|
59914
|
+
catch (_e) {
|
|
59915
|
+
const e = _e;
|
|
59535
59916
|
const { message, showCodeFrame } = createParseErrorInfo(importer, source);
|
|
59536
59917
|
this.error(message, showCodeFrame ? e.idx : undefined);
|
|
59537
59918
|
}
|
|
@@ -59825,11 +60206,10 @@ function importAnalysisPlugin(config) {
|
|
|
59825
60206
|
}
|
|
59826
60207
|
}
|
|
59827
60208
|
if (!ssr) {
|
|
59828
|
-
|
|
59829
|
-
|
|
59830
|
-
isExplicitImportRequired(url.slice(1, -1))) {
|
|
60209
|
+
if (!urlIsStringRE.test(rawUrl) ||
|
|
60210
|
+
isExplicitImportRequired(rawUrl.slice(1, -1))) {
|
|
59831
60211
|
needQueryInjectHelper = true;
|
|
59832
|
-
str().overwrite(start, end, `__vite__injectQuery(${
|
|
60212
|
+
str().overwrite(start, end, `__vite__injectQuery(${rawUrl}, 'import')`, { contentOnly: true });
|
|
59833
60213
|
}
|
|
59834
60214
|
}
|
|
59835
60215
|
}
|
|
@@ -59842,11 +60222,14 @@ function importAnalysisPlugin(config) {
|
|
|
59842
60222
|
const staticImportedUrls = new Set(_orderedImportedUrls);
|
|
59843
60223
|
const acceptedUrls = mergeAcceptedUrls(orderedAcceptedUrls);
|
|
59844
60224
|
const acceptedExports = mergeAcceptedUrls(orderedAcceptedExports);
|
|
59845
|
-
|
|
60225
|
+
// While we always expect to work with ESM, a classic worker is the only
|
|
60226
|
+
// case where it's not ESM and we need to avoid injecting ESM-specific code
|
|
60227
|
+
const isClassicWorker = importer.includes(WORKER_FILE_ID) && importer.includes('type=classic');
|
|
60228
|
+
if (hasEnv && !isClassicWorker) {
|
|
59846
60229
|
// inject import.meta.env
|
|
59847
60230
|
str().prepend(getEnv(ssr));
|
|
59848
60231
|
}
|
|
59849
|
-
if (hasHMR && !ssr) {
|
|
60232
|
+
if (hasHMR && !ssr && !isClassicWorker) {
|
|
59850
60233
|
debugHmr?.(`${isSelfAccepting
|
|
59851
60234
|
? `[self-accepts]`
|
|
59852
60235
|
: isPartiallySelfAccepting
|
|
@@ -59859,7 +60242,12 @@ function importAnalysisPlugin(config) {
|
|
|
59859
60242
|
`import.meta.hot = __vite__createHotContext(${JSON.stringify(normalizeHmrUrl(importerModule.url))});`);
|
|
59860
60243
|
}
|
|
59861
60244
|
if (needQueryInjectHelper) {
|
|
59862
|
-
|
|
60245
|
+
if (isClassicWorker) {
|
|
60246
|
+
str().append('\n' + __vite__injectQuery.toString());
|
|
60247
|
+
}
|
|
60248
|
+
else {
|
|
60249
|
+
str().prepend(`import { injectQuery as __vite__injectQuery } from "${clientPublicPath}";`);
|
|
60250
|
+
}
|
|
59863
60251
|
}
|
|
59864
60252
|
// normalize and rewrite accepted urls
|
|
59865
60253
|
const normalizedAcceptedUrls = new Set();
|
|
@@ -60056,6 +60444,17 @@ function transformCjsImport(importExp, url, rawUrl, importIndex, importer, confi
|
|
|
60056
60444
|
return lines.join('; ');
|
|
60057
60445
|
}
|
|
60058
60446
|
}
|
|
60447
|
+
// Copied from `client/client.ts`. Only needed so we can inline inject this function for classic workers.
|
|
60448
|
+
function __vite__injectQuery(url, queryToInject) {
|
|
60449
|
+
// skip urls that won't be handled by vite
|
|
60450
|
+
if (url[0] !== '.' && url[0] !== '/') {
|
|
60451
|
+
return url;
|
|
60452
|
+
}
|
|
60453
|
+
// can't use pathname from URL since it may be relative like ../
|
|
60454
|
+
const pathname = url.replace(/[?#].*$/s, '');
|
|
60455
|
+
const { search, hash } = new URL(url, 'http://vitejs.dev');
|
|
60456
|
+
return `${pathname}?${queryToInject}${search ? `&` + search.slice(1) : ''}${hash || ''}`;
|
|
60457
|
+
}
|
|
60059
60458
|
|
|
60060
60459
|
// ids in transform are normalized to unix style
|
|
60061
60460
|
const normalizedClientEntry = normalizePath$3(CLIENT_ENTRY);
|
|
@@ -60234,324 +60633,6 @@ const wasmFallbackPlugin = () => {
|
|
|
60234
60633
|
};
|
|
60235
60634
|
};
|
|
60236
60635
|
|
|
60237
|
-
const WORKER_FILE_ID = 'worker_file';
|
|
60238
|
-
const workerCache = new WeakMap();
|
|
60239
|
-
function saveEmitWorkerAsset(config, asset) {
|
|
60240
|
-
const fileName = asset.fileName;
|
|
60241
|
-
const workerMap = workerCache.get(config.mainConfig || config);
|
|
60242
|
-
workerMap.assets.set(fileName, asset);
|
|
60243
|
-
}
|
|
60244
|
-
async function bundleWorkerEntry(config, id, query) {
|
|
60245
|
-
// bundle the file as entry to support imports
|
|
60246
|
-
const { rollup } = await import('rollup');
|
|
60247
|
-
const { plugins, rollupOptions, format } = config.worker;
|
|
60248
|
-
const bundle = await rollup({
|
|
60249
|
-
...rollupOptions,
|
|
60250
|
-
input: cleanUrl(id),
|
|
60251
|
-
plugins: await plugins(),
|
|
60252
|
-
onwarn(warning, warn) {
|
|
60253
|
-
onRollupWarning(warning, warn, config);
|
|
60254
|
-
},
|
|
60255
|
-
preserveEntrySignatures: false,
|
|
60256
|
-
});
|
|
60257
|
-
let chunk;
|
|
60258
|
-
try {
|
|
60259
|
-
const workerOutputConfig = config.worker.rollupOptions.output;
|
|
60260
|
-
const workerConfig = workerOutputConfig
|
|
60261
|
-
? Array.isArray(workerOutputConfig)
|
|
60262
|
-
? workerOutputConfig[0] || {}
|
|
60263
|
-
: workerOutputConfig
|
|
60264
|
-
: {};
|
|
60265
|
-
const { output: [outputChunk, ...outputChunks], } = await bundle.generate({
|
|
60266
|
-
entryFileNames: path$o.posix.join(config.build.assetsDir, '[name]-[hash].js'),
|
|
60267
|
-
chunkFileNames: path$o.posix.join(config.build.assetsDir, '[name]-[hash].js'),
|
|
60268
|
-
assetFileNames: path$o.posix.join(config.build.assetsDir, '[name]-[hash].[ext]'),
|
|
60269
|
-
...workerConfig,
|
|
60270
|
-
format,
|
|
60271
|
-
sourcemap: config.build.sourcemap,
|
|
60272
|
-
});
|
|
60273
|
-
chunk = outputChunk;
|
|
60274
|
-
outputChunks.forEach((outputChunk) => {
|
|
60275
|
-
if (outputChunk.type === 'asset') {
|
|
60276
|
-
saveEmitWorkerAsset(config, outputChunk);
|
|
60277
|
-
}
|
|
60278
|
-
else if (outputChunk.type === 'chunk') {
|
|
60279
|
-
saveEmitWorkerAsset(config, {
|
|
60280
|
-
fileName: outputChunk.fileName,
|
|
60281
|
-
source: outputChunk.code,
|
|
60282
|
-
type: 'asset',
|
|
60283
|
-
});
|
|
60284
|
-
}
|
|
60285
|
-
});
|
|
60286
|
-
}
|
|
60287
|
-
finally {
|
|
60288
|
-
await bundle.close();
|
|
60289
|
-
}
|
|
60290
|
-
return emitSourcemapForWorkerEntry(config, query, chunk);
|
|
60291
|
-
}
|
|
60292
|
-
function emitSourcemapForWorkerEntry(config, query, chunk) {
|
|
60293
|
-
const { map: sourcemap } = chunk;
|
|
60294
|
-
if (sourcemap) {
|
|
60295
|
-
if (config.build.sourcemap === 'hidden' ||
|
|
60296
|
-
config.build.sourcemap === true) {
|
|
60297
|
-
const data = sourcemap.toString();
|
|
60298
|
-
const mapFileName = chunk.fileName + '.map';
|
|
60299
|
-
saveEmitWorkerAsset(config, {
|
|
60300
|
-
fileName: mapFileName,
|
|
60301
|
-
type: 'asset',
|
|
60302
|
-
source: data,
|
|
60303
|
-
});
|
|
60304
|
-
}
|
|
60305
|
-
}
|
|
60306
|
-
return chunk;
|
|
60307
|
-
}
|
|
60308
|
-
const workerAssetUrlRE = /__VITE_WORKER_ASSET__([a-z\d]{8})__/g;
|
|
60309
|
-
function encodeWorkerAssetFileName(fileName, workerCache) {
|
|
60310
|
-
const { fileNameHash } = workerCache;
|
|
60311
|
-
const hash = getHash(fileName);
|
|
60312
|
-
if (!fileNameHash.get(hash)) {
|
|
60313
|
-
fileNameHash.set(hash, fileName);
|
|
60314
|
-
}
|
|
60315
|
-
return `__VITE_WORKER_ASSET__${hash}__`;
|
|
60316
|
-
}
|
|
60317
|
-
async function workerFileToUrl(config, id, query) {
|
|
60318
|
-
const workerMap = workerCache.get(config.mainConfig || config);
|
|
60319
|
-
let fileName = workerMap.bundle.get(id);
|
|
60320
|
-
if (!fileName) {
|
|
60321
|
-
const outputChunk = await bundleWorkerEntry(config, id, query);
|
|
60322
|
-
fileName = outputChunk.fileName;
|
|
60323
|
-
saveEmitWorkerAsset(config, {
|
|
60324
|
-
fileName,
|
|
60325
|
-
source: outputChunk.code,
|
|
60326
|
-
type: 'asset',
|
|
60327
|
-
});
|
|
60328
|
-
workerMap.bundle.set(id, fileName);
|
|
60329
|
-
}
|
|
60330
|
-
return encodeWorkerAssetFileName(fileName, workerMap);
|
|
60331
|
-
}
|
|
60332
|
-
function webWorkerPostPlugin() {
|
|
60333
|
-
return {
|
|
60334
|
-
name: 'vite:worker-post',
|
|
60335
|
-
resolveImportMeta(property, { chunkId, format }) {
|
|
60336
|
-
// document is undefined in the worker, so we need to avoid it in iife
|
|
60337
|
-
if (property === 'url' && format === 'iife') {
|
|
60338
|
-
return 'self.location.href';
|
|
60339
|
-
}
|
|
60340
|
-
return null;
|
|
60341
|
-
},
|
|
60342
|
-
};
|
|
60343
|
-
}
|
|
60344
|
-
function webWorkerPlugin(config) {
|
|
60345
|
-
const isBuild = config.command === 'build';
|
|
60346
|
-
let server;
|
|
60347
|
-
const isWorker = config.isWorker;
|
|
60348
|
-
const isWorkerQueryId = (id) => {
|
|
60349
|
-
const parsedQuery = parseRequest(id);
|
|
60350
|
-
if (parsedQuery &&
|
|
60351
|
-
(parsedQuery.worker ?? parsedQuery.sharedworker) != null) {
|
|
60352
|
-
return true;
|
|
60353
|
-
}
|
|
60354
|
-
return false;
|
|
60355
|
-
};
|
|
60356
|
-
return {
|
|
60357
|
-
name: 'vite:worker',
|
|
60358
|
-
configureServer(_server) {
|
|
60359
|
-
server = _server;
|
|
60360
|
-
},
|
|
60361
|
-
buildStart() {
|
|
60362
|
-
if (isWorker) {
|
|
60363
|
-
return;
|
|
60364
|
-
}
|
|
60365
|
-
workerCache.set(config, {
|
|
60366
|
-
assets: new Map(),
|
|
60367
|
-
bundle: new Map(),
|
|
60368
|
-
fileNameHash: new Map(),
|
|
60369
|
-
});
|
|
60370
|
-
},
|
|
60371
|
-
load(id) {
|
|
60372
|
-
if (isBuild && isWorkerQueryId(id)) {
|
|
60373
|
-
return '';
|
|
60374
|
-
}
|
|
60375
|
-
},
|
|
60376
|
-
shouldTransformCachedModule({ id }) {
|
|
60377
|
-
if (isBuild && config.build.watch && isWorkerQueryId(id)) {
|
|
60378
|
-
return true;
|
|
60379
|
-
}
|
|
60380
|
-
},
|
|
60381
|
-
async transform(raw, id, options) {
|
|
60382
|
-
const ssr = options?.ssr === true;
|
|
60383
|
-
const query = parseRequest(id);
|
|
60384
|
-
if (query && query[WORKER_FILE_ID] != null) {
|
|
60385
|
-
// if import worker by worker constructor will have query.type
|
|
60386
|
-
// other type will be import worker by esm
|
|
60387
|
-
const workerType = query['type'];
|
|
60388
|
-
let injectEnv = '';
|
|
60389
|
-
const scriptPath = JSON.stringify(path$o.posix.join(config.base, ENV_PUBLIC_PATH));
|
|
60390
|
-
if (workerType === 'classic') {
|
|
60391
|
-
injectEnv = `importScripts(${scriptPath})\n`;
|
|
60392
|
-
}
|
|
60393
|
-
else if (workerType === 'module') {
|
|
60394
|
-
injectEnv = `import ${scriptPath}\n`;
|
|
60395
|
-
}
|
|
60396
|
-
else if (workerType === 'ignore') {
|
|
60397
|
-
if (isBuild) {
|
|
60398
|
-
injectEnv = '';
|
|
60399
|
-
}
|
|
60400
|
-
else if (server) {
|
|
60401
|
-
// dynamic worker type we can't know how import the env
|
|
60402
|
-
// so we copy /@vite/env code of server transform result into file header
|
|
60403
|
-
const { moduleGraph } = server;
|
|
60404
|
-
const module = moduleGraph.getModuleById(ENV_ENTRY);
|
|
60405
|
-
injectEnv = module?.transformResult?.code || '';
|
|
60406
|
-
}
|
|
60407
|
-
}
|
|
60408
|
-
if (injectEnv) {
|
|
60409
|
-
const s = new MagicString(raw);
|
|
60410
|
-
s.prepend(injectEnv);
|
|
60411
|
-
return {
|
|
60412
|
-
code: s.toString(),
|
|
60413
|
-
map: s.generateMap({ hires: 'boundary' }),
|
|
60414
|
-
};
|
|
60415
|
-
}
|
|
60416
|
-
return;
|
|
60417
|
-
}
|
|
60418
|
-
if (query == null ||
|
|
60419
|
-
(query && (query.worker ?? query.sharedworker) == null)) {
|
|
60420
|
-
return;
|
|
60421
|
-
}
|
|
60422
|
-
// stringified url or `new URL(...)`
|
|
60423
|
-
let url;
|
|
60424
|
-
const { format } = config.worker;
|
|
60425
|
-
const workerConstructor = query.sharedworker != null ? 'SharedWorker' : 'Worker';
|
|
60426
|
-
const workerType = isBuild
|
|
60427
|
-
? format === 'es'
|
|
60428
|
-
? 'module'
|
|
60429
|
-
: 'classic'
|
|
60430
|
-
: 'module';
|
|
60431
|
-
const workerTypeOption = `{
|
|
60432
|
-
${workerType === 'module' ? `type: "module",` : ''}
|
|
60433
|
-
name: options?.name
|
|
60434
|
-
}`;
|
|
60435
|
-
if (isBuild) {
|
|
60436
|
-
getDepsOptimizer(config, ssr)?.registerWorkersSource(id);
|
|
60437
|
-
if (query.inline != null) {
|
|
60438
|
-
const chunk = await bundleWorkerEntry(config, id, query);
|
|
60439
|
-
const encodedJs = `const encodedJs = "${Buffer.from(chunk.code).toString('base64')}";`;
|
|
60440
|
-
const code =
|
|
60441
|
-
// Using blob URL for SharedWorker results in multiple instances of a same worker
|
|
60442
|
-
workerConstructor === 'Worker'
|
|
60443
|
-
? `${encodedJs}
|
|
60444
|
-
const blob = typeof window !== "undefined" && window.Blob && new Blob([${workerType === 'classic'
|
|
60445
|
-
? ''
|
|
60446
|
-
: // `URL` is always available, in `Worker[type="module"]`
|
|
60447
|
-
`'URL.revokeObjectURL(import.meta.url);'+`}atob(encodedJs)], { type: "text/javascript;charset=utf-8" });
|
|
60448
|
-
export default function WorkerWrapper(options) {
|
|
60449
|
-
let objURL;
|
|
60450
|
-
try {
|
|
60451
|
-
objURL = blob && (window.URL || window.webkitURL).createObjectURL(blob);
|
|
60452
|
-
if (!objURL) throw ''
|
|
60453
|
-
const worker = new ${workerConstructor}(objURL, ${workerTypeOption});
|
|
60454
|
-
worker.addEventListener("error", () => {
|
|
60455
|
-
(window.URL || window.webkitURL).revokeObjectURL(objURL);
|
|
60456
|
-
});
|
|
60457
|
-
return worker;
|
|
60458
|
-
} catch(e) {
|
|
60459
|
-
return new ${workerConstructor}(
|
|
60460
|
-
"data:application/javascript;base64," + encodedJs,
|
|
60461
|
-
${workerTypeOption}
|
|
60462
|
-
);
|
|
60463
|
-
}${
|
|
60464
|
-
// For module workers, we should not revoke the URL until the worker runs,
|
|
60465
|
-
// otherwise the worker fails to run
|
|
60466
|
-
workerType === 'classic'
|
|
60467
|
-
? ` finally {
|
|
60468
|
-
objURL && (window.URL || window.webkitURL).revokeObjectURL(objURL);
|
|
60469
|
-
}`
|
|
60470
|
-
: ''}
|
|
60471
|
-
}`
|
|
60472
|
-
: `${encodedJs}
|
|
60473
|
-
export default function WorkerWrapper(options) {
|
|
60474
|
-
return new ${workerConstructor}(
|
|
60475
|
-
"data:application/javascript;base64," + encodedJs,
|
|
60476
|
-
${workerTypeOption}
|
|
60477
|
-
);
|
|
60478
|
-
}
|
|
60479
|
-
`;
|
|
60480
|
-
return {
|
|
60481
|
-
code,
|
|
60482
|
-
// Empty sourcemap to suppress Rollup warning
|
|
60483
|
-
map: { mappings: '' },
|
|
60484
|
-
};
|
|
60485
|
-
}
|
|
60486
|
-
else {
|
|
60487
|
-
url = await workerFileToUrl(config, id, query);
|
|
60488
|
-
}
|
|
60489
|
-
}
|
|
60490
|
-
else {
|
|
60491
|
-
url = await fileToUrl$1(cleanUrl(id), config, this);
|
|
60492
|
-
url = injectQuery(url, WORKER_FILE_ID);
|
|
60493
|
-
url = injectQuery(url, `type=${workerType}`);
|
|
60494
|
-
}
|
|
60495
|
-
if (query.url != null) {
|
|
60496
|
-
return {
|
|
60497
|
-
code: `export default ${JSON.stringify(url)}`,
|
|
60498
|
-
map: { mappings: '' }, // Empty sourcemap to suppress Rollup warning
|
|
60499
|
-
};
|
|
60500
|
-
}
|
|
60501
|
-
return {
|
|
60502
|
-
code: `export default function WorkerWrapper(options) {
|
|
60503
|
-
return new ${workerConstructor}(
|
|
60504
|
-
${JSON.stringify(url)},
|
|
60505
|
-
${workerTypeOption}
|
|
60506
|
-
);
|
|
60507
|
-
}`,
|
|
60508
|
-
map: { mappings: '' }, // Empty sourcemap to suppress Rollup warning
|
|
60509
|
-
};
|
|
60510
|
-
},
|
|
60511
|
-
renderChunk(code, chunk, outputOptions) {
|
|
60512
|
-
let s;
|
|
60513
|
-
const result = () => {
|
|
60514
|
-
return (s && {
|
|
60515
|
-
code: s.toString(),
|
|
60516
|
-
map: config.build.sourcemap
|
|
60517
|
-
? s.generateMap({ hires: 'boundary' })
|
|
60518
|
-
: null,
|
|
60519
|
-
});
|
|
60520
|
-
};
|
|
60521
|
-
if (code.match(workerAssetUrlRE)) {
|
|
60522
|
-
const toRelativeRuntime = createToImportMetaURLBasedRelativeRuntime(outputOptions.format, config.isWorker);
|
|
60523
|
-
let match;
|
|
60524
|
-
s = new MagicString(code);
|
|
60525
|
-
workerAssetUrlRE.lastIndex = 0;
|
|
60526
|
-
// Replace "__VITE_WORKER_ASSET__5aa0ddc0__" using relative paths
|
|
60527
|
-
const workerMap = workerCache.get(config.mainConfig || config);
|
|
60528
|
-
const { fileNameHash } = workerMap;
|
|
60529
|
-
while ((match = workerAssetUrlRE.exec(code))) {
|
|
60530
|
-
const [full, hash] = match;
|
|
60531
|
-
const filename = fileNameHash.get(hash);
|
|
60532
|
-
const replacement = toOutputFilePathInJS(filename, 'asset', chunk.fileName, 'js', config, toRelativeRuntime);
|
|
60533
|
-
const replacementString = typeof replacement === 'string'
|
|
60534
|
-
? JSON.stringify(replacement).slice(1, -1)
|
|
60535
|
-
: `"+${replacement.runtime}+"`;
|
|
60536
|
-
s.update(match.index, match.index + full.length, replacementString);
|
|
60537
|
-
}
|
|
60538
|
-
}
|
|
60539
|
-
return result();
|
|
60540
|
-
},
|
|
60541
|
-
generateBundle(opts) {
|
|
60542
|
-
// @ts-expect-error asset emits are skipped in legacy bundle
|
|
60543
|
-
if (opts.__vite_skip_asset_emit__ || isWorker) {
|
|
60544
|
-
return;
|
|
60545
|
-
}
|
|
60546
|
-
const workerMap = workerCache.get(config);
|
|
60547
|
-
workerMap.assets.forEach((asset) => {
|
|
60548
|
-
this.emitFile(asset);
|
|
60549
|
-
workerMap.assets.delete(asset.fileName);
|
|
60550
|
-
});
|
|
60551
|
-
},
|
|
60552
|
-
};
|
|
60553
|
-
}
|
|
60554
|
-
|
|
60555
60636
|
/**
|
|
60556
60637
|
* A plugin to avoid an aliased AND optimized dep from being aliased in src
|
|
60557
60638
|
*/
|
|
@@ -61225,13 +61306,7 @@ function dynamicImportVarsPlugin(config) {
|
|
|
61225
61306
|
s ||= new MagicString(source);
|
|
61226
61307
|
let result;
|
|
61227
61308
|
try {
|
|
61228
|
-
|
|
61229
|
-
// until the closing parenthesis, instead of the closing backtick.
|
|
61230
|
-
// There may be inline comments between the backtick and the closing
|
|
61231
|
-
// parenthesis, so we manually remove them for now.
|
|
61232
|
-
// See https://github.com/guybedford/es-module-lexer/issues/118
|
|
61233
|
-
const importSource = removeComments(source.slice(start, end)).trim();
|
|
61234
|
-
result = await transformDynamicImport(importSource, importer, resolve, config.root);
|
|
61309
|
+
result = await transformDynamicImport(source.slice(start, end), importer, resolve, config.root);
|
|
61235
61310
|
}
|
|
61236
61311
|
catch (error) {
|
|
61237
61312
|
if (warnOnError) {
|
|
@@ -61860,6 +61935,9 @@ async function createPluginContainer(config, moduleGraph, watcher) {
|
|
|
61860
61935
|
return result;
|
|
61861
61936
|
}
|
|
61862
61937
|
}
|
|
61938
|
+
watchFiles.add(id);
|
|
61939
|
+
if (watcher)
|
|
61940
|
+
ensureWatchedFile(watcher, id, root);
|
|
61863
61941
|
return null;
|
|
61864
61942
|
},
|
|
61865
61943
|
async transform(code, id, options) {
|
|
@@ -61922,9 +62000,6 @@ async function createPluginContainer(config, moduleGraph, watcher) {
|
|
|
61922
62000
|
await hookParallel('buildEnd', () => ctx, () => []);
|
|
61923
62001
|
await hookParallel('closeBundle', () => ctx, () => []);
|
|
61924
62002
|
},
|
|
61925
|
-
[ASYNC_DISPOSE]() {
|
|
61926
|
-
return this.close();
|
|
61927
|
-
},
|
|
61928
62003
|
};
|
|
61929
62004
|
return container;
|
|
61930
62005
|
}
|
|
@@ -62638,9 +62713,6 @@ async function createDepsOptimizer(config, server) {
|
|
|
62638
62713
|
resetRegisteredIds,
|
|
62639
62714
|
ensureFirstRun,
|
|
62640
62715
|
close,
|
|
62641
|
-
[ASYNC_DISPOSE]() {
|
|
62642
|
-
return this.close();
|
|
62643
|
-
},
|
|
62644
62716
|
options: getDepOptimizationConfig(config, ssr),
|
|
62645
62717
|
};
|
|
62646
62718
|
depsOptimizerMap.set(config, depsOptimizer);
|
|
@@ -63175,7 +63247,6 @@ async function createDevSsrDepsOptimizer(config) {
|
|
|
63175
63247
|
resetRegisteredIds: () => { },
|
|
63176
63248
|
ensureFirstRun: () => { },
|
|
63177
63249
|
close: async () => { },
|
|
63178
|
-
[ASYNC_DISPOSE]: async () => { },
|
|
63179
63250
|
options: config.ssr.optimizeDeps,
|
|
63180
63251
|
};
|
|
63181
63252
|
devSsrDepsOptimizerMap.set(config, depsOptimizer);
|
|
@@ -64191,7 +64262,8 @@ function buildImportAnalysisPlugin(config) {
|
|
|
64191
64262
|
try {
|
|
64192
64263
|
imports = parse$e(source)[0];
|
|
64193
64264
|
}
|
|
64194
|
-
catch (
|
|
64265
|
+
catch (_e) {
|
|
64266
|
+
const e = _e;
|
|
64195
64267
|
const { message, showCodeFrame } = createParseErrorInfo(importer, source);
|
|
64196
64268
|
this.error(message, showCodeFrame ? e.idx : undefined);
|
|
64197
64269
|
}
|
|
@@ -64580,7 +64652,8 @@ function ssrManifestPlugin(config) {
|
|
|
64580
64652
|
try {
|
|
64581
64653
|
imports = parse$e(code)[0].filter((i) => i.n && i.d > -1);
|
|
64582
64654
|
}
|
|
64583
|
-
catch (
|
|
64655
|
+
catch (_e) {
|
|
64656
|
+
const e = _e;
|
|
64584
64657
|
const loc = numberToPos(code, e.idx);
|
|
64585
64658
|
this.error({
|
|
64586
64659
|
name: e.name,
|
|
@@ -64830,6 +64903,16 @@ async function build(inlineConfig = {}) {
|
|
|
64830
64903
|
throw new Error(`rollupOptions.input should not be an html file when building for SSR. ` +
|
|
64831
64904
|
`Please specify a dedicated SSR entry.`);
|
|
64832
64905
|
}
|
|
64906
|
+
if (config.build.cssCodeSplit === false) {
|
|
64907
|
+
const inputs = typeof input === 'string'
|
|
64908
|
+
? [input]
|
|
64909
|
+
: Array.isArray(input)
|
|
64910
|
+
? input
|
|
64911
|
+
: Object.values(input);
|
|
64912
|
+
if (inputs.some((input) => input.endsWith('.css'))) {
|
|
64913
|
+
throw new Error(`When "build.cssCodeSplit: false" is set, "rollupOptions.input" should not include CSS files.`);
|
|
64914
|
+
}
|
|
64915
|
+
}
|
|
64833
64916
|
const outDir = resolve(options.outDir);
|
|
64834
64917
|
// inject ssr arg to plugin load/transform hooks
|
|
64835
64918
|
const plugins = (ssr ? config.plugins.map((p) => injectSsrFlagToHooks(p)) : config.plugins);
|
|
@@ -64859,6 +64942,7 @@ async function build(inlineConfig = {}) {
|
|
|
64859
64942
|
if (e.frame) {
|
|
64860
64943
|
msg += `\n` + colors$1.yellow(e.frame);
|
|
64861
64944
|
}
|
|
64945
|
+
clearLine();
|
|
64862
64946
|
config.logger.error(msg, { error: e });
|
|
64863
64947
|
};
|
|
64864
64948
|
let bundle;
|
|
@@ -64870,6 +64954,14 @@ async function build(inlineConfig = {}) {
|
|
|
64870
64954
|
`This is deprecated and will override all Vite.js default output options. ` +
|
|
64871
64955
|
`Please use "rollupOptions.output" instead.`);
|
|
64872
64956
|
}
|
|
64957
|
+
if (output.file) {
|
|
64958
|
+
throw new Error(`Vite does not support "rollupOptions.output.file". ` +
|
|
64959
|
+
`Please use "rollupOptions.output.dir" and "rollupOptions.output.entryFileNames" instead.`);
|
|
64960
|
+
}
|
|
64961
|
+
if (output.sourcemap) {
|
|
64962
|
+
config.logger.warnOnce(colors$1.yellow(`Vite does not support "rollupOptions.output.sourcemap". ` +
|
|
64963
|
+
`Please use "build.sourcemap" instead.`));
|
|
64964
|
+
}
|
|
64873
64965
|
const ssrNodeBuild = ssr && config.ssr.target === 'node';
|
|
64874
64966
|
const ssrWorkerBuild = ssr && config.ssr.target === 'webworker';
|
|
64875
64967
|
const format = output.format || 'es';
|
|
@@ -65072,6 +65164,13 @@ const dynamicImportWarningIgnoreList = [
|
|
|
65072
65164
|
`Unsupported expression`,
|
|
65073
65165
|
`statically analyzed`,
|
|
65074
65166
|
];
|
|
65167
|
+
function clearLine() {
|
|
65168
|
+
const tty = process.stdout.isTTY && !process.env.CI;
|
|
65169
|
+
if (tty) {
|
|
65170
|
+
process.stdout.clearLine(0);
|
|
65171
|
+
process.stdout.cursorTo(0);
|
|
65172
|
+
}
|
|
65173
|
+
}
|
|
65075
65174
|
function onRollupWarning(warning, warn, config) {
|
|
65076
65175
|
const viteWarn = (warnLog) => {
|
|
65077
65176
|
let warning;
|
|
@@ -65109,11 +65208,7 @@ function onRollupWarning(warning, warn, config) {
|
|
|
65109
65208
|
}
|
|
65110
65209
|
warn(warnLog);
|
|
65111
65210
|
};
|
|
65112
|
-
|
|
65113
|
-
if (tty) {
|
|
65114
|
-
process.stdout.clearLine(0);
|
|
65115
|
-
process.stdout.cursorTo(0);
|
|
65116
|
-
}
|
|
65211
|
+
clearLine();
|
|
65117
65212
|
const userOnWarn = config.build.rollupOptions?.onwarn;
|
|
65118
65213
|
if (userOnWarn) {
|
|
65119
65214
|
userOnWarn(warning, viteWarn);
|