gazetta 0.4.0 → 0.6.0

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 (240) hide show
  1. package/admin-dist/assets/index-B6pVot0Y.css +1 -0
  2. package/admin-dist/assets/index-DniLwxJA.js +609 -0
  3. package/admin-dist/assets/{vendor-primevue-BnR1c_bQ.js → vendor-primevue-C0Q_YTCb.js} +330 -431
  4. package/admin-dist/assets/vendor-vue-D3wBSmDf.js +1 -0
  5. package/admin-dist/index.html +4 -4
  6. package/dist/admin-api/index.d.ts +26 -5
  7. package/dist/admin-api/index.d.ts.map +1 -1
  8. package/dist/admin-api/index.js +175 -13
  9. package/dist/admin-api/index.js.map +1 -1
  10. package/dist/admin-api/routes/compare.d.ts +3 -1
  11. package/dist/admin-api/routes/compare.d.ts.map +1 -1
  12. package/dist/admin-api/routes/compare.js +34 -24
  13. package/dist/admin-api/routes/compare.js.map +1 -1
  14. package/dist/admin-api/routes/fields.d.ts +2 -2
  15. package/dist/admin-api/routes/fields.d.ts.map +1 -1
  16. package/dist/admin-api/routes/fields.js +10 -3
  17. package/dist/admin-api/routes/fields.js.map +1 -1
  18. package/dist/admin-api/routes/fragments.d.ts +2 -2
  19. package/dist/admin-api/routes/fragments.d.ts.map +1 -1
  20. package/dist/admin-api/routes/fragments.js +94 -19
  21. package/dist/admin-api/routes/fragments.js.map +1 -1
  22. package/dist/admin-api/routes/history.d.ts +23 -0
  23. package/dist/admin-api/routes/history.d.ts.map +1 -0
  24. package/dist/admin-api/routes/history.js +143 -0
  25. package/dist/admin-api/routes/history.js.map +1 -0
  26. package/dist/admin-api/routes/pages.d.ts +2 -2
  27. package/dist/admin-api/routes/pages.d.ts.map +1 -1
  28. package/dist/admin-api/routes/pages.js +120 -20
  29. package/dist/admin-api/routes/pages.js.map +1 -1
  30. package/dist/admin-api/routes/preview.d.ts +2 -2
  31. package/dist/admin-api/routes/preview.d.ts.map +1 -1
  32. package/dist/admin-api/routes/preview.js +50 -15
  33. package/dist/admin-api/routes/preview.js.map +1 -1
  34. package/dist/admin-api/routes/publish.d.ts +3 -1
  35. package/dist/admin-api/routes/publish.d.ts.map +1 -1
  36. package/dist/admin-api/routes/publish.js +306 -65
  37. package/dist/admin-api/routes/publish.js.map +1 -1
  38. package/dist/admin-api/routes/site.d.ts +2 -2
  39. package/dist/admin-api/routes/site.d.ts.map +1 -1
  40. package/dist/admin-api/routes/site.js +27 -4
  41. package/dist/admin-api/routes/site.js.map +1 -1
  42. package/dist/admin-api/routes/templates.d.ts +2 -2
  43. package/dist/admin-api/routes/templates.d.ts.map +1 -1
  44. package/dist/admin-api/routes/templates.js +19 -9
  45. package/dist/admin-api/routes/templates.js.map +1 -1
  46. package/dist/admin-api/schemas/compare.d.ts +29 -0
  47. package/dist/admin-api/schemas/compare.d.ts.map +1 -0
  48. package/dist/admin-api/schemas/compare.js +30 -0
  49. package/dist/admin-api/schemas/compare.js.map +1 -0
  50. package/dist/admin-api/schemas/dependents.d.ts +15 -0
  51. package/dist/admin-api/schemas/dependents.d.ts.map +1 -0
  52. package/dist/admin-api/schemas/dependents.js +14 -0
  53. package/dist/admin-api/schemas/dependents.js.map +1 -0
  54. package/dist/admin-api/schemas/fetch.d.ts +12 -0
  55. package/dist/admin-api/schemas/fetch.d.ts.map +1 -0
  56. package/dist/admin-api/schemas/fetch.js +11 -0
  57. package/dist/admin-api/schemas/fetch.js.map +1 -0
  58. package/dist/admin-api/schemas/fields.d.ts +11 -0
  59. package/dist/admin-api/schemas/fields.d.ts.map +1 -0
  60. package/dist/admin-api/schemas/fields.js +11 -0
  61. package/dist/admin-api/schemas/fields.js.map +1 -0
  62. package/dist/admin-api/schemas/fragments.d.ts +27 -0
  63. package/dist/admin-api/schemas/fragments.d.ts.map +1 -0
  64. package/dist/admin-api/schemas/fragments.js +26 -0
  65. package/dist/admin-api/schemas/fragments.js.map +1 -0
  66. package/dist/admin-api/schemas/history.d.ts +73 -0
  67. package/dist/admin-api/schemas/history.d.ts.map +1 -0
  68. package/dist/admin-api/schemas/history.js +35 -0
  69. package/dist/admin-api/schemas/history.js.map +1 -0
  70. package/dist/admin-api/schemas/index.d.ts +32 -0
  71. package/dist/admin-api/schemas/index.d.ts.map +1 -0
  72. package/dist/admin-api/schemas/index.js +32 -0
  73. package/dist/admin-api/schemas/index.js.map +1 -0
  74. package/dist/admin-api/schemas/pages.d.ts +46 -0
  75. package/dist/admin-api/schemas/pages.d.ts.map +1 -0
  76. package/dist/admin-api/schemas/pages.js +47 -0
  77. package/dist/admin-api/schemas/pages.js.map +1 -0
  78. package/dist/admin-api/schemas/publish.d.ts +67 -0
  79. package/dist/admin-api/schemas/publish.d.ts.map +1 -0
  80. package/dist/admin-api/schemas/publish.js +60 -0
  81. package/dist/admin-api/schemas/publish.js.map +1 -0
  82. package/dist/admin-api/schemas/site.d.ts +28 -0
  83. package/dist/admin-api/schemas/site.d.ts.map +1 -0
  84. package/dist/admin-api/schemas/site.js +24 -0
  85. package/dist/admin-api/schemas/site.js.map +1 -0
  86. package/dist/admin-api/schemas/targets.d.ts +36 -0
  87. package/dist/admin-api/schemas/targets.d.ts.map +1 -0
  88. package/dist/admin-api/schemas/targets.js +19 -0
  89. package/dist/admin-api/schemas/targets.js.map +1 -0
  90. package/dist/admin-api/schemas/templates.d.ts +17 -0
  91. package/dist/admin-api/schemas/templates.d.ts.map +1 -0
  92. package/dist/admin-api/schemas/templates.js +16 -0
  93. package/dist/admin-api/schemas/templates.js.map +1 -0
  94. package/dist/admin-api/source-context.d.ts +165 -0
  95. package/dist/admin-api/source-context.d.ts.map +1 -0
  96. package/dist/admin-api/source-context.js +95 -0
  97. package/dist/admin-api/source-context.js.map +1 -0
  98. package/dist/app.js +1 -1
  99. package/dist/app.js.map +1 -1
  100. package/dist/assemble.d.ts.map +1 -1
  101. package/dist/assemble.js +4 -1
  102. package/dist/assemble.js.map +1 -1
  103. package/dist/cli/bootstrap.d.ts +48 -0
  104. package/dist/cli/bootstrap.d.ts.map +1 -0
  105. package/dist/cli/bootstrap.js +85 -0
  106. package/dist/cli/bootstrap.js.map +1 -0
  107. package/dist/cli/history.d.ts +45 -0
  108. package/dist/cli/history.d.ts.map +1 -0
  109. package/dist/cli/history.js +165 -0
  110. package/dist/cli/history.js.map +1 -0
  111. package/dist/cli/index.js +691 -113
  112. package/dist/cli/index.js.map +1 -1
  113. package/dist/compare.d.ts +15 -5
  114. package/dist/compare.d.ts.map +1 -1
  115. package/dist/compare.js +83 -45
  116. package/dist/compare.js.map +1 -1
  117. package/dist/concurrency.d.ts +63 -0
  118. package/dist/concurrency.d.ts.map +1 -0
  119. package/dist/concurrency.js +134 -0
  120. package/dist/concurrency.js.map +1 -0
  121. package/dist/content-root.d.ts +38 -0
  122. package/dist/content-root.d.ts.map +1 -0
  123. package/dist/content-root.js +29 -0
  124. package/dist/content-root.js.map +1 -0
  125. package/dist/editor/mount.d.ts +1 -1
  126. package/dist/editor/mount.d.ts.map +1 -1
  127. package/dist/editor/mount.js +61 -29
  128. package/dist/editor/mount.js.map +1 -1
  129. package/dist/hash.d.ts +47 -1
  130. package/dist/hash.d.ts.map +1 -1
  131. package/dist/hash.js +107 -10
  132. package/dist/hash.js.map +1 -1
  133. package/dist/history-provider.d.ts +49 -0
  134. package/dist/history-provider.d.ts.map +1 -0
  135. package/dist/history-provider.js +226 -0
  136. package/dist/history-provider.js.map +1 -0
  137. package/dist/history-recorder.d.ts +98 -0
  138. package/dist/history-recorder.d.ts.map +1 -0
  139. package/dist/history-recorder.js +160 -0
  140. package/dist/history-recorder.js.map +1 -0
  141. package/dist/history-restorer.d.ts +46 -0
  142. package/dist/history-restorer.d.ts.map +1 -0
  143. package/dist/history-restorer.js +105 -0
  144. package/dist/history-restorer.js.map +1 -0
  145. package/dist/history.d.ts +111 -0
  146. package/dist/history.d.ts.map +1 -0
  147. package/dist/history.js +25 -0
  148. package/dist/history.js.map +1 -0
  149. package/dist/index.d.ts +26 -4
  150. package/dist/index.d.ts.map +1 -1
  151. package/dist/index.js +16 -3
  152. package/dist/index.js.map +1 -1
  153. package/dist/locale.d.ts +74 -0
  154. package/dist/locale.d.ts.map +1 -0
  155. package/dist/locale.js +150 -0
  156. package/dist/locale.js.map +1 -0
  157. package/dist/manifest.d.ts.map +1 -1
  158. package/dist/manifest.js +16 -1
  159. package/dist/manifest.js.map +1 -1
  160. package/dist/providers/azure-blob.d.ts.map +1 -1
  161. package/dist/providers/azure-blob.js.map +1 -1
  162. package/dist/providers/r2.d.ts.map +1 -1
  163. package/dist/providers/r2.js +7 -4
  164. package/dist/providers/r2.js.map +1 -1
  165. package/dist/providers/s3.d.ts.map +1 -1
  166. package/dist/providers/s3.js +23 -15
  167. package/dist/providers/s3.js.map +1 -1
  168. package/dist/publish-locale.d.ts +44 -0
  169. package/dist/publish-locale.d.ts.map +1 -0
  170. package/dist/publish-locale.js +103 -0
  171. package/dist/publish-locale.js.map +1 -0
  172. package/dist/publish-rendered.d.ts +17 -5
  173. package/dist/publish-rendered.d.ts.map +1 -1
  174. package/dist/publish-rendered.js +114 -66
  175. package/dist/publish-rendered.js.map +1 -1
  176. package/dist/publish.d.ts +39 -3
  177. package/dist/publish.d.ts.map +1 -1
  178. package/dist/publish.js +166 -17
  179. package/dist/publish.js.map +1 -1
  180. package/dist/renderer.d.ts +14 -4
  181. package/dist/renderer.d.ts.map +1 -1
  182. package/dist/renderer.js +35 -23
  183. package/dist/renderer.js.map +1 -1
  184. package/dist/resolver.d.ts +7 -2
  185. package/dist/resolver.d.ts.map +1 -1
  186. package/dist/resolver.js +66 -15
  187. package/dist/resolver.js.map +1 -1
  188. package/dist/robots.d.ts +22 -0
  189. package/dist/robots.d.ts.map +1 -0
  190. package/dist/robots.js +25 -0
  191. package/dist/robots.js.map +1 -0
  192. package/dist/seo.d.ts +56 -0
  193. package/dist/seo.d.ts.map +1 -0
  194. package/dist/seo.js +72 -0
  195. package/dist/seo.js.map +1 -0
  196. package/dist/serve.d.ts +41 -3
  197. package/dist/serve.d.ts.map +1 -1
  198. package/dist/serve.js +206 -65
  199. package/dist/serve.js.map +1 -1
  200. package/dist/sidecars.d.ts +60 -0
  201. package/dist/sidecars.d.ts.map +1 -0
  202. package/dist/sidecars.js +231 -0
  203. package/dist/sidecars.js.map +1 -0
  204. package/dist/site-loader.d.ts +74 -6
  205. package/dist/site-loader.d.ts.map +1 -1
  206. package/dist/site-loader.js +149 -36
  207. package/dist/site-loader.js.map +1 -1
  208. package/dist/sitemap.d.ts +45 -0
  209. package/dist/sitemap.d.ts.map +1 -0
  210. package/dist/sitemap.js +67 -0
  211. package/dist/sitemap.js.map +1 -0
  212. package/dist/source-sidecars.d.ts +32 -0
  213. package/dist/source-sidecars.d.ts.map +1 -0
  214. package/dist/source-sidecars.js +98 -0
  215. package/dist/source-sidecars.js.map +1 -0
  216. package/dist/targets.d.ts +47 -1
  217. package/dist/targets.d.ts.map +1 -1
  218. package/dist/targets.js +78 -9
  219. package/dist/targets.js.map +1 -1
  220. package/dist/template-loader.d.ts +7 -3
  221. package/dist/template-loader.d.ts.map +1 -1
  222. package/dist/template-loader.js +27 -12
  223. package/dist/template-loader.js.map +1 -1
  224. package/dist/templates-scan-worker.js +1 -1
  225. package/dist/templates-scan-worker.js.map +1 -1
  226. package/dist/templates-scan.d.ts.map +1 -1
  227. package/dist/templates-scan.js +1 -1
  228. package/dist/templates-scan.js.map +1 -1
  229. package/dist/types.d.ts +116 -9
  230. package/dist/types.d.ts.map +1 -1
  231. package/dist/types.js +28 -5
  232. package/dist/types.js.map +1 -1
  233. package/dist/workers/cloudflare-r2.d.ts +11 -2
  234. package/dist/workers/cloudflare-r2.d.ts.map +1 -1
  235. package/dist/workers/cloudflare-r2.js +120 -55
  236. package/dist/workers/cloudflare-r2.js.map +1 -1
  237. package/package.json +11 -2
  238. package/admin-dist/assets/index-Bh_y1d_l.css +0 -1
  239. package/admin-dist/assets/index-DjGNi6yy.js +0 -608
  240. package/admin-dist/assets/vendor-vue-DSjyxCX6.js +0 -1
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Locale resolution — single source of truth for locale configuration.
3
+ *
4
+ * Resolves the effective locale settings for a site and for each target,
5
+ * applying inheritance (target inherits from site) and inference
6
+ * (single-locale target auto-infers its default).
7
+ *
8
+ * All locale logic goes through this module. Consumers (renderer, publisher,
9
+ * CLI, admin API) call these functions instead of reading raw config fields.
10
+ */
11
+ import type { SiteManifest, TargetConfig } from './types.js';
12
+ /** Resolved locale settings for a site or target. */
13
+ export interface ResolvedLocales {
14
+ /** All supported locale codes, normalized to lowercase. */
15
+ supported: string[];
16
+ /** The default locale code. */
17
+ default: string;
18
+ /** Whether the default locale gets a URL prefix. */
19
+ defaultPrefix: boolean;
20
+ /** Whether Accept-Language detection/redirect is enabled. */
21
+ detection: boolean;
22
+ /** Fallback chains. E.g. { 'pt-br': 'pt' }. */
23
+ fallbacks: Record<string, string>;
24
+ }
25
+ /**
26
+ * Validate a locale code against BCP 47 pattern.
27
+ * Rejects path traversal (../), dots (fr.json), scripts, empty strings,
28
+ * and anything that isn't a simple language or language-region code.
29
+ */
30
+ export declare function isValidLocale(locale: string): boolean;
31
+ /** Normalize a BCP 47 locale code to lowercase for filenames. */
32
+ export declare function normalizeLocale(locale: string): string;
33
+ /**
34
+ * Resolve the default locale for a site manifest.
35
+ * Chain: explicit `locale` field → first in `locales.supported` → 'en'.
36
+ */
37
+ export declare function defaultLocaleFor(site: SiteManifest): string;
38
+ /**
39
+ * Resolve site-level locale settings.
40
+ * Returns null if i18n is not enabled (no `locales` config).
41
+ */
42
+ export declare function resolveSiteLocales(site: SiteManifest): ResolvedLocales | null;
43
+ /**
44
+ * Resolve target-level locale settings, inheriting from site.
45
+ * Returns null if i18n is not enabled at the site level.
46
+ */
47
+ export declare function resolveTargetLocales(target: TargetConfig, site: SiteManifest): ResolvedLocales | null;
48
+ /**
49
+ * Resolve the locale for a given filename suffix.
50
+ * `page.json` → default locale, `page.fr.json` → 'fr'.
51
+ */
52
+ export declare function localeFromFilename(filename: string, baseName: string): string | null;
53
+ /**
54
+ * Build the filename for a locale variant.
55
+ * `('page', null)` → `page.json`, `('page', 'fr')` → `page.fr.json`.
56
+ */
57
+ export declare function localeFilename(baseName: string, locale: string | null): string;
58
+ /**
59
+ * Resolve a locale through the fallback chain.
60
+ * Returns the first locale in the chain that has content,
61
+ * or the default if nothing matches.
62
+ *
63
+ * @param locale - The requested locale
64
+ * @param available - Set of locales that have content
65
+ * @param resolved - The resolved locale settings (for fallbacks and default)
66
+ */
67
+ export declare function resolveLocaleFallback(locale: string, available: Set<string>, resolved: ResolvedLocales): string;
68
+ /**
69
+ * Build the route prefix for a locale on a given target.
70
+ * Default locale → '' (no prefix, unless defaultPrefix is true).
71
+ * Other locales → '/{locale}'.
72
+ */
73
+ export declare function localeRoutePrefix(locale: string, resolved: ResolvedLocales): string;
74
+ //# sourceMappingURL=locale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../src/locale.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAiB,MAAM,YAAY,CAAA;AAE3E,qDAAqD;AACrD,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,oDAAoD;IACpD,aAAa,EAAE,OAAO,CAAA;IACtB,6DAA6D;IAC7D,SAAS,EAAE,OAAO,CAAA;IAClB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AAKD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAE3D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,eAAe,GAAG,IAAI,CAY7E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,GAAG,eAAe,GAAG,IAAI,CAsBrG;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWpF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAG9E;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,eAAe,GAAG,MAAM,CAiB/G;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,MAAM,CAInF"}
package/dist/locale.js ADDED
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Locale resolution — single source of truth for locale configuration.
3
+ *
4
+ * Resolves the effective locale settings for a site and for each target,
5
+ * applying inheritance (target inherits from site) and inference
6
+ * (single-locale target auto-infers its default).
7
+ *
8
+ * All locale logic goes through this module. Consumers (renderer, publisher,
9
+ * CLI, admin API) call these functions instead of reading raw config fields.
10
+ */
11
+ /** BCP 47 locale code pattern: 2-letter language, optional region subtag. */
12
+ const LOCALE_PATTERN = /^[a-z]{2}(-[a-z]{2,8})?$/;
13
+ /**
14
+ * Validate a locale code against BCP 47 pattern.
15
+ * Rejects path traversal (../), dots (fr.json), scripts, empty strings,
16
+ * and anything that isn't a simple language or language-region code.
17
+ */
18
+ export function isValidLocale(locale) {
19
+ return LOCALE_PATTERN.test(locale.toLowerCase());
20
+ }
21
+ /** Normalize a BCP 47 locale code to lowercase for filenames. */
22
+ export function normalizeLocale(locale) {
23
+ return locale.toLowerCase();
24
+ }
25
+ /**
26
+ * Resolve the default locale for a site manifest.
27
+ * Chain: explicit `locale` field → first in `locales.supported` → 'en'.
28
+ */
29
+ export function defaultLocaleFor(site) {
30
+ return site.locale ?? site.locales?.supported?.[0] ?? 'en';
31
+ }
32
+ /**
33
+ * Resolve site-level locale settings.
34
+ * Returns null if i18n is not enabled (no `locales` config).
35
+ */
36
+ export function resolveSiteLocales(site) {
37
+ if (!site.locales)
38
+ return null;
39
+ const supported = site.locales.supported.map(normalizeLocale);
40
+ if (supported.length === 0)
41
+ return null;
42
+ const defaultLocale = normalizeLocale(defaultLocaleFor(site));
43
+ return {
44
+ supported,
45
+ default: defaultLocale,
46
+ defaultPrefix: site.locales.defaultPrefix ?? false,
47
+ detection: site.locales.detection ?? false,
48
+ fallbacks: normalizeFallbacks(site.locales.fallbacks),
49
+ };
50
+ }
51
+ /**
52
+ * Resolve target-level locale settings, inheriting from site.
53
+ * Returns null if i18n is not enabled at the site level.
54
+ */
55
+ export function resolveTargetLocales(target, site) {
56
+ const siteLocales = resolveSiteLocales(site);
57
+ if (!siteLocales)
58
+ return null;
59
+ const supported = target.locales ? target.locales.map(normalizeLocale) : siteLocales.supported;
60
+ const defaultLocale = target.locale
61
+ ? normalizeLocale(target.locale)
62
+ : supported.length === 1
63
+ ? supported[0] // single-locale target: the only locale IS the default
64
+ : siteLocales.default;
65
+ return {
66
+ supported,
67
+ default: defaultLocale,
68
+ defaultPrefix: target.defaultPrefix ?? siteLocales.defaultPrefix,
69
+ detection: supported.length === 1
70
+ ? false // single-locale: nothing to detect
71
+ : (target.detection ?? siteLocales.detection),
72
+ fallbacks: siteLocales.fallbacks,
73
+ };
74
+ }
75
+ /**
76
+ * Resolve the locale for a given filename suffix.
77
+ * `page.json` → default locale, `page.fr.json` → 'fr'.
78
+ */
79
+ export function localeFromFilename(filename, baseName) {
80
+ // page.json → null (default)
81
+ if (filename === `${baseName}.json`)
82
+ return null;
83
+ // page.fr.json → 'fr', page.en-gb.json → 'en-gb'
84
+ const prefix = `${baseName}.`;
85
+ const suffix = '.json';
86
+ if (filename.startsWith(prefix) && filename.endsWith(suffix)) {
87
+ const locale = filename.slice(prefix.length, -suffix.length);
88
+ return locale || null;
89
+ }
90
+ return null;
91
+ }
92
+ /**
93
+ * Build the filename for a locale variant.
94
+ * `('page', null)` → `page.json`, `('page', 'fr')` → `page.fr.json`.
95
+ */
96
+ export function localeFilename(baseName, locale) {
97
+ if (!locale)
98
+ return `${baseName}.json`;
99
+ return `${baseName}.${normalizeLocale(locale)}.json`;
100
+ }
101
+ /**
102
+ * Resolve a locale through the fallback chain.
103
+ * Returns the first locale in the chain that has content,
104
+ * or the default if nothing matches.
105
+ *
106
+ * @param locale - The requested locale
107
+ * @param available - Set of locales that have content
108
+ * @param resolved - The resolved locale settings (for fallbacks and default)
109
+ */
110
+ export function resolveLocaleFallback(locale, available, resolved) {
111
+ const norm = normalizeLocale(locale);
112
+ if (available.has(norm))
113
+ return norm;
114
+ // Walk fallback chain
115
+ let current = norm;
116
+ while (resolved.fallbacks[current]) {
117
+ current = resolved.fallbacks[current];
118
+ if (available.has(current))
119
+ return current;
120
+ }
121
+ // Fall back to default
122
+ if (available.has(resolved.default))
123
+ return resolved.default;
124
+ // Last resort: first available
125
+ for (const loc of available)
126
+ return loc;
127
+ return resolved.default;
128
+ }
129
+ /**
130
+ * Build the route prefix for a locale on a given target.
131
+ * Default locale → '' (no prefix, unless defaultPrefix is true).
132
+ * Other locales → '/{locale}'.
133
+ */
134
+ export function localeRoutePrefix(locale, resolved) {
135
+ const norm = normalizeLocale(locale);
136
+ if (norm === resolved.default && !resolved.defaultPrefix)
137
+ return '';
138
+ return `/${norm}`;
139
+ }
140
+ /** Normalize fallback keys and values to lowercase. */
141
+ function normalizeFallbacks(fallbacks) {
142
+ if (!fallbacks)
143
+ return {};
144
+ const result = {};
145
+ for (const [key, value] of Object.entries(fallbacks)) {
146
+ result[normalizeLocale(key)] = normalizeLocale(value);
147
+ }
148
+ return result;
149
+ }
150
+ //# sourceMappingURL=locale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locale.js","sourceRoot":"","sources":["../src/locale.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAiD/G,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAYzG;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAYzG;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAUjH"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,gBAAgB,EAEhB,YAAY,EACZ,YAAY,EACZ,eAAe,EAChB,MAAM,YAAY,CAAA;AAiDnB,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAazG;AAcD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAazG;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAUjH"}
package/dist/manifest.js CHANGED
@@ -56,10 +56,24 @@ export async function parseSiteManifest(storage, filePath) {
56
56
  name: raw.name,
57
57
  version: raw.version,
58
58
  locale: raw.locale,
59
- baseUrl: raw.baseUrl,
59
+ locales: parseLocalesConfig(raw.locales),
60
+ defaultOgImage: raw.defaultOgImage,
60
61
  systemPages: Array.isArray(raw.systemPages) ? raw.systemPages : undefined,
61
62
  };
62
63
  }
64
+ function parseLocalesConfig(raw) {
65
+ if (!raw || typeof raw !== 'object')
66
+ return undefined;
67
+ const obj = raw;
68
+ if (!Array.isArray(obj.supported) || obj.supported.length === 0)
69
+ return undefined;
70
+ return {
71
+ supported: obj.supported,
72
+ fallbacks: obj.fallbacks,
73
+ defaultPrefix: typeof obj.defaultPrefix === 'boolean' ? obj.defaultPrefix : undefined,
74
+ detection: typeof obj.detection === 'boolean' ? obj.detection : undefined,
75
+ };
76
+ }
63
77
  export async function parsePageManifest(storage, filePath) {
64
78
  const raw = parseJson(await storage.readFile(filePath), filePath);
65
79
  if (typeof raw.template !== 'string') {
@@ -70,6 +84,7 @@ export async function parsePageManifest(storage, filePath) {
70
84
  template: raw.template,
71
85
  content: raw.content,
72
86
  components: parseComponents(raw.components),
87
+ metadata: raw.metadata,
73
88
  cache: raw.cache,
74
89
  };
75
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"azure-blob.d.ts","sourceRoot":"","sources":["../../src/providers/azure-blob.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAY,MAAM,aAAa,CAAA;AAE5D,MAAM,WAAW,wBAAwB;IACvC,gBAAgB,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;CAClB;AAWD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,eAAe,GAAG;IAAE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAiFtH"}
1
+ {"version":3,"file":"azure-blob.d.ts","sourceRoot":"","sources":["../../src/providers/azure-blob.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAY,MAAM,aAAa,CAAA;AAE5D,MAAM,WAAW,wBAAwB;IACvC,gBAAgB,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;CAClB;AAWD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,wBAAwB,GAChC,eAAe,GAAG;IAAE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAiF7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"azure-blob.js","sourceRoot":"","sources":["../../src/providers/azure-blob.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"azure-blob.js","sourceRoot":"","sources":["../../src/providers/azure-blob.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"r2.d.ts","sourceRoot":"","sources":["../../src/providers/r2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAY,MAAM,aAAa,CAAA;AAE5D,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB;AAID,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,eAAe,CA6EpF"}
1
+ {"version":3,"file":"r2.d.ts","sourceRoot":"","sources":["../../src/providers/r2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAY,MAAM,aAAa,CAAA;AAE5D,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB;AAID,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,eAAe,CAgFpF"}
@@ -22,7 +22,7 @@ export function createR2RestProvider(options) {
22
22
  const res = await fetch(url, { headers: headers() });
23
23
  if (!res.ok)
24
24
  throw new Error(`Cannot list ${path}: ${res.status}`);
25
- const data = await res.json();
25
+ const data = (await res.json());
26
26
  const entries = new Map();
27
27
  for (const obj of data.result ?? []) {
28
28
  const relativeName = obj.key.slice(prefixWithSlash.length);
@@ -37,7 +37,10 @@ export function createR2RestProvider(options) {
37
37
  return [...entries.entries()].map(([name, isDirectory]) => ({ name, isDirectory }));
38
38
  },
39
39
  async exists(path) {
40
- const res = await fetch(`${base}/${encodeURIComponent(normalizePath(path))}`, { method: 'HEAD', headers: headers() });
40
+ const res = await fetch(`${base}/${encodeURIComponent(normalizePath(path))}`, {
41
+ method: 'HEAD',
42
+ headers: headers(),
43
+ });
41
44
  if (res.ok)
42
45
  return true;
43
46
  // Check as directory prefix
@@ -45,7 +48,7 @@ export function createR2RestProvider(options) {
45
48
  const listRes = await fetch(url, { headers: headers() });
46
49
  if (!listRes.ok)
47
50
  return false;
48
- const data = await listRes.json();
51
+ const data = (await listRes.json());
49
52
  return (data.result?.length ?? 0) > 0;
50
53
  },
51
54
  async writeFile(path, content) {
@@ -69,7 +72,7 @@ export function createR2RestProvider(options) {
69
72
  const url = `${CF_API}/accounts/${accountId}/r2/buckets/${bucket}/objects?prefix=${encodeURIComponent(key)}`;
70
73
  const listRes = await fetch(url, { headers: headers() });
71
74
  if (listRes.ok) {
72
- const data = await listRes.json();
75
+ const data = (await listRes.json());
73
76
  for (const obj of data.result ?? []) {
74
77
  await fetch(`${base}/${encodeURIComponent(obj.key)}`, { method: 'DELETE', headers: headers() });
75
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"r2.js","sourceRoot":"","sources":["../../src/providers/r2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"r2.js","sourceRoot":"","sources":["../../src/providers/r2.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,GAAG,sCAAsC,CAAA;AAErD,MAAM,UAAU,oBAAoB,CAAC,OAA8B;IACjE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;IAC/C,MAAM,IAAI,GAAG,GAAG,MAAM,aAAa,SAAS,eAAe,MAAM,UAAU,CAAA;IAE3E,SAAS,OAAO,CAAC,KAA8B;QAC7C,OAAO,EAAE,aAAa,EAAE,UAAU,QAAQ,EAAE,EAAE,GAAG,KAAK,EAAE,CAAA;IAC1D,CAAC;IAED,OAAO;QACL,KAAK,CAAC,QAAQ,CAAC,IAAY;YACzB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,IAAI,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;YACrG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;oBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAA;gBAClE,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,KAAK,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAA;YACzE,CAAC;YACD,OAAO,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;QACzB,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,IAAY;YACxB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;YAClC,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;YAClD,MAAM,GAAG,GAAG,GAAG,MAAM,aAAa,SAAS,eAAe,MAAM,mBAAmB,kBAAkB,CAAC,eAAe,CAAC,EAAE,CAAA;YACxH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;YACpD,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;YAClE,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAuC,CAAA;YACrE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAA;YAC1C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;gBACpC,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;gBAC1D,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC/C,IAAI,CAAC,YAAY;oBAAE,SAAQ;gBAC3B,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;gBAC9C,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;oBAAE,SAAQ;gBACpE,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;YACxC,CAAC;YACD,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAA;QACrF,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,IAAY;YACvB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,IAAI,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE;gBAC5E,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,OAAO,EAAE;aACnB,CAAC,CAAA;YACF,IAAI,GAAG,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAA;YACvB,4BAA4B;YAC5B,MAAM,GAAG,GAAG,GAAG,MAAM,aAAa,SAAS,eAAe,MAAM,mBAAmB,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,aAAa,CAAA;YAC7I,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;YACxD,IAAI,CAAC,OAAO,CAAC,EAAE;gBAAE,OAAO,KAAK,CAAA;YAC7B,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAA0B,CAAA;YAC5D,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QACvC,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,OAAe;YAC3C,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAC9C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,IAAI,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE;gBAC5E,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,2BAA2B,EAAE,CAAC;gBACjE,IAAI;aACL,CAAC,CAAA;YACF,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,KAAK,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAA;QACvF,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,KAAa;YACvB,qDAAqD;QACvD,CAAC;QAED,KAAK,CAAC,EAAE,CAAC,IAAY;YACnB,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;YAC/B,gCAAgC;YAChC,MAAM,KAAK,CAAC,GAAG,IAAI,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;YAC3F,sCAAsC;YACtC,MAAM,GAAG,GAAG,GAAG,MAAM,aAAa,SAAS,eAAe,MAAM,mBAAmB,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAA;YAC5G,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;YACxD,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAuC,CAAA;gBACzE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;oBACpC,MAAM,KAAK,CAAC,GAAG,IAAI,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;gBACjG,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;AACxC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"s3.d.ts","sourceRoot":"","sources":["../../src/providers/s3.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAY,MAAM,aAAa,CAAA;AAE5D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,eAAe,GAAG;IAAE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAkGxG"}
1
+ {"version":3,"file":"s3.d.ts","sourceRoot":"","sources":["../../src/providers/s3.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAY,MAAM,aAAa,CAAA;AAE5D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,eAAe,GAAG;IAAE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAiHxG"}
@@ -38,20 +38,26 @@ export function createS3Provider(options) {
38
38
  const prefix = normalizePath(path);
39
39
  const prefixWithSlash = prefix ? `${prefix}/` : '';
40
40
  const entries = new Map();
41
- const response = await client.send(new ListObjectsV2Command({
42
- Bucket: bucket,
43
- Prefix: prefixWithSlash,
44
- }));
45
- for (const obj of response.Contents ?? []) {
46
- const relativeName = obj.Key.slice(prefixWithSlash.length);
47
- const firstSegment = relativeName.split('/')[0];
48
- if (!firstSegment)
49
- continue;
50
- const isDirectory = relativeName.includes('/');
51
- if (entries.has(firstSegment) && entries.get(firstSegment))
52
- continue;
53
- entries.set(firstSegment, isDirectory);
54
- }
41
+ // Paginate S3/R2 returns max 1000 keys per call
42
+ let continuationToken;
43
+ do {
44
+ const response = await client.send(new ListObjectsV2Command({
45
+ Bucket: bucket,
46
+ Prefix: prefixWithSlash,
47
+ ContinuationToken: continuationToken,
48
+ }));
49
+ for (const obj of response.Contents ?? []) {
50
+ const relativeName = obj.Key.slice(prefixWithSlash.length);
51
+ const firstSegment = relativeName.split('/')[0];
52
+ if (!firstSegment)
53
+ continue;
54
+ const isDirectory = relativeName.includes('/');
55
+ if (entries.has(firstSegment) && entries.get(firstSegment))
56
+ continue;
57
+ entries.set(firstSegment, isDirectory);
58
+ }
59
+ continuationToken = response.IsTruncated ? response.NextContinuationToken : undefined;
60
+ } while (continuationToken);
55
61
  return [...entries.entries()].map(([name, isDirectory]) => ({ name, isDirectory }));
56
62
  },
57
63
  async exists(path) {
@@ -86,7 +92,9 @@ export function createS3Provider(options) {
86
92
  try {
87
93
  await client.send(new DeleteObjectCommand({ Bucket: bucket, Key: prefix }));
88
94
  }
89
- catch { /* ignore */ }
95
+ catch {
96
+ /* ignore */
97
+ }
90
98
  // Delete all objects with this prefix
91
99
  const response = await client.send(new ListObjectsV2Command({ Bucket: bucket, Prefix: prefix }));
92
100
  for (const obj of response.Contents ?? []) {
@@ -1 +1 @@
1
- {"version":3,"file":"s3.js","sourceRoot":"","sources":["../../src/providers/s3.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"s3.js","sourceRoot":"","sources":["../../src/providers/s3.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Locale-aware publish helpers — renders locale variants alongside defaults.
3
+ *
4
+ * SRP: this module owns the "render all locales for an item" loop.
5
+ * Consumers (admin API publish, CLI publish) call these instead of
6
+ * duplicating the locale iteration logic.
7
+ *
8
+ * When `targetLocales` is provided, only locales in that set are rendered.
9
+ * This supports per-domain deployment where each target serves a locale subset.
10
+ */
11
+ import type { StorageProvider, CacheConfig } from './types.js';
12
+ import type { Site } from './site-loader.js';
13
+ import type { ContentRoot } from './content-root.js';
14
+ import type { SeoContext } from './seo.js';
15
+ import { type HashManifestOptions } from './hash.js';
16
+ export interface PublishLocaleResult {
17
+ files: number;
18
+ removed: number;
19
+ }
20
+ /**
21
+ * Publish a page in all locales — default + locale variants.
22
+ * When `targetLocales` is set, only render locales in that subset.
23
+ */
24
+ export declare function publishPageAllLocales(pageName: string, sourceRoot: ContentRoot, targetStorage: StorageProvider, site: Site, hashOpts: HashManifestOptions, opts: {
25
+ cache?: CacheConfig;
26
+ templatesDir?: string;
27
+ seo?: SeoContext;
28
+ /** When set, only publish locales in this subset. */
29
+ targetLocales?: string[];
30
+ /** Locale keys to skip (already up-to-date). null = default locale. */
31
+ unchangedLocales?: Set<string | null>;
32
+ }): Promise<PublishLocaleResult>;
33
+ /**
34
+ * Publish a fragment in all locales — default + locale variants.
35
+ * When `targetLocales` is set, only render locales in that subset.
36
+ */
37
+ export declare function publishFragmentAllLocales(fragName: string, sourceRoot: ContentRoot, targetStorage: StorageProvider, site: Site, hashOpts: HashManifestOptions, opts: {
38
+ templatesDir?: string;
39
+ /** When set, only publish locales in this subset. */
40
+ targetLocales?: string[];
41
+ /** Locale keys to skip (already up-to-date). null = default locale. */
42
+ unchangedLocales?: Set<string | null>;
43
+ }): Promise<PublishLocaleResult>;
44
+ //# sourceMappingURL=publish-locale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish-locale.d.ts","sourceRoot":"","sources":["../src/publish-locale.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAE1C,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAGlE,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,WAAW,EACvB,aAAa,EAAE,eAAe,EAC9B,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,mBAAmB,EAC7B,IAAI,EAAE;IACJ,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,GAAG,CAAC,EAAE,UAAU,CAAA;IAChB,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;CACtC,GACA,OAAO,CAAC,mBAAmB,CAAC,CAsE9B;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,WAAW,EACvB,aAAa,EAAE,eAAe,EAC9B,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,mBAAmB,EAC7B,IAAI,EAAE;IACJ,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;CACtC,GACA,OAAO,CAAC,mBAAmB,CAAC,CAgD9B"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Locale-aware publish helpers — renders locale variants alongside defaults.
3
+ *
4
+ * SRP: this module owns the "render all locales for an item" loop.
5
+ * Consumers (admin API publish, CLI publish) call these instead of
6
+ * duplicating the locale iteration logic.
7
+ *
8
+ * When `targetLocales` is provided, only locales in that set are rendered.
9
+ * This supports per-domain deployment where each target serves a locale subset.
10
+ */
11
+ import { publishPageRendered, publishFragmentRendered } from './publish-rendered.js';
12
+ import { hashManifest } from './hash.js';
13
+ import { defaultLocaleFor, localeRoutePrefix, resolveSiteLocales } from './locale.js';
14
+ /**
15
+ * Publish a page in all locales — default + locale variants.
16
+ * When `targetLocales` is set, only render locales in that subset.
17
+ */
18
+ export async function publishPageAllLocales(pageName, sourceRoot, targetStorage, site, hashOpts, opts) {
19
+ const page = site.pages.get(pageName);
20
+ if (!page)
21
+ return { files: 0, removed: 0 };
22
+ const localeFilter = opts.targetLocales ? new Set(opts.targetLocales) : null;
23
+ const skipLocales = opts.unchangedLocales ?? new Set();
24
+ const defaultLocale = defaultLocaleFor(site.manifest);
25
+ // Build hreflang alternates for subpath targets (2+ locales on same domain).
26
+ // Each locale variant of this page gets a map of all sibling locale URLs.
27
+ const resolvedLocales = resolveSiteLocales(site.manifest);
28
+ let hreflangAlternates;
29
+ const localeEntry = site.pageLocales.get(pageName);
30
+ if (opts.seo?.siteUrl && resolvedLocales && localeEntry && localeEntry.locales.size > 0) {
31
+ const activeLocales = localeFilter ? [...localeFilter] : [defaultLocale, ...localeEntry.locales.keys()];
32
+ if (activeLocales.length > 1) {
33
+ hreflangAlternates = {};
34
+ for (const loc of activeLocales) {
35
+ const prefix = localeRoutePrefix(loc, resolvedLocales);
36
+ const route = page.route === '/' ? prefix || '/' : `${prefix}${page.route}`;
37
+ hreflangAlternates[loc] = `${opts.seo.siteUrl}${route}`;
38
+ }
39
+ }
40
+ }
41
+ let totalFiles = 0;
42
+ let totalRemoved = 0;
43
+ // Default locale — skip if target doesn't include it or already up-to-date
44
+ if ((!localeFilter || localeFilter.has(defaultLocale)) && !skipLocales.has(null)) {
45
+ const manifestHash = hashManifest(page, hashOpts);
46
+ const seoWithHreflang = opts.seo ? { ...opts.seo, hreflangAlternates, defaultLocale } : undefined;
47
+ const { files, removed } = await publishPageRendered(pageName, sourceRoot, targetStorage, opts.cache, opts.templatesDir, manifestHash, site, seoWithHreflang);
48
+ totalFiles += files;
49
+ totalRemoved += removed;
50
+ }
51
+ // Locale variants — filter by target subset when configured
52
+ if (localeEntry) {
53
+ for (const [locale, localePage] of localeEntry.locales) {
54
+ if (localeFilter && !localeFilter.has(locale))
55
+ continue;
56
+ if (skipLocales.has(locale))
57
+ continue;
58
+ const localeHash = hashManifest(localePage, hashOpts);
59
+ const localeSeo = opts.seo ? { ...opts.seo, locale, hreflangAlternates, defaultLocale } : undefined;
60
+ const { files: lf, removed: lr } = await publishPageRendered(pageName, sourceRoot, targetStorage, opts.cache, opts.templatesDir, localeHash, site, localeSeo, locale);
61
+ totalFiles += lf;
62
+ totalRemoved += lr;
63
+ }
64
+ }
65
+ return { files: totalFiles, removed: totalRemoved };
66
+ }
67
+ /**
68
+ * Publish a fragment in all locales — default + locale variants.
69
+ * When `targetLocales` is set, only render locales in that subset.
70
+ */
71
+ export async function publishFragmentAllLocales(fragName, sourceRoot, targetStorage, site, hashOpts, opts) {
72
+ const frag = site.fragments.get(fragName);
73
+ if (!frag)
74
+ return { files: 0, removed: 0 };
75
+ const localeFilter = opts.targetLocales ? new Set(opts.targetLocales) : null;
76
+ const skipLocales = opts.unchangedLocales ?? new Set();
77
+ const defaultLocale = defaultLocaleFor(site.manifest);
78
+ let totalFiles = 0;
79
+ let totalRemoved = 0;
80
+ // Default locale — skip if target doesn't include it or already up-to-date
81
+ if ((!localeFilter || localeFilter.has(defaultLocale)) && !skipLocales.has(null)) {
82
+ const manifestHash = hashManifest(frag, hashOpts);
83
+ const { files, removed } = await publishFragmentRendered(fragName, sourceRoot, targetStorage, opts.templatesDir, manifestHash, site);
84
+ totalFiles += files;
85
+ totalRemoved += removed;
86
+ }
87
+ // Locale variants — filter by target subset when configured
88
+ const localeEntry = site.fragmentLocales.get(fragName);
89
+ if (localeEntry) {
90
+ for (const [locale, localeFrag] of localeEntry.locales) {
91
+ if (localeFilter && !localeFilter.has(locale))
92
+ continue;
93
+ if (skipLocales.has(locale))
94
+ continue;
95
+ const localeHash = hashManifest(localeFrag, hashOpts);
96
+ const { files: lf, removed: lr } = await publishFragmentRendered(fragName, sourceRoot, targetStorage, opts.templatesDir, localeHash, site, locale);
97
+ totalFiles += lf;
98
+ totalRemoved += lr;
99
+ }
100
+ }
101
+ return { files: totalFiles, removed: totalRemoved };
102
+ }
103
+ //# sourceMappingURL=publish-locale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish-locale.js","sourceRoot":"","sources":["../src/publish-locale.ts"],"names":[],"mappings":"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"}