export interface StartOfSourceMap { file?: string; sourceRoot?: string; } export interface RawSourceMap extends StartOfSourceMap { version: string; sources: string[]; names: string[]; sourcesContent?: string[]; mappings: string; } export interface Position { line: number; column: number; } export interface LineRange extends Position { lastColumn: number; } export interface FindPosition extends Position { // SourceMapConsumer.GREATEST_LOWER_BOUND or SourceMapConsumer.LEAST_UPPER_BOUND bias?: number; } export interface SourceFindPosition extends FindPosition { source: string; } export interface MappedPosition extends Position { source: string; name?: string; } export interface MappingItem { source: string; generatedLine: number; generatedColumn: number; originalLine: number; originalColumn: number; name: string; } export class SourceMapConsumer { static GENERATED_ORDER: number; static ORIGINAL_ORDER: number; static GREATEST_LOWER_BOUND: number; static LEAST_UPPER_BOUND: number; constructor(rawSourceMap: RawSourceMap); computeColumnSpans(): void; originalPositionFor(generatedPosition: FindPosition): MappedPosition; generatedPositionFor(originalPosition: SourceFindPosition): LineRange; allGeneratedPositionsFor(originalPosition: MappedPosition): Position[]; hasContentsOfAllSources(): boolean; sourceContentFor(source: string, returnNullOnMissing?: boolean): string; eachMapping(callback: (mapping: MappingItem) => void, context?: any, order?: number): void; } export interface Mapping { generated: Position; original: Position; source: string; name?: string; } export class SourceMapGenerator { constructor(startOfSourceMap?: StartOfSourceMap); static fromSourceMap(sourceMapConsumer: SourceMapConsumer): SourceMapGenerator; addMapping(mapping: Mapping): void; setSourceContent(sourceFile: string, sourceContent: string): void; applySourceMap(sourceMapConsumer: SourceMapConsumer, sourceFile?: string, sourceMapPath?: string): void; toString(): string; } export interface CodeWithSourceMap { code: string; map: SourceMapGenerator; } export class SourceNode { constructor(); constructor(line: number, column: number, source: string); constructor(line: number, column: number, source: string, chunk?: string, name?: string); static fromStringWithSourceMap(code: string, sourceMapConsumer: SourceMapConsumer, relativePath?: string): SourceNode; add(chunk: string): void; prepend(chunk: string): void; setSourceContent(sourceFile: string, sourceContent: string): void; walk(fn: (chunk: string, mapping: MappedPosition) => void): void; walkSourceContents(fn: (file: string, content: string) => void): void; join(sep: string): SourceNode; replaceRight(pattern: string, replacement: string): SourceNode; toString(): string; toStringWithSourceMap(startOfSourceMap?: StartOfSourceMap): CodeWithSourceMap; }