import type { Size } from '@statoscope/stats-extension-compressed/dist/generator'; import type { Instance } from '@statoscope/stats-extension-package-info/dist/generator'; import Graph, { PathSolution } from '@statoscope/helpers/dist/graph'; import type { Item } from '@statoscope/stats-extension-stats-validation-result/dist/generator'; import { HelpersContext, RelationItem } from '@statoscope/types/types'; import { RuleDescriptor } from '@statoscope/types/types/validation/api'; import { Report } from '@statoscope/types/types/custom-report'; import type { Webpack } from '../webpack'; import { ModuleGraphNodeData, NodeModuleInstance, NormalizedAsset, NormalizedChunk, NormalizedCompilation, NormalizedEntrypointItem, NormalizedExtension, NormalizedModule, NormalizedPackage, NormalizeResult, NormalizedFile } from '../types'; import { moduleNameResource, moduleReasonResource, moduleResource, nodeModule } from './module'; import { Node as FoamTreeNode } from './modules-to-foam-tree'; export type ResolvedStats = { file: NormalizedFile; compilation: NormalizedCompilation; }; export type ResolvedRelatedItem = { type: 'module'; item: NormalizedModule | null; } | { type: 'chunk'; item: NormalizedChunk | null; } | { type: 'resource'; item: NormalizedAsset | null; } | { type: 'entry'; item: NormalizedEntrypointItem | null; } | { type: 'compilation'; item: NormalizedCompilation | null; } | { type: 'package'; item: NormalizedPackage | null; } | { type: 'package-instance'; item: NodeModuleInstance | null; }; export default function (normalizeResult: NormalizeResult, context: HelpersContext): { moduleSize(module: NormalizedModule): number; chunkName(chunk: NormalizedChunk): string; assetChunkName(asset: NormalizedAsset): string | null; getTotalFilesSize: (asset: NormalizedAsset, hash?: string, compressed?: boolean) => number; resolveCompilationByAsset(asset: NormalizedAsset, fileName: string): NormalizedCompilation | null; resolveCompilationByChunk(chunk: NormalizedChunk, fileName: string): NormalizedCompilation | null; resolveCompilationByModule(module: NormalizedModule, fileName: string): NormalizedCompilation | null; resolveCompilationByEntrypoint(entrypoint: NormalizedEntrypointItem, fileName: string): NormalizedCompilation | null; resolveChunk(id: Webpack.ChunkID, compilationHash: string): NormalizedChunk | null; resolveAsset(id: string, compilationHash: string): NormalizedAsset | null; resolveModule(id: string, compilationHash: string): NormalizedModule | null; resolvePackage(id: string, compilationHash: string): NormalizedPackage | null; resolveEntrypoint(id: string, compilationHash: string): NormalizedEntrypointItem | null; resolveFile(id: string): NormalizedFile | null; resolveInputFile(): NormalizedFile | null; resolveReferenceFile(): NormalizedFile | null; resolveStat(id: string): ResolvedStats | null; resolveCompilation(id: string): NormalizedCompilation | null; resolveExtension(id: string, fileName: string): NormalizedExtension | null; resolveExtensionByCompilation(id: string, hash: string): NormalizedExtension | null; getModuleSize(module: NormalizedModule, hash?: string, compressed?: boolean): Size; getAssetSize(asset: NormalizedAsset, hash?: string, compressed?: boolean): Size; getPackageInstanceInfo(packageName: string, instancePath: string, hash: string): Instance | null; moduleResource: typeof moduleResource; moduleReasonResource: typeof moduleReasonResource; moduleNameResource: typeof moduleNameResource; nodeModule: typeof nodeModule; statName(stat?: ResolvedStats): string; getModuleGraph(hash: string): Graph | null; moduleGraph_getEntrypoints(module?: NormalizedModule | null, graph?: Graph, entrypoints?: NormalizedEntrypointItem[], max?: number): NormalizedEntrypointItem[]; moduleGraph_getPaths(from?: NormalizedModule, graph?: Graph, to?: NormalizedModule, max?: number): PathSolution | null; modulesToFoamTree(modules: NormalizedModule[], hash?: string, compressed?: boolean): FoamTreeNode; validation_getItems(hash?: string, relatedType?: RelationItem['type'] | null, relatedId?: string | number): Item[]; validation_getItem(id?: number, hash?: string): Item | null; validation_resolveRelatedItem(item?: RelationItem, hash?: string): ResolvedRelatedItem; validation_resolveRule(name?: string, hash?: string): RuleDescriptor | null; customReports_getItems(file: string, hash?: string | null, relatedType?: RelationItem['type'] | null, relatedId?: string | number): Report[]; customReports_getItem(id: string, file: string): Report | null; asset_getSize(asset: NormalizedAsset, hash: string, useCompressedSize: boolean): Size; assets_getTotalSize(assets: NormalizedAsset[], hash: string, useCompressedSize: boolean): Size; entrypoint_getChunks(entrypoint: NormalizedEntrypointItem): NormalizedChunk[]; entrypoint_getInitialChunks(entrypoint: NormalizedEntrypointItem): NormalizedChunk[]; entrypoint_getInitialSize(entrypoint: NormalizedEntrypointItem, hash: string, useCompressedSize: boolean): Size; entrypoint_getAsyncChunks(entrypoint: NormalizedEntrypointItem): NormalizedChunk[]; entrypoint_getAsyncSize(entrypoint: NormalizedEntrypointItem, hash: string, useCompressedSize: boolean): Size; entrypoint_getAssets(entrypoint: NormalizedEntrypointItem): NormalizedAsset[]; entrypoint_getInitialAssets(entrypoint: NormalizedEntrypointItem): NormalizedAsset[]; entrypoint_getAsyncAssets(entrypoint: NormalizedEntrypointItem): NormalizedAsset[]; module_retained_modules: (module?: NormalizedModule) => NormalizedModule[]; };