fuzor 0.5.1 → 0.5.3

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 (314) hide show
  1. package/dist/browser.d.ts +2 -0
  2. package/dist/browser.d.ts.map +1 -1
  3. package/dist/browser.js +1 -0
  4. package/dist/browser.js.map +1 -1
  5. package/dist/cli.js +10 -0
  6. package/dist/cli.js.map +1 -1
  7. package/dist/compiler/data-document.d.ts +20 -1
  8. package/dist/compiler/data-document.d.ts.map +1 -1
  9. package/dist/compiler/data-document.js +80 -7
  10. package/dist/compiler/data-document.js.map +1 -1
  11. package/dist/compiler/docs.d.ts.map +1 -1
  12. package/dist/compiler/docs.js +49 -11
  13. package/dist/compiler/docs.js.map +1 -1
  14. package/dist/compiler/index.d.ts +2 -0
  15. package/dist/compiler/index.d.ts.map +1 -1
  16. package/dist/compiler/index.js +23 -6
  17. package/dist/compiler/index.js.map +1 -1
  18. package/dist/compiler/islands.d.ts +1 -0
  19. package/dist/compiler/islands.d.ts.map +1 -1
  20. package/dist/compiler/native-authoring.d.ts +45 -0
  21. package/dist/compiler/native-authoring.d.ts.map +1 -0
  22. package/dist/compiler/native-authoring.js +569 -0
  23. package/dist/compiler/native-authoring.js.map +1 -0
  24. package/dist/compiler/native-manifest.d.ts +33 -0
  25. package/dist/compiler/native-manifest.d.ts.map +1 -0
  26. package/dist/compiler/native-manifest.js +53 -0
  27. package/dist/compiler/native-manifest.js.map +1 -0
  28. package/dist/compiler/native-ranges.d.ts +8 -0
  29. package/dist/compiler/native-ranges.d.ts.map +1 -0
  30. package/dist/compiler/native-ranges.js +92 -0
  31. package/dist/compiler/native-ranges.js.map +1 -0
  32. package/dist/compiler/native-scripts.js +2 -2
  33. package/dist/compiler/native-scripts.js.map +1 -1
  34. package/dist/compiler/page-scripts.d.ts +6 -0
  35. package/dist/compiler/page-scripts.d.ts.map +1 -1
  36. package/dist/compiler/page-scripts.js +25 -6
  37. package/dist/compiler/page-scripts.js.map +1 -1
  38. package/dist/compiler/route-policy.d.ts +1 -0
  39. package/dist/compiler/route-policy.d.ts.map +1 -1
  40. package/dist/compiler/route-policy.js +4 -1
  41. package/dist/compiler/route-policy.js.map +1 -1
  42. package/dist/compiler/select-options.d.ts +7 -0
  43. package/dist/compiler/select-options.d.ts.map +1 -0
  44. package/dist/compiler/select-options.js +22 -0
  45. package/dist/compiler/select-options.js.map +1 -0
  46. package/dist/compiler/server-actions.d.ts +9 -0
  47. package/dist/compiler/server-actions.d.ts.map +1 -0
  48. package/dist/compiler/server-actions.js +65 -0
  49. package/dist/compiler/server-actions.js.map +1 -0
  50. package/dist/data-bindings.d.ts +4 -0
  51. package/dist/data-bindings.d.ts.map +1 -0
  52. package/dist/data-bindings.js +18 -0
  53. package/dist/data-bindings.js.map +1 -0
  54. package/dist/dom-ownership.d.ts +5 -0
  55. package/dist/dom-ownership.d.ts.map +1 -0
  56. package/dist/dom-ownership.js +49 -0
  57. package/dist/dom-ownership.js.map +1 -0
  58. package/dist/index.d.ts +2 -0
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +1 -0
  61. package/dist/index.js.map +1 -1
  62. package/dist/internal-specifiers.d.ts +3 -0
  63. package/dist/internal-specifiers.d.ts.map +1 -0
  64. package/dist/internal-specifiers.js +22 -0
  65. package/dist/internal-specifiers.js.map +1 -0
  66. package/dist/islands/react.d.ts +0 -6
  67. package/dist/islands/react.d.ts.map +1 -1
  68. package/dist/islands/react.js +9 -26
  69. package/dist/islands/react.js.map +1 -1
  70. package/dist/json-value.d.ts +4 -0
  71. package/dist/json-value.d.ts.map +1 -0
  72. package/dist/json-value.js +10 -0
  73. package/dist/json-value.js.map +1 -0
  74. package/dist/native-expressions.d.ts +34 -0
  75. package/dist/native-expressions.d.ts.map +1 -0
  76. package/dist/native-expressions.js +118 -0
  77. package/dist/native-expressions.js.map +1 -0
  78. package/dist/native-manifest.d.ts +7 -0
  79. package/dist/native-manifest.d.ts.map +1 -0
  80. package/dist/native-manifest.js +4 -0
  81. package/dist/native-manifest.js.map +1 -0
  82. package/dist/native-ranges.d.ts +25 -0
  83. package/dist/native-ranges.d.ts.map +1 -0
  84. package/dist/native-ranges.js +51 -0
  85. package/dist/native-ranges.js.map +1 -0
  86. package/dist/native-state.d.ts +14 -0
  87. package/dist/native-state.d.ts.map +1 -0
  88. package/dist/native-state.js +27 -0
  89. package/dist/native-state.js.map +1 -0
  90. package/dist/route-path.d.ts +2 -0
  91. package/dist/route-path.d.ts.map +1 -1
  92. package/dist/route-path.js +2 -0
  93. package/dist/route-path.js.map +1 -1
  94. package/dist/runtime/binding-updates.d.ts +11 -0
  95. package/dist/runtime/binding-updates.d.ts.map +1 -0
  96. package/dist/runtime/binding-updates.js +45 -0
  97. package/dist/runtime/binding-updates.js.map +1 -0
  98. package/dist/runtime/data.d.ts +28 -1
  99. package/dist/runtime/data.d.ts.map +1 -1
  100. package/dist/runtime/data.js +101 -25
  101. package/dist/runtime/data.js.map +1 -1
  102. package/dist/runtime/docs-search.d.ts +20 -4
  103. package/dist/runtime/docs-search.d.ts.map +1 -1
  104. package/dist/runtime/docs-search.js +135 -159
  105. package/dist/runtime/docs-search.js.map +1 -1
  106. package/dist/runtime/docs-ui.d.ts +3 -1
  107. package/dist/runtime/docs-ui.d.ts.map +1 -1
  108. package/dist/runtime/docs-ui.js +19 -29
  109. package/dist/runtime/docs-ui.js.map +1 -1
  110. package/dist/runtime/index.d.ts +1 -0
  111. package/dist/runtime/index.d.ts.map +1 -1
  112. package/dist/runtime/islands.d.ts.map +1 -1
  113. package/dist/runtime/islands.js +2 -1
  114. package/dist/runtime/islands.js.map +1 -1
  115. package/dist/runtime/native-graph.d.ts +15 -0
  116. package/dist/runtime/native-graph.d.ts.map +1 -0
  117. package/dist/runtime/native-graph.js +103 -0
  118. package/dist/runtime/native-graph.js.map +1 -0
  119. package/dist/runtime/native-manifest.d.ts +17 -0
  120. package/dist/runtime/native-manifest.d.ts.map +1 -0
  121. package/dist/runtime/native-manifest.js +111 -0
  122. package/dist/runtime/native-manifest.js.map +1 -0
  123. package/dist/runtime/native-ranges.d.ts +8 -0
  124. package/dist/runtime/native-ranges.d.ts.map +1 -0
  125. package/dist/runtime/native-ranges.js +100 -0
  126. package/dist/runtime/native-ranges.js.map +1 -0
  127. package/dist/runtime/native-stream-reader.d.ts +7 -0
  128. package/dist/runtime/native-stream-reader.d.ts.map +1 -0
  129. package/dist/runtime/native-stream-reader.js +79 -0
  130. package/dist/runtime/native-stream-reader.js.map +1 -0
  131. package/dist/runtime/native-stream.d.ts +5 -0
  132. package/dist/runtime/native-stream.d.ts.map +1 -0
  133. package/dist/runtime/native-stream.js +14 -0
  134. package/dist/runtime/native-stream.js.map +1 -0
  135. package/dist/runtime/native.d.ts +41 -0
  136. package/dist/runtime/native.d.ts.map +1 -1
  137. package/dist/runtime/native.js +176 -55
  138. package/dist/runtime/native.js.map +1 -1
  139. package/dist/runtime/page-scripts.d.ts.map +1 -1
  140. package/dist/runtime/page-scripts.js +8 -3
  141. package/dist/runtime/page-scripts.js.map +1 -1
  142. package/dist/runtime/route-views.d.ts +15 -0
  143. package/dist/runtime/route-views.d.ts.map +1 -0
  144. package/dist/runtime/route-views.js +133 -0
  145. package/dist/runtime/route-views.js.map +1 -0
  146. package/dist/runtime/router-embedded.d.ts +1 -0
  147. package/dist/runtime/router-embedded.d.ts.map +1 -1
  148. package/dist/runtime/router-navigation-api.d.ts +1 -0
  149. package/dist/runtime/router-navigation-api.d.ts.map +1 -1
  150. package/dist/runtime/router.d.ts +1 -0
  151. package/dist/runtime/router.d.ts.map +1 -1
  152. package/dist/runtime/router.js +11 -2
  153. package/dist/runtime/router.js.map +1 -1
  154. package/dist/runtime/server-actions.d.ts +5 -0
  155. package/dist/runtime/server-actions.d.ts.map +1 -0
  156. package/dist/runtime/server-actions.js +79 -0
  157. package/dist/runtime/server-actions.js.map +1 -0
  158. package/dist/server-actions.d.ts +18 -0
  159. package/dist/server-actions.d.ts.map +1 -0
  160. package/dist/server-actions.js +138 -0
  161. package/dist/server-actions.js.map +1 -0
  162. package/dist/server-components/closures.d.ts +1 -12
  163. package/dist/server-components/closures.d.ts.map +1 -1
  164. package/dist/server-components/closures.js +0 -75
  165. package/dist/server-components/closures.js.map +1 -1
  166. package/dist/server-components/continuation.d.ts +7 -0
  167. package/dist/server-components/continuation.d.ts.map +1 -0
  168. package/dist/server-components/continuation.js +17 -0
  169. package/dist/server-components/continuation.js.map +1 -0
  170. package/dist/server-components/environment.js +1 -1
  171. package/dist/server-components/environment.js.map +1 -1
  172. package/dist/server-components/protocol.d.ts +5 -1
  173. package/dist/server-components/protocol.d.ts.map +1 -1
  174. package/dist/server-components/protocol.js +9 -1
  175. package/dist/server-components/protocol.js.map +1 -1
  176. package/dist/server-components/server.d.ts +4 -7
  177. package/dist/server-components/server.d.ts.map +1 -1
  178. package/dist/server-components/server.js +2 -185
  179. package/dist/server-components/server.js.map +1 -1
  180. package/dist/server-components/stream-server.d.ts +6 -0
  181. package/dist/server-components/stream-server.d.ts.map +1 -0
  182. package/dist/server-components/stream-server.js +197 -0
  183. package/dist/server-components/stream-server.js.map +1 -0
  184. package/dist/server-components/stream.d.ts +16 -3
  185. package/dist/server-components/stream.d.ts.map +1 -1
  186. package/dist/server-components/stream.js +31 -4
  187. package/dist/server-components/stream.js.map +1 -1
  188. package/dist/server-components/transport.d.ts +20 -0
  189. package/dist/server-components/transport.d.ts.map +1 -0
  190. package/dist/server-components/transport.js +2 -0
  191. package/dist/server-components/transport.js.map +1 -0
  192. package/dist/server-components/updates.d.ts +56 -0
  193. package/dist/server-components/updates.d.ts.map +1 -0
  194. package/dist/server-components/updates.js +319 -0
  195. package/dist/server-components/updates.js.map +1 -0
  196. package/dist/server-data-protocol.d.ts +14 -0
  197. package/dist/server-data-protocol.d.ts.map +1 -0
  198. package/dist/server-data-protocol.js +15 -0
  199. package/dist/server-data-protocol.js.map +1 -0
  200. package/dist/server-data.d.ts +18 -0
  201. package/dist/server-data.d.ts.map +1 -1
  202. package/dist/server-data.js.map +1 -1
  203. package/dist/server-document.d.ts +21 -0
  204. package/dist/server-document.d.ts.map +1 -0
  205. package/dist/server-document.js +3 -0
  206. package/dist/server-document.js.map +1 -0
  207. package/dist/server-native-document.d.ts +13 -0
  208. package/dist/server-native-document.d.ts.map +1 -0
  209. package/dist/server-native-document.js +154 -0
  210. package/dist/server-native-document.js.map +1 -0
  211. package/dist/server-native-stream.d.ts +5 -0
  212. package/dist/server-native-stream.d.ts.map +1 -0
  213. package/dist/server-native-stream.js +39 -0
  214. package/dist/server-native-stream.js.map +1 -0
  215. package/dist/server-native.d.ts +24 -0
  216. package/dist/server-native.d.ts.map +1 -0
  217. package/dist/server-native.js +70 -0
  218. package/dist/server-native.js.map +1 -0
  219. package/dist/server-reactivity.d.ts +13 -0
  220. package/dist/server-reactivity.d.ts.map +1 -0
  221. package/dist/server-reactivity.js +49 -0
  222. package/dist/server-reactivity.js.map +1 -0
  223. package/dist/server.d.ts +11 -5
  224. package/dist/server.d.ts.map +1 -1
  225. package/dist/server.js +68 -16
  226. package/dist/server.js.map +1 -1
  227. package/dist/ui/behaviors/accordion.d.ts.map +1 -1
  228. package/dist/ui/behaviors/accordion.js +4 -3
  229. package/dist/ui/behaviors/accordion.js.map +1 -1
  230. package/dist/ui/behaviors/collapsible.d.ts.map +1 -1
  231. package/dist/ui/behaviors/collapsible.js +2 -1
  232. package/dist/ui/behaviors/collapsible.js.map +1 -1
  233. package/dist/ui/behaviors/dialog.d.ts.map +1 -1
  234. package/dist/ui/behaviors/dialog.js +5 -4
  235. package/dist/ui/behaviors/dialog.js.map +1 -1
  236. package/dist/ui/behaviors/menu.d.ts.map +1 -1
  237. package/dist/ui/behaviors/menu.js +4 -3
  238. package/dist/ui/behaviors/menu.js.map +1 -1
  239. package/dist/ui/behaviors/select.d.ts +23 -1
  240. package/dist/ui/behaviors/select.d.ts.map +1 -1
  241. package/dist/ui/behaviors/select.js +81 -11
  242. package/dist/ui/behaviors/select.js.map +1 -1
  243. package/dist/ui/behaviors/switch.d.ts.map +1 -1
  244. package/dist/ui/behaviors/switch.js +2 -1
  245. package/dist/ui/behaviors/switch.js.map +1 -1
  246. package/dist/ui/behaviors/toolbar.d.ts.map +1 -1
  247. package/dist/ui/behaviors/toolbar.js +2 -1
  248. package/dist/ui/behaviors/toolbar.js.map +1 -1
  249. package/dist/ui/catalogue.d.ts +1 -1
  250. package/dist/ui/components/accordion/accordion.d.ts.map +1 -1
  251. package/dist/ui/components/accordion/accordion.js +3 -2
  252. package/dist/ui/components/accordion/accordion.js.map +1 -1
  253. package/dist/ui/components/collapsible/collapsible.d.ts.map +1 -1
  254. package/dist/ui/components/collapsible/collapsible.js +2 -1
  255. package/dist/ui/components/collapsible/collapsible.js.map +1 -1
  256. package/dist/ui/components/dialog/dialog.d.ts.map +1 -1
  257. package/dist/ui/components/dialog/dialog.js +4 -3
  258. package/dist/ui/components/dialog/dialog.js.map +1 -1
  259. package/dist/ui/components/navigation/breadcrumbs.d.ts.map +1 -1
  260. package/dist/ui/components/navigation/breadcrumbs.js +2 -1
  261. package/dist/ui/components/navigation/breadcrumbs.js.map +1 -1
  262. package/dist/ui/components/select/select.d.ts +20 -0
  263. package/dist/ui/components/select/select.d.ts.map +1 -1
  264. package/dist/ui/components/select/select.js +20 -0
  265. package/dist/ui/components/select/select.js.map +1 -1
  266. package/dist/ui/components/tabs/tabs.d.ts.map +1 -1
  267. package/dist/ui/components/tabs/tabs.js +6 -5
  268. package/dist/ui/components/tabs/tabs.js.map +1 -1
  269. package/dist/ui/core/brand.d.ts +33 -0
  270. package/dist/ui/core/brand.d.ts.map +1 -0
  271. package/dist/ui/core/brand.js +96 -0
  272. package/dist/ui/core/brand.js.map +1 -0
  273. package/dist/ui/core/component-styles.d.ts.map +1 -1
  274. package/dist/ui/core/component-styles.js +14 -8
  275. package/dist/ui/core/component-styles.js.map +1 -1
  276. package/dist/ui/core/element.d.ts.map +1 -1
  277. package/dist/ui/core/element.js +2 -3
  278. package/dist/ui/core/element.js.map +1 -1
  279. package/dist/ui/core/index.d.ts +1 -0
  280. package/dist/ui/core/index.d.ts.map +1 -1
  281. package/dist/ui/core/index.js +1 -0
  282. package/dist/ui/core/index.js.map +1 -1
  283. package/dist/ui/core/layout-styles.d.ts.map +1 -1
  284. package/dist/ui/core/layout-styles.js +12 -6
  285. package/dist/ui/core/layout-styles.js.map +1 -1
  286. package/dist/ui/core/parts.d.ts.map +1 -1
  287. package/dist/ui/core/parts.js +5 -4
  288. package/dist/ui/core/parts.js.map +1 -1
  289. package/dist/ui/core/portal.d.ts.map +1 -1
  290. package/dist/ui/core/portal.js +17 -1
  291. package/dist/ui/core/portal.js.map +1 -1
  292. package/dist/ui/machine-state.d.ts +11 -11
  293. package/dist/ui/state.d.ts +1 -1
  294. package/dist/vite.d.ts +5 -10
  295. package/dist/vite.d.ts.map +1 -1
  296. package/dist/vite.js +119 -116
  297. package/dist/vite.js.map +1 -1
  298. package/package.json +2 -12
  299. package/dist/server-components/browser.d.ts +0 -75
  300. package/dist/server-components/browser.d.ts.map +0 -1
  301. package/dist/server-components/browser.js +0 -558
  302. package/dist/server-components/browser.js.map +0 -1
  303. package/dist/server-components/compiler.d.ts +0 -6
  304. package/dist/server-components/compiler.d.ts.map +0 -1
  305. package/dist/server-components/compiler.js +0 -118
  306. package/dist/server-components/compiler.js.map +0 -1
  307. package/dist/server-components/navigation.d.ts +0 -10
  308. package/dist/server-components/navigation.d.ts.map +0 -1
  309. package/dist/server-components/navigation.js +0 -105
  310. package/dist/server-components/navigation.js.map +0 -1
  311. package/dist/server-components/references.d.ts +0 -22
  312. package/dist/server-components/references.d.ts.map +0 -1
  313. package/dist/server-components/references.js +0 -94
  314. package/dist/server-components/references.js.map +0 -1
@@ -1,558 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import * as Semaphore from "effect/Semaphore";
3
- import { readViewStream, validateFrame } from "./stream.js";
4
- import * as Atom from "effect/reactivity/Atom";
5
- import * as AtomRegistry from "effect/reactivity/AtomRegistry";
6
- import { scalar, validateSnapshot } from "./protocol.js";
7
- import { normalizeBase } from "../route-path.js";
8
- /** Adapt only an external call; all renderer coordination stays in Effect. */
9
- const external = (call) => Effect.suspend(() => {
10
- const controller = new AbortController();
11
- return Effect.try({ try: () => call(controller.signal), catch: error => error }).pipe(Effect.flatMap(result => Effect.isEffect(result) ? result : Effect.tryPromise({ try: () => Promise.resolve(result), catch: error => error })), Effect.ensuring(Effect.sync(() => controller.abort())));
12
- });
13
- /** Opt-in renderer. Template DOM and instance lifetimes outlive individual server requests. */
14
- export function createViewRenderer(outlet, options) {
15
- const document = outlet.ownerDocument;
16
- const clients = options.clients ?? {};
17
- const handlers = options.handlers ?? {};
18
- const clientIds = new Set(Object.keys(clients));
19
- const handlerIds = new Set(Object.keys(handlers));
20
- const parsed = new Map();
21
- const modules = new Map();
22
- const preparationErrors = new Map();
23
- const loadedHandlers = new Map();
24
- const owned = new WeakMap();
25
- let roots = [];
26
- let scope;
27
- let operationScope;
28
- let disposed = false;
29
- let generation = 0;
30
- const commitLock = Semaphore.makeUnsafe(1);
31
- const timeout = options.clientTimeoutMs ?? 10000;
32
- if (!Number.isSafeInteger(timeout) || timeout < 1 || timeout > 120000)
33
- throw new Error("Client timeout must be between 1 and 120000 milliseconds");
34
- let activeOperation;
35
- const bounded = (call) => external(call).pipe(Effect.timeout(timeout));
36
- const run = (effect, signal) => Effect.runPromise(effect, signal ? { signal } : undefined);
37
- let stopDocument;
38
- let activeFetch;
39
- let disposal;
40
- const errors = options.onError ?? console.error;
41
- const isInput = (element) => element.tagName === "INPUT" || element.tagName === "TEXTAREA";
42
- const write = (element, value) => {
43
- const text = scalar(value);
44
- if (isInput(element)) {
45
- const input = element;
46
- if (input.value !== text)
47
- input.value = text;
48
- }
49
- else if (element.textContent !== text)
50
- element.textContent = text;
51
- };
52
- const apply = (instance) => {
53
- const node = instance.node;
54
- if (node.kind !== "fragment")
55
- return;
56
- for (const binding of options.manifest.templates[node.template].bindings) {
57
- if (binding.kind === "slot")
58
- continue;
59
- const value = (binding.kind === "state" || binding.kind === "checked") ? instance.registry.get(instance.cells.get(binding.name)) : node.values[binding.name];
60
- for (const element of instance.bindings.get(`${binding.kind}:${binding.name}`) ?? []) {
61
- if (binding.kind === "checked")
62
- element.checked = value === true;
63
- else
64
- write(element, value);
65
- }
66
- }
67
- };
68
- const cells = (instance, node) => {
69
- for (const binding of options.manifest.templates[node.template].bindings)
70
- if ((binding.kind === "state" || binding.kind === "checked") && !instance.cells.has(binding.name)) {
71
- const atom = Atom.make(node.state[binding.name] ?? null).pipe(Atom.keepAlive);
72
- instance.cells.set(binding.name, atom);
73
- }
74
- };
75
- const nodeSignature = (node) => node.kind === "fragment" ? `fragment:${node.template}` : node.kind === "client" ? `client:${node.component}` : "boundary";
76
- const directHosts = (parent) => Array.from(parent.children).filter(element => element.hasAttribute("data-fuzor-key"));
77
- const marker = (instance, name) => {
78
- const slot = instance.bindings.get(`slot:${name}`)?.[0];
79
- if (!slot)
80
- throw new Error(`Compiled slot is missing: ${name}`);
81
- return slot;
82
- };
83
- const sameHost = (host, node) => host.getAttribute("data-fuzor-key") === node.key &&
84
- (node.kind === "fragment" ? host.localName === "fuzor-fragment" && host.getAttribute("data-fuzor-template") === node.template : node.kind === "boundary" ? host.localName === "fuzor-boundary" : host.localName === "fuzor-client" && host.getAttribute("data-fuzor-component") === node.component);
85
- const create = Effect.fnUntraced(function* (node, host) {
86
- const adopt = !!host;
87
- host ??= document.createElement(node.kind === "fragment" ? "fuzor-fragment" : node.kind === "boundary" ? "fuzor-boundary" : "fuzor-client");
88
- host.setAttribute("data-fuzor-key", node.key);
89
- if (node.kind !== "boundary")
90
- host.setAttribute(node.kind === "fragment" ? "data-fuzor-template" : "data-fuzor-component", node.kind === "fragment" ? node.template : node.component);
91
- const instance = { node, host, lifetime: new AbortController(), children: new Map(), registry: AtomRegistry.make(), cells: new Map(), bindings: new Map(), eventLock: Semaphore.makeUnsafe(1), dispose: () => Promise.resolve() };
92
- let released = false;
93
- let disposal;
94
- instance.dispose = () => disposal ??= run(Effect.gen(function* () {
95
- if (released)
96
- return;
97
- released = true;
98
- instance.failed = true;
99
- instance.lifetime.abort();
100
- owned.delete(instance.host);
101
- const cleanup = Effect.forEach([...instance.children.values()].flat(), child => external(() => child.dispose()), { concurrency: 8, discard: true });
102
- yield* cleanup.pipe(Effect.ensuring(bounded(() => instance.client?.dispose()).pipe(Effect.catchCause(cause => Effect.sync(() => errors(cause))), Effect.ensuring(Effect.sync(() => { instance.registry.dispose(); instance.host.remove(); })))));
103
- }));
104
- owned.set(host, instance);
105
- let complete = false;
106
- yield* Effect.addFinalizer(() => complete ? Effect.void : external(() => instance.dispose()).pipe(Effect.catchCause(cause => Effect.sync(() => errors(cause)))));
107
- try {
108
- if (node.kind === "fragment") {
109
- if (!adopt) {
110
- let template = parsed.get(node.template);
111
- if (!template) {
112
- template = document.createElement("template");
113
- template.innerHTML = options.manifest.templates[node.template].html;
114
- parsed.set(node.template, template);
115
- }
116
- host.append(document.importNode(template.content, true));
117
- }
118
- // Exclude descendants owned by server-produced child fragments/client roots.
119
- for (const element of host.querySelectorAll("[data-fuzor-text],[data-fuzor-state],[data-fuzor-checked],[data-fuzor-slot]")) {
120
- if (element.closest("fuzor-fragment,fuzor-client,fuzor-boundary") !== host)
121
- continue;
122
- for (const kind of ["text", "state", "checked", "slot"]) {
123
- const name = element.getAttribute(`data-fuzor-${kind}`);
124
- if (name !== null) {
125
- const key = `${kind}:${name}`;
126
- const values = instance.bindings.get(key) ?? [];
127
- values.push(element);
128
- instance.bindings.set(key, values);
129
- }
130
- }
131
- }
132
- cells(instance, node);
133
- // An input edited before resume is already user state; adopt it without setup replay.
134
- if (adopt)
135
- for (const binding of options.manifest.templates[node.template].bindings)
136
- if (binding.kind === "state" || binding.kind === "checked") {
137
- const input = instance.bindings.get(`${binding.kind}:${binding.name}`)?.find(isInput);
138
- if (input && binding.kind === "checked" && input.checked !== input.defaultChecked)
139
- instance.registry.set(instance.cells.get(binding.name), input.checked);
140
- else if (input && binding.kind === "state" && input.value !== input.defaultValue)
141
- instance.registry.set(instance.cells.get(binding.name), input.value);
142
- }
143
- apply(instance);
144
- }
145
- complete = true;
146
- return instance;
147
- }
148
- catch (error) {
149
- yield* external(() => instance.dispose());
150
- throw error;
151
- }
152
- }, Effect.scoped);
153
- const reconcile = Effect.fnUntraced(function* (parent, previous, nodes, version, adopt, connection) {
154
- const byKey = new Map(previous.map(instance => [instance.node.key, instance]));
155
- const adoptable = adopt ? directHosts(parent) : [];
156
- const next = [];
157
- const created = [];
158
- let complete = false;
159
- yield* Effect.addFinalizer(() => complete ? Effect.void : Effect.forEach(created, instance => external(() => instance.dispose()).pipe(Effect.catchCause(cause => Effect.sync(() => errors(cause)))), { concurrency: 8, discard: true }));
160
- try {
161
- for (const node of nodes) {
162
- if (disposed || version !== generation)
163
- return yield* Effect.fail(new Error("View commit superseded"));
164
- let instance = byKey.get(node.key);
165
- const retainBoundary = node.kind === "boundary" && node.status !== "resolved" && instance?.boundaryResolved === true;
166
- if (instance && (instance.failed || nodeSignature(instance.node) !== nodeSignature(node))) {
167
- yield* external(() => instance.dispose());
168
- byKey.delete(node.key);
169
- instance = undefined;
170
- }
171
- if (!instance) {
172
- instance = yield* create(node, adoptable.find(host => sameHost(host, node)));
173
- created.push(instance);
174
- }
175
- else {
176
- byKey.delete(node.key);
177
- instance.node = node;
178
- if (node.kind === "fragment") {
179
- cells(instance, node);
180
- apply(instance);
181
- }
182
- }
183
- next.push(instance);
184
- // New instances are tracked for cleanup if nested reconciliation fails.
185
- if (node.kind === "client") {
186
- const target = instance;
187
- const preparationError = preparationErrors.get(`${version}:${node.component}`);
188
- if (preparationError)
189
- return yield* Effect.fail(preparationError);
190
- const module = yield* bounded(() => modules.get(node.component));
191
- const bridge = module.connected;
192
- if (connection && (!bridge || connection.family !== bridge.family))
193
- return yield* Effect.fail(new Error("Connected client children must use the same framework runtime"));
194
- let children;
195
- if (node.children?.length || instance.childrenHost) {
196
- if (!bridge)
197
- return yield* Effect.fail(new Error("Client children require a connected framework adapter"));
198
- instance.childrenHost ??= Array.from(instance.host.children).find(child => child.localName === "fuzor-client-children") ?? document.createElement("fuzor-client-children");
199
- const descendants = yield* reconcile(instance.childrenHost, instance.children.get("client") ?? [], node.children ?? [], version, adopt, bridge);
200
- instance.children.set("client", descendants);
201
- children = bridge.slot(instance.childrenHost, descendants.map(child => child.presentation));
202
- }
203
- if (connection)
204
- instance.presentation = connection.portal(instance.host, bridge.element(node.props, children), node.key);
205
- else if (instance.client) {
206
- yield* bounded(signal => target.client.update(node.props, { signal, children, ...(operationScope ? { scope: operationScope } : {}) })).pipe(Effect.onExit(exit => Effect.sync(() => { if (exit._tag === "Failure")
207
- target.failed = true; })));
208
- }
209
- else {
210
- instance.client = yield* bounded(signal => {
211
- const result = module.mountPersistent(target.host, node.props, { signal, children, ...(operationScope ? { scope: operationScope } : {}) });
212
- if (Effect.isEffect(result))
213
- return result;
214
- if (result && typeof result.then === "function")
215
- return result.then(client => {
216
- if (signal.aborted)
217
- void run(bounded(() => client.dispose())).catch(errors);
218
- return client;
219
- });
220
- return result;
221
- });
222
- }
223
- }
224
- else if (node.kind === "boundary") {
225
- instance.host.setAttribute("data-fuzor-status", node.status);
226
- if (node.status === "resolved")
227
- instance.boundaryResolved = true;
228
- if (!retainBoundary) {
229
- const boundary = instance;
230
- const descendants = yield* reconcile(instance.host, instance.children.get("content") ?? [], node.children, version, adopt, connection).pipe(Effect.catchCause(cause => Effect.gen(function* () {
231
- if (disposed || version !== generation)
232
- return yield* Effect.failCause(cause);
233
- errors(cause);
234
- // External adapter side effects cannot be rolled back. Release this
235
- // boundary's children and show a local fallback; keep siblings alive.
236
- yield* Effect.forEach(boundary.children.get("content") ?? [], child => external(() => child.dispose()).pipe(Effect.catchCause(error => Effect.sync(() => errors(error)))), { discard: true });
237
- boundary.boundaryResolved = false;
238
- boundary.host.setAttribute("data-fuzor-status", "error");
239
- const fallback = document.createElement("p");
240
- fallback.setAttribute("role", "status");
241
- fallback.textContent = "This section could not be loaded.";
242
- boundary.host.replaceChildren(fallback);
243
- return [];
244
- })));
245
- instance.children.set("content", descendants);
246
- }
247
- }
248
- else if (node.kind === "fragment") {
249
- for (const binding of options.manifest.templates[node.template].bindings)
250
- if (binding.kind === "slot") {
251
- const slot = marker(instance, binding.name);
252
- const children = yield* reconcile(slot, instance.children.get(binding.name) ?? [], node.slots[binding.name] ?? [], version, adopt, connection);
253
- instance.children.set(binding.name, children);
254
- }
255
- }
256
- }
257
- if (connection)
258
- for (const instance of next)
259
- if (instance.node.kind !== "client")
260
- instance.presentation = connection.group(instance.node.key, [...instance.children.values()].flat().map(child => child.presentation));
261
- for (const instance of byKey.values())
262
- yield* external(() => instance.dispose());
263
- let cursor = parent.firstChild;
264
- for (const instance of next) {
265
- if (instance.host !== cursor)
266
- parent.insertBefore(instance.host, cursor);
267
- cursor = instance.host.nextSibling;
268
- }
269
- // Initial adoption removes fallback/unmatched nodes, without replacing retained hosts.
270
- const kept = new Set(next.map(instance => instance.host));
271
- for (const child of Array.from(parent.childNodes))
272
- if (!kept.has(child))
273
- child.remove();
274
- complete = true;
275
- return next;
276
- }
277
- catch (error) {
278
- for (const instance of created)
279
- yield* external(() => instance.dispose());
280
- throw error;
281
- }
282
- }, Effect.scoped);
283
- const prepare = Effect.fnUntraced(function* (snapshot, version) {
284
- const required = new Map();
285
- const visit = (nodes, recoverable = false) => {
286
- for (const node of nodes)
287
- if (node.kind === "client") {
288
- required.set(node.component, (required.get(node.component) ?? true) && recoverable);
289
- visit(node.children ?? [], recoverable);
290
- }
291
- else if (node.kind === "boundary")
292
- visit(node.children, true);
293
- else
294
- Object.values(node.slots).forEach(children => visit(children, recoverable));
295
- };
296
- visit(snapshot.tree);
297
- yield* Effect.forEach(required, ([id, recoverable]) => {
298
- const failed = preparationErrors.get(`${version}:${id}`);
299
- if (failed)
300
- return recoverable ? Effect.void : Effect.fail(failed);
301
- return bounded(() => {
302
- if (!modules.has(id)) {
303
- const load = clients[id]();
304
- modules.set(id, load);
305
- void load.catch(() => { if (modules.get(id) === load)
306
- modules.delete(id); });
307
- }
308
- return modules.get(id);
309
- }).pipe(Effect.flatMap(module => typeof module.mountPersistent === "function" ? Effect.void : Effect.fail(new Error("Client component needs a persistent mount contract"))), Effect.catch(error => Effect.sync(() => { modules.delete(id); if (version === generation)
310
- preparationErrors.set(`${version}:${id}`, error); }).pipe(Effect.andThen(recoverable ? Effect.void : Effect.fail(error)))));
311
- }, { concurrency: 8, discard: true });
312
- });
313
- const commit = Effect.fnUntraced(function* (snapshot, version) {
314
- if (disposed || version !== generation)
315
- return false;
316
- const active = document.activeElement;
317
- const selection = active && isInput(active) ? [active.selectionStart, active.selectionEnd, active.selectionDirection] : undefined;
318
- if (scope !== undefined && scope !== snapshot.scope) {
319
- for (const root of roots)
320
- yield* external(() => root.dispose());
321
- roots = [];
322
- }
323
- const adopt = scope === undefined;
324
- operationScope = snapshot.scope;
325
- const next = yield* reconcile(outlet, roots, snapshot.tree, version, adopt);
326
- roots = next;
327
- scope = snapshot.scope;
328
- if (active?.isConnected && document.activeElement !== active) {
329
- active.focus({ preventScroll: true });
330
- if (selection && selection[0] !== null && selection[1] !== null)
331
- try {
332
- active.setSelectionRange(selection[0], selection[1], selection[2] ?? undefined);
333
- }
334
- catch (error) {
335
- errors(error);
336
- }
337
- }
338
- outlet.dispatchEvent(new document.defaultView.CustomEvent("fuzor:view-commit"));
339
- return true;
340
- });
341
- /** One Effect-owned generation owns every frame, including an in-flight commit. */
342
- const sequence = (payload, signal) => {
343
- if (disposed)
344
- return Promise.reject(new Error("View renderer disposed"));
345
- activeOperation?.abort();
346
- const controller = new AbortController();
347
- activeOperation = controller;
348
- const version = ++generation;
349
- preparationErrors.clear();
350
- const operationSignal = signal ? AbortSignal.any([signal, controller.signal]) : controller.signal;
351
- const schedule = (payload) => run(Effect.gen(function* () {
352
- if (version !== generation || disposed || operationSignal.aborted)
353
- return false;
354
- const snapshot = yield* Effect.try({ try: () => validateSnapshot(payload, options.manifest, clientIds, handlerIds, options.limits), catch: error => error });
355
- yield* prepare(snapshot, version);
356
- return yield* commitLock.withPermit(commit(snapshot, version));
357
- }), operationSignal).catch(error => { if (operationSignal.aborted)
358
- return false; throw error; });
359
- return run(Effect.gen(function* () {
360
- const snapshot = yield* Effect.try({ try: () => validateSnapshot(payload, options.manifest, clientIds, handlerIds, options.limits), catch: error => error });
361
- yield* prepare(snapshot, version);
362
- return { commit: () => schedule(snapshot), push: schedule };
363
- }), operationSignal).catch(error => {
364
- if (operationSignal.aborted)
365
- return { commit: () => Promise.resolve(false), push: () => Promise.resolve(false) };
366
- throw error;
367
- });
368
- };
369
- const prepareRender = (payload, signal) => sequence(payload, signal).then(pending => pending.commit);
370
- const render = (payload) => prepareRender(payload).then(commit => commit());
371
- const followDocument = (push, signal) => {
372
- stopDocument?.();
373
- let next = 1, bytes = 0, stopped = false;
374
- const frameLock = Semaphore.makeUnsafe(1);
375
- const stop = () => { stopped = true; observer.disconnect(); signal?.removeEventListener("abort", stop); };
376
- const scan = () => {
377
- for (const script of document.querySelectorAll("script[data-fuzor-stream]")) {
378
- const end = script.nextElementSibling;
379
- // The parser may have inserted the start tag before the full JSON arrives.
380
- if (!end?.hasAttribute("data-fuzor-frame-end"))
381
- continue;
382
- const text = script.textContent ?? "";
383
- script.remove();
384
- end.remove();
385
- void run(frameLock.withPermit(Effect.gen(function* () {
386
- if (stopped || signal?.aborted)
387
- return;
388
- bytes += new TextEncoder().encode(text).byteLength;
389
- if (bytes > 16 * 1024 * 1024 || next > 65)
390
- throw new Error("Document view stream limit exceeded");
391
- const frame = validateFrame(JSON.parse(text), next++);
392
- if (frame.type === "done") {
393
- stop();
394
- return;
395
- }
396
- if (!(yield* external(() => push(frame.snapshot))))
397
- stop();
398
- }))).catch(error => { stop(); errors(error); });
399
- }
400
- };
401
- const observer = new document.defaultView.MutationObserver(scan);
402
- observer.observe(document.documentElement, { childList: true, subtree: true });
403
- signal?.addEventListener("abort", stop, { once: true });
404
- stopDocument = stop;
405
- scan();
406
- return stop;
407
- };
408
- const clear = () => {
409
- generation++;
410
- activeOperation?.abort();
411
- activeFetch?.abort();
412
- stopDocument?.();
413
- return run(commitLock.withPermit(Effect.gen(function* () {
414
- const previous = roots;
415
- roots = [];
416
- scope = undefined;
417
- yield* Effect.forEach(previous, root => external(() => root.dispose()), { concurrency: 8, discard: true });
418
- })));
419
- };
420
- const eventListener = (event) => {
421
- let target = event.target;
422
- if (target?.nodeType !== 1)
423
- target = target?.parentElement ?? null;
424
- const element = target?.closest(`[data-fuzor-on-${event.type}]`);
425
- if (!element || !outlet.contains(element))
426
- return;
427
- const host = element.closest("fuzor-fragment,fuzor-client,fuzor-boundary");
428
- const instance = host && owned.get(host);
429
- if (!instance || instance.node.kind !== "fragment")
430
- return;
431
- const name = element.getAttribute(`data-fuzor-on-${event.type}`);
432
- const reference = instance.node.handlers[name];
433
- if (!reference)
434
- return;
435
- if (reference.preventDefault)
436
- event.preventDefault();
437
- const current = target;
438
- const snapshot = { type: event.type, ...(current && "value" in current ? { value: current.value, checked: current.checked } : {}), ...("key" in event ? { key: String(event.key) } : {}) };
439
- const props = instance.node.values;
440
- // Queue by instance, so several clicks during a lazy import keep their order.
441
- void run(instance.eventLock.withPermit(Effect.gen(function* () {
442
- if (instance.lifetime.signal.aborted)
443
- return;
444
- if (!loadedHandlers.has(reference.id)) {
445
- const load = handlers[reference.id]();
446
- loadedHandlers.set(reference.id, load);
447
- void load.catch(() => { loadedHandlers.delete(reference.id); });
448
- }
449
- const handler = yield* bounded(() => loadedHandlers.get(reference.id)).pipe(Effect.catch(error => Effect.sync(() => loadedHandlers.delete(reference.id)).pipe(Effect.andThen(Effect.fail(error)))));
450
- if (instance.lifetime.signal.aborted)
451
- return;
452
- yield* bounded(() => handler({ event: snapshot, element, props, capture: reference.capture ?? {}, signal: instance.lifetime.signal,
453
- get: name => { const cell = instance.cells.get(name); if (!cell)
454
- throw new Error(`Unknown state cell: ${name}`); return instance.registry.get(cell); },
455
- set: (name, value) => {
456
- if (instance.lifetime.signal.aborted)
457
- return;
458
- const cell = instance.cells.get(name);
459
- if (!cell)
460
- throw new Error(`Unknown state cell: ${name}`);
461
- const binding = instance.node.kind === "fragment" ? options.manifest.templates[instance.node.template].bindings.find(binding => binding.name === name && binding.kind === "checked") : undefined;
462
- if (binding && typeof value !== "boolean")
463
- throw new Error("Checkbox state requires a boolean");
464
- scalar(value);
465
- instance.registry.set(cell, value);
466
- apply(instance);
467
- } }));
468
- })), instance.lifetime.signal).catch(error => { if (!instance.lifetime.signal.aborted)
469
- errors(error); });
470
- };
471
- const eventTypes = ["click", "input", "change", "submit", "keydown"];
472
- eventTypes.forEach(type => outlet.addEventListener(type, eventListener));
473
- return {
474
- render,
475
- prepare: prepareRender,
476
- sequence,
477
- followDocument,
478
- clear,
479
- /** Adopt the matching SSR tree; native state restores without calling component setup. */
480
- resume: () => run(Effect.gen(function* () {
481
- const script = document.querySelector("script[data-fuzor-snapshot]");
482
- if (!script)
483
- return yield* Effect.fail(new Error("Missing server component snapshot"));
484
- const pending = yield* external(() => sequence(JSON.parse(script.textContent ?? "")));
485
- const result = yield* external(() => pending.commit());
486
- if (result && script.hasAttribute("data-fuzor-streaming"))
487
- followDocument(pending.push);
488
- return result;
489
- })),
490
- refresh: (href, options = {}) => {
491
- activeFetch?.abort();
492
- const controller = new AbortController();
493
- activeFetch = controller;
494
- const abort = () => controller.abort();
495
- options.signal?.addEventListener("abort", abort, { once: true });
496
- if (options.signal?.aborted)
497
- controller.abort();
498
- // Supersede pending preparation immediately, not only after the new response arrives.
499
- activeOperation?.abort();
500
- const version = ++generation;
501
- return run(Effect.gen(function* () {
502
- const target = new URL(href, document.baseURI);
503
- if (target.origin !== new URL(document.baseURI).origin)
504
- throw new Error("Server view URL must be same-origin");
505
- const url = `${normalizeBase(options.base)}_fuzor/render?url=${encodeURIComponent(target.pathname + target.search)}`;
506
- const response = yield* external(() => (options.fetch ?? globalThis.fetch)(url, { signal: controller.signal, credentials: "same-origin", headers: { accept: "application/vnd.fuzor.view-stream+json" } }));
507
- if (!response.ok)
508
- throw new Error(`Server view request failed: ${response.status}`);
509
- if (response.headers.get("content-type")?.includes("application/vnd.fuzor.view-stream+json")) {
510
- let pending;
511
- let committed = true;
512
- const stream = readViewStream(response, controller.signal);
513
- yield* Effect.gen(function* () {
514
- while (committed) {
515
- const part = yield* external(() => stream.next());
516
- if (part.done)
517
- break;
518
- const snapshot = part.value;
519
- if (!pending) {
520
- if (disposed || version !== generation) {
521
- committed = false;
522
- break;
523
- }
524
- pending = yield* external(() => sequence(snapshot, controller.signal));
525
- committed = yield* external(() => pending.commit());
526
- }
527
- else
528
- committed = yield* external(() => pending.push(snapshot));
529
- }
530
- }).pipe(Effect.ensuring(external(() => stream.return()).pipe(Effect.catch(error => Effect.sync(() => errors(error))))));
531
- return !!pending && committed;
532
- }
533
- const payload = yield* external(() => response.json());
534
- if (disposed || controller.signal.aborted || version !== generation)
535
- return false;
536
- return yield* external(() => render(payload));
537
- }).pipe(Effect.ensuring(Effect.sync(() => { options.signal?.removeEventListener("abort", abort); if (activeFetch === controller)
538
- activeFetch = undefined; }))), controller.signal);
539
- },
540
- whenIdle: () => run(Effect.gen(function* () {
541
- yield* commitLock.withPermit(Effect.void);
542
- const wait = (list) => Effect.forEach(list, instance => instance.eventLock.withPermit(Effect.void).pipe(Effect.flatMap(() => wait([...instance.children.values()].flat()))), { concurrency: 8, discard: true });
543
- yield* wait(roots);
544
- })),
545
- dispose: () => {
546
- if (disposal)
547
- return disposal;
548
- disposed = true;
549
- generation++;
550
- activeOperation?.abort();
551
- activeFetch?.abort();
552
- stopDocument?.();
553
- eventTypes.forEach(type => outlet.removeEventListener(type, eventListener));
554
- return disposal = clear();
555
- },
556
- };
557
- }
558
- //# sourceMappingURL=browser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/server-components/browser.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { CompiledFragment } from "./protocol.js";
2
- /** Compile once at build time; request rendering copies static byte ranges and fills typed holes. */
3
- export declare function compileFragment(html: string): CompiledFragment;
4
- /** Standalone Vite integration; the regular Fuzor plugin also recognizes these imports. */
5
- export declare function compiledFragmentsPlugin(): import("vite").Plugin;
6
- //# sourceMappingURL=compiler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/server-components/compiler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAW,gBAAgB,EAAgB,MAAM,eAAe,CAAC;AAG7E,qGAAqG;AACrG,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CA2D9D;AAED,2FAA2F;AAC3F,wBAAgB,uBAAuB,IAAI,OAAO,MAAM,EAAE,MAAM,CAe/D"}