@valencets/cms 0.4.0 → 0.6.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/admin/admin-routes.d.ts +2 -0
- package/dist/admin/admin-routes.d.ts.map +1 -1
- package/dist/admin/admin-routes.js +7 -5
- package/dist/admin/admin-routes.js.map +1 -1
- package/dist/admin/edit-view.d.ts +9 -1
- package/dist/admin/edit-view.d.ts.map +1 -1
- package/dist/admin/edit-view.js +105 -35
- package/dist/admin/edit-view.js.map +1 -1
- package/dist/admin/editor/admin-client.js +1 -1
- package/dist/admin/editor/admin-client.js.map +1 -1
- package/dist/admin/field-renderers.d.ts +13 -1
- package/dist/admin/field-renderers.d.ts.map +1 -1
- package/dist/admin/field-renderers.js +48 -8
- package/dist/admin/field-renderers.js.map +1 -1
- package/dist/admin/layout.d.ts.map +1 -1
- package/dist/admin/layout.js +49 -2
- package/dist/admin/layout.js.map +1 -1
- package/dist/admin/list-view.d.ts +9 -0
- package/dist/admin/list-view.d.ts.map +1 -1
- package/dist/admin/list-view.js +109 -7
- package/dist/admin/list-view.js.map +1 -1
- package/dist/admin-client.js +1 -1
- package/dist/api/local-api.d.ts +14 -3
- package/dist/api/local-api.d.ts.map +1 -1
- package/dist/api/local-api.js +112 -7
- package/dist/api/local-api.js.map +1 -1
- package/dist/api/rest-api.d.ts +8 -1
- package/dist/api/rest-api.d.ts.map +1 -1
- package/dist/api/rest-api.js +76 -12
- package/dist/api/rest-api.js.map +1 -1
- package/dist/auth/auth-routes.d.ts.map +1 -1
- package/dist/auth/auth-routes.js +9 -3
- package/dist/auth/auth-routes.js.map +1 -1
- package/dist/auth/index.d.ts +3 -3
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +2 -2
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/middleware.d.ts +8 -0
- package/dist/auth/middleware.d.ts.map +1 -1
- package/dist/auth/middleware.js +38 -0
- package/dist/auth/middleware.js.map +1 -1
- package/dist/auth/session.d.ts +10 -3
- package/dist/auth/session.d.ts.map +1 -1
- package/dist/auth/session.js +18 -6
- package/dist/auth/session.js.map +1 -1
- package/dist/config/cms-config.d.ts +12 -0
- package/dist/config/cms-config.d.ts.map +1 -1
- package/dist/config/cms-config.js +13 -3
- package/dist/config/cms-config.js.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/db/migration-generator.d.ts +3 -3
- package/dist/db/migration-generator.d.ts.map +1 -1
- package/dist/db/migration-generator.js +27 -9
- package/dist/db/migration-generator.js.map +1 -1
- package/dist/db/query-builder.d.ts +3 -1
- package/dist/db/query-builder.d.ts.map +1 -1
- package/dist/db/query-builder.js +54 -14
- package/dist/db/query-builder.js.map +1 -1
- package/dist/db/sql-sanitize.d.ts.map +1 -1
- package/dist/db/sql-sanitize.js +5 -1
- package/dist/db/sql-sanitize.js.map +1 -1
- package/dist/hooks/hook-types.d.ts +5 -1
- package/dist/hooks/hook-types.d.ts.map +1 -1
- package/dist/index.d.ts +10 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/media/image-processor.d.ts +17 -0
- package/dist/media/image-processor.d.ts.map +1 -0
- package/dist/media/image-processor.js +90 -0
- package/dist/media/image-processor.js.map +1 -0
- package/dist/media/index.d.ts +8 -3
- package/dist/media/index.d.ts.map +1 -1
- package/dist/media/index.js +4 -2
- package/dist/media/index.js.map +1 -1
- package/dist/media/media-config.d.ts +14 -0
- package/dist/media/media-config.d.ts.map +1 -1
- package/dist/media/media-config.js +8 -1
- package/dist/media/media-config.js.map +1 -1
- package/dist/media/serve-handler.d.ts +3 -1
- package/dist/media/serve-handler.d.ts.map +1 -1
- package/dist/media/serve-handler.js +39 -17
- package/dist/media/serve-handler.js.map +1 -1
- package/dist/media/storage-adapter.d.ts +10 -0
- package/dist/media/storage-adapter.d.ts.map +1 -0
- package/dist/media/storage-adapter.js +46 -0
- package/dist/media/storage-adapter.js.map +1 -0
- package/dist/media/upload-handler.d.ts +13 -1
- package/dist/media/upload-handler.d.ts.map +1 -1
- package/dist/media/upload-handler.js +140 -30
- package/dist/media/upload-handler.js.map +1 -1
- package/dist/scheduler.d.ts +7 -0
- package/dist/scheduler.d.ts.map +1 -0
- package/dist/scheduler.js +14 -0
- package/dist/scheduler.js.map +1 -0
- package/dist/schema/collection.d.ts +9 -1
- package/dist/schema/collection.d.ts.map +1 -1
- package/dist/schema/collection.js.map +1 -1
- package/dist/schema/index.d.ts +2 -2
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +1 -1
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/types.d.ts +5 -0
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/types.js +4 -0
- package/dist/schema/types.js.map +1 -1
- package/dist/validation/index.d.ts +1 -1
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +1 -1
- package/dist/validation/index.js.map +1 -1
- package/dist/validation/zod-generator.d.ts +4 -0
- package/dist/validation/zod-generator.d.ts.map +1 -1
- package/dist/validation/zod-generator.js +12 -1
- package/dist/validation/zod-generator.js.map +1 -1
- package/package.json +5 -4
package/dist/api/local-api.js
CHANGED
|
@@ -1,13 +1,75 @@
|
|
|
1
|
-
import { errAsync } from 'neverthrow';
|
|
1
|
+
import { errAsync, okAsync } from 'neverthrow';
|
|
2
2
|
import { createQueryBuilder } from '../db/query-builder.js';
|
|
3
|
-
import { CmsErrorCode } from '../schema/types.js';
|
|
3
|
+
import { CmsErrorCode, StatusCode } from '../schema/types.js';
|
|
4
4
|
import { isValidIdentifier } from '../db/sql-sanitize.js';
|
|
5
5
|
import { safeQuery } from '../db/safe-query.js';
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
import { runHooks } from '../hooks/hook-runner.js';
|
|
7
|
+
function runAfterHooks(hooks, result, id, collectionSlug) {
|
|
8
|
+
if (hooks && hooks.length > 0) {
|
|
9
|
+
return runHooks(hooks, { data: result, id, collection: collectionSlug })
|
|
10
|
+
.map(() => result);
|
|
11
|
+
}
|
|
12
|
+
return okAsync(result);
|
|
13
|
+
}
|
|
14
|
+
function executeWithHooks(beforeHooks, afterHooks, data, id, collectionSlug, execute) {
|
|
15
|
+
const beforeResult = (beforeHooks && beforeHooks.length > 0)
|
|
16
|
+
? runHooks(beforeHooks, { data, id, collection: collectionSlug })
|
|
17
|
+
.andThen((hookData) => execute(hookData))
|
|
18
|
+
: execute(data);
|
|
19
|
+
return beforeResult.andThen((result) => runAfterHooks(afterHooks, result, id, collectionSlug));
|
|
20
|
+
}
|
|
21
|
+
function wrapLocalizedFields(data, fields, locale) {
|
|
22
|
+
const localizedNames = new Set(fields.filter(f => f.localized).map(f => f.name));
|
|
23
|
+
const wrapped = {};
|
|
24
|
+
for (const [key, value] of Object.entries(data)) {
|
|
25
|
+
if (localizedNames.has(key) && value !== null && value !== undefined) {
|
|
26
|
+
wrapped[key] = JSON.stringify({ [locale]: value });
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
wrapped[key] = value;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return wrapped;
|
|
33
|
+
}
|
|
34
|
+
function mergeLocalizedUpdate(pool, slug, id, data, localizedNames, locale) {
|
|
35
|
+
if (!isValidIdentifier(slug)) {
|
|
36
|
+
return errAsync({ code: CmsErrorCode.INVALID_INPUT, message: `Invalid collection slug: ${slug}` });
|
|
37
|
+
}
|
|
38
|
+
if (!isValidIdentifier(locale)) {
|
|
39
|
+
return errAsync({ code: CmsErrorCode.INVALID_INPUT, message: `Invalid locale: ${locale}` });
|
|
40
|
+
}
|
|
41
|
+
const setClauses = [];
|
|
42
|
+
const params = [];
|
|
43
|
+
let paramIdx = 0;
|
|
44
|
+
for (const [key, value] of Object.entries(data)) {
|
|
45
|
+
if (!isValidIdentifier(key)) {
|
|
46
|
+
return errAsync({ code: CmsErrorCode.INVALID_INPUT, message: `Invalid field name: ${key}` });
|
|
47
|
+
}
|
|
48
|
+
paramIdx++;
|
|
49
|
+
if (localizedNames.has(key)) {
|
|
50
|
+
setClauses.push(`"${key}" = COALESCE("${key}", '{}'::jsonb) || jsonb_build_object('${locale}', $${paramIdx}::text)::jsonb`);
|
|
51
|
+
params.push(value);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
setClauses.push(`"${key}" = $${paramIdx}`);
|
|
55
|
+
params.push(value);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
paramIdx++;
|
|
59
|
+
params.push(id);
|
|
60
|
+
const sql = `UPDATE "${slug}" SET ${setClauses.join(', ')} WHERE "id" = $${paramIdx} AND "deleted_at" IS NULL RETURNING *`;
|
|
61
|
+
return safeQuery(pool, sql, params)
|
|
62
|
+
.map(rows => rows[0]);
|
|
63
|
+
}
|
|
64
|
+
export function createLocalApi(pool, collections, globals, defaultLocale) {
|
|
65
|
+
const qb = createQueryBuilder(pool, collections, defaultLocale);
|
|
8
66
|
return {
|
|
9
67
|
find(args) {
|
|
10
68
|
let builder = qb.query(args.collection);
|
|
69
|
+
if (args.includeDrafts)
|
|
70
|
+
builder = builder.includeDrafts();
|
|
71
|
+
if (args.locale)
|
|
72
|
+
builder = builder.locale(args.locale);
|
|
11
73
|
if (args.where) {
|
|
12
74
|
for (const [k, v] of Object.entries(args.where)) {
|
|
13
75
|
builder = builder.where(k, v);
|
|
@@ -32,19 +94,49 @@ export function createLocalApi(pool, collections, globals) {
|
|
|
32
94
|
builder = builder.limit(args.limit);
|
|
33
95
|
return builder.all();
|
|
34
96
|
},
|
|
97
|
+
// findByID intentionally bypasses status filter — admin lookups need access to drafts
|
|
35
98
|
findByID(args) {
|
|
36
99
|
return qb.query(args.collection)
|
|
37
100
|
.where('id', args.id)
|
|
38
101
|
.first();
|
|
39
102
|
},
|
|
40
103
|
create(args) {
|
|
41
|
-
|
|
42
|
-
|
|
104
|
+
const col = collections.get(args.collection);
|
|
105
|
+
if (col.isErr())
|
|
106
|
+
return errAsync(col.error);
|
|
107
|
+
const isVersioned = col.value.versions?.drafts === true;
|
|
108
|
+
let data = isVersioned && args.draft
|
|
109
|
+
? { ...args.data, _status: StatusCode.DRAFT }
|
|
110
|
+
: isVersioned
|
|
111
|
+
? { ...args.data, _status: StatusCode.PUBLISHED }
|
|
112
|
+
: args.data;
|
|
113
|
+
if (args.locale) {
|
|
114
|
+
data = wrapLocalizedFields(data, col.value.fields, args.locale);
|
|
115
|
+
}
|
|
116
|
+
return qb.query(args.collection).insert(data);
|
|
43
117
|
},
|
|
44
118
|
update(args) {
|
|
119
|
+
const col = collections.get(args.collection);
|
|
120
|
+
if (col.isErr())
|
|
121
|
+
return errAsync(col.error);
|
|
122
|
+
const isVersioned = col.value.versions?.drafts === true;
|
|
123
|
+
let data = args.data;
|
|
124
|
+
if (isVersioned && args.publish) {
|
|
125
|
+
data = { ...data, _status: StatusCode.PUBLISHED };
|
|
126
|
+
}
|
|
127
|
+
else if (isVersioned && args.draft) {
|
|
128
|
+
data = { ...data, _status: StatusCode.DRAFT };
|
|
129
|
+
}
|
|
130
|
+
const localizedNames = new Set(col.value.fields.filter(f => f.localized).map(f => f.name));
|
|
131
|
+
if (args.locale && localizedNames.size > 0) {
|
|
132
|
+
return mergeLocalizedUpdate(pool, col.value.slug, args.id, data, localizedNames, args.locale);
|
|
133
|
+
}
|
|
134
|
+
if (isVersioned && args.publish && col.value.hooks) {
|
|
135
|
+
return executeWithHooks(col.value.hooks.beforePublish, col.value.hooks.afterPublish, data, args.id, args.collection, (finalData) => qb.query(args.collection).where('id', args.id).update(finalData));
|
|
136
|
+
}
|
|
45
137
|
return qb.query(args.collection)
|
|
46
138
|
.where('id', args.id)
|
|
47
|
-
.update(
|
|
139
|
+
.update(data);
|
|
48
140
|
},
|
|
49
141
|
delete(args) {
|
|
50
142
|
return qb.query(args.collection)
|
|
@@ -91,6 +183,19 @@ export function createLocalApi(pool, collections, globals) {
|
|
|
91
183
|
const table = `"global_${args.slug}"`;
|
|
92
184
|
return safeQuery(pool, `UPDATE ${table} SET ${setClauses} WHERE "deleted_at" IS NULL RETURNING *`, params)
|
|
93
185
|
.map(rows => rows[0]);
|
|
186
|
+
},
|
|
187
|
+
unpublish(args) {
|
|
188
|
+
const col = collections.get(args.collection);
|
|
189
|
+
if (col.isErr())
|
|
190
|
+
return errAsync(col.error);
|
|
191
|
+
const unpublishData = { _status: StatusCode.DRAFT };
|
|
192
|
+
if (col.value.hooks) {
|
|
193
|
+
return executeWithHooks(col.value.hooks.beforeUnpublish, col.value.hooks.afterUnpublish, unpublishData, args.id, args.collection, (finalData) => qb.query(args.collection).where('id', args.id).includeDrafts().update(finalData));
|
|
194
|
+
}
|
|
195
|
+
return qb.query(args.collection)
|
|
196
|
+
.where('id', args.id)
|
|
197
|
+
.includeDrafts()
|
|
198
|
+
.update(unpublishData);
|
|
94
199
|
}
|
|
95
200
|
};
|
|
96
201
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-api.js","sourceRoot":"","sources":["../../src/api/local-api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"local-api.js","sourceRoot":"","sources":["../../src/api/local-api.ts"],"names":[],"mappings":"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"}
|
package/dist/api/rest-api.d.ts
CHANGED
|
@@ -8,5 +8,12 @@ export interface RestRouteEntry {
|
|
|
8
8
|
readonly PATCH?: RestRouteHandler | undefined;
|
|
9
9
|
readonly DELETE?: RestRouteHandler | undefined;
|
|
10
10
|
}
|
|
11
|
-
|
|
11
|
+
interface LocalizationParam {
|
|
12
|
+
readonly defaultLocale: string;
|
|
13
|
+
readonly locales: readonly {
|
|
14
|
+
readonly code: string;
|
|
15
|
+
}[];
|
|
16
|
+
}
|
|
17
|
+
export declare function createRestRoutes(pool: DbPool, collections: CollectionRegistry, globals: GlobalRegistry, localization?: LocalizationParam): Map<string, RestRouteEntry>;
|
|
18
|
+
export {};
|
|
12
19
|
//# sourceMappingURL=rest-api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest-api.d.ts","sourceRoot":"","sources":["../../src/api/rest-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAS/E,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAExH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAA;IAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAA;CAC/C;
|
|
1
|
+
{"version":3,"file":"rest-api.d.ts","sourceRoot":"","sources":["../../src/api/rest-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAS/E,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAExH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAA;IAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAA;CAC/C;AAED,UAAU,iBAAiB;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CACvD;AAiHD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,cAAc,EACvB,YAAY,CAAC,EAAE,iBAAiB,GAC/B,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CA8I7B"}
|
package/dist/api/rest-api.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createLocalApi } from './local-api.js';
|
|
2
2
|
import { sendJson, sendErrorJson, safeReadBody, safeJsonParse } from './http-utils.js';
|
|
3
|
-
import { generateZodSchema, generatePartialSchema } from '../validation/zod-generator.js';
|
|
3
|
+
import { generateZodSchema, generatePartialSchema, generateDraftSchema } from '../validation/zod-generator.js';
|
|
4
4
|
const SYSTEM_COLUMNS = new Set(['id', 'created_at', 'updated_at', 'deleted_at']);
|
|
5
|
-
const RESERVED_PARAMS = new Set(['search', 'sort', 'dir', 'page', 'limit']);
|
|
5
|
+
const RESERVED_PARAMS = new Set(['search', 'sort', 'dir', 'page', 'limit', 'draft', 'publish', 'locale']);
|
|
6
6
|
function requireJsonContentType(req, res) {
|
|
7
7
|
const ct = req.headers['content-type'] ?? '';
|
|
8
8
|
if (!ct.includes('application/json')) {
|
|
@@ -26,10 +26,13 @@ function getAllowedFields(col) {
|
|
|
26
26
|
allowed.add(sys);
|
|
27
27
|
return allowed;
|
|
28
28
|
}
|
|
29
|
-
function
|
|
29
|
+
function parseUrlParams(url) {
|
|
30
30
|
const qmark = url.indexOf('?');
|
|
31
31
|
const qs = qmark >= 0 ? url.slice(qmark + 1) : '';
|
|
32
|
-
|
|
32
|
+
return new URLSearchParams(qs);
|
|
33
|
+
}
|
|
34
|
+
function parseQueryParams(url, col) {
|
|
35
|
+
const params = parseUrlParams(url);
|
|
33
36
|
const allowed = getAllowedFields(col);
|
|
34
37
|
const sortField = params.get('sort');
|
|
35
38
|
if (sortField !== null && !allowed.has(sortField)) {
|
|
@@ -42,6 +45,8 @@ function parseQueryParams(url, col) {
|
|
|
42
45
|
const limitRaw = params.get('limit');
|
|
43
46
|
const perPage = limitRaw !== null ? parseInt(limitRaw, 10) : 25;
|
|
44
47
|
const searchVal = params.get('search') ?? undefined;
|
|
48
|
+
const includeDrafts = params.get('draft') === 'true';
|
|
49
|
+
const localeVal = params.get('locale') ?? undefined;
|
|
45
50
|
const where = {};
|
|
46
51
|
for (const [key, value] of params.entries()) {
|
|
47
52
|
if (RESERVED_PARAMS.has(key))
|
|
@@ -58,16 +63,39 @@ function parseQueryParams(url, col) {
|
|
|
58
63
|
orderBy: sortField !== null ? { field: sortField, direction } : undefined,
|
|
59
64
|
page,
|
|
60
65
|
perPage,
|
|
61
|
-
filters: Object.keys(where).length > 0 ? where : undefined
|
|
66
|
+
filters: Object.keys(where).length > 0 ? where : undefined,
|
|
67
|
+
includeDrafts,
|
|
68
|
+
locale: localeVal
|
|
62
69
|
}
|
|
63
70
|
};
|
|
64
71
|
}
|
|
65
|
-
|
|
66
|
-
const
|
|
72
|
+
function parseLocaleFromUrl(url) {
|
|
73
|
+
const qmark = url.indexOf('?');
|
|
74
|
+
if (qmark < 0)
|
|
75
|
+
return undefined;
|
|
76
|
+
const params = new URLSearchParams(url.slice(qmark + 1));
|
|
77
|
+
return params.get('locale') ?? undefined;
|
|
78
|
+
}
|
|
79
|
+
function validateLocale(locale, validCodes, res) {
|
|
80
|
+
if (locale === undefined || validCodes === undefined)
|
|
81
|
+
return true;
|
|
82
|
+
if (!validCodes.has(locale)) {
|
|
83
|
+
sendErrorJson(res, `Invalid locale: ${locale}`, 400);
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
export function createRestRoutes(pool, collections, globals, localization) {
|
|
89
|
+
const api = createLocalApi(pool, collections, globals, localization?.defaultLocale);
|
|
67
90
|
const routes = new Map();
|
|
91
|
+
const validLocaleCodes = localization
|
|
92
|
+
? new Set(localization.locales.map(l => l.code))
|
|
93
|
+
: undefined;
|
|
68
94
|
for (const col of collections.getAll()) {
|
|
69
95
|
const slug = col.slug;
|
|
70
96
|
const zodSchema = generateZodSchema(col.fields);
|
|
97
|
+
const isVersioned = col.versions?.drafts === true;
|
|
98
|
+
const draftSchema = isVersioned ? generateDraftSchema(col.fields) : undefined;
|
|
71
99
|
routes.set(`/api/${slug}`, {
|
|
72
100
|
GET: async (req, res) => {
|
|
73
101
|
const url = req.url ?? `/${slug}`;
|
|
@@ -76,14 +104,18 @@ export function createRestRoutes(pool, collections, globals) {
|
|
|
76
104
|
sendErrorJson(res, parsed.message, 400);
|
|
77
105
|
return;
|
|
78
106
|
}
|
|
79
|
-
const { search, orderBy, page, perPage, filters } = parsed.args;
|
|
107
|
+
const { search, orderBy, page, perPage, filters, includeDrafts, locale } = parsed.args;
|
|
108
|
+
if (!validateLocale(locale, validLocaleCodes, res))
|
|
109
|
+
return;
|
|
80
110
|
const result = await api.find({
|
|
81
111
|
collection: slug,
|
|
112
|
+
locale,
|
|
82
113
|
search,
|
|
83
114
|
orderBy,
|
|
84
115
|
page,
|
|
85
116
|
perPage: page !== undefined ? perPage : undefined,
|
|
86
|
-
filters
|
|
117
|
+
filters,
|
|
118
|
+
includeDrafts
|
|
87
119
|
});
|
|
88
120
|
result.match((docs) => {
|
|
89
121
|
if (page !== undefined) {
|
|
@@ -97,6 +129,10 @@ export function createRestRoutes(pool, collections, globals) {
|
|
|
97
129
|
POST: async (req, res) => {
|
|
98
130
|
if (!requireJsonContentType(req, res))
|
|
99
131
|
return;
|
|
132
|
+
const url = req.url ?? `/${slug}`;
|
|
133
|
+
const locale = parseLocaleFromUrl(url);
|
|
134
|
+
if (!validateLocale(locale, validLocaleCodes, res))
|
|
135
|
+
return;
|
|
100
136
|
const bodyResult = await safeReadBody(req);
|
|
101
137
|
if (bodyResult.isErr()) {
|
|
102
138
|
sendErrorJson(res, bodyResult.error.message, 400);
|
|
@@ -107,13 +143,16 @@ export function createRestRoutes(pool, collections, globals) {
|
|
|
107
143
|
sendErrorJson(res, parseResult.error.message, 400);
|
|
108
144
|
return;
|
|
109
145
|
}
|
|
110
|
-
const
|
|
146
|
+
const urlParams = parseUrlParams(url);
|
|
147
|
+
const isDraft = urlParams.get('draft') === 'true';
|
|
148
|
+
const schema = isDraft && draftSchema !== undefined ? draftSchema : zodSchema;
|
|
149
|
+
const validation = schema.safeParse(parseResult.value);
|
|
111
150
|
if (!validation.success) {
|
|
112
151
|
const issues = validation.error.issues.map(i => `${i.path.join('.')}: ${i.message}`).join('; ');
|
|
113
152
|
sendErrorJson(res, `Validation failed: ${issues}`, 400);
|
|
114
153
|
return;
|
|
115
154
|
}
|
|
116
|
-
const result = await api.create({ collection: slug, data: parseResult.value });
|
|
155
|
+
const result = await api.create({ collection: slug, data: parseResult.value, draft: isDraft, locale });
|
|
117
156
|
result.match((doc) => sendJson(res, doc, 201), (err) => sendErrorJson(res, err.message, 400));
|
|
118
157
|
}
|
|
119
158
|
});
|
|
@@ -137,6 +176,10 @@ export function createRestRoutes(pool, collections, globals) {
|
|
|
137
176
|
sendErrorJson(res, 'Missing document ID', 400);
|
|
138
177
|
return;
|
|
139
178
|
}
|
|
179
|
+
const url = req.url ?? `/${slug}/${id}`;
|
|
180
|
+
const locale = parseLocaleFromUrl(url);
|
|
181
|
+
if (!validateLocale(locale, validLocaleCodes, res))
|
|
182
|
+
return;
|
|
140
183
|
const bodyResult = await safeReadBody(req);
|
|
141
184
|
if (bodyResult.isErr()) {
|
|
142
185
|
sendErrorJson(res, bodyResult.error.message, 400);
|
|
@@ -154,7 +197,17 @@ export function createRestRoutes(pool, collections, globals) {
|
|
|
154
197
|
sendErrorJson(res, `Validation failed: ${issues}`, 400);
|
|
155
198
|
return;
|
|
156
199
|
}
|
|
157
|
-
const
|
|
200
|
+
const urlParams = parseUrlParams(url);
|
|
201
|
+
const isDraft = urlParams.get('draft') === 'true';
|
|
202
|
+
const isPublish = urlParams.get('publish') === 'true';
|
|
203
|
+
const result = await api.update({
|
|
204
|
+
collection: slug,
|
|
205
|
+
id,
|
|
206
|
+
data: parseResult.value,
|
|
207
|
+
draft: isDraft,
|
|
208
|
+
publish: isPublish,
|
|
209
|
+
locale
|
|
210
|
+
});
|
|
158
211
|
result.match((doc) => sendJson(res, doc), (err) => sendErrorJson(res, err.message, 400));
|
|
159
212
|
},
|
|
160
213
|
DELETE: async (req, res) => {
|
|
@@ -168,6 +221,17 @@ export function createRestRoutes(pool, collections, globals) {
|
|
|
168
221
|
result.match((doc) => sendJson(res, doc), (err) => sendErrorJson(res, err.message, 500));
|
|
169
222
|
}
|
|
170
223
|
});
|
|
224
|
+
routes.set(`/api/${slug}/:id/unpublish`, {
|
|
225
|
+
POST: async (req, res, ctx) => {
|
|
226
|
+
const id = ctx.id ?? '';
|
|
227
|
+
if (!id) {
|
|
228
|
+
sendErrorJson(res, 'Missing document ID', 400);
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
const result = await api.unpublish({ collection: slug, id });
|
|
232
|
+
result.match((doc) => sendJson(res, doc), (err) => sendErrorJson(res, err.message, 400));
|
|
233
|
+
}
|
|
234
|
+
});
|
|
171
235
|
}
|
|
172
236
|
return routes;
|
|
173
237
|
}
|
package/dist/api/rest-api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest-api.js","sourceRoot":"","sources":["../../src/api/rest-api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rest-api.js","sourceRoot":"","sources":["../../src/api/rest-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-routes.d.ts","sourceRoot":"","sources":["../../src/auth/auth-routes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"auth-routes.d.ts","sourceRoot":"","sources":["../../src/auth/auth-routes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AA4BxD,wBAAgB,mBAAmB,CAAE,WAAW,EAAE,kBAAkB,GAAG,MAAM,CAS5E;AAUD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,kBAAkB,GAC9B,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAiG7B"}
|
package/dist/auth/auth-routes.js
CHANGED
|
@@ -4,9 +4,12 @@ import { verifyPassword } from './password.js';
|
|
|
4
4
|
import { createRateLimiter } from './rate-limit.js';
|
|
5
5
|
import { parseCookie } from './cookie.js';
|
|
6
6
|
import { safeQuery } from '../db/safe-query.js';
|
|
7
|
-
import { createSession, validateSession, destroySession, buildSessionCookie, buildExpiredSessionCookie } from './session.js';
|
|
7
|
+
import { createSession, validateSession, destroySession, destroyUserSessions, buildSessionCookie, buildExpiredSessionCookie } from './session.js';
|
|
8
8
|
import { sanitizeIdentifier, isValidIdentifier } from '../db/sql-sanitize.js';
|
|
9
9
|
import { isAuthEnabled } from './auth-config.js';
|
|
10
|
+
function isEncrypted(req) {
|
|
11
|
+
return !!req.socket.encrypted;
|
|
12
|
+
}
|
|
10
13
|
const loginSchema = z.object({
|
|
11
14
|
email: z.string().min(1),
|
|
12
15
|
password: z.string().min(1)
|
|
@@ -68,12 +71,14 @@ export function createAuthRoutes(pool, collections) {
|
|
|
68
71
|
return;
|
|
69
72
|
}
|
|
70
73
|
loginLimiter.reset(email);
|
|
74
|
+
await destroyUserSessions(user.id, pool);
|
|
71
75
|
const sessionResult = await createSession(user.id, pool);
|
|
72
76
|
if (sessionResult.isErr()) {
|
|
73
77
|
sendErrorJson(res, 'Login failed', 500);
|
|
74
78
|
return;
|
|
75
79
|
}
|
|
76
|
-
const
|
|
80
|
+
const secure = isEncrypted(req);
|
|
81
|
+
const cookie = buildSessionCookie(sessionResult.value, 7200, secure);
|
|
77
82
|
res.writeHead(200, {
|
|
78
83
|
'Content-Type': 'application/json; charset=utf-8',
|
|
79
84
|
'Set-Cookie': cookie
|
|
@@ -88,9 +93,10 @@ export function createAuthRoutes(pool, collections) {
|
|
|
88
93
|
if (sessionId) {
|
|
89
94
|
await destroySession(sessionId, pool);
|
|
90
95
|
}
|
|
96
|
+
const secure = isEncrypted(req);
|
|
91
97
|
res.writeHead(200, {
|
|
92
98
|
'Content-Type': 'application/json; charset=utf-8',
|
|
93
|
-
'Set-Cookie': buildExpiredSessionCookie()
|
|
99
|
+
'Set-Cookie': buildExpiredSessionCookie(secure)
|
|
94
100
|
});
|
|
95
101
|
res.end(JSON.stringify({ message: 'Logged out' }));
|
|
96
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-routes.js","sourceRoot":"","sources":["../../src/auth/auth-routes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth-routes.js","sourceRoot":"","sources":["../../src/auth/auth-routes.ts"],"names":[],"mappings":"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"}
|
package/dist/auth/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { isAuthEnabled, getAuthConfig, getAuthFields, injectAuthFields } from './auth-config.js';
|
|
2
2
|
export type { AuthConfig } from './auth-config.js';
|
|
3
3
|
export { hashPassword, verifyPassword } from './password.js';
|
|
4
|
-
export { createSession, validateSession, destroySession, buildSessionCookie, buildExpiredSessionCookie } from './session.js';
|
|
5
|
-
export { createAuthMiddleware } from './middleware.js';
|
|
6
|
-
export type { AuthContext, AuthMiddleware } from './middleware.js';
|
|
4
|
+
export { createSession, DEFAULT_SESSION_MAX_AGE, validateSession, destroySession, destroyUserSessions, buildSessionCookie, buildExpiredSessionCookie } from './session.js';
|
|
5
|
+
export { createAuthMiddleware, createCmsAuthValidator, createCmsAuthGuard } from './middleware.js';
|
|
6
|
+
export type { AuthContext, AuthMiddleware, CmsAuthGuardOptions } from './middleware.js';
|
|
7
7
|
export { generateCsrfToken, validateCsrfToken } from './csrf.js';
|
|
8
8
|
export { createAuthRoutes } from './auth-routes.js';
|
|
9
9
|
export { parseCookie } from './cookie.js';
|
package/dist/auth/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAChG,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE5D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAChG,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE5D,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AAE1K,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAClG,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAEvF,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA"}
|
package/dist/auth/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { isAuthEnabled, getAuthConfig, getAuthFields, injectAuthFields } from './auth-config.js';
|
|
2
2
|
export { hashPassword, verifyPassword } from './password.js';
|
|
3
|
-
export { createSession, validateSession, destroySession, buildSessionCookie, buildExpiredSessionCookie } from './session.js';
|
|
4
|
-
export { createAuthMiddleware } from './middleware.js';
|
|
3
|
+
export { createSession, DEFAULT_SESSION_MAX_AGE, validateSession, destroySession, destroyUserSessions, buildSessionCookie, buildExpiredSessionCookie } from './session.js';
|
|
4
|
+
export { createAuthMiddleware, createCmsAuthValidator, createCmsAuthGuard } from './middleware.js';
|
|
5
5
|
export { generateCsrfToken, validateCsrfToken } from './csrf.js';
|
|
6
6
|
export { createAuthRoutes } from './auth-routes.js';
|
|
7
7
|
export { parseCookie } from './cookie.js';
|
package/dist/auth/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAGhG,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE5D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAGhG,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE5D,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AAE1K,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAGlG,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
2
|
import type { DbPool } from '@valencets/db';
|
|
3
|
+
import type { Middleware } from '@valencets/core/server';
|
|
4
|
+
import type { AuthResult } from '@valencets/core/server';
|
|
3
5
|
export interface AuthContext {
|
|
4
6
|
readonly userId: string;
|
|
5
7
|
readonly sessionId: string;
|
|
6
8
|
}
|
|
7
9
|
export type AuthMiddleware = (req: IncomingMessage, res: ServerResponse, next: (ctx: AuthContext) => void) => Promise<void>;
|
|
8
10
|
export declare function createAuthMiddleware(pool: DbPool): AuthMiddleware;
|
|
11
|
+
export declare function createCmsAuthValidator(pool: DbPool): (req: IncomingMessage) => Promise<AuthResult>;
|
|
12
|
+
export interface CmsAuthGuardOptions {
|
|
13
|
+
readonly redirectTo?: string;
|
|
14
|
+
readonly role?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function createCmsAuthGuard(pool: DbPool, options?: CmsAuthGuardOptions): Middleware;
|
|
9
17
|
//# sourceMappingURL=middleware.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/auth/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/auth/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAExD,OAAO,KAAK,EAAE,UAAU,EAAoB,MAAM,wBAAwB,CAAA;AAK1E,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAO3H,wBAAgB,oBAAoB,CAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CA6BlE;AAED,wBAAgB,sBAAsB,CAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,UAAU,CAAC,CA2BnG;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,wBAAgB,kBAAkB,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,UAAU,CAW3F"}
|
package/dist/auth/middleware.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { createAuthGuard } from '@valencets/core/server';
|
|
1
2
|
import { validateSession } from './session.js';
|
|
2
3
|
import { parseCookie } from './cookie.js';
|
|
4
|
+
import { safeQuery } from '../db/safe-query.js';
|
|
3
5
|
export function createAuthMiddleware(pool) {
|
|
4
6
|
return async (req, res, next) => {
|
|
5
7
|
const cookieHeader = req.headers.cookie;
|
|
@@ -23,4 +25,40 @@ export function createAuthMiddleware(pool) {
|
|
|
23
25
|
next({ userId: result.value, sessionId });
|
|
24
26
|
};
|
|
25
27
|
}
|
|
28
|
+
export function createCmsAuthValidator(pool) {
|
|
29
|
+
return async (req) => {
|
|
30
|
+
const cookieHeader = req.headers.cookie;
|
|
31
|
+
if (!cookieHeader)
|
|
32
|
+
return { authenticated: false };
|
|
33
|
+
const sessionId = parseCookie(cookieHeader, 'cms_session');
|
|
34
|
+
if (!sessionId)
|
|
35
|
+
return { authenticated: false };
|
|
36
|
+
const sessionResult = await validateSession(sessionId, pool);
|
|
37
|
+
if (sessionResult.isErr())
|
|
38
|
+
return { authenticated: false };
|
|
39
|
+
const userId = sessionResult.value;
|
|
40
|
+
const userResult = await safeQuery(pool, 'SELECT id, role FROM users WHERE id = $1 AND deleted_at IS NULL LIMIT 1', [userId]);
|
|
41
|
+
if (userResult.isErr())
|
|
42
|
+
return { authenticated: false };
|
|
43
|
+
const user = userResult.value[0];
|
|
44
|
+
if (!user)
|
|
45
|
+
return { authenticated: false };
|
|
46
|
+
return {
|
|
47
|
+
authenticated: true,
|
|
48
|
+
user: { id: user.id, role: user.role ?? 'editor' }
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export function createCmsAuthGuard(pool, options) {
|
|
53
|
+
const guardOptions = {
|
|
54
|
+
validate: createCmsAuthValidator(pool)
|
|
55
|
+
};
|
|
56
|
+
if (options?.redirectTo !== undefined) {
|
|
57
|
+
guardOptions.redirectTo = options.redirectTo;
|
|
58
|
+
}
|
|
59
|
+
if (options?.role !== undefined) {
|
|
60
|
+
guardOptions.role = options.role;
|
|
61
|
+
}
|
|
62
|
+
return createAuthGuard(guardOptions);
|
|
63
|
+
}
|
|
26
64
|
//# sourceMappingURL=middleware.js.map
|