From 568bb1d78986a2aa973d8ac3fb3bda8615bd498a Mon Sep 17 00:00:00 2001
From: Alexander Akait <4567934+alexander-akait@users.noreply.github.com>
Date: Thu, 2 Oct 2025 18:26:16 +0300
Subject: [PATCH] fix: types (#19971)
---
lib/NormalModuleFactory.js | 79 ++++-
lib/javascript/JavascriptParser.js | 2 +-
lib/util/create-schema-validation.js | 2 +-
lib/wasm-async/AsyncWebAssemblyParser.js | 9 -
lib/wasm-sync/WebAssemblyParser.js | 9 -
package.json | 6 +-
types.d.ts | 407 ++++++++++++++++++++---
yarn.lock | 30 +-
8 files changed, 459 insertions(+), 85 deletions(-)
diff --git a/lib/NormalModuleFactory.js b/lib/NormalModuleFactory.js
index 08d1f8c3d..3229a723c 100644
--- a/lib/NormalModuleFactory.js
+++ b/lib/NormalModuleFactory.js
@@ -114,6 +114,7 @@ const {
/** @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_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_SYNC} WEBASSEMBLY_MODULE_TYPE_SYNC */
/** @typedef {import("./ModuleTypeConstants").CSS_MODULE_TYPE} CSS_MODULE_TYPE */
@@ -268,6 +269,76 @@ const ruleSetCompiler = new RuleSetCompiler([
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
, R extends number ? Head[R] : R>> & RecordFactoryFromTuple : unknown } RecordFactoryFromTuple
+ */
+
class NormalModuleFactory extends ModuleFactory {
/**
* @param {object} param params
@@ -306,15 +377,15 @@ class NormalModuleFactory extends ModuleFactory {
createModule: new AsyncSeriesBailHook(["createData", "resolveData"]),
/** @type {SyncWaterfallHook<[Module, CreateData, ResolveData]>} */
module: new SyncWaterfallHook(["module", "createData", "resolveData"]),
- /** @type {HookMap>} */
+ /** @type {import("tapable").TypedHookMap>} */
createParser: new HookMap(() => new SyncBailHook(["parserOptions"])),
- /** @type {HookMap>} */
+ /** @type {import("tapable").TypedHookMap>} */
parser: new HookMap(() => new SyncHook(["parser", "parserOptions"])),
- /** @type {HookMap>} */
+ /** @type {import("tapable").TypedHookMap>} */
createGenerator: new HookMap(
() => new SyncBailHook(["generatorOptions"])
),
- /** @type {HookMap>} */
+ /** @type {import("tapable").TypedHookMap>} */
generator: new HookMap(
() => new SyncHook(["generator", "generatorOptions"])
),
diff --git a/lib/javascript/JavascriptParser.js b/lib/javascript/JavascriptParser.js
index 0eda061fd..ba203d53c 100644
--- a/lib/javascript/JavascriptParser.js
+++ b/lib/javascript/JavascriptParser.js
@@ -106,7 +106,7 @@ const BasicEvaluatedExpression = require("./BasicEvaluatedExpression");
/** @typedef {Set} DestructuringAssignmentProperties */
// 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[]} */
const EMPTY_ARRAY = [];
diff --git a/lib/util/create-schema-validation.js b/lib/util/create-schema-validation.js
index 0a2b8a7d7..c9c048a48 100644
--- a/lib/util/create-schema-validation.js
+++ b/lib/util/create-schema-validation.js
@@ -8,7 +8,7 @@
const memoize = require("./memoize");
/** @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);
diff --git a/lib/wasm-async/AsyncWebAssemblyParser.js b/lib/wasm-async/AsyncWebAssemblyParser.js
index 1e88fc85c..9da0cde0e 100644
--- a/lib/wasm-async/AsyncWebAssemblyParser.js
+++ b/lib/wasm-async/AsyncWebAssemblyParser.js
@@ -26,15 +26,6 @@ const decoderOpts = {
};
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 {ParserState} state the parser state
diff --git a/lib/wasm-sync/WebAssemblyParser.js b/lib/wasm-sync/WebAssemblyParser.js
index ab8e313cd..3758be543 100644
--- a/lib/wasm-sync/WebAssemblyParser.js
+++ b/lib/wasm-sync/WebAssemblyParser.js
@@ -63,15 +63,6 @@ const decoderOpts = {
};
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 {ParserState} state the parser state
diff --git a/package.json b/package.json
index a22bbd337..fdf3140fe 100644
--- a/package.json
+++ b/package.json
@@ -101,8 +101,8 @@
"loader-runner": "^4.2.0",
"mime-types": "^2.1.27",
"neo-async": "^2.6.2",
- "schema-utils": "^4.3.2",
- "tapable": "^2.2.3",
+ "schema-utils": "^4.3.3",
+ "tapable": "^2.3.0",
"terser-webpack-plugin": "^5.3.11",
"watchpack": "^2.4.4",
"webpack-sources": "^3.3.3"
@@ -184,7 +184,7 @@
"toml": "^3.0.0",
"tooling": "webpack/tooling#v1.24.3",
"ts-loader": "^9.5.1",
- "typescript": "^5.9.2",
+ "typescript": "^5.9.3",
"url-loader": "^4.1.0",
"wast-loader": "^1.12.1",
"webassembly-feature": "1.3.0",
diff --git a/types.d.ts b/types.d.ts
index 09672fb10..e25fb870c 100644
--- a/types.d.ts
+++ b/types.d.ts
@@ -24,7 +24,7 @@ import {
ClassBody,
ClassDeclaration,
ClassExpression,
- Comment,
+ Comment as CommentImport,
ConditionalExpression,
ContinueStatement,
DebuggerStatement,
@@ -99,9 +99,11 @@ import {
} from "inspector";
import { JSONSchema4, JSONSchema6, JSONSchema7 } from "json-schema";
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 { ValidationErrorConfiguration } from "schema-utils/declarations/validate";
import {
AsArray,
AsyncParallelHook,
@@ -114,7 +116,8 @@ import {
SyncBailHook,
SyncHook,
SyncWaterfallHook,
- TapOptions
+ TapOptions,
+ TypedHookMap
} from "tapable";
import { SecureContextOptions, TlsOptions } from "tls";
import { URL } from "url";
@@ -297,6 +300,14 @@ declare interface Asset {
*/
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 {
sourceType: "css-url";
}
@@ -311,6 +322,25 @@ type AssetFilterItemTypes =
| string
| RegExp
| ((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.
@@ -349,6 +379,15 @@ declare interface AssetInlineGeneratorOptions {
context: { filename: string; module: Module }
) => string);
}
+declare abstract class AssetParser extends ParserClass {
+ dataUrlCondition?:
+ | boolean
+ | AssetParserDataUrlOptions
+ | ((
+ source: string | Buffer,
+ context: { filename: string; module: Module }
+ ) => boolean);
+}
/**
* Options object for DataUrl condition.
@@ -404,6 +443,14 @@ declare interface AssetResourceGeneratorOptions {
*/
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 {
constructor(
groupOptions:
@@ -473,6 +520,7 @@ declare interface AsyncWebAssemblyModulesPluginOptions {
*/
mangleImports?: boolean;
}
+declare abstract class AsyncWebAssemblyParser extends ParserClass {}
declare class AutomaticPrefetchPlugin {
constructor();
@@ -2044,6 +2092,11 @@ declare interface ColorsOptions {
*/
useColor?: boolean;
}
+declare interface CommentCssParser {
+ value: string;
+ range: [number, number];
+ loc: { start: Position; end: Position };
+}
declare interface CommonJsImportSettings {
name?: string;
context: string;
@@ -3558,6 +3611,23 @@ declare interface CssData {
*/
exports: Map;
}
+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.
@@ -3753,6 +3823,19 @@ declare class CssModulesPlugin {
): TemplatePath;
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;
+ errors: null | (Error & { comment: CommentCssParser })[];
+ };
+}
/**
* Parser options for css modules.
@@ -6380,35 +6463,6 @@ declare interface ImportDependencyMeta {
externalType?: "import" | "module";
}
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";
};
declare interface ImportModuleOptions {
@@ -6623,6 +6677,33 @@ declare interface IteratorObject
[Symbol.iterator](): IteratorObject;
[Symbol.dispose](): void;
}
+declare abstract class JavascriptGenerator extends Generator {
+ generateError(
+ error: Error,
+ module: NormalModule,
+ generateContext: GenerateContext
+ ): null | Source;
+ sourceModule(
+ module: Module,
+ initFragments: InitFragment[],
+ source: ReplaceSource,
+ generateContext: GenerateContext
+ ): void;
+ sourceBlock(
+ module: Module,
+ block: DependenciesBlock,
+ initFragments: InitFragment[],
+ source: ReplaceSource,
+ generateContext: GenerateContext
+ ): void;
+ sourceDependency(
+ module: Module,
+ dependency: Dependency,
+ initFragments: InitFragment[],
+ source: ReplaceSource,
+ generateContext: GenerateContext
+ ): void;
+}
declare class JavascriptModulesPlugin {
constructor(options?: object);
options: object;
@@ -7107,15 +7188,15 @@ declare class JavascriptParser extends ParserClass {
[LogicalExpression],
boolean | void
>;
- program: SyncBailHook<[Program, Comment[]], boolean | void>;
+ program: SyncBailHook<[Program, CommentImport[]], 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>;
}>;
sourceType: "module" | "auto" | "script";
scope: ScopeInfo;
state: ParserState;
- comments?: Comment[];
+ comments?: CommentImport[];
semicolons?: Set;
statementPath?: StatementPathItem[];
prevStatement?:
@@ -7939,7 +8020,7 @@ declare class JavascriptParser extends ParserClass {
| MaybeNamedClassDeclaration,
commentsStartPos: number
): boolean;
- getComments(range: [number, number]): Comment[];
+ getComments(range: [number, number]): CommentImport[];
isAsiPosition(pos: number): boolean;
setAsiPosition(pos: number): void;
unsetAsiPosition(pos: number): void;
@@ -7975,7 +8056,7 @@ declare class JavascriptParser extends ParserClass {
evaluatedVariable(tagInfo: TagInfo): VariableInfo;
parseCommentOptions(range: [number, number]): {
options: null | Record;
- errors: null | (Error & { comment: Comment })[];
+ errors: null | (Error & { comment: CommentImport })[];
};
extractMemberExpressionChain(
expression:
@@ -8327,6 +8408,14 @@ declare abstract class JsonData {
| JsonValueFs[];
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.
@@ -8337,6 +8426,17 @@ declare interface JsonGeneratorOptions {
*/
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 {
[index: string]:
| undefined
@@ -8357,6 +8457,9 @@ declare interface JsonObjectTypes {
| JsonObjectTypes
| JsonValueTypes[];
}
+declare abstract class JsonParser extends ParserClass {
+ options: JsonModulesPluginParserOptions;
+}
/**
* Parser options for JSON modules.
@@ -11288,12 +11391,225 @@ declare abstract class NormalModuleFactory extends ModuleFactory {
],
Module
>;
- createParser: HookMap>;
- parser: HookMap>;
- createGenerator: HookMap<
- SyncBailHook<[GeneratorOptions], void | Generator>
+ createParser: TypedHookMap<
+ Record<
+ "javascript/auto",
+ 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>
+ >;
+ 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>
+ >;
+ 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>
+ >;
+ 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>
>;
- generator: HookMap>;
createModuleClass: HookMap<
SyncBailHook<
[
@@ -13166,6 +13482,10 @@ declare interface PnpApi {
options: { considerBuiltins: boolean }
) => null | string;
}
+declare interface Position {
+ line: number;
+ column: number;
+}
declare class PrefetchPlugin {
constructor(context: string, request?: string);
context: null | string;
@@ -17815,6 +18135,7 @@ declare abstract class WeakTupleMap {
delete(...args: K): void;
clear(): void;
}
+declare abstract class WebAssemblyParser extends ParserClass {}
declare interface WebAssemblyRenderContext {
/**
* the chunk
diff --git a/yarn.lock b/yarn.lock
index 32933ecda..6f644b9b8 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2393,7 +2393,7 @@ camelcase@^6.3.0:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
-caniuse-lite@^1.0.30001737, caniuse-lite@^1.0.30001746:
+caniuse-lite@^1.0.30001746:
version "1.0.30001746"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001746.tgz#199d20f04f5369825e00ff7067d45d5dfa03aee7"
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"
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"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.228.tgz#38b849bc8714bd21fb64f5ad56bf8cfd8638e1e9"
integrity sha512-nxkiyuqAn4MJ1QbobwqJILiDtu/jk14hEAWaMiJmNPh1Z+jqoFlBFZjdXwLWGeVSeu9hGLg6+2G9yJaW8rBIFA==
@@ -6247,7 +6247,7 @@ node-preload@^0.2.1:
dependencies:
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"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.21.tgz#f59b018bc0048044be2d4c4c04e4c8b18160894c"
integrity sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==
@@ -7179,10 +7179,10 @@ schema-utils@^3.0.0, schema-utils@^3.1.1:
ajv "^6.12.5"
ajv-keywords "^3.5.2"
-schema-utils@^4.0.0, schema-utils@^4.3.0, schema-utils@^4.3.2:
- version "4.3.2"
- resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.2.tgz#0c10878bf4a73fd2b1dfd14b9462b26788c806ae"
- integrity sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==
+schema-utils@^4.0.0, schema-utils@^4.3.0, schema-utils@^4.3.3:
+ version "4.3.3"
+ resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.3.tgz#5b1850912fa31df90716963d45d9121fdfc09f46"
+ integrity sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==
dependencies:
"@types/json-schema" "^7.0.9"
ajv "^8.9.0"
@@ -7685,10 +7685,10 @@ synckit@^0.11.7, synckit@^0.11.8:
dependencies:
"@pkgr/core" "^0.2.4"
-tapable@^2.2.0, tapable@^2.2.1, tapable@^2.2.3:
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.3.tgz#4b67b635b2d97578a06a2713d2f04800c237e99b"
- integrity sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==
+tapable@^2.2.0, tapable@^2.2.1, tapable@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.3.0.tgz#7e3ea6d5ca31ba8e078b560f0d83ce9a14aa8be6"
+ integrity sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==
tar@^7.4.3:
version "7.4.3"
@@ -7973,10 +7973,10 @@ typedarray-to-buffer@^3.1.5:
dependencies:
is-typedarray "^1.0.0"
-typescript@^5.9.2:
- version "5.9.2"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.2.tgz#d93450cddec5154a2d5cabe3b8102b83316fb2a6"
- integrity sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==
+typescript@^5.9.3:
+ version "5.9.3"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f"
+ integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==
uglify-js@^3.1.4:
version "3.19.3"