@aphexcms/cms-core 8.0.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 (205) 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 +43 -19
  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/utils/reference-walk.js +4 -0
  151. package/dist/lib/utils/reference-walk.js.map +1 -1
  152. package/dist/lib/vite/index.d.ts.map +1 -1
  153. package/dist/lib/vite/index.js +4 -5
  154. package/dist/lib/vite/index.js.map +1 -1
  155. package/dist/local-api/collection-api.d.ts.map +1 -1
  156. package/dist/local-api/collection-api.js +7 -9
  157. package/dist/local-api/index.d.ts +5 -1
  158. package/dist/local-api/index.d.ts.map +1 -1
  159. package/dist/local-api/index.js +12 -4
  160. package/dist/routes/assets-cdn.d.ts.map +1 -1
  161. package/dist/routes/assets-cdn.js +8 -3
  162. package/dist/server/api/index.d.ts.map +1 -1
  163. package/dist/server/api/index.js +18 -0
  164. package/dist/server/api/routes/assets-bulk.d.ts.map +1 -1
  165. package/dist/server/api/routes/assets-bulk.js +4 -0
  166. package/dist/server/api/routes/assets-by-id.d.ts.map +1 -1
  167. package/dist/server/api/routes/assets-by-id.js +7 -0
  168. package/dist/server/api/routes/assets.d.ts.map +1 -1
  169. package/dist/server/api/routes/assets.js +18 -9
  170. package/dist/server/api/routes/document-versions.d.ts.map +1 -1
  171. package/dist/server/api/routes/document-versions.js +8 -0
  172. package/dist/server/api/routes/documents-by-id.d.ts.map +1 -1
  173. package/dist/server/api/routes/documents-by-id.js +3 -3
  174. package/dist/server/api/routes/documents-publish.d.ts.map +1 -1
  175. package/dist/server/api/routes/documents-publish.js +2 -2
  176. package/dist/server/api/routes/documents-query.d.ts.map +1 -1
  177. package/dist/server/api/routes/documents-query.js +2 -3
  178. package/dist/server/api/routes/documents.d.ts.map +1 -1
  179. package/dist/server/api/routes/documents.js +3 -5
  180. package/dist/server/api/routes/organizations-invitations.d.ts.map +1 -1
  181. package/dist/server/api/routes/organizations-invitations.js +1 -1
  182. package/dist/server/api/routes/organizations-members.d.ts.map +1 -1
  183. package/dist/server/index.d.ts +1 -0
  184. package/dist/server/index.d.ts.map +1 -1
  185. package/dist/server/index.js +2 -0
  186. package/dist/services/asset-service.d.ts.map +1 -1
  187. package/dist/services/asset-service.js +4 -2
  188. package/dist/services/references-service.d.ts.map +1 -1
  189. package/dist/storage/adapters/local-storage-adapter.d.ts +4 -0
  190. package/dist/storage/adapters/local-storage-adapter.d.ts.map +1 -1
  191. package/dist/storage/adapters/local-storage-adapter.js +28 -6
  192. package/dist/types/capabilities.d.ts +1 -0
  193. package/dist/types/capabilities.d.ts.map +1 -1
  194. package/dist/types/capabilities.js +3 -0
  195. package/dist/types/config.d.ts +16 -1
  196. package/dist/types/config.d.ts.map +1 -1
  197. package/dist/utils/logger.d.ts +8 -6
  198. package/dist/utils/logger.d.ts.map +1 -1
  199. package/dist/utils/logger.js +11 -2
  200. package/dist/utils/mime-detect.d.ts.map +1 -1
  201. package/dist/utils/mime-detect.js +21 -6
  202. package/dist/utils/reference-walk.js +4 -0
  203. package/dist/vite/index.d.ts.map +1 -1
  204. package/dist/vite/index.js +4 -5
  205. package/package.json +4 -5
@@ -166,7 +166,7 @@
166
166
  // Fetch reference counts for this page
167
167
  fetchReferenceCounts(result.data.map((a) => a.id));
168
168
  }
169
- } catch (err) {
169
+ } catch {
170
170
  toast.error('Failed to fetch assets');
171
171
  } finally {
172
172
  loading = false;
@@ -186,7 +186,7 @@
186
186
  if (result.success && result.data) {
187
187
  referenceCounts = { ...referenceCounts, ...result.data };
188
188
  }
189
- } catch (err) {
189
+ } catch {
190
190
  toast.error('Failed to fetch reference counts');
191
191
  }
192
192
  }
@@ -200,7 +200,7 @@
200
200
  selectedAssetRefs = result.data.references;
201
201
  selectedRefCount = result.data.total;
202
202
  }
203
- } catch (err) {
203
+ } catch {
204
204
  toast.error('Failed to fetch asset references');
205
205
  selectedAssetRefs = [];
206
206
  selectedRefCount = 0;
@@ -284,7 +284,7 @@
284
284
  if (result.success && result.data) {
285
285
  referenceCounts = { ...referenceCounts, ...result.data };
286
286
  }
287
- } catch (err) {
287
+ } catch {
288
288
  toast.error('Failed to check references');
289
289
  }
290
290
 
@@ -316,7 +316,7 @@
316
316
  selectedIds = new Set();
317
317
  await fetchAssets();
318
318
  }
319
- } catch (err) {
319
+ } catch {
320
320
  toast.error('Failed to delete assets');
321
321
  } finally {
322
322
  isBulkDeleting = false;
@@ -424,7 +424,7 @@
424
424
  assetList = assetList.map((a) => (a.id === selectedAsset!.id ? result.data! : a));
425
425
  selectedAsset = result.data;
426
426
  }
427
- } catch (err) {
427
+ } catch {
428
428
  toast.error('Failed to save metadata');
429
429
  } finally {
430
430
  isSaving = false;
@@ -455,7 +455,7 @@
455
455
  }
456
456
  await fetchAssets();
457
457
  }
458
- } catch (err) {
458
+ } catch {
459
459
  toast.error('Failed to delete asset');
460
460
  }
461
461
  }
@@ -320,7 +320,7 @@
320
320
  _key: generateKey(),
321
321
  asset: { _type: 'reference', _ref: result.data!.id }
322
322
  };
323
- } catch (error) {
323
+ } catch {
324
324
  toast.error(`Failed to upload ${file.name}`);
325
325
  return null;
326
326
  }
@@ -925,7 +925,9 @@
925
925
  class="flex flex-1 cursor-pointer items-center gap-2 self-stretch truncate px-1 py-2 text-left text-sm"
926
926
  onclick={() => handleEditItem(index)}
927
927
  >
928
- <span class="text-muted-foreground flex h-5 w-5 shrink-0 items-center justify-center">
928
+ <span
929
+ class="text-muted-foreground flex h-5 w-5 shrink-0 items-center justify-center"
930
+ >
929
931
  {#if getItemIcon(item)}
930
932
  {@const Icon = getItemIcon(item)}
931
933
  <Icon class="h-4 w-4" />
@@ -189,7 +189,7 @@
189
189
  toast.error('Failed to fetch asset details');
190
190
  assetData = null;
191
191
  }
192
- } catch (error) {
192
+ } catch {
193
193
  toast.error('Failed to load file asset');
194
194
  assetData = null;
195
195
  } finally {
@@ -188,7 +188,7 @@
188
188
  toast.error('Failed to fetch asset details');
189
189
  assetData = null;
190
190
  }
191
- } catch (error) {
191
+ } catch {
192
192
  toast.error('Failed to load image asset');
193
193
  assetData = null;
194
194
  } finally {
@@ -78,7 +78,7 @@
78
78
  if (doc.success) {
79
79
  selectedDocument = doc.data;
80
80
  }
81
- } catch (err) {
81
+ } catch {
82
82
  toast.error('Failed to load referenced document');
83
83
  selectedDocument = null;
84
84
  }
@@ -196,7 +196,7 @@
196
196
  onUpdate({ _type: 'reference', _ref: result.data.id });
197
197
  closeAndFocusTrigger();
198
198
  }
199
- } catch (err) {
199
+ } catch {
200
200
  toast.error('Failed to create document');
201
201
  } finally {
202
202
  creating = false;
@@ -351,7 +351,9 @@
351
351
  </span>
352
352
  </div>
353
353
  {#if doc._meta?.status === 'published'}
354
- <span class="h-1.5 w-1.5 shrink-0 rounded-full bg-green-500" title="Published"
354
+ <span
355
+ class="h-1.5 w-1.5 shrink-0 rounded-full bg-green-500"
356
+ title="Published"
355
357
  ></span>
356
358
  {:else if doc._meta?.status === 'unpublished'}
357
359
  <span
@@ -71,7 +71,7 @@
71
71
 
72
72
  // Invalidate all data to refetch with new organization context
73
73
  await invalidateAll();
74
- } catch (error) {
74
+ } catch {
75
75
  toast.error('Failed to switch organization');
76
76
  } finally {
77
77
  isSwitching = false;
@@ -36,7 +36,15 @@
36
36
 
37
37
  function matchActive(item: NavItem): boolean {
38
38
  if (isActiveProp) return isActiveProp(currentPath, item);
39
- return item.exact ? currentPath === item.url : currentPath.startsWith(item.url);
39
+ if (item.exact) return currentPath === item.url;
40
+ const matches = currentPath === item.url || currentPath.startsWith(item.url + '/');
41
+ if (!matches) return false;
42
+ return !items.some(
43
+ (other) =>
44
+ other !== item &&
45
+ other.url.length > item.url.length &&
46
+ (currentPath === other.url || currentPath.startsWith(other.url + '/'))
47
+ );
40
48
  }
41
49
 
42
50
  let currentPath = $derived(page.url.pathname);
@@ -1 +1 @@
1
- {"version":3,"file":"NavMain.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/layout/sidebar/NavMain.svelte.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAgB,KAAK,IAAI,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGpE,KAAK,OAAO,GAAG;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,QAAQ,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACZ,EAAE,CAAC;CACJ,CAAC;AAEF,KAAK,KAAK,GAAG;IACZ,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC;CACpD,CAAC;AA2EH,QAAA,MAAM,OAAO,2CAAwC,CAAC;AACtD,KAAK,OAAO,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAC1C,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"NavMain.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/layout/sidebar/NavMain.svelte.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAgB,KAAK,IAAI,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGpE,KAAK,OAAO,GAAG;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,QAAQ,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACZ,EAAE,CAAC;CACJ,CAAC;AAEF,KAAK,KAAK,GAAG;IACZ,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC;CACpD,CAAC;AAmFH,QAAA,MAAM,OAAO,2CAAwC,CAAC;AACtD,KAAK,OAAO,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAC1C,eAAe,OAAO,CAAC"}
@@ -1,13 +1,11 @@
1
1
  import type { Asset } from '../../types/index.js';
2
2
  import type { Where, FindOptions, FindResult } from '../../types/filters.js';
3
3
  export interface AssetFilters {
4
- organizationId: string;
5
4
  assetType?: 'image' | 'file';
6
5
  mimeType?: string;
7
6
  search?: string;
8
7
  limit?: number;
9
8
  offset?: number;
10
- filterOrganizationIds?: string[];
11
9
  }
12
10
  export interface CreateAssetData {
13
11
  organizationId: string;
@@ -42,10 +40,10 @@ export interface UpdateAssetData {
42
40
  export interface AssetAdapter {
43
41
  createAsset(data: CreateAssetData): Promise<Asset>;
44
42
  findAssetById(organizationId: string, id: string): Promise<Asset | null>;
45
- findAssets(organizationId: string, filters?: Omit<AssetFilters, 'organizationId'>): Promise<Asset[]>;
43
+ findAssets(organizationId: string, filters?: AssetFilters): Promise<Asset[]>;
46
44
  updateAsset(organizationId: string, id: string, data: UpdateAssetData): Promise<Asset | null>;
47
45
  deleteAsset(organizationId: string, id: string): Promise<boolean>;
48
- countAssets(organizationId: string): Promise<number>;
46
+ countAssets(organizationId: string, filters?: AssetFilters): Promise<number>;
49
47
  countAssetsByType(organizationId: string): Promise<Record<string, number>>;
50
48
  getTotalAssetsSize(organizationId: string): Promise<number>;
51
49
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../../src/lib/db/interfaces/asset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../../src/lib/db/interfaces/asset.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ export interface OrganizationAdapter {
18
18
  findOrganizationInvitations(organizationId: string): Promise<Invitation[]>;
19
19
  findInvitationsByEmail(email: string): Promise<Invitation[]>;
20
20
  acceptInvitation(token: string, userId: string): Promise<OrganizationMember>;
21
- deleteInvitation(id: string): Promise<boolean>;
21
+ deleteInvitation(id: string, organizationId?: string): Promise<boolean>;
22
22
  removeAllInvitations(organizationId: string): Promise<boolean>;
23
23
  cleanupExpiredInvitations(): Promise<number>;
24
24
  updateUserSession(userId: string, organizationId: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"organization.d.ts","sourceRoot":"","sources":["../../../src/lib/db/interfaces/organization.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,UAAU,EACV,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,mBAAmB;IAEnC,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACjE,oBAAoB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAChD,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC/D,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IACnE,kBAAkB,CACjB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC,GACjE,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAChC,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAGjD,SAAS,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpE,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvE,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,gBAAgB,CACf,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACV,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IACtC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IAC/F,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACzE,uBAAuB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAG/E,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3D,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACjE,2BAA2B,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3E,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7D,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC7E,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,yBAAyB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAG7C,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC7D,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACpD"}
1
+ {"version":3,"file":"organization.d.ts","sourceRoot":"","sources":["../../../src/lib/db/interfaces/organization.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,UAAU,EACV,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,mBAAmB;IAEnC,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACjE,oBAAoB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAChD,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC/D,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IACnE,kBAAkB,CACjB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC,GACjE,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAChC,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAGjD,SAAS,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpE,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvE,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,gBAAgB,CACf,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACV,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IACtC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IAC/F,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACzE,uBAAuB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAG/E,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3D,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACjE,2BAA2B,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3E,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7D,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC7E,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxE,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,yBAAyB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAG7C,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC7D,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACpD"}
@@ -1 +1 @@
1
- {"version":3,"file":"field-access.d.ts","sourceRoot":"","sources":["../src/lib/field-access.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGzC;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAUxF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAUzF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EAC1B,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,GACzB,CAAC,GAAG,IAAI,GAAG,SAAS,CAKtB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,GACzB,CAAC,CAQH;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAE/E"}
1
+ {"version":3,"file":"field-access.d.ts","sourceRoot":"","sources":["../src/lib/field-access.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGzC;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAWxF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAWzF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EAC1B,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,GACzB,CAAC,GAAG,IAAI,GAAG,SAAS,CAKtB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,GACzB,CAAC,CAQH;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAE/E"}
@@ -4,7 +4,7 @@
4
4
  // the caller can touch the collection at all). These helpers are the gate
5
5
  // between "has read/update on the collection" and "has read/update on this
6
6
  // specific field".
7
- import { effectiveOrganizationRole } from './types/capabilities.js';
7
+ import { effectiveOrganizationRole, isInstanceRole } from './types/capabilities.js';
8
8
  /**
9
9
  * Return the set of field names the caller may NOT read.
10
10
  * Fields with no `access.read` list are readable by default.
@@ -13,6 +13,8 @@ export function hiddenReadFields(schema, auth) {
13
13
  const hidden = new Set();
14
14
  if (!auth)
15
15
  return hidden;
16
+ if (isInstanceRole(auth))
17
+ return hidden;
16
18
  const role = effectiveOrganizationRole(auth);
17
19
  for (const field of schema.fields) {
18
20
  const list = field.access?.read;
@@ -31,6 +33,8 @@ export function hiddenWriteFields(schema, auth) {
31
33
  const hidden = new Set();
32
34
  if (!auth)
33
35
  return hidden;
36
+ if (isInstanceRole(auth))
37
+ return hidden;
34
38
  const role = effectiveOrganizationRole(auth);
35
39
  for (const field of schema.fields) {
36
40
  const list = field.access?.update;
@@ -0,0 +1,8 @@
1
+ import type { ValidationContext } from 'graphql';
2
+ type IgnoreRule = string | RegExp | ((fieldName: string) => boolean);
3
+ interface DepthLimitOptions {
4
+ ignore?: IgnoreRule[];
5
+ }
6
+ export declare function depthLimit(maxDepth: number, options?: DepthLimitOptions): (validationContext: ValidationContext) => ValidationContext;
7
+ export {};
8
+ //# sourceMappingURL=depth-limit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"depth-limit.d.ts","sourceRoot":"","sources":["../../src/lib/graphql/depth-limit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAmC,MAAM,SAAS,CAAC;AAElF,KAAK,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;AAErE,UAAU,iBAAiB;IAC1B,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,IACnE,mBAAmB,iBAAiB,uBAW5C"}
@@ -0,0 +1,79 @@
1
+ import { GraphQLError, Kind } from 'graphql';
2
+ export function depthLimit(maxDepth, options = {}) {
3
+ return (validationContext) => {
4
+ const { definitions } = validationContext.getDocument();
5
+ const fragments = getFragments(definitions);
6
+ const queries = getQueriesAndMutations(definitions);
7
+ for (const name in queries) {
8
+ determineDepth(queries[name], fragments, 0, maxDepth, validationContext, name, options);
9
+ }
10
+ return validationContext;
11
+ };
12
+ }
13
+ function getFragments(definitions) {
14
+ const map = {};
15
+ for (const def of definitions) {
16
+ if (def.kind === Kind.FRAGMENT_DEFINITION) {
17
+ map[def.name.value] = def;
18
+ }
19
+ }
20
+ return map;
21
+ }
22
+ function getQueriesAndMutations(definitions) {
23
+ const map = {};
24
+ for (const def of definitions) {
25
+ if (def.kind === Kind.OPERATION_DEFINITION) {
26
+ map[def.name ? def.name.value : ''] = def;
27
+ }
28
+ }
29
+ return map;
30
+ }
31
+ function determineDepth(node, fragments, depthSoFar, maxDepth, context, operationName, options) {
32
+ if (depthSoFar > maxDepth) {
33
+ context.reportError(new GraphQLError(`'${operationName}' exceeds maximum operation depth of ${maxDepth}`, {
34
+ nodes: [node]
35
+ }));
36
+ return depthSoFar;
37
+ }
38
+ switch (node.kind) {
39
+ case Kind.FIELD: {
40
+ const shouldIgnore = /^__/.test(node.name.value) || seeIfIgnored(node.name.value, options.ignore);
41
+ if (shouldIgnore || !node.selectionSet) {
42
+ return 0;
43
+ }
44
+ return (1 +
45
+ Math.max(...node.selectionSet.selections.map((selection) => determineDepth(selection, fragments, depthSoFar + 1, maxDepth, context, operationName, options))));
46
+ }
47
+ case Kind.FRAGMENT_SPREAD: {
48
+ const fragment = fragments[node.name.value];
49
+ if (!fragment)
50
+ return 0;
51
+ return determineDepth(fragment, fragments, depthSoFar, maxDepth, context, operationName, options);
52
+ }
53
+ case Kind.INLINE_FRAGMENT:
54
+ case Kind.FRAGMENT_DEFINITION:
55
+ case Kind.OPERATION_DEFINITION:
56
+ return Math.max(...node.selectionSet.selections.map((selection) => determineDepth(selection, fragments, depthSoFar, maxDepth, context, operationName, options)));
57
+ default:
58
+ throw new Error('Depth crawler cannot handle: ' + node.kind);
59
+ }
60
+ }
61
+ function seeIfIgnored(fieldName, ignore) {
62
+ if (!ignore)
63
+ return false;
64
+ for (const rule of ignore) {
65
+ if (typeof rule === 'function') {
66
+ if (rule(fieldName))
67
+ return true;
68
+ }
69
+ else if (typeof rule === 'string') {
70
+ if (fieldName.match(rule))
71
+ return true;
72
+ }
73
+ else if (rule instanceof RegExp) {
74
+ if (rule.test(fieldName))
75
+ return true;
76
+ }
77
+ }
78
+ return false;
79
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/graphql/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAKlD,MAAM,WAAW,aAAa;IAC7B,kBAAkB,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACpC,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IAC/D,QAAQ,EAAE,eAAe,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACzC,GAAG,EAAE,YAAY,EACjB,WAAW,EAAE,UAAU,EAAE,EACzB,OAAO,GAAE,aAAkB,GACzB,OAAO,CAAC,oBAAoB,CAAC,CAsF/B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/graphql/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAQlD,MAAM,WAAW,aAAa;IAC7B,kBAAkB,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACpC,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IAC/D,QAAQ,EAAE,eAAe,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACzC,GAAG,EAAE,YAAY,EACjB,WAAW,EAAE,UAAU,EAAE,EACzB,OAAO,GAAE,aAAkB,GACzB,OAAO,CAAC,oBAAoB,CAAC,CAgG/B"}
@@ -1,6 +1,8 @@
1
1
  import { generateGraphQLSchema } from './schema.js';
2
2
  import { createResolvers } from './resolvers.js';
3
+ import { depthLimit } from './depth-limit.js';
3
4
  import { cmsLogger } from '../utils/logger.js';
5
+ const MAX_QUERY_DEPTH = 10;
4
6
  /**
5
7
  * Creates a GraphQL handler for the CMS.
6
8
  * Uses dynamic imports so graphql dependencies are only loaded when GraphQL is enabled.
@@ -19,13 +21,22 @@ export async function createGraphQLHandler(cms, schemaTypes, options = {}) {
19
21
  // Generate GraphQL schema and resolvers from CMS schema types
20
22
  const typeDefs = generateGraphQLSchema(schemaTypes);
21
23
  const resolvers = createResolvers(cms, schemaTypes, defaultPerspective);
24
+ const isProd = process.env.NODE_ENV === 'production';
22
25
  const yogaApp = createYoga({
23
26
  logging: false,
27
+ maskedErrors: isProd,
24
28
  schema: createSchema({
25
29
  typeDefs,
26
30
  resolvers
27
31
  }),
28
- plugins: [useGraphQlJit()],
32
+ plugins: [
33
+ useGraphQlJit(),
34
+ {
35
+ onValidate({ addValidationRule }) {
36
+ addValidationRule(depthLimit(MAX_QUERY_DEPTH));
37
+ }
38
+ }
39
+ ],
29
40
  graphqlEndpoint: endpoint,
30
41
  renderGraphiQL,
31
42
  fetchAPI: { Response },
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../../src/lib/graphql/resolvers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAS,MAAM,kBAAkB,CAAC;AA4H1D,wBAAgB,eAAe,CAC9B,GAAG,EAAE,YAAY,EACjB,WAAW,EAAE,UAAU,EAAE,EACzB,kBAAkB,GAAE,OAAO,GAAG,WAAyB,uBAstBvD"}
1
+ {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../../src/lib/graphql/resolvers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAS,MAAM,kBAAkB,CAAC;AA4H1D,wBAAgB,eAAe,CAC9B,GAAG,EAAE,YAAY,EACjB,WAAW,EAAE,UAAU,EAAE,EACzB,kBAAkB,GAAE,OAAO,GAAG,WAAyB,uBAwtBvD"}
@@ -218,9 +218,7 @@ export function createResolvers(cms, schemaTypes, defaultPerspective = 'publishe
218
218
  const doc = await cms.databaseAdapter.findByDocIdAdvanced(apiContext.organizationId, refId);
219
219
  if (!doc)
220
220
  return null;
221
- const data = perspective === 'published'
222
- ? doc.publishedData
223
- : doc.draftData;
221
+ const data = perspective === 'published' ? doc.publishedData : doc.draftData;
224
222
  if (!data)
225
223
  return null;
226
224
  const refSchemaType = schemaTypes.find((s) => s.name === doc.type);
@@ -355,7 +353,7 @@ export function createResolvers(cms, schemaTypes, defaultPerspective = 'publishe
355
353
  throw error;
356
354
  cmsLogger.error(`GraphQL mutation error:`, error);
357
355
  throw new GraphQLError(error.message, {
358
- extensions: { code: 'BAD_REQUEST', originalError: error.stack }
356
+ extensions: { code: 'BAD_REQUEST' }
359
357
  });
360
358
  }
361
359
  };
@@ -376,7 +374,7 @@ export function createResolvers(cms, schemaTypes, defaultPerspective = 'publishe
376
374
  throw error;
377
375
  cmsLogger.error(`GraphQL mutation error:`, error);
378
376
  throw new GraphQLError(error.message, {
379
- extensions: { code: 'BAD_REQUEST', originalError: error.stack }
377
+ extensions: { code: 'BAD_REQUEST' }
380
378
  });
381
379
  }
382
380
  };
@@ -397,7 +395,7 @@ export function createResolvers(cms, schemaTypes, defaultPerspective = 'publishe
397
395
  throw error;
398
396
  cmsLogger.error(`GraphQL mutation error:`, error);
399
397
  throw new GraphQLError(error.message, {
400
- extensions: { code: 'BAD_REQUEST', originalError: error.stack }
398
+ extensions: { code: 'BAD_REQUEST' }
401
399
  });
402
400
  }
403
401
  };
@@ -545,7 +543,7 @@ export function createResolvers(cms, schemaTypes, defaultPerspective = 'publishe
545
543
  }
546
544
  cmsLogger.error(`GraphQL mutation error:`, error);
547
545
  throw new GraphQLError(error.message, {
548
- extensions: { code: 'BAD_REQUEST', originalError: error.stack }
546
+ extensions: { code: 'BAD_REQUEST' }
549
547
  });
550
548
  }
551
549
  };
@@ -595,7 +593,7 @@ export function createResolvers(cms, schemaTypes, defaultPerspective = 'publishe
595
593
  }
596
594
  cmsLogger.error(`GraphQL mutation error:`, error);
597
595
  throw new GraphQLError(error.message, {
598
- extensions: { code: 'BAD_REQUEST', originalError: error.stack }
596
+ extensions: { code: 'BAD_REQUEST' }
599
597
  });
600
598
  }
601
599
  };
@@ -621,7 +619,7 @@ export function createResolvers(cms, schemaTypes, defaultPerspective = 'publishe
621
619
  }
622
620
  cmsLogger.error(`GraphQL mutation error:`, error);
623
621
  throw new GraphQLError(error.message, {
624
- extensions: { code: 'BAD_REQUEST', originalError: error.stack }
622
+ extensions: { code: 'BAD_REQUEST' }
625
623
  });
626
624
  }
627
625
  };
@@ -665,7 +663,7 @@ export function createResolvers(cms, schemaTypes, defaultPerspective = 'publishe
665
663
  }
666
664
  cmsLogger.error(`GraphQL mutation error:`, error);
667
665
  throw new GraphQLError(error.message, {
668
- extensions: { code: 'BAD_REQUEST', originalError: error.stack }
666
+ extensions: { code: 'BAD_REQUEST' }
669
667
  });
670
668
  }
671
669
  };
@@ -709,7 +707,7 @@ export function createResolvers(cms, schemaTypes, defaultPerspective = 'publishe
709
707
  }
710
708
  cmsLogger.error(`GraphQL mutation error:`, error);
711
709
  throw new GraphQLError(error.message, {
712
- extensions: { code: 'BAD_REQUEST', originalError: error.stack }
710
+ extensions: { code: 'BAD_REQUEST' }
713
711
  });
714
712
  }
715
713
  };
package/dist/hooks.d.ts CHANGED
@@ -7,6 +7,7 @@ import type { StorageAdapter } from './storage/interfaces/storage.js';
7
7
  import type { EmailAdapter } from './email/index.js';
8
8
  import type { AuthProvider } from './auth/provider.js';
9
9
  import type { GraphQLSettings } from './graphql/index.js';
10
+ import type { Logger } from './utils/logger.js';
10
11
  import { RolesService } from './services/roles-service.js';
11
12
  import { CMSEngine } from './engine.js';
12
13
  import { type LocalAPI } from './local-api/index.js';
@@ -20,6 +21,7 @@ export interface CMSInstances {
20
21
  cmsEngine: CMSEngine;
21
22
  localAPI: LocalAPI;
22
23
  rolesService: RolesService;
24
+ logger: Logger;
23
25
  auth?: AuthProvider;
24
26
  graphqlSettings?: GraphQLSettings | null;
25
27
  apiApp: Hono<AphexEnv>;
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/lib/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAKvD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAa,SAAS,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAIN,KAAK,QAAQ,EACb,MAAM,oBAAoB,CAAC;AAG5B,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;CACvB;AAQD;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAGrE;AAgBD,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAwJvD"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/lib/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAK7C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAa,SAAS,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAIN,KAAK,QAAQ,EACb,MAAM,oBAAoB,CAAC;AAG5B,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;CACvB;AAQD;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAGrE;AAgBD,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CA0JvD"}
package/dist/hooks.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { handleAuthHook } from './auth/auth-hooks.js';
2
- import { cmsLogger, setLogLevel } from './utils/logger.js';
2
+ import { cmsLogger, setLogLevel, setLogger } from './utils/logger.js';
3
3
  import { createStorageAdapter as createStorageAdapterProvider } from './storage/providers/storage.js';
4
4
  import { AssetService as AssetServiceClass } from './services/asset-service.js';
5
5
  import { RolesService } from './services/roles-service.js';
@@ -43,7 +43,8 @@ export function createCMSHook(config) {
43
43
  throw new Error('[CMS] createCMSHook received an undefined config. ' +
44
44
  'If this happens during HMR, the config module may not have re-executed yet.');
45
45
  }
46
- // Apply log level from config (if provided)
46
+ if (config.logger)
47
+ setLogger(config.logger);
47
48
  if (config.logLevel)
48
49
  setLogLevel(config.logLevel);
49
50
  // Stash the config in module scope so the HMR plugin can replace it via
@@ -114,6 +115,7 @@ export function createCMSHook(config) {
114
115
  cmsEngine,
115
116
  localAPI,
116
117
  rolesService,
118
+ logger: cmsLogger,
117
119
  auth: currentConfig.auth?.provider,
118
120
  apiApp
119
121
  }, currentConfig.schemaTypes, graphqlConfig);
@@ -145,6 +147,7 @@ export function createCMSHook(config) {
145
147
  cmsEngine: cmsEngine,
146
148
  localAPI: localAPI,
147
149
  rolesService,
150
+ logger: cmsLogger,
148
151
  auth: currentConfig.auth?.provider,
149
152
  graphqlSettings,
150
153
  apiApp
@@ -1,5 +1,5 @@
1
1
  import type { ApiResponse } from './types.js';
2
- import type { ApiKeyPermission, CreateApiKeyRequest } from './schemas/api-keys.js';
2
+ import type { ApiKeyPermission } from './schemas/api-keys.js';
3
3
  import type { Capability } from '../types/capabilities.js';
4
4
  export interface ApiKey {
5
5
  id: string;
@@ -13,7 +13,12 @@ export interface ApiKey {
13
13
  lastRequest: Date | null;
14
14
  expiresAt: Date | null;
15
15
  }
16
- export type CreateApiKeyData = CreateApiKeyRequest;
16
+ export interface CreateApiKeyData {
17
+ name: string;
18
+ permissions?: ApiKeyPermission[];
19
+ capabilities?: Capability[];
20
+ expiresInDays?: number;
21
+ }
17
22
  export interface CreateApiKeyResponse {
18
23
  apiKey: ApiKey & {
19
24
  key: string;
@@ -23,7 +28,7 @@ export declare class ApiKeysApi {
23
28
  /**
24
29
  * Create a new API key
25
30
  */
26
- static create(data: CreateApiKeyRequest): Promise<ApiResponse<CreateApiKeyResponse>>;
31
+ static create(data: CreateApiKeyData): Promise<ApiResponse<CreateApiKeyResponse>>;
27
32
  /**
28
33
  * Delete an API key
29
34
  */
@@ -1 +1 @@
1
- {"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../../../src/lib/api/api-keys.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,WAAW,MAAM;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,2EAA2E;IAC3E,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAC5B,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACvB;AAID,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAEnD,MAAM,WAAW,oBAAoB;IACpC,MAAM,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACjC;AAED,qBAAa,UAAU;IACtB;;OAEG;WACU,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAI1F;;OAEG;WACU,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAG3E;AAED,eAAO,MAAM,OAAO;;;CAGnB,CAAC"}
1
+ {"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../../../src/lib/api/api-keys.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,WAAW,MAAM;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,2EAA2E;IAC3E,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAC5B,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACjC,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACpC,MAAM,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACjC;AAED,qBAAa,UAAU;IACtB;;OAEG;WACU,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAIvF;;OAEG;WACU,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAG3E;AAED,eAAO,MAAM,OAAO;;;CAGnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"api-keys.js","sourceRoot":"","sources":["../../../src/lib/api/api-keys.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AA0BrC,MAAM,OAAO,UAAU;IACtB;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAyB;QAC5C,OAAO,SAAS,CAAC,IAAI,CAAuB,oBAAoB,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAU;QAC7B,OAAO,SAAS,CAAC,MAAM,CAAuB,sBAAsB,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;CACD;AAED,MAAM,CAAC,MAAM,OAAO,GAAG;IACtB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;IAC1C,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;CAC1C,CAAC"}
1
+ {"version":3,"file":"api-keys.js","sourceRoot":"","sources":["../../../src/lib/api/api-keys.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AA6BrC,MAAM,OAAO,UAAU;IACtB;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAsB;QACzC,OAAO,SAAS,CAAC,IAAI,CAAuB,oBAAoB,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAU;QAC7B,OAAO,SAAS,CAAC,MAAM,CAAuB,sBAAsB,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;CACD;AAED,MAAM,CAAC,MAAM,OAAO,GAAG;IACtB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;IAC1C,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;CAC1C,CAAC"}
@@ -72,7 +72,7 @@ export const deleteAssetResponse = z.object({
72
72
  });
73
73
  // ---------- DELETE /assets/bulk ----------
74
74
  export const bulkDeleteAssetsRequest = z.object({
75
- ids: z.array(z.string()).min(1)
75
+ ids: z.array(z.string()).min(1).max(100)
76
76
  });
77
77
  export const bulkDeleteAssetsResponse = z.object({
78
78
  success: z.literal(true),
@@ -1 +1 @@
1
- {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../../src/lib/api/schemas/assets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../../src/lib/api/schemas/assets.ts"],"names":[],"mappings":"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"}