@websolutespa/bom-next 3.0.2 → 4.0.0-next.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.
- package/CHANGELOG.md +17 -7
- package/dist/_virtual/{_rolldown/runtime.js → rolldown_runtime.js} +7 -4
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +17 -6
- package/dist/client/client.js.map +1 -1
- package/dist/client/extra.d.ts +3 -3
- package/dist/client/extra.d.ts.map +1 -1
- package/dist/client/extra.js +10 -5
- package/dist/client/extra.js.map +1 -1
- package/dist/client/label.d.ts.map +1 -1
- package/dist/client/label.js +10 -5
- package/dist/client/label.js.map +1 -1
- package/dist/client/layout.d.ts +3 -3
- package/dist/client/layout.d.ts.map +1 -1
- package/dist/client/layout.js +10 -5
- package/dist/client/layout.js.map +1 -1
- package/dist/client/local.collection.d.ts.map +1 -1
- package/dist/client/local.collection.js +4 -2
- package/dist/client/local.collection.js.map +1 -1
- package/dist/client/metadata.d.ts +3 -3
- package/dist/client/metadata.d.ts.map +1 -1
- package/dist/client/metadata.js +48 -40
- package/dist/client/metadata.js.map +1 -1
- package/dist/client/page.d.ts +3 -3
- package/dist/client/page.d.ts.map +1 -1
- package/dist/client/page.js +10 -5
- package/dist/client/page.js.map +1 -1
- package/dist/client/useApi.d.ts +7 -7
- package/dist/client/useApi.d.ts.map +1 -1
- package/dist/client/useApi.js +2 -1
- package/dist/client/useApi.js.map +1 -1
- package/dist/client/useCollectionApi.d.ts +6 -6
- package/dist/client/useCollectionApi.d.ts.map +1 -1
- package/dist/client/useCollectionApi.js +4 -2
- package/dist/client/useCollectionApi.js.map +1 -1
- package/dist/client/useExtra.d.ts.map +1 -1
- package/dist/client/useExtra.js +5 -2
- package/dist/client/useExtra.js.map +1 -1
- package/dist/client/useHttp.d.ts.map +1 -1
- package/dist/client/useHttp.js +9 -6
- package/dist/client/useHttp.js.map +1 -1
- package/dist/client/useLabel.d.ts.map +1 -1
- package/dist/client/useLabel.js +5 -2
- package/dist/client/useLabel.js.map +1 -1
- package/dist/client/useLayout.d.ts.map +1 -1
- package/dist/client/useLayout.js +5 -2
- package/dist/client/useLayout.js.map +1 -1
- package/dist/client/useLink.d.ts.map +1 -1
- package/dist/client/useLink.js +7 -3
- package/dist/client/useLink.js.map +1 -1
- package/dist/client/useMetaData.d.ts.map +1 -1
- package/dist/client/useMetaData.js +5 -2
- package/dist/client/useMetaData.js.map +1 -1
- package/dist/client/usePage.d.ts.map +1 -1
- package/dist/client/usePage.js +5 -2
- package/dist/client/usePage.js.map +1 -1
- package/dist/client/useUser.d.ts.map +1 -1
- package/dist/client/useUser.js +5 -2
- package/dist/client/useUser.js.map +1 -1
- package/dist/client/user.d.ts.map +1 -1
- package/dist/client/user.js +17 -11
- package/dist/client/user.js.map +1 -1
- package/dist/exports/client.js +2 -1
- package/dist/exports/instrumentation.js +2 -1
- package/dist/exports/proxy.js +2 -1
- package/dist/exports/server.js +2 -1
- package/dist/index.js +2 -1
- package/dist/instrumentation/client.d.ts.map +1 -1
- package/dist/instrumentation/client.js +2 -1
- package/dist/instrumentation/client.js.map +1 -1
- package/dist/instrumentation/sentry/capture.requestError.js +4 -1
- package/dist/instrumentation/sentry/capture.requestError.js.map +1 -1
- package/dist/instrumentation/sentry/capture.routerTransitionStart.js +2 -1
- package/dist/instrumentation/sentry/capture.routerTransitionStart.js.map +1 -1
- package/dist/instrumentation/sentry/config.client.js +10 -2
- package/dist/instrumentation/sentry/config.client.js.map +1 -0
- package/dist/instrumentation/sentry/config.edge.js +10 -2
- package/dist/instrumentation/sentry/config.edge.js.map +1 -0
- package/dist/instrumentation/sentry/config.server.js +10 -2
- package/dist/instrumentation/sentry/config.server.js.map +1 -0
- package/dist/instrumentation/server.d.ts.map +1 -1
- package/dist/instrumentation/server.js +8 -5
- package/dist/instrumentation/server.js.map +1 -1
- package/dist/instrumentation/types.d.ts.map +1 -1
- package/dist/lib/breadcrumb.d.ts.map +1 -1
- package/dist/lib/breadcrumb.js +6 -1
- package/dist/lib/breadcrumb.js.map +1 -1
- package/dist/lib/const.d.ts.map +1 -1
- package/dist/lib/const.js +1 -1
- package/dist/lib/const.js.map +1 -1
- package/dist/lib/http.d.ts.map +1 -1
- package/dist/lib/http.js +6 -3
- package/dist/lib/http.js.map +1 -1
- package/dist/lib/label.d.ts.map +1 -1
- package/dist/lib/label.js +4 -3
- package/dist/lib/label.js.map +1 -1
- package/dist/lib/layout.defaults.d.ts.map +1 -1
- package/dist/lib/layout.defaults.js +1 -1
- package/dist/lib/layout.defaults.js.map +1 -1
- package/dist/lib/link.d.ts.map +1 -1
- package/dist/lib/link.js +2 -1
- package/dist/lib/link.js.map +1 -1
- package/dist/lib/meta-data.d.ts.map +1 -1
- package/dist/lib/open-graph.d.ts.map +1 -1
- package/dist/lib/pagination.d.ts.map +1 -1
- package/dist/lib/pagination.js +4 -2
- package/dist/lib/pagination.js.map +1 -1
- package/dist/lib/route.d.ts.map +1 -1
- package/dist/lib/route.js +9 -3
- package/dist/lib/route.js.map +1 -1
- package/dist/lib/store.d.ts.map +1 -1
- package/dist/lib/store.js +31 -31
- package/dist/lib/store.js.map +1 -1
- package/dist/lib/structured-data.d.ts.map +1 -1
- package/dist/lib/twitter-card.d.ts.map +1 -1
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +3 -2
- package/dist/lib/utils.js.map +1 -1
- package/dist/mock.d.ts.map +1 -1
- package/dist/node_modules/@selderee/plugin-htmlparser2/lib/hp2-builder.js +3 -2
- package/dist/node_modules/@selderee/plugin-htmlparser2/lib/hp2-builder.js.map +1 -1
- package/dist/node_modules/deepmerge/dist/cjs.js +17 -9
- package/dist/node_modules/deepmerge/dist/cjs.js.map +1 -1
- package/dist/node_modules/dom-serializer/lib/esm/foreignNames.js +2 -2
- package/dist/node_modules/dom-serializer/lib/esm/foreignNames.js.map +1 -1
- package/dist/node_modules/dom-serializer/lib/esm/index.js +10 -15
- package/dist/node_modules/dom-serializer/lib/esm/index.js.map +1 -1
- package/dist/node_modules/domelementtype/lib/esm/index.js +12 -12
- package/dist/node_modules/domelementtype/lib/esm/index.js.map +1 -1
- package/dist/node_modules/domhandler/lib/esm/index.js +4 -3
- package/dist/node_modules/domhandler/lib/esm/index.js.map +1 -1
- package/dist/node_modules/domhandler/lib/esm/node.js +8 -7
- package/dist/node_modules/domhandler/lib/esm/node.js.map +1 -1
- package/dist/node_modules/entities/lib/esm/decode.js +33 -32
- package/dist/node_modules/entities/lib/esm/decode.js.map +1 -1
- package/dist/node_modules/entities/lib/esm/decode_codepoint.js +5 -5
- package/dist/node_modules/entities/lib/esm/decode_codepoint.js.map +1 -1
- package/dist/node_modules/entities/lib/esm/escape.js +14 -6
- package/dist/node_modules/entities/lib/esm/escape.js.map +1 -1
- package/dist/node_modules/entities/lib/esm/generated/decode-data-html.js +2 -2
- package/dist/node_modules/entities/lib/esm/generated/decode-data-html.js.map +1 -1
- package/dist/node_modules/entities/lib/esm/generated/decode-data-xml.js +2 -2
- package/dist/node_modules/entities/lib/esm/generated/decode-data-xml.js.map +1 -1
- package/dist/node_modules/html-to-text/lib/html-to-text.js +45 -33
- package/dist/node_modules/html-to-text/lib/html-to-text.js.map +1 -1
- package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/Parser.js +25 -25
- package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/Parser.js.map +1 -1
- package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/Tokenizer.js +76 -73
- package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/Tokenizer.js.map +1 -1
- package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/index.js +4 -3
- package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/index.js.map +1 -1
- package/dist/node_modules/leac/lib/leac.js +72 -72
- package/dist/node_modules/leac/lib/leac.js.map +1 -1
- package/dist/node_modules/parseley/lib/parseley.js +37 -33
- package/dist/node_modules/parseley/lib/parseley.js.map +1 -1
- package/dist/node_modules/peberminta/lib/core.js +4 -4
- package/dist/node_modules/peberminta/lib/core.js.map +1 -1
- package/dist/node_modules/selderee/lib/selderee.js +16 -10
- package/dist/node_modules/selderee/lib/selderee.js.map +1 -1
- package/dist/proxy/protected-route.d.ts.map +1 -1
- package/dist/proxy/protected-route.js +11 -6
- package/dist/proxy/protected-route.js.map +1 -1
- package/dist/proxy/proxy.d.ts.map +1 -1
- package/dist/proxy/proxy.js +17 -2
- package/dist/proxy/proxy.js.map +1 -1
- package/dist/proxy/route-auto-detection.d.ts.map +1 -1
- package/dist/proxy/route-auto-detection.js +26 -14
- package/dist/proxy/route-auto-detection.js.map +1 -1
- package/dist/proxy/route-proxy.d.ts.map +1 -1
- package/dist/proxy/route-proxy.js +22 -5
- package/dist/proxy/route-proxy.js.map +1 -1
- package/dist/server/context.d.ts.map +1 -1
- package/dist/server/context.js +20 -2
- package/dist/server/context.js.map +1 -1
- package/dist/server/handlers/auth.handler.d.ts.map +1 -1
- package/dist/server/handlers/auth.handler.js +4 -2
- package/dist/server/handlers/auth.handler.js.map +1 -1
- package/dist/server/handlers/captions.handler.d.ts.map +1 -1
- package/dist/server/handlers/captions.handler.js +4 -2
- package/dist/server/handlers/captions.handler.js.map +1 -1
- package/dist/server/handlers/collection.handler.d.ts.map +1 -1
- package/dist/server/handlers/collection.handler.js +2 -1
- package/dist/server/handlers/collection.handler.js.map +1 -1
- package/dist/server/handlers/error-response.js +6 -2
- package/dist/server/handlers/error-response.js.map +1 -1
- package/dist/server/handlers/index.handler.d.ts.map +1 -1
- package/dist/server/handlers/index.handler.js +2 -1
- package/dist/server/handlers/index.handler.js.map +1 -1
- package/dist/server/handlers/preview.handler.d.ts.map +1 -1
- package/dist/server/handlers/preview.handler.js +6 -3
- package/dist/server/handlers/preview.handler.js.map +1 -1
- package/dist/server/handlers/registry.handler.d.ts.map +1 -1
- package/dist/server/handlers/registry.handler.js +14 -9
- package/dist/server/handlers/registry.handler.js.map +1 -1
- package/dist/server/handlers/route.handler.d.ts.map +1 -1
- package/dist/server/handlers/route.handler.js +12 -3
- package/dist/server/handlers/route.handler.js.map +1 -1
- package/dist/server/handlers/sitemap.handler.d.ts.map +1 -1
- package/dist/server/handlers/sitemap.handler.js +12 -9
- package/dist/server/handlers/sitemap.handler.js.map +1 -1
- package/dist/server/handlers/static-params.handler.d.ts.map +1 -1
- package/dist/server/handlers/static-params.handler.js +13 -8
- package/dist/server/handlers/static-params.handler.js.map +1 -1
- package/dist/server/handlers/vars.handler.d.ts.map +1 -1
- package/dist/server/handlers/vars.handler.js +5 -4
- package/dist/server/handlers/vars.handler.js.map +1 -1
- package/dist/server/layout.js +34 -12
- package/dist/server/layout.js.map +1 -1
- package/dist/server/lazy.d.ts.map +1 -1
- package/dist/server/lazy.js +5 -2
- package/dist/server/lazy.js.map +1 -1
- package/dist/server/local-api.d.ts.map +1 -1
- package/dist/server/local-api.js +12 -6
- package/dist/server/local-api.js.map +1 -1
- package/dist/server/metadata.d.ts.map +1 -1
- package/dist/server/metadata.js +5 -1
- package/dist/server/metadata.js.map +1 -1
- package/dist/server/mixer-payload.d.ts +1 -1
- package/dist/server/mixer-payload.d.ts.map +1 -1
- package/dist/server/mixer.d.ts.map +1 -1
- package/dist/server/mixer.js +183 -57
- package/dist/server/mixer.js.map +1 -1
- package/dist/server/page.d.ts.map +1 -1
- package/dist/server/page.js +15 -4
- package/dist/server/page.js.map +1 -1
- package/dist/server/utils.d.ts.map +1 -1
- package/dist/server/utils.js +4 -2
- package/dist/server/utils.js.map +1 -1
- package/dist/server/utmz.d.ts.map +1 -1
- package/dist/server/utmz.js +1 -1
- package/dist/server/utmz.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +11 -11
package/dist/server/layout.js
CHANGED
|
@@ -1,23 +1,41 @@
|
|
|
1
|
-
|
|
1
|
+
'use server';
|
|
2
|
+
|
|
3
|
+
|
|
2
4
|
import { getRouteLinkCategory } from "../lib/route.js";
|
|
3
5
|
import { buildBaseOptions } from "./mixer.js";
|
|
4
6
|
import { getRootCategory } from "@websolutespa/bom-core";
|
|
7
|
+
|
|
5
8
|
//#region src/server/layout.ts
|
|
6
9
|
/**
|
|
10
|
+
|
|
7
11
|
* Builds the full ILayout object using Payload local API calls.
|
|
12
|
+
|
|
8
13
|
*
|
|
14
|
+
|
|
9
15
|
* All payload.find / payload.findGlobal calls pass `context: mixerContext` so
|
|
16
|
+
|
|
10
17
|
* payload-plugin-bowl can enrich results (hrefs, richText serialisation, etc.).
|
|
18
|
+
|
|
11
19
|
*
|
|
20
|
+
|
|
12
21
|
* Collection and global slugs use the payload-plugin-bowl defaults:
|
|
22
|
+
|
|
13
23
|
* market → 'market' (collection)
|
|
24
|
+
|
|
14
25
|
* locale → 'locale' (global)
|
|
26
|
+
|
|
15
27
|
* label → 'label' (collection)
|
|
28
|
+
|
|
16
29
|
* app → 'app' (global) ← defined in payload-plugin-bowl
|
|
30
|
+
|
|
17
31
|
* menu → 'menu' (collection)
|
|
32
|
+
|
|
18
33
|
*
|
|
34
|
+
|
|
19
35
|
* The route link tree is built from mixerContext.currentRoutes + mixerContext.categories
|
|
36
|
+
|
|
20
37
|
* using getRouteLinkCategory (pure fn, no store calls) from bom-mixer-models/server.
|
|
38
|
+
|
|
21
39
|
*/
|
|
22
40
|
async function getLayout(market, locale, payload, user, mixerContext, draft) {
|
|
23
41
|
const base = buildBaseOptions(user, locale, draft);
|
|
@@ -26,21 +44,24 @@ async function getLayout(market, locale, payload, user, mixerContext, draft) {
|
|
|
26
44
|
pagination: false,
|
|
27
45
|
limit: 1e4
|
|
28
46
|
};
|
|
29
|
-
const
|
|
47
|
+
const marketsResult = await payload.find({
|
|
30
48
|
...findOpts,
|
|
31
49
|
collection: "market",
|
|
32
50
|
context: mixerContext
|
|
33
|
-
})
|
|
34
|
-
const
|
|
51
|
+
});
|
|
52
|
+
const markets = marketsResult.docs;
|
|
53
|
+
const localeGlobal = await payload.findGlobal({
|
|
35
54
|
...base,
|
|
36
55
|
slug: "locale",
|
|
37
56
|
context: mixerContext
|
|
38
|
-
})
|
|
39
|
-
const
|
|
57
|
+
});
|
|
58
|
+
const locales = (localeGlobal?.items ?? []).filter((x) => x.isActive);
|
|
59
|
+
const labelsResult = await payload.find({
|
|
40
60
|
...findOpts,
|
|
41
61
|
collection: "label",
|
|
42
62
|
context: mixerContext
|
|
43
|
-
})
|
|
63
|
+
});
|
|
64
|
+
const labels = labelsResult.docs;
|
|
44
65
|
const app = await payload.findGlobal({
|
|
45
66
|
...base,
|
|
46
67
|
slug: "app",
|
|
@@ -66,6 +87,10 @@ async function getLayout(market, locale, payload, user, mixerContext, draft) {
|
|
|
66
87
|
if (!object[routeLink.schema] || routeLink.schema === String(routeLink.category)) object[routeLink.schema] = routeLink;
|
|
67
88
|
return object;
|
|
68
89
|
}, {});
|
|
90
|
+
const topLevelHrefs = flatTopLevelRoutes.reduce((object, routeLink) => {
|
|
91
|
+
if (routeLink.href && (!object[routeLink.schema] || routeLink.schema === String(routeLink.category))) object[routeLink.schema] = routeLink.href;
|
|
92
|
+
return object;
|
|
93
|
+
}, {});
|
|
69
94
|
return {
|
|
70
95
|
labels,
|
|
71
96
|
locale,
|
|
@@ -74,15 +99,12 @@ async function getLayout(market, locale, payload, user, mixerContext, draft) {
|
|
|
74
99
|
markets,
|
|
75
100
|
app,
|
|
76
101
|
menu,
|
|
77
|
-
topLevelHrefs
|
|
78
|
-
if (routeLink.href && (!object[routeLink.schema] || routeLink.schema === String(routeLink.category))) object[routeLink.schema] = routeLink.href;
|
|
79
|
-
return object;
|
|
80
|
-
}, {}),
|
|
102
|
+
topLevelHrefs,
|
|
81
103
|
topLevelRoutes,
|
|
82
104
|
tree
|
|
83
105
|
};
|
|
84
106
|
}
|
|
107
|
+
|
|
85
108
|
//#endregion
|
|
86
109
|
export { getLayout };
|
|
87
|
-
|
|
88
110
|
//# sourceMappingURL=layout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","names":[],"sources":["../../src/server/layout.ts"],"sourcesContent":["'use server';\r\n\r\nimport { IApp, IAppExtended, ICategory, ILabel, ILayout, ILocale, ILocalizedMenu, IMarket, IRoute, IRouteLink, getRootCategory } from '@websolutespa/bom-core';\r\nimport type { User } from '@websolutespa/payload-plugin-bowl';\r\nimport type { CollectionSlug, GlobalSlug } from 'payload';\r\nimport { getRouteLinkCategory } from '../lib/route';\r\nimport type { MixerContext } from '../types';\r\nimport { buildBaseOptions } from './mixer';\r\nimport type { MixerPayload } from './mixer-payload';\r\n\r\n/**\r\n * Builds the full ILayout object using Payload local API calls.\r\n *\r\n * All payload.find / payload.findGlobal calls pass `context: mixerContext` so\r\n * payload-plugin-bowl can enrich results (hrefs, richText serialisation, etc.).\r\n *\r\n * Collection and global slugs use the payload-plugin-bowl defaults:\r\n * market → 'market' (collection)\r\n * locale → 'locale' (global)\r\n * label → 'label' (collection)\r\n * app → 'app' (global) ← defined in payload-plugin-bowl\r\n * menu → 'menu' (collection)\r\n *\r\n * The route link tree is built from mixerContext.currentRoutes + mixerContext.categories\r\n * using getRouteLinkCategory (pure fn, no store calls) from bom-mixer-models/server.\r\n */\r\nexport async function getLayout<T extends IAppExtended = IAppExtended>(\r\n market: string,\r\n locale: string,\r\n payload: MixerPayload,\r\n user: User,\r\n mixerContext: MixerContext,\r\n draft?: boolean\r\n): Promise<ILayout<T>> {\r\n const base = buildBaseOptions(user, locale, draft);\r\n const findOpts = { ...base, pagination: false, limit: 10000 } as const;\r\n\r\n // markets\r\n const marketsResult = await payload.find({\r\n ...findOpts,\r\n collection: 'market' as CollectionSlug,\r\n context: mixerContext,\r\n });\r\n const markets = marketsResult.docs as unknown as IMarket[];\r\n\r\n // locales (global with an `items` array)\r\n const localeGlobal = await payload.findGlobal({\r\n ...base,\r\n slug: 'locale' as GlobalSlug,\r\n context: mixerContext,\r\n }) as unknown as { items: ILocale[] };\r\n const locales = (localeGlobal?.items ?? []).filter(x => x.isActive);\r\n\r\n // labels\r\n const labelsResult = await payload.find({\r\n ...findOpts,\r\n collection: 'label' as CollectionSlug,\r\n context: mixerContext,\r\n });\r\n const labels = labelsResult.docs as unknown as ILabel[];\r\n\r\n // app global (slug 'app', registered by payload-plugin-bowl)\r\n const app = await payload.findGlobal({\r\n ...base,\r\n slug: 'app' as GlobalSlug,\r\n context: mixerContext,\r\n }) as unknown as IApp<T>;\r\n\r\n // menus\r\n const menusResult = await payload.find({\r\n ...findOpts,\r\n collection: 'menu' as CollectionSlug,\r\n context: mixerContext,\r\n });\r\n\r\n const menu: Record<string, ILocalizedMenu> = {};\r\n (menusResult.docs as unknown as ILocalizedMenu[]).forEach(x => {\r\n menu[String(x.id)] = x;\r\n });\r\n\r\n // route link tree — pure computation from mixer context data (no store calls)\r\n const categories = (mixerContext.categories ?? []) as unknown as ICategory[];\r\n const currentRoutes = (mixerContext.currentRoutes ?? []) as IRoute[];\r\n const rootCategory = getRootCategory(categories);\r\n const treeResult = rootCategory\r\n ? getRouteLinkCategory(locale, currentRoutes, categories, rootCategory, rootCategory)\r\n : undefined;\r\n const tree = Array.isArray(treeResult) ? treeResult[0] : treeResult;\r\n\r\n // derive topLevelRoutes and topLevelHrefs from tree (mirrors layout.service.ts logic)\r\n const firstLevelRoutes = tree?.items ?? [];\r\n const flatTopLevelRoutes: IRouteLink[] = tree ? [tree, ...firstLevelRoutes] : [];\r\n\r\n const topLevelRoutes = flatTopLevelRoutes.reduce((object, routeLink) => {\r\n if (!object[routeLink.schema] || routeLink.schema === String(routeLink.category)) {\r\n object[routeLink.schema] = routeLink;\r\n }\r\n return object;\r\n }, {} as Record<string, IRouteLink>);\r\n\r\n const topLevelHrefs = flatTopLevelRoutes.reduce((object, routeLink) => {\r\n if (routeLink.href && (!object[routeLink.schema] || routeLink.schema === String(routeLink.category))) {\r\n object[routeLink.schema] = routeLink.href;\r\n }\r\n return object;\r\n }, {} as Record<string, string>);\r\n\r\n return {\r\n labels,\r\n locale,\r\n locales,\r\n market,\r\n markets,\r\n app,\r\n menu,\r\n topLevelHrefs,\r\n topLevelRoutes,\r\n tree,\r\n };\r\n}\r\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"layout.js","names":["market: string","locale: string","payload: MixerPayload","user: User","mixerContext: MixerContext","draft?: boolean","menu: Record<string, ILocalizedMenu>","flatTopLevelRoutes: IRouteLink[]"],"sources":["../../src/server/layout.ts"],"sourcesContent":["'use server';\r\n\r\nimport { IApp, IAppExtended, ICategory, ILabel, ILayout, ILocale, ILocalizedMenu, IMarket, IRoute, IRouteLink, getRootCategory } from '@websolutespa/bom-core';\r\nimport type { User } from '@websolutespa/payload-plugin-bowl';\r\nimport type { CollectionSlug, GlobalSlug } from 'payload';\r\nimport { getRouteLinkCategory } from '../lib/route';\r\nimport type { MixerContext } from '../types';\r\nimport { buildBaseOptions } from './mixer';\r\nimport type { MixerPayload } from './mixer-payload';\r\n\r\n/**\r\n * Builds the full ILayout object using Payload local API calls.\r\n *\r\n * All payload.find / payload.findGlobal calls pass `context: mixerContext` so\r\n * payload-plugin-bowl can enrich results (hrefs, richText serialisation, etc.).\r\n *\r\n * Collection and global slugs use the payload-plugin-bowl defaults:\r\n * market → 'market' (collection)\r\n * locale → 'locale' (global)\r\n * label → 'label' (collection)\r\n * app → 'app' (global) ← defined in payload-plugin-bowl\r\n * menu → 'menu' (collection)\r\n *\r\n * The route link tree is built from mixerContext.currentRoutes + mixerContext.categories\r\n * using getRouteLinkCategory (pure fn, no store calls) from bom-mixer-models/server.\r\n */\r\nexport async function getLayout<T extends IAppExtended = IAppExtended>(\r\n market: string,\r\n locale: string,\r\n payload: MixerPayload,\r\n user: User,\r\n mixerContext: MixerContext,\r\n draft?: boolean\r\n): Promise<ILayout<T>> {\r\n const base = buildBaseOptions(user, locale, draft);\r\n const findOpts = { ...base, pagination: false, limit: 10000 } as const;\r\n\r\n // markets\r\n const marketsResult = await payload.find({\r\n ...findOpts,\r\n collection: 'market' as CollectionSlug,\r\n context: mixerContext,\r\n });\r\n const markets = marketsResult.docs as unknown as IMarket[];\r\n\r\n // locales (global with an `items` array)\r\n const localeGlobal = await payload.findGlobal({\r\n ...base,\r\n slug: 'locale' as GlobalSlug,\r\n context: mixerContext,\r\n }) as unknown as { items: ILocale[] };\r\n const locales = (localeGlobal?.items ?? []).filter(x => x.isActive);\r\n\r\n // labels\r\n const labelsResult = await payload.find({\r\n ...findOpts,\r\n collection: 'label' as CollectionSlug,\r\n context: mixerContext,\r\n });\r\n const labels = labelsResult.docs as unknown as ILabel[];\r\n\r\n // app global (slug 'app', registered by payload-plugin-bowl)\r\n const app = await payload.findGlobal({\r\n ...base,\r\n slug: 'app' as GlobalSlug,\r\n context: mixerContext,\r\n }) as unknown as IApp<T>;\r\n\r\n // menus\r\n const menusResult = await payload.find({\r\n ...findOpts,\r\n collection: 'menu' as CollectionSlug,\r\n context: mixerContext,\r\n });\r\n\r\n const menu: Record<string, ILocalizedMenu> = {};\r\n (menusResult.docs as unknown as ILocalizedMenu[]).forEach(x => {\r\n menu[String(x.id)] = x;\r\n });\r\n\r\n // route link tree — pure computation from mixer context data (no store calls)\r\n const categories = (mixerContext.categories ?? []) as unknown as ICategory[];\r\n const currentRoutes = (mixerContext.currentRoutes ?? []) as IRoute[];\r\n const rootCategory = getRootCategory(categories);\r\n const treeResult = rootCategory\r\n ? getRouteLinkCategory(locale, currentRoutes, categories, rootCategory, rootCategory)\r\n : undefined;\r\n const tree = Array.isArray(treeResult) ? treeResult[0] : treeResult;\r\n\r\n // derive topLevelRoutes and topLevelHrefs from tree (mirrors layout.service.ts logic)\r\n const firstLevelRoutes = tree?.items ?? [];\r\n const flatTopLevelRoutes: IRouteLink[] = tree ? [tree, ...firstLevelRoutes] : [];\r\n\r\n const topLevelRoutes = flatTopLevelRoutes.reduce((object, routeLink) => {\r\n if (!object[routeLink.schema] || routeLink.schema === String(routeLink.category)) {\r\n object[routeLink.schema] = routeLink;\r\n }\r\n return object;\r\n }, {} as Record<string, IRouteLink>);\r\n\r\n const topLevelHrefs = flatTopLevelRoutes.reduce((object, routeLink) => {\r\n if (routeLink.href && (!object[routeLink.schema] || routeLink.schema === String(routeLink.category))) {\r\n object[routeLink.schema] = routeLink.href;\r\n }\r\n return object;\r\n }, {} as Record<string, string>);\r\n\r\n return {\r\n labels,\r\n locale,\r\n locales,\r\n market,\r\n markets,\r\n app,\r\n menu,\r\n topLevelHrefs,\r\n topLevelRoutes,\r\n tree,\r\n };\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,eAAsB,UACpBA,QACAC,QACAC,SACAC,MACAC,cACAC,OACqB;CACrB,MAAM,OAAO,iBAAiB,MAAM,QAAQ,MAAM;CAClD,MAAM,WAAW;EAAE,GAAG;EAAM,YAAY;EAAO,OAAO;CAAO;CAG7D,MAAM,gBAAgB,MAAM,QAAQ,KAAK;EACvC,GAAG;EACH,YAAY;EACZ,SAAS;CACV,EAAC;CACF,MAAM,UAAU,cAAc;CAG9B,MAAM,eAAe,MAAM,QAAQ,WAAW;EAC5C,GAAG;EACH,MAAM;EACN,SAAS;CACV,EAAC;CACF,MAAM,WAAW,cAAc,SAAS,CAAE,GAAE,OAAO,OAAK,EAAE,SAAS;CAGnE,MAAM,eAAe,MAAM,QAAQ,KAAK;EACtC,GAAG;EACH,YAAY;EACZ,SAAS;CACV,EAAC;CACF,MAAM,SAAS,aAAa;CAG5B,MAAM,MAAM,MAAM,QAAQ,WAAW;EACnC,GAAG;EACH,MAAM;EACN,SAAS;CACV,EAAC;CAGF,MAAM,cAAc,MAAM,QAAQ,KAAK;EACrC,GAAG;EACH,YAAY;EACZ,SAAS;CACV,EAAC;CAEF,MAAMC,OAAuC,CAAE;CAC9C,YAAY,KAAqC,QAAQ,OAAK;EAC7D,KAAK,OAAO,EAAE,GAAG,IAAI;CACtB,EAAC;CAGF,MAAM,aAAc,aAAa,cAAc,CAAE;CACjD,MAAM,gBAAiB,aAAa,iBAAiB,CAAE;CACvD,MAAM,eAAe,gBAAgB,WAAW;CAChD,MAAM,aAAa,eACf,qBAAqB,QAAQ,eAAe,YAAY,cAAc,aAAa,GACnF;CACJ,MAAM,OAAO,MAAM,QAAQ,WAAW,GAAG,WAAW,KAAK;CAGzD,MAAM,mBAAmB,MAAM,SAAS,CAAE;CAC1C,MAAMC,qBAAmC,OAAO,CAAC,MAAM,GAAG,gBAAiB,IAAG,CAAE;CAEhF,MAAM,iBAAiB,mBAAmB,OAAO,CAAC,QAAQ,cAAc;AACtE,MAAI,CAAC,OAAO,UAAU,WAAW,UAAU,WAAW,OAAO,UAAU,SAAS,EAC9E,OAAO,UAAU,UAAU;AAE7B,SAAO;CACR,GAAE,CAAE,EAA+B;CAEpC,MAAM,gBAAgB,mBAAmB,OAAO,CAAC,QAAQ,cAAc;AACrE,MAAI,UAAU,SAAS,CAAC,OAAO,UAAU,WAAW,UAAU,WAAW,OAAO,UAAU,SAAS,GACjG,OAAO,UAAU,UAAU,UAAU;AAEvC,SAAO;CACR,GAAE,CAAE,EAA2B;AAEhC,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy.d.ts","names":[],"sources":["../../src/server/lazy.ts"],"mappings":";;;;iBASsB,iDAAiD,qBAAqB,KAAE;iBAIxE,sBAAA,mBAAyC,eAAY;AAJ3E"}
|
|
1
|
+
{"version":3,"file":"lazy.d.ts","names":[],"sources":["../../src/server/lazy.ts"],"sourcesContent":[],"mappings":";;;;iBASsB,iDAAiD,qBAAqB,KAAE;iBAIxE,sBAAA,mBAAyC,eAAY;AAJ3E"}
|
package/dist/server/lazy.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
'use server';
|
|
2
|
+
|
|
3
|
+
|
|
2
4
|
import { getContext } from "./mixer.js";
|
|
3
5
|
import { getPageContext } from "./context.js";
|
|
6
|
+
|
|
4
7
|
//#region src/server/lazy.ts
|
|
5
8
|
const LAZY_PROPS = {};
|
|
6
9
|
async function withLazyProps(key, getComponentProps) {
|
|
@@ -27,7 +30,7 @@ async function decorateLazyComponents(extraComponents) {
|
|
|
27
30
|
}
|
|
28
31
|
page.components = decoratedComponents;
|
|
29
32
|
}
|
|
33
|
+
|
|
30
34
|
//#endregion
|
|
31
35
|
export { decorateLazyComponents, withLazyProps };
|
|
32
|
-
|
|
33
36
|
//# sourceMappingURL=lazy.js.map
|
package/dist/server/lazy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy.js","names":[],"sources":["../../src/server/lazy.ts"],"sourcesContent":["'use server';\r\n\r\nimport type { IComponent } from '@websolutespa/bom-core';\r\nimport type { ILazyComponent, ILazyStaticProps, ILazyStaticPropsFunc } from '../types';\r\nimport { getPageContext } from './context';\r\nimport { getContext } from './mixer';\r\n\r\nconst LAZY_PROPS: ILazyStaticProps = {};\r\n\r\nexport async function withLazyProps<T>(key: string, getComponentProps: ILazyStaticPropsFunc<T>) {\r\n LAZY_PROPS[key] = getComponentProps;\r\n}\r\n\r\nexport async function decorateLazyComponents(extraComponents?: IComponent[]) {\r\n const context = await getContext();\r\n const pageContext = await getPageContext();\r\n const page = pageContext.page;\r\n if (!page) {\r\n return;\r\n }\r\n const components = [\r\n ...(page.components || []),\r\n ...(extraComponents || []),\r\n ];\r\n const decoratedComponents: ILazyComponent[] = [];\r\n for (const component of components) {\r\n const key = (component.blockType || component.schema || 'unkown_type') as keyof typeof LAZY_PROPS;\r\n const getComponentProps = LAZY_PROPS[key];\r\n if (typeof getComponentProps === 'function') {\r\n const decoratedComponent = await getComponentProps({\r\n ...context,\r\n ...pageContext,\r\n component,\r\n });\r\n decoratedComponents.push(decoratedComponent);\r\n } else {\r\n decoratedComponents.push(component);\r\n }\r\n }\r\n page.components = decoratedComponents;\r\n}\r\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"lazy.js","names":["LAZY_PROPS: ILazyStaticProps","key: string","getComponentProps: ILazyStaticPropsFunc<T>","extraComponents?: IComponent[]","decoratedComponents: ILazyComponent[]"],"sources":["../../src/server/lazy.ts"],"sourcesContent":["'use server';\r\n\r\nimport type { IComponent } from '@websolutespa/bom-core';\r\nimport type { ILazyComponent, ILazyStaticProps, ILazyStaticPropsFunc } from '../types';\r\nimport { getPageContext } from './context';\r\nimport { getContext } from './mixer';\r\n\r\nconst LAZY_PROPS: ILazyStaticProps = {};\r\n\r\nexport async function withLazyProps<T>(key: string, getComponentProps: ILazyStaticPropsFunc<T>) {\r\n LAZY_PROPS[key] = getComponentProps;\r\n}\r\n\r\nexport async function decorateLazyComponents(extraComponents?: IComponent[]) {\r\n const context = await getContext();\r\n const pageContext = await getPageContext();\r\n const page = pageContext.page;\r\n if (!page) {\r\n return;\r\n }\r\n const components = [\r\n ...(page.components || []),\r\n ...(extraComponents || []),\r\n ];\r\n const decoratedComponents: ILazyComponent[] = [];\r\n for (const component of components) {\r\n const key = (component.blockType || component.schema || 'unkown_type') as keyof typeof LAZY_PROPS;\r\n const getComponentProps = LAZY_PROPS[key];\r\n if (typeof getComponentProps === 'function') {\r\n const decoratedComponent = await getComponentProps({\r\n ...context,\r\n ...pageContext,\r\n component,\r\n });\r\n decoratedComponents.push(decoratedComponent);\r\n } else {\r\n decoratedComponents.push(component);\r\n }\r\n }\r\n page.components = decoratedComponents;\r\n}\r\n"],"mappings":";;;;;;;AAOA,MAAMA,aAA+B,CAAE;AAEvC,eAAsB,cAAiBC,KAAaC,mBAA4C;CAC9F,WAAW,OAAO;AACnB;AAED,eAAsB,uBAAuBC,iBAAgC;CAC3E,MAAM,UAAU,MAAM,YAAY;CAClC,MAAM,cAAc,MAAM,gBAAgB;CAC1C,MAAM,OAAO,YAAY;AACzB,KAAI,CAAC,KACH;CAEF,MAAM,aAAa,CACjB,GAAI,KAAK,cAAc,CAAE,GACzB,GAAI,mBAAmB,CAAE,CAC1B;CACD,MAAMC,sBAAwC,CAAE;AAChD,MAAK,MAAM,aAAa,YAAY;EAClC,MAAM,MAAO,UAAU,aAAa,UAAU,UAAU;EACxD,MAAM,oBAAoB,WAAW;AACrC,MAAI,OAAO,sBAAsB,YAAY;GAC3C,MAAM,qBAAqB,MAAM,kBAAkB;IACjD,GAAG;IACH,GAAG;IACH;GACD,EAAC;GACF,oBAAoB,KAAK,mBAAmB;EAC7C,OACC,oBAAoB,KAAK,UAAU;CAEtC;CACD,KAAK,aAAa;AACnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-api.d.ts","names":[],"sources":["../../src/server/local-api.ts"],"mappings":";;;iBAIsB,WAAA,SAAoB,QAAQ,iCAAiC"}
|
|
1
|
+
{"version":3,"file":"local-api.d.ts","names":[],"sources":["../../src/server/local-api.ts"],"sourcesContent":[],"mappings":";;;iBAIsB,WAAA,SAAoB,QAAQ,iCAAiC"}
|
package/dist/server/local-api.js
CHANGED
|
@@ -1,29 +1,35 @@
|
|
|
1
|
-
|
|
1
|
+
'use server';
|
|
2
|
+
|
|
3
|
+
|
|
2
4
|
import { getPayload } from "payload";
|
|
5
|
+
|
|
3
6
|
//#region src/server/local-api.ts
|
|
4
7
|
async function getLocalApi(config, slug) {
|
|
5
8
|
const payload = await getPayload({ config });
|
|
6
9
|
const collectionSlugs = payload.config.collections.map((x) => x.slug);
|
|
7
10
|
const globalSlugs = payload.config.globals.map((x) => x.slug);
|
|
8
|
-
[...collectionSlugs, ...globalSlugs]
|
|
11
|
+
const keys = [...collectionSlugs, ...globalSlugs];
|
|
12
|
+
keys.sort();
|
|
9
13
|
if (collectionSlugs.includes(slug)) {
|
|
10
14
|
const collectionSlug = slug;
|
|
11
15
|
return {
|
|
12
16
|
findMany: async (params) => {
|
|
13
|
-
|
|
17
|
+
const response = await payload.find({
|
|
14
18
|
...params,
|
|
15
19
|
collection: collectionSlug,
|
|
16
20
|
pagination: false,
|
|
17
21
|
limit: 1e4,
|
|
18
22
|
overrideAccess: false
|
|
19
|
-
})
|
|
23
|
+
});
|
|
24
|
+
return response.docs;
|
|
20
25
|
},
|
|
21
26
|
findPaged: async (params) => {
|
|
22
|
-
|
|
27
|
+
const response = await payload.find({
|
|
23
28
|
...params,
|
|
24
29
|
collection: collectionSlug,
|
|
25
30
|
overrideAccess: false
|
|
26
31
|
});
|
|
32
|
+
return response;
|
|
27
33
|
},
|
|
28
34
|
findOne: async (params) => {
|
|
29
35
|
return await payload.findByID({
|
|
@@ -54,7 +60,7 @@ async function getLocalApi(config, slug) {
|
|
|
54
60
|
};
|
|
55
61
|
}
|
|
56
62
|
}
|
|
63
|
+
|
|
57
64
|
//#endregion
|
|
58
65
|
export { getLocalApi };
|
|
59
|
-
|
|
60
66
|
//# sourceMappingURL=local-api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-api.js","names":[],"sources":["../../src/server/local-api.ts"],"sourcesContent":["'use server';\r\n\r\nimport { CollectionSlug, getPayload, GlobalSlug, SanitizedConfig } from 'payload';\r\n\r\nexport async function getLocalApi(config: Promise<SanitizedConfig>, slug: string): Promise<any> {\r\n const payload = await getPayload({ config });\r\n const collectionSlugs = payload.config.collections.map(x => x.slug);\r\n const globalSlugs = payload.config.globals.map(x => x.slug);\r\n const keys = [\r\n ...collectionSlugs,\r\n ...globalSlugs,\r\n ];\r\n keys.sort();\r\n if (collectionSlugs.includes(slug as CollectionSlug)) {\r\n const collectionSlug = slug as CollectionSlug;\r\n return {\r\n findMany: async (params: Parameters<typeof payload.find>) => {\r\n const response = await payload.find({\r\n ...(params as any),\r\n collection: collectionSlug,\r\n pagination: false,\r\n limit: 10000,\r\n overrideAccess: false,\r\n });\r\n return response.docs;\r\n },\r\n findPaged: async (params: Parameters<typeof payload.find>) => {\r\n const response = await payload.find({\r\n ...(params as any),\r\n collection: collectionSlug,\r\n overrideAccess: false,\r\n });\r\n return response;\r\n },\r\n findOne: async (params: Parameters<typeof payload.findByID>) => {\r\n return await payload.findByID({\r\n id: '',\r\n ...params,\r\n collection: collectionSlug,\r\n disableErrors: true,\r\n overrideAccess: false,\r\n });\r\n },\r\n };\r\n } else if (globalSlugs.includes(slug as GlobalSlug)) {\r\n const globalSlug = slug as GlobalSlug;\r\n return {\r\n findMany: async (params: Parameters<typeof payload.findGlobal>) => {\r\n return await payload.findGlobal({\r\n slug: globalSlug,\r\n ...params,\r\n overrideAccess: false,\r\n });\r\n },\r\n findPaged: async (params: Parameters<typeof payload.find>) => {\r\n throw 'Not implemented';\r\n },\r\n findOne: async (params: Parameters<typeof payload.findByID>) => {\r\n throw 'Not implemented';\r\n },\r\n };\r\n }\r\n}\r\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"local-api.js","names":["config: Promise<SanitizedConfig>","slug: string","params: Parameters<typeof payload.find>","params: Parameters<typeof payload.findByID>","params: Parameters<typeof payload.findGlobal>"],"sources":["../../src/server/local-api.ts"],"sourcesContent":["'use server';\r\n\r\nimport { CollectionSlug, getPayload, GlobalSlug, SanitizedConfig } from 'payload';\r\n\r\nexport async function getLocalApi(config: Promise<SanitizedConfig>, slug: string): Promise<any> {\r\n const payload = await getPayload({ config });\r\n const collectionSlugs = payload.config.collections.map(x => x.slug);\r\n const globalSlugs = payload.config.globals.map(x => x.slug);\r\n const keys = [\r\n ...collectionSlugs,\r\n ...globalSlugs,\r\n ];\r\n keys.sort();\r\n if (collectionSlugs.includes(slug as CollectionSlug)) {\r\n const collectionSlug = slug as CollectionSlug;\r\n return {\r\n findMany: async (params: Parameters<typeof payload.find>) => {\r\n const response = await payload.find({\r\n ...(params as any),\r\n collection: collectionSlug,\r\n pagination: false,\r\n limit: 10000,\r\n overrideAccess: false,\r\n });\r\n return response.docs;\r\n },\r\n findPaged: async (params: Parameters<typeof payload.find>) => {\r\n const response = await payload.find({\r\n ...(params as any),\r\n collection: collectionSlug,\r\n overrideAccess: false,\r\n });\r\n return response;\r\n },\r\n findOne: async (params: Parameters<typeof payload.findByID>) => {\r\n return await payload.findByID({\r\n id: '',\r\n ...params,\r\n collection: collectionSlug,\r\n disableErrors: true,\r\n overrideAccess: false,\r\n });\r\n },\r\n };\r\n } else if (globalSlugs.includes(slug as GlobalSlug)) {\r\n const globalSlug = slug as GlobalSlug;\r\n return {\r\n findMany: async (params: Parameters<typeof payload.findGlobal>) => {\r\n return await payload.findGlobal({\r\n slug: globalSlug,\r\n ...params,\r\n overrideAccess: false,\r\n });\r\n },\r\n findPaged: async (params: Parameters<typeof payload.find>) => {\r\n throw 'Not implemented';\r\n },\r\n findOne: async (params: Parameters<typeof payload.findByID>) => {\r\n throw 'Not implemented';\r\n },\r\n };\r\n }\r\n}\r\n"],"mappings":";;;;;;AAIA,eAAsB,YAAYA,QAAkCC,MAA4B;CAC9F,MAAM,UAAU,MAAM,WAAW,EAAE,OAAQ,EAAC;CAC5C,MAAM,kBAAkB,QAAQ,OAAO,YAAY,IAAI,OAAK,EAAE,KAAK;CACnE,MAAM,cAAc,QAAQ,OAAO,QAAQ,IAAI,OAAK,EAAE,KAAK;CAC3D,MAAM,OAAO,CACX,GAAG,iBACH,GAAG,WACJ;CACD,KAAK,MAAM;AACX,KAAI,gBAAgB,SAAS,KAAuB,EAAE;EACpD,MAAM,iBAAiB;AACvB,SAAO;GACL,UAAU,OAAOC,WAA4C;IAC3D,MAAM,WAAW,MAAM,QAAQ,KAAK;KAClC,GAAI;KACJ,YAAY;KACZ,YAAY;KACZ,OAAO;KACP,gBAAgB;IACjB,EAAC;AACF,WAAO,SAAS;GACjB;GACD,WAAW,OAAOA,WAA4C;IAC5D,MAAM,WAAW,MAAM,QAAQ,KAAK;KAClC,GAAI;KACJ,YAAY;KACZ,gBAAgB;IACjB,EAAC;AACF,WAAO;GACR;GACD,SAAS,OAAOC,WAAgD;AAC9D,WAAO,MAAM,QAAQ,SAAS;KAC5B,IAAI;KACJ,GAAG;KACH,YAAY;KACZ,eAAe;KACf,gBAAgB;IACjB,EAAC;GACH;EACF;CACF,WAAU,YAAY,SAAS,KAAmB,EAAE;EACnD,MAAM,aAAa;AACnB,SAAO;GACL,UAAU,OAAOC,WAAkD;AACjE,WAAO,MAAM,QAAQ,WAAW;KAC9B,MAAM;KACN,GAAG;KACH,gBAAgB;IACjB,EAAC;GACH;GACD,WAAW,OAAOF,WAA4C;AAC5D,UAAM;GACP;GACD,SAAS,OAAOC,WAAgD;AAC9D,UAAM;GACP;EACF;CACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.d.ts","names":[],"sources":["../../src/server/metadata.ts"],"mappings":";;;;;;;;AASA
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","names":[],"sources":["../../src/server/metadata.ts"],"sourcesContent":[],"mappings":";;;;;;;;AASA;;AAA0C,iBAA1B,WAA0B,CAAA,cAAA,cAAA,CAAA,CAAA,IAAA,EAAsB,KAAtB,EAAA,MAAA,EAAqC,OAArC,CAA6C,eAA7C,CAAA,CAAA,EAAA,CAAA,KAAA,EAE3B,QAF2B,CAAA;EAAc,MAAQ,EAE9B,OAF8B,CAEtB,UAFsB,CAAA;CAAK,CAAA,EAAA,MAAkB,EAGvE,iBAHuE,EAAA,GAGtD,OAHsD,CAAA;EAAe,KAAvB,EAAA,MAAA;EAAO,WAE5C,EAAA,MAAA,GAAA,SAAA;CAAU,CAAA"}
|
package/dist/server/metadata.js
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { createPageContext } from "./context.js";
|
|
2
|
+
|
|
2
3
|
//#region src/server/metadata.ts
|
|
3
4
|
/**
|
|
5
|
+
|
|
4
6
|
* Returns a generateMetadata function for a given page collection slug.
|
|
7
|
+
|
|
5
8
|
* Uses bowl's createPageContext (Payload local API) instead of the store abstraction.
|
|
9
|
+
|
|
6
10
|
*/
|
|
7
11
|
function getMetadata(slug, config) {
|
|
8
12
|
return async function generateMetadata(props, parent) {
|
|
@@ -14,7 +18,7 @@ function getMetadata(slug, config) {
|
|
|
14
18
|
};
|
|
15
19
|
};
|
|
16
20
|
}
|
|
21
|
+
|
|
17
22
|
//#endregion
|
|
18
23
|
export { getMetadata };
|
|
19
|
-
|
|
20
24
|
//# sourceMappingURL=metadata.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","names":[],"sources":["../../src/server/metadata.ts"],"sourcesContent":["import type { ResolvingMetadata } from 'next';\r\nimport type { CollectionSlug, SanitizedConfig } from 'payload';\r\nimport type { PageParams } from '../types';\r\nimport { createPageContext } from './context';\r\n\r\n/**\r\n * Returns a generateMetadata function for a given page collection slug.\r\n * Uses bowl's createPageContext (Payload local API) instead of the store abstraction.\r\n */\r\nexport function getMetadata<TSlug extends CollectionSlug>(slug: TSlug, config: Promise<SanitizedConfig>) {\r\n return async function generateMetadata(\r\n props: Readonly<{ params: Promise<PageParams>; }>,\r\n parent: ResolvingMetadata\r\n ) {\r\n const { market, locale, id } = await props.params;\r\n const { page } = await createPageContext(market, locale, slug, id, config);\r\n return {\r\n title: page!.meta?.title || page!.title,\r\n description: page!.meta?.description || page!.abstract,\r\n };\r\n };\r\n}\r\n\r\n/*\r\n\r\n{\r\n \"viewport\": null,\r\n \"themeColor\": null,\r\n \"colorScheme\": null,\r\n \"metadataBase\": null,\r\n \"title\": {\r\n \"absolute\": \"Mixer\",\r\n \"template\": null\r\n },\r\n \"description\": \"Generated by bom create\",\r\n \"applicationName\": \"Mixer\",\r\n \"authors\": [\r\n {\r\n \"name\": \"Websolute Spa\",\r\n \"url\": \"https://www.websolute.it\"\r\n }\r\n ],\r\n \"generator\": \"BOM\",\r\n \"keywords\": [\r\n \"Mixer\",\r\n \"Next.js\",\r\n \"React\",\r\n \"JavaScript\"\r\n ],\r\n \"referrer\": \"origin-when-cross-origin\",\r\n \"creator\": \"Luca Zampetti\",\r\n \"publisher\": \"Websolute Spa\",\r\n \"robots\": null,\r\n \"manifest\": null,\r\n \"alternates\": {\r\n \"canonical\": null,\r\n \"languages\": null,\r\n \"media\": null,\r\n \"types\": null\r\n },\r\n \"icons\": null,\r\n \"openGraph\": null,\r\n \"twitter\": null,\r\n \"verification\": {},\r\n \"appleWebApp\": null,\r\n \"formatDetection\": {\r\n \"email\": false,\r\n \"address\": false,\r\n \"telephone\": false\r\n },\r\n \"itunes\": null,\r\n \"facebook\": null,\r\n \"abstract\": null,\r\n \"appLinks\": null,\r\n \"archives\": null,\r\n \"assets\": null,\r\n \"bookmarks\": null,\r\n \"category\": null,\r\n \"classification\": null,\r\n \"pagination\": {\r\n \"previous\": null,\r\n \"next\": null\r\n },\r\n \"other\": {}\r\n}\r\n\r\n*/\r\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"metadata.js","names":["slug: TSlug","config: Promise<SanitizedConfig>","props: Readonly<{ params: Promise<PageParams>; }>","parent: ResolvingMetadata"],"sources":["../../src/server/metadata.ts"],"sourcesContent":["import type { ResolvingMetadata } from 'next';\r\nimport type { CollectionSlug, SanitizedConfig } from 'payload';\r\nimport type { PageParams } from '../types';\r\nimport { createPageContext } from './context';\r\n\r\n/**\r\n * Returns a generateMetadata function for a given page collection slug.\r\n * Uses bowl's createPageContext (Payload local API) instead of the store abstraction.\r\n */\r\nexport function getMetadata<TSlug extends CollectionSlug>(slug: TSlug, config: Promise<SanitizedConfig>) {\r\n return async function generateMetadata(\r\n props: Readonly<{ params: Promise<PageParams>; }>,\r\n parent: ResolvingMetadata\r\n ) {\r\n const { market, locale, id } = await props.params;\r\n const { page } = await createPageContext(market, locale, slug, id, config);\r\n return {\r\n title: page!.meta?.title || page!.title,\r\n description: page!.meta?.description || page!.abstract,\r\n };\r\n };\r\n}\r\n\r\n/*\r\n\r\n{\r\n \"viewport\": null,\r\n \"themeColor\": null,\r\n \"colorScheme\": null,\r\n \"metadataBase\": null,\r\n \"title\": {\r\n \"absolute\": \"Mixer\",\r\n \"template\": null\r\n },\r\n \"description\": \"Generated by bom create\",\r\n \"applicationName\": \"Mixer\",\r\n \"authors\": [\r\n {\r\n \"name\": \"Websolute Spa\",\r\n \"url\": \"https://www.websolute.it\"\r\n }\r\n ],\r\n \"generator\": \"BOM\",\r\n \"keywords\": [\r\n \"Mixer\",\r\n \"Next.js\",\r\n \"React\",\r\n \"JavaScript\"\r\n ],\r\n \"referrer\": \"origin-when-cross-origin\",\r\n \"creator\": \"Luca Zampetti\",\r\n \"publisher\": \"Websolute Spa\",\r\n \"robots\": null,\r\n \"manifest\": null,\r\n \"alternates\": {\r\n \"canonical\": null,\r\n \"languages\": null,\r\n \"media\": null,\r\n \"types\": null\r\n },\r\n \"icons\": null,\r\n \"openGraph\": null,\r\n \"twitter\": null,\r\n \"verification\": {},\r\n \"appleWebApp\": null,\r\n \"formatDetection\": {\r\n \"email\": false,\r\n \"address\": false,\r\n \"telephone\": false\r\n },\r\n \"itunes\": null,\r\n \"facebook\": null,\r\n \"abstract\": null,\r\n \"appLinks\": null,\r\n \"archives\": null,\r\n \"assets\": null,\r\n \"bookmarks\": null,\r\n \"category\": null,\r\n \"classification\": null,\r\n \"pagination\": {\r\n \"previous\": null,\r\n \"next\": null\r\n },\r\n \"other\": {}\r\n}\r\n\r\n*/\r\n"],"mappings":";;;;;;;;;;AASA,SAAgB,YAA0CA,MAAaC,QAAkC;AACrG,QAAO,eAAe,iBAClBC,OACAC,QACF;EACE,MAAM,EAAE,QAAQ,QAAQ,IAAI,GAAG,MAAM,MAAM;EAC3C,MAAM,EAAE,MAAM,GAAG,MAAM,kBAAkB,QAAQ,QAAQ,MAAM,IAAI,OAAO;AAC1E,SAAO;GACH,OAAO,KAAM,MAAM,SAAS,KAAM;GAClC,aAAa,KAAM,MAAM,eAAe,KAAM;EACjD;CACJ;AACJ"}
|
|
@@ -59,5 +59,5 @@ type MixerPayload = Omit<BasePayload, 'find' | 'findByID' | 'findGlobal'> & {
|
|
|
59
59
|
findGlobal: <TSlug extends GlobalSlug, TContext extends RequestContext | undefined = undefined>(options: MixerFindGlobalOptions<TSlug, TContext>) => Promise<DecorateForMixer<DataFromGlobalSlug<TSlug>, TSlug, TContext>>;
|
|
60
60
|
};
|
|
61
61
|
//#endregion
|
|
62
|
-
export { BowlDecorator,
|
|
62
|
+
export { BowlDecorator, MixerPayload };
|
|
63
63
|
//# sourceMappingURL=mixer-payload.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mixer-payload.d.ts","names":[],"sources":["../../src/server/mixer-payload.ts"],"mappings":";;;;;;KAcY,sBAAA;EAAA,MAAA,EAAA,MAAA;EAKP,IAAA,CAAA,EAAA,MAAA,GAAA,IAAA;
|
|
1
|
+
{"version":3,"file":"mixer-payload.d.ts","names":[],"sources":["../../src/server/mixer-payload.ts"],"sourcesContent":[],"mappings":";;;;;;KAcY,sBAAA;EAAA,MAAA,EAAA,MAAA;EAKP,IAAA,CAAA,EAAA,MAAA,GAAA,IAAA;CAAqB;KAArB,qBAA2B,CAAA,CAAA,CAAA,GAAA,CAAA,SAAA,IAAA,GAAA,IAAA,GAE5B,CAF4B,SAAA,MAAA,GAG5B,CAH4B,GAI5B,CAJ4B,SAAA,SAAA,CAAA,KAAA,MAAA,CAAA,EAAA,GAK5B,qBAL4B,CAKN,KALM,CAAA,EAAA,GAM5B,CAN4B,SAAA,MAAA,GAO5B,kBAP4B,CAOT,CAPS,CAAA,GAAA;EAAC,IAE7B,EAAA,MAAA,GAAA,IAAA;CAAC,GAMD,CANC;KAQA,gBAND,CAAA,CAAA,CAAA,GAMuB,OANvB,CAM+B,CAN/B,EAAA,IAAA,GAAA,SAAA,CAAA,GAMsD,SANtD,GAMkE,SANlE,EAAA;KAQC,iBAPqB,CAAA,CAAA,CAAA,GAOE,CAPF,SAAA,IAAA,GAAA,SAAA,GAO+B,CAP/B,GAOmC,SAPnC,EAAA;KASrB,qBATD,CAAA,IAAA,EAAA,MAAA,CAAA,GASuC,MATvC,SAAA;EAAqB,IACrB,EAAA,OAAA;CAAC,GAAA,MACkB,GASnB,IATmB,SAAA,UAAA,GAUnB,qBAVmB,CAUG,MAVH,CAAA,GAWnB,IAXmB,SAAA,KAAA,GAYnB,gBAZmB,CAYF,MAZE,CAAA,GAanB,IAbmB,SAAA,MAAA,GAcnB,iBAdmB,CAcD,MAdC,CAAA,GAenB,kBAfmB,CAeA,MAfA,CAAA;KAiBlB,mBAjBD,CAAA,CAAA,CAAA,GAAA,WACA,MAiBa,CAjBb,GAiBiB,qBAjBjB,CAiBuC,IAjBvC,EAiB6C,CAjB7C,CAiB+C,IAjB/C,CAAA,CAAA,EAAC,GAAA,CAkBA,CAlBA,SAAA;EAEA,QAAA,CAAA,EAAA,OAAA;EAAgB,QAAA,CAAA,EAAA,OAAA;CAAA,GAAA;EAAe,IAAT,EAAA,MAAA;CAAO,GAAA,OAAwB,CAAA;KAkBrD,kBAlBiE,CAAA,CAAA,CAAA,GAkBzC,CAlByC,SAkB/B,IAlB+B,GAmBlE,CAnBkE,GAoBlE,CApBkE,SAAA,SAAA,CAAA,KAAA,MAAA,CAAA,EAAA,GAqBlE,kBArBkE,CAqB/C,KArB+C,CAAA,EAAA,GAsBlE,CAtBkE,SAAA,MAAA,GAuBlE,mBAvBkE,CAuB9C,CAvB8C,CAAA,GAwBlE,CAxBkE;AAAS;AAAA;;;;;AAET;AAAA;AAE5C,KA8Bd,aA9Bc,CAAA,CAAA,EAAA,cAAA,MAAA,GAAA,EAAA,CAAA,GA8BgC,KA9BhC,SAAA,MAAA,GA+BtB,KA/BsB,GAgCtB,kBAhCsB,CAgCH,CAhCG,CAAA,GAgCE,sBAhCF;;;KAqCrB,gBAlCqB,CAAA,CAAA,EAAA,cAAA,MAAA,EAAA,QAAA,CAAA,GAkCiC,QAlCjC,SAkCkD,gBAlClD,GAmCtB,aAnCsB,CAmCR,CAnCQ,EAmCL,KAnCK,CAAA,GAoCtB,CApCsB;KAsCrB,gBAtCD,CAAA,cAuCY,cAvCZ,EAAA,QAAA,CAAA,GAyCA,IAzCA,CAyCK,WAzCL,CAyCiB,KAzCjB,EAAA,GAAA,CAAA,EAAA,SAAA,CAAA,GAAA;EAAqB,OACrB,CAAA,EAyCQ,QAzCR;CAAI;KA4CH,oBA3CD,CAAA,cA4CY,cA5CZ,EAAA,QAAA,CAAA,GA8CA,IA9CA,CA8CK,WA9CL,CA8CiB,KA9CjB,EAAA,GAAA,CAAA,EAAA,SAAA,CAAA,GAAA;EAAgB,OAChB,CAAA,EA8CQ,QA9CR;EAAI,aACc,CAAA,EAAA,OAAA;EAAM,EAAA,EAAxB,MAAA,GAAA,MAAA;CAAiB;KAkDhB,sBAjDD,CAAA,cAkDY,UAlDZ,EAAA,QAAA,CAAA,GAoDA,IApDA,CAoDK,WApDL,CAoDiB,cApDjB,EAAA,GAAA,CAAA,EAAA,YAAA,GAAA,SAAA,CAAA,GAAA;EAAkB,OAAA,CAAA,EAqDV,QArDU;EAEjB,IAAA,EAoDG,KApDH;CAAmB;;;;;;;AAElB,KA2DM,YAAA,GAAe,IA3DrB,CA2D0B,WA3D1B,EAAA,MAAA,GAAA,UAAA,GAAA,YAAA,CAAA,GAAA;EAED,IAAA,EAAA,CAAA,cA2Da,cA3DK,EAAA,iBA4DF,cA5DE,GAAA,SAAA,GAAA,SAAA,CAAA,CAAA,OAAA,EA6DV,gBA7DU,CA6DO,KA7DP,EA6Dc,QA7Dd,CAAA,EAAA,GA6D4B,OA7D5B,CA8DnB,aA9DmB,CA8DL,gBA9DK,CA8DY,sBA9DZ,CA8DmC,KA9DnC,CAAA,EA8D2C,KA9D3C,EA8DkD,QA9DlD,CAAA,CAAA,CAAA;EAAA,QAAA,EAAA,CAAA,cAiEL,cAjEK,EAAA,iBAkEF,cAlEE,GAAA,SAAA,GAAA,SAAA,CAAA,CAAA,OAAA,EAmEV,oBAnEU,CAmEW,KAnEX,EAmEkB,QAnElB,CAAA,EAAA,GAmEgC,OAnEhC,CAoEnB,gBApEmB,CAoEF,sBApEE,CAoEqB,KApErB,CAAA,EAoE6B,KApE7B,EAoEoC,QApEpC,CAAA,GAAA,IAAA,CAAA;EAAA,UAAM,EAAA,CAAA,cAuEX,UAvEW,EAAA,iBAwER,cAxEQ,GAAA,SAAA,GAAA,SAAA,CAAA,CAAA,OAAA,EAyEhB,sBAzEgB,CAyEO,KAzEP,EAyEc,QAzEd,CAAA,EAAA,GAyE4B,OAzE5B,CA0EzB,gBA1EyB,CA0ER,kBA1EQ,CA0EW,KA1EX,CAAA,EA0EmB,KA1EnB,EA0E0B,QA1E1B,CAAA,CAAA;CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mixer.d.ts","names":[],"sources":["../../src/server/mixer.ts"],"mappings":";;;;;;;;;iBAgCgB,WAAA
|
|
1
|
+
{"version":3,"file":"mixer.d.ts","names":[],"sources":["../../src/server/mixer.ts"],"sourcesContent":[],"mappings":"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"}
|