@geekmidas/constructs 10.0.0-alpha.4 → 10.0.0-alpha.40
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,30 +1,23 @@
|
|
|
1
|
-
import "../
|
|
2
|
-
import { Function } from "../index-
|
|
3
|
-
import "../
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
1
|
+
import { t as StandardSchemaV1 } from "../index-CeEtxDmK.cjs";
|
|
2
|
+
import { r as Function } from "../index-B0kxstwf.cjs";
|
|
3
|
+
import { t as HttpMethod } from "../types-DMuSQeLL.cjs";
|
|
4
|
+
import { c as EndpointSchemas, i as Endpoint } from "../Endpoint-Dp5AKIXl.cjs";
|
|
5
|
+
import { t as Queue } from "../Queue-CpQIGB_2.cjs";
|
|
6
|
+
import { t as Subscriber } from "../Subscriber-B91YSkZt.cjs";
|
|
7
|
+
import { t as KyselyDatabase } from "../kysely-DVF8wOT4.cjs";
|
|
8
|
+
import { r as Fake } from "../external-api-LBfE-q3g.cjs";
|
|
9
9
|
import { Logger } from "@geekmidas/logger";
|
|
10
10
|
import { ComposableStandardSchema, InferComposableStandardSchema, InferStandardSchema } from "@geekmidas/schema";
|
|
11
11
|
import { Service, ServiceDiscovery, ServiceRecord } from "@geekmidas/services";
|
|
12
|
-
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
13
12
|
import { AuditStorage, AuditableAction, Auditor } from "@geekmidas/audit";
|
|
13
|
+
import { EventPublisher, ExtractPublisherMessage } from "@geekmidas/events";
|
|
14
|
+
import { TEST_CONTEXT_HEADER } from "@geekmidas/testkit/context";
|
|
14
15
|
import { HttpHandler } from "msw";
|
|
15
|
-
|
|
16
|
+
import { Browser } from "@geekmidas/testkit/browser";
|
|
17
|
+
import { FakerFactory } from "@geekmidas/testkit/faker";
|
|
18
|
+
import { Mailbox } from "@geekmidas/testkit/mailbox";
|
|
19
|
+
import { Kysely } from "kysely";
|
|
16
20
|
//#region src/endpoints/MswEndpointAdaptor.d.ts
|
|
17
|
-
/**
|
|
18
|
-
* Header used to identify which test context a request belongs to.
|
|
19
|
-
* Each concurrent test registers its own context (services, db transaction, etc.)
|
|
20
|
-
* and the MSW handler looks it up by this header value.
|
|
21
|
-
*/
|
|
22
|
-
declare const TEST_CONTEXT_HEADER = "x-test-context-id";
|
|
23
|
-
/**
|
|
24
|
-
* Per-test context containing an isolated ServiceDiscovery instance.
|
|
25
|
-
* Registered in the context map and looked up per-request via the context ID header.
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
21
|
/**
|
|
29
22
|
* Options for creating MSW handlers from endpoint constructs.
|
|
30
23
|
*
|
|
@@ -65,16 +58,16 @@ interface CreateMswHandlersOptions {
|
|
|
65
58
|
}
|
|
66
59
|
/**
|
|
67
60
|
* Options for registering a per-test context.
|
|
68
|
-
* Follows the same pattern as TestRequestAdaptor — services, database
|
|
69
|
-
*
|
|
61
|
+
* Follows the same pattern as TestRequestAdaptor — services, database and
|
|
62
|
+
* auditorStorage are provided explicitly. A topic is a service under its own
|
|
63
|
+
* name, so a recorder in `services` (`{ users: recorder }`) captures what an
|
|
64
|
+
* endpoint publishes to it.
|
|
70
65
|
*/
|
|
71
66
|
interface RegisterContextOptions {
|
|
72
67
|
/** Service instances keyed by serviceName */
|
|
73
68
|
services?: Record<string, unknown>;
|
|
74
69
|
/** Database instance — required when endpoints use .database() */
|
|
75
70
|
database?: unknown;
|
|
76
|
-
/** Event publisher service definition */
|
|
77
|
-
publisher?: Service;
|
|
78
71
|
/** Audit storage instance — required when endpoints use .auditor() */
|
|
79
72
|
auditorStorage?: unknown;
|
|
80
73
|
}
|
|
@@ -102,8 +95,7 @@ interface CreateMswHandlersResult {
|
|
|
102
95
|
* @param options - Configuration including baseURL
|
|
103
96
|
* @returns MSW handlers, the Hono app, and context management functions
|
|
104
97
|
*/
|
|
105
|
-
declare function createMswHandlers(endpoints: Endpoint<any, any, any, any, any, any>[], options: CreateMswHandlersOptions): CreateMswHandlersResult;
|
|
106
|
-
//# sourceMappingURL=MswEndpointAdaptor.d.ts.map
|
|
98
|
+
export declare function createMswHandlers(endpoints: Endpoint<any, any, any, any, any, any>[], options: CreateMswHandlersOptions): CreateMswHandlersResult;
|
|
107
99
|
//#endregion
|
|
108
100
|
//#region src/endpoints/TestEndpointAdaptor.d.ts
|
|
109
101
|
type TestHttpResponse<TBody = any> = {
|
|
@@ -111,13 +103,13 @@ type TestHttpResponse<TBody = any> = {
|
|
|
111
103
|
status: number;
|
|
112
104
|
headers: Record<string, string | string[]>;
|
|
113
105
|
};
|
|
114
|
-
declare class TestEndpointAdaptor<TRoute extends string, TMethod extends HttpMethod, TInput extends EndpointSchemas = {}, TOutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TSession = unknown,
|
|
106
|
+
export declare class TestEndpointAdaptor<TRoute extends string, TMethod extends HttpMethod, TInput extends EndpointSchemas = {}, TOutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TSession = unknown, TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>, TDatabase = undefined, TDatabaseServiceName extends string = string> {
|
|
115
107
|
private readonly endpoint;
|
|
116
108
|
private serviceDiscovery;
|
|
117
|
-
static getDefaultServiceDiscover<TRoute extends string, TMethod extends HttpMethod, TInput extends EndpointSchemas = {}, TOutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TSession = unknown,
|
|
118
|
-
constructor(endpoint: Endpoint<TRoute, TMethod, TInput, TOutSchema, TServices, TLogger, TSession,
|
|
119
|
-
fullRequest(ctx: TestRequestAdaptor<TInput, TServices,
|
|
120
|
-
request(ctx: TestRequestAdaptor<TInput, TServices,
|
|
109
|
+
static getDefaultServiceDiscover<TRoute extends string, TMethod extends HttpMethod, TInput extends EndpointSchemas = {}, TOutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TSession = unknown, TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>, TDatabase = undefined, TDatabaseServiceName extends string = string>(_endpoint: Endpoint<TRoute, TMethod, TInput, TOutSchema, TServices, TLogger, TSession, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>): any;
|
|
110
|
+
constructor(endpoint: Endpoint<TRoute, TMethod, TInput, TOutSchema, TServices, TLogger, TSession, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>, serviceDiscovery?: ServiceDiscovery<any>);
|
|
111
|
+
fullRequest(ctx: TestRequestAdaptor<TInput, TServices, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName>): Promise<TestHttpResponse<InferStandardSchema<TOutSchema>>>;
|
|
112
|
+
request(ctx: TestRequestAdaptor<TInput, TServices, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName>): Promise<InferStandardSchema<TOutSchema>>;
|
|
121
113
|
}
|
|
122
114
|
/**
|
|
123
115
|
* Conditional audit storage requirement - required when TAuditStorage is configured
|
|
@@ -133,30 +125,27 @@ type DatabaseRequirement<TDatabase = undefined> = TDatabase extends undefined ?
|
|
|
133
125
|
/** Database instance - required when endpoint uses .database() */
|
|
134
126
|
database: TDatabase;
|
|
135
127
|
};
|
|
136
|
-
type TestRequestAdaptor<TInput extends EndpointSchemas = {}, TServices extends Service[] = [],
|
|
128
|
+
type TestRequestAdaptor<TInput extends EndpointSchemas = {}, TServices extends Service[] = [], TAuditStorage extends AuditStorage | undefined = undefined, _TAuditStorageServiceName extends string = string, TDatabase = undefined, _TDatabaseServiceName extends string = string> = {
|
|
137
129
|
services: ServiceRecord<TServices>;
|
|
138
130
|
headers: Record<string, string>;
|
|
139
|
-
publisher?: Service<TEventPublisherServiceName, TEventPublisher>;
|
|
140
131
|
} & InferComposableStandardSchema<TInput> & AuditStorageRequirement<TAuditStorage> & DatabaseRequirement<TDatabase>;
|
|
141
132
|
//#endregion
|
|
142
133
|
//#region src/functions/TestFunctionAdaptor.d.ts
|
|
143
|
-
declare class TestFunctionAdaptor<TInput extends ComposableStandardSchema | undefined = undefined, TOutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger,
|
|
134
|
+
export declare class TestFunctionAdaptor<TInput extends ComposableStandardSchema | undefined = undefined, TOutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>> {
|
|
144
135
|
private readonly fn;
|
|
145
136
|
private serviceDiscovery;
|
|
146
|
-
static getDefaultServiceDiscovery<TInput extends ComposableStandardSchema | undefined = undefined, TOutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger,
|
|
147
|
-
constructor(fn: Function<TInput, TServices, TLogger, TOutSchema,
|
|
148
|
-
invoke(ctx: TestFunctionRequest<TInput, TServices,
|
|
137
|
+
static getDefaultServiceDiscovery<TInput extends ComposableStandardSchema | undefined = undefined, TOutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>>(_fn: Function<TInput, TServices, TLogger, TOutSchema, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction, any>): any;
|
|
138
|
+
constructor(fn: Function<TInput, TServices, TLogger, TOutSchema, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction, any>, serviceDiscovery?: ServiceDiscovery<any>);
|
|
139
|
+
invoke(ctx: TestFunctionRequest<TInput, TServices, TDatabase, TAuditAction>): Promise<InferStandardSchema<TOutSchema>>;
|
|
149
140
|
}
|
|
150
|
-
type TestFunctionRequest<TInput extends ComposableStandardSchema | undefined = undefined, TServices extends Service[] = [],
|
|
141
|
+
type TestFunctionRequest<TInput extends ComposableStandardSchema | undefined = undefined, TServices extends Service[] = [], TDatabase = undefined, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>> = {
|
|
151
142
|
input: InferComposableStandardSchema<TInput>;
|
|
152
143
|
services: ServiceRecord<TServices>;
|
|
153
|
-
publisher?: Service<TEventPublisherServiceName, TEventPublisher>;
|
|
154
144
|
db?: TDatabase;
|
|
155
145
|
auditor?: Auditor<TAuditAction>;
|
|
156
146
|
} & InferComposableStandardSchema<{
|
|
157
147
|
input: TInput;
|
|
158
148
|
}>;
|
|
159
|
-
//# sourceMappingURL=TestFunctionAdaptor.d.ts.map
|
|
160
149
|
//#endregion
|
|
161
150
|
//#region src/queue/TestQueueAdaptor.d.ts
|
|
162
151
|
/**
|
|
@@ -168,10 +157,10 @@ type TestFunctionRequest<TInput extends ComposableStandardSchema | undefined = u
|
|
|
168
157
|
* const adapter = new TestQueueAdaptor(ordersQueue);
|
|
169
158
|
* await adapter.invoke({ messages: [{ orderId: '123' }] });
|
|
170
159
|
*/
|
|
171
|
-
declare class TestQueueAdaptor<TName extends string = string, TMessage extends StandardSchemaV1 = StandardSchemaV1, TServices extends Service[] = [], TLogger extends Logger = Logger> {
|
|
160
|
+
export declare class TestQueueAdaptor<TName extends string = string, TMessage extends StandardSchemaV1 = StandardSchemaV1, TServices extends Service[] = [], TLogger extends Logger = Logger> {
|
|
172
161
|
private readonly queue;
|
|
173
162
|
private serviceDiscovery;
|
|
174
|
-
static getDefaultServiceDiscovery():
|
|
163
|
+
static getDefaultServiceDiscovery(): any;
|
|
175
164
|
constructor(queue: Queue<TName, TMessage, TServices, TLogger>, serviceDiscovery?: ServiceDiscovery<any>);
|
|
176
165
|
invoke(request: TestQueueRequest<TMessage, TServices>): Promise<unknown>;
|
|
177
166
|
}
|
|
@@ -179,17 +168,16 @@ type TestQueueRequest<TMessage extends StandardSchemaV1 = StandardSchemaV1, TSer
|
|
|
179
168
|
messages: InferStandardSchema<TMessage>[];
|
|
180
169
|
services?: ServiceRecord<TServices>;
|
|
181
170
|
};
|
|
182
|
-
//# sourceMappingURL=TestQueueAdaptor.d.ts.map
|
|
183
171
|
//#endregion
|
|
184
172
|
//#region src/subscribers/TestSubscriberAdaptor.d.ts
|
|
185
173
|
type ExtractEventPayloads<TPublisher extends EventPublisher<any> | undefined, TEventTypes extends any[]> = TPublisher extends EventPublisher<any> ? Extract<ExtractPublisherMessage<TPublisher>, {
|
|
186
174
|
type: TEventTypes[number];
|
|
187
175
|
}> : never;
|
|
188
|
-
declare class TestSubscriberAdaptor<TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TEventPublisher extends EventPublisher<any> | undefined = undefined,
|
|
176
|
+
export declare class TestSubscriberAdaptor<TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TEventPublisher extends EventPublisher<any> | undefined = undefined, TSubscribedEvents extends ExtractPublisherMessage<TEventPublisher>['type'][] = ExtractPublisherMessage<TEventPublisher>['type'][]> {
|
|
189
177
|
private readonly subscriber;
|
|
190
178
|
private serviceDiscovery;
|
|
191
|
-
static getDefaultServiceDiscovery():
|
|
192
|
-
constructor(subscriber: Subscriber<TServices, TLogger, OutSchema, TEventPublisher,
|
|
179
|
+
static getDefaultServiceDiscovery(): any;
|
|
180
|
+
constructor(subscriber: Subscriber<TServices, TLogger, OutSchema, TEventPublisher, TSubscribedEvents>, serviceDiscovery?: ServiceDiscovery<any>);
|
|
193
181
|
invoke(request: TestSubscriberRequest<TEventPublisher, TSubscribedEvents, TServices>): Promise<InferStandardSchema<OutSchema>>;
|
|
194
182
|
private filterEvents;
|
|
195
183
|
}
|
|
@@ -198,5 +186,219 @@ type TestSubscriberRequest<TEventPublisher extends EventPublisher<any> | undefin
|
|
|
198
186
|
services?: ServiceRecord<TServices>;
|
|
199
187
|
};
|
|
200
188
|
//#endregion
|
|
201
|
-
|
|
189
|
+
//#region src/testing/manifest.d.ts
|
|
190
|
+
/**
|
|
191
|
+
* The test manifest: what `gkm test` knows about an app, written down for the
|
|
192
|
+
* suite it starts.
|
|
193
|
+
*
|
|
194
|
+
* `gkm test` discovers the constructs, reconciles the test stage and resolves
|
|
195
|
+
* its environment — then, until this existed, threw all of it away and left a
|
|
196
|
+
* test to declare it again by hand. The manifest keeps it: which construct and
|
|
197
|
+
* endpoint is exported where, and the environment the test stage resolved,
|
|
198
|
+
* under the keys the constructs themselves derive. A feature test is built from
|
|
199
|
+
* it, so nothing a test says can drift from what the app declares.
|
|
200
|
+
*/
|
|
201
|
+
/** Where an export lives: what an import statement has to say. */
|
|
202
|
+
interface TestManifestSource {
|
|
203
|
+
/** Absolute path to the module. */
|
|
204
|
+
file: string;
|
|
205
|
+
/** The name it is exported as. */
|
|
206
|
+
export: string;
|
|
207
|
+
}
|
|
208
|
+
interface TestManifest {
|
|
209
|
+
/** The stage the environment was resolved for — `test`. */
|
|
210
|
+
stage: string;
|
|
211
|
+
/** Every construct the app declares, by id. */
|
|
212
|
+
constructs: Record<string, {
|
|
213
|
+
kind: string;
|
|
214
|
+
source: TestManifestSource;
|
|
215
|
+
}>;
|
|
216
|
+
/** Every endpoint, and the surface that serves it. */
|
|
217
|
+
endpoints: {
|
|
218
|
+
surface: string;
|
|
219
|
+
source: TestManifestSource;
|
|
220
|
+
}[];
|
|
221
|
+
/**
|
|
222
|
+
* The test stage's environment — reconcile's output, keyed as the
|
|
223
|
+
* constructs derive their keys.
|
|
224
|
+
*/
|
|
225
|
+
env: Record<string, string>;
|
|
226
|
+
}
|
|
227
|
+
/** The environment variable `gkm test` names the manifest in. */
|
|
228
|
+
export declare const TEST_MANIFEST_ENV = "GKM_TEST_MANIFEST";
|
|
229
|
+
/**
|
|
230
|
+
* Read a test manifest: from a path, a `file:` URL, or — given nothing — the
|
|
231
|
+
* one `gkm test` named in `GKM_TEST_MANIFEST`.
|
|
232
|
+
*/
|
|
233
|
+
export declare function loadTestManifest(from?: string | URL): TestManifest;
|
|
234
|
+
/** A feature test ran without a manifest to build itself from. */
|
|
235
|
+
export declare class NoTestManifest extends Error {
|
|
236
|
+
constructor();
|
|
237
|
+
}
|
|
238
|
+
//#endregion
|
|
239
|
+
//#region src/testing/featureTest.d.ts
|
|
240
|
+
/** How each database's test factory is built, keyed by its service name. */
|
|
241
|
+
type FactoryBuilders = Record<string, (db: Kysely<any>) => unknown>;
|
|
242
|
+
interface FeatureTestOptions<TBrowser extends Browser, TFactories extends FactoryBuilders = {}> {
|
|
243
|
+
/**
|
|
244
|
+
* What the app declares and the environment its test stage resolved.
|
|
245
|
+
* Defaults to the manifest `gkm test` names in `GKM_TEST_MANIFEST`.
|
|
246
|
+
*/
|
|
247
|
+
manifest?: TestManifest;
|
|
248
|
+
/**
|
|
249
|
+
* The app's modules, already imported, by the absolute path the manifest
|
|
250
|
+
* records for them. The generated harness imports them statically, from
|
|
251
|
+
* inside the app, so they resolve the way the app's own code does — its
|
|
252
|
+
* tsconfig paths included. A module not here is imported by path.
|
|
253
|
+
*/
|
|
254
|
+
modules?: Readonly<Record<string, Record<string, unknown>>>;
|
|
255
|
+
/** The browser each test gets — the generated one, with the app's clients. */
|
|
256
|
+
browser?: new () => TBrowser;
|
|
257
|
+
/**
|
|
258
|
+
* Each database's test factory — `createFactory` from
|
|
259
|
+
* `test/factories/<construct>.ts`, which the generated harness imports —
|
|
260
|
+
* keyed by the database's service name. Each is called once per test with
|
|
261
|
+
* that database's transaction, so what a test inserts through it is rolled
|
|
262
|
+
* back with everything else, and seen by the endpoints it calls.
|
|
263
|
+
*/
|
|
264
|
+
factories?: TFactories;
|
|
265
|
+
/**
|
|
266
|
+
* Each external API's fake — the default export of `test/fakes/<id>.ts`,
|
|
267
|
+
* which the generated harness imports — keyed by the API's construct id.
|
|
268
|
+
* An app fake is served at the URL the test stage resolved for it.
|
|
269
|
+
*/
|
|
270
|
+
fakes?: Readonly<Record<string, Fake>>;
|
|
271
|
+
}
|
|
272
|
+
/** Each database's schema, keyed by its service name. */
|
|
273
|
+
type DatabaseSchemas = Record<string, unknown>;
|
|
274
|
+
/**
|
|
275
|
+
* The app's databases for this test, by service name — `db.get('database')`.
|
|
276
|
+
*
|
|
277
|
+
* Each is this test's transaction on that database: opened by whatever reaches
|
|
278
|
+
* it first — the test, a factory, an endpoint — and the same one for all of
|
|
279
|
+
* them, rolled back after the test.
|
|
280
|
+
*/
|
|
281
|
+
interface TestDatabases<TDatabases extends DatabaseSchemas> {
|
|
282
|
+
get<K extends keyof TDatabases & string>(name: K): Promise<Kysely<TDatabases[K]>>;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Each of the app's databases' test factory, by service name —
|
|
286
|
+
* `await factories.get('database')`. Built on first use, on that database's
|
|
287
|
+
* transaction for this test — the one `db.get` returns — and the same factory
|
|
288
|
+
* for the rest of the test.
|
|
289
|
+
*/
|
|
290
|
+
interface TestFactories<TFactories extends FactoryBuilders> {
|
|
291
|
+
get<K extends keyof TFactories & string>(name: K): Promise<ReturnType<TFactories[K]>>;
|
|
292
|
+
}
|
|
293
|
+
interface FeatureContext<TBrowser extends Browser, TDatabases extends DatabaseSchemas = {}, TFactories extends FactoryBuilders = {}> {
|
|
294
|
+
/** This test's browser, already the global `fetch`. */
|
|
295
|
+
browser: TBrowser;
|
|
296
|
+
/**
|
|
297
|
+
* The app's own databases — not a tenant an auth server owns, not a
|
|
298
|
+
* reader — by service name: `await db.get('database')`. The same
|
|
299
|
+
* transaction the test's endpoints and factories use.
|
|
300
|
+
*/
|
|
301
|
+
db: TestDatabases<TDatabases>;
|
|
302
|
+
/**
|
|
303
|
+
* Each of the app's databases' test factory, by service name —
|
|
304
|
+
* `await factories.get('database')` — on the same transaction `db.get`
|
|
305
|
+
* returns.
|
|
306
|
+
*/
|
|
307
|
+
factories: TestFactories<TFactories>;
|
|
308
|
+
/**
|
|
309
|
+
* Testkit's faker — the one factories are handed — seeded from this test's
|
|
310
|
+
* name, so a failing test fails again with the same data, and so a test
|
|
311
|
+
* imports nothing to make some.
|
|
312
|
+
*/
|
|
313
|
+
faker: FakerFactory;
|
|
314
|
+
/** The mail sent to an address during this test, read from Mailpit. */
|
|
315
|
+
mailbox: (address: string) => Mailbox;
|
|
316
|
+
/**
|
|
317
|
+
* What this test published to a topic or enqueued on a queue, in order.
|
|
318
|
+
* Nothing is delivered — a subscriber or a worker is tested on its own, by
|
|
319
|
+
* handing it events — so this is where publishing is asserted.
|
|
320
|
+
*/
|
|
321
|
+
published: (channel: {
|
|
322
|
+
id: string;
|
|
323
|
+
}) => PublishedMessage[];
|
|
324
|
+
/**
|
|
325
|
+
* A subscriber, run on its own — handed events rather than delivered them —
|
|
326
|
+
* with this test's services: its databases resolve to this test's
|
|
327
|
+
* transactions, as an endpoint's do.
|
|
328
|
+
*/
|
|
329
|
+
subscriber: <S extends Subscriber<any, any, any, any, any>>(subscriber: S) => SubscriberAdaptorOf<S>;
|
|
330
|
+
/** A queue's worker, run on its own with this test's services. */
|
|
331
|
+
queue: <Q extends Queue<any, any, any, any>>(queue: Q) => QueueAdaptorOf<Q>;
|
|
332
|
+
}
|
|
333
|
+
type SubscriberAdaptorOf<S> = S extends Subscriber<infer TServices, infer TLogger, infer OutSchema, infer TEventPublisher, infer TSubscribedEvents> ? TestSubscriberAdaptor<TServices, TLogger, OutSchema, TEventPublisher, TSubscribedEvents> : never;
|
|
334
|
+
type QueueAdaptorOf<Q> = Q extends Queue<infer TName, infer TMessage, infer TServices, infer TLogger> ? TestQueueAdaptor<TName, TMessage, TServices, TLogger> : never;
|
|
335
|
+
/** The schema a database construct was declared with — what `db` is typed by. */
|
|
336
|
+
type DatabaseOf<C> = C extends KyselyDatabase<infer DB, any> ? DB : unknown;
|
|
337
|
+
/** One message as it was published: its type and its payload. */
|
|
338
|
+
interface PublishedMessage {
|
|
339
|
+
type: string;
|
|
340
|
+
payload: unknown;
|
|
341
|
+
}
|
|
342
|
+
type FeatureFn<TBrowser extends Browser, TDatabases extends DatabaseSchemas, TFactories extends FactoryBuilders> = (context: FeatureContext<TBrowser, TDatabases, TFactories>) => unknown;
|
|
343
|
+
interface FeatureIt<TBrowser extends Browser, TDatabases extends DatabaseSchemas = {}, TFactories extends FactoryBuilders = {}> {
|
|
344
|
+
(name: string, fn: FeatureFn<TBrowser, TDatabases, TFactories>, timeout?: number): void;
|
|
345
|
+
only(name: string, fn: FeatureFn<TBrowser, TDatabases, TFactories>, timeout?: number): void;
|
|
346
|
+
skip(name: string, fn: FeatureFn<TBrowser, TDatabases, TFactories>, timeout?: number): void;
|
|
347
|
+
}
|
|
348
|
+
export declare function featureTest<TBrowser extends Browser = Browser, TDatabases extends DatabaseSchemas = {}, TFactories extends FactoryBuilders = {}>(options?: FeatureTestOptions<TBrowser, TFactories>): FeatureIt<TBrowser, TDatabases, TFactories>;
|
|
349
|
+
/** What `signInWithMagicLink` uses of a better-auth client. */
|
|
350
|
+
interface MagicLinkAuthClient<TSession> {
|
|
351
|
+
signIn: {
|
|
352
|
+
magicLink(input: {
|
|
353
|
+
email: string;
|
|
354
|
+
}): Promise<{
|
|
355
|
+
error?: {
|
|
356
|
+
message?: string;
|
|
357
|
+
} | null;
|
|
358
|
+
}>;
|
|
359
|
+
};
|
|
360
|
+
getSession(): Promise<{
|
|
361
|
+
data: TSession | null;
|
|
362
|
+
}>;
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Sign a test's browser in the way a person does: ask the auth server for a
|
|
366
|
+
* magic link, open the email it sent, follow the link.
|
|
367
|
+
*
|
|
368
|
+
* What the generated `browser.signIn(email)` calls. The address's mail is
|
|
369
|
+
* cleared first — so the link is this request's, not one an earlier test left
|
|
370
|
+
* — and cleared again after the test, like any address a test reads. Returns
|
|
371
|
+
* the session the auth server then reports, as better-auth hands it back.
|
|
372
|
+
*/
|
|
373
|
+
export declare function signInWithMagicLink<TSession>(browser: Browser, auth: MagicLinkAuthClient<TSession>, email?: string): Promise<TSession>;
|
|
374
|
+
/** `browser.signIn` finished without a session. */
|
|
375
|
+
export declare class SignInFailed extends Error {
|
|
376
|
+
readonly email: string;
|
|
377
|
+
readonly reason: string;
|
|
378
|
+
constructor(email: string, reason: string);
|
|
379
|
+
}
|
|
380
|
+
/** A request reached an in-process server without a test to belong to. */
|
|
381
|
+
export declare class UnknownTestContext extends Error {
|
|
382
|
+
readonly url: string;
|
|
383
|
+
readonly id: string | undefined;
|
|
384
|
+
constructor(url: string, id: string | undefined);
|
|
385
|
+
}
|
|
386
|
+
/** `mailbox` was used in an app that declares no Email construct. */
|
|
387
|
+
export declare class NoInbox extends Error {
|
|
388
|
+
constructor();
|
|
389
|
+
}
|
|
390
|
+
/** `db.get(name)` named no database the test is handed. */
|
|
391
|
+
export declare class UnknownDatabase extends Error {
|
|
392
|
+
readonly database: string;
|
|
393
|
+
readonly known: readonly string[];
|
|
394
|
+
constructor(database: string, known: readonly string[]);
|
|
395
|
+
}
|
|
396
|
+
/** A factory keyed by a service name no database the app declares has. */
|
|
397
|
+
export declare class UnknownFactory extends Error {
|
|
398
|
+
readonly factory: string;
|
|
399
|
+
readonly known: readonly string[];
|
|
400
|
+
constructor(factory: string, known: readonly string[]);
|
|
401
|
+
}
|
|
402
|
+
//#endregion
|
|
403
|
+
export { type CreateMswHandlersOptions, type CreateMswHandlersResult, type DatabaseOf, type DatabaseSchemas, type FactoryBuilders, type FeatureContext, type FeatureIt, type FeatureTestOptions, type MagicLinkAuthClient, type RegisterContextOptions, TEST_CONTEXT_HEADER, type TestDatabases, type TestFactories, type TestManifest, type TestManifestSource };
|
|
202
404
|
//# sourceMappingURL=testing.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.d.cts","names":[],"sources":["../../src/endpoints/MswEndpointAdaptor.ts","../../src/endpoints/TestEndpointAdaptor.ts","../../src/functions/TestFunctionAdaptor.ts","../../src/queue/TestQueueAdaptor.ts","../../src/subscribers/TestSubscriberAdaptor.ts"
|
|
1
|
+
{"version":3,"file":"testing.d.cts","names":["TestBrowser"],"sources":["../../src/endpoints/MswEndpointAdaptor.ts","../../src/endpoints/TestEndpointAdaptor.ts","../../src/functions/TestFunctionAdaptor.ts","../../src/queue/TestQueueAdaptor.ts","../../src/subscribers/TestSubscriberAdaptor.ts","../../src/testing/manifest.ts","../../src/testing/featureTest.ts"],"mappings":"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"}
|