@reckona/mreact-compat 0.0.182 → 0.0.184

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/README.md CHANGED
@@ -24,6 +24,7 @@ compatibility runtime.
24
24
  runtime entrypoints.
25
25
  - `@reckona/mreact-compat/hooks` exposes the hook runtime APIs for integrations that import hooks from a dedicated subpath.
26
26
  - `@reckona/mreact-compat/scheduler` exposes the scheduler-compatible API.
27
+ - `@reckona/mreact-compat/server` exposes server-safe element, hook, context, and string rendering helpers without client root APIs.
27
28
  - `@reckona/mreact-compat/flight` and `./internal` are framework integration
28
29
  entrypoints.
29
30
 
@@ -1 +1 @@
1
- {"version":3,"file":"devtools.d.ts","sourceRoot":"","sources":["../src/devtools.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,eAAe,EACrB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAS,SAAS,EAAY,MAAM,YAAY,CAAC;AAkI7D,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,OAAO,EAClB,MAAM,EAAE,SAAS,GAAG,eAAe,EACnC,QAAQ,UAAQ,GACf,IAAI,CAiCN;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAgB5D"}
1
+ {"version":3,"file":"devtools.d.ts","sourceRoot":"","sources":["../src/devtools.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,eAAe,EACrB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAS,SAAS,EAAY,MAAM,YAAY,CAAC;AAoI7D,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,OAAO,EAClB,MAAM,EAAE,SAAS,GAAG,eAAe,EACnC,QAAQ,UAAQ,GACf,IAAI,CAsCN;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAoB5D"}
package/dist/devtools.js CHANGED
@@ -10,6 +10,10 @@ let profilingCommitData = [];
10
10
  let suspenseHandler;
11
11
  let errorHandler;
12
12
  export function commitDevToolsRoot(container, source, didError = false) {
13
+ if (typeof __MREACT_CLIENT_DEVTOOLS__ !== "undefined" && __MREACT_CLIENT_DEVTOOLS__ === false) {
14
+ injectProductionDevToolsRenderer(getDevToolsHook());
15
+ return;
16
+ }
13
17
  const hook = getDevToolsHook();
14
18
  const id = injectDevToolsRenderer(hook);
15
19
  if (hook === undefined || id === undefined) {
@@ -38,6 +42,9 @@ export function commitDevToolsRoot(container, source, didError = false) {
38
42
  hook.onPostCommitFiberRoot?.(id, root);
39
43
  }
40
44
  export function unmountDevToolsRoot(container) {
45
+ if (typeof __MREACT_CLIENT_DEVTOOLS__ !== "undefined" && __MREACT_CLIENT_DEVTOOLS__ === false) {
46
+ return;
47
+ }
41
48
  const hook = getDevToolsHook();
42
49
  const id = injectDevToolsRenderer(hook);
43
50
  const root = roots.get(container);
@@ -159,6 +166,24 @@ function injectDevToolsRenderer(hook) {
159
166
  });
160
167
  return rendererId;
161
168
  }
169
+ function injectProductionDevToolsRenderer(hook) {
170
+ if (rendererId !== undefined && injectedHook === hook) {
171
+ return rendererId;
172
+ }
173
+ if (hook?.inject === undefined) {
174
+ return undefined;
175
+ }
176
+ injectedHook = hook;
177
+ rendererRoots = new Set();
178
+ rendererId = hook.inject({
179
+ bundleType: 0,
180
+ version: "0.0.0",
181
+ reconcilerVersion: "0.0.0",
182
+ rendererPackageName: "@reckona/mreact-compat",
183
+ supportsFiber: true,
184
+ });
185
+ return rendererId;
186
+ }
162
187
  function noop() { }
163
188
  function getDevToolsHook() {
164
189
  return globalThis
@@ -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 \"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
+ {"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\ndeclare const __MREACT_CLIENT_DEVTOOLS__: boolean | undefined;\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 if (typeof __MREACT_CLIENT_DEVTOOLS__ !== \"undefined\" && __MREACT_CLIENT_DEVTOOLS__ === false) {\n injectProductionDevToolsRenderer(getDevToolsHook());\n return;\n }\n\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 if (typeof __MREACT_CLIENT_DEVTOOLS__ !== \"undefined\" && __MREACT_CLIENT_DEVTOOLS__ === false) {\n return;\n }\n\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 injectProductionDevToolsRenderer(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: 0,\n version: \"0.0.0\",\n reconcilerVersion: \"0.0.0\",\n rendererPackageName: \"@reckona/mreact-compat\",\n supportsFiber: true,\n } as DevToolsRenderer);\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"]}
@@ -2,4 +2,9 @@ import { type RenderOptions } from "./hydration.js";
2
2
  import { type HostElement } from "./dom-host-rules.js";
3
3
  export declare function applyProps(element: HostElement, props: Record<string, unknown>, path: string, options: RenderOptions): void;
4
4
  export declare function applyPostChildFormProps(element: Element, props: Record<string, unknown>, previousProps?: Record<string, unknown>): void;
5
+ export declare const __domPropsAttributeNameCacheForTesting: {
6
+ clear(): void;
7
+ missCount(): number;
8
+ size(): number;
9
+ };
5
10
  //# sourceMappingURL=dom-props.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dom-props.d.ts","sourceRoot":"","sources":["../src/dom-props.ts"],"names":[],"mappings":"AAKA,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AASvE,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAE7B,wBAAgB,UAAU,CACxB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,GACrB,IAAI,CAkIN;AA6HD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACtC,IAAI,CA0CN"}
1
+ {"version":3,"file":"dom-props.d.ts","sourceRoot":"","sources":["../src/dom-props.ts"],"names":[],"mappings":"AAKA,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AASvE,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAE7B,wBAAgB,UAAU,CACxB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,GACrB,IAAI,CAkIN;AA6HD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACtC,IAAI,CA0CN;AA+TD,eAAO,MAAM,sCAAsC;;;;CAWlD,CAAC"}
package/dist/dom-props.js CHANGED
@@ -385,7 +385,30 @@ function removePreviousStyle(element, previousStyle, path, options) {
385
385
  element.removeAttribute("style");
386
386
  }
387
387
  }
388
+ const ATTRIBUTE_NAME_SHAPE_CACHE = new Map();
389
+ const ATTRIBUTE_NAME_SHAPE_CACHE_LIMIT = 1024;
390
+ let attributeNameShapeCacheMissCount = 0;
391
+ export const __domPropsAttributeNameCacheForTesting = {
392
+ clear() {
393
+ ATTRIBUTE_NAME_SHAPE_CACHE.clear();
394
+ attributeNameShapeCacheMissCount = 0;
395
+ },
396
+ missCount() {
397
+ return attributeNameShapeCacheMissCount;
398
+ },
399
+ size() {
400
+ return ATTRIBUTE_NAME_SHAPE_CACHE.size;
401
+ },
402
+ };
388
403
  function collectAttributeNames(props) {
404
+ const cacheKey = attributeNameShapeCacheKey(props);
405
+ if (cacheKey !== undefined) {
406
+ const cached = ATTRIBUTE_NAME_SHAPE_CACHE.get(cacheKey);
407
+ if (cached !== undefined) {
408
+ return [...cached];
409
+ }
410
+ }
411
+ attributeNameShapeCacheMissCount += 1;
389
412
  const names = [];
390
413
  for (const name in props) {
391
414
  if (!Object.prototype.hasOwnProperty.call(props, name)) {
@@ -416,8 +439,31 @@ function collectAttributeNames(props) {
416
439
  }
417
440
  pushUniqueAttributeName(names, attributeName);
418
441
  }
442
+ if (cacheKey !== undefined && ATTRIBUTE_NAME_SHAPE_CACHE.size < ATTRIBUTE_NAME_SHAPE_CACHE_LIMIT) {
443
+ ATTRIBUTE_NAME_SHAPE_CACHE.set(cacheKey, names);
444
+ }
419
445
  return names;
420
446
  }
447
+ function attributeNameShapeCacheKey(props) {
448
+ let key = "";
449
+ for (const name in props) {
450
+ if (!Object.prototype.hasOwnProperty.call(props, name)) {
451
+ continue;
452
+ }
453
+ const value = props[name];
454
+ if (value === null || value === undefined) {
455
+ return undefined;
456
+ }
457
+ const attributeName = toDomAttributeName(name);
458
+ if (value === false &&
459
+ !isBooleanishStringAttribute(attributeName) &&
460
+ !isDataAttribute(attributeName)) {
461
+ return undefined;
462
+ }
463
+ key += key === "" ? name : `\0${name}`;
464
+ }
465
+ return key;
466
+ }
421
467
  function pushUniqueAttributeName(names, name) {
422
468
  if (!names.includes(name)) {
423
469
  names.push(name);