@actuate-media/cms-core 0.3.1 → 0.5.0
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/actions.d.ts.map +1 -1
- package/dist/actions.js +22 -18
- package/dist/actions.js.map +1 -1
- package/dist/api/handlers.d.ts.map +1 -1
- package/dist/api/handlers.js +268 -47
- package/dist/api/handlers.js.map +1 -1
- package/dist/client.d.ts +17 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +3 -0
- package/dist/client.js.map +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +10 -0
- package/dist/config/index.js.map +1 -1
- package/dist/config/types.d.ts +16 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/security/access.js +1 -1
- package/dist/security/access.js.map +1 -1
- package/package.json +1 -1
package/dist/actions.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,EAAE,EAAE,OAAO,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AA8FD,6CAA6C;AAC7C,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA4ClC;AAED,6FAA6F;AAC7F,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA8DlC;AAED,0EAA0E;AAC1E,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,IAAI,CAAC,CAgCf;
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,EAAE,EAAE,OAAO,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AA8FD,6CAA6C;AAC7C,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA4ClC;AAED,6FAA6F;AAC7F,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA8DlC;AAED,0EAA0E;AAC1E,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,IAAI,CAAC,CAgCf;AAOD,wCAAwC;AACxC,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAoBzC;AAED,8DAA8D;AAC9D,wBAAsB,aAAa,CACjC,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,UAAU,CAAC,CAgFrB;AAED,2FAA2F;AAC3F,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAsDlC;AAED,4FAA4F;AAC5F,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAMzC;AAED,iFAAiF;AACjF,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAyDlC"}
|
package/dist/actions.js
CHANGED
|
@@ -196,6 +196,10 @@ export async function deleteDocument(collection, id, ctx) {
|
|
|
196
196
|
fireWebhook('document.deleted', { id, collection, title: existing.title, slug: existing.slug });
|
|
197
197
|
});
|
|
198
198
|
}
|
|
199
|
+
function stripInternalKeys(data) {
|
|
200
|
+
const { _layout, ...rest } = data;
|
|
201
|
+
return rest;
|
|
202
|
+
}
|
|
199
203
|
/** Retrieve a single document by ID. */
|
|
200
204
|
export async function getDocument(collection, id, ctx) {
|
|
201
205
|
const db = prisma(ctx);
|
|
@@ -204,13 +208,14 @@ export async function getDocument(collection, id, ctx) {
|
|
|
204
208
|
});
|
|
205
209
|
if (!doc)
|
|
206
210
|
return null;
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
const
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
data
|
|
213
|
-
}
|
|
211
|
+
if (doc.data && typeof doc.data === "object") {
|
|
212
|
+
let data = stripInternalKeys(doc.data);
|
|
213
|
+
const fields = getCollectionFields(collection);
|
|
214
|
+
if (fields) {
|
|
215
|
+
const user = { id: ctx.userId, role: ctx.role };
|
|
216
|
+
data = await applyFieldAccess("read", fields, data, user);
|
|
217
|
+
}
|
|
218
|
+
return { ...doc, data };
|
|
214
219
|
}
|
|
215
220
|
return doc;
|
|
216
221
|
}
|
|
@@ -263,18 +268,17 @@ export async function listDocuments(options, ctx) {
|
|
|
263
268
|
]);
|
|
264
269
|
const fields = getCollectionFields(options.collection);
|
|
265
270
|
let docs = rawDocs;
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
data: await applyFieldAccess("read", fields, doc.data, user),
|
|
273
|
-
};
|
|
271
|
+
const user = { id: ctx.userId, role: ctx.role };
|
|
272
|
+
docs = await Promise.all(rawDocs.map(async (doc) => {
|
|
273
|
+
if (doc.data && typeof doc.data === "object") {
|
|
274
|
+
let data = stripInternalKeys(doc.data);
|
|
275
|
+
if (fields) {
|
|
276
|
+
data = await applyFieldAccess("read", fields, data, user);
|
|
274
277
|
}
|
|
275
|
-
return doc;
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
+
return { ...doc, data };
|
|
279
|
+
}
|
|
280
|
+
return doc;
|
|
281
|
+
}));
|
|
278
282
|
return {
|
|
279
283
|
docs,
|
|
280
284
|
total,
|
package/dist/actions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/api/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAkN7C,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAS9E;AAiED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/api/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAkN7C,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAS9E;AAiED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmrFzD"}
|
package/dist/api/handlers.js
CHANGED
|
@@ -1341,37 +1341,43 @@ export function registerCMSRoutes(router) {
|
|
|
1341
1341
|
totalDocuments: 0,
|
|
1342
1342
|
totalMedia: 0,
|
|
1343
1343
|
totalUsers: 0,
|
|
1344
|
+
formCount: 0,
|
|
1345
|
+
avgSeoScore: 0,
|
|
1344
1346
|
collectionCounts: {},
|
|
1347
|
+
statusCounts: {},
|
|
1345
1348
|
recentDocuments: [],
|
|
1346
1349
|
};
|
|
1347
|
-
async function safeGroupBy(model) {
|
|
1350
|
+
async function safeGroupBy(model, by, where) {
|
|
1348
1351
|
try {
|
|
1349
1352
|
if (!model || typeof model !== 'object')
|
|
1350
|
-
return
|
|
1353
|
+
return [];
|
|
1351
1354
|
let groupByFn;
|
|
1352
1355
|
try {
|
|
1353
1356
|
groupByFn = model.groupBy;
|
|
1354
1357
|
}
|
|
1355
1358
|
catch {
|
|
1356
|
-
return
|
|
1359
|
+
return [];
|
|
1357
1360
|
}
|
|
1358
1361
|
if (typeof groupByFn !== 'function')
|
|
1359
|
-
return
|
|
1360
|
-
|
|
1361
|
-
by: ['collection'],
|
|
1362
|
-
where: { deletedAt: null },
|
|
1363
|
-
_count: { _all: true },
|
|
1364
|
-
});
|
|
1365
|
-
const result = {};
|
|
1366
|
-
for (const g of groups) {
|
|
1367
|
-
result[g.collection] = g._count._all;
|
|
1368
|
-
}
|
|
1369
|
-
return result;
|
|
1362
|
+
return [];
|
|
1363
|
+
return await groupByFn.call(model, { by, where: where ?? {}, _count: { _all: true } });
|
|
1370
1364
|
}
|
|
1371
1365
|
catch {
|
|
1372
|
-
return
|
|
1366
|
+
return [];
|
|
1373
1367
|
}
|
|
1374
1368
|
}
|
|
1369
|
+
function computeLightSeoScore(data) {
|
|
1370
|
+
let score = 0;
|
|
1371
|
+
if (data.metaTitle || data.seoTitle)
|
|
1372
|
+
score += 25;
|
|
1373
|
+
if (data.metaDescription || data.seoDescription)
|
|
1374
|
+
score += 25;
|
|
1375
|
+
if (data.canonical)
|
|
1376
|
+
score += 25;
|
|
1377
|
+
if (data.schemaType)
|
|
1378
|
+
score += 25;
|
|
1379
|
+
return score;
|
|
1380
|
+
}
|
|
1375
1381
|
router.get('/stats', async (request) => {
|
|
1376
1382
|
try {
|
|
1377
1383
|
if (!isSecretMissing()) {
|
|
@@ -1386,28 +1392,65 @@ export function registerCMSRoutes(router) {
|
|
|
1386
1392
|
catch {
|
|
1387
1393
|
return json({ data: EMPTY_STATS });
|
|
1388
1394
|
}
|
|
1389
|
-
const [docResult, mediaResult, userResult, recentResult,
|
|
1395
|
+
const [docResult, mediaResult, userResult, recentResult, collGroupResult, statusGroupResult, formResult, seoDocsResult,] = await Promise.allSettled([
|
|
1390
1396
|
safeCount(d.document, { deletedAt: null }),
|
|
1391
1397
|
safeCount(d.media),
|
|
1392
1398
|
safeCount(d.user),
|
|
1393
1399
|
safeFindMany(d.document, {
|
|
1394
1400
|
where: { deletedAt: null },
|
|
1395
1401
|
orderBy: { updatedAt: 'desc' },
|
|
1396
|
-
take:
|
|
1402
|
+
take: 20,
|
|
1397
1403
|
select: {
|
|
1398
1404
|
id: true, title: true, status: true, collection: true,
|
|
1399
1405
|
updatedAt: true, createdById: true,
|
|
1406
|
+
createdBy: { select: { name: true, email: true } },
|
|
1400
1407
|
},
|
|
1401
1408
|
}),
|
|
1402
|
-
safeGroupBy(d.document),
|
|
1409
|
+
safeGroupBy(d.document, ['collection'], { deletedAt: null }),
|
|
1410
|
+
safeGroupBy(d.document, ['status'], { deletedAt: null }),
|
|
1411
|
+
safeCount(d.formSubmission),
|
|
1412
|
+
safeFindMany(d.document, {
|
|
1413
|
+
where: { deletedAt: null, status: 'PUBLISHED' },
|
|
1414
|
+
select: { data: true },
|
|
1415
|
+
take: 200,
|
|
1416
|
+
}),
|
|
1403
1417
|
]);
|
|
1418
|
+
const collectionCounts = {};
|
|
1419
|
+
if (collGroupResult.status === 'fulfilled') {
|
|
1420
|
+
for (const g of collGroupResult.value)
|
|
1421
|
+
collectionCounts[g.collection] = g._count._all;
|
|
1422
|
+
}
|
|
1423
|
+
const statusCounts = {};
|
|
1424
|
+
if (statusGroupResult.status === 'fulfilled') {
|
|
1425
|
+
for (const g of statusGroupResult.value)
|
|
1426
|
+
statusCounts[g.status] = g._count._all;
|
|
1427
|
+
}
|
|
1428
|
+
let avgSeoScore = 0;
|
|
1429
|
+
if (seoDocsResult.status === 'fulfilled' && seoDocsResult.value.length > 0) {
|
|
1430
|
+
const docs = seoDocsResult.value;
|
|
1431
|
+
const total = docs.reduce((sum, doc) => sum + computeLightSeoScore(doc.data ?? {}), 0);
|
|
1432
|
+
avgSeoScore = Math.round(total / docs.length);
|
|
1433
|
+
}
|
|
1434
|
+
const recentDocs = recentResult.status === 'fulfilled'
|
|
1435
|
+
? recentResult.value.map((doc) => ({
|
|
1436
|
+
id: doc.id,
|
|
1437
|
+
title: doc.title,
|
|
1438
|
+
status: doc.status,
|
|
1439
|
+
collection: doc.collection,
|
|
1440
|
+
updatedAt: doc.updatedAt,
|
|
1441
|
+
author: doc.createdBy?.name ?? doc.createdBy?.email ?? doc.createdById,
|
|
1442
|
+
}))
|
|
1443
|
+
: [];
|
|
1404
1444
|
return json({
|
|
1405
1445
|
data: {
|
|
1406
1446
|
totalDocuments: docResult.status === 'fulfilled' ? docResult.value : 0,
|
|
1407
1447
|
totalMedia: mediaResult.status === 'fulfilled' ? mediaResult.value : 0,
|
|
1408
1448
|
totalUsers: userResult.status === 'fulfilled' ? userResult.value : 0,
|
|
1409
|
-
|
|
1410
|
-
|
|
1449
|
+
formCount: formResult.status === 'fulfilled' ? formResult.value : 0,
|
|
1450
|
+
avgSeoScore,
|
|
1451
|
+
collectionCounts,
|
|
1452
|
+
statusCounts,
|
|
1453
|
+
recentDocuments: recentDocs,
|
|
1411
1454
|
},
|
|
1412
1455
|
});
|
|
1413
1456
|
}
|
|
@@ -1998,8 +2041,169 @@ export function registerCMSRoutes(router) {
|
|
|
1998
2041
|
}
|
|
1999
2042
|
});
|
|
2000
2043
|
// ---------------------------------------------------------------------------
|
|
2044
|
+
// SEO summary (aggregated dashboard data)
|
|
2045
|
+
// ---------------------------------------------------------------------------
|
|
2046
|
+
router.get('/seo/summary', async (request) => {
|
|
2047
|
+
try {
|
|
2048
|
+
const auth = await requireAuth(request);
|
|
2049
|
+
if (auth.error)
|
|
2050
|
+
return auth.error;
|
|
2051
|
+
const docs = await safeFindMany(db().document, {
|
|
2052
|
+
where: { deletedAt: null, status: 'PUBLISHED' },
|
|
2053
|
+
select: { id: true, title: true, collection: true, data: true, plainText: true },
|
|
2054
|
+
orderBy: { updatedAt: 'desc' },
|
|
2055
|
+
take: 50,
|
|
2056
|
+
});
|
|
2057
|
+
let missingMetaDescriptions = 0;
|
|
2058
|
+
let missingAltText = 0;
|
|
2059
|
+
const topContent = [];
|
|
2060
|
+
for (const doc of docs) {
|
|
2061
|
+
const data = doc.data ?? {};
|
|
2062
|
+
if (!data.metaDescription && !data.seoDescription)
|
|
2063
|
+
missingMetaDescriptions++;
|
|
2064
|
+
const content = typeof data.body === 'string' ? data.body : typeof data.content === 'string' ? data.content : '';
|
|
2065
|
+
if (content) {
|
|
2066
|
+
const imgMatches = content.match(/<img\b[^>]*>/gi) ?? [];
|
|
2067
|
+
const noAlt = imgMatches.filter((img) => !img.includes('alt=')).length;
|
|
2068
|
+
if (noAlt > 0)
|
|
2069
|
+
missingAltText += noAlt;
|
|
2070
|
+
}
|
|
2071
|
+
topContent.push({
|
|
2072
|
+
id: doc.id,
|
|
2073
|
+
title: doc.title ?? 'Untitled',
|
|
2074
|
+
collection: doc.collection,
|
|
2075
|
+
score: computeLightSeoScore(data),
|
|
2076
|
+
});
|
|
2077
|
+
}
|
|
2078
|
+
topContent.sort((a, b) => b.score - a.score);
|
|
2079
|
+
let brokenInternalLinks = 0;
|
|
2080
|
+
try {
|
|
2081
|
+
const linkDocs = docs.slice(0, 10);
|
|
2082
|
+
const siteUrl = process.env.NEXT_PUBLIC_SITE_URL ?? '';
|
|
2083
|
+
const urlRegex = /https?:\/\/[^\s"'<>]+/g;
|
|
2084
|
+
for (const doc of linkDocs) {
|
|
2085
|
+
const content = JSON.stringify(doc.data ?? {});
|
|
2086
|
+
const urls = content.match(urlRegex) ?? [];
|
|
2087
|
+
const seen = new Set();
|
|
2088
|
+
for (const url of urls) {
|
|
2089
|
+
const clean = url.replace(/[",;)}\]]+$/, '');
|
|
2090
|
+
if (seen.has(clean) || (siteUrl && !clean.startsWith(siteUrl)))
|
|
2091
|
+
continue;
|
|
2092
|
+
seen.add(clean);
|
|
2093
|
+
try {
|
|
2094
|
+
const resp = await fetch(clean, { method: 'HEAD', redirect: 'manual', signal: AbortSignal.timeout(3000) });
|
|
2095
|
+
if (resp.status >= 400)
|
|
2096
|
+
brokenInternalLinks++;
|
|
2097
|
+
}
|
|
2098
|
+
catch {
|
|
2099
|
+
brokenInternalLinks++;
|
|
2100
|
+
}
|
|
2101
|
+
}
|
|
2102
|
+
}
|
|
2103
|
+
}
|
|
2104
|
+
catch { /* best effort */ }
|
|
2105
|
+
return json({
|
|
2106
|
+
data: {
|
|
2107
|
+
totalPages: docs.length,
|
|
2108
|
+
issuesSummary: { missingMetaDescriptions, brokenInternalLinks, missingAltText },
|
|
2109
|
+
topContent: topContent.slice(0, 10),
|
|
2110
|
+
},
|
|
2111
|
+
});
|
|
2112
|
+
}
|
|
2113
|
+
catch (err) {
|
|
2114
|
+
return internalError(err);
|
|
2115
|
+
}
|
|
2116
|
+
});
|
|
2117
|
+
// ---------------------------------------------------------------------------
|
|
2001
2118
|
// URL Resolution — maps a public URL path to its document
|
|
2002
2119
|
// ---------------------------------------------------------------------------
|
|
2120
|
+
const MAX_RESOLVE_DEPTH = 10;
|
|
2121
|
+
async function resolveLayout(path, docData, matchedCollection) {
|
|
2122
|
+
const config = globalThis.__actuateConfig;
|
|
2123
|
+
const layoutConfig = config?.layout;
|
|
2124
|
+
if (!layoutConfig?.regions)
|
|
2125
|
+
return {};
|
|
2126
|
+
const regionNames = Object.keys(layoutConfig.regions);
|
|
2127
|
+
if (regionNames.length === 0)
|
|
2128
|
+
return {};
|
|
2129
|
+
const allowedCollections = new Set();
|
|
2130
|
+
for (const region of regionNames) {
|
|
2131
|
+
const col = layoutConfig.regions[region]?.collection;
|
|
2132
|
+
if (col)
|
|
2133
|
+
allowedCollections.add(col);
|
|
2134
|
+
}
|
|
2135
|
+
const resolved = {};
|
|
2136
|
+
const unresolved = new Set(regionNames);
|
|
2137
|
+
const docLayout = (docData?._layout ?? {});
|
|
2138
|
+
for (const region of regionNames) {
|
|
2139
|
+
if (docLayout[region] && typeof docLayout[region] === 'string') {
|
|
2140
|
+
resolved[region] = docLayout[region];
|
|
2141
|
+
unresolved.delete(region);
|
|
2142
|
+
}
|
|
2143
|
+
}
|
|
2144
|
+
if (unresolved.size > 0 && layoutConfig.inherit !== false) {
|
|
2145
|
+
const segments = path.replace(/^\/|\/$/g, '').split('/').filter(Boolean);
|
|
2146
|
+
const walkDepth = Math.min(segments.length - 1, MAX_RESOLVE_DEPTH);
|
|
2147
|
+
for (let i = walkDepth; i > 0 && unresolved.size > 0; i--) {
|
|
2148
|
+
const parentSlug = segments.slice(0, i).join('/');
|
|
2149
|
+
const parentDoc = await db().document.findFirst({
|
|
2150
|
+
where: {
|
|
2151
|
+
collection: matchedCollection,
|
|
2152
|
+
deletedAt: null,
|
|
2153
|
+
status: 'PUBLISHED',
|
|
2154
|
+
OR: [
|
|
2155
|
+
{ data: { path: ['slug'], equals: parentSlug } },
|
|
2156
|
+
{ slug: parentSlug },
|
|
2157
|
+
],
|
|
2158
|
+
},
|
|
2159
|
+
select: { data: true },
|
|
2160
|
+
});
|
|
2161
|
+
if (!parentDoc)
|
|
2162
|
+
continue;
|
|
2163
|
+
const parentLayout = (parentDoc.data?._layout ?? {});
|
|
2164
|
+
for (const region of [...unresolved]) {
|
|
2165
|
+
if (parentLayout[region] && typeof parentLayout[region] === 'string') {
|
|
2166
|
+
resolved[region] = parentLayout[region];
|
|
2167
|
+
unresolved.delete(region);
|
|
2168
|
+
}
|
|
2169
|
+
}
|
|
2170
|
+
}
|
|
2171
|
+
}
|
|
2172
|
+
const settingsGlobal = await db().document.findFirst({
|
|
2173
|
+
where: { collection: 'settings', deletedAt: null },
|
|
2174
|
+
select: { data: true },
|
|
2175
|
+
});
|
|
2176
|
+
const settingsDefaults = (settingsGlobal?.data?.defaultLayout ?? {});
|
|
2177
|
+
for (const region of [...unresolved]) {
|
|
2178
|
+
const fallback = layoutConfig.defaults?.[region] ?? settingsDefaults[region];
|
|
2179
|
+
if (fallback && typeof fallback === 'string') {
|
|
2180
|
+
resolved[region] = fallback;
|
|
2181
|
+
unresolved.delete(region);
|
|
2182
|
+
}
|
|
2183
|
+
}
|
|
2184
|
+
if (Object.keys(resolved).length === 0)
|
|
2185
|
+
return {};
|
|
2186
|
+
const variantIds = [...new Set(Object.values(resolved))];
|
|
2187
|
+
const allowedCollectionList = [...allowedCollections];
|
|
2188
|
+
const variants = await db().document.findMany({
|
|
2189
|
+
where: {
|
|
2190
|
+
id: { in: variantIds },
|
|
2191
|
+
collection: { in: allowedCollectionList },
|
|
2192
|
+
status: 'PUBLISHED',
|
|
2193
|
+
deletedAt: null,
|
|
2194
|
+
},
|
|
2195
|
+
});
|
|
2196
|
+
const variantMap = new Map(variants.map((v) => [v.id, v]));
|
|
2197
|
+
const result = {};
|
|
2198
|
+
for (const [region, docId] of Object.entries(resolved)) {
|
|
2199
|
+
const expectedCollection = layoutConfig.regions[region]?.collection;
|
|
2200
|
+
const variant = variantMap.get(docId);
|
|
2201
|
+
if (variant && variant.collection === expectedCollection) {
|
|
2202
|
+
result[region] = { id: variant.id, collection: variant.collection, data: variant.data };
|
|
2203
|
+
}
|
|
2204
|
+
}
|
|
2205
|
+
return result;
|
|
2206
|
+
}
|
|
2003
2207
|
router.get('/resolve', async (request) => {
|
|
2004
2208
|
try {
|
|
2005
2209
|
const url = new URL(request.url);
|
|
@@ -2008,63 +2212,80 @@ export function registerCMSRoutes(router) {
|
|
|
2008
2212
|
return errorResponse('Missing required "path" query parameter', 400);
|
|
2009
2213
|
}
|
|
2010
2214
|
const segments = pathParam.replace(/^\/|\/$/g, '').split('/').filter(Boolean);
|
|
2011
|
-
if (segments.length === 0) {
|
|
2012
|
-
return errorResponse('Empty path', 400);
|
|
2013
|
-
}
|
|
2014
2215
|
const configCollections = globalThis.__actuateConfig?.collections ?? {};
|
|
2015
2216
|
const collectionDefs = Object.values(configCollections);
|
|
2016
2217
|
let matchedCollection = null;
|
|
2017
2218
|
let docSlug = null;
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2219
|
+
if (segments.length === 0) {
|
|
2220
|
+
// Root path — find a page-type collection and look for "home" or "index"
|
|
2221
|
+
const pageCol = collectionDefs.find((c) => c.type === 'page' && !((c.urlPrefix ?? '').replace(/^\/|\/$/g, '')));
|
|
2222
|
+
matchedCollection = pageCol?.slug ?? 'pages';
|
|
2223
|
+
docSlug = 'home';
|
|
2224
|
+
}
|
|
2225
|
+
else {
|
|
2226
|
+
for (const col of collectionDefs) {
|
|
2227
|
+
const prefix = (col.urlPrefix ?? col.slug ?? '').replace(/^\/|\/$/g, '');
|
|
2228
|
+
if (prefix && segments.length >= 2) {
|
|
2229
|
+
const prefixParts = prefix.split('/');
|
|
2230
|
+
const pathPrefix = segments.slice(0, prefixParts.length).join('/');
|
|
2231
|
+
if (pathPrefix === prefix) {
|
|
2232
|
+
matchedCollection = col.slug;
|
|
2233
|
+
docSlug = segments.slice(prefixParts.length).join('/');
|
|
2234
|
+
break;
|
|
2235
|
+
}
|
|
2236
|
+
}
|
|
2237
|
+
else if (!prefix && col.type === 'page') {
|
|
2024
2238
|
matchedCollection = col.slug;
|
|
2025
|
-
docSlug = segments.
|
|
2026
|
-
break;
|
|
2239
|
+
docSlug = segments.join('/');
|
|
2027
2240
|
}
|
|
2028
2241
|
}
|
|
2029
|
-
|
|
2030
|
-
matchedCollection =
|
|
2031
|
-
docSlug = segments
|
|
2242
|
+
if (!matchedCollection && segments.length === 1) {
|
|
2243
|
+
matchedCollection = 'pages';
|
|
2244
|
+
docSlug = segments[0];
|
|
2245
|
+
}
|
|
2246
|
+
if (!matchedCollection && segments.length >= 2) {
|
|
2247
|
+
matchedCollection = segments[0];
|
|
2248
|
+
docSlug = segments.slice(1).join('/');
|
|
2032
2249
|
}
|
|
2033
|
-
}
|
|
2034
|
-
if (!matchedCollection && segments.length === 1) {
|
|
2035
|
-
matchedCollection = 'pages';
|
|
2036
|
-
docSlug = segments[0];
|
|
2037
|
-
}
|
|
2038
|
-
if (!matchedCollection && segments.length >= 2) {
|
|
2039
|
-
matchedCollection = segments[0];
|
|
2040
|
-
docSlug = segments.slice(1).join('/');
|
|
2041
2250
|
}
|
|
2042
2251
|
if (!matchedCollection || !docSlug) {
|
|
2043
2252
|
return errorResponse('Could not resolve path', 404);
|
|
2044
2253
|
}
|
|
2254
|
+
const isRootPath = segments.length === 0;
|
|
2045
2255
|
const doc = await db().document.findFirst({
|
|
2046
2256
|
where: {
|
|
2047
2257
|
collection: matchedCollection,
|
|
2048
2258
|
deletedAt: null,
|
|
2049
2259
|
status: 'PUBLISHED',
|
|
2050
|
-
OR:
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
|
|
2260
|
+
OR: isRootPath
|
|
2261
|
+
? [
|
|
2262
|
+
{ data: { path: ['slug'], equals: 'home' } },
|
|
2263
|
+
{ data: { path: ['slug'], equals: 'index' } },
|
|
2264
|
+
{ slug: 'home' },
|
|
2265
|
+
{ slug: 'index' },
|
|
2266
|
+
]
|
|
2267
|
+
: [
|
|
2268
|
+
{ data: { path: ['slug'], equals: docSlug } },
|
|
2269
|
+
{ slug: docSlug },
|
|
2270
|
+
],
|
|
2054
2271
|
},
|
|
2055
2272
|
});
|
|
2056
2273
|
if (!doc) {
|
|
2057
2274
|
return errorResponse('Document not found', 404);
|
|
2058
2275
|
}
|
|
2276
|
+
const docData = (doc.data && typeof doc.data === 'object') ? doc.data : {};
|
|
2277
|
+
const layout = await resolveLayout(pathParam, docData, matchedCollection);
|
|
2278
|
+
const { _layout: _omit, ...cleanData } = docData;
|
|
2059
2279
|
return json({
|
|
2060
2280
|
data: {
|
|
2061
2281
|
id: doc.id,
|
|
2062
2282
|
collection: doc.collection,
|
|
2063
|
-
data:
|
|
2283
|
+
data: cleanData,
|
|
2064
2284
|
status: doc.status,
|
|
2065
2285
|
publishedAt: doc.publishedAt,
|
|
2066
2286
|
structuredData: doc.structuredData,
|
|
2067
2287
|
},
|
|
2288
|
+
...(Object.keys(layout).length > 0 ? { layout } : {}),
|
|
2068
2289
|
});
|
|
2069
2290
|
}
|
|
2070
2291
|
catch (err) {
|