@reckona/mreact-compat 0.0.171 → 0.0.172
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/devtools.js +2 -0
- package/dist/devtools.js.map +1 -1
- package/dist/dom-host-rules.d.ts.map +1 -1
- package/dist/dom-host-rules.js +4 -1
- package/dist/dom-host-rules.js.map +1 -1
- package/dist/dom-props.js +2 -1
- package/dist/dom-props.js.map +1 -1
- package/dist/element.d.ts +13 -1
- package/dist/element.d.ts.map +1 -1
- package/dist/element.js +30 -2
- package/dist/element.js.map +1 -1
- package/dist/fiber-commit.js +2 -1
- package/dist/fiber-commit.js.map +1 -1
- package/dist/fiber-host.d.ts +1 -1
- package/dist/fiber-host.d.ts.map +1 -1
- package/dist/fiber-host.js +1 -1
- package/dist/fiber-host.js.map +1 -1
- package/dist/fiber.d.ts +2 -1
- package/dist/fiber.d.ts.map +1 -1
- package/dist/fiber.js +2 -0
- package/dist/fiber.js.map +1 -1
- package/dist/hooks.d.ts +7 -0
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +122 -41
- package/dist/hooks.js.map +1 -1
- package/dist/host-reconciler.d.ts +1 -0
- package/dist/host-reconciler.d.ts.map +1 -1
- package/dist/host-reconciler.js +659 -50
- package/dist/host-reconciler.js.map +1 -1
- package/dist/jsx-dev-runtime.d.ts +3 -1
- package/dist/jsx-dev-runtime.d.ts.map +1 -1
- package/dist/jsx-dev-runtime.js +3 -1
- package/dist/jsx-dev-runtime.js.map +1 -1
- package/dist/jsx-runtime.d.ts +4 -2
- package/dist/jsx-runtime.d.ts.map +1 -1
- package/dist/jsx-runtime.js +9 -1
- package/dist/jsx-runtime.js.map +1 -1
- package/dist/reactive-prop-cell.d.ts +13 -0
- package/dist/reactive-prop-cell.d.ts.map +1 -0
- package/dist/reactive-prop-cell.js +36 -0
- package/dist/reactive-prop-cell.js.map +1 -0
- package/dist/root.d.ts.map +1 -1
- package/dist/root.js +3 -1
- package/dist/root.js.map +1 -1
- package/package.json +3 -3
- package/src/devtools.ts +2 -0
- package/src/dom-host-rules.ts +4 -1
- package/src/dom-props.ts +2 -1
- package/src/element.ts +60 -3
- package/src/fiber-commit.ts +3 -1
- package/src/fiber-host.ts +1 -0
- package/src/fiber.ts +4 -0
- package/src/hooks.ts +173 -41
- package/src/host-reconciler.ts +979 -64
- package/src/jsx-dev-runtime.ts +4 -0
- package/src/jsx-runtime.ts +16 -0
- package/src/reactive-prop-cell.ts +67 -0
- package/src/root.ts +3 -0
package/dist/devtools.js
CHANGED
package/dist/devtools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devtools.js","sourceRoot":"","sources":["../src/devtools.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Fragment,\n Profiler,\n Suspense,\n SuspenseList,\n isReactCompatElement,\n isReactCompatPortal,\n type ReactCompatNode,\n} from \"./element.js\";\nimport type { Fiber, FiberRoot, FiberTag } from \"./fiber.js\";\n\ninterface DevToolsHook {\n inject?: (renderer: DevToolsRenderer) => number;\n onCommitFiberRoot?: (\n rendererId: number,\n root: DevToolsRoot,\n priorityLevel?: number,\n didError?: boolean,\n ) => void;\n onPostCommitFiberRoot?: (rendererId: number, root: DevToolsRoot) => void;\n onCommitFiberUnmount?: (rendererId: number, fiber: DevToolsFiber) => void;\n}\n\ninterface DevToolsRenderer {\n bundleType: 0 | 1;\n version: string;\n reconcilerVersion: string;\n rendererPackageName: string;\n supportsFiber: true;\n getLaneLabelMap(): Map<number, string>;\n getCurrentFiber(): DevToolsFiber | null;\n findFiberByHostInstance(hostInstance: unknown): DevToolsFiber | null;\n findHostInstanceByFiber(fiber: DevToolsFiber): object | null;\n findNativeNodesForFiber(fiber: DevToolsFiber): Set<object>;\n getDisplayNameForFiber(fiber: DevToolsFiber): string | null;\n getFiberCurrentPropsFromNode(hostInstance: unknown): unknown;\n getInstanceByFiber(fiber: DevToolsFiber): unknown;\n overrideProps(fiber: DevToolsFiber, path: Array<string | number>, value: unknown): void;\n overridePropsDeletePath(fiber: DevToolsFiber, path: Array<string | number>): void;\n overridePropsRenamePath(\n fiber: DevToolsFiber,\n oldPath: Array<string | number>,\n newPath: Array<string | number>,\n ): void;\n overrideHookState(\n fiber: DevToolsFiber,\n id: string,\n path: Array<string | number>,\n value: unknown,\n ): void;\n overrideHookStateDeletePath(\n fiber: DevToolsFiber,\n id: string,\n path: Array<string | number>,\n ): void;\n overrideHookStateRenamePath(\n fiber: DevToolsFiber,\n id: string,\n oldPath: Array<string | number>,\n newPath: Array<string | number>,\n ): void;\n scheduleUpdate(fiber: DevToolsFiber): void;\n scheduleRefresh(root: unknown, update: unknown): void;\n scheduleRetry(fiber: DevToolsFiber): void;\n setSuspenseHandler(handler: (fiber: DevToolsFiber) => boolean): void;\n setErrorHandler(handler: (fiber: DevToolsFiber) => boolean): void;\n shouldSuspend(fiber: DevToolsFiber): boolean;\n shouldError(fiber: DevToolsFiber): boolean;\n injectProfilingHooks(hooks: unknown): void;\n startProfiling(): void;\n stopProfiling(): void;\n clearProfilingData(): void;\n getProfilingData(): DevToolsProfilingData;\n}\n\ninterface DevToolsRoot {\n containerInfo: Element;\n current: DevToolsFiber;\n pendingChildren: null;\n hydrate: boolean;\n}\n\ninterface DevToolsFiber {\n tag: number;\n key: string | null;\n elementType: unknown;\n type: unknown;\n stateNode: unknown;\n return: DevToolsFiber | null;\n child: DevToolsFiber | null;\n sibling: DevToolsFiber | null;\n index: number;\n ref: unknown;\n pendingProps: unknown;\n memoizedProps: unknown;\n memoizedState: unknown;\n updateQueue: null;\n dependencies: null;\n mode: number;\n flags: number;\n subtreeFlags: number;\n deletions: DevToolsFiber[] | null;\n lanes: number;\n childLanes: number;\n alternate: DevToolsFiber | null;\n actualDuration: number;\n actualStartTime: number;\n selfBaseDuration: number;\n treeBaseDuration: number;\n _debugOwner: null;\n _debugSource: null;\n _debugHookTypes: string[] | null;\n}\n\ninterface DevToolsProfilingData {\n rendererID: number | undefined;\n commitData: DevToolsCommitProfilingData[];\n}\n\ninterface DevToolsCommitProfilingData {\n timestamp: number;\n duration: number;\n fiberActualDurations: Array<{\n fiber: DevToolsFiber;\n duration: number;\n }>;\n}\n\nconst roots = new WeakMap<Element, DevToolsRoot>();\nconst hostInstanceFibers = new WeakMap<object, DevToolsFiber>();\nconst rootHostInstances = new WeakMap<DevToolsRoot, object[]>();\nlet rendererRoots = new Set<DevToolsRoot>();\nlet rendererId: number | undefined;\nlet injectedHook: DevToolsHook | undefined;\nlet isProfiling = false;\nlet profilingCommitData: DevToolsCommitProfilingData[] = [];\nlet suspenseHandler: ((fiber: DevToolsFiber) => boolean) | undefined;\nlet errorHandler: ((fiber: DevToolsFiber) => boolean) | undefined;\n\nexport function commitDevToolsRoot(\n container: Element,\n source: FiberRoot | ReactCompatNode,\n didError = false,\n): void {\n const hook = getDevToolsHook();\n const id = injectDevToolsRenderer(hook);\n\n if (hook === undefined || id === undefined) {\n return;\n }\n\n const previousRoot = roots.get(container);\n const commitStart = getCurrentTime();\n\n if (previousRoot !== undefined) {\n rendererRoots.delete(previousRoot);\n clearHostInstanceFibers(previousRoot);\n }\n\n const nextRoot = isFiberRoot(source)\n ? createDevToolsFiberRoot(container, source)\n : createFallbackDevToolsRoot(container, source);\n const root = previousRoot ?? nextRoot;\n\n if (previousRoot !== undefined) {\n linkDevToolsAlternates(nextRoot.current, previousRoot.current);\n root.current = nextRoot.current;\n root.current.stateNode = root;\n rootHostInstances.set(root, rootHostInstances.get(nextRoot) ?? []);\n }\n\n roots.set(container, root);\n rendererRoots.add(root);\n recordDevToolsCommit(root, commitStart);\n hook.onCommitFiberRoot?.(id, root, undefined, didError);\n hook.onPostCommitFiberRoot?.(id, root);\n}\n\nexport function unmountDevToolsRoot(container: Element): void {\n const hook = getDevToolsHook();\n const id = injectDevToolsRenderer(hook);\n const root = roots.get(container);\n\n if (hook === undefined || id === undefined || root === undefined) {\n return;\n }\n\n notifyFiberUnmounts(hook, id, root.current.child);\n markDevToolsRootUnmounted(root);\n hook.onCommitFiberRoot?.(id, root, undefined, false);\n hook.onPostCommitFiberRoot?.(id, root);\n rendererRoots.delete(root);\n clearHostInstanceFibers(root);\n roots.delete(container);\n}\n\nfunction injectDevToolsRenderer(hook: DevToolsHook | undefined): number | undefined {\n if (rendererId !== undefined && injectedHook === hook) {\n return rendererId;\n }\n\n if (hook?.inject === undefined) {\n return undefined;\n }\n\n injectedHook = hook;\n rendererRoots = new Set();\n rendererId = hook.inject({\n bundleType: 1,\n version: \"0.0.0\",\n reconcilerVersion: \"0.0.0\",\n rendererPackageName: \"@reckona/mreact-compat\",\n supportsFiber: true,\n getLaneLabelMap() {\n return new Map([\n [1, \"Sync\"],\n [2, \"Continuous\"],\n [4, \"Default\"],\n [8, \"Transition\"],\n ]);\n },\n getCurrentFiber() {\n return null;\n },\n findFiberByHostInstance(hostInstance) {\n return typeof hostInstance === \"object\" && hostInstance !== null\n ? (hostInstanceFibers.get(hostInstance) ?? null)\n : null;\n },\n findHostInstanceByFiber(fiber) {\n return findFirstHostInstance(fiber);\n },\n findNativeNodesForFiber(fiber) {\n const hostInstances = new Set<object>();\n collectHostInstances(fiber, hostInstances);\n return hostInstances;\n },\n getDisplayNameForFiber(fiber) {\n return getDisplayNameForDevToolsFiber(fiber);\n },\n getFiberCurrentPropsFromNode(hostInstance) {\n const fiber =\n typeof hostInstance === \"object\" && hostInstance !== null\n ? hostInstanceFibers.get(hostInstance)\n : undefined;\n\n return fiber?.memoizedProps ?? null;\n },\n getInstanceByFiber(fiber) {\n return fiber.stateNode;\n },\n overrideProps(fiber, path, value) {\n setFiberPropsPath(fiber, path, value);\n },\n overridePropsDeletePath(fiber, path) {\n deleteFiberPropsPath(fiber, path);\n },\n overridePropsRenamePath(fiber, oldPath, newPath) {\n renameFiberPropsPath(fiber, oldPath, newPath);\n },\n overrideHookState(fiber, id, path, value) {\n setFiberHookStatePath(fiber, id, path, value);\n },\n overrideHookStateDeletePath(fiber, id, path) {\n deleteFiberHookStatePath(fiber, id, path);\n },\n overrideHookStateRenamePath(fiber, id, oldPath, newPath) {\n renameFiberHookStatePath(fiber, id, oldPath, newPath);\n },\n scheduleUpdate(fiber) {\n commitEditedFiberRoot(fiber);\n },\n scheduleRefresh: noop,\n scheduleRetry(fiber) {\n commitEditedFiberRoot(fiber);\n },\n setSuspenseHandler(handler) {\n suspenseHandler = handler;\n },\n setErrorHandler(handler) {\n errorHandler = handler;\n },\n shouldSuspend(fiber) {\n return suspenseHandler?.(fiber) ?? false;\n },\n shouldError(fiber) {\n return errorHandler?.(fiber) ?? false;\n },\n injectProfilingHooks: noop,\n startProfiling() {\n isProfiling = true;\n },\n stopProfiling() {\n isProfiling = false;\n },\n clearProfilingData() {\n profilingCommitData = [];\n },\n getProfilingData() {\n return {\n rendererID: rendererId,\n commitData: profilingCommitData,\n };\n },\n });\n return rendererId;\n}\n\nfunction noop(): void {}\n\nfunction getDevToolsHook(): DevToolsHook | undefined {\n return (globalThis as { __REACT_DEVTOOLS_GLOBAL_HOOK__?: DevToolsHook })\n .__REACT_DEVTOOLS_GLOBAL_HOOK__;\n}\n\nfunction isFiberRoot(value: FiberRoot | ReactCompatNode): value is FiberRoot {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"current\" in value &&\n \"container\" in value\n );\n}\n\nfunction createDevToolsFiberRoot(\n container: Element,\n fiberRoot: FiberRoot,\n): DevToolsRoot {\n const hostInstances: object[] = [];\n const root = {\n containerInfo: container,\n current: undefined as unknown as DevToolsFiber,\n pendingChildren: null,\n hydrate: fiberRoot.hydrationState !== undefined,\n } satisfies DevToolsRoot;\n root.current = toDevToolsFiber(fiberRoot.current, null, 0, root, hostInstances);\n root.current.stateNode = root;\n rootHostInstances.set(root, hostInstances);\n return root;\n}\n\nfunction toDevToolsFiber(\n fiber: Fiber,\n parent: DevToolsFiber | null,\n index: number,\n root: DevToolsRoot,\n hostInstances: object[],\n): DevToolsFiber {\n const devToolsFiber = createDevToolsFiberShell(fiber, parent, index, root);\n\n if (isHostInstance(devToolsFiber.stateNode)) {\n hostInstanceFibers.set(devToolsFiber.stateNode, devToolsFiber);\n hostInstances.push(devToolsFiber.stateNode);\n }\n\n let previousChild: DevToolsFiber | undefined;\n let childIndex = 0;\n let child = fiber.child;\n\n while (child !== undefined) {\n const devToolsChild = toDevToolsFiber(\n child,\n devToolsFiber,\n childIndex,\n root,\n hostInstances,\n );\n\n if (previousChild === undefined) {\n devToolsFiber.child = devToolsChild;\n } else {\n previousChild.sibling = devToolsChild;\n }\n\n previousChild = devToolsChild;\n child = child.sibling;\n childIndex += 1;\n }\n\n devToolsFiber.deletions =\n fiber.deletions?.map((deletedFiber, deletedIndex) =>\n toDevToolsFiber(deletedFiber, devToolsFiber, deletedIndex, root, hostInstances),\n ) ?? null;\n return devToolsFiber;\n}\n\nfunction createDevToolsFiberShell(\n fiber: Fiber,\n parent: DevToolsFiber | null,\n index: number,\n root: DevToolsRoot,\n): DevToolsFiber {\n const pendingProps =\n fiber.tag === \"host-root\" ? fiber.pendingProps : fiber.pendingProps;\n const memoizedProps =\n fiber.tag === \"host-root\" ? fiber.memoizedProps : fiber.memoizedProps;\n\n return {\n tag: getReactFiberTag(fiber.tag),\n key: fiber.key ?? null,\n elementType: getElementType(fiber),\n type: getFiberType(fiber),\n stateNode: fiber.tag === \"host-root\" ? root : fiber.stateNode,\n return: parent,\n child: null,\n sibling: null,\n index,\n ref: getFiberRef(fiber),\n pendingProps,\n memoizedProps,\n memoizedState: fiber.tag === \"host-root\"\n ? createMountedHostRootState(memoizedProps)\n : createDevToolsMemoizedState(fiber.memoizedState),\n updateQueue: null,\n dependencies: null,\n mode: 0,\n flags: fiber.flags,\n subtreeFlags: fiber.subtreeFlags,\n deletions: null,\n lanes: fiber.lanes,\n childLanes: fiber.childLanes,\n alternate: null,\n actualDuration: 0,\n actualStartTime: -1,\n selfBaseDuration: 0,\n treeBaseDuration: 0,\n _debugOwner: null,\n _debugSource: null,\n _debugHookTypes: getDevToolsHookTypes(fiber.memoizedState),\n };\n}\n\ninterface DevToolsHookSnapshot {\n hooks: Array<{\n kind: string;\n value?: unknown;\n deps?: readonly unknown[];\n effectKind?: \"insertion\" | \"layout\" | \"normal\";\n }>;\n hookTypes?: string[];\n}\n\ninterface DevToolsHookNode {\n memoizedState: unknown;\n baseState: unknown;\n baseQueue: null;\n queue: unknown;\n next: DevToolsHookNode | null;\n}\n\nfunction createDevToolsHookList(state: unknown): DevToolsHookNode | null {\n if (!isDevToolsHookSnapshot(state)) {\n return null;\n }\n\n const nodes = state.hooks\n .filter((hook) => hook.kind !== \"debug\")\n .map(createDevToolsHookNode);\n\n for (let index = 0; index < nodes.length - 1; index += 1) {\n const next = nodes[index + 1];\n\n if (next !== undefined) {\n nodes[index]!.next = next;\n }\n }\n\n return nodes[0] ?? null;\n}\n\nfunction createDevToolsMemoizedState(state: unknown): unknown {\n return isDevToolsHookSnapshot(state)\n ? createDevToolsHookList(state)\n : state;\n}\n\nfunction createDevToolsHookNode(\n hook: DevToolsHookSnapshot[\"hooks\"][number],\n): DevToolsHookNode {\n const memoizedState = getDevToolsHookMemoizedState(hook);\n const isStateful =\n hook.kind === \"state\" ||\n hook.kind === \"reducer\" ||\n hook.kind === \"store\" ||\n hook.kind === \"transition\" ||\n hook.kind === \"deferred\";\n\n return {\n memoizedState,\n baseState: isStateful ? memoizedState : null,\n baseQueue: null,\n queue: isStateful\n ? {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: null,\n lastRenderedState: memoizedState,\n }\n : null,\n next: null,\n };\n}\n\nfunction getDevToolsHookMemoizedState(\n hook: DevToolsHookSnapshot[\"hooks\"][number],\n): unknown {\n if (hook.kind === \"memo\" || hook.kind === \"callback\") {\n return [hook.value, hook.deps ?? null];\n }\n\n if (hook.kind === \"ref\") {\n return typeof hook.value === \"object\" && hook.value !== null\n ? hook.value\n : { current: hook.value };\n }\n\n if (hook.kind === \"effect\" || hook.kind === \"imperative-handle\") {\n return {\n tag: hook.kind === \"effect\" ? hook.effectKind ?? \"normal\" : \"imperative-handle\",\n create: null,\n destroy: null,\n deps: hook.deps ?? null,\n next: null,\n };\n }\n\n return hook.value;\n}\n\nfunction getDevToolsHookTypes(state: unknown): string[] | null {\n if (!isDevToolsHookSnapshot(state)) {\n return null;\n }\n\n return state.hookTypes === undefined || state.hookTypes.length === 0\n ? null\n : [...state.hookTypes];\n}\n\nfunction isDevToolsHookSnapshot(state: unknown): state is DevToolsHookSnapshot {\n return (\n typeof state === \"object\" &&\n state !== null &&\n \"hooks\" in state &&\n Array.isArray((state as { hooks?: unknown }).hooks)\n );\n}\n\nfunction createFallbackDevToolsRoot(\n container: Element,\n element: ReactCompatNode,\n): DevToolsRoot {\n const hostInstances: object[] = [];\n const root = {\n containerInfo: container,\n current: undefined as unknown as DevToolsFiber,\n pendingChildren: null,\n hydrate: false,\n } satisfies DevToolsRoot;\n root.current = {\n ...createFallbackDevToolsFiber(\"host-root\", { children: element }, null, 0),\n tag: 3,\n stateNode: root,\n memoizedState: createMountedHostRootState({ children: element }),\n };\n root.current.child = toFallbackDevToolsFiber(\n element,\n root.current,\n 0,\n hostInstances,\n );\n rootHostInstances.set(root, hostInstances);\n return root;\n}\n\nfunction createMountedHostRootState(props: unknown): { element: unknown } {\n return {\n element: typeof props === \"object\" && props !== null && \"children\" in props\n ? (props as { children?: unknown }).children\n : null,\n };\n}\n\nfunction markDevToolsRootUnmounted(root: DevToolsRoot): void {\n root.current.child = null;\n root.current.memoizedProps = null;\n root.current.pendingProps = null;\n root.current.memoizedState = null;\n}\n\nfunction toFallbackDevToolsFiber(\n node: ReactCompatNode,\n parent: DevToolsFiber | null,\n index: number,\n hostInstances: object[],\n): DevToolsFiber | null {\n if (Array.isArray(node)) {\n const fragment = createFallbackDevToolsFiber(Fragment, {}, parent, index);\n linkFallbackChildren(fragment, node, hostInstances);\n return fragment;\n }\n\n if (!isReactCompatElement(node)) {\n if (isReactCompatPortal(node)) {\n const portal = createFallbackDevToolsFiber(\"portal\", {}, parent, index);\n portal.stateNode = node.container;\n portal.child = toFallbackDevToolsFiber(node.children, portal, 0, hostInstances);\n return portal;\n }\n\n return createFallbackDevToolsFiber(\"#text\", node, parent, index);\n }\n\n const fiber = createFallbackDevToolsFiber(node.type, node.props, parent, index);\n fiber.key = node.key;\n fiber.ref = node.ref;\n linkFallbackChildren(fiber, getChildren(node.props.children), hostInstances);\n return fiber;\n}\n\nfunction linkFallbackChildren(\n parent: DevToolsFiber,\n children: readonly ReactCompatNode[],\n hostInstances: object[],\n): void {\n let previous: DevToolsFiber | undefined;\n\n for (const [index, child] of children.entries()) {\n const childFiber = toFallbackDevToolsFiber(child, parent, index, hostInstances);\n\n if (childFiber === null) {\n continue;\n }\n\n if (previous === undefined) {\n parent.child = childFiber;\n } else {\n previous.sibling = childFiber;\n }\n\n previous = childFiber;\n }\n}\n\nfunction createFallbackDevToolsFiber(\n type: unknown,\n props: unknown,\n parent: DevToolsFiber | null,\n index: number,\n): DevToolsFiber {\n const tag = type === \"#text\"\n ? 6\n : type === \"host-root\"\n ? 3\n : type === \"portal\"\n ? 4\n : typeof type === \"string\"\n ? 5\n : type === Fragment\n ? 7\n : type === Profiler\n ? 12\n : type === Suspense\n ? 13\n : type === SuspenseList\n ? 19\n : typeof type === \"function\"\n ? 0\n : 0;\n\n return {\n tag,\n key: null,\n elementType: type,\n type,\n stateNode: null,\n return: parent,\n child: null,\n sibling: null,\n index,\n ref: null,\n pendingProps: props,\n memoizedProps: props,\n memoizedState: null,\n updateQueue: null,\n dependencies: null,\n mode: 0,\n flags: 0,\n subtreeFlags: 0,\n deletions: null,\n lanes: 0,\n childLanes: 0,\n alternate: null,\n actualDuration: 0,\n actualStartTime: -1,\n selfBaseDuration: 0,\n treeBaseDuration: 0,\n _debugOwner: null,\n _debugSource: null,\n _debugHookTypes: null,\n };\n}\n\nfunction notifyFiberUnmounts(\n hook: DevToolsHook,\n id: number,\n fiber: DevToolsFiber | null,\n): void {\n let cursor = fiber;\n\n while (cursor !== null) {\n hook.onCommitFiberUnmount?.(id, cursor);\n notifyFiberUnmounts(hook, id, cursor.child);\n cursor = cursor.sibling;\n }\n}\n\nfunction clearHostInstanceFibers(root: DevToolsRoot): void {\n for (const hostInstance of rootHostInstances.get(root) ?? []) {\n hostInstanceFibers.delete(hostInstance);\n }\n\n rootHostInstances.delete(root);\n}\n\nfunction recordDevToolsCommit(root: DevToolsRoot, commitStart: number): void {\n if (!isProfiling) {\n return;\n }\n\n const timestamp = getCurrentTime();\n const fiberActualDurations: DevToolsCommitProfilingData[\"fiberActualDurations\"] = [];\n collectFiberDurations(root.current, fiberActualDurations);\n profilingCommitData.push({\n timestamp,\n duration: Math.max(0, timestamp - commitStart),\n fiberActualDurations,\n });\n}\n\nfunction collectFiberDurations(\n fiber: DevToolsFiber | null,\n durations: DevToolsCommitProfilingData[\"fiberActualDurations\"],\n): void {\n let cursor = fiber;\n\n while (cursor !== null) {\n durations.push({\n fiber: cursor,\n duration: cursor.actualDuration,\n });\n collectFiberDurations(cursor.child, durations);\n cursor = cursor.sibling;\n }\n}\n\nfunction linkDevToolsAlternates(\n current: DevToolsFiber | null,\n alternate: DevToolsFiber | null,\n): void {\n if (current === null || alternate === null || !canLinkDevToolsAlternates(current, alternate)) {\n return;\n }\n\n current.alternate = alternate;\n alternate.alternate = current;\n linkDevToolsChildAlternates(current.child, alternate.child);\n}\n\nfunction linkDevToolsChildAlternates(\n currentChild: DevToolsFiber | null,\n alternateChild: DevToolsFiber | null,\n): void {\n const unmatchedAlternates = new Set<DevToolsFiber>();\n let alternateCursor = alternateChild;\n\n while (alternateCursor !== null) {\n unmatchedAlternates.add(alternateCursor);\n alternateCursor = alternateCursor.sibling;\n }\n\n let currentCursor = currentChild;\n\n while (currentCursor !== null) {\n const alternate = findMatchingDevToolsAlternate(currentCursor, unmatchedAlternates);\n\n if (alternate !== null) {\n unmatchedAlternates.delete(alternate);\n linkDevToolsAlternates(currentCursor, alternate);\n }\n\n currentCursor = currentCursor.sibling;\n }\n}\n\nfunction findMatchingDevToolsAlternate(\n current: DevToolsFiber,\n candidates: Set<DevToolsFiber>,\n): DevToolsFiber | null {\n for (const candidate of candidates) {\n if (canLinkDevToolsAlternates(current, candidate)) {\n return candidate;\n }\n }\n\n return null;\n}\n\nfunction canLinkDevToolsAlternates(current: DevToolsFiber, alternate: DevToolsFiber): boolean {\n return (\n current.tag === alternate.tag &&\n current.key === alternate.key &&\n current.elementType === alternate.elementType &&\n current.type === alternate.type\n );\n}\n\nfunction setFiberPropsPath(\n fiber: DevToolsFiber,\n path: Array<string | number>,\n value: unknown,\n): void {\n const props = ensureRecord(fiber.memoizedProps);\n setPath(props, path, value);\n fiber.memoizedProps = props;\n fiber.pendingProps = props;\n}\n\nfunction deleteFiberPropsPath(\n fiber: DevToolsFiber,\n path: Array<string | number>,\n): void {\n const props = ensureRecord(fiber.memoizedProps);\n deletePath(props, path);\n fiber.memoizedProps = props;\n fiber.pendingProps = props;\n}\n\nfunction renameFiberPropsPath(\n fiber: DevToolsFiber,\n oldPath: Array<string | number>,\n newPath: Array<string | number>,\n): void {\n const props = ensureRecord(fiber.memoizedProps);\n renamePath(props, oldPath, newPath);\n fiber.memoizedProps = props;\n fiber.pendingProps = props;\n}\n\nfunction readHookState(fiber: DevToolsFiber, id: string): unknown {\n const index = Number.parseInt(id, 10);\n const state = fiber.memoizedState;\n\n if (\n Number.isInteger(index) &&\n typeof state === \"object\" &&\n state !== null &&\n \"hooks\" in state &&\n Array.isArray((state as { hooks?: unknown }).hooks)\n ) {\n return (state as { hooks: unknown[] }).hooks[index];\n }\n\n const hookNode = readHookNode(fiber, id);\n\n if (hookNode !== null) {\n return hookNode.memoizedState;\n }\n\n return state;\n}\n\nfunction setFiberHookStatePath(\n fiber: DevToolsFiber,\n id: string,\n path: Array<string | number>,\n value: unknown,\n): void {\n const hookNode = readHookNode(fiber, id);\n\n if (hookNode === null) {\n setPath(readHookState(fiber, id), path, value);\n return;\n }\n\n if (path.length === 0) {\n hookNode.memoizedState = value;\n hookNode.baseState = value;\n if (isDevToolsStateQueue(hookNode.queue)) {\n hookNode.queue.lastRenderedState = value;\n }\n return;\n }\n\n setPath(hookNode.memoizedState, path, value);\n}\n\nfunction deleteFiberHookStatePath(\n fiber: DevToolsFiber,\n id: string,\n path: Array<string | number>,\n): void {\n const hookNode = readHookNode(fiber, id);\n\n if (hookNode === null) {\n deletePath(readHookState(fiber, id), path);\n return;\n }\n\n deletePath(hookNode.memoizedState, path);\n}\n\nfunction renameFiberHookStatePath(\n fiber: DevToolsFiber,\n id: string,\n oldPath: Array<string | number>,\n newPath: Array<string | number>,\n): void {\n const hookNode = readHookNode(fiber, id);\n\n if (hookNode === null) {\n renamePath(readHookState(fiber, id), oldPath, newPath);\n return;\n }\n\n renamePath(hookNode.memoizedState, oldPath, newPath);\n}\n\nfunction readHookNode(fiber: DevToolsFiber, id: string): DevToolsHookNode | null {\n const index = Number.parseInt(id, 10);\n\n if (!Number.isInteger(index)) {\n return null;\n }\n\n let cursor = fiber.memoizedState;\n let cursorIndex = 0;\n\n while (isDevToolsHookNode(cursor)) {\n if (cursorIndex === index) {\n return cursor;\n }\n\n cursor = cursor.next;\n cursorIndex += 1;\n }\n\n return null;\n}\n\nfunction isDevToolsHookNode(value: unknown): value is DevToolsHookNode {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"memoizedState\" in value &&\n \"baseState\" in value &&\n \"baseQueue\" in value &&\n \"queue\" in value &&\n \"next\" in value\n );\n}\n\nfunction isDevToolsStateQueue(\n value: unknown,\n): value is { lastRenderedState: unknown } {\n return typeof value === \"object\" && value !== null && \"lastRenderedState\" in value;\n}\n\nfunction commitEditedFiberRoot(fiber: DevToolsFiber): void {\n const hook = getDevToolsHook();\n const id = injectDevToolsRenderer(hook);\n const root = findDevToolsRootForFiber(fiber);\n\n if (hook === undefined || id === undefined || root === null) {\n return;\n }\n\n hook.onCommitFiberRoot?.(id, root);\n hook.onPostCommitFiberRoot?.(id, root);\n}\n\nfunction findDevToolsRootForFiber(fiber: DevToolsFiber): DevToolsRoot | null {\n let cursor: DevToolsFiber | null = fiber;\n\n while (cursor.return !== null) {\n cursor = cursor.return;\n }\n\n return cursor.stateNode !== null &&\n typeof cursor.stateNode === \"object\" &&\n \"current\" in cursor.stateNode\n ? (cursor.stateNode as DevToolsRoot)\n : null;\n}\n\nfunction ensureRecord(value: unknown): Record<string | number, unknown> {\n return typeof value === \"object\" && value !== null\n ? value as Record<string | number, unknown>\n : {};\n}\n\nfunction setPath(\n target: unknown,\n path: Array<string | number>,\n value: unknown,\n): void {\n const parent = readPathParent(target, path, true);\n const key = path.at(-1);\n\n if (parent === undefined || key === undefined) {\n return;\n }\n\n if (Array.isArray(parent) && typeof key === \"number\") {\n parent[key] = value;\n return;\n }\n\n (parent as Record<string | number, unknown>)[key] = value;\n}\n\nfunction deletePath(target: unknown, path: Array<string | number>): void {\n const parent = readPathParent(target, path, false);\n const key = path.at(-1);\n\n if (parent === undefined || key === undefined) {\n return;\n }\n\n if (Array.isArray(parent) && typeof key === \"number\") {\n parent.splice(key, 1);\n return;\n }\n\n delete (parent as Record<string | number, unknown>)[key];\n}\n\nfunction renamePath(\n target: unknown,\n oldPath: Array<string | number>,\n newPath: Array<string | number>,\n): void {\n const value = readPath(target, oldPath);\n\n if (value === undefined) {\n return;\n }\n\n deletePath(target, oldPath);\n setPath(target, newPath, value);\n}\n\nfunction readPath(target: unknown, path: Array<string | number>): unknown {\n let cursor = target;\n\n for (const key of path) {\n if (typeof cursor !== \"object\" || cursor === null) {\n return undefined;\n }\n\n cursor = (cursor as Record<string | number, unknown>)[key];\n }\n\n return cursor;\n}\n\nfunction readPathParent(\n target: unknown,\n path: Array<string | number>,\n createMissing: boolean,\n): Record<string | number, unknown> | unknown[] | undefined {\n if (path.length === 0 || typeof target !== \"object\" || target === null) {\n return undefined;\n }\n\n let cursor = target as Record<string | number, unknown>;\n\n for (const [index, key] of path.slice(0, -1).entries()) {\n const nextKey = path[index + 1];\n let next = cursor[key];\n\n if (typeof next !== \"object\" || next === null) {\n if (!createMissing) {\n return undefined;\n }\n\n next = typeof nextKey === \"number\" ? [] : {};\n cursor[key] = next;\n }\n\n cursor = next as Record<string | number, unknown>;\n }\n\n return cursor;\n}\n\nfunction getCurrentTime(): number {\n return typeof performance === \"undefined\" ? Date.now() : performance.now();\n}\n\nfunction findFirstHostInstance(fiber: DevToolsFiber | null): object | null {\n if (fiber === null) {\n return null;\n }\n\n if (isHostInstance(fiber.stateNode)) {\n return fiber.stateNode;\n }\n\n let child = fiber.child;\n\n while (child !== null) {\n const hostInstance = findFirstHostInstance(child);\n\n if (hostInstance !== null) {\n return hostInstance;\n }\n\n child = child.sibling;\n }\n\n return null;\n}\n\nfunction collectHostInstances(\n fiber: DevToolsFiber | null,\n hostInstances: Set<object>,\n): void {\n if (fiber === null) {\n return;\n }\n\n if (isHostInstance(fiber.stateNode)) {\n hostInstances.add(fiber.stateNode);\n }\n\n let child = fiber.child;\n\n while (child !== null) {\n collectHostInstances(child, hostInstances);\n child = child.sibling;\n }\n}\n\nfunction getReactFiberTag(tag: FiberTag): number {\n switch (tag) {\n case \"function-component\":\n return 0;\n case \"class-component\":\n return 1;\n case \"host-root\":\n return 3;\n case \"portal\":\n return 4;\n case \"host-component\":\n return 5;\n case \"host-text\":\n return 6;\n case \"fragment\":\n return 7;\n case \"strict-mode\":\n return 8;\n case \"context-consumer\":\n return 9;\n case \"context-provider\":\n return 10;\n case \"forward-ref\":\n return 11;\n case \"profiler\":\n return 12;\n case \"suspense\":\n return 13;\n case \"memo\":\n return 14;\n case \"lazy\":\n return 16;\n case \"suspense-list\":\n return 19;\n case \"error-boundary\":\n return 1;\n }\n}\n\nfunction getElementType(fiber: Fiber): unknown {\n return fiber.tag === \"host-root\" || fiber.tag === \"host-text\"\n ? null\n : fiber.type;\n}\n\nfunction getFiberType(fiber: Fiber): unknown {\n return fiber.tag === \"host-root\" || fiber.tag === \"host-text\"\n ? null\n : fiber.type;\n}\n\nfunction getFiberRef(fiber: Fiber): unknown {\n const props = (fiber.memoizedProps ?? fiber.pendingProps) as\n | { ref?: unknown }\n | undefined;\n\n return props?.ref ?? null;\n}\n\nfunction getDisplayNameForDevToolsFiber(fiber: DevToolsFiber): string | null {\n if (fiber.tag === 3) {\n return \"Root\";\n }\n\n if (fiber.tag === 6) {\n return \"Text\";\n }\n\n return getElementTypeName(fiber.elementType ?? fiber.type);\n}\n\nfunction isHostInstance(value: unknown): value is object {\n return (\n (typeof Element !== \"undefined\" && value instanceof Element) ||\n (typeof Text !== \"undefined\" && value instanceof Text)\n );\n}\n\nfunction getChildren(children: ReactCompatNode | undefined): ReactCompatNode[] {\n if (children === undefined || children === null || typeof children === \"boolean\") {\n return [];\n }\n\n return Array.isArray(children) ? children : [children];\n}\n\nfunction getElementTypeName(type: unknown): string | null {\n if (typeof type === \"string\") {\n return type;\n }\n\n if (typeof type === \"function\") {\n return type.name === \"\" ? \"Anonymous\" : type.name;\n }\n\n if (type === Fragment) {\n return \"Fragment\";\n }\n\n if (type === Profiler) {\n return \"Profiler\";\n }\n\n if (type === Suspense) {\n return \"Suspense\";\n }\n\n if (type === SuspenseList) {\n return \"SuspenseList\";\n }\n\n if (\n typeof type === \"object\" &&\n type !== null &&\n \"render\" in type &&\n typeof (type as { render?: unknown }).render === \"function\"\n ) {\n return getElementTypeName((type as { render: Function }).render);\n }\n\n if (\n typeof type === \"object\" &&\n type !== null &&\n \"type\" in type\n ) {\n return getElementTypeName((type as { type?: unknown }).type);\n }\n\n return null;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"devtools.js","sourceRoot":"","sources":["../src/devtools.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Fragment,\n Profiler,\n Suspense,\n SuspenseList,\n isReactCompatElement,\n isReactCompatPortal,\n type ReactCompatNode,\n} from \"./element.js\";\nimport type { Fiber, FiberRoot, FiberTag } from \"./fiber.js\";\n\ninterface DevToolsHook {\n inject?: (renderer: DevToolsRenderer) => number;\n onCommitFiberRoot?: (\n rendererId: number,\n root: DevToolsRoot,\n priorityLevel?: number,\n didError?: boolean,\n ) => void;\n onPostCommitFiberRoot?: (rendererId: number, root: DevToolsRoot) => void;\n onCommitFiberUnmount?: (rendererId: number, fiber: DevToolsFiber) => void;\n}\n\ninterface DevToolsRenderer {\n bundleType: 0 | 1;\n version: string;\n reconcilerVersion: string;\n rendererPackageName: string;\n supportsFiber: true;\n getLaneLabelMap(): Map<number, string>;\n getCurrentFiber(): DevToolsFiber | null;\n findFiberByHostInstance(hostInstance: unknown): DevToolsFiber | null;\n findHostInstanceByFiber(fiber: DevToolsFiber): object | null;\n findNativeNodesForFiber(fiber: DevToolsFiber): Set<object>;\n getDisplayNameForFiber(fiber: DevToolsFiber): string | null;\n getFiberCurrentPropsFromNode(hostInstance: unknown): unknown;\n getInstanceByFiber(fiber: DevToolsFiber): unknown;\n overrideProps(fiber: DevToolsFiber, path: Array<string | number>, value: unknown): void;\n overridePropsDeletePath(fiber: DevToolsFiber, path: Array<string | number>): void;\n overridePropsRenamePath(\n fiber: DevToolsFiber,\n oldPath: Array<string | number>,\n newPath: Array<string | number>,\n ): void;\n overrideHookState(\n fiber: DevToolsFiber,\n id: string,\n path: Array<string | number>,\n value: unknown,\n ): void;\n overrideHookStateDeletePath(\n fiber: DevToolsFiber,\n id: string,\n path: Array<string | number>,\n ): void;\n overrideHookStateRenamePath(\n fiber: DevToolsFiber,\n id: string,\n oldPath: Array<string | number>,\n newPath: Array<string | number>,\n ): void;\n scheduleUpdate(fiber: DevToolsFiber): void;\n scheduleRefresh(root: unknown, update: unknown): void;\n scheduleRetry(fiber: DevToolsFiber): void;\n setSuspenseHandler(handler: (fiber: DevToolsFiber) => boolean): void;\n setErrorHandler(handler: (fiber: DevToolsFiber) => boolean): void;\n shouldSuspend(fiber: DevToolsFiber): boolean;\n shouldError(fiber: DevToolsFiber): boolean;\n injectProfilingHooks(hooks: unknown): void;\n startProfiling(): void;\n stopProfiling(): void;\n clearProfilingData(): void;\n getProfilingData(): DevToolsProfilingData;\n}\n\ninterface DevToolsRoot {\n containerInfo: Element;\n current: DevToolsFiber;\n pendingChildren: null;\n hydrate: boolean;\n}\n\ninterface DevToolsFiber {\n tag: number;\n key: string | null;\n elementType: unknown;\n type: unknown;\n stateNode: unknown;\n return: DevToolsFiber | null;\n child: DevToolsFiber | null;\n sibling: DevToolsFiber | null;\n index: number;\n ref: unknown;\n pendingProps: unknown;\n memoizedProps: unknown;\n memoizedState: unknown;\n updateQueue: null;\n dependencies: null;\n mode: number;\n flags: number;\n subtreeFlags: number;\n deletions: DevToolsFiber[] | null;\n lanes: number;\n childLanes: number;\n alternate: DevToolsFiber | null;\n actualDuration: number;\n actualStartTime: number;\n selfBaseDuration: number;\n treeBaseDuration: number;\n _debugOwner: null;\n _debugSource: null;\n _debugHookTypes: string[] | null;\n}\n\ninterface DevToolsProfilingData {\n rendererID: number | undefined;\n commitData: DevToolsCommitProfilingData[];\n}\n\ninterface DevToolsCommitProfilingData {\n timestamp: number;\n duration: number;\n fiberActualDurations: Array<{\n fiber: DevToolsFiber;\n duration: number;\n }>;\n}\n\nconst roots = new WeakMap<Element, DevToolsRoot>();\nconst hostInstanceFibers = new WeakMap<object, DevToolsFiber>();\nconst rootHostInstances = new WeakMap<DevToolsRoot, object[]>();\nlet rendererRoots = new Set<DevToolsRoot>();\nlet rendererId: number | undefined;\nlet injectedHook: DevToolsHook | undefined;\nlet isProfiling = false;\nlet profilingCommitData: DevToolsCommitProfilingData[] = [];\nlet suspenseHandler: ((fiber: DevToolsFiber) => boolean) | undefined;\nlet errorHandler: ((fiber: DevToolsFiber) => boolean) | undefined;\n\nexport function commitDevToolsRoot(\n container: Element,\n source: FiberRoot | ReactCompatNode,\n didError = false,\n): void {\n const hook = getDevToolsHook();\n const id = injectDevToolsRenderer(hook);\n\n if (hook === undefined || id === undefined) {\n return;\n }\n\n const previousRoot = roots.get(container);\n const commitStart = getCurrentTime();\n\n if (previousRoot !== undefined) {\n rendererRoots.delete(previousRoot);\n clearHostInstanceFibers(previousRoot);\n }\n\n const nextRoot = isFiberRoot(source)\n ? createDevToolsFiberRoot(container, source)\n : createFallbackDevToolsRoot(container, source);\n const root = previousRoot ?? nextRoot;\n\n if (previousRoot !== undefined) {\n linkDevToolsAlternates(nextRoot.current, previousRoot.current);\n root.current = nextRoot.current;\n root.current.stateNode = root;\n rootHostInstances.set(root, rootHostInstances.get(nextRoot) ?? []);\n }\n\n roots.set(container, root);\n rendererRoots.add(root);\n recordDevToolsCommit(root, commitStart);\n hook.onCommitFiberRoot?.(id, root, undefined, didError);\n hook.onPostCommitFiberRoot?.(id, root);\n}\n\nexport function unmountDevToolsRoot(container: Element): void {\n const hook = getDevToolsHook();\n const id = injectDevToolsRenderer(hook);\n const root = roots.get(container);\n\n if (hook === undefined || id === undefined || root === undefined) {\n return;\n }\n\n notifyFiberUnmounts(hook, id, root.current.child);\n markDevToolsRootUnmounted(root);\n hook.onCommitFiberRoot?.(id, root, undefined, false);\n hook.onPostCommitFiberRoot?.(id, root);\n rendererRoots.delete(root);\n clearHostInstanceFibers(root);\n roots.delete(container);\n}\n\nfunction injectDevToolsRenderer(hook: DevToolsHook | undefined): number | undefined {\n if (rendererId !== undefined && injectedHook === hook) {\n return rendererId;\n }\n\n if (hook?.inject === undefined) {\n return undefined;\n }\n\n injectedHook = hook;\n rendererRoots = new Set();\n rendererId = hook.inject({\n bundleType: 1,\n version: \"0.0.0\",\n reconcilerVersion: \"0.0.0\",\n rendererPackageName: \"@reckona/mreact-compat\",\n supportsFiber: true,\n getLaneLabelMap() {\n return new Map([\n [1, \"Sync\"],\n [2, \"Continuous\"],\n [4, \"Default\"],\n [8, \"Transition\"],\n ]);\n },\n getCurrentFiber() {\n return null;\n },\n findFiberByHostInstance(hostInstance) {\n return typeof hostInstance === \"object\" && hostInstance !== null\n ? (hostInstanceFibers.get(hostInstance) ?? null)\n : null;\n },\n findHostInstanceByFiber(fiber) {\n return findFirstHostInstance(fiber);\n },\n findNativeNodesForFiber(fiber) {\n const hostInstances = new Set<object>();\n collectHostInstances(fiber, hostInstances);\n return hostInstances;\n },\n getDisplayNameForFiber(fiber) {\n return getDisplayNameForDevToolsFiber(fiber);\n },\n getFiberCurrentPropsFromNode(hostInstance) {\n const fiber =\n typeof hostInstance === \"object\" && hostInstance !== null\n ? hostInstanceFibers.get(hostInstance)\n : undefined;\n\n return fiber?.memoizedProps ?? null;\n },\n getInstanceByFiber(fiber) {\n return fiber.stateNode;\n },\n overrideProps(fiber, path, value) {\n setFiberPropsPath(fiber, path, value);\n },\n overridePropsDeletePath(fiber, path) {\n deleteFiberPropsPath(fiber, path);\n },\n overridePropsRenamePath(fiber, oldPath, newPath) {\n renameFiberPropsPath(fiber, oldPath, newPath);\n },\n overrideHookState(fiber, id, path, value) {\n setFiberHookStatePath(fiber, id, path, value);\n },\n overrideHookStateDeletePath(fiber, id, path) {\n deleteFiberHookStatePath(fiber, id, path);\n },\n overrideHookStateRenamePath(fiber, id, oldPath, newPath) {\n renameFiberHookStatePath(fiber, id, oldPath, newPath);\n },\n scheduleUpdate(fiber) {\n commitEditedFiberRoot(fiber);\n },\n scheduleRefresh: noop,\n scheduleRetry(fiber) {\n commitEditedFiberRoot(fiber);\n },\n setSuspenseHandler(handler) {\n suspenseHandler = handler;\n },\n setErrorHandler(handler) {\n errorHandler = handler;\n },\n shouldSuspend(fiber) {\n return suspenseHandler?.(fiber) ?? false;\n },\n shouldError(fiber) {\n return errorHandler?.(fiber) ?? false;\n },\n injectProfilingHooks: noop,\n startProfiling() {\n isProfiling = true;\n },\n stopProfiling() {\n isProfiling = false;\n },\n clearProfilingData() {\n profilingCommitData = [];\n },\n getProfilingData() {\n return {\n rendererID: rendererId,\n commitData: profilingCommitData,\n };\n },\n });\n return rendererId;\n}\n\nfunction noop(): void {}\n\nfunction getDevToolsHook(): DevToolsHook | undefined {\n return (globalThis as { __REACT_DEVTOOLS_GLOBAL_HOOK__?: DevToolsHook })\n .__REACT_DEVTOOLS_GLOBAL_HOOK__;\n}\n\nfunction isFiberRoot(value: FiberRoot | ReactCompatNode): value is FiberRoot {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"current\" in value &&\n \"container\" in value\n );\n}\n\nfunction createDevToolsFiberRoot(\n container: Element,\n fiberRoot: FiberRoot,\n): DevToolsRoot {\n const hostInstances: object[] = [];\n const root = {\n containerInfo: container,\n current: undefined as unknown as DevToolsFiber,\n pendingChildren: null,\n hydrate: fiberRoot.hydrationState !== undefined,\n } satisfies DevToolsRoot;\n root.current = toDevToolsFiber(fiberRoot.current, null, 0, root, hostInstances);\n root.current.stateNode = root;\n rootHostInstances.set(root, hostInstances);\n return root;\n}\n\nfunction toDevToolsFiber(\n fiber: Fiber,\n parent: DevToolsFiber | null,\n index: number,\n root: DevToolsRoot,\n hostInstances: object[],\n): DevToolsFiber {\n const devToolsFiber = createDevToolsFiberShell(fiber, parent, index, root);\n\n if (isHostInstance(devToolsFiber.stateNode)) {\n hostInstanceFibers.set(devToolsFiber.stateNode, devToolsFiber);\n hostInstances.push(devToolsFiber.stateNode);\n }\n\n let previousChild: DevToolsFiber | undefined;\n let childIndex = 0;\n let child = fiber.child;\n\n while (child !== undefined) {\n const devToolsChild = toDevToolsFiber(\n child,\n devToolsFiber,\n childIndex,\n root,\n hostInstances,\n );\n\n if (previousChild === undefined) {\n devToolsFiber.child = devToolsChild;\n } else {\n previousChild.sibling = devToolsChild;\n }\n\n previousChild = devToolsChild;\n child = child.sibling;\n childIndex += 1;\n }\n\n devToolsFiber.deletions =\n fiber.deletions?.map((deletedFiber, deletedIndex) =>\n toDevToolsFiber(deletedFiber, devToolsFiber, deletedIndex, root, hostInstances),\n ) ?? null;\n return devToolsFiber;\n}\n\nfunction createDevToolsFiberShell(\n fiber: Fiber,\n parent: DevToolsFiber | null,\n index: number,\n root: DevToolsRoot,\n): DevToolsFiber {\n const pendingProps =\n fiber.tag === \"host-root\" ? fiber.pendingProps : fiber.pendingProps;\n const memoizedProps =\n fiber.tag === \"host-root\" ? fiber.memoizedProps : fiber.memoizedProps;\n\n return {\n tag: getReactFiberTag(fiber.tag),\n key: fiber.key ?? null,\n elementType: getElementType(fiber),\n type: getFiberType(fiber),\n stateNode: fiber.tag === \"host-root\" ? root : fiber.stateNode,\n return: parent,\n child: null,\n sibling: null,\n index,\n ref: getFiberRef(fiber),\n pendingProps,\n memoizedProps,\n memoizedState: fiber.tag === \"host-root\"\n ? createMountedHostRootState(memoizedProps)\n : createDevToolsMemoizedState(fiber.memoizedState),\n updateQueue: null,\n dependencies: null,\n mode: 0,\n flags: fiber.flags,\n subtreeFlags: fiber.subtreeFlags,\n deletions: null,\n lanes: fiber.lanes,\n childLanes: fiber.childLanes,\n alternate: null,\n actualDuration: 0,\n actualStartTime: -1,\n selfBaseDuration: 0,\n treeBaseDuration: 0,\n _debugOwner: null,\n _debugSource: null,\n _debugHookTypes: getDevToolsHookTypes(fiber.memoizedState),\n };\n}\n\ninterface DevToolsHookSnapshot {\n hooks: Array<{\n kind: string;\n value?: unknown;\n deps?: readonly unknown[];\n effectKind?: \"insertion\" | \"layout\" | \"normal\";\n }>;\n hookTypes?: string[];\n}\n\ninterface DevToolsHookNode {\n memoizedState: unknown;\n baseState: unknown;\n baseQueue: null;\n queue: unknown;\n next: DevToolsHookNode | null;\n}\n\nfunction createDevToolsHookList(state: unknown): DevToolsHookNode | null {\n if (!isDevToolsHookSnapshot(state)) {\n return null;\n }\n\n const nodes = state.hooks\n .filter((hook) => hook.kind !== \"debug\")\n .map(createDevToolsHookNode);\n\n for (let index = 0; index < nodes.length - 1; index += 1) {\n const next = nodes[index + 1];\n\n if (next !== undefined) {\n nodes[index]!.next = next;\n }\n }\n\n return nodes[0] ?? null;\n}\n\nfunction createDevToolsMemoizedState(state: unknown): unknown {\n return isDevToolsHookSnapshot(state)\n ? createDevToolsHookList(state)\n : state;\n}\n\nfunction createDevToolsHookNode(\n hook: DevToolsHookSnapshot[\"hooks\"][number],\n): DevToolsHookNode {\n const memoizedState = getDevToolsHookMemoizedState(hook);\n const isStateful =\n hook.kind === \"state\" ||\n hook.kind === \"reducer\" ||\n hook.kind === \"store\" ||\n hook.kind === \"transition\" ||\n hook.kind === \"deferred\";\n\n return {\n memoizedState,\n baseState: isStateful ? memoizedState : null,\n baseQueue: null,\n queue: isStateful\n ? {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: null,\n lastRenderedState: memoizedState,\n }\n : null,\n next: null,\n };\n}\n\nfunction getDevToolsHookMemoizedState(\n hook: DevToolsHookSnapshot[\"hooks\"][number],\n): unknown {\n if (hook.kind === \"memo\" || hook.kind === \"callback\") {\n return [hook.value, hook.deps ?? null];\n }\n\n if (hook.kind === \"ref\") {\n return typeof hook.value === \"object\" && hook.value !== null\n ? hook.value\n : { current: hook.value };\n }\n\n if (hook.kind === \"effect\" || hook.kind === \"imperative-handle\") {\n return {\n tag: hook.kind === \"effect\" ? hook.effectKind ?? \"normal\" : \"imperative-handle\",\n create: null,\n destroy: null,\n deps: hook.deps ?? null,\n next: null,\n };\n }\n\n return hook.value;\n}\n\nfunction getDevToolsHookTypes(state: unknown): string[] | null {\n if (!isDevToolsHookSnapshot(state)) {\n return null;\n }\n\n return state.hookTypes === undefined || state.hookTypes.length === 0\n ? null\n : [...state.hookTypes];\n}\n\nfunction isDevToolsHookSnapshot(state: unknown): state is DevToolsHookSnapshot {\n return (\n typeof state === \"object\" &&\n state !== null &&\n \"hooks\" in state &&\n Array.isArray((state as { hooks?: unknown }).hooks)\n );\n}\n\nfunction createFallbackDevToolsRoot(\n container: Element,\n element: ReactCompatNode,\n): DevToolsRoot {\n const hostInstances: object[] = [];\n const root = {\n containerInfo: container,\n current: undefined as unknown as DevToolsFiber,\n pendingChildren: null,\n hydrate: false,\n } satisfies DevToolsRoot;\n root.current = {\n ...createFallbackDevToolsFiber(\"host-root\", { children: element }, null, 0),\n tag: 3,\n stateNode: root,\n memoizedState: createMountedHostRootState({ children: element }),\n };\n root.current.child = toFallbackDevToolsFiber(\n element,\n root.current,\n 0,\n hostInstances,\n );\n rootHostInstances.set(root, hostInstances);\n return root;\n}\n\nfunction createMountedHostRootState(props: unknown): { element: unknown } {\n return {\n element: typeof props === \"object\" && props !== null && \"children\" in props\n ? (props as { children?: unknown }).children\n : null,\n };\n}\n\nfunction markDevToolsRootUnmounted(root: DevToolsRoot): void {\n root.current.child = null;\n root.current.memoizedProps = null;\n root.current.pendingProps = null;\n root.current.memoizedState = null;\n}\n\nfunction toFallbackDevToolsFiber(\n node: ReactCompatNode,\n parent: DevToolsFiber | null,\n index: number,\n hostInstances: object[],\n): DevToolsFiber | null {\n if (Array.isArray(node)) {\n const fragment = createFallbackDevToolsFiber(Fragment, {}, parent, index);\n linkFallbackChildren(fragment, node, hostInstances);\n return fragment;\n }\n\n if (!isReactCompatElement(node)) {\n if (isReactCompatPortal(node)) {\n const portal = createFallbackDevToolsFiber(\"portal\", {}, parent, index);\n portal.stateNode = node.container;\n portal.child = toFallbackDevToolsFiber(node.children, portal, 0, hostInstances);\n return portal;\n }\n\n return createFallbackDevToolsFiber(\"#text\", node, parent, index);\n }\n\n const fiber = createFallbackDevToolsFiber(node.type, node.props, parent, index);\n fiber.key = node.key;\n fiber.ref = node.ref;\n linkFallbackChildren(fiber, getChildren(node.props.children), hostInstances);\n return fiber;\n}\n\nfunction linkFallbackChildren(\n parent: DevToolsFiber,\n children: readonly ReactCompatNode[],\n hostInstances: object[],\n): void {\n let previous: DevToolsFiber | undefined;\n\n for (const [index, child] of children.entries()) {\n const childFiber = toFallbackDevToolsFiber(child, parent, index, hostInstances);\n\n if (childFiber === null) {\n continue;\n }\n\n if (previous === undefined) {\n parent.child = childFiber;\n } else {\n previous.sibling = childFiber;\n }\n\n previous = childFiber;\n }\n}\n\nfunction createFallbackDevToolsFiber(\n type: unknown,\n props: unknown,\n parent: DevToolsFiber | null,\n index: number,\n): DevToolsFiber {\n const tag = type === \"#text\"\n ? 6\n : type === \"host-root\"\n ? 3\n : type === \"portal\"\n ? 4\n : typeof type === \"string\"\n ? 5\n : type === Fragment\n ? 7\n : type === Profiler\n ? 12\n : type === Suspense\n ? 13\n : type === SuspenseList\n ? 19\n : typeof type === \"function\"\n ? 0\n : 0;\n\n return {\n tag,\n key: null,\n elementType: type,\n type,\n stateNode: null,\n return: parent,\n child: null,\n sibling: null,\n index,\n ref: null,\n pendingProps: props,\n memoizedProps: props,\n memoizedState: null,\n updateQueue: null,\n dependencies: null,\n mode: 0,\n flags: 0,\n subtreeFlags: 0,\n deletions: null,\n lanes: 0,\n childLanes: 0,\n alternate: null,\n actualDuration: 0,\n actualStartTime: -1,\n selfBaseDuration: 0,\n treeBaseDuration: 0,\n _debugOwner: null,\n _debugSource: null,\n _debugHookTypes: null,\n };\n}\n\nfunction notifyFiberUnmounts(\n hook: DevToolsHook,\n id: number,\n fiber: DevToolsFiber | null,\n): void {\n let cursor = fiber;\n\n while (cursor !== null) {\n hook.onCommitFiberUnmount?.(id, cursor);\n notifyFiberUnmounts(hook, id, cursor.child);\n cursor = cursor.sibling;\n }\n}\n\nfunction clearHostInstanceFibers(root: DevToolsRoot): void {\n for (const hostInstance of rootHostInstances.get(root) ?? []) {\n hostInstanceFibers.delete(hostInstance);\n }\n\n rootHostInstances.delete(root);\n}\n\nfunction recordDevToolsCommit(root: DevToolsRoot, commitStart: number): void {\n if (!isProfiling) {\n return;\n }\n\n const timestamp = getCurrentTime();\n const fiberActualDurations: DevToolsCommitProfilingData[\"fiberActualDurations\"] = [];\n collectFiberDurations(root.current, fiberActualDurations);\n profilingCommitData.push({\n timestamp,\n duration: Math.max(0, timestamp - commitStart),\n fiberActualDurations,\n });\n}\n\nfunction collectFiberDurations(\n fiber: DevToolsFiber | null,\n durations: DevToolsCommitProfilingData[\"fiberActualDurations\"],\n): void {\n let cursor = fiber;\n\n while (cursor !== null) {\n durations.push({\n fiber: cursor,\n duration: cursor.actualDuration,\n });\n collectFiberDurations(cursor.child, durations);\n cursor = cursor.sibling;\n }\n}\n\nfunction linkDevToolsAlternates(\n current: DevToolsFiber | null,\n alternate: DevToolsFiber | null,\n): void {\n if (current === null || alternate === null || !canLinkDevToolsAlternates(current, alternate)) {\n return;\n }\n\n current.alternate = alternate;\n alternate.alternate = current;\n linkDevToolsChildAlternates(current.child, alternate.child);\n}\n\nfunction linkDevToolsChildAlternates(\n currentChild: DevToolsFiber | null,\n alternateChild: DevToolsFiber | null,\n): void {\n const unmatchedAlternates = new Set<DevToolsFiber>();\n let alternateCursor = alternateChild;\n\n while (alternateCursor !== null) {\n unmatchedAlternates.add(alternateCursor);\n alternateCursor = alternateCursor.sibling;\n }\n\n let currentCursor = currentChild;\n\n while (currentCursor !== null) {\n const alternate = findMatchingDevToolsAlternate(currentCursor, unmatchedAlternates);\n\n if (alternate !== null) {\n unmatchedAlternates.delete(alternate);\n linkDevToolsAlternates(currentCursor, alternate);\n }\n\n currentCursor = currentCursor.sibling;\n }\n}\n\nfunction findMatchingDevToolsAlternate(\n current: DevToolsFiber,\n candidates: Set<DevToolsFiber>,\n): DevToolsFiber | null {\n for (const candidate of candidates) {\n if (canLinkDevToolsAlternates(current, candidate)) {\n return candidate;\n }\n }\n\n return null;\n}\n\nfunction canLinkDevToolsAlternates(current: DevToolsFiber, alternate: DevToolsFiber): boolean {\n return (\n current.tag === alternate.tag &&\n current.key === alternate.key &&\n current.elementType === alternate.elementType &&\n current.type === alternate.type\n );\n}\n\nfunction setFiberPropsPath(\n fiber: DevToolsFiber,\n path: Array<string | number>,\n value: unknown,\n): void {\n const props = ensureRecord(fiber.memoizedProps);\n setPath(props, path, value);\n fiber.memoizedProps = props;\n fiber.pendingProps = props;\n}\n\nfunction deleteFiberPropsPath(\n fiber: DevToolsFiber,\n path: Array<string | number>,\n): void {\n const props = ensureRecord(fiber.memoizedProps);\n deletePath(props, path);\n fiber.memoizedProps = props;\n fiber.pendingProps = props;\n}\n\nfunction renameFiberPropsPath(\n fiber: DevToolsFiber,\n oldPath: Array<string | number>,\n newPath: Array<string | number>,\n): void {\n const props = ensureRecord(fiber.memoizedProps);\n renamePath(props, oldPath, newPath);\n fiber.memoizedProps = props;\n fiber.pendingProps = props;\n}\n\nfunction readHookState(fiber: DevToolsFiber, id: string): unknown {\n const index = Number.parseInt(id, 10);\n const state = fiber.memoizedState;\n\n if (\n Number.isInteger(index) &&\n typeof state === \"object\" &&\n state !== null &&\n \"hooks\" in state &&\n Array.isArray((state as { hooks?: unknown }).hooks)\n ) {\n return (state as { hooks: unknown[] }).hooks[index];\n }\n\n const hookNode = readHookNode(fiber, id);\n\n if (hookNode !== null) {\n return hookNode.memoizedState;\n }\n\n return state;\n}\n\nfunction setFiberHookStatePath(\n fiber: DevToolsFiber,\n id: string,\n path: Array<string | number>,\n value: unknown,\n): void {\n const hookNode = readHookNode(fiber, id);\n\n if (hookNode === null) {\n setPath(readHookState(fiber, id), path, value);\n return;\n }\n\n if (path.length === 0) {\n hookNode.memoizedState = value;\n hookNode.baseState = value;\n if (isDevToolsStateQueue(hookNode.queue)) {\n hookNode.queue.lastRenderedState = value;\n }\n return;\n }\n\n setPath(hookNode.memoizedState, path, value);\n}\n\nfunction deleteFiberHookStatePath(\n fiber: DevToolsFiber,\n id: string,\n path: Array<string | number>,\n): void {\n const hookNode = readHookNode(fiber, id);\n\n if (hookNode === null) {\n deletePath(readHookState(fiber, id), path);\n return;\n }\n\n deletePath(hookNode.memoizedState, path);\n}\n\nfunction renameFiberHookStatePath(\n fiber: DevToolsFiber,\n id: string,\n oldPath: Array<string | number>,\n newPath: Array<string | number>,\n): void {\n const hookNode = readHookNode(fiber, id);\n\n if (hookNode === null) {\n renamePath(readHookState(fiber, id), oldPath, newPath);\n return;\n }\n\n renamePath(hookNode.memoizedState, oldPath, newPath);\n}\n\nfunction readHookNode(fiber: DevToolsFiber, id: string): DevToolsHookNode | null {\n const index = Number.parseInt(id, 10);\n\n if (!Number.isInteger(index)) {\n return null;\n }\n\n let cursor = fiber.memoizedState;\n let cursorIndex = 0;\n\n while (isDevToolsHookNode(cursor)) {\n if (cursorIndex === index) {\n return cursor;\n }\n\n cursor = cursor.next;\n cursorIndex += 1;\n }\n\n return null;\n}\n\nfunction isDevToolsHookNode(value: unknown): value is DevToolsHookNode {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"memoizedState\" in value &&\n \"baseState\" in value &&\n \"baseQueue\" in value &&\n \"queue\" in value &&\n \"next\" in value\n );\n}\n\nfunction isDevToolsStateQueue(\n value: unknown,\n): value is { lastRenderedState: unknown } {\n return typeof value === \"object\" && value !== null && \"lastRenderedState\" in value;\n}\n\nfunction commitEditedFiberRoot(fiber: DevToolsFiber): void {\n const hook = getDevToolsHook();\n const id = injectDevToolsRenderer(hook);\n const root = findDevToolsRootForFiber(fiber);\n\n if (hook === undefined || id === undefined || root === null) {\n return;\n }\n\n hook.onCommitFiberRoot?.(id, root);\n hook.onPostCommitFiberRoot?.(id, root);\n}\n\nfunction findDevToolsRootForFiber(fiber: DevToolsFiber): DevToolsRoot | null {\n let cursor: DevToolsFiber | null = fiber;\n\n while (cursor.return !== null) {\n cursor = cursor.return;\n }\n\n return cursor.stateNode !== null &&\n typeof cursor.stateNode === \"object\" &&\n \"current\" in cursor.stateNode\n ? (cursor.stateNode as DevToolsRoot)\n : null;\n}\n\nfunction ensureRecord(value: unknown): Record<string | number, unknown> {\n return typeof value === \"object\" && value !== null\n ? value as Record<string | number, unknown>\n : {};\n}\n\nfunction setPath(\n target: unknown,\n path: Array<string | number>,\n value: unknown,\n): void {\n const parent = readPathParent(target, path, true);\n const key = path.at(-1);\n\n if (parent === undefined || key === undefined) {\n return;\n }\n\n if (Array.isArray(parent) && typeof key === \"number\") {\n parent[key] = value;\n return;\n }\n\n (parent as Record<string | number, unknown>)[key] = value;\n}\n\nfunction deletePath(target: unknown, path: Array<string | number>): void {\n const parent = readPathParent(target, path, false);\n const key = path.at(-1);\n\n if (parent === undefined || key === undefined) {\n return;\n }\n\n if (Array.isArray(parent) && typeof key === \"number\") {\n parent.splice(key, 1);\n return;\n }\n\n delete (parent as Record<string | number, unknown>)[key];\n}\n\nfunction renamePath(\n target: unknown,\n oldPath: Array<string | number>,\n newPath: Array<string | number>,\n): void {\n const value = readPath(target, oldPath);\n\n if (value === undefined) {\n return;\n }\n\n deletePath(target, oldPath);\n setPath(target, newPath, value);\n}\n\nfunction readPath(target: unknown, path: Array<string | number>): unknown {\n let cursor = target;\n\n for (const key of path) {\n if (typeof cursor !== \"object\" || cursor === null) {\n return undefined;\n }\n\n cursor = (cursor as Record<string | number, unknown>)[key];\n }\n\n return cursor;\n}\n\nfunction readPathParent(\n target: unknown,\n path: Array<string | number>,\n createMissing: boolean,\n): Record<string | number, unknown> | unknown[] | undefined {\n if (path.length === 0 || typeof target !== \"object\" || target === null) {\n return undefined;\n }\n\n let cursor = target as Record<string | number, unknown>;\n\n for (const [index, key] of path.slice(0, -1).entries()) {\n const nextKey = path[index + 1];\n let next = cursor[key];\n\n if (typeof next !== \"object\" || next === null) {\n if (!createMissing) {\n return undefined;\n }\n\n next = typeof nextKey === \"number\" ? [] : {};\n cursor[key] = next;\n }\n\n cursor = next as Record<string | number, unknown>;\n }\n\n return cursor;\n}\n\nfunction getCurrentTime(): number {\n return typeof performance === \"undefined\" ? Date.now() : performance.now();\n}\n\nfunction findFirstHostInstance(fiber: DevToolsFiber | null): object | null {\n if (fiber === null) {\n return null;\n }\n\n if (isHostInstance(fiber.stateNode)) {\n return fiber.stateNode;\n }\n\n let child = fiber.child;\n\n while (child !== null) {\n const hostInstance = findFirstHostInstance(child);\n\n if (hostInstance !== null) {\n return hostInstance;\n }\n\n child = child.sibling;\n }\n\n return null;\n}\n\nfunction collectHostInstances(\n fiber: DevToolsFiber | null,\n hostInstances: Set<object>,\n): void {\n if (fiber === null) {\n return;\n }\n\n if (isHostInstance(fiber.stateNode)) {\n hostInstances.add(fiber.stateNode);\n }\n\n let child = fiber.child;\n\n while (child !== null) {\n collectHostInstances(child, hostInstances);\n child = child.sibling;\n }\n}\n\nfunction getReactFiberTag(tag: FiberTag): number {\n switch (tag) {\n case \"function-component\":\n return 0;\n case \"class-component\":\n return 1;\n case \"host-root\":\n return 3;\n case \"portal\":\n return 4;\n case \"host-component\":\n return 5;\n case \"host-text\":\n return 6;\n case \"fragment\":\n return 7;\n case \"strict-mode\":\n return 8;\n case \"context-consumer\":\n return 9;\n case \"context-provider\":\n return 10;\n case \"forward-ref\":\n return 11;\n case \"profiler\":\n return 12;\n case \"reactive-dom-block\":\n return 5;\n case \"suspense\":\n return 13;\n case \"memo\":\n return 14;\n case \"lazy\":\n return 16;\n case \"suspense-list\":\n return 19;\n case \"error-boundary\":\n return 1;\n }\n}\n\nfunction getElementType(fiber: Fiber): unknown {\n return fiber.tag === \"host-root\" || fiber.tag === \"host-text\"\n ? null\n : fiber.type;\n}\n\nfunction getFiberType(fiber: Fiber): unknown {\n return fiber.tag === \"host-root\" || fiber.tag === \"host-text\"\n ? null\n : fiber.type;\n}\n\nfunction getFiberRef(fiber: Fiber): unknown {\n const props = (fiber.memoizedProps ?? fiber.pendingProps) as\n | { ref?: unknown }\n | undefined;\n\n return props?.ref ?? null;\n}\n\nfunction getDisplayNameForDevToolsFiber(fiber: DevToolsFiber): string | null {\n if (fiber.tag === 3) {\n return \"Root\";\n }\n\n if (fiber.tag === 6) {\n return \"Text\";\n }\n\n return getElementTypeName(fiber.elementType ?? fiber.type);\n}\n\nfunction isHostInstance(value: unknown): value is object {\n return (\n (typeof Element !== \"undefined\" && value instanceof Element) ||\n (typeof Text !== \"undefined\" && value instanceof Text)\n );\n}\n\nfunction getChildren(children: ReactCompatNode | undefined): ReactCompatNode[] {\n if (children === undefined || children === null || typeof children === \"boolean\") {\n return [];\n }\n\n return Array.isArray(children) ? children : [children];\n}\n\nfunction getElementTypeName(type: unknown): string | null {\n if (typeof type === \"string\") {\n return type;\n }\n\n if (typeof type === \"function\") {\n return type.name === \"\" ? \"Anonymous\" : type.name;\n }\n\n if (type === Fragment) {\n return \"Fragment\";\n }\n\n if (type === Profiler) {\n return \"Profiler\";\n }\n\n if (type === Suspense) {\n return \"Suspense\";\n }\n\n if (type === SuspenseList) {\n return \"SuspenseList\";\n }\n\n if (\n typeof type === \"object\" &&\n type !== null &&\n \"render\" in type &&\n typeof (type as { render?: unknown }).render === \"function\"\n ) {\n return getElementTypeName((type as { render: Function }).render);\n }\n\n if (\n typeof type === \"object\" &&\n type !== null &&\n \"type\" in type\n ) {\n return getElementTypeName((type as { type?: unknown }).type);\n }\n\n return null;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom-host-rules.d.ts","sourceRoot":"","sources":["../src/dom-host-rules.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC;AACnD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,KAAK,CAAC;AAE3C,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IACrC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC;IAChE,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IACrC,YAAY,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,cAAc,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7E,eAAe,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAAC;IAClD,eAAe,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAAC;CACzE;AAoDD,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,QAAQ,GAAG,kBAAkB,EAC1C,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,aAAa,GACvB,WAAW,CAMb;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAElE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,GAAG,UAAU,CAElF;AAED,wBAAgB,uBAAuB,CACrC,eAAe,EAAE,aAAa,EAC9B,OAAO,EAAE,MAAM,GACd,aAAa,CAMf;AAED,wBAAgB,wBAAwB,CACtC,gBAAgB,EAAE,aAAa,EAC/B,OAAO,EAAE,MAAM,GACd,aAAa,CAEf;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,aAAa,GACvB,OAAO,
|
|
1
|
+
{"version":3,"file":"dom-host-rules.d.ts","sourceRoot":"","sources":["../src/dom-host-rules.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC;AACnD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,KAAK,CAAC;AAE3C,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IACrC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC;IAChE,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IACrC,YAAY,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,cAAc,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7E,eAAe,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAAC;IAClD,eAAe,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAAC;CACzE;AAoDD,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,QAAQ,GAAG,kBAAkB,EAC1C,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,aAAa,GACvB,WAAW,CAMb;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAElE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,GAAG,UAAU,CAElF;AAED,wBAAgB,uBAAuB,CACrC,eAAe,EAAE,aAAa,EAC9B,OAAO,EAAE,MAAM,GACd,aAAa,CAMf;AAED,wBAAgB,wBAAwB,CACtC,gBAAgB,EAAE,aAAa,EAC/B,OAAO,EAAE,MAAM,GACd,aAAa,CAEf;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,aAAa,GACvB,OAAO,CAST;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAM9E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOvD"}
|
package/dist/dom-host-rules.js
CHANGED
|
@@ -71,7 +71,10 @@ export function hostElementMatches(element, tagName, namespace) {
|
|
|
71
71
|
if (!isDomHostElement(element)) {
|
|
72
72
|
return false;
|
|
73
73
|
}
|
|
74
|
-
|
|
74
|
+
// localName is already lowercase for HTML (and preserves case for SVG), so it
|
|
75
|
+
// matches the lowercase tag from the element type without allocating the
|
|
76
|
+
// lowercased string that element.tagName.toLowerCase() would.
|
|
77
|
+
return element.localName === tagName && element.namespaceURI === namespaceUri(namespace);
|
|
75
78
|
}
|
|
76
79
|
export function serializeClientStyleValue(name, value) {
|
|
77
80
|
if (typeof value === "number" && value !== 0 && !name.startsWith("--") && !isUnitlessNumberStyle.has(name)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom-host-rules.js","sourceRoot":"","sources":["../src/dom-host-rules.ts"],"names":[],"mappings":"AAkBA,MAAM,aAAa,GAAG,8BAA8B,CAAC;AACrD,MAAM,YAAY,GAAG,4BAA4B,CAAC;AAElD,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACpC,yBAAyB;IACzB,aAAa;IACb,mBAAmB;IACnB,kBAAkB;IAClB,kBAAkB;IAClB,SAAS;IACT,cAAc;IACd,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,MAAM;IACN,UAAU;IACV,cAAc;IACd,YAAY;IACZ,cAAc;IACd,WAAW;IACX,UAAU;IACV,SAAS;IACT,YAAY;IACZ,aAAa;IACb,cAAc;IACd,YAAY;IACZ,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,SAAS;IACT,OAAO;IACP,SAAS;IACT,OAAO;IACP,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,aAAa;IACb,cAAc;IACd,aAAa;IACb,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,eAAe;IACf,aAAa;CACd,CAAC,CAAC;AAEH,MAAM,UAAU,iBAAiB,CAC/B,WAA0C,EAC1C,OAAe,EACf,SAAwB;IAExB,IAAI,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,KAAK,EAAE,CAAC;QAC1D,OAAO,WAAW,CAAC,eAAe,EAAE,CAAC,YAAY,EAAE,OAAO,CAAgB,CAAC;IAC7E,CAAC;IAED,OAAO,WAAW,CAAC,aAAa,CAAC,OAAO,CAAgB,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,KAAK,YAAY,WAAW,IAAI,KAAK,YAAY,UAAU,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,eAA8B,EAC9B,OAAe;IAEf,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,gBAA+B,EAC/B,OAAe;IAEf,OAAO,gBAAgB,KAAK,KAAK,IAAI,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC;AAC/F,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAAoB,EACpB,OAAe,EACf,SAAwB;IAExB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"dom-host-rules.js","sourceRoot":"","sources":["../src/dom-host-rules.ts"],"names":[],"mappings":"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","sourcesContent":["export type HostElement = HTMLElement | SVGElement;\nexport type HostNamespace = \"html\" | \"svg\";\n\nexport interface CustomHostElement {\n ownerDocument?: CustomHostDocument;\n appendChild(child: unknown): unknown;\n insertBefore(newNode: unknown, referenceNode: unknown): unknown;\n removeChild(child: unknown): unknown;\n setAttribute?(name: string, value: string): void;\n setAttributeNS?(namespace: string | null, name: string, value: string): void;\n removeAttribute?(name: string): void;\n}\n\nexport interface CustomHostDocument {\n createElement(tagName: string): CustomHostElement;\n createElementNS?(namespace: string, tagName: string): CustomHostElement;\n}\n\nconst htmlNamespace = \"http://www.w3.org/1999/xhtml\";\nconst svgNamespace = \"http://www.w3.org/2000/svg\";\n\nconst isUnitlessNumberStyle = 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 \"flexPositive\",\n \"flexShrink\",\n \"flexNegative\",\n \"flexOrder\",\n \"gridArea\",\n \"gridRow\",\n \"gridRowEnd\",\n \"gridRowSpan\",\n \"gridRowStart\",\n \"gridColumn\",\n \"gridColumnEnd\",\n \"gridColumnSpan\",\n \"gridColumnStart\",\n \"fontWeight\",\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\nexport function createHostElement(\n documentRef: Document | CustomHostDocument,\n tagName: string,\n namespace: HostNamespace,\n): HostElement {\n if (namespaceForHostElement(namespace, tagName) === \"svg\") {\n return documentRef.createElementNS?.(svgNamespace, tagName) as HostElement;\n }\n\n return documentRef.createElement(tagName) as HostElement;\n}\n\nexport function isHostElement(value: unknown): value is HostElement {\n return isDomHostElement(value) || isCustomHostElement(value);\n}\n\nexport function isDomHostElement(value: unknown): value is HTMLElement | SVGElement {\n return value instanceof HTMLElement || value instanceof SVGElement;\n}\n\nexport function namespaceForHostElement(\n parentNamespace: HostNamespace,\n tagName: string,\n): HostNamespace {\n if (tagName === \"svg\") {\n return \"svg\";\n }\n\n return parentNamespace;\n}\n\nexport function namespaceForHostChildren(\n elementNamespace: HostNamespace,\n tagName: string,\n): HostNamespace {\n return elementNamespace === \"svg\" && tagName === \"foreignObject\" ? \"html\" : elementNamespace;\n}\n\nexport function hostElementMatches(\n element: HostElement,\n tagName: string,\n namespace: HostNamespace,\n): boolean {\n if (!isDomHostElement(element)) {\n return false;\n }\n\n // localName is already lowercase for HTML (and preserves case for SVG), so it\n // matches the lowercase tag from the element type without allocating the\n // lowercased string that element.tagName.toLowerCase() would.\n return element.localName === tagName && element.namespaceURI === namespaceUri(namespace);\n}\n\nexport function serializeClientStyleValue(name: string, value: unknown): string {\n if (typeof value === \"number\" && value !== 0 && !name.startsWith(\"--\") && !isUnitlessNumberStyle.has(name)) {\n return `${value}px`;\n }\n\n return String(value);\n}\n\nexport function styleNameToCssName(name: string): string {\n if (name.startsWith(\"--\")) {\n return name;\n }\n\n const cssName = name.replace(/[A-Z]/g, (char) => `-${char.toLowerCase()}`);\n return cssName.startsWith(\"ms-\") ? `-${cssName}` : cssName;\n}\n\nfunction namespaceUri(namespace: HostNamespace): string {\n return namespace === \"svg\" ? svgNamespace : htmlNamespace;\n}\n\nfunction isCustomHostElement(value: unknown): value is CustomHostElement {\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n\n const candidate = value as Partial<CustomHostElement> & {\n ownerDocument?: { createElement?: unknown };\n };\n return (\n typeof candidate.appendChild === \"function\" &&\n typeof candidate.insertBefore === \"function\" &&\n typeof candidate.removeChild === \"function\" &&\n typeof candidate.ownerDocument?.createElement === \"function\"\n );\n}\n"]}
|
package/dist/dom-props.js
CHANGED
|
@@ -433,7 +433,8 @@ function isEventLikePropName(name) {
|
|
|
433
433
|
return (first === 111 || first === 79) && (second === 110 || second === 78);
|
|
434
434
|
}
|
|
435
435
|
function sanitizeMetaRefreshElementProps(element, props) {
|
|
436
|
-
|
|
436
|
+
const tagName = element.tagName;
|
|
437
|
+
if (tagName !== "META" && tagName !== "meta") {
|
|
437
438
|
return props;
|
|
438
439
|
}
|
|
439
440
|
const httpEquiv = props["http-equiv"] ?? props.httpEquiv ?? element.getAttribute("http-equiv");
|
package/dist/dom-props.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom-props.js","sourceRoot":"","sources":["../src/dom-props.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n getAppliedProps,\n setAppliedProps,\n ensureDelegatedEventListenersForProp,\n} from \"./host-event-binder.js\";\nimport { reportRecoverable, type RenderOptions } from \"./hydration.js\";\nimport {\n isDangerousHtmlAttribute,\n isDangerousHtmlOptIn,\n isSrcsetAttribute,\n isUnsafeMetaRefreshContent,\n isUnsafeUrlAttribute,\n isUrlAttribute,\n} from \"./url-safety.js\";\nimport {\n serializeClientStyleValue,\n styleNameToCssName,\n type HostElement,\n} from \"./dom-host-rules.js\";\n\nexport function applyProps(\n element: HostElement,\n props: Record<string, unknown>,\n path: string,\n options: RenderOptions,\n): void {\n const preserveHydrationAttributes = options.preserveHydrationAttributes === true;\n const previous = getAppliedProps(element);\n const nextProps = sanitizeMetaRefreshElementProps(element, props);\n\n if (previous === undefined && !preserveHydrationAttributes) {\n applyInitialProps(element, nextProps, path, options);\n setAppliedProps(element, {\n props: nextProps,\n });\n return;\n }\n\n const previousProps = previous?.props ?? {};\n const previousAttributeNames = previous?.attributeNames ?? collectAttributeNames(previousProps);\n const nextAttributeNames = collectAttributeNames(nextProps);\n\n if (!preserveHydrationAttributes) {\n for (const attributeName of previousAttributeNames) {\n if (!nextAttributeNames.includes(attributeName)) {\n if (attributeName === \"style\") {\n removePreviousStyle(element, previousProps.style, path, options);\n continue;\n }\n\n if (element.hasAttribute(attributeName)) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Hydration attribute mismatch: ${attributeName}.`),\n );\n element.removeAttribute(attributeName);\n }\n }\n }\n }\n\n for (const name in nextProps) {\n if (!Object.prototype.hasOwnProperty.call(nextProps, name)) {\n continue;\n }\n\n const value = nextProps[name];\n\n if (name === \"children\" || name === \"ref\" || name === \"key\") {\n continue;\n }\n\n if (isFormValuePropName(name) && applyFormValueProp(element, name, value, path, options)) {\n continue;\n }\n\n if (name === \"className\") {\n applyAttribute(element, \"class\", value, path, options);\n continue;\n }\n\n if (name === \"htmlFor\") {\n applyAttribute(element, \"for\", value, path, options);\n continue;\n }\n\n if (name === \"style\") {\n applyStyle(element, previousProps[name], value, path, options);\n continue;\n }\n\n if (isReactEventHandlerPropName(name) && typeof value === \"function\") {\n if (previousProps[name] === value) {\n continue;\n }\n\n ensureDelegatedEventListenersForProp(options.eventRoot ?? element, name);\n continue;\n }\n\n if (isEventLikePropName(name)) {\n continue;\n }\n\n const attributeName = toDomAttributeName(name);\n\n if (typeof value === \"boolean\" && isBooleanishStringAttribute(attributeName)) {\n applyAttribute(element, attributeName, value ? \"true\" : \"false\", path, options);\n continue;\n }\n\n if (typeof value === \"boolean\" && isDataAttribute(attributeName)) {\n applyAttribute(element, attributeName, value ? \"true\" : \"false\", path, options);\n continue;\n }\n\n if (typeof value === \"boolean\") {\n if (element.hasAttribute(attributeName) !== value) {\n if (!preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Hydration attribute mismatch: ${attributeName}.`),\n );\n }\n }\n\n if (preserveHydrationAttributes) {\n continue;\n }\n\n if ((element as unknown as Record<string, unknown>)[name] !== value) {\n (element as unknown as Record<string, unknown>)[name] = value;\n }\n\n if (value) {\n if (!element.hasAttribute(attributeName)) {\n element.setAttribute(attributeName, \"\");\n }\n } else if (element.hasAttribute(attributeName)) {\n element.removeAttribute(attributeName);\n }\n continue;\n }\n\n applyAttribute(element, toDomAttributeName(name), value, path, options);\n }\n\n setAppliedProps(element, {\n attributeNames: nextAttributeNames,\n props: nextProps,\n });\n}\n\nfunction applyInitialProps(\n element: HostElement,\n props: Record<string, unknown>,\n path: string,\n options: RenderOptions,\n): void {\n const useAttributeFastPath = options.hydration === undefined;\n\n for (const name in props) {\n if (!Object.prototype.hasOwnProperty.call(props, name)) {\n continue;\n }\n\n const value = props[name];\n\n if (name === \"children\" || name === \"ref\" || name === \"key\") {\n continue;\n }\n\n if (isFormValuePropName(name) && applyFormValueProp(element, name, value, path, options)) {\n continue;\n }\n\n if (value === null || value === undefined) {\n continue;\n }\n\n if (name === \"className\") {\n applyInitialOrHydrationAttribute(\n element,\n \"class\",\n value,\n path,\n options,\n useAttributeFastPath,\n );\n continue;\n }\n\n if (name === \"htmlFor\") {\n applyInitialOrHydrationAttribute(\n element,\n \"for\",\n value,\n path,\n options,\n useAttributeFastPath,\n );\n continue;\n }\n\n if (name === \"style\") {\n applyStyle(element, undefined, value, path, options);\n continue;\n }\n\n if (isReactEventHandlerPropName(name) && typeof value === \"function\") {\n ensureDelegatedEventListenersForProp(options.eventRoot ?? element, name);\n continue;\n }\n\n if (isEventLikePropName(name)) {\n continue;\n }\n\n const attributeName = toDomAttributeName(name);\n\n if (typeof value === \"boolean\" && isBooleanishStringAttribute(attributeName)) {\n applyInitialOrHydrationAttribute(\n element,\n attributeName,\n value ? \"true\" : \"false\",\n path,\n options,\n useAttributeFastPath,\n );\n continue;\n }\n\n if (typeof value === \"boolean\" && isDataAttribute(attributeName)) {\n applyInitialOrHydrationAttribute(\n element,\n attributeName,\n value ? \"true\" : \"false\",\n path,\n options,\n useAttributeFastPath,\n );\n continue;\n }\n\n if (value === false) {\n continue;\n }\n\n if (typeof value === \"boolean\") {\n if ((element as unknown as Record<string, unknown>)[name] !== value) {\n (element as unknown as Record<string, unknown>)[name] = value;\n }\n\n if (value) {\n if (!element.hasAttribute(attributeName)) {\n element.setAttribute(attributeName, \"\");\n }\n } else if (element.hasAttribute(attributeName)) {\n element.removeAttribute(attributeName);\n }\n continue;\n }\n\n applyInitialOrHydrationAttribute(\n element,\n attributeName,\n value,\n path,\n options,\n useAttributeFastPath,\n );\n }\n\n}\n\n\nexport function applyPostChildFormProps(\n element: Element,\n props: Record<string, unknown>,\n previousProps?: Record<string, unknown>,\n): void {\n if (!isPostChildFormElement(element)) {\n return;\n }\n\n if (element instanceof HTMLInputElement) {\n if (hasOwnProp(props, \"checked\")) {\n const checked = props.checked !== null && props.checked !== undefined && props.checked !== false;\n element.checked = checked;\n element.defaultChecked = checked;\n if (checked) {\n element.setAttribute(\"checked\", \"\");\n } else {\n element.removeAttribute(\"checked\");\n }\n }\n\n const value = postChildFormValue(props, previousProps);\n if (value !== undefined) {\n element.value = value;\n element.setAttribute(\"value\", value);\n }\n return;\n }\n\n const value = postChildFormValue(props, previousProps);\n\n if (value === undefined) {\n return;\n }\n\n if (element instanceof HTMLTextAreaElement) {\n element.value = value;\n element.textContent = value;\n return;\n }\n\n if (element instanceof HTMLSelectElement) {\n for (const option of Array.from(element.options)) {\n option.selected = option.value === value;\n }\n }\n}\n\nfunction isPostChildFormElement(\n element: Element,\n): element is HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement {\n return (\n element instanceof HTMLInputElement ||\n element instanceof HTMLTextAreaElement ||\n element instanceof HTMLSelectElement\n );\n}\n\nfunction postChildFormValue(\n props: Record<string, unknown>,\n previousProps: Record<string, unknown> | undefined,\n): string | undefined {\n if (hasOwnProp(props, \"value\")) {\n return props.value === null || props.value === undefined ? \"\" : String(props.value);\n }\n\n if (previousProps === undefined && hasOwnProp(props, \"defaultValue\")) {\n return props.defaultValue === null || props.defaultValue === undefined\n ? \"\"\n : String(props.defaultValue);\n }\n\n return undefined;\n}\n\nfunction hasOwnProp(props: Record<string, unknown>, name: string): boolean {\n return Object.prototype.hasOwnProperty.call(props, name);\n}\n\nfunction applyAttribute(\n element: Element,\n name: string,\n value: unknown,\n path: string,\n options: RenderOptions,\n): void {\n const preserveHydrationAttributes = options.preserveHydrationAttributes === true;\n\n // Issue 077: srcdoc and other HTML-bearing attributes require the\n // explicit `{ __html: \"...\" }` opt-in. A plain value -- string,\n // number, boolean -- is treated as if it were null (drop the\n // attribute and log a recoverable mismatch).\n if (isDangerousHtmlAttribute(name) && !isDangerousHtmlOptIn(value)) {\n if (element.hasAttribute(name) && !preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Unsafe HTML attribute dropped: ${name}.`),\n );\n }\n if (!preserveHydrationAttributes) {\n element.removeAttribute(name);\n }\n return;\n }\n\n if (isEventLikePropName(name)) {\n if (element.hasAttribute(name) && !preserveHydrationAttributes) {\n element.removeAttribute(name);\n }\n return;\n }\n\n if (value === null || value === undefined || value === false) {\n if (element.hasAttribute(name) && !preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Hydration attribute mismatch: ${name}.`),\n );\n }\n\n if (!preserveHydrationAttributes) {\n element.removeAttribute(name);\n }\n return;\n }\n\n const stringValue = isDangerousHtmlOptIn(value)\n ? (value as { __html: string }).__html\n : String(value);\n\n // Issue 075: URL attributes are scheme-validated against the same\n // block list used by SSR (packages/server/src/url-safety.ts). If the\n // value is unsafe we treat it as if it were null -- remove the\n // existing attribute, log a recoverable mismatch, and stop. This\n // matches react-dom's sanitizeURL posture.\n if (\n (isUrlAttribute(name) || isSrcsetAttribute(name)) &&\n isUnsafeUrlAttribute(name, stringValue)\n ) {\n if (element.hasAttribute(name) && !preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Unsafe URL scheme dropped from ${name}.`),\n );\n }\n if (!preserveHydrationAttributes) {\n element.removeAttribute(name);\n }\n return;\n }\n\n const currentValue = element.getAttribute(name);\n\n if (currentValue !== stringValue && !preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Hydration attribute mismatch: ${name}.`),\n );\n }\n\n if (preserveHydrationAttributes) {\n return;\n }\n\n if (currentValue === stringValue) {\n return;\n }\n\n element.setAttribute(name, stringValue);\n}\n\nfunction applyInitialAttribute(\n element: Element,\n name: string,\n value: unknown,\n): void {\n if (isDangerousHtmlAttribute(name) && !isDangerousHtmlOptIn(value)) {\n return;\n }\n\n if (isEventLikePropName(name) || value === null || value === undefined || value === false) {\n return;\n }\n\n const stringValue = isDangerousHtmlOptIn(value)\n ? (value as { __html: string }).__html\n : String(value);\n\n if (\n (isUrlAttribute(name) || isSrcsetAttribute(name)) &&\n isUnsafeUrlAttribute(name, stringValue)\n ) {\n return;\n }\n\n element.setAttribute(name, stringValue);\n}\n\nfunction applyInitialOrHydrationAttribute(\n element: Element,\n name: string,\n value: unknown,\n path: string,\n options: RenderOptions,\n useFastPath: boolean,\n): void {\n if (useFastPath) {\n applyInitialAttribute(element, name, value);\n return;\n }\n\n applyAttribute(element, name, value, path, options);\n}\n\nfunction applyFormValueProp(\n element: Element,\n name: string,\n value: unknown,\n path: string,\n options: RenderOptions,\n): boolean {\n if (element instanceof HTMLInputElement && (name === \"value\" || name === \"defaultValue\")) {\n const nextValue = value === null || value === undefined ? \"\" : String(value);\n\n if (element.value !== nextValue) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(\"Hydration attribute mismatch: value.\"),\n );\n }\n\n element.value = nextValue;\n return true;\n }\n\n if (element instanceof HTMLInputElement && (name === \"checked\" || name === \"defaultChecked\")) {\n const nextChecked = value !== null && value !== undefined && value !== false;\n\n if (element.checked !== nextChecked) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(\"Hydration attribute mismatch: checked.\"),\n );\n }\n\n element.checked = nextChecked;\n element.defaultChecked = nextChecked;\n if (nextChecked) {\n element.setAttribute(\"checked\", \"\");\n } else {\n element.removeAttribute(\"checked\");\n }\n return true;\n }\n\n if (element instanceof HTMLTextAreaElement && (name === \"value\" || name === \"defaultValue\")) {\n const nextValue = value === null || value === undefined ? \"\" : String(value);\n\n if (element.value !== nextValue) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(\"Hydration attribute mismatch: textarea value.\"),\n );\n }\n\n element.value = nextValue;\n return true;\n }\n\n if (element instanceof HTMLSelectElement && (name === \"value\" || name === \"defaultValue\")) {\n const nextValue = value === null || value === undefined ? undefined : String(value);\n\n for (const option of Array.from(element.options)) {\n option.selected = nextValue !== undefined && option.value === nextValue;\n }\n\n return true;\n }\n\n return false;\n}\n\nfunction isFormValuePropName(name: string): boolean {\n return (\n name === \"value\" ||\n name === \"defaultValue\" ||\n name === \"checked\" ||\n name === \"defaultChecked\"\n );\n}\n\nfunction applyStyle(\n element: HostElement,\n previousStyle: unknown,\n nextStyle: unknown,\n path: string,\n options: RenderOptions,\n): void {\n if (options.preserveHydrationAttributes === true) {\n return;\n }\n\n removePreviousStyle(element, previousStyle, path, options);\n\n if (isStyleObject(nextStyle)) {\n for (const [name, value] of Object.entries(nextStyle)) {\n if (value === null || value === undefined || value === false) {\n continue;\n }\n element.style.setProperty(styleNameToCssName(name), serializeClientStyleValue(name, value));\n }\n return;\n }\n\n if (nextStyle !== undefined && nextStyle !== null && nextStyle !== false) {\n element.removeAttribute(\"style\");\n }\n}\n\nfunction removePreviousStyle(\n element: HostElement,\n previousStyle: unknown,\n path: string,\n options: RenderOptions,\n): void {\n if (options.preserveHydrationAttributes === true) {\n return;\n }\n\n if (isStyleObject(previousStyle)) {\n for (const name of Object.keys(previousStyle)) {\n element.style.removeProperty(styleNameToCssName(name));\n }\n return;\n }\n\n if (previousStyle !== undefined && element.hasAttribute(\"style\")) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(\"Hydration attribute mismatch: style.\"),\n );\n element.removeAttribute(\"style\");\n }\n}\n\nfunction collectAttributeNames(props: Record<string, unknown>): string[] {\n const names: string[] = [];\n\n for (const name in props) {\n if (!Object.prototype.hasOwnProperty.call(props, name)) {\n continue;\n }\n\n const value = props[name];\n\n if (\n name === \"children\" ||\n name === \"ref\" ||\n name === \"key\" ||\n isEventLikePropName(name) ||\n value === null ||\n value === undefined\n ) {\n continue;\n }\n\n const attributeName = toDomAttributeName(name);\n\n if (\n value === false &&\n !isBooleanishStringAttribute(attributeName) &&\n !isDataAttribute(attributeName)\n ) {\n continue;\n }\n\n if (name === \"defaultValue\") {\n pushUniqueAttributeName(names, \"value\");\n continue;\n }\n\n if (name === \"defaultChecked\") {\n pushUniqueAttributeName(names, \"checked\");\n continue;\n }\n\n pushUniqueAttributeName(names, attributeName);\n }\n\n return names;\n}\n\nfunction pushUniqueAttributeName(names: string[], name: string): void {\n if (!names.includes(name)) {\n names.push(name);\n }\n}\n\nfunction isReactEventHandlerPropName(name: string): boolean {\n const third = name.charCodeAt(2);\n return name.charCodeAt(0) === 111 && name.charCodeAt(1) === 110 && third >= 65 && third <= 90;\n}\n\nfunction isEventLikePropName(name: string): boolean {\n const first = name.charCodeAt(0);\n const second = name.charCodeAt(1);\n return (first === 111 || first === 79) && (second === 110 || second === 78);\n}\n\nfunction sanitizeMetaRefreshElementProps(\n element: Element,\n props: Record<string, unknown>,\n): Record<string, unknown> {\n if (element.tagName !== \"META\" && element.tagName !== \"meta\") {\n return props;\n }\n\n const httpEquiv = props[\"http-equiv\"] ?? props.httpEquiv ?? element.getAttribute(\"http-equiv\");\n const content = props.content;\n if (typeof httpEquiv !== \"string\" || typeof content !== \"string\") {\n return props;\n }\n if (!isUnsafeMetaRefreshContent(httpEquiv, content)) {\n return props;\n }\n\n const sanitized = { ...props };\n delete sanitized.content;\n return sanitized;\n}\n\nfunction isBooleanishStringAttribute(name: string): boolean {\n const attributeName = toDomAttributeName(name).toLowerCase();\n return attributeName.startsWith(\"aria-\") || BOOLEANISH_STRING_ATTRIBUTES.has(attributeName);\n}\n\nfunction isDataAttribute(name: string): boolean {\n return toDomAttributeName(name).toLowerCase().startsWith(\"data-\");\n}\n\nconst BOOLEANISH_STRING_ATTRIBUTES = new Set<string>([\n \"contenteditable\",\n \"draggable\",\n \"spellcheck\",\n]);\n\nfunction toDomAttributeName(name: string): string {\n return DOM_ATTRIBUTE_ALIASES[name] ?? name;\n}\n\nconst DOM_ATTRIBUTE_ALIASES: Record<string, string> = {\n acceptCharset: \"accept-charset\",\n autoFocus: \"autofocus\",\n autoPlay: \"autoplay\",\n charSet: \"charset\",\n className: \"class\",\n colSpan: \"colspan\",\n contentEditable: \"contenteditable\",\n crossOrigin: \"crossorigin\",\n encType: \"enctype\",\n formAction: \"formaction\",\n frameBorder: \"frameborder\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\",\n maxLength: \"maxlength\",\n minLength: \"minlength\",\n noValidate: \"novalidate\",\n playsInline: \"playsinline\",\n readOnly: \"readonly\",\n rowSpan: \"rowspan\",\n spellCheck: \"spellcheck\",\n srcDoc: \"srcdoc\",\n srcSet: \"srcset\",\n tabIndex: \"tabindex\",\n useMap: \"usemap\",\n alignmentBaseline: \"alignment-baseline\",\n baselineShift: \"baseline-shift\",\n clipPath: \"clip-path\",\n clipRule: \"clip-rule\",\n colorInterpolation: \"color-interpolation\",\n colorInterpolationFilters: \"color-interpolation-filters\",\n colorProfile: \"color-profile\",\n colorRendering: \"color-rendering\",\n dominantBaseline: \"dominant-baseline\",\n enableBackground: \"enable-background\",\n fillOpacity: \"fill-opacity\",\n fillRule: \"fill-rule\",\n floodColor: \"flood-color\",\n floodOpacity: \"flood-opacity\",\n fontFamily: \"font-family\",\n fontSize: \"font-size\",\n fontSizeAdjust: \"font-size-adjust\",\n fontStretch: \"font-stretch\",\n fontStyle: \"font-style\",\n fontVariant: \"font-variant\",\n fontWeight: \"font-weight\",\n glyphOrientationHorizontal: \"glyph-orientation-horizontal\",\n glyphOrientationVertical: \"glyph-orientation-vertical\",\n imageRendering: \"image-rendering\",\n letterSpacing: \"letter-spacing\",\n lightingColor: \"lighting-color\",\n markerEnd: \"marker-end\",\n markerMid: \"marker-mid\",\n markerStart: \"marker-start\",\n overlinePosition: \"overline-position\",\n overlineThickness: \"overline-thickness\",\n paintOrder: \"paint-order\",\n pointerEvents: \"pointer-events\",\n shapeRendering: \"shape-rendering\",\n stopColor: \"stop-color\",\n stopOpacity: \"stop-opacity\",\n strikethroughPosition: \"strikethrough-position\",\n strikethroughThickness: \"strikethrough-thickness\",\n strokeDasharray: \"stroke-dasharray\",\n strokeDashoffset: \"stroke-dashoffset\",\n strokeLinecap: \"stroke-linecap\",\n strokeLinejoin: \"stroke-linejoin\",\n strokeMiterlimit: \"stroke-miterlimit\",\n strokeOpacity: \"stroke-opacity\",\n strokeWidth: \"stroke-width\",\n textAnchor: \"text-anchor\",\n textDecoration: \"text-decoration\",\n textRendering: \"text-rendering\",\n transformOrigin: \"transform-origin\",\n underlinePosition: \"underline-position\",\n underlineThickness: \"underline-thickness\",\n unicodeBidi: \"unicode-bidi\",\n vectorEffect: \"vector-effect\",\n wordSpacing: \"word-spacing\",\n writingMode: \"writing-mode\",\n xHeight: \"x-height\",\n};\n\nfunction isStyleObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"dom-props.js","sourceRoot":"","sources":["../src/dom-props.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n getAppliedProps,\n setAppliedProps,\n ensureDelegatedEventListenersForProp,\n} from \"./host-event-binder.js\";\nimport { reportRecoverable, type RenderOptions } from \"./hydration.js\";\nimport {\n isDangerousHtmlAttribute,\n isDangerousHtmlOptIn,\n isSrcsetAttribute,\n isUnsafeMetaRefreshContent,\n isUnsafeUrlAttribute,\n isUrlAttribute,\n} from \"./url-safety.js\";\nimport {\n serializeClientStyleValue,\n styleNameToCssName,\n type HostElement,\n} from \"./dom-host-rules.js\";\n\nexport function applyProps(\n element: HostElement,\n props: Record<string, unknown>,\n path: string,\n options: RenderOptions,\n): void {\n const preserveHydrationAttributes = options.preserveHydrationAttributes === true;\n const previous = getAppliedProps(element);\n const nextProps = sanitizeMetaRefreshElementProps(element, props);\n\n if (previous === undefined && !preserveHydrationAttributes) {\n applyInitialProps(element, nextProps, path, options);\n setAppliedProps(element, {\n props: nextProps,\n });\n return;\n }\n\n const previousProps = previous?.props ?? {};\n const previousAttributeNames = previous?.attributeNames ?? collectAttributeNames(previousProps);\n const nextAttributeNames = collectAttributeNames(nextProps);\n\n if (!preserveHydrationAttributes) {\n for (const attributeName of previousAttributeNames) {\n if (!nextAttributeNames.includes(attributeName)) {\n if (attributeName === \"style\") {\n removePreviousStyle(element, previousProps.style, path, options);\n continue;\n }\n\n if (element.hasAttribute(attributeName)) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Hydration attribute mismatch: ${attributeName}.`),\n );\n element.removeAttribute(attributeName);\n }\n }\n }\n }\n\n for (const name in nextProps) {\n if (!Object.prototype.hasOwnProperty.call(nextProps, name)) {\n continue;\n }\n\n const value = nextProps[name];\n\n if (name === \"children\" || name === \"ref\" || name === \"key\") {\n continue;\n }\n\n if (isFormValuePropName(name) && applyFormValueProp(element, name, value, path, options)) {\n continue;\n }\n\n if (name === \"className\") {\n applyAttribute(element, \"class\", value, path, options);\n continue;\n }\n\n if (name === \"htmlFor\") {\n applyAttribute(element, \"for\", value, path, options);\n continue;\n }\n\n if (name === \"style\") {\n applyStyle(element, previousProps[name], value, path, options);\n continue;\n }\n\n if (isReactEventHandlerPropName(name) && typeof value === \"function\") {\n if (previousProps[name] === value) {\n continue;\n }\n\n ensureDelegatedEventListenersForProp(options.eventRoot ?? element, name);\n continue;\n }\n\n if (isEventLikePropName(name)) {\n continue;\n }\n\n const attributeName = toDomAttributeName(name);\n\n if (typeof value === \"boolean\" && isBooleanishStringAttribute(attributeName)) {\n applyAttribute(element, attributeName, value ? \"true\" : \"false\", path, options);\n continue;\n }\n\n if (typeof value === \"boolean\" && isDataAttribute(attributeName)) {\n applyAttribute(element, attributeName, value ? \"true\" : \"false\", path, options);\n continue;\n }\n\n if (typeof value === \"boolean\") {\n if (element.hasAttribute(attributeName) !== value) {\n if (!preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Hydration attribute mismatch: ${attributeName}.`),\n );\n }\n }\n\n if (preserveHydrationAttributes) {\n continue;\n }\n\n if ((element as unknown as Record<string, unknown>)[name] !== value) {\n (element as unknown as Record<string, unknown>)[name] = value;\n }\n\n if (value) {\n if (!element.hasAttribute(attributeName)) {\n element.setAttribute(attributeName, \"\");\n }\n } else if (element.hasAttribute(attributeName)) {\n element.removeAttribute(attributeName);\n }\n continue;\n }\n\n applyAttribute(element, toDomAttributeName(name), value, path, options);\n }\n\n setAppliedProps(element, {\n attributeNames: nextAttributeNames,\n props: nextProps,\n });\n}\n\nfunction applyInitialProps(\n element: HostElement,\n props: Record<string, unknown>,\n path: string,\n options: RenderOptions,\n): void {\n const useAttributeFastPath = options.hydration === undefined;\n\n for (const name in props) {\n if (!Object.prototype.hasOwnProperty.call(props, name)) {\n continue;\n }\n\n const value = props[name];\n\n if (name === \"children\" || name === \"ref\" || name === \"key\") {\n continue;\n }\n\n if (isFormValuePropName(name) && applyFormValueProp(element, name, value, path, options)) {\n continue;\n }\n\n if (value === null || value === undefined) {\n continue;\n }\n\n if (name === \"className\") {\n applyInitialOrHydrationAttribute(\n element,\n \"class\",\n value,\n path,\n options,\n useAttributeFastPath,\n );\n continue;\n }\n\n if (name === \"htmlFor\") {\n applyInitialOrHydrationAttribute(\n element,\n \"for\",\n value,\n path,\n options,\n useAttributeFastPath,\n );\n continue;\n }\n\n if (name === \"style\") {\n applyStyle(element, undefined, value, path, options);\n continue;\n }\n\n if (isReactEventHandlerPropName(name) && typeof value === \"function\") {\n ensureDelegatedEventListenersForProp(options.eventRoot ?? element, name);\n continue;\n }\n\n if (isEventLikePropName(name)) {\n continue;\n }\n\n const attributeName = toDomAttributeName(name);\n\n if (typeof value === \"boolean\" && isBooleanishStringAttribute(attributeName)) {\n applyInitialOrHydrationAttribute(\n element,\n attributeName,\n value ? \"true\" : \"false\",\n path,\n options,\n useAttributeFastPath,\n );\n continue;\n }\n\n if (typeof value === \"boolean\" && isDataAttribute(attributeName)) {\n applyInitialOrHydrationAttribute(\n element,\n attributeName,\n value ? \"true\" : \"false\",\n path,\n options,\n useAttributeFastPath,\n );\n continue;\n }\n\n if (value === false) {\n continue;\n }\n\n if (typeof value === \"boolean\") {\n if ((element as unknown as Record<string, unknown>)[name] !== value) {\n (element as unknown as Record<string, unknown>)[name] = value;\n }\n\n if (value) {\n if (!element.hasAttribute(attributeName)) {\n element.setAttribute(attributeName, \"\");\n }\n } else if (element.hasAttribute(attributeName)) {\n element.removeAttribute(attributeName);\n }\n continue;\n }\n\n applyInitialOrHydrationAttribute(\n element,\n attributeName,\n value,\n path,\n options,\n useAttributeFastPath,\n );\n }\n\n}\n\n\nexport function applyPostChildFormProps(\n element: Element,\n props: Record<string, unknown>,\n previousProps?: Record<string, unknown>,\n): void {\n if (!isPostChildFormElement(element)) {\n return;\n }\n\n if (element instanceof HTMLInputElement) {\n if (hasOwnProp(props, \"checked\")) {\n const checked = props.checked !== null && props.checked !== undefined && props.checked !== false;\n element.checked = checked;\n element.defaultChecked = checked;\n if (checked) {\n element.setAttribute(\"checked\", \"\");\n } else {\n element.removeAttribute(\"checked\");\n }\n }\n\n const value = postChildFormValue(props, previousProps);\n if (value !== undefined) {\n element.value = value;\n element.setAttribute(\"value\", value);\n }\n return;\n }\n\n const value = postChildFormValue(props, previousProps);\n\n if (value === undefined) {\n return;\n }\n\n if (element instanceof HTMLTextAreaElement) {\n element.value = value;\n element.textContent = value;\n return;\n }\n\n if (element instanceof HTMLSelectElement) {\n for (const option of Array.from(element.options)) {\n option.selected = option.value === value;\n }\n }\n}\n\nfunction isPostChildFormElement(\n element: Element,\n): element is HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement {\n return (\n element instanceof HTMLInputElement ||\n element instanceof HTMLTextAreaElement ||\n element instanceof HTMLSelectElement\n );\n}\n\nfunction postChildFormValue(\n props: Record<string, unknown>,\n previousProps: Record<string, unknown> | undefined,\n): string | undefined {\n if (hasOwnProp(props, \"value\")) {\n return props.value === null || props.value === undefined ? \"\" : String(props.value);\n }\n\n if (previousProps === undefined && hasOwnProp(props, \"defaultValue\")) {\n return props.defaultValue === null || props.defaultValue === undefined\n ? \"\"\n : String(props.defaultValue);\n }\n\n return undefined;\n}\n\nfunction hasOwnProp(props: Record<string, unknown>, name: string): boolean {\n return Object.prototype.hasOwnProperty.call(props, name);\n}\n\nfunction applyAttribute(\n element: Element,\n name: string,\n value: unknown,\n path: string,\n options: RenderOptions,\n): void {\n const preserveHydrationAttributes = options.preserveHydrationAttributes === true;\n\n // Issue 077: srcdoc and other HTML-bearing attributes require the\n // explicit `{ __html: \"...\" }` opt-in. A plain value -- string,\n // number, boolean -- is treated as if it were null (drop the\n // attribute and log a recoverable mismatch).\n if (isDangerousHtmlAttribute(name) && !isDangerousHtmlOptIn(value)) {\n if (element.hasAttribute(name) && !preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Unsafe HTML attribute dropped: ${name}.`),\n );\n }\n if (!preserveHydrationAttributes) {\n element.removeAttribute(name);\n }\n return;\n }\n\n if (isEventLikePropName(name)) {\n if (element.hasAttribute(name) && !preserveHydrationAttributes) {\n element.removeAttribute(name);\n }\n return;\n }\n\n if (value === null || value === undefined || value === false) {\n if (element.hasAttribute(name) && !preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Hydration attribute mismatch: ${name}.`),\n );\n }\n\n if (!preserveHydrationAttributes) {\n element.removeAttribute(name);\n }\n return;\n }\n\n const stringValue = isDangerousHtmlOptIn(value)\n ? (value as { __html: string }).__html\n : String(value);\n\n // Issue 075: URL attributes are scheme-validated against the same\n // block list used by SSR (packages/server/src/url-safety.ts). If the\n // value is unsafe we treat it as if it were null -- remove the\n // existing attribute, log a recoverable mismatch, and stop. This\n // matches react-dom's sanitizeURL posture.\n if (\n (isUrlAttribute(name) || isSrcsetAttribute(name)) &&\n isUnsafeUrlAttribute(name, stringValue)\n ) {\n if (element.hasAttribute(name) && !preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Unsafe URL scheme dropped from ${name}.`),\n );\n }\n if (!preserveHydrationAttributes) {\n element.removeAttribute(name);\n }\n return;\n }\n\n const currentValue = element.getAttribute(name);\n\n if (currentValue !== stringValue && !preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Hydration attribute mismatch: ${name}.`),\n );\n }\n\n if (preserveHydrationAttributes) {\n return;\n }\n\n if (currentValue === stringValue) {\n return;\n }\n\n element.setAttribute(name, stringValue);\n}\n\nfunction applyInitialAttribute(\n element: Element,\n name: string,\n value: unknown,\n): void {\n if (isDangerousHtmlAttribute(name) && !isDangerousHtmlOptIn(value)) {\n return;\n }\n\n if (isEventLikePropName(name) || value === null || value === undefined || value === false) {\n return;\n }\n\n const stringValue = isDangerousHtmlOptIn(value)\n ? (value as { __html: string }).__html\n : String(value);\n\n if (\n (isUrlAttribute(name) || isSrcsetAttribute(name)) &&\n isUnsafeUrlAttribute(name, stringValue)\n ) {\n return;\n }\n\n element.setAttribute(name, stringValue);\n}\n\nfunction applyInitialOrHydrationAttribute(\n element: Element,\n name: string,\n value: unknown,\n path: string,\n options: RenderOptions,\n useFastPath: boolean,\n): void {\n if (useFastPath) {\n applyInitialAttribute(element, name, value);\n return;\n }\n\n applyAttribute(element, name, value, path, options);\n}\n\nfunction applyFormValueProp(\n element: Element,\n name: string,\n value: unknown,\n path: string,\n options: RenderOptions,\n): boolean {\n if (element instanceof HTMLInputElement && (name === \"value\" || name === \"defaultValue\")) {\n const nextValue = value === null || value === undefined ? \"\" : String(value);\n\n if (element.value !== nextValue) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(\"Hydration attribute mismatch: value.\"),\n );\n }\n\n element.value = nextValue;\n return true;\n }\n\n if (element instanceof HTMLInputElement && (name === \"checked\" || name === \"defaultChecked\")) {\n const nextChecked = value !== null && value !== undefined && value !== false;\n\n if (element.checked !== nextChecked) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(\"Hydration attribute mismatch: checked.\"),\n );\n }\n\n element.checked = nextChecked;\n element.defaultChecked = nextChecked;\n if (nextChecked) {\n element.setAttribute(\"checked\", \"\");\n } else {\n element.removeAttribute(\"checked\");\n }\n return true;\n }\n\n if (element instanceof HTMLTextAreaElement && (name === \"value\" || name === \"defaultValue\")) {\n const nextValue = value === null || value === undefined ? \"\" : String(value);\n\n if (element.value !== nextValue) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(\"Hydration attribute mismatch: textarea value.\"),\n );\n }\n\n element.value = nextValue;\n return true;\n }\n\n if (element instanceof HTMLSelectElement && (name === \"value\" || name === \"defaultValue\")) {\n const nextValue = value === null || value === undefined ? undefined : String(value);\n\n for (const option of Array.from(element.options)) {\n option.selected = nextValue !== undefined && option.value === nextValue;\n }\n\n return true;\n }\n\n return false;\n}\n\nfunction isFormValuePropName(name: string): boolean {\n return (\n name === \"value\" ||\n name === \"defaultValue\" ||\n name === \"checked\" ||\n name === \"defaultChecked\"\n );\n}\n\nfunction applyStyle(\n element: HostElement,\n previousStyle: unknown,\n nextStyle: unknown,\n path: string,\n options: RenderOptions,\n): void {\n if (options.preserveHydrationAttributes === true) {\n return;\n }\n\n removePreviousStyle(element, previousStyle, path, options);\n\n if (isStyleObject(nextStyle)) {\n for (const [name, value] of Object.entries(nextStyle)) {\n if (value === null || value === undefined || value === false) {\n continue;\n }\n element.style.setProperty(styleNameToCssName(name), serializeClientStyleValue(name, value));\n }\n return;\n }\n\n if (nextStyle !== undefined && nextStyle !== null && nextStyle !== false) {\n element.removeAttribute(\"style\");\n }\n}\n\nfunction removePreviousStyle(\n element: HostElement,\n previousStyle: unknown,\n path: string,\n options: RenderOptions,\n): void {\n if (options.preserveHydrationAttributes === true) {\n return;\n }\n\n if (isStyleObject(previousStyle)) {\n for (const name of Object.keys(previousStyle)) {\n element.style.removeProperty(styleNameToCssName(name));\n }\n return;\n }\n\n if (previousStyle !== undefined && element.hasAttribute(\"style\")) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(\"Hydration attribute mismatch: style.\"),\n );\n element.removeAttribute(\"style\");\n }\n}\n\nfunction collectAttributeNames(props: Record<string, unknown>): string[] {\n const names: string[] = [];\n\n for (const name in props) {\n if (!Object.prototype.hasOwnProperty.call(props, name)) {\n continue;\n }\n\n const value = props[name];\n\n if (\n name === \"children\" ||\n name === \"ref\" ||\n name === \"key\" ||\n isEventLikePropName(name) ||\n value === null ||\n value === undefined\n ) {\n continue;\n }\n\n const attributeName = toDomAttributeName(name);\n\n if (\n value === false &&\n !isBooleanishStringAttribute(attributeName) &&\n !isDataAttribute(attributeName)\n ) {\n continue;\n }\n\n if (name === \"defaultValue\") {\n pushUniqueAttributeName(names, \"value\");\n continue;\n }\n\n if (name === \"defaultChecked\") {\n pushUniqueAttributeName(names, \"checked\");\n continue;\n }\n\n pushUniqueAttributeName(names, attributeName);\n }\n\n return names;\n}\n\nfunction pushUniqueAttributeName(names: string[], name: string): void {\n if (!names.includes(name)) {\n names.push(name);\n }\n}\n\nfunction isReactEventHandlerPropName(name: string): boolean {\n const third = name.charCodeAt(2);\n return name.charCodeAt(0) === 111 && name.charCodeAt(1) === 110 && third >= 65 && third <= 90;\n}\n\nfunction isEventLikePropName(name: string): boolean {\n const first = name.charCodeAt(0);\n const second = name.charCodeAt(1);\n return (first === 111 || first === 79) && (second === 110 || second === 78);\n}\n\nfunction sanitizeMetaRefreshElementProps(\n element: Element,\n props: Record<string, unknown>,\n): Record<string, unknown> {\n const tagName = element.tagName;\n if (tagName !== \"META\" && tagName !== \"meta\") {\n return props;\n }\n\n const httpEquiv = props[\"http-equiv\"] ?? props.httpEquiv ?? element.getAttribute(\"http-equiv\");\n const content = props.content;\n if (typeof httpEquiv !== \"string\" || typeof content !== \"string\") {\n return props;\n }\n if (!isUnsafeMetaRefreshContent(httpEquiv, content)) {\n return props;\n }\n\n const sanitized = { ...props };\n delete sanitized.content;\n return sanitized;\n}\n\nfunction isBooleanishStringAttribute(name: string): boolean {\n const attributeName = toDomAttributeName(name).toLowerCase();\n return attributeName.startsWith(\"aria-\") || BOOLEANISH_STRING_ATTRIBUTES.has(attributeName);\n}\n\nfunction isDataAttribute(name: string): boolean {\n return toDomAttributeName(name).toLowerCase().startsWith(\"data-\");\n}\n\nconst BOOLEANISH_STRING_ATTRIBUTES = new Set<string>([\n \"contenteditable\",\n \"draggable\",\n \"spellcheck\",\n]);\n\nfunction toDomAttributeName(name: string): string {\n return DOM_ATTRIBUTE_ALIASES[name] ?? name;\n}\n\nconst DOM_ATTRIBUTE_ALIASES: Record<string, string> = {\n acceptCharset: \"accept-charset\",\n autoFocus: \"autofocus\",\n autoPlay: \"autoplay\",\n charSet: \"charset\",\n className: \"class\",\n colSpan: \"colspan\",\n contentEditable: \"contenteditable\",\n crossOrigin: \"crossorigin\",\n encType: \"enctype\",\n formAction: \"formaction\",\n frameBorder: \"frameborder\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\",\n maxLength: \"maxlength\",\n minLength: \"minlength\",\n noValidate: \"novalidate\",\n playsInline: \"playsinline\",\n readOnly: \"readonly\",\n rowSpan: \"rowspan\",\n spellCheck: \"spellcheck\",\n srcDoc: \"srcdoc\",\n srcSet: \"srcset\",\n tabIndex: \"tabindex\",\n useMap: \"usemap\",\n alignmentBaseline: \"alignment-baseline\",\n baselineShift: \"baseline-shift\",\n clipPath: \"clip-path\",\n clipRule: \"clip-rule\",\n colorInterpolation: \"color-interpolation\",\n colorInterpolationFilters: \"color-interpolation-filters\",\n colorProfile: \"color-profile\",\n colorRendering: \"color-rendering\",\n dominantBaseline: \"dominant-baseline\",\n enableBackground: \"enable-background\",\n fillOpacity: \"fill-opacity\",\n fillRule: \"fill-rule\",\n floodColor: \"flood-color\",\n floodOpacity: \"flood-opacity\",\n fontFamily: \"font-family\",\n fontSize: \"font-size\",\n fontSizeAdjust: \"font-size-adjust\",\n fontStretch: \"font-stretch\",\n fontStyle: \"font-style\",\n fontVariant: \"font-variant\",\n fontWeight: \"font-weight\",\n glyphOrientationHorizontal: \"glyph-orientation-horizontal\",\n glyphOrientationVertical: \"glyph-orientation-vertical\",\n imageRendering: \"image-rendering\",\n letterSpacing: \"letter-spacing\",\n lightingColor: \"lighting-color\",\n markerEnd: \"marker-end\",\n markerMid: \"marker-mid\",\n markerStart: \"marker-start\",\n overlinePosition: \"overline-position\",\n overlineThickness: \"overline-thickness\",\n paintOrder: \"paint-order\",\n pointerEvents: \"pointer-events\",\n shapeRendering: \"shape-rendering\",\n stopColor: \"stop-color\",\n stopOpacity: \"stop-opacity\",\n strikethroughPosition: \"strikethrough-position\",\n strikethroughThickness: \"strikethrough-thickness\",\n strokeDasharray: \"stroke-dasharray\",\n strokeDashoffset: \"stroke-dashoffset\",\n strokeLinecap: \"stroke-linecap\",\n strokeLinejoin: \"stroke-linejoin\",\n strokeMiterlimit: \"stroke-miterlimit\",\n strokeOpacity: \"stroke-opacity\",\n strokeWidth: \"stroke-width\",\n textAnchor: \"text-anchor\",\n textDecoration: \"text-decoration\",\n textRendering: \"text-rendering\",\n transformOrigin: \"transform-origin\",\n underlinePosition: \"underline-position\",\n underlineThickness: \"underline-thickness\",\n unicodeBidi: \"unicode-bidi\",\n vectorEffect: \"vector-effect\",\n wordSpacing: \"word-spacing\",\n writingMode: \"writing-mode\",\n xHeight: \"x-height\",\n};\n\nfunction isStyleObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null;\n}\n"]}
|