///
import { explore } from './api';
import { UNMAPPED_KEY, SOURCE_MAP_COMMENT_KEY, NO_SOURCE_KEY } from './explore';
export { explore, UNMAPPED_KEY, SOURCE_MAP_COMMENT_KEY, NO_SOURCE_KEY };
export default explore;
export interface FileData {
size: number;
coveredSize?: number;
}
export declare type FileDataMap = Record;
export interface FileSizes {
files: FileDataMap;
mappedBytes: number;
unmappedBytes?: number;
eolBytes: number;
sourceMapCommentBytes: number;
totalBytes: number;
}
export declare type ErrorCode = 'Unknown' | 'NoBundles' | 'NoSourceMap' | 'OneSourceSourceMap' | 'UnmappedBytes' | 'InvalidMappingLine' | 'InvalidMappingColumn' | 'CannotSaveFile' | 'CannotCreateTempFile' | 'CannotOpenTempFile' | 'CannotOpenCoverageFile' | 'NoCoverageMatches';
export declare type File = string | Buffer;
export declare type ReplaceMap = Record;
export declare type OutputFormat = 'json' | 'tsv' | 'html';
/** Represents single bundle */
export interface Bundle {
code: File;
map?: File;
coverageRanges?: ColumnsRange[][];
}
export interface ExploreOptions {
/** Exclude "unmapped" bytes from the output */
onlyMapped?: boolean;
/** Exclude source map comment size from output */
excludeSourceMapComment?: boolean;
/** Output result as a string */
output?: {
format: OutputFormat;
/** Filename to save output to */
filename?: string;
};
/** Disable removing prefix shared by all sources */
noRoot?: boolean;
/** Replace "this" by "that" map */
replaceMap?: ReplaceMap;
coverage?: string;
/** Calculate gzip size. Setting it to `true` will also set `onlyMapped` to `true` */
gzip?: boolean;
}
export interface ExploreResult {
bundles: ExploreBundleResult[];
/** Result as a string - either JSON, TSV or HTML */
output?: string;
errors: ExploreErrorResult[];
}
export interface ExploreBundleResult extends FileSizes {
bundleName: string;
}
export interface ExploreErrorResult {
bundleName: string;
code: string;
message: string;
error?: NodeJS.ErrnoException;
isWarning?: boolean;
}
export declare type BundlesAndFileTokens = (Bundle | string)[] | Bundle | string;
/** Represents inclusive range (e.g. [0,5] six columns) */
export interface ColumnsRange {
/** Fist column index */
start: number;
/** Last column index */
end: number;
}
export interface MappingRange extends ColumnsRange {
source: string;
}
/** Represents exclusive range (e.g. [0,5) - four columns) */
export interface Coverage {
url: string;
ranges: CoverageRange[];
/** File content as one line */
text: string;
}
export interface CoverageRange {
/** First column index */
start: number;
/** Column index next after last column index */
end: number;
}
declare module 'source-map' {
interface MappingItem {
lastGeneratedColumn: number | null;
}
}