mirror of https://github.com/webpack/webpack.git
Compare commits
10 Commits
c1cb82f508
...
548d26aeda
Author | SHA1 | Date |
---|---|---|
|
548d26aeda | |
|
e1afcd4cc2 | |
|
3da32d7100 | |
|
fc945e88f7 | |
|
81a41850e0 | |
|
a570a65384 | |
|
d93b3eb1f1 | |
|
d45073a2b3 | |
|
568bb1d789 | |
|
11144e4eec |
|
@ -284,6 +284,7 @@
|
||||||
"url's",
|
"url's",
|
||||||
"valign",
|
"valign",
|
||||||
"valtype",
|
"valtype",
|
||||||
|
"walltime",
|
||||||
"wasi",
|
"wasi",
|
||||||
"wasm",
|
"wasm",
|
||||||
"watchings",
|
"watchings",
|
||||||
|
@ -304,7 +305,6 @@
|
||||||
"commithash",
|
"commithash",
|
||||||
"formaters",
|
"formaters",
|
||||||
"akait",
|
"akait",
|
||||||
"Akait",
|
|
||||||
"evenstensberg",
|
"evenstensberg",
|
||||||
"Stensberg",
|
"Stensberg",
|
||||||
"ovflowd",
|
"ovflowd",
|
||||||
|
@ -314,7 +314,8 @@
|
||||||
"Kumar",
|
"Kumar",
|
||||||
"spacek",
|
"spacek",
|
||||||
"thelarkinn",
|
"thelarkinn",
|
||||||
"behaviour"
|
"behaviour",
|
||||||
|
"WHATWG"
|
||||||
],
|
],
|
||||||
"ignoreRegExpList": [
|
"ignoreRegExpList": [
|
||||||
"/Author.+/",
|
"/Author.+/",
|
||||||
|
|
|
@ -114,6 +114,7 @@ const {
|
||||||
/** @typedef {import("./ModuleTypeConstants").ASSET_MODULE_TYPE_INLINE} ASSET_MODULE_TYPE_INLINE */
|
/** @typedef {import("./ModuleTypeConstants").ASSET_MODULE_TYPE_INLINE} ASSET_MODULE_TYPE_INLINE */
|
||||||
/** @typedef {import("./ModuleTypeConstants").ASSET_MODULE_TYPE_RESOURCE} ASSET_MODULE_TYPE_RESOURCE */
|
/** @typedef {import("./ModuleTypeConstants").ASSET_MODULE_TYPE_RESOURCE} ASSET_MODULE_TYPE_RESOURCE */
|
||||||
/** @typedef {import("./ModuleTypeConstants").ASSET_MODULE_TYPE_SOURCE} ASSET_MODULE_TYPE_SOURCE */
|
/** @typedef {import("./ModuleTypeConstants").ASSET_MODULE_TYPE_SOURCE} ASSET_MODULE_TYPE_SOURCE */
|
||||||
|
/** @typedef {import("./ModuleTypeConstants").ASSET_MODULE_TYPE_BYTES} ASSET_MODULE_TYPE_BYTES */
|
||||||
/** @typedef {import("./ModuleTypeConstants").WEBASSEMBLY_MODULE_TYPE_ASYNC} WEBASSEMBLY_MODULE_TYPE_ASYNC */
|
/** @typedef {import("./ModuleTypeConstants").WEBASSEMBLY_MODULE_TYPE_ASYNC} WEBASSEMBLY_MODULE_TYPE_ASYNC */
|
||||||
/** @typedef {import("./ModuleTypeConstants").WEBASSEMBLY_MODULE_TYPE_SYNC} WEBASSEMBLY_MODULE_TYPE_SYNC */
|
/** @typedef {import("./ModuleTypeConstants").WEBASSEMBLY_MODULE_TYPE_SYNC} WEBASSEMBLY_MODULE_TYPE_SYNC */
|
||||||
/** @typedef {import("./ModuleTypeConstants").CSS_MODULE_TYPE} CSS_MODULE_TYPE */
|
/** @typedef {import("./ModuleTypeConstants").CSS_MODULE_TYPE} CSS_MODULE_TYPE */
|
||||||
|
@ -268,6 +269,76 @@ const ruleSetCompiler = new RuleSetCompiler([
|
||||||
new UseEffectRulePlugin()
|
new UseEffectRulePlugin()
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
/** @typedef {import("./javascript/JavascriptParser")} JavascriptParser */
|
||||||
|
/** @typedef {import("../declarations/WebpackOptions").JavascriptParserOptions} JavascriptParserOptions */
|
||||||
|
/** @typedef {import("./javascript/JavascriptGenerator")} JavascriptGenerator */
|
||||||
|
/** @typedef {import("../declarations/WebpackOptions").EmptyGeneratorOptions} EmptyGeneratorOptions */
|
||||||
|
|
||||||
|
/** @typedef {import("./json/JsonParser")} JsonParser */
|
||||||
|
/** @typedef {import("../declarations/WebpackOptions").JsonParserOptions} JsonParserOptions */
|
||||||
|
/** @typedef {import("./json/JsonGenerator")} JsonGenerator */
|
||||||
|
/** @typedef {import("../declarations/WebpackOptions").JsonGeneratorOptions} JsonGeneratorOptions */
|
||||||
|
|
||||||
|
/** @typedef {import("./asset/AssetParser")} AssetParser */
|
||||||
|
/** @typedef {import("./asset/AssetSourceParser")} AssetSourceParser */
|
||||||
|
/** @typedef {import("./asset/AssetBytesParser")} AssetBytesParser */
|
||||||
|
/** @typedef {import("../declarations/WebpackOptions").AssetParserOptions} AssetParserOptions */
|
||||||
|
/** @typedef {import("../declarations/WebpackOptions").EmptyParserOptions} EmptyParserOptions */
|
||||||
|
/** @typedef {import("./asset/AssetGenerator")} AssetGenerator */
|
||||||
|
/** @typedef {import("../declarations/WebpackOptions").AssetGeneratorOptions} AssetGeneratorOptions */
|
||||||
|
/** @typedef {import("../declarations/WebpackOptions").AssetInlineGeneratorOptions} AssetInlineGeneratorOptions */
|
||||||
|
/** @typedef {import("../declarations/WebpackOptions").AssetResourceGeneratorOptions} AssetResourceGeneratorOptions */
|
||||||
|
/** @typedef {import("./asset/AssetSourceGenerator")} AssetSourceGenerator */
|
||||||
|
/** @typedef {import("./asset/AssetBytesGenerator")} AssetBytesGenerator */
|
||||||
|
|
||||||
|
/** @typedef {import("./wasm-async/AsyncWebAssemblyParser")} AsyncWebAssemblyParser */
|
||||||
|
/** @typedef {import("./wasm-sync/WebAssemblyParser")} WebAssemblyParser */
|
||||||
|
|
||||||
|
/** @typedef {import("./css/CssParser")} CssParser */
|
||||||
|
/** @typedef {import("../declarations/WebpackOptions").CssParserOptions} CssParserOptions */
|
||||||
|
/** @typedef {import("../declarations/WebpackOptions").CssAutoParserOptions} CssAutoParserOptions */
|
||||||
|
/** @typedef {import("../declarations/WebpackOptions").CssGlobalParserOptions} CssGlobalParserOptions */
|
||||||
|
/** @typedef {import("../declarations/WebpackOptions").CssModuleParserOptions} CssModuleParserOptions */
|
||||||
|
/** @typedef {import("./css/CssGenerator")} CssGenerator */
|
||||||
|
/** @typedef {import("../declarations/WebpackOptions").CssGeneratorOptions} CssGeneratorOptions */
|
||||||
|
/** @typedef {import("../declarations/WebpackOptions").CssGlobalGeneratorOptions} CssGlobalGeneratorOptions */
|
||||||
|
/** @typedef {import("../declarations/WebpackOptions").CssModuleGeneratorOptions} CssModuleGeneratorOptions */
|
||||||
|
/** @typedef {import("../declarations/WebpackOptions").CssAutoGeneratorOptions} CssAutoGeneratorOptions */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef {[
|
||||||
|
* [JAVASCRIPT_MODULE_TYPE_AUTO, JavascriptParser, JavascriptParserOptions, JavascriptGenerator, EmptyGeneratorOptions],
|
||||||
|
* [JAVASCRIPT_MODULE_TYPE_DYNAMIC, JavascriptParser, JavascriptParserOptions, JavascriptGenerator, EmptyGeneratorOptions],
|
||||||
|
* [JAVASCRIPT_MODULE_TYPE_ESM, JavascriptParser, JavascriptParserOptions, JavascriptGenerator, EmptyGeneratorOptions],
|
||||||
|
* [JSON_MODULE_TYPE, JsonParser, JsonParserOptions, JsonGenerator, JsonGeneratorOptions],
|
||||||
|
* [ASSET_MODULE_TYPE, AssetParser, AssetParserOptions, AssetGenerator, AssetGeneratorOptions],
|
||||||
|
* [ASSET_MODULE_TYPE_INLINE, AssetParser, EmptyParserOptions, AssetGenerator, AssetGeneratorOptions],
|
||||||
|
* [ASSET_MODULE_TYPE_RESOURCE, AssetParser, EmptyParserOptions, AssetGenerator, AssetGeneratorOptions],
|
||||||
|
* [ASSET_MODULE_TYPE_SOURCE, AssetSourceParser, EmptyParserOptions, AssetSourceGenerator, EmptyGeneratorOptions],
|
||||||
|
* [ASSET_MODULE_TYPE_BYTES, AssetBytesParser, EmptyParserOptions, AssetBytesGenerator, EmptyGeneratorOptions],
|
||||||
|
* [WEBASSEMBLY_MODULE_TYPE_ASYNC, AsyncWebAssemblyParser, EmptyParserOptions, Generator, EmptyParserOptions],
|
||||||
|
* [WEBASSEMBLY_MODULE_TYPE_SYNC, WebAssemblyParser, EmptyParserOptions, Generator, EmptyParserOptions],
|
||||||
|
* [CSS_MODULE_TYPE, CssParser, CssParserOptions, CssGenerator, CssGeneratorOptions],
|
||||||
|
* [CSS_MODULE_TYPE_AUTO, CssParser, CssAutoParserOptions, CssGenerator, CssAutoGeneratorOptions],
|
||||||
|
* [CSS_MODULE_TYPE_MODULE, CssParser, CssModuleParserOptions, CssGenerator, CssModuleGeneratorOptions],
|
||||||
|
* [CSS_MODULE_TYPE_GLOBAL, CssParser, CssGlobalParserOptions, CssGenerator, CssGlobalGeneratorOptions],
|
||||||
|
* [string, Parser, ParserOptions, Generator, GeneratorOptions],
|
||||||
|
* ]} ParsersAndGeneratorsByTypes
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @template {unknown[]} T
|
||||||
|
* @template {number[]} I
|
||||||
|
* @typedef {{ [K in keyof I]: K extends keyof I ? I[K] extends keyof T ? T[I[K]] : never : never }} ExtractTupleElements
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @template {unknown[]} T
|
||||||
|
* @template {number[]} A
|
||||||
|
* @template [R=void]
|
||||||
|
* @typedef {T extends [infer Head extends [string, ...unknown[]], ...infer Tail extends [string, ...unknown[]][]] ? Record<Head[0], SyncBailHook<ExtractTupleElements<Head, A>, R extends number ? Head[R] : R>> & RecordFactoryFromTuple<Tail, A, R> : unknown } RecordFactoryFromTuple
|
||||||
|
*/
|
||||||
|
|
||||||
class NormalModuleFactory extends ModuleFactory {
|
class NormalModuleFactory extends ModuleFactory {
|
||||||
/**
|
/**
|
||||||
* @param {object} param params
|
* @param {object} param params
|
||||||
|
@ -306,15 +377,15 @@ class NormalModuleFactory extends ModuleFactory {
|
||||||
createModule: new AsyncSeriesBailHook(["createData", "resolveData"]),
|
createModule: new AsyncSeriesBailHook(["createData", "resolveData"]),
|
||||||
/** @type {SyncWaterfallHook<[Module, CreateData, ResolveData]>} */
|
/** @type {SyncWaterfallHook<[Module, CreateData, ResolveData]>} */
|
||||||
module: new SyncWaterfallHook(["module", "createData", "resolveData"]),
|
module: new SyncWaterfallHook(["module", "createData", "resolveData"]),
|
||||||
/** @type {HookMap<SyncBailHook<[ParserOptions], Parser | void>>} */
|
/** @type {import("tapable").TypedHookMap<RecordFactoryFromTuple<ParsersAndGeneratorsByTypes, [2], 1>>} */
|
||||||
createParser: new HookMap(() => new SyncBailHook(["parserOptions"])),
|
createParser: new HookMap(() => new SyncBailHook(["parserOptions"])),
|
||||||
/** @type {HookMap<SyncBailHook<[EXPECTED_ANY, ParserOptions], void>>} */
|
/** @type {import("tapable").TypedHookMap<RecordFactoryFromTuple<ParsersAndGeneratorsByTypes, [1, 2]>>} */
|
||||||
parser: new HookMap(() => new SyncHook(["parser", "parserOptions"])),
|
parser: new HookMap(() => new SyncHook(["parser", "parserOptions"])),
|
||||||
/** @type {HookMap<SyncBailHook<[GeneratorOptions], Generator | void>>} */
|
/** @type {import("tapable").TypedHookMap<RecordFactoryFromTuple<ParsersAndGeneratorsByTypes, [4], 3>>} */
|
||||||
createGenerator: new HookMap(
|
createGenerator: new HookMap(
|
||||||
() => new SyncBailHook(["generatorOptions"])
|
() => new SyncBailHook(["generatorOptions"])
|
||||||
),
|
),
|
||||||
/** @type {HookMap<SyncBailHook<[EXPECTED_ANY, GeneratorOptions], void>>} */
|
/** @type {import("tapable").TypedHookMap<RecordFactoryFromTuple<ParsersAndGeneratorsByTypes, [3, 4]>>} */
|
||||||
generator: new HookMap(
|
generator: new HookMap(
|
||||||
() => new SyncHook(["generator", "generatorOptions"])
|
() => new SyncHook(["generator", "generatorOptions"])
|
||||||
),
|
),
|
||||||
|
|
|
@ -91,28 +91,6 @@ const resolve = (browsers) => {
|
||||||
const anyBrowser = browsers.some((b) => /^(?!node)/.test(b));
|
const anyBrowser = browsers.some((b) => /^(?!node)/.test(b));
|
||||||
const browserProperty = !anyBrowser ? false : anyNode ? null : true;
|
const browserProperty = !anyBrowser ? false : anyNode ? null : true;
|
||||||
const nodeProperty = !anyNode ? false : anyBrowser ? null : true;
|
const nodeProperty = !anyNode ? false : anyBrowser ? null : true;
|
||||||
// Internet Explorer Mobile, Blackberry browser and Opera Mini are very old browsers, they do not support new features
|
|
||||||
const es6DynamicImport = rawChecker({
|
|
||||||
/* eslint-disable camelcase */
|
|
||||||
chrome: 63,
|
|
||||||
and_chr: 63,
|
|
||||||
edge: 79,
|
|
||||||
firefox: 67,
|
|
||||||
and_ff: 67,
|
|
||||||
// ie: Not supported
|
|
||||||
opera: 50,
|
|
||||||
op_mob: 46,
|
|
||||||
safari: [11, 1],
|
|
||||||
ios_saf: [11, 3],
|
|
||||||
samsung: [8, 2],
|
|
||||||
android: 63,
|
|
||||||
and_qq: [10, 4],
|
|
||||||
baidu: [13, 18],
|
|
||||||
and_uc: [15, 5],
|
|
||||||
kaios: [3, 0],
|
|
||||||
node: [12, 17]
|
|
||||||
/* eslint-enable camelcase */
|
|
||||||
});
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
/* eslint-disable camelcase */
|
/* eslint-disable camelcase */
|
||||||
|
@ -175,9 +153,9 @@ const resolve = (browsers) => {
|
||||||
ios_saf: 7,
|
ios_saf: 7,
|
||||||
samsung: [3, 0],
|
samsung: [3, 0],
|
||||||
android: 38,
|
android: 38,
|
||||||
// and_qq: Unknown support
|
and_qq: [10, 4],
|
||||||
// baidu: Unknown support
|
// baidu: Unknown support
|
||||||
// and_uc: Unknown support
|
and_uc: [12, 12],
|
||||||
kaios: [3, 0],
|
kaios: [3, 0],
|
||||||
node: [0, 12]
|
node: [0, 12]
|
||||||
}),
|
}),
|
||||||
|
@ -194,9 +172,9 @@ const resolve = (browsers) => {
|
||||||
ios_saf: 8,
|
ios_saf: 8,
|
||||||
samsung: [5, 0],
|
samsung: [5, 0],
|
||||||
android: 49,
|
android: 49,
|
||||||
// and_qq: Unknown support
|
and_qq: [10, 4],
|
||||||
// baidu: Unknown support
|
// baidu: Unknown support
|
||||||
// and_uc: Unknown support
|
and_uc: [12, 12],
|
||||||
kaios: [2, 5],
|
kaios: [2, 5],
|
||||||
node: [6, 0]
|
node: [6, 0]
|
||||||
}),
|
}),
|
||||||
|
@ -240,8 +218,44 @@ const resolve = (browsers) => {
|
||||||
kaios: [3, 0],
|
kaios: [3, 0],
|
||||||
node: [12, 17]
|
node: [12, 17]
|
||||||
}),
|
}),
|
||||||
dynamicImport: es6DynamicImport,
|
dynamicImport: rawChecker({
|
||||||
dynamicImportInWorker: es6DynamicImport && !anyNode,
|
chrome: 63,
|
||||||
|
and_chr: 63,
|
||||||
|
edge: 79,
|
||||||
|
firefox: 67,
|
||||||
|
and_ff: 67,
|
||||||
|
// ie: Not supported
|
||||||
|
opera: 50,
|
||||||
|
op_mob: 46,
|
||||||
|
safari: [11, 1],
|
||||||
|
ios_saf: [11, 3],
|
||||||
|
samsung: [8, 2],
|
||||||
|
android: 63,
|
||||||
|
and_qq: [10, 4],
|
||||||
|
baidu: [13, 18],
|
||||||
|
and_uc: [15, 5],
|
||||||
|
kaios: [3, 0],
|
||||||
|
node: [12, 17]
|
||||||
|
}),
|
||||||
|
dynamicImportInWorker: rawChecker({
|
||||||
|
chrome: 80,
|
||||||
|
and_chr: 80,
|
||||||
|
edge: 80,
|
||||||
|
firefox: 114,
|
||||||
|
and_ff: 114,
|
||||||
|
// ie: Not supported
|
||||||
|
opera: 67,
|
||||||
|
op_mob: 57,
|
||||||
|
safari: [15, 0],
|
||||||
|
ios_saf: [15, 0],
|
||||||
|
samsung: [13, 0],
|
||||||
|
android: 80,
|
||||||
|
and_qq: [10, 4],
|
||||||
|
baidu: [13, 18],
|
||||||
|
and_uc: [15, 5],
|
||||||
|
kaios: [3, 0],
|
||||||
|
node: [12, 17]
|
||||||
|
}),
|
||||||
// browserslist does not have info about globalThis
|
// browserslist does not have info about globalThis
|
||||||
// so this is based on mdn-browser-compat-data
|
// so this is based on mdn-browser-compat-data
|
||||||
globalThis: rawChecker({
|
globalThis: rawChecker({
|
||||||
|
@ -257,9 +271,9 @@ const resolve = (browsers) => {
|
||||||
ios_saf: [12, 2],
|
ios_saf: [12, 2],
|
||||||
samsung: [10, 1],
|
samsung: [10, 1],
|
||||||
android: 71,
|
android: 71,
|
||||||
// and_qq: Unknown support
|
and_qq: [13, 1],
|
||||||
// baidu: Unknown support
|
// baidu: Unknown support
|
||||||
// and_uc: Unknown support
|
and_uc: [15, 5],
|
||||||
kaios: [3, 0],
|
kaios: [3, 0],
|
||||||
node: 12
|
node: 12
|
||||||
}),
|
}),
|
||||||
|
@ -276,9 +290,9 @@ const resolve = (browsers) => {
|
||||||
ios_saf: [13, 4],
|
ios_saf: [13, 4],
|
||||||
samsung: 13,
|
samsung: 13,
|
||||||
android: 80,
|
android: 80,
|
||||||
// and_qq: Not supported
|
and_qq: [13, 1],
|
||||||
// baidu: Not supported
|
// baidu: Not supported
|
||||||
// and_uc: Not supported
|
and_uc: [15, 5],
|
||||||
kaios: [3, 0],
|
kaios: [3, 0],
|
||||||
node: 14
|
node: 14
|
||||||
}),
|
}),
|
||||||
|
@ -314,9 +328,9 @@ const resolve = (browsers) => {
|
||||||
ios_saf: 11,
|
ios_saf: 11,
|
||||||
samsung: [6, 2],
|
samsung: [6, 2],
|
||||||
android: 55,
|
android: 55,
|
||||||
and_qq: [13, 1],
|
and_qq: [10, 4],
|
||||||
baidu: [13, 18],
|
baidu: [13, 18],
|
||||||
and_uc: [15, 5],
|
and_uc: [12, 12],
|
||||||
kaios: 3,
|
kaios: 3,
|
||||||
node: [7, 6]
|
node: [7, 6]
|
||||||
}),
|
}),
|
||||||
|
@ -332,7 +346,7 @@ const resolve = (browsers) => {
|
||||||
fetchWasm: browserProperty,
|
fetchWasm: browserProperty,
|
||||||
global: nodeProperty,
|
global: nodeProperty,
|
||||||
importScripts: false,
|
importScripts: false,
|
||||||
importScriptsInWorker: true,
|
importScriptsInWorker: Boolean(browserProperty),
|
||||||
nodeBuiltins: nodeProperty,
|
nodeBuiltins: nodeProperty,
|
||||||
nodePrefixForCoreModules:
|
nodePrefixForCoreModules:
|
||||||
nodeProperty &&
|
nodeProperty &&
|
||||||
|
|
|
@ -106,7 +106,7 @@ const BasicEvaluatedExpression = require("./BasicEvaluatedExpression");
|
||||||
/** @typedef {Set<DestructuringAssignmentProperty>} DestructuringAssignmentProperties */
|
/** @typedef {Set<DestructuringAssignmentProperty>} DestructuringAssignmentProperties */
|
||||||
|
|
||||||
// TODO remove cast when @types/estree has been updated to import assertions
|
// TODO remove cast when @types/estree has been updated to import assertions
|
||||||
/** @typedef {import("estree").ImportExpression & { options?: Expression | null, phase?: "defer" }} ImportExpression */
|
/** @typedef {import("estree").ImportExpression & { phase?: "defer" }} ImportExpression */
|
||||||
|
|
||||||
/** @type {string[]} */
|
/** @type {string[]} */
|
||||||
const EMPTY_ARRAY = [];
|
const EMPTY_ARRAY = [];
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
const memoize = require("./memoize");
|
const memoize = require("./memoize");
|
||||||
|
|
||||||
/** @typedef {import("schema-utils").Schema} Schema */
|
/** @typedef {import("schema-utils").Schema} Schema */
|
||||||
/** @typedef {import("schema-utils/declarations/validate").ValidationErrorConfiguration} ValidationErrorConfiguration */
|
/** @typedef {import("schema-utils").ValidationErrorConfiguration} ValidationErrorConfiguration */
|
||||||
|
|
||||||
const getValidate = memoize(() => require("schema-utils").validate);
|
const getValidate = memoize(() => require("schema-utils").validate);
|
||||||
|
|
||||||
|
|
|
@ -26,15 +26,6 @@ const decoderOpts = {
|
||||||
};
|
};
|
||||||
|
|
||||||
class WebAssemblyParser extends Parser {
|
class WebAssemblyParser extends Parser {
|
||||||
/**
|
|
||||||
* @param {{}=} options parser options
|
|
||||||
*/
|
|
||||||
constructor(options) {
|
|
||||||
super();
|
|
||||||
this.hooks = Object.freeze({});
|
|
||||||
this.options = options;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string | Buffer | PreparsedAst} source the source to parse
|
* @param {string | Buffer | PreparsedAst} source the source to parse
|
||||||
* @param {ParserState} state the parser state
|
* @param {ParserState} state the parser state
|
||||||
|
|
|
@ -63,15 +63,6 @@ const decoderOpts = {
|
||||||
};
|
};
|
||||||
|
|
||||||
class WebAssemblyParser extends Parser {
|
class WebAssemblyParser extends Parser {
|
||||||
/**
|
|
||||||
* @param {{}=} options parser options
|
|
||||||
*/
|
|
||||||
constructor(options) {
|
|
||||||
super();
|
|
||||||
this.hooks = Object.freeze({});
|
|
||||||
this.options = options;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string | Buffer | PreparsedAst} source the source to parse
|
* @param {string | Buffer | PreparsedAst} source the source to parse
|
||||||
* @param {ParserState} state the parser state
|
* @param {ParserState} state the parser state
|
||||||
|
|
|
@ -69,7 +69,7 @@ class JsonpChunkLoadingRuntimeModule extends RuntimeModule {
|
||||||
if (options && options.baseUri) {
|
if (options && options.baseUri) {
|
||||||
return `${RuntimeGlobals.baseURI} = ${JSON.stringify(options.baseUri)};`;
|
return `${RuntimeGlobals.baseURI} = ${JSON.stringify(options.baseUri)};`;
|
||||||
}
|
}
|
||||||
return `${RuntimeGlobals.baseURI} = (document && document.baseURI) || self.location.href;`;
|
return `${RuntimeGlobals.baseURI} = (typeof document !== 'undefined' && document.baseURI) || self.location.href;`;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -101,8 +101,8 @@
|
||||||
"loader-runner": "^4.2.0",
|
"loader-runner": "^4.2.0",
|
||||||
"mime-types": "^2.1.27",
|
"mime-types": "^2.1.27",
|
||||||
"neo-async": "^2.6.2",
|
"neo-async": "^2.6.2",
|
||||||
"schema-utils": "^4.3.2",
|
"schema-utils": "^4.3.3",
|
||||||
"tapable": "^2.2.3",
|
"tapable": "^2.3.0",
|
||||||
"terser-webpack-plugin": "^5.3.11",
|
"terser-webpack-plugin": "^5.3.11",
|
||||||
"watchpack": "^2.4.4",
|
"watchpack": "^2.4.4",
|
||||||
"webpack-sources": "^3.3.3"
|
"webpack-sources": "^3.3.3"
|
||||||
|
@ -110,7 +110,7 @@
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.27.1",
|
"@babel/core": "^7.27.1",
|
||||||
"@babel/preset-react": "^7.27.1",
|
"@babel/preset-react": "^7.27.1",
|
||||||
"@codspeed/core": "^4.0.1",
|
"@codspeed/core": "^5.0.1",
|
||||||
"@eslint/js": "^9.36.0",
|
"@eslint/js": "^9.36.0",
|
||||||
"@eslint/markdown": "^7.3.0",
|
"@eslint/markdown": "^7.3.0",
|
||||||
"@stylistic/eslint-plugin": "^5.4.0",
|
"@stylistic/eslint-plugin": "^5.4.0",
|
||||||
|
@ -184,7 +184,7 @@
|
||||||
"toml": "^3.0.0",
|
"toml": "^3.0.0",
|
||||||
"tooling": "webpack/tooling#v1.24.3",
|
"tooling": "webpack/tooling#v1.24.3",
|
||||||
"ts-loader": "^9.5.1",
|
"ts-loader": "^9.5.1",
|
||||||
"typescript": "^5.9.2",
|
"typescript": "^5.9.3",
|
||||||
"url-loader": "^4.1.0",
|
"url-loader": "^4.1.0",
|
||||||
"wast-loader": "^1.12.1",
|
"wast-loader": "^1.12.1",
|
||||||
"webassembly-feature": "1.3.0",
|
"webassembly-feature": "1.3.0",
|
||||||
|
|
|
@ -3,6 +3,15 @@ import fs from "fs/promises";
|
||||||
import { Session } from "inspector";
|
import { Session } from "inspector";
|
||||||
import path from "path";
|
import path from "path";
|
||||||
import { fileURLToPath, pathToFileURL } from "url";
|
import { fileURLToPath, pathToFileURL } from "url";
|
||||||
|
import {
|
||||||
|
InstrumentHooks,
|
||||||
|
getCodspeedRunnerMode,
|
||||||
|
getGitDir,
|
||||||
|
getV8Flags,
|
||||||
|
mongoMeasurement,
|
||||||
|
setupCore,
|
||||||
|
teardownCore
|
||||||
|
} from "@codspeed/core";
|
||||||
import { simpleGit } from "simple-git";
|
import { simpleGit } from "simple-git";
|
||||||
import { Bench, hrtimeNow } from "tinybench";
|
import { Bench, hrtimeNow } from "tinybench";
|
||||||
|
|
||||||
|
@ -12,32 +21,6 @@ const git = simpleGit(rootPath);
|
||||||
|
|
||||||
const REV_LIST_REGEXP = /^([a-f0-9]+)\s*([a-f0-9]+)\s*([a-f0-9]+)?\s*$/;
|
const REV_LIST_REGEXP = /^([a-f0-9]+)\s*([a-f0-9]+)\s*([a-f0-9]+)?\s*$/;
|
||||||
|
|
||||||
const getV8Flags = () => {
|
|
||||||
const nodeVersionMajor = Number.parseInt(
|
|
||||||
process.version.slice(1).split(".")[0],
|
|
||||||
10
|
|
||||||
);
|
|
||||||
const flags = [
|
|
||||||
"--hash-seed=1",
|
|
||||||
"--random-seed=1",
|
|
||||||
"--no-opt",
|
|
||||||
"--predictable",
|
|
||||||
"--predictable-gc-schedule",
|
|
||||||
"--interpreted-frames-native-stack",
|
|
||||||
"--allow-natives-syntax",
|
|
||||||
"--expose-gc",
|
|
||||||
"--no-concurrent-sweeping",
|
|
||||||
"--max-old-space-size=4096"
|
|
||||||
];
|
|
||||||
if (nodeVersionMajor < 18) {
|
|
||||||
flags.push("--no-randomize-hashes");
|
|
||||||
}
|
|
||||||
if (nodeVersionMajor < 20) {
|
|
||||||
flags.push("--no-scavenge-task");
|
|
||||||
}
|
|
||||||
return flags;
|
|
||||||
};
|
|
||||||
|
|
||||||
const checkV8Flags = () => {
|
const checkV8Flags = () => {
|
||||||
const requiredFlags = getV8Flags();
|
const requiredFlags = getV8Flags();
|
||||||
const actualFlags = process.execArgv;
|
const actualFlags = process.execArgv;
|
||||||
|
@ -248,6 +231,8 @@ for (const baselineInfo of baselineRevisions) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const baseOutputPath = path.join(__dirname, "js", "benchmark");
|
||||||
|
|
||||||
function buildConfiguration(
|
function buildConfiguration(
|
||||||
test,
|
test,
|
||||||
baseline,
|
baseline,
|
||||||
|
@ -385,105 +370,239 @@ const scenarios = [
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
const baseOutputPath = path.join(__dirname, "js", "benchmark");
|
function getStackTrace(belowFn) {
|
||||||
|
const oldLimit = Error.stackTraceLimit;
|
||||||
|
Error.stackTraceLimit = Infinity;
|
||||||
|
const dummyObject = {};
|
||||||
|
const v8Handler = Error.prepareStackTrace;
|
||||||
|
Error.prepareStackTrace = (dummyObject, v8StackTrace) => v8StackTrace;
|
||||||
|
Error.captureStackTrace(dummyObject, belowFn || getStackTrace);
|
||||||
|
const v8StackTrace = dummyObject.stack;
|
||||||
|
Error.prepareStackTrace = v8Handler;
|
||||||
|
Error.stackTraceLimit = oldLimit;
|
||||||
|
return v8StackTrace;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getCallingFile() {
|
||||||
|
const stack = getStackTrace();
|
||||||
|
let callingFile = stack[2].getFileName(); // [here, withCodSpeed, actual caller]
|
||||||
|
const gitDir = getGitDir(callingFile);
|
||||||
|
if (gitDir === undefined) {
|
||||||
|
throw new Error("Could not find a git repository");
|
||||||
|
}
|
||||||
|
if (callingFile.startsWith("file://")) {
|
||||||
|
callingFile = fileURLToPath(callingFile);
|
||||||
|
}
|
||||||
|
return path.relative(gitDir, callingFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
const taskUriMap = new WeakMap();
|
||||||
|
|
||||||
|
function getOrCreateUriMap(bench) {
|
||||||
|
let uriMap = taskUriMap.get(bench);
|
||||||
|
if (!uriMap) {
|
||||||
|
uriMap = new Map();
|
||||||
|
taskUriMap.set(bench, uriMap);
|
||||||
|
}
|
||||||
|
return uriMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getTaskUri(bench, taskName, rootCallingFile) {
|
||||||
|
const uriMap = taskUriMap.get(bench);
|
||||||
|
return uriMap?.get(taskName) || `${rootCallingFile}::${taskName}`;
|
||||||
|
}
|
||||||
|
|
||||||
const withCodSpeed = async (/** @type {import("tinybench").Bench} */ bench) => {
|
const withCodSpeed = async (/** @type {import("tinybench").Bench} */ bench) => {
|
||||||
const { Measurement, getGitDir, mongoMeasurement, setupCore, teardownCore } =
|
const codspeedRunnerMode = getCodspeedRunnerMode();
|
||||||
await import("@codspeed/core");
|
|
||||||
|
|
||||||
if (!Measurement.isInstrumented()) {
|
if (codspeedRunnerMode === "disabled") {
|
||||||
const rawRun = bench.run;
|
|
||||||
bench.run = async () => {
|
|
||||||
console.warn(
|
|
||||||
`[CodSpeed] ${bench.tasks.length} benches detected but no instrumentation found, falling back to tinybench`
|
|
||||||
);
|
|
||||||
return await rawRun.bind(bench)();
|
|
||||||
};
|
|
||||||
return bench;
|
return bench;
|
||||||
}
|
}
|
||||||
|
|
||||||
const getStackTrace = (belowFn) => {
|
|
||||||
const oldLimit = Error.stackTraceLimit;
|
|
||||||
Error.stackTraceLimit = Infinity;
|
|
||||||
const dummyObject = {};
|
|
||||||
const v8Handler = Error.prepareStackTrace;
|
|
||||||
Error.prepareStackTrace = (dummyObject, v8StackTrace) => v8StackTrace;
|
|
||||||
Error.captureStackTrace(dummyObject, belowFn || getStackTrace);
|
|
||||||
const v8StackTrace = dummyObject.stack;
|
|
||||||
Error.prepareStackTrace = v8Handler;
|
|
||||||
Error.stackTraceLimit = oldLimit;
|
|
||||||
return v8StackTrace;
|
|
||||||
};
|
|
||||||
|
|
||||||
const getCallingFile = () => {
|
|
||||||
const stack = getStackTrace();
|
|
||||||
let callingFile = stack[2].getFileName(); // [here, withCodSpeed, actual caller]
|
|
||||||
const gitDir = getGitDir(callingFile);
|
|
||||||
if (gitDir === undefined) {
|
|
||||||
throw new Error("Could not find a git repository");
|
|
||||||
}
|
|
||||||
if (callingFile.startsWith("file://")) {
|
|
||||||
callingFile = fileURLToPath(callingFile);
|
|
||||||
}
|
|
||||||
return path.relative(gitDir, callingFile);
|
|
||||||
};
|
|
||||||
|
|
||||||
const rawAdd = bench.add;
|
const rawAdd = bench.add;
|
||||||
|
const uriMap = getOrCreateUriMap(bench);
|
||||||
bench.add = (name, fn, opts) => {
|
bench.add = (name, fn, opts) => {
|
||||||
const callingFile = getCallingFile();
|
const callingFile = getCallingFile();
|
||||||
const uri = `${callingFile}::${name}`;
|
let uri = callingFile;
|
||||||
const options = { ...opts, uri };
|
if (bench.name !== undefined) {
|
||||||
return rawAdd.bind(bench)(name, fn, options);
|
uri += `::${bench.name}`;
|
||||||
|
}
|
||||||
|
uri += `::${name}`;
|
||||||
|
uriMap.set(name, uri);
|
||||||
|
return rawAdd.bind(bench)(name, fn, opts);
|
||||||
};
|
};
|
||||||
const rootCallingFile = getCallingFile();
|
const rootCallingFile = getCallingFile();
|
||||||
bench.run = async function run() {
|
|
||||||
const iterations = bench.opts.iterations - 1;
|
if (codspeedRunnerMode === "instrumented") {
|
||||||
console.log("[CodSpeed] running");
|
const setupBenchRun = () => {
|
||||||
setupCore();
|
setupCore();
|
||||||
for (const task of bench.tasks) {
|
console.log(
|
||||||
await bench.opts.setup?.(task, "run");
|
"[CodSpeed] running with @codspeed/tinybench (instrumented mode)"
|
||||||
await task.fnOpts.beforeAll?.call(task);
|
);
|
||||||
const samples = [];
|
};
|
||||||
async function iteration() {
|
const finalizeBenchRun = () => {
|
||||||
try {
|
teardownCore();
|
||||||
await task.fnOpts.beforeEach?.call(task, "run");
|
console.log(`[CodSpeed] Done running ${bench.tasks.length} benches.`);
|
||||||
const start = bench.opts.now();
|
return bench.tasks;
|
||||||
await task.fn();
|
};
|
||||||
samples.push(bench.opts.now() - start || 0);
|
|
||||||
await task.fnOpts.afterEach?.call(this, "run");
|
const wrapFunctionWithFrame = (fn, isAsync) => {
|
||||||
} catch (err) {
|
if (isAsync) {
|
||||||
if (bench.opts.throws) {
|
return async function __codspeed_root_frame__() {
|
||||||
throw err;
|
await fn();
|
||||||
}
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return function __codspeed_root_frame__() {
|
||||||
|
fn();
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
const logTaskCompletion = (uri, status) => {
|
||||||
|
console.log(`[CodSpeed] ${status} ${uri}`);
|
||||||
|
};
|
||||||
|
|
||||||
|
const taskCompletionMessage = () =>
|
||||||
|
InstrumentHooks.isInstrumented() ? "Measured" : "Checked";
|
||||||
|
|
||||||
|
const iterationAsync = async (task) => {
|
||||||
|
try {
|
||||||
|
await task.fnOpts.beforeEach?.call(task, "run");
|
||||||
|
const start = bench.opts.now();
|
||||||
|
await task.fn();
|
||||||
|
const end = bench.opts.now() - start || 0;
|
||||||
|
await task.fnOpts.afterEach?.call(this, "run");
|
||||||
|
return [start, end];
|
||||||
|
} catch (err) {
|
||||||
|
if (bench.opts.throws) {
|
||||||
|
throw err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while (samples.length < iterations) {
|
};
|
||||||
await iteration();
|
|
||||||
}
|
|
||||||
// Codspeed Measure
|
|
||||||
const uri =
|
|
||||||
task.opts && "uri" in task.options
|
|
||||||
? task.opts.uri
|
|
||||||
: `${rootCallingFile}::${task.name}`;
|
|
||||||
await task.fnOpts.beforeEach?.call(task);
|
|
||||||
await mongoMeasurement.start(uri);
|
|
||||||
await (async function __codspeed_root_frame__() {
|
|
||||||
Measurement.startInstrumentation();
|
|
||||||
await task.fn();
|
|
||||||
Measurement.stopInstrumentation(uri);
|
|
||||||
})();
|
|
||||||
await mongoMeasurement.stop(uri);
|
|
||||||
await task.fnOpts.afterEach?.call(task);
|
|
||||||
console.log(`[Codspeed] ✔ Measured ${uri}`);
|
|
||||||
await task.fnOpts.afterAll?.call(task);
|
|
||||||
|
|
||||||
|
const wrapWithInstrumentHooksAsync = async (fn, uri) => {
|
||||||
|
InstrumentHooks.startBenchmark();
|
||||||
|
const result = await fn();
|
||||||
|
InstrumentHooks.stopBenchmark();
|
||||||
|
InstrumentHooks.setExecutedBenchmark(process.pid, uri);
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
|
||||||
|
const runTaskAsync = async (task, uri) => {
|
||||||
|
const { fnOpts, fn } = task;
|
||||||
|
|
||||||
|
// Custom setup
|
||||||
|
await bench.opts.setup?.(task, "run");
|
||||||
|
|
||||||
|
await fnOpts?.beforeAll?.call(task, "run");
|
||||||
|
|
||||||
|
// Custom warmup
|
||||||
|
// We don't run `optimizeFunction` because our function is never optimized, instead we just warmup webpack
|
||||||
|
const samples = [];
|
||||||
|
|
||||||
|
while (samples.length < bench.opts.iterations - 1) {
|
||||||
|
samples.push(await iterationAsync(task));
|
||||||
|
}
|
||||||
|
|
||||||
|
await fnOpts?.beforeEach?.call(task, "run");
|
||||||
|
await mongoMeasurement.start(uri);
|
||||||
|
global.gc?.();
|
||||||
|
await wrapWithInstrumentHooksAsync(wrapFunctionWithFrame(fn, true), uri);
|
||||||
|
await mongoMeasurement.stop(uri);
|
||||||
|
await fnOpts?.afterEach?.call(task, "run");
|
||||||
|
console.log(`[Codspeed] ✔ Measured ${uri}`);
|
||||||
|
await fnOpts?.afterAll?.call(task, "run");
|
||||||
|
|
||||||
|
// Custom teardown
|
||||||
await bench.opts.teardown?.(task, "run");
|
await bench.opts.teardown?.(task, "run");
|
||||||
task.processRunResult({ latencySamples: samples });
|
|
||||||
}
|
logTaskCompletion(uri, taskCompletionMessage());
|
||||||
teardownCore();
|
};
|
||||||
console.log(`[CodSpeed] Done running ${bench.tasks.length} benches.`);
|
|
||||||
return bench.tasks;
|
const iteration = (task) => {
|
||||||
};
|
try {
|
||||||
|
task.fnOpts.beforeEach?.call(task, "run");
|
||||||
|
const start = bench.opts.now();
|
||||||
|
task.fn();
|
||||||
|
const end = bench.opts.now() - start || 0;
|
||||||
|
task.fnOpts.afterEach?.call(this, "run");
|
||||||
|
return [start, end];
|
||||||
|
} catch (err) {
|
||||||
|
if (bench.opts.throws) {
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const wrapWithInstrumentHooks = (fn, uri) => {
|
||||||
|
InstrumentHooks.startBenchmark();
|
||||||
|
const result = fn();
|
||||||
|
InstrumentHooks.stopBenchmark();
|
||||||
|
InstrumentHooks.setExecutedBenchmark(process.pid, uri);
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
|
||||||
|
const runTaskSync = (task, uri) => {
|
||||||
|
const { fnOpts, fn } = task;
|
||||||
|
|
||||||
|
// Custom setup
|
||||||
|
bench.opts.setup?.(task, "run");
|
||||||
|
|
||||||
|
fnOpts?.beforeAll?.call(task, "run");
|
||||||
|
|
||||||
|
// Custom warmup
|
||||||
|
const samples = [];
|
||||||
|
|
||||||
|
while (samples.length < bench.opts.iterations - 1) {
|
||||||
|
samples.push(iteration(task));
|
||||||
|
}
|
||||||
|
|
||||||
|
fnOpts?.beforeEach?.call(task, "run");
|
||||||
|
|
||||||
|
wrapWithInstrumentHooks(wrapFunctionWithFrame(fn, false), uri);
|
||||||
|
|
||||||
|
fnOpts?.afterEach?.call(task, "run");
|
||||||
|
console.log(`[Codspeed] ✔ Measured ${uri}`);
|
||||||
|
fnOpts?.afterAll?.call(task, "run");
|
||||||
|
|
||||||
|
// Custom teardown
|
||||||
|
bench.opts.teardown?.(task, "run");
|
||||||
|
|
||||||
|
logTaskCompletion(uri, taskCompletionMessage());
|
||||||
|
};
|
||||||
|
|
||||||
|
const finalizeAsyncRun = () => {
|
||||||
|
finalizeBenchRun();
|
||||||
|
};
|
||||||
|
const finalizeSyncRun = () => {
|
||||||
|
finalizeBenchRun();
|
||||||
|
};
|
||||||
|
|
||||||
|
bench.run = async () => {
|
||||||
|
setupBenchRun();
|
||||||
|
|
||||||
|
for (const task of bench.tasks) {
|
||||||
|
const uri = getTaskUri(task.bench, task.name, rootCallingFile);
|
||||||
|
await runTaskAsync(task, uri);
|
||||||
|
}
|
||||||
|
|
||||||
|
return finalizeAsyncRun();
|
||||||
|
};
|
||||||
|
|
||||||
|
bench.runSync = () => {
|
||||||
|
setupBenchRun();
|
||||||
|
|
||||||
|
for (const task of bench.tasks) {
|
||||||
|
const uri = getTaskUri(task.bench, task.name, rootCallingFile);
|
||||||
|
runTaskSync(task, uri);
|
||||||
|
}
|
||||||
|
|
||||||
|
return finalizeSyncRun();
|
||||||
|
};
|
||||||
|
} else if (codspeedRunnerMode === "walltime") {
|
||||||
|
// We don't need it
|
||||||
|
}
|
||||||
|
|
||||||
return bench;
|
return bench;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -495,7 +614,6 @@ const bench = await withCodSpeed(
|
||||||
warmupIterations: 2,
|
warmupIterations: 2,
|
||||||
iterations: 8,
|
iterations: 8,
|
||||||
setup(task, mode) {
|
setup(task, mode) {
|
||||||
global.gc();
|
|
||||||
console.log(`Setup (${mode} mode): ${task.name}`);
|
console.log(`Setup (${mode} mode): ${task.name}`);
|
||||||
},
|
},
|
||||||
teardown(task, mode) {
|
teardown(task, mode) {
|
||||||
|
|
|
@ -2909,12 +2909,6 @@ describe("Targets", () => {
|
||||||
- Expected
|
- Expected
|
||||||
+ Received
|
+ Received
|
||||||
|
|
||||||
@@ ... @@
|
|
||||||
- "dynamicImportInWorker": true,
|
|
||||||
+ "dynamicImportInWorker": false,
|
|
||||||
@@ ... @@
|
|
||||||
- "dynamicImportInWorker": true,
|
|
||||||
+ "dynamicImportInWorker": false,
|
|
||||||
@@ ... @@
|
@@ ... @@
|
||||||
- "target": "node12.17",
|
- "target": "node12.17",
|
||||||
+ "target": "browserslist: node 12.17",
|
+ "target": "browserslist: node 12.17",
|
||||||
|
|
|
@ -31,6 +31,37 @@ Object {
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
exports[`browserslist target ["and_chr 140","and_ff 142","and_qq 14.9","and_uc 15.5","android 140","chrome 140","chrome 139","chrome 138","chrome 137","chrome 112","chrome 109","chrome 105","edge 140","edge 139","edge 138","firefox 143","firefox 142","firefox 141","firefox 140","ios_saf 26.0","ios_saf 18.5-18.6","kaios 3.0-3.1","node 24.8.0","node 22.19.0","node 20.19.0","op_mob 80","opera 122","opera 121","opera 120","safari 26.0","safari 18.5-18.6","samsung 28","samsung 27"] 1`] = `
|
||||||
|
Object {
|
||||||
|
"arrowFunction": true,
|
||||||
|
"asyncFunction": true,
|
||||||
|
"bigIntLiteral": true,
|
||||||
|
"browser": null,
|
||||||
|
"const": true,
|
||||||
|
"destructuring": true,
|
||||||
|
"document": null,
|
||||||
|
"dynamicImport": true,
|
||||||
|
"dynamicImportInWorker": true,
|
||||||
|
"electron": false,
|
||||||
|
"fetchWasm": null,
|
||||||
|
"forOf": true,
|
||||||
|
"global": null,
|
||||||
|
"globalThis": true,
|
||||||
|
"importScripts": false,
|
||||||
|
"importScriptsInWorker": false,
|
||||||
|
"module": true,
|
||||||
|
"node": null,
|
||||||
|
"nodeBuiltins": null,
|
||||||
|
"nodePrefixForCoreModules": null,
|
||||||
|
"nwjs": false,
|
||||||
|
"optionalChaining": true,
|
||||||
|
"require": null,
|
||||||
|
"templateLiteral": true,
|
||||||
|
"web": null,
|
||||||
|
"webworker": false,
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
exports[`browserslist target ["and_ff 68"] 1`] = `
|
exports[`browserslist target ["and_ff 68"] 1`] = `
|
||||||
Object {
|
Object {
|
||||||
"arrowFunction": true,
|
"arrowFunction": true,
|
||||||
|
@ -41,7 +72,7 @@ Object {
|
||||||
"destructuring": true,
|
"destructuring": true,
|
||||||
"document": true,
|
"document": true,
|
||||||
"dynamicImport": true,
|
"dynamicImport": true,
|
||||||
"dynamicImportInWorker": true,
|
"dynamicImportInWorker": false,
|
||||||
"electron": false,
|
"electron": false,
|
||||||
"fetchWasm": true,
|
"fetchWasm": true,
|
||||||
"forOf": true,
|
"forOf": true,
|
||||||
|
@ -65,17 +96,17 @@ Object {
|
||||||
exports[`browserslist target ["and_qq 10.4"] 1`] = `
|
exports[`browserslist target ["and_qq 10.4"] 1`] = `
|
||||||
Object {
|
Object {
|
||||||
"arrowFunction": true,
|
"arrowFunction": true,
|
||||||
"asyncFunction": false,
|
"asyncFunction": true,
|
||||||
"bigIntLiteral": false,
|
"bigIntLiteral": false,
|
||||||
"browser": true,
|
"browser": true,
|
||||||
"const": true,
|
"const": true,
|
||||||
"destructuring": false,
|
"destructuring": true,
|
||||||
"document": true,
|
"document": true,
|
||||||
"dynamicImport": true,
|
"dynamicImport": true,
|
||||||
"dynamicImportInWorker": true,
|
"dynamicImportInWorker": true,
|
||||||
"electron": false,
|
"electron": false,
|
||||||
"fetchWasm": true,
|
"fetchWasm": true,
|
||||||
"forOf": false,
|
"forOf": true,
|
||||||
"global": false,
|
"global": false,
|
||||||
"globalThis": false,
|
"globalThis": false,
|
||||||
"importScripts": false,
|
"importScripts": false,
|
||||||
|
@ -93,37 +124,6 @@ Object {
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
exports[`browserslist target ["and_uc 12.12"] 1`] = `
|
|
||||||
Object {
|
|
||||||
"arrowFunction": true,
|
|
||||||
"asyncFunction": false,
|
|
||||||
"bigIntLiteral": false,
|
|
||||||
"browser": true,
|
|
||||||
"const": true,
|
|
||||||
"destructuring": false,
|
|
||||||
"document": true,
|
|
||||||
"dynamicImport": false,
|
|
||||||
"dynamicImportInWorker": false,
|
|
||||||
"electron": false,
|
|
||||||
"fetchWasm": true,
|
|
||||||
"forOf": false,
|
|
||||||
"global": false,
|
|
||||||
"globalThis": false,
|
|
||||||
"importScripts": false,
|
|
||||||
"importScriptsInWorker": true,
|
|
||||||
"module": false,
|
|
||||||
"node": false,
|
|
||||||
"nodeBuiltins": false,
|
|
||||||
"nodePrefixForCoreModules": false,
|
|
||||||
"nwjs": false,
|
|
||||||
"optionalChaining": false,
|
|
||||||
"require": false,
|
|
||||||
"templateLiteral": true,
|
|
||||||
"web": true,
|
|
||||||
"webworker": false,
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
|
|
||||||
exports[`browserslist target ["android 4"] 1`] = `
|
exports[`browserslist target ["android 4"] 1`] = `
|
||||||
Object {
|
Object {
|
||||||
"arrowFunction": false,
|
"arrowFunction": false,
|
||||||
|
@ -320,14 +320,45 @@ Object {
|
||||||
"destructuring": true,
|
"destructuring": true,
|
||||||
"document": null,
|
"document": null,
|
||||||
"dynamicImport": true,
|
"dynamicImport": true,
|
||||||
"dynamicImportInWorker": false,
|
"dynamicImportInWorker": true,
|
||||||
"electron": false,
|
"electron": false,
|
||||||
"fetchWasm": null,
|
"fetchWasm": null,
|
||||||
"forOf": true,
|
"forOf": true,
|
||||||
"global": null,
|
"global": null,
|
||||||
"globalThis": true,
|
"globalThis": true,
|
||||||
"importScripts": false,
|
"importScripts": false,
|
||||||
"importScriptsInWorker": true,
|
"importScriptsInWorker": false,
|
||||||
|
"module": true,
|
||||||
|
"node": null,
|
||||||
|
"nodeBuiltins": null,
|
||||||
|
"nodePrefixForCoreModules": null,
|
||||||
|
"nwjs": false,
|
||||||
|
"optionalChaining": false,
|
||||||
|
"require": null,
|
||||||
|
"templateLiteral": true,
|
||||||
|
"web": null,
|
||||||
|
"webworker": false,
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`browserslist target ["chrome 80","node 13.12.0"] 1`] = `
|
||||||
|
Object {
|
||||||
|
"arrowFunction": true,
|
||||||
|
"asyncFunction": true,
|
||||||
|
"bigIntLiteral": true,
|
||||||
|
"browser": null,
|
||||||
|
"const": true,
|
||||||
|
"destructuring": true,
|
||||||
|
"document": null,
|
||||||
|
"dynamicImport": true,
|
||||||
|
"dynamicImportInWorker": true,
|
||||||
|
"electron": false,
|
||||||
|
"fetchWasm": null,
|
||||||
|
"forOf": true,
|
||||||
|
"global": null,
|
||||||
|
"globalThis": true,
|
||||||
|
"importScripts": false,
|
||||||
|
"importScriptsInWorker": false,
|
||||||
"module": true,
|
"module": true,
|
||||||
"node": null,
|
"node": null,
|
||||||
"nodeBuiltins": null,
|
"nodeBuiltins": null,
|
||||||
|
@ -382,7 +413,7 @@ Object {
|
||||||
"destructuring": true,
|
"destructuring": true,
|
||||||
"document": true,
|
"document": true,
|
||||||
"dynamicImport": true,
|
"dynamicImport": true,
|
||||||
"dynamicImportInWorker": true,
|
"dynamicImportInWorker": false,
|
||||||
"electron": false,
|
"electron": false,
|
||||||
"fetchWasm": true,
|
"fetchWasm": true,
|
||||||
"forOf": true,
|
"forOf": true,
|
||||||
|
@ -413,7 +444,7 @@ Object {
|
||||||
"destructuring": true,
|
"destructuring": true,
|
||||||
"document": true,
|
"document": true,
|
||||||
"dynamicImport": true,
|
"dynamicImport": true,
|
||||||
"dynamicImportInWorker": true,
|
"dynamicImportInWorker": false,
|
||||||
"electron": false,
|
"electron": false,
|
||||||
"fetchWasm": true,
|
"fetchWasm": true,
|
||||||
"forOf": true,
|
"forOf": true,
|
||||||
|
@ -444,7 +475,7 @@ Object {
|
||||||
"destructuring": true,
|
"destructuring": true,
|
||||||
"document": true,
|
"document": true,
|
||||||
"dynamicImport": true,
|
"dynamicImport": true,
|
||||||
"dynamicImportInWorker": true,
|
"dynamicImportInWorker": false,
|
||||||
"electron": false,
|
"electron": false,
|
||||||
"fetchWasm": true,
|
"fetchWasm": true,
|
||||||
"forOf": true,
|
"forOf": true,
|
||||||
|
@ -537,7 +568,7 @@ Object {
|
||||||
"destructuring": true,
|
"destructuring": true,
|
||||||
"document": true,
|
"document": true,
|
||||||
"dynamicImport": true,
|
"dynamicImport": true,
|
||||||
"dynamicImportInWorker": true,
|
"dynamicImportInWorker": false,
|
||||||
"electron": false,
|
"electron": false,
|
||||||
"fetchWasm": true,
|
"fetchWasm": true,
|
||||||
"forOf": true,
|
"forOf": true,
|
||||||
|
@ -606,7 +637,7 @@ Object {
|
||||||
"global": true,
|
"global": true,
|
||||||
"globalThis": false,
|
"globalThis": false,
|
||||||
"importScripts": false,
|
"importScripts": false,
|
||||||
"importScriptsInWorker": true,
|
"importScriptsInWorker": false,
|
||||||
"module": false,
|
"module": false,
|
||||||
"node": true,
|
"node": true,
|
||||||
"nodeBuiltins": true,
|
"nodeBuiltins": true,
|
||||||
|
@ -637,7 +668,7 @@ Object {
|
||||||
"global": true,
|
"global": true,
|
||||||
"globalThis": false,
|
"globalThis": false,
|
||||||
"importScripts": false,
|
"importScripts": false,
|
||||||
"importScriptsInWorker": true,
|
"importScriptsInWorker": false,
|
||||||
"module": false,
|
"module": false,
|
||||||
"node": true,
|
"node": true,
|
||||||
"nodeBuiltins": true,
|
"nodeBuiltins": true,
|
||||||
|
@ -668,7 +699,7 @@ Object {
|
||||||
"global": true,
|
"global": true,
|
||||||
"globalThis": false,
|
"globalThis": false,
|
||||||
"importScripts": false,
|
"importScripts": false,
|
||||||
"importScriptsInWorker": true,
|
"importScriptsInWorker": false,
|
||||||
"module": false,
|
"module": false,
|
||||||
"node": true,
|
"node": true,
|
||||||
"nodeBuiltins": true,
|
"nodeBuiltins": true,
|
||||||
|
@ -699,7 +730,7 @@ Object {
|
||||||
"global": true,
|
"global": true,
|
||||||
"globalThis": false,
|
"globalThis": false,
|
||||||
"importScripts": false,
|
"importScripts": false,
|
||||||
"importScriptsInWorker": true,
|
"importScriptsInWorker": false,
|
||||||
"module": false,
|
"module": false,
|
||||||
"node": true,
|
"node": true,
|
||||||
"nodeBuiltins": true,
|
"nodeBuiltins": true,
|
||||||
|
@ -723,14 +754,45 @@ Object {
|
||||||
"destructuring": true,
|
"destructuring": true,
|
||||||
"document": false,
|
"document": false,
|
||||||
"dynamicImport": true,
|
"dynamicImport": true,
|
||||||
"dynamicImportInWorker": false,
|
"dynamicImportInWorker": true,
|
||||||
"electron": false,
|
"electron": false,
|
||||||
"fetchWasm": false,
|
"fetchWasm": false,
|
||||||
"forOf": true,
|
"forOf": true,
|
||||||
"global": true,
|
"global": true,
|
||||||
"globalThis": true,
|
"globalThis": true,
|
||||||
"importScripts": false,
|
"importScripts": false,
|
||||||
"importScriptsInWorker": true,
|
"importScriptsInWorker": false,
|
||||||
|
"module": true,
|
||||||
|
"node": true,
|
||||||
|
"nodeBuiltins": true,
|
||||||
|
"nodePrefixForCoreModules": false,
|
||||||
|
"nwjs": false,
|
||||||
|
"optionalChaining": false,
|
||||||
|
"require": true,
|
||||||
|
"templateLiteral": true,
|
||||||
|
"web": false,
|
||||||
|
"webworker": false,
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`browserslist target ["node 13.12.0"] 1`] = `
|
||||||
|
Object {
|
||||||
|
"arrowFunction": true,
|
||||||
|
"asyncFunction": true,
|
||||||
|
"bigIntLiteral": true,
|
||||||
|
"browser": false,
|
||||||
|
"const": true,
|
||||||
|
"destructuring": true,
|
||||||
|
"document": false,
|
||||||
|
"dynamicImport": true,
|
||||||
|
"dynamicImportInWorker": true,
|
||||||
|
"electron": false,
|
||||||
|
"fetchWasm": false,
|
||||||
|
"forOf": true,
|
||||||
|
"global": true,
|
||||||
|
"globalThis": true,
|
||||||
|
"importScripts": false,
|
||||||
|
"importScriptsInWorker": false,
|
||||||
"module": true,
|
"module": true,
|
||||||
"node": true,
|
"node": true,
|
||||||
"nodeBuiltins": true,
|
"nodeBuiltins": true,
|
||||||
|
@ -785,7 +847,7 @@ Object {
|
||||||
"destructuring": true,
|
"destructuring": true,
|
||||||
"document": true,
|
"document": true,
|
||||||
"dynamicImport": true,
|
"dynamicImport": true,
|
||||||
"dynamicImportInWorker": true,
|
"dynamicImportInWorker": false,
|
||||||
"electron": false,
|
"electron": false,
|
||||||
"fetchWasm": true,
|
"fetchWasm": true,
|
||||||
"forOf": true,
|
"forOf": true,
|
||||||
|
@ -816,7 +878,7 @@ Object {
|
||||||
"destructuring": true,
|
"destructuring": true,
|
||||||
"document": true,
|
"document": true,
|
||||||
"dynamicImport": true,
|
"dynamicImport": true,
|
||||||
"dynamicImportInWorker": true,
|
"dynamicImportInWorker": false,
|
||||||
"electron": false,
|
"electron": false,
|
||||||
"fetchWasm": true,
|
"fetchWasm": true,
|
||||||
"forOf": true,
|
"forOf": true,
|
||||||
|
@ -909,7 +971,7 @@ Object {
|
||||||
"destructuring": true,
|
"destructuring": true,
|
||||||
"document": true,
|
"document": true,
|
||||||
"dynamicImport": true,
|
"dynamicImport": true,
|
||||||
"dynamicImportInWorker": true,
|
"dynamicImportInWorker": false,
|
||||||
"electron": false,
|
"electron": false,
|
||||||
"fetchWasm": true,
|
"fetchWasm": true,
|
||||||
"forOf": true,
|
"forOf": true,
|
||||||
|
@ -940,7 +1002,7 @@ Object {
|
||||||
"destructuring": true,
|
"destructuring": true,
|
||||||
"document": true,
|
"document": true,
|
||||||
"dynamicImport": true,
|
"dynamicImport": true,
|
||||||
"dynamicImportInWorker": true,
|
"dynamicImportInWorker": false,
|
||||||
"electron": false,
|
"electron": false,
|
||||||
"fetchWasm": true,
|
"fetchWasm": true,
|
||||||
"forOf": true,
|
"forOf": true,
|
||||||
|
@ -971,7 +1033,7 @@ Object {
|
||||||
"destructuring": true,
|
"destructuring": true,
|
||||||
"document": true,
|
"document": true,
|
||||||
"dynamicImport": true,
|
"dynamicImport": true,
|
||||||
"dynamicImportInWorker": true,
|
"dynamicImportInWorker": false,
|
||||||
"electron": false,
|
"electron": false,
|
||||||
"fetchWasm": true,
|
"fetchWasm": true,
|
||||||
"forOf": true,
|
"forOf": true,
|
||||||
|
@ -1064,7 +1126,7 @@ Object {
|
||||||
"destructuring": true,
|
"destructuring": true,
|
||||||
"document": true,
|
"document": true,
|
||||||
"dynamicImport": true,
|
"dynamicImport": true,
|
||||||
"dynamicImportInWorker": true,
|
"dynamicImportInWorker": false,
|
||||||
"electron": false,
|
"electron": false,
|
||||||
"fetchWasm": true,
|
"fetchWasm": true,
|
||||||
"forOf": true,
|
"forOf": true,
|
||||||
|
@ -1095,7 +1157,7 @@ Object {
|
||||||
"destructuring": true,
|
"destructuring": true,
|
||||||
"document": true,
|
"document": true,
|
||||||
"dynamicImport": true,
|
"dynamicImport": true,
|
||||||
"dynamicImportInWorker": true,
|
"dynamicImportInWorker": false,
|
||||||
"electron": false,
|
"electron": false,
|
||||||
"fetchWasm": true,
|
"fetchWasm": true,
|
||||||
"forOf": true,
|
"forOf": true,
|
||||||
|
|
|
@ -15,7 +15,7 @@ module.exports = {
|
||||||
"destructuring": true,
|
"destructuring": true,
|
||||||
"document": false,
|
"document": false,
|
||||||
"dynamicImport": true,
|
"dynamicImport": true,
|
||||||
"dynamicImportInWorker": false,
|
"dynamicImportInWorker": true,
|
||||||
"forOf": true,
|
"forOf": true,
|
||||||
"globalThis": true,
|
"globalThis": true,
|
||||||
"module": true,
|
"module": true,
|
||||||
|
|
|
@ -15,7 +15,7 @@ module.exports = {
|
||||||
"destructuring": true,
|
"destructuring": true,
|
||||||
"document": false,
|
"document": false,
|
||||||
"dynamicImport": true,
|
"dynamicImport": true,
|
||||||
"dynamicImportInWorker": false,
|
"dynamicImportInWorker": true,
|
||||||
"forOf": true,
|
"forOf": true,
|
||||||
"globalThis": true,
|
"globalThis": true,
|
||||||
"module": true,
|
"module": true,
|
||||||
|
|
|
@ -3,7 +3,7 @@ import * as style from "./style.css";
|
||||||
import * as text1 from "./text-with-bom.txt";
|
import * as text1 from "./text-with-bom.txt";
|
||||||
import * as text2 from "./test-without-bom.text";
|
import * as text2 from "./test-without-bom.text";
|
||||||
|
|
||||||
it("should remove BOM", function() {
|
it("should remove BOM", async function() {
|
||||||
const url = new URL("./resource-with-bom.ext", import.meta.url);
|
const url = new URL("./resource-with-bom.ext", import.meta.url);
|
||||||
|
|
||||||
expect(mod).toBeDefined();
|
expect(mod).toBeDefined();
|
||||||
|
@ -13,7 +13,7 @@ it("should remove BOM", function() {
|
||||||
expect(url).toBeDefined();
|
expect(url).toBeDefined();
|
||||||
|
|
||||||
const module = "module.js"
|
const module = "module.js"
|
||||||
const modules = import("./dir/" + module);
|
const modules = await import("./dir/" + module);
|
||||||
|
|
||||||
expect(modules).toBeDefined();
|
expect(modules).toBeDefined();
|
||||||
});
|
});
|
||||||
|
|
|
@ -4,6 +4,9 @@ const fs = require("fs");
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
findBundle() {
|
||||||
|
return ["dir_module_js.bundle0.js", "bundle0.js"];
|
||||||
|
},
|
||||||
afterExecute(options) {
|
afterExecute(options) {
|
||||||
const outputPath = options.output.path;
|
const outputPath = options.output.path;
|
||||||
const files = fs.readdirSync(outputPath);
|
const files = fs.readdirSync(outputPath);
|
||||||
|
|
|
@ -6,6 +6,9 @@ module.exports = {
|
||||||
output: {
|
output: {
|
||||||
assetModuleFilename: "[name][ext]"
|
assetModuleFilename: "[name][ext]"
|
||||||
},
|
},
|
||||||
|
optimization: {
|
||||||
|
chunkIds: "named"
|
||||||
|
},
|
||||||
module: {
|
module: {
|
||||||
rules: [
|
rules: [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,27 +1,39 @@
|
||||||
it("should set fetchPriority", () => {
|
function abortable(fn) {
|
||||||
import(/* webpackFetchPriority: "high" */ "./a");
|
return new Promise((resolve) => {
|
||||||
|
const timeoutId = setTimeout(() => {
|
||||||
|
fn = undefined;
|
||||||
|
resolve('Promise resolved after delay');
|
||||||
|
clearTimeout(timeoutId);
|
||||||
|
}, 1000);
|
||||||
|
|
||||||
|
return fn();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
it("should set fetchPriority", async () => {
|
||||||
|
abortable(() => import(/* webpackFetchPriority: "high" */ "./a"));
|
||||||
expect(document.head._children).toHaveLength(4);
|
expect(document.head._children).toHaveLength(4);
|
||||||
const script1 = document.head._children[2];
|
const script1 = document.head._children[2];
|
||||||
expect(script1._attributes.fetchpriority).toBe("high");
|
expect(script1._attributes.fetchpriority).toBe("high");
|
||||||
|
|
||||||
import(/* webpackFetchPriority: "low" */ "./b");
|
abortable(() => import(/* webpackFetchPriority: "low" */ "./b"));
|
||||||
expect(document.head._children).toHaveLength(5);
|
expect(document.head._children).toHaveLength(5);
|
||||||
const script2 = document.head._children[4];
|
const script2 = document.head._children[4];
|
||||||
expect(script2._attributes.fetchpriority).toBe("low");
|
expect(script2._attributes.fetchpriority).toBe("low");
|
||||||
|
|
||||||
import(/* webpackFetchPriority: "low" */ "./c");
|
abortable(() => import(/* webpackFetchPriority: "low" */ "./c"));
|
||||||
expect(document.head._children).toHaveLength(6);
|
expect(document.head._children).toHaveLength(6);
|
||||||
const script3 = document.head._children[5];
|
const script3 = document.head._children[5];
|
||||||
expect(script3._attributes.fetchpriority).toBe("low");
|
expect(script3._attributes.fetchpriority).toBe("low");
|
||||||
|
|
||||||
import(/* webpackPrefetch: 20, webpackFetchPriority: "auto" */ "./c");
|
abortable(() => import(/* webpackPrefetch: 20, webpackFetchPriority: "auto" */ "./c"));
|
||||||
|
|
||||||
import("./d")
|
abortable(() => import("./d"))
|
||||||
expect(document.head._children).toHaveLength(7);
|
expect(document.head._children).toHaveLength(7);
|
||||||
const script4 = document.head._children[6];
|
const script4 = document.head._children[6];
|
||||||
expect(script4._attributes.fetchpriority).toBeUndefined();
|
expect(script4._attributes.fetchpriority).toBeUndefined();
|
||||||
|
|
||||||
import(/* webpackPrefetch: -20 */ "./d3");
|
abortable(() => import(/* webpackPrefetch: -20 */ "./d3"));
|
||||||
expect(document.head._children).toHaveLength(8);
|
expect(document.head._children).toHaveLength(8);
|
||||||
const script5 = document.head._children[7];
|
const script5 = document.head._children[7];
|
||||||
expect(script5._attributes.fetchpriority).toBeUndefined();
|
expect(script5._attributes.fetchpriority).toBeUndefined();
|
||||||
|
@ -29,12 +41,12 @@ it("should set fetchPriority", () => {
|
||||||
const condition = true;
|
const condition = true;
|
||||||
|
|
||||||
if (!condition) {
|
if (!condition) {
|
||||||
import(/* webpackFetchPriority: "high", webpackChunkName: "one" */ "./e");
|
abortable( () => import(/* webpackFetchPriority: "high", webpackChunkName: "one" */ "./e"));
|
||||||
expect(document.head._children).toHaveLength(9);
|
expect(document.head._children).toHaveLength(9);
|
||||||
const script6 = document.head._children[8];
|
const script6 = document.head._children[8];
|
||||||
expect(script6._attributes.fetchpriority).toBe("high");
|
expect(script6._attributes.fetchpriority).toBe("high");
|
||||||
} else {
|
} else {
|
||||||
import(/* webpackFetchPriority: "low", webpackChunkName: "two" */ "./e");
|
abortable(() => import(/* webpackFetchPriority: "low", webpackChunkName: "two" */ "./e"));
|
||||||
expect(document.head._children).toHaveLength(9);
|
expect(document.head._children).toHaveLength(9);
|
||||||
const script6 = document.head._children[8];
|
const script6 = document.head._children[8];
|
||||||
expect(script6._attributes.fetchpriority).toBe("low");
|
expect(script6._attributes.fetchpriority).toBe("low");
|
||||||
|
|
|
@ -1,13 +1,25 @@
|
||||||
|
function abortable(fn) {
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
const timeoutId = setTimeout(() => {
|
||||||
|
fn = undefined;
|
||||||
|
resolve('Promise resolved after delay');
|
||||||
|
clearTimeout(timeoutId);
|
||||||
|
}, 1000);
|
||||||
|
|
||||||
|
return fn();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
it("should set fetchPriority", () => {
|
it("should set fetchPriority", () => {
|
||||||
// Single Chunk
|
// Single Chunk
|
||||||
import(/* webpackFetchPriority: "high" */ "./a");
|
abortable(() => import(/* webpackFetchPriority: "high" */ "./a"));
|
||||||
expect(document.head._children).toHaveLength(1);
|
expect(document.head._children).toHaveLength(1);
|
||||||
const script1 = document.head._children[0];
|
const script1 = document.head._children[0];
|
||||||
expect(script1._attributes.fetchpriority).toBe("high");
|
expect(script1._attributes.fetchpriority).toBe("high");
|
||||||
|
|
||||||
// Multiple Chunks
|
// Multiple Chunks
|
||||||
import(/* webpackFetchPriority: "high" */ "./b");
|
abortable(() => import(/* webpackFetchPriority: "high" */ "./b"));
|
||||||
import(/* webpackFetchPriority: "high" */ "./b2");
|
abortable(() => import(/* webpackFetchPriority: "high" */ "./b2"));
|
||||||
expect(document.head._children).toHaveLength(4);
|
expect(document.head._children).toHaveLength(4);
|
||||||
const script2 = document.head._children[1];
|
const script2 = document.head._children[1];
|
||||||
const script3 = document.head._children[2];
|
const script3 = document.head._children[2];
|
||||||
|
@ -17,19 +29,19 @@ it("should set fetchPriority", () => {
|
||||||
expect(script4._attributes.fetchpriority).toBe("high");
|
expect(script4._attributes.fetchpriority).toBe("high");
|
||||||
|
|
||||||
// Single Chunk, low
|
// Single Chunk, low
|
||||||
import(/* webpackFetchPriority: "low" */ "./c");
|
abortable(() => import(/* webpackFetchPriority: "low" */ "./c"));
|
||||||
expect(document.head._children).toHaveLength(5);
|
expect(document.head._children).toHaveLength(5);
|
||||||
const script5 = document.head._children[4];
|
const script5 = document.head._children[4];
|
||||||
expect(script5._attributes.fetchpriority).toBe("low");
|
expect(script5._attributes.fetchpriority).toBe("low");
|
||||||
|
|
||||||
// Single Chunk, auto
|
// Single Chunk, auto
|
||||||
import(/* webpackFetchPriority: "auto" */ "./d");
|
abortable(() => import(/* webpackFetchPriority: "auto" */ "./d"));
|
||||||
expect(document.head._children).toHaveLength(6);
|
expect(document.head._children).toHaveLength(6);
|
||||||
const script6 = document.head._children[5];
|
const script6 = document.head._children[5];
|
||||||
expect(script6._attributes.fetchpriority).toBe("auto");
|
expect(script6._attributes.fetchpriority).toBe("auto");
|
||||||
|
|
||||||
// No fetch priority
|
// No fetch priority
|
||||||
import("./e");
|
abortable(() => import("./e"));
|
||||||
expect(document.head._children).toHaveLength(7);
|
expect(document.head._children).toHaveLength(7);
|
||||||
const script7 = document.head._children[6];
|
const script7 = document.head._children[6];
|
||||||
expect(script7._attributes.fetchpriority).toBeUndefined();
|
expect(script7._attributes.fetchpriority).toBeUndefined();
|
||||||
|
@ -44,49 +56,49 @@ it("should set fetchPriority", () => {
|
||||||
const script8 = document.head._children[7];
|
const script8 = document.head._children[7];
|
||||||
expect(script8._attributes.fetchpriority).toBeUndefined();
|
expect(script8._attributes.fetchpriority).toBeUndefined();
|
||||||
|
|
||||||
import(/* webpackFetchPriority: "auto" */ "./g");
|
abortable(() => import(/* webpackFetchPriority: "auto" */ "./g"));
|
||||||
expect(document.head._children).toHaveLength(9);
|
expect(document.head._children).toHaveLength(9);
|
||||||
const script9 = document.head._children[8];
|
const script9 = document.head._children[8];
|
||||||
expect(script9._attributes.fetchpriority).toBe("auto");
|
expect(script9._attributes.fetchpriority).toBe("auto");
|
||||||
|
|
||||||
import(/* webpackFetchPriority: "unknown" */ "./h.js");
|
abortable(() => import(/* webpackFetchPriority: "unknown" */ "./h.js"));
|
||||||
expect(document.head._children).toHaveLength(10);
|
expect(document.head._children).toHaveLength(10);
|
||||||
const script10 = document.head._children[9];
|
const script10 = document.head._children[9];
|
||||||
expect(script10._attributes.fetchpriority).toBeUndefined();
|
expect(script10._attributes.fetchpriority).toBeUndefined();
|
||||||
|
|
||||||
import(/* webpackFetchPriority: "high" */ "./i");
|
abortable(() => import(/* webpackFetchPriority: "high" */ "./i"));
|
||||||
import(/* webpackFetchPriority: "low" */ "./i");
|
abortable(() => import(/* webpackFetchPriority: "low" */ "./i"));
|
||||||
expect(document.head._children).toHaveLength(11);
|
expect(document.head._children).toHaveLength(11);
|
||||||
const script11 = document.head._children[10];
|
const script11 = document.head._children[10];
|
||||||
expect(script11._attributes.fetchpriority).toBe("high");
|
expect(script11._attributes.fetchpriority).toBe("high");
|
||||||
|
|
||||||
import(/* webpackFetchPriority: "low" */ "./j");
|
abortable(() => import(/* webpackFetchPriority: "low" */ "./j"));
|
||||||
import(/* webpackFetchPriority: "high" */ "./j");
|
abortable(() => import(/* webpackFetchPriority: "high" */ "./j"));
|
||||||
expect(document.head._children).toHaveLength(12);
|
expect(document.head._children).toHaveLength(12);
|
||||||
const script12 = document.head._children[11];
|
const script12 = document.head._children[11];
|
||||||
|
|
||||||
expect(script12._attributes.fetchpriority).toBe("low");
|
expect(script12._attributes.fetchpriority).toBe("low");
|
||||||
import(/* webpackFetchPriority: "low" */ "./k");
|
abortable(() => import(/* webpackFetchPriority: "low" */ "./k"));
|
||||||
import("./e");
|
abortable(() => import("./e"));
|
||||||
import(/* webpackFetchPriority: "high" */ "./k");
|
abortable(() => import(/* webpackFetchPriority: "high" */ "./k"));
|
||||||
expect(document.head._children).toHaveLength(13);
|
abortable(() => expect(document.head._children).toHaveLength(13));
|
||||||
const script13 = document.head._children[12];
|
const script13 = document.head._children[12];
|
||||||
expect(script13._attributes.fetchpriority).toBe("low");
|
expect(script13._attributes.fetchpriority).toBe("low");
|
||||||
|
|
||||||
__non_webpack_require__("./125.js");
|
__non_webpack_require__("./125.js");
|
||||||
import(/* webpackFetchPriority: "high" */ "./style.css");
|
abortable(() => import(/* webpackFetchPriority: "high" */ "./style.css"));
|
||||||
expect(document.head._children).toHaveLength(14);
|
expect(document.head._children).toHaveLength(14);
|
||||||
const link1 = document.head._children[13];
|
const link1 = document.head._children[13];
|
||||||
expect(link1._attributes.fetchpriority).toBe("high");
|
expect(link1._attributes.fetchpriority).toBe("high");
|
||||||
|
|
||||||
__non_webpack_require__("./499.js");
|
__non_webpack_require__("./499.js");
|
||||||
import("./style-1.css");
|
abortable(() => import("./style-1.css"));
|
||||||
expect(document.head._children).toHaveLength(15);
|
expect(document.head._children).toHaveLength(15);
|
||||||
const link2 = document.head._children[14];
|
const link2 = document.head._children[14];
|
||||||
expect(link2._attributes.fetchpriority).toBeUndefined();
|
expect(link2._attributes.fetchpriority).toBeUndefined();
|
||||||
|
|
||||||
__non_webpack_require__("./616.js");
|
__non_webpack_require__("./616.js");
|
||||||
import(/* webpackFetchPriority: "low" */ "./style-2.css");
|
abortable(() => import(/* webpackFetchPriority: "low" */ "./style-2.css"));
|
||||||
expect(document.head._children).toHaveLength(16);
|
expect(document.head._children).toHaveLength(16);
|
||||||
const link3 = document.head._children[15];
|
const link3 = document.head._children[15];
|
||||||
expect(link3._attributes.fetchpriority).toBe("low");
|
expect(link3._attributes.fetchpriority).toBe("low");
|
||||||
|
|
|
@ -57,9 +57,7 @@ describe("browserslist target", () => {
|
||||||
["node 10.0.0"],
|
["node 10.0.0"],
|
||||||
["node 10.17.0"],
|
["node 10.17.0"],
|
||||||
["node 12.19.0"],
|
["node 12.19.0"],
|
||||||
|
["node 13.12.0"],
|
||||||
// UC browsers for Android
|
|
||||||
["and_uc 12.12"],
|
|
||||||
|
|
||||||
// QQ browser
|
// QQ browser
|
||||||
["and_qq 10.4"],
|
["and_qq 10.4"],
|
||||||
|
@ -73,6 +71,45 @@ describe("browserslist target", () => {
|
||||||
// Multiple
|
// Multiple
|
||||||
["firefox 80", "chrome 80"],
|
["firefox 80", "chrome 80"],
|
||||||
["chrome 80", "node 12.19.0"],
|
["chrome 80", "node 12.19.0"],
|
||||||
|
["chrome 80", "node 13.12.0"],
|
||||||
|
|
||||||
|
// defaults and fully supports es6-module
|
||||||
|
// maintained node versions
|
||||||
|
[
|
||||||
|
"and_chr 140",
|
||||||
|
"and_ff 142",
|
||||||
|
"and_qq 14.9",
|
||||||
|
"and_uc 15.5",
|
||||||
|
"android 140",
|
||||||
|
"chrome 140",
|
||||||
|
"chrome 139",
|
||||||
|
"chrome 138",
|
||||||
|
"chrome 137",
|
||||||
|
"chrome 112",
|
||||||
|
"chrome 109",
|
||||||
|
"chrome 105",
|
||||||
|
"edge 140",
|
||||||
|
"edge 139",
|
||||||
|
"edge 138",
|
||||||
|
"firefox 143",
|
||||||
|
"firefox 142",
|
||||||
|
"firefox 141",
|
||||||
|
"firefox 140",
|
||||||
|
"ios_saf 26.0",
|
||||||
|
"ios_saf 18.5-18.6",
|
||||||
|
"kaios 3.0-3.1",
|
||||||
|
"node 24.8.0",
|
||||||
|
"node 22.19.0",
|
||||||
|
"node 20.19.0",
|
||||||
|
"op_mob 80",
|
||||||
|
"opera 122",
|
||||||
|
"opera 121",
|
||||||
|
"opera 120",
|
||||||
|
"safari 26.0",
|
||||||
|
"safari 18.5-18.6",
|
||||||
|
"samsung 28",
|
||||||
|
"samsung 27"
|
||||||
|
],
|
||||||
|
|
||||||
// Unknown
|
// Unknown
|
||||||
["unknown 50"]
|
["unknown 50"]
|
||||||
|
|
|
@ -17,7 +17,7 @@ module.exports = {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
new webpack.ProgressPlugin(),
|
new webpack.ProgressPlugin(() => {}),
|
||||||
{
|
{
|
||||||
apply(compiler) {
|
apply(compiler) {
|
||||||
compiler.hooks.done.tapPromise("CacheTest", async () => {
|
compiler.hooks.done.tapPromise("CacheTest", async () => {
|
||||||
|
|
|
@ -16,7 +16,7 @@ module.exports = {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
new webpack.ProgressPlugin(),
|
new webpack.ProgressPlugin(() => {}),
|
||||||
{
|
{
|
||||||
apply(compiler) {
|
apply(compiler) {
|
||||||
compiler.hooks.done.tapPromise("CacheTest", async () => {
|
compiler.hooks.done.tapPromise("CacheTest", async () => {
|
||||||
|
|
|
@ -24,7 +24,7 @@ import {
|
||||||
ClassBody,
|
ClassBody,
|
||||||
ClassDeclaration,
|
ClassDeclaration,
|
||||||
ClassExpression,
|
ClassExpression,
|
||||||
Comment,
|
Comment as CommentImport,
|
||||||
ConditionalExpression,
|
ConditionalExpression,
|
||||||
ContinueStatement,
|
ContinueStatement,
|
||||||
DebuggerStatement,
|
DebuggerStatement,
|
||||||
|
@ -99,9 +99,11 @@ import {
|
||||||
} from "inspector";
|
} from "inspector";
|
||||||
import { JSONSchema4, JSONSchema6, JSONSchema7 } from "json-schema";
|
import { JSONSchema4, JSONSchema6, JSONSchema7 } from "json-schema";
|
||||||
import { ListenOptions } from "net";
|
import { ListenOptions } from "net";
|
||||||
import { validate as validateFunction } from "schema-utils";
|
import {
|
||||||
|
ValidationErrorConfiguration,
|
||||||
|
validate as validateFunction
|
||||||
|
} from "schema-utils";
|
||||||
import { default as ValidationError } from "schema-utils/declarations/ValidationError";
|
import { default as ValidationError } from "schema-utils/declarations/ValidationError";
|
||||||
import { ValidationErrorConfiguration } from "schema-utils/declarations/validate";
|
|
||||||
import {
|
import {
|
||||||
AsArray,
|
AsArray,
|
||||||
AsyncParallelHook,
|
AsyncParallelHook,
|
||||||
|
@ -114,7 +116,8 @@ import {
|
||||||
SyncBailHook,
|
SyncBailHook,
|
||||||
SyncHook,
|
SyncHook,
|
||||||
SyncWaterfallHook,
|
SyncWaterfallHook,
|
||||||
TapOptions
|
TapOptions,
|
||||||
|
TypedHookMap
|
||||||
} from "tapable";
|
} from "tapable";
|
||||||
import { SecureContextOptions, TlsOptions } from "tls";
|
import { SecureContextOptions, TlsOptions } from "tls";
|
||||||
import { URL } from "url";
|
import { URL } from "url";
|
||||||
|
@ -297,6 +300,14 @@ declare interface Asset {
|
||||||
*/
|
*/
|
||||||
info: AssetInfo;
|
info: AssetInfo;
|
||||||
}
|
}
|
||||||
|
declare abstract class AssetBytesGenerator extends Generator {
|
||||||
|
generateError(
|
||||||
|
error: Error,
|
||||||
|
module: NormalModule,
|
||||||
|
generateContext: GenerateContext
|
||||||
|
): null | Source;
|
||||||
|
}
|
||||||
|
declare abstract class AssetBytesParser extends ParserClass {}
|
||||||
declare interface AssetDependencyMeta {
|
declare interface AssetDependencyMeta {
|
||||||
sourceType: "css-url";
|
sourceType: "css-url";
|
||||||
}
|
}
|
||||||
|
@ -311,6 +322,25 @@ type AssetFilterItemTypes =
|
||||||
| string
|
| string
|
||||||
| RegExp
|
| RegExp
|
||||||
| ((name: string, asset: StatsAsset) => boolean);
|
| ((name: string, asset: StatsAsset) => boolean);
|
||||||
|
declare abstract class AssetGenerator extends Generator {
|
||||||
|
dataUrlOptions?:
|
||||||
|
| AssetGeneratorDataUrlOptions
|
||||||
|
| ((
|
||||||
|
source: string | Buffer,
|
||||||
|
context: { filename: string; module: Module }
|
||||||
|
) => string);
|
||||||
|
filename?: string | ((pathData: PathData, assetInfo?: AssetInfo) => string);
|
||||||
|
publicPath?: string | ((pathData: PathData, assetInfo?: AssetInfo) => string);
|
||||||
|
outputPath?: string | ((pathData: PathData, assetInfo?: AssetInfo) => string);
|
||||||
|
emit?: boolean;
|
||||||
|
getMimeType(module: NormalModule): string;
|
||||||
|
generateDataUri(module: NormalModule): string;
|
||||||
|
generateError(
|
||||||
|
error: Error,
|
||||||
|
module: NormalModule,
|
||||||
|
generateContext: GenerateContext
|
||||||
|
): null | Source;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Options object for data url generation.
|
* Options object for data url generation.
|
||||||
|
@ -349,6 +379,15 @@ declare interface AssetInlineGeneratorOptions {
|
||||||
context: { filename: string; module: Module }
|
context: { filename: string; module: Module }
|
||||||
) => string);
|
) => string);
|
||||||
}
|
}
|
||||||
|
declare abstract class AssetParser extends ParserClass {
|
||||||
|
dataUrlCondition?:
|
||||||
|
| boolean
|
||||||
|
| AssetParserDataUrlOptions
|
||||||
|
| ((
|
||||||
|
source: string | Buffer,
|
||||||
|
context: { filename: string; module: Module }
|
||||||
|
) => boolean);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Options object for DataUrl condition.
|
* Options object for DataUrl condition.
|
||||||
|
@ -404,6 +443,14 @@ declare interface AssetResourceGeneratorOptions {
|
||||||
*/
|
*/
|
||||||
publicPath?: string | ((pathData: PathData, assetInfo?: AssetInfo) => string);
|
publicPath?: string | ((pathData: PathData, assetInfo?: AssetInfo) => string);
|
||||||
}
|
}
|
||||||
|
declare abstract class AssetSourceGenerator extends Generator {
|
||||||
|
generateError(
|
||||||
|
error: Error,
|
||||||
|
module: NormalModule,
|
||||||
|
generateContext: GenerateContext
|
||||||
|
): null | Source;
|
||||||
|
}
|
||||||
|
declare abstract class AssetSourceParser extends ParserClass {}
|
||||||
declare class AsyncDependenciesBlock extends DependenciesBlock {
|
declare class AsyncDependenciesBlock extends DependenciesBlock {
|
||||||
constructor(
|
constructor(
|
||||||
groupOptions:
|
groupOptions:
|
||||||
|
@ -473,6 +520,7 @@ declare interface AsyncWebAssemblyModulesPluginOptions {
|
||||||
*/
|
*/
|
||||||
mangleImports?: boolean;
|
mangleImports?: boolean;
|
||||||
}
|
}
|
||||||
|
declare abstract class AsyncWebAssemblyParser extends ParserClass {}
|
||||||
declare class AutomaticPrefetchPlugin {
|
declare class AutomaticPrefetchPlugin {
|
||||||
constructor();
|
constructor();
|
||||||
|
|
||||||
|
@ -2044,6 +2092,11 @@ declare interface ColorsOptions {
|
||||||
*/
|
*/
|
||||||
useColor?: boolean;
|
useColor?: boolean;
|
||||||
}
|
}
|
||||||
|
declare interface CommentCssParser {
|
||||||
|
value: string;
|
||||||
|
range: [number, number];
|
||||||
|
loc: { start: Position; end: Position };
|
||||||
|
}
|
||||||
declare interface CommonJsImportSettings {
|
declare interface CommonJsImportSettings {
|
||||||
name?: string;
|
name?: string;
|
||||||
context: string;
|
context: string;
|
||||||
|
@ -3558,6 +3611,23 @@ declare interface CssData {
|
||||||
*/
|
*/
|
||||||
exports: Map<string, string>;
|
exports: Map<string, string>;
|
||||||
}
|
}
|
||||||
|
declare abstract class CssGenerator extends Generator {
|
||||||
|
convention?:
|
||||||
|
| "as-is"
|
||||||
|
| "camel-case"
|
||||||
|
| "camel-case-only"
|
||||||
|
| "dashes"
|
||||||
|
| "dashes-only"
|
||||||
|
| ((name: string) => string);
|
||||||
|
localIdentName?: string;
|
||||||
|
exportsOnly?: boolean;
|
||||||
|
esModule?: boolean;
|
||||||
|
generateError(
|
||||||
|
error: Error,
|
||||||
|
module: NormalModule,
|
||||||
|
generateContext: GenerateContext
|
||||||
|
): null | Source;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generator options for css modules.
|
* Generator options for css modules.
|
||||||
|
@ -3753,6 +3823,19 @@ declare class CssModulesPlugin {
|
||||||
): TemplatePath;
|
): TemplatePath;
|
||||||
static chunkHasCss(chunk: Chunk, chunkGraph: ChunkGraph): boolean;
|
static chunkHasCss(chunk: Chunk, chunkGraph: ChunkGraph): boolean;
|
||||||
}
|
}
|
||||||
|
declare abstract class CssParser extends ParserClass {
|
||||||
|
defaultMode: "global" | "auto" | "pure" | "local";
|
||||||
|
import: boolean;
|
||||||
|
url: boolean;
|
||||||
|
namedExports: boolean;
|
||||||
|
comments?: CommentCssParser[];
|
||||||
|
magicCommentContext: Context;
|
||||||
|
getComments(range: [number, number]): CommentCssParser[];
|
||||||
|
parseCommentOptions(range: [number, number]): {
|
||||||
|
options: null | Record<string, any>;
|
||||||
|
errors: null | (Error & { comment: CommentCssParser })[];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parser options for css modules.
|
* Parser options for css modules.
|
||||||
|
@ -6380,35 +6463,6 @@ declare interface ImportDependencyMeta {
|
||||||
externalType?: "import" | "module";
|
externalType?: "import" | "module";
|
||||||
}
|
}
|
||||||
type ImportExpressionJavascriptParser = ImportExpressionImport & {
|
type ImportExpressionJavascriptParser = ImportExpressionImport & {
|
||||||
options?:
|
|
||||||
| null
|
|
||||||
| ImportExpressionImport
|
|
||||||
| UnaryExpression
|
|
||||||
| ArrayExpression
|
|
||||||
| ArrowFunctionExpression
|
|
||||||
| AssignmentExpression
|
|
||||||
| AwaitExpression
|
|
||||||
| BinaryExpression
|
|
||||||
| SimpleCallExpression
|
|
||||||
| NewExpression
|
|
||||||
| ChainExpression
|
|
||||||
| ClassExpression
|
|
||||||
| ConditionalExpression
|
|
||||||
| FunctionExpression
|
|
||||||
| Identifier
|
|
||||||
| SimpleLiteral
|
|
||||||
| RegExpLiteral
|
|
||||||
| BigIntLiteral
|
|
||||||
| LogicalExpression
|
|
||||||
| MemberExpression
|
|
||||||
| MetaProperty
|
|
||||||
| ObjectExpression
|
|
||||||
| SequenceExpression
|
|
||||||
| TaggedTemplateExpression
|
|
||||||
| TemplateLiteral
|
|
||||||
| ThisExpression
|
|
||||||
| UpdateExpression
|
|
||||||
| YieldExpression;
|
|
||||||
phase?: "defer";
|
phase?: "defer";
|
||||||
};
|
};
|
||||||
declare interface ImportModuleOptions {
|
declare interface ImportModuleOptions {
|
||||||
|
@ -6623,6 +6677,33 @@ declare interface IteratorObject<T, TReturn = unknown, TNext = unknown>
|
||||||
[Symbol.iterator](): IteratorObject<T, TReturn, TNext>;
|
[Symbol.iterator](): IteratorObject<T, TReturn, TNext>;
|
||||||
[Symbol.dispose](): void;
|
[Symbol.dispose](): void;
|
||||||
}
|
}
|
||||||
|
declare abstract class JavascriptGenerator extends Generator {
|
||||||
|
generateError(
|
||||||
|
error: Error,
|
||||||
|
module: NormalModule,
|
||||||
|
generateContext: GenerateContext
|
||||||
|
): null | Source;
|
||||||
|
sourceModule(
|
||||||
|
module: Module,
|
||||||
|
initFragments: InitFragment<GenerateContext>[],
|
||||||
|
source: ReplaceSource,
|
||||||
|
generateContext: GenerateContext
|
||||||
|
): void;
|
||||||
|
sourceBlock(
|
||||||
|
module: Module,
|
||||||
|
block: DependenciesBlock,
|
||||||
|
initFragments: InitFragment<GenerateContext>[],
|
||||||
|
source: ReplaceSource,
|
||||||
|
generateContext: GenerateContext
|
||||||
|
): void;
|
||||||
|
sourceDependency(
|
||||||
|
module: Module,
|
||||||
|
dependency: Dependency,
|
||||||
|
initFragments: InitFragment<GenerateContext>[],
|
||||||
|
source: ReplaceSource,
|
||||||
|
generateContext: GenerateContext
|
||||||
|
): void;
|
||||||
|
}
|
||||||
declare class JavascriptModulesPlugin {
|
declare class JavascriptModulesPlugin {
|
||||||
constructor(options?: object);
|
constructor(options?: object);
|
||||||
options: object;
|
options: object;
|
||||||
|
@ -7107,15 +7188,15 @@ declare class JavascriptParser extends ParserClass {
|
||||||
[LogicalExpression],
|
[LogicalExpression],
|
||||||
boolean | void
|
boolean | void
|
||||||
>;
|
>;
|
||||||
program: SyncBailHook<[Program, Comment[]], boolean | void>;
|
program: SyncBailHook<[Program, CommentImport[]], boolean | void>;
|
||||||
terminate: SyncBailHook<[ReturnStatement | ThrowStatement], boolean | void>;
|
terminate: SyncBailHook<[ReturnStatement | ThrowStatement], boolean | void>;
|
||||||
finish: SyncBailHook<[Program, Comment[]], boolean | void>;
|
finish: SyncBailHook<[Program, CommentImport[]], boolean | void>;
|
||||||
unusedStatement: SyncBailHook<[Statement], boolean | void>;
|
unusedStatement: SyncBailHook<[Statement], boolean | void>;
|
||||||
}>;
|
}>;
|
||||||
sourceType: "module" | "auto" | "script";
|
sourceType: "module" | "auto" | "script";
|
||||||
scope: ScopeInfo;
|
scope: ScopeInfo;
|
||||||
state: ParserState;
|
state: ParserState;
|
||||||
comments?: Comment[];
|
comments?: CommentImport[];
|
||||||
semicolons?: Set<number>;
|
semicolons?: Set<number>;
|
||||||
statementPath?: StatementPathItem[];
|
statementPath?: StatementPathItem[];
|
||||||
prevStatement?:
|
prevStatement?:
|
||||||
|
@ -7939,7 +8020,7 @@ declare class JavascriptParser extends ParserClass {
|
||||||
| MaybeNamedClassDeclaration,
|
| MaybeNamedClassDeclaration,
|
||||||
commentsStartPos: number
|
commentsStartPos: number
|
||||||
): boolean;
|
): boolean;
|
||||||
getComments(range: [number, number]): Comment[];
|
getComments(range: [number, number]): CommentImport[];
|
||||||
isAsiPosition(pos: number): boolean;
|
isAsiPosition(pos: number): boolean;
|
||||||
setAsiPosition(pos: number): void;
|
setAsiPosition(pos: number): void;
|
||||||
unsetAsiPosition(pos: number): void;
|
unsetAsiPosition(pos: number): void;
|
||||||
|
@ -7975,7 +8056,7 @@ declare class JavascriptParser extends ParserClass {
|
||||||
evaluatedVariable(tagInfo: TagInfo): VariableInfo;
|
evaluatedVariable(tagInfo: TagInfo): VariableInfo;
|
||||||
parseCommentOptions(range: [number, number]): {
|
parseCommentOptions(range: [number, number]): {
|
||||||
options: null | Record<string, any>;
|
options: null | Record<string, any>;
|
||||||
errors: null | (Error & { comment: Comment })[];
|
errors: null | (Error & { comment: CommentImport })[];
|
||||||
};
|
};
|
||||||
extractMemberExpressionChain(
|
extractMemberExpressionChain(
|
||||||
expression:
|
expression:
|
||||||
|
@ -8327,6 +8408,14 @@ declare abstract class JsonData {
|
||||||
| JsonValueFs[];
|
| JsonValueFs[];
|
||||||
updateHash(hash: Hash): void;
|
updateHash(hash: Hash): void;
|
||||||
}
|
}
|
||||||
|
declare abstract class JsonGenerator extends Generator {
|
||||||
|
options: JsonGeneratorOptions;
|
||||||
|
generateError(
|
||||||
|
error: Error,
|
||||||
|
module: NormalModule,
|
||||||
|
generateContext: GenerateContext
|
||||||
|
): null | Source;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generator options for json modules.
|
* Generator options for json modules.
|
||||||
|
@ -8337,6 +8426,17 @@ declare interface JsonGeneratorOptions {
|
||||||
*/
|
*/
|
||||||
JSONParse?: boolean;
|
JSONParse?: boolean;
|
||||||
}
|
}
|
||||||
|
declare interface JsonModulesPluginParserOptions {
|
||||||
|
/**
|
||||||
|
* The depth of json dependency flagged as `exportInfo`.
|
||||||
|
*/
|
||||||
|
exportsDepth?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function that executes for a module source string and should return json-compatible data.
|
||||||
|
*/
|
||||||
|
parse?: (input: string) => any;
|
||||||
|
}
|
||||||
declare interface JsonObjectFs {
|
declare interface JsonObjectFs {
|
||||||
[index: string]:
|
[index: string]:
|
||||||
| undefined
|
| undefined
|
||||||
|
@ -8357,6 +8457,9 @@ declare interface JsonObjectTypes {
|
||||||
| JsonObjectTypes
|
| JsonObjectTypes
|
||||||
| JsonValueTypes[];
|
| JsonValueTypes[];
|
||||||
}
|
}
|
||||||
|
declare abstract class JsonParser extends ParserClass {
|
||||||
|
options: JsonModulesPluginParserOptions;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parser options for JSON modules.
|
* Parser options for JSON modules.
|
||||||
|
@ -11288,12 +11391,225 @@ declare abstract class NormalModuleFactory extends ModuleFactory {
|
||||||
],
|
],
|
||||||
Module
|
Module
|
||||||
>;
|
>;
|
||||||
createParser: HookMap<SyncBailHook<[ParserOptions], void | ParserClass>>;
|
createParser: TypedHookMap<
|
||||||
parser: HookMap<SyncBailHook<[any, ParserOptions], void>>;
|
Record<
|
||||||
createGenerator: HookMap<
|
"javascript/auto",
|
||||||
SyncBailHook<[GeneratorOptions], void | Generator>
|
SyncBailHook<[JavascriptParserOptions], JavascriptParser>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"javascript/dynamic",
|
||||||
|
SyncBailHook<[JavascriptParserOptions], JavascriptParser>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"javascript/esm",
|
||||||
|
SyncBailHook<[JavascriptParserOptions], JavascriptParser>
|
||||||
|
> &
|
||||||
|
Record<"json", SyncBailHook<[JsonParserOptions], JsonParser>> &
|
||||||
|
Record<"asset", SyncBailHook<[AssetParserOptions], AssetParser>> &
|
||||||
|
Record<
|
||||||
|
"asset/inline",
|
||||||
|
SyncBailHook<[EmptyParserOptions], AssetParser>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"asset/resource",
|
||||||
|
SyncBailHook<[EmptyParserOptions], AssetParser>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"asset/source",
|
||||||
|
SyncBailHook<[EmptyParserOptions], AssetSourceParser>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"asset/bytes",
|
||||||
|
SyncBailHook<[EmptyParserOptions], AssetBytesParser>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"webassembly/async",
|
||||||
|
SyncBailHook<[EmptyParserOptions], AsyncWebAssemblyParser>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"webassembly/sync",
|
||||||
|
SyncBailHook<[EmptyParserOptions], WebAssemblyParser>
|
||||||
|
> &
|
||||||
|
Record<"css", SyncBailHook<[CssParserOptions], CssParser>> &
|
||||||
|
Record<"css/auto", SyncBailHook<[CssAutoParserOptions], CssParser>> &
|
||||||
|
Record<
|
||||||
|
"css/module",
|
||||||
|
SyncBailHook<[CssModuleParserOptions], CssParser>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"css/global",
|
||||||
|
SyncBailHook<[CssGlobalParserOptions], CssParser>
|
||||||
|
> &
|
||||||
|
Record<string, SyncBailHook<[ParserOptions], ParserClass>>
|
||||||
|
>;
|
||||||
|
parser: TypedHookMap<
|
||||||
|
Record<
|
||||||
|
"javascript/auto",
|
||||||
|
SyncBailHook<[JavascriptParser, JavascriptParserOptions], void>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"javascript/dynamic",
|
||||||
|
SyncBailHook<[JavascriptParser, JavascriptParserOptions], void>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"javascript/esm",
|
||||||
|
SyncBailHook<[JavascriptParser, JavascriptParserOptions], void>
|
||||||
|
> &
|
||||||
|
Record<"json", SyncBailHook<[JsonParser, JsonParserOptions], void>> &
|
||||||
|
Record<"asset", SyncBailHook<[AssetParser, AssetParserOptions], void>> &
|
||||||
|
Record<
|
||||||
|
"asset/inline",
|
||||||
|
SyncBailHook<[AssetParser, EmptyParserOptions], void>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"asset/resource",
|
||||||
|
SyncBailHook<[AssetParser, EmptyParserOptions], void>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"asset/source",
|
||||||
|
SyncBailHook<[AssetSourceParser, EmptyParserOptions], void>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"asset/bytes",
|
||||||
|
SyncBailHook<[AssetBytesParser, EmptyParserOptions], void>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"webassembly/async",
|
||||||
|
SyncBailHook<[AsyncWebAssemblyParser, EmptyParserOptions], void>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"webassembly/sync",
|
||||||
|
SyncBailHook<[WebAssemblyParser, EmptyParserOptions], void>
|
||||||
|
> &
|
||||||
|
Record<"css", SyncBailHook<[CssParser, CssParserOptions], void>> &
|
||||||
|
Record<
|
||||||
|
"css/auto",
|
||||||
|
SyncBailHook<[CssParser, CssAutoParserOptions], void>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"css/module",
|
||||||
|
SyncBailHook<[CssParser, CssModuleParserOptions], void>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"css/global",
|
||||||
|
SyncBailHook<[CssParser, CssGlobalParserOptions], void>
|
||||||
|
> &
|
||||||
|
Record<string, SyncBailHook<[ParserClass, ParserOptions], void>>
|
||||||
|
>;
|
||||||
|
createGenerator: TypedHookMap<
|
||||||
|
Record<
|
||||||
|
"javascript/auto",
|
||||||
|
SyncBailHook<[EmptyGeneratorOptions], JavascriptGenerator>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"javascript/dynamic",
|
||||||
|
SyncBailHook<[EmptyGeneratorOptions], JavascriptGenerator>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"javascript/esm",
|
||||||
|
SyncBailHook<[EmptyGeneratorOptions], JavascriptGenerator>
|
||||||
|
> &
|
||||||
|
Record<"json", SyncBailHook<[JsonGeneratorOptions], JsonGenerator>> &
|
||||||
|
Record<"asset", SyncBailHook<[AssetGeneratorOptions], AssetGenerator>> &
|
||||||
|
Record<
|
||||||
|
"asset/inline",
|
||||||
|
SyncBailHook<[AssetGeneratorOptions], AssetGenerator>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"asset/resource",
|
||||||
|
SyncBailHook<[AssetGeneratorOptions], AssetGenerator>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"asset/source",
|
||||||
|
SyncBailHook<[EmptyGeneratorOptions], AssetSourceGenerator>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"asset/bytes",
|
||||||
|
SyncBailHook<[EmptyGeneratorOptions], AssetBytesGenerator>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"webassembly/async",
|
||||||
|
SyncBailHook<[EmptyParserOptions], Generator>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"webassembly/sync",
|
||||||
|
SyncBailHook<[EmptyParserOptions], Generator>
|
||||||
|
> &
|
||||||
|
Record<"css", SyncBailHook<[CssGeneratorOptions], CssGenerator>> &
|
||||||
|
Record<
|
||||||
|
"css/auto",
|
||||||
|
SyncBailHook<[CssAutoGeneratorOptions], CssGenerator>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"css/module",
|
||||||
|
SyncBailHook<[CssModuleGeneratorOptions], CssGenerator>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"css/global",
|
||||||
|
SyncBailHook<[CssGlobalGeneratorOptions], CssGenerator>
|
||||||
|
> &
|
||||||
|
Record<string, SyncBailHook<[GeneratorOptions], Generator>>
|
||||||
|
>;
|
||||||
|
generator: TypedHookMap<
|
||||||
|
Record<
|
||||||
|
"javascript/auto",
|
||||||
|
SyncBailHook<[JavascriptGenerator, EmptyGeneratorOptions], void>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"javascript/dynamic",
|
||||||
|
SyncBailHook<[JavascriptGenerator, EmptyGeneratorOptions], void>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"javascript/esm",
|
||||||
|
SyncBailHook<[JavascriptGenerator, EmptyGeneratorOptions], void>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"json",
|
||||||
|
SyncBailHook<[JsonGenerator, JsonGeneratorOptions], void>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"asset",
|
||||||
|
SyncBailHook<[AssetGenerator, AssetGeneratorOptions], void>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"asset/inline",
|
||||||
|
SyncBailHook<[AssetGenerator, AssetGeneratorOptions], void>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"asset/resource",
|
||||||
|
SyncBailHook<[AssetGenerator, AssetGeneratorOptions], void>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"asset/source",
|
||||||
|
SyncBailHook<[AssetSourceGenerator, EmptyGeneratorOptions], void>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"asset/bytes",
|
||||||
|
SyncBailHook<[AssetBytesGenerator, EmptyGeneratorOptions], void>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"webassembly/async",
|
||||||
|
SyncBailHook<[Generator, EmptyParserOptions], void>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"webassembly/sync",
|
||||||
|
SyncBailHook<[Generator, EmptyParserOptions], void>
|
||||||
|
> &
|
||||||
|
Record<"css", SyncBailHook<[CssGenerator, CssGeneratorOptions], void>> &
|
||||||
|
Record<
|
||||||
|
"css/auto",
|
||||||
|
SyncBailHook<[CssGenerator, CssAutoGeneratorOptions], void>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"css/module",
|
||||||
|
SyncBailHook<[CssGenerator, CssModuleGeneratorOptions], void>
|
||||||
|
> &
|
||||||
|
Record<
|
||||||
|
"css/global",
|
||||||
|
SyncBailHook<[CssGenerator, CssGlobalGeneratorOptions], void>
|
||||||
|
> &
|
||||||
|
Record<string, SyncBailHook<[Generator, GeneratorOptions], void>>
|
||||||
>;
|
>;
|
||||||
generator: HookMap<SyncBailHook<[any, GeneratorOptions], void>>;
|
|
||||||
createModuleClass: HookMap<
|
createModuleClass: HookMap<
|
||||||
SyncBailHook<
|
SyncBailHook<
|
||||||
[
|
[
|
||||||
|
@ -13166,6 +13482,10 @@ declare interface PnpApi {
|
||||||
options: { considerBuiltins: boolean }
|
options: { considerBuiltins: boolean }
|
||||||
) => null | string;
|
) => null | string;
|
||||||
}
|
}
|
||||||
|
declare interface Position {
|
||||||
|
line: number;
|
||||||
|
column: number;
|
||||||
|
}
|
||||||
declare class PrefetchPlugin {
|
declare class PrefetchPlugin {
|
||||||
constructor(context: string, request?: string);
|
constructor(context: string, request?: string);
|
||||||
context: null | string;
|
context: null | string;
|
||||||
|
@ -17815,6 +18135,7 @@ declare abstract class WeakTupleMap<K extends any[], V> {
|
||||||
delete(...args: K): void;
|
delete(...args: K): void;
|
||||||
clear(): void;
|
clear(): void;
|
||||||
}
|
}
|
||||||
|
declare abstract class WebAssemblyParser extends ParserClass {}
|
||||||
declare interface WebAssemblyRenderContext {
|
declare interface WebAssemblyRenderContext {
|
||||||
/**
|
/**
|
||||||
* the chunk
|
* the chunk
|
||||||
|
|
42
yarn.lock
42
yarn.lock
|
@ -332,14 +332,14 @@
|
||||||
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
|
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
|
||||||
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
|
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
|
||||||
|
|
||||||
"@codspeed/core@^4.0.1":
|
"@codspeed/core@^5.0.1":
|
||||||
version "4.0.1"
|
version "5.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@codspeed/core/-/core-4.0.1.tgz#91049cce17b8c1d1b4b6cbc481f5ddc1145d6e1e"
|
resolved "https://registry.yarnpkg.com/@codspeed/core/-/core-5.0.1.tgz#6145c898a86a6d56a169611c3e9657a8b97c7642"
|
||||||
integrity sha512-fJ53arfgtzCDZa8DuGJhpTZ3Ll9A1uW5nQ2jSJnfO4Hl5MRD2cP8P4vPvIUAGbdbjwCxR1jat6cW8OloMJkJXw==
|
integrity sha512-4g5ZyFAin8QywK4+0FK1uXG3GLRPu0oc3xbP+7OUhhFxbwpzFuaJtKmnTofMqLy9/pHH6Bl/7H0/DTVH3cpFkA==
|
||||||
dependencies:
|
dependencies:
|
||||||
axios "^1.4.0"
|
axios "^1.4.0"
|
||||||
find-up "^6.3.0"
|
find-up "^6.3.0"
|
||||||
form-data "^4.0.0"
|
form-data "^4.0.4"
|
||||||
node-gyp-build "^4.6.0"
|
node-gyp-build "^4.6.0"
|
||||||
|
|
||||||
"@cspell/cspell-bundled-dicts@9.1.3":
|
"@cspell/cspell-bundled-dicts@9.1.3":
|
||||||
|
@ -2393,7 +2393,7 @@ camelcase@^6.3.0:
|
||||||
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
|
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
|
||||||
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
|
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
|
||||||
|
|
||||||
caniuse-lite@^1.0.30001737, caniuse-lite@^1.0.30001746:
|
caniuse-lite@^1.0.30001746:
|
||||||
version "1.0.30001746"
|
version "1.0.30001746"
|
||||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001746.tgz#199d20f04f5369825e00ff7067d45d5dfa03aee7"
|
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001746.tgz#199d20f04f5369825e00ff7067d45d5dfa03aee7"
|
||||||
integrity sha512-eA7Ys/DGw+pnkWWSE/id29f2IcPHVoE8wxtvE5JdvD2V28VTDPy1yEeo11Guz0sJ4ZeGRcm3uaTcAqK1LXaphA==
|
integrity sha512-eA7Ys/DGw+pnkWWSE/id29f2IcPHVoE8wxtvE5JdvD2V28VTDPy1yEeo11Guz0sJ4ZeGRcm3uaTcAqK1LXaphA==
|
||||||
|
@ -3034,7 +3034,7 @@ eastasianwidth@^0.2.0:
|
||||||
resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
|
resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
|
||||||
integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
|
integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
|
||||||
|
|
||||||
electron-to-chromium@^1.5.211, electron-to-chromium@^1.5.227:
|
electron-to-chromium@^1.5.227:
|
||||||
version "1.5.228"
|
version "1.5.228"
|
||||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.228.tgz#38b849bc8714bd21fb64f5ad56bf8cfd8638e1e9"
|
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.228.tgz#38b849bc8714bd21fb64f5ad56bf8cfd8638e1e9"
|
||||||
integrity sha512-nxkiyuqAn4MJ1QbobwqJILiDtu/jk14hEAWaMiJmNPh1Z+jqoFlBFZjdXwLWGeVSeu9hGLg6+2G9yJaW8rBIFA==
|
integrity sha512-nxkiyuqAn4MJ1QbobwqJILiDtu/jk14hEAWaMiJmNPh1Z+jqoFlBFZjdXwLWGeVSeu9hGLg6+2G9yJaW8rBIFA==
|
||||||
|
@ -3878,7 +3878,7 @@ fork-ts-checker-webpack-plugin@^9.0.2:
|
||||||
semver "^7.3.5"
|
semver "^7.3.5"
|
||||||
tapable "^2.2.1"
|
tapable "^2.2.1"
|
||||||
|
|
||||||
form-data@^4.0.0, form-data@^4.0.4:
|
form-data@^4.0.4:
|
||||||
version "4.0.4"
|
version "4.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.4.tgz#784cdcce0669a9d68e94d11ac4eea98088edd2c4"
|
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.4.tgz#784cdcce0669a9d68e94d11ac4eea98088edd2c4"
|
||||||
integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==
|
integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==
|
||||||
|
@ -6247,7 +6247,7 @@ node-preload@^0.2.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
process-on-spawn "^1.0.0"
|
process-on-spawn "^1.0.0"
|
||||||
|
|
||||||
node-releases@^2.0.19, node-releases@^2.0.21:
|
node-releases@^2.0.21:
|
||||||
version "2.0.21"
|
version "2.0.21"
|
||||||
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.21.tgz#f59b018bc0048044be2d4c4c04e4c8b18160894c"
|
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.21.tgz#f59b018bc0048044be2d4c4c04e4c8b18160894c"
|
||||||
integrity sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==
|
integrity sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==
|
||||||
|
@ -7179,10 +7179,10 @@ schema-utils@^3.0.0, schema-utils@^3.1.1:
|
||||||
ajv "^6.12.5"
|
ajv "^6.12.5"
|
||||||
ajv-keywords "^3.5.2"
|
ajv-keywords "^3.5.2"
|
||||||
|
|
||||||
schema-utils@^4.0.0, schema-utils@^4.3.0, schema-utils@^4.3.2:
|
schema-utils@^4.0.0, schema-utils@^4.3.0, schema-utils@^4.3.3:
|
||||||
version "4.3.2"
|
version "4.3.3"
|
||||||
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.2.tgz#0c10878bf4a73fd2b1dfd14b9462b26788c806ae"
|
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.3.tgz#5b1850912fa31df90716963d45d9121fdfc09f46"
|
||||||
integrity sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==
|
integrity sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/json-schema" "^7.0.9"
|
"@types/json-schema" "^7.0.9"
|
||||||
ajv "^8.9.0"
|
ajv "^8.9.0"
|
||||||
|
@ -7685,10 +7685,10 @@ synckit@^0.11.7, synckit@^0.11.8:
|
||||||
dependencies:
|
dependencies:
|
||||||
"@pkgr/core" "^0.2.4"
|
"@pkgr/core" "^0.2.4"
|
||||||
|
|
||||||
tapable@^2.2.0, tapable@^2.2.1, tapable@^2.2.3:
|
tapable@^2.2.0, tapable@^2.2.1, tapable@^2.3.0:
|
||||||
version "2.2.3"
|
version "2.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.3.tgz#4b67b635b2d97578a06a2713d2f04800c237e99b"
|
resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.3.0.tgz#7e3ea6d5ca31ba8e078b560f0d83ce9a14aa8be6"
|
||||||
integrity sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==
|
integrity sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==
|
||||||
|
|
||||||
tar@^7.4.3:
|
tar@^7.4.3:
|
||||||
version "7.4.3"
|
version "7.4.3"
|
||||||
|
@ -7973,10 +7973,10 @@ typedarray-to-buffer@^3.1.5:
|
||||||
dependencies:
|
dependencies:
|
||||||
is-typedarray "^1.0.0"
|
is-typedarray "^1.0.0"
|
||||||
|
|
||||||
typescript@^5.9.2:
|
typescript@^5.9.3:
|
||||||
version "5.9.2"
|
version "5.9.3"
|
||||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.2.tgz#d93450cddec5154a2d5cabe3b8102b83316fb2a6"
|
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f"
|
||||||
integrity sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==
|
integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==
|
||||||
|
|
||||||
uglify-js@^3.1.4:
|
uglify-js@^3.1.4:
|
||||||
version "3.19.3"
|
version "3.19.3"
|
||||||
|
|
Loading…
Reference in New Issue