@websolutespa/bom-next 4.0.0-next.0 → 4.0.0-next.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/CHANGELOG.md +26 -0
- package/README.md +28 -0
- package/dist/client/client.d.ts +2 -2
- package/dist/client/extra.d.ts +3 -3
- package/dist/client/label.d.ts +3 -3
- package/dist/client/layout.d.ts +3 -3
- package/dist/client/layout.d.ts.map +1 -1
- package/dist/client/page.d.ts +3 -3
- package/dist/client/page.d.ts.map +1 -1
- package/dist/client/useApi.d.ts +7 -7
- package/dist/client/useCollectionApi.d.ts +6 -6
- package/dist/client/useCollectionApi.d.ts.map +1 -1
- package/dist/client/user.d.ts +3 -3
- package/dist/exports/server.d.ts +5 -4
- package/dist/exports/server.js +6 -5
- package/dist/index.d.ts +4 -4
- package/dist/index.js +3 -3
- package/dist/lib/const.d.ts +14 -2
- package/dist/lib/const.d.ts.map +1 -1
- package/dist/lib/const.js +23 -1
- package/dist/lib/const.js.map +1 -1
- package/dist/lib/http.d.ts +9 -0
- package/dist/lib/http.d.ts.map +1 -1
- package/dist/lib/http.js +21 -1
- package/dist/lib/http.js.map +1 -1
- package/dist/lib/meta-data.d.ts.map +1 -1
- package/dist/lib/route.d.ts +6 -1
- package/dist/lib/route.d.ts.map +1 -1
- package/dist/lib/route.js +16 -4
- package/dist/lib/route.js.map +1 -1
- package/dist/proxy/protected-route.d.ts.map +1 -1
- package/dist/proxy/protected-route.js +3 -0
- package/dist/proxy/protected-route.js.map +1 -1
- package/dist/proxy/proxy.d.ts +5 -4
- package/dist/proxy/proxy.d.ts.map +1 -1
- package/dist/proxy/proxy.js +9 -4
- package/dist/proxy/proxy.js.map +1 -1
- package/dist/proxy/route-proxy.d.ts.map +1 -1
- package/dist/proxy/route-proxy.js +3 -0
- package/dist/proxy/route-proxy.js.map +1 -1
- package/dist/server/context.d.ts +31 -15
- package/dist/server/context.d.ts.map +1 -1
- package/dist/server/context.js +151 -82
- package/dist/server/context.js.map +1 -1
- package/dist/server/handlers/static-params.handler.d.ts.map +1 -1
- package/dist/server/handlers/static-params.handler.js +3 -2
- package/dist/server/handlers/static-params.handler.js.map +1 -1
- package/dist/server/helpers.d.ts +50 -0
- package/dist/server/helpers.d.ts.map +1 -0
- package/dist/server/helpers.js +60 -0
- package/dist/server/helpers.js.map +1 -0
- package/dist/server/layout.js +44 -31
- package/dist/server/layout.js.map +1 -1
- package/dist/server/lazy.d.ts +1 -0
- package/dist/server/lazy.d.ts.map +1 -1
- package/dist/server/lazy.js +1 -3
- package/dist/server/lazy.js.map +1 -1
- package/dist/server/metadata.d.ts +8 -5
- package/dist/server/metadata.d.ts.map +1 -1
- package/dist/server/metadata.js +16 -6
- package/dist/server/metadata.js.map +1 -1
- package/dist/server/mixer.d.ts +48 -6
- package/dist/server/mixer.d.ts.map +1 -1
- package/dist/server/mixer.js +52 -11
- package/dist/server/mixer.js.map +1 -1
- package/dist/server/page.d.ts +21 -5
- package/dist/server/page.d.ts.map +1 -1
- package/dist/server/page.js +63 -15
- package/dist/server/page.js.map +1 -1
- package/dist/types.d.ts +79 -8
- package/dist/types.d.ts.map +1 -1
- package/package.json +6 -5
- package/src/exports/server.ts +1 -0
- package/src/lib/const.ts +15 -0
- package/src/lib/http.ts +15 -4
- package/src/lib/route.test.ts +53 -0
- package/src/lib/route.ts +15 -3
- package/src/proxy/protected-route.ts +5 -0
- package/src/proxy/proxy.ts +11 -4
- package/src/proxy/route-proxy.ts +5 -0
- package/src/server/context.test.ts +467 -0
- package/src/server/context.ts +237 -78
- package/src/server/context.type-test.ts +106 -0
- package/src/server/handlers/static-params.handler.ts +3 -5
- package/src/server/helpers.ts +58 -0
- package/src/server/layout.ts +45 -39
- package/src/server/lazy.ts +1 -1
- package/src/server/metadata.ts +15 -7
- package/src/server/mixer.ts +57 -9
- package/src/server/page.ts +62 -17
- package/src/types.ts +109 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# @websolutespa/bom-next
|
|
2
2
|
|
|
3
|
+
## 4.0.0-next.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- feat: add route template handling and tests for static parameters
|
|
8
|
+
|
|
9
|
+
## 4.0.0-next.1
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- Next: options signature for `createPageContext`, `createLayoutContext`, `createNotFoundContext` and `getMetadata`.
|
|
14
|
+
- New form: `createPageContext(market, locale, slug, id, { config, headers, depth, select, populate, joins, draft, layout })` and `createLayoutContext(market, locale, { config, headers, depth, draft })`. The positional `(config, headers)` form still works, logs a one-time deprecation warning in development.
|
|
15
|
+
- **Behaviour change:** pages are now read at `DEFAULT_PAGE_DEPTH` (2) and the layout at `DEFAULT_LAYOUT_DEPTH` (1), including through the legacy signature. Relationships and uploads (page media, media inside blocks, category, template, markets) are populated objects instead of ids; pass `depth: 0` to keep the previous shape.
|
|
16
|
+
- `select` narrows the page type; envelope fields (`id`, `slug`, `title`, `category`, `markets`, `meta`, `template`) are always read so `href`, alternates and breadcrumb keep working.
|
|
17
|
+
- Draft mode works: `draft: 'auto'` (default) reads Next `draftMode()`, draft reads use the draft mixer/route cache key and the authenticated user. `createNotFoundContext` always reads published content.
|
|
18
|
+
- Page and layout are loaded once per request (React `cache`, serialized key) and in parallel, so `getMetadata` and the page share the same reads. `getLayout` runs its reads in parallel.
|
|
19
|
+
- `getPage` returns `undefined` only for not found / not accessible documents and rethrows other errors.
|
|
20
|
+
- `buildBaseOptions` is deprecated in favour of `buildReadOptions({ user, locale, draft, depth, select, populate, joins })`.
|
|
21
|
+
- `context`, `page`, `layout` and `lazy` modules use `import 'server-only'` instead of `'use server'`, so their exports are no longer exposed as Server Actions. `server-only` is now a dependency; outside Next (scripts, Payload CLI, Vitest) `@websolutespa/bom-next/server` needs the `react-server` condition (`node --conditions=react-server`, Vitest `resolve.conditions`) or a `server-only` mock.
|
|
22
|
+
- `TypedPageContext.layout` follows the `layout` option: `undefined` with `layout: false`.
|
|
23
|
+
- New `createContextHelpers({ config, defaults })` factory and `Populated<T>` type helper.
|
|
24
|
+
|
|
25
|
+
### Patch Changes
|
|
26
|
+
|
|
27
|
+
- feat: enhance page context options and helpers
|
|
28
|
+
|
|
3
29
|
## 4.0.0-next.0
|
|
4
30
|
|
|
5
31
|
### Major Changes
|
package/README.md
CHANGED
|
@@ -9,3 +9,31 @@ Next module of the [BOM Repository](https://github.com/websolutespa/bom) by [web
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
##### *this library is for internal usage and not production ready*
|
|
12
|
+
|
|
13
|
+
## Page context
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
import { createPageContext, getMetadata } from '@websolutespa/bom-next/server';
|
|
17
|
+
|
|
18
|
+
export const generateMetadata = getMetadata('post_detail', config);
|
|
19
|
+
|
|
20
|
+
const { page, layout, label, link } = await createPageContext(market, locale, 'post_detail', id, {
|
|
21
|
+
config,
|
|
22
|
+
depth: 2, // default DEFAULT_PAGE_DEPTH
|
|
23
|
+
select: { title: true, abstract: true, media: true, components: true },
|
|
24
|
+
populate: { media: { url: true, alt: true, width: true, height: true, type: true } },
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
const { layout } = await createLayoutContext(market, locale, { config }); // depth: DEFAULT_LAYOUT_DEPTH (1)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
| option | default | |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| `depth` | `2` | `0` ids only, `1` direct relations/uploads (including those inside blocks), `2` relations of relations |
|
|
33
|
+
| `select` | – | Payload select; envelope fields (`id`, `slug`, `title`, `category`, `markets`, `meta`, `template`) are always read |
|
|
34
|
+
| `populate` | – | per-collection select for populated documents |
|
|
35
|
+
| `draft` | `'auto'` | `true` / `false`, or `'auto'` to read Next `draftMode()` |
|
|
36
|
+
| `layout` | `{ depth: 1 }` | layout options, or `false` to skip the layout |
|
|
37
|
+
|
|
38
|
+
Page and layout reads are memoized per request, so `getMetadata` and the page component share them when called with the same options.
|
|
39
|
+
To bind `config` once: `export const { createPageContext, createLayoutContext, getMetadata } = createContextHelpers({ config, defaults: { depth: 2 } });`
|
package/dist/client/client.d.ts
CHANGED
package/dist/client/extra.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react4 from "react";
|
|
2
2
|
|
|
3
3
|
//#region src/client/extra.d.ts
|
|
4
4
|
type IExtraContext = Record<string, any>;
|
|
5
|
-
declare const ExtraContext:
|
|
5
|
+
declare const ExtraContext: react4.Context<IExtraContext | undefined>;
|
|
6
6
|
declare function ExtraProvider({
|
|
7
7
|
extra,
|
|
8
8
|
children
|
|
9
9
|
}: {
|
|
10
10
|
extra?: Record<string, any>;
|
|
11
11
|
children?: React.ReactNode;
|
|
12
|
-
}):
|
|
12
|
+
}): react4.JSX.Element;
|
|
13
13
|
//# sourceMappingURL=extra.d.ts.map
|
|
14
14
|
|
|
15
15
|
//#endregion
|
package/dist/client/label.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react9 from "react";
|
|
2
2
|
|
|
3
3
|
//#region src/client/label.d.ts
|
|
4
4
|
type ILabelContext = (key: string, params?: Record<string, any>) => string;
|
|
5
|
-
declare const LabelContext:
|
|
5
|
+
declare const LabelContext: react9.Context<ILabelContext | undefined>;
|
|
6
6
|
declare function LabelProvider({
|
|
7
7
|
children
|
|
8
8
|
}: {
|
|
9
9
|
children?: React.ReactNode;
|
|
10
|
-
}):
|
|
10
|
+
}): react9.JSX.Element;
|
|
11
11
|
//# sourceMappingURL=label.d.ts.map
|
|
12
12
|
|
|
13
13
|
//#endregion
|
package/dist/client/layout.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { ILayout } from "@websolutespa/bom-core";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react13 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/client/layout.d.ts
|
|
5
5
|
type ILayoutContext = ILayout;
|
|
6
|
-
declare const LayoutContext:
|
|
6
|
+
declare const LayoutContext: react13.Context<ILayoutContext | undefined>;
|
|
7
7
|
declare function LayoutProvider({
|
|
8
8
|
layout,
|
|
9
9
|
children
|
|
10
10
|
}: {
|
|
11
11
|
layout: ILayout;
|
|
12
12
|
children?: React.ReactNode;
|
|
13
|
-
}):
|
|
13
|
+
}): react13.JSX.Element;
|
|
14
14
|
//# sourceMappingURL=layout.d.ts.map
|
|
15
15
|
|
|
16
16
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.d.ts","names":[],"sources":["../../src/client/layout.tsx"],"sourcesContent":[],"mappings":";;;;KAKY,cAAA,GAAiB;cAEhB,eAAa,
|
|
1
|
+
{"version":3,"file":"layout.d.ts","names":[],"sources":["../../src/client/layout.tsx"],"sourcesContent":[],"mappings":";;;;KAKY,cAAA,GAAiB;cAEhB,eAAa,OAAA,CAAA,QAAA;iBAEV,cAAA;;;;EAJJ,MAAA,EAQF,OARE;EAEC,QAAA,CAAA,EAOA,KAAA,CAAM,SAP8D;CAAA,CAAA,EAQhF,OAAA,CAAA,GAAA,CAAA,OARgF"}
|
package/dist/client/page.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as _websolutespa_bom_core0 from "@websolutespa/bom-core";
|
|
2
2
|
import { ILocalized, IPage } from "@websolutespa/bom-core";
|
|
3
|
-
import * as
|
|
3
|
+
import * as react11 from "react";
|
|
4
4
|
|
|
5
5
|
//#region src/client/page.d.ts
|
|
6
6
|
type IPageContext = ILocalized<IPage>;
|
|
7
|
-
declare const PageContext:
|
|
7
|
+
declare const PageContext: react11.Context<{
|
|
8
8
|
[x: string]: unknown;
|
|
9
9
|
id: _websolutespa_bom_core0.IEquatable;
|
|
10
10
|
schema: string;
|
|
@@ -397,7 +397,7 @@ declare function PageProvider({
|
|
|
397
397
|
}: {
|
|
398
398
|
page: ILocalized<IPage>;
|
|
399
399
|
children?: React.ReactNode;
|
|
400
|
-
}):
|
|
400
|
+
}): react11.JSX.Element;
|
|
401
401
|
//# sourceMappingURL=page.d.ts.map
|
|
402
402
|
//#endregion
|
|
403
403
|
export { IPageContext, PageContext, PageProvider };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.d.ts","names":[],"sources":["../../src/client/page.tsx"],"sourcesContent":[],"mappings":";;;;;KAKY,YAAA,GAAe,WAAW;cAEzB,
|
|
1
|
+
{"version":3,"file":"page.d.ts","names":[],"sources":["../../src/client/page.tsx"],"sourcesContent":[],"mappings":";;;;;KAKY,YAAA,GAAe,WAAW;cAEzB,qBAAW;;MAAqD,uBAAA,CAAA;EAFjE,MAAA,EAAA,MAAA;EAAY,QAAA,EAAA;IAAc,UAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA;IAAX,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,OAAA;IAAU,QAAA,EAAA,GAAA,GAAA,MAAA;IAExB,MAAA,EAAA,CAAA,GAAgE,EAAA,MAAA,EAAA,GAAA,MAAA;IAAA,UAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,GAAA,MAAA;IAAA,MAAA,EAAA,CAAA,GAAA,OAAA,EAAA,MAAA,EAAA,EAAA,GAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAArD,GAAA,MAAA;IAAA,GAAA,EAAA,GAAA,GAAA,MAAA;IAER,QAAA,EAAA,CAAY,SAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,MAAA,EAAA,GAAA,MAAA;IAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,MAAA,EAAA,GAAA,MAAA;IAC1B,OAAA,EAAA,GAAA,GAAA,MAAA;IACA,SAAA,EAAA,GAAA,GAAA,MAAA;IAEiB,QAAA,EAAA,GAAA,GAAA,MAAA;IAAX,SAAA,EAAA,GAAA,GAAA,MAAA;IACK,QAAM,EAAA,CAAA,MAAA,QAAA,EAAA,uBAAA,gBAAA,CAAA;IAClB,UAAA,EAAA;MAAA,CAAA,WAAA,EAAA,MAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBANe,YAAA;;;;QAIR,WAAW;aACN,KAAA,CAAM;IAClB,OAAA,CAAA,GAAA,CAAA"}
|
package/dist/client/useApi.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { ApiRequestOptions } from "../lib/http.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react17 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/client/useApi.d.ts
|
|
5
|
-
declare function useApiFetch<T = unknown>(pathname: string, options?: ApiRequestOptions): [T | undefined, boolean, any,
|
|
6
|
-
declare function useApiGet<T = unknown>(pathname: string, options?: ApiRequestOptions): [T | undefined, boolean, any,
|
|
7
|
-
declare function useApiPost<T = unknown>(pathname: string, payload: unknown, options?: ApiRequestOptions): [T | undefined, boolean, any,
|
|
8
|
-
declare function useApiPut<T = unknown>(pathname: string, payload: unknown, options?: ApiRequestOptions): [T | undefined, boolean, any,
|
|
9
|
-
declare function useApiPatch<T = unknown>(pathname: string, payload: unknown, options?: ApiRequestOptions): [T | undefined, boolean, any,
|
|
10
|
-
declare function useApiDelete<T = unknown>(pathname: string, options?: ApiRequestOptions): [T | undefined, boolean, any,
|
|
5
|
+
declare function useApiFetch<T = unknown>(pathname: string, options?: ApiRequestOptions): [T | undefined, boolean, any, react17.Dispatch<any>];
|
|
6
|
+
declare function useApiGet<T = unknown>(pathname: string, options?: ApiRequestOptions): [T | undefined, boolean, any, react17.Dispatch<any>];
|
|
7
|
+
declare function useApiPost<T = unknown>(pathname: string, payload: unknown, options?: ApiRequestOptions): [T | undefined, boolean, any, react17.Dispatch<any>];
|
|
8
|
+
declare function useApiPut<T = unknown>(pathname: string, payload: unknown, options?: ApiRequestOptions): [T | undefined, boolean, any, react17.Dispatch<any>];
|
|
9
|
+
declare function useApiPatch<T = unknown>(pathname: string, payload: unknown, options?: ApiRequestOptions): [T | undefined, boolean, any, react17.Dispatch<any>];
|
|
10
|
+
declare function useApiDelete<T = unknown>(pathname: string, options?: ApiRequestOptions): [T | undefined, boolean, any, react17.Dispatch<any>];
|
|
11
11
|
type Api = {
|
|
12
12
|
get: <T = unknown>(pathname: string, options?: ApiRequestOptions) => Promise<T>;
|
|
13
13
|
post: <T = unknown>(pathname: string, payload?: unknown, options?: ApiRequestOptions) => Promise<T>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ApiRequestOptions } from "../lib/http.js";
|
|
2
2
|
import { QueryParams } from "@websolutespa/bom-core";
|
|
3
|
-
import * as
|
|
3
|
+
import * as react0 from "react";
|
|
4
4
|
|
|
5
5
|
//#region src/client/useCollectionApi.d.ts
|
|
6
6
|
type CollectionApi = {
|
|
@@ -11,11 +11,11 @@ type CollectionApi = {
|
|
|
11
11
|
delete: <T = unknown>(pathname: string, options?: ApiRequestOptions) => Promise<T>;
|
|
12
12
|
};
|
|
13
13
|
declare function useCollectionApi(): CollectionApi;
|
|
14
|
-
declare function useCollectionApiGet<T = unknown>(pathname: string, params?: QueryParams, options?: ApiRequestOptions): [T | undefined, boolean, any,
|
|
15
|
-
declare function useCollectionApiPost<T = unknown>(pathname: string, payload: unknown, options?: ApiRequestOptions): [T | undefined, boolean, any,
|
|
16
|
-
declare function useCollectionApiPut<T = unknown>(pathname: string, payload: unknown, options?: ApiRequestOptions): [T | undefined, boolean, any,
|
|
17
|
-
declare function useCollectionApiPatch<T = unknown>(pathname: string, payload: unknown, options?: ApiRequestOptions): [T | undefined, boolean, any,
|
|
18
|
-
declare function useCollectionApiDelete<T = unknown>(pathname: string, options?: ApiRequestOptions): [T | undefined, boolean, any,
|
|
14
|
+
declare function useCollectionApiGet<T = unknown>(pathname: string, params?: QueryParams, options?: ApiRequestOptions): [T | undefined, boolean, any, react0.Dispatch<any>];
|
|
15
|
+
declare function useCollectionApiPost<T = unknown>(pathname: string, payload: unknown, options?: ApiRequestOptions): [T | undefined, boolean, any, react0.Dispatch<any>];
|
|
16
|
+
declare function useCollectionApiPut<T = unknown>(pathname: string, payload: unknown, options?: ApiRequestOptions): [T | undefined, boolean, any, react0.Dispatch<any>];
|
|
17
|
+
declare function useCollectionApiPatch<T = unknown>(pathname: string, payload: unknown, options?: ApiRequestOptions): [T | undefined, boolean, any, react0.Dispatch<any>];
|
|
18
|
+
declare function useCollectionApiDelete<T = unknown>(pathname: string, options?: ApiRequestOptions): [T | undefined, boolean, any, react0.Dispatch<any>];
|
|
19
19
|
//#endregion
|
|
20
20
|
export { useCollectionApi, useCollectionApiDelete, useCollectionApiGet, useCollectionApiPatch, useCollectionApiPost, useCollectionApiPut };
|
|
21
21
|
//# sourceMappingURL=useCollectionApi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCollectionApi.d.ts","names":[],"sources":["../../src/client/useCollectionApi.ts"],"sourcesContent":[],"mappings":";;;;;KAMK,aAAA;gDAC2C,uBAAuB,sBAAsB,QAAQ;qEAChC,sBAAsB,QAAQ;EAF9F,GAAA,EAAA,CAAA,IAAA,OAAa,CAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAGkD,iBAHlD,EAAA,GAGwE,OAHxE,CAGgF,CAHhF,CAAA;EAAA,KAAA,EAAA,CAAA,IAAA,OAAA,CAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAIoD,iBAJpD,EAAA,GAI0E,OAJ1E,CAIkF,CAJlF,CAAA;EAAA,MAC8B,EAAA,CAAA,IAAA,OAAA,CAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAII,iBAJJ,EAAA,GAI0B,OAJ1B,CAIkC,CAJlC,CAAA;CAAW;AAA0C,iBAOrF,gBAAA,CAAA,CAPqF,EAOjE,aAPiE;AAAR,iBAuC7E,mBAvC6E,CAAA,IAAA,OAAA,CAAA,CAAA,QAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAuCjB,WAvCiB,EAAA,OAAA,CAAA,EAuCK,iBAvCL,CAAA,EAAA,CAuC2B,CAvC3B,GAAA,SAAA,EAAA,OAAA,EAAA,GAAA,EAuC2B,
|
|
1
|
+
{"version":3,"file":"useCollectionApi.d.ts","names":[],"sources":["../../src/client/useCollectionApi.ts"],"sourcesContent":[],"mappings":";;;;;KAMK,aAAA;gDAC2C,uBAAuB,sBAAsB,QAAQ;qEAChC,sBAAsB,QAAQ;EAF9F,GAAA,EAAA,CAAA,IAAA,OAAa,CAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAGkD,iBAHlD,EAAA,GAGwE,OAHxE,CAGgF,CAHhF,CAAA;EAAA,KAAA,EAAA,CAAA,IAAA,OAAA,CAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAIoD,iBAJpD,EAAA,GAI0E,OAJ1E,CAIkF,CAJlF,CAAA;EAAA,MAC8B,EAAA,CAAA,IAAA,OAAA,CAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAII,iBAJJ,EAAA,GAI0B,OAJ1B,CAIkC,CAJlC,CAAA;CAAW;AAA0C,iBAOrF,gBAAA,CAAA,CAPqF,EAOjE,aAPiE;AAAR,iBAuC7E,mBAvC6E,CAAA,IAAA,OAAA,CAAA,CAAA,QAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAuCjB,WAvCiB,EAAA,OAAA,CAAA,EAuCK,iBAvCL,CAAA,EAAA,CAuC2B,CAvC3B,GAAA,SAAA,EAAA,OAAA,EAAA,GAAA,EAuC2B,MAAA,CAAA,QAvC3B,CAAA,GAAA,CAAA,CAAA;AACxB,iBA2CrD,oBA3CqD,CAAA,IAAA,OAAA,CAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EA2C0B,iBA3C1B,CAAA,EAAA,CA2CgD,CA3ChD,GAAA,SAAA,EAAA,OAAA,EAAA,GAAA,EA2CgD,MAAA,CAAA,QA3ChD,CAAA,GAAA,CAAA,CAAA;AAA8B,iBA+CnF,mBA/CmF,CAAA,IAAA,OAAA,CAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EA+CL,iBA/CK,CAAA,EAAA,CA+CiB,CA/CjB,GAAA,SAAA,EAAA,OAAA,EAAA,GAAA,EA+CiB,MAAA,CAAA,QA/CjB,CAAA,GAAA,CAAA,CAAA;AAAR,iBAmD3E,qBAnD2E,CAAA,IAAA,OAAA,CAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAmDK,iBAnDL,CAAA,EAAA,CAmD2B,CAnD3B,GAAA,SAAA,EAAA,OAAA,EAAA,GAAA,EAmD2B,MAAA,CAAA,QAnD3B,CAAA,GAAA,CAAA,CAAA;AACvB,iBAsDpD,sBAtDoD,CAAA,IAAA,OAAA,CAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAsDW,iBAtDX,CAAA,EAAA,CAsDiC,CAtDjC,GAAA,SAAA,EAAA,OAAA,EAAA,GAAA,EAsDiC,MAAA,CAAA,QAtDjC,CAAA,GAAA,CAAA,CAAA"}
|
package/dist/client/user.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IEndUser, IUser } from "../types.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react15 from "react";
|
|
3
3
|
import { ReactNode } from "react";
|
|
4
4
|
|
|
5
5
|
//#region src/client/user.d.ts
|
|
@@ -7,12 +7,12 @@ type UserContextType = {
|
|
|
7
7
|
user?: IEndUser | IUser | null;
|
|
8
8
|
setUser: (user?: IEndUser | IUser | null) => void;
|
|
9
9
|
};
|
|
10
|
-
declare const UserContext:
|
|
10
|
+
declare const UserContext: react15.Context<UserContextType>;
|
|
11
11
|
declare function UserProvider({
|
|
12
12
|
children
|
|
13
13
|
}: {
|
|
14
14
|
children: ReactNode;
|
|
15
|
-
}):
|
|
15
|
+
}): react15.JSX.Element;
|
|
16
16
|
//# sourceMappingURL=user.d.ts.map
|
|
17
17
|
|
|
18
18
|
//#endregion
|
package/dist/exports/server.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createLayoutContext, createNotFoundContext, createPageContext, getPageContext, setPageContext } from "../server/context.js";
|
|
1
|
+
import { createLayoutContext, createNotFoundContext, createPageContext, getPageContext, setPageContext, stableStringify } from "../server/context.js";
|
|
2
2
|
import { getAuthMeHandler } from "../server/handlers/auth.handler.js";
|
|
3
3
|
import { getCaptionsVTT } from "../server/handlers/captions.handler.js";
|
|
4
4
|
import { collectionDeleteHandler, collectionGetHandler, collectionPatchHandler, collectionPostHandler } from "../server/handlers/collection.handler.js";
|
|
@@ -9,11 +9,12 @@ import { getRouteHandler } from "../server/handlers/route.handler.js";
|
|
|
9
9
|
import { ISiteMap, getSiteMapIndex, getSiteMapXML, getSiteMapXSL } from "../server/handlers/sitemap.handler.js";
|
|
10
10
|
import { getStaticParams, getStaticParamsFromPayload, getStaticParams_ } from "../server/handlers/static-params.handler.js";
|
|
11
11
|
import { getVarsHandler } from "../server/handlers/vars.handler.js";
|
|
12
|
+
import { createContextHelpers } from "../server/helpers.js";
|
|
12
13
|
import { decorateLazyComponents, withLazyProps } from "../server/lazy.js";
|
|
13
14
|
import { getLocalApi } from "../server/local-api.js";
|
|
14
15
|
import { getMetadata } from "../server/metadata.js";
|
|
15
|
-
import { buildBaseOptions, filterRoutes, getAuthHeaders, getCacheKey, getContext, getMixerContext, getOptions, getPayload, getPayloadInstance, getRoutes, getSearchParams, setContext } from "../server/mixer.js";
|
|
16
|
-
import { getPage } from "../server/page.js";
|
|
16
|
+
import { buildBaseOptions, buildReadOptions, filterRoutes, getAuthHeaders, getCacheKey, getContext, getMixerContext, getOptions, getPayload, getPayloadInstance, getRoutes, getSearchParams, resolveDraft, setContext } from "../server/mixer.js";
|
|
17
|
+
import { PAGE_ENVELOPE_FIELDS, getPage, withEnvelopeSelect } from "../server/page.js";
|
|
17
18
|
import { getHrefBeforeRedirect, getNextUrl } from "../server/utils.js";
|
|
18
19
|
import { getUtmz } from "../server/utmz.js";
|
|
19
|
-
export { ISiteMap, buildBaseOptions, collectionDeleteHandler, collectionGetHandler, collectionPatchHandler, collectionPostHandler, createLayoutContext, createNotFoundContext, createPageContext, decorateLazyComponents, filterRoutes, getAuthHeaders, getAuthMeHandler, getCacheKey, getCaptionsVTT, getContext, getHrefBeforeRedirect, getLocalApi, getMetadata, getMixerContext, getNextUrl, getOptions, getPage, getPageContext, getPayload, getPayloadInstance, getRegistry, getRegistryItem, getRouteHandler, getRoutes, getSearchParams, getSiteMapIndex, getSiteMapXML, getSiteMapXSL, getStaticParams, getStaticParamsFromPayload, getStaticParams_, getUtmz, getVarsHandler, indexGetHandler, previewHandler, setContext, setPageContext, withLazyProps };
|
|
20
|
+
export { ISiteMap, PAGE_ENVELOPE_FIELDS, buildBaseOptions, buildReadOptions, collectionDeleteHandler, collectionGetHandler, collectionPatchHandler, collectionPostHandler, createContextHelpers, createLayoutContext, createNotFoundContext, createPageContext, decorateLazyComponents, filterRoutes, getAuthHeaders, getAuthMeHandler, getCacheKey, getCaptionsVTT, getContext, getHrefBeforeRedirect, getLocalApi, getMetadata, getMixerContext, getNextUrl, getOptions, getPage, getPageContext, getPayload, getPayloadInstance, getRegistry, getRegistryItem, getRouteHandler, getRoutes, getSearchParams, getSiteMapIndex, getSiteMapXML, getSiteMapXSL, getStaticParams, getStaticParamsFromPayload, getStaticParams_, getUtmz, getVarsHandler, indexGetHandler, previewHandler, resolveDraft, setContext, setPageContext, stableStringify, withEnvelopeSelect, withLazyProps };
|
package/dist/exports/server.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getHrefBeforeRedirect, getNextUrl } from "../server/utils.js";
|
|
2
|
-
import { buildBaseOptions, filterRoutes, getAuthHeaders, getCacheKey, getContext, getMixerContext, getOptions, getPayload, getPayloadInstance, getRoutes, getSearchParams, setContext } from "../server/mixer.js";
|
|
3
|
-
import { getPage } from "../server/page.js";
|
|
4
|
-
import { createLayoutContext, createNotFoundContext, createPageContext, getPageContext, setPageContext } from "../server/context.js";
|
|
2
|
+
import { buildBaseOptions, buildReadOptions, filterRoutes, getAuthHeaders, getCacheKey, getContext, getMixerContext, getOptions, getPayload, getPayloadInstance, getRoutes, getSearchParams, resolveDraft, setContext } from "../server/mixer.js";
|
|
3
|
+
import { PAGE_ENVELOPE_FIELDS, getPage, withEnvelopeSelect } from "../server/page.js";
|
|
4
|
+
import { createLayoutContext, createNotFoundContext, createPageContext, getPageContext, setPageContext, stableStringify } from "../server/context.js";
|
|
5
5
|
import { getAuthMeHandler } from "../server/handlers/auth.handler.js";
|
|
6
6
|
import { getCaptionsVTT } from "../server/handlers/captions.handler.js";
|
|
7
7
|
import { getLocalApi } from "../server/local-api.js";
|
|
@@ -13,8 +13,9 @@ import { getRouteHandler } from "../server/handlers/route.handler.js";
|
|
|
13
13
|
import { getSiteMapIndex, getSiteMapXML, getSiteMapXSL } from "../server/handlers/sitemap.handler.js";
|
|
14
14
|
import { getStaticParams, getStaticParamsFromPayload, getStaticParams_ } from "../server/handlers/static-params.handler.js";
|
|
15
15
|
import { getVarsHandler } from "../server/handlers/vars.handler.js";
|
|
16
|
-
import { decorateLazyComponents, withLazyProps } from "../server/lazy.js";
|
|
17
16
|
import { getMetadata } from "../server/metadata.js";
|
|
17
|
+
import { createContextHelpers } from "../server/helpers.js";
|
|
18
|
+
import { decorateLazyComponents, withLazyProps } from "../server/lazy.js";
|
|
18
19
|
import { getUtmz } from "../server/utmz.js";
|
|
19
20
|
|
|
20
|
-
export { buildBaseOptions, collectionDeleteHandler, collectionGetHandler, collectionPatchHandler, collectionPostHandler, createLayoutContext, createNotFoundContext, createPageContext, decorateLazyComponents, filterRoutes, getAuthHeaders, getAuthMeHandler, getCacheKey, getCaptionsVTT, getContext, getHrefBeforeRedirect, getLocalApi, getMetadata, getMixerContext, getNextUrl, getOptions, getPage, getPageContext, getPayload, getPayloadInstance, getRegistry, getRegistryItem, getRouteHandler, getRoutes, getSearchParams, getSiteMapIndex, getSiteMapXML, getSiteMapXSL, getStaticParams, getStaticParamsFromPayload, getStaticParams_, getUtmz, getVarsHandler, indexGetHandler, previewHandler, setContext, setPageContext, withLazyProps };
|
|
21
|
+
export { PAGE_ENVELOPE_FIELDS, buildBaseOptions, buildReadOptions, collectionDeleteHandler, collectionGetHandler, collectionPatchHandler, collectionPostHandler, createContextHelpers, createLayoutContext, createNotFoundContext, createPageContext, decorateLazyComponents, filterRoutes, getAuthHeaders, getAuthMeHandler, getCacheKey, getCaptionsVTT, getContext, getHrefBeforeRedirect, getLocalApi, getMetadata, getMixerContext, getNextUrl, getOptions, getPage, getPageContext, getPayload, getPayloadInstance, getRegistry, getRegistryItem, getRouteHandler, getRoutes, getSearchParams, getSiteMapIndex, getSiteMapXML, getSiteMapXSL, getStaticParams, getStaticParamsFromPayload, getStaticParams_, getUtmz, getVarsHandler, indexGetHandler, previewHandler, resolveDraft, setContext, setPageContext, stableStringify, withEnvelopeSelect, withLazyProps };
|
package/dist/index.d.ts
CHANGED
|
@@ -4,15 +4,15 @@ import { StructuredDataType } from "./lib/structured-data.js";
|
|
|
4
4
|
import { TwitterCardApp, TwitterCardBase, TwitterCardPlayer, TwitterCardSummary, TwitterCardSummaryLargeImage, TwitterCardType } from "./lib/twitter-card.js";
|
|
5
5
|
import { IAlternate, IBrand, IMeta, IMetaData } from "./lib/meta-data.js";
|
|
6
6
|
import { buildBreadcrumb } from "./lib/breadcrumb.js";
|
|
7
|
-
import { guest } from "./lib/const.js";
|
|
7
|
+
import { DEFAULT_LAYOUT_DEPTH, DEFAULT_PAGE_DEPTH, guest } from "./lib/const.js";
|
|
8
8
|
import { LabelService, getLabelFromLabels, interpolateText } from "./lib/label.js";
|
|
9
9
|
import { LayoutDefaults } from "./lib/layout.defaults.js";
|
|
10
10
|
import { getLink } from "./lib/link.js";
|
|
11
11
|
import { IPaginationInfo, IPaginationItem, IPaginationOptions, getMoreItems, getPagedItems, getPaginationInfo, isPaginationInfo } from "./lib/pagination.js";
|
|
12
|
-
import { getRouteLinkCategory, newRouteLink, resolveRoute, routeToLink, routeToRouteLink } from "./lib/route.js";
|
|
12
|
+
import { getRouteLinkCategory, getRouteTemplate, newRouteLink, resolveRoute, routeToLink, routeToRouteLink } from "./lib/route.js";
|
|
13
13
|
import { BuildStrategy, NextPhase, StoreStrategy, buildStrategy, nextPhase, storeCacheDuration, storeStrategy } from "./lib/store.js";
|
|
14
14
|
import { getPublicUrl, resolveHref, sanitizeHref, sanitizeRedirectFrom, sanitizeRedirectTo, sanitizeRedirectUrl, trimTerminalSlash } from "./lib/utils.js";
|
|
15
15
|
import { IMockCollection, IMockDocument, IMockGlobal, IMockLocale, IMockLocalized, IMockMedia, IMockMenu, IMockMenuItem, IMockPage, IMockStore } from "./mock.js";
|
|
16
16
|
import { ErrorContext, RequestInfo } from "./instrumentation/types.js";
|
|
17
|
-
import { BaseOptions, ComponentContext, ComponentProps, IContext, IEndUser, ILazyComponent, ILazyComponentFunc, ILazyComponentProps, ILazyFuncProps, ILazyModules, ILazyProps, ILazyStaticProps, ILazyStaticPropsFunc, ILazyableProps, ILazyedProps, INullableLazyableProps, IPageContext, IUser, LayoutContext, LocalProvider, MarketLocaleParams, MixerContext, NotFoundContext, NotFoundParams, PageContext, PageDocument, PageLayoutContext, PageParams, PartialPageProps, ReadonlyHeaders, SearchParams, TypedPage, TypedPageContext } from "./types.js";
|
|
18
|
-
export { ApiRequestOptions, BaseOptions, BuildStrategy, ComponentContext, ComponentProps, ErrorContext, IAlternate, IBrand, IContext, IEndUser, ILazyComponent, ILazyComponentFunc, ILazyComponentProps, ILazyFuncProps, ILazyModules, ILazyProps, ILazyStaticProps, ILazyStaticPropsFunc, ILazyableProps, ILazyedProps, IMeta, IMetaData, IMockCollection, IMockDocument, IMockGlobal, IMockLocale, IMockLocalized, IMockMedia, IMockMenu, IMockMenuItem, IMockPage, IMockStore, INullableLazyableProps, IPageContext, IPaginationInfo, IPaginationItem, IPaginationOptions, IUser, LabelService, LayoutContext, LayoutDefaults, LocalProvider, MarketLocaleParams, MixerContext, NextPhase, NotFoundContext, NotFoundParams, OpenGraphArticle, OpenGraphAudio, OpenGraphBase, OpenGraphBook, OpenGraphBusiness, OpenGraphImage, OpenGraphMusic, OpenGraphPlace, OpenGraphProduct, OpenGraphProductGroup, OpenGraphProfile, OpenGraphRestaurant, OpenGraphType, OpenGraphVideo, OpenGraphWebsite, PageContext, PageDocument, PageLayoutContext, PageParams, PartialPageProps, ReadonlyHeaders, RequestInfo, SearchParams, StoreStrategy, StructuredDataType, TwitterCardApp, TwitterCardBase, TwitterCardPlayer, TwitterCardSummary, TwitterCardSummaryLargeImage, TwitterCardType, TypedPage, TypedPageContext, buildBreadcrumb, buildStrategy, getLabelFromLabels, getLink, getLocalApiRequestOptions, getLocalApiUrl, getMoreItems, getPagedItems, getPaginationInfo, getPublicUrl, getRemoteApiRequestOptions, getRouteLinkCategory, guest, interpolateText, isPaginationInfo, localApiDelete, localApiFetch, localApiGet, localApiPatch, localApiPost, localApiPut, newRouteLink, nextPhase, resolveHref, resolveRoute, routeToLink, routeToRouteLink, sanitizeHref, sanitizeRedirectFrom, sanitizeRedirectTo, sanitizeRedirectUrl, storeCacheDuration, storeStrategy, trimTerminalSlash };
|
|
17
|
+
import { BaseOptions, ComponentContext, ComponentProps, DraftOption, IContext, IEndUser, ILazyComponent, ILazyComponentFunc, ILazyComponentProps, ILazyFuncProps, ILazyModules, ILazyProps, ILazyStaticProps, ILazyStaticPropsFunc, ILazyableProps, ILazyedProps, INullableLazyableProps, IPageContext, IUser, LayoutContext, LayoutContextOptions, LayoutFor, LayoutOption, LayoutOptions, LocalProvider, MarketLocaleParams, MixerContext, NotFoundContext, NotFoundParams, PageContext, PageContextOptions, PageDocument, PageEnvelope, PageEnvelopeField, PageLayoutContext, PageParams, PageSelect, PartialPageProps, Populated, ReadOptions, ReadonlyHeaders, SearchParams, TypedPage, TypedPageContext, WithEnvelopeSelect } from "./types.js";
|
|
18
|
+
export { ApiRequestOptions, BaseOptions, BuildStrategy, ComponentContext, ComponentProps, DEFAULT_LAYOUT_DEPTH, DEFAULT_PAGE_DEPTH, DraftOption, ErrorContext, IAlternate, IBrand, IContext, IEndUser, ILazyComponent, ILazyComponentFunc, ILazyComponentProps, ILazyFuncProps, ILazyModules, ILazyProps, ILazyStaticProps, ILazyStaticPropsFunc, ILazyableProps, ILazyedProps, IMeta, IMetaData, IMockCollection, IMockDocument, IMockGlobal, IMockLocale, IMockLocalized, IMockMedia, IMockMenu, IMockMenuItem, IMockPage, IMockStore, INullableLazyableProps, IPageContext, IPaginationInfo, IPaginationItem, IPaginationOptions, IUser, LabelService, LayoutContext, LayoutContextOptions, LayoutDefaults, LayoutFor, LayoutOption, LayoutOptions, LocalProvider, MarketLocaleParams, MixerContext, NextPhase, NotFoundContext, NotFoundParams, OpenGraphArticle, OpenGraphAudio, OpenGraphBase, OpenGraphBook, OpenGraphBusiness, OpenGraphImage, OpenGraphMusic, OpenGraphPlace, OpenGraphProduct, OpenGraphProductGroup, OpenGraphProfile, OpenGraphRestaurant, OpenGraphType, OpenGraphVideo, OpenGraphWebsite, PageContext, PageContextOptions, PageDocument, PageEnvelope, PageEnvelopeField, PageLayoutContext, PageParams, PageSelect, PartialPageProps, Populated, ReadOptions, ReadonlyHeaders, RequestInfo, SearchParams, StoreStrategy, StructuredDataType, TwitterCardApp, TwitterCardBase, TwitterCardPlayer, TwitterCardSummary, TwitterCardSummaryLargeImage, TwitterCardType, TypedPage, TypedPageContext, WithEnvelopeSelect, buildBreadcrumb, buildStrategy, getLabelFromLabels, getLink, getLocalApiRequestOptions, getLocalApiUrl, getMoreItems, getPagedItems, getPaginationInfo, getPublicUrl, getRemoteApiRequestOptions, getRouteLinkCategory, getRouteTemplate, guest, interpolateText, isPaginationInfo, localApiDelete, localApiFetch, localApiGet, localApiPatch, localApiPost, localApiPut, newRouteLink, nextPhase, resolveHref, resolveRoute, routeToLink, routeToRouteLink, sanitizeHref, sanitizeRedirectFrom, sanitizeRedirectTo, sanitizeRedirectUrl, storeCacheDuration, storeStrategy, trimTerminalSlash };
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { getRouteLinkCategory, newRouteLink, resolveRoute, routeToLink, routeToRouteLink } from "./lib/route.js";
|
|
1
|
+
import { getRouteLinkCategory, getRouteTemplate, newRouteLink, resolveRoute, routeToLink, routeToRouteLink } from "./lib/route.js";
|
|
2
2
|
import { buildBreadcrumb } from "./lib/breadcrumb.js";
|
|
3
|
-
import { guest } from "./lib/const.js";
|
|
3
|
+
import { DEFAULT_LAYOUT_DEPTH, DEFAULT_PAGE_DEPTH, guest } from "./lib/const.js";
|
|
4
4
|
import { getLocalApiRequestOptions, getLocalApiUrl, getRemoteApiRequestOptions, localApiDelete, localApiFetch, localApiGet, localApiPatch, localApiPost, localApiPut } from "./lib/http.js";
|
|
5
5
|
import { LabelService, getLabelFromLabels, interpolateText } from "./lib/label.js";
|
|
6
6
|
import { LayoutDefaults } from "./lib/layout.defaults.js";
|
|
@@ -9,4 +9,4 @@ import { getMoreItems, getPagedItems, getPaginationInfo, isPaginationInfo } from
|
|
|
9
9
|
import { BuildStrategy, NextPhase, StoreStrategy, buildStrategy, nextPhase, storeCacheDuration, storeStrategy } from "./lib/store.js";
|
|
10
10
|
import { getPublicUrl, resolveHref, sanitizeHref, sanitizeRedirectFrom, sanitizeRedirectTo, sanitizeRedirectUrl, trimTerminalSlash } from "./lib/utils.js";
|
|
11
11
|
|
|
12
|
-
export { BuildStrategy, LabelService, LayoutDefaults, NextPhase, StoreStrategy, buildBreadcrumb, buildStrategy, getLabelFromLabels, getLink, getLocalApiRequestOptions, getLocalApiUrl, getMoreItems, getPagedItems, getPaginationInfo, getPublicUrl, getRemoteApiRequestOptions, getRouteLinkCategory, guest, interpolateText, isPaginationInfo, localApiDelete, localApiFetch, localApiGet, localApiPatch, localApiPost, localApiPut, newRouteLink, nextPhase, resolveHref, resolveRoute, routeToLink, routeToRouteLink, sanitizeHref, sanitizeRedirectFrom, sanitizeRedirectTo, sanitizeRedirectUrl, storeCacheDuration, storeStrategy, trimTerminalSlash };
|
|
12
|
+
export { BuildStrategy, DEFAULT_LAYOUT_DEPTH, DEFAULT_PAGE_DEPTH, LabelService, LayoutDefaults, NextPhase, StoreStrategy, buildBreadcrumb, buildStrategy, getLabelFromLabels, getLink, getLocalApiRequestOptions, getLocalApiUrl, getMoreItems, getPagedItems, getPaginationInfo, getPublicUrl, getRemoteApiRequestOptions, getRouteLinkCategory, getRouteTemplate, guest, interpolateText, isPaginationInfo, localApiDelete, localApiFetch, localApiGet, localApiPatch, localApiPost, localApiPut, newRouteLink, nextPhase, resolveHref, resolveRoute, routeToLink, routeToRouteLink, sanitizeHref, sanitizeRedirectFrom, sanitizeRedirectTo, sanitizeRedirectUrl, storeCacheDuration, storeStrategy, trimTerminalSlash };
|
package/dist/lib/const.d.ts
CHANGED
|
@@ -2,8 +2,20 @@ import { Config, User } from "@websolutespa/payload-plugin-bowl";
|
|
|
2
2
|
|
|
3
3
|
//#region src/lib/const.d.ts
|
|
4
4
|
declare const guest: (User & Config["user"]);
|
|
5
|
+
/**
|
|
6
|
+
* Default population depth for page documents read by `createPageContext`.
|
|
7
|
+
*
|
|
8
|
+
* - `0`: relationships and uploads are returned as ids.
|
|
9
|
+
* - `1`: direct relationships and uploads are populated, including those inside blocks.
|
|
10
|
+
* - `2`: relationships of relationships are populated too (e.g. the cover of a related card).
|
|
11
|
+
*/
|
|
12
|
+
declare const DEFAULT_PAGE_DEPTH = 2;
|
|
13
|
+
/**
|
|
14
|
+
* Default population depth for the layout reads (app global, menus, labels, markets).
|
|
15
|
+
* `1` populates the app logo and menu media.
|
|
16
|
+
*/
|
|
17
|
+
declare const DEFAULT_LAYOUT_DEPTH = 1;
|
|
5
18
|
//# sourceMappingURL=const.d.ts.map
|
|
6
|
-
|
|
7
19
|
//#endregion
|
|
8
|
-
export { guest };
|
|
20
|
+
export { DEFAULT_LAYOUT_DEPTH, DEFAULT_PAGE_DEPTH, guest };
|
|
9
21
|
//# sourceMappingURL=const.d.ts.map
|
package/dist/lib/const.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.d.ts","names":[],"sources":["../../src/lib/const.ts"],"sourcesContent":[],"mappings":";;;cAEa,QAAsD,OAAO"}
|
|
1
|
+
{"version":3,"file":"const.d.ts","names":[],"sources":["../../src/lib/const.ts"],"sourcesContent":[],"mappings":";;;cAEa,QAAsD,OAAO;;AAA1E;;;;AAAgF;AAShF;AAMa,cANA,kBAAA,GAMoB,CAAA;;;;;cAApB,oBAAA"}
|
package/dist/lib/const.js
CHANGED
|
@@ -3,7 +3,29 @@ const guest = {
|
|
|
3
3
|
collection: "users",
|
|
4
4
|
roles: ["guest"]
|
|
5
5
|
};
|
|
6
|
+
/**
|
|
7
|
+
|
|
8
|
+
* Default population depth for page documents read by `createPageContext`.
|
|
9
|
+
|
|
10
|
+
*
|
|
11
|
+
|
|
12
|
+
* - `0`: relationships and uploads are returned as ids.
|
|
13
|
+
|
|
14
|
+
* - `1`: direct relationships and uploads are populated, including those inside blocks.
|
|
15
|
+
|
|
16
|
+
* - `2`: relationships of relationships are populated too (e.g. the cover of a related card).
|
|
17
|
+
|
|
18
|
+
*/
|
|
19
|
+
const DEFAULT_PAGE_DEPTH = 2;
|
|
20
|
+
/**
|
|
21
|
+
|
|
22
|
+
* Default population depth for the layout reads (app global, menus, labels, markets).
|
|
23
|
+
|
|
24
|
+
* `1` populates the app logo and menu media.
|
|
25
|
+
|
|
26
|
+
*/
|
|
27
|
+
const DEFAULT_LAYOUT_DEPTH = 1;
|
|
6
28
|
|
|
7
29
|
//#endregion
|
|
8
|
-
export { guest };
|
|
30
|
+
export { DEFAULT_LAYOUT_DEPTH, DEFAULT_PAGE_DEPTH, guest };
|
|
9
31
|
//# sourceMappingURL=const.js.map
|
package/dist/lib/const.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.js","names":[],"sources":["../../src/lib/const.ts"],"sourcesContent":["import type { Config, User } from '@websolutespa/payload-plugin-bowl';\r\n\r\nexport const guest = { collection: 'users', roles: ['guest'] } as (User & Config['user']);\r\n"],"mappings":";AAEA,MAAa,QAAQ;CAAE,YAAY;CAAS,OAAO,CAAC,OAAQ;AAAE"}
|
|
1
|
+
{"version":3,"file":"const.js","names":[],"sources":["../../src/lib/const.ts"],"sourcesContent":["import type { Config, User } from '@websolutespa/payload-plugin-bowl';\r\n\r\nexport const guest = { collection: 'users', roles: ['guest'] } as (User & Config['user']);\r\n\r\n/**\r\n * Default population depth for page documents read by `createPageContext`.\r\n *\r\n * - `0`: relationships and uploads are returned as ids.\r\n * - `1`: direct relationships and uploads are populated, including those inside blocks.\r\n * - `2`: relationships of relationships are populated too (e.g. the cover of a related card).\r\n */\r\nexport const DEFAULT_PAGE_DEPTH = 2;\r\n\r\n/**\r\n * Default population depth for the layout reads (app global, menus, labels, markets).\r\n * `1` populates the app logo and menu media.\r\n */\r\nexport const DEFAULT_LAYOUT_DEPTH = 1;\r\n"],"mappings":";AAEA,MAAa,QAAQ;CAAE,YAAY;CAAS,OAAO,CAAC,OAAQ;AAAE;;;;;;;;;;;;;;AAS9D,MAAa,qBAAqB;;;;;;;;AAMlC,MAAa,uBAAuB"}
|
package/dist/lib/http.d.ts
CHANGED
|
@@ -2,6 +2,15 @@ import { FetchRequestOptions } from "@websolutespa/bom-core";
|
|
|
2
2
|
|
|
3
3
|
//#region src/lib/http.d.ts
|
|
4
4
|
type ApiRequestOptions = FetchRequestOptions;
|
|
5
|
+
/**
|
|
6
|
+
* Default options for requests to this app's own API.
|
|
7
|
+
*
|
|
8
|
+
* Server-side calls (proxy, handlers) target the request's deployment URL,
|
|
9
|
+
* which Vercel Deployment Protection answers with 401. When "Protection Bypass
|
|
10
|
+
* for Automation" is enabled, Vercel exposes VERCEL_AUTOMATION_BYPASS_SECRET;
|
|
11
|
+
* sending it as `x-vercel-protection-bypass` lets these calls through. The
|
|
12
|
+
* secret is never sent from the browser.
|
|
13
|
+
*/
|
|
5
14
|
declare function getLocalApiRequestOptions(): ApiRequestOptions;
|
|
6
15
|
declare function getRemoteApiRequestOptions(token?: string): ApiRequestOptions;
|
|
7
16
|
declare function getLocalApiUrl(pathname: string, origin?: string): string;
|
package/dist/lib/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","names":[],"sources":["../../src/lib/http.ts"],"sourcesContent":[],"mappings":";;;KAKY,iBAAA,GAAoB;
|
|
1
|
+
{"version":3,"file":"http.d.ts","names":[],"sources":["../../src/lib/http.ts"],"sourcesContent":[],"mappings":";;;KAKY,iBAAA,GAAoB;;AAAhC;AAWA;AASA;AAqBA;AAMA;;;;AAA2K,iBApC3J,yBAAA,CAAA,CAoC2J,EApC9H,iBAoC8H;AAAO,iBA3BlK,0BAAA,CA2BkK,KAAA,CAAA,EAAA,MAAA,CAAA,EA3BtH,iBA2BsH;AAc5J,iBApBN,cAAA,CAoBiB,QAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA;AAAA,iBAdX,aAcW,CAAA,IAAA,OAAA,CAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAd2C,iBAc3C,EAAA,cAA4I,CAA5I,EAAA;EAAA,MAAoC,EAAA,MAAA;EAAsB,MAAiF,EAAA,MAAA;CAAC,EAAA,MAAT,CAAA,EAAA,MAAA,CAAA,EAdO,OAcP,CAde,CAcf,CAAA;AAAO,iBAArJ,WAAqJ,CAAA,IAAA,OAAA,CAAA,CAAA,GAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAtG,iBAAsG,EAAA,cAIzI,CAJyI,EAAA;EAIrJ,MAAA,EAAA,MAAA;EAAY,MAAA,EAAA,MAAA;CAAA,EAAA,MAAuD,CAAA,EAAA,MAAA,CAAA,EAJ2E,OAI3E,CAJmF,CAInF,CAAA;AAAsF,iBAAzJ,YAAyJ,CAAA,IAAA,OAAA,CAAA,CAAA,GAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAtF,iBAAsF,EAAA,cAI/K,CAJ+K,EAAA;EAAC,MAAT,EAAA,MAAA;EAAO,MAAA,EAAA,MAAA;AAI9K,CAAA,CAAA,EAJuK,OAIjJ,CAJyJ,CAIzJ,CAAA;AAAW,iBAAX,WAAW,CAAA,IAAA,OAAA,CAAA,CAAA,GAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAuD,iBAAvD,EAAA,cAA8I,CAA9I,EAAA;EAAA,MAAuD,EAAA,MAAA;EAAsB,MAAgE,EAAA,MAAA;CAAC,CAAA,EAAT,OAAA,CAAQ,CAAR,CAAA;AAAO,iBAIvJ,aAJuJ,CAAA,IAAA,OAAA,CAAA,CAAA,GAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAInF,iBAJmF,EAAA,cAI1I,CAJ0I,EAAA;EAIvJ,MAAA,EAAA,MAAA;EAAa,MAAA,EAAA,MAAA;CAAA,CAAA,EAAqI,OAA9E,CAAsF,CAAtF,CAAA;AAAsF,iBAI1J,cAJ0J,CAAA,IAAA,OAAA,CAAA,CAAA,GAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAIxG,iBAJwG,EAAA,cAIhL,CAJgL,EAAA;EAAC,MAAT,EAAA,MAAA;EAAO,MAAA,EAAA,MAAA;AAI/K,CAAA,CAAA,EAAsJ,OAAhI,CAAwI,CAAxI,CAAA"}
|
package/dist/lib/http.js
CHANGED
|
@@ -3,8 +3,28 @@ import { httpFetch, isBrowser, merge } from "@websolutespa/bom-core";
|
|
|
3
3
|
//#region src/lib/http.ts
|
|
4
4
|
const API_URL = process.env.NEXT_PUBLIC_URL || "http://localhost:3000";
|
|
5
5
|
const API_BASE = process.env.NEXT_PUBLIC_API || "/api";
|
|
6
|
+
/**
|
|
7
|
+
|
|
8
|
+
* Default options for requests to this app's own API.
|
|
9
|
+
|
|
10
|
+
*
|
|
11
|
+
|
|
12
|
+
* Server-side calls (proxy, handlers) target the request's deployment URL,
|
|
13
|
+
|
|
14
|
+
* which Vercel Deployment Protection answers with 401. When "Protection Bypass
|
|
15
|
+
|
|
16
|
+
* for Automation" is enabled, Vercel exposes VERCEL_AUTOMATION_BYPASS_SECRET;
|
|
17
|
+
|
|
18
|
+
* sending it as `x-vercel-protection-bypass` lets these calls through. The
|
|
19
|
+
|
|
20
|
+
* secret is never sent from the browser.
|
|
21
|
+
|
|
22
|
+
*/
|
|
6
23
|
function getLocalApiRequestOptions() {
|
|
7
|
-
|
|
24
|
+
const headers = {};
|
|
25
|
+
const bypassSecret = !isBrowser ? process.env.VERCEL_AUTOMATION_BYPASS_SECRET : void 0;
|
|
26
|
+
if (bypassSecret) headers["x-vercel-protection-bypass"] = bypassSecret;
|
|
27
|
+
return { headers };
|
|
8
28
|
}
|
|
9
29
|
function getRemoteApiRequestOptions(token) {
|
|
10
30
|
if (token) return { headers: { Authorization: `JWT ${token}` } };
|
package/dist/lib/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","names":["token?: string","pathname: string","origin?: string","options: ApiRequestOptions","serviceOptions?: { locale: string, market: string }","url: string","payload?: unknown"],"sources":["../../src/lib/http.ts"],"sourcesContent":["import { FetchRequestOptions, httpFetch, isBrowser, merge } from '@websolutespa/bom-core';\r\n\r\nconst API_URL = process.env.NEXT_PUBLIC_URL || 'http://localhost:3000';\r\nconst API_BASE = process.env.NEXT_PUBLIC_API || '/api';\r\n\r\nexport type ApiRequestOptions = FetchRequestOptions;\r\n\r\nexport function getLocalApiRequestOptions(): ApiRequestOptions {\r\n
|
|
1
|
+
{"version":3,"file":"http.js","names":["headers: Record<string, string>","token?: string","pathname: string","origin?: string","options: ApiRequestOptions","serviceOptions?: { locale: string, market: string }","url: string","payload?: unknown"],"sources":["../../src/lib/http.ts"],"sourcesContent":["import { FetchRequestOptions, httpFetch, isBrowser, merge } from '@websolutespa/bom-core';\r\n\r\nconst API_URL = process.env.NEXT_PUBLIC_URL || 'http://localhost:3000';\r\nconst API_BASE = process.env.NEXT_PUBLIC_API || '/api';\r\n\r\nexport type ApiRequestOptions = FetchRequestOptions;\r\n\r\n/**\r\n * Default options for requests to this app's own API.\r\n *\r\n * Server-side calls (proxy, handlers) target the request's deployment URL,\r\n * which Vercel Deployment Protection answers with 401. When \"Protection Bypass\r\n * for Automation\" is enabled, Vercel exposes VERCEL_AUTOMATION_BYPASS_SECRET;\r\n * sending it as `x-vercel-protection-bypass` lets these calls through. The\r\n * secret is never sent from the browser.\r\n */\r\nexport function getLocalApiRequestOptions(): ApiRequestOptions {\r\n const headers: Record<string, string> = {};\r\n const bypassSecret = !isBrowser ? process.env.VERCEL_AUTOMATION_BYPASS_SECRET : undefined;\r\n if (bypassSecret) {\r\n headers['x-vercel-protection-bypass'] = bypassSecret;\r\n }\r\n return { headers };\r\n}\r\n\r\nexport function getRemoteApiRequestOptions(token?: string): ApiRequestOptions {\r\n if (token) {\r\n // authenticated end user JWT token bearer (end_users)\r\n return {\r\n // mode: 'cors',\r\n headers: {\r\n Authorization: `JWT ${token}`,\r\n // Authorization: `Bearer ${token}`,\r\n },\r\n };\r\n } else {\r\n // guest user api key (users)\r\n return {\r\n // mode: 'cors',\r\n headers: {\r\n Authorization: `users API-Key ${process.env.STORE_API_KEY}`,\r\n },\r\n };\r\n }\r\n}\r\n\r\nexport function getLocalApiUrl(pathname: string, origin?: string): string {\r\n const url = `${isBrowser ? window.location.origin : (origin || API_URL)}${API_BASE}${pathname}`;\r\n // console.log('getLocalApiUrl', url);\r\n return url;\r\n}\r\n\r\nexport async function localApiFetch<T = unknown>(pathname: string, options: ApiRequestOptions = {}, serviceOptions?: { locale: string, market: string }, origin?: string): Promise<T> {\r\n // console.log('localApiFetch', pathname, options, serviceOptions);\r\n const url = new URL(getLocalApiUrl(pathname, origin));\r\n if (serviceOptions) {\r\n url.searchParams.append('locale', serviceOptions.locale);\r\n url.searchParams.append('market', serviceOptions.market);\r\n }\r\n const apiOptions = merge({ ...getLocalApiRequestOptions() }, options);\r\n console.log('📡 localApiFetch', apiOptions.method, url.href);\r\n const apiResponse = await httpFetch(url.href, apiOptions);\r\n // console.log('localApiFetch', pathname, apiResponse);\r\n return apiResponse;\r\n}\r\n\r\nexport async function localApiGet<T = unknown>(url: string, options: ApiRequestOptions = {}, serviceOptions?: { locale: string, market: string }, origin?: string): Promise<T> {\r\n return await localApiFetch<T>(url, { ...options, method: 'GET' }, serviceOptions, origin);\r\n}\r\n\r\nexport async function localApiPost<T = unknown>(url: string, payload?: unknown, options: ApiRequestOptions = {}, serviceOptions?: { locale: string, market: string }): Promise<T> {\r\n return await localApiFetch<T>(url, { ...options, method: 'POST', body: payload ? JSON.stringify(payload) : undefined }, serviceOptions);\r\n}\r\n\r\nexport async function localApiPut<T = unknown>(url: string, payload?: unknown, options: ApiRequestOptions = {}, serviceOptions?: { locale: string, market: string }): Promise<T> {\r\n return await localApiFetch<T>(url, { ...options, method: 'PUT', body: payload ? JSON.stringify(payload) : undefined }, serviceOptions);\r\n}\r\n\r\nexport async function localApiPatch<T = unknown>(url: string, payload?: unknown, options: ApiRequestOptions = {}, serviceOptions?: { locale: string, market: string }): Promise<T> {\r\n return await localApiFetch<T>(url, { ...options, method: 'PATCH', body: payload ? JSON.stringify(payload) : undefined }, serviceOptions);\r\n}\r\n\r\nexport async function localApiDelete<T = unknown>(url: string, options: ApiRequestOptions = {}, serviceOptions?: { locale: string, market: string }): Promise<T> {\r\n return await localApiFetch<T>(url, { ...options, method: 'DELETE' }, serviceOptions);\r\n}\r\n"],"mappings":";;;AAEA,MAAM,UAAU,QAAQ,IAAI,mBAAmB;AAC/C,MAAM,WAAW,QAAQ,IAAI,mBAAmB;;;;;;;;;;;;;;;;;;AAahD,SAAgB,4BAA+C;CAC7D,MAAMA,UAAkC,CAAE;CAC1C,MAAM,eAAe,CAAC,YAAY,QAAQ,IAAI,kCAAkC;AAChF,KAAI,cACF,QAAQ,gCAAgC;AAE1C,QAAO,EAAE,QAAS;AACnB;AAED,SAAgB,2BAA2BC,OAAmC;AAC5E,KAAI,MAEF,QAAO,EAEL,SAAS,EACP,eAAe,CAAC,IAAI,EAAE,OAAO,CAE9B,EACF;KAGD,QAAO,EAEL,SAAS,EACP,eAAe,CAAC,cAAc,EAAE,QAAQ,IAAI,eAAe,CAC5D,EACF;AAEJ;AAED,SAAgB,eAAeC,UAAkBC,QAAyB;CACxE,MAAM,MAAM,GAAG,YAAY,OAAO,SAAS,SAAU,UAAU,UAAW,WAAW,UAAU;AAE/F,QAAO;AACR;AAED,eAAsB,cAA2BD,UAAkBE,UAA6B,CAAE,GAAEC,gBAAqDF,QAA6B;CAEpL,MAAM,MAAM,IAAI,IAAI,eAAe,UAAU,OAAO;AACpD,KAAI,gBAAgB;EAClB,IAAI,aAAa,OAAO,UAAU,eAAe,OAAO;EACxD,IAAI,aAAa,OAAO,UAAU,eAAe,OAAO;CACzD;CACD,MAAM,aAAa,MAAM,EAAE,GAAG,2BAA2B,CAAE,GAAE,QAAQ;CACrE,QAAQ,IAAI,oBAAoB,WAAW,QAAQ,IAAI,KAAK;CAC5D,MAAM,cAAc,MAAM,UAAU,IAAI,MAAM,WAAW;AAEzD,QAAO;AACR;AAED,eAAsB,YAAyBG,KAAaF,UAA6B,CAAE,GAAEC,gBAAqDF,QAA6B;AAC7K,QAAO,MAAM,cAAiB,KAAK;EAAE,GAAG;EAAS,QAAQ;CAAO,GAAE,gBAAgB,OAAO;AAC1F;AAED,eAAsB,aAA0BG,KAAaC,SAAmBH,UAA6B,CAAE,GAAEC,gBAAiE;AAChL,QAAO,MAAM,cAAiB,KAAK;EAAE,GAAG;EAAS,QAAQ;EAAQ,MAAM,UAAU,KAAK,UAAU,QAAQ,GAAG;CAAW,GAAE,eAAe;AACxI;AAED,eAAsB,YAAyBC,KAAaC,SAAmBH,UAA6B,CAAE,GAAEC,gBAAiE;AAC/K,QAAO,MAAM,cAAiB,KAAK;EAAE,GAAG;EAAS,QAAQ;EAAO,MAAM,UAAU,KAAK,UAAU,QAAQ,GAAG;CAAW,GAAE,eAAe;AACvI;AAED,eAAsB,cAA2BC,KAAaC,SAAmBH,UAA6B,CAAE,GAAEC,gBAAiE;AACjL,QAAO,MAAM,cAAiB,KAAK;EAAE,GAAG;EAAS,QAAQ;EAAS,MAAM,UAAU,KAAK,UAAU,QAAQ,GAAG;CAAW,GAAE,eAAe;AACzI;AAED,eAAsB,eAA4BC,KAAaF,UAA6B,CAAE,GAAEC,gBAAiE;AAC/J,QAAO,MAAM,cAAiB,KAAK;EAAE,GAAG;EAAS,QAAQ;CAAU,GAAE,eAAe;AACrF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-data.d.ts","names":[],"sources":["../../src/lib/meta-data.ts"],"sourcesContent":[],"mappings":";;;;;;;KAMY,MAAA;;EAAA,YAAM,EAAA,
|
|
1
|
+
{"version":3,"file":"meta-data.d.ts","names":[],"sources":["../../src/lib/meta-data.ts"],"sourcesContent":[],"mappings":";;;;;;;KAMY,MAAA;;EAAA,YAAM,EAAA,MAAA;EAmBN,OAAA,EAAA,MAAU;EAMV,IAAA,EAAA,MAAK;EAAA,GAAA,EAAA,MAAA;EAAA,KAOH,CAAA,EAAA,MAAA;EAAU,SACX,CAAA,EAAA,MAAA;EAAU,OAAA,CAAA,EAAA,MAAA;EASX,IAAA,CAAA,EAAA,MAAS;EAAA,OAAA,CAAA,EAAA,MAAA;EAAA,YACX,CAAA,EAAA,MAAA;EAAO,WACE,CAAA,EAAA,MAAA;EAAK,WAAhB,CAAA,EAAA,MAAA;EAAU,MACT,CAAA,EA7BE,MA6BF,CAAA,MAAA,EAAA,MAAA,CAAA;CAAM;AAEP,KA5BI,UAAA,GA4BJ;EAAK,EAAA,EACA,MAAA;EAAa,IACV,EAAA,MAAA;EAAY,QACX,EAAA,MAAA;CAAa;AAEd,KA3BJ,KAAA,GA2BI;EAAe,KAAA,EAAA,MAAA;;;;;;cApBjB;aACD;;;;KASD,SAAA;UACF;QACF,WAAW;SACV;gBACO;QACR;aACK;gBACG;iBACC;kBACC;gBACF"}
|
package/dist/lib/route.d.ts
CHANGED
|
@@ -3,6 +3,11 @@ import { ICategory, IRoute, IRouteLink } from "@websolutespa/bom-core";
|
|
|
3
3
|
//#region src/lib/route.d.ts
|
|
4
4
|
declare function getRouteLinkCategory(locale: string, routes: IRoute[], categories: ICategory[], rootCategory: ICategory, category: ICategory): IRouteLink | IRouteLink[] | undefined;
|
|
5
5
|
declare function newRouteLink(category: ICategory, route: IRoute | undefined, locale: string): IRouteLink;
|
|
6
|
+
/**
|
|
7
|
+
* Returns the template id of a route, normalizing a string id or a populated `{ id }`.
|
|
8
|
+
* Returns `undefined` when empty or equal to the route schema.
|
|
9
|
+
*/
|
|
10
|
+
declare function getRouteTemplate(route: Pick<IRoute, 'schema' | 'template'>): string | undefined;
|
|
6
11
|
declare function resolveRoute(route: IRoute): string;
|
|
7
12
|
declare function routeToRouteLink(route: IRoute): IRouteLink;
|
|
8
13
|
/**
|
|
@@ -13,5 +18,5 @@ declare function routeToLink(route: IRoute, title?: string): IRouteLink;
|
|
|
13
18
|
//# sourceMappingURL=route.d.ts.map
|
|
14
19
|
|
|
15
20
|
//#endregion
|
|
16
|
-
export { getRouteLinkCategory, newRouteLink, resolveRoute, routeToLink, routeToRouteLink };
|
|
21
|
+
export { getRouteLinkCategory, getRouteTemplate, newRouteLink, resolveRoute, routeToLink, routeToRouteLink };
|
|
17
22
|
//# sourceMappingURL=route.d.ts.map
|
package/dist/lib/route.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.ts","names":[],"sources":["../../src/lib/route.ts"],"sourcesContent":[],"mappings":";;;iBAEgB,oBAAA,yBAEN,sBACI,2BACE,qBACJ,YACT,aAAa;iBA0BA,YAAA,WAAuB,kBAAkB,qCAAqC;
|
|
1
|
+
{"version":3,"file":"route.d.ts","names":[],"sources":["../../src/lib/route.ts"],"sourcesContent":[],"mappings":";;;iBAEgB,oBAAA,yBAEN,sBACI,2BACE,qBACJ,YACT,aAAa;iBA0BA,YAAA,WAAuB,kBAAkB,qCAAqC;AAhC9F;;;;AAIgB,iBAkDA,gBAAA,CAlDA,KAAA,EAkDwB,IAlDxB,CAkD6B,MAlD7B,EAAA,QAAA,GAAA,UAAA,CAAA,CAAA,EAAA,MAAA,GAAA,SAAA;AACJ,iBAyDI,YAAA,CAzDJ,KAAA,EAyDwB,MAzDxB,CAAA,EAAA,MAAA;AACT,iBA4Da,gBAAA,CA5Db,KAAA,EA4DqC,MA5DrC,CAAA,EA4D8C,UA5D9C;;AAAuB;AA0B1B;;AAAuC,iBAmDvB,WAAA,CAnDuB,KAAA,EAmDJ,MAnDI,EAAA,KAAA,CAAA,EAAA,MAAA,CAAA,EAmDqB,UAnDrB"}
|
package/dist/lib/route.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { asCategoryId, findRouteOfCategory, localize } from "@websolutespa/bom-core";
|
|
1
|
+
import { asCategoryId, asEquatableString, findRouteOfCategory, localize } from "@websolutespa/bom-core";
|
|
2
2
|
|
|
3
3
|
//#region src/lib/route.ts
|
|
4
4
|
function getRouteLinkCategory(locale, routes, categories, rootCategory, category) {
|
|
@@ -20,7 +20,7 @@ function newRouteLink(category, route, locale) {
|
|
|
20
20
|
const href = route && route.id ? route.id.toString() : "/";
|
|
21
21
|
const id = route?.page || category.id;
|
|
22
22
|
const media = category.media || route?.media;
|
|
23
|
-
const schema = route
|
|
23
|
+
const schema = route && getRouteTemplate(route) || route?.schema || category?.schema || "unknown";
|
|
24
24
|
const title = localize(category.title || route?.title || "untitled", locale);
|
|
25
25
|
const routeLink = {
|
|
26
26
|
category: category.id,
|
|
@@ -33,8 +33,20 @@ function newRouteLink(category, route, locale) {
|
|
|
33
33
|
};
|
|
34
34
|
return routeLink;
|
|
35
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
|
|
38
|
+
* Returns the template id of a route, normalizing a string id or a populated `{ id }`.
|
|
39
|
+
|
|
40
|
+
* Returns `undefined` when empty or equal to the route schema.
|
|
41
|
+
|
|
42
|
+
*/
|
|
43
|
+
function getRouteTemplate(route) {
|
|
44
|
+
const id = route.template ? asEquatableString(route.template) : void 0;
|
|
45
|
+
if (!id) return void 0;
|
|
46
|
+
return id === route.schema ? void 0 : id;
|
|
47
|
+
}
|
|
36
48
|
function resolveRoute(route) {
|
|
37
|
-
return `/${route.market}/${route.locale}/${route.schema}/${route.page}`;
|
|
49
|
+
return `/${route.market}/${route.locale}/${getRouteTemplate(route) ?? route.schema}/${route.page}`;
|
|
38
50
|
}
|
|
39
51
|
function routeToRouteLink(route) {
|
|
40
52
|
const routeLink = {
|
|
@@ -67,5 +79,5 @@ function routeToLink(route, title) {
|
|
|
67
79
|
}
|
|
68
80
|
|
|
69
81
|
//#endregion
|
|
70
|
-
export { getRouteLinkCategory, newRouteLink, resolveRoute, routeToLink, routeToRouteLink };
|
|
82
|
+
export { getRouteLinkCategory, getRouteTemplate, newRouteLink, resolveRoute, routeToLink, routeToRouteLink };
|
|
71
83
|
//# sourceMappingURL=route.js.map
|