@aphexcms/cms-core 0.2.3 → 1.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 (616) hide show
  1. package/dist/api/api-keys.d.ts +37 -0
  2. package/dist/api/api-keys.d.ts.map +1 -0
  3. package/dist/api/api-keys.js +20 -0
  4. package/dist/api/assets.d.ts +27 -0
  5. package/dist/api/assets.d.ts.map +1 -1
  6. package/dist/api/assets.js +22 -1
  7. package/dist/api/index.d.ts +8 -0
  8. package/dist/api/index.d.ts.map +1 -1
  9. package/dist/api/index.js +4 -0
  10. package/dist/api/instance.d.ts +17 -0
  11. package/dist/api/instance.d.ts.map +1 -0
  12. package/dist/api/instance.js +21 -0
  13. package/dist/api/invitations.d.ts +37 -0
  14. package/dist/api/invitations.d.ts.map +1 -0
  15. package/dist/api/invitations.js +27 -0
  16. package/dist/api/organizations.d.ts +7 -0
  17. package/dist/api/organizations.d.ts.map +1 -1
  18. package/dist/api/organizations.js +7 -0
  19. package/dist/api/types.d.ts +1 -1
  20. package/dist/api/types.d.ts.map +1 -1
  21. package/dist/api/user.d.ts +23 -0
  22. package/dist/api/user.d.ts.map +1 -0
  23. package/dist/api/user.js +20 -0
  24. package/dist/auth/auth-errors.d.ts +1 -1
  25. package/dist/auth/auth-errors.d.ts.map +1 -1
  26. package/dist/auth/auth-hooks.d.ts.map +1 -1
  27. package/dist/auth/auth-hooks.js +39 -23
  28. package/dist/auth/provider.d.ts +2 -2
  29. package/dist/auth/provider.d.ts.map +1 -1
  30. package/dist/cli/generate-types.d.ts +14 -0
  31. package/dist/cli/generate-types.d.ts.map +1 -0
  32. package/dist/cli/generate-types.js +15 -7
  33. package/dist/cli/generate-types.js.map +1 -0
  34. package/dist/cli/index.d.ts +7 -0
  35. package/dist/cli/index.d.ts.map +1 -0
  36. package/dist/cli/index.js +1 -0
  37. package/dist/cli/index.js.map +1 -0
  38. package/dist/client/index.d.ts +1 -0
  39. package/dist/client/index.d.ts.map +1 -1
  40. package/dist/client/index.js +2 -0
  41. package/dist/components/AdminApp.svelte +160 -63
  42. package/dist/components/AdminApp.svelte.d.ts +1 -1
  43. package/dist/components/AdminApp.svelte.d.ts.map +1 -1
  44. package/dist/components/admin/AdminLayout.svelte.d.ts +3 -3
  45. package/dist/components/admin/AssetBrowserModal.svelte +66 -0
  46. package/dist/components/admin/AssetBrowserModal.svelte.d.ts +15 -0
  47. package/dist/components/admin/AssetBrowserModal.svelte.d.ts.map +1 -0
  48. package/dist/components/admin/DocumentEditor.svelte +137 -69
  49. package/dist/components/admin/DocumentEditor.svelte.d.ts +1 -1
  50. package/dist/components/admin/DocumentEditor.svelte.d.ts.map +1 -1
  51. package/dist/components/admin/DocumentsSkeleton.svelte +40 -0
  52. package/dist/components/admin/DocumentsSkeleton.svelte.d.ts +7 -0
  53. package/dist/components/admin/DocumentsSkeleton.svelte.d.ts.map +1 -0
  54. package/dist/components/admin/MediaBrowser.svelte +1398 -0
  55. package/dist/components/admin/MediaBrowser.svelte.d.ts +23 -0
  56. package/dist/components/admin/MediaBrowser.svelte.d.ts.map +1 -0
  57. package/dist/components/admin/ObjectModal.svelte +3 -4
  58. package/dist/components/admin/ObjectModal.svelte.d.ts +1 -1
  59. package/dist/components/admin/ObjectModal.svelte.d.ts.map +1 -1
  60. package/dist/components/admin/SchemaField.svelte +109 -81
  61. package/dist/components/admin/SchemaField.svelte.d.ts +1 -1
  62. package/dist/components/admin/SchemaField.svelte.d.ts.map +1 -1
  63. package/dist/components/admin/fields/ArrayField.svelte +611 -277
  64. package/dist/components/admin/fields/ArrayField.svelte.d.ts.map +1 -1
  65. package/dist/components/admin/fields/DateField.svelte +3 -2
  66. package/dist/components/admin/fields/DateField.svelte.d.ts.map +1 -1
  67. package/dist/components/admin/fields/DateTimeField.svelte +3 -2
  68. package/dist/components/admin/fields/DateTimeField.svelte.d.ts.map +1 -1
  69. package/dist/components/admin/fields/ImageField.svelte +217 -120
  70. package/dist/components/admin/fields/ImageField.svelte.d.ts +1 -0
  71. package/dist/components/admin/fields/ImageField.svelte.d.ts.map +1 -1
  72. package/dist/components/admin/fields/ReferenceField.svelte +11 -6
  73. package/dist/components/admin/fields/ReferenceField.svelte.d.ts.map +1 -1
  74. package/dist/components/admin/fields/StringField.svelte +2 -1
  75. package/dist/components/admin/fields/StringField.svelte.d.ts.map +1 -1
  76. package/dist/components/index.d.ts +2 -0
  77. package/dist/components/index.d.ts.map +1 -1
  78. package/dist/components/index.js +2 -0
  79. package/dist/components/layout/OrganizationSwitcher.svelte +109 -45
  80. package/dist/components/layout/OrganizationSwitcher.svelte.d.ts.map +1 -1
  81. package/dist/components/layout/Sidebar.svelte +36 -14
  82. package/dist/components/layout/Sidebar.svelte.d.ts +2 -1
  83. package/dist/components/layout/Sidebar.svelte.d.ts.map +1 -1
  84. package/dist/components/layout/sidebar/AppSidebar.svelte +1 -1
  85. package/dist/components/layout/sidebar/NavMain.svelte +1 -1
  86. package/dist/components/layout/sidebar/NavMain.svelte.d.ts +1 -1
  87. package/dist/components/layout/sidebar/NavMain.svelte.d.ts.map +1 -1
  88. package/dist/components/layout/sidebar/NavSecondary.svelte +3 -3
  89. package/dist/components/layout/sidebar/NavUser.svelte +22 -10
  90. package/dist/components/layout/sidebar/NavUser.svelte.d.ts +2 -2
  91. package/dist/components/layout/sidebar/NavUser.svelte.d.ts.map +1 -1
  92. package/dist/db/interfaces/document.d.ts +20 -0
  93. package/dist/db/interfaces/document.d.ts.map +1 -1
  94. package/dist/db/interfaces/index.d.ts +3 -1
  95. package/dist/db/interfaces/index.d.ts.map +1 -1
  96. package/dist/db/interfaces/instance.d.ts +7 -0
  97. package/dist/db/interfaces/instance.d.ts.map +1 -0
  98. package/dist/db/interfaces/instance.js +1 -0
  99. package/dist/db/interfaces/organization.d.ts +1 -0
  100. package/dist/db/interfaces/organization.d.ts.map +1 -1
  101. package/dist/engine.d.ts.map +1 -1
  102. package/dist/engine.js +4 -3
  103. package/dist/field-validation/date-utils.d.ts.map +1 -1
  104. package/dist/field-validation/date-utils.js +12 -11
  105. package/dist/field-validation/rule.d.ts.map +1 -1
  106. package/dist/field-validation/rule.js +11 -10
  107. package/dist/field-validation/utils.d.ts.map +1 -1
  108. package/dist/field-validation/utils.js +16 -15
  109. package/dist/graphql/index.d.ts +23 -0
  110. package/dist/graphql/index.d.ts.map +1 -0
  111. package/dist/graphql/index.js +85 -0
  112. package/dist/graphql/resolvers.d.ts +4 -0
  113. package/dist/graphql/resolvers.d.ts.map +1 -0
  114. package/dist/graphql/resolvers.js +542 -0
  115. package/dist/graphql/schema.d.ts +3 -0
  116. package/dist/graphql/schema.d.ts.map +1 -0
  117. package/dist/graphql/schema.js +356 -0
  118. package/dist/hooks.d.ts +2 -0
  119. package/dist/hooks.d.ts.map +1 -1
  120. package/dist/hooks.js +62 -9
  121. package/dist/lib/api/api-keys.d.ts +37 -0
  122. package/dist/lib/api/api-keys.d.ts.map +1 -0
  123. package/dist/lib/api/api-keys.js +21 -0
  124. package/dist/lib/api/api-keys.js.map +1 -0
  125. package/dist/lib/api/assets.d.ts +75 -0
  126. package/dist/lib/api/assets.d.ts.map +1 -0
  127. package/dist/lib/api/assets.js +74 -0
  128. package/dist/lib/api/assets.js.map +1 -0
  129. package/dist/lib/api/client.d.ts +37 -0
  130. package/dist/lib/api/client.d.ts.map +1 -0
  131. package/dist/lib/api/client.js +132 -0
  132. package/dist/lib/api/client.js.map +1 -0
  133. package/dist/lib/api/documents.d.ts +57 -0
  134. package/dist/lib/api/documents.d.ts.map +1 -0
  135. package/dist/lib/api/documents.js +86 -0
  136. package/dist/lib/api/documents.js.map +1 -0
  137. package/dist/lib/api/index.d.ts +15 -0
  138. package/dist/lib/api/index.d.ts.map +1 -0
  139. package/dist/lib/api/index.js +10 -0
  140. package/dist/lib/api/index.js.map +1 -0
  141. package/dist/lib/api/instance.d.ts +17 -0
  142. package/dist/lib/api/instance.d.ts.map +1 -0
  143. package/dist/lib/api/instance.js +22 -0
  144. package/dist/lib/api/instance.js.map +1 -0
  145. package/dist/lib/api/invitations.d.ts +37 -0
  146. package/dist/lib/api/invitations.d.ts.map +1 -0
  147. package/dist/lib/api/invitations.js +28 -0
  148. package/dist/lib/api/invitations.js.map +1 -0
  149. package/dist/lib/api/organizations.d.ts +108 -0
  150. package/dist/lib/api/organizations.d.ts.map +1 -0
  151. package/dist/lib/api/organizations.js +100 -0
  152. package/dist/lib/api/organizations.js.map +1 -0
  153. package/dist/lib/api/types.d.ts +47 -0
  154. package/dist/lib/api/types.d.ts.map +1 -0
  155. package/dist/lib/api/types.js +2 -0
  156. package/dist/lib/api/types.js.map +1 -0
  157. package/dist/lib/api/user.d.ts +23 -0
  158. package/dist/lib/api/user.d.ts.map +1 -0
  159. package/dist/lib/api/user.js +21 -0
  160. package/dist/lib/api/user.js.map +1 -0
  161. package/dist/lib/auth/auth-errors.d.ts +7 -0
  162. package/dist/lib/auth/auth-errors.d.ts.map +1 -0
  163. package/dist/lib/auth/auth-errors.js +14 -0
  164. package/dist/lib/auth/auth-errors.js.map +1 -0
  165. package/dist/lib/auth/auth-hooks.d.ts +6 -0
  166. package/dist/lib/auth/auth-hooks.d.ts.map +1 -0
  167. package/dist/lib/auth/auth-hooks.js +139 -0
  168. package/dist/lib/auth/auth-hooks.js.map +1 -0
  169. package/dist/lib/auth/provider.d.ts +17 -0
  170. package/dist/lib/auth/provider.d.ts.map +1 -0
  171. package/dist/lib/auth/provider.js +1 -0
  172. package/dist/lib/auth/provider.js.map +1 -0
  173. package/dist/lib/client/index.d.ts +24 -0
  174. package/dist/lib/client/index.d.ts.map +1 -0
  175. package/dist/lib/client/index.js +33 -0
  176. package/dist/lib/client/index.js.map +1 -0
  177. package/dist/lib/components/fields/index.d.ts +9 -0
  178. package/dist/lib/components/fields/index.d.ts.map +1 -0
  179. package/dist/lib/components/fields/index.js +10 -0
  180. package/dist/lib/components/fields/index.js.map +1 -0
  181. package/dist/lib/components/index.d.ts +8 -0
  182. package/dist/lib/components/index.d.ts.map +1 -0
  183. package/dist/lib/components/index.js +14 -0
  184. package/dist/lib/components/index.js.map +1 -0
  185. package/dist/lib/config.d.ts +3 -0
  186. package/dist/lib/config.d.ts.map +1 -0
  187. package/dist/lib/config.js +16 -0
  188. package/dist/lib/config.js.map +1 -0
  189. package/dist/lib/db/adapters/index.d.ts +1 -0
  190. package/dist/lib/db/adapters/index.d.ts.map +1 -0
  191. package/dist/lib/db/adapters/index.js +5 -0
  192. package/dist/lib/db/adapters/index.js.map +1 -0
  193. package/dist/lib/db/index.d.ts +2 -0
  194. package/dist/lib/db/index.d.ts.map +1 -0
  195. package/dist/lib/db/index.js +1 -0
  196. package/dist/lib/db/index.js.map +1 -0
  197. package/dist/lib/db/interfaces/asset.d.ts +73 -0
  198. package/dist/lib/db/interfaces/asset.d.ts.map +1 -0
  199. package/dist/lib/db/interfaces/asset.js +1 -0
  200. package/dist/lib/db/interfaces/asset.js.map +1 -0
  201. package/dist/lib/db/interfaces/document.d.ts +79 -0
  202. package/dist/lib/db/interfaces/document.d.ts.map +1 -0
  203. package/dist/lib/db/interfaces/document.js +1 -0
  204. package/dist/lib/db/interfaces/document.js.map +1 -0
  205. package/dist/lib/db/interfaces/index.d.ts +76 -0
  206. package/dist/lib/db/interfaces/index.d.ts.map +1 -0
  207. package/dist/lib/db/interfaces/index.js +1 -0
  208. package/dist/lib/db/interfaces/index.js.map +1 -0
  209. package/dist/lib/db/interfaces/instance.d.ts +7 -0
  210. package/dist/lib/db/interfaces/instance.d.ts.map +1 -0
  211. package/dist/lib/db/interfaces/instance.js +2 -0
  212. package/dist/lib/db/interfaces/instance.js.map +1 -0
  213. package/dist/lib/db/interfaces/organization.d.ts +28 -0
  214. package/dist/lib/db/interfaces/organization.d.ts.map +1 -0
  215. package/dist/lib/db/interfaces/organization.js +1 -0
  216. package/dist/lib/db/interfaces/organization.js.map +1 -0
  217. package/dist/lib/db/interfaces/schema.d.ts +21 -0
  218. package/dist/lib/db/interfaces/schema.d.ts.map +1 -0
  219. package/dist/lib/db/interfaces/schema.js +1 -0
  220. package/dist/lib/db/interfaces/schema.js.map +1 -0
  221. package/dist/lib/db/interfaces/user.d.ts +17 -0
  222. package/dist/lib/db/interfaces/user.d.ts.map +1 -0
  223. package/dist/lib/db/interfaces/user.js +1 -0
  224. package/dist/lib/db/interfaces/user.js.map +1 -0
  225. package/dist/lib/db/utils/reference-resolver.d.ts +18 -0
  226. package/dist/lib/db/utils/reference-resolver.d.ts.map +1 -0
  227. package/dist/lib/db/utils/reference-resolver.js +81 -0
  228. package/dist/lib/db/utils/reference-resolver.js.map +1 -0
  229. package/dist/lib/define.d.ts +3 -0
  230. package/dist/lib/define.d.ts.map +1 -0
  231. package/dist/lib/define.js +5 -0
  232. package/dist/lib/define.js.map +1 -0
  233. package/dist/lib/email/index.d.ts +2 -0
  234. package/dist/lib/email/index.d.ts.map +1 -0
  235. package/dist/lib/email/index.js +1 -0
  236. package/dist/lib/email/index.js.map +1 -0
  237. package/dist/lib/email/interfaces/email.d.ts +42 -0
  238. package/dist/lib/email/interfaces/email.d.ts.map +1 -0
  239. package/dist/lib/email/interfaces/email.js +1 -0
  240. package/dist/lib/email/interfaces/email.js.map +1 -0
  241. package/dist/lib/engine.d.ts +26 -0
  242. package/dist/lib/engine.d.ts.map +1 -0
  243. package/dist/lib/engine.js +71 -0
  244. package/dist/lib/engine.js.map +1 -0
  245. package/dist/lib/field-validation/date-utils.d.ts +30 -0
  246. package/dist/lib/field-validation/date-utils.d.ts.map +1 -0
  247. package/dist/lib/field-validation/date-utils.js +13 -11
  248. package/dist/lib/field-validation/date-utils.js.map +1 -0
  249. package/dist/lib/field-validation/rule.d.ts +55 -0
  250. package/dist/lib/field-validation/rule.d.ts.map +1 -0
  251. package/dist/lib/field-validation/rule.js +12 -10
  252. package/dist/lib/field-validation/rule.js.map +1 -0
  253. package/dist/lib/field-validation/utils.d.ts +43 -0
  254. package/dist/lib/field-validation/utils.d.ts.map +1 -0
  255. package/dist/lib/field-validation/utils.js +17 -15
  256. package/dist/lib/field-validation/utils.js.map +1 -0
  257. package/dist/lib/graphql/index.d.ts +23 -0
  258. package/dist/lib/graphql/index.d.ts.map +1 -0
  259. package/dist/lib/graphql/index.js +86 -0
  260. package/dist/lib/graphql/index.js.map +1 -0
  261. package/dist/lib/graphql/resolvers.d.ts +4 -0
  262. package/dist/lib/graphql/resolvers.d.ts.map +1 -0
  263. package/dist/lib/graphql/resolvers.js +543 -0
  264. package/dist/lib/graphql/resolvers.js.map +1 -0
  265. package/dist/lib/graphql/schema.d.ts +3 -0
  266. package/dist/lib/graphql/schema.d.ts.map +1 -0
  267. package/dist/lib/graphql/schema.js +357 -0
  268. package/dist/lib/graphql/schema.js.map +1 -0
  269. package/dist/lib/hooks.d.ts +27 -0
  270. package/dist/lib/hooks.d.ts.map +1 -0
  271. package/dist/lib/hooks.js +235 -0
  272. package/dist/lib/hooks.js.map +1 -0
  273. package/dist/lib/index.d.ts +2 -0
  274. package/dist/lib/index.d.ts.map +1 -0
  275. package/dist/lib/index.js +5 -0
  276. package/dist/lib/index.js.map +1 -0
  277. package/dist/lib/is-mobile.svelte.d.ts +5 -0
  278. package/dist/lib/is-mobile.svelte.d.ts.map +1 -0
  279. package/dist/lib/is-mobile.svelte.js +8 -0
  280. package/dist/lib/is-mobile.svelte.js.map +1 -0
  281. package/dist/lib/local-api/auth-helpers.d.ts +65 -0
  282. package/dist/lib/local-api/auth-helpers.d.ts.map +1 -0
  283. package/dist/lib/local-api/auth-helpers.js +103 -0
  284. package/dist/lib/local-api/auth-helpers.js.map +1 -0
  285. package/dist/lib/local-api/collection-api.d.ts +150 -0
  286. package/dist/lib/local-api/collection-api.d.ts.map +1 -0
  287. package/dist/lib/local-api/collection-api.js +311 -0
  288. package/dist/lib/local-api/collection-api.js.map +1 -0
  289. package/dist/lib/local-api/index.d.ts +108 -0
  290. package/dist/lib/local-api/index.d.ts.map +1 -0
  291. package/dist/lib/local-api/index.js +158 -0
  292. package/dist/lib/local-api/index.js.map +1 -0
  293. package/dist/lib/local-api/permissions.d.ts +45 -0
  294. package/dist/lib/local-api/permissions.d.ts.map +1 -0
  295. package/dist/lib/local-api/permissions.js +117 -0
  296. package/dist/lib/local-api/permissions.js.map +1 -0
  297. package/dist/lib/local-api/types.d.ts +65 -0
  298. package/dist/lib/local-api/types.d.ts.map +1 -0
  299. package/dist/lib/local-api/types.js +5 -0
  300. package/dist/lib/local-api/types.js.map +1 -0
  301. package/dist/lib/routes/assets-bulk.d.ts +3 -0
  302. package/dist/lib/routes/assets-bulk.d.ts.map +1 -0
  303. package/dist/lib/routes/assets-bulk.js +49 -0
  304. package/dist/lib/routes/assets-bulk.js.map +1 -0
  305. package/dist/lib/routes/assets-by-id.d.ts +5 -0
  306. package/dist/lib/routes/assets-by-id.d.ts.map +1 -0
  307. package/dist/lib/routes/assets-by-id.js +106 -0
  308. package/dist/lib/routes/assets-by-id.js.map +1 -0
  309. package/dist/lib/routes/assets-cdn.d.ts +3 -0
  310. package/dist/lib/routes/assets-cdn.d.ts.map +1 -0
  311. package/dist/lib/routes/assets-cdn.js +125 -0
  312. package/dist/lib/routes/assets-cdn.js.map +1 -0
  313. package/dist/lib/routes/assets-references-counts.d.ts +7 -0
  314. package/dist/lib/routes/assets-references-counts.d.ts.map +1 -0
  315. package/dist/lib/routes/assets-references-counts.js +32 -0
  316. package/dist/lib/routes/assets-references-counts.js.map +1 -0
  317. package/dist/lib/routes/assets-references.d.ts +7 -0
  318. package/dist/lib/routes/assets-references.d.ts.map +1 -0
  319. package/dist/lib/routes/assets-references.js +35 -0
  320. package/dist/lib/routes/assets-references.js.map +1 -0
  321. package/dist/lib/routes/assets.d.ts +4 -0
  322. package/dist/lib/routes/assets.d.ts.map +1 -0
  323. package/dist/lib/routes/assets.js +121 -0
  324. package/dist/lib/routes/assets.js.map +1 -0
  325. package/dist/lib/routes/documents-by-id.d.ts +5 -0
  326. package/dist/lib/routes/documents-by-id.d.ts.map +1 -0
  327. package/dist/lib/routes/documents-by-id.js +176 -0
  328. package/dist/lib/routes/documents-by-id.js.map +1 -0
  329. package/dist/lib/routes/documents-publish.d.ts +4 -0
  330. package/dist/lib/routes/documents-publish.d.ts.map +1 -0
  331. package/dist/lib/routes/documents-publish.js +138 -0
  332. package/dist/lib/routes/documents-publish.js.map +1 -0
  333. package/dist/lib/routes/documents-query.d.ts +26 -0
  334. package/dist/lib/routes/documents-query.d.ts.map +1 -0
  335. package/dist/lib/routes/documents-query.js +101 -0
  336. package/dist/lib/routes/documents-query.js.map +1 -0
  337. package/dist/lib/routes/documents.d.ts +4 -0
  338. package/dist/lib/routes/documents.d.ts.map +1 -0
  339. package/dist/lib/routes/documents.js +154 -0
  340. package/dist/lib/routes/documents.js.map +1 -0
  341. package/dist/lib/routes/index.d.ts +9 -0
  342. package/dist/lib/routes/index.d.ts.map +1 -0
  343. package/dist/lib/routes/index.js +15 -0
  344. package/dist/lib/routes/index.js.map +1 -0
  345. package/dist/lib/routes/organizations-by-id.d.ts +5 -0
  346. package/dist/lib/routes/organizations-by-id.d.ts.map +1 -0
  347. package/dist/lib/routes/organizations-by-id.js +189 -0
  348. package/dist/lib/routes/organizations-by-id.js.map +1 -0
  349. package/dist/lib/routes/organizations-invitations.d.ts +4 -0
  350. package/dist/lib/routes/organizations-invitations.d.ts.map +1 -0
  351. package/dist/lib/routes/organizations-invitations.js +127 -0
  352. package/dist/lib/routes/organizations-invitations.js.map +1 -0
  353. package/dist/lib/routes/organizations-members.d.ts +5 -0
  354. package/dist/lib/routes/organizations-members.d.ts.map +1 -0
  355. package/dist/lib/routes/organizations-members.js +208 -0
  356. package/dist/lib/routes/organizations-members.js.map +1 -0
  357. package/dist/lib/routes/organizations-switch.d.ts +3 -0
  358. package/dist/lib/routes/organizations-switch.d.ts.map +1 -0
  359. package/dist/lib/routes/organizations-switch.js +55 -0
  360. package/dist/lib/routes/organizations-switch.js.map +1 -0
  361. package/dist/lib/routes/organizations.d.ts +4 -0
  362. package/dist/lib/routes/organizations.d.ts.map +1 -0
  363. package/dist/lib/routes/organizations.js +111 -0
  364. package/dist/lib/routes/organizations.js.map +1 -0
  365. package/dist/lib/routes/schemas-by-type.d.ts +3 -0
  366. package/dist/lib/routes/schemas-by-type.d.ts.map +1 -0
  367. package/dist/lib/routes/schemas-by-type.js +27 -0
  368. package/dist/lib/routes/schemas-by-type.js.map +1 -0
  369. package/dist/lib/routes/schemas.d.ts +3 -0
  370. package/dist/lib/routes/schemas.d.ts.map +1 -0
  371. package/dist/lib/routes/schemas.js +12 -0
  372. package/dist/lib/routes/schemas.js.map +1 -0
  373. package/dist/lib/routes/user-preferences.d.ts +4 -0
  374. package/dist/lib/routes/user-preferences.d.ts.map +1 -0
  375. package/dist/lib/routes/user-preferences.js +79 -0
  376. package/dist/lib/routes/user-preferences.js.map +1 -0
  377. package/dist/lib/routes-exports.d.ts +17 -0
  378. package/dist/lib/routes-exports.d.ts.map +1 -0
  379. package/dist/lib/routes-exports.js +23 -0
  380. package/dist/lib/routes-exports.js.map +1 -0
  381. package/dist/lib/schema/index.d.ts +6 -0
  382. package/dist/lib/schema/index.d.ts.map +1 -0
  383. package/dist/lib/schema/index.js +12 -0
  384. package/dist/lib/schema/index.js.map +1 -0
  385. package/dist/lib/schema-context.svelte.d.ts +10 -0
  386. package/dist/lib/schema-context.svelte.d.ts.map +1 -0
  387. package/dist/lib/schema-context.svelte.js +19 -0
  388. package/dist/lib/schema-context.svelte.js.map +1 -0
  389. package/dist/lib/schema-utils/cleanup.d.ts +21 -0
  390. package/dist/lib/schema-utils/cleanup.d.ts.map +1 -0
  391. package/dist/lib/schema-utils/cleanup.js +81 -0
  392. package/dist/lib/schema-utils/cleanup.js.map +1 -0
  393. package/dist/lib/schema-utils/index.d.ts +4 -0
  394. package/dist/lib/schema-utils/index.d.ts.map +1 -0
  395. package/dist/lib/schema-utils/index.js +5 -0
  396. package/dist/lib/schema-utils/index.js.map +1 -0
  397. package/dist/lib/schema-utils/utils.d.ts +34 -0
  398. package/dist/lib/schema-utils/utils.d.ts.map +1 -0
  399. package/dist/lib/schema-utils/utils.js +59 -0
  400. package/dist/lib/schema-utils/utils.js.map +1 -0
  401. package/dist/lib/schema-utils/validator.d.ts +10 -0
  402. package/dist/lib/schema-utils/validator.d.ts.map +1 -0
  403. package/dist/lib/schema-utils/validator.js +167 -0
  404. package/dist/lib/schema-utils/validator.js.map +1 -0
  405. package/dist/lib/server/index.d.ts +19 -0
  406. package/dist/lib/server/index.d.ts.map +1 -0
  407. package/dist/lib/server/index.js +35 -0
  408. package/dist/lib/server/index.js.map +1 -0
  409. package/dist/lib/services/asset-service.d.ts +86 -0
  410. package/dist/lib/services/asset-service.d.ts.map +1 -0
  411. package/dist/lib/services/asset-service.js +189 -0
  412. package/dist/lib/services/asset-service.js.map +1 -0
  413. package/dist/lib/services/index.d.ts +3 -0
  414. package/dist/lib/services/index.d.ts.map +1 -0
  415. package/dist/lib/services/index.js +5 -0
  416. package/dist/lib/services/index.js.map +1 -0
  417. package/dist/lib/storage/adapters/index.d.ts +2 -0
  418. package/dist/lib/storage/adapters/index.d.ts.map +1 -0
  419. package/dist/lib/storage/adapters/index.js +3 -0
  420. package/dist/lib/storage/adapters/index.js.map +1 -0
  421. package/dist/lib/storage/adapters/local-storage-adapter.d.ts +54 -0
  422. package/dist/lib/storage/adapters/local-storage-adapter.d.ts.map +1 -0
  423. package/dist/lib/storage/adapters/local-storage-adapter.js +189 -0
  424. package/dist/lib/storage/adapters/local-storage-adapter.js.map +1 -0
  425. package/dist/lib/storage/index.d.ts +3 -0
  426. package/dist/lib/storage/index.d.ts.map +1 -0
  427. package/dist/lib/storage/index.js +7 -0
  428. package/dist/lib/storage/index.js.map +1 -0
  429. package/dist/lib/storage/interfaces/index.d.ts +2 -0
  430. package/dist/lib/storage/interfaces/index.d.ts.map +1 -0
  431. package/dist/lib/storage/interfaces/index.js +1 -0
  432. package/dist/lib/storage/interfaces/index.js.map +1 -0
  433. package/dist/lib/storage/interfaces/storage.d.ts +91 -0
  434. package/dist/lib/storage/interfaces/storage.d.ts.map +1 -0
  435. package/dist/lib/storage/interfaces/storage.js +1 -0
  436. package/dist/lib/storage/interfaces/storage.js.map +1 -0
  437. package/dist/lib/storage/providers/storage.d.ts +43 -0
  438. package/dist/lib/storage/providers/storage.d.ts.map +1 -0
  439. package/dist/lib/storage/providers/storage.js +65 -0
  440. package/dist/lib/storage/providers/storage.js.map +1 -0
  441. package/dist/lib/types/asset.d.ts +73 -0
  442. package/dist/lib/types/asset.d.ts.map +1 -0
  443. package/dist/lib/types/asset.js +1 -0
  444. package/dist/lib/types/asset.js.map +1 -0
  445. package/dist/lib/types/auth.d.ts +62 -0
  446. package/dist/lib/types/auth.d.ts.map +1 -0
  447. package/dist/lib/types/auth.js +7 -5
  448. package/dist/lib/types/auth.js.map +1 -0
  449. package/dist/lib/types/config.d.ts +77 -0
  450. package/dist/lib/types/config.d.ts.map +1 -0
  451. package/dist/lib/types/config.js +1 -0
  452. package/dist/lib/types/config.js.map +1 -0
  453. package/dist/lib/types/document.d.ts +35 -0
  454. package/dist/lib/types/document.d.ts.map +1 -0
  455. package/dist/lib/types/document.js +1 -0
  456. package/dist/lib/types/document.js.map +1 -0
  457. package/dist/lib/types/filters.d.ts +186 -0
  458. package/dist/lib/types/filters.d.ts.map +1 -0
  459. package/dist/lib/types/filters.js +1 -0
  460. package/dist/lib/types/filters.js.map +1 -0
  461. package/dist/lib/types/index.d.ts +11 -0
  462. package/dist/lib/types/index.d.ts.map +1 -0
  463. package/dist/lib/types/index.js +2 -0
  464. package/dist/lib/types/index.js.map +1 -0
  465. package/dist/lib/types/instance.d.ts +5 -0
  466. package/dist/lib/types/instance.d.ts.map +1 -0
  467. package/dist/lib/types/instance.js +3 -0
  468. package/dist/lib/types/instance.js.map +1 -0
  469. package/dist/lib/types/organization.d.ts +108 -0
  470. package/dist/lib/types/organization.d.ts.map +1 -0
  471. package/dist/lib/types/organization.js +1 -0
  472. package/dist/lib/types/organization.js.map +1 -0
  473. package/dist/lib/types/schemas.d.ts +179 -0
  474. package/dist/lib/types/schemas.d.ts.map +1 -0
  475. package/dist/lib/types/schemas.js +1 -0
  476. package/dist/lib/types/schemas.js.map +1 -0
  477. package/dist/lib/types/sidebar.d.ts +34 -0
  478. package/dist/lib/types/sidebar.d.ts.map +1 -0
  479. package/dist/lib/types/sidebar.js +1 -0
  480. package/dist/lib/types/sidebar.js.map +1 -0
  481. package/dist/lib/types/user.d.ts +14 -0
  482. package/dist/lib/types/user.d.ts.map +1 -0
  483. package/dist/lib/types/user.js +1 -0
  484. package/dist/lib/types/user.js.map +1 -0
  485. package/dist/lib/utils/asset-actions.d.ts +9 -0
  486. package/dist/lib/utils/asset-actions.d.ts.map +1 -0
  487. package/dist/lib/utils/asset-actions.js +28 -0
  488. package/dist/lib/utils/asset-actions.js.map +1 -0
  489. package/dist/lib/utils/content-hash.d.ts +22 -0
  490. package/dist/lib/utils/content-hash.d.ts.map +1 -0
  491. package/dist/lib/utils/content-hash.js +68 -0
  492. package/dist/lib/utils/content-hash.js.map +1 -0
  493. package/dist/lib/utils/default-orderings.d.ts +10 -0
  494. package/dist/lib/utils/default-orderings.d.ts.map +1 -0
  495. package/dist/lib/utils/default-orderings.js +64 -0
  496. package/dist/lib/utils/default-orderings.js.map +1 -0
  497. package/dist/lib/utils/element-events.d.ts +15 -0
  498. package/dist/lib/utils/element-events.d.ts.map +1 -0
  499. package/dist/lib/utils/element-events.js +17 -0
  500. package/dist/lib/utils/element-events.js.map +1 -0
  501. package/dist/lib/utils/field-defaults.d.ts +8 -0
  502. package/dist/lib/utils/field-defaults.d.ts.map +1 -0
  503. package/dist/lib/utils/field-defaults.js +21 -0
  504. package/dist/lib/utils/field-defaults.js.map +1 -0
  505. package/dist/lib/utils/image-url.d.ts +88 -0
  506. package/dist/lib/utils/image-url.d.ts.map +1 -0
  507. package/dist/lib/utils/image-url.js +167 -0
  508. package/dist/lib/utils/image-url.js.map +1 -0
  509. package/dist/lib/utils/index.d.ts +8 -0
  510. package/dist/lib/utils/index.d.ts.map +1 -0
  511. package/dist/lib/utils/index.js +13 -0
  512. package/dist/lib/utils/index.js.map +1 -0
  513. package/dist/lib/utils/initial-value-helpers.d.ts +50 -0
  514. package/dist/lib/utils/initial-value-helpers.d.ts.map +1 -0
  515. package/dist/lib/utils/initial-value-helpers.js +71 -0
  516. package/dist/lib/utils/initial-value-helpers.js.map +1 -0
  517. package/dist/lib/utils/logger.d.ts +9 -0
  518. package/dist/lib/utils/logger.d.ts.map +1 -0
  519. package/dist/lib/utils/logger.js +30 -0
  520. package/dist/lib/utils/logger.js.map +1 -0
  521. package/dist/lib/utils/slug.d.ts +13 -0
  522. package/dist/lib/utils/slug.d.ts.map +1 -0
  523. package/dist/lib/utils/slug.js +31 -0
  524. package/dist/lib/utils/slug.js.map +1 -0
  525. package/dist/lib/utils.d.ts +13 -0
  526. package/dist/lib/utils.d.ts.map +1 -0
  527. package/dist/lib/utils.js +6 -0
  528. package/dist/lib/utils.js.map +1 -0
  529. package/dist/local-api/index.d.ts.map +1 -1
  530. package/dist/local-api/permissions.d.ts.map +1 -1
  531. package/dist/local-api/permissions.js +3 -4
  532. package/dist/routes/assets-bulk.d.ts +3 -0
  533. package/dist/routes/assets-bulk.d.ts.map +1 -0
  534. package/dist/routes/assets-bulk.js +48 -0
  535. package/dist/routes/assets-by-id.d.ts.map +1 -1
  536. package/dist/routes/assets-by-id.js +22 -55
  537. package/dist/routes/assets-cdn.d.ts.map +1 -1
  538. package/dist/routes/assets-cdn.js +12 -50
  539. package/dist/routes/assets-references-counts.d.ts +7 -0
  540. package/dist/routes/assets-references-counts.d.ts.map +1 -0
  541. package/dist/routes/assets-references-counts.js +31 -0
  542. package/dist/routes/assets-references.d.ts +7 -0
  543. package/dist/routes/assets-references.d.ts.map +1 -0
  544. package/dist/routes/assets-references.js +34 -0
  545. package/dist/routes/assets.d.ts.map +1 -1
  546. package/dist/routes/assets.js +27 -6
  547. package/dist/routes/documents-by-id.d.ts.map +1 -1
  548. package/dist/routes/documents-by-id.js +4 -3
  549. package/dist/routes/documents-publish.d.ts.map +1 -1
  550. package/dist/routes/documents-publish.js +3 -2
  551. package/dist/routes/documents-query.d.ts.map +1 -1
  552. package/dist/routes/documents-query.js +2 -1
  553. package/dist/routes/documents.d.ts.map +1 -1
  554. package/dist/routes/documents.js +3 -2
  555. package/dist/routes/organizations-by-id.d.ts.map +1 -1
  556. package/dist/routes/organizations-by-id.js +4 -3
  557. package/dist/routes/organizations-invitations.d.ts.map +1 -1
  558. package/dist/routes/organizations-invitations.js +5 -4
  559. package/dist/routes/organizations-members.d.ts.map +1 -1
  560. package/dist/routes/organizations-members.js +7 -6
  561. package/dist/routes/organizations-switch.d.ts.map +1 -1
  562. package/dist/routes/organizations-switch.js +2 -1
  563. package/dist/routes/organizations.d.ts.map +1 -1
  564. package/dist/routes/organizations.js +3 -2
  565. package/dist/routes/schemas-by-type.d.ts.map +1 -1
  566. package/dist/routes/schemas-by-type.js +3 -2
  567. package/dist/routes/user-preferences.d.ts.map +1 -1
  568. package/dist/routes/user-preferences.js +3 -2
  569. package/dist/routes-exports.d.ts +3 -0
  570. package/dist/routes-exports.d.ts.map +1 -1
  571. package/dist/routes-exports.js +3 -0
  572. package/dist/schema/index.d.ts +6 -0
  573. package/dist/schema/index.d.ts.map +1 -0
  574. package/dist/schema/index.js +11 -0
  575. package/dist/schema-utils/validator.d.ts.map +1 -1
  576. package/dist/schema-utils/validator.js +4 -3
  577. package/dist/server/index.d.ts +2 -0
  578. package/dist/server/index.d.ts.map +1 -1
  579. package/dist/server/index.js +4 -0
  580. package/dist/services/asset-service.d.ts.map +1 -1
  581. package/dist/services/asset-service.js +8 -7
  582. package/dist/storage/adapters/local-storage-adapter.d.ts.map +1 -1
  583. package/dist/storage/adapters/local-storage-adapter.js +5 -4
  584. package/dist/types/auth.d.ts +13 -1
  585. package/dist/types/auth.d.ts.map +1 -1
  586. package/dist/types/auth.js +6 -5
  587. package/dist/types/config.d.ts +14 -1
  588. package/dist/types/config.d.ts.map +1 -1
  589. package/dist/types/document.d.ts +1 -1
  590. package/dist/types/document.d.ts.map +1 -1
  591. package/dist/types/index.d.ts +1 -0
  592. package/dist/types/index.d.ts.map +1 -1
  593. package/dist/types/index.js +1 -0
  594. package/dist/types/instance.d.ts +5 -0
  595. package/dist/types/instance.d.ts.map +1 -0
  596. package/dist/types/instance.js +2 -0
  597. package/dist/types/schemas.d.ts +1 -1
  598. package/dist/types/schemas.d.ts.map +1 -1
  599. package/dist/types/sidebar.d.ts +1 -0
  600. package/dist/types/sidebar.d.ts.map +1 -1
  601. package/dist/utils/asset-actions.d.ts +9 -0
  602. package/dist/utils/asset-actions.d.ts.map +1 -0
  603. package/dist/utils/asset-actions.js +27 -0
  604. package/dist/utils/element-events.d.ts +15 -0
  605. package/dist/utils/element-events.d.ts.map +1 -0
  606. package/dist/utils/element-events.js +16 -0
  607. package/dist/utils/image-url.d.ts.map +1 -1
  608. package/dist/utils/image-url.js +10 -9
  609. package/dist/utils/index.d.ts +1 -0
  610. package/dist/utils/index.d.ts.map +1 -1
  611. package/dist/utils/index.js +2 -0
  612. package/dist/utils/logger.d.ts +9 -0
  613. package/dist/utils/logger.d.ts.map +1 -0
  614. package/dist/utils/logger.js +29 -0
  615. package/package.json +132 -103
  616. package/LICENSE +0 -21
@@ -0,0 +1,34 @@
1
+ import type { SchemaType } from '../types/schemas.js';
2
+ /**
3
+ * Schema utility functions that work with a schema registry
4
+ * These functions accept schemas as parameters to avoid package-level dependencies
5
+ */
6
+ /**
7
+ * Get a schema type by name from a collection of schemas
8
+ */
9
+ export declare function getSchemaByName(schemas: SchemaType[], name: string): SchemaType | null;
10
+ /**
11
+ * Get all available object types (for array field dropdowns)
12
+ */
13
+ export declare function getObjectTypes(schemas: SchemaType[]): SchemaType[];
14
+ /**
15
+ * Get all available document types
16
+ */
17
+ export declare function getDocumentTypes(schemas: SchemaType[]): SchemaType[];
18
+ /**
19
+ * Check if a schema type exists
20
+ */
21
+ export declare function schemaExists(schemas: SchemaType[], name: string): boolean;
22
+ /**
23
+ * Get the available types for an array field
24
+ * Supports both schema references and inline object definitions
25
+ */
26
+ export declare function getArrayTypes(schemas: SchemaType[], arrayField: {
27
+ of?: Array<{
28
+ type: string;
29
+ name?: string;
30
+ title?: string;
31
+ fields?: any[];
32
+ }>;
33
+ }): SchemaType[];
34
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/schema-utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;GAGG;AAEH;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAEtF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAElE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAEpE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC5B,OAAO,EAAE,UAAU,EAAE,EACrB,UAAU,EAAE;IAAE,EAAE,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC,CAAA;CAAE,GACzF,UAAU,EAAE,CA0Bd"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Schema utility functions that work with a schema registry
3
+ * These functions accept schemas as parameters to avoid package-level dependencies
4
+ */
5
+ /**
6
+ * Get a schema type by name from a collection of schemas
7
+ */
8
+ export function getSchemaByName(schemas, name) {
9
+ return schemas.find((schema) => schema.name === name) || null;
10
+ }
11
+ /**
12
+ * Get all available object types (for array field dropdowns)
13
+ */
14
+ export function getObjectTypes(schemas) {
15
+ return schemas.filter((schema) => schema.type === 'object');
16
+ }
17
+ /**
18
+ * Get all available document types
19
+ */
20
+ export function getDocumentTypes(schemas) {
21
+ return schemas.filter((schema) => schema.type === 'document');
22
+ }
23
+ /**
24
+ * Check if a schema type exists
25
+ */
26
+ export function schemaExists(schemas, name) {
27
+ return schemas.some((schema) => schema.name === name);
28
+ }
29
+ /**
30
+ * Get the available types for an array field
31
+ * Supports both schema references and inline object definitions
32
+ */
33
+ export function getArrayTypes(schemas, arrayField) {
34
+ if (!arrayField.of)
35
+ return [];
36
+ const availableTypes = [];
37
+ arrayField.of.forEach((item) => {
38
+ // Check if this is an inline object definition
39
+ if (item.fields) {
40
+ // Create a temporary SchemaType from inline definition
41
+ const schemaName = item.name || item.type;
42
+ availableTypes.push({
43
+ type: 'object',
44
+ name: schemaName,
45
+ title: item.title || item.name || item.type,
46
+ fields: item.fields
47
+ });
48
+ }
49
+ else {
50
+ // Look it up in the schema registry
51
+ const schema = schemas.find((s) => s.name === item.type);
52
+ if (schema) {
53
+ availableTypes.push(schema);
54
+ }
55
+ }
56
+ });
57
+ return availableTypes;
58
+ }
59
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/schema-utils/utils.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAqB,EAAE,IAAY;IAClE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,OAAqB;IACnD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAqB;IACrD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAqB,EAAE,IAAY;IAC/D,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC5B,OAAqB,EACrB,UAA2F;IAE3F,IAAI,CAAC,UAAU,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC;IAE9B,MAAM,cAAc,GAAiB,EAAE,CAAC;IAExC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9B,+CAA+C;QAC/C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,uDAAuD;YACvD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;YAC1C,cAAc,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;gBAC3C,MAAM,EAAE,IAAI,CAAC,MAAM;aACnB,CAAC,CAAC;QACJ,CAAC;aAAM,CAAC;YACP,oCAAoC;YACpC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,MAAM,EAAE,CAAC;gBACZ,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;QACF,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,cAAc,CAAC;AACvB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { SchemaType } from '../types/schemas.js';
2
+ /**
3
+ * Check if a field name is reserved
4
+ */
5
+ export declare function isReservedFieldName(fieldName: string): boolean;
6
+ /**
7
+ * Validate all schema references to ensure they exist
8
+ */
9
+ export declare function validateSchemaReferences(schemas: SchemaType[]): void;
10
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/lib/schema-utils/validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAS,MAAM,kBAAkB,CAAC;AAmB1D;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAoMpE"}
@@ -0,0 +1,167 @@
1
+ import { cmsLogger } from '../utils/logger.js';
2
+ // Reserved field names that conflict with system properties
3
+ const RESERVED_FIELD_NAMES = [
4
+ 'id',
5
+ 'type',
6
+ 'status',
7
+ 'organizationId',
8
+ 'createdBy',
9
+ 'updatedBy',
10
+ 'createdAt',
11
+ 'updatedAt',
12
+ 'publishedAt',
13
+ 'draftData',
14
+ 'publishedData',
15
+ 'publishedHash'
16
+ ];
17
+ /**
18
+ * Check if a field name is reserved
19
+ */
20
+ export function isReservedFieldName(fieldName) {
21
+ return RESERVED_FIELD_NAMES.includes(fieldName);
22
+ }
23
+ /**
24
+ * Validate all schema references to ensure they exist
25
+ */
26
+ export function validateSchemaReferences(schemas) {
27
+ const schemaNames = new Set(schemas.map((schema) => schema.name));
28
+ const errors = [];
29
+ // Primitive field types that don't need schema validation
30
+ const primitiveTypes = [
31
+ 'string',
32
+ 'text',
33
+ 'number',
34
+ 'boolean',
35
+ 'slug',
36
+ 'url',
37
+ 'image',
38
+ 'date',
39
+ 'datetime',
40
+ 'reference'
41
+ ];
42
+ const validFieldTypes = [...primitiveTypes, 'array', 'object'];
43
+ function validateField(field, parentSchema) {
44
+ // Check that field has a valid type (cast to any to access name property)
45
+ if (!field.type) {
46
+ errors.push(`Schema "${parentSchema}" field "${field.name || 'unknown'}" is missing required "type" property`);
47
+ return; // Skip further validation if type is missing
48
+ }
49
+ if (!validFieldTypes.includes(field.type)) {
50
+ errors.push(`Schema "${parentSchema}" field "${field.name}" has invalid type "${field.type}". Valid types: ${validFieldTypes.join(', ')}`);
51
+ }
52
+ // Check for reserved field names
53
+ if (isReservedFieldName(field.name)) {
54
+ errors.push(`Schema "${parentSchema}" uses reserved field name "${field.name}". Reserved names: ${RESERVED_FIELD_NAMES.join(', ')}`);
55
+ }
56
+ // Check array field references
57
+ if (field.type === 'array' && field.of) {
58
+ for (const arrayType of field.of) {
59
+ // Skip validation for primitive types and inline objects
60
+ if (primitiveTypes.includes(arrayType.type)) {
61
+ continue;
62
+ }
63
+ // Skip inline object definitions (has fields property)
64
+ if (arrayType.type === 'object' && arrayType.fields) {
65
+ continue;
66
+ }
67
+ // Only validate if it's a reference to another schema
68
+ if (!schemaNames.has(arrayType.type)) {
69
+ errors.push(`Schema "${parentSchema}" field "${field.name}" references unknown type "${arrayType.type}"`);
70
+ }
71
+ }
72
+ }
73
+ // Check object field references (if they reference external types)
74
+ if (field.type === 'object' && typeof field.fields === 'string') {
75
+ if (!schemaNames.has(field.fields)) {
76
+ errors.push(`Schema "${parentSchema}" field "${field.name}" references unknown object type "${field.fields}"`);
77
+ }
78
+ }
79
+ // Check reference field targets
80
+ if (field.type === 'reference' && 'to' in field && field.to) {
81
+ for (const target of field.to) {
82
+ if (!schemaNames.has(target.type)) {
83
+ errors.push(`Schema "${parentSchema}" field "${field.name}" references unknown document type "${target.type}"`);
84
+ }
85
+ }
86
+ }
87
+ // Recursively check nested fields -- cast type later or something. cba
88
+ if ('fields' in field && Array.isArray(field.fields)) {
89
+ for (const nestedField of field.fields) {
90
+ validateField(nestedField, parentSchema);
91
+ }
92
+ }
93
+ }
94
+ // Validate each schema
95
+ for (const schema of schemas) {
96
+ // Validate schema type
97
+ if (schema.type !== 'document' && schema.type !== 'object') {
98
+ errors.push(`Schema "${schema.name}" has invalid type "${schema.type}". Must be "document" or "object"`);
99
+ }
100
+ if (schema.fields) {
101
+ for (const field of schema.fields) {
102
+ validateField(field, schema.name);
103
+ }
104
+ }
105
+ // Validate preview config references
106
+ if (schema.preview?.select) {
107
+ const fieldNames = new Set(schema.fields?.map((f) => f.name) || []);
108
+ // Validate title field reference
109
+ if (schema.preview.select.title && !fieldNames.has(schema.preview.select.title)) {
110
+ errors.push(`Schema "${schema.name}" preview.select.title references unknown field "${schema.preview.select.title}"`);
111
+ }
112
+ // Validate subtitle field reference
113
+ if (schema.preview.select.subtitle && !fieldNames.has(schema.preview.select.subtitle)) {
114
+ errors.push(`Schema "${schema.name}" preview.select.subtitle references unknown field "${schema.preview.select.subtitle}"`);
115
+ }
116
+ // Validate media field reference
117
+ if (schema.preview.select.media && !fieldNames.has(schema.preview.select.media)) {
118
+ errors.push(`Schema "${schema.name}" preview.select.media references unknown field "${schema.preview.select.media}"`);
119
+ }
120
+ }
121
+ // Validate orderings
122
+ if (schema.orderings && schema.orderings.length > 0) {
123
+ const fieldNames = new Set(schema.fields?.map((f) => f.name) || []);
124
+ // Add meta fields that are always available
125
+ fieldNames.add('createdAt');
126
+ fieldNames.add('updatedAt');
127
+ for (const ordering of schema.orderings) {
128
+ // Validate ordering has required properties
129
+ if (!ordering.name) {
130
+ errors.push(`Schema "${schema.name}" has an ordering without a "name" property`);
131
+ continue;
132
+ }
133
+ if (!ordering.title) {
134
+ errors.push(`Schema "${schema.name}" ordering "${ordering.name}" is missing required "title" property`);
135
+ }
136
+ if (!ordering.by || ordering.by.length === 0) {
137
+ errors.push(`Schema "${schema.name}" ordering "${ordering.name}" is missing required "by" array`);
138
+ continue;
139
+ }
140
+ // Validate each field in the ordering
141
+ for (const orderItem of ordering.by) {
142
+ if (!orderItem.field) {
143
+ errors.push(`Schema "${schema.name}" ordering "${ordering.name}" has an item without a "field" property`);
144
+ continue;
145
+ }
146
+ if (!fieldNames.has(orderItem.field)) {
147
+ errors.push(`Schema "${schema.name}" ordering "${ordering.name}" references unknown field "${orderItem.field}"`);
148
+ }
149
+ if (orderItem.direction &&
150
+ orderItem.direction !== 'asc' &&
151
+ orderItem.direction !== 'desc') {
152
+ errors.push(`Schema "${schema.name}" ordering "${ordering.name}" field "${orderItem.field}" has invalid direction "${orderItem.direction}". Must be "asc" or "desc"`);
153
+ }
154
+ }
155
+ }
156
+ }
157
+ }
158
+ // Throw error if any validation issues found
159
+ if (errors.length > 0) {
160
+ cmsLogger.error('[Schema]', 'Validation errors:');
161
+ errors.forEach((error) => cmsLogger.error('[Schema]', error));
162
+ // Just throw the errors directly
163
+ throw new Error(errors.join('\n'));
164
+ }
165
+ cmsLogger.info('[Schema]', 'Validation passed - all references are valid');
166
+ }
167
+ //# sourceMappingURL=validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../src/lib/schema-utils/validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export * from '../types/index.js';
2
+ export * from '../auth/provider.js';
3
+ export * from '../email/index.js';
4
+ export { AuthError, type AuthErrorCode } from '../auth/auth-errors.js';
5
+ export { createCMSConfig } from '../config.js';
6
+ export { CMSEngine } from '../engine.js';
7
+ export { createCMSHook, type CMSInstances } from '../hooks.js';
8
+ export * from '../db/interfaces/index.js';
9
+ export * from '../storage/index.js';
10
+ export * from '../storage/interfaces/index.js';
11
+ export * from '../storage/providers/storage.js';
12
+ export * from '../services/index.js';
13
+ export { AssetService } from '../services/asset-service.js';
14
+ export * from '../routes-exports.js';
15
+ export * from '../schema-utils/index.js';
16
+ export { createHashForPublishing } from '../utils/content-hash.js';
17
+ export { createGraphQLHandler, type GraphQLConfig, type GraphQLSettings, type GraphQLHandlerResult } from '../graphql/index.js';
18
+ export { LocalAPI, createLocalAPI, getLocalAPI, CollectionAPI, PermissionChecker, PermissionError, type Collections, type LocalAPIContext, type CreateOptions, type UpdateOptions } from '../local-api/index.js';
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/server/index.ts"],"names":[],"mappings":"AAIA,cAAc,gBAAgB,CAAC;AAE/B,cAAc,kBAAkB,CAAC;AAEjC,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAG5D,cAAc,wBAAwB,CAAC;AAGvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAG7C,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAIzD,cAAc,mBAAmB,CAAC;AAGlC,cAAc,uBAAuB,CAAC;AAGtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGhE,OAAO,EACN,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACN,QAAQ,EACR,cAAc,EACd,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,35 @@
1
+ // Aphex CMS Core - Server-side exports
2
+ // These require Node.js and should NOT be imported client-side
3
+ // Export all core types from the new central location
4
+ export * from '../types/index.js';
5
+ export * from '../auth/provider.js';
6
+ export * from '../email/index.js';
7
+ // Authentication errors
8
+ export { AuthError } from '../auth/auth-errors.js';
9
+ // Configuration system
10
+ export { createCMSConfig } from '../config.js';
11
+ // CMS Engine
12
+ export { CMSEngine } from '../engine.js';
13
+ // Hooks integration (SvelteKit server hooks)
14
+ export { createCMSHook } from '../hooks.js';
15
+ // Database interfaces (no longer export registry or adapters - use adapter packages)
16
+ export * from '../db/interfaces/index.js';
17
+ // Storage adapters and interfaces
18
+ export * from '../storage/index.js';
19
+ export * from '../storage/interfaces/index.js';
20
+ export * from '../storage/providers/storage.js';
21
+ // Services (includes sharp for image processing)
22
+ export * from '../services/index.js';
23
+ export { AssetService } from '../services/asset-service.js';
24
+ // API Route handlers (for re-exporting in your app's API routes)
25
+ // Re-export from routes-exports to avoid .js extension issues in workspace
26
+ export * from '../routes-exports.js';
27
+ // Schema utilities
28
+ export * from '../schema-utils/index.js';
29
+ // Content hash utilities (server-side)
30
+ export { createHashForPublishing } from '../utils/content-hash.js';
31
+ // GraphQL (built-in, enabled by default)
32
+ export { createGraphQLHandler } from '../graphql/index.js';
33
+ // Local API (unified operations layer)
34
+ export { LocalAPI, createLocalAPI, getLocalAPI, CollectionAPI, PermissionChecker, PermissionError } from '../local-api/index.js';
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/server/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,+DAA+D;AAE/D,sDAAsD;AACtD,cAAc,gBAAgB,CAAC;AAE/B,cAAc,kBAAkB,CAAC;AAEjC,cAAc,gBAAgB,CAAC;AAE/B,wBAAwB;AACxB,OAAO,EAAE,SAAS,EAAsB,MAAM,qBAAqB,CAAC;AAEpE,uBAAuB;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,aAAa;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,6CAA6C;AAC7C,OAAO,EAAE,aAAa,EAAqB,MAAM,UAAU,CAAC;AAE5D,qFAAqF;AACrF,cAAc,wBAAwB,CAAC;AAEvC,kCAAkC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAE7C,iDAAiD;AACjD,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,iEAAiE;AACjE,2EAA2E;AAC3E,cAAc,mBAAmB,CAAC;AAElC,mBAAmB;AACnB,cAAc,uBAAuB,CAAC;AAEtC,uCAAuC;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,yCAAyC;AACzC,OAAO,EACN,oBAAoB,EAIpB,MAAM,kBAAkB,CAAC;AAE1B,uCAAuC;AACvC,OAAO,EACN,QAAQ,EACR,cAAc,EACd,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,eAAe,EAKf,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,86 @@
1
+ import type { StorageAdapter } from '../storage/interfaces/storage.js';
2
+ import type { DatabaseAdapter } from '../db/interfaces/index.js';
3
+ import type { Asset } from '../types/index.js';
4
+ export interface AssetUploadData {
5
+ buffer: Buffer;
6
+ originalFilename: string;
7
+ mimeType: string;
8
+ size: number;
9
+ title?: string;
10
+ description?: string;
11
+ alt?: string;
12
+ creditLine?: string;
13
+ createdBy?: string;
14
+ metadata?: {
15
+ schemaType?: string;
16
+ fieldPath?: string;
17
+ [key: string]: any;
18
+ };
19
+ }
20
+ export interface AssetFilters {
21
+ assetType?: 'image' | 'file';
22
+ mimeType?: string;
23
+ search?: string;
24
+ limit?: number;
25
+ offset?: number;
26
+ }
27
+ /**
28
+ * Asset service - coordinates storage and database operations
29
+ * Maintains separation of concerns while providing unified asset management
30
+ */
31
+ export declare class AssetService {
32
+ private storage;
33
+ private database;
34
+ constructor(storage: StorageAdapter, database: DatabaseAdapter);
35
+ /**
36
+ * Upload and store an asset
37
+ */
38
+ uploadAsset(organizationId: string, data: AssetUploadData): Promise<Asset>;
39
+ /**
40
+ * Find asset by ID
41
+ */
42
+ findAssetById(organizationId: string, id: string): Promise<Asset | null>;
43
+ /**
44
+ * Find asset by ID globally (bypasses organization filter for public asset access)
45
+ * Only available on PostgreSQL adapter with RLS bypass
46
+ */
47
+ findAssetByIdGlobal(id: string): Promise<Asset | null>;
48
+ /**
49
+ * Find multiple assets with filtering
50
+ */
51
+ findAssets(organizationId: string, filters?: AssetFilters): Promise<Asset[]>;
52
+ /**
53
+ * Delete asset (both file and database record)
54
+ *
55
+ * Note: If the asset was stored by a different adapter (e.g., switching from R2 to local),
56
+ * file deletion may fail. The database record will still be removed for a clean state.
57
+ */
58
+ deleteAsset(organizationId: string, id: string): Promise<boolean>;
59
+ /**
60
+ * Update asset metadata
61
+ */
62
+ updateAssetMetadata(organizationId: string, id: string, metadata: {
63
+ title?: string;
64
+ description?: string;
65
+ alt?: string;
66
+ creditLine?: string;
67
+ updatedBy?: string;
68
+ }): Promise<Asset | null>;
69
+ /**
70
+ * Get asset statistics
71
+ */
72
+ getAssetStats(organizationId: string): Promise<{
73
+ totalAssets: number;
74
+ totalImages: number;
75
+ totalFiles: number;
76
+ totalSize: number;
77
+ }>;
78
+ /**
79
+ * Get health status of both storage and database
80
+ */
81
+ getHealthStatus(): Promise<{
82
+ storage: boolean;
83
+ database: boolean;
84
+ }>;
85
+ }
86
+ //# sourceMappingURL=asset-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/asset-service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAG5C,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE;QACV,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACnB,CAAC;CACF;AAED,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;;;GAGG;AACH,qBAAa,YAAY;IAEvB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ;gBADR,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,eAAe;IAGlC;;OAEG;IACG,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC;IAoFhF;;OAEG;IACG,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAI9E;;;OAGG;IACG,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAmB5D;;OAEG;IACG,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAItF;;;;;OAKG;IACG,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA2BvE;;OAEG;IACG,mBAAmB,CACxB,cAAc,EAAE,MAAM,EACtB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACnB,GACC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAIxB;;OAEG;IACG,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC;QACpD,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KAClB,CAAC;IAeF;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC;QAChC,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,OAAO,CAAC;KAClB,CAAC;CAWF"}
@@ -0,0 +1,189 @@
1
+ // Asset service - orchestrates storage and database operations
2
+ import sharp from 'sharp';
3
+ import { cmsLogger } from '../utils/logger.js';
4
+ /**
5
+ * Asset service - coordinates storage and database operations
6
+ * Maintains separation of concerns while providing unified asset management
7
+ */
8
+ export class AssetService {
9
+ storage;
10
+ database;
11
+ constructor(storage, database) {
12
+ this.storage = storage;
13
+ this.database = database;
14
+ }
15
+ /**
16
+ * Upload and store an asset
17
+ */
18
+ async uploadAsset(organizationId, data) {
19
+ // Determine asset type
20
+ const assetType = data.mimeType.startsWith('image/') ? 'image' : 'file';
21
+ // Extract image metadata if it's an image
22
+ let width;
23
+ let height;
24
+ let metadata = {
25
+ // Include field metadata for privacy checking
26
+ ...data.metadata
27
+ };
28
+ if (assetType === 'image') {
29
+ try {
30
+ const imageMetadata = await sharp(data.buffer).metadata();
31
+ width = imageMetadata.width;
32
+ height = imageMetadata.height;
33
+ // Merge image metadata with field metadata
34
+ metadata = {
35
+ ...metadata, // Keep schemaType and fieldPath
36
+ format: imageMetadata.format,
37
+ space: imageMetadata.space,
38
+ channels: imageMetadata.channels,
39
+ density: imageMetadata.density,
40
+ hasProfile: imageMetadata.hasProfile,
41
+ hasAlpha: imageMetadata.hasAlpha
42
+ };
43
+ // Add dominant color
44
+ const stats = await sharp(data.buffer).stats();
45
+ metadata.dominantColor = stats.dominant;
46
+ }
47
+ catch (error) {
48
+ cmsLogger.warn('Could not extract image metadata:', error);
49
+ }
50
+ }
51
+ // 1. Store file using storage adapter
52
+ const storageFile = await this.storage.store({
53
+ buffer: data.buffer,
54
+ filename: data.originalFilename,
55
+ mimeType: data.mimeType,
56
+ size: data.size
57
+ });
58
+ // 2. Save asset metadata using database adapter
59
+ try {
60
+ const asset = await this.database.createAsset({
61
+ assetType,
62
+ filename: storageFile.path.split('/').pop() || data.originalFilename,
63
+ originalFilename: data.originalFilename,
64
+ mimeType: data.mimeType,
65
+ size: data.size,
66
+ url: storageFile.url || '', // Empty for local storage initially
67
+ path: storageFile.path,
68
+ storageAdapter: this.storage.name,
69
+ organizationId,
70
+ width,
71
+ height,
72
+ metadata,
73
+ title: data.title || undefined,
74
+ description: data.description || undefined,
75
+ alt: data.alt || undefined,
76
+ creditLine: data.creditLine || undefined,
77
+ createdBy: data.createdBy
78
+ });
79
+ // If using local storage, generate and store the CDN URL with the real asset ID
80
+ if (!storageFile.url) {
81
+ const cdnUrl = `/media/${asset.id}/${encodeURIComponent(asset.originalFilename)}`;
82
+ // Update both the object and the database
83
+ asset.url = cdnUrl;
84
+ await this.database.updateAsset(organizationId, asset.id, { url: cdnUrl });
85
+ }
86
+ return asset;
87
+ }
88
+ catch (error) {
89
+ // If database save fails, clean up the stored file
90
+ await this.storage.delete(storageFile.path);
91
+ throw error;
92
+ }
93
+ }
94
+ /**
95
+ * Find asset by ID
96
+ */
97
+ async findAssetById(organizationId, id) {
98
+ return await this.database.findAssetById(organizationId, id);
99
+ }
100
+ /**
101
+ * Find asset by ID globally (bypasses organization filter for public asset access)
102
+ * Only available on PostgreSQL adapter with RLS bypass
103
+ */
104
+ async findAssetByIdGlobal(id) {
105
+ // Check if the adapter has the global method
106
+ if ('findAssetByIdGlobal' in this.database &&
107
+ typeof this.database.findAssetByIdGlobal === 'function') {
108
+ cmsLogger.debug('[AssetService] Using findAssetByIdGlobal from adapter');
109
+ return await this.database.findAssetByIdGlobal(id);
110
+ }
111
+ // Fallback: not supported
112
+ cmsLogger.warn('[AssetService] findAssetByIdGlobal not supported by this database adapter');
113
+ cmsLogger.warn('[AssetService] Database adapter type:', this.database.constructor.name);
114
+ cmsLogger.warn('[AssetService] Available methods:', Object.getOwnPropertyNames(Object.getPrototypeOf(this.database)));
115
+ return null;
116
+ }
117
+ /**
118
+ * Find multiple assets with filtering
119
+ */
120
+ async findAssets(organizationId, filters = {}) {
121
+ return await this.database.findAssets(organizationId, filters);
122
+ }
123
+ /**
124
+ * Delete asset (both file and database record)
125
+ *
126
+ * Note: If the asset was stored by a different adapter (e.g., switching from R2 to local),
127
+ * file deletion may fail. The database record will still be removed for a clean state.
128
+ */
129
+ async deleteAsset(organizationId, id) {
130
+ const asset = await this.database.findAssetById(organizationId, id);
131
+ if (!asset) {
132
+ return false;
133
+ }
134
+ // Try to delete file from storage
135
+ // If the asset was stored by a different adapter, this may fail
136
+ if (asset.storageAdapter === this.storage.name) {
137
+ // Same adapter - delete should work
138
+ try {
139
+ await this.storage.delete(asset.path);
140
+ }
141
+ catch (error) {
142
+ cmsLogger.warn(`Failed to delete file from storage: ${asset.path}`, error);
143
+ }
144
+ }
145
+ else {
146
+ // Different adapter - log warning but continue with database cleanup
147
+ cmsLogger.warn(`Asset ${id} was stored by '${asset.storageAdapter}' but current adapter is '${this.storage.name}'. ` +
148
+ `File at ${asset.path} may need manual cleanup.`);
149
+ }
150
+ // Always delete database record for clean state
151
+ return await this.database.deleteAsset(organizationId, id);
152
+ }
153
+ /**
154
+ * Update asset metadata
155
+ */
156
+ async updateAssetMetadata(organizationId, id, metadata) {
157
+ return await this.database.updateAsset(organizationId, id, metadata);
158
+ }
159
+ /**
160
+ * Get asset statistics
161
+ */
162
+ async getAssetStats(organizationId) {
163
+ const [totalAssets, assetsByType, totalSize] = await Promise.all([
164
+ this.database.countAssets(organizationId),
165
+ this.database.countAssetsByType(organizationId),
166
+ this.database.getTotalAssetsSize(organizationId)
167
+ ]);
168
+ return {
169
+ totalAssets,
170
+ totalImages: assetsByType.image || 0,
171
+ totalFiles: assetsByType.file || 0,
172
+ totalSize
173
+ };
174
+ }
175
+ /**
176
+ * Get health status of both storage and database
177
+ */
178
+ async getHealthStatus() {
179
+ const [storageHealthy, databaseHealthy] = await Promise.all([
180
+ this.storage.isHealthy(),
181
+ this.database.isHealthy()
182
+ ]);
183
+ return {
184
+ storage: storageHealthy,
185
+ database: databaseHealthy
186
+ };
187
+ }
188
+ }
189
+ //# sourceMappingURL=asset-service.js.map