You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					222 lines
				
				7.5 KiB
			
		
		
			
		
	
	
					222 lines
				
				7.5 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								export interface BundleOptions {
							 | 
						||
| 
								 | 
							
								  intro?: string;
							 | 
						||
| 
								 | 
							
								  separator?: string;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export interface SourceMapOptions {
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Whether the mapping should be high-resolution.
							 | 
						||
| 
								 | 
							
								   * Hi-res mappings map every single character, meaning (for example) your devtools will always
							 | 
						||
| 
								 | 
							
								   * be able to pinpoint the exact location of function calls and so on.
							 | 
						||
| 
								 | 
							
								   * With lo-res mappings, devtools may only be able to identify the correct
							 | 
						||
| 
								 | 
							
								   * line - but they're quicker to generate and less bulky.
							 | 
						||
| 
								 | 
							
								   * If sourcemap locations have been specified with s.addSourceMapLocation(), they will be used here.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  hires?: boolean;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * The filename where you plan to write the sourcemap.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  file?: string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * The filename of the file containing the original source.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  source?: string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Whether to include the original content in the map's sourcesContent array.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  includeContent?: boolean;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export type SourceMapSegment =
							 | 
						||
| 
								 | 
							
								  | [number]
							 | 
						||
| 
								 | 
							
								  | [number, number, number, number]
							 | 
						||
| 
								 | 
							
								  | [number, number, number, number, number];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export interface DecodedSourceMap {
							 | 
						||
| 
								 | 
							
								  file: string;
							 | 
						||
| 
								 | 
							
								  sources: string[];
							 | 
						||
| 
								 | 
							
								  sourcesContent: string[];
							 | 
						||
| 
								 | 
							
								  names: string[];
							 | 
						||
| 
								 | 
							
								  mappings: SourceMapSegment[][];
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export class SourceMap {
							 | 
						||
| 
								 | 
							
								  constructor(properties: DecodedSourceMap);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  version: number;
							 | 
						||
| 
								 | 
							
								  file: string;
							 | 
						||
| 
								 | 
							
								  sources: string[];
							 | 
						||
| 
								 | 
							
								  sourcesContent: string[];
							 | 
						||
| 
								 | 
							
								  names: string[];
							 | 
						||
| 
								 | 
							
								  mappings: string;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Returns the equivalent of `JSON.stringify(map)`
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  toString(): string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Returns a DataURI containing the sourcemap. Useful for doing this sort of thing:
							 | 
						||
| 
								 | 
							
								   * `generateMap(options?: SourceMapOptions): SourceMap;`
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  toUrl(): string;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export class Bundle {
							 | 
						||
| 
								 | 
							
								  constructor(options?: BundleOptions);
							 | 
						||
| 
								 | 
							
								  addSource(source: MagicString | { filename?: string, content: MagicString }): Bundle;
							 | 
						||
| 
								 | 
							
								  append(str: string, options?: BundleOptions): Bundle;
							 | 
						||
| 
								 | 
							
								  clone(): Bundle;
							 | 
						||
| 
								 | 
							
								  generateMap(options?: SourceMapOptions): SourceMap;
							 | 
						||
| 
								 | 
							
								  generateDecodedMap(options?: SourceMapOptions): DecodedSourceMap;
							 | 
						||
| 
								 | 
							
								  getIndentString(): string;
							 | 
						||
| 
								 | 
							
								  indent(indentStr?: string): Bundle;
							 | 
						||
| 
								 | 
							
								  indentExclusionRanges: ExclusionRange | Array<ExclusionRange>;
							 | 
						||
| 
								 | 
							
								  prepend(str: string): Bundle;
							 | 
						||
| 
								 | 
							
								  toString(): string;
							 | 
						||
| 
								 | 
							
								  trimLines(): Bundle;
							 | 
						||
| 
								 | 
							
								  trim(charType?: string): Bundle;
							 | 
						||
| 
								 | 
							
								  trimStart(charType?: string): Bundle;
							 | 
						||
| 
								 | 
							
								  trimEnd(charType?: string): Bundle;
							 | 
						||
| 
								 | 
							
								  isEmpty(): boolean;
							 | 
						||
| 
								 | 
							
								  length(): number;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export type ExclusionRange = [ number, number ];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export interface MagicStringOptions {
							 | 
						||
| 
								 | 
							
								  filename?: string,
							 | 
						||
| 
								 | 
							
								  indentExclusionRanges?: ExclusionRange | Array<ExclusionRange>;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export interface IndentOptions {
							 | 
						||
| 
								 | 
							
								  exclude?: ExclusionRange | Array<ExclusionRange>;
							 | 
						||
| 
								 | 
							
								  indentStart?: boolean;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export interface OverwriteOptions {
							 | 
						||
| 
								 | 
							
								  storeName?: boolean;
							 | 
						||
| 
								 | 
							
								  contentOnly?: boolean;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export default class MagicString {
							 | 
						||
| 
								 | 
							
								  constructor(str: string, options?: MagicStringOptions);
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Adds the specified character index (with respect to the original string) to sourcemap mappings, if `hires` is false.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  addSourcemapLocation(char: number): void;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Appends the specified content to the end of the string.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  append(content: string): MagicString;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Appends the specified content at the index in the original string.
							 | 
						||
| 
								 | 
							
								   * If a range *ending* with index is subsequently moved, the insert will be moved with it. 
							 | 
						||
| 
								 | 
							
								   * See also `s.prependLeft(...)`.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  appendLeft(index: number, content: string): MagicString;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Appends the specified content at the index in the original string.
							 | 
						||
| 
								 | 
							
								   * If a range *starting* with index is subsequently moved, the insert will be moved with it.
							 | 
						||
| 
								 | 
							
								   * See also `s.prependRight(...)`.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  appendRight(index: number, content: string): MagicString;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Does what you'd expect.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  clone(): MagicString;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Generates a version 3 sourcemap.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  generateMap(options?: SourceMapOptions): SourceMap;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Generates a sourcemap object with raw mappings in array form, rather than encoded as a string.
							 | 
						||
| 
								 | 
							
								   * Useful if you need to manipulate the sourcemap further, but most of the time you will use `generateMap` instead.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  generateDecodedMap(options?: SourceMapOptions): DecodedSourceMap;
							 | 
						||
| 
								 | 
							
								  getIndentString(): string;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Prefixes each line of the string with prefix.
							 | 
						||
| 
								 | 
							
								   * If prefix is not supplied, the indentation will be guessed from the original content, falling back to a single tab character.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  indent(options?: IndentOptions): MagicString;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Prefixes each line of the string with prefix.
							 | 
						||
| 
								 | 
							
								   * If prefix is not supplied, the indentation will be guessed from the original content, falling back to a single tab character.
							 | 
						||
| 
								 | 
							
								   *
							 | 
						||
| 
								 | 
							
								   * The options argument can have an exclude property, which is an array of [start, end] character ranges.
							 | 
						||
| 
								 | 
							
								   * These ranges will be excluded from the indentation - useful for (e.g.) multiline strings.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  indent(indentStr?: string, options?: IndentOptions): MagicString;
							 | 
						||
| 
								 | 
							
								  indentExclusionRanges: ExclusionRange | Array<ExclusionRange>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Moves the characters from `start and `end` to `index`.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  move(start: number, end: number, index: number): MagicString;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Replaces the characters from `start` to `end` with `content`. The same restrictions as `s.remove()` apply.
							 | 
						||
| 
								 | 
							
								   *
							 | 
						||
| 
								 | 
							
								   * The fourth argument is optional. It can have a storeName property — if true, the original name will be stored
							 | 
						||
| 
								 | 
							
								   * for later inclusion in a sourcemap's names array — and a contentOnly property which determines whether only
							 | 
						||
| 
								 | 
							
								   * the content is overwritten, or anything that was appended/prepended to the range as well.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  overwrite(start: number, end: number, content: string, options?: boolean | OverwriteOptions): MagicString;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Prepends the string with the specified content. 
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  prepend(content: string): MagicString;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Same as `s.appendLeft(...)`, except that the inserted content will go *before* any previous appends or prepends at index
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  prependLeft(index: number, content: string): MagicString;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Same as `s.appendRight(...)`, except that the inserted content will go *before* any previous appends or prepends at `index`
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  prependRight(index: number, content: string): MagicString;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Removes the characters from `start` to `end` (of the original string, **not** the generated string).
							 | 
						||
| 
								 | 
							
								   * Removing the same content twice, or making removals that partially overlap, will cause an error.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  remove(start: number, end: number): MagicString;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Returns the content of the generated string that corresponds to the slice between `start` and `end` of the original string.
							 | 
						||
| 
								 | 
							
								   * Throws error if the indices are for characters that were already removed.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  slice(start: number, end: number): string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Returns a clone of `s`, with all content before the `start` and `end` characters of the original string removed.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  snip(start: number, end: number): MagicString;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Trims content matching `charType` (defaults to `\s`, i.e. whitespace) from the start and end.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  trim(charType?: string): MagicString;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Trims content matching `charType` (defaults to `\s`, i.e. whitespace) from the start.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  trimStart(charType?: string): MagicString;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Trims content matching `charType` (defaults to `\s`, i.e. whitespace) from the end.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  trimEnd(charType?: string): MagicString;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Removes empty lines from the start and end.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  trimLines(): MagicString;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  lastChar(): string;
							 | 
						||
| 
								 | 
							
								  lastLine(): string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Returns true if the resulting source is empty (disregarding white space).
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  isEmpty(): boolean;
							 | 
						||
| 
								 | 
							
								  length(): number;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  original: string;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Returns the generated string.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  toString(): string;
							 | 
						||
| 
								 | 
							
								}
							 |