@justanarthur/payload-www 1.4.2 → 2.0.1
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/README.md +81 -33
- package/dist/access.d.ts +1 -1
- package/dist/access.js +3 -5
- package/dist/blocks.d.ts +1 -1
- package/dist/blocks.js +2 -4
- package/dist/cli.js +0 -2
- package/dist/collections.d.ts +19 -19
- package/dist/collections.js +91 -125
- package/dist/config.d.ts +2 -1
- package/dist/config.js +17 -47
- package/dist/fields.d.ts +4 -5
- package/dist/fields.js +14 -48
- package/dist/imagehash.d.ts +1 -1
- package/dist/imagehash.js +2 -4
- package/dist/import-map-provider.d.ts +1 -1
- package/dist/import-map-provider.js +2 -4
- package/dist/mcp.d.ts +1 -1
- package/dist/mcp.js +2 -4
- package/dist/metadata.d.ts +35 -10
- package/dist/metadata.js +99 -122
- package/dist/pages.d.ts +15 -5
- package/dist/pages.js +119 -136
- package/dist/render-pages.d.ts +18 -8
- package/dist/render-pages.js +146 -149
- package/dist/sitemap.d.ts +18 -2
- package/dist/sitemap.js +118 -132
- package/dist/translator.d.ts +1 -1
- package/dist/translator.js +2 -4
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +2 -4
- package/package.json +16 -14
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
|
-
|
|
111
|
-
|
|
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 =
|
|
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
|
-
|
|
418
|
-
|
|
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:
|
|
24
|
-
linkGroup:
|
|
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:
|
|
28
|
+
slugField: typeof slugField;
|
|
30
29
|
};
|
|
31
|
-
export {
|
|
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
|
-
|
|
108
|
-
|
|
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
|
-
|
|
287
|
-
linkGroup,
|
|
288
|
-
link,
|
|
252
|
+
appearanceOptions,
|
|
289
253
|
fields_default as default,
|
|
290
|
-
|
|
254
|
+
link,
|
|
255
|
+
linkGroup,
|
|
256
|
+
slugField
|
|
291
257
|
};
|
package/dist/imagehash.d.ts
CHANGED
|
@@ -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 {
|
|
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
|
-
|
|
8
|
-
|
|
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 {
|
|
4
|
+
export { getImportMap, setImportMapProvider };
|
package/dist/mcp.d.ts
CHANGED
package/dist/mcp.js
CHANGED
package/dist/metadata.d.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
31
|
-
}
|
|
32
|
-
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
declare function
|
|
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 {
|
|
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
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
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
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
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
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
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
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
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
|
|
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
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
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
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
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
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
})
|
|
225
|
-
const
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
};
|