@dyrected/core 2.5.53 → 2.5.55

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 (405) hide show
  1. package/package.json +1 -1
  2. package/dist/__tests__/admin-auth.test.d.ts +0 -2
  3. package/dist/__tests__/admin-auth.test.d.ts.map +0 -1
  4. package/dist/__tests__/admin-auth.test.js +0 -440
  5. package/dist/__tests__/admin-auth.test.js.map +0 -1
  6. package/dist/__tests__/app.test.d.ts +0 -2
  7. package/dist/__tests__/app.test.d.ts.map +0 -1
  8. package/dist/__tests__/app.test.js +0 -27
  9. package/dist/__tests__/app.test.js.map +0 -1
  10. package/dist/__tests__/config.test.d.ts +0 -2
  11. package/dist/__tests__/config.test.d.ts.map +0 -1
  12. package/dist/__tests__/config.test.js +0 -91
  13. package/dist/__tests__/config.test.js.map +0 -1
  14. package/dist/__tests__/deleteMany.test.d.ts +0 -2
  15. package/dist/__tests__/deleteMany.test.d.ts.map +0 -1
  16. package/dist/__tests__/deleteMany.test.js +0 -75
  17. package/dist/__tests__/deleteMany.test.js.map +0 -1
  18. package/dist/__tests__/depth.test.d.ts +0 -2
  19. package/dist/__tests__/depth.test.d.ts.map +0 -1
  20. package/dist/__tests__/depth.test.js +0 -81
  21. package/dist/__tests__/depth.test.js.map +0 -1
  22. package/dist/__tests__/dynamic-options.test.d.ts +0 -2
  23. package/dist/__tests__/dynamic-options.test.d.ts.map +0 -1
  24. package/dist/__tests__/dynamic-options.test.js +0 -132
  25. package/dist/__tests__/dynamic-options.test.js.map +0 -1
  26. package/dist/__tests__/email.service.test.d.ts +0 -2
  27. package/dist/__tests__/email.service.test.d.ts.map +0 -1
  28. package/dist/__tests__/email.service.test.js +0 -46
  29. package/dist/__tests__/email.service.test.js.map +0 -1
  30. package/dist/__tests__/field-inference.test-types.d.ts +0 -24
  31. package/dist/__tests__/field-inference.test-types.d.ts.map +0 -1
  32. package/dist/__tests__/field-inference.test-types.js +0 -87
  33. package/dist/__tests__/field-inference.test-types.js.map +0 -1
  34. package/dist/__tests__/fixtures/editorial-workflow.d.ts +0 -9
  35. package/dist/__tests__/fixtures/editorial-workflow.d.ts.map +0 -1
  36. package/dist/__tests__/fixtures/editorial-workflow.js +0 -12
  37. package/dist/__tests__/fixtures/editorial-workflow.js.map +0 -1
  38. package/dist/__tests__/hooks.test.d.ts +0 -2
  39. package/dist/__tests__/hooks.test.d.ts.map +0 -1
  40. package/dist/__tests__/hooks.test.js +0 -320
  41. package/dist/__tests__/hooks.test.js.map +0 -1
  42. package/dist/__tests__/mocks.d.ts +0 -74
  43. package/dist/__tests__/mocks.d.ts.map +0 -1
  44. package/dist/__tests__/mocks.js +0 -159
  45. package/dist/__tests__/mocks.js.map +0 -1
  46. package/dist/__tests__/openapi.test.d.ts +0 -2
  47. package/dist/__tests__/openapi.test.d.ts.map +0 -1
  48. package/dist/__tests__/openapi.test.js +0 -95
  49. package/dist/__tests__/openapi.test.js.map +0 -1
  50. package/dist/__tests__/parse-sort.test.d.ts +0 -2
  51. package/dist/__tests__/parse-sort.test.d.ts.map +0 -1
  52. package/dist/__tests__/parse-sort.test.js +0 -24
  53. package/dist/__tests__/parse-sort.test.js.map +0 -1
  54. package/dist/__tests__/preferences.test.d.ts +0 -2
  55. package/dist/__tests__/preferences.test.d.ts.map +0 -1
  56. package/dist/__tests__/preferences.test.js +0 -168
  57. package/dist/__tests__/preferences.test.js.map +0 -1
  58. package/dist/__tests__/router.test.d.ts +0 -2
  59. package/dist/__tests__/router.test.d.ts.map +0 -1
  60. package/dist/__tests__/router.test.js +0 -52
  61. package/dist/__tests__/router.test.js.map +0 -1
  62. package/dist/__tests__/where.test.d.ts +0 -2
  63. package/dist/__tests__/where.test.d.ts.map +0 -1
  64. package/dist/__tests__/where.test.js +0 -105
  65. package/dist/__tests__/where.test.js.map +0 -1
  66. package/dist/__tests__/workflow.test.d.ts +0 -2
  67. package/dist/__tests__/workflow.test.d.ts.map +0 -1
  68. package/dist/__tests__/workflow.test.js +0 -497
  69. package/dist/__tests__/workflow.test.js.map +0 -1
  70. package/dist/app-B2tg7Djj.d.cts +0 -1575
  71. package/dist/app-B2tg7Djj.d.ts +0 -1575
  72. package/dist/app-BElen1tP.d.cts +0 -1690
  73. package/dist/app-BElen1tP.d.ts +0 -1690
  74. package/dist/app-BOrsS7Tz.d.cts +0 -1771
  75. package/dist/app-BOrsS7Tz.d.ts +0 -1771
  76. package/dist/app-Bh4_Opv0.d.cts +0 -1522
  77. package/dist/app-Bh4_Opv0.d.ts +0 -1522
  78. package/dist/app-BibuoHQG.d.cts +0 -1764
  79. package/dist/app-BibuoHQG.d.ts +0 -1764
  80. package/dist/app-Bv9gaDAN.d.cts +0 -561
  81. package/dist/app-Bv9gaDAN.d.ts +0 -561
  82. package/dist/app-BvG3bRc8.d.cts +0 -419
  83. package/dist/app-BvG3bRc8.d.ts +0 -419
  84. package/dist/app-C-HgyliB.d.cts +0 -1694
  85. package/dist/app-C-HgyliB.d.ts +0 -1694
  86. package/dist/app-C3B9N1KR.d.cts +0 -1522
  87. package/dist/app-C3B9N1KR.d.ts +0 -1522
  88. package/dist/app-Cc2mG3zi.d.cts +0 -373
  89. package/dist/app-Cc2mG3zi.d.ts +0 -373
  90. package/dist/app-Ctfmo2Re.d.cts +0 -1692
  91. package/dist/app-Ctfmo2Re.d.ts +0 -1692
  92. package/dist/app-D0ffogDd.d.cts +0 -1690
  93. package/dist/app-D0ffogDd.d.ts +0 -1690
  94. package/dist/app-D2uR47gK.d.cts +0 -1690
  95. package/dist/app-D2uR47gK.d.ts +0 -1690
  96. package/dist/app-DDJJa0ep.d.cts +0 -1621
  97. package/dist/app-DDJJa0ep.d.ts +0 -1621
  98. package/dist/app-DO1s9YW1.d.cts +0 -1621
  99. package/dist/app-DO1s9YW1.d.ts +0 -1621
  100. package/dist/app-DTP3-9PJ.d.cts +0 -561
  101. package/dist/app-DTP3-9PJ.d.ts +0 -561
  102. package/dist/app-DZt5nslu.d.cts +0 -374
  103. package/dist/app-DZt5nslu.d.ts +0 -377
  104. package/dist/app-DbKDGYTI.d.cts +0 -566
  105. package/dist/app-DbKDGYTI.d.ts +0 -566
  106. package/dist/app-Dk3SzV1a.d.cts +0 -374
  107. package/dist/app-Dk3SzV1a.d.ts +0 -374
  108. package/dist/app-DnX9mNsh.d.cts +0 -374
  109. package/dist/app-DnX9mNsh.d.ts +0 -374
  110. package/dist/app-DqRO-CMi.d.cts +0 -1457
  111. package/dist/app-DqRO-CMi.d.ts +0 -1457
  112. package/dist/app-DvaFpOtj.d.cts +0 -398
  113. package/dist/app-DvaFpOtj.d.ts +0 -398
  114. package/dist/app-FGzip4XM.d.cts +0 -1563
  115. package/dist/app-FGzip4XM.d.ts +0 -1563
  116. package/dist/app-KApbf4XL.d.cts +0 -362
  117. package/dist/app-KApbf4XL.d.ts +0 -362
  118. package/dist/app-T0alZAE0.d.cts +0 -383
  119. package/dist/app-T0alZAE0.d.ts +0 -383
  120. package/dist/app-aW2FMuYM.d.cts +0 -1759
  121. package/dist/app-aW2FMuYM.d.ts +0 -1759
  122. package/dist/app-config-2vF6W56z.d.cts +0 -1335
  123. package/dist/app-config-2vF6W56z.d.ts +0 -1335
  124. package/dist/app-config-3XBnu9Xz.d.cts +0 -1379
  125. package/dist/app-config-3XBnu9Xz.d.ts +0 -1379
  126. package/dist/app-config-BLMX-9MN.d.cts +0 -1045
  127. package/dist/app-config-BLMX-9MN.d.ts +0 -1045
  128. package/dist/app-config-CaEQH0Kb.d.cts +0 -1383
  129. package/dist/app-config-CaEQH0Kb.d.ts +0 -1383
  130. package/dist/app-config-DLK6bCaP.d.cts +0 -1390
  131. package/dist/app-config-DLK6bCaP.d.ts +0 -1390
  132. package/dist/app-config-oOarB6Fw.d.cts +0 -1411
  133. package/dist/app-config-oOarB6Fw.d.ts +0 -1411
  134. package/dist/app-oQt5-9MU.d.cts +0 -1560
  135. package/dist/app-oQt5-9MU.d.ts +0 -1560
  136. package/dist/app-rZj1VFer.d.cts +0 -1621
  137. package/dist/app-rZj1VFer.d.ts +0 -1621
  138. package/dist/app-wo82JRHl.d.cts +0 -445
  139. package/dist/app-wo82JRHl.d.ts +0 -445
  140. package/dist/app.d.ts +0 -21
  141. package/dist/app.d.ts.map +0 -1
  142. package/dist/app.js +0 -56
  143. package/dist/app.js.map +0 -1
  144. package/dist/auth/jexl.d.ts +0 -10
  145. package/dist/auth/jexl.d.ts.map +0 -1
  146. package/dist/auth/jexl.js +0 -22
  147. package/dist/auth/jexl.js.map +0 -1
  148. package/dist/auth/password.d.ts +0 -10
  149. package/dist/auth/password.d.ts.map +0 -1
  150. package/dist/auth/password.js +0 -28
  151. package/dist/auth/password.js.map +0 -1
  152. package/dist/auth/token.d.ts +0 -22
  153. package/dist/auth/token.d.ts.map +0 -1
  154. package/dist/auth/token.js +0 -40
  155. package/dist/auth/token.js.map +0 -1
  156. package/dist/chunk-22JTWD74.js +0 -1784
  157. package/dist/chunk-23URSKPI.js +0 -2371
  158. package/dist/chunk-2JMA3M5S.js +0 -2475
  159. package/dist/chunk-3FZEUK36.js +0 -2470
  160. package/dist/chunk-3VUH2MNW.js +0 -1903
  161. package/dist/chunk-44O2LDPT.js +0 -1513
  162. package/dist/chunk-45JDQDA2.js +0 -1899
  163. package/dist/chunk-4C4L6SD2.js +0 -1524
  164. package/dist/chunk-4EDMZAM5.js +0 -2692
  165. package/dist/chunk-52T4RCFU.js +0 -1972
  166. package/dist/chunk-6ZXEGKT6.js +0 -619
  167. package/dist/chunk-7GGHK75W.js +0 -1835
  168. package/dist/chunk-ALNQINX7.js +0 -2496
  169. package/dist/chunk-B6KDKYXB.js +0 -2502
  170. package/dist/chunk-BEONZV6M.js +0 -1951
  171. package/dist/chunk-C4GEQ5RP.js +0 -1993
  172. package/dist/chunk-CQDVPMEU.js +0 -613
  173. package/dist/chunk-DOJHZ7XN.js +0 -2394
  174. package/dist/chunk-EH7G3LLL.js +0 -2065
  175. package/dist/chunk-EXXOPW3I.js +0 -2483
  176. package/dist/chunk-F4ZC6TXR.js +0 -2065
  177. package/dist/chunk-FCXE5CVC.js +0 -1528
  178. package/dist/chunk-FDQYPPG3.js +0 -2698
  179. package/dist/chunk-FURYJ254.mjs +0 -33
  180. package/dist/chunk-G2QQLBHW.js +0 -24
  181. package/dist/chunk-GM4WW6IE.js +0 -66
  182. package/dist/chunk-GZODLJ3C.js +0 -1861
  183. package/dist/chunk-IIY3E7Q7.js +0 -1996
  184. package/dist/chunk-JJN4J5NS.js +0 -2069
  185. package/dist/chunk-MRUHCNDM.js +0 -1940
  186. package/dist/chunk-NKDX67AW.js +0 -2698
  187. package/dist/chunk-NYUB4AHZ.js +0 -1951
  188. package/dist/chunk-OD4SLW7H.js +0 -1930
  189. package/dist/chunk-OE5MH3NB.js +0 -2070
  190. package/dist/chunk-PH36WQYS.js +0 -1875
  191. package/dist/chunk-PKNFV7KE.js +0 -2469
  192. package/dist/chunk-SUGK7UYL.js +0 -311
  193. package/dist/chunk-TIJHR54M.js +0 -1879
  194. package/dist/chunk-TUUHGLB5.js +0 -2609
  195. package/dist/chunk-UBTRANFX.js +0 -2476
  196. package/dist/chunk-VJWUG2XK.js +0 -1951
  197. package/dist/chunk-W6KURRMW.js +0 -2471
  198. package/dist/chunk-Y4AYI52W.js +0 -631
  199. package/dist/chunk-YDOBB7MY.js +0 -1457
  200. package/dist/chunk-YNJ3YC4N.js +0 -2483
  201. package/dist/chunk-ZFAOBRHT.js +0 -2709
  202. package/dist/controllers/admin-auth.controller.d.ts +0 -68
  203. package/dist/controllers/admin-auth.controller.d.ts.map +0 -1
  204. package/dist/controllers/admin-auth.controller.js +0 -414
  205. package/dist/controllers/admin-auth.controller.js.map +0 -1
  206. package/dist/controllers/auth.controller.d.ts +0 -125
  207. package/dist/controllers/auth.controller.d.ts.map +0 -1
  208. package/dist/controllers/auth.controller.js +0 -323
  209. package/dist/controllers/auth.controller.js.map +0 -1
  210. package/dist/controllers/collection.controller.d.ts +0 -157
  211. package/dist/controllers/collection.controller.d.ts.map +0 -1
  212. package/dist/controllers/collection.controller.js +0 -779
  213. package/dist/controllers/collection.controller.js.map +0 -1
  214. package/dist/controllers/global.controller.d.ts +0 -17
  215. package/dist/controllers/global.controller.d.ts.map +0 -1
  216. package/dist/controllers/global.controller.js +0 -132
  217. package/dist/controllers/global.controller.js.map +0 -1
  218. package/dist/controllers/media.controller.d.ts +0 -38
  219. package/dist/controllers/media.controller.d.ts.map +0 -1
  220. package/dist/controllers/media.controller.js +0 -162
  221. package/dist/controllers/media.controller.js.map +0 -1
  222. package/dist/controllers/preview.controller.d.ts +0 -37
  223. package/dist/controllers/preview.controller.d.ts.map +0 -1
  224. package/dist/controllers/preview.controller.js +0 -48
  225. package/dist/controllers/preview.controller.js.map +0 -1
  226. package/dist/index-BKYugiYp.d.cts +0 -1988
  227. package/dist/index-BKYugiYp.d.ts +0 -1988
  228. package/dist/index-BSWCiAen.d.cts +0 -1983
  229. package/dist/index-BSWCiAen.d.ts +0 -1983
  230. package/dist/index-BfLDb3b0.d.cts +0 -1467
  231. package/dist/index-BfLDb3b0.d.ts +0 -1467
  232. package/dist/index-Bi4sX_eC.d.cts +0 -1491
  233. package/dist/index-Bi4sX_eC.d.ts +0 -1491
  234. package/dist/index-Bp7PDOYG.d.cts +0 -1750
  235. package/dist/index-Bp7PDOYG.d.ts +0 -1750
  236. package/dist/index-ByXooLy-.d.cts +0 -1762
  237. package/dist/index-ByXooLy-.d.ts +0 -1762
  238. package/dist/index-C9Vp1DCT.d.cts +0 -1563
  239. package/dist/index-C9Vp1DCT.d.ts +0 -1563
  240. package/dist/index-CFezd8p1.d.cts +0 -1986
  241. package/dist/index-CFezd8p1.d.ts +0 -1986
  242. package/dist/index-CdQwnbfh.d.cts +0 -1889
  243. package/dist/index-CdQwnbfh.d.ts +0 -1889
  244. package/dist/index-D38_E0gf.d.cts +0 -336
  245. package/dist/index-D38_E0gf.d.ts +0 -336
  246. package/dist/index-DR2z1rrf.d.cts +0 -1503
  247. package/dist/index-DR2z1rrf.d.ts +0 -1503
  248. package/dist/index-DTrpTru7.d.cts +0 -1881
  249. package/dist/index-DTrpTru7.d.ts +0 -1881
  250. package/dist/index-DfAmTZXk.d.cts +0 -1749
  251. package/dist/index-DfAmTZXk.d.ts +0 -1749
  252. package/dist/index-DfkPT4NR.d.cts +0 -1584
  253. package/dist/index-DfkPT4NR.d.ts +0 -1584
  254. package/dist/index-DzUlE5Hc.d.cts +0 -1751
  255. package/dist/index-DzUlE5Hc.d.ts +0 -1751
  256. package/dist/index-M_m6dXZV.d.cts +0 -1889
  257. package/dist/index-M_m6dXZV.d.ts +0 -1889
  258. package/dist/index-RylhgOwj.d.cts +0 -340
  259. package/dist/index-RylhgOwj.d.ts +0 -340
  260. package/dist/index-qhLus8ZO.d.cts +0 -1881
  261. package/dist/index-qhLus8ZO.d.ts +0 -1881
  262. package/dist/index-xB1lMg79.d.cts +0 -1456
  263. package/dist/index-xB1lMg79.d.ts +0 -1456
  264. package/dist/index.d.mts +0 -417
  265. package/dist/index.d.ts.map +0 -1
  266. package/dist/index.js.map +0 -1
  267. package/dist/index.mjs +0 -1974
  268. package/dist/middleware/auth.d.ts +0 -18
  269. package/dist/middleware/auth.d.ts.map +0 -1
  270. package/dist/middleware/auth.js +0 -45
  271. package/dist/middleware/auth.js.map +0 -1
  272. package/dist/password-ACI2YUGZ.js +0 -8
  273. package/dist/router.d.ts +0 -8
  274. package/dist/router.d.ts.map +0 -1
  275. package/dist/router.js +0 -625
  276. package/dist/router.js.map +0 -1
  277. package/dist/server.d.ts.map +0 -1
  278. package/dist/server.js.map +0 -1
  279. package/dist/services/audit.service.d.ts +0 -23
  280. package/dist/services/audit.service.d.ts.map +0 -1
  281. package/dist/services/audit.service.js +0 -28
  282. package/dist/services/audit.service.js.map +0 -1
  283. package/dist/services/defaults.service.d.ts +0 -8
  284. package/dist/services/defaults.service.d.ts.map +0 -1
  285. package/dist/services/defaults.service.js +0 -55
  286. package/dist/services/defaults.service.js.map +0 -1
  287. package/dist/services/email-template.d.ts +0 -46
  288. package/dist/services/email-template.d.ts.map +0 -1
  289. package/dist/services/email-template.js +0 -88
  290. package/dist/services/email-template.js.map +0 -1
  291. package/dist/services/email.service.d.ts +0 -33
  292. package/dist/services/email.service.d.ts.map +0 -1
  293. package/dist/services/email.service.js +0 -96
  294. package/dist/services/email.service.js.map +0 -1
  295. package/dist/services/media.service.d.ts +0 -20
  296. package/dist/services/media.service.d.ts.map +0 -1
  297. package/dist/services/media.service.js +0 -49
  298. package/dist/services/media.service.js.map +0 -1
  299. package/dist/services/population.service.d.ts +0 -20
  300. package/dist/services/population.service.d.ts.map +0 -1
  301. package/dist/services/population.service.js +0 -194
  302. package/dist/services/population.service.js.map +0 -1
  303. package/dist/token-7QG5DBME.mjs +0 -10
  304. package/dist/types/access.d.ts +0 -38
  305. package/dist/types/access.d.ts.map +0 -1
  306. package/dist/types/access.js +0 -2
  307. package/dist/types/access.js.map +0 -1
  308. package/dist/types/adapters.d.ts +0 -146
  309. package/dist/types/adapters.d.ts.map +0 -1
  310. package/dist/types/adapters.js +0 -2
  311. package/dist/types/adapters.js.map +0 -1
  312. package/dist/types/admin-auth.d.ts +0 -132
  313. package/dist/types/admin-auth.d.ts.map +0 -1
  314. package/dist/types/admin-auth.js +0 -2
  315. package/dist/types/admin-auth.js.map +0 -1
  316. package/dist/types/admin.d.ts +0 -65
  317. package/dist/types/admin.d.ts.map +0 -1
  318. package/dist/types/admin.js +0 -2
  319. package/dist/types/admin.js.map +0 -1
  320. package/dist/types/app-config.d.ts +0 -143
  321. package/dist/types/app-config.d.ts.map +0 -1
  322. package/dist/types/app-config.js +0 -2
  323. package/dist/types/app-config.js.map +0 -1
  324. package/dist/types/documents.d.ts +0 -65
  325. package/dist/types/documents.d.ts.map +0 -1
  326. package/dist/types/documents.js +0 -2
  327. package/dist/types/documents.js.map +0 -1
  328. package/dist/types/hooks.d.ts +0 -122
  329. package/dist/types/hooks.d.ts.map +0 -1
  330. package/dist/types/hooks.js +0 -2
  331. package/dist/types/hooks.js.map +0 -1
  332. package/dist/types/index.d.ts +0 -13
  333. package/dist/types/index.d.ts.map +0 -1
  334. package/dist/types/index.js +0 -13
  335. package/dist/types/index.js.map +0 -1
  336. package/dist/types/request.d.ts +0 -42
  337. package/dist/types/request.d.ts.map +0 -1
  338. package/dist/types/request.js +0 -2
  339. package/dist/types/request.js.map +0 -1
  340. package/dist/types/schema-config.d.ts +0 -303
  341. package/dist/types/schema-config.d.ts.map +0 -1
  342. package/dist/types/schema-config.js +0 -2
  343. package/dist/types/schema-config.js.map +0 -1
  344. package/dist/types/schema-core.d.ts +0 -294
  345. package/dist/types/schema-core.d.ts.map +0 -1
  346. package/dist/types/schema-core.js +0 -2
  347. package/dist/types/schema-core.js.map +0 -1
  348. package/dist/types/schema-inference.d.ts +0 -73
  349. package/dist/types/schema-inference.d.ts.map +0 -1
  350. package/dist/types/schema-inference.js +0 -2
  351. package/dist/types/schema-inference.js.map +0 -1
  352. package/dist/types/workflows.d.ts +0 -84
  353. package/dist/types/workflows.d.ts.map +0 -1
  354. package/dist/types/workflows.js +0 -7
  355. package/dist/types/workflows.js.map +0 -1
  356. package/dist/utils/admin-auth.d.ts +0 -5
  357. package/dist/utils/admin-auth.d.ts.map +0 -1
  358. package/dist/utils/admin-auth.js +0 -39
  359. package/dist/utils/admin-auth.js.map +0 -1
  360. package/dist/utils/config.d.ts +0 -8
  361. package/dist/utils/config.d.ts.map +0 -1
  362. package/dist/utils/config.js +0 -238
  363. package/dist/utils/config.js.map +0 -1
  364. package/dist/utils/hooks.d.ts +0 -41
  365. package/dist/utils/hooks.d.ts.map +0 -1
  366. package/dist/utils/hooks.js +0 -173
  367. package/dist/utils/hooks.js.map +0 -1
  368. package/dist/utils/openapi.d.ts +0 -6
  369. package/dist/utils/openapi.d.ts.map +0 -1
  370. package/dist/utils/openapi.js +0 -842
  371. package/dist/utils/openapi.js.map +0 -1
  372. package/dist/utils/parse-sort.d.ts +0 -7
  373. package/dist/utils/parse-sort.d.ts.map +0 -1
  374. package/dist/utils/parse-sort.js +0 -23
  375. package/dist/utils/parse-sort.js.map +0 -1
  376. package/dist/utils/parse-where.d.ts +0 -63
  377. package/dist/utils/parse-where.d.ts.map +0 -1
  378. package/dist/utils/parse-where.js +0 -196
  379. package/dist/utils/parse-where.js.map +0 -1
  380. package/dist/utils/readonly-db.d.ts +0 -9
  381. package/dist/utils/readonly-db.d.ts.map +0 -1
  382. package/dist/utils/readonly-db.js +0 -21
  383. package/dist/utils/readonly-db.js.map +0 -1
  384. package/dist/utils/setup-prompt.d.ts +0 -11
  385. package/dist/utils/setup-prompt.d.ts.map +0 -1
  386. package/dist/utils/setup-prompt.js +0 -863
  387. package/dist/utils/setup-prompt.js.map +0 -1
  388. package/dist/utils/swagger.d.ts +0 -11
  389. package/dist/utils/swagger.d.ts.map +0 -1
  390. package/dist/utils/swagger.js +0 -62
  391. package/dist/utils/swagger.js.map +0 -1
  392. package/dist/utils/upload-validation.d.ts +0 -23
  393. package/dist/utils/upload-validation.d.ts.map +0 -1
  394. package/dist/utils/upload-validation.js +0 -44
  395. package/dist/utils/upload-validation.js.map +0 -1
  396. package/dist/utils/where-sanitizer.d.ts +0 -10
  397. package/dist/utils/where-sanitizer.d.ts.map +0 -1
  398. package/dist/utils/where-sanitizer.js +0 -67
  399. package/dist/utils/where-sanitizer.js.map +0 -1
  400. package/dist/where-sanitizer-7Q4JXMX6.js +0 -57
  401. package/dist/where-sanitizer-DQIWTQZW.js +0 -50
  402. package/dist/workflows.d.ts +0 -54
  403. package/dist/workflows.d.ts.map +0 -1
  404. package/dist/workflows.js +0 -282
  405. package/dist/workflows.js.map +0 -1
@@ -1,68 +0,0 @@
1
- import type { Context } from "hono";
2
- import type { DyrectedContext } from "../app.js";
3
- import type { AdminAuthProvider, DyrectedConfig } from "../types/index.js";
4
- export declare class AdminAuthController {
5
- private readonly config;
6
- constructor(config: DyrectedConfig);
7
- providers(c: Context<DyrectedContext>): Promise<Response & import("hono").TypedResponse<{
8
- mode: "local" | "external";
9
- collectionSlug?: string | undefined;
10
- provisioningMode?: import("../types/admin-auth.js").AdminAuthProvisioningMode | undefined;
11
- providers: {
12
- id: string;
13
- type: AdminAuthProvider["type"];
14
- displayName: string;
15
- autoRedirect?: boolean | undefined;
16
- }[];
17
- }, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
18
- start(c: Context<DyrectedContext>): Promise<(Response & import("hono").TypedResponse<{
19
- error: true;
20
- message: string;
21
- }, 404, "json">) | (Response & import("hono").TypedResponse<undefined, 302, "redirect">) | (Response & import("hono").TypedResponse<{
22
- error: true;
23
- message: string;
24
- }, 400, "json">) | (Response & import("hono").TypedResponse<{
25
- error: true;
26
- message: string;
27
- }, 500, "json">)>;
28
- callback(c: Context<DyrectedContext>): Promise<(Response & import("hono").TypedResponse<undefined, 302, "redirect">) | (Response & import("hono").TypedResponse<{
29
- error: true;
30
- message: string;
31
- }, 404, "json">)>;
32
- exchange(c: Context<DyrectedContext>): Promise<(Response & import("hono").TypedResponse<{
33
- error: true;
34
- message: string;
35
- }, 404, "json">) | (Response & import("hono").TypedResponse<{
36
- token: string;
37
- collectionSlug: string;
38
- providerId: string;
39
- }, import("hono/utils/http-status").ContentfulStatusCode, "json">) | (Response & import("hono").TypedResponse<{
40
- error: true;
41
- message: string;
42
- }, 403 | 401, "json">)>;
43
- logout(c: Context<DyrectedContext>): Promise<Response & import("hono").TypedResponse<{
44
- success: true;
45
- message: string;
46
- }, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
47
- private getProvider;
48
- private completeProviderAuth;
49
- private resolveAccess;
50
- private buildUserData;
51
- private findUserByExternalIdentity;
52
- private getSiteId;
53
- private getRequestConfig;
54
- private buildOidcStartUrl;
55
- private resolveOidcIdentity;
56
- private resolveCustomIdentity;
57
- private mapClaims;
58
- private readStringClaim;
59
- private readStringArrayClaim;
60
- private getOidcDiscovery;
61
- private defaultCallbackPath;
62
- private buildCustomProviderStartUrl;
63
- private signState;
64
- private verifyState;
65
- private getStateSecret;
66
- private normalizeReturnTo;
67
- }
68
- //# sourceMappingURL=admin-auth.controller.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"admin-auth.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/admin-auth.controller.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAQpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAGjD,OAAO,KAAK,EACV,iBAAiB,EAGjB,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAU3B,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,cAAc;IAE7C,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;;;;;;;;;;;IAKrC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;;;;;;;;;;IAwCjC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;;;;IAsBpC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;;;;;;;;;;;IAqBpC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;;;;IAIxC,OAAO,CAAC,WAAW;YAKL,oBAAoB;YAgFpB,aAAa;YA0Bb,aAAa;YAkBb,0BAA0B;IAiBxC,OAAO,CAAC,SAAS;YAIH,gBAAgB;YAgBhB,iBAAiB;YAwBjB,mBAAmB;YAuDnB,qBAAqB;IA4CnC,OAAO,CAAC,SAAS;IA6BjB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,oBAAoB;YASd,gBAAgB;IAc9B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,2BAA2B;YAarB,SAAS;YAQT,WAAW;IASzB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,iBAAiB;CAK1B"}
@@ -1,414 +0,0 @@
1
- import { randomBytes } from "node:crypto";
2
- import { TextEncoder } from "node:util";
3
- import { SignJWT, createRemoteJWKSet, jwtVerify, decodeJwt, } from "jose";
4
- import { signCollectionToken } from "../auth/token.js";
5
- import { hashPassword } from "../auth/password.js";
6
- import { getAdminAuthCollection, getPublicAdminAuthConfig } from "../utils/admin-auth.js";
7
- export class AdminAuthController {
8
- config;
9
- constructor(config) {
10
- this.config = config;
11
- }
12
- async providers(c) {
13
- const requestConfig = await this.getRequestConfig(c);
14
- return c.json(getPublicAdminAuthConfig(requestConfig.adminAuth, requestConfig.collections));
15
- }
16
- async start(c) {
17
- const requestConfig = await this.getRequestConfig(c);
18
- const provider = this.getProvider(requestConfig, c.req.param("provider"));
19
- if (!provider) {
20
- return c.json({ error: true, message: "Admin auth provider not found." }, 404);
21
- }
22
- const siteId = this.getSiteId(c);
23
- const returnTo = this.normalizeReturnTo(c.req.query("returnTo"), c);
24
- if (provider.type === "oidc") {
25
- const redirectUrl = await this.buildOidcStartUrl(provider, returnTo, siteId, new URL(c.req.url).origin);
26
- return c.redirect(redirectUrl, 302);
27
- }
28
- if (!provider.startUrl) {
29
- return c.json({ error: true, message: "This provider does not expose a start URL." }, 400);
30
- }
31
- const url = this.buildCustomProviderStartUrl(provider.startUrl, new URL(c.req.url).origin);
32
- if (!url) {
33
- return c.json({
34
- error: true,
35
- message: `Admin auth provider "${provider.id}" has an invalid start URL.`,
36
- }, 500);
37
- }
38
- url.searchParams.set("returnTo", returnTo);
39
- if (siteId)
40
- url.searchParams.set("siteId", siteId);
41
- url.searchParams.set("provider", provider.id);
42
- return c.redirect(url.toString(), 302);
43
- }
44
- async callback(c) {
45
- const requestConfig = await this.getRequestConfig(c);
46
- const provider = this.getProvider(requestConfig, c.req.param("provider"));
47
- if (!provider) {
48
- return c.json({ error: true, message: "Admin auth provider not found." }, 404);
49
- }
50
- try {
51
- const exchange = await this.completeProviderAuth(requestConfig, provider, c);
52
- const redirectUrl = new URL(exchange.returnTo);
53
- redirectUrl.searchParams.set("dyrectedExternalToken", exchange.token);
54
- redirectUrl.searchParams.set("dyrectedAdminCollection", exchange.collectionSlug);
55
- return c.redirect(redirectUrl.toString(), 302);
56
- }
57
- catch (error) {
58
- const message = error instanceof Error ? error.message : "External authentication failed.";
59
- const fallback = this.normalizeReturnTo(c.req.query("returnTo"), c);
60
- const redirectUrl = new URL(fallback);
61
- redirectUrl.searchParams.set("dyrectedExternalError", message);
62
- return c.redirect(redirectUrl.toString(), 302);
63
- }
64
- }
65
- async exchange(c) {
66
- const requestConfig = await this.getRequestConfig(c);
67
- const provider = this.getProvider(requestConfig, c.req.param("provider"));
68
- if (!provider) {
69
- return c.json({ error: true, message: "Admin auth provider not found." }, 404);
70
- }
71
- try {
72
- const exchange = await this.completeProviderAuth(requestConfig, provider, c);
73
- return c.json({
74
- token: exchange.token,
75
- collectionSlug: exchange.collectionSlug,
76
- providerId: provider.id,
77
- });
78
- }
79
- catch (error) {
80
- const message = error instanceof Error ? error.message : "External authentication failed.";
81
- const status = message === "Access denied for this site." ? 403 : 401;
82
- return c.json({ error: true, message }, status);
83
- }
84
- }
85
- async logout(c) {
86
- return c.json({ success: true, message: "Logged out. Discard your token." });
87
- }
88
- getProvider(config, id) {
89
- if (config.adminAuth?.mode !== "external")
90
- return undefined;
91
- return config.adminAuth.providers.find((provider) => provider.id === id);
92
- }
93
- async completeProviderAuth(requestConfig, provider, c) {
94
- const resolved = provider.type === "oidc"
95
- ? await this.resolveOidcIdentity(provider, c)
96
- : await this.resolveCustomIdentity(provider, c);
97
- const identity = resolved.identity;
98
- const siteId = this.getSiteId(c);
99
- const adminCollection = getAdminAuthCollection(requestConfig);
100
- if (!adminCollection?.auth) {
101
- throw new Error("Admin auth collection is not configured.");
102
- }
103
- const db = c.get("config").db;
104
- if (!db)
105
- throw new Error("Database not configured.");
106
- let user = (await this.findUserByExternalIdentity(db, adminCollection.slug, provider.id, identity.sub)) ??
107
- (identity.email
108
- ? (await db.find({
109
- collection: adminCollection.slug,
110
- where: { email: identity.email },
111
- limit: 1,
112
- })).docs[0]
113
- : null);
114
- const provisioningMode = requestConfig.adminAuth?.provisioningMode ?? "jit_plus_membership_management";
115
- const allowJitProvisioning = provisioningMode !== "preprovisioned_only" && provider.allowJitProvisioning !== false;
116
- if (!user && !allowJitProvisioning) {
117
- throw new Error("This account has not been provisioned for admin access.");
118
- }
119
- const access = await this.resolveAccess(requestConfig, identity, provider.id, siteId, c, user);
120
- if (!access.allowed) {
121
- throw new Error("Access denied for this site.");
122
- }
123
- if (!user && allowJitProvisioning) {
124
- user = await db.create({
125
- collection: adminCollection.slug,
126
- data: {
127
- ...(await this.buildUserData(identity, provider.id, access.roles, access.data)),
128
- password: await hashPassword(randomBytes(32).toString("hex")),
129
- },
130
- });
131
- }
132
- else if (user) {
133
- user = await db.update({
134
- collection: adminCollection.slug,
135
- id: user.id,
136
- data: await this.buildUserData(identity, provider.id, access.roles, access.data),
137
- });
138
- }
139
- if (!user?.email) {
140
- throw new Error("Authenticated admin user is missing an email address.");
141
- }
142
- const token = await signCollectionToken({
143
- sub: user.id,
144
- email: user.email,
145
- collection: adminCollection.slug,
146
- providerId: provider.id,
147
- authSource: "external",
148
- });
149
- return {
150
- token,
151
- collectionSlug: adminCollection.slug,
152
- returnTo: resolved.returnTo,
153
- };
154
- }
155
- async resolveAccess(requestConfig, identity, providerId, siteId, c, user) {
156
- const resolved = await requestConfig.adminAuth?.resolveAccess?.({
157
- identity,
158
- providerId,
159
- siteId,
160
- workspaceId: c.get("workspaceId"),
161
- req: {
162
- method: c.req.method,
163
- path: c.req.path,
164
- url: c.req.url,
165
- headers: Object.fromEntries(c.req.raw.headers.entries()),
166
- },
167
- user,
168
- });
169
- if (resolved)
170
- return resolved;
171
- return { allowed: true, roles: identity.roles, data: {} };
172
- }
173
- async buildUserData(identity, providerId, roles, extraData) {
174
- return {
175
- ...(identity.email ? { email: identity.email } : {}),
176
- ...(identity.name ? { name: identity.name } : {}),
177
- ...(roles ? { roles } : {}),
178
- ...(extraData ?? {}),
179
- authProvider: providerId,
180
- externalSubject: identity.sub,
181
- authSource: "external",
182
- lastLoginAt: new Date().toISOString(),
183
- };
184
- }
185
- async findUserByExternalIdentity(db, collection, providerId, externalSubject) {
186
- const result = await db.find({
187
- collection,
188
- where: {
189
- authProvider: providerId,
190
- externalSubject,
191
- },
192
- limit: 1,
193
- });
194
- return result.docs[0] ?? null;
195
- }
196
- getSiteId(c) {
197
- return c.req.header("X-Site-Id") || c.get("siteId");
198
- }
199
- async getRequestConfig(c) {
200
- const siteId = this.getSiteId(c);
201
- if (!siteId || !this.config.onSchemaFetch)
202
- return this.config;
203
- const dynamic = await this.config.onSchemaFetch(siteId);
204
- return {
205
- ...this.config,
206
- ...(dynamic.admin ? { admin: { ...this.config.admin, ...dynamic.admin } } : {}),
207
- ...(dynamic.adminAuth
208
- ? { adminAuth: { ...this.config.adminAuth, ...dynamic.adminAuth } }
209
- : {}),
210
- collections: dynamic.collections ? [...this.config.collections, ...dynamic.collections] : this.config.collections,
211
- globals: dynamic.globals ? [...this.config.globals, ...dynamic.globals] : this.config.globals,
212
- };
213
- }
214
- async buildOidcStartUrl(provider, returnTo, siteId, origin) {
215
- const discovery = await this.getOidcDiscovery(provider);
216
- const nonce = randomBytes(16).toString("hex");
217
- const state = await this.signState({
218
- providerId: provider.id,
219
- returnTo,
220
- siteId,
221
- nonce,
222
- });
223
- const url = new URL(provider.authorizationEndpoint || discovery.authorization_endpoint);
224
- url.searchParams.set("response_type", "code");
225
- url.searchParams.set("client_id", provider.clientId);
226
- url.searchParams.set("redirect_uri", provider.redirectUri || this.defaultCallbackPath(provider.id, origin));
227
- url.searchParams.set("scope", (provider.scopes ?? ["openid", "profile", "email"]).join(" "));
228
- url.searchParams.set("state", state);
229
- url.searchParams.set("nonce", nonce);
230
- return url.toString();
231
- }
232
- async resolveOidcIdentity(provider, c) {
233
- const code = c.req.query("code");
234
- const state = c.req.query("state");
235
- if (!code || !state)
236
- throw new Error("Missing OIDC callback parameters.");
237
- const parsedState = await this.verifyState(state, provider.id);
238
- const discovery = await this.getOidcDiscovery(provider);
239
- const redirectUri = provider.redirectUri || this.defaultCallbackPath(provider.id, new URL(c.req.url).origin);
240
- const tokenResponse = await fetch(provider.tokenEndpoint || discovery.token_endpoint, {
241
- method: "POST",
242
- headers: { "Content-Type": "application/x-www-form-urlencoded" },
243
- body: new URLSearchParams({
244
- grant_type: "authorization_code",
245
- code,
246
- redirect_uri: redirectUri,
247
- client_id: provider.clientId,
248
- client_secret: provider.clientSecret,
249
- }),
250
- });
251
- if (!tokenResponse.ok) {
252
- throw new Error("OIDC token exchange failed.");
253
- }
254
- const tokenBody = await tokenResponse.json();
255
- const idToken = tokenBody.id_token;
256
- let claims = {};
257
- if (idToken) {
258
- const jwks = createRemoteJWKSet(new URL(discovery.jwks_uri));
259
- const { payload } = await jwtVerify(idToken, jwks, {
260
- issuer: provider.issuer,
261
- audience: provider.clientId,
262
- });
263
- if (parsedState.nonce && payload.nonce !== parsedState.nonce) {
264
- throw new Error("OIDC nonce verification failed.");
265
- }
266
- claims = payload;
267
- }
268
- else if (tokenBody.access_token && (provider.userInfoEndpoint || discovery.userinfo_endpoint)) {
269
- const userInfo = await fetch(provider.userInfoEndpoint || discovery.userinfo_endpoint, {
270
- headers: { Authorization: `Bearer ${tokenBody.access_token}` },
271
- });
272
- if (!userInfo.ok)
273
- throw new Error("OIDC userinfo request failed.");
274
- claims = await userInfo.json();
275
- }
276
- else {
277
- throw new Error("OIDC provider did not return usable identity claims.");
278
- }
279
- return {
280
- identity: this.mapClaims(claims, provider.claimMapping),
281
- returnTo: parsedState.returnTo,
282
- };
283
- }
284
- async resolveCustomIdentity(provider, c) {
285
- const body = c.req.method === "POST" ? await c.req.json().catch(() => ({})) : {};
286
- const tokenParam = provider.tokenParam || "token";
287
- const token = body?.[tokenParam] || c.req.query(tokenParam);
288
- if (!token) {
289
- throw new Error(`Missing ${tokenParam} for external auth exchange.`);
290
- }
291
- let claims;
292
- if (provider.secret) {
293
- const secret = new TextEncoder().encode(provider.secret);
294
- const verified = await jwtVerify(token, secret, {
295
- issuer: provider.issuer,
296
- audience: provider.audience,
297
- });
298
- claims = verified.payload;
299
- }
300
- else if (provider.jwksUri) {
301
- const jwks = createRemoteJWKSet(new URL(provider.jwksUri));
302
- const verified = await jwtVerify(token, jwks, {
303
- issuer: provider.issuer,
304
- audience: provider.audience,
305
- });
306
- claims = verified.payload;
307
- }
308
- else {
309
- claims = decodeJwt(token);
310
- if (provider.issuer && claims.iss !== provider.issuer) {
311
- throw new Error("External auth issuer mismatch.");
312
- }
313
- if (provider.audience) {
314
- const aud = claims.aud;
315
- const matches = Array.isArray(aud) ? aud.includes(provider.audience) : aud === provider.audience;
316
- if (!matches)
317
- throw new Error("External auth audience mismatch.");
318
- }
319
- }
320
- return {
321
- identity: this.mapClaims(claims, provider.claimMapping),
322
- returnTo: this.normalizeReturnTo(body?.returnTo || c.req.query("returnTo"), c),
323
- };
324
- }
325
- mapClaims(claims, mapping) {
326
- const subKey = mapping?.sub || "sub";
327
- const emailKey = mapping?.email || "email";
328
- const nameKey = mapping?.name || "name";
329
- const rolesKey = mapping?.roles;
330
- const groupsKey = mapping?.groups;
331
- const siteIdsKey = mapping?.siteIds;
332
- const workspaceIdsKey = mapping?.workspaceIds;
333
- const sub = claims[subKey];
334
- if (typeof sub !== "string" || !sub) {
335
- throw new Error("External identity is missing a subject.");
336
- }
337
- return {
338
- sub,
339
- email: this.readStringClaim(claims[emailKey]),
340
- name: this.readStringClaim(claims[nameKey]),
341
- roles: this.readStringArrayClaim(rolesKey ? claims[rolesKey] : undefined),
342
- groups: this.readStringArrayClaim(groupsKey ? claims[groupsKey] : undefined),
343
- siteIds: this.readStringArrayClaim(siteIdsKey ? claims[siteIdsKey] : undefined),
344
- workspaceIds: this.readStringArrayClaim(workspaceIdsKey ? claims[workspaceIdsKey] : undefined),
345
- rawClaims: claims,
346
- };
347
- }
348
- readStringClaim(value) {
349
- return typeof value === "string" ? value : undefined;
350
- }
351
- readStringArrayClaim(value) {
352
- if (!value)
353
- return undefined;
354
- if (Array.isArray(value)) {
355
- return value.filter((entry) => typeof entry === "string");
356
- }
357
- if (typeof value === "string")
358
- return [value];
359
- return undefined;
360
- }
361
- async getOidcDiscovery(provider) {
362
- const discoveryUrl = new URL(provider.issuer.replace(/\/$/, "") + "/.well-known/openid-configuration");
363
- const response = await fetch(discoveryUrl.toString());
364
- if (!response.ok)
365
- throw new Error("Failed to load OIDC discovery document.");
366
- return response.json();
367
- }
368
- defaultCallbackPath(providerId, origin = "") {
369
- return `${origin}/api/admin/auth/${providerId}/callback`;
370
- }
371
- buildCustomProviderStartUrl(startUrl, origin) {
372
- const value = startUrl.trim();
373
- if (!value || /^(undefined|null)(\/|$)/i.test(value))
374
- return null;
375
- try {
376
- const url = new URL(value, origin);
377
- if (url.protocol !== "http:" && url.protocol !== "https:")
378
- return null;
379
- return url;
380
- }
381
- catch {
382
- return null;
383
- }
384
- }
385
- async signState(payload) {
386
- return new SignJWT(payload)
387
- .setProtectedHeader({ alg: "HS256" })
388
- .setIssuedAt()
389
- .setExpirationTime("15m")
390
- .sign(this.getStateSecret());
391
- }
392
- async verifyState(token, providerId) {
393
- const { payload } = await jwtVerify(token, this.getStateSecret());
394
- const state = payload;
395
- if (state.providerId !== providerId) {
396
- throw new Error("OIDC state verification failed.");
397
- }
398
- return state;
399
- }
400
- getStateSecret() {
401
- const secret = process.env.DYRECTED_JWT_SECRET || process.env.JWT_SECRET;
402
- if (!secret) {
403
- throw new Error("[dyrected/core] DYRECTED_JWT_SECRET is not set.");
404
- }
405
- return new TextEncoder().encode(secret);
406
- }
407
- normalizeReturnTo(returnTo, c) {
408
- if (returnTo)
409
- return returnTo;
410
- const url = new URL(c.req.url);
411
- return `${url.origin}/admin`;
412
- }
413
- }
414
- //# sourceMappingURL=admin-auth.controller.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"admin-auth.controller.js","sourceRoot":"","sources":["../../src/controllers/admin-auth.controller.ts"],"names":[],"mappings":"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"}
@@ -1,125 +0,0 @@
1
- import type { Context } from "hono";
2
- import type { DyrectedContext } from "../app.js";
3
- import type { CollectionConfig } from "../types/index.js";
4
- /**
5
- * Handles auth endpoints for collections with `auth: true`.
6
- *
7
- * Routes registered (relative to `/api/collections/:slug`):
8
- * POST /login
9
- * POST /logout (stateless — client drops the token)
10
- * GET /me
11
- * POST /refresh-token
12
- * POST /forgot-password
13
- * POST /reset-password
14
- * POST /invite
15
- * POST /accept-invite
16
- */
17
- export declare class AuthController {
18
- private collection;
19
- constructor(collection: CollectionConfig);
20
- init(c: Context<DyrectedContext>): Promise<(Response & import("hono").TypedResponse<{
21
- message: string;
22
- }, 500, "json">) | (Response & import("hono").TypedResponse<{
23
- initialized: boolean;
24
- }, import("hono/utils/http-status").ContentfulStatusCode, "json">)>;
25
- registerFirstUser(c: Context<DyrectedContext>): Promise<(Response & import("hono").TypedResponse<{
26
- message: string;
27
- }, 500, "json">) | (Response & import("hono").TypedResponse<{
28
- error: true;
29
- message: string;
30
- }, 403, "json">) | (Response & import("hono").TypedResponse<{
31
- error: true;
32
- message: string;
33
- }, 400, "json">) | (Response & import("hono").TypedResponse<{
34
- token: string;
35
- user: {
36
- [x: string]: any;
37
- id: string;
38
- };
39
- }, import("hono/utils/http-status").ContentfulStatusCode, "json">)>;
40
- login(c: Context<DyrectedContext>): Promise<(Response & import("hono").TypedResponse<{
41
- message: string;
42
- }, 500, "json">) | (Response & import("hono").TypedResponse<{
43
- error: true;
44
- message: string;
45
- }, 400, "json">) | (Response & import("hono").TypedResponse<{
46
- error: true;
47
- message: string;
48
- }, 401, "json">) | (Response & import("hono").TypedResponse<{
49
- token: string;
50
- user: {
51
- [x: string]: any;
52
- };
53
- }, import("hono/utils/http-status").ContentfulStatusCode, "json">)>;
54
- logout(c: Context<DyrectedContext>): Promise<Response & import("hono").TypedResponse<{
55
- success: true;
56
- message: string;
57
- }, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
58
- me(c: Context<DyrectedContext>): Promise<(Response & import("hono").TypedResponse<{
59
- message: string;
60
- }, 500, "json">) | (Response & import("hono").TypedResponse<{
61
- error: true;
62
- message: string;
63
- }, 401, "json">) | (Response & import("hono").TypedResponse<{
64
- error: true;
65
- message: string;
66
- }, 404, "json">) | (Response & import("hono").TypedResponse<{
67
- [x: string]: any;
68
- id: string;
69
- }, import("hono/utils/http-status").ContentfulStatusCode, "json">)>;
70
- refreshToken(c: Context<DyrectedContext>): Promise<(Response & import("hono").TypedResponse<{
71
- error: true;
72
- message: string;
73
- }, 401, "json">) | (Response & import("hono").TypedResponse<{
74
- token: string;
75
- }, import("hono/utils/http-status").ContentfulStatusCode, "json">)>;
76
- forgotPassword(c: Context<DyrectedContext>): Promise<(Response & import("hono").TypedResponse<{
77
- message: string;
78
- }, 500, "json">) | (Response & import("hono").TypedResponse<{
79
- error: true;
80
- message: string;
81
- }, 400, "json">) | (Response & import("hono").TypedResponse<{
82
- success: true;
83
- message: string;
84
- }, import("hono/utils/http-status").ContentfulStatusCode, "json">)>;
85
- resetPassword(c: Context<DyrectedContext>): Promise<(Response & import("hono").TypedResponse<{
86
- message: string;
87
- }, 500, "json">) | (Response & import("hono").TypedResponse<{
88
- error: true;
89
- message: string;
90
- }, 400, "json">) | (Response & import("hono").TypedResponse<{
91
- success: true;
92
- message: string;
93
- }, import("hono/utils/http-status").ContentfulStatusCode, "json">)>;
94
- invite(c: Context<DyrectedContext>): Promise<(Response & import("hono").TypedResponse<{
95
- message: string;
96
- }, 500, "json">) | (Response & import("hono").TypedResponse<{
97
- error: true;
98
- message: string;
99
- }, 401, "json">) | (Response & import("hono").TypedResponse<{
100
- error: true;
101
- message: string;
102
- }, 400, "json">) | (Response & import("hono").TypedResponse<{
103
- error: true;
104
- message: string;
105
- }, 409, "json">) | (Response & import("hono").TypedResponse<{
106
- success: true;
107
- message: string;
108
- }, import("hono/utils/http-status").ContentfulStatusCode, "json">)>;
109
- acceptInvite(c: Context<DyrectedContext>): Promise<(Response & import("hono").TypedResponse<{
110
- message: string;
111
- }, 500, "json">) | (Response & import("hono").TypedResponse<{
112
- error: true;
113
- message: string;
114
- }, 400, "json">) | (Response & import("hono").TypedResponse<{
115
- error: true;
116
- message: string;
117
- }, 409, "json">) | (Response & import("hono").TypedResponse<{
118
- token: string;
119
- user: {
120
- [x: string]: any;
121
- id: string;
122
- };
123
- }, 201, "json">)>;
124
- }
125
- //# sourceMappingURL=auth.controller.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/auth.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAW1D;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,UAAU,CAAmB;gBAEzB,UAAU,EAAE,gBAAgB;IAQlC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;;;;;IAkBhC,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;;;;;;;;;;;;;;;IAmD7C,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;;;;;;;;;;;;;;IA0CjC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;;;;IAOlC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;;;;;;;;;;;;IAqB9B,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;;;;;;IAoBxC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;;;;;;;;;IAgD1C,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;;;;;;;;;IA0CzC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;;;;;;;;;;;;;;;IAiDlC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;;;;;;;;;;;;;;;CAwD/C"}