From 76cb9c2a39d477a64824a985ade40507e3bbade1 Mon Sep 17 00:00:00 2001 From: Adam Mathes Date: Fri, 13 Feb 2026 21:34:48 -0800 Subject: feat(vanilla): add testing infrastructure and tests (NK-wjnczv) --- vanilla/node_modules/rollup/dist/rollup.d.ts | 1225 ++++++++++++++++++++++++++ 1 file changed, 1225 insertions(+) create mode 100644 vanilla/node_modules/rollup/dist/rollup.d.ts (limited to 'vanilla/node_modules/rollup/dist/rollup.d.ts') diff --git a/vanilla/node_modules/rollup/dist/rollup.d.ts b/vanilla/node_modules/rollup/dist/rollup.d.ts new file mode 100644 index 0000000..799df4a --- /dev/null +++ b/vanilla/node_modules/rollup/dist/rollup.d.ts @@ -0,0 +1,1225 @@ +import type * as estree from 'estree'; + +declare module 'estree' { + export interface Decorator extends estree.BaseNode { + type: 'Decorator'; + expression: estree.Expression; + } + interface PropertyDefinition { + decorators: estree.Decorator[]; + } + interface MethodDefinition { + decorators: estree.Decorator[]; + } + interface BaseClass { + decorators: estree.Decorator[]; + } +} + +export const VERSION: string; + +// utils +type NullValue = null | undefined | void; +type MaybeArray = T | T[]; +type MaybePromise = T | Promise; + +type PartialNull = { + [P in keyof T]: T[P] | null; +}; + +export interface RollupError extends RollupLog { + name?: string | undefined; + stack?: string | undefined; + watchFiles?: string[] | undefined; +} + +export interface RollupLog { + binding?: string | undefined; + cause?: unknown | undefined; + code?: string | undefined; + exporter?: string | undefined; + frame?: string | undefined; + hook?: string | undefined; + id?: string | undefined; + ids?: string[] | undefined; + loc?: { + column: number; + file?: string | undefined; + line: number; + }; + message: string; + meta?: any | undefined; + names?: string[] | undefined; + plugin?: string | undefined; + pluginCode?: unknown | undefined; + pos?: number | undefined; + reexporter?: string | undefined; + stack?: string | undefined; + url?: string | undefined; +} + +export type LogLevel = 'warn' | 'info' | 'debug'; +export type LogLevelOption = LogLevel | 'silent'; + +export type SourceMapSegment = + | [number] + | [number, number, number, number] + | [number, number, number, number, number]; + +export interface ExistingDecodedSourceMap { + file?: string | undefined; + readonly mappings: SourceMapSegment[][]; + names: string[]; + sourceRoot?: string | undefined; + sources: string[]; + sourcesContent?: string[] | undefined; + version: number; + x_google_ignoreList?: number[] | undefined; +} + +export interface ExistingRawSourceMap { + file?: string | undefined; + mappings: string; + names: string[]; + sourceRoot?: string | undefined; + sources: string[]; + sourcesContent?: string[] | undefined; + version: number; + x_google_ignoreList?: number[] | undefined; +} + +export type DecodedSourceMapOrMissing = + | { + missing: true; + plugin: string; + } + | (ExistingDecodedSourceMap & { missing?: false | undefined }); + +export interface SourceMap { + file: string; + mappings: string; + names: string[]; + sources: string[]; + sourcesContent?: string[] | undefined; + version: number; + debugId?: string | undefined; + toString(): string; + toUrl(): string; +} + +export type SourceMapInput = ExistingRawSourceMap | string | null | { mappings: '' }; + +interface ModuleOptions { + attributes: Record; + meta: CustomPluginOptions; + moduleSideEffects: boolean | 'no-treeshake'; + syntheticNamedExports: boolean | string; +} + +export interface SourceDescription extends Partial> { + ast?: ProgramNode | undefined; + code: string; + map?: SourceMapInput | undefined; +} + +export interface TransformModuleJSON { + ast?: ProgramNode | undefined; + code: string; + safeVariableNames: Record | null; + // note if plugins use new this.cache to opt-out auto transform cache + customTransformCache: boolean; + originalCode: string; + originalSourcemap: ExistingDecodedSourceMap | null; + sourcemapChain: DecodedSourceMapOrMissing[]; + transformDependencies: string[]; +} + +export interface ModuleJSON extends TransformModuleJSON, ModuleOptions { + safeVariableNames: Record | null; + ast: ProgramNode; + dependencies: string[]; + id: string; + resolvedIds: ResolvedIdMap; + transformFiles: EmittedFile[] | undefined; +} + +export interface PluginCache { + delete(id: string): boolean; + get(id: string): T; + has(id: string): boolean; + set(id: string, value: T): void; +} + +export type LoggingFunction = (log: RollupLog | string | (() => RollupLog | string)) => void; + +export interface MinimalPluginContext { + debug: LoggingFunction; + error: (error: RollupError | string) => never; + info: LoggingFunction; + meta: PluginContextMeta; + warn: LoggingFunction; +} + +export interface EmittedAsset { + fileName?: string | undefined; + name?: string | undefined; + needsCodeReference?: boolean | undefined; + originalFileName?: string | null | undefined; + source?: string | Uint8Array | undefined; + type: 'asset'; +} + +export interface EmittedChunk { + fileName?: string | undefined; + id: string; + implicitlyLoadedAfterOneOf?: string[] | undefined; + importer?: string | undefined; + name?: string | undefined; + preserveSignature?: PreserveEntrySignaturesOption | undefined; + type: 'chunk'; +} + +export interface EmittedPrebuiltChunk { + code: string; + exports?: string[] | undefined; + fileName: string; + map?: SourceMap | undefined; + sourcemapFileName?: string | undefined; + type: 'prebuilt-chunk'; +} + +export type EmittedFile = EmittedAsset | EmittedChunk | EmittedPrebuiltChunk; + +export type EmitFile = (emittedFile: EmittedFile) => string; + +export interface ModuleInfo extends ModuleOptions { + ast: ProgramNode | null; + code: string | null; + dynamicImporters: readonly string[]; + dynamicallyImportedIdResolutions: readonly ResolvedId[]; + dynamicallyImportedIds: readonly string[]; + exportedBindings: Record | null; + exports: string[] | null; + safeVariableNames: Record | null; + hasDefaultExport: boolean | null; + id: string; + implicitlyLoadedAfterOneOf: readonly string[]; + implicitlyLoadedBefore: readonly string[]; + importedIdResolutions: readonly ResolvedId[]; + importedIds: readonly string[]; + importers: readonly string[]; + isEntry: boolean; + isExternal: boolean; + isIncluded: boolean | null; +} + +export type GetModuleInfo = (moduleId: string) => ModuleInfo | null; + +// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style -- this is an interface so that it can be extended by plugins +export interface CustomPluginOptions { + [plugin: string]: any; +} + +type LoggingFunctionWithPosition = ( + log: RollupLog | string | (() => RollupLog | string), + pos?: number | { column: number; line: number } +) => void; + +export type ParseAst = ( + input: string, + options?: { allowReturnOutsideFunction?: boolean; jsx?: boolean } +) => ProgramNode; + +// declare AbortSignal here for environments without DOM lib or @types/node +declare global { + // eslint-disable-next-line @typescript-eslint/no-empty-object-type + interface AbortSignal {} +} + +export type ParseAstAsync = ( + input: string, + options?: { allowReturnOutsideFunction?: boolean; jsx?: boolean; signal?: AbortSignal } +) => Promise; + +export interface PluginContext extends MinimalPluginContext { + addWatchFile: (id: string) => void; + cache: PluginCache; + debug: LoggingFunction; + emitFile: EmitFile; + error: (error: RollupError | string) => never; + fs: RollupFsModule; + getFileName: (fileReferenceId: string) => string; + getModuleIds: () => IterableIterator; + getModuleInfo: GetModuleInfo; + getWatchFiles: () => string[]; + info: LoggingFunction; + load: ( + options: { id: string; resolveDependencies?: boolean } & Partial> + ) => Promise; + parse: ParseAst; + resolve: ( + source: string, + importer?: string, + options?: { + importerAttributes?: Record; + attributes?: Record; + custom?: CustomPluginOptions; + isEntry?: boolean; + skipSelf?: boolean; + } + ) => Promise; + setAssetSource: (assetReferenceId: string, source: string | Uint8Array) => void; + warn: LoggingFunction; +} + +export interface PluginContextMeta { + rollupVersion: string; + watchMode: boolean; +} + +export type StringOrRegExp = string | RegExp; + +export type StringFilter = + | MaybeArray + | { + include?: MaybeArray | undefined; + exclude?: MaybeArray | undefined; + }; + +export interface HookFilter { + id?: StringFilter | undefined; + code?: StringFilter | undefined; +} + +export interface ResolvedId extends ModuleOptions { + external: boolean | 'absolute'; + id: string; + resolvedBy: string; +} + +export type ResolvedIdMap = Record; + +export interface PartialResolvedId extends Partial> { + external?: boolean | 'absolute' | 'relative' | undefined; + id: string; + resolvedBy?: string | undefined; +} + +export type ResolveIdResult = string | NullValue | false | PartialResolvedId; + +export type ResolveIdResultWithoutNullValue = string | false | PartialResolvedId; + +export type ResolveIdHook = ( + this: PluginContext, + source: string, + importer: string | undefined, + options: { + attributes: Record; + custom?: CustomPluginOptions; + importerAttributes?: Record | undefined; + isEntry: boolean; + } +) => ResolveIdResult; + +export type ShouldTransformCachedModuleHook = ( + this: PluginContext, + options: { + ast: ProgramNode; + attributes: Record; + code: string; + id: string; + meta: CustomPluginOptions; + moduleSideEffects: boolean | 'no-treeshake'; + resolvedSources: ResolvedIdMap; + syntheticNamedExports: boolean | string; + } +) => boolean | NullValue; + +export type IsExternal = ( + source: string, + importer: string | undefined, + isResolved: boolean +) => boolean; + +export type HasModuleSideEffects = (id: string, external: boolean) => boolean; + +export type LoadResult = SourceDescription | string | NullValue; + +export type LoadHook = ( + this: PluginContext, + id: string, + // temporarily marked as optional for better Vite type-compatibility + options?: + | { + // unused, temporarily added for better Vite type-compatibility + ssr?: boolean | undefined; + // temporarily marked as optional for better Vite type-compatibility + attributes?: Record; + } + | undefined +) => LoadResult; + +export interface TransformPluginContext extends PluginContext { + debug: LoggingFunctionWithPosition; + error: (error: RollupError | string, pos?: number | { column: number; line: number }) => never; + getCombinedSourcemap: () => SourceMap; + info: LoggingFunctionWithPosition; + warn: LoggingFunctionWithPosition; +} + +export type TransformResult = string | NullValue | Partial; + +export type TransformHook = ( + this: TransformPluginContext, + code: string, + id: string, + // temporarily marked as optional for better Vite type-compatibility + options?: + | { + // unused, temporarily added for better Vite type-compatibility + ssr?: boolean | undefined; + // temporarily marked as optional for better Vite type-compatibility + attributes?: Record; + } + | undefined +) => TransformResult; + +export type ModuleParsedHook = (this: PluginContext, info: ModuleInfo) => void; + +export type RenderChunkHook = ( + this: PluginContext, + code: string, + chunk: RenderedChunk, + options: NormalizedOutputOptions, + meta: { chunks: Record } +) => { code: string; map?: SourceMapInput } | string | NullValue; + +export type ResolveDynamicImportHook = ( + this: PluginContext, + specifier: string | AstNode, + importer: string, + options: { attributes: Record; importerAttributes: Record } +) => ResolveIdResult; + +export type ResolveImportMetaHook = ( + this: PluginContext, + property: string | null, + options: { + attributes: Record; + chunkId: string; + format: InternalModuleFormat; + moduleId: string; + } +) => string | NullValue; + +export type ResolveFileUrlHook = ( + this: PluginContext, + options: { + attributes: Record; + chunkId: string; + fileName: string; + format: InternalModuleFormat; + moduleId: string; + referenceId: string; + relativePath: string; + } +) => string | NullValue; + +export type AddonHookFunction = ( + this: PluginContext, + chunk: RenderedChunk +) => string | Promise; +export type AddonHook = string | AddonHookFunction; + +export type ChangeEvent = 'create' | 'update' | 'delete'; +export type WatchChangeHook = ( + this: PluginContext, + id: string, + change: { event: ChangeEvent } +) => void; + +/** + * use this type for plugin annotation + * @example + * ```ts + * interface Options { + * ... + * } + * const myPlugin: PluginImpl = (options = {}) => { ... } + * ``` + */ +export type PluginImpl = (options?: O) => Plugin; + +export type OutputBundle = Record; + +export type PreRenderedChunkWithFileName = PreRenderedChunk & { fileName: string }; + +export interface ImportedInternalChunk { + type: 'internal'; + fileName: string; + resolvedImportPath: string; + chunk: PreRenderedChunk; +} + +export interface ImportedExternalChunk { + type: 'external'; + fileName: string; + resolvedImportPath: string; +} + +export type DynamicImportTargetChunk = ImportedInternalChunk | ImportedExternalChunk; + +export interface FunctionPluginHooks { + augmentChunkHash: (this: PluginContext, chunk: RenderedChunk) => string | void; + buildEnd: (this: PluginContext, error?: Error) => void; + buildStart: (this: PluginContext, options: NormalizedInputOptions) => void; + closeBundle: (this: PluginContext, error?: Error) => void; + closeWatcher: (this: PluginContext) => void; + generateBundle: ( + this: PluginContext, + options: NormalizedOutputOptions, + bundle: OutputBundle, + isWrite: boolean + ) => void; + load: LoadHook; + moduleParsed: ModuleParsedHook; + onLog: (this: MinimalPluginContext, level: LogLevel, log: RollupLog) => boolean | NullValue; + options: (this: MinimalPluginContext, options: InputOptions) => InputOptions | NullValue; + outputOptions: (this: PluginContext, options: OutputOptions) => OutputOptions | NullValue; + renderChunk: RenderChunkHook; + renderDynamicImport: ( + this: PluginContext, + options: { + customResolution: string | null; + format: InternalModuleFormat; + moduleId: string; + targetModuleId: string | null; + chunk: PreRenderedChunkWithFileName; + targetChunk: PreRenderedChunkWithFileName | null; + getTargetChunkImports: () => DynamicImportTargetChunk[] | null; + targetModuleAttributes: Record; + } + ) => { left: string; right: string } | NullValue; + renderError: (this: PluginContext, error?: Error) => void; + renderStart: ( + this: PluginContext, + outputOptions: NormalizedOutputOptions, + inputOptions: NormalizedInputOptions + ) => void; + resolveDynamicImport: ResolveDynamicImportHook; + resolveFileUrl: ResolveFileUrlHook; + resolveId: ResolveIdHook; + resolveImportMeta: ResolveImportMetaHook; + shouldTransformCachedModule: ShouldTransformCachedModuleHook; + transform: TransformHook; + watchChange: WatchChangeHook; + writeBundle: ( + this: PluginContext, + options: NormalizedOutputOptions, + bundle: OutputBundle + ) => void; +} + +export type OutputPluginHooks = + | 'augmentChunkHash' + | 'generateBundle' + | 'outputOptions' + | 'renderChunk' + | 'renderDynamicImport' + | 'renderError' + | 'renderStart' + | 'resolveFileUrl' + | 'resolveImportMeta' + | 'writeBundle'; + +export type InputPluginHooks = Exclude; + +export type SyncPluginHooks = + | 'augmentChunkHash' + | 'onLog' + | 'outputOptions' + | 'renderDynamicImport' + | 'resolveFileUrl' + | 'resolveImportMeta'; + +export type AsyncPluginHooks = Exclude; + +export type FirstPluginHooks = + | 'load' + | 'renderDynamicImport' + | 'resolveDynamicImport' + | 'resolveFileUrl' + | 'resolveId' + | 'resolveImportMeta' + | 'shouldTransformCachedModule'; + +export type SequentialPluginHooks = + | 'augmentChunkHash' + | 'generateBundle' + | 'onLog' + | 'options' + | 'outputOptions' + | 'renderChunk' + | 'transform'; + +export type ParallelPluginHooks = Exclude< + keyof FunctionPluginHooks | AddonHooks, + FirstPluginHooks | SequentialPluginHooks +>; + +export type AddonHooks = 'banner' | 'footer' | 'intro' | 'outro'; + +type MakeAsync = Function_ extends ( + this: infer This, + ...parameters: infer Arguments +) => infer Return + ? (this: This, ...parameters: Arguments) => Return | Promise + : never; + +// eslint-disable-next-line @typescript-eslint/no-empty-object-type +export type ObjectHook = T | ({ handler: T; order?: 'pre' | 'post' | null } & O); + +export type HookFilterExtension = K extends 'transform' + ? { filter?: HookFilter | undefined } + : K extends 'load' + ? { filter?: Pick | undefined } + : K extends 'resolveId' + ? { filter?: { id?: StringFilter | undefined } } | undefined + : // eslint-disable-next-line @typescript-eslint/no-empty-object-type + {}; + +export type PluginHooks = { + [K in keyof FunctionPluginHooks]: ObjectHook< + K extends AsyncPluginHooks ? MakeAsync : FunctionPluginHooks[K], + // eslint-disable-next-line @typescript-eslint/no-empty-object-type + HookFilterExtension & (K extends ParallelPluginHooks ? { sequential?: boolean } : {}) + >; +}; + +export interface OutputPlugin + extends + Partial<{ [K in OutputPluginHooks]: PluginHooks[K] }>, + Partial>> { + cacheKey?: string | undefined; + name: string; + version?: string | undefined; +} + +export interface Plugin extends OutputPlugin, Partial { + // for inter-plugin communication + api?: A | undefined; +} + +export type JsxPreset = 'react' | 'react-jsx' | 'preserve' | 'preserve-react'; + +export type NormalizedJsxOptions = + | NormalizedJsxPreserveOptions + | NormalizedJsxClassicOptions + | NormalizedJsxAutomaticOptions; + +interface NormalizedJsxPreserveOptions { + factory: string | null; + fragment: string | null; + importSource: string | null; + mode: 'preserve'; +} + +interface NormalizedJsxClassicOptions { + factory: string; + fragment: string; + importSource: string | null; + mode: 'classic'; +} + +interface NormalizedJsxAutomaticOptions { + factory: string; + importSource: string | null; + jsxImportSource: string; + mode: 'automatic'; +} + +export type JsxOptions = Partial & { + preset?: JsxPreset | undefined; +}; + +export type TreeshakingPreset = 'smallest' | 'safest' | 'recommended'; + +export interface NormalizedTreeshakingOptions { + annotations: boolean; + correctVarValueBeforeDeclaration: boolean; + manualPureFunctions: readonly string[]; + moduleSideEffects: HasModuleSideEffects; + propertyReadSideEffects: boolean | 'always'; + tryCatchDeoptimization: boolean; + unknownGlobalSideEffects: boolean; +} + +export interface TreeshakingOptions extends Partial< + Omit +> { + moduleSideEffects?: ModuleSideEffectsOption | undefined; + preset?: TreeshakingPreset | undefined; +} + +interface ManualChunkMeta { + getModuleIds: () => IterableIterator; + getModuleInfo: GetModuleInfo; +} + +export type GetManualChunk = (id: string, meta: ManualChunkMeta) => string | NullValue; + +export type ExternalOption = + | (string | RegExp)[] + | string + | RegExp + | ((source: string, importer: string | undefined, isResolved: boolean) => boolean | NullValue); + +export type GlobalsOption = Record | ((name: string) => string); + +export type InputOption = string | string[] | Record; + +export type ManualChunksOption = Record | GetManualChunk; + +export type LogHandlerWithDefault = ( + level: LogLevel, + log: RollupLog, + defaultHandler: LogOrStringHandler +) => void; + +export type LogOrStringHandler = (level: LogLevel | 'error', log: RollupLog | string) => void; + +export type LogHandler = (level: LogLevel, log: RollupLog) => void; + +export type ModuleSideEffectsOption = boolean | 'no-external' | string[] | HasModuleSideEffects; + +export type PreserveEntrySignaturesOption = false | 'strict' | 'allow-extension' | 'exports-only'; + +export type SourcemapPathTransformOption = ( + relativeSourcePath: string, + sourcemapPath: string +) => string; + +export type SourcemapIgnoreListOption = ( + relativeSourcePath: string, + sourcemapPath: string +) => boolean; + +export type InputPluginOption = MaybePromise; + +export interface InputOptions { + cache?: boolean | RollupCache | undefined; + context?: string | undefined; + experimentalCacheExpiry?: number | undefined; + experimentalLogSideEffects?: boolean | undefined; + external?: ExternalOption | undefined; + fs?: RollupFsModule | undefined; + input?: InputOption | undefined; + jsx?: false | JsxPreset | JsxOptions | undefined; + logLevel?: LogLevelOption | undefined; + makeAbsoluteExternalsRelative?: boolean | 'ifRelativeSource' | undefined; + maxParallelFileOps?: number | undefined; + moduleContext?: ((id: string) => string | NullValue) | Record | undefined; + onLog?: LogHandlerWithDefault | undefined; + onwarn?: WarningHandlerWithDefault | undefined; + perf?: boolean | undefined; + plugins?: InputPluginOption | undefined; + preserveEntrySignatures?: PreserveEntrySignaturesOption | undefined; + preserveSymlinks?: boolean | undefined; + shimMissingExports?: boolean | undefined; + strictDeprecations?: boolean | undefined; + treeshake?: boolean | TreeshakingPreset | TreeshakingOptions | undefined; + watch?: WatcherOptions | false | undefined; +} + +export interface InputOptionsWithPlugins extends InputOptions { + plugins: Plugin[]; +} + +export interface NormalizedInputOptions { + cache: false | undefined | RollupCache; + context: string; + experimentalCacheExpiry: number; + experimentalLogSideEffects: boolean; + external: IsExternal; + fs: RollupFsModule; + input: string[] | Record; + jsx: false | NormalizedJsxOptions; + logLevel: LogLevelOption; + makeAbsoluteExternalsRelative: boolean | 'ifRelativeSource'; + maxParallelFileOps: number; + moduleContext: (id: string) => string; + onLog: LogHandler; + perf: boolean; + plugins: Plugin[]; + preserveEntrySignatures: PreserveEntrySignaturesOption; + preserveSymlinks: boolean; + shimMissingExports: boolean; + strictDeprecations: boolean; + treeshake: false | NormalizedTreeshakingOptions; +} + +export type InternalModuleFormat = 'amd' | 'cjs' | 'es' | 'iife' | 'system' | 'umd'; +export type ImportAttributesKey = 'with' | 'assert'; + +export type ModuleFormat = InternalModuleFormat | 'commonjs' | 'esm' | 'module' | 'systemjs'; + +type GeneratedCodePreset = 'es5' | 'es2015'; + +interface NormalizedGeneratedCodeOptions { + arrowFunctions: boolean; + constBindings: boolean; + objectShorthand: boolean; + reservedNamesAsProps: boolean; + symbols: boolean; +} + +interface GeneratedCodeOptions extends Partial { + preset?: GeneratedCodePreset | undefined; +} + +export type OptionsPaths = Record | ((id: string) => string); + +export type InteropType = 'compat' | 'auto' | 'esModule' | 'default' | 'defaultOnly'; + +export type GetInterop = (id: string | null) => InteropType; + +export type AmdOptions = ( + | { + autoId?: false | undefined; + id: string; + } + | { + autoId: true; + basePath?: string | undefined; + id?: undefined | undefined; + } + | { + autoId?: false | undefined; + id?: undefined | undefined; + } +) & { + define?: string | undefined; + forceJsExtensionForImports?: boolean | undefined; +}; + +export type NormalizedAmdOptions = ( + | { + autoId: false; + id?: string | undefined; + } + | { + autoId: true; + basePath: string; + } +) & { + define: string; + forceJsExtensionForImports: boolean; +}; + +type AddonFunction = (chunk: RenderedChunk) => string | Promise; + +type OutputPluginOption = MaybePromise; + +type HashCharacters = 'base64' | 'base36' | 'hex'; + +export interface OutputOptions { + amd?: AmdOptions | undefined; + assetFileNames?: string | ((chunkInfo: PreRenderedAsset) => string) | undefined; + banner?: string | AddonFunction | undefined; + chunkFileNames?: string | ((chunkInfo: PreRenderedChunk) => string) | undefined; + compact?: boolean | undefined; + // only required for bundle.write + dir?: string | undefined; + dynamicImportInCjs?: boolean | undefined; + entryFileNames?: string | ((chunkInfo: PreRenderedChunk) => string) | undefined; + esModule?: boolean | 'if-default-prop' | undefined; + experimentalMinChunkSize?: number | undefined; + exports?: 'default' | 'named' | 'none' | 'auto' | undefined; + extend?: boolean | undefined; + /** @deprecated Use "externalImportAttributes" instead. */ + externalImportAssertions?: boolean | undefined; + externalImportAttributes?: boolean | undefined; + externalLiveBindings?: boolean | undefined; + // only required for bundle.write + file?: string | undefined; + footer?: string | AddonFunction | undefined; + format?: ModuleFormat | undefined; + freeze?: boolean | undefined; + generatedCode?: GeneratedCodePreset | GeneratedCodeOptions | undefined; + globals?: GlobalsOption | undefined; + hashCharacters?: HashCharacters | undefined; + hoistTransitiveImports?: boolean | undefined; + importAttributesKey?: ImportAttributesKey | undefined; + indent?: string | boolean | undefined; + inlineDynamicImports?: boolean | undefined; + interop?: InteropType | GetInterop | undefined; + intro?: string | AddonFunction | undefined; + manualChunks?: ManualChunksOption | undefined; + minifyInternalExports?: boolean | undefined; + name?: string | undefined; + noConflict?: boolean | undefined; + /** @deprecated This will be the new default in Rollup 5. */ + onlyExplicitManualChunks?: boolean | undefined; + outro?: string | AddonFunction | undefined; + paths?: OptionsPaths | undefined; + plugins?: OutputPluginOption | undefined; + preserveModules?: boolean | undefined; + preserveModulesRoot?: string | undefined; + reexportProtoFromExternal?: boolean | undefined; + sanitizeFileName?: boolean | ((fileName: string) => string) | undefined; + sourcemap?: boolean | 'inline' | 'hidden' | undefined; + sourcemapBaseUrl?: string | undefined; + sourcemapExcludeSources?: boolean | undefined; + sourcemapFile?: string | undefined; + sourcemapFileNames?: string | ((chunkInfo: PreRenderedChunk) => string) | undefined; + sourcemapIgnoreList?: boolean | SourcemapIgnoreListOption | undefined; + sourcemapPathTransform?: SourcemapPathTransformOption | undefined; + sourcemapDebugIds?: boolean | undefined; + strict?: boolean | undefined; + systemNullSetters?: boolean | undefined; + validate?: boolean | undefined; + virtualDirname?: string | undefined; +} + +export interface NormalizedOutputOptions { + amd: NormalizedAmdOptions; + assetFileNames: string | ((chunkInfo: PreRenderedAsset) => string); + banner: AddonFunction; + chunkFileNames: string | ((chunkInfo: PreRenderedChunk) => string); + compact: boolean; + dir: string | undefined; + dynamicImportInCjs: boolean; + entryFileNames: string | ((chunkInfo: PreRenderedChunk) => string); + esModule: boolean | 'if-default-prop'; + experimentalMinChunkSize: number; + exports: 'default' | 'named' | 'none' | 'auto'; + extend: boolean; + /** @deprecated Use "externalImportAttributes" instead. */ + externalImportAssertions: boolean; + externalImportAttributes: boolean; + externalLiveBindings: boolean; + file: string | undefined; + footer: AddonFunction; + format: InternalModuleFormat; + freeze: boolean; + generatedCode: NormalizedGeneratedCodeOptions; + globals: GlobalsOption; + hashCharacters: HashCharacters; + hoistTransitiveImports: boolean; + importAttributesKey: ImportAttributesKey; + indent: true | string; + inlineDynamicImports: boolean; + interop: GetInterop; + intro: AddonFunction; + manualChunks: ManualChunksOption; + minifyInternalExports: boolean; + name: string | undefined; + noConflict: boolean; + onlyExplicitManualChunks: boolean; + outro: AddonFunction; + paths: OptionsPaths; + plugins: OutputPlugin[]; + preserveModules: boolean; + preserveModulesRoot: string | undefined; + reexportProtoFromExternal: boolean; + sanitizeFileName: (fileName: string) => string; + sourcemap: boolean | 'inline' | 'hidden'; + sourcemapBaseUrl: string | undefined; + sourcemapExcludeSources: boolean; + sourcemapFile: string | undefined; + sourcemapFileNames: string | ((chunkInfo: PreRenderedChunk) => string) | undefined; + sourcemapIgnoreList: SourcemapIgnoreListOption; + sourcemapPathTransform: SourcemapPathTransformOption | undefined; + sourcemapDebugIds: boolean; + strict: boolean; + systemNullSetters: boolean; + validate: boolean; + virtualDirname: string; +} + +export type WarningHandlerWithDefault = ( + warning: RollupLog, + defaultHandler: LoggingFunction +) => void; + +export type SerializedTimings = Record; + +export interface PreRenderedAsset { + /** @deprecated Use "names" instead. */ + name: string | undefined; + names: string[]; + /** @deprecated Use "originalFileNames" instead. */ + originalFileName: string | null; + originalFileNames: string[]; + source: string | Uint8Array; + type: 'asset'; +} + +export interface OutputAsset extends PreRenderedAsset { + fileName: string; + needsCodeReference: boolean; +} + +export interface RenderedModule { + readonly code: string | null; + originalLength: number; + removedExports: string[]; + renderedExports: string[]; + renderedLength: number; +} + +export interface PreRenderedChunk { + exports: string[]; + facadeModuleId: string | null; + isDynamicEntry: boolean; + isEntry: boolean; + isImplicitEntry: boolean; + moduleIds: string[]; + name: string; + type: 'chunk'; +} + +export interface RenderedChunk extends PreRenderedChunk { + dynamicImports: string[]; + fileName: string; + implicitlyLoadedBefore: string[]; + importedBindings: Record; + imports: string[]; + modules: Record; + referencedFiles: string[]; +} + +export interface OutputChunk extends RenderedChunk { + code: string; + map: SourceMap | null; + sourcemapFileName: string | null; + preliminaryFileName: string; +} + +export type SerializablePluginCache = Record; + +export interface RollupCache { + modules: ModuleJSON[]; + plugins?: Record; +} + +export interface RollupOutput { + output: [OutputChunk, ...(OutputChunk | OutputAsset)[]]; +} + +export interface RollupBuild { + cache: RollupCache | undefined; + close: () => Promise; + closed: boolean; + [Symbol.asyncDispose](): Promise; + generate: (outputOptions: OutputOptions) => Promise; + getTimings?: (() => SerializedTimings) | undefined; + watchFiles: string[]; + write: (options: OutputOptions) => Promise; +} + +export interface RollupOptions extends InputOptions { + // This is included for compatibility with config files but ignored by rollup.rollup + output?: OutputOptions | OutputOptions[] | undefined; +} + +export interface MergedRollupOptions extends InputOptionsWithPlugins { + output: OutputOptions[]; +} + +export function rollup(options: RollupOptions): Promise; + +export interface ChokidarOptions { + alwaysStat?: boolean | undefined; + atomic?: boolean | number | undefined; + awaitWriteFinish?: + | { + pollInterval?: number | undefined; + stabilityThreshold?: number | undefined; + } + | boolean + | undefined; + binaryInterval?: number | undefined; + cwd?: string | undefined; + depth?: number | undefined; + disableGlobbing?: boolean | undefined; + followSymlinks?: boolean | undefined; + ignoreInitial?: boolean | undefined; + ignorePermissionErrors?: boolean | undefined; + ignored?: any | undefined; + interval?: number | undefined; + persistent?: boolean | undefined; + useFsEvents?: boolean | undefined; + usePolling?: boolean | undefined; +} + +export type RollupWatchHooks = 'onError' | 'onStart' | 'onBundleStart' | 'onBundleEnd' | 'onEnd'; + +export interface WatcherOptions { + allowInputInsideOutputPath?: boolean | undefined; + buildDelay?: number | undefined; + chokidar?: ChokidarOptions | undefined; + clearScreen?: boolean | undefined; + exclude?: string | RegExp | (string | RegExp)[] | undefined; + include?: string | RegExp | (string | RegExp)[] | undefined; + skipWrite?: boolean | undefined; + onInvalidate?: ((id: string) => void) | undefined; +} + +export interface RollupWatchOptions extends InputOptions { + output?: OutputOptions | OutputOptions[] | undefined; + watch?: WatcherOptions | false | undefined; +} + +export type AwaitedEventListener< + T extends Record any>, + K extends keyof T +> = (...parameters: Parameters) => void | Promise; + +export interface AwaitingEventEmitter any>> { + close(): Promise; + emit(event: K, ...parameters: Parameters): Promise; + /** + * Removes an event listener. + */ + off(event: K, listener: AwaitedEventListener): this; + /** + * Registers an event listener that will be awaited before Rollup continues. + * All listeners will be awaited in parallel while rejections are tracked via + * Promise.all. + */ + on(event: K, listener: AwaitedEventListener): this; + /** + * Registers an event listener that will be awaited before Rollup continues. + * All listeners will be awaited in parallel while rejections are tracked via + * Promise.all. + * Listeners are removed automatically when removeListenersForCurrentRun is + * called, which happens automatically after each run. + */ + onCurrentRun( + event: K, + listener: (...parameters: Parameters) => Promise> + ): this; + removeAllListeners(): this; + removeListenersForCurrentRun(): this; +} + +export type RollupWatcherEvent = + | { code: 'START' } + | { code: 'BUNDLE_START'; input?: InputOption | undefined; output: readonly string[] } + | { + code: 'BUNDLE_END'; + duration: number; + input?: InputOption | undefined; + output: readonly string[]; + result: RollupBuild; + } + | { code: 'END' } + | { code: 'ERROR'; error: RollupError; result: RollupBuild | null }; + +export type RollupWatcher = AwaitingEventEmitter<{ + change: (id: string, change: { event: ChangeEvent }) => void; + close: () => void; + event: (event: RollupWatcherEvent) => void; + restart: () => void; +}>; + +export function watch(config: RollupWatchOptions | RollupWatchOptions[]): RollupWatcher; + +interface AstNodeLocation { + end: number; + start: number; +} + +type OmittedEstreeKeys = + | 'loc' + | 'range' + | 'leadingComments' + | 'trailingComments' + | 'innerComments' + | 'comments'; +type RollupAstNode = Omit & AstNodeLocation; + +type ProgramNode = RollupAstNode; +export type AstNode = RollupAstNode; + +export function defineConfig(options: RollupOptions): RollupOptions; +export function defineConfig(options: RollupOptions[]): RollupOptions[]; +export function defineConfig(optionsFunction: RollupOptionsFunction): RollupOptionsFunction; + +export type RollupOptionsFunction = ( + commandLineArguments: Record +) => MaybePromise; + +export interface RollupFsModule { + appendFile( + path: string, + data: string | Uint8Array, + options?: { encoding?: BufferEncoding | null; mode?: string | number; flag?: string | number } + ): Promise; + + copyFile(source: string, destination: string, mode?: string | number): Promise; + + mkdir(path: string, options?: { recursive?: boolean; mode?: string | number }): Promise; + + mkdtemp(prefix: string): Promise; + + readdir(path: string, options?: { withFileTypes?: false }): Promise; + readdir(path: string, options?: { withFileTypes: true }): Promise; + + readFile( + path: string, + options?: { encoding?: null; flag?: string | number; signal?: AbortSignal } + ): Promise; + readFile( + path: string, + options?: { encoding: BufferEncoding; flag?: string | number; signal?: AbortSignal } + ): Promise; + + realpath(path: string): Promise; + + rename(oldPath: string, newPath: string): Promise; + + rmdir(path: string, options?: { recursive?: boolean }): Promise; + + stat(path: string): Promise; + + lstat(path: string): Promise; + + unlink(path: string): Promise; + + writeFile( + path: string, + data: string | Uint8Array, + options?: { encoding?: BufferEncoding | null; mode?: string | number; flag?: string | number } + ): Promise; +} + +export type BufferEncoding = + | 'ascii' + | 'utf8' + | 'utf16le' + | 'ucs2' + | 'base64' + | 'base64url' + | 'latin1' + | 'binary' + | 'hex'; + +export interface RollupDirectoryEntry { + isFile(): boolean; + isDirectory(): boolean; + isSymbolicLink(): boolean; + name: string; +} + +export interface RollupFileStats { + isFile(): boolean; + isDirectory(): boolean; + isSymbolicLink(): boolean; + size: number; + mtime: Date; + ctime: Date; + atime: Date; + birthtime: Date; +} -- cgit v1.2.3