@websolutespa/bom-next 3.0.1 → 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.
Files changed (313) hide show
  1. package/CHANGELOG.md +17 -7
  2. package/dist/_virtual/rolldown_runtime.js +27 -0
  3. package/dist/client/client.d.ts +9 -0
  4. package/dist/client/client.d.ts.map +1 -0
  5. package/dist/client/client.js +29 -0
  6. package/dist/client/client.js.map +1 -0
  7. package/dist/client/extra.d.ts +17 -0
  8. package/dist/client/extra.d.ts.map +1 -0
  9. package/dist/client/extra.js +18 -0
  10. package/dist/client/extra.js.map +1 -0
  11. package/dist/client/label.d.ts +15 -0
  12. package/dist/client/label.d.ts.map +1 -0
  13. package/dist/client/label.js +25 -0
  14. package/dist/client/label.js.map +1 -0
  15. package/dist/client/layout.d.ts +18 -0
  16. package/dist/client/layout.d.ts.map +1 -0
  17. package/dist/client/layout.js +18 -0
  18. package/dist/client/layout.js.map +1 -0
  19. package/dist/client/local.collection.d.ts +32 -0
  20. package/dist/client/local.collection.d.ts.map +1 -0
  21. package/dist/client/local.collection.js +51 -0
  22. package/dist/client/local.collection.js.map +1 -0
  23. package/dist/client/metadata.d.ts +43 -0
  24. package/dist/client/metadata.d.ts.map +1 -0
  25. package/dist/client/metadata.js +154 -0
  26. package/dist/client/metadata.js.map +1 -0
  27. package/dist/client/page.d.ts +404 -0
  28. package/dist/client/page.d.ts.map +1 -0
  29. package/dist/client/page.js +18 -0
  30. package/dist/client/page.js.map +1 -0
  31. package/dist/client/useApi.d.ts +21 -0
  32. package/dist/client/useApi.d.ts.map +1 -0
  33. package/dist/client/useApi.js +66 -0
  34. package/dist/client/useApi.js.map +1 -0
  35. package/dist/client/useCollectionApi.d.ts +21 -0
  36. package/dist/client/useCollectionApi.d.ts.map +1 -0
  37. package/dist/client/useCollectionApi.js +67 -0
  38. package/dist/client/useCollectionApi.js.map +1 -0
  39. package/dist/client/useExtra.d.ts +9 -0
  40. package/dist/client/useExtra.d.ts.map +1 -0
  41. package/dist/client/useExtra.js +16 -0
  42. package/dist/client/useExtra.js.map +1 -0
  43. package/dist/client/useHttp.d.ts +15 -0
  44. package/dist/client/useHttp.d.ts.map +1 -0
  45. package/dist/client/useHttp.js +73 -0
  46. package/dist/client/useHttp.js.map +1 -0
  47. package/dist/client/useLabel.d.ts +9 -0
  48. package/dist/client/useLabel.d.ts.map +1 -0
  49. package/dist/client/useLabel.js +16 -0
  50. package/dist/client/useLabel.js.map +1 -0
  51. package/dist/client/useLayout.d.ts +9 -0
  52. package/dist/client/useLayout.d.ts.map +1 -0
  53. package/dist/client/useLayout.js +16 -0
  54. package/dist/client/useLayout.js.map +1 -0
  55. package/dist/client/useLink.d.ts +7 -0
  56. package/dist/client/useLink.d.ts.map +1 -0
  57. package/dist/client/useLink.js +19 -0
  58. package/dist/client/useLink.js.map +1 -0
  59. package/dist/client/useMetaData.d.ts +9 -0
  60. package/dist/client/useMetaData.d.ts.map +1 -0
  61. package/dist/client/useMetaData.js +16 -0
  62. package/dist/client/useMetaData.js.map +1 -0
  63. package/dist/client/usePage.d.ts +394 -0
  64. package/dist/client/usePage.d.ts.map +1 -0
  65. package/dist/client/usePage.js +16 -0
  66. package/dist/client/usePage.js.map +1 -0
  67. package/dist/client/useUser.d.ts +9 -0
  68. package/dist/client/useUser.d.ts.map +1 -0
  69. package/dist/client/useUser.js +16 -0
  70. package/dist/client/useUser.js.map +1 -0
  71. package/dist/client/user.d.ts +20 -0
  72. package/dist/client/user.d.ts.map +1 -0
  73. package/dist/client/user.js +39 -0
  74. package/dist/client/user.js.map +1 -0
  75. package/dist/exports/client.d.ts +20 -979
  76. package/dist/exports/client.js +20 -5734
  77. package/dist/exports/instrumentation.d.ts +2 -13
  78. package/dist/exports/instrumentation.js +2 -24
  79. package/dist/exports/proxy.d.ts +5 -71
  80. package/dist/exports/proxy.js +5 -253
  81. package/dist/exports/server.d.ts +19 -402
  82. package/dist/exports/server.js +20 -1974
  83. package/dist/index.d.ts +18 -499
  84. package/dist/index.js +11 -200
  85. package/dist/instrumentation/client.d.ts +8 -0
  86. package/dist/instrumentation/client.d.ts.map +1 -0
  87. package/dist/instrumentation/client.js +16 -0
  88. package/dist/instrumentation/client.js.map +1 -0
  89. package/dist/instrumentation/sentry/capture.requestError.js +13 -0
  90. package/dist/instrumentation/sentry/capture.requestError.js.map +1 -0
  91. package/dist/instrumentation/sentry/capture.routerTransitionStart.js +8 -0
  92. package/dist/instrumentation/sentry/capture.routerTransitionStart.js.map +1 -0
  93. package/dist/instrumentation/sentry/config.client.js +10 -0
  94. package/dist/instrumentation/sentry/config.client.js.map +1 -0
  95. package/dist/instrumentation/sentry/config.edge.js +10 -0
  96. package/dist/instrumentation/sentry/config.edge.js.map +1 -0
  97. package/dist/instrumentation/sentry/config.server.js +10 -0
  98. package/dist/instrumentation/sentry/config.server.js.map +1 -0
  99. package/dist/instrumentation/server.d.ts +13 -0
  100. package/dist/instrumentation/server.d.ts.map +1 -0
  101. package/dist/instrumentation/server.js +22 -0
  102. package/dist/instrumentation/server.js.map +1 -0
  103. package/dist/{types2.d.ts → instrumentation/types.d.ts} +2 -2
  104. package/dist/instrumentation/types.d.ts.map +1 -0
  105. package/dist/lib/breadcrumb.d.ts +15 -0
  106. package/dist/lib/breadcrumb.d.ts.map +1 -0
  107. package/dist/lib/breadcrumb.js +25 -0
  108. package/dist/lib/breadcrumb.js.map +1 -0
  109. package/dist/lib/const.d.ts +9 -0
  110. package/dist/lib/const.d.ts.map +1 -0
  111. package/dist/lib/const.js +9 -0
  112. package/dist/lib/const.js.map +1 -0
  113. package/dist/lib/http.d.ts +36 -0
  114. package/dist/lib/http.d.ts.map +1 -0
  115. package/dist/{http.js → lib/http.js} +7 -4
  116. package/dist/lib/http.js.map +1 -0
  117. package/dist/lib/label.d.ts +16 -0
  118. package/dist/lib/label.d.ts.map +1 -0
  119. package/dist/lib/label.js +34 -0
  120. package/dist/lib/label.js.map +1 -0
  121. package/dist/lib/layout.defaults.d.ts +9 -0
  122. package/dist/lib/layout.defaults.d.ts.map +1 -0
  123. package/dist/lib/layout.defaults.js +161 -0
  124. package/dist/lib/layout.defaults.js.map +1 -0
  125. package/dist/lib/link.d.ts +9 -0
  126. package/dist/lib/link.d.ts.map +1 -0
  127. package/dist/lib/link.js +17 -0
  128. package/dist/lib/link.js.map +1 -0
  129. package/dist/lib/meta-data.d.ts +56 -0
  130. package/dist/lib/meta-data.d.ts.map +1 -0
  131. package/dist/lib/open-graph.d.ts +143 -0
  132. package/dist/lib/open-graph.d.ts.map +1 -0
  133. package/dist/lib/pagination.d.ts +27 -0
  134. package/dist/lib/pagination.d.ts.map +1 -0
  135. package/dist/lib/pagination.js +41 -0
  136. package/dist/lib/pagination.js.map +1 -0
  137. package/dist/lib/route.d.ts +17 -0
  138. package/dist/lib/route.d.ts.map +1 -0
  139. package/dist/{route.js → lib/route.js} +10 -4
  140. package/dist/lib/route.js.map +1 -0
  141. package/dist/lib/store.d.ts +27 -0
  142. package/dist/lib/store.d.ts.map +1 -0
  143. package/dist/lib/store.js +50 -0
  144. package/dist/lib/store.js.map +1 -0
  145. package/dist/lib/structured-data.d.ts +9 -0
  146. package/dist/lib/structured-data.d.ts.map +1 -0
  147. package/dist/lib/twitter-card.d.ts +43 -0
  148. package/dist/lib/twitter-card.d.ts.map +1 -0
  149. package/dist/lib/utils.d.ts +13 -0
  150. package/dist/lib/utils.d.ts.map +1 -0
  151. package/dist/lib/utils.js +36 -0
  152. package/dist/lib/utils.js.map +1 -0
  153. package/dist/mock.d.ts +127 -0
  154. package/dist/mock.d.ts.map +1 -0
  155. package/dist/node_modules/@selderee/plugin-htmlparser2/lib/hp2-builder.js +76 -0
  156. package/dist/node_modules/@selderee/plugin-htmlparser2/lib/hp2-builder.js.map +1 -0
  157. package/dist/node_modules/deepmerge/dist/cjs.js +94 -0
  158. package/dist/node_modules/deepmerge/dist/cjs.js.map +1 -0
  159. package/dist/node_modules/dom-serializer/lib/esm/foreignNames.js +105 -0
  160. package/dist/node_modules/dom-serializer/lib/esm/foreignNames.js.map +1 -0
  161. package/dist/node_modules/dom-serializer/lib/esm/index.js +141 -0
  162. package/dist/node_modules/dom-serializer/lib/esm/index.js.map +1 -0
  163. package/dist/node_modules/domelementtype/lib/esm/index.js +53 -0
  164. package/dist/node_modules/domelementtype/lib/esm/index.js.map +1 -0
  165. package/dist/node_modules/domhandler/lib/esm/index.js +131 -0
  166. package/dist/node_modules/domhandler/lib/esm/index.js.map +1 -0
  167. package/dist/node_modules/domhandler/lib/esm/node.js +308 -0
  168. package/dist/node_modules/domhandler/lib/esm/node.js.map +1 -0
  169. package/dist/node_modules/entities/lib/esm/decode.js +364 -0
  170. package/dist/node_modules/entities/lib/esm/decode.js.map +1 -0
  171. package/dist/node_modules/entities/lib/esm/decode_codepoint.js +59 -0
  172. package/dist/node_modules/entities/lib/esm/decode_codepoint.js.map +1 -0
  173. package/dist/node_modules/entities/lib/esm/escape.js +93 -0
  174. package/dist/node_modules/entities/lib/esm/escape.js.map +1 -0
  175. package/dist/node_modules/entities/lib/esm/generated/decode-data-html.js +6 -0
  176. package/dist/node_modules/entities/lib/esm/generated/decode-data-html.js.map +1 -0
  177. package/dist/node_modules/entities/lib/esm/generated/decode-data-xml.js +6 -0
  178. package/dist/node_modules/entities/lib/esm/generated/decode-data-xml.js.map +1 -0
  179. package/dist/node_modules/html-to-text/lib/html-to-text.js +1828 -0
  180. package/dist/node_modules/html-to-text/lib/html-to-text.js.map +1 -0
  181. package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/Parser.js +435 -0
  182. package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/Parser.js.map +1 -0
  183. package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/Tokenizer.js +739 -0
  184. package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/Tokenizer.js.map +1 -0
  185. package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/index.js +20 -0
  186. package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/index.js.map +1 -0
  187. package/dist/node_modules/leac/lib/leac.js +101 -0
  188. package/dist/node_modules/leac/lib/leac.js.map +1 -0
  189. package/dist/node_modules/parseley/lib/parseley.js +314 -0
  190. package/dist/node_modules/parseley/lib/parseley.js.map +1 -0
  191. package/dist/node_modules/peberminta/lib/core.js +149 -0
  192. package/dist/node_modules/peberminta/lib/core.js.map +1 -0
  193. package/dist/node_modules/selderee/lib/selderee.js +325 -0
  194. package/dist/node_modules/selderee/lib/selderee.js.map +1 -0
  195. package/dist/proxy/protected-route.d.ts +9 -0
  196. package/dist/proxy/protected-route.d.ts.map +1 -0
  197. package/dist/proxy/protected-route.js +45 -0
  198. package/dist/proxy/protected-route.js.map +1 -0
  199. package/dist/proxy/proxy.d.ts +31 -0
  200. package/dist/proxy/proxy.d.ts.map +1 -0
  201. package/dist/proxy/proxy.js +64 -0
  202. package/dist/proxy/proxy.js.map +1 -0
  203. package/dist/proxy/route-auto-detection.d.ts +12 -0
  204. package/dist/proxy/route-auto-detection.d.ts.map +1 -0
  205. package/dist/proxy/route-auto-detection.js +94 -0
  206. package/dist/proxy/route-auto-detection.js.map +1 -0
  207. package/dist/proxy/route-proxy.d.ts +36 -0
  208. package/dist/proxy/route-proxy.d.ts.map +1 -0
  209. package/dist/proxy/route-proxy.js +120 -0
  210. package/dist/proxy/route-proxy.js.map +1 -0
  211. package/dist/server/context.d.ts +30 -0
  212. package/dist/server/context.d.ts.map +1 -0
  213. package/dist/server/context.js +124 -0
  214. package/dist/server/context.js.map +1 -0
  215. package/dist/server/handlers/auth.handler.d.ts +10 -0
  216. package/dist/server/handlers/auth.handler.d.ts.map +1 -0
  217. package/dist/server/handlers/auth.handler.js +31 -0
  218. package/dist/server/handlers/auth.handler.js.map +1 -0
  219. package/dist/server/handlers/captions.handler.d.ts +10 -0
  220. package/dist/server/handlers/captions.handler.d.ts.map +1 -0
  221. package/dist/server/handlers/captions.handler.js +35 -0
  222. package/dist/server/handlers/captions.handler.js.map +1 -0
  223. package/dist/server/handlers/collection.handler.d.ts +36 -0
  224. package/dist/server/handlers/collection.handler.d.ts.map +1 -0
  225. package/dist/server/handlers/collection.handler.js +167 -0
  226. package/dist/server/handlers/collection.handler.js.map +1 -0
  227. package/dist/server/handlers/error-response.js +28 -0
  228. package/dist/server/handlers/error-response.js.map +1 -0
  229. package/dist/server/handlers/index.handler.d.ts +9 -0
  230. package/dist/server/handlers/index.handler.d.ts.map +1 -0
  231. package/dist/server/handlers/index.handler.js +146 -0
  232. package/dist/server/handlers/index.handler.js.map +1 -0
  233. package/dist/server/handlers/preview.handler.d.ts +9 -0
  234. package/dist/server/handlers/preview.handler.d.ts.map +1 -0
  235. package/dist/server/handlers/preview.handler.js +18 -0
  236. package/dist/server/handlers/preview.handler.js.map +1 -0
  237. package/dist/server/handlers/registry.handler.d.ts +16 -0
  238. package/dist/server/handlers/registry.handler.d.ts.map +1 -0
  239. package/dist/server/handlers/registry.handler.js +265 -0
  240. package/dist/server/handlers/registry.handler.js.map +1 -0
  241. package/dist/server/handlers/route.handler.d.ts +20 -0
  242. package/dist/server/handlers/route.handler.d.ts.map +1 -0
  243. package/dist/server/handlers/route.handler.js +131 -0
  244. package/dist/server/handlers/route.handler.js.map +1 -0
  245. package/dist/server/handlers/sitemap.handler.d.ts +30 -0
  246. package/dist/server/handlers/sitemap.handler.d.ts.map +1 -0
  247. package/dist/server/handlers/sitemap.handler.js +341 -0
  248. package/dist/server/handlers/sitemap.handler.js.map +1 -0
  249. package/dist/server/handlers/static-params.handler.d.ts +24 -0
  250. package/dist/server/handlers/static-params.handler.d.ts.map +1 -0
  251. package/dist/server/handlers/static-params.handler.js +61 -0
  252. package/dist/server/handlers/static-params.handler.js.map +1 -0
  253. package/dist/server/handlers/vars.handler.d.ts +10 -0
  254. package/dist/server/handlers/vars.handler.d.ts.map +1 -0
  255. package/dist/server/handlers/vars.handler.js +160 -0
  256. package/dist/server/handlers/vars.handler.js.map +1 -0
  257. package/dist/server/layout.js +110 -0
  258. package/dist/server/layout.js.map +1 -0
  259. package/dist/server/lazy.d.ts +11 -0
  260. package/dist/server/lazy.d.ts.map +1 -0
  261. package/dist/server/lazy.js +36 -0
  262. package/dist/server/lazy.js.map +1 -0
  263. package/dist/server/local-api.d.ts +9 -0
  264. package/dist/server/local-api.d.ts.map +1 -0
  265. package/dist/server/local-api.js +66 -0
  266. package/dist/server/local-api.js.map +1 -0
  267. package/dist/server/metadata.d.ts +21 -0
  268. package/dist/server/metadata.d.ts.map +1 -0
  269. package/dist/server/metadata.js +24 -0
  270. package/dist/server/metadata.js.map +1 -0
  271. package/dist/server/mixer-payload.d.ts +63 -0
  272. package/dist/server/mixer-payload.d.ts.map +1 -0
  273. package/dist/server/mixer.d.ts +214 -0
  274. package/dist/server/mixer.d.ts.map +1 -0
  275. package/dist/server/mixer.js +481 -0
  276. package/dist/server/mixer.js.map +1 -0
  277. package/dist/server/page.d.ts +22 -0
  278. package/dist/server/page.d.ts.map +1 -0
  279. package/dist/server/page.js +68 -0
  280. package/dist/server/page.js.map +1 -0
  281. package/dist/server/utils.d.ts +12 -0
  282. package/dist/server/utils.d.ts.map +1 -0
  283. package/dist/{utils2.js → server/utils.js} +7 -5
  284. package/dist/server/utils.js.map +1 -0
  285. package/dist/server/utmz.d.ts +9 -0
  286. package/dist/server/utmz.d.ts.map +1 -0
  287. package/dist/server/utmz.js +14 -0
  288. package/dist/server/utmz.js.map +1 -0
  289. package/dist/types.d.ts +6 -61
  290. package/dist/types.d.ts.map +1 -1
  291. package/package.json +11 -11
  292. package/dist/config.client.js +0 -2
  293. package/dist/config.edge.js +0 -2
  294. package/dist/config.server.js +0 -2
  295. package/dist/exports/client.d.ts.map +0 -1
  296. package/dist/exports/client.js.map +0 -1
  297. package/dist/exports/instrumentation.d.ts.map +0 -1
  298. package/dist/exports/instrumentation.js.map +0 -1
  299. package/dist/exports/proxy.d.ts.map +0 -1
  300. package/dist/exports/proxy.js.map +0 -1
  301. package/dist/exports/server.d.ts.map +0 -1
  302. package/dist/exports/server.js.map +0 -1
  303. package/dist/http.js.map +0 -1
  304. package/dist/index.d.ts.map +0 -1
  305. package/dist/index.js.map +0 -1
  306. package/dist/index2.d.ts +0 -4
  307. package/dist/route.js.map +0 -1
  308. package/dist/store.js +0 -73
  309. package/dist/store.js.map +0 -1
  310. package/dist/types2.d.ts.map +0 -1
  311. package/dist/utils.js +0 -78
  312. package/dist/utils.js.map +0 -1
  313. package/dist/utils2.js.map +0 -1
@@ -0,0 +1,481 @@
1
+ import { guest } from "../lib/const.js";
2
+ import { collectRoutes, defaultLocale, defaultMarket, isDevelopment, isObject } from "@websolutespa/bom-core";
3
+ import { cache } from "react";
4
+ import { InMemoryCache } from "@websolutespa/payload-plugin-bowl";
5
+ import { getPayload } from "payload";
6
+
7
+ //#region src/server/mixer.ts
8
+ const USE_CACHE = true;
9
+ const getRouteCache = () => {
10
+ let cache$1 = globalThis._route;
11
+ if (!cache$1) {
12
+ cache$1 = new InMemoryCache();
13
+ globalThis._route = cache$1;
14
+ }
15
+ return cache$1;
16
+ };
17
+ const getMixerCache = () => {
18
+ let cache$1 = globalThis._mixer;
19
+ if (!cache$1) {
20
+ cache$1 = new InMemoryCache();
21
+ globalThis._mixer = cache$1;
22
+ }
23
+ return cache$1;
24
+ };
25
+ function getCacheKey({ market = "all", locale = "all", user = guest, draft = "false" }) {
26
+ const roles = user?.roles || ["guest"];
27
+ const tenants = "tenants" in user && Array.isArray(user.tenants) ? user.tenants.map((x) => isObject(x) ? x.id : x) : [];
28
+ roles.sort();
29
+ tenants.sort();
30
+ const keys = [
31
+ market,
32
+ locale,
33
+ draft === "false" ? "published" : "draft",
34
+ ...roles,
35
+ ...tenants
36
+ ];
37
+ const key = `context-${keys.join("-")}`;
38
+ return key;
39
+ }
40
+ async function getContext() {
41
+ let context = globalThis._context;
42
+ if (!context) {
43
+ context = {
44
+ payload: void 0,
45
+ context: void 0
46
+ };
47
+ globalThis._context = context;
48
+ }
49
+ return context;
50
+ }
51
+ async function setContext(data) {
52
+ const context = await getContext();
53
+ if (data.payload) context.payload = data.payload;
54
+ if (data.context) context.context = data.context;
55
+ }
56
+ function getSearchParams(request) {
57
+ const searchParams = request.nextUrl.searchParams;
58
+ const params = Object.fromEntries(searchParams.entries());
59
+ return {
60
+ market: params.market || defaultMarket,
61
+ locale: params.locale || defaultLocale,
62
+ defaultMarket,
63
+ defaultLocale,
64
+ params,
65
+ searchParams: request.nextUrl.searchParams
66
+ };
67
+ }
68
+ const getPayloadInstance = cache(async (props) => await getPayload(props));
69
+ function getOptions({ locale = "all", user = guest, draft = false }) {
70
+ const localized = {
71
+ locale,
72
+ fallbackLocale: defaultLocale,
73
+ draft,
74
+ depth: 0,
75
+ pagination: false,
76
+ limit: 1e4,
77
+ user,
78
+ overrideAccess: false
79
+ };
80
+ const unlocalized = {
81
+ locale: "all",
82
+ fallbackLocale: defaultLocale,
83
+ draft,
84
+ depth: 0,
85
+ pagination: false,
86
+ limit: 1e4,
87
+ user,
88
+ overrideAccess: false
89
+ };
90
+ return {
91
+ localized,
92
+ unlocalized
93
+ };
94
+ }
95
+ async function getRoutes$1({ payload, market = "all", locale = "all", user = guest, draft = false }) {
96
+ const cacheKey = getCacheKey({
97
+ market,
98
+ locale,
99
+ user,
100
+ draft: draft ? "true" : "false"
101
+ });
102
+ const routeCache = getRouteCache();
103
+ if (routeCache.has(cacheKey)) {
104
+ console.log("getRoutes from cache", cacheKey);
105
+ return routeCache.get(cacheKey);
106
+ }
107
+ let routes = [];
108
+ if (!user) return routes;
109
+ const { localized, unlocalized } = getOptions({
110
+ locale,
111
+ user,
112
+ draft
113
+ });
114
+ const marketRequest = await payload.find({
115
+ ...localized,
116
+ collection: "market",
117
+ where: { isActive: { equals: true } }
118
+ });
119
+ const markets = marketRequest.docs;
120
+ const localeResult = await payload.findGlobal({
121
+ ...localized,
122
+ slug: "locale"
123
+ });
124
+ const locales = localeResult.items.filter((x) => x.isActive);
125
+ if (locales.length > 0 && markets.length > 0) {
126
+ const pageCollections = payload.config.collections.filter((x) => {
127
+ return x.fields.find((x$1) => "name" in x$1 && x$1.name === "slug");
128
+ });
129
+ const keys = pageCollections.map((x) => x.slug);
130
+ const pages = Object.fromEntries(keys.map((x) => [x, []]));
131
+ for (const key of keys) {
132
+ const pageResult = await payload.find({
133
+ ...unlocalized,
134
+ collection: key
135
+ });
136
+ pages[key] = pageResult.docs;
137
+ }
138
+ const categoryRequest = await payload.find({
139
+ ...unlocalized,
140
+ collection: "category",
141
+ depth: 1
142
+ });
143
+ const categories = categoryRequest.docs;
144
+ const mediaRequest = await payload.find({
145
+ ...unlocalized,
146
+ collection: "media",
147
+ depth: 1
148
+ });
149
+ const medias = mediaRequest.docs;
150
+ routes = collectRoutes(pages, categories, markets, locales, medias);
151
+ }
152
+ routeCache.set(cacheKey, routes);
153
+ return routes;
154
+ }
155
+ async function getMixerContext({ payload, market, locale, user = guest, draft = false }) {
156
+ const cacheKey = getCacheKey({
157
+ market,
158
+ locale,
159
+ user,
160
+ draft: draft ? "true" : "false"
161
+ });
162
+ const mixerCache = getMixerCache();
163
+ if (mixerCache.has(cacheKey) && USE_CACHE) {
164
+ console.log("getContext from cache", cacheKey);
165
+ return mixerCache.get(cacheKey);
166
+ }
167
+ const { localized } = getOptions({
168
+ locale,
169
+ user,
170
+ draft
171
+ });
172
+ const localeResult = await payload.findGlobal({
173
+ ...localized,
174
+ slug: "locale"
175
+ });
176
+ const locales = localeResult.items.filter((x) => x.isActive);
177
+ const localeIds = locales.map((x) => x.id);
178
+ const marketRequest = await payload.find({
179
+ ...localized,
180
+ collection: "market"
181
+ });
182
+ const marketItems = marketRequest.docs;
183
+ const markets = marketItems.filter((x) => x.isActive);
184
+ const marketIds = markets.map((x) => x.id);
185
+ const categoryRequest = await payload.find({
186
+ ...localized,
187
+ collection: "category",
188
+ depth: 2
189
+ });
190
+ const categories = categoryRequest.docs;
191
+ const routes = await getRoutes$1({
192
+ payload,
193
+ market,
194
+ locale,
195
+ user,
196
+ draft
197
+ });
198
+ const currentRoutes = filterRoutes(routes, market, locale);
199
+ const richText = false;
200
+ const context = {
201
+ locale,
202
+ localeIds,
203
+ locales,
204
+ market,
205
+ marketIds,
206
+ markets,
207
+ routes,
208
+ currentRoutes,
209
+ categories,
210
+ richText
211
+ };
212
+ mixerCache.set(cacheKey, context);
213
+ await setContext({ context });
214
+ return context;
215
+ }
216
+ /**
217
+
218
+ * Runtime (request-time) payload accessor.
219
+
220
+ *
221
+
222
+ * By default, operates as the guest user for static generation. For auth:
223
+
224
+ * call getHeaders() directly in your page/route/layout, then pass it here.
225
+
226
+ *
227
+
228
+ * Example:
229
+
230
+ * const headers = await getHeaders();
231
+
232
+ * const { payload, user, getContext } = await getPayload({ config, headers });
233
+
234
+ */
235
+ async function getPayload$1({ config, headers }) {
236
+ const payload = await getPayload({ config });
237
+ await setContext({ payload });
238
+ let user = guest;
239
+ if (headers) try {
240
+ const auth = await payload.auth({
241
+ headers,
242
+ canSetHeaders: false
243
+ });
244
+ if (auth.user) user = auth.user;
245
+ } catch (error) {
246
+ console.log("getPayload.error", error);
247
+ }
248
+ const draft = false;
249
+ return {
250
+ payload,
251
+ user,
252
+ getContext: (market, locale) => getMixerContext({
253
+ payload,
254
+ market,
255
+ locale,
256
+ user,
257
+ draft
258
+ })
259
+ };
260
+ }
261
+ function filterRoutes(routes, market, locale) {
262
+ market = market === "all" ? defaultMarket : market;
263
+ locale = locale === "all" ? defaultLocale : locale;
264
+ return routes.filter((x) => x.market === market && x.locale === locale);
265
+ }
266
+ function getAuthHeaders(token) {
267
+ if (token) return new Headers({ Authorization: `JWT ${token.value}` });
268
+ else return new Headers({ Authorization: `users API-Key ${process.env.STORE_API_KEY}` });
269
+ }
270
+ /**
271
+
272
+ * Produces the common option block shared across all payload.find / payload.findGlobal calls.
273
+
274
+ * For payload.find, add pagination: false and limit: 10000 at the call site.
275
+
276
+ * For payload.findByID, spread directly — extra find-only fields are ignored.
277
+
278
+ */
279
+ function buildBaseOptions(user, locale, draft) {
280
+ return {
281
+ locale,
282
+ fallbackLocale: defaultLocale,
283
+ draft: draft ?? false,
284
+ depth: 0,
285
+ user,
286
+ overrideAccess: false
287
+ };
288
+ }
289
+ /**
290
+
291
+ * Payload proxy example
292
+
293
+ *
294
+
295
+ *
296
+
297
+ * import type { Payload, PayloadRequest } from '../types/index.js'
298
+
299
+
300
+
301
+ import { commitTransaction } from './commitTransaction.js'
302
+
303
+ import { initTransaction } from './initTransaction.js'
304
+
305
+ import { killTransaction } from './killTransaction.js'
306
+
307
+
308
+
309
+ const localOperations = [
310
+
311
+ 'count',
312
+
313
+ 'countGlobalVersions',
314
+
315
+ 'countVersions',
316
+
317
+ 'create',
318
+
319
+ 'delete',
320
+
321
+ 'duplicate',
322
+
323
+ 'find',
324
+
325
+ 'findByID',
326
+
327
+ 'delete',
328
+
329
+ 'duplicate',
330
+
331
+ 'find',
332
+
333
+ 'findByID',
334
+
335
+ 'findGlobal',
336
+
337
+ 'findGlobalVersionByID',
338
+
339
+ 'findGlobalVersions',
340
+
341
+ 'findVersionByID',
342
+
343
+ 'findVersionByID',
344
+
345
+ 'login',
346
+
347
+ 'update',
348
+
349
+ 'updateGlobal',
350
+
351
+ 'restoreVersion',
352
+
353
+ 'restoreGlobalVersion',
354
+
355
+ ] satisfies (keyof Payload)[]
356
+
357
+
358
+
359
+ type LocalOperation = (typeof localOperations)[number]
360
+
361
+
362
+
363
+ const isLocalOperation = (key: string): key is LocalOperation => {
364
+
365
+ return localOperations.includes(key as LocalOperation)
366
+
367
+ }
368
+
369
+
370
+
371
+ export const withTransaction = async <T>(
372
+
373
+ payload: Payload,
374
+
375
+ callback: (transaction: Payload) => Promise<T>,
376
+
377
+ ) => {
378
+
379
+ const transactionReq = { payload } as PayloadRequest
380
+
381
+ await initTransaction(transactionReq)
382
+
383
+
384
+
385
+ const proxy = new Proxy(payload, {
386
+
387
+ get(target, property: keyof Payload, receiver) {
388
+
389
+ if (isLocalOperation(property)) {
390
+
391
+ const operation = Reflect.get(target, property, receiver)
392
+
393
+
394
+
395
+ return function (options) {
396
+
397
+ let req: Partial<PayloadRequest> = options.req
398
+
399
+
400
+
401
+ if (!req) {
402
+
403
+ req = {}
404
+
405
+ }
406
+
407
+
408
+
409
+ if (!req.transactionID) {
410
+
411
+ req = { ...req, transactionID: transactionReq.transactionID }
412
+
413
+ }
414
+
415
+
416
+
417
+ return (operation as (...args: unknown[]) => void)({
418
+
419
+ ...options,
420
+
421
+ req,
422
+
423
+ })
424
+
425
+ }
426
+
427
+ }
428
+
429
+
430
+
431
+ return Reflect.get(target, property, receiver)
432
+
433
+ },
434
+
435
+ })
436
+
437
+
438
+
439
+ try {
440
+
441
+ const result = await callback(proxy)
442
+
443
+ await commitTransaction(transactionReq)
444
+
445
+ return result
446
+
447
+ } catch (e) {
448
+
449
+ await killTransaction(transactionReq)
450
+
451
+ throw e
452
+
453
+ }
454
+
455
+ }
456
+
457
+
458
+
459
+ // -----------------
460
+
461
+
462
+
463
+ const { one, two } = await withTransaction(payload, async (transaction) => {
464
+
465
+ const one = await transaction.create({ collection: 'posts', data: { title: 'one' } })
466
+
467
+ const two = await transaction.create({ collection: 'posts', data: { title: 'two' } })
468
+
469
+
470
+
471
+ return { one, two }
472
+
473
+ })
474
+
475
+
476
+
477
+ */
478
+
479
+ //#endregion
480
+ export { buildBaseOptions, filterRoutes, getAuthHeaders, getCacheKey, getContext, getMixerContext, getOptions, getPayload$1 as getPayload, getPayloadInstance, getRoutes$1 as getRoutes, getSearchParams, setContext };
481
+ //# sourceMappingURL=mixer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mixer.js","names":["cache: InMemoryCache<IRoute[]> | undefined","cache","cache: InMemoryCache<MixerContext> | undefined","x: any","context: IContext | undefined","data: Partial<IContext>","request: NextRequest","props: { config: SanitizedConfig | Promise<SanitizedConfig> }","getPayload_","localized: BaseOptions","unlocalized: BaseOptions","getRoutes","routes: IRoute[]","x","pages: Record<string, any[]>","context: MixerContext","getPayload","user: User & Config['user']","market: string","locale: string","token: { value: string } | undefined","user: any","draft?: boolean"],"sources":["../../src/server/mixer.ts"],"sourcesContent":["import { collectRoutes, defaultLocale, defaultMarket, ICategory, ILocale, IMarket, IMedia, IRoute, isDevelopment, isObject } from '@websolutespa/bom-core';\r\nimport type { Config, User } from '@websolutespa/payload-plugin-bowl';\r\nimport { InMemoryCache } from '@websolutespa/payload-plugin-bowl';\r\nimport { NextRequest } from 'next/server';\r\nimport { BasePayload, getPayload as getPayload_, SanitizedConfig, TypedFallbackLocale, TypedLocale } from 'payload';\r\nimport { cache } from 'react';\r\nimport { guest } from '../lib/const';\r\nimport type { BaseOptions, IContext, MixerContext, ReadonlyHeaders } from '../types';\r\nimport type { MixerPayload } from './mixer-payload';\r\n\r\n// !!! todo check when to use in memory cache\r\n\r\nconst USE_CACHE = true || !(isDevelopment);\r\n\r\nconst getRouteCache = (): InMemoryCache<IRoute[]> => {\r\n let cache: InMemoryCache<IRoute[]> | undefined = (globalThis as any)._route;\r\n if (!cache) {\r\n cache = new InMemoryCache<IRoute[]>();\r\n (globalThis as any)._route = cache;\r\n }\r\n return cache;\r\n};\r\n\r\nconst getMixerCache = (): InMemoryCache<MixerContext> => {\r\n let cache: InMemoryCache<MixerContext> | undefined = (globalThis as any)._mixer;\r\n if (!cache) {\r\n cache = new InMemoryCache<MixerContext>();\r\n (globalThis as any)._mixer = cache;\r\n }\r\n return cache;\r\n};\r\n\r\nexport function getCacheKey({\r\n market = 'all',\r\n locale = 'all',\r\n user = guest,\r\n draft = 'false',\r\n}: {\r\n market?: string;\r\n locale?: string;\r\n user?: User & Config['user'];\r\n draft?: string;\r\n}) {\r\n const roles = (user?.roles || ['guest']) as string[];\r\n const tenants = ('tenants' in user && Array.isArray(user.tenants) ?\r\n user.tenants.map((x: any) => isObject(x) ? x.id : x) :\r\n []\r\n ) as string[];\r\n roles.sort();\r\n tenants.sort();\r\n const keys = [market, locale, draft === 'false' ? 'published' : 'draft', ...roles, ...tenants];\r\n const key = `context-${keys.join('-')}`;\r\n return key;\r\n}\r\n\r\nexport async function getContext() {\r\n let context: IContext | undefined = (globalThis as any)._context;\r\n if (!context) {\r\n context = {\r\n payload: undefined,\r\n context: undefined,\r\n } as unknown as IContext;\r\n (globalThis as any)._context = context;\r\n }\r\n return context;\r\n}\r\n\r\nexport async function setContext(data: Partial<IContext>) {\r\n const context = await getContext();\r\n if (data.payload) {\r\n context.payload = data.payload;\r\n }\r\n if (data.context) {\r\n context.context = data.context;\r\n }\r\n}\r\n\r\nexport function getSearchParams(request: NextRequest) {\r\n const searchParams = request.nextUrl.searchParams;\r\n const params = Object.fromEntries(searchParams.entries());\r\n return {\r\n market: params.market || defaultMarket,\r\n locale: params.locale || defaultLocale,\r\n defaultMarket,\r\n defaultLocale,\r\n params,\r\n searchParams: request.nextUrl.searchParams,\r\n };\r\n}\r\n\r\nexport const getPayloadInstance = cache(\r\n async (props: { config: SanitizedConfig | Promise<SanitizedConfig> }) => await getPayload_(props)\r\n);\r\n\r\nexport function getOptions({\r\n locale = 'all',\r\n user = guest,\r\n draft = false,\r\n}: {\r\n locale?: string;\r\n user?: User & Config['user'];\r\n draft?: boolean;\r\n}) {\r\n const localized: BaseOptions = {\r\n locale: locale as TypedLocale,\r\n fallbackLocale: defaultLocale as TypedLocale,\r\n draft,\r\n depth: 0,\r\n pagination: false,\r\n limit: 10000,\r\n user,\r\n overrideAccess: false,\r\n };\r\n const unlocalized: BaseOptions = {\r\n locale: 'all',\r\n fallbackLocale: defaultLocale as TypedLocale,\r\n draft,\r\n depth: 0,\r\n pagination: false,\r\n limit: 10000,\r\n user,\r\n overrideAccess: false,\r\n };\r\n return { localized, unlocalized };\r\n}\r\n\r\nexport async function getRoutes({\r\n payload,\r\n market = 'all',\r\n locale = 'all',\r\n user = guest,\r\n draft = false,\r\n}: {\r\n payload: BasePayload;\r\n market?: string;\r\n locale?: string;\r\n user?: User & Config['user'];\r\n draft?: boolean;\r\n}): Promise<IRoute[]> {\r\n const cacheKey = getCacheKey({ market, locale, user, draft: draft ? 'true' : 'false' });\r\n\r\n const routeCache = getRouteCache();\r\n if (USE_CACHE && routeCache.has(cacheKey)) {\r\n console.log('getRoutes from cache', cacheKey);\r\n return routeCache.get(cacheKey);\r\n }\r\n\r\n let routes: IRoute[] = [];\r\n if (!user) {\r\n return routes;\r\n }\r\n\r\n const { localized, unlocalized } = getOptions({ locale, user, draft });\r\n\r\n const marketRequest = await payload.find({\r\n ...localized,\r\n collection: 'market',\r\n where: { isActive: { equals: true } },\r\n });\r\n const markets = marketRequest.docs;\r\n\r\n const localeResult = await payload.findGlobal({\r\n ...localized,\r\n slug: 'locale',\r\n }) as { items: ILocale[] };\r\n const locales = localeResult.items.filter(x => x.isActive);\r\n\r\n if (locales.length > 0 && markets.length > 0) {\r\n const pageCollections = payload.config.collections.filter(x => {\r\n return x.fields.find(x => 'name' in x && x.name === 'slug');\r\n });\r\n const keys = pageCollections.map(x => x.slug);\r\n // console.log(payload.config.collections.find(x => x.slug === 'homepage'));\r\n // const keys = Object.keys(store.pages) as CollectionSlug[];\r\n const pages: Record<string, any[]> = Object.fromEntries(keys.map(x => [x, []]));\r\n for (const key of keys) {\r\n const pageResult = await payload.find({ ...unlocalized, collection: key });\r\n pages[key] = pageResult.docs;\r\n }\r\n const categoryRequest = await payload.find({\r\n ...unlocalized,\r\n collection: 'category',\r\n depth: 1,\r\n });\r\n const categories = categoryRequest.docs;\r\n const mediaRequest = await payload.find({\r\n ...unlocalized,\r\n collection: 'media',\r\n depth: 1,\r\n });\r\n const medias = mediaRequest.docs;\r\n routes = collectRoutes(\r\n pages,\r\n categories as unknown as ICategory[],\r\n markets as unknown as IMarket[],\r\n locales,\r\n medias as unknown as IMedia[]\r\n );\r\n }\r\n routeCache.set(cacheKey, routes);\r\n return routes;\r\n}\r\n\r\nexport async function getMixerContext({\r\n payload,\r\n market,\r\n locale,\r\n user = guest,\r\n draft = false,\r\n}: {\r\n payload: BasePayload;\r\n market: string;\r\n locale: string;\r\n user?: User & Config['user'];\r\n draft?: boolean;\r\n}): Promise<MixerContext> {\r\n const cacheKey = getCacheKey({ market, locale, user, draft: draft ? 'true' : 'false' });\r\n\r\n const mixerCache = getMixerCache();\r\n if (mixerCache.has(cacheKey) && USE_CACHE) {\r\n console.log('getContext from cache', cacheKey);\r\n return mixerCache.get(cacheKey);\r\n }\r\n\r\n const { localized } = getOptions({ locale, user, draft });\r\n const localeResult = await payload.findGlobal({\r\n ...localized,\r\n slug: 'locale',\r\n }) as { items: ILocale[] };\r\n const locales = localeResult.items.filter(x => x.isActive) as unknown as ILocale[];\r\n const localeIds = locales.map(x => x.id) as string[];\r\n\r\n const marketRequest = await payload.find({\r\n ...localized,\r\n collection: 'market',\r\n });\r\n const marketItems = marketRequest.docs;\r\n const markets = marketItems.filter(x => x.isActive) as unknown as IMarket[];\r\n const marketIds = markets.map(x => x.id);\r\n\r\n const categoryRequest = await payload.find({\r\n ...localized,\r\n collection: 'category',\r\n depth: 2,\r\n });\r\n const categories = categoryRequest.docs;\r\n\r\n const routes = await getRoutes({ payload, market, locale, user, draft });\r\n const currentRoutes = filterRoutes(routes, market, locale);\r\n\r\n const richText = false;\r\n\r\n const context: MixerContext = {\r\n locale,\r\n localeIds,\r\n locales,\r\n market,\r\n marketIds,\r\n markets,\r\n routes,\r\n currentRoutes,\r\n categories: categories as unknown as MixerContext['categories'],\r\n richText,\r\n };\r\n\r\n mixerCache.set(cacheKey, context);\r\n await setContext({ context });\r\n\r\n return context;\r\n}\r\n\r\n/**\r\n * Runtime (request-time) payload accessor.\r\n *\r\n * By default, operates as the guest user for static generation. For auth:\r\n * call getHeaders() directly in your page/route/layout, then pass it here.\r\n *\r\n * Example:\r\n * const headers = await getHeaders();\r\n * const { payload, user, getContext } = await getPayload({ config, headers });\r\n */\r\nexport async function getPayload({\r\n config,\r\n headers,\r\n}: {\r\n config: Promise<SanitizedConfig>;\r\n headers?: ReadonlyHeaders;\r\n}) {\r\n const payload = await getPayload_({ config });\r\n await setContext({ payload: payload as MixerPayload });\r\n\r\n let user: User & Config['user'] = guest;\r\n if (headers) {\r\n try {\r\n const auth = await payload.auth({ headers, canSetHeaders: false });\r\n if (auth.user) {\r\n user = auth.user as typeof user;\r\n }\r\n // console.log('getPayload', user, token);\r\n } catch (error) {\r\n console.log('getPayload.error', error);\r\n }\r\n }\r\n\r\n const draft = false;\r\n\r\n return {\r\n payload: payload as MixerPayload,\r\n user,\r\n getContext: (market: string, locale: string) => getMixerContext({ payload, market, locale, user, draft }),\r\n };\r\n}\r\n\r\nexport function filterRoutes(routes: IRoute[], market: string, locale: string): IRoute[] {\r\n market = market === 'all' ? defaultMarket : market;\r\n locale = locale === 'all' ? defaultLocale : locale;\r\n return routes.filter(x => x.market === market && x.locale === locale);\r\n}\r\n\r\nexport function getAuthHeaders(token: { value: string } | undefined): Headers {\r\n if (token) {\r\n return new Headers({ Authorization: `JWT ${token.value}` });\r\n } else {\r\n return new Headers({ Authorization: `users API-Key ${process.env.STORE_API_KEY}` });\r\n }\r\n}\r\n\r\n/**\r\n * Produces the common option block shared across all payload.find / payload.findGlobal calls.\r\n * For payload.find, add pagination: false and limit: 10000 at the call site.\r\n * For payload.findByID, spread directly — extra find-only fields are ignored.\r\n */\r\nexport function buildBaseOptions(user: any, locale: string, draft?: boolean) {\r\n return {\r\n locale: locale as TypedLocale,\r\n fallbackLocale: defaultLocale as TypedFallbackLocale,\r\n draft: draft ?? false,\r\n depth: 0,\r\n user,\r\n overrideAccess: false,\r\n };\r\n}\r\n\r\n\r\n/**\r\n * Payload proxy example\r\n *\r\n *\r\n * import type { Payload, PayloadRequest } from '../types/index.js'\r\n\r\nimport { commitTransaction } from './commitTransaction.js'\r\nimport { initTransaction } from './initTransaction.js'\r\nimport { killTransaction } from './killTransaction.js'\r\n\r\nconst localOperations = [\r\n 'count',\r\n 'countGlobalVersions',\r\n 'countVersions',\r\n 'create',\r\n 'delete',\r\n 'duplicate',\r\n 'find',\r\n 'findByID',\r\n 'delete',\r\n 'duplicate',\r\n 'find',\r\n 'findByID',\r\n 'findGlobal',\r\n 'findGlobalVersionByID',\r\n 'findGlobalVersions',\r\n 'findVersionByID',\r\n 'findVersionByID',\r\n 'login',\r\n 'update',\r\n 'updateGlobal',\r\n 'restoreVersion',\r\n 'restoreGlobalVersion',\r\n] satisfies (keyof Payload)[]\r\n\r\ntype LocalOperation = (typeof localOperations)[number]\r\n\r\nconst isLocalOperation = (key: string): key is LocalOperation => {\r\n return localOperations.includes(key as LocalOperation)\r\n}\r\n\r\nexport const withTransaction = async <T>(\r\n payload: Payload,\r\n callback: (transaction: Payload) => Promise<T>,\r\n) => {\r\n const transactionReq = { payload } as PayloadRequest\r\n await initTransaction(transactionReq)\r\n\r\n const proxy = new Proxy(payload, {\r\n get(target, property: keyof Payload, receiver) {\r\n if (isLocalOperation(property)) {\r\n const operation = Reflect.get(target, property, receiver)\r\n\r\n return function (options) {\r\n let req: Partial<PayloadRequest> = options.req\r\n\r\n if (!req) {\r\n req = {}\r\n }\r\n\r\n if (!req.transactionID) {\r\n req = { ...req, transactionID: transactionReq.transactionID }\r\n }\r\n\r\n return (operation as (...args: unknown[]) => void)({\r\n ...options,\r\n req,\r\n })\r\n }\r\n }\r\n\r\n return Reflect.get(target, property, receiver)\r\n },\r\n })\r\n\r\n try {\r\n const result = await callback(proxy)\r\n await commitTransaction(transactionReq)\r\n return result\r\n } catch (e) {\r\n await killTransaction(transactionReq)\r\n throw e\r\n }\r\n}\r\n\r\n// -----------------\r\n\r\nconst { one, two } = await withTransaction(payload, async (transaction) => {\r\n const one = await transaction.create({ collection: 'posts', data: { title: 'one' } })\r\n const two = await transaction.create({ collection: 'posts', data: { title: 'two' } })\r\n\r\n return { one, two }\r\n})\r\n\r\n */\r\n"],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { MixerPayload } from "./mixer-payload.js";
2
+ import { MixerContext, TypedPage } from "../types.js";
3
+ import { User } from "@websolutespa/payload-plugin-bowl";
4
+ import { CollectionSlug } from "payload";
5
+
6
+ //#region src/server/page.d.ts
7
+
8
+ /**
9
+ * Fetches a single page document by ID using Payload local API and assembles
10
+ * the IPage envelope (routes, alternates, breadcrumb, parentRoute).
11
+ *
12
+ * All data required for the envelope comes from mixerContext — no store calls.
13
+ * - routes/alternates : mixerContext.routes filtered by schema+id
14
+ * - segments : getCategorySegments() from bom-core (pure)
15
+ * - breadcrumb : findRouteOfCategory() from bom-core + mixerContext.currentRoutes
16
+ */
17
+ declare function getPage<TSlug extends CollectionSlug>(slug: TSlug, id: string, market: string, locale: string, payload: MixerPayload, user: User, mixerContext: MixerContext, draftMode?: boolean): Promise<TypedPage<TSlug> | undefined>;
18
+ //# sourceMappingURL=page.d.ts.map
19
+
20
+ //#endregion
21
+ export { getPage };
22
+ //# sourceMappingURL=page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.d.ts","names":[],"sources":["../../src/server/page.ts"],"sourcesContent":[],"mappings":";;;;;;;;;AAmBA;;;;;;;AASqB,iBATC,OASD,CAAA,cATuB,cASvB,CAAA,CAAA,IAAA,EARb,KAQa,EAAA,EAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAJV,YAIU,EAAA,IAAA,EAHb,IAGa,EAAA,YAAA,EAFL,YAEK,EAAA,SAAA,CAAA,EAAA,OAAA,CAAA,EAAlB,OAAkB,CAAV,SAAU,CAAA,KAAA,CAAA,GAAA,SAAA,CAAA"}
@@ -0,0 +1,68 @@
1
+ 'use server';
2
+
3
+
4
+ import { buildBreadcrumb } from "../lib/breadcrumb.js";
5
+ import { buildBaseOptions } from "./mixer.js";
6
+ import { getCategorySegments } from "@websolutespa/bom-core";
7
+
8
+ //#region src/server/page.ts
9
+ /**
10
+
11
+ * Fetches a single page document by ID using Payload local API and assembles
12
+
13
+ * the IPage envelope (routes, alternates, breadcrumb, parentRoute).
14
+
15
+ *
16
+
17
+ * All data required for the envelope comes from mixerContext — no store calls.
18
+
19
+ * - routes/alternates : mixerContext.routes filtered by schema+id
20
+
21
+ * - segments : getCategorySegments() from bom-core (pure)
22
+
23
+ * - breadcrumb : findRouteOfCategory() from bom-core + mixerContext.currentRoutes
24
+
25
+ */
26
+ async function getPage(slug, id, market, locale, payload, user, mixerContext, draftMode) {
27
+ try {
28
+ const base = buildBaseOptions(user, locale, draftMode);
29
+ const page = await payload.findByID({
30
+ collection: slug,
31
+ id,
32
+ locale: base.locale,
33
+ fallbackLocale: base.fallbackLocale,
34
+ draft: base.draft,
35
+ depth: base.depth,
36
+ user: base.user,
37
+ overrideAccess: base.overrideAccess,
38
+ disableErrors: true,
39
+ context: mixerContext
40
+ });
41
+ if (page) {
42
+ const routes = mixerContext.routes.filter((r) => r.schema === slug && String(r.page) === String(id));
43
+ const currentRoute = routes.find((r) => r.market === market && r.locale === locale);
44
+ const alternates = routes;
45
+ const categories = mixerContext.categories;
46
+ const segments = getCategorySegments(categories, page);
47
+ const currentRoutes = mixerContext.currentRoutes;
48
+ const breadcrumb = currentRoute ? buildBreadcrumb(segments, currentRoute, currentRoutes) : [];
49
+ const parentRoute = breadcrumb.length > 1 ? breadcrumb[breadcrumb.length - 2] : void 0;
50
+ return {
51
+ ...page,
52
+ href: currentRoute?.id,
53
+ alternates,
54
+ breadcrumb,
55
+ parentRoute
56
+ };
57
+ } else {
58
+ console.log("PageService.getPage.notfound", slug, id, locale);
59
+ return void 0;
60
+ }
61
+ } catch {
62
+ return void 0;
63
+ }
64
+ }
65
+
66
+ //#endregion
67
+ export { getPage };
68
+ //# sourceMappingURL=page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.js","names":["slug: TSlug","id: string","market: string","locale: string","payload: MixerPayload","user: User","mixerContext: MixerContext","draftMode?: boolean","breadcrumb: IRouteLink[]","parentRoute: IRouteLink | undefined"],"sources":["../../src/server/page.ts"],"sourcesContent":["'use server';\r\n\r\nimport { getCategorySegments, ICategorized, ICategory, IRoute, IRouteLink } from '@websolutespa/bom-core';\r\nimport type { User } from '@websolutespa/payload-plugin-bowl';\r\nimport type { CollectionSlug } from 'payload';\r\nimport { buildBreadcrumb } from '../lib/breadcrumb';\r\nimport type { MixerContext, TypedPage } from '../types';\r\nimport { buildBaseOptions } from './mixer';\r\nimport type { MixerPayload } from './mixer-payload';\r\n\r\n/**\r\n * Fetches a single page document by ID using Payload local API and assembles\r\n * the IPage envelope (routes, alternates, breadcrumb, parentRoute).\r\n *\r\n * All data required for the envelope comes from mixerContext — no store calls.\r\n * - routes/alternates : mixerContext.routes filtered by schema+id\r\n * - segments : getCategorySegments() from bom-core (pure)\r\n * - breadcrumb : findRouteOfCategory() from bom-core + mixerContext.currentRoutes\r\n */\r\nexport async function getPage<TSlug extends CollectionSlug>(\r\n slug: TSlug,\r\n id: string,\r\n market: string,\r\n locale: string,\r\n payload: MixerPayload,\r\n user: User,\r\n mixerContext: MixerContext,\r\n draftMode?: boolean\r\n): Promise<TypedPage<TSlug> | undefined> {\r\n try {\r\n const base = buildBaseOptions(user, locale, draftMode);\r\n const page = await payload.findByID({\r\n collection: slug,\r\n id,\r\n locale: base.locale,\r\n fallbackLocale: base.fallbackLocale,\r\n draft: base.draft,\r\n depth: base.depth,\r\n user: base.user,\r\n overrideAccess: base.overrideAccess,\r\n disableErrors: true,\r\n context: mixerContext,\r\n });\r\n if (page) {\r\n // All routes for this schema+document across every market/locale (for alternates)\r\n const routes = (mixerContext.routes as IRoute[]).filter(\r\n r => r.schema === slug && String(r.page) === String(id)\r\n );\r\n const currentRoute = routes.find(r => r.market === market && r.locale === locale);\r\n const alternates = routes;\r\n\r\n // Segments derived from categories already present in mixerContext (pure, no I/O)\r\n const categories = mixerContext.categories as unknown as ICategory[];\r\n const segments = getCategorySegments(categories, page as unknown as ICategorized);\r\n\r\n // Breadcrumb built from currentRoutes (pre-filtered to market+locale by mixer)\r\n const currentRoutes = mixerContext.currentRoutes as IRoute[];\r\n const breadcrumb: IRouteLink[] = currentRoute\r\n ? buildBreadcrumb(segments, currentRoute, currentRoutes)\r\n : [];\r\n\r\n const parentRoute: IRouteLink | undefined = breadcrumb.length > 1\r\n ? breadcrumb[breadcrumb.length - 2]\r\n : undefined;\r\n\r\n return {\r\n ...page,\r\n href: currentRoute?.id,\r\n alternates,\r\n breadcrumb,\r\n parentRoute,\r\n } as unknown as TypedPage<TSlug>;\r\n } else {\r\n console.log('PageService.getPage.notfound', slug, id, locale);\r\n return undefined;\r\n }\r\n } catch {\r\n return undefined;\r\n }\r\n}\r\n\r\n/*\r\nexport function asServerProps(props: any): any {\r\n return JSON.parse(JSON.stringify(props));\r\n}\r\n*/\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,eAAsB,QACpBA,MACAC,IACAC,QACAC,QACAC,SACAC,MACAC,cACAC,WACuC;AACvC,KAAI;EACF,MAAM,OAAO,iBAAiB,MAAM,QAAQ,UAAU;EACtD,MAAM,OAAO,MAAM,QAAQ,SAAS;GAClC,YAAY;GACZ;GACA,QAAQ,KAAK;GACb,gBAAgB,KAAK;GACrB,OAAO,KAAK;GACZ,OAAO,KAAK;GACZ,MAAM,KAAK;GACX,gBAAgB,KAAK;GACrB,eAAe;GACf,SAAS;EACV,EAAC;AACF,MAAI,MAAM;GAER,MAAM,SAAU,aAAa,OAAoB,OAC/C,OAAK,EAAE,WAAW,QAAQ,OAAO,EAAE,KAAK,KAAK,OAAO,GAAG,CACxD;GACD,MAAM,eAAe,OAAO,KAAK,OAAK,EAAE,WAAW,UAAU,EAAE,WAAW,OAAO;GACjF,MAAM,aAAa;GAGnB,MAAM,aAAa,aAAa;GAChC,MAAM,WAAW,oBAAoB,YAAY,KAAgC;GAGjF,MAAM,gBAAgB,aAAa;GACnC,MAAMC,aAA2B,eAC7B,gBAAgB,UAAU,cAAc,cAAc,GACtD,CAAE;GAEN,MAAMC,cAAsC,WAAW,SAAS,IAC5D,WAAW,WAAW,SAAS,KAC/B;AAEJ,UAAO;IACL,GAAG;IACH,MAAM,cAAc;IACpB;IACA;IACA;GACD;EACF,OAAM;GACL,QAAQ,IAAI,gCAAgC,MAAM,IAAI,OAAO;AAC7D,UAAO;EACR;CACF,QAAO;AACN,SAAO;CACR;AACF"}
@@ -0,0 +1,12 @@
1
+ import { IRoute } from "@websolutespa/bom-core";
2
+ import { NextRequest } from "next/server";
3
+ import * as next_dist_server_web_next_url0 from "next/dist/server/web/next-url";
4
+
5
+ //#region src/server/utils.d.ts
6
+ declare function getNextUrl(request: NextRequest, route: IRoute): next_dist_server_web_next_url0.NextURL;
7
+ declare function getHrefBeforeRedirect(request: NextRequest): string | null;
8
+ //# sourceMappingURL=utils.d.ts.map
9
+
10
+ //#endregion
11
+ export { getHrefBeforeRedirect, getNextUrl };
12
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","names":[],"sources":["../../src/server/utils.ts"],"sourcesContent":[],"mappings":";;;;;iBAIgB,UAAA,UAAoB,oBAAoB,SAAM,8BAAA,CAAA;iBAQ9C,qBAAA,UAA+B"}
@@ -1,9 +1,11 @@
1
- import { r as resolveRoute } from "./route.js";
1
+ import { resolveRoute } from "../lib/route.js";
2
2
  import { getHost } from "@websolutespa/bom-core";
3
+
3
4
  //#region src/server/utils.ts
4
5
  function getNextUrl(request, route) {
5
6
  const nextUrl = request.nextUrl.clone();
6
- nextUrl.pathname = resolveRoute(route);
7
+ const resolvedPathname = resolveRoute(route);
8
+ nextUrl.pathname = resolvedPathname;
7
9
  return nextUrl;
8
10
  }
9
11
  function getHrefBeforeRedirect(request) {
@@ -17,7 +19,7 @@ function getHrefBeforeRedirect(request) {
17
19
  }
18
20
  return hrefBeforeRedirect;
19
21
  }
20
- //#endregion
21
- export { getNextUrl as n, getHrefBeforeRedirect as t };
22
22
 
23
- //# sourceMappingURL=utils2.js.map
23
+ //#endregion
24
+ export { getHrefBeforeRedirect, getNextUrl };
25
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","names":["request: NextRequest","route: IRoute","hrefBeforeRedirect: string | null"],"sources":["../../src/server/utils.ts"],"sourcesContent":["import { getHost, IRoute } from '@websolutespa/bom-core';\r\nimport { NextRequest } from 'next/server';\r\nimport { resolveRoute } from '../lib/route';\r\n\r\nexport function getNextUrl(request: NextRequest, route: IRoute) {\r\n const nextUrl = request.nextUrl.clone();\r\n const resolvedPathname = resolveRoute(route);\r\n // console.log('getNextUrl.resolvedPathname', resolvedPathname);\r\n nextUrl.pathname = resolvedPathname;\r\n return nextUrl;\r\n}\r\n\r\nexport function getHrefBeforeRedirect(request: NextRequest): string | null {\r\n let hrefBeforeRedirect: string | null = null;\r\n const urlBeforeRedirect = request.nextUrl.clone();\r\n const host = getHost(request.headers);\r\n if (host) {\r\n urlBeforeRedirect.host = host;\r\n urlBeforeRedirect.port = host.split(':')[1] || '';\r\n hrefBeforeRedirect = urlBeforeRedirect.href;\r\n }\r\n return hrefBeforeRedirect;\r\n}\r\n"],"mappings":";;;;AAIA,SAAgB,WAAWA,SAAsBC,OAAe;CAC9D,MAAM,UAAU,QAAQ,QAAQ,OAAO;CACvC,MAAM,mBAAmB,aAAa,MAAM;CAE5C,QAAQ,WAAW;AACnB,QAAO;AACR;AAED,SAAgB,sBAAsBD,SAAqC;CACzE,IAAIE,qBAAoC;CACxC,MAAM,oBAAoB,QAAQ,QAAQ,OAAO;CACjD,MAAM,OAAO,QAAQ,QAAQ,QAAQ;AACrC,KAAI,MAAM;EACR,kBAAkB,OAAO;EACzB,kBAAkB,OAAO,KAAK,MAAM,IAAI,CAAC,MAAM;EAC/C,qBAAqB,kBAAkB;CACxC;AACD,QAAO;AACR"}
@@ -0,0 +1,9 @@
1
+ import { NextApiRequest } from "next";
2
+
3
+ //#region src/server/utmz.d.ts
4
+ declare function getUtmz(request: NextApiRequest): string;
5
+ //# sourceMappingURL=utmz.d.ts.map
6
+
7
+ //#endregion
8
+ export { getUtmz };
9
+ //# sourceMappingURL=utmz.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utmz.d.ts","names":[],"sources":["../../src/server/utmz.ts"],"sourcesContent":[],"mappings":";;;iBAEgB,OAAA,UAAiB"}