UNPKG

78.2 kBSource Map (JSON)View Raw
1{"version":3,"file":"magic-string.es.js","sources":["../src/Chunk.js","../src/utils/btoa.js","../src/utils/SourceMap.js","../src/utils/guessIndent.js","../src/utils/getRelativePath.js","../src/utils/isObject.js","../src/utils/getLocator.js","../node_modules/sourcemap-codec/dist/sourcemap-codec.es.js","../src/utils/Mappings.js","../src/utils/Stats.js","../src/MagicString.js","../src/utils/hasOwnProp.js","../src/Bundle.js"],"sourcesContent":["export default function Chunk ( start, end, content ) {\n\tthis.start = start;\n\tthis.end = end;\n\tthis.original = content;\n\n\tthis.intro = '';\n\tthis.outro = '';\n\n\tthis.content = content;\n\tthis.storeName = false;\n\tthis.edited = false;\n\n\t// we make these non-enumerable, for sanity while debugging\n\tObject.defineProperties( this, {\n\t\tprevious: { writable: true, value: null },\n\t\tnext: { writable: true, value: null }\n\t});\n}\n\nChunk.prototype = {\n\tappendLeft ( content ) {\n\t\tthis.outro += content;\n\t},\n\n\tappendRight ( content ) {\n\t\tthis.intro = this.intro + content;\n\t},\n\n\tclone () {\n\t\tconst chunk = new Chunk( this.start, this.end, this.original );\n\n\t\tchunk.intro = this.intro;\n\t\tchunk.outro = this.outro;\n\t\tchunk.content = this.content;\n\t\tchunk.storeName = this.storeName;\n\t\tchunk.edited = this.edited;\n\n\t\treturn chunk;\n\t},\n\n\tcontains ( index ) {\n\t\treturn this.start < index && index < this.end;\n\t},\n\n\teachNext ( fn ) {\n\t\tlet chunk = this;\n\t\twhile ( chunk ) {\n\t\t\tfn( chunk );\n\t\t\tchunk = chunk.next;\n\t\t}\n\t},\n\n\teachPrevious ( fn ) {\n\t\tlet chunk = this;\n\t\twhile ( chunk ) {\n\t\t\tfn( chunk );\n\t\t\tchunk = chunk.previous;\n\t\t}\n\t},\n\n\tedit ( content, storeName, contentOnly ) {\n\t\tthis.content = content;\n\t\tif ( !contentOnly ) {\n\t\t\tthis.intro = '';\n\t\t\tthis.outro = '';\n\t\t}\n\t\tthis.storeName = storeName;\n\n\t\tthis.edited = true;\n\n\t\treturn this;\n\t},\n\n\tprependLeft ( content ) {\n\t\tthis.outro = content + this.outro;\n\t},\n\n\tprependRight ( content ) {\n\t\tthis.intro = content + this.intro;\n\t},\n\n\tsplit ( index ) {\n\t\tconst sliceIndex = index - this.start;\n\n\t\tconst originalBefore = this.original.slice( 0, sliceIndex );\n\t\tconst originalAfter = this.original.slice( sliceIndex );\n\n\t\tthis.original = originalBefore;\n\n\t\tconst newChunk = new Chunk( index, this.end, originalAfter );\n\t\tnewChunk.outro = this.outro;\n\t\tthis.outro = '';\n\n\t\tthis.end = index;\n\n\t\tif ( this.edited ) {\n\t\t\t// TODO is this block necessary?...\n\t\t\tnewChunk.edit( '', false );\n\t\t\tthis.content = '';\n\t\t} else {\n\t\t\tthis.content = originalBefore;\n\t\t}\n\n\t\tnewChunk.next = this.next;\n\t\tif ( newChunk.next ) newChunk.next.previous = newChunk;\n\t\tnewChunk.previous = this;\n\t\tthis.next = newChunk;\n\n\t\treturn newChunk;\n\t},\n\n\ttoString () {\n\t\treturn this.intro + this.content + this.outro;\n\t},\n\n\ttrimEnd ( rx ) {\n\t\tthis.outro = this.outro.replace( rx, '' );\n\t\tif ( this.outro.length ) return true;\n\n\t\tconst trimmed = this.content.replace( rx, '' );\n\n\t\tif ( trimmed.length ) {\n\t\t\tif ( trimmed !== this.content ) {\n\t\t\t\tthis.split( this.start + trimmed.length ).edit( '', false );\n\t\t\t}\n\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit( '', false );\n\n\t\t\tthis.intro = this.intro.replace( rx, '' );\n\t\t\tif ( this.intro.length ) return true;\n\t\t}\n\t},\n\n\ttrimStart ( rx ) {\n\t\tthis.intro = this.intro.replace( rx, '' );\n\t\tif ( this.intro.length ) return true;\n\n\t\tconst trimmed = this.content.replace( rx, '' );\n\n\t\tif ( trimmed.length ) {\n\t\t\tif ( trimmed !== this.content ) {\n\t\t\t\tthis.split( this.end - trimmed.length );\n\t\t\t\tthis.edit( '', false );\n\t\t\t}\n\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit( '', false );\n\n\t\t\tthis.outro = this.outro.replace( rx, '' );\n\t\t\tif ( this.outro.length ) return true;\n\t\t}\n\t}\n};\n","let _btoa;\n\nif ( typeof window !== 'undefined' && typeof window.btoa === 'function' ) {\n\t_btoa = window.btoa;\n} else if ( typeof Buffer === 'function' ) {\n\t_btoa = str => new Buffer( str ).toString( 'base64' );\n} else {\n\t_btoa = () => {\n\t\tthrow new Error( 'Unsupported environment: `window.btoa` or `Buffer` should be supported.' );\n\t};\n}\n\nexport default _btoa;\n","import btoa from './btoa.js';\n\nexport default function SourceMap ( properties ) {\n\tthis.version = 3;\n\n\tthis.file = properties.file;\n\tthis.sources = properties.sources;\n\tthis.sourcesContent = properties.sourcesContent;\n\tthis.names = properties.names;\n\tthis.mappings = properties.mappings;\n}\n\nSourceMap.prototype = {\n\ttoString () {\n\t\treturn JSON.stringify( this );\n\t},\n\n\ttoUrl () {\n\t\treturn 'data:application/json;charset=utf-8;base64,' + btoa( this.toString() );\n\t}\n};\n","export default function guessIndent ( code ) {\n\tconst lines = code.split( '\\n' );\n\n\tconst tabbed = lines.filter( line => /^\\t+/.test( line ) );\n\tconst spaced = lines.filter( line => /^ {2,}/.test( line ) );\n\n\tif ( tabbed.length === 0 && spaced.length === 0 ) {\n\t\treturn null;\n\t}\n\n\t// More lines tabbed than spaced? Assume tabs, and\n\t// default to tabs in the case of a tie (or nothing\n\t// to go on)\n\tif ( tabbed.length >= spaced.length ) {\n\t\treturn '\\t';\n\t}\n\n\t// Otherwise, we need to guess the multiple\n\tconst min = spaced.reduce( ( previous, current ) => {\n\t\tconst numSpaces = /^ +/.exec( current )[0].length;\n\t\treturn Math.min( numSpaces, previous );\n\t}, Infinity );\n\n\treturn new Array( min + 1 ).join( ' ' );\n}\n","export default function getRelativePath ( from, to ) {\n\tconst fromParts = from.split( /[\\/\\\\]/ );\n\tconst toParts = to.split( /[\\/\\\\]/ );\n\n\tfromParts.pop(); // get dirname\n\n\twhile ( fromParts[0] === toParts[0] ) {\n\t\tfromParts.shift();\n\t\ttoParts.shift();\n\t}\n\n\tif ( fromParts.length ) {\n\t\tlet i = fromParts.length;\n\t\twhile ( i-- ) fromParts[i] = '..';\n\t}\n\n\treturn fromParts.concat( toParts ).join( '/' );\n}\n","const toString = Object.prototype.toString;\n\nexport default function isObject ( thing ) {\n\treturn toString.call( thing ) === '[object Object]';\n}\n","export default function getLocator ( source ) {\n\tconst originalLines = source.split( '\\n' );\n\tconst lineOffsets = [];\n\n\tfor ( let i = 0, pos = 0; i < originalLines.length; i++ ) {\n\t\tlineOffsets.push( pos );\n\t\tpos += originalLines[i].length + 1;\n\t}\n\n\treturn function locate ( index ) {\n\t\tlet i = 0;\n\t\tlet j = lineOffsets.length;\n\t\twhile ( i < j ) {\n\t\t\tconst m = ( i + j ) >> 1;\n\t\t\tif ( index < lineOffsets[m] ) {\n\t\t\t\tj = m;\n\t\t\t} else {\n\t\t\t\ti = m + 1;\n\t\t\t}\n\t\t}\n\t\tconst line = i - 1;\n\t\tconst column = index - lineOffsets[line];\n\t\treturn { line, column };\n\t};\n}\n","var charToInteger = {};\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nfor (var i = 0; i < chars.length; i++) {\n charToInteger[chars.charCodeAt(i)] = i;\n}\nfunction decode(mappings) {\n var generatedCodeColumn = 0; // first field\n var sourceFileIndex = 0; // second field\n var sourceCodeLine = 0; // third field\n var sourceCodeColumn = 0; // fourth field\n var nameIndex = 0; // fifth field\n var decoded = [];\n var line = [];\n var segment = [];\n for (var i = 0, j = 0, shift = 0, value = 0; i < mappings.length; i++) {\n var c = mappings.charCodeAt(i);\n if (c === 44) {\n if (segment.length)\n line.push(segment);\n segment = [];\n j = 0;\n }\n else if (c === 59) {\n if (segment.length)\n line.push(segment);\n segment = [];\n j = 0;\n decoded.push(line);\n line = [];\n generatedCodeColumn = 0;\n }\n else {\n var integer = charToInteger[c];\n if (integer === undefined) {\n throw new Error('Invalid character (' + String.fromCharCode(c) + ')');\n }\n var hasContinuationBit = integer & 32;\n integer &= 31;\n value += integer << shift;\n if (hasContinuationBit) {\n shift += 5;\n }\n else {\n var shouldNegate = value & 1;\n value >>= 1;\n var num = shouldNegate ? -value : value;\n if (j == 0) {\n generatedCodeColumn += num;\n segment.push(generatedCodeColumn);\n }\n else if (j === 1) {\n sourceFileIndex += num;\n segment.push(sourceFileIndex);\n }\n else if (j === 2) {\n sourceCodeLine += num;\n segment.push(sourceCodeLine);\n }\n else if (j === 3) {\n sourceCodeColumn += num;\n segment.push(sourceCodeColumn);\n }\n else if (j === 4) {\n nameIndex += num;\n segment.push(nameIndex);\n }\n j++;\n value = shift = 0; // reset\n }\n }\n }\n if (segment.length)\n line.push(segment);\n decoded.push(line);\n return decoded;\n}\nfunction encode(decoded) {\n var sourceFileIndex = 0; // second field\n var sourceCodeLine = 0; // third field\n var sourceCodeColumn = 0; // fourth field\n var nameIndex = 0; // fifth field\n var mappings = '';\n for (var i = 0; i < decoded.length; i++) {\n var line = decoded[i];\n if (i > 0)\n mappings += ';';\n if (line.length === 0)\n continue;\n var generatedCodeColumn = 0; // first field\n var lineMappings = [];\n for (var _i = 0, line_1 = line; _i < line_1.length; _i++) {\n var segment = line_1[_i];\n var segmentMappings = encodeInteger(segment[0] - generatedCodeColumn);\n generatedCodeColumn = segment[0];\n if (segment.length > 1) {\n segmentMappings +=\n encodeInteger(segment[1] - sourceFileIndex) +\n encodeInteger(segment[2] - sourceCodeLine) +\n encodeInteger(segment[3] - sourceCodeColumn);\n sourceFileIndex = segment[1];\n sourceCodeLine = segment[2];\n sourceCodeColumn = segment[3];\n }\n if (segment.length === 5) {\n segmentMappings += encodeInteger(segment[4] - nameIndex);\n nameIndex = segment[4];\n }\n lineMappings.push(segmentMappings);\n }\n mappings += lineMappings.join(',');\n }\n return mappings;\n}\nfunction encodeInteger(num) {\n var result = '';\n num = num < 0 ? (-num << 1) | 1 : num << 1;\n do {\n var clamped = num & 31;\n num >>= 5;\n if (num > 0) {\n clamped |= 32;\n }\n result += chars[clamped];\n } while (num > 0);\n return result;\n}\n\nexport { decode, encode };\n//# sourceMappingURL=sourcemap-codec.es.js.map\n","import { encode } from 'sourcemap-codec';\n\nexport default function Mappings ( hires ) {\n\tlet generatedCodeLine = 0;\n\tlet generatedCodeColumn = 0;\n\n\tthis.raw = [];\n\tlet rawSegments = this.raw[ generatedCodeLine ] = [];\n\n\tlet pending = null;\n\n\tthis.addEdit = ( sourceIndex, content, original, loc, nameIndex ) => {\n\t\tif ( content.length ) {\n\t\t\tconst segment = [\n\t\t\t\tgeneratedCodeColumn,\n\t\t\t\tsourceIndex,\n\t\t\t\tloc.line,\n\t\t\t\tloc.column\n\t\t\t];\n\t\t\tif ( nameIndex >= 0 ) {\n\t\t\t\tsegment.push( nameIndex );\n\t\t\t}\n\t\t\trawSegments.push( segment );\n\t\t} else if ( pending ) {\n\t\t\trawSegments.push( pending );\n\t\t}\n\n\t\tthis.advance( content );\n\t\tpending = null;\n\t};\n\n\tthis.addUneditedChunk = ( sourceIndex, chunk, original, loc, sourcemapLocations ) => {\n\t\tlet originalCharIndex = chunk.start;\n\t\tlet first = true;\n\n\t\twhile ( originalCharIndex < chunk.end ) {\n\t\t\tif ( hires || first || sourcemapLocations[ originalCharIndex ] ) {\n\t\t\t\trawSegments.push([\n\t\t\t\t\tgeneratedCodeColumn,\n\t\t\t\t\tsourceIndex,\n\t\t\t\t\tloc.line,\n\t\t\t\t\tloc.column\n\t\t\t\t]);\n\t\t\t}\n\n\t\t\tif ( original[ originalCharIndex ] === '\\n' ) {\n\t\t\t\tloc.line += 1;\n\t\t\t\tloc.column = 0;\n\t\t\t\tgeneratedCodeLine += 1;\n\t\t\t\tthis.raw[ generatedCodeLine ] = rawSegments = [];\n\t\t\t\tgeneratedCodeColumn = 0;\n\t\t\t} else {\n\t\t\t\tloc.column += 1;\n\t\t\t\tgeneratedCodeColumn += 1;\n\t\t\t}\n\n\t\t\toriginalCharIndex += 1;\n\t\t\tfirst = false;\n\t\t}\n\n\t\tpending = [\n\t\t\tgeneratedCodeColumn,\n\t\t\tsourceIndex,\n\t\t\tloc.line,\n\t\t\tloc.column\n\t\t];\n\t};\n\n\tthis.advance = str => {\n\t\tif ( !str ) return;\n\n\t\tconst lines = str.split( '\\n' );\n\n\t\tif ( lines.length > 1 ) {\n\t\t\tfor ( let i = 0; i < lines.length - 1; i++ ) {\n\t\t\t\tgeneratedCodeLine++;\n\t\t\t\tthis.raw[generatedCodeLine] = rawSegments = [];\n\t\t\t}\n\t\t\tgeneratedCodeColumn = 0;\n\t\t}\n\n\t\tgeneratedCodeColumn += lines[lines.length - 1].length;\n\t};\n\n\tthis.encode = () => {\n\t\treturn encode(this.raw);\n\t};\n}\n","export default class Stats {\n\tconstructor () {\n\t\tObject.defineProperties( this, {\n\t\t\tstartTimes: { value: {} }\n\t\t});\n\t}\n\n\ttime ( label ) {\n\t\tthis.startTimes[ label ] = process.hrtime();\n\t}\n\n\ttimeEnd ( label ) {\n\t\tconst elapsed = process.hrtime( this.startTimes[ label ] );\n\n\t\tif ( !this[ label ] ) this[ label ] = 0;\n\t\tthis[ label ] += elapsed[0] * 1e3 + elapsed[1] * 1e-6;\n\t}\n}\n","import Chunk from './Chunk.js';\nimport SourceMap from './utils/SourceMap.js';\nimport guessIndent from './utils/guessIndent.js';\nimport getRelativePath from './utils/getRelativePath.js';\nimport isObject from './utils/isObject.js';\nimport getLocator from './utils/getLocator.js';\nimport Mappings from './utils/Mappings.js';\nimport Stats from './utils/Stats.js';\n\nconst warned = {\n\tinsertLeft: false,\n\tinsertRight: false,\n\tstoreName: false\n};\n\nexport default function MagicString ( string, options = {} ) {\n\tconst chunk = new Chunk( 0, string.length, string );\n\n\tObject.defineProperties( this, {\n\t\toriginal: { writable: true, value: string },\n\t\toutro: { writable: true, value: '' },\n\t\tintro: { writable: true, value: '' },\n\t\tfirstChunk: { writable: true, value: chunk },\n\t\tlastChunk: { writable: true, value: chunk },\n\t\tlastSearchedChunk: { writable: true, value: chunk },\n\t\tbyStart: { writable: true, value: {} },\n\t\tbyEnd: { writable: true, value: {} },\n\t\tfilename: { writable: true, value: options.filename },\n\t\tindentExclusionRanges: { writable: true, value: options.indentExclusionRanges },\n\t\tsourcemapLocations: { writable: true, value: {} },\n\t\tstoredNames: { writable: true, value: {} },\n\t\tindentStr: { writable: true, value: guessIndent( string ) }\n\t});\n\n\tif ( DEBUG ) {\n\t\tObject.defineProperty( this, 'stats', { value: new Stats() });\n\t}\n\n\tthis.byStart[ 0 ] = chunk;\n\tthis.byEnd[ string.length ] = chunk;\n}\n\nMagicString.prototype = {\n\taddSourcemapLocation ( char ) {\n\t\tthis.sourcemapLocations[ char ] = true;\n\t},\n\n\tappend ( content ) {\n\t\tif ( typeof content !== 'string' ) throw new TypeError( 'outro content must be a string' );\n\n\t\tthis.outro += content;\n\t\treturn this;\n\t},\n\n\tappendLeft ( index, content ) {\n\t\tif ( typeof content !== 'string' ) throw new TypeError( 'inserted content must be a string' );\n\n\t\tif ( DEBUG ) this.stats.time( 'appendLeft' );\n\n\t\tthis._split( index );\n\n\t\tconst chunk = this.byEnd[ index ];\n\n\t\tif ( chunk ) {\n\t\t\tchunk.appendLeft( content );\n\t\t} else {\n\t\t\tthis.intro += content;\n\t\t}\n\n\t\tif ( DEBUG ) this.stats.timeEnd( 'appendLeft' );\n\t\treturn this;\n\t},\n\n\tappendRight ( index, content ) {\n\t\tif ( typeof content !== 'string' ) throw new TypeError( 'inserted content must be a string' );\n\n\t\tif ( DEBUG ) this.stats.time( 'appendRight' );\n\n\t\tthis._split( index );\n\n\t\tconst chunk = this.byStart[ index ];\n\n\t\tif ( chunk ) {\n\t\t\tchunk.appendRight( content );\n\t\t} else {\n\t\t\tthis.outro += content;\n\t\t}\n\n\t\tif ( DEBUG ) this.stats.timeEnd( 'appendRight' );\n\t\treturn this;\n\t},\n\n\tclone () {\n\t\tconst cloned = new MagicString( this.original, { filename: this.filename });\n\n\t\tlet originalChunk = this.firstChunk;\n\t\tlet clonedChunk = cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone();\n\n\t\twhile ( originalChunk ) {\n\t\t\tcloned.byStart[ clonedChunk.start ] = clonedChunk;\n\t\t\tcloned.byEnd[ clonedChunk.end ] = clonedChunk;\n\n\t\t\tconst nextOriginalChunk = originalChunk.next;\n\t\t\tconst nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone();\n\n\t\t\tif ( nextClonedChunk ) {\n\t\t\t\tclonedChunk.next = nextClonedChunk;\n\t\t\t\tnextClonedChunk.previous = clonedChunk;\n\n\t\t\t\tclonedChunk = nextClonedChunk;\n\t\t\t}\n\n\t\t\toriginalChunk = nextOriginalChunk;\n\t\t}\n\n\t\tcloned.lastChunk = clonedChunk;\n\n\t\tif ( this.indentExclusionRanges ) {\n\t\t\tcloned.indentExclusionRanges = this.indentExclusionRanges.slice();\n\t\t}\n\n\t\tObject.keys( this.sourcemapLocations ).forEach( loc => {\n\t\t\tcloned.sourcemapLocations[ loc ] = true;\n\t\t});\n\n\t\treturn cloned;\n\t},\n\n\tgenerateMap ( options ) {\n\t\toptions = options || {};\n\n\t\tconst sourceIndex = 0;\n\t\tconst names = Object.keys( this.storedNames );\n\t\tconst mappings = new Mappings( options.hires );\n\n\t\tconst locate = getLocator( this.original );\n\n\t\tif ( this.intro ) {\n\t\t\tmappings.advance( this.intro );\n\t\t}\n\n\t\tthis.firstChunk.eachNext( chunk => {\n\t\t\tconst loc = locate( chunk.start );\n\n\t\t\tif ( chunk.intro.length ) mappings.advance( chunk.intro );\n\n\t\t\tif ( chunk.edited ) {\n\t\t\t\tmappings.addEdit( sourceIndex, chunk.content, chunk.original, loc, chunk.storeName ? names.indexOf( chunk.original ) : -1 );\n\t\t\t} else {\n\t\t\t\tmappings.addUneditedChunk( sourceIndex, chunk, this.original, loc, this.sourcemapLocations );\n\t\t\t}\n\n\t\t\tif ( chunk.outro.length ) mappings.advance( chunk.outro );\n\t\t});\n\n\t\tif ( DEBUG ) this.stats.time( 'generateMap' );\n\t\tconst map = new SourceMap({\n\t\t\tfile: ( options.file ? options.file.split( /[\\/\\\\]/ ).pop() : null ),\n\t\t\tsources: [ options.source ? getRelativePath( options.file || '', options.source ) : null ],\n\t\t\tsourcesContent: options.includeContent ? [ this.original ] : [ null ],\n\t\t\tnames,\n\t\t\tmappings: mappings.encode()\n\t\t});\n\t\tif ( DEBUG ) this.stats.timeEnd( 'generateMap' );\n\n\t\treturn map;\n\t},\n\n\tgetIndentString () {\n\t\treturn this.indentStr === null ? '\\t' : this.indentStr;\n\t},\n\n\tindent ( indentStr, options ) {\n\t\tconst pattern = /^[^\\r\\n]/gm;\n\n\t\tif ( isObject( indentStr ) ) {\n\t\t\toptions = indentStr;\n\t\t\tindentStr = undefined;\n\t\t}\n\n\t\tindentStr = indentStr !== undefined ? indentStr : ( this.indentStr || '\\t' );\n\n\t\tif ( indentStr === '' ) return this; // noop\n\n\t\toptions = options || {};\n\n\t\t// Process exclusion ranges\n\t\tconst isExcluded = {};\n\n\t\tif ( options.exclude ) {\n\t\t\tconst exclusions = typeof options.exclude[0] === 'number' ? [ options.exclude ] : options.exclude;\n\t\t\texclusions.forEach( exclusion => {\n\t\t\t\tfor ( let i = exclusion[0]; i < exclusion[1]; i += 1 ) {\n\t\t\t\t\tisExcluded[i] = true;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tlet shouldIndentNextCharacter = options.indentStart !== false;\n\t\tconst replacer = match => {\n\t\t\tif ( shouldIndentNextCharacter ) return `${indentStr}${match}`;\n\t\t\tshouldIndentNextCharacter = true;\n\t\t\treturn match;\n\t\t};\n\n\t\tthis.intro = this.intro.replace( pattern, replacer );\n\n\t\tlet charIndex = 0;\n\n\t\tlet chunk = this.firstChunk;\n\n\t\twhile ( chunk ) {\n\t\t\tconst end = chunk.end;\n\n\t\t\tif ( chunk.edited ) {\n\t\t\t\tif ( !isExcluded[ charIndex ] ) {\n\t\t\t\t\tchunk.content = chunk.content.replace( pattern, replacer );\n\n\t\t\t\t\tif ( chunk.content.length ) {\n\t\t\t\t\t\tshouldIndentNextCharacter = chunk.content[ chunk.content.length - 1 ] === '\\n';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcharIndex = chunk.start;\n\n\t\t\t\twhile ( charIndex < end ) {\n\t\t\t\t\tif ( !isExcluded[ charIndex ] ) {\n\t\t\t\t\t\tconst char = this.original[ charIndex ];\n\n\t\t\t\t\t\tif ( char === '\\n' ) {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = true;\n\t\t\t\t\t\t} else if ( char !== '\\r' && shouldIndentNextCharacter ) {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = false;\n\n\t\t\t\t\t\t\tif ( charIndex === chunk.start ) {\n\t\t\t\t\t\t\t\tchunk.prependRight( indentStr );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis._splitChunk( chunk, charIndex );\n\t\t\t\t\t\t\t\tchunk = chunk.next;\n\t\t\t\t\t\t\t\tchunk.prependRight( indentStr );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcharIndex += 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcharIndex = chunk.end;\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tthis.outro = this.outro.replace( pattern, replacer );\n\n\t\treturn this;\n\t},\n\n\tinsert () {\n\t\tthrow new Error( 'magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)' );\n\t},\n\n\tinsertLeft ( index, content ) {\n\t\tif ( !warned.insertLeft ) {\n\t\t\tconsole.warn( 'magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead' ); // eslint-disable-line no-console\n\t\t\twarned.insertLeft = true;\n\t\t}\n\n\t\treturn this.appendLeft( index, content );\n\t},\n\n\tinsertRight ( index, content ) {\n\t\tif ( !warned.insertRight ) {\n\t\t\tconsole.warn( 'magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead' ); // eslint-disable-line no-console\n\t\t\twarned.insertRight = true;\n\t\t}\n\n\t\treturn this.prependRight( index, content );\n\t},\n\n\tmove ( start, end, index ) {\n\t\tif ( index >= start && index <= end ) throw new Error( 'Cannot move a selection inside itself' );\n\n\t\tif ( DEBUG ) this.stats.time( 'move' );\n\n\t\tthis._split( start );\n\t\tthis._split( end );\n\t\tthis._split( index );\n\n\t\tconst first = this.byStart[ start ];\n\t\tconst last = this.byEnd[ end ];\n\n\t\tconst oldLeft = first.previous;\n\t\tconst oldRight = last.next;\n\n\t\tconst newRight = this.byStart[ index ];\n\t\tif ( !newRight && last === this.lastChunk ) return this;\n\t\tconst newLeft = newRight ? newRight.previous : this.lastChunk;\n\n\t\tif ( oldLeft ) oldLeft.next = oldRight;\n\t\tif ( oldRight ) oldRight.previous = oldLeft;\n\n\t\tif ( newLeft ) newLeft.next = first;\n\t\tif ( newRight ) newRight.previous = last;\n\n\t\tif ( !first.previous ) this.firstChunk = last.next;\n\t\tif ( !last.next ) {\n\t\t\tthis.lastChunk = first.previous;\n\t\t\tthis.lastChunk.next = null;\n\t\t}\n\n\t\tfirst.previous = newLeft;\n\t\tlast.next = newRight || null;\n\n\t\tif ( !newLeft ) this.firstChunk = first;\n\t\tif ( !newRight ) this.lastChunk = last;\n\n\t\tif ( DEBUG ) this.stats.timeEnd( 'move' );\n\t\treturn this;\n\t},\n\n\toverwrite ( start, end, content, options ) {\n\t\tif ( typeof content !== 'string' ) throw new TypeError( 'replacement content must be a string' );\n\n\t\twhile ( start < 0 ) start += this.original.length;\n\t\twhile ( end < 0 ) end += this.original.length;\n\n\t\tif ( end > this.original.length ) throw new Error( 'end is out of bounds' );\n\t\tif ( start === end ) throw new Error( 'Cannot overwrite a zero-length range – use appendLeft or prependRight instead' );\n\n\t\tif ( DEBUG ) this.stats.time( 'overwrite' );\n\n\t\tthis._split( start );\n\t\tthis._split( end );\n\n\t\tif ( options === true ) {\n\t\t\tif ( !warned.storeName ) {\n\t\t\t\tconsole.warn( 'The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string' ); // eslint-disable-line no-console\n\t\t\t\twarned.storeName = true;\n\t\t\t}\n\n\t\t\toptions = { storeName: true };\n\t\t}\n\t\tconst storeName = options !== undefined ? options.storeName : false;\n\t\tconst contentOnly = options !== undefined ? options.contentOnly : false;\n\n\t\tif ( storeName ) {\n\t\t\tconst original = this.original.slice( start, end );\n\t\t\tthis.storedNames[ original ] = true;\n\t\t}\n\n\t\tconst first = this.byStart[ start ];\n\t\tconst last = this.byEnd[ end ];\n\n\t\tif ( first ) {\n\t\t\tif ( end > first.end && first.next !== this.byStart[ first.end ] ) {\n\t\t\t\tthrow new Error( 'Cannot overwrite across a split point' );\n\t\t\t}\n\n\t\t\tfirst.edit( content, storeName, contentOnly );\n\n\t\t\tif ( first !== last ) {\n\t\t\t\tlet chunk = first.next;\n\t\t\t\twhile ( chunk !== last ) {\n\t\t\t\t\tchunk.edit( '', false );\n\t\t\t\t\tchunk = chunk.next;\n\t\t\t\t}\n\n\t\t\t\tchunk.edit( '', false );\n\t\t\t}\n\t\t}\n\n\t\telse {\n\t\t\t// must be inserting at the end\n\t\t\tconst newChunk = new Chunk( start, end, '' ).edit( content, storeName );\n\n\t\t\t// TODO last chunk in the array may not be the last chunk, if it's moved...\n\t\t\tlast.next = newChunk;\n\t\t\tnewChunk.previous = last;\n\t\t}\n\n\t\tif ( DEBUG ) this.stats.timeEnd( 'overwrite' );\n\t\treturn this;\n\t},\n\n\tprepend ( content ) {\n\t\tif ( typeof content !== 'string' ) throw new TypeError( 'outro content must be a string' );\n\n\t\tthis.intro = content + this.intro;\n\t\treturn this;\n\t},\n\n\tprependLeft ( index, content ) {\n\t\tif ( typeof content !== 'string' ) throw new TypeError( 'inserted content must be a string' );\n\n\t\tif ( DEBUG ) this.stats.time( 'insertRight' );\n\n\t\tthis._split( index );\n\n\t\tconst chunk = this.byEnd[ index ];\n\n\t\tif ( chunk ) {\n\t\t\tchunk.prependLeft( content );\n\t\t} else {\n\t\t\tthis.intro = content + this.intro;\n\t\t}\n\n\t\tif ( DEBUG ) this.stats.timeEnd( 'insertRight' );\n\t\treturn this;\n\t},\n\n\tprependRight ( index, content ) {\n\t\tif ( typeof content !== 'string' ) throw new TypeError( 'inserted content must be a string' );\n\n\t\tif ( DEBUG ) this.stats.time( 'insertRight' );\n\n\t\tthis._split( index );\n\n\t\tconst chunk = this.byStart[ index ];\n\n\t\tif ( chunk ) {\n\t\t\tchunk.prependRight( content );\n\t\t} else {\n\t\t\tthis.outro = content + this.outro;\n\t\t}\n\n\t\tif ( DEBUG ) this.stats.timeEnd( 'insertRight' );\n\t\treturn this;\n\t},\n\n\tremove ( start, end ) {\n\t\twhile ( start < 0 ) start += this.original.length;\n\t\twhile ( end < 0 ) end += this.original.length;\n\n\t\tif ( start === end ) return this;\n\n\t\tif ( start < 0 || end > this.original.length ) throw new Error( 'Character is out of bounds' );\n\t\tif ( start > end ) throw new Error( 'end must be greater than start' );\n\n\t\tif ( DEBUG ) this.stats.time( 'remove' );\n\n\t\tthis._split( start );\n\t\tthis._split( end );\n\n\t\tlet chunk = this.byStart[ start ];\n\n\t\twhile ( chunk ) {\n\t\t\tchunk.intro = '';\n\t\t\tchunk.outro = '';\n\t\t\tchunk.edit( '' );\n\n\t\t\tchunk = end > chunk.end ? this.byStart[ chunk.end ] : null;\n\t\t}\n\n\t\tif ( DEBUG ) this.stats.timeEnd( 'remove' );\n\t\treturn this;\n\t},\n\n\tslice ( start = 0, end = this.original.length ) {\n\t\twhile ( start < 0 ) start += this.original.length;\n\t\twhile ( end < 0 ) end += this.original.length;\n\n\t\tlet result = '';\n\n\t\t// find start chunk\n\t\tlet chunk = this.firstChunk;\n\t\twhile ( chunk && ( chunk.start > start || chunk.end <= start ) ) {\n\n\t\t\t// found end chunk before start\n\t\t\tif ( chunk.start < end && chunk.end >= end ) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tif ( chunk && chunk.edited && chunk.start !== start ) throw new Error(`Cannot use replaced character ${start} as slice start anchor.`);\n\n\t\tconst startChunk = chunk;\n\t\twhile ( chunk ) {\n\t\t\tif ( chunk.intro && ( startChunk !== chunk || chunk.start === start ) ) {\n\t\t\t\tresult += chunk.intro;\n\t\t\t}\n\n\t\t\tconst containsEnd = chunk.start < end && chunk.end >= end;\n\t\t\tif ( containsEnd && chunk.edited && chunk.end !== end ) throw new Error(`Cannot use replaced character ${end} as slice end anchor.`);\n\n\t\t\tconst sliceStart = startChunk === chunk ? start - chunk.start : 0;\n\t\t\tconst sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length;\n\n\t\t\tresult += chunk.content.slice( sliceStart, sliceEnd );\n\n\t\t\tif ( chunk.outro && ( !containsEnd || chunk.end === end ) ) {\n\t\t\t\tresult += chunk.outro;\n\t\t\t}\n\n\t\t\tif ( containsEnd ) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\t// TODO deprecate this? not really very useful\n\tsnip ( start, end ) {\n\t\tconst clone = this.clone();\n\t\tclone.remove( 0, start );\n\t\tclone.remove( end, clone.original.length );\n\n\t\treturn clone;\n\t},\n\n\t_split ( index ) {\n\t\tif ( this.byStart[ index ] || this.byEnd[ index ] ) return;\n\n\t\tif ( DEBUG ) this.stats.time( '_split' );\n\n\t\tlet chunk = this.lastSearchedChunk;\n\t\tconst searchForward = index > chunk.end;\n\n\t\twhile ( true ) {\n\t\t\tif ( chunk.contains( index ) ) return this._splitChunk( chunk, index );\n\n\t\t\tchunk = searchForward ?\n\t\t\t\tthis.byStart[ chunk.end ] :\n\t\t\t\tthis.byEnd[ chunk.start ];\n\t\t}\n\t},\n\n\t_splitChunk ( chunk, index ) {\n\t\tif ( chunk.edited && chunk.content.length ) { // zero-length edited chunks are a special case (overlapping replacements)\n\t\t\tconst loc = getLocator( this.original )( index );\n\t\t\tthrow new Error( `Cannot split a chunk that has already been edited (${loc.line}:${loc.column} – \"${chunk.original}\")` );\n\t\t}\n\n\t\tconst newChunk = chunk.split( index );\n\n\t\tthis.byEnd[ index ] = chunk;\n\t\tthis.byStart[ index ] = newChunk;\n\t\tthis.byEnd[ newChunk.end ] = newChunk;\n\n\t\tif ( chunk === this.lastChunk ) this.lastChunk = newChunk;\n\n\t\tthis.lastSearchedChunk = chunk;\n\t\tif ( DEBUG ) this.stats.timeEnd( '_split' );\n\t\treturn true;\n\t},\n\n\ttoString () {\n\t\tlet str = this.intro;\n\n\t\tlet chunk = this.firstChunk;\n\t\twhile ( chunk ) {\n\t\t\tstr += chunk.toString();\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn str + this.outro;\n\t},\n\n\ttrimLines () {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t},\n\n\ttrim ( charType ) {\n\t\treturn this.trimStart( charType ).trimEnd( charType );\n\t},\n\n\ttrimEnd ( charType ) {\n\t\tconst rx = new RegExp( ( charType || '\\\\s' ) + '+$' );\n\n\t\tthis.outro = this.outro.replace( rx, '' );\n\t\tif ( this.outro.length ) return this;\n\n\t\tlet chunk = this.lastChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimEnd( rx );\n\n\t\t\t// if chunk was trimmed, we have a new lastChunk\n\t\t\tif ( chunk.end !== end ) {\n\t\t\t\tif ( this.lastChunk === chunk ) {\n\t\t\t\t\tthis.lastChunk = chunk.next;\n\t\t\t\t}\n\n\t\t\t\tthis.byEnd[ chunk.end ] = chunk;\n\t\t\t\tthis.byStart[ chunk.next.start ] = chunk.next;\n\t\t\t\tthis.byEnd[ chunk.next.end ] = chunk.next;\n\t\t\t}\n\n\t\t\tif ( aborted ) return this;\n\t\t\tchunk = chunk.previous;\n\t\t} while ( chunk );\n\n\t\treturn this;\n\t},\n\n\ttrimStart ( charType ) {\n\t\tconst rx = new RegExp( '^' + ( charType || '\\\\s' ) + '+' );\n\n\t\tthis.intro = this.intro.replace( rx, '' );\n\t\tif ( this.intro.length ) return this;\n\n\t\tlet chunk = this.firstChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimStart( rx );\n\n\t\t\tif ( chunk.end !== end ) {\n\t\t\t\t// special case...\n\t\t\t\tif ( chunk === this.lastChunk ) this.lastChunk = chunk.next;\n\n\t\t\t\tthis.byEnd[ chunk.end ] = chunk;\n\t\t\t\tthis.byStart[ chunk.next.start ] = chunk.next;\n\t\t\t\tthis.byEnd[ chunk.next.end ] = chunk.next;\n\t\t\t}\n\n\t\t\tif ( aborted ) return this;\n\t\t\tchunk = chunk.next;\n\t\t} while ( chunk );\n\n\t\treturn this;\n\t}\n};\n","export default Object.prototype.hasOwnProperty;","import MagicString from './MagicString.js';\nimport SourceMap from './utils/SourceMap.js';\nimport getRelativePath from './utils/getRelativePath.js';\nimport hasOwnProp from './utils/hasOwnProp.js';\nimport isObject from './utils/isObject.js';\nimport getLocator from './utils/getLocator.js';\nimport Mappings from './utils/Mappings.js';\n\nexport default function Bundle ( options = {} ) {\n\tthis.intro = options.intro || '';\n\tthis.separator = options.separator !== undefined ? options.separator : '\\n';\n\n\tthis.sources = [];\n\n\tthis.uniqueSources = [];\n\tthis.uniqueSourceIndexByFilename = {};\n}\n\nBundle.prototype = {\n\taddSource ( source ) {\n\t\tif ( source instanceof MagicString ) {\n\t\t\treturn this.addSource({\n\t\t\t\tcontent: source,\n\t\t\t\tfilename: source.filename,\n\t\t\t\tseparator: this.separator\n\t\t\t});\n\t\t}\n\n\t\tif ( !isObject( source ) || !source.content ) {\n\t\t\tthrow new Error( 'bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`' );\n\t\t}\n\n\t\t[ 'filename', 'indentExclusionRanges', 'separator' ].forEach( option => {\n\t\t\tif ( !hasOwnProp.call( source, option ) ) source[ option ] = source.content[ option ];\n\t\t});\n\n\t\tif ( source.separator === undefined ) { // TODO there's a bunch of this sort of thing, needs cleaning up\n\t\t\tsource.separator = this.separator;\n\t\t}\n\n\t\tif ( source.filename ) {\n\t\t\tif ( !hasOwnProp.call( this.uniqueSourceIndexByFilename, source.filename ) ) {\n\t\t\t\tthis.uniqueSourceIndexByFilename[ source.filename ] = this.uniqueSources.length;\n\t\t\t\tthis.uniqueSources.push({ filename: source.filename, content: source.content.original });\n\t\t\t} else {\n\t\t\t\tconst uniqueSource = this.uniqueSources[ this.uniqueSourceIndexByFilename[ source.filename ] ];\n\t\t\t\tif ( source.content.original !== uniqueSource.content ) {\n\t\t\t\t\tthrow new Error( `Illegal source: same filename (${source.filename}), different contents` );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.sources.push( source );\n\t\treturn this;\n\t},\n\n\tappend ( str, options ) {\n\t\tthis.addSource({\n\t\t\tcontent: new MagicString( str ),\n\t\t\tseparator: ( options && options.separator ) || ''\n\t\t});\n\n\t\treturn this;\n\t},\n\n\tclone () {\n\t\tconst bundle = new Bundle({\n\t\t\tintro: this.intro,\n\t\t\tseparator: this.separator\n\t\t});\n\n\t\tthis.sources.forEach( source => {\n\t\t\tbundle.addSource({\n\t\t\t\tfilename: source.filename,\n\t\t\t\tcontent: source.content.clone(),\n\t\t\t\tseparator: source.separator\n\t\t\t});\n\t\t});\n\n\t\treturn bundle;\n\t},\n\n\tgenerateMap ( options = {} ) {\n\t\tconst names = [];\n\t\tthis.sources.forEach( source => {\n\t\t\tObject.keys( source.content.storedNames ).forEach( name => {\n\t\t\t\tif ( !~names.indexOf( name ) ) names.push( name );\n\t\t\t});\n\t\t});\n\n\t\tconst mappings = new Mappings( options.hires );\n\n\t\tif ( this.intro ) {\n\t\t\tmappings.advance( this.intro );\n\t\t}\n\n\t\tthis.sources.forEach( ( source, i ) => {\n\t\t\tif ( i > 0 ) {\n\t\t\t\tmappings.advance( this.separator );\n\t\t\t}\n\n\t\t\tconst sourceIndex = source.filename ? this.uniqueSourceIndexByFilename[ source.filename ] : -1;\n\t\t\tconst magicString = source.content;\n\t\t\tconst locate = getLocator( magicString.original );\n\n\t\t\tif ( magicString.intro ) {\n\t\t\t\tmappings.advance( magicString.intro );\n\t\t\t}\n\n\t\t\tmagicString.firstChunk.eachNext( chunk => {\n\t\t\t\tconst loc = locate( chunk.start );\n\n\t\t\t\tif ( chunk.intro.length ) mappings.advance( chunk.intro );\n\n\t\t\t\tif ( source.filename ) {\n\t\t\t\t\tif ( chunk.edited ) {\n\t\t\t\t\t\tmappings.addEdit( sourceIndex, chunk.content, chunk.original, loc, chunk.storeName ? names.indexOf( chunk.original ) : -1 );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmappings.addUneditedChunk( sourceIndex, chunk, magicString.original, loc, magicString.sourcemapLocations );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\telse {\n\t\t\t\t\tmappings.advance( chunk.content );\n\t\t\t\t}\n\n\t\t\t\tif ( chunk.outro.length ) mappings.advance( chunk.outro );\n\t\t\t});\n\n\t\t\tif ( magicString.outro ) {\n\t\t\t\tmappings.advance( magicString.outro );\n\t\t\t}\n\t\t});\n\n\t\treturn new SourceMap({\n\t\t\tfile: ( options.file ? options.file.split( /[\\/\\\\]/ ).pop() : null ),\n\t\t\tsources: this.uniqueSources.map( source => {\n\t\t\t\treturn options.file ? getRelativePath( options.file, source.filename ) : source.filename;\n\t\t\t}),\n\t\t\tsourcesContent: this.uniqueSources.map( source => {\n\t\t\t\treturn options.includeContent ? source.content : null;\n\t\t\t}),\n\t\t\tnames,\n\t\t\tmappings: mappings.encode()\n\t\t});\n\t},\n\n\tgetIndentString () {\n\t\tconst indentStringCounts = {};\n\n\t\tthis.sources.forEach( source => {\n\t\t\tconst indentStr = source.content.indentStr;\n\n\t\t\tif ( indentStr === null ) return;\n\n\t\t\tif ( !indentStringCounts[ indentStr ] ) indentStringCounts[ indentStr ] = 0;\n\t\t\tindentStringCounts[ indentStr ] += 1;\n\t\t});\n\n\t\treturn ( Object.keys( indentStringCounts ).sort( ( a, b ) => {\n\t\t\treturn indentStringCounts[a] - indentStringCounts[b];\n\t\t})[0] ) || '\\t';\n\t},\n\n\tindent ( indentStr ) {\n\t\tif ( !arguments.length ) {\n\t\t\tindentStr = this.getIndentString();\n\t\t}\n\n\t\tif ( indentStr === '' ) return this; // noop\n\n\t\tlet trailingNewline = !this.intro || this.intro.slice( -1 ) === '\\n';\n\n\t\tthis.sources.forEach( ( source, i ) => {\n\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\tconst indentStart = trailingNewline || ( i > 0 && /\\r?\\n$/.test( separator ) );\n\n\t\t\tsource.content.indent( indentStr, {\n\t\t\t\texclude: source.indentExclusionRanges,\n\t\t\t\tindentStart//: trailingNewline || /\\r?\\n$/.test( separator ) //true///\\r?\\n/.test( separator )\n\t\t\t});\n\n\t\t\t// TODO this is a very slow way to determine this\n\t\t\ttrailingNewline = source.content.toString().slice( 0, -1 ) === '\\n';\n\t\t});\n\n\t\tif ( this.intro ) {\n\t\t\tthis.intro = indentStr + this.intro.replace( /^[^\\n]/gm, ( match, index ) => {\n\t\t\t\treturn index > 0 ? indentStr + match : match;\n\t\t\t});\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tprepend ( str ) {\n\t\tthis.intro = str + this.intro;\n\t\treturn this;\n\t},\n\n\ttoString () {\n\t\tconst body = this.sources.map( ( source, i ) => {\n\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\tconst str = ( i > 0 ? separator : '' ) + source.content.toString();\n\n\t\t\treturn str;\n\t\t}).join( '' );\n\n\t\treturn this.intro + body;\n\t},\n\n\ttrimLines () {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t},\n\n\ttrim ( charType ) {\n\t\treturn this.trimStart( charType ).trimEnd( charType );\n\t},\n\n\ttrimStart ( charType ) {\n\t\tconst rx = new RegExp( '^' + ( charType || '\\\\s' ) + '+' );\n\t\tthis.intro = this.intro.replace( rx, '' );\n\n\t\tif ( !this.intro ) {\n\t\t\tlet source;\n\t\t\tlet i = 0;\n\n\t\t\tdo {\n\t\t\t\tsource = this.sources[i];\n\n\t\t\t\tif ( !source ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tsource.content.trimStart( charType );\n\t\t\t\ti += 1;\n\t\t\t} while ( source.content.toString() === '' ); // TODO faster way to determine non-empty source?\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttrimEnd ( charType ) {\n\t\tconst rx = new RegExp( ( charType || '\\\\s' ) + '+$' );\n\n\t\tlet source;\n\t\tlet i = this.sources.length - 1;\n\n\t\tdo {\n\t\t\tsource = this.sources[i];\n\n\t\t\tif ( !source ) {\n\t\t\t\tthis.intro = this.intro.replace( rx, '' );\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tsource.content.trimEnd( charType );\n\t\t\ti -= 1;\n\t\t} while ( source.content.toString() === '' ); // TODO faster way to determine non-empty source?\n\n\t\treturn this;\n\t}\n};\n"],"names":["const","let","this","MagicString"],"mappings":"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"}
\No newline at end of file