@alepha/react 0.14.2 → 0.14.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth/index.browser.js +29 -14
- package/dist/auth/index.browser.js.map +1 -1
- package/dist/auth/index.js +960 -195
- package/dist/auth/index.js.map +1 -1
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +7 -4
- package/dist/core/index.js.map +1 -1
- package/dist/head/index.browser.js +59 -19
- package/dist/head/index.browser.js.map +1 -1
- package/dist/head/index.d.ts +99 -560
- package/dist/head/index.d.ts.map +1 -1
- package/dist/head/index.js +92 -87
- package/dist/head/index.js.map +1 -1
- package/dist/router/index.browser.js +30 -15
- package/dist/router/index.browser.js.map +1 -1
- package/dist/router/index.d.ts +616 -192
- package/dist/router/index.d.ts.map +1 -1
- package/dist/router/index.js +961 -196
- package/dist/router/index.js.map +1 -1
- package/package.json +4 -4
- package/src/auth/__tests__/$auth.spec.ts +188 -0
- package/src/core/__tests__/Router.spec.tsx +169 -0
- package/src/core/hooks/useAction.browser.spec.tsx +569 -0
- package/src/core/hooks/useAction.ts +11 -0
- package/src/form/hooks/useForm.browser.spec.tsx +366 -0
- package/src/head/helpers/SeoExpander.spec.ts +203 -0
- package/src/head/hooks/useHead.spec.tsx +288 -0
- package/src/head/index.ts +11 -28
- package/src/head/providers/BrowserHeadProvider.browser.spec.ts +196 -0
- package/src/head/providers/BrowserHeadProvider.ts +25 -19
- package/src/head/providers/HeadProvider.ts +76 -10
- package/src/head/providers/ServerHeadProvider.ts +22 -138
- package/src/i18n/__tests__/integration.spec.tsx +239 -0
- package/src/i18n/components/Localize.spec.tsx +357 -0
- package/src/i18n/hooks/useI18n.browser.spec.tsx +438 -0
- package/src/i18n/providers/I18nProvider.spec.ts +389 -0
- package/src/router/__tests__/page-head-browser.browser.spec.ts +91 -0
- package/src/router/__tests__/page-head.spec.ts +44 -0
- package/src/router/__tests__/seo-head.spec.ts +121 -0
- package/src/router/atoms/ssrManifestAtom.ts +60 -0
- package/src/router/constants/PAGE_PRELOAD_KEY.ts +6 -0
- package/src/router/errors/Redirection.ts +1 -1
- package/src/router/index.shared.ts +1 -0
- package/src/router/index.ts +16 -2
- package/src/router/primitives/$page.browser.spec.tsx +702 -0
- package/src/router/primitives/$page.spec.tsx +702 -0
- package/src/router/primitives/$page.ts +46 -10
- package/src/router/providers/ReactBrowserProvider.ts +14 -29
- package/src/router/providers/ReactBrowserRouterProvider.ts +5 -0
- package/src/router/providers/ReactPageProvider.ts +11 -4
- package/src/router/providers/ReactServerProvider.spec.tsx +316 -0
- package/src/router/providers/ReactServerProvider.ts +331 -315
- package/src/router/providers/ReactServerTemplateProvider.ts +775 -0
- package/src/router/providers/SSRManifestProvider.ts +365 -0
- package/src/router/services/ReactPageServerService.ts +5 -3
- package/src/router/services/ReactRouter.ts +3 -3
|
@@ -6,6 +6,7 @@ export { default as NestedView } from "./components/NestedView.tsx";
|
|
|
6
6
|
export type * from "./components/NestedView.tsx";
|
|
7
7
|
export { default as NotFound } from "./components/NotFound.tsx";
|
|
8
8
|
export type * from "./components/NotFound.tsx";
|
|
9
|
+
export * from "./constants/PAGE_PRELOAD_KEY.ts";
|
|
9
10
|
export * from "./contexts/RouterLayerContext.ts";
|
|
10
11
|
export * from "./primitives/$page.ts";
|
|
11
12
|
export * from "./errors/Redirection.ts";
|
package/src/router/index.ts
CHANGED
|
@@ -7,6 +7,8 @@ import { AlephaServer, type ServerRequest } from "alepha/server";
|
|
|
7
7
|
import type { ReactNode } from "react";
|
|
8
8
|
import type { ReactHydrationState } from "./providers/ReactBrowserProvider.ts";
|
|
9
9
|
import { ReactServerProvider } from "./providers/ReactServerProvider.ts";
|
|
10
|
+
import { ReactServerTemplateProvider } from "./providers/ReactServerTemplateProvider.ts";
|
|
11
|
+
import { SSRManifestProvider } from "./providers/SSRManifestProvider.ts";
|
|
10
12
|
import { ReactPageServerService } from "./services/ReactPageServerService.ts";
|
|
11
13
|
import { AlephaServerCache } from "alepha/server/cache";
|
|
12
14
|
import { AlephaServerLinks } from "alepha/server/links";
|
|
@@ -19,6 +21,8 @@ export * from "./index.shared.ts";
|
|
|
19
21
|
export * from "./providers/ReactPageProvider.ts";
|
|
20
22
|
export * from "./providers/ReactBrowserProvider.ts";
|
|
21
23
|
export * from "./providers/ReactServerProvider.ts";
|
|
24
|
+
export * from "./providers/ReactServerTemplateProvider.ts";
|
|
25
|
+
export * from "./providers/SSRManifestProvider.ts";
|
|
22
26
|
|
|
23
27
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
24
28
|
|
|
@@ -46,6 +50,9 @@ declare module "alepha" {
|
|
|
46
50
|
// -----------------------------------------------------------------------------------------------------------------
|
|
47
51
|
/**
|
|
48
52
|
* Fires when the React application is being rendered on the browser.
|
|
53
|
+
*
|
|
54
|
+
* Note: this one is not really necessary, it's a hack because we need to isolate renderer from server code in order
|
|
55
|
+
* to avoid including react-dom/client in server bundles.
|
|
49
56
|
*/
|
|
50
57
|
"react:browser:render": {
|
|
51
58
|
root: HTMLElement;
|
|
@@ -94,7 +101,7 @@ declare module "alepha" {
|
|
|
94
101
|
* - URL pattern matching with parameters (e.g., `/users/:id`)
|
|
95
102
|
* - Nested routing with parent-child relationships
|
|
96
103
|
* - Type-safe URL parameter and query string validation
|
|
97
|
-
* - Server-side data fetching with the `
|
|
104
|
+
* - Server-side data fetching with the `loader` function
|
|
98
105
|
* - Lazy loading and code splitting
|
|
99
106
|
* - Page animations and error handling
|
|
100
107
|
*
|
|
@@ -107,7 +114,12 @@ export const AlephaReactRouter = $module({
|
|
|
107
114
|
services: [
|
|
108
115
|
ReactPageProvider,
|
|
109
116
|
ReactPageService,
|
|
110
|
-
ReactRouter,
|
|
117
|
+
ReactRouter,
|
|
118
|
+
ReactServerProvider,
|
|
119
|
+
ReactServerTemplateProvider,
|
|
120
|
+
SSRManifestProvider,
|
|
121
|
+
ReactPageServerService,
|
|
122
|
+
],
|
|
111
123
|
register: (alepha) =>
|
|
112
124
|
alepha
|
|
113
125
|
.with(AlephaReact)
|
|
@@ -119,6 +131,8 @@ export const AlephaReactRouter = $module({
|
|
|
119
131
|
provide: ReactPageService,
|
|
120
132
|
use: ReactPageServerService,
|
|
121
133
|
})
|
|
134
|
+
.with(SSRManifestProvider)
|
|
135
|
+
.with(ReactServerTemplateProvider)
|
|
122
136
|
.with(ReactServerProvider)
|
|
123
137
|
.with(ReactPageProvider)
|
|
124
138
|
.with(ReactRouter),
|