{"version":3,"file":"index.cjs","sources":["../../../../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/classApplyDescriptorGet.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/classPrivateFieldGet.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/classPrivateFieldSet.js","../src/context/context.ts","../src/lifetime/object-lifetime.ts","../src/lifetime/api.ts","../src/timeline/id.ts","../src/timeline/timestamp.ts","../src/timeline/protocol.ts","../src/timeline/frame.ts","../src/timeline/frames.ts","../src/timeline/utils.ts","../src/timeline/subscriptions.ts","../src/timeline/timeline.ts","../src/timeline/api.ts","../index.ts"],"sourcesContent":["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 _classApplyDescriptorGet(receiver, descriptor) {\n  if (descriptor.get) {\n    return descriptor.get.call(receiver);\n  }\n  return descriptor.value;\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 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}","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}","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}","import { getLast, isPresentArray } from \"@starbeam/core-utils\";\n\nexport class Context {\n  readonly component = new ComponentContext();\n\n  #app: object | undefined;\n  #singletons = new WeakMap<object, SingletonContext>();\n\n  set app(app: object) {\n    this.#app = app;\n  }\n\n  get app(): object {\n    if (this.#app === undefined) {\n      throw Error(\n        \"You are attempting to use a feature of Starbeam that depends on the application context, but no application context has been set.\"\n      );\n    }\n\n    return this.#app;\n  }\n\n  hasApp(): boolean {\n    return this.#app !== undefined;\n  }\n\n  create<Args extends unknown[], Ret>(\n    key: object,\n    constructor: (...args: Args) => Ret,\n    ...args: Args\n  ): Ret {\n    return this.#appSingletons.create(key, constructor, ...args);\n  }\n\n  get #appSingletons(): SingletonContext {\n    const app = this.app;\n    let singletons = this.#singletons.get(app);\n\n    if (singletons === undefined) {\n      singletons = new SingletonContext();\n      this.#singletons.set(app, singletons);\n    }\n\n    return singletons;\n  }\n}\n\nclass SingletonContext {\n  #instances = new WeakMap<object, object>();\n\n  create<Args extends unknown[], Ret>(\n    key: object | undefined,\n    constructor: (...args: Args) => Ret,\n    ...args: Args\n  ): Ret {\n    if (key === undefined) {\n      return constructor(...args);\n    }\n\n    let existing = this.#instances.get(key) as Ret | undefined;\n\n    if (existing === undefined) {\n      existing = constructor(...args);\n      this.#instances.set(key, existing as object);\n    }\n\n    return existing;\n  }\n}\n\nexport class ComponentContext {\n  readonly #stack: object[] = [];\n  readonly #singleton = new SingletonContext();\n\n  get current(): object {\n    const current = this.#current;\n    if (current === undefined) {\n      throw Error(\n        \"You are attempting to use a feature of Starbeam that depends on the current component, but no component is currently active.\"\n      );\n    }\n    return current;\n  }\n\n  get #current(): object | undefined {\n    return getLast(this.#stack);\n  }\n\n  push(component: object): void {\n    this.#stack.push(component);\n  }\n\n  pop(): void {\n    this.#stack.pop();\n  }\n\n  exists(): boolean {\n    return isPresentArray(this.#stack);\n  }\n\n  create<Args extends unknown[], Ret>(\n    constructor: (...args: Args) => Ret,\n    ...args: Args\n  ): Ret {\n    return this.#singleton.create(this.#current, constructor, ...args);\n  }\n}\n\nexport const CONTEXT = new Context();\n","import { inspector } from \"@starbeam/debug\";\n\nexport type Unsubscribe = () => void;\n\nexport class ObjectLifetime {\n  #owner: WeakRef<object> | undefined;\n  readonly #object: WeakRef<object>;\n  readonly #children = new Set<ObjectLifetime>();\n  #finalized = false;\n  readonly #finalizers = new Set<() => void>();\n\n  readonly on = {\n    finalize: (finalizer: () => void): Unsubscribe => {\n      this.#finalizers.add(finalizer);\n      return () => this.#finalizers.delete(finalizer);\n    },\n  };\n\n  static {\n    if (import.meta.env.DEV) {\n      inspector(this, \"ObjectLifetime\").define((lifetime, debug) =>\n        debug.struct({\n          finalizers: lifetime.#finalizers,\n          children: lifetime.#children,\n          finalized: lifetime.#finalized,\n        })\n      );\n    }\n  }\n\n  static create(object: object): ObjectLifetime {\n    return new ObjectLifetime(undefined, object);\n  }\n\n  static finalize(lifetime: ObjectLifetime): void {\n    lifetime.#finalize();\n  }\n\n  constructor(owner: object | undefined, object: object) {\n    this.#owner = owner ? new WeakRef(owner) : undefined;\n    this.#object = new WeakRef(object);\n  }\n\n  get owner(): object | undefined {\n    return this.#owner?.deref();\n  }\n\n  get object(): object | undefined {\n    return this.#object.deref();\n  }\n\n  setOwnedBy(owner: object): { prev: object | undefined } {\n    this.#owner = new WeakRef(owner);\n    return { prev: this.#owner.deref() };\n  }\n\n  #finalize(): void {\n    if (this.#finalized) {\n      return;\n    }\n\n    this.#finalized = true;\n\n    for (const finalizer of this.#finalizers) {\n      finalizer();\n    }\n\n    for (const child of this.#children) {\n      child.#finalize();\n    }\n  }\n\n  link(child: ObjectLifetime): Unsubscribe {\n    this.#children.add(child);\n    return () => this.#children.delete(child);\n  }\n\n  unlink(child: ObjectLifetime): void {\n    this.#children.delete(child);\n  }\n}\n","import { expected, isEqual, verify } from \"@starbeam/verify\";\n\nimport { type Unsubscribe, ObjectLifetime } from \"./object-lifetime.js\";\n\n/**\n * Implement this interface if you are building a new abstraction that wants to\n * expose cleanup in an idiomatic way.\n *\n * Note that users could always use `LIFETIME.on.cleanup(object, handler)` and\n * `LIFETIME.link(parent, child)` directly, but {@link CleanupTarget} is a way\n * to add cleanup support to objects consistently and idiomatically.\n */\nexport interface CleanupTarget {\n  readonly link: (child: object) => Unsubscribe;\n  readonly on: OnCleanup;\n}\n\nexport interface OnCleanup {\n  readonly cleanup: (finalizer: () => void) => Unsubscribe;\n}\n\nclass LifetimeAPI {\n  readonly #associations = new WeakMap<object, ObjectLifetime>();\n  readonly #roots = new WeakMap<\n    object,\n    { root: object; unlink: Unsubscribe }\n  >();\n\n  readonly on = {\n    cleanup: (object: object, handler: () => void): Unsubscribe => {\n      let lifetime = this.#associations.get(object);\n\n      if (!lifetime) {\n        lifetime = ObjectLifetime.create(object);\n        this.#associations.set(object, lifetime);\n      }\n\n      return lifetime.on.finalize(handler);\n    },\n  };\n\n  /**\n   * Finalize an object. This will run all of the finalizers registered on the\n   * object, then finalize all associated children.\n   */\n  finalize(object: object): void {\n    const lifetime = this.#associations.get(object);\n\n    if (lifetime) {\n      ObjectLifetime.finalize(lifetime);\n    }\n  }\n\n  #initialize(object: object): ObjectLifetime {\n    let lifetime = this.#associations.get(object);\n\n    if (!lifetime) {\n      lifetime = ObjectLifetime.create(object);\n      this.#associations.set(object, lifetime);\n    }\n\n    return lifetime;\n  }\n\n  link(parent: object, child: object, options?: { root: object }): Unsubscribe {\n    const parentLifetime = this.#initialize(parent);\n    const childLifetime = this.#initialize(child);\n\n    if (options?.root) {\n      const existingRoot = this.#roots.get(child);\n\n      if (existingRoot) {\n        verify(\n          existingRoot.root,\n          isEqual(options.root),\n          expected(\"a root passed to link\")\n            .toBe(\"the same as the previous root\")\n            .butGot(\"a different root\")\n        );\n\n        existingRoot.unlink();\n      }\n\n      const unlink = parentLifetime.link(childLifetime);\n      this.#roots.set(child, {\n        root: options.root,\n        unlink,\n      });\n      return unlink;\n    } else {\n      return parentLifetime.link(childLifetime);\n    }\n  }\n\n  unlink(parent: object, child: object): void {\n    const parentLifetime = this.#associations.get(parent);\n\n    if (parentLifetime) {\n      const childLifetime = this.#associations.get(child);\n\n      if (childLifetime) {\n        parentLifetime.unlink(childLifetime);\n      }\n    }\n  }\n}\n\nexport const LIFETIME = new LifetimeAPI();\nexport type Lifetime = {\n  [P in keyof LifetimeAPI]: LifetimeAPI[P];\n};\n","let ID = 1;\n\nexport function getID(): string {\n  return String(ID++);\n}\n","import { DisplayStruct } from \"@starbeam/debug\";\nimport type * as interfaces from \"@starbeam/interfaces\";\nimport { bump as peerBump, now as peerNow } from \"@starbeam/shared\";\n\nexport const INSPECT = Symbol.for(\"nodejs.util.inspect.custom\");\n\nexport class TimestampImpl implements interfaces.Timestamp {\n  static #initial = peerNow();\n\n  /**\n   * Returns the current `Timestamp` according to @starbeam/shared\n   */\n  static now(): interfaces.Timestamp {\n    return new TimestampImpl(peerNow());\n  }\n\n  /**\n   * The earliest timestamp from @starbeam/shared that was visible to this @starbeam/timeline.\n   */\n  static zero(): interfaces.Timestamp {\n    return new TimestampImpl(TimestampImpl.#initial);\n  }\n\n  static assert(\n    timestamp: interfaces.Timestamp,\n    what: string\n  ): asserts timestamp is TimestampImpl {\n    if (!(#timestamp in timestamp)) {\n      throw Error(`Value passed to ${what} was unexpectedly not a timestamp`);\n    }\n  }\n\n  static debug(timestamp: interfaces.Timestamp): { at: number } {\n    TimestampImpl.assert(timestamp, \"Timestamp.debug\");\n    return { at: timestamp.#timestamp };\n  }\n\n  readonly #timestamp: number;\n  declare [INSPECT]: () => object;\n\n  constructor(timestamp: number) {\n    this.#timestamp = timestamp;\n\n    if (import.meta.env.DEV) {\n      this[INSPECT] = (): object =>\n        DisplayStruct(\"Timestamp\", { at: this.#timestamp });\n    }\n  }\n\n  gt(other: Timestamp): boolean {\n    TimestampImpl.assert(other, \"Timestamp#gt\");\n\n    return this.#timestamp > other.#timestamp;\n  }\n\n  eq(other: Timestamp): boolean {\n    TimestampImpl.assert(other, \"Timestamp#eq\");\n\n    return this.#timestamp === other.#timestamp;\n  }\n\n  /**\n   * Bump the timestamp using `@starbeam/shared`\n   */\n  next(): Timestamp {\n    return new Timestamp(peerBump());\n  }\n\n  toString = (): string => {\n    return `#<Timestamp ${this.#timestamp}>`;\n  };\n}\n\nexport function zero(): interfaces.Timestamp {\n  return Timestamp.zero();\n}\n\nexport function getNow(): interfaces.Timestamp {\n  return Timestamp.now();\n}\n\nexport type Timestamp = interfaces.Timestamp;\nexport const Timestamp = TimestampImpl;\n\nexport function max(\n  ...timestamps: interfaces.Timestamp[]\n): interfaces.Timestamp {\n  return timestamps.reduce((a, b) => (a.gt(b) ? a : b), zero());\n}\n\nexport class Now {\n  #now = Timestamp.now();\n\n  get now(): interfaces.Timestamp {\n    return this.#now;\n  }\n\n  bump(): interfaces.Timestamp {\n    return (this.#now = this.#now.next());\n  }\n}\n\nexport const NOW = new Now();\n","import type * as Debug from \"@starbeam/debug\";\nimport { Desc, Tree } from \"@starbeam/debug\";\nimport type * as interfaces from \"@starbeam/interfaces\";\nimport { REACTIVE } from \"@starbeam/shared\";\nimport { isPresent } from \"@starbeam/verify\";\n\nimport { Timestamp, zero } from \"./timestamp.js\";\n\ninterface ExhaustiveMatcher<T> {\n  mutable: (internals: interfaces.MutableInternals) => T;\n  composite: (internals: interfaces.CompositeInternals) => T;\n  delegate: (internals: interfaces.DelegateInternals) => T;\n  static: (internals: interfaces.StaticInternals) => T;\n}\n\ninterface DefaultMatcher<T> extends Partial<ExhaustiveMatcher<T>> {\n  default: (internals: interfaces.ReactiveInternals) => T;\n}\n\ntype Matcher<T> = ExhaustiveMatcher<T> | DefaultMatcher<T>;\n\nexport type ReactiveProtocol<\n  I extends interfaces.ReactiveInternals = interfaces.ReactiveInternals\n> = interfaces.ReactiveProtocol<I>;\n\nexport const ReactiveProtocol = {\n  description(this: void, reactive: ReactiveProtocol): Debug.Description {\n    return ReactiveInternals.description(reactive[REACTIVE]);\n  },\n\n  id(this: void, reactive: ReactiveProtocol): interfaces.ReactiveId {\n    return ReactiveInternals.id(reactive[REACTIVE]);\n  },\n\n  is<T extends \"mutable\" | \"composite\" | \"static\" | \"delegate\">(\n    this: void,\n    reactive: ReactiveProtocol,\n    kind: T\n  ): reactive is {\n    [REACTIVE]: Extract<interfaces.ReactiveInternals, { type: T }>;\n  } {\n    return ReactiveInternals.is(reactive[REACTIVE], kind);\n  },\n\n  match<T>(this: void, reactive: ReactiveProtocol, matcher: Matcher<T>): T {\n    return ReactiveInternals.match(reactive[REACTIVE], matcher);\n  },\n\n  subscribesTo(this: void, reactive: ReactiveProtocol): ReactiveProtocol[] {\n    const internals = reactive[REACTIVE];\n\n    if (internals.type === \"delegate\") {\n      return internals.delegate.flatMap(ReactiveProtocol.subscribesTo);\n    } else {\n      return [reactive];\n    }\n  },\n\n  dependencies(\n    this: void,\n    reactive: ReactiveProtocol\n  ): Iterable<interfaces.MutableInternals> {\n    return ReactiveInternals.dependencies(reactive[REACTIVE]);\n  },\n\n  *dependenciesInList(\n    this: void,\n    children: readonly ReactiveProtocol[]\n  ): Iterable<interfaces.MutableInternals> {\n    for (const child of children) {\n      yield* ReactiveInternals.dependencies(child[REACTIVE]);\n    }\n  },\n\n  lastUpdated(this: void, reactive: ReactiveProtocol): Timestamp {\n    return ReactiveInternals.lastUpdated(reactive[REACTIVE]);\n  },\n\n  lastUpdatedIn(this: void, reactives: ReactiveProtocol[]): Timestamp {\n    let lastUpdatedTimestamp = zero();\n\n    for (const child of ReactiveProtocol.dependenciesInList(reactives)) {\n      if (child.lastUpdated.gt(lastUpdatedTimestamp)) {\n        lastUpdatedTimestamp = child.lastUpdated;\n      }\n    }\n\n    return lastUpdatedTimestamp;\n  },\n\n  log(\n    this: void,\n    reactive: ReactiveProtocol,\n    options: { implementation?: boolean; source?: boolean; id?: boolean } = {}\n  ): void {\n    ReactiveInternals.log(reactive[REACTIVE], options);\n  },\n\n  debug(\n    this: void,\n    reactive: ReactiveProtocol,\n    {\n      implementation = false,\n      source = false,\n    }: { implementation?: boolean; source?: boolean } = {}\n  ): string {\n    return ReactiveInternals.debug(reactive[REACTIVE], {\n      implementation,\n      source,\n    });\n  },\n} as const;\n\nexport const ReactiveInternals = {\n  is<T extends \"mutable\" | \"composite\" | \"static\" | \"delegate\">(\n    this: void,\n    internals: interfaces.ReactiveInternals,\n    kind: T\n  ): internals is Extract<interfaces.ReactiveInternals, { type: T }> {\n    return internals.type === kind;\n  },\n\n  id(\n    this: void,\n    internals: interfaces.ReactiveInternals\n  ): interfaces.ReactiveId {\n    return internals.description.id;\n  },\n\n  *dependencies(\n    internals: interfaces.ReactiveInternals\n  ): Iterable<interfaces.MutableInternals> {\n    switch (internals.type) {\n      case \"static\":\n        return;\n      case \"mutable\":\n        if (internals.isFrozen?.()) {\n          break;\n        }\n\n        yield internals;\n        break;\n      case \"delegate\":\n        for (const target of ReactiveInternals.subscribesTo(internals)) {\n          yield* ReactiveInternals.dependencies(target);\n        }\n        break;\n      case \"composite\":\n        yield* ReactiveProtocol.dependenciesInList(internals.children());\n        break;\n    }\n  },\n\n  *dependenciesInList(\n    this: void,\n    children: readonly ReactiveInternals[]\n  ): Iterable<interfaces.MutableInternals> {\n    for (const child of children) {\n      yield* ReactiveInternals.dependencies(child);\n    }\n  },\n\n  subscribesTo(\n    this: void,\n    internals: interfaces.ReactiveInternals\n  ): interfaces.ReactiveInternals[] {\n    if (internals.type === \"delegate\") {\n      return internals.delegate.flatMap((protocol) =>\n        ReactiveProtocol.subscribesTo(protocol).map((p) => p[REACTIVE])\n      );\n    } else {\n      return [internals];\n    }\n  },\n\n  lastUpdated(this: void, internals: ReactiveInternals): Timestamp {\n    switch (internals.type) {\n      case \"static\":\n        return zero();\n      case \"mutable\":\n        return internals.lastUpdated;\n      case \"delegate\": {\n        const delegates = ReactiveInternals.subscribesTo(internals);\n        return ReactiveInternals.lastUpdatedIn(delegates);\n      }\n      case \"composite\": {\n        let lastUpdatedTimestamp = zero();\n\n        for (const child of ReactiveInternals.dependencies(internals)) {\n          if (child.lastUpdated.gt(lastUpdatedTimestamp)) {\n            lastUpdatedTimestamp = child.lastUpdated;\n          }\n        }\n\n        return lastUpdatedTimestamp;\n      }\n    }\n  },\n\n  lastUpdatedIn(this: void, internals: ReactiveInternals[]): Timestamp {\n    let lastUpdatedTimestamp = zero();\n\n    for (const child of ReactiveInternals.dependenciesInList(internals)) {\n      if (child.lastUpdated.gt(lastUpdatedTimestamp)) {\n        lastUpdatedTimestamp = child.lastUpdated;\n      }\n    }\n\n    return lastUpdatedTimestamp;\n  },\n\n  description(this: void, internals: ReactiveInternals): Debug.Description {\n    return internals.description;\n  },\n\n  debug(\n    this: void,\n    internals: interfaces.ReactiveInternals,\n    {\n      implementation = false,\n      source = false,\n      id = false,\n    }: { implementation?: boolean; source?: boolean; id?: boolean } = {}\n  ): string {\n    const dependencies = [...ReactiveInternals.dependencies(internals)];\n    const descriptions = new Set(\n      dependencies.map((dependency) => {\n        return implementation\n          ? dependency.description\n          : dependency.description.userFacing;\n      })\n    );\n\n    const nodes = [...descriptions]\n      .map((d) => {\n        const description = implementation ? d : d.userFacing;\n        return description.describe({ source, id });\n      })\n      .filter(isPresent);\n\n    return Tree(...nodes).format();\n  },\n\n  log(\n    this: void,\n    internals: interfaces.ReactiveInternals,\n    options: { implementation?: boolean; source?: boolean; id?: boolean } = {}\n  ): void {\n    const debug = ReactiveInternals.debug(internals, options);\n\n    console.group(\n      ReactiveInternals.description(internals).describe({ id: options.id }),\n      `(updated at ${\n        Timestamp.debug(ReactiveInternals.lastUpdated(internals)).at\n      })`\n    );\n    console.log(debug);\n    console.groupEnd();\n  },\n\n  match<T>(this: void, internals: ReactiveInternals, matcher: Matcher<T>): T {\n    const fn = matcher[internals.type];\n    if (typeof fn === \"function\") {\n      return fn(internals as never);\n    }\n\n    return (matcher as DefaultMatcher<T>).default(internals);\n  },\n};\n\nexport type ReactiveInternals = interfaces.ReactiveInternals;\n\nexport type Reactive<\n  T,\n  I extends ReactiveInternals = ReactiveInternals\n> = interfaces.Reactive<T, I>;\n\nexport const Reactive = {\n  is<T>(this: void, value: unknown): value is interfaces.Reactive<T> {\n    return !!(\n      value &&\n      (typeof value === \"object\" || typeof value === \"function\") &&\n      REACTIVE in value\n    );\n  },\n\n  from<T>(\n    this: void,\n    value: T | Reactive<T>,\n    description?: string | Debug.Description\n  ): Reactive<T> {\n    if (Reactive.is(value)) {\n      return value;\n    } else {\n      return new Static(value, Desc(\"static\", description));\n    }\n  },\n};\n\nexport type ReactiveCore<\n  T,\n  I extends ReactiveInternals = ReactiveInternals\n> = interfaces.ReactiveCore<T, I>;\n\nexport const ReactiveCore = {\n  is<T>(value: unknown): value is interfaces.ReactiveCore<T> {\n    return !!(\n      value &&\n      (typeof value === \"object\" || typeof value === \"function\") &&\n      REACTIVE in value &&\n      hasRead(value)\n    );\n  },\n};\n\nfunction hasRead<T>(value: object): value is { read: () => T } {\n  return \"read\" in value && typeof value.read === \"function\";\n}\n\nclass Static<T> {\n  readonly #value: T;\n  readonly [REACTIVE]: interfaces.StaticInternals;\n\n  constructor(value: T, description: Debug.Description) {\n    this.#value = value;\n    this[REACTIVE] = {\n      type: \"static\",\n      description,\n    };\n  }\n\n  get current(): T {\n    return this.#value;\n  }\n\n  read(): T {\n    return this.#value;\n  }\n}\n","import type {\n  CompositeInternals,\n  Description,\n  Frame as IFrame,\n  MutableInternals,\n  ReactiveId,\n  Timestamp,\n} from \"@starbeam/interfaces\";\nimport { REACTIVE, UNINITIALIZED } from \"@starbeam/shared\";\n\nimport { getID } from \"./id.js\";\nimport { ReactiveProtocol } from \"./protocol.js\";\nimport type { Timeline } from \"./timeline.js\";\nimport { getNow } from \"./timestamp.js\";\n\ninterface Marker {\n  [REACTIVE]: Omit<MutableInternals, \"lastUpdated\"> & {\n    lastUpdated: Timestamp;\n  };\n}\n\nexport class Frame<T = unknown>\n  implements ReactiveProtocol<CompositeInternals>, IFrame\n{\n  static create<T>(\n    this: void,\n    value: T,\n    children: Set<ReactiveProtocol>,\n    finalized: Timestamp,\n    description: Description\n  ): Frame<T> {\n    const id = getID();\n\n    return new Frame(\n      id,\n      value,\n      {\n        [REACTIVE]: {\n          type: \"mutable\",\n          lastUpdated: finalized,\n          description: description.key(\"initialized?\").asImplementation(),\n        },\n      },\n      children,\n      finalized,\n      description\n    );\n  }\n\n  static uninitialized<T>(\n    finalized: Timestamp,\n    description: Description\n  ): Frame<T | UNINITIALIZED> {\n    const id = description.id;\n\n    return new Frame<T | UNINITIALIZED>(\n      id,\n      UNINITIALIZED,\n      {\n        [REACTIVE]: {\n          type: \"mutable\",\n          lastUpdated: finalized,\n          description: description.detail(\"initialized?\"),\n        },\n      },\n      new Set(),\n      finalized,\n      description\n    );\n  }\n\n  static value<T>(this: void, frame: Frame<T>): T {\n    return frame.#value;\n  }\n\n  static isInitialized(this: void, frame: Frame): boolean {\n    return frame.#value !== UNINITIALIZED;\n  }\n\n  static update<T>(\n    this: void,\n    frame: Frame<T>,\n    value: T,\n    children: Set<ReactiveProtocol>,\n    finalized: Timestamp\n  ): Frame<T> {\n    return frame.#update(value, children, finalized);\n  }\n\n  static updateChildren<T>(\n    this: void,\n    frame: Frame<T>,\n    children: Set<ReactiveProtocol>\n  ): void {\n    frame.#children = children;\n  }\n\n  #value: T;\n  readonly #initialized: Marker;\n  #children: ReadonlySet<ReactiveProtocol>;\n  #finalized: Timestamp;\n  readonly #description: Description;\n\n  constructor(\n    id: ReactiveId,\n    value: T,\n    initialized: {\n      [REACTIVE]: Omit<MutableInternals, \"lastUpdated\"> & {\n        lastUpdated: Timestamp;\n      };\n    },\n    children: Set<ReactiveProtocol>,\n    finalized: Timestamp,\n    description: Description\n  ) {\n    this.#value = value;\n    this.#initialized = initialized;\n    this.#children = children;\n    this.#finalized = finalized;\n    this.#description = description;\n  }\n\n  get [REACTIVE](): CompositeInternals {\n    return {\n      type: \"composite\",\n      description: this.#description,\n      children: () => {\n        return [this.#initialized, ...this.#children];\n      },\n    };\n  }\n\n  get description(): Description {\n    return this.#description;\n  }\n\n  #update<U>(\n    this: Frame<U | UNINITIALIZED>,\n    value: U,\n    children: Set<ReactiveProtocol>,\n    finalized: Timestamp\n  ): Frame<U>;\n  #update(\n    value: T,\n    children: Set<ReactiveProtocol>,\n    finalized: Timestamp\n  ): Frame<T>;\n  #update(\n    value: T,\n    children: Set<ReactiveProtocol>,\n    finalized: Timestamp\n  ): this {\n    if (Object.is(this.#value, UNINITIALIZED)) {\n      this.#initialized[REACTIVE].lastUpdated = finalized;\n    }\n\n    this.#value = value;\n    this.#children = children;\n    this.#finalized = finalized;\n    return this;\n  }\n\n  validate(): FrameValidation<Exclude<T, UNINITIALIZED>> {\n    if (\n      this.#value === UNINITIALIZED ||\n      ReactiveProtocol.lastUpdatedIn([...this.#children]).gt(this.#finalized)\n    ) {\n      return { status: \"invalid\" };\n    } else {\n      return {\n        status: \"valid\",\n        value: this.#value as Exclude<T, UNINITIALIZED>,\n      };\n    }\n  }\n}\n\nexport class ActiveFrame<T> {\n  static create<T>(\n    updating: Frame<T> | null,\n    prev: ActiveFrame<T> | null,\n    description: Description\n  ): ActiveFrame<T> {\n    return new ActiveFrame(updating, prev, new Set(), description);\n  }\n\n  readonly #updating: Frame<T> | null;\n  readonly #prev: ActiveFrame<unknown> | null;\n  readonly #children: Set<ReactiveProtocol>;\n\n  private constructor(\n    updating: Frame<T> | null,\n    prev: ActiveFrame<T> | null,\n    children: Set<ReactiveProtocol>,\n    readonly description: Description\n  ) {\n    this.#updating = updating;\n    this.#prev = prev;\n    this.#children = children;\n  }\n\n  add(child: ReactiveProtocol): void {\n    this.#children.add(child);\n  }\n\n  finally(): { prev: ActiveFrame<unknown> | null } {\n    return { prev: this.#prev };\n  }\n\n  finalize(\n    value: T,\n    timeline: Timeline\n  ): { prev: ActiveFrame<unknown> | null; frame: Frame<T> } {\n    let frame = this.#updating;\n\n    if (frame) {\n      Frame.update(frame, value, this.#children, getNow());\n      timeline.update(frame);\n    } else {\n      frame = Frame.create(value, this.#children, getNow(), this.description);\n    }\n\n    return { prev: this.#prev, frame };\n  }\n}\n\nexport interface ValidFrame<T> {\n  readonly status: \"valid\";\n  readonly value: T;\n}\n\nexport interface InvalidFrame {\n  readonly status: \"invalid\";\n}\n\nexport type FrameValidation<T> = ValidFrame<T> | InvalidFrame;\n","import type { DebugTimeline, Stack } from \"@starbeam/debug\";\nimport type * as interfaces from \"@starbeam/interfaces\";\nimport { type UNINITIALIZED, REACTIVE } from \"@starbeam/shared\";\n\nimport { type Frame, ActiveFrame } from \"./frame.js\";\nimport { ReactiveProtocol } from \"./protocol.js\";\nimport type { Subscriptions } from \"./subscriptions.js\";\nimport type { Timeline } from \"./timeline.js\";\n\nexport class FrameStack {\n  #current: ActiveFrame<unknown> | null;\n  #subscriptions: Subscriptions;\n  #timeline: Timeline;\n\n  static didConsumeCell(\n    frames: FrameStack,\n    reactive: ReactiveProtocol<interfaces.MutableInternals>,\n    caller: Stack\n  ): void {\n    frames.#debug.consumeCell(reactive[REACTIVE], caller);\n    frames.#didConsumeReactive(reactive, caller);\n  }\n\n  static didConsumeFrame(\n    frames: FrameStack,\n    frame: interfaces.Frame,\n    diff: interfaces.Diff<interfaces.MutableInternals>,\n    caller: Stack\n  ): void {\n    frames.#debug.consumeFrame(frame, diff, caller);\n    frames.#didConsumeReactive(frame, caller);\n  }\n\n  static empty(timeline: Timeline, subscriptions: Subscriptions): FrameStack {\n    return new FrameStack(subscriptions, null, timeline);\n  }\n\n  constructor(\n    subscriptions: Subscriptions,\n    current: ActiveFrame<unknown> | null,\n    timeline: Timeline\n  ) {\n    this.#subscriptions = subscriptions;\n    this.#current = current;\n    this.#timeline = timeline;\n  }\n\n  get currentFrame(): ActiveFrame<unknown> | null {\n    return this.#current;\n  }\n\n  get #debug(): DebugTimeline {\n    return this.#timeline.log;\n  }\n\n  create<T>(options: {\n    evaluate: () => T;\n    description: interfaces.Description;\n  }): Frame<T>;\n  // FIXME Overloads shouldn't trigger member-ordering\n\n  create<T>(options: { description: interfaces.Description }): ActiveFrame<T>;\n  // FIXME Overloads shouldn't trigger member-ordering\n\n  create<T>({\n    evaluate,\n    description,\n  }: {\n    evaluate?: () => T;\n    description: interfaces.Description;\n  }): Frame<T> | ActiveFrame<T> {\n    const frame = this.#start(description) as ActiveFrame<T>;\n\n    if (evaluate) {\n      try {\n        const result = evaluate();\n        return this.#end<T>(frame, result);\n      } catch (e) {\n        this.finally(frame);\n        throw e;\n      }\n    } else {\n      return frame;\n    }\n  }\n\n  #didConsumeReactive(reactive: ReactiveProtocol, caller: Stack): void {\n    const frame = this.currentFrame;\n    if (frame) {\n      frame.add(reactive);\n      return;\n    } else {\n      const delegatesTo = ReactiveProtocol.subscribesTo(reactive).filter((r) =>\n        ReactiveProtocol.is(r, \"mutable\")\n      );\n\n      for (const target of delegatesTo) {\n        if (ReactiveProtocol.is(target, \"mutable\")) {\n          this.#timeline.untrackedRead(target, caller);\n        }\n      }\n    }\n  }\n\n  #end<T>(active: ActiveFrame<T>, value: T): Frame<T> {\n    const { prev, frame } = active.finalize(value, this.#timeline);\n    this.#current = prev;\n    return frame;\n  }\n\n  finally<T>(prev: ActiveFrame<T> | null): void {\n    this.#current = prev;\n  }\n\n  #start<T>(\n    description: interfaces.Description,\n    frame?: Frame<T>\n  ): ActiveFrame<unknown> {\n    const prev = this.#current;\n    return (this.#current = ActiveFrame.create(\n      frame ?? null,\n      prev,\n      description\n    ));\n  }\n\n  update<T>(options: {\n    updating: Frame<T | UNINITIALIZED>;\n    evaluate: () => T;\n  }): Frame<T>;\n  // FIXME Overloads shouldn't trigger member-ordering\n\n  update<T>({\n    updating,\n  }: {\n    updating: Frame<T | UNINITIALIZED>;\n  }): ActiveFrame<T>;\n  // FIXME Overloads shouldn't trigger member-ordering\n\n  update<T>({\n    updating,\n    evaluate: callback,\n  }: {\n    updating: Frame<T>;\n    evaluate?: () => T;\n  }): Frame<T> | ActiveFrame<T> {\n    const activeFrame = this.#start(\n      updating.description,\n      updating\n    ) as ActiveFrame<T>;\n\n    if (callback) {\n      try {\n        this.#timeline.willEvaluate();\n        const result = callback();\n        const frame = this.#end<T>(activeFrame, result);\n        this.#subscriptions.update(frame);\n        return frame;\n      } catch (e) {\n        this.finally(activeFrame);\n        throw e;\n      }\n    } else {\n      return activeFrame;\n    }\n  }\n}\n","import type { Diff } from \"@starbeam/interfaces\";\n\nexport function diff<T>(\n  prev: Set<T> | ReadonlySet<T>,\n  next: Set<T> | ReadonlySet<T>\n): Diff<T> {\n  const add = new Set<T>();\n  const remove = new Set<T>();\n\n  for (const internal of prev) {\n    if (!next.has(internal)) {\n      remove.add(internal);\n    }\n  }\n\n  for (const internal of next) {\n    if (!prev.has(internal)) {\n      add.add(internal);\n    }\n  }\n\n  return { add, remove };\n}\n\nconst EMPTY = { add: new Set(), remove: new Set() };\ndiff.empty = <T>() => EMPTY as Diff<T>;\n","import type { MutableInternals, Timestamp } from \"@starbeam/interfaces\";\n\nimport type { Unsubscribe } from \"../lifetime/object-lifetime.js\";\nimport { ReactiveProtocol } from \"./protocol.js\";\nimport { getNow } from \"./timestamp.js\";\nimport { diff } from \"./utils.js\";\n\nexport class Subscription {\n  #dependencies: Set<MutableInternals>;\n  #lastNotified: undefined | Timestamp;\n  #ready: (internals: MutableInternals) => void;\n\n  constructor(\n    dependencies: Set<MutableInternals>,\n    lastNotified: undefined | Timestamp,\n    ready: (internals: MutableInternals) => void\n  ) {\n    this.#dependencies = dependencies;\n    this.#lastNotified = lastNotified;\n    this.#ready = ready;\n  }\n\n  update(dependencies: Set<MutableInternals>): void {\n    this.#dependencies = dependencies;\n  }\n\n  get dependencies(): Set<MutableInternals> {\n    return this.#dependencies;\n  }\n\n  get lastNotified(): Timestamp | undefined {\n    return this.#lastNotified;\n  }\n\n  notify(timestamp: Timestamp, internals: MutableInternals): void {\n    this.#lastNotified = timestamp;\n    this.#ready(internals);\n  }\n}\n\nexport class Subscriptions {\n  static create(): Subscriptions {\n    return new Subscriptions(new WeakMap(), new WeakMap());\n  }\n\n  #reactiveMap: WeakMap<ReactiveProtocol, Set<Subscription>>;\n  #depMap: WeakMap<MutableInternals, Set<Subscription>>;\n\n  private constructor(\n    pollableMap: WeakMap<ReactiveProtocol, Set<Subscription>>,\n    readyMap: WeakMap<MutableInternals, Set<Subscription>>\n  ) {\n    this.#reactiveMap = pollableMap;\n    this.#depMap = readyMap;\n  }\n\n  notify(dependency: MutableInternals): void {\n    const subscriptions = this.#depMap.get(dependency);\n\n    if (subscriptions) {\n      for (const subscription of subscriptions) {\n        subscription.notify(getNow(), dependency);\n      }\n    }\n  }\n\n  register(\n    reactive: ReactiveProtocol,\n    ready: (internals: MutableInternals) => void\n  ): Unsubscribe {\n    const subscribesTo = ReactiveProtocol.subscribesTo(reactive);\n    const dependencies = new Set(ReactiveProtocol.dependencies(reactive));\n\n    const subscription = new Subscription(dependencies, getNow(), ready);\n\n    for (const dependency of dependencies) {\n      this.#addDep(dependency, subscription);\n    }\n\n    for (const subscribeTo of subscribesTo) {\n      this.#addReactive(subscribeTo, subscription);\n    }\n\n    return () => {\n      for (const subscribeTo of subscribesTo) {\n        this.#removeReactive(subscribeTo, subscription);\n      }\n    };\n  }\n\n  update(reactive: ReactiveProtocol): void {\n    const pollables = this.#reactiveMap.get(reactive);\n\n    if (!pollables) {\n      return;\n    }\n\n    const next = new Set(ReactiveProtocol.dependencies(reactive));\n    const lastUpdatedNext = ReactiveProtocol.lastUpdated(reactive);\n\n    for (const pollable of pollables) {\n      const prev = pollable.dependencies;\n      const lastNotified = pollable.lastNotified;\n\n      const delta = diff(prev, next);\n      const { add, remove } = delta;\n\n      for (const dep of add) {\n        this.#addDep(dep, pollable);\n      }\n\n      for (const dep of remove) {\n        this.#removeDep(dep, pollable);\n      }\n\n      pollable.update(next);\n\n      if (lastNotified === undefined || lastUpdatedNext.gt(lastNotified)) {\n        // pollable.notify(Timestamp.now());\n      }\n    }\n  }\n\n  #addReactive(reactive: ReactiveProtocol, pollable: Subscription): void {\n    let pollableSet = this.#reactiveMap.get(reactive);\n\n    if (!pollableSet) {\n      pollableSet = new Set();\n      this.#reactiveMap.set(reactive, pollableSet);\n    }\n\n    pollableSet.add(pollable);\n  }\n\n  #removeReactive(\n    reactive: ReactiveProtocol,\n    subscription: Subscription\n  ): void {\n    const pollableSet = this.#reactiveMap.get(reactive);\n\n    if (pollableSet) {\n      pollableSet.delete(subscription);\n    }\n\n    const dependencies = subscription.dependencies;\n\n    for (const dependency of dependencies) {\n      this.#removeDep(dependency, subscription);\n    }\n  }\n\n  #addDep(dependency: MutableInternals, subscription: Subscription): void {\n    let depSet = this.#depMap.get(dependency);\n\n    if (!depSet) {\n      depSet = new Set();\n      this.#depMap.set(dependency, depSet);\n    }\n\n    depSet.add(subscription);\n  }\n\n  #removeDep(dependency: MutableInternals, pollable: Subscription): void {\n    const readySet = this.#depMap.get(dependency);\n\n    if (readySet) {\n      readySet.delete(pollable);\n    }\n  }\n}\n","import type { Stack } from \"@starbeam/debug\";\nimport {\n  type DebugFilter,\n  type DebugListener,\n  DebugTimeline,\n} from \"@starbeam/debug\";\nimport type * as interfaces from \"@starbeam/interfaces\";\n\nimport { LIFETIME } from \"../lifetime/api.js\";\nimport type { Unsubscribe } from \"../lifetime/object-lifetime.js\";\nimport { FrameStack } from \"./frames.js\";\nimport { ReactiveProtocol } from \"./protocol.js\";\nimport { Subscriptions } from \"./subscriptions.js\";\nimport { getNow, NOW } from \"./timestamp.js\";\n\n/**\n * # How Subscriptions Work at the Lowest Level\n *\n * You subscribe to an object implementing ReactiveProtocol by using `Timeline#on.change`.\n *\n * ## Composites\n *\n * If the object represents a composite, the {@linkcode Timeline} will immediately subscribe to the\n * dependencies of the composite.\n *\n * Whenever any of those dependencies change, the timeline will notify the subscriber. Whenever a\n * reactive object's composite dependencies may have changed (i.e. when it was polled), the object\n * is responsible for calling `TIMELINE.update(object)` to notify the timeline. This updates the\n * internal dependencies of that object used for notifications.\n *\n * ## Delegates\n *\n * If an object implementing {@linkcode ReactiveProtocol} simply polls another reactive object, it\n * can use a {@linkcode DelegateInternals} property to point to that object. In this case, the\n * object doesn't need to worry about `TIMELINE.update`.\n *\n * ## Notifications\n *\n * Whenever a {@linkcode MutableInternals} is updated, the timeline will notify all subscribers of\n * reactives that depend on that dependency.\n */\nexport class Timeline {\n  readonly #afterRender: Set<() => void>;\n\n  declare attach: (\n    notify: () => void,\n    options?: { filter: DebugFilter }\n  ) => DebugListener;\n\n  #debugTimeline: DebugTimeline | null = null;\n  readonly #frame: FrameStack;\n  #lastOp: \"consumed\" | \"bumped\" | \"evaluating\" | \"initial\";\n\n  on = {\n    rendered: (callback: () => void): (() => void) => {\n      this.#afterRender.add(callback);\n\n      return () => {\n        this.#afterRender.delete(callback);\n      };\n    },\n\n    change: (\n      input: ReactiveProtocol,\n      ready: (internals: interfaces.MutableInternals) => void\n    ): Unsubscribe => {\n      return this.#subscriptions.register(input, ready);\n    },\n  } as const;\n\n  /**\n   * Dynamic assertions that are used in development mode to detect reads that occur outside of a\n   * tracking frame, but which are used to produce rendered outputs.\n   */\n  #readAssertions = new Set<\n    (reactive: ReactiveProtocol, caller: Stack) => void\n  >();\n\n  readonly #subscriptions: Subscriptions;\n\n  /**\n   * In debug mode, register a barrier for untracked reads. This allows you to throw an error if an\n   * untracked read occurred in a context (such as a render function) that a renderer knows will\n   * produce rendered content.\n   */\n  declare untrackedReadBarrier: (\n    assertion: (reactive: ReactiveProtocol, caller: Stack) => void\n  ) => void;\n\n  static create(): Timeline {\n    return new Timeline(Subscriptions.create(), new Set(), \"initial\");\n  }\n\n  private constructor(\n    subscriptions: Subscriptions,\n    onAdvance: Set<() => void>,\n    lastOp: \"consumed\" | \"bumped\" | \"evaluating\" | \"initial\"\n  ) {\n    this.#subscriptions = subscriptions;\n    this.#afterRender = onAdvance;\n    this.#frame = FrameStack.empty(this, subscriptions);\n    this.#lastOp = lastOp;\n\n    if (import.meta.env.DEV) {\n      this.attach = (\n        notify: () => void,\n        options: { filter: DebugFilter } = { filter: { type: \"all\" } }\n      ): DebugListener => {\n        const listener = this.#debug.attach(notify, options);\n\n        LIFETIME.on.cleanup(listener, () => {\n          listener.detach();\n        });\n\n        return listener;\n      };\n\n      this.untrackedReadBarrier = (\n        assertion: (reactive: ReactiveProtocol, caller: Stack) => void\n      ): void => {\n        this.#readAssertions.add(assertion);\n      };\n    }\n  }\n\n  get #debug(): DebugTimeline {\n    if (!this.#debugTimeline) {\n      const debugTimeline = (this.#debugTimeline = DebugTimeline.create(\n        { now: getNow },\n        ReactiveProtocol\n      ));\n      this.on.rendered(() => {\n        debugTimeline.notify();\n      });\n    }\n\n    return this.#debugTimeline;\n  }\n\n  get frame(): FrameStack {\n    return this.#frame;\n  }\n\n  get log(): DebugTimeline {\n    return this.#debug;\n  }\n\n  // Returns the current timestamp\n  get now(): interfaces.Timestamp {\n    return NOW.now;\n  }\n\n  #adjustTimestamp(\n    operation: \"consumed\" | \"bumped\" | \"evaluating\"\n  ): interfaces.Timestamp {\n    const prev = this.#lastOp;\n    const prevIsRead = prev === \"consumed\" || prev === \"evaluating\";\n    const nextIsRead = operation === \"consumed\" || operation === \"evaluating\";\n\n    this.#lastOp = operation;\n    if (prevIsRead === nextIsRead) {\n      return this.now;\n    } else {\n      return this.next();\n    }\n  }\n\n  bump(\n    mutable: interfaces.MutableInternals,\n    caller: Stack\n  ): interfaces.Timestamp {\n    const now = this.#adjustTimestamp(\"bumped\");\n\n    if (import.meta.env.DEV) {\n      this.#debug.updateCell(mutable, caller);\n    }\n\n    this.#subscriptions.notify(mutable);\n    return now;\n  }\n\n  didConsumeCell(\n    cell: ReactiveProtocol<interfaces.MutableInternals>,\n    caller: Stack\n  ): void {\n    this.#adjustTimestamp(\"consumed\");\n    FrameStack.didConsumeCell(this.#frame, cell, caller);\n  }\n\n  didConsumeFrame(\n    frame: interfaces.Frame,\n    diff: interfaces.Diff<interfaces.MutableInternals>,\n    caller: Stack\n  ): void {\n    this.#adjustTimestamp(\"consumed\");\n    FrameStack.didConsumeFrame(this.#frame, frame, diff, caller);\n  }\n\n  next(): interfaces.Timestamp {\n    return NOW.bump();\n  }\n\n  /**\n   * When a reactive's dependencies might have changed, any renderables that depend on this reactive\n   * need to refresh their dependencies. If there are no renderers for this reactive value,\n   * {@linkcode update} does nothing.\n   *\n   * Otherwise, each relevant renderable will unsubscribe from any stale dependencies and subscribe\n   * to any new dependencies.\n   *\n   * For example, Formulas call this method after recomputing their value, which results in a\n   * possible change to their dependencies.\n   */\n  update(reactive: ReactiveProtocol): void {\n    this.#subscriptions.update(reactive);\n  }\n\n  willEvaluate(): void {\n    this.#lastOp = \"evaluating\";\n  }\n\n  mutation<T>(description: string, callback: () => T): T {\n    if (import.meta.env.DEV) {\n      return this.#debug.mutation(description, callback);\n    }\n\n    return callback();\n  }\n\n  /// DEBUG MODE ///\n\n  /** @internal */\n  untrackedRead(cell: ReactiveProtocol, caller: Stack): void {\n    for (const assertion of this.#readAssertions) {\n      assertion(cell, caller);\n    }\n  }\n}\n","import { Timeline } from \"./timeline.js\";\n\nexport const TIMELINE = Timeline.create();\n","// FIXME: Move the core of this to @starbeam/shared\nexport {\n  type ComponentContext,\n  type Context,\n  CONTEXT,\n} from \"./src/context/context.js\";\nexport {\n  type CleanupTarget,\n  type Lifetime,\n  type OnCleanup,\n  LIFETIME,\n} from \"./src/lifetime/api.js\";\nexport type { Unsubscribe } from \"./src/lifetime/object-lifetime.js\";\nexport { TIMELINE } from \"./src/timeline/api.js\";\nexport {\n  type FrameValidation,\n  ActiveFrame,\n  Frame,\n} from \"./src/timeline/frame.js\";\nexport {\n  Reactive,\n  ReactiveCore,\n  ReactiveInternals,\n  ReactiveProtocol,\n} from \"./src/timeline/protocol.js\";\nexport { Subscription, Subscriptions } from \"./src/timeline/subscriptions.js\";\nexport { INSPECT } from \"./src/timeline/timestamp.js\";\nexport { max, getNow as now, zero } from \"./src/timeline/timestamp.js\";\nexport { diff } from \"./src/timeline/utils.js\";\nexport { REACTIVE } from \"@starbeam/shared\";\n\nimport type * as interfaces from \"@starbeam/interfaces\";\n\nimport * as timestamp from \"./src/timeline/timestamp.js\";\n\nexport const Timestamp = timestamp.Timestamp;\nexport type Timestamp = interfaces.Timestamp;\n"],"names":["_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","_classApplyDescriptorGet","receiver","descriptor","get","call","_classExtractFieldDescriptor","privateMap","action","has","TypeError","_classPrivateFieldGet","classExtractFieldDescriptor","classApplyDescriptorGet","_classApplyDescriptorSet","set","_classPrivateFieldSet","classApplyDescriptorSet","Context","_classPrivateFieldInitSpec","ComponentContext","WeakMap","app","undefined","Error","hasApp","create","constructor","args","singletons","SingletonContext","existing","_current","current","push","component","pop","exists","isPresentArray","getLast","CONTEXT","_children","_finalized","ObjectLifetime","object","finalize","lifetime","_classPrivateMethodGet","owner","_classPrivateMethodInitSpec","Set","finalizer","add","delete","WeakRef","deref","setOwnedBy","prev","link","child","unlink","inspector","define","debug","struct","finalizers","children","finalized","LifetimeAPI","cleanup","handler","on","parent","options","parentLifetime","childLifetime","root","existingRoot","verify","isEqual","expected","toBe","butGot","LIFETIME","ID","getID","String","INSPECT","Symbol","for","TimestampImpl","now","peerNow","zero","assert","timestamp","what","at","DisplayStruct","gt","other","eq","next","Timestamp","peerBump","getNow","max","timestamps","reduce","a","b","Now","bump","NOW","ReactiveProtocol","description","reactive","ReactiveInternals","REACTIVE","id","is","kind","match","matcher","subscribesTo","internals","type","delegate","flatMap","dependencies","dependenciesInList","lastUpdated","lastUpdatedIn","reactives","lastUpdatedTimestamp","log","implementation","source","isFrozen","target","protocol","map","p","delegates","descriptions","dependency","userFacing","nodes","d","describe","filter","isPresent","Tree","format","console","group","groupEnd","fn","default","Reactive","from","Static","Desc","ReactiveCore","hasRead","read","_value","Frame","asImplementation","uninitialized","UNINITIALIZED","detail","frame","isInitialized","update","updateChildren","initialized","validate","status","ActiveFrame","updating","finally","timeline","_subscriptions","_debug","FrameStack","didConsumeCell","frames","caller","consumeCell","didConsumeFrame","diff","consumeFrame","empty","subscriptions","_get_debug","currentFrame","evaluate","result","e","callback","activeFrame","willEvaluate","delegatesTo","r","untrackedRead","active","remove","internal","EMPTY","Subscription","lastNotified","ready","notify","Subscriptions","pollableMap","readyMap","subscription","register","subscribeTo","pollables","lastUpdatedNext","pollable","delta","dep","pollableSet","depSet","readySet","Timeline","onAdvance","lastOp","rendered","change","input","attach","listener","detach","untrackedReadBarrier","assertion","mutable","updateCell","cell","mutation","debugTimeline","DebugTimeline","operation","prevIsRead","nextIsRead","TIMELINE"],"mappings":"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"}