eclipsa 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{action-DstcBFEm.mjs → action-CgM3EJUS.mjs} +26 -2
- package/{action-DstcBFEm.mjs.map → action-CgM3EJUS.mjs.map} +1 -1
- package/{client-D1zMr8hs.mjs → client-COjBNTyt.mjs} +4 -4
- package/{client-D1zMr8hs.mjs.map → client-COjBNTyt.mjs.map} +1 -1
- package/{component-DjUmyVqL.d.mts → component-D_nEtZ69.d.mts} +2 -2
- package/core/client/mod.d.mts +2 -2
- package/core/client/mod.mjs +4 -4
- package/core/dev-client/mod.d.mts +1 -1
- package/core/dev-client/mod.mjs +4 -4
- package/core/internal.d.mts +1 -1
- package/core/internal.mjs +1 -1
- package/core/prod-client/mod.d.mts +3 -3
- package/core/prod-client/mod.mjs +4 -4
- package/{internal-Dmvt_AGE.d.mts → internal-Csbm0Qnv.d.mts} +3 -3
- package/jsx/jsx-dev-runtime.d.mts +1 -1
- package/jsx/jsx-runtime.d.mts +1 -1
- package/jsx/mod.d.mts +1 -1
- package/jsx/mod.mjs +1 -1
- package/{mod-CaLAdQcH.d.mts → mod-DLb8ple9.d.mts} +4 -4
- package/mod.d.mts +4 -4
- package/mod.mjs +6 -6
- package/mod.mjs.map +1 -1
- package/package.json +2 -2
- package/{resume-hmr-BRDojQNp.mjs → resume-hmr-qTpLc5o-.mjs} +1 -1
- package/{resume-hmr-BRDojQNp.mjs.map → resume-hmr-qTpLc5o-.mjs.map} +1 -1
- package/{signal-CosyYdtA.d.mts → signal-B7AfIKrr.d.mts} +1 -1
- package/{signal-D1WmFjmJ.mjs → signal-CJtquEfo.mjs} +2 -2
- package/{signal-D1WmFjmJ.mjs.map → signal-CJtquEfo.mjs.map} +1 -1
- package/{snapshot-BG0kq9wt.mjs → snapshot-BdY3jcVk.mjs} +1 -1
- package/{snapshot-BG0kq9wt.mjs.map → snapshot-BdY3jcVk.mjs.map} +1 -1
- package/{types-WOJV0N2h.d.mts → types-BCEY9lGp.d.mts} +1 -1
- package/{types-DDeNM8UH.d.mts → types-DKpefD_u.d.mts} +1 -1
- package/vite/mod.mjs +29 -147180
- package/vite/mod.mjs.map +1 -1
- package/web-utils/mod.d.mts +1 -1
- package/web-utils/mod.mjs +2 -2
- package/loader-DDVVUXBr.mjs +0 -2
- /package/{jsx-runtime-QIK6ADiK.d.mts → jsx-runtime-BFDPoxFn.d.mts} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { $ as restoreSignalRefs, C as createDetachedClientInsertOwner, G as rememberInsertMarkerRange, J as renderClientInsertable, K as rememberManagedAttributesForNode, N as getRuntimeContainer, Ot as getComponentMeta, P as getRuntimeSignalId, R as preserveReusableContentInRoots, Y as renderClientInsertableForOwner, _ as assignRuntimeRef,
|
|
1
|
+
import { $ as restoreSignalRefs, C as createDetachedClientInsertOwner, G as rememberInsertMarkerRange, J as renderClientInsertable, K as rememberManagedAttributesForNode, N as getRuntimeContainer, Ot as getComponentMeta, P as getRuntimeSignalId, R as preserveReusableContentInRoots, Y as renderClientInsertableForOwner, _ as assignRuntimeRef, at as tryPatchElementShellInPlace, b as bindRuntimeEvent, et as shouldReconnectDetachedInsertMarkers, nt as syncRuntimeRefMarker, ot as tryPatchNodeSequenceInPlace, q as rememberManagedAttributesForNodes, tt as syncManagedAttributeSnapshot, vn as isSuspenseType, x as captureClientInsertOwner } from "./action-CgM3EJUS.mjs";
|
|
2
2
|
import { i as jsxDEV } from "./jsx-dev-runtime-CY60yQJY.mjs";
|
|
3
|
-
import { t as effect$1 } from "./signal-
|
|
4
|
-
import { r as withSignalSnapshot } from "./snapshot-
|
|
3
|
+
import { t as effect$1 } from "./signal-CJtquEfo.mjs";
|
|
4
|
+
import { r as withSignalSnapshot } from "./snapshot-BdY3jcVk.mjs";
|
|
5
5
|
//#region core/client/dom.ts
|
|
6
6
|
const INSERT_MARKER_PREFIX = "ec:i:";
|
|
7
7
|
const ensureInsertMarkerKey = (marker, runtimeContainer) => {
|
|
@@ -304,4 +304,4 @@ const effect = (fn) => {
|
|
|
304
304
|
//#endregion
|
|
305
305
|
export { hydrate as a, createTemplate as i, attr as n, insert as o, createComponent as r, effect as t };
|
|
306
306
|
|
|
307
|
-
//# sourceMappingURL=client-
|
|
307
|
+
//# sourceMappingURL=client-COjBNTyt.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-D1zMr8hs.mjs","names":[],"sources":["../core/client/dom.ts","../core/reactive/core.ts"],"sourcesContent":["import { jsxDEV } from '../../jsx/jsx-dev-runtime.ts'\nimport type { Component } from '../component.ts'\nimport { getComponentMeta } from '../internal.ts'\nimport {\n assignRuntimeRef,\n bindRuntimeEvent,\n captureClientInsertOwner,\n createDetachedClientInsertOwner,\n getRuntimeSignalId,\n getRuntimeContainer,\n preserveReusableContentInRoots,\n rememberManagedAttributesForNode,\n rememberManagedAttributesForNodes,\n rememberInsertMarkerRange,\n renderClientInsertable,\n renderClientInsertableForOwner,\n restoreSignalRefs,\n syncManagedAttributeSnapshot,\n syncRuntimeRefMarker,\n shouldReconnectDetachedInsertMarkers,\n tryPatchElementShellInPlace,\n tryPatchNodeSequenceInPlace,\n} from '../runtime.ts'\nimport { effect } from '../signal.ts'\nimport { isSuspenseType } from '../suspense.ts'\nimport { withSignalSnapshot } from '../snapshot.ts'\nimport type { ClientElementLike, Insertable } from './types.ts'\n\nconst INSERT_MARKER_PREFIX = 'ec:i:'\n\nconst ensureInsertMarkerKey = (\n marker: Node | undefined,\n runtimeContainer: ReturnType<typeof getRuntimeContainer>,\n) => {\n if (!(marker instanceof Comment) || !runtimeContainer) {\n return null\n }\n\n if (marker.data.startsWith(INSERT_MARKER_PREFIX)) {\n return marker.data\n }\n\n const key = `${INSERT_MARKER_PREFIX}${runtimeContainer.nextElementId++}`\n marker.data = key\n return key\n}\n\nconst findLiveInsertMarker = (doc: Document | undefined, markerKey: string | null) => {\n if (!doc?.body || !markerKey || typeof doc.createTreeWalker !== 'function') {\n return null\n }\n\n const walker = doc.createTreeWalker(doc.body, NodeFilter.SHOW_COMMENT)\n let next = walker.nextNode()\n while (next) {\n if (next instanceof Comment && next.data === markerKey) {\n return next\n }\n next = walker.nextNode()\n }\n return null\n}\n\nconst isConnectedNode = (node: Node | null | undefined) =>\n !!node &&\n (!('isConnected' in node) ||\n (\n node as Node & {\n isConnected?: boolean\n }\n ).isConnected !== false)\n\nconst isUsableInsertParent = (\n candidate: Node | null | undefined,\n stableParents: Array<Node | null | undefined>,\n) => !!candidate && (isConnectedNode(candidate) || stableParents.includes(candidate))\n\nconst removeNodeFromParent = (node: Node, parent: Node) => {\n const removable = node as Node & {\n remove?: () => void\n }\n if (typeof removable.remove === 'function') {\n removable.remove()\n return\n }\n\n const parentWithRemoveChild = parent as Node & {\n removeChild?: (child: Node) => Node\n }\n if (typeof parentWithRemoveChild.removeChild === 'function') {\n parentWithRemoveChild.removeChild(node)\n }\n}\n\nconst hasUsableInsertParent = (\n node: Node | null | undefined,\n stableParents: Array<Node | null | undefined>,\n) => isUsableInsertParent(node?.parentNode, stableParents)\n\nconst collectNodesBeforeMarker = (marker: Node | null | undefined, count: number) => {\n if (!marker?.parentNode || count === 0) {\n return [] as Node[]\n }\n\n const nodes: Node[] = []\n let cursor = marker.previousSibling\n while (cursor && nodes.length < count) {\n nodes.unshift(cursor)\n cursor = cursor.previousSibling\n }\n\n return nodes.length === count ? nodes : []\n}\n\nconst COMPONENT_BOUNDARY_START_REGEX = /^ec:c:(.+):start$/\nconst COMPONENT_BOUNDARY_END_REGEX = /^ec:c:(.+):end$/\n\nconst getBoundaryMarker = (node: Node | null | undefined) => {\n if (!(node instanceof Comment)) {\n return null\n }\n\n const start = node.data.match(COMPONENT_BOUNDARY_START_REGEX)\n if (start?.[1]) {\n return {\n id: start[1],\n kind: 'start' as const,\n }\n }\n\n const end = node.data.match(COMPONENT_BOUNDARY_END_REGEX)\n if (end?.[1]) {\n return {\n id: end[1],\n kind: 'end' as const,\n }\n }\n\n return null\n}\n\nconst canReconnectOwnerRange = (currentNodes: Node[], newNodes: Node[]) => {\n if (currentNodes.length === 0 || currentNodes.length !== newNodes.length) {\n return false\n }\n\n let sawBoundary = false\n\n for (let index = 0; index < newNodes.length; index += 1) {\n const currentNode = currentNodes[index]!\n const newNode = newNodes[index]!\n if (currentNode.nodeType !== newNode.nodeType) {\n return false\n }\n\n const currentBoundary = getBoundaryMarker(currentNode)\n const newBoundary = getBoundaryMarker(newNode)\n if (currentBoundary || newBoundary) {\n if (\n !currentBoundary ||\n !newBoundary ||\n currentBoundary.kind !== newBoundary.kind ||\n currentBoundary.id !== newBoundary.id\n ) {\n return false\n }\n sawBoundary = true\n continue\n }\n\n if (currentNode instanceof Element && newNode instanceof Element) {\n if (currentNode.tagName !== newNode.tagName) {\n return false\n }\n continue\n }\n\n if (currentNode.nodeType === Node.TEXT_NODE && newNode.nodeType === Node.TEXT_NODE) {\n continue\n }\n\n return false\n }\n\n return sawBoundary\n}\n\nexport const createTemplate = (html: string): (() => Node) => {\n let template: HTMLTemplateElement | null = null\n\n return () => {\n if (!template) {\n template = document.createElement('template')\n template.innerHTML = html\n }\n const node = (template.cloneNode(true) as HTMLTemplateElement).content.firstChild as Node\n rememberManagedAttributesForNode(node)\n return node\n }\n}\n\nexport const insert = (value: Insertable, parent: Node, marker?: Node) => {\n let lastFirstNode = marker\n let lastNodeLength = 0\n const runtimeContainer = getRuntimeContainer()\n if (!runtimeContainer) {\n throw new Error('Client insertions require an active runtime container.')\n }\n const ownerSiteKey =\n marker instanceof Comment && !marker.data.startsWith(INSERT_MARKER_PREFIX) ? marker.data : null\n const owner =\n captureClientInsertOwner(runtimeContainer, ownerSiteKey) ??\n createDetachedClientInsertOwner(runtimeContainer)\n const markerKey = ensureInsertMarkerKey(marker, runtimeContainer)\n const collectCurrentNodes = (\n liveMarker: Node | undefined,\n stableParents: Array<Node | null | undefined>,\n ) => {\n if (\n !lastFirstNode ||\n lastNodeLength === 0 ||\n !hasUsableInsertParent(lastFirstNode, stableParents)\n ) {\n const liveNodes = collectNodesBeforeMarker(liveMarker, lastNodeLength)\n return liveNodes.every((node) => hasUsableInsertParent(node, stableParents)) ? liveNodes : []\n }\n const nodes = [lastFirstNode]\n let cursor = lastFirstNode\n while (nodes.length < lastNodeLength) {\n const next = cursor.nextSibling\n if (!next || !hasUsableInsertParent(next, stableParents)) {\n return [] as Node[]\n }\n cursor = next\n nodes.push(cursor)\n }\n return nodes\n }\n\n effect(() => {\n const shouldReconnect = shouldReconnectDetachedInsertMarkers(runtimeContainer)\n const liveMarker = !(marker instanceof Comment)\n ? marker\n : isConnectedNode(marker.parentNode)\n ? marker\n : shouldReconnect\n ? (findLiveInsertMarker(runtimeContainer.doc, markerKey) ?? marker)\n : marker\n const stableParents = liveMarker?.parentNode\n ? [liveMarker.parentNode, parent === liveMarker.parentNode ? parent : null]\n : [parent, marker?.parentNode]\n const liveLastParent = isUsableInsertParent(lastFirstNode?.parentNode, stableParents)\n ? lastFirstNode?.parentNode\n : null\n const liveMarkerParent = isUsableInsertParent(liveMarker?.parentNode, stableParents)\n ? liveMarker?.parentNode\n : null\n const resolvedParent = (liveLastParent ?? liveMarkerParent ?? parent) as ParentNode | null\n const targetParent = resolvedParent ?? (parent as ParentNode)\n const newNodes = owner\n ? renderClientInsertableForOwner(value, runtimeContainer, owner)\n : renderClientInsertable(value, runtimeContainer)\n const seededCurrentNodes =\n lastNodeLength === 0 && liveMarker instanceof Comment\n ? collectNodesBeforeMarker(liveMarker, newNodes.length)\n : []\n const currentNodes =\n seededCurrentNodes.length !== 0 &&\n seededCurrentNodes.every((node) => hasUsableInsertParent(node, stableParents)) &&\n canReconnectOwnerRange(seededCurrentNodes, newNodes)\n ? seededCurrentNodes\n : collectCurrentNodes(liveMarker, stableParents)\n\n if (currentNodes.length !== 0 && lastNodeLength === 0) {\n lastFirstNode = currentNodes[0]\n lastNodeLength = currentNodes.length\n }\n\n if (\n currentNodes.length === lastNodeLength &&\n currentNodes.length !== 0 &&\n newNodes.length !== 0 &&\n (tryPatchNodeSequenceInPlace(currentNodes, newNodes) ||\n tryPatchSingleElementShellInPlace(currentNodes, newNodes))\n ) {\n restoreSignalRefs(runtimeContainer, targetParent)\n rememberInsertMarkerRange(liveMarker, currentNodes)\n lastFirstNode = currentNodes[0]\n lastNodeLength = currentNodes.length\n return\n }\n\n let replacementNodes = newNodes\n if (currentNodes.length !== 0 && newNodes.length !== 0) {\n const doc = runtimeContainer.doc\n if (!doc) {\n throw new Error('Client insertions require an active runtime document.')\n }\n const stagingParent = doc.createElement('div')\n for (const node of newNodes) {\n stagingParent.appendChild(node)\n }\n preserveReusableContentInRoots(currentNodes, Array.from(stagingParent.childNodes))\n replacementNodes = Array.from(stagingParent.childNodes)\n }\n\n const insertReference = liveMarker?.parentNode === targetParent ? liveMarker : null\n for (const node of currentNodes) {\n if (node.parentNode === targetParent) {\n removeNodeFromParent(node, targetParent)\n }\n }\n for (const node of replacementNodes) {\n targetParent.insertBefore(node, insertReference)\n }\n\n rememberManagedAttributesForNodes(replacementNodes)\n rememberInsertMarkerRange(liveMarker, replacementNodes)\n\n lastFirstNode = replacementNodes[0] ?? liveMarker\n lastNodeLength = replacementNodes.length\n })\n}\n\nconst EVENT_ATTR_REGEX = /^on[A-Z].+$/\nconst DANGEROUSLY_SET_INNER_HTML_PROP = 'dangerouslySetInnerHTML'\nconst BIND_VALUE_PROP = 'bind:value'\nconst BIND_CHECKED_PROP = 'bind:checked'\nconst BIND_VALUE_ATTR = 'data-e-bind-value'\nconst BIND_CHECKED_ATTR = 'data-e-bind-checked'\nconst shouldUseAttributeAssignment = (elem: Element, name: string, isSVG: boolean) =>\n isSVG || name.startsWith('data-') || name.startsWith('aria-') || !(name in elem)\n\ntype BindableSignal<T> = {\n value: T\n}\n\nconst isBindableSignal = <T>(value: unknown): value is BindableSignal<T> =>\n !!value && (typeof value === 'object' || typeof value === 'function') && 'value' in value\n\nconst readValueBinding = (elem: Element, currentValue: unknown) => {\n if (\n elem instanceof HTMLInputElement &&\n typeof currentValue === 'number' &&\n (elem.type === 'number' || elem.type === 'range') &&\n !Number.isNaN(elem.valueAsNumber)\n ) {\n return elem.valueAsNumber\n }\n\n return (elem as HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement).value\n}\n\nconst tryPatchSingleElementShellInPlace = (currentNodes: Node[], nextNodes: Node[]) => {\n if (currentNodes.length !== 1 || nextNodes.length !== 1) {\n return false\n }\n\n const [current] = currentNodes\n const [next] = nextNodes\n if (\n !(current instanceof Element) ||\n !(next instanceof Element) ||\n current.tagName !== next.tagName\n ) {\n return false\n }\n return tryPatchElementShellInPlace(current, next)\n}\n\nexport const attr = (elem: Element, name: string, value: () => unknown) => {\n const isSVG = elem.namespaceURI === 'http://www.w3.org/2000/svg'\n\n if (name === BIND_VALUE_PROP) {\n const readBinding = () => {\n const binding = value()\n const signalId = getRuntimeSignalId(binding)\n if (signalId) {\n elem.setAttribute(BIND_VALUE_ATTR, signalId)\n } else {\n elem.removeAttribute(BIND_VALUE_ATTR)\n }\n syncManagedAttributeSnapshot(elem, BIND_VALUE_ATTR)\n return binding\n }\n\n const syncSignalFromElement = () => {\n const binding = readBinding()\n if (!isBindableSignal(binding)) {\n return\n }\n binding.value = readValueBinding(elem, binding.value) as never\n }\n\n elem.addEventListener('input', syncSignalFromElement)\n elem.addEventListener('change', syncSignalFromElement)\n\n effect(() => {\n const binding = readBinding()\n if (!isBindableSignal(binding)) {\n return\n }\n ;(elem as HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement).value = String(\n binding.value ?? '',\n )\n })\n return\n }\n\n if (name === BIND_CHECKED_PROP) {\n if (!(elem instanceof HTMLInputElement)) {\n return\n }\n\n const readBinding = () => {\n const binding = value()\n const signalId = getRuntimeSignalId(binding)\n if (signalId) {\n elem.setAttribute(BIND_CHECKED_ATTR, signalId)\n } else {\n elem.removeAttribute(BIND_CHECKED_ATTR)\n }\n syncManagedAttributeSnapshot(elem, BIND_CHECKED_ATTR)\n return binding\n }\n\n const syncSignalFromElement = () => {\n const binding = readBinding()\n if (!isBindableSignal(binding)) {\n return\n }\n binding.value = elem.checked as never\n }\n\n elem.addEventListener('input', syncSignalFromElement)\n elem.addEventListener('change', syncSignalFromElement)\n\n effect(() => {\n const binding = readBinding()\n if (!isBindableSignal(binding)) {\n return\n }\n elem.checked = Boolean(binding.value)\n })\n return\n }\n\n if (EVENT_ATTR_REGEX.test(name)) {\n const eventName = name[2].toLowerCase() + name.slice(3)\n const resolved = value()\n if (bindRuntimeEvent(elem, eventName, resolved)) {\n return\n }\n if (typeof resolved !== 'function') {\n throw new Error('Resumable event bindings require an active runtime container.')\n }\n elem.addEventListener(eventName, resolved as () => void)\n return\n }\n\n if (name === 'style') {\n effect(() => {\n const resolved = value()\n const styleValue =\n resolved && typeof resolved === 'object'\n ? Object.entries(resolved as Record<string, string>)\n .map(([k, v]) => `${k}: ${v}`)\n .join('; ')\n : String(resolved ?? '')\n elem.setAttribute('style', styleValue)\n syncManagedAttributeSnapshot(elem, 'style')\n })\n return\n }\n\n if (name === 'class') {\n effect(() => {\n if (isSVG) {\n elem.setAttribute('class', String(value()))\n syncManagedAttributeSnapshot(elem, 'class')\n return\n }\n ;(elem as Element & { className: string }).className = String(value())\n syncManagedAttributeSnapshot(elem, 'class')\n })\n return\n }\n\n if (name === 'ref') {\n const resolved = value()\n syncRuntimeRefMarker(elem, resolved)\n assignRuntimeRef(resolved, elem, getRuntimeContainer())\n return\n }\n\n if (name === DANGEROUSLY_SET_INNER_HTML_PROP) {\n effect(() => {\n const html = value()\n ;(elem as Element & { innerHTML: string }).innerHTML =\n html === false || html === undefined || html === null ? '' : String(html)\n })\n return\n }\n\n effect(() => {\n if (shouldUseAttributeAssignment(elem, name, isSVG)) {\n elem.setAttribute(name, String(value()))\n syncManagedAttributeSnapshot(elem, name)\n return\n }\n // @ts-expect-error DOM property assignment uses dynamic keys.\n elem[name] = String(value())\n syncManagedAttributeSnapshot(elem, name)\n })\n}\n\nexport const hydrate = (\n Component: Component,\n target: HTMLElement,\n options?: {\n snapshot?: unknown[]\n },\n) => {\n const elem = withSignalSnapshot(options?.snapshot ?? null, () => Component({}))\n .result as unknown as ClientElementLike\n\n while (target.childNodes.length > 0) {\n target.lastChild?.remove()\n }\n\n for (const entry of Array.isArray(elem) ? elem : [elem]) {\n insert(() => entry, target)\n }\n}\n\nexport const createComponent = (Component: Component, props: unknown) => {\n if (isSuspenseType(Component)) {\n return () => jsxDEV(Component, props as Record<string, unknown>, null, false, {})\n }\n if (!getComponentMeta(Component)) {\n const render = Component as (props: unknown) => unknown\n return () => render(props) as ClientElementLike\n }\n return () => jsxDEV(Component, props as Record<string, unknown>, null, false, {})\n}\n","export interface Signal<T> {\n get(): T\n set(newValue: T): T\n effects: Set<Effect>\n}\n\ninterface Effect {\n fn: () => void\n signals: Set<Signal<unknown>>\n}\nlet currentEffect: Effect | null = null\n\nconst isPrimitiveSignalValue = (value: unknown) =>\n value === null || (typeof value !== 'object' && typeof value !== 'function')\n\nconst didSignalValueChange = (previous: unknown, next: unknown) => {\n if (isPrimitiveSignalValue(previous) && isPrimitiveSignalValue(next)) {\n return !Object.is(previous, next)\n }\n\n return previous !== next\n}\n\nexport const signal = <T>(init: T): Signal<T> => {\n let value = init\n const signal: Signal<T> = {\n get() {\n if (currentEffect) {\n this.effects.add(currentEffect)\n }\n return value\n },\n set(newValue) {\n if (!didSignalValueChange(value, newValue)) {\n return value\n }\n value = newValue\n for (const effect of this.effects) {\n effect.fn()\n }\n return value\n },\n effects: new Set(),\n }\n return signal\n}\n\nconst registry = new FinalizationRegistry<Effect>((effect) => {\n for (const signal of effect.signals) {\n signal.effects.delete(effect)\n }\n})\n\nexport const effect = (fn: () => void) => {\n const newEffect: Effect = {\n fn() {\n fn()\n },\n signals: new Set(),\n }\n\n currentEffect = newEffect\n newEffect.fn()\n currentEffect = null\n\n registry.register(fn, newEffect)\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client-COjBNTyt.mjs","names":[],"sources":["../core/client/dom.ts","../core/reactive/core.ts"],"sourcesContent":["import { jsxDEV } from '../../jsx/jsx-dev-runtime.ts'\nimport type { Component } from '../component.ts'\nimport { getComponentMeta } from '../internal.ts'\nimport {\n assignRuntimeRef,\n bindRuntimeEvent,\n captureClientInsertOwner,\n createDetachedClientInsertOwner,\n getRuntimeSignalId,\n getRuntimeContainer,\n preserveReusableContentInRoots,\n rememberManagedAttributesForNode,\n rememberManagedAttributesForNodes,\n rememberInsertMarkerRange,\n renderClientInsertable,\n renderClientInsertableForOwner,\n restoreSignalRefs,\n syncManagedAttributeSnapshot,\n syncRuntimeRefMarker,\n shouldReconnectDetachedInsertMarkers,\n tryPatchElementShellInPlace,\n tryPatchNodeSequenceInPlace,\n} from '../runtime.ts'\nimport { effect } from '../signal.ts'\nimport { isSuspenseType } from '../suspense.ts'\nimport { withSignalSnapshot } from '../snapshot.ts'\nimport type { ClientElementLike, Insertable } from './types.ts'\n\nconst INSERT_MARKER_PREFIX = 'ec:i:'\n\nconst ensureInsertMarkerKey = (\n marker: Node | undefined,\n runtimeContainer: ReturnType<typeof getRuntimeContainer>,\n) => {\n if (!(marker instanceof Comment) || !runtimeContainer) {\n return null\n }\n\n if (marker.data.startsWith(INSERT_MARKER_PREFIX)) {\n return marker.data\n }\n\n const key = `${INSERT_MARKER_PREFIX}${runtimeContainer.nextElementId++}`\n marker.data = key\n return key\n}\n\nconst findLiveInsertMarker = (doc: Document | undefined, markerKey: string | null) => {\n if (!doc?.body || !markerKey || typeof doc.createTreeWalker !== 'function') {\n return null\n }\n\n const walker = doc.createTreeWalker(doc.body, NodeFilter.SHOW_COMMENT)\n let next = walker.nextNode()\n while (next) {\n if (next instanceof Comment && next.data === markerKey) {\n return next\n }\n next = walker.nextNode()\n }\n return null\n}\n\nconst isConnectedNode = (node: Node | null | undefined) =>\n !!node &&\n (!('isConnected' in node) ||\n (\n node as Node & {\n isConnected?: boolean\n }\n ).isConnected !== false)\n\nconst isUsableInsertParent = (\n candidate: Node | null | undefined,\n stableParents: Array<Node | null | undefined>,\n) => !!candidate && (isConnectedNode(candidate) || stableParents.includes(candidate))\n\nconst removeNodeFromParent = (node: Node, parent: Node) => {\n const removable = node as Node & {\n remove?: () => void\n }\n if (typeof removable.remove === 'function') {\n removable.remove()\n return\n }\n\n const parentWithRemoveChild = parent as Node & {\n removeChild?: (child: Node) => Node\n }\n if (typeof parentWithRemoveChild.removeChild === 'function') {\n parentWithRemoveChild.removeChild(node)\n }\n}\n\nconst hasUsableInsertParent = (\n node: Node | null | undefined,\n stableParents: Array<Node | null | undefined>,\n) => isUsableInsertParent(node?.parentNode, stableParents)\n\nconst collectNodesBeforeMarker = (marker: Node | null | undefined, count: number) => {\n if (!marker?.parentNode || count === 0) {\n return [] as Node[]\n }\n\n const nodes: Node[] = []\n let cursor = marker.previousSibling\n while (cursor && nodes.length < count) {\n nodes.unshift(cursor)\n cursor = cursor.previousSibling\n }\n\n return nodes.length === count ? nodes : []\n}\n\nconst COMPONENT_BOUNDARY_START_REGEX = /^ec:c:(.+):start$/\nconst COMPONENT_BOUNDARY_END_REGEX = /^ec:c:(.+):end$/\n\nconst getBoundaryMarker = (node: Node | null | undefined) => {\n if (!(node instanceof Comment)) {\n return null\n }\n\n const start = node.data.match(COMPONENT_BOUNDARY_START_REGEX)\n if (start?.[1]) {\n return {\n id: start[1],\n kind: 'start' as const,\n }\n }\n\n const end = node.data.match(COMPONENT_BOUNDARY_END_REGEX)\n if (end?.[1]) {\n return {\n id: end[1],\n kind: 'end' as const,\n }\n }\n\n return null\n}\n\nconst canReconnectOwnerRange = (currentNodes: Node[], newNodes: Node[]) => {\n if (currentNodes.length === 0 || currentNodes.length !== newNodes.length) {\n return false\n }\n\n let sawBoundary = false\n\n for (let index = 0; index < newNodes.length; index += 1) {\n const currentNode = currentNodes[index]!\n const newNode = newNodes[index]!\n if (currentNode.nodeType !== newNode.nodeType) {\n return false\n }\n\n const currentBoundary = getBoundaryMarker(currentNode)\n const newBoundary = getBoundaryMarker(newNode)\n if (currentBoundary || newBoundary) {\n if (\n !currentBoundary ||\n !newBoundary ||\n currentBoundary.kind !== newBoundary.kind ||\n currentBoundary.id !== newBoundary.id\n ) {\n return false\n }\n sawBoundary = true\n continue\n }\n\n if (currentNode instanceof Element && newNode instanceof Element) {\n if (currentNode.tagName !== newNode.tagName) {\n return false\n }\n continue\n }\n\n if (currentNode.nodeType === Node.TEXT_NODE && newNode.nodeType === Node.TEXT_NODE) {\n continue\n }\n\n return false\n }\n\n return sawBoundary\n}\n\nexport const createTemplate = (html: string): (() => Node) => {\n let template: HTMLTemplateElement | null = null\n\n return () => {\n if (!template) {\n template = document.createElement('template')\n template.innerHTML = html\n }\n const node = (template.cloneNode(true) as HTMLTemplateElement).content.firstChild as Node\n rememberManagedAttributesForNode(node)\n return node\n }\n}\n\nexport const insert = (value: Insertable, parent: Node, marker?: Node) => {\n let lastFirstNode = marker\n let lastNodeLength = 0\n const runtimeContainer = getRuntimeContainer()\n if (!runtimeContainer) {\n throw new Error('Client insertions require an active runtime container.')\n }\n const ownerSiteKey =\n marker instanceof Comment && !marker.data.startsWith(INSERT_MARKER_PREFIX) ? marker.data : null\n const owner =\n captureClientInsertOwner(runtimeContainer, ownerSiteKey) ??\n createDetachedClientInsertOwner(runtimeContainer)\n const markerKey = ensureInsertMarkerKey(marker, runtimeContainer)\n const collectCurrentNodes = (\n liveMarker: Node | undefined,\n stableParents: Array<Node | null | undefined>,\n ) => {\n if (\n !lastFirstNode ||\n lastNodeLength === 0 ||\n !hasUsableInsertParent(lastFirstNode, stableParents)\n ) {\n const liveNodes = collectNodesBeforeMarker(liveMarker, lastNodeLength)\n return liveNodes.every((node) => hasUsableInsertParent(node, stableParents)) ? liveNodes : []\n }\n const nodes = [lastFirstNode]\n let cursor = lastFirstNode\n while (nodes.length < lastNodeLength) {\n const next = cursor.nextSibling\n if (!next || !hasUsableInsertParent(next, stableParents)) {\n return [] as Node[]\n }\n cursor = next\n nodes.push(cursor)\n }\n return nodes\n }\n\n effect(() => {\n const shouldReconnect = shouldReconnectDetachedInsertMarkers(runtimeContainer)\n const liveMarker = !(marker instanceof Comment)\n ? marker\n : isConnectedNode(marker.parentNode)\n ? marker\n : shouldReconnect\n ? (findLiveInsertMarker(runtimeContainer.doc, markerKey) ?? marker)\n : marker\n const stableParents = liveMarker?.parentNode\n ? [liveMarker.parentNode, parent === liveMarker.parentNode ? parent : null]\n : [parent, marker?.parentNode]\n const liveLastParent = isUsableInsertParent(lastFirstNode?.parentNode, stableParents)\n ? lastFirstNode?.parentNode\n : null\n const liveMarkerParent = isUsableInsertParent(liveMarker?.parentNode, stableParents)\n ? liveMarker?.parentNode\n : null\n const resolvedParent = (liveLastParent ?? liveMarkerParent ?? parent) as ParentNode | null\n const targetParent = resolvedParent ?? (parent as ParentNode)\n const newNodes = owner\n ? renderClientInsertableForOwner(value, runtimeContainer, owner)\n : renderClientInsertable(value, runtimeContainer)\n const seededCurrentNodes =\n lastNodeLength === 0 && liveMarker instanceof Comment\n ? collectNodesBeforeMarker(liveMarker, newNodes.length)\n : []\n const currentNodes =\n seededCurrentNodes.length !== 0 &&\n seededCurrentNodes.every((node) => hasUsableInsertParent(node, stableParents)) &&\n canReconnectOwnerRange(seededCurrentNodes, newNodes)\n ? seededCurrentNodes\n : collectCurrentNodes(liveMarker, stableParents)\n\n if (currentNodes.length !== 0 && lastNodeLength === 0) {\n lastFirstNode = currentNodes[0]\n lastNodeLength = currentNodes.length\n }\n\n if (\n currentNodes.length === lastNodeLength &&\n currentNodes.length !== 0 &&\n newNodes.length !== 0 &&\n (tryPatchNodeSequenceInPlace(currentNodes, newNodes) ||\n tryPatchSingleElementShellInPlace(currentNodes, newNodes))\n ) {\n restoreSignalRefs(runtimeContainer, targetParent)\n rememberInsertMarkerRange(liveMarker, currentNodes)\n lastFirstNode = currentNodes[0]\n lastNodeLength = currentNodes.length\n return\n }\n\n let replacementNodes = newNodes\n if (currentNodes.length !== 0 && newNodes.length !== 0) {\n const doc = runtimeContainer.doc\n if (!doc) {\n throw new Error('Client insertions require an active runtime document.')\n }\n const stagingParent = doc.createElement('div')\n for (const node of newNodes) {\n stagingParent.appendChild(node)\n }\n preserveReusableContentInRoots(currentNodes, Array.from(stagingParent.childNodes))\n replacementNodes = Array.from(stagingParent.childNodes)\n }\n\n const insertReference = liveMarker?.parentNode === targetParent ? liveMarker : null\n for (const node of currentNodes) {\n if (node.parentNode === targetParent) {\n removeNodeFromParent(node, targetParent)\n }\n }\n for (const node of replacementNodes) {\n targetParent.insertBefore(node, insertReference)\n }\n\n rememberManagedAttributesForNodes(replacementNodes)\n rememberInsertMarkerRange(liveMarker, replacementNodes)\n\n lastFirstNode = replacementNodes[0] ?? liveMarker\n lastNodeLength = replacementNodes.length\n })\n}\n\nconst EVENT_ATTR_REGEX = /^on[A-Z].+$/\nconst DANGEROUSLY_SET_INNER_HTML_PROP = 'dangerouslySetInnerHTML'\nconst BIND_VALUE_PROP = 'bind:value'\nconst BIND_CHECKED_PROP = 'bind:checked'\nconst BIND_VALUE_ATTR = 'data-e-bind-value'\nconst BIND_CHECKED_ATTR = 'data-e-bind-checked'\nconst shouldUseAttributeAssignment = (elem: Element, name: string, isSVG: boolean) =>\n isSVG || name.startsWith('data-') || name.startsWith('aria-') || !(name in elem)\n\ntype BindableSignal<T> = {\n value: T\n}\n\nconst isBindableSignal = <T>(value: unknown): value is BindableSignal<T> =>\n !!value && (typeof value === 'object' || typeof value === 'function') && 'value' in value\n\nconst readValueBinding = (elem: Element, currentValue: unknown) => {\n if (\n elem instanceof HTMLInputElement &&\n typeof currentValue === 'number' &&\n (elem.type === 'number' || elem.type === 'range') &&\n !Number.isNaN(elem.valueAsNumber)\n ) {\n return elem.valueAsNumber\n }\n\n return (elem as HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement).value\n}\n\nconst tryPatchSingleElementShellInPlace = (currentNodes: Node[], nextNodes: Node[]) => {\n if (currentNodes.length !== 1 || nextNodes.length !== 1) {\n return false\n }\n\n const [current] = currentNodes\n const [next] = nextNodes\n if (\n !(current instanceof Element) ||\n !(next instanceof Element) ||\n current.tagName !== next.tagName\n ) {\n return false\n }\n return tryPatchElementShellInPlace(current, next)\n}\n\nexport const attr = (elem: Element, name: string, value: () => unknown) => {\n const isSVG = elem.namespaceURI === 'http://www.w3.org/2000/svg'\n\n if (name === BIND_VALUE_PROP) {\n const readBinding = () => {\n const binding = value()\n const signalId = getRuntimeSignalId(binding)\n if (signalId) {\n elem.setAttribute(BIND_VALUE_ATTR, signalId)\n } else {\n elem.removeAttribute(BIND_VALUE_ATTR)\n }\n syncManagedAttributeSnapshot(elem, BIND_VALUE_ATTR)\n return binding\n }\n\n const syncSignalFromElement = () => {\n const binding = readBinding()\n if (!isBindableSignal(binding)) {\n return\n }\n binding.value = readValueBinding(elem, binding.value) as never\n }\n\n elem.addEventListener('input', syncSignalFromElement)\n elem.addEventListener('change', syncSignalFromElement)\n\n effect(() => {\n const binding = readBinding()\n if (!isBindableSignal(binding)) {\n return\n }\n ;(elem as HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement).value = String(\n binding.value ?? '',\n )\n })\n return\n }\n\n if (name === BIND_CHECKED_PROP) {\n if (!(elem instanceof HTMLInputElement)) {\n return\n }\n\n const readBinding = () => {\n const binding = value()\n const signalId = getRuntimeSignalId(binding)\n if (signalId) {\n elem.setAttribute(BIND_CHECKED_ATTR, signalId)\n } else {\n elem.removeAttribute(BIND_CHECKED_ATTR)\n }\n syncManagedAttributeSnapshot(elem, BIND_CHECKED_ATTR)\n return binding\n }\n\n const syncSignalFromElement = () => {\n const binding = readBinding()\n if (!isBindableSignal(binding)) {\n return\n }\n binding.value = elem.checked as never\n }\n\n elem.addEventListener('input', syncSignalFromElement)\n elem.addEventListener('change', syncSignalFromElement)\n\n effect(() => {\n const binding = readBinding()\n if (!isBindableSignal(binding)) {\n return\n }\n elem.checked = Boolean(binding.value)\n })\n return\n }\n\n if (EVENT_ATTR_REGEX.test(name)) {\n const eventName = name[2].toLowerCase() + name.slice(3)\n const resolved = value()\n if (bindRuntimeEvent(elem, eventName, resolved)) {\n return\n }\n if (typeof resolved !== 'function') {\n throw new Error('Resumable event bindings require an active runtime container.')\n }\n elem.addEventListener(eventName, resolved as () => void)\n return\n }\n\n if (name === 'style') {\n effect(() => {\n const resolved = value()\n const styleValue =\n resolved && typeof resolved === 'object'\n ? Object.entries(resolved as Record<string, string>)\n .map(([k, v]) => `${k}: ${v}`)\n .join('; ')\n : String(resolved ?? '')\n elem.setAttribute('style', styleValue)\n syncManagedAttributeSnapshot(elem, 'style')\n })\n return\n }\n\n if (name === 'class') {\n effect(() => {\n if (isSVG) {\n elem.setAttribute('class', String(value()))\n syncManagedAttributeSnapshot(elem, 'class')\n return\n }\n ;(elem as Element & { className: string }).className = String(value())\n syncManagedAttributeSnapshot(elem, 'class')\n })\n return\n }\n\n if (name === 'ref') {\n const resolved = value()\n syncRuntimeRefMarker(elem, resolved)\n assignRuntimeRef(resolved, elem, getRuntimeContainer())\n return\n }\n\n if (name === DANGEROUSLY_SET_INNER_HTML_PROP) {\n effect(() => {\n const html = value()\n ;(elem as Element & { innerHTML: string }).innerHTML =\n html === false || html === undefined || html === null ? '' : String(html)\n })\n return\n }\n\n effect(() => {\n if (shouldUseAttributeAssignment(elem, name, isSVG)) {\n elem.setAttribute(name, String(value()))\n syncManagedAttributeSnapshot(elem, name)\n return\n }\n // @ts-expect-error DOM property assignment uses dynamic keys.\n elem[name] = String(value())\n syncManagedAttributeSnapshot(elem, name)\n })\n}\n\nexport const hydrate = (\n Component: Component,\n target: HTMLElement,\n options?: {\n snapshot?: unknown[]\n },\n) => {\n const elem = withSignalSnapshot(options?.snapshot ?? null, () => Component({}))\n .result as unknown as ClientElementLike\n\n while (target.childNodes.length > 0) {\n target.lastChild?.remove()\n }\n\n for (const entry of Array.isArray(elem) ? elem : [elem]) {\n insert(() => entry, target)\n }\n}\n\nexport const createComponent = (Component: Component, props: unknown) => {\n if (isSuspenseType(Component)) {\n return () => jsxDEV(Component, props as Record<string, unknown>, null, false, {})\n }\n if (!getComponentMeta(Component)) {\n const render = Component as (props: unknown) => unknown\n return () => render(props) as ClientElementLike\n }\n return () => jsxDEV(Component, props as Record<string, unknown>, null, false, {})\n}\n","export interface Signal<T> {\n get(): T\n set(newValue: T): T\n effects: Set<Effect>\n}\n\ninterface Effect {\n fn: () => void\n signals: Set<Signal<unknown>>\n}\nlet currentEffect: Effect | null = null\n\nconst isPrimitiveSignalValue = (value: unknown) =>\n value === null || (typeof value !== 'object' && typeof value !== 'function')\n\nconst didSignalValueChange = (previous: unknown, next: unknown) => {\n if (isPrimitiveSignalValue(previous) && isPrimitiveSignalValue(next)) {\n return !Object.is(previous, next)\n }\n\n return previous !== next\n}\n\nexport const signal = <T>(init: T): Signal<T> => {\n let value = init\n const signal: Signal<T> = {\n get() {\n if (currentEffect) {\n this.effects.add(currentEffect)\n }\n return value\n },\n set(newValue) {\n if (!didSignalValueChange(value, newValue)) {\n return value\n }\n value = newValue\n for (const effect of this.effects) {\n effect.fn()\n }\n return value\n },\n effects: new Set(),\n }\n return signal\n}\n\nconst registry = new FinalizationRegistry<Effect>((effect) => {\n for (const signal of effect.signals) {\n signal.effects.delete(effect)\n }\n})\n\nexport const effect = (fn: () => void) => {\n const newEffect: Effect = {\n fn() {\n fn()\n },\n signals: new Set(),\n }\n\n currentEffect = newEffect\n newEffect.fn()\n currentEffect = null\n\n registry.register(fn, newEffect)\n}\n"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { i as JSX } from "./types-
|
|
1
|
+
import { i as JSX } from "./types-BCEY9lGp.mjs";
|
|
2
2
|
|
|
3
3
|
//#region core/component.d.ts
|
|
4
4
|
type Component<T = unknown> = (props: T) => JSX.Element;
|
|
5
5
|
type EURL<T> = T;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { EURL as n, Component as t };
|
|
8
|
-
//# sourceMappingURL=component-
|
|
8
|
+
//# sourceMappingURL=component-D_nEtZ69.d.mts.map
|
package/core/client/mod.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as Insertable, t as ClientElementLike } from "../../types-
|
|
2
|
-
import { a as hydrate, i as createTemplate, n as attr, o as insert, r as createComponent, t as effect } from "../../mod-
|
|
1
|
+
import { n as Insertable, t as ClientElementLike } from "../../types-DKpefD_u.mjs";
|
|
2
|
+
import { a as hydrate, i as createTemplate, n as attr, o as insert, r as createComponent, t as effect } from "../../mod-DLb8ple9.mjs";
|
|
3
3
|
export { ClientElementLike, Insertable, attr, createComponent, createTemplate, effect, hydrate, insert };
|
package/core/client/mod.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import "../../action-
|
|
2
|
-
import "../../signal-
|
|
3
|
-
import "../../snapshot-
|
|
4
|
-
import { a as hydrate, i as createTemplate, n as attr, o as insert, r as createComponent, t as effect } from "../../client-
|
|
1
|
+
import "../../action-CgM3EJUS.mjs";
|
|
2
|
+
import "../../signal-CJtquEfo.mjs";
|
|
3
|
+
import "../../snapshot-BdY3jcVk.mjs";
|
|
4
|
+
import { a as hydrate, i as createTemplate, n as attr, o as insert, r as createComponent, t as effect } from "../../client-COjBNTyt.mjs";
|
|
5
5
|
export { attr, createComponent, createTemplate, effect, hydrate, insert };
|
package/core/dev-client/mod.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Ot as getComponentMeta, St as __eclipsaComponent } from "../../action-
|
|
2
|
-
import "../../signal-
|
|
3
|
-
import "../../snapshot-
|
|
4
|
-
import { a as hydrate } from "../../client-
|
|
1
|
+
import { Ot as getComponentMeta, St as __eclipsaComponent } from "../../action-CgM3EJUS.mjs";
|
|
2
|
+
import "../../signal-CJtquEfo.mjs";
|
|
3
|
+
import "../../snapshot-BdY3jcVk.mjs";
|
|
4
|
+
import { a as hydrate } from "../../client-COjBNTyt.mjs";
|
|
5
5
|
//#region core/dev-client/hot.ts
|
|
6
6
|
const HOT_COMPONENT_TARGET_KEY = Symbol.for("eclipsa.hot-component-target");
|
|
7
7
|
const unwrapHotComponent = (Component) => Component[HOT_COMPONENT_TARGET_KEY] ?? Component;
|
package/core/internal.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as getSignalMeta, C as getLoaderHandleMeta, D as getRegisteredActionHookIds, E as getRegisteredActionHook, F as setActionHookMeta, I as setLoaderHandleMeta, L as setLoaderHookMeta, M as registerActionHook, Mt as getRuntimeComponentId, N as registerLoaderHook, O as getRegisteredLoaderHook, P as setActionHandleMeta, R as setNavigateMeta, S as getLazyMeta, T as getNavigateMeta, W as __eclipsaLoader, _ as __eclipsaWatch, a as EventDescriptor, b as getComponentMeta, c as LoaderHandleMeta, d as SignalMeta, f as WatchMeta, g as __eclipsaLazy, h as __eclipsaEvent, i as ComponentOptions, j as getWatchMeta, k as getRegisteredLoaderHookIds, l as LoaderHookMeta, m as __eclipsaComponent, n as ActionHookMeta, o as LazyMeta, p as WatchReference, r as ComponentMeta, s as LazyReference, t as ActionHandleMeta, u as NavigateMeta, v as getActionHandleMeta, vt as __eclipsaAction, w as getLoaderHookMeta, x as getEventMeta, y as getActionHookMeta, z as setSignalMeta } from "../internal-
|
|
1
|
+
import { A as getSignalMeta, C as getLoaderHandleMeta, D as getRegisteredActionHookIds, E as getRegisteredActionHook, F as setActionHookMeta, I as setLoaderHandleMeta, L as setLoaderHookMeta, M as registerActionHook, Mt as getRuntimeComponentId, N as registerLoaderHook, O as getRegisteredLoaderHook, P as setActionHandleMeta, R as setNavigateMeta, S as getLazyMeta, T as getNavigateMeta, W as __eclipsaLoader, _ as __eclipsaWatch, a as EventDescriptor, b as getComponentMeta, c as LoaderHandleMeta, d as SignalMeta, f as WatchMeta, g as __eclipsaLazy, h as __eclipsaEvent, i as ComponentOptions, j as getWatchMeta, k as getRegisteredLoaderHookIds, l as LoaderHookMeta, m as __eclipsaComponent, n as ActionHookMeta, o as LazyMeta, p as WatchReference, r as ComponentMeta, s as LazyReference, t as ActionHandleMeta, u as NavigateMeta, v as getActionHandleMeta, vt as __eclipsaAction, w as getLoaderHookMeta, x as getEventMeta, y as getActionHookMeta, z as setSignalMeta } from "../internal-Csbm0Qnv.mjs";
|
|
2
2
|
export { ActionHandleMeta, ActionHookMeta, ComponentMeta, ComponentOptions, EventDescriptor, LazyMeta, LazyReference, LoaderHandleMeta, LoaderHookMeta, NavigateMeta, SignalMeta, WatchMeta, WatchReference, __eclipsaAction, __eclipsaComponent, __eclipsaEvent, __eclipsaLazy, __eclipsaLoader, __eclipsaWatch, getActionHandleMeta, getActionHookMeta, getComponentMeta, getEventMeta, getLazyMeta, getLoaderHandleMeta, getLoaderHookMeta, getNavigateMeta, getRegisteredActionHook, getRegisteredActionHookIds, getRegisteredLoaderHook, getRegisteredLoaderHookIds, getRuntimeComponentId, getSignalMeta, getWatchMeta, registerActionHook, registerLoaderHook, setActionHandleMeta, setActionHookMeta, setLoaderHandleMeta, setLoaderHookMeta, setNavigateMeta, setSignalMeta };
|
package/core/internal.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { At as getLazyMeta, Bt as registerActionHook, Ct as __eclipsaEvent, Dt as getActionHookMeta, Et as getActionHandleMeta, Ft as getRegisteredActionHookIds, Gt as setLoaderHookMeta, Ht as setActionHandleMeta, It as getRegisteredLoaderHook, Jt as __eclipsaLoader, Kt as setNavigateMeta, Lt as getRegisteredLoaderHookIds, M as getRuntimeComponentId, Mt as getLoaderHookMeta, Nt as getNavigateMeta, Ot as getComponentMeta, Pt as getRegisteredActionHook, Rt as getSignalMeta, St as __eclipsaComponent, Tt as __eclipsaWatch, Ut as setActionHookMeta, Vt as registerLoaderHook, Wt as setLoaderHandleMeta, i as __eclipsaAction, jt as getLoaderHandleMeta, kt as getEventMeta, qt as setSignalMeta, wt as __eclipsaLazy, zt as getWatchMeta } from "../action-
|
|
1
|
+
import { At as getLazyMeta, Bt as registerActionHook, Ct as __eclipsaEvent, Dt as getActionHookMeta, Et as getActionHandleMeta, Ft as getRegisteredActionHookIds, Gt as setLoaderHookMeta, Ht as setActionHandleMeta, It as getRegisteredLoaderHook, Jt as __eclipsaLoader, Kt as setNavigateMeta, Lt as getRegisteredLoaderHookIds, M as getRuntimeComponentId, Mt as getLoaderHookMeta, Nt as getNavigateMeta, Ot as getComponentMeta, Pt as getRegisteredActionHook, Rt as getSignalMeta, St as __eclipsaComponent, Tt as __eclipsaWatch, Ut as setActionHookMeta, Vt as registerLoaderHook, Wt as setLoaderHandleMeta, i as __eclipsaAction, jt as getLoaderHandleMeta, kt as getEventMeta, qt as setSignalMeta, wt as __eclipsaLazy, zt as getWatchMeta } from "../action-CgM3EJUS.mjs";
|
|
2
2
|
export { __eclipsaAction, __eclipsaComponent, __eclipsaEvent, __eclipsaLazy, __eclipsaLoader, __eclipsaWatch, getActionHandleMeta, getActionHookMeta, getComponentMeta, getEventMeta, getLazyMeta, getLoaderHandleMeta, getLoaderHookMeta, getNavigateMeta, getRegisteredActionHook, getRegisteredActionHookIds, getRegisteredLoaderHook, getRegisteredLoaderHookIds, getRuntimeComponentId, getSignalMeta, getWatchMeta, registerActionHook, registerLoaderHook, setActionHandleMeta, setActionHookMeta, setLoaderHandleMeta, setLoaderHookMeta, setNavigateMeta, setSignalMeta };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as Component } from "../../component-
|
|
2
|
-
import { n as Insertable, t as ClientElementLike } from "../../types-
|
|
3
|
-
import { a as hydrate, i as createTemplate, n as attr, o as insert, r as createComponent, t as effect } from "../../mod-
|
|
1
|
+
import { t as Component } from "../../component-D_nEtZ69.mjs";
|
|
2
|
+
import { n as Insertable, t as ClientElementLike } from "../../types-DKpefD_u.mjs";
|
|
3
|
+
import { a as hydrate, i as createTemplate, n as attr, o as insert, r as createComponent, t as effect } from "../../mod-DLb8ple9.mjs";
|
|
4
4
|
|
|
5
5
|
//#region core/prod-client/eurl.d.ts
|
|
6
6
|
declare const fetchEurl: (id: string) => Promise<unknown>;
|
package/core/prod-client/mod.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { J as renderClientInsertable, N as getRuntimeContainer } from "../../action-
|
|
1
|
+
import { J as renderClientInsertable, N as getRuntimeContainer } from "../../action-CgM3EJUS.mjs";
|
|
2
2
|
import { i as jsxDEV } from "../../jsx-dev-runtime-CY60yQJY.mjs";
|
|
3
|
-
import "../../signal-
|
|
4
|
-
import "../../snapshot-
|
|
5
|
-
import { a as hydrate, i as createTemplate, n as attr, o as insert, r as createComponent, t as effect } from "../../client-
|
|
3
|
+
import "../../signal-CJtquEfo.mjs";
|
|
4
|
+
import "../../snapshot-BdY3jcVk.mjs";
|
|
5
|
+
import { a as hydrate, i as createTemplate, n as attr, o as insert, r as createComponent, t as effect } from "../../client-COjBNTyt.mjs";
|
|
6
6
|
//#region core/prod-client/eurl.ts
|
|
7
7
|
const eurlMaps = /* @__PURE__ */ new Map();
|
|
8
8
|
const fetchEurl = async (id) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { i as JSX } from "./types-
|
|
2
|
-
import { n as EURL, t as Component } from "./component-
|
|
1
|
+
import { i as JSX } from "./types-BCEY9lGp.mjs";
|
|
2
|
+
import { n as EURL, t as Component } from "./component-D_nEtZ69.mjs";
|
|
3
3
|
import { Context } from "hono";
|
|
4
4
|
import { Env, MiddlewareHandler } from "hono/types";
|
|
5
5
|
|
|
@@ -671,4 +671,4 @@ declare const setSignalMeta: <T>(target: {
|
|
|
671
671
|
declare const getSignalMeta: <T>(value: unknown) => SignalMeta<T> | null;
|
|
672
672
|
//#endregion
|
|
673
673
|
export { resolvePendingLoaders as $, HandleErrorInput as $t, getSignalMeta as A, SerializedObject as An, RuntimeContainer as At, LoaderFactory as B, serializeValue as Bn, TwitterMetadata as Bt, getLoaderHandleMeta as C, serializePublicValue as Cn, getNormalizedActionInput as Ct, getRegisteredActionHookIds as D, DeserializeValueOptions as Dn, validator as Dt, getRegisteredActionHook as E, withServerRequestContext as En, registerAction as Et, setActionHookMeta as F, deserializeValue as Fn, ROUTE_METADATA_HEAD_ATTR as Ft, consumePendingSsrLoaderIds as G, RouteLocation as Gn, AppContext as Gt, LoaderHandler as H, LinkPrefetchMode as Hn, renderRouteMetadataHead as Ht, setLoaderHandleMeta as I, escapeInlineScriptText as In, RouteMetadata as It, isPendingSsrLoaderError as J, AppHooksModule as Jt, executeLoader as K, RouteParams as Kn, AppEnv as Kt, setLoaderHookMeta as L, escapeJSONScriptText as Ln, RouteMetadataExport as Lt, registerActionHook as M, SerializedSet as Mn, getRuntimeComponentId as Mt, registerLoaderHook as N, SerializedUndefined as Nn, MetadataContext as Nt, getRegisteredLoaderHook as O, SerializeValueOptions as On, RESUME_FINAL_STATE_ELEMENT_ID as Ot, setActionHandleMeta as P, SerializedValue as Pn, OpenGraphMetadata as Pt, registerLoader as Q, HandleError as Qt, setNavigateMeta as R, parseSerializedJSON as Rn, RouteMetadataResolver as Rt, getLazyMeta as S, runHandleError as Sn, getActionFormSubmissionId as St, getNavigateMeta as T, transformCurrentPublicError as Tn, primeActionState as Tt, LoaderMiddleware as U, Navigate as Un, resolveRouteMetadata as Ut, LoaderHandle as V, GetStaticPaths as Vn, composeRouteMetadata as Vt, __eclipsaLoader as W, NavigateOptions as Wn, APP_HOOKS_ELEMENT_ID as Wt, markPendingSsrLoader as X, BaseAppVariables as Xt, loader as Y, AppVariables as Yt, primeLoaderState as Z, Handle as Zt, __eclipsaWatch as _, getCurrentServerRequestContext as _n, StandardSchemaV1 as _t, EventDescriptor as a, RequestFetch as an, ActionHandle as at, getComponentMeta as b, resetClientHooks as bn, executeAction as bt, LoaderHandleMeta as c, ServerHooksModule as cn, ActionOpaqueRef as ct, SignalMeta as d, TransportHook as dn, InferStandardSchemaInput as dt, HandleFetch as en, ACTION_CONTENT_TYPE as et, WatchMeta as f, WithAppEnv as fn, InferStandardSchemaOutput as ft, __eclipsaLazy as g, getClientHooks as gn, StandardSchemaResult as gt, __eclipsaEvent as h, deserializePublicValue as hn, StandardSchemaIssue as ht, ComponentOptions as i, PublicErrorShape as in, ActionFormProps as it, getWatchMeta as j, SerializedReference as jn, RuntimeContextToken as jt, getRegisteredLoaderHookIds as k, SerializedMap as kn, ResumePayload as kt, LoaderHookMeta as l, ServerInit as ln, ActionSubmission as lt, __eclipsaComponent as m, createRequestFetch as mn, OpaqueSignalRef as mt, ActionHookMeta as n, HandleResolveOptions as nn, ACTION_FORM_FIELD as nt, LazyMeta as o, Reroute as on, ActionHandler as ot, WatchReference as p, attachRequestFetch as pn, OpaqueDomRef as pt, hasLoader as q, StaticPath as qn, AppHooksManifest as qt, ComponentMeta as r, PublicError as rn, ActionFactory as rt, LazyReference as s, ResolvedHooks as sn, ActionMiddleware as st, ActionHandleMeta as t, HandleResolve as tn, ACTION_FORM_ATTR as tt, NavigateMeta as u, Transport as un, ActionValidatorMiddleware as ut, getActionHandleMeta as v, markPublicError as vn, __eclipsaAction as vt, getLoaderHookMeta as w, toPublicError as wn, hasAction as wt, getEventMeta as x, resolveReroute as xn, executeActionSubmission as xt, getActionHookMeta as y, registerClientHooks as yn, action as yt, setSignalMeta as z, serializeJSONScriptContent as zn, RouteMetadataValue as zt };
|
|
674
|
-
//# sourceMappingURL=internal-
|
|
674
|
+
//# sourceMappingURL=internal-Csbm0Qnv.d.mts.map
|
package/jsx/jsx-runtime.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as JSX } from "../types-
|
|
1
|
+
import { i as JSX } from "../types-BCEY9lGp.mjs";
|
|
2
2
|
export { JSX };
|
package/jsx/mod.d.mts
CHANGED
package/jsx/mod.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { i as JSX } from "./types-
|
|
2
|
-
import { t as Component } from "./component-
|
|
3
|
-
import { n as Insertable, t as ClientElementLike } from "./types-
|
|
1
|
+
import { i as JSX } from "./types-BCEY9lGp.mjs";
|
|
2
|
+
import { t as Component } from "./component-D_nEtZ69.mjs";
|
|
3
|
+
import { n as Insertable, t as ClientElementLike } from "./types-DKpefD_u.mjs";
|
|
4
4
|
|
|
5
5
|
//#region core/client/dom.d.ts
|
|
6
6
|
declare const createTemplate: (html: string) => (() => Node);
|
|
@@ -15,4 +15,4 @@ declare const createComponent: (Component: Component, props: unknown) => (() =>
|
|
|
15
15
|
declare const effect: (fn: () => void) => void;
|
|
16
16
|
//#endregion
|
|
17
17
|
export { hydrate as a, createTemplate as i, attr as n, insert as o, createComponent as r, effect as t };
|
|
18
|
-
//# sourceMappingURL=mod-
|
|
18
|
+
//# sourceMappingURL=mod-DLb8ple9.d.mts.map
|
package/mod.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { i as JSX, n as DelegatedEvent, r as EventHandler, t as BindTarget } from "./types-
|
|
2
|
-
import { n as EURL, t as Component } from "./component-
|
|
3
|
-
import { $ as resolvePendingLoaders, $t as HandleErrorInput, An as SerializedObject, At as RuntimeContainer, B as LoaderFactory, Bn as serializeValue, Bt as TwitterMetadata, Cn as serializePublicValue, Ct as getNormalizedActionInput, Dn as DeserializeValueOptions, Dt as validator, En as withServerRequestContext, Et as registerAction, Fn as deserializeValue, Ft as ROUTE_METADATA_HEAD_ATTR, G as consumePendingSsrLoaderIds, Gn as RouteLocation, Gt as AppContext, H as LoaderHandler, Hn as LinkPrefetchMode, Ht as renderRouteMetadataHead, In as escapeInlineScriptText, It as RouteMetadata, J as isPendingSsrLoaderError, Jt as AppHooksModule, K as executeLoader, Kn as RouteParams, Kt as AppEnv, Ln as escapeJSONScriptText, Lt as RouteMetadataExport, Mn as SerializedSet, Nn as SerializedUndefined, Nt as MetadataContext, On as SerializeValueOptions, Ot as RESUME_FINAL_STATE_ELEMENT_ID, Pn as SerializedValue, Pt as OpenGraphMetadata, Q as registerLoader, Qt as HandleError, Rn as parseSerializedJSON, Rt as RouteMetadataResolver, Sn as runHandleError, St as getActionFormSubmissionId, Tn as transformCurrentPublicError, Tt as primeActionState, U as LoaderMiddleware, Un as Navigate, Ut as resolveRouteMetadata, V as LoaderHandle, Vn as GetStaticPaths, Vt as composeRouteMetadata, W as __eclipsaLoader, Wn as NavigateOptions, Wt as APP_HOOKS_ELEMENT_ID, X as markPendingSsrLoader, Xt as BaseAppVariables, Y as loader, Yt as AppVariables, Z as primeLoaderState, Zt as Handle, _n as getCurrentServerRequestContext, _t as StandardSchemaV1, an as RequestFetch, at as ActionHandle, bn as resetClientHooks, bt as executeAction, cn as ServerHooksModule, ct as ActionOpaqueRef, dn as TransportHook, dt as InferStandardSchemaInput, en as HandleFetch, et as ACTION_CONTENT_TYPE, fn as WithAppEnv, ft as InferStandardSchemaOutput, gn as getClientHooks, gt as StandardSchemaResult, hn as deserializePublicValue, ht as StandardSchemaIssue, in as PublicErrorShape, it as ActionFormProps, jn as SerializedReference, jt as RuntimeContextToken, kn as SerializedMap, kt as ResumePayload, ln as ServerInit, lt as ActionSubmission, mn as createRequestFetch, mt as OpaqueSignalRef, nn as HandleResolveOptions, nt as ACTION_FORM_FIELD, on as Reroute, ot as ActionHandler, pn as attachRequestFetch, pt as OpaqueDomRef, q as hasLoader, qn as StaticPath, qt as AppHooksManifest, rn as PublicError, rt as ActionFactory, sn as ResolvedHooks, st as ActionMiddleware, tn as HandleResolve, tt as ACTION_FORM_ATTR, un as Transport, ut as ActionValidatorMiddleware, vn as markPublicError, vt as __eclipsaAction, wn as toPublicError, wt as hasAction, xn as resolveReroute, xt as executeActionSubmission, yn as registerClientHooks, yt as action, zn as serializeJSONScriptContent, zt as RouteMetadataValue } from "./internal-
|
|
4
|
-
import { a as onMount, c as useComputed, d as useWatch, i as onCleanup, l as useComputed$, n as WatchDependency, o as onVisible, r as effect, s as signal, t as Signal, u as useSignal } from "./signal-
|
|
1
|
+
import { i as JSX, n as DelegatedEvent, r as EventHandler, t as BindTarget } from "./types-BCEY9lGp.mjs";
|
|
2
|
+
import { n as EURL, t as Component } from "./component-D_nEtZ69.mjs";
|
|
3
|
+
import { $ as resolvePendingLoaders, $t as HandleErrorInput, An as SerializedObject, At as RuntimeContainer, B as LoaderFactory, Bn as serializeValue, Bt as TwitterMetadata, Cn as serializePublicValue, Ct as getNormalizedActionInput, Dn as DeserializeValueOptions, Dt as validator, En as withServerRequestContext, Et as registerAction, Fn as deserializeValue, Ft as ROUTE_METADATA_HEAD_ATTR, G as consumePendingSsrLoaderIds, Gn as RouteLocation, Gt as AppContext, H as LoaderHandler, Hn as LinkPrefetchMode, Ht as renderRouteMetadataHead, In as escapeInlineScriptText, It as RouteMetadata, J as isPendingSsrLoaderError, Jt as AppHooksModule, K as executeLoader, Kn as RouteParams, Kt as AppEnv, Ln as escapeJSONScriptText, Lt as RouteMetadataExport, Mn as SerializedSet, Nn as SerializedUndefined, Nt as MetadataContext, On as SerializeValueOptions, Ot as RESUME_FINAL_STATE_ELEMENT_ID, Pn as SerializedValue, Pt as OpenGraphMetadata, Q as registerLoader, Qt as HandleError, Rn as parseSerializedJSON, Rt as RouteMetadataResolver, Sn as runHandleError, St as getActionFormSubmissionId, Tn as transformCurrentPublicError, Tt as primeActionState, U as LoaderMiddleware, Un as Navigate, Ut as resolveRouteMetadata, V as LoaderHandle, Vn as GetStaticPaths, Vt as composeRouteMetadata, W as __eclipsaLoader, Wn as NavigateOptions, Wt as APP_HOOKS_ELEMENT_ID, X as markPendingSsrLoader, Xt as BaseAppVariables, Y as loader, Yt as AppVariables, Z as primeLoaderState, Zt as Handle, _n as getCurrentServerRequestContext, _t as StandardSchemaV1, an as RequestFetch, at as ActionHandle, bn as resetClientHooks, bt as executeAction, cn as ServerHooksModule, ct as ActionOpaqueRef, dn as TransportHook, dt as InferStandardSchemaInput, en as HandleFetch, et as ACTION_CONTENT_TYPE, fn as WithAppEnv, ft as InferStandardSchemaOutput, gn as getClientHooks, gt as StandardSchemaResult, hn as deserializePublicValue, ht as StandardSchemaIssue, in as PublicErrorShape, it as ActionFormProps, jn as SerializedReference, jt as RuntimeContextToken, kn as SerializedMap, kt as ResumePayload, ln as ServerInit, lt as ActionSubmission, mn as createRequestFetch, mt as OpaqueSignalRef, nn as HandleResolveOptions, nt as ACTION_FORM_FIELD, on as Reroute, ot as ActionHandler, pn as attachRequestFetch, pt as OpaqueDomRef, q as hasLoader, qn as StaticPath, qt as AppHooksManifest, rn as PublicError, rt as ActionFactory, sn as ResolvedHooks, st as ActionMiddleware, tn as HandleResolve, tt as ACTION_FORM_ATTR, un as Transport, ut as ActionValidatorMiddleware, vn as markPublicError, vt as __eclipsaAction, wn as toPublicError, wt as hasAction, xn as resolveReroute, xt as executeActionSubmission, yn as registerClientHooks, yt as action, zn as serializeJSONScriptContent, zt as RouteMetadataValue } from "./internal-Csbm0Qnv.mjs";
|
|
4
|
+
import { a as onMount, c as useComputed, d as useWatch, i as onCleanup, l as useComputed$, n as WatchDependency, o as onVisible, r as effect, s as signal, t as Signal, u as useSignal } from "./signal-B7AfIKrr.mjs";
|
|
5
5
|
import { Context as Context$1 } from "hono";
|
|
6
6
|
import { Env, MiddlewareHandler } from "hono/types";
|
|
7
7
|
|
package/mod.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { $t as loader, An as
|
|
2
|
-
import { t as RESUME_HMR_EVENT } from "./resume-hmr-
|
|
3
|
-
import { a as signal, c as useSignal, i as onVisible, l as useWatch, n as onCleanup, o as useComputed, r as onMount, s as useComputed$, t as effect } from "./signal-
|
|
4
|
-
import { n as registerSnapshotSignal, r as withSignalSnapshot, t as consumeSnapshotValue } from "./snapshot-
|
|
1
|
+
import { $t as loader, An as serializePublicValue, B as primeRouteModules, Bn as isNoSerialize, Cn as getClientHooks, Dn as resetClientHooks, En as registerClientHooks, F as getStreamingResumeBootstrapScriptContent$1, Fn as escapeInlineScriptText, H as refreshRegisteredRouteContainers, I as installResumeListeners, In as escapeJSONScriptText, Jt as __eclipsaLoader, L as notFound$1, Ln as parseSerializedJSON, Mn as transformCurrentPublicError, Nn as withServerRequestContext, O as createResumeContainer, On as resolveReroute, Pn as deserializeValue, Q as restoreResumedLocalSignalEffects, Qt as isPendingSsrLoaderError, Rn as serializeJSONScriptContent, S as collectPendingSuspenseBoundaryIds, Sn as deserializePublicValue, Tn as markPublicError, U as registerResumeContainer, Vn as noSerialize, W as registerRuntimeScopedStyle, Xt as executeLoader, Yt as consumePendingSsrLoaderIds, Z as restoreRegisteredRpcHandles, Zt as hasLoader, _n as isPendingSignalError, _t as ROUTE_MANIFEST_ELEMENT_ID, a as action, an as ROUTE_METADATA_HEAD_ATTR, bn as attachRequestFetch, c as getActionFormSubmissionId, cn as resolveRouteMetadata, ct as useRuntimeNavigate, d as primeActionState, dn as getRuntimeContextReference, f as registerAction, fn as materializeRuntimeContext, ft as withRuntimeContainer, g as applyResumeHmrUpdateToRegisteredContainers, gn as createPendingSignalError, gt as ROUTE_LINK_ATTR, hn as Suspense, i as __eclipsaAction, in as resolvePendingLoaders, it as toResumePayloadSubset, j as getResumePayloadScriptContent, jn as toPublicError, kn as runHandleError, l as getNormalizedActionInput, ln as createContext, lt as useRuntimeRouteError, m as RESUME_FINAL_STATE_ELEMENT_ID, mn as useContext, n as ACTION_FORM_ATTR, nn as primeLoaderState, o as executeAction, on as composeRouteMetadata, p as validator, pn as materializeRuntimeContextProvider, r as ACTION_FORM_FIELD, rn as registerLoader, rt as toResumePayload, s as executeActionSubmission, sn as renderRouteMetadataHead, st as useRuntimeLocation, t as ACTION_CONTENT_TYPE, tn as markPendingSsrLoader, u as hasAction, un as getContextProviderMeta, ut as useRuntimeRouteParams, v as beginAsyncSSRContainer, vn as isSuspenseType, vt as ROUTE_PREFETCH_ATTR, wn as getCurrentServerRequestContext, xn as createRequestFetch, xt as ROUTE_REPLACE_ATTR, y as beginSSRContainer, yn as APP_HOOKS_ELEMENT_ID, zn as serializeValue } from "./action-CgM3EJUS.mjs";
|
|
2
|
+
import { t as RESUME_HMR_EVENT } from "./resume-hmr-qTpLc5o-.mjs";
|
|
3
|
+
import { a as signal, c as useSignal, i as onVisible, l as useWatch, n as onCleanup, o as useComputed, r as onMount, s as useComputed$, t as effect } from "./signal-CJtquEfo.mjs";
|
|
4
|
+
import { n as registerSnapshotSignal, r as withSignalSnapshot, t as consumeSnapshotValue } from "./snapshot-BdY3jcVk.mjs";
|
|
5
5
|
import { renderToString } from "./jsx/mod.mjs";
|
|
6
6
|
//#region core/env.ts
|
|
7
7
|
const IS_BROWSER = typeof window !== "undefined" && typeof document !== "undefined";
|
|
@@ -138,7 +138,7 @@ const renderSSRAsync = async (render, options) => {
|
|
|
138
138
|
payload: toResumePayload(container)
|
|
139
139
|
};
|
|
140
140
|
} catch (error) {
|
|
141
|
-
const { isPendingSsrLoaderError, resolvePendingLoaders } = await import("./
|
|
141
|
+
const { isPendingSsrLoaderError, resolvePendingLoaders } = await import("./action-CgM3EJUS.mjs").then((n) => n.en);
|
|
142
142
|
if (!isPendingSsrLoaderError(error)) throw error;
|
|
143
143
|
if (!(options?.resolvePendingLoaders ? await options.resolvePendingLoaders(container) : options?.context ? await resolvePendingLoaders(container, options.context) : false)) throw error;
|
|
144
144
|
seededLoaderStates.clear();
|
|
@@ -179,7 +179,7 @@ const renderStreamingAttempt = async (render, options, seededLoaderStates, async
|
|
|
179
179
|
pendingBoundaryIds: collectPendingSuspenseBoundaryIds(container)
|
|
180
180
|
};
|
|
181
181
|
} catch (error) {
|
|
182
|
-
const { isPendingSsrLoaderError, resolvePendingLoaders } = await import("./
|
|
182
|
+
const { isPendingSsrLoaderError, resolvePendingLoaders } = await import("./action-CgM3EJUS.mjs").then((n) => n.en);
|
|
183
183
|
if (!isPendingSsrLoaderError(error)) throw error;
|
|
184
184
|
if (!(options.resolvePendingLoaders ? await options.resolvePendingLoaders(container) : options.context ? await resolvePendingLoaders(container, options.context) : false)) throw error;
|
|
185
185
|
seededLoaderStates.clear();
|
package/mod.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.mjs","names":["throwRouteNotFound","getStreamingResumeBootstrapScriptContentFromRuntime"],"sources":["../core/env.ts","../core/router.tsx","../core/resume.ts","../core/ssr.ts","../core/style.ts","../core/flow/mod.ts"],"sourcesContent":["export const IS_BROWSER = typeof window !== 'undefined' && typeof document !== 'undefined'\n\nexport const IS_SSR = !IS_BROWSER\n","import type { JSX } from '../jsx/types.ts'\nimport {\n ROUTE_LINK_ATTR,\n ROUTE_PREFETCH_ATTR,\n ROUTE_REPLACE_ATTR,\n type LinkPrefetchMode,\n type Navigate,\n type RouteLocation,\n type RouteParams,\n} from './router-shared.ts'\nimport {\n notFound as throwRouteNotFound,\n useRuntimeLocation,\n useRuntimeRouteError,\n useRuntimeNavigate,\n useRuntimeRouteParams,\n} from './runtime.ts'\n\nexport interface LinkProps extends Record<string, unknown> {\n children?: JSX.Element | JSX.Element[]\n href: string\n prefetch?: LinkPrefetchMode | boolean\n reloadDocument?: boolean\n replace?: boolean\n}\n\nexport const Link = (props: LinkProps) => {\n const reloadDocument = props.reloadDocument === true\n const prefetchMode =\n props.prefetch === undefined\n ? undefined\n : props.prefetch === true\n ? 'intent'\n : props.prefetch === false\n ? 'none'\n : props.prefetch\n\n const nextProps: Record<string, unknown> = {\n ...props,\n }\n\n if (!reloadDocument) {\n nextProps[ROUTE_LINK_ATTR] = ''\n if (prefetchMode) {\n nextProps[ROUTE_PREFETCH_ATTR] = prefetchMode\n }\n if (props.replace) {\n nextProps[ROUTE_REPLACE_ATTR] = 'true'\n }\n }\n delete nextProps.prefetch\n delete nextProps.reloadDocument\n delete nextProps.replace\n\n return {\n isStatic: true,\n props: nextProps,\n type: 'a',\n } satisfies JSX.Element\n}\n\nexport const useNavigate = (): Navigate => useRuntimeNavigate()\n\nexport const useLocation = (): RouteLocation => useRuntimeLocation()\n\nexport const useRouteParams = (): RouteParams => useRuntimeRouteParams()\n\nexport const useRouteError = <T = unknown>(): T | undefined =>\n useRuntimeRouteError() as T | undefined\n\nexport const notFound = (): never => throwRouteNotFound()\n","import {\n applyResumeHmrUpdateToRegisteredContainers,\n createResumeContainer,\n refreshRegisteredRouteContainers,\n RESUME_FINAL_STATE_ELEMENT_ID,\n installResumeListeners,\n primeRouteModules,\n RESUME_STATE_ELEMENT_ID,\n restoreRegisteredRpcHandles,\n restoreResumedLocalSignalEffects,\n registerResumeContainer,\n type ResumePayload,\n} from './runtime.ts'\nimport {\n APP_HOOKS_ELEMENT_ID,\n registerClientHooks,\n type AppHooksManifest,\n type AppHooksModule,\n} from './hooks.ts'\nimport { RESUME_HMR_EVENT, type ResumeHmrUpdatePayload } from './resume-hmr.ts'\nimport { ROUTE_MANIFEST_ELEMENT_ID, type RouteManifest } from './router-shared.ts'\n\nconst CONTENT_HMR_EVENT = 'eclipsa:content-update'\n\ninterface ViteHotContext {\n on(event: typeof CONTENT_HMR_EVENT, listener: () => void | Promise<void>): void\n on(event: string, listener: (data: ResumeHmrUpdatePayload) => void | Promise<void>): void\n}\n\nconst getResumePayload = (doc: Document): ResumePayload | null => {\n const elem =\n doc.getElementById(RESUME_FINAL_STATE_ELEMENT_ID) ?? doc.getElementById(RESUME_STATE_ELEMENT_ID)\n if (!elem?.textContent) {\n return null\n }\n\n return JSON.parse(elem.textContent) as ResumePayload\n}\n\nconst getRouteManifest = (doc: Document): RouteManifest => {\n const elem = doc.getElementById(ROUTE_MANIFEST_ELEMENT_ID)\n if (!elem?.textContent) {\n return []\n }\n\n return JSON.parse(elem.textContent) as RouteManifest\n}\n\nconst getAppHooksManifest = (doc: Document): AppHooksManifest => {\n const elem = doc.getElementById(APP_HOOKS_ELEMENT_ID)\n if (!elem?.textContent) {\n return {\n client: null,\n }\n }\n return JSON.parse(elem.textContent) as AppHooksManifest\n}\n\nconst initResumeHmr = (hot: ViteHotContext | undefined) => {\n if (!hot) {\n return\n }\n\n hot.on(RESUME_HMR_EVENT, async (payload) => {\n const result = await applyResumeHmrUpdateToRegisteredContainers(payload)\n if (result === 'reload') {\n location.reload()\n }\n })\n hot.on(CONTENT_HMR_EVENT, async () => {\n try {\n await refreshRegisteredRouteContainers()\n } catch {\n location.reload()\n }\n })\n}\n\ninitResumeHmr((import.meta as ImportMeta & { hot?: ViteHotContext }).hot)\n\nexport const resumeContainer = async (source: Document | HTMLElement = document) => {\n const doc = source instanceof Document ? source : source.ownerDocument\n const root = source instanceof Document ? doc.body : source\n const payload = getResumePayload(doc)\n\n if (!payload) {\n return\n }\n\n const container = createResumeContainer(root, payload, {\n routeManifest: getRouteManifest(doc),\n })\n let resolveResumeReady!: () => void\n container.resumeReadyPromise = new Promise<void>((resolve) => {\n resolveResumeReady = resolve\n })\n installResumeListeners(container)\n\n try {\n const appHooksManifest = getAppHooksManifest(doc)\n if (appHooksManifest.client) {\n const module = (await import(/* @vite-ignore */ appHooksManifest.client)) as AppHooksModule\n registerClientHooks({\n reroute: module.reroute,\n transport: module.transport,\n })\n } else {\n registerClientHooks({})\n }\n\n await primeRouteModules(container)\n restoreRegisteredRpcHandles(container)\n await restoreResumedLocalSignalEffects(container)\n registerResumeContainer(container)\n root.setAttribute('data-e-resume', 'resumed')\n } finally {\n resolveResumeReady()\n container.resumeReadyPromise = null\n }\n}\n","import type { Context } from 'hono'\nimport type { JSX } from '../jsx/types.ts'\nimport { renderToString } from '../jsx/mod.ts'\nimport {\n beginAsyncSSRContainer,\n beginSSRContainer,\n collectPendingSuspenseBoundaryIds,\n getResumePayloadScriptContent,\n getStreamingResumeBootstrapScriptContent as getStreamingResumeBootstrapScriptContentFromRuntime,\n toResumePayload,\n toResumePayloadSubset,\n type ResumePayload,\n type RuntimeContainer,\n withRuntimeContainer,\n} from './runtime.ts'\n\nexport interface SSRRenderResult {\n html: string\n payload: ResumePayload\n}\n\nexport interface SSRStreamChunk {\n boundaryId: string\n html: string\n payload: ResumePayload\n}\n\nexport interface SSRStreamRenderResult extends SSRRenderResult {\n chunks: AsyncIterable<SSRStreamChunk>\n}\n\nconst collectRenderedComponentIdsFromHtml = (html: string) => {\n const ids = new Set<string>()\n const pattern = /<!--ec:c:([^:]+):start-->/g\n for (const match of html.matchAll(pattern)) {\n const id = match[1]\n if (id) {\n ids.add(id)\n }\n }\n return ids\n}\n\nconst createStreamingResumePayload = (\n container: RuntimeContainer,\n renderedComponentIds: Set<string>,\n): ResumePayload => toResumePayloadSubset(container, ['$root', ...renderedComponentIds])\n\nexport const renderSSR = (\n render: () => JSX.Element | JSX.Element[],\n options?: {\n symbols?: Record<string, string>\n },\n): SSRRenderResult => {\n const { container, result } = beginSSRContainer(options?.symbols ?? {}, render)\n return {\n html: withRuntimeContainer(container, () => renderToString(result)),\n payload: toResumePayload(container),\n }\n}\n\nexport const renderSSRAsync = async (\n render: () => JSX.Element | JSX.Element[],\n options?: {\n context?: Context<any>\n prepare?: (container: RuntimeContainer) => void | Promise<void>\n resolvePendingLoaders?: (container: RuntimeContainer) => void | Promise<boolean>\n symbols?: Record<string, string>\n },\n): Promise<SSRRenderResult> => {\n const asyncSignalSnapshotCache = new Map<string, unknown>()\n const seededLoaderStates = new Map<string, { data: unknown; error: unknown; loaded: boolean }>()\n\n for (let attempt = 0; attempt < 10; attempt += 1) {\n const { container, result } = await beginAsyncSSRContainer(\n options?.symbols ?? {},\n render,\n async (runtimeContainer) => {\n for (const [id, snapshot] of seededLoaderStates) {\n runtimeContainer.loaderStates.set(id, {\n data: snapshot.data,\n error: snapshot.error,\n loaded: snapshot.loaded,\n })\n }\n await options?.prepare?.(runtimeContainer)\n },\n {\n asyncSignalSnapshotCache,\n },\n )\n\n try {\n const html = withRuntimeContainer(container, () => renderToString(result))\n if (container.pendingSuspensePromises.size > 0) {\n await Promise.allSettled(container.pendingSuspensePromises)\n continue\n }\n asyncSignalSnapshotCache.clear()\n return {\n html,\n payload: toResumePayload(container),\n }\n } catch (error) {\n const { isPendingSsrLoaderError, resolvePendingLoaders } = await import('./loader.ts')\n if (!isPendingSsrLoaderError(error)) {\n throw error\n }\n const resolved = options?.resolvePendingLoaders\n ? await options.resolvePendingLoaders(container)\n : options?.context\n ? await resolvePendingLoaders(container, options.context)\n : false\n if (!resolved) {\n throw error\n }\n seededLoaderStates.clear()\n for (const [id, snapshot] of container.loaderStates) {\n seededLoaderStates.set(id, {\n data: snapshot.data,\n error: snapshot.error,\n loaded: snapshot.loaded,\n })\n }\n }\n }\n\n throw new Error('SSR loader resolution did not converge.')\n}\n\nconst extractBoundaryHtml = (html: string, boundaryId: string) => {\n const startToken = `<!--ec:c:${boundaryId}:start-->`\n const endToken = `<!--ec:c:${boundaryId}:end-->`\n const startIndex = html.indexOf(startToken)\n if (startIndex < 0) {\n return null\n }\n const endIndex = html.indexOf(endToken, startIndex + startToken.length)\n if (endIndex < 0) {\n return null\n }\n return html.slice(startIndex + startToken.length, endIndex)\n}\n\nconst renderStreamingAttempt = async (\n render: () => JSX.Element | JSX.Element[],\n options: {\n context?: Context<any>\n prepare?: (container: RuntimeContainer) => void | Promise<void>\n resolvePendingLoaders?: (container: RuntimeContainer) => void | Promise<boolean>\n symbols?: Record<string, string>\n },\n seededLoaderStates: Map<string, { data: unknown; error: unknown; loaded: boolean }>,\n asyncSignalSnapshotCache: Map<string, unknown>,\n): Promise<{\n container: RuntimeContainer\n html: string\n payload: ResumePayload\n pendingBoundaryIds: string[]\n}> => {\n for (let attempt = 0; attempt < 10; attempt += 1) {\n const { container, result } = await beginAsyncSSRContainer(\n options.symbols ?? {},\n render,\n async (runtimeContainer) => {\n for (const [id, snapshot] of seededLoaderStates) {\n runtimeContainer.loaderStates.set(id, {\n data: snapshot.data,\n error: snapshot.error,\n loaded: snapshot.loaded,\n })\n }\n await options.prepare?.(runtimeContainer)\n },\n {\n asyncSignalSnapshotCache,\n },\n )\n\n try {\n const html = withRuntimeContainer(container, () => renderToString(result))\n const renderedComponentIds = collectRenderedComponentIdsFromHtml(html)\n return {\n container,\n html,\n payload: createStreamingResumePayload(container, renderedComponentIds),\n pendingBoundaryIds: collectPendingSuspenseBoundaryIds(container),\n }\n } catch (error) {\n const { isPendingSsrLoaderError, resolvePendingLoaders } = await import('./loader.ts')\n if (!isPendingSsrLoaderError(error)) {\n throw error\n }\n const resolved = options.resolvePendingLoaders\n ? await options.resolvePendingLoaders(container)\n : options.context\n ? await resolvePendingLoaders(container, options.context)\n : false\n if (!resolved) {\n throw error\n }\n seededLoaderStates.clear()\n for (const [id, snapshot] of container.loaderStates) {\n seededLoaderStates.set(id, {\n data: snapshot.data,\n error: snapshot.error,\n loaded: snapshot.loaded,\n })\n }\n }\n }\n\n throw new Error('SSR loader resolution did not converge.')\n}\n\nexport const renderSSRStream = async (\n render: () => JSX.Element | JSX.Element[],\n options?: {\n context?: Context<any>\n prepare?: (container: RuntimeContainer) => void | Promise<void>\n resolvePendingLoaders?: (container: RuntimeContainer) => void | Promise<boolean>\n symbols?: Record<string, string>\n },\n): Promise<SSRStreamRenderResult> => {\n const asyncSignalSnapshotCache = new Map<string, unknown>()\n const seededLoaderStates = new Map<string, { data: unknown; error: unknown; loaded: boolean }>()\n const initial = await renderStreamingAttempt(\n render,\n options ?? {},\n seededLoaderStates,\n asyncSignalSnapshotCache,\n )\n\n if (initial.pendingBoundaryIds.length === 0) {\n asyncSignalSnapshotCache.clear()\n return {\n chunks: (async function* () {})(),\n html: initial.html,\n payload: initial.payload,\n }\n }\n\n const chunks = (async function* () {\n let current = initial\n\n try {\n while (current.pendingBoundaryIds.length > 0) {\n await Promise.race(\n current.pendingBoundaryIds.map(\n (boundaryId) =>\n current.container.components.get(boundaryId)?.suspensePromise?.then(\n () => boundaryId,\n () => boundaryId,\n ) ?? Promise.resolve(boundaryId),\n ),\n )\n\n const next = await renderStreamingAttempt(\n render,\n options ?? {},\n seededLoaderStates,\n asyncSignalSnapshotCache,\n )\n\n const nextPending = new Set(next.pendingBoundaryIds)\n const completedIds = current.pendingBoundaryIds\n .filter((boundaryId) => !nextPending.has(boundaryId))\n .sort((left, right) => left.split('.').length - right.split('.').length)\n\n for (const boundaryId of completedIds) {\n const boundaryHtml = extractBoundaryHtml(next.html, boundaryId)\n if (boundaryHtml === null) {\n continue\n }\n yield {\n boundaryId,\n html: boundaryHtml,\n payload: next.payload,\n }\n }\n\n current = next\n }\n } finally {\n asyncSignalSnapshotCache.clear()\n }\n })()\n\n return {\n chunks,\n html: initial.html,\n payload: initial.payload,\n }\n}\n\nexport const serializeResumePayload = (payload: ResumePayload) =>\n getResumePayloadScriptContent(payload)\n\nexport const getStreamingResumeBootstrapScriptContent = () =>\n getStreamingResumeBootstrapScriptContentFromRuntime()\n","import type { JSX } from '../jsx/types.ts'\nimport { registerRuntimeScopedStyle } from './runtime.ts'\n\nconst DANGEROUSLY_SET_INNER_HTML_PROP = 'dangerouslySetInnerHTML'\n\ninterface StyleElement {\n props: Record<string, unknown>\n type: 'style'\n}\n\nconst isTemplateStringsArray = (value: unknown): value is TemplateStringsArray =>\n Array.isArray(value) && Array.isArray((value as unknown as TemplateStringsArray).raw)\n\nconst isStyleElement = (value: unknown): value is StyleElement =>\n !!value &&\n typeof value === 'object' &&\n 'type' in value &&\n 'props' in value &&\n (value as StyleElement).type === 'style'\n\nconst flattenStyleText = (value: unknown): string => {\n if (Array.isArray(value)) {\n return value.map((entry) => flattenStyleText(entry)).join('')\n }\n if (value === null || value === undefined || value === false) {\n return ''\n }\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n return String(value)\n }\n throw new TypeError('useStyleScoped() only accepts text children inside <style>.')\n}\n\nconst resolveTaggedTemplateCss = (strings: TemplateStringsArray, values: unknown[]) =>\n strings.reduce(\n (result, segment, index) =>\n result + segment + (index < values.length ? String(values[index]) : ''),\n '',\n )\n\nconst resolveStyleInput = (\n value: JSX.Element | string,\n): {\n attributes: Record<string, unknown>\n cssText: string\n} => {\n if (typeof value === 'string') {\n return {\n attributes: {},\n cssText: value,\n }\n }\n\n if (!isStyleElement(value)) {\n throw new TypeError(\n 'useStyleScoped() expects a CSS string, a tagged template literal, or a <style> element.',\n )\n }\n\n const attributes = { ...value.props }\n const innerHTML = attributes[DANGEROUSLY_SET_INNER_HTML_PROP]\n delete attributes.children\n delete attributes[DANGEROUSLY_SET_INNER_HTML_PROP]\n\n return {\n attributes,\n cssText:\n innerHTML !== undefined\n ? flattenStyleText(innerHTML)\n : flattenStyleText(value.props.children),\n }\n}\n\nexport function useStyleScoped(strings: TemplateStringsArray, ...values: unknown[]): void\nexport function useStyleScoped(value: JSX.Element | string): void\nexport function useStyleScoped(\n input: JSX.Element | string | TemplateStringsArray,\n ...values: unknown[]\n): void {\n const resolved = isTemplateStringsArray(input)\n ? {\n attributes: {},\n cssText: resolveTaggedTemplateCss(input, values),\n }\n : resolveStyleInput(input)\n\n registerRuntimeScopedStyle(resolved.cssText, resolved.attributes)\n}\n","import type { JSX } from '../../jsx/jsx-runtime.ts'\n\ntype Key = string | number | symbol\ntype ShowBranch<T> = JSX.Element | ((value: T) => JSX.Element)\n\ninterface ForValue<T> {\n __e_for: true\n arr: readonly T[]\n fallback?: JSX.Element\n fn: (e: T, i: number) => JSX.Element\n key?: (e: T, i: number) => Key\n}\n\ninterface ShowValue<T> {\n __e_show: true\n children: ShowBranch<T>\n fallback?: ShowBranch<T>\n when: T\n}\n\nexport const For = <T>(props: {\n arr: readonly T[]\n fallback?: JSX.Element\n fn: (e: T, i: number) => JSX.Element\n key?: (e: T, i: number) => Key\n}) =>\n ({\n __e_for: true,\n arr: props.arr,\n fallback: props.fallback,\n fn: props.fn,\n key: props.key,\n }) as ForValue<T> as unknown as JSX.Element\n\nexport const Show = <T>(props: { children: ShowBranch<T>; fallback?: ShowBranch<T>; when: T }) =>\n ({\n __e_show: true,\n children: props.children,\n fallback: props.fallback,\n when: props.when,\n }) as ShowValue<T> as unknown as JSX.Element\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mod.mjs","names":["throwRouteNotFound","getStreamingResumeBootstrapScriptContentFromRuntime"],"sources":["../core/env.ts","../core/router.tsx","../core/resume.ts","../core/ssr.ts","../core/style.ts","../core/flow/mod.ts"],"sourcesContent":["export const IS_BROWSER = typeof window !== 'undefined' && typeof document !== 'undefined'\n\nexport const IS_SSR = !IS_BROWSER\n","import type { JSX } from '../jsx/types.ts'\nimport {\n ROUTE_LINK_ATTR,\n ROUTE_PREFETCH_ATTR,\n ROUTE_REPLACE_ATTR,\n type LinkPrefetchMode,\n type Navigate,\n type RouteLocation,\n type RouteParams,\n} from './router-shared.ts'\nimport {\n notFound as throwRouteNotFound,\n useRuntimeLocation,\n useRuntimeRouteError,\n useRuntimeNavigate,\n useRuntimeRouteParams,\n} from './runtime.ts'\n\nexport interface LinkProps extends Record<string, unknown> {\n children?: JSX.Element | JSX.Element[]\n href: string\n prefetch?: LinkPrefetchMode | boolean\n reloadDocument?: boolean\n replace?: boolean\n}\n\nexport const Link = (props: LinkProps) => {\n const reloadDocument = props.reloadDocument === true\n const prefetchMode =\n props.prefetch === undefined\n ? undefined\n : props.prefetch === true\n ? 'intent'\n : props.prefetch === false\n ? 'none'\n : props.prefetch\n\n const nextProps: Record<string, unknown> = {\n ...props,\n }\n\n if (!reloadDocument) {\n nextProps[ROUTE_LINK_ATTR] = ''\n if (prefetchMode) {\n nextProps[ROUTE_PREFETCH_ATTR] = prefetchMode\n }\n if (props.replace) {\n nextProps[ROUTE_REPLACE_ATTR] = 'true'\n }\n }\n delete nextProps.prefetch\n delete nextProps.reloadDocument\n delete nextProps.replace\n\n return {\n isStatic: true,\n props: nextProps,\n type: 'a',\n } satisfies JSX.Element\n}\n\nexport const useNavigate = (): Navigate => useRuntimeNavigate()\n\nexport const useLocation = (): RouteLocation => useRuntimeLocation()\n\nexport const useRouteParams = (): RouteParams => useRuntimeRouteParams()\n\nexport const useRouteError = <T = unknown>(): T | undefined =>\n useRuntimeRouteError() as T | undefined\n\nexport const notFound = (): never => throwRouteNotFound()\n","import {\n applyResumeHmrUpdateToRegisteredContainers,\n createResumeContainer,\n refreshRegisteredRouteContainers,\n RESUME_FINAL_STATE_ELEMENT_ID,\n installResumeListeners,\n primeRouteModules,\n RESUME_STATE_ELEMENT_ID,\n restoreRegisteredRpcHandles,\n restoreResumedLocalSignalEffects,\n registerResumeContainer,\n type ResumePayload,\n} from './runtime.ts'\nimport {\n APP_HOOKS_ELEMENT_ID,\n registerClientHooks,\n type AppHooksManifest,\n type AppHooksModule,\n} from './hooks.ts'\nimport { RESUME_HMR_EVENT, type ResumeHmrUpdatePayload } from './resume-hmr.ts'\nimport { ROUTE_MANIFEST_ELEMENT_ID, type RouteManifest } from './router-shared.ts'\n\nconst CONTENT_HMR_EVENT = 'eclipsa:content-update'\n\ninterface ViteHotContext {\n on(event: typeof CONTENT_HMR_EVENT, listener: () => void | Promise<void>): void\n on(event: string, listener: (data: ResumeHmrUpdatePayload) => void | Promise<void>): void\n}\n\nconst getResumePayload = (doc: Document): ResumePayload | null => {\n const elem =\n doc.getElementById(RESUME_FINAL_STATE_ELEMENT_ID) ?? doc.getElementById(RESUME_STATE_ELEMENT_ID)\n if (!elem?.textContent) {\n return null\n }\n\n return JSON.parse(elem.textContent) as ResumePayload\n}\n\nconst getRouteManifest = (doc: Document): RouteManifest => {\n const elem = doc.getElementById(ROUTE_MANIFEST_ELEMENT_ID)\n if (!elem?.textContent) {\n return []\n }\n\n return JSON.parse(elem.textContent) as RouteManifest\n}\n\nconst getAppHooksManifest = (doc: Document): AppHooksManifest => {\n const elem = doc.getElementById(APP_HOOKS_ELEMENT_ID)\n if (!elem?.textContent) {\n return {\n client: null,\n }\n }\n return JSON.parse(elem.textContent) as AppHooksManifest\n}\n\nconst initResumeHmr = (hot: ViteHotContext | undefined) => {\n if (!hot) {\n return\n }\n\n hot.on(RESUME_HMR_EVENT, async (payload) => {\n const result = await applyResumeHmrUpdateToRegisteredContainers(payload)\n if (result === 'reload') {\n location.reload()\n }\n })\n hot.on(CONTENT_HMR_EVENT, async () => {\n try {\n await refreshRegisteredRouteContainers()\n } catch {\n location.reload()\n }\n })\n}\n\ninitResumeHmr((import.meta as ImportMeta & { hot?: ViteHotContext }).hot)\n\nexport const resumeContainer = async (source: Document | HTMLElement = document) => {\n const doc = source instanceof Document ? source : source.ownerDocument\n const root = source instanceof Document ? doc.body : source\n const payload = getResumePayload(doc)\n\n if (!payload) {\n return\n }\n\n const container = createResumeContainer(root, payload, {\n routeManifest: getRouteManifest(doc),\n })\n let resolveResumeReady!: () => void\n container.resumeReadyPromise = new Promise<void>((resolve) => {\n resolveResumeReady = resolve\n })\n installResumeListeners(container)\n\n try {\n const appHooksManifest = getAppHooksManifest(doc)\n if (appHooksManifest.client) {\n const module = (await import(/* @vite-ignore */ appHooksManifest.client)) as AppHooksModule\n registerClientHooks({\n reroute: module.reroute,\n transport: module.transport,\n })\n } else {\n registerClientHooks({})\n }\n\n await primeRouteModules(container)\n restoreRegisteredRpcHandles(container)\n await restoreResumedLocalSignalEffects(container)\n registerResumeContainer(container)\n root.setAttribute('data-e-resume', 'resumed')\n } finally {\n resolveResumeReady()\n container.resumeReadyPromise = null\n }\n}\n","import type { Context } from 'hono'\nimport type { JSX } from '../jsx/types.ts'\nimport { renderToString } from '../jsx/mod.ts'\nimport {\n beginAsyncSSRContainer,\n beginSSRContainer,\n collectPendingSuspenseBoundaryIds,\n getResumePayloadScriptContent,\n getStreamingResumeBootstrapScriptContent as getStreamingResumeBootstrapScriptContentFromRuntime,\n toResumePayload,\n toResumePayloadSubset,\n type ResumePayload,\n type RuntimeContainer,\n withRuntimeContainer,\n} from './runtime.ts'\n\nexport interface SSRRenderResult {\n html: string\n payload: ResumePayload\n}\n\nexport interface SSRStreamChunk {\n boundaryId: string\n html: string\n payload: ResumePayload\n}\n\nexport interface SSRStreamRenderResult extends SSRRenderResult {\n chunks: AsyncIterable<SSRStreamChunk>\n}\n\nconst collectRenderedComponentIdsFromHtml = (html: string) => {\n const ids = new Set<string>()\n const pattern = /<!--ec:c:([^:]+):start-->/g\n for (const match of html.matchAll(pattern)) {\n const id = match[1]\n if (id) {\n ids.add(id)\n }\n }\n return ids\n}\n\nconst createStreamingResumePayload = (\n container: RuntimeContainer,\n renderedComponentIds: Set<string>,\n): ResumePayload => toResumePayloadSubset(container, ['$root', ...renderedComponentIds])\n\nexport const renderSSR = (\n render: () => JSX.Element | JSX.Element[],\n options?: {\n symbols?: Record<string, string>\n },\n): SSRRenderResult => {\n const { container, result } = beginSSRContainer(options?.symbols ?? {}, render)\n return {\n html: withRuntimeContainer(container, () => renderToString(result)),\n payload: toResumePayload(container),\n }\n}\n\nexport const renderSSRAsync = async (\n render: () => JSX.Element | JSX.Element[],\n options?: {\n context?: Context<any>\n prepare?: (container: RuntimeContainer) => void | Promise<void>\n resolvePendingLoaders?: (container: RuntimeContainer) => void | Promise<boolean>\n symbols?: Record<string, string>\n },\n): Promise<SSRRenderResult> => {\n const asyncSignalSnapshotCache = new Map<string, unknown>()\n const seededLoaderStates = new Map<string, { data: unknown; error: unknown; loaded: boolean }>()\n\n for (let attempt = 0; attempt < 10; attempt += 1) {\n const { container, result } = await beginAsyncSSRContainer(\n options?.symbols ?? {},\n render,\n async (runtimeContainer) => {\n for (const [id, snapshot] of seededLoaderStates) {\n runtimeContainer.loaderStates.set(id, {\n data: snapshot.data,\n error: snapshot.error,\n loaded: snapshot.loaded,\n })\n }\n await options?.prepare?.(runtimeContainer)\n },\n {\n asyncSignalSnapshotCache,\n },\n )\n\n try {\n const html = withRuntimeContainer(container, () => renderToString(result))\n if (container.pendingSuspensePromises.size > 0) {\n await Promise.allSettled(container.pendingSuspensePromises)\n continue\n }\n asyncSignalSnapshotCache.clear()\n return {\n html,\n payload: toResumePayload(container),\n }\n } catch (error) {\n const { isPendingSsrLoaderError, resolvePendingLoaders } = await import('./loader.ts')\n if (!isPendingSsrLoaderError(error)) {\n throw error\n }\n const resolved = options?.resolvePendingLoaders\n ? await options.resolvePendingLoaders(container)\n : options?.context\n ? await resolvePendingLoaders(container, options.context)\n : false\n if (!resolved) {\n throw error\n }\n seededLoaderStates.clear()\n for (const [id, snapshot] of container.loaderStates) {\n seededLoaderStates.set(id, {\n data: snapshot.data,\n error: snapshot.error,\n loaded: snapshot.loaded,\n })\n }\n }\n }\n\n throw new Error('SSR loader resolution did not converge.')\n}\n\nconst extractBoundaryHtml = (html: string, boundaryId: string) => {\n const startToken = `<!--ec:c:${boundaryId}:start-->`\n const endToken = `<!--ec:c:${boundaryId}:end-->`\n const startIndex = html.indexOf(startToken)\n if (startIndex < 0) {\n return null\n }\n const endIndex = html.indexOf(endToken, startIndex + startToken.length)\n if (endIndex < 0) {\n return null\n }\n return html.slice(startIndex + startToken.length, endIndex)\n}\n\nconst renderStreamingAttempt = async (\n render: () => JSX.Element | JSX.Element[],\n options: {\n context?: Context<any>\n prepare?: (container: RuntimeContainer) => void | Promise<void>\n resolvePendingLoaders?: (container: RuntimeContainer) => void | Promise<boolean>\n symbols?: Record<string, string>\n },\n seededLoaderStates: Map<string, { data: unknown; error: unknown; loaded: boolean }>,\n asyncSignalSnapshotCache: Map<string, unknown>,\n): Promise<{\n container: RuntimeContainer\n html: string\n payload: ResumePayload\n pendingBoundaryIds: string[]\n}> => {\n for (let attempt = 0; attempt < 10; attempt += 1) {\n const { container, result } = await beginAsyncSSRContainer(\n options.symbols ?? {},\n render,\n async (runtimeContainer) => {\n for (const [id, snapshot] of seededLoaderStates) {\n runtimeContainer.loaderStates.set(id, {\n data: snapshot.data,\n error: snapshot.error,\n loaded: snapshot.loaded,\n })\n }\n await options.prepare?.(runtimeContainer)\n },\n {\n asyncSignalSnapshotCache,\n },\n )\n\n try {\n const html = withRuntimeContainer(container, () => renderToString(result))\n const renderedComponentIds = collectRenderedComponentIdsFromHtml(html)\n return {\n container,\n html,\n payload: createStreamingResumePayload(container, renderedComponentIds),\n pendingBoundaryIds: collectPendingSuspenseBoundaryIds(container),\n }\n } catch (error) {\n const { isPendingSsrLoaderError, resolvePendingLoaders } = await import('./loader.ts')\n if (!isPendingSsrLoaderError(error)) {\n throw error\n }\n const resolved = options.resolvePendingLoaders\n ? await options.resolvePendingLoaders(container)\n : options.context\n ? await resolvePendingLoaders(container, options.context)\n : false\n if (!resolved) {\n throw error\n }\n seededLoaderStates.clear()\n for (const [id, snapshot] of container.loaderStates) {\n seededLoaderStates.set(id, {\n data: snapshot.data,\n error: snapshot.error,\n loaded: snapshot.loaded,\n })\n }\n }\n }\n\n throw new Error('SSR loader resolution did not converge.')\n}\n\nexport const renderSSRStream = async (\n render: () => JSX.Element | JSX.Element[],\n options?: {\n context?: Context<any>\n prepare?: (container: RuntimeContainer) => void | Promise<void>\n resolvePendingLoaders?: (container: RuntimeContainer) => void | Promise<boolean>\n symbols?: Record<string, string>\n },\n): Promise<SSRStreamRenderResult> => {\n const asyncSignalSnapshotCache = new Map<string, unknown>()\n const seededLoaderStates = new Map<string, { data: unknown; error: unknown; loaded: boolean }>()\n const initial = await renderStreamingAttempt(\n render,\n options ?? {},\n seededLoaderStates,\n asyncSignalSnapshotCache,\n )\n\n if (initial.pendingBoundaryIds.length === 0) {\n asyncSignalSnapshotCache.clear()\n return {\n chunks: (async function* () {})(),\n html: initial.html,\n payload: initial.payload,\n }\n }\n\n const chunks = (async function* () {\n let current = initial\n\n try {\n while (current.pendingBoundaryIds.length > 0) {\n await Promise.race(\n current.pendingBoundaryIds.map(\n (boundaryId) =>\n current.container.components.get(boundaryId)?.suspensePromise?.then(\n () => boundaryId,\n () => boundaryId,\n ) ?? Promise.resolve(boundaryId),\n ),\n )\n\n const next = await renderStreamingAttempt(\n render,\n options ?? {},\n seededLoaderStates,\n asyncSignalSnapshotCache,\n )\n\n const nextPending = new Set(next.pendingBoundaryIds)\n const completedIds = current.pendingBoundaryIds\n .filter((boundaryId) => !nextPending.has(boundaryId))\n .sort((left, right) => left.split('.').length - right.split('.').length)\n\n for (const boundaryId of completedIds) {\n const boundaryHtml = extractBoundaryHtml(next.html, boundaryId)\n if (boundaryHtml === null) {\n continue\n }\n yield {\n boundaryId,\n html: boundaryHtml,\n payload: next.payload,\n }\n }\n\n current = next\n }\n } finally {\n asyncSignalSnapshotCache.clear()\n }\n })()\n\n return {\n chunks,\n html: initial.html,\n payload: initial.payload,\n }\n}\n\nexport const serializeResumePayload = (payload: ResumePayload) =>\n getResumePayloadScriptContent(payload)\n\nexport const getStreamingResumeBootstrapScriptContent = () =>\n getStreamingResumeBootstrapScriptContentFromRuntime()\n","import type { JSX } from '../jsx/types.ts'\nimport { registerRuntimeScopedStyle } from './runtime.ts'\n\nconst DANGEROUSLY_SET_INNER_HTML_PROP = 'dangerouslySetInnerHTML'\n\ninterface StyleElement {\n props: Record<string, unknown>\n type: 'style'\n}\n\nconst isTemplateStringsArray = (value: unknown): value is TemplateStringsArray =>\n Array.isArray(value) && Array.isArray((value as unknown as TemplateStringsArray).raw)\n\nconst isStyleElement = (value: unknown): value is StyleElement =>\n !!value &&\n typeof value === 'object' &&\n 'type' in value &&\n 'props' in value &&\n (value as StyleElement).type === 'style'\n\nconst flattenStyleText = (value: unknown): string => {\n if (Array.isArray(value)) {\n return value.map((entry) => flattenStyleText(entry)).join('')\n }\n if (value === null || value === undefined || value === false) {\n return ''\n }\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n return String(value)\n }\n throw new TypeError('useStyleScoped() only accepts text children inside <style>.')\n}\n\nconst resolveTaggedTemplateCss = (strings: TemplateStringsArray, values: unknown[]) =>\n strings.reduce(\n (result, segment, index) =>\n result + segment + (index < values.length ? String(values[index]) : ''),\n '',\n )\n\nconst resolveStyleInput = (\n value: JSX.Element | string,\n): {\n attributes: Record<string, unknown>\n cssText: string\n} => {\n if (typeof value === 'string') {\n return {\n attributes: {},\n cssText: value,\n }\n }\n\n if (!isStyleElement(value)) {\n throw new TypeError(\n 'useStyleScoped() expects a CSS string, a tagged template literal, or a <style> element.',\n )\n }\n\n const attributes = { ...value.props }\n const innerHTML = attributes[DANGEROUSLY_SET_INNER_HTML_PROP]\n delete attributes.children\n delete attributes[DANGEROUSLY_SET_INNER_HTML_PROP]\n\n return {\n attributes,\n cssText:\n innerHTML !== undefined\n ? flattenStyleText(innerHTML)\n : flattenStyleText(value.props.children),\n }\n}\n\nexport function useStyleScoped(strings: TemplateStringsArray, ...values: unknown[]): void\nexport function useStyleScoped(value: JSX.Element | string): void\nexport function useStyleScoped(\n input: JSX.Element | string | TemplateStringsArray,\n ...values: unknown[]\n): void {\n const resolved = isTemplateStringsArray(input)\n ? {\n attributes: {},\n cssText: resolveTaggedTemplateCss(input, values),\n }\n : resolveStyleInput(input)\n\n registerRuntimeScopedStyle(resolved.cssText, resolved.attributes)\n}\n","import type { JSX } from '../../jsx/jsx-runtime.ts'\n\ntype Key = string | number | symbol\ntype ShowBranch<T> = JSX.Element | ((value: T) => JSX.Element)\n\ninterface ForValue<T> {\n __e_for: true\n arr: readonly T[]\n fallback?: JSX.Element\n fn: (e: T, i: number) => JSX.Element\n key?: (e: T, i: number) => Key\n}\n\ninterface ShowValue<T> {\n __e_show: true\n children: ShowBranch<T>\n fallback?: ShowBranch<T>\n when: T\n}\n\nexport const For = <T>(props: {\n arr: readonly T[]\n fallback?: JSX.Element\n fn: (e: T, i: number) => JSX.Element\n key?: (e: T, i: number) => Key\n}) =>\n ({\n __e_for: true,\n arr: props.arr,\n fallback: props.fallback,\n fn: props.fn,\n key: props.key,\n }) as ForValue<T> as unknown as JSX.Element\n\nexport const Show = <T>(props: { children: ShowBranch<T>; fallback?: ShowBranch<T>; when: T }) =>\n ({\n __e_show: true,\n children: props.children,\n fallback: props.fallback,\n when: props.when,\n }) as ShowValue<T> as unknown as JSX.Element\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eclipsa",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"homepage": "https://github.com/pnsk-lab/eclipsa",
|
|
5
5
|
"bugs": {
|
|
6
6
|
"url": "https://github.com/pnsk-lab/eclipsa/issues"
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
}
|
|
60
60
|
},
|
|
61
61
|
"dependencies": {
|
|
62
|
-
"@eclipsa/optimizer": "^0.1.
|
|
62
|
+
"@eclipsa/optimizer": "^0.1.4",
|
|
63
63
|
"fast-glob": "^3.3.2",
|
|
64
64
|
"hono": "^4.6.4"
|
|
65
65
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resume-hmr-
|
|
1
|
+
{"version":3,"file":"resume-hmr-qTpLc5o-.mjs","names":[],"sources":["../core/resume-hmr.ts"],"sourcesContent":["export const RESUME_HMR_EVENT = 'eclipsa:resume-update'\n\nexport interface ResumeHmrUpdatePayload {\n fileUrl: string\n fullReload: boolean\n rerenderComponentSymbols: string[]\n rerenderOwnerSymbols: string[]\n symbolUrlReplacements: Record<string, string>\n}\n"],"mappings":";AAAA,MAAa,mBAAmB"}
|
|
@@ -19,4 +19,4 @@ declare const useComputed: <T>(fn: () => T | Promise<T>, dependencies?: WatchDep
|
|
|
19
19
|
declare const useComputed$: <T>(fn: () => T | Promise<T>, dependencies?: WatchDependency[]) => Signal<T>;
|
|
20
20
|
//#endregion
|
|
21
21
|
export { onMount as a, useComputed as c, useWatch as d, onCleanup as i, useComputed$ as l, WatchDependency as n, onVisible as o, effect as r, signal as s, Signal as t, useSignal as u };
|
|
22
|
-
//# sourceMappingURL=signal-
|
|
22
|
+
//# sourceMappingURL=signal-B7AfIKrr.d.mts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as createWatch, D as createOnVisible, E as createOnMount, N as getRuntimeContainer, P as getRuntimeSignalId, T as createOnCleanup, V as readAsyncSignalSnapshot,
|
|
1
|
+
import { A as createWatch, D as createOnVisible, E as createOnMount, N as getRuntimeContainer, P as getRuntimeSignalId, T as createOnCleanup, V as readAsyncSignalSnapshot, _n as isPendingSignalError, dt as useRuntimeSignal, gn as createPendingSignalError, k as createStandaloneRuntimeSignal, pt as writeAsyncSignalSnapshot, w as createEffect } from "./action-CgM3EJUS.mjs";
|
|
2
2
|
//#region core/signal.ts
|
|
3
3
|
const isPromiseLike = (value) => !!value && typeof value === "object" && "then" in value && typeof value.then === "function";
|
|
4
4
|
const isComputedSnapshot = (value) => !!value && typeof value === "object" && value.__e_async_computed === true;
|
|
@@ -105,4 +105,4 @@ const useComputed$ = useComputed;
|
|
|
105
105
|
//#endregion
|
|
106
106
|
export { signal as a, useSignal as c, onVisible as i, useWatch as l, onCleanup as n, useComputed as o, onMount as r, useComputed$ as s, effect as t };
|
|
107
107
|
|
|
108
|
-
//# sourceMappingURL=signal-
|
|
108
|
+
//# sourceMappingURL=signal-CJtquEfo.mjs.map
|