{"version":3,"file":"index.mjs","sources":["../src/any.ts","../src/assert.ts","../src/array.ts","../src/cache.ts","../src/path.ts","../src/string.ts","../src/component.ts","../src/debug.ts","../src/fileName.ts","../src/html.ts","../src/memoize.ts","../src/number.ts","../src/object.ts","../src/reactivity/cleanup.ts","../src/reactivity/effect.ts","../src/reactivity/emitter.ts","../src/reactivity/model.ts","../src/reactivity/computed.ts","../src/rpc/channel.ts","../src/rpc/message.ts","../src/rpc/types.ts","../src/rpc/value.ts","../src/rpc/handlers.ts","../src/rpc/create.ts","../src/rpc/expose.ts","../src/rpc/set.ts","../src/set.ts","../src/source.ts","../src/telemetry.ts","../src/performance.ts"],"sourcesContent":["/**\n * Loose non-null (non-undefined) filter.\n * This method can be used as predicate for Array methods.\n */\nexport function isNotNull<T>(value: T | null | undefined): value is T {\n  return value != null\n}\n","export function invariant(value: unknown, message?: string): asserts value {\n  if (value == null || value === false) {\n    throw new Error(message)\n  }\n}\n","import { invariant } from './assert'\n\nexport function isArray<T>(value: any): value is T[] {\n  return Array.isArray(value)\n}\n\nexport function first<T>(items: T[] | readonly T[]): T {\n  if (items.length === 0) throw new Error('IndexOutOfBounds')\n\n  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n  return items[0]!\n}\n\nexport function last<T>(items: T[] | readonly T[], nth: number = 1): T {\n  const index = items.length - nth\n  if (index < 0 || index >= items.length) throw new Error('IndexOutOfBounds')\n  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n  return items[index]!\n}\n\nexport function findPrevSibling<T>(\n  items: T[] | readonly T[],\n  item: T,\n): T | undefined {\n  const index = items.indexOf(item)\n  if (index > 0) return items[index - 1]\n  else return undefined\n}\n\nexport function findNextSibling<T>(\n  items: T[] | readonly T[],\n  item: T,\n): T | undefined {\n  const index = items.indexOf(item)\n  if (index >= 0) return items[index + 1]\n  else return undefined\n}\n\nexport function concat<T>(\n  a: T[] | Readonly<T[]> | undefined,\n  b: T[] | Readonly<T[]> | undefined,\n): T[] {\n  const c: T[] = []\n\n  if (isArray(a)) c.push(...a)\n  if (isArray(b)) c.push(...b)\n\n  return c\n}\n\ntype FlatArray<Arr, Depth extends number> = {\n  done: Arr\n  recur: Arr extends ReadonlyArray<infer InnerArr>\n    ? FlatArray<\n        InnerArr,\n        [\n          -1,\n          0,\n          1,\n          2,\n          3,\n          4,\n          5,\n          6,\n          7,\n          8,\n          9,\n          10,\n          11,\n          12,\n          13,\n          14,\n          15,\n          16,\n          17,\n          18,\n          19,\n          20,\n        ][Depth]\n      >\n    : Arr\n}[Depth extends -1 ? 'done' : 'recur']\n\nexport function flatten<T extends unknown, D extends number = 1>(\n  array: T,\n  depth: D = 1 as D,\n): Array<FlatArray<T, D>> {\n  const items: Array<FlatArray<T, D>> = []\n\n  if (Array.isArray(array)) {\n    array.forEach((item) => {\n      if (Array.isArray(item)) {\n        if (depth > 1) items.push(...flatten(item, depth - 1))\n        else items.push(...item)\n      } else {\n        items.push(item)\n      }\n    })\n  }\n\n  return items\n}\n\ntype Chunk<T, Size extends number> = {\n  done: []\n  recurr: [\n    T,\n    ...Chunk<\n      T,\n      [\n        -1,\n        0,\n        1,\n        2,\n        3,\n        4,\n        5,\n        6,\n        7,\n        8,\n        9,\n        10,\n        11,\n        12,\n        13,\n        14,\n        15,\n        16,\n        17,\n        18,\n        19,\n        20,\n      ][Size]\n    >,\n  ]\n}[Size extends 0 ? 'done' : 'recurr']\n\nexport function chunk<T, D extends number>(\n  items: T[],\n  chunkSize: D,\n): Array<Chunk<T, D>> {\n  const chunks: Array<Chunk<T, D>> = []\n  for (let i = 0; i < items.length; i += chunkSize) {\n    chunks.push(items.slice(i, i + chunkSize) as Chunk<T, D>)\n  }\n\n  return chunks\n}\n\nexport const BinarySearchBias = {\n  GREATEST_LOWER_BOUND: 1,\n  LEAST_UPPER_BOUND: 2,\n}\n\ntype BinarySearchBiasType =\n  typeof BinarySearchBias[keyof typeof BinarySearchBias]\nfunction recursiveSearch<T>(\n  low: number,\n  high: number,\n  needle: T,\n  haystack: T[],\n  compare: (a: T, b: T) => number,\n  bias: BinarySearchBiasType,\n): number {\n  if (haystack.length === 0) return -1\n  const mid = Math.floor((low + high) / 2)\n  const value = haystack[mid] as T\n  const comparison = ((): number => {\n    try {\n      return compare(needle, value)\n    } catch (e) {\n      throw new Error(\n        `ComparisonError: ${\n          (e as Error).message\n        }. low: ${low}, high: ${high}, mid: ${mid}`,\n      )\n    }\n  })()\n\n  if (comparison === 0) return mid\n  else if (comparison > 0) {\n    if (high - mid > 1) {\n      return recursiveSearch(mid, high, needle, haystack, compare, bias)\n    }\n\n    if (bias === BinarySearchBias.LEAST_UPPER_BOUND) {\n      return high < haystack.length ? high : -1\n    } else {\n      return mid\n    }\n  } else {\n    if (mid - low > 1) {\n      return recursiveSearch(low, mid, needle, haystack, compare, bias)\n    }\n\n    if (bias === BinarySearchBias.GREATEST_LOWER_BOUND) {\n      return low < 0 ? -1 : low\n    } else {\n      return mid\n    }\n  }\n}\n\nexport function binarySearch<T>(\n  needle: T,\n  haystack: T[],\n  compare: (a: T, b: T) => number,\n  bias: BinarySearchBiasType = BinarySearchBias.GREATEST_LOWER_BOUND,\n): number {\n  let index = recursiveSearch(\n    -1,\n    haystack.length,\n    needle,\n    haystack,\n    compare,\n    bias,\n  )\n\n  if (index < 0) return -1\n\n  while (\n    index > 0 &&\n    compare(haystack[index] as T, haystack[index - 1] as T) === 0\n  ) {\n    --index\n  }\n\n  return index\n}\n\nexport function binarySearchKey<T, U>(\n  array: readonly T[],\n  key: U,\n  keySelector: (value: T, index: number) => U,\n  keyComparer: (a: U, b: U) => number,\n  offset: number = 0,\n): number {\n  if (array.length === 0) return -1\n\n  let low = offset\n  let high = array.length - 1\n  while (low <= high) {\n    const middle = low + ((high - low) >> 1)\n    const middleValue = array[middle]\n    invariant(middleValue != null)\n    const midKey = keySelector(middleValue, middle)\n    const comparison = keyComparer(midKey, key)\n    if (comparison === 0) return middle\n    else if (comparison < 0) low = middle + 1\n    else high = middle - 1\n  }\n\n  return ~low\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nexport interface Cache<K, V> {\n  has(key: K): boolean\n  get(key: K): V | undefined\n  set(key: K, value: V): void\n  delete(key: K): void\n  clear(): void\n\n  resolve(key: K, getter: (key: K) => V): V\n  resolveAsync(key: K, getter: (key: K) => Promise<V>): Promise<V>\n}\n\nabstract class BaseCache<K, V> implements Cache<K, V> {\n  abstract has(key: K): boolean\n  abstract get(key: K): V | undefined\n  abstract set(key: K, value: V): void\n  abstract delete(key: K): void\n  abstract clear(): void\n\n  resolve(key: K, getter: (key: K) => V): V {\n    if (this.has(key)) {\n      if (__DEV__) console.debug('[cache] hit', key)\n      return this.get(key) as V\n    }\n\n    if (__DEV__) console.debug('[cache] miss', key)\n    const value = getter(key)\n\n    this.set(key, value)\n\n    return value\n  }\n\n  private readonly promises = new Map<K, Promise<V>>()\n\n  async resolveAsync(key: K, getter: (key: K) => Promise<V>): Promise<V> {\n    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n    if (this.has(key)) return this.get(key)!\n\n    const promise = this.promises.get(key) ?? getter(key)\n    this.promises.set(key, promise)\n    try {\n      const value = await promise\n      this.set(key, value)\n\n      return value\n    } finally {\n      this.promises.delete(key)\n    }\n  }\n}\n\nclass LRU<K, V> extends BaseCache<K, V> implements Cache<K, V> {\n  private current = new Map<K, V>()\n  private previous = new Map<K, V>()\n\n  constructor(public readonly maxSize: number) {\n    super()\n  }\n\n  has(key: K): boolean {\n    return this.current.has(key) || this.previous.has(key)\n  }\n\n  get(key: K): V | undefined {\n    if (this.current.has(key)) return this.current.get(key)\n    else if (this.previous.has(key)) {\n      // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n      const value = this.previous.get(key)!\n      this.set(key, value)\n\n      return value\n    } else return undefined\n  }\n\n  set(key: K, value: V): void {\n    this.current.set(key, value)\n    if (this.current.size > this.maxSize) {\n      this.previous = this.current\n      this.current = new Map()\n    }\n  }\n\n  delete(key: K): void {\n    this.current.delete(key)\n    this.previous.delete(key)\n  }\n\n  clear(): void {\n    this.current.clear()\n    this.previous.clear()\n  }\n}\n\nclass WeakCache<K extends object, V> extends BaseCache<K, V> {\n  private storage = new WeakMap<K, V>()\n\n  has(key: K): boolean {\n    return this.storage.has(key)\n  }\n\n  get(key: K): V | undefined {\n    return this.storage.get(key)\n  }\n\n  set(key: K, value: V): void {\n    this.storage.set(key, value)\n  }\n\n  delete(key: K): void {\n    this.storage.delete(key)\n  }\n\n  clear(): void {\n    this.storage = new WeakMap()\n  }\n}\n\nclass VersionedCache<K, Ver, V> extends BaseCache<K, V> implements Cache<K, V> {\n  private readonly storage: LRU<K, { version: Ver; value: V }>\n\n  constructor(\n    size: number,\n    private readonly getVersion: (key: K) => Ver,\n    private readonly compareVersion: (a: Ver, b: Ver) => boolean,\n  ) {\n    super()\n    this.storage = new LRU(size)\n  }\n\n  private isValid(key: K, value: { version: Ver; value: V }): boolean {\n    return this.compareVersion(value.version, this.getVersion(key))\n  }\n\n  has(key: K): boolean {\n    return this.storage.has(key) && this.isValid(key, this.storage.get(key)!)\n  }\n\n  get(key: K): V | undefined {\n    if (this.has(key)) return this.storage.get(key)!.value\n    else return undefined\n  }\n\n  set(key: K, value: V): void {\n    this.storage.set(key, { version: this.getVersion(key), value })\n  }\n\n  delete(key: K): void {\n    this.storage.delete(key)\n  }\n\n  clear(): void {\n    this.storage.clear()\n  }\n}\n\nconst DEFAULT_CACHE_SIZE = 100\n\nexport function createCache<K, V>(\n  size: number = DEFAULT_CACHE_SIZE,\n): Cache<K, V> {\n  return new LRU(size)\n}\n\nexport function createWeakMapCache<K extends object, V>(): Cache<K, V> {\n  return new WeakCache()\n}\n\nexport function createMultiKeyCache<K, V, R = unknown>(\n  getSecondaryKey: (key: K) => R,\n  size: number = DEFAULT_CACHE_SIZE,\n  compare: (a: R, b: R) => boolean = (a, b) => a === b,\n): Cache<K, V> {\n  return new VersionedCache(size, (key) => getSecondaryKey(key), compare)\n}\n\nexport function createVersionedCache<\n  K,\n  V,\n  Version extends string | number = string | number,\n>(\n  getVersion: (key: K) => Version,\n  size: number = DEFAULT_CACHE_SIZE,\n): Cache<K, V> {\n  return createMultiKeyCache(getVersion, size)\n}\n\nexport function versionedAsync<T extends unknown[], R = unknown>(\n  getKey: (args: T) => R = (args) =>\n    args[0] as T extends [k: infer K] ? K & R : never,\n  size: number = DEFAULT_CACHE_SIZE,\n  versionFn: unknown & string = 'getVersion',\n): MethodDecorator {\n  return versioned(getKey, size, versionFn, true)\n}\n\nconst store = new Map<\n  any,\n  Map<string | symbol | number, WeakMap<any, Cache<any, any>>>\n>()\n\nfunction addToStore(\n  target: any,\n  property: string | symbol | number,\n  cache: WeakMap<any, any>,\n): void {\n  const current = store.get(target) ?? new Map()\n\n  current.set(property, cache)\n\n  if (!store.has(target)) store.set(target, current)\n}\n\nfunction getOrCreate<K, V>(\n  map: Map<K, V> | WeakMap<K & object, V>,\n  create: (key: K) => V,\n): (key: K) => V {\n  return (key: any) => {\n    const value = map.get(key) ?? create(key)\n\n    if (!map.has(key)) map.set(key, value)\n\n    return value\n  }\n}\n\n/** Cache results using as secondary version key. */\nexport function versioned<T extends unknown[], R = unknown>(\n  getKey: (args: T) => R = (args) =>\n    args[0] as T extends [k: infer K] ? K & R : never,\n  size: number = DEFAULT_CACHE_SIZE,\n  versionFn: unknown & string = 'getVersion',\n  isAsync: boolean = false,\n): MethodDecorator {\n  const method = isAsync ? 'resolveAsync' : 'resolve'\n  return (target, propertyKey, descriptor) => {\n    const fn = descriptor?.value as unknown as (...args: T) => any\n    if (typeof fn === 'function') {\n      const caches = new WeakMap<typeof target, Cache<R, any>>()\n      const using = getOrCreate(caches, (instance) => {\n        const getVersion = instance[versionFn as keyof typeof target] as (\n          key: R,\n        ) => string | number\n        if (typeof getVersion !== 'function')\n          throw new Error(`${JSON.stringify(versionFn)} is not a function`)\n\n        return createVersionedCache(\n          (key) => getVersion.call(instance, key),\n          size,\n        )\n      })\n      addToStore(target, propertyKey, caches)\n\n      descriptor.value = function (this: any, ...args: T): any {\n        return using(this)[method](getKey(args), () => fn.apply(this, args))\n      } as any\n    } else {\n      throw new Error(`${JSON.stringify(propertyKey)} is not a function`)\n    }\n    return descriptor\n  }\n}\n\nexport function cache<T extends unknown[], I = unknown, R = unknown>(\n  getKey: (args: T, instance: I) => R = (args) => args[0] as R,\n  isAsync: boolean = false,\n  isWeak: boolean = false,\n): MethodDecorator {\n  const method = isAsync ? 'resolveAsync' : 'resolve'\n  return (target, propertyKey, descriptor) => {\n    const fn = descriptor?.value as unknown as (...args: T) => any\n    if (typeof fn === 'function') {\n      const caches = new WeakMap<typeof target, Cache<R, any>>()\n      addToStore(target, propertyKey, caches)\n\n      const using = getOrCreate(caches, () => {\n        return isWeak ? createWeakMapCache() : createCache(DEFAULT_CACHE_SIZE)\n      })\n\n      descriptor.value = function (this: any, ...args: T): any {\n        return using(this)[method](getKey(args, this) as any, () =>\n          fn.apply(this, args),\n        )\n      } as any\n    } else {\n      throw new Error(`${JSON.stringify(propertyKey)} is not a function`)\n    }\n    return descriptor\n  }\n}\n\nexport function cacheAsync<T extends unknown[], R = unknown>(\n  getKey: (args: T) => R = (args) => args[0] as R,\n): MethodDecorator {\n  return cache(getKey, true)\n}\n\nexport function cacheAll<T extends unknown[], R = unknown>(\n  getKey: (args: T) => R = (args) => args[0] as R,\n): MethodDecorator {\n  return cache(getKey, false, true)\n}\n\nexport function cacheAllAsync<T extends unknown[], R = unknown>(\n  getKey: (args: T) => R = (args) => args[0] as R,\n): MethodDecorator {\n  return cache(getKey, true, true)\n}\n\nexport function clearMethodCache(\n  instance: object,\n  propertyKey: string | symbol | number,\n): void {\n  const target = Object.getPrototypeOf(instance)\n\n  store.get(target)?.get(propertyKey)?.get(instance)?.clear()\n}\n","import * as Path from 'path'\nimport * as OS from 'os'\n\nexport function toPosixPath(path: string): string {\n  return path.includes('\\\\') ? path.replace(/\\\\/g, '/') : path\n}\n\nexport function toWindowsPath(path: string): string {\n  return path.includes('/') ? path.replace(/\\//g, '\\\\') : path\n}\n\nexport const toPlatformPath =\n  /* istanbul ignore next */\n  OS.platform() === 'win32' ? toWindowsPath : toPosixPath\n\nexport function getRelativeFileName(\n  importingFileName: string,\n  importedFileName: string,\n): string {\n  importingFileName = toPosixPath(importingFileName)\n  importedFileName = toPosixPath(importedFileName)\n\n  if (\n    Path.posix.isAbsolute(importingFileName) &&\n    Path.posix.isAbsolute(importedFileName)\n  ) {\n    const fileName = Path.posix.relative(\n      Path.posix.dirname(importingFileName),\n      importedFileName,\n    )\n\n    return fileName.startsWith('.') ? fileName : `./${fileName}`\n  }\n\n  return importedFileName\n}\n","import { first } from './array'\n\nexport function isString(value: any): value is string {\n  return typeof value === 'string'\n}\n\nconst cacheStringFunction = <T extends (str: string) => string>(fn: T): T => {\n  const cache: Record<string, string> = Object.create(null)\n  return ((str: string) => {\n    const hit = cache[str]\n    return hit ?? (cache[str] = fn(str))\n  }) as any\n}\n\nconst camelizeRE = /[^A-Za-z0-9]+([A-Za-z0-9])?/g\nexport const camelize = cacheStringFunction((str: string): string => {\n  return uncapitalize(\n    str.replace(camelizeRE, (_, c) =>\n      typeof c === 'string' ? c.toUpperCase() : '',\n    ),\n  )\n})\n\nexport const camelCase = camelize\n\nconst hyphenateRE = /\\B([A-Z])/g\nexport const hyphenate = cacheStringFunction((str: string): string => {\n  return camelize(str).replace(hyphenateRE, '-$1').toLowerCase()\n})\n\nexport const capitalize = cacheStringFunction((str: string): string => {\n  return str.charAt(0).toUpperCase() + str.slice(1)\n})\n\nexport const uncapitalize = cacheStringFunction((str: string): string => {\n  return str.charAt(0).toLowerCase() + str.slice(1)\n})\n\nexport const pascalCase = cacheStringFunction((str: string) =>\n  capitalize(camelize(str)),\n)\nexport const kebabCase = hyphenate\n\nexport function isKebabCase(str: string): boolean {\n  return str.includes('-') || /^[a-z0-9]+$/.test(str)\n}\n\nexport function isPascalCase(str: string): boolean {\n  return /^[A-Z][A-Za-z0-9]*$/.test(str)\n}\n\nexport function isCamelCase(str: string): boolean {\n  return /^[a-z][A-Za-z0-9]*$/.test(str)\n}\n\nexport function generateUUID(): string {\n  return new Array(4)\n    .fill(0)\n    .map(() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16))\n    .join('-')\n}\n\nexport function ucfirst(str: string): string {\n  return str.slice(0, 1).toUpperCase() + str.slice(1)\n}\n\nexport function lcfirst(str: string): string {\n  return str.slice(0, 1).toLowerCase() + str.slice(1)\n}\n\nexport function trimIndent(content: string): string {\n  const lines = content\n    .trimStart()\n    .replace(/\\n\\s*$/, '')\n    .split('\\n')\n\n  const indent = lines.slice(1).reduce((min, line) => {\n    const match = line.match(/^\\s+/)\n    const len = match?.[0] != null ? match[0].length : 0\n    return Math.min(min, len)\n  }, Infinity)\n  if (lines.length <= 1) return first(lines) + '\\n'\n  return (\n    first(lines) +\n    '\\n' +\n    lines\n      .slice(1)\n      .map((line) => line.slice(indent))\n      .join('\\n') +\n    '\\n'\n  )\n}\n","import * as Path from 'path'\nimport { toPosixPath } from './path'\nimport { isKebabCase, kebabCase, pascalCase } from './string'\n\nexport function getComponentName(fileName: string): string {\n  const name = pascalCase(\n    Path.posix\n      .basename(toPosixPath(fileName))\n      .replace(/\\.(vue|ts|tsx|js|jsx)$/, ''),\n  )\n\n  return prefixIfStartsWithNumber(name)\n}\n\nfunction prefixIfStartsWithNumber(name: string): string {\n  if (/^[0-9]/.test(name)) {\n    return `_${name}`\n  } else return name\n}\n\nexport function getComponentNameAliases(\n  fileNameOrComponentName: string,\n): string[] {\n  const name = Path.posix\n    .basename(toPosixPath(fileNameOrComponentName))\n    .replace(/\\.(vue|ts|tsx|js|jsx)$/, '')\n  return isKebabCase(name)\n    ? [prefixIfStartsWithNumber(kebabCase(name))]\n    : [\n        prefixIfStartsWithNumber(kebabCase(name)),\n        prefixIfStartsWithNumber(pascalCase(name)),\n      ]\n}\n","import { inspect } from 'util'\n\nlet isDebugging = true\n\nexport function setDebugging(debugging: boolean): void {\n  isDebugging = debugging\n}\n\nexport function debug(\n  printOnlyReturnStatement: boolean = true,\n  transformArgs: (...args: any[]) => any[] = (...args) => args,\n  transformReturn: (ret: any) => any = (ret) => ret,\n): MethodDecorator {\n  return (target, key, descriptor) => {\n    const fn = descriptor?.value as unknown as (...args: any[]) => any\n    descriptor.value = function (this: any, ...args: any[]): any {\n      if (isDebugging && !printOnlyReturnStatement) {\n        this.logger.debug(\n          `(call) ${target.constructor.name}.${String(key)}`,\n          inspect(transformArgs(...args), false, 100, false),\n        )\n      }\n      const result = fn.apply(this, args)\n\n      if (isDebugging) {\n        this.logger.debug(\n          `(return) ${target.constructor.name}.${String(key)}`,\n          inspect(transformArgs(...args), false, 100, false),\n          inspect(transformReturn(result), false, 100, false),\n        )\n      }\n\n      return result\n    } as any\n\n    return descriptor\n  }\n}\n","import { invariant } from './assert'\n\ninterface ParsedFileName {\n  type: string\n  fileName: string\n}\n\nexport interface FilesystemSchemeFileName extends ParsedFileName {\n  type: 'scheme'\n  scheme: string\n  fileName: string\n}\n\nexport interface VueTsxFileName extends ParsedFileName {\n  type: 'vue-tsx'\n  fileName: string\n}\nexport interface VueJsxFileName extends ParsedFileName {\n  type: 'vue-jsx'\n  fileName: string\n}\n\nexport interface VueSFCDescriptorFileName extends ParsedFileName {\n  type: 'vue-descriptor'\n  fileName: string\n}\n\nexport interface VueTemplateASTFileName extends ParsedFileName {\n  type: 'vue-template-ast'\n  fileName: string\n}\n\nexport interface FileName extends ParsedFileName {\n  type: 'other'\n  fileName: string\n}\n\ntype FileNames =\n  | FilesystemSchemeFileName\n  | VueTsxFileName\n  | VueJsxFileName\n  | VueSFCDescriptorFileName\n  | VueTemplateASTFileName\n  | FileName\n\nconst suffixes = {\n  vueTsx: '.tsx',\n  vueJsx: '.jsx',\n  vueSFCDescriptor: '+descriptor.jsonc',\n  vueTemplateAST: '+template.jsonc',\n  vueRuntime: '.vuedx_runtime.d.ts',\n  vueProjectRuntime: 'project.vuedx_project_runtime.d.ts',\n}\n\nexport function parseFileName(fileName: string): FileNames {\n  if (isFilesystemSchemeFile(fileName)) {\n    const RE = /^\\^\\/(?<scheme>[^/]+)(\\/ts-nul-authority)?(?<fileName>.*)$/\n    const result = RE.exec(fileName)\n\n    invariant(result?.groups != null)\n    invariant(result.groups['fileName'] != null)\n    invariant(result.groups['scheme'] != null)\n\n    return {\n      type: 'scheme',\n      fileName: result.groups['fileName'],\n      scheme: result.groups['scheme'],\n    }\n  } else if (isVueTsxFile(fileName)) {\n    return {\n      type: 'vue-tsx',\n      fileName: fileName.substring(0, fileName.length - suffixes.vueTsx.length),\n    }\n  } else if (isVueJsxFile(fileName)) {\n    return {\n      type: 'vue-jsx',\n      fileName: fileName.substring(0, fileName.length - suffixes.vueJsx.length),\n    }\n  } else if (isVueSFCDescriptorFile(fileName)) {\n    return {\n      type: 'vue-descriptor',\n      fileName: fileName.substring(\n        0,\n        fileName.length - suffixes.vueSFCDescriptor.length,\n      ),\n    }\n  } else if (isVueTemplateASTFile(fileName)) {\n    return {\n      type: 'vue-template-ast',\n      fileName: fileName.substring(\n        0,\n        fileName.length - suffixes.vueTemplateAST.length,\n      ),\n    }\n  } else {\n    return {\n      type: 'other',\n      fileName,\n    }\n  }\n}\n\nexport function toFileName(f: FileNames): string {\n  switch (f.type) {\n    case 'scheme':\n      return `^/${f.scheme}${f.fileName}`\n    case 'vue-tsx':\n      return `${f.fileName}${suffixes.vueTsx}`\n    case 'vue-jsx':\n      return `${f.fileName}${suffixes.vueJsx}`\n    case 'vue-descriptor':\n      return `${f.fileName}${suffixes.vueSFCDescriptor}`\n    case 'vue-template-ast':\n      return `${f.fileName}${suffixes.vueTemplateAST}`\n    default:\n      return f.fileName\n  }\n}\n\nexport function isFilesystemSchemeFile(fileName: string): boolean {\n  return fileName.startsWith('^/')\n}\n\nexport function isVueFile(fileName: string): boolean {\n  return fileName.endsWith('.vue')\n}\n\nexport function isVueTsxFile(fileName: string): boolean {\n  return fileName.endsWith('.vue' + suffixes.vueTsx)\n}\nexport function isVueJsxFile(fileName: string): boolean {\n  return fileName.endsWith('.vue' + suffixes.vueJsx)\n}\n\nexport function isVueSFCDescriptorFile(fileName: string): boolean {\n  return fileName.endsWith('.vue' + suffixes.vueSFCDescriptor)\n}\n\nexport function isVueTemplateASTFile(fileName: string): boolean {\n  return fileName.endsWith('.vue' + suffixes.vueTemplateAST)\n}\n\nexport function isVueVirtualFile(fileName: string): boolean {\n  return fileName.includes('.vue+vue')\n}\n\nexport function isVueRuntimeFile(fileName: string): boolean {\n  return fileName.endsWith(suffixes.vueRuntime)\n}\n\nexport function isProjectRuntimeFile(fileName: string): boolean {\n  return fileName.endsWith(suffixes.vueProjectRuntime)\n}\n\nconst VUE_VIRTAL_FILE_RE = /\\.vue(\\+vue|\\.ts|\\.js)/\nexport function mayContainVirtualFileName(text: string): boolean {\n  return VUE_VIRTAL_FILE_RE.test(text)\n}\n","const RAW_TEXT_TAGS = new Set(['style', 'iframe', 'script', 'noscript'])\nexport const isRawTextContainer = (tagName: string): boolean =>\n  RAW_TEXT_TAGS.has(tagName)\n\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element\nconst HTML_TAGS = new Set(\n  (\n    'html,body,base,head,link,meta,style,title,address,article,aside,footer,' +\n    'header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,' +\n    'figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,' +\n    'data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,' +\n    'time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,' +\n    'canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,' +\n    'th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,' +\n    'option,output,progress,select,textarea,details,dialog,menu,' +\n    'summary,template,blockquote,iframe,tfoot'\n  ).split(','),\n)\nexport const isHTMLTag = (tagName: string): boolean => HTML_TAGS.has(tagName)\n\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element\nconst SVG_TAGS = new Set(\n  (\n    'svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,' +\n    'defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,' +\n    'feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,' +\n    'feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,' +\n    'feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,' +\n    'fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,' +\n    'foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,' +\n    'mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,' +\n    'polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,' +\n    'text,textPath,title,tspan,unknown,use,view'\n  ).split(','),\n)\n\nexport const isSVGTag = (tagName: string): boolean => SVG_TAGS.has(tagName)\n\nconst VOID_TAGS = new Set(\n  'area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr'.split(\n    ',',\n  ),\n)\nexport const isVoidTag = (tagName: string): boolean => VOID_TAGS.has(tagName)\n\nexport const HTML_TAG_NAME_TO_CLASS_NAME = {\n  a: 'HTMLAnchorElement',\n  area: 'HTMLAreaElement',\n  audio: 'HTMLAudioElement',\n  base: 'HTMLBaseElement',\n  blockquote: 'HTMLQuoteElement',\n  body: 'HTMLBodyElement',\n  br: 'HTMLBRElement',\n  button: 'HTMLButtonElement',\n  canvas: 'HTMLCanvasElement',\n  caption: 'HTMLTableCaptionElement',\n  data: 'HTMLDataElement',\n  datalist: 'HTMLDataListElement',\n  details: 'HTMLDetailsElement',\n  dialog: 'HTMLDialogElement',\n  div: 'HTMLDivElement',\n  dl: 'HTMLDListElement',\n  embed: 'HTMLEmbedElement',\n  fieldset: 'HTMLFieldSetElement',\n  form: 'HTMLFormElement',\n  h1: 'HTMLHeadingElement',\n  head: 'HTMLHeadElement',\n  hr: 'HTMLHRElement',\n  html: 'HTMLHtmlElement',\n  iframe: 'HTMLIFrameElement',\n  img: 'HTMLImageElement',\n  input: 'HTMLInputElement',\n  label: 'HTMLLabelElement',\n  legend: 'HTMLLegendElement',\n  li: 'HTMLLIElement',\n  link: 'HTMLLinkElement',\n  main: 'HTMLMainElement',\n  map: 'HTMLMapElement',\n  menu: 'HTMLMenuElement',\n  meta: 'HTMLMetaElement',\n  meter: 'HTMLMeterElement',\n  nav: 'HTMLNavElement',\n  object: 'HTMLObjectElement',\n  ol: 'HTMLOListElement',\n  optgroup: 'HTMLOptGroupElement',\n  option: 'HTMLOptionElement',\n  output: 'HTMLOutputElement',\n  p: 'HTMLParagraphElement',\n  param: 'HTMLParamElement',\n  picture: 'HTMLPictureElement',\n  pre: 'HTMLPreElement',\n  progress: 'HTMLProgressElement',\n  q: 'HTMLQuoteElement',\n  script: 'HTMLScriptElement',\n  select: 'HTMLSelectElement',\n  slot: 'HTMLSlotElement',\n  source: 'HTMLSourceElement',\n  span: 'HTMLSpanElement',\n  style: 'HTMLStyleElement',\n  table: 'HTMLTableElement',\n  tbody: 'HTMLTableSectionElement',\n  td: 'HTMLTableCellElement',\n  template: 'HTMLTemplateElement',\n  textarea: 'HTMLTextAreaElement',\n  tfoot: 'HTMLTableSectionElement',\n  th: 'HTMLTableCellElement',\n  thead: 'HTMLTableSectionElement',\n  title: 'HTMLTitleElement',\n  tr: 'HTMLTableRowElement',\n  track: 'HTMLTrackElement',\n  ul: 'HTMLUListElement',\n  video: 'HTMLVideoElement',\n}\n\nexport const SVG_TAG_NAME_TO_CLASS_NAME = {\n  a: 'SVGAElement',\n  altGlyph: 'SVGAltGlyphElement',\n  altGlyphDef: 'SVGAltGlyphDefElement',\n  altGlyphItem: 'SVGAltGlyphItemElement',\n  animate: 'SVGAnimateElement',\n  animateMotion: 'SVGAnimateMotionElement',\n  animateTransform: 'SVGAnimateTransformElement',\n  circle: 'SVGCircleElement',\n  clipPath: 'SVGClipPathElement',\n  defs: 'SVGDefsElement',\n  desc: 'SVGDescElement',\n  ellipse: 'SVGEllipseElement',\n  feBlend: 'SVGFEBlendElement',\n  feColorMatrix: 'SVGFEColorMatrixElement',\n  feComponentTransfer: 'SVGFEComponentTransferElement',\n  feComposite: 'SVGFECompositeElement',\n  feConvolveMatrix: 'SVGFEConvolveMatrixElement',\n  feDiffuseLighting: 'SVGFEDiffuseLightingElement',\n  feDisplacementMap: 'SVGFEDisplacementMapElement',\n  feDistantLight: 'SVGFEDistantLightElement',\n  feDropShadow: 'SVGFEDropShadowElement',\n  feFlood: 'SVGFEFloodElement',\n  feFuncA: 'SVGFEFuncAElement',\n  feFuncB: 'SVGFEFuncBElement',\n  feFuncG: 'SVGFEFuncGElement',\n  feFuncR: 'SVGFEFuncRElement',\n  feGaussianBlur: 'SVGFEGaussianBlurElement',\n  feImage: 'SVGFEImageElement',\n  feMerge: 'SVGFEMergeElement',\n  feMergeNode: 'SVGFEMergeNodeElement',\n  feMorphology: 'SVGFEMorphologyElement',\n  feOffset: 'SVGFEOffsetElement',\n  fePointLight: 'SVGFEPointLightElement',\n  feSpecularLighting: 'SVGFESpecularLightingElement',\n  feSpotLight: 'SVGFESpotLightElement',\n  feTile: 'SVGFETileElement',\n  feTurbulence: 'SVGFETurbulenceElement',\n  filter: 'SVGFilterElement',\n  foreignObject: 'SVGForeignObjectElement',\n  g: 'SVGGElement',\n  hatch: 'SVGHatchElement',\n  hatchpath: 'SVGHatchpathElement',\n  image: 'SVGImageElement',\n  line: 'SVGLineElement',\n  linearGradient: 'SVGLinearGradientElement',\n  marker: 'SVGMarkerElement',\n  mask: 'SVGMaskElement',\n  mesh: 'SVGMeshElement',\n  meshgradient: 'SVGMeshGradientElement',\n  meshpatch: 'SVGMeshPatchElement',\n  meshrow: 'SVGMeshRowElement',\n  metadata: 'SVGMetadataElement',\n  mpath: 'SVGMPathElement',\n  path: 'SVGPathElement',\n  pattern: 'SVGPatternElement',\n  polygon: 'SVGPolygonElement',\n  polyline: 'SVGPolylineElement',\n  radialGradient: 'SVGRadialGradientElement',\n  rect: 'SVGRectElement',\n  script: 'SVGScriptElement',\n  set: 'SVGSetElement',\n  stop: 'SVGStopElement',\n  style: 'SVGStyleElement',\n  svg: 'SVGSVGElement',\n  switch: 'SVGSwitchElement',\n  symbol: 'SVGSymbolElement',\n  text: 'SVGTextElement',\n  textPath: 'SVGTextPathElement',\n  title: 'SVGTitleElement',\n  tspan: 'SVGTSpanElement',\n  unknown: 'SVGUnknownElement',\n  use: 'SVGUseElement',\n  view: 'SVGViewElement',\n}\n\nexport function getClassNameForTagName(tagName: string): string {\n  if (isSVGTag(tagName)) {\n    return (\n      SVG_TAG_NAME_TO_CLASS_NAME[\n        tagName as keyof typeof SVG_TAG_NAME_TO_CLASS_NAME\n      ] ?? 'SVGElement'\n    )\n  }\n\n  if (isHTMLTag(tagName)) {\n    return (\n      HTML_TAG_NAME_TO_CLASS_NAME[\n        tagName as keyof typeof HTML_TAG_NAME_TO_CLASS_NAME\n      ] ?? 'HTMLElement'\n    )\n  }\n\n  return 'Element'\n}\n","export type Evictable<T extends (...args: any) => any> = T & {\n  evict(...args: Parameters<T>): void\n}\n\nexport function memoize<F extends (...args: any) => unknown>(\n  fn: F,\n  getKey: (args: Parameters<F>) => object,\n): Evictable<F> {\n  const microcache = new WeakMap()\n\n  const fnx = ((...args) => {\n    const key = getKey(args)\n    if (microcache.has(key)) return microcache.get(key)\n    const value = fn(...args)\n\n    microcache.set(key, value)\n\n    return value\n  }) as Evictable<F>\n\n  fnx.evict = (...args) => microcache.delete(getKey(args))\n\n  return fnx\n}\n\nexport function memoizeByFirstArg<F extends (...args: any) => unknown>(\n  fn: F,\n): Evictable<F> {\n  return memoize(fn, (args) => args[0])\n}\n","export function isNumber(value: any): value is number {\n  return typeof value === 'number' && !Number.isNaN(value)\n}\n","export function isObject(obj: unknown): obj is object {\n  return typeof obj === 'object' && obj !== null\n}\n\nexport function isPlainObject(obj: unknown): obj is object {\n  return (\n    isObject(obj) &&\n    (Object.getPrototypeOf(obj) === null ||\n      Object.getPrototypeOf(obj) === Object.prototype)\n  )\n}\n","import type { Disposable } from './disposable'\nimport type { EventEmitter, EventListener, EventSource } from './emitter'\nimport type { Model, ModelEvents } from './model'\n\ninterface FromEvents<T> {\n  end(): DisposableScope\n  on<E extends string & keyof T>(\n    event: E,\n    listener: EventListener<T[E]>,\n  ): FromEvents<T>\n}\n\ninterface EventEmitterLike {\n  on(event: string, callback: (...args: unknown[]) => unknown): unknown\n  off(event: string, callback: unknown): unknown\n}\n\ntype EmitterScope<T> = T extends Model<infer S>\n  ? FromEvents<ModelEvents<S>>\n  : T extends EventEmitter<infer E>\n  ? never extends E\n    ? FromEvents<Required<T>['__type_helper_']>\n    : FromEvents<E>\n  : T extends EventSource<infer E>\n  ? never extends E\n    ? FromEvents<Required<T>['__type_helper_']>\n    : FromEvents<E>\n  : never\n\n/**\n * A disposable scope to simplify resource cleanup, e.g.,\n * remove event listeners on component unmount.\n */\nexport class DisposableScope implements Disposable {\n  private readonly _cleanups: Array<() => void> = []\n\n  /**\n   * Call `dispose()` function on cleanup.\n   */\n  public add(disposable: Disposable | Disposable['dispose']): DisposableScope {\n    const resource =\n      typeof disposable === 'function' ? { dispose: disposable } : disposable\n\n    this._cleanups.push(() => resource.dispose())\n\n    return this\n  }\n\n  /**\n   * Call `fn` and use returned value as cleanup function.\n   */\n  public run(fn: () => Disposable | Disposable['dispose']): DisposableScope {\n    this.add(fn())\n\n    return this\n  }\n\n  /**\n   * Unregister events on cleanup.\n   */\n  public emitter<E extends EventEmitter<any> | EventSource<any>>(\n    eventTarget: E,\n  ): EmitterScope<E> {\n    const context: EmitterScope<E> = {\n      on: (event: string, listener: any) => {\n        this.run(() => {\n          eventTarget.addEventListener(event, listener)\n\n          return () => {\n            eventTarget.removeEventListener(event, listener)\n          }\n        })\n\n        return context\n      },\n      end: () => this,\n    } as any\n\n    return context\n  }\n\n  public wrap<E extends EventEmitterLike>(eventTarget: E): Pick<E, 'on'> {\n    return {\n      on: (event: string, listener: any): any => {\n        this.run(() => {\n          eventTarget.on(event, listener)\n\n          return () => {\n            eventTarget.off(event, listener)\n          }\n        })\n      },\n    }\n  }\n\n  public dispose(): void {\n    this._cleanups.forEach((fn) => fn())\n    this._cleanups.length = 0\n  }\n}\n","import type { Disposable } from './disposable'\nimport type { KeyOf, Model, ReadonlyModel } from './model'\nimport { DisposableScope } from './cleanup'\n\ninterface EffectOptions {\n  /**\n   * Run effect immediately,\n   */\n  immediate: boolean\n}\n\nexport function effect<T extends object>(\n  model: Model<T> | ReadonlyModel<T>,\n  dependencies: Array<KeyOf<T>>,\n  fn: () => void,\n  options: EffectOptions = { immediate: true },\n): Disposable {\n  const scope = new DisposableScope()\n  const emitter = scope.emitter(model)\n  const set = new Set(dependencies)\n\n  emitter.on('@updated', (event) => {\n    if (event.detail.some((property) => set.has(property))) {\n      fn()\n    }\n  })\n\n  if (options.immediate) {\n    fn()\n  }\n\n  return scope\n}\n","import type { Disposable } from './disposable'\n\nexport type EventListener<T> = (event: Event<T>) => void | Promise<void>\n\nexport class Event<T> {\n  public readonly type: string\n  public readonly detail: T\n\n  constructor(name: string, detail: T) {\n    this.type = name\n    this.detail = detail\n  }\n}\n\nexport type EventsOf<T extends EventEmitter<unknown>> = T extends EventEmitter<\n  infer E\n>\n  ? never extends E\n    ? T['__type_helper_'] // cannot infer generic param, use type hack in EventEmitter\n    : E\n  : never\n\nexport interface EventSource<T> {\n  addEventListener<E extends string & keyof T>(\n    event: E,\n    listener: EventListener<T[E]>,\n  ): void\n  removeEventListener<E extends string & keyof T>(\n    event: E,\n    listener: EventListener<T[E]>,\n  ): void\n  __type_helper_?: T\n}\n\nexport interface EventProducer<T> {\n  dispatchEvent<E extends string & keyof T>(event: E, detail: T[E]): void\n}\n\nexport class EventEmitter<T>\n  implements Disposable, EventSource<T>, EventProducer<T> {\n  private _listeners: {\n    [K in string & keyof T]?: Set<EventListener<T[K]>>\n  } = {}\n\n  public __type_helper_?: T\n\n  public addEventListener<E extends string & keyof T>(\n    event: E,\n    listener: EventListener<T[E]>,\n  ): void {\n    const listeners = this._listeners[event]\n    if (listeners != null) {\n      listeners.add(listener)\n    } else {\n      this._listeners[event] = new Set([listener])\n    }\n  }\n\n  public removeEventListener<E extends string & keyof T>(\n    event: E,\n    listener: EventListener<T[E]>,\n  ): void {\n    this._listeners[event]?.delete(listener)\n  }\n\n  public dispatchEvent<E extends string & keyof T>(\n    event: E,\n    detail: T[E],\n  ): void {\n    this._listeners[event]?.forEach((fn) => {\n      try {\n        void fn(new Event(event, detail))\n      } catch {}\n    })\n  }\n\n  public dispose(): void {\n    this._listeners = {}\n  }\n}\n","import { EventEmitter } from './emitter'\n\nexport type KeyOf<T> = T extends object ? string & keyof T : never\n\nexport type ModelEvents<T extends object> = {\n  [K in KeyOf<T> | '@updated']: K extends '@updated'\n    ? Array<KeyOf<T>>\n    : K extends KeyOf<T>\n    ? {\n        value: T[K]\n        previousValue: T[K]\n      }\n    : never\n}\n\ninterface Readable<T extends object> {\n  get<K extends KeyOf<T>>(key: K): T[K]\n}\n\ninterface Writable<T extends object> extends Readable<T> {\n  set<K extends KeyOf<T>>(key: K, value: T[K]): void\n  setAll(state: Partial<T>): void\n}\n\ntype Immutable<T> = T extends Array<infer I>\n  ? ReadonlyArray<Immutable<I>>\n  : T extends Set<infer I>\n  ? ReadonlySet<Immutable<I>>\n  : T extends Map<infer K, infer V>\n  ? ReadonlyMap<K, Immutable<V>>\n  : T extends Date | Function | RegExp\n  ? T\n  : T extends object\n  ? {\n      readonly [K in keyof T]: Immutable<T[K]>\n    }\n  : T\n\nexport type Model<T extends object> = T &\n  Writable<T> &\n  EventEmitter<ModelEvents<T>>\nexport type ReadonlyModel<T extends object> = Immutable<T> &\n  Readable<T> &\n  EventEmitter<ModelEvents<T>>\n\nconst methodsRE = /^(get|set|setAll|addEventListener|removeEventListener|dispatchEvent|dispose)$/\nexport function createModel<T extends object>(state: T): Model<T> {\n  const model = new ObservableState(state)\n  const isProperty = (property: string | symbol): property is KeyOf<T> =>\n    typeof property === 'string' &&\n    !methodsRE.test(property) &&\n    !property.startsWith('_')\n\n  return new Proxy((model as unknown) as T & Model<T>, {\n    get(target, property, receiver) {\n      if (isProperty(property)) return target.get(property)\n      return Reflect.get(target, property, receiver)\n    },\n    set(target, property, value, receiver) {\n      if (isProperty(property)) {\n        target.set(property, value)\n        return true\n      }\n\n      return Reflect.set(target, property, value, receiver)\n    },\n    has(target, property) {\n      return Reflect.has(isProperty(property) ? model._state : target, property)\n    },\n    ownKeys(_target) {\n      return Reflect.ownKeys(model._state)\n    },\n    getOwnPropertyDescriptor(_target, property) {\n      return Reflect.getOwnPropertyDescriptor(model._state, property)\n    },\n  })\n}\n\nexport function readonly<T extends object>(model: Model<T>): ReadonlyModel<T> {\n  if (__DEV__) {\n    return new Proxy((model as unknown) as ReadonlyModel<T>, {\n      set(_target, property) {\n        throw new Error(`Cannot set readonly property \"${String(property)}\"`)\n      },\n    })\n  }\n\n  return (model as unknown) as ReadonlyModel<T>\n}\n\nclass ObservableState<T extends object>\n  extends EventEmitter<ModelEvents<T>>\n  implements Writable<T> {\n  public readonly _state: T\n\n  constructor(state: T) {\n    super()\n    this._state = state\n  }\n\n  set<K extends KeyOf<T>>(key: K, value: T[K]): void {\n    if (__DEV__) {\n      if (key === '@updated' || methodsRE.test(key))\n        throw new Error(`\"${key}\" is a reserved property`)\n    }\n\n    this.setAll(({ [key]: value } as unknown) as Partial<T>)\n  }\n\n  setAll(state: Partial<T>): void {\n    type Change<K extends KeyOf<T> = KeyOf<T>> = [\n      K,\n      { value: T[K]; previousValue: T[K] },\n    ]\n    const changes: Change[] = []\n\n    Object.entries(state).forEach((entry) => {\n      const key = entry[0] as KeyOf<T>\n      const previousValue = this._state[key]\n      const value = entry[1] as typeof previousValue\n      if (previousValue === value) return // Value did not change.\n\n      this._state[key] = value\n\n      changes.push([key, { value, previousValue }])\n    })\n\n    this.dispatchEvent(\n      '@updated',\n      changes.map((change) => change[0]),\n    )\n\n    for (const change of changes) {\n      this.dispatchEvent(change[0], change[1] as any)\n    }\n  }\n\n  get<K extends KeyOf<T>>(key: K): T[K] {\n    return this._state[key]\n  }\n}\n","import { effect } from './effect'\nimport { createModel, KeyOf, Model, readonly, ReadonlyModel } from './model'\n\ntype Dependency<T extends object = {}> =\n  | [model: Model<T>, dependencies: Array<KeyOf<T>>]\n  | [model: ReadonlyModel<T>, dependencies: Array<KeyOf<T>>]\ntype Dependencies<T extends object = any> = Array<Dependency<T>>\n\nexport function computed<\n  R,\n  D0 extends object,\n  D1 extends object,\n  D2 extends object,\n  D3 extends object,\n  D4 extends object,\n  D5 extends object\n>(\n  getter: () => R,\n  dep0?: Dependency<D0>,\n  dep1?: Dependency<D1>,\n  dep2?: Dependency<D2>,\n  dep3?: Dependency<D3>,\n  dep4?: Dependency<D4>,\n  dep5?: Dependency<D5>,\n): ReadonlyModel<{ value: R }>\n\n/**\n * Lazily computed resource generated from models.\n */\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function computed(getter: any, ...dependencies: any[]) {\n  return createComputedModel(dependencies, getter)\n}\n\nfunction createComputedModel<R>(\n  dependencies: Dependencies,\n  getter: () => R,\n): ReadonlyModel<{ value: R }> {\n  let value!: R\n  let isDirty = true\n\n  const state = createModel({\n    get value(): R {\n      if (isDirty) {\n        isDirty = false\n        value = getter()\n      }\n\n      return value\n    },\n  })\n\n  dependencies.forEach((dependency) => {\n    effect(dependency[0], dependency[1], () => {\n      isDirty = true\n      state.dispatchEvent('@updated', ['value'])\n      state.dispatchEvent('value', {\n        get value() {\n          return state.value\n        },\n        previousValue: value,\n      })\n    })\n  })\n\n  return readonly(state)\n}\n","import { EventEmitter, EventProducer, EventSource } from '../reactivity'\nimport { generateUUID, isString } from '../string'\nimport type { Message } from './message'\n\nfunction debug(..._args: any[]): void {\n  // console.debug(..._args)\n}\n\nconst serializer = {\n  serialize(obj: unknown): string {\n    return JSON.stringify(obj, (_key, value) => {\n      if (typeof value === 'bigint') return `${value.toString()}n`\n\n      return value\n    })\n  },\n  deserialize<T = unknown>(text: string): T {\n    return JSON.parse(text, (_key, value) => {\n      if (isString(value) && value.endsWith('n') && /^[0-9]+n$/.test(value)) {\n        return BigInt(value.slice(0, -1))\n      }\n\n      return value\n    })\n  },\n}\n\nexport interface Channel {\n  send(data: Buffer): void\n  receive(handler: (data: Buffer) => void): void\n}\n\ninterface EndpointProducerEvents {\n  message: Message\n}\n\ninterface EndpointSourceEvents extends EndpointProducerEvents {\n  closed: null\n}\n\nexport interface Endpoint\n  extends EventSource<EndpointSourceEvents>,\n    EventProducer<EndpointProducerEvents> {\n  id: string\n  close(): void\n  create(id?: string): Endpoint\n}\n\nexport function createEndpoint(channel: Channel): Endpoint {\n  let defaultSource: EventEmitter<EndpointSourceEvents>\n  const sources = new Map<string, EventEmitter<EndpointSourceEvents>>()\n\n  function create(id: string): Endpoint {\n    const emitter = new EventEmitter<EndpointSourceEvents>()\n\n    if (defaultSource == null) {\n      defaultSource = emitter\n    }\n\n    sources.set(id, emitter)\n\n    return {\n      id,\n      addEventListener: (event, listener) =>\n        emitter.addEventListener(event, listener),\n      removeEventListener: (event, listener) =>\n        emitter.removeEventListener(event, listener),\n      dispatchEvent: (_event, detail) => {\n        debug(`SEND(${id}): `, detail)\n        channel.send(Buffer.from(serializer.serialize([id, detail])))\n      },\n      close: () => {\n        emitter.dispatchEvent('closed', null)\n        emitter.dispose()\n        if (id != null) sources.delete(id)\n      },\n      create: (id) => create(id ?? generateUUID()),\n    }\n  }\n\n  channel.receive((data) => {\n    const [id, message] = serializer.deserialize<[string, Message]>(\n      data.toString('utf-8'),\n    )\n\n    const source = sources.get(id) ?? defaultSource\n    debug(`RECV(${id}): `, message)\n    source.dispatchEvent('message', message)\n  })\n\n  return create(generateUUID())\n}\n","import type { Opaque } from '../types'\nimport type { Value } from './value'\n\nexport type MessageID = Opaque<string, 'Message'>\n\nexport enum MessageType {\n  // Proxy Methods\n  get = 'get',\n  set = 'set',\n  apply = 'apply',\n  construct = 'construct',\n  // Protocol Methods\n  ENDPOINT = 'ENDPOINT',\n  RELEASE = 'RELEASE',\n  RETURN = 'RETURN',\n}\n\ninterface BaseMessage {\n  id: MessageID\n  type: MessageType\n}\n\nexport interface GetMessage extends BaseMessage {\n  type: MessageType.get\n  path: string[]\n}\n\nexport interface SetMessage extends BaseMessage {\n  type: MessageType.set\n  path: string[]\n  value: Value\n}\n\nexport interface ApplyMessage extends BaseMessage {\n  type: MessageType.apply\n  path: string[]\n  argumentList: Value[]\n}\n\nexport interface ConstructMessage extends BaseMessage {\n  type: MessageType.construct\n  path: string[]\n  argumentList: Value[]\n}\n\nexport interface EndpointMessage extends BaseMessage {\n  type: MessageType.ENDPOINT\n}\n\nexport interface ReleaseMessage extends BaseMessage {\n  type: MessageType.RELEASE\n  path: string[]\n}\n\nexport interface ReturnMessage extends BaseMessage {\n  type: MessageType.RETURN\n  value: Value\n}\n\nexport type Message =\n  | GetMessage\n  | SetMessage\n  | ApplyMessage\n  | ConstructMessage\n  | EndpointMessage\n  | ReleaseMessage\n  | ReturnMessage\n","import type { ExposedObject } from './handlers'\n\nconst release = Symbol('release')\n\nexport const Symbols = { release } as const\n\ninterface RemoteObjectAPI {\n  [Symbols.release](): Promise<void>\n}\n\n// Convert properties and methods to promise (and inverse operation)\ntype Promisify<T> = T extends Promise<unknown> ? T : Promise<T>\ntype Unpromisify<T> = T extends Promise<infer P> ? P : T\n\ntype RemoteProperty<T> = T extends Function | ExposedObject<unknown>\n  ? Remote<T>\n  : Promisify<T>\ntype LocalProperty<T> = T extends Function | ExposedObject<unknown>\n  ? Local<T>\n  : Unpromisify<T>\n\ntype RemoteObject<T> = { [P in keyof T]: RemoteProperty<T[P]> }\ntype LocalObject<T> = { [P in keyof T]: LocalProperty<T[P]> }\n\ntype ProxyOrClone<T> = T extends ExposedObject<unknown> ? Remote<T> : T\ntype UnproxyOrClone<T> = T extends RemoteObject<ExposedObject<unknown>>\n  ? Local<T>\n  : T\n\nexport type Remote<T> =\n  // Handle properties\n  RemoteObject<T> &\n    // Handle call signature (if present)\n    (T extends (...args: infer TArguments) => infer TReturn\n      ? (\n          ...args: { [I in keyof TArguments]: UnproxyOrClone<TArguments[I]> }\n        ) => Promisify<ProxyOrClone<Unpromisify<TReturn>>>\n      : unknown) &\n    // Handle construct signature (if present)\n    // The return of construct signatures is always proxied (whether marked or not)\n    (T extends new (...args: infer TArguments) => infer TInstance\n      ? new (\n          ...args: {\n            [I in keyof TArguments]: UnproxyOrClone<TArguments[I]>\n          }\n        ) => Promisify<Remote<TInstance>>\n      : unknown) &\n    // Include additional special comlink methods available on the proxy.\n    RemoteObjectAPI\n\nexport type Local<T> =\n  // Omit the special proxy methods (they don't need to be supplied, comlink adds them)\n  Omit<LocalObject<T>, keyof RemoteObjectAPI> &\n    // Handle call signatures (if present)\n    (T extends (...args: infer TArguments) => infer TReturn\n      ? (\n          ...args: { [I in keyof TArguments]: ProxyOrClone<TArguments[I]> }\n        ) => // The raw function could either be sync or async, but is always proxied automatically\n        MaybePromise<UnproxyOrClone<Unpromisify<TReturn>>>\n      : unknown) &\n    // Handle construct signature (if present)\n    // The return of construct signatures is always proxied (whether marked or not)\n    (T extends new (...args: infer TArguments) => infer TInstance\n      ? new (\n          ...args: {\n            [I in keyof TArguments]: ProxyOrClone<TArguments[I]>\n          }\n        ) => // The raw constructor could either be sync or async, but is always proxied automatically\n        MaybePromise<Local<Unpromisify<TInstance>>>\n      : unknown)\n\n/**\n * Expresses that a type can be either a sync or async.\n */\ntype MaybePromise<T> = Promise<T> | T\n","export enum ValueType {\n  RAW = 'raw',\n  HANDLER = 'handler',\n}\n\nexport interface BaseValue {\n  type: ValueType\n}\n\nexport interface RawValue extends BaseValue {\n  type: ValueType.RAW\n  value: unknown // Should be JSON serializable object\n}\n\nexport interface HandlerValue extends BaseValue {\n  type: ValueType.HANDLER\n  name: string\n  value: unknown\n}\n\nexport type Value = RawValue | HandlerValue\n","import { isObject } from '../object'\nimport { DisposableScope } from '../reactivity'\nimport { generateUUID } from '../string'\nimport type { Endpoint } from './channel'\nimport { Message, MessageType, ReturnMessage } from './message'\nimport type { Remote } from './types'\nimport { Symbols as PublicSymbols } from './types'\nimport { Value, ValueType } from './value'\n\nexport interface Handler {\n  canHandle(value: unknown): boolean\n  serialize(value: unknown): unknown\n  deserialize(value: unknown): unknown\n}\n\nconst EXPOSED = Symbol('RPC.exposed')\nconst THROWN = Symbol('RPC.thrown')\n\nconst Symbols = {\n  exposed: EXPOSED,\n  thrown: THROWN,\n} as const\n\nfunction isObjectOrFunction(value: unknown): value is object {\n  return isObject(value) || typeof value === 'function'\n}\n\ninterface Throwable {\n  value: unknown\n  [Symbols.thrown]: true\n}\n\nfunction isThrowable(value: unknown): value is Throwable {\n  return isObjectOrFunction(value) && Symbols.thrown in value\n}\n\nfunction createThrowable(value: unknown): Throwable {\n  return { value, [Symbols.thrown]: true }\n}\n\ntype SerializedThrowable =\n  | { isError: true; value: Error }\n  | { isError: false; value: unknown }\n\nconst throwHandler: Handler = {\n  canHandle(value) {\n    return isThrowable(value)\n  },\n  serialize({ value }: Throwable): SerializedThrowable {\n    return value instanceof Error\n      ? {\n          isError: true,\n          value: {\n            name: value.name,\n            message: value.message,\n            stack: value.stack,\n          },\n        }\n      : { isError: false, value }\n  },\n  deserialize(serializedValue: SerializedThrowable) {\n    if (serializedValue.isError) {\n      throw Object.assign(\n        new Error(serializedValue.value.message),\n        serializedValue.value,\n      )\n    } else {\n      throw serializedValue.value\n    }\n  },\n}\n\nexport function isExposed<T>(obj: T): obj is ExposedObject<T> {\n  return isObjectOrFunction(obj) && Symbols.exposed in obj\n}\n\nexport type ExposedObject<T> = T & {\n  [Symbols.exposed]: string\n}\n\nlet currentEndpoint: Endpoint | null = null\n\nexport function withEndpoint<T>(endpoint: Endpoint, fn: () => T): T {\n  try {\n    currentEndpoint = endpoint\n    return fn()\n  } finally {\n    currentEndpoint = null\n  }\n}\n\nexport function createExposed<T>(\n  value: T,\n  endpoint: Endpoint,\n): ExposedObject<T> {\n  const target = Object.assign(value as unknown as object, {\n    [Symbols.exposed]: endpoint.id,\n  }) as ExposedObject<T>\n\n  const scope = new DisposableScope()\n  scope.emitter(endpoint).on('message', async (event) => {\n    const message = event.detail\n    let returnValue: unknown\n    try {\n      switch (message.type) {\n        case MessageType.get:\n          returnValue = get(target, message.path)\n          break\n        case MessageType.set:\n          {\n            const { parent, property } = getParent(target, message.path)\n            parent[property] = fromValue(endpoint, message.value)\n            returnValue = true\n          }\n          break\n        case MessageType.apply:\n          {\n            const { parent, property } = getParent(target, message.path)\n            returnValue = parent[property].apply(\n              parent,\n              message.argumentList.map((arg) => fromValue(endpoint, arg)),\n            )\n          }\n          break\n        case MessageType.construct:\n          {\n            const Constructor = get(target, message.path) as new (\n              ...args: unknown[]\n            ) => unknown\n\n            returnValue = createExposed(\n              new Constructor(\n                ...message.argumentList.map((arg) => fromValue(endpoint, arg)),\n              ),\n              endpoint.create(),\n            )\n          }\n          break\n      }\n    } catch (error) {\n      returnValue = createThrowable(error)\n    }\n\n    await Promise.resolve(returnValue)\n      .catch((error) => createThrowable(error))\n      .then((returnValue) => {\n        endpoint.dispatchEvent('message', {\n          id: message.id,\n          type: MessageType.RETURN,\n          value: toValue(endpoint, returnValue),\n        })\n\n        if (message.type === MessageType.RELEASE) {\n          scope.dispose()\n        }\n      })\n  })\n\n  function get(target: any, path: string[]): unknown {\n    return path.reduce((obj, prop) => obj[prop], target)\n  }\n\n  function getParent(\n    target: any,\n    path: string[],\n  ): { parent: any; property: string } {\n    if (path.length === 0) {\n      return {\n        parent: [target],\n        property: '0',\n      }\n    }\n\n    path = path.slice()\n    const property = path.pop() as string\n    return {\n      parent: path.reduce((obj, prop) => obj[prop], target),\n      property,\n    }\n  }\n\n  return target\n}\n\nconst endpoints = new Map<string, Remote<unknown>>()\nconst proxyHandler: Handler = {\n  canHandle(value) {\n    return isExposed(value)\n  },\n  serialize(value: ExposedObject<unknown>) {\n    return value[Symbols.exposed]\n  },\n  deserialize(key: string) {\n    if (!endpoints.has(key)) {\n      if (currentEndpoint == null) {\n        throw new Error(\n          'Cannot deserialize proxy value without active endpoint',\n        )\n      }\n\n      const endpoint = currentEndpoint.create(key)\n      endpoint.addEventListener('closed', () => {\n        endpoints.delete(key)\n      })\n      endpoints.set(key, createEndpointProxy(endpoint, []))\n    }\n\n    return endpoints.get(key)\n  },\n}\n\nconst callbackHandler: Handler = {\n  canHandle(value) {\n    return typeof value === 'function' && !isExposed(value)\n  },\n  serialize(value: (...args: unknown[]) => unknown) {\n    if (currentEndpoint == null) {\n      throw new Error('Cannot serialize function without active endpoint')\n    }\n\n    return proxyHandler.serialize(\n      createExposed(value, currentEndpoint.create()),\n    )\n  },\n  deserialize(key: string) {\n    return proxyHandler.deserialize(key)\n  },\n}\n\nexport const Handlers = new Map([\n  ['throw', throwHandler],\n  ['proxy', proxyHandler],\n  ['callback', callbackHandler],\n])\n\nexport function toValue(endpoint: Endpoint, value: unknown): Value {\n  return withEndpoint(endpoint, () => {\n    for (const [name, handler] of Handlers.entries()) {\n      if (handler.canHandle(value)) {\n        return {\n          type: ValueType.HANDLER,\n          name,\n          value: handler.serialize(value),\n        }\n      }\n    }\n\n    return {\n      type: ValueType.RAW,\n      value,\n    }\n  })\n}\n\nexport function fromValue(endpoint: Endpoint, value: Value): unknown {\n  return withEndpoint(endpoint, () => {\n    switch (value.type) {\n      case ValueType.RAW:\n        return value.value\n      case ValueType.HANDLER: {\n        const handler = Handlers.get(value.name)\n        if (handler != null) return handler.deserialize(value.value)\n        return value.value\n      }\n      default:\n        throw new Error(`Unknown type: ${(value as Value).type}`)\n    }\n  })\n}\n\nexport function createEndpointProxy<T>(\n  endpoint: Endpoint,\n  path: Array<string | number | symbol>,\n  target: any = function () {},\n  boundArgs: unknown[] = [],\n): Remote<T> {\n  let isReleased = false\n  const proxy = new Proxy(target, {\n    get(_, property) {\n      throwIfProxyReleased(isReleased)\n      if (property === PublicSymbols.release) {\n        return async () => {\n          isReleased = true\n          try {\n            await sendRequest(endpoint, {\n              id: generateUUID(),\n              type: MessageType.RELEASE,\n              path: path.map((p) => p.toString()),\n            })\n          } finally {\n            endpoint.close()\n          }\n        }\n      } else if (property === 'then') {\n        if (path.length === 0) return { then: () => proxy }\n        const value = sendRequest(endpoint, {\n          id: generateUUID(),\n          type: MessageType.get,\n          path: path.map((p) => p.toString()),\n        }).then((response) => fromValue(endpoint, response.value))\n\n        return value.then.bind(value)\n      } else {\n        return createEndpointProxy(endpoint, [...path, property], target)\n      }\n    },\n    set(_, property, value) {\n      throwIfProxyReleased(isReleased)\n\n      void sendRequest(endpoint, {\n        id: generateUUID(),\n        type: MessageType.set,\n        path: [...path, property].map((p) => p.toString()),\n        value: toValue(endpoint, value),\n      })\n\n      return true\n    },\n    apply(_, _this, args) {\n      throwIfProxyReleased(isReleased)\n\n      const last = path[path.length - 1]\n\n      if (last === 'bind') {\n        return createEndpointProxy(\n          endpoint,\n          path.slice(0, -1),\n          target,\n          args.slice(1),\n        )\n      } else {\n        return sendRequest(endpoint, {\n          id: generateUUID(),\n          type: MessageType.apply,\n          path: path.map((p) => p.toString()),\n          argumentList: [...boundArgs, ...args].map((arg) =>\n            toValue(endpoint, arg),\n          ),\n        }).then((response) => fromValue(endpoint, response.value))\n      }\n    },\n    async construct(_, args) {\n      throwIfProxyReleased(isReleased)\n\n      const response = await sendRequest(endpoint, {\n        id: generateUUID(),\n        type: MessageType.construct,\n        path: path.map((p) => p.toString()),\n        argumentList: args.map((arg) => toValue(endpoint, arg)),\n      })\n\n      return fromValue(endpoint, response.value)\n    },\n  })\n\n  return proxy as unknown as Remote<T>\n}\n\nasync function sendRequest(\n  endpoint: Endpoint,\n  request: Message,\n): Promise<ReturnMessage> {\n  const scope = new DisposableScope()\n\n  try {\n    return await new Promise((resolve, reject) => {\n      scope\n        .emitter(endpoint)\n        .on('message', (event) => {\n          const response = event.detail as ReturnMessage\n          if (response.id === request.id) resolve(response)\n        })\n        .on('closed', () => {\n          reject(new Error('Endpoint closed'))\n        })\n\n      endpoint.dispatchEvent('message', request)\n    })\n  } finally {\n    scope.dispose()\n  }\n}\n\nfunction throwIfProxyReleased(isReleased: boolean): void {\n  if (isReleased) {\n    throw new Error('Proxy has been released and is not useable')\n  }\n}\n","import type { Endpoint } from './channel'\nimport type { Remote } from './types'\nimport { createEndpointProxy } from './handlers'\n\nexport function create<T>(endpoint: Endpoint): Remote<T> {\n  return createEndpointProxy(endpoint, [])\n}\n","import type { Endpoint } from './channel'\nimport { createExposed } from './handlers'\n\nexport function expose<T extends object>(target: T, endpoint: Endpoint): void {\n  createExposed(target, endpoint)\n}\n","import type { Remote } from './types'\n\nexport async function set<T, K extends keyof T>(\n  target: Remote<T>,\n  property: K,\n  value: T[K],\n): Promise<void> {\n  const t = target as T\n\n  t[property] = value\n\n  while (true) {\n    const local = value\n    const remote = await target[property]\n\n    if (local === remote || JSON.stringify(local) === JSON.stringify(remote)) {\n      break\n    }\n  }\n}\n","export const SetOps = {\n  /**\n   * a - b\n   */\n  difference: <T extends unknown>(a: Set<T>, b: Set<T>) => {\n    const c = new Set<T>(a)\n    for (const item of b) {\n      c.delete(item)\n    }\n    return c\n  },\n  union: <T extends unknown>(a: Set<T>, b: Set<T>) => {\n    const c = new Set<T>(a)\n    for (const item of b) {\n      c.add(item)\n    }\n    return c\n  },\n  intersetion: <T extends unknown>(a: Set<T>, b: Set<T>) => {\n    const c = new Set<T>()\n    for (const item of a) {\n      if (b.has(item)) c.add(item)\n    }\n    return c\n  },\n}\n","import { decode } from 'sourcemap-codec'\nimport { binarySearch, BinarySearchBias, first, last } from './array'\nimport { invariant } from './assert'\n\nexport type SourceMapSegment =\n  | [generatedColumn: number]\n  | [\n      generatedColumn: number,\n      sourceIndex: number,\n      originalLine: number,\n      originalColumn: number,\n    ]\n  | [\n      generatedColumn: number,\n      sourceIndex: number,\n      originalLine: number,\n      originalColumn: number,\n      nameIndex: number,\n    ]\n\nexport interface DecodedSourceMap {\n  file: string\n  sources: string[]\n  sourcesContent: string[]\n  names: string[]\n  mappings: SourceMapSegment[][]\n}\n\nexport type SourceMapLike =\n  | {\n      mappings: string\n      names?: string[]\n    }\n  | PartialDecodedSourceMap\n\ninterface PartialDecodedSourceMap {\n  names?: string[]\n  mappings: SourceMapSegment[][]\n}\n\nclass LineColumnMapper {\n  private readonly offsets: number[]\n\n  constructor(source: string) {\n    this.offsets = []\n    const lines = source.split('\\n')\n    let offset = 0\n    for (const line of lines) {\n      this.offsets.push(offset)\n\n      offset += line.length + 1\n    }\n  }\n\n  public positionAt(position: number): { line: number; column: number } {\n    const line = binarySearch(\n      position,\n      this.offsets,\n      (a, b) => a - b,\n      BinarySearchBias.GREATEST_LOWER_BOUND,\n    )\n    const offset = this.offsets[line]\n    invariant(offset != null, 'Invalid position.')\n    return { line, column: position - offset }\n  }\n\n  public offsetAt(line: number, column: number): number {\n    const offsets = this.offsets[line]\n    invariant(offsets != null, 'Invalid position.')\n    return offsets + column\n  }\n}\n\nexport class SourceTransformer {\n  private readonly source: string\n  private readonly sourceMap: DecodedSourceMap\n\n  private code: string = ''\n\n  private line: number = 0\n  private column: number = 0\n\n  constructor(fileName: string, source: string) {\n    this.source = source\n    this.sourceMap = {\n      file: fileName,\n      mappings: [],\n      names: [],\n      sources: [fileName],\n      sourcesContent: [source],\n    }\n  }\n\n  nextLine(): void {\n    if (!this.code.endsWith('\\n')) {\n      this.append(`\\n`)\n    }\n  }\n\n  append(code: string, sourceMap?: SourceMapLike): void {\n    const lines = code.split('\\n')\n    const lastLine = last(lines)\n    this.code += code\n\n    let mappings: DecodedSourceMap['mappings'] = []\n    if (sourceMap != null) {\n      const nameOffset = this.sourceMap.names.length\n      if (sourceMap.names != null) this.sourceMap.names.push(...sourceMap.names)\n      mappings = getMappings(sourceMap).map((mapping) =>\n        mapping.map((segment) => {\n          if (segment.length === 5) {\n            return [\n              segment[0],\n              0,\n              segment[2],\n              segment[3],\n              segment[4] + nameOffset,\n            ] as [number, number, number, number, number]\n          } else if (segment.length === 4) {\n            return [segment[0], 0, segment[2], segment[3]] as [\n              number,\n              number,\n              number,\n              number,\n            ]\n          }\n          return segment\n        }),\n      )\n    }\n    invariant(\n      mappings.length <= lines.length,\n      `Invalid source map: ${mappings.length} > ${\n        lines.length\n      }:\\n${code},\\n${JSON.stringify(mappings, null, 2)}`,\n    )\n\n    const current = (this.sourceMap.mappings[this.line] =\n      this.sourceMap.mappings[this.line] ?? [])\n    if (mappings.length > 0) {\n      current.push(\n        ...first(mappings).map((mapping) => {\n          mapping[0] += this.column\n          return mapping\n        }),\n      )\n    }\n\n    if (lines.length === 1) {\n      this.column += lastLine.length\n    } else {\n      this.line += lines.length - 1\n      this.column = lastLine.length\n      this.sourceMap.mappings.push(...mappings.slice(1))\n    }\n\n    for (let i = this.sourceMap.mappings.length; i <= this.line; i++) {\n      this.sourceMap.mappings.push([])\n    }\n  }\n\n  private _sourceLineColumnMapper?: LineColumnMapper\n  public get sourceLineColumnMapper(): LineColumnMapper {\n    return (\n      this._sourceLineColumnMapper ??\n      (this._sourceLineColumnMapper = new LineColumnMapper(this.source))\n    )\n  }\n\n  clone(start: number, end: number): void {\n    if (start >= end) return\n    const code = this.source.slice(start, end)\n    if (code.length === 0) return\n    const mapper = this.sourceLineColumnMapper\n    const { line, column } = mapper.positionAt(start)\n    const lines = code.split('\\n')\n    const sourceMap: PartialDecodedSourceMap = {\n      mappings: [[[0, 0, line, column]]],\n    }\n    for (let i = 1; i < lines.length; i++) {\n      if (lines[i]?.length === 0) sourceMap.mappings.push([])\n      else sourceMap.mappings.push([[0, 0, line + i, 0]])\n    }\n    this.append(code, sourceMap)\n  }\n\n  end(): { code: string; map: DecodedSourceMap } {\n    return {\n      code: this.code,\n      map: this.sourceMap,\n    }\n  }\n}\n\nexport function getMappings(\n  sourceMap: SourceMapLike,\n): DecodedSourceMap['mappings'] {\n  return typeof sourceMap.mappings === 'string'\n    ? decode(sourceMap.mappings)\n    : sourceMap.mappings\n}\n\nexport function rebaseSourceMap(\n  sourceMap: SourceMapLike,\n  startPosition?: { line: number; column: number },\n): DecodedSourceMap {\n  const mappings = getMappings(sourceMap)\n\n  if (startPosition == null) {\n    return {\n      file: '',\n      sources: [],\n      sourcesContent: [],\n      ...sourceMap,\n      names: sourceMap.names ?? [],\n      mappings,\n    }\n  }\n\n  const line = startPosition.line - 1\n  const column = startPosition.column - 1\n\n  return {\n    file: '',\n    sources: [],\n    sourcesContent: [],\n    ...sourceMap,\n    names: sourceMap.names ?? [],\n    mappings: mappings.map((mapping) =>\n      mapping.map((segment) => {\n        if (segment.length === 1) return segment\n\n        let originalLine = segment[2]\n        let originalColumn = segment[3]\n\n        if (originalLine === 0) {\n          originalColumn += column\n        }\n\n        originalLine += line\n\n        if (segment.length === 4) {\n          return [segment[0], segment[1], originalLine, originalColumn]\n        }\n\n        return [\n          segment[0],\n          segment[1],\n          originalLine,\n          originalColumn,\n          segment[4],\n        ]\n      }),\n    ),\n  }\n}\n","import * as Sentry from '@sentry/node'\nimport { platform } from 'os'\nimport { inspect } from 'util'\n\ninterface Options {\n  release: string\n  environment: string\n  tracesSampleRate: number\n}\ninterface EventDefaults {\n  sessionId: string\n  os: string\n  packageName?: string\n  typescriptVersion?: string\n  nodeVersion: string\n  vueVersion?: string\n  [key: string]: string | number | boolean | undefined\n}\n\nexport class Telemetry {\n  private static isTelemetryEnabled: boolean | null = null\n\n  private readonly defaults: EventDefaults\n  private readonly user = {\n    id: this.getUserId(),\n  }\n\n  private isTelemetryEnabled: boolean =\n    Telemetry.isTelemetryEnabled ??\n    (process.env['VUEDX_TELEMETRY']?.toLowerCase() === 'on' ||\n      process.env['VUEDX_TELEMETRY']?.toLowerCase() === 'true' ||\n      false)\n\n  constructor(\n    key: string,\n    options: Options,\n    defaults?: Partial<EventDefaults>,\n  ) {\n    Sentry.init({\n      dsn: key,\n      defaultIntegrations: false,\n      release: options.release,\n      environment: options.environment,\n      sampleRate: options.tracesSampleRate,\n    } as any)\n\n    this.defaults = {\n      sessionId: Number(Math.random() * 1000000).toString(16),\n      nodeVersion: process.version,\n      os: platform(),\n      ...defaults,\n    }\n  }\n\n  private getUserId(): string {\n    return ''\n  }\n\n  measure(name: string, duration: number): void {\n    console.debug(`[measure] ${name}: ${Math.trunc(duration)}ms`)\n  }\n\n  trace(name: string, description?: string): () => void {\n    if (!this.isTelemetryEnabled) return () => {}\n    const activeTransaction = Sentry.getCurrentHub()\n      .getScope()\n      ?.getTransaction()\n    if (activeTransaction == null) {\n      const transaction = Sentry.startTransaction({\n        name,\n        description,\n      })\n\n      Sentry.configureScope((s: unknown) => {\n        const scope = s as Sentry.Scope\n        scope.setSpan(transaction)\n      })\n\n      return () => {\n        Sentry.captureMessage(`[trace] ${name}`, (s: unknown) => {\n          const scope = s as Sentry.Scope\n          scope.setSpan(transaction)\n          scope.setUser(this.user)\n          scope.setTags({ ...this.defaults })\n          scope.setLevel(Sentry.Severity.Info)\n\n          return scope\n        })\n        transaction.finish()\n        Sentry.configureScope((s: unknown) => {\n          const scope = s as Sentry.Scope\n          scope.setSpan(undefined)\n        })\n      }\n    } else {\n      const child = activeTransaction.startChild({\n        op: name,\n        description,\n      })\n\n      return () => {\n        child.finish()\n      }\n    }\n  }\n\n  collect(key: string, value: Record<string, any>): void {\n    if (!this.isTelemetryEnabled) return\n    const tags: Record<string, string | number | boolean> = {}\n    const allowed = new Set(['string', 'number', 'boolean'])\n    Object.entries(value).forEach(([key, value]) => {\n      if (allowed.has(typeof value)) {\n        tags[`data_${key}`] = value\n      }\n    })\n    Sentry.captureEvent({\n      message: `${key}`,\n      level: Sentry.Severity.Info,\n      user: this.user,\n      tags: {\n        ...this.defaults,\n        ...tags,\n      },\n      extra: value,\n    })\n  }\n\n  error(payload: any | Error): void {\n    if (!this.isTelemetryEnabled) return\n    if (!(payload instanceof Error)) {\n      payload = new Error(inspect(payload, true, 3, false))\n    }\n\n    void Sentry.captureException(payload, {\n      level: Sentry.Severity.Fatal,\n      user: this.user,\n      tags: {\n        ...this.defaults,\n      },\n    })\n  }\n\n  private static _instance?: Telemetry\n  static get instance(): Telemetry {\n    if (this._instance == null) {\n      if (process.env['JEST_WORKER_ID'] != null) {\n        this._instance = new Telemetry('', {\n          release: '',\n          environment: '',\n          tracesSampleRate: 0,\n        })\n      } else {\n        throw new Error(\n          'Use \"Telemetry.setup()\" to instantiate telemetry client.',\n        )\n      }\n    }\n\n    return this._instance\n  }\n\n  static setup(\n    key: string,\n    packageName: string,\n    packageVersion: string,\n    tracesSampleRate: number,\n    defaults: Partial<EventDefaults>,\n  ): void {\n    this._instance = new Telemetry(\n      key,\n      {\n        release: packageVersion,\n        environment: 'production',\n        tracesSampleRate,\n      },\n      {\n        ...defaults,\n        packageName,\n      },\n    )\n  }\n\n  static extend(defaults: Partial<EventDefaults>): void {\n    Object.assign(this.instance.defaults, defaults)\n  }\n\n  static setTelemetryEnabled(enabled: boolean): void {\n    this.isTelemetryEnabled = enabled\n\n    if (this._instance != null) {\n      this._instance.isTelemetryEnabled = enabled\n    }\n  }\n}\n\nexport async function tracePromise<T>(\n  event: string,\n  promise: Promise<T>,\n): Promise<T> {\n  const done = trace(event)\n  try {\n    return await promise\n  } catch (error) {\n    collectError(error as Error)\n    throw error\n  } finally {\n    done()\n  }\n}\n\nexport function trace(event: string, description?: string): () => void {\n  return Telemetry.instance.trace(event, description)\n}\n\nexport function collectError(error: string | Error): void {\n  return Telemetry.instance.error(error)\n}\n\nexport function collect(key: string, value: Record<string, any>): void {\n  return Telemetry.instance.collect(key, value)\n}\n","import { performance } from 'perf_hooks'\nimport { Telemetry } from './telemetry'\n\nexport function startMeasure(name: string): () => void {\n  const start = performance.now()\n  performance.mark(`${name}|start`)\n\n  return () => {\n    const duration = performance.now() - start\n    performance.mark(`${name}|end`)\n    performance.measure(name, `${name}|start`, `${name}|end`)\n    Telemetry.instance.measure(name, duration)\n  }\n}\n\nexport function measure(name?: string): MethodDecorator {\n  return createMethodDecorator(({ target, propertyKey, next }) => {\n    const id = name ?? `${target.constructor.name}#${propertyKey.toString()}`\n\n    return function (this: any, ...args) {\n      const start = performance.now()\n      try {\n        return next.apply(this, args)\n      } finally {\n        const end = performance.now()\n        Telemetry.instance.measure(id, end - start)\n      }\n    }\n  })\n}\n\nfunction createMethodDecorator<T = unknown, R = unknown>(\n  createMethod: (options: {\n    target: Object\n    propertyKey: string | symbol\n    descriptor: TypedPropertyDescriptor<(...args: T[]) => R>\n    next(...args: T[]): R\n  }) => (...args: T[]) => R,\n): MethodDecorator {\n  return (target, propertyKey, descriptor) => {\n    const fn = descriptor?.value\n\n    if (typeof fn === 'function') {\n      descriptor.value = createMethod({\n        target,\n        propertyKey,\n        descriptor,\n        next: fn,\n      } as any) as any\n    }\n\n    return descriptor\n  }\n}\n"],"names":["Symbols","PublicSymbols"],"mappings":"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"}