@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
@@ -5,6 +5,16 @@ export declare const updateUserRequest: z.ZodObject<{
5
5
  export declare const updateUserPreferencesRequest: z.ZodObject<{
6
6
  includeChildOrganizations: z.ZodOptional<z.ZodBoolean>;
7
7
  }, z.core.$strict>;
8
+ export declare const requestPasswordResetRequest: z.ZodObject<{
9
+ email: z.ZodString;
10
+ redirectTo: z.ZodOptional<z.ZodString>;
11
+ }, z.core.$strip>;
12
+ export declare const resetPasswordRequest: z.ZodObject<{
13
+ token: z.ZodString;
14
+ newPassword: z.ZodString;
15
+ }, z.core.$strip>;
8
16
  export type UpdateUserRequest = z.infer<typeof updateUserRequest>;
9
17
  export type UpdateUserPreferencesRequest = z.infer<typeof updateUserPreferencesRequest>;
18
+ export type RequestPasswordResetRequest = z.infer<typeof requestPasswordResetRequest>;
19
+ export type ResetPasswordRequest = z.infer<typeof resetPasswordRequest>;
10
20
  //# sourceMappingURL=user.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/lib/api/schemas/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AAIH,eAAO,MAAM,4BAA4B;;kBAI/B,CAAC;AAIX,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAClE,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/lib/api/schemas/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AAIH,eAAO,MAAM,4BAA4B;;kBAI/B,CAAC;AAIX,eAAO,MAAM,2BAA2B;;;iBAGtC,CAAC;AAIH,eAAO,MAAM,oBAAoB;;;iBAG/B,CAAC;AAIH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAClE,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AACxF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AACtF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -9,3 +9,13 @@ export const updateUserPreferencesRequest = z
9
9
  includeChildOrganizations: z.boolean().optional()
10
10
  })
11
11
  .strict();
12
+ // ---------- POST /user/request-password-reset ----------
13
+ export const requestPasswordResetRequest = z.object({
14
+ email: z.string().email(),
15
+ redirectTo: z.string().optional()
16
+ });
17
+ // ---------- POST /user/reset-password ----------
18
+ export const resetPasswordRequest = z.object({
19
+ token: z.string().min(1),
20
+ newPassword: z.string().min(1)
21
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/lib/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAc5D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/lib/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAa5D"}
package/dist/config.js CHANGED
@@ -9,7 +9,6 @@ export function createCMSConfig(config) {
9
9
  ...config.customization?.branding
10
10
  },
11
11
  ...config.customization
12
- },
13
- plugins: config.plugins ?? []
12
+ }
14
13
  };
15
14
  }
package/dist/hooks.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { Handle } from '@sveltejs/kit';
2
+ import type { Hono } from 'hono';
2
3
  import type { CMSConfig } from './types/index.js';
3
4
  import type { DatabaseAdapter } from './db/index.js';
4
5
  import type { AssetService } from './services/asset-service.js';
@@ -9,6 +10,7 @@ import type { GraphQLSettings } from './graphql/index.js';
9
10
  import { RolesService } from './services/roles-service.js';
10
11
  import { CMSEngine } from './engine.js';
11
12
  import { type LocalAPI } from './local-api/index.js';
13
+ import { type AphexEnv } from './server/api/index.js';
12
14
  export interface CMSInstances {
13
15
  config: CMSConfig;
14
16
  assetService: AssetService;
@@ -20,10 +22,7 @@ export interface CMSInstances {
20
22
  rolesService: RolesService;
21
23
  auth?: AuthProvider;
22
24
  graphqlSettings?: GraphQLSettings | null;
23
- pluginRoutes?: Map<string, {
24
- handler: (event: any) => Promise<Response> | Response;
25
- pluginName: string;
26
- }>;
25
+ apiApp: Hono<AphexEnv>;
27
26
  }
28
27
  export declare function createCMSHook(config: CMSConfig): Handle;
29
28
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/lib/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAA8B,MAAM,eAAe,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAKvD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAa,SAAS,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGlE,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,YAAY,CAAC,EAAE,GAAG,CACjB,MAAM,EACN;QAAE,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAC7E,CAAC;CACF;AAiFD,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CA8LvD"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/lib/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAKvD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAa,SAAS,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAIN,KAAK,QAAQ,EACb,MAAM,oBAAoB,CAAC;AAG5B,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;CACvB;AA0BD,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAgJvD"}
package/dist/hooks.js CHANGED
@@ -5,6 +5,7 @@ import { AssetService as AssetServiceClass } from './services/asset-service.js';
5
5
  import { RolesService } from './services/roles-service.js';
6
6
  import { createCMS } from './engine.js';
7
7
  import { createLocalAPI } from './local-api/index.js';
8
+ import { createAphexApi, mountAphexBuiltins, toHonoHandler } from './server/api/index.js';
8
9
  let cmsInstances = null;
9
10
  let schemaError = null;
10
11
  let initPromise = null;
@@ -26,51 +27,6 @@ function createDefaultStorageAdapter() {
26
27
  baseUrl: '' // No direct URL - all access through /assets/{id}/{filename}
27
28
  });
28
29
  }
29
- /**
30
- * Resolves a plugin configuration to an actual CMSPlugin instance
31
- * Supports three formats:
32
- * 1. String: 'my-plugin' - dynamically imports default export
33
- * 2. Object with name/options: { name: 'my-plugin', options: {...} }
34
- * 3. Already instantiated plugin: CMSPlugin object
35
- */
36
- async function resolvePlugin(pluginConfig) {
37
- // Format 3: Already an instantiated plugin
38
- if (typeof pluginConfig === 'object' && 'install' in pluginConfig) {
39
- return pluginConfig;
40
- }
41
- // Format 1: String reference
42
- if (typeof pluginConfig === 'string') {
43
- try {
44
- const pluginModule = await import(/* @vite-ignore */ pluginConfig);
45
- const plugin = pluginModule.default || pluginModule;
46
- if (typeof plugin === 'function') {
47
- // If it's a factory function, call it with no options
48
- return plugin();
49
- }
50
- return plugin;
51
- }
52
- catch (error) {
53
- throw new Error(`Failed to load plugin "${pluginConfig}". Make sure it's installed: npm install ${pluginConfig}\nError: ${error}`);
54
- }
55
- }
56
- // Format 2: Object with name and options
57
- if (typeof pluginConfig === 'object' && 'name' in pluginConfig) {
58
- try {
59
- const pluginModule = await import(/* @vite-ignore */ pluginConfig.name);
60
- const pluginFactory = pluginModule.default || pluginModule;
61
- if (typeof pluginFactory === 'function') {
62
- // Call factory with options
63
- return pluginFactory(pluginConfig.options || {});
64
- }
65
- // If not a factory, return as-is (assuming it's already a plugin)
66
- return pluginFactory;
67
- }
68
- catch (error) {
69
- throw new Error(`Failed to load plugin "${pluginConfig.name}". Make sure it's installed: npm install ${pluginConfig.name}\nError: ${error}`);
70
- }
71
- }
72
- throw new Error(`Invalid plugin configuration: ${JSON.stringify(pluginConfig)}`);
73
- }
74
30
  export function createCMSHook(config) {
75
31
  if (!config) {
76
32
  throw new Error('[CMS] createCMSHook received an undefined config. ' +
@@ -112,6 +68,12 @@ export function createCMSHook(config) {
112
68
  const rolesService = new RolesService(databaseAdapter, config.cache ?? null);
113
69
  // Initialize Local API (unified operations layer)
114
70
  const localAPI = createLocalAPI(config, databaseAdapter);
71
+ // Build the Hono API app shell. User middleware/overrides register
72
+ // FIRST (so they sit ahead of built-ins in the chain), then we mount
73
+ // the built-in routes, then GraphQL.
74
+ const apiApp = createAphexApi();
75
+ config.api?.(apiApp);
76
+ mountAphexBuiltins(apiApp);
115
77
  // Initialize schemas with validation
116
78
  try {
117
79
  await cmsEngine.initialize();
@@ -120,44 +82,6 @@ export function createCMSHook(config) {
120
82
  cmsLogger.error('[CMS]', 'Failed to initialize:', error);
121
83
  schemaError = error instanceof Error ? error : new Error(String(error));
122
84
  }
123
- // Build plugin route map and install plugins (do this ONCE at startup)
124
- const pluginRoutes = new Map();
125
- // Resolve and install plugins
126
- if (config.plugins && config.plugins.length > 0) {
127
- for (const pluginConfig of config.plugins) {
128
- try {
129
- // Resolve plugin config to actual CMSPlugin instance (may involve dynamic import)
130
- const plugin = await resolvePlugin(pluginConfig);
131
- cmsLogger.info('[CMS]', `Loading plugin: ${plugin.name}@${plugin.version}`);
132
- // Build route map before installation
133
- if (plugin.routes) {
134
- for (const [path, handler] of Object.entries(plugin.routes)) {
135
- pluginRoutes.set(path, { handler, pluginName: plugin.name });
136
- }
137
- }
138
- // Create temporary cmsInstances for installation (will be replaced below)
139
- const tempInstances = {
140
- config,
141
- databaseAdapter: databaseAdapter,
142
- assetService: assetService,
143
- storageAdapter: storageAdapter,
144
- emailAdapter: emailAdapter,
145
- cmsEngine: cmsEngine,
146
- localAPI: localAPI,
147
- rolesService,
148
- auth: config.auth?.provider,
149
- pluginRoutes
150
- };
151
- // Install the plugin
152
- cmsLogger.info('[CMS]', `Installing plugin: ${plugin.name}`);
153
- await plugin.install(tempInstances);
154
- }
155
- catch (error) {
156
- cmsLogger.error('[CMS]', 'Failed to load/install plugin:', error);
157
- throw error;
158
- }
159
- }
160
- }
161
85
  // Initialize built-in GraphQL (enabled by default, opt-out with graphql: false)
162
86
  let graphqlSettings = null;
163
87
  if (config.graphql !== false) {
@@ -174,15 +98,20 @@ export function createCMSHook(config) {
174
98
  localAPI,
175
99
  rolesService,
176
100
  auth: config.auth?.provider,
177
- pluginRoutes
101
+ apiApp
178
102
  }, config.schemaTypes, graphqlConfig);
179
- // Register GraphQL route (normalize path to always have leading /)
103
+ // Register GraphQL directly on the Hono app. The Yoga handler
104
+ // internally distinguishes GET (GraphiQL UI) from POST (queries),
105
+ // so we mount with `app.all()` and let it route by method.
106
+ //
107
+ // Path is normalized to be relative to the `/api` basePath:
108
+ // e.g. config path "/api/graphql" → mount at "/graphql".
180
109
  const rawPath = graphqlConfig.path ?? '/api/graphql';
181
- const endpoint = rawPath.startsWith('/') ? rawPath : `/${rawPath}`;
182
- pluginRoutes.set(endpoint, {
183
- handler: result.handler,
184
- pluginName: 'built-in:graphql'
185
- });
110
+ const fullPath = rawPath.startsWith('/') ? rawPath : `/${rawPath}`;
111
+ const honoPath = fullPath.startsWith('/api')
112
+ ? fullPath.slice('/api'.length) || '/'
113
+ : fullPath;
114
+ apiApp.all(honoPath, toHonoHandler(result.handler));
186
115
  graphqlSettings = result.settings;
187
116
  }
188
117
  catch (error) {
@@ -201,7 +130,7 @@ export function createCMSHook(config) {
201
130
  rolesService,
202
131
  auth: config.auth?.provider,
203
132
  graphqlSettings,
204
- pluginRoutes
133
+ apiApp
205
134
  };
206
135
  resolveInit();
207
136
  }
@@ -217,14 +146,6 @@ export function createCMSHook(config) {
217
146
  if (authResponse)
218
147
  return authResponse;
219
148
  }
220
- // Check if a plugin handles this route (O(1) lookup)
221
- if (cmsInstances.pluginRoutes && cmsInstances.pluginRoutes.size > 0) {
222
- const pluginRoute = cmsInstances.pluginRoutes.get(event.url.pathname);
223
- if (pluginRoute) {
224
- cmsLogger.debug('[CMS]', `Plugin ${pluginRoute.pluginName} handling route: ${event.url.pathname}`);
225
- return pluginRoute.handler(event);
226
- }
227
- }
228
149
  return resolve(event);
229
150
  };
230
151
  }
@@ -5,6 +5,16 @@ export declare const updateUserRequest: z.ZodObject<{
5
5
  export declare const updateUserPreferencesRequest: z.ZodObject<{
6
6
  includeChildOrganizations: z.ZodOptional<z.ZodBoolean>;
7
7
  }, z.core.$strict>;
8
+ export declare const requestPasswordResetRequest: z.ZodObject<{
9
+ email: z.ZodString;
10
+ redirectTo: z.ZodOptional<z.ZodString>;
11
+ }, z.core.$strip>;
12
+ export declare const resetPasswordRequest: z.ZodObject<{
13
+ token: z.ZodString;
14
+ newPassword: z.ZodString;
15
+ }, z.core.$strip>;
8
16
  export type UpdateUserRequest = z.infer<typeof updateUserRequest>;
9
17
  export type UpdateUserPreferencesRequest = z.infer<typeof updateUserPreferencesRequest>;
18
+ export type RequestPasswordResetRequest = z.infer<typeof requestPasswordResetRequest>;
19
+ export type ResetPasswordRequest = z.infer<typeof resetPasswordRequest>;
10
20
  //# sourceMappingURL=user.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/lib/api/schemas/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AAIH,eAAO,MAAM,4BAA4B;;kBAI/B,CAAC;AAIX,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAClE,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/lib/api/schemas/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AAIH,eAAO,MAAM,4BAA4B;;kBAI/B,CAAC;AAIX,eAAO,MAAM,2BAA2B;;;iBAGtC,CAAC;AAIH,eAAO,MAAM,oBAAoB;;;iBAG/B,CAAC;AAIH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAClE,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AACxF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AACtF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -9,4 +9,14 @@ export const updateUserPreferencesRequest = z
9
9
  includeChildOrganizations: z.boolean().optional()
10
10
  })
11
11
  .strict();
12
+ // ---------- POST /user/request-password-reset ----------
13
+ export const requestPasswordResetRequest = z.object({
14
+ email: z.string().email(),
15
+ redirectTo: z.string().optional()
16
+ });
17
+ // ---------- POST /user/reset-password ----------
18
+ export const resetPasswordRequest = z.object({
19
+ token: z.string().min(1),
20
+ newPassword: z.string().min(1)
21
+ });
12
22
  //# sourceMappingURL=user.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../src/lib/api/schemas/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oCAAoC;AAEpC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACvB,CAAC,CAAC;AAEH,mDAAmD;AAEnD,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC3C,MAAM,CAAC;IACP,yBAAyB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACjD,CAAC;KACD,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../src/lib/api/schemas/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oCAAoC;AAEpC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACvB,CAAC,CAAC;AAEH,mDAAmD;AAEnD,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC3C,MAAM,CAAC;IACP,yBAAyB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACjD,CAAC;KACD,MAAM,EAAE,CAAC;AAEX,0DAA0D;AAE1D,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACzB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH,kDAAkD;AAElD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC9B,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAc5D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAa5D"}
@@ -9,8 +9,7 @@ export function createCMSConfig(config) {
9
9
  ...config.customization?.branding
10
10
  },
11
11
  ...config.customization
12
- },
13
- plugins: config.plugins ?? []
12
+ }
14
13
  };
15
14
  }
16
15
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,eAAe,CAAC,MAAiB;IAChD,OAAO;QACN,yEAAyE;QACzE,GAAG,MAAM;QACT,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI,EAAE,kCAAkC;QACnE,aAAa,EAAE;YACd,QAAQ,EAAE;gBACT,KAAK,EAAE,WAAW;gBAClB,GAAG,MAAM,CAAC,aAAa,EAAE,QAAQ;aACjC;YACD,GAAG,MAAM,CAAC,aAAa;SACvB;QACD,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;KAC7B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,eAAe,CAAC,MAAiB;IAChD,OAAO;QACN,yEAAyE;QACzE,GAAG,MAAM;QACT,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI,EAAE,kCAAkC;QACnE,aAAa,EAAE;YACd,QAAQ,EAAE;gBACT,KAAK,EAAE,WAAW;gBAClB,GAAG,MAAM,CAAC,aAAa,EAAE,QAAQ;aACjC;YACD,GAAG,MAAM,CAAC,aAAa;SACvB;KACD,CAAC;AACH,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { Handle } from '@sveltejs/kit';
2
+ import type { Hono } from 'hono';
2
3
  import type { CMSConfig } from './types/index.js';
3
4
  import type { DatabaseAdapter } from './db/index.js';
4
5
  import type { AssetService } from './services/asset-service.js';
@@ -9,6 +10,7 @@ import type { GraphQLSettings } from './graphql/index.js';
9
10
  import { RolesService } from './services/roles-service.js';
10
11
  import { CMSEngine } from './engine.js';
11
12
  import { type LocalAPI } from './local-api/index.js';
13
+ import { type AphexEnv } from './server/api/index.js';
12
14
  export interface CMSInstances {
13
15
  config: CMSConfig;
14
16
  assetService: AssetService;
@@ -20,10 +22,7 @@ export interface CMSInstances {
20
22
  rolesService: RolesService;
21
23
  auth?: AuthProvider;
22
24
  graphqlSettings?: GraphQLSettings | null;
23
- pluginRoutes?: Map<string, {
24
- handler: (event: any) => Promise<Response> | Response;
25
- pluginName: string;
26
- }>;
25
+ apiApp: Hono<AphexEnv>;
27
26
  }
28
27
  export declare function createCMSHook(config: CMSConfig): Handle;
29
28
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/lib/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAA8B,MAAM,eAAe,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAKvD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAa,SAAS,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGlE,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,YAAY,CAAC,EAAE,GAAG,CACjB,MAAM,EACN;QAAE,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAC7E,CAAC;CACF;AAiFD,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CA8LvD"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/lib/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAKvD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAa,SAAS,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAIN,KAAK,QAAQ,EACb,MAAM,oBAAoB,CAAC;AAG5B,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;CACvB;AA0BD,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAgJvD"}
package/dist/lib/hooks.js CHANGED
@@ -5,6 +5,7 @@ import { AssetService as AssetServiceClass } from './services/asset-service.js';
5
5
  import { RolesService } from './services/roles-service.js';
6
6
  import { createCMS } from './engine.js';
7
7
  import { createLocalAPI } from './local-api/index.js';
8
+ import { createAphexApi, mountAphexBuiltins, toHonoHandler } from './server/api/index.js';
8
9
  let cmsInstances = null;
9
10
  let schemaError = null;
10
11
  let initPromise = null;
@@ -26,51 +27,6 @@ function createDefaultStorageAdapter() {
26
27
  baseUrl: '' // No direct URL - all access through /assets/{id}/{filename}
27
28
  });
28
29
  }
29
- /**
30
- * Resolves a plugin configuration to an actual CMSPlugin instance
31
- * Supports three formats:
32
- * 1. String: 'my-plugin' - dynamically imports default export
33
- * 2. Object with name/options: { name: 'my-plugin', options: {...} }
34
- * 3. Already instantiated plugin: CMSPlugin object
35
- */
36
- async function resolvePlugin(pluginConfig) {
37
- // Format 3: Already an instantiated plugin
38
- if (typeof pluginConfig === 'object' && 'install' in pluginConfig) {
39
- return pluginConfig;
40
- }
41
- // Format 1: String reference
42
- if (typeof pluginConfig === 'string') {
43
- try {
44
- const pluginModule = await import(/* @vite-ignore */ pluginConfig);
45
- const plugin = pluginModule.default || pluginModule;
46
- if (typeof plugin === 'function') {
47
- // If it's a factory function, call it with no options
48
- return plugin();
49
- }
50
- return plugin;
51
- }
52
- catch (error) {
53
- throw new Error(`Failed to load plugin "${pluginConfig}". Make sure it's installed: npm install ${pluginConfig}\nError: ${error}`);
54
- }
55
- }
56
- // Format 2: Object with name and options
57
- if (typeof pluginConfig === 'object' && 'name' in pluginConfig) {
58
- try {
59
- const pluginModule = await import(/* @vite-ignore */ pluginConfig.name);
60
- const pluginFactory = pluginModule.default || pluginModule;
61
- if (typeof pluginFactory === 'function') {
62
- // Call factory with options
63
- return pluginFactory(pluginConfig.options || {});
64
- }
65
- // If not a factory, return as-is (assuming it's already a plugin)
66
- return pluginFactory;
67
- }
68
- catch (error) {
69
- throw new Error(`Failed to load plugin "${pluginConfig.name}". Make sure it's installed: npm install ${pluginConfig.name}\nError: ${error}`);
70
- }
71
- }
72
- throw new Error(`Invalid plugin configuration: ${JSON.stringify(pluginConfig)}`);
73
- }
74
30
  export function createCMSHook(config) {
75
31
  if (!config) {
76
32
  throw new Error('[CMS] createCMSHook received an undefined config. ' +
@@ -112,6 +68,12 @@ export function createCMSHook(config) {
112
68
  const rolesService = new RolesService(databaseAdapter, config.cache ?? null);
113
69
  // Initialize Local API (unified operations layer)
114
70
  const localAPI = createLocalAPI(config, databaseAdapter);
71
+ // Build the Hono API app shell. User middleware/overrides register
72
+ // FIRST (so they sit ahead of built-ins in the chain), then we mount
73
+ // the built-in routes, then GraphQL.
74
+ const apiApp = createAphexApi();
75
+ config.api?.(apiApp);
76
+ mountAphexBuiltins(apiApp);
115
77
  // Initialize schemas with validation
116
78
  try {
117
79
  await cmsEngine.initialize();
@@ -120,44 +82,6 @@ export function createCMSHook(config) {
120
82
  cmsLogger.error('[CMS]', 'Failed to initialize:', error);
121
83
  schemaError = error instanceof Error ? error : new Error(String(error));
122
84
  }
123
- // Build plugin route map and install plugins (do this ONCE at startup)
124
- const pluginRoutes = new Map();
125
- // Resolve and install plugins
126
- if (config.plugins && config.plugins.length > 0) {
127
- for (const pluginConfig of config.plugins) {
128
- try {
129
- // Resolve plugin config to actual CMSPlugin instance (may involve dynamic import)
130
- const plugin = await resolvePlugin(pluginConfig);
131
- cmsLogger.info('[CMS]', `Loading plugin: ${plugin.name}@${plugin.version}`);
132
- // Build route map before installation
133
- if (plugin.routes) {
134
- for (const [path, handler] of Object.entries(plugin.routes)) {
135
- pluginRoutes.set(path, { handler, pluginName: plugin.name });
136
- }
137
- }
138
- // Create temporary cmsInstances for installation (will be replaced below)
139
- const tempInstances = {
140
- config,
141
- databaseAdapter: databaseAdapter,
142
- assetService: assetService,
143
- storageAdapter: storageAdapter,
144
- emailAdapter: emailAdapter,
145
- cmsEngine: cmsEngine,
146
- localAPI: localAPI,
147
- rolesService,
148
- auth: config.auth?.provider,
149
- pluginRoutes
150
- };
151
- // Install the plugin
152
- cmsLogger.info('[CMS]', `Installing plugin: ${plugin.name}`);
153
- await plugin.install(tempInstances);
154
- }
155
- catch (error) {
156
- cmsLogger.error('[CMS]', 'Failed to load/install plugin:', error);
157
- throw error;
158
- }
159
- }
160
- }
161
85
  // Initialize built-in GraphQL (enabled by default, opt-out with graphql: false)
162
86
  let graphqlSettings = null;
163
87
  if (config.graphql !== false) {
@@ -174,15 +98,20 @@ export function createCMSHook(config) {
174
98
  localAPI,
175
99
  rolesService,
176
100
  auth: config.auth?.provider,
177
- pluginRoutes
101
+ apiApp
178
102
  }, config.schemaTypes, graphqlConfig);
179
- // Register GraphQL route (normalize path to always have leading /)
103
+ // Register GraphQL directly on the Hono app. The Yoga handler
104
+ // internally distinguishes GET (GraphiQL UI) from POST (queries),
105
+ // so we mount with `app.all()` and let it route by method.
106
+ //
107
+ // Path is normalized to be relative to the `/api` basePath:
108
+ // e.g. config path "/api/graphql" → mount at "/graphql".
180
109
  const rawPath = graphqlConfig.path ?? '/api/graphql';
181
- const endpoint = rawPath.startsWith('/') ? rawPath : `/${rawPath}`;
182
- pluginRoutes.set(endpoint, {
183
- handler: result.handler,
184
- pluginName: 'built-in:graphql'
185
- });
110
+ const fullPath = rawPath.startsWith('/') ? rawPath : `/${rawPath}`;
111
+ const honoPath = fullPath.startsWith('/api')
112
+ ? fullPath.slice('/api'.length) || '/'
113
+ : fullPath;
114
+ apiApp.all(honoPath, toHonoHandler(result.handler));
186
115
  graphqlSettings = result.settings;
187
116
  }
188
117
  catch (error) {
@@ -201,7 +130,7 @@ export function createCMSHook(config) {
201
130
  rolesService,
202
131
  auth: config.auth?.provider,
203
132
  graphqlSettings,
204
- pluginRoutes
133
+ apiApp
205
134
  };
206
135
  resolveInit();
207
136
  }
@@ -217,14 +146,6 @@ export function createCMSHook(config) {
217
146
  if (authResponse)
218
147
  return authResponse;
219
148
  }
220
- // Check if a plugin handles this route (O(1) lookup)
221
- if (cmsInstances.pluginRoutes && cmsInstances.pluginRoutes.size > 0) {
222
- const pluginRoute = cmsInstances.pluginRoutes.get(event.url.pathname);
223
- if (pluginRoute) {
224
- cmsLogger.debug('[CMS]', `Plugin ${pluginRoute.pluginName} handling route: ${event.url.pathname}`);
225
- return pluginRoute.handler(event);
226
- }
227
- }
228
149
  return resolve(event);
229
150
  };
230
151
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/lib/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/lib/hooks.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,oBAAoB,IAAI,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AACnG,OAAO,EAAE,YAAY,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAa,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,cAAc,EAAiB,MAAM,mBAAmB,CAAC;AAClE,OAAO,EACN,cAAc,EACd,kBAAkB,EAClB,aAAa,EAEb,MAAM,oBAAoB,CAAC;AAiB5B,IAAI,YAAY,GAAwB,IAAI,CAAC;AAC7C,IAAI,WAAW,GAAiB,IAAI,CAAC;AACrC,IAAI,WAAW,GAAyB,IAAI,CAAC;AAE7C;;;GAGG;AACH,SAAS,iBAAiB;IACzB,MAAM,KAAK,GAAI,MAAc,CAAC,mBAAmB,KAAK,IAAI,CAAC;IAC3D,IAAI,KAAK,EAAE,CAAC;QACV,MAAc,CAAC,mBAAmB,GAAG,KAAK,CAAC,CAAC,iBAAiB;IAC/D,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,+DAA+D;AAC/D,SAAS,2BAA2B;IACnC,OAAO,4BAA4B,CAAC,OAAO,EAAE;QAC5C,QAAQ,EAAE,kBAAkB,EAAE,6DAA6D;QAC3F,OAAO,EAAE,EAAE,CAAC,6DAA6D;KACzE,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAiB;IAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACd,oDAAoD;YACnD,6EAA6E,CAC9E,CAAC;IACH,CAAC;IACD,4CAA4C;IAC5C,IAAI,MAAM,CAAC,QAAQ;QAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAElD,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;QACnC,uEAAuE;QACvE,uEAAuE;QAEvE,uDAAuD;QACvD,gFAAgF;QAChF,2EAA2E;QAC3E,2EAA2E;QAC3E,4DAA4D;QAC5D,IAAI,YAAY,IAAI,CAAC,iBAAiB,EAAE,IAAI,WAAW,CAAC,EAAE,CAAC;YAC1D,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,4CAA4C,CAAC,CAAC;YACtE,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC/B,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnC,CAAC;YACD,YAAY,GAAG,IAAI,CAAC;YACpB,WAAW,GAAG,IAAI,CAAC;YACnB,WAAW,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YACjB,MAAM,WAAW,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;YACnB,IAAI,WAAuB,CAAC;YAC5B,WAAW,GAAG,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;YAE1D,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;YAC3C,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC;YACxC,wEAAwE;YACxE,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,IAAI,2BAA2B,EAAE,CAAC;YACvE,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC;YAC1C,MAAM,YAAY,GAAG,IAAI,iBAAiB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;YAC5E,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YACrD,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;YAE7E,kDAAkD;YAClD,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YAEzD,mEAAmE;YACnE,qEAAqE;YACrE,qCAAqC;YACrC,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;YACrB,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAE3B,qCAAqC;YACrC,IAAI,CAAC;gBACJ,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC;YAC9B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAC;gBACzD,WAAW,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACzE,CAAC;YAED,gFAAgF;YAChF,IAAI,eAAe,GAA2B,IAAI,CAAC;YAEnD,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBAC9B,IAAI,CAAC;oBACJ,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;oBACjE,MAAM,aAAa,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/E,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACxC;wBACC,MAAM;wBACN,eAAe;wBACf,YAAY;wBACZ,cAAc;wBACd,YAAY;wBACZ,SAAS;wBACT,QAAQ;wBACR,YAAY;wBACZ,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ;wBAC3B,MAAM;qBACN,EACD,MAAM,CAAC,WAAW,EAClB,aAAa,CACb,CAAC;oBAEF,8DAA8D;oBAC9D,kEAAkE;oBAClE,2DAA2D;oBAC3D,EAAE;oBACF,4DAA4D;oBAC5D,yDAAyD;oBACzD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,IAAI,cAAc,CAAC;oBACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;oBACnE,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;wBAC3C,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG;wBACtC,CAAC,CAAC,QAAQ,CAAC;oBACZ,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;oBACpD,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACnC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,+BAA+B,EAAE,KAAK,CAAC,CAAC;oBACjE,uCAAuC;gBACxC,CAAC;YACF,CAAC;YAED,YAAY,GAAG;gBACd,MAAM;gBACN,eAAe,EAAE,eAAe;gBAChC,YAAY,EAAE,YAAY;gBAC1B,cAAc,EAAE,cAAc;gBAC9B,YAAY,EAAE,YAAY;gBAC1B,SAAS,EAAE,SAAS;gBACpB,QAAQ,EAAE,QAAQ;gBAClB,YAAY;gBACZ,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ;gBAC3B,eAAe;gBACf,MAAM;aACN,CAAC;YAEF,WAAY,EAAE,CAAC;QAChB,CAAC;QAED,2EAA2E;QAC3E,IAAI,YAAY,EAAE,CAAC;YACjB,YAAoB,CAAC,WAAW,GAAG,WAAW,CAAC;QACjD,CAAC;QAED,qEAAqE;QACrE,KAAK,CAAC,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC;QAErC,gCAAgC;QAChC,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;YACvB,MAAM,YAAY,GAAG,MAAM,cAAc,CACxC,KAAK,EACL,MAAM,EACN,YAAY,CAAC,IAAI,EACjB,YAAY,CAAC,eAAe,EAC5B,YAAY,CAAC,YAAY,CACzB,CAAC;YACF,IAAI,YAAY;gBAAE,OAAO,YAAY,CAAC;QACvC,CAAC;QAED,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC,CAAC;AACH,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { Hono } from 'hono';
2
+ import type { CMSInstances } from '../../hooks.js';
3
+ import type { Auth } from '../../types/auth.js';
4
+ /**
5
+ * Hono environment for the Aphex API.
6
+ *
7
+ * Variables on `c.var`:
8
+ * - `aphexCMS` — the singleton CMS service container (db, storage, services).
9
+ * - `auth` — the resolved auth principal for this request, or null if anonymous.
10
+ *
11
+ * These are populated by the SvelteKit catch-all, which invokes
12
+ * `app.fetch(request, { aphexCMS, auth })` and the bridge middleware below
13
+ * lifts them onto `c.var`.
14
+ */
15
+ export type AphexEnv = {
16
+ Variables: {
17
+ aphexCMS: CMSInstances;
18
+ auth: Auth | null;
19
+ };
20
+ Bindings: {
21
+ aphexCMS: CMSInstances;
22
+ auth: Auth | null;
23
+ };
24
+ };
25
+ /**
26
+ * Build the Aphex API Hono app shell.
27
+ *
28
+ * Returns a Hono app with `/api` basePath and the bridge middleware that
29
+ * lifts `app.fetch(req, env)` values onto `c.var`. Built-in routes are NOT
30
+ * mounted yet — call `mountAphexBuiltins(app)` after registering any user
31
+ * middleware/overrides (Hono is registration-order-strict).
32
+ */
33
+ export declare function createAphexApi(): import("hono/hono-base").HonoBase<AphexEnv, import("hono/types").BlankSchema, "/api", "/api">;
34
+ /**
35
+ * Mount cms-core's built-in resource routes onto an Aphex API app.
36
+ *
37
+ * Called by `createCMSHook` after `config.api?.(app)` runs, so user-provided
38
+ * middleware (e.g. an email-sending wrap on `/organizations/invitations`)
39
+ * registers ahead of the built-in handler and gets the chance to wrap it.
40
+ */
41
+ export declare function mountAphexBuiltins(app: Hono<AphexEnv>): void;
42
+ export type ApiRoutes = ReturnType<typeof createAphexApi>;
43
+ /**
44
+ * Adapter: wrap a SvelteKit-style `RequestHandler` so it can be mounted
45
+ * onto a Hono router.
46
+ *
47
+ * Used for handlers that already exist in SK form (e.g. the built-in
48
+ * GraphQL Yoga app) and don't need to be rewritten just to flow through
49
+ * the Hono catch-all. We synthesize the minimum `event` shape those
50
+ * handlers actually read: `request` + `locals.{aphexCMS,auth}` + `params`
51
+ * + `url`. If a future SK handler reaches for `cookies`, `setHeaders`, or
52
+ * `getClientAddress`, extend the synthesized event accordingly.
53
+ */
54
+ export declare function toHonoHandler(skHandler: (event: any) => Promise<Response> | Response): (c: import("hono").Context<AphexEnv>) => Promise<Response>;
55
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAoB7C;;;;;;;;;;GAUG;AACH,MAAM,MAAM,QAAQ,GAAG;IACtB,SAAS,EAAE;QACV,QAAQ,EAAE,YAAY,CAAC;QACvB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;KAClB,CAAC;IACF,QAAQ,EAAE;QACT,QAAQ,EAAE,YAAY,CAAC;QACvB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;KAClB,CAAC;CACF,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,cAAc,kGAY7B;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,QAoCrD;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC5B,SAAS,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,IAEzC,GAAG,OAAO,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,uBAejD"}