{"version":3,"sources":["../../../node_modules/.pnpm/@jridgewell+sourcemap-codec@1.4.15/node_modules/@jridgewell/sourcemap-codec/src/sourcemap-codec.ts","../../../node_modules/.pnpm/magic-string@0.30.5/node_modules/magic-string/src/BitSet.js","../../../node_modules/.pnpm/magic-string@0.30.5/node_modules/magic-string/src/Chunk.js","../../../node_modules/.pnpm/magic-string@0.30.5/node_modules/magic-string/src/SourceMap.js","../../../node_modules/.pnpm/magic-string@0.30.5/node_modules/magic-string/src/utils/guessIndent.js","../../../node_modules/.pnpm/magic-string@0.30.5/node_modules/magic-string/src/utils/getRelativePath.js","../../../node_modules/.pnpm/magic-string@0.30.5/node_modules/magic-string/src/utils/isObject.js","../../../node_modules/.pnpm/magic-string@0.30.5/node_modules/magic-string/src/utils/getLocator.js","../../../node_modules/.pnpm/magic-string@0.30.5/node_modules/magic-string/src/utils/Mappings.js","../../../node_modules/.pnpm/magic-string@0.30.5/node_modules/magic-string/src/MagicString.js","../../../node_modules/.pnpm/magic-string@0.30.5/node_modules/magic-string/src/Bundle.js"],"sourcesContent":["export type SourceMapSegment =\n  | [number]\n  | [number, number, number, number]\n  | [number, number, number, number, number];\nexport type SourceMapLine = SourceMapSegment[];\nexport type SourceMapMappings = SourceMapLine[];\n\nconst comma = ','.charCodeAt(0);\nconst semicolon = ';'.charCodeAt(0);\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nconst intToChar = new Uint8Array(64); // 64 possible chars.\nconst charToInt = new Uint8Array(128); // z is 122 in ASCII\n\nfor (let i = 0; i < chars.length; i++) {\n  const c = chars.charCodeAt(i);\n  intToChar[i] = c;\n  charToInt[c] = i;\n}\n\n// Provide a fallback for older environments.\nconst td =\n  typeof TextDecoder !== 'undefined'\n    ? /* #__PURE__ */ new TextDecoder()\n    : typeof Buffer !== 'undefined'\n    ? {\n        decode(buf: Uint8Array) {\n          const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);\n          return out.toString();\n        },\n      }\n    : {\n        decode(buf: Uint8Array) {\n          let out = '';\n          for (let i = 0; i < buf.length; i++) {\n            out += String.fromCharCode(buf[i]);\n          }\n          return out;\n        },\n      };\n\nexport function decode(mappings: string): SourceMapMappings {\n  const state: [number, number, number, number, number] = new Int32Array(5) as any;\n  const decoded: SourceMapMappings = [];\n\n  let index = 0;\n  do {\n    const semi = indexOf(mappings, index);\n    const line: SourceMapLine = [];\n    let sorted = true;\n    let lastCol = 0;\n    state[0] = 0;\n\n    for (let i = index; i < semi; i++) {\n      let seg: SourceMapSegment;\n\n      i = decodeInteger(mappings, i, state, 0); // genColumn\n      const col = state[0];\n      if (col < lastCol) sorted = false;\n      lastCol = col;\n\n      if (hasMoreVlq(mappings, i, semi)) {\n        i = decodeInteger(mappings, i, state, 1); // sourcesIndex\n        i = decodeInteger(mappings, i, state, 2); // sourceLine\n        i = decodeInteger(mappings, i, state, 3); // sourceColumn\n\n        if (hasMoreVlq(mappings, i, semi)) {\n          i = decodeInteger(mappings, i, state, 4); // namesIndex\n          seg = [col, state[1], state[2], state[3], state[4]];\n        } else {\n          seg = [col, state[1], state[2], state[3]];\n        }\n      } else {\n        seg = [col];\n      }\n\n      line.push(seg);\n    }\n\n    if (!sorted) sort(line);\n    decoded.push(line);\n    index = semi + 1;\n  } while (index <= mappings.length);\n\n  return decoded;\n}\n\nfunction indexOf(mappings: string, index: number): number {\n  const idx = mappings.indexOf(';', index);\n  return idx === -1 ? mappings.length : idx;\n}\n\nfunction decodeInteger(mappings: string, pos: number, state: SourceMapSegment, j: number): number {\n  let value = 0;\n  let shift = 0;\n  let integer = 0;\n\n  do {\n    const c = mappings.charCodeAt(pos++);\n    integer = charToInt[c];\n    value |= (integer & 31) << shift;\n    shift += 5;\n  } while (integer & 32);\n\n  const shouldNegate = value & 1;\n  value >>>= 1;\n\n  if (shouldNegate) {\n    value = -0x80000000 | -value;\n  }\n\n  state[j] += value;\n  return pos;\n}\n\nfunction hasMoreVlq(mappings: string, i: number, length: number): boolean {\n  if (i >= length) return false;\n  return mappings.charCodeAt(i) !== comma;\n}\n\nfunction sort(line: SourceMapSegment[]) {\n  line.sort(sortComparator);\n}\n\nfunction sortComparator(a: SourceMapSegment, b: SourceMapSegment): number {\n  return a[0] - b[0];\n}\n\nexport function encode(decoded: SourceMapMappings): string;\nexport function encode(decoded: Readonly<SourceMapMappings>): string;\nexport function encode(decoded: Readonly<SourceMapMappings>): string {\n  const state: [number, number, number, number, number] = new Int32Array(5) as any;\n  const bufLength = 1024 * 16;\n  const subLength = bufLength - 36;\n  const buf = new Uint8Array(bufLength);\n  const sub = buf.subarray(0, subLength);\n  let pos = 0;\n  let out = '';\n\n  for (let i = 0; i < decoded.length; i++) {\n    const line = decoded[i];\n    if (i > 0) {\n      if (pos === bufLength) {\n        out += td.decode(buf);\n        pos = 0;\n      }\n      buf[pos++] = semicolon;\n    }\n    if (line.length === 0) continue;\n\n    state[0] = 0;\n\n    for (let j = 0; j < line.length; j++) {\n      const segment = line[j];\n      // We can push up to 5 ints, each int can take at most 7 chars, and we\n      // may push a comma.\n      if (pos > subLength) {\n        out += td.decode(sub);\n        buf.copyWithin(0, subLength, pos);\n        pos -= subLength;\n      }\n      if (j > 0) buf[pos++] = comma;\n\n      pos = encodeInteger(buf, pos, state, segment, 0); // genColumn\n\n      if (segment.length === 1) continue;\n      pos = encodeInteger(buf, pos, state, segment, 1); // sourcesIndex\n      pos = encodeInteger(buf, pos, state, segment, 2); // sourceLine\n      pos = encodeInteger(buf, pos, state, segment, 3); // sourceColumn\n\n      if (segment.length === 4) continue;\n      pos = encodeInteger(buf, pos, state, segment, 4); // namesIndex\n    }\n  }\n\n  return out + td.decode(buf.subarray(0, pos));\n}\n\nfunction encodeInteger(\n  buf: Uint8Array,\n  pos: number,\n  state: SourceMapSegment,\n  segment: SourceMapSegment,\n  j: number,\n): number {\n  const next = segment[j];\n  let num = next - state[j];\n  state[j] = next;\n\n  num = num < 0 ? (-num << 1) | 1 : num << 1;\n  do {\n    let clamped = num & 0b011111;\n    num >>>= 5;\n    if (num > 0) clamped |= 0b100000;\n    buf[pos++] = intToChar[clamped];\n  } while (num > 0);\n\n  return pos;\n}\n","export default class BitSet {\n\tconstructor(arg) {\n\t\tthis.bits = arg instanceof BitSet ? arg.bits.slice() : [];\n\t}\n\n\tadd(n) {\n\t\tthis.bits[n >> 5] |= 1 << (n & 31);\n\t}\n\n\thas(n) {\n\t\treturn !!(this.bits[n >> 5] & (1 << (n & 31)));\n\t}\n}\n","export default class Chunk {\n\tconstructor(start, end, content) {\n\t\tthis.start = start;\n\t\tthis.end = end;\n\t\tthis.original = content;\n\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\n\t\tthis.content = content;\n\t\tthis.storeName = false;\n\t\tthis.edited = false;\n\n\t\tif (DEBUG) {\n\t\t\t// we make these non-enumerable, for sanity while debugging\n\t\t\tObject.defineProperties(this, {\n\t\t\t\tprevious: { writable: true, value: null },\n\t\t\t\tnext: { writable: true, value: null },\n\t\t\t});\n\t\t} else {\n\t\t\tthis.previous = null;\n\t\t\tthis.next = null;\n\t\t}\n\t}\n\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// after split we should save the edit content record into the correct chunk\n\t\t\t// to make sure sourcemap correct\n\t\t\t// For example:\n\t\t\t// '  test'.trim()\n\t\t\t//     split   -> '  ' + 'test'\n\t\t\t//   ✔️ edit    -> '' + 'test'\n\t\t\t//   ✖️ edit    -> 'test' + '' \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('', undefined, true);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tthis.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\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\tconst newChunk = this.split(this.end - trimmed.length);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tnewChunk.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t\tthis.edit('', undefined, true);\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\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","import { encode } from '@jridgewell/sourcemap-codec';\n\nfunction getBtoa() {\n\tif (typeof window !== 'undefined' && typeof window.btoa === 'function') {\n\t\treturn (str) => window.btoa(unescape(encodeURIComponent(str)));\n\t} else if (typeof Buffer === 'function') {\n\t\treturn (str) => Buffer.from(str, 'utf-8').toString('base64');\n\t} else {\n\t\treturn () => {\n\t\t\tthrow new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.');\n\t\t};\n\t}\n}\n\nconst btoa = /*#__PURE__*/ getBtoa();\n\nexport default class SourceMap {\n\tconstructor(properties) {\n\t\tthis.version = 3;\n\t\tthis.file = properties.file;\n\t\tthis.sources = properties.sources;\n\t\tthis.sourcesContent = properties.sourcesContent;\n\t\tthis.names = properties.names;\n\t\tthis.mappings = encode(properties.mappings);\n\t\tif (typeof properties.x_google_ignoreList !== 'undefined') {\n\t\t\tthis.x_google_ignoreList = properties.x_google_ignoreList;\n\t\t}\n\t}\n\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","const wordRegex = /\\w/;\n\nexport default class Mappings {\n\tconstructor(hires) {\n\t\tthis.hires = hires;\n\t\tthis.generatedCodeLine = 0;\n\t\tthis.generatedCodeColumn = 0;\n\t\tthis.raw = [];\n\t\tthis.rawSegments = this.raw[this.generatedCodeLine] = [];\n\t\tthis.pending = null;\n\t}\n\n\taddEdit(sourceIndex, content, loc, nameIndex) {\n\t\tif (content.length) {\n\t\t\tlet contentLineEnd = content.indexOf('\\n', 0);\n\t\t\tlet previousContentLineEnd = -1;\n\t\t\twhile (contentLineEnd >= 0) {\n\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\t\tif (nameIndex >= 0) {\n\t\t\t\t\tsegment.push(nameIndex);\n\t\t\t\t}\n\t\t\t\tthis.rawSegments.push(segment);\n\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\n\t\t\t\tpreviousContentLineEnd = contentLineEnd;\n\t\t\t\tcontentLineEnd = content.indexOf('\\n', contentLineEnd + 1);\n\t\t\t}\n\n\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\tif (nameIndex >= 0) {\n\t\t\t\tsegment.push(nameIndex);\n\t\t\t}\n\t\t\tthis.rawSegments.push(segment);\n\n\t\t\tthis.advance(content.slice(previousContentLineEnd + 1));\n\t\t} else if (this.pending) {\n\t\t\tthis.rawSegments.push(this.pending);\n\t\t\tthis.advance(content);\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\taddUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) {\n\t\tlet originalCharIndex = chunk.start;\n\t\tlet first = true;\n\t\t// when iterating each char, check if it's in a word boundary\n\t\tlet charInHiresBoundary = false;\n\n\t\twhile (originalCharIndex < chunk.end) {\n\t\t\tif (this.hires || first || sourcemapLocations.has(originalCharIndex)) {\n\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\n\t\t\t\tif (this.hires === 'boundary') {\n\t\t\t\t\t// in hires \"boundary\", group segments per word boundary than per char\n\t\t\t\t\tif (wordRegex.test(original[originalCharIndex])) {\n\t\t\t\t\t\t// for first char in the boundary found, start the boundary by pushing a segment\n\t\t\t\t\t\tif (!charInHiresBoundary) {\n\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\tcharInHiresBoundary = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// for non-word char, end the boundary by pushing a segment\n\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\tcharInHiresBoundary = false;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.rawSegments.push(segment);\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\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\t\t\t\tfirst = true;\n\t\t\t} else {\n\t\t\t\tloc.column += 1;\n\t\t\t\tthis.generatedCodeColumn += 1;\n\t\t\t\tfirst = false;\n\t\t\t}\n\n\t\t\toriginalCharIndex += 1;\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\tadvance(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\tthis.generatedCodeLine++;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t}\n\t\t\tthis.generatedCodeColumn = 0;\n\t\t}\n\n\t\tthis.generatedCodeColumn += lines[lines.length - 1].length;\n\t}\n}\n","import BitSet from './BitSet.js';\nimport Chunk from './Chunk.js';\nimport SourceMap from './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 n = '\\n';\n\nconst warned = {\n\tinsertLeft: false,\n\tinsertRight: false,\n\tstoreName: false,\n};\n\nexport default class MagicString {\n\tconstructor(string, options = {}) {\n\t\tconst chunk = new Chunk(0, string.length, string);\n\n\t\tObject.defineProperties(this, {\n\t\t\toriginal: { writable: true, value: string },\n\t\t\toutro: { writable: true, value: '' },\n\t\t\tintro: { writable: true, value: '' },\n\t\t\tfirstChunk: { writable: true, value: chunk },\n\t\t\tlastChunk: { writable: true, value: chunk },\n\t\t\tlastSearchedChunk: { writable: true, value: chunk },\n\t\t\tbyStart: { writable: true, value: {} },\n\t\t\tbyEnd: { writable: true, value: {} },\n\t\t\tfilename: { writable: true, value: options.filename },\n\t\t\tindentExclusionRanges: { writable: true, value: options.indentExclusionRanges },\n\t\t\tsourcemapLocations: { writable: true, value: new BitSet() },\n\t\t\tstoredNames: { writable: true, value: {} },\n\t\t\tindentStr: { writable: true, value: undefined },\n\t\t\tignoreList: { writable: true, value: options.ignoreList },\n\t\t});\n\n\t\tif (DEBUG) {\n\t\t\tObject.defineProperty(this, 'stats', { value: new Stats() });\n\t\t}\n\n\t\tthis.byStart[0] = chunk;\n\t\tthis.byEnd[string.length] = chunk;\n\t}\n\n\taddSourcemapLocation(char) {\n\t\tthis.sourcemapLocations.add(char);\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\tcloned.sourcemapLocations = new BitSet(this.sourcemapLocations);\n\n\t\tcloned.intro = this.intro;\n\t\tcloned.outro = this.outro;\n\n\t\treturn cloned;\n\t}\n\n\tgenerateDecodedMap(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(\n\t\t\t\t\tsourceIndex,\n\t\t\t\t\tchunk.content,\n\t\t\t\t\tloc,\n\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t);\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\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: [\n\t\t\t\toptions.source ? getRelativePath(options.file || '', options.source) : options.file || '',\n\t\t\t],\n\t\t\tsourcesContent: options.includeContent ? [this.original] : undefined,\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList: this.ignoreList ? [sourceIndex] : undefined,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\t_ensureindentStr() {\n\t\tif (this.indentStr === undefined) {\n\t\t\tthis.indentStr = guessIndent(this.original);\n\t\t}\n\t}\n\n\t_getRawIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr;\n\t}\n\n\tgetIndentString() {\n\t\tthis._ensureindentStr();\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\tif (indentStr === undefined) {\n\t\t\tthis._ensureindentStr();\n\t\t\tindentStr = this.indentStr || '\\t';\n\t\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 =\n\t\t\t\ttypeof 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\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(\n\t\t\t'magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)',\n\t\t);\n\t}\n\n\tinsertLeft(index, content) {\n\t\tif (!warned.insertLeft) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead',\n\t\t\t); // 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(\n\t\t\t\t'magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead',\n\t\t\t); // 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\toptions = options || {};\n\t\treturn this.update(start, end, content, { ...options, overwrite: !options.contentOnly });\n\t}\n\n\tupdate(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)\n\t\t\tthrow new Error(\n\t\t\t\t'Cannot overwrite a zero-length range – use appendLeft or prependRight instead',\n\t\t\t);\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(\n\t\t\t\t\t'The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string',\n\t\t\t\t); // 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 overwrite = options !== undefined ? options.overwrite : false;\n\n\t\tif (storeName) {\n\t\t\tconst original = this.original.slice(start, end);\n\t\t\tObject.defineProperty(this.storedNames, original, {\n\t\t\t\twritable: true,\n\t\t\t\tvalue: true,\n\t\t\t\tenumerable: true,\n\t\t\t});\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\tlet chunk = first;\n\t\t\twhile (chunk !== last) {\n\t\t\t\tif (chunk.next !== this.byStart[chunk.end]) {\n\t\t\t\t\tthrow new Error('Cannot overwrite across a split point');\n\t\t\t\t}\n\t\t\t\tchunk = chunk.next;\n\t\t\t\tchunk.edit('', false);\n\t\t\t}\n\n\t\t\tfirst.edit(content, storeName, !overwrite);\n\t\t} else {\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\tlastChar() {\n\t\tif (this.outro.length) return this.outro[this.outro.length - 1];\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length) return chunk.outro[chunk.outro.length - 1];\n\t\t\tif (chunk.content.length) return chunk.content[chunk.content.length - 1];\n\t\t\tif (chunk.intro.length) return chunk.intro[chunk.intro.length - 1];\n\t\t} while ((chunk = chunk.previous));\n\t\tif (this.intro.length) return this.intro[this.intro.length - 1];\n\t\treturn '';\n\t}\n\n\tlastLine() {\n\t\tlet lineIndex = this.outro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.outro.substr(lineIndex + 1);\n\t\tlet lineStr = this.outro;\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length > 0) {\n\t\t\t\tlineIndex = chunk.outro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.outro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.outro + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.content.length > 0) {\n\t\t\t\tlineIndex = chunk.content.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.content.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.content + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.intro.length > 0) {\n\t\t\t\tlineIndex = chunk.intro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.intro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.intro + lineStr;\n\t\t\t}\n\t\t} while ((chunk = chunk.previous));\n\t\tlineIndex = this.intro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.intro.substr(lineIndex + 1) + lineStr;\n\t\treturn this.intro + lineStr;\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\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)\n\t\t\tthrow 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)\n\t\t\t\tthrow 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 (chunk) {\n\t\t\tif (chunk.contains(index)) return this._splitChunk(chunk, index);\n\n\t\t\tchunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start];\n\t\t}\n\t}\n\n\t_splitChunk(chunk, index) {\n\t\tif (chunk.edited && chunk.content.length) {\n\t\t\t// 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(\n\t\t\t\t`Cannot split a chunk that has already been edited (${loc.line}:${loc.column} – \"${chunk.original}\")`,\n\t\t\t);\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\tisEmpty() {\n\t\tlet chunk = this.firstChunk;\n\t\tdo {\n\t\t\tif (\n\t\t\t\t(chunk.intro.length && chunk.intro.trim()) ||\n\t\t\t\t(chunk.content.length && chunk.content.trim()) ||\n\t\t\t\t(chunk.outro.length && chunk.outro.trim())\n\t\t\t)\n\t\t\t\treturn false;\n\t\t} while ((chunk = chunk.next));\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\tlet chunk = this.firstChunk;\n\t\tlet length = 0;\n\t\tdo {\n\t\t\tlength += chunk.intro.length + chunk.content.length + chunk.outro.length;\n\t\t} while ((chunk = chunk.next));\n\t\treturn length;\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\ttrimEndAborted(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 true;\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 true;\n\t\t\tchunk = chunk.previous;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimEnd(charType) {\n\t\tthis.trimEndAborted(charType);\n\t\treturn this;\n\t}\n\ttrimStartAborted(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 true;\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 true;\n\t\t\tchunk = chunk.next;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimStart(charType) {\n\t\tthis.trimStartAborted(charType);\n\t\treturn this;\n\t}\n\n\thasChanged() {\n\t\treturn this.original !== this.toString();\n\t}\n\n\t_replaceRegexp(searchValue, replacement) {\n\t\tfunction getReplacement(match, str) {\n\t\t\tif (typeof replacement === 'string') {\n\t\t\t\treturn replacement.replace(/\\$(\\$|&|\\d+)/g, (_, i) => {\n\t\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_string_as_a_parameter\n\t\t\t\t\tif (i === '$') return '$';\n\t\t\t\t\tif (i === '&') return match[0];\n\t\t\t\t\tconst num = +i;\n\t\t\t\t\tif (num < match.length) return match[+i];\n\t\t\t\t\treturn `$${i}`;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn replacement(...match, match.index, str, match.groups);\n\t\t\t}\n\t\t}\n\t\tfunction matchAll(re, str) {\n\t\t\tlet match;\n\t\t\tconst matches = [];\n\t\t\twhile ((match = re.exec(str))) {\n\t\t\t\tmatches.push(match);\n\t\t\t}\n\t\t\treturn matches;\n\t\t}\n\t\tif (searchValue.global) {\n\t\t\tconst matches = matchAll(searchValue, this.original);\n\t\t\tmatches.forEach((match) => {\n\t\t\t\tif (match.index != null)\n\t\t\t\t\tthis.overwrite(\n\t\t\t\t\t\tmatch.index,\n\t\t\t\t\t\tmatch.index + match[0].length,\n\t\t\t\t\t\tgetReplacement(match, this.original),\n\t\t\t\t\t);\n\t\t\t});\n\t\t} else {\n\t\t\tconst match = this.original.match(searchValue);\n\t\t\tif (match && match.index != null)\n\t\t\t\tthis.overwrite(\n\t\t\t\t\tmatch.index,\n\t\t\t\t\tmatch.index + match[0].length,\n\t\t\t\t\tgetReplacement(match, this.original),\n\t\t\t\t);\n\t\t}\n\t\treturn this;\n\t}\n\n\t_replaceString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst index = original.indexOf(string);\n\n\t\tif (index !== -1) {\n\t\t\tthis.overwrite(index, index + string.length, replacement);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplace(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceString(searchValue, replacement);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n\n\t_replaceAllString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst stringLength = string.length;\n\t\tfor (\n\t\t\tlet index = original.indexOf(string);\n\t\t\tindex !== -1;\n\t\t\tindex = original.indexOf(string, index + stringLength)\n\t\t) {\n\t\t\tthis.overwrite(index, index + stringLength, replacement);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplaceAll(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceAllString(searchValue, replacement);\n\t\t}\n\n\t\tif (!searchValue.global) {\n\t\t\tthrow new TypeError(\n\t\t\t\t'MagicString.prototype.replaceAll called with a non-global RegExp argument',\n\t\t\t);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n}\n","import MagicString from './MagicString.js';\nimport SourceMap from './SourceMap.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';\n\nconst hasOwnProp = Object.prototype.hasOwnProperty;\n\nexport default class Bundle {\n\tconstructor(options = {}) {\n\t\tthis.intro = options.intro || '';\n\t\tthis.separator = options.separator !== undefined ? options.separator : '\\n';\n\t\tthis.sources = [];\n\t\tthis.uniqueSources = [];\n\t\tthis.uniqueSourceIndexByFilename = {};\n\t}\n\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(\n\t\t\t\t'bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`',\n\t\t\t);\n\t\t}\n\n\t\t['filename', 'ignoreList', '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) {\n\t\t\t// 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\tgenerateDecodedMap(options = {}) {\n\t\tconst names = [];\n\t\tlet x_google_ignoreList = undefined;\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(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk.content,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmappings.addUneditedChunk(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk,\n\t\t\t\t\t\t\tmagicString.original,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tmagicString.sourcemapLocations,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\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\n\t\t\tif (source.ignoreList && sourceIndex !== -1) {\n\t\t\t\tif (x_google_ignoreList === undefined) {\n\t\t\t\t\tx_google_ignoreList = [];\n\t\t\t\t}\n\t\t\t\tx_google_ignoreList.push(sourceIndex);\n\t\t\t}\n\t\t});\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\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.raw,\n\t\t\tx_google_ignoreList,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\tgetIndentString() {\n\t\tconst indentStringCounts = {};\n\n\t\tthis.sources.forEach((source) => {\n\t\t\tconst indentStr = source.content._getRawIndentString();\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 (\n\t\t\tObject.keys(indentStringCounts).sort((a, b) => {\n\t\t\t\treturn indentStringCounts[a] - indentStringCounts[b];\n\t\t\t})[0] || '\\t'\n\t\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\ttrailingNewline = source.content.lastChar() === '\\n';\n\t\t});\n\n\t\tif (this.intro) {\n\t\t\tthis.intro =\n\t\t\t\tindentStr +\n\t\t\t\tthis.intro.replace(/^[^\\n]/gm, (match, index) => {\n\t\t\t\t\treturn index > 0 ? indentStr + match : match;\n\t\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\n\t\t\t.map((source, i) => {\n\t\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\t\tconst str = (i > 0 ? separator : '') + source.content.toString();\n\n\t\t\t\treturn str;\n\t\t\t})\n\t\t\t.join('');\n\n\t\treturn this.intro + body;\n\t}\n\n\tisEmpty() {\n\t\tif (this.intro.length && this.intro.trim()) return false;\n\t\tif (this.sources.some((source) => !source.content.isEmpty())) return false;\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\treturn this.sources.reduce(\n\t\t\t(length, source) => length + source.content.length(),\n\t\t\tthis.intro.length,\n\t\t);\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\t\t\t\tif (!source) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} while (!source.content.trimStartAborted(charType));\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\t\t\tif (!source) {\n\t\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} while (!source.content.trimEndAborted(charType));\n\n\t\treturn this;\n\t}\n}\n"],"mappings":"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","names":["chars","intToChar","charToInt","i","c","td","buf","out","encode","decoded","state","bufLength","subLength","buf","sub","pos","out","i","line","td","j","segment","encodeInteger","next","num","clamped","intToChar","BitSet","_BitSet","arg","n","Chunk","_Chunk","start","end","content","chunk","index","fn","storeName","contentOnly","sliceIndex","originalBefore","originalAfter","newChunk","rx","trimmed","getBtoa","str","btoa","SourceMap","properties","encode","guessIndent","code","lines","tabbed","line","spaced","min","previous","current","numSpaces","getRelativePath","from","to","fromParts","toParts","toString","isObject","thing","getLocator","source","originalLines","lineOffsets","i","pos","j","m","column","wordRegex","Mappings","hires","sourceIndex","loc","nameIndex","contentLineEnd","previousContentLineEnd","segment","original","sourcemapLocations","originalCharIndex","first","charInHiresBoundary","warned","MagicString","_MagicString","string","options","char","cloned","originalChunk","clonedChunk","nextOriginalChunk","nextClonedChunk","names","mappings","locate","indentStr","pattern","isExcluded","exclusion","shouldIndentNextCharacter","replacer","match","charIndex","last","oldLeft","oldRight","newRight","newLeft","overwrite","lineIndex","lineStr","result","startChunk","containsEnd","sliceStart","sliceEnd","clone","searchForward","length","charType","aborted","searchValue","replacement","getReplacement","_","matchAll","re","matches","stringLength","hasOwnProp","Bundle","_Bundle","option","uniqueSource","bundle","x_google_ignoreList","name","magicString","indentStringCounts","a","b","trailingNewline","separator","indentStart","body"]}