import { RawSourceMap } from "source-map"; export import CachedSource = require("./CachedSource"); export import CompatSource = require("./CompatSource"); export import ConcatSource = require("./ConcatSource"); export import OriginalSource = require("./OriginalSource"); export import PrefixSource = require("./PrefixSource"); export import RawSource = require("./RawSource"); export import ReplaceSource = require("./ReplaceSource"); export import SizeOnlySource = require("./SizeOnlySource"); export import Source = require("./Source"); export import SourceMapSource = require("./SourceMapSource"); export interface MapOptions { /** * If set to false the implementation may omit mappings for columns * @default true */ columns?: boolean | undefined; /** * If set to false the implementation may omit inner mappings for modules. * @default true */ module?: boolean | undefined; } export interface SourceAndMapMixin { /** * Returns the SourceMap of the represented source code as JSON. * May return `null` if no SourceMap is available. */ map(options?: MapOptions): RawSourceMap | null; /** * Returns both, source code (like `Source.prototype.source()` and SourceMap (like `Source.prototype.map()`). * This method could have better performance than calling `source()` and `map()` separately. */ sourceAndMap(options?: MapOptions): SourceAndMapResult; } export interface SourceAndMapResult { source: string | Buffer; map: RawSourceMap | null; } export interface Replacement { readonly start: number; readonly end: number; readonly content: string; readonly insertIndex: number; readonly name: string; } export type SourceLike = Partial>; export interface CachedData { buffer?: Buffer | undefined; source?: string | boolean | undefined; size?: number | undefined; cachedData?: Map | undefined; }