{"version":3,"file":"magic-string.es6.js","sources":["../src/Chunk.js","../src/utils/btoa.js","../src/utils/SourceMap.js","../src/utils/guessIndent.js","../src/utils/getLocator.js","../src/utils/encodeMappings.js","../src/utils/getRelativePath.js","../src/utils/isObject.js","../src/MagicString.js","../src/utils/hasOwnProp.js","../src/Bundle.js","../src/index.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\tappend ( content ) {\n\t\tthis.outro += 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 ) {\n\t\tthis.content = content;\n\t\tthis.storeName = storeName;\n\n\t\tthis.edited = true;\n\n\t\treturn this;\n\t},\n\n\tprepend ( 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 getLocator ( source ) {\n\tlet originalLines = source.split( '\\n' );\n\n\tlet start = 0;\n\tlet lineRanges = originalLines.map( ( line, i ) => {\n\t\tconst end = start + line.length + 1;\n\t\tconst range = { start, end, line: i };\n\n\t\tstart = end;\n\t\treturn range;\n\t});\n\n\tlet i = 0;\n\n\tfunction rangeContains ( range, index ) {\n\t\treturn range.start <= index && index < range.end;\n\t}\n\n\tfunction getLocation ( range, index ) {\n\t\treturn { line: range.line, column: index - range.start };\n\t}\n\n\treturn function locate ( index ) {\n\t\tlet range = lineRanges[i];\n\n\t\tconst d = index >= range.end ? 1 : -1;\n\n\t\twhile ( range ) {\n\t\t\tif ( rangeContains( range, index ) ) return getLocation( range, index );\n\n\t\t\ti += d;\n\t\t\trange = lineRanges[i];\n\t\t}\n\t};\n}\n","import { encode } from 'vlq';\nimport getLocator from './getLocator.js';\n\nexport default function encodeMappings ( original, intro, chunk, hires, sourcemapLocations, sourceIndex, offsets, names ) {\n\tlet rawLines = [];\n\n\tlet generatedCodeLine = intro.split( '\\n' ).length - 1;\n\tlet rawSegments = rawLines[ generatedCodeLine ] = [];\n\n\tlet generatedCodeColumn = 0;\n\n\tconst locate = getLocator( original );\n\n\tfunction addEdit ( content, original, loc, nameIndex, i ) {\n\t\tif ( i || content.length ) {\n\t\t\trawSegments.push({\n\t\t\t\tgeneratedCodeLine,\n\t\t\t\tgeneratedCodeColumn,\n\t\t\t\tsourceCodeLine: loc.line,\n\t\t\t\tsourceCodeColumn: loc.column,\n\t\t\t\tsourceCodeName: nameIndex,\n\t\t\t\tsourceIndex\n\t\t\t});\n\t\t}\n\n\t\tlet lines = content.split( '\\n' );\n\t\tlet lastLine = lines.pop();\n\n\t\tif ( lines.length ) {\n\t\t\tgeneratedCodeLine += lines.length;\n\t\t\trawLines[ generatedCodeLine ] = rawSegments = [];\n\t\t\tgeneratedCodeColumn = lastLine.length;\n\t\t} else {\n\t\t\tgeneratedCodeColumn += lastLine.length;\n\t\t}\n\n\t\tlines = original.split( '\\n' );\n\t\tlastLine = lines.pop();\n\n\t\tif ( lines.length ) {\n\t\t\tloc.line += lines.length;\n\t\t\tloc.column = lastLine.length;\n\t\t} else {\n\t\t\tloc.column += lastLine.length;\n\t\t}\n\t}\n\n\tfunction addUneditedChunk ( chunk, loc ) {\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\tgeneratedCodeLine,\n\t\t\t\t\tgeneratedCodeColumn,\n\t\t\t\t\tsourceCodeLine: loc.line,\n\t\t\t\t\tsourceCodeColumn: loc.column,\n\t\t\t\t\tsourceCodeName: -1,\n\t\t\t\t\tsourceIndex\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\trawLines[ 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\t}\n\n\twhile ( chunk ) {\n\t\tlet loc = locate( chunk.start );\n\n\t\tif ( chunk.intro.length ) {\n\t\t\taddEdit( chunk.intro, '', loc, -1, !!chunk.previous );\n\t\t}\n\n\t\tif ( chunk.edited ) {\n\t\t\taddEdit( chunk.content, chunk.original, loc, chunk.storeName ? names.indexOf( chunk.original ) : -1, !!chunk.previous );\n\t\t} else {\n\t\t\taddUneditedChunk( chunk, loc );\n\t\t}\n\n\t\tif ( chunk.outro.length ) {\n\t\t\taddEdit( chunk.outro, '', loc, -1, !!chunk.previous );\n\t\t}\n\n\t\tconst nextChunk = chunk.next;\n\t\tchunk = nextChunk;\n\t}\n\n\toffsets.sourceIndex = offsets.sourceIndex || 0;\n\toffsets.sourceCodeLine = offsets.sourceCodeLine || 0;\n\toffsets.sourceCodeColumn = offsets.sourceCodeColumn || 0;\n\toffsets.sourceCodeName = offsets.sourceCodeName || 0;\n\n\tconst encoded = rawLines.map( segments => {\n\t\tlet generatedCodeColumn = 0;\n\n\t\treturn segments.map( segment => {\n\t\t\tlet arr = [\n\t\t\t\tsegment.generatedCodeColumn - generatedCodeColumn,\n\t\t\t\tsegment.sourceIndex - offsets.sourceIndex,\n\t\t\t\tsegment.sourceCodeLine - offsets.sourceCodeLine,\n\t\t\t\tsegment.sourceCodeColumn - offsets.sourceCodeColumn\n\t\t\t];\n\n\t\t\tgeneratedCodeColumn = segment.generatedCodeColumn;\n\t\t\toffsets.sourceIndex = segment.sourceIndex;\n\t\t\toffsets.sourceCodeLine = segment.sourceCodeLine;\n\t\t\toffsets.sourceCodeColumn = segment.sourceCodeColumn;\n\n\t\t\tif ( ~segment.sourceCodeName ) {\n\t\t\t\tarr.push( segment.sourceCodeName - offsets.sourceCodeName );\n\t\t\t\toffsets.sourceCodeName = segment.sourceCodeName;\n\t\t\t}\n\n\t\t\treturn encode( arr );\n\t\t}).join( ',' );\n\t}).join( ';' );\n\n\treturn encoded;\n}\n","export default function getRelativePath ( from, to ) {\n\tlet fromParts = from.split( /[\\/\\\\]/ );\n\tlet 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","import Chunk from './Chunk.js';\nimport SourceMap from './utils/SourceMap.js';\nimport guessIndent from './utils/guessIndent.js';\nimport encodeMappings from './utils/encodeMappings.js';\nimport getRelativePath from './utils/getRelativePath.js';\nimport isObject from './utils/isObject.js';\nimport getLocator from './utils/getLocator.js';\nimport Stats from './utils/Stats.js';\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\tclone () {\n\t\tlet 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 = typeof this.indentExclusionRanges[0] === 'number' ?\n\t\t\t\t[ this.indentExclusionRanges[0], this.indentExclusionRanges[1] ] :\n\t\t\t\tthis.indentExclusionRanges.map( range => [ range.start, range.end ] );\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 names = Object.keys( this.storedNames );\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: this.getMappings( options.hires, 0, {}, names )\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\tgetMappings ( hires, sourceIndex, offsets, names ) {\n\t\treturn encodeMappings( this.original, this.intro, this.firstChunk, hires, this.sourcemapLocations, sourceIndex, offsets, names );\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\tlet isExcluded = {};\n\n\t\tif ( options.exclude ) {\n\t\t\tlet 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.prepend( indentStr );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tconst rhs = chunk.split( charIndex );\n\t\t\t\t\t\t\t\trhs.prepend( indentStr );\n\n\t\t\t\t\t\t\t\tthis.byStart[ charIndex ] = rhs;\n\t\t\t\t\t\t\t\tthis.byEnd[ charIndex ] = chunk;\n\n\t\t\t\t\t\t\t\tchunk = rhs;\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 insertRight(...) or insertLeft(...)' );\n\t},\n\n\tinsertLeft ( 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( 'insertLeft' );\n\n\t\tthis._split( index );\n\n\t\tconst chunk = this.byEnd[ index ];\n\n\t\tif ( chunk ) {\n\t\t\tchunk.append( content );\n\t\t} else {\n\t\t\tthis.intro += content;\n\t\t}\n\n\t\tif ( DEBUG ) this.stats.timeEnd( 'insertLeft' );\n\t\treturn this;\n\t},\n\n\tinsertRight ( 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.prepend( content );\n\t\t} else {\n\t\t\tthis.outro += content;\n\t\t}\n\n\t\tif ( DEBUG ) this.stats.timeEnd( 'insertRight' );\n\t\treturn this;\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;\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, storeName ) {\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 insertLeft or insertRight 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 ( 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\tfirst.edit( content, storeName );\n\n\t\t\tif ( first !== last ) {\n\t\t\t\tfirst.outro = '';\n\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.intro = chunk.outro = '';\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\tchunk.intro = '';\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\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\treturn this.overwrite( start, end, '', false );\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\tlet 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\tthis.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}\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}\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';\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\tlet offsets = {};\n\n\t\tlet 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 encoded = (\n\t\t\tgetSemis( this.intro ) +\n\t\t\tthis.sources.map( ( source, i ) => {\n\t\t\t\tconst prefix = ( i > 0 ) ? ( getSemis( source.separator ) || ',' ) : '';\n\t\t\t\tlet mappings;\n\n\t\t\t\t// we don't bother encoding sources without a filename\n\t\t\t\tif ( !source.filename ) {\n\t\t\t\t\tmappings = getSemis( source.content.toString() );\n\t\t\t\t} else {\n\t\t\t\t\tconst sourceIndex = this.uniqueSourceIndexByFilename[ source.filename ];\n\t\t\t\t\tmappings = source.content.getMappings( options.hires, sourceIndex, offsets, names );\n\t\t\t\t}\n\n\t\t\t\treturn prefix + mappings;\n\t\t\t}).join( '' )\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: encoded\n\t\t});\n\t},\n\n\tgetIndentString () {\n\t\tlet 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\tlet 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\nfunction getSemis ( str ) {\n\treturn new Array( str.split( '\\n' ).length ).join( ';' );\n}\n","import MagicString from './MagicString.js';\nimport Bundle from './Bundle.js';\n\nMagicString.Bundle = Bundle;\n\nexport default MagicString;\n"],"names":["const","let","this"],"mappings":"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"}