alepha 0.22.0 → 0.23.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 (111) hide show
  1. package/dist/api/jobs/index.d.ts +20 -20
  2. package/dist/api/jobs/index.d.ts.map +1 -1
  3. package/dist/api/keys/index.d.ts +6 -6
  4. package/dist/api/users/index.d.ts +43 -9
  5. package/dist/api/users/index.d.ts.map +1 -1
  6. package/dist/api/users/index.js +24 -3
  7. package/dist/api/users/index.js.map +1 -1
  8. package/dist/api/verifications/index.d.ts +13 -13
  9. package/dist/cli/core/index.d.ts +46 -40
  10. package/dist/cli/core/index.d.ts.map +1 -1
  11. package/dist/cli/core/index.js +51 -101
  12. package/dist/cli/core/index.js.map +1 -1
  13. package/dist/cli/i18n/index.d.ts +12 -5
  14. package/dist/cli/i18n/index.d.ts.map +1 -1
  15. package/dist/cli/i18n/index.js +45 -11
  16. package/dist/cli/i18n/index.js.map +1 -1
  17. package/dist/cli/platform-lib/index.d.ts +32 -6
  18. package/dist/cli/platform-lib/index.d.ts.map +1 -1
  19. package/dist/cli/platform-lib/index.js +82 -19
  20. package/dist/cli/platform-lib/index.js.map +1 -1
  21. package/dist/command/index.d.ts +1 -1
  22. package/dist/mcp/index.d.ts +9 -0
  23. package/dist/mcp/index.d.ts.map +1 -1
  24. package/dist/mcp/index.js +23 -0
  25. package/dist/mcp/index.js.map +1 -1
  26. package/dist/react/form/index.d.ts +0 -1
  27. package/dist/react/form/index.d.ts.map +1 -1
  28. package/dist/react/form/index.js +16 -15
  29. package/dist/react/form/index.js.map +1 -1
  30. package/dist/react/i18n/index.d.ts +43 -0
  31. package/dist/react/i18n/index.d.ts.map +1 -1
  32. package/dist/react/i18n/index.js +114 -10
  33. package/dist/react/i18n/index.js.map +1 -1
  34. package/dist/react/router/index.browser.js +128 -5
  35. package/dist/react/router/index.browser.js.map +1 -1
  36. package/dist/react/router/index.d.ts +108 -1
  37. package/dist/react/router/index.d.ts.map +1 -1
  38. package/dist/react/router/index.js +184 -6
  39. package/dist/react/router/index.js.map +1 -1
  40. package/dist/react/sitemap/index.browser.js +35 -0
  41. package/dist/react/sitemap/index.browser.js.map +1 -0
  42. package/dist/react/sitemap/index.d.ts +92 -0
  43. package/dist/react/sitemap/index.d.ts.map +1 -0
  44. package/dist/react/sitemap/index.js +131 -0
  45. package/dist/react/sitemap/index.js.map +1 -0
  46. package/dist/server/auth/index.d.ts +105 -1
  47. package/dist/server/auth/index.d.ts.map +1 -1
  48. package/dist/server/auth/index.js +1604 -7
  49. package/dist/server/auth/index.js.map +1 -1
  50. package/dist/server/cookies/index.d.ts +15 -0
  51. package/dist/server/cookies/index.d.ts.map +1 -1
  52. package/dist/server/cookies/index.js +22 -3
  53. package/dist/server/cookies/index.js.map +1 -1
  54. package/dist/server/core/index.d.ts +18 -0
  55. package/dist/server/core/index.d.ts.map +1 -1
  56. package/dist/server/core/index.js +25 -0
  57. package/dist/server/core/index.js.map +1 -1
  58. package/package.json +16 -3
  59. package/src/api/users/controllers/RealmController.ts +1 -0
  60. package/src/api/users/primitives/$realm.ts +26 -0
  61. package/src/api/users/providers/RealmProvider.ts +15 -0
  62. package/src/api/users/schemas/realmConfigSchema.ts +14 -0
  63. package/src/cli/core/atoms/buildOptions.ts +0 -12
  64. package/src/cli/core/commands/build.ts +0 -10
  65. package/src/cli/core/index.ts +0 -3
  66. package/src/cli/core/tasks/BuildCloudflareTask.ts +37 -17
  67. package/src/cli/core/tasks/BuildPrerenderTask.ts +44 -7
  68. package/src/cli/i18n/__tests__/I18nCheckService.spec.ts +48 -0
  69. package/src/cli/i18n/services/I18nCheckService.ts +65 -11
  70. package/src/cli/platform-lib/adapters/CloudflareAdapter.ts +128 -36
  71. package/src/mcp/__tests__/McpServerProvider.spec.ts +71 -0
  72. package/src/mcp/providers/McpServerProvider.ts +55 -0
  73. package/src/react/form/__tests__/FormModel-submit-loading.spec.ts +71 -0
  74. package/src/react/form/__tests__/form-submitting-reactive.browser.spec.tsx +96 -0
  75. package/src/react/form/services/FormModel.ts +57 -39
  76. package/src/react/i18n/__tests__/I18nProvider.spec.ts +89 -0
  77. package/src/react/i18n/__tests__/locale-routing.spec.ts +107 -0
  78. package/src/react/i18n/providers/I18nProvider.ts +171 -12
  79. package/src/react/router/__tests__/RouterLocaleProvider.spec.ts +127 -0
  80. package/src/react/router/index.browser.ts +4 -0
  81. package/src/react/router/index.shared.ts +1 -0
  82. package/src/react/router/index.ts +9 -0
  83. package/src/react/router/providers/ReactBrowserRouterProvider.ts +15 -1
  84. package/src/react/router/providers/ReactPageProvider.ts +12 -1
  85. package/src/react/router/providers/ReactServerProvider.ts +92 -1
  86. package/src/react/router/providers/RootComponentsProvider.ts +13 -0
  87. package/src/react/router/providers/RouterLocaleProvider.ts +125 -0
  88. package/src/react/router/providers/__tests__/RootComponentsProvider.spec.ts +15 -0
  89. package/src/react/router/providers/__tests__/rootComponents.ssr.browser.spec.tsx +67 -0
  90. package/src/react/sitemap/__tests__/$sitemap.spec.ts +131 -0
  91. package/src/react/sitemap/index.browser.ts +21 -0
  92. package/src/react/sitemap/index.ts +25 -0
  93. package/src/react/sitemap/primitives/$sitemap.browser.ts +26 -0
  94. package/src/react/sitemap/primitives/$sitemap.ts +196 -0
  95. package/src/server/auth/__tests__/appleClientSecret.spec.ts +34 -0
  96. package/src/server/auth/__tests__/authFederationClient.spec.ts +40 -0
  97. package/src/server/auth/__tests__/federationAssertion.spec.ts +146 -0
  98. package/src/server/auth/__tests__/federationRedirectReplay.spec.ts +44 -0
  99. package/src/server/auth/helpers/appleClientSecret.ts +24 -0
  100. package/src/server/auth/helpers/federationAssertion.ts +74 -0
  101. package/src/server/auth/helpers/jtiReplayGuard.ts +41 -0
  102. package/src/server/auth/helpers/safeRedirectPath.ts +19 -0
  103. package/src/server/auth/index.ts +4 -0
  104. package/src/server/auth/primitives/$authFederationBroker.ts +273 -0
  105. package/src/server/auth/primitives/$authFederationClient.ts +89 -0
  106. package/src/server/auth/providers/ServerAuthProvider.ts +18 -4
  107. package/src/server/cookies/__tests__/ServerCookiesProvider.spec.ts +70 -0
  108. package/src/server/cookies/providers/ServerCookiesProvider.ts +23 -3
  109. package/src/server/core/interfaces/ServerRequest.ts +8 -0
  110. package/src/server/core/primitives/$route.ts +27 -0
  111. package/src/cli/core/tasks/BuildSitemapTask.ts +0 -130
@@ -40,6 +40,92 @@ declare class Redirection extends AlephaError {
40
40
  constructor(redirect: string);
41
41
  }
42
42
  //#endregion
43
+ //#region ../../src/react/router/providers/RootComponentsProvider.d.ts
44
+ /**
45
+ * Extension point letting any module contribute root-level React nodes that
46
+ * render on every page (siblings of the page view, inside AlephaContext).
47
+ *
48
+ * A module pushes into `rootComponents` from its `register` hook; the array
49
+ * is rendered by `ReactPageProvider.root()`. SSR-safe (same element feeds
50
+ * server render + client hydrate).
51
+ */
52
+ declare class RootComponentsProvider {
53
+ rootComponents: ReactNode[];
54
+ }
55
+ //#endregion
56
+ //#region ../../src/react/router/providers/RouterLocaleProvider.d.ts
57
+ /**
58
+ * Generic locale path-prefix mechanism for the router.
59
+ *
60
+ * This provider knows nothing about i18n — it only deals with URL path
61
+ * segments. It is configured by the i18n module (`I18nProvider`) when
62
+ * `routing: "prefix"` is enabled, which keeps the dependency one-directional
63
+ * (`i18n → router`) and avoids a module cycle.
64
+ *
65
+ * The default locale is served WITHOUT a prefix (`/about` = default,
66
+ * `/fr/about` = French). The active locale is derived from the current
67
+ * request/navigation and stored under `alepha.react.router.locale`, so every
68
+ * URL the router builds (`pathname()`) automatically carries the right prefix.
69
+ */
70
+ declare class RouterLocaleProvider {
71
+ protected readonly alepha: Alepha;
72
+ /**
73
+ * Whether locale path-prefixing is active. Off by default — opt-in via the
74
+ * i18n module.
75
+ */
76
+ enabled: boolean;
77
+ /**
78
+ * The default locale, served without a path prefix (e.g. `"en"` → `/about`).
79
+ */
80
+ defaultLocale: string;
81
+ /**
82
+ * All known locales, including the default one.
83
+ */
84
+ locales: string[];
85
+ /**
86
+ * Configure the provider. Called by the i18n module before the SSR routes
87
+ * are registered.
88
+ */
89
+ configure(options: {
90
+ enabled?: boolean;
91
+ defaultLocale?: string;
92
+ locales?: string[];
93
+ }): void;
94
+ /**
95
+ * Locales that carry a URL prefix — every known locale except the default.
96
+ */
97
+ get prefixedLocales(): string[];
98
+ /**
99
+ * Splits a leading locale segment off a pathname.
100
+ *
101
+ * - `/fr/about` → `{ locale: "fr", pathname: "/about" }` when `fr` is a
102
+ * prefixed locale.
103
+ * - `/about` → `{ locale: defaultLocale, pathname: "/about" }`.
104
+ *
105
+ * When prefixing is disabled the pathname is returned untouched.
106
+ */
107
+ detect(pathname: string): {
108
+ locale: string;
109
+ pathname: string;
110
+ };
111
+ /**
112
+ * Prepends the locale prefix to a pathname when needed. The default locale
113
+ * (and any unknown/disabled case) returns the pathname unchanged.
114
+ */
115
+ withPrefix(pathname: string, locale?: string): string;
116
+ /**
117
+ * The active locale, derived from the current request/navigation. Falls back
118
+ * to the default locale when nothing has been detected.
119
+ */
120
+ get current(): string;
121
+ set current(locale: string);
122
+ /**
123
+ * Normalizes a stripped pathname so it always starts with a single slash and
124
+ * carries no trailing slash (except the root `/`).
125
+ */
126
+ protected normalize(pathname: string): string;
127
+ }
128
+ //#endregion
43
129
  //#region ../../src/react/router/providers/ReactPageProvider.d.ts
44
130
  declare const reactPageOptions: import("alepha").Atom<import("typebox").TObject<{
45
131
  /**
@@ -68,6 +154,8 @@ declare class ReactPageProvider {
68
154
  staticFilePattern: string;
69
155
  }>;
70
156
  protected readonly alepha: Alepha;
157
+ protected readonly rootComponentsProvider: RootComponentsProvider;
158
+ protected readonly localeProvider: RouterLocaleProvider;
71
159
  protected readonly pages: PageRoute[];
72
160
  protected nextIdCursor: number;
73
161
  protected readonly configure: import("alepha").HookPrimitive<"configure">;
@@ -1262,6 +1350,7 @@ declare class ReactBrowserRouterProvider extends RouterProvider<BrowserRoute> {
1262
1350
  protected readonly alepha: Alepha;
1263
1351
  protected readonly pageApi: ReactPageProvider;
1264
1352
  protected readonly browserHeadProvider: BrowserHeadProvider;
1353
+ protected readonly localeProvider: RouterLocaleProvider;
1265
1354
  add(entry: PageRouteEntry): void;
1266
1355
  protected readonly configure: import("alepha").HookPrimitive<"configure">;
1267
1356
  transition(url: URL, previous?: PreviousLayerData[], meta?: {}, isStale?: () => boolean): Promise<string | undefined>;
@@ -1766,6 +1855,7 @@ declare class ReactServerProvider {
1766
1855
  protected readonly serverStaticProvider: ServerStaticProvider;
1767
1856
  protected readonly serverRouterProvider: ServerRouterProvider;
1768
1857
  protected readonly ssrManifestProvider: SSRManifestProvider;
1858
+ protected readonly localeProvider: RouterLocaleProvider;
1769
1859
  /**
1770
1860
  * Cached check for ServerLinksProvider - avoids has() lookup per request.
1771
1861
  */
@@ -1840,6 +1930,18 @@ declare class ReactServerProvider {
1840
1930
  * @param state - The router state
1841
1931
  * @returns Render result with redirect or React stream
1842
1932
  */
1933
+ /**
1934
+ * Inject SEO `hreflang` alternate links for the current route when
1935
+ * locale-prefix routing is enabled. Each registered locale gets an absolute
1936
+ * alternate URL (the default locale stays unprefixed), plus an `x-default`
1937
+ * pointing at the unprefixed URL — this is what lets crawlers index every
1938
+ * language. Also sets a best-effort `<html lang>` for the non-streaming /
1939
+ * prerender path; the streamed path's `<html lang>` is finalized on the
1940
+ * client (the early HTML head is flushed before the route is known).
1941
+ *
1942
+ * No-op unless `routing: "prefix"` is enabled on the i18n module.
1943
+ */
1944
+ protected injectLocaleHead(state: ReactRouterState): void;
1843
1945
  protected renderPage(route: PageRoute, state: ReactRouterState): Promise<{
1844
1946
  redirect?: string;
1845
1947
  reactStream?: ReadableStream<Uint8Array>;
@@ -1892,6 +1994,11 @@ declare module "alepha" {
1892
1994
  declare module "alepha" {
1893
1995
  interface State {
1894
1996
  "alepha.react.router.state"?: ReactRouterState;
1997
+ /**
1998
+ * The active locale path-prefix (e.g. `"fr"`), when `routing: "prefix"` is
1999
+ * enabled on the i18n module. Empty/absent for the default locale.
2000
+ */
2001
+ "alepha.react.router.locale"?: string;
1895
2002
  }
1896
2003
  interface Hooks {
1897
2004
  /**
@@ -1966,5 +2073,5 @@ declare module "alepha" {
1966
2073
  */
1967
2074
  declare const AlephaReactRouter: import("alepha").Service<import("alepha").Module>;
1968
2075
  //#endregion
1969
- export { $page, AlephaReactRouter, AnchorProps, ClientManifest, ConcretePageRoute, CreateLayersResult, DEFAULT_STATIC_FILE_PATTERN, EntryAssets, ErrorHandler, ErrorViewer, type ErrorViewerProps, HydrationData, Layer, Link, type LinkProps, _default as NestedView, type NestedViewProps, NotFound, PAGE_PRELOAD_KEY, PageAnimation, PageCanContext, PageConfigSchema, PageLoader, PageNav, PagePrimitive, PagePrimitiveOptions, PagePrimitiveRenderOptions, PagePrimitiveRenderResult, PageRequestConfig, PageRoute, PageRouteEntry, PreloadManifest, PreviousLayerData, ReactBrowserProvider, ReactBrowserRendererOptions, ReactHydrationState, ReactPageProvider, ReactPageService, ReactPreloadProvider, ReactRouter, ReactRouterState, ReactServerProvider, ReactServerProviderOptions, ReactServerTemplateProvider, Redirection, RouterLayerContext, RouterLayerContextValue, RouterPushOptions, RouterRenderOptions, RouterStackItem, SSRManifestProvider, TPropsDefault, TPropsParentDefault, UseActiveHook, UseActiveOptions, UseQueryParamsHookOptions, VirtualRouter, isPageRoute, reactBrowserOptions, reactPageOptions, reactServerOptions, useActive, useQueryParams, useRouter, useRouterState };
2076
+ export { $page, AlephaReactRouter, AnchorProps, ClientManifest, ConcretePageRoute, CreateLayersResult, DEFAULT_STATIC_FILE_PATTERN, EntryAssets, ErrorHandler, ErrorViewer, type ErrorViewerProps, HydrationData, Layer, Link, type LinkProps, _default as NestedView, type NestedViewProps, NotFound, PAGE_PRELOAD_KEY, PageAnimation, PageCanContext, PageConfigSchema, PageLoader, PageNav, PagePrimitive, PagePrimitiveOptions, PagePrimitiveRenderOptions, PagePrimitiveRenderResult, PageRequestConfig, PageRoute, PageRouteEntry, PreloadManifest, PreviousLayerData, ReactBrowserProvider, ReactBrowserRendererOptions, ReactHydrationState, ReactPageProvider, ReactPageService, ReactPreloadProvider, ReactRouter, ReactRouterState, ReactServerProvider, ReactServerProviderOptions, ReactServerTemplateProvider, Redirection, RootComponentsProvider, RouterLayerContext, RouterLayerContextValue, RouterLocaleProvider, RouterPushOptions, RouterRenderOptions, RouterStackItem, SSRManifestProvider, TPropsDefault, TPropsParentDefault, UseActiveHook, UseActiveOptions, UseQueryParamsHookOptions, VirtualRouter, isPageRoute, reactBrowserOptions, reactPageOptions, reactServerOptions, useActive, useQueryParams, useRouter, useRouterState };
1970
2077
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/react/router/constants/PAGE_PRELOAD_KEY.ts","../../../src/react/router/errors/Redirection.ts","../../../src/react/router/providers/ReactPageProvider.ts","../../../src/react/router/services/ReactPageService.ts","../../../src/react/router/primitives/$page.ts","../../../src/react/router/components/ErrorViewer.tsx","../../../src/react/router/components/Link.tsx","../../../src/react/router/components/NestedView.tsx","../../../src/react/router/components/NotFound.tsx","../../../src/react/router/contexts/RouterLayerContext.ts","../../../src/react/router/hooks/useActive.ts","../../../src/react/router/hooks/useQueryParams.ts","../../../src/react/router/hooks/useRouter.ts","../../../src/react/router/hooks/useRouterState.ts","../../../src/react/router/services/ReactRouter.ts","../../../src/react/router/providers/ReactBrowserRouterProvider.ts","../../../src/react/router/providers/ReactBrowserProvider.ts","../../../src/react/router/atoms/ssrManifestAtom.ts","../../../src/react/router/providers/SSRManifestProvider.ts","../../../src/react/router/providers/ReactPreloadProvider.ts","../../../src/react/router/providers/ReactServerTemplateProvider.ts","../../../src/react/router/providers/ReactServerProvider.ts","../../../src/react/router/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/react/router/constants/PAGE_PRELOAD_KEY.ts","../../../src/react/router/errors/Redirection.ts","../../../src/react/router/providers/RootComponentsProvider.ts","../../../src/react/router/providers/RouterLocaleProvider.ts","../../../src/react/router/providers/ReactPageProvider.ts","../../../src/react/router/services/ReactPageService.ts","../../../src/react/router/primitives/$page.ts","../../../src/react/router/components/ErrorViewer.tsx","../../../src/react/router/components/Link.tsx","../../../src/react/router/components/NestedView.tsx","../../../src/react/router/components/NotFound.tsx","../../../src/react/router/contexts/RouterLayerContext.ts","../../../src/react/router/hooks/useActive.ts","../../../src/react/router/hooks/useQueryParams.ts","../../../src/react/router/hooks/useRouter.ts","../../../src/react/router/hooks/useRouterState.ts","../../../src/react/router/services/ReactRouter.ts","../../../src/react/router/providers/ReactBrowserRouterProvider.ts","../../../src/react/router/providers/ReactBrowserProvider.ts","../../../src/react/router/atoms/ssrManifestAtom.ts","../../../src/react/router/providers/SSRManifestProvider.ts","../../../src/react/router/providers/ReactPreloadProvider.ts","../../../src/react/router/providers/ReactServerTemplateProvider.ts","../../../src/react/router/providers/ReactServerProvider.ts","../../../src/react/router/index.ts"],"mappings":"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"}
@@ -723,6 +723,117 @@ const NotFound = (props) => /* @__PURE__ */ jsxs("div", {
723
723
  })]
724
724
  });
725
725
  //#endregion
726
+ //#region ../../src/react/router/providers/RootComponentsProvider.ts
727
+ /**
728
+ * Extension point letting any module contribute root-level React nodes that
729
+ * render on every page (siblings of the page view, inside AlephaContext).
730
+ *
731
+ * A module pushes into `rootComponents` from its `register` hook; the array
732
+ * is rendered by `ReactPageProvider.root()`. SSR-safe (same element feeds
733
+ * server render + client hydrate).
734
+ */
735
+ var RootComponentsProvider = class {
736
+ rootComponents = [];
737
+ };
738
+ //#endregion
739
+ //#region ../../src/react/router/providers/RouterLocaleProvider.ts
740
+ /**
741
+ * Generic locale path-prefix mechanism for the router.
742
+ *
743
+ * This provider knows nothing about i18n — it only deals with URL path
744
+ * segments. It is configured by the i18n module (`I18nProvider`) when
745
+ * `routing: "prefix"` is enabled, which keeps the dependency one-directional
746
+ * (`i18n → router`) and avoids a module cycle.
747
+ *
748
+ * The default locale is served WITHOUT a prefix (`/about` = default,
749
+ * `/fr/about` = French). The active locale is derived from the current
750
+ * request/navigation and stored under `alepha.react.router.locale`, so every
751
+ * URL the router builds (`pathname()`) automatically carries the right prefix.
752
+ */
753
+ var RouterLocaleProvider = class {
754
+ alepha = $inject(Alepha);
755
+ /**
756
+ * Whether locale path-prefixing is active. Off by default — opt-in via the
757
+ * i18n module.
758
+ */
759
+ enabled = false;
760
+ /**
761
+ * The default locale, served without a path prefix (e.g. `"en"` → `/about`).
762
+ */
763
+ defaultLocale = "";
764
+ /**
765
+ * All known locales, including the default one.
766
+ */
767
+ locales = [];
768
+ /**
769
+ * Configure the provider. Called by the i18n module before the SSR routes
770
+ * are registered.
771
+ */
772
+ configure(options) {
773
+ if (options.enabled !== void 0) this.enabled = options.enabled;
774
+ if (options.defaultLocale !== void 0) this.defaultLocale = options.defaultLocale;
775
+ if (options.locales !== void 0) this.locales = options.locales;
776
+ }
777
+ /**
778
+ * Locales that carry a URL prefix — every known locale except the default.
779
+ */
780
+ get prefixedLocales() {
781
+ return this.locales.filter((locale) => locale !== this.defaultLocale);
782
+ }
783
+ /**
784
+ * Splits a leading locale segment off a pathname.
785
+ *
786
+ * - `/fr/about` → `{ locale: "fr", pathname: "/about" }` when `fr` is a
787
+ * prefixed locale.
788
+ * - `/about` → `{ locale: defaultLocale, pathname: "/about" }`.
789
+ *
790
+ * When prefixing is disabled the pathname is returned untouched.
791
+ */
792
+ detect(pathname) {
793
+ if (this.enabled) {
794
+ const first = pathname.split("/")[1];
795
+ if (first && this.prefixedLocales.includes(first)) {
796
+ const rest = pathname.slice(first.length + 1);
797
+ return {
798
+ locale: first,
799
+ pathname: this.normalize(rest)
800
+ };
801
+ }
802
+ }
803
+ return {
804
+ locale: this.defaultLocale,
805
+ pathname
806
+ };
807
+ }
808
+ /**
809
+ * Prepends the locale prefix to a pathname when needed. The default locale
810
+ * (and any unknown/disabled case) returns the pathname unchanged.
811
+ */
812
+ withPrefix(pathname, locale = this.current) {
813
+ if (!this.enabled || !locale || locale === this.defaultLocale || !this.prefixedLocales.includes(locale)) return pathname;
814
+ return `/${locale}${pathname === "/" ? "" : pathname}`;
815
+ }
816
+ /**
817
+ * The active locale, derived from the current request/navigation. Falls back
818
+ * to the default locale when nothing has been detected.
819
+ */
820
+ get current() {
821
+ return this.alepha.store.get("alepha.react.router.locale") || this.defaultLocale;
822
+ }
823
+ set current(locale) {
824
+ this.alepha.store.set("alepha.react.router.locale", locale);
825
+ }
826
+ /**
827
+ * Normalizes a stripped pathname so it always starts with a single slash and
828
+ * carries no trailing slash (except the root `/`).
829
+ */
830
+ normalize(pathname) {
831
+ if (!pathname || pathname === "/") return "/";
832
+ const withLeading = pathname.startsWith("/") ? pathname : `/${pathname}`;
833
+ return withLeading.length > 1 && withLeading.endsWith("/") ? withLeading.slice(0, -1) : withLeading;
834
+ }
835
+ };
836
+ //#endregion
726
837
  //#region ../../src/react/router/providers/ReactPageProvider.ts
727
838
  const reactPageOptions = $atom({
728
839
  name: "alepha.react.page.options",
@@ -756,6 +867,8 @@ var ReactPageProvider = class {
756
867
  log = $logger();
757
868
  options = $state(reactPageOptions);
758
869
  alepha = $inject(Alepha);
870
+ rootComponentsProvider = $inject(RootComponentsProvider);
871
+ localeProvider = $inject(RouterLocaleProvider);
759
872
  pages = [];
760
873
  nextIdCursor = 0;
761
874
  configure = $hook({
@@ -838,17 +951,19 @@ var ReactPageProvider = class {
838
951
  parent = parent.parent;
839
952
  }
840
953
  url = this.compile(url, options.params ?? {});
954
+ url = url.replace(/\/\/+/g, "/") || "/";
955
+ url = this.localeProvider.withPrefix(url);
841
956
  if (options.query) {
842
957
  const query = new URLSearchParams(options.query);
843
958
  if (query.toString()) url += `?${query.toString()}`;
844
959
  }
845
- return url.replace(/\/\/+/g, "/") || "/";
960
+ return url;
846
961
  }
847
962
  url(name, options = {}) {
848
963
  return new URL(this.pathname(name, options), options.host ?? `http://localhost`);
849
964
  }
850
965
  root(state) {
851
- const root = createElement(AlephaContext.Provider, { value: this.alepha }, createElement(NestedView_default, {}, state.layers[0]?.element));
966
+ const root = createElement(AlephaContext.Provider, { value: this.alepha }, createElement(NestedView_default, {}, state.layers[0]?.element), ...this.rootComponentsProvider.rootComponents);
852
967
  if (this.options.strictMode) return createElement(StrictMode, {}, root);
853
968
  return root;
854
969
  }
@@ -1800,6 +1915,7 @@ var ReactServerProvider = class {
1800
1915
  serverStaticProvider = $inject(ServerStaticProvider);
1801
1916
  serverRouterProvider = $inject(ServerRouterProvider);
1802
1917
  ssrManifestProvider = $inject(SSRManifestProvider);
1918
+ localeProvider = $inject(RouterLocaleProvider);
1803
1919
  /**
1804
1920
  * Cached check for ServerLinksProvider - avoids has() lookup per request.
1805
1921
  */
@@ -1847,10 +1963,23 @@ var ReactServerProvider = class {
1847
1963
  this.serverRouterProvider.createRoute({
1848
1964
  ...page,
1849
1965
  schema: void 0,
1966
+ static: void 0,
1850
1967
  method: "GET",
1851
1968
  path: page.match,
1852
1969
  handler
1853
1970
  });
1971
+ if (this.localeProvider.enabled) for (const locale of this.localeProvider.prefixedLocales) {
1972
+ const prefixedPath = this.localeProvider.withPrefix(page.match, locale);
1973
+ this.log.debug(`+ ${prefixedPath} -> ${page.name} (${locale})`);
1974
+ this.serverRouterProvider.createRoute({
1975
+ ...page,
1976
+ schema: void 0,
1977
+ static: void 0,
1978
+ method: "GET",
1979
+ path: prefixedPath,
1980
+ handler
1981
+ });
1982
+ }
1854
1983
  }
1855
1984
  }
1856
1985
  /**
@@ -1949,6 +2078,7 @@ var ReactServerProvider = class {
1949
2078
  return "Not Found";
1950
2079
  }
1951
2080
  this.log.trace("Rendering page", { name: route.name });
2081
+ if (this.localeProvider.enabled) this.localeProvider.current = this.localeProvider.detect(url.pathname).locale;
1952
2082
  const state = {
1953
2083
  url,
1954
2084
  params,
@@ -1988,7 +2118,14 @@ var ReactServerProvider = class {
1988
2118
  reply.body = result.html;
1989
2119
  return;
1990
2120
  }
1991
- const globalHead = this.serverHeadProvider.resolveGlobalHead();
2121
+ let globalHead = this.serverHeadProvider.resolveGlobalHead();
2122
+ if (this.localeProvider.enabled) globalHead = {
2123
+ ...globalHead,
2124
+ htmlAttributes: {
2125
+ ...globalHead?.htmlAttributes,
2126
+ lang: this.localeProvider.current
2127
+ }
2128
+ };
1992
2129
  const htmlStream = this.templateProvider.createEarlyHtmlStream(globalHead, async () => {
1993
2130
  const result = await this.renderPage(route, state);
1994
2131
  if (result.redirect) return { redirect: result.redirect };
@@ -2024,6 +2161,38 @@ var ReactServerProvider = class {
2024
2161
  * @param state - The router state
2025
2162
  * @returns Render result with redirect or React stream
2026
2163
  */
2164
+ /**
2165
+ * Inject SEO `hreflang` alternate links for the current route when
2166
+ * locale-prefix routing is enabled. Each registered locale gets an absolute
2167
+ * alternate URL (the default locale stays unprefixed), plus an `x-default`
2168
+ * pointing at the unprefixed URL — this is what lets crawlers index every
2169
+ * language. Also sets a best-effort `<html lang>` for the non-streaming /
2170
+ * prerender path; the streamed path's `<html lang>` is finalized on the
2171
+ * client (the early HTML head is flushed before the route is known).
2172
+ *
2173
+ * No-op unless `routing: "prefix"` is enabled on the i18n module.
2174
+ */
2175
+ injectLocaleHead(state) {
2176
+ if (!this.localeProvider.enabled) return;
2177
+ const { origin, search } = state.url;
2178
+ const canonical = this.localeProvider.detect(state.url.pathname).pathname;
2179
+ const links = this.localeProvider.locales.map((locale) => ({
2180
+ rel: "alternate",
2181
+ hreflang: locale,
2182
+ href: `${origin}${this.localeProvider.withPrefix(canonical, locale)}${search}`
2183
+ }));
2184
+ links.push({
2185
+ rel: "alternate",
2186
+ hreflang: "x-default",
2187
+ href: `${origin}${canonical}${search}`
2188
+ });
2189
+ state.head ??= {};
2190
+ state.head.link = [...state.head.link ?? [], ...links];
2191
+ state.head.htmlAttributes = {
2192
+ ...state.head.htmlAttributes,
2193
+ lang: this.localeProvider.current
2194
+ };
2195
+ }
2027
2196
  async renderPage(route, state) {
2028
2197
  const { redirect } = await this.pageApi.createLayers(route, state);
2029
2198
  if (redirect) {
@@ -2036,6 +2205,7 @@ var ReactServerProvider = class {
2036
2205
  state.head ??= {};
2037
2206
  state.head.link = [...state.head.link ?? [], ...preloadLinks];
2038
2207
  }
2208
+ this.injectLocaleHead(state);
2039
2209
  const element = this.pageApi.root(state);
2040
2210
  this.alepha.store.set("alepha.react.router.state", state);
2041
2211
  return { reactStream: await renderToReadableStream(element, { onError: (error) => {
@@ -2172,6 +2342,7 @@ var ReactBrowserRouterProvider = class extends RouterProvider {
2172
2342
  alepha = $inject(Alepha);
2173
2343
  pageApi = $inject(ReactPageProvider);
2174
2344
  browserHeadProvider = $inject(BrowserHeadProvider);
2345
+ localeProvider = $inject(RouterLocaleProvider);
2175
2346
  add(entry) {
2176
2347
  this.pageApi.add(entry);
2177
2348
  }
@@ -2200,7 +2371,13 @@ var ReactBrowserRouterProvider = class extends RouterProvider {
2200
2371
  state
2201
2372
  });
2202
2373
  try {
2203
- const { route, params } = this.match(pathname);
2374
+ let matchPathname = pathname;
2375
+ if (this.localeProvider.enabled) {
2376
+ const detected = this.localeProvider.detect(pathname);
2377
+ this.localeProvider.current = detected.locale;
2378
+ matchPathname = detected.pathname;
2379
+ }
2380
+ const { route, params } = this.match(matchPathname);
2204
2381
  const query = {};
2205
2382
  if (search) for (const [key, value] of new URLSearchParams(search).entries()) query[key] = String(value);
2206
2383
  state.name = route?.page.name;
@@ -2825,15 +3002,16 @@ const AlephaReactRouter = $module({
2825
3002
  ReactRouter,
2826
3003
  ReactServerProvider,
2827
3004
  ReactServerTemplateProvider,
3005
+ RouterLocaleProvider,
2828
3006
  SSRManifestProvider,
2829
3007
  ReactPageServerService
2830
3008
  ],
2831
3009
  register: (alepha) => alepha.with(AlephaReact).with(AlephaReactHead).with(AlephaDateTime).with(AlephaServer).with(AlephaServerEtag).with(AlephaServerLinks).with({
2832
3010
  provide: ReactPageService,
2833
3011
  use: ReactPageServerService
2834
- }).with(SSRManifestProvider).with(ReactServerTemplateProvider).with(ReactPreloadProvider).with(ReactServerProvider).with(ReactPageProvider).with(ReactRouter)
3012
+ }).with(SSRManifestProvider).with(ReactServerTemplateProvider).with(ReactPreloadProvider).with(ReactServerProvider).with(RouterLocaleProvider).with(ReactPageProvider).with(ReactRouter)
2835
3013
  });
2836
3014
  //#endregion
2837
- export { $page, AlephaReactRouter, DEFAULT_STATIC_FILE_PATTERN, ErrorViewer, Link, NestedView_default as NestedView, NotFound, PAGE_PRELOAD_KEY, PagePrimitive, ReactBrowserProvider, ReactPageProvider, ReactPageService, ReactPreloadProvider, ReactRouter, ReactServerProvider, ReactServerTemplateProvider, Redirection, RouterLayerContext, SSRManifestProvider, isPageRoute, reactBrowserOptions, reactPageOptions, reactServerOptions, useActive, useQueryParams, useRouter, useRouterState };
3015
+ export { $page, AlephaReactRouter, DEFAULT_STATIC_FILE_PATTERN, ErrorViewer, Link, NestedView_default as NestedView, NotFound, PAGE_PRELOAD_KEY, PagePrimitive, ReactBrowserProvider, ReactPageProvider, ReactPageService, ReactPreloadProvider, ReactRouter, ReactServerProvider, ReactServerTemplateProvider, Redirection, RootComponentsProvider, RouterLayerContext, RouterLocaleProvider, SSRManifestProvider, isPageRoute, reactBrowserOptions, reactPageOptions, reactServerOptions, useActive, useQueryParams, useRouter, useRouterState };
2838
3016
 
2839
3017
  //# sourceMappingURL=index.js.map