fibrae 0.2.3 → 0.3.1

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.
Files changed (138) hide show
  1. package/dist/atom-utils.d.ts +52 -0
  2. package/dist/atom-utils.js +64 -0
  3. package/dist/atom-utils.js.map +1 -0
  4. package/dist/cli/build.d.ts +34 -0
  5. package/dist/cli/build.js +92 -0
  6. package/dist/cli/build.js.map +1 -0
  7. package/dist/cli/cli.d.ts +10 -0
  8. package/dist/cli/cli.js +43 -0
  9. package/dist/cli/cli.js.map +1 -0
  10. package/dist/cli/config.d.ts +19 -0
  11. package/dist/cli/config.js +5 -0
  12. package/dist/cli/config.js.map +1 -0
  13. package/dist/cli/html.d.ts +19 -0
  14. package/dist/cli/html.js +95 -0
  15. package/dist/cli/html.js.map +1 -0
  16. package/dist/cli/index.d.ts +6 -0
  17. package/dist/cli/index.js +4 -0
  18. package/dist/cli/index.js.map +1 -0
  19. package/dist/cli/vite-plugin.d.ts +9 -0
  20. package/dist/cli/vite-plugin.js +143 -0
  21. package/dist/cli/vite-plugin.js.map +1 -0
  22. package/dist/components.d.ts +28 -30
  23. package/dist/components.js +35 -53
  24. package/dist/components.js.map +1 -1
  25. package/dist/core.js +7 -10
  26. package/dist/core.js.map +1 -1
  27. package/dist/dom.d.ts +25 -6
  28. package/dist/dom.js +161 -27
  29. package/dist/dom.js.map +1 -1
  30. package/dist/fiber-boundary.d.ts +39 -0
  31. package/dist/fiber-boundary.js +151 -0
  32. package/dist/fiber-boundary.js.map +1 -0
  33. package/dist/fiber-commit.d.ts +27 -0
  34. package/dist/fiber-commit.js +247 -0
  35. package/dist/fiber-commit.js.map +1 -0
  36. package/dist/fiber-render.d.ts +9 -9
  37. package/dist/fiber-render.js +165 -958
  38. package/dist/fiber-render.js.map +1 -1
  39. package/dist/fiber-tree.d.ts +77 -0
  40. package/dist/fiber-tree.js +152 -0
  41. package/dist/fiber-tree.js.map +1 -0
  42. package/dist/fiber-update.d.ts +46 -0
  43. package/dist/fiber-update.js +521 -0
  44. package/dist/fiber-update.js.map +1 -0
  45. package/dist/h.js.map +1 -1
  46. package/dist/index.d.ts +3 -2
  47. package/dist/index.js +4 -2
  48. package/dist/index.js.map +1 -1
  49. package/dist/jsx-runtime/index.d.ts +368 -2
  50. package/dist/live/atom.d.ts +31 -0
  51. package/dist/live/atom.js +33 -0
  52. package/dist/live/atom.js.map +1 -0
  53. package/dist/live/client.d.ts +50 -0
  54. package/dist/live/client.js +90 -0
  55. package/dist/live/client.js.map +1 -0
  56. package/dist/live/codec.d.ts +39 -0
  57. package/dist/live/codec.js +41 -0
  58. package/dist/live/codec.js.map +1 -0
  59. package/dist/live/config.d.ts +13 -0
  60. package/dist/live/config.js +11 -0
  61. package/dist/live/config.js.map +1 -0
  62. package/dist/live/index.d.ts +25 -0
  63. package/dist/live/index.js +19 -0
  64. package/dist/live/index.js.map +1 -0
  65. package/dist/live/server.d.ts +83 -0
  66. package/dist/live/server.js +106 -0
  67. package/dist/live/server.js.map +1 -0
  68. package/dist/live/sse-stream.d.ts +14 -0
  69. package/dist/live/sse-stream.js +30 -0
  70. package/dist/live/sse-stream.js.map +1 -0
  71. package/dist/live/types.d.ts +40 -0
  72. package/dist/live/types.js +20 -0
  73. package/dist/live/types.js.map +1 -0
  74. package/dist/mdx/index.d.ts +125 -0
  75. package/dist/mdx/index.js +137 -0
  76. package/dist/mdx/index.js.map +1 -0
  77. package/dist/mdx/parse.d.ts +42 -0
  78. package/dist/mdx/parse.js +147 -0
  79. package/dist/mdx/parse.js.map +1 -0
  80. package/dist/mdx/render.d.ts +23 -0
  81. package/dist/mdx/render.js +263 -0
  82. package/dist/mdx/render.js.map +1 -0
  83. package/dist/router/Form.d.ts +90 -0
  84. package/dist/router/Form.js +166 -0
  85. package/dist/router/Form.js.map +1 -0
  86. package/dist/router/History.d.ts +4 -9
  87. package/dist/router/History.js +0 -8
  88. package/dist/router/History.js.map +1 -1
  89. package/dist/router/Link.d.ts +27 -28
  90. package/dist/router/Link.js +50 -119
  91. package/dist/router/Link.js.map +1 -1
  92. package/dist/router/Navigator.d.ts +25 -33
  93. package/dist/router/Navigator.js +41 -149
  94. package/dist/router/Navigator.js.map +1 -1
  95. package/dist/router/Route.d.ts +24 -7
  96. package/dist/router/Route.js +42 -27
  97. package/dist/router/Route.js.map +1 -1
  98. package/dist/router/Router.d.ts +27 -19
  99. package/dist/router/Router.js +112 -120
  100. package/dist/router/Router.js.map +1 -1
  101. package/dist/router/RouterBuilder.d.ts +171 -36
  102. package/dist/router/RouterBuilder.js +101 -39
  103. package/dist/router/RouterBuilder.js.map +1 -1
  104. package/dist/router/RouterOutlet.d.ts +1 -18
  105. package/dist/router/RouterOutlet.js +60 -48
  106. package/dist/router/RouterOutlet.js.map +1 -1
  107. package/dist/router/RouterState.d.ts +1 -1
  108. package/dist/router/index.d.ts +8 -5
  109. package/dist/router/index.js +6 -3
  110. package/dist/router/index.js.map +1 -1
  111. package/dist/router/register.d.ts +37 -0
  112. package/dist/router/register.js +18 -0
  113. package/dist/router/register.js.map +1 -0
  114. package/dist/router/utils.d.ts +36 -0
  115. package/dist/router/utils.js +48 -0
  116. package/dist/router/utils.js.map +1 -0
  117. package/dist/runtime.d.ts +11 -8
  118. package/dist/runtime.js +20 -2
  119. package/dist/runtime.js.map +1 -1
  120. package/dist/server.d.ts +2 -2
  121. package/dist/server.js +15 -29
  122. package/dist/server.js.map +1 -1
  123. package/dist/shared.d.ts +61 -62
  124. package/dist/shared.js +51 -13
  125. package/dist/shared.js.map +1 -1
  126. package/dist/tracking.d.ts +4 -3
  127. package/dist/tracking.js +6 -1
  128. package/dist/tracking.js.map +1 -1
  129. package/package.json +45 -7
  130. package/dist/hydration.d.ts +0 -30
  131. package/dist/hydration.js +0 -355
  132. package/dist/hydration.js.map +0 -1
  133. package/dist/render.d.ts +0 -19
  134. package/dist/render.js +0 -285
  135. package/dist/render.js.map +0 -1
  136. package/dist/scope-utils.d.ts +0 -14
  137. package/dist/scope-utils.js +0 -29
  138. package/dist/scope-utils.js.map +0 -1
package/dist/hydration.js DELETED
@@ -1,355 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import * as Stream from "effect/Stream";
3
- import * as Sink from "effect/Sink";
4
- import * as Scope from "effect/Scope";
5
- import * as Exit from "effect/Exit";
6
- import * as Ref from "effect/Ref";
7
- import * as Option from "effect/Option";
8
- import * as Context from "effect/Context";
9
- import * as FiberRef from "effect/FiberRef";
10
- import { Atom, Registry as AtomRegistry } from "@effect-atom/atom";
11
- import { HydrationMismatch, RenderError } from "./shared.js";
12
- import { FibraeRuntime, runForkWithRuntime } from "./runtime.js";
13
- import { attachEventListeners } from "./dom.js";
14
- import { normalizeToStream, makeTrackingRegistry, subscribeToAtoms } from "./tracking.js";
15
- import { clearContentScope, registerNodeCleanup } from "./scope-utils.js";
16
- import { ErrorBoundaryChannel } from "./components.js";
17
- import { renderVElementToDOM } from "./render.js";
18
- // =============================================================================
19
- // Type Guards
20
- // =============================================================================
21
- const isFunctionComponent = (type) => typeof type === "function";
22
- const isHostElement = (type) => typeof type === "string";
23
- // =============================================================================
24
- // Hydration Helpers
25
- // =============================================================================
26
- /**
27
- * Build a human-readable path for hydration error messages.
28
- * Example: "div > ul > li:2" means the 3rd li inside ul inside div
29
- */
30
- const buildPath = (ancestors) => {
31
- if (ancestors.length === 0)
32
- return "root";
33
- return ancestors.map(({ tag, index }) => (index > 0 ? `${tag}:${index}` : tag)).join(" > ");
34
- };
35
- // =============================================================================
36
- // Hydration Implementation
37
- // =============================================================================
38
- /**
39
- * Hydrate a VElement tree by walking existing DOM nodes.
40
- *
41
- * This function:
42
- * - Matches VElement tree to existing DOM nodes positionally
43
- * - Attaches event handlers to existing elements
44
- * - Sets up atom subscriptions for reactivity
45
- * - Throws HydrationMismatch on structural mismatches
46
- * - Tolerates text/attribute differences (DOM wins)
47
- *
48
- * Uses cursor-based hydration: returns the next DOM sibling to process,
49
- * or None if no more siblings. This allows Suspense boundaries to
50
- * consume multiple DOM nodes (markers + content).
51
- *
52
- * @param vElement - Virtual element to hydrate
53
- * @param domNode - Existing DOM node to hydrate against
54
- * @param runtime - Fibrae runtime instance
55
- * @param parentScope - Optional scope for registering cleanup
56
- * @param path - Ancestor path for error messages
57
- * @returns Option containing the next sibling node after what was consumed
58
- */
59
- export const hydrateVElementToDOM = (vElement, domNode, runtime, parentScope, path = []) => Effect.gen(function* () {
60
- const type = vElement.type;
61
- if (isFunctionComponent(type)) {
62
- // Function component - during hydration, the component's output maps directly to domNode
63
- // (SSR doesn't create wrapper spans - it renders component output directly)
64
- // Component scope - for atom subscriptions and stream subscriptions
65
- const componentScope = yield* Scope.make();
66
- // Content scope ref - for rendered children
67
- const initialContentScope = yield* Scope.make();
68
- const contentScopeRef = yield* Ref.make(initialContentScope);
69
- const accessedAtoms = new Set();
70
- const trackingRegistry = makeTrackingRegistry(runtime.registry, accessedAtoms);
71
- // Capture current runtime context
72
- const currentContext = yield* FiberRef.get(FiberRef.currentContext);
73
- const contextWithTracking = Context.add(currentContext, AtomRegistry.AtomRegistry, trackingRegistry);
74
- // Invoke component - catch sync errors and convert to HydrationMismatch
75
- const outputResult = yield* Effect.try({
76
- try: () => type(vElement.props),
77
- catch: (e) => new HydrationMismatch({
78
- expected: "component to render",
79
- actual: `error: ${String(e)}`,
80
- path: buildPath(path),
81
- }),
82
- });
83
- // Normalize to stream and get first value
84
- const stream = normalizeToStream(outputResult).pipe(Stream.provideContext(contextWithTracking));
85
- const peelResult = yield* Effect.either(Effect.gen(function* () {
86
- const [maybeFirst, remainingStream] = yield* Stream.peel(stream, Sink.head()).pipe(Effect.provideService(Scope.Scope, componentScope));
87
- if (Option.isNone(maybeFirst)) {
88
- return { rendered: false };
89
- }
90
- // Hydrate the component's output DIRECTLY against domNode
91
- // (not against wrapper's children - SSR doesn't create wrapper spans)
92
- yield* hydrateVElementToDOM(maybeFirst.value, domNode, runtime, yield* Ref.get(contentScopeRef), path);
93
- // Register the hydrated DOM node for cleanup
94
- // When the content scope closes (on re-render), this node will be removed
95
- yield* registerNodeCleanup(domNode, yield* Ref.get(contentScopeRef));
96
- // Get parent for re-renders (we'll need to replace domNode on updates)
97
- const parent = domNode.parentNode;
98
- // Subscribe to atom changes for reactivity
99
- if (accessedAtoms.size > 0) {
100
- yield* subscribeToAtoms(accessedAtoms, () => {
101
- runForkWithRuntime(runtime)(Effect.gen(function* () {
102
- const newContentScope = yield* clearContentScope(contentScopeRef);
103
- const newAccessedAtoms = new Set();
104
- const newTrackingRegistry = makeTrackingRegistry(runtime.registry, newAccessedAtoms);
105
- const newContextWithTracking = Context.add(currentContext, AtomRegistry.AtomRegistry, newTrackingRegistry);
106
- const newOutput = yield* Effect.try({
107
- try: () => type(vElement.props),
108
- catch: (cause) => new RenderError({ cause }),
109
- });
110
- const newStream = normalizeToStream(newOutput).pipe(Stream.provideContext(newContextWithTracking));
111
- // After first hydration, re-renders create new DOM
112
- // We need to render into parent, clearing old content first
113
- yield* Stream.runForEach(newStream, (reEmitted) => renderVElementToDOM(reEmitted, parent, runtime, newContentScope).pipe(Effect.catchAll((e) => Effect.logError("Re-render child error", e))));
114
- }).pipe(Effect.catchAllCause((cause) => Effect.logError("Re-render error", cause))));
115
- }, runtime, componentScope);
116
- }
117
- // Fork subscription for remaining emissions
118
- const maybeErrorChannel = Context.getOption(currentContext, ErrorBoundaryChannel);
119
- const streamErrorHandler = Option.match(maybeErrorChannel, {
120
- onNone: () => (cause) => Effect.logError("Component stream error (no boundary)", cause),
121
- onSome: (channel) => (cause) => channel.reportError(cause),
122
- });
123
- const subscription = Stream.runForEach(remainingStream, (emitted) => Effect.gen(function* () {
124
- const newContentScope = yield* clearContentScope(contentScopeRef);
125
- yield* renderVElementToDOM(emitted, parent, runtime, newContentScope).pipe(Effect.catchAll((e) => Effect.logError("Stream emission render error", e)));
126
- })).pipe(Effect.catchAllCause(streamErrorHandler));
127
- yield* Effect.forkIn(subscription, componentScope);
128
- return { rendered: true };
129
- }));
130
- if (peelResult._tag === "Left") {
131
- const contentScope = yield* Ref.get(contentScopeRef);
132
- yield* Scope.close(contentScope, Exit.void);
133
- yield* Scope.close(componentScope, Exit.void);
134
- // Re-throw if it's already a HydrationMismatch
135
- if (peelResult.left instanceof HydrationMismatch) {
136
- return yield* Effect.fail(peelResult.left);
137
- }
138
- return yield* Effect.fail(new HydrationMismatch({
139
- expected: "component to render",
140
- actual: `error: ${String(peelResult.left)}`,
141
- path: buildPath(path),
142
- }));
143
- }
144
- // Function components: return next sibling after the node we hydrated
145
- return Option.fromNullable(domNode.nextSibling);
146
- }
147
- else if (type === "TEXT_ELEMENT") {
148
- // Text node - just verify it's a text node, don't update content (DOM wins)
149
- if (domNode.nodeType !== Node.TEXT_NODE) {
150
- return yield* Effect.fail(new HydrationMismatch({
151
- expected: "TEXT_NODE",
152
- actual: domNode.nodeName,
153
- path: buildPath(path),
154
- }));
155
- }
156
- // DOM text content wins - we don't update it
157
- return Option.fromNullable(domNode.nextSibling);
158
- }
159
- else if (type === "FRAGMENT") {
160
- // Fragment - hydrate children using cursor-based walking
161
- const children = vElement.props.children ?? [];
162
- const parent = domNode.parentNode;
163
- if (!parent) {
164
- return yield* Effect.fail(new HydrationMismatch({
165
- expected: "fragment parent",
166
- actual: "no parent node",
167
- path: buildPath(path),
168
- }));
169
- }
170
- // For fragments, hydrate starting from domNode's position using cursor
171
- const finalState = yield* Effect.iterate({ index: 0, cursor: Option.some(domNode) }, {
172
- while: (state) => state.index < children.length && Option.isSome(state.cursor),
173
- body: (state) => Option.match(state.cursor, {
174
- onNone: () => Effect.fail(new HydrationMismatch({
175
- expected: `${children.length} children`,
176
- actual: `${state.index} children`,
177
- path: buildPath(path),
178
- })),
179
- onSome: (cursorNode) => Effect.gen(function* () {
180
- const nextCursor = yield* hydrateVElementToDOM(children[state.index], cursorNode, runtime, parentScope, [...path, { tag: "fragment", index: state.index }]);
181
- return { index: state.index + 1, cursor: nextCursor };
182
- }),
183
- }),
184
- });
185
- return finalState.cursor;
186
- }
187
- else if (type === "SUSPENSE") {
188
- // Suspense during hydration: domNode should be the opening comment marker
189
- // Phase 4: Handle <!--fibrae:sus:resolved--> ... <!--/fibrae:sus-->
190
- // Phase 5: Will handle <!--fibrae:sus:fallback--> case
191
- const children = vElement.props.children;
192
- // Check if we're at an opening marker
193
- if (domNode.nodeType === Node.COMMENT_NODE &&
194
- domNode.data.includes("fibrae:sus:resolved")) {
195
- // Use Effect.iterate to hydrate children, walking from first content node
196
- // until we hit the closing marker
197
- const finalState = yield* Effect.iterate({
198
- index: 0,
199
- cursor: Option.fromNullable(domNode.nextSibling),
200
- }, {
201
- while: (state) => {
202
- if (state.index >= children.length)
203
- return false;
204
- return Option.match(state.cursor, {
205
- onNone: () => false,
206
- onSome: (node) => {
207
- // Stop if we hit closing marker
208
- if (node.nodeType === Node.COMMENT_NODE &&
209
- node.data.includes("/fibrae:sus")) {
210
- return false;
211
- }
212
- return true;
213
- },
214
- });
215
- },
216
- body: (state) => Option.match(state.cursor, {
217
- onNone: () => Effect.succeed({
218
- index: state.index,
219
- cursor: Option.none(),
220
- }),
221
- onSome: (cursorNode) => Effect.gen(function* () {
222
- const nextCursor = yield* hydrateVElementToDOM(children[state.index], cursorNode, runtime, parentScope, [...path, { tag: "suspense", index: state.index }]);
223
- return { index: state.index + 1, cursor: nextCursor };
224
- }),
225
- }),
226
- });
227
- // Skip past the closing marker to return the next sibling
228
- return Option.match(finalState.cursor, {
229
- onNone: () => Option.none(),
230
- onSome: (maybeClosingMarker) => {
231
- if (maybeClosingMarker.nodeType === Node.COMMENT_NODE &&
232
- maybeClosingMarker.data.includes("/fibrae:sus")) {
233
- return Option.fromNullable(maybeClosingMarker.nextSibling);
234
- }
235
- return Option.some(maybeClosingMarker);
236
- },
237
- });
238
- }
239
- else if (domNode.nodeType === Node.COMMENT_NODE &&
240
- domNode.data.includes("fibrae:sus:fallback")) {
241
- // Phase 5: SSR rendered fallback - we need to switch to render mode
242
- // The actual content was never rendered on server, so we need to:
243
- // 1. Find all nodes in the fallback boundary
244
- // 2. Remove them from DOM
245
- // 3. Render the Suspense fresh (which will handle the stream/async content)
246
- const parent = domNode.parentNode;
247
- if (!parent) {
248
- return yield* Effect.fail(new HydrationMismatch({
249
- expected: "parent node for Suspense fallback",
250
- actual: "no parent",
251
- path: buildPath(path),
252
- }));
253
- }
254
- // Collect all nodes in the fallback boundary using Effect.iterate
255
- // State: { nodes: collected nodes, cursor: current node, done: found closing marker }
256
- const collectResult = yield* Effect.iterate({
257
- nodes: [domNode],
258
- cursor: Option.fromNullable(domNode.nextSibling),
259
- closingMarker: Option.none(),
260
- }, {
261
- while: (state) => Option.isSome(state.cursor) && Option.isNone(state.closingMarker),
262
- body: (state) => Effect.sync(() => {
263
- const current = Option.getOrThrow(state.cursor);
264
- const isClosingMarker = current.nodeType === Node.COMMENT_NODE &&
265
- current.data.includes("/fibrae:sus");
266
- return {
267
- nodes: [...state.nodes, current],
268
- cursor: Option.fromNullable(current.nextSibling),
269
- closingMarker: isClosingMarker ? Option.some(current) : Option.none(),
270
- };
271
- }),
272
- });
273
- // Get the next sibling after the closing marker (our return cursor)
274
- const nextSibling = Option.flatMap(collectResult.closingMarker, (marker) => Option.fromNullable(marker.nextSibling));
275
- // Remove fallback nodes from DOM
276
- yield* Effect.sync(() => {
277
- for (const node of collectResult.nodes) {
278
- parent.removeChild(node);
279
- }
280
- });
281
- // Render the Suspense fresh - this will invoke the stream-returning component,
282
- // handle the timeout/race logic, and properly render children
283
- // Insert before nextSibling if it exists, otherwise append
284
- const suspenseScope = yield* Scope.make();
285
- const renderEffect = Option.match(nextSibling, {
286
- onNone: () => renderVElementToDOM(vElement, parent, runtime, suspenseScope),
287
- onSome: (sibling) => Effect.gen(function* () {
288
- // Create a temporary container, render into it, then insert before sibling
289
- const tempContainer = document.createElement("span");
290
- tempContainer.style.display = "contents";
291
- parent.insertBefore(tempContainer, sibling);
292
- yield* renderVElementToDOM(vElement, tempContainer, runtime, suspenseScope);
293
- }),
294
- });
295
- // Catch render errors and convert to HydrationMismatch
296
- yield* renderEffect.pipe(Effect.catchAll((e) => Effect.fail(new HydrationMismatch({
297
- expected: "Suspense to render successfully",
298
- actual: `render error: ${String(e)}`,
299
- path: buildPath(path),
300
- }))));
301
- // Return cursor after where the boundary was
302
- return nextSibling;
303
- }
304
- else {
305
- // No Suspense markers found - this means SSR output doesn't match expected format
306
- return yield* Effect.fail(new HydrationMismatch({
307
- expected: "Suspense comment marker (<!--fibrae:sus:resolved--> or <!--fibrae:sus:fallback-->)",
308
- actual: domNode.nodeType === Node.COMMENT_NODE
309
- ? `comment: ${domNode.data}`
310
- : domNode.nodeName,
311
- path: buildPath(path),
312
- }));
313
- }
314
- }
315
- else if (isHostElement(type)) {
316
- // Host element - verify tag matches and hydrate
317
- const el = domNode;
318
- // Validate tag name matches
319
- if (el.nodeName.toLowerCase() !== type.toLowerCase()) {
320
- return yield* Effect.fail(new HydrationMismatch({
321
- expected: type,
322
- actual: el.nodeName.toLowerCase(),
323
- path: buildPath(path),
324
- }));
325
- }
326
- // Attach event listeners - uses runForkWithRuntime internally for full context
327
- attachEventListeners(el, vElement.props, runtime);
328
- // Handle ref
329
- const ref = vElement.props.ref;
330
- if (ref && typeof ref === "object" && "current" in ref) {
331
- ref.current = el;
332
- }
333
- // Hydrate children using cursor-based iteration
334
- const vChildren = vElement.props.children ?? [];
335
- const childScope = yield* Scope.make();
336
- yield* Effect.iterate({ index: 0, cursor: Option.fromNullable(el.firstChild) }, {
337
- while: (state) => state.index < vChildren.length,
338
- body: (state) => Option.match(state.cursor, {
339
- onNone: () => Effect.fail(new HydrationMismatch({
340
- expected: `child at index ${state.index}`,
341
- actual: "no more DOM nodes",
342
- path: buildPath([...path, { tag: type, index: state.index }]),
343
- })),
344
- onSome: (cursorNode) => Effect.gen(function* () {
345
- const nextCursor = yield* hydrateVElementToDOM(vChildren[state.index], cursorNode, runtime, childScope, [...path, { tag: type, index: state.index }]);
346
- return { index: state.index + 1, cursor: nextCursor };
347
- }),
348
- }),
349
- });
350
- return Option.fromNullable(domNode.nextSibling);
351
- }
352
- // Fallback for unknown types
353
- return Option.fromNullable(domNode.nextSibling);
354
- });
355
- //# sourceMappingURL=hydration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hydration.js","sourceRoot":"","sources":["../src/hydration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,IAAI,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAmD,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC9G,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF,MAAM,mBAAmB,GAAG,CAC1B,IAAiB,EAG+C,EAAE,CAAC,OAAO,IAAI,KAAK,UAAU,CAAC;AAEhG,MAAM,aAAa,GAAG,CAAC,IAAiB,EAAqB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;AAEzF,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,SAAS,GAAG,CAAC,SAAgD,EAAU,EAAE;IAC7E,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAC1C,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9F,CAAC,CAAC;AAEF,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,QAAkB,EAClB,OAAa,EACb,OAAsB,EACtB,WAAmC,EACnC,OAA8C,EAAE,EACc,EAAE,CAChE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAE3B,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,yFAAyF;QACzF,4EAA4E;QAE5E,oEAAoE;QACpE,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC3C,4CAA4C;QAC5C,MAAM,mBAAmB,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAE7D,MAAM,aAAa,GAAG,IAAI,GAAG,EAAsB,CAAC;QACpD,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAE/E,kCAAkC;QAClC,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAIjE,CAAC;QACF,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CACrC,cAAc,EACd,YAAY,CAAC,YAAY,EACzB,gBAAgB,CACjB,CAAC;QAEF,wEAAwE;QACxE,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YACrC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC/B,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CACX,IAAI,iBAAiB,CAAC;gBACpB,QAAQ,EAAE,qBAAqB;gBAC/B,MAAM,EAAE,UAAU,MAAM,CAAC,CAAC,CAAC,EAAE;gBAC7B,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;aACtB,CAAC;SACL,CAAC,CAAC;QAEH,0CAA0C;QAC1C,MAAM,MAAM,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC,IAAI,CACjD,MAAM,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAC3C,CAAC;QAEF,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CACrC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAChF,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,cAAc,CAAC,CACnD,CAAC;YAEF,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,OAAO,EAAE,QAAQ,EAAE,KAAc,EAAE,CAAC;YACtC,CAAC;YAED,0DAA0D;YAC1D,sEAAsE;YACtE,KAAK,CAAC,CAAC,oBAAoB,CACzB,UAAU,CAAC,KAAK,EAChB,OAAO,EACP,OAAO,EACP,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,EAC/B,IAAI,CACL,CAAC;YAEF,6CAA6C;YAC7C,0EAA0E;YAC1E,KAAK,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;YAErE,uEAAuE;YACvE,MAAM,MAAM,GAAG,OAAO,CAAC,UAAyB,CAAC;YAEjD,2CAA2C;YAC3C,IAAI,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC3B,KAAK,CAAC,CAAC,gBAAgB,CACrB,aAAa,EACb,GAAG,EAAE;oBACH,kBAAkB,CAAC,OAAO,CAAC,CACzB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;wBAClB,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;wBAElE,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAsB,CAAC;wBACvD,MAAM,mBAAmB,GAAG,oBAAoB,CAC9C,OAAO,CAAC,QAAQ,EAChB,gBAAgB,CACjB,CAAC;wBACF,MAAM,sBAAsB,GAAG,OAAO,CAAC,GAAG,CACxC,cAAc,EACd,YAAY,CAAC,YAAY,EACzB,mBAAmB,CACpB,CAAC;wBAEF,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;4BAClC,GAAG,EAAE,GAAG,EAAE,CACP,IAAoD,CAAC,QAAQ,CAAC,KAAK,CAAC;4BACvE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC;yBAC7C,CAAC,CAAC;wBAEH,MAAM,SAAS,GAAG,iBAAiB,CACjC,SAAyE,CAC1E,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC;wBAEtD,mDAAmD;wBACnD,4DAA4D;wBAC5D,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE,CAChD,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,IAAI,CACnE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,CACpE,CACF,CAAC;oBACJ,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAC3E,CACF,CAAC;gBACJ,CAAC,EACD,OAAO,EACP,cAAc,CACf,CAAC;YACJ,CAAC;YAED,4CAA4C;YAC5C,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC;YAClF,MAAM,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE;gBACzD,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,KAAc,EAAE,EAAE,CAC/B,MAAM,CAAC,QAAQ,CAAC,sCAAsC,EAAE,KAAK,CAAC;gBAChE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;aACpE,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE,CAClE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAClB,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;gBAClE,KAAK,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,IAAI,CACxE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAC3E,CAAC;YACJ,CAAC,CAAC,CACH,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAEjD,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;YAEnD,OAAO,EAAE,QAAQ,EAAE,IAAa,EAAE,CAAC;QACrC,CAAC,CAAC,CACH,CAAC;QAEF,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACrD,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5C,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,+CAA+C;YAC/C,IAAI,UAAU,CAAC,IAAI,YAAY,iBAAiB,EAAE,CAAC;gBACjD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,iBAAiB,CAAC;gBACpB,QAAQ,EAAE,qBAAqB;gBAC/B,MAAM,EAAE,UAAU,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBAC3C,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;aACtB,CAAC,CACH,CAAC;QACJ,CAAC;QAED,sEAAsE;QACtE,OAAO,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;SAAM,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;QACnC,4EAA4E;QAC5E,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,iBAAiB,CAAC;gBACpB,QAAQ,EAAE,WAAW;gBACrB,MAAM,EAAE,OAAO,CAAC,QAAQ;gBACxB,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;aACtB,CAAC,CACH,CAAC;QACJ,CAAC;QACD,6CAA6C;QAC7C,OAAO,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;SAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,yDAAyD;QACzD,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,iBAAiB,CAAC;gBACpB,QAAQ,EAAE,iBAAiB;gBAC3B,MAAM,EAAE,gBAAgB;gBACxB,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;aACtB,CAAC,CACH,CAAC;QACJ,CAAC;QAED,uEAAuE;QACvE,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACtC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAC1C;YACE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;YAC9E,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CACd,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;gBACzB,MAAM,EAAE,GAAG,EAAE,CACX,MAAM,CAAC,IAAI,CACT,IAAI,iBAAiB,CAAC;oBACpB,QAAQ,EAAE,GAAG,QAAQ,CAAC,MAAM,WAAW;oBACvC,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,WAAW;oBACjC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;iBACtB,CAAC,CACH;gBACH,MAAM,EAAE,CAAC,UAAU,EAAE,EAAE,CACrB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAClB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,oBAAoB,CAC5C,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EACrB,UAAU,EACV,OAAO,EACP,WAAW,EACX,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CACnD,CAAC;oBACF,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;gBACxD,CAAC,CAAC;aACL,CAAC;SACL,CACF,CAAC;QAEF,OAAO,UAAU,CAAC,MAAM,CAAC;IAC3B,CAAC;SAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,0EAA0E;QAC1E,oEAAoE;QACpE,uDAAuD;QAEvD,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAsB,CAAC;QAEvD,sCAAsC;QACtC,IACE,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY;YACrC,OAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EACzD,CAAC;YACD,0EAA0E;YAC1E,kCAAkC;YAClC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACtC;gBACE,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,WAAmB,CAAC;aACzD,EACD;gBACE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;oBACf,IAAI,KAAK,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM;wBAAE,OAAO,KAAK,CAAC;oBACjD,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;wBAChC,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK;wBACnB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;4BACf,gCAAgC;4BAChC,IACE,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY;gCAClC,IAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAC9C,CAAC;gCACD,OAAO,KAAK,CAAC;4BACf,CAAC;4BACD,OAAO,IAAI,CAAC;wBACd,CAAC;qBACF,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CACd,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;oBACzB,MAAM,EAAE,GAAG,EAAE,CACX,MAAM,CAAC,OAAO,CAAC;wBACb,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,MAAM,EAAE,MAAM,CAAC,IAAI,EAAQ;qBAC5B,CAAC;oBACJ,MAAM,EAAE,CAAC,UAAU,EAAE,EAAE,CACrB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;wBAClB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,oBAAoB,CAC5C,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EACrB,UAAU,EACV,OAAO,EACP,WAAW,EACX,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CACnD,CAAC;wBACF,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;oBACxD,CAAC,CAAC;iBACL,CAAC;aACL,CACF,CAAC;YAEF,0DAA0D;YAC1D,OAAO,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE;gBACrC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAQ;gBACjC,MAAM,EAAE,CAAC,kBAAkB,EAAE,EAAE;oBAC7B,IACE,kBAAkB,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY;wBAChD,kBAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAC5D,CAAC;wBACD,OAAO,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;oBAC7D,CAAC;oBACD,OAAO,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACzC,CAAC;aACF,CAAC,CAAC;QACL,CAAC;aAAM,IACL,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY;YACrC,OAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EACzD,CAAC;YACD,oEAAoE;YACpE,kEAAkE;YAClE,6CAA6C;YAC7C,0BAA0B;YAC1B,4EAA4E;YAE5E,MAAM,MAAM,GAAG,OAAO,CAAC,UAAyB,CAAC;YACjD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,iBAAiB,CAAC;oBACpB,QAAQ,EAAE,mCAAmC;oBAC7C,MAAM,EAAE,WAAW;oBACnB,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;iBACtB,CAAC,CACH,CAAC;YACJ,CAAC;YAED,kEAAkE;YAClE,sFAAsF;YACtF,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACzC;gBACE,KAAK,EAAE,CAAC,OAAO,CAAW;gBAC1B,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC;gBAChD,aAAa,EAAE,MAAM,CAAC,IAAI,EAAQ;aACnC,EACD;gBACE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC;gBACnF,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CACd,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;oBACf,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAChD,MAAM,eAAe,GACnB,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY;wBACrC,OAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;oBACpD,OAAO;wBACL,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC;wBAChC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC;wBAChD,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;qBACtE,CAAC;gBACJ,CAAC,CAAC;aACL,CACF,CAAC;YAEF,oEAAoE;YACpE,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CACzE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CACxC,CAAC;YAEF,iCAAiC;YACjC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACtB,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;oBACvC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,+EAA+E;YAC/E,8DAA8D;YAC9D,2DAA2D;YAC3D,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC1C,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE;gBAC7C,MAAM,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC;gBAC3E,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAClB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAClB,2EAA2E;oBAC3E,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;oBACrD,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC;oBACzC,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;oBAC5C,KAAK,CAAC,CAAC,mBAAmB,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;gBAC9E,CAAC,CAAC;aACL,CAAC,CAAC;YAEH,uDAAuD;YACvD,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,CACtB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CACpB,MAAM,CAAC,IAAI,CACT,IAAI,iBAAiB,CAAC;gBACpB,QAAQ,EAAE,iCAAiC;gBAC3C,MAAM,EAAE,iBAAiB,MAAM,CAAC,CAAC,CAAC,EAAE;gBACpC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;aACtB,CAAC,CACH,CACF,CACF,CAAC;YAEF,6CAA6C;YAC7C,OAAO,WAAW,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,kFAAkF;YAClF,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,iBAAiB,CAAC;gBACpB,QAAQ,EACN,oFAAoF;gBACtF,MAAM,EACJ,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY;oBACpC,CAAC,CAAC,YAAa,OAAmB,CAAC,IAAI,EAAE;oBACzC,CAAC,CAAC,OAAO,CAAC,QAAQ;gBACtB,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;aACtB,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,gDAAgD;QAChD,MAAM,EAAE,GAAG,OAAsB,CAAC;QAElC,4BAA4B;QAC5B,IAAI,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACrD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,iBAAiB,CAAC;gBACpB,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE;gBACjC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;aACtB,CAAC,CACH,CAAC;QACJ,CAAC;QAED,+EAA+E;QAC/E,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAgC,EAAE,OAAO,CAAC,CAAC;QAE7E,aAAa;QACb,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;QAC/B,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;YACtD,GAA4B,CAAC,OAAO,GAAG,EAAE,CAAC;QAC7C,CAAC;QAED,gDAAgD;QAChD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;QAChD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAEvC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,UAAkB,CAAC,EAAE,EAChE;YACE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM;YAChD,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CACd,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;gBACzB,MAAM,EAAE,GAAG,EAAE,CACX,MAAM,CAAC,IAAI,CACT,IAAI,iBAAiB,CAAC;oBACpB,QAAQ,EAAE,kBAAkB,KAAK,CAAC,KAAK,EAAE;oBACzC,MAAM,EAAE,mBAAmB;oBAC3B,IAAI,EAAE,SAAS,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;iBAC9D,CAAC,CACH;gBACH,MAAM,EAAE,CAAC,UAAU,EAAE,EAAE,CACrB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAClB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,oBAAoB,CAC5C,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EACtB,UAAU,EACV,OAAO,EACP,UAAU,EACV,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAC7C,CAAC;oBACF,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;gBACxD,CAAC,CAAC;aACL,CAAC;SACL,CACF,CAAC;QAEF,OAAO,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAED,6BAA6B;IAC7B,OAAO,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC"}
package/dist/render.d.ts DELETED
@@ -1,19 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import * as Scope from "effect/Scope";
3
- import { type VElement } from "./shared.js";
4
- import { FibraeRuntime } from "./runtime.js";
5
- /**
6
- * Recursively render a VElement tree to DOM.
7
- * This is the core rendering function that handles:
8
- * - Function components (with stream subscriptions and atom reactivity)
9
- * - Host elements (DOM nodes)
10
- * - Text elements
11
- * - Fragments
12
- * - Error boundaries
13
- *
14
- * @param vElement - Virtual element to render
15
- * @param parent - Parent DOM node to append to
16
- * @param runtime - Fibrae runtime instance
17
- * @param parentScope - Optional scope for registering cleanup (used for proper DOM node removal)
18
- */
19
- export declare const renderVElementToDOM: (vElement: VElement, parent: Node, runtime: FibraeRuntime, parentScope?: Scope.Scope.Closeable) => Effect.Effect<void, unknown, never>;