@forge-cms/runtime 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/access.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { AccessArgs, AccessQuery, AccessRule, CmsUser, CollectionDefinition, FieldAccessArgs, FieldAccessRule } from '@forge-cms/core';
1
+ import type { AccessArgs, AccessRule, CmsUser, CollectionDefinition, FieldAccessArgs, FieldAccessRule } from '@forge-cms/core';
2
2
  import type { DatabaseWhere } from '@forge-cms/db';
3
3
  /**
4
4
  * The outcome of an access check. `allowed: false` denies outright; `allowed: true` with a `where`
@@ -15,13 +15,19 @@ export interface AccessDecision {
15
15
  * HTTP layer falls back to its route-level `allowedRoles`, the Local API treats it as public).
16
16
  */
17
17
  export declare function resolveAccess(rule: AccessRule | undefined, args: AccessArgs): Promise<AccessDecision | undefined>;
18
- /** AND-merges an access constraint into a user-supplied query. Access conditions always win. */
18
+ /**
19
+ * AND-merges an access constraint into a user-supplied query, as a nested `and` group rather than a
20
+ * shallow key-overwrite (spec 050 §3/§9) — `constraint` is always the first branch, `base` (however
21
+ * deeply nested, however many `or`s it contains) is always the second, so a consumer `or` can never
22
+ * escape the access constraint: it is never hoisted to the top level.
23
+ */
19
24
  export declare function mergeWhere(base: DatabaseWhere | undefined, constraint: DatabaseWhere | undefined): DatabaseWhere | undefined;
20
25
  /**
21
- * Checks an already-loaded document against an access constraint. Used for update/delete, where the
22
- * constraint cannot be pushed into the query because the document is addressed by id.
26
+ * Checks an already-loaded document against an access constraint (flat or nested `and`/`or`). Used
27
+ * for update/delete, where the constraint cannot be pushed into the query because the document is
28
+ * addressed by id.
23
29
  */
24
- export declare function documentMatches(doc: Record<string, unknown>, where: AccessQuery): boolean;
30
+ export declare function documentMatches(doc: Record<string, unknown>, where: DatabaseWhere): boolean;
25
31
  /** Resolves a field-level rule. `undefined` means unrestricted. */
26
32
  export declare function resolveFieldAccess(rule: FieldAccessRule | undefined, args: FieldAccessArgs): Promise<boolean>;
27
33
  /** The role string an access check will see for this user — exported for the HTTP layer's messages. */
@@ -1 +1 @@
1
- {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../src/access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,UAAU,EACV,OAAO,EACP,oBAAoB,EACpB,eAAe,EACf,eAAe,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAkBD;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,UAAU,GAAG,SAAS,EAC5B,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAOrC;AAED,gGAAgG;AAChG,wBAAgB,UAAU,CACxB,IAAI,EAAE,aAAa,GAAG,SAAS,EAC/B,UAAU,EAAE,aAAa,GAAG,SAAS,GACpC,aAAa,GAAG,SAAS,CAI3B;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAEzF;AAED,mEAAmE;AACnE,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,eAAe,GAAG,SAAS,EACjC,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,OAAO,CAAC,CAIlB;AAED,uGAAuG;AACvG,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAEnE;AAED,wBAAgB,UAAU,CACxB,UAAU,EAAE,oBAAoB,EAChC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,GACnC,UAAU,CAEZ"}
1
+ {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../src/access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,OAAO,EACP,oBAAoB,EACpB,eAAe,EACf,eAAe,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAkBD;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,UAAU,GAAG,SAAS,EAC5B,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAOrC;AAMD;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,aAAa,GAAG,SAAS,EAC/B,UAAU,EAAE,aAAa,GAAG,SAAS,GACpC,aAAa,GAAG,SAAS,CAI3B;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAE3F;AAED,mEAAmE;AACnE,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,eAAe,GAAG,SAAS,EACjC,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,OAAO,CAAC,CAIlB;AAED,uGAAuG;AACvG,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAEnE;AAED,wBAAgB,UAAU,CACxB,UAAU,EAAE,oBAAoB,EAChC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,GACnC,UAAU,CAEZ"}
package/dist/access.js CHANGED
@@ -1,4 +1,4 @@
1
- import { matchesCondition } from '@forge-cms/db';
1
+ import { isWhereGroup, matchesWhere } from '@forge-cms/db';
2
2
  const DENIED = { allowed: false };
3
3
  const ALLOWED = { allowed: true };
4
4
  function roleOf(user) {
@@ -31,20 +31,29 @@ export async function resolveAccess(rule, args) {
31
31
  return result ? ALLOWED : DENIED;
32
32
  return { allowed: true, where: result };
33
33
  }
34
- /** AND-merges an access constraint into a user-supplied query. Access conditions always win. */
34
+ function isEmptyWhere(where) {
35
+ return !where || (!isWhereGroup(where) && Object.keys(where).length === 0);
36
+ }
37
+ /**
38
+ * AND-merges an access constraint into a user-supplied query, as a nested `and` group rather than a
39
+ * shallow key-overwrite (spec 050 §3/§9) — `constraint` is always the first branch, `base` (however
40
+ * deeply nested, however many `or`s it contains) is always the second, so a consumer `or` can never
41
+ * escape the access constraint: it is never hoisted to the top level.
42
+ */
35
43
  export function mergeWhere(base, constraint) {
36
- if (!constraint || Object.keys(constraint).length === 0)
44
+ if (isEmptyWhere(constraint))
37
45
  return base;
38
- if (!base || Object.keys(base).length === 0)
46
+ if (isEmptyWhere(base))
39
47
  return constraint;
40
- return { ...base, ...constraint };
48
+ return { and: [constraint, base] };
41
49
  }
42
50
  /**
43
- * Checks an already-loaded document against an access constraint. Used for update/delete, where the
44
- * constraint cannot be pushed into the query because the document is addressed by id.
51
+ * Checks an already-loaded document against an access constraint (flat or nested `and`/`or`). Used
52
+ * for update/delete, where the constraint cannot be pushed into the query because the document is
53
+ * addressed by id.
45
54
  */
46
55
  export function documentMatches(doc, where) {
47
- return Object.entries(where).every(([key, condition]) => matchesCondition(doc[key], condition));
56
+ return matchesWhere(doc, where);
48
57
  }
49
58
  /** Resolves a field-level rule. `undefined` means unrestricted. */
50
59
  export async function resolveFieldAccess(rule, args) {
@@ -1 +1 @@
1
- {"version":3,"file":"access.js","sourceRoot":"","sources":["../src/access.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"access.js","sourceRoot":"","sources":["../src/access.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAW3D,MAAM,MAAM,GAAmB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAClD,MAAM,OAAO,GAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAElD,SAAS,MAAM,CAAC,IAAoB;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IACpD,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC;AAED,6FAA6F;AAC7F,SAAS,aAAa,CAAC,YAAsB,EAAE,IAAoB;IACjE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACtC,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAA4B,EAC5B,IAAgB;IAEhB,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAE/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,OAAO,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAClE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAuB,EAAE,CAAC;AAC3D,CAAC;AAED,SAAS,YAAY,CAAC,KAAgC;IACpD,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CACxB,IAA+B,EAC/B,UAAqC;IAErC,IAAI,YAAY,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,YAAY,CAAC,IAAI,CAAC;QAAE,OAAO,UAAU,CAAC;IAC1C,OAAO,EAAE,GAAG,EAAE,CAAC,UAA2B,EAAE,IAAqB,CAAC,EAAE,CAAC;AACvE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,GAA4B,EAAE,KAAoB;IAChF,OAAO,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAClC,CAAC;AAED,mEAAmE;AACnE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAiC,EACjC,IAAqB;IAErB,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;IACvE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,UAAU,CAAC,IAAoB;IAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,UAAgC,EAChC,IAAoC;IAEpC,OAAO,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,CAAC;AACjC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"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"}
package/dist/handlers.js CHANGED
@@ -1,8 +1,18 @@
1
1
  import { getLogger } from '@forge-cms/core';
2
- import { hasAnyRole } from '@forge-cms/auth';
2
+ import { ForgeAuthError, hasAnyRole } from '@forge-cms/auth';
3
3
  import * as operations from './operations.js';
4
4
  import { AccessDeniedError, InvalidInputError, InvalidQueryError, isForgeError, toApiErrorBody } from './errors.js';
5
- const WHERE_OPERATORS = new Set(['eq', 'ne', 'gt', 'gte', 'lt', 'lte', 'in', 'contains']);
5
+ const WHERE_OPERATORS = new Set([
6
+ 'eq',
7
+ 'ne',
8
+ 'gt',
9
+ 'gte',
10
+ 'lt',
11
+ 'lte',
12
+ 'in',
13
+ 'contains',
14
+ 'containsValue'
15
+ ]);
6
16
  const SYSTEM_SORT_FIELDS = new Set(['id', 'created_at', 'updated_at']);
7
17
  const RESERVED_QUERY_PARAMS = new Set([
8
18
  'limit',
@@ -11,9 +21,16 @@ const RESERVED_QUERY_PARAMS = new Set([
11
21
  'order',
12
22
  'depth',
13
23
  'status',
14
- 'locale'
24
+ 'locale',
25
+ 'where'
15
26
  ]);
16
27
  const WHERE_KEY_PATTERN = /^(.+)\[(\w+)\]$/;
28
+ /** Generous but bounded — a nested `?where=` is meant for a real filter, not an attack payload. */
29
+ const MAX_WHERE_PARAM_LENGTH = 4096;
30
+ /** `id`/`created_at`/`updated_at` are always sortable; `_status` only on a `drafts: true` collection. */
31
+ function isSortableSystemField(collection, key) {
32
+ return SYSTEM_SORT_FIELDS.has(key) || (collection.drafts === true && key === '_status');
33
+ }
17
34
  const DEFAULT_LIMIT = 50;
18
35
  const MAX_LIMIT = 500;
19
36
  function jsonResponse(data, status = 200) {
@@ -59,11 +76,36 @@ function coerceScalar(collection, key, value) {
59
76
  }
60
77
  }
61
78
  function assertValidFilterField(collection, key) {
62
- if (!SYSTEM_SORT_FIELDS.has(key) && !collection.fields[key]) {
79
+ if (!isSortableSystemField(collection, key) && !collection.fields[key]) {
63
80
  throw new InvalidQueryError(`Unknown filter field '${key}' for collection '${collection.slug}'`);
64
81
  }
65
82
  }
83
+ /**
84
+ * Parses `?where=<json>` — a structured, nested `and`/`or` query (spec 050 §16). Only shape/size is
85
+ * checked here (valid JSON, a plain object, under the size cap); field/operator validity is checked
86
+ * once, downstream, by `operations.ts`'s `validateWhere` — the single place that already runs for
87
+ * both the Local API and HTTP, so it can't drift from this transport's own rules.
88
+ */
89
+ function parseStructuredWhere(raw) {
90
+ if (raw.length > MAX_WHERE_PARAM_LENGTH) {
91
+ throw new InvalidQueryError(`'where' query parameter exceeds the maximum length of ${MAX_WHERE_PARAM_LENGTH} characters`);
92
+ }
93
+ let parsed;
94
+ try {
95
+ parsed = JSON.parse(raw);
96
+ }
97
+ catch {
98
+ throw new InvalidQueryError("Invalid JSON in 'where' query parameter");
99
+ }
100
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
101
+ throw new InvalidQueryError("'where' query parameter must be a JSON object");
102
+ }
103
+ return parsed;
104
+ }
66
105
  function parseWhere(collection, url) {
106
+ const structured = url.searchParams.get('where');
107
+ if (structured !== null)
108
+ return parseStructuredWhere(structured);
67
109
  const where = {};
68
110
  url.searchParams.forEach((value, rawKey) => {
69
111
  if (RESERVED_QUERY_PARAMS.has(rawKey))
@@ -100,11 +142,28 @@ function parseWhere(collection, url) {
100
142
  function isOperatorObject(value) {
101
143
  return typeof value === 'object' && value !== null && !Array.isArray(value);
102
144
  }
145
+ /** Parses a JSON-array `sort` param into `SortField[]` — shape only; fields validated downstream. */
146
+ function parseStructuredSort(raw) {
147
+ let parsed;
148
+ try {
149
+ parsed = JSON.parse(raw);
150
+ }
151
+ catch {
152
+ throw new InvalidQueryError("Invalid JSON in 'sort' query parameter");
153
+ }
154
+ if (!Array.isArray(parsed)) {
155
+ throw new InvalidQueryError("'sort' query parameter must be a JSON array of { field, order }");
156
+ }
157
+ return parsed;
158
+ }
103
159
  function parseSort(collection, url) {
104
160
  const sortParam = url.searchParams.get('sort');
105
161
  if (!sortParam)
106
162
  return {};
107
- if (!SYSTEM_SORT_FIELDS.has(sortParam) && !collection.fields[sortParam]) {
163
+ if (sortParam.trimStart().startsWith('[')) {
164
+ return { sort: parseStructuredSort(sortParam) };
165
+ }
166
+ if (!isSortableSystemField(collection, sortParam) && !collection.fields[sortParam]) {
108
167
  throw new InvalidQueryError(`Unknown sort field '${sortParam}' for collection '${collection.slug}'`);
109
168
  }
110
169
  const orderParam = url.searchParams.get('order');
@@ -165,8 +224,15 @@ async function authorize(context, runtime, allowedRoles) {
165
224
  try {
166
225
  user = await runtime.adapters.auth.requireAuth(context.request);
167
226
  }
168
- catch {
169
- return { success: false, response: errorResponse('UNAUTHORIZED', 'Unauthorized', 401) };
227
+ catch (err) {
228
+ // Only an expected auth rejection (missing/invalid/expired/revoked credential) is a 401. Any
229
+ // other error — a DB outage, a misconfigured adapter — is a server fault and must propagate to
230
+ // the outer handler try/catch, which maps it to a 500. Downgrading it to 401 here would hide a
231
+ // real infrastructure failure behind a misleading "unauthenticated" response.
232
+ if (err instanceof ForgeAuthError) {
233
+ return { success: false, response: errorResponse('UNAUTHORIZED', 'Unauthorized', 401) };
234
+ }
235
+ throw err;
170
236
  }
171
237
  if (allowedRoles !== undefined && !hasAnyRole(user, allowedRoles)) {
172
238
  return { success: false, response: errorResponse('FORBIDDEN', 'Forbidden', 403) };
@@ -177,8 +243,12 @@ async function resolveOptionalUser(context, runtime) {
177
243
  try {
178
244
  return await runtime.adapters.auth.requireAuth(context.request);
179
245
  }
180
- catch {
181
- return null;
246
+ catch (err) {
247
+ // Same rule as `authorize`: no credential, or one the adapter rejects, means anonymous. An
248
+ // unexpected internal error must still propagate rather than be silently treated as "no user".
249
+ if (err instanceof ForgeAuthError)
250
+ return null;
251
+ throw err;
182
252
  }
183
253
  }
184
254
  async function resolveRequest(context, options, operation, needsId) {
@@ -194,17 +264,25 @@ async function resolveRequest(context, options, operation, needsId) {
194
264
  return errorResponse('NOT_FOUND', `Collection '${collectionSlug}' not found`, 404);
195
265
  const routeRoles = collection.access?.[operation] === undefined ? allowedRoles : undefined;
196
266
  const mustAuth = requireAuthFlag === true || routeRoles !== undefined;
197
- let user = null;
198
- if (mustAuth) {
199
- const result = await authorize(context, runtime, routeRoles);
200
- if (!result.success)
201
- return result.response;
202
- user = result.user;
267
+ try {
268
+ let user = null;
269
+ if (mustAuth) {
270
+ const result = await authorize(context, runtime, routeRoles);
271
+ if (!result.success)
272
+ return result.response;
273
+ user = result.user;
274
+ }
275
+ else {
276
+ user = await resolveOptionalUser(context, runtime);
277
+ }
278
+ return { collection, collectionSlug, user };
203
279
  }
204
- else {
205
- user = await resolveOptionalUser(context, runtime);
280
+ catch (err) {
281
+ // `authorize`/`resolveOptionalUser` only throw an unexpected (non-auth-rejection) error here —
282
+ // this function is called before any handler's own try/catch, so it must convert that itself
283
+ // rather than let it escape as an unhandled rejection.
284
+ return toErrorResponse(err, null);
206
285
  }
207
- return { collection, collectionSlug, user };
208
286
  }
209
287
  // --- handlers --------------------------------------------------------------------------------
210
288
  export async function handleList(context, options) {
@@ -387,42 +465,22 @@ export async function handleDelete(context, options) {
387
465
  const resolved = await resolveRequest(context, options, 'delete', true);
388
466
  if (resolved instanceof Response)
389
467
  return resolved;
390
- const { collection, collectionSlug, user } = resolved;
468
+ const { collectionSlug, user } = resolved;
391
469
  try {
392
- const existing = collection.upload === true
393
- ? await options.runtime.adapters.database.findById(collectionSlug, context.params['id'])
394
- : null;
470
+ // Storage-object cleanup for upload-enabled collections lives in the Local API
471
+ // (`operations.ts`'s `deleteDocument`), not here — this stays transport-only.
395
472
  await options.runtime.delete({
396
473
  collection: collectionSlug,
397
474
  id: context.params['id'],
398
475
  user,
399
476
  overrideAccess: false
400
477
  });
401
- if (existing && typeof existing.url === 'string') {
402
- const storageKey = existing._storageKey ??
403
- extractKeyFromUrl(existing.url, collectionSlug);
404
- if (storageKey) {
405
- try {
406
- await options.runtime.adapters.storage.delete(storageKey);
407
- }
408
- catch (cleanupErr) {
409
- getLogger().error(`Failed to clean up storage object '${storageKey}' after document deletion`, cleanupErr);
410
- }
411
- }
412
- }
413
478
  return new Response(null, { status: 204 });
414
479
  }
415
480
  catch (err) {
416
481
  return toErrorResponse(err, user);
417
482
  }
418
483
  }
419
- function extractKeyFromUrl(url, collectionSlug) {
420
- const prefix = `/api/media/${collectionSlug}/`;
421
- const idx = url.indexOf(prefix);
422
- if (idx === -1)
423
- return null;
424
- return url.slice(idx + '/api/media/'.length);
425
- }
426
484
  async function resolveGlobalRequest(context, options, operation) {
427
485
  const { runtime, requireAuth: requireAuthFlag, allowedRoles } = options;
428
486
  const globalSlug = context.params?.['global'];
@@ -433,17 +491,22 @@ async function resolveGlobalRequest(context, options, operation) {
433
491
  return errorResponse('NOT_FOUND', `Global '${globalSlug}' not found`, 404);
434
492
  const routeRoles = global.access?.[operation] === undefined ? allowedRoles : undefined;
435
493
  const mustAuth = requireAuthFlag === true || routeRoles !== undefined;
436
- let user = null;
437
- if (mustAuth) {
438
- const result = await authorize(context, runtime, routeRoles);
439
- if (!result.success)
440
- return result.response;
441
- user = result.user;
494
+ try {
495
+ let user = null;
496
+ if (mustAuth) {
497
+ const result = await authorize(context, runtime, routeRoles);
498
+ if (!result.success)
499
+ return result.response;
500
+ user = result.user;
501
+ }
502
+ else {
503
+ user = await resolveOptionalUser(context, runtime);
504
+ }
505
+ return { globalSlug, user };
442
506
  }
443
- else {
444
- user = await resolveOptionalUser(context, runtime);
507
+ catch (err) {
508
+ return toErrorResponse(err, null);
445
509
  }
446
- return { globalSlug, user };
447
510
  }
448
511
  export async function handleGlobalRead(context, options) {
449
512
  const resolved = await resolveGlobalRequest(context, options, 'read');
@@ -568,7 +631,9 @@ export async function handlePreview(context, options) {
568
631
  try {
569
632
  user = await options.runtime.adapters.auth.requireAuth(context.request);
570
633
  }
571
- catch {
634
+ catch (err) {
635
+ if (!(err instanceof ForgeAuthError))
636
+ return toErrorResponse(err, null);
572
637
  // Preview might be allowed without auth for draft preview
573
638
  if (!options.allowDraftPreview) {
574
639
  return errorResponse('UNAUTHORIZED', 'Unauthorized', 401);
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@ export { ForgeCmsRuntime } from './runtime.js';
4
4
  export { handleList, handleRead, handleCreate, handleUpdate, handleDelete, handleGlobalRead, handleGlobalUpdate, handleListVersions, handleGetVersion, handleRestoreVersion, handlePreview, type HandlerOptions, type PreviewOptions, DEFAULT_LIMIT, MAX_LIMIT } from './handlers.js';
5
5
  export { handleFile, type FileHandlerOptions } from './files.js';
6
6
  export { applyFieldDefaults, applyAutoSlugs } from './defaults.js';
7
- export { find, findByID, count, create, update, deleteDocument, type PaginatedDocs, type BaseOperationArgs, type FindArgs, type FindByIDArgs, type CountArgs, type CreateArgs, type UpdateArgs, type DeleteArgs } from './operations.js';
7
+ export { find, findByID, findOne, count, create, update, deleteDocument, type PaginatedDocs, type BaseOperationArgs, type FindArgs, type FindByIDArgs, type FindOneArgs, type CountArgs, type CreateArgs, type UpdateArgs, type DeleteArgs } from './operations.js';
8
8
  export { getGlobal, updateGlobal, type GlobalBaseArgs, type GetGlobalArgs, type UpdateGlobalArgs } from './globals.js';
9
9
  export { listVersions, getVersion, restoreVersion, createVersion, versionsEnabled, autosaveEnabled, type ListVersionsArgs, type GetVersionArgs, type RestoreVersionArgs, type CreateVersionArgs } from './versions.js';
10
10
  export { resolveLocale, getLocalizedValue, setLocalizedValue, isLocalizedCollection, isLocalizedField, extractLocaleFromRequest, resolveLocalizedDocument, storeLocalizedDocument } from './localization.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9D,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,aAAa,EACb,SAAS,EACV,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,UAAU,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGjE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGnE,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,MAAM,EACN,MAAM,EACN,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,SAAS,EACT,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,YAAY,EACZ,UAAU,EACV,cAAc,EACd,aAAa,EACb,eAAe,EACf,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9D,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,aAAa,EACb,SAAS,EACV,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,UAAU,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGjE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGnE,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,KAAK,EACL,MAAM,EACN,MAAM,EACN,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,SAAS,EACT,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,YAAY,EACZ,UAAU,EACV,cAAc,EACd,aAAa,EACb,eAAe,EACf,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@ export { handleFile } from './files.js';
5
5
  // Field defaults and auto-slugs (spec 040)
6
6
  export { applyFieldDefaults, applyAutoSlugs } from './defaults.js';
7
7
  // Local API (spec 019) — the transport-free way to run CMS operations from server code.
8
- export { find, findByID, count, create, update, deleteDocument } from './operations.js';
8
+ export { find, findByID, findOne, count, create, update, deleteDocument } from './operations.js';
9
9
  // Globals — singleton documents (site-wide config: nav, footer, SEO defaults).
10
10
  export { getGlobal, updateGlobal } from './globals.js';
11
11
  // Versions — document history, diff, restore.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EAGb,aAAa,EACb,SAAS,EACV,MAAM,eAAe,CAAC;AAEvB,kCAAkC;AAClC,OAAO,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAEjE,2CAA2C;AAC3C,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEnE,wFAAwF;AACxF,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,MAAM,EACN,MAAM,EACN,cAAc,EASf,MAAM,iBAAiB,CAAC;AAEzB,+EAA+E;AAC/E,OAAO,EACL,SAAS,EACT,YAAY,EAIb,MAAM,cAAc,CAAC;AAEtB,8CAA8C;AAC9C,OAAO,EACL,YAAY,EACZ,UAAU,EACV,cAAc,EACd,aAAa,EACb,eAAe,EACf,eAAe,EAKhB,MAAM,eAAe,CAAC;AAEvB,iEAAiE;AACjE,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAE3B,8DAA8D;AAC9D,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,YAAY,EACZ,cAAc,EAGf,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhE,wEAAwE;AACxE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,eAAe,EAKhB,MAAM,eAAe,CAAC;AAEvB,4BAA4B;AAC5B,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,eAAe,EAEhB,MAAM,aAAa,CAAC;AAErB,2BAA2B;AAC3B,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EAGb,aAAa,EACb,SAAS,EACV,MAAM,eAAe,CAAC;AAEvB,kCAAkC;AAClC,OAAO,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAEjE,2CAA2C;AAC3C,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEnE,wFAAwF;AACxF,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,KAAK,EACL,MAAM,EACN,MAAM,EACN,cAAc,EAUf,MAAM,iBAAiB,CAAC;AAEzB,+EAA+E;AAC/E,OAAO,EACL,SAAS,EACT,YAAY,EAIb,MAAM,cAAc,CAAC;AAEtB,8CAA8C;AAC9C,OAAO,EACL,YAAY,EACZ,UAAU,EACV,cAAc,EACd,aAAa,EACb,eAAe,EACf,eAAe,EAKhB,MAAM,eAAe,CAAC;AAEvB,iEAAiE;AACjE,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAE3B,8DAA8D;AAC9D,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,YAAY,EACZ,cAAc,EAGf,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhE,wEAAwE;AACxE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,eAAe,EAKhB,MAAM,eAAe,CAAC;AAEvB,4BAA4B;AAC5B,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,eAAe,EAEhB,MAAM,aAAa,CAAC;AAErB,2BAA2B;AAC3B,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { CmsUser, DraftStatus } from '@forge-cms/core';
2
- import type { DatabaseRecord, DatabaseWhere } from '@forge-cms/db';
2
+ import type { DatabaseRecord, DatabaseWhere, SortInput } from '@forge-cms/db';
3
3
  import type { OperationContext } from './context.js';
4
4
  import { populateRecord, populateRecords } from './populate.js';
5
5
  /** A page of documents plus everything a paginator needs. */
@@ -36,7 +36,8 @@ export interface FindArgs extends BaseOperationArgs {
36
36
  where?: DatabaseWhere;
37
37
  limit?: number;
38
38
  offset?: number;
39
- sort?: string;
39
+ sort?: SortInput;
40
+ /** Only meaningful when `sort` is a plain field name; a multi-field `sort` carries its own per-field order. */
40
41
  order?: 'asc' | 'desc';
41
42
  /** Only meaningful on a `drafts: true` collection. Defaults to `published`. */
42
43
  status?: DraftStatus | 'all';
@@ -44,6 +45,13 @@ export interface FindArgs extends BaseOperationArgs {
44
45
  export interface FindByIDArgs extends BaseOperationArgs {
45
46
  id: string;
46
47
  }
48
+ /** Same read pipeline as {@link find}, narrowed to at most one document (spec 050 §5). */
49
+ export interface FindOneArgs extends BaseOperationArgs {
50
+ where?: DatabaseWhere;
51
+ sort?: SortInput;
52
+ order?: 'asc' | 'desc';
53
+ status?: DraftStatus | 'all';
54
+ }
47
55
  export interface CountArgs extends BaseOperationArgs {
48
56
  where?: DatabaseWhere;
49
57
  status?: DraftStatus | 'all';
@@ -59,6 +67,14 @@ export interface DeleteArgs extends BaseOperationArgs {
59
67
  id: string;
60
68
  }
61
69
  export declare function find(ctx: OperationContext, args: FindArgs): Promise<PaginatedDocs>;
70
+ /**
71
+ * Same read pipeline as {@link find} (access, hooks, drafts, locale, relation population), narrowed
72
+ * to the first matching document — or `null` rather than throwing when there is none (spec 050 §4).
73
+ * Unlike `find`, this never calls `count()`: there is no pagination metadata to compute, so the query
74
+ * goes straight to the adapter with `limit: 1` (a real database-side `LIMIT`, not "fetch everything and
75
+ * take the first" — spec 050 §21).
76
+ */
77
+ export declare function findOne(ctx: OperationContext, args: FindOneArgs): Promise<DatabaseRecord | null>;
62
78
  export declare function findByID(ctx: OperationContext, args: FindByIDArgs & {
63
79
  status?: DraftStatus | 'all';
64
80
  }): Promise<DatabaseRecord>;
@@ -1 +1 @@
1
- {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import { validateCollection } from '@forge-cms/core';
1
+ import { getLogger, validateCollection } from '@forge-cms/core';
2
2
  import { isUniqueConstraintError as isDbUniqueConstraintError } from '@forge-cms/db';
3
3
  import { AccessDeniedError, ForgeError, InvalidInputError, NotFoundError, UniqueConstraintError, ValidationFailedError } from './errors.js';
4
4
  import { documentMatches, mergeWhere, resolveAccess } from './access.js';
5
+ import { validateSort, validateWhere } from './query-validation.js';
5
6
  import { applyAutoSlugs, applyFieldDefaults } from './defaults.js';
6
7
  import { runAfterChangeHooks, runAfterDeleteHooks, runAfterOperationHooks, runAfterReadHooks, runBeforeChangeHooks, runBeforeDeleteHooks, runBeforeOperationHooks, runBeforeReadHooks, runBeforeValidateHooks, runFieldHooks } from './hooks.js';
7
8
  import { assertWritableFields, filterReadableFields, FieldAccessError } from './field-access.js';
@@ -134,13 +135,20 @@ async function prepareForRead(ctx, collection, records, args) {
134
135
  async function prepareReadQuery(collection, args, defaultStatus) {
135
136
  const user = args.user ?? null;
136
137
  const overrideAccess = args.overrideAccess !== false;
138
+ // Validate the caller-supplied `where` before it is ever merged with a (trusted) access constraint
139
+ // or reaches an adapter — the one gate shared by find/count/findOne (spec 050 §4/§8).
140
+ validateWhere(collection, args.where);
137
141
  const decision = await checkAccess(collection, 'read', args);
138
142
  let where = mergeWhere(args.where, decision.where);
139
143
  where = mergeWhere(where, statusConstraint(collection, args.status, user, args.overrideAccess !== false, defaultStatus));
144
+ // `runBeforeReadHooks` speaks core's public, deliberately-flat `AccessQuery` hook contract; `where`
145
+ // here is the richer runtime-internal `DatabaseWhere` (possibly a nested and/or group after
146
+ // mergeWhere) — cast at the boundary in both directions, same as `resolveAccess` does the same
147
+ // crossing in reverse.
140
148
  where = (await runBeforeReadHooks(collection, {
141
149
  user,
142
150
  overrideAccess,
143
- query: where ?? {}
151
+ query: (where ?? {})
144
152
  }));
145
153
  return where !== undefined && Object.keys(where).length > 0 ? where : undefined;
146
154
  }
@@ -149,6 +157,7 @@ export async function find(ctx, args) {
149
157
  const user = args.user ?? null;
150
158
  const overrideAccess = args.overrideAccess !== false;
151
159
  await runBeforeOperationHooks(collection, { operation: 'read', user, overrideAccess });
160
+ validateSort(collection, args.sort);
152
161
  const where = await prepareReadQuery(collection, args, 'published');
153
162
  const findOptions = {
154
163
  collection: args.collection,
@@ -167,6 +176,33 @@ export async function find(ctx, args) {
167
176
  await runAfterOperationHooks(collection, { operation: 'read', user, overrideAccess, result });
168
177
  return result;
169
178
  }
179
+ /**
180
+ * Same read pipeline as {@link find} (access, hooks, drafts, locale, relation population), narrowed
181
+ * to the first matching document — or `null` rather than throwing when there is none (spec 050 §4).
182
+ * Unlike `find`, this never calls `count()`: there is no pagination metadata to compute, so the query
183
+ * goes straight to the adapter with `limit: 1` (a real database-side `LIMIT`, not "fetch everything and
184
+ * take the first" — spec 050 §21).
185
+ */
186
+ export async function findOne(ctx, args) {
187
+ const collection = getCollectionOrThrow(ctx, args.collection);
188
+ const user = args.user ?? null;
189
+ const overrideAccess = args.overrideAccess !== false;
190
+ await runBeforeOperationHooks(collection, { operation: 'read', user, overrideAccess });
191
+ validateSort(collection, args.sort);
192
+ const where = await prepareReadQuery(collection, args, 'published');
193
+ const findOptions = {
194
+ collection: args.collection,
195
+ limit: 1,
196
+ ...(where !== undefined && { where }),
197
+ ...(args.sort !== undefined && { sort: args.sort }),
198
+ ...(args.order !== undefined && { order: args.order })
199
+ };
200
+ const records = await ctx.adapters.database.findMany(findOptions);
201
+ const docs = await prepareForRead(ctx, collection, records, args);
202
+ const result = docs[0] ?? null;
203
+ await runAfterOperationHooks(collection, { operation: 'read', user, overrideAccess, result });
204
+ return result;
205
+ }
170
206
  function paginate(docs, totalDocs, limit, offset) {
171
207
  const totalPages = limit !== undefined && limit > 0 ? Math.ceil(totalDocs / limit) : 1;
172
208
  const page = limit !== undefined && limit > 0 ? Math.floor(offset / limit) + 1 : 1;
@@ -383,6 +419,24 @@ export async function update(ctx, args) {
383
419
  await runAfterOperationHooks(collection, { operation: 'update', user, overrideAccess, result });
384
420
  return result;
385
421
  }
422
+ const MEDIA_URL_PREFIX = '/api/media/';
423
+ /**
424
+ * Resolves the storage key a stored upload's underlying object lives under: the `_storageKey` every
425
+ * upload-created document carries, or (for an older/manually-created record without one) a fallback
426
+ * parsed from its `url`, matching the default `/api/media/<collection>/<key>` shape `handleFile` and
427
+ * every `StorageAdapter`'s default `getPublicUrl` use.
428
+ */
429
+ function resolveStorageKey(collectionSlug, doc) {
430
+ const storageKey = doc._storageKey;
431
+ if (typeof storageKey === 'string' && storageKey.length > 0)
432
+ return storageKey;
433
+ const url = doc.url;
434
+ if (typeof url !== 'string')
435
+ return null;
436
+ const prefix = `${MEDIA_URL_PREFIX}${collectionSlug}/`;
437
+ const idx = url.indexOf(prefix);
438
+ return idx === -1 ? null : url.slice(idx + MEDIA_URL_PREFIX.length);
439
+ }
386
440
  export async function deleteDocument(ctx, args) {
387
441
  const collection = getCollectionOrThrow(ctx, args.collection);
388
442
  const user = args.user ?? null;
@@ -405,7 +459,23 @@ export async function deleteDocument(ctx, args) {
405
459
  // Handle cascade and set-null before deleting
406
460
  await handleCascadeDelete(ctx, collection, args.id);
407
461
  await handleSetNullOnDelete(ctx, collection, args.id);
462
+ // The database delete must succeed — and only then does the underlying storage object get
463
+ // removed. Deleting the object first (or on a rejected/failed database delete) would orphan the
464
+ // document from its file; deleting it only after confirms the document is really gone.
408
465
  await ctx.adapters.database.delete(args.collection, args.id);
466
+ if (collection.upload === true) {
467
+ const storageKey = resolveStorageKey(args.collection, existing);
468
+ if (storageKey) {
469
+ try {
470
+ await ctx.adapters.storage.delete(storageKey);
471
+ }
472
+ catch (cleanupErr) {
473
+ // The document is already gone; failing the whole operation over cleanup would be worse
474
+ // than a best-effort delete that gets logged and left for manual follow-up.
475
+ getLogger().error(`Failed to clean up storage object '${storageKey}' after document deletion`, cleanupErr);
476
+ }
477
+ }
478
+ }
409
479
  await runAfterDeleteHooks(collection, { user, overrideAccess, id: args.id, doc: existing });
410
480
  await runAfterOperationHooks(collection, {
411
481
  operation: 'delete',
@@ -1 +1 @@
1
- {"version":3,"file":"operations.js","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { CollectionDefinition } from '@forge-cms/core';
2
+ import type { DatabaseWhere, SortInput } from '@forge-cms/db';
3
+ /**
4
+ * Validates a `DatabaseWhere` (flat or nested `and`/`or`) against a collection's real fields before it
5
+ * ever reaches an adapter — the single gate shared by `find`/`count`/`findOne` (spec 050 §4). Every
6
+ * adapter also validates column names defensively, but throws a bare `Error`; this is what lets that
7
+ * layer stay unreachable for a normal request and gives callers a stable `ForgeError` (400) instead.
8
+ */
9
+ export declare function validateWhere(collection: CollectionDefinition, where: DatabaseWhere | undefined, opts?: {
10
+ maxDepth?: number;
11
+ }): void;
12
+ /** Validates every field named in a `sort` (single field or multi-field) against the collection. */
13
+ export declare function validateSort(collection: CollectionDefinition, sort: SortInput | undefined): void;
14
+ //# sourceMappingURL=query-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-validation.d.ts","sourceRoot":"","sources":["../src/query-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AA0D9D;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,oBAAoB,EAChC,KAAK,EAAE,aAAa,GAAG,SAAS,EAChC,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/B,IAAI,CAKN;AAyCD,oGAAoG;AACpG,wBAAgB,YAAY,CAAC,UAAU,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,CAsBhG"}
@@ -0,0 +1,110 @@
1
+ import { WHERE_OPERATORS, normalizeSort } from '@forge-cms/db';
2
+ import { InvalidQueryError, UnknownFieldError } from './errors.js';
3
+ const DEFAULT_MAX_DEPTH = 6;
4
+ const KNOWN_OPERATORS = new Set(WHERE_OPERATORS);
5
+ /** `id`/`created_at`/`updated_at` always exist; `_status` only on a `drafts: true` collection. */
6
+ function queryableSystemFields(collection) {
7
+ const fields = new Set(['id', 'created_at', 'updated_at']);
8
+ if (collection.drafts === true)
9
+ fields.add('_status');
10
+ return fields;
11
+ }
12
+ function assertKnownField(collection, systemFields, key) {
13
+ if (systemFields.has(key) || collection.fields[key])
14
+ return;
15
+ throw new UnknownFieldError(`Unknown filter field '${key}' for collection '${collection.slug}'`);
16
+ }
17
+ /**
18
+ * Validates one field's condition. `toOperatorValues` (the executor) treats a plain object as an
19
+ * "operator object" only if *every* key is a recognized operator name; otherwise it silently falls
20
+ * back to comparing the whole object as a bare `eq` value — the intended, pre-existing behavior for
21
+ * exact-match filtering on a `json`-typed field (`where: { metadata: { source: 'x' } }`). That
22
+ * fallback must stay legal here too, so this only rejects the *ambiguous* case: an object with at
23
+ * least one recognized operator key mixed with at least one unrecognized one
24
+ * (`{ eq: 'a', contians: 'x' }`, an operator typo) — almost certainly a mistake, not a deliberate
25
+ * literal-object comparison, since a real `json` value comparison has no reason to also carry a real
26
+ * operator name as a sibling key. An object where *no* key is a recognized operator name is left
27
+ * alone entirely.
28
+ */
29
+ function assertValidCondition(collection, key, condition) {
30
+ if (condition === null || typeof condition !== 'object' || Array.isArray(condition))
31
+ return;
32
+ const keys = Object.keys(condition);
33
+ const knownKeys = keys.filter((k) => KNOWN_OPERATORS.has(k));
34
+ const unknownKeys = keys.filter((k) => !KNOWN_OPERATORS.has(k));
35
+ if (unknownKeys.length > 0) {
36
+ if (knownKeys.length === 0)
37
+ return; // no key looks like an operator — a bare object value
38
+ throw new InvalidQueryError(`Unknown operator '${unknownKeys[0]}' for field '${key}'`);
39
+ }
40
+ if (keys.includes('containsValue') && collection.fields[key]?.kind !== 'relation') {
41
+ throw new InvalidQueryError(`The 'containsValue' operator is only valid on relation fields, not '${key}'`);
42
+ }
43
+ }
44
+ /**
45
+ * Validates a `DatabaseWhere` (flat or nested `and`/`or`) against a collection's real fields before it
46
+ * ever reaches an adapter — the single gate shared by `find`/`count`/`findOne` (spec 050 §4). Every
47
+ * adapter also validates column names defensively, but throws a bare `Error`; this is what lets that
48
+ * layer stay unreachable for a normal request and gives callers a stable `ForgeError` (400) instead.
49
+ */
50
+ export function validateWhere(collection, where, opts = {}) {
51
+ if (!where)
52
+ return;
53
+ const systemFields = queryableSystemFields(collection);
54
+ const maxDepth = opts.maxDepth ?? DEFAULT_MAX_DEPTH;
55
+ validateNode(collection, systemFields, where, maxDepth, 0);
56
+ }
57
+ /**
58
+ * Every key in a where node is validated, whatever it means — a flat field condition, or (for the
59
+ * reserved `and`/`or` keys) a nested group — mirroring `matchesWhere`'s "every key is AND-ed
60
+ * together" evaluation semantics (spec 050 hardening), so `and`/`or` can legally sit alongside flat
61
+ * keys in the same object instead of one silently winning while the other goes unvalidated.
62
+ */
63
+ function validateNode(collection, systemFields, where, maxDepth, depth) {
64
+ if (depth > maxDepth) {
65
+ throw new InvalidQueryError(`Query nesting exceeds the maximum depth of ${maxDepth}`);
66
+ }
67
+ if (typeof where !== 'object' || where === null || Array.isArray(where)) {
68
+ throw new InvalidQueryError('Invalid query structure');
69
+ }
70
+ for (const [key, value] of Object.entries(where)) {
71
+ if (key === 'and' || key === 'or') {
72
+ if (!Array.isArray(value) || value.length === 0) {
73
+ throw new InvalidQueryError(`"${key}" must be a non-empty array of query conditions`);
74
+ }
75
+ for (const child of value) {
76
+ if (typeof child !== 'object' || child === null || Array.isArray(child)) {
77
+ throw new InvalidQueryError(`Invalid query condition inside "${key}"`);
78
+ }
79
+ validateNode(collection, systemFields, child, maxDepth, depth + 1);
80
+ }
81
+ continue;
82
+ }
83
+ assertKnownField(collection, systemFields, key);
84
+ assertValidCondition(collection, key, value);
85
+ }
86
+ }
87
+ /** Validates every field named in a `sort` (single field or multi-field) against the collection. */
88
+ export function validateSort(collection, sort) {
89
+ if (sort === undefined)
90
+ return;
91
+ const systemFields = queryableSystemFields(collection);
92
+ const fields = normalizeSort(sort);
93
+ if (fields.length === 0) {
94
+ throw new InvalidQueryError('"sort" must name at least one field');
95
+ }
96
+ for (const entry of fields) {
97
+ if (typeof entry !== 'object' || entry === null || Array.isArray(entry)) {
98
+ throw new InvalidQueryError('Invalid sort entry, expected { field, order? }');
99
+ }
100
+ const { field, order } = entry;
101
+ if (typeof field !== 'string' || field.length === 0) {
102
+ throw new InvalidQueryError('Invalid sort field');
103
+ }
104
+ assertKnownField(collection, systemFields, field);
105
+ if (order !== undefined && order !== 'asc' && order !== 'desc') {
106
+ throw new InvalidQueryError(`Invalid sort order '${String(order)}', expected 'asc' or 'desc'`);
107
+ }
108
+ }
109
+ }
110
+ //# sourceMappingURL=query-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-validation.js","sourceRoot":"","sources":["../src/query-validation.ts"],"names":[],"mappings":"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"}
package/dist/runtime.d.ts CHANGED
@@ -2,7 +2,7 @@ import type { ForgeCmsConfig, AdapterSet } from './config.js';
2
2
  import type { CollectionBySlug, CollectionDefinition, CollectionDocument, CollectionRegistry, CollectionSlug, GlobalDefinition } from '@forge-cms/core';
3
3
  import type { DatabaseRecord } from '@forge-cms/db';
4
4
  import type { OperationContext } from './context.js';
5
- import type { TypedCountArgs, TypedCreateArgs, TypedDeleteArgs, TypedFindArgs, TypedFindByIDArgs, TypedPaginatedDocs, TypedPreviewArgs, TypedUpdateArgs } from './typed-api.js';
5
+ import type { TypedCountArgs, TypedCreateArgs, TypedDeleteArgs, TypedFindArgs, TypedFindByIDArgs, TypedFindOneArgs, TypedPaginatedDocs, TypedPreviewArgs, TypedUpdateArgs } from './typed-api.js';
6
6
  import type { GetGlobalArgs, UpdateGlobalArgs } from './globals.js';
7
7
  import type { ListVersionsArgs, GetVersionArgs, RestoreVersionArgs, CreateVersionArgs } from './versions.js';
8
8
  import type { Version } from '@forge-cms/core';
@@ -37,6 +37,11 @@ export declare class ForgeCmsRuntime<TEnv = unknown, TCollections extends Collec
37
37
  getGlobals(): readonly GlobalDefinition[];
38
38
  find<TSlug extends CollectionSlug<TCollections>>(args: TypedFindArgs<TCollections, TSlug>): Promise<TypedPaginatedDocs<TCollections, TSlug>>;
39
39
  findByID<TSlug extends CollectionSlug<TCollections>>(args: TypedFindByIDArgs<TCollections, TSlug>): Promise<CollectionDocument<CollectionBySlug<TCollections, TSlug>>>;
40
+ /**
41
+ * The first document matching `where`, or `null` — same access/hooks/drafts/populate pipeline as
42
+ * {@link find}, just narrowed to one result with a database-side `LIMIT 1` (spec 050 §4/§5).
43
+ */
44
+ findOne<TSlug extends CollectionSlug<TCollections>>(args: TypedFindOneArgs<TCollections, TSlug>): Promise<CollectionDocument<CollectionBySlug<TCollections, TSlug>> | null>;
40
45
  count<TSlug extends CollectionSlug<TCollections>>(args: TypedCountArgs<TCollections, TSlug>): Promise<number>;
41
46
  create<TSlug extends CollectionSlug<TCollections>>(args: TypedCreateArgs<TCollections, TSlug>): Promise<CollectionDocument<CollectionBySlug<TCollections, TSlug>>>;
42
47
  update<TSlug extends CollectionSlug<TCollections>>(args: TypedUpdateArgs<TCollections, TSlug>): Promise<CollectionDocument<CollectionBySlug<TCollections, TSlug>>>;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/dist/runtime.js CHANGED
@@ -33,6 +33,7 @@ export class ForgeCmsRuntime {
33
33
  /** Sync database schema for all registered collections and globals */
34
34
  async syncSchema() {
35
35
  await this.adapters.database.syncSchema(this.config.collections);
36
+ await this.adapters.auth.syncSchema?.();
36
37
  for (const global of this.config.globals ?? []) {
37
38
  await this.adapters.database.syncSchema([
38
39
  {
@@ -93,6 +94,13 @@ export class ForgeCmsRuntime {
93
94
  findByID(args) {
94
95
  return operations.findByID(this, args);
95
96
  }
97
+ /**
98
+ * The first document matching `where`, or `null` — same access/hooks/drafts/populate pipeline as
99
+ * {@link find}, just narrowed to one result with a database-side `LIMIT 1` (spec 050 §4/§5).
100
+ */
101
+ findOne(args) {
102
+ return operations.findOne(this, args);
103
+ }
96
104
  count(args) {
97
105
  return operations.count(this, args);
98
106
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { CollectionBySlug, CollectionDefinition, CollectionDocument, CollectionInput, CollectionRegistry, CollectionSlug } from '@forge-cms/core';
2
2
  import type { WhereCondition } from '@forge-cms/db';
3
- import type { CountArgs, CreateArgs, DeleteArgs, FindArgs, FindByIDArgs, PaginatedDocs, UpdateArgs } from './operations.js';
3
+ import type { CountArgs, CreateArgs, DeleteArgs, FindArgs, FindByIDArgs, FindOneArgs, PaginatedDocs, UpdateArgs } from './operations.js';
4
4
  /**
5
5
  * The Local API generic arg/result wiring for the typed collection surface (`runtime.ts`). Kept in
6
6
  * one file, isolated from `operations.ts` (untyped, unchanged) and from the method bodies in
@@ -8,16 +8,34 @@ import type { CountArgs, CreateArgs, DeleteArgs, FindArgs, FindByIDArgs, Paginat
8
8
  */
9
9
  /** `sort`/`where`-key candidates: the collection's declared fields plus standard document metadata. */
10
10
  export type TypedSortField<TCollection extends CollectionDefinition> = Extract<keyof CollectionDocument<TCollection>, string>;
11
- /** A `where` clause narrowed to known field names; values stay loosely typed (see spec non-goals). */
12
- export type TypedWhere<TCollection extends CollectionDefinition> = Partial<Record<TypedSortField<TCollection>, WhereCondition>>;
11
+ /**
12
+ * A `where` clause narrowed to known field names; values stay loosely typed (see spec non-goals).
13
+ * Recursive `and`/`or` groups (spec 050) keep the same field-name narrowing at every nesting level.
14
+ */
15
+ export type TypedWhere<TCollection extends CollectionDefinition> = Partial<Record<TypedSortField<TCollection>, WhereCondition>> | {
16
+ and: TypedWhere<TCollection>[];
17
+ } | {
18
+ or: TypedWhere<TCollection>[];
19
+ };
20
+ /** `sort`: a single typed field name (legacy), or a multi-field sort list (spec 050). */
21
+ export type TypedSortInput<TCollection extends CollectionDefinition> = TypedSortField<TCollection> | {
22
+ field: TypedSortField<TCollection>;
23
+ order?: 'asc' | 'desc';
24
+ }[];
13
25
  export type TypedFindArgs<TCollections extends CollectionRegistry, TSlug extends CollectionSlug<TCollections>> = Omit<FindArgs, 'collection' | 'where' | 'sort'> & {
14
26
  collection: TSlug;
15
27
  where?: TypedWhere<CollectionBySlug<TCollections, TSlug>>;
16
- sort?: TypedSortField<CollectionBySlug<TCollections, TSlug>>;
28
+ sort?: TypedSortInput<CollectionBySlug<TCollections, TSlug>>;
17
29
  };
18
30
  export type TypedFindByIDArgs<TCollections extends CollectionRegistry, TSlug extends CollectionSlug<TCollections>> = Omit<FindByIDArgs, 'collection'> & {
19
31
  collection: TSlug;
20
32
  };
33
+ /** Typed `findOne` args — same shape as {@link TypedFindArgs} minus pagination (spec 050 §5). */
34
+ export type TypedFindOneArgs<TCollections extends CollectionRegistry, TSlug extends CollectionSlug<TCollections>> = Omit<FindOneArgs, 'collection' | 'where' | 'sort'> & {
35
+ collection: TSlug;
36
+ where?: TypedWhere<CollectionBySlug<TCollections, TSlug>>;
37
+ sort?: TypedSortInput<CollectionBySlug<TCollections, TSlug>>;
38
+ };
21
39
  export type TypedCountArgs<TCollections extends CollectionRegistry, TSlug extends CollectionSlug<TCollections>> = Omit<CountArgs, 'collection' | 'where'> & {
22
40
  collection: TSlug;
23
41
  where?: TypedWhere<CollectionBySlug<TCollections, TSlug>>;
@@ -1 +1 @@
1
- {"version":3,"file":"typed-api.d.ts","sourceRoot":"","sources":["../src/typed-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typed-api.d.ts","sourceRoot":"","sources":["../src/typed-api.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge-cms/runtime",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Runtime orchestrator for ForgeCMS — binds schema, adapters, and handlers.",
5
5
  "author": "ForgeCMS contributors",
6
6
  "license": "MIT",
@@ -35,11 +35,11 @@
35
35
  }
36
36
  },
37
37
  "dependencies": {
38
- "@forge-cms/core": "0.1.0",
39
- "@forge-cms/auth": "0.1.0",
40
- "@forge-cms/storage": "0.1.0",
41
- "@forge-cms/api": "0.1.0",
42
- "@forge-cms/db": "0.1.0"
38
+ "@forge-cms/auth": "0.1.2",
39
+ "@forge-cms/api": "0.1.2",
40
+ "@forge-cms/db": "0.1.2",
41
+ "@forge-cms/storage": "0.1.2",
42
+ "@forge-cms/core": "0.1.2"
43
43
  },
44
44
  "devDependencies": {
45
45
  "typescript": "5.9.2",