mirror of https://github.com/webpack/webpack.git
				
				
				
			
		
			
				
	
	
		
			382 lines
		
	
	
		
			9.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
			
		
		
	
	
			382 lines
		
	
	
		
			9.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
| type EXPECTED_ANY = any;
 | |
| type EXPECTED_FUNCTION = Function;
 | |
| type EXPECTED_OBJECT = object;
 | |
| 
 | |
| declare module "*.json";
 | |
| 
 | |
| // Deprecated NodeJS API usages in webpack
 | |
| declare namespace NodeJS {
 | |
| 	interface Process {
 | |
| 		binding(internalModule: string): any;
 | |
| 	}
 | |
| 	interface ProcessVersions {
 | |
| 		pnp: "1" | "3";
 | |
| 	}
 | |
| }
 | |
| 
 | |
| declare module "typescript-iterable" {
 | |
| 	// New iterator interfaces from `lib.es2015.iterable.d.ts` for compatibility with old typescript versions and `dispose`
 | |
| 	interface Disposable {
 | |
| 		[Symbol.dispose](): void;
 | |
| 	}
 | |
| 
 | |
| 	export interface IteratorObject<T, TReturn = unknown, TNext = unknown>
 | |
| 		extends Iterator<T, TReturn, TNext>,
 | |
| 			Disposable {
 | |
| 		[Symbol.iterator](): IteratorObject<T, TReturn, TNext>;
 | |
| 	}
 | |
| 
 | |
| 	export interface SetIterator<T>
 | |
| 		extends IteratorObject<T, BuiltinIteratorReturn, unknown> {
 | |
| 		[Symbol.iterator](): SetIterator<T>;
 | |
| 	}
 | |
| }
 | |
| 
 | |
| declare module "neo-async" {
 | |
| 	interface QueueObject<T, E> {
 | |
| 		push(item: T): void;
 | |
| 		drain: () => void;
 | |
| 		error: (err: E) => void;
 | |
| 	}
 | |
| 
 | |
| 	export interface Dictionary<T> {
 | |
| 		[key: string]: T;
 | |
| 	}
 | |
| 	export type IterableCollection<T> = T[] | Iterable<T> | Dictionary<T>;
 | |
| 
 | |
| 	export interface ErrorCallback<T> {
 | |
| 		(err?: T): void;
 | |
| 	}
 | |
| 	export interface AsyncBooleanResultCallback<E> {
 | |
| 		(err?: E, truthValue?: boolean): void;
 | |
| 	}
 | |
| 	export interface AsyncResultCallback<T, E> {
 | |
| 		(err?: E, result?: T): void;
 | |
| 	}
 | |
| 	export interface AsyncResultArrayCallback<T, E> {
 | |
| 		(err: E | null, results?: Array<T | undefined>): void;
 | |
| 	}
 | |
| 	export interface AsyncResultObjectCallback<T, E> {
 | |
| 		(err: E | undefined, results: Dictionary<T | undefined>): void;
 | |
| 	}
 | |
| 
 | |
| 	export interface AsyncFunction<T, E> {
 | |
| 		(callback: (err?: E, result?: T) => void): void;
 | |
| 	}
 | |
| 	export interface AsyncFunctionEx<T, E> {
 | |
| 		(callback: (err?: E, ...results: T[]) => void): void;
 | |
| 	}
 | |
| 	export interface AsyncIterator<T, E> {
 | |
| 		(item: T, callback: ErrorCallback<E>): void;
 | |
| 	}
 | |
| 	export interface AsyncForEachOfIterator<T, E> {
 | |
| 		(item: T, key: number | string, callback: ErrorCallback<E>): void;
 | |
| 	}
 | |
| 	export interface AsyncResultIterator<T, R, E> {
 | |
| 		(item: T, callback: AsyncResultCallback<R, E>): void;
 | |
| 	}
 | |
| 	export interface AsyncMemoIterator<T, R, E> {
 | |
| 		(memo: R | undefined, item: T, callback: AsyncResultCallback<R, E>): void;
 | |
| 	}
 | |
| 	export interface AsyncBooleanIterator<T, E> {
 | |
| 		(item: T, callback: AsyncBooleanResultCallback<E>): void;
 | |
| 	}
 | |
| 
 | |
| 	export interface AsyncWorker<T, E> {
 | |
| 		(task: T, callback: ErrorCallback<E>): void;
 | |
| 	}
 | |
| 	export interface AsyncVoidFunction<E> {
 | |
| 		(callback: ErrorCallback<E>): void;
 | |
| 	}
 | |
| 
 | |
| 	export type AsyncAutoTasks<R extends Dictionary<any>, E> = {
 | |
| 		[K in keyof R]: AsyncAutoTask<R[K], R, E>;
 | |
| 	};
 | |
| 	export type AsyncAutoTask<R1, R extends Dictionary<any>, E> =
 | |
| 		| AsyncAutoTaskFunctionWithoutDependencies<R1, E>
 | |
| 		| (keyof R | AsyncAutoTaskFunction<R1, R, E>)[];
 | |
| 	export interface AsyncAutoTaskFunctionWithoutDependencies<R1, E> {
 | |
| 		(cb: AsyncResultCallback<R1, E> | ErrorCallback<E>): void;
 | |
| 	}
 | |
| 	export interface AsyncAutoTaskFunction<R1, R extends Dictionary<any>, E> {
 | |
| 		(results: R, cb: AsyncResultCallback<R1, E> | ErrorCallback<E>): void;
 | |
| 	}
 | |
| 
 | |
| 	export function each<T, E>(
 | |
| 		arr: IterableCollection<T>,
 | |
| 		iterator: AsyncIterator<T, E>,
 | |
| 		callback?: ErrorCallback<E>
 | |
| 	): void;
 | |
| 
 | |
| 	export function eachLimit<T, E>(
 | |
| 		arr: IterableCollection<T>,
 | |
| 		limit: number,
 | |
| 		iterator: AsyncIterator<T, E>,
 | |
| 		callback?: ErrorCallback<E>
 | |
| 	): void;
 | |
| 
 | |
| 	export function map<T, R, E>(
 | |
| 		arr: T[] | IterableIterator<T>,
 | |
| 		iterator: AsyncResultIterator<T, R, E>,
 | |
| 		callback?: AsyncResultArrayCallback<R, E>
 | |
| 	): void;
 | |
| 	export function map<T, R, E>(
 | |
| 		arr: Dictionary<T>,
 | |
| 		iterator: AsyncResultIterator<T, R, E>,
 | |
| 		callback?: AsyncResultArrayCallback<R, E>
 | |
| 	): void;
 | |
| 
 | |
| 	export function parallel<T, E>(
 | |
| 		tasks: Array<AsyncFunction<T, E>>,
 | |
| 		callback?: AsyncResultArrayCallback<T, E>
 | |
| 	): void;
 | |
| 	export function parallel<T, E>(
 | |
| 		tasks: Dictionary<AsyncFunction<T, E>>,
 | |
| 		callback?: AsyncResultObjectCallback<T, E>
 | |
| 	): void;
 | |
| 
 | |
| 	export function queue<T, E>(
 | |
| 		worker: AsyncIterator<T, E>,
 | |
| 		concurrency?: number
 | |
| 	): QueueObject<T, E>;
 | |
| 
 | |
| 	export const forEach: typeof each;
 | |
| 	export const forEachLimit: typeof eachLimit;
 | |
| }
 | |
| 
 | |
| // There are no typings for @webassemblyjs/ast
 | |
| declare module "@webassemblyjs/ast" {
 | |
| 	export class AST extends Node {
 | |
| 		type: "Program";
 | |
| 		body: [Module];
 | |
| 	}
 | |
| 	export interface Visitor {
 | |
| 		ModuleImport?: (p: NodePath<ModuleImport>) => void;
 | |
| 		ModuleExport?: (p: NodePath<ModuleExport>) => void;
 | |
| 		Start?: (p: NodePath<Start>) => void;
 | |
| 		Global?: (p: NodePath<Global>) => void;
 | |
| 	}
 | |
| 	export function traverse(node: Node, visitor: Visitor): void;
 | |
| 	export class NodePath<T> {
 | |
| 		node: T;
 | |
| 		remove(): void;
 | |
| 	}
 | |
| 	export class Node {
 | |
| 		type: string;
 | |
| 	}
 | |
| 	export class Identifier extends Node {
 | |
| 		value: string;
 | |
| 	}
 | |
| 	export class Start extends Node {
 | |
| 		index: Identifier;
 | |
| 	}
 | |
| 	export class Module extends Node {
 | |
| 		id: string;
 | |
| 		fields: Node[];
 | |
| 		metadata?: Record<string, EXPECTED_ANY>;
 | |
| 	}
 | |
| 	export class ModuleImportDescription {
 | |
| 		type: string;
 | |
| 		valtype?: string;
 | |
| 		id?: Identifier;
 | |
| 		signature?: Signature;
 | |
| 		mutability: string;
 | |
| 	}
 | |
| 	export class ModuleImport extends Node {
 | |
| 		module: string;
 | |
| 		descr: ModuleImportDescription;
 | |
| 		name: string;
 | |
| 	}
 | |
| 	export class ModuleExport extends Node {
 | |
| 		name: string;
 | |
| 		descr: ModuleExportDescr;
 | |
| 	}
 | |
| 	type Index = NumberLiteral;
 | |
| 	export class ModuleExportDescr extends Node {
 | |
| 		type: string;
 | |
| 		exportType: string;
 | |
| 		id: Index;
 | |
| 	}
 | |
| 	export class NumberLiteral extends Node {
 | |
| 		value: number;
 | |
| 		raw: string;
 | |
| 	}
 | |
| 	export class FloatLiteral extends Node {}
 | |
| 	export class GlobalType extends Node {
 | |
| 		valtype: string;
 | |
| 		mutability: string;
 | |
| 	}
 | |
| 	export class Global extends Node {
 | |
| 		init: Instruction[];
 | |
| 		globalType: GlobalType;
 | |
| 	}
 | |
| 	export class FuncParam extends Node {
 | |
| 		valtype: string;
 | |
| 	}
 | |
| 	export class Instruction extends Node {
 | |
| 		id: string;
 | |
| 		args: NumberLiteral[];
 | |
| 	}
 | |
| 	export class CallInstruction extends Instruction {}
 | |
| 	export class ObjectInstruction extends Instruction {}
 | |
| 	export class Func extends Node {
 | |
| 		signature: Signature;
 | |
| 	}
 | |
| 	export class Signature {
 | |
| 		type: "Signature";
 | |
| 		params: FuncParam[];
 | |
| 		results: string[];
 | |
| 	}
 | |
| 	export class TypeInstruction extends Node {}
 | |
| 	export class IndexInFuncSection extends Node {}
 | |
| 	export function indexLiteral(index: number): Index;
 | |
| 	export function numberLiteralFromRaw(num: number): NumberLiteral;
 | |
| 	export function floatLiteral(
 | |
| 		value: number,
 | |
| 		nan?: boolean,
 | |
| 		inf?: boolean,
 | |
| 		raw?: string
 | |
| 	): FloatLiteral;
 | |
| 	export function global(globalType: GlobalType, nodes: Node[]): Global;
 | |
| 	export function identifier(identifier: string): Identifier;
 | |
| 	export function funcParam(valType: string, id: Identifier): FuncParam;
 | |
| 	export function instruction(inst: string, args?: Node[]): Instruction;
 | |
| 	export function callInstruction(funcIndex: Index): CallInstruction;
 | |
| 	export function objectInstruction(
 | |
| 		kind: string,
 | |
| 		type: string,
 | |
| 		init: Node[]
 | |
| 	): ObjectInstruction;
 | |
| 	export function signature(params: FuncParam[], results: string[]): Signature;
 | |
| 	export function func(
 | |
| 		initFuncId: Identifier,
 | |
| 		signature: Signature,
 | |
| 		funcBody: Instruction[]
 | |
| 	): Func;
 | |
| 	export function typeInstruction(
 | |
| 		id: Identifier | undefined,
 | |
| 		functype: Signature
 | |
| 	): TypeInstruction;
 | |
| 	export function indexInFuncSection(index: Index): IndexInFuncSection;
 | |
| 	export function moduleExport(
 | |
| 		identifier: string,
 | |
| 		descr: ModuleExportDescr
 | |
| 	): ModuleExport;
 | |
| 	export function moduleExportDescr(
 | |
| 		type: string,
 | |
| 		index: Index
 | |
| 	): ModuleExportDescr;
 | |
| 
 | |
| 	export function getSectionMetadata(
 | |
| 		ast: AST,
 | |
| 		section: string
 | |
| 	): { vectorOfSize: { value: number } };
 | |
| 	export class FuncSignature {
 | |
| 		args: string[];
 | |
| 		result: string[];
 | |
| 	}
 | |
| 	export function moduleContextFromModuleAST(module: Module): {
 | |
| 		getFunction(i: number): FuncSignature;
 | |
| 		getStart(): Index;
 | |
| 	};
 | |
| 
 | |
| 	// Node matcher
 | |
| 	export function isGlobalType(n: Node): boolean;
 | |
| 	export function isTable(n: Node): boolean;
 | |
| 	export function isMemory(n: Node): boolean;
 | |
| 	export function isFuncImportDescr(n: Node): boolean;
 | |
| }
 | |
| 
 | |
| declare module "@webassemblyjs/wasm-parser" {
 | |
| 	export function decode(
 | |
| 		source: string | Buffer,
 | |
| 		options: {
 | |
| 			dump?: boolean;
 | |
| 			ignoreCodeSection?: boolean;
 | |
| 			ignoreDataSection?: boolean;
 | |
| 			ignoreCustomNameSection?: boolean;
 | |
| 		}
 | |
| 	): import("@webassemblyjs/ast").AST;
 | |
| }
 | |
| 
 | |
| declare module "@webassemblyjs/wasm-edit" {
 | |
| 	export function addWithAST(
 | |
| 		ast: import("@webassemblyjs/ast").AST,
 | |
| 		bin: any,
 | |
| 		newNodes: import("@webassemblyjs/ast").Node[]
 | |
| 	): ArrayBuffer;
 | |
| 	export function editWithAST(
 | |
| 		ast: import("@webassemblyjs/ast").AST,
 | |
| 		bin: any,
 | |
| 		visitors: import("@webassemblyjs/ast").Visitor
 | |
| 	): ArrayBuffer;
 | |
| }
 | |
| 
 | |
| declare module "webpack-sources" {
 | |
| 	export {
 | |
| 		SourceLike,
 | |
| 		RawSourceMap,
 | |
| 		MapOptions,
 | |
| 		Source,
 | |
| 		RawSource,
 | |
| 		OriginalSource,
 | |
| 		ReplaceSource,
 | |
| 		SourceMapSource,
 | |
| 		ConcatSource,
 | |
| 		PrefixSource,
 | |
| 		CachedSource,
 | |
| 		SizeOnlySource,
 | |
| 		CompatSource
 | |
| 	} from "webpack-sources/types";
 | |
| }
 | |
| 
 | |
| declare module "json-parse-even-better-errors" {
 | |
| 	function parseJson(
 | |
| 		text: string,
 | |
| 		reviver?: (this: any, key: string, value: any) => any,
 | |
| 		context?: number
 | |
| 	): any;
 | |
| 	export = parseJson;
 | |
| }
 | |
| 
 | |
| type RecursiveArrayOrRecord<T> =
 | |
| 	| { [index: string]: RecursiveArrayOrRecord<T> }
 | |
| 	| Array<RecursiveArrayOrRecord<T>>
 | |
| 	| T;
 | |
| 
 | |
| declare module "loader-runner" {
 | |
| 	export function getContext(resource: string): string;
 | |
| 	export function runLoaders(
 | |
| 		options: any,
 | |
| 		callback: (err: Error | null, result: any) => void
 | |
| 	): void;
 | |
| }
 | |
| 
 | |
| declare module "watchpack" {
 | |
| 	class Watchpack {
 | |
| 		aggregatedChanges: Set<string>;
 | |
| 		aggregatedRemovals: Set<string>;
 | |
| 		constructor(options: import("./declarations/WebpackOptions").WatchOptions);
 | |
| 		once(eventName: string, callback: any): void;
 | |
| 		watch(options: any): void;
 | |
| 		collectTimeInfoEntries(
 | |
| 			fileTimeInfoEntries: Map<string, number>,
 | |
| 			contextTimeInfoEntries: Map<string, number>
 | |
| 		): void;
 | |
| 		pause(): void;
 | |
| 		close(): void;
 | |
| 	}
 | |
| 	export = Watchpack;
 | |
| }
 | |
| 
 | |
| declare module "eslint-scope/lib/referencer" {
 | |
| 	type Property = import("estree").Property;
 | |
| 	type PropertyDefinition = import("estree").PropertyDefinition;
 | |
| 
 | |
| 	class Referencer {
 | |
| 		Property(node: PropertyDefinition | Property): void;
 | |
| 		PropertyDefinition(node: PropertyDefinition): void;
 | |
| 	}
 | |
| 	export = Referencer;
 | |
| }
 |