@dyrected/core 2.5.53 → 2.5.56

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 (409) hide show
  1. package/dist/{app-config-oOarB6Fw.d.cts → app-config-Bxg_DVxv.d.cts} +3 -1
  2. package/dist/{app-config-oOarB6Fw.d.ts → app-config-Bxg_DVxv.d.ts} +3 -1
  3. package/dist/index.d.cts +2 -2
  4. package/dist/index.d.ts +2 -2
  5. package/dist/server.d.cts +1 -1
  6. package/dist/server.d.ts +1 -1
  7. package/package.json +1 -1
  8. package/dist/__tests__/admin-auth.test.d.ts +0 -2
  9. package/dist/__tests__/admin-auth.test.d.ts.map +0 -1
  10. package/dist/__tests__/admin-auth.test.js +0 -440
  11. package/dist/__tests__/admin-auth.test.js.map +0 -1
  12. package/dist/__tests__/app.test.d.ts +0 -2
  13. package/dist/__tests__/app.test.d.ts.map +0 -1
  14. package/dist/__tests__/app.test.js +0 -27
  15. package/dist/__tests__/app.test.js.map +0 -1
  16. package/dist/__tests__/config.test.d.ts +0 -2
  17. package/dist/__tests__/config.test.d.ts.map +0 -1
  18. package/dist/__tests__/config.test.js +0 -91
  19. package/dist/__tests__/config.test.js.map +0 -1
  20. package/dist/__tests__/deleteMany.test.d.ts +0 -2
  21. package/dist/__tests__/deleteMany.test.d.ts.map +0 -1
  22. package/dist/__tests__/deleteMany.test.js +0 -75
  23. package/dist/__tests__/deleteMany.test.js.map +0 -1
  24. package/dist/__tests__/depth.test.d.ts +0 -2
  25. package/dist/__tests__/depth.test.d.ts.map +0 -1
  26. package/dist/__tests__/depth.test.js +0 -81
  27. package/dist/__tests__/depth.test.js.map +0 -1
  28. package/dist/__tests__/dynamic-options.test.d.ts +0 -2
  29. package/dist/__tests__/dynamic-options.test.d.ts.map +0 -1
  30. package/dist/__tests__/dynamic-options.test.js +0 -132
  31. package/dist/__tests__/dynamic-options.test.js.map +0 -1
  32. package/dist/__tests__/email.service.test.d.ts +0 -2
  33. package/dist/__tests__/email.service.test.d.ts.map +0 -1
  34. package/dist/__tests__/email.service.test.js +0 -46
  35. package/dist/__tests__/email.service.test.js.map +0 -1
  36. package/dist/__tests__/field-inference.test-types.d.ts +0 -24
  37. package/dist/__tests__/field-inference.test-types.d.ts.map +0 -1
  38. package/dist/__tests__/field-inference.test-types.js +0 -87
  39. package/dist/__tests__/field-inference.test-types.js.map +0 -1
  40. package/dist/__tests__/fixtures/editorial-workflow.d.ts +0 -9
  41. package/dist/__tests__/fixtures/editorial-workflow.d.ts.map +0 -1
  42. package/dist/__tests__/fixtures/editorial-workflow.js +0 -12
  43. package/dist/__tests__/fixtures/editorial-workflow.js.map +0 -1
  44. package/dist/__tests__/hooks.test.d.ts +0 -2
  45. package/dist/__tests__/hooks.test.d.ts.map +0 -1
  46. package/dist/__tests__/hooks.test.js +0 -320
  47. package/dist/__tests__/hooks.test.js.map +0 -1
  48. package/dist/__tests__/mocks.d.ts +0 -74
  49. package/dist/__tests__/mocks.d.ts.map +0 -1
  50. package/dist/__tests__/mocks.js +0 -159
  51. package/dist/__tests__/mocks.js.map +0 -1
  52. package/dist/__tests__/openapi.test.d.ts +0 -2
  53. package/dist/__tests__/openapi.test.d.ts.map +0 -1
  54. package/dist/__tests__/openapi.test.js +0 -95
  55. package/dist/__tests__/openapi.test.js.map +0 -1
  56. package/dist/__tests__/parse-sort.test.d.ts +0 -2
  57. package/dist/__tests__/parse-sort.test.d.ts.map +0 -1
  58. package/dist/__tests__/parse-sort.test.js +0 -24
  59. package/dist/__tests__/parse-sort.test.js.map +0 -1
  60. package/dist/__tests__/preferences.test.d.ts +0 -2
  61. package/dist/__tests__/preferences.test.d.ts.map +0 -1
  62. package/dist/__tests__/preferences.test.js +0 -168
  63. package/dist/__tests__/preferences.test.js.map +0 -1
  64. package/dist/__tests__/router.test.d.ts +0 -2
  65. package/dist/__tests__/router.test.d.ts.map +0 -1
  66. package/dist/__tests__/router.test.js +0 -52
  67. package/dist/__tests__/router.test.js.map +0 -1
  68. package/dist/__tests__/where.test.d.ts +0 -2
  69. package/dist/__tests__/where.test.d.ts.map +0 -1
  70. package/dist/__tests__/where.test.js +0 -105
  71. package/dist/__tests__/where.test.js.map +0 -1
  72. package/dist/__tests__/workflow.test.d.ts +0 -2
  73. package/dist/__tests__/workflow.test.d.ts.map +0 -1
  74. package/dist/__tests__/workflow.test.js +0 -497
  75. package/dist/__tests__/workflow.test.js.map +0 -1
  76. package/dist/app-B2tg7Djj.d.cts +0 -1575
  77. package/dist/app-B2tg7Djj.d.ts +0 -1575
  78. package/dist/app-BElen1tP.d.cts +0 -1690
  79. package/dist/app-BElen1tP.d.ts +0 -1690
  80. package/dist/app-BOrsS7Tz.d.cts +0 -1771
  81. package/dist/app-BOrsS7Tz.d.ts +0 -1771
  82. package/dist/app-Bh4_Opv0.d.cts +0 -1522
  83. package/dist/app-Bh4_Opv0.d.ts +0 -1522
  84. package/dist/app-BibuoHQG.d.cts +0 -1764
  85. package/dist/app-BibuoHQG.d.ts +0 -1764
  86. package/dist/app-Bv9gaDAN.d.cts +0 -561
  87. package/dist/app-Bv9gaDAN.d.ts +0 -561
  88. package/dist/app-BvG3bRc8.d.cts +0 -419
  89. package/dist/app-BvG3bRc8.d.ts +0 -419
  90. package/dist/app-C-HgyliB.d.cts +0 -1694
  91. package/dist/app-C-HgyliB.d.ts +0 -1694
  92. package/dist/app-C3B9N1KR.d.cts +0 -1522
  93. package/dist/app-C3B9N1KR.d.ts +0 -1522
  94. package/dist/app-Cc2mG3zi.d.cts +0 -373
  95. package/dist/app-Cc2mG3zi.d.ts +0 -373
  96. package/dist/app-Ctfmo2Re.d.cts +0 -1692
  97. package/dist/app-Ctfmo2Re.d.ts +0 -1692
  98. package/dist/app-D0ffogDd.d.cts +0 -1690
  99. package/dist/app-D0ffogDd.d.ts +0 -1690
  100. package/dist/app-D2uR47gK.d.cts +0 -1690
  101. package/dist/app-D2uR47gK.d.ts +0 -1690
  102. package/dist/app-DDJJa0ep.d.cts +0 -1621
  103. package/dist/app-DDJJa0ep.d.ts +0 -1621
  104. package/dist/app-DO1s9YW1.d.cts +0 -1621
  105. package/dist/app-DO1s9YW1.d.ts +0 -1621
  106. package/dist/app-DTP3-9PJ.d.cts +0 -561
  107. package/dist/app-DTP3-9PJ.d.ts +0 -561
  108. package/dist/app-DZt5nslu.d.cts +0 -374
  109. package/dist/app-DZt5nslu.d.ts +0 -377
  110. package/dist/app-DbKDGYTI.d.cts +0 -566
  111. package/dist/app-DbKDGYTI.d.ts +0 -566
  112. package/dist/app-Dk3SzV1a.d.cts +0 -374
  113. package/dist/app-Dk3SzV1a.d.ts +0 -374
  114. package/dist/app-DnX9mNsh.d.cts +0 -374
  115. package/dist/app-DnX9mNsh.d.ts +0 -374
  116. package/dist/app-DqRO-CMi.d.cts +0 -1457
  117. package/dist/app-DqRO-CMi.d.ts +0 -1457
  118. package/dist/app-DvaFpOtj.d.cts +0 -398
  119. package/dist/app-DvaFpOtj.d.ts +0 -398
  120. package/dist/app-FGzip4XM.d.cts +0 -1563
  121. package/dist/app-FGzip4XM.d.ts +0 -1563
  122. package/dist/app-KApbf4XL.d.cts +0 -362
  123. package/dist/app-KApbf4XL.d.ts +0 -362
  124. package/dist/app-T0alZAE0.d.cts +0 -383
  125. package/dist/app-T0alZAE0.d.ts +0 -383
  126. package/dist/app-aW2FMuYM.d.cts +0 -1759
  127. package/dist/app-aW2FMuYM.d.ts +0 -1759
  128. package/dist/app-config-2vF6W56z.d.cts +0 -1335
  129. package/dist/app-config-2vF6W56z.d.ts +0 -1335
  130. package/dist/app-config-3XBnu9Xz.d.cts +0 -1379
  131. package/dist/app-config-3XBnu9Xz.d.ts +0 -1379
  132. package/dist/app-config-BLMX-9MN.d.cts +0 -1045
  133. package/dist/app-config-BLMX-9MN.d.ts +0 -1045
  134. package/dist/app-config-CaEQH0Kb.d.cts +0 -1383
  135. package/dist/app-config-CaEQH0Kb.d.ts +0 -1383
  136. package/dist/app-config-DLK6bCaP.d.cts +0 -1390
  137. package/dist/app-config-DLK6bCaP.d.ts +0 -1390
  138. package/dist/app-oQt5-9MU.d.cts +0 -1560
  139. package/dist/app-oQt5-9MU.d.ts +0 -1560
  140. package/dist/app-rZj1VFer.d.cts +0 -1621
  141. package/dist/app-rZj1VFer.d.ts +0 -1621
  142. package/dist/app-wo82JRHl.d.cts +0 -445
  143. package/dist/app-wo82JRHl.d.ts +0 -445
  144. package/dist/app.d.ts +0 -21
  145. package/dist/app.d.ts.map +0 -1
  146. package/dist/app.js +0 -56
  147. package/dist/app.js.map +0 -1
  148. package/dist/auth/jexl.d.ts +0 -10
  149. package/dist/auth/jexl.d.ts.map +0 -1
  150. package/dist/auth/jexl.js +0 -22
  151. package/dist/auth/jexl.js.map +0 -1
  152. package/dist/auth/password.d.ts +0 -10
  153. package/dist/auth/password.d.ts.map +0 -1
  154. package/dist/auth/password.js +0 -28
  155. package/dist/auth/password.js.map +0 -1
  156. package/dist/auth/token.d.ts +0 -22
  157. package/dist/auth/token.d.ts.map +0 -1
  158. package/dist/auth/token.js +0 -40
  159. package/dist/auth/token.js.map +0 -1
  160. package/dist/chunk-22JTWD74.js +0 -1784
  161. package/dist/chunk-23URSKPI.js +0 -2371
  162. package/dist/chunk-2JMA3M5S.js +0 -2475
  163. package/dist/chunk-3FZEUK36.js +0 -2470
  164. package/dist/chunk-3VUH2MNW.js +0 -1903
  165. package/dist/chunk-44O2LDPT.js +0 -1513
  166. package/dist/chunk-45JDQDA2.js +0 -1899
  167. package/dist/chunk-4C4L6SD2.js +0 -1524
  168. package/dist/chunk-4EDMZAM5.js +0 -2692
  169. package/dist/chunk-52T4RCFU.js +0 -1972
  170. package/dist/chunk-6ZXEGKT6.js +0 -619
  171. package/dist/chunk-7GGHK75W.js +0 -1835
  172. package/dist/chunk-ALNQINX7.js +0 -2496
  173. package/dist/chunk-B6KDKYXB.js +0 -2502
  174. package/dist/chunk-BEONZV6M.js +0 -1951
  175. package/dist/chunk-C4GEQ5RP.js +0 -1993
  176. package/dist/chunk-CQDVPMEU.js +0 -613
  177. package/dist/chunk-DOJHZ7XN.js +0 -2394
  178. package/dist/chunk-EH7G3LLL.js +0 -2065
  179. package/dist/chunk-EXXOPW3I.js +0 -2483
  180. package/dist/chunk-F4ZC6TXR.js +0 -2065
  181. package/dist/chunk-FCXE5CVC.js +0 -1528
  182. package/dist/chunk-FDQYPPG3.js +0 -2698
  183. package/dist/chunk-FURYJ254.mjs +0 -33
  184. package/dist/chunk-G2QQLBHW.js +0 -24
  185. package/dist/chunk-GM4WW6IE.js +0 -66
  186. package/dist/chunk-GZODLJ3C.js +0 -1861
  187. package/dist/chunk-IIY3E7Q7.js +0 -1996
  188. package/dist/chunk-JJN4J5NS.js +0 -2069
  189. package/dist/chunk-MRUHCNDM.js +0 -1940
  190. package/dist/chunk-NKDX67AW.js +0 -2698
  191. package/dist/chunk-NYUB4AHZ.js +0 -1951
  192. package/dist/chunk-OD4SLW7H.js +0 -1930
  193. package/dist/chunk-OE5MH3NB.js +0 -2070
  194. package/dist/chunk-PH36WQYS.js +0 -1875
  195. package/dist/chunk-PKNFV7KE.js +0 -2469
  196. package/dist/chunk-SUGK7UYL.js +0 -311
  197. package/dist/chunk-TIJHR54M.js +0 -1879
  198. package/dist/chunk-TUUHGLB5.js +0 -2609
  199. package/dist/chunk-UBTRANFX.js +0 -2476
  200. package/dist/chunk-VJWUG2XK.js +0 -1951
  201. package/dist/chunk-W6KURRMW.js +0 -2471
  202. package/dist/chunk-Y4AYI52W.js +0 -631
  203. package/dist/chunk-YDOBB7MY.js +0 -1457
  204. package/dist/chunk-YNJ3YC4N.js +0 -2483
  205. package/dist/chunk-ZFAOBRHT.js +0 -2709
  206. package/dist/controllers/admin-auth.controller.d.ts +0 -68
  207. package/dist/controllers/admin-auth.controller.d.ts.map +0 -1
  208. package/dist/controllers/admin-auth.controller.js +0 -414
  209. package/dist/controllers/admin-auth.controller.js.map +0 -1
  210. package/dist/controllers/auth.controller.d.ts +0 -125
  211. package/dist/controllers/auth.controller.d.ts.map +0 -1
  212. package/dist/controllers/auth.controller.js +0 -323
  213. package/dist/controllers/auth.controller.js.map +0 -1
  214. package/dist/controllers/collection.controller.d.ts +0 -157
  215. package/dist/controllers/collection.controller.d.ts.map +0 -1
  216. package/dist/controllers/collection.controller.js +0 -779
  217. package/dist/controllers/collection.controller.js.map +0 -1
  218. package/dist/controllers/global.controller.d.ts +0 -17
  219. package/dist/controllers/global.controller.d.ts.map +0 -1
  220. package/dist/controllers/global.controller.js +0 -132
  221. package/dist/controllers/global.controller.js.map +0 -1
  222. package/dist/controllers/media.controller.d.ts +0 -38
  223. package/dist/controllers/media.controller.d.ts.map +0 -1
  224. package/dist/controllers/media.controller.js +0 -162
  225. package/dist/controllers/media.controller.js.map +0 -1
  226. package/dist/controllers/preview.controller.d.ts +0 -37
  227. package/dist/controllers/preview.controller.d.ts.map +0 -1
  228. package/dist/controllers/preview.controller.js +0 -48
  229. package/dist/controllers/preview.controller.js.map +0 -1
  230. package/dist/index-BKYugiYp.d.cts +0 -1988
  231. package/dist/index-BKYugiYp.d.ts +0 -1988
  232. package/dist/index-BSWCiAen.d.cts +0 -1983
  233. package/dist/index-BSWCiAen.d.ts +0 -1983
  234. package/dist/index-BfLDb3b0.d.cts +0 -1467
  235. package/dist/index-BfLDb3b0.d.ts +0 -1467
  236. package/dist/index-Bi4sX_eC.d.cts +0 -1491
  237. package/dist/index-Bi4sX_eC.d.ts +0 -1491
  238. package/dist/index-Bp7PDOYG.d.cts +0 -1750
  239. package/dist/index-Bp7PDOYG.d.ts +0 -1750
  240. package/dist/index-ByXooLy-.d.cts +0 -1762
  241. package/dist/index-ByXooLy-.d.ts +0 -1762
  242. package/dist/index-C9Vp1DCT.d.cts +0 -1563
  243. package/dist/index-C9Vp1DCT.d.ts +0 -1563
  244. package/dist/index-CFezd8p1.d.cts +0 -1986
  245. package/dist/index-CFezd8p1.d.ts +0 -1986
  246. package/dist/index-CdQwnbfh.d.cts +0 -1889
  247. package/dist/index-CdQwnbfh.d.ts +0 -1889
  248. package/dist/index-D38_E0gf.d.cts +0 -336
  249. package/dist/index-D38_E0gf.d.ts +0 -336
  250. package/dist/index-DR2z1rrf.d.cts +0 -1503
  251. package/dist/index-DR2z1rrf.d.ts +0 -1503
  252. package/dist/index-DTrpTru7.d.cts +0 -1881
  253. package/dist/index-DTrpTru7.d.ts +0 -1881
  254. package/dist/index-DfAmTZXk.d.cts +0 -1749
  255. package/dist/index-DfAmTZXk.d.ts +0 -1749
  256. package/dist/index-DfkPT4NR.d.cts +0 -1584
  257. package/dist/index-DfkPT4NR.d.ts +0 -1584
  258. package/dist/index-DzUlE5Hc.d.cts +0 -1751
  259. package/dist/index-DzUlE5Hc.d.ts +0 -1751
  260. package/dist/index-M_m6dXZV.d.cts +0 -1889
  261. package/dist/index-M_m6dXZV.d.ts +0 -1889
  262. package/dist/index-RylhgOwj.d.cts +0 -340
  263. package/dist/index-RylhgOwj.d.ts +0 -340
  264. package/dist/index-qhLus8ZO.d.cts +0 -1881
  265. package/dist/index-qhLus8ZO.d.ts +0 -1881
  266. package/dist/index-xB1lMg79.d.cts +0 -1456
  267. package/dist/index-xB1lMg79.d.ts +0 -1456
  268. package/dist/index.d.mts +0 -417
  269. package/dist/index.d.ts.map +0 -1
  270. package/dist/index.js.map +0 -1
  271. package/dist/index.mjs +0 -1974
  272. package/dist/middleware/auth.d.ts +0 -18
  273. package/dist/middleware/auth.d.ts.map +0 -1
  274. package/dist/middleware/auth.js +0 -45
  275. package/dist/middleware/auth.js.map +0 -1
  276. package/dist/password-ACI2YUGZ.js +0 -8
  277. package/dist/router.d.ts +0 -8
  278. package/dist/router.d.ts.map +0 -1
  279. package/dist/router.js +0 -625
  280. package/dist/router.js.map +0 -1
  281. package/dist/server.d.ts.map +0 -1
  282. package/dist/server.js.map +0 -1
  283. package/dist/services/audit.service.d.ts +0 -23
  284. package/dist/services/audit.service.d.ts.map +0 -1
  285. package/dist/services/audit.service.js +0 -28
  286. package/dist/services/audit.service.js.map +0 -1
  287. package/dist/services/defaults.service.d.ts +0 -8
  288. package/dist/services/defaults.service.d.ts.map +0 -1
  289. package/dist/services/defaults.service.js +0 -55
  290. package/dist/services/defaults.service.js.map +0 -1
  291. package/dist/services/email-template.d.ts +0 -46
  292. package/dist/services/email-template.d.ts.map +0 -1
  293. package/dist/services/email-template.js +0 -88
  294. package/dist/services/email-template.js.map +0 -1
  295. package/dist/services/email.service.d.ts +0 -33
  296. package/dist/services/email.service.d.ts.map +0 -1
  297. package/dist/services/email.service.js +0 -96
  298. package/dist/services/email.service.js.map +0 -1
  299. package/dist/services/media.service.d.ts +0 -20
  300. package/dist/services/media.service.d.ts.map +0 -1
  301. package/dist/services/media.service.js +0 -49
  302. package/dist/services/media.service.js.map +0 -1
  303. package/dist/services/population.service.d.ts +0 -20
  304. package/dist/services/population.service.d.ts.map +0 -1
  305. package/dist/services/population.service.js +0 -194
  306. package/dist/services/population.service.js.map +0 -1
  307. package/dist/token-7QG5DBME.mjs +0 -10
  308. package/dist/types/access.d.ts +0 -38
  309. package/dist/types/access.d.ts.map +0 -1
  310. package/dist/types/access.js +0 -2
  311. package/dist/types/access.js.map +0 -1
  312. package/dist/types/adapters.d.ts +0 -146
  313. package/dist/types/adapters.d.ts.map +0 -1
  314. package/dist/types/adapters.js +0 -2
  315. package/dist/types/adapters.js.map +0 -1
  316. package/dist/types/admin-auth.d.ts +0 -132
  317. package/dist/types/admin-auth.d.ts.map +0 -1
  318. package/dist/types/admin-auth.js +0 -2
  319. package/dist/types/admin-auth.js.map +0 -1
  320. package/dist/types/admin.d.ts +0 -65
  321. package/dist/types/admin.d.ts.map +0 -1
  322. package/dist/types/admin.js +0 -2
  323. package/dist/types/admin.js.map +0 -1
  324. package/dist/types/app-config.d.ts +0 -143
  325. package/dist/types/app-config.d.ts.map +0 -1
  326. package/dist/types/app-config.js +0 -2
  327. package/dist/types/app-config.js.map +0 -1
  328. package/dist/types/documents.d.ts +0 -65
  329. package/dist/types/documents.d.ts.map +0 -1
  330. package/dist/types/documents.js +0 -2
  331. package/dist/types/documents.js.map +0 -1
  332. package/dist/types/hooks.d.ts +0 -122
  333. package/dist/types/hooks.d.ts.map +0 -1
  334. package/dist/types/hooks.js +0 -2
  335. package/dist/types/hooks.js.map +0 -1
  336. package/dist/types/index.d.ts +0 -13
  337. package/dist/types/index.d.ts.map +0 -1
  338. package/dist/types/index.js +0 -13
  339. package/dist/types/index.js.map +0 -1
  340. package/dist/types/request.d.ts +0 -42
  341. package/dist/types/request.d.ts.map +0 -1
  342. package/dist/types/request.js +0 -2
  343. package/dist/types/request.js.map +0 -1
  344. package/dist/types/schema-config.d.ts +0 -303
  345. package/dist/types/schema-config.d.ts.map +0 -1
  346. package/dist/types/schema-config.js +0 -2
  347. package/dist/types/schema-config.js.map +0 -1
  348. package/dist/types/schema-core.d.ts +0 -294
  349. package/dist/types/schema-core.d.ts.map +0 -1
  350. package/dist/types/schema-core.js +0 -2
  351. package/dist/types/schema-core.js.map +0 -1
  352. package/dist/types/schema-inference.d.ts +0 -73
  353. package/dist/types/schema-inference.d.ts.map +0 -1
  354. package/dist/types/schema-inference.js +0 -2
  355. package/dist/types/schema-inference.js.map +0 -1
  356. package/dist/types/workflows.d.ts +0 -84
  357. package/dist/types/workflows.d.ts.map +0 -1
  358. package/dist/types/workflows.js +0 -7
  359. package/dist/types/workflows.js.map +0 -1
  360. package/dist/utils/admin-auth.d.ts +0 -5
  361. package/dist/utils/admin-auth.d.ts.map +0 -1
  362. package/dist/utils/admin-auth.js +0 -39
  363. package/dist/utils/admin-auth.js.map +0 -1
  364. package/dist/utils/config.d.ts +0 -8
  365. package/dist/utils/config.d.ts.map +0 -1
  366. package/dist/utils/config.js +0 -238
  367. package/dist/utils/config.js.map +0 -1
  368. package/dist/utils/hooks.d.ts +0 -41
  369. package/dist/utils/hooks.d.ts.map +0 -1
  370. package/dist/utils/hooks.js +0 -173
  371. package/dist/utils/hooks.js.map +0 -1
  372. package/dist/utils/openapi.d.ts +0 -6
  373. package/dist/utils/openapi.d.ts.map +0 -1
  374. package/dist/utils/openapi.js +0 -842
  375. package/dist/utils/openapi.js.map +0 -1
  376. package/dist/utils/parse-sort.d.ts +0 -7
  377. package/dist/utils/parse-sort.d.ts.map +0 -1
  378. package/dist/utils/parse-sort.js +0 -23
  379. package/dist/utils/parse-sort.js.map +0 -1
  380. package/dist/utils/parse-where.d.ts +0 -63
  381. package/dist/utils/parse-where.d.ts.map +0 -1
  382. package/dist/utils/parse-where.js +0 -196
  383. package/dist/utils/parse-where.js.map +0 -1
  384. package/dist/utils/readonly-db.d.ts +0 -9
  385. package/dist/utils/readonly-db.d.ts.map +0 -1
  386. package/dist/utils/readonly-db.js +0 -21
  387. package/dist/utils/readonly-db.js.map +0 -1
  388. package/dist/utils/setup-prompt.d.ts +0 -11
  389. package/dist/utils/setup-prompt.d.ts.map +0 -1
  390. package/dist/utils/setup-prompt.js +0 -863
  391. package/dist/utils/setup-prompt.js.map +0 -1
  392. package/dist/utils/swagger.d.ts +0 -11
  393. package/dist/utils/swagger.d.ts.map +0 -1
  394. package/dist/utils/swagger.js +0 -62
  395. package/dist/utils/swagger.js.map +0 -1
  396. package/dist/utils/upload-validation.d.ts +0 -23
  397. package/dist/utils/upload-validation.d.ts.map +0 -1
  398. package/dist/utils/upload-validation.js +0 -44
  399. package/dist/utils/upload-validation.js.map +0 -1
  400. package/dist/utils/where-sanitizer.d.ts +0 -10
  401. package/dist/utils/where-sanitizer.d.ts.map +0 -1
  402. package/dist/utils/where-sanitizer.js +0 -67
  403. package/dist/utils/where-sanitizer.js.map +0 -1
  404. package/dist/where-sanitizer-7Q4JXMX6.js +0 -57
  405. package/dist/where-sanitizer-DQIWTQZW.js +0 -50
  406. package/dist/workflows.d.ts +0 -54
  407. package/dist/workflows.d.ts.map +0 -1
  408. package/dist/workflows.js +0 -282
  409. package/dist/workflows.js.map +0 -1
@@ -1,613 +0,0 @@
1
- // src/workflows.ts
2
- var WORKFLOW_HISTORY_COLLECTION = "__workflow_history";
3
- var LIFECYCLE_EVENTS_COLLECTION = "__lifecycle_events";
4
- function publishingWorkflow() {
5
- return {
6
- initialState: "draft",
7
- draftState: "draft",
8
- states: [
9
- { name: "draft", label: "Draft", color: "neutral" },
10
- { name: "in_review", label: "In review", color: "warning" },
11
- { name: "published", label: "Published", color: "success", published: true }
12
- ],
13
- transitions: [
14
- { name: "submit", label: "Submit for review", from: "draft", to: "in_review", requiredCapabilities: ["entry.submit"] },
15
- { name: "publish", label: "Publish", from: "in_review", to: "published", requiredCapabilities: ["entry.publish"] },
16
- { name: "reject", label: "Request changes", from: "in_review", to: "draft", requiredCapabilities: ["entry.publish"], requireComment: true },
17
- { name: "unpublish", label: "Unpublish", from: "published", to: "draft", requiredCapabilities: ["entry.unpublish"], unpublish: true }
18
- ],
19
- roles: [
20
- { role: "editor", capabilities: ["entry.edit", "entry.submit"] },
21
- { role: "publisher", capabilities: ["entry.edit", "entry.submit", "entry.publish", "entry.unpublish"] },
22
- { role: "admin", capabilities: ["entry.edit", "entry.submit", "entry.publish", "entry.unpublish"] }
23
- ]
24
- };
25
- }
26
- function publicMetadata(meta) {
27
- const { availableTransitions: _availableTransitions, ...safe } = meta;
28
- return safe;
29
- }
30
- function workflowCapabilities(workflow, user) {
31
- const capabilities = new Set(Array.isArray(user?.capabilities) ? user.capabilities : []);
32
- const roles = Array.isArray(user?.roles) ? user.roles : [];
33
- for (const mapping of workflow.roles ?? []) {
34
- if (roles.includes(mapping.role)) mapping.capabilities.forEach((capability) => capabilities.add(capability));
35
- }
36
- return capabilities;
37
- }
38
- function availableWorkflowTransitions(workflow, state, user) {
39
- const capabilities = workflowCapabilities(workflow, user);
40
- return workflow.transitions.filter((transition) => {
41
- const from = Array.isArray(transition.from) ? transition.from : [transition.from];
42
- return from.includes(state) && (transition.requiredCapabilities ?? []).every((item) => capabilities.has(item));
43
- });
44
- }
45
- function initializeWorkflowDocument(data, workflow) {
46
- return {
47
- ...data,
48
- __workflow: { state: workflow.initialState, revision: 1 }
49
- };
50
- }
51
- function materializeWorkflowDocument(doc, workflow, user) {
52
- const meta = doc.__workflow;
53
- if (!meta) return doc;
54
- const { __published, __workflow, ...working } = doc;
55
- if (!user) {
56
- if (!__published || typeof __published !== "object") return null;
57
- return { id: doc.id, ...__published, _workflow: publicMetadata(meta) };
58
- }
59
- return {
60
- ...working,
61
- _workflow: {
62
- ...meta,
63
- availableTransitions: availableWorkflowTransitions(workflow, meta.state, user).map((item) => item.name)
64
- }
65
- };
66
- }
67
- function eventId() {
68
- return globalThis.crypto?.randomUUID?.() ?? `evt_${Date.now()}_${Math.random().toString(36).slice(2)}`;
69
- }
70
- function createLifecycleEvent(args) {
71
- return {
72
- id: eventId(),
73
- name: args.name,
74
- collection: args.collection,
75
- documentId: args.documentId,
76
- occurredAt: (/* @__PURE__ */ new Date()).toISOString(),
77
- actorId: args.actorId,
78
- payload: args.payload,
79
- attempts: 0,
80
- status: "pending"
81
- };
82
- }
83
- async function persistEvent(db, event) {
84
- await db.create({ collection: LIFECYCLE_EVENTS_COLLECTION, data: event });
85
- }
86
- async function dispatchLifecycleEvent(config, event) {
87
- const db = config.db;
88
- if (!db || !config.events?.handlers.length) return;
89
- const maxAttempts = config.events.maxAttempts ?? 8;
90
- const retryDelayMs = config.events.retryDelayMs ?? 1e3;
91
- const attempts = event.attempts + 1;
92
- try {
93
- await db.update({ collection: LIFECYCLE_EVENTS_COLLECTION, id: event.id, data: { status: "processing", attempts } });
94
- for (const handler of config.events.handlers) await handler({ ...event, status: "processing", attempts });
95
- await db.update({
96
- collection: LIFECYCLE_EVENTS_COLLECTION,
97
- id: event.id,
98
- data: { status: "delivered", attempts, deliveredAt: (/* @__PURE__ */ new Date()).toISOString(), lastError: null }
99
- });
100
- } catch (error) {
101
- const exhausted = attempts >= maxAttempts;
102
- await db.update({
103
- collection: LIFECYCLE_EVENTS_COLLECTION,
104
- id: event.id,
105
- data: {
106
- status: "failed",
107
- attempts,
108
- lastError: error instanceof Error ? error.message : String(error),
109
- nextAttemptAt: exhausted ? null : new Date(Date.now() + retryDelayMs * 2 ** (attempts - 1)).toISOString()
110
- }
111
- });
112
- }
113
- }
114
- async function dispatchPendingLifecycleEvents(config, limit = 50) {
115
- if (!config.db || !config.events?.handlers.length) return 0;
116
- const result = await config.db.find({
117
- collection: LIFECYCLE_EVENTS_COLLECTION,
118
- where: { status: { in: ["pending", "failed"] } },
119
- sort: "occurredAt",
120
- limit
121
- });
122
- const now = Date.now();
123
- const due = result.docs.filter((doc) => !doc.nextAttemptAt || new Date(doc.nextAttemptAt).getTime() <= now);
124
- for (const event of due) await dispatchLifecycleEvent(config, event);
125
- return due.length;
126
- }
127
- async function saveWorkflowDraft(args) {
128
- const { config, collection, id, originalDoc, data, user } = args;
129
- const db = config.db;
130
- const workflow = collection.workflow;
131
- if (!db.transaction) throw new Error(`The configured database adapter does not support workflow transactions.`);
132
- const previous = originalDoc.__workflow;
133
- const event = createLifecycleEvent({
134
- name: "revision.created",
135
- collection: collection.slug,
136
- documentId: id,
137
- actorId: user?.sub,
138
- payload: { revision: previous.revision + 1, previousRevision: previous.revision }
139
- });
140
- const doc = await db.transaction(async (tx) => {
141
- const nextMeta = {
142
- ...previous,
143
- state: originalDoc.__published ? workflow.draftState ?? workflow.initialState : previous.state,
144
- revision: previous.revision + 1
145
- };
146
- const updated = await tx.update({ collection: collection.slug, id, data: { ...data, __workflow: nextMeta } });
147
- await persistEvent(tx, event);
148
- return updated;
149
- });
150
- void dispatchLifecycleEvent(config, event);
151
- return { doc, event };
152
- }
153
- async function createWorkflowDocument(args) {
154
- const { config, collection, data, user } = args;
155
- const db = config.db;
156
- if (!db.transaction) throw new Error(`The configured database adapter does not support workflow transactions.`);
157
- let event;
158
- const doc = await db.transaction(async (tx) => {
159
- const created = await tx.create({ collection: collection.slug, data });
160
- event = createLifecycleEvent({
161
- name: "revision.created",
162
- collection: collection.slug,
163
- documentId: created.id,
164
- actorId: user?.sub,
165
- payload: { revision: 1, previousRevision: null }
166
- });
167
- await persistEvent(tx, event);
168
- return created;
169
- });
170
- void dispatchLifecycleEvent(config, event);
171
- return { doc, event };
172
- }
173
- async function transitionWorkflow(args) {
174
- const { config, collection, id, transitionName, expectedRevision, comment, user, req } = args;
175
- const db = config.db;
176
- const workflow = collection.workflow;
177
- if (!db.transaction) throw new Error(`The configured database adapter does not support workflow transactions.`);
178
- const original = await db.findOne({ collection: collection.slug, id });
179
- if (!original) throw Object.assign(new Error("Not Found"), { statusCode: 404 });
180
- const meta = original.__workflow;
181
- if (!meta) throw Object.assign(new Error("Entry has no workflow metadata"), { statusCode: 409 });
182
- if (expectedRevision !== void 0 && expectedRevision !== meta.revision) {
183
- throw Object.assign(new Error("This entry changed since it was loaded. Refresh before transitioning it."), { statusCode: 409 });
184
- }
185
- const transition = workflow.transitions.find((item) => item.name === transitionName);
186
- const fromStates = transition ? Array.isArray(transition.from) ? transition.from : [transition.from] : [];
187
- if (!transition || !fromStates.includes(meta.state)) {
188
- throw Object.assign(new Error(`Transition "${transitionName}" is not valid from "${meta.state}".`), { statusCode: 409 });
189
- }
190
- if (!availableWorkflowTransitions(workflow, meta.state, user).some((item) => item.name === transition.name)) {
191
- throw Object.assign(new Error(`You do not have permission to perform "${transition.label}".`), { statusCode: 403 });
192
- }
193
- if (transition.requireComment && !comment?.trim()) {
194
- throw Object.assign(new Error(`A comment is required for "${transition.label}".`), { statusCode: 400 });
195
- }
196
- const hookContext = { transition, from: meta.state, to: transition.to, doc: original, user, comment, req, db };
197
- for (const hook of workflow.hooks?.beforeTransition ?? []) await hook(hookContext);
198
- const events = [createLifecycleEvent({
199
- name: "workflow.transitioned",
200
- collection: collection.slug,
201
- documentId: id,
202
- actorId: user?.sub,
203
- payload: { transition: transition.name, from: meta.state, to: transition.to, revision: meta.revision, comment }
204
- })];
205
- const targetState = workflow.states.find((state) => state.name === transition.to);
206
- if (targetState.published) {
207
- events.push(createLifecycleEvent({ name: "entry.published", collection: collection.slug, documentId: id, actorId: user?.sub, payload: { revision: meta.revision } }));
208
- } else if (transition.unpublish) {
209
- events.push(createLifecycleEvent({ name: "entry.unpublished", collection: collection.slug, documentId: id, actorId: user?.sub, payload: { revision: meta.publishedRevision } }));
210
- }
211
- const updated = await db.transaction(async (tx) => {
212
- const now = (/* @__PURE__ */ new Date()).toISOString();
213
- const { __published: _published, __workflow: _workflow, id: _id, ...working } = original;
214
- const nextMeta = {
215
- ...meta,
216
- state: transition.to,
217
- ...targetState.published ? { publishedRevision: meta.revision, publishedAt: now, publishedBy: user?.sub } : {},
218
- ...transition.unpublish ? { publishedRevision: void 0, publishedAt: void 0, publishedBy: void 0 } : {}
219
- };
220
- const data = { __workflow: nextMeta };
221
- if (targetState.published) data.__published = working;
222
- if (transition.unpublish) data.__published = null;
223
- const next = await tx.update({ collection: collection.slug, id, data });
224
- await tx.create({
225
- collection: WORKFLOW_HISTORY_COLLECTION,
226
- data: { collection: collection.slug, documentId: id, transition: transition.name, from: meta.state, to: transition.to, revision: meta.revision, comment: comment ?? null, actorId: user?.sub ?? null, createdAt: now }
227
- });
228
- for (const event of events) await persistEvent(tx, event);
229
- if (collection.audit) {
230
- await tx.create({ collection: "__audit", data: { collection: collection.slug, documentId: id, operation: "workflow.transition", user: user?.sub ?? null, timestamp: now, changes: JSON.stringify({ transition: transition.name, from: meta.state, to: transition.to, revision: meta.revision }) } });
231
- }
232
- return next;
233
- });
234
- for (const event of events) void dispatchLifecycleEvent(config, event);
235
- for (const hook of workflow.hooks?.afterTransition ?? []) {
236
- try {
237
- await hook({ ...hookContext, doc: updated, event: events[0] });
238
- } catch (error) {
239
- console.error("[dyrected/workflow] afterTransition hook failed:", error);
240
- }
241
- }
242
- return updated;
243
- }
244
-
245
- // src/utils/config.ts
246
- var AUDIT_COLLECTION_SLUG = "__audit";
247
- var SYSTEM_FIELDS = [
248
- {
249
- name: "createdAt",
250
- type: "date",
251
- label: "Created At",
252
- admin: { readOnly: true, hidden: true }
253
- },
254
- {
255
- name: "updatedAt",
256
- type: "date",
257
- label: "Updated At",
258
- admin: { readOnly: true, hidden: true }
259
- },
260
- {
261
- name: "createdBy",
262
- type: "text",
263
- label: "Created By",
264
- admin: { readOnly: true, hidden: true }
265
- },
266
- {
267
- name: "updatedBy",
268
- type: "text",
269
- label: "Updated By",
270
- admin: { readOnly: true, hidden: true }
271
- }
272
- ];
273
- var AUDIT_COLLECTION = {
274
- slug: AUDIT_COLLECTION_SLUG,
275
- labels: { singular: "Audit Log", plural: "Audit Logs" },
276
- fields: [
277
- { name: "collection", type: "text", label: "Collection", required: true },
278
- { name: "documentId", type: "text", label: "Document ID" },
279
- { name: "operation", type: "select", label: "Operation", options: ["create", "update", "delete"], required: true },
280
- { name: "user", type: "text", label: "User ID" },
281
- { name: "timestamp", type: "date", label: "Timestamp", required: true },
282
- { name: "changes", type: "json", label: "Changes" }
283
- ],
284
- admin: { hidden: true }
285
- };
286
- var WORKFLOW_HISTORY_COLLECTION_CONFIG = {
287
- slug: WORKFLOW_HISTORY_COLLECTION,
288
- labels: { singular: "Workflow transition", plural: "Workflow transitions" },
289
- fields: [
290
- { name: "collection", type: "text", required: true },
291
- { name: "documentId", type: "text", required: true },
292
- { name: "transition", type: "text", required: true },
293
- { name: "from", type: "text", required: true },
294
- { name: "to", type: "text", required: true },
295
- { name: "revision", type: "number", required: true },
296
- { name: "comment", type: "textarea" },
297
- { name: "actorId", type: "text" },
298
- { name: "createdAt", type: "date", required: true }
299
- ],
300
- access: { read: ({ user }) => !!user, create: () => false, update: () => false, delete: () => false },
301
- admin: { hidden: true }
302
- };
303
- var LIFECYCLE_EVENTS_COLLECTION_CONFIG = {
304
- slug: LIFECYCLE_EVENTS_COLLECTION,
305
- labels: { singular: "Lifecycle event", plural: "Lifecycle events" },
306
- fields: [
307
- { name: "name", type: "text", required: true },
308
- { name: "collection", type: "text", required: true },
309
- { name: "documentId", type: "text", required: true },
310
- { name: "occurredAt", type: "date", required: true },
311
- { name: "actorId", type: "text" },
312
- { name: "payload", type: "json", required: true },
313
- { name: "attempts", type: "number", required: true },
314
- { name: "status", type: "select", options: ["pending", "processing", "delivered", "failed"], required: true },
315
- { name: "nextAttemptAt", type: "date" },
316
- { name: "deliveredAt", type: "date" },
317
- { name: "lastError", type: "textarea" }
318
- ],
319
- access: { read: ({ user }) => !!user?.roles?.includes("admin"), create: () => false, update: () => false, delete: () => false },
320
- admin: { hidden: true }
321
- };
322
- function normalizeConfig(config) {
323
- const collections = config?.collections || [];
324
- const globals = config?.globals || [];
325
- const needsAudit = collections.some((col) => col.audit);
326
- const needsWorkflow = collections.some((col) => col.workflow);
327
- const normalizedCollections = collections.map((col) => {
328
- let fields = col.fields || [];
329
- const existingFieldNames = new Set(fields.map((f) => f.name));
330
- if (col.auth) {
331
- if (!existingFieldNames.has("email")) {
332
- fields = [
333
- ...fields,
334
- {
335
- name: "email",
336
- type: "email",
337
- label: "Email",
338
- required: true,
339
- unique: true,
340
- promoted: true,
341
- access: {
342
- update: "!id"
343
- }
344
- }
345
- ];
346
- }
347
- if (!existingFieldNames.has("password")) {
348
- fields = [
349
- ...fields,
350
- {
351
- name: "password",
352
- type: "text",
353
- label: "Password",
354
- required: true,
355
- access: {
356
- update: "!id || user.id == id"
357
- }
358
- }
359
- ];
360
- }
361
- if (!existingFieldNames.has("roles")) {
362
- fields = [
363
- ...fields,
364
- {
365
- name: "roles",
366
- type: "select",
367
- label: "Roles",
368
- defaultValue: [],
369
- options: [
370
- { value: "admin", label: "Admin" },
371
- { value: "editor", label: "Editor" },
372
- { value: "viewer", label: "Viewer" }
373
- ],
374
- access: {
375
- update: "user.roles && 'admin' in user.roles"
376
- }
377
- }
378
- ];
379
- }
380
- fields = fields.map((field) => {
381
- if (field.name === "email") {
382
- return {
383
- ...field,
384
- access: {
385
- ...field.access || {},
386
- update: "!id"
387
- }
388
- };
389
- }
390
- if (field.name === "password") {
391
- return {
392
- ...field,
393
- admin: { ...field.admin || {} },
394
- access: {
395
- ...field.access || {},
396
- update: "!id || user.id == id"
397
- }
398
- };
399
- }
400
- if (field.name === "roles") {
401
- return {
402
- ...field,
403
- access: {
404
- ...field.access || {},
405
- // Must be an admin; cannot edit own roles (no self-elevation).
406
- update: "user.roles && 'admin' in user.roles && user.id != id"
407
- }
408
- };
409
- }
410
- return field;
411
- });
412
- }
413
- const updatedFieldNames = new Set(fields.map((f) => f.name));
414
- const fieldsToInject = SYSTEM_FIELDS.filter((f) => !updatedFieldNames.has(f.name));
415
- return {
416
- ...col,
417
- fields: [...fields, ...fieldsToInject]
418
- };
419
- });
420
- const hasAuditCollection = normalizedCollections.some((col) => col.slug === AUDIT_COLLECTION_SLUG);
421
- const systemCollections = [];
422
- if (needsAudit && !hasAuditCollection) systemCollections.push(AUDIT_COLLECTION);
423
- if (needsWorkflow && !normalizedCollections.some((col) => col.slug === WORKFLOW_HISTORY_COLLECTION)) {
424
- systemCollections.push(WORKFLOW_HISTORY_COLLECTION_CONFIG);
425
- }
426
- if (needsWorkflow && !normalizedCollections.some((col) => col.slug === LIFECYCLE_EVENTS_COLLECTION)) {
427
- systemCollections.push(LIFECYCLE_EVENTS_COLLECTION_CONFIG);
428
- }
429
- return {
430
- ...config,
431
- collections: [...normalizedCollections, ...systemCollections],
432
- globals
433
- };
434
- }
435
-
436
- // src/utils/hooks.ts
437
- async function runCollectionHooks(hooks, args, options = {}) {
438
- if (!hooks || hooks.length === 0) {
439
- return args.data ?? args.doc ?? void 0;
440
- }
441
- let currentPayload = args.data ?? args.doc ?? void 0;
442
- for (const hook of hooks) {
443
- try {
444
- const result = await hook({
445
- ...args,
446
- data: args.data !== void 0 ? currentPayload : void 0,
447
- doc: args.doc !== void 0 ? currentPayload : void 0
448
- });
449
- if (result !== void 0) {
450
- currentPayload = result;
451
- }
452
- } catch (err) {
453
- if (options.isolated) {
454
- console.error("[dyrected/core] Side-effect hook failed (error isolated \u2014 DB write was successful):", err);
455
- } else {
456
- throw err;
457
- }
458
- }
459
- }
460
- return currentPayload;
461
- }
462
- async function executeFieldBeforeChange(fields, data, originalDoc, user, db) {
463
- if (!data || typeof data !== "object") return data;
464
- const result = { ...data };
465
- for (const field of fields) {
466
- if (!field.name) continue;
467
- const value = result[field.name];
468
- const origValue = originalDoc?.[field.name];
469
- let updatedValue = value;
470
- if (field.hooks?.beforeChange) {
471
- for (const hook of field.hooks.beforeChange) {
472
- updatedValue = await hook({
473
- value: updatedValue,
474
- originalDoc: originalDoc ?? void 0,
475
- data: result,
476
- user,
477
- db
478
- });
479
- }
480
- result[field.name] = updatedValue;
481
- }
482
- if (updatedValue !== void 0 && updatedValue !== null) {
483
- if (field.type === "object" && field.fields) {
484
- result[field.name] = await executeFieldBeforeChange(
485
- field.fields,
486
- updatedValue,
487
- origValue,
488
- user,
489
- db
490
- );
491
- } else if (field.type === "array" && field.fields && Array.isArray(updatedValue)) {
492
- const arrayResult = [];
493
- for (let i = 0; i < updatedValue.length; i++) {
494
- const item = updatedValue[i];
495
- const origItem = Array.isArray(origValue) ? origValue[i] : null;
496
- arrayResult.push(
497
- await executeFieldBeforeChange(field.fields, item, origItem, user, db)
498
- );
499
- }
500
- result[field.name] = arrayResult;
501
- } else if (field.type === "blocks" && field.blocks && Array.isArray(updatedValue)) {
502
- const blocksResult = [];
503
- for (let i = 0; i < updatedValue.length; i++) {
504
- const blockData = updatedValue[i];
505
- const origBlock = Array.isArray(origValue) ? origValue[i] : null;
506
- const blockConfig = field.blocks.find(
507
- (b) => b.slug === blockData.blockType
508
- );
509
- if (blockConfig) {
510
- blocksResult.push(
511
- await executeFieldBeforeChange(
512
- blockConfig.fields,
513
- blockData,
514
- origBlock,
515
- user,
516
- db
517
- )
518
- );
519
- } else {
520
- blocksResult.push(blockData);
521
- }
522
- }
523
- result[field.name] = blocksResult;
524
- }
525
- }
526
- }
527
- return result;
528
- }
529
- async function executeFieldAfterRead(fields, doc, user, db) {
530
- if (!doc || typeof doc !== "object") return doc;
531
- const result = { ...doc };
532
- for (const field of fields) {
533
- if (!field.name) continue;
534
- const value = result[field.name];
535
- let updatedValue = value;
536
- if (field.hooks?.afterRead) {
537
- for (const hook of field.hooks.afterRead) {
538
- updatedValue = await hook({
539
- value: updatedValue,
540
- doc: result,
541
- user,
542
- db
543
- });
544
- }
545
- result[field.name] = updatedValue;
546
- }
547
- if (updatedValue !== void 0 && updatedValue !== null) {
548
- if (field.type === "object" && field.fields) {
549
- result[field.name] = await executeFieldAfterRead(
550
- field.fields,
551
- updatedValue,
552
- user,
553
- db
554
- );
555
- } else if (field.type === "array" && field.fields && Array.isArray(updatedValue)) {
556
- const arrayResult = [];
557
- for (const item of updatedValue) {
558
- arrayResult.push(
559
- await executeFieldAfterRead(
560
- field.fields,
561
- item,
562
- user,
563
- db
564
- )
565
- );
566
- }
567
- result[field.name] = arrayResult;
568
- } else if (field.type === "blocks" && field.blocks && Array.isArray(updatedValue)) {
569
- const blocksResult = [];
570
- for (const blockData of updatedValue) {
571
- const typedBlock = blockData;
572
- const blockConfig = field.blocks.find(
573
- (b) => b.slug === typedBlock.blockType
574
- );
575
- if (blockConfig) {
576
- blocksResult.push(
577
- await executeFieldAfterRead(
578
- blockConfig.fields,
579
- typedBlock,
580
- user,
581
- db
582
- )
583
- );
584
- } else {
585
- blocksResult.push(blockData);
586
- }
587
- }
588
- result[field.name] = blocksResult;
589
- }
590
- }
591
- }
592
- return result;
593
- }
594
-
595
- export {
596
- WORKFLOW_HISTORY_COLLECTION,
597
- LIFECYCLE_EVENTS_COLLECTION,
598
- publishingWorkflow,
599
- workflowCapabilities,
600
- availableWorkflowTransitions,
601
- initializeWorkflowDocument,
602
- materializeWorkflowDocument,
603
- createLifecycleEvent,
604
- dispatchLifecycleEvent,
605
- dispatchPendingLifecycleEvents,
606
- saveWorkflowDraft,
607
- createWorkflowDocument,
608
- transitionWorkflow,
609
- normalizeConfig,
610
- runCollectionHooks,
611
- executeFieldBeforeChange,
612
- executeFieldAfterRead
613
- };