@alepha/react 0.13.1 → 0.13.2
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 +5 -5
- package/dist/auth/index.browser.js.map +1 -1
- package/dist/auth/index.d.ts +330 -330
- package/dist/auth/index.js +7 -7
- package/dist/auth/index.js.map +1 -1
- package/dist/core/index.browser.js +19 -18
- package/dist/core/index.browser.js.map +1 -1
- package/dist/core/index.d.ts +352 -344
- package/dist/core/index.js +25 -24
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.native.js +381 -0
- package/dist/core/index.native.js.map +1 -0
- package/dist/form/index.d.ts +2 -2
- package/dist/head/index.browser.js +7 -7
- package/dist/head/index.browser.js.map +1 -1
- package/dist/head/index.d.ts +265 -265
- package/dist/head/index.js +7 -7
- package/dist/head/index.js.map +1 -1
- package/dist/i18n/index.d.ts +20 -20
- package/dist/i18n/index.js +12 -12
- package/dist/i18n/index.js.map +1 -1
- package/dist/websocket/index.d.ts +7 -7
- package/dist/websocket/index.js.map +1 -1
- package/package.json +18 -9
- package/src/auth/index.ts +1 -1
- package/src/auth/providers/ReactAuthProvider.ts +1 -1
- package/src/auth/services/ReactAuth.ts +5 -5
- package/src/core/components/NestedView.tsx +1 -1
- package/src/core/hooks/useStore.ts +4 -4
- package/src/core/index.browser.ts +2 -2
- package/src/core/index.native.ts +1 -1
- package/src/core/index.shared-router.ts +1 -1
- package/src/core/index.ts +3 -3
- package/src/core/{descriptors → primitives}/$page.ts +20 -20
- package/src/core/providers/ReactBrowserProvider.ts +2 -2
- package/src/core/providers/ReactBrowserRouterProvider.ts +2 -2
- package/src/core/providers/ReactPageProvider.ts +25 -11
- package/src/core/providers/ReactServerProvider.ts +12 -12
- package/src/core/services/ReactPageServerService.ts +6 -6
- package/src/core/services/ReactPageService.ts +6 -6
- package/src/core/services/ReactRouter.ts +3 -3
- package/src/head/index.browser.ts +3 -3
- package/src/head/index.ts +4 -4
- package/src/head/{descriptors → primitives}/$head.ts +6 -6
- package/src/i18n/hooks/useI18n.ts +2 -2
- package/src/i18n/index.ts +3 -3
- package/src/i18n/{descriptors → primitives}/$dictionary.ts +8 -8
- package/src/i18n/providers/I18nProvider.ts +5 -5
- package/src/websocket/hooks/useRoom.tsx +3 -3
package/dist/core/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $atom, $env, $hook, $inject, $module, $use, Alepha, AlephaError, Atom,
|
|
1
|
+
import { $atom, $env, $hook, $inject, $module, $use, Alepha, AlephaError, Atom, KIND, Primitive, createPrimitive, t } from "alepha";
|
|
2
2
|
import { AlephaDateTime, DateTimeProvider } from "alepha/datetime";
|
|
3
3
|
import { AlephaServer, HttpClient, ServerProvider, ServerRouterProvider, ServerTimingProvider } from "alepha/server";
|
|
4
4
|
import { AlephaServerCache } from "alepha/server/cache";
|
|
@@ -23,11 +23,11 @@ var ReactPageService = class {
|
|
|
23
23
|
};
|
|
24
24
|
|
|
25
25
|
//#endregion
|
|
26
|
-
//#region src/core/
|
|
26
|
+
//#region src/core/primitives/$page.ts
|
|
27
27
|
/**
|
|
28
|
-
* Main
|
|
28
|
+
* Main primitive for defining a React route in the application.
|
|
29
29
|
*
|
|
30
|
-
* The $page
|
|
30
|
+
* The $page primitive is the core building block for creating type-safe, SSR-enabled React routes.
|
|
31
31
|
* It provides a declarative way to define pages with powerful features:
|
|
32
32
|
*
|
|
33
33
|
* **Routing & Navigation**
|
|
@@ -113,9 +113,9 @@ var ReactPageService = class {
|
|
|
113
113
|
* ```
|
|
114
114
|
*/
|
|
115
115
|
const $page = (options) => {
|
|
116
|
-
return
|
|
116
|
+
return createPrimitive(PagePrimitive, options);
|
|
117
117
|
};
|
|
118
|
-
var
|
|
118
|
+
var PagePrimitive = class extends Primitive {
|
|
119
119
|
reactPageService = $inject(ReactPageService);
|
|
120
120
|
onInit() {
|
|
121
121
|
if (this.options.static) this.options.cache ??= { store: {
|
|
@@ -145,7 +145,7 @@ var PageDescriptor = class extends Descriptor {
|
|
|
145
145
|
return this.options.path || "";
|
|
146
146
|
}
|
|
147
147
|
};
|
|
148
|
-
$page[KIND] =
|
|
148
|
+
$page[KIND] = PagePrimitive;
|
|
149
149
|
|
|
150
150
|
//#endregion
|
|
151
151
|
//#region src/core/components/ClientOnly.tsx
|
|
@@ -400,9 +400,9 @@ const useEvents = (opts, deps) => {
|
|
|
400
400
|
function useStore(target, defaultValue) {
|
|
401
401
|
const alepha = useAlepha();
|
|
402
402
|
useMemo(() => {
|
|
403
|
-
if (defaultValue != null && alepha.
|
|
403
|
+
if (defaultValue != null && alepha.store.get(target) == null) alepha.store.set(target, defaultValue);
|
|
404
404
|
}, [defaultValue]);
|
|
405
|
-
const [state, setState] = useState(alepha.
|
|
405
|
+
const [state, setState] = useState(alepha.store.get(target));
|
|
406
406
|
useEffect(() => {
|
|
407
407
|
if (!alepha.isBrowser()) return;
|
|
408
408
|
const key = target instanceof Atom ? target.key : target;
|
|
@@ -411,7 +411,7 @@ function useStore(target, defaultValue) {
|
|
|
411
411
|
});
|
|
412
412
|
}, []);
|
|
413
413
|
return [state, (value) => {
|
|
414
|
-
alepha.
|
|
414
|
+
alepha.store.set(target, value);
|
|
415
415
|
}];
|
|
416
416
|
}
|
|
417
417
|
|
|
@@ -626,6 +626,7 @@ var ReactPageProvider = class {
|
|
|
626
626
|
if (!path.includes(":") && !path.includes("*")) pages.push({
|
|
627
627
|
...page,
|
|
628
628
|
name: params[Object.keys(params)[0]],
|
|
629
|
+
staticName: page.name,
|
|
629
630
|
path,
|
|
630
631
|
...entry
|
|
631
632
|
});
|
|
@@ -856,7 +857,7 @@ var ReactPageProvider = class {
|
|
|
856
857
|
on: "configure",
|
|
857
858
|
handler: () => {
|
|
858
859
|
let hasNotFoundHandler = false;
|
|
859
|
-
const pages = this.alepha.
|
|
860
|
+
const pages = this.alepha.primitives($page);
|
|
860
861
|
const hasParent = (it) => {
|
|
861
862
|
if (it.options.parent) return true;
|
|
862
863
|
for (const page of pages) if ((page.options.children ? Array.isArray(page.options.children) ? page.options.children : page.options.children() : []).includes(it)) return true;
|
|
@@ -969,8 +970,8 @@ var ReactServerProvider = class {
|
|
|
969
970
|
onConfigure = $hook({
|
|
970
971
|
on: "configure",
|
|
971
972
|
handler: async () => {
|
|
972
|
-
const ssrEnabled = this.alepha.
|
|
973
|
-
this.alepha.
|
|
973
|
+
const ssrEnabled = this.alepha.primitives($page).length > 0 && this.env.REACT_SSR_ENABLED !== false;
|
|
974
|
+
this.alepha.store.set("alepha.react.server.ssr", ssrEnabled);
|
|
974
975
|
if (this.alepha.isViteDev()) {
|
|
975
976
|
await this.configureVite(ssrEnabled);
|
|
976
977
|
return;
|
|
@@ -1076,7 +1077,7 @@ var ReactServerProvider = class {
|
|
|
1076
1077
|
redirect
|
|
1077
1078
|
};
|
|
1078
1079
|
if (!options.html) {
|
|
1079
|
-
this.alepha.
|
|
1080
|
+
this.alepha.store.set("alepha.react.router.state", state);
|
|
1080
1081
|
return {
|
|
1081
1082
|
state,
|
|
1082
1083
|
html: renderToString(this.pageApi.root(state))
|
|
@@ -1109,7 +1110,7 @@ var ReactServerProvider = class {
|
|
|
1109
1110
|
onError: () => null,
|
|
1110
1111
|
layers: []
|
|
1111
1112
|
};
|
|
1112
|
-
if (this.alepha.has(ServerLinksProvider)) this.alepha.
|
|
1113
|
+
if (this.alepha.has(ServerLinksProvider)) this.alepha.store.set("alepha.server.request.apiLinks", await this.alepha.inject(ServerLinksProvider).getUserApiLinks({
|
|
1113
1114
|
user: serverRequest.user,
|
|
1114
1115
|
authorization: serverRequest.headers.authorization
|
|
1115
1116
|
}));
|
|
@@ -1152,7 +1153,7 @@ var ReactServerProvider = class {
|
|
|
1152
1153
|
}
|
|
1153
1154
|
renderToHtml(template, state, hydration = true) {
|
|
1154
1155
|
const element = this.pageApi.root(state);
|
|
1155
|
-
this.alepha.
|
|
1156
|
+
this.alepha.store.set("alepha.react.router.state", state);
|
|
1156
1157
|
this.serverTimingProvider.beginTiming("renderToString");
|
|
1157
1158
|
let app = "";
|
|
1158
1159
|
try {
|
|
@@ -1284,7 +1285,7 @@ var ReactBrowserRouterProvider = class extends RouterProvider {
|
|
|
1284
1285
|
};
|
|
1285
1286
|
await this.alepha.events.emit("react:action:begin", { type: "transition" });
|
|
1286
1287
|
await this.alepha.events.emit("react:transition:begin", {
|
|
1287
|
-
previous: this.alepha.
|
|
1288
|
+
previous: this.alepha.store.get("alepha.react.router.state"),
|
|
1288
1289
|
state
|
|
1289
1290
|
});
|
|
1290
1291
|
try {
|
|
@@ -1326,7 +1327,7 @@ var ReactBrowserRouterProvider = class extends RouterProvider {
|
|
|
1326
1327
|
const layer = previous[i];
|
|
1327
1328
|
if (state.layers[i]?.name !== layer.name) this.pageApi.page(layer.name)?.onLeave?.();
|
|
1328
1329
|
}
|
|
1329
|
-
this.alepha.
|
|
1330
|
+
this.alepha.store.set("alepha.react.router.state", state);
|
|
1330
1331
|
await this.alepha.events.emit("react:action:end", { type: "transition" });
|
|
1331
1332
|
await this.alepha.events.emit("react:transition:end", { state });
|
|
1332
1333
|
}
|
|
@@ -1364,7 +1365,7 @@ var ReactBrowserProvider = class {
|
|
|
1364
1365
|
}
|
|
1365
1366
|
transitioning;
|
|
1366
1367
|
get state() {
|
|
1367
|
-
return this.alepha.
|
|
1368
|
+
return this.alepha.store.get("alepha.react.router.state");
|
|
1368
1369
|
}
|
|
1369
1370
|
/**
|
|
1370
1371
|
* Accessor for Document DOM API.
|
|
@@ -1481,7 +1482,7 @@ var ReactBrowserProvider = class {
|
|
|
1481
1482
|
const hydration = this.getHydrationState();
|
|
1482
1483
|
const previous = hydration?.layers ?? [];
|
|
1483
1484
|
if (hydration) {
|
|
1484
|
-
for (const [key, value] of Object.entries(hydration)) if (key !== "layers") this.alepha.
|
|
1485
|
+
for (const [key, value] of Object.entries(hydration)) if (key !== "layers") this.alepha.store.set(key, value);
|
|
1485
1486
|
}
|
|
1486
1487
|
await this.render({ previous });
|
|
1487
1488
|
const element = this.router.root(this.state);
|
|
@@ -1506,7 +1507,7 @@ var ReactRouter = class {
|
|
|
1506
1507
|
alepha = $inject(Alepha);
|
|
1507
1508
|
pageApi = $inject(ReactPageProvider);
|
|
1508
1509
|
get state() {
|
|
1509
|
-
return this.alepha.
|
|
1510
|
+
return this.alepha.store.get("alepha.react.router.state");
|
|
1510
1511
|
}
|
|
1511
1512
|
get pages() {
|
|
1512
1513
|
return this.pageApi.getPages();
|
|
@@ -2001,7 +2002,7 @@ const decode = (alepha, schema, data) => {
|
|
|
2001
2002
|
/**
|
|
2002
2003
|
* Provides full-stack React development with declarative routing, server-side rendering, and client-side hydration.
|
|
2003
2004
|
*
|
|
2004
|
-
* The React module enables building modern React applications using the `$page`
|
|
2005
|
+
* The React module enables building modern React applications using the `$page` primitive on class properties.
|
|
2005
2006
|
* It delivers seamless server-side rendering, automatic code splitting, and client-side navigation with full
|
|
2006
2007
|
* type safety and schema validation for route parameters and data.
|
|
2007
2008
|
*
|
|
@@ -2010,7 +2011,7 @@ const decode = (alepha, schema, data) => {
|
|
|
2010
2011
|
*/
|
|
2011
2012
|
const AlephaReact = $module({
|
|
2012
2013
|
name: "alepha.react",
|
|
2013
|
-
|
|
2014
|
+
primitives: [$page],
|
|
2014
2015
|
services: [
|
|
2015
2016
|
ReactServerProvider,
|
|
2016
2017
|
ReactPageProvider,
|
|
@@ -2025,5 +2026,5 @@ const AlephaReact = $module({
|
|
|
2025
2026
|
});
|
|
2026
2027
|
|
|
2027
2028
|
//#endregion
|
|
2028
|
-
export { $page, AlephaContext, AlephaReact, ClientOnly_default as ClientOnly, ErrorBoundary_default as ErrorBoundary, ErrorViewer_default as ErrorViewer, Link_default as Link, NestedView_default as NestedView, NotFoundPage as NotFound,
|
|
2029
|
+
export { $page, AlephaContext, AlephaReact, ClientOnly_default as ClientOnly, ErrorBoundary_default as ErrorBoundary, ErrorViewer_default as ErrorViewer, Link_default as Link, NestedView_default as NestedView, NotFoundPage as NotFound, PagePrimitive, ReactBrowserProvider, ReactPageProvider, ReactRouter, ReactServerProvider, Redirection, RouterLayerContext, isPageRoute, reactBrowserOptions, reactServerOptions, ssrSchemaLoading, useAction, useActive, useAlepha, useClient, useEvents, useInject, useQueryParams, useRouter, useRouterState, useSchema, useStore };
|
|
2029
2030
|
//# sourceMappingURL=index.js.map
|