{"mappings":"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","names":["encode","TraceMap","decodedMappings","SetArray","get","setarr","key","put","index","array","indexes","length","remove","i","k","COLUMN","SOURCES_INDEX","SOURCE_LINE","SOURCE_COLUMN","NAMES_INDEX","NO_NAME","GenMapping","file","sourceRoot","SetArray","addSegment","map","genLine","genColumn","source","sourceLine","sourceColumn","name","content","addSegmentInternal","addMapping","mapping","addMappingInternal","maybeAddSegment","maybeAddMapping","setSourceContent","sources","sourcesContent","index","put","setIgnore","ignore","ignoreList","remove","toDecodedMap","mappings","names","removeEmptyFinalLines","toEncodedMap","decoded","encode","fromMap","input","TraceMap","gen","GenMapping","putAll","decodedMappings","allMappings","out","i","line","j","seg","generated","COLUMN","original","SOURCES_INDEX","SOURCE_LINE","SOURCE_COLUMN","NAMES_INDEX","skipable","getIndex","getColumnIndex","skipSourceless","insert","sourcesIndex","namesIndex","NO_NAME","skipSource","getIndex","arr","index","i","getColumnIndex","line","genColumn","current","COLUMN","insert","array","value","removeEmptyFinalLines","mappings","length","len","putAll","setarr","put","skipSourceless","skipSource","sourcesIndex","sourceLine","sourceColumn","namesIndex","prev","SOURCES_INDEX","SOURCE_LINE","SOURCE_COLUMN","NAMES_INDEX","NO_NAME","addMappingInternal","skipable","map","mapping","generated","source","original","name","content","addSegmentInternal"],"sources":["../esm/npm/@jridgewell/gen-mapping@0.3.13/node_modules/@jridgewell/gen-mapping/src/set-array.ts","../esm/npm/@jridgewell/gen-mapping@0.3.13/node_modules/@jridgewell/gen-mapping/src/gen-mapping.ts","../esm/npm/@jridgewell/gen-mapping@0.3.13/node_modules/@jridgewell/gen-mapping/src/sourcemap-segment.ts"],"sourcesContent":["type Key = string | number | symbol;\n\n/**\n * SetArray acts like a `Set` (allowing only one occurrence of a string `key`), but provides the\n * index of the `key` in the backing array.\n *\n * This is designed to allow synchronizing a second array with the contents of the backing array,\n * like how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`,\n * and there are never duplicates.\n */\nexport class SetArray\u003cT extends Key = Key\u003e {\n  declare private _indexes: Record\u003cT, number | undefined\u003e;\n  declare array: readonly T[];\n\n  constructor() {\n    this._indexes = { __proto__: null } as any;\n    this.array = [];\n  }\n}\n\ninterface PublicSet\u003cT extends Key\u003e {\n  array: T[];\n  _indexes: SetArray\u003cT\u003e['_indexes'];\n}\n\n/**\n * Typescript doesn't allow friend access to private fields, so this just casts the set into a type\n * with public access modifiers.\n */\nfunction cast\u003cT extends Key\u003e(set: SetArray\u003cT\u003e): PublicSet\u003cT\u003e {\n  return set as any;\n}\n\n/**\n * Gets the index associated with `key` in the backing array, if it is already present.\n */\nexport function get\u003cT extends Key\u003e(setarr: SetArray\u003cT\u003e, key: T): number | undefined {\n  return cast(setarr)._indexes[key];\n}\n\n/**\n * Puts `key` into the backing array, if it is not already present. Returns\n * the index of the `key` in the backing array.\n */\nexport function put\u003cT extends Key\u003e(setarr: SetArray\u003cT\u003e, key: T): number {\n  // The key may or may not be present. If it is present, it's a number.\n  const index = get(setarr, key);\n  if (index !== undefined) return index;\n\n  const { array, _indexes: indexes } = cast(setarr);\n\n  const length = array.push(key);\n  return (indexes[key] = length - 1);\n}\n\n/**\n * Pops the last added item out of the SetArray.\n */\nexport function pop\u003cT extends Key\u003e(setarr: SetArray\u003cT\u003e): void {\n  const { array, _indexes: indexes } = cast(setarr);\n  if (array.length === 0) return;\n\n  const last = array.pop()!;\n  indexes[last] = undefined;\n}\n\n/**\n * Removes the key, if it exists in the set.\n */\nexport function remove\u003cT extends Key\u003e(setarr: SetArray\u003cT\u003e, key: T): void {\n  const index = get(setarr, key);\n  if (index === undefined) return;\n\n  const { array, _indexes: indexes } = cast(setarr);\n  for (let i = index + 1; i \u003c array.length; i++) {\n    const k = array[i];\n    array[i - 1] = k;\n    indexes[k]!--;\n  }\n  indexes[key] = undefined;\n  array.pop();\n}\n","import { SetArray, put, remove } from './set-array';\nimport {\n  encode,\n  // encodeGeneratedRanges,\n  // encodeOriginalScopes\n} from '@jridgewell/sourcemap-codec';\nimport { TraceMap, decodedMappings } from '@jridgewell/trace-mapping';\n\nimport {\n  COLUMN,\n  SOURCES_INDEX,\n  SOURCE_LINE,\n  SOURCE_COLUMN,\n  NAMES_INDEX,\n} from './sourcemap-segment';\n\nimport type { SourceMapInput } from '@jridgewell/trace-mapping';\n// import type { OriginalScope, GeneratedRange } from '@jridgewell/sourcemap-codec';\nimport type { SourceMapSegment } from './sourcemap-segment';\nimport type {\n  DecodedSourceMap,\n  EncodedSourceMap,\n  Pos,\n  Mapping,\n  // BindingExpressionRange,\n  // OriginalPos,\n  // OriginalScopeInfo,\n  // GeneratedRangeInfo,\n} from './types';\n\nexport type { DecodedSourceMap, EncodedSourceMap, Mapping };\n\nexport type Options = {\n  file?: string | null;\n  sourceRoot?: string | null;\n};\n\nconst NO_NAME = -1;\n\n/**\n * Provides the state to generate a sourcemap.\n */\nexport class GenMapping {\n  declare private _names: SetArray\u003cstring\u003e;\n  declare private _sources: SetArray\u003cstring\u003e;\n  declare private _sourcesContent: (string | null)[];\n  declare private _mappings: SourceMapSegment[][];\n  // private declare _originalScopes: OriginalScope[][];\n  // private declare _generatedRanges: GeneratedRange[];\n  declare private _ignoreList: SetArray\u003cnumber\u003e;\n  declare file: string | null | undefined;\n  declare sourceRoot: string | null | undefined;\n\n  constructor({ file, sourceRoot }: Options = {}) {\n    this._names = new SetArray();\n    this._sources = new SetArray();\n    this._sourcesContent = [];\n    this._mappings = [];\n    // this._originalScopes = [];\n    // this._generatedRanges = [];\n    this.file = file;\n    this.sourceRoot = sourceRoot;\n    this._ignoreList = new SetArray();\n  }\n}\n\ninterface PublicMap {\n  _names: GenMapping['_names'];\n  _sources: GenMapping['_sources'];\n  _sourcesContent: GenMapping['_sourcesContent'];\n  _mappings: GenMapping['_mappings'];\n  // _originalScopes: GenMapping['_originalScopes'];\n  // _generatedRanges: GenMapping['_generatedRanges'];\n  _ignoreList: GenMapping['_ignoreList'];\n}\n\n/**\n * Typescript doesn't allow friend access to private fields, so this just casts the map into a type\n * with public access modifiers.\n */\nfunction cast(map: unknown): PublicMap {\n  return map as any;\n}\n\n/**\n * A low-level API to associate a generated position with an original source position. Line and\n * column here are 0-based, unlike `addMapping`.\n */\nexport function addSegment(\n  map: GenMapping,\n  genLine: number,\n  genColumn: number,\n  source?: null,\n  sourceLine?: null,\n  sourceColumn?: null,\n  name?: null,\n  content?: null,\n): void;\nexport function addSegment(\n  map: GenMapping,\n  genLine: number,\n  genColumn: number,\n  source: string,\n  sourceLine: number,\n  sourceColumn: number,\n  name?: null,\n  content?: string | null,\n): void;\nexport function addSegment(\n  map: GenMapping,\n  genLine: number,\n  genColumn: number,\n  source: string,\n  sourceLine: number,\n  sourceColumn: number,\n  name: string,\n  content?: string | null,\n): void;\nexport function addSegment(\n  map: GenMapping,\n  genLine: number,\n  genColumn: number,\n  source?: string | null,\n  sourceLine?: number | null,\n  sourceColumn?: number | null,\n  name?: string | null,\n  content?: string | null,\n): void {\n  return addSegmentInternal(\n    false,\n    map,\n    genLine,\n    genColumn,\n    source,\n    sourceLine,\n    sourceColumn,\n    name,\n    content,\n  );\n}\n\n/**\n * A high-level API to associate a generated position with an original source position. Line is\n * 1-based, but column is 0-based, due to legacy behavior in `source-map` library.\n */\nexport function addMapping(\n  map: GenMapping,\n  mapping: {\n    generated: Pos;\n    source?: null;\n    original?: null;\n    name?: null;\n    content?: null;\n  },\n): void;\nexport function addMapping(\n  map: GenMapping,\n  mapping: {\n    generated: Pos;\n    source: string;\n    original: Pos;\n    name?: null;\n    content?: string | null;\n  },\n): void;\nexport function addMapping(\n  map: GenMapping,\n  mapping: {\n    generated: Pos;\n    source: string;\n    original: Pos;\n    name: string;\n    content?: string | null;\n  },\n): void;\nexport function addMapping(\n  map: GenMapping,\n  mapping: {\n    generated: Pos;\n    source?: string | null;\n    original?: Pos | null;\n    name?: string | null;\n    content?: string | null;\n  },\n): void {\n  return addMappingInternal(false, map, mapping as Parameters\u003ctypeof addMappingInternal\u003e[2]);\n}\n\n/**\n * Same as `addSegment`, but will only add the segment if it generates useful information in the\n * resulting map. This only works correctly if segments are added **in order**, meaning you should\n * not add a segment with a lower generated line/column than one that came before.\n */\nexport const maybeAddSegment: typeof addSegment = (\n  map,\n  genLine,\n  genColumn,\n  source,\n  sourceLine,\n  sourceColumn,\n  name,\n  content,\n) =\u003e {\n  return addSegmentInternal(\n    true,\n    map,\n    genLine,\n    genColumn,\n    source,\n    sourceLine,\n    sourceColumn,\n    name,\n    content,\n  );\n};\n\n/**\n * Same as `addMapping`, but will only add the mapping if it generates useful information in the\n * resulting map. This only works correctly if mappings are added **in order**, meaning you should\n * not add a mapping with a lower generated line/column than one that came before.\n */\nexport const maybeAddMapping: typeof addMapping = (map, mapping) =\u003e {\n  return addMappingInternal(true, map, mapping as Parameters\u003ctypeof addMappingInternal\u003e[2]);\n};\n\n/**\n * Adds/removes the content of the source file to the source map.\n */\nexport function setSourceContent(map: GenMapping, source: string, content: string | null): void {\n  const {\n    _sources: sources,\n    _sourcesContent: sourcesContent,\n    // _originalScopes: originalScopes,\n  } = cast(map);\n  const index = put(sources, source);\n  sourcesContent[index] = content;\n  // if (index === originalScopes.length) originalScopes[index] = [];\n}\n\nexport function setIgnore(map: GenMapping, source: string, ignore = true) {\n  const {\n    _sources: sources,\n    _sourcesContent: sourcesContent,\n    _ignoreList: ignoreList,\n    // _originalScopes: originalScopes,\n  } = cast(map);\n  const index = put(sources, source);\n  if (index === sourcesContent.length) sourcesContent[index] = null;\n  // if (index === originalScopes.length) originalScopes[index] = [];\n  if (ignore) put(ignoreList, index);\n  else remove(ignoreList, index);\n}\n\n/**\n * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nexport function toDecodedMap(map: GenMapping): DecodedSourceMap {\n  const {\n    _mappings: mappings,\n    _sources: sources,\n    _sourcesContent: sourcesContent,\n    _names: names,\n    _ignoreList: ignoreList,\n    // _originalScopes: originalScopes,\n    // _generatedRanges: generatedRanges,\n  } = cast(map);\n  removeEmptyFinalLines(mappings);\n\n  return {\n    version: 3,\n    file: map.file || undefined,\n    names: names.array,\n    sourceRoot: map.sourceRoot || undefined,\n    sources: sources.array,\n    sourcesContent,\n    mappings,\n    // originalScopes,\n    // generatedRanges,\n    ignoreList: ignoreList.array,\n  };\n}\n\n/**\n * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nexport function toEncodedMap(map: GenMapping): EncodedSourceMap {\n  const decoded = toDecodedMap(map);\n  return Object.assign({}, decoded, {\n    // originalScopes: decoded.originalScopes.map((os) =\u003e encodeOriginalScopes(os)),\n    // generatedRanges: encodeGeneratedRanges(decoded.generatedRanges as GeneratedRange[]),\n    mappings: encode(decoded.mappings as SourceMapSegment[][]),\n  });\n}\n\n/**\n * Constructs a new GenMapping, using the already present mappings of the input.\n */\nexport function fromMap(input: SourceMapInput): GenMapping {\n  const map = new TraceMap(input);\n  const gen = new GenMapping({ file: map.file, sourceRoot: map.sourceRoot });\n\n  putAll(cast(gen)._names, map.names);\n  putAll(cast(gen)._sources, map.sources as string[]);\n  cast(gen)._sourcesContent = map.sourcesContent || map.sources.map(() =\u003e null);\n  cast(gen)._mappings = decodedMappings(map) as GenMapping['_mappings'];\n  // TODO: implement originalScopes/generatedRanges\n  if (map.ignoreList) putAll(cast(gen)._ignoreList, map.ignoreList);\n\n  return gen;\n}\n\n/**\n * Returns an array of high-level mapping objects for every recorded segment, which could then be\n * passed to the `source-map` library.\n */\nexport function allMappings(map: GenMapping): Mapping[] {\n  const out: Mapping[] = [];\n  const { _mappings: mappings, _sources: sources, _names: names } = cast(map);\n\n  for (let i = 0; i \u003c mappings.length; i++) {\n    const line = mappings[i];\n    for (let j = 0; j \u003c line.length; j++) {\n      const seg = line[j];\n\n      const generated = { line: i + 1, column: seg[COLUMN] };\n      let source: string | undefined = undefined;\n      let original: Pos | undefined = undefined;\n      let name: string | undefined = undefined;\n\n      if (seg.length !== 1) {\n        source = sources.array[seg[SOURCES_INDEX]];\n        original = { line: seg[SOURCE_LINE] + 1, column: seg[SOURCE_COLUMN] };\n\n        if (seg.length === 5) name = names.array[seg[NAMES_INDEX]];\n      }\n\n      out.push({ generated, source, original, name } as Mapping);\n    }\n  }\n\n  return out;\n}\n\n// This split declaration is only so that terser can elminiate the static initialization block.\nfunction addSegmentInternal\u003cS extends string | null | undefined\u003e(\n  skipable: boolean,\n  map: GenMapping,\n  genLine: number,\n  genColumn: number,\n  source: S,\n  sourceLine: S extends string ? number : null | undefined,\n  sourceColumn: S extends string ? number : null | undefined,\n  name: S extends string ? string | null | undefined : null | undefined,\n  content: S extends string ? string | null | undefined : null | undefined,\n): void {\n  const {\n    _mappings: mappings,\n    _sources: sources,\n    _sourcesContent: sourcesContent,\n    _names: names,\n    // _originalScopes: originalScopes,\n  } = cast(map);\n  const line = getIndex(mappings, genLine);\n  const index = getColumnIndex(line, genColumn);\n\n  if (!source) {\n    if (skipable \u0026\u0026 skipSourceless(line, index)) return;\n    return insert(line, index, [genColumn]);\n  }\n\n  // Sigh, TypeScript can't figure out sourceLine and sourceColumn aren't nullish if source\n  // isn't nullish.\n  assert\u003cnumber\u003e(sourceLine);\n  assert\u003cnumber\u003e(sourceColumn);\n\n  const sourcesIndex = put(sources, source);\n  const namesIndex = name ? put(names, name) : NO_NAME;\n  if (sourcesIndex === sourcesContent.length) sourcesContent[sourcesIndex] = content ?? null;\n  // if (sourcesIndex === originalScopes.length) originalScopes[sourcesIndex] = [];\n\n  if (skipable \u0026\u0026 skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex)) {\n    return;\n  }\n\n  return insert(\n    line,\n    index,\n    name\n      ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]\n      : [genColumn, sourcesIndex, sourceLine, sourceColumn],\n  );\n}\n\nfunction assert\u003cT\u003e(_val: unknown): asserts _val is T {\n  // noop.\n}\n\nfunction getIndex\u003cT\u003e(arr: T[][], index: number): T[] {\n  for (let i = arr.length; i \u003c= index; i++) {\n    arr[i] = [];\n  }\n  return arr[index];\n}\n\nfunction getColumnIndex(line: SourceMapSegment[], genColumn: number): number {\n  let index = line.length;\n  for (let i = index - 1; i \u003e= 0; index = i--) {\n    const current = line[i];\n    if (genColumn \u003e= current[COLUMN]) break;\n  }\n  return index;\n}\n\nfunction insert\u003cT\u003e(array: T[], index: number, value: T) {\n  for (let i = array.length; i \u003e index; i--) {\n    array[i] = array[i - 1];\n  }\n  array[index] = value;\n}\n\nfunction removeEmptyFinalLines(mappings: SourceMapSegment[][]) {\n  const { length } = mappings;\n  let len = length;\n  for (let i = len - 1; i \u003e= 0; len = i, i--) {\n    if (mappings[i].length \u003e 0) break;\n  }\n  if (len \u003c length) mappings.length = len;\n}\n\nfunction putAll\u003cT extends string | number\u003e(setarr: SetArray\u003cT\u003e, array: T[]) {\n  for (let i = 0; i \u003c array.length; i++) put(setarr, array[i]);\n}\n\nfunction skipSourceless(line: SourceMapSegment[], index: number): boolean {\n  // The start of a line is already sourceless, so adding a sourceless segment to the beginning\n  // doesn't generate any useful information.\n  if (index === 0) return true;\n\n  const prev = line[index - 1];\n  // If the previous segment is also sourceless, then adding another sourceless segment doesn't\n  // genrate any new information. Else, this segment will end the source/named segment and point to\n  // a sourceless position, which is useful.\n  return prev.length === 1;\n}\n\nfunction skipSource(\n  line: SourceMapSegment[],\n  index: number,\n  sourcesIndex: number,\n  sourceLine: number,\n  sourceColumn: number,\n  namesIndex: number,\n): boolean {\n  // A source/named segment at the start of a line gives position at that genColumn\n  if (index === 0) return false;\n\n  const prev = line[index - 1];\n\n  // If the previous segment is sourceless, then we're transitioning to a source.\n  if (prev.length === 1) return false;\n\n  // If the previous segment maps to the exact same source position, then this segment doesn't\n  // provide any new position information.\n  return (\n    sourcesIndex === prev[SOURCES_INDEX] \u0026\u0026\n    sourceLine === prev[SOURCE_LINE] \u0026\u0026\n    sourceColumn === prev[SOURCE_COLUMN] \u0026\u0026\n    namesIndex === (prev.length === 5 ? prev[NAMES_INDEX] : NO_NAME)\n  );\n}\n\nfunction addMappingInternal\u003cS extends string | null | undefined\u003e(\n  skipable: boolean,\n  map: GenMapping,\n  mapping: {\n    generated: Pos;\n    source: S;\n    original: S extends string ? Pos : null | undefined;\n    name: S extends string ? string | null | undefined : null | undefined;\n    content: S extends string ? string | null | undefined : null | undefined;\n  },\n) {\n  const { generated, source, original, name, content } = mapping;\n  if (!source) {\n    return addSegmentInternal(\n      skipable,\n      map,\n      generated.line - 1,\n      generated.column,\n      null,\n      null,\n      null,\n      null,\n      null,\n    );\n  }\n  assert\u003cPos\u003e(original);\n  return addSegmentInternal(\n    skipable,\n    map,\n    generated.line - 1,\n    generated.column,\n    source as string,\n    original.line - 1,\n    original.column,\n    name,\n    content,\n  );\n}\n\n/*\nexport function addOriginalScope(\n  map: GenMapping,\n  data: {\n    start: Pos;\n    end: Pos;\n    source: string;\n    kind: string;\n    name?: string;\n    variables?: string[];\n  },\n): OriginalScopeInfo {\n  const { start, end, source, kind, name, variables } = data;\n  const {\n    _sources: sources,\n    _sourcesContent: sourcesContent,\n    _originalScopes: originalScopes,\n    _names: names,\n  } = cast(map);\n  const index = put(sources, source);\n  if (index === sourcesContent.length) sourcesContent[index] = null;\n  if (index === originalScopes.length) originalScopes[index] = [];\n\n  const kindIndex = put(names, kind);\n  const scope: OriginalScope = name\n    ? [start.line - 1, start.column, end.line - 1, end.column, kindIndex, put(names, name)]\n    : [start.line - 1, start.column, end.line - 1, end.column, kindIndex];\n  if (variables) {\n    scope.vars = variables.map((v) =\u003e put(names, v));\n  }\n  const len = originalScopes[index].push(scope);\n  return [index, len - 1, variables];\n}\n*/\n\n// Generated Ranges\n/*\nexport function addGeneratedRange(\n  map: GenMapping,\n  data: {\n    start: Pos;\n    isScope: boolean;\n    originalScope?: OriginalScopeInfo;\n    callsite?: OriginalPos;\n  },\n): GeneratedRangeInfo {\n  const { start, isScope, originalScope, callsite } = data;\n  const {\n    _originalScopes: originalScopes,\n    _sources: sources,\n    _sourcesContent: sourcesContent,\n    _generatedRanges: generatedRanges,\n  } = cast(map);\n\n  const range: GeneratedRange = [\n    start.line - 1,\n    start.column,\n    0,\n    0,\n    originalScope ? originalScope[0] : -1,\n    originalScope ? originalScope[1] : -1,\n  ];\n  if (originalScope?.[2]) {\n    range.bindings = originalScope[2].map(() =\u003e [[-1]]);\n  }\n  if (callsite) {\n    const index = put(sources, callsite.source);\n    if (index === sourcesContent.length) sourcesContent[index] = null;\n    if (index === originalScopes.length) originalScopes[index] = [];\n    range.callsite = [index, callsite.line - 1, callsite.column];\n  }\n  if (isScope) range.isScope = true;\n  generatedRanges.push(range);\n\n  return [range, originalScope?.[2]];\n}\n\nexport function setEndPosition(range: GeneratedRangeInfo, pos: Pos) {\n  range[0][2] = pos.line - 1;\n  range[0][3] = pos.column;\n}\n\nexport function addBinding(\n  map: GenMapping,\n  range: GeneratedRangeInfo,\n  variable: string,\n  expression: string | BindingExpressionRange,\n) {\n  const { _names: names } = cast(map);\n  const bindings = (range[0].bindings ||= []);\n  const vars = range[1];\n\n  const index = vars!.indexOf(variable);\n  const binding = getIndex(bindings, index);\n\n  if (typeof expression === 'string') binding[0] = [put(names, expression)];\n  else {\n    const { start } = expression;\n    binding.push([put(names, expression.expression), start.line - 1, start.column]);\n  }\n}\n*/\n","type GeneratedColumn = number;\ntype SourcesIndex = number;\ntype SourceLine = number;\ntype SourceColumn = number;\ntype NamesIndex = number;\n\nexport type SourceMapSegment =\n  | [GeneratedColumn]\n  | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn]\n  | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn, NamesIndex];\n\nexport const COLUMN = 0;\nexport const SOURCES_INDEX = 1;\nexport const SOURCE_LINE = 2;\nexport const SOURCE_COLUMN = 3;\nexport const NAMES_INDEX = 4;\n"],"version":3}
