@justanarthur/payload-www 0.3.4 → 1.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 +317 -307
- package/dist/access.d.ts +2 -2
- package/dist/access.js +6 -30
- package/dist/blocks.d.ts +0 -10
- package/dist/blocks.js +8 -33
- package/dist/collections.d.ts +33 -225
- package/dist/collections.js +186 -661
- package/dist/config.d.ts +19 -105
- package/dist/config.js +263 -868
- package/dist/fields.d.ts +4 -46
- package/dist/fields.js +183 -73
- 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 -258
- package/dist/pages.d.ts +37 -319
- package/dist/pages.js +355 -973
- package/dist/render-pages.d.ts +69 -564
- package/dist/render-pages.js +476 -1502
- package/dist/sitemap.d.ts +10 -0
- package/dist/sitemap.js +324 -0
- package/dist/translator.js +0 -15
- package/dist/utils.d.ts +4 -12
- package/dist/utils.js +10 -56
- package/package.json +75 -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 -44
- package/dist/core-blocks.d.ts +0 -24
- package/dist/core-blocks.js +0 -89
- package/dist/core-fields.d.ts +0 -73
- package/dist/core-fields.js +0 -181
- package/dist/core-utils.d.ts +0 -16
- package/dist/core-utils.js +0 -73
- package/dist/data-collections.d.ts +0 -229
- package/dist/data-collections.js +0 -697
- 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 -1134
- package/dist/globals.d.ts +0 -69
- package/dist/globals.js +0 -259
- 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 -393
- package/dist/render-utils.d.ts +0 -166
- package/dist/render-utils.js +0 -401
- 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 -2265
- package/dist/test.d.ts +0 -30
- package/dist/test.js +0 -1134
- package/dist/with-www-config.d.ts +0 -108
- package/dist/with-www-config.js +0 -1030
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,127 +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
|
-
|
|
228
|
-
const
|
|
229
|
-
|
|
230
|
-
|
|
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}`;
|
|
231
141
|
}
|
|
232
142
|
|
|
233
143
|
// src/render/metadata/query.ts
|
|
234
|
-
|
|
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({
|
|
235
157
|
collectionSlug,
|
|
236
158
|
slug,
|
|
237
159
|
slugField = "slug",
|
|
@@ -239,155 +161,98 @@ var queryDocBySlug = cache(async function queryDocBySlug2({
|
|
|
239
161
|
draft = false,
|
|
240
162
|
config
|
|
241
163
|
}) {
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
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;
|
|
252
176
|
});
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
});
|
|
257
|
-
var queryAllDocs = cache(async function queryAllDocs2({
|
|
258
|
-
collectionSlug,
|
|
259
|
-
slugField = "slug",
|
|
177
|
+
}
|
|
178
|
+
async function queryGlobal({
|
|
179
|
+
globalSlug,
|
|
260
180
|
locale,
|
|
181
|
+
draft = false,
|
|
261
182
|
config
|
|
262
183
|
}) {
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
select: { [slugField]: true },
|
|
272
|
-
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
|
+
}
|
|
273
192
|
});
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
return docs;
|
|
277
|
-
});
|
|
278
|
-
var queryAllLocaleSlugs = cache(async function queryAllLocaleSlugs2({
|
|
193
|
+
}
|
|
194
|
+
async function queryAllDocs({
|
|
279
195
|
collectionSlug,
|
|
280
|
-
slug,
|
|
281
196
|
slugField = "slug",
|
|
282
197
|
locale,
|
|
283
198
|
config
|
|
284
199
|
}) {
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
collection: collectionSlug,
|
|
289
|
-
draft: false,
|
|
290
|
-
limit: 1,
|
|
291
|
-
pagination: false,
|
|
292
|
-
overrideAccess: false,
|
|
293
|
-
locale,
|
|
294
|
-
where: { [slugField]: { equals: slug } },
|
|
295
|
-
select: { [slugField]: true }
|
|
296
|
-
});
|
|
297
|
-
const doc = result.docs?.[0];
|
|
298
|
-
if (!doc) {
|
|
299
|
-
console.log("[WWW] render/metadata:queryAllLocaleSlugs -> undefined (no doc)");
|
|
300
|
-
return;
|
|
301
|
-
}
|
|
302
|
-
let fieldValue = doc[slugField];
|
|
303
|
-
if (doc.id != null) {
|
|
304
|
-
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({
|
|
305
203
|
collection: collectionSlug,
|
|
306
|
-
id: doc.id,
|
|
307
|
-
locale: "all",
|
|
308
204
|
draft: false,
|
|
205
|
+
limit: 1000,
|
|
206
|
+
pagination: false,
|
|
309
207
|
overrideAccess: false,
|
|
310
|
-
select: { [slugField]: true }
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
const rawLocales = Array.isArray(resolved?.localization?.localeCodes) ? resolved.localization.localeCodes : resolved?.localization?.locales?.map((l) => l.code) ?? [];
|
|
321
|
-
const out = {};
|
|
322
|
-
for (const l of rawLocales)
|
|
323
|
-
out[l] = String(fieldValue ?? slug);
|
|
324
|
-
console.log("[WWW] render/metadata:queryAllLocaleSlugs -> flat-fanout locales=", rawLocales.length, "slug=", JSON.stringify(fieldValue ?? slug));
|
|
325
|
-
return out;
|
|
326
|
-
});
|
|
327
|
-
var queryGlobal = cache(async function queryGlobal2({
|
|
328
|
-
globalSlug,
|
|
329
|
-
locale,
|
|
330
|
-
depth = 0,
|
|
331
|
-
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",
|
|
332
218
|
config
|
|
333
219
|
}) {
|
|
334
|
-
console.log("[WWW] render/metadata:queryGlobal global=", globalSlug, "locale=", locale, "depth=", depth, "draft=", draft);
|
|
335
220
|
const payload = await getPayload({ config });
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
console.log("[WWW] render/metadata:queryGlobal -> hit");
|
|
344
|
-
return global;
|
|
345
|
-
} catch (error) {
|
|
346
|
-
console.warn("[WWW] render/metadata:queryGlobal failed for slug=", globalSlug, "err=", String(error));
|
|
347
|
-
return null;
|
|
348
|
-
}
|
|
349
|
-
});
|
|
350
|
-
function getRenderModuleExports(exportName, collection, importMap) {
|
|
351
|
-
const path = collection?.custom?.path;
|
|
352
|
-
if (!path) {
|
|
353
|
-
console.log("[WWW] render/metadata:getRenderModuleExports no custom.path exportName=", exportName);
|
|
354
|
-
return;
|
|
355
|
-
}
|
|
356
|
-
const mod = getFromImportMap(path, importMap);
|
|
357
|
-
const value = mod?.[exportName];
|
|
358
|
-
console.log("[WWW] render/metadata:getRenderModuleExports exportName=", exportName, "path=", path, "hit=", Boolean(value));
|
|
359
|
-
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];
|
|
360
228
|
}
|
|
361
229
|
|
|
362
230
|
// src/exports/metadata.ts
|
|
363
|
-
var
|
|
231
|
+
var metadata = {
|
|
364
232
|
buildArticleLd,
|
|
365
233
|
buildBreadcrumbsLd,
|
|
366
234
|
buildOrganizationLd,
|
|
367
|
-
|
|
235
|
+
buildWebSiteLd,
|
|
236
|
+
buildProductLd,
|
|
237
|
+
buildRootJsonLd,
|
|
368
238
|
queryDocBySlug,
|
|
369
239
|
queryAllDocs,
|
|
370
240
|
queryAllLocaleSlugs,
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
segmentsToUrlPath,
|
|
374
|
-
storedSlugToSegments,
|
|
375
|
-
buildCanonicalUrl,
|
|
376
|
-
getRenderModuleExports
|
|
241
|
+
paramsSlugToSlug,
|
|
242
|
+
slugToParamsSlug
|
|
377
243
|
};
|
|
244
|
+
var metadata_default = metadata;
|
|
378
245
|
export {
|
|
379
|
-
|
|
380
|
-
segmentsToUrlPath,
|
|
381
|
-
segmentsToStoredSlug,
|
|
246
|
+
slugToParamsSlug,
|
|
382
247
|
queryDocBySlug,
|
|
383
248
|
queryAllLocaleSlugs,
|
|
384
249
|
queryAllDocs,
|
|
385
|
-
|
|
386
|
-
getRenderModuleExports,
|
|
250
|
+
paramsSlugToSlug,
|
|
387
251
|
metadata_default as default,
|
|
252
|
+
buildWebSiteLd,
|
|
253
|
+
buildRootJsonLd,
|
|
254
|
+
buildProductLd,
|
|
388
255
|
buildOrganizationLd,
|
|
389
|
-
buildHreflangAlternates,
|
|
390
|
-
buildCanonicalUrl,
|
|
391
256
|
buildBreadcrumbsLd,
|
|
392
257
|
buildArticleLd
|
|
393
258
|
};
|