@aphexcms/cms-core 2.0.9 → 2.0.11

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 (381) hide show
  1. package/LICENSE +21 -0
  2. package/dist/api/api-keys.d.ts +8 -7
  3. package/dist/api/api-keys.d.ts.map +1 -1
  4. package/dist/api/assets.d.ts +7 -22
  5. package/dist/api/assets.d.ts.map +1 -1
  6. package/dist/api/assets.js +1 -10
  7. package/dist/api/documents.d.ts +17 -16
  8. package/dist/api/documents.d.ts.map +1 -1
  9. package/dist/api/documents.js +2 -2
  10. package/dist/api/index.d.ts +1 -0
  11. package/dist/api/index.d.ts.map +1 -1
  12. package/dist/api/index.js +1 -0
  13. package/dist/api/organizations.d.ts +15 -35
  14. package/dist/api/organizations.d.ts.map +1 -1
  15. package/dist/api/roles.d.ts +22 -0
  16. package/dist/api/roles.d.ts.map +1 -0
  17. package/dist/api/roles.js +26 -0
  18. package/dist/api/schemas/api-keys.d.ts +62 -0
  19. package/dist/api/schemas/api-keys.d.ts.map +1 -0
  20. package/dist/api/schemas/api-keys.js +28 -0
  21. package/dist/api/schemas/assets.d.ts +174 -0
  22. package/dist/api/schemas/assets.d.ts.map +1 -0
  23. package/dist/api/schemas/assets.js +99 -0
  24. package/dist/api/schemas/documents.d.ts +325 -0
  25. package/dist/api/schemas/documents.d.ts.map +1 -0
  26. package/dist/api/schemas/documents.js +161 -0
  27. package/dist/api/schemas/organizations.d.ts +41 -0
  28. package/dist/api/schemas/organizations.d.ts.map +1 -0
  29. package/dist/api/schemas/organizations.js +56 -0
  30. package/dist/api/schemas/roles.d.ts +77 -0
  31. package/dist/api/schemas/roles.d.ts.map +1 -0
  32. package/dist/api/schemas/roles.js +42 -0
  33. package/dist/api/schemas/user.d.ts +10 -0
  34. package/dist/api/schemas/user.d.ts.map +1 -0
  35. package/dist/api/schemas/user.js +11 -0
  36. package/dist/api/user.d.ts +4 -6
  37. package/dist/api/user.d.ts.map +1 -1
  38. package/dist/app-augment.d.ts +32 -0
  39. package/dist/app-augment.d.ts.map +1 -0
  40. package/dist/app-augment.js +18 -0
  41. package/dist/auth/auth-hooks.d.ts +2 -1
  42. package/dist/auth/auth-hooks.d.ts.map +1 -1
  43. package/dist/auth/auth-hooks.js +22 -2
  44. package/dist/auth/provider.d.ts +5 -0
  45. package/dist/auth/provider.d.ts.map +1 -1
  46. package/dist/cli/index.js +0 -0
  47. package/dist/client/index.d.ts +4 -0
  48. package/dist/client/index.d.ts.map +1 -1
  49. package/dist/client/index.js +7 -0
  50. package/dist/components/AdminApp.svelte +306 -142
  51. package/dist/components/AdminApp.svelte.d.ts +8 -0
  52. package/dist/components/AdminApp.svelte.d.ts.map +1 -1
  53. package/dist/components/admin/DocumentEditor.svelte +653 -365
  54. package/dist/components/admin/DocumentEditor.svelte.d.ts +2 -0
  55. package/dist/components/admin/DocumentEditor.svelte.d.ts.map +1 -1
  56. package/dist/components/admin/DocumentVersionPanel.svelte +57 -44
  57. package/dist/components/admin/DocumentVersionPanel.svelte.d.ts.map +1 -1
  58. package/dist/components/admin/MediaBrowser.svelte +70 -30
  59. package/dist/components/admin/MediaBrowser.svelte.d.ts.map +1 -1
  60. package/dist/components/admin/ObjectModal.svelte +70 -95
  61. package/dist/components/admin/ObjectModal.svelte.d.ts +1 -2
  62. package/dist/components/admin/ObjectModal.svelte.d.ts.map +1 -1
  63. package/dist/components/admin/PermissionsDebug.svelte +119 -0
  64. package/dist/components/admin/PermissionsDebug.svelte.d.ts +4 -0
  65. package/dist/components/admin/PermissionsDebug.svelte.d.ts.map +1 -0
  66. package/dist/components/admin/SchemaField.svelte +3 -1
  67. package/dist/components/admin/SchemaField.svelte.d.ts.map +1 -1
  68. package/dist/components/admin/confirm-dialog/ConfirmDialogHost.svelte +35 -0
  69. package/dist/components/admin/confirm-dialog/ConfirmDialogHost.svelte.d.ts +19 -0
  70. package/dist/components/admin/confirm-dialog/ConfirmDialogHost.svelte.d.ts.map +1 -0
  71. package/dist/components/admin/confirm-dialog/confirm-dialog.svelte.d.ts +16 -0
  72. package/dist/components/admin/confirm-dialog/confirm-dialog.svelte.d.ts.map +1 -0
  73. package/dist/components/admin/confirm-dialog/confirm-dialog.svelte.js +29 -0
  74. package/dist/components/admin/fields/ArrayField.svelte +104 -108
  75. package/dist/components/admin/fields/ArrayField.svelte.d.ts.map +1 -1
  76. package/dist/components/admin/fields/FileField.svelte +22 -17
  77. package/dist/components/admin/fields/FileField.svelte.d.ts.map +1 -1
  78. package/dist/components/admin/fields/ImageField.svelte +21 -15
  79. package/dist/components/admin/fields/ImageField.svelte.d.ts.map +1 -1
  80. package/dist/components/admin/fields/ReferenceField.svelte +142 -112
  81. package/dist/components/admin/fields/ReferenceField.svelte.d.ts.map +1 -1
  82. package/dist/components/admin/fields/TextareaField.svelte +4 -3
  83. package/dist/components/admin/fields/TextareaField.svelte.d.ts +2 -2
  84. package/dist/components/admin/fields/TextareaField.svelte.d.ts.map +1 -1
  85. package/dist/components/layout/Sidebar.svelte +21 -11
  86. package/dist/components/layout/Sidebar.svelte.d.ts.map +1 -1
  87. package/dist/components/layout/sidebar/NavMain.svelte +1 -0
  88. package/dist/db/interfaces/document.d.ts.map +1 -1
  89. package/dist/db/interfaces/index.d.ts +3 -1
  90. package/dist/db/interfaces/index.d.ts.map +1 -1
  91. package/dist/db/interfaces/organization.d.ts +1 -1
  92. package/dist/db/interfaces/organization.d.ts.map +1 -1
  93. package/dist/db/interfaces/role.d.ts +25 -0
  94. package/dist/db/interfaces/role.d.ts.map +1 -0
  95. package/dist/db/interfaces/role.js +1 -0
  96. package/dist/engine.d.ts.map +1 -1
  97. package/dist/engine.js +5 -0
  98. package/dist/field-access.d.ts +30 -0
  99. package/dist/field-access.d.ts.map +1 -0
  100. package/dist/field-access.js +79 -0
  101. package/dist/hooks.d.ts +2 -0
  102. package/dist/hooks.d.ts.map +1 -1
  103. package/dist/hooks.js +23 -13
  104. package/dist/lib/api/api-keys.d.ts +8 -7
  105. package/dist/lib/api/api-keys.d.ts.map +1 -1
  106. package/dist/lib/api/api-keys.js.map +1 -1
  107. package/dist/lib/api/assets.d.ts +7 -22
  108. package/dist/lib/api/assets.d.ts.map +1 -1
  109. package/dist/lib/api/assets.js +1 -10
  110. package/dist/lib/api/assets.js.map +1 -1
  111. package/dist/lib/api/documents.d.ts +17 -16
  112. package/dist/lib/api/documents.d.ts.map +1 -1
  113. package/dist/lib/api/documents.js +2 -2
  114. package/dist/lib/api/documents.js.map +1 -1
  115. package/dist/lib/api/index.d.ts +1 -0
  116. package/dist/lib/api/index.d.ts.map +1 -1
  117. package/dist/lib/api/index.js +1 -0
  118. package/dist/lib/api/index.js.map +1 -1
  119. package/dist/lib/api/organizations.d.ts +15 -35
  120. package/dist/lib/api/organizations.d.ts.map +1 -1
  121. package/dist/lib/api/organizations.js.map +1 -1
  122. package/dist/lib/api/roles.d.ts +22 -0
  123. package/dist/lib/api/roles.d.ts.map +1 -0
  124. package/dist/lib/api/roles.js +27 -0
  125. package/dist/lib/api/roles.js.map +1 -0
  126. package/dist/lib/api/schemas/api-keys.d.ts +62 -0
  127. package/dist/lib/api/schemas/api-keys.d.ts.map +1 -0
  128. package/dist/lib/api/schemas/api-keys.js +29 -0
  129. package/dist/lib/api/schemas/api-keys.js.map +1 -0
  130. package/dist/lib/api/schemas/assets.d.ts +174 -0
  131. package/dist/lib/api/schemas/assets.d.ts.map +1 -0
  132. package/dist/lib/api/schemas/assets.js +100 -0
  133. package/dist/lib/api/schemas/assets.js.map +1 -0
  134. package/dist/lib/api/schemas/documents.d.ts +325 -0
  135. package/dist/lib/api/schemas/documents.d.ts.map +1 -0
  136. package/dist/lib/api/schemas/documents.js +162 -0
  137. package/dist/lib/api/schemas/documents.js.map +1 -0
  138. package/dist/lib/api/schemas/organizations.d.ts +41 -0
  139. package/dist/lib/api/schemas/organizations.d.ts.map +1 -0
  140. package/dist/lib/api/schemas/organizations.js +57 -0
  141. package/dist/lib/api/schemas/organizations.js.map +1 -0
  142. package/dist/lib/api/schemas/roles.d.ts +77 -0
  143. package/dist/lib/api/schemas/roles.d.ts.map +1 -0
  144. package/dist/lib/api/schemas/roles.js +43 -0
  145. package/dist/lib/api/schemas/roles.js.map +1 -0
  146. package/dist/lib/api/schemas/user.d.ts +10 -0
  147. package/dist/lib/api/schemas/user.d.ts.map +1 -0
  148. package/dist/lib/api/schemas/user.js +12 -0
  149. package/dist/lib/api/schemas/user.js.map +1 -0
  150. package/dist/lib/api/user.d.ts +4 -6
  151. package/dist/lib/api/user.d.ts.map +1 -1
  152. package/dist/lib/api/user.js.map +1 -1
  153. package/dist/lib/app-augment.d.ts +32 -0
  154. package/dist/lib/app-augment.d.ts.map +1 -0
  155. package/dist/lib/app-augment.js +19 -0
  156. package/dist/lib/app-augment.js.map +1 -0
  157. package/dist/lib/auth/auth-hooks.d.ts +2 -1
  158. package/dist/lib/auth/auth-hooks.d.ts.map +1 -1
  159. package/dist/lib/auth/auth-hooks.js +22 -2
  160. package/dist/lib/auth/auth-hooks.js.map +1 -1
  161. package/dist/lib/auth/provider.d.ts +5 -0
  162. package/dist/lib/auth/provider.d.ts.map +1 -1
  163. package/dist/lib/client/index.d.ts +4 -0
  164. package/dist/lib/client/index.d.ts.map +1 -1
  165. package/dist/lib/client/index.js +7 -0
  166. package/dist/lib/client/index.js.map +1 -1
  167. package/dist/lib/components/admin/confirm-dialog/confirm-dialog.svelte.d.ts +16 -0
  168. package/dist/lib/components/admin/confirm-dialog/confirm-dialog.svelte.d.ts.map +1 -0
  169. package/dist/lib/components/admin/confirm-dialog/confirm-dialog.svelte.js +30 -0
  170. package/dist/lib/components/admin/confirm-dialog/confirm-dialog.svelte.js.map +1 -0
  171. package/dist/lib/db/interfaces/document.d.ts.map +1 -1
  172. package/dist/lib/db/interfaces/index.d.ts +3 -1
  173. package/dist/lib/db/interfaces/index.d.ts.map +1 -1
  174. package/dist/lib/db/interfaces/organization.d.ts +1 -1
  175. package/dist/lib/db/interfaces/organization.d.ts.map +1 -1
  176. package/dist/lib/db/interfaces/role.d.ts +25 -0
  177. package/dist/lib/db/interfaces/role.d.ts.map +1 -0
  178. package/dist/lib/db/interfaces/role.js +2 -0
  179. package/dist/lib/db/interfaces/role.js.map +1 -0
  180. package/dist/lib/engine.d.ts.map +1 -1
  181. package/dist/lib/engine.js +5 -0
  182. package/dist/lib/engine.js.map +1 -1
  183. package/dist/lib/field-access.d.ts +30 -0
  184. package/dist/lib/field-access.d.ts.map +1 -0
  185. package/dist/lib/field-access.js +80 -0
  186. package/dist/lib/field-access.js.map +1 -0
  187. package/dist/lib/hooks.d.ts +2 -0
  188. package/dist/lib/hooks.d.ts.map +1 -1
  189. package/dist/lib/hooks.js +23 -13
  190. package/dist/lib/hooks.js.map +1 -1
  191. package/dist/lib/local-api/collection-api.d.ts +2 -0
  192. package/dist/lib/local-api/collection-api.d.ts.map +1 -1
  193. package/dist/lib/local-api/collection-api.js +98 -30
  194. package/dist/lib/local-api/collection-api.js.map +1 -1
  195. package/dist/lib/local-api/index.d.ts.map +1 -1
  196. package/dist/lib/local-api/index.js.map +1 -1
  197. package/dist/lib/local-api/permissions.d.ts +26 -26
  198. package/dist/lib/local-api/permissions.d.ts.map +1 -1
  199. package/dist/lib/local-api/permissions.js +122 -80
  200. package/dist/lib/local-api/permissions.js.map +1 -1
  201. package/dist/lib/permissions-context.svelte.d.ts +44 -0
  202. package/dist/lib/permissions-context.svelte.d.ts.map +1 -0
  203. package/dist/lib/permissions-context.svelte.js +80 -0
  204. package/dist/lib/permissions-context.svelte.js.map +1 -0
  205. package/dist/lib/routes/assets-bulk.d.ts.map +1 -1
  206. package/dist/lib/routes/assets-bulk.js +10 -3
  207. package/dist/lib/routes/assets-bulk.js.map +1 -1
  208. package/dist/lib/routes/assets-by-id.d.ts.map +1 -1
  209. package/dist/lib/routes/assets-by-id.js +11 -1
  210. package/dist/lib/routes/assets-by-id.js.map +1 -1
  211. package/dist/lib/routes/assets-references-counts.d.ts.map +1 -1
  212. package/dist/lib/routes/assets-references-counts.js +12 -2
  213. package/dist/lib/routes/assets-references-counts.js.map +1 -1
  214. package/dist/lib/routes/assets.d.ts.map +1 -1
  215. package/dist/lib/routes/assets.js +14 -13
  216. package/dist/lib/routes/assets.js.map +1 -1
  217. package/dist/lib/routes/document-versions.d.ts.map +1 -1
  218. package/dist/lib/routes/document-versions.js +16 -2
  219. package/dist/lib/routes/document-versions.js.map +1 -1
  220. package/dist/lib/routes/documents-by-id.d.ts.map +1 -1
  221. package/dist/lib/routes/documents-by-id.js +15 -3
  222. package/dist/lib/routes/documents-by-id.js.map +1 -1
  223. package/dist/lib/routes/documents-query.d.ts.map +1 -1
  224. package/dist/lib/routes/documents-query.js +13 -10
  225. package/dist/lib/routes/documents-query.js.map +1 -1
  226. package/dist/lib/routes/documents.d.ts.map +1 -1
  227. package/dist/lib/routes/documents.js +29 -26
  228. package/dist/lib/routes/documents.js.map +1 -1
  229. package/dist/lib/routes/organizations-by-id.d.ts.map +1 -1
  230. package/dist/lib/routes/organizations-by-id.js +17 -4
  231. package/dist/lib/routes/organizations-by-id.js.map +1 -1
  232. package/dist/lib/routes/organizations-invitations.d.ts.map +1 -1
  233. package/dist/lib/routes/organizations-invitations.js +48 -18
  234. package/dist/lib/routes/organizations-invitations.js.map +1 -1
  235. package/dist/lib/routes/organizations-members.d.ts.map +1 -1
  236. package/dist/lib/routes/organizations-members.js +24 -18
  237. package/dist/lib/routes/organizations-members.js.map +1 -1
  238. package/dist/lib/routes/organizations-switch.d.ts.map +1 -1
  239. package/dist/lib/routes/organizations-switch.js +7 -3
  240. package/dist/lib/routes/organizations-switch.js.map +1 -1
  241. package/dist/lib/routes/organizations.d.ts.map +1 -1
  242. package/dist/lib/routes/organizations.js +11 -5
  243. package/dist/lib/routes/organizations.js.map +1 -1
  244. package/dist/lib/routes/roles-by-name.d.ts +4 -0
  245. package/dist/lib/routes/roles-by-name.d.ts.map +1 -0
  246. package/dist/lib/routes/roles-by-name.js +112 -0
  247. package/dist/lib/routes/roles-by-name.js.map +1 -0
  248. package/dist/lib/routes/roles.d.ts +4 -0
  249. package/dist/lib/routes/roles.d.ts.map +1 -0
  250. package/dist/lib/routes/roles.js +91 -0
  251. package/dist/lib/routes/roles.js.map +1 -0
  252. package/dist/lib/routes/user-preferences.d.ts.map +1 -1
  253. package/dist/lib/routes/user-preferences.js +7 -13
  254. package/dist/lib/routes/user-preferences.js.map +1 -1
  255. package/dist/lib/routes-exports.d.ts +2 -0
  256. package/dist/lib/routes-exports.d.ts.map +1 -1
  257. package/dist/lib/routes-exports.js +3 -0
  258. package/dist/lib/routes-exports.js.map +1 -1
  259. package/dist/lib/save-state-context.svelte.d.ts +8 -0
  260. package/dist/lib/save-state-context.svelte.d.ts.map +1 -0
  261. package/dist/lib/save-state-context.svelte.js +9 -0
  262. package/dist/lib/save-state-context.svelte.js.map +1 -0
  263. package/dist/lib/schema-utils/validator.d.ts.map +1 -1
  264. package/dist/lib/schema-utils/validator.js +14 -0
  265. package/dist/lib/schema-utils/validator.js.map +1 -1
  266. package/dist/lib/server/index.d.ts +1 -0
  267. package/dist/lib/server/index.d.ts.map +1 -1
  268. package/dist/lib/server/index.js +1 -0
  269. package/dist/lib/server/index.js.map +1 -1
  270. package/dist/lib/services/index.d.ts +1 -0
  271. package/dist/lib/services/index.d.ts.map +1 -1
  272. package/dist/lib/services/index.js +1 -0
  273. package/dist/lib/services/index.js.map +1 -1
  274. package/dist/lib/services/roles-service.d.ts +35 -0
  275. package/dist/lib/services/roles-service.d.ts.map +1 -0
  276. package/dist/lib/services/roles-service.js +91 -0
  277. package/dist/lib/services/roles-service.js.map +1 -0
  278. package/dist/lib/services/version-service.d.ts.map +1 -1
  279. package/dist/lib/services/version-service.js.map +1 -1
  280. package/dist/lib/types/auth.d.ts +43 -9
  281. package/dist/lib/types/auth.d.ts.map +1 -1
  282. package/dist/lib/types/auth.js +31 -26
  283. package/dist/lib/types/auth.js.map +1 -1
  284. package/dist/lib/types/capabilities.d.ts +104 -0
  285. package/dist/lib/types/capabilities.d.ts.map +1 -0
  286. package/dist/lib/types/capabilities.js +217 -0
  287. package/dist/lib/types/capabilities.js.map +1 -0
  288. package/dist/lib/types/index.d.ts +1 -0
  289. package/dist/lib/types/index.d.ts.map +1 -1
  290. package/dist/lib/types/index.js +1 -0
  291. package/dist/lib/types/index.js.map +1 -1
  292. package/dist/lib/types/organization.d.ts +13 -4
  293. package/dist/lib/types/organization.d.ts.map +1 -1
  294. package/dist/lib/types/schemas.d.ts +71 -0
  295. package/dist/lib/types/schemas.d.ts.map +1 -1
  296. package/dist/lib/types/sidebar.d.ts +1 -1
  297. package/dist/lib/types/sidebar.d.ts.map +1 -1
  298. package/dist/lib/utils/mime-detect.d.ts.map +1 -1
  299. package/dist/lib/utils/mime-detect.js +28 -6
  300. package/dist/lib/utils/mime-detect.js.map +1 -1
  301. package/dist/local-api/collection-api.d.ts +2 -0
  302. package/dist/local-api/collection-api.d.ts.map +1 -1
  303. package/dist/local-api/collection-api.js +98 -30
  304. package/dist/local-api/index.d.ts.map +1 -1
  305. package/dist/local-api/permissions.d.ts +26 -26
  306. package/dist/local-api/permissions.d.ts.map +1 -1
  307. package/dist/local-api/permissions.js +122 -80
  308. package/dist/permissions-context.svelte.d.ts +44 -0
  309. package/dist/permissions-context.svelte.d.ts.map +1 -0
  310. package/dist/permissions-context.svelte.js +79 -0
  311. package/dist/plugins/README.md +20 -20
  312. package/dist/routes/assets-bulk.d.ts.map +1 -1
  313. package/dist/routes/assets-bulk.js +10 -3
  314. package/dist/routes/assets-by-id.d.ts.map +1 -1
  315. package/dist/routes/assets-by-id.js +11 -1
  316. package/dist/routes/assets-references-counts.d.ts.map +1 -1
  317. package/dist/routes/assets-references-counts.js +12 -2
  318. package/dist/routes/assets.d.ts.map +1 -1
  319. package/dist/routes/assets.js +14 -13
  320. package/dist/routes/document-versions.d.ts.map +1 -1
  321. package/dist/routes/document-versions.js +16 -2
  322. package/dist/routes/documents-by-id.d.ts.map +1 -1
  323. package/dist/routes/documents-by-id.js +15 -3
  324. package/dist/routes/documents-query.d.ts.map +1 -1
  325. package/dist/routes/documents-query.js +13 -10
  326. package/dist/routes/documents.d.ts.map +1 -1
  327. package/dist/routes/documents.js +29 -26
  328. package/dist/routes/organizations-by-id.d.ts.map +1 -1
  329. package/dist/routes/organizations-by-id.js +17 -4
  330. package/dist/routes/organizations-invitations.d.ts.map +1 -1
  331. package/dist/routes/organizations-invitations.js +48 -18
  332. package/dist/routes/organizations-members.d.ts.map +1 -1
  333. package/dist/routes/organizations-members.js +24 -18
  334. package/dist/routes/organizations-switch.d.ts.map +1 -1
  335. package/dist/routes/organizations-switch.js +7 -3
  336. package/dist/routes/organizations.d.ts.map +1 -1
  337. package/dist/routes/organizations.js +11 -5
  338. package/dist/routes/roles-by-name.d.ts +4 -0
  339. package/dist/routes/roles-by-name.d.ts.map +1 -0
  340. package/dist/routes/roles-by-name.js +111 -0
  341. package/dist/routes/roles.d.ts +4 -0
  342. package/dist/routes/roles.d.ts.map +1 -0
  343. package/dist/routes/roles.js +90 -0
  344. package/dist/routes/user-preferences.d.ts.map +1 -1
  345. package/dist/routes/user-preferences.js +7 -13
  346. package/dist/routes-exports.d.ts +2 -0
  347. package/dist/routes-exports.d.ts.map +1 -1
  348. package/dist/routes-exports.js +3 -0
  349. package/dist/save-state-context.svelte.d.ts +8 -0
  350. package/dist/save-state-context.svelte.d.ts.map +1 -0
  351. package/dist/save-state-context.svelte.js +8 -0
  352. package/dist/schema-utils/validator.d.ts.map +1 -1
  353. package/dist/schema-utils/validator.js +14 -0
  354. package/dist/server/index.d.ts +1 -0
  355. package/dist/server/index.d.ts.map +1 -1
  356. package/dist/server/index.js +1 -0
  357. package/dist/services/index.d.ts +1 -0
  358. package/dist/services/index.d.ts.map +1 -1
  359. package/dist/services/index.js +1 -0
  360. package/dist/services/roles-service.d.ts +35 -0
  361. package/dist/services/roles-service.d.ts.map +1 -0
  362. package/dist/services/roles-service.js +90 -0
  363. package/dist/services/version-service.d.ts.map +1 -1
  364. package/dist/types/auth.d.ts +43 -9
  365. package/dist/types/auth.d.ts.map +1 -1
  366. package/dist/types/auth.js +31 -26
  367. package/dist/types/capabilities.d.ts +104 -0
  368. package/dist/types/capabilities.d.ts.map +1 -0
  369. package/dist/types/capabilities.js +216 -0
  370. package/dist/types/index.d.ts +1 -0
  371. package/dist/types/index.d.ts.map +1 -1
  372. package/dist/types/index.js +1 -0
  373. package/dist/types/organization.d.ts +13 -4
  374. package/dist/types/organization.d.ts.map +1 -1
  375. package/dist/types/schemas.d.ts +71 -0
  376. package/dist/types/schemas.d.ts.map +1 -1
  377. package/dist/types/sidebar.d.ts +1 -1
  378. package/dist/types/sidebar.d.ts.map +1 -1
  379. package/dist/utils/mime-detect.d.ts.map +1 -1
  380. package/dist/utils/mime-detect.js +28 -6
  381. package/package.json +142 -138
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Benjamin Sinidol
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,18 +1,19 @@
1
1
  import type { ApiResponse } from './types.js';
2
+ import type { ApiKeyPermission, CreateApiKeyRequest } from './schemas/api-keys.js';
3
+ import type { Capability } from '../types/capabilities.js';
2
4
  export interface ApiKey {
3
5
  id: string;
4
6
  name: string | null;
5
7
  key?: string;
6
- permissions: ('read' | 'write')[];
8
+ /** Legacy coarse scopes; preserved for UI compatibility. */
9
+ permissions: ApiKeyPermission[];
10
+ /** Fine-grained capability allowlist (if this key was issued with one). */
11
+ capabilities?: Capability[];
7
12
  createdAt: Date | null;
8
13
  lastRequest: Date | null;
9
14
  expiresAt: Date | null;
10
15
  }
11
- export interface CreateApiKeyData {
12
- name: string;
13
- permissions: ('read' | 'write')[];
14
- expiresInDays?: number;
15
- }
16
+ export type CreateApiKeyData = CreateApiKeyRequest;
16
17
  export interface CreateApiKeyResponse {
17
18
  apiKey: ApiKey & {
18
19
  key: string;
@@ -22,7 +23,7 @@ export declare class ApiKeysApi {
22
23
  /**
23
24
  * Create a new API key
24
25
  */
25
- static create(data: CreateApiKeyData): Promise<ApiResponse<CreateApiKeyResponse>>;
26
+ static create(data: CreateApiKeyRequest): Promise<ApiResponse<CreateApiKeyResponse>>;
26
27
  /**
27
28
  * Delete an API key
28
29
  */
@@ -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;AAE3C,MAAM,WAAW,MAAM;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;IAClC,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,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;IAClC,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
+ {"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,29 +1,14 @@
1
- import type { Asset } from '../types/asset.js';
2
1
  import type { ApiResponse } from './types.js';
3
- export interface AssetFilters {
4
- assetType?: 'image' | 'file';
5
- mimeType?: string;
6
- search?: string;
7
- limit?: number;
8
- offset?: number;
9
- }
10
- export interface AssetReference {
11
- documentId: string;
12
- type: string;
13
- title: string;
14
- status: string | null;
15
- }
16
- export interface UpdateAssetData {
17
- title?: string;
18
- description?: string;
19
- alt?: string;
20
- creditLine?: string;
21
- }
2
+ import type { Asset } from '../types/asset.js';
3
+ import type { AssetReference, ListAssetsQuery, UpdateAssetRequest } from './schemas/assets.js';
4
+ export type AssetFilters = ListAssetsQuery;
5
+ export type UpdateAssetData = UpdateAssetRequest;
6
+ export type { AssetReference };
22
7
  export declare class AssetsApi {
23
8
  /**
24
9
  * List assets with optional filters
25
10
  */
26
- static list(filters?: AssetFilters): Promise<ApiResponse<Asset[]>>;
11
+ static list(filters?: ListAssetsQuery): Promise<ApiResponse<Asset[]>>;
27
12
  /**
28
13
  * Get asset by ID
29
14
  */
@@ -36,7 +21,7 @@ export declare class AssetsApi {
36
21
  /**
37
22
  * Update asset metadata
38
23
  */
39
- static update(id: string, data: UpdateAssetData): Promise<ApiResponse<Asset>>;
24
+ static update(id: string, data: UpdateAssetRequest): Promise<ApiResponse<Asset>>;
40
25
  /**
41
26
  * Delete an asset
42
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/lib/api/assets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,WAAW,YAAY;IAC5B,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,SAAS;IACrB;;OAEG;WACU,IAAI,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;IAaxE;;OAEG;WACU,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAI7D;;;OAGG;WACU,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAIpE;;OAEG;WACU,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAInF;;OAEG;WACU,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAI3E;;OAEG;WACU,UAAU,CACtB,GAAG,EAAE,MAAM,EAAE,GACX,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAI5D;;OAEG;WACU,aAAa,CACzB,EAAE,EAAE,MAAM,GACR,OAAO,CAAC,WAAW,CAAC;QAAE,UAAU,EAAE,cAAc,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAMxE;;OAEG;WACU,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAG5F;AAGD,eAAO,MAAM,MAAM;;;;;;;;;CASlB,CAAC"}
1
+ {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/lib/api/assets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAI5F,MAAM,MAAM,YAAY,GAAG,eAAe,CAAC;AAC3C,MAAM,MAAM,eAAe,GAAG,kBAAkB,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B,qBAAa,SAAS;IACrB;;OAEG;WACU,IAAI,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;IAI3E;;OAEG;WACU,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAI7D;;;OAGG;WACU,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAIpE;;OAEG;WACU,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAItF;;OAEG;WACU,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAI3E;;OAEG;WACU,UAAU,CACtB,GAAG,EAAE,MAAM,EAAE,GACX,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAI5D;;OAEG;WACU,aAAa,CACzB,EAAE,EAAE,MAAM,GACR,OAAO,CAAC,WAAW,CAAC;QAAE,UAAU,EAAE,cAAc,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAMxE;;OAEG;WACU,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAG5F;AAGD,eAAO,MAAM,MAAM;;;;;;;;;CASlB,CAAC"}
@@ -5,16 +5,7 @@ export class AssetsApi {
5
5
  * List assets with optional filters
6
6
  */
7
7
  static async list(filters) {
8
- const params = new URLSearchParams();
9
- if (filters) {
10
- Object.entries(filters).forEach(([key, value]) => {
11
- if (value !== undefined) {
12
- params.append(key, String(value));
13
- }
14
- });
15
- }
16
- const query = params.toString();
17
- return apiClient.get(`/assets${query ? `?${query}` : ''}`);
8
+ return apiClient.get('/assets', filters);
18
9
  }
19
10
  /**
20
11
  * Get asset by ID
@@ -1,30 +1,34 @@
1
- import type { Document, DocumentListParams, CreateDocumentData, UpdateDocumentData, ApiResponse } from './types.js';
1
+ import type { ApiResponse } from './types.js';
2
+ import type { DocumentDTO, ListDocumentsQuery, CreateDocumentRequest, UpdateDocumentRequest, DocumentVersion, ListVersionsQuery } from './schemas/documents.js';
3
+ export type DocumentListParams = ListDocumentsQuery;
2
4
  export declare class DocumentsApi {
3
5
  /**
4
6
  * List documents with optional filtering
5
7
  * NOTE: Requires 'type' parameter - use getByType() for convenience
6
8
  */
7
- static list(params?: DocumentListParams): Promise<ApiResponse<Document[]>>;
9
+ static list(params?: ListDocumentsQuery): Promise<ApiResponse<DocumentDTO[]>>;
8
10
  /**
9
11
  * Get document by ID
10
12
  */
11
- static getById(id: string): Promise<ApiResponse<Document>>;
13
+ static getById(id: string): Promise<ApiResponse<DocumentDTO>>;
12
14
  /**
13
15
  * Create new document
14
16
  */
15
- static create(data: CreateDocumentData): Promise<ApiResponse<Document>>;
17
+ static create(data: CreateDocumentRequest): Promise<ApiResponse<DocumentDTO>>;
16
18
  /**
17
19
  * Update document draft by ID (auto-save)
20
+ * Request/response shapes come from the zod schema in ./schemas/documents.ts —
21
+ * single source of truth shared with the server handler.
18
22
  */
19
- static updateById(id: string, data: UpdateDocumentData): Promise<ApiResponse<Document>>;
23
+ static updateById(id: string, data: UpdateDocumentRequest): Promise<ApiResponse<DocumentDTO>>;
20
24
  /**
21
25
  * Publish document (copy draft -> published)
22
26
  */
23
- static publish(id: string): Promise<ApiResponse<Document>>;
27
+ static publish(id: string): Promise<ApiResponse<DocumentDTO>>;
24
28
  /**
25
29
  * Unpublish document (revert to draft only)
26
30
  */
27
- static unpublish(id: string): Promise<ApiResponse<Document>>;
31
+ static unpublish(id: string): Promise<ApiResponse<DocumentDTO>>;
28
32
  /**
29
33
  * Delete document by ID
30
34
  */
@@ -32,30 +36,27 @@ export declare class DocumentsApi {
32
36
  /**
33
37
  * Get documents by type (convenience method)
34
38
  */
35
- static getByType(docType: string, params?: Omit<DocumentListParams, 'docType'>): Promise<ApiResponse<Document[]>>;
39
+ static getByType(docType: string, params?: Omit<ListDocumentsQuery, 'docType'>): Promise<ApiResponse<DocumentDTO[]>>;
36
40
  /**
37
41
  * Get published documents only (convenience method)
38
42
  */
39
- static getPublished(params?: Omit<DocumentListParams, 'status'>): Promise<ApiResponse<Document[]>>;
43
+ static getPublished(params?: Omit<ListDocumentsQuery, 'status'>): Promise<ApiResponse<DocumentDTO[]>>;
40
44
  /**
41
45
  * Get draft documents only (convenience method)
42
46
  */
43
- static getDrafts(params?: Omit<DocumentListParams, 'status'>): Promise<ApiResponse<Document[]>>;
47
+ static getDrafts(params?: Omit<ListDocumentsQuery, 'status'>): Promise<ApiResponse<DocumentDTO[]>>;
44
48
  /**
45
49
  * List document version history
46
50
  */
47
- static listVersions(id: string, params?: {
48
- limit?: number;
49
- offset?: number;
50
- }): Promise<ApiResponse<any[]>>;
51
+ static listVersions(id: string, params?: ListVersionsQuery): Promise<ApiResponse<DocumentVersion[]>>;
51
52
  /**
52
53
  * Get a specific version
53
54
  */
54
- static getVersion(id: string, versionNumber: number): Promise<ApiResponse<any>>;
55
+ static getVersion(id: string, versionNumber: number): Promise<ApiResponse<DocumentVersion>>;
55
56
  /**
56
57
  * Restore a version to draft
57
58
  */
58
- static restoreVersion(id: string, versionNumber: number): Promise<ApiResponse<Document>>;
59
+ static restoreVersion(id: string, versionNumber: number): Promise<ApiResponse<DocumentDTO>>;
59
60
  }
60
61
  export declare const documents: {
61
62
  list: typeof DocumentsApi.list;
@@ -1 +1 @@
1
- {"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/lib/api/documents.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,QAAQ,EACR,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,MAAM,SAAS,CAAC;AAEjB,qBAAa,YAAY;IACxB;;;OAGG;WACU,IAAI,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IAYpF;;OAEG;WACU,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAIhE;;OAEG;WACU,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAI7E;;OAEG;WACU,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAI7F;;OAEG;WACU,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAIhE;;OAEG;WACU,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAIlE;;OAEG;WACU,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAI/D;;OAEG;WACU,SAAS,CACrB,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAM,GAC9C,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IAInC;;OAEG;WACU,YAAY,CACxB,MAAM,GAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAM,GAC7C,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IAInC;;OAEG;WACU,SAAS,CACrB,MAAM,GAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAM,GAC7C,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IAInC;;OAEG;WACU,YAAY,CACxB,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1C,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;IAI9B;;OAEG;WACU,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAIrF;;OAEG;WACU,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;CAG9F;AAGD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;CAcrB,CAAC"}
1
+ {"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/lib/api/documents.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EACX,WAAW,EACX,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,MAAM,qBAAqB,CAAC;AAI7B,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAEpD,qBAAa,YAAY;IACxB;;;OAGG;WACU,IAAI,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;IAUvF;;OAEG;WACU,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAInE;;OAEG;WACU,MAAM,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAInF;;;;OAIG;WACU,UAAU,CACtB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,qBAAqB,GACzB,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAIpC;;OAEG;WACU,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAInE;;OAEG;WACU,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAIrE;;OAEG;WACU,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAI/D;;OAEG;WACU,SAAS,CACrB,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAM,GAC9C,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;IAItC;;OAEG;WACU,YAAY,CACxB,MAAM,GAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAM,GAC7C,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;IAItC;;OAEG;WACU,SAAS,CACrB,MAAM,GAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAM,GAC7C,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;IAItC;;OAEG;WACU,YAAY,CACxB,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,iBAAiB,GACxB,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;IAI1C;;OAEG;WACU,UAAU,CACtB,EAAE,EAAE,MAAM,EACV,aAAa,EAAE,MAAM,GACnB,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAIxC;;OAEG;WACU,cAAc,CAC1B,EAAE,EAAE,MAAM,EACV,aAAa,EAAE,MAAM,GACnB,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;CAGpC;AAGD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;CAcrB,CAAC"}
@@ -6,12 +6,10 @@ export class DocumentsApi {
6
6
  * NOTE: Requires 'type' parameter - use getByType() for convenience
7
7
  */
8
8
  static async list(params = {}) {
9
- // Support both 'type' and legacy 'docType' parameter
10
9
  const queryParams = {
11
10
  ...params,
12
11
  type: params.type || params.docType
13
12
  };
14
- // Remove docType to avoid confusion
15
13
  delete queryParams.docType;
16
14
  return apiClient.get('/documents', queryParams);
17
15
  }
@@ -29,6 +27,8 @@ export class DocumentsApi {
29
27
  }
30
28
  /**
31
29
  * Update document draft by ID (auto-save)
30
+ * Request/response shapes come from the zod schema in ./schemas/documents.ts —
31
+ * single source of truth shared with the server handler.
32
32
  */
33
33
  static async updateById(id, data) {
34
34
  return apiClient.put(`/documents/${id}`, data);
@@ -2,6 +2,7 @@ export { type ApiClient, ApiError, apiClient } from './client.js';
2
2
  export { type ApiResponse } from './types.js';
3
3
  export { documents } from './documents.js';
4
4
  export { organizations } from './organizations.js';
5
+ export { roles } from './roles.js';
5
6
  export { assets } from './assets.js';
6
7
  export { user } from './user.js';
7
8
  export { apiKeys } from './api-keys.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/api/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,mBAAmB,gBAAgB,CAAC;AACpC,mBAAmB,iBAAiB,CAAC;AACrC,mBAAmB,QAAQ,CAAC;AAC5B,mBAAmB,YAAY,CAAC;AAChC,mBAAmB,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/api/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,mBAAmB,gBAAgB,CAAC;AACpC,mBAAmB,iBAAiB,CAAC;AACrC,mBAAmB,QAAQ,CAAC;AAC5B,mBAAmB,YAAY,CAAC;AAChC,mBAAmB,eAAe,CAAC"}
package/dist/api/index.js CHANGED
@@ -2,6 +2,7 @@
2
2
  export { ApiError, apiClient } from './client.js';
3
3
  export { documents } from './documents.js';
4
4
  export { organizations } from './organizations.js';
5
+ export { roles } from './roles.js';
5
6
  export { assets } from './assets.js';
6
7
  export { user } from './user.js';
7
8
  export { apiKeys } from './api-keys.js';
@@ -1,38 +1,18 @@
1
1
  import type { Organization, OrganizationMember, OrganizationRole } from '../types/organization.js';
2
2
  import type { ApiResponse } from './types.js';
3
- export interface CreateOrganizationData {
4
- name: string;
5
- slug: string;
6
- metadata?: any;
7
- parentOrganizationId?: string;
8
- }
3
+ import type { CreateOrganizationRequest, UpdateOrganizationRequest, SwitchOrganizationRequest, InviteMemberRequest, UpdateMemberRoleRequest, RemoveMemberRequest, CancelInvitationRequest } from './schemas/organizations.js';
4
+ export type CreateOrganizationData = CreateOrganizationRequest;
5
+ export type UpdateOrganizationData = UpdateOrganizationRequest;
6
+ export type SwitchOrganizationData = SwitchOrganizationRequest;
7
+ export type InviteMemberData = InviteMemberRequest;
8
+ export type UpdateMemberRoleData = UpdateMemberRoleRequest;
9
+ export type RemoveMemberData = RemoveMemberRequest;
10
+ export type CancelInvitationData = CancelInvitationRequest;
9
11
  export interface OrganizationListItem extends Organization {
10
12
  role: OrganizationRole;
11
13
  joinedAt: Date;
12
14
  isActive: boolean;
13
15
  }
14
- export interface SwitchOrganizationData {
15
- organizationId: string;
16
- }
17
- export interface InviteMemberData {
18
- email: string;
19
- role: OrganizationRole;
20
- }
21
- export interface UpdateMemberRoleData {
22
- userId: string;
23
- role: OrganizationRole;
24
- }
25
- export interface RemoveMemberData {
26
- userId: string;
27
- }
28
- export interface CancelInvitationData {
29
- invitationId: string;
30
- }
31
- export interface UpdateOrganizationData {
32
- name?: string;
33
- slug?: string;
34
- metadata?: any;
35
- }
36
16
  export declare class OrganizationsApi {
37
17
  /**
38
18
  * List user's organizations
@@ -41,11 +21,11 @@ export declare class OrganizationsApi {
41
21
  /**
42
22
  * Create new organization (super_admin only)
43
23
  */
44
- static create(data: CreateOrganizationData): Promise<ApiResponse<Organization>>;
24
+ static create(data: CreateOrganizationRequest): Promise<ApiResponse<Organization>>;
45
25
  /**
46
26
  * Switch to a different organization
47
27
  */
48
- static switch(data: SwitchOrganizationData): Promise<ApiResponse<{
28
+ static switch(data: SwitchOrganizationRequest): Promise<ApiResponse<{
49
29
  success: boolean;
50
30
  }>>;
51
31
  /**
@@ -63,25 +43,25 @@ export declare class OrganizationsApi {
63
43
  /**
64
44
  * Invite a member to the organization
65
45
  */
66
- static inviteMember(data: InviteMemberData): Promise<ApiResponse<OrganizationMember>>;
46
+ static inviteMember(data: InviteMemberRequest): Promise<ApiResponse<OrganizationMember>>;
67
47
  /**
68
48
  * Remove a member from the organization
69
49
  */
70
- static removeMember(data: RemoveMemberData): Promise<ApiResponse<{
50
+ static removeMember(data: RemoveMemberRequest): Promise<ApiResponse<{
71
51
  success: boolean;
72
52
  }>>;
73
53
  /**
74
54
  * Update a member's role
75
55
  */
76
- static updateMemberRole(data: UpdateMemberRoleData): Promise<ApiResponse<OrganizationMember>>;
56
+ static updateMemberRole(data: UpdateMemberRoleRequest): Promise<ApiResponse<OrganizationMember>>;
77
57
  /**
78
58
  * Update organization settings
79
59
  */
80
- static update(id: string, data: UpdateOrganizationData): Promise<ApiResponse<Organization>>;
60
+ static update(id: string, data: UpdateOrganizationRequest): Promise<ApiResponse<Organization>>;
81
61
  /**
82
62
  * Cancel a pending invitation
83
63
  */
84
- static cancelInvitation(data: CancelInvitationData): Promise<ApiResponse<{
64
+ static cancelInvitation(data: CancelInvitationRequest): Promise<ApiResponse<{
85
65
  success: boolean;
86
66
  }>>;
87
67
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"organizations.d.ts","sourceRoot":"","sources":["../../src/lib/api/organizations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,WAAW,sBAAsB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACzD,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,IAAI,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACtC,cAAc,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,gBAAgB,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,gBAAgB,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACpC,YAAY,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,GAAG,CAAC;CACf;AAED,qBAAa,gBAAgB;IAC5B;;OAEG;WACU,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAIjE;;OAEG;WACU,MAAM,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAIrF;;OAEG;WACU,MAAM,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAI7F;;OAEG;WACU,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAIpE;;OAEG;WACU,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAY5D;;OAEG;WACU,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAIrE;;OAEG;WACU,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAI3F;;OAEG;WACU,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAI7F;;OAEG;WACU,gBAAgB,CAC5B,IAAI,EAAE,oBAAoB,GACxB,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAI3C;;OAEG;WACU,MAAM,CAClB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,sBAAsB,GAC1B,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAIrC;;OAEG;WACU,gBAAgB,CAC5B,IAAI,EAAE,oBAAoB,GACxB,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAI7C;;OAEG;WACU,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAG3E;AAGD,eAAO,MAAM,aAAa;;;;;;;;;;;;;CAazB,CAAC"}
1
+ {"version":3,"file":"organizations.d.ts","sourceRoot":"","sources":["../../src/lib/api/organizations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EACX,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,MAAM,yBAAyB,CAAC;AAIjC,MAAM,MAAM,sBAAsB,GAAG,yBAAyB,CAAC;AAC/D,MAAM,MAAM,sBAAsB,GAAG,yBAAyB,CAAC;AAC/D,MAAM,MAAM,sBAAsB,GAAG,yBAAyB,CAAC;AAC/D,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AACnD,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;AAC3D,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AACnD,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;AAE3D,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACzD,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,IAAI,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,gBAAgB;IAC5B;;OAEG;WACU,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAIjE;;OAEG;WACU,MAAM,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAIxF;;OAEG;WACU,MAAM,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAIhG;;OAEG;WACU,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAIpE;;OAEG;WACU,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAY5D;;OAEG;WACU,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAIrE;;OAEG;WACU,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAI9F;;OAEG;WACU,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAIhG;;OAEG;WACU,gBAAgB,CAC5B,IAAI,EAAE,uBAAuB,GAC3B,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAI3C;;OAEG;WACU,MAAM,CAClB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,yBAAyB,GAC7B,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAIrC;;OAEG;WACU,gBAAgB,CAC5B,IAAI,EAAE,uBAAuB,GAC3B,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAI7C;;OAEG;WACU,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAG3E;AAGD,eAAO,MAAM,aAAa;;;;;;;;;;;;;CAazB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { ApiResponse } from './types.js';
2
+ import type { Role } from '../types/capabilities.js';
3
+ import type { CreateRoleRequest, UpdateRoleRequest } from './schemas/roles.js';
4
+ export declare class RolesApi {
5
+ /** List all roles (built-in + custom) for the active organization. */
6
+ static list(): Promise<ApiResponse<Role[]>>;
7
+ /** Create a custom role. Built-in names are rejected server-side. */
8
+ static create(data: CreateRoleRequest): Promise<ApiResponse<Role>>;
9
+ /** Edit description or capabilities. Works on built-ins too. */
10
+ static update(name: string, data: UpdateRoleRequest): Promise<ApiResponse<Role>>;
11
+ /** Delete a custom role. Built-ins and in-use roles are blocked server-side. */
12
+ static remove(name: string): Promise<ApiResponse<{
13
+ success: boolean;
14
+ }>>;
15
+ }
16
+ export declare const roles: {
17
+ list: typeof RolesApi.list;
18
+ create: typeof RolesApi.create;
19
+ update: typeof RolesApi.update;
20
+ remove: typeof RolesApi.remove;
21
+ };
22
+ //# sourceMappingURL=roles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../src/lib/api/roles.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE5E,qBAAa,QAAQ;IACpB,sEAAsE;WACzD,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IAIjD,qEAAqE;WACxD,MAAM,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAIxE,gEAAgE;WACnD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAItF,gFAAgF;WACnE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAG7E;AAED,eAAO,MAAM,KAAK;;;;;CAKjB,CAAC"}
@@ -0,0 +1,26 @@
1
+ // Roles API client — per-organization role CRUD.
2
+ import { apiClient } from './client.js';
3
+ export class RolesApi {
4
+ /** List all roles (built-in + custom) for the active organization. */
5
+ static async list() {
6
+ return apiClient.get('/roles');
7
+ }
8
+ /** Create a custom role. Built-in names are rejected server-side. */
9
+ static async create(data) {
10
+ return apiClient.post('/roles', data);
11
+ }
12
+ /** Edit description or capabilities. Works on built-ins too. */
13
+ static async update(name, data) {
14
+ return apiClient.patch(`/roles/${encodeURIComponent(name)}`, data);
15
+ }
16
+ /** Delete a custom role. Built-ins and in-use roles are blocked server-side. */
17
+ static async remove(name) {
18
+ return apiClient.delete(`/roles/${encodeURIComponent(name)}`);
19
+ }
20
+ }
21
+ export const roles = {
22
+ list: RolesApi.list.bind(RolesApi),
23
+ create: RolesApi.create.bind(RolesApi),
24
+ update: RolesApi.update.bind(RolesApi),
25
+ remove: RolesApi.remove.bind(RolesApi)
26
+ };
@@ -0,0 +1,62 @@
1
+ import { z } from 'zod';
2
+ import { type Capability } from '../../types/capabilities.js';
3
+ export declare const apiKeyPermissionSchema: z.ZodEnum<{
4
+ read: "read";
5
+ write: "write";
6
+ }>;
7
+ export declare const apiKeyCapabilitySchema: z.ZodEnum<{
8
+ "document.read": "document.read";
9
+ "document.create": "document.create";
10
+ "document.update": "document.update";
11
+ "document.delete": "document.delete";
12
+ "document.publish": "document.publish";
13
+ "document.unpublish": "document.unpublish";
14
+ "asset.read": "asset.read";
15
+ "asset.upload": "asset.upload";
16
+ "asset.delete": "asset.delete";
17
+ "member.invite": "member.invite";
18
+ "member.remove": "member.remove";
19
+ "member.changeRole": "member.changeRole";
20
+ "apiKey.manage": "apiKey.manage";
21
+ "role.manage": "role.manage";
22
+ "org.settings": "org.settings";
23
+ }>;
24
+ export declare const createApiKeyRequest: z.ZodPipe<z.ZodObject<{
25
+ name: z.ZodString;
26
+ permissions: z.ZodOptional<z.ZodArray<z.ZodEnum<{
27
+ read: "read";
28
+ write: "write";
29
+ }>>>;
30
+ capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
31
+ "document.read": "document.read";
32
+ "document.create": "document.create";
33
+ "document.update": "document.update";
34
+ "document.delete": "document.delete";
35
+ "document.publish": "document.publish";
36
+ "document.unpublish": "document.unpublish";
37
+ "asset.read": "asset.read";
38
+ "asset.upload": "asset.upload";
39
+ "asset.delete": "asset.delete";
40
+ "member.invite": "member.invite";
41
+ "member.remove": "member.remove";
42
+ "member.changeRole": "member.changeRole";
43
+ "apiKey.manage": "apiKey.manage";
44
+ "role.manage": "role.manage";
45
+ "org.settings": "org.settings";
46
+ }>>>;
47
+ expiresInDays: z.ZodOptional<z.ZodNumber>;
48
+ }, z.core.$strip>, z.ZodTransform<{
49
+ permissions: ("read" | "write")[] | undefined;
50
+ capabilities: Capability[] | undefined;
51
+ name: string;
52
+ expiresInDays?: number | undefined;
53
+ }, {
54
+ name: string;
55
+ permissions?: ("read" | "write")[] | undefined;
56
+ capabilities?: ("document.read" | "document.create" | "document.update" | "document.delete" | "document.publish" | "document.unpublish" | "asset.read" | "asset.upload" | "asset.delete" | "member.invite" | "member.remove" | "member.changeRole" | "apiKey.manage" | "role.manage" | "org.settings")[] | undefined;
57
+ expiresInDays?: number | undefined;
58
+ }>>;
59
+ export type ApiKeyPermission = z.infer<typeof apiKeyPermissionSchema>;
60
+ export type ApiKeyCapability = z.infer<typeof apiKeyCapabilitySchema>;
61
+ export type CreateApiKeyRequest = z.infer<typeof createApiKeyRequest>;
62
+ //# sourceMappingURL=api-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../../../src/lib/api/schemas/api-keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAA2C,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAIpG,eAAO,MAAM,sBAAsB;;;EAA4B,CAAC;AAEhE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;EAElC,CAAC;AASF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoB5B,CAAC;AAIL,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { z } from 'zod';
2
+ import { ALL_CAPABILITIES, normalizeCapabilities } from '../../types/capabilities.js';
3
+ // ---------- Shared ----------
4
+ export const apiKeyPermissionSchema = z.enum(['read', 'write']);
5
+ export const apiKeyCapabilitySchema = z.enum(ALL_CAPABILITIES);
6
+ // ---------- POST /settings/api-keys ----------
7
+ // Two provisioning modes:
8
+ // 1. Coarse `permissions`: 'read' alone, or 'write' (always implies read).
9
+ // 2. Fine-grained `capabilities`: explicit allowlist; writes auto-include
10
+ // the matching read cap during normalization.
11
+ // Exactly one of the two should be supplied (neither is invalid).
12
+ export const createApiKeyRequest = z
13
+ .object({
14
+ name: z.string().min(1),
15
+ permissions: z.array(apiKeyPermissionSchema).optional(),
16
+ capabilities: z.array(apiKeyCapabilitySchema).optional(),
17
+ expiresInDays: z.number().int().positive().optional()
18
+ })
19
+ .refine((v) => (v.permissions && v.permissions.length > 0) || (v.capabilities && v.capabilities.length > 0), { message: 'Provide at least one of `permissions` or `capabilities`.' })
20
+ .transform((v) => ({
21
+ ...v,
22
+ permissions: v.permissions
23
+ ? v.permissions.includes('write')
24
+ ? ['read', 'write']
25
+ : ['read']
26
+ : undefined,
27
+ capabilities: v.capabilities ? normalizeCapabilities(v.capabilities) : undefined
28
+ }));