@justanarthur/payload-www 0.3.5 → 1.2.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/README.md +317 -307
- package/dist/access.d.ts +2 -2
- package/dist/access.js +3 -17
- package/dist/blocks.d.ts +7 -12
- package/dist/blocks.js +24 -43
- package/dist/cli.js +201 -0
- package/dist/collections.d.ts +33 -225
- package/dist/collections.js +185 -639
- package/dist/config.d.ts +19 -105
- package/dist/config.js +257 -855
- package/dist/fields.d.ts +4 -46
- package/dist/fields.js +177 -53
- package/dist/imagehash.js +0 -15
- package/dist/import-map-provider.d.ts +0 -16
- package/dist/import-map-provider.js +0 -15
- package/dist/metadata.d.ts +24 -89
- package/dist/metadata.js +123 -255
- package/dist/pages.d.ts +37 -319
- package/dist/pages.js +349 -964
- package/dist/render-pages.d.ts +70 -565
- package/dist/render-pages.js +464 -1477
- package/dist/sitemap.d.ts +10 -0
- package/dist/sitemap.js +337 -0
- package/dist/translator.js +0 -15
- package/dist/utils.d.ts +10 -12
- package/dist/utils.js +18 -41
- package/package.json +81 -178
- package/dist/components.d.ts +0 -6
- package/dist/components.js +0 -39
- package/dist/core-access.d.ts +0 -11
- package/dist/core-access.js +0 -34
- package/dist/core-blocks.d.ts +0 -24
- package/dist/core-blocks.js +0 -79
- package/dist/core-fields.d.ts +0 -73
- package/dist/core-fields.js +0 -167
- package/dist/core-utils.d.ts +0 -16
- package/dist/core-utils.js +0 -63
- package/dist/data-collections.d.ts +0 -229
- package/dist/data-collections.js +0 -676
- package/dist/data-seed.d.ts +0 -76
- package/dist/data-seed.js +0 -212
- package/dist/data-test.d.ts +0 -30
- package/dist/data-test.js +0 -1110
- package/dist/globals.d.ts +0 -69
- package/dist/globals.js +0 -251
- package/dist/hooks.d.ts +0 -108
- package/dist/hooks.js +0 -228
- package/dist/index.d.ts +0 -6
- package/dist/index.js +0 -39
- package/dist/render-components.d.ts +0 -42
- package/dist/render-components.js +0 -154
- package/dist/render-metadata.d.ts +0 -122
- package/dist/render-metadata.js +0 -390
- package/dist/render-utils.d.ts +0 -166
- package/dist/render-utils.js +0 -398
- package/dist/seed.d.ts +0 -76
- package/dist/seed.js +0 -212
- package/dist/server.d.ts +0 -980
- package/dist/server.js +0 -2231
- package/dist/test.d.ts +0 -30
- package/dist/test.js +0 -1110
- package/dist/with-www-config.d.ts +0 -108
- package/dist/with-www-config.js +0 -1006
package/dist/metadata.js
CHANGED
|
@@ -1,21 +1,6 @@
|
|
|
1
1
|
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __returnValue = (v) => v;
|
|
4
|
-
function __exportSetter(name, newValue) {
|
|
5
|
-
this[name] = __returnValue.bind(null, newValue);
|
|
6
|
-
}
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, {
|
|
10
|
-
get: all[name],
|
|
11
|
-
enumerable: true,
|
|
12
|
-
configurable: true,
|
|
13
|
-
set: __exportSetter.bind(all, name)
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
|
-
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
17
2
|
|
|
18
|
-
// src/render/metadata/jsonld.ts
|
|
3
|
+
// src/render/metadata/jsonld-utils.ts
|
|
19
4
|
function getImageUrl(doc, siteUrl) {
|
|
20
5
|
const img = doc?.meta?.image ?? doc?.heroImage ?? doc?.image;
|
|
21
6
|
if (!img)
|
|
@@ -26,11 +11,6 @@ function getImageUrl(doc, siteUrl) {
|
|
|
26
11
|
return img.url.startsWith("http") ? img.url : `${siteUrl}${img.url}`;
|
|
27
12
|
return null;
|
|
28
13
|
}
|
|
29
|
-
function getImageUrlWithLog(doc, siteUrl) {
|
|
30
|
-
const result = getImageUrl(doc, siteUrl);
|
|
31
|
-
console.log("[WWW] render/metadata:jsonld:getImageUrl ->", result);
|
|
32
|
-
return result;
|
|
33
|
-
}
|
|
34
14
|
function resolveLocalizedField(value, locale) {
|
|
35
15
|
if (value == null)
|
|
36
16
|
return "";
|
|
@@ -52,13 +32,8 @@ function resolveLocalizedField(value, locale) {
|
|
|
52
32
|
}
|
|
53
33
|
return Object.values(obj).filter((v) => typeof v === "string" && v.length > 0).join(" / ");
|
|
54
34
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
if (value && typeof value === "object") {
|
|
58
|
-
console.log("[WWW] render/metadata:jsonld:resolveLocalizedField locale=", locale, "->", JSON.stringify(result));
|
|
59
|
-
}
|
|
60
|
-
return result;
|
|
61
|
-
}
|
|
35
|
+
|
|
36
|
+
// src/render/metadata/jsonld.ts
|
|
62
37
|
function buildArticleLd({
|
|
63
38
|
doc,
|
|
64
39
|
url,
|
|
@@ -69,13 +44,12 @@ function buildArticleLd({
|
|
|
69
44
|
publisherLogo
|
|
70
45
|
}) {
|
|
71
46
|
const name = publisherName ?? new URL(siteUrl).hostname;
|
|
72
|
-
console.log("[WWW] render/metadata:buildArticleLd url=", url, "locale=", locale, "type=", type, "publisherName=", name);
|
|
73
47
|
const ld = {
|
|
74
48
|
"@context": "https://schema.org",
|
|
75
49
|
"@type": type,
|
|
76
50
|
"@id": `${url}#article`,
|
|
77
|
-
headline:
|
|
78
|
-
description:
|
|
51
|
+
headline: resolveLocalizedField(doc.title, locale),
|
|
52
|
+
description: resolveLocalizedField(doc.meta?.description ?? doc.description ?? doc.excerpt, locale),
|
|
79
53
|
inLanguage: locale,
|
|
80
54
|
url,
|
|
81
55
|
dateModified: doc.updatedAt ? new Date(doc.updatedAt).toISOString() : undefined
|
|
@@ -83,7 +57,7 @@ function buildArticleLd({
|
|
|
83
57
|
const datePublished = doc.publishedAt ?? doc.createdAt;
|
|
84
58
|
if (datePublished)
|
|
85
59
|
ld.datePublished = new Date(datePublished).toISOString();
|
|
86
|
-
const imgUrl =
|
|
60
|
+
const imgUrl = getImageUrl(doc, siteUrl);
|
|
87
61
|
if (imgUrl)
|
|
88
62
|
ld.image = imgUrl;
|
|
89
63
|
ld.author = { "@type": "Organization", name, url: siteUrl };
|
|
@@ -99,7 +73,6 @@ function buildBreadcrumbsLd({
|
|
|
99
73
|
items,
|
|
100
74
|
currentUrl
|
|
101
75
|
}) {
|
|
102
|
-
console.log("[WWW] render/metadata:buildBreadcrumbsLd items=", items.length, "currentUrl=", currentUrl);
|
|
103
76
|
return {
|
|
104
77
|
"@context": "https://schema.org",
|
|
105
78
|
"@type": "BreadcrumbList",
|
|
@@ -111,124 +84,76 @@ function buildBreadcrumbsLd({
|
|
|
111
84
|
}))
|
|
112
85
|
};
|
|
113
86
|
}
|
|
114
|
-
function buildOrganizationLd({
|
|
115
|
-
siteUrl,
|
|
116
|
-
name,
|
|
117
|
-
logo,
|
|
118
|
-
sameAs
|
|
119
|
-
}) {
|
|
120
|
-
console.log("[WWW] render/metadata:buildOrganizationLd siteUrl=", siteUrl, "name=", name, "logo?", Boolean(logo), "sameAs?", Boolean(sameAs));
|
|
121
|
-
const org = {
|
|
122
|
-
"@context": "https://schema.org",
|
|
123
|
-
"@type": "Organization",
|
|
124
|
-
"@id": `${siteUrl}#organization`,
|
|
125
|
-
url: siteUrl,
|
|
126
|
-
...name && { name },
|
|
127
|
-
...logo && { logo: { "@type": "ImageObject", url: logo } },
|
|
128
|
-
...sameAs && sameAs.length > 0 && { sameAs }
|
|
129
|
-
};
|
|
130
|
-
return org;
|
|
131
|
-
}
|
|
132
87
|
|
|
133
|
-
// src/
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
nested,
|
|
141
|
-
homeSlug,
|
|
142
|
-
defaultLocale,
|
|
143
|
-
locales,
|
|
144
|
-
localePrefix = "always"
|
|
145
|
-
}) {
|
|
146
|
-
const allLocaleSlugs = await queryAllLocaleSlugs(storedSlug, locale);
|
|
147
|
-
console.log("[WWW] render/metadata:buildHreflangAlternates storedSlug=", storedSlug, "locale=", locale, "allLocaleSlugs=", JSON.stringify(allLocaleSlugs));
|
|
148
|
-
const languages = {};
|
|
149
|
-
const urlFor = (l, slug) => {
|
|
150
|
-
const trimmedPrefix = urlPrefix.replace(/^\/|\/$/g, "");
|
|
151
|
-
const prefixSegment = trimmedPrefix ? `/${trimmedPrefix}` : "";
|
|
152
|
-
const urlPath = slug === homeSlug ? "/" : nested ? "/" + slug.replaceAll("_", "/") : "/" + slug;
|
|
153
|
-
const localeSegment = localePrefix === "never" ? "" : localePrefix === "as-needed" && l === defaultLocale ? "" : `/${l}`;
|
|
154
|
-
return `${siteUrl}${localeSegment}${prefixSegment}${urlPath}`;
|
|
155
|
-
};
|
|
156
|
-
for (const l of locales) {
|
|
157
|
-
const slugForLocale = allLocaleSlugs?.[l];
|
|
158
|
-
if (!slugForLocale)
|
|
159
|
-
continue;
|
|
160
|
-
languages[l] = urlFor(l, slugForLocale);
|
|
161
|
-
}
|
|
162
|
-
if (allLocaleSlugs?.[defaultLocale]) {
|
|
163
|
-
languages["x-default"] = urlFor(defaultLocale, allLocaleSlugs[defaultLocale]);
|
|
164
|
-
}
|
|
165
|
-
console.log("[WWW] render/metadata:buildHreflangAlternates ->", JSON.stringify(languages));
|
|
166
|
-
return languages;
|
|
167
|
-
}
|
|
88
|
+
// src/exports/metadata.ts
|
|
89
|
+
import {
|
|
90
|
+
buildOrganizationLd,
|
|
91
|
+
buildProductLd,
|
|
92
|
+
buildRootJsonLd,
|
|
93
|
+
buildWebSiteLd
|
|
94
|
+
} from "@justanarthur/payload-plugin-seo/root-jsonld";
|
|
168
95
|
|
|
169
96
|
// src/render/metadata/slug.ts
|
|
170
97
|
var SLUG_NESTED_DIVIDER = "_";
|
|
171
|
-
function
|
|
172
|
-
if (!
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
}
|
|
176
|
-
const result = nested ? segments.join(SLUG_NESTED_DIVIDER) : segments[0] ?? "";
|
|
177
|
-
console.log("[WWW] render/metadata:segmentsToStoredSlug nested=", nested, "segments=", JSON.stringify(segments), "->", result);
|
|
178
|
-
return result;
|
|
179
|
-
}
|
|
180
|
-
function segmentsToUrlPath(segments, nested) {
|
|
181
|
-
let result;
|
|
182
|
-
if (!Array.isArray(segments))
|
|
183
|
-
result = "/" + segments;
|
|
184
|
-
else if (nested)
|
|
185
|
-
result = "/" + segments.join("/");
|
|
186
|
-
else
|
|
187
|
-
result = "/" + (segments[0] ?? "");
|
|
188
|
-
console.log("[WWW] render/metadata:segmentsToUrlPath nested=", nested, "segments=", JSON.stringify(segments), "->", result);
|
|
189
|
-
return result;
|
|
190
|
-
}
|
|
191
|
-
function storedSlugToSegments(storedSlug, nested) {
|
|
192
|
-
const result = nested ? storedSlug.split(SLUG_NESTED_DIVIDER) : storedSlug;
|
|
193
|
-
console.log("[WWW] render/metadata:storedSlugToSegments nested=", nested, "storedSlug=", storedSlug, "->", JSON.stringify(result));
|
|
194
|
-
return result;
|
|
195
|
-
}
|
|
196
|
-
function buildCanonicalUrl({
|
|
197
|
-
siteUrl,
|
|
198
|
-
locale,
|
|
199
|
-
urlPrefix,
|
|
200
|
-
urlPath
|
|
201
|
-
}) {
|
|
202
|
-
const trimmedPrefix = urlPrefix.replace(/^\/|\/$/g, "");
|
|
203
|
-
const prefixSegment = trimmedPrefix ? `/${trimmedPrefix}` : "";
|
|
204
|
-
const result = `${siteUrl}/${locale}${prefixSegment}${urlPath}`;
|
|
205
|
-
console.log("[WWW] render/metadata:buildCanonicalUrl siteUrl=", siteUrl, "locale=", locale, "urlPrefix=", urlPrefix, "urlPath=", urlPath, "->", result);
|
|
206
|
-
return result;
|
|
98
|
+
function paramsSlugToSlug(slug, _shape) {
|
|
99
|
+
if (!slug)
|
|
100
|
+
return "";
|
|
101
|
+
return (Array.isArray(slug) ? slug : [slug]).join(SLUG_NESTED_DIVIDER);
|
|
207
102
|
}
|
|
208
|
-
function
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
return "/";
|
|
213
|
-
} else if (nested && Array.isArray(segments)) {
|
|
214
|
-
const stored = segments.join(SLUG_NESTED_DIVIDER);
|
|
215
|
-
if (stored === homeSlug)
|
|
216
|
-
return "/";
|
|
217
|
-
}
|
|
218
|
-
return urlPath;
|
|
103
|
+
function slugToParamsSlug(slug, shape) {
|
|
104
|
+
if (!slug)
|
|
105
|
+
return shape === "catch-all" ? [] : "";
|
|
106
|
+
return shape === "catch-all" ? slug.split(SLUG_NESTED_DIVIDER) : slug;
|
|
219
107
|
}
|
|
220
108
|
|
|
221
109
|
// src/render/metadata/query.ts
|
|
222
110
|
import { getPayload } from "payload";
|
|
223
|
-
import { cache } from "react";
|
|
224
111
|
|
|
225
|
-
// src/
|
|
226
|
-
|
|
227
|
-
|
|
112
|
+
// src/collections/hooks/createRevalidateCollectionGlobalHook.ts
|
|
113
|
+
import { revalidateTag } from "next/cache";
|
|
114
|
+
function createRevalidateCollectionGlobalHook() {
|
|
115
|
+
const afterChangeDeleteHook = async ({ doc, req, ...args }) => {
|
|
116
|
+
const previousDoc = "previousDoc" in args ? args.previousDoc : null, locale = req.locale;
|
|
117
|
+
function revalidate(args2) {
|
|
118
|
+
try {
|
|
119
|
+
revalidateTag(createCollectionCacheKey({ ...args2, locale }), "max");
|
|
120
|
+
} catch (error) {
|
|
121
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
122
|
+
if (msg.includes("static generation store missing"))
|
|
123
|
+
return;
|
|
124
|
+
console.error(error);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
if ("collection" in args) {
|
|
128
|
+
[
|
|
129
|
+
doc && doc._status !== "draft" && doc.slug,
|
|
130
|
+
previousDoc && previousDoc._status === "published" && previousDoc.slug
|
|
131
|
+
].filter((slug) => slug !== undefined && slug !== false).map((slug) => revalidate({ collectionSlug: args.collection.slug, slug }));
|
|
132
|
+
} else {
|
|
133
|
+
revalidate({ globalSlug: args.global.slug });
|
|
134
|
+
}
|
|
135
|
+
return doc;
|
|
136
|
+
};
|
|
137
|
+
return { afterChange: afterChangeDeleteHook, afterDelete: afterChangeDeleteHook };
|
|
138
|
+
}
|
|
139
|
+
function createCollectionCacheKey(args) {
|
|
140
|
+
return `${"globalSlug" in args ? args.globalSlug : args.collectionSlug + args.slug}_${args.locale}`;
|
|
228
141
|
}
|
|
229
142
|
|
|
230
143
|
// src/render/metadata/query.ts
|
|
231
|
-
|
|
144
|
+
async function withUnstableCache(keyParts, tags, fn) {
|
|
145
|
+
const { unstable_cache } = await import("next/cache");
|
|
146
|
+
return unstable_cache(fn, keyParts.map(String), { tags })();
|
|
147
|
+
}
|
|
148
|
+
async function queryDoc(args, { config: configPromise }) {
|
|
149
|
+
return withUnstableCache(Object.values(args), [createCollectionCacheKey(args)], async () => {
|
|
150
|
+
if ("globalSlug" in args)
|
|
151
|
+
return queryGlobal({ ...args, config: configPromise });
|
|
152
|
+
else
|
|
153
|
+
return queryDocBySlug({ ...args, config: configPromise });
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
async function queryDocBySlug({
|
|
232
157
|
collectionSlug,
|
|
233
158
|
slug,
|
|
234
159
|
slugField = "slug",
|
|
@@ -236,155 +161,98 @@ var queryDocBySlug = cache(async function queryDocBySlug2({
|
|
|
236
161
|
draft = false,
|
|
237
162
|
config
|
|
238
163
|
}) {
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
164
|
+
return withUnstableCache([collectionSlug, slug, locale, draft], [createCollectionCacheKey({ collectionSlug, slug, locale })], async () => {
|
|
165
|
+
const payload = await getPayload({ config });
|
|
166
|
+
const result = await payload.find({
|
|
167
|
+
collection: collectionSlug,
|
|
168
|
+
draft,
|
|
169
|
+
limit: 1,
|
|
170
|
+
pagination: false,
|
|
171
|
+
overrideAccess: draft,
|
|
172
|
+
where: { [slugField]: { equals: slug } },
|
|
173
|
+
locale
|
|
174
|
+
});
|
|
175
|
+
return result.docs?.[0] ?? null;
|
|
249
176
|
});
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
});
|
|
254
|
-
var queryAllDocs = cache(async function queryAllDocs2({
|
|
255
|
-
collectionSlug,
|
|
256
|
-
slugField = "slug",
|
|
177
|
+
}
|
|
178
|
+
async function queryGlobal({
|
|
179
|
+
globalSlug,
|
|
257
180
|
locale,
|
|
181
|
+
draft = false,
|
|
258
182
|
config
|
|
259
183
|
}) {
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
select: { [slugField]: true },
|
|
269
|
-
locale
|
|
184
|
+
return withUnstableCache([globalSlug, locale, draft], [createCollectionCacheKey({ globalSlug, locale })], async () => {
|
|
185
|
+
const payload = await getPayload({ config });
|
|
186
|
+
try {
|
|
187
|
+
return await payload.findGlobal({ slug: globalSlug, draft, locale });
|
|
188
|
+
} catch (error) {
|
|
189
|
+
console.warn("[WWW] queryGlobal failed", { globalSlug, locale, error: String(error) });
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
270
192
|
});
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
return docs;
|
|
274
|
-
});
|
|
275
|
-
var queryAllLocaleSlugs = cache(async function queryAllLocaleSlugs2({
|
|
193
|
+
}
|
|
194
|
+
async function queryAllDocs({
|
|
276
195
|
collectionSlug,
|
|
277
|
-
slug,
|
|
278
196
|
slugField = "slug",
|
|
279
197
|
locale,
|
|
280
198
|
config
|
|
281
199
|
}) {
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
collection: collectionSlug,
|
|
286
|
-
draft: false,
|
|
287
|
-
limit: 1,
|
|
288
|
-
pagination: false,
|
|
289
|
-
overrideAccess: false,
|
|
290
|
-
locale,
|
|
291
|
-
where: { [slugField]: { equals: slug } },
|
|
292
|
-
select: { [slugField]: true }
|
|
293
|
-
});
|
|
294
|
-
const doc = result.docs?.[0];
|
|
295
|
-
if (!doc) {
|
|
296
|
-
console.log("[WWW] render/metadata:queryAllLocaleSlugs -> undefined (no doc)");
|
|
297
|
-
return;
|
|
298
|
-
}
|
|
299
|
-
let fieldValue = doc[slugField];
|
|
300
|
-
if (doc.id != null) {
|
|
301
|
-
const allLocales = await payload.findByID({
|
|
200
|
+
return withUnstableCache([collectionSlug, slugField, locale], [createCollectionCacheKey({ collectionSlug, slug: "__all__", locale })], async () => {
|
|
201
|
+
const payload = await getPayload({ config });
|
|
202
|
+
const result = await payload.find({
|
|
302
203
|
collection: collectionSlug,
|
|
303
|
-
id: doc.id,
|
|
304
|
-
locale: "all",
|
|
305
204
|
draft: false,
|
|
205
|
+
limit: 1000,
|
|
206
|
+
pagination: false,
|
|
306
207
|
overrideAccess: false,
|
|
307
|
-
select: { [slugField]: true }
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
const rawLocales = Array.isArray(resolved?.localization?.localeCodes) ? resolved.localization.localeCodes : resolved?.localization?.locales?.map((l) => l.code) ?? [];
|
|
318
|
-
const out = {};
|
|
319
|
-
for (const l of rawLocales)
|
|
320
|
-
out[l] = String(fieldValue ?? slug);
|
|
321
|
-
console.log("[WWW] render/metadata:queryAllLocaleSlugs -> flat-fanout locales=", rawLocales.length, "slug=", JSON.stringify(fieldValue ?? slug));
|
|
322
|
-
return out;
|
|
323
|
-
});
|
|
324
|
-
var queryGlobal = cache(async function queryGlobal2({
|
|
325
|
-
globalSlug,
|
|
326
|
-
locale,
|
|
327
|
-
depth = 0,
|
|
328
|
-
draft = false,
|
|
208
|
+
select: { [slugField]: true },
|
|
209
|
+
locale
|
|
210
|
+
});
|
|
211
|
+
return result.docs ?? [];
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
async function queryAllLocaleSlugs({
|
|
215
|
+
collectionSlug,
|
|
216
|
+
id,
|
|
217
|
+
slugField = "slug",
|
|
329
218
|
config
|
|
330
219
|
}) {
|
|
331
|
-
console.log("[WWW] render/metadata:queryGlobal global=", globalSlug, "locale=", locale, "depth=", depth, "draft=", draft);
|
|
332
220
|
const payload = await getPayload({ config });
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
console.log("[WWW] render/metadata:queryGlobal -> hit");
|
|
341
|
-
return global;
|
|
342
|
-
} catch (error) {
|
|
343
|
-
console.warn("[WWW] render/metadata:queryGlobal failed for slug=", globalSlug, "err=", String(error));
|
|
344
|
-
return null;
|
|
345
|
-
}
|
|
346
|
-
});
|
|
347
|
-
function getRenderModuleExports(exportName, collection, importMap) {
|
|
348
|
-
const path = collection?.custom?.path;
|
|
349
|
-
if (!path) {
|
|
350
|
-
console.log("[WWW] render/metadata:getRenderModuleExports no custom.path exportName=", exportName);
|
|
351
|
-
return;
|
|
352
|
-
}
|
|
353
|
-
const mod = getFromImportMap(path, importMap);
|
|
354
|
-
const value = mod?.[exportName];
|
|
355
|
-
console.log("[WWW] render/metadata:getRenderModuleExports exportName=", exportName, "path=", path, "hit=", Boolean(value));
|
|
356
|
-
return value;
|
|
221
|
+
const doc = await payload.findByID({
|
|
222
|
+
collection: collectionSlug,
|
|
223
|
+
id,
|
|
224
|
+
locale: "all",
|
|
225
|
+
select: { [slugField]: true }
|
|
226
|
+
});
|
|
227
|
+
return doc?.[slugField];
|
|
357
228
|
}
|
|
358
229
|
|
|
359
230
|
// src/exports/metadata.ts
|
|
360
|
-
var
|
|
231
|
+
var metadata = {
|
|
361
232
|
buildArticleLd,
|
|
362
233
|
buildBreadcrumbsLd,
|
|
363
234
|
buildOrganizationLd,
|
|
364
|
-
|
|
235
|
+
buildWebSiteLd,
|
|
236
|
+
buildProductLd,
|
|
237
|
+
buildRootJsonLd,
|
|
365
238
|
queryDocBySlug,
|
|
366
239
|
queryAllDocs,
|
|
367
240
|
queryAllLocaleSlugs,
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
segmentsToUrlPath,
|
|
371
|
-
storedSlugToSegments,
|
|
372
|
-
buildCanonicalUrl,
|
|
373
|
-
getRenderModuleExports
|
|
241
|
+
paramsSlugToSlug,
|
|
242
|
+
slugToParamsSlug
|
|
374
243
|
};
|
|
244
|
+
var metadata_default = metadata;
|
|
375
245
|
export {
|
|
376
|
-
|
|
377
|
-
segmentsToUrlPath,
|
|
378
|
-
segmentsToStoredSlug,
|
|
246
|
+
slugToParamsSlug,
|
|
379
247
|
queryDocBySlug,
|
|
380
248
|
queryAllLocaleSlugs,
|
|
381
249
|
queryAllDocs,
|
|
382
|
-
|
|
383
|
-
getRenderModuleExports,
|
|
250
|
+
paramsSlugToSlug,
|
|
384
251
|
metadata_default as default,
|
|
252
|
+
buildWebSiteLd,
|
|
253
|
+
buildRootJsonLd,
|
|
254
|
+
buildProductLd,
|
|
385
255
|
buildOrganizationLd,
|
|
386
|
-
buildHreflangAlternates,
|
|
387
|
-
buildCanonicalUrl,
|
|
388
256
|
buildBreadcrumbsLd,
|
|
389
257
|
buildArticleLd
|
|
390
258
|
};
|