@justanarthur/payload-www 2.2.7 → 2.2.8
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/collections.js +31 -3
- package/dist/metadata.d.ts +5 -1
- package/dist/metadata.js +15 -3
- package/dist/pages.js +15 -4
- package/dist/render-pages.js +15 -4
- package/dist/sitemap.js +15 -4
- package/package.json +1 -1
package/dist/collections.js
CHANGED
|
@@ -86,6 +86,32 @@ import { createCacheHelpers } from "@pro-laico/payload-revalidate/cache";
|
|
|
86
86
|
import { tagsFor } from "@pro-laico/payload-revalidate";
|
|
87
87
|
import { cacheLife } from "next/cache";
|
|
88
88
|
import { getPayload } from "payload";
|
|
89
|
+
|
|
90
|
+
// src/render/metadata/slug.ts
|
|
91
|
+
var SLUG_NESTED_DIVIDER = "_";
|
|
92
|
+
function paramsSlugToSlug(slug, _shape) {
|
|
93
|
+
if (!slug)
|
|
94
|
+
return "";
|
|
95
|
+
return (Array.isArray(slug) ? slug : [slug]).join(SLUG_NESTED_DIVIDER);
|
|
96
|
+
}
|
|
97
|
+
function slugToParamsSlug(slug, shape) {
|
|
98
|
+
if (!slug)
|
|
99
|
+
return shape === "catch-all" ? [] : "";
|
|
100
|
+
return shape === "catch-all" ? slug.split(SLUG_NESTED_DIVIDER) : slug;
|
|
101
|
+
}
|
|
102
|
+
function isIndexSlug(slug) {
|
|
103
|
+
return !slug;
|
|
104
|
+
}
|
|
105
|
+
function shapeHasIndexPath(shape) {
|
|
106
|
+
return shape === "catch-all";
|
|
107
|
+
}
|
|
108
|
+
function slugToPath(slug) {
|
|
109
|
+
if (!slug)
|
|
110
|
+
return "";
|
|
111
|
+
return slug.split(SLUG_NESTED_DIVIDER).join("/");
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// src/render/metadata/query.ts
|
|
89
115
|
var _helpers = null;
|
|
90
116
|
var _seedPromise = null;
|
|
91
117
|
function seedPayloadCache({ config }) {
|
|
@@ -111,14 +137,16 @@ async function queryDocBySlug(args) {
|
|
|
111
137
|
cacheLife("weeks");
|
|
112
138
|
const { findDoc } = await requireCacheHelpers();
|
|
113
139
|
const slugField = args.slugField ?? "slug";
|
|
114
|
-
const
|
|
115
|
-
where: { [slugField]: { equals:
|
|
140
|
+
const find = (slug) => findDoc(args.collectionSlug, {
|
|
141
|
+
where: { [slugField]: { equals: slug } },
|
|
116
142
|
locale: args.locale,
|
|
117
143
|
draft: args.draft ?? false,
|
|
118
144
|
overrideAccess: args.draft ?? false,
|
|
119
145
|
depth: args.depth
|
|
120
146
|
});
|
|
121
|
-
|
|
147
|
+
const result = await find(args.slug);
|
|
148
|
+
const doc = result ?? (isIndexSlug(args.slug) ? await find(null) : null);
|
|
149
|
+
return doc ?? null;
|
|
122
150
|
}
|
|
123
151
|
async function queryGlobal(args) {
|
|
124
152
|
"use cache";
|
package/dist/metadata.d.ts
CHANGED
|
@@ -20,6 +20,8 @@ import { BuildOrganizationLdOptions, BuildProductLdOptions, BuildRootJsonLdOptio
|
|
|
20
20
|
type SlugShape = "single" | "catch-all";
|
|
21
21
|
declare function paramsSlugToSlug(slug: string | string[] | undefined, _shape: SlugShape): string;
|
|
22
22
|
declare function slugToParamsSlug(slug: string, shape: SlugShape): string | string[];
|
|
23
|
+
declare function isIndexSlug(slug: string | null | undefined): boolean;
|
|
24
|
+
declare function shapeHasIndexPath(shape: SlugShape): boolean;
|
|
23
25
|
import { DataFromCollectionSlug, DataFromGlobalSlug, SanitizedConfig } from "payload";
|
|
24
26
|
import { tagsFor } from "@pro-laico/payload-revalidate";
|
|
25
27
|
type SeedPayloadCacheArgs = {
|
|
@@ -76,7 +78,9 @@ declare const metadata: {
|
|
|
76
78
|
queryAllLocaleSlugs: typeof queryAllLocaleSlugs;
|
|
77
79
|
paramsSlugToSlug: typeof paramsSlugToSlug;
|
|
78
80
|
slugToParamsSlug: typeof slugToParamsSlug;
|
|
81
|
+
isIndexSlug: typeof isIndexSlug;
|
|
82
|
+
shapeHasIndexPath: typeof shapeHasIndexPath;
|
|
79
83
|
seedPayloadCache: typeof seedPayloadCache;
|
|
80
84
|
tagsFor: (payload: Payload_eipjla) => Tags_1jpdl;
|
|
81
85
|
};
|
|
82
|
-
export { ArticleLdOptions, BreadcrumbItem, BuildOrganizationLdOptions, BuildProductLdOptions, BuildRootJsonLdOptions, BuildWebSiteLdOptions, SeedPayloadCacheArgs, SlugShape, buildArticleLd, buildBreadcrumbsLd, buildOrganizationLd, buildProductLd, buildRootJsonLd, buildWebSiteLd, metadata as default, paramsSlugToSlug, queryAllDocs, queryAllLocaleSlugs, queryDocByID, queryDocBySlug, queryGlobal, seedPayloadCache, slugToParamsSlug, tagsFor };
|
|
86
|
+
export { ArticleLdOptions, BreadcrumbItem, BuildOrganizationLdOptions, BuildProductLdOptions, BuildRootJsonLdOptions, BuildWebSiteLdOptions, SeedPayloadCacheArgs, SlugShape, buildArticleLd, buildBreadcrumbsLd, buildOrganizationLd, buildProductLd, buildRootJsonLd, buildWebSiteLd, metadata as default, isIndexSlug, paramsSlugToSlug, queryAllDocs, queryAllLocaleSlugs, queryDocByID, queryDocBySlug, queryGlobal, seedPayloadCache, shapeHasIndexPath, slugToParamsSlug, tagsFor };
|
package/dist/metadata.js
CHANGED
|
@@ -103,6 +103,12 @@ function slugToParamsSlug(slug, shape) {
|
|
|
103
103
|
return shape === "catch-all" ? [] : "";
|
|
104
104
|
return shape === "catch-all" ? slug.split(SLUG_NESTED_DIVIDER) : slug;
|
|
105
105
|
}
|
|
106
|
+
function isIndexSlug(slug) {
|
|
107
|
+
return !slug;
|
|
108
|
+
}
|
|
109
|
+
function shapeHasIndexPath(shape) {
|
|
110
|
+
return shape === "catch-all";
|
|
111
|
+
}
|
|
106
112
|
function slugToPath(slug) {
|
|
107
113
|
if (!slug)
|
|
108
114
|
return "";
|
|
@@ -139,14 +145,16 @@ async function queryDocBySlug(args) {
|
|
|
139
145
|
cacheLife("weeks");
|
|
140
146
|
const { findDoc } = await requireCacheHelpers();
|
|
141
147
|
const slugField = args.slugField ?? "slug";
|
|
142
|
-
const
|
|
143
|
-
where: { [slugField]: { equals:
|
|
148
|
+
const find = (slug) => findDoc(args.collectionSlug, {
|
|
149
|
+
where: { [slugField]: { equals: slug } },
|
|
144
150
|
locale: args.locale,
|
|
145
151
|
draft: args.draft ?? false,
|
|
146
152
|
overrideAccess: args.draft ?? false,
|
|
147
153
|
depth: args.depth
|
|
148
154
|
});
|
|
149
|
-
|
|
155
|
+
const result = await find(args.slug);
|
|
156
|
+
const doc = result ?? (isIndexSlug(args.slug) ? await find(null) : null);
|
|
157
|
+
return doc ?? null;
|
|
150
158
|
}
|
|
151
159
|
async function queryGlobal(args) {
|
|
152
160
|
"use cache";
|
|
@@ -218,6 +226,8 @@ var metadata = {
|
|
|
218
226
|
queryAllLocaleSlugs,
|
|
219
227
|
paramsSlugToSlug,
|
|
220
228
|
slugToParamsSlug,
|
|
229
|
+
isIndexSlug,
|
|
230
|
+
shapeHasIndexPath,
|
|
221
231
|
seedPayloadCache,
|
|
222
232
|
tagsFor
|
|
223
233
|
};
|
|
@@ -230,6 +240,7 @@ export {
|
|
|
230
240
|
buildRootJsonLd,
|
|
231
241
|
buildWebSiteLd,
|
|
232
242
|
metadata_default as default,
|
|
243
|
+
isIndexSlug,
|
|
233
244
|
paramsSlugToSlug,
|
|
234
245
|
queryAllDocs,
|
|
235
246
|
queryAllLocaleSlugs,
|
|
@@ -237,6 +248,7 @@ export {
|
|
|
237
248
|
queryDocBySlug,
|
|
238
249
|
queryGlobal,
|
|
239
250
|
seedPayloadCache,
|
|
251
|
+
shapeHasIndexPath,
|
|
240
252
|
slugToParamsSlug,
|
|
241
253
|
tagsFor
|
|
242
254
|
};
|
package/dist/pages.js
CHANGED
|
@@ -188,6 +188,12 @@ function slugToParamsSlug(slug, shape) {
|
|
|
188
188
|
return shape === "catch-all" ? [] : "";
|
|
189
189
|
return shape === "catch-all" ? slug.split(SLUG_NESTED_DIVIDER) : slug;
|
|
190
190
|
}
|
|
191
|
+
function isIndexSlug(slug) {
|
|
192
|
+
return !slug;
|
|
193
|
+
}
|
|
194
|
+
function shapeHasIndexPath(shape) {
|
|
195
|
+
return shape === "catch-all";
|
|
196
|
+
}
|
|
191
197
|
function slugToPath(slug) {
|
|
192
198
|
if (!slug)
|
|
193
199
|
return "";
|
|
@@ -224,14 +230,16 @@ async function queryDocBySlug(args) {
|
|
|
224
230
|
cacheLife("weeks");
|
|
225
231
|
const { findDoc } = await requireCacheHelpers();
|
|
226
232
|
const slugField = args.slugField ?? "slug";
|
|
227
|
-
const
|
|
228
|
-
where: { [slugField]: { equals:
|
|
233
|
+
const find = (slug) => findDoc(args.collectionSlug, {
|
|
234
|
+
where: { [slugField]: { equals: slug } },
|
|
229
235
|
locale: args.locale,
|
|
230
236
|
draft: args.draft ?? false,
|
|
231
237
|
overrideAccess: args.draft ?? false,
|
|
232
238
|
depth: args.depth
|
|
233
239
|
});
|
|
234
|
-
|
|
240
|
+
const result = await find(args.slug);
|
|
241
|
+
const doc = result ?? (isIndexSlug(args.slug) ? await find(null) : null);
|
|
242
|
+
return doc ?? null;
|
|
235
243
|
}
|
|
236
244
|
async function queryGlobal(args) {
|
|
237
245
|
"use cache";
|
|
@@ -428,7 +436,10 @@ function createCollectionPageExports({
|
|
|
428
436
|
await props.params;
|
|
429
437
|
const perLocaleEntries = await Promise.all(routing.locales.map(async (locale) => {
|
|
430
438
|
const docs = await queryAllDocs({ locale, collectionSlug });
|
|
431
|
-
|
|
439
|
+
const entries = docs.filter((doc) => !isIndexSlug(doc.slug)).map((doc) => ({ locale, slug: slugToParamsSlug(doc.slug, slugShape) }));
|
|
440
|
+
if (shapeHasIndexPath(slugShape) && await fetchDoc(locale, ""))
|
|
441
|
+
entries.push({ locale, slug: slugToParamsSlug("", slugShape) });
|
|
442
|
+
return entries;
|
|
432
443
|
}));
|
|
433
444
|
return perLocaleEntries.flat();
|
|
434
445
|
}
|
package/dist/render-pages.js
CHANGED
|
@@ -218,6 +218,12 @@ function slugToParamsSlug(slug, shape) {
|
|
|
218
218
|
return shape === "catch-all" ? [] : "";
|
|
219
219
|
return shape === "catch-all" ? slug.split(SLUG_NESTED_DIVIDER) : slug;
|
|
220
220
|
}
|
|
221
|
+
function isIndexSlug(slug) {
|
|
222
|
+
return !slug;
|
|
223
|
+
}
|
|
224
|
+
function shapeHasIndexPath(shape) {
|
|
225
|
+
return shape === "catch-all";
|
|
226
|
+
}
|
|
221
227
|
function slugToPath(slug) {
|
|
222
228
|
if (!slug)
|
|
223
229
|
return "";
|
|
@@ -254,14 +260,16 @@ async function queryDocBySlug(args) {
|
|
|
254
260
|
cacheLife("weeks");
|
|
255
261
|
const { findDoc } = await requireCacheHelpers();
|
|
256
262
|
const slugField = args.slugField ?? "slug";
|
|
257
|
-
const
|
|
258
|
-
where: { [slugField]: { equals:
|
|
263
|
+
const find = (slug) => findDoc(args.collectionSlug, {
|
|
264
|
+
where: { [slugField]: { equals: slug } },
|
|
259
265
|
locale: args.locale,
|
|
260
266
|
draft: args.draft ?? false,
|
|
261
267
|
overrideAccess: args.draft ?? false,
|
|
262
268
|
depth: args.depth
|
|
263
269
|
});
|
|
264
|
-
|
|
270
|
+
const result = await find(args.slug);
|
|
271
|
+
const doc = result ?? (isIndexSlug(args.slug) ? await find(null) : null);
|
|
272
|
+
return doc ?? null;
|
|
265
273
|
}
|
|
266
274
|
async function queryGlobal(args) {
|
|
267
275
|
"use cache";
|
|
@@ -458,7 +466,10 @@ function createCollectionPageExports({
|
|
|
458
466
|
await props.params;
|
|
459
467
|
const perLocaleEntries = await Promise.all(routing.locales.map(async (locale) => {
|
|
460
468
|
const docs = await queryAllDocs({ locale, collectionSlug });
|
|
461
|
-
|
|
469
|
+
const entries = docs.filter((doc) => !isIndexSlug(doc.slug)).map((doc) => ({ locale, slug: slugToParamsSlug(doc.slug, slugShape) }));
|
|
470
|
+
if (shapeHasIndexPath(slugShape) && await fetchDoc(locale, ""))
|
|
471
|
+
entries.push({ locale, slug: slugToParamsSlug("", slugShape) });
|
|
472
|
+
return entries;
|
|
462
473
|
}));
|
|
463
474
|
return perLocaleEntries.flat();
|
|
464
475
|
}
|
package/dist/sitemap.js
CHANGED
|
@@ -13,6 +13,12 @@ function slugToParamsSlug(slug, shape) {
|
|
|
13
13
|
return shape === "catch-all" ? [] : "";
|
|
14
14
|
return shape === "catch-all" ? slug.split(SLUG_NESTED_DIVIDER) : slug;
|
|
15
15
|
}
|
|
16
|
+
function isIndexSlug(slug) {
|
|
17
|
+
return !slug;
|
|
18
|
+
}
|
|
19
|
+
function shapeHasIndexPath(shape) {
|
|
20
|
+
return shape === "catch-all";
|
|
21
|
+
}
|
|
16
22
|
function slugToPath(slug) {
|
|
17
23
|
if (!slug)
|
|
18
24
|
return "";
|
|
@@ -49,14 +55,16 @@ async function queryDocBySlug(args) {
|
|
|
49
55
|
cacheLife("weeks");
|
|
50
56
|
const { findDoc } = await requireCacheHelpers();
|
|
51
57
|
const slugField = args.slugField ?? "slug";
|
|
52
|
-
const
|
|
53
|
-
where: { [slugField]: { equals:
|
|
58
|
+
const find = (slug) => findDoc(args.collectionSlug, {
|
|
59
|
+
where: { [slugField]: { equals: slug } },
|
|
54
60
|
locale: args.locale,
|
|
55
61
|
draft: args.draft ?? false,
|
|
56
62
|
overrideAccess: args.draft ?? false,
|
|
57
63
|
depth: args.depth
|
|
58
64
|
});
|
|
59
|
-
|
|
65
|
+
const result = await find(args.slug);
|
|
66
|
+
const doc = result ?? (isIndexSlug(args.slug) ? await find(null) : null);
|
|
67
|
+
return doc ?? null;
|
|
60
68
|
}
|
|
61
69
|
async function queryGlobal(args) {
|
|
62
70
|
"use cache";
|
|
@@ -274,7 +282,10 @@ function createCollectionPageExports({
|
|
|
274
282
|
await props.params;
|
|
275
283
|
const perLocaleEntries = await Promise.all(routing.locales.map(async (locale) => {
|
|
276
284
|
const docs = await queryAllDocs({ locale, collectionSlug });
|
|
277
|
-
|
|
285
|
+
const entries = docs.filter((doc) => !isIndexSlug(doc.slug)).map((doc) => ({ locale, slug: slugToParamsSlug(doc.slug, slugShape) }));
|
|
286
|
+
if (shapeHasIndexPath(slugShape) && await fetchDoc(locale, ""))
|
|
287
|
+
entries.push({ locale, slug: slugToParamsSlug("", slugShape) });
|
|
288
|
+
return entries;
|
|
278
289
|
}));
|
|
279
290
|
return perLocaleEntries.flat();
|
|
280
291
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@justanarthur/payload-www",
|
|
3
3
|
"description": "Reusable Payload CMS website template — config builder, collections, globals, blocks, fields, access, hooks, metadata (JSON-LD, hreflang), page renderers, and test helpers.",
|
|
4
|
-
"version": "2.2.
|
|
4
|
+
"version": "2.2.8",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"private": false,
|
|
7
7
|
"files": [
|