@dyrected/core 2.8.3 → 2.9.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.
- package/dist/{app-config-BccpBUqJ.d.cts → app-config-gEQJFvnN.d.cts} +212 -85
- package/dist/{app-config-BccpBUqJ.d.ts → app-config-gEQJFvnN.d.ts} +212 -85
- package/dist/chunk-JSBRDJBE.js +30 -0
- package/dist/{chunk-GFFGDHST.js → chunk-XRIONGRY.js} +1769 -12
- package/dist/index.cjs +1813 -6
- package/dist/index.d.cts +19 -4
- package/dist/index.d.ts +19 -4
- package/dist/index.js +56 -4
- package/dist/{observability-KCMTV7GO.js → observability-HQF4EUSV.js} +1 -0
- package/dist/server.cjs +1979 -13
- package/dist/server.d.cts +37 -15
- package/dist/server.d.ts +37 -15
- package/dist/server.js +230 -15
- package/dist/{where-sanitizer-WJ2W2QCE.js → where-sanitizer-3MNFMYA2.js} +2 -0
- package/package.json +3 -3
- package/dist/__tests__/access-features.test.d.ts +0 -2
- package/dist/__tests__/access-features.test.d.ts.map +0 -1
- package/dist/__tests__/access-features.test.js +0 -159
- package/dist/__tests__/access-features.test.js.map +0 -1
- package/dist/__tests__/access-parity.test.d.ts +0 -2
- package/dist/__tests__/access-parity.test.d.ts.map +0 -1
- package/dist/__tests__/access-parity.test.js +0 -338
- package/dist/__tests__/access-parity.test.js.map +0 -1
- package/dist/__tests__/access.test.d.ts +0 -2
- package/dist/__tests__/access.test.d.ts.map +0 -1
- package/dist/__tests__/access.test.js +0 -137
- package/dist/__tests__/access.test.js.map +0 -1
- package/dist/__tests__/admin-auth.test.d.ts +0 -2
- package/dist/__tests__/admin-auth.test.d.ts.map +0 -1
- package/dist/__tests__/admin-auth.test.js +0 -440
- package/dist/__tests__/admin-auth.test.js.map +0 -1
- package/dist/__tests__/app.test.d.ts +0 -2
- package/dist/__tests__/app.test.d.ts.map +0 -1
- package/dist/__tests__/app.test.js +0 -112
- package/dist/__tests__/app.test.js.map +0 -1
- package/dist/__tests__/audit.test.d.ts +0 -2
- package/dist/__tests__/audit.test.d.ts.map +0 -1
- package/dist/__tests__/audit.test.js +0 -125
- package/dist/__tests__/audit.test.js.map +0 -1
- package/dist/__tests__/auth-hydration.test.d.ts +0 -2
- package/dist/__tests__/auth-hydration.test.d.ts.map +0 -1
- package/dist/__tests__/auth-hydration.test.js +0 -90
- package/dist/__tests__/auth-hydration.test.js.map +0 -1
- package/dist/__tests__/auth-invite.test.d.ts +0 -2
- package/dist/__tests__/auth-invite.test.d.ts.map +0 -1
- package/dist/__tests__/auth-invite.test.js +0 -152
- package/dist/__tests__/auth-invite.test.js.map +0 -1
- package/dist/__tests__/auth-lockout.test.d.ts +0 -2
- package/dist/__tests__/auth-lockout.test.d.ts.map +0 -1
- package/dist/__tests__/auth-lockout.test.js +0 -154
- package/dist/__tests__/auth-lockout.test.js.map +0 -1
- package/dist/__tests__/auth-sessions.test.d.ts +0 -2
- package/dist/__tests__/auth-sessions.test.d.ts.map +0 -1
- package/dist/__tests__/auth-sessions.test.js +0 -118
- package/dist/__tests__/auth-sessions.test.js.map +0 -1
- package/dist/__tests__/config.test.d.ts +0 -2
- package/dist/__tests__/config.test.d.ts.map +0 -1
- package/dist/__tests__/config.test.js +0 -402
- package/dist/__tests__/config.test.js.map +0 -1
- package/dist/__tests__/define-field.test.d.ts +0 -2
- package/dist/__tests__/define-field.test.d.ts.map +0 -1
- package/dist/__tests__/define-field.test.js +0 -121
- package/dist/__tests__/define-field.test.js.map +0 -1
- package/dist/__tests__/deleteMany.test.d.ts +0 -2
- package/dist/__tests__/deleteMany.test.d.ts.map +0 -1
- package/dist/__tests__/deleteMany.test.js +0 -75
- package/dist/__tests__/deleteMany.test.js.map +0 -1
- package/dist/__tests__/depth.test.d.ts +0 -2
- package/dist/__tests__/depth.test.d.ts.map +0 -1
- package/dist/__tests__/depth.test.js +0 -115
- package/dist/__tests__/depth.test.js.map +0 -1
- package/dist/__tests__/dynamic-options.test.d.ts +0 -2
- package/dist/__tests__/dynamic-options.test.d.ts.map +0 -1
- package/dist/__tests__/dynamic-options.test.js +0 -168
- package/dist/__tests__/dynamic-options.test.js.map +0 -1
- package/dist/__tests__/email.service.test.d.ts +0 -2
- package/dist/__tests__/email.service.test.d.ts.map +0 -1
- package/dist/__tests__/email.service.test.js +0 -52
- package/dist/__tests__/email.service.test.js.map +0 -1
- package/dist/__tests__/field-inference.test-types.d.ts +0 -161
- package/dist/__tests__/field-inference.test-types.d.ts.map +0 -1
- package/dist/__tests__/field-inference.test-types.js +0 -87
- package/dist/__tests__/field-inference.test-types.js.map +0 -1
- package/dist/__tests__/fixtures/editorial-workflow.d.ts +0 -14
- package/dist/__tests__/fixtures/editorial-workflow.d.ts.map +0 -1
- package/dist/__tests__/fixtures/editorial-workflow.js +0 -12
- package/dist/__tests__/fixtures/editorial-workflow.js.map +0 -1
- package/dist/__tests__/hooks.test.d.ts +0 -2
- package/dist/__tests__/hooks.test.d.ts.map +0 -1
- package/dist/__tests__/hooks.test.js +0 -320
- package/dist/__tests__/hooks.test.js.map +0 -1
- package/dist/__tests__/mocks.d.ts +0 -75
- package/dist/__tests__/mocks.d.ts.map +0 -1
- package/dist/__tests__/mocks.js +0 -170
- package/dist/__tests__/mocks.js.map +0 -1
- package/dist/__tests__/observability.test.d.ts +0 -2
- package/dist/__tests__/observability.test.d.ts.map +0 -1
- package/dist/__tests__/observability.test.js +0 -233
- package/dist/__tests__/observability.test.js.map +0 -1
- package/dist/__tests__/openapi.test.d.ts +0 -2
- package/dist/__tests__/openapi.test.d.ts.map +0 -1
- package/dist/__tests__/openapi.test.js +0 -105
- package/dist/__tests__/openapi.test.js.map +0 -1
- package/dist/__tests__/parse-sort.test.d.ts +0 -2
- package/dist/__tests__/parse-sort.test.d.ts.map +0 -1
- package/dist/__tests__/parse-sort.test.js +0 -24
- package/dist/__tests__/parse-sort.test.js.map +0 -1
- package/dist/__tests__/preferences.test.d.ts +0 -2
- package/dist/__tests__/preferences.test.d.ts.map +0 -1
- package/dist/__tests__/preferences.test.js +0 -168
- package/dist/__tests__/preferences.test.js.map +0 -1
- package/dist/__tests__/router.test.d.ts +0 -2
- package/dist/__tests__/router.test.d.ts.map +0 -1
- package/dist/__tests__/router.test.js +0 -70
- package/dist/__tests__/router.test.js.map +0 -1
- package/dist/__tests__/search.test.d.ts +0 -2
- package/dist/__tests__/search.test.d.ts.map +0 -1
- package/dist/__tests__/search.test.js +0 -174
- package/dist/__tests__/search.test.js.map +0 -1
- package/dist/__tests__/upload-validation.test.d.ts +0 -2
- package/dist/__tests__/upload-validation.test.d.ts.map +0 -1
- package/dist/__tests__/upload-validation.test.js +0 -41
- package/dist/__tests__/upload-validation.test.js.map +0 -1
- package/dist/__tests__/where.test.d.ts +0 -2
- package/dist/__tests__/where.test.d.ts.map +0 -1
- package/dist/__tests__/where.test.js +0 -105
- package/dist/__tests__/where.test.js.map +0 -1
- package/dist/__tests__/workflow.test.d.ts +0 -2
- package/dist/__tests__/workflow.test.d.ts.map +0 -1
- package/dist/__tests__/workflow.test.js +0 -684
- package/dist/__tests__/workflow.test.js.map +0 -1
- package/dist/app-config-7G-3tF_I.d.cts +0 -2259
- package/dist/app-config-7G-3tF_I.d.ts +0 -2259
- package/dist/app-config-9hs8DRED.d.cts +0 -1718
- package/dist/app-config-9hs8DRED.d.ts +0 -1718
- package/dist/app-config-B3ByBjCN.d.cts +0 -2222
- package/dist/app-config-B3ByBjCN.d.ts +0 -2222
- package/dist/app-config-B5tYsZaH.d.cts +0 -2404
- package/dist/app-config-B5tYsZaH.d.ts +0 -2404
- package/dist/app-config-BEuyPktb.d.cts +0 -2556
- package/dist/app-config-BEuyPktb.d.ts +0 -2556
- package/dist/app-config-BIkjQWzU.d.cts +0 -2218
- package/dist/app-config-BIkjQWzU.d.ts +0 -2218
- package/dist/app-config-BcuZIpvL.d.cts +0 -1951
- package/dist/app-config-BcuZIpvL.d.ts +0 -1951
- package/dist/app-config-BfpeE3bF.d.cts +0 -2100
- package/dist/app-config-BfpeE3bF.d.ts +0 -2100
- package/dist/app-config-Bm9-2Am6.d.cts +0 -1875
- package/dist/app-config-Bm9-2Am6.d.ts +0 -1875
- package/dist/app-config-BqhrBrSM.d.cts +0 -1522
- package/dist/app-config-BqhrBrSM.d.ts +0 -1522
- package/dist/app-config-Bxg_DVxv.d.cts +0 -1413
- package/dist/app-config-Bxg_DVxv.d.ts +0 -1413
- package/dist/app-config-C0twGIaF.d.cts +0 -1597
- package/dist/app-config-C0twGIaF.d.ts +0 -1597
- package/dist/app-config-C0uxEU7Q.d.cts +0 -1874
- package/dist/app-config-C0uxEU7Q.d.ts +0 -1874
- package/dist/app-config-C3X5BAyK.d.cts +0 -1539
- package/dist/app-config-C3X5BAyK.d.ts +0 -1539
- package/dist/app-config-C9VJ6rTv.d.cts +0 -2092
- package/dist/app-config-C9VJ6rTv.d.ts +0 -2092
- package/dist/app-config-CBOn8IyZ.d.cts +0 -1838
- package/dist/app-config-CBOn8IyZ.d.ts +0 -1838
- package/dist/app-config-CCe-yq9q.d.cts +0 -2222
- package/dist/app-config-CCe-yq9q.d.ts +0 -2222
- package/dist/app-config-CJAGGPrk.d.cts +0 -1900
- package/dist/app-config-CJAGGPrk.d.ts +0 -1900
- package/dist/app-config-CPOs7THF.d.cts +0 -2217
- package/dist/app-config-CPOs7THF.d.ts +0 -2217
- package/dist/app-config-CYV70eoF.d.cts +0 -2100
- package/dist/app-config-CYV70eoF.d.ts +0 -2100
- package/dist/app-config-ChsrBB7p.d.cts +0 -2100
- package/dist/app-config-ChsrBB7p.d.ts +0 -2100
- package/dist/app-config-CiEDJm0e.d.cts +0 -1912
- package/dist/app-config-CiEDJm0e.d.ts +0 -1912
- package/dist/app-config-CstocO9M.d.cts +0 -1580
- package/dist/app-config-CstocO9M.d.ts +0 -1580
- package/dist/app-config-Ctp454zB.d.cts +0 -2214
- package/dist/app-config-Ctp454zB.d.ts +0 -2214
- package/dist/app-config-CwaU1de2.d.cts +0 -1868
- package/dist/app-config-CwaU1de2.d.ts +0 -1868
- package/dist/app-config-DCDh8Gbx.d.cts +0 -1926
- package/dist/app-config-DCDh8Gbx.d.ts +0 -1926
- package/dist/app-config-DCWinlNK.d.cts +0 -2091
- package/dist/app-config-DCWinlNK.d.ts +0 -2091
- package/dist/app-config-DIwvzbpe.d.cts +0 -1555
- package/dist/app-config-DIwvzbpe.d.ts +0 -1555
- package/dist/app-config-DJmNYgYh.d.cts +0 -2305
- package/dist/app-config-DJmNYgYh.d.ts +0 -2305
- package/dist/app-config-DO3laV58.d.cts +0 -2397
- package/dist/app-config-DO3laV58.d.ts +0 -2397
- package/dist/app-config-DVdSospO.d.cts +0 -1842
- package/dist/app-config-DVdSospO.d.ts +0 -1842
- package/dist/app-config-DZf_mmi9.d.cts +0 -2211
- package/dist/app-config-DZf_mmi9.d.ts +0 -2211
- package/dist/app-config-DbK2Tv6i.d.cts +0 -2080
- package/dist/app-config-DbK2Tv6i.d.ts +0 -2080
- package/dist/app-config-Dkndq5ni.d.cts +0 -1580
- package/dist/app-config-Dkndq5ni.d.ts +0 -1580
- package/dist/app-config-Dms6kvE-.d.cts +0 -2072
- package/dist/app-config-Dms6kvE-.d.ts +0 -2072
- package/dist/app-config-DqCipvSI.d.cts +0 -1411
- package/dist/app-config-DqCipvSI.d.ts +0 -1411
- package/dist/app-config-Dv5XACR4.d.cts +0 -2065
- package/dist/app-config-Dv5XACR4.d.ts +0 -2065
- package/dist/app-config-P-SF5nnR.d.cts +0 -1568
- package/dist/app-config-P-SF5nnR.d.ts +0 -1568
- package/dist/app-config-SkUoN5JU.d.cts +0 -2192
- package/dist/app-config-SkUoN5JU.d.ts +0 -2192
- package/dist/app-config-WzqpuZMr.d.cts +0 -2566
- package/dist/app-config-WzqpuZMr.d.ts +0 -2566
- package/dist/app-config-_kkj71CB.d.cts +0 -2010
- package/dist/app-config-_kkj71CB.d.ts +0 -2010
- package/dist/app-config-fEjRm1o9.d.cts +0 -2402
- package/dist/app-config-fEjRm1o9.d.ts +0 -2402
- package/dist/app-config-oU1EGHND.d.cts +0 -1538
- package/dist/app-config-oU1EGHND.d.ts +0 -1538
- package/dist/app-config-ouBRb6Bf.d.cts +0 -1716
- package/dist/app-config-ouBRb6Bf.d.ts +0 -1716
- package/dist/app-config-oz8H_MOX.d.cts +0 -2224
- package/dist/app-config-oz8H_MOX.d.ts +0 -2224
- package/dist/app-config-tITj_0sn.d.cts +0 -1926
- package/dist/app-config-tITj_0sn.d.ts +0 -1926
- package/dist/app-config-wnLtFu6c.d.cts +0 -1538
- package/dist/app-config-wnLtFu6c.d.ts +0 -1538
- package/dist/app-config-x-CnipcA.d.cts +0 -2072
- package/dist/app-config-x-CnipcA.d.ts +0 -2072
- package/dist/app.d.ts +0 -35
- package/dist/app.d.ts.map +0 -1
- package/dist/app.js +0 -164
- package/dist/app.js.map +0 -1
- package/dist/auth/access.d.ts +0 -5
- package/dist/auth/access.d.ts.map +0 -1
- package/dist/auth/access.js +0 -59
- package/dist/auth/access.js.map +0 -1
- package/dist/auth/jexl.d.ts +0 -13
- package/dist/auth/jexl.d.ts.map +0 -1
- package/dist/auth/jexl.js +0 -30
- package/dist/auth/jexl.js.map +0 -1
- package/dist/auth/lockout.d.ts +0 -11
- package/dist/auth/lockout.d.ts.map +0 -1
- package/dist/auth/lockout.js +0 -37
- package/dist/auth/lockout.js.map +0 -1
- package/dist/auth/password.d.ts +0 -10
- package/dist/auth/password.d.ts.map +0 -1
- package/dist/auth/password.js +0 -28
- package/dist/auth/password.js.map +0 -1
- package/dist/auth/sessions.d.ts +0 -39
- package/dist/auth/sessions.d.ts.map +0 -1
- package/dist/auth/sessions.js +0 -126
- package/dist/auth/sessions.js.map +0 -1
- package/dist/auth/token.d.ts +0 -23
- package/dist/auth/token.d.ts.map +0 -1
- package/dist/auth/token.js +0 -40
- package/dist/auth/token.js.map +0 -1
- package/dist/chunk-23NM4LDU.js +0 -2883
- package/dist/chunk-2TKDCCIR.js +0 -2622
- package/dist/chunk-2UXLA4YN.js +0 -3139
- package/dist/chunk-2WODKOUB.js +0 -1627
- package/dist/chunk-35NM2WPO.js +0 -1658
- package/dist/chunk-3CMG2BH2.js +0 -1618
- package/dist/chunk-3SFITPX4.js +0 -2628
- package/dist/chunk-3TRRTN6U.js +0 -3441
- package/dist/chunk-57FNM42D.js +0 -2392
- package/dist/chunk-5U2WRCNH.js +0 -3140
- package/dist/chunk-5ZIA5COH.js +0 -3414
- package/dist/chunk-6TWQ6GTD.js +0 -3480
- package/dist/chunk-AKYYGMFS.js +0 -3365
- package/dist/chunk-AQO4HI2Y.js +0 -3204
- package/dist/chunk-BAMX7YUC.js +0 -1815
- package/dist/chunk-BQV3QW3Y.js +0 -2588
- package/dist/chunk-CQVTQ67D.js +0 -2632
- package/dist/chunk-CUOPCOU2.js +0 -1644
- package/dist/chunk-DCY7QHRB.js +0 -1637
- package/dist/chunk-DFBLNYUH.js +0 -3402
- package/dist/chunk-EH3MJGB5.js +0 -2571
- package/dist/chunk-EJG6AMYB.js +0 -3537
- package/dist/chunk-ELHRRPKX.js +0 -2863
- package/dist/chunk-EOW4YMAV.js +0 -1637
- package/dist/chunk-G43REXPX.js +0 -3147
- package/dist/chunk-GFKBPBJJ.js +0 -3637
- package/dist/chunk-HRLSFTLR.js +0 -3061
- package/dist/chunk-JFA22YFB.js +0 -1625
- package/dist/chunk-K3ASMUKV.js +0 -2601
- package/dist/chunk-KEKOEAX6.js +0 -3139
- package/dist/chunk-L65PQYDP.js +0 -1536
- package/dist/chunk-LFGSRQLX.js +0 -3568
- package/dist/chunk-M3HKRN7E.js +0 -1665
- package/dist/chunk-MQZH7RQC.js +0 -1667
- package/dist/chunk-NNZRYF3U.js +0 -3537
- package/dist/chunk-PRQ2RF5C.js +0 -3485
- package/dist/chunk-PYE2JSY4.js +0 -3568
- package/dist/chunk-PZMDK3MH.js +0 -3203
- package/dist/chunk-QCXLDKZO.js +0 -3272
- package/dist/chunk-QTIAQBNH.js +0 -3097
- package/dist/chunk-ROECUARS.js +0 -2615
- package/dist/chunk-SM32ND5M.js +0 -3472
- package/dist/chunk-T2DGC4MD.js +0 -3008
- package/dist/chunk-T626OZMH.js +0 -2602
- package/dist/chunk-TEGRS6J7.js +0 -2609
- package/dist/chunk-TLU77TLE.js +0 -3203
- package/dist/chunk-UKUEKTAO.js +0 -513
- package/dist/chunk-VCYYBN5J.js +0 -1873
- package/dist/chunk-VM43G3IG.js +0 -506
- package/dist/chunk-VWJKFZQU.js +0 -3139
- package/dist/chunk-WF5A6PDJ.js +0 -1618
- package/dist/chunk-WVD7PORQ.js +0 -1672
- package/dist/chunk-XX7N64NL.js +0 -3550
- package/dist/chunk-XZLIBQSO.js +0 -2397
- package/dist/chunk-YEBCT77K.js +0 -3269
- package/dist/chunk-YSSHLGQ6.js +0 -3139
- package/dist/chunk-YXEKNN5X.js +0 -3085
- package/dist/chunk-Z7CFUYVP.js +0 -3653
- package/dist/chunk-ZISFMAEL.js +0 -3550
- package/dist/controllers/admin-auth.controller.d.ts +0 -71
- package/dist/controllers/admin-auth.controller.d.ts.map +0 -1
- package/dist/controllers/admin-auth.controller.js +0 -450
- package/dist/controllers/admin-auth.controller.js.map +0 -1
- package/dist/controllers/audit.controller.d.ts +0 -42
- package/dist/controllers/audit.controller.d.ts.map +0 -1
- package/dist/controllers/audit.controller.js +0 -149
- package/dist/controllers/audit.controller.js.map +0 -1
- package/dist/controllers/auth.controller.d.ts +0 -143
- package/dist/controllers/auth.controller.d.ts.map +0 -1
- package/dist/controllers/auth.controller.js +0 -572
- package/dist/controllers/auth.controller.js.map +0 -1
- package/dist/controllers/collection.controller.d.ts +0 -170
- package/dist/controllers/collection.controller.d.ts.map +0 -1
- package/dist/controllers/collection.controller.js +0 -1033
- package/dist/controllers/collection.controller.js.map +0 -1
- package/dist/controllers/global.controller.d.ts +0 -20
- package/dist/controllers/global.controller.d.ts.map +0 -1
- package/dist/controllers/global.controller.js +0 -182
- package/dist/controllers/global.controller.js.map +0 -1
- package/dist/controllers/media.controller.d.ts +0 -39
- package/dist/controllers/media.controller.d.ts.map +0 -1
- package/dist/controllers/media.controller.js +0 -178
- package/dist/controllers/media.controller.js.map +0 -1
- package/dist/controllers/preview.controller.d.ts +0 -37
- package/dist/controllers/preview.controller.d.ts.map +0 -1
- package/dist/controllers/preview.controller.js +0 -48
- package/dist/controllers/preview.controller.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/middleware/auth.d.ts +0 -19
- package/dist/middleware/auth.d.ts.map +0 -1
- package/dist/middleware/auth.js +0 -157
- package/dist/middleware/auth.js.map +0 -1
- package/dist/middleware/rate-limit.d.ts +0 -9
- package/dist/middleware/rate-limit.d.ts.map +0 -1
- package/dist/middleware/rate-limit.js +0 -75
- package/dist/middleware/rate-limit.js.map +0 -1
- package/dist/network.d.ts +0 -6
- package/dist/network.d.ts.map +0 -1
- package/dist/network.js +0 -70
- package/dist/network.js.map +0 -1
- package/dist/observability-CNM4QFE4.js +0 -34
- package/dist/observability-L5BORBB2.js +0 -34
- package/dist/observability.d.ts +0 -113
- package/dist/observability.d.ts.map +0 -1
- package/dist/observability.js +0 -497
- package/dist/observability.js.map +0 -1
- package/dist/router.d.ts +0 -8
- package/dist/router.d.ts.map +0 -1
- package/dist/router.js +0 -704
- package/dist/router.js.map +0 -1
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js.map +0 -1
- package/dist/services/audit.service.d.ts +0 -23
- package/dist/services/audit.service.d.ts.map +0 -1
- package/dist/services/audit.service.js +0 -39
- package/dist/services/audit.service.js.map +0 -1
- package/dist/services/defaults.service.d.ts +0 -8
- package/dist/services/defaults.service.d.ts.map +0 -1
- package/dist/services/defaults.service.js +0 -55
- package/dist/services/defaults.service.js.map +0 -1
- package/dist/services/email-template.d.ts +0 -46
- package/dist/services/email-template.d.ts.map +0 -1
- package/dist/services/email-template.js +0 -88
- package/dist/services/email-template.js.map +0 -1
- package/dist/services/email.service.d.ts +0 -34
- package/dist/services/email.service.d.ts.map +0 -1
- package/dist/services/email.service.js +0 -129
- package/dist/services/email.service.js.map +0 -1
- package/dist/services/media.service.d.ts +0 -20
- package/dist/services/media.service.d.ts.map +0 -1
- package/dist/services/media.service.js +0 -49
- package/dist/services/media.service.js.map +0 -1
- package/dist/services/population.service.d.ts +0 -20
- package/dist/services/population.service.d.ts.map +0 -1
- package/dist/services/population.service.js +0 -224
- package/dist/services/population.service.js.map +0 -1
- package/dist/types/access.d.ts +0 -48
- package/dist/types/access.d.ts.map +0 -1
- package/dist/types/access.js +0 -2
- package/dist/types/access.js.map +0 -1
- package/dist/types/adapters.d.ts +0 -152
- package/dist/types/adapters.d.ts.map +0 -1
- package/dist/types/adapters.js +0 -2
- package/dist/types/adapters.js.map +0 -1
- package/dist/types/admin-auth.d.ts +0 -132
- package/dist/types/admin-auth.d.ts.map +0 -1
- package/dist/types/admin-auth.js +0 -2
- package/dist/types/admin-auth.js.map +0 -1
- package/dist/types/admin.d.ts +0 -86
- package/dist/types/admin.d.ts.map +0 -1
- package/dist/types/admin.js +0 -2
- package/dist/types/admin.js.map +0 -1
- package/dist/types/app-config.d.ts +0 -279
- package/dist/types/app-config.d.ts.map +0 -1
- package/dist/types/app-config.js +0 -2
- package/dist/types/app-config.js.map +0 -1
- package/dist/types/documents.d.ts +0 -65
- package/dist/types/documents.d.ts.map +0 -1
- package/dist/types/documents.js +0 -2
- package/dist/types/documents.js.map +0 -1
- package/dist/types/hooks.d.ts +0 -122
- package/dist/types/hooks.d.ts.map +0 -1
- package/dist/types/hooks.js +0 -2
- package/dist/types/hooks.js.map +0 -1
- package/dist/types/index.d.ts +0 -13
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -13
- package/dist/types/index.js.map +0 -1
- package/dist/types/request.d.ts +0 -42
- package/dist/types/request.d.ts.map +0 -1
- package/dist/types/request.js +0 -2
- package/dist/types/request.js.map +0 -1
- package/dist/types/schema-config.d.ts +0 -443
- package/dist/types/schema-config.d.ts.map +0 -1
- package/dist/types/schema-config.js +0 -2
- package/dist/types/schema-config.js.map +0 -1
- package/dist/types/schema-core.d.ts +0 -628
- package/dist/types/schema-core.d.ts.map +0 -1
- package/dist/types/schema-core.js +0 -2
- package/dist/types/schema-core.js.map +0 -1
- package/dist/types/schema-inference.d.ts +0 -73
- package/dist/types/schema-inference.d.ts.map +0 -1
- package/dist/types/schema-inference.js +0 -2
- package/dist/types/schema-inference.js.map +0 -1
- package/dist/types/workflows.d.ts +0 -121
- package/dist/types/workflows.d.ts.map +0 -1
- package/dist/types/workflows.js +0 -7
- package/dist/types/workflows.js.map +0 -1
- package/dist/utils/access-control.d.ts +0 -35
- package/dist/utils/access-control.d.ts.map +0 -1
- package/dist/utils/access-control.js +0 -161
- package/dist/utils/access-control.js.map +0 -1
- package/dist/utils/admin-auth.d.ts +0 -5
- package/dist/utils/admin-auth.d.ts.map +0 -1
- package/dist/utils/admin-auth.js +0 -39
- package/dist/utils/admin-auth.js.map +0 -1
- package/dist/utils/block-references.d.ts +0 -10
- package/dist/utils/block-references.d.ts.map +0 -1
- package/dist/utils/block-references.js +0 -100
- package/dist/utils/block-references.js.map +0 -1
- package/dist/utils/collection-search.d.ts +0 -11
- package/dist/utils/collection-search.d.ts.map +0 -1
- package/dist/utils/collection-search.js +0 -204
- package/dist/utils/collection-search.js.map +0 -1
- package/dist/utils/config.d.ts +0 -8
- package/dist/utils/config.d.ts.map +0 -1
- package/dist/utils/config.js +0 -336
- package/dist/utils/config.js.map +0 -1
- package/dist/utils/hooks.d.ts +0 -41
- package/dist/utils/hooks.d.ts.map +0 -1
- package/dist/utils/hooks.js +0 -177
- package/dist/utils/hooks.js.map +0 -1
- package/dist/utils/openapi.d.ts +0 -6
- package/dist/utils/openapi.d.ts.map +0 -1
- package/dist/utils/openapi.js +0 -981
- package/dist/utils/openapi.js.map +0 -1
- package/dist/utils/parse-sort.d.ts +0 -43
- package/dist/utils/parse-sort.d.ts.map +0 -1
- package/dist/utils/parse-sort.js +0 -70
- package/dist/utils/parse-sort.js.map +0 -1
- package/dist/utils/parse-where.d.ts +0 -69
- package/dist/utils/parse-where.d.ts.map +0 -1
- package/dist/utils/parse-where.js +0 -202
- package/dist/utils/parse-where.js.map +0 -1
- package/dist/utils/readonly-db.d.ts +0 -9
- package/dist/utils/readonly-db.d.ts.map +0 -1
- package/dist/utils/readonly-db.js +0 -21
- package/dist/utils/readonly-db.js.map +0 -1
- package/dist/utils/swagger.d.ts +0 -11
- package/dist/utils/swagger.d.ts.map +0 -1
- package/dist/utils/swagger.js +0 -62
- package/dist/utils/swagger.js.map +0 -1
- package/dist/utils/upload-validation.d.ts +0 -23
- package/dist/utils/upload-validation.d.ts.map +0 -1
- package/dist/utils/upload-validation.js +0 -46
- package/dist/utils/upload-validation.js.map +0 -1
- package/dist/utils/where-sanitizer.d.ts +0 -10
- package/dist/utils/where-sanitizer.d.ts.map +0 -1
- package/dist/utils/where-sanitizer.js +0 -67
- package/dist/utils/where-sanitizer.js.map +0 -1
- package/dist/workflows.d.ts +0 -86
- package/dist/workflows.d.ts.map +0 -1
- package/dist/workflows.js +0 -405
- package/dist/workflows.js.map +0 -1
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import type { Block, Field } from "./schema-core.js";
|
|
2
|
-
export type Prettify<T> = {
|
|
3
|
-
[K in keyof T]: T[K];
|
|
4
|
-
};
|
|
5
|
-
type FieldValueType<F extends Field> = F["type"] extends "text" | "textarea" | "email" | "url" | "icon" | "date" | "datetime" | "time" | "select" | "radio" ? string : F["type"] extends "number" ? number : F["type"] extends "boolean" ? boolean : F["type"] extends "multiSelect" ? string[] : F["type"] extends "relationship" ? F extends {
|
|
6
|
-
hasMany: true;
|
|
7
|
-
} ? string[] : string : F["type"] extends "image" ? F extends {
|
|
8
|
-
hasMany: true;
|
|
9
|
-
} ? string[] : string : F["type"] extends "richText" | "json" ? Record<string, unknown> : F["type"] extends "object" ? F extends {
|
|
10
|
-
fields: infer SF extends readonly Field[];
|
|
11
|
-
} ? Prettify<InferDocShape<SF>> : Record<string, unknown> : F["type"] extends "array" ? F extends {
|
|
12
|
-
fields: infer SF extends readonly Field[];
|
|
13
|
-
} ? Array<Prettify<InferDocShape<SF>>> : unknown[] : F["type"] extends "blocks" ? F extends {
|
|
14
|
-
blocks: infer B extends readonly Block[];
|
|
15
|
-
} ? Array<InferBlocksUnion<B>> : Array<{
|
|
16
|
-
blockType: string;
|
|
17
|
-
} & Record<string, unknown>> : unknown;
|
|
18
|
-
type InferBlocksUnion<Blocks extends readonly Block[]> = Blocks extends readonly [
|
|
19
|
-
infer B extends Block,
|
|
20
|
-
...infer Rest extends readonly Block[]
|
|
21
|
-
] ? B["fields"] extends readonly Field[] ? ({
|
|
22
|
-
blockType: B["slug"];
|
|
23
|
-
} & Prettify<InferDocShape<B["fields"]>>) | InferBlocksUnion<Rest> : ({
|
|
24
|
-
blockType: B["slug"];
|
|
25
|
-
} & Record<string, unknown>) | InferBlocksUnion<Rest> : never;
|
|
26
|
-
type InferFieldEntry<F extends Field> = F extends {
|
|
27
|
-
type: "row";
|
|
28
|
-
fields: infer SF extends readonly Field[];
|
|
29
|
-
} ? InferDocShape<SF> : F extends {
|
|
30
|
-
type: "join";
|
|
31
|
-
} ? Record<never, never> : F extends {
|
|
32
|
-
name: infer N extends string;
|
|
33
|
-
required: true;
|
|
34
|
-
} ? {
|
|
35
|
-
[K in N]: FieldValueType<F>;
|
|
36
|
-
} : F extends {
|
|
37
|
-
name: infer N extends string;
|
|
38
|
-
} ? {
|
|
39
|
-
[K in N]?: FieldValueType<F>;
|
|
40
|
-
} : Record<never, never>;
|
|
41
|
-
export type InferDocShape<Fields extends readonly Field[]> = Fields extends readonly [] ? Record<never, never> : Fields extends readonly [infer Head extends Field, ...infer Tail extends readonly Field[]] ? InferFieldEntry<Head> & InferDocShape<Tail> : Record<string, unknown>;
|
|
42
|
-
export type SystemDocFields = {
|
|
43
|
-
createdAt?: string;
|
|
44
|
-
updatedAt?: string;
|
|
45
|
-
createdBy?: string;
|
|
46
|
-
updatedBy?: string;
|
|
47
|
-
};
|
|
48
|
-
export type AuthDocFields = {
|
|
49
|
-
email: string;
|
|
50
|
-
password?: string;
|
|
51
|
-
roles?: string[];
|
|
52
|
-
};
|
|
53
|
-
export type UploadDocFields = {
|
|
54
|
-
filename: string;
|
|
55
|
-
filesize?: number;
|
|
56
|
-
mimeType: string;
|
|
57
|
-
url: string;
|
|
58
|
-
width?: number;
|
|
59
|
-
height?: number;
|
|
60
|
-
focalPoint?: {
|
|
61
|
-
x: number;
|
|
62
|
-
y: number;
|
|
63
|
-
};
|
|
64
|
-
blurhash?: string;
|
|
65
|
-
sizes?: Record<string, {
|
|
66
|
-
filename?: string;
|
|
67
|
-
url?: string;
|
|
68
|
-
width?: number;
|
|
69
|
-
height?: number;
|
|
70
|
-
}>;
|
|
71
|
-
};
|
|
72
|
-
export {};
|
|
73
|
-
//# sourceMappingURL=schema-inference.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema-inference.d.ts","sourceRoot":"","sources":["../../src/types/schema-inference.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema-inference.js","sourceRoot":"","sources":["../../src/types/schema-inference.ts"],"names":[],"mappings":""}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import type { DatabaseAdapter } from "./adapters.js";
|
|
2
|
-
import type { AuthenticatedUser, HookRequestContext } from "./request.js";
|
|
3
|
-
export declare const LIFECYCLE_EVENT_NAMES: readonly ["revision.created", "workflow.transitioned", "entry.published", "entry.unpublished"];
|
|
4
|
-
export type LifecycleEventName = (typeof LIFECYCLE_EVENT_NAMES)[number];
|
|
5
|
-
export interface WorkflowState {
|
|
6
|
-
/** Stable machine-readable state key. */
|
|
7
|
-
name: string;
|
|
8
|
-
/** Label rendered in the Admin UI. */
|
|
9
|
-
label: string;
|
|
10
|
-
/** Marks the state whose revision is visible to public readers. */
|
|
11
|
-
published?: boolean;
|
|
12
|
-
/** Optional visual tone used by the Admin UI. */
|
|
13
|
-
color?: "neutral" | "warning" | "success" | "danger" | "info";
|
|
14
|
-
}
|
|
15
|
-
export interface WorkflowTransition {
|
|
16
|
-
/** Stable transition key used by the REST and SDK APIs. */
|
|
17
|
-
name: string;
|
|
18
|
-
label: string;
|
|
19
|
-
from: string | string[];
|
|
20
|
-
to: string;
|
|
21
|
-
/** Every listed capability is required. */
|
|
22
|
-
requiredCapabilities?: string[];
|
|
23
|
-
/** Require a non-empty comment when performing the transition. */
|
|
24
|
-
requireComment?: boolean;
|
|
25
|
-
/** Remove the public snapshot after this transition commits. */
|
|
26
|
-
unpublish?: boolean;
|
|
27
|
-
}
|
|
28
|
-
export interface WorkflowRole {
|
|
29
|
-
/** Existing user role value, for example `editor` or `publisher`. */
|
|
30
|
-
role: string;
|
|
31
|
-
capabilities: string[];
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Configuration for a collection's editorial workflow: the states a document
|
|
35
|
-
* can be in, the transitions between them, and the roles allowed to perform
|
|
36
|
-
* each. Attach it to a collection's `workflow`, or build one with
|
|
37
|
-
* `definePublishingWorkflow`.
|
|
38
|
-
*/
|
|
39
|
-
export interface WorkflowConfig<TDoc extends object = Record<string, unknown>> {
|
|
40
|
-
/** The state every new document starts in, e.g. `"draft"`. */
|
|
41
|
-
initialState: string;
|
|
42
|
-
/** State used for a new working revision created from published content. */
|
|
43
|
-
draftState?: string;
|
|
44
|
-
/** All states a document can occupy. Exactly one should be marked `published`. */
|
|
45
|
-
states: WorkflowState[];
|
|
46
|
-
/** The allowed moves between states, each with its own capability and comment rules. */
|
|
47
|
-
transitions: WorkflowTransition[];
|
|
48
|
-
/** Maps values in `user.roles` to workflow capabilities. */
|
|
49
|
-
roles?: WorkflowRole[];
|
|
50
|
-
/** Server-side hooks that run around every transition. */
|
|
51
|
-
hooks?: {
|
|
52
|
-
/** Runs before a transition commits — throw to validate or block the move. */
|
|
53
|
-
beforeTransition?: CollectionBeforeTransitionHook<TDoc>[];
|
|
54
|
-
/** Runs after a transition commits — trigger notifications or downstream work. */
|
|
55
|
-
afterTransition?: CollectionAfterTransitionHook<TDoc>[];
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
export interface WorkflowMetadata {
|
|
59
|
-
/** The document's current workflow state, e.g. `"draft"` or `"published"`. */
|
|
60
|
-
state: string;
|
|
61
|
-
/** Revision counter, incremented on every committed transition. */
|
|
62
|
-
revision: number;
|
|
63
|
-
/** Revision number currently exposed as the public snapshot, once published. */
|
|
64
|
-
publishedRevision?: number;
|
|
65
|
-
/** ISO timestamp of the most recent publish. */
|
|
66
|
-
publishedAt?: string;
|
|
67
|
-
/** Id of the user who last published this document. */
|
|
68
|
-
publishedBy?: string;
|
|
69
|
-
/** Transitions currently allowed for the requesting user. Response-only. */
|
|
70
|
-
availableTransitions?: string[];
|
|
71
|
-
}
|
|
72
|
-
export interface WorkflowTransitionContext<TDoc extends object = Record<string, unknown>> {
|
|
73
|
-
/** The transition being performed. */
|
|
74
|
-
transition: WorkflowTransition;
|
|
75
|
-
/** State the document is moving out of. */
|
|
76
|
-
from: string;
|
|
77
|
-
/** State the document is moving into. */
|
|
78
|
-
to: string;
|
|
79
|
-
/** The document as it stands before the transition commits. */
|
|
80
|
-
doc: TDoc;
|
|
81
|
-
/** The user performing the transition, when the request is authenticated. */
|
|
82
|
-
user?: AuthenticatedUser;
|
|
83
|
-
/** Comment supplied with the transition; required when `requireComment` is set. */
|
|
84
|
-
comment?: string;
|
|
85
|
-
/** Request context for the transition. */
|
|
86
|
-
req: HookRequestContext;
|
|
87
|
-
/** Transaction-scoped database adapter for reads and writes inside the hook. */
|
|
88
|
-
db: DatabaseAdapter;
|
|
89
|
-
}
|
|
90
|
-
export type CollectionBeforeTransitionHook<TDoc extends object = Record<string, unknown>> = (args: WorkflowTransitionContext<TDoc>) => void | Promise<void>;
|
|
91
|
-
export type CollectionAfterTransitionHook<TDoc extends object = Record<string, unknown>> = (args: WorkflowTransitionContext<TDoc> & {
|
|
92
|
-
event: LifecycleEvent;
|
|
93
|
-
}) => void | Promise<void>;
|
|
94
|
-
export interface LifecycleEvent<TPayload = Record<string, unknown>> {
|
|
95
|
-
/** Unique id for this event. */
|
|
96
|
-
id: string;
|
|
97
|
-
/** The lifecycle event name, e.g. `"workflow.transitioned"` or `"entry.published"`. */
|
|
98
|
-
name: LifecycleEventName;
|
|
99
|
-
/** Slug of the collection the event is about. */
|
|
100
|
-
collection: string;
|
|
101
|
-
/** Id of the document the event is about. */
|
|
102
|
-
documentId: string;
|
|
103
|
-
/** ISO timestamp of when the event occurred. */
|
|
104
|
-
occurredAt: string;
|
|
105
|
-
/** Id of the user who triggered the event, when known. */
|
|
106
|
-
actorId?: string;
|
|
107
|
-
/** Event-specific data, such as the transition name and affected revision. */
|
|
108
|
-
payload: TPayload;
|
|
109
|
-
/** Number of delivery attempts made so far. */
|
|
110
|
-
attempts: number;
|
|
111
|
-
/** Current delivery status as the dispatcher works through the queue. */
|
|
112
|
-
status: "pending" | "processing" | "delivered" | "failed";
|
|
113
|
-
/** ISO timestamp of the next delivery retry, while pending. */
|
|
114
|
-
nextAttemptAt?: string;
|
|
115
|
-
/** ISO timestamp of successful delivery. */
|
|
116
|
-
deliveredAt?: string;
|
|
117
|
-
/** Message from the most recent failed delivery attempt. */
|
|
118
|
-
lastError?: string;
|
|
119
|
-
}
|
|
120
|
-
export type LifecycleEventHandler = (event: LifecycleEvent) => void | Promise<void>;
|
|
121
|
-
//# sourceMappingURL=workflows.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../src/types/workflows.ts"],"names":[],"mappings":"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"}
|
package/dist/types/workflows.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/types/workflows.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,kBAAkB;IAClB,uBAAuB;IACvB,iBAAiB;IACjB,mBAAmB;CACX,CAAC"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import type { HookRequestContext, Field, DyrectedConfig, AuthenticatedUser } from "../types/index.js";
|
|
2
|
-
import type { AccessFunctionArgs, AccessRule } from "../types/access.js";
|
|
3
|
-
type RequestLike = {
|
|
4
|
-
query: () => Record<string, string>;
|
|
5
|
-
header: () => Record<string, string>;
|
|
6
|
-
raw?: Request;
|
|
7
|
-
};
|
|
8
|
-
type AccessArgs<TDoc extends object = Record<string, unknown>> = AccessFunctionArgs<TDoc> & {
|
|
9
|
-
id?: string;
|
|
10
|
-
};
|
|
11
|
-
export declare function toHookRequestContext(req: RequestLike): HookRequestContext;
|
|
12
|
-
export declare function resolveBooleanAccess<TDoc extends object = Record<string, unknown>>(config: DyrectedConfig, access: AccessRule<TDoc> | undefined | null, args: AccessArgs<TDoc>): Promise<boolean>;
|
|
13
|
-
export declare function matchesAccessConstraint(config: DyrectedConfig, collection: string, id: string, constraint: Record<string, unknown>): Promise<boolean>;
|
|
14
|
-
export declare function resolveCollectionAccess<TDoc extends object = Record<string, unknown>>(config: DyrectedConfig, collection: string, action: "read" | "create" | "update" | "delete", access: AccessRule<TDoc> | undefined | null, args: AccessArgs<TDoc> & {
|
|
15
|
-
id?: string;
|
|
16
|
-
}): Promise<{
|
|
17
|
-
allowed: boolean;
|
|
18
|
-
constraint?: Record<string, unknown>;
|
|
19
|
-
}>;
|
|
20
|
-
type FieldAccessContext = {
|
|
21
|
-
config: DyrectedConfig;
|
|
22
|
-
fields: Field[];
|
|
23
|
-
user: AuthenticatedUser | undefined;
|
|
24
|
-
req: HookRequestContext;
|
|
25
|
-
doc?: Record<string, unknown>;
|
|
26
|
-
data?: Record<string, unknown>;
|
|
27
|
-
id?: string;
|
|
28
|
-
/** Which write is being checked. `create` uses the field's `create` rule (falling back to `update`); anything else uses `update`. Defaults to `update`. */
|
|
29
|
-
operation?: "create" | "update";
|
|
30
|
-
};
|
|
31
|
-
export declare function applyFieldReadAccess(context: FieldAccessContext, doc: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
32
|
-
export declare function applyFieldWriteAccess(context: FieldAccessContext, data: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
33
|
-
export declare function mergeWhereConstraint(where: Record<string, unknown> | undefined, constraint: Record<string, unknown>): Record<string, unknown>;
|
|
34
|
-
export {};
|
|
35
|
-
//# sourceMappingURL=access-control.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"access-control.d.ts","sourceRoot":"","sources":["../../src/utils/access-control.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
import { resolveAccess } from "../auth/access.js";
|
|
2
|
-
export function toHookRequestContext(req) {
|
|
3
|
-
return {
|
|
4
|
-
query: req.query(),
|
|
5
|
-
headers: req.header(),
|
|
6
|
-
raw: req.raw,
|
|
7
|
-
};
|
|
8
|
-
}
|
|
9
|
-
export async function resolveBooleanAccess(config, access, args) {
|
|
10
|
-
const result = await resolveAccess(config, access, args);
|
|
11
|
-
if (result === undefined)
|
|
12
|
-
return true;
|
|
13
|
-
return typeof result === "boolean" ? result : false;
|
|
14
|
-
}
|
|
15
|
-
export async function matchesAccessConstraint(config, collection, id, constraint) {
|
|
16
|
-
if (!config.db)
|
|
17
|
-
return false;
|
|
18
|
-
const match = await config.db.find({
|
|
19
|
-
collection,
|
|
20
|
-
where: { AND: [{ id: { equals: id } }, constraint] },
|
|
21
|
-
limit: 1,
|
|
22
|
-
});
|
|
23
|
-
return match.total > 0;
|
|
24
|
-
}
|
|
25
|
-
export async function resolveCollectionAccess(config, collection, action, access, args) {
|
|
26
|
-
const result = await resolveAccess(config, access, args);
|
|
27
|
-
if (result === undefined)
|
|
28
|
-
return { allowed: true };
|
|
29
|
-
if (typeof result === "boolean")
|
|
30
|
-
return { allowed: result };
|
|
31
|
-
if (action === "read" && !args.id) {
|
|
32
|
-
return { allowed: true, constraint: result };
|
|
33
|
-
}
|
|
34
|
-
if (!args.id) {
|
|
35
|
-
return { allowed: false };
|
|
36
|
-
}
|
|
37
|
-
return {
|
|
38
|
-
allowed: await matchesAccessConstraint(config, collection, args.id, result),
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
function resolveFieldAccessId(context) {
|
|
42
|
-
const candidate = context.id ?? context.doc?.id ?? context.data?.id;
|
|
43
|
-
return typeof candidate === "string" && candidate.length > 0
|
|
44
|
-
? candidate
|
|
45
|
-
: undefined;
|
|
46
|
-
}
|
|
47
|
-
export async function applyFieldReadAccess(context, doc) {
|
|
48
|
-
if (!doc || typeof doc !== "object")
|
|
49
|
-
return doc;
|
|
50
|
-
const result = { ...doc };
|
|
51
|
-
for (const field of context.fields) {
|
|
52
|
-
if (field.type === "row" && field.fields) {
|
|
53
|
-
Object.assign(result, await applyFieldReadAccess({ ...context, fields: field.fields }, result));
|
|
54
|
-
continue;
|
|
55
|
-
}
|
|
56
|
-
if (!field.name)
|
|
57
|
-
continue;
|
|
58
|
-
const value = result[field.name];
|
|
59
|
-
const canRead = await resolveBooleanAccess(context.config, field.access?.read, {
|
|
60
|
-
user: context.user,
|
|
61
|
-
req: context.req,
|
|
62
|
-
doc: context.doc,
|
|
63
|
-
data: context.data,
|
|
64
|
-
id: resolveFieldAccessId(context),
|
|
65
|
-
});
|
|
66
|
-
if (!canRead) {
|
|
67
|
-
delete result[field.name];
|
|
68
|
-
continue;
|
|
69
|
-
}
|
|
70
|
-
if (value === undefined || value === null)
|
|
71
|
-
continue;
|
|
72
|
-
if (field.type === "object" &&
|
|
73
|
-
field.fields &&
|
|
74
|
-
typeof value === "object" &&
|
|
75
|
-
!Array.isArray(value)) {
|
|
76
|
-
result[field.name] = await applyFieldReadAccess({ ...context, fields: field.fields }, value);
|
|
77
|
-
continue;
|
|
78
|
-
}
|
|
79
|
-
if (field.type === "array" && field.fields && Array.isArray(value)) {
|
|
80
|
-
const childFields = field.fields;
|
|
81
|
-
result[field.name] = await Promise.all(value.map((item) => typeof item === "object" && item !== null
|
|
82
|
-
? applyFieldReadAccess({ ...context, fields: childFields }, item)
|
|
83
|
-
: item));
|
|
84
|
-
continue;
|
|
85
|
-
}
|
|
86
|
-
if (field.type === "blocks" && field.blocks && Array.isArray(value)) {
|
|
87
|
-
result[field.name] = await Promise.all(value.map(async (item) => {
|
|
88
|
-
if (typeof item !== "object" || item === null)
|
|
89
|
-
return item;
|
|
90
|
-
const typedItem = item;
|
|
91
|
-
const block = field.blocks?.find((candidate) => candidate.slug === typedItem.blockType);
|
|
92
|
-
if (!block || !block.fields)
|
|
93
|
-
return item;
|
|
94
|
-
return applyFieldReadAccess({ ...context, fields: block.fields }, typedItem);
|
|
95
|
-
}));
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
return result;
|
|
99
|
-
}
|
|
100
|
-
export async function applyFieldWriteAccess(context, data) {
|
|
101
|
-
if (!data || typeof data !== "object")
|
|
102
|
-
return data;
|
|
103
|
-
const result = { ...data };
|
|
104
|
-
for (const field of context.fields) {
|
|
105
|
-
if (field.type === "row" && field.fields) {
|
|
106
|
-
Object.assign(result, await applyFieldWriteAccess({ ...context, fields: field.fields }, result));
|
|
107
|
-
continue;
|
|
108
|
-
}
|
|
109
|
-
if (!field.name || !(field.name in result))
|
|
110
|
-
continue;
|
|
111
|
-
// On create, the field's `create` rule governs the write, falling back to
|
|
112
|
-
// `update` when it is not set. On update (the default), `update` governs.
|
|
113
|
-
const writeRule = context.operation === "create"
|
|
114
|
-
? (field.access?.create ?? field.access?.update)
|
|
115
|
-
: field.access?.update;
|
|
116
|
-
const canWrite = await resolveBooleanAccess(context.config, writeRule, {
|
|
117
|
-
user: context.user,
|
|
118
|
-
req: context.req,
|
|
119
|
-
doc: context.doc,
|
|
120
|
-
data: context.data,
|
|
121
|
-
id: resolveFieldAccessId(context),
|
|
122
|
-
});
|
|
123
|
-
if (!canWrite) {
|
|
124
|
-
delete result[field.name];
|
|
125
|
-
continue;
|
|
126
|
-
}
|
|
127
|
-
const value = result[field.name];
|
|
128
|
-
if (value === undefined || value === null)
|
|
129
|
-
continue;
|
|
130
|
-
if (field.type === "object" &&
|
|
131
|
-
field.fields &&
|
|
132
|
-
typeof value === "object" &&
|
|
133
|
-
!Array.isArray(value)) {
|
|
134
|
-
result[field.name] = await applyFieldWriteAccess({ ...context, fields: field.fields }, value);
|
|
135
|
-
continue;
|
|
136
|
-
}
|
|
137
|
-
if (field.type === "array" && field.fields && Array.isArray(value)) {
|
|
138
|
-
const childFields = field.fields;
|
|
139
|
-
result[field.name] = await Promise.all(value.map((item) => typeof item === "object" && item !== null
|
|
140
|
-
? applyFieldWriteAccess({ ...context, fields: childFields }, item)
|
|
141
|
-
: item));
|
|
142
|
-
continue;
|
|
143
|
-
}
|
|
144
|
-
if (field.type === "blocks" && field.blocks && Array.isArray(value)) {
|
|
145
|
-
result[field.name] = await Promise.all(value.map(async (item) => {
|
|
146
|
-
if (typeof item !== "object" || item === null)
|
|
147
|
-
return item;
|
|
148
|
-
const typedItem = item;
|
|
149
|
-
const block = field.blocks?.find((candidate) => candidate.slug === typedItem.blockType);
|
|
150
|
-
if (!block || !block.fields)
|
|
151
|
-
return item;
|
|
152
|
-
return applyFieldWriteAccess({ ...context, fields: block.fields }, typedItem);
|
|
153
|
-
}));
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
return result;
|
|
157
|
-
}
|
|
158
|
-
export function mergeWhereConstraint(where, constraint) {
|
|
159
|
-
return where ? { AND: [where, constraint] } : constraint;
|
|
160
|
-
}
|
|
161
|
-
//# sourceMappingURL=access-control.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"access-control.js","sourceRoot":"","sources":["../../src/utils/access-control.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { AdminAuthConfig, CollectionConfig, DyrectedConfig, PublicAdminAuthConfig } from "../types/index.js";
|
|
2
|
-
export declare function getAdminAuthCollection(config: Pick<DyrectedConfig, "collections" | "adminAuth">): CollectionConfig | null;
|
|
3
|
-
export declare function resolveAdminAuthCollection(collections: CollectionConfig[], collectionSlug?: string): CollectionConfig | undefined;
|
|
4
|
-
export declare function getPublicAdminAuthConfig(adminAuth?: AdminAuthConfig, collections?: CollectionConfig[]): PublicAdminAuthConfig;
|
|
5
|
-
//# sourceMappingURL=admin-auth.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin-auth.d.ts","sourceRoot":"","sources":["../../src/utils/admin-auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EAEtB,MAAM,mBAAmB,CAAC;AAE3B,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,aAAa,GAAG,WAAW,CAAC,GACxD,gBAAgB,GAAG,IAAI,CAGzB;AAED,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,gBAAgB,EAAE,EAC/B,cAAc,CAAC,EAAE,MAAM,GACtB,gBAAgB,GAAG,SAAS,CAS9B;AAED,wBAAgB,wBAAwB,CACtC,SAAS,CAAC,EAAE,eAAe,EAC3B,WAAW,CAAC,EAAE,gBAAgB,EAAE,GAC/B,qBAAqB,CAiBvB"}
|
package/dist/utils/admin-auth.js
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
export function getAdminAuthCollection(config) {
|
|
2
|
-
const adminCollection = resolveAdminAuthCollection(config.collections, config.adminAuth?.collectionSlug);
|
|
3
|
-
return adminCollection ?? null;
|
|
4
|
-
}
|
|
5
|
-
export function resolveAdminAuthCollection(collections, collectionSlug) {
|
|
6
|
-
const adminsCollection = collections.find((collection) => collection.slug === "__admins");
|
|
7
|
-
if (adminsCollection)
|
|
8
|
-
return adminsCollection;
|
|
9
|
-
if (collectionSlug) {
|
|
10
|
-
const requestedCollection = collections.find((collection) => collection.slug === collectionSlug);
|
|
11
|
-
if (requestedCollection)
|
|
12
|
-
return requestedCollection;
|
|
13
|
-
}
|
|
14
|
-
return collections.find((collection) => collection.auth);
|
|
15
|
-
}
|
|
16
|
-
export function getPublicAdminAuthConfig(adminAuth, collections) {
|
|
17
|
-
const providers = (adminAuth?.providers ?? []).map((provider) => ({
|
|
18
|
-
id: provider.id,
|
|
19
|
-
type: provider.type,
|
|
20
|
-
displayName: provider.displayName || humanizeProviderName(provider.id, provider.type),
|
|
21
|
-
autoRedirect: provider.autoRedirect,
|
|
22
|
-
}));
|
|
23
|
-
const resolvedCollectionSlug = collections
|
|
24
|
-
? resolveAdminAuthCollection(collections, adminAuth?.collectionSlug)?.slug
|
|
25
|
-
: adminAuth?.collectionSlug;
|
|
26
|
-
return {
|
|
27
|
-
mode: adminAuth?.mode ?? "local",
|
|
28
|
-
collectionSlug: resolvedCollectionSlug,
|
|
29
|
-
provisioningMode: adminAuth?.provisioningMode,
|
|
30
|
-
providers,
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
function humanizeProviderName(id, type) {
|
|
34
|
-
const cleaned = id.replace(/[-_]+/g, " ").trim();
|
|
35
|
-
if (!cleaned)
|
|
36
|
-
return type.toUpperCase();
|
|
37
|
-
return cleaned.replace(/\b\w/g, (char) => char.toUpperCase());
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=admin-auth.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin-auth.js","sourceRoot":"","sources":["../../src/utils/admin-auth.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,sBAAsB,CACpC,MAAyD;IAEzD,MAAM,eAAe,GAAG,0BAA0B,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACzG,OAAO,eAAe,IAAI,IAAI,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,WAA+B,EAC/B,cAAuB;IAEvB,MAAM,gBAAgB,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IAC1F,IAAI,gBAAgB;QAAE,OAAO,gBAAgB,CAAC;IAC9C,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,mBAAmB,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;QACjG,IAAI,mBAAmB;YAAE,OAAO,mBAAmB,CAAC;IACtD,CAAC;IAED,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,SAA2B,EAC3B,WAAgC;IAEhC,MAAM,SAAS,GAA8B,CAAC,SAAS,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC3F,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,oBAAoB,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC;QACrF,YAAY,EAAE,QAAQ,CAAC,YAAY;KACpC,CAAC,CAAC,CAAC;IACJ,MAAM,sBAAsB,GAAG,WAAW;QACxC,CAAC,CAAC,0BAA0B,CAAC,WAAW,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,IAAI;QAC1E,CAAC,CAAC,SAAS,EAAE,cAAc,CAAC;IAE9B,OAAO;QACL,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,OAAO;QAChC,cAAc,EAAE,sBAAsB;QACtC,gBAAgB,EAAE,SAAS,EAAE,gBAAgB;QAC7C,SAAS;KACV,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,EAAU,EAAE,IAAqC;IAC7E,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACjD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IACxC,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { Block, CollectionConfig, DyrectedConfig, GlobalConfig } from "../types/index.js";
|
|
2
|
-
type SchemaFragment = {
|
|
3
|
-
blocks?: Block[];
|
|
4
|
-
collections?: CollectionConfig[];
|
|
5
|
-
globals?: GlobalConfig[];
|
|
6
|
-
};
|
|
7
|
-
export declare function normalizeSchemaFragment<T extends SchemaFragment>(fragment: T): T;
|
|
8
|
-
export declare function mergeDynamicConfig(baseConfig: DyrectedConfig, dynamic: Awaited<ReturnType<NonNullable<DyrectedConfig["onSchemaFetch"]>>>): DyrectedConfig;
|
|
9
|
-
export {};
|
|
10
|
-
//# sourceMappingURL=block-references.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"block-references.d.ts","sourceRoot":"","sources":["../../src/utils/block-references.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,gBAAgB,EAChB,cAAc,EAEd,YAAY,EACb,MAAM,mBAAmB,CAAC;AAE3B,KAAK,cAAc,GAAG;IACpB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACjC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;CAC1B,CAAC;AAgGF,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,cAAc,EAC9D,QAAQ,EAAE,CAAC,GACV,CAAC,CAyBH;AAED,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,cAAc,EAC1B,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GACzE,cAAc,CAsBhB"}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
function mergeUniqueBlocks(blocks) {
|
|
2
|
-
const seen = new Map();
|
|
3
|
-
for (const block of blocks) {
|
|
4
|
-
const existing = seen.get(block.slug);
|
|
5
|
-
if (existing && existing !== block) {
|
|
6
|
-
throw new Error(`Duplicate block slug "${block.slug}" found in the reusable block registry. Block slugs must be unique.`);
|
|
7
|
-
}
|
|
8
|
-
if (!existing)
|
|
9
|
-
seen.set(block.slug, block);
|
|
10
|
-
}
|
|
11
|
-
return Array.from(seen.values());
|
|
12
|
-
}
|
|
13
|
-
function buildRegistry(blocks) {
|
|
14
|
-
return new Map(blocks.map((block) => [block.slug, block]));
|
|
15
|
-
}
|
|
16
|
-
function resolveField(field, registry, blockCache) {
|
|
17
|
-
const next = { ...field };
|
|
18
|
-
if (next.fields) {
|
|
19
|
-
next.fields = next.fields.map((child) => resolveField(child, registry, blockCache));
|
|
20
|
-
}
|
|
21
|
-
if (next.type !== "blocks")
|
|
22
|
-
return next;
|
|
23
|
-
const hasInlineBlocks = Array.isArray(next.blocks) && next.blocks.length > 0;
|
|
24
|
-
const hasReferences = Array.isArray(next.blockReferences) && next.blockReferences.length > 0;
|
|
25
|
-
if (hasInlineBlocks && hasReferences) {
|
|
26
|
-
throw new Error(`Blocks field "${next.name ?? "(unnamed)"}" cannot define both "blocks" and "blockReferences". Use one or the other.`);
|
|
27
|
-
}
|
|
28
|
-
if (hasReferences) {
|
|
29
|
-
next.blocks = next.blockReferences.map((slug) => {
|
|
30
|
-
const block = registry.get(slug);
|
|
31
|
-
if (!block) {
|
|
32
|
-
throw new Error(`Unknown block reference "${slug}" on blocks field "${next.name ?? "(unnamed)"}". Add it to defineConfig({ blocks: [...] }).`);
|
|
33
|
-
}
|
|
34
|
-
return resolveBlock(block, registry, blockCache);
|
|
35
|
-
});
|
|
36
|
-
return next;
|
|
37
|
-
}
|
|
38
|
-
if (hasInlineBlocks) {
|
|
39
|
-
next.blocks = next.blocks.map((block) => resolveBlock(block, registry, blockCache));
|
|
40
|
-
}
|
|
41
|
-
return next;
|
|
42
|
-
}
|
|
43
|
-
function resolveBlock(block, registry, blockCache) {
|
|
44
|
-
const cached = blockCache.get(block);
|
|
45
|
-
if (cached)
|
|
46
|
-
return cached;
|
|
47
|
-
const resolved = {
|
|
48
|
-
...block,
|
|
49
|
-
fields: [],
|
|
50
|
-
};
|
|
51
|
-
blockCache.set(block, resolved);
|
|
52
|
-
resolved.fields = block.fields.map((field) => resolveField(field, registry, blockCache));
|
|
53
|
-
return resolved;
|
|
54
|
-
}
|
|
55
|
-
function resolveFields(fields, registry, blockCache) {
|
|
56
|
-
return fields.map((field) => resolveField(field, registry, blockCache));
|
|
57
|
-
}
|
|
58
|
-
export function normalizeSchemaFragment(fragment) {
|
|
59
|
-
const reusableBlocks = mergeUniqueBlocks(fragment.blocks ?? []);
|
|
60
|
-
const registry = buildRegistry(reusableBlocks);
|
|
61
|
-
const blockCache = new WeakMap();
|
|
62
|
-
const resolvedBlocks = reusableBlocks.map((block) => resolveBlock(block, registry, blockCache));
|
|
63
|
-
const resolvedCollections = (fragment.collections ?? []).map((collection) => ({
|
|
64
|
-
...collection,
|
|
65
|
-
fields: resolveFields(collection.fields ?? [], registry, blockCache),
|
|
66
|
-
}));
|
|
67
|
-
const resolvedGlobals = (fragment.globals ?? []).map((global) => ({
|
|
68
|
-
...global,
|
|
69
|
-
fields: resolveFields(global.fields ?? [], registry, blockCache),
|
|
70
|
-
}));
|
|
71
|
-
return {
|
|
72
|
-
...fragment,
|
|
73
|
-
...(fragment.blocks ? { blocks: resolvedBlocks } : {}),
|
|
74
|
-
...(fragment.collections ? { collections: resolvedCollections } : {}),
|
|
75
|
-
...(fragment.globals ? { globals: resolvedGlobals } : {}),
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
export function mergeDynamicConfig(baseConfig, dynamic) {
|
|
79
|
-
const normalizedDynamic = normalizeSchemaFragment({
|
|
80
|
-
...dynamic,
|
|
81
|
-
blocks: [...(baseConfig.blocks ?? []), ...(dynamic.blocks ?? [])],
|
|
82
|
-
});
|
|
83
|
-
return {
|
|
84
|
-
...baseConfig,
|
|
85
|
-
...(normalizedDynamic.blocks ? { blocks: normalizedDynamic.blocks } : {}),
|
|
86
|
-
...(dynamic.admin
|
|
87
|
-
? { admin: { ...baseConfig.admin, ...dynamic.admin } }
|
|
88
|
-
: {}),
|
|
89
|
-
...(dynamic.adminAuth
|
|
90
|
-
? { adminAuth: { ...baseConfig.adminAuth, ...dynamic.adminAuth } }
|
|
91
|
-
: {}),
|
|
92
|
-
collections: normalizedDynamic.collections
|
|
93
|
-
? [...baseConfig.collections, ...normalizedDynamic.collections]
|
|
94
|
-
: baseConfig.collections,
|
|
95
|
-
globals: normalizedDynamic.globals
|
|
96
|
-
? [...baseConfig.globals, ...normalizedDynamic.globals]
|
|
97
|
-
: baseConfig.globals,
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
//# sourceMappingURL=block-references.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"block-references.js","sourceRoot":"","sources":["../../src/utils/block-references.ts"],"names":[],"mappings":"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"}
|