@aphexcms/cms-core 8.1.0 → 9.0.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 (202) hide show
  1. package/dist/api/api-keys.d.ts +8 -3
  2. package/dist/api/api-keys.d.ts.map +1 -1
  3. package/dist/api/schemas/assets.js +1 -1
  4. package/dist/api/schemas/documents.d.ts +0 -2
  5. package/dist/api/schemas/documents.d.ts.map +1 -1
  6. package/dist/api/schemas/documents.js +2 -8
  7. package/dist/api/schemas/instance.d.ts +6 -0
  8. package/dist/api/schemas/instance.d.ts.map +1 -0
  9. package/dist/api/schemas/instance.js +7 -0
  10. package/dist/api/schemas/user.js +1 -1
  11. package/dist/auth/auth-hooks.d.ts.map +1 -1
  12. package/dist/auth/auth-hooks.js +9 -3
  13. package/dist/cli/generate-types.d.ts.map +1 -1
  14. package/dist/cli/generate-types.js +1 -3
  15. package/dist/cli/generate-types.js.map +1 -1
  16. package/dist/components/AdminApp.svelte +9 -12
  17. package/dist/components/AdminApp.svelte.d.ts.map +1 -1
  18. package/dist/components/admin/DocumentEditor.svelte +47 -49
  19. package/dist/components/admin/DocumentEditor.svelte.d.ts.map +1 -1
  20. package/dist/components/admin/MediaBrowser.svelte +7 -7
  21. package/dist/components/admin/fields/ArrayField.svelte +4 -2
  22. package/dist/components/admin/fields/FileField.svelte +1 -1
  23. package/dist/components/admin/fields/ImageField.svelte +1 -1
  24. package/dist/components/admin/fields/ReferenceField.svelte +5 -3
  25. package/dist/components/layout/OrganizationSwitcher.svelte +1 -1
  26. package/dist/components/layout/sidebar/NavMain.svelte +9 -1
  27. package/dist/components/layout/sidebar/NavMain.svelte.d.ts.map +1 -1
  28. package/dist/db/interfaces/asset.d.ts +2 -4
  29. package/dist/db/interfaces/asset.d.ts.map +1 -1
  30. package/dist/db/interfaces/organization.d.ts +1 -1
  31. package/dist/db/interfaces/organization.d.ts.map +1 -1
  32. package/dist/field-access.d.ts.map +1 -1
  33. package/dist/field-access.js +5 -1
  34. package/dist/graphql/depth-limit.d.ts +8 -0
  35. package/dist/graphql/depth-limit.d.ts.map +1 -0
  36. package/dist/graphql/depth-limit.js +79 -0
  37. package/dist/graphql/index.d.ts.map +1 -1
  38. package/dist/graphql/index.js +12 -1
  39. package/dist/graphql/resolvers.d.ts.map +1 -1
  40. package/dist/graphql/resolvers.js +9 -11
  41. package/dist/hooks.d.ts +2 -0
  42. package/dist/hooks.d.ts.map +1 -1
  43. package/dist/hooks.js +5 -2
  44. package/dist/lib/api/api-keys.d.ts +8 -3
  45. package/dist/lib/api/api-keys.d.ts.map +1 -1
  46. package/dist/lib/api/api-keys.js.map +1 -1
  47. package/dist/lib/api/schemas/assets.js +1 -1
  48. package/dist/lib/api/schemas/assets.js.map +1 -1
  49. package/dist/lib/api/schemas/documents.d.ts +0 -2
  50. package/dist/lib/api/schemas/documents.d.ts.map +1 -1
  51. package/dist/lib/api/schemas/documents.js +2 -8
  52. package/dist/lib/api/schemas/documents.js.map +1 -1
  53. package/dist/lib/api/schemas/instance.d.ts +6 -0
  54. package/dist/lib/api/schemas/instance.d.ts.map +1 -0
  55. package/dist/lib/api/schemas/instance.js +8 -0
  56. package/dist/lib/api/schemas/instance.js.map +1 -0
  57. package/dist/lib/api/schemas/user.js +1 -1
  58. package/dist/lib/auth/auth-hooks.d.ts.map +1 -1
  59. package/dist/lib/auth/auth-hooks.js +9 -3
  60. package/dist/lib/auth/auth-hooks.js.map +1 -1
  61. package/dist/lib/db/interfaces/asset.d.ts +2 -4
  62. package/dist/lib/db/interfaces/asset.d.ts.map +1 -1
  63. package/dist/lib/db/interfaces/organization.d.ts +1 -1
  64. package/dist/lib/db/interfaces/organization.d.ts.map +1 -1
  65. package/dist/lib/field-access.d.ts.map +1 -1
  66. package/dist/lib/field-access.js +5 -1
  67. package/dist/lib/field-access.js.map +1 -1
  68. package/dist/lib/graphql/depth-limit.d.ts +8 -0
  69. package/dist/lib/graphql/depth-limit.d.ts.map +1 -0
  70. package/dist/lib/graphql/depth-limit.js +80 -0
  71. package/dist/lib/graphql/depth-limit.js.map +1 -0
  72. package/dist/lib/graphql/index.d.ts.map +1 -1
  73. package/dist/lib/graphql/index.js +12 -1
  74. package/dist/lib/graphql/index.js.map +1 -1
  75. package/dist/lib/graphql/resolvers.d.ts.map +1 -1
  76. package/dist/lib/graphql/resolvers.js +9 -11
  77. package/dist/lib/graphql/resolvers.js.map +1 -1
  78. package/dist/lib/hooks.d.ts +2 -0
  79. package/dist/lib/hooks.d.ts.map +1 -1
  80. package/dist/lib/hooks.js +5 -2
  81. package/dist/lib/hooks.js.map +1 -1
  82. package/dist/lib/local-api/collection-api.d.ts.map +1 -1
  83. package/dist/lib/local-api/collection-api.js +7 -9
  84. package/dist/lib/local-api/collection-api.js.map +1 -1
  85. package/dist/lib/local-api/index.d.ts +5 -1
  86. package/dist/lib/local-api/index.d.ts.map +1 -1
  87. package/dist/lib/local-api/index.js +12 -4
  88. package/dist/lib/local-api/index.js.map +1 -1
  89. package/dist/lib/routes/assets-cdn.d.ts.map +1 -1
  90. package/dist/lib/routes/assets-cdn.js +8 -3
  91. package/dist/lib/routes/assets-cdn.js.map +1 -1
  92. package/dist/lib/server/api/index.d.ts.map +1 -1
  93. package/dist/lib/server/api/index.js +18 -0
  94. package/dist/lib/server/api/index.js.map +1 -1
  95. package/dist/lib/server/api/routes/assets-bulk.d.ts.map +1 -1
  96. package/dist/lib/server/api/routes/assets-bulk.js +4 -0
  97. package/dist/lib/server/api/routes/assets-bulk.js.map +1 -1
  98. package/dist/lib/server/api/routes/assets-by-id.d.ts.map +1 -1
  99. package/dist/lib/server/api/routes/assets-by-id.js +7 -0
  100. package/dist/lib/server/api/routes/assets-by-id.js.map +1 -1
  101. package/dist/lib/server/api/routes/assets.d.ts.map +1 -1
  102. package/dist/lib/server/api/routes/assets.js +18 -9
  103. package/dist/lib/server/api/routes/assets.js.map +1 -1
  104. package/dist/lib/server/api/routes/document-versions.d.ts.map +1 -1
  105. package/dist/lib/server/api/routes/document-versions.js +8 -0
  106. package/dist/lib/server/api/routes/document-versions.js.map +1 -1
  107. package/dist/lib/server/api/routes/documents-by-id.d.ts.map +1 -1
  108. package/dist/lib/server/api/routes/documents-by-id.js +3 -3
  109. package/dist/lib/server/api/routes/documents-by-id.js.map +1 -1
  110. package/dist/lib/server/api/routes/documents-publish.d.ts.map +1 -1
  111. package/dist/lib/server/api/routes/documents-publish.js +2 -2
  112. package/dist/lib/server/api/routes/documents-publish.js.map +1 -1
  113. package/dist/lib/server/api/routes/documents-query.d.ts.map +1 -1
  114. package/dist/lib/server/api/routes/documents-query.js +2 -3
  115. package/dist/lib/server/api/routes/documents-query.js.map +1 -1
  116. package/dist/lib/server/api/routes/documents.d.ts.map +1 -1
  117. package/dist/lib/server/api/routes/documents.js +3 -5
  118. package/dist/lib/server/api/routes/documents.js.map +1 -1
  119. package/dist/lib/server/api/routes/organizations-invitations.d.ts.map +1 -1
  120. package/dist/lib/server/api/routes/organizations-invitations.js +1 -1
  121. package/dist/lib/server/api/routes/organizations-invitations.js.map +1 -1
  122. package/dist/lib/server/api/routes/organizations-members.d.ts.map +1 -1
  123. package/dist/lib/server/api/routes/organizations-members.js.map +1 -1
  124. package/dist/lib/server/index.d.ts +1 -0
  125. package/dist/lib/server/index.d.ts.map +1 -1
  126. package/dist/lib/server/index.js +2 -0
  127. package/dist/lib/server/index.js.map +1 -1
  128. package/dist/lib/services/asset-service.d.ts.map +1 -1
  129. package/dist/lib/services/asset-service.js +4 -2
  130. package/dist/lib/services/asset-service.js.map +1 -1
  131. package/dist/lib/services/references-service.d.ts.map +1 -1
  132. package/dist/lib/services/references-service.js.map +1 -1
  133. package/dist/lib/storage/adapters/local-storage-adapter.d.ts +4 -0
  134. package/dist/lib/storage/adapters/local-storage-adapter.d.ts.map +1 -1
  135. package/dist/lib/storage/adapters/local-storage-adapter.js +28 -6
  136. package/dist/lib/storage/adapters/local-storage-adapter.js.map +1 -1
  137. package/dist/lib/types/capabilities.d.ts +1 -0
  138. package/dist/lib/types/capabilities.d.ts.map +1 -1
  139. package/dist/lib/types/capabilities.js +3 -0
  140. package/dist/lib/types/capabilities.js.map +1 -1
  141. package/dist/lib/types/config.d.ts +16 -1
  142. package/dist/lib/types/config.d.ts.map +1 -1
  143. package/dist/lib/utils/logger.d.ts +8 -6
  144. package/dist/lib/utils/logger.d.ts.map +1 -1
  145. package/dist/lib/utils/logger.js +11 -2
  146. package/dist/lib/utils/logger.js.map +1 -1
  147. package/dist/lib/utils/mime-detect.d.ts.map +1 -1
  148. package/dist/lib/utils/mime-detect.js +21 -6
  149. package/dist/lib/utils/mime-detect.js.map +1 -1
  150. package/dist/lib/vite/index.d.ts.map +1 -1
  151. package/dist/lib/vite/index.js +4 -5
  152. package/dist/lib/vite/index.js.map +1 -1
  153. package/dist/local-api/collection-api.d.ts.map +1 -1
  154. package/dist/local-api/collection-api.js +7 -9
  155. package/dist/local-api/index.d.ts +5 -1
  156. package/dist/local-api/index.d.ts.map +1 -1
  157. package/dist/local-api/index.js +12 -4
  158. package/dist/routes/assets-cdn.d.ts.map +1 -1
  159. package/dist/routes/assets-cdn.js +8 -3
  160. package/dist/server/api/index.d.ts.map +1 -1
  161. package/dist/server/api/index.js +18 -0
  162. package/dist/server/api/routes/assets-bulk.d.ts.map +1 -1
  163. package/dist/server/api/routes/assets-bulk.js +4 -0
  164. package/dist/server/api/routes/assets-by-id.d.ts.map +1 -1
  165. package/dist/server/api/routes/assets-by-id.js +7 -0
  166. package/dist/server/api/routes/assets.d.ts.map +1 -1
  167. package/dist/server/api/routes/assets.js +18 -9
  168. package/dist/server/api/routes/document-versions.d.ts.map +1 -1
  169. package/dist/server/api/routes/document-versions.js +8 -0
  170. package/dist/server/api/routes/documents-by-id.d.ts.map +1 -1
  171. package/dist/server/api/routes/documents-by-id.js +3 -3
  172. package/dist/server/api/routes/documents-publish.d.ts.map +1 -1
  173. package/dist/server/api/routes/documents-publish.js +2 -2
  174. package/dist/server/api/routes/documents-query.d.ts.map +1 -1
  175. package/dist/server/api/routes/documents-query.js +2 -3
  176. package/dist/server/api/routes/documents.d.ts.map +1 -1
  177. package/dist/server/api/routes/documents.js +3 -5
  178. package/dist/server/api/routes/organizations-invitations.d.ts.map +1 -1
  179. package/dist/server/api/routes/organizations-invitations.js +1 -1
  180. package/dist/server/api/routes/organizations-members.d.ts.map +1 -1
  181. package/dist/server/index.d.ts +1 -0
  182. package/dist/server/index.d.ts.map +1 -1
  183. package/dist/server/index.js +2 -0
  184. package/dist/services/asset-service.d.ts.map +1 -1
  185. package/dist/services/asset-service.js +4 -2
  186. package/dist/services/references-service.d.ts.map +1 -1
  187. package/dist/storage/adapters/local-storage-adapter.d.ts +4 -0
  188. package/dist/storage/adapters/local-storage-adapter.d.ts.map +1 -1
  189. package/dist/storage/adapters/local-storage-adapter.js +28 -6
  190. package/dist/types/capabilities.d.ts +1 -0
  191. package/dist/types/capabilities.d.ts.map +1 -1
  192. package/dist/types/capabilities.js +3 -0
  193. package/dist/types/config.d.ts +16 -1
  194. package/dist/types/config.d.ts.map +1 -1
  195. package/dist/utils/logger.d.ts +8 -6
  196. package/dist/utils/logger.d.ts.map +1 -1
  197. package/dist/utils/logger.js +11 -2
  198. package/dist/utils/mime-detect.d.ts.map +1 -1
  199. package/dist/utils/mime-detect.js +21 -6
  200. package/dist/vite/index.d.ts.map +1 -1
  201. package/dist/vite/index.js +4 -5
  202. package/package.json +4 -5
@@ -162,7 +162,10 @@ export class CollectionAPI {
162
162
  // callers always get one document back. Filters are intentionally
163
163
  // ignored — there is at most one row by definition.
164
164
  if (this._schema.singleton) {
165
- const doc = await this.get(context, { perspective: options.perspective, depth: options.depth });
165
+ const doc = await this.get(context, {
166
+ perspective: options.perspective,
167
+ depth: options.depth
168
+ });
166
169
  return {
167
170
  docs: [doc],
168
171
  totalDocs: 1,
@@ -459,8 +462,7 @@ export class CollectionAPI {
459
462
  // Protect the canonical singleton row. In-limbo random-uuid docs of
460
463
  // the same type (left over from before the schema was flipped to
461
464
  // singleton) remain deletable — only the deterministic id is locked.
462
- if (this._schema.singleton &&
463
- id === singletonId(this._schema.name, context.organizationId)) {
465
+ if (this._schema.singleton && id === singletonId(this._schema.name, context.organizationId)) {
464
466
  throw new SingletonOperationError(`Cannot delete the singleton document for '${this._schema.name}'. Remove the singleton flag from the schema first.`);
465
467
  }
466
468
  // Fetch the target so ownership policies have a doc to inspect. For
@@ -513,16 +515,12 @@ export class CollectionAPI {
513
515
  const refDoc = await this.databaseAdapter.findByDocIdAdvanced(context.organizationId, refId);
514
516
  if (refDoc && !refDoc.publishedData) {
515
517
  const data = refDoc.draftData;
516
- const title = data?.title ||
517
- data?.name ||
518
- refDoc.id;
518
+ const title = data?.title || data?.name || refDoc.id;
519
519
  unpublished.push({ id: refDoc.id, type: refDoc.type, title });
520
520
  }
521
521
  }
522
522
  if (unpublished.length > 0) {
523
- const names = unpublished
524
- .map((d) => `"${d.title}" (${d.type})`)
525
- .join(', ');
523
+ const names = unpublished.map((d) => `"${d.title}" (${d.type})`).join(', ');
526
524
  throw new Error(`Cannot publish — ${unpublished.length} referenced document(s) are not published: ${names}`);
527
525
  }
528
526
  }
@@ -1 +1 @@
1
- {"version":3,"file":"collection-api.js","sourceRoot":"","sources":["../../../src/lib/local-api/collection-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection-api.js","sourceRoot":"","sources":["../../../src/lib/local-api/collection-api.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,6 @@ import type { LocalAPIContext } from './types.js';
11
11
  * This interface is meant to be augmented by generated types
12
12
  */
13
13
  export interface Collections {
14
- [collectionName: string]: CollectionAPI<unknown>;
15
14
  }
16
15
  /**
17
16
  * Local API - provides a unified, type-safe interface for all CMS operations
@@ -46,6 +45,7 @@ export interface Collections {
46
45
  export declare class LocalAPI {
47
46
  private config;
48
47
  collections: Collections;
48
+ private _collections;
49
49
  private userAdapter;
50
50
  private systemAdapter;
51
51
  private documentCache;
@@ -72,6 +72,10 @@ export declare class LocalAPI {
72
72
  * Check if a collection exists
73
73
  */
74
74
  hasCollection(name: string): boolean;
75
+ /**
76
+ * Get a collection by name (for dynamic access in route handlers and resolvers)
77
+ */
78
+ getCollection(name: string): CollectionAPI<unknown> | undefined;
75
79
  /**
76
80
  * Get schema for a collection
77
81
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/local-api/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/local-api/index.ts"],"names":[],"mappings":"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"}
@@ -49,6 +49,7 @@ import { PermissionChecker } from './permissions.js';
49
49
  export class LocalAPI {
50
50
  config;
51
51
  collections = {};
52
+ _collections = new Map();
52
53
  userAdapter;
53
54
  systemAdapter;
54
55
  documentCache;
@@ -90,8 +91,7 @@ export class LocalAPI {
90
91
  // wrapper. They don't touch the database, so wrapping
91
92
  // would force callers to `await` what is actually a
92
93
  // synchronous compute (and break their return types).
93
- if (typeof method === 'function' &&
94
- SYNC_COLLECTION_METHODS.has(prop)) {
94
+ if (typeof method === 'function' && SYNC_COLLECTION_METHODS.has(prop)) {
95
95
  return method.bind(target);
96
96
  }
97
97
  if (typeof method === 'function') {
@@ -108,7 +108,9 @@ export class LocalAPI {
108
108
  return method;
109
109
  }
110
110
  });
111
- this.collections[schema.name] = collectionAPI;
111
+ this._collections.set(schema.name, collectionAPI);
112
+ this.collections[schema.name] =
113
+ collectionAPI;
112
114
  }
113
115
  }
114
116
  /**
@@ -133,6 +135,12 @@ export class LocalAPI {
133
135
  hasCollection(name) {
134
136
  return this.schemas.has(name);
135
137
  }
138
+ /**
139
+ * Get a collection by name (for dynamic access in route handlers and resolvers)
140
+ */
141
+ getCollection(name) {
142
+ return this._collections.get(name);
143
+ }
136
144
  /**
137
145
  * Get schema for a collection
138
146
  */
@@ -202,7 +210,7 @@ export class LocalAPI {
202
210
  const docs = await Promise.all(typeLookups.map(async (lookup) => {
203
211
  if (!lookup)
204
212
  return null;
205
- const collection = this.collections[lookup.type];
213
+ const collection = this.getCollection(lookup.type);
206
214
  if (!collection)
207
215
  return null;
208
216
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/local-api/index.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,EAAE;AACF,gDAAgD;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAGnE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAclD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,OAAO,QAAQ;IAYX;IAXF,WAAW,GAAgB,EAAiB,CAAC;IAC5C,WAAW,CAAkB;IAC7B,aAAa,CAAyB;IACtC,aAAa,CAAuB;IACpC,gBAAgB,CAAmB;IACpC,cAAc,CAAiB;IAC/B,iBAAiB,CAAoB;IACpC,WAAW,CAAoB;IAC/B,OAAO,CAA0B;IAEzC,YACS,MAAiB,EACzB,WAA4B,EAC5B,aAA+B;QAFvB,WAAM,GAAN,MAAM,CAAW;QAIzB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,IAAI,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3E,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACxE,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC;YACxC,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,IAAI,EAAE;SACjD,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAE5D,qCAAqC;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CACrB,MAAM,CAAC,WAAW;aAChB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC;aAC9C,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CACxC,CAAC;QAEF,gCAAgC;QAChC,IAAI,CAAC,WAAW,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE/D,oDAAoD;QACpD,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC5B,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QAErF,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;YACtC,mEAAmE;YACnE,MAAM,aAAa,GAAG,IAAI,KAAK,CAC9B,IAAI,aAAa,CAChB,MAAM,CAAC,IAAI,EACX,IAAI,CAAC,WAAW,EAChB,MAAM,EACN,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,MAAM,CAAC,WAAW,CACvB,EACD;gBACC,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;oBACrB,MAAM,MAAM,GAAG,MAAM,CAAC,IAA2B,CAAC,CAAC;oBACnD,yDAAyD;oBACzD,sDAAsD;oBACtD,oDAAoD;oBACpD,sDAAsD;oBACtD,IACC,OAAO,MAAM,KAAK,UAAU;wBAC5B,uBAAuB,CAAC,GAAG,CAAC,IAAc,CAAC,EAC1C,CAAC;wBACF,OAAQ,MAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC1C,CAAC;oBACD,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;wBAClC,4CAA4C;wBAC5C,OAAO,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;4BACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAoB,CAAC;4BAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;4BAEzC,oDAAoD;4BACpD,MAAM,GAAG,GAAG,IAAI,aAAa,CAC5B,MAAM,CAAC,IAAI,EACX,OAAO,EACP,MAAM,EACN,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,cAAc,EACnB,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAC9B,IAAI,CAAC,MAAM,CAAC,WAAW,CACvB,CAAC;4BAEF,sCAAsC;4BACtC,OAAQ,GAAG,CAAC,IAA2B,CAAc,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;wBACxE,CAAC,CAAC;oBACH,CAAC;oBACD,OAAO,MAAM,CAAC;gBACf,CAAC;aACD,CACD,CAAC;YAEF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,aAAuC,CAAC;QACzE,CAAC;IACF,CAAC;IAED;;;OAGG;IACK,UAAU,CAAC,OAAwB;QAC1C,IAAI,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAClD,OAAO,IAAI,CAAC,aAAa,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,kBAAkB;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,IAAY;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CACrB,OAAwB,EACxB,EAAU,EACV,OAAuC;QAEvC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,WAAW,GAAkC,EAAE,GAAG,OAAO,EAAE,CAAC;QAElE,4EAA4E;QAC5E,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACzF,WAAW,CAAC,qBAAqB,GAAG,MAAM,CAAC;QAC5C,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QAC1F,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB,CACtB,OAAwB,EACxB,KAAa;QAEb,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,kBAAkB,CACvB,OAAwB,EACxB,GAAa,EACb,OAAiC;QAEjC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEzC,mEAAmE;QACnE,qEAAqE;QACrE,IAAI,qBAAqB,GAAG,OAAO,EAAE,qBAAqB,CAAC;QAC3D,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACrD,qBAAqB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CACxE,OAAO,CAAC,cAAc,CACtB,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACd,OAAO;aACL,mBAAmB,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,qBAAqB,EAAE,CAAC;aAC1E,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CACtD,CACD,CAAC;QAEF,oEAAoE;QACpE,+DAA+D;QAC/D,gCAAgC;QAChC,MAAM,IAAI,GAAoB,MAAM,OAAO,CAAC,GAAG,CAC9C,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAChC,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YACzB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,UAAU;gBAAE,OAAO,IAAI,CAAC;YAC7B,IAAI,CAAC;gBACJ,OAAO,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE;oBACrD,GAAG,OAAO;oBACV,qBAAqB;iBACrB,CAAC,CAAa,CAAC;YACjB,CAAC;YAAC,MAAM,CAAC;gBACR,iEAAiE;gBACjE,OAAO,IAAI,CAAC;YACb,CAAC;QACF,CAAC,CAAC,CACF,CAAC;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAQ,CAAC;IAC7C,CAAC;CACD;AAED,4BAA4B;AAC5B,IAAI,gBAAgB,GAAoB,IAAI,CAAC;AAE7C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,cAAc,CAC7B,MAAiB,EACjB,WAA4B,EAC5B,aAA+B;IAE/B,gBAAgB,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;IACpE,OAAO,gBAAgB,CAAC;AACzB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW;IAC1B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,gBAAgB,CAAC;AACzB,CAAC;AAED,8CAA8C;AAC9C,OAAO,EACN,aAAa,EACb,uBAAuB,EAGvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/local-api/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"assets-cdn.d.ts","sourceRoot":"","sources":["../../../src/lib/routes/assets-cdn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,eAAO,MAAM,GAAG,EAAE,cAkKjB,CAAC"}
1
+ {"version":3,"file":"assets-cdn.d.ts","sourceRoot":"","sources":["../../../src/lib/routes/assets-cdn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,eAAO,MAAM,GAAG,EAAE,cAyKjB,CAAC"}
@@ -116,12 +116,17 @@ export const GET = async ({ params, locals, setHeaders, request }) => {
116
116
  .replace(/[^\x20-\x7E]/g, '_') // strip anything outside printable ASCII
117
117
  .replace(/["\\]/g, ''); // drop quotes and backslashes that'd break the quoted-string
118
118
  const utf8Encoded = encodeURIComponent(rawFilename);
119
- // Set appropriate headers for the asset
119
+ const safeInlineTypes = ['image/', 'application/pdf', 'video/', 'audio/'];
120
+ const canInline = asset.mimeType &&
121
+ asset.mimeType !== 'image/svg+xml' &&
122
+ safeInlineTypes.some((t) => asset.mimeType.startsWith(t));
123
+ const disposition = canInline ? 'inline' : 'attachment';
120
124
  setHeaders({
121
125
  'Content-Type': asset.mimeType || 'application/octet-stream',
122
126
  'Content-Length': fileBuffer.length.toString(),
123
- 'Cache-Control': 'public, max-age=31536000, immutable', // Cache for 1 year
124
- 'Content-Disposition': `inline; filename="${asciiFallback}"; filename*=UTF-8''${utf8Encoded}`,
127
+ 'Cache-Control': 'public, max-age=31536000, immutable',
128
+ 'Content-Disposition': `${disposition}; filename="${asciiFallback}"; filename*=UTF-8''${utf8Encoded}`,
129
+ 'X-Content-Type-Options': 'nosniff',
125
130
  ...(asset.mimeType?.startsWith('image/') && {
126
131
  'Accept-Ranges': 'bytes'
127
132
  })
@@ -1 +1 @@
1
- {"version":3,"file":"assets-cdn.js","sourceRoot":"","sources":["../../../src/lib/routes/assets-cdn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assets-cdn.js","sourceRoot":"","sources":["../../../src/lib/routes/assets-cdn.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAoB7C;;;;;;;;;;GAUG;AACH,MAAM,MAAM,QAAQ,GAAG;IACtB,SAAS,EAAE;QACV,QAAQ,EAAE,YAAY,CAAC;QACvB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;KAClB,CAAC;IACF,QAAQ,EAAE;QACT,QAAQ,EAAE,YAAY,CAAC;QACvB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;KAClB,CAAC;CACF,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,cAAc,kGAY7B;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,QAsCrD;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC5B,SAAS,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,IAEzC,GAAG,OAAO,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,uBAejD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAoB7C;;;;;;;;;;GAUG;AACH,MAAM,MAAM,QAAQ,GAAG;IACtB,SAAS,EAAE;QACV,QAAQ,EAAE,YAAY,CAAC;QACvB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;KAClB,CAAC;IACF,QAAQ,EAAE;QACT,QAAQ,EAAE,YAAY,CAAC;QACvB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;KAClB,CAAC;CACF,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,cAAc,kGAqB7B;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,QAkDrD;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,IACtE,GAAG,OAAO,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,uBAejD"}
@@ -1,4 +1,5 @@
1
1
  import { Hono } from 'hono';
2
+ import { bodyLimit } from 'hono/body-limit';
2
3
  import { schemasRouter } from './routes/schemas.js';
3
4
  import { documentsRouter } from './routes/documents.js';
4
5
  import { documentsByIdRouter } from './routes/documents-by-id.js';
@@ -27,6 +28,11 @@ import { userRouter } from './routes/user.js';
27
28
  */
28
29
  export function createAphexApi() {
29
30
  const app = new Hono().basePath('/api');
31
+ // Reject oversized request bodies before they're fully buffered.
32
+ app.use('*', bodyLimit({
33
+ maxSize: 10 * 1024 * 1024, // 10MB for JSON endpoints
34
+ onError: (c) => c.json({ success: false, error: 'Request body too large (max 10MB)' }, 413)
35
+ }));
30
36
  // Bridge: lift values passed via app.fetch(req, env) onto c.var so
31
37
  // handlers can read c.var.aphexCMS / c.var.auth directly.
32
38
  app.use('*', async (c, next) => {
@@ -77,6 +83,18 @@ export function mountAphexBuiltins(app) {
77
83
  // Hono would try to match them under the wrong handler chain.
78
84
  app.route('/user', userPreferencesRouter);
79
85
  app.route('/user', userRouter);
86
+ // Health check — unauthenticated, used by load balancers and uptime monitors.
87
+ app.get('/aphex-health', async (c) => {
88
+ try {
89
+ const { databaseAdapter } = c.var.aphexCMS;
90
+ const dbHealthy = await databaseAdapter.isHealthy();
91
+ const status = dbHealthy ? 'healthy' : 'degraded';
92
+ return c.json({ status, database: dbHealthy }, dbHealthy ? 200 : 503);
93
+ }
94
+ catch {
95
+ return c.json({ status: 'unhealthy', database: false }, 503);
96
+ }
97
+ });
80
98
  }
81
99
  /**
82
100
  * Adapter: wrap a SvelteKit-style `RequestHandler` so it can be mounted
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/server/api/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/server/api/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"assets-bulk.d.ts","sourceRoot":"","sources":["../../../../../src/lib/server/api/routes/assets-bulk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAI5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,eAAO,MAAM,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAkE3C,CAAC"}
1
+ {"version":3,"file":"assets-bulk.d.ts","sourceRoot":"","sources":["../../../../../src/lib/server/api/routes/assets-bulk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAK5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,eAAO,MAAM,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAyE3C,CAAC"}
@@ -2,6 +2,7 @@ import { Hono } from 'hono';
2
2
  import { zValidator } from '@hono/zod-validator';
3
3
  import { cmsLogger } from '../../../utils/logger.js';
4
4
  import { bulkDeleteAssetsRequest } from '../../../api/schemas/assets.js';
5
+ import { hasCapability } from '../../../types/capabilities.js';
5
6
  export const assetsBulkRouter = new Hono().delete('/bulk', zValidator('json', bulkDeleteAssetsRequest, (result, c) => {
6
7
  if (!result.success) {
7
8
  return c.json({
@@ -17,6 +18,9 @@ export const assetsBulkRouter = new Hono().delete('/bulk', zValidator('json', bu
17
18
  if (!auth || auth.type === 'partial_session') {
18
19
  return c.json({ success: false, error: 'Unauthorized' }, 401);
19
20
  }
21
+ if (!hasCapability(auth, 'asset.delete')) {
22
+ return c.json({ success: false, error: 'Forbidden: asset.delete capability required' }, 403);
23
+ }
20
24
  const { ids } = c.req.valid('json');
21
25
  let referencedIds = [];
22
26
  if (databaseAdapter.countDocumentReferencesForAssets) {
@@ -1 +1 @@
1
- {"version":3,"file":"assets-bulk.js","sourceRoot":"","sources":["../../../../../src/lib/server/api/routes/assets-bulk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assets-bulk.js","sourceRoot":"","sources":["../../../../../src/lib/server/api/routes/assets-bulk.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"assets-by-id.d.ts","sourceRoot":"","sources":["../../../../../src/lib/server/api/routes/assets-by-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAK5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,eAAO,MAAM,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CA8HzC,CAAC"}
1
+ {"version":3,"file":"assets-by-id.d.ts","sourceRoot":"","sources":["../../../../../src/lib/server/api/routes/assets-by-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAM5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,eAAO,MAAM,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CA0I1C,CAAC"}
@@ -2,6 +2,7 @@ import { Hono } from 'hono';
2
2
  import { zValidator } from '@hono/zod-validator';
3
3
  import { cmsLogger } from '../../../utils/logger.js';
4
4
  import { updateAssetRequest } from '../../../api/schemas/assets.js';
5
+ import { hasCapability } from '../../../types/capabilities.js';
5
6
  export const assetsByIdRouter = new Hono()
6
7
  .get('/:id', async (c) => {
7
8
  try {
@@ -33,6 +34,9 @@ export const assetsByIdRouter = new Hono()
33
34
  if (!auth || auth.type === 'partial_session') {
34
35
  return c.json({ success: false, error: 'Unauthorized' }, 401);
35
36
  }
37
+ if (!hasCapability(auth, 'asset.delete')) {
38
+ return c.json({ success: false, error: 'Forbidden: asset.delete capability required' }, 403);
39
+ }
36
40
  if (!id) {
37
41
  return c.json({ success: false, error: 'Asset ID is required' }, 400);
38
42
  }
@@ -72,6 +76,9 @@ export const assetsByIdRouter = new Hono()
72
76
  if (!auth || auth.type === 'partial_session') {
73
77
  return c.json({ success: false, error: 'Unauthorized' }, 401);
74
78
  }
79
+ if (!hasCapability(auth, 'asset.upload')) {
80
+ return c.json({ success: false, error: 'Forbidden: asset.upload capability required' }, 403);
81
+ }
75
82
  if (!id) {
76
83
  return c.json({ success: false, error: 'Asset ID is required' }, 400);
77
84
  }
@@ -1 +1 @@
1
- {"version":3,"file":"assets-by-id.js","sourceRoot":"","sources":["../../../../../src/lib/server/api/routes/assets-by-id.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assets-by-id.js","sourceRoot":"","sources":["../../../../../src/lib/server/api/routes/assets-by-id.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../../../../src/lib/server/api/routes/assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAK5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,eAAO,MAAM,YAAY,EAAE,IAAI,CAAC,QAAQ,CA+IrC,CAAC"}
1
+ {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../../../../src/lib/server/api/routes/assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAM5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,eAAO,MAAM,YAAY,EAAE,IAAI,CAAC,QAAQ,CA8JrC,CAAC"}
@@ -3,6 +3,7 @@ import { zValidator } from '@hono/zod-validator';
3
3
  import { cmsLogger } from '../../../utils/logger.js';
4
4
  import { validateFile } from '../../../utils/mime-detect.js';
5
5
  import { listAssetsQuery } from '../../../api/schemas/assets.js';
6
+ import { hasCapability } from '../../../types/capabilities.js';
6
7
  export const assetsRouter = new Hono()
7
8
  .get('/', zValidator('query', listAssetsQuery, (result, c) => {
8
9
  if (!result.success) {
@@ -27,15 +28,15 @@ export const assetsRouter = new Hono()
27
28
  limit: q.limit ?? 20,
28
29
  offset: q.offset ?? 0
29
30
  };
30
- const [fetchedAssets, totalAssets] = await Promise.all([
31
+ const { databaseAdapter } = c.var.aphexCMS;
32
+ const [fetchedAssets, total] = await Promise.all([
31
33
  assetService.findAssets(auth.organizationId, filters),
32
- assetService.findAssets(auth.organizationId, {
33
- ...filters,
34
- limit: 999999,
35
- offset: 0
34
+ databaseAdapter.countAssets(auth.organizationId, {
35
+ assetType: filters.assetType,
36
+ mimeType: filters.mimeType,
37
+ search: filters.search
36
38
  })
37
39
  ]);
38
- const total = totalAssets.length;
39
40
  const pageSize = filters.limit || 20;
40
41
  const currentPage = Math.floor(filters.offset / pageSize) + 1;
41
42
  const totalPages = Math.ceil(total / pageSize);
@@ -68,6 +69,9 @@ export const assetsRouter = new Hono()
68
69
  if (!auth || auth.type === 'partial_session') {
69
70
  return c.json({ success: false, error: 'Unauthorized' }, 401);
70
71
  }
72
+ if (!hasCapability(auth, 'asset.upload')) {
73
+ return c.json({ success: false, error: 'Forbidden: asset.upload capability required' }, 403);
74
+ }
71
75
  const formData = await c.req.formData();
72
76
  const file = formData.get('file');
73
77
  if (!file) {
@@ -75,10 +79,14 @@ export const assetsRouter = new Hono()
75
79
  }
76
80
  const arrayBuffer = await file.arrayBuffer();
77
81
  const buffer = Buffer.from(arrayBuffer);
82
+ const SERVER_MAX_FILE_SIZE = 50 * 1024 * 1024; // 50MB hard limit
78
83
  const allowedMimeTypesRaw = formData.get('allowedMimeTypes');
79
84
  const maxSizeRaw = formData.get('maxSize');
80
85
  const allowedMimeTypes = allowedMimeTypesRaw ? JSON.parse(allowedMimeTypesRaw) : undefined;
81
- const maxSize = maxSizeRaw ? parseInt(maxSizeRaw, 10) : undefined;
86
+ const clientMaxSize = maxSizeRaw ? parseInt(maxSizeRaw, 10) : undefined;
87
+ const maxSize = clientMaxSize
88
+ ? Math.min(clientMaxSize, SERVER_MAX_FILE_SIZE)
89
+ : SERVER_MAX_FILE_SIZE;
82
90
  const validation = validateFile(buffer, file.name, file.type, {
83
91
  allowedMimeTypes,
84
92
  maxSize
@@ -86,18 +94,19 @@ export const assetsRouter = new Hono()
86
94
  if (!validation.valid) {
87
95
  return c.json({ success: false, error: validation.error }, 400);
88
96
  }
97
+ const safeMimeType = validation.detectedMimeType || 'application/octet-stream';
89
98
  const title = formData.get('title') || undefined;
90
99
  const description = formData.get('description') || undefined;
91
100
  const alt = formData.get('alt') || undefined;
92
101
  const creditLine = formData.get('creditLine') || undefined;
93
102
  const schemaType = formData.get('schemaType') || undefined;
94
103
  const fieldPath = formData.get('fieldPath') || undefined;
95
- const targetOrganizationId = formData.get('organizationId') || auth.organizationId;
104
+ const targetOrganizationId = auth.organizationId;
96
105
  const uploadData = {
97
106
  organizationId: targetOrganizationId,
98
107
  buffer,
99
108
  originalFilename: file.name,
100
- mimeType: file.type,
109
+ mimeType: safeMimeType,
101
110
  size: file.size,
102
111
  title,
103
112
  description,
@@ -1 +1 @@
1
- {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../../../src/lib/server/api/routes/assets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../../../src/lib/server/api/routes/assets.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"document-versions.d.ts","sourceRoot":"","sources":["../../../../../src/lib/server/api/routes/document-versions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAK5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,eAAO,MAAM,sBAAsB,EAAE,IAAI,CAAC,QAAQ,CAqJ/C,CAAC"}
1
+ {"version":3,"file":"document-versions.d.ts","sourceRoot":"","sources":["../../../../../src/lib/server/api/routes/document-versions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAM5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,eAAO,MAAM,sBAAsB,EAAE,IAAI,CAAC,QAAQ,CAiK/C,CAAC"}
@@ -2,6 +2,7 @@ import { Hono } from 'hono';
2
2
  import { zValidator } from '@hono/zod-validator';
3
3
  import { authToContext } from '../../../local-api/auth-helpers.js';
4
4
  import { cmsLogger } from '../../../utils/logger.js';
5
+ import { hasCapability } from '../../../types/capabilities.js';
5
6
  import { listVersionsQuery } from '../../../api/schemas/documents.js';
6
7
  export const documentVersionsRouter = new Hono()
7
8
  .get('/:id/versions', zValidator('query', listVersionsQuery, (result, c) => {
@@ -84,6 +85,13 @@ export const documentVersionsRouter = new Hono()
84
85
  })
85
86
  .post('/:id/versions/:version/restore', async (c) => {
86
87
  try {
88
+ const auth = c.var.auth;
89
+ if (!auth || auth.type === 'partial_session') {
90
+ return c.json({ success: false, error: 'Unauthorized' }, 401);
91
+ }
92
+ if (!hasCapability(auth, 'document.update')) {
93
+ return c.json({ success: false, error: 'Forbidden: document.update capability required' }, 403);
94
+ }
87
95
  const { localAPI, databaseAdapter } = c.var.aphexCMS;
88
96
  const context = authToContext(c.var.auth);
89
97
  const id = c.req.param('id');