@justanarthur/payload-www 0.3.2 → 0.3.4
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/access.js +13 -3
- package/dist/blocks.js +21 -7
- package/dist/collections.js +72 -19
- package/dist/components.js +1 -0
- package/dist/config.js +108 -26
- package/dist/core-access.js +13 -3
- package/dist/core-blocks.js +21 -7
- package/dist/core-fields.js +21 -7
- package/dist/core-utils.js +20 -6
- package/dist/data-collections.js +72 -19
- package/dist/data-test.js +108 -26
- package/dist/fields.js +21 -7
- package/dist/globals.js +18 -1
- package/dist/hooks.js +47 -15
- package/dist/index.js +1 -0
- package/dist/metadata.js +68 -22
- package/dist/pages.js +133 -39
- package/dist/render-components.js +13 -3
- package/dist/render-metadata.js +68 -22
- package/dist/render-pages.js +223 -59
- package/dist/render-utils.js +62 -16
- package/dist/server.js +245 -69
- package/dist/test.js +108 -26
- package/dist/utils.js +20 -6
- package/dist/with-www-config.js +108 -26
- package/package.json +1 -1
package/dist/pages.js
CHANGED
|
@@ -30,6 +30,7 @@ function PageShowcase({
|
|
|
30
30
|
metadataHeading = "Page metadata",
|
|
31
31
|
jsonLdHeading = "JSON-LD"
|
|
32
32
|
}) {
|
|
33
|
+
console.log("[WWW] render/components:PageShowcase jsonLdEntries=", jsonLd.length, "hasOg=", Boolean(metadata.openGraph), "hasTwitter=", Boolean(metadata.twitter), "canonical=", metadata.alternates?.canonical);
|
|
33
34
|
const og = metadata.openGraph;
|
|
34
35
|
const twitter = metadata.twitter;
|
|
35
36
|
const rows = [
|
|
@@ -147,6 +148,7 @@ function LocaleSwitcher({
|
|
|
147
148
|
labels
|
|
148
149
|
}) {
|
|
149
150
|
const locales = Object.keys(hreflangAlternates).filter((k) => k !== "x-default");
|
|
151
|
+
console.log("[WWW] render/components:LocaleSwitcher currentLocale=", currentLocale, "locales=", JSON.stringify(locales), "hasXDefault=", Boolean(hreflangAlternates["x-default"]));
|
|
150
152
|
return /* @__PURE__ */ jsx7("nav", {
|
|
151
153
|
"aria-label": "Language",
|
|
152
154
|
className: "locale-switcher",
|
|
@@ -186,17 +188,27 @@ var init_LocaleSwitcher = () => {};
|
|
|
186
188
|
|
|
187
189
|
// src/core/utils/getFromImportMap.ts
|
|
188
190
|
function getFromImportMap(key, importMap) {
|
|
189
|
-
|
|
191
|
+
const resolvedKey = key.includes("#") ? key : key + "#default";
|
|
192
|
+
const value = importMap[resolvedKey];
|
|
193
|
+
console.log("[WWW] core/utils:getFromImportMap key=", key, "resolved=", resolvedKey, "hit=", Boolean(value));
|
|
194
|
+
return value;
|
|
190
195
|
}
|
|
191
196
|
|
|
192
197
|
// src/core/utils/generateImportName.ts
|
|
193
198
|
function generateImportName(type, slug) {
|
|
194
199
|
switch (type) {
|
|
195
|
-
case "block":
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
return
|
|
200
|
+
case "block": {
|
|
201
|
+
const name = `Block${slug.replace(/(^\w|-\w)/g, (m) => m.replace("-", "").toUpperCase())}#default`;
|
|
202
|
+
console.log("[WWW] core/utils:generateImportName type=block slug=", slug, "->", name);
|
|
203
|
+
return name;
|
|
204
|
+
}
|
|
205
|
+
case "page": {
|
|
206
|
+
const name = `Page${slug.replace(/(^\w|-\w)/g, (m) => m.replace("-", "").toUpperCase())}#default`;
|
|
207
|
+
console.log("[WWW] core/utils:generateImportName type=page slug=", slug, "->", name);
|
|
208
|
+
return name;
|
|
209
|
+
}
|
|
199
210
|
default:
|
|
211
|
+
console.error("[WWW] core/utils:generateImportName unknown type:", type);
|
|
200
212
|
throw new Error(`Unknown type: ${type}`);
|
|
201
213
|
}
|
|
202
214
|
}
|
|
@@ -211,8 +223,11 @@ var RenderBlocks = ({
|
|
|
211
223
|
locale,
|
|
212
224
|
searchParams
|
|
213
225
|
}) => {
|
|
214
|
-
if (!blocks || !Array.isArray(blocks) || blocks.length === 0)
|
|
226
|
+
if (!blocks || !Array.isArray(blocks) || blocks.length === 0) {
|
|
227
|
+
console.log("[WWW] render/blocks:RenderBlocks no blocks (locale=", locale, ")");
|
|
215
228
|
return null;
|
|
229
|
+
}
|
|
230
|
+
console.log("[WWW] render/blocks:RenderBlocks rendering count=", blocks.length, "locale=", locale);
|
|
216
231
|
const rendered = [];
|
|
217
232
|
for (let i = 0;i < blocks.length; i++) {
|
|
218
233
|
const block = blocks[i];
|
|
@@ -220,9 +235,10 @@ var RenderBlocks = ({
|
|
|
220
235
|
const importMapPath = config.admin?.dependencies?.[blockType]?.path ?? generateImportName("block", blockType);
|
|
221
236
|
const Block = getFromImportMap(importMapPath, importMap);
|
|
222
237
|
if (!Block) {
|
|
223
|
-
console.warn(`
|
|
238
|
+
console.warn(`[WWW] render/blocks:RenderBlocks no block for type=${blockType} importMapPath=${importMapPath} (locale=${locale})`);
|
|
224
239
|
continue;
|
|
225
240
|
}
|
|
241
|
+
console.log("[WWW] render/blocks:RenderBlocks [", i, "] blockType=", blockType, "importMapPath=", importMapPath);
|
|
226
242
|
rendered.push(/* @__PURE__ */ jsx(Block, {
|
|
227
243
|
index: i,
|
|
228
244
|
...blockProps,
|
|
@@ -239,9 +255,12 @@ var RenderBlocks = ({
|
|
|
239
255
|
// src/render/pages/PagesPage.tsx
|
|
240
256
|
import { jsx as jsx2, Fragment as Fragment2 } from "react/jsx-runtime";
|
|
241
257
|
async function PagesPage({ doc, ...props }) {
|
|
242
|
-
if (!doc)
|
|
258
|
+
if (!doc) {
|
|
259
|
+
console.log("[WWW] render/pages:PagesPage no doc");
|
|
243
260
|
return /* @__PURE__ */ jsx2(Fragment2, {});
|
|
261
|
+
}
|
|
244
262
|
const blocks = doc.blocks ?? [];
|
|
263
|
+
console.log("[WWW] render/pages:PagesPage blocks=", blocks.length, "locale=", props.locale);
|
|
245
264
|
return /* @__PURE__ */ jsx2(Fragment2, {
|
|
246
265
|
children: /* @__PURE__ */ jsx2(RenderBlocks, {
|
|
247
266
|
blocks,
|
|
@@ -254,11 +273,14 @@ async function PagesPage({ doc, ...props }) {
|
|
|
254
273
|
import"server-only";
|
|
255
274
|
import { jsx as jsx3, jsxs, Fragment as Fragment3 } from "react/jsx-runtime";
|
|
256
275
|
function HeaderPage({ data, locale: _locale }) {
|
|
257
|
-
if (!data)
|
|
276
|
+
if (!data) {
|
|
277
|
+
console.log("[WWW] render/pages:HeaderPage no data");
|
|
258
278
|
return /* @__PURE__ */ jsx3(Fragment3, {});
|
|
279
|
+
}
|
|
259
280
|
const nav = data.nav ?? [];
|
|
260
281
|
const items = nav.filter((b) => b.blockType === "navItem");
|
|
261
282
|
const columns = nav.filter((b) => b.blockType === "navColumn");
|
|
283
|
+
console.log("[WWW] render/pages:HeaderPage items=", items.length, "columns=", columns.length, "locale=", _locale);
|
|
262
284
|
const renderLink = (link, fallbackHref = "#") => {
|
|
263
285
|
if (!link)
|
|
264
286
|
return /* @__PURE__ */ jsx3("a", {
|
|
@@ -312,11 +334,14 @@ function HeaderPage({ data, locale: _locale }) {
|
|
|
312
334
|
import"server-only";
|
|
313
335
|
import { jsx as jsx4, jsxs as jsxs2, Fragment as Fragment4 } from "react/jsx-runtime";
|
|
314
336
|
function FooterPage({ data, locale: _locale }) {
|
|
315
|
-
if (!data)
|
|
337
|
+
if (!data) {
|
|
338
|
+
console.log("[WWW] render/pages:FooterPage no data");
|
|
316
339
|
return /* @__PURE__ */ jsx4(Fragment4, {});
|
|
340
|
+
}
|
|
317
341
|
const nav = data.nav ?? [];
|
|
318
342
|
const items = nav.filter((b) => b.blockType === "navItem");
|
|
319
343
|
const columns = nav.filter((b) => b.blockType === "navColumn");
|
|
344
|
+
console.log("[WWW] render/pages:FooterPage items=", items.length, "columns=", columns.length, "locale=", _locale);
|
|
320
345
|
const renderLink = (link, fallbackHref = "#") => {
|
|
321
346
|
if (!link)
|
|
322
347
|
return /* @__PURE__ */ jsx4("a", {
|
|
@@ -386,13 +411,17 @@ var STATIC_PAGES_SLUG = "staticPages";
|
|
|
386
411
|
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
387
412
|
function renderCollectionModule(collection = [], slug, importMap, props) {
|
|
388
413
|
const renderPath = collection?.find((c) => c.slug === slug)?.custom?.path;
|
|
389
|
-
if (!renderPath)
|
|
414
|
+
if (!renderPath) {
|
|
415
|
+
console.log("[WWW] render/utils:renderCollectionModule no custom.path slug=", slug);
|
|
390
416
|
return null;
|
|
417
|
+
}
|
|
391
418
|
const CollectionRenderModule = getFromImportMap(renderPath, importMap);
|
|
392
419
|
if (!CollectionRenderModule) {
|
|
420
|
+
console.error("[WWW] render/utils:renderCollectionModule not found slug=", slug, "path=", renderPath);
|
|
393
421
|
if (false) {}
|
|
394
422
|
return null;
|
|
395
423
|
}
|
|
424
|
+
console.log("[WWW] render/utils:renderCollectionModule rendering slug=", slug, "path=", renderPath);
|
|
396
425
|
return /* @__PURE__ */ jsx5(CollectionRenderModule, {
|
|
397
426
|
importMap,
|
|
398
427
|
...props
|
|
@@ -413,6 +442,7 @@ async function buildHreflangAlternates({
|
|
|
413
442
|
localePrefix = "always"
|
|
414
443
|
}) {
|
|
415
444
|
const allLocaleSlugs = await queryAllLocaleSlugs(storedSlug, locale);
|
|
445
|
+
console.log("[WWW] render/metadata:buildHreflangAlternates storedSlug=", storedSlug, "locale=", locale, "allLocaleSlugs=", JSON.stringify(allLocaleSlugs));
|
|
416
446
|
const languages = {};
|
|
417
447
|
const urlFor = (l, slug) => {
|
|
418
448
|
const trimmedPrefix = urlPrefix.replace(/^\/|\/$/g, "");
|
|
@@ -430,6 +460,7 @@ async function buildHreflangAlternates({
|
|
|
430
460
|
if (allLocaleSlugs?.[defaultLocale]) {
|
|
431
461
|
languages["x-default"] = urlFor(defaultLocale, allLocaleSlugs[defaultLocale]);
|
|
432
462
|
}
|
|
463
|
+
console.log("[WWW] render/metadata:buildHreflangAlternates ->", JSON.stringify(languages));
|
|
433
464
|
return languages;
|
|
434
465
|
}
|
|
435
466
|
|
|
@@ -444,6 +475,11 @@ function getImageUrl(doc, siteUrl) {
|
|
|
444
475
|
return img.url.startsWith("http") ? img.url : `${siteUrl}${img.url}`;
|
|
445
476
|
return null;
|
|
446
477
|
}
|
|
478
|
+
function getImageUrlWithLog(doc, siteUrl) {
|
|
479
|
+
const result = getImageUrl(doc, siteUrl);
|
|
480
|
+
console.log("[WWW] render/metadata:jsonld:getImageUrl ->", result);
|
|
481
|
+
return result;
|
|
482
|
+
}
|
|
447
483
|
function resolveLocalizedField(value, locale) {
|
|
448
484
|
if (value == null)
|
|
449
485
|
return "";
|
|
@@ -465,6 +501,13 @@ function resolveLocalizedField(value, locale) {
|
|
|
465
501
|
}
|
|
466
502
|
return Object.values(obj).filter((v) => typeof v === "string" && v.length > 0).join(" / ");
|
|
467
503
|
}
|
|
504
|
+
function resolveLocalizedFieldWithLog(value, locale) {
|
|
505
|
+
const result = resolveLocalizedField(value, locale);
|
|
506
|
+
if (value && typeof value === "object") {
|
|
507
|
+
console.log("[WWW] render/metadata:jsonld:resolveLocalizedField locale=", locale, "->", JSON.stringify(result));
|
|
508
|
+
}
|
|
509
|
+
return result;
|
|
510
|
+
}
|
|
468
511
|
function buildArticleLd({
|
|
469
512
|
doc,
|
|
470
513
|
url,
|
|
@@ -475,12 +518,13 @@ function buildArticleLd({
|
|
|
475
518
|
publisherLogo
|
|
476
519
|
}) {
|
|
477
520
|
const name = publisherName ?? new URL(siteUrl).hostname;
|
|
521
|
+
console.log("[WWW] render/metadata:buildArticleLd url=", url, "locale=", locale, "type=", type, "publisherName=", name);
|
|
478
522
|
const ld = {
|
|
479
523
|
"@context": "https://schema.org",
|
|
480
524
|
"@type": type,
|
|
481
525
|
"@id": `${url}#article`,
|
|
482
|
-
headline:
|
|
483
|
-
description:
|
|
526
|
+
headline: resolveLocalizedFieldWithLog(doc.title, locale),
|
|
527
|
+
description: resolveLocalizedFieldWithLog(doc.meta?.description ?? doc.description ?? doc.excerpt, locale),
|
|
484
528
|
inLanguage: locale,
|
|
485
529
|
url,
|
|
486
530
|
dateModified: doc.updatedAt ? new Date(doc.updatedAt).toISOString() : undefined
|
|
@@ -488,7 +532,7 @@ function buildArticleLd({
|
|
|
488
532
|
const datePublished = doc.publishedAt ?? doc.createdAt;
|
|
489
533
|
if (datePublished)
|
|
490
534
|
ld.datePublished = new Date(datePublished).toISOString();
|
|
491
|
-
const imgUrl =
|
|
535
|
+
const imgUrl = getImageUrlWithLog(doc, siteUrl);
|
|
492
536
|
if (imgUrl)
|
|
493
537
|
ld.image = imgUrl;
|
|
494
538
|
ld.author = { "@type": "Organization", name, url: siteUrl };
|
|
@@ -504,6 +548,7 @@ function buildBreadcrumbsLd({
|
|
|
504
548
|
items,
|
|
505
549
|
currentUrl
|
|
506
550
|
}) {
|
|
551
|
+
console.log("[WWW] render/metadata:buildBreadcrumbsLd items=", items.length, "currentUrl=", currentUrl);
|
|
507
552
|
return {
|
|
508
553
|
"@context": "https://schema.org",
|
|
509
554
|
"@type": "BreadcrumbList",
|
|
@@ -521,6 +566,7 @@ function buildOrganizationLd({
|
|
|
521
566
|
logo,
|
|
522
567
|
sameAs
|
|
523
568
|
}) {
|
|
569
|
+
console.log("[WWW] render/metadata:buildOrganizationLd siteUrl=", siteUrl, "name=", name, "logo?", Boolean(logo), "sameAs?", Boolean(sameAs));
|
|
524
570
|
const org = {
|
|
525
571
|
"@context": "https://schema.org",
|
|
526
572
|
"@type": "Organization",
|
|
@@ -536,23 +582,29 @@ function buildOrganizationLd({
|
|
|
536
582
|
// src/render/metadata/slug.ts
|
|
537
583
|
var SLUG_NESTED_DIVIDER = "_";
|
|
538
584
|
function segmentsToStoredSlug(segments, nested) {
|
|
539
|
-
if (!Array.isArray(segments))
|
|
585
|
+
if (!Array.isArray(segments)) {
|
|
586
|
+
console.log("[WWW] render/metadata:segmentsToStoredSlug string passthrough:", JSON.stringify(segments));
|
|
540
587
|
return segments;
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
588
|
+
}
|
|
589
|
+
const result = nested ? segments.join(SLUG_NESTED_DIVIDER) : segments[0] ?? "";
|
|
590
|
+
console.log("[WWW] render/metadata:segmentsToStoredSlug nested=", nested, "segments=", JSON.stringify(segments), "->", result);
|
|
591
|
+
return result;
|
|
544
592
|
}
|
|
545
593
|
function segmentsToUrlPath(segments, nested) {
|
|
594
|
+
let result;
|
|
546
595
|
if (!Array.isArray(segments))
|
|
547
|
-
|
|
548
|
-
if (nested)
|
|
549
|
-
|
|
550
|
-
|
|
596
|
+
result = "/" + segments;
|
|
597
|
+
else if (nested)
|
|
598
|
+
result = "/" + segments.join("/");
|
|
599
|
+
else
|
|
600
|
+
result = "/" + (segments[0] ?? "");
|
|
601
|
+
console.log("[WWW] render/metadata:segmentsToUrlPath nested=", nested, "segments=", JSON.stringify(segments), "->", result);
|
|
602
|
+
return result;
|
|
551
603
|
}
|
|
552
604
|
function storedSlugToSegments(storedSlug, nested) {
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
return
|
|
605
|
+
const result = nested ? storedSlug.split(SLUG_NESTED_DIVIDER) : storedSlug;
|
|
606
|
+
console.log("[WWW] render/metadata:storedSlugToSegments nested=", nested, "storedSlug=", storedSlug, "->", JSON.stringify(result));
|
|
607
|
+
return result;
|
|
556
608
|
}
|
|
557
609
|
function buildCanonicalUrl({
|
|
558
610
|
siteUrl,
|
|
@@ -562,7 +614,9 @@ function buildCanonicalUrl({
|
|
|
562
614
|
}) {
|
|
563
615
|
const trimmedPrefix = urlPrefix.replace(/^\/|\/$/g, "");
|
|
564
616
|
const prefixSegment = trimmedPrefix ? `/${trimmedPrefix}` : "";
|
|
565
|
-
|
|
617
|
+
const result = `${siteUrl}/${locale}${prefixSegment}${urlPath}`;
|
|
618
|
+
console.log("[WWW] render/metadata:buildCanonicalUrl siteUrl=", siteUrl, "locale=", locale, "urlPrefix=", urlPrefix, "urlPath=", urlPath, "->", result);
|
|
619
|
+
return result;
|
|
566
620
|
}
|
|
567
621
|
function getUrlPath(segments, nested, homeSlug) {
|
|
568
622
|
const urlPath = segmentsToUrlPath(segments, nested);
|
|
@@ -588,6 +642,7 @@ var queryDocBySlug = cache(async function queryDocBySlug2({
|
|
|
588
642
|
draft = false,
|
|
589
643
|
config
|
|
590
644
|
}) {
|
|
645
|
+
console.log("[WWW] render/metadata:queryDocBySlug collection=", collectionSlug, "slug=", slug, "slugField=", slugField, "locale=", locale, "draft=", draft);
|
|
591
646
|
const payload = await getPayload({ config });
|
|
592
647
|
const result = await payload.find({
|
|
593
648
|
collection: collectionSlug,
|
|
@@ -598,7 +653,9 @@ var queryDocBySlug = cache(async function queryDocBySlug2({
|
|
|
598
653
|
where: { [slugField]: { equals: slug } },
|
|
599
654
|
locale
|
|
600
655
|
});
|
|
601
|
-
|
|
656
|
+
const doc = result.docs?.[0] ?? null;
|
|
657
|
+
console.log("[WWW] render/metadata:queryDocBySlug ->", doc ? "hit" : "miss");
|
|
658
|
+
return doc;
|
|
602
659
|
});
|
|
603
660
|
var queryAllDocs = cache(async function queryAllDocs2({
|
|
604
661
|
collectionSlug,
|
|
@@ -606,6 +663,7 @@ var queryAllDocs = cache(async function queryAllDocs2({
|
|
|
606
663
|
locale,
|
|
607
664
|
config
|
|
608
665
|
}) {
|
|
666
|
+
console.log("[WWW] render/metadata:queryAllDocs collection=", collectionSlug, "locale=", locale);
|
|
609
667
|
const payload = await getPayload({ config });
|
|
610
668
|
const result = await payload.find({
|
|
611
669
|
collection: collectionSlug,
|
|
@@ -616,7 +674,9 @@ var queryAllDocs = cache(async function queryAllDocs2({
|
|
|
616
674
|
select: { [slugField]: true },
|
|
617
675
|
locale
|
|
618
676
|
});
|
|
619
|
-
|
|
677
|
+
const docs = result.docs ?? [];
|
|
678
|
+
console.log("[WWW] render/metadata:queryAllDocs -> count=", docs.length);
|
|
679
|
+
return docs;
|
|
620
680
|
});
|
|
621
681
|
var queryAllLocaleSlugs = cache(async function queryAllLocaleSlugs2({
|
|
622
682
|
collectionSlug,
|
|
@@ -625,6 +685,7 @@ var queryAllLocaleSlugs = cache(async function queryAllLocaleSlugs2({
|
|
|
625
685
|
locale,
|
|
626
686
|
config
|
|
627
687
|
}) {
|
|
688
|
+
console.log("[WWW] render/metadata:queryAllLocaleSlugs collection=", collectionSlug, "slug=", slug, "locale=", locale);
|
|
628
689
|
const payload = await getPayload({ config });
|
|
629
690
|
const result = await payload.find({
|
|
630
691
|
collection: collectionSlug,
|
|
@@ -637,8 +698,10 @@ var queryAllLocaleSlugs = cache(async function queryAllLocaleSlugs2({
|
|
|
637
698
|
select: { [slugField]: true }
|
|
638
699
|
});
|
|
639
700
|
const doc = result.docs?.[0];
|
|
640
|
-
if (!doc)
|
|
701
|
+
if (!doc) {
|
|
702
|
+
console.log("[WWW] render/metadata:queryAllLocaleSlugs -> undefined (no doc)");
|
|
641
703
|
return;
|
|
704
|
+
}
|
|
642
705
|
let fieldValue = doc[slugField];
|
|
643
706
|
if (doc.id != null) {
|
|
644
707
|
const allLocales = await payload.findByID({
|
|
@@ -653,6 +716,7 @@ var queryAllLocaleSlugs = cache(async function queryAllLocaleSlugs2({
|
|
|
653
716
|
fieldValue = allLocales[slugField];
|
|
654
717
|
}
|
|
655
718
|
if (fieldValue && typeof fieldValue === "object") {
|
|
719
|
+
console.log("[WWW] render/metadata:queryAllLocaleSlugs -> localized map=", JSON.stringify(fieldValue));
|
|
656
720
|
return fieldValue;
|
|
657
721
|
}
|
|
658
722
|
const resolved = await config;
|
|
@@ -660,6 +724,7 @@ var queryAllLocaleSlugs = cache(async function queryAllLocaleSlugs2({
|
|
|
660
724
|
const out = {};
|
|
661
725
|
for (const l of rawLocales)
|
|
662
726
|
out[l] = String(fieldValue ?? slug);
|
|
727
|
+
console.log("[WWW] render/metadata:queryAllLocaleSlugs -> flat-fanout locales=", rawLocales.length, "slug=", JSON.stringify(fieldValue ?? slug));
|
|
663
728
|
return out;
|
|
664
729
|
});
|
|
665
730
|
var queryGlobal = cache(async function queryGlobal2({
|
|
@@ -669,6 +734,7 @@ var queryGlobal = cache(async function queryGlobal2({
|
|
|
669
734
|
draft = false,
|
|
670
735
|
config
|
|
671
736
|
}) {
|
|
737
|
+
console.log("[WWW] render/metadata:queryGlobal global=", globalSlug, "locale=", locale, "depth=", depth, "draft=", draft);
|
|
672
738
|
const payload = await getPayload({ config });
|
|
673
739
|
try {
|
|
674
740
|
const global = await payload.findGlobal({
|
|
@@ -677,17 +743,23 @@ var queryGlobal = cache(async function queryGlobal2({
|
|
|
677
743
|
draft,
|
|
678
744
|
locale
|
|
679
745
|
});
|
|
746
|
+
console.log("[WWW] render/metadata:queryGlobal -> hit");
|
|
680
747
|
return global;
|
|
681
|
-
} catch {
|
|
748
|
+
} catch (error) {
|
|
749
|
+
console.warn("[WWW] render/metadata:queryGlobal failed for slug=", globalSlug, "err=", String(error));
|
|
682
750
|
return null;
|
|
683
751
|
}
|
|
684
752
|
});
|
|
685
753
|
function getRenderModuleExports(exportName, collection, importMap) {
|
|
686
754
|
const path = collection?.custom?.path;
|
|
687
|
-
if (!path)
|
|
755
|
+
if (!path) {
|
|
756
|
+
console.log("[WWW] render/metadata:getRenderModuleExports no custom.path exportName=", exportName);
|
|
688
757
|
return;
|
|
758
|
+
}
|
|
689
759
|
const mod = getFromImportMap(path, importMap);
|
|
690
|
-
|
|
760
|
+
const value = mod?.[exportName];
|
|
761
|
+
console.log("[WWW] render/metadata:getRenderModuleExports exportName=", exportName, "path=", path, "hit=", Boolean(value));
|
|
762
|
+
return value;
|
|
691
763
|
}
|
|
692
764
|
|
|
693
765
|
// src/render/pages/createCollectionPageExports.tsx
|
|
@@ -720,11 +792,15 @@ function createCollectionPageExports({
|
|
|
720
792
|
const localePrefixMode = typeof routing.localePrefix === "string" ? routing.localePrefix : routing.localePrefix?.mode ?? "always";
|
|
721
793
|
const buildLocalePath = (locale, storedSlug) => {
|
|
722
794
|
const urlPath = getUrlPath(storedSlugToSegments(storedSlug, nested), nested, HOME_SLUG);
|
|
795
|
+
let result;
|
|
723
796
|
if (localePrefixMode === "never")
|
|
724
|
-
|
|
725
|
-
if (localePrefixMode === "as-needed" && locale === defaultLocale)
|
|
726
|
-
|
|
727
|
-
|
|
797
|
+
result = urlPath;
|
|
798
|
+
else if (localePrefixMode === "as-needed" && locale === defaultLocale)
|
|
799
|
+
result = urlPath;
|
|
800
|
+
else
|
|
801
|
+
result = `/${locale}${urlPath}`;
|
|
802
|
+
console.log("[WWW] render/pages:createCollectionPageExports:buildLocalePath locale=", locale, "storedSlug=", storedSlug, "->", result);
|
|
803
|
+
return result;
|
|
728
804
|
};
|
|
729
805
|
async function fetchDoc(locale, storedSlug, draft = false) {
|
|
730
806
|
return queryDocBySlug({
|
|
@@ -755,13 +831,16 @@ function createCollectionPageExports({
|
|
|
755
831
|
for (const [key, url] of Object.entries(languages)) {
|
|
756
832
|
alternates[key] = url;
|
|
757
833
|
}
|
|
834
|
+
console.log("[WWW] render/pages:createCollectionPageExports:resolveHreflangAlternates canonical=", canonical, "alts=", JSON.stringify(alternates));
|
|
758
835
|
return { alternates, canonical };
|
|
759
836
|
}
|
|
760
837
|
const default_ = async (props) => {
|
|
761
838
|
const { slug: rawSlugSegments, locale: incomingLocale } = await props.params ?? {};
|
|
762
839
|
const slugSegments = Array.isArray(rawSlugSegments) ? rawSlugSegments : [];
|
|
763
840
|
const locale = typeof incomingLocale === "string" ? incomingLocale : defaultLocale;
|
|
841
|
+
console.log("[WWW] render/pages:createCollectionPageExports:default_ collectionSlug=", slug, "locale=", locale, "segments=", JSON.stringify(slugSegments), "showcase=", showcaseEnabled);
|
|
764
842
|
if (!locales.includes(locale)) {
|
|
843
|
+
console.error(`[WWW] render/pages:createCollectionPageExports:default_ notFound invalid-locale collection=${slug} locale=${locale} segments=${JSON.stringify(slugSegments)}`);
|
|
765
844
|
const { notFound } = await import("next/navigation");
|
|
766
845
|
notFound();
|
|
767
846
|
}
|
|
@@ -769,15 +848,18 @@ function createCollectionPageExports({
|
|
|
769
848
|
setRequestLocale(locale);
|
|
770
849
|
const { draftMode } = await import("next/headers");
|
|
771
850
|
const { isEnabled: draft } = await draftMode();
|
|
851
|
+
console.log("[WWW] render/pages:createCollectionPageExports:default_ draftMode=", draft);
|
|
772
852
|
const storedSlug = segmentsToStoredSlug(slugSegments, nested);
|
|
773
853
|
const doc = await fetchDoc(locale, storedSlug, draft);
|
|
774
854
|
if (!doc) {
|
|
855
|
+
console.error(`[WWW] render/pages:createCollectionPageExports:default_ notFound no-doc collection=${slug} locale=${locale} storedSlug="${storedSlug}" segments=${JSON.stringify(slugSegments)} draft=${draft}`);
|
|
775
856
|
const { notFound } = await import("next/navigation");
|
|
776
857
|
notFound();
|
|
777
858
|
}
|
|
778
859
|
const cfg = await configPromise;
|
|
779
860
|
const collectionCustomPath = cfg.collections.find((c) => c.slug === slug)?.custom?.path;
|
|
780
861
|
const effectivePath = renderPath ?? collectionCustomPath ?? defaultRenderPath;
|
|
862
|
+
console.log("[WWW] render/pages:createCollectionPageExports:default_ effectivePath=", effectivePath);
|
|
781
863
|
const render = effectivePath === PAGES_RENDER_PATH ? /* @__PURE__ */ jsx8(PagesPage, {
|
|
782
864
|
doc,
|
|
783
865
|
importMap,
|
|
@@ -839,15 +921,22 @@ function createCollectionPageExports({
|
|
|
839
921
|
const { slug: rawSlugSegments, locale: incomingLocale } = await props.params ?? {};
|
|
840
922
|
const slugSegments = Array.isArray(rawSlugSegments) ? rawSlugSegments : [];
|
|
841
923
|
const locale = typeof incomingLocale === "string" ? incomingLocale : defaultLocale;
|
|
842
|
-
|
|
924
|
+
console.log("[WWW] render/pages:createCollectionPageExports:generateMetadata collectionSlug=", slug, "locale=", locale, "segments=", JSON.stringify(slugSegments));
|
|
925
|
+
if (!locales.includes(locale)) {
|
|
926
|
+
console.log("[WWW] render/pages:createCollectionPageExports:generateMetadata invalid locale -> not found meta");
|
|
843
927
|
return { title: "Not found", robots: { index: false, follow: false } };
|
|
928
|
+
}
|
|
844
929
|
const storedSlug = segmentsToStoredSlug(slugSegments, nested);
|
|
845
930
|
const doc = await fetchDoc(locale, storedSlug);
|
|
846
|
-
if (!doc)
|
|
931
|
+
if (!doc) {
|
|
932
|
+
console.log("[WWW] render/pages:createCollectionPageExports:generateMetadata no doc -> not found meta");
|
|
847
933
|
return { title: "Not found", robots: { index: false, follow: false } };
|
|
934
|
+
}
|
|
848
935
|
const collection = cfg.collections.find((c) => c.slug === slug);
|
|
849
|
-
if (!collection)
|
|
936
|
+
if (!collection) {
|
|
937
|
+
console.warn("[WWW] render/pages:createCollectionPageExports:generateMetadata collection not in config slug=", slug);
|
|
850
938
|
return {};
|
|
939
|
+
}
|
|
851
940
|
const { canonical, alternates } = await resolveHreflangAlternates(locale, storedSlug);
|
|
852
941
|
const meta = await generateMeta({
|
|
853
942
|
doc,
|
|
@@ -869,6 +958,7 @@ function createCollectionPageExports({
|
|
|
869
958
|
const urlPath = buildLocalePath(locale, storedSlug);
|
|
870
959
|
const canonical = `${siteUrl}${urlPath}`;
|
|
871
960
|
const entries = Array.isArray(jsonLdOption) ? jsonLdOption : metadataType === "article" ? [{ type: "article" }] : [{ type: "website" }];
|
|
961
|
+
console.log("[WWW] render/pages:createCollectionPageExports:generateJsonLd collection=", slug, "locale=", locale, "entries=", entries.map((e) => e.type).join(","));
|
|
872
962
|
const outputs = [];
|
|
873
963
|
for (const entry of entries) {
|
|
874
964
|
const id = entry.id ?? `jsonld-${entry.type}-${outputs.length}`;
|
|
@@ -929,6 +1019,7 @@ function createCollectionPageExports({
|
|
|
929
1019
|
return outputs;
|
|
930
1020
|
}
|
|
931
1021
|
async function generateStaticParams() {
|
|
1022
|
+
console.log("[WWW] render/pages:createCollectionPageExports:generateStaticParams collection=", slug, "locales=", JSON.stringify(locales));
|
|
932
1023
|
const params = [];
|
|
933
1024
|
for (const locale of locales) {
|
|
934
1025
|
const docs = await queryAllDocs({ collectionSlug: slug, slugField: "slug", locale, config: configPromise });
|
|
@@ -940,9 +1031,11 @@ function createCollectionPageExports({
|
|
|
940
1031
|
params.push({ slug: Array.isArray(segments) ? segments : [segments], locale });
|
|
941
1032
|
}
|
|
942
1033
|
}
|
|
1034
|
+
console.log("[WWW] render/pages:createCollectionPageExports:generateStaticParams -> count=", params.length);
|
|
943
1035
|
return params;
|
|
944
1036
|
}
|
|
945
1037
|
async function generateSitemap() {
|
|
1038
|
+
console.log("[WWW] render/pages:createCollectionPageExports:generateSitemap collection=", slug, "locales=", JSON.stringify(locales));
|
|
946
1039
|
const docs = await queryAllDocs({
|
|
947
1040
|
collectionSlug: slug,
|
|
948
1041
|
slugField: "slug",
|
|
@@ -962,6 +1055,7 @@ function createCollectionPageExports({
|
|
|
962
1055
|
urls.push({ url: `${siteUrl}${urlPath}`, lastModified: lastmod, changeFrequency: changefreq, priority });
|
|
963
1056
|
}
|
|
964
1057
|
}
|
|
1058
|
+
console.log("[WWW] render/pages:createCollectionPageExports:generateSitemap -> urls=", urls.length);
|
|
965
1059
|
return urls;
|
|
966
1060
|
}
|
|
967
1061
|
return {
|
|
@@ -24,6 +24,7 @@ import { jsx } from "react/jsx-runtime";
|
|
|
24
24
|
var LivePreviewListener = ({ serverURL }) => {
|
|
25
25
|
const router = useRouter();
|
|
26
26
|
const url = serverURL ?? process.env.NEXT_PUBLIC_SERVER_URL ?? (typeof window !== "undefined" ? window.location.origin : "");
|
|
27
|
+
console.log("[WWW] render/components:LivePreviewListener serverURL=", url);
|
|
27
28
|
return /* @__PURE__ */ jsx(PayloadLivePreview, {
|
|
28
29
|
refresh: router.refresh,
|
|
29
30
|
serverURL: url
|
|
@@ -44,13 +45,19 @@ var AdminBar = ({ preview, exitPreviewPath = "/next/exit-preview", labels }) =>
|
|
|
44
45
|
const router = useRouter2();
|
|
45
46
|
const [open, setOpen] = useState(false);
|
|
46
47
|
const merged = { ...defaultLabels, ...labels };
|
|
47
|
-
if (!preview)
|
|
48
|
+
if (!preview) {
|
|
49
|
+
console.log("[WWW] render/components:AdminBar preview=false -> null");
|
|
48
50
|
return null;
|
|
51
|
+
}
|
|
52
|
+
console.log("[WWW] render/components:AdminBar preview=true exitPreviewPath=", exitPreviewPath);
|
|
49
53
|
return /* @__PURE__ */ jsxs(Fragment, {
|
|
50
54
|
children: [
|
|
51
55
|
/* @__PURE__ */ jsx2("button", {
|
|
52
56
|
type: "button",
|
|
53
|
-
onClick: () =>
|
|
57
|
+
onClick: () => {
|
|
58
|
+
console.log("[WWW] render/components:AdminBar trigger clicked");
|
|
59
|
+
setOpen(true);
|
|
60
|
+
},
|
|
54
61
|
title: merged.triggerHint,
|
|
55
62
|
style: {
|
|
56
63
|
position: "fixed",
|
|
@@ -115,7 +122,10 @@ var AdminBar = ({ preview, exitPreviewPath = "/next/exit-preview", labels }) =>
|
|
|
115
122
|
}),
|
|
116
123
|
/* @__PURE__ */ jsx2("a", {
|
|
117
124
|
href: exitPreviewPath,
|
|
118
|
-
onClick: () =>
|
|
125
|
+
onClick: () => {
|
|
126
|
+
console.log("[WWW] render/components:AdminBar exit preview -> refresh");
|
|
127
|
+
router.refresh();
|
|
128
|
+
},
|
|
119
129
|
style: {
|
|
120
130
|
display: "inline-block",
|
|
121
131
|
padding: "6px 10px",
|