@farm.js/react 0.1.0-beta.20 → 0.1.0-beta.21

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/iterable.ts","../src/compiler-runtime.tsx"],"names":["value","props","descriptor","update","window","incoming","prepared","incomingKeys","updates","sequence","changed"],"mappings":"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","file":"compiler-runtime.mjs","sourcesContent":["const oneShotSnapshots = new WeakMap<object, readonly unknown[]>();\n\n/** Materialize an iterable without consuming a one-shot iterator more than once. */\nexport function materializeIterable<Item>(source: Iterable<Item> | null | undefined): Item[] {\n if (source == null) return [];\n\n const iterator = source[Symbol.iterator]();\n const oneShot =\n iterator === (source as unknown) &&\n (typeof source === \"object\" || typeof source === \"function\");\n if (oneShot) {\n const cached = oneShotSnapshots.get(source as object);\n if (cached) return cached as Item[];\n }\n\n const items = Array.from({ [Symbol.iterator]: () => iterator });\n if (oneShot) oneShotSnapshots.set(source as object, items);\n return items;\n}\n","import React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { materializeIterable } from \"./iterable\";\n\nexport type CompilerStateUpdater = unknown | ((previous: unknown) => unknown);\nexport type CompilerRuntimeReactivity = \"static\" | \"hybrid\";\n\ninterface CompilerKeyedMapUpdateHint {\n readonly sourceToken: object;\n readonly changedIndices: readonly number[];\n readonly previous?: CompilerKeyedMapUpdateHint;\n}\n\ninterface CompilerKeyedArrayAppendHint {\n readonly sourceToken: object;\n readonly startIndex: number;\n readonly resultLength: number;\n readonly mappedItemSources?: ReadonlyMap<number, unknown> | CompilerMappedItemSources;\n readonly mappedItemValues?: ReadonlyMap<number, unknown>;\n readonly mappedSurvivorsValidated?: boolean;\n readonly structuralUpdate?: CompilerKeyedArrayFilterHint;\n readonly previous?: CompilerKeyedArrayAppendHint;\n}\n\ninterface CompilerKeyedArrayFilterHint {\n readonly kind: \"filter\" | \"slice\";\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n readonly removedIndices?: readonly number[];\n readonly retainedEnd?: number;\n readonly retainedStart?: number;\n readonly mappedItemSources?: CompilerMappedItemSources;\n readonly previous?: CompilerKeyedArrayFilterHint;\n}\n\ninterface CompilerKeyedArrayPrependHint {\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n readonly prefixLength: number;\n readonly mappedItemSources?: ReadonlyMap<number, unknown> | CompilerMappedItemSources;\n readonly mappedItemValues?: ReadonlyMap<number, unknown>;\n readonly mappedSurvivorsValidated?: boolean;\n readonly structuralUpdate?: CompilerKeyedArrayFilterHint;\n readonly previous?: CompilerKeyedArrayPrependHint;\n}\n\ninterface CompilerKeyedArrayRollingWindowHint {\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n readonly retainedEnd: number;\n readonly retainedStart: number;\n readonly mapped?: true;\n readonly previous?: CompilerKeyedArrayRollingWindowHint;\n}\n\ninterface CompilerKeyedArrayPositionHint {\n readonly kind: \"insert\" | \"remove\" | \"replace\";\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n readonly position: number;\n}\n\ninterface CompilerKeyedArrayBatchInsertHint {\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n readonly position: number;\n}\n\ninterface CompilerKeyedArrayWindowReplaceHint {\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n readonly position: number;\n readonly removedCount: number;\n readonly insertedCount: number;\n readonly previous?: CompilerKeyedArrayWindowReplaceHint;\n}\n\nconst enum CompilerKeyedArrayReorderKind {\n Reverse,\n Permutation,\n}\n\ninterface CompilerKeyedArrayReorderHint {\n /** An omitted kind is an exact identity order. */\n readonly kind?: CompilerKeyedArrayReorderKind;\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n readonly mapped?: boolean;\n readonly mappedItemSources?: CompilerMappedItemSources;\n readonly rollingWindowMapUpdate?: true;\n readonly rollingWindowUpdate?: CompilerKeyedArrayRollingWindowHint;\n readonly structuralUpdate?: CompilerKeyedArrayFilterHint;\n}\n\ninterface CompilerMappedItemSources {\n readonly queuedSourceItems?: readonly unknown[];\n get(item: unknown): unknown;\n has(item: unknown): boolean;\n}\n\nfunction reversedCompilerKeyedArrayOrder(\n order: CompilerKeyedArrayReorderKind | undefined,\n): CompilerKeyedArrayReorderKind | undefined {\n return order === CompilerKeyedArrayReorderKind.Reverse\n ? undefined\n : (order ?? CompilerKeyedArrayReorderKind.Reverse);\n}\n\ntype CompilerKeyedCollectionKind = \"set\" | \"map\";\ntype CompilerKeyedCollectionMutation = \"set-add\" | \"set-delete\" | \"map-set\" | \"map-delete\";\n\ninterface CompilerKeyedCollectionDraft {\n readonly kind: CompilerKeyedCollectionKind;\n readonly changedKeys: unknown[];\n}\n\ninterface CompilerKeyedCollectionUpdateHint {\n readonly kind: CompilerKeyedCollectionKind;\n readonly sourceToken: object;\n readonly changedKeys: readonly unknown[];\n readonly previous?: CompilerKeyedCollectionUpdateHint;\n}\n\nconst COMPILER_KEYED_COLLECTION_TOKENS = /* @__PURE__ */ new WeakMap<object, object>();\nconst COMPILER_KEYED_MAP_UPDATES = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedMapUpdateHint\n>();\nconst COMPILER_KEYED_ARRAY_APPENDS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayAppendHint\n>();\nconst COMPILER_KEYED_ARRAY_FILTERS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayFilterHint\n>();\nconst COMPILER_KEYED_ARRAY_PREPENDS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayPrependHint\n>();\nconst COMPILER_KEYED_ARRAY_ROLLING_WINDOWS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayRollingWindowHint\n>();\nconst COMPILER_KEYED_ARRAY_POSITIONS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayPositionHint\n>();\nconst COMPILER_KEYED_ARRAY_BATCH_INSERTS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayBatchInsertHint\n>();\nconst COMPILER_KEYED_ARRAY_WINDOW_REPLACEMENTS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayWindowReplaceHint\n>();\nconst COMPILER_KEYED_ARRAY_REORDERS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayReorderHint\n>();\nconst COMPILER_KEYED_COLLECTION_DRAFTS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedCollectionDraft\n>();\nconst COMPILER_KEYED_COLLECTION_UPDATES = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedCollectionUpdateHint\n>();\nconst COMPILER_KEYED_COMMITTED_COLLECTIONS = /* @__PURE__ */ new WeakSet<object>();\nconst COMPILER_KEYED_COMMITTED_ITEM_SNAPSHOTS = /* @__PURE__ */ new WeakMap<\n object,\n readonly unknown[]\n>();\nconst NATIVE_ARRAY_PROTOTYPE = Array.prototype;\nconst NATIVE_ARRAY_ITERATOR = Array.prototype[Symbol.iterator];\nconst NATIVE_ARRAY_FILTER = Array.prototype.filter;\nconst NATIVE_ARRAY_MAP = Array.prototype.map;\nconst NATIVE_ARRAY_SLICE = Array.prototype.slice;\nconst NATIVE_ARRAY_TO_SPLICED = (\n Array.prototype as unknown as { toSpliced?: (...args: readonly unknown[]) => unknown }\n).toSpliced;\nconst NATIVE_ARRAY_WITH = (\n Array.prototype as unknown as { with?: (...args: readonly unknown[]) => unknown }\n).with;\nconst NATIVE_ARRAY_TO_REVERSED = (\n Array.prototype as unknown as { toReversed?: (...args: readonly unknown[]) => unknown }\n).toReversed;\nconst NATIVE_ARRAY_TO_SORTED = (\n Array.prototype as unknown as { toSorted?: (...args: readonly unknown[]) => unknown }\n).toSorted;\nconst NATIVE_REFLECT_APPLY = Reflect.apply;\n\nfunction compilerObject(value: unknown): object | undefined {\n return (typeof value === \"object\" && value !== null) || typeof value === \"function\"\n ? (value as object)\n : undefined;\n}\n\nfunction compilerKeyedCollectionToken(value: unknown): object | undefined {\n const target = compilerObject(value);\n if (!target) return undefined;\n let token = COMPILER_KEYED_COLLECTION_TOKENS.get(target);\n if (!token) {\n token = {};\n COMPILER_KEYED_COLLECTION_TOKENS.set(target, token);\n }\n return token;\n}\n\nfunction commitCompilerKeyedCollection(value: unknown): object | undefined {\n const target = compilerObject(value);\n if (!target) return undefined;\n COMPILER_KEYED_COMMITTED_COLLECTIONS.add(target);\n return compilerKeyedCollectionToken(target);\n}\n\nfunction commitCompilerKeyedCollectionWithItemSnapshot(\n value: unknown,\n instances?: ReadonlyMap<string, CompilerKeyedRowInstance>,\n): object | undefined {\n const token = commitCompilerKeyedCollection(value);\n if (!token) return undefined;\n if (!instances) {\n COMPILER_KEYED_COMMITTED_ITEM_SNAPSHOTS.delete(token);\n return token;\n }\n const items: unknown[] = [];\n let index = 0;\n for (const instance of instances.values()) {\n if (instance.index !== index) {\n COMPILER_KEYED_COMMITTED_ITEM_SNAPSHOTS.delete(token);\n return token;\n }\n items.push(instance.item);\n index += 1;\n }\n COMPILER_KEYED_COMMITTED_ITEM_SNAPSHOTS.set(token, items);\n return token;\n}\n\nfunction compilerKeyedMapChangedIndices(\n value: unknown,\n sourceToken: object | undefined,\n): readonly number[] | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken) return undefined;\n const update = COMPILER_KEYED_MAP_UPDATES.get(target);\n if (!update || update.sourceToken !== sourceToken) return undefined;\n const changedIndices: number[] = [];\n for (\n let current: CompilerKeyedMapUpdateHint | undefined = update;\n current;\n current = current.previous\n ) {\n changedIndices.push(...current.changedIndices);\n }\n return changedIndices;\n}\n\nfunction compilerKeyedArrayAppendStart(\n value: unknown,\n sourceToken: object | undefined,\n expectedStart: number,\n): number | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_APPENDS.get(target);\n if (!update || update.sourceToken !== sourceToken) return undefined;\n const updates: CompilerKeyedArrayAppendHint[] = [];\n for (\n let current: CompilerKeyedArrayAppendHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n let length = expectedStart;\n for (let index = updates.length - 1; index >= 0; index -= 1) {\n const current = updates[index];\n if (current.startIndex !== length || current.resultLength < length) return undefined;\n length = current.resultLength;\n }\n return length === value.length ? expectedStart : undefined;\n}\n\nfunction compilerKeyedArrayStructuralAppendUpdate(\n value: unknown,\n sourceToken: object | undefined,\n expectedStart: number,\n):\n | {\n readonly startIndex: number;\n readonly structuralUpdate?: CompilerKeyedArrayFilterHint;\n readonly structuralSurvivors?: {\n readonly indices: readonly number[];\n readonly keysStable: boolean;\n };\n }\n | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_APPENDS.get(target);\n if (!update || update.sourceToken !== sourceToken) return undefined;\n const updates: CompilerKeyedArrayAppendHint[] = [];\n for (\n let current: CompilerKeyedArrayAppendHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n updates.reverse();\n const structuralUpdate = update.structuralUpdate;\n const first = updates[0];\n const survivorResult = structuralUpdate\n ? compilerKeyedArrayFilterSurvivorsFromUpdate(\n structuralUpdate,\n sourceToken,\n expectedStart,\n first.startIndex,\n )\n : undefined;\n if (structuralUpdate && !survivorResult) return undefined;\n let length = structuralUpdate ? first.startIndex : expectedStart;\n const startIndex = length;\n for (const current of updates) {\n if (current.startIndex !== length || current.resultLength < length) return undefined;\n length = current.resultLength;\n }\n return length === value.length\n ? {\n startIndex,\n structuralUpdate,\n ...(survivorResult ? { structuralSurvivors: survivorResult } : {}),\n }\n : undefined;\n}\n\nfunction compilerKeyedArrayFilterSurvivors(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): { readonly indices: readonly number[]; readonly keysStable: boolean } | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_FILTERS.get(target);\n if (!update || update.sourceToken !== sourceToken) return undefined;\n return compilerKeyedArrayFilterSurvivorsFromUpdate(\n update,\n sourceToken,\n expectedLength,\n value.length,\n );\n}\n\nfunction compilerKeyedArrayFilterSurvivorsFromUpdate(\n update: CompilerKeyedArrayFilterHint,\n sourceToken: object | undefined,\n expectedLength: number,\n resultLength: number,\n): { readonly indices: readonly number[]; readonly keysStable: boolean } | undefined {\n if (!sourceToken || update.sourceToken !== sourceToken) return undefined;\n const updates: CompilerKeyedArrayFilterHint[] = [];\n for (\n let current: CompilerKeyedArrayFilterHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n\n let survivors = Array.from({ length: expectedLength }, (_, index) => index);\n let keysStable = true;\n for (let updateIndex = updates.length - 1; updateIndex >= 0; updateIndex -= 1) {\n const current = updates[updateIndex];\n if (current.sourceLength !== survivors.length) return undefined;\n if (current.kind === \"slice\") {\n const start = current.retainedStart;\n const end = current.retainedEnd;\n if (\n start === undefined ||\n end === undefined ||\n !Number.isSafeInteger(start) ||\n !Number.isSafeInteger(end) ||\n start < 0 ||\n end < start ||\n end > current.sourceLength ||\n current.resultLength !== end - start\n ) {\n return undefined;\n }\n survivors = survivors.slice(start, end);\n continue;\n }\n keysStable = false;\n const removed = new Set<number>();\n for (const index of current.removedIndices || []) {\n if (!Number.isSafeInteger(index) || index < 0 || index >= current.sourceLength)\n return undefined;\n removed.add(index);\n }\n if (current.resultLength !== current.sourceLength - removed.size) return undefined;\n survivors = survivors.filter((_sourceIndex, index) => !removed.has(index));\n }\n return survivors.length === resultLength ? { indices: survivors, keysStable } : undefined;\n}\n\nfunction compilerKeyedArraySliceSurvivorRangeFromUpdate(\n update: CompilerKeyedArrayFilterHint,\n sourceToken: object | undefined,\n expectedLength: number,\n resultLength: number,\n): { readonly end: number; readonly start: number } | undefined {\n if (!sourceToken || update.sourceToken !== sourceToken) return undefined;\n const updates: CompilerKeyedArrayFilterHint[] = [];\n for (\n let current: CompilerKeyedArrayFilterHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken || current.kind !== \"slice\") return undefined;\n updates.push(current);\n }\n\n let length = expectedLength;\n let start = 0;\n for (let index = updates.length - 1; index >= 0; index -= 1) {\n const current = updates[index];\n const retainedStart = current.retainedStart;\n const retainedEnd = current.retainedEnd;\n if (\n current.sourceLength !== length ||\n retainedStart === undefined ||\n retainedEnd === undefined ||\n !Number.isSafeInteger(retainedStart) ||\n !Number.isSafeInteger(retainedEnd) ||\n retainedStart < 0 ||\n retainedEnd < retainedStart ||\n retainedEnd > current.sourceLength ||\n current.resultLength !== retainedEnd - retainedStart\n ) {\n return undefined;\n }\n start += retainedStart;\n length = current.resultLength;\n }\n return length === resultLength ? { end: start + length, start } : undefined;\n}\n\nfunction compilerKeyedArrayStructuralAppendMapUpdate(\n value: unknown,\n sourceToken: object | undefined,\n expectedStart: number,\n requireMappedUpdate = false,\n):\n | {\n readonly startIndex: number;\n readonly mappedItemSources?: ReadonlyMap<number, unknown> | CompilerMappedItemSources;\n readonly mappedSurvivorsValidated?: true;\n readonly structuralSurvivorRange?: {\n readonly end: number;\n readonly start: number;\n };\n readonly structuralSurvivors?: readonly number[];\n }\n | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_APPENDS.get(target);\n if (\n !update ||\n update.sourceToken !== sourceToken ||\n !update.structuralUpdate ||\n (requireMappedUpdate && !update.mappedItemSources)\n ) {\n return undefined;\n }\n const updates: CompilerKeyedArrayAppendHint[] = [];\n for (\n let current: CompilerKeyedArrayAppendHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n updates.reverse();\n const first = updates[0];\n const structuralSurvivorRange = compilerKeyedArraySliceSurvivorRangeFromUpdate(\n update.structuralUpdate,\n sourceToken,\n expectedStart,\n first.startIndex,\n );\n const structuralSurvivors = structuralSurvivorRange\n ? undefined\n : compilerKeyedArrayFilterSurvivorsFromUpdate(\n update.structuralUpdate,\n sourceToken,\n expectedStart,\n first.startIndex,\n )?.indices;\n if (!structuralSurvivorRange && !structuralSurvivors) return undefined;\n let length = first.startIndex;\n const startIndex = length;\n for (const current of updates) {\n if (current.startIndex !== length || current.resultLength < length) return undefined;\n length = current.resultLength;\n }\n return length === value.length\n ? {\n startIndex,\n ...(structuralSurvivorRange ? { structuralSurvivorRange } : {}),\n ...(structuralSurvivors ? { structuralSurvivors } : {}),\n ...(update.mappedItemSources ? { mappedItemSources: update.mappedItemSources } : {}),\n ...(update.mappedSurvivorsValidated ? { mappedSurvivorsValidated: true as const } : {}),\n }\n : undefined;\n}\n\nfunction compilerKeyedArrayFilterSource(\n update: CompilerKeyedArrayFilterHint,\n resultLength: number,\n): { readonly sourceLength: number; readonly sourceToken: object } | undefined {\n if (update.resultLength !== resultLength) return undefined;\n let current = update;\n while (current.previous) {\n if (\n current.sourceToken !== current.previous.sourceToken ||\n current.sourceLength !== current.previous.resultLength\n ) {\n return undefined;\n }\n current = current.previous;\n }\n return { sourceLength: current.sourceLength, sourceToken: current.sourceToken };\n}\n\nfunction compilerKeyedArrayPrependLength(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): number | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_PREPENDS.get(target);\n if (!update || update.sourceToken !== sourceToken) return undefined;\n const updates: CompilerKeyedArrayPrependHint[] = [];\n for (\n let current: CompilerKeyedArrayPrependHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n\n let length = expectedLength;\n let prefixLength = 0;\n for (let index = updates.length - 1; index >= 0; index -= 1) {\n const current = updates[index];\n if (\n current.sourceLength !== length ||\n current.prefixLength < 1 ||\n current.resultLength !== current.sourceLength + current.prefixLength\n ) {\n return undefined;\n }\n length = current.resultLength;\n prefixLength += current.prefixLength;\n }\n return length === value.length ? prefixLength : undefined;\n}\n\nfunction compilerKeyedArrayStructuralPrependUpdate(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n):\n | {\n readonly prefixLength: number;\n readonly structuralUpdate?: CompilerKeyedArrayFilterHint;\n readonly structuralSurvivors?: {\n readonly indices: readonly number[];\n readonly keysStable: boolean;\n };\n }\n | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_PREPENDS.get(target);\n if (!update || update.sourceToken !== sourceToken) return undefined;\n const updates: CompilerKeyedArrayPrependHint[] = [];\n for (\n let current: CompilerKeyedArrayPrependHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n updates.reverse();\n const structuralUpdate = update.structuralUpdate;\n const first = updates[0];\n const survivorResult = structuralUpdate\n ? compilerKeyedArrayFilterSurvivorsFromUpdate(\n structuralUpdate,\n sourceToken,\n expectedLength,\n first.sourceLength,\n )\n : undefined;\n if (structuralUpdate && !survivorResult) return undefined;\n let length = structuralUpdate ? first.sourceLength : expectedLength;\n let prefixLength = 0;\n for (const current of updates) {\n if (\n current.sourceLength !== length ||\n current.prefixLength < 1 ||\n current.resultLength !== current.sourceLength + current.prefixLength\n ) {\n return undefined;\n }\n length = current.resultLength;\n prefixLength += current.prefixLength;\n }\n return length === value.length\n ? {\n prefixLength,\n structuralUpdate,\n ...(survivorResult ? { structuralSurvivors: survivorResult } : {}),\n }\n : undefined;\n}\n\nfunction compilerKeyedArrayStructuralPrependMapUpdate(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n requireMappedUpdate = false,\n):\n | {\n readonly prefixLength: number;\n readonly mappedItemSources?: ReadonlyMap<number, unknown> | CompilerMappedItemSources;\n readonly mappedSurvivorsValidated?: true;\n readonly structuralSurvivorRange?: {\n readonly end: number;\n readonly start: number;\n };\n readonly structuralSurvivors?: readonly number[];\n }\n | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_PREPENDS.get(target);\n if (\n !update ||\n update.sourceToken !== sourceToken ||\n !update.structuralUpdate ||\n (requireMappedUpdate && !update.mappedItemSources)\n ) {\n return undefined;\n }\n const updates: CompilerKeyedArrayPrependHint[] = [];\n for (\n let current: CompilerKeyedArrayPrependHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n updates.reverse();\n const first = updates[0];\n const structuralSurvivorRange = compilerKeyedArraySliceSurvivorRangeFromUpdate(\n update.structuralUpdate,\n sourceToken,\n expectedLength,\n first.sourceLength,\n );\n const structuralSurvivors = structuralSurvivorRange\n ? undefined\n : compilerKeyedArrayFilterSurvivorsFromUpdate(\n update.structuralUpdate,\n sourceToken,\n expectedLength,\n first.sourceLength,\n )?.indices;\n if (!structuralSurvivorRange && !structuralSurvivors) return undefined;\n let length = first.sourceLength;\n let prefixLength = 0;\n for (const current of updates) {\n if (\n current.sourceLength !== length ||\n current.prefixLength < 1 ||\n current.resultLength !== current.sourceLength + current.prefixLength\n ) {\n return undefined;\n }\n length = current.resultLength;\n prefixLength += current.prefixLength;\n }\n return length === value.length\n ? {\n prefixLength,\n ...(structuralSurvivorRange ? { structuralSurvivorRange } : {}),\n ...(structuralSurvivors ? { structuralSurvivors } : {}),\n ...(update.mappedItemSources ? { mappedItemSources: update.mappedItemSources } : {}),\n ...(update.mappedSurvivorsValidated ? { mappedSurvivorsValidated: true as const } : {}),\n }\n : undefined;\n}\n\nfunction compilerKeyedArrayRollingWindows(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): readonly CompilerKeyedArrayRollingWindowHint[] | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_ROLLING_WINDOWS.get(target);\n if (!update || update.sourceToken !== sourceToken) return undefined;\n const updates: CompilerKeyedArrayRollingWindowHint[] = [];\n for (\n let current: CompilerKeyedArrayRollingWindowHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n updates.reverse();\n\n let length = expectedLength;\n for (const current of updates) {\n if (\n current.sourceLength !== length ||\n current.retainedStart < 1 ||\n current.retainedStart > current.sourceLength ||\n current.retainedEnd !== current.sourceLength ||\n current.resultLength <= current.retainedEnd - current.retainedStart\n ) {\n return undefined;\n }\n length = current.resultLength;\n }\n return length === value.length ? updates : undefined;\n}\n\nfunction compilerKeyedArrayMappedRollingWindows(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n):\n | {\n readonly mapped?: true;\n readonly updates: readonly CompilerKeyedArrayRollingWindowHint[];\n }\n | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const directUpdate = COMPILER_KEYED_ARRAY_ROLLING_WINDOWS.get(target);\n const mappedUpdate = directUpdate ? undefined : COMPILER_KEYED_ARRAY_REORDERS.get(target);\n const mappedRollingUpdate =\n mappedUpdate?.mapped &&\n mappedUpdate.rollingWindowMapUpdate &&\n mappedUpdate.kind === undefined &&\n !mappedUpdate.structuralUpdate &&\n mappedUpdate.rollingWindowUpdate &&\n mappedUpdate.resultLength === value.length\n ? mappedUpdate\n : undefined;\n const update = directUpdate || mappedRollingUpdate?.rollingWindowUpdate;\n if (!update || update.sourceToken !== sourceToken) return undefined;\n const updates: CompilerKeyedArrayRollingWindowHint[] = [];\n for (\n let current: CompilerKeyedArrayRollingWindowHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n updates.reverse();\n\n let length = expectedLength;\n for (const current of updates) {\n if (\n current.sourceLength !== length ||\n current.retainedStart < 1 ||\n current.retainedStart > current.sourceLength ||\n current.retainedEnd !== current.sourceLength ||\n current.resultLength <= current.retainedEnd - current.retainedStart\n ) {\n return undefined;\n }\n length = current.resultLength;\n }\n return length === value.length\n ? {\n updates,\n ...(mappedRollingUpdate || update.mapped ? { mapped: true } : {}),\n }\n : undefined;\n}\n\nfunction compilerKeyedArrayPosition(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): CompilerKeyedArrayPositionHint | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_POSITIONS.get(target);\n if (\n !update ||\n update.sourceToken !== sourceToken ||\n update.sourceLength !== expectedLength ||\n update.resultLength !== value.length ||\n update.position < 0 ||\n update.position > expectedLength ||\n (update.kind === \"insert\" && update.resultLength !== expectedLength + 1) ||\n (update.kind === \"remove\" &&\n (update.resultLength >= expectedLength || update.position > update.resultLength)) ||\n (update.kind === \"replace\" &&\n (update.position >= expectedLength || update.resultLength !== expectedLength))\n ) {\n return undefined;\n }\n return update;\n}\n\nfunction compilerKeyedArrayBatchInsert(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): CompilerKeyedArrayBatchInsertHint | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_BATCH_INSERTS.get(target);\n if (\n !update ||\n update.sourceToken !== sourceToken ||\n update.sourceLength !== expectedLength ||\n update.resultLength !== value.length ||\n update.resultLength < expectedLength + 2 ||\n update.position < 0 ||\n update.position > expectedLength\n ) {\n return undefined;\n }\n return update;\n}\n\nfunction compilerKeyedArrayWindowReplacements(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): CompilerKeyedArrayWindowReplaceHint[] | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_WINDOW_REPLACEMENTS.get(target);\n if (!update || update.sourceToken !== sourceToken) return undefined;\n const updates: CompilerKeyedArrayWindowReplaceHint[] = [];\n for (\n let current: CompilerKeyedArrayWindowReplaceHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n updates.reverse();\n\n let length = expectedLength;\n for (const current of updates) {\n if (\n current.sourceLength !== length ||\n current.position < 0 ||\n current.position >= current.sourceLength ||\n current.removedCount < 1 ||\n current.position + current.removedCount > current.sourceLength ||\n current.insertedCount < 0 ||\n current.resultLength !== current.sourceLength - current.removedCount + current.insertedCount\n ) {\n return undefined;\n }\n length = current.resultLength;\n }\n return length === value.length ? updates : undefined;\n}\n\nfunction compilerKeyedArrayReorder(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): CompilerKeyedArrayReorderHint | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_REORDERS.get(target);\n if (\n !update ||\n update.sourceToken !== sourceToken ||\n update.sourceLength !== expectedLength ||\n (!update.structuralUpdate && update.resultLength !== expectedLength) ||\n update.resultLength !== value.length\n ) {\n return undefined;\n }\n return update;\n}\n\nfunction compilerKeyedCollectionChangedKeys(\n value: unknown,\n sourceToken: object | undefined,\n kind: CompilerKeyedCollectionKind,\n): readonly unknown[] | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken) return undefined;\n const update = COMPILER_KEYED_COLLECTION_UPDATES.get(target);\n if (!update || update.kind !== kind || update.sourceToken !== sourceToken) return undefined;\n const changedKeys: unknown[] = [];\n for (\n let current: CompilerKeyedCollectionUpdateHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.kind !== kind || current.sourceToken !== sourceToken) return undefined;\n changedKeys.push(...current.changedKeys);\n }\n return changedKeys;\n}\n\nfunction recordCompilerKeyedMapUpdate(\n previous: unknown,\n value: unknown,\n changedIndices: readonly number[],\n): unknown {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (valueTarget && sourceToken) {\n const previousUpdate =\n previousTarget && !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget)\n ? COMPILER_KEYED_MAP_UPDATES.get(previousTarget)\n : undefined;\n COMPILER_KEYED_MAP_UPDATES.set(valueTarget, {\n sourceToken: previousUpdate?.sourceToken || sourceToken,\n changedIndices,\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n }\n return value;\n}\n\nfunction executeCompilerKeyedMapPipeline(\n previous: unknown,\n pipeline: (...values: readonly unknown[]) => unknown,\n record: (previous: unknown, value: unknown) => unknown,\n): unknown {\n let eligible = true;\n const applyMap = (collection: unknown, method: unknown, callback: unknown): unknown => {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n collection,\n [callback],\n );\n if (method !== NATIVE_ARRAY_MAP) {\n eligible = false;\n return value;\n }\n try {\n if (!Array.isArray(value) || Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE) {\n eligible = false;\n }\n } catch {\n eligible = false;\n }\n return value;\n };\n const value = NATIVE_REFLECT_APPLY(pipeline, undefined, [previous, applyMap]);\n return eligible ? record(previous, value) : value;\n}\n\nfunction recordCompilerKeyedMapPipelineUpdate(previous: unknown, value: unknown): unknown {\n try {\n if (\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n value.length !== previous.length\n ) {\n return value;\n }\n const finalChangedIndices: number[] = [];\n for (let index = 0; index < previous.length; index += 1) {\n const previousDescriptor = Object.getOwnPropertyDescriptor(previous, index);\n const mappedDescriptor = Object.getOwnPropertyDescriptor(value, index);\n if (\n !previousDescriptor ||\n !(\"value\" in previousDescriptor) ||\n !mappedDescriptor ||\n !(\"value\" in mappedDescriptor)\n ) {\n return value;\n }\n if (mappedDescriptor.value !== previousDescriptor.value) finalChangedIndices.push(index);\n }\n return recordCompilerKeyedMapUpdate(previous, value, finalChangedIndices);\n } catch {\n // Metadata must never change the result of a successful native update.\n return value;\n }\n}\n\n/**\n * @internal Executes a compiler-proven Array.map pipeline and records its final same-order delta.\n * The three-argument value/index form remains accepted for older generated output.\n */\nexport function createCompilerKeyedMapUpdate(\n previous: unknown,\n valueOrPipeline: unknown,\n changedIndices?: unknown,\n): unknown {\n if (Array.isArray(changedIndices)) {\n return recordCompilerKeyedMapUpdate(previous, valueOrPipeline, changedIndices);\n }\n if (changedIndices !== undefined || typeof valueOrPipeline !== \"function\") {\n return valueOrPipeline;\n }\n return executeCompilerKeyedMapPipeline(\n previous,\n valueOrPipeline as (...values: readonly unknown[]) => unknown,\n recordCompilerKeyedMapPipelineUpdate,\n );\n}\n\nfunction recordCompilerKeyedArrayMapPipeline(previous: unknown, value: unknown): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n value.length !== previous.length\n ) {\n return value;\n }\n\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousReorder = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_REORDERS.get(previousTarget);\n const structuralUpdate =\n previousReorder?.structuralUpdate ||\n (!previousReorder ? COMPILER_KEYED_ARRAY_FILTERS.get(previousTarget) : undefined);\n const structuralSource = structuralUpdate\n ? compilerKeyedArrayFilterSource(structuralUpdate, previous.length)\n : undefined;\n const previousSource =\n previousReorder && !previousReorder.structuralUpdate ? previousReorder : undefined;\n if (\n !committedSource &&\n (!previousSource || previousSource.resultLength !== previous.length) &&\n !structuralSource\n ) {\n return value;\n }\n const sourceToken =\n previousSource?.sourceToken ||\n structuralSource?.sourceToken ||\n compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n const previousMappedItemSources =\n previousReorder?.mappedItemSources || structuralUpdate?.mappedItemSources;\n const mappedItemSources = new Map<unknown, unknown>();\n for (let index = 0; index < value.length; index += 1) {\n const previousDescriptor = Object.getOwnPropertyDescriptor(previous, index);\n const mappedDescriptor = Object.getOwnPropertyDescriptor(value, index);\n if (\n !previousDescriptor ||\n !(\"value\" in previousDescriptor) ||\n !mappedDescriptor ||\n !(\"value\" in mappedDescriptor)\n ) {\n return value;\n }\n const previousItem = previousDescriptor.value;\n // Keep every replacement directly connected to the committed row instead of retaining a\n // chain of intermediate map results.\n const sourceItem = previousMappedItemSources?.has(previousItem)\n ? previousMappedItemSources.get(previousItem)\n : previousItem;\n const mappedItem = mappedDescriptor.value;\n if (!Object.is(mappedItem, sourceItem)) mappedItemSources.set(mappedItem, sourceItem);\n }\n const hint: CompilerKeyedArrayReorderHint = {\n kind: committedSource ? undefined : previousReorder?.kind,\n sourceToken,\n sourceLength:\n previousSource?.sourceLength ?? structuralSource?.sourceLength ?? previous.length,\n resultLength: value.length,\n mapped: true,\n mappedItemSources,\n ...(structuralUpdate ? { structuralUpdate } : {}),\n };\n // A safe map may retain a native reorder or an index-independent structural prefix.\n COMPILER_KEYED_ARRAY_REORDERS.set(valueTarget, hint);\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/**\n * @internal Executes proven native maps within a keyed reorder pipeline.\n * The three-argument form remains accepted for older generated output.\n */\nexport function createCompilerKeyedArrayMapPipeline(\n previous: unknown,\n methodOrPipeline: unknown,\n callback?: unknown,\n): unknown {\n if (callback !== undefined) {\n const value = NATIVE_REFLECT_APPLY(\n methodOrPipeline as (...values: readonly unknown[]) => unknown,\n previous,\n [callback],\n );\n if (methodOrPipeline !== NATIVE_ARRAY_MAP) return value;\n return recordCompilerKeyedArrayMapPipeline(previous, value);\n }\n return executeCompilerKeyedMapPipeline(\n previous,\n methodOrPipeline as (...values: readonly unknown[]) => unknown,\n recordCompilerKeyedArrayMapPipeline,\n );\n}\n\nfunction recordCompilerKeyedArrayQueuedMapPipeline(previous: unknown, value: unknown): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n value.length !== previous.length\n ) {\n return value;\n }\n\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousReorder = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_REORDERS.get(previousTarget);\n if (\n !committedSource &&\n (!previousReorder ||\n previousReorder.structuralUpdate ||\n previousReorder.resultLength !== previous.length)\n ) {\n return value;\n }\n const sourceToken =\n previousReorder?.sourceToken || compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n const sourceItems = previousReorder?.mappedItemSources?.queuedSourceItems || previous;\n let mappedItemSources: Map<unknown, unknown> | undefined;\n const readMappedItemSources = (): Map<unknown, unknown> => {\n if (mappedItemSources) return mappedItemSources;\n const sources = new Map<unknown, unknown>();\n for (let index = 0; index < value.length; index += 1) {\n const sourceDescriptor = Object.getOwnPropertyDescriptor(sourceItems, index);\n const mappedDescriptor = Object.getOwnPropertyDescriptor(value, index);\n if (\n !sourceDescriptor ||\n !(\"value\" in sourceDescriptor) ||\n !mappedDescriptor ||\n !(\"value\" in mappedDescriptor)\n ) {\n throw new TypeError();\n }\n if (!Object.is(sourceDescriptor.value, mappedDescriptor.value)) {\n sources.set(mappedDescriptor.value, sourceDescriptor.value);\n }\n }\n mappedItemSources = sources;\n return sources;\n };\n COMPILER_KEYED_ARRAY_REORDERS.set(valueTarget, {\n kind: previousReorder?.kind,\n sourceToken,\n sourceLength: previousReorder?.sourceLength ?? previous.length,\n resultLength: value.length,\n mapped: true,\n // Array.map preserves positions. Retain the first queued source collection and validate its\n // data properties against the final collection once, immediately before the DOM commit.\n // This avoids rescanning every intermediate Array produced by separately queued setters.\n mappedItemSources: {\n queuedSourceItems: sourceItems,\n get: (item) => readMappedItemSources().get(item),\n has: (item) => readMappedItemSources().has(item),\n },\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Executes a queued native map next to a compiler-proven keyed-array reorder. */\nexport function createCompilerKeyedArrayQueuedMapPipeline(\n previous: unknown,\n pipeline: (...values: readonly unknown[]) => unknown,\n): unknown {\n return executeCompilerKeyedMapPipeline(\n previous,\n pipeline,\n recordCompilerKeyedArrayQueuedMapPipeline,\n );\n}\n\nfunction compilerRollingWindowSourceLength(update: CompilerKeyedArrayRollingWindowHint): number {\n let first = update;\n while (first.previous) first = first.previous;\n return first.sourceLength;\n}\n\nfunction recordCompilerKeyedArrayRollingWindowMapPipeline(\n previous: unknown,\n value: unknown,\n): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n value.length !== previous.length\n ) {\n return value;\n }\n\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousReorder = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_REORDERS.get(previousTarget);\n const previousRollingWindow =\n !committedSource && !previousReorder\n ? COMPILER_KEYED_ARRAY_ROLLING_WINDOWS.get(previousTarget)\n : undefined;\n if (\n !committedSource &&\n ((!previousReorder && !previousRollingWindow) ||\n (previousReorder &&\n (!previousReorder.rollingWindowMapUpdate ||\n previousReorder.resultLength !== previous.length)) ||\n (previousRollingWindow && previousRollingWindow.resultLength !== previous.length))\n ) {\n return value;\n }\n const sourceToken =\n previousReorder?.sourceToken ||\n previousRollingWindow?.sourceToken ||\n compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n COMPILER_KEYED_ARRAY_REORDERS.set(valueTarget, {\n sourceToken,\n sourceLength:\n previousReorder?.sourceLength ??\n (previousRollingWindow\n ? compilerRollingWindowSourceLength(previousRollingWindow)\n : previous.length),\n resultLength: value.length,\n mapped: true,\n rollingWindowMapUpdate: true,\n ...(previousReorder?.rollingWindowUpdate || previousRollingWindow\n ? {\n rollingWindowUpdate: previousReorder?.rollingWindowUpdate || previousRollingWindow,\n }\n : {}),\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Executes a safe map inside one compiler-proven rolling-window setter chain. */\nexport function createCompilerKeyedArrayRollingWindowMapPipeline(\n previous: unknown,\n pipeline: (...values: readonly unknown[]) => unknown,\n): unknown {\n return executeCompilerKeyedMapPipeline(\n previous,\n pipeline,\n recordCompilerKeyedArrayRollingWindowMapPipeline,\n );\n}\n\n/** @internal Executes a native reorder after a proven same-key map pipeline. */\nexport function createCompilerKeyedArrayMapReorder(\n previous: unknown,\n method: unknown,\n ...args: readonly unknown[]\n): unknown {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n previous,\n args,\n );\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n value.length !== previous.length ||\n (method !== NATIVE_ARRAY_TO_REVERSED && method !== NATIVE_ARRAY_TO_SORTED) ||\n (method === NATIVE_ARRAY_TO_REVERSED && args.length !== 0) ||\n (method === NATIVE_ARRAY_TO_SORTED &&\n (args.length > 1 ||\n (args.length === 1 && args[0] !== undefined && typeof args[0] !== \"function\")))\n ) {\n return value;\n }\n for (let index = 0; index < previous.length; index += 1) {\n if (\n !Object.prototype.hasOwnProperty.call(previous, index) ||\n !Object.prototype.hasOwnProperty.call(value, index)\n ) {\n return value;\n }\n }\n\n const previousReorder = COMPILER_KEYED_ARRAY_REORDERS.get(previousTarget);\n const source = previousReorder?.mapped ? previousReorder : undefined;\n if (!source || source.resultLength !== previous.length) return value;\n COMPILER_KEYED_ARRAY_REORDERS.set(valueTarget, {\n kind:\n method !== NATIVE_ARRAY_TO_REVERSED\n ? CompilerKeyedArrayReorderKind.Permutation\n : reversedCompilerKeyedArrayOrder(source.kind),\n sourceToken: source.sourceToken,\n sourceLength: source.sourceLength,\n resultLength: value.length,\n mapped: true,\n mappedItemSources: source.mappedItemSources,\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Records a compiler-proven immutable keyed-array append and returns the Array. */\nexport function createCompilerKeyedArrayAppend(previous: unknown, value: unknown): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n previous[Symbol.iterator] !== NATIVE_ARRAY_ITERATOR\n ) {\n return value;\n }\n const startIndex = previous.length;\n if (value.length < startIndex) return value;\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n const previousUpdate = !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget)\n ? COMPILER_KEYED_ARRAY_APPENDS.get(previousTarget)\n : undefined;\n COMPILER_KEYED_ARRAY_APPENDS.set(valueTarget, {\n sourceToken: previousUpdate?.sourceToken || sourceToken,\n startIndex,\n resultLength: value.length,\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n return value;\n } catch {\n // Metadata must never change the behavior of an otherwise valid update.\n return value;\n }\n}\n\n/** @internal Records an append that may follow a compiler-proven structural update. */\nexport function createCompilerKeyedArrayStructuralAppend(\n previous: unknown,\n value: unknown,\n): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n previous[Symbol.iterator] !== NATIVE_ARRAY_ITERATOR\n ) {\n return value;\n }\n const startIndex = previous.length;\n if (value.length < startIndex) return value;\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousUpdate = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_APPENDS.get(previousTarget);\n const directStructuralUpdate =\n !committedSource && !previousUpdate\n ? COMPILER_KEYED_ARRAY_FILTERS.get(previousTarget)\n : undefined;\n const structuralSource = directStructuralUpdate\n ? compilerKeyedArrayFilterSource(directStructuralUpdate, previous.length)\n : undefined;\n const structuralUpdate =\n previousUpdate?.structuralUpdate || (structuralSource ? directStructuralUpdate : undefined);\n const sourceToken =\n previousUpdate?.sourceToken ||\n structuralSource?.sourceToken ||\n compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n COMPILER_KEYED_ARRAY_APPENDS.set(valueTarget, {\n sourceToken,\n startIndex,\n resultLength: value.length,\n ...(structuralUpdate ? { structuralUpdate } : {}),\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n return value;\n } catch {\n // Metadata must never change the behavior of an otherwise valid update.\n return value;\n }\n}\n\n/** @internal Records an append that directly follows compiler-proven mapped structural work. */\nexport function createCompilerKeyedArrayMappedStructuralAppend(\n previous: unknown,\n value: unknown,\n): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n previous[Symbol.iterator] !== NATIVE_ARRAY_ITERATOR\n ) {\n return value;\n }\n const startIndex = previous.length;\n if (value.length < startIndex) return value;\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousUpdate = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_APPENDS.get(previousTarget);\n const previousMappedUpdate =\n !committedSource && !previousUpdate\n ? COMPILER_KEYED_ARRAY_REORDERS.get(previousTarget)\n : undefined;\n const mappedStructuralUpdate =\n previousMappedUpdate?.mapped &&\n previousMappedUpdate.kind === undefined &&\n previousMappedUpdate.structuralUpdate &&\n previousMappedUpdate.resultLength === previous.length\n ? previousMappedUpdate\n : undefined;\n const structuralUpdate =\n previousUpdate?.structuralUpdate || mappedStructuralUpdate?.structuralUpdate;\n const sourceToken = previousUpdate?.sourceToken || mappedStructuralUpdate?.sourceToken;\n const mappedItemSources =\n previousUpdate?.mappedItemSources || mappedStructuralUpdate?.mappedItemSources;\n if (!sourceToken || !structuralUpdate || !mappedItemSources) return value;\n COMPILER_KEYED_ARRAY_APPENDS.set(valueTarget, {\n sourceToken,\n startIndex,\n resultLength: value.length,\n structuralUpdate,\n mappedItemSources,\n ...(previousUpdate?.mappedSurvivorsValidated ? { mappedSurvivorsValidated: true } : {}),\n ...(previousUpdate?.mappedItemValues\n ? { mappedItemValues: previousUpdate.mappedItemValues }\n : {}),\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n return value;\n } catch {\n // Metadata must never change the behavior of an otherwise valid update.\n return value;\n }\n}\n\n/** @internal Executes safe maps while retaining structural append lineage. */\nexport function createCompilerKeyedArrayStructuralAppendMapPipeline(\n previous: unknown,\n pipeline: (...values: readonly unknown[]) => unknown,\n): unknown {\n let appendUpdate: CompilerKeyedArrayAppendHint | undefined;\n let committedItems: readonly unknown[] | undefined;\n let survivorRange: { readonly end: number; readonly start: number } | undefined;\n let survivorIndices: readonly number[] | undefined;\n let mappedItemSources = new Map<number, unknown>();\n let mappedItemValues = new Map<number, unknown>();\n try {\n const previousTarget = compilerObject(previous);\n if (\n !previousTarget ||\n !Array.isArray(previous) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n !(appendUpdate = COMPILER_KEYED_ARRAY_APPENDS.get(previousTarget)) ||\n !appendUpdate.structuralUpdate ||\n appendUpdate.resultLength !== previous.length\n ) {\n appendUpdate = undefined;\n } else {\n committedItems = COMPILER_KEYED_COMMITTED_ITEM_SNAPSHOTS.get(appendUpdate.sourceToken);\n const structuralAppend = committedItems\n ? compilerKeyedArrayStructuralAppendMapUpdate(\n previous,\n appendUpdate.sourceToken,\n committedItems.length,\n )\n : undefined;\n survivorRange = structuralAppend?.structuralSurvivorRange;\n survivorIndices = structuralAppend?.structuralSurvivors;\n if (!survivorRange && !survivorIndices) {\n appendUpdate = undefined;\n } else {\n if (appendUpdate.mappedSurvivorsValidated && appendUpdate.mappedItemSources) {\n mappedItemSources = new Map(\n appendUpdate.mappedItemSources as ReadonlyMap<number, unknown>,\n );\n }\n if (appendUpdate.mappedItemValues) {\n mappedItemValues = new Map(appendUpdate.mappedItemValues);\n }\n }\n }\n } catch {\n appendUpdate = undefined;\n }\n\n let eligible = appendUpdate !== undefined;\n const applyMap = (collection: unknown, method: unknown, callback: unknown): unknown => {\n if (method !== NATIVE_ARRAY_MAP || !eligible) {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n collection,\n [callback],\n );\n if (method !== NATIVE_ARRAY_MAP) eligible = false;\n return value;\n }\n\n let expectedIndex = 0;\n let expectedLength = -1;\n try {\n if (\n !Array.isArray(collection) ||\n Object.getPrototypeOf(collection) !== NATIVE_ARRAY_PROTOTYPE\n ) {\n eligible = false;\n } else {\n expectedLength = collection.length;\n }\n } catch {\n eligible = false;\n }\n const wrappedCallback = (item: unknown, index: number, source: unknown): unknown => {\n if (index !== expectedIndex) eligible = false;\n expectedIndex = index + 1;\n const survivorCount = survivorRange\n ? survivorRange.end - survivorRange.start\n : (survivorIndices?.length ?? 0);\n let committedItem: unknown;\n if (index < survivorCount) {\n const sourceIndex = survivorRange ? survivorRange.start + index : survivorIndices?.[index];\n committedItem = sourceIndex === undefined ? undefined : committedItems?.[sourceIndex];\n if (mappedItemValues.has(index)) {\n if (!Object.is(item, mappedItemValues.get(index))) eligible = false;\n } else if (appendUpdate?.mappedItemSources && !appendUpdate.mappedSurvivorsValidated) {\n const mappedStructuralSources =\n appendUpdate.mappedItemSources as CompilerMappedItemSources;\n const sourceItem = mappedStructuralSources.has(item)\n ? mappedStructuralSources.get(item)\n : item;\n if (!Object.is(sourceItem, committedItem)) eligible = false;\n } else if (!Object.is(item, committedItem)) {\n eligible = false;\n }\n }\n const mappedItem = NATIVE_REFLECT_APPLY(\n callback as (...values: readonly unknown[]) => unknown,\n undefined,\n [item, index, source],\n );\n if (index < survivorCount) {\n if (Object.is(mappedItem, committedItem)) {\n mappedItemSources.delete(index);\n mappedItemValues.delete(index);\n } else {\n mappedItemSources.set(index, committedItem);\n mappedItemValues.set(index, mappedItem);\n }\n }\n return mappedItem;\n };\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n collection,\n [wrappedCallback],\n );\n try {\n if (\n expectedIndex !== expectedLength ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n value.length !== expectedLength\n ) {\n eligible = false;\n }\n } catch {\n eligible = false;\n }\n return value;\n };\n const value = NATIVE_REFLECT_APPLY(pipeline, undefined, [previous, applyMap]);\n if (!eligible || !appendUpdate) return value;\n try {\n const valueTarget = compilerObject(value);\n if (!valueTarget) return value;\n COMPILER_KEYED_ARRAY_APPENDS.set(valueTarget, {\n ...appendUpdate,\n mappedItemSources,\n mappedItemValues,\n mappedSurvivorsValidated: true,\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Records a compiler-proven immutable keyed-array prepend and returns the Array. */\nexport function createCompilerKeyedArrayPrepend(previous: unknown, value: unknown): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n previous[Symbol.iterator] !== NATIVE_ARRAY_ITERATOR\n ) {\n return value;\n }\n const sourceLength = previous.length;\n const prefixLength = value.length - sourceLength;\n if (prefixLength < 1) return value;\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n const previousUpdate = !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget)\n ? COMPILER_KEYED_ARRAY_PREPENDS.get(previousTarget)\n : undefined;\n COMPILER_KEYED_ARRAY_PREPENDS.set(valueTarget, {\n sourceToken: previousUpdate?.sourceToken || sourceToken,\n sourceLength,\n resultLength: value.length,\n prefixLength,\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n return value;\n } catch {\n // Metadata must never change the behavior of an otherwise valid update.\n return value;\n }\n}\n\n/** @internal Records a prepend that may follow a compiler-proven structural update. */\nexport function createCompilerKeyedArrayStructuralPrepend(\n previous: unknown,\n value: unknown,\n): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n previous[Symbol.iterator] !== NATIVE_ARRAY_ITERATOR\n ) {\n return value;\n }\n const sourceLength = previous.length;\n const prefixLength = value.length - sourceLength;\n if (prefixLength < 1) return value;\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousUpdate = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_PREPENDS.get(previousTarget);\n const directStructuralUpdate =\n !committedSource && !previousUpdate\n ? COMPILER_KEYED_ARRAY_FILTERS.get(previousTarget)\n : undefined;\n const structuralSource = directStructuralUpdate\n ? compilerKeyedArrayFilterSource(directStructuralUpdate, previous.length)\n : undefined;\n const structuralUpdate =\n previousUpdate?.structuralUpdate || (structuralSource ? directStructuralUpdate : undefined);\n const sourceToken =\n previousUpdate?.sourceToken ||\n structuralSource?.sourceToken ||\n compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n COMPILER_KEYED_ARRAY_PREPENDS.set(valueTarget, {\n sourceToken,\n sourceLength,\n resultLength: value.length,\n prefixLength,\n ...(structuralUpdate ? { structuralUpdate } : {}),\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n return value;\n } catch {\n // Metadata must never change the behavior of an otherwise valid update.\n return value;\n }\n}\n\n/** @internal Records a prepend that directly follows compiler-proven mapped structural work. */\nexport function createCompilerKeyedArrayMappedStructuralPrepend(\n previous: unknown,\n value: unknown,\n): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n previous[Symbol.iterator] !== NATIVE_ARRAY_ITERATOR\n ) {\n return value;\n }\n const sourceLength = previous.length;\n const prefixLength = value.length - sourceLength;\n if (prefixLength < 1) return value;\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousUpdate = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_PREPENDS.get(previousTarget);\n const previousMappedUpdate =\n !committedSource && !previousUpdate\n ? COMPILER_KEYED_ARRAY_REORDERS.get(previousTarget)\n : undefined;\n const mappedStructuralUpdate =\n previousMappedUpdate?.mapped &&\n previousMappedUpdate.kind === undefined &&\n previousMappedUpdate.structuralUpdate &&\n previousMappedUpdate.resultLength === previous.length\n ? previousMappedUpdate\n : undefined;\n const structuralUpdate =\n previousUpdate?.structuralUpdate || mappedStructuralUpdate?.structuralUpdate;\n const sourceToken = previousUpdate?.sourceToken || mappedStructuralUpdate?.sourceToken;\n const mappedItemSources =\n previousUpdate?.mappedItemSources || mappedStructuralUpdate?.mappedItemSources;\n if (!sourceToken || !structuralUpdate || !mappedItemSources) return value;\n COMPILER_KEYED_ARRAY_PREPENDS.set(valueTarget, {\n sourceToken,\n sourceLength,\n resultLength: value.length,\n prefixLength,\n structuralUpdate,\n mappedItemSources,\n ...(previousUpdate?.mappedSurvivorsValidated ? { mappedSurvivorsValidated: true } : {}),\n ...(previousUpdate?.mappedItemValues\n ? { mappedItemValues: previousUpdate.mappedItemValues }\n : {}),\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n return value;\n } catch {\n // Metadata must never change the behavior of an otherwise valid update.\n return value;\n }\n}\n\n/** @internal Executes safe maps while retaining structural prepend lineage. */\nexport function createCompilerKeyedArrayStructuralPrependMapPipeline(\n previous: unknown,\n pipeline: (...values: readonly unknown[]) => unknown,\n): unknown {\n let prependUpdate: CompilerKeyedArrayPrependHint | undefined;\n let committedItems: readonly unknown[] | undefined;\n let survivorRange: { readonly end: number; readonly start: number } | undefined;\n let survivorIndices: readonly number[] | undefined;\n let prefixLength = 0;\n try {\n const previousTarget = compilerObject(previous);\n if (\n !previousTarget ||\n !Array.isArray(previous) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n !(prependUpdate = COMPILER_KEYED_ARRAY_PREPENDS.get(previousTarget)) ||\n !prependUpdate.structuralUpdate ||\n prependUpdate.resultLength !== previous.length\n ) {\n prependUpdate = undefined;\n } else {\n committedItems = COMPILER_KEYED_COMMITTED_ITEM_SNAPSHOTS.get(prependUpdate.sourceToken);\n const structuralPrepend = committedItems\n ? compilerKeyedArrayStructuralPrependMapUpdate(\n previous,\n prependUpdate.sourceToken,\n committedItems.length,\n )\n : undefined;\n survivorRange = structuralPrepend?.structuralSurvivorRange;\n survivorIndices = structuralPrepend?.structuralSurvivors;\n prefixLength = structuralPrepend?.prefixLength || 0;\n if (!survivorRange && !survivorIndices) {\n prependUpdate = undefined;\n }\n }\n } catch {\n prependUpdate = undefined;\n }\n\n let eligible = prependUpdate !== undefined;\n const survivorCount = survivorRange\n ? survivorRange.end - survivorRange.start\n : (survivorIndices?.length ?? 0);\n const applyMap = (collection: unknown, method: unknown, callback: unknown): unknown => {\n if (method !== NATIVE_ARRAY_MAP || !eligible) {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n collection,\n [callback],\n );\n if (method !== NATIVE_ARRAY_MAP) eligible = false;\n return value;\n }\n\n let expectedIndex = 0;\n let expectedLength = -1;\n try {\n if (\n !Array.isArray(collection) ||\n Object.getPrototypeOf(collection) !== NATIVE_ARRAY_PROTOTYPE\n ) {\n eligible = false;\n } else {\n expectedLength = collection.length;\n }\n } catch {\n eligible = false;\n }\n const wrappedCallback = (item: unknown, index: number, source: unknown): unknown => {\n if (index !== expectedIndex) eligible = false;\n expectedIndex = index + 1;\n return NATIVE_REFLECT_APPLY(\n callback as (...values: readonly unknown[]) => unknown,\n undefined,\n [item, index, source],\n );\n };\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n collection,\n [wrappedCallback],\n );\n try {\n if (\n expectedIndex !== expectedLength ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n value.length !== expectedLength\n ) {\n eligible = false;\n }\n } catch {\n eligible = false;\n }\n return value;\n };\n const value = NATIVE_REFLECT_APPLY(pipeline, undefined, [previous, applyMap]);\n if (!eligible || !prependUpdate) return value;\n try {\n const valueTarget = compilerObject(value);\n if (\n !valueTarget ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n value.length !== prefixLength + survivorCount\n ) {\n return value;\n }\n const mappedItemSources = new Map<number, unknown>();\n const mappedItemValues = new Map<number, unknown>();\n for (let index = 0; index < survivorCount; index += 1) {\n const sourceIndex = survivorRange ? survivorRange.start + index : survivorIndices![index];\n const committedItem = committedItems![sourceIndex];\n const mappedItem = value[prefixLength + index];\n if (Object.is(mappedItem, committedItem)) continue;\n mappedItemSources.set(index, committedItem);\n mappedItemValues.set(index, mappedItem);\n }\n COMPILER_KEYED_ARRAY_PREPENDS.set(valueTarget, {\n ...prependUpdate,\n mappedItemSources,\n mappedItemValues,\n mappedSurvivorsValidated: true,\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Executes Array.filter while recording compiler-proven removal positions. */\nexport function createCompilerKeyedArrayFilter(\n previous: unknown,\n method: unknown,\n predicate: unknown,\n): unknown {\n let canHint = false;\n let sourceLength = 0;\n try {\n canHint =\n Array.isArray(previous) &&\n Object.getPrototypeOf(previous) === NATIVE_ARRAY_PROTOTYPE &&\n method === NATIVE_ARRAY_FILTER &&\n typeof predicate === \"function\";\n if (canHint) sourceLength = (previous as unknown[]).length;\n } catch {\n canHint = false;\n }\n\n if (!canHint) {\n return NATIVE_REFLECT_APPLY(method as (...args: unknown[]) => unknown, previous, [predicate]);\n }\n\n const removedIndices: number[] = [];\n let visited = 0;\n const wrappedPredicate = function (\n this: unknown,\n item: unknown,\n index: number,\n collection: unknown[],\n ): unknown {\n visited += 1;\n const keep = NATIVE_REFLECT_APPLY(predicate as (...args: unknown[]) => unknown, this, [\n item,\n index,\n collection,\n ]);\n if (!keep) removedIndices.push(index);\n return keep;\n };\n const value = NATIVE_REFLECT_APPLY(method as (...args: unknown[]) => unknown, previous, [\n wrappedPredicate,\n ]);\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n visited !== sourceLength ||\n value.length !== sourceLength - removedIndices.length\n ) {\n return value;\n }\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousMappedUpdate = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_REORDERS.get(previousTarget);\n const mappedUpdate =\n previousMappedUpdate?.mapped &&\n previousMappedUpdate.kind === undefined &&\n previousMappedUpdate.resultLength === sourceLength\n ? previousMappedUpdate\n : undefined;\n const sourceToken = mappedUpdate?.sourceToken || compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n const previousUpdate = !committedSource\n ? COMPILER_KEYED_ARRAY_FILTERS.get(previousTarget) || mappedUpdate?.structuralUpdate\n : undefined;\n const mappedItemSources = mappedUpdate?.mappedItemSources || previousUpdate?.mappedItemSources;\n COMPILER_KEYED_ARRAY_FILTERS.set(valueTarget, {\n kind: \"filter\",\n sourceToken: previousUpdate?.sourceToken || sourceToken,\n sourceLength,\n resultLength: value.length,\n removedIndices,\n ...(mappedItemSources ? { mappedItemSources } : {}),\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n } catch {\n // Metadata must never change the result of a successful native filter.\n }\n return value;\n}\n\n/** @internal Executes a compiler-proven native Array.slice and records its retained interval. */\nexport function createCompilerKeyedArraySlice(\n previous: unknown,\n method: unknown,\n ...args: readonly number[]\n): unknown {\n const canHint = (() => {\n try {\n return (\n Array.isArray(previous) &&\n Object.getPrototypeOf(previous) === NATIVE_ARRAY_PROTOTYPE &&\n method === NATIVE_ARRAY_SLICE &&\n args.length > 0 &&\n args.length <= 2 &&\n args.every((value) => Number.isSafeInteger(value))\n );\n } catch {\n return false;\n }\n })();\n const value = NATIVE_REFLECT_APPLY(method as (...values: number[]) => unknown, previous, args);\n if (!canHint) return value;\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE\n ) {\n return value;\n }\n const sourceLength = (previous as unknown[]).length;\n const normalize = (relative: number): number =>\n relative < 0 ? Math.max(sourceLength + relative, 0) : Math.min(relative, sourceLength);\n const retainedStart = normalize(args[0]);\n const retainedEnd = args.length === 2 ? normalize(args[1]) : sourceLength;\n const resultLength = Math.max(retainedEnd - retainedStart, 0);\n if (value.length !== resultLength || resultLength >= sourceLength) return value;\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousMappedUpdate = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_REORDERS.get(previousTarget);\n const mappedUpdate =\n previousMappedUpdate?.mapped &&\n previousMappedUpdate.kind === undefined &&\n previousMappedUpdate.resultLength === sourceLength\n ? previousMappedUpdate\n : undefined;\n const sourceToken = mappedUpdate?.sourceToken || compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n const previousUpdate = !committedSource\n ? COMPILER_KEYED_ARRAY_FILTERS.get(previousTarget) || mappedUpdate?.structuralUpdate\n : undefined;\n const mappedItemSources = mappedUpdate?.mappedItemSources || previousUpdate?.mappedItemSources;\n COMPILER_KEYED_ARRAY_FILTERS.set(valueTarget, {\n kind: \"slice\",\n sourceToken: previousUpdate?.sourceToken || sourceToken,\n sourceLength,\n resultLength,\n retainedEnd: Math.max(retainedEnd, retainedStart),\n retainedStart,\n ...(mappedItemSources ? { mappedItemSources } : {}),\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n } catch {\n // Metadata must never change the result of a successful native slice.\n }\n return value;\n}\n\n/** @internal Retains mapped lineage through a compiler-proven terminal filter or slice. */\nexport function finalizeCompilerKeyedArrayMappedStructuralUpdate(value: unknown): unknown {\n try {\n const valueTarget = compilerObject(value);\n const structuralUpdate = valueTarget\n ? COMPILER_KEYED_ARRAY_FILTERS.get(valueTarget)\n : undefined;\n const mappedItemSources = structuralUpdate?.mappedItemSources;\n if (!valueTarget || !structuralUpdate || !mappedItemSources) return value;\n const source = compilerKeyedArrayFilterSource(structuralUpdate, structuralUpdate.resultLength);\n if (!source) return value;\n COMPILER_KEYED_ARRAY_REORDERS.set(valueTarget, {\n sourceToken: source.sourceToken,\n sourceLength: source.sourceLength,\n resultLength: structuralUpdate.resultLength,\n mapped: true,\n mappedItemSources,\n structuralUpdate,\n });\n } catch {\n // Metadata must never change the result of a successful native pipeline.\n }\n return value;\n}\n\n/** @internal Records a compiler-proven retained tail followed by incoming keyed rows. */\nexport function createCompilerKeyedArrayRollingWindow(\n previous: unknown,\n retained: unknown,\n value: unknown,\n): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const retainedTarget = compilerObject(retained);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !retainedTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(retained) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(retained) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE\n ) {\n return value;\n }\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousUpdate = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_ROLLING_WINDOWS.get(previousTarget);\n if (!committedSource && !previousUpdate) return value;\n const immediateSourceToken = compilerKeyedCollectionToken(previousTarget);\n const sourceToken = previousUpdate?.sourceToken || immediateSourceToken;\n const slice = COMPILER_KEYED_ARRAY_FILTERS.get(retainedTarget);\n if (\n !immediateSourceToken ||\n !sourceToken ||\n !slice ||\n slice.previous ||\n slice.kind !== \"slice\" ||\n slice.sourceToken !== immediateSourceToken ||\n slice.sourceLength !== previous.length ||\n slice.retainedStart === undefined ||\n slice.retainedEnd !== previous.length ||\n slice.retainedStart < 1 ||\n slice.resultLength !== retained.length ||\n (previousUpdate && previousUpdate.resultLength !== previous.length) ||\n value.length <= retained.length\n ) {\n return value;\n }\n for (let index = 0; index < retained.length; index += 1) {\n if (!Object.is(value[index], retained[index])) return value;\n }\n COMPILER_KEYED_ARRAY_ROLLING_WINDOWS.set(valueTarget, {\n sourceToken,\n sourceLength: previous.length,\n resultLength: value.length,\n retainedEnd: slice.retainedEnd,\n retainedStart: slice.retainedStart,\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n } catch {\n // Metadata must never change the result of a successful array update.\n }\n return value;\n}\n\n/** @internal Records one rolling step inside a compiler-proven mapped window chain. */\nexport function createCompilerKeyedArrayMappedRollingWindow(\n previous: unknown,\n retained: unknown,\n value: unknown,\n): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const retainedTarget = compilerObject(retained);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !retainedTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(retained) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(retained) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE\n ) {\n return value;\n }\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousDirectUpdate = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_ROLLING_WINDOWS.get(previousTarget);\n const previousReorder =\n !committedSource && !previousDirectUpdate\n ? COMPILER_KEYED_ARRAY_REORDERS.get(previousTarget)\n : undefined;\n const previousMappedUpdate =\n previousReorder?.mapped &&\n previousReorder.rollingWindowMapUpdate &&\n previousReorder.kind === undefined &&\n !previousReorder.structuralUpdate &&\n previousReorder.resultLength === previous.length\n ? previousReorder\n : undefined;\n const previousUpdate = previousDirectUpdate || previousMappedUpdate?.rollingWindowUpdate;\n if (!committedSource && !previousUpdate && !previousMappedUpdate) return value;\n const immediateSourceToken = compilerKeyedCollectionToken(previousTarget);\n const sourceToken =\n previousMappedUpdate?.sourceToken || previousUpdate?.sourceToken || immediateSourceToken;\n const sliceSourceToken = previousMappedUpdate?.sourceToken || immediateSourceToken;\n const slice = COMPILER_KEYED_ARRAY_FILTERS.get(retainedTarget);\n if (\n !immediateSourceToken ||\n !sourceToken ||\n !slice ||\n slice.previous ||\n slice.kind !== \"slice\" ||\n slice.sourceToken !== sliceSourceToken ||\n slice.sourceLength !== previous.length ||\n slice.retainedStart === undefined ||\n slice.retainedEnd !== previous.length ||\n slice.retainedStart < 1 ||\n slice.resultLength !== retained.length ||\n retained[Symbol.iterator] !== NATIVE_ARRAY_ITERATOR ||\n (previousUpdate && previousUpdate.resultLength !== previous.length) ||\n value.length <= retained.length\n ) {\n return value;\n }\n COMPILER_KEYED_ARRAY_ROLLING_WINDOWS.set(valueTarget, {\n sourceToken,\n sourceLength: previous.length,\n resultLength: value.length,\n retainedEnd: slice.retainedEnd,\n retainedStart: slice.retainedStart,\n ...(previousMappedUpdate || previousUpdate?.mapped ? { mapped: true } : {}),\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n } catch {\n // Metadata must never change the result of a successful array update.\n }\n return value;\n}\n\n/** @internal Executes a native known-position insert, removal, or replacement and records it. */\nexport function createCompilerKeyedArrayPositionUpdate(\n previous: unknown,\n method: unknown,\n kind: \"insert\" | \"remove\" | \"replace\",\n position: number,\n ...args: readonly unknown[]\n): unknown {\n const callArgs = [position, ...args];\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n previous,\n callArgs,\n );\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget) ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n !Number.isSafeInteger(position)\n ) {\n return value;\n }\n\n const sourceLength = previous.length;\n const normalizedPosition =\n position < 0 ? Math.max(sourceLength + position, 0) : Math.min(position, sourceLength);\n const deleteCount = args[0];\n const removedCount = sourceLength - value.length;\n const validInsert =\n kind === \"insert\" &&\n method === NATIVE_ARRAY_TO_SPLICED &&\n args.length === 2 &&\n Object.is(args[0], 0) &&\n value.length === sourceLength + 1;\n const validRemove =\n kind === \"remove\" &&\n method === NATIVE_ARRAY_TO_SPLICED &&\n args.length === 1 &&\n Number.isSafeInteger(deleteCount) &&\n (deleteCount as number) > 0 &&\n normalizedPosition < sourceLength &&\n removedCount === Math.min(deleteCount as number, sourceLength - normalizedPosition);\n const validReplace =\n kind === \"replace\" &&\n value.length === sourceLength &&\n ((method === NATIVE_ARRAY_WITH &&\n args.length === 1 &&\n position >= -sourceLength &&\n position < sourceLength) ||\n (method === NATIVE_ARRAY_TO_SPLICED &&\n args.length === 2 &&\n Object.is(args[0], 1) &&\n normalizedPosition < sourceLength));\n if (!validInsert && !validRemove && !validReplace) return value;\n\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n COMPILER_KEYED_ARRAY_POSITIONS.set(valueTarget, {\n kind,\n sourceToken,\n sourceLength,\n resultLength: value.length,\n position: normalizedPosition,\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Executes a native exact-position batch insertion and records it. */\nexport function createCompilerKeyedArrayBatchInsert(\n previous: unknown,\n method: unknown,\n position: number,\n ...items: readonly unknown[]\n): unknown {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n previous,\n [position, 0, ...items],\n );\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget) ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n method !== NATIVE_ARRAY_TO_SPLICED ||\n !Number.isSafeInteger(position) ||\n items.length < 2 ||\n value.length !== previous.length + items.length\n ) {\n return value;\n }\n for (let index = 0; index < previous.length; index += 1) {\n if (!Object.prototype.hasOwnProperty.call(previous, index)) return value;\n }\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n COMPILER_KEYED_ARRAY_BATCH_INSERTS.set(valueTarget, {\n sourceToken,\n sourceLength: previous.length,\n resultLength: value.length,\n position:\n position < 0\n ? Math.max(previous.length + position, 0)\n : Math.min(position, previous.length),\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Executes a native exact-window replacement and records it. */\nexport function createCompilerKeyedArrayWindowReplace(\n previous: unknown,\n method: unknown,\n position: number,\n deleteCount: number,\n ...items: readonly unknown[]\n): unknown {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n previous,\n [position, deleteCount, ...items],\n );\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n method !== NATIVE_ARRAY_TO_SPLICED ||\n !Number.isSafeInteger(position) ||\n !Number.isSafeInteger(deleteCount) ||\n deleteCount <= 0\n ) {\n return value;\n }\n for (let index = 0; index < previous.length; index += 1) {\n if (!Object.prototype.hasOwnProperty.call(previous, index)) return value;\n }\n const normalizedPosition =\n position < 0 ? Math.max(previous.length + position, 0) : Math.min(position, previous.length);\n const removedCount = Math.min(deleteCount, previous.length - normalizedPosition);\n if (removedCount < 1 || value.length !== previous.length - removedCount + items.length) {\n return value;\n }\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousUpdate = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_WINDOW_REPLACEMENTS.get(previousTarget);\n if (!committedSource && !previousUpdate) return value;\n const sourceToken = previousUpdate?.sourceToken || compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n COMPILER_KEYED_ARRAY_WINDOW_REPLACEMENTS.set(valueTarget, {\n sourceToken,\n sourceLength: previous.length,\n resultLength: value.length,\n position: normalizedPosition,\n removedCount,\n insertedCount: items.length,\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Executes a native reverse and records its exact keyed-row permutation. */\nexport function createCompilerKeyedArrayReorder(previous: unknown, method: unknown): unknown {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n previous,\n [],\n );\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n method !== NATIVE_ARRAY_TO_REVERSED ||\n value.length !== previous.length\n ) {\n return value;\n }\n\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousUpdate = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_REORDERS.get(previousTarget);\n if (\n !committedSource &&\n (!previousUpdate ||\n previousUpdate.sourceLength !== previous.length ||\n previousUpdate.resultLength !== previous.length)\n ) {\n return value;\n }\n const sourceToken = previousUpdate?.sourceToken || compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n COMPILER_KEYED_ARRAY_REORDERS.set(valueTarget, {\n kind: reversedCompilerKeyedArrayOrder(previousUpdate?.kind),\n sourceToken,\n sourceLength: previous.length,\n resultLength: value.length,\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Executes a native immutable sort and records its keyed-row permutation. */\nexport function createCompilerKeyedArraySort(\n previous: unknown,\n method: unknown,\n ...args: readonly unknown[]\n): unknown {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n previous,\n args,\n );\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n method !== NATIVE_ARRAY_TO_SORTED ||\n args.length > 1 ||\n (args.length === 1 && args[0] !== undefined && typeof args[0] !== \"function\") ||\n value.length !== previous.length\n ) {\n return value;\n }\n for (let index = 0; index < previous.length; index += 1) {\n if (!(index in previous)) return value;\n }\n\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousUpdate = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_REORDERS.get(previousTarget);\n if (\n !committedSource &&\n (!previousUpdate ||\n previousUpdate.sourceLength !== previous.length ||\n previousUpdate.resultLength !== previous.length)\n ) {\n return value;\n }\n const sourceToken = previousUpdate?.sourceToken || compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n COMPILER_KEYED_ARRAY_REORDERS.set(valueTarget, {\n kind: CompilerKeyedArrayReorderKind.Permutation,\n sourceToken,\n sourceLength: previous.length,\n resultLength: value.length,\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\nfunction recordCompilerKeyedArrayStructuralReorder(\n previous: unknown,\n value: unknown,\n kind: CompilerKeyedArrayReorderKind,\n): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (!previousTarget || !valueTarget || !Array.isArray(previous) || !Array.isArray(value)) {\n return value;\n }\n\n const previousUpdate = COMPILER_KEYED_ARRAY_REORDERS.get(previousTarget);\n const structuralUpdate =\n previousUpdate?.structuralUpdate ||\n (!previousUpdate ? COMPILER_KEYED_ARRAY_FILTERS.get(previousTarget) : undefined);\n const structuralSource = structuralUpdate\n ? compilerKeyedArrayFilterSource(structuralUpdate, previous.length)\n : undefined;\n if (\n !structuralUpdate ||\n !structuralSource ||\n (previousUpdate && previousUpdate.resultLength !== previous.length)\n ) {\n return value;\n }\n const sourceToken = previousUpdate?.sourceToken || structuralSource?.sourceToken;\n if (!sourceToken) return value;\n const mappedItemSources =\n previousUpdate?.mappedItemSources || structuralUpdate.mappedItemSources;\n COMPILER_KEYED_ARRAY_REORDERS.set(valueTarget, {\n kind:\n kind === CompilerKeyedArrayReorderKind.Reverse\n ? reversedCompilerKeyedArrayOrder(previousUpdate?.kind)\n : CompilerKeyedArrayReorderKind.Permutation,\n sourceToken,\n sourceLength: previousUpdate?.sourceLength || structuralSource.sourceLength,\n resultLength: value.length,\n structuralUpdate,\n ...(mappedItemSources ? { mappedItemSources } : {}),\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Executes a native reverse after a compiler-proven filter or slice pipeline. */\nexport function createCompilerKeyedArrayStructuralReorder(\n previous: unknown,\n method: unknown,\n): unknown {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n previous,\n [],\n );\n try {\n if (\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n method !== NATIVE_ARRAY_TO_REVERSED ||\n value.length !== previous.length\n ) {\n return value;\n }\n } catch {\n return value;\n }\n return recordCompilerKeyedArrayStructuralReorder(\n previous,\n value,\n CompilerKeyedArrayReorderKind.Reverse,\n );\n}\n\n/** @internal Executes a native sort after a compiler-proven filter or slice pipeline. */\nexport function createCompilerKeyedArrayStructuralSort(\n previous: unknown,\n method: unknown,\n ...args: readonly unknown[]\n): unknown {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n previous,\n args,\n );\n try {\n if (\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n method !== NATIVE_ARRAY_TO_SORTED ||\n args.length > 1 ||\n (args.length === 1 && args[0] !== undefined && typeof args[0] !== \"function\") ||\n value.length !== previous.length\n ) {\n return value;\n }\n for (let index = 0; index < previous.length; index += 1) {\n if (!(index in previous)) return value;\n }\n } catch {\n return value;\n }\n return recordCompilerKeyedArrayStructuralReorder(\n previous,\n value,\n CompilerKeyedArrayReorderKind.Permutation,\n );\n}\n\n/** @internal Preserves a proven native collection mutation while recording its executed key. */\nexport function applyCompilerKeyedCollectionMutation(\n collection: unknown,\n method: unknown,\n operation: CompilerKeyedCollectionMutation,\n key: unknown,\n value?: unknown,\n): unknown {\n const args = operation === \"map-set\" ? [key, value] : [key];\n const result = NATIVE_REFLECT_APPLY(method as (...args: unknown[]) => unknown, collection, args);\n const target = compilerObject(collection);\n if (!target) return result;\n\n const kind: CompilerKeyedCollectionKind = operation.startsWith(\"set-\") ? \"set\" : \"map\";\n const nativeMethod =\n operation === \"set-add\"\n ? NATIVE_SET_ADD\n : operation === \"set-delete\"\n ? NATIVE_SET_DELETE\n : operation === \"map-set\"\n ? NATIVE_MAP_SET\n : NATIVE_MAP_DELETE;\n const nativePrototype = kind === \"set\" ? NATIVE_SET_PROTOTYPE : NATIVE_MAP_PROTOTYPE;\n if (method !== nativeMethod || Object.getPrototypeOf(collection) !== nativePrototype) {\n return result;\n }\n\n const existing = COMPILER_KEYED_COLLECTION_DRAFTS.get(target);\n if (existing && existing.kind !== kind) return result;\n if (existing) existing.changedKeys.push(key);\n else COMPILER_KEYED_COLLECTION_DRAFTS.set(target, { kind, changedKeys: [key] });\n return result;\n}\n\n/** @internal Connects compiler-owned immutable Set/Map mutations to their committed source. */\nexport function createCompilerKeyedCollectionUpdate(\n previous: unknown,\n value: unknown,\n kind: CompilerKeyedCollectionKind,\n): unknown {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (!previousTarget || !valueTarget || previousTarget === valueTarget) return value;\n const draft = COMPILER_KEYED_COLLECTION_DRAFTS.get(valueTarget);\n if (!draft || draft.kind !== kind || draft.changedKeys.length === 0) return value;\n\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n const previousUpdate = !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget)\n ? COMPILER_KEYED_COLLECTION_UPDATES.get(previousTarget)\n : undefined;\n COMPILER_KEYED_COLLECTION_UPDATES.set(valueTarget, {\n kind,\n sourceToken: previousUpdate?.sourceToken || sourceToken,\n changedKeys: [...draft.changedKeys],\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n return value;\n}\n\nexport interface CompilerCell {\n get(): unknown;\n set(next: CompilerStateUpdater): void;\n}\n\ninterface RuntimeCell extends CompilerCell {\n flush(): boolean;\n replace(next: unknown): void;\n}\n\ntype PendingCellUpdate =\n | { kind: \"state\"; update: CompilerStateUpdater }\n | { kind: \"value\"; value: unknown };\n\ntype SelectableTextControl = HTMLInputElement | HTMLTextAreaElement;\n\ninterface InputSelectionSnapshot {\n element: SelectableTextControl;\n start: number;\n end: number;\n direction: \"forward\" | \"backward\" | \"none\";\n}\n\nexport interface CompilerTextBinding<Props> {\n kind: \"text\";\n /** Runtime tracking is useful only for compiler-proven short-circuiting readers. */\n tracking?: \"dynamic\";\n path: readonly number[];\n /** Stable ref target emitted by newer compiler versions. */\n target?: number;\n dependencies: readonly number[];\n read(props: Props, state: readonly CompilerCell[]): unknown;\n}\n\nexport interface CompilerAttributeBinding<Props> {\n kind: \"attribute\";\n /** Runtime tracking is useful only for compiler-proven short-circuiting readers. */\n tracking?: \"dynamic\";\n path: readonly number[];\n /** Stable ref target emitted by newer compiler versions. */\n target?: number;\n dependencies: readonly number[];\n name: string;\n read(props: Props, state: readonly CompilerCell[]): unknown;\n}\n\nexport interface CompilerStyleBinding<Props> {\n kind: \"style\";\n /** Runtime tracking is useful only for compiler-proven short-circuiting readers. */\n tracking?: \"dynamic\";\n path: readonly number[];\n /** Stable ref target emitted by newer compiler versions. */\n target?: number;\n dependencies: readonly number[];\n name: string;\n read(props: Props, state: readonly CompilerCell[]): unknown;\n}\n\nexport interface CompilerConditionalBlockBinding {\n kind: \"block\";\n id: number;\n /** Nearest conditional boundary that owns this block, when nested. */\n parent?: number;\n dependencies: readonly number[];\n}\n\nexport interface CompilerConditionalBlockProps {\n id: number;\n render(): React.ReactNode;\n}\n\nexport interface CompilerKeyedListBlockProps {\n id: number;\n render(): React.ReactNode;\n}\n\nexport interface CompilerHostElement {\n kind: \"element\";\n tag: string;\n attributes: readonly { name: string; value: unknown }[];\n styles: readonly { name: string; value: unknown }[];\n children: readonly (CompilerHostElement | unknown)[];\n /** Direct-child structure owned without creating another React fiber. */\n block?: CompilerHostBlock;\n}\n\nexport type CompilerKeyedRowElement = CompilerHostElement;\n\n// Shared by every delegated row onChange so React sees a handler without a\n// per-row allocation; the container's delegated listener does the work.\nconst delegatedRowChangePlaceholder: React.EventHandler<React.SyntheticEvent> = () => undefined;\n\nexport interface CompilerKeyedRowEvent {\n name: string;\n /** Host-element path relative to the keyed row root. */\n path?: readonly number[];\n invoke(item: unknown, index: number, event: React.SyntheticEvent): unknown;\n}\n\nexport interface CompilerKeyedRowConditionalBranch {\n bindings: readonly CompilerKeyedRowBinding[];\n}\n\nexport interface CompilerKeyedRowConditional {\n id: number;\n /** Host-container path relative to the keyed row root. */\n path: readonly number[];\n test(item: unknown, index: number): unknown;\n logical: boolean;\n truthy?: CompilerKeyedRowConditionalBranch;\n falsy?: CompilerKeyedRowConditionalBranch;\n}\n\nexport interface CompilerHostConditionalBinding {\n kind: \"text\" | \"attribute\" | \"style\";\n path: readonly number[];\n name?: string;\n read(): unknown;\n}\n\nexport interface CompilerStaticRangeBinding {\n kind: \"text\" | \"attribute\" | \"style\";\n /** Static segment before range N, or the trailing segment at ranges.length. */\n segment: number;\n /** Direct host sibling inside that static segment. */\n sibling: number;\n /** Host-element path relative to the selected static sibling. */\n path: readonly number[];\n name?: string;\n read(): unknown;\n}\n\nexport interface CompilerHostConditionalBranch {\n create(): CompilerHostElement;\n bindings: readonly CompilerHostConditionalBinding[];\n}\n\nexport interface CompilerHostConditionalRanges {\n kind: \"conditional-ranges\";\n id: number;\n ranges: readonly CompilerConditionalRange[];\n trailing: number;\n bindings?: readonly CompilerStaticRangeBinding[];\n}\n\nexport interface CompilerHostKeyedRanges {\n kind: \"keyed-ranges\";\n id: number;\n ranges: readonly CompilerKeyedRange[];\n trailing: number;\n bindings?: readonly CompilerStaticRangeBinding[];\n /** Compiler output may store only static direct children and materialize rows from the ranges. */\n staticChildrenOnly?: boolean;\n}\n\nexport interface CompilerHostMixedRanges {\n kind: \"mixed-ranges\";\n id: number;\n ranges: readonly CompilerMixedRange[];\n trailing: number;\n bindings?: readonly CompilerStaticRangeBinding[];\n}\n\nexport type CompilerHostBlock =\n | CompilerHostConditionalRanges\n | CompilerHostKeyedRanges\n | CompilerHostMixedRanges;\n\nexport interface CompilerHostConditionalBlockProps {\n id: number;\n render(): React.ReactElement;\n test(): unknown;\n /** Logical && can produce a visible number instead of an empty branch. */\n logical?: boolean;\n truthy?: CompilerHostConditionalBranch;\n falsy?: CompilerHostConditionalBranch;\n}\n\nexport interface CompilerConditionalRange {\n /** Number of static direct host siblings between this slot and the previous slot. */\n before: number;\n test(): unknown;\n /** Logical && can produce a visible number instead of an empty branch. */\n logical?: boolean;\n truthy?: CompilerHostConditionalBranch;\n falsy?: CompilerHostConditionalBranch;\n}\n\nexport interface CompilerConditionalRangesBlockProps {\n id: number;\n render(): React.ReactElement;\n rootRef?: React.RefCallback<Element>;\n ranges: readonly CompilerConditionalRange[];\n /** Number of static direct host siblings after the final conditional slot. */\n trailing: number;\n bindings?: readonly CompilerStaticRangeBinding[];\n}\n\nexport interface CompilerKeyedRowBinding {\n kind: \"text\" | \"attribute\" | \"style\";\n path: readonly number[];\n name?: string;\n /** Component state cells read by this binding, when emitted by the compiler. */\n dependencies?: readonly number[];\n /** A compiler-proven primitive value compared strictly with this row's key. */\n identityTarget?: {\n dependency: number;\n read(): unknown;\n };\n /** A compiler-proven native Set whose members are compared with this row's key. */\n membershipTarget?: {\n dependency: number;\n read(): unknown;\n };\n /** A compiler-proven native Map whose values are read with this row's key. */\n mapLookupTarget?: {\n dependency: number;\n read(): unknown;\n };\n read(item: unknown, index: number): unknown;\n}\n\nexport interface CompilerKeyedRowsBlockProps {\n id: number;\n render(\n event: (\n item: unknown,\n index: number,\n eventId: number,\n ) => React.EventHandler<React.SyntheticEvent>,\n conditional: (\n item: unknown,\n index: number,\n conditionalId: number,\n render: (item: unknown, index: number) => React.ReactNode,\n ) => React.ReactNode,\n ): React.ReactElement;\n items(): Iterable<unknown> | null | undefined;\n /** Complete component-state dependencies used anywhere inside this boundary. */\n dependencies?: readonly number[];\n /** State cells that can change the row collection or its key projection. */\n structureDependencies?: readonly number[];\n /** Direct state cell supplying items, eligible for compiler-emitted update hints. */\n collectionDependency?: number;\n /** Compiler proof that shifted row indexes are not observed by this boundary. */\n filterIndexIndependent?: boolean;\n /** Compiler proof that prepending cannot expose shifted indexes to existing rows. */\n prependIndexIndependent?: boolean;\n /** Compiler proof that a known-position insert cannot expose shifted row indexes. */\n positionIndexIndependent?: boolean;\n /** Compiler proof that reordering cannot expose changed row indexes. */\n reorderIndexIndependent?: boolean;\n rowKey(item: unknown, index: number): React.Key;\n create(item: unknown, index: number): CompilerKeyedRowElement;\n bindings: readonly CompilerKeyedRowBinding[];\n events?: readonly CompilerKeyedRowEvent[];\n /** Route compiler-proven bubbling row events through the stable React container. */\n delegateEvents?: boolean;\n conditionals?: readonly CompilerKeyedRowConditional[];\n /** Row descriptors contain compiler-owned nested host scopes. */\n hostBlocks?: boolean;\n}\n\nexport interface CompilerKeyedRange {\n /** Number of static direct host siblings between this range and the previous range. */\n before: number;\n items(): Iterable<unknown> | null | undefined;\n rowKey(item: unknown, index: number): React.Key;\n create(item: unknown, index: number): CompilerKeyedRowElement;\n bindings: readonly CompilerKeyedRowBinding[];\n}\n\nexport type CompilerMixedRange =\n | ({ kind: \"conditional\" } & CompilerConditionalRange)\n | ({ kind: \"keyed\" } & CompilerKeyedRange);\n\nexport interface CompilerMixedRangesBlockProps {\n id: number;\n render(): React.ReactElement;\n create(): CompilerHostElement;\n rootRef?: React.RefCallback<Element>;\n}\n\nexport interface CompilerKeyedRangesBlockProps {\n id: number;\n render(): React.ReactElement;\n rootRef?: React.RefCallback<Element>;\n ranges: readonly CompilerKeyedRange[];\n /** Number of static direct host siblings after the final keyed range. */\n trailing: number;\n bindings?: readonly CompilerStaticRangeBinding[];\n}\n\nexport interface CompilerComponentBlockProps {\n id: number;\n render(): React.ReactNode;\n}\n\nexport interface CompilerBlockRuntime {\n Conditional: React.ComponentType<CompilerConditionalBlockProps>;\n HostConditional: React.ComponentType<CompilerHostConditionalBlockProps>;\n ConditionalRanges: React.ComponentType<CompilerConditionalRangesBlockProps>;\n KeyedList: React.ComponentType<CompilerKeyedListBlockProps>;\n KeyedRows: React.ComponentType<CompilerKeyedRowsBlockProps>;\n KeyedRanges: React.ComponentType<CompilerKeyedRangesBlockProps>;\n MixedRanges: React.ComponentType<CompilerMixedRangesBlockProps>;\n Component: React.ComponentType<CompilerComponentBlockProps>;\n target(id: number): React.RefCallback<Element>;\n}\n\nexport type CompilerBinding<Props> =\n | CompilerTextBinding<Props>\n | CompilerAttributeBinding<Props>\n | CompilerStyleBinding<Props>\n | CompilerConditionalBlockBinding;\n\nexport interface CompiledComponentDefinition<Props> {\n displayName: string;\n /** Scheduler selected by the compiler. Hand-authored definitions default to `static`. */\n reactivity?: CompilerRuntimeReactivity;\n /** Stable development-only identity used to preserve state across compatible refreshes. */\n hmrId?: string;\n /** Changes when the compiler-owned state layout is no longer refresh-compatible. */\n stateSignature?: string;\n initialize(props: Props): readonly unknown[];\n /**\n * Compiler-emitted flat prop reads. Primitive values can share the local\n * dependency graph; identity-bearing values retain normal React rendering.\n */\n readProps?(props: Props): readonly unknown[];\n render(\n props: Props,\n state: readonly CompilerCell[],\n blocks: CompilerBlockRuntime,\n ): React.ReactElement;\n bindings: readonly CompilerBinding<Props>[];\n}\n\ninterface CompiledDefinitionReference<Props> {\n current: CompiledComponentDefinition<Props>;\n}\n\ninterface CompilerHmrRegistryEntry {\n component: React.ComponentType<unknown>;\n definition: CompiledDefinitionReference<unknown>;\n refreshListeners: Set<() => void>;\n stateSignature: string;\n runtimeSignature: string;\n}\n\ntype CompilerHmrRegistry = Map<string, CompilerHmrRegistryEntry>;\n\nconst COMPILER_HMR_REGISTRY = Symbol.for(\"@farm.js/react/compiler-hmr-registry\");\n\nfunction getCompilerHmrRegistry(): CompilerHmrRegistry {\n const globalTarget = globalThis as typeof globalThis & Record<symbol, unknown>;\n const existing = globalTarget[COMPILER_HMR_REGISTRY];\n if (existing instanceof Map) return existing as CompilerHmrRegistry;\n const registry: CompilerHmrRegistry = new Map();\n globalTarget[COMPILER_HMR_REGISTRY] = registry;\n return registry;\n}\n\nfunction renderTextValue(value: unknown): string {\n if (Array.isArray(value)) return value.map(renderTextValue).join(\"\");\n if (value === null || value === undefined || typeof value === \"boolean\") return \"\";\n return String(value);\n}\n\nfunction isCompilerPrimitive(value: unknown): boolean {\n if (value === null) return true;\n const kind = typeof value;\n return (\n kind === \"string\" ||\n kind === \"number\" ||\n kind === \"boolean\" ||\n kind === \"bigint\" ||\n kind === \"undefined\"\n );\n}\n\nfunction findBindingTarget(\n root: Element,\n path: readonly number[],\n blockRoots: ReadonlySet<Element>,\n): Element | null {\n let current: Element | null = root;\n for (const index of path) {\n if (!current) return null;\n current = [...current.children].filter((child) => !blockRoots.has(child))[index] || null;\n }\n return current;\n}\n\nconst UNITLESS_STYLE_PROPERTIES = new Set([\n \"animationIterationCount\",\n \"aspectRatio\",\n \"borderImageOutset\",\n \"borderImageSlice\",\n \"borderImageWidth\",\n \"boxFlex\",\n \"boxFlexGroup\",\n \"boxOrdinalGroup\",\n \"columnCount\",\n \"columns\",\n \"flex\",\n \"flexGrow\",\n \"flexNegative\",\n \"flexOrder\",\n \"flexPositive\",\n \"flexShrink\",\n \"fontWeight\",\n \"gridArea\",\n \"gridColumn\",\n \"gridColumnEnd\",\n \"gridColumnSpan\",\n \"gridColumnStart\",\n \"gridRow\",\n \"gridRowEnd\",\n \"gridRowSpan\",\n \"gridRowStart\",\n \"lineClamp\",\n \"lineHeight\",\n \"opacity\",\n \"order\",\n \"orphans\",\n \"scale\",\n \"tabSize\",\n \"widows\",\n \"zIndex\",\n \"zoom\",\n \"fillOpacity\",\n \"floodOpacity\",\n \"stopOpacity\",\n \"strokeDasharray\",\n \"strokeDashoffset\",\n \"strokeMiterlimit\",\n \"strokeOpacity\",\n \"strokeWidth\",\n]);\n\nfunction unprefixedStyleName(name: string): string {\n const unprefixed = name.replace(/^(?:Webkit|Moz|ms|O)(?=[A-Z])/, \"\");\n return unprefixed ? unprefixed[0].toLowerCase() + unprefixed.slice(1) : name;\n}\n\nfunction isHtmlOrSvgElement(element: Element): element is HTMLElement | SVGElement {\n const view = element.ownerDocument.defaultView;\n return Boolean(\n view && (element instanceof view.HTMLElement || element instanceof view.SVGElement),\n );\n}\n\nfunction isInputElement(element: Element): element is HTMLInputElement {\n const view = element.ownerDocument.defaultView;\n return Boolean(view && element instanceof view.HTMLInputElement);\n}\n\nfunction isTextAreaElement(element: Element): element is HTMLTextAreaElement {\n const view = element.ownerDocument.defaultView;\n return Boolean(view && element instanceof view.HTMLTextAreaElement);\n}\n\nfunction isSelectElement(element: Element): element is HTMLSelectElement {\n const view = element.ownerDocument.defaultView;\n return Boolean(view && element instanceof view.HTMLSelectElement);\n}\n\nfunction isOptionElement(element: Element): element is HTMLOptionElement {\n const view = element.ownerDocument.defaultView;\n return Boolean(view && element instanceof view.HTMLOptionElement);\n}\n\nfunction isSelectableTextControl(\n element: Element | null | undefined,\n): element is SelectableTextControl {\n return Boolean(element && (isInputElement(element) || isTextAreaElement(element)));\n}\n\nfunction updateStyle(element: Element, name: string, value: unknown): void {\n if (!isHtmlOrSvgElement(element)) return;\n const customProperty = name.startsWith(\"--\");\n let nextValue = \"\";\n if (value !== null && value !== undefined && typeof value !== \"boolean\" && value !== \"\") {\n nextValue =\n typeof value === \"number\" &&\n value !== 0 &&\n !customProperty &&\n !UNITLESS_STYLE_PROPERTIES.has(unprefixedStyleName(name))\n ? `${value}px`\n : String(value).trim();\n }\n\n if (customProperty || name.includes(\"-\")) {\n element.style.setProperty(name, nextValue);\n } else {\n (element.style as unknown as Record<string, string>)[name] = nextValue;\n }\n}\n\nfunction updateSelectValue(element: HTMLSelectElement, value: unknown): void {\n const options = [...element.options];\n if (element.multiple) {\n const selected = new Set(\n (Array.isArray(value) ? value : value === null || value === undefined ? [] : [value]).map(\n String,\n ),\n );\n for (const option of options) option.selected = selected.has(option.value);\n return;\n }\n\n const selectedValue = value === null || value === undefined ? \"\" : String(value);\n let fallback: HTMLOptionElement | undefined;\n for (const option of options) {\n if (!option.disabled && !fallback) fallback = option;\n if (option.value === selectedValue) {\n option.selected = true;\n return;\n }\n }\n if (fallback) fallback.selected = true;\n}\n\nfunction updateAttribute(element: Element, name: string, value: unknown): void {\n const attributeName = name === \"className\" ? \"class\" : name === \"htmlFor\" ? \"for\" : name;\n const stringifiesBoolean = attributeName.startsWith(\"data-\") || attributeName.startsWith(\"aria-\");\n\n if (name === \"value\" && (isInputElement(element) || isTextAreaElement(element))) {\n const nextValue = value === null || value === undefined ? \"\" : String(value);\n if (element.value !== nextValue) element.value = nextValue;\n return;\n }\n\n if (name === \"value\" && isSelectElement(element)) {\n updateSelectValue(element, value);\n return;\n }\n\n if (name === \"checked\" && isInputElement(element)) {\n element.checked = Boolean(value);\n return;\n }\n\n if (name === \"selected\" && isOptionElement(element)) {\n element.selected = Boolean(value);\n return;\n }\n\n if (name === \"disabled\" && \"disabled\" in element) {\n (element as HTMLButtonElement).disabled = Boolean(value);\n return;\n }\n\n if (value === null || value === undefined || (value === false && !stringifiesBoolean)) {\n element.removeAttribute(attributeName);\n } else if (value === true && !stringifiesBoolean) {\n element.setAttribute(attributeName, \"\");\n } else {\n element.setAttribute(attributeName, String(value));\n }\n}\n\ntype CompilerBlockRefresh = (afterCommit?: () => void, dirtyState?: ReadonlySet<number>) => void;\n\nexport interface CompilerRuntimeFeatureOwner {\n setRoot(id: number, root: Element | null, expectedRoot?: Element | null): void;\n subscribe(id: number, refresh: CompilerBlockRefresh): () => void;\n /** Opaque identity used to detect compatible definition replacement. */\n getDefinitionVersion?(): unknown;\n}\n\nexport interface CompilerRuntimeFeature {\n /** Stable identity used by Fast Refresh compatibility checks. */\n name: string;\n create(owner: CompilerRuntimeFeatureOwner): Partial<CompilerBlockRuntime>;\n}\n\ninterface ConditionalBlockOwner {\n setRoot(id: number, root: Element | null, expectedRoot?: Element | null): void;\n subscribe(id: number, refresh: CompilerBlockRefresh): () => void;\n}\n\nfunction createConditionalBlockComponent(\n owner: ConditionalBlockOwner,\n): React.ComponentType<CompilerConditionalBlockProps> {\n class FarmConditionalBlock extends React.Component<CompilerConditionalBlockProps> {\n static displayName = \"FarmCompiledConditionalBlock\";\n\n private unsubscribe: (() => void) | undefined;\n private root: Element | null = null;\n private rootId: number | undefined;\n\n private captureRoot = (root: Element | null) => {\n const previousRoot = this.root;\n const previousId = this.rootId;\n this.root = root;\n if (!root) {\n if (previousId !== undefined) owner.setRoot(previousId, null, previousRoot);\n this.rootId = undefined;\n return;\n }\n owner.setRoot(this.props.id, root);\n this.rootId = this.props.id;\n };\n\n private refresh = (afterCommit?: () => void) => {\n this.forceUpdate(afterCommit);\n };\n\n private subscribe(): void {\n this.unsubscribe = owner.subscribe(this.props.id, this.refresh);\n }\n\n componentDidMount(): void {\n this.subscribe();\n }\n\n componentDidUpdate(previous: CompilerConditionalBlockProps): void {\n if (previous.id === this.props.id) return;\n this.unsubscribe?.();\n if (this.root && this.rootId !== this.props.id) {\n if (this.rootId !== undefined) owner.setRoot(this.rootId, null, this.root);\n owner.setRoot(this.props.id, this.root);\n this.rootId = this.props.id;\n }\n this.subscribe();\n }\n\n componentWillUnmount(): void {\n this.unsubscribe?.();\n // React 18 lifecycle replay keeps refs attached; captureRoot owns deregistration.\n }\n\n render(): React.ReactNode {\n const node = this.props.render();\n if (!React.isValidElement(node)) {\n if (\n node === null ||\n node === undefined ||\n typeof node === \"boolean\" ||\n typeof node === \"string\" ||\n typeof node === \"number\" ||\n typeof node === \"bigint\"\n ) {\n return node;\n }\n throw new TypeError(\n `Compiled conditional block ${this.props.id} must return one host element or an empty value.`,\n );\n }\n if (typeof node.type !== \"string\") {\n throw new TypeError(\n `Compiled conditional block ${this.props.id} must return one host element.`,\n );\n }\n return React.cloneElement(node, {\n ref: this.captureRoot,\n } as React.Attributes);\n }\n }\n\n return FarmConditionalBlock;\n}\n\nfunction createKeyedListBlockComponent(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n): React.ComponentType<CompilerKeyedListBlockProps> {\n class FarmKeyedListBlock extends React.Component<CompilerKeyedListBlockProps> {\n static displayName = \"FarmCompiledKeyedListBlock\";\n\n private unsubscribe: (() => void) | undefined;\n\n private refresh = (afterCommit?: () => void) => {\n this.forceUpdate(afterCommit);\n };\n\n private subscribe(): void {\n this.unsubscribe = owner.subscribe(this.props.id, this.refresh);\n }\n\n componentDidMount(): void {\n this.subscribe();\n }\n\n componentDidUpdate(previous: CompilerKeyedListBlockProps): void {\n if (previous.id === this.props.id) return;\n this.unsubscribe?.();\n this.subscribe();\n }\n\n componentWillUnmount(): void {\n this.unsubscribe?.();\n }\n\n render(): React.ReactNode {\n return this.props.render();\n }\n }\n\n return FarmKeyedListBlock;\n}\n\ninterface CompilerHostInstance {\n element: Element;\n values: unknown[];\n scope?: CompilerHostTreeScope;\n}\n\nfunction isCompilerHostElement(value: unknown): value is CompilerHostElement {\n return (\n typeof value === \"object\" && value !== null && (value as { kind?: unknown }).kind === \"element\"\n );\n}\n\nfunction createCompilerHostElement(document: Document, descriptor: CompilerHostElement): Element {\n const element = document.createElement(descriptor.tag);\n for (const attribute of descriptor.attributes) {\n updateAttribute(element, attribute.name, attribute.value);\n }\n for (const style of descriptor.styles) updateStyle(element, style.name, style.value);\n const appendChild = (child: unknown): void => {\n if (Array.isArray(child)) {\n for (const nested of child) appendChild(nested);\n return;\n }\n if (isCompilerHostElement(child)) {\n element.append(createCompilerHostElement(document, child));\n return;\n }\n const text = renderTextValue(child);\n if (text) element.append(document.createTextNode(text));\n };\n for (const child of materializeCompilerHostChildren(descriptor)) appendChild(child);\n // Select options and textarea text must exist before their controlled value\n // is finalized. Reapplying is harmless for other attributes and avoids a\n // transient/default selection becoming the compiled branch's final state.\n for (const attribute of descriptor.attributes) {\n if (attribute.name === \"value\" && (isSelectElement(element) || isTextAreaElement(element))) {\n updateAttribute(element, attribute.name, attribute.value);\n }\n }\n return element;\n}\n\nfunction matchesCompilerHostElement(\n element: Element,\n descriptor: CompilerHostElement,\n opaquePaths: ReadonlySet<string> = new Set(),\n path: readonly number[] = [],\n): boolean {\n if (element.tagName.toLowerCase() !== descriptor.tag.toLowerCase()) return false;\n if (opaquePaths.has(path.join(\".\")) || descriptor.block) return true;\n const expectedChildren = flattenCompilerHostElements(descriptor.children);\n if (element.children.length !== expectedChildren.length) return false;\n return expectedChildren.every((child, index) =>\n matchesCompilerHostElement(element.children[index], child, opaquePaths, [...path, index]),\n );\n}\n\nfunction flattenCompilerHostElements(children: readonly unknown[]): CompilerHostElement[] {\n const elements: CompilerHostElement[] = [];\n const visit = (child: unknown): void => {\n if (Array.isArray(child)) {\n for (const nested of child) visit(nested);\n } else if (isCompilerHostElement(child)) {\n elements.push(child);\n }\n };\n for (const child of children) visit(child);\n return elements;\n}\n\nfunction materializeCompilerHostChildren(descriptor: CompilerHostElement): readonly unknown[] {\n const block = descriptor.block;\n if (block?.kind !== \"keyed-ranges\" || !block.staticChildrenOnly) {\n return descriptor.children;\n }\n const staticChildren = flattenCompilerHostElements(descriptor.children);\n const children: CompilerHostElement[] = [];\n let cursor = 0;\n for (const range of block.ranges) {\n children.push(...staticChildren.slice(cursor, cursor + range.before));\n cursor += range.before;\n const items = materializeIterable(range.items());\n children.push(...items.map((item, index) => range.create(item, index)));\n }\n children.push(...staticChildren.slice(cursor, cursor + block.trailing));\n return children;\n}\n\nfunction collectActiveCompilerHostBlockIds(\n descriptor: CompilerHostElement,\n ids: Set<number>,\n): void {\n for (const child of flattenCompilerHostElements(materializeCompilerHostChildren(descriptor))) {\n collectActiveCompilerHostBlockIds(child, ids);\n }\n const block = descriptor.block;\n if (!block) return;\n ids.add(block.id);\n}\n\nfunction reconcileCompilerFallbackSubscriptions(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n subscriptions: Map<number, () => void>,\n ids: ReadonlySet<number>,\n refresh: CompilerBlockRefresh,\n): void {\n for (const [id, unsubscribe] of subscriptions) {\n if (ids.has(id)) continue;\n unsubscribe();\n subscriptions.delete(id);\n }\n for (const id of ids) {\n if (!subscriptions.has(id)) subscriptions.set(id, owner.subscribe(id, refresh));\n }\n}\n\nfunction clearCompilerFallbackSubscriptions(subscriptions: Map<number, () => void>): void {\n for (const unsubscribe of subscriptions.values()) unsubscribe();\n subscriptions.clear();\n}\n\n/**\n * React can preserve a fallback subtree only while every mounted keyed range has\n * an unambiguous identity. Inspect the complete live descriptor because nested\n * row instances may own different blocks or keys than the first row.\n */\nfunction hasUnsafeCompilerFallbackKeys(descriptor: CompilerHostElement): boolean {\n const visitKeyedRange = (range: CompilerKeyedRange): boolean => {\n const items = materializeIterable(range.items());\n const keys = items.map((item, index) => keyedRowIdentity(range.rowKey(item, index)));\n if (new Set(keys).size !== keys.length) return true;\n return items.some((item, index) => visit(range.create(item, index)));\n };\n const visit = (current: CompilerHostElement): boolean => {\n for (const child of flattenCompilerHostElements(current.children)) {\n if (visit(child)) return true;\n }\n const block = current.block;\n if (!block) return false;\n if (block.kind === \"conditional-ranges\") {\n for (const range of block.ranges) {\n const selection = hostConditionalSelection(range);\n if (selection.kind === \"branch\" && visit(selection.branch.create())) return true;\n }\n return false;\n }\n if (block.kind === \"keyed-ranges\") {\n return block.ranges.some(visitKeyedRange);\n }\n for (const range of block.ranges) {\n if (range.kind === \"keyed\") {\n if (visitKeyedRange(range)) return true;\n continue;\n }\n const selection = hostConditionalSelection(range);\n if (selection.kind === \"branch\" && visit(selection.branch.create())) return true;\n }\n return false;\n };\n\n try {\n return visit(descriptor);\n } catch {\n // Reading an iterable, key, or nested descriptor must be proven safe before\n // React is allowed to reuse the existing fallback subtree.\n return true;\n }\n}\n\nfunction findCompilerHostTarget(root: Element, path: readonly number[]): Element | null {\n let current: Element | null = root;\n for (const index of path) current = current?.children[index] || null;\n return current;\n}\n\nconst UNSET_STATIC_RANGE_BINDING = Symbol(\"unset static range binding\");\n\nfunction normalizedStaticRangeBindingValue(\n binding: CompilerStaticRangeBinding,\n value: unknown,\n): unknown {\n return binding.kind === \"text\" ? renderTextValue(value) : value;\n}\n\nfunction applyStaticRangeBindings(\n bindings: readonly CompilerStaticRangeBinding[] | undefined,\n segments: readonly (readonly Element[])[],\n values: unknown[],\n): boolean {\n const activeBindings = bindings || [];\n const targets: Element[] = [];\n for (let index = 0; index < activeBindings.length; index += 1) {\n const binding = activeBindings[index];\n if (\n !Number.isSafeInteger(binding.segment) ||\n binding.segment < 0 ||\n !Number.isSafeInteger(binding.sibling) ||\n binding.sibling < 0\n ) {\n return false;\n }\n const sibling = segments[binding.segment]?.[binding.sibling];\n const target = sibling && findCompilerHostTarget(sibling, binding.path);\n if (\n !target ||\n (binding.kind !== \"text\" &&\n ((binding.kind !== \"style\" && binding.kind !== \"attribute\") || !binding.name))\n ) {\n return false;\n }\n targets[index] = target;\n }\n\n const initializesValues = values.length === 0 && activeBindings.length > 0;\n if (!initializesValues && values.length !== activeBindings.length) return false;\n\n const nextValues: unknown[] = [];\n for (let index = 0; index < activeBindings.length; index += 1) {\n const binding = activeBindings[index];\n nextValues[index] = normalizedStaticRangeBindingValue(binding, binding.read());\n }\n\n for (let index = 0; index < activeBindings.length; index += 1) {\n const binding = activeBindings[index];\n const value = nextValues[index];\n const previous = initializesValues ? UNSET_STATIC_RANGE_BINDING : values[index];\n if (Object.is(previous, value)) continue;\n values[index] = value;\n const target = targets[index];\n if (binding.kind === \"text\") {\n target.textContent = value as string;\n } else if (binding.kind === \"style\") {\n updateStyle(target, binding.name!, value);\n } else {\n updateAttribute(target, binding.name!, value);\n }\n }\n return true;\n}\n\ninterface CompilerKeyedRowInstance extends CompilerHostInstance {\n key: string;\n item: unknown;\n index: number;\n conditionalValues: ReadonlyMap<number, readonly unknown[]>;\n}\n\ninterface CompilerKeyedRollingWindowDelta {\n readonly added: readonly CompilerKeyedRowInstance[];\n readonly removedKeys: readonly string[];\n}\n\nconst COMPILER_KEYED_ROLLING_WINDOW_DELTAS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedRollingWindowDelta\n>();\n\nfunction keyedRowInstancesByKey(\n instances: readonly CompilerKeyedRowInstance[],\n): Map<string, CompilerKeyedRowInstance> {\n return new Map(instances.map((instance) => [instance.key, instance]));\n}\n\ninterface CompilerKeyedIdentityTargetSnapshot {\n eligible: boolean;\n key?: string;\n}\n\ninterface CompilerKeyedMembershipTargetSnapshot {\n eligible: boolean;\n values?: ReadonlySet<unknown>;\n previous?: CompilerKeyedMembershipTargetSnapshot;\n changes?: ReadonlyMap<unknown, boolean>;\n sourceToken?: object;\n targetedKeys?: ReadonlySet<string>;\n depth?: number;\n}\n\ninterface CompilerKeyedMapLookupTargetSnapshot {\n eligible: boolean;\n values?: ReadonlyMap<unknown, unknown>;\n previous?: CompilerKeyedMapLookupTargetSnapshot;\n changes?: ReadonlyMap<unknown, CompilerKeyedMapLookupValue>;\n sourceToken?: object;\n targetedKeys?: ReadonlySet<string>;\n depth?: number;\n}\n\ninterface CompilerKeyedMapLookupValue {\n present: boolean;\n value?: unknown;\n}\n\nconst UNSET_KEYED_ROW_BINDING = Symbol(\"unset interactive keyed-row binding\");\n\nfunction keyedRowIdentity(key: React.Key): string {\n return String(key);\n}\n\nfunction keyedIdentityTargetSnapshot(value: unknown): CompilerKeyedIdentityTargetSnapshot {\n const kind = typeof value;\n return value === null ||\n value === undefined ||\n kind === \"string\" ||\n kind === \"number\" ||\n kind === \"bigint\"\n ? { eligible: true, key: String(value) }\n : { eligible: false };\n}\n\nconst NATIVE_SET_PROTOTYPE = Set.prototype;\nconst NATIVE_SET_ADD = Set.prototype.add;\nconst NATIVE_SET_DELETE = Set.prototype.delete;\nconst NATIVE_SET_HAS = Set.prototype.has;\nconst NATIVE_SET_VALUES = Set.prototype.values;\nconst KEYED_COLLECTION_SNAPSHOT_MAX_DEPTH = 64;\n\nfunction materializeKeyedMembershipSnapshot(\n snapshot: CompilerKeyedMembershipTargetSnapshot,\n): Set<unknown> | undefined {\n if (!snapshot.eligible) return undefined;\n if (snapshot.values) return new Set(snapshot.values);\n if (!snapshot.previous || !snapshot.changes) return undefined;\n const values = materializeKeyedMembershipSnapshot(snapshot.previous);\n if (!values) return undefined;\n for (const [key, present] of snapshot.changes) {\n if (present) NATIVE_SET_ADD.call(values, key);\n else NATIVE_SET_DELETE.call(values, key);\n }\n return values;\n}\n\nfunction keyedMembershipSnapshotHas(\n snapshot: CompilerKeyedMembershipTargetSnapshot,\n key: unknown,\n): boolean | undefined {\n for (\n let current: CompilerKeyedMembershipTargetSnapshot | undefined = snapshot;\n current;\n current = current.previous\n ) {\n if (!current.eligible) return undefined;\n if (current.changes?.has(key)) return current.changes.get(key);\n if (current.values) return NATIVE_SET_HAS.call(current.values, key);\n }\n return undefined;\n}\n\nfunction keyedMembershipDeltaSnapshot(\n value: unknown,\n previous: CompilerKeyedMembershipTargetSnapshot,\n): CompilerKeyedMembershipTargetSnapshot | undefined {\n if (!previous.eligible || !previous.sourceToken) return undefined;\n const target = compilerObject(value);\n if (!target) return undefined;\n const changedKeys = compilerKeyedCollectionChangedKeys(value, previous.sourceToken, \"set\");\n if (!changedKeys) return undefined;\n if (\n Object.getPrototypeOf(value) !== NATIVE_SET_PROTOTYPE ||\n Object.prototype.hasOwnProperty.call(value, \"has\") ||\n (value as Set<unknown>).has !== NATIVE_SET_HAS\n ) {\n return undefined;\n }\n\n const changes = new Map<unknown, boolean>();\n const targetedKeys = new Set<string>();\n try {\n for (const key of changedKeys) {\n if (!keyedIdentityTargetSnapshot(key).eligible) return undefined;\n const present = NATIVE_SET_HAS.call(value as Set<unknown>, key);\n const before = keyedMembershipSnapshotHas(previous, key);\n if (before === undefined) return undefined;\n changes.set(key, present);\n if (before !== present) NATIVE_SET_ADD.call(targetedKeys, String(key));\n }\n } catch {\n return undefined;\n }\n const depth = (previous.depth || 0) + 1;\n if (depth > KEYED_COLLECTION_SNAPSHOT_MAX_DEPTH) return undefined;\n return {\n eligible: true,\n previous,\n changes,\n sourceToken: commitCompilerKeyedCollection(value),\n targetedKeys,\n depth,\n };\n}\n\nfunction keyedMembershipTargetSnapshot(\n value: unknown,\n previous?: CompilerKeyedMembershipTargetSnapshot,\n): CompilerKeyedMembershipTargetSnapshot {\n if (previous) {\n const delta = keyedMembershipDeltaSnapshot(value, previous);\n if (delta) return delta;\n }\n if (typeof value !== \"object\" || value === null) return { eligible: false };\n let iterator: SetIterator<unknown>;\n try {\n iterator = NATIVE_SET_VALUES.call(value as Set<unknown>);\n } catch {\n return { eligible: false };\n }\n if (\n Object.getPrototypeOf(value) !== NATIVE_SET_PROTOTYPE ||\n Object.prototype.hasOwnProperty.call(value, \"has\") ||\n (value as Set<unknown>).has !== NATIVE_SET_HAS\n ) {\n return { eligible: false };\n }\n const values = new Set<unknown>();\n try {\n for (const entry of iterator) {\n if (!keyedIdentityTargetSnapshot(entry).eligible) return { eligible: false };\n NATIVE_SET_ADD.call(values, entry);\n }\n } catch {\n return { eligible: false };\n }\n return {\n eligible: true,\n values,\n sourceToken: commitCompilerKeyedCollection(value),\n depth: 0,\n };\n}\n\nfunction keyedMembershipChangedKeys(\n previousSnapshot: CompilerKeyedMembershipTargetSnapshot,\n nextSnapshot: CompilerKeyedMembershipTargetSnapshot,\n): Set<string> {\n if (nextSnapshot.targetedKeys) return new Set(nextSnapshot.targetedKeys);\n const previous = materializeKeyedMembershipSnapshot(previousSnapshot);\n const next = materializeKeyedMembershipSnapshot(nextSnapshot);\n const keys = new Set<string>();\n if (!previous || !next) return keys;\n for (const value of previous) {\n if (!NATIVE_SET_HAS.call(next, value)) NATIVE_SET_ADD.call(keys, String(value));\n }\n for (const value of next) {\n if (!NATIVE_SET_HAS.call(previous, value)) NATIVE_SET_ADD.call(keys, String(value));\n }\n return keys;\n}\n\nconst NATIVE_MAP_PROTOTYPE = Map.prototype;\nconst NATIVE_MAP_GET = Map.prototype.get;\nconst NATIVE_MAP_HAS = Map.prototype.has;\nconst NATIVE_MAP_SET = Map.prototype.set;\nconst NATIVE_MAP_DELETE = Map.prototype.delete;\nconst NATIVE_MAP_ENTRIES = Map.prototype.entries;\n\nfunction isSafeKeyedMapLookupValue(value: unknown): boolean {\n return (\n value === null ||\n value === undefined ||\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"bigint\" ||\n typeof value === \"boolean\"\n );\n}\n\nfunction materializeKeyedMapLookupSnapshot(\n snapshot: CompilerKeyedMapLookupTargetSnapshot,\n): Map<unknown, unknown> | undefined {\n if (!snapshot.eligible) return undefined;\n if (snapshot.values) return new Map(snapshot.values);\n if (!snapshot.previous || !snapshot.changes) return undefined;\n const values = materializeKeyedMapLookupSnapshot(snapshot.previous);\n if (!values) return undefined;\n for (const [key, entry] of snapshot.changes) {\n if (entry.present) NATIVE_MAP_SET.call(values, key, entry.value);\n else NATIVE_MAP_DELETE.call(values, key);\n }\n return values;\n}\n\nfunction keyedMapLookupSnapshotValue(\n snapshot: CompilerKeyedMapLookupTargetSnapshot,\n key: unknown,\n): CompilerKeyedMapLookupValue | undefined {\n for (\n let current: CompilerKeyedMapLookupTargetSnapshot | undefined = snapshot;\n current;\n current = current.previous\n ) {\n if (!current.eligible) return undefined;\n const changed = current.changes?.get(key);\n if (changed) return changed;\n if (current.values) {\n const present = NATIVE_MAP_HAS.call(current.values, key);\n return {\n present,\n ...(present ? { value: NATIVE_MAP_GET.call(current.values, key) } : {}),\n };\n }\n }\n return undefined;\n}\n\nfunction keyedMapLookupDeltaSnapshot(\n value: unknown,\n previous: CompilerKeyedMapLookupTargetSnapshot,\n): CompilerKeyedMapLookupTargetSnapshot | undefined {\n if (!previous.eligible || !previous.sourceToken) return undefined;\n const target = compilerObject(value);\n if (!target) return undefined;\n const changedKeys = compilerKeyedCollectionChangedKeys(value, previous.sourceToken, \"map\");\n if (!changedKeys) return undefined;\n if (\n Object.getPrototypeOf(value) !== NATIVE_MAP_PROTOTYPE ||\n Object.prototype.hasOwnProperty.call(value, \"get\") ||\n (value as Map<unknown, unknown>).get !== NATIVE_MAP_GET\n ) {\n return undefined;\n }\n\n const changes = new Map<unknown, CompilerKeyedMapLookupValue>();\n const targetedKeys = new Set<string>();\n try {\n for (const key of changedKeys) {\n if (!keyedIdentityTargetSnapshot(key).eligible) return undefined;\n const present = NATIVE_MAP_HAS.call(value as Map<unknown, unknown>, key);\n const entry = present ? NATIVE_MAP_GET.call(value as Map<unknown, unknown>, key) : undefined;\n if (present && !isSafeKeyedMapLookupValue(entry)) return undefined;\n const before = keyedMapLookupSnapshotValue(previous, key);\n if (!before) return undefined;\n changes.set(key, { present, ...(present ? { value: entry } : {}) });\n if (before.present !== present || !Object.is(before.value, entry)) {\n NATIVE_SET_ADD.call(targetedKeys, String(key));\n }\n }\n } catch {\n return undefined;\n }\n const depth = (previous.depth || 0) + 1;\n if (depth > KEYED_COLLECTION_SNAPSHOT_MAX_DEPTH) return undefined;\n return {\n eligible: true,\n previous,\n changes,\n sourceToken: commitCompilerKeyedCollection(value),\n targetedKeys,\n depth,\n };\n}\n\nfunction keyedMapLookupTargetSnapshot(\n value: unknown,\n previous?: CompilerKeyedMapLookupTargetSnapshot,\n): CompilerKeyedMapLookupTargetSnapshot {\n if (previous) {\n const delta = keyedMapLookupDeltaSnapshot(value, previous);\n if (delta) return delta;\n }\n if (typeof value !== \"object\" || value === null) return { eligible: false };\n let iterator: MapIterator<[unknown, unknown]>;\n try {\n iterator = NATIVE_MAP_ENTRIES.call(value as Map<unknown, unknown>);\n } catch {\n return { eligible: false };\n }\n if (\n Object.getPrototypeOf(value) !== NATIVE_MAP_PROTOTYPE ||\n Object.prototype.hasOwnProperty.call(value, \"get\") ||\n (value as Map<unknown, unknown>).get !== NATIVE_MAP_GET\n ) {\n return { eligible: false };\n }\n const values = new Map<unknown, unknown>();\n try {\n for (const [key, entry] of iterator) {\n if (!keyedIdentityTargetSnapshot(key).eligible || !isSafeKeyedMapLookupValue(entry)) {\n return { eligible: false };\n }\n NATIVE_MAP_SET.call(values, key, entry);\n }\n } catch {\n return { eligible: false };\n }\n return {\n eligible: true,\n values,\n sourceToken: commitCompilerKeyedCollection(value),\n depth: 0,\n };\n}\n\nfunction keyedMapLookupChangedKeys(\n previousSnapshot: CompilerKeyedMapLookupTargetSnapshot,\n nextSnapshot: CompilerKeyedMapLookupTargetSnapshot,\n): Set<string> {\n if (nextSnapshot.targetedKeys) return new Set(nextSnapshot.targetedKeys);\n const previous = materializeKeyedMapLookupSnapshot(previousSnapshot);\n const next = materializeKeyedMapLookupSnapshot(nextSnapshot);\n const keys = new Set<string>();\n if (!previous || !next) return keys;\n for (const [key, value] of previous) {\n if (!Object.is(value, NATIVE_MAP_GET.call(next, key))) {\n NATIVE_SET_ADD.call(keys, String(key));\n }\n }\n for (const [key, value] of next) {\n if (!Object.is(value, NATIVE_MAP_GET.call(previous, key))) {\n NATIVE_SET_ADD.call(keys, String(key));\n }\n }\n return keys;\n}\n\ninterface KeyedTargetSelection {\n keys: Iterable<string>;\n count: number;\n}\n\ninterface KeyedTargetRuntime {\n hasSafeTargets(props: CompilerKeyedRowsBlockProps, dirtyState?: ReadonlySet<number>): boolean;\n commit(props: CompilerKeyedRowsBlockProps, dirtyState?: ReadonlySet<number>): void;\n prepare(props: CompilerKeyedRowsBlockProps, bindingIndices: readonly number[]): boolean;\n select(\n props: CompilerKeyedRowsBlockProps,\n bindingIndex: number,\n dirtyState: ReadonlySet<number>,\n fallbackKeys: Iterable<string>,\n fallbackCount: number,\n ): KeyedTargetSelection;\n commitPrepared(bindingIndices: readonly number[]): void;\n clear(): void;\n}\n\ntype KeyedTargetKind = \"identityTarget\" | \"membershipTarget\" | \"mapLookupTarget\";\n\n/** Two snapshot maps for a compiler-proven single target kind. The complete\n * runtime below remains the compatibility path for mixed and structural rows. */\nfunction createSingleKindKeyedTargetRuntime<Snapshot extends { eligible: boolean }>(\n props: CompilerKeyedRowsBlockProps,\n kind: KeyedTargetKind,\n snapshot: (value: unknown, previous?: Snapshot) => Snapshot,\n changedKeys: (previous: Snapshot, next: Snapshot) => Set<string>,\n): KeyedTargetRuntime | undefined {\n if (\n !props.bindings.some(\n (binding) => binding.identityTarget || binding.membershipTarget || binding.mapLookupTarget,\n )\n )\n return undefined;\n const previous = new Map<number, Snapshot>();\n let next = new Map<number, Snapshot>();\n // A changed definition or hand-authored feature selection must fall back to\n // React before patching if it introduces an unsupported target kind.\n const compatible = (binding: CompilerKeyedRowBinding) =>\n (kind === \"identityTarget\" || !binding.identityTarget) &&\n (kind === \"membershipTarget\" || !binding.membershipTarget) &&\n (kind === \"mapLookupTarget\" || !binding.mapLookupTarget);\n return {\n hasSafeTargets(props, dirtyState) {\n for (const binding of props.bindings) {\n if (!compatible(binding)) return false;\n const target = binding[kind];\n if (\n kind !== \"identityTarget\" &&\n target &&\n (!dirtyState || dirtyState.has(target.dependency)) &&\n !snapshot(target.read()).eligible\n )\n return false;\n }\n return true;\n },\n commit(props, dirtyState) {\n if (!dirtyState) previous.clear();\n for (let index = 0; index < props.bindings.length; index++) {\n const target = props.bindings[index][kind];\n if (!target) previous.delete(index);\n else if (!dirtyState || dirtyState.has(target.dependency))\n previous.set(index, snapshot(target.read()));\n }\n },\n prepare(props, indices) {\n next = new Map();\n for (const index of indices) {\n const binding = props.bindings[index];\n if (!compatible(binding)) return false;\n const target = binding[kind];\n if (!target) continue;\n const value = snapshot(target.read(), previous.get(index));\n if (kind !== \"identityTarget\" && !value.eligible) return false;\n next.set(index, value);\n }\n return true;\n },\n select(props, index, dirtyState, fallbackKeys, fallbackCount) {\n const binding = props.bindings[index];\n const target = binding[kind];\n const before = previous.get(index);\n const after = next.get(index);\n if (\n target &&\n binding.dependencies?.length === 1 &&\n binding.dependencies[0] === target.dependency &&\n dirtyState.has(target.dependency) &&\n before?.eligible &&\n after?.eligible\n ) {\n const keys = changedKeys(before, after);\n return { keys, count: keys.size };\n }\n return { keys: fallbackKeys, count: fallbackCount };\n },\n commitPrepared(indices) {\n for (const index of indices) {\n const value = next.get(index);\n if (value) previous.set(index, value);\n else previous.delete(index);\n }\n },\n clear() {\n previous.clear();\n next.clear();\n },\n };\n}\n\nfunction createKeyedIdentityTargetRuntime(props: CompilerKeyedRowsBlockProps) {\n return createSingleKindKeyedTargetRuntime(\n props,\n \"identityTarget\",\n keyedIdentityTargetSnapshot,\n (previous, next) => {\n const keys = new Set<string>();\n if (previous.key !== undefined) keys.add(previous.key);\n if (next.key !== undefined) keys.add(next.key);\n return keys;\n },\n );\n}\n\nfunction createKeyedMembershipTargetRuntime(props: CompilerKeyedRowsBlockProps) {\n return createSingleKindKeyedTargetRuntime(\n props,\n \"membershipTarget\",\n keyedMembershipTargetSnapshot,\n keyedMembershipChangedKeys,\n );\n}\n\nfunction createKeyedMapLookupTargetRuntime(props: CompilerKeyedRowsBlockProps) {\n return createSingleKindKeyedTargetRuntime(\n props,\n \"mapLookupTarget\",\n keyedMapLookupTargetSnapshot,\n keyedMapLookupChangedKeys,\n );\n}\n\nfunction createKeyedTargetRuntime(\n props: CompilerKeyedRowsBlockProps,\n): KeyedTargetRuntime | undefined {\n if (\n !props.bindings.some(\n (binding) => binding.identityTarget || binding.membershipTarget || binding.mapLookupTarget,\n )\n ) {\n return undefined;\n }\n const identityTargets = new Map<number, CompilerKeyedIdentityTargetSnapshot>();\n const membershipTargets = new Map<number, CompilerKeyedMembershipTargetSnapshot>();\n const mapLookupTargets = new Map<number, CompilerKeyedMapLookupTargetSnapshot>();\n let nextIdentityTargets = new Map<number, CompilerKeyedIdentityTargetSnapshot>();\n let nextMembershipTargets = new Map<number, CompilerKeyedMembershipTargetSnapshot>();\n let nextMapLookupTargets = new Map<number, CompilerKeyedMapLookupTargetSnapshot>();\n\n return {\n hasSafeTargets(props, dirtyState) {\n for (const binding of props.bindings) {\n const membershipTarget = binding.membershipTarget;\n if (\n membershipTarget &&\n (!dirtyState || dirtyState.has(membershipTarget.dependency)) &&\n !keyedMembershipTargetSnapshot(membershipTarget.read()).eligible\n ) {\n return false;\n }\n const mapLookupTarget = binding.mapLookupTarget;\n if (\n mapLookupTarget &&\n (!dirtyState || dirtyState.has(mapLookupTarget.dependency)) &&\n !keyedMapLookupTargetSnapshot(mapLookupTarget.read()).eligible\n ) {\n return false;\n }\n }\n return true;\n },\n commit(props, dirtyState) {\n if (!dirtyState) {\n identityTargets.clear();\n membershipTargets.clear();\n mapLookupTargets.clear();\n }\n for (let bindingIndex = 0; bindingIndex < props.bindings.length; bindingIndex += 1) {\n const binding = props.bindings[bindingIndex];\n const identityTarget = binding.identityTarget;\n if (!identityTarget) {\n identityTargets.delete(bindingIndex);\n } else if (!dirtyState || dirtyState.has(identityTarget.dependency)) {\n identityTargets.set(bindingIndex, keyedIdentityTargetSnapshot(identityTarget.read()));\n }\n\n const membershipTarget = binding.membershipTarget;\n if (!membershipTarget) {\n membershipTargets.delete(bindingIndex);\n } else if (!dirtyState || dirtyState.has(membershipTarget.dependency)) {\n membershipTargets.set(\n bindingIndex,\n keyedMembershipTargetSnapshot(membershipTarget.read()),\n );\n }\n\n const mapLookupTarget = binding.mapLookupTarget;\n if (!mapLookupTarget) {\n mapLookupTargets.delete(bindingIndex);\n } else if (!dirtyState || dirtyState.has(mapLookupTarget.dependency)) {\n mapLookupTargets.set(bindingIndex, keyedMapLookupTargetSnapshot(mapLookupTarget.read()));\n }\n }\n },\n prepare(props, bindingIndices) {\n nextIdentityTargets = new Map();\n nextMembershipTargets = new Map();\n nextMapLookupTargets = new Map();\n for (const bindingIndex of bindingIndices) {\n const binding = props.bindings[bindingIndex];\n if (binding.identityTarget) {\n nextIdentityTargets.set(\n bindingIndex,\n keyedIdentityTargetSnapshot(binding.identityTarget.read()),\n );\n }\n if (binding.membershipTarget) {\n const snapshot = keyedMembershipTargetSnapshot(\n binding.membershipTarget.read(),\n membershipTargets.get(bindingIndex),\n );\n if (!snapshot.eligible) return false;\n nextMembershipTargets.set(bindingIndex, snapshot);\n }\n if (binding.mapLookupTarget) {\n const snapshot = keyedMapLookupTargetSnapshot(\n binding.mapLookupTarget.read(),\n mapLookupTargets.get(bindingIndex),\n );\n if (!snapshot.eligible) return false;\n nextMapLookupTargets.set(bindingIndex, snapshot);\n }\n }\n return true;\n },\n select(props, bindingIndex, dirtyState, fallbackKeys, fallbackCount) {\n const binding = props.bindings[bindingIndex];\n const identityTarget = binding.identityTarget;\n const previousIdentityTarget = identityTargets.get(bindingIndex);\n const nextIdentityTarget = nextIdentityTargets.get(bindingIndex);\n const canTargetIdentity = Boolean(\n identityTarget &&\n binding.dependencies?.length === 1 &&\n binding.dependencies[0] === identityTarget.dependency &&\n dirtyState.has(identityTarget.dependency) &&\n previousIdentityTarget?.eligible &&\n nextIdentityTarget?.eligible,\n );\n const membershipTarget = binding.membershipTarget;\n const previousMembershipTarget = membershipTargets.get(bindingIndex);\n const nextMembershipTarget = nextMembershipTargets.get(bindingIndex);\n const canTargetMembership = Boolean(\n membershipTarget &&\n binding.dependencies?.length === 1 &&\n binding.dependencies[0] === membershipTarget.dependency &&\n dirtyState.has(membershipTarget.dependency) &&\n previousMembershipTarget?.eligible &&\n nextMembershipTarget?.eligible,\n );\n const mapLookupTarget = binding.mapLookupTarget;\n const previousMapLookupTarget = mapLookupTargets.get(bindingIndex);\n const nextMapLookupTarget = nextMapLookupTargets.get(bindingIndex);\n const canTargetMapLookup = Boolean(\n mapLookupTarget &&\n binding.dependencies?.length === 1 &&\n binding.dependencies[0] === mapLookupTarget.dependency &&\n dirtyState.has(mapLookupTarget.dependency) &&\n previousMapLookupTarget?.eligible &&\n nextMapLookupTarget?.eligible,\n );\n\n if (canTargetMapLookup && previousMapLookupTarget && nextMapLookupTarget) {\n const keys = keyedMapLookupChangedKeys(previousMapLookupTarget, nextMapLookupTarget);\n return { keys, count: keys.size };\n }\n if (canTargetMembership && previousMembershipTarget && nextMembershipTarget) {\n const keys = keyedMembershipChangedKeys(previousMembershipTarget, nextMembershipTarget);\n return { keys, count: keys.size };\n }\n if (canTargetIdentity && previousIdentityTarget && nextIdentityTarget) {\n const keys = new Set<string>();\n if (previousIdentityTarget.key !== undefined) keys.add(previousIdentityTarget.key);\n if (nextIdentityTarget.key !== undefined) keys.add(nextIdentityTarget.key);\n return { keys, count: keys.size };\n }\n return { keys: fallbackKeys, count: fallbackCount };\n },\n commitPrepared(bindingIndices) {\n for (const bindingIndex of bindingIndices) {\n const nextIdentityTarget = nextIdentityTargets.get(bindingIndex);\n const nextMembershipTarget = nextMembershipTargets.get(bindingIndex);\n const nextMapLookupTarget = nextMapLookupTargets.get(bindingIndex);\n if (nextIdentityTarget) identityTargets.set(bindingIndex, nextIdentityTarget);\n else identityTargets.delete(bindingIndex);\n if (nextMembershipTarget) {\n membershipTargets.set(bindingIndex, nextMembershipTarget);\n } else {\n membershipTargets.delete(bindingIndex);\n }\n if (nextMapLookupTarget) {\n mapLookupTargets.set(bindingIndex, nextMapLookupTarget);\n } else {\n mapLookupTargets.delete(bindingIndex);\n }\n }\n },\n clear() {\n identityTargets.clear();\n membershipTargets.clear();\n mapLookupTargets.clear();\n },\n };\n}\n\nfunction normalizedKeyedRowBindingValue(binding: CompilerKeyedRowBinding, value: unknown): unknown {\n return binding.kind === \"text\" ? renderTextValue(value) : value;\n}\n\ntype CompilerKeyedRowBindingSource = Pick<CompilerKeyedRowsBlockProps, \"bindings\">;\n\nfunction readKeyedRowBindingValues(\n props: CompilerKeyedRowBindingSource,\n item: unknown,\n index: number,\n): unknown[] {\n return props.bindings.map((binding) =>\n normalizedKeyedRowBindingValue(binding, binding.read(item, index)),\n );\n}\n\nfunction applyKeyedRowBindings(\n props: CompilerKeyedRowBindingSource,\n instance: CompilerKeyedRowInstance,\n item: unknown,\n index: number,\n): void {\n if (props.bindings.length < 2) {\n if (props.bindings.length === 1) applyKeyedRowBinding(props, instance, item, index, 0);\n return;\n }\n const nextValues = readKeyedRowBindingValues(props, item, index);\n let targets: Array<Element | null> | undefined;\n for (let bindingIndex = 0; bindingIndex < props.bindings.length; bindingIndex += 1) {\n if (Object.is(instance.values[bindingIndex], nextValues[bindingIndex])) continue;\n targets ||= [];\n targets[bindingIndex] = findCompilerHostTarget(\n instance.element,\n props.bindings[bindingIndex].path,\n );\n }\n if (!targets) return;\n for (let bindingIndex = 0; bindingIndex < props.bindings.length; bindingIndex += 1) {\n const value = nextValues[bindingIndex];\n if (Object.is(instance.values[bindingIndex], value)) continue;\n commitKeyedRowBinding(\n props.bindings[bindingIndex],\n instance,\n bindingIndex,\n value,\n targets[bindingIndex],\n );\n }\n}\n\nfunction applyKeyedRowBinding(\n props: CompilerKeyedRowBindingSource,\n instance: CompilerKeyedRowInstance,\n item: unknown,\n index: number,\n bindingIndex: number,\n): void {\n const binding = props.bindings[bindingIndex];\n const value = normalizedKeyedRowBindingValue(binding, binding.read(item, index));\n if (Object.is(instance.values[bindingIndex], value)) return;\n const target = findCompilerHostTarget(instance.element, binding.path);\n commitKeyedRowBinding(binding, instance, bindingIndex, value, target);\n}\n\nfunction commitKeyedRowBinding(\n binding: CompilerKeyedRowBinding,\n instance: CompilerKeyedRowInstance,\n bindingIndex: number,\n value: unknown,\n target: Element | null | undefined,\n): void {\n instance.values[bindingIndex] = value;\n if (!target) return;\n if (binding.kind === \"text\") {\n target.textContent = value as string;\n } else if (binding.kind === \"style\" && binding.name) {\n updateStyle(target, binding.name, value);\n } else if (binding.kind === \"attribute\" && binding.name) {\n updateAttribute(target, binding.name, value);\n }\n}\n\ntype CompilerPreparedKeyedRowBindingUpdate = readonly [\n bindingIndex: number,\n target: Element,\n value: unknown,\n];\n\nfunction prepareKeyedRowBindingUpdate(\n props: CompilerKeyedRowBindingSource,\n instance: CompilerKeyedRowInstance,\n item: unknown,\n index: number,\n bindingIndex: number,\n): CompilerPreparedKeyedRowBindingUpdate | null | undefined {\n const binding = props.bindings[bindingIndex];\n const rawValue = binding.read(item, index);\n const value = normalizedKeyedRowBindingValue(binding, rawValue);\n if (Object.is(instance.values[bindingIndex], value)) return null;\n const target = findCompilerHostTarget(instance.element, binding.path);\n if (!target || (binding.kind !== \"text\" && !binding.name)) return undefined;\n return [bindingIndex, target, value];\n}\n\ntype CompilerPreparedKeyedRowBindingCommit = readonly [\n instance: CompilerKeyedRowInstance,\n update: CompilerPreparedKeyedRowBindingUpdate,\n];\n\nfunction prepareKeyedRowBindingUpdates(\n props: CompilerKeyedRowBindingSource,\n instance: CompilerKeyedRowInstance,\n item: unknown,\n index: number,\n): CompilerPreparedKeyedRowBindingUpdate[] | undefined {\n const updates: CompilerPreparedKeyedRowBindingUpdate[] = [];\n for (let bindingIndex = 0; bindingIndex < props.bindings.length; bindingIndex += 1) {\n const update = prepareKeyedRowBindingUpdate(props, instance, item, index, bindingIndex);\n if (update === undefined) return undefined;\n if (update) updates.push(update);\n }\n return updates;\n}\n\nfunction applyPreparedKeyedRowBindingUpdates(\n props: CompilerKeyedRowBindingSource,\n instance: CompilerKeyedRowInstance,\n updates: readonly CompilerPreparedKeyedRowBindingUpdate[],\n): void {\n for (const [bindingIndex, target, value] of updates) {\n commitKeyedRowBinding(props.bindings[bindingIndex], instance, bindingIndex, value, target);\n }\n}\n\ntype CompilerPreparedKeyedRowBindingSet = CompilerPreparedKeyedRowBindingUpdate[][];\n\nfunction prepareKeyedRowBindingSetUpdates(\n props: CompilerKeyedRowBindingSource,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n rows: { items: unknown[]; keys: string[] },\n): CompilerPreparedKeyedRowBindingSet | undefined {\n const preparedUpdates: CompilerPreparedKeyedRowBindingUpdate[][] = [];\n for (let index = 0; index < rows.items.length; index += 1) {\n const instance = instances.get(rows.keys[index]);\n if (!instance) return undefined;\n const updates = prepareKeyedRowBindingUpdates(props, instance, rows.items[index], index);\n if (!updates) return undefined;\n preparedUpdates.push(updates);\n }\n return preparedUpdates;\n}\n\nfunction keyedRowConditionalSnapshot(\n conditional: CompilerKeyedRowConditional,\n item: unknown,\n index: number,\n): readonly unknown[] {\n const test = conditional.test(item, index);\n if (conditional.logical && !test) {\n return typeof test === \"number\" || typeof test === \"bigint\" ? [\"primitive\", test] : [\"empty\"];\n }\n const key = test ? \"truthy\" : \"falsy\";\n const branch = key === \"truthy\" ? conditional.truthy : conditional.falsy;\n if (!branch) return [\"empty\"];\n return [\n key,\n ...branch.bindings.map((binding) =>\n normalizedKeyedRowBindingValue(binding, binding.read(item, index)),\n ),\n ];\n}\n\nfunction readKeyedRowConditionalValues(\n props: CompilerKeyedRowsBlockProps,\n item: unknown,\n index: number,\n): ReadonlyMap<number, readonly unknown[]> {\n if (!props.conditionals?.length) return EMPTY_KEYED_ROW_CONDITIONAL_VALUES;\n return new Map(\n props.conditionals.map((conditional) => [\n conditional.id,\n keyedRowConditionalSnapshot(conditional, item, index),\n ]),\n );\n}\n\nconst EMPTY_KEYED_ROW_CONDITIONAL_VALUES: ReadonlyMap<number, readonly unknown[]> = new Map();\n\nfunction keyedRowConditionalChanged(\n previous: readonly unknown[] | undefined,\n next: readonly unknown[],\n): boolean {\n return (\n !previous ||\n previous.length !== next.length ||\n next.some((value, index) => !Object.is(value, previous[index]))\n );\n}\n\ntype CompilerHostConditionalSelection =\n | {\n kind: \"branch\";\n key: \"truthy\" | \"falsy\";\n branch: CompilerHostConditionalBranch;\n }\n | { kind: \"empty\" }\n | { kind: \"fallback\" };\ntype CompilerHostConditionalPreparedSelection = Exclude<\n CompilerHostConditionalSelection,\n { kind: \"fallback\" }\n>;\n\nfunction hostConditionalSelection(\n props: Pick<CompilerHostConditionalBlockProps, \"test\" | \"logical\" | \"truthy\" | \"falsy\">,\n): CompilerHostConditionalSelection {\n const test = props.test();\n if (props.logical && !test) {\n // React renders 0, NaN, and (where supported) 0n from `value && <Element />`.\n // The host-only fast path cannot represent that primitive branch, so retain\n // React's exact behavior rather than coercing it to an empty branch.\n if (typeof test === \"number\" || typeof test === \"bigint\") return { kind: \"fallback\" };\n return { kind: \"empty\" };\n }\n const key = test ? \"truthy\" : \"falsy\";\n const branch = key === \"truthy\" ? props.truthy : props.falsy;\n return branch ? { kind: \"branch\", key, branch } : { kind: \"empty\" };\n}\n\nfunction normalizedHostConditionalBindingValue(\n binding: CompilerHostConditionalBinding,\n value: unknown,\n): unknown {\n return binding.kind === \"text\" ? renderTextValue(value) : value;\n}\n\nfunction applyHostConditionalBindings(\n branch: CompilerHostConditionalBranch,\n instance: CompilerHostInstance,\n): void {\n for (let bindingIndex = 0; bindingIndex < branch.bindings.length; bindingIndex += 1) {\n const binding = branch.bindings[bindingIndex];\n const rawValue = binding.read();\n const value = normalizedHostConditionalBindingValue(binding, rawValue);\n if (Object.is(instance.values[bindingIndex], value)) continue;\n instance.values[bindingIndex] = value;\n const target = findCompilerHostTarget(instance.element, binding.path);\n if (!target) continue;\n if (binding.kind === \"text\") {\n target.textContent = value as string;\n } else if (binding.kind === \"style\" && binding.name) {\n updateStyle(target, binding.name, rawValue);\n } else if (binding.kind === \"attribute\" && binding.name) {\n updateAttribute(target, binding.name, rawValue);\n }\n }\n}\n\nfunction prepareHostConditionalBindings(\n branch: CompilerHostConditionalBranch,\n instance: CompilerHostInstance,\n): boolean {\n for (let bindingIndex = 0; bindingIndex < branch.bindings.length; bindingIndex += 1) {\n const binding = branch.bindings[bindingIndex];\n const rawValue = binding.read();\n const target = findCompilerHostTarget(instance.element, binding.path);\n if (\n !target ||\n (binding.kind !== \"text\" &&\n ((binding.kind !== \"style\" && binding.kind !== \"attribute\") || !binding.name))\n ) {\n return false;\n }\n instance.values[bindingIndex] = [\n target,\n normalizedHostConditionalBindingValue(binding, rawValue),\n ];\n }\n return true;\n}\n\nfunction applyPreparedHostConditionalBindings(\n branch: CompilerHostConditionalBranch,\n instance: CompilerHostInstance,\n): void {\n for (let bindingIndex = 0; bindingIndex < branch.bindings.length; bindingIndex += 1) {\n const binding = branch.bindings[bindingIndex];\n const [target, value] = instance.values[bindingIndex] as readonly [Element, unknown];\n instance.values[bindingIndex] = value;\n if (binding.kind === \"text\") {\n target.textContent = value as string;\n } else if (binding.kind === \"style\") {\n updateStyle(target, binding.name!, value);\n } else {\n updateAttribute(target, binding.name!, value);\n }\n }\n}\n\ninterface CompilerHostTreeScope {\n cleanup(): void;\n update(descriptor: CompilerHostElement): boolean;\n}\n\nconst UNSET_HOST_CONDITIONAL_BINDING = Symbol(\"unset host conditional binding\");\n\nfunction mountCompilerHostTree(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n element: Element,\n descriptor: CompilerHostElement,\n onFallback: () => void,\n): CompilerHostTreeScope | null {\n if (!matchesCompilerHostElement(element, descriptor)) return null;\n if (descriptor.block?.kind === \"conditional-ranges\") {\n const controller = new CompilerNestedConditionalRanges(\n owner,\n element,\n descriptor,\n descriptor.block,\n onFallback,\n );\n try {\n if (controller.adopt()) return controller;\n controller.cleanup();\n return null;\n } catch (error) {\n controller.cleanup();\n throw error;\n }\n }\n if (descriptor.block?.kind === \"keyed-ranges\") {\n const controller = new CompilerNestedKeyedRanges(\n owner,\n element,\n descriptor,\n descriptor.block,\n onFallback,\n );\n try {\n if (controller.adopt()) return controller;\n controller.cleanup();\n return null;\n } catch (error) {\n controller.cleanup();\n throw error;\n }\n }\n if (descriptor.block?.kind === \"mixed-ranges\") {\n const controller = new CompilerNestedMixedRanges(\n owner,\n element,\n descriptor,\n descriptor.block,\n onFallback,\n );\n try {\n if (controller.adopt()) return controller;\n controller.cleanup();\n return null;\n } catch (error) {\n controller.cleanup();\n throw error;\n }\n }\n\n const descriptors = flattenCompilerHostElements(descriptor.children);\n if (descriptors.length !== element.children.length) return null;\n const scopes: CompilerHostTreeScope[] = [];\n for (let index = 0; index < descriptors.length; index += 1) {\n const scope = mountCompilerHostTree(\n owner,\n element.children[index],\n descriptors[index],\n onFallback,\n );\n if (!scope) {\n for (const mounted of scopes) mounted.cleanup();\n return null;\n }\n scopes.push(scope);\n }\n let active = true;\n return {\n update(nextDescriptor) {\n if (!active || nextDescriptor.block || !matchesCompilerHostElement(element, nextDescriptor)) {\n return false;\n }\n const nextChildren = flattenCompilerHostElements(nextDescriptor.children);\n if (nextChildren.length !== scopes.length) return false;\n return scopes.every((scope, index) => scope.update(nextChildren[index]));\n },\n cleanup() {\n if (!active) return;\n active = false;\n for (const scope of scopes) scope.cleanup();\n },\n };\n}\n\nfunction mountCompilerHostInstance(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n element: Element,\n descriptor: CompilerHostElement,\n branch: Pick<CompilerHostConditionalBranch, \"bindings\">,\n onFallback: () => void,\n applyBindingsImmediately = true,\n): CompilerHostInstance | null {\n const scope = mountCompilerHostTree(owner, element, descriptor, onFallback);\n if (!scope) return null;\n const instance: CompilerHostInstance = {\n element,\n scope,\n values: branch.bindings.map(() => UNSET_HOST_CONDITIONAL_BINDING),\n };\n if (!applyBindingsImmediately) return instance;\n try {\n applyHostConditionalBindings(branch as CompilerHostConditionalBranch, instance);\n } catch (error) {\n scope.cleanup();\n throw error;\n }\n return instance;\n}\n\ninterface NestedConditionalRangeInstance {\n key: \"truthy\" | \"falsy\";\n host: CompilerHostInstance;\n}\n\nclass CompilerNestedConditionalRanges implements CompilerHostTreeScope {\n private readonly instances: Array<NestedConditionalRangeInstance | null> = [];\n private readonly staticSegments: Element[][] = [];\n private readonly staticScopes: CompilerHostTreeScope[] = [];\n private readonly staticValues: unknown[] = [];\n private unsubscribe: (() => void) | undefined;\n private active = true;\n\n constructor(\n private readonly owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n private readonly root: Element,\n private host: CompilerHostElement,\n private block: CompilerHostConditionalRanges,\n private readonly onFallback: () => void,\n ) {}\n\n private readSelections(): CompilerHostConditionalPreparedSelection[] | null {\n const selections: CompilerHostConditionalPreparedSelection[] = [];\n for (const range of this.block.ranges) {\n const selection = hostConditionalSelection(range);\n if (selection.kind === \"fallback\") return null;\n selections.push(selection);\n }\n return selections;\n }\n\n private mountStatic(\n elements: readonly Element[],\n descriptors: readonly CompilerHostElement[],\n ): boolean {\n if (elements.length !== descriptors.length) return false;\n for (let index = 0; index < elements.length; index += 1) {\n const scope = mountCompilerHostTree(\n this.owner,\n elements[index],\n descriptors[index],\n this.onFallback,\n );\n if (!scope) return false;\n this.staticScopes.push(scope);\n }\n return true;\n }\n\n adopt(): boolean {\n if (!Number.isSafeInteger(this.block.trailing) || this.block.trailing < 0) return false;\n const selections = this.readSelections();\n if (!selections) return false;\n const elements = [...this.root.children];\n const descriptors = flattenCompilerHostElements(this.host.children);\n if (elements.length !== descriptors.length) return false;\n let cursor = 0;\n\n for (let index = 0; index < this.block.ranges.length; index += 1) {\n const range = this.block.ranges[index];\n if (!Number.isSafeInteger(range.before) || range.before < 0) {\n this.cleanup();\n return false;\n }\n const staticEnd = cursor + range.before;\n if (\n staticEnd > elements.length ||\n !this.mountStatic(elements.slice(cursor, staticEnd), descriptors.slice(cursor, staticEnd))\n ) {\n this.cleanup();\n return false;\n }\n this.staticSegments.push(elements.slice(cursor, staticEnd));\n cursor = staticEnd;\n\n const selection = selections[index];\n if (selection.kind === \"empty\") {\n this.instances.push(null);\n continue;\n }\n const element = elements[cursor];\n if (!element) {\n this.cleanup();\n return false;\n }\n const descriptor = selection.branch.create();\n const host = mountCompilerHostInstance(\n this.owner,\n element,\n descriptor,\n selection.branch,\n this.onFallback,\n false, // Commit only after every sibling range validates.\n );\n if (!host) {\n this.cleanup();\n return false;\n }\n this.instances.push({ key: selection.key, host });\n if (!prepareHostConditionalBindings(selection.branch, host)) {\n this.cleanup();\n return false;\n }\n cursor += 1;\n }\n\n const trailingEnd = cursor + this.block.trailing;\n if (\n trailingEnd !== elements.length ||\n !this.mountStatic(elements.slice(cursor), descriptors.slice(cursor))\n ) {\n this.cleanup();\n return false;\n }\n this.staticSegments.push(elements.slice(cursor));\n if (!applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)) {\n this.cleanup();\n return false;\n }\n for (let index = 0; index < selections.length; index += 1) {\n const selection = selections[index];\n const instance = this.instances[index];\n if (selection.kind === \"branch\" && instance) {\n applyPreparedHostConditionalBindings(selection.branch, instance.host);\n }\n }\n this.unsubscribe = this.owner.subscribe(this.block.id, this.refresh);\n return true;\n }\n\n private anchorAfter(rangeIndex: number): ChildNode | null {\n for (let next = rangeIndex + 1; next < this.instances.length; next += 1) {\n const staticAnchor = this.staticSegments[next]?.[0];\n if (staticAnchor) return staticAnchor;\n const rangeAnchor = this.instances[next]?.host.element;\n if (rangeAnchor) return rangeAnchor;\n }\n return this.staticSegments[this.instances.length]?.[0] || null;\n }\n\n private reconcileRange(\n rangeIndex: number,\n selection: CompilerHostConditionalPreparedSelection,\n ): boolean {\n const previous = this.instances[rangeIndex];\n if (selection.kind === \"empty\") {\n previous?.host.scope?.cleanup();\n previous?.host.element.remove();\n this.instances[rangeIndex] = null;\n return true;\n }\n if (previous?.key === selection.key) {\n const descriptor = selection.branch.create();\n if (!previous.host.scope?.update(descriptor)) return false;\n applyHostConditionalBindings(selection.branch, previous.host);\n return true;\n }\n\n const descriptor = selection.branch.create();\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const host = mountCompilerHostInstance(\n this.owner,\n element,\n descriptor,\n selection.branch,\n this.onFallback,\n );\n if (!host) return false;\n previous?.host.scope?.cleanup();\n if (previous) previous.host.element.replaceWith(element);\n else this.root.insertBefore(element, this.anchorAfter(rangeIndex));\n this.instances[rangeIndex] = { key: selection.key, host };\n return true;\n }\n\n private refresh = (afterCommit?: () => void) => {\n if (!this.active) {\n afterCommit?.();\n return;\n }\n const selections = this.readSelections();\n if (!selections || selections.length !== this.instances.length) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n if (!applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n for (let index = this.instances.length - 1; index >= 0; index -= 1) {\n if (!this.reconcileRange(index, selections[index])) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n }\n afterCommit?.();\n };\n\n private updateStaticScopes(\n descriptor: CompilerHostElement,\n selections: readonly CompilerHostConditionalPreparedSelection[],\n ): boolean {\n const descriptors = flattenCompilerHostElements(descriptor.children);\n let descriptorIndex = 0;\n let scopeIndex = 0;\n for (let rangeIndex = 0; rangeIndex < this.block.ranges.length; rangeIndex += 1) {\n const range = this.block.ranges[rangeIndex];\n for (let index = 0; index < range.before; index += 1) {\n const scope = this.staticScopes[scopeIndex++];\n const child = descriptors[descriptorIndex++];\n if (!scope || !child || !scope.update(child)) return false;\n }\n if (selections[rangeIndex].kind === \"branch\") descriptorIndex += 1;\n }\n for (let index = 0; index < this.block.trailing; index += 1) {\n const scope = this.staticScopes[scopeIndex++];\n const child = descriptors[descriptorIndex++];\n if (!scope || !child || !scope.update(child)) return false;\n }\n return scopeIndex === this.staticScopes.length && descriptorIndex === descriptors.length;\n }\n\n update(descriptor: CompilerHostElement): boolean {\n const block = descriptor.block;\n if (\n !this.active ||\n block?.kind !== \"conditional-ranges\" ||\n block.id !== this.block.id ||\n block.ranges.length !== this.block.ranges.length ||\n block.trailing !== this.block.trailing ||\n block.ranges.some((range, index) => range.before !== this.block.ranges[index].before)\n ) {\n return false;\n }\n this.host = descriptor;\n this.block = block;\n const selections = this.readSelections();\n if (\n !selections ||\n !this.updateStaticScopes(descriptor, selections) ||\n !applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)\n ) {\n return false;\n }\n for (let index = this.instances.length - 1; index >= 0; index -= 1) {\n if (!this.reconcileRange(index, selections[index])) return false;\n }\n return true;\n }\n\n cleanup(): void {\n if (!this.active) return;\n this.active = false;\n this.unsubscribe?.();\n for (const instance of this.instances) instance?.host.scope?.cleanup();\n for (const scope of this.staticScopes) scope.cleanup();\n this.instances.length = 0;\n this.staticSegments.length = 0;\n this.staticScopes.length = 0;\n this.staticValues.length = 0;\n }\n}\n\ninterface NestedReadKeyedRange {\n items: unknown[];\n keys: string[];\n}\n\nclass CompilerNestedKeyedRanges implements CompilerHostTreeScope {\n private readonly instances: Array<Map<string, CompilerKeyedRowInstance>> = [];\n private readonly staticSegments: Element[][] = [];\n private readonly staticScopes: CompilerHostTreeScope[] = [];\n private readonly staticValues: unknown[] = [];\n private unsubscribe: (() => void) | undefined;\n private active = true;\n\n constructor(\n private readonly owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n private readonly root: Element,\n private host: CompilerHostElement,\n private block: CompilerHostKeyedRanges,\n private readonly onFallback: () => void,\n ) {}\n\n private readRange(range: CompilerKeyedRange): NestedReadKeyedRange | null {\n const items = materializeIterable(range.items());\n const keys = items.map((item, index) => keyedRowIdentity(range.rowKey(item, index)));\n return new Set(keys).size === keys.length ? { items, keys } : null;\n }\n\n private readRanges(): NestedReadKeyedRange[] | null {\n const ranges: NestedReadKeyedRange[] = [];\n for (const range of this.block.ranges) {\n const rows = this.readRange(range);\n if (!rows) return null;\n ranges.push(rows);\n }\n return ranges;\n }\n\n private mountStatic(\n elements: readonly Element[],\n descriptors: readonly CompilerHostElement[],\n ): boolean {\n if (elements.length !== descriptors.length) return false;\n for (let index = 0; index < elements.length; index += 1) {\n const scope = mountCompilerHostTree(\n this.owner,\n elements[index],\n descriptors[index],\n this.onFallback,\n );\n if (!scope) return false;\n this.staticScopes.push(scope);\n }\n return true;\n }\n\n adopt(): boolean {\n if (!Number.isSafeInteger(this.block.trailing) || this.block.trailing < 0) return false;\n const rowsByRange = this.readRanges();\n if (!rowsByRange) return false;\n const elements = [...this.root.children];\n const descriptors = flattenCompilerHostElements(materializeCompilerHostChildren(this.host));\n if (elements.length !== descriptors.length) return false;\n const preparedBindings: CompilerPreparedKeyedRowBindingUpdate[][][] = [];\n let cursor = 0;\n\n for (let rangeIndex = 0; rangeIndex < this.block.ranges.length; rangeIndex += 1) {\n const range = this.block.ranges[rangeIndex];\n const rows = rowsByRange[rangeIndex];\n if (!Number.isSafeInteger(range.before) || range.before < 0) {\n this.cleanup();\n return false;\n }\n const staticEnd = cursor + range.before;\n if (\n staticEnd > elements.length ||\n !this.mountStatic(elements.slice(cursor, staticEnd), descriptors.slice(cursor, staticEnd))\n ) {\n this.cleanup();\n return false;\n }\n this.staticSegments.push(elements.slice(cursor, staticEnd));\n cursor = staticEnd;\n\n const instances = new Map<string, CompilerKeyedRowInstance>();\n this.instances.push(instances);\n const rangeBindingUpdates: CompilerPreparedKeyedRowBindingUpdate[][] = [];\n for (let index = 0; index < rows.items.length; index += 1) {\n const element = elements[cursor + index];\n if (!element) {\n this.cleanup();\n return false;\n }\n const descriptor = range.create(rows.items[index], index);\n const scope = mountCompilerHostTree(this.owner, element, descriptor, this.onFallback);\n if (!scope) {\n this.cleanup();\n return false;\n }\n const instance: CompilerKeyedRowInstance = {\n key: rows.keys[index],\n element,\n scope,\n values: range.bindings.map(() => UNSET_KEYED_ROW_BINDING),\n item: rows.items[index],\n index,\n conditionalValues: new Map(),\n };\n let bindingUpdates: CompilerPreparedKeyedRowBindingUpdate[] | undefined;\n try {\n bindingUpdates = prepareKeyedRowBindingUpdates(range, instance, rows.items[index], index);\n } catch (error) {\n scope.cleanup();\n throw error;\n }\n if (!bindingUpdates) {\n scope.cleanup();\n this.cleanup();\n return false;\n }\n instances.set(rows.keys[index], instance);\n rangeBindingUpdates.push(bindingUpdates);\n }\n preparedBindings.push(rangeBindingUpdates);\n cursor += rows.items.length;\n }\n\n const trailingEnd = cursor + this.block.trailing;\n if (\n trailingEnd !== elements.length ||\n !this.mountStatic(elements.slice(cursor), descriptors.slice(cursor))\n ) {\n this.cleanup();\n return false;\n }\n this.staticSegments.push(elements.slice(cursor));\n if (!applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)) {\n this.cleanup();\n return false;\n }\n for (let rangeIndex = 0; rangeIndex < this.block.ranges.length; rangeIndex += 1) {\n const range = this.block.ranges[rangeIndex];\n let rowIndex = 0;\n for (const instance of this.instances[rangeIndex].values()) {\n applyPreparedKeyedRowBindingUpdates(\n range,\n instance,\n preparedBindings[rangeIndex][rowIndex],\n );\n rowIndex += 1;\n }\n }\n this.unsubscribe = this.owner.subscribe(this.block.id, this.refresh);\n return true;\n }\n\n private anchorAfter(rangeIndex: number): ChildNode | null {\n for (let next = rangeIndex + 1; next < this.instances.length; next += 1) {\n const staticAnchor = this.staticSegments[next]?.[0];\n if (staticAnchor) return staticAnchor;\n const rowAnchor = this.instances[next].values().next().value?.element;\n if (rowAnchor) return rowAnchor;\n }\n return this.staticSegments[this.instances.length]?.[0] || null;\n }\n\n private reconcileRange(rangeIndex: number, rows: NestedReadKeyedRange): boolean {\n const range = this.block.ranges[rangeIndex];\n const previous = this.instances[rangeIndex];\n const oldIndices = new Map<string, number>();\n [...previous.keys()].forEach((key, index) => oldIndices.set(key, index));\n const nextKeys = new Set(rows.keys);\n for (const [key, instance] of previous) {\n if (nextKeys.has(key)) continue;\n instance.scope?.cleanup();\n instance.element.remove();\n }\n\n const sequence = rows.keys.map((key) => oldIndices.get(key) ?? -1);\n const stablePositions = longestIncreasingSubsequencePositions(sequence);\n const nextInstances: CompilerKeyedRowInstance[] = [];\n for (let index = 0; index < rows.items.length; index += 1) {\n const key = rows.keys[index];\n const existing = previous.get(key);\n if (existing) {\n const descriptor = range.create(rows.items[index], index);\n if (!existing.scope?.update(descriptor)) return false;\n applyKeyedRowBindings(range, existing, rows.items[index], index);\n existing.item = rows.items[index];\n existing.index = index;\n nextInstances.push(existing);\n continue;\n }\n const descriptor = range.create(rows.items[index], index);\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const scope = mountCompilerHostTree(this.owner, element, descriptor, this.onFallback);\n if (!scope) return false;\n nextInstances.push({\n key,\n element,\n scope,\n values: readKeyedRowBindingValues(range, rows.items[index], index),\n item: rows.items[index],\n index,\n conditionalValues: new Map(),\n });\n }\n\n let anchor = this.anchorAfter(rangeIndex);\n for (let index = nextInstances.length - 1; index >= 0; index -= 1) {\n const instance = nextInstances[index];\n if (\n sequence[index] < 0 ||\n (!stablePositions.has(index) && instance.element.nextSibling !== anchor)\n ) {\n this.root.insertBefore(instance.element, anchor);\n }\n anchor = instance.element;\n }\n this.instances[rangeIndex] = keyedRowInstancesByKey(nextInstances);\n return true;\n }\n\n private refresh = (afterCommit?: () => void) => {\n if (!this.active) {\n afterCommit?.();\n return;\n }\n const rowsByRange = this.readRanges();\n if (!rowsByRange || rowsByRange.length !== this.instances.length) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n if (!applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n const activeElement = this.root.ownerDocument.activeElement;\n const restoreFocus = Boolean(activeElement && this.root.contains(activeElement));\n for (let index = rowsByRange.length - 1; index >= 0; index -= 1) {\n if (!this.reconcileRange(index, rowsByRange[index])) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n }\n if (\n restoreFocus &&\n activeElement?.isConnected &&\n activeElement.ownerDocument.activeElement !== activeElement &&\n \"focus\" in activeElement\n ) {\n (activeElement as HTMLElement).focus({ preventScroll: true });\n }\n afterCommit?.();\n };\n\n private updateStaticScopes(\n descriptor: CompilerHostElement,\n rowsByRange: readonly NestedReadKeyedRange[],\n ): boolean {\n const descriptors = flattenCompilerHostElements(materializeCompilerHostChildren(descriptor));\n let descriptorIndex = 0;\n let scopeIndex = 0;\n for (let rangeIndex = 0; rangeIndex < this.block.ranges.length; rangeIndex += 1) {\n const range = this.block.ranges[rangeIndex];\n for (let index = 0; index < range.before; index += 1) {\n const scope = this.staticScopes[scopeIndex++];\n const child = descriptors[descriptorIndex++];\n if (!scope || !child || !scope.update(child)) return false;\n }\n descriptorIndex += rowsByRange[rangeIndex].items.length;\n }\n for (let index = 0; index < this.block.trailing; index += 1) {\n const scope = this.staticScopes[scopeIndex++];\n const child = descriptors[descriptorIndex++];\n if (!scope || !child || !scope.update(child)) return false;\n }\n return scopeIndex === this.staticScopes.length && descriptorIndex === descriptors.length;\n }\n\n update(descriptor: CompilerHostElement): boolean {\n const block = descriptor.block;\n if (\n !this.active ||\n block?.kind !== \"keyed-ranges\" ||\n block.id !== this.block.id ||\n block.ranges.length !== this.block.ranges.length ||\n block.trailing !== this.block.trailing ||\n block.ranges.some((range, index) => range.before !== this.block.ranges[index].before)\n ) {\n return false;\n }\n this.host = descriptor;\n this.block = block;\n const rowsByRange = this.readRanges();\n if (\n !rowsByRange ||\n rowsByRange.length !== this.instances.length ||\n !this.updateStaticScopes(descriptor, rowsByRange) ||\n !applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)\n ) {\n return false;\n }\n for (let index = rowsByRange.length - 1; index >= 0; index -= 1) {\n if (!this.reconcileRange(index, rowsByRange[index])) return false;\n }\n return true;\n }\n\n cleanup(): void {\n if (!this.active) return;\n this.active = false;\n this.unsubscribe?.();\n for (const instances of this.instances) {\n for (const instance of instances.values()) instance.scope?.cleanup();\n }\n for (const scope of this.staticScopes) scope.cleanup();\n this.instances.length = 0;\n this.staticSegments.length = 0;\n this.staticScopes.length = 0;\n this.staticValues.length = 0;\n }\n}\n\ntype NestedMixedRangeSnapshot =\n | { kind: \"conditional\"; selection: CompilerHostConditionalPreparedSelection }\n | { kind: \"keyed\"; rows: NestedReadKeyedRange };\n\ntype NestedMixedRangeInstance =\n | { kind: \"conditional\"; value: NestedConditionalRangeInstance | null }\n | { kind: \"keyed\"; value: Map<string, CompilerKeyedRowInstance> };\n\nclass CompilerNestedMixedRanges implements CompilerHostTreeScope {\n private readonly instances: NestedMixedRangeInstance[] = [];\n private readonly staticSegments: Element[][] = [];\n private readonly staticScopes: CompilerHostTreeScope[] = [];\n private readonly staticValues: unknown[] = [];\n private unsubscribe: (() => void) | undefined;\n private active = true;\n\n constructor(\n private readonly owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n private readonly root: Element,\n private host: CompilerHostElement,\n private block: CompilerHostMixedRanges,\n private readonly onFallback: () => void,\n ) {}\n\n private readSnapshots(): NestedMixedRangeSnapshot[] | null {\n const snapshots: NestedMixedRangeSnapshot[] = [];\n for (const range of this.block.ranges) {\n if (range.kind === \"conditional\") {\n const selection = hostConditionalSelection(range);\n if (selection.kind === \"fallback\") return null;\n snapshots.push({ kind: \"conditional\", selection });\n continue;\n }\n const items = materializeIterable(range.items());\n const keys = items.map((item, index) => keyedRowIdentity(range.rowKey(item, index)));\n if (new Set(keys).size !== keys.length) return null;\n snapshots.push({ kind: \"keyed\", rows: { items, keys } });\n }\n return snapshots;\n }\n\n private mountStatic(\n elements: readonly Element[],\n descriptors: readonly CompilerHostElement[],\n ): boolean {\n if (elements.length !== descriptors.length) return false;\n for (let index = 0; index < elements.length; index += 1) {\n const scope = mountCompilerHostTree(\n this.owner,\n elements[index],\n descriptors[index],\n this.onFallback,\n );\n if (!scope) return false;\n this.staticScopes.push(scope);\n }\n return true;\n }\n\n adopt(): boolean {\n if (!Number.isSafeInteger(this.block.trailing) || this.block.trailing < 0) return false;\n const snapshots = this.readSnapshots();\n if (!snapshots) return false;\n const elements = [...this.root.children];\n const descriptors = flattenCompilerHostElements(this.host.children);\n if (elements.length !== descriptors.length) return false;\n const preparedKeyedBindings: Array<\n readonly (readonly CompilerPreparedKeyedRowBindingUpdate[])[] | undefined\n > = [];\n let cursor = 0;\n\n for (let rangeIndex = 0; rangeIndex < this.block.ranges.length; rangeIndex += 1) {\n const range = this.block.ranges[rangeIndex];\n const snapshot = snapshots[rangeIndex];\n if (!Number.isSafeInteger(range.before) || range.before < 0 || range.kind !== snapshot.kind) {\n this.cleanup();\n return false;\n }\n const staticEnd = cursor + range.before;\n if (\n staticEnd > elements.length ||\n !this.mountStatic(elements.slice(cursor, staticEnd), descriptors.slice(cursor, staticEnd))\n ) {\n this.cleanup();\n return false;\n }\n this.staticSegments.push(elements.slice(cursor, staticEnd));\n cursor = staticEnd;\n\n if (range.kind === \"conditional\" && snapshot.kind === \"conditional\") {\n if (snapshot.selection.kind === \"empty\") {\n this.instances.push({ kind: \"conditional\", value: null });\n continue;\n }\n const element = elements[cursor];\n if (!element) {\n this.cleanup();\n return false;\n }\n const descriptor = snapshot.selection.branch.create();\n const host = mountCompilerHostInstance(\n this.owner,\n element,\n descriptor,\n snapshot.selection.branch,\n this.onFallback,\n false, // Commit only after every sibling range validates.\n );\n if (!host) {\n this.cleanup();\n return false;\n }\n this.instances.push({\n kind: \"conditional\",\n value: { key: snapshot.selection.key, host },\n });\n if (!prepareHostConditionalBindings(snapshot.selection.branch, host)) {\n this.cleanup();\n return false;\n }\n cursor += 1;\n continue;\n }\n\n if (range.kind !== \"keyed\" || snapshot.kind !== \"keyed\") {\n this.cleanup();\n return false;\n }\n const keyedInstances = new Map<string, CompilerKeyedRowInstance>();\n this.instances.push({ kind: \"keyed\", value: keyedInstances });\n const keyedBindingUpdates: CompilerPreparedKeyedRowBindingUpdate[][] = [];\n for (let index = 0; index < snapshot.rows.items.length; index += 1) {\n const element = elements[cursor + index];\n if (!element) {\n this.cleanup();\n return false;\n }\n const descriptor = range.create(snapshot.rows.items[index], index);\n const scope = mountCompilerHostTree(this.owner, element, descriptor, this.onFallback);\n if (!scope) {\n this.cleanup();\n return false;\n }\n const instance: CompilerKeyedRowInstance = {\n key: snapshot.rows.keys[index],\n element,\n scope,\n values: range.bindings.map(() => UNSET_KEYED_ROW_BINDING),\n item: snapshot.rows.items[index],\n index,\n conditionalValues: new Map(),\n };\n let bindingUpdates: CompilerPreparedKeyedRowBindingUpdate[] | undefined;\n try {\n bindingUpdates = prepareKeyedRowBindingUpdates(\n range,\n instance,\n snapshot.rows.items[index],\n index,\n );\n } catch (error) {\n scope.cleanup();\n throw error;\n }\n if (!bindingUpdates) {\n scope.cleanup();\n this.cleanup();\n return false;\n }\n keyedInstances.set(snapshot.rows.keys[index], instance);\n keyedBindingUpdates.push(bindingUpdates);\n }\n preparedKeyedBindings[rangeIndex] = keyedBindingUpdates;\n cursor += snapshot.rows.items.length;\n }\n\n const trailingEnd = cursor + this.block.trailing;\n if (\n trailingEnd !== elements.length ||\n !this.mountStatic(elements.slice(cursor), descriptors.slice(cursor))\n ) {\n this.cleanup();\n return false;\n }\n this.staticSegments.push(elements.slice(cursor));\n if (!applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)) {\n this.cleanup();\n return false;\n }\n for (let index = 0; index < snapshots.length; index += 1) {\n const snapshot = snapshots[index];\n const instance = this.instances[index];\n if (\n snapshot.kind === \"conditional\" &&\n snapshot.selection.kind === \"branch\" &&\n instance?.kind === \"conditional\" &&\n instance.value\n ) {\n applyPreparedHostConditionalBindings(snapshot.selection.branch, instance.value.host);\n } else if (snapshot.kind === \"keyed\" && instance?.kind === \"keyed\") {\n const range = this.block.ranges[index];\n const bindingUpdates = preparedKeyedBindings[index]!;\n if (range.kind !== \"keyed\") continue;\n let rowIndex = 0;\n for (const row of instance.value.values()) {\n applyPreparedKeyedRowBindingUpdates(range, row, bindingUpdates[rowIndex]);\n rowIndex += 1;\n }\n }\n }\n this.unsubscribe = this.owner.subscribe(this.block.id, this.refresh);\n return true;\n }\n\n private firstInstanceElement(instance: NestedMixedRangeInstance): Element | null {\n if (instance.kind === \"conditional\") return instance.value?.host.element || null;\n return instance.value.values().next().value?.element || null;\n }\n\n private anchorAfter(rangeIndex: number): ChildNode | null {\n for (let next = rangeIndex + 1; next < this.instances.length; next += 1) {\n const staticAnchor = this.staticSegments[next]?.[0];\n if (staticAnchor) return staticAnchor;\n const rangeAnchor = this.firstInstanceElement(this.instances[next]);\n if (rangeAnchor) return rangeAnchor;\n }\n return this.staticSegments[this.instances.length]?.[0] || null;\n }\n\n private reconcileConditional(\n rangeIndex: number,\n range: CompilerMixedRange & { kind: \"conditional\" },\n selection: CompilerHostConditionalPreparedSelection,\n ): boolean {\n const instance = this.instances[rangeIndex];\n if (instance.kind !== \"conditional\") return false;\n const previous = instance.value;\n if (selection.kind === \"empty\") {\n previous?.host.scope?.cleanup();\n previous?.host.element.remove();\n instance.value = null;\n return true;\n }\n if (previous?.key === selection.key) {\n const descriptor = selection.branch.create();\n if (!previous.host.scope?.update(descriptor)) return false;\n applyHostConditionalBindings(selection.branch, previous.host);\n return true;\n }\n const descriptor = selection.branch.create();\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const host = mountCompilerHostInstance(\n this.owner,\n element,\n descriptor,\n selection.branch,\n this.onFallback,\n );\n if (!host) return false;\n previous?.host.scope?.cleanup();\n if (previous) previous.host.element.replaceWith(element);\n else this.root.insertBefore(element, this.anchorAfter(rangeIndex));\n instance.value = { key: selection.key, host };\n return true;\n }\n\n private reconcileKeyed(\n rangeIndex: number,\n range: CompilerMixedRange & { kind: \"keyed\" },\n rows: NestedReadKeyedRange,\n ): boolean {\n const instance = this.instances[rangeIndex];\n if (instance.kind !== \"keyed\") return false;\n const previous = instance.value;\n const oldIndices = new Map<string, number>();\n [...previous.keys()].forEach((key, index) => oldIndices.set(key, index));\n const nextKeys = new Set(rows.keys);\n for (const [key, row] of previous) {\n if (nextKeys.has(key)) continue;\n row.scope?.cleanup();\n row.element.remove();\n }\n\n const sequence = rows.keys.map((key) => oldIndices.get(key) ?? -1);\n const stablePositions = longestIncreasingSubsequencePositions(sequence);\n const nextInstances: CompilerKeyedRowInstance[] = [];\n for (let index = 0; index < rows.items.length; index += 1) {\n const key = rows.keys[index];\n const existing = previous.get(key);\n if (existing) {\n const descriptor = range.create(rows.items[index], index);\n if (!existing.scope?.update(descriptor)) return false;\n applyKeyedRowBindings(range, existing, rows.items[index], index);\n existing.item = rows.items[index];\n existing.index = index;\n nextInstances.push(existing);\n continue;\n }\n const descriptor = range.create(rows.items[index], index);\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const scope = mountCompilerHostTree(this.owner, element, descriptor, this.onFallback);\n if (!scope) return false;\n let values: unknown[];\n try {\n values = readKeyedRowBindingValues(range, rows.items[index], index);\n } catch (error) {\n scope.cleanup();\n throw error;\n }\n nextInstances.push({\n key,\n element,\n scope,\n values,\n item: rows.items[index],\n index,\n conditionalValues: new Map(),\n });\n }\n\n let anchor = this.anchorAfter(rangeIndex);\n for (let index = nextInstances.length - 1; index >= 0; index -= 1) {\n const row = nextInstances[index];\n if (\n sequence[index] < 0 ||\n (!stablePositions.has(index) && row.element.nextSibling !== anchor)\n ) {\n this.root.insertBefore(row.element, anchor);\n }\n anchor = row.element;\n }\n instance.value = keyedRowInstancesByKey(nextInstances);\n return true;\n }\n\n private reconcileRange(rangeIndex: number, snapshot: NestedMixedRangeSnapshot): boolean {\n const range = this.block.ranges[rangeIndex];\n if (range.kind !== snapshot.kind) return false;\n return range.kind === \"conditional\" && snapshot.kind === \"conditional\"\n ? this.reconcileConditional(rangeIndex, range, snapshot.selection)\n : range.kind === \"keyed\" && snapshot.kind === \"keyed\"\n ? this.reconcileKeyed(rangeIndex, range, snapshot.rows)\n : false;\n }\n\n private refresh = (afterCommit?: () => void) => {\n if (!this.active) {\n afterCommit?.();\n return;\n }\n const snapshots = this.readSnapshots();\n if (!snapshots || snapshots.length !== this.instances.length) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n if (!applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n const activeElement = this.root.ownerDocument.activeElement;\n const restoreFocus = Boolean(activeElement && this.root.contains(activeElement));\n for (let index = snapshots.length - 1; index >= 0; index -= 1) {\n if (!this.reconcileRange(index, snapshots[index])) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n }\n if (\n restoreFocus &&\n activeElement?.isConnected &&\n activeElement.ownerDocument.activeElement !== activeElement &&\n \"focus\" in activeElement\n ) {\n (activeElement as HTMLElement).focus({ preventScroll: true });\n }\n afterCommit?.();\n };\n\n private updateStaticScopes(\n descriptor: CompilerHostElement,\n snapshots: readonly NestedMixedRangeSnapshot[],\n ): boolean {\n const descriptors = flattenCompilerHostElements(descriptor.children);\n let descriptorIndex = 0;\n let scopeIndex = 0;\n for (let rangeIndex = 0; rangeIndex < this.block.ranges.length; rangeIndex += 1) {\n const range = this.block.ranges[rangeIndex];\n for (let index = 0; index < range.before; index += 1) {\n const scope = this.staticScopes[scopeIndex++];\n const child = descriptors[descriptorIndex++];\n if (!scope || !child || !scope.update(child)) return false;\n }\n const snapshot = snapshots[rangeIndex];\n if (snapshot.kind === \"conditional\") {\n if (snapshot.selection.kind === \"branch\") descriptorIndex += 1;\n } else {\n descriptorIndex += snapshot.rows.items.length;\n }\n }\n for (let index = 0; index < this.block.trailing; index += 1) {\n const scope = this.staticScopes[scopeIndex++];\n const child = descriptors[descriptorIndex++];\n if (!scope || !child || !scope.update(child)) return false;\n }\n return scopeIndex === this.staticScopes.length && descriptorIndex === descriptors.length;\n }\n\n update(descriptor: CompilerHostElement): boolean {\n const block = descriptor.block;\n if (\n !this.active ||\n block?.kind !== \"mixed-ranges\" ||\n block.id !== this.block.id ||\n block.ranges.length !== this.block.ranges.length ||\n block.trailing !== this.block.trailing ||\n block.ranges.some(\n (range, index) =>\n range.kind !== this.block.ranges[index].kind ||\n range.before !== this.block.ranges[index].before,\n )\n ) {\n return false;\n }\n this.host = descriptor;\n this.block = block;\n const snapshots = this.readSnapshots();\n if (\n !snapshots ||\n snapshots.length !== this.instances.length ||\n !this.updateStaticScopes(descriptor, snapshots) ||\n !applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)\n ) {\n return false;\n }\n for (let index = snapshots.length - 1; index >= 0; index -= 1) {\n if (!this.reconcileRange(index, snapshots[index])) return false;\n }\n return true;\n }\n\n cleanup(): void {\n if (!this.active) return;\n this.active = false;\n this.unsubscribe?.();\n for (const instance of this.instances) {\n if (instance.kind === \"conditional\") {\n instance.value?.host.scope?.cleanup();\n } else {\n for (const row of instance.value.values()) row.scope?.cleanup();\n }\n }\n for (const scope of this.staticScopes) scope.cleanup();\n this.instances.length = 0;\n this.staticSegments.length = 0;\n this.staticScopes.length = 0;\n this.staticValues.length = 0;\n }\n}\n\nfunction createHostConditionalBlockComponent(\n owner: Pick<CompilerRuntimeFeatureOwner, \"subscribe\" | \"getDefinitionVersion\">,\n): React.ComponentType<CompilerHostConditionalBlockProps> {\n interface State {\n fallback: boolean;\n }\n\n class FarmHostConditionalBlock extends React.Component<CompilerHostConditionalBlockProps, State> {\n static displayName = \"FarmCompiledHostConditional\";\n\n state: State = { fallback: false };\n private root: Element | null = null;\n private mounted = false;\n private fallbackRequested = false;\n private fallbackVersion = 0;\n private propSyncQueued = false;\n private currentProps = this.props;\n declare private stop: (() => void) | undefined;\n declare private id: number | undefined;\n private readonly fallbackUnsubscribers = new Map<number, () => void>();\n private fallbackKeysWereUnsafe = false;\n private activeBranch: \"truthy\" | \"falsy\" | null = null;\n private instance: CompilerHostInstance | null = null;\n private definitionVersion = owner.getDefinitionVersion?.();\n\n private requestNestedFallback = () => {\n this.instance?.scope?.cleanup();\n this.activateFallback();\n };\n\n private refreshFallbackDescendant: CompilerBlockRefresh = (afterCommit) => {\n this.prepareFallbackUpdate();\n this.forceUpdate(afterCommit);\n };\n\n private subscribeFallbackDescendants(): void {\n const ids = new Set<number>();\n const selection = hostConditionalSelection(this.currentProps);\n if (selection.kind === \"branch\") {\n collectActiveCompilerHostBlockIds(selection.branch.create(), ids);\n }\n ids.delete(this.currentProps.id);\n reconcileCompilerFallbackSubscriptions(\n owner,\n this.fallbackUnsubscribers,\n ids,\n this.refreshFallbackDescendant,\n );\n }\n\n private hasUnsafeFallbackKeys(): boolean {\n try {\n const selection = hostConditionalSelection(this.currentProps);\n return (\n selection.kind === \"branch\" && hasUnsafeCompilerFallbackKeys(selection.branch.create())\n );\n } catch {\n return true;\n }\n }\n\n private prepareFallbackUpdate(): void {\n const unsafeKeys = this.hasUnsafeFallbackKeys();\n if (unsafeKeys || this.fallbackKeysWereUnsafe) this.fallbackVersion += 1;\n this.fallbackKeysWereUnsafe = unsafeKeys;\n }\n\n private captureRoot = (root: Element | null) => {\n this.root = root;\n };\n\n private adopt(): boolean {\n if (!this.root) return false;\n const selection = hostConditionalSelection(this.currentProps);\n if (selection.kind === \"fallback\") return false;\n if (selection.kind === \"empty\") {\n if (this.root.childNodes.length !== 0) return false;\n this.instance?.scope?.cleanup();\n this.activeBranch = null;\n this.instance = null;\n return true;\n }\n if (\n this.root.childNodes.length !== 1 ||\n this.root.firstElementChild === null ||\n this.root.firstElementChild !== this.root.firstChild\n ) {\n return false;\n }\n const descriptor = selection.branch.create();\n const element = this.root.firstElementChild;\n if (!matchesCompilerHostElement(element, descriptor)) return false;\n const instance = mountCompilerHostInstance(\n owner,\n element,\n descriptor,\n selection.branch,\n this.requestNestedFallback,\n );\n if (!instance) return false;\n this.instance?.scope?.cleanup();\n this.activeBranch = selection.key;\n this.instance = instance;\n return true;\n }\n\n private activateFallback(afterCommit?: () => void): void {\n if (!this.mounted || this.state.fallback || this.fallbackRequested) {\n afterCommit?.();\n return;\n }\n this.fallbackRequested = true;\n this.instance?.scope?.cleanup();\n this.instance = null;\n this.activeBranch = null;\n this.subscribeFallbackDescendants();\n this.fallbackKeysWereUnsafe = this.hasUnsafeFallbackKeys();\n // One key change on entry: the compiled path mutated the DOM behind\n // React's back, so the first fallback render must rebuild the subtree.\n this.fallbackVersion += 1;\n this.setState({ fallback: true }, afterCommit);\n }\n\n private reconcile(afterCommit?: () => void): void {\n if (!this.mounted || !this.root) {\n afterCommit?.();\n return;\n }\n if (this.state.fallback) {\n this.prepareFallbackUpdate();\n this.forceUpdate(afterCommit);\n return;\n }\n\n const selection = hostConditionalSelection(this.currentProps);\n if (selection.kind === \"fallback\") {\n this.activateFallback(afterCommit);\n return;\n }\n if (selection.kind === \"empty\") {\n this.instance?.scope?.cleanup();\n if (this.instance) this.instance.element.remove();\n this.activeBranch = null;\n this.instance = null;\n afterCommit?.();\n return;\n }\n if (this.activeBranch === selection.key && this.instance) {\n const descriptor = selection.branch.create();\n const scope = mountCompilerHostTree(\n owner,\n this.instance.element,\n descriptor,\n this.requestNestedFallback,\n );\n if (!scope) {\n this.activateFallback(afterCommit);\n return;\n }\n this.instance.scope?.cleanup();\n this.instance.scope = scope;\n applyHostConditionalBindings(selection.branch, this.instance);\n afterCommit?.();\n return;\n }\n\n const descriptor = selection.branch.create();\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const instance = mountCompilerHostInstance(\n owner,\n element,\n descriptor,\n selection.branch,\n this.requestNestedFallback,\n );\n if (!instance) {\n this.activateFallback(afterCommit);\n return;\n }\n this.instance?.scope?.cleanup();\n this.root.replaceChildren(element);\n this.activeBranch = selection.key;\n this.instance = instance;\n afterCommit?.();\n }\n\n private refresh = (afterCommit?: () => void) => {\n this.reconcile(afterCommit);\n };\n\n private listen(): void {\n const id = this.currentProps.id;\n const stop = this.stop;\n if (this.id === id) return;\n stop?.();\n this.stop = owner.subscribe(id, this.refresh);\n this.id = id;\n }\n\n private schedulePropSync(): void {\n if (this.propSyncQueued) return;\n this.propSyncQueued = true;\n queueMicrotask(() => {\n this.propSyncQueued = false;\n if (this.mounted && !this.state.fallback) {\n this.listen();\n this.reconcile();\n }\n });\n }\n\n shouldComponentUpdate(nextProps: CompilerHostConditionalBlockProps, nextState: State): boolean {\n const definitionChanged = this.definitionVersion !== owner.getDefinitionVersion?.();\n this.currentProps = nextProps;\n if (this.state.fallback && nextState.fallback) this.prepareFallbackUpdate();\n if (nextState.fallback || this.state.fallback) return true;\n if (definitionChanged) return true;\n this.schedulePropSync();\n return false;\n }\n\n componentDidMount(): void {\n this.mounted = true;\n this.listen();\n // Replay must restore nested listeners even before the fallback state update commits.\n if (this.state.fallback || this.fallbackRequested) {\n this.subscribeFallbackDescendants();\n this.fallbackKeysWereUnsafe = this.hasUnsafeFallbackKeys();\n } else if (!this.adopt()) this.activateFallback();\n }\n\n componentDidUpdate(): void {\n this.listen();\n const nextDefinitionVersion = owner.getDefinitionVersion?.();\n const definitionChanged = this.definitionVersion !== nextDefinitionVersion;\n this.definitionVersion = nextDefinitionVersion;\n if (this.state.fallback) {\n this.subscribeFallbackDescendants();\n } else if (definitionChanged && !this.adopt()) {\n this.activateFallback();\n }\n }\n\n componentWillUnmount(): void {\n this.mounted = false;\n const stop = this.stop;\n stop?.();\n this.id = undefined;\n clearCompilerFallbackSubscriptions(this.fallbackUnsubscribers);\n this.fallbackKeysWereUnsafe = false;\n this.instance?.scope?.cleanup();\n // React 18 replays lifecycles without detaching refs; captureRoot owns ref cleanup.\n this.activeBranch = null;\n this.instance = null;\n }\n\n render(): React.ReactNode {\n const container = this.currentProps.render();\n if (!React.isValidElement(container) || typeof container.type !== \"string\") {\n throw new TypeError(\n `Compiled host conditional ${this.currentProps.id} must own one host container.`,\n );\n }\n return React.cloneElement(container, {\n key: this.state.fallback ? `react-${this.fallbackVersion}` : \"compiled\",\n ref: this.captureRoot,\n } as React.Attributes);\n }\n }\n\n return FarmHostConditionalBlock;\n}\n\nfunction createConditionalRangesBlockComponent(\n owner: Pick<CompilerRuntimeFeatureOwner, \"subscribe\" | \"getDefinitionVersion\">,\n): React.ComponentType<CompilerConditionalRangesBlockProps> {\n interface State {\n fallback: boolean;\n }\n\n interface ConditionalRangeInstance {\n key: \"truthy\" | \"falsy\";\n host: CompilerHostInstance;\n }\n\n class FarmConditionalRangesBlock extends React.Component<\n CompilerConditionalRangesBlockProps,\n State\n > {\n static displayName = \"FarmCompiledConditionalRanges\";\n\n state: State = { fallback: false };\n private root: Element | null = null;\n private mounted = false;\n private fallbackRequested = false;\n private fallbackVersion = 0;\n private propFallbackQueued = false;\n private currentProps = this.props;\n declare private stop: (() => void) | undefined;\n declare private id: number | undefined;\n private readonly fallbackUnsubscribers = new Map<number, () => void>();\n private fallbackKeysWereUnsafe = false;\n private rangeInstances: Array<ConditionalRangeInstance | null> = [];\n private staticSegments: Element[][] = [];\n private readonly staticValues: unknown[] = [];\n private definitionVersion = owner.getDefinitionVersion?.();\n\n private requestNestedFallback = () => {\n for (const instance of this.rangeInstances) instance?.host.scope?.cleanup();\n this.activateFallback();\n };\n\n private refreshFallbackDescendant: CompilerBlockRefresh = (afterCommit) => {\n this.prepareFallbackUpdate();\n this.forceUpdate(afterCommit);\n };\n\n private subscribeFallbackDescendants(): void {\n const ids = new Set<number>();\n for (const range of this.currentProps.ranges) {\n const selection = hostConditionalSelection(range);\n if (selection.kind === \"branch\") {\n collectActiveCompilerHostBlockIds(selection.branch.create(), ids);\n }\n }\n ids.delete(this.currentProps.id);\n reconcileCompilerFallbackSubscriptions(\n owner,\n this.fallbackUnsubscribers,\n ids,\n this.refreshFallbackDescendant,\n );\n }\n\n private hasUnsafeFallbackKeys(): boolean {\n try {\n for (const range of this.currentProps.ranges) {\n const selection = hostConditionalSelection(range);\n if (\n selection.kind === \"branch\" &&\n hasUnsafeCompilerFallbackKeys(selection.branch.create())\n ) {\n return true;\n }\n }\n return false;\n } catch {\n return true;\n }\n }\n\n private prepareFallbackUpdate(): void {\n const unsafeKeys = this.hasUnsafeFallbackKeys();\n if (unsafeKeys || this.fallbackKeysWereUnsafe) this.fallbackVersion += 1;\n this.fallbackKeysWereUnsafe = unsafeKeys;\n }\n\n private captureRoot = (root: Element | null) => {\n this.root = root;\n this.currentProps.rootRef?.(root);\n };\n\n private readSelections(\n props: CompilerConditionalRangesBlockProps,\n ): CompilerHostConditionalPreparedSelection[] | null {\n const selections: CompilerHostConditionalPreparedSelection[] = [];\n for (const range of props.ranges) {\n const selection = hostConditionalSelection(range);\n if (selection.kind === \"fallback\") return null;\n selections.push(selection);\n }\n return selections;\n }\n\n private adopt(props: CompilerConditionalRangesBlockProps = this.currentProps): boolean {\n if (!this.root || !Number.isSafeInteger(props.trailing) || props.trailing < 0) return false;\n const selections = this.readSelections(props);\n if (!selections) return false;\n const elements = [...this.root.children];\n const staticSegments: Element[][] = [];\n const instances: Array<ConditionalRangeInstance | null> = [];\n const staticValues = this.staticValues.slice();\n const cleanupInstances = () => {\n for (const instance of instances) instance?.host.scope?.cleanup();\n };\n let cursor = 0;\n\n for (let rangeIndex = 0; rangeIndex < props.ranges.length; rangeIndex += 1) {\n const range = props.ranges[rangeIndex];\n if (!Number.isSafeInteger(range.before) || range.before < 0) {\n cleanupInstances();\n return false;\n }\n const staticEnd = cursor + range.before;\n if (staticEnd > elements.length) {\n cleanupInstances();\n return false;\n }\n staticSegments.push(elements.slice(cursor, staticEnd));\n cursor = staticEnd;\n\n const selection = selections[rangeIndex];\n if (selection.kind === \"empty\") {\n instances.push(null);\n continue;\n }\n const element = elements[cursor];\n if (!element) {\n cleanupInstances();\n return false;\n }\n const descriptor = selection.branch.create();\n if (!matchesCompilerHostElement(element, descriptor)) {\n cleanupInstances();\n return false;\n }\n const host = mountCompilerHostInstance(\n owner,\n element,\n descriptor,\n selection.branch,\n this.requestNestedFallback,\n false, // Commit only after every sibling range validates.\n );\n if (!host) {\n cleanupInstances();\n return false;\n }\n instances.push({\n key: selection.key,\n host,\n });\n try {\n if (!prepareHostConditionalBindings(selection.branch, host)) {\n cleanupInstances();\n return false;\n }\n } catch (error) {\n cleanupInstances();\n throw error;\n }\n cursor += 1;\n }\n\n if (cursor + props.trailing !== elements.length) {\n cleanupInstances();\n return false;\n }\n staticSegments.push(elements.slice(cursor));\n try {\n if (!applyStaticRangeBindings(props.bindings, staticSegments, staticValues)) {\n cleanupInstances();\n return false;\n }\n for (let index = 0; index < selections.length; index += 1) {\n const selection = selections[index];\n const instance = instances[index];\n if (selection.kind === \"branch\" && instance) {\n applyPreparedHostConditionalBindings(selection.branch, instance.host);\n }\n }\n } catch (error) {\n cleanupInstances();\n throw error;\n }\n for (const instance of this.rangeInstances) instance?.host.scope?.cleanup();\n this.staticSegments = staticSegments;\n this.rangeInstances = instances;\n this.staticValues.length = 0;\n this.staticValues.push(...staticValues);\n return true;\n }\n\n private anchorAfter(rangeIndex: number): ChildNode | null {\n for (let next = rangeIndex + 1; next < this.rangeInstances.length; next += 1) {\n const staticAnchor = this.staticSegments[next]?.[0];\n if (staticAnchor) return staticAnchor;\n const rangeAnchor = this.rangeInstances[next]?.host.element;\n if (rangeAnchor) return rangeAnchor;\n }\n return this.staticSegments[this.rangeInstances.length]?.[0] || null;\n }\n\n private reconcileRange(\n rangeIndex: number,\n selection: CompilerHostConditionalPreparedSelection,\n ): boolean {\n if (!this.root) return false;\n const previous = this.rangeInstances[rangeIndex];\n if (selection.kind === \"empty\") {\n previous?.host.scope?.cleanup();\n previous?.host.element.remove();\n this.rangeInstances[rangeIndex] = null;\n return true;\n }\n if (previous?.key === selection.key) {\n const descriptor = selection.branch.create();\n const scope = mountCompilerHostTree(\n owner,\n previous.host.element,\n descriptor,\n this.requestNestedFallback,\n );\n if (!scope) {\n this.requestNestedFallback();\n return false;\n }\n previous.host.scope?.cleanup();\n previous.host.scope = scope;\n applyHostConditionalBindings(selection.branch, previous.host);\n return true;\n }\n\n const descriptor = selection.branch.create();\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const host = mountCompilerHostInstance(\n owner,\n element,\n descriptor,\n selection.branch,\n this.requestNestedFallback,\n );\n if (!host) {\n this.requestNestedFallback();\n return false;\n }\n previous?.host.scope?.cleanup();\n if (previous) previous.host.element.replaceWith(element);\n else this.root.insertBefore(element, this.anchorAfter(rangeIndex));\n this.rangeInstances[rangeIndex] = {\n key: selection.key,\n host,\n };\n return true;\n }\n\n private reconcile(afterCommit?: () => void): void {\n if (!this.mounted || !this.root) {\n afterCommit?.();\n return;\n }\n if (this.state.fallback) {\n this.prepareFallbackUpdate();\n this.forceUpdate(afterCommit);\n return;\n }\n if (this.currentProps.ranges.length !== this.rangeInstances.length) {\n this.activateFallback(afterCommit);\n return;\n }\n const selections = this.readSelections(this.currentProps);\n if (!selections) {\n this.activateFallback(afterCommit);\n return;\n }\n if (\n !applyStaticRangeBindings(\n this.currentProps.bindings,\n this.staticSegments,\n this.staticValues,\n )\n ) {\n this.activateFallback(afterCommit);\n return;\n }\n\n for (let rangeIndex = this.rangeInstances.length - 1; rangeIndex >= 0; rangeIndex -= 1) {\n if (!this.reconcileRange(rangeIndex, selections[rangeIndex])) {\n afterCommit?.();\n return;\n }\n }\n afterCommit?.();\n }\n\n private refresh = (afterCommit?: () => void) => {\n this.reconcile(afterCommit);\n };\n\n private listen(): void {\n const id = this.currentProps.id;\n const stop = this.stop;\n if (this.id === id) return;\n stop?.();\n this.stop = owner.subscribe(id, this.refresh);\n this.id = id;\n }\n\n private activateFallback(afterCommit?: () => void): void {\n if (!this.mounted || this.state.fallback || this.fallbackRequested) {\n afterCommit?.();\n return;\n }\n this.fallbackRequested = true;\n for (const instance of this.rangeInstances) instance?.host.scope?.cleanup();\n this.subscribeFallbackDescendants();\n this.fallbackKeysWereUnsafe = this.hasUnsafeFallbackKeys();\n this.setState({ fallback: true }, afterCommit);\n }\n\n private schedulePropFallback(): void {\n if (this.propFallbackQueued) return;\n this.propFallbackQueued = true;\n queueMicrotask(() => {\n this.propFallbackQueued = false;\n if (this.mounted && !this.state.fallback) {\n this.listen();\n this.activateFallback();\n }\n });\n }\n\n shouldComponentUpdate(\n nextProps: CompilerConditionalRangesBlockProps,\n nextState: State,\n ): boolean {\n const definitionChanged = this.definitionVersion !== owner.getDefinitionVersion?.();\n this.currentProps = nextProps;\n if (this.state.fallback && nextState.fallback) this.prepareFallbackUpdate();\n if (nextState.fallback || this.state.fallback) return true;\n if (definitionChanged) return true;\n this.schedulePropFallback();\n return false;\n }\n\n componentDidMount(): void {\n this.mounted = true;\n this.listen();\n // Replay must restore nested listeners even before the fallback state update commits.\n if (this.state.fallback || this.fallbackRequested) {\n this.subscribeFallbackDescendants();\n this.fallbackKeysWereUnsafe = this.hasUnsafeFallbackKeys();\n } else if (!this.adopt()) this.activateFallback();\n }\n\n componentDidUpdate(): void {\n this.listen();\n const nextDefinitionVersion = owner.getDefinitionVersion?.();\n const definitionChanged = this.definitionVersion !== nextDefinitionVersion;\n this.definitionVersion = nextDefinitionVersion;\n if (this.state.fallback) {\n this.subscribeFallbackDescendants();\n } else if (definitionChanged && !this.adopt()) {\n this.activateFallback();\n }\n }\n\n componentWillUnmount(): void {\n this.mounted = false;\n const stop = this.stop;\n stop?.();\n this.id = undefined;\n clearCompilerFallbackSubscriptions(this.fallbackUnsubscribers);\n this.fallbackKeysWereUnsafe = false;\n for (const instance of this.rangeInstances) instance?.host.scope?.cleanup();\n // Keep the attached root for React 18 replay; captureRoot clears real detachments.\n this.rangeInstances = [];\n this.staticSegments = [];\n this.staticValues.length = 0;\n }\n\n render(): React.ReactNode {\n const container = this.currentProps.render();\n if (!React.isValidElement(container) || typeof container.type !== \"string\") {\n throw new TypeError(\n `Compiled conditional ranges ${this.currentProps.id} must own one host container.`,\n );\n }\n return React.cloneElement(container, {\n key: this.state.fallback ? `react-${this.fallbackVersion}` : \"compiled\",\n ref: this.captureRoot,\n } as React.Attributes);\n }\n }\n\n return FarmConditionalRangesBlock;\n}\n\n/** Returns positions forming the LIS while ignoring newly inserted (-1) entries. */\nfunction longestIncreasingSubsequencePositions(sequence: readonly number[]): Set<number> {\n const tails: number[] = [];\n const previous = Array.from({ length: sequence.length }, () => -1);\n\n for (let index = 0; index < sequence.length; index += 1) {\n if (sequence[index] < 0) continue;\n let low = 0;\n let high = tails.length;\n while (low < high) {\n const middle = (low + high) >> 1;\n if (sequence[tails[middle]] < sequence[index]) low = middle + 1;\n else high = middle;\n }\n if (low > 0) previous[index] = tails[low - 1];\n tails[low] = index;\n }\n\n const positions = new Set<number>();\n let cursor = tails.at(-1) ?? -1;\n while (cursor >= 0) {\n positions.add(cursor);\n cursor = previous[cursor];\n }\n return positions;\n}\n\nfunction reorderCompilerKeyedRows(\n root: Element,\n instances: readonly CompilerKeyedRowInstance[],\n sequence: readonly number[],\n anchor: ChildNode | null,\n): void {\n const activeElement = compilerFocusedElement(root);\n const stablePositions = longestIncreasingSubsequencePositions(sequence);\n for (let index = instances.length - 1; index >= 0; index -= 1) {\n const instance = instances[index];\n if (sequence[index] < 0) {\n let start = index;\n while (start > 0 && sequence[start - 1] < 0) start -= 1;\n const fragment = root.ownerDocument.createDocumentFragment();\n for (let itemIndex = start; itemIndex <= index; itemIndex += 1) {\n fragment.append(instances[itemIndex].element);\n }\n root.insertBefore(fragment, anchor);\n anchor = instances[start].element;\n index = start;\n } else {\n if (!stablePositions.has(index) && instance.element.nextSibling !== anchor) {\n root.insertBefore(instance.element, anchor);\n }\n anchor = instance.element;\n }\n }\n restoreCompilerFocus(activeElement);\n}\n\nfunction compilerFocusedElement(root: Element): Element | null {\n const activeElement = root.ownerDocument.activeElement;\n return activeElement && root.contains(activeElement) ? activeElement : null;\n}\n\nfunction restoreCompilerFocus(activeElement: Element | null): void {\n if (\n activeElement?.isConnected &&\n activeElement.ownerDocument.activeElement !== activeElement &&\n \"focus\" in activeElement\n ) {\n (activeElement as HTMLElement).focus({ preventScroll: true });\n }\n}\n\nfunction reverseCompilerKeyedRows(root: Element, instances: CompilerKeyedRowInstance[]): void {\n const activeElement = compilerFocusedElement(root);\n let anchor = instances[0]?.element || null;\n for (let sourceIndex = 1; sourceIndex < instances.length; sourceIndex += 1) {\n const element = instances[sourceIndex].element;\n root.insertBefore(element, anchor);\n anchor = element;\n }\n instances.reverse();\n for (let index = 0; index < instances.length; index += 1) {\n instances[index].index = index;\n }\n restoreCompilerFocus(activeElement);\n}\n\ntype RowConditionalRefresh = (item: unknown, index: number, afterCommit?: () => void) => void;\n\ninterface RowConditionalOwner {\n subscribe(key: string, id: number, refresh: RowConditionalRefresh): () => void;\n}\n\ninterface RowConditionalProps {\n owner: RowConditionalOwner;\n rowKey: string;\n id: number;\n renderVersion: number;\n item: unknown;\n index: number;\n render(item: unknown, index: number): React.ReactNode;\n}\n\ninterface RowConditionalState {\n renderVersion: number;\n item: unknown;\n index: number;\n}\n\ninterface KeyedRowConditionalRuntime {\n Component: React.ComponentType<RowConditionalProps>;\n readValues(\n props: Pick<CompilerKeyedRowsBlockProps, \"conditionals\">,\n item: unknown,\n index: number,\n ): ReadonlyMap<number, readonly unknown[]>;\n changed(previous: readonly unknown[] | undefined, next: readonly unknown[]): boolean;\n}\n\ninterface KeyedRowHostRuntime {\n mount(\n element: Element,\n descriptor: CompilerHostElement,\n requestFallback: () => void,\n ): CompilerHostTreeScope | null;\n}\n\ninterface KeyedUpdateRuntime {\n commit(\n value: unknown,\n instances?: ReadonlyMap<string, CompilerKeyedRowInstance>,\n ): object | undefined;\n append(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n ): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined;\n // Returns a fresh runtime-owned native map after validating all retained rows.\n filter?(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n reactOwnedRows: boolean,\n ): Map<string, CompilerKeyedRowInstance> | undefined;\n prepend?(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n ): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined;\n rollingWindow?(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n ): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined;\n position?(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n ): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined;\n // Returns a runtime-owned native map containing only retained row instances:\n // reorders may remove rows, but never create or replace their root elements.\n reorder?(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: Map<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n ): Map<string, CompilerKeyedRowInstance> | undefined;\n reconcile(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n conditionals: KeyedRowConditionalRuntime | undefined,\n ):\n | {\n collectionToken: object | undefined;\n conditionalChanges: readonly {\n key: string;\n id: number;\n item: unknown;\n index: number;\n }[];\n fallback: boolean;\n }\n | undefined;\n}\n\nconst keyedUpdateRuntime: KeyedUpdateRuntime = {\n append: reconcileCompilerKeyedArrayAppend,\n commit: commitCompilerKeyedCollection,\n reconcile: reconcileCompilerKeyedMapUpdate,\n};\n\nconst keyedFilterUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedUpdateRuntime,\n filter: reconcileCompilerKeyedArrayFilter,\n};\n\n// Only selected when the compiler emits removal hints without map/append hints.\n// Other updates continue through the existing full keyed reconciliation path.\nconst keyedFilterOnlyUpdateRuntime: KeyedUpdateRuntime = {\n append: () => undefined,\n commit: commitCompilerKeyedCollection,\n reconcile: () => undefined,\n filter: reconcileCompilerKeyedArrayFilter,\n};\n\nconst keyedPrependUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedUpdateRuntime,\n prepend: reconcileCompilerKeyedArrayPrepend,\n};\n\nconst keyedFilterPrependUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedFilterUpdateRuntime,\n prepend: reconcileCompilerKeyedArrayPrepend,\n};\n\nconst keyedStructuralPrependUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedFilterPrependUpdateRuntime,\n prepend: reconcileCompilerKeyedArrayPrependWithStructural,\n};\n\nconst keyedPositionUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedUpdateRuntime,\n position: reconcileCompilerKeyedArrayPosition,\n};\n\nconst keyedBatchPositionUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedUpdateRuntime,\n position: reconcileCompilerKeyedArrayPositionWithBatch,\n};\n\nconst keyedWindowPositionUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedUpdateRuntime,\n position: reconcileCompilerKeyedArrayPositionWithWindow,\n};\n\nconst keyedReorderUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedUpdateRuntime,\n reorder: reconcileCompilerKeyedArrayReorder,\n};\n\nconst keyedMapReorderUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedUpdateRuntime,\n reorder: reconcileCompilerKeyedArrayReorderWithMap,\n};\n\nconst keyedCompleteUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedFilterPrependUpdateRuntime,\n rollingWindow: reconcileCompilerKeyedArrayRollingWindow,\n};\n\nconst keyedEveryUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedCompleteUpdateRuntime,\n position: reconcileCompilerKeyedArrayPosition,\n reorder: reconcileCompilerKeyedArrayReorderWithMapAndStructural,\n};\n\nconst keyedBatchEveryUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedEveryUpdateRuntime,\n position: reconcileCompilerKeyedArrayPositionWithBatch,\n};\n\nconst keyedWindowEveryUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedEveryUpdateRuntime,\n position: reconcileCompilerKeyedArrayPositionWithWindow,\n};\n\nconst keyedWindowEveryStructuralAppendUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedWindowEveryUpdateRuntime,\n append: reconcileCompilerKeyedArrayAppendWithStructural,\n};\n\nconst keyedWindowEveryStructuralAppendMapUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedWindowEveryStructuralAppendUpdateRuntime,\n append: reconcileCompilerKeyedArrayAppendMapWithStructural,\n commit: commitCompilerKeyedCollectionWithItemSnapshot,\n};\n\nconst keyedCompleteCompatibilityUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedWindowEveryStructuralAppendMapUpdateRuntime,\n prepend: reconcileCompilerKeyedArrayPrependWithStructural,\n};\n\nconst keyedCompleteStructuralPrependMapUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedCompleteCompatibilityUpdateRuntime,\n prepend: reconcileCompilerKeyedArrayPrependMapWithStructural,\n};\n\nconst keyedMappedRollingWindowUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedCompleteStructuralPrependMapUpdateRuntime,\n rollingWindow: reconcileCompilerKeyedArrayMappedRollingWindow,\n};\n\ninterface KeyedRowsRuntimeOptions {\n conditionals?: KeyedRowConditionalRuntime;\n hostBlocks?: KeyedRowHostRuntime;\n keyedUpdates?: KeyedUpdateRuntime;\n keyedTargets?: (props: CompilerKeyedRowsBlockProps) => KeyedTargetRuntime | undefined;\n}\n\nfunction reconcileCompilerKeyedMapUpdate(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n conditionals: KeyedRowConditionalRuntime | undefined,\n): ReturnType<KeyedUpdateRuntime[\"reconcile\"]> {\n const dependency = props.collectionDependency;\n if (dependency === undefined) return undefined;\n const dependencies = props.dependencies || props.structureDependencies || [];\n const relevantDirty = [...dirtyState].filter((index) => dependencies.includes(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== dependency) return undefined;\n\n const finalValue = props.items();\n const hintedIndices = compilerKeyedMapChangedIndices(finalValue, collectionToken);\n if (!hintedIndices || !Array.isArray(finalValue) || finalValue.length !== instances.size) {\n return undefined;\n }\n\n const changedIndices = [...new Set(hintedIndices)].sort((left, right) => left - right);\n const updates: Array<{\n key: string;\n item: unknown;\n index: number;\n instance: CompilerKeyedRowInstance;\n }> = [];\n try {\n for (const index of changedIndices) {\n if (!Number.isSafeInteger(index) || index < 0 || index >= finalValue.length) return undefined;\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n const instance = instances.get(key);\n if (!instance || instance.index !== index) return undefined;\n updates.push({ key, item, index, instance });\n }\n } catch {\n return undefined;\n }\n\n const conditionalChanges: Array<{\n key: string;\n id: number;\n item: unknown;\n index: number;\n }> = [];\n for (const { key, item, index, instance } of updates) {\n if (props.hostBlocks) {\n const descriptor = props.create(item, index);\n if (!instance.scope?.update(descriptor)) {\n return { collectionToken, conditionalChanges: [], fallback: true };\n }\n }\n applyKeyedRowBindings(props, instance, item, index);\n const conditionalValues =\n conditionals?.readValues(props, item, index) || EMPTY_KEYED_ROW_CONDITIONAL_VALUES;\n for (const [id, values] of conditionalValues) {\n if (conditionals?.changed(instance.conditionalValues.get(id), values)) {\n conditionalChanges.push({ key, id, item, index });\n }\n }\n instance.conditionalValues = conditionalValues;\n instance.item = item;\n }\n return {\n collectionToken: commitCompilerKeyedCollection(finalValue),\n conditionalChanges,\n fallback: false,\n };\n}\n\nfunction reconcileCompilerKeyedArrayMapReorder(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: Map<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n preparedReorder?: CompilerPreparedKeyedArrayReorder,\n): Map<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.reorderIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n const finalValue = preparedReorder?.value ?? props.items();\n const update =\n preparedReorder?.update ||\n compilerKeyedArrayReorder(finalValue, collectionToken, instances.size);\n if (\n !update?.mapped ||\n !update.mappedItemSources ||\n update.structuralUpdate ||\n !Array.isArray(finalValue)\n ) {\n return undefined;\n }\n\n const previousInstances = [...instances.values()];\n const reverse = update.kind === CompilerKeyedArrayReorderKind.Reverse;\n const prepared = (() => {\n const changed: Array<{\n bindingUpdates: CompilerPreparedKeyedRowBindingUpdate[];\n instance: CompilerKeyedRowInstance;\n item: unknown;\n }> = [];\n try {\n const instancesByItem =\n update.kind === CompilerKeyedArrayReorderKind.Permutation\n ? new Map<unknown, CompilerKeyedRowInstance>()\n : undefined;\n if (instancesByItem) {\n for (let sourceIndex = 0; sourceIndex < previousInstances.length; sourceIndex += 1) {\n const instance = previousInstances[sourceIndex];\n if (instance.index !== sourceIndex || instancesByItem.has(instance.item))\n return undefined;\n instancesByItem.set(instance.item, instance);\n }\n }\n\n const nextInstances: CompilerKeyedRowInstance[] = instancesByItem ? [] : previousInstances;\n const sequence: number[] | undefined = instancesByItem ? [] : undefined;\n for (let targetIndex = 0; targetIndex < finalValue.length; targetIndex += 1) {\n const item = finalValue[targetIndex];\n let instance: CompilerKeyedRowInstance | undefined;\n if (!instancesByItem) {\n const sourceIndex = reverse ? finalValue.length - targetIndex - 1 : targetIndex;\n instance = previousInstances[sourceIndex];\n if (!instance || instance.index !== sourceIndex) return undefined;\n if (Object.is(instance.item, item)) continue;\n if (\n !update.mappedItemSources.has(item) ||\n !Object.is(instance.item, update.mappedItemSources.get(item))\n ) {\n return undefined;\n }\n } else {\n const sourceItem = update.mappedItemSources.has(item)\n ? update.mappedItemSources.get(item)\n : item;\n instance = instancesByItem!.get(sourceItem);\n if (!instance) return undefined;\n instancesByItem!.delete(sourceItem);\n nextInstances.push(instance);\n sequence!.push(instance.index);\n if (Object.is(instance.item, item)) continue;\n }\n if (keyedRowIdentity(props.rowKey(item, targetIndex)) !== instance.key) return undefined;\n const bindingUpdates = prepareKeyedRowBindingUpdates(props, instance, item, targetIndex);\n if (!bindingUpdates) return undefined;\n changed.push({ bindingUpdates, instance, item });\n }\n if (instancesByItem?.size) return undefined;\n return { changed, nextInstances, sequence };\n } catch {\n return undefined;\n }\n })();\n if (!prepared) return undefined;\n\n if (prepared.sequence) {\n reorderCompilerKeyedRows(root, prepared.nextInstances, prepared.sequence, null);\n } else if (reverse) {\n reverseCompilerKeyedRows(root, prepared.nextInstances);\n }\n for (const { bindingUpdates, instance, item } of prepared.changed) {\n applyPreparedKeyedRowBindingUpdates(props, instance, bindingUpdates);\n instance.item = item;\n }\n for (let index = 0; index < prepared.nextInstances.length; index += 1) {\n prepared.nextInstances[index].index = index;\n }\n return reverse || prepared.sequence ? keyedRowInstancesByKey(prepared.nextInstances) : instances;\n}\n\nfunction reconcileCompilerKeyedArrayAppend(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReturnType<KeyedUpdateRuntime[\"append\"]> {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n // Existing rows may read the collection itself (for example,\n // `rows.length`). Appending would need to refresh those rows too, so keep\n // the complete keyed reconciliation path for that shape.\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const startIndex = compilerKeyedArrayAppendStart(finalValue, collectionToken, instances.size);\n if (startIndex === undefined || !Array.isArray(finalValue)) return undefined;\n\n const nextInstances = new Map(instances);\n const appended: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = startIndex; index < finalValue.length; index += 1) {\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n if (nextInstances.has(key)) return undefined;\n const descriptor = props.create(item, index);\n const instance: CompilerKeyedRowInstance = {\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n };\n appended.push(instance);\n nextInstances.set(key, instance);\n }\n } catch {\n return undefined;\n }\n\n if (appended.length > 0) {\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of appended) fragment.append(instance.element);\n root.append(fragment);\n }\n return nextInstances;\n}\n\nfunction reconcileCompilerKeyedArrayStructuralAppend(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.filterIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const update = compilerKeyedArrayStructuralAppendUpdate(\n finalValue,\n collectionToken,\n instances.size,\n );\n const structuralUpdate = update?.structuralUpdate;\n const survivorResult = update?.structuralSurvivors;\n if (\n !update ||\n !structuralUpdate ||\n !survivorResult ||\n structuralUpdate.mappedItemSources ||\n !Array.isArray(finalValue)\n ) {\n return undefined;\n }\n\n const previousInstances = [...instances.values()];\n const survivors: CompilerKeyedRowInstance[] = [];\n const knownKeys = new Set(instances.keys());\n const appended: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = 0; index < survivorResult.indices.length; index += 1) {\n const sourceIndex = survivorResult.indices[index];\n const instance = previousInstances[sourceIndex];\n const item = finalValue[index];\n if (\n !instance ||\n instance.index !== sourceIndex ||\n !Object.is(instance.item, item) ||\n (!survivorResult.keysStable && keyedRowIdentity(props.rowKey(item, index)) !== instance.key)\n ) {\n return undefined;\n }\n survivors.push(instance);\n }\n for (let index = update.startIndex; index < finalValue.length; index += 1) {\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n // A new suffix row that reuses any committed key must take complete\n // reconciliation so React can preserve that row's existing identity.\n if (knownKeys.has(key)) return undefined;\n knownKeys.add(key);\n const descriptor = props.create(item, index);\n appended.push({\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n });\n }\n } catch {\n return undefined;\n }\n\n const survivorSet = new Set(survivorResult.indices);\n for (let index = 0; index < previousInstances.length; index += 1) {\n if (survivorSet.has(index)) continue;\n previousInstances[index].scope?.cleanup();\n previousInstances[index].element.remove();\n }\n for (let index = 0; index < survivors.length; index += 1) survivors[index].index = index;\n if (appended.length > 0) {\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of appended) fragment.append(instance.element);\n root.append(fragment);\n }\n return keyedRowInstancesByKey([...survivors, ...appended]);\n}\n\nfunction reconcileCompilerKeyedArrayStructuralAppendMap(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.filterIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const update = compilerKeyedArrayStructuralAppendMapUpdate(\n finalValue,\n collectionToken,\n instances.size,\n true,\n );\n if (!update || !update.mappedItemSources || !Array.isArray(finalValue)) return undefined;\n\n const mappedItemSources = update.mappedSurvivorsValidated\n ? (update.mappedItemSources as ReadonlyMap<number, unknown>)\n : undefined;\n const mappedStructuralSources = update.mappedSurvivorsValidated\n ? undefined\n : (update.mappedItemSources as CompilerMappedItemSources);\n\n const previousInstances = [...instances.values()];\n const survivorRange = update.structuralSurvivorRange;\n const survivorIndices = update.structuralSurvivors;\n const survivorCount = survivorRange\n ? survivorRange.end - survivorRange.start\n : (survivorIndices?.length ?? 0);\n if (!survivorRange && !survivorIndices) return undefined;\n const changed: Array<{\n bindingUpdates: CompilerPreparedKeyedRowBindingUpdate[];\n instance: CompilerKeyedRowInstance;\n item: unknown;\n }> = [];\n const appendedKeys = new Set<string>();\n const appended: CompilerKeyedRowInstance[] = [];\n try {\n if (mappedStructuralSources) {\n for (let index = 0; index < survivorCount; index += 1) {\n const sourceIndex = survivorRange ? survivorRange.start + index : survivorIndices![index];\n const instance = previousInstances[sourceIndex];\n const item = finalValue[index];\n const sourceItem = mappedStructuralSources.has(item)\n ? mappedStructuralSources.get(item)\n : item;\n if (!instance || instance.index !== sourceIndex || !Object.is(instance.item, sourceItem)) {\n return undefined;\n }\n }\n for (let index = 0; index < survivorCount; index += 1) {\n const sourceIndex = survivorRange ? survivorRange.start + index : survivorIndices![index];\n const instance = previousInstances[sourceIndex];\n const item = finalValue[index];\n const sourceItem = mappedStructuralSources.has(item)\n ? mappedStructuralSources.get(item)\n : item;\n if (Object.is(item, sourceItem)) continue;\n if (keyedRowIdentity(props.rowKey(item, index)) !== instance.key) return undefined;\n const bindingUpdates = prepareKeyedRowBindingUpdates(props, instance, item, index);\n if (!bindingUpdates) return undefined;\n changed.push({ bindingUpdates, instance, item });\n }\n } else if (survivorIndices) {\n for (let index = 0; index < survivorCount; index += 1) {\n const sourceIndex = survivorIndices[index];\n const instance = previousInstances[sourceIndex];\n const item = finalValue[index];\n const expectedItem = mappedItemSources!.has(index) ? mappedItemSources!.get(index) : item;\n if (\n !instance ||\n instance.index !== sourceIndex ||\n !Object.is(instance.item, expectedItem)\n ) {\n return undefined;\n }\n }\n }\n for (const [index, sourceItem] of mappedItemSources || []) {\n if (!Number.isSafeInteger(index) || index < 0 || index >= survivorCount) {\n return undefined;\n }\n const instance =\n previousInstances[survivorRange ? survivorRange.start + index : survivorIndices![index]];\n const item = finalValue[index];\n if (\n !instance ||\n !Object.is(instance.item, sourceItem) ||\n keyedRowIdentity(props.rowKey(item, index)) !== instance.key\n ) {\n return undefined;\n }\n const bindingUpdates = prepareKeyedRowBindingUpdates(props, instance, item, index);\n if (!bindingUpdates) return undefined;\n changed.push({ bindingUpdates, instance, item });\n }\n for (let index = update.startIndex; index < finalValue.length; index += 1) {\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n if (instances.has(key) || appendedKeys.has(key)) return undefined;\n appendedKeys.add(key);\n const descriptor = props.create(item, index);\n appended.push({\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n });\n }\n } catch {\n return undefined;\n }\n\n const mutableInstances = instances as Map<string, CompilerKeyedRowInstance>;\n if (survivorRange) {\n for (let index = 0; index < survivorRange.start; index += 1) {\n const instance = previousInstances[index];\n instance.scope?.cleanup();\n instance.element.remove();\n mutableInstances.delete(instance.key);\n }\n for (let index = survivorRange.end; index < previousInstances.length; index += 1) {\n const instance = previousInstances[index];\n instance.scope?.cleanup();\n instance.element.remove();\n mutableInstances.delete(instance.key);\n }\n for (let index = survivorRange.start; index < survivorRange.end; index += 1) {\n previousInstances[index].index = index - survivorRange.start;\n }\n } else {\n const survivorSet = new Set(survivorIndices);\n for (let index = 0; index < previousInstances.length; index += 1) {\n if (survivorSet.has(index)) continue;\n const instance = previousInstances[index];\n instance.scope?.cleanup();\n instance.element.remove();\n mutableInstances.delete(instance.key);\n }\n for (let index = 0; index < survivorIndices!.length; index += 1) {\n previousInstances[survivorIndices![index]].index = index;\n }\n }\n if (appended.length > 0) {\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of appended) {\n fragment.append(instance.element);\n mutableInstances.set(instance.key, instance);\n }\n root.append(fragment);\n }\n for (const { bindingUpdates, instance, item } of changed) {\n applyPreparedKeyedRowBindingUpdates(props, instance, bindingUpdates);\n instance.item = item;\n }\n return mutableInstances;\n}\n\nfunction reconcileCompilerKeyedArrayAppendWithStructural(\n ...args: Parameters<typeof reconcileCompilerKeyedArrayAppend>\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n return (\n reconcileCompilerKeyedArrayStructuralAppend(...args) ||\n reconcileCompilerKeyedArrayAppend(...args)\n );\n}\n\nfunction reconcileCompilerKeyedArrayAppendMapWithStructural(\n ...args: Parameters<typeof reconcileCompilerKeyedArrayAppend>\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n return (\n reconcileCompilerKeyedArrayStructuralAppendMap(...args) ||\n reconcileCompilerKeyedArrayStructuralAppend(...args) ||\n reconcileCompilerKeyedArrayAppend(...args)\n );\n}\n\nfunction reconcileCompilerKeyedArrayRollingWindow(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.filterIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const updates = compilerKeyedArrayRollingWindows(finalValue, collectionToken, instances.size);\n if (!updates || !Array.isArray(finalValue)) return undefined;\n const previousInstances = [...instances.values()];\n let retainedStart = 0;\n for (const update of updates) {\n retainedStart += Math.min(update.retainedStart, previousInstances.length - retainedStart);\n }\n const retainedLength = previousInstances.length - retainedStart;\n const survivors: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = 0; index < retainedLength; index += 1) {\n const sourceIndex = retainedStart + index;\n const instance = previousInstances[sourceIndex];\n if (\n !instance ||\n instance.index !== sourceIndex ||\n !Object.is(instance.item, finalValue[index])\n ) {\n return undefined;\n }\n survivors.push(instance);\n }\n } catch {\n return undefined;\n }\n\n const knownKeys = new Set(instances.keys());\n const incoming: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = retainedLength; index < finalValue.length; index += 1) {\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n // Reusing any key from the committed window must take the complete keyed\n // reconciliation path so React-owned row identity is never recreated.\n if (knownKeys.has(key)) return undefined;\n knownKeys.add(key);\n const descriptor = props.create(item, index);\n incoming.push({\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n });\n }\n } catch {\n return undefined;\n }\n\n for (let index = 0; index < retainedStart; index += 1) {\n previousInstances[index].scope?.cleanup();\n previousInstances[index].element.remove();\n }\n for (let index = 0; index < survivors.length; index += 1) survivors[index].index = index;\n if (incoming.length > 0) {\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of incoming) fragment.append(instance.element);\n root.append(fragment);\n }\n return new Map([...survivors, ...incoming].map((instance) => [instance.key, instance]));\n}\n\nfunction reconcileCompilerKeyedArrayMappedRollingWindow(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.filterIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n const finalValue = props.items();\n const rollingWindow = compilerKeyedArrayMappedRollingWindows(\n finalValue,\n collectionToken,\n instances.size,\n );\n if (!rollingWindow || !Array.isArray(finalValue)) return undefined;\n const { mapped, updates } = rollingWindow;\n const previousInstances = [...instances.values()];\n let retainedStart = 0;\n for (const update of updates) {\n retainedStart += Math.min(update.retainedStart, previousInstances.length - retainedStart);\n }\n const retainedLength = previousInstances.length - retainedStart;\n const survivors: CompilerKeyedRowInstance[] = [];\n const changed: Array<{\n bindingUpdates: CompilerPreparedKeyedRowBindingUpdate[];\n instance: CompilerKeyedRowInstance;\n item: unknown;\n }> = [];\n try {\n for (let index = 0; index < retainedLength; index += 1) {\n const sourceIndex = retainedStart + index;\n const instance = previousInstances[sourceIndex];\n const item = finalValue[index];\n if (!instance || instance.index !== sourceIndex) return undefined;\n survivors.push(instance);\n if (Object.is(item, instance.item)) continue;\n if (!mapped) return undefined;\n if (keyedRowIdentity(props.rowKey(item, index)) !== instance.key) return undefined;\n const bindingUpdates = prepareKeyedRowBindingUpdates(props, instance, item, index);\n if (!bindingUpdates) return undefined;\n changed.push({ bindingUpdates, instance, item });\n }\n } catch {\n return undefined;\n }\n\n const incomingKeys = new Set<string>();\n const incoming: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = retainedLength; index < finalValue.length; index += 1) {\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n // Reusing any key from the committed window must take the complete keyed\n // reconciliation path so React-owned row identity is never recreated.\n if (instances.has(key) || incomingKeys.has(key)) return undefined;\n incomingKeys.add(key);\n const descriptor = props.create(item, index);\n incoming.push({\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n });\n }\n } catch {\n return undefined;\n }\n\n const mutableInstances = instances as Map<string, CompilerKeyedRowInstance>;\n const removedKeys: string[] = [];\n for (let index = 0; index < retainedStart; index += 1) {\n const instance = previousInstances[index];\n instance.scope?.cleanup();\n instance.element.remove();\n mutableInstances.delete(instance.key);\n removedKeys.push(instance.key);\n }\n for (let index = 0; index < survivors.length; index += 1) survivors[index].index = index;\n if (incoming.length > 0) {\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of incoming) {\n fragment.append(instance.element);\n mutableInstances.set(instance.key, instance);\n }\n root.append(fragment);\n }\n for (const { bindingUpdates, instance, item } of changed) {\n applyPreparedKeyedRowBindingUpdates(props, instance, bindingUpdates);\n instance.item = item;\n }\n COMPILER_KEYED_ROLLING_WINDOW_DELTAS.set(mutableInstances, {\n added: incoming,\n removedKeys,\n });\n return mutableInstances;\n}\n\nfunction reconcileCompilerKeyedArrayPosition(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.positionIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const update = compilerKeyedArrayPosition(finalValue, collectionToken, instances.size);\n if (!update || !Array.isArray(finalValue)) return undefined;\n const previousInstances = [...instances.values()];\n const previous = previousInstances[update.position];\n\n if (update.kind === \"remove\") {\n const count = update.sourceLength - update.resultLength;\n const removed = previousInstances.slice(update.position, update.position + count);\n if (removed.some((instance, index) => instance.index !== update.position + index)) {\n return undefined;\n }\n for (const instance of removed) {\n instance.scope?.cleanup();\n instance.element.remove();\n }\n previousInstances.splice(update.position, count);\n for (let index = update.position; index < previousInstances.length; index += 1) {\n previousInstances[index].index = index;\n }\n return keyedRowInstancesByKey(previousInstances);\n }\n\n let item: unknown;\n let key: string;\n try {\n item = finalValue[update.position];\n key = keyedRowIdentity(props.rowKey(item, update.position));\n } catch {\n return undefined;\n }\n\n if (update.kind === \"insert\") {\n if (instances.has(key)) return undefined;\n let inserted: CompilerKeyedRowInstance;\n try {\n const descriptor = props.create(item, update.position);\n inserted = {\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, update.position),\n item,\n index: update.position,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n };\n } catch {\n return undefined;\n }\n root.insertBefore(inserted.element, previous?.element || null);\n previousInstances.splice(update.position, 0, inserted);\n for (let index = update.position + 1; index < previousInstances.length; index += 1) {\n previousInstances[index].index = index;\n }\n return keyedRowInstancesByKey(previousInstances);\n }\n\n if (!previous || previous.index !== update.position) return undefined;\n if (key === previous.key) {\n try {\n applyKeyedRowBindings(props, previous, item, update.position);\n } catch {\n return undefined;\n }\n previous.item = item;\n return instances;\n }\n if (instances.has(key)) return undefined;\n\n let replacement: CompilerKeyedRowInstance;\n try {\n const descriptor = props.create(item, update.position);\n replacement = {\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, update.position),\n item,\n index: update.position,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n };\n } catch {\n return undefined;\n }\n previous.scope?.cleanup();\n previous.element.replaceWith(replacement.element);\n previousInstances[update.position] = replacement;\n return keyedRowInstancesByKey(previousInstances);\n}\n\nfunction reconcileCompilerKeyedArrayBatchInsert(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.positionIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const update = compilerKeyedArrayBatchInsert(finalValue, collectionToken, instances.size);\n if (!update || !Array.isArray(finalValue)) return undefined;\n const previousInstances = [...instances.values()];\n const insertCount = update.resultLength - update.sourceLength;\n for (let sourceIndex = 0; sourceIndex < update.sourceLength; sourceIndex += 1) {\n const instance = previousInstances[sourceIndex];\n const resultIndex = sourceIndex < update.position ? sourceIndex : sourceIndex + insertCount;\n if (\n !instance ||\n instance.index !== sourceIndex ||\n !Object.is(instance.item, finalValue[resultIndex])\n ) {\n return undefined;\n }\n }\n // The committed map stays unchanged until every incoming row is prepared.\n // Track only the new keys instead of copying the entire committed key set.\n const incomingKeys = new Set<string>();\n const incoming: CompilerKeyedRowInstance[] = [];\n try {\n for (let offset = 0; offset < insertCount; offset += 1) {\n const index = update.position + offset;\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n if (instances.has(key) || incomingKeys.has(key)) return undefined;\n incomingKeys.add(key);\n const descriptor = props.create(item, index);\n incoming.push({\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n });\n }\n } catch {\n return undefined;\n }\n\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of incoming) fragment.append(instance.element);\n root.insertBefore(fragment, previousInstances[update.position]?.element || null);\n previousInstances.splice(update.position, 0, ...incoming);\n for (let index = update.position + insertCount; index < previousInstances.length; index += 1) {\n previousInstances[index].index = index;\n }\n return keyedRowInstancesByKey(previousInstances);\n}\n\ntype CompilerKeyedArrayDisjointWindow = [\n sourcePosition: number,\n currentPosition: number,\n removedCount: number,\n insertedCount: number,\n];\n\nfunction normalizeCompilerKeyedArrayDisjointWindows(\n updates: readonly CompilerKeyedArrayWindowReplaceHint[],\n): CompilerKeyedArrayDisjointWindow[] | undefined {\n const windows: CompilerKeyedArrayDisjointWindow[] = [];\n for (const update of updates) {\n const updateEnd = update.position + update.removedCount;\n let sourcePosition = update.position;\n for (const window of windows) {\n const windowStart = window[1];\n const windowEnd = windowStart + window[3];\n const before = updateEnd <= windowStart;\n const after = window[3] === 0 ? update.position >= windowStart : update.position >= windowEnd;\n if (!before && !after) return undefined;\n if (after) sourcePosition -= window[3] - window[2];\n }\n\n const delta = update.insertedCount - update.removedCount;\n for (const window of windows) {\n if (updateEnd <= window[1]) window[1] += delta;\n }\n windows.push([sourcePosition, update.position, update.removedCount, update.insertedCount]);\n }\n\n windows.sort((left, right) => left[0] - right[0]);\n return windows;\n}\n\ntype CompilerKeyedArrayWindowItems = [items: unknown[], keys: string[]];\n\nfunction readCompilerKeyedArrayWindowItems(\n props: CompilerKeyedRowsBlockProps,\n finalValue: readonly unknown[],\n resultPosition: number,\n insertedCount: number,\n): CompilerKeyedArrayWindowItems | undefined {\n const items: unknown[] = [];\n const keys: string[] = [];\n try {\n for (let offset = 0; offset < insertedCount; offset += 1) {\n const index = resultPosition + offset;\n const item = finalValue[index];\n items.push(item);\n keys.push(keyedRowIdentity(props.rowKey(item, index)));\n }\n } catch {\n return undefined;\n }\n return [items, keys];\n}\n\ntype CompilerPreparedKeyedArrayWindow = [\n removed: CompilerKeyedRowInstance[],\n anchor: ChildNode | null,\n incomingItems: unknown[],\n incomingKeySet: ReadonlySet<string>,\n nextWindow: CompilerKeyedRowInstance[],\n sequence: number[],\n preparedBindings: Array<readonly CompilerPreparedKeyedRowBindingUpdate[] | undefined>,\n];\n\nfunction prepareCompilerKeyedArrayWindow(\n props: CompilerKeyedRowsBlockProps,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n previousInstances: readonly CompilerKeyedRowInstance[],\n root: Element,\n window: CompilerKeyedArrayDisjointWindow,\n incoming: CompilerKeyedArrayWindowItems,\n preparedIncomingKeys: Set<string>,\n): CompilerPreparedKeyedArrayWindow | undefined {\n const removedEnd = window[0] + window[2];\n const removed = previousInstances.slice(window[0], removedEnd);\n const anchor = previousInstances[removedEnd]?.element || null;\n if (\n removed.length !== window[2] ||\n removed.some(\n (instance, offset) =>\n instance.index !== window[0] + offset || instance.element.parentNode !== root,\n ) ||\n (anchor && anchor.parentNode !== root)\n ) {\n return undefined;\n }\n\n const incomingKeySet = new Set(incoming[1]);\n if (incomingKeySet.size !== incoming[1].length) return undefined;\n for (const key of incomingKeySet) {\n if (preparedIncomingKeys.has(key)) return undefined;\n preparedIncomingKeys.add(key);\n }\n\n const hasLocalReuse = removed.some((instance) => incomingKeySet.has(instance.key));\n const removedByKey = hasLocalReuse\n ? new Map(removed.map((instance, offset) => [instance.key, { instance, offset }] as const))\n : undefined;\n const nextWindow: CompilerKeyedRowInstance[] = [];\n const sequence: number[] = [];\n const preparedBindings: Array<readonly CompilerPreparedKeyedRowBindingUpdate[] | undefined> = [];\n try {\n for (let offset = 0; offset < window[3]; offset += 1) {\n const index = window[1] + offset;\n const item = incoming[0][offset];\n const key = incoming[1][offset];\n const retained = removedByKey?.get(key);\n if (retained) {\n const bindingUpdates = prepareKeyedRowBindingUpdates(props, retained.instance, item, index);\n if (!bindingUpdates) return undefined;\n nextWindow.push(retained.instance);\n sequence.push(retained.offset);\n preparedBindings.push(bindingUpdates);\n continue;\n }\n // A key owned outside this exact source window would move a row across\n // a compiler-proven boundary. Complete reconciliation owns that case.\n if (instances.has(key)) return undefined;\n const descriptor = props.create(item, index);\n nextWindow.push({\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n });\n sequence.push(-1);\n preparedBindings.push(undefined);\n }\n } catch {\n return undefined;\n }\n\n return [removed, anchor, incoming[0], incomingKeySet, nextWindow, sequence, preparedBindings];\n}\n\nfunction commitCompilerKeyedArrayWindow(\n props: CompilerKeyedRowsBlockProps,\n root: Element,\n prepared: CompilerPreparedKeyedArrayWindow,\n): void {\n for (const instance of prepared[0]) {\n if (prepared[3].has(instance.key)) continue;\n instance.scope?.cleanup();\n instance.element.remove();\n }\n for (let offset = 0; offset < prepared[4].length; offset += 1) {\n const bindingUpdates = prepared[6][offset];\n if (!bindingUpdates) continue;\n const instance = prepared[4][offset];\n applyPreparedKeyedRowBindingUpdates(props, instance, bindingUpdates);\n instance.item = prepared[2][offset];\n }\n reorderCompilerKeyedRows(root, prepared[4], prepared[5], prepared[1]);\n}\n\nfunction reconcileCompilerKeyedArrayWindowReplace(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.positionIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const updates = compilerKeyedArrayWindowReplacements(finalValue, collectionToken, instances.size);\n if (!updates || !Array.isArray(finalValue)) return undefined;\n const previousInstances = [...instances.values()];\n if (updates.length > 1) {\n if (updates.some((update) => update.insertedCount !== update.removedCount)) {\n const windows = normalizeCompilerKeyedArrayDisjointWindows(updates);\n if (!windows) return undefined;\n\n let sourceCursor = 0;\n let resultCursor = 0;\n const preparedIncomingKeys = new Set<string>();\n const preparedWindows: CompilerPreparedKeyedArrayWindow[] = [];\n const nextInstances: CompilerKeyedRowInstance[] = [];\n for (const window of windows) {\n if (window[0] < sourceCursor) return undefined;\n while (sourceCursor < window[0]) {\n const instance = previousInstances[sourceCursor];\n if (\n !instance ||\n instance.index !== sourceCursor ||\n !Object.is(instance.item, finalValue[resultCursor])\n ) {\n return undefined;\n }\n nextInstances.push(instance);\n sourceCursor += 1;\n resultCursor += 1;\n }\n const incoming = readCompilerKeyedArrayWindowItems(\n props,\n finalValue,\n resultCursor,\n window[3],\n );\n if (!incoming) return undefined;\n window[1] = resultCursor;\n const prepared = prepareCompilerKeyedArrayWindow(\n props,\n instances,\n previousInstances,\n root,\n window,\n incoming,\n preparedIncomingKeys,\n );\n if (!prepared) return undefined;\n preparedWindows.push(prepared);\n nextInstances.push(...prepared[4]);\n sourceCursor += window[2];\n resultCursor += window[3];\n }\n while (sourceCursor < previousInstances.length) {\n const instance = previousInstances[sourceCursor];\n if (\n !instance ||\n instance.index !== sourceCursor ||\n !Object.is(instance.item, finalValue[resultCursor])\n ) {\n return undefined;\n }\n nextInstances.push(instance);\n sourceCursor += 1;\n resultCursor += 1;\n }\n if (resultCursor !== finalValue.length) return undefined;\n\n for (const prepared of preparedWindows) {\n commitCompilerKeyedArrayWindow(props, root, prepared);\n }\n for (let index = 0; index < nextInstances.length; index += 1) {\n nextInstances[index].index = index;\n }\n return keyedRowInstancesByKey(nextInstances);\n }\n\n // Length-preserving windows share source positions. Walk their ranges in\n // row order so overlaps are prepared once, without hashing every row index.\n // The validated chain is a fresh array; consuming it does not change the hints.\n updates.sort((left, right) => right.position - left.position);\n let window = updates.pop();\n const touchedInstances: CompilerKeyedRowInstance[] = [];\n\n for (let index = 0; index < previousInstances.length; index += 1) {\n while (window && index >= window.position + window.removedCount) {\n window = updates.pop();\n }\n const instance = previousInstances[index];\n if (!instance || instance.index !== index) return undefined;\n if (window && index >= window.position) {\n if (instance.element.parentNode !== root) return undefined;\n touchedInstances.push(instance);\n } else if (!Object.is(instance.item, finalValue[index])) {\n return undefined;\n }\n }\n\n const incomingKeys = new Set<string>();\n let replacesRows = false;\n const prepared: Array<\n readonly [\n index: number,\n instance: CompilerKeyedRowInstance,\n item: unknown,\n updates: readonly CompilerPreparedKeyedRowBindingUpdate[] | undefined,\n replacement: CompilerKeyedRowInstance | undefined,\n ]\n > = [];\n try {\n for (const instance of touchedInstances) {\n const index = instance.index;\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n if (key !== instance.key) {\n // Fixed-length queued windows never shift positions, and React only\n // commits their final array. Intermediate identities were never\n // mounted, so only the final key must be new to the committed\n // rows and unique across the prepared replacements. The committed\n // map stays unchanged throughout preparation, so reuse its lookup.\n if (instances.has(key) || incomingKeys.has(key)) return undefined;\n incomingKeys.add(key);\n replacesRows = true;\n const descriptor = props.create(item, index);\n prepared.push([\n index,\n instance,\n item,\n undefined,\n {\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n },\n ]);\n continue;\n }\n const bindingUpdates = prepareKeyedRowBindingUpdates(props, instance, item, index);\n if (!bindingUpdates) return undefined;\n prepared.push([index, instance, item, bindingUpdates, undefined]);\n }\n } catch {\n return undefined;\n }\n for (const [index, instance, item, bindingUpdates, replacement] of prepared) {\n if (replacement) {\n instance.scope?.cleanup();\n instance.element.replaceWith(replacement.element);\n previousInstances[index] = replacement;\n } else {\n applyPreparedKeyedRowBindingUpdates(props, instance, bindingUpdates!);\n instance.item = item;\n }\n }\n return replacesRows ? keyedRowInstancesByKey(previousInstances) : instances;\n }\n\n const update = updates[0];\n const removedEnd = update.position + update.removedCount;\n for (let sourceIndex = 0; sourceIndex < update.sourceLength; sourceIndex += 1) {\n const instance = previousInstances[sourceIndex];\n if (!instance || instance.index !== sourceIndex) return undefined;\n if (sourceIndex >= update.position && sourceIndex < removedEnd) continue;\n const resultIndex =\n sourceIndex < update.position\n ? sourceIndex\n : sourceIndex - update.removedCount + update.insertedCount;\n if (!Object.is(instance.item, finalValue[resultIndex])) return undefined;\n }\n\n const removed = previousInstances.slice(update.position, removedEnd);\n const anchor = previousInstances[removedEnd]?.element;\n if (\n removed.length !== update.removedCount ||\n removed.some((instance) => instance.element.parentNode !== root) ||\n (anchor && anchor.parentNode !== root)\n ) {\n return undefined;\n }\n\n const incoming = readCompilerKeyedArrayWindowItems(\n props,\n finalValue,\n update.position,\n update.insertedCount,\n );\n if (!incoming) return undefined;\n const incomingItems = incoming[0];\n const incomingKeys = incoming[1];\n\n if (\n update.insertedCount === update.removedCount &&\n incomingKeys.every((key, offset) => key === removed[offset].key)\n ) {\n const prepared: CompilerPreparedKeyedRowBindingUpdate[][] = [];\n try {\n for (let offset = 0; offset < update.insertedCount; offset += 1) {\n const updates = prepareKeyedRowBindingUpdates(\n props,\n removed[offset],\n incomingItems[offset],\n update.position + offset,\n );\n if (!updates) return undefined;\n prepared.push(updates);\n }\n } catch {\n return undefined;\n }\n for (let offset = 0; offset < update.insertedCount; offset += 1) {\n applyPreparedKeyedRowBindingUpdates(props, removed[offset], prepared[offset]);\n removed[offset].item = incomingItems[offset];\n }\n return instances;\n }\n\n const prepared = prepareCompilerKeyedArrayWindow(\n props,\n instances,\n previousInstances,\n root,\n [update.position, update.position, update.removedCount, update.insertedCount],\n incoming,\n new Set(),\n );\n if (!prepared) return undefined;\n commitCompilerKeyedArrayWindow(props, root, prepared);\n previousInstances.splice(update.position, update.removedCount, ...prepared[4]);\n for (let index = update.position; index < previousInstances.length; index += 1) {\n previousInstances[index].index = index;\n }\n return keyedRowInstancesByKey(previousInstances);\n}\n\nfunction reconcileCompilerKeyedArrayPositionWithBatch(\n ...args: Parameters<typeof reconcileCompilerKeyedArrayPosition>\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n return (\n reconcileCompilerKeyedArrayBatchInsert(...args) || reconcileCompilerKeyedArrayPosition(...args)\n );\n}\n\nfunction reconcileCompilerKeyedArrayPositionWithWindow(\n ...args: Parameters<typeof reconcileCompilerKeyedArrayPosition>\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n return (\n reconcileCompilerKeyedArrayWindowReplace(...args) ||\n reconcileCompilerKeyedArrayBatchInsert(...args) ||\n reconcileCompilerKeyedArrayPosition(...args)\n );\n}\n\nfunction reconcileCompilerKeyedArrayStructuralReorder(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n preparedReorder?: CompilerPreparedKeyedArrayReorder,\n): Map<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.filterIndexIndependent ||\n !props.reorderIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = preparedReorder?.value ?? props.items();\n const update =\n preparedReorder?.update ||\n compilerKeyedArrayReorder(finalValue, collectionToken, instances.size);\n if (!update?.structuralUpdate || !Array.isArray(finalValue)) return undefined;\n const survivorResult = compilerKeyedArrayFilterSurvivorsFromUpdate(\n update.structuralUpdate,\n collectionToken,\n instances.size,\n finalValue.length,\n );\n if (!survivorResult) return undefined;\n\n const previousInstances = [...instances.values()];\n const mappedItemSources = update.mappedItemSources;\n const prepared = (() => {\n try {\n const survivors: CompilerKeyedRowInstance[] = [];\n let previousSourceIndex = -1;\n for (const sourceIndex of survivorResult.indices) {\n const instance = previousInstances[sourceIndex];\n if (sourceIndex <= previousSourceIndex || !instance || instance.index !== sourceIndex) {\n return undefined;\n }\n previousSourceIndex = sourceIndex;\n survivors.push(instance);\n }\n\n const prepareChangedInstance = (\n instance: CompilerKeyedRowInstance,\n item: unknown,\n targetIndex: number,\n ) => {\n if (Object.is(instance.item, item)) return undefined;\n const bindingUpdates = prepareKeyedRowBindingUpdates(props, instance, item, targetIndex);\n if (!bindingUpdates) throw new TypeError();\n return { bindingUpdates, instance, item };\n };\n let preservesSurvivorOrder = true;\n const directChanges: Array<{\n bindingUpdates: CompilerPreparedKeyedRowBindingUpdate[];\n instance: CompilerKeyedRowInstance;\n item: unknown;\n }> = [];\n if (update.kind !== CompilerKeyedArrayReorderKind.Permutation) {\n const positionalInstances =\n update.kind === CompilerKeyedArrayReorderKind.Reverse\n ? [...survivors].reverse()\n : survivors;\n const sequence =\n update.kind === CompilerKeyedArrayReorderKind.Reverse\n ? positionalInstances.map((instance) => instance.index)\n : undefined;\n for (let targetIndex = 0; targetIndex < finalValue.length; targetIndex += 1) {\n const item = finalValue[targetIndex];\n const instance = positionalInstances[targetIndex];\n if (keyedRowIdentity(props.rowKey(item, targetIndex)) !== instance.key) return undefined;\n const changed = prepareChangedInstance(instance, item, targetIndex);\n if (changed) directChanges.push(changed);\n }\n return { changed: directChanges, nextInstances: positionalInstances, sequence };\n }\n\n for (let targetIndex = 0; targetIndex < finalValue.length; targetIndex += 1) {\n const item = finalValue[targetIndex];\n const instance = survivors[targetIndex];\n const sourceItem = mappedItemSources?.has(item) ? mappedItemSources.get(item) : item;\n if (!Object.is(instance.item, sourceItem)) {\n preservesSurvivorOrder = false;\n break;\n }\n if (keyedRowIdentity(props.rowKey(item, targetIndex)) !== instance.key) return undefined;\n const changed = prepareChangedInstance(instance, item, targetIndex);\n if (changed) directChanges.push(changed);\n }\n if (preservesSurvivorOrder) {\n return { changed: directChanges, nextInstances: survivors, sequence: undefined };\n }\n\n const survivorInstances = new Map<unknown, CompilerKeyedRowInstance>();\n for (const instance of survivors) {\n if (survivorInstances.has(instance.item)) return undefined;\n survivorInstances.set(instance.item, instance);\n }\n\n const nextInstances: CompilerKeyedRowInstance[] = [];\n const sequence: number[] = [];\n const changed: typeof directChanges = [];\n for (let targetIndex = 0; targetIndex < finalValue.length; targetIndex += 1) {\n const item = finalValue[targetIndex];\n const sourceItem = mappedItemSources?.has(item) ? mappedItemSources.get(item) : item;\n const instance = survivorInstances.get(sourceItem);\n if (\n !instance ||\n !Object.is(instance.item, sourceItem) ||\n keyedRowIdentity(props.rowKey(item, targetIndex)) !== instance.key\n ) {\n return undefined;\n }\n survivorInstances.delete(sourceItem);\n nextInstances.push(instance);\n sequence.push(instance.index);\n const changedInstance = prepareChangedInstance(instance, item, targetIndex);\n if (changedInstance) changed.push(changedInstance);\n }\n if (survivorInstances.size > 0) return undefined;\n return { changed, nextInstances, sequence };\n } catch {\n return undefined;\n }\n })();\n if (!prepared) return undefined;\n\n let survivorCursor = 0;\n for (let sourceIndex = 0; sourceIndex < previousInstances.length; sourceIndex += 1) {\n if (survivorResult.indices[survivorCursor] === sourceIndex) {\n survivorCursor += 1;\n continue;\n }\n const instance = previousInstances[sourceIndex];\n instance.scope?.cleanup();\n instance.element.remove();\n }\n if (prepared.sequence) {\n reorderCompilerKeyedRows(root, prepared.nextInstances, prepared.sequence, null);\n }\n for (const { bindingUpdates, instance, item } of prepared.changed) {\n applyPreparedKeyedRowBindingUpdates(props, instance, bindingUpdates);\n instance.item = item;\n }\n for (let index = 0; index < prepared.nextInstances.length; index += 1) {\n prepared.nextInstances[index].index = index;\n }\n return keyedRowInstancesByKey(prepared.nextInstances);\n}\n\nfunction reconcileCompilerKeyedArrayReorder(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: Map<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n preparedReorder?: CompilerPreparedKeyedArrayReorder,\n): Map<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.reorderIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = preparedReorder?.value ?? props.items();\n const update =\n preparedReorder?.update ||\n compilerKeyedArrayReorder(finalValue, collectionToken, instances.size);\n if (!update || update.mapped || update.structuralUpdate || !Array.isArray(finalValue)) {\n return undefined;\n }\n\n const previousInstances = [...instances.values()];\n if (update.kind === CompilerKeyedArrayReorderKind.Permutation) {\n const instancesByItem = new Map<unknown, CompilerKeyedRowInstance>();\n try {\n for (let sourceIndex = 0; sourceIndex < previousInstances.length; sourceIndex += 1) {\n const instance = previousInstances[sourceIndex];\n if (instance.index !== sourceIndex || instancesByItem.has(instance.item)) return undefined;\n instancesByItem.set(instance.item, instance);\n }\n\n const nextInstances: CompilerKeyedRowInstance[] = [];\n const sequence: number[] = [];\n for (let targetIndex = 0; targetIndex < finalValue.length; targetIndex += 1) {\n const item = finalValue[targetIndex];\n const instance = instancesByItem.get(item);\n if (!instance || !Object.is(instance.item, item)) return undefined;\n instancesByItem.delete(item);\n nextInstances.push(instance);\n sequence.push(instance.index);\n }\n if (instancesByItem.size > 0) return undefined;\n\n reorderCompilerKeyedRows(root, nextInstances, sequence, null);\n for (let index = 0; index < nextInstances.length; index += 1) {\n nextInstances[index].index = index;\n }\n return keyedRowInstancesByKey(nextInstances);\n } catch {\n return undefined;\n }\n }\n\n try {\n for (let targetIndex = 0; targetIndex < previousInstances.length; targetIndex += 1) {\n const sourceIndex =\n update.kind === CompilerKeyedArrayReorderKind.Reverse\n ? previousInstances.length - targetIndex - 1\n : targetIndex;\n const instance = previousInstances[sourceIndex];\n if (instance.index !== sourceIndex || !Object.is(instance.item, finalValue[targetIndex])) {\n return undefined;\n }\n }\n } catch {\n return undefined;\n }\n\n if (update.kind === undefined) return instances;\n\n // A reverse has a one-row LIS. Keep the first committed row in place and\n // move every following row before the previous anchor, which performs the\n // minimum n - 1 connected DOM moves without rescanning keys or descriptors.\n reverseCompilerKeyedRows(root, previousInstances);\n return keyedRowInstancesByKey(previousInstances);\n}\n\ninterface CompilerPreparedKeyedArrayReorder {\n readonly update: CompilerKeyedArrayReorderHint | undefined;\n readonly value: unknown;\n}\n\nfunction prepareCompilerKeyedArrayReorder(\n args: Parameters<typeof reconcileCompilerKeyedArrayReorder>,\n): CompilerPreparedKeyedArrayReorder | undefined {\n const [props, dirtyState, collectionToken, instances, , reactOwnedRows] = args;\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.reorderIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const value = props.items();\n return {\n update: compilerKeyedArrayReorder(value, collectionToken, instances.size),\n value,\n };\n}\n\nfunction reconcileCompilerKeyedArrayReorderWithMap(\n ...args: Parameters<typeof reconcileCompilerKeyedArrayReorder>\n): Map<string, CompilerKeyedRowInstance> | undefined {\n const prepared = prepareCompilerKeyedArrayReorder(args);\n if (!prepared) return undefined;\n const reconcile = prepared.update?.mapped\n ? reconcileCompilerKeyedArrayMapReorder\n : reconcileCompilerKeyedArrayReorder;\n return reconcile(args[0], args[1], args[2], args[3], args[4], args[5], prepared);\n}\n\nfunction reconcileCompilerKeyedArrayReorderWithMapAndStructural(\n ...args: Parameters<typeof reconcileCompilerKeyedArrayReorder>\n): Map<string, CompilerKeyedRowInstance> | undefined {\n const prepared = prepareCompilerKeyedArrayReorder(args);\n if (!prepared) return undefined;\n const reconcile = prepared.update?.structuralUpdate\n ? reconcileCompilerKeyedArrayStructuralReorder\n : prepared.update?.mapped\n ? reconcileCompilerKeyedArrayMapReorder\n : reconcileCompilerKeyedArrayReorder;\n return reconcile(args[0], args[1], args[2], args[3], args[4], args[5], prepared);\n}\n\nfunction reconcileCompilerKeyedArrayPrepend(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.prependIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const prefixLength = compilerKeyedArrayPrependLength(finalValue, collectionToken, instances.size);\n if (prefixLength === undefined || !Array.isArray(finalValue)) return undefined;\n const previousInstances = [...instances.values()];\n for (let index = 0; index < previousInstances.length; index += 1) {\n const instance = previousInstances[index];\n if (instance.index !== index || !Object.is(instance.item, finalValue[prefixLength + index])) {\n return undefined;\n }\n }\n\n // Check committed rows in place; only the incoming prefix needs its own key set.\n const incomingKeys = new Set<string>();\n const prepended: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = 0; index < prefixLength; index += 1) {\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n if (instances.has(key) || incomingKeys.has(key)) return undefined;\n incomingKeys.add(key);\n const descriptor = props.create(item, index);\n prepended.push({\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n });\n }\n } catch {\n return undefined;\n }\n\n if (prepended.length > 0) {\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of prepended) fragment.append(instance.element);\n root.insertBefore(fragment, root.firstChild);\n }\n for (let index = 0; index < previousInstances.length; index += 1) {\n previousInstances[index].index = prefixLength + index;\n }\n return keyedRowInstancesByKey([...prepended, ...previousInstances]);\n}\n\nfunction reconcileCompilerKeyedArrayStructuralPrepend(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.filterIndexIndependent ||\n !props.prependIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const update = compilerKeyedArrayStructuralPrependUpdate(\n finalValue,\n collectionToken,\n instances.size,\n );\n const structuralUpdate = update?.structuralUpdate;\n const survivorResult = update?.structuralSurvivors;\n if (\n !update ||\n !structuralUpdate ||\n !survivorResult ||\n structuralUpdate.mappedItemSources ||\n !Array.isArray(finalValue)\n ) {\n return undefined;\n }\n\n const previousInstances = [...instances.values()];\n const survivors: CompilerKeyedRowInstance[] = [];\n const knownKeys = new Set(instances.keys());\n const prepended: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = 0; index < survivorResult.indices.length; index += 1) {\n const sourceIndex = survivorResult.indices[index];\n const instance = previousInstances[sourceIndex];\n const item = finalValue[update.prefixLength + index];\n if (\n !instance ||\n instance.index !== sourceIndex ||\n !Object.is(instance.item, item) ||\n (!survivorResult.keysStable &&\n keyedRowIdentity(props.rowKey(item, update.prefixLength + index)) !== instance.key)\n ) {\n return undefined;\n }\n survivors.push(instance);\n }\n for (let index = 0; index < update.prefixLength; index += 1) {\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n // A new prefix row that reuses any committed key must take complete\n // reconciliation so React can preserve that row's existing identity.\n if (knownKeys.has(key)) return undefined;\n knownKeys.add(key);\n const descriptor = props.create(item, index);\n prepended.push({\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n });\n }\n } catch {\n return undefined;\n }\n\n const survivorSet = new Set(survivorResult.indices);\n for (let index = 0; index < previousInstances.length; index += 1) {\n if (survivorSet.has(index)) continue;\n previousInstances[index].scope?.cleanup();\n previousInstances[index].element.remove();\n }\n if (prepended.length > 0) {\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of prepended) fragment.append(instance.element);\n root.insertBefore(fragment, survivors[0]?.element || root.firstChild);\n }\n for (let index = 0; index < survivors.length; index += 1) {\n survivors[index].index = update.prefixLength + index;\n }\n return keyedRowInstancesByKey([...prepended, ...survivors]);\n}\n\nfunction reconcileCompilerKeyedArrayStructuralPrependMap(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.filterIndexIndependent ||\n !props.prependIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const update = compilerKeyedArrayStructuralPrependMapUpdate(\n finalValue,\n collectionToken,\n instances.size,\n true,\n );\n if (!update || !update.mappedItemSources || !Array.isArray(finalValue)) return undefined;\n\n const mappedItemSources = update.mappedSurvivorsValidated\n ? (update.mappedItemSources as ReadonlyMap<number, unknown>)\n : undefined;\n const mappedStructuralSources = update.mappedSurvivorsValidated\n ? undefined\n : (update.mappedItemSources as CompilerMappedItemSources);\n const previousInstances = [...instances.values()];\n const survivorRange = update.structuralSurvivorRange;\n const survivorIndices = update.structuralSurvivors;\n const survivorCount = survivorRange\n ? survivorRange.end - survivorRange.start\n : (survivorIndices?.length ?? 0);\n if (!survivorRange && !survivorIndices) return undefined;\n const changed: Array<{\n bindingUpdates: CompilerPreparedKeyedRowBindingUpdate[];\n instance: CompilerKeyedRowInstance;\n item: unknown;\n }> = [];\n const knownKeys = new Set(instances.keys());\n const prepended: CompilerKeyedRowInstance[] = [];\n try {\n if (mappedStructuralSources) {\n for (let index = 0; index < survivorCount; index += 1) {\n const sourceIndex = survivorRange ? survivorRange.start + index : survivorIndices![index];\n const instance = previousInstances[sourceIndex];\n const item = finalValue[update.prefixLength + index];\n const sourceItem = mappedStructuralSources.has(item)\n ? mappedStructuralSources.get(item)\n : item;\n if (!instance || instance.index !== sourceIndex || !Object.is(instance.item, sourceItem)) {\n return undefined;\n }\n }\n for (let index = 0; index < survivorCount; index += 1) {\n const sourceIndex = survivorRange ? survivorRange.start + index : survivorIndices![index];\n const instance = previousInstances[sourceIndex];\n const item = finalValue[update.prefixLength + index];\n const sourceItem = mappedStructuralSources.has(item)\n ? mappedStructuralSources.get(item)\n : item;\n if (Object.is(item, sourceItem)) continue;\n if (keyedRowIdentity(props.rowKey(item, update.prefixLength + index)) !== instance.key) {\n return undefined;\n }\n const bindingUpdates = prepareKeyedRowBindingUpdates(\n props,\n instance,\n item,\n update.prefixLength + index,\n );\n if (!bindingUpdates) return undefined;\n changed.push({ bindingUpdates, instance, item });\n }\n } else if (survivorIndices) {\n for (let index = 0; index < survivorCount; index += 1) {\n const sourceIndex = survivorIndices[index];\n const instance = previousInstances[sourceIndex];\n const item = finalValue[update.prefixLength + index];\n const expectedItem = mappedItemSources!.has(index) ? mappedItemSources!.get(index) : item;\n if (\n !instance ||\n instance.index !== sourceIndex ||\n !Object.is(instance.item, expectedItem)\n ) {\n return undefined;\n }\n }\n }\n for (const [index, sourceItem] of mappedItemSources || []) {\n if (!Number.isSafeInteger(index) || index < 0 || index >= survivorCount) {\n return undefined;\n }\n const instance =\n previousInstances[survivorRange ? survivorRange.start + index : survivorIndices![index]];\n const finalIndex = update.prefixLength + index;\n const item = finalValue[finalIndex];\n if (\n !instance ||\n !Object.is(instance.item, sourceItem) ||\n keyedRowIdentity(props.rowKey(item, finalIndex)) !== instance.key\n ) {\n return undefined;\n }\n const bindingUpdates = prepareKeyedRowBindingUpdates(props, instance, item, finalIndex);\n if (!bindingUpdates) return undefined;\n changed.push({ bindingUpdates, instance, item });\n }\n for (let index = 0; index < update.prefixLength; index += 1) {\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n // Reusing a committed key may require React to move an existing row.\n if (knownKeys.has(key)) return undefined;\n knownKeys.add(key);\n const descriptor = props.create(item, index);\n prepended.push({\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n });\n }\n } catch {\n return undefined;\n }\n\n if (survivorRange) {\n for (let index = 0; index < survivorRange.start; index += 1) {\n previousInstances[index].scope?.cleanup();\n previousInstances[index].element.remove();\n }\n for (let index = survivorRange.end; index < previousInstances.length; index += 1) {\n previousInstances[index].scope?.cleanup();\n previousInstances[index].element.remove();\n }\n } else {\n const survivorSet = new Set(survivorIndices);\n for (let index = 0; index < previousInstances.length; index += 1) {\n if (survivorSet.has(index)) continue;\n previousInstances[index].scope?.cleanup();\n previousInstances[index].element.remove();\n }\n }\n const survivors = survivorRange\n ? previousInstances.slice(survivorRange.start, survivorRange.end)\n : survivorIndices!.map((index) => previousInstances[index]);\n if (prepended.length > 0) {\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of prepended) fragment.append(instance.element);\n root.insertBefore(fragment, survivors[0]?.element || root.firstChild);\n }\n for (let index = 0; index < survivors.length; index += 1) {\n survivors[index].index = update.prefixLength + index;\n }\n for (const { bindingUpdates, instance, item } of changed) {\n applyPreparedKeyedRowBindingUpdates(props, instance, bindingUpdates);\n instance.item = item;\n }\n return keyedRowInstancesByKey([...prepended, ...survivors]);\n}\n\nfunction reconcileCompilerKeyedArrayPrependWithStructural(\n ...args: Parameters<typeof reconcileCompilerKeyedArrayPrepend>\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n return (\n reconcileCompilerKeyedArrayStructuralPrepend(...args) ||\n reconcileCompilerKeyedArrayPrepend(...args)\n );\n}\n\nfunction reconcileCompilerKeyedArrayPrependMapWithStructural(\n ...args: Parameters<typeof reconcileCompilerKeyedArrayPrepend>\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n return (\n reconcileCompilerKeyedArrayStructuralPrependMap(...args) ||\n reconcileCompilerKeyedArrayStructuralPrepend(...args) ||\n reconcileCompilerKeyedArrayPrepend(...args)\n );\n}\n\nfunction reconcileCompilerKeyedArrayFilter(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n reactOwnedRows: boolean,\n): Map<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.filterIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const survivorResult = compilerKeyedArrayFilterSurvivors(\n finalValue,\n collectionToken,\n instances.size,\n );\n if (!survivorResult || !Array.isArray(finalValue)) return undefined;\n const { indices: survivorIndices, keysStable } = survivorResult;\n const previousInstances = [...instances.values()];\n const survivors: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = 0; index < survivorIndices.length; index += 1) {\n const sourceIndex = survivorIndices[index];\n const instance = previousInstances[sourceIndex];\n const item = finalValue[index];\n if (\n !instance ||\n instance.index !== sourceIndex ||\n !Object.is(instance.item, item) ||\n (!keysStable && keyedRowIdentity(props.rowKey(item, index)) !== instance.key)\n ) {\n return undefined;\n }\n survivors.push(instance);\n }\n } catch {\n return undefined;\n }\n\n const survivorSet = new Set(survivorIndices);\n for (let index = 0; index < previousInstances.length; index += 1) {\n if (survivorSet.has(index)) continue;\n previousInstances[index].scope?.cleanup();\n previousInstances[index].element.remove();\n }\n for (let index = 0; index < survivors.length; index += 1) {\n survivors[index].index = index;\n }\n return keyedRowInstancesByKey(survivors);\n}\n\nfunction createKeyedRowConditionalRuntime(): KeyedRowConditionalRuntime {\n class FarmKeyedRowConditional extends React.Component<RowConditionalProps, RowConditionalState> {\n static displayName = \"FarmCompiledKeyedRowConditional\";\n\n state: RowConditionalState = {\n renderVersion: this.props.renderVersion,\n item: this.props.item,\n index: this.props.index,\n };\n private unsubscribe: (() => void) | undefined;\n\n static getDerivedStateFromProps(\n props: RowConditionalProps,\n state: RowConditionalState,\n ): Partial<RowConditionalState> | null {\n if (props.renderVersion === state.renderVersion) return null;\n return {\n renderVersion: props.renderVersion,\n item: props.item,\n index: props.index,\n };\n }\n\n private refresh: RowConditionalRefresh = (item, index, afterCommit) => {\n this.setState({ item, index }, afterCommit);\n };\n\n private subscribe(): void {\n this.unsubscribe = this.props.owner.subscribe(this.props.rowKey, this.props.id, this.refresh);\n }\n\n componentDidMount(): void {\n this.subscribe();\n }\n\n componentDidUpdate(previous: RowConditionalProps): void {\n if (\n previous.owner === this.props.owner &&\n previous.rowKey === this.props.rowKey &&\n previous.id === this.props.id\n ) {\n return;\n }\n this.unsubscribe?.();\n this.subscribe();\n }\n\n componentWillUnmount(): void {\n this.unsubscribe?.();\n }\n\n render(): React.ReactNode {\n return this.props.render(this.state.item, this.state.index);\n }\n }\n\n return {\n Component: FarmKeyedRowConditional,\n readValues: readKeyedRowConditionalValues,\n changed: keyedRowConditionalChanged,\n };\n}\n\nfunction createKeyedRowHostRuntime(): KeyedRowHostRuntime {\n const owner: Pick<ConditionalBlockOwner, \"subscribe\"> = {\n subscribe: () => () => {},\n };\n return {\n mount: (element, descriptor, requestFallback) =>\n mountCompilerHostTree(owner, element, descriptor, requestFallback),\n };\n}\n\nfunction createKeyedRowsBlockComponentCore(\n owner: Pick<CompilerRuntimeFeatureOwner, \"subscribe\" | \"getDefinitionVersion\">,\n options: KeyedRowsRuntimeOptions = {},\n): React.ComponentType<CompilerKeyedRowsBlockProps> {\n interface State {\n fallback: boolean;\n }\n\n class FarmKeyedRowsBlock extends React.Component<CompilerKeyedRowsBlockProps, State> {\n static displayName = \"FarmCompiledKeyedRows\";\n\n state: State = { fallback: false };\n private root: Element | null = null;\n private mounted = false;\n private fallbackRequested = false;\n private fallbackVersion = 0;\n private fallbackKeysWereUnsafe = false;\n private propSyncQueued = false;\n private currentProps = this.props;\n private definitionVersion = owner.getDefinitionVersion?.();\n declare private stop: (() => void) | undefined;\n declare private id: number | undefined;\n private instances = new Map<string, CompilerKeyedRowInstance>();\n private keyedTargets = options.keyedTargets?.(this.props);\n private collectionToken: object | undefined;\n private renderVersion = 0;\n private readonly eventHandlers = new Map<\n string,\n Map<number, React.EventHandler<React.SyntheticEvent>>\n >();\n private readonly conditionalListeners = new Map<string, Map<number, RowConditionalRefresh>>();\n private instancesByElement = new WeakMap<Element, CompilerKeyedRowInstance>();\n private readonly conditionalOwner: RowConditionalOwner = {\n subscribe: (key, id, refresh) => this.subscribeToRowConditional(key, id, refresh),\n };\n\n private captureRoot = (root: Element | null) => {\n this.root = root;\n };\n\n private requestHostScopeFallback = () => {\n this.activateFallback();\n };\n\n private readRows(\n props: CompilerKeyedRowsBlockProps,\n ): { items: unknown[]; keys: string[] } | null {\n const items = materializeIterable(props.items());\n const keys = items.map((item, index) => keyedRowIdentity(props.rowKey(item, index)));\n if (new Set(keys).size !== keys.length) return null;\n return { items, keys };\n }\n\n private rowEvent = (\n item: unknown,\n index: number,\n eventId: number,\n ): React.EventHandler<React.SyntheticEvent> => {\n if (this.state.fallback) {\n return (event) => this.currentProps.events?.[eventId]?.invoke(item, index, event);\n }\n if (this.usesDelegatedEvents()) {\n // The container's delegated listener runs the handler. React still checks\n // that controlled value/checked fields carry onChange, so give change\n // events one shared no-op instead of none; other events stay unset.\n return (\n this.currentProps.events?.[eventId]?.name === \"onChange\"\n ? delegatedRowChangePlaceholder\n : undefined\n ) as React.EventHandler<React.SyntheticEvent>;\n }\n const key = keyedRowIdentity(this.currentProps.rowKey(item, index));\n let handlers = this.eventHandlers.get(key);\n if (!handlers) {\n handlers = new Map();\n this.eventHandlers.set(key, handlers);\n }\n const existing = handlers.get(eventId);\n if (existing) return existing;\n const handler: React.EventHandler<React.SyntheticEvent> = (event) => {\n const instance = this.instances.get(key);\n const descriptor = this.currentProps.events?.[eventId];\n if (!instance || !descriptor) return;\n return descriptor.invoke(instance.item, instance.index, event);\n };\n handlers.set(eventId, handler);\n return handler;\n };\n\n private usesDelegatedEvents(props: CompilerKeyedRowsBlockProps = this.currentProps): boolean {\n return Boolean(\n props.delegateEvents &&\n props.events?.length &&\n props.events.every((event) => event.path !== undefined),\n );\n }\n\n private rebuildElementIndex(instances: ReadonlyMap<string, CompilerKeyedRowInstance>): void {\n this.instancesByElement = new WeakMap();\n for (const instance of instances.values()) {\n this.instancesByElement.set(instance.element, instance);\n }\n }\n\n private eventRowInstance(event: React.SyntheticEvent): CompilerKeyedRowInstance | undefined {\n if (!this.root) return undefined;\n const target = event.target as Node | null;\n if (!target) return undefined;\n let element =\n target.nodeType === 1 ? (target as Element) : (target.parentElement as Element | null);\n while (element && element.parentElement !== this.root) element = element.parentElement;\n return element?.parentElement === this.root\n ? this.instancesByElement.get(element)\n : undefined;\n }\n\n private invokeDelegatedEvent(\n descriptor: CompilerKeyedRowEvent,\n instance: CompilerKeyedRowInstance,\n event: React.SyntheticEvent,\n currentTarget: Element,\n ): void {\n const ownCurrentTarget = Object.getOwnPropertyDescriptor(event, \"currentTarget\");\n try {\n Object.defineProperty(event, \"currentTarget\", {\n configurable: true,\n value: currentTarget,\n });\n descriptor.invoke(instance.item, instance.index, event);\n } finally {\n if (ownCurrentTarget) Object.defineProperty(event, \"currentTarget\", ownCurrentTarget);\n else Reflect.deleteProperty(event, \"currentTarget\");\n }\n }\n\n private dispatchDelegatedEvent = (name: string, event: React.SyntheticEvent): void => {\n const instance = this.eventRowInstance(event);\n const eventTarget = event.target as Node | null;\n if (!instance || !eventTarget) return;\n const capture = name.endsWith(\"Capture\");\n const matches = (this.currentProps.events || [])\n .filter((descriptor) => descriptor.name === name && descriptor.path !== undefined)\n .map((descriptor) => ({\n descriptor,\n target: findCompilerHostTarget(instance.element, descriptor.path || []),\n }))\n .filter((match): match is { descriptor: CompilerKeyedRowEvent; target: Element } =>\n Boolean(\n match.target && (match.target === eventTarget || match.target.contains(eventTarget)),\n ),\n )\n .sort((left, right) =>\n capture\n ? (left.descriptor.path?.length || 0) - (right.descriptor.path?.length || 0)\n : (right.descriptor.path?.length || 0) - (left.descriptor.path?.length || 0),\n );\n\n for (const match of matches) {\n this.invokeDelegatedEvent(match.descriptor, instance, event, match.target);\n if (event.isPropagationStopped()) break;\n }\n };\n\n private delegatedContainerProps(container: React.ReactElement): Record<string, unknown> {\n if (this.state.fallback || !this.usesDelegatedEvents()) return {};\n const props = container.props as Record<string, unknown>;\n return Object.fromEntries(\n [...new Set((this.currentProps.events || []).map((event) => event.name))].map((name) => {\n const existing = props[name] as React.EventHandler<React.SyntheticEvent> | undefined;\n const capture = name.endsWith(\"Capture\");\n const handler: React.EventHandler<React.SyntheticEvent> = (event) => {\n if (capture) existing?.(event);\n if (!event.isPropagationStopped()) this.dispatchDelegatedEvent(name, event);\n if (!capture && !event.isPropagationStopped()) existing?.(event);\n };\n return [name, handler];\n }),\n );\n }\n\n private rowConditional = (\n item: unknown,\n index: number,\n conditionalId: number,\n render: (item: unknown, index: number) => React.ReactNode,\n ): React.ReactNode => {\n if (this.state.fallback) return render(item, index);\n const key = keyedRowIdentity(this.currentProps.rowKey(item, index));\n const Conditional = options.conditionals?.Component;\n if (!Conditional) return render(item, index);\n return React.createElement(Conditional, {\n key: `${key}:${conditionalId}`,\n owner: this.conditionalOwner,\n rowKey: key,\n id: conditionalId,\n renderVersion: this.renderVersion,\n item,\n index,\n render,\n });\n };\n\n private subscribeToRowConditional(\n key: string,\n id: number,\n refresh: RowConditionalRefresh,\n ): () => void {\n let listeners = this.conditionalListeners.get(key);\n if (!listeners) {\n listeners = new Map();\n this.conditionalListeners.set(key, listeners);\n }\n listeners.set(id, refresh);\n return () => {\n const current = this.conditionalListeners.get(key);\n if (current?.get(id) !== refresh) return;\n current.delete(id);\n if (current.size === 0) this.conditionalListeners.delete(key);\n };\n }\n\n private hasReactOwnedRows(props: CompilerKeyedRowsBlockProps = this.currentProps): boolean {\n return Boolean(\n props.conditionals?.length || (props.events?.length && !this.usesDelegatedEvents(props)),\n );\n }\n\n private cleanupHostScopes(\n instances: ReadonlyMap<string, CompilerKeyedRowInstance> = this.instances,\n ): void {\n for (const instance of instances.values()) instance.scope?.cleanup();\n }\n\n private mountRowHostScope(\n element: Element,\n descriptor: CompilerHostElement,\n props: CompilerKeyedRowsBlockProps = this.currentProps,\n ): CompilerHostTreeScope | null | undefined {\n if (!props.hostBlocks) return undefined;\n return options.hostBlocks?.mount(element, descriptor, this.requestHostScopeFallback) || null;\n }\n\n private readConditionalValues(\n props: CompilerKeyedRowsBlockProps,\n item: unknown,\n index: number,\n ): ReadonlyMap<number, readonly unknown[]> {\n return (\n options.conditionals?.readValues(props, item, index) || EMPTY_KEYED_ROW_CONDITIONAL_VALUES\n );\n }\n\n // Call only after committing this.instances: it is the authoritative live-key set.\n private pruneEventHandlers(): void {\n if (this.eventHandlers.size === 0) return;\n for (const key of this.eventHandlers.keys()) {\n if (!this.instances.has(key)) this.eventHandlers.delete(key);\n }\n }\n\n private pruneConditionalListeners(): void {\n if (this.conditionalListeners.size === 0) return;\n for (const key of this.conditionalListeners.keys()) {\n if (!this.instances.has(key)) this.conditionalListeners.delete(key);\n }\n }\n\n private commitCurrentCollection(dirtyState?: ReadonlySet<number>): void {\n this.collectionToken = options.keyedUpdates?.commit(\n this.currentProps.items(),\n this.instances,\n );\n this.keyedTargets?.commit(this.currentProps, dirtyState);\n }\n\n private adopt(): boolean {\n if (!this.root) return false;\n if (this.keyedTargets && !this.keyedTargets.hasSafeTargets(this.currentProps)) return false;\n const rows = this.readRows(this.currentProps);\n const elements = [...this.root.children];\n if (!rows || rows.items.length !== elements.length) return false;\n const reactOwnedRows = this.hasReactOwnedRows();\n const opaqueConditionalPaths = new Set(\n (this.currentProps.conditionals || []).map((conditional) => conditional.path.join(\".\")),\n );\n const instances = new Map<string, CompilerKeyedRowInstance>();\n for (let index = 0; index < rows.items.length; index += 1) {\n const descriptor = this.currentProps.create(rows.items[index], index);\n if (\n reactOwnedRows &&\n !matchesCompilerHostElement(elements[index], descriptor, opaqueConditionalPaths)\n ) {\n this.cleanupHostScopes(instances);\n return false;\n }\n const scope = this.mountRowHostScope(elements[index], descriptor);\n if (this.currentProps.hostBlocks && !scope) {\n this.cleanupHostScopes(instances);\n return false;\n }\n const instance: CompilerKeyedRowInstance = {\n key: rows.keys[index],\n element: elements[index],\n scope: scope || undefined,\n values: reactOwnedRows\n ? this.currentProps.bindings.map(() => UNSET_KEYED_ROW_BINDING)\n : readKeyedRowBindingValues(this.currentProps, rows.items[index], index),\n item: rows.items[index],\n index,\n conditionalValues: this.readConditionalValues(\n this.currentProps,\n rows.items[index],\n index,\n ),\n };\n instances.set(rows.keys[index], instance);\n }\n if (reactOwnedRows) {\n for (const instance of instances.values()) {\n // React compares the next row against its previous virtual props, not\n // against DOM values patched by Farm between commits. Reapply every\n // binding only after every row passes structural validation so a\n // failed adoption cannot mutate an earlier row before React fallback.\n applyKeyedRowBindings(this.currentProps, instance, instance.item, instance.index);\n }\n }\n this.cleanupHostScopes();\n this.instances = instances;\n this.rebuildElementIndex(instances);\n this.pruneEventHandlers();\n this.pruneConditionalListeners();\n this.commitCurrentCollection();\n return true;\n }\n\n private hasUnsafeFallbackKeys(): boolean {\n try {\n return this.readRows(this.currentProps) === null;\n } catch {\n return true;\n }\n }\n\n private activateFallback(afterCommit?: () => void): void {\n if (!this.mounted || this.state.fallback || this.fallbackRequested) {\n afterCommit?.();\n return;\n }\n this.fallbackRequested = true;\n this.fallbackKeysWereUnsafe = this.hasUnsafeFallbackKeys();\n // One key change on entry: the compiled path mutated the DOM behind\n // React's back, so the first fallback render must rebuild the subtree.\n this.cleanupHostScopes();\n this.fallbackVersion += 1;\n this.setState({ fallback: true }, afterCommit);\n }\n\n private synchronizeReactOwnedRows(afterCommit?: () => void): void {\n this.forceUpdate(() => {\n if (!this.mounted) {\n afterCommit?.();\n return;\n }\n if (!this.adopt()) {\n this.activateFallback(afterCommit);\n return;\n }\n afterCommit?.();\n });\n }\n\n private notifyConditionalChanges(\n changes: readonly {\n key: string;\n id: number;\n item: unknown;\n index: number;\n }[],\n afterCommit?: () => void,\n ): void {\n if (changes.length === 0) {\n afterCommit?.();\n return;\n }\n let pending = changes.length;\n const committed = () => {\n pending -= 1;\n if (pending === 0) afterCommit?.();\n };\n // The normal row bindings above are patched synchronously. Flush the\n // React-owned conditional boundaries in the same turn as well so React\n // 18 cannot expose a transient row where text and branch disagree.\n flushSync(() => {\n for (const change of changes) {\n const refresh = this.conditionalListeners.get(change.key)?.get(change.id);\n if (refresh) refresh(change.item, change.index, committed);\n else committed();\n }\n });\n }\n\n private refreshDirtyBindings(\n dirtyState: ReadonlySet<number>,\n afterCommit?: () => void,\n ): boolean {\n if (\n !this.mounted ||\n !this.root ||\n this.state.fallback ||\n this.hasReactOwnedRows() ||\n this.currentProps.hostBlocks ||\n !this.currentProps.structureDependencies ||\n this.currentProps.structureDependencies.some((dependency) => dirtyState.has(dependency)) ||\n this.currentProps.bindings.some((binding) => binding.dependencies === undefined)\n ) {\n return false;\n }\n\n const affectedBindingIndices: number[] = [];\n for (\n let bindingIndex = 0;\n bindingIndex < this.currentProps.bindings.length;\n bindingIndex += 1\n ) {\n const dependencies = this.currentProps.bindings[bindingIndex].dependencies || [];\n if (dependencies.some((dependency) => dirtyState.has(dependency))) {\n affectedBindingIndices.push(bindingIndex);\n }\n }\n\n const targetsPrepared = this.keyedTargets?.prepare(this.currentProps, affectedBindingIndices);\n if (targetsPrepared === false) {\n this.activateFallback(afterCommit);\n return true;\n }\n\n let preparedBindingUpdates: CompilerPreparedKeyedRowBindingCommit[] | undefined;\n for (const bindingIndex of affectedBindingIndices) {\n const selection = this.keyedTargets?.select(\n this.currentProps,\n bindingIndex,\n dirtyState,\n this.instances.keys(),\n this.instances.size,\n );\n const selectedKeys = selection?.keys || this.instances.keys();\n const selectedCount = selection?.count ?? this.instances.size;\n\n const prepare = affectedBindingIndices.length > 1 || selectedCount > 1;\n if (prepare) preparedBindingUpdates ||= [];\n for (const key of selectedKeys) {\n const instance = this.instances.get(key);\n if (!instance) continue;\n if (!prepare) {\n applyKeyedRowBinding(\n this.currentProps,\n instance,\n instance.item,\n instance.index,\n bindingIndex,\n );\n continue;\n }\n const update = prepareKeyedRowBindingUpdate(\n this.currentProps,\n instance,\n instance.item,\n instance.index,\n bindingIndex,\n );\n if (update === undefined) {\n this.activateFallback(afterCommit);\n return true;\n }\n if (update) preparedBindingUpdates!.push([instance, update]);\n }\n }\n\n if (preparedBindingUpdates) {\n for (const [instance, [bindingIndex, target, value]] of preparedBindingUpdates) {\n commitKeyedRowBinding(\n this.currentProps.bindings[bindingIndex],\n instance,\n bindingIndex,\n value,\n target,\n );\n }\n }\n this.keyedTargets?.commitPrepared(affectedBindingIndices);\n afterCommit?.();\n return true;\n }\n\n private reconcileStableRows(\n rows: { items: unknown[]; keys: string[] },\n afterCommit?: () => void,\n dirtyState?: ReadonlySet<number>,\n ): boolean {\n if (rows.keys.length !== this.instances.size) return false;\n let index = 0;\n for (const key of this.instances.keys()) {\n if (rows.keys[index] !== key) return false;\n index += 1;\n }\n\n // Host scopes can replace binding targets during their update, so only\n // static row structures can safely resolve the whole row set up front.\n const shouldPrepareBindings =\n rows.items.length > 1 &&\n this.currentProps.bindings.length > 0 &&\n !this.currentProps.hostBlocks;\n const preparedBindings = shouldPrepareBindings\n ? prepareKeyedRowBindingSetUpdates(this.currentProps, this.instances, rows)\n : undefined;\n if (shouldPrepareBindings && !preparedBindings) {\n this.activateFallback(afterCommit);\n return true;\n }\n\n const conditionalChanges: Array<{\n key: string;\n id: number;\n item: unknown;\n index: number;\n }> = [];\n for (index = 0; index < rows.items.length; index += 1) {\n const key = rows.keys[index];\n const existing = this.instances.get(key);\n if (!existing) return false;\n if (this.currentProps.hostBlocks) {\n const descriptor = this.currentProps.create(rows.items[index], index);\n if (!existing.scope?.update(descriptor)) {\n this.activateFallback(afterCommit);\n return true;\n }\n }\n const bindingUpdates = preparedBindings?.[index];\n if (bindingUpdates) {\n applyPreparedKeyedRowBindingUpdates(this.currentProps, existing, bindingUpdates);\n } else {\n applyKeyedRowBindings(this.currentProps, existing, rows.items[index], index);\n }\n const conditionalValues = this.readConditionalValues(\n this.currentProps,\n rows.items[index],\n index,\n );\n for (const [id, values] of conditionalValues) {\n if (options.conditionals?.changed(existing.conditionalValues.get(id), values)) {\n conditionalChanges.push({\n key,\n id,\n item: rows.items[index],\n index,\n });\n }\n }\n existing.conditionalValues = conditionalValues;\n existing.item = rows.items[index];\n existing.index = index;\n }\n this.commitCurrentCollection(dirtyState);\n this.notifyConditionalChanges(conditionalChanges, afterCommit);\n return true;\n }\n\n private reconcileRemovals(\n rows: { items: unknown[]; keys: string[] },\n afterCommit?: () => void,\n dirtyState?: ReadonlySet<number>,\n ): boolean {\n if (this.hasReactOwnedRows() || rows.keys.length >= this.instances.size) return false;\n const removed: CompilerKeyedRowInstance[] = [];\n let nextIndex = 0;\n for (const [key, instance] of this.instances) {\n if (key === rows.keys[nextIndex]) nextIndex += 1;\n else removed.push(instance);\n }\n if (nextIndex !== rows.keys.length) return false;\n // Validate every singleton target before removing rows. Direct singleton\n // updates cache a missing target and cannot recover on a later refresh.\n const shouldPrepareBindings =\n this.currentProps.bindings.length > 0 && !this.currentProps.hostBlocks;\n if (\n shouldPrepareBindings &&\n rows.items.length === 1 &&\n this.currentProps.bindings.some(\n (binding) =>\n !findCompilerHostTarget(this.instances.get(rows.keys[0])!.element, binding.path),\n )\n ) {\n this.activateFallback(afterCommit);\n return true;\n }\n const preparedBindings = shouldPrepareBindings\n ? prepareKeyedRowBindingSetUpdates(this.currentProps, this.instances, rows)\n : undefined;\n if (shouldPrepareBindings && !preparedBindings) {\n this.activateFallback(afterCommit);\n return true;\n }\n const conditionalChanges: Array<{\n key: string;\n id: number;\n item: unknown;\n index: number;\n }> = [];\n for (let index = 0; index < rows.items.length; index += 1) {\n const key = rows.keys[index];\n const existing = this.instances.get(key);\n if (!existing) return false;\n if (this.currentProps.hostBlocks) {\n const descriptor = this.currentProps.create(rows.items[index], index);\n if (!existing.scope?.update(descriptor)) {\n this.activateFallback(afterCommit);\n return true;\n }\n }\n const bindingUpdates = preparedBindings?.[index];\n if (bindingUpdates) {\n applyPreparedKeyedRowBindingUpdates(this.currentProps, existing, bindingUpdates);\n } else {\n applyKeyedRowBindings(this.currentProps, existing, rows.items[index], index);\n }\n const conditionalValues = this.readConditionalValues(\n this.currentProps,\n rows.items[index],\n index,\n );\n for (const [id, values] of conditionalValues) {\n if (options.conditionals?.changed(existing.conditionalValues.get(id), values)) {\n conditionalChanges.push({\n key,\n id,\n item: rows.items[index],\n index,\n });\n }\n }\n existing.conditionalValues = conditionalValues;\n existing.item = rows.items[index];\n existing.index = index;\n }\n\n for (const instance of removed) {\n instance.scope?.cleanup();\n instance.element.remove();\n this.instances.delete(instance.key);\n this.eventHandlers.delete(instance.key);\n this.conditionalListeners.delete(instance.key);\n }\n this.commitCurrentCollection(dirtyState);\n this.notifyConditionalChanges(conditionalChanges, afterCommit);\n return true;\n }\n\n private reconcile(afterCommit?: () => void, dirtyState?: ReadonlySet<number>): void {\n if (!this.mounted || !this.root) {\n afterCommit?.();\n return;\n }\n if (this.state.fallback) {\n // React owns the container while in fallback; keep the key stable so\n // updates reconcile in place instead of remounting the subtree (which\n // would wipe uncontrolled inputs, focus, and scroll). The exception\n // is duplicate runtime keys: React's reconciliation of a keyed list\n // with duplicates is unreliable, so any render touched by them (this\n // one, or the previously committed one) still remounts.\n const unsafeKeys = this.hasUnsafeFallbackKeys();\n if (unsafeKeys || this.fallbackKeysWereUnsafe) this.fallbackVersion += 1;\n this.fallbackKeysWereUnsafe = unsafeKeys;\n this.forceUpdate(afterCommit);\n return;\n }\n\n if (this.keyedTargets && !this.keyedTargets.hasSafeTargets(this.currentProps, dirtyState)) {\n this.activateFallback(afterCommit);\n return;\n }\n\n const rows = this.readRows(this.currentProps);\n if (!rows) {\n this.activateFallback(afterCommit);\n return;\n }\n\n if (this.hasReactOwnedRows()) {\n const previousKeys = [...this.instances.keys()];\n if (\n rows.keys.length !== previousKeys.length ||\n rows.keys.some((key, index) => key !== previousKeys[index])\n ) {\n this.synchronizeReactOwnedRows(afterCommit);\n return;\n }\n }\n\n if (rows.items.length === 0) {\n this.cleanupHostScopes();\n this.root.replaceChildren();\n this.instances = new Map();\n this.instancesByElement = new WeakMap();\n this.eventHandlers.clear();\n this.conditionalListeners.clear();\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n\n if (this.reconcileStableRows(rows, afterCommit, dirtyState)) return;\n if (this.reconcileRemovals(rows, afterCommit, dirtyState)) return;\n\n const nextKeys = new Set(rows.keys);\n const hasSurvivingRows = rows.keys.some((key) => this.instances.has(key));\n const preparedBindings =\n nextKeys.size < this.instances.size &&\n this.currentProps.bindings.length > 0 &&\n !this.currentProps.hostBlocks &&\n rows.keys.every((key) => this.instances.has(key))\n ? prepareKeyedRowBindingSetUpdates(this.currentProps, this.instances, rows)\n : null;\n if (preparedBindings === undefined) {\n this.activateFallback(afterCommit);\n return;\n }\n const oldIndices = new Map<string, number>();\n if (hasSurvivingRows) {\n [...this.instances].forEach(([key], index) => oldIndices.set(key, index));\n }\n for (const [key, instance] of this.instances) {\n if (!nextKeys.has(key)) {\n instance.scope?.cleanup();\n if (hasSurvivingRows) instance.element.remove();\n }\n }\n\n const sequence = hasSurvivingRows\n ? rows.keys.map((key) => oldIndices.get(key) ?? -1)\n : rows.keys.map(() => -1);\n const nextInstances: CompilerKeyedRowInstance[] = [];\n const conditionalChanges: Array<{\n key: string;\n id: number;\n item: unknown;\n index: number;\n }> = [];\n for (let index = 0; index < rows.items.length; index += 1) {\n const key = rows.keys[index];\n const existing = this.instances.get(key);\n if (existing) {\n if (this.currentProps.hostBlocks) {\n const descriptor = this.currentProps.create(rows.items[index], index);\n if (!existing.scope?.update(descriptor)) {\n this.activateFallback(afterCommit);\n return;\n }\n }\n if (preparedBindings) {\n applyPreparedKeyedRowBindingUpdates(\n this.currentProps,\n existing,\n preparedBindings[index],\n );\n } else {\n applyKeyedRowBindings(this.currentProps, existing, rows.items[index], index);\n }\n const conditionalValues = this.readConditionalValues(\n this.currentProps,\n rows.items[index],\n index,\n );\n for (const [id, values] of conditionalValues) {\n if (options.conditionals?.changed(existing.conditionalValues.get(id), values)) {\n conditionalChanges.push({\n key,\n id,\n item: rows.items[index],\n index,\n });\n }\n }\n existing.conditionalValues = conditionalValues;\n existing.item = rows.items[index];\n existing.index = index;\n nextInstances.push(existing);\n continue;\n }\n const descriptor = this.currentProps.create(rows.items[index], index);\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const scope = this.mountRowHostScope(element, descriptor);\n if (this.currentProps.hostBlocks && !scope) {\n for (const instance of nextInstances) {\n if (!this.instances.has(instance.key)) instance.scope?.cleanup();\n }\n this.activateFallback(afterCommit);\n return;\n }\n nextInstances.push({\n key,\n element,\n scope: scope || undefined,\n values: readKeyedRowBindingValues(this.currentProps, rows.items[index], index),\n item: rows.items[index],\n index,\n conditionalValues: this.readConditionalValues(\n this.currentProps,\n rows.items[index],\n index,\n ),\n });\n }\n\n if (!hasSurvivingRows) {\n const fragment = this.root.ownerDocument.createDocumentFragment();\n for (const instance of nextInstances) fragment.append(instance.element);\n this.root.replaceChildren(fragment);\n } else {\n reorderCompilerKeyedRows(this.root, nextInstances, sequence, null);\n }\n this.instances = keyedRowInstancesByKey(nextInstances);\n this.rebuildElementIndex(this.instances);\n this.pruneEventHandlers();\n this.pruneConditionalListeners();\n this.commitCurrentCollection(dirtyState);\n this.notifyConditionalChanges(conditionalChanges, afterCommit);\n }\n\n private refresh: CompilerBlockRefresh = (afterCommit, dirtyState) => {\n if (dirtyState && options.keyedUpdates && this.mounted && this.root && !this.state.fallback) {\n const result = options.keyedUpdates.reconcile(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n options.conditionals,\n );\n if (result) {\n if (result.fallback) this.activateFallback(afterCommit);\n else {\n this.collectionToken = result.collectionToken;\n this.notifyConditionalChanges(result.conditionalChanges, afterCommit);\n }\n return;\n }\n const appendedInstances = options.keyedUpdates.append(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n this.root,\n this.hasReactOwnedRows(),\n );\n if (appendedInstances) {\n this.instances =\n appendedInstances instanceof Map ? appendedInstances : new Map(appendedInstances);\n this.rebuildElementIndex(this.instances);\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n const positionedInstances = options.keyedUpdates.position?.(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n this.root,\n this.hasReactOwnedRows(),\n );\n if (positionedInstances) {\n // Position refreshes return the original map only when row instances,\n // order, and elements are unchanged; their item/binding data is current.\n if (positionedInstances !== this.instances) {\n this.instances = new Map(positionedInstances);\n this.rebuildElementIndex(this.instances);\n this.pruneEventHandlers();\n this.pruneConditionalListeners();\n }\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n const reorderedInstances = options.keyedUpdates.reorder?.(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n this.root,\n this.hasReactOwnedRows(),\n );\n if (reorderedInstances) {\n const removedRows = reorderedInstances.size < this.instances.size;\n // Reorder preparation returns an owned map (or the current one for\n // unchanged order), just like append and rolling-window updates.\n this.instances = reorderedInstances;\n if (removedRows) {\n // Pure reorders keep the same element -> instance associations;\n // those instances already hold their current item and index.\n this.rebuildElementIndex(this.instances);\n this.pruneEventHandlers();\n this.pruneConditionalListeners();\n }\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n const rollingWindowInstances = options.keyedUpdates.rollingWindow?.(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n this.root,\n this.hasReactOwnedRows(),\n );\n if (rollingWindowInstances) {\n const delta = COMPILER_KEYED_ROLLING_WINDOW_DELTAS.get(rollingWindowInstances);\n this.instances =\n rollingWindowInstances instanceof Map\n ? rollingWindowInstances\n : new Map(rollingWindowInstances);\n if (delta) {\n COMPILER_KEYED_ROLLING_WINDOW_DELTAS.delete(rollingWindowInstances);\n for (const instance of delta.added) {\n this.instancesByElement.set(instance.element, instance);\n }\n for (const key of delta.removedKeys) {\n this.eventHandlers.delete(key);\n this.conditionalListeners.delete(key);\n }\n } else {\n this.rebuildElementIndex(this.instances);\n this.pruneEventHandlers();\n this.pruneConditionalListeners();\n }\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n const filteredInstances = options.keyedUpdates.filter?.(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n this.hasReactOwnedRows(),\n );\n if (filteredInstances) {\n this.instances = filteredInstances;\n this.rebuildElementIndex(this.instances);\n this.pruneEventHandlers();\n this.pruneConditionalListeners();\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n const prependedInstances = options.keyedUpdates.prepend?.(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n this.root,\n this.hasReactOwnedRows(),\n );\n if (prependedInstances) {\n this.instances = new Map(prependedInstances);\n this.rebuildElementIndex(this.instances);\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n }\n if (dirtyState && this.refreshDirtyBindings(dirtyState, afterCommit)) return;\n this.reconcile(afterCommit, dirtyState);\n };\n\n private listen(): void {\n const id = this.currentProps.id;\n const stop = this.stop;\n if (this.id === id) return;\n stop?.();\n this.stop = owner.subscribe(id, this.refresh);\n this.id = id;\n }\n\n private schedulePropSync(): void {\n if (this.propSyncQueued) return;\n this.propSyncQueued = true;\n queueMicrotask(() => {\n this.propSyncQueued = false;\n if (this.mounted && !this.state.fallback) {\n this.listen();\n this.reconcile();\n }\n });\n }\n\n shouldComponentUpdate(nextProps: CompilerKeyedRowsBlockProps, nextState: State): boolean {\n const wasReactOwned = this.hasReactOwnedRows(this.currentProps);\n const willBeReactOwned = this.hasReactOwnedRows(nextProps);\n const definitionChanged = this.definitionVersion !== owner.getDefinitionVersion?.();\n this.currentProps = nextProps;\n this.keyedTargets ||= options.keyedTargets?.(nextProps);\n if (this.state.fallback && nextState.fallback) {\n const unsafeKeys = this.hasUnsafeFallbackKeys();\n if (unsafeKeys || this.fallbackKeysWereUnsafe) this.fallbackVersion += 1;\n this.fallbackKeysWereUnsafe = unsafeKeys;\n }\n if (nextState.fallback || this.state.fallback) return true;\n if (definitionChanged || wasReactOwned || willBeReactOwned) {\n // Parent prop updates and Fast Refresh definitions must pass through\n // React so event locations, static row markup, and proxy identities\n // cannot remain tied to an older render definition.\n this.eventHandlers.clear();\n return true;\n }\n this.schedulePropSync();\n return false;\n }\n\n componentDidUpdate(previousProps: CompilerKeyedRowsBlockProps): void {\n this.listen();\n const nextDefinitionVersion = owner.getDefinitionVersion?.();\n const definitionChanged = this.definitionVersion !== nextDefinitionVersion;\n this.definitionVersion = nextDefinitionVersion;\n if (\n this.state.fallback ||\n previousProps === this.props ||\n (!definitionChanged &&\n !this.hasReactOwnedRows(previousProps) &&\n !this.hasReactOwnedRows(this.props)) ||\n this.adopt()\n ) {\n return;\n }\n this.activateFallback();\n }\n\n componentDidMount(): void {\n this.mounted = true;\n this.listen();\n if (!this.adopt()) this.activateFallback();\n }\n\n componentWillUnmount(): void {\n this.mounted = false;\n const stop = this.stop;\n stop?.();\n this.id = undefined;\n // React 18 StrictMode replays mount lifecycles without detaching host refs.\n // captureRoot clears the element on a real unmount; retain it for replay adoption.\n this.cleanupHostScopes();\n this.instances.clear();\n this.keyedTargets?.clear();\n this.instancesByElement = new WeakMap();\n this.eventHandlers.clear();\n this.conditionalListeners.clear();\n }\n\n render(): React.ReactNode {\n this.renderVersion += 1;\n const container = this.currentProps.render(this.rowEvent, this.rowConditional);\n if (!React.isValidElement(container) || typeof container.type !== \"string\") {\n throw new TypeError(\n `Compiled keyed rows ${this.currentProps.id} must own one host container.`,\n );\n }\n return React.cloneElement(container, {\n ...this.delegatedContainerProps(container),\n key: this.state.fallback ? `react-${this.fallbackVersion}` : \"compiled\",\n ref: this.captureRoot,\n } as React.Attributes);\n }\n }\n\n return FarmKeyedRowsBlock;\n}\n\nfunction createKeyedRowsBlockComponent(\n owner: Pick<CompilerRuntimeFeatureOwner, \"subscribe\" | \"getDefinitionVersion\">,\n options: KeyedRowsRuntimeOptions = {},\n): React.ComponentType<CompilerKeyedRowsBlockProps> {\n return createKeyedRowsBlockComponentCore(owner, {\n ...options,\n keyedTargets: createKeyedTargetRuntime,\n });\n}\n\nfunction createKeyedRangesBlockComponent(\n owner: Pick<CompilerRuntimeFeatureOwner, \"subscribe\" | \"getDefinitionVersion\">,\n): React.ComponentType<CompilerKeyedRangesBlockProps> {\n interface State {\n fallback: boolean;\n }\n\n interface ReadRange {\n items: unknown[];\n keys: string[];\n }\n\n class FarmKeyedRangesBlock extends React.Component<CompilerKeyedRangesBlockProps, State> {\n static displayName = \"FarmCompiledKeyedRanges\";\n\n state: State = { fallback: false };\n private root: Element | null = null;\n private mounted = false;\n private fallbackRequested = false;\n private fallbackVersion = 0;\n private fallbackKeysWereUnsafe = false;\n private propFallbackQueued = false;\n private currentProps = this.props;\n declare private stop: (() => void) | undefined;\n declare private id: number | undefined;\n private rangeInstances: Array<Map<string, CompilerKeyedRowInstance>> = [];\n private staticSegments: Element[][] = [];\n private readonly staticValues: unknown[] = [];\n private definitionVersion = owner.getDefinitionVersion?.();\n\n private captureRoot = (root: Element | null) => {\n this.root = root;\n this.currentProps.rootRef?.(root);\n };\n\n private readRange(range: CompilerKeyedRange): ReadRange | null {\n const items = materializeIterable(range.items());\n const keys = items.map((item, index) => keyedRowIdentity(range.rowKey(item, index)));\n if (new Set(keys).size !== keys.length) return null;\n return { items, keys };\n }\n\n private readRanges(props: CompilerKeyedRangesBlockProps): ReadRange[] | null {\n const ranges: ReadRange[] = [];\n for (const range of props.ranges) {\n const rows = this.readRange(range);\n if (!rows) return null;\n ranges.push(rows);\n }\n return ranges;\n }\n\n private hasUnsafeFallbackKeys(): boolean {\n try {\n return this.readRanges(this.currentProps) === null;\n } catch {\n return true;\n }\n }\n\n private adopt(props: CompilerKeyedRangesBlockProps = this.currentProps): boolean {\n if (!this.root || !Number.isSafeInteger(props.trailing) || props.trailing < 0) return false;\n const rowsByRange = this.readRanges(props);\n if (!rowsByRange) return false;\n const elements = [...this.root.children];\n const staticSegments: Element[][] = [];\n const instancesByRange: Array<Map<string, CompilerKeyedRowInstance>> = [];\n const staticValues = this.staticValues.slice();\n let cursor = 0;\n\n for (let rangeIndex = 0; rangeIndex < props.ranges.length; rangeIndex += 1) {\n const range = props.ranges[rangeIndex];\n const rows = rowsByRange[rangeIndex];\n if (!Number.isSafeInteger(range.before) || range.before < 0) return false;\n const staticEnd = cursor + range.before;\n if (staticEnd > elements.length) return false;\n staticSegments.push(elements.slice(cursor, staticEnd));\n cursor = staticEnd;\n\n const rowEnd = cursor + rows.items.length;\n if (rowEnd > elements.length) return false;\n const instances = new Map<string, CompilerKeyedRowInstance>();\n for (let index = 0; index < rows.items.length; index += 1) {\n const element = elements[cursor + index];\n if (!matchesCompilerHostElement(element, range.create(rows.items[index], index))) {\n return false;\n }\n instances.set(rows.keys[index], {\n key: rows.keys[index],\n element,\n values: readKeyedRowBindingValues(range, rows.items[index], index),\n item: rows.items[index],\n index,\n conditionalValues: new Map(),\n });\n }\n instancesByRange.push(instances);\n cursor = rowEnd;\n }\n\n if (cursor + props.trailing !== elements.length) return false;\n staticSegments.push(elements.slice(cursor));\n if (!applyStaticRangeBindings(props.bindings, staticSegments, staticValues)) return false;\n this.staticSegments = staticSegments;\n this.rangeInstances = instancesByRange;\n this.staticValues.length = 0;\n this.staticValues.push(...staticValues);\n return true;\n }\n\n private anchorAfter(rangeIndex: number): ChildNode | null {\n for (let next = rangeIndex + 1; next < this.rangeInstances.length; next += 1) {\n const staticAnchor = this.staticSegments[next]?.[0];\n if (staticAnchor) return staticAnchor;\n const rowAnchor = this.rangeInstances[next].values().next().value?.element;\n if (rowAnchor) return rowAnchor;\n }\n return this.staticSegments[this.rangeInstances.length]?.[0] || null;\n }\n\n private reconcileRange(rangeIndex: number, rows: ReadRange): void {\n if (!this.root) return;\n const range = this.currentProps.ranges[rangeIndex];\n const previous = this.rangeInstances[rangeIndex];\n const oldIndices = new Map<string, number>();\n [...previous.keys()].forEach((key, index) => oldIndices.set(key, index));\n const nextKeys = new Set(rows.keys);\n for (const [key, instance] of previous) {\n if (!nextKeys.has(key)) instance.element.remove();\n }\n\n const sequence = rows.keys.map((key) => oldIndices.get(key) ?? -1);\n const stablePositions = longestIncreasingSubsequencePositions(sequence);\n const nextInstances: CompilerKeyedRowInstance[] = [];\n for (let index = 0; index < rows.items.length; index += 1) {\n const key = rows.keys[index];\n const existing = previous.get(key);\n if (existing) {\n applyKeyedRowBindings(range, existing, rows.items[index], index);\n existing.item = rows.items[index];\n existing.index = index;\n nextInstances.push(existing);\n continue;\n }\n const element = createCompilerHostElement(\n this.root.ownerDocument,\n range.create(rows.items[index], index),\n );\n nextInstances.push({\n key,\n element,\n values: readKeyedRowBindingValues(range, rows.items[index], index),\n item: rows.items[index],\n index,\n conditionalValues: new Map(),\n });\n }\n\n let anchor = this.anchorAfter(rangeIndex);\n for (let index = nextInstances.length - 1; index >= 0; index -= 1) {\n const instance = nextInstances[index];\n if (sequence[index] < 0) {\n this.root.insertBefore(instance.element, anchor);\n } else if (!stablePositions.has(index) && instance.element.nextSibling !== anchor) {\n this.root.insertBefore(instance.element, anchor);\n }\n anchor = instance.element;\n }\n this.rangeInstances[rangeIndex] = new Map(\n nextInstances.map((instance) => [instance.key, instance]),\n );\n }\n\n private reconcile(afterCommit?: () => void): void {\n if (!this.mounted || !this.root) {\n afterCommit?.();\n return;\n }\n if (this.state.fallback) {\n // React can reconcile a permanently fallen-back range in place while\n // its keys remain unique. Duplicate keys are ambiguous, so remount the\n // render that introduces them and the first safe render after them.\n const unsafeKeys = this.hasUnsafeFallbackKeys();\n if (unsafeKeys || this.fallbackKeysWereUnsafe) this.fallbackVersion += 1;\n this.fallbackKeysWereUnsafe = unsafeKeys;\n this.forceUpdate(afterCommit);\n return;\n }\n const rowsByRange = this.readRanges(this.currentProps);\n if (!rowsByRange || rowsByRange.length !== this.rangeInstances.length) {\n this.activateFallback(afterCommit);\n return;\n }\n if (\n !applyStaticRangeBindings(\n this.currentProps.bindings,\n this.staticSegments,\n this.staticValues,\n )\n ) {\n this.activateFallback(afterCommit);\n return;\n }\n\n const activeElement = this.root.ownerDocument.activeElement;\n const restoreFocus = Boolean(activeElement && this.root.contains(activeElement));\n for (let rangeIndex = rowsByRange.length - 1; rangeIndex >= 0; rangeIndex -= 1) {\n this.reconcileRange(rangeIndex, rowsByRange[rangeIndex]);\n }\n if (\n restoreFocus &&\n activeElement?.isConnected &&\n activeElement.ownerDocument.activeElement !== activeElement &&\n \"focus\" in activeElement\n ) {\n (activeElement as HTMLElement).focus({ preventScroll: true });\n }\n afterCommit?.();\n }\n\n private refresh = (afterCommit?: () => void) => {\n this.reconcile(afterCommit);\n };\n\n private listen(): void {\n const id = this.currentProps.id;\n const stop = this.stop;\n if (this.id === id) return;\n stop?.();\n this.stop = owner.subscribe(id, this.refresh);\n this.id = id;\n }\n\n private activateFallback(afterCommit?: () => void): void {\n if (!this.mounted || this.state.fallback || this.fallbackRequested) {\n afterCommit?.();\n return;\n }\n this.fallbackRequested = true;\n this.fallbackKeysWereUnsafe = this.hasUnsafeFallbackKeys();\n this.setState({ fallback: true }, afterCommit);\n }\n\n private schedulePropFallback(): void {\n if (this.propFallbackQueued) return;\n this.propFallbackQueued = true;\n queueMicrotask(() => {\n this.propFallbackQueued = false;\n if (this.mounted && !this.state.fallback) {\n this.listen();\n this.activateFallback();\n }\n });\n }\n\n shouldComponentUpdate(nextProps: CompilerKeyedRangesBlockProps, nextState: State): boolean {\n const definitionChanged = this.definitionVersion !== owner.getDefinitionVersion?.();\n this.currentProps = nextProps;\n if (this.state.fallback && nextState.fallback) {\n const unsafeKeys = this.hasUnsafeFallbackKeys();\n if (unsafeKeys || this.fallbackKeysWereUnsafe) this.fallbackVersion += 1;\n this.fallbackKeysWereUnsafe = unsafeKeys;\n }\n if (nextState.fallback || this.state.fallback) return true;\n if (definitionChanged) return true;\n // Parent props can change static siblings that are deliberately outside\n // the range descriptors. Remount this one container through React instead\n // of retaining stale markup.\n this.schedulePropFallback();\n return false;\n }\n\n componentDidMount(): void {\n this.mounted = true;\n this.listen();\n if (!this.adopt()) this.activateFallback();\n }\n\n componentDidUpdate(): void {\n this.listen();\n const nextDefinitionVersion = owner.getDefinitionVersion?.();\n const definitionChanged = this.definitionVersion !== nextDefinitionVersion;\n this.definitionVersion = nextDefinitionVersion;\n if (!this.state.fallback && definitionChanged && !this.adopt()) this.activateFallback();\n }\n\n componentWillUnmount(): void {\n this.mounted = false;\n const stop = this.stop;\n stop?.();\n this.id = undefined;\n // Keep the attached root for React 18 replay; captureRoot clears real detachments.\n this.rangeInstances = [];\n this.staticSegments = [];\n this.staticValues.length = 0;\n }\n\n render(): React.ReactNode {\n const container = this.currentProps.render();\n if (!React.isValidElement(container) || typeof container.type !== \"string\") {\n throw new TypeError(\n `Compiled keyed ranges ${this.currentProps.id} must own one host container.`,\n );\n }\n return React.cloneElement(container, {\n key: this.state.fallback ? `react-${this.fallbackVersion}` : \"compiled\",\n ref: this.captureRoot,\n } as React.Attributes);\n }\n }\n\n return FarmKeyedRangesBlock;\n}\n\nfunction createMixedRangesBlockComponent(\n owner: Pick<CompilerRuntimeFeatureOwner, \"subscribe\" | \"getDefinitionVersion\">,\n): React.ComponentType<CompilerMixedRangesBlockProps> {\n interface State {\n fallback: boolean;\n }\n\n class FarmMixedRangesBlock extends React.Component<CompilerMixedRangesBlockProps, State> {\n static displayName = \"FarmCompiledMixedRanges\";\n\n state: State = { fallback: false };\n private root: Element | null = null;\n private mounted = false;\n private fallbackRequested = false;\n private fallbackVersion = 0;\n private fallbackKeysWereUnsafe = false;\n private propFallbackQueued = false;\n private currentProps = this.props;\n private controller: CompilerNestedMixedRanges | null = null;\n private readonly fallbackUnsubscribers = new Map<number, () => void>();\n private definitionVersion = owner.getDefinitionVersion?.();\n\n private captureRoot = (root: Element | null) => {\n this.root = root;\n this.currentProps.rootRef?.(root);\n };\n\n private clearFallbackSubscriptions(): void {\n clearCompilerFallbackSubscriptions(this.fallbackUnsubscribers);\n }\n\n private refreshFallbackBlock: CompilerBlockRefresh = (afterCommit) => {\n if (!this.mounted || !this.state.fallback) {\n afterCommit?.();\n return;\n }\n const nextDescriptor = this.currentProps.create();\n this.prepareFallbackUpdate(nextDescriptor);\n this.forceUpdate(afterCommit);\n };\n\n private readFallbackBlockIds(descriptor: CompilerHostElement): Set<number> {\n const ids = new Set<number>();\n collectActiveCompilerHostBlockIds(descriptor, ids);\n return ids;\n }\n\n private prepareFallbackUpdate(descriptor: CompilerHostElement): void {\n const unsafeKeys = hasUnsafeCompilerFallbackKeys(descriptor);\n if (unsafeKeys || this.fallbackKeysWereUnsafe) this.fallbackVersion += 1;\n this.fallbackKeysWereUnsafe = unsafeKeys;\n }\n\n private subscribeFallbackBlocks(): void {\n const descriptor = this.currentProps.create();\n const ids = this.readFallbackBlockIds(descriptor);\n reconcileCompilerFallbackSubscriptions(\n owner,\n this.fallbackUnsubscribers,\n ids,\n this.refreshFallbackBlock,\n );\n }\n\n private adopt(): boolean {\n if (!this.root) return false;\n const descriptor = this.currentProps.create();\n const block = descriptor.block;\n if (block?.kind !== \"mixed-ranges\" || block.id !== this.currentProps.id) return false;\n const controller = new CompilerNestedMixedRanges(\n owner,\n this.root,\n descriptor,\n block,\n this.activateFallback,\n );\n try {\n if (!controller.adopt()) {\n controller.cleanup();\n return false;\n }\n } catch (error) {\n controller.cleanup();\n throw error;\n }\n const previous = this.controller;\n this.controller = controller;\n previous?.cleanup();\n return true;\n }\n\n private activateFallback = (afterCommit?: () => void): void => {\n if (!this.mounted || this.state.fallback || this.fallbackRequested) {\n afterCommit?.();\n return;\n }\n this.fallbackRequested = true;\n this.controller?.cleanup();\n this.controller = null;\n this.fallbackKeysWereUnsafe = hasUnsafeCompilerFallbackKeys(this.currentProps.create());\n this.fallbackVersion += 1;\n this.setState({ fallback: true }, () => {\n this.subscribeFallbackBlocks();\n afterCommit?.();\n });\n };\n\n private schedulePropFallback(): void {\n if (this.propFallbackQueued) return;\n this.propFallbackQueued = true;\n queueMicrotask(() => {\n this.propFallbackQueued = false;\n if (this.mounted && !this.state.fallback) this.activateFallback();\n });\n }\n\n shouldComponentUpdate(nextProps: CompilerMixedRangesBlockProps, nextState: State): boolean {\n const definitionChanged = this.definitionVersion !== owner.getDefinitionVersion?.();\n this.currentProps = nextProps;\n if (this.state.fallback && nextState.fallback) {\n this.prepareFallbackUpdate(this.currentProps.create());\n }\n if (nextState.fallback || this.state.fallback) return true;\n if (definitionChanged) return true;\n this.schedulePropFallback();\n return false;\n }\n\n componentDidMount(): void {\n this.mounted = true;\n if (this.state.fallback || this.fallbackRequested) {\n this.fallbackKeysWereUnsafe = hasUnsafeCompilerFallbackKeys(this.currentProps.create());\n this.subscribeFallbackBlocks();\n } else if (!this.adopt()) this.activateFallback();\n }\n\n componentDidUpdate(): void {\n const nextDefinitionVersion = owner.getDefinitionVersion?.();\n const definitionChanged = this.definitionVersion !== nextDefinitionVersion;\n this.definitionVersion = nextDefinitionVersion;\n if (this.state.fallback) {\n this.subscribeFallbackBlocks();\n } else if (definitionChanged && !this.adopt()) {\n this.activateFallback();\n }\n }\n\n componentWillUnmount(): void {\n this.mounted = false;\n this.controller?.cleanup();\n this.controller = null;\n this.clearFallbackSubscriptions();\n this.fallbackKeysWereUnsafe = false;\n // Keep the attached root for React 18 replay; captureRoot clears real detachments.\n }\n\n render(): React.ReactNode {\n const container = this.currentProps.render();\n if (!React.isValidElement(container) || typeof container.type !== \"string\") {\n throw new TypeError(\n `Compiled mixed ranges ${this.currentProps.id} must own one host container.`,\n );\n }\n return React.cloneElement(container, {\n key: this.state.fallback ? `react-${this.fallbackVersion}` : \"compiled\",\n ref: this.captureRoot,\n } as React.Attributes);\n }\n }\n\n return FarmMixedRangesBlock;\n}\n\nfunction createComponentBlockComponent(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n): React.ComponentType<CompilerComponentBlockProps> {\n class FarmComponentBlock extends React.Component<CompilerComponentBlockProps> {\n static displayName = \"FarmCompiledComponentIsland\";\n\n private unsubscribe: (() => void) | undefined;\n\n private refresh = (afterCommit?: () => void) => {\n this.forceUpdate(afterCommit);\n };\n\n private subscribe(): void {\n this.unsubscribe = owner.subscribe(this.props.id, this.refresh);\n }\n\n componentDidMount(): void {\n this.subscribe();\n }\n\n componentDidUpdate(previous: CompilerComponentBlockProps): void {\n if (previous.id === this.props.id) return;\n this.unsubscribe?.();\n this.subscribe();\n }\n\n componentWillUnmount(): void {\n this.unsubscribe?.();\n }\n\n render(): React.ReactNode {\n return this.props.render();\n }\n }\n\n return FarmComponentBlock;\n}\n\nexport const conditionalRuntimeFeature: CompilerRuntimeFeature = {\n name: \"conditional\",\n create: (owner) => ({\n Conditional: createConditionalBlockComponent(owner),\n }),\n};\n\nexport const hostConditionalRuntimeFeature: CompilerRuntimeFeature = {\n name: \"host-conditional\",\n create: (owner) => ({\n HostConditional: createHostConditionalBlockComponent(owner),\n }),\n};\n\nexport const conditionalRangesRuntimeFeature: CompilerRuntimeFeature = {\n name: \"conditional-ranges\",\n create: (owner) => ({\n ConditionalRanges: createConditionalRangesBlockComponent(owner),\n }),\n};\n\nexport const keyedListRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-list\",\n create: (owner) => ({\n KeyedList: createKeyedListBlockComponent(owner),\n }),\n};\n\nexport const keyedRowsRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner),\n }),\n};\n\nexport const keyedRowsPlainRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:plain\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponentCore(owner),\n }),\n};\n\nexport const keyedRowsIdentityRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:identity\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponentCore(owner, {\n keyedTargets: createKeyedIdentityTargetRuntime,\n }),\n }),\n};\n\nexport const keyedRowsMembershipRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:membership\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponentCore(owner, {\n keyedTargets: createKeyedMembershipTargetRuntime,\n }),\n }),\n};\n\nexport const keyedRowsMapLookupRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:map-lookup\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponentCore(owner, {\n keyedTargets: createKeyedMapLookupTargetRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsBatchPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:batch-position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedBatchPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsWindowPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:window-position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedWindowPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsReorderHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:reorder-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedReorderUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsMapReorderHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:map-reorder-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedMapReorderUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsAllHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:all-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedCompleteUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsMappedRollingWindowHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:mapped-rolling-window-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedMappedRollingWindowUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsBatchEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:batch-every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedBatchEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsWindowEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:window-every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedWindowEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsFilterHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:filter-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedFilterUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsIdentityFilterHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:identity-filter-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponentCore(owner, {\n keyedTargets: createKeyedIdentityTargetRuntime,\n keyedUpdates: keyedFilterUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsIdentityFilterOnlyRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:identity-filter-only\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponentCore(owner, {\n keyedTargets: createKeyedIdentityTargetRuntime,\n keyedUpdates: keyedFilterOnlyUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsStructuralAppendHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:structural-append-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedWindowEveryStructuralAppendUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsStructuralAppendMapHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:structural-append-map-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedWindowEveryStructuralAppendMapUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsStructuralPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:structural-prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedCompleteCompatibilityUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsStructuralPrependMapHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:structural-prepend-map-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedCompleteStructuralPrependMapUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsFilterPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:filter-prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedStructuralPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n }),\n }),\n};\n\nexport const keyedRowsConditionalHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalBatchPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:batch-position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedBatchPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalWindowPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:window-position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedWindowPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalReorderHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:reorder-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedReorderUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalAllHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:all-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedCompleteUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalMappedRollingWindowHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:mapped-rolling-window-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedMappedRollingWindowUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalBatchEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:batch-every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedBatchEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalWindowEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:window-every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedWindowEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalFilterHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:filter-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedFilterUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalStructuralAppendHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:structural-append-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedWindowEveryStructuralAppendUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalStructuralAppendMapHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:structural-append-map-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedWindowEveryStructuralAppendMapUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalStructuralPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:structural-prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedCompleteCompatibilityUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalStructuralPrependMapHintedRuntimeFeature: CompilerRuntimeFeature =\n {\n name: \"keyed-rows:conditional:structural-prepend-map-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedCompleteStructuralPrependMapUpdateRuntime,\n }),\n }),\n };\n\nexport const keyedRowsConditionalPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalFilterPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:filter-prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedFilterPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n }),\n }),\n};\n\nexport const keyedRowsHostHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostBatchPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:batch-position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedBatchPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostWindowPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:window-position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedWindowPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostReorderHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:reorder-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedReorderUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostAllHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:all-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedCompleteUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostMappedRollingWindowHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:mapped-rolling-window-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedMappedRollingWindowUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostBatchEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:batch-every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedBatchEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostWindowEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:window-every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedWindowEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostFilterHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:filter-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedFilterUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostStructuralAppendHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:structural-append-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedWindowEveryStructuralAppendUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostStructuralAppendMapHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:structural-append-map-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedWindowEveryStructuralAppendMapUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostStructuralPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:structural-prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedCompleteCompatibilityUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostStructuralPrependMapHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:structural-prepend-map-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedCompleteStructuralPrependMapUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostFilterPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:filter-prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedFilterPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n }),\n }),\n};\n\nexport const keyedRowsCompleteHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompletePositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteBatchPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:batch-position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedBatchPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteWindowPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:window-position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedWindowPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteReorderHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:reorder-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedReorderUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteAllHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:all-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedCompleteUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteMappedRollingWindowHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:mapped-rolling-window-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedMappedRollingWindowUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteBatchEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:batch-every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedBatchEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteWindowEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:window-every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedWindowEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteFilterHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:filter-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedFilterUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteStructuralAppendHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:structural-append-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedWindowEveryStructuralAppendUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteStructuralAppendMapHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:structural-append-map-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedWindowEveryStructuralAppendMapUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteStructuralPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:structural-prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedCompleteCompatibilityUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteStructuralPrependMapHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:structural-prepend-map-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedCompleteStructuralPrependMapUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompletePrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteFilterPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:filter-prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedFilterPrependUpdateRuntime,\n }),\n }),\n};\n\nconst keyedRowsCompleteCompatibilityRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:compatibility\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedCompleteStructuralPrependMapUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRangesRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-ranges\",\n create: (owner) => ({\n KeyedRanges: createKeyedRangesBlockComponent(owner),\n }),\n};\n\nexport const mixedRangesRuntimeFeature: CompilerRuntimeFeature = {\n name: \"mixed-ranges\",\n create: (owner) => ({\n MixedRanges: createMixedRangesBlockComponent(owner),\n }),\n};\n\nexport const componentRuntimeFeature: CompilerRuntimeFeature = {\n name: \"component\",\n create: (owner) => ({\n Component: createComponentBlockComponent(owner),\n }),\n};\n\n/**\n * Tree-shakable runtime target emitted by the AOT transform.\n *\n * React owns initial placement, SSR, hydration, props, and event semantics.\n * Compiler cells own local updates and precomputed DOM paths. Structural\n * helpers are installed only when the compiler emitted that boundary kind.\n */\nexport function createCompiledComponentWithFeatures<Props>(\n definition: CompiledComponentDefinition<Props>,\n runtimeFeatures: readonly CompilerRuntimeFeature[],\n): React.ComponentType<Props> {\n const stateSignature = definition.stateSignature || String(definition.initialize.length);\n const runtimeSignature = [...new Set(runtimeFeatures.map((feature) => feature.name))]\n .sort()\n .join(\",\");\n if (definition.hmrId) {\n const registry = getCompilerHmrRegistry();\n const existing = registry.get(definition.hmrId);\n if (\n existing?.stateSignature === stateSignature &&\n existing.runtimeSignature === runtimeSignature\n ) {\n existing.definition.current = definition as CompiledComponentDefinition<unknown>;\n existing.component.displayName = `FarmCompiled(${definition.displayName})`;\n for (const refresh of existing.refreshListeners) refresh();\n return existing.component as React.ComponentType<Props>;\n }\n }\n\n const definitionReference: CompiledDefinitionReference<Props> = {\n current: definition,\n };\n const refreshListeners = new Set<() => void>();\n\n class FarmCompiledComponent extends React.Component<Props, Record<string, never>, boolean> {\n private root: Element | null = null;\n private mounted = false;\n private flushQueued = false;\n private bindingError: unknown;\n private hasBindingError = false;\n private inputSelection: InputSelectionSnapshot | null = null;\n private readonly dirtyState = new Set<number>();\n private indexedDefinition: CompiledComponentDefinition<Props> | null = null;\n private staticBindingsByDependency: CompilerBinding<Props>[][] = [];\n private blockBindingsByDependency: CompilerConditionalBlockBinding[][] = [];\n private readonly blockBindings = new Map<number, CompilerConditionalBlockBinding>();\n private trackedBindingsByDependency: Set<CompilerBinding<Props>>[] = [];\n private readonly trackedDependenciesByBinding = new Map<CompilerBinding<Props>, Set<number>>();\n private readonly bindingValues = new Map<CompilerBinding<Props>, unknown>();\n private activeBinding: CompilerBinding<Props> | null = null;\n private activeDependencies: Set<number> | null = null;\n private readonly cells: RuntimeCell[];\n private readonly propCellOffset: number;\n private renderedDefinition: CompiledComponentDefinition<Props> | null = null;\n private renderedElement: React.ReactElement | null = null;\n private readonly blockRefreshListeners = new Map<number, CompilerBlockRefresh>();\n private readonly blockRoots = new Map<number, Element>();\n private readonly blockRootElements = new Set<Element>();\n private readonly bindingTargets = new Map<number, Element>();\n private readonly bindingTargetRefs = new Map<number, React.RefCallback<Element>>();\n private readonly blockRuntime: CompilerBlockRuntime;\n\n constructor(props: Props) {\n super(props);\n const initialState = definitionReference.current.initialize(props);\n const initialProps = definitionReference.current.readProps?.(props) || [];\n this.propCellOffset = initialState.length;\n this.cells = [...initialState, ...initialProps].map((initialValue, index) => {\n let value = initialValue;\n const pending: PendingCellUpdate[] = [];\n return {\n get: () => {\n if (this.activeBinding && this.activeDependencies) {\n this.activeDependencies.add(index);\n }\n return value;\n },\n set: (next) => {\n pending.push({ kind: \"state\", update: next });\n this.scheduleBindingFlush(index);\n },\n replace: (next) => {\n pending.push({ kind: \"value\", value: next });\n },\n flush: () => {\n if (pending.length === 0) return false;\n const previous = value;\n for (const next of pending.splice(0)) {\n if (next.kind === \"value\") {\n value = next.value;\n } else {\n value = typeof next.update === \"function\" ? next.update(value) : next.update;\n }\n }\n return !Object.is(previous, value);\n },\n };\n });\n const featureOwner: CompilerRuntimeFeatureOwner = {\n setRoot: (id, root, expectedRoot) => this.setBlockRoot(id, root, expectedRoot),\n subscribe: (id, refresh) => this.subscribeToBlock(id, refresh),\n getDefinitionVersion: () => definitionReference.current,\n };\n const blockRuntime: Partial<CompilerBlockRuntime> = {\n target: (id) => this.bindingTarget(id),\n };\n for (const feature of runtimeFeatures) {\n Object.assign(blockRuntime, feature.create(featureOwner));\n }\n this.blockRuntime = blockRuntime as CompilerBlockRuntime;\n }\n\n private usesHybridReactivity(): boolean {\n return definitionReference.current.reactivity === \"hybrid\";\n }\n\n private canReuseRenderedElement(\n currentDefinition: CompiledComponentDefinition<Props>,\n propValues: readonly unknown[] | null,\n ): boolean {\n return Boolean(\n this.mounted &&\n propValues &&\n propValues.every(isCompilerPrimitive) &&\n this.renderedDefinition === currentDefinition &&\n this.renderedElement,\n );\n }\n\n private renderCellsForProps(propValues: readonly unknown[] | null): {\n cells: readonly CompilerCell[];\n commit(): void;\n } {\n if (!propValues) return { cells: this.cells, commit: () => undefined };\n // A full React render must see its own prop snapshot, including inside\n // nested block render callbacks. The view switches to committed cells\n // only when its root ref is attached, so an abandoned render cannot\n // publish values or replace the reusable element.\n let committed = false;\n const cells: CompilerCell[] = this.cells.slice(0, this.propCellOffset);\n for (let propIndex = 0; propIndex < propValues.length; propIndex += 1) {\n const cell = this.cells[this.propCellOffset + propIndex];\n if (!cell) continue;\n cells.push({\n get: () => (committed ? cell.get() : propValues[propIndex]),\n set: (next) => cell.set(next),\n });\n }\n return {\n cells,\n commit: () => {\n committed = true;\n },\n };\n }\n\n private tracksBinding(\n binding: Exclude<CompilerBinding<Props>, CompilerConditionalBlockBinding>,\n ): boolean {\n return this.usesHybridReactivity() && binding.tracking === \"dynamic\";\n }\n\n private ensureBindingIndex(): void {\n const currentDefinition = definitionReference.current;\n if (this.indexedDefinition === currentDefinition) return;\n\n this.indexedDefinition = currentDefinition;\n this.staticBindingsByDependency = Array.from({ length: this.cells.length }, () => []);\n this.blockBindingsByDependency = Array.from({ length: this.cells.length }, () => []);\n this.trackedBindingsByDependency = Array.from(\n { length: this.cells.length },\n () => new Set<CompilerBinding<Props>>(),\n );\n this.blockBindings.clear();\n this.trackedDependenciesByBinding.clear();\n this.bindingValues.clear();\n\n for (const binding of currentDefinition.bindings) {\n if (binding.kind === \"block\") this.blockBindings.set(binding.id, binding);\n for (const dependency of binding.dependencies) {\n if (dependency < 0 || dependency >= this.cells.length) continue;\n if (binding.kind === \"block\") {\n this.blockBindingsByDependency[dependency].push(binding);\n } else if (!this.tracksBinding(binding)) {\n this.staticBindingsByDependency[dependency].push(binding);\n }\n }\n }\n }\n\n private updateTrackedDependencies(\n binding: CompilerBinding<Props>,\n nextDependencies: Set<number>,\n ): void {\n const previousDependencies = this.trackedDependenciesByBinding.get(binding);\n if (previousDependencies) {\n for (const dependency of previousDependencies) {\n if (!nextDependencies.has(dependency)) {\n this.trackedBindingsByDependency[dependency]?.delete(binding);\n }\n }\n }\n for (const dependency of nextDependencies) {\n if (!previousDependencies?.has(dependency)) {\n this.trackedBindingsByDependency[dependency]?.add(binding);\n }\n }\n this.trackedDependenciesByBinding.set(binding, nextDependencies);\n }\n\n private readBinding(binding: Exclude<CompilerBinding<Props>, CompilerConditionalBlockBinding>) {\n if (!this.tracksBinding(binding)) return binding.read(this.props, this.cells);\n\n const previousBinding = this.activeBinding;\n const previousDependencies = this.activeDependencies;\n const nextDependencies = new Set<number>();\n this.activeBinding = binding;\n this.activeDependencies = nextDependencies;\n try {\n return binding.read(this.props, this.cells);\n } finally {\n this.activeBinding = previousBinding;\n this.activeDependencies = previousDependencies;\n this.updateTrackedDependencies(binding, nextDependencies);\n }\n }\n\n private bindingValue(\n binding: Exclude<CompilerBinding<Props>, CompilerConditionalBlockBinding>,\n value: unknown,\n ): unknown {\n return binding.kind === \"text\" ? renderTextValue(value) : value;\n }\n\n private primeHybridBindings(): void {\n if (!this.usesHybridReactivity()) return;\n for (const binding of definitionReference.current.bindings) {\n if (binding.kind === \"block\") continue;\n if (!this.tracksBinding(binding)) continue;\n const value = this.readBinding(binding);\n this.bindingValues.set(binding, this.bindingValue(binding, value));\n }\n }\n\n private captureRoot = (root: Element | null) => {\n this.root = root;\n };\n\n private refreshDefinition = () => {\n if (this.mounted) this.forceUpdate();\n };\n\n private bindingTarget(id: number): React.RefCallback<Element> {\n const existing = this.bindingTargetRefs.get(id);\n if (existing) return existing;\n const capture: React.RefCallback<Element> = (element) => {\n if (element) {\n this.bindingTargets.set(id, element);\n } else {\n this.bindingTargets.delete(id);\n }\n };\n this.bindingTargetRefs.set(id, capture);\n return capture;\n }\n\n private captureInputSelection(): void {\n const active = this.root?.ownerDocument.activeElement;\n if (\n !isSelectableTextControl(active) ||\n !this.root?.contains(active) ||\n active.selectionStart === null ||\n active.selectionEnd === null\n ) {\n return;\n }\n this.inputSelection = {\n element: active,\n start: active.selectionStart,\n end: active.selectionEnd,\n direction: active.selectionDirection || \"none\",\n };\n }\n\n private restoreInputSelection(snapshot: InputSelectionSnapshot | null): void {\n if (\n !snapshot ||\n !snapshot.element.isConnected ||\n snapshot.element.ownerDocument.activeElement !== snapshot.element\n ) {\n return;\n }\n snapshot.element.setSelectionRange(snapshot.start, snapshot.end, snapshot.direction);\n }\n\n private setBlockRoot(id: number, root: Element | null, expectedRoot?: Element | null): void {\n const previous = this.blockRoots.get(id);\n if (!root && expectedRoot !== undefined && previous !== expectedRoot) return;\n if (previous) this.blockRootElements.delete(previous);\n if (root) {\n this.blockRoots.set(id, root);\n this.blockRootElements.add(root);\n } else {\n this.blockRoots.delete(id);\n }\n }\n\n private subscribeToBlock(id: number, refresh: CompilerBlockRefresh): () => void {\n this.blockRefreshListeners.set(id, refresh);\n return () => {\n if (this.blockRefreshListeners.get(id) === refresh) {\n this.blockRefreshListeners.delete(id);\n }\n };\n }\n\n private scheduleBindingFlush(index: number): void {\n this.dirtyState.add(index);\n this.captureInputSelection();\n if (!this.mounted || this.flushQueued) return;\n this.flushQueued = true;\n queueMicrotask(() => {\n this.flushQueued = false;\n this.flushBindingUpdates();\n });\n }\n\n private flushBindingUpdates(): void {\n const inputSelection = this.inputSelection;\n this.inputSelection = null;\n if (!this.mounted) return;\n const dirty = new Set<number>();\n for (const index of this.dirtyState) {\n if (this.cells[index]?.flush()) dirty.add(index);\n }\n this.dirtyState.clear();\n if (dirty.size === 0) return;\n try {\n this.ensureBindingIndex();\n const affectedBlockIds = new Set<number>();\n const affectedBindings = new Set<CompilerBinding<Props>>();\n\n for (const dependency of dirty) {\n for (const binding of this.blockBindingsByDependency[dependency] || []) {\n affectedBlockIds.add(binding.id);\n }\n for (const binding of this.staticBindingsByDependency[dependency] || []) {\n affectedBindings.add(binding);\n }\n if (this.usesHybridReactivity()) {\n for (const binding of this.trackedBindingsByDependency[dependency] || []) {\n affectedBindings.add(binding);\n }\n }\n }\n\n const hasAffectedMountedAncestor = (binding: CompilerConditionalBlockBinding): boolean => {\n let parent = binding.parent;\n while (parent !== undefined) {\n if (affectedBlockIds.has(parent) && this.blockRefreshListeners.has(parent)) {\n return true;\n }\n parent = this.blockBindings.get(parent)?.parent;\n }\n return false;\n };\n\n const blockRefreshes = [...affectedBlockIds]\n .map((id) => {\n const binding = this.blockBindings.get(id);\n const refresh = this.blockRefreshListeners.get(id);\n return binding && refresh && !hasAffectedMountedAncestor(binding) ? refresh : undefined;\n })\n .filter((refresh): refresh is CompilerBlockRefresh => refresh !== undefined);\n\n for (const binding of affectedBindings) {\n if (binding.kind !== \"block\") this.applyBinding(binding);\n }\n\n let pendingBlockCommits = blockRefreshes.length;\n for (const refresh of blockRefreshes) {\n refresh(() => {\n pendingBlockCommits -= 1;\n if (pendingBlockCommits === 0) this.restoreInputSelection(inputSelection);\n }, dirty);\n }\n if (blockRefreshes.length === 0) this.restoreInputSelection(inputSelection);\n } catch (error) {\n this.bindingError = error;\n this.hasBindingError = true;\n this.forceUpdate();\n }\n }\n\n private applyBinding(binding: CompilerBinding<Props>, force = false): void {\n if (!this.root || binding.kind === \"block\") return;\n const target =\n binding.target === undefined\n ? findBindingTarget(this.root, binding.path, this.blockRootElements)\n : binding.path.length === 0\n ? this.root\n : this.bindingTargets.get(binding.target) || null;\n if (!target) return;\n const value = this.readBinding(binding);\n const comparableValue = this.bindingValue(binding, value);\n if (!force && this.bindingValues.has(binding)) {\n if (Object.is(this.bindingValues.get(binding), comparableValue)) return;\n }\n if (binding.kind === \"text\") {\n target.textContent = comparableValue as string;\n } else if (binding.kind === \"style\") {\n updateStyle(target, binding.name, value);\n } else {\n updateAttribute(target, binding.name, value);\n }\n this.bindingValues.set(binding, comparableValue);\n }\n\n componentDidMount(): void {\n this.mounted = true;\n refreshListeners.add(this.refreshDefinition);\n this.ensureBindingIndex();\n this.primeHybridBindings();\n }\n\n getSnapshotBeforeUpdate(): boolean {\n const currentDefinition = definitionReference.current;\n const propValues = currentDefinition.readProps?.(this.props) || null;\n return this.canReuseRenderedElement(currentDefinition, propValues);\n }\n\n componentDidUpdate(\n _previousProps: Readonly<Props>,\n _previousState: Readonly<Record<string, never>>,\n reusedRenderedElement = false,\n ): void {\n const propValues = definitionReference.current.readProps?.(this.props) || null;\n if (propValues) {\n if (reusedRenderedElement) this.captureInputSelection();\n for (let propIndex = 0; propIndex < propValues.length; propIndex += 1) {\n const cellIndex = this.propCellOffset + propIndex;\n const cell = this.cells[cellIndex];\n if (!cell) continue;\n cell.replace(propValues[propIndex]);\n if (reusedRenderedElement) {\n this.dirtyState.add(cellIndex);\n } else {\n // React already reconciled a full render using the pending prop\n // snapshot. Commit the cell without scheduling duplicate work.\n cell.flush();\n }\n }\n this.flushBindingUpdates();\n return;\n }\n\n // Hand-authored definitions without prop cells retain the original\n // React-owned prop reconciliation behavior.\n this.ensureBindingIndex();\n for (const binding of definitionReference.current.bindings) {\n if (binding.kind !== \"block\") this.applyBinding(binding, true);\n }\n }\n\n componentWillUnmount(): void {\n this.mounted = false;\n this.dirtyState.clear();\n this.inputSelection = null;\n this.blockRefreshListeners.clear();\n // React 18 StrictMode replays lifecycles without detaching host refs.\n // Root, conditional-block, and binding-target refs clear DOM references on real unmounts.\n this.bindingTargetRefs.clear();\n this.indexedDefinition = null;\n this.staticBindingsByDependency = [];\n this.blockBindingsByDependency = [];\n this.blockBindings.clear();\n this.trackedBindingsByDependency = [];\n this.trackedDependenciesByBinding.clear();\n this.bindingValues.clear();\n this.activeBinding = null;\n this.activeDependencies = null;\n refreshListeners.delete(this.refreshDefinition);\n }\n\n render(): React.ReactNode {\n if (this.hasBindingError) throw this.bindingError;\n const currentDefinition = definitionReference.current;\n const propValues = currentDefinition.readProps?.(this.props) || null;\n if (this.canReuseRenderedElement(currentDefinition, propValues)) {\n return this.renderedElement;\n }\n\n const renderCells = this.renderCellsForProps(propValues);\n const element = currentDefinition.render(this.props, renderCells.cells, this.blockRuntime);\n if (!React.isValidElement(element)) {\n throw new TypeError(\n `Compiled component ${currentDefinition.displayName} must return one host element.`,\n );\n }\n let renderedElement: React.ReactElement;\n const captureCommittedRoot = (root: Element | null) => {\n this.captureRoot(root);\n if (!root) return;\n renderCells.commit();\n this.renderedDefinition = currentDefinition;\n this.renderedElement = renderedElement;\n };\n if (element.type === this.blockRuntime.KeyedRanges) {\n renderedElement = React.cloneElement(\n element as React.ReactElement<CompilerKeyedRangesBlockProps>,\n {\n rootRef: captureCommittedRoot,\n },\n );\n } else if (element.type === this.blockRuntime.ConditionalRanges) {\n renderedElement = React.cloneElement(\n element as React.ReactElement<CompilerConditionalRangesBlockProps>,\n { rootRef: captureCommittedRoot },\n );\n } else if (element.type === this.blockRuntime.MixedRanges) {\n renderedElement = React.cloneElement(\n element as React.ReactElement<CompilerMixedRangesBlockProps>,\n {\n rootRef: captureCommittedRoot,\n },\n );\n } else if (typeof element.type !== \"string\") {\n throw new TypeError(\n `Compiled component ${currentDefinition.displayName} must return one host element.`,\n );\n } else {\n renderedElement = React.cloneElement(element, {\n ref: captureCommittedRoot,\n } as React.Attributes);\n }\n return renderedElement;\n }\n }\n\n (FarmCompiledComponent as React.ComponentType<Props>).displayName =\n `FarmCompiled(${definition.displayName})`;\n const component = FarmCompiledComponent as React.ComponentType<Props>;\n\n if (definition.hmrId) {\n getCompilerHmrRegistry().set(definition.hmrId, {\n component: component as React.ComponentType<unknown>,\n definition: definitionReference as CompiledDefinitionReference<unknown>,\n refreshListeners,\n stateSignature,\n runtimeSignature,\n });\n }\n\n return component;\n}\n\nconst COMPLETE_RUNTIME_FEATURES: readonly CompilerRuntimeFeature[] = [\n conditionalRuntimeFeature,\n hostConditionalRuntimeFeature,\n conditionalRangesRuntimeFeature,\n keyedListRuntimeFeature,\n keyedRowsCompleteCompatibilityRuntimeFeature,\n keyedRangesRuntimeFeature,\n mixedRangesRuntimeFeature,\n componentRuntimeFeature,\n];\n\n/**\n * Compatibility entry for hand-authored runtime definitions.\n * Compiler output uses createCompiledComponentWithFeatures so unused structural\n * runtimes can be removed from production bundles.\n */\nexport function createCompiledComponent<Props>(\n definition: CompiledComponentDefinition<Props>,\n): React.ComponentType<Props> {\n return createCompiledComponentWithFeatures(definition, COMPLETE_RUNTIME_FEATURES);\n}\n"]}
1
+ {"version":3,"sources":["../src/iterable.ts","../src/compiler-runtime.tsx"],"names":["value","props","descriptor","update","window","incoming","prepared","incomingKeys","updates","sequence","changed"],"mappings":"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","file":"compiler-runtime.mjs","sourcesContent":["const oneShotSnapshots = new WeakMap<object, readonly unknown[]>();\n\n/** Materialize an iterable without consuming a one-shot iterator more than once. */\nexport function materializeIterable<Item>(source: Iterable<Item> | null | undefined): Item[] {\n if (source == null) return [];\n\n const iterator = source[Symbol.iterator]();\n const oneShot =\n iterator === (source as unknown) &&\n (typeof source === \"object\" || typeof source === \"function\");\n if (oneShot) {\n const cached = oneShotSnapshots.get(source as object);\n if (cached) return cached as Item[];\n }\n\n const items = Array.from({ [Symbol.iterator]: () => iterator });\n if (oneShot) oneShotSnapshots.set(source as object, items);\n return items;\n}\n","import React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { materializeIterable } from \"./iterable\";\n\nexport type CompilerStateUpdater = unknown | ((previous: unknown) => unknown);\nexport type CompilerRuntimeReactivity = \"static\" | \"hybrid\";\n\ninterface CompilerKeyedMapUpdateHint {\n readonly sourceToken: object;\n readonly changedIndices: readonly number[];\n readonly previous?: CompilerKeyedMapUpdateHint;\n}\n\ninterface CompilerKeyedArrayAppendHint {\n readonly sourceToken: object;\n readonly startIndex: number;\n readonly resultLength: number;\n readonly mappedItemSources?: ReadonlyMap<number, unknown> | CompilerMappedItemSources;\n readonly mappedItemValues?: ReadonlyMap<number, unknown>;\n readonly mappedSurvivorsValidated?: boolean;\n readonly structuralUpdate?: CompilerKeyedArrayFilterHint;\n readonly previous?: CompilerKeyedArrayAppendHint;\n}\n\ninterface CompilerKeyedArrayFilterHint {\n readonly kind: \"filter\" | \"slice\";\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n readonly removedIndices?: readonly number[];\n readonly retainedEnd?: number;\n readonly retainedStart?: number;\n readonly mappedItemSources?: CompilerMappedItemSources;\n readonly previous?: CompilerKeyedArrayFilterHint;\n}\n\ninterface CompilerKeyedArrayPrependHint {\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n readonly prefixLength: number;\n readonly mappedItemSources?: ReadonlyMap<number, unknown> | CompilerMappedItemSources;\n readonly mappedItemValues?: ReadonlyMap<number, unknown>;\n readonly mappedSurvivorsValidated?: boolean;\n readonly structuralUpdate?: CompilerKeyedArrayFilterHint;\n readonly previous?: CompilerKeyedArrayPrependHint;\n}\n\ninterface CompilerKeyedArrayRollingWindowHint {\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n readonly retainedEnd: number;\n readonly retainedStart: number;\n readonly mapped?: true;\n readonly previous?: CompilerKeyedArrayRollingWindowHint;\n}\n\ninterface CompilerKeyedArrayPositionHint {\n readonly kind: \"insert\" | \"remove\" | \"replace\";\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n readonly position: number;\n}\n\ninterface CompilerKeyedArrayBatchInsertHint {\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n readonly position: number;\n}\n\ninterface CompilerKeyedArrayWindowReplaceHint {\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n readonly position: number;\n readonly removedCount: number;\n readonly insertedCount: number;\n readonly previous?: CompilerKeyedArrayWindowReplaceHint;\n}\n\nconst enum CompilerKeyedArrayReorderKind {\n Reverse,\n Permutation,\n}\n\ninterface CompilerKeyedArrayReorderHint {\n /** An omitted kind is an exact identity order. */\n readonly kind?: CompilerKeyedArrayReorderKind;\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n readonly mapped?: boolean;\n readonly mappedItemSources?: CompilerMappedItemSources;\n readonly rollingWindowMapUpdate?: true;\n readonly rollingWindowUpdate?: CompilerKeyedArrayRollingWindowHint;\n readonly structuralUpdate?: CompilerKeyedArrayFilterHint;\n}\n\ninterface CompilerMappedItemSources {\n readonly queuedSourceItems?: readonly unknown[];\n get(item: unknown): unknown;\n has(item: unknown): boolean;\n}\n\nfunction reversedCompilerKeyedArrayOrder(\n order: CompilerKeyedArrayReorderKind | undefined,\n): CompilerKeyedArrayReorderKind | undefined {\n return order === CompilerKeyedArrayReorderKind.Reverse\n ? undefined\n : (order ?? CompilerKeyedArrayReorderKind.Reverse);\n}\n\ntype CompilerKeyedCollectionKind = \"set\" | \"map\";\ntype CompilerKeyedCollectionMutation = \"set-add\" | \"set-delete\" | \"map-set\" | \"map-delete\";\n\ninterface CompilerKeyedCollectionDraft {\n readonly kind: CompilerKeyedCollectionKind;\n readonly changedKeys: unknown[];\n}\n\ninterface CompilerKeyedCollectionUpdateHint {\n readonly kind: CompilerKeyedCollectionKind;\n readonly sourceToken: object;\n readonly changedKeys: readonly unknown[];\n readonly previous?: CompilerKeyedCollectionUpdateHint;\n}\n\nconst COMPILER_KEYED_COLLECTION_TOKENS = /* @__PURE__ */ new WeakMap<object, object>();\nconst COMPILER_KEYED_MAP_UPDATES = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedMapUpdateHint\n>();\nconst COMPILER_KEYED_ARRAY_APPENDS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayAppendHint\n>();\nconst COMPILER_KEYED_ARRAY_FILTERS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayFilterHint\n>();\nconst COMPILER_KEYED_ARRAY_PREPENDS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayPrependHint\n>();\nconst COMPILER_KEYED_ARRAY_ROLLING_WINDOWS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayRollingWindowHint\n>();\nconst COMPILER_KEYED_ARRAY_POSITIONS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayPositionHint\n>();\nconst COMPILER_KEYED_ARRAY_BATCH_INSERTS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayBatchInsertHint\n>();\nconst COMPILER_KEYED_ARRAY_WINDOW_REPLACEMENTS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayWindowReplaceHint\n>();\nconst COMPILER_KEYED_ARRAY_REORDERS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayReorderHint\n>();\nconst COMPILER_KEYED_COLLECTION_DRAFTS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedCollectionDraft\n>();\nconst COMPILER_KEYED_COLLECTION_UPDATES = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedCollectionUpdateHint\n>();\nconst COMPILER_KEYED_COMMITTED_COLLECTIONS = /* @__PURE__ */ new WeakSet<object>();\nconst COMPILER_KEYED_COMMITTED_ITEM_SNAPSHOTS = /* @__PURE__ */ new WeakMap<\n object,\n readonly unknown[]\n>();\nconst NATIVE_ARRAY_PROTOTYPE = Array.prototype;\nconst NATIVE_ARRAY_ITERATOR = Array.prototype[Symbol.iterator];\nconst NATIVE_ARRAY_FILTER = Array.prototype.filter;\nconst NATIVE_ARRAY_MAP = Array.prototype.map;\nconst NATIVE_ARRAY_SLICE = Array.prototype.slice;\nconst NATIVE_ARRAY_TO_SPLICED = (\n Array.prototype as unknown as { toSpliced?: (...args: readonly unknown[]) => unknown }\n).toSpliced;\nconst NATIVE_ARRAY_WITH = (\n Array.prototype as unknown as { with?: (...args: readonly unknown[]) => unknown }\n).with;\nconst NATIVE_ARRAY_TO_REVERSED = (\n Array.prototype as unknown as { toReversed?: (...args: readonly unknown[]) => unknown }\n).toReversed;\nconst NATIVE_ARRAY_TO_SORTED = (\n Array.prototype as unknown as { toSorted?: (...args: readonly unknown[]) => unknown }\n).toSorted;\nconst NATIVE_REFLECT_APPLY = Reflect.apply;\n\nfunction compilerObject(value: unknown): object | undefined {\n return (typeof value === \"object\" && value !== null) || typeof value === \"function\"\n ? (value as object)\n : undefined;\n}\n\nfunction compilerKeyedCollectionToken(value: unknown): object | undefined {\n const target = compilerObject(value);\n if (!target) return undefined;\n let token = COMPILER_KEYED_COLLECTION_TOKENS.get(target);\n if (!token) {\n token = {};\n COMPILER_KEYED_COLLECTION_TOKENS.set(target, token);\n }\n return token;\n}\n\nfunction commitCompilerKeyedCollection(value: unknown): object | undefined {\n const target = compilerObject(value);\n if (!target) return undefined;\n COMPILER_KEYED_COMMITTED_COLLECTIONS.add(target);\n return compilerKeyedCollectionToken(target);\n}\n\nfunction commitCompilerKeyedCollectionWithItemSnapshot(\n value: unknown,\n instances?: ReadonlyMap<string, CompilerKeyedRowInstance>,\n): object | undefined {\n const token = commitCompilerKeyedCollection(value);\n if (!token) return undefined;\n if (!instances) {\n COMPILER_KEYED_COMMITTED_ITEM_SNAPSHOTS.delete(token);\n return token;\n }\n const items: unknown[] = [];\n let index = 0;\n for (const instance of instances.values()) {\n if (instance.index !== index) {\n COMPILER_KEYED_COMMITTED_ITEM_SNAPSHOTS.delete(token);\n return token;\n }\n items.push(instance.item);\n index += 1;\n }\n COMPILER_KEYED_COMMITTED_ITEM_SNAPSHOTS.set(token, items);\n return token;\n}\n\nfunction compilerKeyedMapChangedIndices(\n value: unknown,\n sourceToken: object | undefined,\n): readonly number[] | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken) return undefined;\n const update = COMPILER_KEYED_MAP_UPDATES.get(target);\n if (!update || update.sourceToken !== sourceToken) return undefined;\n const changedIndices: number[] = [];\n for (\n let current: CompilerKeyedMapUpdateHint | undefined = update;\n current;\n current = current.previous\n ) {\n changedIndices.push(...current.changedIndices);\n }\n return changedIndices;\n}\n\nfunction compilerKeyedArrayAppendStart(\n value: unknown,\n sourceToken: object | undefined,\n expectedStart: number,\n): number | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_APPENDS.get(target);\n if (!update || update.sourceToken !== sourceToken) return undefined;\n const updates: CompilerKeyedArrayAppendHint[] = [];\n for (\n let current: CompilerKeyedArrayAppendHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n let length = expectedStart;\n for (let index = updates.length - 1; index >= 0; index -= 1) {\n const current = updates[index];\n if (current.startIndex !== length || current.resultLength < length) return undefined;\n length = current.resultLength;\n }\n return length === value.length ? expectedStart : undefined;\n}\n\nfunction compilerKeyedArrayStructuralAppendUpdate(\n value: unknown,\n sourceToken: object | undefined,\n expectedStart: number,\n):\n | {\n readonly startIndex: number;\n readonly structuralUpdate?: CompilerKeyedArrayFilterHint;\n readonly structuralSurvivors?: {\n readonly indices: readonly number[];\n readonly keysStable: boolean;\n };\n }\n | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_APPENDS.get(target);\n if (!update || update.sourceToken !== sourceToken) return undefined;\n const updates: CompilerKeyedArrayAppendHint[] = [];\n for (\n let current: CompilerKeyedArrayAppendHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n updates.reverse();\n const structuralUpdate = update.structuralUpdate;\n const first = updates[0];\n const survivorResult = structuralUpdate\n ? compilerKeyedArrayFilterSurvivorsFromUpdate(\n structuralUpdate,\n sourceToken,\n expectedStart,\n first.startIndex,\n )\n : undefined;\n if (structuralUpdate && !survivorResult) return undefined;\n let length = structuralUpdate ? first.startIndex : expectedStart;\n const startIndex = length;\n for (const current of updates) {\n if (current.startIndex !== length || current.resultLength < length) return undefined;\n length = current.resultLength;\n }\n return length === value.length\n ? {\n startIndex,\n structuralUpdate,\n ...(survivorResult ? { structuralSurvivors: survivorResult } : {}),\n }\n : undefined;\n}\n\nfunction compilerKeyedArrayFilterSurvivors(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): { readonly indices: readonly number[]; readonly keysStable: boolean } | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_FILTERS.get(target);\n if (!update || update.sourceToken !== sourceToken) return undefined;\n return compilerKeyedArrayFilterSurvivorsFromUpdate(\n update,\n sourceToken,\n expectedLength,\n value.length,\n );\n}\n\nfunction compilerKeyedArrayFilterSurvivorsFromUpdate(\n update: CompilerKeyedArrayFilterHint,\n sourceToken: object | undefined,\n expectedLength: number,\n resultLength: number,\n): { readonly indices: readonly number[]; readonly keysStable: boolean } | undefined {\n if (!sourceToken || update.sourceToken !== sourceToken) return undefined;\n const updates: CompilerKeyedArrayFilterHint[] = [];\n for (\n let current: CompilerKeyedArrayFilterHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n\n let survivors = Array.from({ length: expectedLength }, (_, index) => index);\n let keysStable = true;\n for (let updateIndex = updates.length - 1; updateIndex >= 0; updateIndex -= 1) {\n const current = updates[updateIndex];\n if (current.sourceLength !== survivors.length) return undefined;\n if (current.kind === \"slice\") {\n const start = current.retainedStart;\n const end = current.retainedEnd;\n if (\n start === undefined ||\n end === undefined ||\n !Number.isSafeInteger(start) ||\n !Number.isSafeInteger(end) ||\n start < 0 ||\n end < start ||\n end > current.sourceLength ||\n current.resultLength !== end - start\n ) {\n return undefined;\n }\n survivors = survivors.slice(start, end);\n continue;\n }\n keysStable = false;\n const removed = new Set<number>();\n for (const index of current.removedIndices || []) {\n if (!Number.isSafeInteger(index) || index < 0 || index >= current.sourceLength)\n return undefined;\n removed.add(index);\n }\n if (current.resultLength !== current.sourceLength - removed.size) return undefined;\n survivors = survivors.filter((_sourceIndex, index) => !removed.has(index));\n }\n return survivors.length === resultLength ? { indices: survivors, keysStable } : undefined;\n}\n\nfunction compilerKeyedArraySliceSurvivorRangeFromUpdate(\n update: CompilerKeyedArrayFilterHint,\n sourceToken: object | undefined,\n expectedLength: number,\n resultLength: number,\n): { readonly end: number; readonly start: number } | undefined {\n if (!sourceToken || update.sourceToken !== sourceToken) return undefined;\n const updates: CompilerKeyedArrayFilterHint[] = [];\n for (\n let current: CompilerKeyedArrayFilterHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken || current.kind !== \"slice\") return undefined;\n updates.push(current);\n }\n\n let length = expectedLength;\n let start = 0;\n for (let index = updates.length - 1; index >= 0; index -= 1) {\n const current = updates[index];\n const retainedStart = current.retainedStart;\n const retainedEnd = current.retainedEnd;\n if (\n current.sourceLength !== length ||\n retainedStart === undefined ||\n retainedEnd === undefined ||\n !Number.isSafeInteger(retainedStart) ||\n !Number.isSafeInteger(retainedEnd) ||\n retainedStart < 0 ||\n retainedEnd < retainedStart ||\n retainedEnd > current.sourceLength ||\n current.resultLength !== retainedEnd - retainedStart\n ) {\n return undefined;\n }\n start += retainedStart;\n length = current.resultLength;\n }\n return length === resultLength ? { end: start + length, start } : undefined;\n}\n\nfunction compilerKeyedArrayStructuralAppendMapUpdate(\n value: unknown,\n sourceToken: object | undefined,\n expectedStart: number,\n requireMappedUpdate = false,\n):\n | {\n readonly startIndex: number;\n readonly mappedItemSources?: ReadonlyMap<number, unknown> | CompilerMappedItemSources;\n readonly mappedSurvivorsValidated?: true;\n readonly structuralSurvivorRange?: {\n readonly end: number;\n readonly start: number;\n };\n readonly structuralSurvivors?: readonly number[];\n }\n | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_APPENDS.get(target);\n if (\n !update ||\n update.sourceToken !== sourceToken ||\n !update.structuralUpdate ||\n (requireMappedUpdate && !update.mappedItemSources)\n ) {\n return undefined;\n }\n const updates: CompilerKeyedArrayAppendHint[] = [];\n for (\n let current: CompilerKeyedArrayAppendHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n updates.reverse();\n const first = updates[0];\n const structuralSurvivorRange = compilerKeyedArraySliceSurvivorRangeFromUpdate(\n update.structuralUpdate,\n sourceToken,\n expectedStart,\n first.startIndex,\n );\n const structuralSurvivors = structuralSurvivorRange\n ? undefined\n : compilerKeyedArrayFilterSurvivorsFromUpdate(\n update.structuralUpdate,\n sourceToken,\n expectedStart,\n first.startIndex,\n )?.indices;\n if (!structuralSurvivorRange && !structuralSurvivors) return undefined;\n let length = first.startIndex;\n const startIndex = length;\n for (const current of updates) {\n if (current.startIndex !== length || current.resultLength < length) return undefined;\n length = current.resultLength;\n }\n return length === value.length\n ? {\n startIndex,\n ...(structuralSurvivorRange ? { structuralSurvivorRange } : {}),\n ...(structuralSurvivors ? { structuralSurvivors } : {}),\n ...(update.mappedItemSources ? { mappedItemSources: update.mappedItemSources } : {}),\n ...(update.mappedSurvivorsValidated ? { mappedSurvivorsValidated: true as const } : {}),\n }\n : undefined;\n}\n\nfunction compilerKeyedArrayFilterSource(\n update: CompilerKeyedArrayFilterHint,\n resultLength: number,\n): { readonly sourceLength: number; readonly sourceToken: object } | undefined {\n if (update.resultLength !== resultLength) return undefined;\n let current = update;\n while (current.previous) {\n if (\n current.sourceToken !== current.previous.sourceToken ||\n current.sourceLength !== current.previous.resultLength\n ) {\n return undefined;\n }\n current = current.previous;\n }\n return { sourceLength: current.sourceLength, sourceToken: current.sourceToken };\n}\n\nfunction compilerKeyedArrayPrependLength(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): number | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_PREPENDS.get(target);\n if (!update || update.sourceToken !== sourceToken) return undefined;\n const updates: CompilerKeyedArrayPrependHint[] = [];\n for (\n let current: CompilerKeyedArrayPrependHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n\n let length = expectedLength;\n let prefixLength = 0;\n for (let index = updates.length - 1; index >= 0; index -= 1) {\n const current = updates[index];\n if (\n current.sourceLength !== length ||\n current.prefixLength < 1 ||\n current.resultLength !== current.sourceLength + current.prefixLength\n ) {\n return undefined;\n }\n length = current.resultLength;\n prefixLength += current.prefixLength;\n }\n return length === value.length ? prefixLength : undefined;\n}\n\nfunction compilerKeyedArrayStructuralPrependUpdate(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n):\n | {\n readonly prefixLength: number;\n readonly structuralUpdate?: CompilerKeyedArrayFilterHint;\n readonly structuralSurvivors?: {\n readonly indices: readonly number[];\n readonly keysStable: boolean;\n };\n }\n | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_PREPENDS.get(target);\n if (!update || update.sourceToken !== sourceToken) return undefined;\n const updates: CompilerKeyedArrayPrependHint[] = [];\n for (\n let current: CompilerKeyedArrayPrependHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n updates.reverse();\n const structuralUpdate = update.structuralUpdate;\n const first = updates[0];\n const survivorResult = structuralUpdate\n ? compilerKeyedArrayFilterSurvivorsFromUpdate(\n structuralUpdate,\n sourceToken,\n expectedLength,\n first.sourceLength,\n )\n : undefined;\n if (structuralUpdate && !survivorResult) return undefined;\n let length = structuralUpdate ? first.sourceLength : expectedLength;\n let prefixLength = 0;\n for (const current of updates) {\n if (\n current.sourceLength !== length ||\n current.prefixLength < 1 ||\n current.resultLength !== current.sourceLength + current.prefixLength\n ) {\n return undefined;\n }\n length = current.resultLength;\n prefixLength += current.prefixLength;\n }\n return length === value.length\n ? {\n prefixLength,\n structuralUpdate,\n ...(survivorResult ? { structuralSurvivors: survivorResult } : {}),\n }\n : undefined;\n}\n\nfunction compilerKeyedArrayStructuralPrependMapUpdate(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n requireMappedUpdate = false,\n):\n | {\n readonly prefixLength: number;\n readonly mappedItemSources?: ReadonlyMap<number, unknown> | CompilerMappedItemSources;\n readonly mappedSurvivorsValidated?: true;\n readonly structuralSurvivorRange?: {\n readonly end: number;\n readonly start: number;\n };\n readonly structuralSurvivors?: readonly number[];\n }\n | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_PREPENDS.get(target);\n if (\n !update ||\n update.sourceToken !== sourceToken ||\n !update.structuralUpdate ||\n (requireMappedUpdate && !update.mappedItemSources)\n ) {\n return undefined;\n }\n const updates: CompilerKeyedArrayPrependHint[] = [];\n for (\n let current: CompilerKeyedArrayPrependHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n updates.reverse();\n const first = updates[0];\n const structuralSurvivorRange = compilerKeyedArraySliceSurvivorRangeFromUpdate(\n update.structuralUpdate,\n sourceToken,\n expectedLength,\n first.sourceLength,\n );\n const structuralSurvivors = structuralSurvivorRange\n ? undefined\n : compilerKeyedArrayFilterSurvivorsFromUpdate(\n update.structuralUpdate,\n sourceToken,\n expectedLength,\n first.sourceLength,\n )?.indices;\n if (!structuralSurvivorRange && !structuralSurvivors) return undefined;\n let length = first.sourceLength;\n let prefixLength = 0;\n for (const current of updates) {\n if (\n current.sourceLength !== length ||\n current.prefixLength < 1 ||\n current.resultLength !== current.sourceLength + current.prefixLength\n ) {\n return undefined;\n }\n length = current.resultLength;\n prefixLength += current.prefixLength;\n }\n return length === value.length\n ? {\n prefixLength,\n ...(structuralSurvivorRange ? { structuralSurvivorRange } : {}),\n ...(structuralSurvivors ? { structuralSurvivors } : {}),\n ...(update.mappedItemSources ? { mappedItemSources: update.mappedItemSources } : {}),\n ...(update.mappedSurvivorsValidated ? { mappedSurvivorsValidated: true as const } : {}),\n }\n : undefined;\n}\n\nfunction compilerKeyedArrayRollingWindows(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): readonly CompilerKeyedArrayRollingWindowHint[] | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_ROLLING_WINDOWS.get(target);\n if (!update || update.sourceToken !== sourceToken) return undefined;\n const updates: CompilerKeyedArrayRollingWindowHint[] = [];\n for (\n let current: CompilerKeyedArrayRollingWindowHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n updates.reverse();\n\n let length = expectedLength;\n for (const current of updates) {\n if (\n current.sourceLength !== length ||\n current.retainedStart < 1 ||\n current.retainedStart > current.sourceLength ||\n current.retainedEnd !== current.sourceLength ||\n current.resultLength <= current.retainedEnd - current.retainedStart\n ) {\n return undefined;\n }\n length = current.resultLength;\n }\n return length === value.length ? updates : undefined;\n}\n\nfunction compilerKeyedArrayMappedRollingWindows(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n):\n | {\n readonly mapped?: true;\n readonly updates: readonly CompilerKeyedArrayRollingWindowHint[];\n }\n | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const directUpdate = COMPILER_KEYED_ARRAY_ROLLING_WINDOWS.get(target);\n const mappedUpdate = directUpdate ? undefined : COMPILER_KEYED_ARRAY_REORDERS.get(target);\n const mappedRollingUpdate =\n mappedUpdate?.mapped &&\n mappedUpdate.rollingWindowMapUpdate &&\n mappedUpdate.kind === undefined &&\n !mappedUpdate.structuralUpdate &&\n mappedUpdate.rollingWindowUpdate &&\n mappedUpdate.resultLength === value.length\n ? mappedUpdate\n : undefined;\n const update = directUpdate || mappedRollingUpdate?.rollingWindowUpdate;\n if (!update || update.sourceToken !== sourceToken) return undefined;\n const updates: CompilerKeyedArrayRollingWindowHint[] = [];\n for (\n let current: CompilerKeyedArrayRollingWindowHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n updates.reverse();\n\n let length = expectedLength;\n for (const current of updates) {\n if (\n current.sourceLength !== length ||\n current.retainedStart < 1 ||\n current.retainedStart > current.sourceLength ||\n current.retainedEnd !== current.sourceLength ||\n current.resultLength <= current.retainedEnd - current.retainedStart\n ) {\n return undefined;\n }\n length = current.resultLength;\n }\n return length === value.length\n ? {\n updates,\n ...(mappedRollingUpdate || update.mapped ? { mapped: true } : {}),\n }\n : undefined;\n}\n\nfunction compilerKeyedArrayPosition(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): CompilerKeyedArrayPositionHint | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_POSITIONS.get(target);\n if (\n !update ||\n update.sourceToken !== sourceToken ||\n update.sourceLength !== expectedLength ||\n update.resultLength !== value.length ||\n update.position < 0 ||\n update.position > expectedLength ||\n (update.kind === \"insert\" && update.resultLength !== expectedLength + 1) ||\n (update.kind === \"remove\" &&\n (update.resultLength >= expectedLength || update.position > update.resultLength)) ||\n (update.kind === \"replace\" &&\n (update.position >= expectedLength || update.resultLength !== expectedLength))\n ) {\n return undefined;\n }\n return update;\n}\n\nfunction compilerKeyedArrayBatchInsert(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): CompilerKeyedArrayBatchInsertHint | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_BATCH_INSERTS.get(target);\n if (\n !update ||\n update.sourceToken !== sourceToken ||\n update.sourceLength !== expectedLength ||\n update.resultLength !== value.length ||\n update.resultLength < expectedLength + 2 ||\n update.position < 0 ||\n update.position > expectedLength\n ) {\n return undefined;\n }\n return update;\n}\n\nfunction compilerKeyedArrayWindowReplacements(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): CompilerKeyedArrayWindowReplaceHint[] | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_WINDOW_REPLACEMENTS.get(target);\n if (!update || update.sourceToken !== sourceToken) return undefined;\n const updates: CompilerKeyedArrayWindowReplaceHint[] = [];\n for (\n let current: CompilerKeyedArrayWindowReplaceHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n updates.reverse();\n\n let length = expectedLength;\n for (const current of updates) {\n if (\n current.sourceLength !== length ||\n current.position < 0 ||\n current.position >= current.sourceLength ||\n current.removedCount < 1 ||\n current.position + current.removedCount > current.sourceLength ||\n current.insertedCount < 0 ||\n current.resultLength !== current.sourceLength - current.removedCount + current.insertedCount\n ) {\n return undefined;\n }\n length = current.resultLength;\n }\n return length === value.length ? updates : undefined;\n}\n\nfunction compilerKeyedArrayReorder(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): CompilerKeyedArrayReorderHint | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_REORDERS.get(target);\n if (\n !update ||\n update.sourceToken !== sourceToken ||\n update.sourceLength !== expectedLength ||\n (!update.structuralUpdate && update.resultLength !== expectedLength) ||\n update.resultLength !== value.length\n ) {\n return undefined;\n }\n return update;\n}\n\nfunction compilerKeyedCollectionChangedKeys(\n value: unknown,\n sourceToken: object | undefined,\n kind: CompilerKeyedCollectionKind,\n): readonly unknown[] | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken) return undefined;\n const update = COMPILER_KEYED_COLLECTION_UPDATES.get(target);\n if (!update || update.kind !== kind || update.sourceToken !== sourceToken) return undefined;\n const changedKeys: unknown[] = [];\n for (\n let current: CompilerKeyedCollectionUpdateHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.kind !== kind || current.sourceToken !== sourceToken) return undefined;\n changedKeys.push(...current.changedKeys);\n }\n return changedKeys;\n}\n\nfunction recordCompilerKeyedMapUpdate(\n previous: unknown,\n value: unknown,\n changedIndices: readonly number[],\n): unknown {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (valueTarget && sourceToken) {\n const previousUpdate =\n previousTarget && !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget)\n ? COMPILER_KEYED_MAP_UPDATES.get(previousTarget)\n : undefined;\n COMPILER_KEYED_MAP_UPDATES.set(valueTarget, {\n sourceToken: previousUpdate?.sourceToken || sourceToken,\n changedIndices,\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n }\n return value;\n}\n\nfunction executeCompilerKeyedMapPipeline(\n previous: unknown,\n pipeline: (...values: readonly unknown[]) => unknown,\n record: (previous: unknown, value: unknown) => unknown,\n): unknown {\n let eligible = true;\n const applyMap = (collection: unknown, method: unknown, callback: unknown): unknown => {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n collection,\n [callback],\n );\n if (method !== NATIVE_ARRAY_MAP) {\n eligible = false;\n return value;\n }\n try {\n if (!Array.isArray(value) || Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE) {\n eligible = false;\n }\n } catch {\n eligible = false;\n }\n return value;\n };\n const value = NATIVE_REFLECT_APPLY(pipeline, undefined, [previous, applyMap]);\n return eligible ? record(previous, value) : value;\n}\n\nfunction recordCompilerKeyedMapPipelineUpdate(previous: unknown, value: unknown): unknown {\n try {\n if (\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n value.length !== previous.length\n ) {\n return value;\n }\n const finalChangedIndices: number[] = [];\n for (let index = 0; index < previous.length; index += 1) {\n const previousDescriptor = Object.getOwnPropertyDescriptor(previous, index);\n const mappedDescriptor = Object.getOwnPropertyDescriptor(value, index);\n if (\n !previousDescriptor ||\n !(\"value\" in previousDescriptor) ||\n !mappedDescriptor ||\n !(\"value\" in mappedDescriptor)\n ) {\n return value;\n }\n if (mappedDescriptor.value !== previousDescriptor.value) finalChangedIndices.push(index);\n }\n return recordCompilerKeyedMapUpdate(previous, value, finalChangedIndices);\n } catch {\n // Metadata must never change the result of a successful native update.\n return value;\n }\n}\n\n/**\n * @internal Executes a compiler-proven Array.map pipeline and records its final same-order delta.\n * The three-argument value/index form remains accepted for older generated output.\n */\nexport function createCompilerKeyedMapUpdate(\n previous: unknown,\n valueOrPipeline: unknown,\n changedIndices?: unknown,\n): unknown {\n if (Array.isArray(changedIndices)) {\n return recordCompilerKeyedMapUpdate(previous, valueOrPipeline, changedIndices);\n }\n if (changedIndices !== undefined || typeof valueOrPipeline !== \"function\") {\n return valueOrPipeline;\n }\n return executeCompilerKeyedMapPipeline(\n previous,\n valueOrPipeline as (...values: readonly unknown[]) => unknown,\n recordCompilerKeyedMapPipelineUpdate,\n );\n}\n\nfunction recordCompilerKeyedArrayMapPipeline(previous: unknown, value: unknown): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n value.length !== previous.length\n ) {\n return value;\n }\n\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousReorder = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_REORDERS.get(previousTarget);\n const structuralUpdate =\n previousReorder?.structuralUpdate ||\n (!previousReorder ? COMPILER_KEYED_ARRAY_FILTERS.get(previousTarget) : undefined);\n const structuralSource = structuralUpdate\n ? compilerKeyedArrayFilterSource(structuralUpdate, previous.length)\n : undefined;\n const previousSource =\n previousReorder && !previousReorder.structuralUpdate ? previousReorder : undefined;\n if (\n !committedSource &&\n (!previousSource || previousSource.resultLength !== previous.length) &&\n !structuralSource\n ) {\n return value;\n }\n const sourceToken =\n previousSource?.sourceToken ||\n structuralSource?.sourceToken ||\n compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n const previousMappedItemSources =\n previousReorder?.mappedItemSources || structuralUpdate?.mappedItemSources;\n const mappedItemSources = new Map<unknown, unknown>();\n for (let index = 0; index < value.length; index += 1) {\n const previousDescriptor = Object.getOwnPropertyDescriptor(previous, index);\n const mappedDescriptor = Object.getOwnPropertyDescriptor(value, index);\n if (\n !previousDescriptor ||\n !(\"value\" in previousDescriptor) ||\n !mappedDescriptor ||\n !(\"value\" in mappedDescriptor)\n ) {\n return value;\n }\n const previousItem = previousDescriptor.value;\n // Keep every replacement directly connected to the committed row instead of retaining a\n // chain of intermediate map results.\n const sourceItem = previousMappedItemSources?.has(previousItem)\n ? previousMappedItemSources.get(previousItem)\n : previousItem;\n const mappedItem = mappedDescriptor.value;\n if (!Object.is(mappedItem, sourceItem)) mappedItemSources.set(mappedItem, sourceItem);\n }\n const hint: CompilerKeyedArrayReorderHint = {\n kind: committedSource ? undefined : previousReorder?.kind,\n sourceToken,\n sourceLength:\n previousSource?.sourceLength ?? structuralSource?.sourceLength ?? previous.length,\n resultLength: value.length,\n mapped: true,\n mappedItemSources,\n ...(structuralUpdate ? { structuralUpdate } : {}),\n };\n // A safe map may retain a native reorder or an index-independent structural prefix.\n COMPILER_KEYED_ARRAY_REORDERS.set(valueTarget, hint);\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/**\n * @internal Executes proven native maps within a keyed reorder pipeline.\n * The three-argument form remains accepted for older generated output.\n */\nexport function createCompilerKeyedArrayMapPipeline(\n previous: unknown,\n methodOrPipeline: unknown,\n callback?: unknown,\n): unknown {\n if (callback !== undefined) {\n const value = NATIVE_REFLECT_APPLY(\n methodOrPipeline as (...values: readonly unknown[]) => unknown,\n previous,\n [callback],\n );\n if (methodOrPipeline !== NATIVE_ARRAY_MAP) return value;\n return recordCompilerKeyedArrayMapPipeline(previous, value);\n }\n return executeCompilerKeyedMapPipeline(\n previous,\n methodOrPipeline as (...values: readonly unknown[]) => unknown,\n recordCompilerKeyedArrayMapPipeline,\n );\n}\n\nfunction recordCompilerKeyedArrayQueuedMapPipeline(previous: unknown, value: unknown): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n value.length !== previous.length\n ) {\n return value;\n }\n\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousReorder = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_REORDERS.get(previousTarget);\n if (\n !committedSource &&\n (!previousReorder ||\n previousReorder.structuralUpdate ||\n previousReorder.resultLength !== previous.length)\n ) {\n return value;\n }\n const sourceToken =\n previousReorder?.sourceToken || compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n const sourceItems = previousReorder?.mappedItemSources?.queuedSourceItems || previous;\n let mappedItemSources: Map<unknown, unknown> | undefined;\n const readMappedItemSources = (): Map<unknown, unknown> => {\n if (mappedItemSources) return mappedItemSources;\n const sources = new Map<unknown, unknown>();\n for (let index = 0; index < value.length; index += 1) {\n const sourceDescriptor = Object.getOwnPropertyDescriptor(sourceItems, index);\n const mappedDescriptor = Object.getOwnPropertyDescriptor(value, index);\n if (\n !sourceDescriptor ||\n !(\"value\" in sourceDescriptor) ||\n !mappedDescriptor ||\n !(\"value\" in mappedDescriptor)\n ) {\n throw new TypeError();\n }\n if (!Object.is(sourceDescriptor.value, mappedDescriptor.value)) {\n sources.set(mappedDescriptor.value, sourceDescriptor.value);\n }\n }\n mappedItemSources = sources;\n return sources;\n };\n COMPILER_KEYED_ARRAY_REORDERS.set(valueTarget, {\n kind: previousReorder?.kind,\n sourceToken,\n sourceLength: previousReorder?.sourceLength ?? previous.length,\n resultLength: value.length,\n mapped: true,\n // Array.map preserves positions. Retain the first queued source collection and validate its\n // data properties against the final collection once, immediately before the DOM commit.\n // This avoids rescanning every intermediate Array produced by separately queued setters.\n mappedItemSources: {\n queuedSourceItems: sourceItems,\n get: (item) => readMappedItemSources().get(item),\n has: (item) => readMappedItemSources().has(item),\n },\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Executes a queued native map next to a compiler-proven keyed-array reorder. */\nexport function createCompilerKeyedArrayQueuedMapPipeline(\n previous: unknown,\n pipeline: (...values: readonly unknown[]) => unknown,\n): unknown {\n return executeCompilerKeyedMapPipeline(\n previous,\n pipeline,\n recordCompilerKeyedArrayQueuedMapPipeline,\n );\n}\n\nfunction compilerRollingWindowSourceLength(update: CompilerKeyedArrayRollingWindowHint): number {\n let first = update;\n while (first.previous) first = first.previous;\n return first.sourceLength;\n}\n\nfunction recordCompilerKeyedArrayRollingWindowMapPipeline(\n previous: unknown,\n value: unknown,\n): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n value.length !== previous.length\n ) {\n return value;\n }\n\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousReorder = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_REORDERS.get(previousTarget);\n const previousRollingWindow =\n !committedSource && !previousReorder\n ? COMPILER_KEYED_ARRAY_ROLLING_WINDOWS.get(previousTarget)\n : undefined;\n if (\n !committedSource &&\n ((!previousReorder && !previousRollingWindow) ||\n (previousReorder &&\n (!previousReorder.rollingWindowMapUpdate ||\n previousReorder.resultLength !== previous.length)) ||\n (previousRollingWindow && previousRollingWindow.resultLength !== previous.length))\n ) {\n return value;\n }\n const sourceToken =\n previousReorder?.sourceToken ||\n previousRollingWindow?.sourceToken ||\n compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n COMPILER_KEYED_ARRAY_REORDERS.set(valueTarget, {\n sourceToken,\n sourceLength:\n previousReorder?.sourceLength ??\n (previousRollingWindow\n ? compilerRollingWindowSourceLength(previousRollingWindow)\n : previous.length),\n resultLength: value.length,\n mapped: true,\n rollingWindowMapUpdate: true,\n ...(previousReorder?.rollingWindowUpdate || previousRollingWindow\n ? {\n rollingWindowUpdate: previousReorder?.rollingWindowUpdate || previousRollingWindow,\n }\n : {}),\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Executes a safe map inside one compiler-proven rolling-window setter chain. */\nexport function createCompilerKeyedArrayRollingWindowMapPipeline(\n previous: unknown,\n pipeline: (...values: readonly unknown[]) => unknown,\n): unknown {\n return executeCompilerKeyedMapPipeline(\n previous,\n pipeline,\n recordCompilerKeyedArrayRollingWindowMapPipeline,\n );\n}\n\n/** @internal Executes a native reorder after a proven same-key map pipeline. */\nexport function createCompilerKeyedArrayMapReorder(\n previous: unknown,\n method: unknown,\n ...args: readonly unknown[]\n): unknown {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n previous,\n args,\n );\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n value.length !== previous.length ||\n (method !== NATIVE_ARRAY_TO_REVERSED && method !== NATIVE_ARRAY_TO_SORTED) ||\n (method === NATIVE_ARRAY_TO_REVERSED && args.length !== 0) ||\n (method === NATIVE_ARRAY_TO_SORTED &&\n (args.length > 1 ||\n (args.length === 1 && args[0] !== undefined && typeof args[0] !== \"function\")))\n ) {\n return value;\n }\n for (let index = 0; index < previous.length; index += 1) {\n if (\n !Object.prototype.hasOwnProperty.call(previous, index) ||\n !Object.prototype.hasOwnProperty.call(value, index)\n ) {\n return value;\n }\n }\n\n const previousReorder = COMPILER_KEYED_ARRAY_REORDERS.get(previousTarget);\n const source = previousReorder?.mapped ? previousReorder : undefined;\n if (!source || source.resultLength !== previous.length) return value;\n COMPILER_KEYED_ARRAY_REORDERS.set(valueTarget, {\n kind:\n method !== NATIVE_ARRAY_TO_REVERSED\n ? CompilerKeyedArrayReorderKind.Permutation\n : reversedCompilerKeyedArrayOrder(source.kind),\n sourceToken: source.sourceToken,\n sourceLength: source.sourceLength,\n resultLength: value.length,\n mapped: true,\n mappedItemSources: source.mappedItemSources,\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Records a compiler-proven immutable keyed-array append and returns the Array. */\nexport function createCompilerKeyedArrayAppend(previous: unknown, value: unknown): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n previous[Symbol.iterator] !== NATIVE_ARRAY_ITERATOR\n ) {\n return value;\n }\n const startIndex = previous.length;\n if (value.length < startIndex) return value;\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n const previousUpdate = !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget)\n ? COMPILER_KEYED_ARRAY_APPENDS.get(previousTarget)\n : undefined;\n COMPILER_KEYED_ARRAY_APPENDS.set(valueTarget, {\n sourceToken: previousUpdate?.sourceToken || sourceToken,\n startIndex,\n resultLength: value.length,\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n return value;\n } catch {\n // Metadata must never change the behavior of an otherwise valid update.\n return value;\n }\n}\n\n/** @internal Records an append that may follow a compiler-proven structural update. */\nexport function createCompilerKeyedArrayStructuralAppend(\n previous: unknown,\n value: unknown,\n): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n previous[Symbol.iterator] !== NATIVE_ARRAY_ITERATOR\n ) {\n return value;\n }\n const startIndex = previous.length;\n if (value.length < startIndex) return value;\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousUpdate = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_APPENDS.get(previousTarget);\n const directStructuralUpdate =\n !committedSource && !previousUpdate\n ? COMPILER_KEYED_ARRAY_FILTERS.get(previousTarget)\n : undefined;\n const structuralSource = directStructuralUpdate\n ? compilerKeyedArrayFilterSource(directStructuralUpdate, previous.length)\n : undefined;\n const structuralUpdate =\n previousUpdate?.structuralUpdate || (structuralSource ? directStructuralUpdate : undefined);\n const sourceToken =\n previousUpdate?.sourceToken ||\n structuralSource?.sourceToken ||\n compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n COMPILER_KEYED_ARRAY_APPENDS.set(valueTarget, {\n sourceToken,\n startIndex,\n resultLength: value.length,\n ...(structuralUpdate ? { structuralUpdate } : {}),\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n return value;\n } catch {\n // Metadata must never change the behavior of an otherwise valid update.\n return value;\n }\n}\n\n/** @internal Records an append that directly follows compiler-proven mapped structural work. */\nexport function createCompilerKeyedArrayMappedStructuralAppend(\n previous: unknown,\n value: unknown,\n): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n previous[Symbol.iterator] !== NATIVE_ARRAY_ITERATOR\n ) {\n return value;\n }\n const startIndex = previous.length;\n if (value.length < startIndex) return value;\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousUpdate = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_APPENDS.get(previousTarget);\n const previousMappedUpdate =\n !committedSource && !previousUpdate\n ? COMPILER_KEYED_ARRAY_REORDERS.get(previousTarget)\n : undefined;\n const mappedStructuralUpdate =\n previousMappedUpdate?.mapped &&\n previousMappedUpdate.kind === undefined &&\n previousMappedUpdate.structuralUpdate &&\n previousMappedUpdate.resultLength === previous.length\n ? previousMappedUpdate\n : undefined;\n const structuralUpdate =\n previousUpdate?.structuralUpdate || mappedStructuralUpdate?.structuralUpdate;\n const sourceToken = previousUpdate?.sourceToken || mappedStructuralUpdate?.sourceToken;\n const mappedItemSources =\n previousUpdate?.mappedItemSources || mappedStructuralUpdate?.mappedItemSources;\n if (!sourceToken || !structuralUpdate || !mappedItemSources) return value;\n COMPILER_KEYED_ARRAY_APPENDS.set(valueTarget, {\n sourceToken,\n startIndex,\n resultLength: value.length,\n structuralUpdate,\n mappedItemSources,\n ...(previousUpdate?.mappedSurvivorsValidated ? { mappedSurvivorsValidated: true } : {}),\n ...(previousUpdate?.mappedItemValues\n ? { mappedItemValues: previousUpdate.mappedItemValues }\n : {}),\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n return value;\n } catch {\n // Metadata must never change the behavior of an otherwise valid update.\n return value;\n }\n}\n\n/** @internal Executes safe maps while retaining structural append lineage. */\nexport function createCompilerKeyedArrayStructuralAppendMapPipeline(\n previous: unknown,\n pipeline: (...values: readonly unknown[]) => unknown,\n): unknown {\n let appendUpdate: CompilerKeyedArrayAppendHint | undefined;\n let committedItems: readonly unknown[] | undefined;\n let survivorRange: { readonly end: number; readonly start: number } | undefined;\n let survivorIndices: readonly number[] | undefined;\n let mappedItemSources = new Map<number, unknown>();\n let mappedItemValues = new Map<number, unknown>();\n try {\n const previousTarget = compilerObject(previous);\n if (\n !previousTarget ||\n !Array.isArray(previous) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n !(appendUpdate = COMPILER_KEYED_ARRAY_APPENDS.get(previousTarget)) ||\n !appendUpdate.structuralUpdate ||\n appendUpdate.resultLength !== previous.length\n ) {\n appendUpdate = undefined;\n } else {\n committedItems = COMPILER_KEYED_COMMITTED_ITEM_SNAPSHOTS.get(appendUpdate.sourceToken);\n const structuralAppend = committedItems\n ? compilerKeyedArrayStructuralAppendMapUpdate(\n previous,\n appendUpdate.sourceToken,\n committedItems.length,\n )\n : undefined;\n survivorRange = structuralAppend?.structuralSurvivorRange;\n survivorIndices = structuralAppend?.structuralSurvivors;\n if (!survivorRange && !survivorIndices) {\n appendUpdate = undefined;\n } else {\n if (appendUpdate.mappedSurvivorsValidated && appendUpdate.mappedItemSources) {\n mappedItemSources = new Map(\n appendUpdate.mappedItemSources as ReadonlyMap<number, unknown>,\n );\n }\n if (appendUpdate.mappedItemValues) {\n mappedItemValues = new Map(appendUpdate.mappedItemValues);\n }\n }\n }\n } catch {\n appendUpdate = undefined;\n }\n\n let eligible = appendUpdate !== undefined;\n const applyMap = (collection: unknown, method: unknown, callback: unknown): unknown => {\n if (method !== NATIVE_ARRAY_MAP || !eligible) {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n collection,\n [callback],\n );\n if (method !== NATIVE_ARRAY_MAP) eligible = false;\n return value;\n }\n\n let expectedIndex = 0;\n let expectedLength = -1;\n try {\n if (\n !Array.isArray(collection) ||\n Object.getPrototypeOf(collection) !== NATIVE_ARRAY_PROTOTYPE\n ) {\n eligible = false;\n } else {\n expectedLength = collection.length;\n }\n } catch {\n eligible = false;\n }\n const wrappedCallback = (item: unknown, index: number, source: unknown): unknown => {\n if (index !== expectedIndex) eligible = false;\n expectedIndex = index + 1;\n const survivorCount = survivorRange\n ? survivorRange.end - survivorRange.start\n : (survivorIndices?.length ?? 0);\n let committedItem: unknown;\n if (index < survivorCount) {\n const sourceIndex = survivorRange ? survivorRange.start + index : survivorIndices?.[index];\n committedItem = sourceIndex === undefined ? undefined : committedItems?.[sourceIndex];\n if (mappedItemValues.has(index)) {\n if (!Object.is(item, mappedItemValues.get(index))) eligible = false;\n } else if (appendUpdate?.mappedItemSources && !appendUpdate.mappedSurvivorsValidated) {\n const mappedStructuralSources =\n appendUpdate.mappedItemSources as CompilerMappedItemSources;\n const sourceItem = mappedStructuralSources.has(item)\n ? mappedStructuralSources.get(item)\n : item;\n if (!Object.is(sourceItem, committedItem)) eligible = false;\n } else if (!Object.is(item, committedItem)) {\n eligible = false;\n }\n }\n const mappedItem = NATIVE_REFLECT_APPLY(\n callback as (...values: readonly unknown[]) => unknown,\n undefined,\n [item, index, source],\n );\n if (index < survivorCount) {\n if (Object.is(mappedItem, committedItem)) {\n mappedItemSources.delete(index);\n mappedItemValues.delete(index);\n } else {\n mappedItemSources.set(index, committedItem);\n mappedItemValues.set(index, mappedItem);\n }\n }\n return mappedItem;\n };\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n collection,\n [wrappedCallback],\n );\n try {\n if (\n expectedIndex !== expectedLength ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n value.length !== expectedLength\n ) {\n eligible = false;\n }\n } catch {\n eligible = false;\n }\n return value;\n };\n const value = NATIVE_REFLECT_APPLY(pipeline, undefined, [previous, applyMap]);\n if (!eligible || !appendUpdate) return value;\n try {\n const valueTarget = compilerObject(value);\n if (!valueTarget) return value;\n COMPILER_KEYED_ARRAY_APPENDS.set(valueTarget, {\n ...appendUpdate,\n mappedItemSources,\n mappedItemValues,\n mappedSurvivorsValidated: true,\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Records a compiler-proven immutable keyed-array prepend and returns the Array. */\nexport function createCompilerKeyedArrayPrepend(previous: unknown, value: unknown): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n previous[Symbol.iterator] !== NATIVE_ARRAY_ITERATOR\n ) {\n return value;\n }\n const sourceLength = previous.length;\n const prefixLength = value.length - sourceLength;\n if (prefixLength < 1) return value;\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n const previousUpdate = !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget)\n ? COMPILER_KEYED_ARRAY_PREPENDS.get(previousTarget)\n : undefined;\n COMPILER_KEYED_ARRAY_PREPENDS.set(valueTarget, {\n sourceToken: previousUpdate?.sourceToken || sourceToken,\n sourceLength,\n resultLength: value.length,\n prefixLength,\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n return value;\n } catch {\n // Metadata must never change the behavior of an otherwise valid update.\n return value;\n }\n}\n\n/** @internal Records a prepend that may follow a compiler-proven structural update. */\nexport function createCompilerKeyedArrayStructuralPrepend(\n previous: unknown,\n value: unknown,\n): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n previous[Symbol.iterator] !== NATIVE_ARRAY_ITERATOR\n ) {\n return value;\n }\n const sourceLength = previous.length;\n const prefixLength = value.length - sourceLength;\n if (prefixLength < 1) return value;\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousUpdate = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_PREPENDS.get(previousTarget);\n const directStructuralUpdate =\n !committedSource && !previousUpdate\n ? COMPILER_KEYED_ARRAY_FILTERS.get(previousTarget)\n : undefined;\n const structuralSource = directStructuralUpdate\n ? compilerKeyedArrayFilterSource(directStructuralUpdate, previous.length)\n : undefined;\n const structuralUpdate =\n previousUpdate?.structuralUpdate || (structuralSource ? directStructuralUpdate : undefined);\n const sourceToken =\n previousUpdate?.sourceToken ||\n structuralSource?.sourceToken ||\n compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n COMPILER_KEYED_ARRAY_PREPENDS.set(valueTarget, {\n sourceToken,\n sourceLength,\n resultLength: value.length,\n prefixLength,\n ...(structuralUpdate ? { structuralUpdate } : {}),\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n return value;\n } catch {\n // Metadata must never change the behavior of an otherwise valid update.\n return value;\n }\n}\n\n/** @internal Records a prepend that directly follows compiler-proven mapped structural work. */\nexport function createCompilerKeyedArrayMappedStructuralPrepend(\n previous: unknown,\n value: unknown,\n): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n previous[Symbol.iterator] !== NATIVE_ARRAY_ITERATOR\n ) {\n return value;\n }\n const sourceLength = previous.length;\n const prefixLength = value.length - sourceLength;\n if (prefixLength < 1) return value;\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousUpdate = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_PREPENDS.get(previousTarget);\n const previousMappedUpdate =\n !committedSource && !previousUpdate\n ? COMPILER_KEYED_ARRAY_REORDERS.get(previousTarget)\n : undefined;\n const mappedStructuralUpdate =\n previousMappedUpdate?.mapped &&\n previousMappedUpdate.kind === undefined &&\n previousMappedUpdate.structuralUpdate &&\n previousMappedUpdate.resultLength === previous.length\n ? previousMappedUpdate\n : undefined;\n const structuralUpdate =\n previousUpdate?.structuralUpdate || mappedStructuralUpdate?.structuralUpdate;\n const sourceToken = previousUpdate?.sourceToken || mappedStructuralUpdate?.sourceToken;\n const mappedItemSources =\n previousUpdate?.mappedItemSources || mappedStructuralUpdate?.mappedItemSources;\n if (!sourceToken || !structuralUpdate || !mappedItemSources) return value;\n COMPILER_KEYED_ARRAY_PREPENDS.set(valueTarget, {\n sourceToken,\n sourceLength,\n resultLength: value.length,\n prefixLength,\n structuralUpdate,\n mappedItemSources,\n ...(previousUpdate?.mappedSurvivorsValidated ? { mappedSurvivorsValidated: true } : {}),\n ...(previousUpdate?.mappedItemValues\n ? { mappedItemValues: previousUpdate.mappedItemValues }\n : {}),\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n return value;\n } catch {\n // Metadata must never change the behavior of an otherwise valid update.\n return value;\n }\n}\n\n/** @internal Executes safe maps while retaining structural prepend lineage. */\nexport function createCompilerKeyedArrayStructuralPrependMapPipeline(\n previous: unknown,\n pipeline: (...values: readonly unknown[]) => unknown,\n): unknown {\n let prependUpdate: CompilerKeyedArrayPrependHint | undefined;\n let committedItems: readonly unknown[] | undefined;\n let survivorRange: { readonly end: number; readonly start: number } | undefined;\n let survivorIndices: readonly number[] | undefined;\n let prefixLength = 0;\n try {\n const previousTarget = compilerObject(previous);\n if (\n !previousTarget ||\n !Array.isArray(previous) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n !(prependUpdate = COMPILER_KEYED_ARRAY_PREPENDS.get(previousTarget)) ||\n !prependUpdate.structuralUpdate ||\n prependUpdate.resultLength !== previous.length\n ) {\n prependUpdate = undefined;\n } else {\n committedItems = COMPILER_KEYED_COMMITTED_ITEM_SNAPSHOTS.get(prependUpdate.sourceToken);\n const structuralPrepend = committedItems\n ? compilerKeyedArrayStructuralPrependMapUpdate(\n previous,\n prependUpdate.sourceToken,\n committedItems.length,\n )\n : undefined;\n survivorRange = structuralPrepend?.structuralSurvivorRange;\n survivorIndices = structuralPrepend?.structuralSurvivors;\n prefixLength = structuralPrepend?.prefixLength || 0;\n if (!survivorRange && !survivorIndices) {\n prependUpdate = undefined;\n }\n }\n } catch {\n prependUpdate = undefined;\n }\n\n let eligible = prependUpdate !== undefined;\n const survivorCount = survivorRange\n ? survivorRange.end - survivorRange.start\n : (survivorIndices?.length ?? 0);\n const applyMap = (collection: unknown, method: unknown, callback: unknown): unknown => {\n if (method !== NATIVE_ARRAY_MAP || !eligible) {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n collection,\n [callback],\n );\n if (method !== NATIVE_ARRAY_MAP) eligible = false;\n return value;\n }\n\n let expectedIndex = 0;\n let expectedLength = -1;\n try {\n if (\n !Array.isArray(collection) ||\n Object.getPrototypeOf(collection) !== NATIVE_ARRAY_PROTOTYPE\n ) {\n eligible = false;\n } else {\n expectedLength = collection.length;\n }\n } catch {\n eligible = false;\n }\n const wrappedCallback = (item: unknown, index: number, source: unknown): unknown => {\n if (index !== expectedIndex) eligible = false;\n expectedIndex = index + 1;\n return NATIVE_REFLECT_APPLY(\n callback as (...values: readonly unknown[]) => unknown,\n undefined,\n [item, index, source],\n );\n };\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n collection,\n [wrappedCallback],\n );\n try {\n if (\n expectedIndex !== expectedLength ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n value.length !== expectedLength\n ) {\n eligible = false;\n }\n } catch {\n eligible = false;\n }\n return value;\n };\n const value = NATIVE_REFLECT_APPLY(pipeline, undefined, [previous, applyMap]);\n if (!eligible || !prependUpdate) return value;\n try {\n const valueTarget = compilerObject(value);\n if (\n !valueTarget ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n value.length !== prefixLength + survivorCount\n ) {\n return value;\n }\n const mappedItemSources = new Map<number, unknown>();\n const mappedItemValues = new Map<number, unknown>();\n for (let index = 0; index < survivorCount; index += 1) {\n const sourceIndex = survivorRange ? survivorRange.start + index : survivorIndices![index];\n const committedItem = committedItems![sourceIndex];\n const mappedItem = value[prefixLength + index];\n if (Object.is(mappedItem, committedItem)) continue;\n mappedItemSources.set(index, committedItem);\n mappedItemValues.set(index, mappedItem);\n }\n COMPILER_KEYED_ARRAY_PREPENDS.set(valueTarget, {\n ...prependUpdate,\n mappedItemSources,\n mappedItemValues,\n mappedSurvivorsValidated: true,\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Executes Array.filter while recording compiler-proven removal positions. */\nexport function createCompilerKeyedArrayFilter(\n previous: unknown,\n method: unknown,\n predicate: unknown,\n): unknown {\n let canHint = false;\n let sourceLength = 0;\n try {\n canHint =\n Array.isArray(previous) &&\n Object.getPrototypeOf(previous) === NATIVE_ARRAY_PROTOTYPE &&\n method === NATIVE_ARRAY_FILTER &&\n typeof predicate === \"function\";\n if (canHint) sourceLength = (previous as unknown[]).length;\n } catch {\n canHint = false;\n }\n\n if (!canHint) {\n return NATIVE_REFLECT_APPLY(method as (...args: unknown[]) => unknown, previous, [predicate]);\n }\n\n const removedIndices: number[] = [];\n let visited = 0;\n const wrappedPredicate = function (\n this: unknown,\n item: unknown,\n index: number,\n collection: unknown[],\n ): unknown {\n visited += 1;\n const keep = NATIVE_REFLECT_APPLY(predicate as (...args: unknown[]) => unknown, this, [\n item,\n index,\n collection,\n ]);\n if (!keep) removedIndices.push(index);\n return keep;\n };\n const value = NATIVE_REFLECT_APPLY(method as (...args: unknown[]) => unknown, previous, [\n wrappedPredicate,\n ]);\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n visited !== sourceLength ||\n value.length !== sourceLength - removedIndices.length\n ) {\n return value;\n }\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousMappedUpdate = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_REORDERS.get(previousTarget);\n const mappedUpdate =\n previousMappedUpdate?.mapped &&\n previousMappedUpdate.kind === undefined &&\n previousMappedUpdate.resultLength === sourceLength\n ? previousMappedUpdate\n : undefined;\n const sourceToken = mappedUpdate?.sourceToken || compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n const previousUpdate = !committedSource\n ? COMPILER_KEYED_ARRAY_FILTERS.get(previousTarget) || mappedUpdate?.structuralUpdate\n : undefined;\n const mappedItemSources = mappedUpdate?.mappedItemSources || previousUpdate?.mappedItemSources;\n COMPILER_KEYED_ARRAY_FILTERS.set(valueTarget, {\n kind: \"filter\",\n sourceToken: previousUpdate?.sourceToken || sourceToken,\n sourceLength,\n resultLength: value.length,\n removedIndices,\n ...(mappedItemSources ? { mappedItemSources } : {}),\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n } catch {\n // Metadata must never change the result of a successful native filter.\n }\n return value;\n}\n\n/** @internal Executes a compiler-proven native Array.slice and records its retained interval. */\nexport function createCompilerKeyedArraySlice(\n previous: unknown,\n method: unknown,\n ...args: readonly number[]\n): unknown {\n const canHint = (() => {\n try {\n return (\n Array.isArray(previous) &&\n Object.getPrototypeOf(previous) === NATIVE_ARRAY_PROTOTYPE &&\n method === NATIVE_ARRAY_SLICE &&\n args.length > 0 &&\n args.length <= 2 &&\n args.every((value) => Number.isSafeInteger(value))\n );\n } catch {\n return false;\n }\n })();\n const value = NATIVE_REFLECT_APPLY(method as (...values: number[]) => unknown, previous, args);\n if (!canHint) return value;\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE\n ) {\n return value;\n }\n const sourceLength = (previous as unknown[]).length;\n const normalize = (relative: number): number =>\n relative < 0 ? Math.max(sourceLength + relative, 0) : Math.min(relative, sourceLength);\n const retainedStart = normalize(args[0]);\n const retainedEnd = args.length === 2 ? normalize(args[1]) : sourceLength;\n const resultLength = Math.max(retainedEnd - retainedStart, 0);\n if (value.length !== resultLength || resultLength >= sourceLength) return value;\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousMappedUpdate = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_REORDERS.get(previousTarget);\n const mappedUpdate =\n previousMappedUpdate?.mapped &&\n previousMappedUpdate.kind === undefined &&\n previousMappedUpdate.resultLength === sourceLength\n ? previousMappedUpdate\n : undefined;\n const sourceToken = mappedUpdate?.sourceToken || compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n const previousUpdate = !committedSource\n ? COMPILER_KEYED_ARRAY_FILTERS.get(previousTarget) || mappedUpdate?.structuralUpdate\n : undefined;\n const mappedItemSources = mappedUpdate?.mappedItemSources || previousUpdate?.mappedItemSources;\n COMPILER_KEYED_ARRAY_FILTERS.set(valueTarget, {\n kind: \"slice\",\n sourceToken: previousUpdate?.sourceToken || sourceToken,\n sourceLength,\n resultLength,\n retainedEnd: Math.max(retainedEnd, retainedStart),\n retainedStart,\n ...(mappedItemSources ? { mappedItemSources } : {}),\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n } catch {\n // Metadata must never change the result of a successful native slice.\n }\n return value;\n}\n\n/** @internal Retains mapped lineage through a compiler-proven terminal filter or slice. */\nexport function finalizeCompilerKeyedArrayMappedStructuralUpdate(value: unknown): unknown {\n try {\n const valueTarget = compilerObject(value);\n const structuralUpdate = valueTarget\n ? COMPILER_KEYED_ARRAY_FILTERS.get(valueTarget)\n : undefined;\n const mappedItemSources = structuralUpdate?.mappedItemSources;\n if (!valueTarget || !structuralUpdate || !mappedItemSources) return value;\n const source = compilerKeyedArrayFilterSource(structuralUpdate, structuralUpdate.resultLength);\n if (!source) return value;\n COMPILER_KEYED_ARRAY_REORDERS.set(valueTarget, {\n sourceToken: source.sourceToken,\n sourceLength: source.sourceLength,\n resultLength: structuralUpdate.resultLength,\n mapped: true,\n mappedItemSources,\n structuralUpdate,\n });\n } catch {\n // Metadata must never change the result of a successful native pipeline.\n }\n return value;\n}\n\n/** @internal Records a compiler-proven retained tail followed by incoming keyed rows. */\nexport function createCompilerKeyedArrayRollingWindow(\n previous: unknown,\n retained: unknown,\n value: unknown,\n): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const retainedTarget = compilerObject(retained);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !retainedTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(retained) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(retained) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE\n ) {\n return value;\n }\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousUpdate = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_ROLLING_WINDOWS.get(previousTarget);\n if (!committedSource && !previousUpdate) return value;\n const immediateSourceToken = compilerKeyedCollectionToken(previousTarget);\n const sourceToken = previousUpdate?.sourceToken || immediateSourceToken;\n const slice = COMPILER_KEYED_ARRAY_FILTERS.get(retainedTarget);\n if (\n !immediateSourceToken ||\n !sourceToken ||\n !slice ||\n slice.previous ||\n slice.kind !== \"slice\" ||\n slice.sourceToken !== immediateSourceToken ||\n slice.sourceLength !== previous.length ||\n slice.retainedStart === undefined ||\n slice.retainedEnd !== previous.length ||\n slice.retainedStart < 1 ||\n slice.resultLength !== retained.length ||\n (previousUpdate && previousUpdate.resultLength !== previous.length) ||\n value.length <= retained.length\n ) {\n return value;\n }\n for (let index = 0; index < retained.length; index += 1) {\n if (!Object.is(value[index], retained[index])) return value;\n }\n COMPILER_KEYED_ARRAY_ROLLING_WINDOWS.set(valueTarget, {\n sourceToken,\n sourceLength: previous.length,\n resultLength: value.length,\n retainedEnd: slice.retainedEnd,\n retainedStart: slice.retainedStart,\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n } catch {\n // Metadata must never change the result of a successful array update.\n }\n return value;\n}\n\n/** @internal Records one rolling step inside a compiler-proven mapped window chain. */\nexport function createCompilerKeyedArrayMappedRollingWindow(\n previous: unknown,\n retained: unknown,\n value: unknown,\n): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const retainedTarget = compilerObject(retained);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !retainedTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(retained) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(retained) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE\n ) {\n return value;\n }\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousDirectUpdate = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_ROLLING_WINDOWS.get(previousTarget);\n const previousReorder =\n !committedSource && !previousDirectUpdate\n ? COMPILER_KEYED_ARRAY_REORDERS.get(previousTarget)\n : undefined;\n const previousMappedUpdate =\n previousReorder?.mapped &&\n previousReorder.rollingWindowMapUpdate &&\n previousReorder.kind === undefined &&\n !previousReorder.structuralUpdate &&\n previousReorder.resultLength === previous.length\n ? previousReorder\n : undefined;\n const previousUpdate = previousDirectUpdate || previousMappedUpdate?.rollingWindowUpdate;\n if (!committedSource && !previousUpdate && !previousMappedUpdate) return value;\n const immediateSourceToken = compilerKeyedCollectionToken(previousTarget);\n const sourceToken =\n previousMappedUpdate?.sourceToken || previousUpdate?.sourceToken || immediateSourceToken;\n const sliceSourceToken = previousMappedUpdate?.sourceToken || immediateSourceToken;\n const slice = COMPILER_KEYED_ARRAY_FILTERS.get(retainedTarget);\n if (\n !immediateSourceToken ||\n !sourceToken ||\n !slice ||\n slice.previous ||\n slice.kind !== \"slice\" ||\n slice.sourceToken !== sliceSourceToken ||\n slice.sourceLength !== previous.length ||\n slice.retainedStart === undefined ||\n slice.retainedEnd !== previous.length ||\n slice.retainedStart < 1 ||\n slice.resultLength !== retained.length ||\n retained[Symbol.iterator] !== NATIVE_ARRAY_ITERATOR ||\n (previousUpdate && previousUpdate.resultLength !== previous.length) ||\n value.length <= retained.length\n ) {\n return value;\n }\n COMPILER_KEYED_ARRAY_ROLLING_WINDOWS.set(valueTarget, {\n sourceToken,\n sourceLength: previous.length,\n resultLength: value.length,\n retainedEnd: slice.retainedEnd,\n retainedStart: slice.retainedStart,\n ...(previousMappedUpdate || previousUpdate?.mapped ? { mapped: true } : {}),\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n } catch {\n // Metadata must never change the result of a successful array update.\n }\n return value;\n}\n\n/** @internal Executes a native known-position insert, removal, or replacement and records it. */\nexport function createCompilerKeyedArrayPositionUpdate(\n previous: unknown,\n method: unknown,\n kind: \"insert\" | \"remove\" | \"replace\",\n position: number,\n ...args: readonly unknown[]\n): unknown {\n const callArgs = [position, ...args];\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n previous,\n callArgs,\n );\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget) ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n !Number.isSafeInteger(position)\n ) {\n return value;\n }\n\n const sourceLength = previous.length;\n const normalizedPosition =\n position < 0 ? Math.max(sourceLength + position, 0) : Math.min(position, sourceLength);\n const deleteCount = args[0];\n const removedCount = sourceLength - value.length;\n const validInsert =\n kind === \"insert\" &&\n method === NATIVE_ARRAY_TO_SPLICED &&\n args.length === 2 &&\n Object.is(args[0], 0) &&\n value.length === sourceLength + 1;\n const validRemove =\n kind === \"remove\" &&\n method === NATIVE_ARRAY_TO_SPLICED &&\n args.length === 1 &&\n Number.isSafeInteger(deleteCount) &&\n (deleteCount as number) > 0 &&\n normalizedPosition < sourceLength &&\n removedCount === Math.min(deleteCount as number, sourceLength - normalizedPosition);\n const validReplace =\n kind === \"replace\" &&\n value.length === sourceLength &&\n ((method === NATIVE_ARRAY_WITH &&\n args.length === 1 &&\n position >= -sourceLength &&\n position < sourceLength) ||\n (method === NATIVE_ARRAY_TO_SPLICED &&\n args.length === 2 &&\n Object.is(args[0], 1) &&\n normalizedPosition < sourceLength));\n if (!validInsert && !validRemove && !validReplace) return value;\n\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n COMPILER_KEYED_ARRAY_POSITIONS.set(valueTarget, {\n kind,\n sourceToken,\n sourceLength,\n resultLength: value.length,\n position: normalizedPosition,\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Executes a native exact-position batch insertion and records it. */\nexport function createCompilerKeyedArrayBatchInsert(\n previous: unknown,\n method: unknown,\n position: number,\n ...items: readonly unknown[]\n): unknown {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n previous,\n [position, 0, ...items],\n );\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget) ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n method !== NATIVE_ARRAY_TO_SPLICED ||\n !Number.isSafeInteger(position) ||\n items.length < 2 ||\n value.length !== previous.length + items.length\n ) {\n return value;\n }\n for (let index = 0; index < previous.length; index += 1) {\n if (!Object.prototype.hasOwnProperty.call(previous, index)) return value;\n }\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n COMPILER_KEYED_ARRAY_BATCH_INSERTS.set(valueTarget, {\n sourceToken,\n sourceLength: previous.length,\n resultLength: value.length,\n position:\n position < 0\n ? Math.max(previous.length + position, 0)\n : Math.min(position, previous.length),\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Executes a native exact-window replacement and records it. */\nexport function createCompilerKeyedArrayWindowReplace(\n previous: unknown,\n method: unknown,\n position: number,\n deleteCount: number,\n ...items: readonly unknown[]\n): unknown {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n previous,\n [position, deleteCount, ...items],\n );\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n method !== NATIVE_ARRAY_TO_SPLICED ||\n !Number.isSafeInteger(position) ||\n !Number.isSafeInteger(deleteCount) ||\n deleteCount <= 0\n ) {\n return value;\n }\n for (let index = 0; index < previous.length; index += 1) {\n if (!Object.prototype.hasOwnProperty.call(previous, index)) return value;\n }\n const normalizedPosition =\n position < 0 ? Math.max(previous.length + position, 0) : Math.min(position, previous.length);\n const removedCount = Math.min(deleteCount, previous.length - normalizedPosition);\n if (removedCount < 1 || value.length !== previous.length - removedCount + items.length) {\n return value;\n }\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousUpdate = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_WINDOW_REPLACEMENTS.get(previousTarget);\n if (!committedSource && !previousUpdate) return value;\n const sourceToken = previousUpdate?.sourceToken || compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n COMPILER_KEYED_ARRAY_WINDOW_REPLACEMENTS.set(valueTarget, {\n sourceToken,\n sourceLength: previous.length,\n resultLength: value.length,\n position: normalizedPosition,\n removedCount,\n insertedCount: items.length,\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Executes a native reverse and records its exact keyed-row permutation. */\nexport function createCompilerKeyedArrayReorder(previous: unknown, method: unknown): unknown {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n previous,\n [],\n );\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n method !== NATIVE_ARRAY_TO_REVERSED ||\n value.length !== previous.length\n ) {\n return value;\n }\n\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousUpdate = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_REORDERS.get(previousTarget);\n if (\n !committedSource &&\n (!previousUpdate ||\n previousUpdate.sourceLength !== previous.length ||\n previousUpdate.resultLength !== previous.length)\n ) {\n return value;\n }\n const sourceToken = previousUpdate?.sourceToken || compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n COMPILER_KEYED_ARRAY_REORDERS.set(valueTarget, {\n kind: reversedCompilerKeyedArrayOrder(previousUpdate?.kind),\n sourceToken,\n sourceLength: previous.length,\n resultLength: value.length,\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Executes a native immutable sort and records its keyed-row permutation. */\nexport function createCompilerKeyedArraySort(\n previous: unknown,\n method: unknown,\n ...args: readonly unknown[]\n): unknown {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n previous,\n args,\n );\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n method !== NATIVE_ARRAY_TO_SORTED ||\n args.length > 1 ||\n (args.length === 1 && args[0] !== undefined && typeof args[0] !== \"function\") ||\n value.length !== previous.length\n ) {\n return value;\n }\n for (let index = 0; index < previous.length; index += 1) {\n if (!(index in previous)) return value;\n }\n\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousUpdate = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_REORDERS.get(previousTarget);\n if (\n !committedSource &&\n (!previousUpdate ||\n previousUpdate.sourceLength !== previous.length ||\n previousUpdate.resultLength !== previous.length)\n ) {\n return value;\n }\n const sourceToken = previousUpdate?.sourceToken || compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n COMPILER_KEYED_ARRAY_REORDERS.set(valueTarget, {\n kind: CompilerKeyedArrayReorderKind.Permutation,\n sourceToken,\n sourceLength: previous.length,\n resultLength: value.length,\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\nfunction recordCompilerKeyedArrayStructuralReorder(\n previous: unknown,\n value: unknown,\n kind: CompilerKeyedArrayReorderKind,\n): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (!previousTarget || !valueTarget || !Array.isArray(previous) || !Array.isArray(value)) {\n return value;\n }\n\n const previousUpdate = COMPILER_KEYED_ARRAY_REORDERS.get(previousTarget);\n const structuralUpdate =\n previousUpdate?.structuralUpdate ||\n (!previousUpdate ? COMPILER_KEYED_ARRAY_FILTERS.get(previousTarget) : undefined);\n const structuralSource = structuralUpdate\n ? compilerKeyedArrayFilterSource(structuralUpdate, previous.length)\n : undefined;\n if (\n !structuralUpdate ||\n !structuralSource ||\n (previousUpdate && previousUpdate.resultLength !== previous.length)\n ) {\n return value;\n }\n const sourceToken = previousUpdate?.sourceToken || structuralSource?.sourceToken;\n if (!sourceToken) return value;\n const mappedItemSources =\n previousUpdate?.mappedItemSources || structuralUpdate.mappedItemSources;\n COMPILER_KEYED_ARRAY_REORDERS.set(valueTarget, {\n kind:\n kind === CompilerKeyedArrayReorderKind.Reverse\n ? reversedCompilerKeyedArrayOrder(previousUpdate?.kind)\n : CompilerKeyedArrayReorderKind.Permutation,\n sourceToken,\n sourceLength: previousUpdate?.sourceLength || structuralSource.sourceLength,\n resultLength: value.length,\n structuralUpdate,\n ...(mappedItemSources ? { mappedItemSources } : {}),\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Executes a native reverse after a compiler-proven filter or slice pipeline. */\nexport function createCompilerKeyedArrayStructuralReorder(\n previous: unknown,\n method: unknown,\n): unknown {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n previous,\n [],\n );\n try {\n if (\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n method !== NATIVE_ARRAY_TO_REVERSED ||\n value.length !== previous.length\n ) {\n return value;\n }\n } catch {\n return value;\n }\n return recordCompilerKeyedArrayStructuralReorder(\n previous,\n value,\n CompilerKeyedArrayReorderKind.Reverse,\n );\n}\n\n/** @internal Executes a native sort after a compiler-proven filter or slice pipeline. */\nexport function createCompilerKeyedArrayStructuralSort(\n previous: unknown,\n method: unknown,\n ...args: readonly unknown[]\n): unknown {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n previous,\n args,\n );\n try {\n if (\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n method !== NATIVE_ARRAY_TO_SORTED ||\n args.length > 1 ||\n (args.length === 1 && args[0] !== undefined && typeof args[0] !== \"function\") ||\n value.length !== previous.length\n ) {\n return value;\n }\n for (let index = 0; index < previous.length; index += 1) {\n if (!(index in previous)) return value;\n }\n } catch {\n return value;\n }\n return recordCompilerKeyedArrayStructuralReorder(\n previous,\n value,\n CompilerKeyedArrayReorderKind.Permutation,\n );\n}\n\n/** @internal Preserves a proven native collection mutation while recording its executed key. */\nexport function applyCompilerKeyedCollectionMutation(\n collection: unknown,\n method: unknown,\n operation: CompilerKeyedCollectionMutation,\n key: unknown,\n value?: unknown,\n): unknown {\n const args = operation === \"map-set\" ? [key, value] : [key];\n const result = NATIVE_REFLECT_APPLY(method as (...args: unknown[]) => unknown, collection, args);\n const target = compilerObject(collection);\n if (!target) return result;\n\n const kind: CompilerKeyedCollectionKind = operation.startsWith(\"set-\") ? \"set\" : \"map\";\n const nativeMethod =\n operation === \"set-add\"\n ? NATIVE_SET_ADD\n : operation === \"set-delete\"\n ? NATIVE_SET_DELETE\n : operation === \"map-set\"\n ? NATIVE_MAP_SET\n : NATIVE_MAP_DELETE;\n const nativePrototype = kind === \"set\" ? NATIVE_SET_PROTOTYPE : NATIVE_MAP_PROTOTYPE;\n if (method !== nativeMethod || Object.getPrototypeOf(collection) !== nativePrototype) {\n return result;\n }\n\n const existing = COMPILER_KEYED_COLLECTION_DRAFTS.get(target);\n if (existing && existing.kind !== kind) return result;\n if (existing) existing.changedKeys.push(key);\n else COMPILER_KEYED_COLLECTION_DRAFTS.set(target, { kind, changedKeys: [key] });\n return result;\n}\n\n/** @internal Connects compiler-owned immutable Set/Map mutations to their committed source. */\nexport function createCompilerKeyedCollectionUpdate(\n previous: unknown,\n value: unknown,\n kind: CompilerKeyedCollectionKind,\n): unknown {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (!previousTarget || !valueTarget || previousTarget === valueTarget) return value;\n const draft = COMPILER_KEYED_COLLECTION_DRAFTS.get(valueTarget);\n if (!draft || draft.kind !== kind || draft.changedKeys.length === 0) return value;\n\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n const previousUpdate = !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget)\n ? COMPILER_KEYED_COLLECTION_UPDATES.get(previousTarget)\n : undefined;\n COMPILER_KEYED_COLLECTION_UPDATES.set(valueTarget, {\n kind,\n sourceToken: previousUpdate?.sourceToken || sourceToken,\n changedKeys: [...draft.changedKeys],\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n return value;\n}\n\nexport interface CompilerCell {\n get(): unknown;\n set(next: CompilerStateUpdater): void;\n}\n\ninterface RuntimeCell extends CompilerCell {\n flush(): boolean;\n replace(next: unknown): void;\n}\n\ntype PendingCellUpdate =\n | { kind: \"state\"; update: CompilerStateUpdater }\n | { kind: \"value\"; value: unknown };\n\ntype SelectableTextControl = HTMLInputElement | HTMLTextAreaElement;\n\ninterface InputSelectionSnapshot {\n element: SelectableTextControl;\n start: number;\n end: number;\n direction: \"forward\" | \"backward\" | \"none\";\n}\n\nexport interface CompilerTextBinding<Props> {\n kind: \"text\";\n /** Runtime tracking is useful only for compiler-proven short-circuiting readers. */\n tracking?: \"dynamic\";\n path: readonly number[];\n /** Stable ref target emitted by newer compiler versions. */\n target?: number;\n dependencies: readonly number[];\n read(props: Props, state: readonly CompilerCell[]): unknown;\n}\n\nexport interface CompilerAttributeBinding<Props> {\n kind: \"attribute\";\n /** Runtime tracking is useful only for compiler-proven short-circuiting readers. */\n tracking?: \"dynamic\";\n path: readonly number[];\n /** Stable ref target emitted by newer compiler versions. */\n target?: number;\n dependencies: readonly number[];\n name: string;\n read(props: Props, state: readonly CompilerCell[]): unknown;\n}\n\nexport interface CompilerStyleBinding<Props> {\n kind: \"style\";\n /** Runtime tracking is useful only for compiler-proven short-circuiting readers. */\n tracking?: \"dynamic\";\n path: readonly number[];\n /** Stable ref target emitted by newer compiler versions. */\n target?: number;\n dependencies: readonly number[];\n name: string;\n read(props: Props, state: readonly CompilerCell[]): unknown;\n}\n\nexport interface CompilerConditionalBlockBinding {\n kind: \"block\";\n id: number;\n /** Nearest conditional boundary that owns this block, when nested. */\n parent?: number;\n dependencies: readonly number[];\n}\n\nexport interface CompilerConditionalBlockProps {\n id: number;\n render(): React.ReactNode;\n}\n\nexport interface CompilerKeyedListBlockProps {\n id: number;\n render(): React.ReactNode;\n}\n\nexport interface CompilerHostElement {\n kind: \"element\";\n tag: string;\n attributes: readonly { name: string; value: unknown }[];\n styles: readonly { name: string; value: unknown }[];\n children: readonly (CompilerHostElement | unknown)[];\n /** Direct-child structure owned without creating another React fiber. */\n block?: CompilerHostBlock;\n}\n\nexport type CompilerKeyedRowElement = CompilerHostElement;\n\n// Shared by every delegated row onChange so React sees a handler without a\n// per-row allocation; the container's delegated listener does the work.\nconst delegatedRowChangePlaceholder: React.EventHandler<React.SyntheticEvent> = () => undefined;\n\nexport interface CompilerKeyedRowEvent {\n name: string;\n /** Host-element path relative to the keyed row root. */\n path?: readonly number[];\n invoke(item: unknown, index: number, event: React.SyntheticEvent): unknown;\n}\n\nexport interface CompilerKeyedRowConditionalBranch {\n bindings: readonly CompilerKeyedRowBinding[];\n}\n\nexport interface CompilerKeyedRowConditional {\n id: number;\n /** Host-container path relative to the keyed row root. */\n path: readonly number[];\n test(item: unknown, index: number): unknown;\n logical: boolean;\n truthy?: CompilerKeyedRowConditionalBranch;\n falsy?: CompilerKeyedRowConditionalBranch;\n}\n\nexport interface CompilerHostConditionalBinding {\n kind: \"text\" | \"attribute\" | \"style\";\n path: readonly number[];\n name?: string;\n read(): unknown;\n}\n\nexport interface CompilerStaticRangeBinding {\n kind: \"text\" | \"attribute\" | \"style\";\n /** Static segment before range N, or the trailing segment at ranges.length. */\n segment: number;\n /** Direct host sibling inside that static segment. */\n sibling: number;\n /** Host-element path relative to the selected static sibling. */\n path: readonly number[];\n name?: string;\n read(): unknown;\n}\n\nexport interface CompilerHostConditionalBranch {\n create(): CompilerHostElement;\n bindings: readonly CompilerHostConditionalBinding[];\n}\n\nexport interface CompilerHostConditionalRanges {\n kind: \"conditional-ranges\";\n id: number;\n ranges: readonly CompilerConditionalRange[];\n trailing: number;\n bindings?: readonly CompilerStaticRangeBinding[];\n}\n\nexport interface CompilerHostKeyedRanges {\n kind: \"keyed-ranges\";\n id: number;\n ranges: readonly CompilerKeyedRange[];\n trailing: number;\n bindings?: readonly CompilerStaticRangeBinding[];\n /** Compiler output may store only static direct children and materialize rows from the ranges. */\n staticChildrenOnly?: boolean;\n}\n\nexport interface CompilerHostMixedRanges {\n kind: \"mixed-ranges\";\n id: number;\n ranges: readonly CompilerMixedRange[];\n trailing: number;\n bindings?: readonly CompilerStaticRangeBinding[];\n}\n\nexport type CompilerHostBlock =\n | CompilerHostConditionalRanges\n | CompilerHostKeyedRanges\n | CompilerHostMixedRanges;\n\nexport interface CompilerHostConditionalBlockProps {\n id: number;\n render(): React.ReactElement;\n test(): unknown;\n /** Logical && can produce a visible number instead of an empty branch. */\n logical?: boolean;\n truthy?: CompilerHostConditionalBranch;\n falsy?: CompilerHostConditionalBranch;\n}\n\nexport interface CompilerConditionalRange {\n /** Number of static direct host siblings between this slot and the previous slot. */\n before: number;\n test(): unknown;\n /** Logical && can produce a visible number instead of an empty branch. */\n logical?: boolean;\n truthy?: CompilerHostConditionalBranch;\n falsy?: CompilerHostConditionalBranch;\n}\n\nexport interface CompilerConditionalRangesBlockProps {\n id: number;\n render(): React.ReactElement;\n rootRef?: React.RefCallback<Element>;\n ranges: readonly CompilerConditionalRange[];\n /** Number of static direct host siblings after the final conditional slot. */\n trailing: number;\n bindings?: readonly CompilerStaticRangeBinding[];\n}\n\nexport interface CompilerKeyedRowBinding {\n kind: \"text\" | \"attribute\" | \"style\";\n path: readonly number[];\n name?: string;\n /** Component state cells read by this binding, when emitted by the compiler. */\n dependencies?: readonly number[];\n /** A compiler-proven primitive value compared strictly with this row's key. */\n identityTarget?: {\n dependency: number;\n read(): unknown;\n };\n /** A compiler-proven native Set whose members are compared with this row's key. */\n membershipTarget?: {\n dependency: number;\n read(): unknown;\n };\n /** A compiler-proven native Map whose values are read with this row's key. */\n mapLookupTarget?: {\n dependency: number;\n read(): unknown;\n };\n read(item: unknown, index: number): unknown;\n}\n\nexport interface CompilerKeyedRowsBlockProps {\n id: number;\n render(\n event: (\n item: unknown,\n index: number,\n eventId: number,\n ) => React.EventHandler<React.SyntheticEvent>,\n conditional: (\n item: unknown,\n index: number,\n conditionalId: number,\n render: (item: unknown, index: number) => React.ReactNode,\n ) => React.ReactNode,\n ): React.ReactElement;\n items(): Iterable<unknown> | null | undefined;\n /** Complete component-state dependencies used anywhere inside this boundary. */\n dependencies?: readonly number[];\n /** State cells that can change the row collection or its key projection. */\n structureDependencies?: readonly number[];\n /** Direct state cell supplying items, eligible for compiler-emitted update hints. */\n collectionDependency?: number;\n /** Compiler proof that shifted row indexes are not observed by this boundary. */\n filterIndexIndependent?: boolean;\n /** Compiler proof that prepending cannot expose shifted indexes to existing rows. */\n prependIndexIndependent?: boolean;\n /** Compiler proof that a known-position insert cannot expose shifted row indexes. */\n positionIndexIndependent?: boolean;\n /** Compiler proof that reordering cannot expose changed row indexes. */\n reorderIndexIndependent?: boolean;\n rowKey(item: unknown, index: number): React.Key;\n create(item: unknown, index: number): CompilerKeyedRowElement;\n bindings: readonly CompilerKeyedRowBinding[];\n events?: readonly CompilerKeyedRowEvent[];\n /** Route compiler-proven bubbling row events through the stable React container. */\n delegateEvents?: boolean;\n conditionals?: readonly CompilerKeyedRowConditional[];\n /** Row descriptors contain compiler-owned nested host scopes. */\n hostBlocks?: boolean;\n}\n\nexport interface CompilerKeyedRange {\n /** Number of static direct host siblings between this range and the previous range. */\n before: number;\n items(): Iterable<unknown> | null | undefined;\n rowKey(item: unknown, index: number): React.Key;\n create(item: unknown, index: number): CompilerKeyedRowElement;\n bindings: readonly CompilerKeyedRowBinding[];\n}\n\nexport type CompilerMixedRange =\n | ({ kind: \"conditional\" } & CompilerConditionalRange)\n | ({ kind: \"keyed\" } & CompilerKeyedRange);\n\nexport interface CompilerMixedRangesBlockProps {\n id: number;\n render(): React.ReactElement;\n create(): CompilerHostElement;\n rootRef?: React.RefCallback<Element>;\n}\n\nexport interface CompilerKeyedRangesBlockProps {\n id: number;\n render(): React.ReactElement;\n rootRef?: React.RefCallback<Element>;\n ranges: readonly CompilerKeyedRange[];\n /** Number of static direct host siblings after the final keyed range. */\n trailing: number;\n bindings?: readonly CompilerStaticRangeBinding[];\n}\n\nexport interface CompilerComponentBlockProps {\n id: number;\n render(): React.ReactNode;\n}\n\nexport interface CompilerBlockRuntime {\n Conditional: React.ComponentType<CompilerConditionalBlockProps>;\n HostConditional: React.ComponentType<CompilerHostConditionalBlockProps>;\n ConditionalRanges: React.ComponentType<CompilerConditionalRangesBlockProps>;\n KeyedList: React.ComponentType<CompilerKeyedListBlockProps>;\n KeyedRows: React.ComponentType<CompilerKeyedRowsBlockProps>;\n KeyedRanges: React.ComponentType<CompilerKeyedRangesBlockProps>;\n MixedRanges: React.ComponentType<CompilerMixedRangesBlockProps>;\n Component: React.ComponentType<CompilerComponentBlockProps>;\n target(id: number): React.RefCallback<Element>;\n}\n\nexport type CompilerBinding<Props> =\n | CompilerTextBinding<Props>\n | CompilerAttributeBinding<Props>\n | CompilerStyleBinding<Props>\n | CompilerConditionalBlockBinding;\n\nexport interface CompiledComponentDefinition<Props> {\n displayName: string;\n /** Scheduler selected by the compiler. Hand-authored definitions default to `static`. */\n reactivity?: CompilerRuntimeReactivity;\n /** Stable development-only identity used to preserve state across compatible refreshes. */\n hmrId?: string;\n /** Changes when the compiler-owned state layout is no longer refresh-compatible. */\n stateSignature?: string;\n initialize(props: Props): readonly unknown[];\n /**\n * Compiler-emitted flat prop reads. Primitive values can share the local\n * dependency graph; identity-bearing values retain normal React rendering.\n */\n readProps?(props: Props): readonly unknown[];\n render(\n props: Props,\n state: readonly CompilerCell[],\n blocks: CompilerBlockRuntime,\n ): React.ReactElement;\n bindings: readonly CompilerBinding<Props>[];\n}\n\ninterface CompiledDefinitionReference<Props> {\n current: CompiledComponentDefinition<Props>;\n}\n\ninterface CompilerHmrRegistryEntry {\n component: React.ComponentType<unknown>;\n definition: CompiledDefinitionReference<unknown>;\n refreshListeners: Set<() => void>;\n stateSignature: string;\n runtimeSignature: string;\n}\n\ntype CompilerHmrRegistry = Map<string, CompilerHmrRegistryEntry>;\n\nconst COMPILER_HMR_REGISTRY = Symbol.for(\"@farm.js/react/compiler-hmr-registry\");\n\nfunction getCompilerHmrRegistry(): CompilerHmrRegistry {\n const globalTarget = globalThis as typeof globalThis & Record<symbol, unknown>;\n const existing = globalTarget[COMPILER_HMR_REGISTRY];\n if (existing instanceof Map) return existing as CompilerHmrRegistry;\n const registry: CompilerHmrRegistry = new Map();\n globalTarget[COMPILER_HMR_REGISTRY] = registry;\n return registry;\n}\n\nfunction renderTextValue(value: unknown): string {\n if (Array.isArray(value)) return value.map(renderTextValue).join(\"\");\n if (value === null || value === undefined || typeof value === \"boolean\") return \"\";\n return String(value);\n}\n\nfunction isCompilerPrimitive(value: unknown): boolean {\n if (value === null) return true;\n const kind = typeof value;\n return (\n kind === \"string\" ||\n kind === \"number\" ||\n kind === \"boolean\" ||\n kind === \"bigint\" ||\n kind === \"undefined\"\n );\n}\n\nfunction findBindingTarget(\n root: Element,\n path: readonly number[],\n blockRoots: ReadonlySet<Element>,\n): Element | null {\n let current: Element | null = root;\n for (const index of path) {\n if (!current) return null;\n current = [...current.children].filter((child) => !blockRoots.has(child))[index] || null;\n }\n return current;\n}\n\nconst UNITLESS_STYLE_PROPERTIES = new Set([\n \"animationIterationCount\",\n \"aspectRatio\",\n \"borderImageOutset\",\n \"borderImageSlice\",\n \"borderImageWidth\",\n \"boxFlex\",\n \"boxFlexGroup\",\n \"boxOrdinalGroup\",\n \"columnCount\",\n \"columns\",\n \"flex\",\n \"flexGrow\",\n \"flexNegative\",\n \"flexOrder\",\n \"flexPositive\",\n \"flexShrink\",\n \"fontWeight\",\n \"gridArea\",\n \"gridColumn\",\n \"gridColumnEnd\",\n \"gridColumnSpan\",\n \"gridColumnStart\",\n \"gridRow\",\n \"gridRowEnd\",\n \"gridRowSpan\",\n \"gridRowStart\",\n \"lineClamp\",\n \"lineHeight\",\n \"opacity\",\n \"order\",\n \"orphans\",\n \"scale\",\n \"tabSize\",\n \"widows\",\n \"zIndex\",\n \"zoom\",\n \"fillOpacity\",\n \"floodOpacity\",\n \"stopOpacity\",\n \"strokeDasharray\",\n \"strokeDashoffset\",\n \"strokeMiterlimit\",\n \"strokeOpacity\",\n \"strokeWidth\",\n]);\n\nfunction unprefixedStyleName(name: string): string {\n const unprefixed = name.replace(/^(?:Webkit|Moz|ms|O)(?=[A-Z])/, \"\");\n return unprefixed ? unprefixed[0].toLowerCase() + unprefixed.slice(1) : name;\n}\n\nfunction isHtmlOrSvgElement(element: Element): element is HTMLElement | SVGElement {\n const view = element.ownerDocument.defaultView;\n return Boolean(\n view && (element instanceof view.HTMLElement || element instanceof view.SVGElement),\n );\n}\n\nfunction isInputElement(element: Element): element is HTMLInputElement {\n const view = element.ownerDocument.defaultView;\n return Boolean(view && element instanceof view.HTMLInputElement);\n}\n\nfunction isTextAreaElement(element: Element): element is HTMLTextAreaElement {\n const view = element.ownerDocument.defaultView;\n return Boolean(view && element instanceof view.HTMLTextAreaElement);\n}\n\nfunction isSelectElement(element: Element): element is HTMLSelectElement {\n const view = element.ownerDocument.defaultView;\n return Boolean(view && element instanceof view.HTMLSelectElement);\n}\n\nfunction isOptionElement(element: Element): element is HTMLOptionElement {\n const view = element.ownerDocument.defaultView;\n return Boolean(view && element instanceof view.HTMLOptionElement);\n}\n\nfunction isSelectableTextControl(\n element: Element | null | undefined,\n): element is SelectableTextControl {\n return Boolean(element && (isInputElement(element) || isTextAreaElement(element)));\n}\n\nfunction updateStyle(element: Element, name: string, value: unknown): void {\n if (!isHtmlOrSvgElement(element)) return;\n const customProperty = name.startsWith(\"--\");\n let nextValue = \"\";\n if (value !== null && value !== undefined && typeof value !== \"boolean\" && value !== \"\") {\n nextValue =\n typeof value === \"number\" &&\n value !== 0 &&\n !customProperty &&\n !UNITLESS_STYLE_PROPERTIES.has(unprefixedStyleName(name))\n ? `${value}px`\n : String(value).trim();\n }\n\n if (customProperty || name.includes(\"-\")) {\n element.style.setProperty(name, nextValue);\n } else {\n (element.style as unknown as Record<string, string>)[name] = nextValue;\n }\n}\n\nfunction updateSelectValue(element: HTMLSelectElement, value: unknown): void {\n const options = [...element.options];\n if (element.multiple) {\n const selected = new Set(\n (Array.isArray(value) ? value : value === null || value === undefined ? [] : [value]).map(\n String,\n ),\n );\n for (const option of options) option.selected = selected.has(option.value);\n return;\n }\n\n const selectedValue = value === null || value === undefined ? \"\" : String(value);\n let fallback: HTMLOptionElement | undefined;\n for (const option of options) {\n if (!option.disabled && !fallback) fallback = option;\n if (option.value === selectedValue) {\n option.selected = true;\n return;\n }\n }\n if (fallback) fallback.selected = true;\n}\n\nfunction updateAttribute(element: Element, name: string, value: unknown): void {\n const attributeName = name === \"className\" ? \"class\" : name === \"htmlFor\" ? \"for\" : name;\n const stringifiesBoolean = attributeName.startsWith(\"data-\") || attributeName.startsWith(\"aria-\");\n\n if (name === \"value\" && (isInputElement(element) || isTextAreaElement(element))) {\n const nextValue = value === null || value === undefined ? \"\" : String(value);\n if (element.value !== nextValue) element.value = nextValue;\n return;\n }\n\n if (name === \"value\" && isSelectElement(element)) {\n updateSelectValue(element, value);\n return;\n }\n\n if (name === \"checked\" && isInputElement(element)) {\n element.checked = Boolean(value);\n return;\n }\n\n if (name === \"selected\" && isOptionElement(element)) {\n element.selected = Boolean(value);\n return;\n }\n\n if (name === \"disabled\" && \"disabled\" in element) {\n (element as HTMLButtonElement).disabled = Boolean(value);\n return;\n }\n\n if (value === null || value === undefined || (value === false && !stringifiesBoolean)) {\n element.removeAttribute(attributeName);\n } else if (value === true && !stringifiesBoolean) {\n element.setAttribute(attributeName, \"\");\n } else {\n element.setAttribute(attributeName, String(value));\n }\n}\n\ntype CompilerBlockRefresh = (afterCommit?: () => void, dirtyState?: ReadonlySet<number>) => void;\n\nexport interface CompilerRuntimeFeatureOwner {\n setRoot(id: number, root: Element | null, expectedRoot?: Element | null): void;\n subscribe(id: number, refresh: CompilerBlockRefresh): () => void;\n /** Opaque identity used to detect compatible definition replacement. */\n getDefinitionVersion?(): unknown;\n}\n\nexport interface CompilerRuntimeFeature {\n /** Stable identity used by Fast Refresh compatibility checks. */\n name: string;\n create(owner: CompilerRuntimeFeatureOwner): Partial<CompilerBlockRuntime>;\n}\n\ninterface ConditionalBlockOwner {\n setRoot(id: number, root: Element | null, expectedRoot?: Element | null): void;\n subscribe(id: number, refresh: CompilerBlockRefresh): () => void;\n}\n\nfunction createConditionalBlockComponent(\n owner: ConditionalBlockOwner,\n): React.ComponentType<CompilerConditionalBlockProps> {\n class FarmConditionalBlock extends React.Component<CompilerConditionalBlockProps> {\n static displayName = \"FarmCompiledConditionalBlock\";\n\n private unsubscribe: (() => void) | undefined;\n private root: Element | null = null;\n private rootId: number | undefined;\n\n private captureRoot = (root: Element | null) => {\n const previousRoot = this.root;\n const previousId = this.rootId;\n this.root = root;\n if (!root) {\n if (previousId !== undefined) owner.setRoot(previousId, null, previousRoot);\n this.rootId = undefined;\n return;\n }\n owner.setRoot(this.props.id, root);\n this.rootId = this.props.id;\n };\n\n private refresh = (afterCommit?: () => void) => {\n this.forceUpdate(afterCommit);\n };\n\n private subscribe(): void {\n this.unsubscribe = owner.subscribe(this.props.id, this.refresh);\n }\n\n componentDidMount(): void {\n this.subscribe();\n }\n\n componentDidUpdate(previous: CompilerConditionalBlockProps): void {\n if (previous.id === this.props.id) return;\n this.unsubscribe?.();\n if (this.root && this.rootId !== this.props.id) {\n if (this.rootId !== undefined) owner.setRoot(this.rootId, null, this.root);\n owner.setRoot(this.props.id, this.root);\n this.rootId = this.props.id;\n }\n this.subscribe();\n }\n\n componentWillUnmount(): void {\n this.unsubscribe?.();\n // React 18 lifecycle replay keeps refs attached; captureRoot owns deregistration.\n }\n\n render(): React.ReactNode {\n const node = this.props.render();\n if (!React.isValidElement(node)) {\n if (\n node === null ||\n node === undefined ||\n typeof node === \"boolean\" ||\n typeof node === \"string\" ||\n typeof node === \"number\" ||\n typeof node === \"bigint\"\n ) {\n return node;\n }\n throw new TypeError(\n `Compiled conditional block ${this.props.id} must return one host element or an empty value.`,\n );\n }\n if (typeof node.type !== \"string\") {\n throw new TypeError(\n `Compiled conditional block ${this.props.id} must return one host element.`,\n );\n }\n return React.cloneElement(node, {\n ref: this.captureRoot,\n } as React.Attributes);\n }\n }\n\n return FarmConditionalBlock;\n}\n\nfunction createKeyedListBlockComponent(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n): React.ComponentType<CompilerKeyedListBlockProps> {\n class FarmKeyedListBlock extends React.Component<CompilerKeyedListBlockProps> {\n static displayName = \"FarmCompiledKeyedListBlock\";\n\n private unsubscribe: (() => void) | undefined;\n\n private refresh = (afterCommit?: () => void) => {\n this.forceUpdate(afterCommit);\n };\n\n private subscribe(): void {\n this.unsubscribe = owner.subscribe(this.props.id, this.refresh);\n }\n\n componentDidMount(): void {\n this.subscribe();\n }\n\n componentDidUpdate(previous: CompilerKeyedListBlockProps): void {\n if (previous.id === this.props.id) return;\n this.unsubscribe?.();\n this.subscribe();\n }\n\n componentWillUnmount(): void {\n this.unsubscribe?.();\n }\n\n render(): React.ReactNode {\n return this.props.render();\n }\n }\n\n return FarmKeyedListBlock;\n}\n\ninterface CompilerHostInstance {\n element: Element;\n values: unknown[];\n scope?: CompilerHostTreeScope;\n}\n\nfunction isCompilerHostElement(value: unknown): value is CompilerHostElement {\n return (\n typeof value === \"object\" && value !== null && (value as { kind?: unknown }).kind === \"element\"\n );\n}\n\nfunction createCompilerHostElement(document: Document, descriptor: CompilerHostElement): Element {\n const element = document.createElement(descriptor.tag);\n for (const attribute of descriptor.attributes) {\n updateAttribute(element, attribute.name, attribute.value);\n }\n for (const style of descriptor.styles) updateStyle(element, style.name, style.value);\n const appendChild = (child: unknown): void => {\n if (Array.isArray(child)) {\n for (const nested of child) appendChild(nested);\n return;\n }\n if (isCompilerHostElement(child)) {\n element.append(createCompilerHostElement(document, child));\n return;\n }\n const text = renderTextValue(child);\n if (text) element.append(document.createTextNode(text));\n };\n for (const child of materializeCompilerHostChildren(descriptor)) appendChild(child);\n // Select options and textarea text must exist before their controlled value\n // is finalized. Reapplying is harmless for other attributes and avoids a\n // transient/default selection becoming the compiled branch's final state.\n for (const attribute of descriptor.attributes) {\n if (attribute.name === \"value\" && (isSelectElement(element) || isTextAreaElement(element))) {\n updateAttribute(element, attribute.name, attribute.value);\n }\n }\n return element;\n}\n\nfunction matchesCompilerHostElement(\n element: Element,\n descriptor: CompilerHostElement,\n opaquePaths: ReadonlySet<string> = new Set(),\n path: readonly number[] = [],\n): boolean {\n if (element.tagName.toLowerCase() !== descriptor.tag.toLowerCase()) return false;\n if (opaquePaths.has(path.join(\".\")) || descriptor.block) return true;\n const expectedChildren = flattenCompilerHostElements(descriptor.children);\n if (element.children.length !== expectedChildren.length) return false;\n return expectedChildren.every((child, index) =>\n matchesCompilerHostElement(element.children[index], child, opaquePaths, [...path, index]),\n );\n}\n\nfunction flattenCompilerHostElements(children: readonly unknown[]): CompilerHostElement[] {\n const elements: CompilerHostElement[] = [];\n const visit = (child: unknown): void => {\n if (Array.isArray(child)) {\n for (const nested of child) visit(nested);\n } else if (isCompilerHostElement(child)) {\n elements.push(child);\n }\n };\n for (const child of children) visit(child);\n return elements;\n}\n\nfunction materializeCompilerHostChildren(descriptor: CompilerHostElement): readonly unknown[] {\n const block = descriptor.block;\n if (block?.kind !== \"keyed-ranges\" || !block.staticChildrenOnly) {\n return descriptor.children;\n }\n const staticChildren = flattenCompilerHostElements(descriptor.children);\n const children: CompilerHostElement[] = [];\n let cursor = 0;\n for (const range of block.ranges) {\n children.push(...staticChildren.slice(cursor, cursor + range.before));\n cursor += range.before;\n const items = materializeIterable(range.items());\n children.push(...items.map((item, index) => range.create(item, index)));\n }\n children.push(...staticChildren.slice(cursor, cursor + block.trailing));\n return children;\n}\n\nfunction collectActiveCompilerHostBlockIds(\n descriptor: CompilerHostElement,\n ids: Set<number>,\n): void {\n for (const child of flattenCompilerHostElements(materializeCompilerHostChildren(descriptor))) {\n collectActiveCompilerHostBlockIds(child, ids);\n }\n const block = descriptor.block;\n if (!block) return;\n ids.add(block.id);\n}\n\nfunction reconcileCompilerFallbackSubscriptions(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n subscriptions: Map<number, () => void>,\n ids: ReadonlySet<number>,\n refresh: CompilerBlockRefresh,\n): void {\n for (const [id, unsubscribe] of subscriptions) {\n if (ids.has(id)) continue;\n unsubscribe();\n subscriptions.delete(id);\n }\n for (const id of ids) {\n if (!subscriptions.has(id)) subscriptions.set(id, owner.subscribe(id, refresh));\n }\n}\n\nfunction clearCompilerFallbackSubscriptions(subscriptions: Map<number, () => void>): void {\n for (const unsubscribe of subscriptions.values()) unsubscribe();\n subscriptions.clear();\n}\n\n/**\n * React can preserve a fallback subtree only while every mounted keyed range has\n * an unambiguous identity. Inspect the complete live descriptor because nested\n * row instances may own different blocks or keys than the first row.\n */\nfunction hasUnsafeCompilerFallbackKeys(descriptor: CompilerHostElement): boolean {\n const visitKeyedRange = (range: CompilerKeyedRange): boolean => {\n const items = materializeIterable(range.items());\n const keys = items.map((item, index) => keyedRowIdentity(range.rowKey(item, index)));\n if (new Set(keys).size !== keys.length) return true;\n return items.some((item, index) => visit(range.create(item, index)));\n };\n const visit = (current: CompilerHostElement): boolean => {\n for (const child of flattenCompilerHostElements(current.children)) {\n if (visit(child)) return true;\n }\n const block = current.block;\n if (!block) return false;\n if (block.kind === \"conditional-ranges\") {\n for (const range of block.ranges) {\n const selection = hostConditionalSelection(range);\n if (selection.kind === \"branch\" && visit(selection.branch.create())) return true;\n }\n return false;\n }\n if (block.kind === \"keyed-ranges\") {\n return block.ranges.some(visitKeyedRange);\n }\n for (const range of block.ranges) {\n if (range.kind === \"keyed\") {\n if (visitKeyedRange(range)) return true;\n continue;\n }\n const selection = hostConditionalSelection(range);\n if (selection.kind === \"branch\" && visit(selection.branch.create())) return true;\n }\n return false;\n };\n\n try {\n return visit(descriptor);\n } catch {\n // Reading an iterable, key, or nested descriptor must be proven safe before\n // React is allowed to reuse the existing fallback subtree.\n return true;\n }\n}\n\nfunction findCompilerHostTarget(root: Element, path: readonly number[]): Element | null {\n let current: Element | null = root;\n for (const index of path) current = current?.children[index] || null;\n return current;\n}\n\nconst UNSET_STATIC_RANGE_BINDING = Symbol(\"unset static range binding\");\n\nfunction normalizedStaticRangeBindingValue(\n binding: CompilerStaticRangeBinding,\n value: unknown,\n): unknown {\n return binding.kind === \"text\" ? renderTextValue(value) : value;\n}\n\nfunction applyStaticRangeBindings(\n bindings: readonly CompilerStaticRangeBinding[] | undefined,\n segments: readonly (readonly Element[])[],\n values: unknown[],\n): boolean {\n const activeBindings = bindings || [];\n const targets: Element[] = [];\n for (let index = 0; index < activeBindings.length; index += 1) {\n const binding = activeBindings[index];\n if (\n !Number.isSafeInteger(binding.segment) ||\n binding.segment < 0 ||\n !Number.isSafeInteger(binding.sibling) ||\n binding.sibling < 0\n ) {\n return false;\n }\n const sibling = segments[binding.segment]?.[binding.sibling];\n const target = sibling && findCompilerHostTarget(sibling, binding.path);\n if (\n !target ||\n (binding.kind !== \"text\" &&\n ((binding.kind !== \"style\" && binding.kind !== \"attribute\") || !binding.name))\n ) {\n return false;\n }\n targets[index] = target;\n }\n\n const initializesValues = values.length === 0 && activeBindings.length > 0;\n if (!initializesValues && values.length !== activeBindings.length) return false;\n\n const nextValues: unknown[] = [];\n for (let index = 0; index < activeBindings.length; index += 1) {\n const binding = activeBindings[index];\n nextValues[index] = normalizedStaticRangeBindingValue(binding, binding.read());\n }\n\n for (let index = 0; index < activeBindings.length; index += 1) {\n const binding = activeBindings[index];\n const value = nextValues[index];\n const previous = initializesValues ? UNSET_STATIC_RANGE_BINDING : values[index];\n if (Object.is(previous, value)) continue;\n values[index] = value;\n const target = targets[index];\n if (binding.kind === \"text\") {\n target.textContent = value as string;\n } else if (binding.kind === \"style\") {\n updateStyle(target, binding.name!, value);\n } else {\n updateAttribute(target, binding.name!, value);\n }\n }\n return true;\n}\n\ninterface CompilerKeyedRowInstance extends CompilerHostInstance {\n key: string;\n item: unknown;\n index: number;\n conditionalValues: ReadonlyMap<number, readonly unknown[]>;\n}\n\ninterface CompilerKeyedRollingWindowDelta {\n readonly added: readonly CompilerKeyedRowInstance[];\n readonly removedKeys: readonly string[];\n}\n\nconst COMPILER_KEYED_ROLLING_WINDOW_DELTAS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedRollingWindowDelta\n>();\n\nfunction keyedRowInstancesByKey(\n instances: readonly CompilerKeyedRowInstance[],\n): Map<string, CompilerKeyedRowInstance> {\n return new Map(instances.map((instance) => [instance.key, instance]));\n}\n\ninterface CompilerKeyedIdentityTargetSnapshot {\n eligible: boolean;\n key?: string;\n}\n\ninterface CompilerKeyedMembershipTargetSnapshot {\n eligible: boolean;\n values?: ReadonlySet<unknown>;\n previous?: CompilerKeyedMembershipTargetSnapshot;\n changes?: ReadonlyMap<unknown, boolean>;\n sourceToken?: object;\n targetedKeys?: ReadonlySet<string>;\n depth?: number;\n}\n\ninterface CompilerKeyedMapLookupTargetSnapshot {\n eligible: boolean;\n values?: ReadonlyMap<unknown, unknown>;\n previous?: CompilerKeyedMapLookupTargetSnapshot;\n changes?: ReadonlyMap<unknown, CompilerKeyedMapLookupValue>;\n sourceToken?: object;\n targetedKeys?: ReadonlySet<string>;\n depth?: number;\n}\n\ninterface CompilerKeyedMapLookupValue {\n present: boolean;\n value?: unknown;\n}\n\nconst UNSET_KEYED_ROW_BINDING = Symbol(\"unset interactive keyed-row binding\");\n\nfunction keyedRowIdentity(key: React.Key): string {\n return String(key);\n}\n\nfunction keyedIdentityTargetSnapshot(value: unknown): CompilerKeyedIdentityTargetSnapshot {\n const kind = typeof value;\n return value === null ||\n value === undefined ||\n kind === \"string\" ||\n kind === \"number\" ||\n kind === \"bigint\"\n ? { eligible: true, key: String(value) }\n : { eligible: false };\n}\n\nconst NATIVE_SET_PROTOTYPE = Set.prototype;\nconst NATIVE_SET_ADD = Set.prototype.add;\nconst NATIVE_SET_DELETE = Set.prototype.delete;\nconst NATIVE_SET_HAS = Set.prototype.has;\nconst NATIVE_SET_VALUES = Set.prototype.values;\nconst KEYED_COLLECTION_SNAPSHOT_MAX_DEPTH = 64;\n\nfunction materializeKeyedMembershipSnapshot(\n snapshot: CompilerKeyedMembershipTargetSnapshot,\n): Set<unknown> | undefined {\n if (!snapshot.eligible) return undefined;\n if (snapshot.values) return new Set(snapshot.values);\n if (!snapshot.previous || !snapshot.changes) return undefined;\n const values = materializeKeyedMembershipSnapshot(snapshot.previous);\n if (!values) return undefined;\n for (const [key, present] of snapshot.changes) {\n if (present) NATIVE_SET_ADD.call(values, key);\n else NATIVE_SET_DELETE.call(values, key);\n }\n return values;\n}\n\nfunction keyedMembershipSnapshotHas(\n snapshot: CompilerKeyedMembershipTargetSnapshot,\n key: unknown,\n): boolean | undefined {\n for (\n let current: CompilerKeyedMembershipTargetSnapshot | undefined = snapshot;\n current;\n current = current.previous\n ) {\n if (!current.eligible) return undefined;\n if (current.changes?.has(key)) return current.changes.get(key);\n if (current.values) return NATIVE_SET_HAS.call(current.values, key);\n }\n return undefined;\n}\n\nfunction keyedMembershipDeltaSnapshot(\n value: unknown,\n previous: CompilerKeyedMembershipTargetSnapshot,\n): CompilerKeyedMembershipTargetSnapshot | undefined {\n if (!previous.eligible || !previous.sourceToken) return undefined;\n const target = compilerObject(value);\n if (!target) return undefined;\n const changedKeys = compilerKeyedCollectionChangedKeys(value, previous.sourceToken, \"set\");\n if (!changedKeys) return undefined;\n if (\n Object.getPrototypeOf(value) !== NATIVE_SET_PROTOTYPE ||\n Object.prototype.hasOwnProperty.call(value, \"has\") ||\n (value as Set<unknown>).has !== NATIVE_SET_HAS\n ) {\n return undefined;\n }\n\n const changes = new Map<unknown, boolean>();\n const targetedKeys = new Set<string>();\n try {\n for (const key of changedKeys) {\n if (!keyedIdentityTargetSnapshot(key).eligible) return undefined;\n const present = NATIVE_SET_HAS.call(value as Set<unknown>, key);\n const before = keyedMembershipSnapshotHas(previous, key);\n if (before === undefined) return undefined;\n changes.set(key, present);\n if (before !== present) NATIVE_SET_ADD.call(targetedKeys, String(key));\n }\n } catch {\n return undefined;\n }\n const depth = (previous.depth || 0) + 1;\n if (depth > KEYED_COLLECTION_SNAPSHOT_MAX_DEPTH) return undefined;\n return {\n eligible: true,\n previous,\n changes,\n sourceToken: commitCompilerKeyedCollection(value),\n targetedKeys,\n depth,\n };\n}\n\nfunction keyedMembershipTargetSnapshot(\n value: unknown,\n previous?: CompilerKeyedMembershipTargetSnapshot,\n): CompilerKeyedMembershipTargetSnapshot {\n if (previous) {\n const delta = keyedMembershipDeltaSnapshot(value, previous);\n if (delta) return delta;\n }\n if (typeof value !== \"object\" || value === null) return { eligible: false };\n let iterator: SetIterator<unknown>;\n try {\n iterator = NATIVE_SET_VALUES.call(value as Set<unknown>);\n } catch {\n return { eligible: false };\n }\n if (\n Object.getPrototypeOf(value) !== NATIVE_SET_PROTOTYPE ||\n Object.prototype.hasOwnProperty.call(value, \"has\") ||\n (value as Set<unknown>).has !== NATIVE_SET_HAS\n ) {\n return { eligible: false };\n }\n const values = new Set<unknown>();\n try {\n for (const entry of iterator) {\n if (!keyedIdentityTargetSnapshot(entry).eligible) return { eligible: false };\n NATIVE_SET_ADD.call(values, entry);\n }\n } catch {\n return { eligible: false };\n }\n return {\n eligible: true,\n values,\n sourceToken: commitCompilerKeyedCollection(value),\n depth: 0,\n };\n}\n\nfunction keyedMembershipChangedKeys(\n previousSnapshot: CompilerKeyedMembershipTargetSnapshot,\n nextSnapshot: CompilerKeyedMembershipTargetSnapshot,\n): Set<string> {\n if (nextSnapshot.targetedKeys) return new Set(nextSnapshot.targetedKeys);\n const previous = materializeKeyedMembershipSnapshot(previousSnapshot);\n const next = materializeKeyedMembershipSnapshot(nextSnapshot);\n const keys = new Set<string>();\n if (!previous || !next) return keys;\n for (const value of previous) {\n if (!NATIVE_SET_HAS.call(next, value)) NATIVE_SET_ADD.call(keys, String(value));\n }\n for (const value of next) {\n if (!NATIVE_SET_HAS.call(previous, value)) NATIVE_SET_ADD.call(keys, String(value));\n }\n return keys;\n}\n\nconst NATIVE_MAP_PROTOTYPE = Map.prototype;\nconst NATIVE_MAP_GET = Map.prototype.get;\nconst NATIVE_MAP_HAS = Map.prototype.has;\nconst NATIVE_MAP_SET = Map.prototype.set;\nconst NATIVE_MAP_DELETE = Map.prototype.delete;\nconst NATIVE_MAP_ENTRIES = Map.prototype.entries;\n\nfunction isSafeKeyedMapLookupValue(value: unknown): boolean {\n return (\n value === null ||\n value === undefined ||\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"bigint\" ||\n typeof value === \"boolean\"\n );\n}\n\nfunction materializeKeyedMapLookupSnapshot(\n snapshot: CompilerKeyedMapLookupTargetSnapshot,\n): Map<unknown, unknown> | undefined {\n if (!snapshot.eligible) return undefined;\n if (snapshot.values) return new Map(snapshot.values);\n if (!snapshot.previous || !snapshot.changes) return undefined;\n const values = materializeKeyedMapLookupSnapshot(snapshot.previous);\n if (!values) return undefined;\n for (const [key, entry] of snapshot.changes) {\n if (entry.present) NATIVE_MAP_SET.call(values, key, entry.value);\n else NATIVE_MAP_DELETE.call(values, key);\n }\n return values;\n}\n\nfunction keyedMapLookupSnapshotValue(\n snapshot: CompilerKeyedMapLookupTargetSnapshot,\n key: unknown,\n): CompilerKeyedMapLookupValue | undefined {\n for (\n let current: CompilerKeyedMapLookupTargetSnapshot | undefined = snapshot;\n current;\n current = current.previous\n ) {\n if (!current.eligible) return undefined;\n const changed = current.changes?.get(key);\n if (changed) return changed;\n if (current.values) {\n const present = NATIVE_MAP_HAS.call(current.values, key);\n return {\n present,\n ...(present ? { value: NATIVE_MAP_GET.call(current.values, key) } : {}),\n };\n }\n }\n return undefined;\n}\n\nfunction keyedMapLookupDeltaSnapshot(\n value: unknown,\n previous: CompilerKeyedMapLookupTargetSnapshot,\n): CompilerKeyedMapLookupTargetSnapshot | undefined {\n if (!previous.eligible || !previous.sourceToken) return undefined;\n const target = compilerObject(value);\n if (!target) return undefined;\n const changedKeys = compilerKeyedCollectionChangedKeys(value, previous.sourceToken, \"map\");\n if (!changedKeys) return undefined;\n if (\n Object.getPrototypeOf(value) !== NATIVE_MAP_PROTOTYPE ||\n Object.prototype.hasOwnProperty.call(value, \"get\") ||\n (value as Map<unknown, unknown>).get !== NATIVE_MAP_GET\n ) {\n return undefined;\n }\n\n const changes = new Map<unknown, CompilerKeyedMapLookupValue>();\n const targetedKeys = new Set<string>();\n try {\n for (const key of changedKeys) {\n if (!keyedIdentityTargetSnapshot(key).eligible) return undefined;\n const present = NATIVE_MAP_HAS.call(value as Map<unknown, unknown>, key);\n const entry = present ? NATIVE_MAP_GET.call(value as Map<unknown, unknown>, key) : undefined;\n if (present && !isSafeKeyedMapLookupValue(entry)) return undefined;\n const before = keyedMapLookupSnapshotValue(previous, key);\n if (!before) return undefined;\n changes.set(key, { present, ...(present ? { value: entry } : {}) });\n if (before.present !== present || !Object.is(before.value, entry)) {\n NATIVE_SET_ADD.call(targetedKeys, String(key));\n }\n }\n } catch {\n return undefined;\n }\n const depth = (previous.depth || 0) + 1;\n if (depth > KEYED_COLLECTION_SNAPSHOT_MAX_DEPTH) return undefined;\n return {\n eligible: true,\n previous,\n changes,\n sourceToken: commitCompilerKeyedCollection(value),\n targetedKeys,\n depth,\n };\n}\n\nfunction keyedMapLookupTargetSnapshot(\n value: unknown,\n previous?: CompilerKeyedMapLookupTargetSnapshot,\n): CompilerKeyedMapLookupTargetSnapshot {\n if (previous) {\n const delta = keyedMapLookupDeltaSnapshot(value, previous);\n if (delta) return delta;\n }\n if (typeof value !== \"object\" || value === null) return { eligible: false };\n let iterator: MapIterator<[unknown, unknown]>;\n try {\n iterator = NATIVE_MAP_ENTRIES.call(value as Map<unknown, unknown>);\n } catch {\n return { eligible: false };\n }\n if (\n Object.getPrototypeOf(value) !== NATIVE_MAP_PROTOTYPE ||\n Object.prototype.hasOwnProperty.call(value, \"get\") ||\n (value as Map<unknown, unknown>).get !== NATIVE_MAP_GET\n ) {\n return { eligible: false };\n }\n const values = new Map<unknown, unknown>();\n try {\n for (const [key, entry] of iterator) {\n if (!keyedIdentityTargetSnapshot(key).eligible || !isSafeKeyedMapLookupValue(entry)) {\n return { eligible: false };\n }\n NATIVE_MAP_SET.call(values, key, entry);\n }\n } catch {\n return { eligible: false };\n }\n return {\n eligible: true,\n values,\n sourceToken: commitCompilerKeyedCollection(value),\n depth: 0,\n };\n}\n\nfunction keyedMapLookupChangedKeys(\n previousSnapshot: CompilerKeyedMapLookupTargetSnapshot,\n nextSnapshot: CompilerKeyedMapLookupTargetSnapshot,\n): Set<string> {\n if (nextSnapshot.targetedKeys) return new Set(nextSnapshot.targetedKeys);\n const previous = materializeKeyedMapLookupSnapshot(previousSnapshot);\n const next = materializeKeyedMapLookupSnapshot(nextSnapshot);\n const keys = new Set<string>();\n if (!previous || !next) return keys;\n for (const [key, value] of previous) {\n if (!Object.is(value, NATIVE_MAP_GET.call(next, key))) {\n NATIVE_SET_ADD.call(keys, String(key));\n }\n }\n for (const [key, value] of next) {\n if (!Object.is(value, NATIVE_MAP_GET.call(previous, key))) {\n NATIVE_SET_ADD.call(keys, String(key));\n }\n }\n return keys;\n}\n\ninterface KeyedTargetSelection {\n keys: Iterable<string>;\n count: number;\n}\n\ninterface KeyedTargetRuntime {\n hasSafeTargets(props: CompilerKeyedRowsBlockProps, dirtyState?: ReadonlySet<number>): boolean;\n commit(props: CompilerKeyedRowsBlockProps, dirtyState?: ReadonlySet<number>): void;\n prepare(props: CompilerKeyedRowsBlockProps, bindingIndices: readonly number[]): boolean;\n select(\n props: CompilerKeyedRowsBlockProps,\n bindingIndex: number,\n dirtyState: ReadonlySet<number>,\n fallbackKeys: Iterable<string>,\n fallbackCount: number,\n ): KeyedTargetSelection;\n commitPrepared(bindingIndices: readonly number[]): void;\n clear(): void;\n}\n\ntype KeyedTargetKind = \"identityTarget\" | \"membershipTarget\" | \"mapLookupTarget\";\n\n/** Two snapshot maps for a compiler-proven single target kind. The complete\n * runtime below remains the compatibility path for mixed and structural rows. */\nfunction createSingleKindKeyedTargetRuntime<Snapshot extends { eligible: boolean }>(\n props: CompilerKeyedRowsBlockProps,\n kind: KeyedTargetKind,\n snapshot: (value: unknown, previous?: Snapshot) => Snapshot,\n changedKeys: (previous: Snapshot, next: Snapshot) => Set<string>,\n): KeyedTargetRuntime | undefined {\n if (\n !props.bindings.some(\n (binding) => binding.identityTarget || binding.membershipTarget || binding.mapLookupTarget,\n )\n )\n return undefined;\n const previous = new Map<number, Snapshot>();\n let next = new Map<number, Snapshot>();\n // A changed definition or hand-authored feature selection must fall back to\n // React before patching if it introduces an unsupported target kind.\n const compatible = (binding: CompilerKeyedRowBinding) =>\n (kind === \"identityTarget\" || !binding.identityTarget) &&\n (kind === \"membershipTarget\" || !binding.membershipTarget) &&\n (kind === \"mapLookupTarget\" || !binding.mapLookupTarget);\n return {\n hasSafeTargets(props, dirtyState) {\n for (const binding of props.bindings) {\n if (!compatible(binding)) return false;\n const target = binding[kind];\n if (\n kind !== \"identityTarget\" &&\n target &&\n (!dirtyState || dirtyState.has(target.dependency)) &&\n !snapshot(target.read()).eligible\n )\n return false;\n }\n return true;\n },\n commit(props, dirtyState) {\n if (!dirtyState) previous.clear();\n for (let index = 0; index < props.bindings.length; index++) {\n const target = props.bindings[index][kind];\n if (!target) previous.delete(index);\n else if (!dirtyState || dirtyState.has(target.dependency))\n previous.set(index, snapshot(target.read()));\n }\n },\n prepare(props, indices) {\n next = new Map();\n for (const index of indices) {\n const binding = props.bindings[index];\n if (!compatible(binding)) return false;\n const target = binding[kind];\n if (!target) continue;\n const value = snapshot(target.read(), previous.get(index));\n if (kind !== \"identityTarget\" && !value.eligible) return false;\n next.set(index, value);\n }\n return true;\n },\n select(props, index, dirtyState, fallbackKeys, fallbackCount) {\n const binding = props.bindings[index];\n const target = binding[kind];\n const before = previous.get(index);\n const after = next.get(index);\n if (\n target &&\n binding.dependencies?.length === 1 &&\n binding.dependencies[0] === target.dependency &&\n dirtyState.has(target.dependency) &&\n before?.eligible &&\n after?.eligible\n ) {\n const keys = changedKeys(before, after);\n return { keys, count: keys.size };\n }\n return { keys: fallbackKeys, count: fallbackCount };\n },\n commitPrepared(indices) {\n for (const index of indices) {\n const value = next.get(index);\n if (value) previous.set(index, value);\n else previous.delete(index);\n }\n },\n clear() {\n previous.clear();\n next.clear();\n },\n };\n}\n\nfunction createKeyedIdentityTargetRuntime(props: CompilerKeyedRowsBlockProps) {\n return createSingleKindKeyedTargetRuntime(\n props,\n \"identityTarget\",\n keyedIdentityTargetSnapshot,\n (previous, next) => {\n const keys = new Set<string>();\n if (previous.key !== undefined) keys.add(previous.key);\n if (next.key !== undefined) keys.add(next.key);\n return keys;\n },\n );\n}\n\nfunction createKeyedMembershipTargetRuntime(props: CompilerKeyedRowsBlockProps) {\n return createSingleKindKeyedTargetRuntime(\n props,\n \"membershipTarget\",\n keyedMembershipTargetSnapshot,\n keyedMembershipChangedKeys,\n );\n}\n\nfunction createKeyedMapLookupTargetRuntime(props: CompilerKeyedRowsBlockProps) {\n return createSingleKindKeyedTargetRuntime(\n props,\n \"mapLookupTarget\",\n keyedMapLookupTargetSnapshot,\n keyedMapLookupChangedKeys,\n );\n}\n\nfunction createKeyedTargetRuntime(\n props: CompilerKeyedRowsBlockProps,\n): KeyedTargetRuntime | undefined {\n if (\n !props.bindings.some(\n (binding) => binding.identityTarget || binding.membershipTarget || binding.mapLookupTarget,\n )\n ) {\n return undefined;\n }\n const identityTargets = new Map<number, CompilerKeyedIdentityTargetSnapshot>();\n const membershipTargets = new Map<number, CompilerKeyedMembershipTargetSnapshot>();\n const mapLookupTargets = new Map<number, CompilerKeyedMapLookupTargetSnapshot>();\n let nextIdentityTargets = new Map<number, CompilerKeyedIdentityTargetSnapshot>();\n let nextMembershipTargets = new Map<number, CompilerKeyedMembershipTargetSnapshot>();\n let nextMapLookupTargets = new Map<number, CompilerKeyedMapLookupTargetSnapshot>();\n\n return {\n hasSafeTargets(props, dirtyState) {\n for (const binding of props.bindings) {\n const membershipTarget = binding.membershipTarget;\n if (\n membershipTarget &&\n (!dirtyState || dirtyState.has(membershipTarget.dependency)) &&\n !keyedMembershipTargetSnapshot(membershipTarget.read()).eligible\n ) {\n return false;\n }\n const mapLookupTarget = binding.mapLookupTarget;\n if (\n mapLookupTarget &&\n (!dirtyState || dirtyState.has(mapLookupTarget.dependency)) &&\n !keyedMapLookupTargetSnapshot(mapLookupTarget.read()).eligible\n ) {\n return false;\n }\n }\n return true;\n },\n commit(props, dirtyState) {\n if (!dirtyState) {\n identityTargets.clear();\n membershipTargets.clear();\n mapLookupTargets.clear();\n }\n for (let bindingIndex = 0; bindingIndex < props.bindings.length; bindingIndex += 1) {\n const binding = props.bindings[bindingIndex];\n const identityTarget = binding.identityTarget;\n if (!identityTarget) {\n identityTargets.delete(bindingIndex);\n } else if (!dirtyState || dirtyState.has(identityTarget.dependency)) {\n identityTargets.set(bindingIndex, keyedIdentityTargetSnapshot(identityTarget.read()));\n }\n\n const membershipTarget = binding.membershipTarget;\n if (!membershipTarget) {\n membershipTargets.delete(bindingIndex);\n } else if (!dirtyState || dirtyState.has(membershipTarget.dependency)) {\n membershipTargets.set(\n bindingIndex,\n keyedMembershipTargetSnapshot(membershipTarget.read()),\n );\n }\n\n const mapLookupTarget = binding.mapLookupTarget;\n if (!mapLookupTarget) {\n mapLookupTargets.delete(bindingIndex);\n } else if (!dirtyState || dirtyState.has(mapLookupTarget.dependency)) {\n mapLookupTargets.set(bindingIndex, keyedMapLookupTargetSnapshot(mapLookupTarget.read()));\n }\n }\n },\n prepare(props, bindingIndices) {\n nextIdentityTargets = new Map();\n nextMembershipTargets = new Map();\n nextMapLookupTargets = new Map();\n for (const bindingIndex of bindingIndices) {\n const binding = props.bindings[bindingIndex];\n if (binding.identityTarget) {\n nextIdentityTargets.set(\n bindingIndex,\n keyedIdentityTargetSnapshot(binding.identityTarget.read()),\n );\n }\n if (binding.membershipTarget) {\n const snapshot = keyedMembershipTargetSnapshot(\n binding.membershipTarget.read(),\n membershipTargets.get(bindingIndex),\n );\n if (!snapshot.eligible) return false;\n nextMembershipTargets.set(bindingIndex, snapshot);\n }\n if (binding.mapLookupTarget) {\n const snapshot = keyedMapLookupTargetSnapshot(\n binding.mapLookupTarget.read(),\n mapLookupTargets.get(bindingIndex),\n );\n if (!snapshot.eligible) return false;\n nextMapLookupTargets.set(bindingIndex, snapshot);\n }\n }\n return true;\n },\n select(props, bindingIndex, dirtyState, fallbackKeys, fallbackCount) {\n const binding = props.bindings[bindingIndex];\n const identityTarget = binding.identityTarget;\n const previousIdentityTarget = identityTargets.get(bindingIndex);\n const nextIdentityTarget = nextIdentityTargets.get(bindingIndex);\n const canTargetIdentity = Boolean(\n identityTarget &&\n binding.dependencies?.length === 1 &&\n binding.dependencies[0] === identityTarget.dependency &&\n dirtyState.has(identityTarget.dependency) &&\n previousIdentityTarget?.eligible &&\n nextIdentityTarget?.eligible,\n );\n const membershipTarget = binding.membershipTarget;\n const previousMembershipTarget = membershipTargets.get(bindingIndex);\n const nextMembershipTarget = nextMembershipTargets.get(bindingIndex);\n const canTargetMembership = Boolean(\n membershipTarget &&\n binding.dependencies?.length === 1 &&\n binding.dependencies[0] === membershipTarget.dependency &&\n dirtyState.has(membershipTarget.dependency) &&\n previousMembershipTarget?.eligible &&\n nextMembershipTarget?.eligible,\n );\n const mapLookupTarget = binding.mapLookupTarget;\n const previousMapLookupTarget = mapLookupTargets.get(bindingIndex);\n const nextMapLookupTarget = nextMapLookupTargets.get(bindingIndex);\n const canTargetMapLookup = Boolean(\n mapLookupTarget &&\n binding.dependencies?.length === 1 &&\n binding.dependencies[0] === mapLookupTarget.dependency &&\n dirtyState.has(mapLookupTarget.dependency) &&\n previousMapLookupTarget?.eligible &&\n nextMapLookupTarget?.eligible,\n );\n\n if (canTargetMapLookup && previousMapLookupTarget && nextMapLookupTarget) {\n const keys = keyedMapLookupChangedKeys(previousMapLookupTarget, nextMapLookupTarget);\n return { keys, count: keys.size };\n }\n if (canTargetMembership && previousMembershipTarget && nextMembershipTarget) {\n const keys = keyedMembershipChangedKeys(previousMembershipTarget, nextMembershipTarget);\n return { keys, count: keys.size };\n }\n if (canTargetIdentity && previousIdentityTarget && nextIdentityTarget) {\n const keys = new Set<string>();\n if (previousIdentityTarget.key !== undefined) keys.add(previousIdentityTarget.key);\n if (nextIdentityTarget.key !== undefined) keys.add(nextIdentityTarget.key);\n return { keys, count: keys.size };\n }\n return { keys: fallbackKeys, count: fallbackCount };\n },\n commitPrepared(bindingIndices) {\n for (const bindingIndex of bindingIndices) {\n const nextIdentityTarget = nextIdentityTargets.get(bindingIndex);\n const nextMembershipTarget = nextMembershipTargets.get(bindingIndex);\n const nextMapLookupTarget = nextMapLookupTargets.get(bindingIndex);\n if (nextIdentityTarget) identityTargets.set(bindingIndex, nextIdentityTarget);\n else identityTargets.delete(bindingIndex);\n if (nextMembershipTarget) {\n membershipTargets.set(bindingIndex, nextMembershipTarget);\n } else {\n membershipTargets.delete(bindingIndex);\n }\n if (nextMapLookupTarget) {\n mapLookupTargets.set(bindingIndex, nextMapLookupTarget);\n } else {\n mapLookupTargets.delete(bindingIndex);\n }\n }\n },\n clear() {\n identityTargets.clear();\n membershipTargets.clear();\n mapLookupTargets.clear();\n },\n };\n}\n\nfunction normalizedKeyedRowBindingValue(binding: CompilerKeyedRowBinding, value: unknown): unknown {\n return binding.kind === \"text\" ? renderTextValue(value) : value;\n}\n\ntype CompilerKeyedRowBindingSource = Pick<CompilerKeyedRowsBlockProps, \"bindings\">;\n\nfunction readKeyedRowBindingValues(\n props: CompilerKeyedRowBindingSource,\n item: unknown,\n index: number,\n): unknown[] {\n return props.bindings.map((binding) =>\n normalizedKeyedRowBindingValue(binding, binding.read(item, index)),\n );\n}\n\nfunction applyKeyedRowBindings(\n props: CompilerKeyedRowBindingSource,\n instance: CompilerKeyedRowInstance,\n item: unknown,\n index: number,\n): void {\n if (props.bindings.length < 2) {\n if (props.bindings.length === 1) applyKeyedRowBinding(props, instance, item, index, 0);\n return;\n }\n const nextValues = readKeyedRowBindingValues(props, item, index);\n let targets: Array<Element | null> | undefined;\n for (let bindingIndex = 0; bindingIndex < props.bindings.length; bindingIndex += 1) {\n if (Object.is(instance.values[bindingIndex], nextValues[bindingIndex])) continue;\n targets ||= [];\n targets[bindingIndex] = findCompilerHostTarget(\n instance.element,\n props.bindings[bindingIndex].path,\n );\n }\n if (!targets) return;\n for (let bindingIndex = 0; bindingIndex < props.bindings.length; bindingIndex += 1) {\n const value = nextValues[bindingIndex];\n if (Object.is(instance.values[bindingIndex], value)) continue;\n commitKeyedRowBinding(\n props.bindings[bindingIndex],\n instance,\n bindingIndex,\n value,\n targets[bindingIndex],\n );\n }\n}\n\nfunction applyKeyedRowBinding(\n props: CompilerKeyedRowBindingSource,\n instance: CompilerKeyedRowInstance,\n item: unknown,\n index: number,\n bindingIndex: number,\n): void {\n const binding = props.bindings[bindingIndex];\n const value = normalizedKeyedRowBindingValue(binding, binding.read(item, index));\n if (Object.is(instance.values[bindingIndex], value)) return;\n const target = findCompilerHostTarget(instance.element, binding.path);\n commitKeyedRowBinding(binding, instance, bindingIndex, value, target);\n}\n\nfunction commitKeyedRowBinding(\n binding: CompilerKeyedRowBinding,\n instance: CompilerKeyedRowInstance,\n bindingIndex: number,\n value: unknown,\n target: Element | null | undefined,\n): void {\n instance.values[bindingIndex] = value;\n if (!target) return;\n if (binding.kind === \"text\") {\n target.textContent = value as string;\n } else if (binding.kind === \"style\" && binding.name) {\n updateStyle(target, binding.name, value);\n } else if (binding.kind === \"attribute\" && binding.name) {\n updateAttribute(target, binding.name, value);\n }\n}\n\ntype CompilerPreparedKeyedRowBindingUpdate = readonly [\n bindingIndex: number,\n target: Element,\n value: unknown,\n];\n\nfunction prepareKeyedRowBindingUpdate(\n props: CompilerKeyedRowBindingSource,\n instance: CompilerKeyedRowInstance,\n item: unknown,\n index: number,\n bindingIndex: number,\n): CompilerPreparedKeyedRowBindingUpdate | null | undefined {\n const binding = props.bindings[bindingIndex];\n const rawValue = binding.read(item, index);\n const value = normalizedKeyedRowBindingValue(binding, rawValue);\n if (Object.is(instance.values[bindingIndex], value)) return null;\n const target = findCompilerHostTarget(instance.element, binding.path);\n if (!target || (binding.kind !== \"text\" && !binding.name)) return undefined;\n return [bindingIndex, target, value];\n}\n\ntype CompilerPreparedKeyedRowBindingCommit = readonly [\n instance: CompilerKeyedRowInstance,\n update: CompilerPreparedKeyedRowBindingUpdate,\n];\n\nfunction prepareKeyedRowBindingUpdates(\n props: CompilerKeyedRowBindingSource,\n instance: CompilerKeyedRowInstance,\n item: unknown,\n index: number,\n): CompilerPreparedKeyedRowBindingUpdate[] | undefined {\n const updates: CompilerPreparedKeyedRowBindingUpdate[] = [];\n for (let bindingIndex = 0; bindingIndex < props.bindings.length; bindingIndex += 1) {\n const update = prepareKeyedRowBindingUpdate(props, instance, item, index, bindingIndex);\n if (update === undefined) return undefined;\n if (update) updates.push(update);\n }\n return updates;\n}\n\nfunction applyPreparedKeyedRowBindingUpdates(\n props: CompilerKeyedRowBindingSource,\n instance: CompilerKeyedRowInstance,\n updates: readonly CompilerPreparedKeyedRowBindingUpdate[],\n): void {\n for (const [bindingIndex, target, value] of updates) {\n commitKeyedRowBinding(props.bindings[bindingIndex], instance, bindingIndex, value, target);\n }\n}\n\ntype CompilerPreparedKeyedRowBindingSet = CompilerPreparedKeyedRowBindingUpdate[][];\n\nfunction prepareKeyedRowBindingSetUpdates(\n props: CompilerKeyedRowBindingSource,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n rows: { items: unknown[]; keys: string[] },\n): CompilerPreparedKeyedRowBindingSet | undefined {\n const preparedUpdates: CompilerPreparedKeyedRowBindingUpdate[][] = [];\n for (let index = 0; index < rows.items.length; index += 1) {\n const instance = instances.get(rows.keys[index]);\n if (!instance) return undefined;\n const updates = prepareKeyedRowBindingUpdates(props, instance, rows.items[index], index);\n if (!updates) return undefined;\n preparedUpdates.push(updates);\n }\n return preparedUpdates;\n}\n\nfunction keyedRowConditionalSnapshot(\n conditional: CompilerKeyedRowConditional,\n item: unknown,\n index: number,\n): readonly unknown[] {\n const test = conditional.test(item, index);\n if (conditional.logical && !test) {\n return typeof test === \"number\" || typeof test === \"bigint\" ? [\"primitive\", test] : [\"empty\"];\n }\n const key = test ? \"truthy\" : \"falsy\";\n const branch = key === \"truthy\" ? conditional.truthy : conditional.falsy;\n if (!branch) return [\"empty\"];\n return [\n key,\n ...branch.bindings.map((binding) =>\n normalizedKeyedRowBindingValue(binding, binding.read(item, index)),\n ),\n ];\n}\n\nfunction readKeyedRowConditionalValues(\n props: CompilerKeyedRowsBlockProps,\n item: unknown,\n index: number,\n): ReadonlyMap<number, readonly unknown[]> {\n if (!props.conditionals?.length) return EMPTY_KEYED_ROW_CONDITIONAL_VALUES;\n return new Map(\n props.conditionals.map((conditional) => [\n conditional.id,\n keyedRowConditionalSnapshot(conditional, item, index),\n ]),\n );\n}\n\nconst EMPTY_KEYED_ROW_CONDITIONAL_VALUES: ReadonlyMap<number, readonly unknown[]> = new Map();\n\nfunction keyedRowConditionalChanged(\n previous: readonly unknown[] | undefined,\n next: readonly unknown[],\n): boolean {\n return (\n !previous ||\n previous.length !== next.length ||\n next.some((value, index) => !Object.is(value, previous[index]))\n );\n}\n\ntype CompilerHostConditionalSelection =\n | {\n kind: \"branch\";\n key: \"truthy\" | \"falsy\";\n branch: CompilerHostConditionalBranch;\n }\n | { kind: \"empty\" }\n | { kind: \"fallback\" };\ntype CompilerHostConditionalPreparedSelection = Exclude<\n CompilerHostConditionalSelection,\n { kind: \"fallback\" }\n>;\n\nfunction hostConditionalSelection(\n props: Pick<CompilerHostConditionalBlockProps, \"test\" | \"logical\" | \"truthy\" | \"falsy\">,\n): CompilerHostConditionalSelection {\n const test = props.test();\n if (props.logical && !test) {\n // React renders 0, NaN, and (where supported) 0n from `value && <Element />`.\n // The host-only fast path cannot represent that primitive branch, so retain\n // React's exact behavior rather than coercing it to an empty branch.\n if (typeof test === \"number\" || typeof test === \"bigint\") return { kind: \"fallback\" };\n return { kind: \"empty\" };\n }\n const key = test ? \"truthy\" : \"falsy\";\n const branch = key === \"truthy\" ? props.truthy : props.falsy;\n return branch ? { kind: \"branch\", key, branch } : { kind: \"empty\" };\n}\n\nfunction normalizedHostConditionalBindingValue(\n binding: CompilerHostConditionalBinding,\n value: unknown,\n): unknown {\n return binding.kind === \"text\" ? renderTextValue(value) : value;\n}\n\nfunction applyHostConditionalBindings(\n branch: CompilerHostConditionalBranch,\n instance: CompilerHostInstance,\n): void {\n for (let bindingIndex = 0; bindingIndex < branch.bindings.length; bindingIndex += 1) {\n const binding = branch.bindings[bindingIndex];\n const rawValue = binding.read();\n const value = normalizedHostConditionalBindingValue(binding, rawValue);\n if (Object.is(instance.values[bindingIndex], value)) continue;\n instance.values[bindingIndex] = value;\n const target = findCompilerHostTarget(instance.element, binding.path);\n if (!target) continue;\n if (binding.kind === \"text\") {\n target.textContent = value as string;\n } else if (binding.kind === \"style\" && binding.name) {\n updateStyle(target, binding.name, rawValue);\n } else if (binding.kind === \"attribute\" && binding.name) {\n updateAttribute(target, binding.name, rawValue);\n }\n }\n}\n\nfunction prepareHostConditionalBindings(\n branch: CompilerHostConditionalBranch,\n instance: CompilerHostInstance,\n): boolean {\n for (let bindingIndex = 0; bindingIndex < branch.bindings.length; bindingIndex += 1) {\n const binding = branch.bindings[bindingIndex];\n const rawValue = binding.read();\n const target = findCompilerHostTarget(instance.element, binding.path);\n if (\n !target ||\n (binding.kind !== \"text\" &&\n ((binding.kind !== \"style\" && binding.kind !== \"attribute\") || !binding.name))\n ) {\n return false;\n }\n instance.values[bindingIndex] = [\n target,\n normalizedHostConditionalBindingValue(binding, rawValue),\n ];\n }\n return true;\n}\n\nfunction applyPreparedHostConditionalBindings(\n branch: CompilerHostConditionalBranch,\n instance: CompilerHostInstance,\n): void {\n for (let bindingIndex = 0; bindingIndex < branch.bindings.length; bindingIndex += 1) {\n const binding = branch.bindings[bindingIndex];\n const [target, value] = instance.values[bindingIndex] as readonly [Element, unknown];\n instance.values[bindingIndex] = value;\n if (binding.kind === \"text\") {\n target.textContent = value as string;\n } else if (binding.kind === \"style\") {\n updateStyle(target, binding.name!, value);\n } else {\n updateAttribute(target, binding.name!, value);\n }\n }\n}\n\ninterface CompilerHostTreeScope {\n cleanup(): void;\n update(descriptor: CompilerHostElement): boolean;\n}\n\nconst UNSET_HOST_CONDITIONAL_BINDING = Symbol(\"unset host conditional binding\");\n\nfunction mountCompilerHostTree(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n element: Element,\n descriptor: CompilerHostElement,\n onFallback: () => void,\n): CompilerHostTreeScope | null {\n if (!matchesCompilerHostElement(element, descriptor)) return null;\n if (descriptor.block?.kind === \"conditional-ranges\") {\n const controller = new CompilerNestedConditionalRanges(\n owner,\n element,\n descriptor,\n descriptor.block,\n onFallback,\n );\n try {\n if (controller.adopt()) return controller;\n controller.cleanup();\n return null;\n } catch (error) {\n controller.cleanup();\n throw error;\n }\n }\n if (descriptor.block?.kind === \"keyed-ranges\") {\n const controller = new CompilerNestedKeyedRanges(\n owner,\n element,\n descriptor,\n descriptor.block,\n onFallback,\n );\n try {\n if (controller.adopt()) return controller;\n controller.cleanup();\n return null;\n } catch (error) {\n controller.cleanup();\n throw error;\n }\n }\n if (descriptor.block?.kind === \"mixed-ranges\") {\n const controller = new CompilerNestedMixedRanges(\n owner,\n element,\n descriptor,\n descriptor.block,\n onFallback,\n );\n try {\n if (controller.adopt()) return controller;\n controller.cleanup();\n return null;\n } catch (error) {\n controller.cleanup();\n throw error;\n }\n }\n\n const descriptors = flattenCompilerHostElements(descriptor.children);\n if (descriptors.length !== element.children.length) return null;\n const scopes: CompilerHostTreeScope[] = [];\n for (let index = 0; index < descriptors.length; index += 1) {\n const scope = mountCompilerHostTree(\n owner,\n element.children[index],\n descriptors[index],\n onFallback,\n );\n if (!scope) {\n for (const mounted of scopes) mounted.cleanup();\n return null;\n }\n scopes.push(scope);\n }\n let active = true;\n return {\n update(nextDescriptor) {\n if (!active || nextDescriptor.block || !matchesCompilerHostElement(element, nextDescriptor)) {\n return false;\n }\n const nextChildren = flattenCompilerHostElements(nextDescriptor.children);\n if (nextChildren.length !== scopes.length) return false;\n return scopes.every((scope, index) => scope.update(nextChildren[index]));\n },\n cleanup() {\n if (!active) return;\n active = false;\n for (const scope of scopes) scope.cleanup();\n },\n };\n}\n\nfunction mountCompilerHostInstance(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n element: Element,\n descriptor: CompilerHostElement,\n branch: Pick<CompilerHostConditionalBranch, \"bindings\">,\n onFallback: () => void,\n applyBindingsImmediately = true,\n): CompilerHostInstance | null {\n const scope = mountCompilerHostTree(owner, element, descriptor, onFallback);\n if (!scope) return null;\n const instance: CompilerHostInstance = {\n element,\n scope,\n values: branch.bindings.map(() => UNSET_HOST_CONDITIONAL_BINDING),\n };\n if (!applyBindingsImmediately) return instance;\n try {\n applyHostConditionalBindings(branch as CompilerHostConditionalBranch, instance);\n } catch (error) {\n scope.cleanup();\n throw error;\n }\n return instance;\n}\n\ninterface NestedConditionalRangeInstance {\n key: \"truthy\" | \"falsy\";\n host: CompilerHostInstance;\n}\n\nclass CompilerNestedConditionalRanges implements CompilerHostTreeScope {\n private readonly instances: Array<NestedConditionalRangeInstance | null> = [];\n private readonly staticSegments: Element[][] = [];\n private readonly staticScopes: CompilerHostTreeScope[] = [];\n private readonly staticValues: unknown[] = [];\n private unsubscribe: (() => void) | undefined;\n private active = true;\n\n constructor(\n private readonly owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n private readonly root: Element,\n private host: CompilerHostElement,\n private block: CompilerHostConditionalRanges,\n private readonly onFallback: () => void,\n ) {}\n\n private readSelections(): CompilerHostConditionalPreparedSelection[] | null {\n const selections: CompilerHostConditionalPreparedSelection[] = [];\n for (const range of this.block.ranges) {\n const selection = hostConditionalSelection(range);\n if (selection.kind === \"fallback\") return null;\n selections.push(selection);\n }\n return selections;\n }\n\n private mountStatic(\n elements: readonly Element[],\n descriptors: readonly CompilerHostElement[],\n ): boolean {\n if (elements.length !== descriptors.length) return false;\n for (let index = 0; index < elements.length; index += 1) {\n const scope = mountCompilerHostTree(\n this.owner,\n elements[index],\n descriptors[index],\n this.onFallback,\n );\n if (!scope) return false;\n this.staticScopes.push(scope);\n }\n return true;\n }\n\n adopt(): boolean {\n if (!Number.isSafeInteger(this.block.trailing) || this.block.trailing < 0) return false;\n const selections = this.readSelections();\n if (!selections) return false;\n const elements = [...this.root.children];\n const descriptors = flattenCompilerHostElements(this.host.children);\n if (elements.length !== descriptors.length) return false;\n let cursor = 0;\n\n for (let index = 0; index < this.block.ranges.length; index += 1) {\n const range = this.block.ranges[index];\n if (!Number.isSafeInteger(range.before) || range.before < 0) {\n this.cleanup();\n return false;\n }\n const staticEnd = cursor + range.before;\n if (\n staticEnd > elements.length ||\n !this.mountStatic(elements.slice(cursor, staticEnd), descriptors.slice(cursor, staticEnd))\n ) {\n this.cleanup();\n return false;\n }\n this.staticSegments.push(elements.slice(cursor, staticEnd));\n cursor = staticEnd;\n\n const selection = selections[index];\n if (selection.kind === \"empty\") {\n this.instances.push(null);\n continue;\n }\n const element = elements[cursor];\n if (!element) {\n this.cleanup();\n return false;\n }\n const descriptor = selection.branch.create();\n const host = mountCompilerHostInstance(\n this.owner,\n element,\n descriptor,\n selection.branch,\n this.onFallback,\n false, // Commit only after every sibling range validates.\n );\n if (!host) {\n this.cleanup();\n return false;\n }\n this.instances.push({ key: selection.key, host });\n if (!prepareHostConditionalBindings(selection.branch, host)) {\n this.cleanup();\n return false;\n }\n cursor += 1;\n }\n\n const trailingEnd = cursor + this.block.trailing;\n if (\n trailingEnd !== elements.length ||\n !this.mountStatic(elements.slice(cursor), descriptors.slice(cursor))\n ) {\n this.cleanup();\n return false;\n }\n this.staticSegments.push(elements.slice(cursor));\n if (!applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)) {\n this.cleanup();\n return false;\n }\n for (let index = 0; index < selections.length; index += 1) {\n const selection = selections[index];\n const instance = this.instances[index];\n if (selection.kind === \"branch\" && instance) {\n applyPreparedHostConditionalBindings(selection.branch, instance.host);\n }\n }\n this.unsubscribe = this.owner.subscribe(this.block.id, this.refresh);\n return true;\n }\n\n private anchorAfter(rangeIndex: number): ChildNode | null {\n for (let next = rangeIndex + 1; next < this.instances.length; next += 1) {\n const staticAnchor = this.staticSegments[next]?.[0];\n if (staticAnchor) return staticAnchor;\n const rangeAnchor = this.instances[next]?.host.element;\n if (rangeAnchor) return rangeAnchor;\n }\n return this.staticSegments[this.instances.length]?.[0] || null;\n }\n\n private reconcileRange(\n rangeIndex: number,\n selection: CompilerHostConditionalPreparedSelection,\n ): boolean {\n const previous = this.instances[rangeIndex];\n if (selection.kind === \"empty\") {\n previous?.host.scope?.cleanup();\n previous?.host.element.remove();\n this.instances[rangeIndex] = null;\n return true;\n }\n if (previous?.key === selection.key) {\n const descriptor = selection.branch.create();\n if (!previous.host.scope?.update(descriptor)) return false;\n applyHostConditionalBindings(selection.branch, previous.host);\n return true;\n }\n\n const descriptor = selection.branch.create();\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const host = mountCompilerHostInstance(\n this.owner,\n element,\n descriptor,\n selection.branch,\n this.onFallback,\n );\n if (!host) return false;\n previous?.host.scope?.cleanup();\n if (previous) previous.host.element.replaceWith(element);\n else this.root.insertBefore(element, this.anchorAfter(rangeIndex));\n this.instances[rangeIndex] = { key: selection.key, host };\n return true;\n }\n\n private refresh = (afterCommit?: () => void) => {\n if (!this.active) {\n afterCommit?.();\n return;\n }\n const selections = this.readSelections();\n if (!selections || selections.length !== this.instances.length) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n if (!applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n for (let index = this.instances.length - 1; index >= 0; index -= 1) {\n if (!this.reconcileRange(index, selections[index])) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n }\n afterCommit?.();\n };\n\n private updateStaticScopes(\n descriptor: CompilerHostElement,\n selections: readonly CompilerHostConditionalPreparedSelection[],\n ): boolean {\n const descriptors = flattenCompilerHostElements(descriptor.children);\n let descriptorIndex = 0;\n let scopeIndex = 0;\n for (let rangeIndex = 0; rangeIndex < this.block.ranges.length; rangeIndex += 1) {\n const range = this.block.ranges[rangeIndex];\n for (let index = 0; index < range.before; index += 1) {\n const scope = this.staticScopes[scopeIndex++];\n const child = descriptors[descriptorIndex++];\n if (!scope || !child || !scope.update(child)) return false;\n }\n if (selections[rangeIndex].kind === \"branch\") descriptorIndex += 1;\n }\n for (let index = 0; index < this.block.trailing; index += 1) {\n const scope = this.staticScopes[scopeIndex++];\n const child = descriptors[descriptorIndex++];\n if (!scope || !child || !scope.update(child)) return false;\n }\n return scopeIndex === this.staticScopes.length && descriptorIndex === descriptors.length;\n }\n\n update(descriptor: CompilerHostElement): boolean {\n const block = descriptor.block;\n if (\n !this.active ||\n block?.kind !== \"conditional-ranges\" ||\n block.id !== this.block.id ||\n block.ranges.length !== this.block.ranges.length ||\n block.trailing !== this.block.trailing ||\n block.ranges.some((range, index) => range.before !== this.block.ranges[index].before)\n ) {\n return false;\n }\n this.host = descriptor;\n this.block = block;\n const selections = this.readSelections();\n if (\n !selections ||\n !this.updateStaticScopes(descriptor, selections) ||\n !applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)\n ) {\n return false;\n }\n for (let index = this.instances.length - 1; index >= 0; index -= 1) {\n if (!this.reconcileRange(index, selections[index])) return false;\n }\n return true;\n }\n\n cleanup(): void {\n if (!this.active) return;\n this.active = false;\n this.unsubscribe?.();\n for (const instance of this.instances) instance?.host.scope?.cleanup();\n for (const scope of this.staticScopes) scope.cleanup();\n this.instances.length = 0;\n this.staticSegments.length = 0;\n this.staticScopes.length = 0;\n this.staticValues.length = 0;\n }\n}\n\ninterface NestedReadKeyedRange {\n items: unknown[];\n keys: string[];\n}\n\n// Undefined means structural reconciliation is still required. Prove the entire\n// key order before updating scopes, which may themselves contain nested blocks.\nfunction reconcileStableNestedKeyedRows(\n range: CompilerKeyedRange,\n previous: ReadonlyMap<string, CompilerKeyedRowInstance>,\n rows: NestedReadKeyedRange,\n): boolean | undefined {\n if (rows.keys.length !== previous.size) return undefined;\n let index = 0;\n for (const key of previous.keys()) {\n if (rows.keys[index++] !== key) return undefined;\n }\n index = 0;\n for (const existing of previous.values()) {\n const item = rows.items[index];\n const descriptor = range.create(item, index);\n if (!existing.scope?.update(descriptor)) return false;\n applyKeyedRowBindings(range, existing, item, index);\n existing.item = item;\n existing.index = index;\n index += 1;\n }\n return true;\n}\n\nclass CompilerNestedKeyedRanges implements CompilerHostTreeScope {\n private readonly instances: Array<Map<string, CompilerKeyedRowInstance>> = [];\n private readonly staticSegments: Element[][] = [];\n private readonly staticScopes: CompilerHostTreeScope[] = [];\n private readonly staticValues: unknown[] = [];\n private unsubscribe: (() => void) | undefined;\n private active = true;\n\n constructor(\n private readonly owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n private readonly root: Element,\n private host: CompilerHostElement,\n private block: CompilerHostKeyedRanges,\n private readonly onFallback: () => void,\n ) {}\n\n private readRange(range: CompilerKeyedRange): NestedReadKeyedRange | null {\n const items = materializeIterable(range.items());\n const keys = items.map((item, index) => keyedRowIdentity(range.rowKey(item, index)));\n return new Set(keys).size === keys.length ? { items, keys } : null;\n }\n\n private readRanges(): NestedReadKeyedRange[] | null {\n const ranges: NestedReadKeyedRange[] = [];\n for (const range of this.block.ranges) {\n const rows = this.readRange(range);\n if (!rows) return null;\n ranges.push(rows);\n }\n return ranges;\n }\n\n private mountStatic(\n elements: readonly Element[],\n descriptors: readonly CompilerHostElement[],\n ): boolean {\n if (elements.length !== descriptors.length) return false;\n for (let index = 0; index < elements.length; index += 1) {\n const scope = mountCompilerHostTree(\n this.owner,\n elements[index],\n descriptors[index],\n this.onFallback,\n );\n if (!scope) return false;\n this.staticScopes.push(scope);\n }\n return true;\n }\n\n adopt(): boolean {\n if (!Number.isSafeInteger(this.block.trailing) || this.block.trailing < 0) return false;\n const rowsByRange = this.readRanges();\n if (!rowsByRange) return false;\n const elements = [...this.root.children];\n const descriptors = flattenCompilerHostElements(materializeCompilerHostChildren(this.host));\n if (elements.length !== descriptors.length) return false;\n const preparedBindings: CompilerPreparedKeyedRowBindingUpdate[][][] = [];\n let cursor = 0;\n\n for (let rangeIndex = 0; rangeIndex < this.block.ranges.length; rangeIndex += 1) {\n const range = this.block.ranges[rangeIndex];\n const rows = rowsByRange[rangeIndex];\n if (!Number.isSafeInteger(range.before) || range.before < 0) {\n this.cleanup();\n return false;\n }\n const staticEnd = cursor + range.before;\n if (\n staticEnd > elements.length ||\n !this.mountStatic(elements.slice(cursor, staticEnd), descriptors.slice(cursor, staticEnd))\n ) {\n this.cleanup();\n return false;\n }\n this.staticSegments.push(elements.slice(cursor, staticEnd));\n cursor = staticEnd;\n\n const instances = new Map<string, CompilerKeyedRowInstance>();\n this.instances.push(instances);\n const rangeBindingUpdates: CompilerPreparedKeyedRowBindingUpdate[][] = [];\n for (let index = 0; index < rows.items.length; index += 1) {\n const element = elements[cursor + index];\n if (!element) {\n this.cleanup();\n return false;\n }\n const descriptor = range.create(rows.items[index], index);\n const scope = mountCompilerHostTree(this.owner, element, descriptor, this.onFallback);\n if (!scope) {\n this.cleanup();\n return false;\n }\n const instance: CompilerKeyedRowInstance = {\n key: rows.keys[index],\n element,\n scope,\n values: range.bindings.map(() => UNSET_KEYED_ROW_BINDING),\n item: rows.items[index],\n index,\n conditionalValues: new Map(),\n };\n let bindingUpdates: CompilerPreparedKeyedRowBindingUpdate[] | undefined;\n try {\n bindingUpdates = prepareKeyedRowBindingUpdates(range, instance, rows.items[index], index);\n } catch (error) {\n scope.cleanup();\n throw error;\n }\n if (!bindingUpdates) {\n scope.cleanup();\n this.cleanup();\n return false;\n }\n instances.set(rows.keys[index], instance);\n rangeBindingUpdates.push(bindingUpdates);\n }\n preparedBindings.push(rangeBindingUpdates);\n cursor += rows.items.length;\n }\n\n const trailingEnd = cursor + this.block.trailing;\n if (\n trailingEnd !== elements.length ||\n !this.mountStatic(elements.slice(cursor), descriptors.slice(cursor))\n ) {\n this.cleanup();\n return false;\n }\n this.staticSegments.push(elements.slice(cursor));\n if (!applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)) {\n this.cleanup();\n return false;\n }\n for (let rangeIndex = 0; rangeIndex < this.block.ranges.length; rangeIndex += 1) {\n const range = this.block.ranges[rangeIndex];\n let rowIndex = 0;\n for (const instance of this.instances[rangeIndex].values()) {\n applyPreparedKeyedRowBindingUpdates(\n range,\n instance,\n preparedBindings[rangeIndex][rowIndex],\n );\n rowIndex += 1;\n }\n }\n this.unsubscribe = this.owner.subscribe(this.block.id, this.refresh);\n return true;\n }\n\n private anchorAfter(rangeIndex: number): ChildNode | null {\n for (let next = rangeIndex + 1; next < this.instances.length; next += 1) {\n const staticAnchor = this.staticSegments[next]?.[0];\n if (staticAnchor) return staticAnchor;\n const rowAnchor = this.instances[next].values().next().value?.element;\n if (rowAnchor) return rowAnchor;\n }\n return this.staticSegments[this.instances.length]?.[0] || null;\n }\n\n private reconcileRange(rangeIndex: number, rows: NestedReadKeyedRange): boolean {\n const range = this.block.ranges[rangeIndex];\n const previous = this.instances[rangeIndex];\n const stable = reconcileStableNestedKeyedRows(range, previous, rows);\n if (stable !== undefined) return stable;\n const oldIndices = new Map<string, number>();\n [...previous.keys()].forEach((key, index) => oldIndices.set(key, index));\n const nextKeys = new Set(rows.keys);\n for (const [key, instance] of previous) {\n if (nextKeys.has(key)) continue;\n instance.scope?.cleanup();\n instance.element.remove();\n }\n\n const sequence = rows.keys.map((key) => oldIndices.get(key) ?? -1);\n const stablePositions = longestIncreasingSubsequencePositions(sequence);\n const nextInstances: CompilerKeyedRowInstance[] = [];\n for (let index = 0; index < rows.items.length; index += 1) {\n const key = rows.keys[index];\n const existing = previous.get(key);\n if (existing) {\n const descriptor = range.create(rows.items[index], index);\n if (!existing.scope?.update(descriptor)) return false;\n applyKeyedRowBindings(range, existing, rows.items[index], index);\n existing.item = rows.items[index];\n existing.index = index;\n nextInstances.push(existing);\n continue;\n }\n const descriptor = range.create(rows.items[index], index);\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const scope = mountCompilerHostTree(this.owner, element, descriptor, this.onFallback);\n if (!scope) return false;\n nextInstances.push({\n key,\n element,\n scope,\n values: readKeyedRowBindingValues(range, rows.items[index], index),\n item: rows.items[index],\n index,\n conditionalValues: new Map(),\n });\n }\n\n let anchor = this.anchorAfter(rangeIndex);\n for (let index = nextInstances.length - 1; index >= 0; index -= 1) {\n const instance = nextInstances[index];\n if (\n sequence[index] < 0 ||\n (!stablePositions.has(index) && instance.element.nextSibling !== anchor)\n ) {\n this.root.insertBefore(instance.element, anchor);\n }\n anchor = instance.element;\n }\n this.instances[rangeIndex] = keyedRowInstancesByKey(nextInstances);\n return true;\n }\n\n private refresh = (afterCommit?: () => void) => {\n if (!this.active) {\n afterCommit?.();\n return;\n }\n const rowsByRange = this.readRanges();\n if (!rowsByRange || rowsByRange.length !== this.instances.length) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n if (!applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n const activeElement = this.root.ownerDocument.activeElement;\n const restoreFocus = Boolean(activeElement && this.root.contains(activeElement));\n for (let index = rowsByRange.length - 1; index >= 0; index -= 1) {\n if (!this.reconcileRange(index, rowsByRange[index])) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n }\n if (\n restoreFocus &&\n activeElement?.isConnected &&\n activeElement.ownerDocument.activeElement !== activeElement &&\n \"focus\" in activeElement\n ) {\n (activeElement as HTMLElement).focus({ preventScroll: true });\n }\n afterCommit?.();\n };\n\n private updateStaticScopes(\n descriptor: CompilerHostElement,\n rowsByRange: readonly NestedReadKeyedRange[],\n ): boolean {\n const descriptors = flattenCompilerHostElements(materializeCompilerHostChildren(descriptor));\n let descriptorIndex = 0;\n let scopeIndex = 0;\n for (let rangeIndex = 0; rangeIndex < this.block.ranges.length; rangeIndex += 1) {\n const range = this.block.ranges[rangeIndex];\n for (let index = 0; index < range.before; index += 1) {\n const scope = this.staticScopes[scopeIndex++];\n const child = descriptors[descriptorIndex++];\n if (!scope || !child || !scope.update(child)) return false;\n }\n descriptorIndex += rowsByRange[rangeIndex].items.length;\n }\n for (let index = 0; index < this.block.trailing; index += 1) {\n const scope = this.staticScopes[scopeIndex++];\n const child = descriptors[descriptorIndex++];\n if (!scope || !child || !scope.update(child)) return false;\n }\n return scopeIndex === this.staticScopes.length && descriptorIndex === descriptors.length;\n }\n\n update(descriptor: CompilerHostElement): boolean {\n const block = descriptor.block;\n if (\n !this.active ||\n block?.kind !== \"keyed-ranges\" ||\n block.id !== this.block.id ||\n block.ranges.length !== this.block.ranges.length ||\n block.trailing !== this.block.trailing ||\n block.ranges.some((range, index) => range.before !== this.block.ranges[index].before)\n ) {\n return false;\n }\n this.host = descriptor;\n this.block = block;\n const rowsByRange = this.readRanges();\n if (\n !rowsByRange ||\n rowsByRange.length !== this.instances.length ||\n !this.updateStaticScopes(descriptor, rowsByRange) ||\n !applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)\n ) {\n return false;\n }\n for (let index = rowsByRange.length - 1; index >= 0; index -= 1) {\n if (!this.reconcileRange(index, rowsByRange[index])) return false;\n }\n return true;\n }\n\n cleanup(): void {\n if (!this.active) return;\n this.active = false;\n this.unsubscribe?.();\n for (const instances of this.instances) {\n for (const instance of instances.values()) instance.scope?.cleanup();\n }\n for (const scope of this.staticScopes) scope.cleanup();\n this.instances.length = 0;\n this.staticSegments.length = 0;\n this.staticScopes.length = 0;\n this.staticValues.length = 0;\n }\n}\n\ntype NestedMixedRangeSnapshot =\n | { kind: \"conditional\"; selection: CompilerHostConditionalPreparedSelection }\n | { kind: \"keyed\"; rows: NestedReadKeyedRange };\n\ntype NestedMixedRangeInstance =\n | { kind: \"conditional\"; value: NestedConditionalRangeInstance | null }\n | { kind: \"keyed\"; value: Map<string, CompilerKeyedRowInstance> };\n\nclass CompilerNestedMixedRanges implements CompilerHostTreeScope {\n private readonly instances: NestedMixedRangeInstance[] = [];\n private readonly staticSegments: Element[][] = [];\n private readonly staticScopes: CompilerHostTreeScope[] = [];\n private readonly staticValues: unknown[] = [];\n private unsubscribe: (() => void) | undefined;\n private active = true;\n\n constructor(\n private readonly owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n private readonly root: Element,\n private host: CompilerHostElement,\n private block: CompilerHostMixedRanges,\n private readonly onFallback: () => void,\n ) {}\n\n private readSnapshots(): NestedMixedRangeSnapshot[] | null {\n const snapshots: NestedMixedRangeSnapshot[] = [];\n for (const range of this.block.ranges) {\n if (range.kind === \"conditional\") {\n const selection = hostConditionalSelection(range);\n if (selection.kind === \"fallback\") return null;\n snapshots.push({ kind: \"conditional\", selection });\n continue;\n }\n const items = materializeIterable(range.items());\n const keys = items.map((item, index) => keyedRowIdentity(range.rowKey(item, index)));\n if (new Set(keys).size !== keys.length) return null;\n snapshots.push({ kind: \"keyed\", rows: { items, keys } });\n }\n return snapshots;\n }\n\n private mountStatic(\n elements: readonly Element[],\n descriptors: readonly CompilerHostElement[],\n ): boolean {\n if (elements.length !== descriptors.length) return false;\n for (let index = 0; index < elements.length; index += 1) {\n const scope = mountCompilerHostTree(\n this.owner,\n elements[index],\n descriptors[index],\n this.onFallback,\n );\n if (!scope) return false;\n this.staticScopes.push(scope);\n }\n return true;\n }\n\n adopt(): boolean {\n if (!Number.isSafeInteger(this.block.trailing) || this.block.trailing < 0) return false;\n const snapshots = this.readSnapshots();\n if (!snapshots) return false;\n const elements = [...this.root.children];\n const descriptors = flattenCompilerHostElements(this.host.children);\n if (elements.length !== descriptors.length) return false;\n const preparedKeyedBindings: Array<\n readonly (readonly CompilerPreparedKeyedRowBindingUpdate[])[] | undefined\n > = [];\n let cursor = 0;\n\n for (let rangeIndex = 0; rangeIndex < this.block.ranges.length; rangeIndex += 1) {\n const range = this.block.ranges[rangeIndex];\n const snapshot = snapshots[rangeIndex];\n if (!Number.isSafeInteger(range.before) || range.before < 0 || range.kind !== snapshot.kind) {\n this.cleanup();\n return false;\n }\n const staticEnd = cursor + range.before;\n if (\n staticEnd > elements.length ||\n !this.mountStatic(elements.slice(cursor, staticEnd), descriptors.slice(cursor, staticEnd))\n ) {\n this.cleanup();\n return false;\n }\n this.staticSegments.push(elements.slice(cursor, staticEnd));\n cursor = staticEnd;\n\n if (range.kind === \"conditional\" && snapshot.kind === \"conditional\") {\n if (snapshot.selection.kind === \"empty\") {\n this.instances.push({ kind: \"conditional\", value: null });\n continue;\n }\n const element = elements[cursor];\n if (!element) {\n this.cleanup();\n return false;\n }\n const descriptor = snapshot.selection.branch.create();\n const host = mountCompilerHostInstance(\n this.owner,\n element,\n descriptor,\n snapshot.selection.branch,\n this.onFallback,\n false, // Commit only after every sibling range validates.\n );\n if (!host) {\n this.cleanup();\n return false;\n }\n this.instances.push({\n kind: \"conditional\",\n value: { key: snapshot.selection.key, host },\n });\n if (!prepareHostConditionalBindings(snapshot.selection.branch, host)) {\n this.cleanup();\n return false;\n }\n cursor += 1;\n continue;\n }\n\n if (range.kind !== \"keyed\" || snapshot.kind !== \"keyed\") {\n this.cleanup();\n return false;\n }\n const keyedInstances = new Map<string, CompilerKeyedRowInstance>();\n this.instances.push({ kind: \"keyed\", value: keyedInstances });\n const keyedBindingUpdates: CompilerPreparedKeyedRowBindingUpdate[][] = [];\n for (let index = 0; index < snapshot.rows.items.length; index += 1) {\n const element = elements[cursor + index];\n if (!element) {\n this.cleanup();\n return false;\n }\n const descriptor = range.create(snapshot.rows.items[index], index);\n const scope = mountCompilerHostTree(this.owner, element, descriptor, this.onFallback);\n if (!scope) {\n this.cleanup();\n return false;\n }\n const instance: CompilerKeyedRowInstance = {\n key: snapshot.rows.keys[index],\n element,\n scope,\n values: range.bindings.map(() => UNSET_KEYED_ROW_BINDING),\n item: snapshot.rows.items[index],\n index,\n conditionalValues: new Map(),\n };\n let bindingUpdates: CompilerPreparedKeyedRowBindingUpdate[] | undefined;\n try {\n bindingUpdates = prepareKeyedRowBindingUpdates(\n range,\n instance,\n snapshot.rows.items[index],\n index,\n );\n } catch (error) {\n scope.cleanup();\n throw error;\n }\n if (!bindingUpdates) {\n scope.cleanup();\n this.cleanup();\n return false;\n }\n keyedInstances.set(snapshot.rows.keys[index], instance);\n keyedBindingUpdates.push(bindingUpdates);\n }\n preparedKeyedBindings[rangeIndex] = keyedBindingUpdates;\n cursor += snapshot.rows.items.length;\n }\n\n const trailingEnd = cursor + this.block.trailing;\n if (\n trailingEnd !== elements.length ||\n !this.mountStatic(elements.slice(cursor), descriptors.slice(cursor))\n ) {\n this.cleanup();\n return false;\n }\n this.staticSegments.push(elements.slice(cursor));\n if (!applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)) {\n this.cleanup();\n return false;\n }\n for (let index = 0; index < snapshots.length; index += 1) {\n const snapshot = snapshots[index];\n const instance = this.instances[index];\n if (\n snapshot.kind === \"conditional\" &&\n snapshot.selection.kind === \"branch\" &&\n instance?.kind === \"conditional\" &&\n instance.value\n ) {\n applyPreparedHostConditionalBindings(snapshot.selection.branch, instance.value.host);\n } else if (snapshot.kind === \"keyed\" && instance?.kind === \"keyed\") {\n const range = this.block.ranges[index];\n const bindingUpdates = preparedKeyedBindings[index]!;\n if (range.kind !== \"keyed\") continue;\n let rowIndex = 0;\n for (const row of instance.value.values()) {\n applyPreparedKeyedRowBindingUpdates(range, row, bindingUpdates[rowIndex]);\n rowIndex += 1;\n }\n }\n }\n this.unsubscribe = this.owner.subscribe(this.block.id, this.refresh);\n return true;\n }\n\n private firstInstanceElement(instance: NestedMixedRangeInstance): Element | null {\n if (instance.kind === \"conditional\") return instance.value?.host.element || null;\n return instance.value.values().next().value?.element || null;\n }\n\n private anchorAfter(rangeIndex: number): ChildNode | null {\n for (let next = rangeIndex + 1; next < this.instances.length; next += 1) {\n const staticAnchor = this.staticSegments[next]?.[0];\n if (staticAnchor) return staticAnchor;\n const rangeAnchor = this.firstInstanceElement(this.instances[next]);\n if (rangeAnchor) return rangeAnchor;\n }\n return this.staticSegments[this.instances.length]?.[0] || null;\n }\n\n private reconcileConditional(\n rangeIndex: number,\n range: CompilerMixedRange & { kind: \"conditional\" },\n selection: CompilerHostConditionalPreparedSelection,\n ): boolean {\n const instance = this.instances[rangeIndex];\n if (instance.kind !== \"conditional\") return false;\n const previous = instance.value;\n if (selection.kind === \"empty\") {\n previous?.host.scope?.cleanup();\n previous?.host.element.remove();\n instance.value = null;\n return true;\n }\n if (previous?.key === selection.key) {\n const descriptor = selection.branch.create();\n if (!previous.host.scope?.update(descriptor)) return false;\n applyHostConditionalBindings(selection.branch, previous.host);\n return true;\n }\n const descriptor = selection.branch.create();\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const host = mountCompilerHostInstance(\n this.owner,\n element,\n descriptor,\n selection.branch,\n this.onFallback,\n );\n if (!host) return false;\n previous?.host.scope?.cleanup();\n if (previous) previous.host.element.replaceWith(element);\n else this.root.insertBefore(element, this.anchorAfter(rangeIndex));\n instance.value = { key: selection.key, host };\n return true;\n }\n\n private reconcileKeyed(\n rangeIndex: number,\n range: CompilerMixedRange & { kind: \"keyed\" },\n rows: NestedReadKeyedRange,\n ): boolean {\n const instance = this.instances[rangeIndex];\n if (instance.kind !== \"keyed\") return false;\n const previous = instance.value;\n const stable = reconcileStableNestedKeyedRows(range, previous, rows);\n if (stable !== undefined) return stable;\n const oldIndices = new Map<string, number>();\n [...previous.keys()].forEach((key, index) => oldIndices.set(key, index));\n const nextKeys = new Set(rows.keys);\n for (const [key, row] of previous) {\n if (nextKeys.has(key)) continue;\n row.scope?.cleanup();\n row.element.remove();\n }\n\n const sequence = rows.keys.map((key) => oldIndices.get(key) ?? -1);\n const stablePositions = longestIncreasingSubsequencePositions(sequence);\n const nextInstances: CompilerKeyedRowInstance[] = [];\n for (let index = 0; index < rows.items.length; index += 1) {\n const key = rows.keys[index];\n const existing = previous.get(key);\n if (existing) {\n const descriptor = range.create(rows.items[index], index);\n if (!existing.scope?.update(descriptor)) return false;\n applyKeyedRowBindings(range, existing, rows.items[index], index);\n existing.item = rows.items[index];\n existing.index = index;\n nextInstances.push(existing);\n continue;\n }\n const descriptor = range.create(rows.items[index], index);\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const scope = mountCompilerHostTree(this.owner, element, descriptor, this.onFallback);\n if (!scope) return false;\n let values: unknown[];\n try {\n values = readKeyedRowBindingValues(range, rows.items[index], index);\n } catch (error) {\n scope.cleanup();\n throw error;\n }\n nextInstances.push({\n key,\n element,\n scope,\n values,\n item: rows.items[index],\n index,\n conditionalValues: new Map(),\n });\n }\n\n let anchor = this.anchorAfter(rangeIndex);\n for (let index = nextInstances.length - 1; index >= 0; index -= 1) {\n const row = nextInstances[index];\n if (\n sequence[index] < 0 ||\n (!stablePositions.has(index) && row.element.nextSibling !== anchor)\n ) {\n this.root.insertBefore(row.element, anchor);\n }\n anchor = row.element;\n }\n instance.value = keyedRowInstancesByKey(nextInstances);\n return true;\n }\n\n private reconcileRange(rangeIndex: number, snapshot: NestedMixedRangeSnapshot): boolean {\n const range = this.block.ranges[rangeIndex];\n if (range.kind !== snapshot.kind) return false;\n return range.kind === \"conditional\" && snapshot.kind === \"conditional\"\n ? this.reconcileConditional(rangeIndex, range, snapshot.selection)\n : range.kind === \"keyed\" && snapshot.kind === \"keyed\"\n ? this.reconcileKeyed(rangeIndex, range, snapshot.rows)\n : false;\n }\n\n private refresh = (afterCommit?: () => void) => {\n if (!this.active) {\n afterCommit?.();\n return;\n }\n const snapshots = this.readSnapshots();\n if (!snapshots || snapshots.length !== this.instances.length) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n if (!applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n const activeElement = this.root.ownerDocument.activeElement;\n const restoreFocus = Boolean(activeElement && this.root.contains(activeElement));\n for (let index = snapshots.length - 1; index >= 0; index -= 1) {\n if (!this.reconcileRange(index, snapshots[index])) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n }\n if (\n restoreFocus &&\n activeElement?.isConnected &&\n activeElement.ownerDocument.activeElement !== activeElement &&\n \"focus\" in activeElement\n ) {\n (activeElement as HTMLElement).focus({ preventScroll: true });\n }\n afterCommit?.();\n };\n\n private updateStaticScopes(\n descriptor: CompilerHostElement,\n snapshots: readonly NestedMixedRangeSnapshot[],\n ): boolean {\n const descriptors = flattenCompilerHostElements(descriptor.children);\n let descriptorIndex = 0;\n let scopeIndex = 0;\n for (let rangeIndex = 0; rangeIndex < this.block.ranges.length; rangeIndex += 1) {\n const range = this.block.ranges[rangeIndex];\n for (let index = 0; index < range.before; index += 1) {\n const scope = this.staticScopes[scopeIndex++];\n const child = descriptors[descriptorIndex++];\n if (!scope || !child || !scope.update(child)) return false;\n }\n const snapshot = snapshots[rangeIndex];\n if (snapshot.kind === \"conditional\") {\n if (snapshot.selection.kind === \"branch\") descriptorIndex += 1;\n } else {\n descriptorIndex += snapshot.rows.items.length;\n }\n }\n for (let index = 0; index < this.block.trailing; index += 1) {\n const scope = this.staticScopes[scopeIndex++];\n const child = descriptors[descriptorIndex++];\n if (!scope || !child || !scope.update(child)) return false;\n }\n return scopeIndex === this.staticScopes.length && descriptorIndex === descriptors.length;\n }\n\n update(descriptor: CompilerHostElement): boolean {\n const block = descriptor.block;\n if (\n !this.active ||\n block?.kind !== \"mixed-ranges\" ||\n block.id !== this.block.id ||\n block.ranges.length !== this.block.ranges.length ||\n block.trailing !== this.block.trailing ||\n block.ranges.some(\n (range, index) =>\n range.kind !== this.block.ranges[index].kind ||\n range.before !== this.block.ranges[index].before,\n )\n ) {\n return false;\n }\n this.host = descriptor;\n this.block = block;\n const snapshots = this.readSnapshots();\n if (\n !snapshots ||\n snapshots.length !== this.instances.length ||\n !this.updateStaticScopes(descriptor, snapshots) ||\n !applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)\n ) {\n return false;\n }\n for (let index = snapshots.length - 1; index >= 0; index -= 1) {\n if (!this.reconcileRange(index, snapshots[index])) return false;\n }\n return true;\n }\n\n cleanup(): void {\n if (!this.active) return;\n this.active = false;\n this.unsubscribe?.();\n for (const instance of this.instances) {\n if (instance.kind === \"conditional\") {\n instance.value?.host.scope?.cleanup();\n } else {\n for (const row of instance.value.values()) row.scope?.cleanup();\n }\n }\n for (const scope of this.staticScopes) scope.cleanup();\n this.instances.length = 0;\n this.staticSegments.length = 0;\n this.staticScopes.length = 0;\n this.staticValues.length = 0;\n }\n}\n\nfunction createHostConditionalBlockComponent(\n owner: Pick<CompilerRuntimeFeatureOwner, \"subscribe\" | \"getDefinitionVersion\">,\n): React.ComponentType<CompilerHostConditionalBlockProps> {\n interface State {\n fallback: boolean;\n }\n\n class FarmHostConditionalBlock extends React.Component<CompilerHostConditionalBlockProps, State> {\n static displayName = \"FarmCompiledHostConditional\";\n\n state: State = { fallback: false };\n private root: Element | null = null;\n private mounted = false;\n private fallbackRequested = false;\n private fallbackVersion = 0;\n private propSyncQueued = false;\n private currentProps = this.props;\n declare private stop: (() => void) | undefined;\n declare private id: number | undefined;\n private readonly fallbackUnsubscribers = new Map<number, () => void>();\n private fallbackKeysWereUnsafe = false;\n private activeBranch: \"truthy\" | \"falsy\" | null = null;\n private instance: CompilerHostInstance | null = null;\n private definitionVersion = owner.getDefinitionVersion?.();\n\n private requestNestedFallback = () => {\n this.instance?.scope?.cleanup();\n this.activateFallback();\n };\n\n private refreshFallbackDescendant: CompilerBlockRefresh = (afterCommit) => {\n this.prepareFallbackUpdate();\n this.forceUpdate(afterCommit);\n };\n\n private subscribeFallbackDescendants(): void {\n const ids = new Set<number>();\n const selection = hostConditionalSelection(this.currentProps);\n if (selection.kind === \"branch\") {\n collectActiveCompilerHostBlockIds(selection.branch.create(), ids);\n }\n ids.delete(this.currentProps.id);\n reconcileCompilerFallbackSubscriptions(\n owner,\n this.fallbackUnsubscribers,\n ids,\n this.refreshFallbackDescendant,\n );\n }\n\n private hasUnsafeFallbackKeys(): boolean {\n try {\n const selection = hostConditionalSelection(this.currentProps);\n return (\n selection.kind === \"branch\" && hasUnsafeCompilerFallbackKeys(selection.branch.create())\n );\n } catch {\n return true;\n }\n }\n\n private prepareFallbackUpdate(): void {\n const unsafeKeys = this.hasUnsafeFallbackKeys();\n if (unsafeKeys || this.fallbackKeysWereUnsafe) this.fallbackVersion += 1;\n this.fallbackKeysWereUnsafe = unsafeKeys;\n }\n\n private captureRoot = (root: Element | null) => {\n this.root = root;\n };\n\n private adopt(): boolean {\n if (!this.root) return false;\n const selection = hostConditionalSelection(this.currentProps);\n if (selection.kind === \"fallback\") return false;\n if (selection.kind === \"empty\") {\n if (this.root.childNodes.length !== 0) return false;\n this.instance?.scope?.cleanup();\n this.activeBranch = null;\n this.instance = null;\n return true;\n }\n if (\n this.root.childNodes.length !== 1 ||\n this.root.firstElementChild === null ||\n this.root.firstElementChild !== this.root.firstChild\n ) {\n return false;\n }\n const descriptor = selection.branch.create();\n const element = this.root.firstElementChild;\n if (!matchesCompilerHostElement(element, descriptor)) return false;\n const instance = mountCompilerHostInstance(\n owner,\n element,\n descriptor,\n selection.branch,\n this.requestNestedFallback,\n );\n if (!instance) return false;\n this.instance?.scope?.cleanup();\n this.activeBranch = selection.key;\n this.instance = instance;\n return true;\n }\n\n private activateFallback(afterCommit?: () => void): void {\n if (!this.mounted || this.state.fallback || this.fallbackRequested) {\n afterCommit?.();\n return;\n }\n this.fallbackRequested = true;\n this.instance?.scope?.cleanup();\n this.instance = null;\n this.activeBranch = null;\n this.subscribeFallbackDescendants();\n this.fallbackKeysWereUnsafe = this.hasUnsafeFallbackKeys();\n // One key change on entry: the compiled path mutated the DOM behind\n // React's back, so the first fallback render must rebuild the subtree.\n this.fallbackVersion += 1;\n this.setState({ fallback: true }, afterCommit);\n }\n\n private reconcile(afterCommit?: () => void): void {\n if (!this.mounted || !this.root) {\n afterCommit?.();\n return;\n }\n if (this.state.fallback) {\n this.prepareFallbackUpdate();\n this.forceUpdate(afterCommit);\n return;\n }\n\n const selection = hostConditionalSelection(this.currentProps);\n if (selection.kind === \"fallback\") {\n this.activateFallback(afterCommit);\n return;\n }\n if (selection.kind === \"empty\") {\n this.instance?.scope?.cleanup();\n if (this.instance) this.instance.element.remove();\n this.activeBranch = null;\n this.instance = null;\n afterCommit?.();\n return;\n }\n if (this.activeBranch === selection.key && this.instance) {\n const descriptor = selection.branch.create();\n const scope = mountCompilerHostTree(\n owner,\n this.instance.element,\n descriptor,\n this.requestNestedFallback,\n );\n if (!scope) {\n this.activateFallback(afterCommit);\n return;\n }\n this.instance.scope?.cleanup();\n this.instance.scope = scope;\n applyHostConditionalBindings(selection.branch, this.instance);\n afterCommit?.();\n return;\n }\n\n const descriptor = selection.branch.create();\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const instance = mountCompilerHostInstance(\n owner,\n element,\n descriptor,\n selection.branch,\n this.requestNestedFallback,\n );\n if (!instance) {\n this.activateFallback(afterCommit);\n return;\n }\n this.instance?.scope?.cleanup();\n this.root.replaceChildren(element);\n this.activeBranch = selection.key;\n this.instance = instance;\n afterCommit?.();\n }\n\n private refresh = (afterCommit?: () => void) => {\n this.reconcile(afterCommit);\n };\n\n private listen(): void {\n const id = this.currentProps.id;\n const stop = this.stop;\n if (this.id === id) return;\n stop?.();\n this.stop = owner.subscribe(id, this.refresh);\n this.id = id;\n }\n\n private schedulePropSync(): void {\n if (this.propSyncQueued) return;\n this.propSyncQueued = true;\n queueMicrotask(() => {\n this.propSyncQueued = false;\n if (this.mounted && !this.state.fallback) {\n this.listen();\n this.reconcile();\n }\n });\n }\n\n shouldComponentUpdate(nextProps: CompilerHostConditionalBlockProps, nextState: State): boolean {\n const definitionChanged = this.definitionVersion !== owner.getDefinitionVersion?.();\n this.currentProps = nextProps;\n if (this.state.fallback && nextState.fallback) this.prepareFallbackUpdate();\n if (nextState.fallback || this.state.fallback) return true;\n if (definitionChanged) return true;\n this.schedulePropSync();\n return false;\n }\n\n componentDidMount(): void {\n this.mounted = true;\n this.listen();\n // Replay must restore nested listeners even before the fallback state update commits.\n if (this.state.fallback || this.fallbackRequested) {\n this.subscribeFallbackDescendants();\n this.fallbackKeysWereUnsafe = this.hasUnsafeFallbackKeys();\n } else if (!this.adopt()) this.activateFallback();\n }\n\n componentDidUpdate(): void {\n this.listen();\n const nextDefinitionVersion = owner.getDefinitionVersion?.();\n const definitionChanged = this.definitionVersion !== nextDefinitionVersion;\n this.definitionVersion = nextDefinitionVersion;\n if (this.state.fallback) {\n this.subscribeFallbackDescendants();\n } else if (definitionChanged && !this.adopt()) {\n this.activateFallback();\n }\n }\n\n componentWillUnmount(): void {\n this.mounted = false;\n const stop = this.stop;\n stop?.();\n this.id = undefined;\n clearCompilerFallbackSubscriptions(this.fallbackUnsubscribers);\n this.fallbackKeysWereUnsafe = false;\n this.instance?.scope?.cleanup();\n // React 18 replays lifecycles without detaching refs; captureRoot owns ref cleanup.\n this.activeBranch = null;\n this.instance = null;\n }\n\n render(): React.ReactNode {\n const container = this.currentProps.render();\n if (!React.isValidElement(container) || typeof container.type !== \"string\") {\n throw new TypeError(\n `Compiled host conditional ${this.currentProps.id} must own one host container.`,\n );\n }\n return React.cloneElement(container, {\n key: this.state.fallback ? `react-${this.fallbackVersion}` : \"compiled\",\n ref: this.captureRoot,\n } as React.Attributes);\n }\n }\n\n return FarmHostConditionalBlock;\n}\n\nfunction createConditionalRangesBlockComponent(\n owner: Pick<CompilerRuntimeFeatureOwner, \"subscribe\" | \"getDefinitionVersion\">,\n): React.ComponentType<CompilerConditionalRangesBlockProps> {\n interface State {\n fallback: boolean;\n }\n\n interface ConditionalRangeInstance {\n key: \"truthy\" | \"falsy\";\n host: CompilerHostInstance;\n }\n\n class FarmConditionalRangesBlock extends React.Component<\n CompilerConditionalRangesBlockProps,\n State\n > {\n static displayName = \"FarmCompiledConditionalRanges\";\n\n state: State = { fallback: false };\n private root: Element | null = null;\n private mounted = false;\n private fallbackRequested = false;\n private fallbackVersion = 0;\n private propFallbackQueued = false;\n private currentProps = this.props;\n declare private stop: (() => void) | undefined;\n declare private id: number | undefined;\n private readonly fallbackUnsubscribers = new Map<number, () => void>();\n private fallbackKeysWereUnsafe = false;\n private rangeInstances: Array<ConditionalRangeInstance | null> = [];\n private staticSegments: Element[][] = [];\n private readonly staticValues: unknown[] = [];\n private definitionVersion = owner.getDefinitionVersion?.();\n\n private requestNestedFallback = () => {\n for (const instance of this.rangeInstances) instance?.host.scope?.cleanup();\n this.activateFallback();\n };\n\n private refreshFallbackDescendant: CompilerBlockRefresh = (afterCommit) => {\n this.prepareFallbackUpdate();\n this.forceUpdate(afterCommit);\n };\n\n private subscribeFallbackDescendants(): void {\n const ids = new Set<number>();\n for (const range of this.currentProps.ranges) {\n const selection = hostConditionalSelection(range);\n if (selection.kind === \"branch\") {\n collectActiveCompilerHostBlockIds(selection.branch.create(), ids);\n }\n }\n ids.delete(this.currentProps.id);\n reconcileCompilerFallbackSubscriptions(\n owner,\n this.fallbackUnsubscribers,\n ids,\n this.refreshFallbackDescendant,\n );\n }\n\n private hasUnsafeFallbackKeys(): boolean {\n try {\n for (const range of this.currentProps.ranges) {\n const selection = hostConditionalSelection(range);\n if (\n selection.kind === \"branch\" &&\n hasUnsafeCompilerFallbackKeys(selection.branch.create())\n ) {\n return true;\n }\n }\n return false;\n } catch {\n return true;\n }\n }\n\n private prepareFallbackUpdate(): void {\n const unsafeKeys = this.hasUnsafeFallbackKeys();\n if (unsafeKeys || this.fallbackKeysWereUnsafe) this.fallbackVersion += 1;\n this.fallbackKeysWereUnsafe = unsafeKeys;\n }\n\n private captureRoot = (root: Element | null) => {\n this.root = root;\n this.currentProps.rootRef?.(root);\n };\n\n private readSelections(\n props: CompilerConditionalRangesBlockProps,\n ): CompilerHostConditionalPreparedSelection[] | null {\n const selections: CompilerHostConditionalPreparedSelection[] = [];\n for (const range of props.ranges) {\n const selection = hostConditionalSelection(range);\n if (selection.kind === \"fallback\") return null;\n selections.push(selection);\n }\n return selections;\n }\n\n private adopt(props: CompilerConditionalRangesBlockProps = this.currentProps): boolean {\n if (!this.root || !Number.isSafeInteger(props.trailing) || props.trailing < 0) return false;\n const selections = this.readSelections(props);\n if (!selections) return false;\n const elements = [...this.root.children];\n const staticSegments: Element[][] = [];\n const instances: Array<ConditionalRangeInstance | null> = [];\n const staticValues = this.staticValues.slice();\n const cleanupInstances = () => {\n for (const instance of instances) instance?.host.scope?.cleanup();\n };\n let cursor = 0;\n\n for (let rangeIndex = 0; rangeIndex < props.ranges.length; rangeIndex += 1) {\n const range = props.ranges[rangeIndex];\n if (!Number.isSafeInteger(range.before) || range.before < 0) {\n cleanupInstances();\n return false;\n }\n const staticEnd = cursor + range.before;\n if (staticEnd > elements.length) {\n cleanupInstances();\n return false;\n }\n staticSegments.push(elements.slice(cursor, staticEnd));\n cursor = staticEnd;\n\n const selection = selections[rangeIndex];\n if (selection.kind === \"empty\") {\n instances.push(null);\n continue;\n }\n const element = elements[cursor];\n if (!element) {\n cleanupInstances();\n return false;\n }\n const descriptor = selection.branch.create();\n if (!matchesCompilerHostElement(element, descriptor)) {\n cleanupInstances();\n return false;\n }\n const host = mountCompilerHostInstance(\n owner,\n element,\n descriptor,\n selection.branch,\n this.requestNestedFallback,\n false, // Commit only after every sibling range validates.\n );\n if (!host) {\n cleanupInstances();\n return false;\n }\n instances.push({\n key: selection.key,\n host,\n });\n try {\n if (!prepareHostConditionalBindings(selection.branch, host)) {\n cleanupInstances();\n return false;\n }\n } catch (error) {\n cleanupInstances();\n throw error;\n }\n cursor += 1;\n }\n\n if (cursor + props.trailing !== elements.length) {\n cleanupInstances();\n return false;\n }\n staticSegments.push(elements.slice(cursor));\n try {\n if (!applyStaticRangeBindings(props.bindings, staticSegments, staticValues)) {\n cleanupInstances();\n return false;\n }\n for (let index = 0; index < selections.length; index += 1) {\n const selection = selections[index];\n const instance = instances[index];\n if (selection.kind === \"branch\" && instance) {\n applyPreparedHostConditionalBindings(selection.branch, instance.host);\n }\n }\n } catch (error) {\n cleanupInstances();\n throw error;\n }\n for (const instance of this.rangeInstances) instance?.host.scope?.cleanup();\n this.staticSegments = staticSegments;\n this.rangeInstances = instances;\n this.staticValues.length = 0;\n this.staticValues.push(...staticValues);\n return true;\n }\n\n private anchorAfter(rangeIndex: number): ChildNode | null {\n for (let next = rangeIndex + 1; next < this.rangeInstances.length; next += 1) {\n const staticAnchor = this.staticSegments[next]?.[0];\n if (staticAnchor) return staticAnchor;\n const rangeAnchor = this.rangeInstances[next]?.host.element;\n if (rangeAnchor) return rangeAnchor;\n }\n return this.staticSegments[this.rangeInstances.length]?.[0] || null;\n }\n\n private reconcileRange(\n rangeIndex: number,\n selection: CompilerHostConditionalPreparedSelection,\n ): boolean {\n if (!this.root) return false;\n const previous = this.rangeInstances[rangeIndex];\n if (selection.kind === \"empty\") {\n previous?.host.scope?.cleanup();\n previous?.host.element.remove();\n this.rangeInstances[rangeIndex] = null;\n return true;\n }\n if (previous?.key === selection.key) {\n const descriptor = selection.branch.create();\n const scope = mountCompilerHostTree(\n owner,\n previous.host.element,\n descriptor,\n this.requestNestedFallback,\n );\n if (!scope) {\n this.requestNestedFallback();\n return false;\n }\n previous.host.scope?.cleanup();\n previous.host.scope = scope;\n applyHostConditionalBindings(selection.branch, previous.host);\n return true;\n }\n\n const descriptor = selection.branch.create();\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const host = mountCompilerHostInstance(\n owner,\n element,\n descriptor,\n selection.branch,\n this.requestNestedFallback,\n );\n if (!host) {\n this.requestNestedFallback();\n return false;\n }\n previous?.host.scope?.cleanup();\n if (previous) previous.host.element.replaceWith(element);\n else this.root.insertBefore(element, this.anchorAfter(rangeIndex));\n this.rangeInstances[rangeIndex] = {\n key: selection.key,\n host,\n };\n return true;\n }\n\n private reconcile(afterCommit?: () => void): void {\n if (!this.mounted || !this.root) {\n afterCommit?.();\n return;\n }\n if (this.state.fallback) {\n this.prepareFallbackUpdate();\n this.forceUpdate(afterCommit);\n return;\n }\n if (this.currentProps.ranges.length !== this.rangeInstances.length) {\n this.activateFallback(afterCommit);\n return;\n }\n const selections = this.readSelections(this.currentProps);\n if (!selections) {\n this.activateFallback(afterCommit);\n return;\n }\n if (\n !applyStaticRangeBindings(\n this.currentProps.bindings,\n this.staticSegments,\n this.staticValues,\n )\n ) {\n this.activateFallback(afterCommit);\n return;\n }\n\n for (let rangeIndex = this.rangeInstances.length - 1; rangeIndex >= 0; rangeIndex -= 1) {\n if (!this.reconcileRange(rangeIndex, selections[rangeIndex])) {\n afterCommit?.();\n return;\n }\n }\n afterCommit?.();\n }\n\n private refresh = (afterCommit?: () => void) => {\n this.reconcile(afterCommit);\n };\n\n private listen(): void {\n const id = this.currentProps.id;\n const stop = this.stop;\n if (this.id === id) return;\n stop?.();\n this.stop = owner.subscribe(id, this.refresh);\n this.id = id;\n }\n\n private activateFallback(afterCommit?: () => void): void {\n if (!this.mounted || this.state.fallback || this.fallbackRequested) {\n afterCommit?.();\n return;\n }\n this.fallbackRequested = true;\n for (const instance of this.rangeInstances) instance?.host.scope?.cleanup();\n this.subscribeFallbackDescendants();\n this.fallbackKeysWereUnsafe = this.hasUnsafeFallbackKeys();\n this.setState({ fallback: true }, afterCommit);\n }\n\n private schedulePropFallback(): void {\n if (this.propFallbackQueued) return;\n this.propFallbackQueued = true;\n queueMicrotask(() => {\n this.propFallbackQueued = false;\n if (this.mounted && !this.state.fallback) {\n this.listen();\n this.activateFallback();\n }\n });\n }\n\n shouldComponentUpdate(\n nextProps: CompilerConditionalRangesBlockProps,\n nextState: State,\n ): boolean {\n const definitionChanged = this.definitionVersion !== owner.getDefinitionVersion?.();\n this.currentProps = nextProps;\n if (this.state.fallback && nextState.fallback) this.prepareFallbackUpdate();\n if (nextState.fallback || this.state.fallback) return true;\n if (definitionChanged) return true;\n this.schedulePropFallback();\n return false;\n }\n\n componentDidMount(): void {\n this.mounted = true;\n this.listen();\n // Replay must restore nested listeners even before the fallback state update commits.\n if (this.state.fallback || this.fallbackRequested) {\n this.subscribeFallbackDescendants();\n this.fallbackKeysWereUnsafe = this.hasUnsafeFallbackKeys();\n } else if (!this.adopt()) this.activateFallback();\n }\n\n componentDidUpdate(): void {\n this.listen();\n const nextDefinitionVersion = owner.getDefinitionVersion?.();\n const definitionChanged = this.definitionVersion !== nextDefinitionVersion;\n this.definitionVersion = nextDefinitionVersion;\n if (this.state.fallback) {\n this.subscribeFallbackDescendants();\n } else if (definitionChanged && !this.adopt()) {\n this.activateFallback();\n }\n }\n\n componentWillUnmount(): void {\n this.mounted = false;\n const stop = this.stop;\n stop?.();\n this.id = undefined;\n clearCompilerFallbackSubscriptions(this.fallbackUnsubscribers);\n this.fallbackKeysWereUnsafe = false;\n for (const instance of this.rangeInstances) instance?.host.scope?.cleanup();\n // Keep the attached root for React 18 replay; captureRoot clears real detachments.\n this.rangeInstances = [];\n this.staticSegments = [];\n this.staticValues.length = 0;\n }\n\n render(): React.ReactNode {\n const container = this.currentProps.render();\n if (!React.isValidElement(container) || typeof container.type !== \"string\") {\n throw new TypeError(\n `Compiled conditional ranges ${this.currentProps.id} must own one host container.`,\n );\n }\n return React.cloneElement(container, {\n key: this.state.fallback ? `react-${this.fallbackVersion}` : \"compiled\",\n ref: this.captureRoot,\n } as React.Attributes);\n }\n }\n\n return FarmConditionalRangesBlock;\n}\n\n/** Returns positions forming the LIS while ignoring newly inserted (-1) entries. */\nfunction longestIncreasingSubsequencePositions(sequence: readonly number[]): Set<number> {\n const tails: number[] = [];\n const previous = Array.from({ length: sequence.length }, () => -1);\n\n for (let index = 0; index < sequence.length; index += 1) {\n if (sequence[index] < 0) continue;\n let low = 0;\n let high = tails.length;\n while (low < high) {\n const middle = (low + high) >> 1;\n if (sequence[tails[middle]] < sequence[index]) low = middle + 1;\n else high = middle;\n }\n if (low > 0) previous[index] = tails[low - 1];\n tails[low] = index;\n }\n\n const positions = new Set<number>();\n let cursor = tails.at(-1) ?? -1;\n while (cursor >= 0) {\n positions.add(cursor);\n cursor = previous[cursor];\n }\n return positions;\n}\n\nfunction reorderCompilerKeyedRows(\n root: Element,\n instances: readonly CompilerKeyedRowInstance[],\n sequence: readonly number[],\n anchor: ChildNode | null,\n): void {\n const activeElement = compilerFocusedElement(root);\n const stablePositions = longestIncreasingSubsequencePositions(sequence);\n for (let index = instances.length - 1; index >= 0; index -= 1) {\n const instance = instances[index];\n if (sequence[index] < 0) {\n let start = index;\n while (start > 0 && sequence[start - 1] < 0) start -= 1;\n const fragment = root.ownerDocument.createDocumentFragment();\n for (let itemIndex = start; itemIndex <= index; itemIndex += 1) {\n fragment.append(instances[itemIndex].element);\n }\n root.insertBefore(fragment, anchor);\n anchor = instances[start].element;\n index = start;\n } else {\n if (!stablePositions.has(index) && instance.element.nextSibling !== anchor) {\n root.insertBefore(instance.element, anchor);\n }\n anchor = instance.element;\n }\n }\n restoreCompilerFocus(activeElement);\n}\n\nfunction compilerFocusedElement(root: Element): Element | null {\n const activeElement = root.ownerDocument.activeElement;\n return activeElement && root.contains(activeElement) ? activeElement : null;\n}\n\nfunction restoreCompilerFocus(activeElement: Element | null): void {\n if (\n activeElement?.isConnected &&\n activeElement.ownerDocument.activeElement !== activeElement &&\n \"focus\" in activeElement\n ) {\n (activeElement as HTMLElement).focus({ preventScroll: true });\n }\n}\n\nfunction reverseCompilerKeyedRows(root: Element, instances: CompilerKeyedRowInstance[]): void {\n const activeElement = compilerFocusedElement(root);\n let anchor = instances[0]?.element || null;\n for (let sourceIndex = 1; sourceIndex < instances.length; sourceIndex += 1) {\n const element = instances[sourceIndex].element;\n root.insertBefore(element, anchor);\n anchor = element;\n }\n instances.reverse();\n for (let index = 0; index < instances.length; index += 1) {\n instances[index].index = index;\n }\n restoreCompilerFocus(activeElement);\n}\n\ntype RowConditionalRefresh = (item: unknown, index: number, afterCommit?: () => void) => void;\n\ninterface RowConditionalOwner {\n subscribe(key: string, id: number, refresh: RowConditionalRefresh): () => void;\n}\n\ninterface RowConditionalProps {\n owner: RowConditionalOwner;\n rowKey: string;\n id: number;\n renderVersion: number;\n item: unknown;\n index: number;\n render(item: unknown, index: number): React.ReactNode;\n}\n\ninterface RowConditionalState {\n renderVersion: number;\n item: unknown;\n index: number;\n}\n\ninterface KeyedRowConditionalRuntime {\n Component: React.ComponentType<RowConditionalProps>;\n readValues(\n props: Pick<CompilerKeyedRowsBlockProps, \"conditionals\">,\n item: unknown,\n index: number,\n ): ReadonlyMap<number, readonly unknown[]>;\n changed(previous: readonly unknown[] | undefined, next: readonly unknown[]): boolean;\n}\n\ninterface KeyedRowHostRuntime {\n mount(\n element: Element,\n descriptor: CompilerHostElement,\n requestFallback: () => void,\n ): CompilerHostTreeScope | null;\n}\n\ninterface KeyedUpdateRuntime {\n commit(\n value: unknown,\n instances?: ReadonlyMap<string, CompilerKeyedRowInstance>,\n ): object | undefined;\n append(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n ): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined;\n // Returns a fresh runtime-owned native map after validating all retained rows.\n filter?(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n reactOwnedRows: boolean,\n ): Map<string, CompilerKeyedRowInstance> | undefined;\n // Transfers a fresh runtime-owned native map after validating the full update.\n prepend?(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n ): Map<string, CompilerKeyedRowInstance> | undefined;\n rollingWindow?(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n ): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined;\n // Returns the owned input for binding-only updates, or a fresh owned native map.\n position?(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: Map<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n ): Map<string, CompilerKeyedRowInstance> | undefined;\n // Returns a runtime-owned native map containing only retained row instances:\n // reorders may remove rows, but never create or replace their root elements.\n reorder?(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: Map<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n ): Map<string, CompilerKeyedRowInstance> | undefined;\n reconcile(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n conditionals: KeyedRowConditionalRuntime | undefined,\n ):\n | {\n collectionToken: object | undefined;\n conditionalChanges: readonly {\n key: string;\n id: number;\n item: unknown;\n index: number;\n }[];\n fallback: boolean;\n }\n | undefined;\n}\n\nconst keyedUpdateRuntime: KeyedUpdateRuntime = {\n append: reconcileCompilerKeyedArrayAppend,\n commit: commitCompilerKeyedCollection,\n reconcile: reconcileCompilerKeyedMapUpdate,\n};\n\nconst keyedFilterUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedUpdateRuntime,\n filter: reconcileCompilerKeyedArrayFilter,\n};\n\n// Only selected when the compiler emits removal hints without map/append hints.\n// Other updates continue through the existing full keyed reconciliation path.\nconst keyedFilterOnlyUpdateRuntime: KeyedUpdateRuntime = {\n append: () => undefined,\n commit: commitCompilerKeyedCollection,\n reconcile: () => undefined,\n filter: reconcileCompilerKeyedArrayFilter,\n};\n\nconst keyedPrependUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedUpdateRuntime,\n prepend: reconcileCompilerKeyedArrayPrepend,\n};\n\nconst keyedFilterPrependUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedFilterUpdateRuntime,\n prepend: reconcileCompilerKeyedArrayPrepend,\n};\n\nconst keyedStructuralPrependUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedFilterPrependUpdateRuntime,\n prepend: reconcileCompilerKeyedArrayPrependWithStructural,\n};\n\nconst keyedPositionUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedUpdateRuntime,\n position: reconcileCompilerKeyedArrayPosition,\n};\n\nconst keyedBatchPositionUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedUpdateRuntime,\n position: reconcileCompilerKeyedArrayPositionWithBatch,\n};\n\nconst keyedWindowPositionUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedUpdateRuntime,\n position: reconcileCompilerKeyedArrayPositionWithWindow,\n};\n\nconst keyedReorderUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedUpdateRuntime,\n reorder: reconcileCompilerKeyedArrayReorder,\n};\n\nconst keyedMapReorderUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedUpdateRuntime,\n reorder: reconcileCompilerKeyedArrayReorderWithMap,\n};\n\nconst keyedCompleteUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedFilterPrependUpdateRuntime,\n rollingWindow: reconcileCompilerKeyedArrayRollingWindow,\n};\n\nconst keyedEveryUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedCompleteUpdateRuntime,\n position: reconcileCompilerKeyedArrayPosition,\n reorder: reconcileCompilerKeyedArrayReorderWithMapAndStructural,\n};\n\nconst keyedBatchEveryUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedEveryUpdateRuntime,\n position: reconcileCompilerKeyedArrayPositionWithBatch,\n};\n\nconst keyedWindowEveryUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedEveryUpdateRuntime,\n position: reconcileCompilerKeyedArrayPositionWithWindow,\n};\n\nconst keyedWindowEveryStructuralAppendUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedWindowEveryUpdateRuntime,\n append: reconcileCompilerKeyedArrayAppendWithStructural,\n};\n\nconst keyedWindowEveryStructuralAppendMapUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedWindowEveryStructuralAppendUpdateRuntime,\n append: reconcileCompilerKeyedArrayAppendMapWithStructural,\n commit: commitCompilerKeyedCollectionWithItemSnapshot,\n};\n\nconst keyedCompleteCompatibilityUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedWindowEveryStructuralAppendMapUpdateRuntime,\n prepend: reconcileCompilerKeyedArrayPrependWithStructural,\n};\n\nconst keyedCompleteStructuralPrependMapUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedCompleteCompatibilityUpdateRuntime,\n prepend: reconcileCompilerKeyedArrayPrependMapWithStructural,\n};\n\nconst keyedMappedRollingWindowUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedCompleteStructuralPrependMapUpdateRuntime,\n rollingWindow: reconcileCompilerKeyedArrayMappedRollingWindow,\n};\n\ninterface KeyedRowsRuntimeOptions {\n conditionals?: KeyedRowConditionalRuntime;\n hostBlocks?: KeyedRowHostRuntime;\n keyedUpdates?: KeyedUpdateRuntime;\n keyedTargets?: (props: CompilerKeyedRowsBlockProps) => KeyedTargetRuntime | undefined;\n}\n\nfunction reconcileCompilerKeyedMapUpdate(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n conditionals: KeyedRowConditionalRuntime | undefined,\n): ReturnType<KeyedUpdateRuntime[\"reconcile\"]> {\n const dependency = props.collectionDependency;\n if (dependency === undefined) return undefined;\n const dependencies = props.dependencies || props.structureDependencies || [];\n const relevantDirty = [...dirtyState].filter((index) => dependencies.includes(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== dependency) return undefined;\n\n const finalValue = props.items();\n const hintedIndices = compilerKeyedMapChangedIndices(finalValue, collectionToken);\n if (!hintedIndices || !Array.isArray(finalValue) || finalValue.length !== instances.size) {\n return undefined;\n }\n\n const changedIndices = [...new Set(hintedIndices)].sort((left, right) => left - right);\n const updates: Array<{\n key: string;\n item: unknown;\n index: number;\n instance: CompilerKeyedRowInstance;\n }> = [];\n try {\n for (const index of changedIndices) {\n if (!Number.isSafeInteger(index) || index < 0 || index >= finalValue.length) return undefined;\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n const instance = instances.get(key);\n if (!instance || instance.index !== index) return undefined;\n updates.push({ key, item, index, instance });\n }\n } catch {\n return undefined;\n }\n\n const conditionalChanges: Array<{\n key: string;\n id: number;\n item: unknown;\n index: number;\n }> = [];\n for (const { key, item, index, instance } of updates) {\n if (props.hostBlocks) {\n const descriptor = props.create(item, index);\n if (!instance.scope?.update(descriptor)) {\n return { collectionToken, conditionalChanges: [], fallback: true };\n }\n }\n applyKeyedRowBindings(props, instance, item, index);\n const conditionalValues =\n conditionals?.readValues(props, item, index) || EMPTY_KEYED_ROW_CONDITIONAL_VALUES;\n for (const [id, values] of conditionalValues) {\n if (conditionals?.changed(instance.conditionalValues.get(id), values)) {\n conditionalChanges.push({ key, id, item, index });\n }\n }\n instance.conditionalValues = conditionalValues;\n instance.item = item;\n }\n return {\n collectionToken: commitCompilerKeyedCollection(finalValue),\n conditionalChanges,\n fallback: false,\n };\n}\n\nfunction reconcileCompilerKeyedArrayMapReorder(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: Map<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n preparedReorder?: CompilerPreparedKeyedArrayReorder,\n): Map<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.reorderIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n const finalValue = preparedReorder?.value ?? props.items();\n const update =\n preparedReorder?.update ||\n compilerKeyedArrayReorder(finalValue, collectionToken, instances.size);\n if (\n !update?.mapped ||\n !update.mappedItemSources ||\n update.structuralUpdate ||\n !Array.isArray(finalValue)\n ) {\n return undefined;\n }\n\n const previousInstances = [...instances.values()];\n const reverse = update.kind === CompilerKeyedArrayReorderKind.Reverse;\n const prepared = (() => {\n const changed: Array<{\n bindingUpdates: CompilerPreparedKeyedRowBindingUpdate[];\n instance: CompilerKeyedRowInstance;\n item: unknown;\n }> = [];\n try {\n const instancesByItem =\n update.kind === CompilerKeyedArrayReorderKind.Permutation\n ? new Map<unknown, CompilerKeyedRowInstance>()\n : undefined;\n if (instancesByItem) {\n for (let sourceIndex = 0; sourceIndex < previousInstances.length; sourceIndex += 1) {\n const instance = previousInstances[sourceIndex];\n if (instance.index !== sourceIndex || instancesByItem.has(instance.item))\n return undefined;\n instancesByItem.set(instance.item, instance);\n }\n }\n\n const nextInstances: CompilerKeyedRowInstance[] = instancesByItem ? [] : previousInstances;\n const sequence: number[] | undefined = instancesByItem ? [] : undefined;\n for (let targetIndex = 0; targetIndex < finalValue.length; targetIndex += 1) {\n const item = finalValue[targetIndex];\n let instance: CompilerKeyedRowInstance | undefined;\n if (!instancesByItem) {\n const sourceIndex = reverse ? finalValue.length - targetIndex - 1 : targetIndex;\n instance = previousInstances[sourceIndex];\n if (!instance || instance.index !== sourceIndex) return undefined;\n if (Object.is(instance.item, item)) continue;\n if (\n !update.mappedItemSources.has(item) ||\n !Object.is(instance.item, update.mappedItemSources.get(item))\n ) {\n return undefined;\n }\n } else {\n const sourceItem = update.mappedItemSources.has(item)\n ? update.mappedItemSources.get(item)\n : item;\n instance = instancesByItem!.get(sourceItem);\n if (!instance) return undefined;\n instancesByItem!.delete(sourceItem);\n nextInstances.push(instance);\n sequence!.push(instance.index);\n if (Object.is(instance.item, item)) continue;\n }\n if (keyedRowIdentity(props.rowKey(item, targetIndex)) !== instance.key) return undefined;\n const bindingUpdates = prepareKeyedRowBindingUpdates(props, instance, item, targetIndex);\n if (!bindingUpdates) return undefined;\n changed.push({ bindingUpdates, instance, item });\n }\n if (instancesByItem?.size) return undefined;\n return { changed, nextInstances, sequence };\n } catch {\n return undefined;\n }\n })();\n if (!prepared) return undefined;\n\n if (prepared.sequence) {\n reorderCompilerKeyedRows(root, prepared.nextInstances, prepared.sequence, null);\n } else if (reverse) {\n reverseCompilerKeyedRows(root, prepared.nextInstances);\n }\n for (const { bindingUpdates, instance, item } of prepared.changed) {\n applyPreparedKeyedRowBindingUpdates(props, instance, bindingUpdates);\n instance.item = item;\n }\n for (let index = 0; index < prepared.nextInstances.length; index += 1) {\n prepared.nextInstances[index].index = index;\n }\n return reverse || prepared.sequence ? keyedRowInstancesByKey(prepared.nextInstances) : instances;\n}\n\nfunction reconcileCompilerKeyedArrayAppend(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReturnType<KeyedUpdateRuntime[\"append\"]> {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n // Existing rows may read the collection itself (for example,\n // `rows.length`). Appending would need to refresh those rows too, so keep\n // the complete keyed reconciliation path for that shape.\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const startIndex = compilerKeyedArrayAppendStart(finalValue, collectionToken, instances.size);\n if (startIndex === undefined || !Array.isArray(finalValue)) return undefined;\n\n const nextInstances = new Map(instances);\n const appended: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = startIndex; index < finalValue.length; index += 1) {\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n if (nextInstances.has(key)) return undefined;\n const descriptor = props.create(item, index);\n const instance: CompilerKeyedRowInstance = {\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n };\n appended.push(instance);\n nextInstances.set(key, instance);\n }\n } catch {\n return undefined;\n }\n\n if (appended.length > 0) {\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of appended) fragment.append(instance.element);\n root.append(fragment);\n }\n return nextInstances;\n}\n\nfunction reconcileCompilerKeyedArrayStructuralAppend(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.filterIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const update = compilerKeyedArrayStructuralAppendUpdate(\n finalValue,\n collectionToken,\n instances.size,\n );\n const structuralUpdate = update?.structuralUpdate;\n const survivorResult = update?.structuralSurvivors;\n if (\n !update ||\n !structuralUpdate ||\n !survivorResult ||\n structuralUpdate.mappedItemSources ||\n !Array.isArray(finalValue)\n ) {\n return undefined;\n }\n\n const previousInstances = [...instances.values()];\n const survivors: CompilerKeyedRowInstance[] = [];\n const knownKeys = new Set(instances.keys());\n const appended: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = 0; index < survivorResult.indices.length; index += 1) {\n const sourceIndex = survivorResult.indices[index];\n const instance = previousInstances[sourceIndex];\n const item = finalValue[index];\n if (\n !instance ||\n instance.index !== sourceIndex ||\n !Object.is(instance.item, item) ||\n (!survivorResult.keysStable && keyedRowIdentity(props.rowKey(item, index)) !== instance.key)\n ) {\n return undefined;\n }\n survivors.push(instance);\n }\n for (let index = update.startIndex; index < finalValue.length; index += 1) {\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n // A new suffix row that reuses any committed key must take complete\n // reconciliation so React can preserve that row's existing identity.\n if (knownKeys.has(key)) return undefined;\n knownKeys.add(key);\n const descriptor = props.create(item, index);\n appended.push({\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n });\n }\n } catch {\n return undefined;\n }\n\n const survivorSet = new Set(survivorResult.indices);\n for (let index = 0; index < previousInstances.length; index += 1) {\n if (survivorSet.has(index)) continue;\n previousInstances[index].scope?.cleanup();\n previousInstances[index].element.remove();\n }\n for (let index = 0; index < survivors.length; index += 1) survivors[index].index = index;\n if (appended.length > 0) {\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of appended) fragment.append(instance.element);\n root.append(fragment);\n }\n return keyedRowInstancesByKey([...survivors, ...appended]);\n}\n\nfunction reconcileCompilerKeyedArrayStructuralAppendMap(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.filterIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const update = compilerKeyedArrayStructuralAppendMapUpdate(\n finalValue,\n collectionToken,\n instances.size,\n true,\n );\n if (!update || !update.mappedItemSources || !Array.isArray(finalValue)) return undefined;\n\n const mappedItemSources = update.mappedSurvivorsValidated\n ? (update.mappedItemSources as ReadonlyMap<number, unknown>)\n : undefined;\n const mappedStructuralSources = update.mappedSurvivorsValidated\n ? undefined\n : (update.mappedItemSources as CompilerMappedItemSources);\n\n const previousInstances = [...instances.values()];\n const survivorRange = update.structuralSurvivorRange;\n const survivorIndices = update.structuralSurvivors;\n const survivorCount = survivorRange\n ? survivorRange.end - survivorRange.start\n : (survivorIndices?.length ?? 0);\n if (!survivorRange && !survivorIndices) return undefined;\n const changed: Array<{\n bindingUpdates: CompilerPreparedKeyedRowBindingUpdate[];\n instance: CompilerKeyedRowInstance;\n item: unknown;\n }> = [];\n const appendedKeys = new Set<string>();\n const appended: CompilerKeyedRowInstance[] = [];\n try {\n if (mappedStructuralSources) {\n for (let index = 0; index < survivorCount; index += 1) {\n const sourceIndex = survivorRange ? survivorRange.start + index : survivorIndices![index];\n const instance = previousInstances[sourceIndex];\n const item = finalValue[index];\n const sourceItem = mappedStructuralSources.has(item)\n ? mappedStructuralSources.get(item)\n : item;\n if (!instance || instance.index !== sourceIndex || !Object.is(instance.item, sourceItem)) {\n return undefined;\n }\n }\n for (let index = 0; index < survivorCount; index += 1) {\n const sourceIndex = survivorRange ? survivorRange.start + index : survivorIndices![index];\n const instance = previousInstances[sourceIndex];\n const item = finalValue[index];\n const sourceItem = mappedStructuralSources.has(item)\n ? mappedStructuralSources.get(item)\n : item;\n if (Object.is(item, sourceItem)) continue;\n if (keyedRowIdentity(props.rowKey(item, index)) !== instance.key) return undefined;\n const bindingUpdates = prepareKeyedRowBindingUpdates(props, instance, item, index);\n if (!bindingUpdates) return undefined;\n changed.push({ bindingUpdates, instance, item });\n }\n } else if (survivorIndices) {\n for (let index = 0; index < survivorCount; index += 1) {\n const sourceIndex = survivorIndices[index];\n const instance = previousInstances[sourceIndex];\n const item = finalValue[index];\n const expectedItem = mappedItemSources!.has(index) ? mappedItemSources!.get(index) : item;\n if (\n !instance ||\n instance.index !== sourceIndex ||\n !Object.is(instance.item, expectedItem)\n ) {\n return undefined;\n }\n }\n }\n for (const [index, sourceItem] of mappedItemSources || []) {\n if (!Number.isSafeInteger(index) || index < 0 || index >= survivorCount) {\n return undefined;\n }\n const instance =\n previousInstances[survivorRange ? survivorRange.start + index : survivorIndices![index]];\n const item = finalValue[index];\n if (\n !instance ||\n !Object.is(instance.item, sourceItem) ||\n keyedRowIdentity(props.rowKey(item, index)) !== instance.key\n ) {\n return undefined;\n }\n const bindingUpdates = prepareKeyedRowBindingUpdates(props, instance, item, index);\n if (!bindingUpdates) return undefined;\n changed.push({ bindingUpdates, instance, item });\n }\n for (let index = update.startIndex; index < finalValue.length; index += 1) {\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n if (instances.has(key) || appendedKeys.has(key)) return undefined;\n appendedKeys.add(key);\n const descriptor = props.create(item, index);\n appended.push({\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n });\n }\n } catch {\n return undefined;\n }\n\n const mutableInstances = instances as Map<string, CompilerKeyedRowInstance>;\n if (survivorRange) {\n for (let index = 0; index < survivorRange.start; index += 1) {\n const instance = previousInstances[index];\n instance.scope?.cleanup();\n instance.element.remove();\n mutableInstances.delete(instance.key);\n }\n for (let index = survivorRange.end; index < previousInstances.length; index += 1) {\n const instance = previousInstances[index];\n instance.scope?.cleanup();\n instance.element.remove();\n mutableInstances.delete(instance.key);\n }\n for (let index = survivorRange.start; index < survivorRange.end; index += 1) {\n previousInstances[index].index = index - survivorRange.start;\n }\n } else {\n const survivorSet = new Set(survivorIndices);\n for (let index = 0; index < previousInstances.length; index += 1) {\n if (survivorSet.has(index)) continue;\n const instance = previousInstances[index];\n instance.scope?.cleanup();\n instance.element.remove();\n mutableInstances.delete(instance.key);\n }\n for (let index = 0; index < survivorIndices!.length; index += 1) {\n previousInstances[survivorIndices![index]].index = index;\n }\n }\n if (appended.length > 0) {\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of appended) {\n fragment.append(instance.element);\n mutableInstances.set(instance.key, instance);\n }\n root.append(fragment);\n }\n for (const { bindingUpdates, instance, item } of changed) {\n applyPreparedKeyedRowBindingUpdates(props, instance, bindingUpdates);\n instance.item = item;\n }\n return mutableInstances;\n}\n\nfunction reconcileCompilerKeyedArrayAppendWithStructural(\n ...args: Parameters<typeof reconcileCompilerKeyedArrayAppend>\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n return (\n reconcileCompilerKeyedArrayStructuralAppend(...args) ||\n reconcileCompilerKeyedArrayAppend(...args)\n );\n}\n\nfunction reconcileCompilerKeyedArrayAppendMapWithStructural(\n ...args: Parameters<typeof reconcileCompilerKeyedArrayAppend>\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n return (\n reconcileCompilerKeyedArrayStructuralAppendMap(...args) ||\n reconcileCompilerKeyedArrayStructuralAppend(...args) ||\n reconcileCompilerKeyedArrayAppend(...args)\n );\n}\n\nfunction reconcileCompilerKeyedArrayRollingWindow(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.filterIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const updates = compilerKeyedArrayRollingWindows(finalValue, collectionToken, instances.size);\n if (!updates || !Array.isArray(finalValue)) return undefined;\n const previousInstances = [...instances.values()];\n let retainedStart = 0;\n for (const update of updates) {\n retainedStart += Math.min(update.retainedStart, previousInstances.length - retainedStart);\n }\n const retainedLength = previousInstances.length - retainedStart;\n const survivors: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = 0; index < retainedLength; index += 1) {\n const sourceIndex = retainedStart + index;\n const instance = previousInstances[sourceIndex];\n if (\n !instance ||\n instance.index !== sourceIndex ||\n !Object.is(instance.item, finalValue[index])\n ) {\n return undefined;\n }\n survivors.push(instance);\n }\n } catch {\n return undefined;\n }\n\n const knownKeys = new Set(instances.keys());\n const incoming: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = retainedLength; index < finalValue.length; index += 1) {\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n // Reusing any key from the committed window must take the complete keyed\n // reconciliation path so React-owned row identity is never recreated.\n if (knownKeys.has(key)) return undefined;\n knownKeys.add(key);\n const descriptor = props.create(item, index);\n incoming.push({\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n });\n }\n } catch {\n return undefined;\n }\n\n for (let index = 0; index < retainedStart; index += 1) {\n previousInstances[index].scope?.cleanup();\n previousInstances[index].element.remove();\n }\n for (let index = 0; index < survivors.length; index += 1) survivors[index].index = index;\n if (incoming.length > 0) {\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of incoming) fragment.append(instance.element);\n root.append(fragment);\n }\n return new Map([...survivors, ...incoming].map((instance) => [instance.key, instance]));\n}\n\nfunction reconcileCompilerKeyedArrayMappedRollingWindow(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.filterIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n const finalValue = props.items();\n const rollingWindow = compilerKeyedArrayMappedRollingWindows(\n finalValue,\n collectionToken,\n instances.size,\n );\n if (!rollingWindow || !Array.isArray(finalValue)) return undefined;\n const { mapped, updates } = rollingWindow;\n const previousInstances = [...instances.values()];\n let retainedStart = 0;\n for (const update of updates) {\n retainedStart += Math.min(update.retainedStart, previousInstances.length - retainedStart);\n }\n const retainedLength = previousInstances.length - retainedStart;\n const survivors: CompilerKeyedRowInstance[] = [];\n const changed: Array<{\n bindingUpdates: CompilerPreparedKeyedRowBindingUpdate[];\n instance: CompilerKeyedRowInstance;\n item: unknown;\n }> = [];\n try {\n for (let index = 0; index < retainedLength; index += 1) {\n const sourceIndex = retainedStart + index;\n const instance = previousInstances[sourceIndex];\n const item = finalValue[index];\n if (!instance || instance.index !== sourceIndex) return undefined;\n survivors.push(instance);\n if (Object.is(item, instance.item)) continue;\n if (!mapped) return undefined;\n if (keyedRowIdentity(props.rowKey(item, index)) !== instance.key) return undefined;\n const bindingUpdates = prepareKeyedRowBindingUpdates(props, instance, item, index);\n if (!bindingUpdates) return undefined;\n changed.push({ bindingUpdates, instance, item });\n }\n } catch {\n return undefined;\n }\n\n const incomingKeys = new Set<string>();\n const incoming: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = retainedLength; index < finalValue.length; index += 1) {\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n // Reusing any key from the committed window must take the complete keyed\n // reconciliation path so React-owned row identity is never recreated.\n if (instances.has(key) || incomingKeys.has(key)) return undefined;\n incomingKeys.add(key);\n const descriptor = props.create(item, index);\n incoming.push({\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n });\n }\n } catch {\n return undefined;\n }\n\n const mutableInstances = instances as Map<string, CompilerKeyedRowInstance>;\n const removedKeys: string[] = [];\n for (let index = 0; index < retainedStart; index += 1) {\n const instance = previousInstances[index];\n instance.scope?.cleanup();\n instance.element.remove();\n mutableInstances.delete(instance.key);\n removedKeys.push(instance.key);\n }\n for (let index = 0; index < survivors.length; index += 1) survivors[index].index = index;\n if (incoming.length > 0) {\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of incoming) {\n fragment.append(instance.element);\n mutableInstances.set(instance.key, instance);\n }\n root.append(fragment);\n }\n for (const { bindingUpdates, instance, item } of changed) {\n applyPreparedKeyedRowBindingUpdates(props, instance, bindingUpdates);\n instance.item = item;\n }\n COMPILER_KEYED_ROLLING_WINDOW_DELTAS.set(mutableInstances, {\n added: incoming,\n removedKeys,\n });\n return mutableInstances;\n}\n\nfunction reconcileCompilerKeyedArrayPosition(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: Map<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): Map<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.positionIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const update = compilerKeyedArrayPosition(finalValue, collectionToken, instances.size);\n if (!update || !Array.isArray(finalValue)) return undefined;\n const previousInstances = [...instances.values()];\n const previous = previousInstances[update.position];\n\n if (update.kind === \"remove\") {\n const count = update.sourceLength - update.resultLength;\n const removed = previousInstances.slice(update.position, update.position + count);\n if (removed.some((instance, index) => instance.index !== update.position + index)) {\n return undefined;\n }\n for (const instance of removed) {\n instance.scope?.cleanup();\n instance.element.remove();\n }\n previousInstances.splice(update.position, count);\n for (let index = update.position; index < previousInstances.length; index += 1) {\n previousInstances[index].index = index;\n }\n return keyedRowInstancesByKey(previousInstances);\n }\n\n let item: unknown;\n let key: string;\n try {\n item = finalValue[update.position];\n key = keyedRowIdentity(props.rowKey(item, update.position));\n } catch {\n return undefined;\n }\n\n if (update.kind === \"insert\") {\n if (instances.has(key)) return undefined;\n let inserted: CompilerKeyedRowInstance;\n try {\n const descriptor = props.create(item, update.position);\n inserted = {\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, update.position),\n item,\n index: update.position,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n };\n } catch {\n return undefined;\n }\n root.insertBefore(inserted.element, previous?.element || null);\n previousInstances.splice(update.position, 0, inserted);\n for (let index = update.position + 1; index < previousInstances.length; index += 1) {\n previousInstances[index].index = index;\n }\n return keyedRowInstancesByKey(previousInstances);\n }\n\n if (!previous || previous.index !== update.position) return undefined;\n if (key === previous.key) {\n try {\n applyKeyedRowBindings(props, previous, item, update.position);\n } catch {\n return undefined;\n }\n previous.item = item;\n return instances;\n }\n if (instances.has(key)) return undefined;\n\n let replacement: CompilerKeyedRowInstance;\n try {\n const descriptor = props.create(item, update.position);\n replacement = {\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, update.position),\n item,\n index: update.position,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n };\n } catch {\n return undefined;\n }\n previous.scope?.cleanup();\n previous.element.replaceWith(replacement.element);\n previousInstances[update.position] = replacement;\n return keyedRowInstancesByKey(previousInstances);\n}\n\nfunction reconcileCompilerKeyedArrayBatchInsert(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): Map<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.positionIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const update = compilerKeyedArrayBatchInsert(finalValue, collectionToken, instances.size);\n if (!update || !Array.isArray(finalValue)) return undefined;\n const previousInstances = [...instances.values()];\n const insertCount = update.resultLength - update.sourceLength;\n for (let sourceIndex = 0; sourceIndex < update.sourceLength; sourceIndex += 1) {\n const instance = previousInstances[sourceIndex];\n const resultIndex = sourceIndex < update.position ? sourceIndex : sourceIndex + insertCount;\n if (\n !instance ||\n instance.index !== sourceIndex ||\n !Object.is(instance.item, finalValue[resultIndex])\n ) {\n return undefined;\n }\n }\n // The committed map stays unchanged until every incoming row is prepared.\n // Track only the new keys instead of copying the entire committed key set.\n const incomingKeys = new Set<string>();\n const incoming: CompilerKeyedRowInstance[] = [];\n try {\n for (let offset = 0; offset < insertCount; offset += 1) {\n const index = update.position + offset;\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n if (instances.has(key) || incomingKeys.has(key)) return undefined;\n incomingKeys.add(key);\n const descriptor = props.create(item, index);\n incoming.push({\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n });\n }\n } catch {\n return undefined;\n }\n\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of incoming) fragment.append(instance.element);\n root.insertBefore(fragment, previousInstances[update.position]?.element || null);\n previousInstances.splice(update.position, 0, ...incoming);\n for (let index = update.position + insertCount; index < previousInstances.length; index += 1) {\n previousInstances[index].index = index;\n }\n return keyedRowInstancesByKey(previousInstances);\n}\n\ntype CompilerKeyedArrayDisjointWindow = [\n sourcePosition: number,\n currentPosition: number,\n removedCount: number,\n insertedCount: number,\n];\n\nfunction normalizeCompilerKeyedArrayDisjointWindows(\n updates: readonly CompilerKeyedArrayWindowReplaceHint[],\n): CompilerKeyedArrayDisjointWindow[] | undefined {\n const windows: CompilerKeyedArrayDisjointWindow[] = [];\n for (const update of updates) {\n const updateEnd = update.position + update.removedCount;\n let sourcePosition = update.position;\n for (const window of windows) {\n const windowStart = window[1];\n const windowEnd = windowStart + window[3];\n const before = updateEnd <= windowStart;\n const after = window[3] === 0 ? update.position >= windowStart : update.position >= windowEnd;\n if (!before && !after) return undefined;\n if (after) sourcePosition -= window[3] - window[2];\n }\n\n const delta = update.insertedCount - update.removedCount;\n for (const window of windows) {\n if (updateEnd <= window[1]) window[1] += delta;\n }\n windows.push([sourcePosition, update.position, update.removedCount, update.insertedCount]);\n }\n\n windows.sort((left, right) => left[0] - right[0]);\n return windows;\n}\n\ntype CompilerKeyedArrayWindowItems = [items: unknown[], keys: string[]];\n\nfunction readCompilerKeyedArrayWindowItems(\n props: CompilerKeyedRowsBlockProps,\n finalValue: readonly unknown[],\n resultPosition: number,\n insertedCount: number,\n): CompilerKeyedArrayWindowItems | undefined {\n const items: unknown[] = [];\n const keys: string[] = [];\n try {\n for (let offset = 0; offset < insertedCount; offset += 1) {\n const index = resultPosition + offset;\n const item = finalValue[index];\n items.push(item);\n keys.push(keyedRowIdentity(props.rowKey(item, index)));\n }\n } catch {\n return undefined;\n }\n return [items, keys];\n}\n\ntype CompilerPreparedKeyedArrayWindow = [\n removed: CompilerKeyedRowInstance[],\n anchor: ChildNode | null,\n incomingItems: unknown[],\n incomingKeySet: ReadonlySet<string>,\n nextWindow: CompilerKeyedRowInstance[],\n sequence: number[],\n preparedBindings: Array<readonly CompilerPreparedKeyedRowBindingUpdate[] | undefined>,\n];\n\nfunction prepareCompilerKeyedArrayWindow(\n props: CompilerKeyedRowsBlockProps,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n previousInstances: readonly CompilerKeyedRowInstance[],\n root: Element,\n window: CompilerKeyedArrayDisjointWindow,\n incoming: CompilerKeyedArrayWindowItems,\n preparedIncomingKeys: Set<string>,\n): CompilerPreparedKeyedArrayWindow | undefined {\n const removedEnd = window[0] + window[2];\n const removed = previousInstances.slice(window[0], removedEnd);\n const anchor = previousInstances[removedEnd]?.element || null;\n if (\n removed.length !== window[2] ||\n removed.some(\n (instance, offset) =>\n instance.index !== window[0] + offset || instance.element.parentNode !== root,\n ) ||\n (anchor && anchor.parentNode !== root)\n ) {\n return undefined;\n }\n\n const incomingKeySet = new Set(incoming[1]);\n if (incomingKeySet.size !== incoming[1].length) return undefined;\n for (const key of incomingKeySet) {\n if (preparedIncomingKeys.has(key)) return undefined;\n preparedIncomingKeys.add(key);\n }\n\n const hasLocalReuse = removed.some((instance) => incomingKeySet.has(instance.key));\n const removedByKey = hasLocalReuse\n ? new Map(removed.map((instance, offset) => [instance.key, { instance, offset }] as const))\n : undefined;\n const nextWindow: CompilerKeyedRowInstance[] = [];\n const sequence: number[] = [];\n const preparedBindings: Array<readonly CompilerPreparedKeyedRowBindingUpdate[] | undefined> = [];\n try {\n for (let offset = 0; offset < window[3]; offset += 1) {\n const index = window[1] + offset;\n const item = incoming[0][offset];\n const key = incoming[1][offset];\n const retained = removedByKey?.get(key);\n if (retained) {\n const bindingUpdates = prepareKeyedRowBindingUpdates(props, retained.instance, item, index);\n if (!bindingUpdates) return undefined;\n nextWindow.push(retained.instance);\n sequence.push(retained.offset);\n preparedBindings.push(bindingUpdates);\n continue;\n }\n // A key owned outside this exact source window would move a row across\n // a compiler-proven boundary. Complete reconciliation owns that case.\n if (instances.has(key)) return undefined;\n const descriptor = props.create(item, index);\n nextWindow.push({\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n });\n sequence.push(-1);\n preparedBindings.push(undefined);\n }\n } catch {\n return undefined;\n }\n\n return [removed, anchor, incoming[0], incomingKeySet, nextWindow, sequence, preparedBindings];\n}\n\nfunction commitCompilerKeyedArrayWindow(\n props: CompilerKeyedRowsBlockProps,\n root: Element,\n prepared: CompilerPreparedKeyedArrayWindow,\n): void {\n for (const instance of prepared[0]) {\n if (prepared[3].has(instance.key)) continue;\n instance.scope?.cleanup();\n instance.element.remove();\n }\n for (let offset = 0; offset < prepared[4].length; offset += 1) {\n const bindingUpdates = prepared[6][offset];\n if (!bindingUpdates) continue;\n const instance = prepared[4][offset];\n applyPreparedKeyedRowBindingUpdates(props, instance, bindingUpdates);\n instance.item = prepared[2][offset];\n }\n reorderCompilerKeyedRows(root, prepared[4], prepared[5], prepared[1]);\n}\n\nfunction reconcileCompilerKeyedArrayWindowReplace(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: Map<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): Map<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.positionIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const updates = compilerKeyedArrayWindowReplacements(finalValue, collectionToken, instances.size);\n if (!updates || !Array.isArray(finalValue)) return undefined;\n const previousInstances = [...instances.values()];\n if (updates.length > 1) {\n if (updates.some((update) => update.insertedCount !== update.removedCount)) {\n const windows = normalizeCompilerKeyedArrayDisjointWindows(updates);\n if (!windows) return undefined;\n\n let sourceCursor = 0;\n let resultCursor = 0;\n const preparedIncomingKeys = new Set<string>();\n const preparedWindows: CompilerPreparedKeyedArrayWindow[] = [];\n const nextInstances: CompilerKeyedRowInstance[] = [];\n for (const window of windows) {\n if (window[0] < sourceCursor) return undefined;\n while (sourceCursor < window[0]) {\n const instance = previousInstances[sourceCursor];\n if (\n !instance ||\n instance.index !== sourceCursor ||\n !Object.is(instance.item, finalValue[resultCursor])\n ) {\n return undefined;\n }\n nextInstances.push(instance);\n sourceCursor += 1;\n resultCursor += 1;\n }\n const incoming = readCompilerKeyedArrayWindowItems(\n props,\n finalValue,\n resultCursor,\n window[3],\n );\n if (!incoming) return undefined;\n window[1] = resultCursor;\n const prepared = prepareCompilerKeyedArrayWindow(\n props,\n instances,\n previousInstances,\n root,\n window,\n incoming,\n preparedIncomingKeys,\n );\n if (!prepared) return undefined;\n preparedWindows.push(prepared);\n nextInstances.push(...prepared[4]);\n sourceCursor += window[2];\n resultCursor += window[3];\n }\n while (sourceCursor < previousInstances.length) {\n const instance = previousInstances[sourceCursor];\n if (\n !instance ||\n instance.index !== sourceCursor ||\n !Object.is(instance.item, finalValue[resultCursor])\n ) {\n return undefined;\n }\n nextInstances.push(instance);\n sourceCursor += 1;\n resultCursor += 1;\n }\n if (resultCursor !== finalValue.length) return undefined;\n\n for (const prepared of preparedWindows) {\n commitCompilerKeyedArrayWindow(props, root, prepared);\n }\n for (let index = 0; index < nextInstances.length; index += 1) {\n nextInstances[index].index = index;\n }\n return keyedRowInstancesByKey(nextInstances);\n }\n\n // Length-preserving windows share source positions. Walk their ranges in\n // row order so overlaps are prepared once, without hashing every row index.\n // The validated chain is a fresh array; consuming it does not change the hints.\n updates.sort((left, right) => right.position - left.position);\n let window = updates.pop();\n const touchedInstances: CompilerKeyedRowInstance[] = [];\n\n for (let index = 0; index < previousInstances.length; index += 1) {\n while (window && index >= window.position + window.removedCount) {\n window = updates.pop();\n }\n const instance = previousInstances[index];\n if (!instance || instance.index !== index) return undefined;\n if (window && index >= window.position) {\n if (instance.element.parentNode !== root) return undefined;\n touchedInstances.push(instance);\n } else if (!Object.is(instance.item, finalValue[index])) {\n return undefined;\n }\n }\n\n const incomingKeys = new Set<string>();\n let replacesRows = false;\n const prepared: Array<\n readonly [\n index: number,\n instance: CompilerKeyedRowInstance,\n item: unknown,\n updates: readonly CompilerPreparedKeyedRowBindingUpdate[] | undefined,\n replacement: CompilerKeyedRowInstance | undefined,\n ]\n > = [];\n try {\n for (const instance of touchedInstances) {\n const index = instance.index;\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n if (key !== instance.key) {\n // Fixed-length queued windows never shift positions, and React only\n // commits their final array. Intermediate identities were never\n // mounted, so only the final key must be new to the committed\n // rows and unique across the prepared replacements. The committed\n // map stays unchanged throughout preparation, so reuse its lookup.\n if (instances.has(key) || incomingKeys.has(key)) return undefined;\n incomingKeys.add(key);\n replacesRows = true;\n const descriptor = props.create(item, index);\n prepared.push([\n index,\n instance,\n item,\n undefined,\n {\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n },\n ]);\n continue;\n }\n const bindingUpdates = prepareKeyedRowBindingUpdates(props, instance, item, index);\n if (!bindingUpdates) return undefined;\n prepared.push([index, instance, item, bindingUpdates, undefined]);\n }\n } catch {\n return undefined;\n }\n for (const [index, instance, item, bindingUpdates, replacement] of prepared) {\n if (replacement) {\n instance.scope?.cleanup();\n instance.element.replaceWith(replacement.element);\n previousInstances[index] = replacement;\n } else {\n applyPreparedKeyedRowBindingUpdates(props, instance, bindingUpdates!);\n instance.item = item;\n }\n }\n return replacesRows ? keyedRowInstancesByKey(previousInstances) : instances;\n }\n\n const update = updates[0];\n const removedEnd = update.position + update.removedCount;\n for (let sourceIndex = 0; sourceIndex < update.sourceLength; sourceIndex += 1) {\n const instance = previousInstances[sourceIndex];\n if (!instance || instance.index !== sourceIndex) return undefined;\n if (sourceIndex >= update.position && sourceIndex < removedEnd) continue;\n const resultIndex =\n sourceIndex < update.position\n ? sourceIndex\n : sourceIndex - update.removedCount + update.insertedCount;\n if (!Object.is(instance.item, finalValue[resultIndex])) return undefined;\n }\n\n const removed = previousInstances.slice(update.position, removedEnd);\n const anchor = previousInstances[removedEnd]?.element;\n if (\n removed.length !== update.removedCount ||\n removed.some((instance) => instance.element.parentNode !== root) ||\n (anchor && anchor.parentNode !== root)\n ) {\n return undefined;\n }\n\n const incoming = readCompilerKeyedArrayWindowItems(\n props,\n finalValue,\n update.position,\n update.insertedCount,\n );\n if (!incoming) return undefined;\n const incomingItems = incoming[0];\n const incomingKeys = incoming[1];\n\n if (\n update.insertedCount === update.removedCount &&\n incomingKeys.every((key, offset) => key === removed[offset].key)\n ) {\n const prepared: CompilerPreparedKeyedRowBindingUpdate[][] = [];\n try {\n for (let offset = 0; offset < update.insertedCount; offset += 1) {\n const updates = prepareKeyedRowBindingUpdates(\n props,\n removed[offset],\n incomingItems[offset],\n update.position + offset,\n );\n if (!updates) return undefined;\n prepared.push(updates);\n }\n } catch {\n return undefined;\n }\n for (let offset = 0; offset < update.insertedCount; offset += 1) {\n applyPreparedKeyedRowBindingUpdates(props, removed[offset], prepared[offset]);\n removed[offset].item = incomingItems[offset];\n }\n return instances;\n }\n\n const prepared = prepareCompilerKeyedArrayWindow(\n props,\n instances,\n previousInstances,\n root,\n [update.position, update.position, update.removedCount, update.insertedCount],\n incoming,\n new Set(),\n );\n if (!prepared) return undefined;\n commitCompilerKeyedArrayWindow(props, root, prepared);\n previousInstances.splice(update.position, update.removedCount, ...prepared[4]);\n for (let index = update.position; index < previousInstances.length; index += 1) {\n previousInstances[index].index = index;\n }\n return keyedRowInstancesByKey(previousInstances);\n}\n\nfunction reconcileCompilerKeyedArrayPositionWithBatch(\n ...args: Parameters<typeof reconcileCompilerKeyedArrayPosition>\n): Map<string, CompilerKeyedRowInstance> | undefined {\n return (\n reconcileCompilerKeyedArrayBatchInsert(...args) || reconcileCompilerKeyedArrayPosition(...args)\n );\n}\n\nfunction reconcileCompilerKeyedArrayPositionWithWindow(\n ...args: Parameters<typeof reconcileCompilerKeyedArrayPosition>\n): Map<string, CompilerKeyedRowInstance> | undefined {\n return (\n reconcileCompilerKeyedArrayWindowReplace(...args) ||\n reconcileCompilerKeyedArrayBatchInsert(...args) ||\n reconcileCompilerKeyedArrayPosition(...args)\n );\n}\n\nfunction reconcileCompilerKeyedArrayStructuralReorder(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n preparedReorder?: CompilerPreparedKeyedArrayReorder,\n): Map<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.filterIndexIndependent ||\n !props.reorderIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = preparedReorder?.value ?? props.items();\n const update =\n preparedReorder?.update ||\n compilerKeyedArrayReorder(finalValue, collectionToken, instances.size);\n if (!update?.structuralUpdate || !Array.isArray(finalValue)) return undefined;\n const survivorResult = compilerKeyedArrayFilterSurvivorsFromUpdate(\n update.structuralUpdate,\n collectionToken,\n instances.size,\n finalValue.length,\n );\n if (!survivorResult) return undefined;\n\n const previousInstances = [...instances.values()];\n const mappedItemSources = update.mappedItemSources;\n const prepared = (() => {\n try {\n const survivors: CompilerKeyedRowInstance[] = [];\n let previousSourceIndex = -1;\n for (const sourceIndex of survivorResult.indices) {\n const instance = previousInstances[sourceIndex];\n if (sourceIndex <= previousSourceIndex || !instance || instance.index !== sourceIndex) {\n return undefined;\n }\n previousSourceIndex = sourceIndex;\n survivors.push(instance);\n }\n\n const prepareChangedInstance = (\n instance: CompilerKeyedRowInstance,\n item: unknown,\n targetIndex: number,\n ) => {\n if (Object.is(instance.item, item)) return undefined;\n const bindingUpdates = prepareKeyedRowBindingUpdates(props, instance, item, targetIndex);\n if (!bindingUpdates) throw new TypeError();\n return { bindingUpdates, instance, item };\n };\n let preservesSurvivorOrder = true;\n const directChanges: Array<{\n bindingUpdates: CompilerPreparedKeyedRowBindingUpdate[];\n instance: CompilerKeyedRowInstance;\n item: unknown;\n }> = [];\n if (update.kind !== CompilerKeyedArrayReorderKind.Permutation) {\n const positionalInstances =\n update.kind === CompilerKeyedArrayReorderKind.Reverse\n ? [...survivors].reverse()\n : survivors;\n const sequence =\n update.kind === CompilerKeyedArrayReorderKind.Reverse\n ? positionalInstances.map((instance) => instance.index)\n : undefined;\n for (let targetIndex = 0; targetIndex < finalValue.length; targetIndex += 1) {\n const item = finalValue[targetIndex];\n const instance = positionalInstances[targetIndex];\n if (keyedRowIdentity(props.rowKey(item, targetIndex)) !== instance.key) return undefined;\n const changed = prepareChangedInstance(instance, item, targetIndex);\n if (changed) directChanges.push(changed);\n }\n return { changed: directChanges, nextInstances: positionalInstances, sequence };\n }\n\n for (let targetIndex = 0; targetIndex < finalValue.length; targetIndex += 1) {\n const item = finalValue[targetIndex];\n const instance = survivors[targetIndex];\n const sourceItem = mappedItemSources?.has(item) ? mappedItemSources.get(item) : item;\n if (!Object.is(instance.item, sourceItem)) {\n preservesSurvivorOrder = false;\n break;\n }\n if (keyedRowIdentity(props.rowKey(item, targetIndex)) !== instance.key) return undefined;\n const changed = prepareChangedInstance(instance, item, targetIndex);\n if (changed) directChanges.push(changed);\n }\n if (preservesSurvivorOrder) {\n return { changed: directChanges, nextInstances: survivors, sequence: undefined };\n }\n\n const survivorInstances = new Map<unknown, CompilerKeyedRowInstance>();\n for (const instance of survivors) {\n if (survivorInstances.has(instance.item)) return undefined;\n survivorInstances.set(instance.item, instance);\n }\n\n const nextInstances: CompilerKeyedRowInstance[] = [];\n const sequence: number[] = [];\n const changed: typeof directChanges = [];\n for (let targetIndex = 0; targetIndex < finalValue.length; targetIndex += 1) {\n const item = finalValue[targetIndex];\n const sourceItem = mappedItemSources?.has(item) ? mappedItemSources.get(item) : item;\n const instance = survivorInstances.get(sourceItem);\n if (\n !instance ||\n !Object.is(instance.item, sourceItem) ||\n keyedRowIdentity(props.rowKey(item, targetIndex)) !== instance.key\n ) {\n return undefined;\n }\n survivorInstances.delete(sourceItem);\n nextInstances.push(instance);\n sequence.push(instance.index);\n const changedInstance = prepareChangedInstance(instance, item, targetIndex);\n if (changedInstance) changed.push(changedInstance);\n }\n if (survivorInstances.size > 0) return undefined;\n return { changed, nextInstances, sequence };\n } catch {\n return undefined;\n }\n })();\n if (!prepared) return undefined;\n\n let survivorCursor = 0;\n for (let sourceIndex = 0; sourceIndex < previousInstances.length; sourceIndex += 1) {\n if (survivorResult.indices[survivorCursor] === sourceIndex) {\n survivorCursor += 1;\n continue;\n }\n const instance = previousInstances[sourceIndex];\n instance.scope?.cleanup();\n instance.element.remove();\n }\n if (prepared.sequence) {\n reorderCompilerKeyedRows(root, prepared.nextInstances, prepared.sequence, null);\n }\n for (const { bindingUpdates, instance, item } of prepared.changed) {\n applyPreparedKeyedRowBindingUpdates(props, instance, bindingUpdates);\n instance.item = item;\n }\n for (let index = 0; index < prepared.nextInstances.length; index += 1) {\n prepared.nextInstances[index].index = index;\n }\n return keyedRowInstancesByKey(prepared.nextInstances);\n}\n\nfunction reconcileCompilerKeyedArrayReorder(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: Map<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n preparedReorder?: CompilerPreparedKeyedArrayReorder,\n): Map<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.reorderIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = preparedReorder?.value ?? props.items();\n const update =\n preparedReorder?.update ||\n compilerKeyedArrayReorder(finalValue, collectionToken, instances.size);\n if (!update || update.mapped || update.structuralUpdate || !Array.isArray(finalValue)) {\n return undefined;\n }\n\n const previousInstances = [...instances.values()];\n if (update.kind === CompilerKeyedArrayReorderKind.Permutation) {\n const instancesByItem = new Map<unknown, CompilerKeyedRowInstance>();\n try {\n for (let sourceIndex = 0; sourceIndex < previousInstances.length; sourceIndex += 1) {\n const instance = previousInstances[sourceIndex];\n if (instance.index !== sourceIndex || instancesByItem.has(instance.item)) return undefined;\n instancesByItem.set(instance.item, instance);\n }\n\n const nextInstances: CompilerKeyedRowInstance[] = [];\n const sequence: number[] = [];\n for (let targetIndex = 0; targetIndex < finalValue.length; targetIndex += 1) {\n const item = finalValue[targetIndex];\n const instance = instancesByItem.get(item);\n if (!instance || !Object.is(instance.item, item)) return undefined;\n instancesByItem.delete(item);\n nextInstances.push(instance);\n sequence.push(instance.index);\n }\n if (instancesByItem.size > 0) return undefined;\n\n reorderCompilerKeyedRows(root, nextInstances, sequence, null);\n for (let index = 0; index < nextInstances.length; index += 1) {\n nextInstances[index].index = index;\n }\n return keyedRowInstancesByKey(nextInstances);\n } catch {\n return undefined;\n }\n }\n\n try {\n for (let targetIndex = 0; targetIndex < previousInstances.length; targetIndex += 1) {\n const sourceIndex =\n update.kind === CompilerKeyedArrayReorderKind.Reverse\n ? previousInstances.length - targetIndex - 1\n : targetIndex;\n const instance = previousInstances[sourceIndex];\n if (instance.index !== sourceIndex || !Object.is(instance.item, finalValue[targetIndex])) {\n return undefined;\n }\n }\n } catch {\n return undefined;\n }\n\n if (update.kind === undefined) return instances;\n\n // A reverse has a one-row LIS. Keep the first committed row in place and\n // move every following row before the previous anchor, which performs the\n // minimum n - 1 connected DOM moves without rescanning keys or descriptors.\n reverseCompilerKeyedRows(root, previousInstances);\n return keyedRowInstancesByKey(previousInstances);\n}\n\ninterface CompilerPreparedKeyedArrayReorder {\n readonly update: CompilerKeyedArrayReorderHint | undefined;\n readonly value: unknown;\n}\n\nfunction prepareCompilerKeyedArrayReorder(\n args: Parameters<typeof reconcileCompilerKeyedArrayReorder>,\n): CompilerPreparedKeyedArrayReorder | undefined {\n const [props, dirtyState, collectionToken, instances, , reactOwnedRows] = args;\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.reorderIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const value = props.items();\n return {\n update: compilerKeyedArrayReorder(value, collectionToken, instances.size),\n value,\n };\n}\n\nfunction reconcileCompilerKeyedArrayReorderWithMap(\n ...args: Parameters<typeof reconcileCompilerKeyedArrayReorder>\n): Map<string, CompilerKeyedRowInstance> | undefined {\n const prepared = prepareCompilerKeyedArrayReorder(args);\n if (!prepared) return undefined;\n const reconcile = prepared.update?.mapped\n ? reconcileCompilerKeyedArrayMapReorder\n : reconcileCompilerKeyedArrayReorder;\n return reconcile(args[0], args[1], args[2], args[3], args[4], args[5], prepared);\n}\n\nfunction reconcileCompilerKeyedArrayReorderWithMapAndStructural(\n ...args: Parameters<typeof reconcileCompilerKeyedArrayReorder>\n): Map<string, CompilerKeyedRowInstance> | undefined {\n const prepared = prepareCompilerKeyedArrayReorder(args);\n if (!prepared) return undefined;\n const reconcile = prepared.update?.structuralUpdate\n ? reconcileCompilerKeyedArrayStructuralReorder\n : prepared.update?.mapped\n ? reconcileCompilerKeyedArrayMapReorder\n : reconcileCompilerKeyedArrayReorder;\n return reconcile(args[0], args[1], args[2], args[3], args[4], args[5], prepared);\n}\n\nfunction reconcileCompilerKeyedArrayPrepend(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): Map<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.prependIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const prefixLength = compilerKeyedArrayPrependLength(finalValue, collectionToken, instances.size);\n if (prefixLength === undefined || !Array.isArray(finalValue)) return undefined;\n const previousInstances = [...instances.values()];\n for (let index = 0; index < previousInstances.length; index += 1) {\n const instance = previousInstances[index];\n if (instance.index !== index || !Object.is(instance.item, finalValue[prefixLength + index])) {\n return undefined;\n }\n }\n\n // Check committed rows in place; only the incoming prefix needs its own key set.\n const incomingKeys = new Set<string>();\n const prepended: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = 0; index < prefixLength; index += 1) {\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n if (instances.has(key) || incomingKeys.has(key)) return undefined;\n incomingKeys.add(key);\n const descriptor = props.create(item, index);\n prepended.push({\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n });\n }\n } catch {\n return undefined;\n }\n\n if (prepended.length > 0) {\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of prepended) fragment.append(instance.element);\n root.insertBefore(fragment, root.firstChild);\n }\n for (let index = 0; index < previousInstances.length; index += 1) {\n previousInstances[index].index = prefixLength + index;\n }\n return keyedRowInstancesByKey([...prepended, ...previousInstances]);\n}\n\nfunction reconcileCompilerKeyedArrayStructuralPrepend(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): Map<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.filterIndexIndependent ||\n !props.prependIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const update = compilerKeyedArrayStructuralPrependUpdate(\n finalValue,\n collectionToken,\n instances.size,\n );\n const structuralUpdate = update?.structuralUpdate;\n const survivorResult = update?.structuralSurvivors;\n if (\n !update ||\n !structuralUpdate ||\n !survivorResult ||\n structuralUpdate.mappedItemSources ||\n !Array.isArray(finalValue)\n ) {\n return undefined;\n }\n\n const previousInstances = [...instances.values()];\n const survivors: CompilerKeyedRowInstance[] = [];\n const knownKeys = new Set(instances.keys());\n const prepended: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = 0; index < survivorResult.indices.length; index += 1) {\n const sourceIndex = survivorResult.indices[index];\n const instance = previousInstances[sourceIndex];\n const item = finalValue[update.prefixLength + index];\n if (\n !instance ||\n instance.index !== sourceIndex ||\n !Object.is(instance.item, item) ||\n (!survivorResult.keysStable &&\n keyedRowIdentity(props.rowKey(item, update.prefixLength + index)) !== instance.key)\n ) {\n return undefined;\n }\n survivors.push(instance);\n }\n for (let index = 0; index < update.prefixLength; index += 1) {\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n // A new prefix row that reuses any committed key must take complete\n // reconciliation so React can preserve that row's existing identity.\n if (knownKeys.has(key)) return undefined;\n knownKeys.add(key);\n const descriptor = props.create(item, index);\n prepended.push({\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n });\n }\n } catch {\n return undefined;\n }\n\n const survivorSet = new Set(survivorResult.indices);\n for (let index = 0; index < previousInstances.length; index += 1) {\n if (survivorSet.has(index)) continue;\n previousInstances[index].scope?.cleanup();\n previousInstances[index].element.remove();\n }\n if (prepended.length > 0) {\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of prepended) fragment.append(instance.element);\n root.insertBefore(fragment, survivors[0]?.element || root.firstChild);\n }\n for (let index = 0; index < survivors.length; index += 1) {\n survivors[index].index = update.prefixLength + index;\n }\n return keyedRowInstancesByKey([...prepended, ...survivors]);\n}\n\nfunction reconcileCompilerKeyedArrayStructuralPrependMap(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): Map<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.filterIndexIndependent ||\n !props.prependIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const update = compilerKeyedArrayStructuralPrependMapUpdate(\n finalValue,\n collectionToken,\n instances.size,\n true,\n );\n if (!update || !update.mappedItemSources || !Array.isArray(finalValue)) return undefined;\n\n const mappedItemSources = update.mappedSurvivorsValidated\n ? (update.mappedItemSources as ReadonlyMap<number, unknown>)\n : undefined;\n const mappedStructuralSources = update.mappedSurvivorsValidated\n ? undefined\n : (update.mappedItemSources as CompilerMappedItemSources);\n const previousInstances = [...instances.values()];\n const survivorRange = update.structuralSurvivorRange;\n const survivorIndices = update.structuralSurvivors;\n const survivorCount = survivorRange\n ? survivorRange.end - survivorRange.start\n : (survivorIndices?.length ?? 0);\n if (!survivorRange && !survivorIndices) return undefined;\n const changed: Array<{\n bindingUpdates: CompilerPreparedKeyedRowBindingUpdate[];\n instance: CompilerKeyedRowInstance;\n item: unknown;\n }> = [];\n const knownKeys = new Set(instances.keys());\n const prepended: CompilerKeyedRowInstance[] = [];\n try {\n if (mappedStructuralSources) {\n for (let index = 0; index < survivorCount; index += 1) {\n const sourceIndex = survivorRange ? survivorRange.start + index : survivorIndices![index];\n const instance = previousInstances[sourceIndex];\n const item = finalValue[update.prefixLength + index];\n const sourceItem = mappedStructuralSources.has(item)\n ? mappedStructuralSources.get(item)\n : item;\n if (!instance || instance.index !== sourceIndex || !Object.is(instance.item, sourceItem)) {\n return undefined;\n }\n }\n for (let index = 0; index < survivorCount; index += 1) {\n const sourceIndex = survivorRange ? survivorRange.start + index : survivorIndices![index];\n const instance = previousInstances[sourceIndex];\n const item = finalValue[update.prefixLength + index];\n const sourceItem = mappedStructuralSources.has(item)\n ? mappedStructuralSources.get(item)\n : item;\n if (Object.is(item, sourceItem)) continue;\n if (keyedRowIdentity(props.rowKey(item, update.prefixLength + index)) !== instance.key) {\n return undefined;\n }\n const bindingUpdates = prepareKeyedRowBindingUpdates(\n props,\n instance,\n item,\n update.prefixLength + index,\n );\n if (!bindingUpdates) return undefined;\n changed.push({ bindingUpdates, instance, item });\n }\n } else if (survivorIndices) {\n for (let index = 0; index < survivorCount; index += 1) {\n const sourceIndex = survivorIndices[index];\n const instance = previousInstances[sourceIndex];\n const item = finalValue[update.prefixLength + index];\n const expectedItem = mappedItemSources!.has(index) ? mappedItemSources!.get(index) : item;\n if (\n !instance ||\n instance.index !== sourceIndex ||\n !Object.is(instance.item, expectedItem)\n ) {\n return undefined;\n }\n }\n }\n for (const [index, sourceItem] of mappedItemSources || []) {\n if (!Number.isSafeInteger(index) || index < 0 || index >= survivorCount) {\n return undefined;\n }\n const instance =\n previousInstances[survivorRange ? survivorRange.start + index : survivorIndices![index]];\n const finalIndex = update.prefixLength + index;\n const item = finalValue[finalIndex];\n if (\n !instance ||\n !Object.is(instance.item, sourceItem) ||\n keyedRowIdentity(props.rowKey(item, finalIndex)) !== instance.key\n ) {\n return undefined;\n }\n const bindingUpdates = prepareKeyedRowBindingUpdates(props, instance, item, finalIndex);\n if (!bindingUpdates) return undefined;\n changed.push({ bindingUpdates, instance, item });\n }\n for (let index = 0; index < update.prefixLength; index += 1) {\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n // Reusing a committed key may require React to move an existing row.\n if (knownKeys.has(key)) return undefined;\n knownKeys.add(key);\n const descriptor = props.create(item, index);\n prepended.push({\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n });\n }\n } catch {\n return undefined;\n }\n\n if (survivorRange) {\n for (let index = 0; index < survivorRange.start; index += 1) {\n previousInstances[index].scope?.cleanup();\n previousInstances[index].element.remove();\n }\n for (let index = survivorRange.end; index < previousInstances.length; index += 1) {\n previousInstances[index].scope?.cleanup();\n previousInstances[index].element.remove();\n }\n } else {\n const survivorSet = new Set(survivorIndices);\n for (let index = 0; index < previousInstances.length; index += 1) {\n if (survivorSet.has(index)) continue;\n previousInstances[index].scope?.cleanup();\n previousInstances[index].element.remove();\n }\n }\n const survivors = survivorRange\n ? previousInstances.slice(survivorRange.start, survivorRange.end)\n : survivorIndices!.map((index) => previousInstances[index]);\n if (prepended.length > 0) {\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of prepended) fragment.append(instance.element);\n root.insertBefore(fragment, survivors[0]?.element || root.firstChild);\n }\n for (let index = 0; index < survivors.length; index += 1) {\n survivors[index].index = update.prefixLength + index;\n }\n for (const { bindingUpdates, instance, item } of changed) {\n applyPreparedKeyedRowBindingUpdates(props, instance, bindingUpdates);\n instance.item = item;\n }\n return keyedRowInstancesByKey([...prepended, ...survivors]);\n}\n\nfunction reconcileCompilerKeyedArrayPrependWithStructural(\n ...args: Parameters<typeof reconcileCompilerKeyedArrayPrepend>\n): Map<string, CompilerKeyedRowInstance> | undefined {\n return (\n reconcileCompilerKeyedArrayStructuralPrepend(...args) ||\n reconcileCompilerKeyedArrayPrepend(...args)\n );\n}\n\nfunction reconcileCompilerKeyedArrayPrependMapWithStructural(\n ...args: Parameters<typeof reconcileCompilerKeyedArrayPrepend>\n): Map<string, CompilerKeyedRowInstance> | undefined {\n return (\n reconcileCompilerKeyedArrayStructuralPrependMap(...args) ||\n reconcileCompilerKeyedArrayStructuralPrepend(...args) ||\n reconcileCompilerKeyedArrayPrepend(...args)\n );\n}\n\nfunction reconcileCompilerKeyedArrayFilter(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n reactOwnedRows: boolean,\n): Map<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.filterIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const survivorResult = compilerKeyedArrayFilterSurvivors(\n finalValue,\n collectionToken,\n instances.size,\n );\n if (!survivorResult || !Array.isArray(finalValue)) return undefined;\n const { indices: survivorIndices, keysStable } = survivorResult;\n const previousInstances = [...instances.values()];\n const survivors: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = 0; index < survivorIndices.length; index += 1) {\n const sourceIndex = survivorIndices[index];\n const instance = previousInstances[sourceIndex];\n const item = finalValue[index];\n if (\n !instance ||\n instance.index !== sourceIndex ||\n !Object.is(instance.item, item) ||\n (!keysStable && keyedRowIdentity(props.rowKey(item, index)) !== instance.key)\n ) {\n return undefined;\n }\n survivors.push(instance);\n }\n } catch {\n return undefined;\n }\n\n const survivorSet = new Set(survivorIndices);\n for (let index = 0; index < previousInstances.length; index += 1) {\n if (survivorSet.has(index)) continue;\n previousInstances[index].scope?.cleanup();\n previousInstances[index].element.remove();\n }\n for (let index = 0; index < survivors.length; index += 1) {\n survivors[index].index = index;\n }\n return keyedRowInstancesByKey(survivors);\n}\n\nfunction createKeyedRowConditionalRuntime(): KeyedRowConditionalRuntime {\n class FarmKeyedRowConditional extends React.Component<RowConditionalProps, RowConditionalState> {\n static displayName = \"FarmCompiledKeyedRowConditional\";\n\n state: RowConditionalState = {\n renderVersion: this.props.renderVersion,\n item: this.props.item,\n index: this.props.index,\n };\n private unsubscribe: (() => void) | undefined;\n\n static getDerivedStateFromProps(\n props: RowConditionalProps,\n state: RowConditionalState,\n ): Partial<RowConditionalState> | null {\n if (props.renderVersion === state.renderVersion) return null;\n return {\n renderVersion: props.renderVersion,\n item: props.item,\n index: props.index,\n };\n }\n\n private refresh: RowConditionalRefresh = (item, index, afterCommit) => {\n this.setState({ item, index }, afterCommit);\n };\n\n private subscribe(): void {\n this.unsubscribe = this.props.owner.subscribe(this.props.rowKey, this.props.id, this.refresh);\n }\n\n componentDidMount(): void {\n this.subscribe();\n }\n\n componentDidUpdate(previous: RowConditionalProps): void {\n if (\n previous.owner === this.props.owner &&\n previous.rowKey === this.props.rowKey &&\n previous.id === this.props.id\n ) {\n return;\n }\n this.unsubscribe?.();\n this.subscribe();\n }\n\n componentWillUnmount(): void {\n this.unsubscribe?.();\n }\n\n render(): React.ReactNode {\n return this.props.render(this.state.item, this.state.index);\n }\n }\n\n return {\n Component: FarmKeyedRowConditional,\n readValues: readKeyedRowConditionalValues,\n changed: keyedRowConditionalChanged,\n };\n}\n\nfunction createKeyedRowHostRuntime(): KeyedRowHostRuntime {\n const owner: Pick<ConditionalBlockOwner, \"subscribe\"> = {\n subscribe: () => () => {},\n };\n return {\n mount: (element, descriptor, requestFallback) =>\n mountCompilerHostTree(owner, element, descriptor, requestFallback),\n };\n}\n\nfunction createKeyedRowsBlockComponentCore(\n owner: Pick<CompilerRuntimeFeatureOwner, \"subscribe\" | \"getDefinitionVersion\">,\n options: KeyedRowsRuntimeOptions = {},\n): React.ComponentType<CompilerKeyedRowsBlockProps> {\n interface State {\n fallback: boolean;\n }\n\n class FarmKeyedRowsBlock extends React.Component<CompilerKeyedRowsBlockProps, State> {\n static displayName = \"FarmCompiledKeyedRows\";\n\n state: State = { fallback: false };\n private root: Element | null = null;\n private mounted = false;\n private fallbackRequested = false;\n private fallbackVersion = 0;\n private fallbackKeysWereUnsafe = false;\n private propSyncQueued = false;\n private currentProps = this.props;\n private definitionVersion = owner.getDefinitionVersion?.();\n declare private stop: (() => void) | undefined;\n declare private id: number | undefined;\n private instances = new Map<string, CompilerKeyedRowInstance>();\n private reactElements: readonly Element[] = [];\n private keyedTargets = options.keyedTargets?.(this.props);\n private collectionToken: object | undefined;\n private renderVersion = 0;\n private readonly eventHandlers = new Map<\n string,\n Map<number, React.EventHandler<React.SyntheticEvent>>\n >();\n private readonly conditionalListeners = new Map<string, Map<number, RowConditionalRefresh>>();\n private instancesByElement = new WeakMap<Element, CompilerKeyedRowInstance>();\n private readonly conditionalOwner: RowConditionalOwner = {\n subscribe: (key, id, refresh) => this.subscribeToRowConditional(key, id, refresh),\n };\n\n private captureRoot = (root: Element | null) => {\n this.root = root;\n };\n\n private requestHostScopeFallback = () => {\n this.activateFallback();\n };\n\n private readRows(\n props: CompilerKeyedRowsBlockProps,\n ): { items: unknown[]; keys: string[] } | null {\n const items = materializeIterable(props.items());\n const keys = items.map((item, index) => keyedRowIdentity(props.rowKey(item, index)));\n if (new Set(keys).size !== keys.length) return null;\n return { items, keys };\n }\n\n private rowEvent = (\n item: unknown,\n index: number,\n eventId: number,\n ): React.EventHandler<React.SyntheticEvent> => {\n if (this.state.fallback) {\n return (event) => this.currentProps.events?.[eventId]?.invoke(item, index, event);\n }\n if (this.usesDelegatedEvents()) {\n // The container's delegated listener runs the handler. React still checks\n // that controlled value/checked fields carry onChange, so give change\n // events one shared no-op instead of none; other events stay unset.\n return (\n this.currentProps.events?.[eventId]?.name === \"onChange\"\n ? delegatedRowChangePlaceholder\n : undefined\n ) as React.EventHandler<React.SyntheticEvent>;\n }\n const key = keyedRowIdentity(this.currentProps.rowKey(item, index));\n let handlers = this.eventHandlers.get(key);\n if (!handlers) {\n handlers = new Map();\n this.eventHandlers.set(key, handlers);\n }\n const existing = handlers.get(eventId);\n if (existing) return existing;\n const handler: React.EventHandler<React.SyntheticEvent> = (event) => {\n const instance = this.instances.get(key);\n const descriptor = this.currentProps.events?.[eventId];\n if (!instance || !descriptor) return;\n return descriptor.invoke(instance.item, instance.index, event);\n };\n handlers.set(eventId, handler);\n return handler;\n };\n\n private usesDelegatedEvents(props: CompilerKeyedRowsBlockProps = this.currentProps): boolean {\n return Boolean(\n props.delegateEvents &&\n props.events?.length &&\n props.events.every((event) => event.path !== undefined),\n );\n }\n\n private rebuildElementIndex(instances: ReadonlyMap<string, CompilerKeyedRowInstance>): void {\n this.instancesByElement = new WeakMap();\n // Ordinary row callbacks resolve through this.instances, not the DOM index.\n if (!this.usesDelegatedEvents()) return;\n for (const instance of instances.values()) {\n this.instancesByElement.set(instance.element, instance);\n }\n }\n\n private eventRowInstance(event: React.SyntheticEvent): CompilerKeyedRowInstance | undefined {\n if (!this.root) return undefined;\n const target = event.target as Node | null;\n if (!target) return undefined;\n let element =\n target.nodeType === 1 ? (target as Element) : (target.parentElement as Element | null);\n while (element && element.parentElement !== this.root) element = element.parentElement;\n return element?.parentElement === this.root\n ? this.instancesByElement.get(element)\n : undefined;\n }\n\n private invokeDelegatedEvent(\n descriptor: CompilerKeyedRowEvent,\n instance: CompilerKeyedRowInstance,\n event: React.SyntheticEvent,\n currentTarget: Element,\n ): void {\n const ownCurrentTarget = Object.getOwnPropertyDescriptor(event, \"currentTarget\");\n try {\n Object.defineProperty(event, \"currentTarget\", {\n configurable: true,\n value: currentTarget,\n });\n descriptor.invoke(instance.item, instance.index, event);\n } finally {\n if (ownCurrentTarget) Object.defineProperty(event, \"currentTarget\", ownCurrentTarget);\n else Reflect.deleteProperty(event, \"currentTarget\");\n }\n }\n\n private dispatchDelegatedEvent = (name: string, event: React.SyntheticEvent): void => {\n const instance = this.eventRowInstance(event);\n const eventTarget = event.target as Node | null;\n if (!instance || !eventTarget) return;\n const capture = name.endsWith(\"Capture\");\n const matches = (this.currentProps.events || [])\n .filter((descriptor) => descriptor.name === name && descriptor.path !== undefined)\n .map((descriptor) => ({\n descriptor,\n target: findCompilerHostTarget(instance.element, descriptor.path || []),\n }))\n .filter((match): match is { descriptor: CompilerKeyedRowEvent; target: Element } =>\n Boolean(\n match.target && (match.target === eventTarget || match.target.contains(eventTarget)),\n ),\n )\n .sort((left, right) =>\n capture\n ? (left.descriptor.path?.length || 0) - (right.descriptor.path?.length || 0)\n : (right.descriptor.path?.length || 0) - (left.descriptor.path?.length || 0),\n );\n\n for (const match of matches) {\n this.invokeDelegatedEvent(match.descriptor, instance, event, match.target);\n if (event.isPropagationStopped()) break;\n }\n };\n\n private delegatedContainerProps(container: React.ReactElement): Record<string, unknown> {\n if (this.state.fallback || !this.usesDelegatedEvents()) return {};\n const props = container.props as Record<string, unknown>;\n return Object.fromEntries(\n [...new Set((this.currentProps.events || []).map((event) => event.name))].map((name) => {\n const existing = props[name] as React.EventHandler<React.SyntheticEvent> | undefined;\n const capture = name.endsWith(\"Capture\");\n const handler: React.EventHandler<React.SyntheticEvent> = (event) => {\n if (capture) existing?.(event);\n if (!event.isPropagationStopped()) this.dispatchDelegatedEvent(name, event);\n if (!capture && !event.isPropagationStopped()) existing?.(event);\n };\n return [name, handler];\n }),\n );\n }\n\n private rowConditional = (\n item: unknown,\n index: number,\n conditionalId: number,\n render: (item: unknown, index: number) => React.ReactNode,\n ): React.ReactNode => {\n if (this.state.fallback) return render(item, index);\n const key = keyedRowIdentity(this.currentProps.rowKey(item, index));\n const Conditional = options.conditionals?.Component;\n if (!Conditional) return render(item, index);\n return React.createElement(Conditional, {\n key: `${key}:${conditionalId}`,\n owner: this.conditionalOwner,\n rowKey: key,\n id: conditionalId,\n renderVersion: this.renderVersion,\n item,\n index,\n render,\n });\n };\n\n private subscribeToRowConditional(\n key: string,\n id: number,\n refresh: RowConditionalRefresh,\n ): () => void {\n let listeners = this.conditionalListeners.get(key);\n if (!listeners) {\n listeners = new Map();\n this.conditionalListeners.set(key, listeners);\n }\n listeners.set(id, refresh);\n return () => {\n const current = this.conditionalListeners.get(key);\n if (current?.get(id) !== refresh) return;\n current.delete(id);\n if (current.size === 0) this.conditionalListeners.delete(key);\n };\n }\n\n private hasReactOwnedRows(props: CompilerKeyedRowsBlockProps = this.currentProps): boolean {\n return Boolean(\n props.conditionals?.length || (props.events?.length && !this.usesDelegatedEvents(props)),\n );\n }\n\n private cleanupHostScopes(\n instances: ReadonlyMap<string, CompilerKeyedRowInstance> = this.instances,\n ): void {\n for (const instance of instances.values()) instance.scope?.cleanup();\n }\n\n private mountRowHostScope(\n element: Element,\n descriptor: CompilerHostElement,\n props: CompilerKeyedRowsBlockProps = this.currentProps,\n ): CompilerHostTreeScope | null | undefined {\n if (!props.hostBlocks) return undefined;\n return options.hostBlocks?.mount(element, descriptor, this.requestHostScopeFallback) || null;\n }\n\n private readConditionalValues(\n props: CompilerKeyedRowsBlockProps,\n item: unknown,\n index: number,\n ): ReadonlyMap<number, readonly unknown[]> {\n return (\n options.conditionals?.readValues(props, item, index) || EMPTY_KEYED_ROW_CONDITIONAL_VALUES\n );\n }\n\n // Call only after committing this.instances: it is the authoritative live-key set.\n private pruneEventHandlers(): void {\n if (this.eventHandlers.size === 0) return;\n for (const key of this.eventHandlers.keys()) {\n if (!this.instances.has(key)) this.eventHandlers.delete(key);\n }\n }\n\n private pruneConditionalListeners(): void {\n if (this.conditionalListeners.size === 0) return;\n for (const key of this.conditionalListeners.keys()) {\n if (!this.instances.has(key)) this.conditionalListeners.delete(key);\n }\n }\n\n private commitCurrentCollection(dirtyState?: ReadonlySet<number>): void {\n this.collectionToken = options.keyedUpdates?.commit(\n this.currentProps.items(),\n this.instances,\n );\n this.keyedTargets?.commit(this.currentProps, dirtyState);\n }\n\n private adopt(): boolean {\n if (!this.root) return false;\n if (this.keyedTargets && !this.keyedTargets.hasSafeTargets(this.currentProps)) return false;\n const rows = this.readRows(this.currentProps);\n const elements = [...this.root.children];\n if (!rows || rows.items.length !== elements.length) return false;\n const reactOwnedRows = this.hasReactOwnedRows();\n const opaqueConditionalPaths = new Set(\n (this.currentProps.conditionals || []).map((conditional) => conditional.path.join(\".\")),\n );\n const instances = new Map<string, CompilerKeyedRowInstance>();\n for (let index = 0; index < rows.items.length; index += 1) {\n const descriptor = this.currentProps.create(rows.items[index], index);\n if (\n reactOwnedRows &&\n !matchesCompilerHostElement(elements[index], descriptor, opaqueConditionalPaths)\n ) {\n this.cleanupHostScopes(instances);\n return false;\n }\n const scope = this.mountRowHostScope(elements[index], descriptor);\n if (this.currentProps.hostBlocks && !scope) {\n this.cleanupHostScopes(instances);\n return false;\n }\n const instance: CompilerKeyedRowInstance = {\n key: rows.keys[index],\n element: elements[index],\n scope: scope || undefined,\n values: reactOwnedRows\n ? this.currentProps.bindings.map(() => UNSET_KEYED_ROW_BINDING)\n : readKeyedRowBindingValues(this.currentProps, rows.items[index], index),\n item: rows.items[index],\n index,\n conditionalValues: this.readConditionalValues(\n this.currentProps,\n rows.items[index],\n index,\n ),\n };\n instances.set(rows.keys[index], instance);\n }\n if (reactOwnedRows) {\n for (const instance of instances.values()) {\n // React compares the next row against its previous virtual props, not\n // against DOM values patched by Farm between commits. Reapply every\n // binding only after every row passes structural validation so a\n // failed adoption cannot mutate an earlier row before React fallback.\n applyKeyedRowBindings(this.currentProps, instance, instance.item, instance.index);\n }\n }\n this.cleanupHostScopes();\n this.instances = instances;\n this.reactElements = elements;\n this.rebuildElementIndex(instances);\n this.pruneEventHandlers();\n this.pruneConditionalListeners();\n this.commitCurrentCollection();\n return true;\n }\n\n private hasUnsafeFallbackKeys(): boolean {\n try {\n return this.readRows(this.currentProps) === null;\n } catch {\n return true;\n }\n }\n\n private activateFallback(afterCommit?: () => void): void {\n if (!this.mounted || this.state.fallback || this.fallbackRequested) {\n afterCommit?.();\n return;\n }\n this.fallbackRequested = true;\n this.fallbackKeysWereUnsafe = this.hasUnsafeFallbackKeys();\n // One key change on entry: the compiled path mutated the DOM behind\n // React's back, so the first fallback render must rebuild the subtree.\n this.cleanupHostScopes();\n this.fallbackVersion += 1;\n this.setState({ fallback: true }, afterCommit);\n }\n\n private synchronizeReactOwnedRows(afterCommit?: () => void): void {\n this.forceUpdate(() => {\n if (!this.mounted) {\n afterCommit?.();\n return;\n }\n if (!this.adopt()) {\n this.activateFallback(afterCommit);\n return;\n }\n afterCommit?.();\n });\n }\n\n private notifyConditionalChanges(\n changes: readonly {\n key: string;\n id: number;\n item: unknown;\n index: number;\n }[],\n afterCommit?: () => void,\n ): void {\n if (changes.length === 0) {\n afterCommit?.();\n return;\n }\n let pending = changes.length;\n const committed = () => {\n pending -= 1;\n if (pending === 0) afterCommit?.();\n };\n // The normal row bindings above are patched synchronously. Flush the\n // React-owned conditional boundaries in the same turn as well so React\n // 18 cannot expose a transient row where text and branch disagree.\n flushSync(() => {\n for (const change of changes) {\n const refresh = this.conditionalListeners.get(change.key)?.get(change.id);\n if (refresh) refresh(change.item, change.index, committed);\n else committed();\n }\n });\n }\n\n private refreshDirtyBindings(\n dirtyState: ReadonlySet<number>,\n afterCommit?: () => void,\n ): boolean {\n if (\n !this.mounted ||\n !this.root ||\n this.state.fallback ||\n this.hasReactOwnedRows() ||\n this.currentProps.hostBlocks ||\n !this.currentProps.structureDependencies ||\n this.currentProps.structureDependencies.some((dependency) => dirtyState.has(dependency)) ||\n this.currentProps.bindings.some((binding) => binding.dependencies === undefined)\n ) {\n return false;\n }\n\n const affectedBindingIndices: number[] = [];\n for (\n let bindingIndex = 0;\n bindingIndex < this.currentProps.bindings.length;\n bindingIndex += 1\n ) {\n const dependencies = this.currentProps.bindings[bindingIndex].dependencies || [];\n if (dependencies.some((dependency) => dirtyState.has(dependency))) {\n affectedBindingIndices.push(bindingIndex);\n }\n }\n\n const targetsPrepared = this.keyedTargets?.prepare(this.currentProps, affectedBindingIndices);\n if (targetsPrepared === false) {\n this.activateFallback(afterCommit);\n return true;\n }\n\n let preparedBindingUpdates: CompilerPreparedKeyedRowBindingCommit[] | undefined;\n for (const bindingIndex of affectedBindingIndices) {\n const selection = this.keyedTargets?.select(\n this.currentProps,\n bindingIndex,\n dirtyState,\n this.instances.keys(),\n this.instances.size,\n );\n const selectedKeys = selection?.keys || this.instances.keys();\n const selectedCount = selection?.count ?? this.instances.size;\n\n const prepare = affectedBindingIndices.length > 1 || selectedCount > 1;\n if (prepare) preparedBindingUpdates ||= [];\n for (const key of selectedKeys) {\n const instance = this.instances.get(key);\n if (!instance) continue;\n if (!prepare) {\n applyKeyedRowBinding(\n this.currentProps,\n instance,\n instance.item,\n instance.index,\n bindingIndex,\n );\n continue;\n }\n const update = prepareKeyedRowBindingUpdate(\n this.currentProps,\n instance,\n instance.item,\n instance.index,\n bindingIndex,\n );\n if (update === undefined) {\n this.activateFallback(afterCommit);\n return true;\n }\n if (update) preparedBindingUpdates!.push([instance, update]);\n }\n }\n\n if (preparedBindingUpdates) {\n for (const [instance, [bindingIndex, target, value]] of preparedBindingUpdates) {\n commitKeyedRowBinding(\n this.currentProps.bindings[bindingIndex],\n instance,\n bindingIndex,\n value,\n target,\n );\n }\n }\n this.keyedTargets?.commitPrepared(affectedBindingIndices);\n afterCommit?.();\n return true;\n }\n\n private reconcileStableRows(\n rows: { items: unknown[]; keys: string[] },\n afterCommit?: () => void,\n dirtyState?: ReadonlySet<number>,\n ): boolean {\n if (rows.keys.length !== this.instances.size) return false;\n let index = 0;\n for (const key of this.instances.keys()) {\n if (rows.keys[index] !== key) return false;\n index += 1;\n }\n\n // Host scopes can replace binding targets during their update, so only\n // static row structures can safely resolve the whole row set up front.\n const shouldPrepareBindings =\n rows.items.length > 1 &&\n this.currentProps.bindings.length > 0 &&\n !this.currentProps.hostBlocks;\n const preparedBindings = shouldPrepareBindings\n ? prepareKeyedRowBindingSetUpdates(this.currentProps, this.instances, rows)\n : undefined;\n if (shouldPrepareBindings && !preparedBindings) {\n this.activateFallback(afterCommit);\n return true;\n }\n\n const conditionalChanges: Array<{\n key: string;\n id: number;\n item: unknown;\n index: number;\n }> = [];\n for (index = 0; index < rows.items.length; index += 1) {\n const key = rows.keys[index];\n const existing = this.instances.get(key);\n if (!existing) return false;\n if (this.currentProps.hostBlocks) {\n const descriptor = this.currentProps.create(rows.items[index], index);\n if (!existing.scope?.update(descriptor)) {\n this.activateFallback(afterCommit);\n return true;\n }\n }\n const bindingUpdates = preparedBindings?.[index];\n if (bindingUpdates) {\n applyPreparedKeyedRowBindingUpdates(this.currentProps, existing, bindingUpdates);\n } else {\n applyKeyedRowBindings(this.currentProps, existing, rows.items[index], index);\n }\n const conditionalValues = this.readConditionalValues(\n this.currentProps,\n rows.items[index],\n index,\n );\n for (const [id, values] of conditionalValues) {\n if (options.conditionals?.changed(existing.conditionalValues.get(id), values)) {\n conditionalChanges.push({\n key,\n id,\n item: rows.items[index],\n index,\n });\n }\n }\n existing.conditionalValues = conditionalValues;\n existing.item = rows.items[index];\n existing.index = index;\n }\n this.commitCurrentCollection(dirtyState);\n this.notifyConditionalChanges(conditionalChanges, afterCommit);\n return true;\n }\n\n private reconcileRemovals(\n rows: { items: unknown[]; keys: string[] },\n afterCommit?: () => void,\n dirtyState?: ReadonlySet<number>,\n ): boolean {\n if (this.hasReactOwnedRows() || rows.keys.length >= this.instances.size) return false;\n const removed: CompilerKeyedRowInstance[] = [];\n let nextIndex = 0;\n for (const [key, instance] of this.instances) {\n if (key === rows.keys[nextIndex]) nextIndex += 1;\n else removed.push(instance);\n }\n if (nextIndex !== rows.keys.length) return false;\n // Validate every singleton target before removing rows. Direct singleton\n // updates cache a missing target and cannot recover on a later refresh.\n const shouldPrepareBindings =\n this.currentProps.bindings.length > 0 && !this.currentProps.hostBlocks;\n if (\n shouldPrepareBindings &&\n rows.items.length === 1 &&\n this.currentProps.bindings.some(\n (binding) =>\n !findCompilerHostTarget(this.instances.get(rows.keys[0])!.element, binding.path),\n )\n ) {\n this.activateFallback(afterCommit);\n return true;\n }\n const preparedBindings = shouldPrepareBindings\n ? prepareKeyedRowBindingSetUpdates(this.currentProps, this.instances, rows)\n : undefined;\n if (shouldPrepareBindings && !preparedBindings) {\n this.activateFallback(afterCommit);\n return true;\n }\n const conditionalChanges: Array<{\n key: string;\n id: number;\n item: unknown;\n index: number;\n }> = [];\n for (let index = 0; index < rows.items.length; index += 1) {\n const key = rows.keys[index];\n const existing = this.instances.get(key);\n if (!existing) return false;\n if (this.currentProps.hostBlocks) {\n const descriptor = this.currentProps.create(rows.items[index], index);\n if (!existing.scope?.update(descriptor)) {\n this.activateFallback(afterCommit);\n return true;\n }\n }\n const bindingUpdates = preparedBindings?.[index];\n if (bindingUpdates) {\n applyPreparedKeyedRowBindingUpdates(this.currentProps, existing, bindingUpdates);\n } else {\n applyKeyedRowBindings(this.currentProps, existing, rows.items[index], index);\n }\n const conditionalValues = this.readConditionalValues(\n this.currentProps,\n rows.items[index],\n index,\n );\n for (const [id, values] of conditionalValues) {\n if (options.conditionals?.changed(existing.conditionalValues.get(id), values)) {\n conditionalChanges.push({\n key,\n id,\n item: rows.items[index],\n index,\n });\n }\n }\n existing.conditionalValues = conditionalValues;\n existing.item = rows.items[index];\n existing.index = index;\n }\n\n for (const instance of removed) {\n instance.scope?.cleanup();\n instance.element.remove();\n this.instances.delete(instance.key);\n this.eventHandlers.delete(instance.key);\n this.conditionalListeners.delete(instance.key);\n }\n this.commitCurrentCollection(dirtyState);\n this.notifyConditionalChanges(conditionalChanges, afterCommit);\n return true;\n }\n\n private reconcile(afterCommit?: () => void, dirtyState?: ReadonlySet<number>): void {\n if (!this.mounted || !this.root) {\n afterCommit?.();\n return;\n }\n if (this.state.fallback) {\n // React owns the container while in fallback; keep the key stable so\n // updates reconcile in place instead of remounting the subtree (which\n // would wipe uncontrolled inputs, focus, and scroll). The exception\n // is duplicate runtime keys: React's reconciliation of a keyed list\n // with duplicates is unreliable, so any render touched by them (this\n // one, or the previously committed one) still remounts.\n const unsafeKeys = this.hasUnsafeFallbackKeys();\n if (unsafeKeys || this.fallbackKeysWereUnsafe) this.fallbackVersion += 1;\n this.fallbackKeysWereUnsafe = unsafeKeys;\n this.forceUpdate(afterCommit);\n return;\n }\n\n if (this.keyedTargets && !this.keyedTargets.hasSafeTargets(this.currentProps, dirtyState)) {\n this.activateFallback(afterCommit);\n return;\n }\n\n const rows = this.readRows(this.currentProps);\n if (!rows) {\n this.activateFallback(afterCommit);\n return;\n }\n\n if (this.hasReactOwnedRows()) {\n const previousKeys = [...this.instances.keys()];\n if (\n rows.keys.length !== previousKeys.length ||\n rows.keys.some((key, index) => key !== previousKeys[index])\n ) {\n this.synchronizeReactOwnedRows(afterCommit);\n return;\n }\n }\n\n if (rows.items.length === 0) {\n this.cleanupHostScopes();\n this.root.replaceChildren();\n this.instances = new Map();\n this.instancesByElement = new WeakMap();\n this.eventHandlers.clear();\n this.conditionalListeners.clear();\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n\n if (this.reconcileStableRows(rows, afterCommit, dirtyState)) return;\n if (this.reconcileRemovals(rows, afterCommit, dirtyState)) return;\n\n const nextKeys = new Set(rows.keys);\n const hasSurvivingRows = rows.keys.some((key) => this.instances.has(key));\n const preparedBindings =\n nextKeys.size < this.instances.size &&\n this.currentProps.bindings.length > 0 &&\n !this.currentProps.hostBlocks &&\n rows.keys.every((key) => this.instances.has(key))\n ? prepareKeyedRowBindingSetUpdates(this.currentProps, this.instances, rows)\n : null;\n if (preparedBindings === undefined) {\n this.activateFallback(afterCommit);\n return;\n }\n const oldIndices = new Map<string, number>();\n if (hasSurvivingRows) {\n [...this.instances].forEach(([key], index) => oldIndices.set(key, index));\n }\n for (const [key, instance] of this.instances) {\n if (!nextKeys.has(key)) {\n instance.scope?.cleanup();\n if (hasSurvivingRows) instance.element.remove();\n }\n }\n\n const sequence = hasSurvivingRows\n ? rows.keys.map((key) => oldIndices.get(key) ?? -1)\n : rows.keys.map(() => -1);\n const nextInstances: CompilerKeyedRowInstance[] = [];\n const conditionalChanges: Array<{\n key: string;\n id: number;\n item: unknown;\n index: number;\n }> = [];\n for (let index = 0; index < rows.items.length; index += 1) {\n const key = rows.keys[index];\n const existing = this.instances.get(key);\n if (existing) {\n if (this.currentProps.hostBlocks) {\n const descriptor = this.currentProps.create(rows.items[index], index);\n if (!existing.scope?.update(descriptor)) {\n this.activateFallback(afterCommit);\n return;\n }\n }\n if (preparedBindings) {\n applyPreparedKeyedRowBindingUpdates(\n this.currentProps,\n existing,\n preparedBindings[index],\n );\n } else {\n applyKeyedRowBindings(this.currentProps, existing, rows.items[index], index);\n }\n const conditionalValues = this.readConditionalValues(\n this.currentProps,\n rows.items[index],\n index,\n );\n for (const [id, values] of conditionalValues) {\n if (options.conditionals?.changed(existing.conditionalValues.get(id), values)) {\n conditionalChanges.push({\n key,\n id,\n item: rows.items[index],\n index,\n });\n }\n }\n existing.conditionalValues = conditionalValues;\n existing.item = rows.items[index];\n existing.index = index;\n nextInstances.push(existing);\n continue;\n }\n const descriptor = this.currentProps.create(rows.items[index], index);\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const scope = this.mountRowHostScope(element, descriptor);\n if (this.currentProps.hostBlocks && !scope) {\n for (const instance of nextInstances) {\n if (!this.instances.has(instance.key)) instance.scope?.cleanup();\n }\n this.activateFallback(afterCommit);\n return;\n }\n nextInstances.push({\n key,\n element,\n scope: scope || undefined,\n values: readKeyedRowBindingValues(this.currentProps, rows.items[index], index),\n item: rows.items[index],\n index,\n conditionalValues: this.readConditionalValues(\n this.currentProps,\n rows.items[index],\n index,\n ),\n });\n }\n\n if (!hasSurvivingRows) {\n const fragment = this.root.ownerDocument.createDocumentFragment();\n for (const instance of nextInstances) fragment.append(instance.element);\n this.root.replaceChildren(fragment);\n } else {\n reorderCompilerKeyedRows(this.root, nextInstances, sequence, null);\n }\n this.instances = keyedRowInstancesByKey(nextInstances);\n this.rebuildElementIndex(this.instances);\n this.pruneEventHandlers();\n this.pruneConditionalListeners();\n this.commitCurrentCollection(dirtyState);\n this.notifyConditionalChanges(conditionalChanges, afterCommit);\n }\n\n private refresh: CompilerBlockRefresh = (afterCommit, dirtyState) => {\n if (dirtyState && options.keyedUpdates && this.mounted && this.root && !this.state.fallback) {\n const result = options.keyedUpdates.reconcile(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n options.conditionals,\n );\n if (result) {\n if (result.fallback) this.activateFallback(afterCommit);\n else {\n this.collectionToken = result.collectionToken;\n this.notifyConditionalChanges(result.conditionalChanges, afterCommit);\n }\n return;\n }\n const appendedInstances = options.keyedUpdates.append(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n this.root,\n this.hasReactOwnedRows(),\n );\n if (appendedInstances) {\n this.instances =\n appendedInstances instanceof Map ? appendedInstances : new Map(appendedInstances);\n this.rebuildElementIndex(this.instances);\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n const positionedInstances = options.keyedUpdates.position?.(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n this.root,\n this.hasReactOwnedRows(),\n );\n if (positionedInstances) {\n // Position refreshes return the original map only when row instances,\n // order, and elements are unchanged; their item/binding data is current.\n if (positionedInstances !== this.instances) {\n this.instances = positionedInstances;\n this.rebuildElementIndex(this.instances);\n this.pruneEventHandlers();\n this.pruneConditionalListeners();\n }\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n const reorderedInstances = options.keyedUpdates.reorder?.(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n this.root,\n this.hasReactOwnedRows(),\n );\n if (reorderedInstances) {\n const removedRows = reorderedInstances.size < this.instances.size;\n // Reorder preparation returns an owned map (or the current one for\n // unchanged order), just like append and rolling-window updates.\n this.instances = reorderedInstances;\n if (removedRows) {\n // Pure reorders keep the same element -> instance associations;\n // those instances already hold their current item and index.\n this.rebuildElementIndex(this.instances);\n this.pruneEventHandlers();\n this.pruneConditionalListeners();\n }\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n const rollingWindowInstances = options.keyedUpdates.rollingWindow?.(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n this.root,\n this.hasReactOwnedRows(),\n );\n if (rollingWindowInstances) {\n const delta = COMPILER_KEYED_ROLLING_WINDOW_DELTAS.get(rollingWindowInstances);\n this.instances =\n rollingWindowInstances instanceof Map\n ? rollingWindowInstances\n : new Map(rollingWindowInstances);\n if (delta) {\n COMPILER_KEYED_ROLLING_WINDOW_DELTAS.delete(rollingWindowInstances);\n if (this.usesDelegatedEvents()) {\n for (const instance of delta.added) {\n this.instancesByElement.set(instance.element, instance);\n }\n }\n for (const key of delta.removedKeys) {\n this.eventHandlers.delete(key);\n this.conditionalListeners.delete(key);\n }\n } else {\n this.rebuildElementIndex(this.instances);\n this.pruneEventHandlers();\n this.pruneConditionalListeners();\n }\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n const filteredInstances = options.keyedUpdates.filter?.(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n this.hasReactOwnedRows(),\n );\n if (filteredInstances) {\n this.instances = filteredInstances;\n this.rebuildElementIndex(this.instances);\n this.pruneEventHandlers();\n this.pruneConditionalListeners();\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n const prependedInstances = options.keyedUpdates.prepend?.(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n this.root,\n this.hasReactOwnedRows(),\n );\n if (prependedInstances) {\n this.instances = prependedInstances;\n this.rebuildElementIndex(this.instances);\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n }\n if (dirtyState && this.refreshDirtyBindings(dirtyState, afterCommit)) return;\n this.reconcile(afterCommit, dirtyState);\n };\n\n private listen(): void {\n const id = this.currentProps.id;\n const stop = this.stop;\n if (this.id === id) return;\n stop?.();\n this.stop = owner.subscribe(id, this.refresh);\n this.id = id;\n }\n\n private schedulePropSync(): void {\n if (this.propSyncQueued) return;\n this.propSyncQueued = true;\n queueMicrotask(() => {\n this.propSyncQueued = false;\n if (this.mounted && !this.state.fallback) {\n this.listen();\n this.reconcile();\n }\n });\n }\n\n shouldComponentUpdate(nextProps: CompilerKeyedRowsBlockProps, nextState: State): boolean {\n const wasReactOwned = this.hasReactOwnedRows(this.currentProps);\n const willBeReactOwned = this.hasReactOwnedRows(nextProps);\n const definitionChanged = this.definitionVersion !== owner.getDefinitionVersion?.();\n this.currentProps = nextProps;\n this.keyedTargets ||= options.keyedTargets?.(nextProps);\n if (this.state.fallback && nextState.fallback) {\n const unsafeKeys = this.hasUnsafeFallbackKeys();\n if (unsafeKeys || this.fallbackKeysWereUnsafe) this.fallbackVersion += 1;\n this.fallbackKeysWereUnsafe = unsafeKeys;\n }\n if (nextState.fallback || this.state.fallback) return true;\n if (definitionChanged || wasReactOwned || willBeReactOwned) {\n const elements = this.root?.children;\n if (\n elements &&\n (elements.length !== this.reactElements.length ||\n this.reactElements.some((element, index) => element !== elements[index]))\n ) {\n // React still owns the child fibers from its last render, not rows\n // inserted, removed, or reordered by the compiler since adoption.\n // Reset only that stale host container before handing it back to React.\n this.fallbackVersion += 1;\n }\n // Parent prop updates and Fast Refresh definitions must pass through\n // React so event locations, static row markup, and proxy identities\n // cannot remain tied to an older render definition.\n this.eventHandlers.clear();\n return true;\n }\n this.schedulePropSync();\n return false;\n }\n\n componentDidUpdate(previousProps: CompilerKeyedRowsBlockProps): void {\n this.listen();\n const nextDefinitionVersion = owner.getDefinitionVersion?.();\n const definitionChanged = this.definitionVersion !== nextDefinitionVersion;\n this.definitionVersion = nextDefinitionVersion;\n if (\n this.state.fallback ||\n previousProps === this.props ||\n (!definitionChanged &&\n !this.hasReactOwnedRows(previousProps) &&\n !this.hasReactOwnedRows(this.props)) ||\n this.adopt()\n ) {\n return;\n }\n this.activateFallback();\n }\n\n componentDidMount(): void {\n this.mounted = true;\n this.listen();\n if (!this.adopt()) this.activateFallback();\n }\n\n componentWillUnmount(): void {\n this.mounted = false;\n const stop = this.stop;\n stop?.();\n this.id = undefined;\n // React 18 StrictMode replays mount lifecycles without detaching host refs.\n // captureRoot clears the element on a real unmount; retain it for replay adoption.\n this.cleanupHostScopes();\n this.instances.clear();\n this.reactElements = [];\n this.keyedTargets?.clear();\n this.instancesByElement = new WeakMap();\n this.eventHandlers.clear();\n this.conditionalListeners.clear();\n }\n\n render(): React.ReactNode {\n this.renderVersion += 1;\n const container = this.currentProps.render(this.rowEvent, this.rowConditional);\n if (!React.isValidElement(container) || typeof container.type !== \"string\") {\n throw new TypeError(\n `Compiled keyed rows ${this.currentProps.id} must own one host container.`,\n );\n }\n return React.cloneElement(container, {\n ...this.delegatedContainerProps(container),\n key: `${this.state.fallback ? \"react\" : \"compiled\"}-${this.fallbackVersion}`,\n ref: this.captureRoot,\n } as React.Attributes);\n }\n }\n\n return FarmKeyedRowsBlock;\n}\n\nfunction createKeyedRowsBlockComponent(\n owner: Pick<CompilerRuntimeFeatureOwner, \"subscribe\" | \"getDefinitionVersion\">,\n options: KeyedRowsRuntimeOptions = {},\n): React.ComponentType<CompilerKeyedRowsBlockProps> {\n return createKeyedRowsBlockComponentCore(owner, {\n ...options,\n keyedTargets: createKeyedTargetRuntime,\n });\n}\n\nfunction createKeyedRangesBlockComponent(\n owner: Pick<CompilerRuntimeFeatureOwner, \"subscribe\" | \"getDefinitionVersion\">,\n): React.ComponentType<CompilerKeyedRangesBlockProps> {\n interface State {\n fallback: boolean;\n }\n\n interface ReadRange {\n items: unknown[];\n keys: string[];\n }\n\n class FarmKeyedRangesBlock extends React.Component<CompilerKeyedRangesBlockProps, State> {\n static displayName = \"FarmCompiledKeyedRanges\";\n\n state: State = { fallback: false };\n private root: Element | null = null;\n private mounted = false;\n private fallbackRequested = false;\n private fallbackVersion = 0;\n private fallbackKeysWereUnsafe = false;\n private propFallbackQueued = false;\n private currentProps = this.props;\n declare private stop: (() => void) | undefined;\n declare private id: number | undefined;\n private rangeInstances: Array<Map<string, CompilerKeyedRowInstance>> = [];\n private staticSegments: Element[][] = [];\n private readonly staticValues: unknown[] = [];\n private definitionVersion = owner.getDefinitionVersion?.();\n\n private captureRoot = (root: Element | null) => {\n this.root = root;\n this.currentProps.rootRef?.(root);\n };\n\n private readRange(range: CompilerKeyedRange): ReadRange | null {\n const items = materializeIterable(range.items());\n const keys = items.map((item, index) => keyedRowIdentity(range.rowKey(item, index)));\n if (new Set(keys).size !== keys.length) return null;\n return { items, keys };\n }\n\n private readRanges(props: CompilerKeyedRangesBlockProps): ReadRange[] | null {\n const ranges: ReadRange[] = [];\n for (const range of props.ranges) {\n const rows = this.readRange(range);\n if (!rows) return null;\n ranges.push(rows);\n }\n return ranges;\n }\n\n private hasUnsafeFallbackKeys(): boolean {\n try {\n return this.readRanges(this.currentProps) === null;\n } catch {\n return true;\n }\n }\n\n private adopt(props: CompilerKeyedRangesBlockProps = this.currentProps): boolean {\n if (!this.root || !Number.isSafeInteger(props.trailing) || props.trailing < 0) return false;\n const rowsByRange = this.readRanges(props);\n if (!rowsByRange) return false;\n const elements = [...this.root.children];\n const staticSegments: Element[][] = [];\n const instancesByRange: Array<Map<string, CompilerKeyedRowInstance>> = [];\n const staticValues = this.staticValues.slice();\n let cursor = 0;\n\n for (let rangeIndex = 0; rangeIndex < props.ranges.length; rangeIndex += 1) {\n const range = props.ranges[rangeIndex];\n const rows = rowsByRange[rangeIndex];\n if (!Number.isSafeInteger(range.before) || range.before < 0) return false;\n const staticEnd = cursor + range.before;\n if (staticEnd > elements.length) return false;\n staticSegments.push(elements.slice(cursor, staticEnd));\n cursor = staticEnd;\n\n const rowEnd = cursor + rows.items.length;\n if (rowEnd > elements.length) return false;\n const instances = new Map<string, CompilerKeyedRowInstance>();\n for (let index = 0; index < rows.items.length; index += 1) {\n const element = elements[cursor + index];\n if (!matchesCompilerHostElement(element, range.create(rows.items[index], index))) {\n return false;\n }\n instances.set(rows.keys[index], {\n key: rows.keys[index],\n element,\n values: readKeyedRowBindingValues(range, rows.items[index], index),\n item: rows.items[index],\n index,\n conditionalValues: new Map(),\n });\n }\n instancesByRange.push(instances);\n cursor = rowEnd;\n }\n\n if (cursor + props.trailing !== elements.length) return false;\n staticSegments.push(elements.slice(cursor));\n if (!applyStaticRangeBindings(props.bindings, staticSegments, staticValues)) return false;\n this.staticSegments = staticSegments;\n this.rangeInstances = instancesByRange;\n this.staticValues.length = 0;\n this.staticValues.push(...staticValues);\n return true;\n }\n\n private anchorAfter(rangeIndex: number): ChildNode | null {\n for (let next = rangeIndex + 1; next < this.rangeInstances.length; next += 1) {\n const staticAnchor = this.staticSegments[next]?.[0];\n if (staticAnchor) return staticAnchor;\n const rowAnchor = this.rangeInstances[next].values().next().value?.element;\n if (rowAnchor) return rowAnchor;\n }\n return this.staticSegments[this.rangeInstances.length]?.[0] || null;\n }\n\n private reconcileRange(rangeIndex: number, rows: ReadRange): void {\n if (!this.root) return;\n const range = this.currentProps.ranges[rangeIndex];\n const previous = this.rangeInstances[rangeIndex];\n const oldIndices = new Map<string, number>();\n [...previous.keys()].forEach((key, index) => oldIndices.set(key, index));\n const nextKeys = new Set(rows.keys);\n for (const [key, instance] of previous) {\n if (!nextKeys.has(key)) instance.element.remove();\n }\n\n const sequence = rows.keys.map((key) => oldIndices.get(key) ?? -1);\n const stablePositions = longestIncreasingSubsequencePositions(sequence);\n const nextInstances: CompilerKeyedRowInstance[] = [];\n for (let index = 0; index < rows.items.length; index += 1) {\n const key = rows.keys[index];\n const existing = previous.get(key);\n if (existing) {\n applyKeyedRowBindings(range, existing, rows.items[index], index);\n existing.item = rows.items[index];\n existing.index = index;\n nextInstances.push(existing);\n continue;\n }\n const element = createCompilerHostElement(\n this.root.ownerDocument,\n range.create(rows.items[index], index),\n );\n nextInstances.push({\n key,\n element,\n values: readKeyedRowBindingValues(range, rows.items[index], index),\n item: rows.items[index],\n index,\n conditionalValues: new Map(),\n });\n }\n\n let anchor = this.anchorAfter(rangeIndex);\n for (let index = nextInstances.length - 1; index >= 0; index -= 1) {\n const instance = nextInstances[index];\n if (sequence[index] < 0) {\n this.root.insertBefore(instance.element, anchor);\n } else if (!stablePositions.has(index) && instance.element.nextSibling !== anchor) {\n this.root.insertBefore(instance.element, anchor);\n }\n anchor = instance.element;\n }\n this.rangeInstances[rangeIndex] = new Map(\n nextInstances.map((instance) => [instance.key, instance]),\n );\n }\n\n private reconcile(afterCommit?: () => void): void {\n if (!this.mounted || !this.root) {\n afterCommit?.();\n return;\n }\n if (this.state.fallback) {\n // React can reconcile a permanently fallen-back range in place while\n // its keys remain unique. Duplicate keys are ambiguous, so remount the\n // render that introduces them and the first safe render after them.\n const unsafeKeys = this.hasUnsafeFallbackKeys();\n if (unsafeKeys || this.fallbackKeysWereUnsafe) this.fallbackVersion += 1;\n this.fallbackKeysWereUnsafe = unsafeKeys;\n this.forceUpdate(afterCommit);\n return;\n }\n const rowsByRange = this.readRanges(this.currentProps);\n if (!rowsByRange || rowsByRange.length !== this.rangeInstances.length) {\n this.activateFallback(afterCommit);\n return;\n }\n if (\n !applyStaticRangeBindings(\n this.currentProps.bindings,\n this.staticSegments,\n this.staticValues,\n )\n ) {\n this.activateFallback(afterCommit);\n return;\n }\n\n const activeElement = this.root.ownerDocument.activeElement;\n const restoreFocus = Boolean(activeElement && this.root.contains(activeElement));\n for (let rangeIndex = rowsByRange.length - 1; rangeIndex >= 0; rangeIndex -= 1) {\n this.reconcileRange(rangeIndex, rowsByRange[rangeIndex]);\n }\n if (\n restoreFocus &&\n activeElement?.isConnected &&\n activeElement.ownerDocument.activeElement !== activeElement &&\n \"focus\" in activeElement\n ) {\n (activeElement as HTMLElement).focus({ preventScroll: true });\n }\n afterCommit?.();\n }\n\n private refresh = (afterCommit?: () => void) => {\n this.reconcile(afterCommit);\n };\n\n private listen(): void {\n const id = this.currentProps.id;\n const stop = this.stop;\n if (this.id === id) return;\n stop?.();\n this.stop = owner.subscribe(id, this.refresh);\n this.id = id;\n }\n\n private activateFallback(afterCommit?: () => void): void {\n if (!this.mounted || this.state.fallback || this.fallbackRequested) {\n afterCommit?.();\n return;\n }\n this.fallbackRequested = true;\n this.fallbackKeysWereUnsafe = this.hasUnsafeFallbackKeys();\n this.setState({ fallback: true }, afterCommit);\n }\n\n private schedulePropFallback(): void {\n if (this.propFallbackQueued) return;\n this.propFallbackQueued = true;\n queueMicrotask(() => {\n this.propFallbackQueued = false;\n if (this.mounted && !this.state.fallback) {\n this.listen();\n this.activateFallback();\n }\n });\n }\n\n shouldComponentUpdate(nextProps: CompilerKeyedRangesBlockProps, nextState: State): boolean {\n const definitionChanged = this.definitionVersion !== owner.getDefinitionVersion?.();\n this.currentProps = nextProps;\n if (this.state.fallback && nextState.fallback) {\n const unsafeKeys = this.hasUnsafeFallbackKeys();\n if (unsafeKeys || this.fallbackKeysWereUnsafe) this.fallbackVersion += 1;\n this.fallbackKeysWereUnsafe = unsafeKeys;\n }\n if (nextState.fallback || this.state.fallback) return true;\n if (definitionChanged) return true;\n // Parent props can change static siblings that are deliberately outside\n // the range descriptors. Remount this one container through React instead\n // of retaining stale markup.\n this.schedulePropFallback();\n return false;\n }\n\n componentDidMount(): void {\n this.mounted = true;\n this.listen();\n if (!this.adopt()) this.activateFallback();\n }\n\n componentDidUpdate(): void {\n this.listen();\n const nextDefinitionVersion = owner.getDefinitionVersion?.();\n const definitionChanged = this.definitionVersion !== nextDefinitionVersion;\n this.definitionVersion = nextDefinitionVersion;\n if (!this.state.fallback && definitionChanged && !this.adopt()) this.activateFallback();\n }\n\n componentWillUnmount(): void {\n this.mounted = false;\n const stop = this.stop;\n stop?.();\n this.id = undefined;\n // Keep the attached root for React 18 replay; captureRoot clears real detachments.\n this.rangeInstances = [];\n this.staticSegments = [];\n this.staticValues.length = 0;\n }\n\n render(): React.ReactNode {\n const container = this.currentProps.render();\n if (!React.isValidElement(container) || typeof container.type !== \"string\") {\n throw new TypeError(\n `Compiled keyed ranges ${this.currentProps.id} must own one host container.`,\n );\n }\n return React.cloneElement(container, {\n key: this.state.fallback ? `react-${this.fallbackVersion}` : \"compiled\",\n ref: this.captureRoot,\n } as React.Attributes);\n }\n }\n\n return FarmKeyedRangesBlock;\n}\n\nfunction createMixedRangesBlockComponent(\n owner: Pick<CompilerRuntimeFeatureOwner, \"subscribe\" | \"getDefinitionVersion\">,\n): React.ComponentType<CompilerMixedRangesBlockProps> {\n interface State {\n fallback: boolean;\n }\n\n class FarmMixedRangesBlock extends React.Component<CompilerMixedRangesBlockProps, State> {\n static displayName = \"FarmCompiledMixedRanges\";\n\n state: State = { fallback: false };\n private root: Element | null = null;\n private mounted = false;\n private fallbackRequested = false;\n private fallbackVersion = 0;\n private fallbackKeysWereUnsafe = false;\n private propFallbackQueued = false;\n private currentProps = this.props;\n private controller: CompilerNestedMixedRanges | null = null;\n private readonly fallbackUnsubscribers = new Map<number, () => void>();\n private definitionVersion = owner.getDefinitionVersion?.();\n\n private captureRoot = (root: Element | null) => {\n this.root = root;\n this.currentProps.rootRef?.(root);\n };\n\n private clearFallbackSubscriptions(): void {\n clearCompilerFallbackSubscriptions(this.fallbackUnsubscribers);\n }\n\n private refreshFallbackBlock: CompilerBlockRefresh = (afterCommit) => {\n if (!this.mounted || !this.state.fallback) {\n afterCommit?.();\n return;\n }\n const nextDescriptor = this.currentProps.create();\n this.prepareFallbackUpdate(nextDescriptor);\n this.forceUpdate(afterCommit);\n };\n\n private readFallbackBlockIds(descriptor: CompilerHostElement): Set<number> {\n const ids = new Set<number>();\n collectActiveCompilerHostBlockIds(descriptor, ids);\n return ids;\n }\n\n private prepareFallbackUpdate(descriptor: CompilerHostElement): void {\n const unsafeKeys = hasUnsafeCompilerFallbackKeys(descriptor);\n if (unsafeKeys || this.fallbackKeysWereUnsafe) this.fallbackVersion += 1;\n this.fallbackKeysWereUnsafe = unsafeKeys;\n }\n\n private subscribeFallbackBlocks(): void {\n const descriptor = this.currentProps.create();\n const ids = this.readFallbackBlockIds(descriptor);\n reconcileCompilerFallbackSubscriptions(\n owner,\n this.fallbackUnsubscribers,\n ids,\n this.refreshFallbackBlock,\n );\n }\n\n private adopt(): boolean {\n if (!this.root) return false;\n const descriptor = this.currentProps.create();\n const block = descriptor.block;\n if (block?.kind !== \"mixed-ranges\" || block.id !== this.currentProps.id) return false;\n const controller = new CompilerNestedMixedRanges(\n owner,\n this.root,\n descriptor,\n block,\n this.activateFallback,\n );\n try {\n if (!controller.adopt()) {\n controller.cleanup();\n return false;\n }\n } catch (error) {\n controller.cleanup();\n throw error;\n }\n const previous = this.controller;\n this.controller = controller;\n previous?.cleanup();\n return true;\n }\n\n private activateFallback = (afterCommit?: () => void): void => {\n if (!this.mounted || this.state.fallback || this.fallbackRequested) {\n afterCommit?.();\n return;\n }\n this.fallbackRequested = true;\n this.controller?.cleanup();\n this.controller = null;\n this.fallbackKeysWereUnsafe = hasUnsafeCompilerFallbackKeys(this.currentProps.create());\n this.fallbackVersion += 1;\n this.setState({ fallback: true }, () => {\n this.subscribeFallbackBlocks();\n afterCommit?.();\n });\n };\n\n private schedulePropFallback(): void {\n if (this.propFallbackQueued) return;\n this.propFallbackQueued = true;\n queueMicrotask(() => {\n this.propFallbackQueued = false;\n if (this.mounted && !this.state.fallback) this.activateFallback();\n });\n }\n\n shouldComponentUpdate(nextProps: CompilerMixedRangesBlockProps, nextState: State): boolean {\n const definitionChanged = this.definitionVersion !== owner.getDefinitionVersion?.();\n this.currentProps = nextProps;\n if (this.state.fallback && nextState.fallback) {\n this.prepareFallbackUpdate(this.currentProps.create());\n }\n if (nextState.fallback || this.state.fallback) return true;\n if (definitionChanged) return true;\n this.schedulePropFallback();\n return false;\n }\n\n componentDidMount(): void {\n this.mounted = true;\n if (this.state.fallback || this.fallbackRequested) {\n this.fallbackKeysWereUnsafe = hasUnsafeCompilerFallbackKeys(this.currentProps.create());\n this.subscribeFallbackBlocks();\n } else if (!this.adopt()) this.activateFallback();\n }\n\n componentDidUpdate(): void {\n const nextDefinitionVersion = owner.getDefinitionVersion?.();\n const definitionChanged = this.definitionVersion !== nextDefinitionVersion;\n this.definitionVersion = nextDefinitionVersion;\n if (this.state.fallback) {\n this.subscribeFallbackBlocks();\n } else if (definitionChanged && !this.adopt()) {\n this.activateFallback();\n }\n }\n\n componentWillUnmount(): void {\n this.mounted = false;\n this.controller?.cleanup();\n this.controller = null;\n this.clearFallbackSubscriptions();\n this.fallbackKeysWereUnsafe = false;\n // Keep the attached root for React 18 replay; captureRoot clears real detachments.\n }\n\n render(): React.ReactNode {\n const container = this.currentProps.render();\n if (!React.isValidElement(container) || typeof container.type !== \"string\") {\n throw new TypeError(\n `Compiled mixed ranges ${this.currentProps.id} must own one host container.`,\n );\n }\n return React.cloneElement(container, {\n key: this.state.fallback ? `react-${this.fallbackVersion}` : \"compiled\",\n ref: this.captureRoot,\n } as React.Attributes);\n }\n }\n\n return FarmMixedRangesBlock;\n}\n\nfunction createComponentBlockComponent(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n): React.ComponentType<CompilerComponentBlockProps> {\n class FarmComponentBlock extends React.Component<CompilerComponentBlockProps> {\n static displayName = \"FarmCompiledComponentIsland\";\n\n private unsubscribe: (() => void) | undefined;\n\n private refresh = (afterCommit?: () => void) => {\n this.forceUpdate(afterCommit);\n };\n\n private subscribe(): void {\n this.unsubscribe = owner.subscribe(this.props.id, this.refresh);\n }\n\n componentDidMount(): void {\n this.subscribe();\n }\n\n componentDidUpdate(previous: CompilerComponentBlockProps): void {\n if (previous.id === this.props.id) return;\n this.unsubscribe?.();\n this.subscribe();\n }\n\n componentWillUnmount(): void {\n this.unsubscribe?.();\n }\n\n render(): React.ReactNode {\n return this.props.render();\n }\n }\n\n return FarmComponentBlock;\n}\n\nexport const conditionalRuntimeFeature: CompilerRuntimeFeature = {\n name: \"conditional\",\n create: (owner) => ({\n Conditional: createConditionalBlockComponent(owner),\n }),\n};\n\nexport const hostConditionalRuntimeFeature: CompilerRuntimeFeature = {\n name: \"host-conditional\",\n create: (owner) => ({\n HostConditional: createHostConditionalBlockComponent(owner),\n }),\n};\n\nexport const conditionalRangesRuntimeFeature: CompilerRuntimeFeature = {\n name: \"conditional-ranges\",\n create: (owner) => ({\n ConditionalRanges: createConditionalRangesBlockComponent(owner),\n }),\n};\n\nexport const keyedListRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-list\",\n create: (owner) => ({\n KeyedList: createKeyedListBlockComponent(owner),\n }),\n};\n\nexport const keyedRowsRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner),\n }),\n};\n\nexport const keyedRowsPlainRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:plain\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponentCore(owner),\n }),\n};\n\nexport const keyedRowsIdentityRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:identity\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponentCore(owner, {\n keyedTargets: createKeyedIdentityTargetRuntime,\n }),\n }),\n};\n\nexport const keyedRowsMembershipRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:membership\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponentCore(owner, {\n keyedTargets: createKeyedMembershipTargetRuntime,\n }),\n }),\n};\n\nexport const keyedRowsMapLookupRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:map-lookup\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponentCore(owner, {\n keyedTargets: createKeyedMapLookupTargetRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsBatchPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:batch-position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedBatchPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsWindowPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:window-position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedWindowPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsReorderHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:reorder-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedReorderUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsMapReorderHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:map-reorder-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedMapReorderUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsAllHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:all-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedCompleteUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsMappedRollingWindowHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:mapped-rolling-window-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedMappedRollingWindowUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsBatchEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:batch-every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedBatchEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsWindowEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:window-every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedWindowEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsFilterHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:filter-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedFilterUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsIdentityFilterHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:identity-filter-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponentCore(owner, {\n keyedTargets: createKeyedIdentityTargetRuntime,\n keyedUpdates: keyedFilterUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsIdentityFilterOnlyRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:identity-filter-only\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponentCore(owner, {\n keyedTargets: createKeyedIdentityTargetRuntime,\n keyedUpdates: keyedFilterOnlyUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsStructuralAppendHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:structural-append-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedWindowEveryStructuralAppendUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsStructuralAppendMapHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:structural-append-map-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedWindowEveryStructuralAppendMapUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsStructuralPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:structural-prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedCompleteCompatibilityUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsStructuralPrependMapHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:structural-prepend-map-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedCompleteStructuralPrependMapUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsFilterPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:filter-prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedStructuralPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n }),\n }),\n};\n\nexport const keyedRowsConditionalHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalBatchPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:batch-position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedBatchPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalWindowPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:window-position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedWindowPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalReorderHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:reorder-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedReorderUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalAllHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:all-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedCompleteUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalMappedRollingWindowHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:mapped-rolling-window-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedMappedRollingWindowUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalBatchEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:batch-every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedBatchEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalWindowEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:window-every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedWindowEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalFilterHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:filter-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedFilterUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalStructuralAppendHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:structural-append-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedWindowEveryStructuralAppendUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalStructuralAppendMapHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:structural-append-map-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedWindowEveryStructuralAppendMapUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalStructuralPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:structural-prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedCompleteCompatibilityUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalStructuralPrependMapHintedRuntimeFeature: CompilerRuntimeFeature =\n {\n name: \"keyed-rows:conditional:structural-prepend-map-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedCompleteStructuralPrependMapUpdateRuntime,\n }),\n }),\n };\n\nexport const keyedRowsConditionalPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalFilterPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:filter-prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedFilterPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n }),\n }),\n};\n\nexport const keyedRowsHostHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostBatchPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:batch-position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedBatchPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostWindowPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:window-position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedWindowPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostReorderHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:reorder-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedReorderUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostAllHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:all-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedCompleteUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostMappedRollingWindowHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:mapped-rolling-window-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedMappedRollingWindowUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostBatchEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:batch-every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedBatchEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostWindowEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:window-every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedWindowEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostFilterHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:filter-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedFilterUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostStructuralAppendHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:structural-append-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedWindowEveryStructuralAppendUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostStructuralAppendMapHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:structural-append-map-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedWindowEveryStructuralAppendMapUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostStructuralPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:structural-prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedCompleteCompatibilityUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostStructuralPrependMapHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:structural-prepend-map-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedCompleteStructuralPrependMapUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostFilterPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:filter-prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedFilterPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n }),\n }),\n};\n\nexport const keyedRowsCompleteHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompletePositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteBatchPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:batch-position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedBatchPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteWindowPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:window-position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedWindowPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteReorderHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:reorder-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedReorderUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteAllHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:all-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedCompleteUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteMappedRollingWindowHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:mapped-rolling-window-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedMappedRollingWindowUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteBatchEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:batch-every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedBatchEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteWindowEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:window-every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedWindowEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteFilterHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:filter-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedFilterUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteStructuralAppendHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:structural-append-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedWindowEveryStructuralAppendUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteStructuralAppendMapHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:structural-append-map-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedWindowEveryStructuralAppendMapUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteStructuralPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:structural-prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedCompleteCompatibilityUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteStructuralPrependMapHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:structural-prepend-map-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedCompleteStructuralPrependMapUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompletePrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteFilterPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:filter-prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedFilterPrependUpdateRuntime,\n }),\n }),\n};\n\nconst keyedRowsCompleteCompatibilityRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:compatibility\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedCompleteStructuralPrependMapUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRangesRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-ranges\",\n create: (owner) => ({\n KeyedRanges: createKeyedRangesBlockComponent(owner),\n }),\n};\n\nexport const mixedRangesRuntimeFeature: CompilerRuntimeFeature = {\n name: \"mixed-ranges\",\n create: (owner) => ({\n MixedRanges: createMixedRangesBlockComponent(owner),\n }),\n};\n\nexport const componentRuntimeFeature: CompilerRuntimeFeature = {\n name: \"component\",\n create: (owner) => ({\n Component: createComponentBlockComponent(owner),\n }),\n};\n\n/**\n * Tree-shakable runtime target emitted by the AOT transform.\n *\n * React owns initial placement, SSR, hydration, props, and event semantics.\n * Compiler cells own local updates and precomputed DOM paths. Structural\n * helpers are installed only when the compiler emitted that boundary kind.\n */\nexport function createCompiledComponentWithFeatures<Props>(\n definition: CompiledComponentDefinition<Props>,\n runtimeFeatures: readonly CompilerRuntimeFeature[],\n): React.ComponentType<Props> {\n const stateSignature = definition.stateSignature || String(definition.initialize.length);\n const runtimeSignature = [...new Set(runtimeFeatures.map((feature) => feature.name))]\n .sort()\n .join(\",\");\n if (definition.hmrId) {\n const registry = getCompilerHmrRegistry();\n const existing = registry.get(definition.hmrId);\n if (\n existing?.stateSignature === stateSignature &&\n existing.runtimeSignature === runtimeSignature\n ) {\n existing.definition.current = definition as CompiledComponentDefinition<unknown>;\n existing.component.displayName = `FarmCompiled(${definition.displayName})`;\n for (const refresh of existing.refreshListeners) refresh();\n return existing.component as React.ComponentType<Props>;\n }\n }\n\n const definitionReference: CompiledDefinitionReference<Props> = {\n current: definition,\n };\n const refreshListeners = new Set<() => void>();\n\n class FarmCompiledComponent extends React.Component<Props, Record<string, never>, boolean> {\n private root: Element | null = null;\n private mounted = false;\n private flushQueued = false;\n private bindingError: unknown;\n private hasBindingError = false;\n private inputSelection: InputSelectionSnapshot | null = null;\n private readonly dirtyState = new Set<number>();\n private indexedDefinition: CompiledComponentDefinition<Props> | null = null;\n private staticBindingsByDependency: CompilerBinding<Props>[][] = [];\n private blockBindingsByDependency: CompilerConditionalBlockBinding[][] = [];\n private readonly blockBindings = new Map<number, CompilerConditionalBlockBinding>();\n private trackedBindingsByDependency: Set<CompilerBinding<Props>>[] = [];\n private readonly trackedDependenciesByBinding = new Map<CompilerBinding<Props>, Set<number>>();\n private readonly bindingValues = new Map<CompilerBinding<Props>, unknown>();\n private activeBinding: CompilerBinding<Props> | null = null;\n private activeDependencies: Set<number> | null = null;\n private readonly cells: RuntimeCell[];\n private readonly propCellOffset: number;\n private renderedDefinition: CompiledComponentDefinition<Props> | null = null;\n private renderedElement: React.ReactElement | null = null;\n private readonly blockRefreshListeners = new Map<number, CompilerBlockRefresh>();\n private readonly blockRoots = new Map<number, Element>();\n private readonly blockRootElements = new Set<Element>();\n private readonly bindingTargets = new Map<number, Element>();\n private readonly bindingTargetRefs = new Map<number, React.RefCallback<Element>>();\n private readonly blockRuntime: CompilerBlockRuntime;\n\n constructor(props: Props) {\n super(props);\n const initialState = definitionReference.current.initialize(props);\n const initialProps = definitionReference.current.readProps?.(props) || [];\n this.propCellOffset = initialState.length;\n this.cells = [...initialState, ...initialProps].map((initialValue, index) => {\n let value = initialValue;\n const pending: PendingCellUpdate[] = [];\n return {\n get: () => {\n if (this.activeBinding && this.activeDependencies) {\n this.activeDependencies.add(index);\n }\n return value;\n },\n set: (next) => {\n pending.push({ kind: \"state\", update: next });\n this.scheduleBindingFlush(index);\n },\n replace: (next) => {\n pending.push({ kind: \"value\", value: next });\n },\n flush: () => {\n if (pending.length === 0) return false;\n const previous = value;\n for (const next of pending.splice(0)) {\n if (next.kind === \"value\") {\n value = next.value;\n } else {\n value = typeof next.update === \"function\" ? next.update(value) : next.update;\n }\n }\n return !Object.is(previous, value);\n },\n };\n });\n const featureOwner: CompilerRuntimeFeatureOwner = {\n setRoot: (id, root, expectedRoot) => this.setBlockRoot(id, root, expectedRoot),\n subscribe: (id, refresh) => this.subscribeToBlock(id, refresh),\n getDefinitionVersion: () => definitionReference.current,\n };\n const blockRuntime: Partial<CompilerBlockRuntime> = {\n target: (id) => this.bindingTarget(id),\n };\n for (const feature of runtimeFeatures) {\n Object.assign(blockRuntime, feature.create(featureOwner));\n }\n this.blockRuntime = blockRuntime as CompilerBlockRuntime;\n }\n\n private usesHybridReactivity(): boolean {\n return definitionReference.current.reactivity === \"hybrid\";\n }\n\n private canReuseRenderedElement(\n currentDefinition: CompiledComponentDefinition<Props>,\n propValues: readonly unknown[] | null,\n ): boolean {\n return Boolean(\n this.mounted &&\n propValues &&\n propValues.every(isCompilerPrimitive) &&\n this.renderedDefinition === currentDefinition &&\n this.renderedElement,\n );\n }\n\n private renderCellsForProps(propValues: readonly unknown[] | null): {\n cells: readonly CompilerCell[];\n commit(): void;\n } {\n if (!propValues) return { cells: this.cells, commit: () => undefined };\n // A full React render must see its own prop snapshot, including inside\n // nested block render callbacks. The view switches to committed cells\n // only when its root ref is attached, so an abandoned render cannot\n // publish values or replace the reusable element.\n let committed = false;\n const cells: CompilerCell[] = this.cells.slice(0, this.propCellOffset);\n for (let propIndex = 0; propIndex < propValues.length; propIndex += 1) {\n const cell = this.cells[this.propCellOffset + propIndex];\n if (!cell) continue;\n cells.push({\n get: () => (committed ? cell.get() : propValues[propIndex]),\n set: (next) => cell.set(next),\n });\n }\n return {\n cells,\n commit: () => {\n committed = true;\n },\n };\n }\n\n private tracksBinding(\n binding: Exclude<CompilerBinding<Props>, CompilerConditionalBlockBinding>,\n ): boolean {\n return this.usesHybridReactivity() && binding.tracking === \"dynamic\";\n }\n\n private ensureBindingIndex(): void {\n const currentDefinition = definitionReference.current;\n if (this.indexedDefinition === currentDefinition) return;\n\n this.indexedDefinition = currentDefinition;\n this.staticBindingsByDependency = Array.from({ length: this.cells.length }, () => []);\n this.blockBindingsByDependency = Array.from({ length: this.cells.length }, () => []);\n this.trackedBindingsByDependency = Array.from(\n { length: this.cells.length },\n () => new Set<CompilerBinding<Props>>(),\n );\n this.blockBindings.clear();\n this.trackedDependenciesByBinding.clear();\n this.bindingValues.clear();\n\n for (const binding of currentDefinition.bindings) {\n if (binding.kind === \"block\") this.blockBindings.set(binding.id, binding);\n for (const dependency of binding.dependencies) {\n if (dependency < 0 || dependency >= this.cells.length) continue;\n if (binding.kind === \"block\") {\n this.blockBindingsByDependency[dependency].push(binding);\n } else if (!this.tracksBinding(binding)) {\n this.staticBindingsByDependency[dependency].push(binding);\n }\n }\n }\n }\n\n private updateTrackedDependencies(\n binding: CompilerBinding<Props>,\n nextDependencies: Set<number>,\n ): void {\n const previousDependencies = this.trackedDependenciesByBinding.get(binding);\n if (previousDependencies) {\n for (const dependency of previousDependencies) {\n if (!nextDependencies.has(dependency)) {\n this.trackedBindingsByDependency[dependency]?.delete(binding);\n }\n }\n }\n for (const dependency of nextDependencies) {\n if (!previousDependencies?.has(dependency)) {\n this.trackedBindingsByDependency[dependency]?.add(binding);\n }\n }\n this.trackedDependenciesByBinding.set(binding, nextDependencies);\n }\n\n private readBinding(binding: Exclude<CompilerBinding<Props>, CompilerConditionalBlockBinding>) {\n if (!this.tracksBinding(binding)) return binding.read(this.props, this.cells);\n\n const previousBinding = this.activeBinding;\n const previousDependencies = this.activeDependencies;\n const nextDependencies = new Set<number>();\n this.activeBinding = binding;\n this.activeDependencies = nextDependencies;\n try {\n return binding.read(this.props, this.cells);\n } finally {\n this.activeBinding = previousBinding;\n this.activeDependencies = previousDependencies;\n this.updateTrackedDependencies(binding, nextDependencies);\n }\n }\n\n private bindingValue(\n binding: Exclude<CompilerBinding<Props>, CompilerConditionalBlockBinding>,\n value: unknown,\n ): unknown {\n return binding.kind === \"text\" ? renderTextValue(value) : value;\n }\n\n private primeHybridBindings(): void {\n if (!this.usesHybridReactivity()) return;\n for (const binding of definitionReference.current.bindings) {\n if (binding.kind === \"block\") continue;\n if (!this.tracksBinding(binding)) continue;\n const value = this.readBinding(binding);\n this.bindingValues.set(binding, this.bindingValue(binding, value));\n }\n }\n\n private captureRoot = (root: Element | null) => {\n this.root = root;\n };\n\n private refreshDefinition = () => {\n if (this.mounted) this.forceUpdate();\n };\n\n private bindingTarget(id: number): React.RefCallback<Element> {\n const existing = this.bindingTargetRefs.get(id);\n if (existing) return existing;\n const capture: React.RefCallback<Element> = (element) => {\n if (element) {\n this.bindingTargets.set(id, element);\n } else {\n this.bindingTargets.delete(id);\n }\n };\n this.bindingTargetRefs.set(id, capture);\n return capture;\n }\n\n private captureInputSelection(): void {\n const active = this.root?.ownerDocument.activeElement;\n if (\n !isSelectableTextControl(active) ||\n !this.root?.contains(active) ||\n active.selectionStart === null ||\n active.selectionEnd === null\n ) {\n return;\n }\n this.inputSelection = {\n element: active,\n start: active.selectionStart,\n end: active.selectionEnd,\n direction: active.selectionDirection || \"none\",\n };\n }\n\n private restoreInputSelection(snapshot: InputSelectionSnapshot | null): void {\n if (\n !snapshot ||\n !snapshot.element.isConnected ||\n snapshot.element.ownerDocument.activeElement !== snapshot.element\n ) {\n return;\n }\n snapshot.element.setSelectionRange(snapshot.start, snapshot.end, snapshot.direction);\n }\n\n private setBlockRoot(id: number, root: Element | null, expectedRoot?: Element | null): void {\n const previous = this.blockRoots.get(id);\n if (!root && expectedRoot !== undefined && previous !== expectedRoot) return;\n if (previous) this.blockRootElements.delete(previous);\n if (root) {\n this.blockRoots.set(id, root);\n this.blockRootElements.add(root);\n } else {\n this.blockRoots.delete(id);\n }\n }\n\n private subscribeToBlock(id: number, refresh: CompilerBlockRefresh): () => void {\n this.blockRefreshListeners.set(id, refresh);\n return () => {\n if (this.blockRefreshListeners.get(id) === refresh) {\n this.blockRefreshListeners.delete(id);\n }\n };\n }\n\n private scheduleBindingFlush(index: number): void {\n this.dirtyState.add(index);\n this.captureInputSelection();\n if (!this.mounted || this.flushQueued) return;\n this.flushQueued = true;\n queueMicrotask(() => {\n this.flushQueued = false;\n this.flushBindingUpdates();\n });\n }\n\n private flushBindingUpdates(): void {\n const inputSelection = this.inputSelection;\n this.inputSelection = null;\n if (!this.mounted) return;\n const dirty = new Set<number>();\n for (const index of this.dirtyState) {\n if (this.cells[index]?.flush()) dirty.add(index);\n }\n this.dirtyState.clear();\n if (dirty.size === 0) return;\n try {\n this.ensureBindingIndex();\n const affectedBlockIds = new Set<number>();\n const affectedBindings = new Set<CompilerBinding<Props>>();\n\n for (const dependency of dirty) {\n for (const binding of this.blockBindingsByDependency[dependency] || []) {\n affectedBlockIds.add(binding.id);\n }\n for (const binding of this.staticBindingsByDependency[dependency] || []) {\n affectedBindings.add(binding);\n }\n if (this.usesHybridReactivity()) {\n for (const binding of this.trackedBindingsByDependency[dependency] || []) {\n affectedBindings.add(binding);\n }\n }\n }\n\n const hasAffectedMountedAncestor = (binding: CompilerConditionalBlockBinding): boolean => {\n let parent = binding.parent;\n while (parent !== undefined) {\n if (affectedBlockIds.has(parent) && this.blockRefreshListeners.has(parent)) {\n return true;\n }\n parent = this.blockBindings.get(parent)?.parent;\n }\n return false;\n };\n\n const blockRefreshes = [...affectedBlockIds]\n .map((id) => {\n const binding = this.blockBindings.get(id);\n const refresh = this.blockRefreshListeners.get(id);\n return binding && refresh && !hasAffectedMountedAncestor(binding) ? refresh : undefined;\n })\n .filter((refresh): refresh is CompilerBlockRefresh => refresh !== undefined);\n\n for (const binding of affectedBindings) {\n if (binding.kind !== \"block\") this.applyBinding(binding);\n }\n\n let pendingBlockCommits = blockRefreshes.length;\n for (const refresh of blockRefreshes) {\n refresh(() => {\n pendingBlockCommits -= 1;\n if (pendingBlockCommits === 0) this.restoreInputSelection(inputSelection);\n }, dirty);\n }\n if (blockRefreshes.length === 0) this.restoreInputSelection(inputSelection);\n } catch (error) {\n this.bindingError = error;\n this.hasBindingError = true;\n this.forceUpdate();\n }\n }\n\n private applyBinding(binding: CompilerBinding<Props>, force = false): void {\n if (!this.root || binding.kind === \"block\") return;\n const target =\n binding.target === undefined\n ? findBindingTarget(this.root, binding.path, this.blockRootElements)\n : binding.path.length === 0\n ? this.root\n : this.bindingTargets.get(binding.target) || null;\n if (!target) return;\n const value = this.readBinding(binding);\n const comparableValue = this.bindingValue(binding, value);\n if (!force && this.bindingValues.has(binding)) {\n if (Object.is(this.bindingValues.get(binding), comparableValue)) return;\n }\n if (binding.kind === \"text\") {\n target.textContent = comparableValue as string;\n } else if (binding.kind === \"style\") {\n updateStyle(target, binding.name, value);\n } else {\n updateAttribute(target, binding.name, value);\n }\n this.bindingValues.set(binding, comparableValue);\n }\n\n componentDidMount(): void {\n this.mounted = true;\n refreshListeners.add(this.refreshDefinition);\n this.ensureBindingIndex();\n this.primeHybridBindings();\n }\n\n getSnapshotBeforeUpdate(): boolean {\n const currentDefinition = definitionReference.current;\n const propValues = currentDefinition.readProps?.(this.props) || null;\n return this.canReuseRenderedElement(currentDefinition, propValues);\n }\n\n componentDidUpdate(\n _previousProps: Readonly<Props>,\n _previousState: Readonly<Record<string, never>>,\n reusedRenderedElement = false,\n ): void {\n const propValues = definitionReference.current.readProps?.(this.props) || null;\n if (propValues) {\n if (reusedRenderedElement) this.captureInputSelection();\n for (let propIndex = 0; propIndex < propValues.length; propIndex += 1) {\n const cellIndex = this.propCellOffset + propIndex;\n const cell = this.cells[cellIndex];\n if (!cell) continue;\n cell.replace(propValues[propIndex]);\n if (reusedRenderedElement) {\n this.dirtyState.add(cellIndex);\n } else {\n // React already reconciled a full render using the pending prop\n // snapshot. Commit the cell without scheduling duplicate work.\n cell.flush();\n }\n }\n this.flushBindingUpdates();\n return;\n }\n\n // Hand-authored definitions without prop cells retain the original\n // React-owned prop reconciliation behavior.\n this.ensureBindingIndex();\n for (const binding of definitionReference.current.bindings) {\n if (binding.kind !== \"block\") this.applyBinding(binding, true);\n }\n }\n\n componentWillUnmount(): void {\n this.mounted = false;\n this.dirtyState.clear();\n this.inputSelection = null;\n this.blockRefreshListeners.clear();\n // React 18 StrictMode replays lifecycles without detaching host refs.\n // Root, conditional-block, and binding-target refs clear DOM references on real unmounts.\n this.bindingTargetRefs.clear();\n this.indexedDefinition = null;\n this.staticBindingsByDependency = [];\n this.blockBindingsByDependency = [];\n this.blockBindings.clear();\n this.trackedBindingsByDependency = [];\n this.trackedDependenciesByBinding.clear();\n this.bindingValues.clear();\n this.activeBinding = null;\n this.activeDependencies = null;\n refreshListeners.delete(this.refreshDefinition);\n }\n\n render(): React.ReactNode {\n if (this.hasBindingError) throw this.bindingError;\n const currentDefinition = definitionReference.current;\n const propValues = currentDefinition.readProps?.(this.props) || null;\n if (this.canReuseRenderedElement(currentDefinition, propValues)) {\n return this.renderedElement;\n }\n\n const renderCells = this.renderCellsForProps(propValues);\n const element = currentDefinition.render(this.props, renderCells.cells, this.blockRuntime);\n if (!React.isValidElement(element)) {\n throw new TypeError(\n `Compiled component ${currentDefinition.displayName} must return one host element.`,\n );\n }\n let renderedElement: React.ReactElement;\n const captureCommittedRoot = (root: Element | null) => {\n this.captureRoot(root);\n if (!root) return;\n renderCells.commit();\n this.renderedDefinition = currentDefinition;\n this.renderedElement = renderedElement;\n };\n if (element.type === this.blockRuntime.KeyedRanges) {\n renderedElement = React.cloneElement(\n element as React.ReactElement<CompilerKeyedRangesBlockProps>,\n {\n rootRef: captureCommittedRoot,\n },\n );\n } else if (element.type === this.blockRuntime.ConditionalRanges) {\n renderedElement = React.cloneElement(\n element as React.ReactElement<CompilerConditionalRangesBlockProps>,\n { rootRef: captureCommittedRoot },\n );\n } else if (element.type === this.blockRuntime.MixedRanges) {\n renderedElement = React.cloneElement(\n element as React.ReactElement<CompilerMixedRangesBlockProps>,\n {\n rootRef: captureCommittedRoot,\n },\n );\n } else if (typeof element.type !== \"string\") {\n throw new TypeError(\n `Compiled component ${currentDefinition.displayName} must return one host element.`,\n );\n } else {\n renderedElement = React.cloneElement(element, {\n ref: captureCommittedRoot,\n } as React.Attributes);\n }\n return renderedElement;\n }\n }\n\n (FarmCompiledComponent as React.ComponentType<Props>).displayName =\n `FarmCompiled(${definition.displayName})`;\n const component = FarmCompiledComponent as React.ComponentType<Props>;\n\n if (definition.hmrId) {\n getCompilerHmrRegistry().set(definition.hmrId, {\n component: component as React.ComponentType<unknown>,\n definition: definitionReference as CompiledDefinitionReference<unknown>,\n refreshListeners,\n stateSignature,\n runtimeSignature,\n });\n }\n\n return component;\n}\n\nconst COMPLETE_RUNTIME_FEATURES: readonly CompilerRuntimeFeature[] = [\n conditionalRuntimeFeature,\n hostConditionalRuntimeFeature,\n conditionalRangesRuntimeFeature,\n keyedListRuntimeFeature,\n keyedRowsCompleteCompatibilityRuntimeFeature,\n keyedRangesRuntimeFeature,\n mixedRangesRuntimeFeature,\n componentRuntimeFeature,\n];\n\n/**\n * Compatibility entry for hand-authored runtime definitions.\n * Compiler output uses createCompiledComponentWithFeatures so unused structural\n * runtimes can be removed from production bundles.\n */\nexport function createCompiledComponent<Props>(\n definition: CompiledComponentDefinition<Props>,\n): React.ComponentType<Props> {\n return createCompiledComponentWithFeatures(definition, COMPLETE_RUNTIME_FEATURES);\n}\n"]}