{"version":3,"file":"index.cjs","sources":["../../src/core/signal/factory.ts","../../src/core/interceptor.ts","../../src/core/typing-util.ts","../../src/core/signal/signal.ts","../../src/core/signal/computed.ts","../../src/core/store/set.ts","../../src/core/signal/state.ts","../../src/core/store/sub.ts","../../src/core/store/store.ts"],"sourcesContent":["import type { Computed, Command, Read, State, Write } from '../../../types/core/signal';\n\ninterface Options {\n  debugLabel?: string;\n}\n\nlet globalId = 0;\n\nconst generateToString = (id: number, prefix: string, debugLabel?: string) => {\n  const label = `${prefix}${String(id)}${debugLabel ? ':' + debugLabel : ''}`;\n  return () => label;\n};\n\n/* @__NO_SIDE_EFFECTS__ */\nexport function state<T>(init: T, options?: Options): State<T> {\n  const id = globalId++;\n  const ret: State<T> = {\n    id,\n    init,\n    toString: generateToString(id, 'S', options?.debugLabel),\n  };\n\n  if (options?.debugLabel) {\n    ret.debugLabel = options.debugLabel;\n  }\n  return ret;\n}\n\n/* @__NO_SIDE_EFFECTS__ */\nexport function computed<T>(read: Read<T>, options?: Options): Computed<T> {\n  const id = globalId++;\n  const ret: Computed<T> = {\n    id,\n    read,\n    toString: generateToString(id, 'CPT', options?.debugLabel),\n  };\n\n  if (options?.debugLabel) {\n    ret.debugLabel = options.debugLabel;\n  }\n  return ret;\n}\n\n/* @__NO_SIDE_EFFECTS__ */\nexport function command<T, Args extends unknown[]>(write: Write<T, Args>, options?: Options): Command<T, Args> {\n  const id = globalId++;\n  const ret: Command<T, Args> = {\n    id,\n    write,\n    toString: generateToString(id, 'CMD', options?.debugLabel),\n  };\n  if (options?.debugLabel) {\n    ret.debugLabel = options.debugLabel;\n  }\n  return ret;\n}\n","import type { Command, Computed, Signal, State } from '../../types/core/signal';\nimport type {\n  ComputedState,\n  InterceptorComputed,\n  InterceptorGet,\n  InterceptorSet,\n  SetArgs,\n} from '../../types/core/store';\n\ntype DataWithCalledState<T> =\n  | {\n      called: false;\n    }\n  | {\n      called: true;\n      data: T;\n    };\n\nexport function withSetInterceptor<T, Args extends SetArgs<T, unknown[]>>(\n  fn: () => T | undefined,\n  writable$: State<T> | Command<T, Args>,\n  interceptor: InterceptorSet | undefined,\n  ...args: Args\n): T | undefined {\n  if (!interceptor) {\n    return fn();\n  }\n\n  let result = { called: false } as DataWithCalledState<T | undefined>;\n  const wrappedFn = () => {\n    result = { called: true, data: fn() };\n    return result.data;\n  };\n  if ('write' in writable$) {\n    interceptor(writable$, wrappedFn, ...args);\n  } else {\n    interceptor(writable$, wrappedFn, args[0]);\n  }\n\n  if (!result.called) {\n    throw new Error('interceptor must call fn sync');\n  }\n\n  return result.data;\n}\n\nexport function withGetInterceptor<T>(fn: () => T, signal: Signal<T>, interceptor?: InterceptorGet): T {\n  if (!interceptor) {\n    return fn();\n  }\n\n  let result = { called: false } as DataWithCalledState<T>;\n\n  interceptor(signal, () => {\n    result = { called: true, data: fn() };\n    return result.data;\n  });\n\n  if (!result.called) {\n    throw new Error('interceptor must call fn sync');\n  }\n\n  return result.data;\n}\n\nexport function withComputedInterceptor<T>(\n  fn: () => ComputedState<T>,\n  signal: Computed<T>,\n  interceptor?: InterceptorComputed,\n): ComputedState<T> {\n  if (!interceptor) {\n    return fn();\n  }\n\n  let result = { called: false } as DataWithCalledState<ComputedState<T>>;\n\n  interceptor(signal, () => {\n    result = { called: true, data: fn() };\n    return result.data.val;\n  });\n\n  if (!result.called) {\n    throw new Error('interceptor must call fn sync');\n  }\n\n  return result.data;\n}\n\nexport function withGeValInterceptor<T>(fn: () => T, signal: Signal<T>, interceptor?: InterceptorGet): T {\n  if (!interceptor) {\n    return fn();\n  }\n\n  let result = { called: false } as DataWithCalledState<T>;\n\n  interceptor(signal, () => {\n    result = { called: true, data: fn() };\n    return result.data;\n  });\n\n  if (!result.called) {\n    throw new Error('interceptor must call fn sync');\n  }\n\n  return result.data;\n}\n","import type { Computed, Signal } from '../../types/core/signal';\nimport type { ComputedState, SignalState } from '../../types/core/store';\n\nexport function canReadAsCompute<T>(atom: Signal<T>): atom is Computed<T> {\n  return 'read' in atom;\n}\n\nexport function isComputedState<T>(state: SignalState<T>): state is ComputedState<T> {\n  return 'dependencies' in state;\n}\n","import type { Computed, Signal } from '../../../types/core/signal';\nimport type { StoreContext } from '../../../types/core/store';\n\nexport function shouldDistinct<T>(signal: Signal<T>, value: T, context: StoreContext) {\n  const signalState = context.stateMap.get(signal);\n  return !!signalState && 'val' in signalState && !('error' in signalState) && signalState.val === value;\n}\n\nexport function shouldDistinctError(signal: Computed<unknown>, error: unknown, context: StoreContext) {\n  const signalState = context.stateMap.get(signal);\n  return !!signalState && 'error' in signalState && signalState.error === error;\n}\n","import type { Computed, Getter, Signal } from '../../../types/core/signal';\nimport type {\n  ComputedState,\n  Mount,\n  Mutation,\n  ReadComputed,\n  ReadSignal,\n  StoreContext,\n  Unmount,\n} from '../../../types/core/store';\nimport { withGeValInterceptor } from '../interceptor';\nimport { canReadAsCompute } from '../typing-util';\nimport { shouldDistinct, shouldDistinctError } from './signal';\n\nfunction checkEpoch<T>(\n  readComputed: ReadComputed,\n  computedState: ComputedState<T>,\n  context: StoreContext,\n  mutation?: Mutation,\n): boolean {\n  for (const [dep, epoch] of computedState.dependencies.entries()) {\n    const depEpoch = canReadAsCompute(dep)\n      ? readComputed(dep, context, mutation).epoch\n      : context.stateMap.get(dep)?.epoch;\n\n    if (depEpoch !== epoch) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nexport function tryGetCached<T>(\n  readComputed: ReadComputed,\n  computed$: Computed<T>,\n  context: StoreContext,\n  mutation?: Mutation,\n): ComputedState<T> | undefined {\n  const signalState = context.stateMap.get(computed$) as ComputedState<T> | undefined;\n  if (!signalState) {\n    return undefined;\n  }\n\n  // If a computed is marked as potentially dirty, we should perform a\n  // thorough epoch check. Alternatively, we can check the mounted state since\n  // a mounted computed is always re-evaluated immediately.\n  // Unmounted caches also stay valid until the store's next write.\n  const writeVersion = context.writeVersion;\n  const mayDirty = (context.pendingMutation ?? mutation)?.potentialDirtyIds.has(computed$.id);\n  if (!mayDirty && (signalState.mounted || signalState.verifiedAt === writeVersion)) {\n    return signalState;\n  }\n\n  if (checkEpoch(readComputed, signalState, context, mutation)) {\n    signalState.verifiedAt = writeVersion;\n    if (mayDirty) {\n      mutation?.potentialDirtyIds.delete(computed$.id);\n    }\n    return signalState;\n  }\n\n  return undefined;\n}\n\nfunction wrapGet<T>(\n  readSignal: ReadSignal,\n  mount: Mount,\n  callerComputed$: Computed<T>,\n  callerState: ComputedState<T>,\n  context: StoreContext,\n  mutation?: Mutation,\n): [Getter, Map<Signal<unknown>, number>] {\n  const readDeps = new Map<Signal<unknown>, number>();\n\n  return [\n    (dep$) => {\n      const depState = readSignal(dep$, context, mutation);\n\n      if (callerState.dependencies === readDeps) {\n        readDeps.set(dep$, depState.epoch);\n\n        const callerMounted = !!callerState.mounted;\n        if (callerMounted && !depState.mounted) {\n          mount(dep$, context, mutation).readDepts.add(callerComputed$);\n        } else if (callerMounted && depState.mounted) {\n          depState.mounted.readDepts.add(callerComputed$);\n        }\n      }\n\n      if ('error' in depState) {\n        throw depState.error;\n      }\n\n      return depState.val;\n    },\n    readDeps,\n  ];\n}\n\nfunction getOrInitComputedState<T>(computed$: Computed<T>, context: StoreContext): ComputedState<T> {\n  let computedState: ComputedState<T> | undefined = context.stateMap.get(computed$) as ComputedState<T> | undefined;\n  if (!computedState) {\n    computedState = {\n      dependencies: new Map<Signal<unknown>, number>(),\n      epoch: -1,\n    } as ComputedState<T>;\n    context.stateMap.set(computed$, computedState);\n  }\n\n  return computedState;\n}\n\nfunction cleanupMissingDependencies<T>(\n  unmount: Unmount,\n  computed$: Computed<T>,\n  lastDeps: Map<Signal<unknown>, number>,\n  currDeps: Map<Signal<unknown>, number>,\n  context: StoreContext,\n  mutation?: Mutation,\n) {\n  for (const key of lastDeps.keys()) {\n    if (!currDeps.has(key)) {\n      const depState = context.stateMap.get(key);\n      depState?.mounted?.readDepts.delete(computed$);\n      unmount(key, context, mutation);\n    }\n  }\n}\n\ntype ComputedResult<T> =\n  | {\n      value: T;\n    }\n  | {\n      error: unknown;\n    };\n\nexport function evaluateComputed<T>(\n  readSignal: ReadSignal,\n  mount: Mount,\n  unmount: Unmount,\n  computed$: Computed<T>,\n  context: StoreContext,\n  mutation?: Mutation,\n): ComputedState<T> {\n  const writeVersion = context.writeVersion;\n  const computedState = getOrInitComputedState(computed$, context);\n  const previousEpoch = computedState.epoch;\n  const wasDirty = mutation?.potentialDirtyIds.has(computed$.id);\n\n  const lastDeps = computedState.dependencies;\n\n  const [_get, dependencies] = wrapGet(readSignal, mount, computed$, computedState, context, mutation);\n  computedState.dependencies = dependencies;\n\n  const previousController = computedState.abortController;\n  delete computedState.abortController;\n  previousController?.abort(`abort ${computed$.debugLabel ?? 'anonymous'} atom`);\n  let controller: AbortController | undefined;\n\n  let result: ComputedResult<T>;\n  try {\n    result = {\n      value: computed$.read(\n        function <U>(depAtom: Signal<U>) {\n          return withGeValInterceptor(() => _get(depAtom), depAtom, context.interceptor?.get);\n        },\n        {\n          get signal() {\n            if (!controller) {\n              controller = new AbortController();\n              // An older async evaluation may first request its signal after\n              // a newer evaluation has replaced its dependency map.\n              if (computedState.dependencies === dependencies) {\n                computedState.abortController = controller;\n              } else {\n                controller.abort(`abort ${computed$.debugLabel ?? 'anonymous'} atom`);\n              }\n            }\n            return controller.signal;\n          },\n        },\n      ),\n    };\n  } catch (error) {\n    result = {\n      error,\n    };\n  }\n\n  mutation?.potentialDirtyIds.delete(computed$.id);\n\n  cleanupMissingDependencies(unmount, computed$, lastDeps, dependencies, context, mutation);\n\n  if ('error' in result) {\n    if (!shouldDistinctError(computed$, result.error, context)) {\n      computedState.error = result.error;\n      delete computedState.val;\n      computedState.epoch += 1;\n    }\n  } else if (!shouldDistinct(computed$, result.value, context)) {\n    computedState.val = result.value;\n    delete computedState.error;\n    computedState.epoch += 1;\n  }\n\n  if (wasDirty && computedState.epoch !== previousEpoch) context.changedSignals.add(computed$);\n  computedState.verifiedAt = writeVersion;\n  return computedState;\n}\n","import type { Command, State, Computed, Signal, Updater, StateArg, Getter, Setter } from '../../../types/core/signal';\nimport type { Mutation, ReadComputed, StoreContext, StoreGet, SetArgs } from '../../../types/core/store';\nimport { shouldDistinct } from '../signal/signal';\nimport { withSetInterceptor } from '../interceptor';\n\ntype Flush = (context: StoreContext) => void;\n\n// Writes mark the current mounted graph, but do not evaluate it. Repeated\n// invalidations must still mark nodes whose dirty flag an eager get cleared.\nfunction markDirty(dependents: Set<Computed<unknown>>, context: StoreContext, mutation: Mutation) {\n  let queue = Array.from(dependents);\n  while (queue.length) {\n    const next: Computed<unknown>[] = [];\n    for (const computed$ of queue) {\n      // Jotai likewise stops at an already invalidated node (#2950). An\n      // eager read clears this flag, so a later write can invalidate it again.\n      if (mutation.potentialDirtyIds.has(computed$.id)) continue;\n      const computedState = context.stateMap.get(computed$);\n      if (!mutation.oldEpochs.has(computed$)) mutation.oldEpochs.set(computed$, computedState?.epoch);\n      mutation.potentialDirtyIds.add(computed$.id);\n      for (const dep of computedState?.mounted?.readDepts ?? []) next.push(dep);\n    }\n    queue = next;\n  }\n}\n\nfunction pullEvaluate(\n  readComputed: ReadComputed,\n  dependents: Set<Computed<unknown>>,\n  context: StoreContext,\n  mutation: Mutation,\n) {\n  let queue = Array.from(dependents);\n  const visited = new Set<Computed<unknown>>();\n  while (queue.length) {\n    const next: Computed<unknown>[] = [];\n    for (const computed$ of queue) {\n      if (visited.has(computed$)) continue;\n      visited.add(computed$);\n      const current = readComputed(computed$, context, mutation);\n      // Newly mounted roots already computed their initial value and must not\n      // receive an initial notification merely because an earlier write exists.\n      if (!mutation.oldEpochs.has(computed$) || mutation.oldEpochs.get(computed$) === current.epoch) continue;\n      context.changedSignals.add(computed$);\n      for (const dep of current.mounted?.readDepts ?? []) next.push(dep);\n    }\n    queue = next;\n  }\n}\n\nfunction getPendingMutation(context: StoreContext): Mutation {\n  // Like Jotai's store-owned invalidation collections, reuse cleared work\n  // buffers. Evaluation dependency Maps and AbortSignal owners are not reused.\n  return (context.pendingMutation ??= context.mutationWork ??=\n    {\n      potentialDirtyIds: new Set(),\n      oldEpochs: new Map(),\n      changedSources: new Set(),\n      flushing: false,\n    });\n}\n\nexport function flushMutation(readComputed: ReadComputed, context: StoreContext): boolean {\n  const mutation = context.pendingMutation;\n  if (!mutation) return true;\n  // A computed's old AbortSignal can synchronously cause a write while the new\n  // evaluation is being constructed. Finish that graph before firing listeners.\n  if (mutation.flushing) return false;\n  mutation.flushing = true;\n  try {\n    while (mutation.changedSources.size) {\n      const sources = Array.from(mutation.changedSources);\n      mutation.changedSources.clear();\n      for (const source of sources) {\n        const dependents = context.stateMap.get(source)?.mounted?.readDepts;\n        if (dependents?.size) pullEvaluate(readComputed, dependents, context, mutation);\n      }\n    }\n    mutation.potentialDirtyIds.clear();\n    mutation.oldEpochs.clear();\n    if (context.pendingMutation === mutation) context.pendingMutation = undefined;\n    return true;\n  } finally {\n    mutation.flushing = false;\n  }\n}\n\nfunction setState<T>(signal$: State<T>, context: StoreContext, value: StateArg<T>) {\n  let next: T;\n  if (typeof value === 'function') {\n    const updaterState = context.stateMap.get(signal$);\n    next = (value as Updater<T>)(updaterState ? (updaterState.val as T) : signal$.init);\n  } else {\n    next = value;\n  }\n  if (shouldDistinct(signal$, next, context)) return;\n  context.writeVersion += 1;\n  // Updaters are user code and can subscribe or write before returning.\n  // Preserve the state object/mounted listeners established during that call.\n  const oldState = context.stateMap.get(signal$);\n  if (oldState) {\n    oldState.val = next;\n    oldState.epoch += 1;\n  } else {\n    context.stateMap.set(signal$, { val: next, epoch: 0 });\n  }\n  // Like Jotai changedAtoms, this records real state changes even without a\n  // listener, and is also the public set entry's flush-work checkpoint.\n  context.changedSignals.add(signal$);\n  const dependents = oldState?.mounted?.readDepts;\n  if (dependents?.size) {\n    const mutation = getPendingMutation(context);\n    mutation.changedSources.add(signal$);\n    markDirty(dependents, context, mutation);\n  }\n}\n\nexport function set<T, Args extends SetArgs<T, unknown[]>>(\n  readComputed: ReadComputed,\n  writable$: State<T> | Command<T, Args>,\n  context: StoreContext,\n  get: StoreGet,\n  flush: Flush,\n  ...args: Args\n): undefined | T {\n  if ('read' in writable$) return;\n  if (!('write' in writable$)) {\n    setState(writable$, context, args[0]);\n    return;\n  }\n  let isSync = true;\n  const visitor: { get: Getter; set: Setter } = {\n    get: <U>(signal$: Signal<U>) => get(signal$, context),\n    set: <U, Params extends SetArgs<U, unknown[]>>(\n      child: State<U> | Command<U, Params>,\n      ...innerArgs: Params\n    ): undefined | U => {\n      try {\n        return withSetInterceptor(\n          () => set<U, Params>(readComputed, child, context, get, flush, ...innerArgs),\n          child,\n          context.interceptor?.set,\n          ...innerArgs,\n        );\n      } finally {\n        // Each write invocation owns this flag. Returning a Promise (or the\n        // setter itself) ends its synchronous phase, just as in Jotai.\n        if (!isSync) flush(context);\n      }\n    },\n  };\n  try {\n    return writable$.write(visitor, ...args);\n  } finally {\n    isSync = false;\n  }\n}\n","import type { State } from '../../../types/core/signal';\nimport type { StateState, StoreContext } from '../../../types/core/store';\n\nexport function readState<T>(state: State<T>, context: StoreContext): StateState<T> {\n  const atomState = context.stateMap.get(state);\n  if (!atomState) {\n    const initState = {\n      val: state.init,\n      epoch: 0,\n    };\n    context.stateMap.set(state, initState);\n    return initState as StateState<T>;\n  }\n\n  return atomState as StateState<T>;\n}\n","import type { Computed, Signal } from '../../../types/core/signal';\nimport type {\n  ComputedState,\n  Mounted,\n  Mutation,\n  ReadSignal,\n  SignalState,\n  StoreContext,\n} from '../../../types/core/store';\nimport { isComputedState } from '../typing-util';\n\nfunction unmountComputedDependencies<T>(\n  computed$: Computed<T>,\n  computedState: ComputedState<T>,\n  context: StoreContext,\n  mutation?: Mutation,\n) {\n  for (const [dep] of Array.from(computedState.dependencies)) {\n    context.stateMap.get(dep)?.mounted?.readDepts.delete(computed$ as Computed<unknown>);\n    unmount(dep, context, mutation);\n  }\n}\n\nfunction mountComputedDependencies<T>(\n  readSignal: ReadSignal,\n  computed$: Computed<T>,\n  computedState: ComputedState<T>,\n  context: StoreContext,\n  mutation?: Mutation,\n) {\n  for (const [dep] of Array.from(computedState.dependencies)) {\n    const mounted = mount(readSignal, dep, context, mutation);\n    mounted.readDepts.add(computed$ as Computed<unknown>);\n  }\n}\n\nfunction initMount<T>(readSignal: ReadSignal, signal$: Signal<T>, context: StoreContext, mutation?: Mutation): Mounted {\n  context.interceptor?.mount?.(signal$);\n\n  const signalState = readSignal(signal$, context, mutation);\n\n  signalState.mounted = {\n    readDepts: new Set(),\n    listeners: new Set(),\n  };\n\n  if (isComputedState(signalState)) {\n    mountComputedDependencies(readSignal, signal$ as Computed<unknown>, signalState, context, mutation);\n  }\n\n  return signalState.mounted;\n}\n\nexport function mount<T>(\n  readSignal: ReadSignal,\n  signal$: Signal<T>,\n  context: StoreContext,\n  mutation?: Mutation,\n): Mounted {\n  const mounted = context.stateMap.get(signal$)?.mounted;\n  if (mounted) {\n    return mounted;\n  }\n\n  return initMount(readSignal, signal$, context, mutation);\n}\n\nfunction doUnmount<T>(\n  signal$: Signal<T>,\n  signalState: SignalState<T>,\n  context: StoreContext,\n  mutation?: Mutation,\n): void {\n  context.interceptor?.unmount?.(signal$);\n\n  if (isComputedState(signalState)) {\n    unmountComputedDependencies(signal$ as Computed<unknown>, signalState, context, mutation);\n  }\n\n  signalState.mounted = undefined;\n}\n\nexport function unmount<T>(signal$: Signal<T>, context: StoreContext, mutation?: Mutation): void {\n  const signalState = context.stateMap.get(signal$);\n  if (!signalState?.mounted || signalState.mounted.readDepts.size || signalState.mounted.listeners.size) {\n    return;\n  }\n\n  doUnmount(signal$, signalState, context, mutation);\n}\n","import type { Command, Getter, Setter, Signal, State, Computed } from '../../../types/core/signal';\nimport type {\n  StateMap,\n  Store,\n  StoreContext,\n  StoreOptions,\n  ComputedState,\n  Mounted,\n  Mutation,\n  ReadComputed,\n  SignalState,\n  StoreGet,\n  StoreSet,\n  SetArgs,\n  Watcher,\n  StoreWatch,\n} from '../../../types/core/store';\nimport { evaluateComputed, tryGetCached } from '../signal/computed';\nimport { withComputedInterceptor, withGetInterceptor, withSetInterceptor } from '../interceptor';\nimport { flushMutation, set as innerSet } from './set';\nimport { readState } from '../signal/state';\nimport { canReadAsCompute } from '../typing-util';\nimport { mount as innerMount, unmount } from './sub';\n\nconst readComputed: ReadComputed = <T>(\n  computed$: Computed<T>,\n  context: StoreContext,\n  mutation?: Mutation,\n): ComputedState<T> => {\n  const cachedState = tryGetCached(readComputed, computed$, context, mutation);\n  if (cachedState) {\n    return cachedState;\n  }\n\n  return withComputedInterceptor(\n    () => {\n      return evaluateComputed(readSignal, mount, unmount, computed$, context, mutation);\n    },\n    computed$,\n    context.interceptor?.computed,\n  );\n};\n\nfunction readSignal<T>(signal$: Signal<T>, context: StoreContext, mutation?: Mutation): SignalState<T> {\n  mutation = context.pendingMutation ?? mutation;\n  if (canReadAsCompute(signal$)) {\n    return readComputed(signal$, context, mutation);\n  }\n\n  return readState(signal$, context);\n}\n\nfunction mount<T>(signal$: Signal<T>, context: StoreContext, mutation?: Mutation): Mounted {\n  return innerMount(readSignal, signal$, context, mutation);\n}\n\nconst storeGet: StoreGet = (signal, context, mutation) => {\n  return withGetInterceptor(\n    () => {\n      const signalState = readSignal(signal, context, mutation);\n      if ('error' in signalState) {\n        throw signalState.error as Error;\n      }\n\n      return signalState.val;\n    },\n    signal,\n    context.interceptor?.get,\n  );\n};\n\nconst storeSet: StoreSet = <T, Args extends SetArgs<T, unknown[]>>(\n  atom: State<T> | Command<T, Args>,\n  context: StoreContext,\n  ...args: Args\n): T | undefined => {\n  return withSetInterceptor<T, Args>(\n    () => {\n      const previousChangedSize = context.changedSignals.size;\n      try {\n        return innerSet<T, Args>(readComputed, atom, context, storeGet, flushPending, ...args);\n      } finally {\n        if (context.changedSignals.size !== previousChangedSize) flushPending(context);\n      }\n    },\n    atom,\n    context.interceptor?.set,\n    ...args,\n  );\n};\n\nfunction flushPending(context: StoreContext): void {\n  if (flushMutation(readComputed, context)) flushCallbacks(context);\n}\n\nfunction flushCallbacks(context: StoreContext): void {\n  if (!context.changedSignals.size) return;\n  const errors: unknown[] = [];\n  do {\n    // changedSignals is also write-boundary bookkeeping. It may contain only\n    // unobserved sources, so do not allocate notification work until needed.\n    let callbacks: Set<() => void> | undefined;\n    for (const signal$ of context.changedSignals) {\n      const listeners = context.stateMap.get(signal$)?.mounted?.listeners;\n      if (listeners?.size) {\n        callbacks ??= new Set();\n        for (const listener of listeners) callbacks.add(listener);\n      }\n    }\n    context.changedSignals.clear();\n    if (!callbacks) continue;\n    for (const callback of callbacks) {\n      try {\n        callback();\n      } catch (error) {\n        errors.push(error);\n      }\n    }\n  } while (context.changedSignals.size);\n  if (errors.length) {\n    const AggregateErrorCtor = (\n      globalThis as typeof globalThis & {\n        AggregateError?: new (errors: unknown[]) => Error;\n      }\n    ).AggregateError;\n    if (AggregateErrorCtor) throw new AggregateErrorCtor(errors);\n    throw Object.assign(new Error(), { errors });\n  }\n}\n\nconst storeWatch: StoreWatch = (signal$, context, listener) => {\n  if (!('read' in signal$) && !('init' in signal$)) throw new TypeError('watch requires a state or computed');\n  const mounted = innerMount(readSignal, signal$, context);\n  mounted.listeners.add(listener);\n  flushPending(context);\n  let subscription:\n    | { signal: Signal<unknown>; mounted: Mounted; listener: () => void; context: StoreContext }\n    | undefined = {\n    signal: signal$,\n    mounted,\n    listener,\n    context,\n  };\n  return () => {\n    const current = subscription;\n    if (!current) return;\n    // An owner may retain its disposed cleanup function. Release the captured\n    // signal/listener so that retention cannot keep an unmounted graph alive.\n    subscription = undefined;\n    current.mounted.listeners.delete(current.listener);\n    unmount(current.signal, current.context);\n    flushPending(current.context);\n  };\n};\n\nexport class StoreImpl implements Store {\n  protected readonly stateMap: StateMap = new WeakMap();\n  protected readonly context: StoreContext;\n\n  constructor(protected readonly options?: StoreOptions) {\n    this.context = {\n      stateMap: this.stateMap,\n      interceptor: this.options?.interceptor,\n      writeVersion: 0,\n      changedSignals: new Set(),\n      pendingMutation: undefined,\n      mutationWork: undefined,\n    };\n  }\n\n  get: Getter = <T>(atom: Signal<T>): T => {\n    return storeGet(atom, this.context);\n  };\n\n  set: Setter = <T, Args extends SetArgs<T, unknown[]>>(\n    atom: State<T> | Command<T, Args>,\n    ...args: Args\n  ): undefined | T => {\n    return storeSet<T, Args>(atom, this.context, ...args);\n  };\n\n  watch: Watcher = (signal$, listener) => {\n    return storeWatch(signal$, this.context, listener);\n  };\n}\n\nexport function createStore(): Store {\n  return new StoreImpl();\n}\n"],"names":["globalId","generateToString","id","prefix","debugLabel","label","concat","String","state","init","options","ret","toString","computed","read","command","write","withSetInterceptor","fn","writable$","interceptor","result","called","wrappedFn","data","_len","arguments","length","args","Array","_key","apply","Error","withGetInterceptor","signal","withComputedInterceptor","val","withGeValInterceptor","canReadAsCompute","atom","isComputedState","shouldDistinct","value","context","signalState","stateMap","get","shouldDistinctError","error","checkEpoch","readComputed","computedState","mutation","_iterator","_createForOfIteratorHelper","dependencies","entries","_step","s","n","done","_context$stateMap$get","_step$value","_slicedToArray","dep","epoch","depEpoch","err","e","f","tryGetCached","computed$","_ref","_context$pendingMutat","undefined","writeVersion","mayDirty","pendingMutation","potentialDirtyIds","has","mounted","verifiedAt","wrapGet","readSignal","mount","callerComputed$","callerState","readDeps","Map","dep$","depState","set","callerMounted","readDepts","add","getOrInitComputedState","cleanupMissingDependencies","unmount","lastDeps","currDeps","_iterator2","keys","_step2","key","_depState$mounted","evaluateComputed","_computed$$debugLabel","previousEpoch","wasDirty","_wrapGet","_wrapGet2","_get","previousController","abortController","abort","controller","depAtom","_context$interceptor","AbortController","_computed$$debugLabel2","changedSignals","markDirty","dependents","queue","from","next","_computedState$mounte","_computedState$mounte2","oldEpochs","push","pullEvaluate","visited","Set","_iterator3","_step3","_current$mounted$read","_current$mounted","current","_iterator4","_step4","getPendingMutation","_context$mutationWork","mutationWork","changedSources","flushing","flushMutation","size","sources","clear","_i","_sources","source","setState","signal$","_oldState$mounted","updaterState","oldState","flush","isSync","visitor","child","_len2","innerArgs","_key2","readState","atomState","initState","unmountComputedDependencies","_Array$from","_Array$from$_i","mountComputedDependencies","_i2","_Array$from2","_Array$from2$_i","initMount","_context$interceptor$","call","listeners","_context$stateMap$get2","doUnmount","_context$interceptor2","_context$interceptor3","cachedState","innerMount","storeGet","storeSet","previousChangedSize","innerSet","flushPending","flushCallbacks","errors","callbacks","_callbacks","listener","callback","AggregateErrorCtor","globalThis","AggregateError","Object","assign","storeWatch","TypeError","subscription","StoreImpl","_createClass","_this","_this$options","_classCallCheck","_defineProperty","WeakMap","createStore"],"mappings":"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"}