@takazudo/zfb-runtime 0.1.0-next.13 → 0.1.0-next.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"client-router.d.ts","sourceRoot":"","sources":["../src/client-router.ts"],"names":[],"mappings":"AA4CA,MAAM,WAAW,iBAAiB;IAChC,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB,CAAC;AAqCF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAoB,EACpB,WAAW,EAAE,eAAuB,GACrC,GAAE,iBAAsB,GAAG,SAAS,mBAAmB,EAAE,CAmCzD"}
1
+ {"version":3,"file":"client-router.d.ts","sourceRoot":"","sources":["../src/client-router.ts"],"names":[],"mappings":"AAoDA,MAAM,WAAW,iBAAiB;IAChC,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB,CAAC;AAyCF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAoB,EACpB,WAAW,EAAE,eAAuB,GACrC,GAAE,iBAAsB,GAAG,SAAS,mBAAmB,EAAE,CA6CzD"}
@@ -12,13 +12,19 @@
12
12
  // via `init()`. The component calls `init()` as a side effect on first import.
13
13
  // No inline <script> dangerouslySetInnerHTML is emitted.
14
14
  //
15
- // Named-cause deviation no JSX (W1B: "follow existing component-emission pattern"):
16
- // `@takazudo/zfb-runtime` does not depend on Preact and has no JSX compiler
17
- // options configured in its tsconfig. The existing component-emission pattern
18
- // (established by `Island` in @takazudo/zfb, and `ViewTransitions` in this
19
- // package) uses plain VNode-shaped objects with `constructor: undefined` the
20
- // sentinel recognised by both Preact and React renderers. Following that pattern
21
- // avoids adding Preact as a dependency and avoids tsconfig JSX changes.
15
+ // Framework-agnostic element minting (no JSX syntax):
16
+ // `@takazudo/zfb-runtime` does not depend on a framework runtime. Head nodes
17
+ // are minted by calling `jsx` from `react/jsx-runtime` directly — NOT JSX
18
+ // syntax, so this stays a plain `.ts` file with no tsconfig JSX changes. The
19
+ // engine alias-rewrites `react/jsx-runtime` `preact/jsx-runtime` in Preact
20
+ // mode (bundler.rs ~2886) and resolves it natively in React mode, so the same
21
+ // call mints a real element for whichever framework the project configured.
22
+ // The previous approach (a hand-rolled `{ type, props, key, constructor:
23
+ // undefined }` object literal — the Preact diff-path sentinel) only worked for
24
+ // Preact: React's renderer rejects such an object as a child with React error
25
+ // #31 ("Objects are not valid as a React child"), because a real React element
26
+ // carries `$$typeof: Symbol.for("react.element")` a literal cannot fake. Same
27
+ // migration as `Island` in @takazudo/zfb.
22
28
  //
23
29
  // The component renders three sibling elements to <head>:
24
30
  // 1. A <style> tag with the `.zfb-route-announcer` ARIA helper class.
@@ -27,6 +33,7 @@
27
33
  //
28
34
  // The route-announcer <div> is injected into <body> by `announce()` in
29
35
  // `client-router/router.ts` on every navigation.
36
+ import { jsx } from "react/jsx-runtime";
30
37
  import { init } from "./client-router/router.js";
31
38
  import { init as prefetchInit } from "./client-router/prefetch.js";
32
39
  // Side-effect: wire click + submit intercepts on first import of this component.
@@ -39,14 +46,23 @@ if (typeof document !== "undefined") {
39
46
  // lifetime even if <ClientRouter prefetchAll /> is mounted multiple times (#276).
40
47
  let prefetchBootstrapped = false;
41
48
  /**
42
- * Construct a VNode-shaped object. Sets `constructor: undefined` so that both
43
- * Preact's and React's renderers treat it as a structural VNode rather than
44
- * foreign data. (Mirrors the `makeVNode` pattern in `@takazudo/zfb`'s Island.)
49
+ * Mint a head element through the per-project JSX runtime.
50
+ *
51
+ * Calls `jsx` from `react/jsx-runtime` (alias-rewritten to
52
+ * `preact/jsx-runtime` in Preact mode by the engine, native in React mode)
53
+ * so the returned value is a real element for whichever framework the
54
+ * project configured — NOT a hand-rolled `{ type, props, key }` literal,
55
+ * which only Preact accepts and which makes React throw error #31. A stable
56
+ * `key` is passed because `ClientRouter()` returns these nodes in a plain
57
+ * array (React warns about keyless list children otherwise). Mirrors the
58
+ * `Island` migration in `@takazudo/zfb`.
45
59
  */
46
- function makeVNode(type, props) {
47
- const v = { type, props, key: null };
48
- v.constructor = undefined;
49
- return v;
60
+ function makeVNode(type, props, key) {
61
+ // `jsx`'s `type` param is typed `ElementType` (string-literal intrinsic
62
+ // tags or component types), which rejects an arbitrary runtime `string`.
63
+ // The tag is dynamic here, so cast to the factory's own first-param type —
64
+ // robust whether the engine aliases `jsx` to react or preact at build time.
65
+ return jsx(type, props, key);
50
66
  }
51
67
  // CSS for the route-announcer element. Ported verbatim from Astro's
52
68
  // `<style is:global>` block in ClientRouter.astro (lines 11–23), renaming
@@ -91,11 +107,11 @@ export function ClientRouter({ fallback = "animate", prefetchAll: prefetchAllPro
91
107
  }
92
108
  const nodes = [
93
109
  // Global styles for the ARIA route-announcer div injected into <body>.
94
- makeVNode("style", { dangerouslySetInnerHTML: { __html: announcerCss } }),
110
+ makeVNode("style", { dangerouslySetInnerHTML: { __html: announcerCss } }, "zfb-vt-style"),
95
111
  // Opt-in meta tag: router checks for this to decide whether to intercept navigations.
96
- makeVNode("meta", { name: "zfb-view-transitions-enabled", content: "true" }),
112
+ makeVNode("meta", { name: "zfb-view-transitions-enabled", content: "true" }, "zfb-vt-enabled"),
97
113
  // Fallback strategy meta tag: read by getFallback() in router.ts.
98
- makeVNode("meta", { name: "zfb-view-transitions-fallback", content: fallback }),
114
+ makeVNode("meta", { name: "zfb-view-transitions-fallback", content: fallback }, "zfb-vt-fallback"),
99
115
  ];
100
116
  // Prefetch-disabled meta tag (#277): emitted when the bundler set
101
117
  // `globalThis.__zfb.prefetchDisabled = true` (from `zfb.config.ts`
@@ -110,7 +126,7 @@ export function ClientRouter({ fallback = "animate", prefetchAll: prefetchAllPro
110
126
  // Pin the contract verbatim — the attribute names and content value are
111
127
  // shared with the sibling prefetch-core sub-issue (#276).
112
128
  if (globalThis.__zfb?.prefetchDisabled === true) {
113
- nodes.push(makeVNode("meta", { name: "zfb-prefetch-disabled", content: "true" }));
129
+ nodes.push(makeVNode("meta", { name: "zfb-prefetch-disabled", content: "true" }, "zfb-prefetch-disabled"));
114
130
  }
115
131
  return nodes;
116
132
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client-router.js","sourceRoot":"","sources":["../src/client-router.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,EAAE;AACF,wDAAwD;AACxD,uDAAuD;AACvD,yEAAyE;AACzE,EAAE;AACF,2DAA2D;AAC3D,2EAA2E;AAC3E,6EAA6E;AAC7E,2EAA2E;AAC3E,+EAA+E;AAC/E,iFAAiF;AACjF,2DAA2D;AAC3D,EAAE;AACF,sFAAsF;AACtF,8EAA8E;AAC9E,gFAAgF;AAChF,6EAA6E;AAC7E,iFAAiF;AACjF,mFAAmF;AACnF,0EAA0E;AAC1E,EAAE;AACF,0DAA0D;AAC1D,wEAAwE;AACxE,mEAAmE;AACnE,wEAAwE;AACxE,EAAE;AACF,uEAAuE;AACvE,iDAAiD;AAEjD,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACjD,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEnE,iFAAiF;AACjF,gFAAgF;AAChF,oEAAoE;AACpE,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;IACpC,IAAI,EAAE,CAAC;AACT,CAAC;AAED,8EAA8E;AAC9E,kFAAkF;AAClF,IAAI,oBAAoB,GAAG,KAAK,CAAC;AAuBjC;;;;GAIG;AACH,SAAS,SAAS,CAAC,IAAY,EAAE,KAA8B;IAC7D,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAKjC,CAAC;IACF,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC;IAC1B,OAAO,CAAwB,CAAC;AAClC,CAAC;AAED,oEAAoE;AACpE,0EAA0E;AAC1E,gEAAgE;AAChE,uEAAuE;AACvE,+EAA+E;AAC/E,MAAM,YAAY,GAAG;;;;;;;;;;;;CAYpB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,QAAQ,GAAG,SAAS,EACpB,WAAW,EAAE,eAAe,GAAG,KAAK,MACf,EAAE;IACvB,0EAA0E;IAC1E,4EAA4E;IAC5E,4DAA4D;IAC5D,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,eAAe,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAChF,oBAAoB,GAAG,IAAI,CAAC;QAC5B,YAAY,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,KAAK,GAA0B;QACnC,uEAAuE;QACvE,SAAS,CAAC,OAAO,EAAE,EAAE,uBAAuB,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC;QACzE,sFAAsF;QACtF,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAC5E,kEAAkE;QAClE,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;KAChF,CAAC;IAEF,kEAAkE;IAClE,mEAAmE;IACnE,0EAA0E;IAC1E,iFAAiF;IACjF,gDAAgD;IAChD,EAAE;IACF,yEAAyE;IACzE,+EAA+E;IAC/E,iBAAiB;IACjB,EAAE;IACF,wEAAwE;IACxE,0DAA0D;IAC1D,IAAK,UAAyD,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,EAAE,CAAC;QAChG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"client-router.js","sourceRoot":"","sources":["../src/client-router.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAyCA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAMrD;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;IAC9D,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACtD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;CAC7E;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;CAC5C;AAED,gDAAgD;AAChD,MAAM,WAAW,uBAAuB;IACtC,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;CACtC;AAED;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AA4CjE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,uBAAuB,GAAG,UAAU,CA0P1E"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAyCA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAMrD;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;IAC9D,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACtD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;CAC7E;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;CAC5C;AAED,gDAAgD;AAChD,MAAM,WAAW,uBAAuB;IACtC,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;CACtC;AAED;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AA4CjE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,uBAAuB,GAAG,UAAU,CAyQ1E"}
package/dist/router.js CHANGED
@@ -279,24 +279,40 @@ export function createPageRouter(opts) {
279
279
  // `await` so async page modules (e.g. API routes typed as
280
280
  // `(): Promise<Response>`) resolve before we inspect the value.
281
281
  // For sync pages that return a VNode/string the await is a no-op.
282
- const result = await mod.default(componentInput);
283
- // API route short-circuit: a page module that returns a Response
284
- // directly (e.g. `pages/api/*.tsx` handlers that use Web Fetch
285
- // primitives instead of returning JSX) is responsible for its own
286
- // status, headers, and body return it as-is rather than running
287
- // it through the framework SSR path.
288
- if (result instanceof Response) {
289
- return result;
282
+ //
283
+ // Wrapped in a try/catch so that any error thrown by the component
284
+ // or by renderToString surfaces as a descriptive 500 rather than
285
+ // escaping to Hono's generic error handler (which discards the real
286
+ // message). Mirrors the getStaticProps catch above.
287
+ try {
288
+ const result = await mod.default(componentInput);
289
+ // API route short-circuit: a page module that returns a Response
290
+ // directly (e.g. `pages/api/*.tsx` handlers that use Web Fetch
291
+ // primitives instead of returning JSX) is responsible for its own
292
+ // status, headers, and body — return it as-is rather than running
293
+ // it through the framework SSR path. A `return` from inside a
294
+ // `try` does not trigger the `catch`, so this passes through
295
+ // correctly without special-casing.
296
+ if (result instanceof Response) {
297
+ return result;
298
+ }
299
+ // Non-HTML routes (e.g. `sitemap.xml.tsx`, `feed.xml.tsx`) commonly
300
+ // return their body as a pre-serialised `string` instead of a
301
+ // VNode. Routing those through `framework.renderToString` would
302
+ // HTML-escape the angle brackets and ampersands, producing
303
+ // garbage XML. Pass strings through verbatim; only wrap actual
304
+ // VNodes.
305
+ const html = typeof result === "string" ? result : opts.framework.renderToString(result);
306
+ const contentType = mod.contentType ?? DEFAULT_CONTENT_TYPE;
307
+ return c.body(ensureHtml5Doctype(html, contentType), 200, { "Content-Type": contentType });
308
+ }
309
+ catch (err) {
310
+ const msg = err instanceof Error ? err.message : String(err);
311
+ const stack = err instanceof Error && err.stack ? `\n${err.stack}` : "";
312
+ return c.body(`[zfb-runtime] render threw for "${page.route}": ${msg}${stack}`, 500, {
313
+ "Content-Type": "text/plain; charset=utf-8",
314
+ });
290
315
  }
291
- // Non-HTML routes (e.g. `sitemap.xml.tsx`, `feed.xml.tsx`) commonly
292
- // return their body as a pre-serialised `string` instead of a
293
- // VNode. Routing those through `framework.renderToString` would
294
- // HTML-escape the angle brackets and ampersands, producing
295
- // garbage XML. Pass strings through verbatim; only wrap actual
296
- // VNodes.
297
- const html = typeof result === "string" ? result : opts.framework.renderToString(result);
298
- const contentType = mod.contentType ?? DEFAULT_CONTENT_TYPE;
299
- return c.body(ensureHtml5Doctype(html, contentType), 200, { "Content-Type": contentType });
300
316
  });
301
317
  }
302
318
  // Hono's `app.fetch` returns `Response | Promise<Response>`. The
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,EAAE;AACF,wEAAwE;AACxE,mCAAmC;AACnC,EAAE;AACF,oDAAoD;AACpD,0DAA0D;AAC1D,8EAA8E;AAC9E,gEAAgE;AAChE,uCAAuC;AACvC,EAAE;AACF,qEAAqE;AACrE,0EAA0E;AAC1E,uEAAuE;AACvE,uEAAuE;AACvE,4DAA4D;AAC5D,EAAE;AACF,qEAAqE;AACrE,kEAAkE;AAClE,oEAAoE;AACpE,+DAA+D;AAC/D,EAAE;AACF,oCAAoC;AACpC,EAAE;AACF,0EAA0E;AAC1E,qFAAqF;AACrF,qEAAqE;AACrE,+BAA+B;AAC/B,EAAE;AACF,+CAA+C;AAC/C,EAAE;AACF,4EAA4E;AAC5E,yEAAyE;AACzE,0EAA0E;AAC1E,2EAA2E;AAC3E,4EAA4E;AAC5E,uEAAuE;AAEvE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAwF3D,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E;;;;;;GAMG;AACH,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AAExD;;;;;;;;;;;;;;;GAeG;AACH,SAAS,kBAAkB,CAAC,IAAY,EAAE,WAAmB;IAC3D,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClE,IAAI,SAAS,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC3C,yEAAyE;IACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;IACpD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACpD,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/C,OAAO,oBAAoB,IAAI,EAAE,CAAC;QACpC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAA6B;IAC5D,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAEzC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IAEvB,mEAAmE;IACnE,wEAAwE;IACxE,iEAAiE;IACjE,MAAM,YAAY,GAAG,IAAI,GAAG,EAA0B,CAAC;IACvD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,iEAAiE;IACjE,iEAAiE;IACjE,oEAAoE;IACpE,sEAAsE;IACtE,oEAAoE;IACpE,oEAAoE;IACpE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,+DAA+D;YAC/D,yDAAyD;YACzD,0DAA0D;YAC1D,yCAAyC;YACzC,sCAAsC;YACtC,OAAO,CAAC,IAAI,CACV,wBAAwB,IAAI,CAAC,KAAK,gGAAgG,CACnI,CAAC;QACJ,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,uDAAuD;IACvD,EAAE;IACF,wEAAwE;IACxE,yEAAyE;IACzE,wEAAwE;IACxE,uEAAuE;IACvE,oEAAoE;IACpE,EAAE;IACF,sEAAsE;IACtE,+DAA+D;IAC/D,uEAAuE;IACvE,EAAE;IACF,gEAAgE;IAChE,kEAAkE;IAClE,qDAAqD;IACrD,4EAA4E;IAC5E,GAAG,CAAC,GAAG,CAAC,0BAA0B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC9C,oEAAoE;QACpE,gEAAgE;QAChE,2DAA2D;QAC3D,iEAAiE;QACjE,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAEzC,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,CAAC,IAAI,CACX,+DAA+D,QAAQ,GAAG,EAC1E,GAAG,EACH,EAAE,cAAc,EAAE,2BAA2B,EAAE,CAChD,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YACpC,OAAO,CAAC,CAAC,IAAI,CACX,8CAA8C,QAAQ,yBAAyB,EAC/E,GAAG,EACH,EAAE,cAAc,EAAE,2BAA2B,EAAE,CAChD,CAAC;QACJ,CAAC;QAED,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,CAAC,CAAC,IAAI,CAAC,gDAAgD,QAAQ,MAAM,GAAG,EAAE,EAAE,GAAG,EAAE;gBACtF,cAAc,EAAE,2BAA2B;aAC5C,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE;YACzC,cAAc,EAAE,iCAAiC;SAClD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,uEAAuE;QACvE,oDAAoD;QACpD,qEAAqE;QACrE,sEAAsE;QACtE,kEAAkE;QAClE,oEAAoE;QACpE,gCAAgC;QAChC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBACtC,iEAAiE;gBACjE,+DAA+D;gBAC/D,kEAAkE;gBAClE,+DAA+D;gBAC/D,mDAAmD;gBACnD,OAAO,CAAC,CAAC,IAAI,CACX,kCAAkC,IAAI,CAAC,KAAK,sCAAsC,EAClF,GAAG,EACH,EAAE,cAAc,EAAE,2BAA2B,EAAE,CAChD,CAAC;YACJ,CAAC;YAED,iEAAiE;YACjE,4DAA4D;YAC5D,yDAAyD;YACzD,mCAAmC;YACnC,4EAA4E;YAC5E,EAAE;YACF,kEAAkE;YAClE,mEAAmE;YACnE,+DAA+D;YAC/D,iEAAiE;YACjE,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,CAAC,YAAY,IAAI,EAAE,CAA2B,CAAC;YACjE,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAE3D,IAAI,cAAc,GAA4B,EAAE,CAAC;YAEjD,IAAI,gBAAgB,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBACxD,IAAI,WAAoB,CAAC;gBACzB,IAAI,CAAC;oBACH,WAAW,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;gBAClC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC7D,OAAO,CAAC,CAAC,IAAI,CAAC,oCAAoC,IAAI,CAAC,KAAK,MAAM,GAAG,EAAE,EAAE,GAAG,EAAE;wBAC5E,cAAc,EAAE,2BAA2B;qBAC5C,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;oBAChC,OAAO,CAAC,CAAC,IAAI,CAAC,8BAA8B,IAAI,CAAC,KAAK,2BAA2B,EAAE,GAAG,EAAE;wBACtF,cAAc,EAAE,2BAA2B;qBAC5C,CAAC,CAAC;gBACL,CAAC;gBAED,iEAAiE;gBACjE,iEAAiE;gBACjE,2DAA2D;gBAC3D,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;oBAChC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;wBACzB,OAAO,CAAC,CAAC,IAAI,CACX,8BAA8B,IAAI,CAAC,KAAK,mDAAmD,EAC3F,GAAG,EACH,EAAE,cAAc,EAAE,2BAA2B,EAAE,CAChD,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,4DAA4D;gBAC5D,8CAA8C;gBAC9C,6DAA6D;gBAC7D,+DAA+D;gBAC/D,+BAA+B;gBAC/B,MAAM,KAAK,GAAI,WAA4B,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;oBACzD,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;wBAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wBACjC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAC5B,oDAAoD;4BACpD,qCAAqC;4BACrC,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAClC,CAAC;wBACD,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAChC,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,0DAA0D;oBAC1D,wDAAwD;oBACxD,6DAA6D;oBAC7D,2DAA2D;oBAC3D,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACtB,CAAC;gBAED,6DAA6D;gBAC7D,4DAA4D;gBAC5D,+DAA+D;gBAC/D,kEAAkE;gBAClE,cAAc,GAAG;oBACf,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;iBACvB,CAAC;YACJ,CAAC;iBAAM,IAAI,CAAC,gBAAgB,IAAI,OAAO,GAAG,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;gBACzE,kEAAkE;gBAClE,kEAAkE;gBAClE,gEAAgE;gBAChE,oEAAoE;gBACpE,kEAAkE;gBAClE,IAAI,iBAA0B,CAAC;gBAC/B,IAAI,CAAC;oBACH,iBAAiB,GAAG,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC;gBACjD,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC7D,OAAO,CAAC,CAAC,IAAI,CAAC,6CAA6C,IAAI,CAAC,KAAK,MAAM,GAAG,EAAE,EAAE,GAAG,EAAE;wBACrF,cAAc,EAAE,2BAA2B;qBAC5C,CAAC,CAAC;gBACL,CAAC;gBACD,IACE,OAAO,iBAAiB,KAAK,QAAQ;oBACrC,iBAAiB,KAAK,IAAI;oBAC1B,CAAC,CAAC,OAAO,IAAI,iBAAiB,CAAC,EAC/B,CAAC;oBACD,OAAO,CAAC,CAAC,IAAI,CACX,uCAAuC,IAAI,CAAC,KAAK,gCAAgC,EACjF,GAAG,EACH,EAAE,cAAc,EAAE,2BAA2B,EAAE,CAChD,CAAC;gBACJ,CAAC;gBACD,cAAc,GAAI,iBAAwD,CAAC,KAAK,CAAC;YACnF,CAAC;YAED,0DAA0D;YAC1D,gEAAgE;YAChE,kEAAkE;YAClE,EAAE;YACF,mEAAmE;YACnE,iEAAiE;YACjE,oEAAoE;YACpE,oDAAoD;YACpD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBACjD,iEAAiE;gBACjE,+DAA+D;gBAC/D,kEAAkE;gBAClE,kEAAkE;gBAClE,8DAA8D;gBAC9D,6DAA6D;gBAC7D,oCAAoC;gBACpC,IAAI,MAAM,YAAY,QAAQ,EAAE,CAAC;oBAC/B,OAAO,MAAM,CAAC;gBAChB,CAAC;gBACD,oEAAoE;gBACpE,8DAA8D;gBAC9D,gEAAgE;gBAChE,2DAA2D;gBAC3D,+DAA+D;gBAC/D,UAAU;gBACV,MAAM,IAAI,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBACzF,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,IAAI,oBAAoB,CAAC;gBAC5D,OAAO,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;YAC7F,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxE,OAAO,CAAC,CAAC,IAAI,CAAC,mCAAmC,IAAI,CAAC,KAAK,MAAM,GAAG,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE;oBACnF,cAAc,EAAE,2BAA2B;iBAC5C,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iEAAiE;IACjE,oEAAoE;IACpE,2DAA2D;IAC3D,kEAAkE;IAClE,oDAAoD;IACpD,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACrD,CAAC;AAaD;;;;GAIG;AACH,SAAS,YAAY,CAAC,CAAU;IAC9B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,MAAM,GAAI,CAA0B,CAAC,MAAM,CAAC;IAClD,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC;AACvD,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,yBAAyB,CAAC,KAAa;IAC9C,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,+DAA+D;IAC/D,gEAAgE;IAChE,yBAAyB;IACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/D,+CAA+C;IAC/C,IAAI,6BAA6B,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,2DAA2D;IAC3D,IAAI,4BAA4B,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@takazudo/zfb-runtime",
3
- "version": "0.1.0-next.13",
3
+ "version": "0.1.0-next.15",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "JavaScript runtime for zfb static sites — Hono-backed page router, content snapshots, and client-side hydration.",
@@ -60,14 +60,16 @@
60
60
  "hono": "^4.7.0"
61
61
  },
62
62
  "peerDependencies": {
63
- "@takazudo/zfb": "0.1.0-next.13"
63
+ "@takazudo/zfb": "0.1.0-next.15"
64
64
  },
65
65
  "devDependencies": {
66
66
  "@types/node": "^22.0.0",
67
+ "@types/react": "^18.3.0",
67
68
  "happy-dom": "^15.7.4",
69
+ "react": "^18.3.1",
68
70
  "typescript": "^5.9.0",
69
71
  "vitest": "^2.1.9",
70
- "@takazudo/zfb": "0.1.0-next.13"
72
+ "@takazudo/zfb": "0.1.0-next.15"
71
73
  },
72
74
  "scripts": {
73
75
  "build": "tsc",