{"version":3,"file":"index.cjs","sources":["../src/setup.ts","../../../../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js","../src/inspect/display-struct.ts","../src/inspect/inspect-support.ts","../src/module.ts","../src/description/impl.ts","../src/stack.ts","../src/logger.ts","../src/logged.ts","../src/message.ts","../src/timeline.ts","../src/tree.ts","../index.ts"],"sourcesContent":["if (\n  (globalThis.Buffer as BufferConstructor | undefined) === undefined &&\n  typeof require === \"function\"\n) {\n  try {\n    // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-var-requires\n    const buffer = require(\"buffer\");\n    // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n    globalThis.Buffer = buffer.Buffer;\n  } catch {\n    // ignore\n  }\n}\n\nexport {};\n","export default function _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}","export default function _classApplyDescriptorSet(receiver, descriptor, value) {\n  if (descriptor.set) {\n    descriptor.set.call(receiver, value);\n  } else {\n    if (!descriptor.writable) {\n      throw new TypeError(\"attempted to set read only private field\");\n    }\n    descriptor.value = value;\n  }\n}","export default function _classExtractFieldDescriptor(receiver, privateMap, action) {\n  if (!privateMap.has(receiver)) {\n    throw new TypeError(\"attempted to \" + action + \" private field on non-instance\");\n  }\n  return privateMap.get(receiver);\n}","import classApplyDescriptorSet from \"./classApplyDescriptorSet.js\";\nimport classExtractFieldDescriptor from \"./classExtractFieldDescriptor.js\";\nexport default function _classPrivateFieldSet(receiver, privateMap, value) {\n  var descriptor = classExtractFieldDescriptor(receiver, privateMap, \"set\");\n  classApplyDescriptorSet(receiver, descriptor, value);\n  return value;\n}","export default function _classApplyDescriptorGet(receiver, descriptor) {\n  if (descriptor.get) {\n    return descriptor.get.call(receiver);\n  }\n  return descriptor.value;\n}","import classApplyDescriptorGet from \"./classApplyDescriptorGet.js\";\nimport classExtractFieldDescriptor from \"./classExtractFieldDescriptor.js\";\nexport default function _classPrivateFieldGet(receiver, privateMap) {\n  var descriptor = classExtractFieldDescriptor(receiver, privateMap, \"get\");\n  return classApplyDescriptorGet(receiver, descriptor);\n}","import type { JSONValue } from \"./json-value.js\";\n\nexport interface DisplayStructOptions {\n  readonly description: JSONValue;\n}\n\nexport type Fields = Record<PropertyKey, unknown>;\n\nexport function DisplayStruct(\n  name: string,\n  fields: Record<PropertyKey, unknown>,\n  options?: DisplayStructOptions\n): object {\n  let displayName = name;\n\n  if (options?.description) {\n    displayName = `${displayName} [${\n      typeof options.description === \"string\"\n        ? options.description\n        : JSON.stringify(options.description)\n    }]`;\n  }\n\n  const constructor = class {};\n  Object.defineProperty(constructor, \"name\", { value: displayName });\n  const object = new constructor();\n\n  for (const [key, value] of entries(fields)) {\n    Object.defineProperty(object, key, {\n      value,\n      enumerable: true,\n    });\n  }\n\n  return object;\n}\n\ntype Entries<R extends object> = { [P in keyof R]: [P, R[P]] }[keyof R];\n\nfunction entries<R extends object>(object: R): Entries<R>[] {\n  return Object.entries(object) as Entries<R>[];\n}\n","import { isObject } from \"@starbeam/verify\";\nimport type {\n  CustomInspectFunction,\n  InspectOptionsStylized,\n  Style,\n} from \"util\";\n\nimport {\n  type DisplayStructOptions,\n  type Fields,\n  DisplayStruct,\n} from \"./display-struct.js\";\n\nexport const INSPECT = Symbol.for(\"nodejs.util.inspect.custom\");\n\nexport const DEBUG = Symbol(\"STARBEAM_DEBUG\");\nexport type DEBUG = typeof DEBUG;\n\nexport const DEBUG_NAME = Symbol(\"STARBEAM_DEBUG_NAME\");\nexport type DEBUG_NAME = typeof DEBUG_NAME;\n\n/**\n * The TS type for CustomInspectFunction is wrong. You're allowed to return an\n * object, which then gets inspected, but TS assumes you have to return a\n * string.\n */\ntype InspectFunction = (...args: Parameters<CustomInspectFunction>) => unknown;\n\nexport interface Inspect {\n  [INSPECT]: InspectFunction;\n}\n\nclass Debug {\n  static create(name: string, options: InspectOptionsStylized): Debug {\n    return new Debug(name, options);\n  }\n\n  readonly #name: string;\n  readonly #options: InspectOptionsStylized;\n\n  private constructor(name: string, options: InspectOptionsStylized) {\n    this.#name = name;\n    this.#options = options;\n  }\n\n  stylize(text: string, styleType: Style): string {\n    return this.#options.stylize(text, styleType);\n  }\n\n  struct(fields: Fields, options?: DisplayStructOptions): object {\n    return DisplayStruct(this.#name, fields, options);\n  }\n}\n\ninterface DebugClass<I> {\n  name: string;\n  prototype: I & Partial<Inspect>;\n}\n\nexport function inspector<I>(\n  Class: DebugClass<\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    I extends { [INSPECT]: any }\n      ? `Do not pass a class to debug() that already implements nodejs.util.inspect.custom`\n      : I\n  >,\n  name?: string\n): {\n  define: (inspector: (instance: I, debug: Debug) => unknown) => void;\n} {\n  if (import.meta.env.DEV) {\n    return {\n      define: (callback: (instance: I, debug: Debug) => unknown) => {\n        Class.prototype[INSPECT] = function (\n          this: I,\n          _depth: number,\n          options: InspectOptionsStylized\n        ) {\n          return callback(this, Debug.create(name ?? Class.name, options));\n        };\n      },\n    };\n  } else {\n    return {\n      define: () => {\n        // noop\n      },\n    };\n  }\n}\n\nexport function inspect(\n  value: unknown,\n  ...args: Parameters<CustomInspectFunction>\n): unknown {\n  if (isObject(value)) {\n    return (value as Partial<Inspect>)[INSPECT]?.(...args);\n  } else {\n    return value;\n  }\n}\n","import { isPresentString } from \"@starbeam/core-utils\";\nimport type * as interfaces from \"@starbeam/interfaces\";\nimport { hasType } from \"@starbeam/verify\";\n\nimport { inspector } from \"./inspect/inspect-support.js\";\n\nexport function describeModule(module: string): DescribedModule {\n  return new DescribedModule(parse(module));\n}\n\nexport interface DisplayRoot {\n  name?: string;\n  prefix: string;\n}\n\nexport class DisplayPathParts {\n  readonly #path: string;\n  readonly #root: DisplayRoot | undefined;\n\n  constructor({ path, root }: { path: string; root?: DisplayRoot }) {\n    this.#path = path;\n    this.#root = root;\n  }\n\n  finish(options: { action?: string; loc?: Loc } = {}): DisplayParts {\n    return new DisplayParts({ path: this.#path, root: this.#root, ...options });\n  }\n}\n\nexport class DisplayParts implements interfaces.DisplayParts {\n  readonly #action: string | undefined;\n  readonly #loc: Loc | undefined;\n  readonly #path: string;\n  readonly #root: DisplayRoot | undefined;\n\n  static {\n    inspector(this, \"DisplayParts\").define((parts, debug) =>\n      debug.struct({\n        path: parts.#path,\n        root: parts.#root,\n        action: parts.#action,\n        loc: parts.#loc,\n      })\n    );\n  }\n\n  constructor({\n    path,\n    root,\n    action,\n    loc,\n  }: {\n    path: string;\n    root?: DisplayRoot | undefined;\n    action?: string | undefined;\n    loc?: Loc | undefined;\n  }) {\n    this.#path = path;\n    this.#root = root;\n    this.#action = action;\n    this.#loc = loc;\n  }\n\n  get action(): string | undefined {\n    return this.#action;\n  }\n\n  get #displayPath(): string {\n    if (this.#root?.name) {\n      return `[${this.#root.name}]/${this.#path}`;\n    } else {\n      return this.#path;\n    }\n  }\n\n  get loc(): Loc | undefined {\n    return this.#loc;\n  }\n\n  get path(): string {\n    return this.#path;\n  }\n\n  get root(): DisplayRoot | undefined {\n    return this.#root;\n  }\n\n  display(): string {\n    if (this.#loc && this.#action) {\n      return `${this.#action} (${this.#displayPath}:${formatLoc(this.#loc)})`;\n    } else if (this.#loc) {\n      return `${this.#displayPath}:${formatLoc(this.#loc)}`;\n    } else if (this.#action) {\n      return `${this.#action} (${this.#displayPath})`;\n    } else {\n      return this.#displayPath;\n    }\n  }\n}\n\nexport class DescribedModule {\n  #module: DescribedModulePath | DescribedPackage;\n\n  constructor(module: DescribedModulePath | DescribedPackage) {\n    this.#module = module;\n  }\n\n  display(\n    location?: { loc?: Loc | undefined; action?: string | undefined },\n    options: interfaces.StackFrameDisplayOptions = {}\n  ): string {\n    return this.parts(location, options).display();\n  }\n\n  parts(\n    location?: { loc?: Loc | undefined; action?: string | undefined },\n    options: interfaces.StackFrameDisplayOptions = {}\n  ): DisplayParts {\n    const parts = this.#module.parts(options);\n\n    if (location === undefined) {\n      return parts.finish();\n    }\n\n    const { loc, action } = location;\n\n    const hasLoc = loc !== undefined;\n    const hasAction = isPresentString(action);\n\n    if (hasLoc && hasAction) {\n      return parts.finish({ action, loc });\n    } else if (hasLoc) {\n      return parts.finish({ loc });\n    } else if (hasAction) {\n      return parts.finish({ action });\n    }\n\n    return parts.finish();\n  }\n}\n\ninterface Loc {\n  line: number;\n  column?: number | undefined;\n}\n\nfunction formatLoc(loc: Loc): string {\n  if (loc.column === undefined) {\n    return `${loc.line}`;\n  } else {\n    return `${loc.line}:${loc.column}`;\n  }\n}\n\ninterface DescribedPath {\n  // path(options?: StackFrameDisplayOptions): string;\n  parts: (options?: interfaces.StackFrameDisplayOptions) => DisplayPathParts;\n}\n\nclass DescribedModulePath implements DescribedPath {\n  readonly #path: string;\n  readonly pkg = null;\n  readonly type = \"relative\";\n\n  constructor(path: string) {\n    this.#path = path;\n  }\n\n  [Symbol.for(\"nodejs.util.inspect.custom\")](): string {\n    return `DescribedModulePath(${this.#path})`;\n  }\n\n  parts(options?: interfaces.StackFrameDisplayOptions): DisplayPathParts {\n    return relative({ ...options, full: normalize(this.#path) });\n  }\n}\n\nclass DescribedPackage implements DescribedPath {\n  readonly #name: string;\n  readonly #path: string;\n  readonly #scope: string | undefined;\n  readonly type = \"package\";\n\n  constructor(scope: string, name: string, path: string) {\n    this.#scope = scope;\n    this.#name = name;\n    this.#path = path;\n  }\n\n  get #fullPath(): string {\n    const parts: string[] = [];\n\n    if (this.#scope) {\n      parts.push(this.#scope);\n    }\n\n    parts.push(this.#name);\n\n    if (this.#path) {\n      parts.push(this.#path);\n    }\n\n    return normalize(...parts);\n  }\n\n  get pkg(): string {\n    return normalize(this.#scope, this.#name);\n  }\n\n  [Symbol.for(\"nodejs.util.inspect.custom\")](): string {\n    const path = this.#path ? ` at ${this.#path}` : \"\";\n\n    if (this.#scope) {\n      return `DescribedPackage(${this.#scope}/${this.#name}${path})`;\n    } else {\n      return `DescribedPackage(${this.#name}${path})`;\n    }\n  }\n\n  parts(): DisplayPathParts {\n    return new DisplayPathParts({ path: this.#fullPath });\n  }\n}\n\nconst SOURCE_PARTS =\n  /^(?![a-z]+:)(?:(?<scope>@[^/\\\\]+)[/])?(?<name>[^/\\\\]+)(?:[/\\\\](?<path>.*))?$/;\n\nfunction parse(module: string): DescribedModulePath | DescribedPackage {\n  if (module.startsWith(\".\") || module.startsWith(\"/\")) {\n    return new DescribedModulePath(module);\n  }\n\n  const groups = SOURCE_PARTS.exec(module)?.groups;\n\n  if (groups === undefined) {\n    return new DescribedModulePath(module);\n  }\n\n  const { scope, name, path } = groups as {\n    scope: string;\n    name: string;\n    path: string;\n  };\n\n  return new DescribedPackage(scope, name, path);\n}\n\n/**\n * The whole `Stack` system is only intended to be used for logging, so the\n * edge-cases where this normalization wouldn't work (verbatim paths on Windows)\n * shouldn't matter.\n */\nfunction normalize(...pathParts: (string | null | undefined)[]): string {\n  return pathParts\n    .filter(hasType(\"string\"))\n    .map((p: string) => p.replaceAll(/[\\\\]/g, \"/\"))\n    .join(\"/\");\n}\n\nfunction relative({\n  root,\n  roots,\n  full,\n}: {\n  root?: string;\n  roots?: Record<string, string>;\n  full: string;\n}): DisplayPathParts {\n  if (root && full.startsWith(root)) {\n    const path = full.slice(root.length);\n    const rel = path.startsWith(\"/\") ? path.slice(\"/\".length) : path;\n    return new DisplayPathParts({ root: { prefix: root }, path: rel });\n  } else if (roots) {\n    for (const [key, value] of Object.entries(roots)) {\n      if (full.startsWith(value)) {\n        const path = full.slice(value.length);\n        const r = path.startsWith(\"/\") ? path.slice(\"/\".length) : path;\n        return new DisplayPathParts({\n          root: { name: key, prefix: value },\n          path: r,\n        });\n      }\n    }\n  }\n\n  return new DisplayPathParts({ path: full });\n}\n","import type * as interfaces from \"@starbeam/interfaces\";\nimport { getID } from \"@starbeam/shared\";\nimport { exhaustive, expected, isEqual, verify } from \"@starbeam/verify\";\nimport ansicolor from \"ansicolor\";\n\nimport { DisplayStruct } from \"../inspect/display-struct.js\";\nimport { DisplayParts } from \"../module.js\";\nimport { type Stack, callerStack } from \"../stack.js\";\n\n/**\n * This symbol is used in APIs that accept an ID to indicate that an existing ID should be reused.\n * This value should never be used as an ID.\n */\nexport const REUSE_ID = Symbol.for(\"starbeam.id:reuse\");\nexport type REUSE_ID = typeof REUSE_ID;\n\n/**\n * This symbol is used in production mode to indicate that there is no description available. This\n * value should never be used as an ID.\n */\nexport const ERASED_ID = Symbol.for(\"starbeam.id:erased\");\nexport type ERASED_ID = typeof ERASED_ID;\n\nlet PickedDescription: DescriptionStatics;\n\nexport interface DescriptionStatics {\n  is: (description: unknown) => description is interfaces.Description;\n  from: (args: interfaces.DescriptionArgs) => interfaces.Description;\n}\n\nif (import.meta.env.DEV) {\n  class DebugDescription\n    implements interfaces.Description, interfaces.DescriptionArgs\n  {\n    /**\n     * The {@linkcode DescriptionArgs.api} is the user-facing, public API entry point that the developer used to\n     * construct the thing that this description is describing. For example, the `useSetup` hook in\n     * `@starbeam/react` has the type \"resource\" and the api \"useStarbeam\".\n     */\n    readonly #api: string | interfaces.ApiDetails | undefined;\n    /**\n     * Optional additional details, provided by the end user. The `DescriptionDetails` may represent a\n     * part of a parent description (see {@linkcode MemberDescription},\n     * {@linkcode MethodDescription}). In those cases, they are still rooted in end-user supplied\n     * description details .\n     */\n    readonly #details: interfaces.DescriptionDetails | undefined;\n\n    readonly #id: interfaces.ReactiveId;\n\n    #internal:\n      | {\n          reason?: string | undefined;\n          userFacing: Description;\n        }\n      | undefined;\n\n    #stack?: Stack | undefined;\n\n    /**\n     * The type is a high-level categorization from the perspective of Starbeam. It is used in\n     * developer tools to decide how to render the description.\n     */\n    readonly #type: interfaces.DescriptionType;\n\n    static from(args: interfaces.DescriptionArgs): interfaces.Description {\n      if (DebugDescription.is(args)) {\n        return args;\n      } else if (DebugDescription.is(args.fromUser)) {\n        return args.fromUser;\n      }\n\n      return new DebugDescription(\n        args.id ?? getID(),\n        args.type,\n        args.api,\n        args.fromUser,\n        args.internal,\n        args.stack\n      ) as Description;\n    }\n\n    static is(description: unknown): description is interfaces.Description {\n      return !!(description && description instanceof DebugDescription);\n    }\n\n    constructor(\n      id: interfaces.ReactiveId,\n      type: interfaces.DescriptionType,\n      api: string | interfaces.ApiDetails | undefined,\n      details: interfaces.DescriptionDetails | undefined,\n      internal:\n        | { reason?: string | undefined; userFacing: Description }\n        | undefined,\n      stack: Stack | undefined\n    ) {\n      this.#id = id;\n      this.#type = type;\n      this.#api = api;\n      this.#details = details;\n      this.#internal = internal;\n      this.#stack = stack;\n    }\n\n    get api(): string | interfaces.ApiDetails | undefined {\n      return this.#api ?? this.#parent?.api;\n    }\n\n    get #apiPart(): interfaces.ApiDetails | undefined {\n      if (typeof this.#api === \"string\") {\n        return {\n          name: this.#api,\n        };\n      } else {\n        return this.#api;\n      }\n    }\n\n    get #detailsPart(): interfaces.DetailsPart {\n      if (typeof this.#details === \"string\") {\n        return { type: \"value\", name: this.#details };\n      } else if (this.#details === undefined) {\n        return { type: \"anonymous\" };\n      } else {\n        return this.#details;\n      }\n    }\n\n    get frame(): interfaces.StackFrame | undefined {\n      return this.#stack?.caller;\n    }\n\n    get fromUser(): string {\n      if (this.#details) {\n        if (typeof this.#details === \"string\") {\n          return this.#details;\n        } else {\n          switch (this.#details.type) {\n            case \"member\":\n              switch (this.#details.kind) {\n                case \"index\":\n                  return `[${this.#details.name}]`;\n                case \"property\":\n                  return `.${this.#details.name}`;\n                case \"key\": {\n                  return `->${this.#details.name}`;\n                }\n              }\n\n            case \"detail\": {\n              const detail = ansicolor.dim(`->${this.#details.name}`);\n\n              if (this.#details.args) {\n                return `${detail}(${this.#details.args\n                  .map((a) => ansicolor.magenta(a))\n                  .join(\", \")})`;\n              } else {\n                return detail;\n              }\n            }\n\n            case \"method\":\n              return `.${this.#details.name}()`;\n\n            default:\n              exhaustive(this.#details);\n          }\n        }\n      } else {\n        return `{anonymous ${this.type}}`;\n      }\n    }\n\n    get fullName(): string {\n      if (this.#details !== undefined) {\n        if (typeof this.#details === \"string\") {\n          return this.#details;\n        } else {\n          return `${this.#details.parent.fullName}${this.fromUser}`;\n        }\n      } else {\n        return `{${this.#idName}:anonymous ${this.type}}`;\n      }\n    }\n\n    get id(): interfaces.ReactiveId {\n      return this.#id;\n    }\n\n    get #idName(): string {\n      if (typeof this.#id === \"string\" || typeof this.#id === \"number\") {\n        return String(this.#id);\n      } else {\n        return this.#id.map(String).join(\"/\");\n      }\n    }\n\n    get isAnonymous(): boolean {\n      return this.#details === undefined;\n    }\n\n    get #parent(): interfaces.Description | undefined {\n      if (typeof this.#details === \"object\") {\n        return this.#details.parent;\n      }\n    }\n\n    get parts(): interfaces.DescriptionParts {\n      return {\n        type: this.#type,\n        id: this.#id,\n        api: this.#apiPart,\n        details: this.#detailsPart,\n        userFacing: this.#userFacingDesc,\n        frame: this.#stack?.caller,\n        stack: this.#stack?.stack,\n        internal: this.#internal,\n      };\n    }\n\n    get type(): interfaces.DescriptionType {\n      return this.#type;\n    }\n\n    get userFacing(): interfaces.Description {\n      if (this.#internal) {\n        return this.#internal.userFacing;\n      } else {\n        return this as interfaces.Description;\n      }\n    }\n    get #userFacingDesc(): interfaces.Description {\n      return (this.#internal?.userFacing ?? this) as interfaces.Description;\n    }\n\n    [Symbol.for(\"nodejs.util.inspect.custom\")](): object {\n      return DisplayStruct(\"Description\", {\n        id: this.#id,\n        type: this.#type,\n        api: this.#api,\n        details: this.#details,\n        internal: this.#internal,\n        stack: this.#stack,\n      });\n    }\n\n    asImplementation(options?: { reason: string }): interfaces.Description {\n      return new DebugDescription(\n        this.#id,\n        this.#type,\n        this.#api,\n        this.#details,\n        {\n          reason: options?.reason,\n          userFacing: this.#parent ?? this,\n        },\n        this.#stack\n      );\n    }\n\n    #caller(options?: interfaces.DescriptionDescribeOptions): string {\n      const caller = this.#stack?.caller;\n\n      if (caller !== undefined) {\n        return caller.display(options);\n      } else {\n        return \"<unknown>\";\n      }\n    }\n\n    describe(options: interfaces.DescriptionDescribeOptions = {}): string {\n      const name = this.#name(options);\n\n      if (this.#internal) {\n        const desc = this.#internal.reason\n          ? ansicolor.dim(`[${this.#internal.reason}]`)\n          : ansicolor.dim(\"[internals]\");\n        return `${name} ${desc}`;\n      } else {\n        return name;\n      }\n    }\n\n    detail(\n      this: DebugDescription,\n      name: string,\n      args?: string[] | { args?: string[]; note?: string; id?: string | number }\n    ): interfaces.Description {\n      let detailArgs: string[] | undefined;\n      let note: string | undefined;\n      let id: interfaces.ReactiveId;\n\n      if (Array.isArray(args)) {\n        detailArgs = args;\n        id = this.#extendId(name);\n      } else if (args) {\n        detailArgs = args.args;\n        note = args.note;\n        id = this.#extendId(args.id ?? name);\n      } else {\n        id = this.#extendId(name);\n      }\n\n      return new DebugDescription(\n        id,\n        \"formula\",\n        this.#api,\n        {\n          type: \"detail\",\n          parent: this,\n          name,\n          args: detailArgs,\n          note,\n        },\n        undefined,\n        this.#stack\n      );\n    }\n\n    #extendId(id: interfaces.ReactiveId | REUSE_ID): interfaces.ReactiveId {\n      if (id === REUSE_ID) {\n        return this.#id;\n      } else if (Array.isArray(this.#id)) {\n        return [...this.#id, id];\n      } else {\n        return [this.#id, id];\n      }\n    }\n\n    implementation(\n      id: interfaces.ReactiveId | symbol,\n      details?: {\n        reason?: string;\n        userFacing?: interfaces.Description;\n        stack?: Stack;\n      }\n    ): DebugDescription {\n      if (typeof id === \"symbol\") {\n        verify(\n          id,\n          isEqual(REUSE_ID),\n          expected(\"symbol passed to implementation()\").toBe(\"REUSE_ID\")\n        );\n      }\n\n      return new DebugDescription(\n        this.#extendId(id),\n        this.#type,\n        this.#api,\n        this.#details,\n        {\n          reason: details?.reason,\n          userFacing: details?.userFacing ?? this.userFacing,\n        },\n        details?.stack ?? callerStack()\n      );\n    }\n\n    index(this: DebugDescription, index: number): interfaces.Description {\n      return new DebugDescription(\n        this.#extendId(index),\n        \"formula\",\n        this.#api,\n        {\n          type: \"member\",\n          parent: this,\n          kind: \"index\",\n          name: index,\n        },\n        undefined,\n        this.#stack\n      );\n    }\n\n    /**\n     * A key represents a string that the user wrote in their source code. In contrast, `detail`,\n     * represents a user-facing *concept* that created by Starbeam, and `implementation` represents\n     * a concept that normal users don't have enough context to understand (but which can be\n     * revealed by passing `implementation: true` to the debug APIs).\n     */\n    key(\n      this: DebugDescription,\n      name: string,\n      options?: { id?: string | number; note?: string }\n    ): interfaces.Description {\n      return new DebugDescription(\n        this.#extendId(options?.id ? [name, options.id] : name),\n        \"formula\",\n        this.#api,\n        {\n          type: \"member\",\n          kind: \"key\",\n          parent: this,\n          name,\n          note: options?.note,\n        },\n        undefined,\n        this.#stack\n      );\n    }\n\n    method(\n      this: DebugDescription,\n      id: interfaces.ReactiveId | symbol,\n      name: string,\n      args?: interfaces.DescriptionArgument[] | undefined\n    ): interfaces.Description {\n      if (typeof id === \"symbol\") {\n        verify(\n          id,\n          isEqual(REUSE_ID),\n          expected\n            .as(\"symbol passed to desc.method()\")\n            .toBe(\"REUSE_ID\")\n            .butGot((s) => String(s))\n        );\n      }\n\n      return new DebugDescription(\n        this.#newId(id),\n        \"formula\",\n        this.#api,\n        {\n          type: \"method\",\n          parent: this,\n          name,\n          args,\n        },\n        undefined,\n        this.#stack\n      );\n    }\n\n    #name(options: interfaces.DescriptionDescribeOptions): string {\n      const getName = (): string => {\n        if ((this.isAnonymous || options.source) ?? false) {\n          return `${this.fullName} @ ${this.#caller(options)}`;\n        } else {\n          return this.fullName;\n        }\n      };\n\n      const name = getName();\n\n      if (!this.isAnonymous && options.id) {\n        return `${name} (${this.#idName})`;\n      } else {\n        return name;\n      }\n    }\n\n    #newId(id: interfaces.ReactiveId | REUSE_ID): interfaces.ReactiveId {\n      return id === REUSE_ID ? this.#id : id;\n    }\n\n    property(this: DebugDescription, name: string): interfaces.Description {\n      return new DebugDescription(\n        this.#extendId(name),\n        \"formula\",\n        this.#api,\n        {\n          type: \"member\",\n          parent: this,\n          kind: \"property\",\n          name,\n        },\n        undefined,\n        this.#stack\n      );\n    }\n\n    withId(id?: interfaces.ReactiveId): interfaces.Description {\n      if (id === undefined) {\n        return this as interfaces.Description;\n      }\n\n      return new DebugDescription(\n        id,\n        this.#type,\n        this.#api,\n        this.#details,\n        this.#internal,\n        this.#stack\n      ) as interfaces.Description;\n    }\n\n    withStack(\n      stack: Stack,\n      id: interfaces.ReactiveId | symbol\n    ): interfaces.Description {\n      if (typeof id === \"symbol\") {\n        verify(\n          id,\n          isEqual(REUSE_ID),\n          expected\n            .as(\"symbol passed to withStack\")\n            .toBe(\"REUSE_ID\")\n            .butGot((s) => String(s))\n        );\n      }\n\n      return new DebugDescription(\n        this.#newId(id as REUSE_ID),\n        this.#type,\n        this.#api,\n        this.#details,\n        this.#internal,\n        stack\n      ) as interfaces.Description;\n    }\n  }\n\n  PickedDescription = DebugDescription;\n} else {\n  class ProdDescription implements interfaces.Description {\n    readonly api = \"\";\n\n    readonly frame: interfaces.StackFrame = {\n      starbeamCaller: undefined,\n      parts: () => new DisplayParts({ path: \"\" }),\n      link: () => \"\",\n      display: () => \"\",\n    };\n\n    readonly fromUser = undefined;\n    readonly fullName = \"\";\n    readonly id: interfaces.ReactiveId = \"@starbeam:erased\";\n    readonly internal = undefined;\n    readonly parts: interfaces.DescriptionParts = {\n      api: { name: \"erased\" },\n      id: \"erased\",\n      details: { type: \"anonymous\" },\n      userFacing: this,\n      type: \"erased\",\n      frame: undefined,\n      stack: undefined,\n    };\n\n    readonly stack = undefined;\n    readonly type = \"erased\";\n\n    readonly userFacing = this;\n\n    static PROD = new ProdDescription();\n\n    static from(): interfaces.Description {\n      return ProdDescription.PROD;\n    }\n\n    static is(description: unknown): description is interfaces.Description {\n      return !!(description && description instanceof ProdDescription);\n    }\n\n    asImplementation(): interfaces.Description {\n      return this;\n    }\n\n    describe(): string {\n      return \"\";\n    }\n\n    detail(): interfaces.Description {\n      return this;\n    }\n\n    implementation(): interfaces.Description {\n      return this;\n    }\n\n    index(): interfaces.Description {\n      return this;\n    }\n\n    key(): interfaces.Description {\n      return this;\n    }\n\n    method(): interfaces.Description {\n      return this;\n    }\n\n    property(): interfaces.Description {\n      return this;\n    }\n\n    withId(): interfaces.Description {\n      return this;\n    }\n\n    withStack(): interfaces.Description {\n      return this;\n    }\n  }\n\n  PickedDescription = ProdDescription;\n}\n\nexport type Description = interfaces.Description;\nexport const Description: DescriptionStatics = PickedDescription;\n","/// <reference types=\"node\" />\n\nimport { type UnknownFn, getFirst } from \"@starbeam/core-utils\";\nimport type {\n  DescriptionArgs,\n  DescriptionDetails,\n  ReactiveId,\n  Stack as StackProtocol,\n  StackFrame,\n  StackFrameDisplayOptions,\n} from \"@starbeam/interfaces\";\nimport type * as interfaces from \"@starbeam/interfaces\";\nimport { getID } from \"@starbeam/shared\";\nimport { hasType, isObject, verified } from \"@starbeam/verify\";\nimport { default as StackTracey } from \"stacktracey\";\n\nimport { Description } from \"./description/impl.js\";\nimport { inspector } from \"./inspect/inspect-support.js\";\nimport { describeModule } from \"./module.js\";\n\ninterface ErrorWithStack extends Error {\n  stack: string;\n}\n\nexport interface StackStatics {\n  readonly EMPTY: StackProtocol;\n\n  create: (this: void, internal?: number) => StackProtocol;\n  fromStack: (stack: string) => StackProtocol;\n\n  from: ((error: ErrorWithStack) => StackProtocol) &\n    ((error: unknown) => StackProtocol | null);\n\n  id: (\n    this: void,\n    description?: string | Description | { id: ReactiveId }\n  ) => ReactiveId;\n\n  description: (\n    this: void,\n    args: DescriptionArgs & {\n      fromUser?:\n        | string\n        | DescriptionDetails\n        | interfaces.Description\n        | undefined;\n    },\n    internal?: number\n  ) => interfaces.Description;\n\n  desc: (\n    type: interfaces.DescriptionType,\n    fromUser?: string | DescriptionDetails | interfaces.Description | undefined,\n    internal?: number | undefined\n  ) => interfaces.Description;\n\n  fromCaller: (this: void, internal?: number) => StackProtocol;\n\n  replaceFrames: (error: unknown, fromStack: StackProtocol) => void;\n\n  /**\n   * Erase an abstraction from the call stack so the test error points at the user code, rather than\n   * the abstraction's code.\n   *\n   * Call a callback, and if the callback throws an exception, remove the current frame and all of the\n   * frames invoked by the current frame from the call stack.\n   *\n   * If you want to erase additional **caller** frames (because the code that calls the callback is\n   * not the direct call site from user code), you can specify an additional number of frames to erase\n   * using the `internal` parameter.\n   */\n  entryPoint: <T>(\n    this: void,\n    callback: () => T,\n    options?: { internal?: number; stack?: StackProtocol }\n  ) => T;\n}\n\nlet PickedStack: StackStatics;\n\nconst MISSING = -1;\nconst START = 0;\n\nif (import.meta.env.DEV) {\n  Error.stackTraceLimit = 1000;\n\n  class ParsedStack {\n    static empty(): ParsedStack {\n      return new ParsedStack(\"\", \"\", \"\", []);\n    }\n\n    static parse({ stack }: { stack: string }): ParsedStack {\n      const parsed = new StackTracey(stack);\n      const frames = parsed.items;\n\n      const [firstFrame] = frames;\n\n      if (firstFrame === undefined) {\n        return new ParsedStack(stack, stack, \"\", []);\n      }\n\n      const first = firstFrame.beforeParse;\n      const lines = stack.split(\"\\n\");\n\n      const offset = lines.findIndex((line) => line.trim() === first);\n\n      if (offset === MISSING) {\n        throw Error(\n          `An assumption was incorrect: A line that came from StackTracey cannot be found in the original trace.\\n\\n== Stack ==\\n\\n${stack}\\n\\n== Line ==\\n\\n${first}`\n        );\n      }\n\n      // the header is all of the lines before the offset\n      const header = lines.slice(START, offset).join(\"\\n\");\n      const rest = lines.slice(offset).join(\"\\n\");\n\n      return new ParsedStack(\n        stack,\n        header,\n        rest,\n        frames.map((f) => StackFrame.from(parsed, f))\n      );\n    }\n\n    static {\n      inspector(this, \"ParsedStack\").define((stack, debug) =>\n        debug.struct({\n          header: stack.#header,\n          frames: stack.#frames.map((f) => f.parts().display()),\n          rest: stack.#rest,\n        })\n      );\n    }\n\n    readonly #source: string;\n    readonly #header: string;\n    readonly #rest: string;\n    readonly #frames: readonly StackFrame[];\n\n    private constructor(\n      source: string,\n      header: string,\n      rest: string,\n      frames: readonly StackFrame[]\n    ) {\n      this.#source = source;\n      this.#header = header;\n      this.#rest = rest;\n      this.#frames = frames;\n    }\n\n    get header(): string {\n      return this.#header;\n    }\n\n    get entries(): readonly StackFrame[] {\n      return this.#frames;\n    }\n\n    /**\n     * The formatted stack trace, suitable to be attached to `error.stack`.\n     */\n    get stack(): string {\n      return `${this.#header}\\n${this.#rest}`;\n    }\n\n    replaceFrames(stack: ParsedStack): ParsedStack {\n      return new ParsedStack(\n        this.#source,\n        this.#header,\n        stack.#rest,\n        stack.#frames\n      );\n    }\n\n    slice(n: number): ParsedStack {\n      const rest = this.#rest.split(\"\\n\").slice(n).join(\"\\n\");\n      return new ParsedStack(\n        this.#source,\n        this.#header,\n        rest,\n        this.#frames.slice(n)\n      );\n    }\n  }\n\n  const REPLACED_ERRORS = new WeakSet<ErrorWithStack>();\n  const INITIAL_INTERNAL_FRAMES = 0;\n  const INITIAL_ENTRY_POINT_FRAMES = 1;\n  const CALLER = 1;\n  const ABSTRACTION_CALLER = 2;\n\n  class DebugStack implements StackProtocol {\n    static EMPTY = new DebugStack(ParsedStack.empty());\n\n    static create(this: void, internal = INITIAL_INTERNAL_FRAMES): DebugStack {\n      const ErrorClass = Error;\n\n      if (\"captureStackTrace\" in ErrorClass) {\n        const err = {} as { stack: string };\n        ErrorClass.captureStackTrace(err, DebugStack.create);\n\n        return DebugStack.fromStack(err.stack).slice(internal);\n      } else {\n        const stack = Error(\n          \"An error created in the internals of Stack.create\"\n        ).stack;\n        return DebugStack.fromStack(verified(stack, hasType(\"string\"))).slice(\n          internal + CALLER\n        );\n      }\n    }\n\n    static fromCaller(\n      this: void,\n      internal = INITIAL_INTERNAL_FRAMES\n    ): DebugStack {\n      // Remove *this* `fromCaller` frame from the stack *and* the caller's frame\n      return DebugStack.create(internal + ABSTRACTION_CALLER);\n    }\n\n    static fromStack(stack: string): DebugStack {\n      return new DebugStack(ParsedStack.parse({ stack }));\n    }\n\n    /**\n     * Replace the stack frames in the specified error with the stack frames from the specified stack,\n     * but leave the header from the specified error.\n     *\n     * If the error is not an Error with a stack, this function does nothing.\n     */\n    static replaceFrames(error: unknown, fromStack: Stack): void {\n      if (isErrorWithStack(error)) {\n        const errorStack = DebugStack.from(error);\n        errorStack.withReplacedFrames(fromStack as DebugStack);\n        error.stack = errorStack.stack;\n      }\n    }\n\n    static from(error: ErrorWithStack): DebugStack;\n    static from(error: unknown): DebugStack | null;\n    static from(error: unknown): DebugStack | null {\n      if (isErrorWithStack(error)) {\n        return new DebugStack(ParsedStack.parse(error));\n      } else {\n        return null;\n      }\n    }\n\n    static description(\n      args: DescriptionArgs & {\n        fromUser?:\n          | string\n          | DescriptionDetails\n          | interfaces.Description\n          | undefined;\n      },\n      internal = INITIAL_INTERNAL_FRAMES\n    ): interfaces.Description {\n      const stack = DebugStack.fromCaller(internal + CALLER);\n      const fromUser = args.fromUser;\n\n      const api: string | interfaces.ApiDetails | undefined = args.api ?? {};\n\n      if (typeof api !== \"string\" && api.package === undefined) {\n        const starbeam = stack.caller?.starbeamCaller;\n\n        if (starbeam) {\n          api.package = starbeam.package;\n          api.name = starbeam.name;\n        }\n      }\n\n      if (fromUser === undefined || typeof fromUser === \"string\") {\n        return Description.from({ ...args, stack });\n      } else if (Description.is(fromUser)) {\n        return fromUser.withId(args.id);\n      } else {\n        return Description.from({ ...args, stack });\n      }\n    }\n\n    static desc(\n      type: interfaces.DescriptionType,\n      fromUser?:\n        | string\n        | DescriptionDetails\n        | interfaces.Description\n        | undefined,\n      internal = INITIAL_INTERNAL_FRAMES\n    ): interfaces.Description {\n      return DebugStack.description(\n        {\n          type,\n          fromUser,\n        },\n        internal + CALLER\n      );\n    }\n\n    static id(\n      this: void,\n      description?: string | { id: ReactiveId }\n    ): ReactiveId {\n      if (description === undefined || typeof description === \"string\") {\n        return getID();\n      } else {\n        return description.id;\n      }\n    }\n\n    static callerFrame(\n      internal = INITIAL_INTERNAL_FRAMES\n    ): StackFrame | undefined {\n      return DebugStack.fromCaller(internal + CALLER).caller;\n    }\n\n    static entryPoint<T>(\n      callback: () => T,\n      {\n        internal = INITIAL_ENTRY_POINT_FRAMES,\n        stack = DebugStack.create(CALLER + internal),\n      }: { internal?: number; stack?: StackProtocol } = {}\n    ): T {\n      try {\n        return callback();\n      } catch (e) {\n        if (isErrorWithStack(e) && !REPLACED_ERRORS.has(e)) {\n          const errorStack = DebugStack.from(e);\n\n          const updated = errorStack.withReplacedFrames(stack as DebugStack);\n          e.stack = updated.stack;\n          REPLACED_ERRORS.add(e);\n        }\n        throw e;\n      }\n    }\n\n    #parsed: ParsedStack;\n\n    constructor(parsed: ParsedStack) {\n      this.#parsed = parsed;\n    }\n\n    get entries(): readonly StackFrame[] {\n      return this.#parsed.entries;\n    }\n\n    get caller(): StackFrame | undefined {\n      return getFirst(this.#parsed.entries);\n    }\n\n    get header(): string {\n      return this.#parsed.header;\n    }\n\n    /**\n     * The formatted stack trace, suitable to be attached to `error.stack`.\n     */\n    get stack(): string {\n      return this.#parsed.stack;\n    }\n\n    /**\n     * Replace the stack frames with the current Stack with the frames from the given Stack, but keep\n     * the same header.\n     */\n    withReplacedFrames(stack: DebugStack): DebugStack {\n      return new DebugStack(this.#parsed.replaceFrames(stack.#parsed));\n    }\n\n    slice(n: number): DebugStack {\n      if (n === START) {\n        return this;\n      } else {\n        return new DebugStack(this.#parsed.slice(n));\n      }\n    }\n  }\n\n  PickedStack = DebugStack;\n\n  class StackFrame implements interfaces.StackFrame {\n    static from(stack: StackTracey, frame: StackTracey.Entry): StackFrame {\n      return new StackFrame(stack, frame, null);\n    }\n\n    static {\n      inspector(this, \"StackFrame\").define((frame, debug) =>\n        debug.struct({ original: frame.parts().display() })\n      );\n    }\n\n    #stack: StackTracey;\n    #frame: StackTracey.Entry;\n    #reified: StackTracey.Entry | null;\n\n    private constructor(\n      stack: StackTracey,\n      frame: StackTracey.Entry,\n      reified: StackTracey.Entry | null\n    ) {\n      this.#stack = stack;\n      this.#frame = frame;\n      this.#reified = reified;\n    }\n\n    get starbeamCaller():\n      | { package: string; name?: string | undefined }\n      | undefined {\n      const frame = this.#reify();\n\n      const pkg = /(@starbeam\\/[/]+)/.exec(frame.file) as\n        | (RegExpExecArray & [string, string])\n        | undefined;\n\n      if (pkg) {\n        return {\n          // eslint-disable-next-line @typescript-eslint/no-magic-numbers\n          package: pkg[1],\n          name: frame.callee === \"\" ? undefined : frame.callee,\n        };\n      }\n    }\n\n    get action(): string {\n      return this.#reify().callee;\n    }\n\n    get loc(): { line: number; column?: number | undefined } | undefined {\n      const entry = this.#reify();\n\n      if (entry.line === undefined) {\n        return undefined;\n      }\n\n      return { line: entry.line, column: entry.column };\n    }\n\n    get debug(): StackTracey.Entry {\n      return this.#reify();\n    }\n\n    #reify(): StackTracey.Entry {\n      let reified = this.#reified;\n\n      if (!reified) {\n        this.#reified = reified = this.#stack.withSource(this.#frame);\n      }\n\n      return reified;\n    }\n\n    link(options?: StackFrameDisplayOptions): string {\n      if (options?.complete) {\n        return this.#stack.items.map((entry) => entry.beforeParse).join(\"\\n\");\n      }\n\n      const module = describeModule(this.#reify().file);\n      return module.display({ loc: this.loc }, options);\n    }\n\n    fullStack(): string {\n      return this.#stack.asTable();\n    }\n\n    display(options?: StackFrameDisplayOptions): string {\n      const module = describeModule(this.#reify().file);\n      return module.display({ action: this.action, loc: this.loc }, options);\n    }\n\n    parts(\n      options?: StackFrameDisplayOptions | undefined\n    ): interfaces.DisplayParts {\n      const module = describeModule(this.#reify().file);\n      return module.parts({ action: this.action, loc: this.loc }, options);\n    }\n  }\n} else {\n  /**\n   * A stub implementation of the `Stack` infrastructure that doesn't do anything.\n   */\n  class ProdStack implements StackProtocol {\n    static EMPTY = new ProdStack();\n\n    static create(this: void): StackProtocol {\n      return ProdStack.EMPTY;\n    }\n\n    static fromStack(this: void): StackProtocol {\n      return ProdStack.EMPTY;\n    }\n\n    static from(error: ErrorWithStack): StackProtocol;\n    static from(error: unknown): StackProtocol | null;\n    static from(): StackProtocol | null {\n      return ProdStack.EMPTY;\n    }\n\n    static replaceFrames(): void {\n      return;\n    }\n\n    static description(\n      args: DescriptionArgs & {\n        fromUser?:\n          | string\n          | DescriptionDetails\n          | interfaces.Description\n          | undefined;\n      }\n    ): interfaces.Description {\n      return Description.from({ ...args, stack: ProdStack.EMPTY });\n    }\n\n    static desc(\n      type: interfaces.DescriptionType,\n      fromUser?:\n        | string\n        | DescriptionDetails\n        | interfaces.Description\n        | undefined\n    ): interfaces.Description {\n      return ProdStack.description({\n        type,\n        stack: ProdStack.EMPTY,\n        fromUser,\n      });\n    }\n\n    static id(): ReactiveId {\n      return getID();\n    }\n\n    static callerFrame(): StackFrame | undefined {\n      return undefined;\n    }\n\n    static fromCaller(): StackProtocol {\n      return ProdStack.EMPTY;\n    }\n\n    static entryPoint<T>(callback: () => T): T {\n      return callback();\n    }\n\n    readonly caller: StackFrame | undefined = undefined;\n    readonly stack: string = \"\";\n  }\n\n  PickedStack = ProdStack;\n}\n\nexport const Stack: StackStatics = PickedStack;\nexport type Stack = interfaces.Stack;\nexport const entryPoint = PickedStack.entryPoint;\n\nexport function entryPointFn<F extends UnknownFn>(\n  fn: F,\n  options?: { stack: Stack }\n): F {\n  return ((...args: unknown[]) =>\n    entryPoint(() => fn(...args), { internal: 1, ...options })) as F;\n}\n\nexport function entryPoints<Funcs extends object>(\n  funcs: Funcs,\n  options?: { stack: Stack }\n): Funcs {\n  const result = Object.create(null) as Record<string, UnknownFn>;\n\n  for (const [key, fn] of Object.entries(funcs) as [string, UnknownFn][]) {\n    if (typeof fn === \"function\") {\n      result[key] = entryPointFn(fn, options);\n    } else {\n      result[key] = fn;\n    }\n  }\n\n  return result as Funcs;\n}\n\n/** This should be convertable to something like Description.EMPTY in prod builds  */\nexport const descriptionFrom = PickedStack.description;\nexport const Desc = PickedStack.desc;\n\n/**\n * If it isn't already removed, this should be convertable to getID in prod builds\n */\nexport const idFrom = PickedStack.id;\n\nexport const callerStack: (this: void, internal?: number) => StackProtocol =\n  PickedStack.fromCaller;\n\nexport function isErrorWithStack(error: unknown): error is ErrorWithStack {\n  return (\n    isObject(error) && error instanceof Error && typeof error.stack === \"string\"\n  );\n}\n","export enum LogLevel {\n  Trace = 0,\n  Debug = 1,\n  Info = 2,\n  Warn = 3,\n  Error = 4,\n  Fatal = 5,\n}\n\nexport class LoggerAsLevel {\n  #logger: Logger;\n  #level: LogLevel;\n  #config: LoggerConfig;\n\n  constructor(logger: Logger, level: LogLevel, config: LoggerConfig) {\n    this.#logger = logger;\n    this.#level = level;\n    this.#config = config;\n  }\n\n  log = (arg: unknown, ...args: unknown[]): void => {\n    if (this.#level >= this.#config.minimum) {\n      this.#logger.send(this.#level, { args: [arg, ...args] });\n    }\n  };\n\n  get withStack(): LoggerWithStack {\n    return new LoggerWithStack(this.#logger, this.#level, this.#config);\n  }\n}\n\nexport class LoggerWithStack {\n  #logger: Logger;\n  #level: LogLevel;\n  #config: LoggerConfig;\n\n  constructor(logger: Logger, level: LogLevel, config: LoggerConfig) {\n    this.#logger = logger;\n    this.#level = level;\n    this.#config = config;\n  }\n\n  log(arg: unknown, ...args: unknown[]): void {\n    if (this.#level >= this.#config.minimum) {\n      this.#logger.send(this.#level, { args: [arg, ...args], stack: true });\n    }\n  }\n}\n\ninterface LoggerConfig {\n  readonly minimum: LogLevel;\n}\n\nexport class Logger {\n  #console: Console;\n  #config: LoggerConfig;\n\n  readonly trace: LoggerAsLevel;\n  readonly debug: LoggerAsLevel;\n  readonly info: LoggerAsLevel;\n  readonly warn: LoggerAsLevel;\n  readonly error: LoggerAsLevel;\n  readonly fatal: LoggerAsLevel;\n\n  constructor(console: Console, config: LoggerConfig) {\n    this.#console = console;\n    this.#config = config;\n\n    this.trace = new LoggerAsLevel(this, LogLevel.Trace, config);\n    this.debug = new LoggerAsLevel(this, LogLevel.Debug, config);\n    this.info = new LoggerAsLevel(this, LogLevel.Info, config);\n    this.warn = new LoggerAsLevel(this, LogLevel.Warn, config);\n    this.error = new LoggerAsLevel(this, LogLevel.Error, config);\n    this.fatal = new LoggerAsLevel(this, LogLevel.Fatal, config);\n  }\n\n  set level(level: LogLevel) {\n    this.#config = { ...this.#config, minimum: level };\n  }\n\n  get isVerbose(): boolean {\n    return this.#config.minimum === LogLevel.Trace;\n  }\n\n  get isDebug(): boolean {\n    return this.#config.minimum <= LogLevel.Debug;\n  }\n\n  configure(config: Partial<LoggerConfig>): void {\n    Object.assign(this.#config, config);\n  }\n\n  send(\n    level: LogLevel,\n    { args, stack }: { args: unknown[]; stack?: boolean }\n  ): void {\n    if (level === LogLevel.Trace) {\n      if (stack) {\n        this.#console.trace(...args);\n      } else {\n        this.#console.debug(...args);\n      }\n    }\n\n    this.#console.groupCollapsed(\"stack trace\");\n    this.#console.trace();\n    this.#console.groupEnd();\n\n    switch (level) {\n      case LogLevel.Trace:\n        if (stack) {\n          this.#console.trace(...args);\n        } else {\n          this.#console.debug(...args);\n        }\n        break;\n      case LogLevel.Debug:\n        this.#console.debug(...args);\n        break;\n      case LogLevel.Info:\n        this.#console.log(...args);\n        break;\n      case LogLevel.Warn:\n        this.#console.warn(...args);\n        break;\n      case LogLevel.Error:\n        this.#console.error(...args);\n        break;\n      case LogLevel.Fatal:\n        this.#console.error(...args);\n        break;\n    }\n  }\n}\nexport const LOGGER = new Logger(globalThis.console, {\n  minimum: LogLevel.Warn,\n});\n","import { LOGGER } from \"./logger.js\";\n\nconst loggedFunction = {\n  logged: undefined as LoggedFunction | undefined,\n};\n\ntype LoggedFunction = <T>(value: T, log?: (value: T) => void) => T;\n\nif (import.meta.env.DEV) {\n  loggedFunction.logged = <T>(\n    value: T,\n    log: (value: T) => void = LOGGER.info.log\n  ) => {\n    log(value);\n    return value;\n  };\n} else {\n  loggedFunction.logged = <T>(value: T) => value;\n}\n\nexport const logged = loggedFunction.logged;\n","export class Style {\n  static create(property: string, value: string): Style {\n    return new Style(property, value);\n  }\n\n  #property: string;\n  #value: string;\n\n  constructor(property: string, value: string) {\n    this.#property = property;\n    this.#value = value;\n  }\n\n  toCSS(): string {\n    return `${this.#property}: ${this.#value};`;\n  }\n}\n\nexport class Styles {\n  #styles: Style[] = [];\n\n  add(property: string, value: string): void {\n    this.#styles.push(Style.create(property, value));\n  }\n\n  toCSS(): string {\n    return this.#styles.map((style) => style.toCSS()).join(\" \");\n  }\n}\n\nexport class Fragment {\n  #content: string;\n  #styles: Styles = new Styles();\n\n  constructor(content: string) {\n    this.#content = content;\n  }\n\n  css(style: `${string}:${string}`): this {\n    const [property, value] = style.split(\":\") as [string, string];\n    this.#styles.add(property.trim(), value.trim());\n    return this;\n  }\n\n  append(buffer: Buffer): void {\n    buffer.add(this.#content, this.#styles.toCSS());\n  }\n}\n\nexport function Styled(content: string): Fragment {\n  return new Fragment(content);\n}\n\nexport type IntoFragment =\n  | string\n  | [content: string, ...styles: `${string}:${string}`[]];\n\nexport type IntoBlock = IntoFragment[] | \"\";\n\nexport class Block {\n  #fragments: Fragment[] = [];\n\n  add(fragment: Fragment | string): void {\n    if (typeof fragment === \"string\") {\n      this.#fragments.push(new Fragment(fragment));\n    } else {\n      this.#fragments.push(fragment);\n    }\n  }\n\n  appendTo(buffer: Buffer): void {\n    for (const fragment of this.#fragments) {\n      fragment.append(buffer);\n    }\n  }\n}\n\nexport class Blocks {\n  #blocks: Block[] = [];\n\n  add(block: Block | string): void {\n    if (typeof block === \"string\") {\n      const b = new Block();\n      b.add(block);\n      this.#blocks.push(new Block());\n    } else {\n      this.#blocks.push(block);\n    }\n  }\n\n  appendTo(buffer: Buffer): void {\n    for (const block of this.#blocks) {\n      block.appendTo(buffer);\n      buffer.break();\n    }\n  }\n}\n\nexport function Message(\n  into: IntoBlock[],\n  options?: { plain: boolean }\n): unknown[] {\n  const blocks = new Blocks();\n\n  for (const intoBlock of into) {\n    const block = new Block();\n    for (const fragment of intoBlock) {\n      if (typeof fragment === \"string\") {\n        block.add(fragment);\n      } else {\n        const [content, ...styles] = fragment;\n\n        const f = Styled(content);\n\n        for (const style of styles) {\n          f.css(style);\n        }\n\n        block.add(f);\n      }\n    }\n    blocks.add(block);\n  }\n\n  const buffer = new Buffer(options?.plain ?? false);\n\n  blocks.appendTo(buffer);\n\n  return buffer.message();\n}\n\nclass Buffer {\n  static styled(): Buffer {\n    return new Buffer(false);\n  }\n\n  static plain(): Buffer {\n    return new Buffer(true);\n  }\n\n  #message: string[] = [];\n  #current = \"\";\n  #styles: string[] = [];\n  #plain: boolean;\n\n  constructor(plain: boolean) {\n    this.#plain = plain;\n  }\n\n  add(content: string, style?: string): void {\n    if (style && !this.#plain) {\n      this.#current += `%c${content}`;\n      this.#styles.push(style);\n    } else {\n      this.#current += content;\n    }\n  }\n\n  message(): unknown[] {\n    if (this.#current) {\n      this.break();\n    }\n\n    return [this.#message.join(\"\\n\"), ...this.#styles];\n  }\n\n  break(): void {\n    this.#message.push(this.#current);\n    this.#current = \"\";\n  }\n}\n","import type {\n  CompositeInternals,\n  Diff,\n  Frame,\n  MutableInternals,\n  ReactiveInternals,\n  ReactiveProtocol,\n  Stack,\n  Timestamp,\n} from \"@starbeam/interfaces\";\nimport { REACTIVE } from \"@starbeam/shared\";\nimport { exhaustive } from \"@starbeam/verify\";\n\ninterface ReactiveProtocolStatics {\n  dependencies: (reactive: ReactiveProtocol) => Iterable<MutableInternals>;\n}\n\nfunction reactiveInternals(reactive: ReactiveProtocol): ReactiveInternals {\n  return reactive[REACTIVE];\n}\n\ninterface OperationInfo<I extends ReactiveInternals> {\n  readonly at: Timestamp;\n  readonly for: I;\n  readonly caller: Stack;\n}\n\nexport type DebugOperationOptions =\n  | CellConsumeOperation\n  | CellUpdateOperation\n  | FrameConsumeOperation;\n\nexport class LeafOperation<I extends ReactiveInternals> {\n  #data: OperationInfo<I>;\n\n  constructor(data: OperationInfo<I>) {\n    this.#data = data;\n  }\n\n  get at(): Timestamp {\n    return this.#data.at;\n  }\n\n  get caller(): Stack {\n    return this.#data.caller;\n  }\n\n  get for(): I {\n    return this.#data.for;\n  }\n}\n\nexport class CellConsumeOperation extends LeafOperation<MutableInternals> {\n  readonly type = \"cell:consume\";\n}\n\nexport class CellUpdateOperation extends LeafOperation<MutableInternals> {\n  readonly type = \"cell:update\";\n}\n\ninterface FrameConsumeInfo extends OperationInfo<CompositeInternals> {\n  readonly diff: Diff<MutableInternals>;\n  readonly frame: Frame;\n}\n\nexport class FrameConsumeOperation extends LeafOperation<CompositeInternals> {\n  readonly #diff: Diff<MutableInternals>;\n  readonly #frame: Frame;\n  readonly type = \"frame:consume\";\n\n  constructor(data: FrameConsumeInfo) {\n    super(data);\n    this.#diff = data.diff;\n    this.#frame = data.frame;\n  }\n\n  get diff(): Diff<MutableInternals> {\n    return this.#diff;\n  }\n\n  get frame(): Frame {\n    return this.#frame;\n  }\n}\nexport class MutationLog {\n  readonly type = \"mutation\";\n  // This makes `DebugOperation.for` ==== `ReactiveInternals | undefined`, which makes it possible\n  // to easily compare the `for` value without a lot of extra type shenanigans.\n  readonly for: ReactiveInternals | undefined = undefined;\n\n  readonly #at: Timestamp;\n  #description: string;\n  #children = new Set<DebugOperation>();\n  #parent: MutationLog | null;\n\n  constructor(at: Timestamp, description: string, parent: MutationLog | null) {\n    this.#at = at;\n    this.#description = description;\n    this.#parent = parent;\n  }\n\n  get at(): Timestamp {\n    return this.#at;\n  }\n\n  add(child: DebugOperation): void {\n    this.#children.add(child);\n  }\n}\n\nexport type DebugOperation =\n  | CellConsumeOperation\n  | CellUpdateOperation\n  | FrameConsumeOperation\n  | MutationLog;\n\nexport interface Flush {\n  readonly history: DebugOperation[];\n  for: (reactive: ReactiveProtocol) => readonly DebugOperation[];\n}\n\nexport type DebugListener = InstanceType<typeof DebugTimeline.DebugListener>;\n\nexport type DebugFilter =\n  | { type: \"by-reactive\"; reactive: ReactiveProtocol }\n  | { type: \"all\" }\n  | { type: \"none\" };\n\nfunction filterToPredicate(\n  filter: DebugFilter,\n  reactive: ReactiveProtocolStatics\n): ((operation: DebugOperation) => boolean) | undefined {\n  switch (filter.type) {\n    case \"by-reactive\": {\n      const dependencies = reactive.dependencies(filter.reactive);\n      // const dependencies = reactiveDependencies(filter.reactive).children()\n      //   .dependencies;\n\n      return (operation) => {\n        if (operation.for === undefined) {\n          return false;\n        } else if (operation.for.type === \"mutable\") {\n          // if the operation is for a dependency of the reactive we're\n          // filtering by, then it's a match.\n          return [...dependencies].includes(operation.for);\n        } else {\n          return false;\n        }\n      };\n    }\n    case \"all\":\n      return;\n    case \"none\":\n      return () => false;\n    default:\n      exhaustive(filter);\n  }\n}\n\nconst INITIAL_OFFSET = 0;\n\nexport class DebugTimeline {\n  #timestamp: { now: () => Timestamp };\n  #statics: ReactiveProtocolStatics;\n  #trimOffset = INITIAL_OFFSET;\n  #operationList: DebugOperation[] = [];\n  #currentMutation: MutationLog | null = null;\n  #listeners = new Set<DebugListener>();\n\n  static Flush = class Flush {\n    constructor(readonly history: DebugOperation[]) {}\n\n    for(reactive: ReactiveProtocol): DebugOperation[] {\n      const internals = reactiveInternals(reactive);\n      return this.history.filter((item) => item.for === internals);\n    }\n  };\n\n  static DebugListener = class DebugListener {\n    #timeline: DebugTimeline;\n    #offset = INITIAL_OFFSET;\n    #filter: DebugFilter;\n    #notify: () => void;\n\n    constructor(\n      timeline: DebugTimeline,\n      notify: () => void,\n      filter: DebugFilter\n    ) {\n      this.#timeline = timeline;\n      this.#notify = notify;\n      this.#filter = filter;\n    }\n\n    static offset(this: void, listener: DebugListener): number {\n      return listener.#offset;\n    }\n\n    static create(\n      timestamp: { now: () => Timestamp },\n      statics: ReactiveProtocolStatics\n    ): DebugTimeline {\n      return new DebugTimeline(timestamp, statics);\n    }\n\n    static notify(this: void, listener: DebugListener): void {\n      listener.#notify();\n    }\n\n    update(filter: DebugFilter): void {\n      this.#filter = filter;\n    }\n\n    flush(): DebugOperation[] {\n      const flush = this.#timeline.#flush(\n        this.#offset,\n        filterToPredicate(this.#filter, this.#timeline.#statics)\n      );\n      this.#offset = this.#timeline.#end;\n      this.#timeline.#prune();\n\n      return flush.history;\n    }\n\n    detach(): void {\n      this.#timeline.#listeners.delete(this);\n    }\n  };\n\n  static create(\n    timestamp: { now: () => Timestamp },\n    statics: ReactiveProtocolStatics\n  ): DebugTimeline {\n    return new DebugTimeline(timestamp, statics);\n  }\n\n  private constructor(\n    timestamp: { now: () => Timestamp },\n    statics: ReactiveProtocolStatics\n  ) {\n    this.#timestamp = timestamp;\n    this.#statics = statics;\n  }\n\n  get #end(): number {\n    return this.#trimOffset + this.#operationList.length;\n  }\n\n  notify(): void {\n    this.#listeners.forEach(DebugTimeline.DebugListener.notify);\n  }\n\n  attach(\n    notify: () => void,\n    options: { filter: DebugFilter | \"all\" | \"none\" } = { filter: \"all\" }\n  ): DebugListener {\n    const filter: DebugFilter =\n      typeof options.filter === \"string\"\n        ? { type: options.filter }\n        : options.filter;\n\n    const listener = new DebugTimeline.DebugListener(this, notify, filter);\n    this.#listeners.add(listener);\n\n    return listener;\n  }\n\n  #flush(\n    offset: number,\n    filter?: (operation: DebugOperation) => boolean\n  ): Flush {\n    let list = this.#operationList.slice(offset - this.#trimOffset);\n\n    if (filter) {\n      list = list.filter(filter);\n    }\n\n    return new DebugTimeline.Flush(list);\n  }\n\n  #prune(): void {\n    const minOffset = Math.min(\n      ...[...this.#listeners].map(DebugTimeline.DebugListener.offset)\n    );\n\n    const trim = minOffset - this.#trimOffset;\n    this.#operationList = this.#operationList.slice(trim);\n    this.#trimOffset = minOffset;\n  }\n\n  #add(operation: DebugOperation): void {\n    if (this.#currentMutation) {\n      this.#currentMutation.add(operation);\n    } else {\n      this.#operationList.push(operation);\n    }\n  }\n\n  #consumeCell(cell: MutableInternals, caller: Stack): void {\n    this.#add(\n      new CellConsumeOperation({\n        at: this.#timestamp.now(),\n        for: cell,\n        caller,\n      })\n    );\n  }\n\n  consumeCell(internals: MutableInternals, caller: Stack): void {\n    this.#consumeCell(internals, caller);\n  }\n\n  consumeFrame(\n    frame: Frame,\n    diff: Diff<MutableInternals>,\n    caller: Stack\n  ): void {\n    this.#consumeFrame(frame, diff, caller);\n  }\n\n  updateCell(cell: MutableInternals, caller: Stack): void {\n    this.#add(\n      new CellUpdateOperation({\n        at: this.#timestamp.now(),\n        for: cell,\n        caller,\n      })\n    );\n  }\n\n  #consumeFrame(\n    frame: Frame,\n    diff: Diff<MutableInternals>,\n    caller: Stack\n  ): void {\n    this.#add(\n      new FrameConsumeOperation({\n        at: this.#timestamp.now(),\n        for: frame[REACTIVE],\n        diff,\n        caller,\n        frame,\n      })\n    );\n  }\n\n  mutation<T>(description: string, callback: () => T): T {\n    const prev = this.#currentMutation;\n    const operation = new MutationLog(this.#timestamp.now(), description, prev);\n\n    try {\n      this.#currentMutation = operation;\n      const ret = callback();\n      this.#currentMutation = prev;\n      this.#add(operation);\n\n      return ret;\n    } catch (e) {\n      this.#currentMutation = prev;\n      throw e;\n    }\n  }\n}\n","import { getLastIndex } from \"@starbeam/core-utils\";\n\nconst VBAR = \"│\";\nconst NEXT = \"├\";\nconst LAST = \"╰\";\n\ntype Leaf = string;\ntype ParentNode = [label: string, ...children: Node[]];\ntype Node = Leaf | ParentNode;\n\nexport class Root {\n  #root: Node[];\n\n  constructor(root: Node[]) {\n    this.#root = root;\n  }\n\n  format(): string {\n    return formatChildren(this.#root, { depth: 0 });\n  }\n}\n\nexport function Tree(...root: Node[]): Root {\n  return new Root(root);\n}\n\nfunction formatNode(\n  node: Node,\n  { depth, isLast }: { depth: number; isLast: boolean }\n): string {\n  if (typeof node === \"string\") {\n    return formatLeaf(node, { depth, isLast });\n  } else {\n    return formatParent(node, { depth, isLast });\n  }\n}\n\nfunction formatChildren(\n  children: Node[],\n  { depth }: { depth: number }\n): string {\n  const lastIndex = getLastIndex(children);\n\n  return children\n    .map((child, index) => {\n      const isLast = index === lastIndex;\n      return formatNode(child, { depth, isLast });\n    })\n    .join(\"\\n\");\n}\n\nconst ONE_DEEPER = 1;\n\nfunction formatParent(\n  [label, ...children]: ParentNode,\n  { depth }: { depth: number; isLast: boolean }\n): string {\n  const title = `${prefix({ depth, isLast: false })} ${label}`;\n\n  return `${title}\\n${formatChildren(children, {\n    depth: depth + ONE_DEEPER,\n  })}`;\n}\n\nfunction formatLeaf(\n  value: string,\n  { depth, isLast }: { depth: number; isLast: boolean }\n): string {\n  return `${prefix({ depth, isLast })} ${value}`;\n}\n\nfunction indent(depth: number): string {\n  return `${VBAR} `.repeat(depth);\n}\n\nfunction prefix({ depth, isLast }: { depth: number; isLast: boolean }): string {\n  if (isLast) {\n    return `${indent(depth)}${LAST}`;\n  } else {\n    return `${indent(depth)}${NEXT}`;\n  }\n}\n\n/**\n * Source material:\n *\n * https://github.com/zkat/miette/blob/1a36fa7ec80de77e910e04cdb902270970611b39/src/handlers/theme.rs\n *         Self {\n            hbar: '─',\n            vbar: '│',\n            xbar: '┼',\n            vbar_break: '·',\n            uarrow: '▲',\n            rarrow: '▶',\n            ltop: '╭',\n            mtop: '┬',\n            rtop: '╮',\n            lbot: '╰',\n            mbot: '┴',\n            rbot: '╯',\n            lbox: '[',\n            rbox: ']',\n            lcross: '├',\n            rcross: '┤',\n            underbar: '┬',\n            underline: '─',\n            error: \"💥\".into(),\n            warning: \"⚠️\".into(),\n            advice: \"💡\".into(),\n        }\n */\n","import \"./src/setup.js\";\n\nimport { descriptionFrom } from \"./src/stack.js\";\n\nexport { Description, REUSE_ID } from \"./src/description/impl.js\";\nexport {\n  type DisplayStructOptions,\n  DisplayStruct,\n} from \"./src/inspect/display-struct.js\";\nexport {\n  type Inspect,\n  DEBUG,\n  DEBUG_NAME,\n  INSPECT,\n  inspect,\n  inspector,\n} from \"./src/inspect/inspect-support.js\";\nexport { logged } from \"./src/logged.js\";\nexport { type Logger, LOGGER, LogLevel } from \"./src/logger.js\";\nexport {\n  Block,\n  Fragment,\n  Message,\n  Style,\n  Styled,\n  Styles,\n} from \"./src/message.js\";\nexport { type DisplayParts, describeModule } from \"./src/module.js\";\nexport {\n  callerStack,\n  Desc,\n  descriptionFrom,\n  entryPoint,\n  entryPointFn,\n  entryPoints,\n  idFrom,\n  isErrorWithStack,\n  Stack,\n} from \"./src/stack.js\";\nexport {\n  type CellConsumeOperation,\n  type CellUpdateOperation,\n  type DebugFilter,\n  type DebugListener,\n  type DebugOperation,\n  type Flush,\n  type FrameConsumeOperation,\n  type MutationLog,\n  DebugTimeline,\n} from \"./src/timeline.js\";\nexport { Tree } from \"./src/tree.js\";\nexport type {\n  ApiDetails,\n  DescriptionArgs,\n  DescriptionDetails,\n  DescriptionParts,\n  DescriptionType,\n  DetailDescription,\n  DetailsPart,\n  MemberDescription,\n} from \"@starbeam/interfaces\";\n\nexport const defaultDescription = descriptionFrom({\n  id: NaN,\n  type: \"erased\",\n  api: \"anonymous\",\n});\n"],"names":["globalThis","Buffer","undefined","require","buffer","_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","_classApplyDescriptorSet","receiver","descriptor","set","call","TypeError","_classExtractFieldDescriptor","privateMap","action","has","get","_classPrivateFieldSet","classExtractFieldDescriptor","classApplyDescriptorSet","_classApplyDescriptorGet","_classPrivateFieldGet","classApplyDescriptorGet","DisplayStruct","name","fields","options","displayName","description","JSON","stringify","constructor","object","entries","INSPECT","Symbol","for","DEBUG","DEBUG_NAME","_name","Debug","create","_classPrivateFieldInitSpec","stylize","text","styleType","struct","inspector","Class","define","callback","prototype","_depth","inspect","isObject","args","describeModule","module","DescribedModule","parse","_root","DisplayPathParts","path","root","finish","DisplayParts","loc","display","formatLoc","parts","debug","location","hasLoc","hasAction","isPresentString","column","line","DescribedModulePath","relative","full","normalize","DescribedPackage","scope","pkg","push","SOURCE_PARTS","startsWith","groups","exec","pathParts","filter","hasType","map","p","replaceAll","join","roots","slice","length","rel","prefix","r","REUSE_ID","PickedDescription","_stack","_parent","DebugDescription","from","is","fromUser","id","getID","type","api","internal","stack","details","_classPrivateMethodInitSpec","frame","caller","kind","detail","ansicolor","dim","a","magenta","exhaustive","fullName","parent","isAnonymous","userFacing","asImplementation","reason","describe","_classPrivateMethodGet","desc","detailArgs","note","Array","isArray","implementation","verify","isEqual","expected","toBe","callerStack","index","method","as","butGot","s","String","property","withId","withStack","getName","source","Description","PickedStack","MISSING","START","Error","stackTraceLimit","ParsedStack","empty","parsed","StackTracey","frames","items","firstFrame","first","beforeParse","lines","split","offset","findIndex","trim","header","rest","f","StackFrame","replaceFrames","n","REPLACED_ERRORS","WeakSet","INITIAL_INTERNAL_FRAMES","INITIAL_ENTRY_POINT_FRAMES","CALLER","ABSTRACTION_CALLER","DebugStack","ErrorClass","err","captureStackTrace","fromStack","verified","fromCaller","error","isErrorWithStack","errorStack","withReplacedFrames","package","starbeam","starbeamCaller","callerFrame","entryPoint","e","updated","add","getFirst","_frame","reified","file","callee","entry","link","complete","fullStack","asTable","withSource","original","Stack","entryPointFn","fn","entryPoints","funcs","result","descriptionFrom","Desc","idFrom","LogLevel","LoggerAsLevel","logger","level","config","arg","minimum","send","LoggerWithStack","log","Logger","console","trace","Trace","info","Info","warn","Warn","fatal","Fatal","isVerbose","isDebug","configure","assign","groupCollapsed","groupEnd","LOGGER","loggedFunction","logged","Style","toCSS","Styles","style","Fragment","content","css","append","Styled","Block","fragment","appendTo","Blocks","block","b","break","Message","into","blocks","intoBlock","styles","plain","message","styled","reactiveInternals","reactive","REACTIVE","LeafOperation","data","at","CellConsumeOperation","CellUpdateOperation","FrameConsumeOperation","diff","MutationLog","Set","child","filterToPredicate","dependencies","operation","includes","INITIAL_OFFSET","DebugTimeline","timestamp","statics","notify","forEach","DebugListener","attach","listener","consumeCell","internals","consumeFrame","updateCell","cell","now","mutation","prev","ret","list","Flush","minOffset","Math","min","history","item","timeline","update","flush","detach","delete","VBAR","NEXT","LAST","Root","format","formatChildren","depth","Tree","formatNode","node","isLast","formatLeaf","formatParent","children","lastIndex","getLastIndex","ONE_DEEPER","label","title","indent","repeat","defaultDescription","NaN"],"mappings":"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"}