@aphexcms/cms-core 4.0.0 → 5.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 (304) hide show
  1. package/dist/api/schemas/user.d.ts +10 -0
  2. package/dist/api/schemas/user.d.ts.map +1 -1
  3. package/dist/api/schemas/user.js +10 -0
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +1 -2
  6. package/dist/hooks.d.ts +3 -4
  7. package/dist/hooks.d.ts.map +1 -1
  8. package/dist/hooks.js +20 -99
  9. package/dist/lib/api/schemas/user.d.ts +10 -0
  10. package/dist/lib/api/schemas/user.d.ts.map +1 -1
  11. package/dist/lib/api/schemas/user.js +10 -0
  12. package/dist/lib/api/schemas/user.js.map +1 -1
  13. package/dist/lib/config.d.ts.map +1 -1
  14. package/dist/lib/config.js +1 -2
  15. package/dist/lib/config.js.map +1 -1
  16. package/dist/lib/hooks.d.ts +3 -4
  17. package/dist/lib/hooks.d.ts.map +1 -1
  18. package/dist/lib/hooks.js +20 -99
  19. package/dist/lib/hooks.js.map +1 -1
  20. package/dist/lib/server/api/index.d.ts +55 -0
  21. package/dist/lib/server/api/index.d.ts.map +1 -0
  22. package/dist/lib/server/api/index.js +107 -0
  23. package/dist/lib/server/api/index.js.map +1 -0
  24. package/dist/lib/server/api/routes/assets-bulk.d.ts +4 -0
  25. package/dist/lib/server/api/routes/assets-bulk.d.ts.map +1 -0
  26. package/dist/{routes → lib/server/api/routes}/assets-bulk.js +23 -23
  27. package/dist/lib/server/api/routes/assets-bulk.js.map +1 -0
  28. package/dist/lib/server/api/routes/assets-by-id.d.ts +4 -0
  29. package/dist/lib/server/api/routes/assets-by-id.d.ts.map +1 -0
  30. package/dist/lib/server/api/routes/assets-by-id.js +108 -0
  31. package/dist/lib/server/api/routes/assets-by-id.js.map +1 -0
  32. package/dist/lib/server/api/routes/assets-references.d.ts +15 -0
  33. package/dist/lib/server/api/routes/assets-references.d.ts.map +1 -0
  34. package/dist/lib/server/api/routes/assets-references.js +78 -0
  35. package/dist/lib/server/api/routes/assets-references.js.map +1 -0
  36. package/dist/lib/server/api/routes/assets.d.ts +4 -0
  37. package/dist/lib/server/api/routes/assets.d.ts.map +1 -0
  38. package/dist/{routes → lib/server/api/routes}/assets.js +76 -87
  39. package/dist/lib/server/api/routes/assets.js.map +1 -0
  40. package/dist/lib/server/api/routes/document-versions.d.ts +4 -0
  41. package/dist/lib/server/api/routes/document-versions.d.ts.map +1 -0
  42. package/dist/lib/server/api/routes/document-versions.js +113 -0
  43. package/dist/lib/server/api/routes/document-versions.js.map +1 -0
  44. package/dist/lib/server/api/routes/documents-by-id.d.ts +4 -0
  45. package/dist/lib/server/api/routes/documents-by-id.d.ts.map +1 -0
  46. package/dist/lib/server/api/routes/documents-by-id.js +148 -0
  47. package/dist/lib/server/api/routes/documents-by-id.js.map +1 -0
  48. package/dist/lib/server/api/routes/documents-publish.d.ts +4 -0
  49. package/dist/lib/server/api/routes/documents-publish.d.ts.map +1 -0
  50. package/dist/{routes → lib/server/api/routes}/documents-publish.js +42 -58
  51. package/dist/lib/server/api/routes/documents-publish.js.map +1 -0
  52. package/dist/lib/server/api/routes/documents-query.d.ts +8 -0
  53. package/dist/lib/server/api/routes/documents-query.d.ts.map +1 -0
  54. package/dist/lib/server/api/routes/documents-query.js +75 -0
  55. package/dist/lib/server/api/routes/documents-query.js.map +1 -0
  56. package/dist/lib/server/api/routes/documents.d.ts +4 -0
  57. package/dist/lib/server/api/routes/documents.d.ts.map +1 -0
  58. package/dist/{routes → lib/server/api/routes}/documents.js +55 -76
  59. package/dist/lib/server/api/routes/documents.js.map +1 -0
  60. package/dist/lib/server/api/routes/organizations-by-id.d.ts +4 -0
  61. package/dist/lib/server/api/routes/organizations-by-id.d.ts.map +1 -0
  62. package/dist/{routes → lib/server/api/routes}/organizations-by-id.js +62 -91
  63. package/dist/lib/server/api/routes/organizations-by-id.js.map +1 -0
  64. package/dist/lib/server/api/routes/organizations-invitations.d.ts +10 -0
  65. package/dist/lib/server/api/routes/organizations-invitations.d.ts.map +1 -0
  66. package/dist/{routes → lib/server/api/routes}/organizations-invitations.js +67 -78
  67. package/dist/lib/server/api/routes/organizations-invitations.js.map +1 -0
  68. package/dist/lib/server/api/routes/organizations-members.d.ts +4 -0
  69. package/dist/lib/server/api/routes/organizations-members.d.ts.map +1 -0
  70. package/dist/{routes → lib/server/api/routes}/organizations-members.js +74 -106
  71. package/dist/lib/server/api/routes/organizations-members.js.map +1 -0
  72. package/dist/lib/server/api/routes/organizations-switch.d.ts +4 -0
  73. package/dist/lib/server/api/routes/organizations-switch.d.ts.map +1 -0
  74. package/dist/lib/server/api/routes/organizations-switch.js +54 -0
  75. package/dist/lib/server/api/routes/organizations-switch.js.map +1 -0
  76. package/dist/lib/server/api/routes/organizations.d.ts +4 -0
  77. package/dist/lib/server/api/routes/organizations.d.ts.map +1 -0
  78. package/dist/lib/server/api/routes/organizations.js +99 -0
  79. package/dist/lib/server/api/routes/organizations.js.map +1 -0
  80. package/dist/lib/server/api/routes/roles.d.ts +12 -0
  81. package/dist/lib/server/api/routes/roles.d.ts.map +1 -0
  82. package/dist/lib/server/api/routes/roles.js +219 -0
  83. package/dist/lib/server/api/routes/roles.js.map +1 -0
  84. package/dist/lib/server/api/routes/schemas.d.ts +4 -0
  85. package/dist/lib/server/api/routes/schemas.d.ts.map +1 -0
  86. package/dist/lib/server/api/routes/schemas.js +27 -0
  87. package/dist/lib/server/api/routes/schemas.js.map +1 -0
  88. package/dist/lib/server/api/routes/user-preferences.d.ts +4 -0
  89. package/dist/lib/server/api/routes/user-preferences.d.ts.map +1 -0
  90. package/dist/lib/server/api/routes/user-preferences.js +63 -0
  91. package/dist/lib/server/api/routes/user-preferences.js.map +1 -0
  92. package/dist/lib/server/api/routes/user.d.ts +12 -0
  93. package/dist/lib/server/api/routes/user.d.ts.map +1 -0
  94. package/dist/lib/server/api/routes/user.js +114 -0
  95. package/dist/lib/server/api/routes/user.js.map +1 -0
  96. package/dist/lib/server/index.d.ts +2 -1
  97. package/dist/lib/server/index.d.ts.map +1 -1
  98. package/dist/lib/server/index.js +7 -3
  99. package/dist/lib/server/index.js.map +1 -1
  100. package/dist/lib/types/config.d.ts +28 -29
  101. package/dist/lib/types/config.d.ts.map +1 -1
  102. package/dist/server/api/index.d.ts +55 -0
  103. package/dist/server/api/index.d.ts.map +1 -0
  104. package/dist/server/api/index.js +106 -0
  105. package/dist/server/api/routes/assets-bulk.d.ts +4 -0
  106. package/dist/server/api/routes/assets-bulk.d.ts.map +1 -0
  107. package/dist/{lib → server/api}/routes/assets-bulk.js +22 -24
  108. package/dist/server/api/routes/assets-by-id.d.ts +4 -0
  109. package/dist/server/api/routes/assets-by-id.d.ts.map +1 -0
  110. package/dist/server/api/routes/assets-by-id.js +107 -0
  111. package/dist/server/api/routes/assets-references.d.ts +15 -0
  112. package/dist/server/api/routes/assets-references.d.ts.map +1 -0
  113. package/dist/server/api/routes/assets-references.js +77 -0
  114. package/dist/server/api/routes/assets.d.ts +4 -0
  115. package/dist/server/api/routes/assets.d.ts.map +1 -0
  116. package/dist/{lib → server/api}/routes/assets.js +75 -88
  117. package/dist/server/api/routes/document-versions.d.ts +4 -0
  118. package/dist/server/api/routes/document-versions.d.ts.map +1 -0
  119. package/dist/server/api/routes/document-versions.js +112 -0
  120. package/dist/server/api/routes/documents-by-id.d.ts +4 -0
  121. package/dist/server/api/routes/documents-by-id.d.ts.map +1 -0
  122. package/dist/server/api/routes/documents-by-id.js +147 -0
  123. package/dist/server/api/routes/documents-publish.d.ts +4 -0
  124. package/dist/server/api/routes/documents-publish.d.ts.map +1 -0
  125. package/dist/{lib → server/api}/routes/documents-publish.js +41 -59
  126. package/dist/server/api/routes/documents-query.d.ts +8 -0
  127. package/dist/server/api/routes/documents-query.d.ts.map +1 -0
  128. package/dist/server/api/routes/documents-query.js +74 -0
  129. package/dist/server/api/routes/documents.d.ts +4 -0
  130. package/dist/server/api/routes/documents.d.ts.map +1 -0
  131. package/dist/{lib → server/api}/routes/documents.js +54 -77
  132. package/dist/server/api/routes/organizations-by-id.d.ts +4 -0
  133. package/dist/server/api/routes/organizations-by-id.d.ts.map +1 -0
  134. package/dist/{lib → server/api}/routes/organizations-by-id.js +61 -92
  135. package/dist/server/api/routes/organizations-invitations.d.ts +10 -0
  136. package/dist/server/api/routes/organizations-invitations.d.ts.map +1 -0
  137. package/dist/{lib → server/api}/routes/organizations-invitations.js +66 -79
  138. package/dist/server/api/routes/organizations-members.d.ts +4 -0
  139. package/dist/server/api/routes/organizations-members.d.ts.map +1 -0
  140. package/dist/{lib → server/api}/routes/organizations-members.js +73 -107
  141. package/dist/server/api/routes/organizations-switch.d.ts +4 -0
  142. package/dist/server/api/routes/organizations-switch.d.ts.map +1 -0
  143. package/dist/server/api/routes/organizations-switch.js +53 -0
  144. package/dist/server/api/routes/organizations.d.ts +4 -0
  145. package/dist/server/api/routes/organizations.d.ts.map +1 -0
  146. package/dist/server/api/routes/organizations.js +98 -0
  147. package/dist/server/api/routes/roles.d.ts +12 -0
  148. package/dist/server/api/routes/roles.d.ts.map +1 -0
  149. package/dist/server/api/routes/roles.js +218 -0
  150. package/dist/server/api/routes/schemas.d.ts +4 -0
  151. package/dist/server/api/routes/schemas.d.ts.map +1 -0
  152. package/dist/server/api/routes/schemas.js +26 -0
  153. package/dist/server/api/routes/user-preferences.d.ts +4 -0
  154. package/dist/server/api/routes/user-preferences.d.ts.map +1 -0
  155. package/dist/server/api/routes/user-preferences.js +62 -0
  156. package/dist/server/api/routes/user.d.ts +12 -0
  157. package/dist/server/api/routes/user.d.ts.map +1 -0
  158. package/dist/server/api/routes/user.js +113 -0
  159. package/dist/server/index.d.ts +2 -1
  160. package/dist/server/index.d.ts.map +1 -1
  161. package/dist/server/index.js +7 -3
  162. package/dist/types/config.d.ts +28 -29
  163. package/dist/types/config.d.ts.map +1 -1
  164. package/package.json +4 -2
  165. package/dist/lib/routes/assets-bulk.d.ts +0 -3
  166. package/dist/lib/routes/assets-bulk.d.ts.map +0 -1
  167. package/dist/lib/routes/assets-bulk.js.map +0 -1
  168. package/dist/lib/routes/assets-by-id.d.ts +0 -5
  169. package/dist/lib/routes/assets-by-id.d.ts.map +0 -1
  170. package/dist/lib/routes/assets-by-id.js +0 -116
  171. package/dist/lib/routes/assets-by-id.js.map +0 -1
  172. package/dist/lib/routes/assets-references-counts.d.ts +0 -7
  173. package/dist/lib/routes/assets-references-counts.d.ts.map +0 -1
  174. package/dist/lib/routes/assets-references-counts.js +0 -42
  175. package/dist/lib/routes/assets-references-counts.js.map +0 -1
  176. package/dist/lib/routes/assets-references.d.ts +0 -7
  177. package/dist/lib/routes/assets-references.d.ts.map +0 -1
  178. package/dist/lib/routes/assets-references.js +0 -35
  179. package/dist/lib/routes/assets-references.js.map +0 -1
  180. package/dist/lib/routes/assets.d.ts +0 -4
  181. package/dist/lib/routes/assets.d.ts.map +0 -1
  182. package/dist/lib/routes/assets.js.map +0 -1
  183. package/dist/lib/routes/document-versions.d.ts +0 -5
  184. package/dist/lib/routes/document-versions.d.ts.map +0 -1
  185. package/dist/lib/routes/document-versions.js +0 -114
  186. package/dist/lib/routes/document-versions.js.map +0 -1
  187. package/dist/lib/routes/documents-by-id.d.ts +0 -5
  188. package/dist/lib/routes/documents-by-id.d.ts.map +0 -1
  189. package/dist/lib/routes/documents-by-id.js +0 -188
  190. package/dist/lib/routes/documents-by-id.js.map +0 -1
  191. package/dist/lib/routes/documents-publish.d.ts +0 -4
  192. package/dist/lib/routes/documents-publish.d.ts.map +0 -1
  193. package/dist/lib/routes/documents-publish.js.map +0 -1
  194. package/dist/lib/routes/documents-query.d.ts +0 -26
  195. package/dist/lib/routes/documents-query.d.ts.map +0 -1
  196. package/dist/lib/routes/documents-query.js +0 -104
  197. package/dist/lib/routes/documents-query.js.map +0 -1
  198. package/dist/lib/routes/documents.d.ts +0 -4
  199. package/dist/lib/routes/documents.d.ts.map +0 -1
  200. package/dist/lib/routes/documents.js.map +0 -1
  201. package/dist/lib/routes/index.d.ts +0 -9
  202. package/dist/lib/routes/index.d.ts.map +0 -1
  203. package/dist/lib/routes/index.js +0 -15
  204. package/dist/lib/routes/index.js.map +0 -1
  205. package/dist/lib/routes/organizations-by-id.d.ts +0 -5
  206. package/dist/lib/routes/organizations-by-id.d.ts.map +0 -1
  207. package/dist/lib/routes/organizations-by-id.js.map +0 -1
  208. package/dist/lib/routes/organizations-invitations.d.ts +0 -4
  209. package/dist/lib/routes/organizations-invitations.d.ts.map +0 -1
  210. package/dist/lib/routes/organizations-invitations.js.map +0 -1
  211. package/dist/lib/routes/organizations-members.d.ts +0 -5
  212. package/dist/lib/routes/organizations-members.d.ts.map +0 -1
  213. package/dist/lib/routes/organizations-members.js.map +0 -1
  214. package/dist/lib/routes/organizations-switch.d.ts +0 -3
  215. package/dist/lib/routes/organizations-switch.d.ts.map +0 -1
  216. package/dist/lib/routes/organizations-switch.js +0 -59
  217. package/dist/lib/routes/organizations-switch.js.map +0 -1
  218. package/dist/lib/routes/organizations.d.ts +0 -4
  219. package/dist/lib/routes/organizations.d.ts.map +0 -1
  220. package/dist/lib/routes/organizations.js +0 -117
  221. package/dist/lib/routes/organizations.js.map +0 -1
  222. package/dist/lib/routes/roles-by-name.d.ts +0 -4
  223. package/dist/lib/routes/roles-by-name.d.ts.map +0 -1
  224. package/dist/lib/routes/roles-by-name.js +0 -112
  225. package/dist/lib/routes/roles-by-name.js.map +0 -1
  226. package/dist/lib/routes/roles.d.ts +0 -4
  227. package/dist/lib/routes/roles.d.ts.map +0 -1
  228. package/dist/lib/routes/roles.js +0 -91
  229. package/dist/lib/routes/roles.js.map +0 -1
  230. package/dist/lib/routes/schemas-by-type.d.ts +0 -3
  231. package/dist/lib/routes/schemas-by-type.d.ts.map +0 -1
  232. package/dist/lib/routes/schemas-by-type.js +0 -27
  233. package/dist/lib/routes/schemas-by-type.js.map +0 -1
  234. package/dist/lib/routes/schemas.d.ts +0 -3
  235. package/dist/lib/routes/schemas.d.ts.map +0 -1
  236. package/dist/lib/routes/schemas.js +0 -12
  237. package/dist/lib/routes/schemas.js.map +0 -1
  238. package/dist/lib/routes/user-preferences.d.ts +0 -4
  239. package/dist/lib/routes/user-preferences.d.ts.map +0 -1
  240. package/dist/lib/routes/user-preferences.js +0 -73
  241. package/dist/lib/routes/user-preferences.js.map +0 -1
  242. package/dist/lib/routes-exports.d.ts +0 -20
  243. package/dist/lib/routes-exports.d.ts.map +0 -1
  244. package/dist/lib/routes-exports.js +0 -27
  245. package/dist/lib/routes-exports.js.map +0 -1
  246. package/dist/routes/assets-bulk.d.ts +0 -3
  247. package/dist/routes/assets-bulk.d.ts.map +0 -1
  248. package/dist/routes/assets-by-id.d.ts +0 -5
  249. package/dist/routes/assets-by-id.d.ts.map +0 -1
  250. package/dist/routes/assets-by-id.js +0 -115
  251. package/dist/routes/assets-references-counts.d.ts +0 -7
  252. package/dist/routes/assets-references-counts.d.ts.map +0 -1
  253. package/dist/routes/assets-references-counts.js +0 -41
  254. package/dist/routes/assets-references.d.ts +0 -7
  255. package/dist/routes/assets-references.d.ts.map +0 -1
  256. package/dist/routes/assets-references.js +0 -34
  257. package/dist/routes/assets.d.ts +0 -4
  258. package/dist/routes/assets.d.ts.map +0 -1
  259. package/dist/routes/document-versions.d.ts +0 -5
  260. package/dist/routes/document-versions.d.ts.map +0 -1
  261. package/dist/routes/document-versions.js +0 -113
  262. package/dist/routes/documents-by-id.d.ts +0 -5
  263. package/dist/routes/documents-by-id.d.ts.map +0 -1
  264. package/dist/routes/documents-by-id.js +0 -187
  265. package/dist/routes/documents-publish.d.ts +0 -4
  266. package/dist/routes/documents-publish.d.ts.map +0 -1
  267. package/dist/routes/documents-query.d.ts +0 -26
  268. package/dist/routes/documents-query.d.ts.map +0 -1
  269. package/dist/routes/documents-query.js +0 -103
  270. package/dist/routes/documents.d.ts +0 -4
  271. package/dist/routes/documents.d.ts.map +0 -1
  272. package/dist/routes/index.d.ts +0 -9
  273. package/dist/routes/index.d.ts.map +0 -1
  274. package/dist/routes/index.js +0 -14
  275. package/dist/routes/organizations-by-id.d.ts +0 -5
  276. package/dist/routes/organizations-by-id.d.ts.map +0 -1
  277. package/dist/routes/organizations-invitations.d.ts +0 -4
  278. package/dist/routes/organizations-invitations.d.ts.map +0 -1
  279. package/dist/routes/organizations-members.d.ts +0 -5
  280. package/dist/routes/organizations-members.d.ts.map +0 -1
  281. package/dist/routes/organizations-switch.d.ts +0 -3
  282. package/dist/routes/organizations-switch.d.ts.map +0 -1
  283. package/dist/routes/organizations-switch.js +0 -58
  284. package/dist/routes/organizations.d.ts +0 -4
  285. package/dist/routes/organizations.d.ts.map +0 -1
  286. package/dist/routes/organizations.js +0 -116
  287. package/dist/routes/roles-by-name.d.ts +0 -4
  288. package/dist/routes/roles-by-name.d.ts.map +0 -1
  289. package/dist/routes/roles-by-name.js +0 -111
  290. package/dist/routes/roles.d.ts +0 -4
  291. package/dist/routes/roles.d.ts.map +0 -1
  292. package/dist/routes/roles.js +0 -90
  293. package/dist/routes/schemas-by-type.d.ts +0 -3
  294. package/dist/routes/schemas-by-type.d.ts.map +0 -1
  295. package/dist/routes/schemas-by-type.js +0 -26
  296. package/dist/routes/schemas.d.ts +0 -3
  297. package/dist/routes/schemas.d.ts.map +0 -1
  298. package/dist/routes/schemas.js +0 -11
  299. package/dist/routes/user-preferences.d.ts +0 -4
  300. package/dist/routes/user-preferences.d.ts.map +0 -1
  301. package/dist/routes/user-preferences.js +0 -72
  302. package/dist/routes-exports.d.ts +0 -20
  303. package/dist/routes-exports.d.ts.map +0 -1
  304. package/dist/routes-exports.js +0 -26
@@ -1,103 +0,0 @@
1
- // Aphex CMS Document Query API - Complex filtering with POST
2
- import { json } from '@sveltejs/kit';
3
- import { authToContext } from '../local-api/auth-helpers.js';
4
- import { PermissionError } from '../local-api/permissions.js';
5
- import { cmsLogger } from '../utils/logger.js';
6
- import { queryDocumentsRequest } from '../api/schemas/documents.js';
7
- // Default values
8
- const DEFAULT_PAGE_SIZE = 20;
9
- const DEFAULT_PAGE = 1;
10
- /**
11
- * POST /api/documents/query - Advanced document querying with complex filters
12
- *
13
- * Accepts LocalAPI FindOptions in request body for full filtering power
14
- *
15
- * @example
16
- * POST /api/documents/query
17
- * {
18
- * "type": "page",
19
- * "where": {
20
- * "status": { "equals": "published" },
21
- * "hero.heading": { "contains": "Welcome" },
22
- * "publishedAt": { "gte": "2024-01-01" }
23
- * },
24
- * "limit": 20,
25
- * "page": 1,
26
- * "sort": ["-publishedAt", "title"],
27
- * "depth": 1,
28
- * "perspective": "published",
29
- * "filterOrganizationIds": ["org_child1", "org_child2"],
30
- * "includeChildOrganizations": false
31
- * }
32
- */
33
- export const POST = async ({ request, locals }) => {
34
- try {
35
- const { localAPI } = locals.aphexCMS;
36
- const context = authToContext(locals.auth);
37
- const rawBody = await request.json();
38
- const parsed = queryDocumentsRequest.safeParse(rawBody);
39
- if (!parsed.success) {
40
- return json({
41
- success: false,
42
- error: 'Bad Request',
43
- message: 'Document type is required in request body',
44
- issues: parsed.error.issues
45
- }, { status: 400 });
46
- }
47
- const body = parsed.data;
48
- const documentType = body.type;
49
- // Check if collection exists
50
- if (!localAPI.hasCollection(documentType)) {
51
- return json({
52
- success: false,
53
- error: 'Invalid document type',
54
- message: `Collection '${documentType}' not found. Available: ${localAPI.getCollectionNames().join(', ')}`
55
- }, { status: 400 });
56
- }
57
- // Parse pagination - support both page-based and offset-based
58
- const page = body.page ?? DEFAULT_PAGE;
59
- const pageSize = body.pageSize ?? body.limit ?? DEFAULT_PAGE_SIZE;
60
- const offset = body.offset !== undefined ? body.offset : (page - 1) * pageSize;
61
- // Build FindOptions from request body
62
- const findOptions = {
63
- where: body.where,
64
- limit: pageSize,
65
- offset,
66
- sort: body.sort,
67
- depth: body.depth ?? 0,
68
- select: body.select,
69
- perspective: body.perspective ?? 'draft',
70
- includeChildOrganizations: body.includeChildOrganizations,
71
- filterOrganizationIds: body.filterOrganizationIds
72
- };
73
- // Query via LocalAPI
74
- const result = await localAPI.collections[documentType].find(context, findOptions);
75
- return json({
76
- success: true,
77
- data: result.docs,
78
- pagination: {
79
- total: result.totalDocs,
80
- page: result.page,
81
- pageSize: result.limit,
82
- totalPages: result.totalPages,
83
- hasNextPage: result.hasNextPage,
84
- hasPrevPage: result.hasPrevPage
85
- }
86
- });
87
- }
88
- catch (error) {
89
- cmsLogger.error('Failed to query documents:', error);
90
- if (error instanceof PermissionError) {
91
- return json({
92
- success: false,
93
- error: 'Forbidden',
94
- message: error.message
95
- }, { status: 403 });
96
- }
97
- return json({
98
- success: false,
99
- error: 'Failed to query documents',
100
- message: error instanceof Error ? error.message : 'Unknown error'
101
- }, { status: 500 });
102
- }
103
- };
@@ -1,4 +0,0 @@
1
- import type { RequestHandler } from '@sveltejs/kit';
2
- export declare const GET: RequestHandler;
3
- export declare const POST: RequestHandler;
4
- //# sourceMappingURL=documents.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/lib/routes/documents.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAWpD,eAAO,MAAM,GAAG,EAAE,cA6GjB,CAAC;AAGF,eAAO,MAAM,IAAI,EAAE,cAkFlB,CAAC"}
@@ -1,9 +0,0 @@
1
- export * as documents from './documents.js';
2
- export * as documentsById from './documents-by-id.js';
3
- export * as documentsQuery from './documents-query.js';
4
- export * as documentsPublish from './documents-publish.js';
5
- export * as assets from './assets.js';
6
- export * as schemas from './schemas.js';
7
- export * as schemasByType from './schemas-by-type.js';
8
- export * as userPreferences from './user-preferences.js';
9
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/routes/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,cAAc,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,gBAAgB,MAAM,qBAAqB,CAAC;AAGxD,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAGnC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAC;AAGnD,OAAO,KAAK,eAAe,MAAM,oBAAoB,CAAC"}
@@ -1,14 +0,0 @@
1
- // Aphex CMS API Route Handlers
2
- // These will be imported and re-exported by your app's API routes
3
- // Document management routes
4
- export * as documents from './documents.js';
5
- export * as documentsById from './documents-by-id.js';
6
- export * as documentsQuery from './documents-query.js';
7
- export * as documentsPublish from './documents-publish.js';
8
- // Asset management routes
9
- export * as assets from './assets.js';
10
- // Schema information routes
11
- export * as schemas from './schemas.js';
12
- export * as schemasByType from './schemas-by-type.js';
13
- // User management routes
14
- export * as userPreferences from './user-preferences.js';
@@ -1,5 +0,0 @@
1
- import type { RequestHandler } from '@sveltejs/kit';
2
- export declare const GET: RequestHandler;
3
- export declare const PATCH: RequestHandler;
4
- export declare const DELETE: RequestHandler;
5
- //# sourceMappingURL=organizations-by-id.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"organizations-by-id.d.ts","sourceRoot":"","sources":["../../src/lib/routes/organizations-by-id.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAMpD,eAAO,MAAM,GAAG,EAAE,cAmEjB,CAAC;AAGF,eAAO,MAAM,KAAK,EAAE,cA8GnB,CAAC;AAGF,eAAO,MAAM,MAAM,EAAE,cAmFpB,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { RequestHandler } from '@sveltejs/kit';
2
- export declare const POST: RequestHandler;
3
- export declare const DELETE: RequestHandler;
4
- //# sourceMappingURL=organizations-invitations.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"organizations-invitations.d.ts","sourceRoot":"","sources":["../../src/lib/routes/organizations-invitations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAMpD,eAAO,MAAM,IAAI,EAAE,cA6IlB,CAAC;AAGF,eAAO,MAAM,MAAM,EAAE,cAsEpB,CAAC"}
@@ -1,5 +0,0 @@
1
- import type { RequestHandler } from '@sveltejs/kit';
2
- export declare const GET: RequestHandler;
3
- export declare const DELETE: RequestHandler;
4
- export declare const PATCH: RequestHandler;
5
- //# sourceMappingURL=organizations-members.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"organizations-members.d.ts","sourceRoot":"","sources":["../../src/lib/routes/organizations-members.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAMpD,eAAO,MAAM,GAAG,EAAE,cAkCjB,CAAC;AAGF,eAAO,MAAM,MAAM,EAAE,cAoIpB,CAAC;AAGF,eAAO,MAAM,KAAK,EAAE,cA6HnB,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { RequestHandler } from '@sveltejs/kit';
2
- export declare const POST: RequestHandler;
3
- //# sourceMappingURL=organizations-switch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"organizations-switch.d.ts","sourceRoot":"","sources":["../../src/lib/routes/organizations-switch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAKpD,eAAO,MAAM,IAAI,EAAE,cAsElB,CAAC"}
@@ -1,58 +0,0 @@
1
- // Aphex CMS Organization Switch API Handler
2
- import { json } from '@sveltejs/kit';
3
- import { cmsLogger } from '../utils/logger.js';
4
- import { switchOrganizationRequest } from '../api/schemas/organizations.js';
5
- // POST /api/organizations/switch - Switch active organization
6
- export const POST = async ({ request, locals }) => {
7
- try {
8
- const { databaseAdapter } = locals.aphexCMS;
9
- const auth = locals.auth;
10
- if (!auth || auth.type !== 'session') {
11
- return json({
12
- success: false,
13
- error: 'Unauthorized',
14
- message: 'Session authentication required'
15
- }, { status: 401 });
16
- }
17
- const rawBody = await request.json();
18
- const parsed = switchOrganizationRequest.safeParse(rawBody);
19
- if (!parsed.success) {
20
- return json({
21
- success: false,
22
- error: 'Missing required field',
23
- message: 'organizationId is required',
24
- issues: parsed.error.issues
25
- }, { status: 400 });
26
- }
27
- const body = parsed.data;
28
- // Verify user is a member of the target organization
29
- const membership = await databaseAdapter.findUserMembership(auth.user.id, body.organizationId);
30
- if (!membership) {
31
- return json({
32
- success: false,
33
- error: 'Access denied',
34
- message: 'You are not a member of this organization'
35
- }, { status: 403 });
36
- }
37
- // Update user's active organization
38
- await databaseAdapter.updateUserSession(auth.user.id, body.organizationId);
39
- // Get the organization details
40
- const organization = await databaseAdapter.findOrganizationById(body.organizationId);
41
- return json({
42
- success: true,
43
- data: {
44
- organizationId: body.organizationId,
45
- organizationName: organization?.name,
46
- role: membership.role
47
- }
48
- });
49
- }
50
- catch (error) {
51
- cmsLogger.error('Failed to switch organization:', error);
52
- return json({
53
- success: false,
54
- error: 'Failed to switch organization',
55
- message: error instanceof Error ? error.message : 'Unknown error'
56
- }, { status: 500 });
57
- }
58
- };
@@ -1,4 +0,0 @@
1
- import type { RequestHandler } from '@sveltejs/kit';
2
- export declare const GET: RequestHandler;
3
- export declare const POST: RequestHandler;
4
- //# sourceMappingURL=organizations.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"organizations.d.ts","sourceRoot":"","sources":["../../src/lib/routes/organizations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAKpD,eAAO,MAAM,GAAG,EAAE,cA6CjB,CAAC;AAGF,eAAO,MAAM,IAAI,EAAE,cAkGlB,CAAC"}
@@ -1,116 +0,0 @@
1
- // Aphex CMS Organization API Handlers
2
- import { json } from '@sveltejs/kit';
3
- import { cmsLogger } from '../utils/logger.js';
4
- import { createOrganizationRequest } from '../api/schemas/organizations.js';
5
- // GET /api/organizations - List user's organizations
6
- export const GET = async ({ locals }) => {
7
- try {
8
- const { databaseAdapter } = locals.aphexCMS;
9
- const auth = locals.auth;
10
- if (!auth || auth.type !== 'session') {
11
- return json({
12
- success: false,
13
- error: 'Unauthorized',
14
- message: 'Session authentication required'
15
- }, { status: 401 });
16
- }
17
- // Get all organizations the user belongs to
18
- const memberships = await databaseAdapter.findUserOrganizations(auth.user.id);
19
- // Map to a cleaner format with organization details and user's role
20
- const organizations = memberships.map((membership) => ({
21
- id: membership.organization.id,
22
- name: membership.organization.name,
23
- slug: membership.organization.slug,
24
- metadata: membership.organization.metadata,
25
- role: membership.member.role,
26
- joinedAt: membership.member.createdAt,
27
- isActive: membership.organization.id === auth.organizationId
28
- }));
29
- return json({
30
- success: true,
31
- data: organizations
32
- });
33
- }
34
- catch (error) {
35
- cmsLogger.error('Failed to fetch organizations:', error);
36
- return json({
37
- success: false,
38
- error: 'Failed to fetch organizations',
39
- message: error instanceof Error ? error.message : 'Unknown error'
40
- }, { status: 500 });
41
- }
42
- };
43
- // POST /api/organizations - Create new organization
44
- export const POST = async ({ request, locals }) => {
45
- try {
46
- const { databaseAdapter } = locals.aphexCMS;
47
- const auth = locals.auth;
48
- if (!auth || auth.type !== 'session') {
49
- return json({
50
- success: false,
51
- error: 'Unauthorized',
52
- message: 'Session authentication required'
53
- }, { status: 401 });
54
- }
55
- // Only SUPER_ADMIN can create organizations
56
- if (auth.user.role !== 'super_admin') {
57
- return json({
58
- success: false,
59
- error: 'Forbidden',
60
- message: 'Only super admins can create organizations'
61
- }, { status: 403 });
62
- }
63
- const rawBody = await request.json();
64
- const parsed = createOrganizationRequest.safeParse(rawBody);
65
- if (!parsed.success) {
66
- return json({
67
- success: false,
68
- error: 'Invalid request body',
69
- message: 'Organization name and slug are required',
70
- issues: parsed.error.issues
71
- }, { status: 400 });
72
- }
73
- const body = parsed.data;
74
- // Check if slug is already taken
75
- const existingOrg = await databaseAdapter.findOrganizationBySlug(body.slug);
76
- if (existingOrg) {
77
- return json({
78
- success: false,
79
- error: 'Slug already exists',
80
- message: `Organization with slug '${body.slug}' already exists`
81
- }, { status: 409 });
82
- }
83
- // Create the organization with current active org as parent
84
- // Note: Only supports 1-level hierarchy for performance
85
- const newOrganization = await databaseAdapter.createOrganization({
86
- name: body.name,
87
- slug: body.slug,
88
- metadata: body.metadata || null,
89
- parentOrganizationId: auth.organizationId, // Current active org becomes parent
90
- createdBy: auth.user.id
91
- });
92
- // Seed the four built-in roles for this org before assigning membership.
93
- // The member row references the role by name, so the rows must exist.
94
- await databaseAdapter.seedBuiltinRoles(newOrganization.id);
95
- // Add the creator as owner
96
- await databaseAdapter.addMember({
97
- organizationId: newOrganization.id,
98
- userId: auth.user.id,
99
- role: 'owner'
100
- });
101
- // Set as active organization for this user
102
- await databaseAdapter.updateUserSession(auth.user.id, newOrganization.id);
103
- return json({
104
- success: true,
105
- data: newOrganization
106
- }, { status: 201 });
107
- }
108
- catch (error) {
109
- cmsLogger.error('Failed to create organization:', error);
110
- return json({
111
- success: false,
112
- error: 'Failed to create organization',
113
- message: error instanceof Error ? error.message : 'Unknown error'
114
- }, { status: 500 });
115
- }
116
- };
@@ -1,4 +0,0 @@
1
- import type { RequestHandler } from '@sveltejs/kit';
2
- export declare const PATCH: RequestHandler;
3
- export declare const DELETE: RequestHandler;
4
- //# sourceMappingURL=roles-by-name.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"roles-by-name.d.ts","sourceRoot":"","sources":["../../src/lib/routes/roles-by-name.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAgBpD,eAAO,MAAM,KAAK,EAAE,cA4DnB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,cAoEpB,CAAC"}
@@ -1,111 +0,0 @@
1
- // Aphex CMS Roles API Handlers (by-name)
2
- //
3
- // PATCH /api/roles/[name] — edit description / capabilities
4
- // DELETE /api/roles/[name] — delete a custom role (built-ins cannot be deleted)
5
- import { json } from '@sveltejs/kit';
6
- import { cmsLogger } from '../utils/logger.js';
7
- import { hasCapability, BUILTIN_ROLE_NAMES } from '../types/capabilities.js';
8
- import { updateRoleRequest } from '../api/schemas/roles.js';
9
- function unauthorized() {
10
- return json({ success: false, error: 'Unauthorized', message: 'Session authentication required' }, { status: 401 });
11
- }
12
- function forbidden(message) {
13
- return json({ success: false, error: 'Forbidden', message }, { status: 403 });
14
- }
15
- export const PATCH = async ({ params, request, locals }) => {
16
- try {
17
- const { databaseAdapter, rolesService } = locals.aphexCMS;
18
- const auth = locals.auth;
19
- if (!auth || auth.type !== 'session')
20
- return unauthorized();
21
- if (!hasCapability(auth, 'role.manage')) {
22
- return forbidden('You do not have permission to manage roles');
23
- }
24
- const name = params.name;
25
- if (!name) {
26
- return json({ success: false, error: 'Invalid request', message: 'Role name is required' }, { status: 400 });
27
- }
28
- const rawBody = await request.json();
29
- const parsed = updateRoleRequest.safeParse(rawBody);
30
- if (!parsed.success) {
31
- return json({
32
- success: false,
33
- error: 'Invalid request body',
34
- issues: parsed.error.issues
35
- }, { status: 400 });
36
- }
37
- const body = parsed.data;
38
- const updated = await databaseAdapter.updateRole(auth.organizationId, name, body);
39
- if (!updated) {
40
- return json({
41
- success: false,
42
- error: 'Not found',
43
- message: `No role named "${name}" in this organization`
44
- }, { status: 404 });
45
- }
46
- // Bust the capability cache so open sessions pick up the change on
47
- // their next request instead of waiting for TTL.
48
- await rolesService.invalidate(auth.organizationId, name);
49
- return json({ success: true, data: updated });
50
- }
51
- catch (error) {
52
- cmsLogger.error('Failed to update role:', error);
53
- return json({
54
- success: false,
55
- error: 'Failed to update role',
56
- message: error instanceof Error ? error.message : 'Unknown error'
57
- }, { status: 500 });
58
- }
59
- };
60
- export const DELETE = async ({ params, locals }) => {
61
- try {
62
- const { databaseAdapter, rolesService } = locals.aphexCMS;
63
- const auth = locals.auth;
64
- if (!auth || auth.type !== 'session')
65
- return unauthorized();
66
- if (!hasCapability(auth, 'role.manage')) {
67
- return forbidden('You do not have permission to manage roles');
68
- }
69
- const name = params.name;
70
- if (!name) {
71
- return json({ success: false, error: 'Invalid request', message: 'Role name is required' }, { status: 400 });
72
- }
73
- // Built-ins are part of the org's guaranteed floor — deleting one
74
- // would let a seed run re-create it with stale capabilities. Force the
75
- // user to edit instead.
76
- if (BUILTIN_ROLE_NAMES.includes(name)) {
77
- return forbidden(`"${name}" is a built-in role and cannot be deleted.`);
78
- }
79
- // Block deletion while the role is assigned to any member or invitation.
80
- // Avoids silently orphaning memberships to an unknown role name.
81
- const members = await databaseAdapter.findOrganizationMembers(auth.organizationId);
82
- const inUseByMember = members.some((m) => m.role === name);
83
- const invitations = await databaseAdapter.findOrganizationInvitations(auth.organizationId);
84
- const inUseByInvitation = invitations.some((i) => i.role === name && !i.acceptedAt);
85
- if (inUseByMember || inUseByInvitation) {
86
- return json({
87
- success: false,
88
- error: 'Role in use',
89
- message: `Cannot delete "${name}": reassign affected members or invitations first.`
90
- }, { status: 409 });
91
- }
92
- const deleted = await databaseAdapter.deleteRole(auth.organizationId, name);
93
- if (!deleted) {
94
- return json({
95
- success: false,
96
- error: 'Not found',
97
- message: `No role named "${name}" in this organization`
98
- }, { status: 404 });
99
- }
100
- await rolesService.invalidate(auth.organizationId, name);
101
- return json({ success: true, message: 'Role deleted' });
102
- }
103
- catch (error) {
104
- cmsLogger.error('Failed to delete role:', error);
105
- return json({
106
- success: false,
107
- error: 'Failed to delete role',
108
- message: error instanceof Error ? error.message : 'Unknown error'
109
- }, { status: 500 });
110
- }
111
- };
@@ -1,4 +0,0 @@
1
- import type { RequestHandler } from '@sveltejs/kit';
2
- export declare const GET: RequestHandler;
3
- export declare const POST: RequestHandler;
4
- //# sourceMappingURL=roles.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../src/lib/routes/roles.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAgBpD,eAAO,MAAM,GAAG,EAAE,cAoBjB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,cA0ElB,CAAC"}
@@ -1,90 +0,0 @@
1
- // Aphex CMS Roles API Handlers
2
- //
3
- // GET /api/roles — list roles for the active org
4
- // POST /api/roles — create a custom role (requires role.manage)
5
- import { json } from '@sveltejs/kit';
6
- import { cmsLogger } from '../utils/logger.js';
7
- import { hasCapability, BUILTIN_ROLE_NAMES } from '../types/capabilities.js';
8
- import { createRoleRequest } from '../api/schemas/roles.js';
9
- function unauthorized() {
10
- return json({ success: false, error: 'Unauthorized', message: 'Session authentication required' }, { status: 401 });
11
- }
12
- function forbidden(message) {
13
- return json({ success: false, error: 'Forbidden', message }, { status: 403 });
14
- }
15
- export const GET = async ({ locals }) => {
16
- try {
17
- const { rolesService } = locals.aphexCMS;
18
- const auth = locals.auth;
19
- if (!auth || auth.type !== 'session')
20
- return unauthorized();
21
- const roles = await rolesService.listRoles(auth.organizationId);
22
- return json({ success: true, data: roles });
23
- }
24
- catch (error) {
25
- cmsLogger.error('Failed to list roles:', error);
26
- return json({
27
- success: false,
28
- error: 'Failed to list roles',
29
- message: error instanceof Error ? error.message : 'Unknown error'
30
- }, { status: 500 });
31
- }
32
- };
33
- export const POST = async ({ request, locals }) => {
34
- try {
35
- const { databaseAdapter, rolesService } = locals.aphexCMS;
36
- const auth = locals.auth;
37
- if (!auth || auth.type !== 'session')
38
- return unauthorized();
39
- if (!hasCapability(auth, 'role.manage')) {
40
- return forbidden('You do not have permission to manage roles');
41
- }
42
- const rawBody = await request.json();
43
- const parsed = createRoleRequest.safeParse(rawBody);
44
- if (!parsed.success) {
45
- return json({
46
- success: false,
47
- error: 'Invalid request body',
48
- message: 'name and capabilities are required',
49
- issues: parsed.error.issues
50
- }, { status: 400 });
51
- }
52
- const body = parsed.data;
53
- // Reject collisions with reserved built-in names — built-ins are seeded
54
- // on every org; a matching custom row would never be reachable.
55
- if (BUILTIN_ROLE_NAMES.includes(body.name)) {
56
- return json({
57
- success: false,
58
- error: 'Reserved name',
59
- message: `"${body.name}" is a built-in role name. Edit the existing role instead.`
60
- }, { status: 409 });
61
- }
62
- const existing = await databaseAdapter.findRoleByName(auth.organizationId, body.name);
63
- if (existing) {
64
- return json({
65
- success: false,
66
- error: 'Conflict',
67
- message: `A role named "${body.name}" already exists in this organization.`
68
- }, { status: 409 });
69
- }
70
- const role = await databaseAdapter.createRole({
71
- organizationId: auth.organizationId,
72
- name: body.name,
73
- description: body.description ?? null,
74
- capabilities: body.capabilities,
75
- isBuiltIn: false
76
- });
77
- // New role can't be in use yet, but invalidate the prefix just in case
78
- // a prior lookup populated the cache with an empty fallback entry.
79
- await rolesService.invalidate(auth.organizationId, body.name);
80
- return json({ success: true, data: role }, { status: 201 });
81
- }
82
- catch (error) {
83
- cmsLogger.error('Failed to create role:', error);
84
- return json({
85
- success: false,
86
- error: 'Failed to create role',
87
- message: error instanceof Error ? error.message : 'Unknown error'
88
- }, { status: 500 });
89
- }
90
- };
@@ -1,3 +0,0 @@
1
- import type { RequestHandler } from '@sveltejs/kit';
2
- export declare const GET: RequestHandler;
3
- //# sourceMappingURL=schemas-by-type.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schemas-by-type.d.ts","sourceRoot":"","sources":["../../src/lib/routes/schemas-by-type.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,eAAO,MAAM,GAAG,EAAE,cA+BjB,CAAC"}
@@ -1,26 +0,0 @@
1
- import { cmsLogger } from '../utils/logger.js';
2
- export const GET = async ({ locals, params }) => {
3
- const { type } = params;
4
- const { cmsEngine } = locals.aphexCMS;
5
- if (!type) {
6
- return new Response(JSON.stringify({ error: 'Schema type is required' }), {
7
- status: 400,
8
- headers: { 'content-type': 'application/json' }
9
- });
10
- }
11
- cmsLogger.debug('GETTING SCHEMA TYPE FROM: ', type);
12
- const schema = cmsEngine.getSchemaTypeByName(type);
13
- cmsLogger.debug('SCHEMA: ', schema);
14
- if (!schema) {
15
- return new Response(JSON.stringify({ error: `Schema type '${type}' not found` }), {
16
- status: 404,
17
- headers: { 'content-type': 'application/json' }
18
- });
19
- }
20
- return new Response(JSON.stringify({
21
- success: true,
22
- data: schema
23
- }), {
24
- headers: { 'content-type': 'application/json' }
25
- });
26
- };
@@ -1,3 +0,0 @@
1
- import type { RequestHandler } from '@sveltejs/kit';
2
- export declare const GET: RequestHandler;
3
- //# sourceMappingURL=schemas.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/lib/routes/schemas.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,eAAO,MAAM,GAAG,EAAE,cAejB,CAAC"}
@@ -1,11 +0,0 @@
1
- export const GET = async ({ locals }) => {
2
- const { cmsEngine } = locals.aphexCMS;
3
- // Get schemas from config (not database) to preserve validation functions
4
- const schemas = cmsEngine.config.schemaTypes;
5
- return new Response(JSON.stringify({
6
- success: true,
7
- data: schemas
8
- }), {
9
- headers: { 'content-type': 'application/json' }
10
- });
11
- };
@@ -1,4 +0,0 @@
1
- import type { RequestHandler } from '@sveltejs/kit';
2
- export declare const GET: RequestHandler;
3
- export declare const PATCH: RequestHandler;
4
- //# sourceMappingURL=user-preferences.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user-preferences.d.ts","sourceRoot":"","sources":["../../src/lib/routes/user-preferences.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAKpD,eAAO,MAAM,GAAG,EAAE,cAiCjB,CAAC;AAGF,eAAO,MAAM,KAAK,EAAE,cAoDnB,CAAC"}