@reckona/mreact-compat 0.0.187 → 0.0.188
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/class-component.js.map +1 -1
- package/dist/dom-props.d.ts.map +1 -1
- package/dist/element.d.ts.map +1 -1
- package/dist/element.js.map +1 -1
- package/dist/event-replay.js.map +1 -1
- package/dist/events.js.map +1 -1
- package/dist/fiber-commit.js.map +1 -1
- package/dist/fiber-work-loop.js.map +1 -1
- package/dist/fiber.js.map +1 -1
- package/dist/flight-parser.js.map +1 -1
- package/dist/flight-protocol.d.ts.map +1 -1
- package/dist/flight.js.map +1 -1
- package/dist/hooks.js.map +1 -1
- package/dist/host-reconciler.js.map +1 -1
- package/dist/hydration.js.map +1 -1
- package/dist/react-default.d.ts.map +1 -1
- package/dist/reconciler.js.map +1 -1
- package/dist/root.js.map +1 -1
- package/dist/scheduler.d.ts.map +1 -1
- package/dist/server-render.d.ts.map +1 -1
- package/dist/server-render.js.map +1 -1
- package/package.json +4 -4
package/dist/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n flushPendingComputed,\n flushQueuedComputations,\n notifySubscribers,\n trackSource,\n type Source,\n} from \"@reckona/mreact-reactive-core/internal\";\nimport { scheduleCallback } from \"./fiber-scheduler.js\";\nimport { removeChildIfPresent } from \"./dom-children.js\";\nimport {\n type ReactCompatContextLike,\n isReactCompatContext,\n readContextValue,\n useContext,\n withContextReadObserver,\n} from \"./context.js\";\nimport {\n REACTIVE_STATE_BINDING_META,\n REACTIVE_TEXT_BINDING_META,\n} from \"./element.js\";\nimport { isThenable } from \"./thenable.js\";\n\nexport interface RootRuntime {\n currentElement?: unknown;\n instances: Map<string, ComponentInstance>;\n instanceKeysByPrefix: Map<string, Set<string>>;\n activeInstanceKeys: Set<string> | undefined;\n activeProfilerPaths: Set<string> | undefined;\n mountedProfilerPaths: Set<string>;\n profilerBaseDurations: Map<string, number>;\n pendingProfilerCommits: PendingProfilerCommit[];\n pendingInsertionEffects: PendingEffect[];\n pendingImperativeHandleEffects: PendingEffect[];\n pendingLayoutEffects: PendingEffect[];\n pendingEffects: PendingEffect[];\n externalStoreChecks: ExternalStoreCheck[];\n portalContainers: Set<Element>;\n portalNodes: Map<Element, Set<Node>>;\n idCounter: number;\n identifierPrefix: string;\n idMode: \"client\" | \"server\";\n strictModeDepth: number;\n strictReplayDepth: number;\n strictMemoCapture: unknown[] | undefined;\n strictMemoCaptureByHook: Map<string, unknown> | undefined;\n strictMemoReplay: { values: readonly unknown[]; index: number } | undefined;\n strictMemoReplayByHook: ReadonlyMap<string, unknown> | undefined;\n profilerFlushDepth: number;\n effectFlushPhase: \"insertion\" | \"imperative-handle\" | \"layout\" | \"normal\" | undefined;\n externalStoreUpdate: boolean;\n renderPhaseUpdate: boolean;\n rerender(priority?: RenderPriority): void;\n beginRender(): void;\n endRender(committed?: boolean): void;\n flushEffects(): void;\n dispose(): void;\n}\n\ninterface ComponentInstance {\n owner: unknown | undefined;\n path: string;\n hooks: HookSlot[];\n hookIndex: number;\n dirty: boolean;\n disposed?: boolean;\n contextDependencies?: Map<ReactCompatContextLike<unknown>, unknown>;\n devToolsHooks?: DevToolsHookValue[];\n devToolsHookTypes?: string[];\n devToolsHookSuppressionDepth: number;\n}\n\ntype EffectCallback = () => void | (() => void);\ntype ProfilerPhase = \"mount\" | \"update\" | \"nested-update\";\ntype ProfilerOnRender = (\n id: string,\n phase: ProfilerPhase,\n actualDuration: number,\n baseDuration: number,\n startTime: number,\n commitTime: number,\n) => void;\n\ninterface PendingEffect {\n slot: Extract<HookSlot, { kind: \"effect\" }>;\n}\n\ninterface PendingProfilerCommit {\n id: string;\n phase: ProfilerPhase;\n onRender: ProfilerOnRender;\n actualDuration: number;\n baseDuration: number;\n startTime: number;\n}\n\ninterface ExternalStoreCheck {\n getSnapshot: () => unknown;\n value: unknown;\n}\n\n/** Cache scope that stores memoized cache() results and cancellation state. */\nexport interface CacheScope {\n functionCaches: WeakMap<(...args: never[]) => unknown, CacheTrieNode>;\n controller: AbortController;\n ownerStack: string[];\n}\n\ninterface CacheTrieNode {\n primitiveChildren: Map<unknown, CacheTrieNode>;\n objectChildren: WeakMap<object, CacheTrieNode>;\n status?: \"fulfilled\" | \"rejected\";\n value?: unknown;\n reason?: unknown;\n}\n\nexport interface DevToolsHookState {\n hooks: DevToolsHookValue[];\n hookTypes: string[];\n}\n\nexport type DevToolsHookValue =\n | { kind: \"state\"; value: unknown }\n | { kind: \"reducer\"; value: unknown }\n | { kind: \"store\"; value: unknown }\n | { kind: \"ref\"; value: unknown }\n | { kind: \"memo\"; value: unknown; deps?: readonly unknown[] }\n | { kind: \"callback\"; value: unknown; deps?: readonly unknown[] }\n | { kind: \"id\"; value: unknown }\n | { kind: \"imperative-handle\"; deps?: readonly unknown[] }\n | { kind: \"transition\"; value: unknown }\n | { kind: \"deferred\"; value: unknown }\n | { kind: \"debug\"; value: unknown }\n | { kind: \"effect\"; effectKind: \"insertion\" | \"layout\" | \"normal\"; deps?: readonly unknown[] };\n\ntype HookSlot =\n | {\n kind: \"state\";\n value: unknown;\n dispatch?: (value: unknown) => void;\n hostCommitValue?: unknown;\n textBinding?: ReactiveTextBinding;\n stateBinding?: ReactiveStateBinding;\n }\n | {\n kind: \"action-state\";\n state: unknown;\n pendingCount: number;\n action: (previousState: unknown, payload: unknown) => unknown;\n dispatch?: (payload: unknown) => void;\n error?: unknown;\n }\n | {\n kind: \"optimistic\";\n baseState: unknown;\n optimisticState: unknown;\n update: (state: unknown, payload: unknown) => unknown;\n dispatch?: (payload: unknown) => void;\n }\n | {\n kind: \"store\";\n value: unknown;\n getSnapshot?: () => unknown;\n hasMounted?: boolean;\n hostCommitValue?: unknown;\n }\n | { kind: \"ref\"; value: { current: unknown } }\n | { kind: \"memo\"; value: unknown; deps?: readonly unknown[] }\n | { kind: \"debug\"; value: unknown }\n | {\n kind: \"effect\";\n effectKind: \"insertion\" | \"imperative-handle\" | \"layout\" | \"normal\";\n callback: EffectCallback;\n deps?: readonly unknown[];\n cleanup?: () => void;\n disposed?: boolean;\n mounted?: boolean;\n strictReplay?: boolean;\n };\n\ninterface PendingInstanceContext {\n runtime: RootRuntime;\n path: string;\n owner: unknown;\n existing: ComponentInstance | undefined;\n}\n\ninterface HookRenderState {\n currentRuntime: RootRuntime | undefined;\n currentInstance: ComponentInstance | undefined;\n // Deferred instance for the component currently rendering. The instance is\n // only materialized (created, registered, prefix-indexed) when a hook or a\n // context read first needs it, so components with no hooks/context (e.g. a\n // pure host-rendering memo row) pay none of that per-render cost.\n pendingInstance: PendingInstanceContext | undefined;\n currentCacheScope: CacheScope | undefined;\n hostCommitDepth: number;\n queuedHostCommitRerenders: Set<RootRuntime>;\n queuedEffectFlushRerenders: Set<RootRuntime>;\n}\n\nconst HOOK_RENDER_STATE_KEY = Symbol.for(\"modular.react.hook_render_state\");\nconst hookRenderState =\n ((globalThis as typeof globalThis & Record<symbol, HookRenderState | undefined>)[\n HOOK_RENDER_STATE_KEY\n ] ??= {\n currentRuntime: undefined,\n currentInstance: undefined,\n pendingInstance: undefined,\n currentCacheScope: undefined,\n hostCommitDepth: 0,\n queuedHostCommitRerenders: new Set<RootRuntime>(),\n queuedEffectFlushRerenders: new Set<RootRuntime>(),\n });\nconst CACHE_SCOPE_SYMBOL = Symbol.for(\"modular.react.cache_scope\");\nlet cacheScopeStorage = createCacheScopeStorage();\nlet fallbackAsyncCacheScopeActive = false;\nconst emptyCacheOwnerStack: string[] = [];\nlet syncVersion = 0;\nlet transitionVersion = 0;\nlet transitionDepth = 0;\nlet currentTransitionContext: TransitionContext | undefined;\nlet transitionRerenderScheduled = false;\nlet eventBatchDepth = 0;\nlet currentEventPriority: EventPriority = \"default\";\nlet eventRerenderScheduled = false;\nlet automaticRerenderScheduled = false;\nlet effectFlushRerenderDepth = 0;\nlet hostCommitRerenderDepth = 0;\nlet strictMemoOwnerId = 0;\nconst strictMemoObjectOwnerIds = new WeakMap<object, number>();\nconst queuedTransitionRerenders = new Map<RootRuntime, TransitionContext>();\nconst queuedEventRerenders = new Set<RootRuntime>();\n/** React version string matched by the compatibility layer. */\nexport const version = \"19.2.6\";\n\nexport interface ReactiveTextBinding {\n value: unknown;\n subscribers: Set<Text>;\n}\n\nexport interface ReactiveStateBinding {\n get(): unknown;\n source: Source;\n value: unknown;\n}\n\nconst reactiveTextBindingsByNode = new WeakMap<Text, ReactiveTextBinding>();\nconst hydratedIdsByRuntime = new WeakMap<RootRuntime, Map<string, string>>();\n\n/** Flushes React-compatible updates produced inside a test interaction. */\nexport function act<T>(callback: () => T): T extends PromiseLike<unknown> ? Promise<void> : void {\n const previousPriority = currentEventPriority;\n currentEventPriority = \"discrete\";\n eventBatchDepth += 1;\n let result: T;\n\n try {\n result = callback();\n } catch (error) {\n eventBatchDepth -= 1;\n currentEventPriority = previousPriority;\n if (eventBatchDepth === 0) {\n flushEventRerendersForPriority(\"discrete\");\n }\n throw error;\n }\n\n const finishActScope = (): void => {\n eventBatchDepth -= 1;\n currentEventPriority = previousPriority;\n if (eventBatchDepth === 0) {\n flushEventRerendersForPriority(\"discrete\");\n }\n };\n\n if (isThenable(result)) {\n return Promise.resolve(result).then(\n async () => {\n finishActScope();\n await flushActWorkAsync();\n },\n (error: unknown) => {\n finishActScope();\n throw error;\n },\n ) as T extends PromiseLike<unknown> ? Promise<void> : void;\n }\n\n finishActScope();\n flushActWork();\n return undefined as T extends PromiseLike<unknown>\n ? Promise<void>\n : void;\n}\n\nasync function flushActWorkAsync(): Promise<void> {\n for (let attempt = 0; attempt < 10; attempt += 1) {\n await Promise.resolve();\n flushActWork();\n }\n for (let attempt = 0; attempt < 3; attempt += 1) {\n await new Promise((resolve) => setTimeout(resolve, 0));\n flushActWork();\n }\n}\n\nfunction flushActWork(): void {\n flushQueuedEventRerenders(\"sync\");\n flushQueuedTransitionRerenders();\n flushHostCommitRerenders();\n flushEffectFlushRerenders();\n}\n\n/** Priority category used while batching an event callback. */\nexport type EventPriority = \"discrete\" | \"continuous\" | \"default\";\nexport type RenderPriority = \"sync\" | \"transition\" | \"continuous\";\n\ninterface TransitionContext {\n syncVersion: number;\n transitionVersion: number;\n}\n\nexport interface RootRuntimeOptions {\n identifierPrefix?: string;\n idMode?: \"client\" | \"server\";\n}\n\nexport interface RuntimeSnapshot {\n instanceKeys: Set<string>;\n portalContainers: Set<Element>;\n portalNodes: Map<Element, Set<Node>>;\n pendingInsertionEffectsLength: number;\n pendingImperativeHandleEffectsLength: number;\n pendingLayoutEffectsLength: number;\n pendingEffectsLength: number;\n pendingProfilerCommitsLength: number;\n profilerBaseDurations: Map<string, number>;\n idCounter: number;\n identifierPrefix: string;\n idMode: \"client\" | \"server\";\n strictModeDepth: number;\n strictReplayDepth: number;\n strictMemoCapture: unknown[] | undefined;\n strictMemoCaptureByHook: Map<string, unknown> | undefined;\n strictMemoReplay: { values: readonly unknown[]; index: number } | undefined;\n strictMemoReplayByHook: ReadonlyMap<string, unknown> | undefined;\n profilerFlushDepth: number;\n}\n\nexport function createRootRuntime(\n rerender: (priority?: RenderPriority) => void,\n options: RootRuntimeOptions = {},\n): RootRuntime {\n return {\n instances: new Map(),\n instanceKeysByPrefix: new Map(),\n activeInstanceKeys: undefined,\n activeProfilerPaths: undefined,\n mountedProfilerPaths: new Set(),\n profilerBaseDurations: new Map(),\n pendingProfilerCommits: [],\n pendingInsertionEffects: [],\n pendingImperativeHandleEffects: [],\n pendingLayoutEffects: [],\n pendingEffects: [],\n externalStoreChecks: [],\n portalContainers: new Set(),\n portalNodes: new Map(),\n idCounter: 0,\n identifierPrefix: options.identifierPrefix ?? \"\",\n idMode: options.idMode ?? \"client\",\n strictModeDepth: 0,\n strictReplayDepth: 0,\n strictMemoCapture: undefined,\n strictMemoCaptureByHook: undefined,\n strictMemoReplay: undefined,\n strictMemoReplayByHook: undefined,\n profilerFlushDepth: 0,\n effectFlushPhase: undefined,\n externalStoreUpdate: false,\n renderPhaseUpdate: false,\n rerender,\n beginRender() {\n this.activeInstanceKeys = new Set();\n this.activeProfilerPaths = new Set();\n this.pendingProfilerCommits = [];\n this.pendingInsertionEffects = [];\n this.pendingImperativeHandleEffects = [];\n this.pendingLayoutEffects = [];\n this.pendingEffects = [];\n this.externalStoreChecks = [];\n this.renderPhaseUpdate = false;\n },\n endRender(committed = true) {\n const profilerCommits = committed ? this.pendingProfilerCommits.splice(0) : [];\n const activeProfilerPaths = this.activeProfilerPaths;\n if (committed) {\n cleanupInactiveInstances(this);\n this.mountedProfilerPaths =\n activeProfilerPaths === undefined ? new Set() : new Set(activeProfilerPaths);\n } else {\n this.pendingProfilerCommits = [];\n }\n this.activeInstanceKeys = undefined;\n this.activeProfilerPaths = undefined;\n hookRenderState.currentRuntime = undefined;\n hookRenderState.currentInstance = undefined;\n if (committed) {\n flushProfilerCommits(this, profilerCommits);\n }\n },\n flushEffects() {\n this.profilerFlushDepth += 1;\n try {\n this.effectFlushPhase = \"insertion\";\n flushPendingEffects(this.pendingInsertionEffects);\n this.effectFlushPhase = \"imperative-handle\";\n flushPendingEffects(this.pendingImperativeHandleEffects);\n this.effectFlushPhase = \"layout\";\n const strictLayoutEffects = flushPendingEffects(this.pendingLayoutEffects);\n if (flushHostCommitRerenders()) {\n dedupePendingEffects(this.pendingEffects);\n }\n this.effectFlushPhase = \"normal\";\n const strictEffects = flushPendingEffects(this.pendingEffects);\n this.effectFlushPhase = undefined;\n const strictReplayEffects = [...strictLayoutEffects, ...strictEffects];\n cleanupStrictEffects(strictReplayEffects);\n replayStrictEffects(strictReplayEffects);\n } finally {\n this.effectFlushPhase = undefined;\n this.profilerFlushDepth -= 1;\n if (this.profilerFlushDepth === 0) {\n flushHostCommitRerenders();\n flushEffectFlushRerenders();\n this.externalStoreUpdate = false;\n }\n }\n },\n dispose() {\n for (const instance of this.instances.values()) {\n cleanupInstance(instance);\n }\n\n this.pendingLayoutEffects = [];\n this.pendingInsertionEffects = [];\n this.pendingEffects = [];\n this.pendingProfilerCommits = [];\n this.activeProfilerPaths = undefined;\n this.mountedProfilerPaths.clear();\n this.profilerBaseDurations.clear();\n clearRuntimePortalNodes(this);\n },\n };\n}\n\n/** Creates an isolated cache scope for cache() and cacheSignal(). */\nexport function createCacheScope(): CacheScope {\n return {\n functionCaches: new WeakMap(),\n controller: new AbortController(),\n ownerStack: [],\n };\n}\n\n/** Clears a cache scope and aborts work tied to its previous signal. */\nexport function refreshCacheScope(scope: CacheScope): void {\n scope.controller.abort();\n scope.functionCaches = new WeakMap();\n scope.controller = new AbortController();\n}\n\n/** Runs a callback with a cache scope active for nested cache() calls. */\nexport function runWithCacheScope<T>(scope: CacheScope, callback: () => T): T {\n if (cacheScopeStorage !== undefined) {\n return cacheScopeStorage.run(scope, callback);\n }\n\n if (fallbackAsyncCacheScopeActive) {\n throw new Error(\n \"mreact cache scope requires AsyncLocalStorage for concurrent async server renders.\",\n );\n }\n\n const previousScope = hookRenderState.currentCacheScope;\n const previousGlobalScope = getGlobalCacheScope();\n hookRenderState.currentCacheScope = scope;\n setGlobalCacheScope(scope);\n\n try {\n const result = callback();\n\n if (isThenable(result)) {\n fallbackAsyncCacheScopeActive = true;\n return Promise.resolve(result).finally(() => {\n fallbackAsyncCacheScopeActive = false;\n hookRenderState.currentCacheScope = previousScope;\n setGlobalCacheScope(previousGlobalScope);\n }) as T;\n }\n\n hookRenderState.currentCacheScope = previousScope;\n setGlobalCacheScope(previousGlobalScope);\n return result;\n } catch (error) {\n hookRenderState.currentCacheScope = previousScope;\n setGlobalCacheScope(previousGlobalScope);\n throw error;\n }\n}\n\nexport function renderWithProfiler<T>(\n runtime: RootRuntime,\n path: string,\n props: Record<string, unknown>,\n render: () => T,\n): T {\n const startTime = getCurrentTime();\n const phase: ProfilerPhase =\n runtime.profilerFlushDepth > 0 || effectFlushRerenderDepth > 0\n ? \"nested-update\"\n : runtime.mountedProfilerPaths.has(path)\n ? \"update\"\n : \"mount\";\n\n try {\n return render();\n } finally {\n runtime.activeProfilerPaths?.add(path);\n const onRender = props.onRender;\n const id = props.id;\n\n if (typeof onRender === \"function\" && typeof id === \"string\") {\n const actualDuration = Math.max(0, getCurrentTime() - startTime);\n const baseDuration = Math.max(\n runtime.profilerBaseDurations.get(path) ?? 0,\n actualDuration,\n );\n runtime.profilerBaseDurations.set(path, baseDuration);\n runtime.pendingProfilerCommits.push({\n id,\n phase,\n onRender: onRender as ProfilerOnRender,\n actualDuration,\n baseDuration,\n startTime,\n });\n }\n }\n}\n\nexport function renderWithRootRuntime<T>(\n runtime: RootRuntime,\n path: string,\n render: () => T,\n owner?: unknown,\n): T {\n const previousRuntime = hookRenderState.currentRuntime;\n const previousInstance = hookRenderState.currentInstance;\n const previousPending = hookRenderState.pendingInstance;\n\n let existing = runtime.instances.get(path);\n if (existing !== undefined && owner !== undefined && existing.owner !== owner) {\n cleanupInstance(existing);\n runtime.instances.delete(path);\n removeInstanceKeyFromIndex(runtime, path);\n existing = undefined;\n }\n\n // Defer instance materialization: hooks / context reads call\n // materializeInstance() lazily. A component that touches neither never\n // allocates or registers an instance.\n hookRenderState.currentRuntime = runtime;\n hookRenderState.currentInstance = undefined;\n hookRenderState.pendingInstance = { runtime, path, owner, existing };\n\n try {\n return withContextReadObserver(recordContextDependency, render);\n } finally {\n hookRenderState.currentRuntime = previousRuntime;\n hookRenderState.currentInstance = previousInstance;\n hookRenderState.pendingInstance = previousPending;\n }\n}\n\n// Materialize the deferred instance for the rendering component the first time\n// a hook or context read needs it.\nfunction materializeInstance(): ComponentInstance {\n const pending = hookRenderState.pendingInstance;\n if (pending === undefined) {\n throw new Error(\"Hooks can only be called while rendering.\");\n }\n\n const { runtime, path, owner } = pending;\n let instance = pending.existing;\n if (instance === undefined) {\n instance = {\n owner,\n path,\n hooks: [],\n hookIndex: 0,\n dirty: false,\n devToolsHookSuppressionDepth: 0,\n };\n runtime.instances.set(path, instance);\n indexInstanceKey(runtime, path);\n } else {\n instance.owner = owner;\n }\n runtime.activeInstanceKeys?.add(path);\n instance.hookIndex = 0;\n instance.dirty = false;\n instance.disposed = false;\n delete instance.contextDependencies;\n if (hasInstalledDevToolsHook()) {\n instance.devToolsHooks = [];\n instance.devToolsHookTypes = [];\n } else {\n delete instance.devToolsHooks;\n delete instance.devToolsHookTypes;\n }\n instance.devToolsHookSuppressionDepth = 0;\n hookRenderState.currentInstance = instance;\n hookRenderState.pendingInstance = undefined;\n return instance;\n}\n\nfunction recordContextDependency(\n context: ReactCompatContextLike<unknown>,\n value: unknown,\n): void {\n const instance = hookRenderState.currentInstance ?? materializeInstance();\n (instance.contextDependencies ??= new Map()).set(context, value);\n}\n\nexport function hasChangedContextDependency(\n runtime: RootRuntime,\n keys: readonly string[],\n): boolean {\n for (const key of keys) {\n const dependencies = runtime.instances.get(key)?.contextDependencies;\n\n if (dependencies === undefined) {\n continue;\n }\n\n for (const [context, value] of dependencies) {\n if (!Object.is(readContextValue(context), value)) {\n return true;\n }\n }\n }\n\n return false;\n}\n\nexport function hasContextDependency(\n runtime: RootRuntime,\n keys: readonly string[],\n): boolean {\n return keys.some((key) => runtime.instances.get(key)?.contextDependencies !== undefined);\n}\n\n// Shared read-only empty result so components with no registered instances\n// (e.g. hookless rows under lazy instance materialization) don't each allocate\n// a fresh array. Callers treat instance-key lists as read-only.\nconst EMPTY_INSTANCE_KEYS: string[] = [];\n\nexport function collectRuntimeInstanceKeys(runtime: RootRuntime, prefix: string): string[] {\n const keys = runtime.instanceKeysByPrefix.get(prefix);\n\n if (keys === undefined) {\n return EMPTY_INSTANCE_KEYS;\n }\n\n let activeKeys: string[] | undefined;\n\n for (const key of keys) {\n if (runtime.instances.has(key)) {\n (activeKeys ??= []).push(key);\n }\n }\n\n return activeKeys ?? EMPTY_INSTANCE_KEYS;\n}\n\nexport function getDevToolsHookState(\n runtime: RootRuntime,\n path: string,\n): DevToolsHookState | undefined {\n const instance = runtime.instances.get(path);\n\n if (\n instance === undefined ||\n instance.devToolsHooks === undefined ||\n instance.devToolsHookTypes === undefined\n ) {\n return undefined;\n }\n\n return {\n hooks: [...instance.devToolsHooks],\n hookTypes: [...instance.devToolsHookTypes],\n };\n}\n\nexport function renderWithStrictMode<T>(\n runtime: RootRuntime,\n render: () => T,\n): T {\n runtime.strictModeDepth += 1;\n\n try {\n return render();\n } finally {\n runtime.strictModeDepth -= 1;\n }\n}\n\nexport function renderWithStrictModeMemoCapture<T>(\n runtime: RootRuntime,\n render: () => T,\n): { result: T; memoValues: readonly unknown[]; memoValuesByHook: ReadonlyMap<string, unknown> } {\n const previousCapture = runtime.strictMemoCapture;\n const previousCaptureByHook = runtime.strictMemoCaptureByHook;\n runtime.strictMemoCapture = [];\n runtime.strictMemoCaptureByHook = new Map();\n\n try {\n const result = renderWithStrictMode(runtime, render);\n return {\n result,\n memoValues: runtime.strictMemoCapture,\n memoValuesByHook: runtime.strictMemoCaptureByHook,\n };\n } finally {\n runtime.strictMemoCapture = previousCapture;\n runtime.strictMemoCaptureByHook = previousCaptureByHook;\n }\n}\n\nexport function renderStrictModeReplay<T>(\n runtime: RootRuntime,\n memoValues: readonly unknown[],\n memoValuesByHook: ReadonlyMap<string, unknown>,\n render: () => T,\n): T {\n const previousReplay = runtime.strictMemoReplay;\n const previousReplayByHook = runtime.strictMemoReplayByHook;\n runtime.strictReplayDepth += 1;\n runtime.strictMemoReplay = { values: memoValues, index: 0 };\n runtime.strictMemoReplayByHook = memoValuesByHook;\n\n try {\n return render();\n } finally {\n runtime.strictMemoReplay = previousReplay;\n runtime.strictMemoReplayByHook = previousReplayByHook;\n runtime.strictReplayDepth -= 1;\n }\n}\n\nexport function takeRuntimeSnapshot(runtime: RootRuntime): RuntimeSnapshot {\n return {\n instanceKeys: new Set(runtime.instances.keys()),\n portalContainers: new Set(runtime.portalContainers),\n portalNodes: clonePortalNodes(runtime.portalNodes),\n pendingInsertionEffectsLength: runtime.pendingInsertionEffects.length,\n pendingImperativeHandleEffectsLength: runtime.pendingImperativeHandleEffects.length,\n pendingLayoutEffectsLength: runtime.pendingLayoutEffects.length,\n pendingEffectsLength: runtime.pendingEffects.length,\n pendingProfilerCommitsLength: runtime.pendingProfilerCommits.length,\n profilerBaseDurations: new Map(runtime.profilerBaseDurations),\n idCounter: runtime.idCounter,\n identifierPrefix: runtime.identifierPrefix,\n idMode: runtime.idMode,\n strictModeDepth: runtime.strictModeDepth,\n strictReplayDepth: runtime.strictReplayDepth,\n strictMemoCapture: runtime.strictMemoCapture,\n strictMemoCaptureByHook: runtime.strictMemoCaptureByHook,\n strictMemoReplay: runtime.strictMemoReplay,\n strictMemoReplayByHook: runtime.strictMemoReplayByHook,\n profilerFlushDepth: runtime.profilerFlushDepth,\n };\n}\n\nexport function restoreRuntimeSnapshot(\n runtime: RootRuntime,\n snapshot: RuntimeSnapshot,\n): void {\n runtime.pendingInsertionEffects.length = snapshot.pendingInsertionEffectsLength;\n runtime.pendingImperativeHandleEffects.length = snapshot.pendingImperativeHandleEffectsLength;\n runtime.pendingLayoutEffects.length = snapshot.pendingLayoutEffectsLength;\n runtime.pendingEffects.length = snapshot.pendingEffectsLength;\n runtime.pendingProfilerCommits.length = snapshot.pendingProfilerCommitsLength;\n runtime.profilerBaseDurations = new Map(snapshot.profilerBaseDurations);\n runtime.idCounter = snapshot.idCounter;\n runtime.identifierPrefix = snapshot.identifierPrefix;\n runtime.idMode = snapshot.idMode;\n runtime.strictModeDepth = snapshot.strictModeDepth;\n runtime.strictReplayDepth = snapshot.strictReplayDepth;\n runtime.strictMemoCapture = snapshot.strictMemoCapture;\n runtime.strictMemoCaptureByHook = snapshot.strictMemoCaptureByHook;\n runtime.strictMemoReplay = snapshot.strictMemoReplay;\n runtime.strictMemoReplayByHook = snapshot.strictMemoReplayByHook;\n runtime.profilerFlushDepth = snapshot.profilerFlushDepth;\n\n for (const key of runtime.instances.keys()) {\n if (!snapshot.instanceKeys.has(key)) {\n runtime.instances.delete(key);\n }\n }\n\n clearRuntimePortalNodesExcept(runtime, snapshot.portalNodes);\n runtime.portalContainers.clear();\n for (const container of snapshot.portalContainers) {\n runtime.portalContainers.add(container);\n }\n runtime.portalNodes = clonePortalNodes(snapshot.portalNodes);\n}\n\nexport function clearRuntimePortalNodes(runtime: RootRuntime): void {\n for (const [container, nodes] of runtime.portalNodes) {\n for (const node of nodes) {\n removeChildIfPresent(container, node);\n }\n }\n\n runtime.portalNodes.clear();\n runtime.portalContainers.clear();\n}\n\nfunction clearRuntimePortalNodesExcept(\n runtime: RootRuntime,\n preserved: Map<Element, Set<Node>>,\n): void {\n for (const [container, nodes] of runtime.portalNodes) {\n const preservedNodes = preserved.get(container);\n\n for (const node of nodes) {\n if (preservedNodes?.has(node) !== true) {\n removeChildIfPresent(container, node);\n }\n }\n }\n}\n\nfunction clonePortalNodes(source: Map<Element, Set<Node>>): Map<Element, Set<Node>> {\n const clone = new Map<Element, Set<Node>>();\n\n for (const [container, nodes] of source) {\n clone.set(container, new Set(nodes));\n }\n\n return clone;\n}\n\n/** Stores component-local state and returns the current value with an updater. */\nexport function useState<T>(\n initial: T | (() => T),\n): [T, (value: T | ((previous: T) => T)) => void] {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n\n let slot = instance.hooks[index];\n\n if (slot === undefined) {\n slot = {\n kind: \"state\",\n value: typeof initial === \"function\" ? (initial as () => T)() : initial,\n };\n instance.hooks[index] = slot;\n }\n\n if (slot.kind !== \"state\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n slot.dispatch ??= (value: unknown): void => {\n const previousValue = slot.value;\n const nextValue =\n typeof value === \"function\"\n ? (value as (previous: unknown) => unknown)(slot.value)\n : value;\n\n if (Object.is(slot.value, nextValue)) {\n return;\n }\n\n if (hookRenderState.hostCommitDepth > 0 && !Object.hasOwn(slot, \"hostCommitValue\")) {\n slot.hostCommitValue = previousValue;\n }\n\n slot.value = nextValue;\n const canUseDirectTextBinding =\n hookRenderState.hostCommitDepth === 0 &&\n hookRenderState.currentRuntime !== runtime &&\n hookRenderState.currentInstance !== instance &&\n runtime.effectFlushPhase === undefined &&\n eventBatchDepth === 0 &&\n transitionDepth === 0 &&\n optionsAllowDirectTextBinding(value) &&\n updateDirectTextBinding(slot.textBinding, nextValue);\n\n const canUseDirectStateBinding =\n hookRenderState.hostCommitDepth === 0 &&\n hookRenderState.currentRuntime !== runtime &&\n hookRenderState.currentInstance !== instance &&\n runtime.effectFlushPhase === undefined &&\n eventBatchDepth === 0 &&\n transitionDepth === 0 &&\n optionsAllowDirectTextBinding(value) &&\n updateDirectStateBinding(slot.stateBinding, nextValue);\n\n if (canUseDirectTextBinding || canUseDirectStateBinding) {\n return;\n }\n\n if (hookRenderState.hostCommitDepth > 0) {\n updateHostCommitDirtyState(instance);\n hookRenderState.queuedHostCommitRerenders.add(runtime);\n return;\n }\n\n scheduleInstanceUpdate(runtime, instance, { deferSync: typeof value === \"function\" });\n };\n const setState = slot.dispatch as (value: T | ((previous: T) => T)) => void;\n\n recordDevToolsHook(\"useState\", {\n kind: \"state\",\n value: slot.value,\n });\n\n const result = [slot.value as T, setState] as [\n T,\n (value: T | ((previous: T) => T)) => void,\n ] & Record<PropertyKey, unknown>;\n result[REACTIVE_TEXT_BINDING_META] = getStateTextBinding(slot);\n result[REACTIVE_STATE_BINDING_META] = getStateBinding(slot);\n return result;\n}\n\nexport function subscribeReactiveTextBinding(binding: unknown, node: Text): void {\n if (!isReactiveTextBinding(binding)) {\n clearReactiveTextBinding(node);\n return;\n }\n\n const previous = reactiveTextBindingsByNode.get(node);\n\n if (previous !== undefined && previous !== binding) {\n previous.subscribers.delete(node);\n }\n\n reactiveTextBindingsByNode.set(node, binding);\n binding.subscribers.add(node);\n}\n\nfunction clearReactiveTextBinding(node: Text): void {\n const previous = reactiveTextBindingsByNode.get(node);\n\n if (previous === undefined) {\n return;\n }\n\n previous.subscribers.delete(node);\n reactiveTextBindingsByNode.delete(node);\n}\n\nfunction clearReactiveTextBindingSubscribers(binding: ReactiveTextBinding): void {\n for (const node of binding.subscribers) {\n if (reactiveTextBindingsByNode.get(node) === binding) {\n reactiveTextBindingsByNode.delete(node);\n }\n }\n binding.subscribers.clear();\n}\n\nfunction getStateTextBinding(slot: Extract<HookSlot, { kind: \"state\" }>): ReactiveTextBinding {\n slot.textBinding ??= {\n value: slot.value,\n subscribers: new Set(),\n };\n slot.textBinding.value = slot.value;\n return slot.textBinding;\n}\n\nfunction getStateBinding(slot: Extract<HookSlot, { kind: \"state\" }>): ReactiveStateBinding {\n slot.stateBinding ??= {\n value: slot.value,\n source: { subscribers: null },\n get() {\n trackSource(this.source);\n return this.value;\n },\n };\n slot.stateBinding.value = slot.value;\n return slot.stateBinding;\n}\n\nfunction optionsAllowDirectTextBinding(value: unknown): boolean {\n return typeof value !== \"function\";\n}\n\nfunction updateDirectTextBinding(binding: ReactiveTextBinding | undefined, value: unknown): boolean {\n if (binding === undefined || binding.subscribers.size === 0) {\n return false;\n }\n\n let updated = false;\n const nextText = String(value);\n\n for (const node of binding.subscribers) {\n if (node.parentNode === null) {\n binding.subscribers.delete(node);\n reactiveTextBindingsByNode.delete(node);\n continue;\n }\n\n if (node.data !== nextText) {\n node.data = nextText;\n }\n updated = true;\n }\n\n binding.value = value;\n return updated;\n}\n\nfunction updateDirectStateBinding(\n binding: ReactiveStateBinding | undefined,\n value: unknown,\n): boolean {\n if (binding === undefined || binding.source.subscribers === null) {\n return false;\n }\n\n binding.value = value;\n notifySubscribers(binding.source);\n flushQueuedComputations();\n return true;\n}\n\nfunction isReactiveTextBinding(value: unknown): value is ReactiveTextBinding {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"subscribers\" in value &&\n (value as { subscribers?: unknown }).subscribers instanceof Set\n );\n}\n\n/** Stores reducer-managed component state and returns the current state with a dispatch function. */\nexport function useReducer<TState, TAction, TInitial = TState>(\n reducer: (state: TState, action: TAction) => TState,\n initialArg: TInitial,\n init?: (initialArg: TInitial) => TState,\n): [TState, (action: TAction) => void] {\n const stateTuple = runWithoutDevToolsHookTracking(() =>\n useState<TState>(() =>\n init === undefined ? (initialArg as unknown as TState) : init(initialArg),\n ),\n );\n const [state, setState] = stateTuple;\n const reducerRef = runWithoutDevToolsHookTracking(() => useRef(reducer));\n const stateRef = runWithoutDevToolsHookTracking(() => useRef(state));\n const dispatchRef = runWithoutDevToolsHookTracking(() =>\n useRef<((action: TAction) => void) | undefined>(\n undefined,\n )\n );\n reducerRef.current = reducer;\n stateRef.current = state;\n\n if (dispatchRef.current === undefined) {\n dispatchRef.current = (action: TAction): void => {\n const nextState = reducerRef.current(stateRef.current, action);\n stateRef.current = nextState;\n setState(nextState);\n };\n }\n\n recordDevToolsHook(\"useReducer\", {\n kind: \"reducer\",\n value: state,\n });\n\n const result = [state, dispatchRef.current] as [\n TState,\n (action: TAction) => void,\n ] & Record<PropertyKey, unknown>;\n const stateBinding = (stateTuple as unknown as Record<PropertyKey, unknown>)[\n REACTIVE_STATE_BINDING_META\n ];\n\n if (stateBinding !== undefined) {\n result[REACTIVE_STATE_BINDING_META] = stateBinding;\n }\n return result;\n}\n\n/** Returns a stable mutable ref object for the component instance. */\nexport function useRef<T>(initial: T): { current: T } {\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n\n let slot = instance.hooks[index];\n\n if (slot === undefined) {\n slot = { kind: \"ref\", value: { current: initial } };\n instance.hooks[index] = slot;\n }\n\n if (slot.kind !== \"ref\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n recordDevToolsHook(\"useRef\", {\n kind: \"ref\",\n value: slot.value,\n });\n\n return slot.value as { current: T };\n}\n\n/** Returns a stable id string that matches server and client rendering. */\nexport function useId(): string {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const idSlotKey = `${instance.path}:${instance.hookIndex}`;\n const idRef = runWithoutDevToolsHookTracking(() =>\n useRef<string | undefined>(undefined)\n );\n\n if (idRef.current === undefined) {\n const hydratedId = runtime.idMode === \"client\"\n ? hydratedIdsByRuntime.get(runtime)?.get(idSlotKey)\n : undefined;\n\n if (hydratedId !== undefined) {\n idRef.current = hydratedId;\n } else {\n const mode = runtime.idMode === \"server\" ? \"R\" : \"r\";\n idRef.current = `_${runtime.identifierPrefix}${mode}_${runtime.idCounter}_`;\n runtime.idCounter += 1;\n\n if (runtime.idMode === \"server\") {\n const hydratedIds = hydratedIdsByRuntime.get(runtime) ?? new Map<string, string>();\n hydratedIds.set(idSlotKey, idRef.current);\n hydratedIdsByRuntime.set(runtime, hydratedIds);\n }\n }\n }\n\n recordDevToolsHook(\"useId\", {\n kind: \"id\",\n value: idRef.current,\n });\n\n return idRef.current;\n}\n\n/** Assigns a custom imperative handle to a forwarded ref. */\nexport function useImperativeHandle<T>(\n ref: unknown,\n create: () => T,\n deps?: readonly unknown[],\n): void {\n runWithoutDevToolsHookTracking(() =>\n useEffectImpl(\"imperative-handle\", () => {\n const handle = create();\n assignRef(ref, handle);\n return () => {\n assignRef(ref, null);\n };\n }, deps === undefined ? undefined : [ref, ...deps])\n );\n recordDevToolsHook(\"useImperativeHandle\", deps === undefined\n ? { kind: \"imperative-handle\" }\n : { kind: \"imperative-handle\", deps });\n}\n\n/** Memoizes a computed value until its dependency list changes. */\nexport function useMemo<T>(factory: () => T, deps?: readonly unknown[]): T {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n\n let slot = instance.hooks[index];\n\n if (slot !== undefined && slot.kind !== \"memo\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n let value: unknown;\n const shouldRecompute =\n slot === undefined ||\n deps === undefined ||\n slot.deps === undefined ||\n !areHookInputsEqual(deps, slot.deps);\n\n if (runtime.strictReplayDepth > 0) {\n const replayValue = factory();\n if (slot === undefined) {\n slot =\n deps === undefined\n ? { kind: \"memo\", value: replayValue }\n : { kind: \"memo\", value: replayValue, deps };\n instance.hooks[index] = slot;\n }\n const hookKey = getStrictMemoHookKey(instance, index);\n const replayByHook = runtime.strictMemoReplayByHook;\n const replay = runtime.strictMemoReplay;\n value = replayByHook?.has(hookKey) === true\n ? replayByHook.get(hookKey)\n : replay === undefined || replay.index >= replay.values.length\n ? slot.value\n : replay.values[replay.index++];\n } else if (shouldRecompute) {\n value = factory();\n slot =\n deps === undefined\n ? { kind: \"memo\", value }\n : { kind: \"memo\", value, deps };\n instance.hooks[index] = slot;\n } else {\n value = slot!.value;\n }\n\n if (runtime.strictModeDepth > 0 && runtime.strictReplayDepth === 0) {\n runtime.strictMemoCapture?.push(value);\n runtime.strictMemoCaptureByHook?.set(getStrictMemoHookKey(instance, index), value);\n }\n\n const memoSlot = slot;\n if (memoSlot === undefined) {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n recordDevToolsHook(\"useMemo\", memoSlot.deps === undefined\n ? { kind: \"memo\", value }\n : { kind: \"memo\", value, deps: memoSlot.deps });\n\n return value as T;\n}\n\nfunction getStrictMemoHookKey(\n instance: ComponentInstance,\n index: number,\n): string {\n return `${instance.path}:${getStrictMemoOwnerKey(instance.owner)}:${index}`;\n}\n\nexport function __getStrictMemoOwnerKeyForTesting(owner: unknown): string {\n return getStrictMemoOwnerKey(owner);\n}\n\nfunction getStrictMemoOwnerKey(owner: unknown): string {\n if ((typeof owner === \"object\" && owner !== null) || typeof owner === \"function\") {\n const objectOwner = owner as object;\n let ownerId = strictMemoObjectOwnerIds.get(objectOwner);\n if (ownerId === undefined) {\n ownerId = strictMemoOwnerId++;\n strictMemoObjectOwnerIds.set(objectOwner, ownerId);\n }\n return `o:${ownerId}`;\n }\n\n if (typeof owner === \"symbol\") {\n const globalKey = Symbol.keyFor(owner);\n return globalKey === undefined\n ? `p:symbol:${String(owner)}`\n : `p:symbol-global:${globalKey}`;\n }\n\n return `p:${typeof owner}:${String(owner)}`;\n}\n\nfunction assignRef<T>(ref: unknown, value: T | null): void {\n if (typeof ref === \"function\") {\n ref(value);\n return;\n }\n\n if (typeof ref === \"object\" && ref !== null && \"current\" in ref) {\n (ref as { current: T | null }).current = value;\n }\n}\n\nfunction recordDevToolsHook(type: string, value: DevToolsHookValue): void {\n const instance = hookRenderState.currentInstance;\n\n if (\n instance === undefined ||\n instance.devToolsHookSuppressionDepth > 0 ||\n instance.devToolsHooks === undefined ||\n instance.devToolsHookTypes === undefined\n ) {\n return;\n }\n\n instance.devToolsHookTypes.push(type);\n instance.devToolsHooks.push(value);\n}\n\nfunction hasInstalledDevToolsHook(): boolean {\n return typeof (globalThis as {\n __REACT_DEVTOOLS_GLOBAL_HOOK__?: { inject?: unknown } | undefined;\n }).__REACT_DEVTOOLS_GLOBAL_HOOK__?.inject === \"function\";\n}\n\nfunction runWithoutDevToolsHookTracking<T>(callback: () => T): T {\n const instance = requireInstance();\n instance.devToolsHookSuppressionDepth += 1;\n\n try {\n return callback();\n } finally {\n instance.devToolsHookSuppressionDepth -= 1;\n }\n}\n\n/** Memoizes a callback reference until its dependency list changes. */\nexport function useCallback<T extends (...args: never[]) => unknown>(\n callback: T,\n deps?: readonly unknown[],\n): T {\n const value = runWithoutDevToolsHookTracking(() => useMemo(() => callback, deps));\n recordDevToolsHook(\"useCallback\", deps === undefined\n ? { kind: \"callback\", value }\n : { kind: \"callback\", value, deps });\n return value;\n}\n\n/** Records a value for React DevTools hook inspection. */\nexport function useDebugValue(_value: unknown, _format?: (value: unknown) => unknown): void {\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n\n const value = _format === undefined ? _value : _format(_value);\n let slot = instance.hooks[index];\n\n if (slot !== undefined && slot.kind !== \"debug\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n if (slot === undefined) {\n slot = { kind: \"debug\", value };\n instance.hooks[index] = slot;\n recordDevToolsHook(\"useDebugValue\", {\n kind: \"debug\",\n value,\n });\n return;\n }\n\n slot.value = value;\n recordDevToolsHook(\"useDebugValue\", {\n kind: \"debug\",\n value,\n });\n}\n\n/** Creates a stable event callback that always calls the latest implementation. */\nexport function useEffectEvent<TArgs extends unknown[], TResult>(\n callback: (...args: TArgs) => TResult,\n): (...args: TArgs) => TResult {\n const ref = runWithoutDevToolsHookTracking(() => useRef(callback));\n ref.current = callback;\n\n const event = runWithoutDevToolsHookTracking(() =>\n useCallback((...args: TArgs) => ref.current(...args), [])\n );\n recordDevToolsHook(\"useEffectEvent\", {\n kind: \"callback\",\n value: event,\n deps: [],\n });\n return event;\n}\n\n/** Runs an effect after the rendered output has been committed. */\nexport function useEffect(\n callback: EffectCallback,\n deps?: readonly unknown[],\n): void {\n useEffectImpl(\"normal\", callback, deps);\n recordDevToolsHook(\"useEffect\", deps === undefined\n ? { kind: \"effect\", effectKind: \"normal\" }\n : { kind: \"effect\", effectKind: \"normal\", deps });\n}\n\n/** Runs an insertion effect before layout effects are flushed. */\nexport function useInsertionEffect(\n callback: EffectCallback,\n deps?: readonly unknown[],\n): void {\n useEffectImpl(\"insertion\", callback, deps);\n recordDevToolsHook(\"useInsertionEffect\", deps === undefined\n ? { kind: \"effect\", effectKind: \"insertion\" }\n : { kind: \"effect\", effectKind: \"insertion\", deps });\n}\n\n/** Runs a layout effect after DOM mutations and before normal effects. */\nexport function useLayoutEffect(\n callback: EffectCallback,\n deps?: readonly unknown[],\n): void {\n useEffectImpl(\"layout\", callback, deps);\n recordDevToolsHook(\"useLayoutEffect\", deps === undefined\n ? { kind: \"effect\", effectKind: \"layout\" }\n : { kind: \"effect\", effectKind: \"layout\", deps });\n}\n\n/** Subscribes to an external store with snapshot checks for consistent rendering. */\nexport function useSyncExternalStore<T>(\n subscribe: (listener: () => void) => () => void,\n getSnapshot: () => T,\n getServerSnapshot?: () => T,\n): T {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n let slot = instance.hooks[index];\n\n if (slot === undefined) {\n slot = {\n kind: \"store\",\n value: runtime.idMode === \"server\" && getServerSnapshot !== undefined\n ? getServerSnapshot()\n : getSnapshot(),\n };\n instance.hooks[index] = slot;\n }\n\n if (slot.kind !== \"store\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n slot.getSnapshot = getSnapshot as () => unknown;\n\n const isHydrationMount =\n runtime.idMode === \"server\" && slot.hasMounted !== true && getServerSnapshot !== undefined;\n const currentSnapshot = isHydrationMount ? slot.value as T : getSnapshot();\n\n if (!Object.is(slot.value, currentSnapshot)) {\n slot.value = currentSnapshot;\n }\n\n if (!isHydrationMount) {\n recordExternalStoreCheck(getSnapshot, currentSnapshot);\n }\n\n runWithoutDevToolsHookTracking(() => useEffect(() => {\n const checkForUpdates = (): void => {\n if (instance.disposed === true) {\n return;\n }\n\n const nextSnapshot = (slot.getSnapshot ?? getSnapshot)();\n\n if (!Object.is(slot.value, nextSnapshot)) {\n if (hookRenderState.hostCommitDepth > 0 && !Object.hasOwn(slot, \"hostCommitValue\")) {\n slot.hostCommitValue = slot.value;\n }\n slot.value = nextSnapshot;\n runtime.externalStoreUpdate = true;\n if (hookRenderState.hostCommitDepth > 0) {\n updateHostCommitDirtyState(instance);\n hookRenderState.queuedHostCommitRerenders.add(runtime);\n return;\n }\n instance.dirty = true;\n if (runtime.profilerFlushDepth > 0) {\n hookRenderState.queuedEffectFlushRerenders.add(runtime);\n return;\n }\n if (eventBatchDepth > 0) {\n queueEventRerender(runtime);\n return;\n }\n runtime.rerender(\"sync\");\n }\n };\n\n if (slot.hasMounted !== true) {\n checkForUpdates();\n }\n const unsubscribe = subscribe(checkForUpdates);\n slot.hasMounted = true;\n return () => {\n unsubscribe();\n };\n }, [subscribe]));\n\n recordDevToolsHook(\"useSyncExternalStore\", {\n kind: \"store\",\n value: slot.value,\n });\n\n return slot.value as T;\n}\n\n/** Tracks state and pending status for an action that receives the previous state. */\nexport function useActionState<TState, TPayload>(\n action: (previousState: TState, payload: TPayload) => TState | Promise<TState>,\n initialState: TState,\n): [TState, (payload: TPayload) => void, boolean] {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n let slot = instance.hooks[index];\n\n if (slot !== undefined && slot.kind !== \"action-state\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n if (slot === undefined) {\n slot = {\n kind: \"action-state\",\n state: initialState,\n pendingCount: 0,\n action: action as (previousState: unknown, payload: unknown) => unknown,\n };\n instance.hooks[index] = slot;\n }\n\n if (\"error\" in slot) {\n throw slot.error;\n }\n\n slot.action = action as (previousState: unknown, payload: unknown) => unknown;\n\n if (slot.dispatch === undefined) {\n slot.dispatch = (payload: unknown): void => {\n runActionStateDispatch(slot, runtime, instance, payload);\n };\n }\n\n recordDevToolsHook(\"useActionState\", {\n kind: \"state\",\n value: slot.state,\n });\n\n return [\n slot.state as TState,\n slot.dispatch as (payload: TPayload) => void,\n slot.pendingCount > 0,\n ];\n}\n\n/** Returns an optimistic state value and dispatcher layered on top of a base state. */\nexport function useOptimistic<TState, TPayload>(\n state: TState,\n update?: (state: TState, payload: TPayload) => TState,\n): [TState, (payload: TPayload) => void] {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n let slot = instance.hooks[index];\n const updateFn =\n update === undefined\n ? (_current: unknown, payload: unknown) => payload\n : update as (state: unknown, payload: unknown) => unknown;\n\n if (slot !== undefined && slot.kind !== \"optimistic\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n if (slot === undefined) {\n slot = {\n kind: \"optimistic\",\n baseState: state,\n optimisticState: state,\n update: updateFn,\n };\n instance.hooks[index] = slot;\n }\n\n slot.update = updateFn;\n\n if (!Object.is(slot.baseState, state)) {\n slot.baseState = state;\n slot.optimisticState = state;\n }\n\n if (slot.dispatch === undefined) {\n slot.dispatch = (payload: unknown): void => {\n slot.optimisticState = slot.update(slot.optimisticState, payload);\n scheduleInstanceUpdate(runtime, instance);\n };\n }\n\n recordDevToolsHook(\"useOptimistic\", {\n kind: \"state\",\n value: slot.optimisticState,\n });\n\n return [slot.optimisticState as TState, slot.dispatch as (payload: TPayload) => void];\n}\n\n/** Reads a context-like value or suspends on a thenable until it resolves. */\nexport function use<T>(usable: PromiseLike<T> | unknown): T {\n if (isReactCompatContext(usable)) {\n return useContext(usable) as T;\n }\n\n if (isThenable(usable)) {\n return readThenable(usable as PromiseLike<T>);\n }\n\n return usable as T;\n}\n\n/** Memoizes a function within the currently active cache scope. */\nexport function cache<TArgs extends unknown[], TResult>(\n callback: (...args: TArgs) => TResult,\n): (...args: TArgs) => TResult {\n return (...args) => {\n const scope = getCurrentCacheScope();\n\n if (scope === undefined) {\n return callback(...args);\n }\n\n const leaf = getCacheLeaf(scope, callback, args);\n\n if (leaf.status === \"fulfilled\") {\n return leaf.value as TResult;\n }\n\n if (leaf.status === \"rejected\") {\n throw leaf.reason;\n }\n\n try {\n const value = callback(...args);\n leaf.status = \"fulfilled\";\n leaf.value = value;\n return value;\n } catch (error) {\n leaf.status = \"rejected\";\n leaf.reason = error;\n throw error;\n }\n };\n}\n\n/** Returns the abort signal for the currently active cache scope. */\nexport function cacheSignal(): AbortSignal | null {\n return getCurrentCacheScope()?.controller.signal ?? null;\n}\n\n/** Returns the current owner stack captured for cache diagnostics. */\nexport function captureOwnerStack(): string | null {\n const stack = getCurrentCacheScope()?.ownerStack ?? emptyCacheOwnerStack;\n return stack.length === 0 ? null : stack.join(\"\\n\");\n}\n\n/** Returns a callback placeholder for refreshing the current cache boundary. */\nexport function unstable_useCacheRefresh(): () => void {\n return useCallback(() => undefined, []);\n}\n\nexport function hasStableExternalStores(\n runtime: RootRuntime,\n): boolean {\n return runtime.externalStoreChecks.every((check) =>\n Object.is(check.getSnapshot(), check.value),\n );\n}\n\nfunction readThenable<T>(thenable: PromiseLike<T>): T {\n const record = thenable as PromiseLike<T> & {\n status?: \"pending\" | \"fulfilled\" | \"rejected\";\n value?: T;\n reason?: unknown;\n };\n\n if (record.status === \"fulfilled\") {\n return record.value as T;\n }\n\n if (record.status === \"rejected\") {\n throw record.reason;\n }\n\n if (record.status === undefined) {\n record.status = \"pending\";\n thenable.then(\n (value) => {\n if (record.status === \"pending\") {\n record.status = \"fulfilled\";\n record.value = value;\n }\n },\n (reason) => {\n if (record.status === \"pending\") {\n record.status = \"rejected\";\n record.reason = reason;\n }\n },\n );\n }\n\n throw thenable;\n}\n\n/** Callback body scheduled as transition work. */\nexport type TransitionScope = () => void;\n/** Function that schedules a transition scope. */\nexport type StartTransition = (scope: TransitionScope) => void;\n\n/** Schedules non-urgent updates produced inside a transition scope. */\nexport function startTransition(scope: TransitionScope): void {\n const context = {\n syncVersion,\n transitionVersion: ++transitionVersion,\n };\n\n runTransitionScope(scope, context);\n}\n\n/** Runs a callback while updates are batched at the requested event priority. */\nexport function runWithEventPriority<T>(\n priority: EventPriority,\n callback: () => T,\n deferFlush?: (flush: () => void) => void,\n): T {\n const previousPriority = currentEventPriority;\n currentEventPriority = priority;\n eventBatchDepth += 1;\n\n try {\n return callback();\n } finally {\n eventBatchDepth -= 1;\n currentEventPriority = previousPriority;\n\n if (eventBatchDepth === 0) {\n const flush = () => {\n flushEventRerendersForPriority(priority);\n };\n if (deferFlush === undefined) {\n flush();\n } else {\n deferFlush(flush);\n }\n }\n }\n}\n\nexport function flushSyncUpdates<T>(callback: () => T): T {\n const previousEventBatchDepth = eventBatchDepth;\n const previousEventPriority = currentEventPriority;\n eventBatchDepth = 0;\n currentEventPriority = \"discrete\";\n\n try {\n const value = callback();\n // Reactive-core cell/computed updates flush in a scheduled microtask by\n // default; drain them here so flushSync guarantees committed DOM on return\n // for compiled (cell-driven) components as well as compat hook state.\n flushPendingComputed();\n flushQueuedComputations();\n flushQueuedEventRerenders();\n return value;\n } finally {\n eventBatchDepth = previousEventBatchDepth;\n currentEventPriority = previousEventPriority;\n }\n}\n\nexport function runWithHostCommit<T>(callback: () => T): T {\n hookRenderState.hostCommitDepth += 1;\n try {\n return callback();\n } finally {\n hookRenderState.hostCommitDepth -= 1;\n }\n}\n\n/** Returns transition pending state and a function that starts transition work. */\nexport function useTransition(): [boolean, StartTransition] {\n const instance = requireInstance();\n const [pending, setPending] = runWithoutDevToolsHookTracking(() => useState(false));\n const startTransitionWithPending: StartTransition = (scope) => {\n setPending(true);\n const context = {\n syncVersion,\n transitionVersion: ++transitionVersion,\n };\n scheduleCallback(\"low\", () => {\n if (instance.disposed === true) {\n return;\n }\n\n if (!isTransitionContextCurrent(context)) {\n setPending(false);\n return;\n }\n\n runTransitionScope(() => {\n scope();\n if (instance.disposed === true) {\n return;\n }\n setPending(false);\n }, context);\n });\n };\n\n recordDevToolsHook(\"useTransition\", {\n kind: \"transition\",\n value: pending,\n });\n\n return [\n pending,\n startTransitionWithPending,\n ];\n}\n\n/** Defers a value update so urgent renders can commit first. */\nexport function useDeferredValue<T>(value: T, initialValue?: T): T {\n const [deferredValue, setDeferredValue] = runWithoutDevToolsHookTracking(() =>\n useState(arguments.length > 1 ? (initialValue as T) : value)\n );\n\n runWithoutDevToolsHookTracking(() =>\n useEffect(() => {\n if (Object.is(deferredValue, value)) {\n return;\n }\n\n startTransition(() => {\n setDeferredValue(value);\n });\n }, [value, deferredValue])\n );\n\n const currentValue = Object.is(deferredValue, value) ? value : deferredValue;\n\n recordDevToolsHook(\"useDeferredValue\", {\n kind: \"deferred\",\n value: currentValue,\n });\n\n return currentValue;\n}\n\nfunction runTransitionScope(\n scope: TransitionScope,\n context: TransitionContext,\n): void {\n transitionDepth += 1;\n const previousContext = currentTransitionContext;\n currentTransitionContext = context;\n\n try {\n scope();\n } finally {\n currentTransitionContext = previousContext;\n transitionDepth -= 1;\n }\n}\n\nfunction queueTransitionRerender(\n runtime: RootRuntime,\n context: TransitionContext,\n): void {\n queuedTransitionRerenders.set(runtime, context);\n\n if (transitionRerenderScheduled) {\n return;\n }\n\n transitionRerenderScheduled = true;\n scheduleCallback(\"low\", flushQueuedTransitionRerenders);\n}\n\nfunction queueEventRerender(runtime: RootRuntime): void {\n queuedEventRerenders.add(runtime);\n}\n\nfunction queueAutomaticRerender(runtime: RootRuntime): void {\n queueEventRerender(runtime);\n\n if (automaticRerenderScheduled) {\n return;\n }\n\n automaticRerenderScheduled = true;\n queueMicrotask(() => {\n automaticRerenderScheduled = false;\n flushQueuedEventRerenders(\"sync\");\n });\n}\n\nfunction flushEventRerendersForPriority(priority: EventPriority): void {\n if (priority === \"discrete\") {\n flushQueuedEventRerenders(\"sync\");\n return;\n }\n\n if (eventRerenderScheduled || queuedEventRerenders.size === 0) {\n return;\n }\n\n eventRerenderScheduled = true;\n scheduleCallback(priority === \"continuous\" ? \"normal\" : \"low\", () => {\n eventRerenderScheduled = false;\n flushQueuedEventRerenders(\n priority === \"continuous\" ? \"continuous\" : \"sync\",\n );\n });\n}\n\nfunction flushQueuedEventRerenders(priority: RenderPriority = \"sync\"): void {\n const runtimes = Array.from(queuedEventRerenders);\n queuedEventRerenders.clear();\n\n for (const runtime of runtimes) {\n runtime.rerender(priority);\n }\n}\n\nfunction flushQueuedTransitionRerenders(): void {\n transitionRerenderScheduled = false;\n const entries = Array.from(queuedTransitionRerenders.entries());\n queuedTransitionRerenders.clear();\n\n for (const [runtime, context] of entries) {\n if (isTransitionContextCurrent(context)) {\n runtime.rerender(\"transition\");\n }\n }\n}\n\nfunction isTransitionContextCurrent(context: TransitionContext): boolean {\n return (\n context.syncVersion === syncVersion &&\n context.transitionVersion === transitionVersion\n );\n}\n\nfunction useEffectImpl(\n effectKind: \"insertion\" | \"imperative-handle\" | \"layout\" | \"normal\",\n callback: EffectCallback,\n deps?: readonly unknown[],\n): void {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n\n let slot = instance.hooks[index];\n\n if (slot !== undefined && slot.kind !== \"effect\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n const shouldRun =\n slot === undefined ||\n slot.mounted !== true ||\n deps === undefined ||\n slot.deps === undefined ||\n !areHookInputsEqual(deps, slot.deps);\n\n if (slot === undefined) {\n slot =\n deps === undefined\n ? { kind: \"effect\", effectKind, callback }\n : { kind: \"effect\", effectKind, callback, deps };\n instance.hooks[index] = slot;\n } else {\n slot.effectKind = effectKind;\n slot.callback = callback;\n slot.disposed = false;\n\n if (deps === undefined) {\n delete slot.deps;\n } else {\n slot.deps = deps;\n }\n }\n\n slot.strictReplay =\n (runtime.strictModeDepth > 0 || runtime.strictReplayDepth > 0) &&\n effectKind !== \"insertion\" &&\n effectKind !== \"imperative-handle\";\n\n if (shouldRun) {\n const queue =\n effectKind === \"insertion\"\n ? runtime.pendingInsertionEffects\n : effectKind === \"imperative-handle\"\n ? runtime.pendingImperativeHandleEffects\n : effectKind === \"layout\"\n ? runtime.pendingLayoutEffects\n : runtime.pendingEffects;\n queue.push({ slot });\n }\n}\n\nfunction recordExternalStoreCheck<T>(\n getSnapshot: () => T,\n value: T,\n): void {\n hookRenderState.currentRuntime?.externalStoreChecks.push({ getSnapshot, value });\n}\n\nfunction flushPendingEffects(queue: PendingEffect[]): PendingEffect[] {\n const pending = queue.splice(0);\n const strictReplay: PendingEffect[] = [];\n const runnable: { slot: Extract<HookSlot, { kind: \"effect\" }>; shouldReplay: boolean }[] = [];\n\n for (const { slot } of pending) {\n if (slot.disposed === true) {\n continue;\n }\n\n const shouldReplay = slot.strictReplay === true && slot.cleanup === undefined;\n slot.cleanup?.();\n runnable.push({ slot, shouldReplay });\n }\n\n for (const { slot, shouldReplay } of runnable) {\n if (slot.disposed === true) {\n continue;\n }\n\n const cleanup = slot.callback();\n\n if (typeof cleanup === \"function\") {\n slot.cleanup = cleanup;\n } else {\n delete slot.cleanup;\n }\n slot.mounted = true;\n\n if (shouldReplay) {\n strictReplay.push({ slot });\n }\n }\n\n return strictReplay;\n}\n\nfunction replayStrictEffects(effects: PendingEffect[]): void {\n for (const { slot } of effects) {\n if (slot.disposed === true) {\n continue;\n }\n\n const cleanup = slot.callback();\n\n if (typeof cleanup === \"function\") {\n slot.cleanup = cleanup;\n } else {\n delete slot.cleanup;\n }\n }\n}\n\nfunction flushProfilerCommits(\n runtime: RootRuntime,\n commits: PendingProfilerCommit[],\n): void {\n if (commits.length === 0) {\n return;\n }\n\n const commitTime = getCurrentTime();\n runtime.profilerFlushDepth += 1;\n\n try {\n for (const commit of commits) {\n commit.onRender(\n commit.id,\n commit.phase,\n commit.actualDuration,\n commit.baseDuration,\n commit.startTime,\n commitTime,\n );\n }\n } finally {\n runtime.profilerFlushDepth -= 1;\n }\n}\n\nfunction runActionStateDispatch(\n slot: Extract<HookSlot, { kind: \"action-state\" }>,\n runtime: RootRuntime,\n instance: ComponentInstance,\n payload: unknown,\n): void {\n let result: unknown;\n\n try {\n result = slot.action(slot.state, payload);\n } catch (error) {\n slot.error = error;\n scheduleInstanceUpdate(runtime, instance);\n return;\n }\n\n if (!isThenable(result)) {\n slot.state = result;\n scheduleInstanceUpdate(runtime, instance);\n return;\n }\n\n slot.pendingCount += 1;\n scheduleInstanceUpdate(runtime, instance);\n result.then(\n (nextState) => {\n slot.state = nextState;\n slot.pendingCount = Math.max(0, slot.pendingCount - 1);\n scheduleInstanceUpdate(runtime, instance);\n },\n (error) => {\n slot.error = error;\n slot.pendingCount = Math.max(0, slot.pendingCount - 1);\n scheduleInstanceUpdate(runtime, instance);\n },\n );\n}\n\nexport function scheduleRuntimeRerender(\n runtime: RootRuntime,\n options: { deferSync?: boolean } = {},\n): void {\n if (transitionDepth === 0) {\n syncVersion += 1;\n if (hookRenderState.hostCommitDepth > 0) {\n hookRenderState.queuedHostCommitRerenders.add(runtime);\n return;\n }\n if (runtime.effectFlushPhase !== undefined) {\n hookRenderState.queuedEffectFlushRerenders.add(runtime);\n return;\n }\n if (eventBatchDepth > 0) {\n queueEventRerender(runtime);\n return;\n }\n if (options.deferSync === true) {\n queueAutomaticRerender(runtime);\n return;\n }\n runtime.rerender(\"sync\");\n return;\n }\n\n if (currentTransitionContext !== undefined) {\n queueTransitionRerender(runtime, currentTransitionContext);\n }\n}\n\nfunction scheduleInstanceUpdate(\n runtime: RootRuntime,\n instance: ComponentInstance,\n options: { deferSync?: boolean } = {},\n): void {\n if (instance.disposed === true) {\n return;\n }\n\n instance.dirty = true;\n if (\n hookRenderState.currentRuntime === runtime &&\n hookRenderState.currentInstance === instance\n ) {\n runtime.renderPhaseUpdate = true;\n return;\n }\n\n scheduleRuntimeRerender(runtime, options);\n}\n\nfunction flushHostCommitRerenders(): boolean {\n if (\n hostCommitRerenderDepth > 0 ||\n hookRenderState.hostCommitDepth > 0 ||\n hookRenderState.queuedHostCommitRerenders.size === 0\n ) {\n return false;\n }\n\n let didRerender = false;\n hostCommitRerenderDepth += 1;\n try {\n for (\n let attempt = 0;\n attempt < 3 && hookRenderState.queuedHostCommitRerenders.size > 0;\n attempt += 1\n ) {\n const runtimes = [...hookRenderState.queuedHostCommitRerenders];\n hookRenderState.queuedHostCommitRerenders.clear();\n for (const runtime of runtimes) {\n const hasDirtyInstance = Array.from(runtime.instances.values()).some(\n (instance) => instance.dirty,\n );\n clearHostCommitStateBaselines(runtime);\n\n if (hasDirtyInstance) {\n didRerender = true;\n runtime.rerender(\"sync\");\n }\n }\n }\n hookRenderState.queuedHostCommitRerenders.clear();\n } finally {\n hostCommitRerenderDepth -= 1;\n }\n return didRerender;\n}\n\nfunction dedupePendingEffects(queue: PendingEffect[]): void {\n if (queue.length < 2) {\n return;\n }\n\n const latestBySlot = new Map<Extract<HookSlot, { kind: \"effect\" }>, PendingEffect>();\n for (const effect of queue) {\n latestBySlot.set(effect.slot, effect);\n }\n queue.length = 0;\n queue.push(...latestBySlot.values());\n}\n\nfunction flushEffectFlushRerenders(): void {\n if (\n effectFlushRerenderDepth > 0 ||\n hookRenderState.queuedEffectFlushRerenders.size === 0\n ) {\n return;\n }\n\n effectFlushRerenderDepth += 1;\n try {\n for (\n let attempt = 0;\n attempt < 3 && hookRenderState.queuedEffectFlushRerenders.size > 0;\n attempt += 1\n ) {\n const runtimes = [...hookRenderState.queuedEffectFlushRerenders];\n hookRenderState.queuedEffectFlushRerenders.clear();\n for (const runtime of runtimes) {\n const hasDirtyInstance = Array.from(runtime.instances.values()).some(\n (instance) => instance.dirty,\n );\n\n if (hasDirtyInstance) {\n runtime.rerender(\"sync\");\n }\n }\n }\n hookRenderState.queuedEffectFlushRerenders.clear();\n } finally {\n effectFlushRerenderDepth -= 1;\n }\n}\n\nfunction updateHostCommitDirtyState(\n instance: ComponentInstance,\n): void {\n instance.dirty = instance.hooks.some(\n (slot) =>\n (slot.kind === \"state\" || slot.kind === \"store\") &&\n Object.hasOwn(slot, \"hostCommitValue\") &&\n !Object.is(slot.hostCommitValue, slot.value),\n );\n}\n\nfunction clearHostCommitStateBaselines(runtime: RootRuntime): void {\n for (const instance of runtime.instances.values()) {\n for (const slot of instance.hooks) {\n if (slot.kind === \"state\" || slot.kind === \"store\") {\n delete slot.hostCommitValue;\n }\n }\n }\n}\n\nfunction getCacheLeaf(\n scope: CacheScope,\n callback: (...args: never[]) => unknown,\n args: readonly unknown[],\n): CacheTrieNode {\n let node = scope.functionCaches.get(callback);\n\n if (node === undefined) {\n node = createCacheTrieNode();\n scope.functionCaches.set(callback, node);\n }\n\n for (const arg of args) {\n node = getCacheChild(node, arg);\n }\n\n return node;\n}\n\nfunction getCacheChild(node: CacheTrieNode, key: unknown): CacheTrieNode {\n if ((typeof key === \"object\" && key !== null) || typeof key === \"function\") {\n const objectKey = key as object;\n let child = node.objectChildren.get(objectKey);\n\n if (child === undefined) {\n child = createCacheTrieNode();\n node.objectChildren.set(objectKey, child);\n }\n\n return child;\n }\n\n let child = node.primitiveChildren.get(key);\n\n if (child === undefined) {\n child = createCacheTrieNode();\n node.primitiveChildren.set(key, child);\n }\n\n return child;\n}\n\nfunction createCacheTrieNode(): CacheTrieNode {\n return {\n primitiveChildren: new Map(),\n objectChildren: new WeakMap(),\n };\n}\n\nfunction getCurrentCacheScope(): CacheScope | undefined {\n return cacheScopeStorage?.getStore() ?? hookRenderState.currentCacheScope ?? getGlobalCacheScope();\n}\n\nfunction getGlobalCacheScope(): CacheScope | undefined {\n return (globalThis as { [CACHE_SCOPE_SYMBOL]?: CacheScope })[CACHE_SCOPE_SYMBOL];\n}\n\nfunction setGlobalCacheScope(scope: CacheScope | undefined): void {\n if (scope === undefined) {\n delete (globalThis as { [CACHE_SCOPE_SYMBOL]?: CacheScope })[CACHE_SCOPE_SYMBOL];\n return;\n }\n\n (globalThis as { [CACHE_SCOPE_SYMBOL]?: CacheScope })[CACHE_SCOPE_SYMBOL] = scope;\n}\n\ninterface AsyncLocalStorageLike<T> {\n getStore(): T | undefined;\n run<TResult>(store: T, callback: () => TResult): TResult;\n}\n\ntype AsyncLocalStorageConstructor = new <T>() => AsyncLocalStorageLike<T>;\n\nfunction createCacheScopeStorage(): AsyncLocalStorageLike<CacheScope> | undefined {\n const globalConstructor = (globalThis as {\n AsyncLocalStorage?: AsyncLocalStorageConstructor | undefined;\n }).AsyncLocalStorage;\n if (typeof globalConstructor === \"function\") {\n return new globalConstructor<CacheScope>();\n }\n\n const builtinConstructor = (globalThis as {\n process?: {\n getBuiltinModule?: (name: string) => { AsyncLocalStorage?: AsyncLocalStorageConstructor };\n };\n }).process?.getBuiltinModule?.(\"node:async_hooks\")?.AsyncLocalStorage;\n return typeof builtinConstructor === \"function\"\n ? new builtinConstructor<CacheScope>()\n : undefined;\n}\n\nexport function __setCacheScopeStorageForTesting(\n storage: AsyncLocalStorageLike<CacheScope> | undefined,\n): void {\n cacheScopeStorage = storage;\n fallbackAsyncCacheScopeActive = false;\n}\n\nfunction cleanupStrictEffects(effects: PendingEffect[]): void {\n for (const { slot } of effects) {\n if (slot.disposed !== true) {\n slot.cleanup?.();\n }\n }\n}\n\nfunction cleanupInactiveInstances(runtime: RootRuntime): void {\n const activeInstanceKeys = runtime.activeInstanceKeys;\n\n if (activeInstanceKeys === undefined) {\n return;\n }\n\n if (activeInstanceKeys.size === runtime.instances.size) {\n return;\n }\n\n for (const [key, instance] of runtime.instances) {\n if (!activeInstanceKeys.has(key)) {\n cleanupInstance(instance);\n runtime.instances.delete(key);\n removeInstanceKeyFromIndex(runtime, key);\n }\n }\n}\n\nfunction indexInstanceKey(runtime: RootRuntime, key: string): void {\n forEachInstanceKeyPrefix(key, (prefix) => {\n let keys = runtime.instanceKeysByPrefix.get(prefix);\n\n if (keys === undefined) {\n keys = new Set();\n runtime.instanceKeysByPrefix.set(prefix, keys);\n }\n\n keys.add(key);\n });\n}\n\nfunction removeInstanceKeyFromIndex(runtime: RootRuntime, key: string): void {\n forEachInstanceKeyPrefix(key, (prefix) => {\n const keys = runtime.instanceKeysByPrefix.get(prefix);\n\n if (keys === undefined) {\n return;\n }\n\n keys.delete(key);\n\n if (keys.size === 0) {\n runtime.instanceKeysByPrefix.delete(prefix);\n }\n });\n}\n\nfunction forEachInstanceKeyPrefix(\n key: string,\n callback: (prefix: string) => void,\n): void {\n let start = 0;\n\n while (start < key.length) {\n const next = key.indexOf(\".\", start);\n\n if (next === -1) {\n break;\n }\n\n callback(key.slice(0, next));\n start = next + 1;\n }\n\n callback(key);\n}\n\nfunction cleanupInstance(instance: ComponentInstance): void {\n instance.disposed = true;\n for (const slot of instance.hooks) {\n if (slot?.kind === \"effect\") {\n slot.disposed = true;\n slot.mounted = false;\n slot.cleanup?.();\n delete slot.cleanup;\n } else if (slot?.kind === \"state\" && slot.textBinding !== undefined) {\n clearReactiveTextBindingSubscribers(slot.textBinding);\n }\n }\n}\n\nfunction requireRuntime(): RootRuntime {\n if (hookRenderState.currentRuntime === undefined) {\n throw new Error(\"Hooks can only be called while rendering.\");\n }\n\n return hookRenderState.currentRuntime;\n}\n\nfunction requireInstance(): ComponentInstance {\n return hookRenderState.currentInstance ?? materializeInstance();\n}\n\nfunction areHookInputsEqual(\n nextDeps: readonly unknown[],\n previousDeps: readonly unknown[],\n): boolean {\n if (nextDeps.length !== previousDeps.length) {\n return false;\n }\n\n for (let index = 0; index < nextDeps.length; index += 1) {\n if (!Object.is(nextDeps[index], previousDeps[index])) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction getCurrentTime(): number {\n return typeof performance === \"undefined\" ? Date.now() : performance.now();\n}\n"]}
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n flushPendingComputed,\n flushQueuedComputations,\n notifySubscribers,\n trackSource,\n type Source,\n} from \"@reckona/mreact-reactive-core/internal\";\nimport { scheduleCallback } from \"./fiber-scheduler.js\";\nimport { removeChildIfPresent } from \"./dom-children.js\";\nimport {\n type ReactCompatContextLike,\n isReactCompatContext,\n readContextValue,\n useContext,\n withContextReadObserver,\n} from \"./context.js\";\nimport {\n REACTIVE_STATE_BINDING_META,\n REACTIVE_TEXT_BINDING_META,\n} from \"./element.js\";\nimport { isThenable } from \"./thenable.js\";\n\nexport interface RootRuntime {\n currentElement?: unknown;\n instances: Map<string, ComponentInstance>;\n instanceKeysByPrefix: Map<string, Set<string>>;\n activeInstanceKeys: Set<string> | undefined;\n activeProfilerPaths: Set<string> | undefined;\n mountedProfilerPaths: Set<string>;\n profilerBaseDurations: Map<string, number>;\n pendingProfilerCommits: PendingProfilerCommit[];\n pendingInsertionEffects: PendingEffect[];\n pendingImperativeHandleEffects: PendingEffect[];\n pendingLayoutEffects: PendingEffect[];\n pendingEffects: PendingEffect[];\n externalStoreChecks: ExternalStoreCheck[];\n portalContainers: Set<Element>;\n portalNodes: Map<Element, Set<Node>>;\n idCounter: number;\n identifierPrefix: string;\n idMode: \"client\" | \"server\";\n strictModeDepth: number;\n strictReplayDepth: number;\n strictMemoCapture: unknown[] | undefined;\n strictMemoCaptureByHook: Map<string, unknown> | undefined;\n strictMemoReplay: { values: readonly unknown[]; index: number } | undefined;\n strictMemoReplayByHook: ReadonlyMap<string, unknown> | undefined;\n profilerFlushDepth: number;\n effectFlushPhase: \"insertion\" | \"imperative-handle\" | \"layout\" | \"normal\" | undefined;\n externalStoreUpdate: boolean;\n renderPhaseUpdate: boolean;\n rerender(priority?: RenderPriority): void;\n beginRender(): void;\n endRender(committed?: boolean): void;\n flushEffects(): void;\n dispose(): void;\n}\n\ninterface ComponentInstance {\n owner: unknown | undefined;\n path: string;\n hooks: HookSlot[];\n hookIndex: number;\n dirty: boolean;\n disposed?: boolean;\n contextDependencies?: Map<ReactCompatContextLike<unknown>, unknown>;\n devToolsHooks?: DevToolsHookValue[];\n devToolsHookTypes?: string[];\n devToolsHookSuppressionDepth: number;\n}\n\ntype EffectCallback = () => void | (() => void);\ntype ProfilerPhase = \"mount\" | \"update\" | \"nested-update\";\ntype ProfilerOnRender = (\n id: string,\n phase: ProfilerPhase,\n actualDuration: number,\n baseDuration: number,\n startTime: number,\n commitTime: number,\n) => void;\n\ninterface PendingEffect {\n slot: Extract<HookSlot, { kind: \"effect\" }>;\n}\n\ninterface PendingProfilerCommit {\n id: string;\n phase: ProfilerPhase;\n onRender: ProfilerOnRender;\n actualDuration: number;\n baseDuration: number;\n startTime: number;\n}\n\ninterface ExternalStoreCheck {\n getSnapshot: () => unknown;\n value: unknown;\n}\n\n/** Cache scope that stores memoized cache() results and cancellation state. */\nexport interface CacheScope {\n functionCaches: WeakMap<(...args: never[]) => unknown, CacheTrieNode>;\n controller: AbortController;\n ownerStack: string[];\n}\n\ninterface CacheTrieNode {\n primitiveChildren: Map<unknown, CacheTrieNode>;\n objectChildren: WeakMap<object, CacheTrieNode>;\n status?: \"fulfilled\" | \"rejected\";\n value?: unknown;\n reason?: unknown;\n}\n\nexport interface DevToolsHookState {\n hooks: DevToolsHookValue[];\n hookTypes: string[];\n}\n\nexport type DevToolsHookValue =\n | { kind: \"state\"; value: unknown }\n | { kind: \"reducer\"; value: unknown }\n | { kind: \"store\"; value: unknown }\n | { kind: \"ref\"; value: unknown }\n | { kind: \"memo\"; value: unknown; deps?: readonly unknown[] }\n | { kind: \"callback\"; value: unknown; deps?: readonly unknown[] }\n | { kind: \"id\"; value: unknown }\n | { kind: \"imperative-handle\"; deps?: readonly unknown[] }\n | { kind: \"transition\"; value: unknown }\n | { kind: \"deferred\"; value: unknown }\n | { kind: \"debug\"; value: unknown }\n | { kind: \"effect\"; effectKind: \"insertion\" | \"layout\" | \"normal\"; deps?: readonly unknown[] };\n\ntype HookSlot =\n | {\n kind: \"state\";\n value: unknown;\n dispatch?: (value: unknown) => void;\n hostCommitValue?: unknown;\n textBinding?: ReactiveTextBinding;\n stateBinding?: ReactiveStateBinding;\n }\n | {\n kind: \"action-state\";\n state: unknown;\n pendingCount: number;\n action: (previousState: unknown, payload: unknown) => unknown;\n dispatch?: (payload: unknown) => void;\n error?: unknown;\n }\n | {\n kind: \"optimistic\";\n baseState: unknown;\n optimisticState: unknown;\n update: (state: unknown, payload: unknown) => unknown;\n dispatch?: (payload: unknown) => void;\n }\n | {\n kind: \"store\";\n value: unknown;\n getSnapshot?: () => unknown;\n hasMounted?: boolean;\n hostCommitValue?: unknown;\n }\n | { kind: \"ref\"; value: { current: unknown } }\n | { kind: \"memo\"; value: unknown; deps?: readonly unknown[] }\n | { kind: \"debug\"; value: unknown }\n | {\n kind: \"effect\";\n effectKind: \"insertion\" | \"imperative-handle\" | \"layout\" | \"normal\";\n callback: EffectCallback;\n deps?: readonly unknown[];\n cleanup?: () => void;\n disposed?: boolean;\n mounted?: boolean;\n strictReplay?: boolean;\n };\n\ninterface PendingInstanceContext {\n runtime: RootRuntime;\n path: string;\n owner: unknown;\n existing: ComponentInstance | undefined;\n}\n\ninterface HookRenderState {\n currentRuntime: RootRuntime | undefined;\n currentInstance: ComponentInstance | undefined;\n // Deferred instance for the component currently rendering. The instance is\n // only materialized (created, registered, prefix-indexed) when a hook or a\n // context read first needs it, so components with no hooks/context (e.g. a\n // pure host-rendering memo row) pay none of that per-render cost.\n pendingInstance: PendingInstanceContext | undefined;\n currentCacheScope: CacheScope | undefined;\n hostCommitDepth: number;\n queuedHostCommitRerenders: Set<RootRuntime>;\n queuedEffectFlushRerenders: Set<RootRuntime>;\n}\n\nconst HOOK_RENDER_STATE_KEY = Symbol.for(\"modular.react.hook_render_state\");\nconst hookRenderState =\n ((globalThis as typeof globalThis & Record<symbol, HookRenderState | undefined>)[\n HOOK_RENDER_STATE_KEY\n ] ??= {\n currentRuntime: undefined,\n currentInstance: undefined,\n pendingInstance: undefined,\n currentCacheScope: undefined,\n hostCommitDepth: 0,\n queuedHostCommitRerenders: new Set<RootRuntime>(),\n queuedEffectFlushRerenders: new Set<RootRuntime>(),\n });\nconst CACHE_SCOPE_SYMBOL = Symbol.for(\"modular.react.cache_scope\");\nlet cacheScopeStorage = createCacheScopeStorage();\nlet fallbackAsyncCacheScopeActive = false;\nconst emptyCacheOwnerStack: string[] = [];\nlet syncVersion = 0;\nlet transitionVersion = 0;\nlet transitionDepth = 0;\nlet currentTransitionContext: TransitionContext | undefined;\nlet transitionRerenderScheduled = false;\nlet eventBatchDepth = 0;\nlet currentEventPriority: EventPriority = \"default\";\nlet eventRerenderScheduled = false;\nlet automaticRerenderScheduled = false;\nlet effectFlushRerenderDepth = 0;\nlet hostCommitRerenderDepth = 0;\nlet strictMemoOwnerId = 0;\nconst strictMemoObjectOwnerIds = new WeakMap<object, number>();\nconst queuedTransitionRerenders = new Map<RootRuntime, TransitionContext>();\nconst queuedEventRerenders = new Set<RootRuntime>();\n/** React version string matched by the compatibility layer. */\nexport const version = \"19.2.6\";\n\nexport interface ReactiveTextBinding {\n value: unknown;\n subscribers: Set<Text>;\n}\n\nexport interface ReactiveStateBinding {\n get(): unknown;\n source: Source;\n value: unknown;\n}\n\nconst reactiveTextBindingsByNode = new WeakMap<Text, ReactiveTextBinding>();\nconst hydratedIdsByRuntime = new WeakMap<RootRuntime, Map<string, string>>();\n\n/** Flushes React-compatible updates produced inside a test interaction. */\nexport function act<T>(callback: () => T): T extends PromiseLike<unknown> ? Promise<void> : void {\n const previousPriority = currentEventPriority;\n currentEventPriority = \"discrete\";\n eventBatchDepth += 1;\n let result: T;\n\n try {\n result = callback();\n } catch (error) {\n eventBatchDepth -= 1;\n currentEventPriority = previousPriority;\n if (eventBatchDepth === 0) {\n flushEventRerendersForPriority(\"discrete\");\n }\n throw error;\n }\n\n const finishActScope = (): void => {\n eventBatchDepth -= 1;\n currentEventPriority = previousPriority;\n if (eventBatchDepth === 0) {\n flushEventRerendersForPriority(\"discrete\");\n }\n };\n\n if (isThenable(result)) {\n return Promise.resolve(result).then(\n async () => {\n finishActScope();\n await flushActWorkAsync();\n },\n (error: unknown) => {\n finishActScope();\n throw error;\n },\n ) as T extends PromiseLike<unknown> ? Promise<void> : void;\n }\n\n finishActScope();\n flushActWork();\n return undefined as T extends PromiseLike<unknown>\n ? Promise<void>\n : void;\n}\n\nasync function flushActWorkAsync(): Promise<void> {\n for (let attempt = 0; attempt < 10; attempt += 1) {\n await Promise.resolve();\n flushActWork();\n }\n for (let attempt = 0; attempt < 3; attempt += 1) {\n await new Promise((resolve) => setTimeout(resolve, 0));\n flushActWork();\n }\n}\n\nfunction flushActWork(): void {\n flushQueuedEventRerenders(\"sync\");\n flushQueuedTransitionRerenders();\n flushHostCommitRerenders();\n flushEffectFlushRerenders();\n}\n\n/** Priority category used while batching an event callback. */\nexport type EventPriority = \"discrete\" | \"continuous\" | \"default\";\nexport type RenderPriority = \"sync\" | \"transition\" | \"continuous\";\n\ninterface TransitionContext {\n syncVersion: number;\n transitionVersion: number;\n}\n\nexport interface RootRuntimeOptions {\n identifierPrefix?: string;\n idMode?: \"client\" | \"server\";\n}\n\nexport interface RuntimeSnapshot {\n instanceKeys: Set<string>;\n portalContainers: Set<Element>;\n portalNodes: Map<Element, Set<Node>>;\n pendingInsertionEffectsLength: number;\n pendingImperativeHandleEffectsLength: number;\n pendingLayoutEffectsLength: number;\n pendingEffectsLength: number;\n pendingProfilerCommitsLength: number;\n profilerBaseDurations: Map<string, number>;\n idCounter: number;\n identifierPrefix: string;\n idMode: \"client\" | \"server\";\n strictModeDepth: number;\n strictReplayDepth: number;\n strictMemoCapture: unknown[] | undefined;\n strictMemoCaptureByHook: Map<string, unknown> | undefined;\n strictMemoReplay: { values: readonly unknown[]; index: number } | undefined;\n strictMemoReplayByHook: ReadonlyMap<string, unknown> | undefined;\n profilerFlushDepth: number;\n}\n\nexport function createRootRuntime(\n rerender: (priority?: RenderPriority) => void,\n options: RootRuntimeOptions = {},\n): RootRuntime {\n return {\n instances: new Map(),\n instanceKeysByPrefix: new Map(),\n activeInstanceKeys: undefined,\n activeProfilerPaths: undefined,\n mountedProfilerPaths: new Set(),\n profilerBaseDurations: new Map(),\n pendingProfilerCommits: [],\n pendingInsertionEffects: [],\n pendingImperativeHandleEffects: [],\n pendingLayoutEffects: [],\n pendingEffects: [],\n externalStoreChecks: [],\n portalContainers: new Set(),\n portalNodes: new Map(),\n idCounter: 0,\n identifierPrefix: options.identifierPrefix ?? \"\",\n idMode: options.idMode ?? \"client\",\n strictModeDepth: 0,\n strictReplayDepth: 0,\n strictMemoCapture: undefined,\n strictMemoCaptureByHook: undefined,\n strictMemoReplay: undefined,\n strictMemoReplayByHook: undefined,\n profilerFlushDepth: 0,\n effectFlushPhase: undefined,\n externalStoreUpdate: false,\n renderPhaseUpdate: false,\n rerender,\n beginRender() {\n this.activeInstanceKeys = new Set();\n this.activeProfilerPaths = new Set();\n this.pendingProfilerCommits = [];\n this.pendingInsertionEffects = [];\n this.pendingImperativeHandleEffects = [];\n this.pendingLayoutEffects = [];\n this.pendingEffects = [];\n this.externalStoreChecks = [];\n this.renderPhaseUpdate = false;\n },\n endRender(committed = true) {\n const profilerCommits = committed ? this.pendingProfilerCommits.splice(0) : [];\n const activeProfilerPaths = this.activeProfilerPaths;\n if (committed) {\n cleanupInactiveInstances(this);\n this.mountedProfilerPaths =\n activeProfilerPaths === undefined ? new Set() : new Set(activeProfilerPaths);\n } else {\n this.pendingProfilerCommits = [];\n }\n this.activeInstanceKeys = undefined;\n this.activeProfilerPaths = undefined;\n hookRenderState.currentRuntime = undefined;\n hookRenderState.currentInstance = undefined;\n if (committed) {\n flushProfilerCommits(this, profilerCommits);\n }\n },\n flushEffects() {\n this.profilerFlushDepth += 1;\n try {\n this.effectFlushPhase = \"insertion\";\n flushPendingEffects(this.pendingInsertionEffects);\n this.effectFlushPhase = \"imperative-handle\";\n flushPendingEffects(this.pendingImperativeHandleEffects);\n this.effectFlushPhase = \"layout\";\n const strictLayoutEffects = flushPendingEffects(this.pendingLayoutEffects);\n if (flushHostCommitRerenders()) {\n dedupePendingEffects(this.pendingEffects);\n }\n this.effectFlushPhase = \"normal\";\n const strictEffects = flushPendingEffects(this.pendingEffects);\n this.effectFlushPhase = undefined;\n const strictReplayEffects = [...strictLayoutEffects, ...strictEffects];\n cleanupStrictEffects(strictReplayEffects);\n replayStrictEffects(strictReplayEffects);\n } finally {\n this.effectFlushPhase = undefined;\n this.profilerFlushDepth -= 1;\n if (this.profilerFlushDepth === 0) {\n flushHostCommitRerenders();\n flushEffectFlushRerenders();\n this.externalStoreUpdate = false;\n }\n }\n },\n dispose() {\n for (const instance of this.instances.values()) {\n cleanupInstance(instance);\n }\n\n this.pendingLayoutEffects = [];\n this.pendingInsertionEffects = [];\n this.pendingEffects = [];\n this.pendingProfilerCommits = [];\n this.activeProfilerPaths = undefined;\n this.mountedProfilerPaths.clear();\n this.profilerBaseDurations.clear();\n clearRuntimePortalNodes(this);\n },\n };\n}\n\n/** Creates an isolated cache scope for cache() and cacheSignal(). */\nexport function createCacheScope(): CacheScope {\n return {\n functionCaches: new WeakMap(),\n controller: new AbortController(),\n ownerStack: [],\n };\n}\n\n/** Clears a cache scope and aborts work tied to its previous signal. */\nexport function refreshCacheScope(scope: CacheScope): void {\n scope.controller.abort();\n scope.functionCaches = new WeakMap();\n scope.controller = new AbortController();\n}\n\n/** Runs a callback with a cache scope active for nested cache() calls. */\nexport function runWithCacheScope<T>(scope: CacheScope, callback: () => T): T {\n if (cacheScopeStorage !== undefined) {\n return cacheScopeStorage.run(scope, callback);\n }\n\n if (fallbackAsyncCacheScopeActive) {\n throw new Error(\n \"mreact cache scope requires AsyncLocalStorage for concurrent async server renders.\",\n );\n }\n\n const previousScope = hookRenderState.currentCacheScope;\n const previousGlobalScope = getGlobalCacheScope();\n hookRenderState.currentCacheScope = scope;\n setGlobalCacheScope(scope);\n\n try {\n const result = callback();\n\n if (isThenable(result)) {\n fallbackAsyncCacheScopeActive = true;\n return Promise.resolve(result).finally(() => {\n fallbackAsyncCacheScopeActive = false;\n hookRenderState.currentCacheScope = previousScope;\n setGlobalCacheScope(previousGlobalScope);\n }) as T;\n }\n\n hookRenderState.currentCacheScope = previousScope;\n setGlobalCacheScope(previousGlobalScope);\n return result;\n } catch (error) {\n hookRenderState.currentCacheScope = previousScope;\n setGlobalCacheScope(previousGlobalScope);\n throw error;\n }\n}\n\nexport function renderWithProfiler<T>(\n runtime: RootRuntime,\n path: string,\n props: Record<string, unknown>,\n render: () => T,\n): T {\n const startTime = getCurrentTime();\n const phase: ProfilerPhase =\n runtime.profilerFlushDepth > 0 || effectFlushRerenderDepth > 0\n ? \"nested-update\"\n : runtime.mountedProfilerPaths.has(path)\n ? \"update\"\n : \"mount\";\n\n try {\n return render();\n } finally {\n runtime.activeProfilerPaths?.add(path);\n const onRender = props.onRender;\n const id = props.id;\n\n if (typeof onRender === \"function\" && typeof id === \"string\") {\n const actualDuration = Math.max(0, getCurrentTime() - startTime);\n const baseDuration = Math.max(\n runtime.profilerBaseDurations.get(path) ?? 0,\n actualDuration,\n );\n runtime.profilerBaseDurations.set(path, baseDuration);\n runtime.pendingProfilerCommits.push({\n id,\n phase,\n onRender: onRender as ProfilerOnRender,\n actualDuration,\n baseDuration,\n startTime,\n });\n }\n }\n}\n\nexport function renderWithRootRuntime<T>(\n runtime: RootRuntime,\n path: string,\n render: () => T,\n owner?: unknown,\n): T {\n const previousRuntime = hookRenderState.currentRuntime;\n const previousInstance = hookRenderState.currentInstance;\n const previousPending = hookRenderState.pendingInstance;\n\n let existing = runtime.instances.get(path);\n if (existing !== undefined && owner !== undefined && existing.owner !== owner) {\n cleanupInstance(existing);\n runtime.instances.delete(path);\n removeInstanceKeyFromIndex(runtime, path);\n existing = undefined;\n }\n\n // Defer instance materialization: hooks / context reads call\n // materializeInstance() lazily. A component that touches neither never\n // allocates or registers an instance.\n hookRenderState.currentRuntime = runtime;\n hookRenderState.currentInstance = undefined;\n hookRenderState.pendingInstance = { runtime, path, owner, existing };\n\n try {\n return withContextReadObserver(recordContextDependency, render);\n } finally {\n hookRenderState.currentRuntime = previousRuntime;\n hookRenderState.currentInstance = previousInstance;\n hookRenderState.pendingInstance = previousPending;\n }\n}\n\n// Materialize the deferred instance for the rendering component the first time\n// a hook or context read needs it.\nfunction materializeInstance(): ComponentInstance {\n const pending = hookRenderState.pendingInstance;\n if (pending === undefined) {\n throw new Error(\"Hooks can only be called while rendering.\");\n }\n\n const { runtime, path, owner } = pending;\n let instance = pending.existing;\n if (instance === undefined) {\n instance = {\n owner,\n path,\n hooks: [],\n hookIndex: 0,\n dirty: false,\n devToolsHookSuppressionDepth: 0,\n };\n runtime.instances.set(path, instance);\n indexInstanceKey(runtime, path);\n } else {\n instance.owner = owner;\n }\n runtime.activeInstanceKeys?.add(path);\n instance.hookIndex = 0;\n instance.dirty = false;\n instance.disposed = false;\n delete instance.contextDependencies;\n if (hasInstalledDevToolsHook()) {\n instance.devToolsHooks = [];\n instance.devToolsHookTypes = [];\n } else {\n delete instance.devToolsHooks;\n delete instance.devToolsHookTypes;\n }\n instance.devToolsHookSuppressionDepth = 0;\n hookRenderState.currentInstance = instance;\n hookRenderState.pendingInstance = undefined;\n return instance;\n}\n\nfunction recordContextDependency(\n context: ReactCompatContextLike<unknown>,\n value: unknown,\n): void {\n const instance = hookRenderState.currentInstance ?? materializeInstance();\n (instance.contextDependencies ??= new Map()).set(context, value);\n}\n\nexport function hasChangedContextDependency(\n runtime: RootRuntime,\n keys: readonly string[],\n): boolean {\n for (const key of keys) {\n const dependencies = runtime.instances.get(key)?.contextDependencies;\n\n if (dependencies === undefined) {\n continue;\n }\n\n for (const [context, value] of dependencies) {\n if (!Object.is(readContextValue(context), value)) {\n return true;\n }\n }\n }\n\n return false;\n}\n\nexport function hasContextDependency(\n runtime: RootRuntime,\n keys: readonly string[],\n): boolean {\n return keys.some((key) => runtime.instances.get(key)?.contextDependencies !== undefined);\n}\n\n// Shared read-only empty result so components with no registered instances\n// (e.g. hookless rows under lazy instance materialization) don't each allocate\n// a fresh array. Callers treat instance-key lists as read-only.\nconst EMPTY_INSTANCE_KEYS: string[] = [];\n\nexport function collectRuntimeInstanceKeys(runtime: RootRuntime, prefix: string): string[] {\n const keys = runtime.instanceKeysByPrefix.get(prefix);\n\n if (keys === undefined) {\n return EMPTY_INSTANCE_KEYS;\n }\n\n let activeKeys: string[] | undefined;\n\n for (const key of keys) {\n if (runtime.instances.has(key)) {\n (activeKeys ??= []).push(key);\n }\n }\n\n return activeKeys ?? EMPTY_INSTANCE_KEYS;\n}\n\nexport function getDevToolsHookState(\n runtime: RootRuntime,\n path: string,\n): DevToolsHookState | undefined {\n const instance = runtime.instances.get(path);\n\n if (\n instance === undefined ||\n instance.devToolsHooks === undefined ||\n instance.devToolsHookTypes === undefined\n ) {\n return undefined;\n }\n\n return {\n hooks: [...instance.devToolsHooks],\n hookTypes: [...instance.devToolsHookTypes],\n };\n}\n\nexport function renderWithStrictMode<T>(\n runtime: RootRuntime,\n render: () => T,\n): T {\n runtime.strictModeDepth += 1;\n\n try {\n return render();\n } finally {\n runtime.strictModeDepth -= 1;\n }\n}\n\nexport function renderWithStrictModeMemoCapture<T>(\n runtime: RootRuntime,\n render: () => T,\n): { result: T; memoValues: readonly unknown[]; memoValuesByHook: ReadonlyMap<string, unknown> } {\n const previousCapture = runtime.strictMemoCapture;\n const previousCaptureByHook = runtime.strictMemoCaptureByHook;\n runtime.strictMemoCapture = [];\n runtime.strictMemoCaptureByHook = new Map();\n\n try {\n const result = renderWithStrictMode(runtime, render);\n return {\n result,\n memoValues: runtime.strictMemoCapture,\n memoValuesByHook: runtime.strictMemoCaptureByHook,\n };\n } finally {\n runtime.strictMemoCapture = previousCapture;\n runtime.strictMemoCaptureByHook = previousCaptureByHook;\n }\n}\n\nexport function renderStrictModeReplay<T>(\n runtime: RootRuntime,\n memoValues: readonly unknown[],\n memoValuesByHook: ReadonlyMap<string, unknown>,\n render: () => T,\n): T {\n const previousReplay = runtime.strictMemoReplay;\n const previousReplayByHook = runtime.strictMemoReplayByHook;\n runtime.strictReplayDepth += 1;\n runtime.strictMemoReplay = { values: memoValues, index: 0 };\n runtime.strictMemoReplayByHook = memoValuesByHook;\n\n try {\n return render();\n } finally {\n runtime.strictMemoReplay = previousReplay;\n runtime.strictMemoReplayByHook = previousReplayByHook;\n runtime.strictReplayDepth -= 1;\n }\n}\n\nexport function takeRuntimeSnapshot(runtime: RootRuntime): RuntimeSnapshot {\n return {\n instanceKeys: new Set(runtime.instances.keys()),\n portalContainers: new Set(runtime.portalContainers),\n portalNodes: clonePortalNodes(runtime.portalNodes),\n pendingInsertionEffectsLength: runtime.pendingInsertionEffects.length,\n pendingImperativeHandleEffectsLength: runtime.pendingImperativeHandleEffects.length,\n pendingLayoutEffectsLength: runtime.pendingLayoutEffects.length,\n pendingEffectsLength: runtime.pendingEffects.length,\n pendingProfilerCommitsLength: runtime.pendingProfilerCommits.length,\n profilerBaseDurations: new Map(runtime.profilerBaseDurations),\n idCounter: runtime.idCounter,\n identifierPrefix: runtime.identifierPrefix,\n idMode: runtime.idMode,\n strictModeDepth: runtime.strictModeDepth,\n strictReplayDepth: runtime.strictReplayDepth,\n strictMemoCapture: runtime.strictMemoCapture,\n strictMemoCaptureByHook: runtime.strictMemoCaptureByHook,\n strictMemoReplay: runtime.strictMemoReplay,\n strictMemoReplayByHook: runtime.strictMemoReplayByHook,\n profilerFlushDepth: runtime.profilerFlushDepth,\n };\n}\n\nexport function restoreRuntimeSnapshot(\n runtime: RootRuntime,\n snapshot: RuntimeSnapshot,\n): void {\n runtime.pendingInsertionEffects.length = snapshot.pendingInsertionEffectsLength;\n runtime.pendingImperativeHandleEffects.length = snapshot.pendingImperativeHandleEffectsLength;\n runtime.pendingLayoutEffects.length = snapshot.pendingLayoutEffectsLength;\n runtime.pendingEffects.length = snapshot.pendingEffectsLength;\n runtime.pendingProfilerCommits.length = snapshot.pendingProfilerCommitsLength;\n runtime.profilerBaseDurations = new Map(snapshot.profilerBaseDurations);\n runtime.idCounter = snapshot.idCounter;\n runtime.identifierPrefix = snapshot.identifierPrefix;\n runtime.idMode = snapshot.idMode;\n runtime.strictModeDepth = snapshot.strictModeDepth;\n runtime.strictReplayDepth = snapshot.strictReplayDepth;\n runtime.strictMemoCapture = snapshot.strictMemoCapture;\n runtime.strictMemoCaptureByHook = snapshot.strictMemoCaptureByHook;\n runtime.strictMemoReplay = snapshot.strictMemoReplay;\n runtime.strictMemoReplayByHook = snapshot.strictMemoReplayByHook;\n runtime.profilerFlushDepth = snapshot.profilerFlushDepth;\n\n for (const key of runtime.instances.keys()) {\n if (!snapshot.instanceKeys.has(key)) {\n runtime.instances.delete(key);\n }\n }\n\n clearRuntimePortalNodesExcept(runtime, snapshot.portalNodes);\n runtime.portalContainers.clear();\n for (const container of snapshot.portalContainers) {\n runtime.portalContainers.add(container);\n }\n runtime.portalNodes = clonePortalNodes(snapshot.portalNodes);\n}\n\nexport function clearRuntimePortalNodes(runtime: RootRuntime): void {\n for (const [container, nodes] of runtime.portalNodes) {\n for (const node of nodes) {\n removeChildIfPresent(container, node);\n }\n }\n\n runtime.portalNodes.clear();\n runtime.portalContainers.clear();\n}\n\nfunction clearRuntimePortalNodesExcept(\n runtime: RootRuntime,\n preserved: Map<Element, Set<Node>>,\n): void {\n for (const [container, nodes] of runtime.portalNodes) {\n const preservedNodes = preserved.get(container);\n\n for (const node of nodes) {\n if (preservedNodes?.has(node) !== true) {\n removeChildIfPresent(container, node);\n }\n }\n }\n}\n\nfunction clonePortalNodes(source: Map<Element, Set<Node>>): Map<Element, Set<Node>> {\n const clone = new Map<Element, Set<Node>>();\n\n for (const [container, nodes] of source) {\n clone.set(container, new Set(nodes));\n }\n\n return clone;\n}\n\n/** Stores component-local state and returns the current value with an updater. */\nexport function useState<T>(\n initial: T | (() => T),\n): [T, (value: T | ((previous: T) => T)) => void] {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n\n let slot = instance.hooks[index];\n\n if (slot === undefined) {\n slot = {\n kind: \"state\",\n value: typeof initial === \"function\" ? (initial as () => T)() : initial,\n };\n instance.hooks[index] = slot;\n }\n\n if (slot.kind !== \"state\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n slot.dispatch ??= (value: unknown): void => {\n const previousValue = slot.value;\n const nextValue =\n typeof value === \"function\"\n ? (value as (previous: unknown) => unknown)(slot.value)\n : value;\n\n if (Object.is(slot.value, nextValue)) {\n return;\n }\n\n if (hookRenderState.hostCommitDepth > 0 && !Object.hasOwn(slot, \"hostCommitValue\")) {\n slot.hostCommitValue = previousValue;\n }\n\n slot.value = nextValue;\n const canUseDirectTextBinding =\n hookRenderState.hostCommitDepth === 0 &&\n hookRenderState.currentRuntime !== runtime &&\n hookRenderState.currentInstance !== instance &&\n runtime.effectFlushPhase === undefined &&\n eventBatchDepth === 0 &&\n transitionDepth === 0 &&\n optionsAllowDirectTextBinding(value) &&\n updateDirectTextBinding(slot.textBinding, nextValue);\n\n const canUseDirectStateBinding =\n hookRenderState.hostCommitDepth === 0 &&\n hookRenderState.currentRuntime !== runtime &&\n hookRenderState.currentInstance !== instance &&\n runtime.effectFlushPhase === undefined &&\n eventBatchDepth === 0 &&\n transitionDepth === 0 &&\n optionsAllowDirectTextBinding(value) &&\n updateDirectStateBinding(slot.stateBinding, nextValue);\n\n if (canUseDirectTextBinding || canUseDirectStateBinding) {\n return;\n }\n\n if (hookRenderState.hostCommitDepth > 0) {\n updateHostCommitDirtyState(instance);\n hookRenderState.queuedHostCommitRerenders.add(runtime);\n return;\n }\n\n scheduleInstanceUpdate(runtime, instance, { deferSync: typeof value === \"function\" });\n };\n const setState = slot.dispatch as (value: T | ((previous: T) => T)) => void;\n\n recordDevToolsHook(\"useState\", {\n kind: \"state\",\n value: slot.value,\n });\n\n const result = [slot.value as T, setState] as [\n T,\n (value: T | ((previous: T) => T)) => void,\n ] & Record<PropertyKey, unknown>;\n result[REACTIVE_TEXT_BINDING_META] = getStateTextBinding(slot);\n result[REACTIVE_STATE_BINDING_META] = getStateBinding(slot);\n return result;\n}\n\nexport function subscribeReactiveTextBinding(binding: unknown, node: Text): void {\n if (!isReactiveTextBinding(binding)) {\n clearReactiveTextBinding(node);\n return;\n }\n\n const previous = reactiveTextBindingsByNode.get(node);\n\n if (previous !== undefined && previous !== binding) {\n previous.subscribers.delete(node);\n }\n\n reactiveTextBindingsByNode.set(node, binding);\n binding.subscribers.add(node);\n}\n\nfunction clearReactiveTextBinding(node: Text): void {\n const previous = reactiveTextBindingsByNode.get(node);\n\n if (previous === undefined) {\n return;\n }\n\n previous.subscribers.delete(node);\n reactiveTextBindingsByNode.delete(node);\n}\n\nfunction clearReactiveTextBindingSubscribers(binding: ReactiveTextBinding): void {\n for (const node of binding.subscribers) {\n if (reactiveTextBindingsByNode.get(node) === binding) {\n reactiveTextBindingsByNode.delete(node);\n }\n }\n binding.subscribers.clear();\n}\n\nfunction getStateTextBinding(slot: Extract<HookSlot, { kind: \"state\" }>): ReactiveTextBinding {\n slot.textBinding ??= {\n value: slot.value,\n subscribers: new Set(),\n };\n slot.textBinding.value = slot.value;\n return slot.textBinding;\n}\n\nfunction getStateBinding(slot: Extract<HookSlot, { kind: \"state\" }>): ReactiveStateBinding {\n slot.stateBinding ??= {\n value: slot.value,\n source: { subscribers: null },\n get() {\n trackSource(this.source);\n return this.value;\n },\n };\n slot.stateBinding.value = slot.value;\n return slot.stateBinding;\n}\n\nfunction optionsAllowDirectTextBinding(value: unknown): boolean {\n return typeof value !== \"function\";\n}\n\nfunction updateDirectTextBinding(binding: ReactiveTextBinding | undefined, value: unknown): boolean {\n if (binding === undefined || binding.subscribers.size === 0) {\n return false;\n }\n\n let updated = false;\n const nextText = String(value);\n\n for (const node of binding.subscribers) {\n if (node.parentNode === null) {\n binding.subscribers.delete(node);\n reactiveTextBindingsByNode.delete(node);\n continue;\n }\n\n if (node.data !== nextText) {\n node.data = nextText;\n }\n updated = true;\n }\n\n binding.value = value;\n return updated;\n}\n\nfunction updateDirectStateBinding(\n binding: ReactiveStateBinding | undefined,\n value: unknown,\n): boolean {\n if (binding === undefined || binding.source.subscribers === null) {\n return false;\n }\n\n binding.value = value;\n notifySubscribers(binding.source);\n flushQueuedComputations();\n return true;\n}\n\nfunction isReactiveTextBinding(value: unknown): value is ReactiveTextBinding {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"subscribers\" in value &&\n (value as { subscribers?: unknown }).subscribers instanceof Set\n );\n}\n\n/** Stores reducer-managed component state and returns the current state with a dispatch function. */\nexport function useReducer<TState, TAction, TInitial = TState>(\n reducer: (state: TState, action: TAction) => TState,\n initialArg: TInitial,\n init?: (initialArg: TInitial) => TState,\n): [TState, (action: TAction) => void] {\n const stateTuple = runWithoutDevToolsHookTracking(() =>\n useState<TState>(() =>\n init === undefined ? (initialArg as unknown as TState) : init(initialArg),\n ),\n );\n const [state, setState] = stateTuple;\n const reducerRef = runWithoutDevToolsHookTracking(() => useRef(reducer));\n const stateRef = runWithoutDevToolsHookTracking(() => useRef(state));\n const dispatchRef = runWithoutDevToolsHookTracking(() =>\n useRef<((action: TAction) => void) | undefined>(\n undefined,\n )\n );\n reducerRef.current = reducer;\n stateRef.current = state;\n\n if (dispatchRef.current === undefined) {\n dispatchRef.current = (action: TAction): void => {\n const nextState = reducerRef.current(stateRef.current, action);\n stateRef.current = nextState;\n setState(nextState);\n };\n }\n\n recordDevToolsHook(\"useReducer\", {\n kind: \"reducer\",\n value: state,\n });\n\n const result = [state, dispatchRef.current] as [\n TState,\n (action: TAction) => void,\n ] & Record<PropertyKey, unknown>;\n const stateBinding = (stateTuple as unknown as Record<PropertyKey, unknown>)[\n REACTIVE_STATE_BINDING_META\n ];\n\n if (stateBinding !== undefined) {\n result[REACTIVE_STATE_BINDING_META] = stateBinding;\n }\n return result;\n}\n\n/** Returns a stable mutable ref object for the component instance. */\nexport function useRef<T>(initial: T): { current: T } {\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n\n let slot = instance.hooks[index];\n\n if (slot === undefined) {\n slot = { kind: \"ref\", value: { current: initial } };\n instance.hooks[index] = slot;\n }\n\n if (slot.kind !== \"ref\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n recordDevToolsHook(\"useRef\", {\n kind: \"ref\",\n value: slot.value,\n });\n\n return slot.value as { current: T };\n}\n\n/** Returns a stable id string that matches server and client rendering. */\nexport function useId(): string {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const idSlotKey = `${instance.path}:${instance.hookIndex}`;\n const idRef = runWithoutDevToolsHookTracking(() =>\n useRef<string | undefined>(undefined)\n );\n\n if (idRef.current === undefined) {\n const hydratedId = runtime.idMode === \"client\"\n ? hydratedIdsByRuntime.get(runtime)?.get(idSlotKey)\n : undefined;\n\n if (hydratedId !== undefined) {\n idRef.current = hydratedId;\n } else {\n const mode = runtime.idMode === \"server\" ? \"R\" : \"r\";\n idRef.current = `_${runtime.identifierPrefix}${mode}_${runtime.idCounter}_`;\n runtime.idCounter += 1;\n\n if (runtime.idMode === \"server\") {\n const hydratedIds = hydratedIdsByRuntime.get(runtime) ?? new Map<string, string>();\n hydratedIds.set(idSlotKey, idRef.current);\n hydratedIdsByRuntime.set(runtime, hydratedIds);\n }\n }\n }\n\n recordDevToolsHook(\"useId\", {\n kind: \"id\",\n value: idRef.current,\n });\n\n return idRef.current;\n}\n\n/** Assigns a custom imperative handle to a forwarded ref. */\nexport function useImperativeHandle<T>(\n ref: unknown,\n create: () => T,\n deps?: readonly unknown[],\n): void {\n runWithoutDevToolsHookTracking(() =>\n useEffectImpl(\"imperative-handle\", () => {\n const handle = create();\n assignRef(ref, handle);\n return () => {\n assignRef(ref, null);\n };\n }, deps === undefined ? undefined : [ref, ...deps])\n );\n recordDevToolsHook(\"useImperativeHandle\", deps === undefined\n ? { kind: \"imperative-handle\" }\n : { kind: \"imperative-handle\", deps });\n}\n\n/** Memoizes a computed value until its dependency list changes. */\nexport function useMemo<T>(factory: () => T, deps?: readonly unknown[]): T {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n\n let slot = instance.hooks[index];\n\n if (slot !== undefined && slot.kind !== \"memo\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n let value: unknown;\n const shouldRecompute =\n slot === undefined ||\n deps === undefined ||\n slot.deps === undefined ||\n !areHookInputsEqual(deps, slot.deps);\n\n if (runtime.strictReplayDepth > 0) {\n const replayValue = factory();\n if (slot === undefined) {\n slot =\n deps === undefined\n ? { kind: \"memo\", value: replayValue }\n : { kind: \"memo\", value: replayValue, deps };\n instance.hooks[index] = slot;\n }\n const hookKey = getStrictMemoHookKey(instance, index);\n const replayByHook = runtime.strictMemoReplayByHook;\n const replay = runtime.strictMemoReplay;\n value = replayByHook?.has(hookKey) === true\n ? replayByHook.get(hookKey)\n : replay === undefined || replay.index >= replay.values.length\n ? slot.value\n : replay.values[replay.index++];\n } else if (shouldRecompute) {\n value = factory();\n slot =\n deps === undefined\n ? { kind: \"memo\", value }\n : { kind: \"memo\", value, deps };\n instance.hooks[index] = slot;\n } else {\n value = slot!.value;\n }\n\n if (runtime.strictModeDepth > 0 && runtime.strictReplayDepth === 0) {\n runtime.strictMemoCapture?.push(value);\n runtime.strictMemoCaptureByHook?.set(getStrictMemoHookKey(instance, index), value);\n }\n\n const memoSlot = slot;\n if (memoSlot === undefined) {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n recordDevToolsHook(\"useMemo\", memoSlot.deps === undefined\n ? { kind: \"memo\", value }\n : { kind: \"memo\", value, deps: memoSlot.deps });\n\n return value as T;\n}\n\nfunction getStrictMemoHookKey(\n instance: ComponentInstance,\n index: number,\n): string {\n return `${instance.path}:${getStrictMemoOwnerKey(instance.owner)}:${index}`;\n}\n\nexport function __getStrictMemoOwnerKeyForTesting(owner: unknown): string {\n return getStrictMemoOwnerKey(owner);\n}\n\nfunction getStrictMemoOwnerKey(owner: unknown): string {\n if ((typeof owner === \"object\" && owner !== null) || typeof owner === \"function\") {\n const objectOwner = owner as object;\n let ownerId = strictMemoObjectOwnerIds.get(objectOwner);\n if (ownerId === undefined) {\n ownerId = strictMemoOwnerId++;\n strictMemoObjectOwnerIds.set(objectOwner, ownerId);\n }\n return `o:${ownerId}`;\n }\n\n if (typeof owner === \"symbol\") {\n const globalKey = Symbol.keyFor(owner);\n return globalKey === undefined\n ? `p:symbol:${String(owner)}`\n : `p:symbol-global:${globalKey}`;\n }\n\n return `p:${typeof owner}:${String(owner)}`;\n}\n\nfunction assignRef<T>(ref: unknown, value: T | null): void {\n if (typeof ref === \"function\") {\n ref(value);\n return;\n }\n\n if (typeof ref === \"object\" && ref !== null && \"current\" in ref) {\n (ref as { current: T | null }).current = value;\n }\n}\n\nfunction recordDevToolsHook(type: string, value: DevToolsHookValue): void {\n const instance = hookRenderState.currentInstance;\n\n if (\n instance === undefined ||\n instance.devToolsHookSuppressionDepth > 0 ||\n instance.devToolsHooks === undefined ||\n instance.devToolsHookTypes === undefined\n ) {\n return;\n }\n\n instance.devToolsHookTypes.push(type);\n instance.devToolsHooks.push(value);\n}\n\nfunction hasInstalledDevToolsHook(): boolean {\n return typeof (globalThis as {\n __REACT_DEVTOOLS_GLOBAL_HOOK__?: { inject?: unknown } | undefined;\n }).__REACT_DEVTOOLS_GLOBAL_HOOK__?.inject === \"function\";\n}\n\nfunction runWithoutDevToolsHookTracking<T>(callback: () => T): T {\n const instance = requireInstance();\n instance.devToolsHookSuppressionDepth += 1;\n\n try {\n return callback();\n } finally {\n instance.devToolsHookSuppressionDepth -= 1;\n }\n}\n\n/** Memoizes a callback reference until its dependency list changes. */\nexport function useCallback<T extends (...args: never[]) => unknown>(\n callback: T,\n deps?: readonly unknown[],\n): T {\n const value = runWithoutDevToolsHookTracking(() => useMemo(() => callback, deps));\n recordDevToolsHook(\"useCallback\", deps === undefined\n ? { kind: \"callback\", value }\n : { kind: \"callback\", value, deps });\n return value;\n}\n\n/** Records a value for React DevTools hook inspection. */\nexport function useDebugValue(_value: unknown, _format?: (value: unknown) => unknown): void {\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n\n const value = _format === undefined ? _value : _format(_value);\n let slot = instance.hooks[index];\n\n if (slot !== undefined && slot.kind !== \"debug\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n if (slot === undefined) {\n slot = { kind: \"debug\", value };\n instance.hooks[index] = slot;\n recordDevToolsHook(\"useDebugValue\", {\n kind: \"debug\",\n value,\n });\n return;\n }\n\n slot.value = value;\n recordDevToolsHook(\"useDebugValue\", {\n kind: \"debug\",\n value,\n });\n}\n\n/** Creates a stable event callback that always calls the latest implementation. */\nexport function useEffectEvent<TArgs extends unknown[], TResult>(\n callback: (...args: TArgs) => TResult,\n): (...args: TArgs) => TResult {\n const ref = runWithoutDevToolsHookTracking(() => useRef(callback));\n ref.current = callback;\n\n const event = runWithoutDevToolsHookTracking(() =>\n useCallback((...args: TArgs) => ref.current(...args), [])\n );\n recordDevToolsHook(\"useEffectEvent\", {\n kind: \"callback\",\n value: event,\n deps: [],\n });\n return event;\n}\n\n/** Runs an effect after the rendered output has been committed. */\nexport function useEffect(\n callback: EffectCallback,\n deps?: readonly unknown[],\n): void {\n useEffectImpl(\"normal\", callback, deps);\n recordDevToolsHook(\"useEffect\", deps === undefined\n ? { kind: \"effect\", effectKind: \"normal\" }\n : { kind: \"effect\", effectKind: \"normal\", deps });\n}\n\n/** Runs an insertion effect before layout effects are flushed. */\nexport function useInsertionEffect(\n callback: EffectCallback,\n deps?: readonly unknown[],\n): void {\n useEffectImpl(\"insertion\", callback, deps);\n recordDevToolsHook(\"useInsertionEffect\", deps === undefined\n ? { kind: \"effect\", effectKind: \"insertion\" }\n : { kind: \"effect\", effectKind: \"insertion\", deps });\n}\n\n/** Runs a layout effect after DOM mutations and before normal effects. */\nexport function useLayoutEffect(\n callback: EffectCallback,\n deps?: readonly unknown[],\n): void {\n useEffectImpl(\"layout\", callback, deps);\n recordDevToolsHook(\"useLayoutEffect\", deps === undefined\n ? { kind: \"effect\", effectKind: \"layout\" }\n : { kind: \"effect\", effectKind: \"layout\", deps });\n}\n\n/** Subscribes to an external store with snapshot checks for consistent rendering. */\nexport function useSyncExternalStore<T>(\n subscribe: (listener: () => void) => () => void,\n getSnapshot: () => T,\n getServerSnapshot?: () => T,\n): T {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n let slot = instance.hooks[index];\n\n if (slot === undefined) {\n slot = {\n kind: \"store\",\n value: runtime.idMode === \"server\" && getServerSnapshot !== undefined\n ? getServerSnapshot()\n : getSnapshot(),\n };\n instance.hooks[index] = slot;\n }\n\n if (slot.kind !== \"store\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n slot.getSnapshot = getSnapshot as () => unknown;\n\n const isHydrationMount =\n runtime.idMode === \"server\" && slot.hasMounted !== true && getServerSnapshot !== undefined;\n const currentSnapshot = isHydrationMount ? slot.value as T : getSnapshot();\n\n if (!Object.is(slot.value, currentSnapshot)) {\n slot.value = currentSnapshot;\n }\n\n if (!isHydrationMount) {\n recordExternalStoreCheck(getSnapshot, currentSnapshot);\n }\n\n runWithoutDevToolsHookTracking(() => useEffect(() => {\n const checkForUpdates = (): void => {\n if (instance.disposed === true) {\n return;\n }\n\n const nextSnapshot = (slot.getSnapshot ?? getSnapshot)();\n\n if (!Object.is(slot.value, nextSnapshot)) {\n if (hookRenderState.hostCommitDepth > 0 && !Object.hasOwn(slot, \"hostCommitValue\")) {\n slot.hostCommitValue = slot.value;\n }\n slot.value = nextSnapshot;\n runtime.externalStoreUpdate = true;\n if (hookRenderState.hostCommitDepth > 0) {\n updateHostCommitDirtyState(instance);\n hookRenderState.queuedHostCommitRerenders.add(runtime);\n return;\n }\n instance.dirty = true;\n if (runtime.profilerFlushDepth > 0) {\n hookRenderState.queuedEffectFlushRerenders.add(runtime);\n return;\n }\n if (eventBatchDepth > 0) {\n queueEventRerender(runtime);\n return;\n }\n runtime.rerender(\"sync\");\n }\n };\n\n if (slot.hasMounted !== true) {\n checkForUpdates();\n }\n const unsubscribe = subscribe(checkForUpdates);\n slot.hasMounted = true;\n return () => {\n unsubscribe();\n };\n }, [subscribe]));\n\n recordDevToolsHook(\"useSyncExternalStore\", {\n kind: \"store\",\n value: slot.value,\n });\n\n return slot.value as T;\n}\n\n/** Tracks state and pending status for an action that receives the previous state. */\nexport function useActionState<TState, TPayload>(\n action: (previousState: TState, payload: TPayload) => TState | Promise<TState>,\n initialState: TState,\n): [TState, (payload: TPayload) => void, boolean] {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n let slot = instance.hooks[index];\n\n if (slot !== undefined && slot.kind !== \"action-state\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n if (slot === undefined) {\n slot = {\n kind: \"action-state\",\n state: initialState,\n pendingCount: 0,\n action: action as (previousState: unknown, payload: unknown) => unknown,\n };\n instance.hooks[index] = slot;\n }\n\n if (\"error\" in slot) {\n throw slot.error;\n }\n\n slot.action = action as (previousState: unknown, payload: unknown) => unknown;\n\n if (slot.dispatch === undefined) {\n slot.dispatch = (payload: unknown): void => {\n runActionStateDispatch(slot, runtime, instance, payload);\n };\n }\n\n recordDevToolsHook(\"useActionState\", {\n kind: \"state\",\n value: slot.state,\n });\n\n return [\n slot.state as TState,\n slot.dispatch as (payload: TPayload) => void,\n slot.pendingCount > 0,\n ];\n}\n\n/** Returns an optimistic state value and dispatcher layered on top of a base state. */\nexport function useOptimistic<TState, TPayload>(\n state: TState,\n update?: (state: TState, payload: TPayload) => TState,\n): [TState, (payload: TPayload) => void] {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n let slot = instance.hooks[index];\n const updateFn =\n update === undefined\n ? (_current: unknown, payload: unknown) => payload\n : update as (state: unknown, payload: unknown) => unknown;\n\n if (slot !== undefined && slot.kind !== \"optimistic\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n if (slot === undefined) {\n slot = {\n kind: \"optimistic\",\n baseState: state,\n optimisticState: state,\n update: updateFn,\n };\n instance.hooks[index] = slot;\n }\n\n slot.update = updateFn;\n\n if (!Object.is(slot.baseState, state)) {\n slot.baseState = state;\n slot.optimisticState = state;\n }\n\n if (slot.dispatch === undefined) {\n slot.dispatch = (payload: unknown): void => {\n slot.optimisticState = slot.update(slot.optimisticState, payload);\n scheduleInstanceUpdate(runtime, instance);\n };\n }\n\n recordDevToolsHook(\"useOptimistic\", {\n kind: \"state\",\n value: slot.optimisticState,\n });\n\n return [slot.optimisticState as TState, slot.dispatch as (payload: TPayload) => void];\n}\n\n/** Reads a context-like value or suspends on a thenable until it resolves. */\nexport function use<T>(usable: PromiseLike<T> | unknown): T {\n if (isReactCompatContext(usable)) {\n return useContext(usable) as T;\n }\n\n if (isThenable(usable)) {\n return readThenable(usable as PromiseLike<T>);\n }\n\n return usable as T;\n}\n\n/** Memoizes a function within the currently active cache scope. */\nexport function cache<TArgs extends unknown[], TResult>(\n callback: (...args: TArgs) => TResult,\n): (...args: TArgs) => TResult {\n return (...args) => {\n const scope = getCurrentCacheScope();\n\n if (scope === undefined) {\n return callback(...args);\n }\n\n const leaf = getCacheLeaf(scope, callback, args);\n\n if (leaf.status === \"fulfilled\") {\n return leaf.value as TResult;\n }\n\n if (leaf.status === \"rejected\") {\n throw leaf.reason;\n }\n\n try {\n const value = callback(...args);\n leaf.status = \"fulfilled\";\n leaf.value = value;\n return value;\n } catch (error) {\n leaf.status = \"rejected\";\n leaf.reason = error;\n throw error;\n }\n };\n}\n\n/** Returns the abort signal for the currently active cache scope. */\nexport function cacheSignal(): AbortSignal | null {\n return getCurrentCacheScope()?.controller.signal ?? null;\n}\n\n/** Returns the current owner stack captured for cache diagnostics. */\nexport function captureOwnerStack(): string | null {\n const stack = getCurrentCacheScope()?.ownerStack ?? emptyCacheOwnerStack;\n return stack.length === 0 ? null : stack.join(\"\\n\");\n}\n\n/** Returns a callback placeholder for refreshing the current cache boundary. */\nexport function unstable_useCacheRefresh(): () => void {\n return useCallback(() => undefined, []);\n}\n\nexport function hasStableExternalStores(\n runtime: RootRuntime,\n): boolean {\n return runtime.externalStoreChecks.every((check) =>\n Object.is(check.getSnapshot(), check.value),\n );\n}\n\nfunction readThenable<T>(thenable: PromiseLike<T>): T {\n const record = thenable as PromiseLike<T> & {\n status?: \"pending\" | \"fulfilled\" | \"rejected\";\n value?: T;\n reason?: unknown;\n };\n\n if (record.status === \"fulfilled\") {\n return record.value as T;\n }\n\n if (record.status === \"rejected\") {\n throw record.reason;\n }\n\n if (record.status === undefined) {\n record.status = \"pending\";\n thenable.then(\n (value) => {\n if (record.status === \"pending\") {\n record.status = \"fulfilled\";\n record.value = value;\n }\n },\n (reason) => {\n if (record.status === \"pending\") {\n record.status = \"rejected\";\n record.reason = reason;\n }\n },\n );\n }\n\n throw thenable;\n}\n\n/** Callback body scheduled as transition work. */\nexport type TransitionScope = () => void;\n/** Function that schedules a transition scope. */\nexport type StartTransition = (scope: TransitionScope) => void;\n\n/** Schedules non-urgent updates produced inside a transition scope. */\nexport function startTransition(scope: TransitionScope): void {\n const context = {\n syncVersion,\n transitionVersion: ++transitionVersion,\n };\n\n runTransitionScope(scope, context);\n}\n\n/** Runs a callback while updates are batched at the requested event priority. */\nexport function runWithEventPriority<T>(\n priority: EventPriority,\n callback: () => T,\n deferFlush?: (flush: () => void) => void,\n): T {\n const previousPriority = currentEventPriority;\n currentEventPriority = priority;\n eventBatchDepth += 1;\n\n try {\n return callback();\n } finally {\n eventBatchDepth -= 1;\n currentEventPriority = previousPriority;\n\n if (eventBatchDepth === 0) {\n const flush = () => {\n flushEventRerendersForPriority(priority);\n };\n if (deferFlush === undefined) {\n flush();\n } else {\n deferFlush(flush);\n }\n }\n }\n}\n\nexport function flushSyncUpdates<T>(callback: () => T): T {\n const previousEventBatchDepth = eventBatchDepth;\n const previousEventPriority = currentEventPriority;\n eventBatchDepth = 0;\n currentEventPriority = \"discrete\";\n\n try {\n const value = callback();\n // Reactive-core cell/computed updates flush in a scheduled microtask by\n // default; drain them here so flushSync guarantees committed DOM on return\n // for compiled (cell-driven) components as well as compat hook state.\n flushPendingComputed();\n flushQueuedComputations();\n flushQueuedEventRerenders();\n return value;\n } finally {\n eventBatchDepth = previousEventBatchDepth;\n currentEventPriority = previousEventPriority;\n }\n}\n\nexport function runWithHostCommit<T>(callback: () => T): T {\n hookRenderState.hostCommitDepth += 1;\n try {\n return callback();\n } finally {\n hookRenderState.hostCommitDepth -= 1;\n }\n}\n\n/** Returns transition pending state and a function that starts transition work. */\nexport function useTransition(): [boolean, StartTransition] {\n const instance = requireInstance();\n const [pending, setPending] = runWithoutDevToolsHookTracking(() => useState(false));\n const startTransitionWithPending: StartTransition = (scope) => {\n setPending(true);\n const context = {\n syncVersion,\n transitionVersion: ++transitionVersion,\n };\n scheduleCallback(\"low\", () => {\n if (instance.disposed === true) {\n return;\n }\n\n if (!isTransitionContextCurrent(context)) {\n setPending(false);\n return;\n }\n\n runTransitionScope(() => {\n scope();\n if (instance.disposed === true) {\n return;\n }\n setPending(false);\n }, context);\n });\n };\n\n recordDevToolsHook(\"useTransition\", {\n kind: \"transition\",\n value: pending,\n });\n\n return [\n pending,\n startTransitionWithPending,\n ];\n}\n\n/** Defers a value update so urgent renders can commit first. */\nexport function useDeferredValue<T>(value: T, initialValue?: T): T {\n const [deferredValue, setDeferredValue] = runWithoutDevToolsHookTracking(() =>\n useState(arguments.length > 1 ? (initialValue as T) : value)\n );\n\n runWithoutDevToolsHookTracking(() =>\n useEffect(() => {\n if (Object.is(deferredValue, value)) {\n return;\n }\n\n startTransition(() => {\n setDeferredValue(value);\n });\n }, [value, deferredValue])\n );\n\n const currentValue = Object.is(deferredValue, value) ? value : deferredValue;\n\n recordDevToolsHook(\"useDeferredValue\", {\n kind: \"deferred\",\n value: currentValue,\n });\n\n return currentValue;\n}\n\nfunction runTransitionScope(\n scope: TransitionScope,\n context: TransitionContext,\n): void {\n transitionDepth += 1;\n const previousContext = currentTransitionContext;\n currentTransitionContext = context;\n\n try {\n scope();\n } finally {\n currentTransitionContext = previousContext;\n transitionDepth -= 1;\n }\n}\n\nfunction queueTransitionRerender(\n runtime: RootRuntime,\n context: TransitionContext,\n): void {\n queuedTransitionRerenders.set(runtime, context);\n\n if (transitionRerenderScheduled) {\n return;\n }\n\n transitionRerenderScheduled = true;\n scheduleCallback(\"low\", flushQueuedTransitionRerenders);\n}\n\nfunction queueEventRerender(runtime: RootRuntime): void {\n queuedEventRerenders.add(runtime);\n}\n\nfunction queueAutomaticRerender(runtime: RootRuntime): void {\n queueEventRerender(runtime);\n\n if (automaticRerenderScheduled) {\n return;\n }\n\n automaticRerenderScheduled = true;\n queueMicrotask(() => {\n automaticRerenderScheduled = false;\n flushQueuedEventRerenders(\"sync\");\n });\n}\n\nfunction flushEventRerendersForPriority(priority: EventPriority): void {\n if (priority === \"discrete\") {\n flushQueuedEventRerenders(\"sync\");\n return;\n }\n\n if (eventRerenderScheduled || queuedEventRerenders.size === 0) {\n return;\n }\n\n eventRerenderScheduled = true;\n scheduleCallback(priority === \"continuous\" ? \"normal\" : \"low\", () => {\n eventRerenderScheduled = false;\n flushQueuedEventRerenders(\n priority === \"continuous\" ? \"continuous\" : \"sync\",\n );\n });\n}\n\nfunction flushQueuedEventRerenders(priority: RenderPriority = \"sync\"): void {\n const runtimes = Array.from(queuedEventRerenders);\n queuedEventRerenders.clear();\n\n for (const runtime of runtimes) {\n runtime.rerender(priority);\n }\n}\n\nfunction flushQueuedTransitionRerenders(): void {\n transitionRerenderScheduled = false;\n const entries = Array.from(queuedTransitionRerenders.entries());\n queuedTransitionRerenders.clear();\n\n for (const [runtime, context] of entries) {\n if (isTransitionContextCurrent(context)) {\n runtime.rerender(\"transition\");\n }\n }\n}\n\nfunction isTransitionContextCurrent(context: TransitionContext): boolean {\n return (\n context.syncVersion === syncVersion &&\n context.transitionVersion === transitionVersion\n );\n}\n\nfunction useEffectImpl(\n effectKind: \"insertion\" | \"imperative-handle\" | \"layout\" | \"normal\",\n callback: EffectCallback,\n deps?: readonly unknown[],\n): void {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n\n let slot = instance.hooks[index];\n\n if (slot !== undefined && slot.kind !== \"effect\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n const shouldRun =\n slot === undefined ||\n slot.mounted !== true ||\n deps === undefined ||\n slot.deps === undefined ||\n !areHookInputsEqual(deps, slot.deps);\n\n if (slot === undefined) {\n slot =\n deps === undefined\n ? { kind: \"effect\", effectKind, callback }\n : { kind: \"effect\", effectKind, callback, deps };\n instance.hooks[index] = slot;\n } else {\n slot.effectKind = effectKind;\n slot.callback = callback;\n slot.disposed = false;\n\n if (deps === undefined) {\n delete slot.deps;\n } else {\n slot.deps = deps;\n }\n }\n\n slot.strictReplay =\n (runtime.strictModeDepth > 0 || runtime.strictReplayDepth > 0) &&\n effectKind !== \"insertion\" &&\n effectKind !== \"imperative-handle\";\n\n if (shouldRun) {\n const queue =\n effectKind === \"insertion\"\n ? runtime.pendingInsertionEffects\n : effectKind === \"imperative-handle\"\n ? runtime.pendingImperativeHandleEffects\n : effectKind === \"layout\"\n ? runtime.pendingLayoutEffects\n : runtime.pendingEffects;\n queue.push({ slot });\n }\n}\n\nfunction recordExternalStoreCheck<T>(\n getSnapshot: () => T,\n value: T,\n): void {\n hookRenderState.currentRuntime?.externalStoreChecks.push({ getSnapshot, value });\n}\n\nfunction flushPendingEffects(queue: PendingEffect[]): PendingEffect[] {\n const pending = queue.splice(0);\n const strictReplay: PendingEffect[] = [];\n const runnable: { slot: Extract<HookSlot, { kind: \"effect\" }>; shouldReplay: boolean }[] = [];\n\n for (const { slot } of pending) {\n if (slot.disposed === true) {\n continue;\n }\n\n const shouldReplay = slot.strictReplay === true && slot.cleanup === undefined;\n slot.cleanup?.();\n runnable.push({ slot, shouldReplay });\n }\n\n for (const { slot, shouldReplay } of runnable) {\n if (slot.disposed === true) {\n continue;\n }\n\n const cleanup = slot.callback();\n\n if (typeof cleanup === \"function\") {\n slot.cleanup = cleanup;\n } else {\n delete slot.cleanup;\n }\n slot.mounted = true;\n\n if (shouldReplay) {\n strictReplay.push({ slot });\n }\n }\n\n return strictReplay;\n}\n\nfunction replayStrictEffects(effects: PendingEffect[]): void {\n for (const { slot } of effects) {\n if (slot.disposed === true) {\n continue;\n }\n\n const cleanup = slot.callback();\n\n if (typeof cleanup === \"function\") {\n slot.cleanup = cleanup;\n } else {\n delete slot.cleanup;\n }\n }\n}\n\nfunction flushProfilerCommits(\n runtime: RootRuntime,\n commits: PendingProfilerCommit[],\n): void {\n if (commits.length === 0) {\n return;\n }\n\n const commitTime = getCurrentTime();\n runtime.profilerFlushDepth += 1;\n\n try {\n for (const commit of commits) {\n commit.onRender(\n commit.id,\n commit.phase,\n commit.actualDuration,\n commit.baseDuration,\n commit.startTime,\n commitTime,\n );\n }\n } finally {\n runtime.profilerFlushDepth -= 1;\n }\n}\n\nfunction runActionStateDispatch(\n slot: Extract<HookSlot, { kind: \"action-state\" }>,\n runtime: RootRuntime,\n instance: ComponentInstance,\n payload: unknown,\n): void {\n let result: unknown;\n\n try {\n result = slot.action(slot.state, payload);\n } catch (error) {\n slot.error = error;\n scheduleInstanceUpdate(runtime, instance);\n return;\n }\n\n if (!isThenable(result)) {\n slot.state = result;\n scheduleInstanceUpdate(runtime, instance);\n return;\n }\n\n slot.pendingCount += 1;\n scheduleInstanceUpdate(runtime, instance);\n result.then(\n (nextState) => {\n slot.state = nextState;\n slot.pendingCount = Math.max(0, slot.pendingCount - 1);\n scheduleInstanceUpdate(runtime, instance);\n },\n (error) => {\n slot.error = error;\n slot.pendingCount = Math.max(0, slot.pendingCount - 1);\n scheduleInstanceUpdate(runtime, instance);\n },\n );\n}\n\nexport function scheduleRuntimeRerender(\n runtime: RootRuntime,\n options: { deferSync?: boolean } = {},\n): void {\n if (transitionDepth === 0) {\n syncVersion += 1;\n if (hookRenderState.hostCommitDepth > 0) {\n hookRenderState.queuedHostCommitRerenders.add(runtime);\n return;\n }\n if (runtime.effectFlushPhase !== undefined) {\n hookRenderState.queuedEffectFlushRerenders.add(runtime);\n return;\n }\n if (eventBatchDepth > 0) {\n queueEventRerender(runtime);\n return;\n }\n if (options.deferSync === true) {\n queueAutomaticRerender(runtime);\n return;\n }\n runtime.rerender(\"sync\");\n return;\n }\n\n if (currentTransitionContext !== undefined) {\n queueTransitionRerender(runtime, currentTransitionContext);\n }\n}\n\nfunction scheduleInstanceUpdate(\n runtime: RootRuntime,\n instance: ComponentInstance,\n options: { deferSync?: boolean } = {},\n): void {\n if (instance.disposed === true) {\n return;\n }\n\n instance.dirty = true;\n if (\n hookRenderState.currentRuntime === runtime &&\n hookRenderState.currentInstance === instance\n ) {\n runtime.renderPhaseUpdate = true;\n return;\n }\n\n scheduleRuntimeRerender(runtime, options);\n}\n\nfunction flushHostCommitRerenders(): boolean {\n if (\n hostCommitRerenderDepth > 0 ||\n hookRenderState.hostCommitDepth > 0 ||\n hookRenderState.queuedHostCommitRerenders.size === 0\n ) {\n return false;\n }\n\n let didRerender = false;\n hostCommitRerenderDepth += 1;\n try {\n for (\n let attempt = 0;\n attempt < 3 && hookRenderState.queuedHostCommitRerenders.size > 0;\n attempt += 1\n ) {\n const runtimes = [...hookRenderState.queuedHostCommitRerenders];\n hookRenderState.queuedHostCommitRerenders.clear();\n for (const runtime of runtimes) {\n const hasDirtyInstance = Array.from(runtime.instances.values()).some(\n (instance) => instance.dirty,\n );\n clearHostCommitStateBaselines(runtime);\n\n if (hasDirtyInstance) {\n didRerender = true;\n runtime.rerender(\"sync\");\n }\n }\n }\n hookRenderState.queuedHostCommitRerenders.clear();\n } finally {\n hostCommitRerenderDepth -= 1;\n }\n return didRerender;\n}\n\nfunction dedupePendingEffects(queue: PendingEffect[]): void {\n if (queue.length < 2) {\n return;\n }\n\n const latestBySlot = new Map<Extract<HookSlot, { kind: \"effect\" }>, PendingEffect>();\n for (const effect of queue) {\n latestBySlot.set(effect.slot, effect);\n }\n queue.length = 0;\n queue.push(...latestBySlot.values());\n}\n\nfunction flushEffectFlushRerenders(): void {\n if (\n effectFlushRerenderDepth > 0 ||\n hookRenderState.queuedEffectFlushRerenders.size === 0\n ) {\n return;\n }\n\n effectFlushRerenderDepth += 1;\n try {\n for (\n let attempt = 0;\n attempt < 3 && hookRenderState.queuedEffectFlushRerenders.size > 0;\n attempt += 1\n ) {\n const runtimes = [...hookRenderState.queuedEffectFlushRerenders];\n hookRenderState.queuedEffectFlushRerenders.clear();\n for (const runtime of runtimes) {\n const hasDirtyInstance = Array.from(runtime.instances.values()).some(\n (instance) => instance.dirty,\n );\n\n if (hasDirtyInstance) {\n runtime.rerender(\"sync\");\n }\n }\n }\n hookRenderState.queuedEffectFlushRerenders.clear();\n } finally {\n effectFlushRerenderDepth -= 1;\n }\n}\n\nfunction updateHostCommitDirtyState(\n instance: ComponentInstance,\n): void {\n instance.dirty = instance.hooks.some(\n (slot) =>\n (slot.kind === \"state\" || slot.kind === \"store\") &&\n Object.hasOwn(slot, \"hostCommitValue\") &&\n !Object.is(slot.hostCommitValue, slot.value),\n );\n}\n\nfunction clearHostCommitStateBaselines(runtime: RootRuntime): void {\n for (const instance of runtime.instances.values()) {\n for (const slot of instance.hooks) {\n if (slot.kind === \"state\" || slot.kind === \"store\") {\n delete slot.hostCommitValue;\n }\n }\n }\n}\n\nfunction getCacheLeaf(\n scope: CacheScope,\n callback: (...args: never[]) => unknown,\n args: readonly unknown[],\n): CacheTrieNode {\n let node = scope.functionCaches.get(callback);\n\n if (node === undefined) {\n node = createCacheTrieNode();\n scope.functionCaches.set(callback, node);\n }\n\n for (const arg of args) {\n node = getCacheChild(node, arg);\n }\n\n return node;\n}\n\nfunction getCacheChild(node: CacheTrieNode, key: unknown): CacheTrieNode {\n if ((typeof key === \"object\" && key !== null) || typeof key === \"function\") {\n const objectKey = key as object;\n let child = node.objectChildren.get(objectKey);\n\n if (child === undefined) {\n child = createCacheTrieNode();\n node.objectChildren.set(objectKey, child);\n }\n\n return child;\n }\n\n let child = node.primitiveChildren.get(key);\n\n if (child === undefined) {\n child = createCacheTrieNode();\n node.primitiveChildren.set(key, child);\n }\n\n return child;\n}\n\nfunction createCacheTrieNode(): CacheTrieNode {\n return {\n primitiveChildren: new Map(),\n objectChildren: new WeakMap(),\n };\n}\n\nfunction getCurrentCacheScope(): CacheScope | undefined {\n return cacheScopeStorage?.getStore() ?? hookRenderState.currentCacheScope ?? getGlobalCacheScope();\n}\n\nfunction getGlobalCacheScope(): CacheScope | undefined {\n return (globalThis as { [CACHE_SCOPE_SYMBOL]?: CacheScope })[CACHE_SCOPE_SYMBOL];\n}\n\nfunction setGlobalCacheScope(scope: CacheScope | undefined): void {\n if (scope === undefined) {\n delete (globalThis as { [CACHE_SCOPE_SYMBOL]?: CacheScope })[CACHE_SCOPE_SYMBOL];\n return;\n }\n\n (globalThis as { [CACHE_SCOPE_SYMBOL]?: CacheScope })[CACHE_SCOPE_SYMBOL] = scope;\n}\n\ninterface AsyncLocalStorageLike<T> {\n getStore(): T | undefined;\n run<TResult>(store: T, callback: () => TResult): TResult;\n}\n\ntype AsyncLocalStorageConstructor = new <T>() => AsyncLocalStorageLike<T>;\n\nfunction createCacheScopeStorage(): AsyncLocalStorageLike<CacheScope> | undefined {\n const globalConstructor = (globalThis as {\n AsyncLocalStorage?: AsyncLocalStorageConstructor | undefined;\n }).AsyncLocalStorage;\n if (typeof globalConstructor === \"function\") {\n return new globalConstructor<CacheScope>();\n }\n\n const builtinConstructor = (globalThis as {\n process?: {\n getBuiltinModule?: (name: string) => { AsyncLocalStorage?: AsyncLocalStorageConstructor };\n };\n }).process?.getBuiltinModule?.(\"node:async_hooks\")?.AsyncLocalStorage;\n return typeof builtinConstructor === \"function\"\n ? new builtinConstructor<CacheScope>()\n : undefined;\n}\n\nexport function __setCacheScopeStorageForTesting(\n storage: AsyncLocalStorageLike<CacheScope> | undefined,\n): void {\n cacheScopeStorage = storage;\n fallbackAsyncCacheScopeActive = false;\n}\n\nfunction cleanupStrictEffects(effects: PendingEffect[]): void {\n for (const { slot } of effects) {\n if (slot.disposed !== true) {\n slot.cleanup?.();\n }\n }\n}\n\nfunction cleanupInactiveInstances(runtime: RootRuntime): void {\n const activeInstanceKeys = runtime.activeInstanceKeys;\n\n if (activeInstanceKeys === undefined) {\n return;\n }\n\n if (activeInstanceKeys.size === runtime.instances.size) {\n return;\n }\n\n for (const [key, instance] of runtime.instances) {\n if (!activeInstanceKeys.has(key)) {\n cleanupInstance(instance);\n runtime.instances.delete(key);\n removeInstanceKeyFromIndex(runtime, key);\n }\n }\n}\n\nfunction indexInstanceKey(runtime: RootRuntime, key: string): void {\n forEachInstanceKeyPrefix(key, (prefix) => {\n let keys = runtime.instanceKeysByPrefix.get(prefix);\n\n if (keys === undefined) {\n keys = new Set();\n runtime.instanceKeysByPrefix.set(prefix, keys);\n }\n\n keys.add(key);\n });\n}\n\nfunction removeInstanceKeyFromIndex(runtime: RootRuntime, key: string): void {\n forEachInstanceKeyPrefix(key, (prefix) => {\n const keys = runtime.instanceKeysByPrefix.get(prefix);\n\n if (keys === undefined) {\n return;\n }\n\n keys.delete(key);\n\n if (keys.size === 0) {\n runtime.instanceKeysByPrefix.delete(prefix);\n }\n });\n}\n\nfunction forEachInstanceKeyPrefix(\n key: string,\n callback: (prefix: string) => void,\n): void {\n let start = 0;\n\n while (start < key.length) {\n const next = key.indexOf(\".\", start);\n\n if (next === -1) {\n break;\n }\n\n callback(key.slice(0, next));\n start = next + 1;\n }\n\n callback(key);\n}\n\nfunction cleanupInstance(instance: ComponentInstance): void {\n instance.disposed = true;\n for (const slot of instance.hooks) {\n if (slot?.kind === \"effect\") {\n slot.disposed = true;\n slot.mounted = false;\n slot.cleanup?.();\n delete slot.cleanup;\n } else if (slot?.kind === \"state\" && slot.textBinding !== undefined) {\n clearReactiveTextBindingSubscribers(slot.textBinding);\n }\n }\n}\n\nfunction requireRuntime(): RootRuntime {\n if (hookRenderState.currentRuntime === undefined) {\n throw new Error(\"Hooks can only be called while rendering.\");\n }\n\n return hookRenderState.currentRuntime;\n}\n\nfunction requireInstance(): ComponentInstance {\n return hookRenderState.currentInstance ?? materializeInstance();\n}\n\nfunction areHookInputsEqual(\n nextDeps: readonly unknown[],\n previousDeps: readonly unknown[],\n): boolean {\n if (nextDeps.length !== previousDeps.length) {\n return false;\n }\n\n for (let index = 0; index < nextDeps.length; index += 1) {\n if (!Object.is(nextDeps[index], previousDeps[index])) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction getCurrentTime(): number {\n return typeof performance === \"undefined\" ? Date.now() : performance.now();\n}\n"]}
|