@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/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
|
|
|
@@ -163,7 +185,10 @@ import { cache } from "react";
|
|
|
163
185
|
|
|
164
186
|
// src/core/utils/getFromImportMap.ts
|
|
165
187
|
function getFromImportMap(key, importMap) {
|
|
166
|
-
|
|
188
|
+
const resolvedKey = key.includes("#") ? key : key + "#default";
|
|
189
|
+
const value = importMap[resolvedKey];
|
|
190
|
+
console.log("[WWW] core/utils:getFromImportMap key=", key, "resolved=", resolvedKey, "hit=", Boolean(value));
|
|
191
|
+
return value;
|
|
167
192
|
}
|
|
168
193
|
|
|
169
194
|
// src/render/metadata/query.ts
|
|
@@ -175,6 +200,7 @@ var queryDocBySlug = cache(async function queryDocBySlug2({
|
|
|
175
200
|
draft = false,
|
|
176
201
|
config
|
|
177
202
|
}) {
|
|
203
|
+
console.log("[WWW] render/metadata:queryDocBySlug collection=", collectionSlug, "slug=", slug, "slugField=", slugField, "locale=", locale, "draft=", draft);
|
|
178
204
|
const payload = await getPayload({ config });
|
|
179
205
|
const result = await payload.find({
|
|
180
206
|
collection: collectionSlug,
|
|
@@ -185,7 +211,9 @@ var queryDocBySlug = cache(async function queryDocBySlug2({
|
|
|
185
211
|
where: { [slugField]: { equals: slug } },
|
|
186
212
|
locale
|
|
187
213
|
});
|
|
188
|
-
|
|
214
|
+
const doc = result.docs?.[0] ?? null;
|
|
215
|
+
console.log("[WWW] render/metadata:queryDocBySlug ->", doc ? "hit" : "miss");
|
|
216
|
+
return doc;
|
|
189
217
|
});
|
|
190
218
|
var queryAllDocs = cache(async function queryAllDocs2({
|
|
191
219
|
collectionSlug,
|
|
@@ -193,6 +221,7 @@ var queryAllDocs = cache(async function queryAllDocs2({
|
|
|
193
221
|
locale,
|
|
194
222
|
config
|
|
195
223
|
}) {
|
|
224
|
+
console.log("[WWW] render/metadata:queryAllDocs collection=", collectionSlug, "locale=", locale);
|
|
196
225
|
const payload = await getPayload({ config });
|
|
197
226
|
const result = await payload.find({
|
|
198
227
|
collection: collectionSlug,
|
|
@@ -203,7 +232,9 @@ var queryAllDocs = cache(async function queryAllDocs2({
|
|
|
203
232
|
select: { [slugField]: true },
|
|
204
233
|
locale
|
|
205
234
|
});
|
|
206
|
-
|
|
235
|
+
const docs = result.docs ?? [];
|
|
236
|
+
console.log("[WWW] render/metadata:queryAllDocs -> count=", docs.length);
|
|
237
|
+
return docs;
|
|
207
238
|
});
|
|
208
239
|
var queryAllLocaleSlugs = cache(async function queryAllLocaleSlugs2({
|
|
209
240
|
collectionSlug,
|
|
@@ -212,6 +243,7 @@ var queryAllLocaleSlugs = cache(async function queryAllLocaleSlugs2({
|
|
|
212
243
|
locale,
|
|
213
244
|
config
|
|
214
245
|
}) {
|
|
246
|
+
console.log("[WWW] render/metadata:queryAllLocaleSlugs collection=", collectionSlug, "slug=", slug, "locale=", locale);
|
|
215
247
|
const payload = await getPayload({ config });
|
|
216
248
|
const result = await payload.find({
|
|
217
249
|
collection: collectionSlug,
|
|
@@ -224,8 +256,10 @@ var queryAllLocaleSlugs = cache(async function queryAllLocaleSlugs2({
|
|
|
224
256
|
select: { [slugField]: true }
|
|
225
257
|
});
|
|
226
258
|
const doc = result.docs?.[0];
|
|
227
|
-
if (!doc)
|
|
259
|
+
if (!doc) {
|
|
260
|
+
console.log("[WWW] render/metadata:queryAllLocaleSlugs -> undefined (no doc)");
|
|
228
261
|
return;
|
|
262
|
+
}
|
|
229
263
|
let fieldValue = doc[slugField];
|
|
230
264
|
if (doc.id != null) {
|
|
231
265
|
const allLocales2 = await payload.findByID({
|
|
@@ -240,6 +274,7 @@ var queryAllLocaleSlugs = cache(async function queryAllLocaleSlugs2({
|
|
|
240
274
|
fieldValue = allLocales2[slugField];
|
|
241
275
|
}
|
|
242
276
|
if (fieldValue && typeof fieldValue === "object") {
|
|
277
|
+
console.log("[WWW] render/metadata:queryAllLocaleSlugs -> localized map=", JSON.stringify(fieldValue));
|
|
243
278
|
return fieldValue;
|
|
244
279
|
}
|
|
245
280
|
const resolved = await config;
|
|
@@ -247,6 +282,7 @@ var queryAllLocaleSlugs = cache(async function queryAllLocaleSlugs2({
|
|
|
247
282
|
const out = {};
|
|
248
283
|
for (const l of rawLocales)
|
|
249
284
|
out[l] = String(fieldValue ?? slug);
|
|
285
|
+
console.log("[WWW] render/metadata:queryAllLocaleSlugs -> flat-fanout locales=", rawLocales.length, "slug=", JSON.stringify(fieldValue ?? slug));
|
|
250
286
|
return out;
|
|
251
287
|
});
|
|
252
288
|
var queryGlobal = cache(async function queryGlobal2({
|
|
@@ -256,6 +292,7 @@ var queryGlobal = cache(async function queryGlobal2({
|
|
|
256
292
|
draft = false,
|
|
257
293
|
config
|
|
258
294
|
}) {
|
|
295
|
+
console.log("[WWW] render/metadata:queryGlobal global=", globalSlug, "locale=", locale, "depth=", depth, "draft=", draft);
|
|
259
296
|
const payload = await getPayload({ config });
|
|
260
297
|
try {
|
|
261
298
|
const global = await payload.findGlobal({
|
|
@@ -264,27 +301,35 @@ var queryGlobal = cache(async function queryGlobal2({
|
|
|
264
301
|
draft,
|
|
265
302
|
locale
|
|
266
303
|
});
|
|
304
|
+
console.log("[WWW] render/metadata:queryGlobal -> hit");
|
|
267
305
|
return global;
|
|
268
|
-
} catch {
|
|
306
|
+
} catch (error) {
|
|
307
|
+
console.warn("[WWW] render/metadata:queryGlobal failed for slug=", globalSlug, "err=", String(error));
|
|
269
308
|
return null;
|
|
270
309
|
}
|
|
271
310
|
});
|
|
272
311
|
function getRenderModuleExports(exportName, collection, importMap) {
|
|
273
312
|
const path = collection?.custom?.path;
|
|
274
|
-
if (!path)
|
|
313
|
+
if (!path) {
|
|
314
|
+
console.log("[WWW] render/metadata:getRenderModuleExports no custom.path exportName=", exportName);
|
|
275
315
|
return;
|
|
316
|
+
}
|
|
276
317
|
const mod = getFromImportMap(path, importMap);
|
|
277
|
-
|
|
318
|
+
const value = mod?.[exportName];
|
|
319
|
+
console.log("[WWW] render/metadata:getRenderModuleExports exportName=", exportName, "path=", path, "hit=", Boolean(value));
|
|
320
|
+
return value;
|
|
278
321
|
}
|
|
279
322
|
|
|
280
323
|
// src/render/sitemap/createSitemapFile.ts
|
|
281
324
|
function createSitemapFile(options) {
|
|
282
325
|
const { collections } = options;
|
|
283
326
|
return async function sitemap() {
|
|
327
|
+
console.log("[WWW] render/sitemap:createSitemapFile:sitemap collections=", JSON.stringify(options.collections), "localePrefix=", options.localePrefix ?? "always");
|
|
284
328
|
const cfg = await options.config;
|
|
285
329
|
const allLocales2 = Array.isArray(cfg.localization?.locales) ? cfg.localization.locales.map((l) => typeof l === "string" ? l : l.code) : [cfg.localization?.defaultLocale ?? "en"];
|
|
286
330
|
const defaultLocale = cfg.localization?.defaultLocale ?? allLocales2[0];
|
|
287
331
|
const activeLocales = Array.isArray(options.locales) && options.locales.length > 0 ? options.locales.filter((l) => allLocales2.includes(l)) : allLocales2;
|
|
332
|
+
console.log("[WWW] render/sitemap:createSitemapFile:sitemap allLocales=", JSON.stringify(allLocales2), "default=", defaultLocale, "active=", JSON.stringify(activeLocales));
|
|
288
333
|
const entries = [];
|
|
289
334
|
const seen = new Set;
|
|
290
335
|
for (const collectionSlug of collections) {
|
|
@@ -340,6 +385,7 @@ function createSitemapFile(options) {
|
|
|
340
385
|
}
|
|
341
386
|
}
|
|
342
387
|
}
|
|
388
|
+
console.log("[WWW] render/sitemap:createSitemapFile:sitemap -> entries=", entries.length);
|
|
343
389
|
return entries;
|
|
344
390
|
};
|
|
345
391
|
}
|