@geekmidas/constructs 10.0.0-alpha.1 → 10.0.0-alpha.100
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-CdhThxDI.mjs → Construct-B1vGBPme.mjs} +45 -33
- package/dist/Construct-B1vGBPme.mjs.map +1 -0
- package/dist/Construct-BQALFCh2.d.cts +230 -0
- package/dist/Construct-BQALFCh2.d.cts.map +1 -0
- package/dist/{Construct-roId57cU.cjs → Construct-DUSXuTHP.cjs} +65 -47
- package/dist/Construct-DUSXuTHP.cjs.map +1 -0
- package/dist/Construct-QXnl3VqT.d.mts +230 -0
- package/dist/Construct-QXnl3VqT.d.mts.map +1 -0
- package/dist/Cron-DI3nKoic.d.cts +45 -0
- package/dist/Cron-DI3nKoic.d.cts.map +1 -0
- package/dist/Cron-uYAHPnp7.d.mts +45 -0
- package/dist/Cron-uYAHPnp7.d.mts.map +1 -0
- package/dist/CronBuilder-C0Ek1-RA.cjs +121 -0
- package/dist/CronBuilder-C0Ek1-RA.cjs.map +1 -0
- package/dist/CronBuilder-DaSUm2Na.d.mts +47 -0
- package/dist/CronBuilder-DaSUm2Na.d.mts.map +1 -0
- package/dist/CronBuilder-Dmix_Pen.mjs +109 -0
- package/dist/CronBuilder-Dmix_Pen.mjs.map +1 -0
- package/dist/CronBuilder-g1lZLWyG.d.cts +47 -0
- package/dist/CronBuilder-g1lZLWyG.d.cts.map +1 -0
- package/dist/{Endpoint-BTj58Gob.mjs → Endpoint-BG4UJ9oA.mjs} +146 -109
- package/dist/Endpoint-BG4UJ9oA.mjs.map +1 -0
- package/dist/{Endpoint-BBkV6l0k.cjs → Endpoint-BoUg8ocM.cjs} +174 -131
- package/dist/Endpoint-BoUg8ocM.cjs.map +1 -0
- package/dist/{Endpoint-BKR5QH6O.d.mts → Endpoint-Du-NwPX2.d.mts} +83 -91
- package/dist/Endpoint-Du-NwPX2.d.mts.map +1 -0
- package/dist/{Endpoint-BQ9O0P1w.d.cts → Endpoint-aCvBMPoH.d.cts} +82 -90
- package/dist/Endpoint-aCvBMPoH.d.cts.map +1 -0
- package/dist/{EndpointFactory-BejSTzbB.mjs → EndpointFactory-BDtsrEvJ.mjs} +60 -77
- package/dist/EndpointFactory-BDtsrEvJ.mjs.map +1 -0
- package/dist/{EndpointFactory-DYoGLaIT.cjs → EndpointFactory-DJ7gXLpR.cjs} +96 -113
- package/dist/EndpointFactory-DJ7gXLpR.cjs.map +1 -0
- package/dist/{index-D5zqAJ2e.d.cts → EndpointFactory-DMYdJCOj.d.mts} +78 -134
- package/dist/EndpointFactory-DMYdJCOj.d.mts.map +1 -0
- package/dist/{index-Cvz551AO.d.mts → EndpointFactory-I7s1co3Y.d.cts} +79 -135
- package/dist/EndpointFactory-I7s1co3Y.d.cts.map +1 -0
- package/dist/Function-DuqGcbOI.d.mts +76 -0
- package/dist/Function-DuqGcbOI.d.mts.map +1 -0
- package/dist/Function-Pu-1kKZz.d.cts +76 -0
- package/dist/Function-Pu-1kKZz.d.cts.map +1 -0
- package/dist/{HonoEndpointAdaptor-7aYNdqJq.mjs → HonoEndpointAdaptor-PtPlbeKY.mjs} +75 -57
- package/dist/HonoEndpointAdaptor-PtPlbeKY.mjs.map +1 -0
- package/dist/{HonoEndpointAdaptor-wMsCyMgt.cjs → HonoEndpointAdaptor-zVzVLJEO.cjs} +83 -62
- package/dist/HonoEndpointAdaptor-zVzVLJEO.cjs.map +1 -0
- package/dist/Queue-A3wfD0it.cjs +109 -0
- package/dist/Queue-A3wfD0it.cjs.map +1 -0
- package/dist/Queue-D6USGS4q.mjs +104 -0
- package/dist/Queue-D6USGS4q.mjs.map +1 -0
- package/dist/{Queue-D6WeziRD.d.cts → Queue-DlsHRzUp.d.mts} +48 -48
- package/dist/Queue-DlsHRzUp.d.mts.map +1 -0
- package/dist/{Queue-DpUeqdC8.d.mts → Queue-HPyi0e1i.d.cts} +49 -49
- package/dist/Queue-HPyi0e1i.d.cts.map +1 -0
- package/dist/QueueBuilder-BjuF0UBl.cjs +135 -0
- package/dist/QueueBuilder-BjuF0UBl.cjs.map +1 -0
- package/dist/QueueBuilder-Cue73M4t.mjs +118 -0
- package/dist/QueueBuilder-Cue73M4t.mjs.map +1 -0
- package/dist/QueueBuilder-OSi6LkV9.d.cts +75 -0
- package/dist/QueueBuilder-OSi6LkV9.d.cts.map +1 -0
- package/dist/QueueBuilder-QHsnVt1P.d.mts +75 -0
- package/dist/QueueBuilder-QHsnVt1P.d.mts.map +1 -0
- package/dist/{Subscriber-4rBJgDKI.d.mts → Subscriber-Bpp02cGr.d.cts} +30 -21
- package/dist/Subscriber-Bpp02cGr.d.cts.map +1 -0
- package/dist/{Subscriber-DVQowdyj.d.cts → Subscriber-CtN9R48-.d.mts} +29 -20
- package/dist/Subscriber-CtN9R48-.d.mts.map +1 -0
- package/dist/SubscriberBuilder-CDy4nHCz.mjs +134 -0
- package/dist/SubscriberBuilder-CDy4nHCz.mjs.map +1 -0
- package/dist/SubscriberBuilder-CuCMFpYW.d.mts +67 -0
- package/dist/SubscriberBuilder-CuCMFpYW.d.mts.map +1 -0
- package/dist/SubscriberBuilder-D_owVoHo.cjs +145 -0
- package/dist/SubscriberBuilder-D_owVoHo.cjs.map +1 -0
- package/dist/SubscriberBuilder-g3fAVWgs.d.cts +67 -0
- package/dist/SubscriberBuilder-g3fAVWgs.d.cts.map +1 -0
- package/dist/Topic-D74b5cgs.mjs +99 -0
- package/dist/Topic-D74b5cgs.mjs.map +1 -0
- package/dist/Topic-GHxcU8AG.cjs +104 -0
- package/dist/Topic-GHxcU8AG.cjs.map +1 -0
- package/dist/adaptors/aws.cjs +332 -188
- package/dist/adaptors/aws.cjs.map +1 -1
- package/dist/adaptors/aws.d.cts +114 -44
- package/dist/adaptors/aws.d.cts.map +1 -1
- package/dist/adaptors/aws.d.mts +114 -44
- package/dist/adaptors/aws.d.mts.map +1 -1
- package/dist/adaptors/aws.mjs +308 -166
- package/dist/adaptors/aws.mjs.map +1 -1
- package/dist/adaptors/hono.cjs +3 -11
- 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 -11
- package/dist/adaptors/testing.cjs +743 -90
- package/dist/adaptors/testing.cjs.map +1 -1
- package/dist/adaptors/testing.d.cts +351 -54
- package/dist/adaptors/testing.d.cts.map +1 -1
- package/dist/adaptors/testing.d.mts +351 -54
- package/dist/adaptors/testing.d.mts.map +1 -1
- package/dist/adaptors/testing.mjs +706 -71
- package/dist/adaptors/testing.mjs.map +1 -1
- package/dist/auth-BMCJN30Y.d.cts +268 -0
- package/dist/auth-BMCJN30Y.d.cts.map +1 -0
- package/dist/auth-CcuceLYo.d.mts +268 -0
- package/dist/auth-CcuceLYo.d.mts.map +1 -0
- package/dist/auth.cjs +302 -34
- 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 +290 -28
- package/dist/auth.mjs.map +1 -1
- package/dist/{cache-CdQ7OLpR.d.cts → cache-CXh6GIgb.d.mts} +4 -7
- package/dist/cache-CXh6GIgb.d.mts.map +1 -0
- package/dist/{cache-DYoJFcfd.d.mts → cache-DnGDGly3.d.cts} +4 -7
- package/dist/cache-DnGDGly3.d.cts.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/cipher-C1lEFX63.mjs +225 -0
- package/dist/cipher-C1lEFX63.mjs.map +1 -0
- package/dist/cipher-CVxfwLjk.cjs +332 -0
- package/dist/cipher-CVxfwLjk.cjs.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-BqwRNYA2.d.mts → construct-interface-B1AfqRl4.d.cts} +43 -12
- package/dist/construct-interface-B1AfqRl4.d.cts.map +1 -0
- package/dist/{construct-interface-D2nNkHUN.d.cts → construct-interface-DluK3_da.d.mts} +43 -12
- package/dist/construct-interface-DluK3_da.d.mts.map +1 -0
- package/dist/construct-interface.cjs +113 -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 +106 -2
- package/dist/construct-interface.mjs.map +1 -0
- package/dist/credential.cjs +77 -17
- package/dist/credential.cjs.map +1 -1
- package/dist/credential.d.cts +34 -9
- package/dist/credential.d.cts.map +1 -1
- package/dist/credential.d.mts +34 -9
- package/dist/credential.d.mts.map +1 -1
- package/dist/credential.mjs +71 -13
- package/dist/credential.mjs.map +1 -1
- package/dist/crons/index.cjs +189 -85
- package/dist/crons/index.cjs.map +1 -1
- package/dist/crons/index.d.cts +70 -48
- package/dist/crons/index.d.cts.map +1 -1
- package/dist/crons/index.d.mts +70 -48
- package/dist/crons/index.d.mts.map +1 -1
- package/dist/crons/index.mjs +183 -81
- package/dist/crons/index.mjs.map +1 -1
- package/dist/database/kysely.cjs +4 -181
- package/dist/database/kysely.d.cts +2 -152
- package/dist/database/kysely.d.mts +2 -152
- package/dist/database/kysely.mjs +2 -180
- 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/encryption.cjs +96 -0
- package/dist/encryption.cjs.map +1 -0
- package/dist/encryption.d.cts +117 -0
- package/dist/encryption.d.cts.map +1 -0
- package/dist/encryption.d.mts +117 -0
- package/dist/encryption.d.mts.map +1 -0
- package/dist/encryption.mjs +83 -0
- package/dist/encryption.mjs.map +1 -0
- package/dist/endpoints/index.cjs +8 -11
- 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 -11
- package/dist/external-api-MJ8id87V.d.mts +105 -0
- package/dist/external-api-MJ8id87V.d.mts.map +1 -0
- package/dist/external-api-O107yzZJ.d.cts +105 -0
- package/dist/external-api-O107yzZJ.d.cts.map +1 -0
- package/dist/external-api.cjs +142 -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 +139 -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 +3 -4
- package/dist/functions/index.d.mts +3 -4
- package/dist/functions/index.mjs +2 -6
- package/dist/{functions-Cpff1uZH.mjs → functions-BFizikJU.mjs} +394 -243
- package/dist/functions-BFizikJU.mjs.map +1 -0
- package/dist/{functions-DukjG8ov.cjs → functions-CfzJG9hK.cjs} +432 -275
- package/dist/functions-CfzJG9hK.cjs.map +1 -0
- package/dist/index-BuzRvKOQ.d.cts +115 -0
- package/dist/index-BuzRvKOQ.d.cts.map +1 -0
- package/dist/index-CTkKOer4.d.mts +115 -0
- package/dist/index-CTkKOer4.d.mts.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.cjs +6 -3
- package/dist/index.d.cts +27 -4
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +27 -4
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +3 -3
- package/dist/kms-B-Hm3d5r.cjs +85 -0
- package/dist/kms-B-Hm3d5r.cjs.map +1 -0
- package/dist/kms-BdUlMJEZ.mjs +85 -0
- package/dist/kms-BdUlMJEZ.mjs.map +1 -0
- package/dist/kysely-Bii4l6eP.mjs +370 -0
- package/dist/kysely-Bii4l6eP.mjs.map +1 -0
- package/dist/kysely-CO_Dk43W.cjs +383 -0
- package/dist/kysely-CO_Dk43W.cjs.map +1 -0
- package/dist/kysely-D0bpzgPs.d.cts +175 -0
- package/dist/kysely-D0bpzgPs.d.cts.map +1 -0
- package/dist/kysely-DUqC3Ie0.d.mts +175 -0
- package/dist/kysely-DUqC3Ie0.d.mts.map +1 -0
- package/dist/{telemetry-C3L0iS28.d.cts → lambdaTelemetry-8vnmVZQ5.d.cts} +3 -6
- package/dist/lambdaTelemetry-8vnmVZQ5.d.cts.map +1 -0
- package/dist/{telemetry-D7bVFLGi.d.mts → lambdaTelemetry-8vnmVZQ5.d.mts} +3 -6
- package/dist/lambdaTelemetry-8vnmVZQ5.d.mts.map +1 -0
- package/dist/{lazyAccessors-DM6HcXQk.mjs → lazyAccessors-CFanua0O.mjs} +20 -21
- package/dist/lazyAccessors-CFanua0O.mjs.map +1 -0
- package/dist/{lazyAccessors-DrJj8NpA.cjs → lazyAccessors-hJKGv8Ay.cjs} +60 -62
- package/dist/lazyAccessors-hJKGv8Ay.cjs.map +1 -0
- package/dist/mobile-app.cjs +73 -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 +72 -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-BRRVVHUB.mjs +131 -0
- package/dist/processAudits-BRRVVHUB.mjs.map +1 -0
- package/dist/processAudits-DasOZjPl.cjs +154 -0
- package/dist/processAudits-DasOZjPl.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 +92 -63
- package/dist/rest-api.cjs.map +1 -1
- package/dist/rest-api.d.cts +81 -61
- package/dist/rest-api.d.cts.map +1 -1
- package/dist/rest-api.d.mts +81 -61
- package/dist/rest-api.d.mts.map +1 -1
- package/dist/rest-api.mjs +84 -55
- package/dist/rest-api.mjs.map +1 -1
- package/dist/{chunk-DWy1uDak.cjs → rolldown-runtime-y5ARvAq5.cjs} +14 -18
- package/dist/runSubscriber-BHvJ8POr.mjs +109 -0
- package/dist/runSubscriber-BHvJ8POr.mjs.map +1 -0
- package/dist/runSubscriber-D8nLXIv1.cjs +126 -0
- package/dist/runSubscriber-D8nLXIv1.cjs.map +1 -0
- package/dist/shutdown-BMJmAhSt.cjs +38 -0
- package/dist/shutdown-BMJmAhSt.cjs.map +1 -0
- package/dist/shutdown-C7xa8x9S.mjs +27 -0
- package/dist/shutdown-C7xa8x9S.mjs.map +1 -0
- package/dist/site.cjs +35 -9
- package/dist/site.cjs.map +1 -1
- package/dist/site.d.cts +25 -22
- package/dist/site.d.cts.map +1 -1
- package/dist/site.d.mts +25 -22
- package/dist/site.d.mts.map +1 -1
- package/dist/site.mjs +31 -5
- package/dist/site.mjs.map +1 -1
- package/dist/stages-BSCF19o2.d.cts +56 -0
- package/dist/stages-BSCF19o2.d.cts.map +1 -0
- package/dist/stages-BSCF19o2.d.mts +56 -0
- package/dist/stages-BSCF19o2.d.mts.map +1 -0
- package/dist/subscribers/index.cjs +111 -101
- package/dist/subscribers/index.cjs.map +1 -1
- package/dist/subscribers/index.d.cts +44 -56
- package/dist/subscribers/index.d.cts.map +1 -1
- package/dist/subscribers/index.d.mts +44 -56
- package/dist/subscribers/index.d.mts.map +1 -1
- package/dist/subscribers/index.mjs +108 -98
- package/dist/subscribers/index.mjs.map +1 -1
- 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-B48RLjyk.d.cts +40 -0
- package/dist/telemetry-B48RLjyk.d.cts.map +1 -0
- package/dist/telemetry-DRtT1_0A.d.mts +40 -0
- package/dist/telemetry-DRtT1_0A.d.mts.map +1 -0
- package/dist/telemetry.cjs +56 -0
- package/dist/telemetry.cjs.map +1 -0
- package/dist/telemetry.d.cts +2 -0
- package/dist/telemetry.d.mts +2 -0
- package/dist/telemetry.mjs +55 -0
- package/dist/telemetry.mjs.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/tracing-CxaZ98IB.mjs +110 -0
- package/dist/tracing-CxaZ98IB.mjs.map +1 -0
- package/dist/tracing-DPMidF_r.cjs +127 -0
- package/dist/tracing-DPMidF_r.cjs.map +1 -0
- 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 +191 -0
- package/dist/worker.cjs.map +1 -0
- package/dist/worker.d.cts +171 -0
- package/dist/worker.d.cts.map +1 -0
- package/dist/worker.d.mts +171 -0
- package/dist/worker.d.mts.map +1 -0
- package/dist/worker.mjs +190 -0
- package/dist/worker.mjs.map +1 -0
- package/package.json +116 -70
- package/dist/AWSScheduledFunction-9bJS4WdJ.d.cts +0 -122
- package/dist/AWSScheduledFunction-9bJS4WdJ.d.cts.map +0 -1
- package/dist/AWSScheduledFunction-BJjj8B5V.mjs +0 -243
- package/dist/AWSScheduledFunction-BJjj8B5V.mjs.map +0 -1
- package/dist/AWSScheduledFunction-BO5iEMSh.d.mts +0 -122
- package/dist/AWSScheduledFunction-BO5iEMSh.d.mts.map +0 -1
- package/dist/AWSScheduledFunction-qu4ieRZR.cjs +0 -255
- package/dist/AWSScheduledFunction-qu4ieRZR.cjs.map +0 -1
- package/dist/Construct-B-xc0SE9.d.mts +0 -104
- package/dist/Construct-B-xc0SE9.d.mts.map +0 -1
- package/dist/Construct-CdhThxDI.mjs.map +0 -1
- package/dist/Construct-WhCXIOPV.d.cts +0 -104
- package/dist/Construct-WhCXIOPV.d.cts.map +0 -1
- package/dist/Construct-roId57cU.cjs.map +0 -1
- package/dist/Endpoint-BBkV6l0k.cjs.map +0 -1
- package/dist/Endpoint-BKR5QH6O.d.mts.map +0 -1
- package/dist/Endpoint-BQ9O0P1w.d.cts.map +0 -1
- package/dist/Endpoint-BTj58Gob.mjs.map +0 -1
- package/dist/EndpointFactory-BejSTzbB.mjs.map +0 -1
- package/dist/EndpointFactory-DYoGLaIT.cjs.map +0 -1
- package/dist/HonoEndpointAdaptor-7aYNdqJq.mjs.map +0 -1
- package/dist/HonoEndpointAdaptor-wMsCyMgt.cjs.map +0 -1
- package/dist/Queue-D6WeziRD.d.cts.map +0 -1
- package/dist/Queue-DpUeqdC8.d.mts.map +0 -1
- package/dist/Subscriber-4rBJgDKI.d.mts.map +0 -1
- package/dist/Subscriber-DVQowdyj.d.cts.map +0 -1
- package/dist/Topic-Ohx9dvWr.d.cts +0 -91
- package/dist/Topic-Ohx9dvWr.d.cts.map +0 -1
- package/dist/Topic-cmy2jOUy.d.mts +0 -91
- package/dist/Topic-cmy2jOUy.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-CdQ7OLpR.d.cts.map +0 -1
- package/dist/cache-DYoJFcfd.d.mts.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-BqwRNYA2.d.mts.map +0 -1
- package/dist/construct-interface-D2nNkHUN.d.cts.map +0 -1
- package/dist/construct-interface-Z4CpS8tK.mjs +0 -81
- package/dist/construct-interface-Z4CpS8tK.mjs.map +0 -1
- package/dist/database/kysely.cjs.map +0 -1
- package/dist/database/kysely.d.cts.map +0 -1
- package/dist/database/kysely.d.mts.map +0 -1
- package/dist/database/kysely.mjs.map +0 -1
- package/dist/functions-Cpff1uZH.mjs.map +0 -1
- package/dist/functions-DukjG8ov.cjs.map +0 -1
- package/dist/index-BTvozlUD.d.cts +0 -163
- package/dist/index-BTvozlUD.d.cts.map +0 -1
- package/dist/index-Cvz551AO.d.mts.map +0 -1
- package/dist/index-D5zqAJ2e.d.cts.map +0 -1
- package/dist/index-L7pz0R0T.d.mts +0 -162
- package/dist/index-L7pz0R0T.d.mts.map +0 -1
- package/dist/lazyAccessors-DM6HcXQk.mjs.map +0 -1
- package/dist/lazyAccessors-DrJj8NpA.cjs.map +0 -1
- package/dist/processAudits-Bc8rz6Ev.cjs +0 -92
- package/dist/processAudits-Bc8rz6Ev.cjs.map +0 -1
- package/dist/processAudits-D89tICM4.mjs +0 -80
- package/dist/processAudits-D89tICM4.mjs.map +0 -1
- package/dist/publisher-CGEo8UKD.mjs +0 -41
- package/dist/publisher-CGEo8UKD.mjs.map +0 -1
- package/dist/publisher-CqGsXB2X.cjs +0 -53
- package/dist/publisher-CqGsXB2X.cjs.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/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,24 @@
|
|
|
1
|
-
import "../
|
|
2
|
-
import { Function } from "../
|
|
3
|
-
import "../
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
1
|
+
import { t as StandardSchemaV1 } from "../index-CeEtxDmK.cjs";
|
|
2
|
+
import { n as Function } from "../Function-Pu-1kKZz.cjs";
|
|
3
|
+
import { t as HttpMethod } from "../types-DMuSQeLL.cjs";
|
|
4
|
+
import { c as EndpointSchemas, i as Endpoint } from "../Endpoint-aCvBMPoH.cjs";
|
|
5
|
+
import { t as Queue } from "../Queue-HPyi0e1i.cjs";
|
|
6
|
+
import { t as Subscriber } from "../Subscriber-Bpp02cGr.cjs";
|
|
7
|
+
import { t as KyselyDatabase } from "../kysely-D0bpzgPs.cjs";
|
|
8
|
+
import { o as TestStage } from "../stages-BSCF19o2.cjs";
|
|
9
|
+
import { i as Fake } from "../external-api-O107yzZJ.cjs";
|
|
9
10
|
import { Logger } from "@geekmidas/logger";
|
|
10
11
|
import { ComposableStandardSchema, InferComposableStandardSchema, InferStandardSchema } from "@geekmidas/schema";
|
|
11
12
|
import { Service, ServiceDiscovery, ServiceRecord } from "@geekmidas/services";
|
|
12
|
-
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
13
13
|
import { AuditStorage, AuditableAction, Auditor } from "@geekmidas/audit";
|
|
14
|
+
import { EventPublisher, ExtractPublisherMessage } from "@geekmidas/events";
|
|
15
|
+
import { TEST_CONTEXT_HEADER } from "@geekmidas/testkit/context";
|
|
14
16
|
import { HttpHandler } from "msw";
|
|
15
|
-
|
|
17
|
+
import { Browser } from "@geekmidas/testkit/browser";
|
|
18
|
+
import { FakerFactory } from "@geekmidas/testkit/faker";
|
|
19
|
+
import { Mailbox } from "@geekmidas/testkit/mailbox";
|
|
20
|
+
import { Kysely } from "kysely";
|
|
16
21
|
//#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
22
|
/**
|
|
29
23
|
* Options for creating MSW handlers from endpoint constructs.
|
|
30
24
|
*
|
|
@@ -65,16 +59,16 @@ interface CreateMswHandlersOptions {
|
|
|
65
59
|
}
|
|
66
60
|
/**
|
|
67
61
|
* Options for registering a per-test context.
|
|
68
|
-
* Follows the same pattern as TestRequestAdaptor — services, database
|
|
69
|
-
*
|
|
62
|
+
* Follows the same pattern as TestRequestAdaptor — services, database and
|
|
63
|
+
* auditorStorage are provided explicitly. A topic is a service under its own
|
|
64
|
+
* name, so a recorder in `services` (`{ users: recorder }`) captures what an
|
|
65
|
+
* endpoint publishes to it.
|
|
70
66
|
*/
|
|
71
67
|
interface RegisterContextOptions {
|
|
72
68
|
/** Service instances keyed by serviceName */
|
|
73
69
|
services?: Record<string, unknown>;
|
|
74
70
|
/** Database instance — required when endpoints use .database() */
|
|
75
71
|
database?: unknown;
|
|
76
|
-
/** Event publisher service definition */
|
|
77
|
-
publisher?: Service;
|
|
78
72
|
/** Audit storage instance — required when endpoints use .auditor() */
|
|
79
73
|
auditorStorage?: unknown;
|
|
80
74
|
}
|
|
@@ -102,8 +96,7 @@ interface CreateMswHandlersResult {
|
|
|
102
96
|
* @param options - Configuration including baseURL
|
|
103
97
|
* @returns MSW handlers, the Hono app, and context management functions
|
|
104
98
|
*/
|
|
105
|
-
declare function createMswHandlers(endpoints: Endpoint<any, any, any, any, any, any>[], options: CreateMswHandlersOptions): CreateMswHandlersResult;
|
|
106
|
-
//# sourceMappingURL=MswEndpointAdaptor.d.ts.map
|
|
99
|
+
export declare function createMswHandlers(endpoints: Endpoint<any, any, any, any, any, any>[], options: CreateMswHandlersOptions): CreateMswHandlersResult;
|
|
107
100
|
//#endregion
|
|
108
101
|
//#region src/endpoints/TestEndpointAdaptor.d.ts
|
|
109
102
|
type TestHttpResponse<TBody = any> = {
|
|
@@ -111,13 +104,13 @@ type TestHttpResponse<TBody = any> = {
|
|
|
111
104
|
status: number;
|
|
112
105
|
headers: Record<string, string | string[]>;
|
|
113
106
|
};
|
|
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,
|
|
107
|
+
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
108
|
private readonly endpoint;
|
|
116
109
|
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,
|
|
110
|
+
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;
|
|
111
|
+
constructor(endpoint: Endpoint<TRoute, TMethod, TInput, TOutSchema, TServices, TLogger, TSession, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>, serviceDiscovery?: ServiceDiscovery<any>);
|
|
112
|
+
fullRequest(ctx: TestRequestAdaptor<TInput, TServices, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName>): Promise<TestHttpResponse<InferStandardSchema<TOutSchema>>>;
|
|
113
|
+
request(ctx: TestRequestAdaptor<TInput, TServices, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName>): Promise<InferStandardSchema<TOutSchema>>;
|
|
121
114
|
}
|
|
122
115
|
/**
|
|
123
116
|
* Conditional audit storage requirement - required when TAuditStorage is configured
|
|
@@ -133,70 +126,374 @@ type DatabaseRequirement<TDatabase = undefined> = TDatabase extends undefined ?
|
|
|
133
126
|
/** Database instance - required when endpoint uses .database() */
|
|
134
127
|
database: TDatabase;
|
|
135
128
|
};
|
|
136
|
-
type TestRequestAdaptor<TInput extends EndpointSchemas = {}, TServices extends Service[] = [],
|
|
129
|
+
type TestRequestAdaptor<TInput extends EndpointSchemas = {}, TServices extends Service[] = [], TAuditStorage extends AuditStorage | undefined = undefined, _TAuditStorageServiceName extends string = string, TDatabase = undefined, _TDatabaseServiceName extends string = string> = {
|
|
137
130
|
services: ServiceRecord<TServices>;
|
|
138
131
|
headers: Record<string, string>;
|
|
139
|
-
publisher?: Service<TEventPublisherServiceName, TEventPublisher>;
|
|
140
132
|
} & InferComposableStandardSchema<TInput> & AuditStorageRequirement<TAuditStorage> & DatabaseRequirement<TDatabase>;
|
|
141
133
|
//#endregion
|
|
142
134
|
//#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,
|
|
135
|
+
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
136
|
private readonly fn;
|
|
145
137
|
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,
|
|
138
|
+
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;
|
|
139
|
+
constructor(fn: Function<TInput, TServices, TLogger, TOutSchema, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction, any>, serviceDiscovery?: ServiceDiscovery<any>);
|
|
140
|
+
invoke(ctx: TestFunctionRequest<TInput, TServices, TDatabase, TAuditAction>): Promise<InferStandardSchema<TOutSchema>>;
|
|
149
141
|
}
|
|
150
|
-
type TestFunctionRequest<TInput extends ComposableStandardSchema | undefined = undefined, TServices extends Service[] = [],
|
|
142
|
+
type TestFunctionRequest<TInput extends ComposableStandardSchema | undefined = undefined, TServices extends Service[] = [], TDatabase = undefined, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>> = {
|
|
151
143
|
input: InferComposableStandardSchema<TInput>;
|
|
152
144
|
services: ServiceRecord<TServices>;
|
|
153
|
-
publisher?: Service<TEventPublisherServiceName, TEventPublisher>;
|
|
154
145
|
db?: TDatabase;
|
|
155
146
|
auditor?: Auditor<TAuditAction>;
|
|
156
147
|
} & InferComposableStandardSchema<{
|
|
157
148
|
input: TInput;
|
|
158
149
|
}>;
|
|
159
|
-
//# sourceMappingURL=TestFunctionAdaptor.d.ts.map
|
|
160
150
|
//#endregion
|
|
161
151
|
//#region src/queue/TestQueueAdaptor.d.ts
|
|
162
152
|
/**
|
|
163
153
|
* In-memory test driver for a {@link Queue} worker. Hand it a batch of messages
|
|
164
154
|
* and it registers the queue's services, runs the handler in a request context,
|
|
165
|
-
* and returns the handler result — no SQS/pg-boss required.
|
|
155
|
+
* and returns the handler result — no SQS/pg-boss required. A queue with a
|
|
156
|
+
* database gets `db` registered from it, or the one the request passes.
|
|
166
157
|
*
|
|
167
158
|
* @example
|
|
168
159
|
* const adapter = new TestQueueAdaptor(ordersQueue);
|
|
169
160
|
* await adapter.invoke({ messages: [{ orderId: '123' }] });
|
|
170
161
|
*/
|
|
171
|
-
declare class TestQueueAdaptor<TName extends string = string, TMessage extends StandardSchemaV1 = StandardSchemaV1, TServices extends Service[] = [], TLogger extends Logger = Logger> {
|
|
162
|
+
export declare class TestQueueAdaptor<TName extends string = string, TMessage extends StandardSchemaV1 = StandardSchemaV1, TServices extends Service[] = [], TLogger extends Logger = Logger, TDatabase = undefined, TDatabaseServiceName extends string = string> {
|
|
172
163
|
private readonly queue;
|
|
173
164
|
private serviceDiscovery;
|
|
174
|
-
static getDefaultServiceDiscovery():
|
|
175
|
-
constructor(queue: Queue<TName, TMessage, TServices, TLogger>, serviceDiscovery?: ServiceDiscovery<any>);
|
|
176
|
-
invoke(request: TestQueueRequest<TMessage, TServices>): Promise<unknown>;
|
|
165
|
+
static getDefaultServiceDiscovery(): any;
|
|
166
|
+
constructor(queue: Queue<TName, TMessage, TServices, TLogger, TDatabase, TDatabaseServiceName>, serviceDiscovery?: ServiceDiscovery<any>);
|
|
167
|
+
invoke(request: TestQueueRequest<TMessage, TServices, TDatabase>): Promise<unknown>;
|
|
168
|
+
private getDatabase;
|
|
177
169
|
}
|
|
178
|
-
type TestQueueRequest<TMessage extends StandardSchemaV1 = StandardSchemaV1, TServices extends Service[] = []> = {
|
|
170
|
+
type TestQueueRequest<TMessage extends StandardSchemaV1 = StandardSchemaV1, TServices extends Service[] = [], TDatabase = undefined> = {
|
|
179
171
|
messages: InferStandardSchema<TMessage>[];
|
|
180
172
|
services?: ServiceRecord<TServices>;
|
|
173
|
+
/** Stands in for the queue's database — a transaction, say. */
|
|
174
|
+
db?: TDatabase;
|
|
181
175
|
};
|
|
182
|
-
//# sourceMappingURL=TestQueueAdaptor.d.ts.map
|
|
183
176
|
//#endregion
|
|
184
177
|
//#region src/subscribers/TestSubscriberAdaptor.d.ts
|
|
185
178
|
type ExtractEventPayloads<TPublisher extends EventPublisher<any> | undefined, TEventTypes extends any[]> = TPublisher extends EventPublisher<any> ? Extract<ExtractPublisherMessage<TPublisher>, {
|
|
186
179
|
type: TEventTypes[number];
|
|
187
180
|
}> : never;
|
|
188
|
-
declare class TestSubscriberAdaptor<TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TEventPublisher extends EventPublisher<any> | undefined = undefined,
|
|
181
|
+
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'][], TDatabase = undefined, TDatabaseServiceName extends string = string> {
|
|
189
182
|
private readonly subscriber;
|
|
190
183
|
private serviceDiscovery;
|
|
191
|
-
static getDefaultServiceDiscovery():
|
|
192
|
-
constructor(subscriber: Subscriber<TServices, TLogger, OutSchema, TEventPublisher,
|
|
193
|
-
invoke(request: TestSubscriberRequest<TEventPublisher, TSubscribedEvents, TServices>): Promise<InferStandardSchema<OutSchema>>;
|
|
184
|
+
static getDefaultServiceDiscovery(): any;
|
|
185
|
+
constructor(subscriber: Subscriber<TServices, TLogger, OutSchema, TEventPublisher, TSubscribedEvents, TDatabase, TDatabaseServiceName>, serviceDiscovery?: ServiceDiscovery<any>);
|
|
186
|
+
invoke(request: TestSubscriberRequest<TEventPublisher, TSubscribedEvents, TServices, TDatabase>): Promise<InferStandardSchema<OutSchema>>;
|
|
187
|
+
private getDatabase;
|
|
194
188
|
private filterEvents;
|
|
195
189
|
}
|
|
196
|
-
type TestSubscriberRequest<TEventPublisher extends EventPublisher<any> | undefined = undefined, TSubscribedEvents extends any[] = [], TServices extends Service[] = []> = {
|
|
190
|
+
type TestSubscriberRequest<TEventPublisher extends EventPublisher<any> | undefined = undefined, TSubscribedEvents extends any[] = [], TServices extends Service[] = [], TDatabase = undefined> = {
|
|
197
191
|
events: ExtractEventPayloads<TEventPublisher, TSubscribedEvents>[];
|
|
198
192
|
services?: ServiceRecord<TServices>;
|
|
193
|
+
/** Stands in for the subscriber's database — a transaction, say. */
|
|
194
|
+
db?: TDatabase;
|
|
199
195
|
};
|
|
200
196
|
//#endregion
|
|
201
|
-
|
|
197
|
+
//#region src/testing/manifest.d.ts
|
|
198
|
+
/** Where an export lives: what an import statement has to say. */
|
|
199
|
+
interface TestManifestSource {
|
|
200
|
+
/** Absolute path to the module. */
|
|
201
|
+
file: string;
|
|
202
|
+
/** The name it is exported as. */
|
|
203
|
+
export: string;
|
|
204
|
+
}
|
|
205
|
+
interface TestManifest {
|
|
206
|
+
/** The stage the environment was resolved for — `test`. */
|
|
207
|
+
stage: TestStage;
|
|
208
|
+
/** Every construct the app declares, by id. */
|
|
209
|
+
constructs: Record<string, {
|
|
210
|
+
kind: string;
|
|
211
|
+
source: TestManifestSource;
|
|
212
|
+
}>;
|
|
213
|
+
/** Every endpoint, and the surface that serves it. */
|
|
214
|
+
endpoints: {
|
|
215
|
+
surface: string;
|
|
216
|
+
source: TestManifestSource;
|
|
217
|
+
}[];
|
|
218
|
+
/**
|
|
219
|
+
* Every topic subscriber — what a topic's events are delivered to. Not a
|
|
220
|
+
* construct, so not in `constructs`: the build finds them, as it finds
|
|
221
|
+
* endpoints.
|
|
222
|
+
*/
|
|
223
|
+
subscribers?: {
|
|
224
|
+
source: TestManifestSource;
|
|
225
|
+
}[];
|
|
226
|
+
/**
|
|
227
|
+
* The test stage's environment — reconcile's output, keyed as the
|
|
228
|
+
* constructs derive their keys.
|
|
229
|
+
*/
|
|
230
|
+
env: Record<string, string>;
|
|
231
|
+
}
|
|
232
|
+
/** The environment variable `gkm test` names the manifest in. */
|
|
233
|
+
export declare const TEST_MANIFEST_ENV = "GKM_TEST_MANIFEST";
|
|
234
|
+
/**
|
|
235
|
+
* Read a test manifest: from a path, a `file:` URL, or — given nothing — the
|
|
236
|
+
* one `gkm test` named in `GKM_TEST_MANIFEST`.
|
|
237
|
+
*/
|
|
238
|
+
export declare function loadTestManifest(from?: string | URL): TestManifest;
|
|
239
|
+
/** A feature test ran without a manifest to build itself from. */
|
|
240
|
+
export declare class NoTestManifest extends Error {
|
|
241
|
+
constructor();
|
|
242
|
+
}
|
|
243
|
+
//#endregion
|
|
244
|
+
//#region src/testing/featureTest.d.ts
|
|
245
|
+
/** How each database's test factory is built, keyed by its service name. */
|
|
246
|
+
type FactoryBuilders = Record<string, (db: Kysely<any>) => unknown>;
|
|
247
|
+
interface FeatureTestOptions<TBrowser extends Browser, TFactories extends FactoryBuilders = {}> {
|
|
248
|
+
/**
|
|
249
|
+
* What the app declares and the environment its test stage resolved.
|
|
250
|
+
* Defaults to the manifest `gkm test` names in `GKM_TEST_MANIFEST`.
|
|
251
|
+
*/
|
|
252
|
+
manifest?: TestManifest;
|
|
253
|
+
/**
|
|
254
|
+
* The app's modules, already imported, by the absolute path the manifest
|
|
255
|
+
* records for them. The generated harness imports them statically, from
|
|
256
|
+
* inside the app, so they resolve the way the app's own code does — its
|
|
257
|
+
* tsconfig paths included. A module not here is imported by path.
|
|
258
|
+
*/
|
|
259
|
+
modules?: Readonly<Record<string, Record<string, unknown>>>;
|
|
260
|
+
/** The browser each test gets — the generated one, with the app's clients. */
|
|
261
|
+
browser?: new () => TBrowser;
|
|
262
|
+
/**
|
|
263
|
+
* Each database's test factory — `createFactory` from
|
|
264
|
+
* `test/factories/<construct>.ts`, which the generated harness imports —
|
|
265
|
+
* keyed by the database's service name. Each is called once per test with
|
|
266
|
+
* that database's transaction, so what a test inserts through it is rolled
|
|
267
|
+
* back with everything else, and seen by the endpoints it calls.
|
|
268
|
+
*/
|
|
269
|
+
factories?: TFactories;
|
|
270
|
+
/**
|
|
271
|
+
* Each external API's fake — the default export of `test/fakes/<id>.ts`,
|
|
272
|
+
* which the generated harness imports — keyed by the API's construct id.
|
|
273
|
+
* An app fake is served at the URL the test stage resolved for it.
|
|
274
|
+
*/
|
|
275
|
+
fakes?: Readonly<Record<string, Fake>>;
|
|
276
|
+
}
|
|
277
|
+
/** Each database's schema, keyed by its service name. */
|
|
278
|
+
type DatabaseSchemas = Record<string, unknown>;
|
|
279
|
+
/** Each construct's client, keyed by its service name — what `services` types. */
|
|
280
|
+
type ServiceClients = Record<string, unknown>;
|
|
281
|
+
/** The client a construct's service registers — what a handler is handed. */
|
|
282
|
+
type ClientOf<C> = C extends {
|
|
283
|
+
service: {
|
|
284
|
+
register: (...args: any[]) => infer TClient;
|
|
285
|
+
};
|
|
286
|
+
} ? Awaited<TClient> : never;
|
|
287
|
+
/**
|
|
288
|
+
* The app's services for this test, by service name — `services.get('shipping')`.
|
|
289
|
+
*
|
|
290
|
+
* What a handler that depends on the construct is handed, resolved the way the
|
|
291
|
+
* test's endpoints resolve it: an external API's client aimed at whatever the
|
|
292
|
+
* test stage resolved (its fake, which the test never sees), a topic or queue's
|
|
293
|
+
* recorder, a database's transaction for this test.
|
|
294
|
+
*/
|
|
295
|
+
interface TestServices<TServices extends ServiceClients> {
|
|
296
|
+
get<K extends keyof TServices & string>(name: K): Promise<TServices[K]>;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* The app's databases for this test, by service name — `db.get('database')`.
|
|
300
|
+
*
|
|
301
|
+
* Each is this test's transaction on that database: opened by whatever reaches
|
|
302
|
+
* it first — the test, a factory, an endpoint — and the same one for all of
|
|
303
|
+
* them, rolled back after the test.
|
|
304
|
+
*/
|
|
305
|
+
interface TestDatabases<TDatabases extends DatabaseSchemas> {
|
|
306
|
+
get<K extends keyof TDatabases & string>(name: K): Promise<Kysely<TDatabases[K]>>;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Each of the app's databases' test factory, by service name —
|
|
310
|
+
* `await factories.get('database')`. Built on first use, on that database's
|
|
311
|
+
* transaction for this test — the one `db.get` returns — and the same factory
|
|
312
|
+
* for the rest of the test.
|
|
313
|
+
*/
|
|
314
|
+
interface TestFactories<TFactories extends FactoryBuilders> {
|
|
315
|
+
get<K extends keyof TFactories & string>(name: K): Promise<ReturnType<TFactories[K]>>;
|
|
316
|
+
}
|
|
317
|
+
interface FeatureContext<TBrowser extends Browser, TDatabases extends DatabaseSchemas = {}, TFactories extends FactoryBuilders = {}, TServices extends ServiceClients = {}> {
|
|
318
|
+
/** This test's browser, already the global `fetch`. */
|
|
319
|
+
browser: TBrowser;
|
|
320
|
+
/**
|
|
321
|
+
* The app's own databases — not a tenant an auth server owns, not a
|
|
322
|
+
* reader — by service name: `await db.get('database')`. The same
|
|
323
|
+
* transaction the test's endpoints and factories use.
|
|
324
|
+
*/
|
|
325
|
+
db: TestDatabases<TDatabases>;
|
|
326
|
+
/**
|
|
327
|
+
* Each of the app's databases' test factory, by service name —
|
|
328
|
+
* `await factories.get('database')` — on the same transaction `db.get`
|
|
329
|
+
* returns.
|
|
330
|
+
*/
|
|
331
|
+
factories: TestFactories<TFactories>;
|
|
332
|
+
/**
|
|
333
|
+
* Testkit's faker — the one factories are handed — seeded from this test's
|
|
334
|
+
* name, so a failing test fails again with the same data, and so a test
|
|
335
|
+
* imports nothing to make some.
|
|
336
|
+
*/
|
|
337
|
+
faker: FakerFactory;
|
|
338
|
+
/** The mail sent to an address during this test, read from Mailpit. */
|
|
339
|
+
mailbox: (address: string) => Mailbox;
|
|
340
|
+
/**
|
|
341
|
+
* What this test published to a topic or enqueued on a queue, in order.
|
|
342
|
+
*
|
|
343
|
+
* Also delivered: once each request the test makes has answered, a queue's
|
|
344
|
+
* messages reach its consumer and a topic's events every subscriber that
|
|
345
|
+
* named them, in this test's transaction — see {@link deliver}.
|
|
346
|
+
*/
|
|
347
|
+
published: (channel: {
|
|
348
|
+
id: string;
|
|
349
|
+
}) => PublishedMessage[];
|
|
350
|
+
/**
|
|
351
|
+
* A subscriber, run on its own — handed events rather than delivered them —
|
|
352
|
+
* with this test's services: its databases resolve to this test's
|
|
353
|
+
* transactions, as an endpoint's do.
|
|
354
|
+
*/
|
|
355
|
+
subscriber: <S extends Subscriber<any, any, any, any, any, any, any>>(subscriber: S) => SubscriberAdaptorOf<S>;
|
|
356
|
+
/**
|
|
357
|
+
* The app's services, by service name — `await services.get('shipping')` —
|
|
358
|
+
* as a handler is handed them. Assert on an external API through its own
|
|
359
|
+
* client: the fake behind it stays hidden, and the same assertion holds
|
|
360
|
+
* against the real API.
|
|
361
|
+
*/
|
|
362
|
+
services: TestServices<TServices>;
|
|
363
|
+
/** A queue's worker, run on its own with this test's services. */
|
|
364
|
+
queue: <Q extends Queue<any, any, any, any, any, any>>(queue: Q) => QueueAdaptorOf<Q>;
|
|
365
|
+
}
|
|
366
|
+
type SubscriberAdaptorOf<S> = S extends Subscriber<infer TServices, infer TLogger, infer OutSchema, infer TEventPublisher, infer TSubscribedEvents, infer TDatabase, infer TDatabaseServiceName> ? TestSubscriberAdaptor<TServices, TLogger, OutSchema, TEventPublisher, TSubscribedEvents, TDatabase, TDatabaseServiceName> : never;
|
|
367
|
+
type QueueAdaptorOf<Q> = Q extends Queue<infer TName, infer TMessage, infer TServices, infer TLogger, infer TDatabase, infer TDatabaseServiceName> ? TestQueueAdaptor<TName, TMessage, TServices, TLogger, TDatabase, TDatabaseServiceName> : never;
|
|
368
|
+
/** The schema a database construct was declared with — what `db` is typed by. */
|
|
369
|
+
type DatabaseOf<C> = C extends KyselyDatabase<infer DB, any> ? DB : unknown;
|
|
370
|
+
/** One message as it was published: its type and its payload. */
|
|
371
|
+
interface PublishedMessage {
|
|
372
|
+
type: string;
|
|
373
|
+
payload: unknown;
|
|
374
|
+
}
|
|
375
|
+
type FeatureFn<TBrowser extends Browser, TDatabases extends DatabaseSchemas, TFactories extends FactoryBuilders, TServices extends ServiceClients> = (context: FeatureContext<TBrowser, TDatabases, TFactories, TServices>) => unknown;
|
|
376
|
+
interface FeatureIt<TBrowser extends Browser, TDatabases extends DatabaseSchemas = {}, TFactories extends FactoryBuilders = {}, TServices extends ServiceClients = {}> {
|
|
377
|
+
(name: string, fn: FeatureFn<TBrowser, TDatabases, TFactories, TServices>, timeout?: number): void;
|
|
378
|
+
only(name: string, fn: FeatureFn<TBrowser, TDatabases, TFactories, TServices>, timeout?: number): void;
|
|
379
|
+
skip(name: string, fn: FeatureFn<TBrowser, TDatabases, TFactories, TServices>, timeout?: number): void;
|
|
380
|
+
}
|
|
381
|
+
export declare function featureTest<TBrowser extends Browser = Browser, TDatabases extends DatabaseSchemas = {}, TFactories extends FactoryBuilders = {}, TServices extends ServiceClients = {}>(options?: FeatureTestOptions<TBrowser, TFactories>): FeatureIt<TBrowser, TDatabases, TFactories, TServices>;
|
|
382
|
+
/** What `signInWithMagicLink` uses of a better-auth client. */
|
|
383
|
+
interface MagicLinkAuthClient<TSession> {
|
|
384
|
+
signIn: {
|
|
385
|
+
magicLink(input: {
|
|
386
|
+
email: string;
|
|
387
|
+
}): Promise<{
|
|
388
|
+
error?: {
|
|
389
|
+
message?: string;
|
|
390
|
+
} | null;
|
|
391
|
+
}>;
|
|
392
|
+
};
|
|
393
|
+
getSession(): Promise<{
|
|
394
|
+
data: TSession | null;
|
|
395
|
+
}>;
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Sign a test's browser in the way a person does: ask the auth server for a
|
|
399
|
+
* magic link, open the email it sent, follow the link.
|
|
400
|
+
*
|
|
401
|
+
* What the generated `browser.signIn(email)` calls. The address's mail is
|
|
402
|
+
* cleared first — so the link is this request's, not one an earlier test left
|
|
403
|
+
* — and cleared again after the test, like any address a test reads. Returns
|
|
404
|
+
* the session the auth server then reports, as better-auth hands it back.
|
|
405
|
+
*/
|
|
406
|
+
export declare function signInWithMagicLink<TSession>(browser: Browser, auth: MagicLinkAuthClient<TSession>, email?: string): Promise<TSession>;
|
|
407
|
+
/** `browser.signIn` finished without a session. */
|
|
408
|
+
export declare class SignInFailed extends Error {
|
|
409
|
+
readonly email: string;
|
|
410
|
+
readonly reason: string;
|
|
411
|
+
constructor(email: string, reason: string);
|
|
412
|
+
}
|
|
413
|
+
/** A request reached an in-process server without a test to belong to. */
|
|
414
|
+
export declare class UnknownTestContext extends Error {
|
|
415
|
+
readonly url: string;
|
|
416
|
+
readonly id: string | undefined;
|
|
417
|
+
constructor(url: string, id: string | undefined);
|
|
418
|
+
}
|
|
419
|
+
/** `mailbox` was used in an app that declares no Email construct. */
|
|
420
|
+
export declare class NoInbox extends Error {
|
|
421
|
+
constructor();
|
|
422
|
+
}
|
|
423
|
+
/** `db.get(name)` named no database the test is handed. */
|
|
424
|
+
export declare class UnknownDatabase extends Error {
|
|
425
|
+
readonly database: string;
|
|
426
|
+
readonly known: readonly string[];
|
|
427
|
+
constructor(database: string, known: readonly string[]);
|
|
428
|
+
}
|
|
429
|
+
/** A factory keyed by a service name no database the app declares has. */
|
|
430
|
+
export declare class UnknownFactory extends Error {
|
|
431
|
+
readonly factory: string;
|
|
432
|
+
readonly known: readonly string[];
|
|
433
|
+
constructor(factory: string, known: readonly string[]);
|
|
434
|
+
}
|
|
435
|
+
/** A published message the consumer's own schema refuses. */
|
|
436
|
+
export declare class MessageRejected extends Error {
|
|
437
|
+
readonly consumer: string;
|
|
438
|
+
readonly published: PublishedMessage;
|
|
439
|
+
readonly issues: ReadonlyArray<StandardSchemaV1.Issue>;
|
|
440
|
+
constructor(consumer: string, published: PublishedMessage, issues: ReadonlyArray<StandardSchemaV1.Issue>);
|
|
441
|
+
}
|
|
442
|
+
/** A consumer that threw while handling what the test published. */
|
|
443
|
+
export declare class DeliveryFailed extends Error {
|
|
444
|
+
readonly consumer: string;
|
|
445
|
+
readonly messages: readonly PublishedMessage[];
|
|
446
|
+
readonly cause: unknown;
|
|
447
|
+
constructor(consumer: string, messages: readonly PublishedMessage[], cause: unknown);
|
|
448
|
+
}
|
|
449
|
+
/** Consumers that kept publishing to each other without settling. */
|
|
450
|
+
export declare class DeliveryDidNotSettle extends Error {
|
|
451
|
+
readonly rounds: number;
|
|
452
|
+
readonly channels: readonly string[];
|
|
453
|
+
constructor(rounds: number, channels: readonly string[]);
|
|
454
|
+
}
|
|
455
|
+
/** `services.get(name)` for a name no construct of the app is served by. */
|
|
456
|
+
export declare class UnknownService extends Error {
|
|
457
|
+
readonly serviceName: string;
|
|
458
|
+
readonly available: readonly string[];
|
|
459
|
+
constructor(serviceName: string, available: readonly string[]);
|
|
460
|
+
}
|
|
461
|
+
//#endregion
|
|
462
|
+
//#region src/testing/peer.d.ts
|
|
463
|
+
/**
|
|
464
|
+
* The TCP peer a test's in-process requests arrive from.
|
|
465
|
+
*
|
|
466
|
+
* A feature test hands a request straight to a surface's Hono app — no
|
|
467
|
+
* socket, no server — so the app's bindings have no peer to read. Deployed,
|
|
468
|
+
* every request has one, and what a surface trusts follows from it: the auth
|
|
469
|
+
* server honours `x-gkm-client-ip` only from an internal caller, a loopback
|
|
470
|
+
* or private peer with no `Origin` and no forwarding header. With no peer at
|
|
471
|
+
* all the header was dropped, and every test's session check became the same
|
|
472
|
+
* client to Better Auth's rate limiter.
|
|
473
|
+
*
|
|
474
|
+
* So an in-process dispatch says where it came from, the way
|
|
475
|
+
* `@hono/node-server` does: its bindings carry `incoming.socket.remoteAddress`.
|
|
476
|
+
* The address is loopback because that is the truth — the request came from
|
|
477
|
+
* this process. A browser's own address still travels in its
|
|
478
|
+
* `x-forwarded-for`, which makes it outside traffic exactly as it would be
|
|
479
|
+
* behind the stack's proxy.
|
|
480
|
+
*
|
|
481
|
+
* Only a test's dispatch passes these. A runtime with no socket of its own
|
|
482
|
+
* (Lambda, Bun) still has no peer, and a request with no peer is still not an
|
|
483
|
+
* internal caller's.
|
|
484
|
+
*/
|
|
485
|
+
/** The address an in-process request presents as its peer. */
|
|
486
|
+
export declare const IN_PROCESS_PEER_ADDRESS = "127.0.0.1";
|
|
487
|
+
/** The part of `@hono/node-server`'s bindings a surface reads its peer from. */
|
|
488
|
+
interface InProcessBindings {
|
|
489
|
+
incoming: {
|
|
490
|
+
socket: {
|
|
491
|
+
remoteAddress: string;
|
|
492
|
+
};
|
|
493
|
+
};
|
|
494
|
+
}
|
|
495
|
+
/** Bindings for `app.fetch(request, bindings)` from inside this process. */
|
|
496
|
+
export declare function inProcessBindings(): InProcessBindings;
|
|
497
|
+
//#endregion
|
|
498
|
+
export { type ClientOf, type CreateMswHandlersOptions, type CreateMswHandlersResult, type DatabaseOf, type DatabaseSchemas, type FactoryBuilders, type FeatureContext, type FeatureIt, type FeatureTestOptions, type InProcessBindings, type MagicLinkAuthClient, type RegisterContextOptions, type ServiceClients, TEST_CONTEXT_HEADER, type TestDatabases, type TestFactories, type TestManifest, type TestManifestSource, type TestServices };
|
|
202
499
|
//# 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","../../src/testing/peer.ts"],"mappings":"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"}
|