@aphexcms/cms-core 0.1.11 → 0.1.13

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 (399) hide show
  1. package/LICENSE +21 -0
  2. package/dist/api/assets.d.ts +48 -0
  3. package/dist/api/assets.d.ts.map +1 -0
  4. package/dist/api/assets.js +52 -0
  5. package/dist/api/client.d.ts +37 -0
  6. package/dist/api/client.d.ts.map +1 -0
  7. package/dist/api/client.js +125 -0
  8. package/dist/api/documents.d.ts +57 -0
  9. package/dist/api/documents.d.ts.map +1 -0
  10. package/dist/api/documents.js +85 -0
  11. package/dist/api/index.d.ts +7 -0
  12. package/dist/api/index.d.ts.map +1 -0
  13. package/dist/api/index.js +5 -0
  14. package/dist/api/organizations.d.ts +101 -0
  15. package/dist/api/organizations.d.ts.map +1 -0
  16. package/dist/api/organizations.js +92 -0
  17. package/dist/api/types.d.ts +45 -0
  18. package/dist/api/types.d.ts.map +1 -0
  19. package/dist/api/types.js +1 -0
  20. package/dist/auth/auth-errors.d.ts +7 -0
  21. package/dist/auth/auth-errors.d.ts.map +1 -0
  22. package/dist/auth/auth-errors.js +13 -0
  23. package/dist/auth/auth-hooks.d.ts +6 -0
  24. package/dist/auth/auth-hooks.d.ts.map +1 -0
  25. package/dist/auth/auth-hooks.js +122 -0
  26. package/dist/auth/provider.d.ts +17 -0
  27. package/dist/auth/provider.d.ts.map +1 -0
  28. package/dist/auth/provider.js +1 -0
  29. package/dist/cli/generate-types.js +218 -0
  30. package/dist/cli/index.js +86 -0
  31. package/dist/client/index.d.ts +24 -0
  32. package/dist/client/index.d.ts.map +1 -0
  33. package/{src/lib/client/index.ts → dist/client/index.js} +7 -18
  34. package/{src/lib → dist}/components/AdminApp.svelte +26 -55
  35. package/dist/components/AdminApp.svelte.d.ts +24 -0
  36. package/dist/components/AdminApp.svelte.d.ts.map +1 -0
  37. package/dist/components/admin/AdminLayout.svelte.d.ts +15 -0
  38. package/dist/components/admin/AdminLayout.svelte.d.ts.map +1 -0
  39. package/{src/lib → dist}/components/admin/DocumentEditor.svelte +60 -14
  40. package/dist/components/admin/DocumentEditor.svelte.d.ts +18 -0
  41. package/dist/components/admin/DocumentEditor.svelte.d.ts.map +1 -0
  42. package/dist/components/admin/DocumentTypesList.svelte.d.ts +14 -0
  43. package/dist/components/admin/DocumentTypesList.svelte.d.ts.map +1 -0
  44. package/dist/components/admin/ObjectModal.svelte.d.ts +15 -0
  45. package/dist/components/admin/ObjectModal.svelte.d.ts.map +1 -0
  46. package/dist/components/admin/SchemaField.svelte.d.ts +19 -0
  47. package/dist/components/admin/SchemaField.svelte.d.ts.map +1 -0
  48. package/dist/components/admin/fields/ArrayField.svelte.d.ts +12 -0
  49. package/dist/components/admin/fields/ArrayField.svelte.d.ts.map +1 -0
  50. package/dist/components/admin/fields/BooleanField.svelte.d.ts +13 -0
  51. package/dist/components/admin/fields/BooleanField.svelte.d.ts.map +1 -0
  52. package/dist/components/admin/fields/ImageField.svelte.d.ts +15 -0
  53. package/dist/components/admin/fields/ImageField.svelte.d.ts.map +1 -0
  54. package/dist/components/admin/fields/NumberField.svelte.d.ts +14 -0
  55. package/dist/components/admin/fields/NumberField.svelte.d.ts.map +1 -0
  56. package/{src/lib → dist}/components/admin/fields/ReferenceField.svelte +2 -3
  57. package/dist/components/admin/fields/ReferenceField.svelte.d.ts +12 -0
  58. package/dist/components/admin/fields/ReferenceField.svelte.d.ts.map +1 -0
  59. package/dist/components/admin/fields/SlugField.svelte.d.ts +15 -0
  60. package/dist/components/admin/fields/SlugField.svelte.d.ts.map +1 -0
  61. package/dist/components/admin/fields/StringField.svelte.d.ts +14 -0
  62. package/dist/components/admin/fields/StringField.svelte.d.ts.map +1 -0
  63. package/dist/components/admin/fields/TextareaField.svelte.d.ts +14 -0
  64. package/dist/components/admin/fields/TextareaField.svelte.d.ts.map +1 -0
  65. package/dist/components/fields/index.d.ts +9 -0
  66. package/dist/components/fields/index.d.ts.map +1 -0
  67. package/dist/components/index.d.ts +7 -0
  68. package/dist/components/index.d.ts.map +1 -0
  69. package/{src/lib/components/index.ts → dist/components/index.js} +1 -5
  70. package/dist/components/layout/OrganizationSwitcher.svelte.d.ts +11 -0
  71. package/dist/components/layout/OrganizationSwitcher.svelte.d.ts.map +1 -0
  72. package/dist/components/layout/Sidebar.svelte.d.ts +14 -0
  73. package/dist/components/layout/Sidebar.svelte.d.ts.map +1 -0
  74. package/dist/components/layout/sidebar/AppSidebar.svelte.d.ts +11 -0
  75. package/dist/components/layout/sidebar/AppSidebar.svelte.d.ts.map +1 -0
  76. package/dist/components/layout/sidebar/NavMain.svelte.d.ts +19 -0
  77. package/dist/components/layout/sidebar/NavMain.svelte.d.ts.map +1 -0
  78. package/dist/components/layout/sidebar/NavSecondary.svelte.d.ts +9 -0
  79. package/dist/components/layout/sidebar/NavSecondary.svelte.d.ts.map +1 -0
  80. package/dist/components/layout/sidebar/NavUser.svelte.d.ts +9 -0
  81. package/dist/components/layout/sidebar/NavUser.svelte.d.ts.map +1 -0
  82. package/dist/config.d.ts +3 -0
  83. package/dist/config.d.ts.map +1 -0
  84. package/dist/config.js +15 -0
  85. package/dist/db/adapters/index.d.ts +1 -0
  86. package/dist/db/adapters/index.d.ts.map +1 -0
  87. package/{src/lib/db/adapters/index.ts → dist/db/adapters/index.js} +1 -0
  88. package/dist/db/index.d.ts +2 -0
  89. package/dist/db/index.d.ts.map +1 -0
  90. package/{src/lib/db/index.ts → dist/db/index.js} +1 -2
  91. package/dist/db/interfaces/asset.d.ts +73 -0
  92. package/dist/db/interfaces/asset.d.ts.map +1 -0
  93. package/dist/db/interfaces/asset.js +1 -0
  94. package/dist/db/interfaces/document.d.ts +61 -0
  95. package/dist/db/interfaces/document.d.ts.map +1 -0
  96. package/dist/db/interfaces/document.js +1 -0
  97. package/dist/db/interfaces/index.d.ts +73 -0
  98. package/dist/db/interfaces/index.d.ts.map +1 -0
  99. package/dist/db/interfaces/index.js +1 -0
  100. package/dist/db/interfaces/organization.d.ts +27 -0
  101. package/dist/db/interfaces/organization.d.ts.map +1 -0
  102. package/dist/db/interfaces/organization.js +1 -0
  103. package/dist/db/interfaces/schema.d.ts +21 -0
  104. package/dist/db/interfaces/schema.d.ts.map +1 -0
  105. package/dist/db/interfaces/schema.js +1 -0
  106. package/dist/db/interfaces/user.d.ts +15 -0
  107. package/dist/db/interfaces/user.d.ts.map +1 -0
  108. package/dist/db/interfaces/user.js +1 -0
  109. package/dist/db/utils/reference-resolver.d.ts +18 -0
  110. package/dist/db/utils/reference-resolver.d.ts.map +1 -0
  111. package/dist/db/utils/reference-resolver.js +80 -0
  112. package/dist/define.d.ts +3 -0
  113. package/dist/define.d.ts.map +1 -0
  114. package/dist/define.js +4 -0
  115. package/dist/email/index.d.ts +2 -0
  116. package/dist/email/index.d.ts.map +1 -0
  117. package/{src/lib/email/index.ts → dist/email/index.js} +1 -2
  118. package/dist/email/interfaces/email.d.ts +42 -0
  119. package/dist/email/interfaces/email.d.ts.map +1 -0
  120. package/dist/email/interfaces/email.js +1 -0
  121. package/dist/engine.d.ts +26 -0
  122. package/dist/engine.d.ts.map +1 -0
  123. package/dist/engine.js +66 -0
  124. package/dist/field-validation/rule.d.ts +51 -0
  125. package/dist/field-validation/rule.d.ts.map +1 -0
  126. package/dist/field-validation/rule.js +221 -0
  127. package/dist/field-validation/utils.d.ts +39 -0
  128. package/dist/field-validation/utils.d.ts.map +1 -0
  129. package/dist/field-validation/utils.js +99 -0
  130. package/dist/hooks.d.ts +25 -0
  131. package/dist/hooks.d.ts.map +1 -0
  132. package/dist/hooks.js +164 -0
  133. package/dist/index.d.ts +2 -0
  134. package/dist/index.d.ts.map +1 -0
  135. package/{src/lib/index.ts → dist/index.js} +1 -2
  136. package/dist/is-mobile.svelte.d.ts +5 -0
  137. package/dist/is-mobile.svelte.d.ts.map +1 -0
  138. package/{src/lib/is-mobile.svelte.ts → dist/is-mobile.svelte.js} +3 -5
  139. package/dist/lib/auth/provider.js +1 -0
  140. package/dist/lib/db/index.js +4 -0
  141. package/dist/lib/db/interfaces/asset.js +1 -0
  142. package/dist/lib/db/interfaces/document.js +1 -0
  143. package/dist/lib/db/interfaces/index.js +1 -0
  144. package/dist/lib/db/interfaces/organization.js +1 -0
  145. package/dist/lib/db/interfaces/schema.js +1 -0
  146. package/dist/lib/db/interfaces/user.js +1 -0
  147. package/dist/lib/email/index.js +4 -0
  148. package/dist/lib/email/interfaces/email.js +1 -0
  149. package/dist/lib/field-validation/rule.js +221 -0
  150. package/dist/lib/field-validation/utils.js +99 -0
  151. package/dist/lib/storage/interfaces/index.js +2 -0
  152. package/dist/lib/storage/interfaces/storage.js +1 -0
  153. package/dist/lib/types/asset.js +2 -0
  154. package/dist/lib/types/auth.js +41 -0
  155. package/dist/lib/types/config.js +1 -0
  156. package/dist/lib/types/document.js +1 -0
  157. package/dist/lib/types/filters.js +5 -0
  158. package/dist/lib/types/index.js +9 -0
  159. package/dist/lib/types/organization.js +3 -0
  160. package/dist/lib/types/schemas.js +1 -0
  161. package/dist/lib/types/sidebar.js +1 -0
  162. package/dist/lib/types/user.js +1 -0
  163. package/dist/local-api/auth-helpers.d.ts +65 -0
  164. package/dist/local-api/auth-helpers.d.ts.map +1 -0
  165. package/dist/local-api/auth-helpers.js +102 -0
  166. package/dist/local-api/collection-api.d.ts +138 -0
  167. package/dist/local-api/collection-api.d.ts.map +1 -0
  168. package/dist/local-api/collection-api.js +276 -0
  169. package/dist/local-api/index.d.ts +108 -0
  170. package/dist/local-api/index.d.ts.map +1 -0
  171. package/dist/local-api/index.js +157 -0
  172. package/dist/local-api/permissions.d.ts +45 -0
  173. package/dist/local-api/permissions.d.ts.map +1 -0
  174. package/dist/local-api/permissions.js +117 -0
  175. package/dist/local-api/types.d.ts +65 -0
  176. package/dist/local-api/types.d.ts.map +1 -0
  177. package/dist/local-api/types.js +4 -0
  178. package/dist/routes/assets-by-id.d.ts +5 -0
  179. package/dist/routes/assets-by-id.d.ts.map +1 -0
  180. package/dist/routes/assets-by-id.js +138 -0
  181. package/dist/routes/assets-cdn.d.ts +3 -0
  182. package/dist/routes/assets-cdn.d.ts.map +1 -0
  183. package/dist/routes/assets-cdn.js +155 -0
  184. package/dist/routes/assets.d.ts +4 -0
  185. package/dist/routes/assets.d.ts.map +1 -0
  186. package/dist/routes/assets.js +94 -0
  187. package/dist/routes/documents-by-id.d.ts +5 -0
  188. package/dist/routes/documents-by-id.d.ts.map +1 -0
  189. package/dist/routes/documents-by-id.js +163 -0
  190. package/dist/routes/documents-publish.d.ts +4 -0
  191. package/dist/routes/documents-publish.d.ts.map +1 -0
  192. package/dist/routes/documents-publish.js +136 -0
  193. package/dist/routes/documents-query.d.ts +24 -0
  194. package/dist/routes/documents-query.d.ts.map +1 -0
  195. package/dist/routes/documents-query.js +95 -0
  196. package/dist/routes/documents.d.ts +4 -0
  197. package/dist/routes/documents.d.ts.map +1 -0
  198. package/dist/routes/documents.js +136 -0
  199. package/dist/routes/index.d.ts +8 -0
  200. package/dist/routes/index.d.ts.map +1 -0
  201. package/dist/routes/index.js +12 -0
  202. package/dist/routes/organizations-by-id.d.ts +5 -0
  203. package/dist/routes/organizations-by-id.d.ts.map +1 -0
  204. package/dist/routes/organizations-by-id.js +187 -0
  205. package/dist/routes/organizations-invitations.d.ts +4 -0
  206. package/dist/routes/organizations-invitations.d.ts.map +1 -0
  207. package/dist/routes/organizations-invitations.js +125 -0
  208. package/dist/routes/organizations-members.d.ts +5 -0
  209. package/dist/routes/organizations-members.d.ts.map +1 -0
  210. package/dist/routes/organizations-members.js +206 -0
  211. package/dist/routes/organizations-switch.d.ts +3 -0
  212. package/dist/routes/organizations-switch.d.ts.map +1 -0
  213. package/dist/routes/organizations-switch.js +53 -0
  214. package/dist/routes/organizations.d.ts +4 -0
  215. package/dist/routes/organizations.d.ts.map +1 -0
  216. package/dist/routes/organizations.js +109 -0
  217. package/dist/routes/schemas-by-type.d.ts +3 -0
  218. package/dist/routes/schemas-by-type.d.ts.map +1 -0
  219. package/dist/routes/schemas-by-type.js +25 -0
  220. package/dist/routes/schemas.d.ts +3 -0
  221. package/dist/routes/schemas.d.ts.map +1 -0
  222. package/dist/routes/schemas.js +11 -0
  223. package/dist/routes-exports.d.ts +14 -0
  224. package/dist/routes-exports.d.ts.map +1 -0
  225. package/dist/routes-exports.js +19 -0
  226. package/dist/schema-context.svelte.d.ts +10 -0
  227. package/dist/schema-context.svelte.d.ts.map +1 -0
  228. package/dist/schema-context.svelte.js +18 -0
  229. package/dist/schema-utils/cleanup.d.ts +21 -0
  230. package/dist/schema-utils/cleanup.d.ts.map +1 -0
  231. package/dist/schema-utils/cleanup.js +80 -0
  232. package/dist/schema-utils/index.d.ts +4 -0
  233. package/dist/schema-utils/index.d.ts.map +1 -0
  234. package/dist/schema-utils/index.js +4 -0
  235. package/dist/schema-utils/utils.d.ts +30 -0
  236. package/dist/schema-utils/utils.d.ts.map +1 -0
  237. package/dist/schema-utils/utils.js +37 -0
  238. package/dist/schema-utils/validator.d.ts +6 -0
  239. package/dist/schema-utils/validator.d.ts.map +1 -0
  240. package/dist/schema-utils/validator.js +45 -0
  241. package/dist/server/index.d.ts +17 -0
  242. package/dist/server/index.d.ts.map +1 -0
  243. package/dist/server/index.js +30 -0
  244. package/dist/services/asset-service.d.ts +86 -0
  245. package/dist/services/asset-service.d.ts.map +1 -0
  246. package/dist/services/asset-service.js +187 -0
  247. package/dist/services/index.d.ts +3 -0
  248. package/dist/services/index.d.ts.map +1 -0
  249. package/dist/services/index.js +4 -0
  250. package/dist/storage/adapters/index.d.ts +2 -0
  251. package/dist/storage/adapters/index.d.ts.map +1 -0
  252. package/dist/storage/adapters/index.js +2 -0
  253. package/dist/storage/adapters/local-storage-adapter.d.ts +54 -0
  254. package/dist/storage/adapters/local-storage-adapter.d.ts.map +1 -0
  255. package/dist/storage/adapters/local-storage-adapter.js +187 -0
  256. package/dist/storage/index.d.ts +3 -0
  257. package/dist/storage/index.d.ts.map +1 -0
  258. package/{src/lib/storage/index.ts → dist/storage/index.js} +2 -4
  259. package/dist/storage/interfaces/index.d.ts +2 -0
  260. package/dist/storage/interfaces/index.d.ts.map +1 -0
  261. package/dist/storage/interfaces/index.js +2 -0
  262. package/dist/storage/interfaces/storage.d.ts +91 -0
  263. package/dist/storage/interfaces/storage.d.ts.map +1 -0
  264. package/dist/storage/interfaces/storage.js +1 -0
  265. package/dist/storage/providers/storage.d.ts +43 -0
  266. package/dist/storage/providers/storage.d.ts.map +1 -0
  267. package/dist/storage/providers/storage.js +64 -0
  268. package/dist/types/asset.d.ts +73 -0
  269. package/dist/types/asset.d.ts.map +1 -0
  270. package/dist/types/asset.js +2 -0
  271. package/dist/types/auth.d.ts +50 -0
  272. package/dist/types/auth.d.ts.map +1 -0
  273. package/dist/types/auth.js +41 -0
  274. package/dist/types/config.d.ts +64 -0
  275. package/dist/types/config.d.ts.map +1 -0
  276. package/dist/types/config.js +1 -0
  277. package/dist/types/document.d.ts +35 -0
  278. package/dist/types/document.d.ts.map +1 -0
  279. package/dist/types/document.js +1 -0
  280. package/dist/types/filters.d.ts +173 -0
  281. package/dist/types/filters.d.ts.map +1 -0
  282. package/dist/types/filters.js +5 -0
  283. package/dist/types/index.d.ts +10 -0
  284. package/dist/types/index.d.ts.map +1 -0
  285. package/dist/types/index.js +9 -0
  286. package/dist/types/organization.d.ts +105 -0
  287. package/dist/types/organization.d.ts.map +1 -0
  288. package/dist/types/organization.js +3 -0
  289. package/dist/types/schemas.d.ts +114 -0
  290. package/dist/types/schemas.d.ts.map +1 -0
  291. package/dist/types/schemas.js +1 -0
  292. package/dist/types/sidebar.d.ts +33 -0
  293. package/dist/types/sidebar.d.ts.map +1 -0
  294. package/dist/types/sidebar.js +1 -0
  295. package/dist/types/user.d.ts +14 -0
  296. package/dist/types/user.d.ts.map +1 -0
  297. package/dist/types/user.js +1 -0
  298. package/dist/utils/content-hash.d.ts +22 -0
  299. package/dist/utils/content-hash.d.ts.map +1 -0
  300. package/dist/utils/content-hash.js +67 -0
  301. package/dist/utils/image-url.d.ts +88 -0
  302. package/dist/utils/image-url.d.ts.map +1 -0
  303. package/dist/utils/image-url.js +165 -0
  304. package/dist/utils/index.d.ts +6 -0
  305. package/dist/utils/index.d.ts.map +1 -0
  306. package/dist/utils/index.js +9 -0
  307. package/dist/utils/slug.d.ts +13 -0
  308. package/dist/utils/slug.d.ts.map +1 -0
  309. package/dist/utils/slug.js +30 -0
  310. package/dist/utils.d.ts +13 -0
  311. package/dist/utils.d.ts.map +1 -0
  312. package/dist/utils.js +5 -0
  313. package/package.json +101 -95
  314. package/src/lib/api/assets.ts +0 -75
  315. package/src/lib/api/client.ts +0 -150
  316. package/src/lib/api/documents.ts +0 -102
  317. package/src/lib/api/index.ts +0 -7
  318. package/src/lib/api/organizations.ts +0 -154
  319. package/src/lib/api/types.ts +0 -34
  320. package/src/lib/auth/auth-errors.ts +0 -23
  321. package/src/lib/auth/auth-hooks.ts +0 -132
  322. package/src/lib/auth/provider.ts +0 -25
  323. package/src/lib/config.ts +0 -18
  324. package/src/lib/db/interfaces/asset.ts +0 -61
  325. package/src/lib/db/interfaces/document.ts +0 -53
  326. package/src/lib/db/interfaces/index.ts +0 -98
  327. package/src/lib/db/interfaces/organization.ts +0 -51
  328. package/src/lib/db/interfaces/schema.ts +0 -13
  329. package/src/lib/db/interfaces/user.ts +0 -16
  330. package/src/lib/db/utils/reference-resolver.ts +0 -119
  331. package/src/lib/define.ts +0 -7
  332. package/src/lib/email/interfaces/email.ts +0 -45
  333. package/src/lib/engine.ts +0 -85
  334. package/src/lib/field-validation/rule.ts +0 -287
  335. package/src/lib/field-validation/utils.ts +0 -91
  336. package/src/lib/hooks.ts +0 -142
  337. package/src/lib/routes/assets-by-id.ts +0 -161
  338. package/src/lib/routes/assets-cdn.ts +0 -185
  339. package/src/lib/routes/assets.ts +0 -116
  340. package/src/lib/routes/documents-by-id.ts +0 -188
  341. package/src/lib/routes/documents-publish.ts +0 -211
  342. package/src/lib/routes/documents.ts +0 -172
  343. package/src/lib/routes/index.ts +0 -13
  344. package/src/lib/routes/organizations-by-id.ts +0 -258
  345. package/src/lib/routes/organizations-invitations.ts +0 -183
  346. package/src/lib/routes/organizations-members.ts +0 -301
  347. package/src/lib/routes/organizations-switch.ts +0 -74
  348. package/src/lib/routes/organizations.ts +0 -147
  349. package/src/lib/routes/schemas-by-type.ts +0 -35
  350. package/src/lib/routes/schemas.ts +0 -19
  351. package/src/lib/routes-exports.ts +0 -42
  352. package/src/lib/schema-context.svelte.ts +0 -24
  353. package/src/lib/schema-utils/cleanup.ts +0 -116
  354. package/src/lib/schema-utils/index.ts +0 -4
  355. package/src/lib/schema-utils/utils.ts +0 -47
  356. package/src/lib/schema-utils/validator.ts +0 -58
  357. package/src/lib/server/index.ts +0 -40
  358. package/src/lib/services/asset-service.ts +0 -256
  359. package/src/lib/services/index.ts +0 -6
  360. package/src/lib/storage/adapters/index.ts +0 -2
  361. package/src/lib/storage/adapters/local-storage-adapter.ts +0 -215
  362. package/src/lib/storage/interfaces/index.ts +0 -2
  363. package/src/lib/storage/interfaces/storage.ts +0 -114
  364. package/src/lib/storage/providers/storage.ts +0 -83
  365. package/src/lib/types/asset.ts +0 -81
  366. package/src/lib/types/auth.ts +0 -80
  367. package/src/lib/types/config.ts +0 -45
  368. package/src/lib/types/document.ts +0 -38
  369. package/src/lib/types/index.ts +0 -8
  370. package/src/lib/types/organization.ts +0 -119
  371. package/src/lib/types/schemas.ts +0 -156
  372. package/src/lib/types/sidebar.ts +0 -37
  373. package/src/lib/types/user.ts +0 -17
  374. package/src/lib/utils/content-hash.ts +0 -75
  375. package/src/lib/utils/image-url.ts +0 -204
  376. package/src/lib/utils/index.ts +0 -12
  377. package/src/lib/utils/slug.ts +0 -33
  378. package/src/lib/utils.ts +0 -13
  379. /package/{src/lib → dist}/app.d.ts +0 -0
  380. /package/{src/lib → dist}/auth/MULTI_TENANCY_PLAN.md +0 -0
  381. /package/{src/lib → dist}/components/admin/AdminLayout.svelte +0 -0
  382. /package/{src/lib → dist}/components/admin/DocumentTypesList.svelte +0 -0
  383. /package/{src/lib → dist}/components/admin/ObjectModal.svelte +0 -0
  384. /package/{src/lib → dist}/components/admin/SchemaField.svelte +0 -0
  385. /package/{src/lib → dist}/components/admin/fields/ArrayField.svelte +0 -0
  386. /package/{src/lib → dist}/components/admin/fields/BooleanField.svelte +0 -0
  387. /package/{src/lib → dist}/components/admin/fields/ImageField.svelte +0 -0
  388. /package/{src/lib → dist}/components/admin/fields/NumberField.svelte +0 -0
  389. /package/{src/lib → dist}/components/admin/fields/SlugField.svelte +0 -0
  390. /package/{src/lib → dist}/components/admin/fields/StringField.svelte +0 -0
  391. /package/{src/lib → dist}/components/admin/fields/TextareaField.svelte +0 -0
  392. /package/{src/lib/components/fields/index.ts → dist/components/fields/index.js} +0 -0
  393. /package/{src/lib → dist}/components/layout/OrganizationSwitcher.svelte +0 -0
  394. /package/{src/lib → dist}/components/layout/Sidebar.svelte +0 -0
  395. /package/{src/lib → dist}/components/layout/sidebar/AppSidebar.svelte +0 -0
  396. /package/{src/lib → dist}/components/layout/sidebar/NavMain.svelte +0 -0
  397. /package/{src/lib → dist}/components/layout/sidebar/NavSecondary.svelte +0 -0
  398. /package/{src/lib → dist}/components/layout/sidebar/NavUser.svelte +0 -0
  399. /package/{src/lib → dist}/plugins/README.md +0 -0
@@ -1,116 +0,0 @@
1
- import type { SchemaType, Field, ArrayField } from '../types/schemas';
2
-
3
- export interface OrphanedField {
4
- path: string;
5
- key: string;
6
- value: any;
7
- level: 'document' | 'nested';
8
- }
9
-
10
- export interface SchemaCleanupResult {
11
- hasOrphanedFields: boolean;
12
- orphanedFields: OrphanedField[];
13
- cleanedData: Record<string, any>;
14
- }
15
-
16
- /**
17
- * Find orphaned fields in document data that no longer exist in the schema
18
- */
19
- export function findOrphanedFields(
20
- documentData: Record<string, any>,
21
- schema: SchemaType
22
- ): SchemaCleanupResult {
23
- const orphanedFields: OrphanedField[] = [];
24
-
25
- function checkObject(
26
- obj: Record<string, any>,
27
- fields: Field[],
28
- pathPrefix = ''
29
- ): Record<string, any> {
30
- const cleaned: Record<string, any> = {};
31
- const fieldMap = new Map(fields.map((field) => [field.name, field]));
32
-
33
- for (const [key, value] of Object.entries(obj)) {
34
- const currentPath = pathPrefix ? `${pathPrefix}.${key}` : key;
35
- const field = fieldMap.get(key);
36
-
37
- if (!field) {
38
- // Orphaned field found
39
- orphanedFields.push({
40
- path: currentPath,
41
- key,
42
- value,
43
- level: pathPrefix ? 'nested' : 'document'
44
- });
45
- continue; // Skip this field in cleaned data
46
- }
47
-
48
- // Recursively check nested objects and arrays
49
- if (field.type === 'object' && field.fields && value && typeof value === 'object') {
50
- cleaned[key] = checkObject(value, field.fields, currentPath);
51
- } else if (field.type === 'array' && Array.isArray(value)) {
52
- cleaned[key] = checkArray(value, field, currentPath);
53
- } else {
54
- cleaned[key] = value;
55
- }
56
- }
57
-
58
- return cleaned;
59
- }
60
-
61
- function checkArray(array: any[], arrayField: Field, pathPrefix: string): any[] {
62
- if (arrayField.type !== 'array' || !arrayField.of) {
63
- return array;
64
- }
65
-
66
- return array.map((item, index) => {
67
- const itemPath = `${pathPrefix}[${index}]`;
68
-
69
- if (item && typeof item === 'object' && item._type) {
70
- // Find the schema for this array item type
71
- const itemTypeSchema = getSchemaForArrayItem(item._type, arrayField);
72
- if (itemTypeSchema && itemTypeSchema.fields) {
73
- return checkObject(item, itemTypeSchema.fields, itemPath);
74
- }
75
- }
76
-
77
- return item;
78
- });
79
- }
80
-
81
- const cleanedData = checkObject(documentData, schema.fields);
82
-
83
- return {
84
- hasOrphanedFields: orphanedFields.length > 0,
85
- orphanedFields,
86
- cleanedData
87
- };
88
- }
89
-
90
- /**
91
- * Get the schema for an array item type (helper function)
92
- * This would need to be integrated with your schema registry
93
- */
94
- function getSchemaForArrayItem(typeName: string, arrayField: ArrayField): SchemaType | null {
95
- // This is a placeholder - you'd need to integrate with your actual schema registry
96
- // For now, we'll assume inline object schemas
97
- if (arrayField.of) {
98
- const typeRef = arrayField.of.find((ref) => ref.type === typeName);
99
- if (typeRef && typeof typeRef !== 'string') {
100
- // Handle inline schema definitions if needed
101
- return null;
102
- }
103
- }
104
- return null;
105
- }
106
-
107
- /**
108
- * Apply cleanup by removing orphaned fields from document data
109
- */
110
- export function applySchemaCleanup(
111
- documentData: Record<string, any>,
112
- schema: SchemaType
113
- ): Record<string, any> {
114
- const result = findOrphanedFields(documentData, schema);
115
- return result.cleanedData;
116
- }
@@ -1,4 +0,0 @@
1
- // Schema utilities - all schema-related helper functions
2
- export * from './cleanup';
3
- export * from './utils';
4
- export * from './validator';
@@ -1,47 +0,0 @@
1
- import type { SchemaType } from '../types/schemas';
2
-
3
- /**
4
- * Schema utility functions that work with a schema registry
5
- * These functions accept schemas as parameters to avoid package-level dependencies
6
- */
7
-
8
- /**
9
- * Get a schema type by name from a collection of schemas
10
- */
11
- export function getSchemaByName(schemas: SchemaType[], name: string): SchemaType | null {
12
- return schemas.find((schema) => schema.name === name) || null;
13
- }
14
-
15
- /**
16
- * Get all available object types (for array field dropdowns)
17
- */
18
- export function getObjectTypes(schemas: SchemaType[]): SchemaType[] {
19
- return schemas.filter((schema) => schema.type === 'object');
20
- }
21
-
22
- /**
23
- * Get all available document types
24
- */
25
- export function getDocumentTypes(schemas: SchemaType[]): SchemaType[] {
26
- return schemas.filter((schema) => schema.type === 'document');
27
- }
28
-
29
- /**
30
- * Check if a schema type exists
31
- */
32
- export function schemaExists(schemas: SchemaType[], name: string): boolean {
33
- return schemas.some((schema) => schema.name === name);
34
- }
35
-
36
- /**
37
- * Get the available types for an array field
38
- */
39
- export function getArrayTypes(
40
- schemas: SchemaType[],
41
- arrayField: { of?: Array<{ type: string }> }
42
- ): SchemaType[] {
43
- if (!arrayField.of) return [];
44
-
45
- const typeNames = arrayField.of.map((item) => item.type);
46
- return schemas.filter((schema) => typeNames.includes(schema.name));
47
- }
@@ -1,58 +0,0 @@
1
- import type { SchemaType, Field } from '../types/schemas';
2
-
3
- /**
4
- * Validate all schema references to ensure they exist
5
- */
6
- export function validateSchemaReferences(schemas: SchemaType[]): void {
7
- const schemaNames = new Set(schemas.map((schema) => schema.name));
8
- const errors: string[] = [];
9
-
10
- function validateField(field: Field, parentSchema: string): void {
11
- // Check array field references
12
- if (field.type === 'array' && field.of) {
13
- for (const arrayType of field.of) {
14
- if (!schemaNames.has(arrayType.type)) {
15
- errors.push(
16
- `Schema "${parentSchema}" field "${field.name}" references unknown type "${arrayType.type}"`
17
- );
18
- }
19
- }
20
- }
21
-
22
- // Check object field references (if they reference external types)
23
- if (field.type === 'object' && typeof field.fields === 'string') {
24
- if (!schemaNames.has(field.fields)) {
25
- errors.push(
26
- `Schema "${parentSchema}" field "${field.name}" references unknown object type "${field.fields}"`
27
- );
28
- }
29
- }
30
-
31
- // Recursively check nested fields -- cast type later or something. cba
32
- if ('fields' in field && Array.isArray(field.fields)) {
33
- for (const nestedField of field.fields) {
34
- validateField(nestedField, parentSchema);
35
- }
36
- }
37
- }
38
-
39
- // Validate each schema
40
- for (const schema of schemas) {
41
- if (schema.fields) {
42
- for (const field of schema.fields) {
43
- validateField(field, schema.name);
44
- }
45
- }
46
- }
47
-
48
- // Throw error if any validation issues found
49
- if (errors.length > 0) {
50
- console.error('\nSchema Validation Errors:');
51
- errors.forEach((error) => console.error(error));
52
-
53
- // Just throw the errors directly
54
- throw new Error(errors.join('\n'));
55
- }
56
-
57
- console.log('✅ Schema validation passed - all references are valid');
58
- }
@@ -1,40 +0,0 @@
1
- // Aphex CMS Core - Server-side exports
2
- // These require Node.js and should NOT be imported client-side
3
-
4
- // Export all core types from the new central location
5
- export * from '../types/index';
6
-
7
- export * from '../auth/provider';
8
-
9
- export * from '../email/index';
10
-
11
- // Authentication errors
12
- export { AuthError, type AuthErrorCode } from '../auth/auth-errors';
13
-
14
- // Configuration system
15
- export { createCMSConfig } from '../config';
16
-
17
- // Hooks integration (SvelteKit server hooks)
18
- export { createCMSHook, type CMSInstances } from '../hooks';
19
-
20
- // Database interfaces (no longer export registry or adapters - use adapter packages)
21
- export * from '../db/interfaces/index';
22
-
23
- // Storage adapters and interfaces
24
- export * from '../storage/index';
25
- export * from '../storage/interfaces/index';
26
- export * from '../storage/providers/storage';
27
-
28
- // Services (includes sharp for image processing)
29
- export * from '../services/index';
30
- export { AssetService } from '../services/asset-service';
31
-
32
- // API Route handlers (for re-exporting in your app's API routes)
33
- // Re-export from routes-exports to avoid .js extension issues in workspace
34
- export * from '../routes-exports';
35
-
36
- // Schema utilities
37
- export * from '../schema-utils/index';
38
-
39
- // Content hash utilities (server-side)
40
- export { createHashForPublishing } from '../utils/content-hash';
@@ -1,256 +0,0 @@
1
- // Asset service - orchestrates storage and database operations
2
- import sharp from 'sharp';
3
- import type { StorageAdapter } from '../storage/interfaces/storage';
4
- import type { DatabaseAdapter } from '../db/interfaces/index';
5
- import type { Asset } from '../types/index';
6
-
7
- export interface AssetUploadData {
8
- buffer: Buffer;
9
- originalFilename: string;
10
- mimeType: string;
11
- size: number;
12
- title?: string;
13
- description?: string;
14
- alt?: string;
15
- creditLine?: string;
16
- createdBy?: string; // User ID who uploaded this asset
17
- metadata?: {
18
- schemaType?: string; // e.g., 'newsletterLanding'
19
- fieldPath?: string; // e.g., 'logo' or 'seo.metaImage'
20
- [key: string]: any; // Allow additional metadata
21
- };
22
- }
23
-
24
- export interface AssetFilters {
25
- assetType?: 'image' | 'file';
26
- mimeType?: string;
27
- search?: string;
28
- limit?: number;
29
- offset?: number;
30
- }
31
-
32
- /**
33
- * Asset service - coordinates storage and database operations
34
- * Maintains separation of concerns while providing unified asset management
35
- */
36
- export class AssetService {
37
- constructor(
38
- private storage: StorageAdapter,
39
- private database: DatabaseAdapter
40
- ) {}
41
-
42
- /**
43
- * Upload and store an asset
44
- */
45
- async uploadAsset(organizationId: string, data: AssetUploadData): Promise<Asset> {
46
- // Determine asset type
47
- const assetType = data.mimeType.startsWith('image/') ? 'image' : 'file';
48
-
49
- // Extract image metadata if it's an image
50
- let width: number | undefined;
51
- let height: number | undefined;
52
- let metadata: any = {
53
- // Include field metadata for privacy checking
54
- ...data.metadata
55
- };
56
-
57
- if (assetType === 'image') {
58
- try {
59
- const imageMetadata = await sharp(data.buffer).metadata();
60
- width = imageMetadata.width;
61
- height = imageMetadata.height;
62
-
63
- // Merge image metadata with field metadata
64
- metadata = {
65
- ...metadata, // Keep schemaType and fieldPath
66
- format: imageMetadata.format,
67
- space: imageMetadata.space,
68
- channels: imageMetadata.channels,
69
- density: imageMetadata.density,
70
- hasProfile: imageMetadata.hasProfile,
71
- hasAlpha: imageMetadata.hasAlpha
72
- };
73
-
74
- // Add dominant color
75
- const stats = await sharp(data.buffer).stats();
76
- metadata.dominantColor = stats.dominant;
77
- } catch (error) {
78
- console.warn('Could not extract image metadata:', error);
79
- }
80
- }
81
-
82
- // 1. Store file using storage adapter
83
- const storageFile = await this.storage.store({
84
- buffer: data.buffer,
85
- filename: data.originalFilename,
86
- mimeType: data.mimeType,
87
- size: data.size
88
- });
89
-
90
- // 2. Save asset metadata using database adapter
91
- try {
92
- const asset = await this.database.createAsset({
93
- assetType,
94
- filename: storageFile.path.split('/').pop() || data.originalFilename,
95
- originalFilename: data.originalFilename,
96
- mimeType: data.mimeType,
97
- size: data.size,
98
- url: storageFile.url || '', // Empty for local storage initially
99
- path: storageFile.path,
100
- storageAdapter: this.storage.name,
101
- organizationId,
102
- width,
103
- height,
104
- metadata,
105
- title: data.title || undefined,
106
- description: data.description || undefined,
107
- alt: data.alt || undefined,
108
- creditLine: data.creditLine || undefined,
109
- createdBy: data.createdBy
110
- });
111
-
112
- // If using local storage, generate and store the CDN URL with the real asset ID
113
- if (!storageFile.url) {
114
- const cdnUrl = `/media/${asset.id}/${encodeURIComponent(asset.originalFilename)}`;
115
-
116
- // Update both the object and the database
117
- asset.url = cdnUrl;
118
- await this.database.updateAsset(organizationId, asset.id, { url: cdnUrl });
119
- }
120
-
121
- return asset;
122
- } catch (error) {
123
- // If database save fails, clean up the stored file
124
- await this.storage.delete(storageFile.path);
125
- throw error;
126
- }
127
- }
128
-
129
- /**
130
- * Find asset by ID
131
- */
132
- async findAssetById(organizationId: string, id: string): Promise<Asset | null> {
133
- return await this.database.findAssetById(organizationId, id);
134
- }
135
-
136
- /**
137
- * Find asset by ID globally (bypasses organization filter for public asset access)
138
- * Only available on PostgreSQL adapter with RLS bypass
139
- */
140
- async findAssetByIdGlobal(id: string): Promise<Asset | null> {
141
- // Check if the adapter has the global method
142
- if (
143
- 'findAssetByIdGlobal' in this.database &&
144
- typeof this.database.findAssetByIdGlobal === 'function'
145
- ) {
146
- console.log('[AssetService] Using findAssetByIdGlobal from adapter');
147
- return await this.database.findAssetByIdGlobal(id);
148
- }
149
- // Fallback: not supported
150
- console.warn('[AssetService] findAssetByIdGlobal not supported by this database adapter');
151
- console.warn('[AssetService] Database adapter type:', this.database.constructor.name);
152
- console.warn(
153
- '[AssetService] Available methods:',
154
- Object.getOwnPropertyNames(Object.getPrototypeOf(this.database))
155
- );
156
- return null;
157
- }
158
-
159
- /**
160
- * Find multiple assets with filtering
161
- */
162
- async findAssets(organizationId: string, filters: AssetFilters = {}): Promise<Asset[]> {
163
- return await this.database.findAssets(organizationId, filters);
164
- }
165
-
166
- /**
167
- * Delete asset (both file and database record)
168
- *
169
- * Note: If the asset was stored by a different adapter (e.g., switching from R2 to local),
170
- * file deletion may fail. The database record will still be removed for a clean state.
171
- */
172
- async deleteAsset(organizationId: string, id: string): Promise<boolean> {
173
- const asset = await this.database.findAssetById(organizationId, id);
174
- if (!asset) {
175
- return false;
176
- }
177
-
178
- // Try to delete file from storage
179
- // If the asset was stored by a different adapter, this may fail
180
- if (asset.storageAdapter === this.storage.name) {
181
- // Same adapter - delete should work
182
- try {
183
- await this.storage.delete(asset.path);
184
- } catch (error) {
185
- console.warn(`Failed to delete file from storage: ${asset.path}`, error);
186
- }
187
- } else {
188
- // Different adapter - log warning but continue with database cleanup
189
- console.warn(
190
- `Asset ${id} was stored by '${asset.storageAdapter}' but current adapter is '${this.storage.name}'. ` +
191
- `File at ${asset.path} may need manual cleanup.`
192
- );
193
- }
194
-
195
- // Always delete database record for clean state
196
- return await this.database.deleteAsset(organizationId, id);
197
- }
198
-
199
- /**
200
- * Update asset metadata
201
- */
202
- async updateAssetMetadata(
203
- organizationId: string,
204
- id: string,
205
- metadata: {
206
- title?: string;
207
- description?: string;
208
- alt?: string;
209
- creditLine?: string;
210
- updatedBy?: string; // User ID who updated this asset
211
- }
212
- ): Promise<Asset | null> {
213
- return await this.database.updateAsset(organizationId, id, metadata);
214
- }
215
-
216
- /**
217
- * Get asset statistics
218
- */
219
- async getAssetStats(organizationId: string): Promise<{
220
- totalAssets: number;
221
- totalImages: number;
222
- totalFiles: number;
223
- totalSize: number;
224
- }> {
225
- const [totalAssets, assetsByType, totalSize] = await Promise.all([
226
- this.database.countAssets(organizationId),
227
- this.database.countAssetsByType(organizationId),
228
- this.database.getTotalAssetsSize(organizationId)
229
- ]);
230
-
231
- return {
232
- totalAssets,
233
- totalImages: assetsByType.image || 0,
234
- totalFiles: assetsByType.file || 0,
235
- totalSize
236
- };
237
- }
238
-
239
- /**
240
- * Get health status of both storage and database
241
- */
242
- async getHealthStatus(): Promise<{
243
- storage: boolean;
244
- database: boolean;
245
- }> {
246
- const [storageHealthy, databaseHealthy] = await Promise.all([
247
- this.storage.isHealthy(),
248
- this.database.isHealthy()
249
- ]);
250
-
251
- return {
252
- storage: storageHealthy,
253
- database: databaseHealthy
254
- };
255
- }
256
- }
@@ -1,6 +0,0 @@
1
- // Aphex CMS Services
2
- // Business logic layer
3
-
4
- // Re-export services
5
- export { AssetService } from './asset-service';
6
- export type { AssetUploadData, AssetFilters } from './asset-service';
@@ -1,2 +0,0 @@
1
- // Storage adapters
2
- export * from './local-storage-adapter';