alabjs 0.2.3 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAsBA,UAAU,UAAU;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAoCD,wBAAsB,GAAG,CAAC,EAAE,GAAG,EAAE,IAAW,EAAE,IAAkB,EAAE,EAAE,UAAU,iBAye7E"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAsBA,UAAU,UAAU;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAoCD,wBAAsB,GAAG,CAAC,EAAE,GAAG,EAAE,IAAW,EAAE,IAAkB,EAAE,EAAE,UAAU,iBA6gB7E"}
@@ -3,7 +3,7 @@ import { resolve, join } from "node:path";
3
3
  import { readdirSync } from "node:fs";
4
4
  import { Writable } from "node:stream";
5
5
  import { scanDevRoutes, matchDevRoute, findLayoutFiles, findErrorFile, findLoadingFile, scanDevApiRoutes, matchDevApiRoute, } from "../ssr/router-dev.js";
6
- import { htmlShellBefore, htmlShellAfter } from "../ssr/html.js";
6
+ import { htmlShellBefore, htmlShellAfter, injectIntoFullDocument } from "../ssr/html.js";
7
7
  import { generateSitemap } from "../server/sitemap.js";
8
8
  import { handleImageRequest } from "../server/image.js";
9
9
  import { runMiddleware } from "../server/middleware.js";
@@ -197,6 +197,31 @@ export async function dev({ cwd, port = 3000, host = "localhost" }) {
197
197
  }
198
198
  return;
199
199
  }
200
+ // ── /_alabjs/vitals — Core Web Vitals beacon from <Analytics> component ───
201
+ if (pathname === "/_alabjs/vitals") {
202
+ if (req.method === "OPTIONS") {
203
+ res.setHeader("access-control-allow-origin", "*");
204
+ res.setHeader("access-control-allow-methods", "POST, OPTIONS");
205
+ res.setHeader("access-control-allow-headers", "content-type");
206
+ res.statusCode = 204;
207
+ res.end();
208
+ return;
209
+ }
210
+ if (req.method !== "POST") {
211
+ res.statusCode = 405;
212
+ res.setHeader("allow", "POST");
213
+ res.end();
214
+ return;
215
+ }
216
+ // Silently accept the beacon — dev mode doesn't aggregate metrics.
217
+ const vitalsBody = await readJsonBody(req);
218
+ console.debug("[alabjs] vitals beacon:", vitalsBody);
219
+ res.setHeader("access-control-allow-origin", "*");
220
+ res.setHeader("content-type", "application/json");
221
+ res.statusCode = 200;
222
+ res.end(JSON.stringify({ ok: true }));
223
+ return;
224
+ }
200
225
  // ── /_alabjs/image — Rust-powered image optimisation ───────────────────────
201
226
  if (pathname === "/_alabjs/image") {
202
227
  const publicDir = resolve(cwd, "public");
@@ -432,19 +457,30 @@ export async function dev({ cwd, port = 3000, host = "localhost" }) {
432
457
  const routeFile = route.file.replace(cwd, "").replace(/^\//, "");
433
458
  // ── Render helper (used for both fresh render + background revalidation) ─
434
459
  const revalidateSecs = typeof mod.revalidate === "number" ? mod.revalidate : null;
460
+ // Detect whether the SSR output is a full document (layout returns <html>).
461
+ // In that case we inject the alab meta tags and client script directly into
462
+ // the user-controlled <head>/<body> rather than wrapping in the shell div,
463
+ // which would produce invalid "html cannot be child of div" nesting.
464
+ const isFullDocument = ssrEnabled && ssrContent.trimStart().toLowerCase().startsWith("<html");
465
+ const shellOpts = {
466
+ paramsJson: JSON.stringify(params),
467
+ searchParamsJson: JSON.stringify(searchParams),
468
+ routeFile,
469
+ layoutsJson,
470
+ loadingFile,
471
+ ssr: ssrEnabled,
472
+ buildId: devBuildId,
473
+ };
435
474
  const renderPageHtml = async () => {
436
- const shellBefore = htmlShellBefore({
437
- metadata,
438
- paramsJson: JSON.stringify(params),
439
- searchParamsJson: JSON.stringify(searchParams),
440
- routeFile,
441
- layoutsJson,
442
- loadingFile,
443
- ssr: ssrEnabled,
444
- buildId: devBuildId,
445
- });
446
- const shellAfter = htmlShellAfter({});
447
- const rawHtml = `${shellBefore}${ssrContent}${shellAfter}`;
475
+ let rawHtml;
476
+ if (isFullDocument) {
477
+ rawHtml = injectIntoFullDocument(ssrContent, shellOpts);
478
+ }
479
+ else {
480
+ const shellBefore = htmlShellBefore({ metadata, headExtra: undefined, ...shellOpts });
481
+ const shellAfter = htmlShellAfter({});
482
+ rawHtml = `${shellBefore}${ssrContent}${shellAfter}`;
483
+ }
448
484
  return vite.transformIndexHtml(pathname, rawHtml);
449
485
  };
450
486
  // ── ISR: serve cached page if available ──────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
@@ -50,8 +50,13 @@ export interface FontProps {
50
50
  /**
51
51
  * Renders the `<link>` tags needed to load a Google Font.
52
52
  *
53
- * In production (`alab build --self-host-fonts`), the alab Vite plugin
54
- * replaces this with self-hosted CSS so no Google request is made.
53
+ * Only active in development (Vite dev server). In production (`alab build`),
54
+ * the build step self-hosts the font files, so this component renders nothing.
55
+ * Gating on `import.meta.env.DEV` ensures the server and client always agree:
56
+ * both render the links in dev, both render nothing in production — preventing
57
+ * a hydration mismatch that occurs when the server loads the pre-built dist
58
+ * (where `import.meta.env.DEV` is `false`) while the client gets live Vite
59
+ * processing (where it is `true`).
55
60
  */
56
- export declare function Font(props: FontProps): import("react/jsx-runtime").JSX.Element;
61
+ export declare function Font(props: FontProps): import("react/jsx-runtime").JSX.Element | null;
57
62
  //# sourceMappingURL=Font.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Font.d.ts","sourceRoot":"","sources":["../../src/components/Font.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;IAC9D;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAgCD;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,2CAYpC"}
1
+ {"version":3,"file":"Font.d.ts","sourceRoot":"","sources":["../../src/components/Font.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;IAC9D;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAgCD;;;;;;;;;;GAUG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,kDAiBpC"}
@@ -23,10 +23,20 @@ function buildGoogleFontsUrl(props) {
23
23
  /**
24
24
  * Renders the `<link>` tags needed to load a Google Font.
25
25
  *
26
- * In production (`alab build --self-host-fonts`), the alab Vite plugin
27
- * replaces this with self-hosted CSS so no Google request is made.
26
+ * Only active in development (Vite dev server). In production (`alab build`),
27
+ * the build step self-hosts the font files, so this component renders nothing.
28
+ * Gating on `import.meta.env.DEV` ensures the server and client always agree:
29
+ * both render the links in dev, both render nothing in production — preventing
30
+ * a hydration mismatch that occurs when the server loads the pre-built dist
31
+ * (where `import.meta.env.DEV` is `false`) while the client gets live Vite
32
+ * processing (where it is `true`).
28
33
  */
29
34
  export function Font(props) {
35
+ // Return nothing in production — self-hosted fonts are injected by the build.
36
+ // This must be checked before building the URL so the server and client
37
+ // always produce identical output (both null in prod, both links in dev).
38
+ if (!import.meta.env.DEV)
39
+ return null;
30
40
  const href = buildGoogleFontsUrl(props);
31
41
  return (_jsxs(_Fragment, { children: [_jsx("link", { rel: "preconnect", href: "https://fonts.googleapis.com" }), _jsx("link", { rel: "preconnect", href: "https://fonts.gstatic.com", crossOrigin: "anonymous" }), _jsx("link", { rel: "stylesheet", href: href })] }));
32
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Font.js","sourceRoot":"","sources":["../../src/components/Font.tsx"],"names":[],"mappings":";AAmDA;;;GAGG;AACH,SAAS,mBAAmB,CAAC,KAAgB;IAC3C,MAAM,EACJ,MAAM,EACN,OAAO,GAAG,CAAC,GAAG,CAAC,EACf,OAAO,GAAG,CAAC,OAAO,CAAC,EACnB,OAAO,GAAG,MAAM,EAChB,MAAM,GAAG,KAAK,GACf,GAAG,KAAK,CAAC;IAEV,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEhD,mEAAmE;IACnE,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,aAAa,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAEzD,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,MAAM,CAAC,IAAI,aAAa;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnD,KAAK,MAAM,CAAC,IAAI,aAAa;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,aAAa,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9C,OAAO,4CAA4C,aAAa,IAAI,OAAO,YAAY,OAAO,WAAW,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAC/H,CAAC;IAED,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,4CAA4C,aAAa,SAAS,UAAU,YAAY,OAAO,WAAW,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACvI,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,IAAI,CAAC,KAAgB;IACnC,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAExC,OAAO,CACL,8BAEE,eAAM,GAAG,EAAC,YAAY,EAAC,IAAI,EAAC,8BAA8B,GAAG,EAC7D,eAAM,GAAG,EAAC,YAAY,EAAC,IAAI,EAAC,2BAA2B,EAAC,WAAW,EAAC,WAAW,GAAG,EAElF,eAAM,GAAG,EAAC,YAAY,EAAC,IAAI,EAAE,IAAI,GAAI,IACpC,CACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Font.js","sourceRoot":"","sources":["../../src/components/Font.tsx"],"names":[],"mappings":";AAmDA;;;GAGG;AACH,SAAS,mBAAmB,CAAC,KAAgB;IAC3C,MAAM,EACJ,MAAM,EACN,OAAO,GAAG,CAAC,GAAG,CAAC,EACf,OAAO,GAAG,CAAC,OAAO,CAAC,EACnB,OAAO,GAAG,MAAM,EAChB,MAAM,GAAG,KAAK,GACf,GAAG,KAAK,CAAC;IAEV,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEhD,mEAAmE;IACnE,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,aAAa,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAEzD,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,MAAM,CAAC,IAAI,aAAa;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnD,KAAK,MAAM,CAAC,IAAI,aAAa;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,aAAa,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9C,OAAO,4CAA4C,aAAa,IAAI,OAAO,YAAY,OAAO,WAAW,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAC/H,CAAC;IAED,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,4CAA4C,aAAa,SAAS,UAAU,YAAY,OAAO,WAAW,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACvI,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,IAAI,CAAC,KAAgB;IACnC,8EAA8E;IAC9E,wEAAwE;IACxE,0EAA0E;IAC1E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtC,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAExC,OAAO,CACL,8BAEE,eAAM,GAAG,EAAC,YAAY,EAAC,IAAI,EAAC,8BAA8B,GAAG,EAC7D,eAAM,GAAG,EAAC,YAAY,EAAC,IAAI,EAAC,2BAA2B,EAAC,WAAW,EAAC,WAAW,GAAG,EAElF,eAAM,GAAG,EAAC,YAAY,EAAC,IAAI,EAAE,IAAI,GAAI,IACpC,CACJ,CAAC;AACJ,CAAC"}
@@ -1,7 +1,6 @@
1
- import { type HTMLAttributes } from "react";
2
- export interface ScriptProps extends Omit<HTMLAttributes<HTMLScriptElement>, "src"> {
3
- /** URL of the external script to load. */
4
- src: string;
1
+ import { type HTMLAttributes, type ReactNode } from "react";
2
+ /** Props shared by both external-src and inline-children variants. */
3
+ interface ScriptBaseProps extends Omit<HTMLAttributes<HTMLScriptElement>, "src"> {
5
4
  /**
6
5
  * Loading strategy:
7
6
  * - `"beforeInteractive"` — injected into `<head>` during SSR; blocks page rendering.
@@ -12,11 +11,23 @@ export interface ScriptProps extends Omit<HTMLAttributes<HTMLScriptElement>, "sr
12
11
  * Best for low-priority scripts like A/B testing, heatmaps, social embeds.
13
12
  */
14
13
  strategy?: "beforeInteractive" | "afterInteractive" | "lazyOnload";
15
- /** Called once the script has loaded successfully. */
14
+ /** Called once the script has loaded successfully (external scripts only). */
16
15
  onLoad?: () => void;
17
- /** Called if the script fails to load. */
16
+ /** Called if the script fails to load (external scripts only). */
18
17
  onError?: () => void;
19
18
  }
19
+ /** External script variant — `src` is required and `children` must be absent. */
20
+ interface ExternalScriptProps extends ScriptBaseProps {
21
+ /** URL of the external script to load. */
22
+ src: string;
23
+ children?: never;
24
+ }
25
+ /** Inline script variant — `children` contains the script body; `src` must be absent. */
26
+ interface InlineScriptProps extends ScriptBaseProps {
27
+ src?: never;
28
+ children: ReactNode;
29
+ }
30
+ export type ScriptProps = ExternalScriptProps | InlineScriptProps;
20
31
  /**
21
32
  * Load a third-party script with strategy control.
22
33
  *
@@ -33,5 +44,6 @@ export interface ScriptProps extends Omit<HTMLAttributes<HTMLScriptElement>, "sr
33
44
  * />
34
45
  * ```
35
46
  */
36
- export declare function Script({ src, strategy, onLoad, onError, ...rest }: ScriptProps): import("react/jsx-runtime").JSX.Element | null;
47
+ export declare function Script({ src, strategy, onLoad, onError, children, ...rest }: ScriptProps): import("react/jsx-runtime").JSX.Element | null;
48
+ export {};
37
49
  //# sourceMappingURL=Script.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Script.d.ts","sourceRoot":"","sources":["../../src/components/Script.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAEvD,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,KAAK,CAAC;IACjF,0CAA0C;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,mBAAmB,GAAG,kBAAkB,GAAG,YAAY,CAAC;IACnE,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,MAAM,CAAC,EACrB,GAAG,EACH,QAA6B,EAC7B,MAAM,EACN,OAAO,EACP,GAAG,IAAI,EACR,EAAE,WAAW,kDAqDb"}
1
+ {"version":3,"file":"Script.d.ts","sourceRoot":"","sources":["../../src/components/Script.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvE,sEAAsE;AACtE,UAAU,eAAgB,SAAQ,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,KAAK,CAAC;IAC9E;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,mBAAmB,GAAG,kBAAkB,GAAG,YAAY,CAAC;IACnE,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,iFAAiF;AACjF,UAAU,mBAAoB,SAAQ,eAAe;IACnD,0CAA0C;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB;AAED,yFAAyF;AACzF,UAAU,iBAAkB,SAAQ,eAAe;IACjD,GAAG,CAAC,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,MAAM,WAAW,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AAElE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,MAAM,CAAC,EACrB,GAAG,EACH,QAA6B,EAC7B,MAAM,EACN,OAAO,EACP,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,WAAW,kDA+Eb"}
@@ -16,7 +16,34 @@ import { useEffect } from "react";
16
16
  * />
17
17
  * ```
18
18
  */
19
- export function Script({ src, strategy = "afterInteractive", onLoad, onError, ...rest }) {
19
+ export function Script({ src, strategy = "afterInteractive", onLoad, onError, children, ...rest }) {
20
+ // ── Inline script: render <script>{children}</script> directly ──────────────
21
+ // Inline scripts have no loading strategy — they are always rendered as-is.
22
+ // For SSR (beforeInteractive) they land in the HTML stream; for client
23
+ // renders they are injected once via useEffect.
24
+ if (!src) {
25
+ if (strategy === "beforeInteractive") {
26
+ if (typeof window !== "undefined")
27
+ return null;
28
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
+ return _jsx("script", { ...rest, children: children });
30
+ }
31
+ // eslint-disable-next-line react-hooks/rules-of-hooks
32
+ useEffect(() => {
33
+ const el = document.createElement("script");
34
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
35
+ if (typeof children === "string")
36
+ el.textContent = children;
37
+ for (const [k, v] of Object.entries(rest)) {
38
+ if (typeof v === "string")
39
+ el.setAttribute(k, v);
40
+ }
41
+ document.head.appendChild(el);
42
+ // eslint-disable-next-line react-hooks/exhaustive-deps
43
+ }, []);
44
+ return null;
45
+ }
46
+ // ── External script ─────────────────────────────────────────────────────────
20
47
  // `beforeInteractive` is handled at SSR time by rendering a real <script> tag.
21
48
  // The component returns null on the client to avoid duplicate injection.
22
49
  if (strategy === "beforeInteractive") {
@@ -1 +1 @@
1
- {"version":3,"file":"Script.js","sourceRoot":"","sources":["../../src/components/Script.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AAqBvD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,MAAM,CAAC,EACrB,GAAG,EACH,QAAQ,GAAG,kBAAkB,EAC7B,MAAM,EACN,OAAO,EACP,GAAG,IAAI,EACK;IACZ,+EAA+E;IAC/E,yEAAyE;IACzE,IAAI,QAAQ,KAAK,mBAAmB,EAAE,CAAC;QACrC,4EAA4E;QAC5E,wDAAwD;QACxD,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC;QAC/C,8DAA8D;QAC9D,OAAO,iBAAQ,GAAG,EAAE,GAAG,KAAO,IAAY,GAAI,CAAC;IACjD,CAAC;IAED,sDAAsD;IACtD,SAAS,CAAC,GAAG,EAAE;QACb,wDAAwD;QACxD,MAAM,IAAI,GAAG,GAAG,EAAE;YAChB,IAAI,QAAQ,CAAC,aAAa,CAAC,eAAe,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/D,iEAAiE;gBACjE,MAAM,EAAE,EAAE,CAAC;gBACX,OAAO;YACT,CAAC;YAED,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC5C,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YACb,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;YAChB,IAAI,MAAM;gBAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAChE,IAAI,OAAO;gBAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAEnE,0DAA0D;YAC1D,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,IAAI,OAAO,CAAC,KAAK,QAAQ;oBAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACnD,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC,CAAC;QAEF,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC9B,IAAI,qBAAqB,IAAI,MAAM,EAAE,CAAC;gBACpC,MAAM,EAAE,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBACrC,OAAO,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;YACtC,CAAC;YACD,qEAAqE;YACrE,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAChC,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;QAED,wEAAwE;QACxE,IAAI,EAAE,CAAC;QACP,OAAO,SAAS,CAAC;QACnB,uDAAuD;IACvD,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEpB,yDAAyD;IACzD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"Script.js","sourceRoot":"","sources":["../../src/components/Script.tsx"],"names":[],"mappings":"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"}
@@ -31,4 +31,18 @@ export declare function htmlShellBefore(opts: HtmlShellOptions): string;
31
31
  export declare function htmlShellAfter(opts: {
32
32
  nonce?: string | undefined;
33
33
  }): string;
34
+ /**
35
+ * Build just the alab `<meta>` tags used for client hydration.
36
+ * Used when the page component renders a full `<html>` document so the tags
37
+ * can be injected into the user-controlled `<head>` rather than the shell.
38
+ */
39
+ export declare function buildAlabMetaTags(opts: Omit<HtmlShellOptions, "metadata" | "headExtra">): string;
40
+ /**
41
+ * Inject alab hydration meta tags and the client bootstrap script into a
42
+ * full-document SSR string (i.e. one whose root element is `<html>`).
43
+ *
44
+ * The meta tags are appended before `</head>` and the client script before
45
+ * `</body>`. If neither marker is found the strings are appended verbatim.
46
+ */
47
+ export declare function injectIntoFullDocument(ssrHtml: string, opts: Omit<HtmlShellOptions, "metadata" | "headExtra">): string;
34
48
  //# sourceMappingURL=html.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../src/ssr/html.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,YAAY,CAAC;IACvB,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,gBAAgB,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,GAAG,EAAE,OAAO,CAAC;IACb,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,iGAAiG;AACjG,wBAAgB,eAAe,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CA8D9D;AAED,0EAA0E;AAC1E,wBAAgB,cAAc,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAAG,MAAM,CAM3E"}
1
+ {"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../src/ssr/html.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,YAAY,CAAC;IACvB,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,gBAAgB,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,GAAG,EAAE,OAAO,CAAC;IACb,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,iGAAiG;AACjG,wBAAgB,eAAe,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CA8D9D;AAED,0EAA0E;AAC1E,wBAAgB,cAAc,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAAG,MAAM,CAM3E;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,GAAG,WAAW,CAAC,GAAG,MAAM,CAchG;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,GAAG,WAAW,CAAC,GACrD,MAAM,CAsBR"}
package/dist/ssr/html.js CHANGED
@@ -53,6 +53,54 @@ export function htmlShellAfter(opts) {
53
53
  </body>
54
54
  </html>`;
55
55
  }
56
+ /**
57
+ * Build just the alab `<meta>` tags used for client hydration.
58
+ * Used when the page component renders a full `<html>` document so the tags
59
+ * can be injected into the user-controlled `<head>` rather than the shell.
60
+ */
61
+ export function buildAlabMetaTags(opts) {
62
+ const { routeFile, ssr, paramsJson, searchParamsJson, layoutsJson, loadingFile, buildId } = opts;
63
+ return [
64
+ `<meta name="alabjs-route" content="${escAttr(routeFile)}" />`,
65
+ `<meta name="alabjs-ssr" content="${ssr ? "true" : "false"}" />`,
66
+ `<meta name="alabjs-params" content="${escAttr(paramsJson)}" />`,
67
+ `<meta name="alabjs-search-params" content="${escAttr(searchParamsJson)}" />`,
68
+ layoutsJson ? `<meta name="alabjs-layouts" content="${escAttr(layoutsJson)}" />` : "",
69
+ loadingFile ? `<meta name="alabjs-loading" content="${escAttr(loadingFile)}" />` : "",
70
+ buildId ? `<meta name="alabjs-build-id" content="${escAttr(buildId)}" />` : "",
71
+ // Signal to the client bootstrap that it must use hydrateRoot(document, …)
72
+ // instead of mounting into <div id="alabjs-root">.
73
+ `<meta name="alabjs-full-document" content="true" />`,
74
+ ].filter(Boolean).join("\n ");
75
+ }
76
+ /**
77
+ * Inject alab hydration meta tags and the client bootstrap script into a
78
+ * full-document SSR string (i.e. one whose root element is `<html>`).
79
+ *
80
+ * The meta tags are appended before `</head>` and the client script before
81
+ * `</body>`. If neither marker is found the strings are appended verbatim.
82
+ */
83
+ export function injectIntoFullDocument(ssrHtml, opts) {
84
+ const metaTags = buildAlabMetaTags(opts);
85
+ const nonceAttr = opts.nonce ? ` nonce="${escAttr(opts.nonce)}"` : "";
86
+ const clientScript = `<script type="module" src="/@alabjs/client"${nonceAttr}></script>`;
87
+ let result = ssrHtml;
88
+ // Inject meta tags before </head> (case-insensitive).
89
+ if (/<\/head>/i.test(result)) {
90
+ result = result.replace(/<\/head>/i, ` ${metaTags}\n </head>`);
91
+ }
92
+ else {
93
+ result = metaTags + "\n" + result;
94
+ }
95
+ // Inject client bootstrap script before </body>.
96
+ if (/<\/body>/i.test(result)) {
97
+ result = result.replace(/<\/body>/i, ` ${clientScript}\n </body>`);
98
+ }
99
+ else {
100
+ result = result + "\n" + clientScript;
101
+ }
102
+ return result;
103
+ }
56
104
  // ─── Helpers ──────────────────────────────────────────────────────────────────
57
105
  function escHtml(s) {
58
106
  return s
@@ -1 +1 @@
1
- {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/ssr/html.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/ssr/html.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "alabjs",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "AlabJS — full-stack React framework powered by a Rust compiler",
5
5
  "keywords": [
6
6
  "react",
@@ -82,14 +82,14 @@
82
82
  "alab": "./dist/cli.js"
83
83
  },
84
84
  "optionalDependencies": {
85
- "@alabjs/compiler": "0.2.3"
85
+ "@alabjs/compiler": "0.2.4"
86
86
  },
87
87
  "dependencies": {
88
88
  "h3": "^1.15.0",
89
89
  "vite": "^8.0.0",
90
90
  "react": "^19.1.0",
91
91
  "react-dom": "^19.1.0",
92
- "alabjs-vite-plugin": "0.2.3"
92
+ "alabjs-vite-plugin": "0.2.4"
93
93
  },
94
94
  "devDependencies": {
95
95
  "@types/react": "^19.1.0",
@@ -8,7 +8,7 @@ import {
8
8
  findLayoutFiles, findErrorFile, findLoadingFile,
9
9
  scanDevApiRoutes, matchDevApiRoute,
10
10
  } from "../ssr/router-dev.js";
11
- import { htmlShellBefore, htmlShellAfter } from "../ssr/html.js";
11
+ import { htmlShellBefore, htmlShellAfter, injectIntoFullDocument } from "../ssr/html.js";
12
12
  import { generateSitemap } from "../server/sitemap.js";
13
13
  import { handleImageRequest } from "../server/image.js";
14
14
  import type { MiddlewareModule } from "../server/middleware.js";
@@ -219,6 +219,32 @@ export async function dev({ cwd, port = 3000, host = "localhost" }: DevOptions)
219
219
  return;
220
220
  }
221
221
 
222
+ // ── /_alabjs/vitals — Core Web Vitals beacon from <Analytics> component ───
223
+ if (pathname === "/_alabjs/vitals") {
224
+ if (req.method === "OPTIONS") {
225
+ res.setHeader("access-control-allow-origin", "*");
226
+ res.setHeader("access-control-allow-methods", "POST, OPTIONS");
227
+ res.setHeader("access-control-allow-headers", "content-type");
228
+ res.statusCode = 204;
229
+ res.end();
230
+ return;
231
+ }
232
+ if (req.method !== "POST") {
233
+ res.statusCode = 405;
234
+ res.setHeader("allow", "POST");
235
+ res.end();
236
+ return;
237
+ }
238
+ // Silently accept the beacon — dev mode doesn't aggregate metrics.
239
+ const vitalsBody = await readJsonBody(req);
240
+ console.debug("[alabjs] vitals beacon:", vitalsBody);
241
+ res.setHeader("access-control-allow-origin", "*");
242
+ res.setHeader("content-type", "application/json");
243
+ res.statusCode = 200;
244
+ res.end(JSON.stringify({ ok: true }));
245
+ return;
246
+ }
247
+
222
248
  // ── /_alabjs/image — Rust-powered image optimisation ───────────────────────
223
249
  if (pathname === "/_alabjs/image") {
224
250
  const publicDir = resolve(cwd, "public");
@@ -492,19 +518,29 @@ export async function dev({ cwd, port = 3000, host = "localhost" }: DevOptions)
492
518
 
493
519
  // ── Render helper (used for both fresh render + background revalidation) ─
494
520
  const revalidateSecs = typeof mod.revalidate === "number" ? mod.revalidate : null;
521
+ // Detect whether the SSR output is a full document (layout returns <html>).
522
+ // In that case we inject the alab meta tags and client script directly into
523
+ // the user-controlled <head>/<body> rather than wrapping in the shell div,
524
+ // which would produce invalid "html cannot be child of div" nesting.
525
+ const isFullDocument = ssrEnabled && ssrContent.trimStart().toLowerCase().startsWith("<html");
526
+ const shellOpts = {
527
+ paramsJson: JSON.stringify(params),
528
+ searchParamsJson: JSON.stringify(searchParams),
529
+ routeFile,
530
+ layoutsJson,
531
+ loadingFile,
532
+ ssr: ssrEnabled,
533
+ buildId: devBuildId,
534
+ };
495
535
  const renderPageHtml = async (): Promise<string> => {
496
- const shellBefore = htmlShellBefore({
497
- metadata,
498
- paramsJson: JSON.stringify(params),
499
- searchParamsJson: JSON.stringify(searchParams),
500
- routeFile,
501
- layoutsJson,
502
- loadingFile,
503
- ssr: ssrEnabled,
504
- buildId: devBuildId,
505
- });
506
- const shellAfter = htmlShellAfter({});
507
- const rawHtml = `${shellBefore}${ssrContent}${shellAfter}`;
536
+ let rawHtml: string;
537
+ if (isFullDocument) {
538
+ rawHtml = injectIntoFullDocument(ssrContent, shellOpts);
539
+ } else {
540
+ const shellBefore = htmlShellBefore({ metadata, headExtra: undefined, ...shellOpts });
541
+ const shellAfter = htmlShellAfter({});
542
+ rawHtml = `${shellBefore}${ssrContent}${shellAfter}`;
543
+ }
508
544
  return vite.transformIndexHtml(pathname, rawHtml);
509
545
  };
510
546
 
@@ -82,10 +82,20 @@ function buildGoogleFontsUrl(props: FontProps): string {
82
82
  /**
83
83
  * Renders the `<link>` tags needed to load a Google Font.
84
84
  *
85
- * In production (`alab build --self-host-fonts`), the alab Vite plugin
86
- * replaces this with self-hosted CSS so no Google request is made.
85
+ * Only active in development (Vite dev server). In production (`alab build`),
86
+ * the build step self-hosts the font files, so this component renders nothing.
87
+ * Gating on `import.meta.env.DEV` ensures the server and client always agree:
88
+ * both render the links in dev, both render nothing in production — preventing
89
+ * a hydration mismatch that occurs when the server loads the pre-built dist
90
+ * (where `import.meta.env.DEV` is `false`) while the client gets live Vite
91
+ * processing (where it is `true`).
87
92
  */
88
93
  export function Font(props: FontProps) {
94
+ // Return nothing in production — self-hosted fonts are injected by the build.
95
+ // This must be checked before building the URL so the server and client
96
+ // always produce identical output (both null in prod, both links in dev).
97
+ if (!import.meta.env.DEV) return null;
98
+
89
99
  const href = buildGoogleFontsUrl(props);
90
100
 
91
101
  return (