@geekmidas/constructs 10.0.0-alpha.4 → 10.0.0-alpha.41
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/README.md +223 -158
- package/dist/{Construct-BD5neF7w.mjs → Construct-BO1X-kt9.mjs} +32 -33
- package/dist/Construct-BO1X-kt9.mjs.map +1 -0
- package/dist/Construct-BQALFCh2.d.cts +230 -0
- package/dist/Construct-BQALFCh2.d.cts.map +1 -0
- package/dist/{Construct-CyS3RpTL.cjs → Construct-DmvXceVY.cjs} +52 -47
- package/dist/Construct-DmvXceVY.cjs.map +1 -0
- package/dist/Construct-QXnl3VqT.d.mts +230 -0
- package/dist/Construct-QXnl3VqT.d.mts.map +1 -0
- package/dist/{Cron-B2OFsfDM.d.cts → Cron-CMEGfRs8.d.cts} +21 -8
- package/dist/Cron-CMEGfRs8.d.cts.map +1 -0
- package/dist/{Cron-ByxdOfpE.d.mts → Cron-D6X4-xjB.d.mts} +21 -8
- package/dist/Cron-D6X4-xjB.d.mts.map +1 -0
- package/dist/CronBuilder-CEK7aOqD.d.cts +46 -0
- package/dist/CronBuilder-CEK7aOqD.d.cts.map +1 -0
- package/dist/CronBuilder-DB35T5dL.cjs +116 -0
- package/dist/CronBuilder-DB35T5dL.cjs.map +1 -0
- package/dist/CronBuilder-Dv0IlZs0.mjs +104 -0
- package/dist/CronBuilder-Dv0IlZs0.mjs.map +1 -0
- package/dist/CronBuilder-O_gvButp.d.mts +46 -0
- package/dist/CronBuilder-O_gvButp.d.mts.map +1 -0
- package/dist/{Endpoint-Dij_wOcc.mjs → Endpoint-CQAeh1Rh.mjs} +117 -109
- package/dist/Endpoint-CQAeh1Rh.mjs.map +1 -0
- package/dist/{Endpoint-DODn1RhN.cjs → Endpoint-D1L9qu5C.cjs} +145 -131
- package/dist/Endpoint-D1L9qu5C.cjs.map +1 -0
- package/dist/{Endpoint-2Wg7T7Cq.d.mts → Endpoint-Dp5AKIXl.d.cts} +69 -93
- package/dist/Endpoint-Dp5AKIXl.d.cts.map +1 -0
- package/dist/{Endpoint-DrD8a1yH.d.cts → Endpoint-DtI7heFm.d.mts} +70 -94
- package/dist/Endpoint-DtI7heFm.d.mts.map +1 -0
- package/dist/{EndpointFactory-b4ituq-s.mjs → EndpointFactory-BBdNeaGJ.mjs} +39 -74
- package/dist/EndpointFactory-BBdNeaGJ.mjs.map +1 -0
- package/dist/{EndpointFactory-BHFMmFkV.cjs → EndpointFactory-BZOCOaK6.cjs} +75 -110
- package/dist/EndpointFactory-BZOCOaK6.cjs.map +1 -0
- package/dist/{index-BxHDdy6a.d.mts → EndpointFactory-CgMDvERK.d.mts} +63 -133
- package/dist/EndpointFactory-CgMDvERK.d.mts.map +1 -0
- package/dist/{index-B8g8POkr.d.cts → EndpointFactory-FeFRmlDZ.d.cts} +62 -132
- package/dist/EndpointFactory-FeFRmlDZ.d.cts.map +1 -0
- package/dist/{HonoEndpointAdaptor-BM2jbWht.mjs → HonoEndpointAdaptor-Aui-x9Lg.mjs} +41 -47
- package/dist/HonoEndpointAdaptor-Aui-x9Lg.mjs.map +1 -0
- package/dist/{HonoEndpointAdaptor-De6IlBZe.cjs → HonoEndpointAdaptor-Cq99r9H7.cjs} +50 -53
- package/dist/HonoEndpointAdaptor-Cq99r9H7.cjs.map +1 -0
- package/dist/Queue-C1uDgjxt.mjs +100 -0
- package/dist/Queue-C1uDgjxt.mjs.map +1 -0
- package/dist/Queue-Ckmudcm8.cjs +105 -0
- package/dist/Queue-Ckmudcm8.cjs.map +1 -0
- package/dist/{Queue-D7ZuwBhy.d.cts → Queue-CpQIGB_2.d.cts} +28 -40
- package/dist/Queue-CpQIGB_2.d.cts.map +1 -0
- package/dist/{Queue-gVGfi2Yk.d.mts → Queue-YmvN2vEP.d.mts} +28 -40
- package/dist/Queue-YmvN2vEP.d.mts.map +1 -0
- package/dist/QueueBuilder-CJNcv4dy.cjs +112 -0
- package/dist/QueueBuilder-CJNcv4dy.cjs.map +1 -0
- package/dist/QueueBuilder-CM0WUxfw.d.mts +62 -0
- package/dist/QueueBuilder-CM0WUxfw.d.mts.map +1 -0
- package/dist/QueueBuilder-XEnnOWGe.d.cts +62 -0
- package/dist/QueueBuilder-XEnnOWGe.d.cts.map +1 -0
- package/dist/QueueBuilder-XuPKZwKH.mjs +95 -0
- package/dist/QueueBuilder-XuPKZwKH.mjs.map +1 -0
- package/dist/{Subscriber-2mEi0ImH.d.cts → Subscriber-B91YSkZt.d.cts} +14 -16
- package/dist/Subscriber-B91YSkZt.d.cts.map +1 -0
- package/dist/{Subscriber-xTJ9ayPN.d.mts → Subscriber-BjHYe5hK.d.mts} +14 -16
- package/dist/Subscriber-BjHYe5hK.d.mts.map +1 -0
- package/dist/SubscriberBuilder-BSpQX1JT.d.cts +55 -0
- package/dist/SubscriberBuilder-BSpQX1JT.d.cts.map +1 -0
- package/dist/SubscriberBuilder-BhMphk4z.d.mts +55 -0
- package/dist/SubscriberBuilder-BhMphk4z.d.mts.map +1 -0
- package/dist/{SubscriberBuilder-4OPehf2R.cjs → SubscriberBuilder-Duk028pD.cjs} +34 -37
- package/dist/SubscriberBuilder-Duk028pD.cjs.map +1 -0
- package/dist/{SubscriberBuilder-BjkbeT9l.mjs → SubscriberBuilder-DzQUWE08.mjs} +23 -25
- package/dist/SubscriberBuilder-DzQUWE08.mjs.map +1 -0
- package/dist/Topic-CkxOTrMv.cjs +104 -0
- package/dist/Topic-CkxOTrMv.cjs.map +1 -0
- package/dist/Topic-hPffOsot.mjs +99 -0
- package/dist/Topic-hPffOsot.mjs.map +1 -0
- package/dist/adaptors/aws.cjs +171 -108
- package/dist/adaptors/aws.cjs.map +1 -1
- package/dist/adaptors/aws.d.cts +75 -43
- package/dist/adaptors/aws.d.cts.map +1 -1
- package/dist/adaptors/aws.d.mts +76 -44
- package/dist/adaptors/aws.d.mts.map +1 -1
- package/dist/adaptors/aws.mjs +143 -83
- package/dist/adaptors/aws.mjs.map +1 -1
- package/dist/adaptors/hono.cjs +3 -10
- package/dist/adaptors/hono.d.cts +7 -16
- package/dist/adaptors/hono.d.cts.map +1 -1
- package/dist/adaptors/hono.d.mts +8 -17
- package/dist/adaptors/hono.d.mts.map +1 -1
- package/dist/adaptors/hono.mjs +2 -10
- package/dist/adaptors/testing.cjs +515 -87
- package/dist/adaptors/testing.cjs.map +1 -1
- package/dist/adaptors/testing.d.cts +250 -48
- package/dist/adaptors/testing.d.cts.map +1 -1
- package/dist/adaptors/testing.d.mts +250 -48
- package/dist/adaptors/testing.d.mts.map +1 -1
- package/dist/adaptors/testing.mjs +484 -68
- package/dist/adaptors/testing.mjs.map +1 -1
- package/dist/auth-CMwml9QN.d.mts +188 -0
- package/dist/auth-CMwml9QN.d.mts.map +1 -0
- package/dist/auth-rVRDjIw_.d.cts +188 -0
- package/dist/auth-rVRDjIw_.d.cts.map +1 -0
- package/dist/auth.cjs +171 -31
- package/dist/auth.cjs.map +1 -1
- package/dist/auth.d.cts +2 -108
- package/dist/auth.d.mts +2 -108
- package/dist/auth.mjs +160 -24
- package/dist/auth.mjs.map +1 -1
- package/dist/{cache-BrRz3fEB.d.mts → cache-C9a_hVCc.d.cts} +4 -7
- package/dist/cache-C9a_hVCc.d.cts.map +1 -0
- package/dist/{cache-BtZY_tHe.d.cts → cache-CeTMI8LR.d.mts} +4 -7
- package/dist/cache-CeTMI8LR.d.mts.map +1 -0
- package/dist/cache.cjs +68 -2
- package/dist/cache.cjs.map +1 -0
- package/dist/cache.d.cts +1 -2
- package/dist/cache.d.mts +1 -2
- package/dist/cache.mjs +67 -2
- package/dist/cache.mjs.map +1 -0
- package/dist/{clone-DblgEZZa.mjs → clone-EKNovYHu.mjs} +3 -3
- package/dist/clone-EKNovYHu.mjs.map +1 -0
- package/dist/{clone-Dy0cR2SZ.cjs → clone-UGJpvQnL.cjs} +7 -8
- package/dist/clone-UGJpvQnL.cjs.map +1 -0
- package/dist/{construct-interface-g5GM5pwR.d.mts → construct-interface-_3zgxzXl.d.mts} +20 -11
- package/dist/construct-interface-_3zgxzXl.d.mts.map +1 -0
- package/dist/{construct-interface-D9d4Gm4p.d.cts → construct-interface-_xi4BPN8.d.cts} +20 -11
- package/dist/construct-interface-_xi4BPN8.d.cts.map +1 -0
- package/dist/construct-interface.cjs +87 -7
- package/dist/construct-interface.cjs.map +1 -0
- package/dist/construct-interface.d.cts +2 -2
- package/dist/construct-interface.d.mts +2 -2
- package/dist/construct-interface.mjs +81 -2
- package/dist/construct-interface.mjs.map +1 -0
- package/dist/credential.cjs +63 -16
- package/dist/credential.cjs.map +1 -1
- package/dist/credential.d.cts +16 -9
- package/dist/credential.d.cts.map +1 -1
- package/dist/credential.d.mts +16 -9
- package/dist/credential.d.mts.map +1 -1
- package/dist/credential.mjs +58 -12
- package/dist/credential.mjs.map +1 -1
- package/dist/crons/index.cjs +68 -10
- package/dist/crons/index.cjs.map +1 -1
- package/dist/crons/index.d.cts +32 -14
- package/dist/crons/index.d.cts.map +1 -1
- package/dist/crons/index.d.mts +32 -14
- package/dist/crons/index.d.mts.map +1 -1
- package/dist/crons/index.mjs +66 -10
- package/dist/crons/index.mjs.map +1 -1
- package/dist/database/kysely.cjs +40 -15
- package/dist/database/kysely.cjs.map +1 -1
- package/dist/database/kysely.d.cts +2 -152
- package/dist/database/kysely.d.mts +2 -152
- package/dist/database/kysely.mjs +28 -5
- package/dist/database/kysely.mjs.map +1 -1
- package/dist/email.cjs +25 -12
- package/dist/email.cjs.map +1 -1
- package/dist/email.d.cts +3 -7
- package/dist/email.d.cts.map +1 -1
- package/dist/email.d.mts +3 -7
- package/dist/email.d.mts.map +1 -1
- package/dist/email.mjs +16 -3
- package/dist/email.mjs.map +1 -1
- package/dist/endpoints/index.cjs +8 -10
- package/dist/endpoints/index.d.cts +51 -7
- package/dist/endpoints/index.d.cts.map +1 -0
- package/dist/endpoints/index.d.mts +51 -7
- package/dist/endpoints/index.d.mts.map +1 -0
- package/dist/endpoints/index.mjs +6 -10
- package/dist/external-api-DS3mujT5.d.mts +86 -0
- package/dist/external-api-DS3mujT5.d.mts.map +1 -0
- package/dist/external-api-LBfE-q3g.d.cts +86 -0
- package/dist/external-api-LBfE-q3g.d.cts.map +1 -0
- package/dist/external-api.cjs +124 -0
- package/dist/external-api.cjs.map +1 -0
- package/dist/external-api.d.cts +2 -0
- package/dist/external-api.d.mts +2 -0
- package/dist/external-api.mjs +121 -0
- package/dist/external-api.mjs.map +1 -0
- package/dist/file-server.cjs +42 -10
- package/dist/file-server.cjs.map +1 -1
- package/dist/file-server.d.cts +6 -10
- package/dist/file-server.d.cts.map +1 -1
- package/dist/file-server.d.mts +6 -10
- package/dist/file-server.d.mts.map +1 -1
- package/dist/file-server.mjs +34 -2
- package/dist/file-server.mjs.map +1 -1
- package/dist/functions/index.cjs +2 -6
- package/dist/functions/index.d.cts +2 -4
- package/dist/functions/index.d.mts +2 -4
- package/dist/functions/index.mjs +2 -6
- package/dist/{functions-Ck21Uyq0.mjs → functions-DCIfCRR-.mjs} +371 -241
- package/dist/functions-DCIfCRR-.mjs.map +1 -0
- package/dist/{functions-DJJA7VGc.cjs → functions-ZH60FE7H.cjs} +409 -273
- package/dist/functions-ZH60FE7H.cjs.map +1 -0
- package/dist/{index-AIfVzkhi.d.cts → index-B0kxstwf.d.cts} +49 -42
- package/dist/index-B0kxstwf.d.cts.map +1 -0
- package/dist/index-CeEtxDmK.d.cts +79 -0
- package/dist/index-CeEtxDmK.d.cts.map +1 -0
- package/dist/index-CeEtxDmK.d.mts +79 -0
- package/dist/index-CeEtxDmK.d.mts.map +1 -0
- package/dist/{index-CubPzHd9.d.mts → index-CjVEjOw0.d.mts} +49 -42
- package/dist/index-CjVEjOw0.d.mts.map +1 -0
- package/dist/index.cjs +3 -3
- package/dist/index.d.cts +4 -4
- package/dist/index.d.mts +4 -4
- package/dist/index.mjs +2 -3
- package/dist/kysely-BJ8IQ_1P.d.mts +159 -0
- package/dist/kysely-BJ8IQ_1P.d.mts.map +1 -0
- package/dist/kysely-DVF8wOT4.d.cts +159 -0
- package/dist/kysely-DVF8wOT4.d.cts.map +1 -0
- package/dist/{lazyAccessors-BoJN3SMd.mjs → lazyAccessors-CFanua0O.mjs} +20 -60
- package/dist/lazyAccessors-CFanua0O.mjs.map +1 -0
- package/dist/{lazyAccessors-e3j2oE2m.cjs → lazyAccessors-hJKGv8Ay.cjs} +60 -113
- package/dist/lazyAccessors-hJKGv8Ay.cjs.map +1 -0
- package/dist/mobile-app.cjs +70 -0
- package/dist/mobile-app.cjs.map +1 -0
- package/dist/mobile-app.d.cts +61 -0
- package/dist/mobile-app.d.cts.map +1 -0
- package/dist/mobile-app.d.mts +61 -0
- package/dist/mobile-app.d.mts.map +1 -0
- package/dist/mobile-app.mjs +69 -0
- package/dist/mobile-app.mjs.map +1 -0
- package/dist/object-storage.cjs +18 -10
- package/dist/object-storage.cjs.map +1 -1
- package/dist/object-storage.d.cts +3 -7
- package/dist/object-storage.d.cts.map +1 -1
- package/dist/object-storage.d.mts +3 -7
- package/dist/object-storage.d.mts.map +1 -1
- package/dist/object-storage.mjs +11 -3
- package/dist/object-storage.mjs.map +1 -1
- package/dist/{processAudits-Dmts9H_b.mjs → processAudits-BpRlPQMW.mjs} +16 -19
- package/dist/processAudits-BpRlPQMW.mjs.map +1 -0
- package/dist/{processAudits-CGqttuXm.cjs → processAudits-D_2W5x8k.cjs} +26 -30
- package/dist/processAudits-D_2W5x8k.cjs.map +1 -0
- package/dist/queue/index.cjs +6 -189
- package/dist/queue/index.d.cts +3 -60
- package/dist/queue/index.d.mts +3 -60
- package/dist/queue/index.mjs +3 -186
- package/dist/rest-api.cjs +87 -63
- package/dist/rest-api.cjs.map +1 -1
- package/dist/rest-api.d.cts +62 -61
- package/dist/rest-api.d.cts.map +1 -1
- package/dist/rest-api.d.mts +62 -61
- package/dist/rest-api.d.mts.map +1 -1
- package/dist/rest-api.mjs +79 -55
- package/dist/rest-api.mjs.map +1 -1
- package/dist/{chunk-DWy1uDak.cjs → rolldown-runtime-y5ARvAq5.cjs} +14 -18
- package/dist/site.cjs +33 -9
- package/dist/site.cjs.map +1 -1
- package/dist/site.d.cts +11 -22
- package/dist/site.d.cts.map +1 -1
- package/dist/site.d.mts +11 -22
- package/dist/site.d.mts.map +1 -1
- package/dist/site.mjs +29 -5
- package/dist/site.mjs.map +1 -1
- package/dist/subscribers/index.cjs +2 -11
- package/dist/subscribers/index.d.cts +3 -14
- package/dist/subscribers/index.d.mts +3 -14
- package/dist/subscribers/index.mjs +2 -11
- package/dist/surfaceEnv-CNimK76p.cjs +56 -0
- package/dist/surfaceEnv-CNimK76p.cjs.map +1 -0
- package/dist/surfaceEnv-wMT5QzgZ.mjs +45 -0
- package/dist/surfaceEnv-wMT5QzgZ.mjs.map +1 -0
- package/dist/{telemetry-C3L0iS28.d.cts → telemetry-DGcFlVpB.d.cts} +2 -5
- package/dist/telemetry-DGcFlVpB.d.cts.map +1 -0
- package/dist/{telemetry-D7bVFLGi.d.mts → telemetry-DGcFlVpB.d.mts} +2 -5
- package/dist/telemetry-DGcFlVpB.d.mts.map +1 -0
- package/dist/topic/index.cjs +3 -137
- package/dist/topic/index.d.cts +2 -32
- package/dist/topic/index.d.mts +2 -32
- package/dist/topic/index.mjs +2 -134
- package/dist/{types-BlAkSuGI.d.cts → types-DMuSQeLL.d.cts} +3 -5
- package/dist/types-DMuSQeLL.d.cts.map +1 -0
- package/dist/{types-aKksMEWL.d.mts → types-DMuSQeLL.d.mts} +3 -5
- package/dist/types-DMuSQeLL.d.mts.map +1 -0
- package/dist/types.d.cts +1 -1
- package/dist/types.d.mts +1 -1
- package/dist/types.mjs +1 -0
- package/dist/worker.cjs +118 -35
- package/dist/worker.cjs.map +1 -1
- package/dist/worker.d.cts +95 -42
- package/dist/worker.d.cts.map +1 -1
- package/dist/worker.d.mts +95 -42
- package/dist/worker.d.mts.map +1 -1
- package/dist/worker.mjs +113 -30
- package/dist/worker.mjs.map +1 -1
- package/package.json +66 -41
- package/dist/Construct-BD5neF7w.mjs.map +0 -1
- package/dist/Construct-C0ijr2qp.d.cts +0 -117
- package/dist/Construct-C0ijr2qp.d.cts.map +0 -1
- package/dist/Construct-Ct8nalEi.d.mts +0 -117
- package/dist/Construct-Ct8nalEi.d.mts.map +0 -1
- package/dist/Construct-CyS3RpTL.cjs.map +0 -1
- package/dist/Cron-B2OFsfDM.d.cts.map +0 -1
- package/dist/Cron-ByxdOfpE.d.mts.map +0 -1
- package/dist/CronBuilder-BL0AP6fs.d.mts +0 -44
- package/dist/CronBuilder-BL0AP6fs.d.mts.map +0 -1
- package/dist/CronBuilder-CdibiHNB.mjs +0 -84
- package/dist/CronBuilder-CdibiHNB.mjs.map +0 -1
- package/dist/CronBuilder-DyUr6nYz.cjs +0 -96
- package/dist/CronBuilder-DyUr6nYz.cjs.map +0 -1
- package/dist/CronBuilder-LSJMfqnq.d.cts +0 -44
- package/dist/CronBuilder-LSJMfqnq.d.cts.map +0 -1
- package/dist/Endpoint-2Wg7T7Cq.d.mts.map +0 -1
- package/dist/Endpoint-DODn1RhN.cjs.map +0 -1
- package/dist/Endpoint-Dij_wOcc.mjs.map +0 -1
- package/dist/Endpoint-DrD8a1yH.d.cts.map +0 -1
- package/dist/EndpointFactory-BHFMmFkV.cjs.map +0 -1
- package/dist/EndpointFactory-b4ituq-s.mjs.map +0 -1
- package/dist/HonoEndpointAdaptor-BM2jbWht.mjs.map +0 -1
- package/dist/HonoEndpointAdaptor-De6IlBZe.cjs.map +0 -1
- package/dist/Queue-D7ZuwBhy.d.cts.map +0 -1
- package/dist/Queue-gVGfi2Yk.d.mts.map +0 -1
- package/dist/Subscriber-2mEi0ImH.d.cts.map +0 -1
- package/dist/Subscriber-xTJ9ayPN.d.mts.map +0 -1
- package/dist/SubscriberBuilder-4OPehf2R.cjs.map +0 -1
- package/dist/SubscriberBuilder-BjkbeT9l.mjs.map +0 -1
- package/dist/SubscriberBuilder-Dptmo-1A.d.mts +0 -62
- package/dist/SubscriberBuilder-Dptmo-1A.d.mts.map +0 -1
- package/dist/SubscriberBuilder-waNhzjSM.d.cts +0 -62
- package/dist/SubscriberBuilder-waNhzjSM.d.cts.map +0 -1
- package/dist/Topic-19QeHBIR.d.cts +0 -91
- package/dist/Topic-19QeHBIR.d.cts.map +0 -1
- package/dist/Topic-DuFeqkBh.d.mts +0 -91
- package/dist/Topic-DuFeqkBh.d.mts.map +0 -1
- package/dist/auth.d.cts.map +0 -1
- package/dist/auth.d.mts.map +0 -1
- package/dist/cache-0ANvRQnD.mjs +0 -51
- package/dist/cache-0ANvRQnD.mjs.map +0 -1
- package/dist/cache-3WSvAulx.cjs +0 -57
- package/dist/cache-3WSvAulx.cjs.map +0 -1
- package/dist/cache-BrRz3fEB.d.mts.map +0 -1
- package/dist/cache-BtZY_tHe.d.cts.map +0 -1
- package/dist/clone-DblgEZZa.mjs.map +0 -1
- package/dist/clone-Dy0cR2SZ.cjs.map +0 -1
- package/dist/construct-interface-BfjcOD_E.cjs +0 -117
- package/dist/construct-interface-BfjcOD_E.cjs.map +0 -1
- package/dist/construct-interface-D9d4Gm4p.d.cts.map +0 -1
- package/dist/construct-interface-Z4CpS8tK.mjs +0 -81
- package/dist/construct-interface-Z4CpS8tK.mjs.map +0 -1
- package/dist/construct-interface-g5GM5pwR.d.mts.map +0 -1
- package/dist/database/kysely.d.cts.map +0 -1
- package/dist/database/kysely.d.mts.map +0 -1
- package/dist/functions-Ck21Uyq0.mjs.map +0 -1
- package/dist/functions-DJJA7VGc.cjs.map +0 -1
- package/dist/index-AIfVzkhi.d.cts.map +0 -1
- package/dist/index-B8g8POkr.d.cts.map +0 -1
- package/dist/index-BxHDdy6a.d.mts.map +0 -1
- package/dist/index-CubPzHd9.d.mts.map +0 -1
- package/dist/lazyAccessors-BoJN3SMd.mjs.map +0 -1
- package/dist/lazyAccessors-e3j2oE2m.cjs.map +0 -1
- package/dist/processAudits-CGqttuXm.cjs.map +0 -1
- package/dist/processAudits-Dmts9H_b.mjs.map +0 -1
- package/dist/queue/index.cjs.map +0 -1
- package/dist/queue/index.d.cts.map +0 -1
- package/dist/queue/index.d.mts.map +0 -1
- package/dist/queue/index.mjs.map +0 -1
- package/dist/subscribers/index.cjs.map +0 -1
- package/dist/subscribers/index.d.cts.map +0 -1
- package/dist/subscribers/index.d.mts.map +0 -1
- package/dist/subscribers/index.mjs.map +0 -1
- package/dist/surfaceEnv-BFXEms2f.cjs +0 -39
- package/dist/surfaceEnv-BFXEms2f.cjs.map +0 -1
- package/dist/surfaceEnv-C3Ktahea.mjs +0 -27
- package/dist/surfaceEnv-C3Ktahea.mjs.map +0 -1
- package/dist/telemetry-C3L0iS28.d.cts.map +0 -1
- package/dist/telemetry-D7bVFLGi.d.mts.map +0 -1
- package/dist/topic/index.cjs.map +0 -1
- package/dist/topic/index.d.cts.map +0 -1
- package/dist/topic/index.d.mts.map +0 -1
- package/dist/topic/index.mjs.map +0 -1
- package/dist/types-BlAkSuGI.d.cts.map +0 -1
- package/dist/types-aKksMEWL.d.mts.map +0 -1
|
@@ -1,25 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { EventPublisher, MappedEvent } from "@geekmidas/events";
|
|
1
|
+
import { t as StandardSchemaV1 } from "./index-CeEtxDmK.cjs";
|
|
2
|
+
import { a as EventFor, c as Topic } from "./Construct-BQALFCh2.cjs";
|
|
3
|
+
import { n as BaseFunctionBuilder } from "./index-B0kxstwf.cjs";
|
|
4
|
+
import { c as ServicesOf, r as Consumable } from "./construct-interface-_xi4BPN8.cjs";
|
|
5
|
+
import { t as HttpMethod } from "./types-DMuSQeLL.cjs";
|
|
6
|
+
import { C as Authorizer, O as SecurityScheme, S as MappedAudit, T as BuiltInSecuritySchemeId, _ as RlsBypass, c as EndpointSchemas, f as SessionFn, i as Endpoint, l as EndpointSurface, o as EndpointHandler, p as SuccessStatus, t as AuthorizeFn, v as RlsConfig, x as ActorExtractor } from "./Endpoint-Dp5AKIXl.cjs";
|
|
8
7
|
import { Logger } from "@geekmidas/logger";
|
|
9
8
|
import { InferStandardSchema } from "@geekmidas/schema";
|
|
10
|
-
import { Service
|
|
11
|
-
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
9
|
+
import { Service } from "@geekmidas/services";
|
|
12
10
|
import { AuditStorage, AuditableAction, ExtractStorageAuditAction } from "@geekmidas/audit";
|
|
13
11
|
import { RateLimitConfig } from "@geekmidas/rate-limit";
|
|
14
|
-
import { Context } from "hono";
|
|
15
|
-
|
|
16
|
-
//#region src/publisher.d.ts
|
|
17
|
-
declare function publishConstructEvents<T extends EventPublisher<any> | undefined, OutSchema extends StandardSchemaV1 | undefined = undefined, TServiceName extends string = string, TServices extends Service[] = [], TAuditStorageServiceName extends string = string, TAuditStorage extends AuditStorage | undefined = undefined>(construct: Construct<Logger, TServiceName, T, OutSchema, TServices, TAuditStorageServiceName, TAuditStorage>, response: InferStandardSchema<OutSchema>, serviceDiscovery: ServiceDiscovery<any>, logger?: Logger): Promise<void>;
|
|
18
|
-
//# sourceMappingURL=publisher.d.ts.map
|
|
19
|
-
|
|
20
|
-
//#endregion
|
|
21
12
|
//#region src/endpoints/EndpointBuilder.d.ts
|
|
22
|
-
declare class EndpointBuilder<TRoute extends string, TMethod extends HttpMethod, TInput extends EndpointSchemas = {}, TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TSession = unknown,
|
|
13
|
+
declare class EndpointBuilder<TRoute extends string, TMethod extends HttpMethod, TInput extends EndpointSchemas = {}, TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TSession = unknown, TAuthorizers extends readonly string[] = readonly string[], TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>, TDatabase = undefined, TDatabaseServiceName extends string = string> extends BaseFunctionBuilder<TInput, OutSchema, TServices, TLogger, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName> {
|
|
23
14
|
readonly route: TRoute;
|
|
24
15
|
readonly method: TMethod;
|
|
25
16
|
protected schemas: TInput;
|
|
@@ -46,12 +37,26 @@ declare class EndpointBuilder<TRoute extends string, TMethod extends HttpMethod,
|
|
|
46
37
|
_rlsConfig?: RlsConfig<TServices, TSession, TLogger>;
|
|
47
38
|
_rlsBypass?: boolean;
|
|
48
39
|
constructor(route: TRoute, method: TMethod);
|
|
49
|
-
_setPublisher(publisher: Service<TEventPublisherServiceName, TEventPublisher>): void;
|
|
50
40
|
_setAuditorStorage(storage: Service<TAuditStorageServiceName, TAuditStorage>): void;
|
|
51
41
|
_setDatabaseService(service: Service<TDatabaseServiceName, TDatabase>): void;
|
|
52
42
|
description(description: string): this;
|
|
53
43
|
status(status: SuccessStatus): this;
|
|
54
|
-
|
|
44
|
+
/**
|
|
45
|
+
* Publish `event` to `topic` once the handler has succeeded — repeatable,
|
|
46
|
+
* one call per event, to as many topics as the endpoint names. The topic
|
|
47
|
+
* becomes a dependency as with `.dependsOn([topic])`, so `services.<topic>`
|
|
48
|
+
* is there for events the handler decides on itself.
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```ts
|
|
52
|
+
* router.post('/users')
|
|
53
|
+
* .event(users, {
|
|
54
|
+
* type: 'user.created',
|
|
55
|
+
* payload: (user) => ({ userId: user.id, email: user.email }),
|
|
56
|
+
* })
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
event<TTopic extends Topic<any, any>>(topic: TTopic, event: EventFor<TTopic, InferStandardSchema<OutSchema>>): EndpointBuilder<TRoute, TMethod, TInput, [...TServices, TTopic['service']], TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
55
60
|
tags(tags: string[]): this;
|
|
56
61
|
memorySize(memorySize: number): this;
|
|
57
62
|
/**
|
|
@@ -73,22 +78,21 @@ declare class EndpointBuilder<TRoute extends string, TMethod extends HttpMethod,
|
|
|
73
78
|
* ```
|
|
74
79
|
*/
|
|
75
80
|
responseType(type: string): this;
|
|
76
|
-
publisher<T extends EventPublisher<any>, TName extends string>(publisher: Service<TName, T>): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, T, TName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
77
81
|
body<T extends StandardSchemaV1>(schema: T): EndpointBuilder<TRoute, TMethod, Omit<TInput, 'body'> & {
|
|
78
82
|
body: T;
|
|
79
|
-
}, TServices, TLogger, OutSchema, TSession,
|
|
83
|
+
}, TServices, TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
80
84
|
search<T extends StandardSchemaV1>(schema: T): EndpointBuilder<TRoute, TMethod, Omit<TInput, 'query'> & {
|
|
81
85
|
query: T;
|
|
82
|
-
}, TServices, TLogger, OutSchema, TSession,
|
|
86
|
+
}, TServices, TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
83
87
|
query<T extends StandardSchemaV1>(schema: T): EndpointBuilder<TRoute, TMethod, Omit<TInput, 'query'> & {
|
|
84
88
|
query: T;
|
|
85
|
-
}, TServices, TLogger, OutSchema, TSession,
|
|
89
|
+
}, TServices, TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
86
90
|
params<T extends StandardSchemaV1>(schema: T): EndpointBuilder<TRoute, TMethod, Omit<TInput, 'params'> & {
|
|
87
91
|
params: T;
|
|
88
|
-
}, TServices, TLogger, OutSchema, TSession,
|
|
92
|
+
}, TServices, TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
89
93
|
authorize(fn: AuthorizeFn<TServices, TLogger, TSession, TInput, TDatabase>): this;
|
|
90
94
|
rateLimit(config: RateLimitConfig): this;
|
|
91
|
-
authorizer(name: TAuthorizers[number] | 'none'): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession,
|
|
95
|
+
authorizer(name: TAuthorizers[number] | 'none'): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
92
96
|
/**
|
|
93
97
|
* Depend on constructs — a database, a bucket, a mail sender, a queue, a
|
|
94
98
|
* topic.
|
|
@@ -100,21 +104,21 @@ declare class EndpointBuilder<TRoute extends string, TMethod extends HttpMethod,
|
|
|
100
104
|
* Constructs only. A `Service` does not match the shape, which is what keeps
|
|
101
105
|
* env sniffing confined to `.services()` and the explicit lift.
|
|
102
106
|
*/
|
|
103
|
-
dependsOn<const T extends readonly Consumable[]>(constructs: T): EndpointBuilder<TRoute, TMethod, TInput, [...TServices, ...ServicesOf<T>], TLogger, OutSchema, TSession,
|
|
104
|
-
services<T extends Service[]>(services: T): EndpointBuilder<TRoute, TMethod, TInput, [...TServices, ...T], TLogger, OutSchema, TSession,
|
|
105
|
-
logger<T extends Logger>(logger: T): EndpointBuilder<TRoute, TMethod, TInput, TServices, T, OutSchema, TSession,
|
|
106
|
-
output<T extends StandardSchemaV1>(schema: T): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, T, TSession,
|
|
107
|
+
dependsOn<const T extends readonly Consumable[]>(constructs: T): EndpointBuilder<TRoute, TMethod, TInput, [...TServices, ...ServicesOf<T>], TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
108
|
+
services<T extends Service[]>(services: T): EndpointBuilder<TRoute, TMethod, TInput, [...TServices, ...T], TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
109
|
+
logger<T extends Logger>(logger: T): EndpointBuilder<TRoute, TMethod, TInput, TServices, T, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
110
|
+
output<T extends StandardSchemaV1>(schema: T): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, T, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
107
111
|
/**
|
|
108
112
|
* Set the auditor storage service for this endpoint.
|
|
109
113
|
* This enables audit functionality and makes `auditor` available in the handler context.
|
|
110
114
|
* The audit action type is automatically inferred from the storage's generic parameter.
|
|
111
115
|
*/
|
|
112
|
-
auditor<T extends AuditStorage<any>, TName extends string>(storage: Service<TName, T>): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession,
|
|
116
|
+
auditor<T extends AuditStorage<any>, TName extends string>(storage: Service<TName, T>): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, TAuthorizers, T, TName, ExtractStorageAuditAction<T>, TDatabase, TDatabaseServiceName>;
|
|
113
117
|
/**
|
|
114
118
|
* Set the actor extractor function for audit records.
|
|
115
119
|
* The actor is extracted from the request context and attached to all audits.
|
|
116
120
|
*/
|
|
117
|
-
actor(extractor: ActorExtractor<TServices, TSession, TLogger>): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession,
|
|
121
|
+
actor(extractor: ActorExtractor<TServices, TSession, TLogger>): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
118
122
|
/**
|
|
119
123
|
* Add declarative audit definitions that are processed after the handler executes.
|
|
120
124
|
* Similar to `.event()` for events, but for audits.
|
|
@@ -148,7 +152,7 @@ declare class EndpointBuilder<TRoute extends string, TMethod extends HttpMethod,
|
|
|
148
152
|
* })
|
|
149
153
|
* ```
|
|
150
154
|
*/
|
|
151
|
-
database<T, TName extends string>(source: Consumable<TName, T> | Service<TName, T>): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession,
|
|
155
|
+
database<T, TName extends string>(source: Consumable<TName, T> | Service<TName, T>): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, T, TName>;
|
|
152
156
|
/**
|
|
153
157
|
* Configure RLS (Row-Level Security) context for this endpoint.
|
|
154
158
|
* Pass `false` or `RLS_BYPASS` to explicitly bypass RLS for this endpoint.
|
|
@@ -184,12 +188,11 @@ declare class EndpointBuilder<TRoute extends string, TMethod extends HttpMethod,
|
|
|
184
188
|
*/
|
|
185
189
|
rlsBypass(): this;
|
|
186
190
|
input(_schema: any): any;
|
|
187
|
-
handle(fn: EndpointHandler<TInput, TServices, TLogger, OutSchema, TSession, TDatabase, TAuditStorage, TAuditAction>): Endpoint<TRoute, TMethod, TInput, OutSchema, TServices, TLogger, TSession,
|
|
191
|
+
handle(fn: EndpointHandler<TInput, TServices, TLogger, OutSchema, TSession, TDatabase, TAuditStorage, TAuditAction>): Endpoint<TRoute, TMethod, TInput, OutSchema, TServices, TLogger, TSession, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
188
192
|
}
|
|
189
|
-
//# sourceMappingURL=EndpointBuilder.d.ts.map
|
|
190
193
|
//#endregion
|
|
191
194
|
//#region src/endpoints/EndpointFactory.d.ts
|
|
192
|
-
declare class EndpointFactory<TServices extends Service[] = [], TBasePath extends string = '', TLogger extends Logger = Logger, TSession = unknown,
|
|
195
|
+
declare class EndpointFactory<TServices extends Service[] = [], TBasePath extends string = '', TLogger extends Logger = Logger, TSession = unknown, TAuthorizers extends readonly string[] = readonly string[], TAuditStorage extends AuditStorage<any> | undefined = undefined, TAuditStorageServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = ExtractStorageAuditAction<NonNullable<TAuditStorage>>, TDatabase = undefined, TDatabaseServiceName extends string = string, TSecuritySchemes extends Record<string, SecurityScheme> = Record<string, SecurityScheme>, TRlsConfig extends RlsConfig<TServices, TSession, TLogger> | undefined = undefined> {
|
|
193
196
|
private defaultServices;
|
|
194
197
|
/**
|
|
195
198
|
* The constructs `.dependsOn()` was given, kept alongside the services they
|
|
@@ -204,7 +207,6 @@ declare class EndpointFactory<TServices extends Service[] = [], TBasePath extend
|
|
|
204
207
|
private defaultConstructs;
|
|
205
208
|
private basePath;
|
|
206
209
|
private defaultAuthorizeFn?;
|
|
207
|
-
private defaultEventPublisher;
|
|
208
210
|
private defaultSessionExtractor?;
|
|
209
211
|
private defaultLogger;
|
|
210
212
|
/**
|
|
@@ -222,25 +224,9 @@ declare class EndpointFactory<TServices extends Service[] = [], TBasePath extend
|
|
|
222
224
|
private defaultActorExtractor?;
|
|
223
225
|
private customSecuritySchemes;
|
|
224
226
|
private defaultRlsConfig?;
|
|
225
|
-
constructor({
|
|
226
|
-
basePath,
|
|
227
|
-
defaultAuthorizeFn,
|
|
228
|
-
defaultLogger,
|
|
229
|
-
defaultSessionExtractor,
|
|
230
|
-
defaultServices,
|
|
231
|
-
defaultConstructs,
|
|
232
|
-
defaultEventPublisher,
|
|
233
|
-
availableAuthorizers,
|
|
234
|
-
defaultAuthorizerName,
|
|
235
|
-
defaultAuditorStorage,
|
|
236
|
-
defaultDatabaseService,
|
|
237
|
-
defaultActorExtractor,
|
|
238
|
-
customSecuritySchemes,
|
|
239
|
-
defaultRlsConfig,
|
|
240
|
-
surface
|
|
241
|
-
}: EndpointFactoryOptions<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>);
|
|
227
|
+
constructor({ basePath, defaultAuthorizeFn, defaultLogger, defaultSessionExtractor, defaultServices, defaultConstructs, availableAuthorizers, defaultAuthorizerName, defaultAuditorStorage, defaultDatabaseService, defaultActorExtractor, customSecuritySchemes, defaultRlsConfig, surface }: EndpointFactoryOptions<TServices, TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>);
|
|
242
228
|
static joinPaths<TBasePath extends string, P extends string>(path: P, basePath?: TBasePath): JoinPaths<TBasePath, P>;
|
|
243
|
-
authorizers<const T extends readonly string[]>(authorizers: T): EndpointFactory<TServices, TBasePath, TLogger, TSession,
|
|
229
|
+
authorizers<const T extends readonly string[]>(authorizers: T): EndpointFactory<TServices, TBasePath, TLogger, TSession, T, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
|
|
244
230
|
/**
|
|
245
231
|
* Define custom security schemes for this factory.
|
|
246
232
|
* These extend the built-in schemes (jwt, bearer, apiKey, oauth2, oidc).
|
|
@@ -257,7 +243,7 @@ declare class EndpointFactory<TServices extends Service[] = [], TBasePath extend
|
|
|
257
243
|
* });
|
|
258
244
|
* ```
|
|
259
245
|
*/
|
|
260
|
-
securitySchemes<T extends Record<string, SecurityScheme>>(schemes: T): EndpointFactory<TServices, TBasePath, TLogger, TSession,
|
|
246
|
+
securitySchemes<T extends Record<string, SecurityScheme>>(schemes: T): EndpointFactory<TServices, TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes & T, TRlsConfig>;
|
|
261
247
|
/**
|
|
262
248
|
* Set the default authorizer for all endpoints created from this factory.
|
|
263
249
|
* Individual endpoints can override this by calling `.authorizer()` on the builder.
|
|
@@ -268,9 +254,9 @@ declare class EndpointFactory<TServices extends Service[] = [], TBasePath extend
|
|
|
268
254
|
* - Custom security scheme names defined via `.securitySchemes()`
|
|
269
255
|
* - 'none' to disable authorization
|
|
270
256
|
*/
|
|
271
|
-
authorizer(name: BuiltInSecuritySchemeId | keyof TSecuritySchemes | TAuthorizers[number] | 'none'): EndpointFactory<TServices, TBasePath, TLogger, TSession,
|
|
272
|
-
route<TPath extends string>(path: TPath): EndpointFactory<TServices, JoinPaths<TBasePath, TPath>, TLogger, TSession,
|
|
273
|
-
authorize(fn: AuthorizeFn<TServices, TLogger, TSession, undefined, TDatabase>): EndpointFactory<TServices, TBasePath, TLogger, TSession,
|
|
257
|
+
authorizer(name: BuiltInSecuritySchemeId | keyof TSecuritySchemes | TAuthorizers[number] | 'none'): EndpointFactory<TServices, TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
|
|
258
|
+
route<TPath extends string>(path: TPath): EndpointFactory<TServices, JoinPaths<TBasePath, TPath>, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
|
|
259
|
+
authorize(fn: AuthorizeFn<TServices, TLogger, TSession, undefined, TDatabase>): EndpointFactory<TServices, TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
|
|
274
260
|
/**
|
|
275
261
|
* Depend on constructs — a database, a bucket, a mail sender, a queue, a
|
|
276
262
|
* topic.
|
|
@@ -282,27 +268,26 @@ declare class EndpointFactory<TServices extends Service[] = [], TBasePath extend
|
|
|
282
268
|
* Constructs only. A `Service` does not match the shape, which is what keeps
|
|
283
269
|
* env sniffing confined to `.services()` and the explicit lift.
|
|
284
270
|
*/
|
|
285
|
-
dependsOn<const S extends readonly Consumable[]>(constructs: S): EndpointFactory<[...ServicesOf<S>, ...TServices], TBasePath, TLogger, TSession,
|
|
286
|
-
services<S extends Service[]>(services: S): EndpointFactory<[...S, ...TServices], TBasePath, TLogger, TSession,
|
|
287
|
-
logger<L extends Logger>(logger: L): EndpointFactory<TServices, TBasePath, L, TSession,
|
|
288
|
-
|
|
289
|
-
session<T>(session: SessionFn<TServices, TLogger, T, TDatabase>): EndpointFactory<TServices, TBasePath, TLogger, T, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, RlsConfig<TServices, T, TLogger> | undefined>;
|
|
271
|
+
dependsOn<const S extends readonly Consumable[]>(constructs: S): EndpointFactory<[...ServicesOf<S>, ...TServices], TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, RlsConfig<[...ServicesOf<S>, ...TServices], TSession, TLogger> | undefined>;
|
|
272
|
+
services<S extends Service[]>(services: S): EndpointFactory<[...S, ...TServices], TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, RlsConfig<[...S, ...TServices], TSession, TLogger> | undefined>;
|
|
273
|
+
logger<L extends Logger>(logger: L): EndpointFactory<TServices, TBasePath, L, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, RlsConfig<TServices, TSession, L> | undefined>;
|
|
274
|
+
session<T>(session: SessionFn<TServices, TLogger, T, TDatabase>): EndpointFactory<TServices, TBasePath, TLogger, T, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, RlsConfig<TServices, T, TLogger> | undefined>;
|
|
290
275
|
/**
|
|
291
276
|
* Set the database service for endpoints created from this factory.
|
|
292
277
|
* The database will be available in handler context as `db`.
|
|
293
278
|
*/
|
|
294
|
-
database<T, TName extends string>(source: Consumable<TName, T> | Service<TName, T>): EndpointFactory<TServices, TBasePath, TLogger, TSession,
|
|
279
|
+
database<T, TName extends string>(source: Consumable<TName, T> | Service<TName, T>): EndpointFactory<TServices, TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, T, TName, TSecuritySchemes, TRlsConfig>;
|
|
295
280
|
/**
|
|
296
281
|
* Set the auditor storage service for endpoints created from this factory.
|
|
297
282
|
* This enables audit functionality and makes `auditor` available in handler context.
|
|
298
283
|
* The audit action type is automatically inferred from the storage's generic parameter.
|
|
299
284
|
*/
|
|
300
|
-
auditor<T extends AuditStorage<any>, TName extends string>(storage: Service<TName, T>): EndpointFactory<TServices, TBasePath, TLogger, TSession,
|
|
285
|
+
auditor<T extends AuditStorage<any>, TName extends string>(storage: Service<TName, T>): EndpointFactory<TServices, TBasePath, TLogger, TSession, TAuthorizers, T, TName, ExtractStorageAuditAction<T>, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
|
|
301
286
|
/**
|
|
302
287
|
* Set the actor extractor function for endpoints created from this factory.
|
|
303
288
|
* The actor is extracted from the request context and attached to all audits.
|
|
304
289
|
*/
|
|
305
|
-
actor(extractor: ActorExtractor<TServices, TSession, TLogger>): EndpointFactory<TServices, TBasePath, TLogger, TSession,
|
|
290
|
+
actor(extractor: ActorExtractor<TServices, TSession, TLogger>): EndpointFactory<TServices, TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
|
|
306
291
|
/**
|
|
307
292
|
* Set the RLS (Row-Level Security) configuration for endpoints created from this factory.
|
|
308
293
|
* This enables automatic PostgreSQL session variable setting for RLS policies.
|
|
@@ -321,18 +306,18 @@ declare class EndpointFactory<TServices extends Service[] = [], TBasePath extend
|
|
|
321
306
|
* });
|
|
322
307
|
* ```
|
|
323
308
|
*/
|
|
324
|
-
rls<TConfig extends RlsConfig<TServices, TSession, TLogger>>(config: TConfig): EndpointFactory<TServices, TBasePath, TLogger, TSession,
|
|
309
|
+
rls<TConfig extends RlsConfig<TServices, TSession, TLogger>>(config: TConfig): EndpointFactory<TServices, TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TConfig>;
|
|
325
310
|
private createBuilder;
|
|
326
|
-
post<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "POST", {}, TServices, TLogger, undefined, TSession,
|
|
327
|
-
get<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "GET", {}, TServices, TLogger, undefined, TSession,
|
|
328
|
-
put<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "PUT", {}, TServices, TLogger, undefined, TSession,
|
|
329
|
-
delete<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "DELETE", {}, TServices, TLogger, undefined, TSession,
|
|
330
|
-
patch<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "PATCH", {}, TServices, TLogger, undefined, TSession,
|
|
331
|
-
options<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "OPTIONS", {}, TServices, TLogger, undefined, TSession,
|
|
311
|
+
post<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "POST", {}, TServices, TLogger, undefined, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
312
|
+
get<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "GET", {}, TServices, TLogger, undefined, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
313
|
+
put<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "PUT", {}, TServices, TLogger, undefined, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
314
|
+
delete<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "DELETE", {}, TServices, TLogger, undefined, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
315
|
+
patch<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "PATCH", {}, TServices, TLogger, undefined, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
316
|
+
options<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "OPTIONS", {}, TServices, TLogger, undefined, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
332
317
|
}
|
|
333
318
|
type RemoveTrailingSlash<T extends string> = T extends `${infer Rest}/` ? Rest extends '' ? T : Rest : T;
|
|
334
319
|
type JoinPaths<TBasePath extends string, TPath extends string> = RemoveTrailingSlash<TBasePath extends '' ? TPath : TPath extends '' ? TBasePath : TBasePath extends '/' ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest}` ? `${TBasePath}/${Rest}` : `${TBasePath}/${TPath}`>;
|
|
335
|
-
interface EndpointFactoryOptions<TServices extends Service[] = [], TBasePath extends string = '', TLogger extends Logger = Logger, TSession = unknown,
|
|
320
|
+
interface EndpointFactoryOptions<TServices extends Service[] = [], TBasePath extends string = '', TLogger extends Logger = Logger, TSession = unknown, TAuthorizers extends readonly string[] = readonly string[], TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string, TSecuritySchemes extends Record<string, SecurityScheme> = Record<string, SecurityScheme>, TRlsConfig extends RlsConfig<TServices, TSession, TLogger> | undefined = undefined> {
|
|
336
321
|
defaultServices?: TServices;
|
|
337
322
|
/** Construct ids from `.dependsOn()`, carried so a route can declare edges. */
|
|
338
323
|
defaultConstructs?: string[];
|
|
@@ -340,8 +325,6 @@ interface EndpointFactoryOptions<TServices extends Service[] = [], TBasePath ext
|
|
|
340
325
|
defaultAuthorizeFn?: AuthorizeFn<TServices, TLogger, TSession, undefined, TDatabase>;
|
|
341
326
|
defaultLogger?: TLogger;
|
|
342
327
|
defaultSessionExtractor?: SessionFn<TServices, TLogger, TSession, TDatabase>;
|
|
343
|
-
defaultEventPublisher?: Service<TEventPublisherServiceName, TEventPublisher>;
|
|
344
|
-
defaultEvents?: MappedEvent<TEventPublisher, undefined>[];
|
|
345
328
|
availableAuthorizers?: Authorizer[];
|
|
346
329
|
defaultAuthorizerName?: TAuthorizers[number];
|
|
347
330
|
defaultAuditorStorage?: Service<TAuditStorageServiceName, TAuditStorage>;
|
|
@@ -356,64 +339,11 @@ interface EndpointFactoryOptions<TServices extends Service[] = [], TBasePath ext
|
|
|
356
339
|
* endpoint without one has no logger, no env parser and nothing to
|
|
357
340
|
* attribute its traffic to — which was survivable only while `e` existed.
|
|
358
341
|
*
|
|
359
|
-
* Carried through every derived factory, so `api.
|
|
342
|
+
* Carried through every derived factory, so `api.database(db)`
|
|
360
343
|
* still produces endpoints that know which API serves them.
|
|
361
344
|
*/
|
|
362
345
|
surface: EndpointSurface;
|
|
363
346
|
}
|
|
364
|
-
//# sourceMappingURL=EndpointFactory.d.ts.map
|
|
365
|
-
//#endregion
|
|
366
|
-
//#region src/endpoints/lazyAccessors.d.ts
|
|
367
|
-
/**
|
|
368
|
-
* Create a lazy header accessor for Hono.
|
|
369
|
-
* Uses `c.req.header(name)` for single lookups (native, case-insensitive).
|
|
370
|
-
* Only calls `c.req.header()` to get all headers when needed.
|
|
371
|
-
*/
|
|
372
|
-
declare function createHonoHeaders(c: Context): HeaderFn;
|
|
373
|
-
/**
|
|
374
|
-
* Create a lazy cookie accessor for Hono.
|
|
375
|
-
* Uses `getCookie(c, name)` for single lookups (native).
|
|
376
|
-
* Only parses the cookie header when all cookies are requested.
|
|
377
|
-
*/
|
|
378
|
-
declare function createHonoCookies(c: Context): CookieFn;
|
|
379
|
-
/**
|
|
380
|
-
* Create a lazy header accessor for API Gateway events.
|
|
381
|
-
* Handles case-insensitive lookups.
|
|
382
|
-
*/
|
|
383
|
-
declare function createApiGatewayHeaders(headers: Record<string, string | undefined> | null | undefined): HeaderFn;
|
|
384
|
-
/**
|
|
385
|
-
* Create a lazy cookie accessor for API Gateway events.
|
|
386
|
-
* Decodes URL-encoded values to match browser behavior.
|
|
387
|
-
*/
|
|
388
|
-
declare function createApiGatewayCookies(cookies: string[] | undefined, cookieHeader: string | undefined): CookieFn;
|
|
389
|
-
/**
|
|
390
|
-
* Create a lazy header accessor for plain object headers (test adaptor, etc).
|
|
391
|
-
* Headers are already available as an object, just provide lazy access.
|
|
392
|
-
*/
|
|
393
|
-
|
|
394
|
-
/**
|
|
395
|
-
* Create a no-op header accessor (for minimal endpoints that don't use headers).
|
|
396
|
-
*/
|
|
397
|
-
declare function createNoopHeaders(): HeaderFn;
|
|
398
|
-
/**
|
|
399
|
-
* Create a no-op cookie accessor (for minimal endpoints that don't use cookies).
|
|
400
|
-
*/
|
|
401
|
-
declare function createNoopCookies(): CookieFn;
|
|
402
|
-
//# sourceMappingURL=lazyAccessors.d.ts.map
|
|
403
|
-
//#endregion
|
|
404
|
-
//#region src/endpoints/surfaceEnv.d.ts
|
|
405
|
-
/**
|
|
406
|
-
* The default parser, built once.
|
|
407
|
-
*
|
|
408
|
-
* Once because `Credentials` resolves through `globalThis` and decryption is
|
|
409
|
-
* not free, and because two parsers over the same environment are two caches of
|
|
410
|
-
* the same answer.
|
|
411
|
-
*/
|
|
412
|
-
declare function defaultEnvParser(): EnvironmentParser<{}>;
|
|
413
|
-
/** The parser for an endpoint, from its surface or the default. */
|
|
414
|
-
declare function envParserFor(surface: EndpointSurface | undefined): EnvironmentParser<{}>;
|
|
415
|
-
//# sourceMappingURL=surfaceEnv.d.ts.map
|
|
416
|
-
|
|
417
347
|
//#endregion
|
|
418
|
-
export { EndpointBuilder
|
|
419
|
-
//# sourceMappingURL=
|
|
348
|
+
export { EndpointBuilder as n, EndpointFactory as t };
|
|
349
|
+
//# sourceMappingURL=EndpointFactory-FeFRmlDZ.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EndpointFactory-FeFRmlDZ.d.cts","names":[],"sources":["../src/endpoints/EndpointBuilder.ts","../src/endpoints/EndpointFactory.ts"],"mappings":";;;;;;;;;;;;cAyCa,gBACZ,uBACA,gBAAgB,YAChB,eAAe,sBACf,kBAAkB,gBAClB,gBAAgB,SAAS,QACzB,kBAAkB,0CAClB,oBACA,4DACA,sBAAsB,sCACtB,kDACA,qBAAqB,mCAAmC,kCAIxD,uBACA,sDACS,oBACT,QACA,WACA,WACA,SACA,eACA,0BACA,WACA;WA6BU,OAAO;WACP,QAAQ;YA5BR,SAAS;YACT;YACA,UAAU;YACV;YACA;YACA;EACV,aAAa,UAAU,WAAW,SAAS,UAAU;EAErD,YAAY,YAAY,WAAW,SAAS,UAAU,QAAQ;EAE9D,aAAa;EACb,uBAAuB;EACvB,kBAAkB;EAClB,kBAAkB,eAAe,WAAW,UAAU;EACtD,SAAS,YAAY,cAAc;;;;;;;EAOnC,UAAW;EACX,wBAAwB,eAAe;EACvC,aAAa,UAAU,WAAW,UAAU;EAC5C;EAEA,YACU,OAAO,QACP,QAAQ;EAMlB,mBACC,SAAS,QAAQ,0BAA0B;EAM5C,oBAAoB,SAAS,QAAQ,sBAAsB;EAI3D,YAAY;EAIZ,OAAO,QAAQ;;;;;;;;;;;;;;;;EAmBf,MAAM,eAAe,iBACpB,OAAO,QACP,OAAO,SAAS,QAAQ,oBAAoB,cAC1C,gBACF,QACA,SACA,YACI,WAAW,oBACf,SACA,WACA,UACA,cACA,eACA,0BACA,cACA,WACA;EAmBD,KAAK;EAIL,WAAW;;;;;;;;;;;;;;;;;;;EAsBX,aAAa;EAIb,KAAK,UAAU,kBACd,QAAQ,IACN,gBACF,QACA,SACA,KAAK;IAAoB,MAAM;KAC/B,WACA,SACA,WACA,UACA,cACA,eACA,0BACA,cACA,WACA;EAOD,OAAO,UAAU,kBAChB,QAAQ,IACN,gBACF,QACA,SACA,KAAK;IAAqB,OAAO;KACjC,WACA,SACA,WACA,UACA,cACA,eACA,0BACA,cACA,WACA;EAOD,MAAM,UAAU,kBACf,QAAQ,IACN,gBACF,QACA,SACA,KAAK;IAAqB,OAAO;KACjC,WACA,SACA,WACA,UACA,cACA,eACA,0BACA,cACA,WACA;EAKD,OAAO,UAAU,kBAChB,QAAQ,IACN,gBACF,QACA,SACA,KAAK;IAAsB,QAAQ;KACnC,WACA,SACA,WACA,UACA,cACA,eACA,0BACA,cACA,WACA;EAOD,UACC,IAAI,YAAY,WAAW,SAAS,UAAU,QAAQ;EAKvD,UAAU,QAAQ;EAIlB,WACC,MAAM,gCACJ,gBACF,QACA,SACA,QACA,WACA,SACA,WACA,UACA,cACA,eACA,0BACA,cACA,WACA;;;;;;;;;;;;EAkCD,gBAAgB,mBAAmB,cAClC,YAAY,IACV,gBACF,QACA,SACA,YACI,cAAc,WAAW,KAC7B,SACA,WACA,UACA,cACA,eACA,0BACA,cACA,WACA;EAkCD,SAAS,UAAU,WAClB,UAAU,IACR,gBACF,QACA,SACA,YACI,cAAc,IAClB,SACA,WACA,UACA,cACA,eACA,0BACA,cACA,WACA;EAwBD,OAAO,UAAU,QAChB,QAAQ,IACN,gBACF,QACA,SACA,QACA,WACA,GACA,WACA,UACA,cACA,eACA,0BACA,cACA,WACA;EAqBD,OAAO,UAAU,kBAChB,QAAQ,IACN,gBACF,QACA,SACA,QACA,WACA,SACA,GACA,UACA,cACA,eACA,0BACA,cACA,WACA;;;;;;EA0BQ,QAAQ,UAAU,mBAAmB,sBAC7C,SAAS,QAAQ,OAAO,KACtB,gBACF,QACA,SACA,QACA,WACA,SACA,WACA,UACA,cACA,GACA,OACA,0BAA0B,IAC1B,WACA;;;;;EA4BD,MACC,WAAW,eAAe,WAAW,UAAU,WAC7C,gBACF,QACA,SACA,QACA,WACA,SACA,WACA,UACA,cACA,eACA,0BACA,cACA,WACA;;;;;;;;;;;;;;;;;;EAsBD,MAAM,QAAQ,YAAY,cAAc;;;;;;;;;;;;;;;;EAmB/B,SAAS,GAAG,sBACpB,QAAQ,WAAW,OAAO,KAAK,QAAQ,OAAO,KAC5C,gBACF,QACA,SACA,QACA,WACA,SACA,WACA,UACA,cACA,eACA,0BACA,cACA,GACA;;;;;;;;;;;;;;;;;;;;EA6CD,IACC,QAAQ,UAAU,WAAW,UAAU,mBAAmB;;;;;;;;;;;;;;EAyB3D;EAKA,MAAM;EAMN,OACC,IAAI,gBACH,QACA,WACA,SACA,WACA,UACA,WACA,eACA,gBAEC,SACF,QACA,SACA,QACA,WACA,WACA,SACA,UACA,eACA,0BACA,cACA,WACA;;;;cC1rBW,gBACZ,kBAAkB,gBAClB,+BACA,gBAAgB,SAAS,QACzB,oBACA,4DACA,sBAAsB,2CACtB,kDACA,qBAAqB,mCAGjB,0BAA0B,YAAY,iBAC1C,uBACA,8CACA,yBAAyB,eAAe,kBAAkB,eAEzD,iBAED,mBACG,UAAU,WAAW,UAAU;UAG1B;;;;;;;;;;;UAWA;UACA;UACA;UAOA;UAMA;;;;;;;;UAQA;UACA;UACA;UACA;UAGA;UAGA;UACA;UACA;EAER,cACC,UACA,oBACA,eACA,yBAEA,iBACA,mBACA,sBACA,uBACA,uBACA,wBACA,uBACA,uBACA,kBACA,WACE,uBACF,WACA,WACA,SACA,UACA,cACA,eACA,0BACA,WACA,sBACA,kBACA;SAuBM,UAAU,0BAA0B,kBAC1C,MAAM,GACN,WAAU,YACR,UAAU,WAAW;EAmCxB,kBAAkB,6BACjB,aAAa,IACX,gBACF,WACA,WACA,SACA,UACA,GACA,eACA,0BACA,cACA,WACA,sBACA,kBACA;;;;;;;;;;;;;;;;;EAqDD,gBAAgB,UAAU,eAAe,iBACxC,SAAS,IACP,gBACF,WACA,WACA,SACA,UACA,cACA,eACA,0BACA,cACA,WACA,sBACA,mBAAmB,GACnB;;;;;;;;;;;EA8CD,WACC,MACG,gCACM,mBACN,gCAED,gBACF,WACA,WACA,SACA,UACA,cACA,eACA,0BACA,cACA,WACA,sBACA,kBACA;EAkDD,MAAM,sBACL,MAAM,QACJ,gBACF,WACA,UAAU,WAAW,QACrB,SACA,UACA,cACA,eACA,0BACA,cACA,WACA,sBACA,kBACA;EAmCD,UACC,IAAI,YAAY,WAAW,SAAS,qBAAqB,aACvD,gBACF,WACA,WACA,SACA,UACA,cACA,eACA,0BACA,cACA,WACA,sBACA,kBACA;;;;;;;;;;;;EA6CD,gBAAgB,mBAAmB,cAClC,YAAY,IACV,oBACE,WAAW,OAAO,YACtB,WACA,SACA,UACA,cACA,eACA,0BACA,cACA,WACA,sBACA,kBACA,cAAc,WAAW,OAAO,YAAY,UAAU;EA6BvD,SAAS,UAAU,WAClB,UAAU,IACR,oBACE,MAAM,YACV,WACA,SACA,UACA,cACA,eACA,0BACA,cACA,WACA,sBACA,kBACA,cAAc,MAAM,YAAY,UAAU;EA2C3C,OAAO,UAAU,QAChB,QAAQ,IACN,gBACF,WACA,WACA,GACA,UACA,cACA,eACA,0BACA,cACA,WACA,sBACA,kBACA,UAAU,WAAW,UAAU;EAiDhC,QAAQ,GACP,SAAS,UAAU,WAAW,SAAS,GAAG,aACxC,gBACF,WACA,WACA,SACA,GACA,cACA,eACA,0BACA,cACA,WACA,sBACA,kBACA,UAAU,WAAW,GAAG;;;;;EAgDzB,SAAS,GAAG,sBACX,QAAQ,WAAW,OAAO,KAAK,QAAQ,OAAO,KAC5C,gBACF,WACA,WACA,SACA,UACA,cACA,eACA,0BACA,cACA,GACA,OACA,kBACA;;;;;;EAmDD,QAAQ,UAAU,mBAAmB,sBACpC,SAAS,QAAQ,OAAO,KACtB,gBACF,WACA,WACA,SACA,UACA,cACA,GACA,OACA,0BAA0B,IAC1B,WACA,sBACA,kBACA;;;;;EA0CD,MACC,WAAW,eAAe,WAAW,UAAU,WAC7C,gBACF,WACA,WACA,SACA,UACA,cACA,eACA,0BACA,cACA,WACA,sBACA,kBACA;;;;;;;;;;;;;;;;;;;EAmDD,IAAI,gBAAgB,UAAU,WAAW,UAAU,UAClD,QAAQ,UACN,gBACF,WACA,WACA,SACA,UACA,cACA,eACA,0BACA,cACA,WACA,sBACA,kBACA;UAiCO;EA8FR,KAAK,sBAAsB,MAAM,QAAK,gBAAA,oBAAA,uBAAA,QAAA,mBAAA,YAAA,wBAAA,6BAAA,YAAA,UAAA,2BA2CN,UAAI,wBACN,YAAI,QAAA,YAAA,QAAA,UAAA,wBAAA,cAAA,aAAA,cAAA,aAAA,sBAAA,WAAA,oBAAA,UAAA,cAAA,eAAA,0BAAA,cAAA,WAAA;EAxClC,IAAI,sBAAsB,MAAM,QAAK,gBAAA,oBAAA,uBAAA,QAAA,mBAAA,YAAA,wBAAA,6BAAA,YAAA,UAAA,2BAuCL,UAAI,wBACN,YAAI,QAAA,YAAA,QAAA,UAAA,wBAAA,cAAA,aAAA,cAAA,aAAA,qBAAA,WAAA,oBAAA,UAAA,cAAA,eAAA,0BAAA,cAAA,WAAA;EApClC,IAAI,sBAAsB,MAAM,QAAK,gBAAA,oBAAA,uBAAA,QAAA,mBAAA,YAAA,wBAAA,6BAAA,YAAA,UAAA,2BAmCL,UAAI,wBACN,YAAI,QAAA,YAAA,QAAA,UAAA,wBAAA,cAAA,aAAA,cAAA,aAAA,qBAAA,WAAA,oBAAA,UAAA,cAAA,eAAA,0BAAA,cAAA,WAAA;EAhClC,OAAO,sBAAsB,MAAM,QAAK,gBAAA,oBAAA,uBAAA,QAAA,mBAAA,YAAA,wBAAA,6BAAA,YAAA,UAAA,2BA+BR,UAAI,wBACN,YAAI,QAAA,YAAA,QAAA,UAAA,wBAAA,cAAA,aAAA,cAAA,aAAA,wBAAA,WAAA,oBAAA,UAAA,cAAA,eAAA,0BAAA,cAAA,WAAA;EA5BlC,MAAM,sBAAsB,MAAM,QAAK,gBAAA,oBAAA,uBAAA,QAAA,mBAAA,YAAA,wBAAA,6BAAA,YAAA,UAAA,2BA2BP,UAAI,wBACN,YAAI,QAAA,YAAA,QAAA,UAAA,wBAAA,cAAA,aAAA,cAAA,aAAA,uBAAA,WAAA,oBAAA,UAAA,cAAA,eAAA,0BAAA,cAAA,WAAA;EAxBlC,QAAQ,sBAAsB,MAAM,QAAK,gBAAA,oBAAA,uBAAA,QAAA,mBAAA,YAAA,wBAAA,6BAAA,YAAA,UAAA,2BAuBT,UAAI,wBACN,YAAI,QAAA,YAAA,QAAA,UAAA,wBAAA,cAAA,aAAA,cAAA,aAAA,yBAAA,WAAA,oBAAA,UAAA,cAAA,eAAA,0BAAA,cAAA,WAAA;;KAnBvB,oBAAoB,oBAAoB,mBAAmB,UACpE,kBACC,IACA,OACD;KAES,UACX,0BACA,wBACG,oBACH,uBACG,QACA,mBACC,YACA,wBACC,6BACC,YACI,UACL,2BAA2B,UAC1B,wBAAwB,YACpB,QAAQ,YACR,QAAQ,UACZ,wBAAwB,YACpB,aAAa,YACb,aAAa;UAGP,uBAChB,kBAAkB,gBAClB,+BACA,gBAAgB,SAAS,QACzB,oBACA,4DACA,sBAAsB,sCACtB,kDACA,uBACA,8CACA,yBAAyB,eAAe,kBAAkB,eAEzD,iBAED,mBACG,UAAU,WAAW,UAAU;EAGlC,kBAAkB;;EAElB;EACA,WAAW;EACX,qBAAqB,YACpB,WACA,SACA,qBAEA;EAED,gBAAgB;EAChB,0BAA0B,UAAU,WAAW,SAAS,UAAU;EAClE,uBAAuB;EACvB,wBAAwB;EACxB,wBAAwB,QAAQ,0BAA0B;EAC1D,yBAAyB,QAAQ,sBAAsB;EACvD,wBAAwB,eAAe,WAAW,UAAU;EAC5D,wBAAwB;EACxB,mBAAmB;;;;;;;;;;;EAWnB,SAAS"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { i as publishConstructEvents } from "./functions-DCIfCRR-.mjs";
|
|
2
|
+
import { n as ResponseBuilder, t as Endpoint } from "./Endpoint-CQAeh1Rh.mjs";
|
|
3
|
+
import { a as createHonoHeaders, i as createHonoCookies } from "./lazyAccessors-CFanua0O.mjs";
|
|
4
|
+
import { n as executeWithAuditTransaction, t as createAuditContext } from "./processAudits-BpRlPQMW.mjs";
|
|
4
5
|
import { wrapError } from "@geekmidas/errors";
|
|
5
|
-
import { ServiceDiscovery, runWithRequestContext } from "@geekmidas/services";
|
|
6
|
-
import { withRlsContext } from "@geekmidas/db/rls";
|
|
7
|
-
import qs from "qs";
|
|
8
6
|
import { setCookie } from "hono/cookie";
|
|
7
|
+
import { withRlsContext } from "@geekmidas/db/rls";
|
|
9
8
|
import { checkRateLimit, getRateLimitHeaders } from "@geekmidas/rate-limit";
|
|
9
|
+
import { ServiceDiscovery, runWithRequestContext } from "@geekmidas/services";
|
|
10
10
|
import { Hono } from "hono";
|
|
11
11
|
import { logger } from "hono/logger";
|
|
12
12
|
import { timing } from "hono/timing";
|
|
13
13
|
import { validator } from "hono/validator";
|
|
14
14
|
import path from "node:path";
|
|
15
15
|
import fg from "fast-glob";
|
|
16
|
-
|
|
16
|
+
import qs from "qs";
|
|
17
17
|
//#region src/endpoints/helpers.ts
|
|
18
18
|
/**
|
|
19
19
|
* Discovers and imports all Endpoint instances from the specified route patterns.
|
|
@@ -47,8 +47,7 @@ async function getEndpointsFromRoutes(routes, cwd) {
|
|
|
47
47
|
const stream = fg.stream(routes, { cwd });
|
|
48
48
|
const endpoints = [];
|
|
49
49
|
for await (const f of stream) {
|
|
50
|
-
const
|
|
51
|
-
const route = await import(routePath);
|
|
50
|
+
const route = await import(path.resolve(cwd, f.toString()));
|
|
52
51
|
const handlers = Object.values(route).filter((value) => {
|
|
53
52
|
return Endpoint.isEndpoint(value);
|
|
54
53
|
});
|
|
@@ -56,7 +55,6 @@ async function getEndpointsFromRoutes(routes, cwd) {
|
|
|
56
55
|
}
|
|
57
56
|
return endpoints;
|
|
58
57
|
}
|
|
59
|
-
|
|
60
58
|
//#endregion
|
|
61
59
|
//#region src/endpoints/parseHonoQuery.ts
|
|
62
60
|
/**
|
|
@@ -70,7 +68,6 @@ function parseHonoQuery(c) {
|
|
|
70
68
|
const queryString = url.slice(queryIndex + 1);
|
|
71
69
|
return qs.parse(queryString);
|
|
72
70
|
}
|
|
73
|
-
|
|
74
71
|
//#endregion
|
|
75
72
|
//#region src/endpoints/HonoEndpointAdaptor.ts
|
|
76
73
|
/**
|
|
@@ -97,12 +94,13 @@ function analyzeEndpointFeatures(endpoint) {
|
|
|
97
94
|
};
|
|
98
95
|
}
|
|
99
96
|
var HonoEndpoint = class HonoEndpoint {
|
|
97
|
+
endpoint;
|
|
100
98
|
constructor(endpoint) {
|
|
101
99
|
this.endpoint = endpoint;
|
|
102
100
|
}
|
|
103
101
|
static isDev = process.env.NODE_ENV === "development";
|
|
104
102
|
static async validate(c, data, schema) {
|
|
105
|
-
if (!schema) return
|
|
103
|
+
if (!schema) return;
|
|
106
104
|
const parsed = await Endpoint.validate(schema, data);
|
|
107
105
|
if (parsed.issues) return c.json(parsed.issues, 422);
|
|
108
106
|
return parsed.value;
|
|
@@ -157,7 +155,7 @@ var HonoEndpoint = class HonoEndpoint {
|
|
|
157
155
|
const handler = async (c) => {
|
|
158
156
|
const startTime = Date.now();
|
|
159
157
|
const requestId = c.req.header("X-Request-ID") ?? crypto.randomUUID();
|
|
160
|
-
const logger
|
|
158
|
+
const logger = endpoint.logger.child({
|
|
161
159
|
requestId,
|
|
162
160
|
endpoint: endpoint.fullPath,
|
|
163
161
|
route: endpoint.route,
|
|
@@ -167,7 +165,7 @@ var HonoEndpoint = class HonoEndpoint {
|
|
|
167
165
|
});
|
|
168
166
|
c.header("X-Request-ID", requestId);
|
|
169
167
|
return runWithRequestContext({
|
|
170
|
-
logger
|
|
168
|
+
logger,
|
|
171
169
|
requestId,
|
|
172
170
|
startTime
|
|
173
171
|
}, async () => {
|
|
@@ -178,31 +176,30 @@ var HonoEndpoint = class HonoEndpoint {
|
|
|
178
176
|
const rawDb = features.hasDatabase ? await serviceDiscovery.register([endpoint.databaseService]).then((s) => s[endpoint.databaseService?.serviceName]) : void 0;
|
|
179
177
|
const session = await endpoint.getSession({
|
|
180
178
|
services,
|
|
181
|
-
logger
|
|
179
|
+
logger,
|
|
182
180
|
header,
|
|
183
181
|
cookie,
|
|
184
182
|
...rawDb !== void 0 && { db: rawDb }
|
|
185
183
|
});
|
|
186
|
-
|
|
184
|
+
if (!await endpoint.authorize({
|
|
187
185
|
header,
|
|
188
186
|
cookie,
|
|
189
187
|
services,
|
|
190
|
-
logger
|
|
188
|
+
logger,
|
|
191
189
|
session,
|
|
192
190
|
...rawDb !== void 0 && { db: rawDb },
|
|
193
191
|
body: features.hasBodyValidation ? c.req.valid("json") : void 0,
|
|
194
192
|
query: features.hasQueryValidation ? c.req.valid("query") : void 0,
|
|
195
193
|
params: features.hasParamValidation ? c.req.valid("param") : void 0
|
|
196
|
-
})
|
|
197
|
-
|
|
198
|
-
logger$1.warn("Forbidden access attempt");
|
|
194
|
+
})) {
|
|
195
|
+
logger.warn("Forbidden access attempt");
|
|
199
196
|
return c.json({ error: "Forbidden" }, 403);
|
|
200
197
|
}
|
|
201
198
|
if (features.hasRateLimit) {
|
|
202
199
|
const rateLimitInfo = await checkRateLimit(endpoint.rateLimit, {
|
|
203
200
|
header,
|
|
204
201
|
services,
|
|
205
|
-
logger
|
|
202
|
+
logger,
|
|
206
203
|
session,
|
|
207
204
|
path: c.req.path,
|
|
208
205
|
method: endpoint.method
|
|
@@ -210,29 +207,28 @@ var HonoEndpoint = class HonoEndpoint {
|
|
|
210
207
|
const rateLimitHeaders = getRateLimitHeaders(rateLimitInfo, endpoint.rateLimit);
|
|
211
208
|
for (const [key, value] of Object.entries(rateLimitHeaders)) if (value) c.header(key, value);
|
|
212
209
|
}
|
|
213
|
-
const auditContext = features.hasAudits ? await createAuditContext(endpoint, serviceDiscovery, logger
|
|
210
|
+
const auditContext = features.hasAudits ? await createAuditContext(endpoint, serviceDiscovery, logger, {
|
|
214
211
|
session,
|
|
215
212
|
header,
|
|
216
213
|
cookie,
|
|
217
214
|
services
|
|
218
215
|
}) : void 0;
|
|
219
216
|
const audits = features.hasAudits ? endpoint.audits : [];
|
|
220
|
-
if (features.hasAudits && !auditContext) logger
|
|
217
|
+
if (features.hasAudits && !auditContext) logger.warn("No auditor storage service available");
|
|
221
218
|
const rlsContext = features.hasRls && rawDb !== void 0 ? await endpoint.rlsConfig?.extractor({
|
|
222
219
|
services,
|
|
223
220
|
session,
|
|
224
221
|
header,
|
|
225
222
|
cookie,
|
|
226
|
-
logger
|
|
223
|
+
logger
|
|
227
224
|
}) : void 0;
|
|
228
|
-
const
|
|
229
|
-
const
|
|
230
|
-
const baseDb = sameDatabase ? auditor?.getTransaction?.() ?? rawDb : rawDb;
|
|
225
|
+
const { output, metadata } = await executeWithAuditTransaction(auditContext, async (auditor) => {
|
|
226
|
+
const baseDb = auditContext?.storage?.databaseServiceName && auditContext.storage.databaseServiceName === endpoint.databaseService?.serviceName ? auditor?.getTransaction?.() ?? rawDb : rawDb;
|
|
231
227
|
const executeHandler = async (db) => {
|
|
232
228
|
const responseBuilder = new ResponseBuilder();
|
|
233
229
|
const response = await endpoint.handler({
|
|
234
230
|
services,
|
|
235
|
-
logger
|
|
231
|
+
logger,
|
|
236
232
|
body: features.hasBodyValidation ? c.req.valid("json") : void 0,
|
|
237
233
|
query: features.hasQueryValidation ? c.req.valid("query") : void 0,
|
|
238
234
|
params: features.hasParamValidation ? c.req.valid("param") : void 0,
|
|
@@ -243,40 +239,38 @@ var HonoEndpoint = class HonoEndpoint {
|
|
|
243
239
|
db
|
|
244
240
|
}, responseBuilder);
|
|
245
241
|
let data = response;
|
|
246
|
-
let metadata
|
|
242
|
+
let metadata = responseBuilder.getMetadata();
|
|
247
243
|
if (Endpoint.hasMetadata(response)) {
|
|
248
244
|
data = response.data;
|
|
249
|
-
metadata
|
|
245
|
+
metadata = response.metadata;
|
|
250
246
|
}
|
|
251
|
-
const output$1 = endpoint.outputSchema ? await endpoint.parseOutput(data) : void 0;
|
|
252
247
|
return {
|
|
253
|
-
output:
|
|
254
|
-
metadata
|
|
248
|
+
output: endpoint.outputSchema ? await endpoint.parseOutput(data) : void 0,
|
|
249
|
+
metadata,
|
|
255
250
|
responseBuilder
|
|
256
251
|
};
|
|
257
252
|
};
|
|
258
253
|
if (features.hasRls && rlsContext && baseDb) return withRlsContext(baseDb, rlsContext, async (trx) => executeHandler(trx), { prefix: endpoint.rlsConfig?.prefix });
|
|
259
254
|
return executeHandler(baseDb);
|
|
260
|
-
}, async (result
|
|
255
|
+
}, async (result, auditor) => {
|
|
261
256
|
if (!audits?.length) return;
|
|
262
257
|
for (const audit of audits) {
|
|
263
|
-
if (audit.when && !audit.when(result
|
|
264
|
-
const payload = audit.payload(result
|
|
265
|
-
const entityId = audit.entityId?.(result
|
|
258
|
+
if (audit.when && !audit.when(result.output)) continue;
|
|
259
|
+
const payload = audit.payload(result.output);
|
|
260
|
+
const entityId = audit.entityId?.(result.output);
|
|
266
261
|
auditor.audit(audit.type, payload, {
|
|
267
262
|
table: audit.table,
|
|
268
263
|
entityId
|
|
269
264
|
});
|
|
270
265
|
}
|
|
271
266
|
}, { db: rawDb });
|
|
272
|
-
const { output, metadata } = result;
|
|
273
267
|
try {
|
|
274
268
|
let status = endpoint.status;
|
|
275
269
|
if (metadata.status) status = metadata.status;
|
|
276
270
|
if (metadata.headers) for (const [key, value] of Object.entries(metadata.headers)) c.header(key, value);
|
|
277
271
|
if (metadata.cookies) for (const [name, { value, options }] of metadata.cookies) setCookie(c, name, value, options);
|
|
278
|
-
if (features.hasEvents && Endpoint.isSuccessStatus(status)) await publishConstructEvents(endpoint, output, serviceDiscovery, logger
|
|
279
|
-
if (HonoEndpoint.isDev) logger
|
|
272
|
+
if (features.hasEvents && Endpoint.isSuccessStatus(status)) await publishConstructEvents(endpoint, output, serviceDiscovery, logger);
|
|
273
|
+
if (HonoEndpoint.isDev) logger.info({
|
|
280
274
|
status,
|
|
281
275
|
body: output
|
|
282
276
|
}, "Outgoing response");
|
|
@@ -284,18 +278,18 @@ var HonoEndpoint = class HonoEndpoint {
|
|
|
284
278
|
if (!(metadata.headers && hasContentTypeHeader(metadata.headers))) c.header("content-type", endpoint.responseType);
|
|
285
279
|
return c.body(output, status);
|
|
286
280
|
} catch (validationError) {
|
|
287
|
-
logger
|
|
281
|
+
logger.error(validationError, "Output validation failed");
|
|
288
282
|
const error = wrapError(validationError, 422, "Response validation failed");
|
|
289
|
-
if (HonoEndpoint.isDev) logger
|
|
283
|
+
if (HonoEndpoint.isDev) logger.info({
|
|
290
284
|
status: error.statusCode,
|
|
291
285
|
body: error
|
|
292
286
|
}, "Outgoing response");
|
|
293
287
|
return c.json(error, error.statusCode);
|
|
294
288
|
}
|
|
295
289
|
} catch (e) {
|
|
296
|
-
logger
|
|
290
|
+
logger.error(e, "Error processing endpoint request");
|
|
297
291
|
const error = wrapError(e, 500, "Internal Server Error");
|
|
298
|
-
if (HonoEndpoint.isDev) logger
|
|
292
|
+
if (HonoEndpoint.isDev) logger.info({
|
|
299
293
|
status: error.statusCode,
|
|
300
294
|
body: error
|
|
301
295
|
}, "Outgoing response");
|
|
@@ -316,7 +310,7 @@ var HonoEndpoint = class HonoEndpoint {
|
|
|
316
310
|
});
|
|
317
311
|
}
|
|
318
312
|
};
|
|
319
|
-
|
|
320
313
|
//#endregion
|
|
321
|
-
export { HonoEndpoint };
|
|
322
|
-
|
|
314
|
+
export { HonoEndpoint as t };
|
|
315
|
+
|
|
316
|
+
//# sourceMappingURL=HonoEndpointAdaptor-Aui-x9Lg.mjs.map
|