@reckona/mreact-compat 0.0.186 → 0.0.188

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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","sourcesContent":["import { runWithEventPriority } from \"./hooks.js\";\nimport { getAppliedEventHandler } from \"./event-listeners.js\";\nimport type { SyntheticEvent } from \"./event-types.js\";\n\nconst delegatedRootListeners = new WeakMap<Element, Set<string>>();\n// A synthetic update can mount another delegated root before the native event\n// finishes bubbling. Process each native event once across delegated roots.\nconst dispatchedDelegatedEvents = new WeakMap<Event, Set<string>>();\nconst logicalEventParents = new WeakMap<Element, ParentNode>();\n\nconst reactPropToNativeEvent = new Map<string, string[]>([\n [\"onAnimationEnd\", [\"animationend\"]],\n [\"onAnimationIteration\", [\"animationiteration\"]],\n [\"onAnimationStart\", [\"animationstart\"]],\n [\"onBeforeInput\", [\"beforeinput\"]],\n [\"onCompositionEnd\", [\"compositionend\"]],\n [\"onCompositionStart\", [\"compositionstart\"]],\n [\"onCompositionUpdate\", [\"compositionupdate\"]],\n [\"onContextMenu\", [\"contextmenu\"]],\n [\"onDoubleClick\", [\"dblclick\"]],\n [\"onDrag\", [\"drag\"]],\n [\"onDragEnd\", [\"dragend\"]],\n [\"onDragEnter\", [\"dragenter\"]],\n [\"onDragExit\", [\"dragexit\"]],\n [\"onDragLeave\", [\"dragleave\"]],\n [\"onDragOver\", [\"dragover\"]],\n [\"onDragStart\", [\"dragstart\"]],\n [\"onDrop\", [\"drop\"]],\n [\"onFocus\", [\"focusin\"]],\n [\"onBlur\", [\"focusout\"]],\n [\"onGotPointerCapture\", [\"gotpointercapture\"]],\n [\"onLostPointerCapture\", [\"lostpointercapture\"]],\n [\"onMouseEnter\", [\"mouseover\"]],\n [\"onMouseLeave\", [\"mouseout\"]],\n [\"onPointerCancel\", [\"pointercancel\"]],\n [\"onPointerDown\", [\"pointerdown\"]],\n [\"onPointerEnter\", [\"pointerover\"]],\n [\"onPointerLeave\", [\"pointerout\"]],\n [\"onPointerMove\", [\"pointermove\"]],\n [\"onPointerOut\", [\"pointerout\"]],\n [\"onPointerOver\", [\"pointerover\"]],\n [\"onPointerUp\", [\"pointerup\"]],\n [\"onTouchCancel\", [\"touchcancel\"]],\n [\"onTouchEnd\", [\"touchend\"]],\n [\"onTouchMove\", [\"touchmove\"]],\n [\"onTouchStart\", [\"touchstart\"]],\n [\"onTransitionEnd\", [\"transitionend\"]],\n [\"onChange\", [\"change\", \"input\"]],\n]);\n\nconst nativeEventToReactProps = new Map<string, string[]>([\n [\"animationend\", [\"onAnimationEnd\"]],\n [\"animationiteration\", [\"onAnimationIteration\"]],\n [\"animationstart\", [\"onAnimationStart\"]],\n [\"beforeinput\", [\"onBeforeInput\"]],\n [\"compositionend\", [\"onCompositionEnd\"]],\n [\"compositionstart\", [\"onCompositionStart\"]],\n [\"compositionupdate\", [\"onCompositionUpdate\"]],\n [\"contextmenu\", [\"onContextMenu\"]],\n [\"dblclick\", [\"onDoubleClick\"]],\n [\"drag\", [\"onDrag\"]],\n [\"dragend\", [\"onDragEnd\"]],\n [\"dragenter\", [\"onDragEnter\"]],\n [\"dragexit\", [\"onDragExit\"]],\n [\"dragleave\", [\"onDragLeave\"]],\n [\"dragover\", [\"onDragOver\"]],\n [\"dragstart\", [\"onDragStart\"]],\n [\"drop\", [\"onDrop\"]],\n [\"focusin\", [\"onFocus\"]],\n [\"focusout\", [\"onBlur\"]],\n [\"gotpointercapture\", [\"onGotPointerCapture\"]],\n [\"lostpointercapture\", [\"onLostPointerCapture\"]],\n [\"input\", [\"onInput\", \"onChange\"]],\n [\"keydown\", [\"onKeyDown\"]],\n [\"keyup\", [\"onKeyUp\"]],\n [\"mousedown\", [\"onMouseDown\"]],\n [\"mousemove\", [\"onMouseMove\"]],\n [\"mouseup\", [\"onMouseUp\"]],\n [\"mouseout\", [\"onMouseOut\"]],\n [\"mouseover\", [\"onMouseOver\"]],\n [\"pointercancel\", [\"onPointerCancel\"]],\n [\"pointerdown\", [\"onPointerDown\"]],\n [\"pointermove\", [\"onPointerMove\"]],\n [\"pointerout\", [\"onPointerOut\"]],\n [\"pointerover\", [\"onPointerOver\"]],\n [\"pointerup\", [\"onPointerUp\"]],\n [\"touchcancel\", [\"onTouchCancel\"]],\n [\"touchend\", [\"onTouchEnd\"]],\n [\"touchmove\", [\"onTouchMove\"]],\n [\"touchstart\", [\"onTouchStart\"]],\n [\"transitionend\", [\"onTransitionEnd\"]],\n]);\n\nexport function toEventNames(propName: string): string[] {\n const eventNames: string[] = [];\n forEachEventName(propName, (eventName) => {\n eventNames.push(eventName);\n });\n return eventNames;\n}\n\nexport function forEachEventName(propName: string, callback: (eventName: string) => void): void {\n const directEventName = directNativeEventName(propName);\n\n if (directEventName !== undefined) {\n callback(directEventName);\n return;\n }\n\n const basePropName = toBaseEventPropName(propName);\n const mappedEventNames = reactPropToNativeEvent.get(basePropName);\n\n if (mappedEventNames === undefined) {\n callback(basePropName.slice(2).toLowerCase());\n return;\n }\n\n for (let index = 0; index < mappedEventNames.length; index += 1) {\n callback(mappedEventNames[index]!);\n }\n}\n\nexport function ensureDelegatedEventListenersForProp(root: Element, propName: string): void {\n const directEventName = directNativeEventName(propName);\n\n if (directEventName !== undefined) {\n ensureDelegatedEventListener(root, directEventName);\n return;\n }\n\n const basePropName = toBaseEventPropName(propName);\n const mappedEventNames = reactPropToNativeEvent.get(basePropName);\n\n if (mappedEventNames === undefined) {\n ensureDelegatedEventListener(root, basePropName.slice(2).toLowerCase());\n return;\n }\n\n for (let index = 0; index < mappedEventNames.length; index += 1) {\n ensureDelegatedEventListener(root, mappedEventNames[index]!);\n }\n}\n\nfunction directNativeEventName(propName: string): string | undefined {\n switch (propName) {\n case \"onClick\":\n case \"onClickCapture\":\n return \"click\";\n case \"onInput\":\n case \"onInputCapture\":\n return \"input\";\n case \"onKeyDown\":\n case \"onKeyDownCapture\":\n return \"keydown\";\n case \"onKeyUp\":\n case \"onKeyUpCapture\":\n return \"keyup\";\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n return \"mousedown\";\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n return \"mousemove\";\n case \"onMouseOut\":\n case \"onMouseOutCapture\":\n return \"mouseout\";\n case \"onMouseOver\":\n case \"onMouseOverCapture\":\n return \"mouseover\";\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n return \"mouseup\";\n case \"onScroll\":\n case \"onScrollCapture\":\n return \"scroll\";\n case \"onSubmit\":\n case \"onSubmitCapture\":\n return \"submit\";\n case \"onWheel\":\n case \"onWheelCapture\":\n return \"wheel\";\n default:\n return undefined;\n }\n}\n\nfunction toBaseEventPropName(propName: string): string {\n const basePropName = propName.endsWith(\"Capture\")\n ? propName.slice(0, -\"Capture\".length)\n : propName;\n return basePropName;\n}\n\nexport function toEventPropNames(eventName: string): string[] {\n const propNames = nativeEventToReactProps.get(eventName);\n if (propNames !== undefined) {\n return propNames;\n }\n const propName = `on${eventName.slice(0, 1).toUpperCase()}${eventName.slice(1)}`;\n return [propName];\n}\n\nexport function setLogicalEventParent(container: Element, parent: ParentNode): void {\n logicalEventParents.set(container, parent);\n}\n\nexport function getEventPriority(eventName: string): \"discrete\" | \"continuous\" | \"default\" {\n if (discreteEventNames.has(eventName)) {\n return \"discrete\";\n }\n\n if (continuousEventNames.has(eventName)) {\n return \"continuous\";\n }\n\n return \"default\";\n}\n\nconst discreteEventNames = new Set([\n \"beforeinput\",\n \"change\",\n \"click\",\n \"dblclick\",\n \"focusin\",\n \"focusout\",\n \"input\",\n \"keydown\",\n \"keyup\",\n \"mousedown\",\n \"mouseup\",\n \"pointerdown\",\n \"pointerup\",\n \"submit\",\n \"touchcancel\",\n \"touchend\",\n \"touchstart\",\n]);\n\nconst continuousEventNames = new Set([\n \"drag\",\n \"dragenter\",\n \"dragleave\",\n \"dragover\",\n \"mousemove\",\n \"mouseout\",\n \"mouseover\",\n \"pointermove\",\n \"pointerout\",\n \"pointerover\",\n \"scroll\",\n \"touchmove\",\n \"wheel\",\n]);\n\nexport function ensureDelegatedEventListener(root: Element, eventName: string): void {\n const listeners = delegatedRootListeners.get(root) ?? new Set<string>();\n\n if (listeners.has(eventName)) {\n return;\n }\n\n listeners.add(eventName);\n delegatedRootListeners.set(root, listeners);\n root.addEventListener(eventName, (event) => {\n if (hasDispatchedDelegatedEvent(event, eventName)) {\n return;\n }\n markDispatchedDelegatedEvent(event, eventName);\n const priority = getEventPriority(eventName);\n runWithEventPriority(priority, () => {\n dispatchDelegatedEvent(root, eventName, event);\n }, priority === \"discrete\" && shouldDeferDiscreteEventFlush(eventName) ? (flush) => {\n deferFlushUntilNativeEventComplete(root, event, flush);\n } : undefined);\n });\n}\n\nfunction shouldDeferDiscreteEventFlush(eventName: string): boolean {\n return eventName === \"pointerdown\" || eventName === \"mousedown\" || eventName === \"touchstart\";\n}\n\nfunction deferFlushUntilNativeEventComplete(\n root: Element,\n event: Event,\n flush: () => void,\n): void {\n let flushed = false;\n const flushOnce = (): void => {\n if (flushed) {\n return;\n }\n flushed = true;\n flush();\n };\n\n root.ownerDocument.addEventListener(event.type, flushOnce, { once: true });\n queueMicrotask(flushOnce);\n}\n\nfunction hasDispatchedDelegatedEvent(event: Event, eventName: string): boolean {\n return dispatchedDelegatedEvents.get(event)?.has(eventName) ?? false;\n}\n\nfunction markDispatchedDelegatedEvent(event: Event, eventName: string): void {\n const events = dispatchedDelegatedEvents.get(event) ?? new Set<string>();\n events.add(eventName);\n dispatchedDelegatedEvents.set(event, events);\n}\n\nfunction dispatchDelegatedEvent(root: Element, eventName: string, event: Event): void {\n const path = getEventPath(root, event);\n const propNames = toEventPropNames(eventName);\n const state = {\n defaultPrevented: event.defaultPrevented,\n propagationStopped: false,\n };\n\n for (let index = path.length - 1; index >= 0; index -= 1) {\n const target = path[index]!;\n dispatchEventPropNames(propNames, \"capture\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n\n if (eventName === \"mouseover\") {\n for (let index = path.length - 1; index >= 0; index -= 1) {\n const target = path[index]!;\n dispatchMouseTransitionEvent(\"onMouseEnter\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n }\n\n if (eventName === \"mouseout\") {\n for (const target of path) {\n dispatchMouseTransitionEvent(\"onMouseLeave\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n }\n\n if (eventName === \"pointerover\") {\n for (let index = path.length - 1; index >= 0; index -= 1) {\n const target = path[index]!;\n dispatchPointerTransitionEvent(\"onPointerEnter\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n }\n\n if (eventName === \"pointerout\") {\n for (const target of path) {\n dispatchPointerTransitionEvent(\"onPointerLeave\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n }\n\n for (const target of path) {\n dispatchEventPropNames(propNames, \"bubble\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n}\n\nfunction dispatchPointerTransitionEvent(\n propName: \"onPointerEnter\" | \"onPointerLeave\",\n event: Event,\n target: Element,\n state: { defaultPrevented: boolean; propagationStopped: boolean },\n): void {\n if (isInternalMouseTransition(event, target)) {\n return;\n }\n\n const handler = getAppliedEventHandler(target, propName);\n\n if (handler !== undefined) {\n handler(createSyntheticEvent(event, target, state, propName.slice(2).toLowerCase()));\n }\n}\n\nfunction dispatchEventPropNames(\n propNames: readonly string[],\n phase: \"capture\" | \"bubble\",\n event: Event,\n target: Element,\n state: { defaultPrevented: boolean; propagationStopped: boolean },\n): void {\n for (const propName of propNames) {\n if (propName === \"onChange\" && event.type === \"change\" && isTextInputChangeTarget(target)) {\n continue;\n }\n\n const listenerName = phase === \"capture\" ? `${propName}Capture` : propName;\n const handler = getAppliedEventHandler(target, listenerName);\n\n if (handler !== undefined) {\n handler(createSyntheticEvent(event, target, state));\n }\n\n if (state.propagationStopped) {\n return;\n }\n }\n}\n\nfunction isTextInputChangeTarget(target: Element): boolean {\n if (target instanceof HTMLTextAreaElement) {\n return true;\n }\n\n if (!(target instanceof HTMLInputElement)) {\n return false;\n }\n\n return !nonTextInputTypes.has(target.type);\n}\n\nconst nonTextInputTypes = new Set([\n \"button\",\n \"checkbox\",\n \"color\",\n \"file\",\n \"hidden\",\n \"image\",\n \"radio\",\n \"range\",\n \"reset\",\n \"submit\",\n]);\n\nfunction dispatchMouseTransitionEvent(\n propName: \"onMouseEnter\" | \"onMouseLeave\",\n event: Event,\n target: Element,\n state: { defaultPrevented: boolean; propagationStopped: boolean },\n): void {\n if (isInternalMouseTransition(event, target)) {\n return;\n }\n\n const handler = getAppliedEventHandler(target, propName);\n\n if (handler !== undefined) {\n handler(createSyntheticEvent(event, target, state));\n }\n}\n\nfunction isInternalMouseTransition(event: Event, target: Element): boolean {\n const relatedTarget =\n event instanceof MouseEvent && event.relatedTarget instanceof Node ? event.relatedTarget : null;\n\n return relatedTarget !== null && target.contains(relatedTarget);\n}\n\nexport function getEventPath(root: Element, event: Event): Element[] {\n const path: Element[] = [];\n const visited = new Set<Node>();\n let cursor = event.target instanceof Node ? event.target : null;\n\n while (cursor !== null) {\n if (visited.has(cursor)) {\n break;\n }\n visited.add(cursor);\n\n if (cursor instanceof Element) {\n path.push(cursor);\n }\n\n if (cursor === root) {\n const logicalParent = logicalEventParents.get(root);\n if (logicalParent === undefined) {\n break;\n }\n cursor = logicalParent;\n continue;\n }\n\n cursor = cursor.parentNode;\n }\n\n return path;\n}\n\nfunction createSyntheticEvent(\n nativeEvent: Event,\n currentTarget: EventTarget,\n state: { defaultPrevented: boolean; propagationStopped: boolean } = {\n defaultPrevented: nativeEvent.defaultPrevented,\n propagationStopped: false,\n },\n syntheticType = nativeEvent.type,\n): SyntheticEvent {\n const mouseEvent = nativeEvent instanceof MouseEvent ? nativeEvent : undefined;\n const pointerEvent =\n \"pointerId\" in nativeEvent || \"pointerType\" in nativeEvent\n ? (nativeEvent as PointerEvent)\n : undefined;\n const touchEvent = nativeEvent instanceof TouchEvent ? nativeEvent : undefined;\n const keyboardEvent = nativeEvent instanceof KeyboardEvent ? nativeEvent : undefined;\n\n return {\n bubbles: nativeEvent.bubbles,\n cancelable: nativeEvent.cancelable,\n get defaultPrevented() {\n return state.defaultPrevented;\n },\n eventPhase: nativeEvent.eventPhase,\n isTrusted: nativeEvent.isTrusted ?? false,\n nativeEvent,\n timeStamp: nativeEvent.timeStamp,\n type: syntheticType,\n target: nativeEvent.target,\n currentTarget,\n ...(mouseEvent === undefined\n ? {}\n : {\n clientX: mouseEvent.clientX,\n clientY: mouseEvent.clientY,\n pageX: mouseEvent.pageX,\n pageY: mouseEvent.pageY,\n screenX: mouseEvent.screenX,\n screenY: mouseEvent.screenY,\n button: mouseEvent.button,\n buttons: mouseEvent.buttons,\n ctrlKey: mouseEvent.ctrlKey,\n shiftKey: mouseEvent.shiftKey,\n altKey: mouseEvent.altKey,\n metaKey: mouseEvent.metaKey,\n relatedTarget: mouseEvent.relatedTarget,\n }),\n ...(pointerEvent === undefined\n ? {}\n : {\n pointerId: pointerEvent.pointerId,\n pointerType: pointerEvent.pointerType,\n isPrimary: pointerEvent.isPrimary,\n }),\n ...(touchEvent === undefined\n ? {}\n : {\n touches: touchEvent.touches,\n changedTouches: touchEvent.changedTouches,\n }),\n ...(keyboardEvent === undefined ? {} : { key: keyboardEvent.key }),\n persist() {},\n preventDefault() {\n state.defaultPrevented = true;\n nativeEvent.preventDefault();\n },\n stopPropagation() {\n state.propagationStopped = true;\n nativeEvent.stopPropagation();\n },\n isDefaultPrevented() {\n return state.defaultPrevented;\n },\n isPersistent() {\n return true;\n },\n isPropagationStopped() {\n return state.propagationStopped;\n },\n };\n}\n"]}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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","sourcesContent":["import { runWithEventPriority } from \"./hooks.js\";\nimport { getAppliedEventHandler } from \"./event-listeners.js\";\nimport type { SyntheticEvent } from \"./event-types.js\";\n\nconst delegatedRootListeners = new WeakMap<Element, Set<string>>();\n// A synthetic update can mount another delegated root before the native event\n// finishes bubbling. Process each native event once across delegated roots.\nconst dispatchedDelegatedEvents = new WeakMap<Event, Set<string>>();\nconst logicalEventParents = new WeakMap<Element, ParentNode>();\n\nconst reactPropToNativeEvent = new Map<string, string[]>([\n [\"onAnimationEnd\", [\"animationend\"]],\n [\"onAnimationIteration\", [\"animationiteration\"]],\n [\"onAnimationStart\", [\"animationstart\"]],\n [\"onBeforeInput\", [\"beforeinput\"]],\n [\"onCompositionEnd\", [\"compositionend\"]],\n [\"onCompositionStart\", [\"compositionstart\"]],\n [\"onCompositionUpdate\", [\"compositionupdate\"]],\n [\"onContextMenu\", [\"contextmenu\"]],\n [\"onDoubleClick\", [\"dblclick\"]],\n [\"onDrag\", [\"drag\"]],\n [\"onDragEnd\", [\"dragend\"]],\n [\"onDragEnter\", [\"dragenter\"]],\n [\"onDragExit\", [\"dragexit\"]],\n [\"onDragLeave\", [\"dragleave\"]],\n [\"onDragOver\", [\"dragover\"]],\n [\"onDragStart\", [\"dragstart\"]],\n [\"onDrop\", [\"drop\"]],\n [\"onFocus\", [\"focusin\"]],\n [\"onBlur\", [\"focusout\"]],\n [\"onGotPointerCapture\", [\"gotpointercapture\"]],\n [\"onLostPointerCapture\", [\"lostpointercapture\"]],\n [\"onMouseEnter\", [\"mouseover\"]],\n [\"onMouseLeave\", [\"mouseout\"]],\n [\"onPointerCancel\", [\"pointercancel\"]],\n [\"onPointerDown\", [\"pointerdown\"]],\n [\"onPointerEnter\", [\"pointerover\"]],\n [\"onPointerLeave\", [\"pointerout\"]],\n [\"onPointerMove\", [\"pointermove\"]],\n [\"onPointerOut\", [\"pointerout\"]],\n [\"onPointerOver\", [\"pointerover\"]],\n [\"onPointerUp\", [\"pointerup\"]],\n [\"onTouchCancel\", [\"touchcancel\"]],\n [\"onTouchEnd\", [\"touchend\"]],\n [\"onTouchMove\", [\"touchmove\"]],\n [\"onTouchStart\", [\"touchstart\"]],\n [\"onTransitionEnd\", [\"transitionend\"]],\n [\"onChange\", [\"change\", \"input\"]],\n]);\n\nconst nativeEventToReactProps = new Map<string, string[]>([\n [\"animationend\", [\"onAnimationEnd\"]],\n [\"animationiteration\", [\"onAnimationIteration\"]],\n [\"animationstart\", [\"onAnimationStart\"]],\n [\"beforeinput\", [\"onBeforeInput\"]],\n [\"compositionend\", [\"onCompositionEnd\"]],\n [\"compositionstart\", [\"onCompositionStart\"]],\n [\"compositionupdate\", [\"onCompositionUpdate\"]],\n [\"contextmenu\", [\"onContextMenu\"]],\n [\"dblclick\", [\"onDoubleClick\"]],\n [\"drag\", [\"onDrag\"]],\n [\"dragend\", [\"onDragEnd\"]],\n [\"dragenter\", [\"onDragEnter\"]],\n [\"dragexit\", [\"onDragExit\"]],\n [\"dragleave\", [\"onDragLeave\"]],\n [\"dragover\", [\"onDragOver\"]],\n [\"dragstart\", [\"onDragStart\"]],\n [\"drop\", [\"onDrop\"]],\n [\"focusin\", [\"onFocus\"]],\n [\"focusout\", [\"onBlur\"]],\n [\"gotpointercapture\", [\"onGotPointerCapture\"]],\n [\"lostpointercapture\", [\"onLostPointerCapture\"]],\n [\"input\", [\"onInput\", \"onChange\"]],\n [\"keydown\", [\"onKeyDown\"]],\n [\"keyup\", [\"onKeyUp\"]],\n [\"mousedown\", [\"onMouseDown\"]],\n [\"mousemove\", [\"onMouseMove\"]],\n [\"mouseup\", [\"onMouseUp\"]],\n [\"mouseout\", [\"onMouseOut\"]],\n [\"mouseover\", [\"onMouseOver\"]],\n [\"pointercancel\", [\"onPointerCancel\"]],\n [\"pointerdown\", [\"onPointerDown\"]],\n [\"pointermove\", [\"onPointerMove\"]],\n [\"pointerout\", [\"onPointerOut\"]],\n [\"pointerover\", [\"onPointerOver\"]],\n [\"pointerup\", [\"onPointerUp\"]],\n [\"touchcancel\", [\"onTouchCancel\"]],\n [\"touchend\", [\"onTouchEnd\"]],\n [\"touchmove\", [\"onTouchMove\"]],\n [\"touchstart\", [\"onTouchStart\"]],\n [\"transitionend\", [\"onTransitionEnd\"]],\n]);\n\nexport function toEventNames(propName: string): string[] {\n const eventNames: string[] = [];\n forEachEventName(propName, (eventName) => {\n eventNames.push(eventName);\n });\n return eventNames;\n}\n\nexport function forEachEventName(propName: string, callback: (eventName: string) => void): void {\n const directEventName = directNativeEventName(propName);\n\n if (directEventName !== undefined) {\n callback(directEventName);\n return;\n }\n\n const basePropName = toBaseEventPropName(propName);\n const mappedEventNames = reactPropToNativeEvent.get(basePropName);\n\n if (mappedEventNames === undefined) {\n callback(basePropName.slice(2).toLowerCase());\n return;\n }\n\n for (let index = 0; index < mappedEventNames.length; index += 1) {\n callback(mappedEventNames[index]!);\n }\n}\n\nexport function ensureDelegatedEventListenersForProp(root: Element, propName: string): void {\n const directEventName = directNativeEventName(propName);\n\n if (directEventName !== undefined) {\n ensureDelegatedEventListener(root, directEventName);\n return;\n }\n\n const basePropName = toBaseEventPropName(propName);\n const mappedEventNames = reactPropToNativeEvent.get(basePropName);\n\n if (mappedEventNames === undefined) {\n ensureDelegatedEventListener(root, basePropName.slice(2).toLowerCase());\n return;\n }\n\n for (let index = 0; index < mappedEventNames.length; index += 1) {\n ensureDelegatedEventListener(root, mappedEventNames[index]!);\n }\n}\n\nfunction directNativeEventName(propName: string): string | undefined {\n switch (propName) {\n case \"onClick\":\n case \"onClickCapture\":\n return \"click\";\n case \"onInput\":\n case \"onInputCapture\":\n return \"input\";\n case \"onKeyDown\":\n case \"onKeyDownCapture\":\n return \"keydown\";\n case \"onKeyUp\":\n case \"onKeyUpCapture\":\n return \"keyup\";\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n return \"mousedown\";\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n return \"mousemove\";\n case \"onMouseOut\":\n case \"onMouseOutCapture\":\n return \"mouseout\";\n case \"onMouseOver\":\n case \"onMouseOverCapture\":\n return \"mouseover\";\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n return \"mouseup\";\n case \"onScroll\":\n case \"onScrollCapture\":\n return \"scroll\";\n case \"onSubmit\":\n case \"onSubmitCapture\":\n return \"submit\";\n case \"onWheel\":\n case \"onWheelCapture\":\n return \"wheel\";\n default:\n return undefined;\n }\n}\n\nfunction toBaseEventPropName(propName: string): string {\n const basePropName = propName.endsWith(\"Capture\")\n ? propName.slice(0, -\"Capture\".length)\n : propName;\n return basePropName;\n}\n\nexport function toEventPropNames(eventName: string): string[] {\n const propNames = nativeEventToReactProps.get(eventName);\n if (propNames !== undefined) {\n return propNames;\n }\n const propName = `on${eventName.slice(0, 1).toUpperCase()}${eventName.slice(1)}`;\n return [propName];\n}\n\nexport function setLogicalEventParent(container: Element, parent: ParentNode): void {\n logicalEventParents.set(container, parent);\n}\n\nexport function getEventPriority(eventName: string): \"discrete\" | \"continuous\" | \"default\" {\n if (discreteEventNames.has(eventName)) {\n return \"discrete\";\n }\n\n if (continuousEventNames.has(eventName)) {\n return \"continuous\";\n }\n\n return \"default\";\n}\n\nconst discreteEventNames = new Set([\n \"beforeinput\",\n \"change\",\n \"click\",\n \"dblclick\",\n \"focusin\",\n \"focusout\",\n \"input\",\n \"keydown\",\n \"keyup\",\n \"mousedown\",\n \"mouseup\",\n \"pointerdown\",\n \"pointerup\",\n \"submit\",\n \"touchcancel\",\n \"touchend\",\n \"touchstart\",\n]);\n\nconst continuousEventNames = new Set([\n \"drag\",\n \"dragenter\",\n \"dragleave\",\n \"dragover\",\n \"mousemove\",\n \"mouseout\",\n \"mouseover\",\n \"pointermove\",\n \"pointerout\",\n \"pointerover\",\n \"scroll\",\n \"touchmove\",\n \"wheel\",\n]);\n\nexport function ensureDelegatedEventListener(root: Element, eventName: string): void {\n const listeners = delegatedRootListeners.get(root) ?? new Set<string>();\n\n if (listeners.has(eventName)) {\n return;\n }\n\n listeners.add(eventName);\n delegatedRootListeners.set(root, listeners);\n root.addEventListener(eventName, (event) => {\n if (hasDispatchedDelegatedEvent(event, eventName)) {\n return;\n }\n markDispatchedDelegatedEvent(event, eventName);\n const priority = getEventPriority(eventName);\n runWithEventPriority(priority, () => {\n dispatchDelegatedEvent(root, eventName, event);\n }, priority === \"discrete\" && shouldDeferDiscreteEventFlush(eventName) ? (flush) => {\n deferFlushUntilNativeEventComplete(root, event, flush);\n } : undefined);\n });\n}\n\nfunction shouldDeferDiscreteEventFlush(eventName: string): boolean {\n return eventName === \"pointerdown\" || eventName === \"mousedown\" || eventName === \"touchstart\";\n}\n\nfunction deferFlushUntilNativeEventComplete(\n root: Element,\n event: Event,\n flush: () => void,\n): void {\n let flushed = false;\n const flushOnce = (): void => {\n if (flushed) {\n return;\n }\n flushed = true;\n flush();\n };\n\n root.ownerDocument.addEventListener(event.type, flushOnce, { once: true });\n queueMicrotask(flushOnce);\n}\n\nfunction hasDispatchedDelegatedEvent(event: Event, eventName: string): boolean {\n return dispatchedDelegatedEvents.get(event)?.has(eventName) ?? false;\n}\n\nfunction markDispatchedDelegatedEvent(event: Event, eventName: string): void {\n const events = dispatchedDelegatedEvents.get(event) ?? new Set<string>();\n events.add(eventName);\n dispatchedDelegatedEvents.set(event, events);\n}\n\nfunction dispatchDelegatedEvent(root: Element, eventName: string, event: Event): void {\n const path = getEventPath(root, event);\n const propNames = toEventPropNames(eventName);\n const state = {\n defaultPrevented: event.defaultPrevented,\n propagationStopped: false,\n };\n\n for (let index = path.length - 1; index >= 0; index -= 1) {\n const target = path[index]!;\n dispatchEventPropNames(propNames, \"capture\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n\n if (eventName === \"mouseover\") {\n for (let index = path.length - 1; index >= 0; index -= 1) {\n const target = path[index]!;\n dispatchMouseTransitionEvent(\"onMouseEnter\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n }\n\n if (eventName === \"mouseout\") {\n for (const target of path) {\n dispatchMouseTransitionEvent(\"onMouseLeave\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n }\n\n if (eventName === \"pointerover\") {\n for (let index = path.length - 1; index >= 0; index -= 1) {\n const target = path[index]!;\n dispatchPointerTransitionEvent(\"onPointerEnter\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n }\n\n if (eventName === \"pointerout\") {\n for (const target of path) {\n dispatchPointerTransitionEvent(\"onPointerLeave\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n }\n\n for (const target of path) {\n dispatchEventPropNames(propNames, \"bubble\", event, target, state);\n\n if (state.propagationStopped) {\n return;\n }\n }\n}\n\nfunction dispatchPointerTransitionEvent(\n propName: \"onPointerEnter\" | \"onPointerLeave\",\n event: Event,\n target: Element,\n state: { defaultPrevented: boolean; propagationStopped: boolean },\n): void {\n if (isInternalMouseTransition(event, target)) {\n return;\n }\n\n const handler = getAppliedEventHandler(target, propName);\n\n if (handler !== undefined) {\n handler(createSyntheticEvent(event, target, state, propName.slice(2).toLowerCase()));\n }\n}\n\nfunction dispatchEventPropNames(\n propNames: readonly string[],\n phase: \"capture\" | \"bubble\",\n event: Event,\n target: Element,\n state: { defaultPrevented: boolean; propagationStopped: boolean },\n): void {\n for (const propName of propNames) {\n if (propName === \"onChange\" && event.type === \"change\" && isTextInputChangeTarget(target)) {\n continue;\n }\n\n const listenerName = phase === \"capture\" ? `${propName}Capture` : propName;\n const handler = getAppliedEventHandler(target, listenerName);\n\n if (handler !== undefined) {\n handler(createSyntheticEvent(event, target, state));\n }\n\n if (state.propagationStopped) {\n return;\n }\n }\n}\n\nfunction isTextInputChangeTarget(target: Element): boolean {\n if (target instanceof HTMLTextAreaElement) {\n return true;\n }\n\n if (!(target instanceof HTMLInputElement)) {\n return false;\n }\n\n return !nonTextInputTypes.has(target.type);\n}\n\nconst nonTextInputTypes = new Set([\n \"button\",\n \"checkbox\",\n \"color\",\n \"file\",\n \"hidden\",\n \"image\",\n \"radio\",\n \"range\",\n \"reset\",\n \"submit\",\n]);\n\nfunction dispatchMouseTransitionEvent(\n propName: \"onMouseEnter\" | \"onMouseLeave\",\n event: Event,\n target: Element,\n state: { defaultPrevented: boolean; propagationStopped: boolean },\n): void {\n if (isInternalMouseTransition(event, target)) {\n return;\n }\n\n const handler = getAppliedEventHandler(target, propName);\n\n if (handler !== undefined) {\n handler(createSyntheticEvent(event, target, state));\n }\n}\n\nfunction isInternalMouseTransition(event: Event, target: Element): boolean {\n const relatedTarget =\n event instanceof MouseEvent && event.relatedTarget instanceof Node ? event.relatedTarget : null;\n\n return relatedTarget !== null && target.contains(relatedTarget);\n}\n\nexport function getEventPath(root: Element, event: Event): Element[] {\n const path: Element[] = [];\n const visited = new Set<Node>();\n let cursor = event.target instanceof Node ? event.target : null;\n\n while (cursor !== null) {\n if (visited.has(cursor)) {\n break;\n }\n visited.add(cursor);\n\n if (cursor instanceof Element) {\n path.push(cursor);\n }\n\n if (cursor === root) {\n const logicalParent = logicalEventParents.get(root);\n if (logicalParent === undefined) {\n break;\n }\n cursor = logicalParent;\n continue;\n }\n\n cursor = cursor.parentNode;\n }\n\n return path;\n}\n\nfunction createSyntheticEvent(\n nativeEvent: Event,\n currentTarget: EventTarget,\n state: { defaultPrevented: boolean; propagationStopped: boolean } = {\n defaultPrevented: nativeEvent.defaultPrevented,\n propagationStopped: false,\n },\n syntheticType = nativeEvent.type,\n): SyntheticEvent {\n const mouseEvent = nativeEvent instanceof MouseEvent ? nativeEvent : undefined;\n const pointerEvent =\n \"pointerId\" in nativeEvent || \"pointerType\" in nativeEvent\n ? (nativeEvent as PointerEvent)\n : undefined;\n const touchEvent = nativeEvent instanceof TouchEvent ? nativeEvent : undefined;\n const keyboardEvent = nativeEvent instanceof KeyboardEvent ? nativeEvent : undefined;\n\n return {\n bubbles: nativeEvent.bubbles,\n cancelable: nativeEvent.cancelable,\n get defaultPrevented() {\n return state.defaultPrevented;\n },\n eventPhase: nativeEvent.eventPhase,\n isTrusted: nativeEvent.isTrusted ?? false,\n nativeEvent,\n timeStamp: nativeEvent.timeStamp,\n type: syntheticType,\n target: nativeEvent.target,\n currentTarget,\n ...(mouseEvent === undefined\n ? {}\n : {\n clientX: mouseEvent.clientX,\n clientY: mouseEvent.clientY,\n pageX: mouseEvent.pageX,\n pageY: mouseEvent.pageY,\n screenX: mouseEvent.screenX,\n screenY: mouseEvent.screenY,\n button: mouseEvent.button,\n buttons: mouseEvent.buttons,\n ctrlKey: mouseEvent.ctrlKey,\n shiftKey: mouseEvent.shiftKey,\n altKey: mouseEvent.altKey,\n metaKey: mouseEvent.metaKey,\n relatedTarget: mouseEvent.relatedTarget,\n }),\n ...(pointerEvent === undefined\n ? {}\n : {\n pointerId: pointerEvent.pointerId,\n pointerType: pointerEvent.pointerType,\n isPrimary: pointerEvent.isPrimary,\n }),\n ...(touchEvent === undefined\n ? {}\n : {\n touches: touchEvent.touches,\n changedTouches: touchEvent.changedTouches,\n }),\n ...(keyboardEvent === undefined ? {} : { key: keyboardEvent.key }),\n persist() {},\n preventDefault() {\n state.defaultPrevented = true;\n nativeEvent.preventDefault();\n },\n stopPropagation() {\n state.propagationStopped = true;\n nativeEvent.stopPropagation();\n },\n isDefaultPrevented() {\n return state.defaultPrevented;\n },\n isPersistent() {\n return true;\n },\n isPropagationStopped() {\n return state.propagationStopped;\n },\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"fiber-commit.js","sourceRoot":"","sources":["../src/fiber-commit.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Fiber, FiberRoot } from \"./fiber.js\";\nimport { ChildDeletion } from \"./fiber-flags.js\";\nimport { commitHostFiberRoot, disposeUnretainedHostFiberResources } from \"./fiber-host.js\";\nimport { markRootFinished } from \"./fiber-lanes.js\";\nimport { runWithHostCommit } from \"./hooks.js\";\nimport type { RenderOptions } from \"./hydration.js\";\n\ninterface RefRecord {\n ref: unknown;\n node: unknown;\n}\n\nexport function commitFiberRoot(\n root: FiberRoot,\n options: RenderOptions = {},\n): void {\n const finishedWork = root.finishedWork;\n\n if (finishedWork === undefined) {\n return;\n }\n\n if (\n root.refCleanupKnown !== true ||\n root.current.hasRefSubtree ||\n finishedWork.hasRefSubtree\n ) {\n runWithHostCommit(() => {\n cleanupDeletedRefs(root.current, finishedWork);\n });\n }\n const shouldCleanupDeletedSubtrees = mayHaveDeletedFiberSubtrees(finishedWork);\n commitHostFiberRoot(root, finishedWork, options);\n if (shouldCleanupDeletedSubtrees) {\n const retainedFibers = collectRetainedFiberPairs(finishedWork);\n detachUnretainedFiberSubtrees(root.current.child, retainedFibers);\n detachDeletedFiberSubtrees(finishedWork, retainedFibers);\n }\n root.current = finishedWork;\n root.current.stateNode = root;\n markRootFinished(root, finishedWork.lanes);\n root.callbackPriority = root.pendingLanes & -root.pendingLanes;\n root.finishedWork = undefined;\n root.workInProgress = undefined;\n root.workInProgressRootRenderLanes = 0;\n}\n\nexport function detachFiberRefs(fiber: Fiber): void {\n for (const record of collectRefRecords(fiber)) {\n detachRef(record.ref);\n }\n}\n\nfunction mayHaveDeletedFiberSubtrees(fiber: Fiber): boolean {\n return ((fiber.flags | fiber.subtreeFlags) & ChildDeletion) !== 0;\n}\n\nfunction collectRetainedFiberPairs(fiber: Fiber | undefined): Set<Fiber> {\n const retained = new Set<Fiber>();\n const stack: Fiber[] = [];\n\n if (fiber !== undefined) {\n stack.push(fiber);\n }\n\n while (stack.length > 0) {\n const current = stack.pop();\n\n if (current === undefined || retained.has(current)) {\n continue;\n }\n\n retained.add(current);\n if (current.alternate !== undefined) {\n retained.add(current.alternate);\n }\n if (current.sibling !== undefined) {\n stack.push(current.sibling);\n }\n if (current.child !== undefined) {\n stack.push(current.child);\n }\n }\n\n return retained;\n}\n\nfunction detachUnretainedFiberSubtrees(\n fiber: Fiber | undefined,\n retained: ReadonlySet<Fiber>,\n): void {\n let cursor = fiber;\n\n while (cursor !== undefined) {\n const next = cursor.sibling;\n if (retained.has(cursor)) {\n detachUnretainedFiberSubtrees(cursor.child, retained);\n } else {\n detachFiberSubtree(cursor, retained);\n }\n cursor = next;\n }\n}\n\nfunction detachDeletedFiberSubtrees(\n fiber: Fiber | undefined,\n retained: ReadonlySet<Fiber>,\n): void {\n let cursor: Fiber | undefined = fiber;\n\n while (cursor !== undefined) {\n if (cursor.deletions !== undefined) {\n for (const deleted of cursor.deletions) {\n detachFiberSubtree(deleted, retained);\n }\n cursor.deletions = undefined;\n }\n\n detachDeletedFiberSubtrees(cursor.child, retained);\n cursor = cursor.sibling;\n }\n}\n\nfunction detachFiberSubtree(fiber: Fiber, retained: ReadonlySet<Fiber>): void {\n disposeUnretainedHostFiberResources(fiber, retained);\n\n const stack = [fiber];\n const seen = new Set<Fiber>();\n\n while (stack.length > 0) {\n const current = stack.pop();\n\n if (current === undefined || seen.has(current) || retained.has(current)) {\n continue;\n }\n\n seen.add(current);\n\n let child = current.child;\n while (child !== undefined) {\n stack.push(child);\n child = child.sibling;\n }\n\n if (current.alternate !== undefined) {\n stack.push(current.alternate);\n }\n\n current.return = undefined;\n current.child = undefined;\n current.sibling = undefined;\n current.alternate = undefined;\n current.pendingProps = undefined;\n current.memoizedProps = undefined;\n current.memoizedState = undefined;\n current.stateNode = undefined;\n current.deletions = undefined;\n }\n}\n\nfunction cleanupDeletedRefs(previous: Fiber, next: Fiber): void {\n const nextRefs = new Set<unknown>();\n\n collectRefRecords(next, nextRefs);\n\n for (const record of collectRefRecords(previous)) {\n if (!nextRefs.has(record.ref)) {\n detachRef(record.ref);\n }\n }\n}\n\nfunction collectRefRecords(\n fiber: Fiber | undefined,\n refs: Set<unknown> = new Set(),\n): RefRecord[] {\n const records: RefRecord[] = [];\n let cursor = fiber;\n\n while (cursor !== undefined) {\n const ref = getFiberRef(cursor);\n\n if (ref !== undefined && ref !== null) {\n refs.add(ref);\n records.push({ ref, node: cursor.stateNode });\n }\n\n records.push(...collectRefRecords(cursor.child, refs));\n cursor = cursor.sibling;\n }\n\n return records;\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;\n}\n\nfunction detachRef(ref: unknown): void {\n if (typeof ref === \"function\") {\n ref(null);\n return;\n }\n\n if (typeof ref === \"object\" && ref !== null && \"current\" in ref) {\n (ref as { current: unknown }).current = null;\n }\n}\n"]}
1
+ {"version":3,"file":"fiber-commit.js","sourceRoot":"","sources":["../src/fiber-commit.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Fiber, FiberRoot } from \"./fiber.js\";\nimport { ChildDeletion } from \"./fiber-flags.js\";\nimport { commitHostFiberRoot, disposeUnretainedHostFiberResources } from \"./fiber-host.js\";\nimport { markRootFinished } from \"./fiber-lanes.js\";\nimport { runWithHostCommit } from \"./hooks.js\";\nimport type { RenderOptions } from \"./hydration.js\";\n\ninterface RefRecord {\n ref: unknown;\n node: unknown;\n}\n\nexport function commitFiberRoot(\n root: FiberRoot,\n options: RenderOptions = {},\n): void {\n const finishedWork = root.finishedWork;\n\n if (finishedWork === undefined) {\n return;\n }\n\n if (\n root.refCleanupKnown !== true ||\n root.current.hasRefSubtree ||\n finishedWork.hasRefSubtree\n ) {\n runWithHostCommit(() => {\n cleanupDeletedRefs(root.current, finishedWork);\n });\n }\n const shouldCleanupDeletedSubtrees = mayHaveDeletedFiberSubtrees(finishedWork);\n commitHostFiberRoot(root, finishedWork, options);\n if (shouldCleanupDeletedSubtrees) {\n const retainedFibers = collectRetainedFiberPairs(finishedWork);\n detachUnretainedFiberSubtrees(root.current.child, retainedFibers);\n detachDeletedFiberSubtrees(finishedWork, retainedFibers);\n }\n root.current = finishedWork;\n root.current.stateNode = root;\n markRootFinished(root, finishedWork.lanes);\n root.callbackPriority = root.pendingLanes & -root.pendingLanes;\n root.finishedWork = undefined;\n root.workInProgress = undefined;\n root.workInProgressRootRenderLanes = 0;\n}\n\nexport function detachFiberRefs(fiber: Fiber): void {\n for (const record of collectRefRecords(fiber)) {\n detachRef(record.ref);\n }\n}\n\nfunction mayHaveDeletedFiberSubtrees(fiber: Fiber): boolean {\n return ((fiber.flags | fiber.subtreeFlags) & ChildDeletion) !== 0;\n}\n\nfunction collectRetainedFiberPairs(fiber: Fiber | undefined): Set<Fiber> {\n const retained = new Set<Fiber>();\n const stack: Fiber[] = [];\n\n if (fiber !== undefined) {\n stack.push(fiber);\n }\n\n while (stack.length > 0) {\n const current = stack.pop();\n\n if (current === undefined || retained.has(current)) {\n continue;\n }\n\n retained.add(current);\n if (current.alternate !== undefined) {\n retained.add(current.alternate);\n }\n if (current.sibling !== undefined) {\n stack.push(current.sibling);\n }\n if (current.child !== undefined) {\n stack.push(current.child);\n }\n }\n\n return retained;\n}\n\nfunction detachUnretainedFiberSubtrees(\n fiber: Fiber | undefined,\n retained: ReadonlySet<Fiber>,\n): void {\n let cursor = fiber;\n\n while (cursor !== undefined) {\n const next = cursor.sibling;\n if (retained.has(cursor)) {\n detachUnretainedFiberSubtrees(cursor.child, retained);\n } else {\n detachFiberSubtree(cursor, retained);\n }\n cursor = next;\n }\n}\n\nfunction detachDeletedFiberSubtrees(\n fiber: Fiber | undefined,\n retained: ReadonlySet<Fiber>,\n): void {\n let cursor: Fiber | undefined = fiber;\n\n while (cursor !== undefined) {\n if (cursor.deletions !== undefined) {\n for (const deleted of cursor.deletions) {\n detachFiberSubtree(deleted, retained);\n }\n cursor.deletions = undefined;\n }\n\n detachDeletedFiberSubtrees(cursor.child, retained);\n cursor = cursor.sibling;\n }\n}\n\nfunction detachFiberSubtree(fiber: Fiber, retained: ReadonlySet<Fiber>): void {\n disposeUnretainedHostFiberResources(fiber, retained);\n\n const stack = [fiber];\n const seen = new Set<Fiber>();\n\n while (stack.length > 0) {\n const current = stack.pop();\n\n if (current === undefined || seen.has(current) || retained.has(current)) {\n continue;\n }\n\n seen.add(current);\n\n let child = current.child;\n while (child !== undefined) {\n stack.push(child);\n child = child.sibling;\n }\n\n if (current.alternate !== undefined) {\n stack.push(current.alternate);\n }\n\n current.return = undefined;\n current.child = undefined;\n current.sibling = undefined;\n current.alternate = undefined;\n current.pendingProps = undefined;\n current.memoizedProps = undefined;\n current.memoizedState = undefined;\n current.stateNode = undefined;\n current.deletions = undefined;\n }\n}\n\nfunction cleanupDeletedRefs(previous: Fiber, next: Fiber): void {\n const nextRefs = new Set<unknown>();\n\n collectRefRecords(next, nextRefs);\n\n for (const record of collectRefRecords(previous)) {\n if (!nextRefs.has(record.ref)) {\n detachRef(record.ref);\n }\n }\n}\n\nfunction collectRefRecords(\n fiber: Fiber | undefined,\n refs: Set<unknown> = new Set(),\n): RefRecord[] {\n const records: RefRecord[] = [];\n let cursor = fiber;\n\n while (cursor !== undefined) {\n const ref = getFiberRef(cursor);\n\n if (ref !== undefined && ref !== null) {\n refs.add(ref);\n records.push({ ref, node: cursor.stateNode });\n }\n\n records.push(...collectRefRecords(cursor.child, refs));\n cursor = cursor.sibling;\n }\n\n return records;\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;\n}\n\nfunction detachRef(ref: unknown): void {\n if (typeof ref === \"function\") {\n ref(null);\n return;\n }\n\n if (typeof ref === \"object\" && ref !== null && \"current\" in ref) {\n (ref as { current: unknown }).current = null;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"fiber-work-loop.js","sourceRoot":"","sources":["../src/fiber-work-loop.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n createFiberRoot,\n createWorkInProgress,\n type Fiber,\n type FiberRoot,\n} from \"./fiber.js\";\nimport {\n getNextLanes,\n markRootUpdated,\n SyncLane,\n type Lane,\n type Lanes,\n} from \"./fiber-lanes.js\";\nimport {\n isPerformingSchedulerWork,\n scheduleCallback,\n shouldYieldToHost,\n type SchedulerCallback,\n} from \"./fiber-scheduler.js\";\nimport {\n cleanupUnfinishedWork,\n performUnitOfWork,\n} from \"./fiber-reconciler.js\";\n\nconst fiberRootsByContainer = new WeakMap<Element, FiberRoot>();\n\nexport interface ConcurrentRenderOptions {\n shouldYield?: () => boolean;\n}\n\nexport type ConcurrentRenderResult =\n | { status: \"completed\"; finishedWork: Fiber }\n | { status: \"yielded\" };\n\nexport function createContainerFiberRoot(container: Element): FiberRoot {\n const existing = fiberRootsByContainer.get(container);\n\n if (existing !== undefined) {\n return existing;\n }\n\n const root = createFiberRoot(container);\n fiberRootsByContainer.set(container, root);\n return root;\n}\n\nexport function getFiberRootForContainer(\n container: Element,\n): FiberRoot | undefined {\n return fiberRootsByContainer.get(container);\n}\n\nexport function enqueueRootRender(\n root: FiberRoot,\n element: unknown,\n lane: Lane,\n commit: () => Fiber | void,\n): void {\n markRootUpdated(root, lane);\n root.workInProgressElement = element;\n\n if ((lane & SyncLane) === 0 && !isPerformingSchedulerWork()) {\n scheduleCallback(getSchedulerPriorityForLanes(lane), () => {\n performSyncWorkOnRoot(root, element, commit);\n });\n return;\n }\n\n performSyncWorkOnRoot(root, element, commit);\n}\n\nexport function shouldYieldAfterUnits(limit: number): () => boolean {\n let units = 0;\n\n return () => {\n units += 1;\n return units > limit;\n };\n}\n\nexport function prepareFreshStack(\n root: FiberRoot,\n element: unknown,\n lanes: Lanes,\n): void {\n const workInProgress = createWorkInProgress(root.current, {\n children: element,\n });\n\n workInProgress.lanes = lanes;\n workInProgress.memoizedProps = { children: element };\n root.workInProgress = workInProgress;\n root.workInProgressRootRenderLanes = lanes;\n root.workInProgressElement = element;\n root.finishedWork = undefined;\n markRootUpdated(root, lanes);\n}\n\nexport function renderRootConcurrent(\n root: FiberRoot,\n lanes: Lanes,\n options: ConcurrentRenderOptions = {},\n): ConcurrentRenderResult {\n if (\n shouldPreemptWorkInProgress(root.workInProgressRootRenderLanes, lanes)\n ) {\n discardWorkInProgress(root);\n }\n\n if (root.workInProgress === undefined) {\n prepareFreshStack(\n root,\n root.workInProgressElement ??\n (root.current.memoizedProps as { children?: unknown } | undefined)?.children,\n lanes,\n );\n }\n\n while (root.workInProgress !== undefined) {\n if (options.shouldYield?.() === true || shouldYieldToHost()) {\n return { status: \"yielded\" };\n }\n\n root.workInProgress = performUnitOfWork(root, root.workInProgress);\n }\n\n const finishedWork = root.finishedWork;\n\n if (finishedWork === undefined) {\n throw new Error(\"Fiber concurrent render completed without finished work.\");\n }\n\n finishedWork.lanes = lanes;\n root.workInProgressRootRenderLanes = 0;\n return { status: \"completed\", finishedWork };\n}\n\nexport function performConcurrentWorkOnRoot(\n root: FiberRoot,\n options: ConcurrentRenderOptions = {},\n): ConcurrentRenderResult {\n const lanes = getNextLanes(root);\n return renderRootConcurrent(root, lanes, options);\n}\n\nexport function scheduleConcurrentWorkOnRoot(\n root: FiberRoot,\n lanes: Lanes,\n): void {\n scheduleCallback(\n getSchedulerPriorityForLanes(lanes),\n createConcurrentRootCallback(root, lanes),\n );\n}\n\nfunction createConcurrentRootCallback(\n root: FiberRoot,\n lanes: Lanes,\n): SchedulerCallback {\n const callback: SchedulerCallback = () => {\n const result = renderRootConcurrent(root, lanes);\n\n return result.status === \"yielded\" ? callback : undefined;\n };\n\n return callback;\n}\n\nexport function performSyncWorkOnRoot(\n root: FiberRoot,\n element: unknown,\n commit: () => Fiber | void,\n): void {\n const lanes = root.pendingLanes;\n const fallbackFinishedWork = createWorkInProgress(root.current, { children: element });\n\n fallbackFinishedWork.lanes = lanes;\n fallbackFinishedWork.memoizedProps = { children: element };\n const committedWork = commit();\n if (committedWork === undefined) {\n root.current = fallbackFinishedWork;\n root.current.stateNode = root;\n }\n root.finishedWork = undefined;\n root.workInProgress = undefined;\n root.workInProgressRootRenderLanes = 0;\n root.pendingLanes &= ~lanes;\n root.callbackPriority = root.pendingLanes & -root.pendingLanes;\n}\n\nfunction shouldPreemptWorkInProgress(\n currentLanes: Lanes,\n nextLanes: Lanes,\n): boolean {\n return currentLanes !== 0 && nextLanes !== 0 && nextLanes < currentLanes;\n}\n\nfunction discardWorkInProgress(root: FiberRoot): void {\n cleanupUnfinishedWork(root.current.alternate);\n\n if (root.current.alternate === root.workInProgress) {\n root.current.alternate = undefined;\n }\n\n root.workInProgress = undefined;\n root.workInProgressRootRenderLanes = 0;\n}\n\nfunction getSchedulerPriorityForLanes(\n lanes: Lanes,\n): \"immediate\" | \"user-blocking\" | \"normal\" | \"low\" {\n if ((lanes & 1) !== 0) {\n return \"immediate\";\n }\n\n if ((lanes & 2) !== 0) {\n return \"user-blocking\";\n }\n\n if ((lanes & 8) !== 0) {\n return \"normal\";\n }\n\n return \"low\";\n}\n"]}
1
+ {"version":3,"file":"fiber-work-loop.js","sourceRoot":"","sources":["../src/fiber-work-loop.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n createFiberRoot,\n createWorkInProgress,\n type Fiber,\n type FiberRoot,\n} from \"./fiber.js\";\nimport {\n getNextLanes,\n markRootUpdated,\n SyncLane,\n type Lane,\n type Lanes,\n} from \"./fiber-lanes.js\";\nimport {\n isPerformingSchedulerWork,\n scheduleCallback,\n shouldYieldToHost,\n type SchedulerCallback,\n} from \"./fiber-scheduler.js\";\nimport {\n cleanupUnfinishedWork,\n performUnitOfWork,\n} from \"./fiber-reconciler.js\";\n\nconst fiberRootsByContainer = new WeakMap<Element, FiberRoot>();\n\nexport interface ConcurrentRenderOptions {\n shouldYield?: () => boolean;\n}\n\nexport type ConcurrentRenderResult =\n | { status: \"completed\"; finishedWork: Fiber }\n | { status: \"yielded\" };\n\nexport function createContainerFiberRoot(container: Element): FiberRoot {\n const existing = fiberRootsByContainer.get(container);\n\n if (existing !== undefined) {\n return existing;\n }\n\n const root = createFiberRoot(container);\n fiberRootsByContainer.set(container, root);\n return root;\n}\n\nexport function getFiberRootForContainer(\n container: Element,\n): FiberRoot | undefined {\n return fiberRootsByContainer.get(container);\n}\n\nexport function enqueueRootRender(\n root: FiberRoot,\n element: unknown,\n lane: Lane,\n commit: () => Fiber | void,\n): void {\n markRootUpdated(root, lane);\n root.workInProgressElement = element;\n\n if ((lane & SyncLane) === 0 && !isPerformingSchedulerWork()) {\n scheduleCallback(getSchedulerPriorityForLanes(lane), () => {\n performSyncWorkOnRoot(root, element, commit);\n });\n return;\n }\n\n performSyncWorkOnRoot(root, element, commit);\n}\n\nexport function shouldYieldAfterUnits(limit: number): () => boolean {\n let units = 0;\n\n return () => {\n units += 1;\n return units > limit;\n };\n}\n\nexport function prepareFreshStack(\n root: FiberRoot,\n element: unknown,\n lanes: Lanes,\n): void {\n const workInProgress = createWorkInProgress(root.current, {\n children: element,\n });\n\n workInProgress.lanes = lanes;\n workInProgress.memoizedProps = { children: element };\n root.workInProgress = workInProgress;\n root.workInProgressRootRenderLanes = lanes;\n root.workInProgressElement = element;\n root.finishedWork = undefined;\n markRootUpdated(root, lanes);\n}\n\nexport function renderRootConcurrent(\n root: FiberRoot,\n lanes: Lanes,\n options: ConcurrentRenderOptions = {},\n): ConcurrentRenderResult {\n if (\n shouldPreemptWorkInProgress(root.workInProgressRootRenderLanes, lanes)\n ) {\n discardWorkInProgress(root);\n }\n\n if (root.workInProgress === undefined) {\n prepareFreshStack(\n root,\n root.workInProgressElement ??\n (root.current.memoizedProps as { children?: unknown } | undefined)?.children,\n lanes,\n );\n }\n\n while (root.workInProgress !== undefined) {\n if (options.shouldYield?.() === true || shouldYieldToHost()) {\n return { status: \"yielded\" };\n }\n\n root.workInProgress = performUnitOfWork(root, root.workInProgress);\n }\n\n const finishedWork = root.finishedWork;\n\n if (finishedWork === undefined) {\n throw new Error(\"Fiber concurrent render completed without finished work.\");\n }\n\n finishedWork.lanes = lanes;\n root.workInProgressRootRenderLanes = 0;\n return { status: \"completed\", finishedWork };\n}\n\nexport function performConcurrentWorkOnRoot(\n root: FiberRoot,\n options: ConcurrentRenderOptions = {},\n): ConcurrentRenderResult {\n const lanes = getNextLanes(root);\n return renderRootConcurrent(root, lanes, options);\n}\n\nexport function scheduleConcurrentWorkOnRoot(\n root: FiberRoot,\n lanes: Lanes,\n): void {\n scheduleCallback(\n getSchedulerPriorityForLanes(lanes),\n createConcurrentRootCallback(root, lanes),\n );\n}\n\nfunction createConcurrentRootCallback(\n root: FiberRoot,\n lanes: Lanes,\n): SchedulerCallback {\n const callback: SchedulerCallback = () => {\n const result = renderRootConcurrent(root, lanes);\n\n return result.status === \"yielded\" ? callback : undefined;\n };\n\n return callback;\n}\n\nexport function performSyncWorkOnRoot(\n root: FiberRoot,\n element: unknown,\n commit: () => Fiber | void,\n): void {\n const lanes = root.pendingLanes;\n const fallbackFinishedWork = createWorkInProgress(root.current, { children: element });\n\n fallbackFinishedWork.lanes = lanes;\n fallbackFinishedWork.memoizedProps = { children: element };\n const committedWork = commit();\n if (committedWork === undefined) {\n root.current = fallbackFinishedWork;\n root.current.stateNode = root;\n }\n root.finishedWork = undefined;\n root.workInProgress = undefined;\n root.workInProgressRootRenderLanes = 0;\n root.pendingLanes &= ~lanes;\n root.callbackPriority = root.pendingLanes & -root.pendingLanes;\n}\n\nfunction shouldPreemptWorkInProgress(\n currentLanes: Lanes,\n nextLanes: Lanes,\n): boolean {\n return currentLanes !== 0 && nextLanes !== 0 && nextLanes < currentLanes;\n}\n\nfunction discardWorkInProgress(root: FiberRoot): void {\n cleanupUnfinishedWork(root.current.alternate);\n\n if (root.current.alternate === root.workInProgress) {\n root.current.alternate = undefined;\n }\n\n root.workInProgress = undefined;\n root.workInProgressRootRenderLanes = 0;\n}\n\nfunction getSchedulerPriorityForLanes(\n lanes: Lanes,\n): \"immediate\" | \"user-blocking\" | \"normal\" | \"low\" {\n if ((lanes & 1) !== 0) {\n return \"immediate\";\n }\n\n if ((lanes & 2) !== 0) {\n return \"user-blocking\";\n }\n\n if ((lanes & 8) !== 0) {\n return \"normal\";\n }\n\n return \"low\";\n}\n"]}
package/dist/fiber.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fiber.js","sourceRoot":"","sources":["../src/fiber.ts"],"names":[],"mappings":"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","sourcesContent":["import { NoFlags, type Flags } from \"./fiber-flags.js\";\nimport { NoLanes, type Lane, type Lanes } from \"./fiber-lanes.js\";\n\nexport type FiberTag =\n | \"host-root\"\n | \"host-component\"\n | \"host-text\"\n | \"fragment\"\n | \"function-component\"\n | \"forward-ref\"\n | \"class-component\"\n | \"context-provider\"\n | \"context-consumer\"\n | \"portal\"\n | \"memo\"\n | \"lazy\"\n | \"profiler\"\n | \"reactive-dom-block\"\n | \"strict-mode\"\n | \"suspense\"\n | \"suspense-list\"\n | \"error-boundary\";\n\nexport interface Fiber {\n tag: FiberTag;\n type: unknown;\n key: string | undefined;\n pendingProps: unknown;\n memoizedProps: unknown;\n memoizedState: unknown;\n return: Fiber | undefined;\n child: Fiber | undefined;\n sibling: Fiber | undefined;\n alternate: Fiber | undefined;\n stateNode: unknown;\n flags: Flags;\n subtreeFlags: Flags;\n childListChanged: boolean;\n subtreeChildListChanged: boolean;\n deletions: Fiber[] | undefined;\n lanes: Lanes;\n childLanes: Lanes;\n hydrateExisting: boolean;\n hasRefSubtree: boolean;\n hasDisposableResources: boolean;\n hostChildListChanged: boolean;\n}\n\nexport interface FiberRoot {\n container: Element;\n current: Fiber;\n finishedWork: Fiber | undefined;\n pendingLanes: Lanes;\n suspendedLanes: Lanes;\n pingedLanes: Lanes;\n expiredLanes: Lanes;\n entangledLanes: Lanes;\n callbackNode: unknown;\n callbackPriority: Lane;\n workInProgress: Fiber | undefined;\n workInProgressRootRenderLanes: Lanes;\n workInProgressElement: unknown;\n hydrationState: FiberHydrationState | undefined;\n refCleanupKnown: boolean;\n}\n\nexport interface FiberHydrationState {\n parent: ParentNode;\n nextHydratableNode: Node | null;\n before: ChildNode | null;\n after: ChildNode | null;\n resumeId?: string;\n}\n\nexport function createFiber(\n tag: FiberTag,\n pendingProps: unknown = undefined,\n key?: string,\n): Fiber {\n return {\n tag,\n type: undefined,\n key,\n pendingProps,\n memoizedProps: undefined,\n memoizedState: undefined,\n return: undefined,\n child: undefined,\n sibling: undefined,\n alternate: undefined,\n stateNode: undefined,\n flags: NoFlags,\n subtreeFlags: NoFlags,\n childListChanged: false,\n subtreeChildListChanged: false,\n deletions: undefined,\n lanes: NoLanes,\n childLanes: NoLanes,\n hydrateExisting: false,\n hasRefSubtree: false,\n hasDisposableResources: false,\n hostChildListChanged: false,\n };\n}\n\nexport function createHostRootFiber(): Fiber {\n return createFiber(\"host-root\", undefined);\n}\n\nexport function createFiberRoot(container: Element): FiberRoot {\n const current = createHostRootFiber();\n const root: FiberRoot = {\n container,\n current,\n finishedWork: undefined,\n pendingLanes: NoLanes,\n suspendedLanes: NoLanes,\n pingedLanes: NoLanes,\n expiredLanes: NoLanes,\n entangledLanes: NoLanes,\n callbackNode: undefined,\n callbackPriority: NoLanes,\n workInProgress: undefined,\n workInProgressRootRenderLanes: NoLanes,\n workInProgressElement: undefined,\n hydrationState: undefined,\n refCleanupKnown: false,\n };\n current.stateNode = root;\n return root;\n}\n\nexport function createWorkInProgress(\n current: Fiber,\n pendingProps: unknown,\n): Fiber {\n let workInProgress = current.alternate;\n\n if (workInProgress === undefined) {\n workInProgress = createFiber(current.tag, pendingProps, current.key);\n workInProgress.type = current.type;\n workInProgress.stateNode = current.stateNode;\n workInProgress.alternate = current;\n current.alternate = workInProgress;\n } else {\n workInProgress.pendingProps = pendingProps;\n workInProgress.flags = NoFlags;\n workInProgress.subtreeFlags = NoFlags;\n workInProgress.childListChanged = false;\n workInProgress.subtreeChildListChanged = false;\n workInProgress.deletions = undefined;\n }\n\n workInProgress.child = current.child;\n workInProgress.sibling = current.sibling;\n workInProgress.return = current.return;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.lanes = current.lanes;\n workInProgress.childLanes = current.childLanes;\n workInProgress.hydrateExisting = false;\n workInProgress.hasRefSubtree = current.hasRefSubtree;\n workInProgress.hasDisposableResources = current.hasDisposableResources;\n workInProgress.hostChildListChanged = current.hostChildListChanged;\n return workInProgress;\n}\n"]}
1
+ {"version":3,"file":"fiber.js","sourceRoot":"","sources":["../src/fiber.ts"],"names":[],"mappings":"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","sourcesContent":["import { NoFlags, type Flags } from \"./fiber-flags.js\";\nimport { NoLanes, type Lane, type Lanes } from \"./fiber-lanes.js\";\n\nexport type FiberTag =\n | \"host-root\"\n | \"host-component\"\n | \"host-text\"\n | \"fragment\"\n | \"function-component\"\n | \"forward-ref\"\n | \"class-component\"\n | \"context-provider\"\n | \"context-consumer\"\n | \"portal\"\n | \"memo\"\n | \"lazy\"\n | \"profiler\"\n | \"reactive-dom-block\"\n | \"strict-mode\"\n | \"suspense\"\n | \"suspense-list\"\n | \"error-boundary\";\n\nexport interface Fiber {\n tag: FiberTag;\n type: unknown;\n key: string | undefined;\n pendingProps: unknown;\n memoizedProps: unknown;\n memoizedState: unknown;\n return: Fiber | undefined;\n child: Fiber | undefined;\n sibling: Fiber | undefined;\n alternate: Fiber | undefined;\n stateNode: unknown;\n flags: Flags;\n subtreeFlags: Flags;\n childListChanged: boolean;\n subtreeChildListChanged: boolean;\n deletions: Fiber[] | undefined;\n lanes: Lanes;\n childLanes: Lanes;\n hydrateExisting: boolean;\n hasRefSubtree: boolean;\n hasDisposableResources: boolean;\n hostChildListChanged: boolean;\n}\n\nexport interface FiberRoot {\n container: Element;\n current: Fiber;\n finishedWork: Fiber | undefined;\n pendingLanes: Lanes;\n suspendedLanes: Lanes;\n pingedLanes: Lanes;\n expiredLanes: Lanes;\n entangledLanes: Lanes;\n callbackNode: unknown;\n callbackPriority: Lane;\n workInProgress: Fiber | undefined;\n workInProgressRootRenderLanes: Lanes;\n workInProgressElement: unknown;\n hydrationState: FiberHydrationState | undefined;\n refCleanupKnown: boolean;\n}\n\nexport interface FiberHydrationState {\n parent: ParentNode;\n nextHydratableNode: Node | null;\n before: ChildNode | null;\n after: ChildNode | null;\n resumeId?: string;\n}\n\nexport function createFiber(\n tag: FiberTag,\n pendingProps: unknown = undefined,\n key?: string,\n): Fiber {\n return {\n tag,\n type: undefined,\n key,\n pendingProps,\n memoizedProps: undefined,\n memoizedState: undefined,\n return: undefined,\n child: undefined,\n sibling: undefined,\n alternate: undefined,\n stateNode: undefined,\n flags: NoFlags,\n subtreeFlags: NoFlags,\n childListChanged: false,\n subtreeChildListChanged: false,\n deletions: undefined,\n lanes: NoLanes,\n childLanes: NoLanes,\n hydrateExisting: false,\n hasRefSubtree: false,\n hasDisposableResources: false,\n hostChildListChanged: false,\n };\n}\n\nexport function createHostRootFiber(): Fiber {\n return createFiber(\"host-root\", undefined);\n}\n\nexport function createFiberRoot(container: Element): FiberRoot {\n const current = createHostRootFiber();\n const root: FiberRoot = {\n container,\n current,\n finishedWork: undefined,\n pendingLanes: NoLanes,\n suspendedLanes: NoLanes,\n pingedLanes: NoLanes,\n expiredLanes: NoLanes,\n entangledLanes: NoLanes,\n callbackNode: undefined,\n callbackPriority: NoLanes,\n workInProgress: undefined,\n workInProgressRootRenderLanes: NoLanes,\n workInProgressElement: undefined,\n hydrationState: undefined,\n refCleanupKnown: false,\n };\n current.stateNode = root;\n return root;\n}\n\nexport function createWorkInProgress(\n current: Fiber,\n pendingProps: unknown,\n): Fiber {\n let workInProgress = current.alternate;\n\n if (workInProgress === undefined) {\n workInProgress = createFiber(current.tag, pendingProps, current.key);\n workInProgress.type = current.type;\n workInProgress.stateNode = current.stateNode;\n workInProgress.alternate = current;\n current.alternate = workInProgress;\n } else {\n workInProgress.pendingProps = pendingProps;\n workInProgress.flags = NoFlags;\n workInProgress.subtreeFlags = NoFlags;\n workInProgress.childListChanged = false;\n workInProgress.subtreeChildListChanged = false;\n workInProgress.deletions = undefined;\n }\n\n workInProgress.child = current.child;\n workInProgress.sibling = current.sibling;\n workInProgress.return = current.return;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.lanes = current.lanes;\n workInProgress.childLanes = current.childLanes;\n workInProgress.hydrateExisting = false;\n workInProgress.hasRefSubtree = current.hasRefSubtree;\n workInProgress.hasDisposableResources = current.hasDisposableResources;\n workInProgress.hostChildListChanged = current.hostChildListChanged;\n return workInProgress;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"flight-parser.js","sourceRoot":"","sources":["../src/flight-parser.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReactFlightBinaryRowTag } from \"./flight-protocol.js\";\nimport type {\n FlightArrayBufferModel,\n FlightClientReference,\n FlightDataViewModel,\n FlightElementModel,\n FlightErrorModel,\n FlightModel,\n FlightResponse,\n FlightServerReference,\n FlightTypedArrayModel,\n FlightTypedArrayName,\n} from \"./flight-types.js\";\n\ninterface ReactFlightRow {\n id: number;\n tag?: string;\n payload: string;\n payloadBytes?: Uint8Array;\n}\n\nconst MAX_FLIGHT_DECODE_DEPTH = 256;\n\nclass FlightDecodeError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"FlightDecodeError\";\n }\n}\n\ninterface FlightDecodeContext {\n inProgressChunkIds: Set<number>;\n}\n\nfunction createFlightDecodeContext(): FlightDecodeContext {\n return {\n inProgressChunkIds: new Set(),\n };\n}\n\nfunction flightTooDeep(): never {\n throw new FlightDecodeError(\n `MR_FLIGHT_TOO_DEEP: nested deeper than ${MAX_FLIGHT_DECODE_DEPTH} levels`,\n );\n}\n\nfunction flightCycle(id: number): never {\n throw new FlightDecodeError(`MR_FLIGHT_CYCLE: cyclic chunk reference ${id}`);\n}\n\nexport function parseReactFlightPayload(\n payload: string | ArrayBuffer | Uint8Array,\n): FlightResponse {\n if (typeof payload !== \"string\") {\n return parseReactFlightBinaryRows(payload);\n }\n\n const trimmed = payload.trim();\n\n if (trimmed.startsWith(\"{\")) {\n return JSON.parse(trimmed) as FlightResponse;\n }\n\n return parseReactFlightRows(trimmed);\n}\n\nfunction parseReactFlightRows(rows: string): FlightResponse {\n const lines = rows.split(/\\r?\\n/).filter(Boolean);\n const metadataLine = lines.find((line) => line.startsWith(\"M0:\"));\n const rootLine = lines.find((line) => line.startsWith(\"J0:\"));\n\n if (metadataLine !== undefined && rootLine !== undefined) {\n const metadata = JSON.parse(metadataLine.slice(3)) as Omit<FlightResponse, \"root\">;\n\n return {\n version: metadata.version,\n clientReferences: metadata.clientReferences,\n serverReferences: metadata.serverReferences,\n root: JSON.parse(rootLine.slice(3)) as FlightModel,\n };\n }\n\n return parseReactFlightRowObjects(lines.map((line) => parseReactFlightRow(line)));\n}\n\nfunction parseReactFlightBinaryRows(payload: ArrayBuffer | Uint8Array): FlightResponse {\n const bytes = payload instanceof Uint8Array ? payload : new Uint8Array(payload);\n const decoder = new TextDecoder();\n const rows: ReactFlightRow[] = [];\n let index = 0;\n\n while (index < bytes.length) {\n index = skipReactFlightRowBreak(bytes, index);\n\n if (index >= bytes.length) {\n break;\n }\n\n const idStart = index;\n while (index < bytes.length && bytes[index] !== 58) {\n index += 1;\n }\n\n if (index >= bytes.length) {\n throw new Error(\"Invalid React Flight binary row.\");\n }\n\n const idText = decoder.decode(bytes.subarray(idStart, index));\n const id = idText === \"\" ? 0 : parseReactFlightId(idText);\n index += 1;\n\n if (index >= bytes.length) {\n throw new Error(\"Invalid React Flight binary row.\");\n }\n\n const tag = String.fromCharCode(bytes[index] ?? 0);\n\n if (isReactFlightBinaryRowTag(tag)) {\n index += 1;\n const lengthStart = index;\n\n while (index < bytes.length && bytes[index] !== 44) {\n index += 1;\n }\n\n if (index >= bytes.length) {\n throw new Error(\"Invalid React Flight binary row.\");\n }\n\n const byteLength = parseReactFlightId(decoder.decode(bytes.subarray(lengthStart, index)));\n index += 1;\n\n if (index + byteLength > bytes.length) {\n throw new Error(\"React Flight binary row ended before declared payload length.\");\n }\n\n rows.push({\n id,\n tag,\n payload: `${byteLength.toString(16)},`,\n payloadBytes: bytes.slice(index, index + byteLength),\n });\n index += byteLength;\n index = skipReactFlightRowBreak(bytes, index);\n continue;\n }\n\n const bodyStart = index;\n while (index < bytes.length && bytes[index] !== 10 && bytes[index] !== 13) {\n index += 1;\n }\n\n rows.push(parseReactFlightRow(`${idText}:${decoder.decode(bytes.subarray(bodyStart, index))}`));\n index = skipReactFlightRowBreak(bytes, index);\n }\n\n return parseReactFlightRowObjects(rows);\n}\n\nfunction parseReactFlightRowObjects(rows: ReactFlightRow[]): FlightResponse {\n const clientReferences: FlightClientReference[] = [];\n const serverReferences: FlightServerReference[] = [];\n const modelChunks = new Map<number, unknown>();\n const errorChunks = new Map<number, FlightErrorModel>();\n let root: FlightModel | undefined;\n\n for (const row of rows) {\n if (row.tag === \"I\") {\n clientReferences.push(parseReactFlightClientReference(row.id, row.payload));\n continue;\n }\n\n if (row.tag === \"F\") {\n serverReferences.push(\n parseReactFlightServerReference(row.id, row.payload, modelChunks, errorChunks),\n );\n continue;\n }\n\n if (row.tag === \"E\") {\n const error = parseReactFlightError(row.payload);\n errorChunks.set(row.id, error);\n\n if (row.id === 0) {\n root = error;\n }\n continue;\n }\n\n if (row.tag === \"T\") {\n modelChunks.set(row.id, parseReactFlightTextChunk(row.payload));\n continue;\n }\n\n if (isReactFlightBinaryRowTag(row.tag)) {\n modelChunks.set(row.id, parseReactFlightBinaryChunk(row.tag, row.payload, row.payloadBytes));\n continue;\n }\n\n if (isReactFlightMetadataTag(row.tag)) {\n continue;\n }\n\n if (row.tag === undefined && row.payload !== \"\") {\n modelChunks.set(row.id, JSON.parse(row.payload));\n }\n }\n\n if (root === undefined && modelChunks.has(0)) {\n root = decodeReactFlightModel(modelChunks.get(0), modelChunks, errorChunks);\n }\n\n if (root === undefined) {\n throw new Error(\"Invalid React Flight rows.\");\n }\n\n return {\n version: 1,\n root,\n clientReferences,\n serverReferences,\n };\n}\n\nfunction skipReactFlightRowBreak(bytes: Uint8Array, index: number): number {\n let next = index;\n\n while (next < bytes.length && (bytes[next] === 10 || bytes[next] === 13)) {\n next += 1;\n }\n\n return next;\n}\n\nfunction parseReactFlightRow(line: string): ReactFlightRow {\n const separator = line.indexOf(\":\");\n\n if (separator < 0) {\n throw new Error(\"Invalid React Flight row.\");\n }\n\n const id = separator === 0 ? 0 : parseReactFlightId(line.slice(0, separator));\n const body = line.slice(separator + 1);\n const first = body[0];\n const hasTag = first !== undefined && isReactFlightRowTag(first, body);\n\n if (first !== undefined && !hasTag && looksLikeUnsupportedReactFlightTag(first, body)) {\n throw new Error(`Unsupported React Flight row tag: ${first}`);\n }\n\n return {\n id,\n ...(hasTag ? { tag: first } : {}),\n payload: hasTag ? body.slice(1) : body,\n };\n}\n\nfunction looksLikeUnsupportedReactFlightTag(tag: string, body: string): boolean {\n return /^[A-Z]$/.test(tag) && (body[1] === \"{\" || body[1] === \"[\" || body[1] === '\"');\n}\n\nfunction parseReactFlightTextChunk(payload: string): string {\n const separator = payload.indexOf(\",\");\n\n if (separator < 0) {\n throw new Error(\"Invalid React Flight text row.\");\n }\n\n return payload.slice(separator + 1);\n}\n\nfunction parseReactFlightBinaryChunk(\n tag: ReactFlightBinaryRowTag,\n payload: string,\n payloadBytes?: Uint8Array,\n): FlightArrayBufferModel | FlightTypedArrayModel | FlightDataViewModel {\n if (payloadBytes !== undefined) {\n return createReactFlightBinaryModel(tag, payloadBytes);\n }\n\n const separator = payload.indexOf(\",\");\n\n if (separator < 0) {\n throw new Error(\"Invalid React Flight binary row.\");\n }\n\n const byteLength = parseReactFlightId(payload.slice(0, separator));\n const bytes = decodeBase64Bytes(payload.slice(separator + 1));\n\n if (bytes.length !== byteLength) {\n throw new Error(\"React Flight binary row length did not match declared payload length.\");\n }\n\n return createReactFlightBinaryModel(tag, bytes);\n}\n\nfunction isReactFlightMetadataTag(tag: string | undefined): boolean {\n return (\n tag === \"H\" ||\n tag === \"N\" ||\n tag === \"P\" ||\n tag === \"D\" ||\n tag === \"J\" ||\n tag === \"W\" ||\n tag === \"R\" ||\n tag === \"r\" ||\n tag === \"X\" ||\n tag === \"x\" ||\n tag === \"C\"\n );\n}\n\nfunction isReactFlightRowTag(tag: string, body: string): boolean {\n if (\n tag === \"I\" ||\n tag === \"F\" ||\n tag === \"E\" ||\n tag === \"T\" ||\n tag === \"H\" ||\n tag === \"N\" ||\n tag === \"P\" ||\n tag === \"D\" ||\n tag === \"J\" ||\n tag === \"W\" ||\n tag === \"R\" ||\n tag === \"r\" ||\n tag === \"X\" ||\n tag === \"x\" ||\n tag === \"C\"\n ) {\n return true;\n }\n\n return isReactFlightBinaryRowTag(tag) && /^[AOoUSsLlGgMmV][0-9a-f]+,/i.test(body);\n}\n\nfunction isReactFlightBinaryRowTag(tag: string | undefined): tag is ReactFlightBinaryRowTag {\n return (\n tag === \"A\" ||\n tag === \"O\" ||\n tag === \"o\" ||\n tag === \"U\" ||\n tag === \"S\" ||\n tag === \"s\" ||\n tag === \"L\" ||\n tag === \"l\" ||\n tag === \"G\" ||\n tag === \"g\" ||\n tag === \"M\" ||\n tag === \"m\" ||\n tag === \"V\"\n );\n}\n\nfunction createReactFlightBinaryModel(\n tag: ReactFlightBinaryRowTag,\n bytes: Uint8Array,\n): FlightArrayBufferModel | FlightTypedArrayModel | FlightDataViewModel {\n const byteValues = Array.from(bytes);\n\n if (tag === \"A\") {\n return {\n kind: \"array-buffer\",\n bytes: byteValues,\n };\n }\n\n if (tag === \"V\") {\n return {\n kind: \"data-view\",\n bytes: byteValues,\n };\n }\n\n return {\n kind: \"typed-array\",\n arrayType: getReactFlightTypedArrayName(tag),\n bytes: byteValues,\n };\n}\n\nfunction getReactFlightTypedArrayName(\n tag: Exclude<ReactFlightBinaryRowTag, \"A\" | \"V\">,\n): FlightTypedArrayName {\n switch (tag) {\n case \"O\":\n return \"Int8Array\";\n case \"o\":\n return \"Uint8Array\";\n case \"U\":\n return \"Uint8ClampedArray\";\n case \"S\":\n return \"Int16Array\";\n case \"s\":\n return \"Uint16Array\";\n case \"L\":\n return \"Int32Array\";\n case \"l\":\n return \"Uint32Array\";\n case \"G\":\n return \"Float32Array\";\n case \"g\":\n return \"Float64Array\";\n case \"M\":\n return \"BigInt64Array\";\n case \"m\":\n return \"BigUint64Array\";\n default:\n throw new Error(`Unsupported React Flight typed array row tag: ${tag}`);\n }\n}\n\nfunction decodeBase64Bytes(value: string): Uint8Array {\n const normalized = value.replaceAll(\"-\", \"+\").replaceAll(\"_\", \"/\");\n const padded = normalized.padEnd(Math.ceil(normalized.length / 4) * 4, \"=\");\n const binary = globalThis.atob(padded);\n const bytes = new Uint8Array(binary.length);\n\n for (let index = 0; index < binary.length; index += 1) {\n bytes[index] = binary.charCodeAt(index);\n }\n\n return bytes;\n}\n\nfunction parseReactFlightClientReference(id: number, payload: string): FlightClientReference {\n const value = JSON.parse(payload) as unknown;\n\n if (Array.isArray(value)) {\n return {\n id,\n moduleId: String(value[0]),\n chunks: Array.isArray(value[1]) ? value[1].map(String) : [],\n exportName: String(value[2] ?? \"default\"),\n };\n }\n\n const object = valueIsObject(value) ? value : {};\n\n return {\n id,\n moduleId: String(object.id ?? object.moduleId ?? \"\"),\n chunks: Array.isArray(object.chunks) ? object.chunks.map(String) : [],\n exportName: String(object.name ?? object.exportName ?? \"default\"),\n };\n}\n\nfunction parseReactFlightServerReference(\n id: number,\n payload: string,\n modelChunks: ReadonlyMap<number, unknown> = new Map(),\n errorChunks: ReadonlyMap<number, FlightErrorModel> = new Map(),\n): FlightServerReference {\n const value = JSON.parse(payload) as unknown;\n const object = valueIsObject(value) ? value : {};\n const actionId = String(object.id ?? \"\");\n const separator = actionId.lastIndexOf(\"#\");\n const bound = Array.isArray(object.bound)\n ? object.bound.map((entry) =>\n decodeReactFlightModel(entry, modelChunks, errorChunks, 0, createFlightDecodeContext()),\n )\n : undefined;\n\n return {\n id,\n moduleId: separator < 0 ? actionId : actionId.slice(0, separator),\n exportName:\n typeof object.name === \"string\"\n ? object.name\n : separator < 0\n ? \"default\"\n : actionId.slice(separator + 1),\n ...(bound === undefined ? {} : { bound }),\n };\n}\n\nfunction decodeReactFlightModel(\n value: unknown,\n modelChunks: ReadonlyMap<number, unknown> = new Map(),\n errorChunks: ReadonlyMap<number, FlightErrorModel> = new Map(),\n depth = 0,\n context: FlightDecodeContext = createFlightDecodeContext(),\n): FlightModel {\n if (depth > MAX_FLIGHT_DECODE_DEPTH) flightTooDeep();\n\n if (value === null || typeof value === \"number\" || typeof value === \"boolean\") {\n return value;\n }\n\n if (typeof value === \"string\") {\n return decodeReactFlightString(value, modelChunks, errorChunks, depth, context);\n }\n\n if (Array.isArray(value)) {\n if (value[0] === \"$\") {\n return {\n kind: \"element\",\n type: decodeReactFlightElementType(value[1]),\n key: typeof value[2] === \"string\" ? value[2] : null,\n props: decodeReactFlightProps(\n valueIsObject(value[3]) ? value[3] : {},\n modelChunks,\n errorChunks,\n depth + 1,\n context,\n ),\n };\n }\n\n return value.map((item) =>\n decodeReactFlightModel(item, modelChunks, errorChunks, depth + 1, context),\n );\n }\n\n if (isReactFlightBinaryModel(value)) {\n return value;\n }\n\n if (valueIsObject(value)) {\n return decodeReactFlightProps(value, modelChunks, errorChunks, depth + 1, context);\n }\n\n return { kind: \"undefined\" };\n}\n\nfunction decodeReactFlightString(\n value: string,\n modelChunks: ReadonlyMap<number, unknown>,\n errorChunks: ReadonlyMap<number, FlightErrorModel>,\n depth: number,\n context: FlightDecodeContext,\n): FlightModel {\n if (value === \"$undefined\" || value === \"$u\") {\n return { kind: \"undefined\" };\n }\n\n if (value.startsWith(\"$$\")) {\n return value.slice(1);\n }\n\n if (value === \"$I\") {\n return { kind: \"number\", value: \"Infinity\" };\n }\n\n if (value === \"$-Infinity\") {\n return { kind: \"number\", value: \"-Infinity\" };\n }\n\n if (value === \"$-0\") {\n return { kind: \"number\", value: \"-0\" };\n }\n\n if (value === \"$N\") {\n return { kind: \"number\", value: \"NaN\" };\n }\n\n if (value.startsWith(\"$D\")) {\n return { kind: \"date\", value: value.slice(2) };\n }\n\n if (value.startsWith(\"$n\")) {\n return { kind: \"bigint\", value: value.slice(2) };\n }\n\n if (/^\\$F[0-9a-f]+$/i.test(value)) {\n return {\n kind: \"server-reference\",\n id: parseReactFlightId(value.slice(2)),\n };\n }\n\n if (/^\\$L[0-9a-f]+$/i.test(value)) {\n return {\n kind: \"client-reference\",\n id: parseReactFlightId(value.slice(2)),\n };\n }\n\n if (/^\\$[AOoUSsLlGgMmV][0-9a-f]+$/.test(value)) {\n return decodeReactFlightChunk(value.slice(2), modelChunks, errorChunks, depth + 1, context);\n }\n\n if (value.startsWith(\"$S\")) {\n return { kind: \"symbol\", name: value.slice(2) };\n }\n\n if (/^\\$@[0-9a-f]*$/i.test(value)) {\n return {\n kind: \"promise\",\n id: value.length === 2 ? 0 : parseReactFlightId(value.slice(2)),\n };\n }\n\n if (/^\\$Q[0-9a-f]+$/i.test(value)) {\n const decoded = decodeReactFlightChunk(\n value.slice(2),\n modelChunks,\n errorChunks,\n depth + 1,\n context,\n );\n const entries = Array.isArray(decoded)\n ? decoded.map((entry): [FlightModel, FlightModel] =>\n Array.isArray(entry)\n ? [entry[0] ?? { kind: \"undefined\" }, entry[1] ?? { kind: \"undefined\" }]\n : [entry, { kind: \"undefined\" }],\n )\n : [];\n\n return {\n kind: \"map\",\n entries,\n };\n }\n\n if (/^\\$W[0-9a-f]+$/i.test(value)) {\n const decoded = decodeReactFlightChunk(\n value.slice(2),\n modelChunks,\n errorChunks,\n depth + 1,\n context,\n );\n\n return {\n kind: \"set\",\n values: Array.isArray(decoded) ? decoded : [],\n };\n }\n\n if (/^\\$K[0-9a-f]+$/i.test(value)) {\n const decoded = decodeReactFlightChunk(\n value.slice(2),\n modelChunks,\n errorChunks,\n depth + 1,\n context,\n );\n const entries = Array.isArray(decoded)\n ? decoded.flatMap((entry): [string, FlightModel][] =>\n Array.isArray(entry) && typeof entry[0] === \"string\"\n ? [[entry[0], entry[1] ?? { kind: \"undefined\" }]]\n : [],\n )\n : [];\n\n return {\n kind: \"form-data\",\n entries,\n };\n }\n\n if (/^\\$i[0-9a-f]+$/i.test(value)) {\n const decoded = decodeReactFlightChunk(\n value.slice(2),\n modelChunks,\n errorChunks,\n depth + 1,\n context,\n );\n\n return {\n kind: \"iterable\",\n values: Array.isArray(decoded) ? decoded : [],\n };\n }\n\n if (/^\\$Z[0-9a-f]+$/i.test(value)) {\n return (\n errorChunks.get(parseReactFlightId(value.slice(2))) ?? {\n kind: \"error\",\n name: \"Error\",\n message: \"Unknown React Flight error.\",\n }\n );\n }\n\n if (value === \"$Y\" || value.startsWith(\"$E\")) {\n return { kind: \"undefined\" };\n }\n\n if (/^\\$[0-9a-f]+$/i.test(value)) {\n return decodeReactFlightChunk(value.slice(1), modelChunks, errorChunks, depth + 1, context);\n }\n\n return value;\n}\n\nfunction decodeReactFlightChunk(\n id: string,\n modelChunks: ReadonlyMap<number, unknown>,\n errorChunks: ReadonlyMap<number, FlightErrorModel>,\n depth: number,\n context: FlightDecodeContext,\n): FlightModel {\n if (depth > MAX_FLIGHT_DECODE_DEPTH) flightTooDeep();\n const numericId = parseReactFlightId(id);\n const error = errorChunks.get(numericId);\n\n if (error !== undefined) {\n return error;\n }\n\n if (!modelChunks.has(numericId)) {\n return {\n kind: \"promise\",\n id: numericId,\n };\n }\n\n if (context.inProgressChunkIds.has(numericId)) {\n flightCycle(numericId);\n }\n\n context.inProgressChunkIds.add(numericId);\n try {\n return decodeReactFlightModel(\n modelChunks.get(numericId),\n modelChunks,\n errorChunks,\n depth,\n context,\n );\n } finally {\n context.inProgressChunkIds.delete(numericId);\n }\n}\n\nfunction decodeReactFlightElementType(value: unknown): FlightElementModel[\"type\"] {\n if (value === \"$Sreact.fragment\") {\n return { kind: \"fragment\" };\n }\n\n if (typeof value === \"string\" && /^\\$L[0-9a-f]+$/i.test(value)) {\n return {\n kind: \"client-reference\",\n id: parseReactFlightId(value.slice(2)),\n };\n }\n\n return typeof value === \"string\" ? value : String(value);\n}\n\nfunction decodeReactFlightProps(\n value: Record<string, unknown>,\n modelChunks: ReadonlyMap<number, unknown>,\n errorChunks: ReadonlyMap<number, FlightErrorModel>,\n depth = 0,\n context: FlightDecodeContext = createFlightDecodeContext(),\n): Record<string, FlightModel> {\n if (depth > MAX_FLIGHT_DECODE_DEPTH) flightTooDeep();\n\n return Object.fromEntries(\n Object.entries(value).map(([key, child]) => [\n key,\n decodeReactFlightModel(child, modelChunks, errorChunks, depth + 1, context),\n ]),\n );\n}\n\nfunction isReactFlightBinaryModel(\n value: unknown,\n): value is FlightArrayBufferModel | FlightTypedArrayModel | FlightDataViewModel {\n return (\n valueIsObject(value) &&\n (value.kind === \"array-buffer\" || value.kind === \"typed-array\" || value.kind === \"data-view\")\n );\n}\n\nfunction parseReactFlightError(payload: string): FlightErrorModel {\n const value = JSON.parse(payload) as unknown;\n const object = valueIsObject(value) ? value : {};\n const digest = typeof object.digest === \"string\" ? object.digest : undefined;\n\n return {\n kind: \"error\",\n name: typeof object.name === \"string\" ? object.name : \"Error\",\n message: typeof object.message === \"string\" ? object.message : \"React Flight error.\",\n ...(digest === undefined ? {} : { digest }),\n };\n}\n\nfunction valueIsObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction parseReactFlightId(value: string): number {\n return Number.parseInt(value, 16);\n}\n"]}
1
+ {"version":3,"file":"flight-parser.js","sourceRoot":"","sources":["../src/flight-parser.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReactFlightBinaryRowTag } from \"./flight-protocol.js\";\nimport type {\n FlightArrayBufferModel,\n FlightClientReference,\n FlightDataViewModel,\n FlightElementModel,\n FlightErrorModel,\n FlightModel,\n FlightResponse,\n FlightServerReference,\n FlightTypedArrayModel,\n FlightTypedArrayName,\n} from \"./flight-types.js\";\n\ninterface ReactFlightRow {\n id: number;\n tag?: string;\n payload: string;\n payloadBytes?: Uint8Array;\n}\n\nconst MAX_FLIGHT_DECODE_DEPTH = 256;\n\nclass FlightDecodeError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"FlightDecodeError\";\n }\n}\n\ninterface FlightDecodeContext {\n inProgressChunkIds: Set<number>;\n}\n\nfunction createFlightDecodeContext(): FlightDecodeContext {\n return {\n inProgressChunkIds: new Set(),\n };\n}\n\nfunction flightTooDeep(): never {\n throw new FlightDecodeError(\n `MR_FLIGHT_TOO_DEEP: nested deeper than ${MAX_FLIGHT_DECODE_DEPTH} levels`,\n );\n}\n\nfunction flightCycle(id: number): never {\n throw new FlightDecodeError(`MR_FLIGHT_CYCLE: cyclic chunk reference ${id}`);\n}\n\nexport function parseReactFlightPayload(\n payload: string | ArrayBuffer | Uint8Array,\n): FlightResponse {\n if (typeof payload !== \"string\") {\n return parseReactFlightBinaryRows(payload);\n }\n\n const trimmed = payload.trim();\n\n if (trimmed.startsWith(\"{\")) {\n return JSON.parse(trimmed) as FlightResponse;\n }\n\n return parseReactFlightRows(trimmed);\n}\n\nfunction parseReactFlightRows(rows: string): FlightResponse {\n const lines = rows.split(/\\r?\\n/).filter(Boolean);\n const metadataLine = lines.find((line) => line.startsWith(\"M0:\"));\n const rootLine = lines.find((line) => line.startsWith(\"J0:\"));\n\n if (metadataLine !== undefined && rootLine !== undefined) {\n const metadata = JSON.parse(metadataLine.slice(3)) as Omit<FlightResponse, \"root\">;\n\n return {\n version: metadata.version,\n clientReferences: metadata.clientReferences,\n serverReferences: metadata.serverReferences,\n root: JSON.parse(rootLine.slice(3)) as FlightModel,\n };\n }\n\n return parseReactFlightRowObjects(lines.map((line) => parseReactFlightRow(line)));\n}\n\nfunction parseReactFlightBinaryRows(payload: ArrayBuffer | Uint8Array): FlightResponse {\n const bytes = payload instanceof Uint8Array ? payload : new Uint8Array(payload);\n const decoder = new TextDecoder();\n const rows: ReactFlightRow[] = [];\n let index = 0;\n\n while (index < bytes.length) {\n index = skipReactFlightRowBreak(bytes, index);\n\n if (index >= bytes.length) {\n break;\n }\n\n const idStart = index;\n while (index < bytes.length && bytes[index] !== 58) {\n index += 1;\n }\n\n if (index >= bytes.length) {\n throw new Error(\"Invalid React Flight binary row.\");\n }\n\n const idText = decoder.decode(bytes.subarray(idStart, index));\n const id = idText === \"\" ? 0 : parseReactFlightId(idText);\n index += 1;\n\n if (index >= bytes.length) {\n throw new Error(\"Invalid React Flight binary row.\");\n }\n\n const tag = String.fromCharCode(bytes[index] ?? 0);\n\n if (isReactFlightBinaryRowTag(tag)) {\n index += 1;\n const lengthStart = index;\n\n while (index < bytes.length && bytes[index] !== 44) {\n index += 1;\n }\n\n if (index >= bytes.length) {\n throw new Error(\"Invalid React Flight binary row.\");\n }\n\n const byteLength = parseReactFlightId(decoder.decode(bytes.subarray(lengthStart, index)));\n index += 1;\n\n if (index + byteLength > bytes.length) {\n throw new Error(\"React Flight binary row ended before declared payload length.\");\n }\n\n rows.push({\n id,\n tag,\n payload: `${byteLength.toString(16)},`,\n payloadBytes: bytes.slice(index, index + byteLength),\n });\n index += byteLength;\n index = skipReactFlightRowBreak(bytes, index);\n continue;\n }\n\n const bodyStart = index;\n while (index < bytes.length && bytes[index] !== 10 && bytes[index] !== 13) {\n index += 1;\n }\n\n rows.push(parseReactFlightRow(`${idText}:${decoder.decode(bytes.subarray(bodyStart, index))}`));\n index = skipReactFlightRowBreak(bytes, index);\n }\n\n return parseReactFlightRowObjects(rows);\n}\n\nfunction parseReactFlightRowObjects(rows: ReactFlightRow[]): FlightResponse {\n const clientReferences: FlightClientReference[] = [];\n const serverReferences: FlightServerReference[] = [];\n const modelChunks = new Map<number, unknown>();\n const errorChunks = new Map<number, FlightErrorModel>();\n let root: FlightModel | undefined;\n\n for (const row of rows) {\n if (row.tag === \"I\") {\n clientReferences.push(parseReactFlightClientReference(row.id, row.payload));\n continue;\n }\n\n if (row.tag === \"F\") {\n serverReferences.push(\n parseReactFlightServerReference(row.id, row.payload, modelChunks, errorChunks),\n );\n continue;\n }\n\n if (row.tag === \"E\") {\n const error = parseReactFlightError(row.payload);\n errorChunks.set(row.id, error);\n\n if (row.id === 0) {\n root = error;\n }\n continue;\n }\n\n if (row.tag === \"T\") {\n modelChunks.set(row.id, parseReactFlightTextChunk(row.payload));\n continue;\n }\n\n if (isReactFlightBinaryRowTag(row.tag)) {\n modelChunks.set(row.id, parseReactFlightBinaryChunk(row.tag, row.payload, row.payloadBytes));\n continue;\n }\n\n if (isReactFlightMetadataTag(row.tag)) {\n continue;\n }\n\n if (row.tag === undefined && row.payload !== \"\") {\n modelChunks.set(row.id, JSON.parse(row.payload));\n }\n }\n\n if (root === undefined && modelChunks.has(0)) {\n root = decodeReactFlightModel(modelChunks.get(0), modelChunks, errorChunks);\n }\n\n if (root === undefined) {\n throw new Error(\"Invalid React Flight rows.\");\n }\n\n return {\n version: 1,\n root,\n clientReferences,\n serverReferences,\n };\n}\n\nfunction skipReactFlightRowBreak(bytes: Uint8Array, index: number): number {\n let next = index;\n\n while (next < bytes.length && (bytes[next] === 10 || bytes[next] === 13)) {\n next += 1;\n }\n\n return next;\n}\n\nfunction parseReactFlightRow(line: string): ReactFlightRow {\n const separator = line.indexOf(\":\");\n\n if (separator < 0) {\n throw new Error(\"Invalid React Flight row.\");\n }\n\n const id = separator === 0 ? 0 : parseReactFlightId(line.slice(0, separator));\n const body = line.slice(separator + 1);\n const first = body[0];\n const hasTag = first !== undefined && isReactFlightRowTag(first, body);\n\n if (first !== undefined && !hasTag && looksLikeUnsupportedReactFlightTag(first, body)) {\n throw new Error(`Unsupported React Flight row tag: ${first}`);\n }\n\n return {\n id,\n ...(hasTag ? { tag: first } : {}),\n payload: hasTag ? body.slice(1) : body,\n };\n}\n\nfunction looksLikeUnsupportedReactFlightTag(tag: string, body: string): boolean {\n return /^[A-Z]$/.test(tag) && (body[1] === \"{\" || body[1] === \"[\" || body[1] === '\"');\n}\n\nfunction parseReactFlightTextChunk(payload: string): string {\n const separator = payload.indexOf(\",\");\n\n if (separator < 0) {\n throw new Error(\"Invalid React Flight text row.\");\n }\n\n return payload.slice(separator + 1);\n}\n\nfunction parseReactFlightBinaryChunk(\n tag: ReactFlightBinaryRowTag,\n payload: string,\n payloadBytes?: Uint8Array,\n): FlightArrayBufferModel | FlightTypedArrayModel | FlightDataViewModel {\n if (payloadBytes !== undefined) {\n return createReactFlightBinaryModel(tag, payloadBytes);\n }\n\n const separator = payload.indexOf(\",\");\n\n if (separator < 0) {\n throw new Error(\"Invalid React Flight binary row.\");\n }\n\n const byteLength = parseReactFlightId(payload.slice(0, separator));\n const bytes = decodeBase64Bytes(payload.slice(separator + 1));\n\n if (bytes.length !== byteLength) {\n throw new Error(\"React Flight binary row length did not match declared payload length.\");\n }\n\n return createReactFlightBinaryModel(tag, bytes);\n}\n\nfunction isReactFlightMetadataTag(tag: string | undefined): boolean {\n return (\n tag === \"H\" ||\n tag === \"N\" ||\n tag === \"P\" ||\n tag === \"D\" ||\n tag === \"J\" ||\n tag === \"W\" ||\n tag === \"R\" ||\n tag === \"r\" ||\n tag === \"X\" ||\n tag === \"x\" ||\n tag === \"C\"\n );\n}\n\nfunction isReactFlightRowTag(tag: string, body: string): boolean {\n if (\n tag === \"I\" ||\n tag === \"F\" ||\n tag === \"E\" ||\n tag === \"T\" ||\n tag === \"H\" ||\n tag === \"N\" ||\n tag === \"P\" ||\n tag === \"D\" ||\n tag === \"J\" ||\n tag === \"W\" ||\n tag === \"R\" ||\n tag === \"r\" ||\n tag === \"X\" ||\n tag === \"x\" ||\n tag === \"C\"\n ) {\n return true;\n }\n\n return isReactFlightBinaryRowTag(tag) && /^[AOoUSsLlGgMmV][0-9a-f]+,/i.test(body);\n}\n\nfunction isReactFlightBinaryRowTag(tag: string | undefined): tag is ReactFlightBinaryRowTag {\n return (\n tag === \"A\" ||\n tag === \"O\" ||\n tag === \"o\" ||\n tag === \"U\" ||\n tag === \"S\" ||\n tag === \"s\" ||\n tag === \"L\" ||\n tag === \"l\" ||\n tag === \"G\" ||\n tag === \"g\" ||\n tag === \"M\" ||\n tag === \"m\" ||\n tag === \"V\"\n );\n}\n\nfunction createReactFlightBinaryModel(\n tag: ReactFlightBinaryRowTag,\n bytes: Uint8Array,\n): FlightArrayBufferModel | FlightTypedArrayModel | FlightDataViewModel {\n const byteValues = Array.from(bytes);\n\n if (tag === \"A\") {\n return {\n kind: \"array-buffer\",\n bytes: byteValues,\n };\n }\n\n if (tag === \"V\") {\n return {\n kind: \"data-view\",\n bytes: byteValues,\n };\n }\n\n return {\n kind: \"typed-array\",\n arrayType: getReactFlightTypedArrayName(tag),\n bytes: byteValues,\n };\n}\n\nfunction getReactFlightTypedArrayName(\n tag: Exclude<ReactFlightBinaryRowTag, \"A\" | \"V\">,\n): FlightTypedArrayName {\n switch (tag) {\n case \"O\":\n return \"Int8Array\";\n case \"o\":\n return \"Uint8Array\";\n case \"U\":\n return \"Uint8ClampedArray\";\n case \"S\":\n return \"Int16Array\";\n case \"s\":\n return \"Uint16Array\";\n case \"L\":\n return \"Int32Array\";\n case \"l\":\n return \"Uint32Array\";\n case \"G\":\n return \"Float32Array\";\n case \"g\":\n return \"Float64Array\";\n case \"M\":\n return \"BigInt64Array\";\n case \"m\":\n return \"BigUint64Array\";\n default:\n throw new Error(`Unsupported React Flight typed array row tag: ${tag}`);\n }\n}\n\nfunction decodeBase64Bytes(value: string): Uint8Array {\n const normalized = value.replaceAll(\"-\", \"+\").replaceAll(\"_\", \"/\");\n const padded = normalized.padEnd(Math.ceil(normalized.length / 4) * 4, \"=\");\n const binary = globalThis.atob(padded);\n const bytes = new Uint8Array(binary.length);\n\n for (let index = 0; index < binary.length; index += 1) {\n bytes[index] = binary.charCodeAt(index);\n }\n\n return bytes;\n}\n\nfunction parseReactFlightClientReference(id: number, payload: string): FlightClientReference {\n const value = JSON.parse(payload) as unknown;\n\n if (Array.isArray(value)) {\n return {\n id,\n moduleId: String(value[0]),\n chunks: Array.isArray(value[1]) ? value[1].map(String) : [],\n exportName: String(value[2] ?? \"default\"),\n };\n }\n\n const object = valueIsObject(value) ? value : {};\n\n return {\n id,\n moduleId: String(object.id ?? object.moduleId ?? \"\"),\n chunks: Array.isArray(object.chunks) ? object.chunks.map(String) : [],\n exportName: String(object.name ?? object.exportName ?? \"default\"),\n };\n}\n\nfunction parseReactFlightServerReference(\n id: number,\n payload: string,\n modelChunks: ReadonlyMap<number, unknown> = new Map(),\n errorChunks: ReadonlyMap<number, FlightErrorModel> = new Map(),\n): FlightServerReference {\n const value = JSON.parse(payload) as unknown;\n const object = valueIsObject(value) ? value : {};\n const actionId = String(object.id ?? \"\");\n const separator = actionId.lastIndexOf(\"#\");\n const bound = Array.isArray(object.bound)\n ? object.bound.map((entry) =>\n decodeReactFlightModel(entry, modelChunks, errorChunks, 0, createFlightDecodeContext()),\n )\n : undefined;\n\n return {\n id,\n moduleId: separator < 0 ? actionId : actionId.slice(0, separator),\n exportName:\n typeof object.name === \"string\"\n ? object.name\n : separator < 0\n ? \"default\"\n : actionId.slice(separator + 1),\n ...(bound === undefined ? {} : { bound }),\n };\n}\n\nfunction decodeReactFlightModel(\n value: unknown,\n modelChunks: ReadonlyMap<number, unknown> = new Map(),\n errorChunks: ReadonlyMap<number, FlightErrorModel> = new Map(),\n depth = 0,\n context: FlightDecodeContext = createFlightDecodeContext(),\n): FlightModel {\n if (depth > MAX_FLIGHT_DECODE_DEPTH) flightTooDeep();\n\n if (value === null || typeof value === \"number\" || typeof value === \"boolean\") {\n return value;\n }\n\n if (typeof value === \"string\") {\n return decodeReactFlightString(value, modelChunks, errorChunks, depth, context);\n }\n\n if (Array.isArray(value)) {\n if (value[0] === \"$\") {\n return {\n kind: \"element\",\n type: decodeReactFlightElementType(value[1]),\n key: typeof value[2] === \"string\" ? value[2] : null,\n props: decodeReactFlightProps(\n valueIsObject(value[3]) ? value[3] : {},\n modelChunks,\n errorChunks,\n depth + 1,\n context,\n ),\n };\n }\n\n return value.map((item) =>\n decodeReactFlightModel(item, modelChunks, errorChunks, depth + 1, context),\n );\n }\n\n if (isReactFlightBinaryModel(value)) {\n return value;\n }\n\n if (valueIsObject(value)) {\n return decodeReactFlightProps(value, modelChunks, errorChunks, depth + 1, context);\n }\n\n return { kind: \"undefined\" };\n}\n\nfunction decodeReactFlightString(\n value: string,\n modelChunks: ReadonlyMap<number, unknown>,\n errorChunks: ReadonlyMap<number, FlightErrorModel>,\n depth: number,\n context: FlightDecodeContext,\n): FlightModel {\n if (value === \"$undefined\" || value === \"$u\") {\n return { kind: \"undefined\" };\n }\n\n if (value.startsWith(\"$$\")) {\n return value.slice(1);\n }\n\n if (value === \"$I\") {\n return { kind: \"number\", value: \"Infinity\" };\n }\n\n if (value === \"$-Infinity\") {\n return { kind: \"number\", value: \"-Infinity\" };\n }\n\n if (value === \"$-0\") {\n return { kind: \"number\", value: \"-0\" };\n }\n\n if (value === \"$N\") {\n return { kind: \"number\", value: \"NaN\" };\n }\n\n if (value.startsWith(\"$D\")) {\n return { kind: \"date\", value: value.slice(2) };\n }\n\n if (value.startsWith(\"$n\")) {\n return { kind: \"bigint\", value: value.slice(2) };\n }\n\n if (/^\\$F[0-9a-f]+$/i.test(value)) {\n return {\n kind: \"server-reference\",\n id: parseReactFlightId(value.slice(2)),\n };\n }\n\n if (/^\\$L[0-9a-f]+$/i.test(value)) {\n return {\n kind: \"client-reference\",\n id: parseReactFlightId(value.slice(2)),\n };\n }\n\n if (/^\\$[AOoUSsLlGgMmV][0-9a-f]+$/.test(value)) {\n return decodeReactFlightChunk(value.slice(2), modelChunks, errorChunks, depth + 1, context);\n }\n\n if (value.startsWith(\"$S\")) {\n return { kind: \"symbol\", name: value.slice(2) };\n }\n\n if (/^\\$@[0-9a-f]*$/i.test(value)) {\n return {\n kind: \"promise\",\n id: value.length === 2 ? 0 : parseReactFlightId(value.slice(2)),\n };\n }\n\n if (/^\\$Q[0-9a-f]+$/i.test(value)) {\n const decoded = decodeReactFlightChunk(\n value.slice(2),\n modelChunks,\n errorChunks,\n depth + 1,\n context,\n );\n const entries = Array.isArray(decoded)\n ? decoded.map((entry): [FlightModel, FlightModel] =>\n Array.isArray(entry)\n ? [entry[0] ?? { kind: \"undefined\" }, entry[1] ?? { kind: \"undefined\" }]\n : [entry, { kind: \"undefined\" }],\n )\n : [];\n\n return {\n kind: \"map\",\n entries,\n };\n }\n\n if (/^\\$W[0-9a-f]+$/i.test(value)) {\n const decoded = decodeReactFlightChunk(\n value.slice(2),\n modelChunks,\n errorChunks,\n depth + 1,\n context,\n );\n\n return {\n kind: \"set\",\n values: Array.isArray(decoded) ? decoded : [],\n };\n }\n\n if (/^\\$K[0-9a-f]+$/i.test(value)) {\n const decoded = decodeReactFlightChunk(\n value.slice(2),\n modelChunks,\n errorChunks,\n depth + 1,\n context,\n );\n const entries = Array.isArray(decoded)\n ? decoded.flatMap((entry): [string, FlightModel][] =>\n Array.isArray(entry) && typeof entry[0] === \"string\"\n ? [[entry[0], entry[1] ?? { kind: \"undefined\" }]]\n : [],\n )\n : [];\n\n return {\n kind: \"form-data\",\n entries,\n };\n }\n\n if (/^\\$i[0-9a-f]+$/i.test(value)) {\n const decoded = decodeReactFlightChunk(\n value.slice(2),\n modelChunks,\n errorChunks,\n depth + 1,\n context,\n );\n\n return {\n kind: \"iterable\",\n values: Array.isArray(decoded) ? decoded : [],\n };\n }\n\n if (/^\\$Z[0-9a-f]+$/i.test(value)) {\n return (\n errorChunks.get(parseReactFlightId(value.slice(2))) ?? {\n kind: \"error\",\n name: \"Error\",\n message: \"Unknown React Flight error.\",\n }\n );\n }\n\n if (value === \"$Y\" || value.startsWith(\"$E\")) {\n return { kind: \"undefined\" };\n }\n\n if (/^\\$[0-9a-f]+$/i.test(value)) {\n return decodeReactFlightChunk(value.slice(1), modelChunks, errorChunks, depth + 1, context);\n }\n\n return value;\n}\n\nfunction decodeReactFlightChunk(\n id: string,\n modelChunks: ReadonlyMap<number, unknown>,\n errorChunks: ReadonlyMap<number, FlightErrorModel>,\n depth: number,\n context: FlightDecodeContext,\n): FlightModel {\n if (depth > MAX_FLIGHT_DECODE_DEPTH) flightTooDeep();\n const numericId = parseReactFlightId(id);\n const error = errorChunks.get(numericId);\n\n if (error !== undefined) {\n return error;\n }\n\n if (!modelChunks.has(numericId)) {\n return {\n kind: \"promise\",\n id: numericId,\n };\n }\n\n if (context.inProgressChunkIds.has(numericId)) {\n flightCycle(numericId);\n }\n\n context.inProgressChunkIds.add(numericId);\n try {\n return decodeReactFlightModel(\n modelChunks.get(numericId),\n modelChunks,\n errorChunks,\n depth,\n context,\n );\n } finally {\n context.inProgressChunkIds.delete(numericId);\n }\n}\n\nfunction decodeReactFlightElementType(value: unknown): FlightElementModel[\"type\"] {\n if (value === \"$Sreact.fragment\") {\n return { kind: \"fragment\" };\n }\n\n if (typeof value === \"string\" && /^\\$L[0-9a-f]+$/i.test(value)) {\n return {\n kind: \"client-reference\",\n id: parseReactFlightId(value.slice(2)),\n };\n }\n\n return typeof value === \"string\" ? value : String(value);\n}\n\nfunction decodeReactFlightProps(\n value: Record<string, unknown>,\n modelChunks: ReadonlyMap<number, unknown>,\n errorChunks: ReadonlyMap<number, FlightErrorModel>,\n depth = 0,\n context: FlightDecodeContext = createFlightDecodeContext(),\n): Record<string, FlightModel> {\n if (depth > MAX_FLIGHT_DECODE_DEPTH) flightTooDeep();\n\n return Object.fromEntries(\n Object.entries(value).map(([key, child]) => [\n key,\n decodeReactFlightModel(child, modelChunks, errorChunks, depth + 1, context),\n ]),\n );\n}\n\nfunction isReactFlightBinaryModel(\n value: unknown,\n): value is FlightArrayBufferModel | FlightTypedArrayModel | FlightDataViewModel {\n return (\n valueIsObject(value) &&\n (value.kind === \"array-buffer\" || value.kind === \"typed-array\" || value.kind === \"data-view\")\n );\n}\n\nfunction parseReactFlightError(payload: string): FlightErrorModel {\n const value = JSON.parse(payload) as unknown;\n const object = valueIsObject(value) ? value : {};\n const digest = typeof object.digest === \"string\" ? object.digest : undefined;\n\n return {\n kind: \"error\",\n name: typeof object.name === \"string\" ? object.name : \"Error\",\n message: typeof object.message === \"string\" ? object.message : \"React Flight error.\",\n ...(digest === undefined ? {} : { digest }),\n };\n}\n\nfunction valueIsObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction parseReactFlightId(value: string): number {\n return Number.parseInt(value, 16);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"flight-protocol.d.ts","sourceRoot":"","sources":["../src/flight-protocol.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB,4EAc3B,CAAC;AAEX,eAAO,MAAM,kBAAkB,sFAgBrB,CAAC;AAEX,eAAO,MAAM,sBAAsB,oIAoBzB,CAAC;AAEX,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhF,mFAAmF;AACnF,MAAM,WAAW,2BAA2B;IAC1C,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,kFAAkF;AAClF,wBAAgB,8BAA8B,IAAI,2BAA2B,CAM5E"}
1
+ {"version":3,"file":"flight-protocol.d.ts","sourceRoot":"","sources":["../src/flight-protocol.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB,YACnC,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,CACK,CAAC;AAEX,eAAO,MAAM,kBAAkB,YAC7B,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,CACK,CAAC;AAEX,eAAO,MAAM,sBAAsB,YACjC,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,YAAY,CACJ,CAAC;AAEX,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhF,mFAAmF;AACnF,MAAM,WAAW,2BAA2B;IAC1C,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,kFAAkF;AAClF,wBAAgB,8BAA8B,IAAI,2BAA2B,CAM5E"}
@@ -1 +1 @@
1
- {"version":3,"file":"flight.js","sourceRoot":"","sources":["../src/flight.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReactCompatNode } from \"./element.js\";\nimport { hydrateRoot, type HydrateRootOptions } from \"./render.js\";\nimport {\n getReactFlightProtocolCoverage,\n type ReactFlightProtocolCoverage,\n} from \"./flight-protocol.js\";\nimport { decodeFlightModel, type DecodeFlightOptions } from \"./flight-decoder.js\";\nimport { parseReactFlightPayload } from \"./flight-parser.js\";\nimport type {\n FlightArrayBufferModel,\n FlightBigIntModel,\n FlightClientReference,\n FlightClientReferenceModel,\n FlightDataViewModel,\n FlightDateModel,\n FlightElementModel,\n FlightErrorModel,\n FlightFormDataModel,\n FlightIterableModel,\n FlightMapModel,\n FlightModel,\n FlightNumberModel,\n FlightPromiseModel,\n FlightResponse,\n FlightServerReference,\n FlightServerReferenceModel,\n FlightSetModel,\n FlightSymbolModel,\n FlightTypedArrayModel,\n FlightTypedArrayName,\n} from \"./flight-types.js\";\n\nexport { getReactFlightProtocolCoverage };\nexport type {\n DecodeFlightOptions,\n FlightArrayBufferModel,\n FlightBigIntModel,\n FlightClientReference,\n FlightClientReferenceModel,\n FlightDataViewModel,\n FlightDateModel,\n FlightElementModel,\n FlightErrorModel,\n FlightFormDataModel,\n FlightIterableModel,\n FlightMapModel,\n FlightModel,\n FlightNumberModel,\n FlightPromiseModel,\n FlightResponse,\n FlightServerReference,\n FlightServerReferenceModel,\n FlightSetModel,\n FlightSymbolModel,\n FlightTypedArrayModel,\n FlightTypedArrayName,\n};\nexport type { ReactFlightProtocolCoverage };\n\n/** Options for creating a fetch-based server reference caller. */\nexport interface FetchServerReferenceCallerOptions {\n fetch?: typeof fetch;\n headers?: Record<string, string>;\n credentials?: RequestCredentials;\n csrfHeaderName?: string;\n csrfToken?: string | (() => string);\n nonceHeaderName?: string;\n nonce?: string | (() => string);\n}\n\n/** Options for decoding a Flight response and hydrating it into a DOM container. */\nexport interface HydrateFlightOptions extends DecodeFlightOptions {\n hydrate?: HydrateRootOptions;\n}\n\n/** Parses a serialized Flight payload into a Flight response object. */\nexport function parseFlightResponse(payload: string | ArrayBuffer | Uint8Array): FlightResponse {\n return parseReactFlightPayload(payload);\n}\n\n/** Decodes the root model from a parsed Flight response. */\nexport function decodeFlightResponse(\n response: FlightResponse,\n options: DecodeFlightOptions,\n): ReactCompatNode {\n return decodeFlightModel(response.root, response, options) as ReactCompatNode;\n}\n\n/** Reads and parses a Flight response script from a document or parent node. */\nexport function readFlightResponse(\n root: Document | ParentNode,\n id?: string,\n): FlightResponse {\n const selector =\n id === undefined\n ? \"script[data-mreact-flight]\"\n : `script[data-mreact-flight]#${cssEscape(id)}`;\n const script = root.querySelector(selector);\n\n if (script === null || script.textContent === null) {\n throw new Error(\"Flight response script was not found.\");\n }\n\n return parseFlightResponse(script.textContent);\n}\n\n/** Decodes a Flight response and hydrates the resulting tree into a container. */\nexport function hydrateFlightResponse(\n container: Element,\n response: FlightResponse,\n options: HydrateFlightOptions,\n): ReturnType<typeof import(\"./render.js\").hydrateRoot> {\n return hydrateRoot(container, decodeFlightResponse(response, options), options.hydrate);\n}\n\n/** Creates a server reference caller that POSTs encoded action invocations to an endpoint. */\nexport function createFetchServerReferenceCaller(\n endpoint: string,\n options: FetchServerReferenceCallerOptions = {},\n): NonNullable<DecodeFlightOptions[\"callServerReference\"]> {\n const fetchImpl = options.fetch ?? fetch;\n\n return async (reference, args) => {\n const response = await fetchImpl(endpoint, {\n method: \"POST\",\n credentials: options.credentials ?? \"same-origin\",\n headers: createServerReferenceHeaders(options),\n body: JSON.stringify({\n moduleId: reference.moduleId,\n exportName: reference.exportName,\n ...(reference.bound === undefined ? {} : { bound: reference.bound }),\n args,\n }),\n });\n const payload = (await response.json()) as { ok?: boolean; value?: unknown; error?: string };\n\n if (!response.ok || payload.ok !== true) {\n throw new Error(payload.error ?? \"Server action failed.\");\n }\n\n return payload.value;\n };\n}\n\nfunction createServerReferenceHeaders(\n options: FetchServerReferenceCallerOptions,\n): Record<string, string> {\n const csrfToken = readOptionalToken(options.csrfToken);\n const nonce = readOptionalToken(options.nonce);\n\n return {\n \"content-type\": \"application/json\",\n ...options.headers,\n ...(csrfToken === undefined\n ? {}\n : { [options.csrfHeaderName ?? \"x-mreact-csrf\"]: csrfToken }),\n ...(nonce === undefined\n ? {}\n : { [options.nonceHeaderName ?? \"x-mreact-action-nonce\"]: nonce }),\n };\n}\n\nfunction readOptionalToken(token: string | (() => string) | undefined): string | undefined {\n return typeof token === \"function\" ? token() : token;\n}\n\nfunction cssEscape(value: string): string {\n return globalThis.CSS?.escape?.(value) ?? value.replaceAll('\"', '\\\\\"');\n}\n"]}
1
+ {"version":3,"file":"flight.js","sourceRoot":"","sources":["../src/flight.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReactCompatNode } from \"./element.js\";\nimport { hydrateRoot, type HydrateRootOptions } from \"./render.js\";\nimport {\n getReactFlightProtocolCoverage,\n type ReactFlightProtocolCoverage,\n} from \"./flight-protocol.js\";\nimport { decodeFlightModel, type DecodeFlightOptions } from \"./flight-decoder.js\";\nimport { parseReactFlightPayload } from \"./flight-parser.js\";\nimport type {\n FlightArrayBufferModel,\n FlightBigIntModel,\n FlightClientReference,\n FlightClientReferenceModel,\n FlightDataViewModel,\n FlightDateModel,\n FlightElementModel,\n FlightErrorModel,\n FlightFormDataModel,\n FlightIterableModel,\n FlightMapModel,\n FlightModel,\n FlightNumberModel,\n FlightPromiseModel,\n FlightResponse,\n FlightServerReference,\n FlightServerReferenceModel,\n FlightSetModel,\n FlightSymbolModel,\n FlightTypedArrayModel,\n FlightTypedArrayName,\n} from \"./flight-types.js\";\n\nexport { getReactFlightProtocolCoverage };\nexport type {\n DecodeFlightOptions,\n FlightArrayBufferModel,\n FlightBigIntModel,\n FlightClientReference,\n FlightClientReferenceModel,\n FlightDataViewModel,\n FlightDateModel,\n FlightElementModel,\n FlightErrorModel,\n FlightFormDataModel,\n FlightIterableModel,\n FlightMapModel,\n FlightModel,\n FlightNumberModel,\n FlightPromiseModel,\n FlightResponse,\n FlightServerReference,\n FlightServerReferenceModel,\n FlightSetModel,\n FlightSymbolModel,\n FlightTypedArrayModel,\n FlightTypedArrayName,\n};\nexport type { ReactFlightProtocolCoverage };\n\n/** Options for creating a fetch-based server reference caller. */\nexport interface FetchServerReferenceCallerOptions {\n fetch?: typeof fetch;\n headers?: Record<string, string>;\n credentials?: RequestCredentials;\n csrfHeaderName?: string;\n csrfToken?: string | (() => string);\n nonceHeaderName?: string;\n nonce?: string | (() => string);\n}\n\n/** Options for decoding a Flight response and hydrating it into a DOM container. */\nexport interface HydrateFlightOptions extends DecodeFlightOptions {\n hydrate?: HydrateRootOptions;\n}\n\n/** Parses a serialized Flight payload into a Flight response object. */\nexport function parseFlightResponse(payload: string | ArrayBuffer | Uint8Array): FlightResponse {\n return parseReactFlightPayload(payload);\n}\n\n/** Decodes the root model from a parsed Flight response. */\nexport function decodeFlightResponse(\n response: FlightResponse,\n options: DecodeFlightOptions,\n): ReactCompatNode {\n return decodeFlightModel(response.root, response, options) as ReactCompatNode;\n}\n\n/** Reads and parses a Flight response script from a document or parent node. */\nexport function readFlightResponse(\n root: Document | ParentNode,\n id?: string,\n): FlightResponse {\n const selector =\n id === undefined\n ? \"script[data-mreact-flight]\"\n : `script[data-mreact-flight]#${cssEscape(id)}`;\n const script = root.querySelector(selector);\n\n if (script === null || script.textContent === null) {\n throw new Error(\"Flight response script was not found.\");\n }\n\n return parseFlightResponse(script.textContent);\n}\n\n/** Decodes a Flight response and hydrates the resulting tree into a container. */\nexport function hydrateFlightResponse(\n container: Element,\n response: FlightResponse,\n options: HydrateFlightOptions,\n): ReturnType<typeof import(\"./render.js\").hydrateRoot> {\n return hydrateRoot(container, decodeFlightResponse(response, options), options.hydrate);\n}\n\n/** Creates a server reference caller that POSTs encoded action invocations to an endpoint. */\nexport function createFetchServerReferenceCaller(\n endpoint: string,\n options: FetchServerReferenceCallerOptions = {},\n): NonNullable<DecodeFlightOptions[\"callServerReference\"]> {\n const fetchImpl = options.fetch ?? fetch;\n\n return async (reference, args) => {\n const response = await fetchImpl(endpoint, {\n method: \"POST\",\n credentials: options.credentials ?? \"same-origin\",\n headers: createServerReferenceHeaders(options),\n body: JSON.stringify({\n moduleId: reference.moduleId,\n exportName: reference.exportName,\n ...(reference.bound === undefined ? {} : { bound: reference.bound }),\n args,\n }),\n });\n const payload = (await response.json()) as { ok?: boolean; value?: unknown; error?: string };\n\n if (!response.ok || payload.ok !== true) {\n throw new Error(payload.error ?? \"Server action failed.\");\n }\n\n return payload.value;\n };\n}\n\nfunction createServerReferenceHeaders(\n options: FetchServerReferenceCallerOptions,\n): Record<string, string> {\n const csrfToken = readOptionalToken(options.csrfToken);\n const nonce = readOptionalToken(options.nonce);\n\n return {\n \"content-type\": \"application/json\",\n ...options.headers,\n ...(csrfToken === undefined\n ? {}\n : { [options.csrfHeaderName ?? \"x-mreact-csrf\"]: csrfToken }),\n ...(nonce === undefined\n ? {}\n : { [options.nonceHeaderName ?? \"x-mreact-action-nonce\"]: nonce }),\n };\n}\n\nfunction readOptionalToken(token: string | (() => string) | undefined): string | undefined {\n return typeof token === \"function\" ? token() : token;\n}\n\nfunction cssEscape(value: string): string {\n return globalThis.CSS?.escape?.(value) ?? value.replaceAll('\"', '\\\\\"');\n}\n"]}