@justanarthur/payload-www 1.4.2 → 2.0.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/dist/config.js CHANGED
@@ -1,5 +1,3 @@
1
-
2
-
3
1
  // src/createWWWConfig.ts
4
2
  import openAIResolver from "@justanarthur/payload-plugin-translator/resolvers/openAI";
5
3
 
@@ -20,37 +18,6 @@ var populatePublishedAt = ({ data, operation, req }) => {
20
18
  return data;
21
19
  };
22
20
 
23
- // src/collections/hooks/createRevalidateCollectionGlobalHook.ts
24
- import { revalidateTag } from "next/cache";
25
- function createRevalidateCollectionGlobalHook() {
26
- const afterChangeDeleteHook = async ({ doc, req, ...args }) => {
27
- const previousDoc = "previousDoc" in args ? args.previousDoc : null, locale = req.locale;
28
- function revalidate(args2) {
29
- try {
30
- revalidateTag(createCollectionCacheKey({ ...args2, locale }), "max");
31
- } catch (error) {
32
- const msg = error instanceof Error ? error.message : String(error);
33
- if (msg.includes("static generation store missing"))
34
- return;
35
- console.error(error);
36
- }
37
- }
38
- if ("collection" in args) {
39
- [
40
- doc && doc._status !== "draft" && doc.slug,
41
- previousDoc && previousDoc._status === "published" && previousDoc.slug
42
- ].filter((slug) => slug !== undefined && slug !== false).map((slug) => revalidate({ collectionSlug: args.collection.slug, slug }));
43
- } else {
44
- revalidate({ globalSlug: args.global.slug });
45
- }
46
- return doc;
47
- };
48
- return { afterChange: afterChangeDeleteHook, afterDelete: afterChangeDeleteHook };
49
- }
50
- function createCollectionCacheKey(args) {
51
- return `${"globalSlug" in args ? args.globalSlug : args.collectionSlug + args.slug}_${args.locale}`;
52
- }
53
-
54
21
  // src/collections/fields/slug.ts
55
22
  var slugField = () => ({
56
23
  name: "slug",
@@ -86,7 +53,8 @@ function createWWWCollectionGlobal(fields, {
86
53
  slug: collectionSlug,
87
54
  renderPath,
88
55
  isGlobalConfig = false,
89
- isDraft = true
56
+ isDraft = true,
57
+ useAsTitle
90
58
  }) {
91
59
  return {
92
60
  slug: collectionSlug,
@@ -99,6 +67,7 @@ function createWWWCollectionGlobal(fields, {
99
67
  },
100
68
  ...fields
101
69
  ],
70
+ admin: useAsTitle ? { useAsTitle, defaultColumns: useAsTitle === "title" ? [useAsTitle, "slug", "publishedAt"] : undefined } : undefined,
102
71
  custom: { [name]: { path: renderPath } },
103
72
  access: {
104
73
  create: authenticated,
@@ -106,14 +75,9 @@ function createWWWCollectionGlobal(fields, {
106
75
  read: isDraft ? authenticatedOrPublished : anyone,
107
76
  update: authenticated
108
77
  },
109
- hooks: (() => {
110
- const { afterChange, afterDelete } = createRevalidateCollectionGlobalHook();
111
- return {
112
- afterChange: [afterChange],
113
- beforeChange: [populatePublishedAt],
114
- afterDelete: [afterDelete]
115
- };
116
- })(),
78
+ hooks: {
79
+ beforeChange: [populatePublishedAt]
80
+ },
117
81
  ...isDraft && {
118
82
  versions: { drafts: { autosave: { interval: 3000 } } }
119
83
  }
@@ -144,7 +108,8 @@ var createPostsCollection = () => createWWWCollectionGlobal([
144
108
  }
145
109
  ], {
146
110
  slug: POSTS_SLUG,
147
- renderPath: POSTS_RENDER_PATH
111
+ renderPath: POSTS_RENDER_PATH,
112
+ useAsTitle: "title"
148
113
  });
149
114
 
150
115
  // src/collections/createPagesCollection.ts
@@ -176,7 +141,8 @@ var createPagesCollection = (blocks) => createWWWCollectionGlobal([
176
141
  }
177
142
  ], {
178
143
  slug: PAGES_SLUG,
179
- renderPath: PAGES_RENDER_PATH
144
+ renderPath: PAGES_RENDER_PATH,
145
+ useAsTitle: "title"
180
146
  });
181
147
 
182
148
  // src/collections/fields/link.ts
@@ -347,6 +313,7 @@ import { seoPlugin } from "@justanarthur/payload-plugin-seo";
347
313
  import { imageHashPlugin } from "@justanarthur/payload-imagehash-plugin";
348
314
  import { translator } from "@justanarthur/payload-plugin-translator";
349
315
  import { mcpPlugin } from "@payloadcms/plugin-mcp";
316
+ import { revalidatePlugin } from "@pro-laico/payload-revalidate";
350
317
  function createWWWConfig() {
351
318
  function withWWWConfig(input) {
352
319
  const { defaultPluginsConfigs, ...config } = input;
@@ -393,7 +360,10 @@ function createWWWConfig() {
393
360
  }]))
394
361
  }, defaultPluginsConfigs?.mcp))
395
362
  ];
396
- const plugins = mergeOrOverride(defaultPlugins, config.plugins);
363
+ const plugins = [
364
+ ...mergeOrOverride(defaultPlugins, config.plugins),
365
+ revalidatePlugin()
366
+ ];
397
367
  return {
398
368
  ...config,
399
369
  collections,
@@ -414,6 +384,6 @@ function mergeOrOverride(defaultValue, overrideValue) {
414
384
  // src/exports/config.ts
415
385
  var config_default = createWWWConfig;
416
386
  export {
417
- config_default as default,
418
- createWWWConfig
387
+ createWWWConfig,
388
+ config_default as default
419
389
  };
package/dist/fields.d.ts CHANGED
@@ -18,14 +18,13 @@ import { Field as Field2 } from "payload";
18
18
  declare const linkGroup: (options?: LinkOptions) => Field2;
19
19
  import { Field as Field3 } from "payload";
20
20
  declare const slugField: () => Field3;
21
- import { Field as Field_14espm } from "payload";
22
21
  declare const fields: {
23
- link: (options?: LinkOptions) => Field_14espm;
24
- linkGroup: (options?: LinkOptions) => Field_14espm;
22
+ link: typeof link;
23
+ linkGroup: typeof linkGroup;
25
24
  appearanceOptions: Record<LinkAppearances, {
26
25
  label: string;
27
26
  value: string;
28
27
  }>;
29
- slugField: () => Field_14espm;
28
+ slugField: typeof slugField;
30
29
  };
31
- export { slugField, linkGroup, link, fields as default, appearanceOptions, LinkOptions, LinkAppearances };
30
+ export { LinkAppearances, LinkOptions, appearanceOptions, fields as default, link, linkGroup, slugField };
package/dist/fields.js CHANGED
@@ -1,5 +1,3 @@
1
-
2
-
3
1
  // package.json
4
2
  var name = "@justanarthur/payload-www";
5
3
 
@@ -17,37 +15,6 @@ var populatePublishedAt = ({ data, operation, req }) => {
17
15
  return data;
18
16
  };
19
17
 
20
- // src/collections/hooks/createRevalidateCollectionGlobalHook.ts
21
- import { revalidateTag } from "next/cache";
22
- function createRevalidateCollectionGlobalHook() {
23
- const afterChangeDeleteHook = async ({ doc, req, ...args }) => {
24
- const previousDoc = "previousDoc" in args ? args.previousDoc : null, locale = req.locale;
25
- function revalidate(args2) {
26
- try {
27
- revalidateTag(createCollectionCacheKey({ ...args2, locale }), "max");
28
- } catch (error) {
29
- const msg = error instanceof Error ? error.message : String(error);
30
- if (msg.includes("static generation store missing"))
31
- return;
32
- console.error(error);
33
- }
34
- }
35
- if ("collection" in args) {
36
- [
37
- doc && doc._status !== "draft" && doc.slug,
38
- previousDoc && previousDoc._status === "published" && previousDoc.slug
39
- ].filter((slug) => slug !== undefined && slug !== false).map((slug) => revalidate({ collectionSlug: args.collection.slug, slug }));
40
- } else {
41
- revalidate({ globalSlug: args.global.slug });
42
- }
43
- return doc;
44
- };
45
- return { afterChange: afterChangeDeleteHook, afterDelete: afterChangeDeleteHook };
46
- }
47
- function createCollectionCacheKey(args) {
48
- return `${"globalSlug" in args ? args.globalSlug : args.collectionSlug + args.slug}_${args.locale}`;
49
- }
50
-
51
18
  // src/collections/fields/slug.ts
52
19
  var slugField = () => ({
53
20
  name: "slug",
@@ -83,7 +50,8 @@ function createWWWCollectionGlobal(fields, {
83
50
  slug: collectionSlug,
84
51
  renderPath,
85
52
  isGlobalConfig = false,
86
- isDraft = true
53
+ isDraft = true,
54
+ useAsTitle
87
55
  }) {
88
56
  return {
89
57
  slug: collectionSlug,
@@ -96,6 +64,7 @@ function createWWWCollectionGlobal(fields, {
96
64
  },
97
65
  ...fields
98
66
  ],
67
+ admin: useAsTitle ? { useAsTitle, defaultColumns: useAsTitle === "title" ? [useAsTitle, "slug", "publishedAt"] : undefined } : undefined,
99
68
  custom: { [name]: { path: renderPath } },
100
69
  access: {
101
70
  create: authenticated,
@@ -103,14 +72,9 @@ function createWWWCollectionGlobal(fields, {
103
72
  read: isDraft ? authenticatedOrPublished : anyone,
104
73
  update: authenticated
105
74
  },
106
- hooks: (() => {
107
- const { afterChange, afterDelete } = createRevalidateCollectionGlobalHook();
108
- return {
109
- afterChange: [afterChange],
110
- beforeChange: [populatePublishedAt],
111
- afterDelete: [afterDelete]
112
- };
113
- })(),
75
+ hooks: {
76
+ beforeChange: [populatePublishedAt]
77
+ },
114
78
  ...isDraft && {
115
79
  versions: { drafts: { autosave: { interval: 3000 } } }
116
80
  }
@@ -146,7 +110,8 @@ var createPagesCollection = (blocks) => createWWWCollectionGlobal([
146
110
  }
147
111
  ], {
148
112
  slug: PAGES_SLUG,
149
- renderPath: PAGES_RENDER_PATH
113
+ renderPath: PAGES_RENDER_PATH,
114
+ useAsTitle: "title"
150
115
  });
151
116
 
152
117
  // src/collections/createPostsCollection.ts
@@ -173,7 +138,8 @@ var createPostsCollection = () => createWWWCollectionGlobal([
173
138
  }
174
139
  ], {
175
140
  slug: POSTS_SLUG,
176
- renderPath: POSTS_RENDER_PATH
141
+ renderPath: POSTS_RENDER_PATH,
142
+ useAsTitle: "title"
177
143
  });
178
144
 
179
145
  // src/collections/fields/link.ts
@@ -283,9 +249,9 @@ var linkGroup = (options = {}) => ({
283
249
  var fields = { link, linkGroup, appearanceOptions, slugField };
284
250
  var fields_default = fields;
285
251
  export {
286
- slugField,
287
- linkGroup,
288
- link,
252
+ appearanceOptions,
289
253
  fields_default as default,
290
- appearanceOptions
254
+ link,
255
+ linkGroup,
256
+ slugField
291
257
  };
@@ -1,3 +1,3 @@
1
1
  import { imageHashPlugin } from "@justanarthur/payload-imagehash-plugin";
2
2
  import { BlurhashPluginOptions } from "@justanarthur/payload-imagehash-plugin/types";
3
- export { imageHashPlugin, imageHashPlugin as default, BlurhashPluginOptions };
3
+ export { BlurhashPluginOptions, imageHashPlugin as default, imageHashPlugin };
package/dist/imagehash.js CHANGED
@@ -1,9 +1,7 @@
1
-
2
-
3
1
  // src/exports/imagehash.ts
4
2
  import { imageHashPlugin } from "@justanarthur/payload-imagehash-plugin";
5
3
  var imagehash_default = imageHashPlugin;
6
4
  export {
7
- imageHashPlugin,
8
- imagehash_default as default
5
+ imagehash_default as default,
6
+ imageHashPlugin
9
7
  };
@@ -1,4 +1,4 @@
1
1
  import { ImportMap } from "payload";
2
2
  declare function setImportMapProvider(_provider: () => Promise<ImportMap> | ImportMap): void;
3
3
  declare function getImportMap(): Promise<ImportMap>;
4
- export { setImportMapProvider, getImportMap };
4
+ export { getImportMap, setImportMapProvider };
@@ -1,11 +1,9 @@
1
-
2
-
3
1
  // src/exports/import-map-provider.ts
4
2
  function setImportMapProvider(_provider) {}
5
3
  async function getImportMap() {
6
4
  return {};
7
5
  }
8
6
  export {
9
- setImportMapProvider,
10
- getImportMap
7
+ getImportMap,
8
+ setImportMapProvider
11
9
  };
package/dist/mcp.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import { mcpPlugin } from "@payloadcms/plugin-mcp";
2
2
  import { MCPPluginConfig } from "@payloadcms/plugin-mcp";
3
- export { mcpPlugin, mcpPlugin as default, MCPPluginConfig };
3
+ export { MCPPluginConfig, mcpPlugin as default, mcpPlugin };
package/dist/mcp.js CHANGED
@@ -1,9 +1,7 @@
1
-
2
-
3
1
  // src/exports/mcp.ts
4
2
  import { mcpPlugin } from "@payloadcms/plugin-mcp";
5
3
  var mcp_default = mcpPlugin;
6
4
  export {
7
- mcpPlugin,
8
- mcp_default as default
5
+ mcp_default as default,
6
+ mcpPlugin
9
7
  };
@@ -20,27 +20,48 @@ import { BuildOrganizationLdOptions, BuildProductLdOptions, BuildRootJsonLdOptio
20
20
  type SlugShape = "single" | "catch-all";
21
21
  declare function paramsSlugToSlug(slug: string | string[] | undefined, _shape: SlugShape): string;
22
22
  declare function slugToParamsSlug(slug: string, shape: SlugShape): string | string[];
23
- import { DataFromCollectionSlug, SanitizedConfig } from "payload";
24
- declare function queryDocBySlug<S extends string>({ collectionSlug, slug, slugField, locale, draft, config }: {
23
+ import { DataFromCollectionSlug, DataFromGlobalSlug, SanitizedConfig } from "payload";
24
+ import { tagsFor } from "@pro-laico/payload-revalidate";
25
+ type SeedPayloadCacheArgs = {
26
+ config: SanitizedConfig | Promise<SanitizedConfig>;
27
+ };
28
+ declare function seedPayloadCache({ config }: SeedPayloadCacheArgs): void;
29
+ type QueryCollectionArgs<S extends string> = {
25
30
  collectionSlug: S;
26
31
  slug: string;
27
32
  slugField?: string;
28
33
  locale: string;
29
34
  draft?: boolean;
30
- config: Promise<SanitizedConfig>;
31
- }): Promise<DataFromCollectionSlug<S> | null>;
32
- declare function queryAllDocs<S extends string>({ collectionSlug, slugField, locale, config }: {
35
+ depth?: number;
36
+ };
37
+ type QueryGlobalArgs<G extends string> = {
38
+ globalSlug: G;
39
+ locale: string;
40
+ depth?: number;
41
+ draft?: boolean;
42
+ };
43
+ type QueryListArgs<S extends string> = {
33
44
  collectionSlug: S;
34
45
  slugField?: string;
35
46
  locale: string;
36
- config: Promise<SanitizedConfig>;
37
- }): Promise<DataFromCollectionSlug<S>[]>;
38
- declare function queryAllLocaleSlugs({ collectionSlug, id, slugField, config }: {
47
+ };
48
+ declare function queryDocBySlug<S extends string>(args: QueryCollectionArgs<S>): Promise<DataFromCollectionSlug<S> | null>;
49
+ declare function queryGlobal<G extends string>(args: QueryGlobalArgs<G>): Promise<DataFromGlobalSlug<G> | null>;
50
+ declare function queryAllDocs<S extends string = string>(args: QueryListArgs<S>): Promise<DataFromCollectionSlug<S>[]>;
51
+ declare function queryAllLocaleSlugs(args: {
39
52
  collectionSlug: string;
40
53
  id: number | string;
41
54
  slugField?: string;
42
- config: Promise<SanitizedConfig>;
43
55
  }): Promise<Record<string, string> | null>;
56
+ declare function queryDocByID<S extends string = string>(args: {
57
+ collectionSlug: S;
58
+ id: number | string;
59
+ locale: string;
60
+ draft?: boolean;
61
+ depth?: number;
62
+ }): Promise<DataFromCollectionSlug<S> | null>;
63
+ import { Payload as Payload_eipjla } from "payload";
64
+ import { Tags as Tags_1jpdl } from "@pro-laico/payload-revalidate";
44
65
  declare const metadata: {
45
66
  buildArticleLd: typeof buildArticleLd;
46
67
  buildBreadcrumbsLd: typeof buildBreadcrumbsLd;
@@ -49,9 +70,13 @@ declare const metadata: {
49
70
  buildProductLd: any;
50
71
  buildRootJsonLd: any;
51
72
  queryDocBySlug: typeof queryDocBySlug;
73
+ queryDocByID: typeof queryDocByID;
74
+ queryGlobal: typeof queryGlobal;
52
75
  queryAllDocs: typeof queryAllDocs;
53
76
  queryAllLocaleSlugs: typeof queryAllLocaleSlugs;
54
77
  paramsSlugToSlug: typeof paramsSlugToSlug;
55
78
  slugToParamsSlug: typeof slugToParamsSlug;
79
+ seedPayloadCache: typeof seedPayloadCache;
80
+ tagsFor: (payload: Payload_eipjla) => Tags_1jpdl;
56
81
  };
57
- export { slugToParamsSlug, queryDocBySlug, queryAllLocaleSlugs, queryAllDocs, paramsSlugToSlug, metadata as default, buildWebSiteLd, buildRootJsonLd, buildProductLd, buildOrganizationLd, buildBreadcrumbsLd, buildArticleLd, SlugShape, BuildWebSiteLdOptions, BuildRootJsonLdOptions, BuildProductLdOptions, BuildOrganizationLdOptions, BreadcrumbItem, ArticleLdOptions };
82
+ export { ArticleLdOptions, BreadcrumbItem, BuildOrganizationLdOptions, BuildProductLdOptions, BuildRootJsonLdOptions, BuildWebSiteLdOptions, SeedPayloadCacheArgs, SlugShape, buildArticleLd, buildBreadcrumbsLd, buildOrganizationLd, buildProductLd, buildRootJsonLd, buildWebSiteLd, metadata as default, paramsSlugToSlug, queryAllDocs, queryAllLocaleSlugs, queryDocByID, queryDocBySlug, queryGlobal, seedPayloadCache, slugToParamsSlug, tagsFor };
package/dist/metadata.js CHANGED
@@ -1,5 +1,3 @@
1
-
2
-
3
1
  // src/render/metadata/jsonld-utils.ts
4
2
  function getImageUrl(doc, siteUrl) {
5
3
  const img = doc?.meta?.image ?? doc?.heroImage ?? doc?.image;
@@ -112,124 +110,95 @@ function slugToPath(slug) {
112
110
  }
113
111
 
114
112
  // src/render/metadata/query.ts
113
+ import { createCacheHelpers } from "@pro-laico/payload-revalidate/cache";
114
+ import { tagsFor } from "@pro-laico/payload-revalidate";
115
+ import { cacheLife } from "next/cache";
115
116
  import { getPayload } from "payload";
116
-
117
- // src/collections/hooks/createRevalidateCollectionGlobalHook.ts
118
- import { revalidateTag } from "next/cache";
119
- function createRevalidateCollectionGlobalHook() {
120
- const afterChangeDeleteHook = async ({ doc, req, ...args }) => {
121
- const previousDoc = "previousDoc" in args ? args.previousDoc : null, locale = req.locale;
122
- function revalidate(args2) {
123
- try {
124
- revalidateTag(createCollectionCacheKey({ ...args2, locale }), "max");
125
- } catch (error) {
126
- const msg = error instanceof Error ? error.message : String(error);
127
- if (msg.includes("static generation store missing"))
128
- return;
129
- console.error(error);
130
- }
131
- }
132
- if ("collection" in args) {
133
- [
134
- doc && doc._status !== "draft" && doc.slug,
135
- previousDoc && previousDoc._status === "published" && previousDoc.slug
136
- ].filter((slug) => slug !== undefined && slug !== false).map((slug) => revalidate({ collectionSlug: args.collection.slug, slug }));
137
- } else {
138
- revalidate({ globalSlug: args.global.slug });
139
- }
140
- return doc;
141
- };
142
- return { afterChange: afterChangeDeleteHook, afterDelete: afterChangeDeleteHook };
143
- }
144
- function createCollectionCacheKey(args) {
145
- return `${"globalSlug" in args ? args.globalSlug : args.collectionSlug + args.slug}_${args.locale}`;
117
+ var _helpers = null;
118
+ var _seedPromise = null;
119
+ function seedPayloadCache({ config }) {
120
+ if (_helpers || _seedPromise)
121
+ return;
122
+ _seedPromise = (async () => {
123
+ const payload = await getPayload({ config: await config });
124
+ _helpers = createCacheHelpers(payload);
125
+ })();
146
126
  }
147
-
148
- // src/render/metadata/query.ts
149
- async function withUnstableCache(keyParts, tags, fn) {
150
- const { unstable_cache } = await import("next/cache");
151
- return unstable_cache(fn, keyParts.map(String), { tags })();
127
+ async function requireCacheHelpers() {
128
+ if (_helpers)
129
+ return _helpers;
130
+ if (_seedPromise) {
131
+ await _seedPromise;
132
+ if (_helpers)
133
+ return _helpers;
134
+ }
135
+ throw new Error("[payload-www] seedPayloadCache({ config }) must be called before any query getter. " + "Call it from createCollectionPageExports / createRootLayoutExports factory, or in your root layout.");
152
136
  }
153
- async function queryDoc(args, { config: configPromise }) {
154
- return withUnstableCache(Object.values(args), [createCollectionCacheKey(args)], async () => {
155
- if ("globalSlug" in args)
156
- return queryGlobal({ ...args, config: configPromise });
157
- else
158
- return queryDocBySlug({ ...args, config: configPromise });
137
+ async function queryDocBySlug(args) {
138
+ "use cache";
139
+ cacheLife("weeks");
140
+ const { findDoc } = await requireCacheHelpers();
141
+ const slugField = args.slugField ?? "slug";
142
+ const result = await findDoc(args.collectionSlug, {
143
+ where: { [slugField]: { equals: args.slug } },
144
+ locale: args.locale,
145
+ draft: args.draft ?? false,
146
+ depth: args.depth
159
147
  });
148
+ return result ?? null;
160
149
  }
161
- async function queryDocBySlug({
162
- collectionSlug,
163
- slug,
164
- slugField = "slug",
165
- locale,
166
- draft = false,
167
- config
168
- }) {
169
- return withUnstableCache([collectionSlug, slug, locale, draft], [createCollectionCacheKey({ collectionSlug, slug, locale })], async () => {
170
- const payload = await getPayload({ config });
171
- const result = await payload.find({
172
- collection: collectionSlug,
173
- draft,
174
- limit: 1,
175
- pagination: false,
176
- overrideAccess: draft,
177
- where: { [slugField]: { equals: slug } },
178
- locale
150
+ async function queryGlobal(args) {
151
+ "use cache";
152
+ cacheLife("weeks");
153
+ const { findGlobal } = await requireCacheHelpers();
154
+ try {
155
+ const result = await findGlobal(args.globalSlug, {
156
+ locale: args.locale,
157
+ draft: args.draft ?? false,
158
+ depth: args.depth
179
159
  });
180
- return result.docs?.[0] ?? null;
181
- });
160
+ return result ?? null;
161
+ } catch (error) {
162
+ console.warn("[WWW] queryGlobal failed", { globalSlug: args.globalSlug, locale: args.locale, error: String(error) });
163
+ return null;
164
+ }
182
165
  }
183
- async function queryGlobal({
184
- globalSlug,
185
- locale,
186
- draft = false,
187
- config
188
- }) {
189
- return withUnstableCache([globalSlug, locale, draft], [createCollectionCacheKey({ globalSlug, locale })], async () => {
190
- const payload = await getPayload({ config });
191
- try {
192
- return await payload.findGlobal({ slug: globalSlug, draft, locale });
193
- } catch (error) {
194
- console.warn("[WWW] queryGlobal failed", { globalSlug, locale, error: String(error) });
195
- return null;
196
- }
197
- });
166
+ async function queryAllDocs(args) {
167
+ "use cache";
168
+ cacheLife("weeks");
169
+ const { findIds, findDocByID } = await requireCacheHelpers();
170
+ const collection = args.collectionSlug;
171
+ const { ids } = await findIds(collection, { locale: args.locale });
172
+ if (ids.length === 0)
173
+ return [];
174
+ const docs = await Promise.all(ids.map((id) => findDocByID(collection, id, { locale: args.locale })));
175
+ return docs.filter((d) => d !== null);
198
176
  }
199
- async function queryAllDocs({
200
- collectionSlug,
201
- slugField = "slug",
202
- locale,
203
- config
204
- }) {
205
- return withUnstableCache([collectionSlug, slugField, locale], [createCollectionCacheKey({ collectionSlug, slug: "__all__", locale })], async () => {
206
- const payload = await getPayload({ config });
207
- const result = await payload.find({
208
- collection: collectionSlug,
209
- draft: false,
210
- limit: 1000,
211
- pagination: false,
212
- overrideAccess: false,
213
- select: { [slugField]: true },
214
- locale
215
- });
216
- return result.docs ?? [];
217
- });
177
+ async function queryDoc(args) {
178
+ if ("globalSlug" in args)
179
+ return queryGlobal(args);
180
+ return queryDocBySlug(args);
218
181
  }
219
- async function queryAllLocaleSlugs({
220
- collectionSlug,
221
- id,
222
- slugField = "slug",
223
- config
224
- }) {
225
- const payload = await getPayload({ config });
226
- const doc = await payload.findByID({
227
- collection: collectionSlug,
228
- id,
229
- locale: "all",
230
- select: { [slugField]: true }
182
+ async function queryAllLocaleSlugs(args) {
183
+ "use cache";
184
+ cacheLife("weeks");
185
+ const { findDocByID } = await requireCacheHelpers();
186
+ const slugField = args.slugField ?? "slug";
187
+ const doc = await findDocByID(args.collectionSlug, args.id, { locale: "all", select: { [slugField]: true } });
188
+ const localeMap = doc?.[slugField];
189
+ if (localeMap && typeof localeMap === "object")
190
+ return localeMap;
191
+ return null;
192
+ }
193
+ async function queryDocByID(args) {
194
+ "use cache";
195
+ cacheLife("weeks");
196
+ const { findDocByID } = await requireCacheHelpers();
197
+ return await findDocByID(args.collectionSlug, args.id, {
198
+ locale: args.locale,
199
+ draft: args.draft ?? false,
200
+ depth: args.depth
231
201
  });
232
- return doc?.[slugField];
233
202
  }
234
203
 
235
204
  // src/exports/metadata.ts
@@ -241,23 +210,31 @@ var metadata = {
241
210
  buildProductLd,
242
211
  buildRootJsonLd,
243
212
  queryDocBySlug,
213
+ queryDocByID,
214
+ queryGlobal,
244
215
  queryAllDocs,
245
216
  queryAllLocaleSlugs,
246
217
  paramsSlugToSlug,
247
- slugToParamsSlug
218
+ slugToParamsSlug,
219
+ seedPayloadCache,
220
+ tagsFor
248
221
  };
249
222
  var metadata_default = metadata;
250
223
  export {
251
- slugToParamsSlug,
252
- queryDocBySlug,
253
- queryAllLocaleSlugs,
254
- queryAllDocs,
255
- paramsSlugToSlug,
256
- metadata_default as default,
257
- buildWebSiteLd,
258
- buildRootJsonLd,
259
- buildProductLd,
260
- buildOrganizationLd,
224
+ buildArticleLd,
261
225
  buildBreadcrumbsLd,
262
- buildArticleLd
226
+ buildOrganizationLd,
227
+ buildProductLd,
228
+ buildRootJsonLd,
229
+ buildWebSiteLd,
230
+ metadata_default as default,
231
+ paramsSlugToSlug,
232
+ queryAllDocs,
233
+ queryAllLocaleSlugs,
234
+ queryDocByID,
235
+ queryDocBySlug,
236
+ queryGlobal,
237
+ seedPayloadCache,
238
+ slugToParamsSlug,
239
+ tagsFor
263
240
  };