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"