reroute-js 1.0.0-alpha.39 → 1.0.0-alpha.40

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 (236) hide show
  1. package/README.md +34 -0
  2. package/cli/bin.d.ts +1 -1
  3. package/cli/bin.js +231 -50
  4. package/cli/bin.js.map +13 -13
  5. package/cli/index.d.ts +1 -1
  6. package/cli/index.js +8 -5
  7. package/cli/index.js.map +11 -10
  8. package/cli/src/cli.d.ts +1 -1
  9. package/cli/src/commands/analyze.d.ts +1 -1
  10. package/cli/src/commands/build.d.ts +1 -1
  11. package/cli/src/commands/dev.d.ts +1 -1
  12. package/cli/src/commands/gen.d.ts +1 -1
  13. package/cli/src/commands/gen.d.ts.map +1 -1
  14. package/cli/src/commands/index.d.ts +1 -1
  15. package/cli/src/commands/init.d.ts +1 -1
  16. package/cli/src/commands/lib/assets.d.ts +1 -1
  17. package/cli/src/commands/lib/bundler.d.ts +1 -1
  18. package/cli/src/commands/lib/command.d.ts +1 -1
  19. package/cli/src/commands/lib/env.d.ts +1 -1
  20. package/cli/src/commands/lib/images.d.ts +1 -1
  21. package/cli/src/commands/lib/index.d.ts +1 -1
  22. package/cli/src/commands/lib/log.d.ts +1 -1
  23. package/cli/src/commands/lib/markdown/availability.d.ts +1 -1
  24. package/cli/src/commands/lib/markdown/index.d.ts +1 -1
  25. package/cli/src/commands/lib/markdown/processor.d.ts +1 -1
  26. package/cli/src/commands/lib/prerender.d.ts +1 -1
  27. package/cli/src/commands/lib/production.d.ts +1 -1
  28. package/cli/src/commands/lib/routes.d.ts +1 -1
  29. package/cli/src/commands/lib/server.d.ts +1 -1
  30. package/cli/src/commands/lib/ssr-strip.d.ts +1 -1
  31. package/cli/src/commands/lib/static.d.ts +1 -1
  32. package/cli/src/commands/lib/streaming/analyzer.d.ts +1 -1
  33. package/cli/src/commands/lib/streaming/suspense.d.ts +1 -1
  34. package/cli/src/commands/lib/supervise.d.ts +1 -1
  35. package/cli/src/commands/lib/terminal-ui.d.ts +1 -1
  36. package/cli/src/commands/lib/theme.d.ts +1 -1
  37. package/cli/src/commands/lib/version.d.ts +1 -1
  38. package/cli/src/commands/lib/watch.d.ts +1 -1
  39. package/cli/src/commands/og.d.ts +1 -1
  40. package/cli/src/commands/start.d.ts +1 -1
  41. package/cli/src/commands/static-render.d.ts +1 -1
  42. package/cli/src/index.d.ts +1 -1
  43. package/core/index.d.ts +1 -1
  44. package/core/index.js +221 -46
  45. package/core/index.js.map +12 -12
  46. package/core/src/app-paths.d.ts +1 -1
  47. package/core/src/bundler/hash.d.ts +1 -1
  48. package/core/src/bundler/index.d.ts +1 -1
  49. package/core/src/config.d.ts +1 -1
  50. package/core/src/content/discovery.d.ts +1 -1
  51. package/core/src/content/index.d.ts +1 -1
  52. package/core/src/content/metadata.d.ts +1 -1
  53. package/core/src/i18n/catalog.d.ts +1 -1
  54. package/core/src/i18n/discover.d.ts +1 -1
  55. package/core/src/i18n/discover.d.ts.map +1 -1
  56. package/core/src/i18n/index.d.ts +2 -2
  57. package/core/src/i18n/index.d.ts.map +1 -1
  58. package/core/src/i18n/messages.d.ts +1 -1
  59. package/core/src/i18n/negotiate.d.ts +1 -1
  60. package/core/src/i18n/pathname.d.ts +32 -4
  61. package/core/src/i18n/pathname.d.ts.map +1 -1
  62. package/core/src/i18n/resolve.d.ts +3 -2
  63. package/core/src/i18n/resolve.d.ts.map +1 -1
  64. package/core/src/i18n/types.d.ts +44 -1
  65. package/core/src/i18n/types.d.ts.map +1 -1
  66. package/core/src/image.d.ts +1 -1
  67. package/core/src/index.d.ts +1 -1
  68. package/core/src/llms/discovery.d.ts +1 -1
  69. package/core/src/llms/extractor.d.ts +1 -1
  70. package/core/src/llms/formatter.d.ts +1 -1
  71. package/core/src/llms/full-generator.d.ts +1 -1
  72. package/core/src/llms/index-generator.d.ts +1 -1
  73. package/core/src/llms/index.d.ts +1 -1
  74. package/core/src/og/discovery.d.ts +1 -1
  75. package/core/src/og/index.d.ts +1 -1
  76. package/core/src/og/meta.d.ts +1 -1
  77. package/core/src/og/render.d.ts +1 -1
  78. package/core/src/og/types.d.ts +1 -1
  79. package/core/src/robots/discovery.d.ts +1 -1
  80. package/core/src/robots/generator.d.ts +1 -1
  81. package/core/src/robots/index.d.ts +1 -1
  82. package/core/src/robots/policies.d.ts +1 -1
  83. package/core/src/rss/discovery.d.ts +1 -1
  84. package/core/src/rss/generator.d.ts +1 -1
  85. package/core/src/rss/index.d.ts +1 -1
  86. package/core/src/sitemap/discovery.d.ts +1 -1
  87. package/core/src/sitemap/generator.d.ts +12 -2
  88. package/core/src/sitemap/generator.d.ts.map +1 -1
  89. package/core/src/sitemap/index.d.ts +1 -1
  90. package/core/src/ssr/index.d.ts +1 -1
  91. package/core/src/ssr/lib/cache.d.ts +1 -1
  92. package/core/src/ssr/lib/cleanup.d.ts +1 -1
  93. package/core/src/ssr/lib/collections.d.ts +1 -1
  94. package/core/src/ssr/lib/compression.d.ts +1 -1
  95. package/core/src/ssr/lib/compute/content.d.ts +1 -1
  96. package/core/src/ssr/lib/compute/index.d.ts +1 -1
  97. package/core/src/ssr/lib/compute/layouts.d.ts +1 -1
  98. package/core/src/ssr/lib/compute/layouts.d.ts.map +1 -1
  99. package/core/src/ssr/lib/compute/routes.d.ts +1 -1
  100. package/core/src/ssr/lib/compute/routes.d.ts.map +1 -1
  101. package/core/src/ssr/lib/content-path.d.ts +13 -2
  102. package/core/src/ssr/lib/content-path.d.ts.map +1 -1
  103. package/core/src/ssr/lib/data.d.ts +1 -1
  104. package/core/src/ssr/lib/html.d.ts +1 -1
  105. package/core/src/ssr/lib/imports.d.ts +1 -1
  106. package/core/src/ssr/lib/index.d.ts +1 -1
  107. package/core/src/ssr/lib/layouts.d.ts +1 -1
  108. package/core/src/ssr/lib/metadata.d.ts +1 -1
  109. package/core/src/ssr/lib/metadata.d.ts.map +1 -1
  110. package/core/src/ssr/lib/mime.d.ts +1 -1
  111. package/core/src/ssr/lib/modules.d.ts +1 -1
  112. package/core/src/ssr/lib/path.d.ts +1 -1
  113. package/core/src/ssr/lib/preload.d.ts +1 -1
  114. package/core/src/ssr/lib/route-match.d.ts +1 -1
  115. package/core/src/ssr/lib/scripts/collections.d.ts +1 -1
  116. package/core/src/ssr/lib/scripts/data.d.ts +1 -1
  117. package/core/src/ssr/lib/scripts/escape.d.ts +1 -1
  118. package/core/src/ssr/lib/scripts/feeds.d.ts +1 -1
  119. package/core/src/ssr/lib/scripts/index.d.ts +1 -1
  120. package/core/src/ssr/lib/seed.d.ts +1 -1
  121. package/core/src/ssr/lib/serialize.d.ts +1 -1
  122. package/core/src/ssr/lib/setup.d.ts +1 -1
  123. package/core/src/ssr/lib/styles.d.ts +1 -1
  124. package/core/src/ssr/lib/template.d.ts +1 -1
  125. package/core/src/ssr/lib/types.d.ts +7 -1
  126. package/core/src/ssr/lib/types.d.ts.map +1 -1
  127. package/core/src/ssr/render.d.ts +1 -1
  128. package/core/src/ssr/stream.d.ts +1 -1
  129. package/core/src/ssr/stream.d.ts.map +1 -1
  130. package/elysia/index.d.ts +1 -1
  131. package/elysia/index.js +370 -87
  132. package/elysia/index.js.map +18 -17
  133. package/elysia/src/index.d.ts +1 -1
  134. package/elysia/src/libs/assets.d.ts +1 -1
  135. package/elysia/src/libs/cache.d.ts +1 -1
  136. package/elysia/src/libs/caching.d.ts +1 -1
  137. package/elysia/src/libs/devReload.d.ts +1 -1
  138. package/elysia/src/libs/http.d.ts +1 -1
  139. package/elysia/src/libs/i18n.d.ts +14 -3
  140. package/elysia/src/libs/i18n.d.ts.map +1 -1
  141. package/elysia/src/libs/image.d.ts +1 -1
  142. package/elysia/src/libs/index.d.ts +1 -1
  143. package/elysia/src/libs/lazyData.d.ts +38 -0
  144. package/elysia/src/libs/lazyData.d.ts.map +1 -0
  145. package/elysia/src/libs/llms.d.ts +1 -1
  146. package/elysia/src/libs/response.d.ts +1 -1
  147. package/elysia/src/libs/serving.d.ts +1 -1
  148. package/elysia/src/plugin.d.ts +1 -1
  149. package/elysia/src/routes/artifacts.d.ts +1 -1
  150. package/elysia/src/routes/content.d.ts +1 -1
  151. package/elysia/src/routes/image.d.ts +1 -1
  152. package/elysia/src/routes/index.d.ts +1 -1
  153. package/elysia/src/routes/internal.d.ts +1 -1
  154. package/elysia/src/routes/internal.d.ts.map +1 -1
  155. package/elysia/src/routes/liveReloadClient.d.ts +1 -1
  156. package/elysia/src/routes/llms.d.ts +1 -1
  157. package/elysia/src/routes/og.d.ts +1 -1
  158. package/elysia/src/routes/redirects.d.ts +1 -1
  159. package/elysia/src/routes/robots.d.ts +1 -1
  160. package/elysia/src/routes/rss.d.ts +1 -1
  161. package/elysia/src/routes/search.d.ts +1 -1
  162. package/elysia/src/routes/sitemap.d.ts +1 -1
  163. package/elysia/src/routes/sitemap.d.ts.map +1 -1
  164. package/elysia/src/routes/ssr.d.ts +1 -1
  165. package/elysia/src/routes/ssr.d.ts.map +1 -1
  166. package/elysia/src/routes/static.d.ts +1 -1
  167. package/elysia/src/routes/themeCssRefresh.d.ts +1 -1
  168. package/elysia/src/types.d.ts +1 -1
  169. package/package.json +1 -1
  170. package/react/index.d.ts +1 -1
  171. package/react/index.js +85 -20
  172. package/react/index.js.map +6 -6
  173. package/react/src/components/ClientOnly.d.ts +1 -1
  174. package/react/src/components/ContentRoute.d.ts +1 -1
  175. package/react/src/components/Image.d.ts +1 -1
  176. package/react/src/components/LazyRoute.d.ts +1 -1
  177. package/react/src/components/Link.d.ts +1 -1
  178. package/react/src/components/Markdown.d.ts +1 -1
  179. package/react/src/components/Outlet.d.ts +1 -1
  180. package/react/src/components/index.d.ts +1 -1
  181. package/react/src/hooks/index.d.ts +1 -1
  182. package/react/src/hooks/useContent.d.ts +1 -1
  183. package/react/src/hooks/useData.d.ts +1 -1
  184. package/react/src/hooks/useFeed.d.ts +1 -1
  185. package/react/src/hooks/useLayoutData.d.ts +1 -1
  186. package/react/src/hooks/useLlms.d.ts +1 -1
  187. package/react/src/hooks/useNavigate.d.ts +1 -1
  188. package/react/src/hooks/useParams.d.ts +1 -1
  189. package/react/src/hooks/useRouter.d.ts +1 -1
  190. package/react/src/hooks/useSearch.d.ts +1 -1
  191. package/react/src/hooks/useSearchParams.d.ts +1 -1
  192. package/react/src/hooks/useToc.d.ts +1 -1
  193. package/react/src/i18n/LocaleProvider.d.ts +20 -2
  194. package/react/src/i18n/LocaleProvider.d.ts.map +1 -1
  195. package/react/src/i18n/helpers.d.ts +31 -3
  196. package/react/src/i18n/helpers.d.ts.map +1 -1
  197. package/react/src/i18n/index.d.ts +2 -2
  198. package/react/src/i18n/index.d.ts.map +1 -1
  199. package/react/src/index.d.ts +1 -1
  200. package/react/src/lib/bundle.d.ts +1 -1
  201. package/react/src/lib/collection.d.ts +1 -1
  202. package/react/src/lib/content.d.ts +1 -1
  203. package/react/src/lib/head.d.ts +1 -1
  204. package/react/src/lib/index.d.ts +1 -1
  205. package/react/src/lib/layouts.d.ts +1 -1
  206. package/react/src/lib/lazy-route.d.ts +1 -1
  207. package/react/src/lib/route-loader.d.ts +1 -1
  208. package/react/src/lib/static-data.d.ts +1 -1
  209. package/react/src/providers/ContentProvider.d.ts +1 -1
  210. package/react/src/providers/RerouteProvider.d.ts +1 -1
  211. package/react/src/providers/RerouteProvider.d.ts.map +1 -1
  212. package/react/src/providers/RouterProvider.d.ts +4 -2
  213. package/react/src/providers/RouterProvider.d.ts.map +1 -1
  214. package/react/src/providers/index.d.ts +1 -1
  215. package/react/src/types/any.d.ts +1 -1
  216. package/react/src/types/index.d.ts +1 -1
  217. package/react/src/types/router.d.ts +7 -1
  218. package/react/src/types/router.d.ts.map +1 -1
  219. package/telemetry/react.d.ts +1 -1
  220. package/telemetry/react.js +2 -2
  221. package/telemetry/react.js.map +1 -1
  222. package/telemetry/server.d.ts +1 -1
  223. package/telemetry/server.js +6 -3
  224. package/telemetry/server.js.map +11 -10
  225. package/telemetry/src/react/api.d.ts +1 -1
  226. package/telemetry/src/react/context.d.ts +1 -1
  227. package/telemetry/src/react/index.d.ts +1 -1
  228. package/telemetry/src/react/telemetry.d.ts +1 -1
  229. package/telemetry/src/server/context.d.ts +1 -1
  230. package/telemetry/src/server/headers/extractor.d.ts +1 -1
  231. package/telemetry/src/server/headers/index.d.ts +1 -1
  232. package/telemetry/src/server/headers/presets.d.ts +1 -1
  233. package/telemetry/src/server/index.d.ts +1 -1
  234. package/telemetry/src/server/instrumentation.d.ts +1 -1
  235. package/telemetry/src/server/plugin.d.ts +1 -1
  236. package/telemetry/src/server/sourcemap.d.ts +1 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1 +1 @@
1
- {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/i18n/discover.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAkB,YAAY,EAAE,MAAM,SAAS,CAAC;AAEzE,QAAA,MAAM,cAAc,UAAU,CAAC;AAC/B,QAAA,MAAM,mBAAmB,YAAY,CAAC;AACtC,QAAA,MAAM,cAAc,mBAAmB,CAAC;AAuCxC;;GAEG;AACH,iBAAe,YAAY,CAC1B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,WAAgB,GACvB,OAAO,CAAC,YAAY,CAAC,CAgDvB;AAED,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,mBAAmB,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/i18n/discover.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAkB,YAAY,EAAE,MAAM,SAAS,CAAC;AAEzE,QAAA,MAAM,cAAc,UAAU,CAAC;AAC/B,QAAA,MAAM,mBAAmB,YAAY,CAAC;AACtC,QAAA,MAAM,cAAc,mBAAmB,CAAC;AAuCxC;;GAEG;AACH,iBAAe,YAAY,CAC1B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,WAAgB,GACvB,OAAO,CAAC,YAAY,CAAC,CAyDvB;AAED,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,mBAAmB,EAAE,YAAY,EAAE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -11,7 +11,7 @@ export { getMessage, lookupMessage } from './catalog';
11
11
  export { DEFAULT_COOKIE, DEFAULT_LOCALE, DEFAULT_LOCALES_DIR, discoverI18n, } from './discover';
12
12
  export { createTranslator, formatMessage, type MessageValues, } from './messages';
13
13
  export { buildLocaleCookie, negotiateLocale, parseCookieValue, } from './negotiate';
14
- export { contentKey, hreflangTags, localizeContentHref, localizeHref, looksLikeLocale, normalizePathname, parseContentPath, toOgLocale, } from './pathname';
14
+ export { contentKey, hreflangTags, isUnprefixedPath, localizeContentHref, localizeHref, localizePagePath, looksLikeLocale, normalizePathname, pageHreflangTags, parseContentPath, parseLocalePrefix, toOgLocale, } from './pathname';
15
15
  export { contentNegotiateRedirect, resolveLocale } from './resolve';
16
16
  export type { I18nOptions, LocaleResolution, LocaleResolutionInput, MessageCatalog, ParsedContentPath, ResolvedI18n, } from './types';
17
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EACN,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,YAAY,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EACN,gBAAgB,EAChB,aAAa,EACb,KAAK,aAAa,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EACN,iBAAiB,EACjB,eAAe,EACf,gBAAgB,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,GACV,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACpE,YAAY,EACX,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,YAAY,GACZ,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EACN,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,YAAY,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EACN,gBAAgB,EAChB,aAAa,EACb,KAAK,aAAa,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EACN,iBAAiB,EACjB,eAAe,EACf,gBAAgB,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,GACV,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACpE,YAAY,EACX,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,YAAY,GACZ,MAAM,SAAS,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -23,12 +23,40 @@ declare function parseContentPath(pathname: string, availableLocales?: string[],
23
23
  */
24
24
  declare function localizeContentHref(collection: string, name: string, locale: string, defaultLocale: string): string;
25
25
  /**
26
- * If `to` is a content href, rewrite it for the active locale; otherwise return as-is.
26
+ * A page URL's locale prefix (`prefixPages`): `/pt-BR/compare` is pt-BR at
27
+ * `/compare`, `/pt-BR` and `/pt-BR/` are pt-BR at `/`. The first segment must
28
+ * be an available locale, in any casing; `locale` is the listed casing and
29
+ * `segment` the URL's.
27
30
  */
28
- declare function localizeHref(to: string, locale: string, defaultLocale: string, availableLocales?: string[], collections?: string[]): string;
31
+ declare function parseLocalePrefix(pathname: string, availableLocales: string[]): {
32
+ locale: string;
33
+ segment: string;
34
+ routingPathname: string;
35
+ } | undefined;
36
+ /**
37
+ * A page's URL in a locale (`prefixPages`): unprefixed for the default
38
+ * locale (`/compare`), prefixed for the others (`/pt-BR/compare`).
39
+ */
40
+ declare function localizePagePath(pathname: string, locale: string, defaultLocale: string): string;
41
+ /**
42
+ * Whether `pathname` is under one of `unprefixedPaths` (`prefixPages`):
43
+ * `/portfolio` covers `/portfolio` and `/portfolio/x`, never `/portfolios`.
44
+ */
45
+ declare function isUnprefixedPath(pathname: string, unprefixedPaths?: string[]): boolean;
46
+ /**
47
+ * Rewrite `to` for the active locale: a content href gets its locale segment;
48
+ * with `prefixPages` (given), any other page path gets its locale prefix (a
49
+ * path that names a locale already, one of its `unprefixedPaths`, or a file
50
+ * such as `/feed.xml` stays as written).
51
+ */
52
+ declare function localizeHref(to: string, locale: string, defaultLocale: string, availableLocales?: string[], collections?: string[], prefixPages?: {
53
+ unprefixedPaths?: string[];
54
+ }): string;
29
55
  /** Content SSR / module key — includes locale when not default. */
30
56
  declare function contentKey(collection: string, name: string, locale?: string, defaultLocale?: string): string;
31
57
  declare function toOgLocale(locale: string): string;
32
58
  declare function hreflangTags(baseUrl: string, collection: string, name: string, locales: string[], defaultLocale: string): string;
33
- export { contentKey, hreflangTags, localizeContentHref, localizeHref, looksLikeLocale, normalizePathname, parseContentPath, toOgLocale, };
59
+ /** hreflang alternates of a page (`prefixPages`) at its unprefixed path. */
60
+ declare function pageHreflangTags(baseUrl: string, routingPathname: string, locales: string[], defaultLocale: string): string;
61
+ export { contentKey, hreflangTags, isUnprefixedPath, localizeContentHref, localizeHref, localizePagePath, looksLikeLocale, normalizePathname, pageHreflangTags, parseContentPath, parseLocalePrefix, toOgLocale, };
34
62
  //# sourceMappingURL=pathname.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pathname.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/i18n/pathname.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,yDAAyD;AACzD,iBAAS,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,iBAAS,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAInD;AAED;;;;GAIG;AACH,iBAAS,gBAAgB,CACxB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,GAAE,MAAM,EAAO,EAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,GACpB,iBAAiB,GAAG,SAAS,CA0C/B;AAED;;;GAGG;AACH,iBAAS,mBAAmB,CAC3B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,GACnB,MAAM,CAKR;AAED;;GAEG;AACH,iBAAS,YAAY,CACpB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,gBAAgB,GAAE,MAAM,EAAO,EAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,GACpB,MAAM,CAoBR;AAED,mEAAmE;AACnE,iBAAS,UAAU,CAClB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,EACf,aAAa,SAAU,GACrB,MAAM,CAKR;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED,iBAAS,YAAY,CACpB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EAAE,EACjB,aAAa,EAAE,MAAM,GACnB,MAAM,CAsBR;AAED,OAAO,EACN,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,GACV,CAAC"}
1
+ {"version":3,"file":"pathname.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/i18n/pathname.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,yDAAyD;AACzD,iBAAS,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,iBAAS,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAInD;AAED;;;;GAIG;AACH,iBAAS,gBAAgB,CACxB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,GAAE,MAAM,EAAO,EAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,GACpB,iBAAiB,GAAG,SAAS,CA0C/B;AAED;;;GAGG;AACH,iBAAS,mBAAmB,CAC3B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,GACnB,MAAM,CAKR;AAED;;;;;GAKG;AACH,iBAAS,iBAAiB,CACzB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EAAE,GACxB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAO1E;AAED;;;GAGG;AACH,iBAAS,gBAAgB,CACxB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,GACnB,MAAM,CAGR;AAED;;;GAGG;AACH,iBAAS,gBAAgB,CACxB,QAAQ,EAAE,MAAM,EAChB,eAAe,GAAE,MAAM,EAAO,GAC5B,OAAO,CAMT;AAED;;;;;GAKG;AACH,iBAAS,YAAY,CACpB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,gBAAgB,GAAE,MAAM,EAAO,EAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,EACtB,WAAW,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAC1C,MAAM,CAgCR;AAED,mEAAmE;AACnE,iBAAS,UAAU,CAClB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,EACf,aAAa,SAAU,GACrB,MAAM,CAKR;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1C;AAkBD,iBAAS,YAAY,CACpB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EAAE,EACjB,aAAa,EAAE,MAAM,GACnB,MAAM,CAIR;AAED,4EAA4E;AAC5E,iBAAS,gBAAgB,CACxB,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EAAE,EACjB,aAAa,EAAE,MAAM,GACnB,MAAM,CAIR;AAED,OAAO,EACN,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,GACV,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -11,7 +11,8 @@ import type { LocaleResolution, LocaleResolutionInput } from './types';
11
11
  /**
12
12
  * Resolve active locale: `?lang=` → content URL → cookie → Accept-Language → default.
13
13
  * `?lang=` is an explicit override (language switcher). A content URL locale
14
- * always beats cookie / Accept-Language.
14
+ * always beats cookie / Accept-Language. With `prefixPages`, see
15
+ * resolvePrefixedLocale; with `localeParam`, resolveParamLocale.
15
16
  */
16
17
  declare function resolveLocale(input: LocaleResolutionInput): LocaleResolution;
17
18
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/i18n/resolve.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAoCvE;;;;GAIG;AACH,iBAAS,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,gBAAgB,CAqGrE;AAED;;;GAGG;AACH,iBAAS,wBAAwB,CAChC,UAAU,EAAE,gBAAgB,EAC5B,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,OAAO,GACd,MAAM,GAAG,SAAS,CAYpB;AAED,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/i18n/resolve.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAsJvE;;;;;GAKG;AACH,iBAAS,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,gBAAgB,CAIrE;AA4GD;;;GAGG;AACH,iBAAS,wBAAwB,CAChC,UAAU,EAAE,gBAAgB,EAC5B,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,OAAO,GACd,MAAM,GAAG,SAAS,CAYpB;AAED,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -24,6 +24,32 @@ type I18nOptions = {
24
24
  * @default true
25
25
  */
26
26
  redirectContentOnNegotiate?: boolean;
27
+ /**
28
+ * Every page carries its locale in the URL: `/pt-BR/compare`, unprefixed
29
+ * for the default locale; content keeps `/{collection}/{locale}/{name}`.
30
+ * The URL is then the only source of a page's locale (never the cookie or
31
+ * Accept-Language), so each response is a function of its URL and a CDN
32
+ * may cache it. `?lang=` redirects to the locale's URL.
33
+ * @default false
34
+ */
35
+ prefixPages?: boolean;
36
+ /**
37
+ * With `prefixPages`, paths never localized by URL (`/portfolio` covers
38
+ * `/portfolio` and `/portfolio/...`, not `/portfolios`): a prefixed one
39
+ * 301s to its bare URL, and the locale comes from `?lang=`, the cookie or
40
+ * Accept-Language as without `prefixPages`. For per-visitor pages whose
41
+ * URL must not move (a PWA scope, a universal link, a payment return).
42
+ */
43
+ unprefixedPaths?: string[];
44
+ /**
45
+ * A query parameter that names the page's locale, added by a CDN in front
46
+ * of the app (from the visitor's Accept-Language, say) so that it is part
47
+ * of the cache key: `/ana?__locale=pt-BR`. When set, a page's locale is
48
+ * that parameter (a content URL's segment still wins), else the default;
49
+ * the cookie and Accept-Language are never read and no cookie is set, so
50
+ * each response is a function of its URL. Not with `prefixPages`.
51
+ */
52
+ localeParam?: string;
27
53
  };
28
54
  type ResolvedI18n = {
29
55
  enabled: boolean;
@@ -32,6 +58,10 @@ type ResolvedI18n = {
32
58
  localesDir: string;
33
59
  cookie: string;
34
60
  redirectContentOnNegotiate: boolean;
61
+ prefixPages: boolean;
62
+ unprefixedPaths: string[];
63
+ /** See I18nOptions.localeParam; empty when unset. */
64
+ localeParam: string;
35
65
  catalogs: Record<string, MessageCatalog>;
36
66
  };
37
67
  type ParsedContentPath = {
@@ -55,6 +85,12 @@ type LocaleResolutionInput = {
55
85
  cookieName?: string;
56
86
  /** Known content collection names (for detecting /collection/locale/name). */
57
87
  collections?: string[];
88
+ /** Pages carry their locale as a path prefix; the URL alone decides. */
89
+ prefixPages?: boolean;
90
+ /** With `prefixPages`, paths that keep the cookie/Accept-Language chain. */
91
+ unprefixedPaths?: string[];
92
+ /** The query parameter a CDN names the locale with (see I18nOptions). */
93
+ localeParam?: string;
58
94
  };
59
95
  type LocaleResolution = {
60
96
  locale: string;
@@ -66,6 +102,13 @@ type LocaleResolution = {
66
102
  fromQuery: boolean;
67
103
  /** Optional 302 target when content should redirect to localized URL. */
68
104
  redirectTo?: string;
105
+ /** The redirect is for good (a default-locale prefix): 301, not 302. */
106
+ permanent?: boolean;
107
+ /**
108
+ * The URL alone named the locale (`prefixPages`, `localeParam`): nothing
109
+ * to remember in a cookie, unless `?lang=` chose it.
110
+ */
111
+ urlOnly?: boolean;
69
112
  parsed?: ParsedContentPath;
70
113
  };
71
114
  export type { I18nOptions, LocaleResolution, LocaleResolutionInput, MessageCatalog, ParsedContentPath, ResolvedI18n, };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/i18n/types.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,KAAK,cAAc,GAAG;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,cAAc,CAAC;CACvC,CAAC;AAEF,KAAK,WAAW,GAAG;IAClB,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACrC,CAAC;AAEF,KAAK,YAAY,GAAG;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B,EAAE,OAAO,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACzC,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,eAAe,EAAE,MAAM,CAAC;IACxB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,0FAA0F;IAC1F,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,eAAe,EAAE,MAAM,CAAC;IACxB,mDAAmD;IACnD,QAAQ,EAAE,OAAO,CAAC;IAClB,2DAA2D;IAC3D,SAAS,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC3B,CAAC;AAEF,YAAY,EACX,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,YAAY,GACZ,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/i18n/types.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,KAAK,cAAc,GAAG;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,cAAc,CAAC;CACvC,CAAC;AAEF,KAAK,WAAW,GAAG;IAClB,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,YAAY,GAAG;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B,EAAE,OAAO,CAAC;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACzC,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,eAAe,EAAE,MAAM,CAAC;IACxB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,0FAA0F;IAC1F,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,wEAAwE;IACxE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4EAA4E;IAC5E,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,eAAe,EAAE,MAAM,CAAC;IACxB,mDAAmD;IACnD,QAAQ,EAAE,OAAO,CAAC;IAClB,2DAA2D;IAC3D,SAAS,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC3B,CAAC;AAEF,YAAY,EACX,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,YAAY,GACZ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -13,6 +13,15 @@ type SitemapPage = {
13
13
  xml: string;
14
14
  entryCount: number;
15
15
  };
16
+ /** `i18n.prefixPages`: pages are listed once per locale. */
17
+ type SitemapLocales = {
18
+ locales: string[];
19
+ defaultLocale: string;
20
+ /** Content collections: their URLs keep `/{collection}/{locale}/{name}`. */
21
+ collections: string[];
22
+ /** Pages with one URL for every locale: listed once. */
23
+ unprefixedPaths?: string[];
24
+ };
16
25
  type SitemapResult = {
17
26
  pages: SitemapPage[];
18
27
  indexXml?: string;
@@ -26,6 +35,7 @@ declare function generateSitemap(discovery: SitemapDiscoveryResult, baseUrl: str
26
35
  priority?: number;
27
36
  maxUrlsPerPage?: number;
28
37
  excludeRoutes?: string[];
38
+ i18n?: SitemapLocales;
29
39
  }): Promise<SitemapResult>;
30
40
  /**
31
41
  * Generate sitemap XML for a set of entries
@@ -39,5 +49,5 @@ declare function generateSitemapIndexXML(pages: SitemapPage[], baseUrl: string):
39
49
  * Escape XML special characters
40
50
  */
41
51
  declare function escapeXml(unsafe: string): string;
42
- export { escapeXml, generateSitemap, generateSitemapIndexXML, generateSitemapXML, type SitemapPage, type SitemapResult, };
52
+ export { escapeXml, generateSitemap, generateSitemapIndexXML, generateSitemapXML, type SitemapLocales, type SitemapPage, type SitemapResult, };
43
53
  //# sourceMappingURL=generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/sitemap/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIxE,KAAK,WAAW,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,aAAa,GAAG;IACpB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;CACpB,CAAC;AAkHF;;GAEG;AACH,iBAAe,eAAe,CAC7B,SAAS,EAAE,sBAAsB,EACjC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IACR,UAAU,CAAC,EACR,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,OAAO,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,GACJ,OAAO,CAAC,aAAa,CAAC,CAwBxB;AAED;;GAEG;AACH,iBAAS,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,CAwC3D;AAED;;GAEG;AACH,iBAAS,uBAAuB,CAC/B,KAAK,EAAE,WAAW,EAAE,EACpB,OAAO,EAAE,MAAM,GACb,MAAM,CAgBR;AAED;;GAEG;AACH,iBAAS,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAOzC;AAED,OAAO,EACN,SAAS,EACT,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,aAAa,GAClB,CAAC"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/sitemap/generator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIxE,KAAK,WAAW,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,4DAA4D;AAC5D,KAAK,cAAc,GAAG;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,wDAAwD;IACxD,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,KAAK,aAAa,GAAG;IACpB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;CACpB,CAAC;AAoJF;;GAEG;AACH,iBAAe,eAAe,CAC7B,SAAS,EAAE,sBAAsB,EACjC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IACR,UAAU,CAAC,EACR,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,OAAO,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,cAAc,CAAC;CACjB,GACJ,OAAO,CAAC,aAAa,CAAC,CAyBxB;AAED;;GAEG;AACH,iBAAS,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,CAwC3D;AAED;;GAEG;AACH,iBAAS,uBAAuB,CAC/B,KAAK,EAAE,WAAW,EAAE,EACpB,OAAO,EAAE,MAAM,GACb,MAAM,CAgBR;AAED;;GAEG;AACH,iBAAS,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAOzC;AAED,OAAO,EACN,SAAS,EACT,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,aAAa,GAClB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1 +1 @@
1
- {"version":3,"file":"layouts.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/ssr/lib/compute/layouts.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,GAAG,EAAmB,MAAM,UAAU,CAAC;AAErE,KAAK,mBAAmB,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;CACjC,CAAC;AAmMF;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACtC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,cAAc,EACvB,YAAY,CAAC,EAAE,eAAe,EAC9B,YAAY,CAAC,EAAE,GAAG,EAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,mBAAmB,CAAC,CA0C9B;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,EAAE,MAAM,GACd,IAAI,CAoBN"}
1
+ {"version":3,"file":"layouts.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/ssr/lib/compute/layouts.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,GAAG,EAAmB,MAAM,UAAU,CAAC;AAErE,KAAK,mBAAmB,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;CACjC,CAAC;AAmMF;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACtC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,cAAc,EACvB,YAAY,CAAC,EAAE,eAAe,EAC9B,YAAY,CAAC,EAAE,GAAG,EAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,mBAAmB,CAAC,CA8C9B;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,EAAE,MAAM,GACd,IAAI,CAoBN"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.39
2
+ * reroute-js v1.0.0-alpha.40
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/ssr/lib/compute/routes.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACX,cAAc,EACd,GAAG,EAIH,MAAM,UAAU,CAAC;AAElB,KAAK,kBAAkB,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;CACjC,CAAC;AA+DF,wBAAsB,gBAAgB,CACrC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,cAAc,EACvB,YAAY,CAAC,EAAE,eAAe,EAC9B,YAAY,CAAC,EAAE,GAAG,EAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,kBAAkB,CAAC,CA4H7B"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/ssr/lib/compute/routes.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACX,cAAc,EACd,GAAG,EAIH,MAAM,UAAU,CAAC;AAElB,KAAK,kBAAkB,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;CACjC,CAAC;AA+DF,wBAAsB,gBAAgB,CACrC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,cAAc,EACvB,YAAY,CAAC,EAAE,eAAe,EAC9B,YAAY,CAAC,EAAE,GAAG,EAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,kBAAkB,CAAC,CA0H7B"}