@caelo-cms/shared 0.10.27 → 0.10.29

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 (45) hide show
  1. package/dist/ai-tools.d.ts +1 -0
  2. package/dist/ai-tools.d.ts.map +1 -1
  3. package/dist/ai-tools.js +1 -0
  4. package/dist/ai-tools.js.map +1 -1
  5. package/dist/document-language.d.ts +56 -0
  6. package/dist/document-language.d.ts.map +1 -0
  7. package/dist/document-language.js +142 -0
  8. package/dist/document-language.js.map +1 -0
  9. package/dist/index.d.ts +2 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +2 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/media.d.ts +3 -1
  14. package/dist/media.d.ts.map +1 -1
  15. package/dist/media.js +8 -0
  16. package/dist/media.js.map +1 -1
  17. package/dist/preview-compose.d.ts +6 -0
  18. package/dist/preview-compose.d.ts.map +1 -1
  19. package/dist/preview-compose.js +32 -1
  20. package/dist/preview-compose.js.map +1 -1
  21. package/dist/seo.d.ts +11 -1
  22. package/dist/seo.d.ts.map +1 -1
  23. package/dist/seo.js +7 -3
  24. package/dist/seo.js.map +1 -1
  25. package/dist/static-cache-policy.d.ts +50 -0
  26. package/dist/static-cache-policy.d.ts.map +1 -0
  27. package/dist/static-cache-policy.js +54 -0
  28. package/dist/static-cache-policy.js.map +1 -0
  29. package/dist/version.d.ts +2 -2
  30. package/dist/version.js +1 -1
  31. package/package.json +1 -1
  32. package/src/ai-tools.ts +1 -0
  33. package/src/design-draft-shell.test.ts +5 -1
  34. package/src/document-language.test.ts +118 -0
  35. package/src/document-language.ts +146 -0
  36. package/src/index.ts +2 -0
  37. package/src/media.test.ts +8 -0
  38. package/src/media.ts +8 -0
  39. package/src/preview-compose.test.ts +82 -0
  40. package/src/preview-compose.ts +40 -1
  41. package/src/seo.test.ts +8 -0
  42. package/src/seo.ts +18 -4
  43. package/src/static-cache-policy.test.ts +66 -0
  44. package/src/static-cache-policy.ts +60 -0
  45. package/src/version.ts +1 -1
@@ -59,6 +59,25 @@ export function fontsHeadFragment(fonts) {
59
59
  const fragment = links + style;
60
60
  return fragment.length > 0 ? fragment : null;
61
61
  }
62
+ /**
63
+ * Head fragment for the active theme's document-level brand metadata:
64
+ * `<link rel="icon">` when a favicon is bound. The favicon is page
65
+ * METADATA, not body content — it must sit in `<head>` on every page
66
+ * regardless of which layout or chrome modules the page uses, so the
67
+ * composer emits it from the theme binding instead of relying on a
68
+ * module to carry the tag. The href is the media URL as composed
69
+ * (`/_caelo/media/<slug>`); the static generator's media pass rewrites
70
+ * it to the published `/_assets/<slug>.<ext>` and copies the bytes, the
71
+ * same as any other media reference. Returns null when no theme is
72
+ * threaded or no favicon is bound (nothing to declare; browsers fall
73
+ * back to their own `/favicon.ico` probe exactly as before).
74
+ */
75
+ function themeHeadFragment(theme) {
76
+ const favicon = theme?.assets.favicon;
77
+ if (!favicon)
78
+ return null;
79
+ return `<link rel="icon" href="${escapeAttr(favicon.url)}" type="${escapeAttr(favicon.mime)}">`;
80
+ }
62
81
  export function composePagePreview(input) {
63
82
  // No withholding path here; rendering a withheld module would ship it
64
83
  // ungated, so refuse instead of degrading silently (CLAUDE.md §2).
@@ -114,7 +133,14 @@ export function composePagePreview(input) {
114
133
  }
115
134
  const replaced = applySlotReplacements(input.templateHtml, { contentByName });
116
135
  let html = replaced.html;
117
- // issue #150 — @font-face + preloads before everything else so the
136
+ // Theme brand metadata (favicon) leads the injected head block — it
137
+ // is document metadata, not styling, and is independent of the
138
+ // cascade order the style tags below depend on.
139
+ const themeHeadLinks = themeHeadFragment(input.theme);
140
+ if (themeHeadLinks !== null) {
141
+ html = injectBefore(html, HEAD_CLOSE_RE, themeHeadLinks);
142
+ }
143
+ // issue #150 — @font-face + preloads ahead of the style tags so the
118
144
  // browser discovers font URLs as early as possible.
119
145
  const fontsFragment = fontsHeadFragment(input.fonts);
120
146
  if (fontsFragment !== null) {
@@ -483,6 +509,11 @@ export function composePageWithLayout(input) {
483
509
  contentByName: layoutContentByName,
484
510
  });
485
511
  let html = replaced.html;
512
+ // Theme brand metadata (favicon) — see composePagePreview.
513
+ const themeHeadLinks = themeHeadFragment(input.theme);
514
+ if (themeHeadLinks !== null) {
515
+ html = injectBefore(html, HEAD_CLOSE_RE, themeHeadLinks);
516
+ }
486
517
  // issue #150 — fonts first (URL discovery), then theme vars, then
487
518
  // aggregated CSS; source order in <head> mirrors injection order.
488
519
  const fontsFragment = fontsHeadFragment(input.fonts);
@@ -1 +1 @@
1
- {"version":3,"file":"preview-compose.js","sourceRoot":"","sources":["../src/preview-compose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preview-compose.js","sourceRoot":"","sources":["../src/preview-compose.ts"],"names":[],"mappings":"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"}
package/dist/seo.d.ts CHANGED
@@ -69,6 +69,10 @@ export interface PageSeoRow {
69
69
  export interface SiteSeoSettings {
70
70
  siteBaseUrl: string;
71
71
  sitemapEnabled: boolean;
72
+ /** `site_defaults.site_language` — the `<html lang>` of every page no
73
+ * plugin assigns its own locale to (see document-language.ts). Always
74
+ * set here: the static generator refuses to build while it is NULL. */
75
+ siteLanguage: string;
72
76
  organization: {
73
77
  name?: string;
74
78
  url?: string;
@@ -100,7 +104,13 @@ export declare function resolveCanonicalUrl(args: {
100
104
  export interface SeoMetaInput {
101
105
  title: string;
102
106
  metaDescription: string;
103
- canonical: string;
107
+ /**
108
+ * Absolute canonical URL, or null when the site base URL is not
109
+ * configured yet (#551). Only the admin preview renders with null — it
110
+ * omits canonical, og:url and the JSON-LD url and flags
111
+ * `site-base-url-unset`; the static generator refuses to build instead.
112
+ */
113
+ canonical: string | null;
104
114
  noindex: boolean;
105
115
  ogImageUrl: string | null;
106
116
  organization: SiteSeoSettings["organization"];
package/dist/seo.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"seo.d.ts","sourceRoot":"","sources":["../src/seo.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,iBAAiB,gFAQpB,CAAC;AACX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,6EAA6E;AAC7E,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAC5C,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAEnD,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAC5C,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;kBAUnB,CAAC;AACZ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,sBAAsB;;;;kBAMxB,CAAC;AACZ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,sBAAsB;;;;;kBAQxB,CAAC;AACZ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,6BAA6B;;;;;;;;;kBAkB/B,CAAC;AACZ,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;CACH;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB;iCAC6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;OAIG;IACH,YAAY,CAAC,EAAE,WAAW,GAAG,cAAc,CAAC;CAC7C,GAAG,MAAM,CAOT;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC;CAC/C;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAmDzD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CASzE"}
1
+ {"version":3,"file":"seo.d.ts","sourceRoot":"","sources":["../src/seo.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,iBAAiB,gFAQpB,CAAC;AACX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,6EAA6E;AAC7E,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAC5C,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAEnD,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAC5C,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;kBAUnB,CAAC;AACZ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,sBAAsB;;;;kBAMxB,CAAC;AACZ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,sBAAsB;;;;;kBAQxB,CAAC;AACZ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,6BAA6B;;;;;;;;;kBAkB/B,CAAC;AACZ,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB;;4EAEwE;IACxE,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;CACH;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB;iCAC6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;OAIG;IACH,YAAY,CAAC,EAAE,WAAW,GAAG,cAAc,CAAC;CAC7C,GAAG,MAAM,CAOT;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC;CAC/C;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAuDzD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CASzE"}
package/dist/seo.js CHANGED
@@ -101,7 +101,9 @@ export function renderSeoHead(input) {
101
101
  if (input.metaDescription) {
102
102
  lines.push(`<meta name="description" content="${enc(input.metaDescription)}" />`);
103
103
  }
104
- lines.push(`<link rel="canonical" href="${enc(input.canonical)}" />`);
104
+ if (input.canonical) {
105
+ lines.push(`<link rel="canonical" href="${enc(input.canonical)}" />`);
106
+ }
105
107
  if (input.noindex) {
106
108
  lines.push(`<meta name="robots" content="noindex" />`);
107
109
  }
@@ -111,7 +113,9 @@ export function renderSeoHead(input) {
111
113
  lines.push(`<meta property="og:description" content="${enc(input.metaDescription)}" />`);
112
114
  }
113
115
  lines.push(`<meta property="og:type" content="website" />`);
114
- lines.push(`<meta property="og:url" content="${enc(input.canonical)}" />`);
116
+ if (input.canonical) {
117
+ lines.push(`<meta property="og:url" content="${enc(input.canonical)}" />`);
118
+ }
115
119
  if (input.ogImageUrl) {
116
120
  lines.push(`<meta property="og:image" content="${enc(input.ogImageUrl)}" />`);
117
121
  }
@@ -122,7 +126,7 @@ export function renderSeoHead(input) {
122
126
  "@context": "https://schema.org",
123
127
  "@type": "WebPage",
124
128
  name: input.title,
125
- url: input.canonical,
129
+ ...(input.canonical ? { url: input.canonical } : {}),
126
130
  };
127
131
  if (input.metaDescription)
128
132
  ld.description = input.metaDescription;
package/dist/seo.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"seo.js","sourceRoot":"","sources":["../src/seo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seo.js","sourceRoot":"","sources":["../src/seo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Cache-Control policy for the published static site — the single
3
+ * source of truth every static publisher (GCS object metadata,
4
+ * Firebase Hosting version headers, self-hosted Caddy) derives from.
5
+ *
6
+ * The rule: only a URL whose bytes can never change may be cached
7
+ * forever. That holds exactly when the URL itself changes whenever the
8
+ * content does, i.e. the file name carries a content hash. Everything
9
+ * else (pages, robots.txt, sitemap.xml, manifests, media served by its
10
+ * stable slug under `_assets/<slug>…`) must stay short-lived or
11
+ * revalidating so a publish shows up promptly.
12
+ *
13
+ * Content-hashed paths the static generator emits today:
14
+ *
15
+ * - `_assets/fonts/<family-slug>/<16 hex>.woff2` — self-hosted
16
+ * Google Fonts faces; the name is a hash of the upstream face URL,
17
+ * which Google versions per file (a changed face gets a new URL,
18
+ * hence a new name).
19
+ * - `_assets/fonts/pinned/<sha256>.<ttf|otf|woff|woff2>` — library
20
+ * fonts pinned by the sha256 of their bytes. (The sibling
21
+ * `pinned/<font-id>.license.txt` is id-named, NOT hashed.)
22
+ * - `_caelo/plugin/<slug>/<stem>.<12 hex>.<js|css>` — plugin client
23
+ * assets, sha256 of the content in the name
24
+ * (`plugin-host/src/client-assets.ts`).
25
+ * - `_app/immutable/**` — Vite's hashed-output convention, kept for
26
+ * builds that ship SvelteKit-style bundles.
27
+ *
28
+ * NOT content-hashed (deliberately excluded): media under
29
+ * `_assets/<slug>.<ext>` / `_assets/<slug>/<variant>.<ext>` — the slug is
30
+ * stable while the operator can replace the bytes behind it.
31
+ */
32
+ /** Long-lived policy for content-addressed files. */
33
+ export declare const IMMUTABLE_CACHE_CONTROL = "public, max-age=31536000, immutable";
34
+ /** Short, background-revalidated policy for pages (HTML documents). */
35
+ export declare const HTML_CACHE_CONTROL = "public, max-age=60, stale-while-revalidate=86400";
36
+ /**
37
+ * Regex (source string) matching every content-hashed URL path. It is
38
+ * matched against a site-absolute path ("/_assets/…") and uses only the
39
+ * syntax shared by ECMAScript and RE2 (no lookaround, no backrefs), so
40
+ * the same string can be handed to Firebase Hosting's `regex` header
41
+ * matcher and Caddy's `path_regexp` (both RE2) and to `RegExp` here.
42
+ */
43
+ export declare const CONTENT_HASHED_PATH_PATTERN = "^/(?:_app/immutable/.+|_assets/fonts/[^/]+/[0-9a-f]{16,64}\\.(?:woff2|woff|ttf|otf)|_caelo/plugin/[^/]+/[^/]+\\.[0-9a-f]{12}\\.(?:js|css))$";
44
+ /**
45
+ * True when `path` names a content-addressed build output. Accepts a
46
+ * build-dir-relative key (`_assets/fonts/inter/ab….woff2`, as the GCS
47
+ * publisher sees it) or a site-absolute URL path (`/_assets/…`).
48
+ */
49
+ export declare function isContentHashedPath(path: string): boolean;
50
+ //# sourceMappingURL=static-cache-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static-cache-policy.d.ts","sourceRoot":"","sources":["../src/static-cache-policy.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,qDAAqD;AACrD,eAAO,MAAM,uBAAuB,wCAAwC,CAAC;AAE7E,uEAAuE;AACvE,eAAO,MAAM,kBAAkB,qDAAqD,CAAC;AAErF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,gJACuG,CAAC;AAIhJ;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD"}
@@ -0,0 +1,54 @@
1
+ // SPDX-License-Identifier: MPL-2.0
2
+ /**
3
+ * Cache-Control policy for the published static site — the single
4
+ * source of truth every static publisher (GCS object metadata,
5
+ * Firebase Hosting version headers, self-hosted Caddy) derives from.
6
+ *
7
+ * The rule: only a URL whose bytes can never change may be cached
8
+ * forever. That holds exactly when the URL itself changes whenever the
9
+ * content does, i.e. the file name carries a content hash. Everything
10
+ * else (pages, robots.txt, sitemap.xml, manifests, media served by its
11
+ * stable slug under `_assets/<slug>…`) must stay short-lived or
12
+ * revalidating so a publish shows up promptly.
13
+ *
14
+ * Content-hashed paths the static generator emits today:
15
+ *
16
+ * - `_assets/fonts/<family-slug>/<16 hex>.woff2` — self-hosted
17
+ * Google Fonts faces; the name is a hash of the upstream face URL,
18
+ * which Google versions per file (a changed face gets a new URL,
19
+ * hence a new name).
20
+ * - `_assets/fonts/pinned/<sha256>.<ttf|otf|woff|woff2>` — library
21
+ * fonts pinned by the sha256 of their bytes. (The sibling
22
+ * `pinned/<font-id>.license.txt` is id-named, NOT hashed.)
23
+ * - `_caelo/plugin/<slug>/<stem>.<12 hex>.<js|css>` — plugin client
24
+ * assets, sha256 of the content in the name
25
+ * (`plugin-host/src/client-assets.ts`).
26
+ * - `_app/immutable/**` — Vite's hashed-output convention, kept for
27
+ * builds that ship SvelteKit-style bundles.
28
+ *
29
+ * NOT content-hashed (deliberately excluded): media under
30
+ * `_assets/<slug>.<ext>` / `_assets/<slug>/<variant>.<ext>` — the slug is
31
+ * stable while the operator can replace the bytes behind it.
32
+ */
33
+ /** Long-lived policy for content-addressed files. */
34
+ export const IMMUTABLE_CACHE_CONTROL = "public, max-age=31536000, immutable";
35
+ /** Short, background-revalidated policy for pages (HTML documents). */
36
+ export const HTML_CACHE_CONTROL = "public, max-age=60, stale-while-revalidate=86400";
37
+ /**
38
+ * Regex (source string) matching every content-hashed URL path. It is
39
+ * matched against a site-absolute path ("/_assets/…") and uses only the
40
+ * syntax shared by ECMAScript and RE2 (no lookaround, no backrefs), so
41
+ * the same string can be handed to Firebase Hosting's `regex` header
42
+ * matcher and Caddy's `path_regexp` (both RE2) and to `RegExp` here.
43
+ */
44
+ export const CONTENT_HASHED_PATH_PATTERN = "^/(?:_app/immutable/.+|_assets/fonts/[^/]+/[0-9a-f]{16,64}\\.(?:woff2|woff|ttf|otf)|_caelo/plugin/[^/]+/[^/]+\\.[0-9a-f]{12}\\.(?:js|css))$";
45
+ const CONTENT_HASHED_PATH_RE = new RegExp(CONTENT_HASHED_PATH_PATTERN);
46
+ /**
47
+ * True when `path` names a content-addressed build output. Accepts a
48
+ * build-dir-relative key (`_assets/fonts/inter/ab….woff2`, as the GCS
49
+ * publisher sees it) or a site-absolute URL path (`/_assets/…`).
50
+ */
51
+ export function isContentHashedPath(path) {
52
+ return CONTENT_HASHED_PATH_RE.test(path.startsWith("/") ? path : `/${path}`);
53
+ }
54
+ //# sourceMappingURL=static-cache-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static-cache-policy.js","sourceRoot":"","sources":["../src/static-cache-policy.ts"],"names":[],"mappings":"AAAA,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,qDAAqD;AACrD,MAAM,CAAC,MAAM,uBAAuB,GAAG,qCAAqC,CAAC;AAE7E,uEAAuE;AACvE,MAAM,CAAC,MAAM,kBAAkB,GAAG,kDAAkD,CAAC;AAErF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GACtC,6IAA6I,CAAC;AAEhJ,MAAM,sBAAsB,GAAG,IAAI,MAAM,CAAC,2BAA2B,CAAC,CAAC;AAEvE;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AAC/E,CAAC"}
package/dist/version.d.ts CHANGED
@@ -19,7 +19,7 @@
19
19
  * Format: SemVer 2.0.0. Pre-1.0 minor bumps are breaking; post-1.0
20
20
  * follow standard SemVer.
21
21
  */
22
- export declare const CAELO_VERSION = "0.10.27";
22
+ export declare const CAELO_VERSION = "0.10.29";
23
23
  /**
24
24
  * Deprecated alias for back-compat — early P17 work spelled this
25
25
  * `CALEO_VERSION` (typo of "Caelo"). New code should import
@@ -31,7 +31,7 @@ export declare const CAELO_VERSION = "0.10.27";
31
31
  *
32
32
  * @deprecated use CAELO_VERSION
33
33
  */
34
- export declare const CALEO_VERSION = "0.10.27";
34
+ export declare const CALEO_VERSION = "0.10.29";
35
35
  /**
36
36
  * Parsed shape — major/minor/patch + optional pre-release tag.
37
37
  * Stable interface for callers that need to feature-gate (rare —
package/dist/version.js CHANGED
@@ -20,7 +20,7 @@
20
20
  * Format: SemVer 2.0.0. Pre-1.0 minor bumps are breaking; post-1.0
21
21
  * follow standard SemVer.
22
22
  */
23
- export const CAELO_VERSION = "0.10.27";
23
+ export const CAELO_VERSION = "0.10.29";
24
24
  /**
25
25
  * Deprecated alias for back-compat — early P17 work spelled this
26
26
  * `CALEO_VERSION` (typo of "Caelo"). New code should import
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@caelo-cms/shared",
3
- "version": "0.10.27",
3
+ "version": "0.10.29",
4
4
  "private": false,
5
5
  "license": "MPL-2.0",
6
6
  "description": "Shared Zod schemas + types + the two-pass HTML composer used by every Caelo CMS workspace package. Stable enough for plugin authors and embedders to depend on directly.",
package/src/ai-tools.ts CHANGED
@@ -756,6 +756,7 @@ export const findMediaToolInput = z
756
756
  "image/avif",
757
757
  "image/gif",
758
758
  "image/svg+xml",
759
+ "image/x-icon",
759
760
  "application/pdf",
760
761
  "video/mp4",
761
762
  ])
@@ -21,7 +21,11 @@ const TOKENS = {
21
21
  const THEME: ComposeTheme = {
22
22
  tokens: TOKENS,
23
23
  assets: {
24
- logo: { mediaId: "11111111-1111-4111-8111-111111111111", url: "/_caelo/media/logo/orig" },
24
+ logo: {
25
+ mediaId: "11111111-1111-4111-8111-111111111111",
26
+ url: "/_caelo/media/logo/orig",
27
+ mime: "image/png",
28
+ },
25
29
  logoDark: null,
26
30
  favicon: null,
27
31
  socialShare: null,
@@ -0,0 +1,118 @@
1
+ // SPDX-License-Identifier: MPL-2.0
2
+
3
+ import { describe, expect, it } from "bun:test";
4
+ import {
5
+ applyDocumentLanguage,
6
+ languageTagSchema,
7
+ resolveDocumentLanguage,
8
+ } from "./document-language.js";
9
+
10
+ describe("applyDocumentLanguage", () => {
11
+ // Regression: every composed page started with a bare `<html>`, so
12
+ // Lighthouse flagged html-has-lang on the whole site.
13
+ it("adds lang to a bare <html>", () => {
14
+ expect(applyDocumentLanguage("<!doctype html><html><head></head></html>", "en")).toBe(
15
+ '<!doctype html><html lang="en"><head></head></html>',
16
+ );
17
+ });
18
+
19
+ it("replaces a layout-authored lang (quoted, single-quoted, unquoted, bare)", () => {
20
+ for (const tag of [
21
+ '<html lang="xx">',
22
+ "<html lang='xx'>",
23
+ "<html lang=xx>",
24
+ "<html lang>",
25
+ '<html LANG="xx">',
26
+ ]) {
27
+ expect(applyDocumentLanguage(`${tag}<head></head>`, "de")).toBe(
28
+ '<html lang="de"><head></head>',
29
+ );
30
+ }
31
+ });
32
+
33
+ it("keeps other attributes, including xml:lang and `>` inside quoted values", () => {
34
+ expect(
35
+ applyDocumentLanguage(
36
+ '<html class="dark" data-x="a>b" xml:lang="xx" lang="xx" dir="ltr"><head></head>',
37
+ "pt-BR",
38
+ ),
39
+ ).toBe('<html lang="pt-BR" class="dark" data-x="a>b" xml:lang="xx" dir="ltr"><head></head>');
40
+ });
41
+
42
+ it("only touches the first <html> start tag, never look-alikes", () => {
43
+ const html = '<html-widget lang="xx"></html-widget><html><body><html></body></html>';
44
+ expect(applyDocumentLanguage(html, "en")).toBe(
45
+ '<html-widget lang="xx"></html-widget><html lang="en"><body><html></body></html>',
46
+ );
47
+ });
48
+
49
+ it("inserts an <html> start tag after the doctype when the layout omits it", () => {
50
+ expect(applyDocumentLanguage("<!DOCTYPE html>\n<head></head><body></body>", "en")).toBe(
51
+ '<!DOCTYPE html><html lang="en">\n<head></head><body></body>',
52
+ );
53
+ expect(applyDocumentLanguage("<head></head><body></body>", "en")).toBe(
54
+ '<html lang="en"><head></head><body></body>',
55
+ );
56
+ });
57
+
58
+ it("keeps data-lang and self-closing slashes, drops every lang", () => {
59
+ expect(applyDocumentLanguage('<html data-lang="x" lang=a\tlang="b" />', "en")).toBe(
60
+ '<html lang="en" data-lang="x" />',
61
+ );
62
+ });
63
+
64
+ // Regression (CodeQL js/polynomial-redos): the attribute strip was a
65
+ // global `\s+lang…` regex that backtracked quadratically over long
66
+ // whitespace runs in layout HTML.
67
+ it("stays linear on long whitespace runs", () => {
68
+ const ws = "\t".repeat(200_000);
69
+ const started = performance.now();
70
+ expect(applyDocumentLanguage(`<html${ws}x${ws}>`, "en")).toBe(`<html lang="en"${ws}x${ws}>`);
71
+ expect(applyDocumentLanguage(`<html${ws}`, "en")).toBe(`<html lang="en"><html${ws}`);
72
+ expect(performance.now() - started).toBeLessThan(1000);
73
+ });
74
+
75
+ // Migration 0232: an unconfigured site language renders no `lang`
76
+ // rather than a substituted one.
77
+ it("with no language, strips a layout-authored lang and adds none", () => {
78
+ expect(applyDocumentLanguage('<html lang="en" class="x"><head></head>', null)).toBe(
79
+ '<html class="x"><head></head>',
80
+ );
81
+ expect(applyDocumentLanguage("<!doctype html><head></head>", null)).toBe(
82
+ "<!doctype html><head></head>",
83
+ );
84
+ });
85
+
86
+ it("escapes the value", () => {
87
+ expect(applyDocumentLanguage("<html>", 'a"b')).toBe('<html lang="a&quot;b">');
88
+ });
89
+ });
90
+
91
+ describe("resolveDocumentLanguage", () => {
92
+ it("prefers the plugin-contributed per-page language", () => {
93
+ expect(resolveDocumentLanguage({ contributed: "de", siteLanguage: "en" })).toBe("de");
94
+ });
95
+
96
+ it("uses the stored site language when no plugin assigns one", () => {
97
+ expect(resolveDocumentLanguage({ contributed: undefined, siteLanguage: "fr" })).toBe("fr");
98
+ });
99
+
100
+ it("returns null when neither a plugin nor the site sets a language — never 'en'", () => {
101
+ expect(resolveDocumentLanguage({ contributed: undefined, siteLanguage: null })).toBeNull();
102
+ expect(resolveDocumentLanguage({ contributed: "de", siteLanguage: null })).toBe("de");
103
+ });
104
+ });
105
+
106
+ describe("languageTagSchema", () => {
107
+ it("accepts BCP 47 shaped tags", () => {
108
+ for (const tag of ["en", "de", "pt-BR", "zh-Hant-TW", "es-419", "gsw"]) {
109
+ expect(languageTagSchema.safeParse(tag).success).toBe(true);
110
+ }
111
+ });
112
+
113
+ it("rejects malformed tags", () => {
114
+ for (const tag of ["", "e", "en_US", "en-", "-en", 'en" onload="x', "x".repeat(36)]) {
115
+ expect(languageTagSchema.safeParse(tag).success).toBe(false);
116
+ }
117
+ });
118
+ });