@justanarthur/payload-www 0.3.3 → 0.3.5
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/blocks.js +6 -2
- package/dist/collections.js +47 -15
- package/dist/components.js +1 -0
- package/dist/config.js +79 -21
- package/dist/core-blocks.js +6 -2
- package/dist/core-utils.js +5 -1
- package/dist/data-collections.js +47 -15
- package/dist/data-test.js +79 -21
- package/dist/globals.js +10 -1
- package/dist/hooks.js +47 -15
- package/dist/index.js +1 -0
- package/dist/metadata.js +64 -21
- package/dist/pages.js +118 -36
- package/dist/render-components.js +13 -3
- package/dist/render-metadata.js +64 -21
- package/dist/render-pages.js +178 -53
- package/dist/render-utils.js +58 -15
- package/dist/server.js +179 -56
- package/dist/test.js +79 -21
- package/dist/utils.js +5 -1
- package/dist/with-www-config.js +79 -21
- package/package.json +1 -1
package/dist/render-utils.js
CHANGED
|
@@ -27,6 +27,7 @@ function LocaleSwitcher({
|
|
|
27
27
|
labels
|
|
28
28
|
}) {
|
|
29
29
|
const locales = Object.keys(hreflangAlternates).filter((k) => k !== "x-default");
|
|
30
|
+
console.log("[WWW] render/components:LocaleSwitcher currentLocale=", currentLocale, "locales=", JSON.stringify(locales), "hasXDefault=", Boolean(hreflangAlternates["x-default"]));
|
|
30
31
|
return /* @__PURE__ */ jsx("nav", {
|
|
31
32
|
"aria-label": "Language",
|
|
32
33
|
className: "locale-switcher",
|
|
@@ -73,11 +74,14 @@ function createPreviewHandler(options) {
|
|
|
73
74
|
const url = new URL(req.url);
|
|
74
75
|
const path = url.searchParams.get("path") ?? "/";
|
|
75
76
|
const previewSecret = url.searchParams.get("previewSecret");
|
|
77
|
+
console.log("[WWW] render/preview:createPreviewHandler:GET path=", path, "hasSecret=", Boolean(previewSecret), "enableDraftMode=", enableDraftMode);
|
|
76
78
|
if (!previewSecret || previewSecret !== secret) {
|
|
79
|
+
console.warn("[WWW] render/preview:createPreviewHandler:GET invalid preview secret (401)");
|
|
77
80
|
return new Response("Invalid preview secret", { status: 401 });
|
|
78
81
|
}
|
|
79
82
|
if (enableDraftMode) {
|
|
80
83
|
(await draftMode()).enable();
|
|
84
|
+
console.log("[WWW] render/preview:createPreviewHandler:GET draftMode enabled");
|
|
81
85
|
}
|
|
82
86
|
redirect(path);
|
|
83
87
|
return new Response(null, { status: 204 });
|
|
@@ -86,30 +90,45 @@ function createPreviewHandler(options) {
|
|
|
86
90
|
|
|
87
91
|
// src/render/_locale.ts
|
|
88
92
|
function prefixFor(locale, defaultLocale, mode) {
|
|
93
|
+
let result;
|
|
89
94
|
if (mode === "never")
|
|
90
|
-
|
|
91
|
-
if (mode === "as-needed" && locale === defaultLocale)
|
|
92
|
-
|
|
93
|
-
|
|
95
|
+
result = "";
|
|
96
|
+
else if (mode === "as-needed" && locale === defaultLocale)
|
|
97
|
+
result = "";
|
|
98
|
+
else
|
|
99
|
+
result = `/${locale}`;
|
|
100
|
+
console.log("[WWW] render/_locale:prefixFor locale=", locale, "default=", defaultLocale, "mode=", mode, "->", JSON.stringify(result));
|
|
101
|
+
return result;
|
|
94
102
|
}
|
|
95
103
|
function resolveLocale(req) {
|
|
96
|
-
if (!req || typeof req !== "object")
|
|
104
|
+
if (!req || typeof req !== "object") {
|
|
105
|
+
console.log('[WWW] render/_locale:resolveLocale -> "" (no req)');
|
|
97
106
|
return "";
|
|
107
|
+
}
|
|
98
108
|
const r = req;
|
|
99
|
-
if (typeof r.locale === "string" && r.locale.length > 0)
|
|
109
|
+
if (typeof r.locale === "string" && r.locale.length > 0) {
|
|
110
|
+
console.log("[WWW] render/_locale:resolveLocale ->", r.locale, "(from req.locale)");
|
|
100
111
|
return r.locale;
|
|
112
|
+
}
|
|
101
113
|
const fallback = r.payload?.config?.localization?.defaultLocale;
|
|
102
|
-
if (typeof fallback === "string" && fallback.length > 0)
|
|
114
|
+
if (typeof fallback === "string" && fallback.length > 0) {
|
|
115
|
+
console.log("[WWW] render/_locale:resolveLocale ->", fallback, "(from config.localization.defaultLocale)");
|
|
103
116
|
return fallback;
|
|
117
|
+
}
|
|
118
|
+
console.log('[WWW] render/_locale:resolveLocale -> "" (no locale anywhere)');
|
|
104
119
|
return "";
|
|
105
120
|
}
|
|
106
121
|
function allLocales(req) {
|
|
107
|
-
if (!req || typeof req !== "object")
|
|
122
|
+
if (!req || typeof req !== "object") {
|
|
123
|
+
console.log("[WWW] render/_locale:allLocales -> [] (no req)");
|
|
108
124
|
return [];
|
|
125
|
+
}
|
|
109
126
|
const r = req;
|
|
110
127
|
const list = r.payload?.config?.localization?.locales;
|
|
111
|
-
if (!Array.isArray(list) || list.length === 0)
|
|
128
|
+
if (!Array.isArray(list) || list.length === 0) {
|
|
129
|
+
console.log("[WWW] render/_locale:allLocales -> [] (no locales declared)");
|
|
112
130
|
return [];
|
|
131
|
+
}
|
|
113
132
|
const out = [];
|
|
114
133
|
for (const entry of list) {
|
|
115
134
|
if (typeof entry === "string" && entry.length > 0) {
|
|
@@ -120,6 +139,7 @@ function allLocales(req) {
|
|
|
120
139
|
out.push(code);
|
|
121
140
|
}
|
|
122
141
|
}
|
|
142
|
+
console.log("[WWW] render/_locale:allLocales ->", JSON.stringify(out));
|
|
123
143
|
return out;
|
|
124
144
|
}
|
|
125
145
|
|
|
@@ -137,6 +157,7 @@ async function buildHreflangAlternates({
|
|
|
137
157
|
localePrefix = "always"
|
|
138
158
|
}) {
|
|
139
159
|
const allLocaleSlugs = await queryAllLocaleSlugs(storedSlug, locale);
|
|
160
|
+
console.log("[WWW] render/metadata:buildHreflangAlternates storedSlug=", storedSlug, "locale=", locale, "allLocaleSlugs=", JSON.stringify(allLocaleSlugs));
|
|
140
161
|
const languages = {};
|
|
141
162
|
const urlFor = (l, slug) => {
|
|
142
163
|
const trimmedPrefix = urlPrefix.replace(/^\/|\/$/g, "");
|
|
@@ -154,6 +175,7 @@ async function buildHreflangAlternates({
|
|
|
154
175
|
if (allLocaleSlugs?.[defaultLocale]) {
|
|
155
176
|
languages["x-default"] = urlFor(defaultLocale, allLocaleSlugs[defaultLocale]);
|
|
156
177
|
}
|
|
178
|
+
console.log("[WWW] render/metadata:buildHreflangAlternates ->", JSON.stringify(languages));
|
|
157
179
|
return languages;
|
|
158
180
|
}
|
|
159
181
|
|
|
@@ -175,6 +197,7 @@ var queryDocBySlug = cache(async function queryDocBySlug2({
|
|
|
175
197
|
draft = false,
|
|
176
198
|
config
|
|
177
199
|
}) {
|
|
200
|
+
console.log("[WWW] render/metadata:queryDocBySlug collection=", collectionSlug, "slug=", slug, "slugField=", slugField, "locale=", locale, "draft=", draft);
|
|
178
201
|
const payload = await getPayload({ config });
|
|
179
202
|
const result = await payload.find({
|
|
180
203
|
collection: collectionSlug,
|
|
@@ -185,7 +208,9 @@ var queryDocBySlug = cache(async function queryDocBySlug2({
|
|
|
185
208
|
where: { [slugField]: { equals: slug } },
|
|
186
209
|
locale
|
|
187
210
|
});
|
|
188
|
-
|
|
211
|
+
const doc = result.docs?.[0] ?? null;
|
|
212
|
+
console.log("[WWW] render/metadata:queryDocBySlug ->", doc ? "hit" : "miss");
|
|
213
|
+
return doc;
|
|
189
214
|
});
|
|
190
215
|
var queryAllDocs = cache(async function queryAllDocs2({
|
|
191
216
|
collectionSlug,
|
|
@@ -193,6 +218,7 @@ var queryAllDocs = cache(async function queryAllDocs2({
|
|
|
193
218
|
locale,
|
|
194
219
|
config
|
|
195
220
|
}) {
|
|
221
|
+
console.log("[WWW] render/metadata:queryAllDocs collection=", collectionSlug, "locale=", locale);
|
|
196
222
|
const payload = await getPayload({ config });
|
|
197
223
|
const result = await payload.find({
|
|
198
224
|
collection: collectionSlug,
|
|
@@ -203,7 +229,9 @@ var queryAllDocs = cache(async function queryAllDocs2({
|
|
|
203
229
|
select: { [slugField]: true },
|
|
204
230
|
locale
|
|
205
231
|
});
|
|
206
|
-
|
|
232
|
+
const docs = result.docs ?? [];
|
|
233
|
+
console.log("[WWW] render/metadata:queryAllDocs -> count=", docs.length);
|
|
234
|
+
return docs;
|
|
207
235
|
});
|
|
208
236
|
var queryAllLocaleSlugs = cache(async function queryAllLocaleSlugs2({
|
|
209
237
|
collectionSlug,
|
|
@@ -212,6 +240,7 @@ var queryAllLocaleSlugs = cache(async function queryAllLocaleSlugs2({
|
|
|
212
240
|
locale,
|
|
213
241
|
config
|
|
214
242
|
}) {
|
|
243
|
+
console.log("[WWW] render/metadata:queryAllLocaleSlugs collection=", collectionSlug, "slug=", slug, "locale=", locale);
|
|
215
244
|
const payload = await getPayload({ config });
|
|
216
245
|
const result = await payload.find({
|
|
217
246
|
collection: collectionSlug,
|
|
@@ -224,8 +253,10 @@ var queryAllLocaleSlugs = cache(async function queryAllLocaleSlugs2({
|
|
|
224
253
|
select: { [slugField]: true }
|
|
225
254
|
});
|
|
226
255
|
const doc = result.docs?.[0];
|
|
227
|
-
if (!doc)
|
|
256
|
+
if (!doc) {
|
|
257
|
+
console.log("[WWW] render/metadata:queryAllLocaleSlugs -> undefined (no doc)");
|
|
228
258
|
return;
|
|
259
|
+
}
|
|
229
260
|
let fieldValue = doc[slugField];
|
|
230
261
|
if (doc.id != null) {
|
|
231
262
|
const allLocales2 = await payload.findByID({
|
|
@@ -240,6 +271,7 @@ var queryAllLocaleSlugs = cache(async function queryAllLocaleSlugs2({
|
|
|
240
271
|
fieldValue = allLocales2[slugField];
|
|
241
272
|
}
|
|
242
273
|
if (fieldValue && typeof fieldValue === "object") {
|
|
274
|
+
console.log("[WWW] render/metadata:queryAllLocaleSlugs -> localized map=", JSON.stringify(fieldValue));
|
|
243
275
|
return fieldValue;
|
|
244
276
|
}
|
|
245
277
|
const resolved = await config;
|
|
@@ -247,6 +279,7 @@ var queryAllLocaleSlugs = cache(async function queryAllLocaleSlugs2({
|
|
|
247
279
|
const out = {};
|
|
248
280
|
for (const l of rawLocales)
|
|
249
281
|
out[l] = String(fieldValue ?? slug);
|
|
282
|
+
console.log("[WWW] render/metadata:queryAllLocaleSlugs -> flat-fanout locales=", rawLocales.length, "slug=", JSON.stringify(fieldValue ?? slug));
|
|
250
283
|
return out;
|
|
251
284
|
});
|
|
252
285
|
var queryGlobal = cache(async function queryGlobal2({
|
|
@@ -256,6 +289,7 @@ var queryGlobal = cache(async function queryGlobal2({
|
|
|
256
289
|
draft = false,
|
|
257
290
|
config
|
|
258
291
|
}) {
|
|
292
|
+
console.log("[WWW] render/metadata:queryGlobal global=", globalSlug, "locale=", locale, "depth=", depth, "draft=", draft);
|
|
259
293
|
const payload = await getPayload({ config });
|
|
260
294
|
try {
|
|
261
295
|
const global = await payload.findGlobal({
|
|
@@ -264,27 +298,35 @@ var queryGlobal = cache(async function queryGlobal2({
|
|
|
264
298
|
draft,
|
|
265
299
|
locale
|
|
266
300
|
});
|
|
301
|
+
console.log("[WWW] render/metadata:queryGlobal -> hit");
|
|
267
302
|
return global;
|
|
268
|
-
} catch {
|
|
303
|
+
} catch (error) {
|
|
304
|
+
console.warn("[WWW] render/metadata:queryGlobal failed for slug=", globalSlug, "err=", String(error));
|
|
269
305
|
return null;
|
|
270
306
|
}
|
|
271
307
|
});
|
|
272
308
|
function getRenderModuleExports(exportName, collection, importMap) {
|
|
273
309
|
const path = collection?.custom?.path;
|
|
274
|
-
if (!path)
|
|
310
|
+
if (!path) {
|
|
311
|
+
console.log("[WWW] render/metadata:getRenderModuleExports no custom.path exportName=", exportName);
|
|
275
312
|
return;
|
|
313
|
+
}
|
|
276
314
|
const mod = getFromImportMap(path, importMap);
|
|
277
|
-
|
|
315
|
+
const value = mod?.[exportName];
|
|
316
|
+
console.log("[WWW] render/metadata:getRenderModuleExports exportName=", exportName, "path=", path, "hit=", Boolean(value));
|
|
317
|
+
return value;
|
|
278
318
|
}
|
|
279
319
|
|
|
280
320
|
// src/render/sitemap/createSitemapFile.ts
|
|
281
321
|
function createSitemapFile(options) {
|
|
282
322
|
const { collections } = options;
|
|
283
323
|
return async function sitemap() {
|
|
324
|
+
console.log("[WWW] render/sitemap:createSitemapFile:sitemap collections=", JSON.stringify(options.collections), "localePrefix=", options.localePrefix ?? "always");
|
|
284
325
|
const cfg = await options.config;
|
|
285
326
|
const allLocales2 = Array.isArray(cfg.localization?.locales) ? cfg.localization.locales.map((l) => typeof l === "string" ? l : l.code) : [cfg.localization?.defaultLocale ?? "en"];
|
|
286
327
|
const defaultLocale = cfg.localization?.defaultLocale ?? allLocales2[0];
|
|
287
328
|
const activeLocales = Array.isArray(options.locales) && options.locales.length > 0 ? options.locales.filter((l) => allLocales2.includes(l)) : allLocales2;
|
|
329
|
+
console.log("[WWW] render/sitemap:createSitemapFile:sitemap allLocales=", JSON.stringify(allLocales2), "default=", defaultLocale, "active=", JSON.stringify(activeLocales));
|
|
288
330
|
const entries = [];
|
|
289
331
|
const seen = new Set;
|
|
290
332
|
for (const collectionSlug of collections) {
|
|
@@ -340,6 +382,7 @@ function createSitemapFile(options) {
|
|
|
340
382
|
}
|
|
341
383
|
}
|
|
342
384
|
}
|
|
385
|
+
console.log("[WWW] render/sitemap:createSitemapFile:sitemap -> entries=", entries.length);
|
|
343
386
|
return entries;
|
|
344
387
|
};
|
|
345
388
|
}
|