@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.
Files changed (116) hide show
  1. package/dist/admin/admin-routes.d.ts +2 -0
  2. package/dist/admin/admin-routes.d.ts.map +1 -1
  3. package/dist/admin/admin-routes.js +7 -5
  4. package/dist/admin/admin-routes.js.map +1 -1
  5. package/dist/admin/edit-view.d.ts +9 -1
  6. package/dist/admin/edit-view.d.ts.map +1 -1
  7. package/dist/admin/edit-view.js +105 -35
  8. package/dist/admin/edit-view.js.map +1 -1
  9. package/dist/admin/editor/admin-client.js +1 -1
  10. package/dist/admin/editor/admin-client.js.map +1 -1
  11. package/dist/admin/field-renderers.d.ts +13 -1
  12. package/dist/admin/field-renderers.d.ts.map +1 -1
  13. package/dist/admin/field-renderers.js +48 -8
  14. package/dist/admin/field-renderers.js.map +1 -1
  15. package/dist/admin/layout.d.ts.map +1 -1
  16. package/dist/admin/layout.js +49 -2
  17. package/dist/admin/layout.js.map +1 -1
  18. package/dist/admin/list-view.d.ts +9 -0
  19. package/dist/admin/list-view.d.ts.map +1 -1
  20. package/dist/admin/list-view.js +109 -7
  21. package/dist/admin/list-view.js.map +1 -1
  22. package/dist/admin-client.js +1 -1
  23. package/dist/api/local-api.d.ts +14 -3
  24. package/dist/api/local-api.d.ts.map +1 -1
  25. package/dist/api/local-api.js +112 -7
  26. package/dist/api/local-api.js.map +1 -1
  27. package/dist/api/rest-api.d.ts +8 -1
  28. package/dist/api/rest-api.d.ts.map +1 -1
  29. package/dist/api/rest-api.js +76 -12
  30. package/dist/api/rest-api.js.map +1 -1
  31. package/dist/auth/auth-routes.d.ts.map +1 -1
  32. package/dist/auth/auth-routes.js +9 -3
  33. package/dist/auth/auth-routes.js.map +1 -1
  34. package/dist/auth/index.d.ts +3 -3
  35. package/dist/auth/index.d.ts.map +1 -1
  36. package/dist/auth/index.js +2 -2
  37. package/dist/auth/index.js.map +1 -1
  38. package/dist/auth/middleware.d.ts +8 -0
  39. package/dist/auth/middleware.d.ts.map +1 -1
  40. package/dist/auth/middleware.js +38 -0
  41. package/dist/auth/middleware.js.map +1 -1
  42. package/dist/auth/session.d.ts +10 -3
  43. package/dist/auth/session.d.ts.map +1 -1
  44. package/dist/auth/session.js +18 -6
  45. package/dist/auth/session.js.map +1 -1
  46. package/dist/config/cms-config.d.ts +12 -0
  47. package/dist/config/cms-config.d.ts.map +1 -1
  48. package/dist/config/cms-config.js +13 -3
  49. package/dist/config/cms-config.js.map +1 -1
  50. package/dist/config/index.d.ts +1 -1
  51. package/dist/config/index.d.ts.map +1 -1
  52. package/dist/db/migration-generator.d.ts +3 -3
  53. package/dist/db/migration-generator.d.ts.map +1 -1
  54. package/dist/db/migration-generator.js +27 -9
  55. package/dist/db/migration-generator.js.map +1 -1
  56. package/dist/db/query-builder.d.ts +3 -1
  57. package/dist/db/query-builder.d.ts.map +1 -1
  58. package/dist/db/query-builder.js +54 -14
  59. package/dist/db/query-builder.js.map +1 -1
  60. package/dist/db/sql-sanitize.d.ts.map +1 -1
  61. package/dist/db/sql-sanitize.js +5 -1
  62. package/dist/db/sql-sanitize.js.map +1 -1
  63. package/dist/hooks/hook-types.d.ts +5 -1
  64. package/dist/hooks/hook-types.d.ts.map +1 -1
  65. package/dist/index.d.ts +10 -8
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +5 -4
  68. package/dist/index.js.map +1 -1
  69. package/dist/media/image-processor.d.ts +17 -0
  70. package/dist/media/image-processor.d.ts.map +1 -0
  71. package/dist/media/image-processor.js +90 -0
  72. package/dist/media/image-processor.js.map +1 -0
  73. package/dist/media/index.d.ts +8 -3
  74. package/dist/media/index.d.ts.map +1 -1
  75. package/dist/media/index.js +4 -2
  76. package/dist/media/index.js.map +1 -1
  77. package/dist/media/media-config.d.ts +14 -0
  78. package/dist/media/media-config.d.ts.map +1 -1
  79. package/dist/media/media-config.js +8 -1
  80. package/dist/media/media-config.js.map +1 -1
  81. package/dist/media/serve-handler.d.ts +3 -1
  82. package/dist/media/serve-handler.d.ts.map +1 -1
  83. package/dist/media/serve-handler.js +39 -17
  84. package/dist/media/serve-handler.js.map +1 -1
  85. package/dist/media/storage-adapter.d.ts +10 -0
  86. package/dist/media/storage-adapter.d.ts.map +1 -0
  87. package/dist/media/storage-adapter.js +46 -0
  88. package/dist/media/storage-adapter.js.map +1 -0
  89. package/dist/media/upload-handler.d.ts +13 -1
  90. package/dist/media/upload-handler.d.ts.map +1 -1
  91. package/dist/media/upload-handler.js +140 -30
  92. package/dist/media/upload-handler.js.map +1 -1
  93. package/dist/scheduler.d.ts +7 -0
  94. package/dist/scheduler.d.ts.map +1 -0
  95. package/dist/scheduler.js +14 -0
  96. package/dist/scheduler.js.map +1 -0
  97. package/dist/schema/collection.d.ts +9 -1
  98. package/dist/schema/collection.d.ts.map +1 -1
  99. package/dist/schema/collection.js.map +1 -1
  100. package/dist/schema/index.d.ts +2 -2
  101. package/dist/schema/index.d.ts.map +1 -1
  102. package/dist/schema/index.js +1 -1
  103. package/dist/schema/index.js.map +1 -1
  104. package/dist/schema/types.d.ts +5 -0
  105. package/dist/schema/types.d.ts.map +1 -1
  106. package/dist/schema/types.js +4 -0
  107. package/dist/schema/types.js.map +1 -1
  108. package/dist/validation/index.d.ts +1 -1
  109. package/dist/validation/index.d.ts.map +1 -1
  110. package/dist/validation/index.js +1 -1
  111. package/dist/validation/index.js.map +1 -1
  112. package/dist/validation/zod-generator.d.ts +4 -0
  113. package/dist/validation/zod-generator.d.ts.map +1 -1
  114. package/dist/validation/zod-generator.js +12 -1
  115. package/dist/validation/zod-generator.js.map +1 -1
  116. package/package.json +5 -4
@@ -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
- export function createLocalApi(pool, collections, globals) {
7
- const qb = createQueryBuilder(pool, collections);
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
- return qb.query(args.collection)
42
- .insert(args.data);
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(args.data);
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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"}
@@ -8,5 +8,12 @@ export interface RestRouteEntry {
8
8
  readonly PATCH?: RestRouteHandler | undefined;
9
9
  readonly DELETE?: RestRouteHandler | undefined;
10
10
  }
11
- export declare function createRestRoutes(pool: DbPool, collections: CollectionRegistry, globals: GlobalRegistry): Map<string, RestRouteEntry>;
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;AAmFD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,cAAc,GACtB,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAuG7B"}
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"}
@@ -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 parseQueryParams(url, col) {
29
+ function parseUrlParams(url) {
30
30
  const qmark = url.indexOf('?');
31
31
  const qs = qmark >= 0 ? url.slice(qmark + 1) : '';
32
- const params = new URLSearchParams(qs);
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
- export function createRestRoutes(pool, collections, globals) {
66
- const api = createLocalApi(pool, collections, globals);
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 validation = zodSchema.safeParse(parseResult.value);
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 result = await api.update({ collection: slug, id, data: parseResult.value });
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
  }
@@ -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;AAuBxD,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,CA8F7B"}
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"}
@@ -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 cookie = buildSessionCookie(sessionResult.value);
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":"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"}
1
+ {"version":3,"file":"auth-routes.js","sourceRoot":"","sources":["../../src/auth/auth-routes.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AACjJ,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,SAAS,WAAW,CAAE,GAAoB;IACxC,OAAO,CAAC,CAAE,GAAG,CAAC,MAAkC,CAAC,SAAS,CAAA;AAC5D,CAAC;AAQD,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC5B,CAAC,CAAA;AAEF,MAAM,UAAU,mBAAmB,CAAE,WAA+B;IAClE,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;QACvC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;YAAE,SAAQ;QACjC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAC7B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,CAC3E,CAAA;QACD,OAAO,OAAO,EAAE,IAAI,IAAI,OAAO,CAAA;IACjC,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,SAAS,CAAE,IAAY,EAAE,KAAa,EAAE,cAAsB;IACrE,OAAO,SAAS,CACd,IAAI,EACJ,oCAAoC,cAAc,6DAA6D,EAC/G,CAAC,KAAK,CAAC,CACR,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,WAA+B;IAE/B,MAAM,eAAe,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAA;IACxD,MAAM,YAAY,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAA;IACnF,MAAM,cAAc,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAA;IACvD,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAA;IAChD,MAAM,YAAY,GAAG,iBAAiB,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;IAE7E,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE;QAC7B,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACvB,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAA;YAC1C,IAAI,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;gBAAC,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAAC,OAAM;YAAC,CAAC;YACrF,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YACzD,IAAI,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC;gBAAC,aAAa,CAAC,GAAG,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAAC,OAAM;YAAC,CAAC;YAEvF,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YAC3D,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC/F,aAAa,CAAC,GAAG,EAAE,sBAAsB,MAAM,EAAE,EAAE,GAAG,CAAC,CAAA;gBACvD,OAAM;YACR,CAAC;YAED,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,IAAI,CAAA;YAE3C,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/B,aAAa,CAAC,GAAG,EAAE,yBAAyB,EAAE,GAAG,CAAC,CAAA;gBAClD,OAAM;YACR,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,CAAA;YAC/D,IAAI,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;gBAAC,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;gBAAC,OAAM;YAAC,CAAC;YAC3E,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAA;YAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;gBAAC,aAAa,CAAC,GAAG,EAAE,qBAAqB,EAAE,GAAG,CAAC,CAAC;gBAAC,OAAM;YAAC,CAAC;YAErE,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;YACvE,IAAI,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;gBAChD,aAAa,CAAC,GAAG,EAAE,qBAAqB,EAAE,GAAG,CAAC,CAAA;gBAC9C,OAAM;YACR,CAAC;YAED,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACzB,MAAM,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;YACxC,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;YACxD,IAAI,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC;gBAAC,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;gBAAC,OAAM;YAAC,CAAC;YAE9E,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;YAC/B,MAAM,MAAM,GAAG,kBAAkB,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;YACpE,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;gBACjB,cAAc,EAAE,iCAAiC;gBACjD,YAAY,EAAE,MAAM;aACrB,CAAC,CAAA;YACF,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAuB,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAA;QAC5J,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE;QAC9B,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACvB,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAA;YAC7C,MAAM,SAAS,GAAG,WAAW,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;YAC1D,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;YACvC,CAAC;YACD,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;YAC/B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;gBACjB,cAAc,EAAE,iCAAiC;gBACjD,YAAY,EAAE,yBAAyB,CAAC,MAAM,CAAC;aAChD,CAAC,CAAA;YACF,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAA;QACpD,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE;QAC1B,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACtB,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAA;YAC7C,MAAM,SAAS,GAAG,WAAW,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;YAC1D,IAAI,CAAC,SAAS,EAAE,CAAC;gBAAC,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;gBAAC,OAAM;YAAC,CAAC;YAEnE,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;YAC5D,IAAI,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC;gBAAC,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;gBAAC,OAAM;YAAC,CAAC;YAE9E,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAA;YAClC,MAAM,UAAU,GAAG,MAAM,SAAS,CAChC,IAAI,EACJ,qBAAqB,cAAc,0DAA0D,EAC7F,CAAC,MAAM,CAAC,CACT,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAA;YAE9B,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBAC5C,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAA;gBACzC,OAAM;YACR,CAAC;YAED,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAA;YAC7B,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAuB,IAAI,IAAI,CAAC,KAAK,EAAkB,CAAC,CAAA;QACxJ,CAAC;KACF,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -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';
@@ -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;AAE5H,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAElE,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"}
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"}
@@ -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';
@@ -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;AAE5H,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAGtD,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
+ {"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;AAI3C,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;AAE3H,wBAAgB,oBAAoB,CAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CA6BlE"}
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"}
@@ -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