@geekmidas/constructs 9.0.2 → 10.0.0-alpha.1
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 +71 -44
- package/dist/{AWSScheduledFunction-Bn99MceY.d.cts → AWSScheduledFunction-9bJS4WdJ.d.cts} +8 -3
- package/dist/{AWSScheduledFunction-ysaCsdWx.d.mts.map → AWSScheduledFunction-9bJS4WdJ.d.cts.map} +1 -1
- package/dist/{AWSScheduledFunction-CufMMhGB.mjs → AWSScheduledFunction-BJjj8B5V.mjs} +3 -3
- package/dist/{AWSScheduledFunction-CufMMhGB.mjs.map → AWSScheduledFunction-BJjj8B5V.mjs.map} +1 -1
- package/dist/{AWSScheduledFunction-ysaCsdWx.d.mts → AWSScheduledFunction-BO5iEMSh.d.mts} +9 -4
- package/dist/{AWSScheduledFunction-Bn99MceY.d.cts.map → AWSScheduledFunction-BO5iEMSh.d.mts.map} +1 -1
- package/dist/{AWSScheduledFunction-DbkDr8CA.cjs → AWSScheduledFunction-qu4ieRZR.cjs} +9 -9
- package/dist/{AWSScheduledFunction-DbkDr8CA.cjs.map → AWSScheduledFunction-qu4ieRZR.cjs.map} +1 -1
- package/dist/{Construct-_1wX7p_Y.d.cts → Construct-B-xc0SE9.d.mts} +27 -5
- package/dist/Construct-B-xc0SE9.d.mts.map +1 -0
- package/dist/{Construct-r0U2zBwW.mjs → Construct-CdhThxDI.mjs} +3 -2
- package/dist/Construct-CdhThxDI.mjs.map +1 -0
- package/dist/{Construct-DCMuYOox.d.mts → Construct-WhCXIOPV.d.cts} +29 -7
- package/dist/Construct-WhCXIOPV.d.cts.map +1 -0
- package/dist/{Construct-vXMZJgRp.cjs → Construct-roId57cU.cjs} +7 -43
- package/dist/Construct-roId57cU.cjs.map +1 -0
- package/dist/{lazyAccessors-DmTG8sQH.cjs → Endpoint-BBkV6l0k.cjs} +869 -1079
- package/dist/Endpoint-BBkV6l0k.cjs.map +1 -0
- package/dist/{Endpoint-DgfRslct.d.cts → Endpoint-BKR5QH6O.d.mts} +57 -8
- package/dist/Endpoint-BKR5QH6O.d.mts.map +1 -0
- package/dist/{Endpoint-CLPSIl6S.d.mts → Endpoint-BQ9O0P1w.d.cts} +58 -9
- package/dist/Endpoint-BQ9O0P1w.d.cts.map +1 -0
- package/dist/{lazyAccessors-DfqZR6C4.mjs → Endpoint-BTj58Gob.mjs} +840 -1003
- package/dist/Endpoint-BTj58Gob.mjs.map +1 -0
- package/dist/EndpointFactory-BejSTzbB.mjs +808 -0
- package/dist/EndpointFactory-BejSTzbB.mjs.map +1 -0
- package/dist/EndpointFactory-DYoGLaIT.cjs +850 -0
- package/dist/EndpointFactory-DYoGLaIT.cjs.map +1 -0
- package/dist/{HonoEndpointAdaptor-DJDT3PMx.mjs → HonoEndpointAdaptor-7aYNdqJq.mjs} +5 -4
- package/dist/HonoEndpointAdaptor-7aYNdqJq.mjs.map +1 -0
- package/dist/{HonoEndpointAdaptor-CkJENANP.cjs → HonoEndpointAdaptor-wMsCyMgt.cjs} +24 -23
- package/dist/HonoEndpointAdaptor-wMsCyMgt.cjs.map +1 -0
- package/dist/{Queue-DaxjwmOQ.d.cts → Queue-D6WeziRD.d.cts} +43 -4
- package/dist/Queue-D6WeziRD.d.cts.map +1 -0
- package/dist/{Queue-HBDf0fqz.d.mts → Queue-DpUeqdC8.d.mts} +43 -4
- package/dist/Queue-DpUeqdC8.d.mts.map +1 -0
- package/dist/{Subscriber-B69ngPwl.d.cts → Subscriber-4rBJgDKI.d.mts} +9 -4
- package/dist/{Subscriber-B69ngPwl.d.cts.map → Subscriber-4rBJgDKI.d.mts.map} +1 -1
- package/dist/{Subscriber-D8Xm-86W.d.mts → Subscriber-DVQowdyj.d.cts} +11 -6
- package/dist/Subscriber-DVQowdyj.d.cts.map +1 -0
- package/dist/{Topic-C5ZMfveW.d.cts → Topic-Ohx9dvWr.d.cts} +33 -2
- package/dist/Topic-Ohx9dvWr.d.cts.map +1 -0
- package/dist/{Topic-DT10AqHk.d.mts → Topic-cmy2jOUy.d.mts} +33 -2
- package/dist/Topic-cmy2jOUy.d.mts.map +1 -0
- package/dist/adaptors/aws.cjs +39 -26
- package/dist/adaptors/aws.cjs.map +1 -1
- package/dist/adaptors/aws.d.cts +24 -16
- package/dist/adaptors/aws.d.cts.map +1 -1
- package/dist/adaptors/aws.d.mts +25 -17
- package/dist/adaptors/aws.d.mts.map +1 -1
- package/dist/adaptors/aws.mjs +26 -14
- package/dist/adaptors/aws.mjs.map +1 -1
- package/dist/adaptors/hono.cjs +9 -6
- package/dist/adaptors/hono.d.cts +7 -6
- package/dist/adaptors/hono.d.cts.map +1 -1
- package/dist/adaptors/hono.d.mts +8 -7
- package/dist/adaptors/hono.d.mts.map +1 -1
- package/dist/adaptors/hono.mjs +9 -6
- package/dist/adaptors/testing.cjs +18 -14
- package/dist/adaptors/testing.cjs.map +1 -1
- package/dist/adaptors/testing.d.cts +7 -6
- package/dist/adaptors/testing.d.cts.map +1 -1
- package/dist/adaptors/testing.d.mts +11 -10
- package/dist/adaptors/testing.d.mts.map +1 -1
- package/dist/adaptors/testing.mjs +10 -7
- package/dist/adaptors/testing.mjs.map +1 -1
- package/dist/auth.cjs +165 -0
- package/dist/auth.cjs.map +1 -0
- package/dist/auth.d.cts +108 -0
- package/dist/auth.d.cts.map +1 -0
- package/dist/auth.d.mts +108 -0
- package/dist/auth.d.mts.map +1 -0
- package/dist/auth.mjs +164 -0
- package/dist/auth.mjs.map +1 -0
- package/dist/cache-0ANvRQnD.mjs +51 -0
- package/dist/cache-0ANvRQnD.mjs.map +1 -0
- package/dist/cache-3WSvAulx.cjs +57 -0
- package/dist/cache-3WSvAulx.cjs.map +1 -0
- package/dist/cache-CdQ7OLpR.d.cts +47 -0
- package/dist/cache-CdQ7OLpR.d.cts.map +1 -0
- package/dist/cache-DYoJFcfd.d.mts +47 -0
- package/dist/cache-DYoJFcfd.d.mts.map +1 -0
- package/dist/cache.cjs +3 -0
- package/dist/cache.d.cts +3 -0
- package/dist/cache.d.mts +3 -0
- package/dist/cache.mjs +3 -0
- package/dist/chunk-DWy1uDak.cjs +39 -0
- package/dist/clone-DblgEZZa.mjs +39 -0
- package/dist/clone-DblgEZZa.mjs.map +1 -0
- package/dist/clone-Dy0cR2SZ.cjs +45 -0
- package/dist/clone-Dy0cR2SZ.cjs.map +1 -0
- package/dist/construct-interface-BfjcOD_E.cjs +117 -0
- package/dist/construct-interface-BfjcOD_E.cjs.map +1 -0
- package/dist/construct-interface-BqwRNYA2.d.mts +131 -0
- package/dist/construct-interface-BqwRNYA2.d.mts.map +1 -0
- package/dist/construct-interface-D2nNkHUN.d.cts +131 -0
- package/dist/construct-interface-D2nNkHUN.d.cts.map +1 -0
- package/dist/construct-interface-Z4CpS8tK.mjs +81 -0
- package/dist/construct-interface-Z4CpS8tK.mjs.map +1 -0
- package/dist/construct-interface.cjs +8 -0
- package/dist/construct-interface.d.cts +2 -0
- package/dist/construct-interface.d.mts +2 -0
- package/dist/construct-interface.mjs +3 -0
- package/dist/credential.cjs +96 -0
- package/dist/credential.cjs.map +1 -0
- package/dist/credential.d.cts +61 -0
- package/dist/credential.d.cts.map +1 -0
- package/dist/credential.d.mts +61 -0
- package/dist/credential.d.mts.map +1 -0
- package/dist/credential.mjs +94 -0
- package/dist/credential.mjs.map +1 -0
- package/dist/crons/index.cjs +39 -37
- package/dist/crons/index.cjs.map +1 -1
- package/dist/crons/index.d.cts +21 -8
- package/dist/crons/index.d.cts.map +1 -1
- package/dist/crons/index.d.mts +29 -13
- package/dist/crons/index.d.mts.map +1 -1
- package/dist/crons/index.mjs +37 -36
- package/dist/crons/index.mjs.map +1 -1
- package/dist/database/kysely.cjs +181 -0
- package/dist/database/kysely.cjs.map +1 -0
- package/dist/database/kysely.d.cts +152 -0
- package/dist/database/kysely.d.cts.map +1 -0
- package/dist/database/kysely.d.mts +152 -0
- package/dist/database/kysely.d.mts.map +1 -0
- package/dist/database/kysely.mjs +180 -0
- package/dist/database/kysely.mjs.map +1 -0
- package/dist/email.cjs +59 -0
- package/dist/email.cjs.map +1 -0
- package/dist/email.d.cts +50 -0
- package/dist/email.d.cts.map +1 -0
- package/dist/email.d.mts +50 -0
- package/dist/email.d.mts.map +1 -0
- package/dist/email.mjs +58 -0
- package/dist/email.mjs.map +1 -0
- package/dist/endpoints/index.cjs +21 -747
- package/dist/endpoints/index.d.cts +7 -343
- package/dist/endpoints/index.d.mts +7 -342
- package/dist/endpoints/index.mjs +11 -738
- package/dist/file-server.cjs +154 -0
- package/dist/file-server.cjs.map +1 -0
- package/dist/file-server.d.cts +156 -0
- package/dist/file-server.d.cts.map +1 -0
- package/dist/file-server.d.mts +156 -0
- package/dist/file-server.d.mts.map +1 -0
- package/dist/file-server.mjs +152 -0
- package/dist/file-server.mjs.map +1 -0
- package/dist/functions/index.cjs +4 -2
- package/dist/functions/index.d.cts +3 -2
- package/dist/functions/index.d.mts +3 -2
- package/dist/functions/index.mjs +4 -2
- package/dist/{functions-B-qt91O7.mjs → functions-Cpff1uZH.mjs} +55 -51
- package/dist/functions-Cpff1uZH.mjs.map +1 -0
- package/dist/{functions-C8i1kCMM.cjs → functions-DukjG8ov.cjs} +62 -57
- package/dist/functions-DukjG8ov.cjs.map +1 -0
- package/dist/{index-BVs9DvIj.d.cts → index-BTvozlUD.d.cts} +36 -9
- package/dist/index-BTvozlUD.d.cts.map +1 -0
- package/dist/index-Cvz551AO.d.mts +419 -0
- package/dist/index-Cvz551AO.d.mts.map +1 -0
- package/dist/index-D5zqAJ2e.d.cts +419 -0
- package/dist/index-D5zqAJ2e.d.cts.map +1 -0
- package/dist/{index-DP6fqv0I.d.mts → index-L7pz0R0T.d.mts} +48 -19
- package/dist/index-L7pz0R0T.d.mts.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.mts +3 -3
- package/dist/index.mjs +1 -1
- package/dist/lazyAccessors-DM6HcXQk.mjs +175 -0
- package/dist/lazyAccessors-DM6HcXQk.mjs.map +1 -0
- package/dist/lazyAccessors-DrJj8NpA.cjs +223 -0
- package/dist/lazyAccessors-DrJj8NpA.cjs.map +1 -0
- package/dist/object-storage.cjs +48 -0
- package/dist/object-storage.cjs.map +1 -0
- package/dist/object-storage.d.cts +36 -0
- package/dist/object-storage.d.cts.map +1 -0
- package/dist/object-storage.d.mts +36 -0
- package/dist/object-storage.d.mts.map +1 -0
- package/dist/object-storage.mjs +47 -0
- package/dist/object-storage.mjs.map +1 -0
- package/dist/{processAudits-CKjjivyz.cjs → processAudits-Bc8rz6Ev.cjs} +3 -3
- package/dist/{processAudits-CKjjivyz.cjs.map → processAudits-Bc8rz6Ev.cjs.map} +1 -1
- package/dist/{processAudits-ySnizdMG.mjs → processAudits-D89tICM4.mjs} +1 -1
- package/dist/{processAudits-ySnizdMG.mjs.map → processAudits-D89tICM4.mjs.map} +1 -1
- package/dist/{publisher-BrFOF847.mjs → publisher-CGEo8UKD.mjs} +1 -1
- package/dist/{publisher-BrFOF847.mjs.map → publisher-CGEo8UKD.mjs.map} +1 -1
- package/dist/{publisher-lFQleddL.cjs → publisher-CqGsXB2X.cjs} +1 -1
- package/dist/{publisher-lFQleddL.cjs.map → publisher-CqGsXB2X.cjs.map} +1 -1
- package/dist/queue/index.cjs +92 -30
- package/dist/queue/index.cjs.map +1 -1
- package/dist/queue/index.d.cts +19 -4
- package/dist/queue/index.d.cts.map +1 -1
- package/dist/queue/index.d.mts +22 -6
- package/dist/queue/index.d.mts.map +1 -1
- package/dist/queue/index.mjs +90 -29
- package/dist/queue/index.mjs.map +1 -1
- package/dist/rest-api.cjs +187 -0
- package/dist/rest-api.cjs.map +1 -0
- package/dist/rest-api.d.cts +221 -0
- package/dist/rest-api.d.cts.map +1 -0
- package/dist/rest-api.d.mts +221 -0
- package/dist/rest-api.d.mts.map +1 -0
- package/dist/rest-api.mjs +186 -0
- package/dist/rest-api.mjs.map +1 -0
- package/dist/site.cjs +48 -0
- package/dist/site.cjs.map +1 -0
- package/dist/site.d.cts +101 -0
- package/dist/site.d.cts.map +1 -0
- package/dist/site.d.mts +101 -0
- package/dist/site.d.mts.map +1 -0
- package/dist/site.mjs +47 -0
- package/dist/site.mjs.map +1 -0
- package/dist/subscribers/index.cjs +35 -27
- package/dist/subscribers/index.cjs.map +1 -1
- package/dist/subscribers/index.d.cts +20 -5
- package/dist/subscribers/index.d.cts.map +1 -1
- package/dist/subscribers/index.d.mts +23 -7
- package/dist/subscribers/index.d.mts.map +1 -1
- package/dist/subscribers/index.mjs +34 -27
- package/dist/subscribers/index.mjs.map +1 -1
- package/dist/surfaceEnv-BFXEms2f.cjs +39 -0
- package/dist/surfaceEnv-BFXEms2f.cjs.map +1 -0
- package/dist/surfaceEnv-C3Ktahea.mjs +27 -0
- package/dist/surfaceEnv-C3Ktahea.mjs.map +1 -0
- package/dist/{telemetry-3vdxGn4q.d.mts → telemetry-C3L0iS28.d.cts} +2 -2
- package/dist/{telemetry-3vdxGn4q.d.mts.map → telemetry-C3L0iS28.d.cts.map} +1 -1
- package/dist/{telemetry-Dqx-D3F7.d.cts → telemetry-D7bVFLGi.d.mts} +2 -2
- package/dist/{telemetry-Dqx-D3F7.d.cts.map → telemetry-D7bVFLGi.d.mts.map} +1 -1
- package/dist/topic/index.cjs +56 -13
- package/dist/topic/index.cjs.map +1 -1
- package/dist/topic/index.d.cts +2 -2
- package/dist/topic/index.d.cts.map +1 -1
- package/dist/topic/index.d.mts +2 -2
- package/dist/topic/index.d.mts.map +1 -1
- package/dist/topic/index.mjs +54 -12
- package/dist/topic/index.mjs.map +1 -1
- package/dist/{types-BDNGr7pv.d.mts → types-BlAkSuGI.d.cts} +1 -1
- package/dist/{types-BDNGr7pv.d.mts.map → types-BlAkSuGI.d.cts.map} +1 -1
- package/dist/{types-BdAaYDvd.d.cts → types-aKksMEWL.d.mts} +1 -1
- package/dist/{types-BdAaYDvd.d.cts.map → types-aKksMEWL.d.mts.map} +1 -1
- package/dist/types.d.cts +1 -1
- package/dist/types.d.mts +1 -1
- package/package.json +155 -23
- package/CHANGELOG.md +0 -396
- package/dist/Construct-DCMuYOox.d.mts.map +0 -1
- package/dist/Construct-_1wX7p_Y.d.cts.map +0 -1
- package/dist/Construct-r0U2zBwW.mjs.map +0 -1
- package/dist/Construct-vXMZJgRp.cjs.map +0 -1
- package/dist/Endpoint-CLPSIl6S.d.mts.map +0 -1
- package/dist/Endpoint-DgfRslct.d.cts.map +0 -1
- package/dist/HonoEndpointAdaptor-CkJENANP.cjs.map +0 -1
- package/dist/HonoEndpointAdaptor-DJDT3PMx.mjs.map +0 -1
- package/dist/Queue-DaxjwmOQ.d.cts.map +0 -1
- package/dist/Queue-HBDf0fqz.d.mts.map +0 -1
- package/dist/Subscriber-D8Xm-86W.d.mts.map +0 -1
- package/dist/Topic-C5ZMfveW.d.cts.map +0 -1
- package/dist/Topic-DT10AqHk.d.mts.map +0 -1
- package/dist/endpoints/index.cjs.map +0 -1
- package/dist/endpoints/index.d.cts.map +0 -1
- package/dist/endpoints/index.d.mts.map +0 -1
- package/dist/endpoints/index.mjs.map +0 -1
- package/dist/functions-B-qt91O7.mjs.map +0 -1
- package/dist/functions-C8i1kCMM.cjs.map +0 -1
- package/dist/index-BVs9DvIj.d.cts.map +0 -1
- package/dist/index-DP6fqv0I.d.mts.map +0 -1
- package/dist/lazyAccessors-DfqZR6C4.mjs.map +0 -1
- package/dist/lazyAccessors-DmTG8sQH.cjs.map +0 -1
- package/src/Construct.ts +0 -204
- package/src/__benchmarks__/build-time-optimization.bench.ts +0 -274
- package/src/__benchmarks__/endpoint.bench.ts +0 -494
- package/src/__benchmarks__/fixtures.ts +0 -241
- package/src/__benchmarks__/hono-adaptor.bench.ts +0 -533
- package/src/__benchmarks__/hono-server.bench.ts +0 -249
- package/src/__benchmarks__/response-builder.bench.ts +0 -428
- package/src/__benchmarks__/strategies/strategy-a-lazy-services.ts +0 -319
- package/src/__benchmarks__/strategies/strategy-c-middleware.ts +0 -530
- package/src/__benchmarks__/strategies/strategy-d-opt-in-events.ts +0 -567
- package/src/__tests__/Construct.environment.spec.ts +0 -704
- package/src/__tests__/publisher.setting.spec.ts +0 -508
- package/src/__tests__/publisher.spec.ts +0 -452
- package/src/adaptors/aws.ts +0 -6
- package/src/adaptors/hono.ts +0 -1
- package/src/adaptors/testing.ts +0 -11
- package/src/crons/AWSScheduledFunction.ts +0 -73
- package/src/crons/Cron.ts +0 -149
- package/src/crons/CronBuilder.ts +0 -271
- package/src/crons/__tests__/AWSScheduledFunction.spec.ts +0 -152
- package/src/crons/__tests__/Cron.spec.ts +0 -464
- package/src/crons/__tests__/CronBuilder.state-isolation.spec.ts +0 -227
- package/src/crons/index.ts +0 -12
- package/src/endpoints/AmazonApiGatewayEndpointAdaptor.ts +0 -677
- package/src/endpoints/AmazonApiGatewayV1EndpointAdaptor.ts +0 -105
- package/src/endpoints/AmazonApiGatewayV2EndpointAdaptor.ts +0 -97
- package/src/endpoints/Authorizer.ts +0 -152
- package/src/endpoints/Endpoint.ts +0 -1287
- package/src/endpoints/EndpointBuilder.ts +0 -758
- package/src/endpoints/EndpointFactory.ts +0 -1148
- package/src/endpoints/HonoEndpointAdaptor.ts +0 -677
- package/src/endpoints/MswEndpointAdaptor.ts +0 -226
- package/src/endpoints/TestEndpointAdaptor.ts +0 -422
- package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.audits.spec.ts +0 -499
- package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.events.spec.ts +0 -560
- package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.spec.ts +0 -1304
- package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.audits.spec.ts +0 -626
- package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.events.spec.ts +0 -732
- package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.factory-publisher.spec.ts +0 -296
- package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.kysely-audit.integration.spec.ts +0 -951
- package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.responseType.spec.ts +0 -111
- package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.rls.spec.ts +0 -307
- package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.spec.ts +0 -629
- package/src/endpoints/__tests__/Authorizer.spec.ts +0 -286
- package/src/endpoints/__tests__/Endpoint.cookies.spec.ts +0 -207
- package/src/endpoints/__tests__/Endpoint.headers.spec.ts +0 -187
- package/src/endpoints/__tests__/Endpoint.manifest.spec.ts +0 -175
- package/src/endpoints/__tests__/Endpoint.spec.ts +0 -857
- package/src/endpoints/__tests__/EndpointBuilder.audit.spec.ts +0 -448
- package/src/endpoints/__tests__/EndpointBuilder.responseType.spec.ts +0 -47
- package/src/endpoints/__tests__/EndpointBuilder.spec.ts +0 -523
- package/src/endpoints/__tests__/EndpointFactory.authorizers.spec.ts +0 -492
- package/src/endpoints/__tests__/EndpointFactory.database-auditor.spec.ts +0 -509
- package/src/endpoints/__tests__/EndpointFactory.reference-audit.spec.ts +0 -190
- package/src/endpoints/__tests__/EndpointFactory.spec.ts +0 -479
- package/src/endpoints/__tests__/EndpointFactory.state-isolation.spec.ts +0 -155
- package/src/endpoints/__tests__/HonoEndpointAdaptor.audit-transactions.spec.ts +0 -703
- package/src/endpoints/__tests__/HonoEndpointAdaptor.audits.spec.ts +0 -632
- package/src/endpoints/__tests__/HonoEndpointAdaptor.events.spec.ts +0 -577
- package/src/endpoints/__tests__/HonoEndpointAdaptor.kysely-audit.integration.spec.ts +0 -1067
- package/src/endpoints/__tests__/HonoEndpointAdaptor.openapi.spec.ts +0 -317
- package/src/endpoints/__tests__/HonoEndpointAdaptor.pgboss-publisher.spec.ts +0 -289
- package/src/endpoints/__tests__/HonoEndpointAdaptor.responseType.spec.ts +0 -128
- package/src/endpoints/__tests__/HonoEndpointAdaptor.spec.ts +0 -1207
- package/src/endpoints/__tests__/MswEndpointAdaptor.spec.ts +0 -211
- package/src/endpoints/__tests__/ResponseBuilder.spec.ts +0 -235
- package/src/endpoints/__tests__/TestEndpointAdaptor.audits.spec.ts +0 -602
- package/src/endpoints/__tests__/TestEndpointAdaptor.spec.ts +0 -1044
- package/src/endpoints/__tests__/__snapshots__/HonoEndpointAdaptor.spec.ts.snap +0 -54
- package/src/endpoints/__tests__/endpoint-types.test.ts +0 -88
- package/src/endpoints/__tests__/helpers.spec.ts +0 -37
- package/src/endpoints/__tests__/lazyAccessors.spec.ts +0 -330
- package/src/endpoints/__tests__/processAudits.spec.ts +0 -631
- package/src/endpoints/audit.ts +0 -87
- package/src/endpoints/helpers.ts +0 -98
- package/src/endpoints/index.ts +0 -42
- package/src/endpoints/lazyAccessors.ts +0 -241
- package/src/endpoints/parseHonoQuery.ts +0 -16
- package/src/endpoints/parseQueryParams.ts +0 -32
- package/src/endpoints/processAudits.ts +0 -371
- package/src/endpoints/rls.ts +0 -67
- package/src/functions/AWSLambdaFunction.ts +0 -348
- package/src/functions/BaseFunctionBuilder.ts +0 -201
- package/src/functions/Function.ts +0 -238
- package/src/functions/FunctionBuilder.ts +0 -391
- package/src/functions/FunctionExecutionWrapper.ts +0 -216
- package/src/functions/TestFunctionAdaptor.ts +0 -217
- package/src/functions/__tests__/AWSLambdaFunctionAdaptor.spec.ts +0 -513
- package/src/functions/__tests__/Function.audits.spec.ts +0 -393
- package/src/functions/__tests__/Function.spec.ts +0 -477
- package/src/functions/__tests__/FunctionBuilder.state-isolation.spec.ts +0 -207
- package/src/functions/__tests__/TestFunctionAdaptor.spec.ts +0 -480
- package/src/functions/index.ts +0 -12
- package/src/index.ts +0 -23
- package/src/publisher.ts +0 -93
- package/src/queue/AWSLambdaQueueAdaptor.ts +0 -162
- package/src/queue/Queue.ts +0 -128
- package/src/queue/QueueBuilder.ts +0 -115
- package/src/queue/TestQueueAdaptor.ts +0 -63
- package/src/queue/__tests__/QueueBuilder.spec.ts +0 -137
- package/src/queue/index.ts +0 -12
- package/src/subscribers/AWSLambdaSubscriberAdaptor.ts +0 -342
- package/src/subscribers/Subscriber.ts +0 -117
- package/src/subscribers/SubscriberBuilder.ts +0 -186
- package/src/subscribers/TestSubscriberAdaptor.ts +0 -133
- package/src/subscribers/__tests__/AWSLambdaSubscriberAdaptor.spec.ts +0 -1018
- package/src/subscribers/__tests__/Subscriber.spec.ts +0 -430
- package/src/subscribers/__tests__/TestSubscriberAdaptor.spec.ts +0 -652
- package/src/subscribers/index.ts +0 -6
- package/src/telemetry.ts +0 -103
- package/src/topic/Topic.ts +0 -103
- package/src/topic/TopicBuilder.ts +0 -51
- package/src/topic/__tests__/TopicBuilder.spec.ts +0 -82
- package/src/topic/index.ts +0 -11
- package/src/types.ts +0 -13
- package/test.ts +0 -91
- package/tsconfig.json +0 -9
- package/tsdown.config.ts +0 -34
package/CHANGELOG.md
DELETED
|
@@ -1,396 +0,0 @@
|
|
|
1
|
-
# @geekmidas/constructs
|
|
2
|
-
|
|
3
|
-
## 9.0.2
|
|
4
|
-
|
|
5
|
-
### Patch Changes
|
|
6
|
-
|
|
7
|
-
- [#12](https://github.com/geekmidas/toolbox/pull/12) [`d53863a`](https://github.com/geekmidas/toolbox/commit/d53863a84db2e4ab5420e08f79128b637043fc42) Thanks [@geekmidas](https://github.com/geekmidas)! - Align every published package on a single version and keep them in step.
|
|
8
|
-
|
|
9
|
-
All packages now share one version, enforced by a changesets `fixed` group. The
|
|
10
|
-
baseline is 9.0.1 — @geekmidas/client's published version — so nothing moves
|
|
11
|
-
backwards; this release takes the whole set to 9.0.2 together.
|
|
12
|
-
|
|
13
|
-
Independent versions made "which version of the docs applies to me"
|
|
14
|
-
unanswerable: a reader on constructs@7 and cli@2 was on no version at all. One
|
|
15
|
-
number per release makes versioned documentation possible, and lets 9 freeze as
|
|
16
|
-
the current paradigm while the constructs rework is developed against it.
|
|
17
|
-
|
|
18
|
-
Every release now publishes every package, and a major anywhere is a major
|
|
19
|
-
everywhere. Peer ranges get simpler in return.
|
|
20
|
-
|
|
21
|
-
- Updated dependencies [[`d53863a`](https://github.com/geekmidas/toolbox/commit/d53863a84db2e4ab5420e08f79128b637043fc42)]:
|
|
22
|
-
- @geekmidas/audit@9.0.2
|
|
23
|
-
- @geekmidas/cache@9.0.2
|
|
24
|
-
- @geekmidas/db@9.0.2
|
|
25
|
-
- @geekmidas/envkit@9.0.2
|
|
26
|
-
- @geekmidas/errors@9.0.2
|
|
27
|
-
- @geekmidas/events@9.0.2
|
|
28
|
-
- @geekmidas/logger@9.0.2
|
|
29
|
-
- @geekmidas/rate-limit@9.0.2
|
|
30
|
-
- @geekmidas/schema@9.0.2
|
|
31
|
-
- @geekmidas/services@9.0.2
|
|
32
|
-
|
|
33
|
-
## 7.0.1
|
|
34
|
-
|
|
35
|
-
### Patch Changes
|
|
36
|
-
|
|
37
|
-
- 🐛 [#11](https://github.com/geekmidas/toolbox/pull/11) [`40f4dc0`](https://github.com/geekmidas/toolbox/commit/40f4dc095911b2223a255029d8f776caf7781309) Thanks [@geekmidas](https://github.com/geekmidas)! - Patch release across all packages to realign published versions with the
|
|
38
|
-
registry. The previous release only published the four packages that had
|
|
39
|
-
version bumps; the remaining packages failed with "cannot publish over the
|
|
40
|
-
previously published versions" because their versions were unchanged.
|
|
41
|
-
- Updated dependencies [[`40f4dc0`](https://github.com/geekmidas/toolbox/commit/40f4dc095911b2223a255029d8f776caf7781309)]:
|
|
42
|
-
- @geekmidas/audit@2.2.1
|
|
43
|
-
- @geekmidas/cache@1.1.2
|
|
44
|
-
- @geekmidas/db@1.1.1
|
|
45
|
-
- @geekmidas/envkit@1.1.1
|
|
46
|
-
- @geekmidas/errors@1.0.2
|
|
47
|
-
- @geekmidas/events@1.1.6
|
|
48
|
-
- @geekmidas/logger@1.0.3
|
|
49
|
-
- @geekmidas/rate-limit@4.0.1
|
|
50
|
-
- @geekmidas/schema@1.0.4
|
|
51
|
-
- @geekmidas/services@2.0.1
|
|
52
|
-
|
|
53
|
-
## 7.0.0
|
|
54
|
-
|
|
55
|
-
### Patch Changes
|
|
56
|
-
|
|
57
|
-
- Updated dependencies [[`ae678fe`](https://github.com/geekmidas/toolbox/commit/ae678fe6fbc89307d052335468f1b955b306a604)]:
|
|
58
|
-
- @geekmidas/audit@2.2.0
|
|
59
|
-
|
|
60
|
-
## 6.0.0
|
|
61
|
-
|
|
62
|
-
### Patch Changes
|
|
63
|
-
|
|
64
|
-
- Updated dependencies [[`e31a60a`](https://github.com/geekmidas/toolbox/commit/e31a60a971366180a0e7bec6e7da56d8f36aa21f)]:
|
|
65
|
-
- @geekmidas/db@1.1.0
|
|
66
|
-
- @geekmidas/audit@2.1.0
|
|
67
|
-
|
|
68
|
-
## 5.0.0
|
|
69
|
-
|
|
70
|
-
### Minor Changes
|
|
71
|
-
|
|
72
|
-
- [#8](https://github.com/geekmidas/toolbox/pull/8) [`b004fd8`](https://github.com/geekmidas/toolbox/commit/b004fd8ee74b5f20a047260b16669d16d8fc03b4) Thanks [@geekmidas](https://github.com/geekmidas)! - feat: queue workers (`q`) — producer, runtime adaptors, and `gkm` discovery
|
|
73
|
-
|
|
74
|
-
Adds end-to-end support for point-to-point queues, alongside subscribers (`s`):
|
|
75
|
-
|
|
76
|
-
**`@geekmidas/constructs/queue`** — the `q` builder:
|
|
77
|
-
|
|
78
|
-
```ts
|
|
79
|
-
import { q } from '@geekmidas/constructs/queue';
|
|
80
|
-
|
|
81
|
-
export const orders = q
|
|
82
|
-
.queue('orders')
|
|
83
|
-
.services([db]) // array; sniffed for required env vars
|
|
84
|
-
.message(z.object({ orderId: z.string() }))
|
|
85
|
-
.handle(async ({ messages, services }) => { … }); // the single consumer
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
Unlike `s` (topic fan-out, filtered by `subscribedEvents`), a queue drains
|
|
89
|
-
_every_ message of its one typed `message`.
|
|
90
|
-
- **Producer side** — `orders.publisher`, a ready-to-inject `Service` typed to
|
|
91
|
-
the queue's message. Drop it into any `.services([...])` and call
|
|
92
|
-
`services.ordersPublisher.publish([{ type: 'orders', payload }])`. It reads
|
|
93
|
-
`<NAME>_PUBLISHER_CONNECTION_STRING` and picks its transport from the URL
|
|
94
|
-
protocol — `pgboss://` locally, `sqs://` deployed — so the same code targets
|
|
95
|
-
Postgres in dev and SQS in prod. The env requirement is sniffed into the
|
|
96
|
-
manifest, so infra links exactly that queue with least privilege.
|
|
97
|
-
- **Runtime adaptors** — `AWSLambdaQueue` (`@geekmidas/constructs/aws`, SQS
|
|
98
|
-
event-source with partial-batch failures) and `TestQueueAdaptor`
|
|
99
|
-
(`@geekmidas/constructs/testing`).
|
|
100
|
-
|
|
101
|
-
**`@geekmidas/cli`** — `gkm build`/`gkm dev` discover `q` definitions:
|
|
102
|
-
- ✨ New `queues: './src/queues/**/*.ts'` config glob.
|
|
103
|
-
- Server / `gkm dev`: an in-process pg-boss poller (`setupQueues()`) runs
|
|
104
|
-
alongside the Hono server — each queue subscribes by its name on the shared
|
|
105
|
-
`EVENT_SUBSCRIBER_CONNECTION_STRING`. Queues are background workers, not HTTP
|
|
106
|
-
routes.
|
|
107
|
-
- AWS: one `AWSLambdaQueue` handler per queue.
|
|
108
|
-
- Queues are recorded in the manifest's `queues` field (`QueueInfo`).
|
|
109
|
-
|
|
110
|
-
- ✨ [#8](https://github.com/geekmidas/toolbox/pull/8) [`0dad77e`](https://github.com/geekmidas/toolbox/commit/0dad77e574000e4018033b956ed4bb95935911a5) Thanks [@geekmidas](https://github.com/geekmidas)! - feat(topic): add the `t` topic construct + derived publisher (closes the topic/queue asymmetry)
|
|
111
|
-
|
|
112
|
-
Topics now have the same app-driven story queues already had — declare the topic
|
|
113
|
-
in the app, get a typed publisher for free, and let `gkm build` capture it. This
|
|
114
|
-
removes the need to hand-write a publisher `Service` (e.g. `EventsService`) to
|
|
115
|
-
fan events out.
|
|
116
|
-
|
|
117
|
-
**`@geekmidas/constructs/topic`** — the `t` builder:
|
|
118
|
-
|
|
119
|
-
```ts
|
|
120
|
-
import { t } from "@geekmidas/constructs/topic";
|
|
121
|
-
|
|
122
|
-
export const userTopic = t.topic("users").events({
|
|
123
|
-
"user.created": z.object({ userId: z.string(), email: z.string() }),
|
|
124
|
-
"user.updated": z.object({
|
|
125
|
-
userId: z.string(),
|
|
126
|
-
changes: z.array(z.string()),
|
|
127
|
-
}),
|
|
128
|
-
});
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
- A `Topic` is a _resource_ construct (`ConstructType.Topic`) — fan-out, owned by
|
|
132
|
-
no single handler. It declares the event contract and derives a publisher.
|
|
133
|
-
- **`userTopic.publisher`** — a derived `Service` typed to the union of the topic's
|
|
134
|
-
events, reading `<NAME>_PUBLISHER_CONNECTION_STRING` (transport by protocol:
|
|
135
|
-
`sns://` deployed, `pgboss://` local). Replaces hand-written publisher services.
|
|
136
|
-
Inject via `.publisher(userTopic.publisher)` (declarative `.event(...)`) or
|
|
137
|
-
`.services([userTopic.publisher])`.
|
|
138
|
-
- **`s.topic(userTopic)`** — binds a subscriber to a topic: supplies the
|
|
139
|
-
subscribable event types/payloads _and_ records the binding for the manifest.
|
|
140
|
-
A consumer doesn't publish, so this requires **no** publisher connection string
|
|
141
|
-
(least privilege) — unlike typing via `.publisher(...)`.
|
|
142
|
-
|
|
143
|
-
**`@geekmidas/manifest`** — new `TopicInfo` + `manifest.topics`; `SubscriberInfo`
|
|
144
|
-
gains `topic` (the bound topic name).
|
|
145
|
-
|
|
146
|
-
**`@geekmidas/cli`** — `TopicGenerator` discovers `t` topics into `manifest.topics`
|
|
147
|
-
(a topic has no handler to generate); new `topics` config glob; wired through
|
|
148
|
-
`gkm build`/`gkm dev` and both manifest writers.
|
|
149
|
-
|
|
150
|
-
Hand-written publisher services still work; `t` is the encouraged path.
|
|
151
|
-
|
|
152
|
-
### Patch Changes
|
|
153
|
-
|
|
154
|
-
- Updated dependencies [[`7323f34`](https://github.com/geekmidas/toolbox/commit/7323f34176d63170dd53450889ac0b5959420c3c), [`79e2929`](https://github.com/geekmidas/toolbox/commit/79e292978d3dbc8927e25814bdb051d1c380600a), [`03b08fe`](https://github.com/geekmidas/toolbox/commit/03b08feba2e735539c43f95b77792c18a627b07d)]:
|
|
155
|
-
- @geekmidas/envkit@1.1.0
|
|
156
|
-
- @geekmidas/events@1.1.5
|
|
157
|
-
- @geekmidas/services@2.0.0
|
|
158
|
-
- @geekmidas/rate-limit@4.0.0
|
|
159
|
-
|
|
160
|
-
## 4.0.1
|
|
161
|
-
|
|
162
|
-
### Patch Changes
|
|
163
|
-
|
|
164
|
-
- [#7](https://github.com/geekmidas/toolbox/pull/7) [`e0d06b3`](https://github.com/geekmidas/toolbox/commit/e0d06b38dfd275758f7955f5754900ab78779302) Thanks [@geekmidas](https://github.com/geekmidas)! - feat(constructs): allow endpoint handlers to return the output schema's input type
|
|
165
|
-
|
|
166
|
-
Endpoint handlers previously had to return the output schema's _parsed_ type
|
|
167
|
-
(`InferStandardSchema`). When an output schema coerces its value (e.g. a `Date`
|
|
168
|
-
serialized to an ISO `string`, or an applied default), that forced handlers to
|
|
169
|
-
pre-coerce values themselves even though the schema would do it on the way out.
|
|
170
|
-
|
|
171
|
-
A new `InferStandardSchemaInput` type is added to `@geekmidas/schema`, exposing a
|
|
172
|
-
Standard Schema's _input_ type (`StandardSchemaV1.InferInput`). `Endpoint`'s
|
|
173
|
-
handler return type now uses it, so handlers may return the looser pre-coercion
|
|
174
|
-
input while consumers (`EndpointOutput` and the generated client) still see the
|
|
175
|
-
narrower parsed output type.
|
|
176
|
-
|
|
177
|
-
- Updated dependencies [[`e0d06b3`](https://github.com/geekmidas/toolbox/commit/e0d06b38dfd275758f7955f5754900ab78779302)]:
|
|
178
|
-
- @geekmidas/schema@1.0.3
|
|
179
|
-
|
|
180
|
-
## 4.0.0
|
|
181
|
-
|
|
182
|
-
### Minor Changes
|
|
183
|
-
|
|
184
|
-
- [#5](https://github.com/geekmidas/toolbox/pull/5) [`811d740`](https://github.com/geekmidas/toolbox/commit/811d740ae3875d59ad1b0dc50261266963c8cb76) Thanks [@geekmidas](https://github.com/geekmidas)! - Move the tRPC and Middy service integrations from `@geekmidas/constructs` to `@geekmidas/services`, where they belong — they depend only on `@geekmidas/services`, not on any construct.
|
|
185
|
-
- ✨ **`@geekmidas/constructs`:** the `@geekmidas/constructs/trpc` and `@geekmidas/constructs/middy` entry points are removed (they were only just added). Import from `@geekmidas/services/trpc` and `@geekmidas/services/middy` instead. (`@trpc/server` is no longer a peer dependency of `@geekmidas/constructs`.)
|
|
186
|
-
- ✨ **`@geekmidas/services`:** adds `/trpc` (`createServicesMiddleware`, `createRequestContextMiddleware`) and `/middy` (`requestContext`, `addServices`, `withServices`, `EventServices`) exports.
|
|
187
|
-
|
|
188
|
-
The Middy middlewares were also tightened:
|
|
189
|
-
- `requestContext` / `withServices` now require an explicit `logger` (no `ConsoleLogger` default) and are generic over `TLogger extends Logger`, so a custom logger type is preserved.
|
|
190
|
-
- `addServices` / `withServices` now require an `envParser` (no implicit `process.env` default).
|
|
191
|
-
- 🐛 Resolved services are attached to `event.services` (matching the `Function`/`Cron` constructs).
|
|
192
|
-
|
|
193
|
-
### Patch Changes
|
|
194
|
-
|
|
195
|
-
- Updated dependencies [[`811d740`](https://github.com/geekmidas/toolbox/commit/811d740ae3875d59ad1b0dc50261266963c8cb76)]:
|
|
196
|
-
- @geekmidas/services@1.1.0
|
|
197
|
-
- @geekmidas/rate-limit@3.0.0
|
|
198
|
-
|
|
199
|
-
## 3.1.0
|
|
200
|
-
|
|
201
|
-
### Minor Changes
|
|
202
|
-
|
|
203
|
-
- ✨ [#4](https://github.com/geekmidas/toolbox/pull/4) [`07093f5`](https://github.com/geekmidas/toolbox/commit/07093f5f911bf1ee48e53275da3cce398cc78ff6) Thanks [@geekmidas](https://github.com/geekmidas)! - Add `@geekmidas/constructs/middy` — Middy middlewares that bring request context and service discovery to standalone Lambda handlers:
|
|
204
|
-
- `requestContext(options?)` establishes a request context so `serviceContext.getLogger()` / `getRequestId()` / `getRequestStartTime()` work inside the handler and any service it calls.
|
|
205
|
-
- 🐛 `addServices([...], options?)` resolves services via `ServiceDiscovery` and attaches the typed record to `event.services` (pair with `requestContext`, or use `withServices`, if your services read `serviceContext`).
|
|
206
|
-
- `withServices([...], options?)` bundles both in a single `.use(...)`.
|
|
207
|
-
|
|
208
|
-
Also exports an `EventServices<T>` helper type for typing the handler's event.
|
|
209
|
-
|
|
210
|
-
### Patch Changes
|
|
211
|
-
|
|
212
|
-
- ✨ [#4](https://github.com/geekmidas/toolbox/pull/4) [`a20be2f`](https://github.com/geekmidas/toolbox/commit/a20be2faa4795600358904b751fa947d3cbb4c45) Thanks [@geekmidas](https://github.com/geekmidas)! - Add and export `AWSScheduledFunction` from `@geekmidas/constructs/crons` (and `/aws`). The CLI's cron handler generator already imported this adaptor, but it was never implemented, so generated cron handlers failed to load. `AWSScheduledFunction` wraps a `Cron` (which extends `Function`) and reuses the Lambda function execution pipeline, including the `runWithRequestContext` wrapper that powers request-scoped logging.
|
|
213
|
-
|
|
214
|
-
## 3.0.14
|
|
215
|
-
|
|
216
|
-
### Patch Changes
|
|
217
|
-
|
|
218
|
-
- 🐛 [#3](https://github.com/geekmidas/toolbox/pull/3) [`42fda53`](https://github.com/geekmidas/toolbox/commit/42fda532bdf4489a3352f6a684f5f30beafccedd) Thanks [@geekmidas](https://github.com/geekmidas)! - Fix stale logger from service initialization
|
|
219
|
-
|
|
220
|
-
- Updated dependencies [[`42fda53`](https://github.com/geekmidas/toolbox/commit/42fda532bdf4489a3352f6a684f5f30beafccedd)]:
|
|
221
|
-
- @geekmidas/services@1.0.4
|
|
222
|
-
|
|
223
|
-
## 3.0.13
|
|
224
|
-
|
|
225
|
-
### Patch Changes
|
|
226
|
-
|
|
227
|
-
- ✨ [`351f73b`](https://github.com/geekmidas/toolbox/commit/351f73b032bc0742b7f611a9fbcdfc85bbfd69a8) Thanks [@geekmidas](https://github.com/geekmidas)! - Update request context and add support for trpc
|
|
228
|
-
|
|
229
|
-
- Updated dependencies [[`351f73b`](https://github.com/geekmidas/toolbox/commit/351f73b032bc0742b7f611a9fbcdfc85bbfd69a8)]:
|
|
230
|
-
- @geekmidas/services@1.0.3
|
|
231
|
-
|
|
232
|
-
## 3.0.12
|
|
233
|
-
|
|
234
|
-
### Patch Changes
|
|
235
|
-
|
|
236
|
-
- 🐛 [`d70c6c0`](https://github.com/geekmidas/toolbox/commit/d70c6c0aeb8a79da2473ac77dbd8255a4a2f5651) Thanks [@geekmidas](https://github.com/geekmidas)! - Fix `package.json` exports so TypeScript declarations resolve correctly under NodeNext/Bundler module resolution. Each subpath export now nests `types` inside its `import`/`require` condition, pointing at the `.d.mts` and `.d.cts` files that `tsdown` actually emits (previously the exports referenced non-existent `.d.ts` files, causing type-resolution failures for consumers). Both ESM (`.mjs`) and CJS (`.cjs`) runtime entry points are preserved. Additionally, `@geekmidas/ui` had `import` paths pointing at `.js` files that were never emitted — those are corrected to `.mjs`.
|
|
237
|
-
|
|
238
|
-
- Updated dependencies [[`d70c6c0`](https://github.com/geekmidas/toolbox/commit/d70c6c0aeb8a79da2473ac77dbd8255a4a2f5651)]:
|
|
239
|
-
- @geekmidas/audit@2.0.1
|
|
240
|
-
- @geekmidas/cache@1.1.1
|
|
241
|
-
- @geekmidas/db@1.0.2
|
|
242
|
-
- @geekmidas/envkit@1.0.7
|
|
243
|
-
- @geekmidas/errors@1.0.1
|
|
244
|
-
- @geekmidas/events@1.1.3
|
|
245
|
-
- @geekmidas/logger@1.0.2
|
|
246
|
-
- @geekmidas/rate-limit@2.0.1
|
|
247
|
-
- @geekmidas/schema@1.0.2
|
|
248
|
-
- @geekmidas/services@1.0.2
|
|
249
|
-
|
|
250
|
-
## 3.0.11
|
|
251
|
-
|
|
252
|
-
### Patch Changes
|
|
253
|
-
|
|
254
|
-
- [`fb1e721`](https://github.com/geekmidas/toolbox/commit/fb1e721ec38c1b328d41466564c6fa1c9305e80b) Thanks [@geekmidas](https://github.com/geekmidas)! - Return 403 Forbidden instead of 401 Unauthorized when an endpoint's `.authorize()` returns false. Authorization runs after `getSession()`, so by the time it rejects, the caller is already identified — 403 is the correct semantic. Callers that want 401 for missing authentication should throw `UnauthorizedError` from `getSession()` (or `.authorize()`) directly.
|
|
255
|
-
|
|
256
|
-
## 3.0.10
|
|
257
|
-
|
|
258
|
-
### Patch Changes
|
|
259
|
-
|
|
260
|
-
- 🐛 [`aeba918`](https://github.com/geekmidas/toolbox/commit/aeba918fc258f6ccdb96b8273b2bc01bd2190553) Thanks [@geekmidas](https://github.com/geekmidas)! - Fix schema, openapi generation and events testkit
|
|
261
|
-
|
|
262
|
-
- Updated dependencies [[`aeba918`](https://github.com/geekmidas/toolbox/commit/aeba918fc258f6ccdb96b8273b2bc01bd2190553)]:
|
|
263
|
-
- @geekmidas/events@1.1.2
|
|
264
|
-
- @geekmidas/schema@1.0.1
|
|
265
|
-
|
|
266
|
-
## 3.0.9
|
|
267
|
-
|
|
268
|
-
### Patch Changes
|
|
269
|
-
|
|
270
|
-
- ✨ [`363c67f`](https://github.com/geekmidas/toolbox/commit/363c67fb3c3406bac6823326ab80ba55bff29e31) Thanks [@geekmidas](https://github.com/geekmidas)! - Add dynamic return types
|
|
271
|
-
|
|
272
|
-
## 3.0.8
|
|
273
|
-
|
|
274
|
-
### Patch Changes
|
|
275
|
-
|
|
276
|
-
- ✨ [`0830c6e`](https://github.com/geekmidas/toolbox/commit/0830c6e0d60842526788e0e1f0e78827514ea7b3) Thanks [@geekmidas](https://github.com/geekmidas)! - Add optional sniff support
|
|
277
|
-
|
|
278
|
-
- Updated dependencies [[`0830c6e`](https://github.com/geekmidas/toolbox/commit/0830c6e0d60842526788e0e1f0e78827514ea7b3)]:
|
|
279
|
-
- @geekmidas/logger@1.0.1
|
|
280
|
-
|
|
281
|
-
## 3.0.7
|
|
282
|
-
|
|
283
|
-
### Patch Changes
|
|
284
|
-
|
|
285
|
-
- ✨ [`79e17a8`](https://github.com/geekmidas/toolbox/commit/79e17a84e630f102023005994d9d45b37f7d9d8f) Thanks [@geekmidas](https://github.com/geekmidas)! - Add msw support for construct testing for ui
|
|
286
|
-
|
|
287
|
-
## 3.0.6
|
|
288
|
-
|
|
289
|
-
### Patch Changes
|
|
290
|
-
|
|
291
|
-
- ✨ [`3941ae6`](https://github.com/geekmidas/toolbox/commit/3941ae6c9027fddb32999b9f98af813a12867877) Thanks [@geekmidas](https://github.com/geekmidas)! - Add db to authorizer
|
|
292
|
-
|
|
293
|
-
## 3.0.5
|
|
294
|
-
|
|
295
|
-
### Patch Changes
|
|
296
|
-
|
|
297
|
-
- [`fba83f3`](https://github.com/geekmidas/toolbox/commit/fba83f3ceee1d058874e62b31e38a9da205a6742) Thanks [@geekmidas](https://github.com/geekmidas)! - Release constructs
|
|
298
|
-
|
|
299
|
-
## 3.0.4
|
|
300
|
-
|
|
301
|
-
### Patch Changes
|
|
302
|
-
|
|
303
|
-
- ✨ [`f005956`](https://github.com/geekmidas/toolbox/commit/f005956573aac6bcdfcc95d2a31c17cf5b9688d4) Thanks [@geekmidas](https://github.com/geekmidas)! - Add params to authorize and decode content type on routes
|
|
304
|
-
|
|
305
|
-
## 3.0.3
|
|
306
|
-
|
|
307
|
-
### Patch Changes
|
|
308
|
-
|
|
309
|
-
- [`a39b41f`](https://github.com/geekmidas/toolbox/commit/a39b41fae9c6cfbde8e6d78bf5a11fbb9e59f67d) Thanks [@geekmidas](https://github.com/geekmidas)! - Use qs to process query params instead of custom solution
|
|
310
|
-
|
|
311
|
-
## 3.0.2
|
|
312
|
-
|
|
313
|
-
### Patch Changes
|
|
314
|
-
|
|
315
|
-
- 🐛 [`317e53e`](https://github.com/geekmidas/toolbox/commit/317e53e91c07bbc23dad3ae81faf573be91cb992) Thanks [@geekmidas](https://github.com/geekmidas)! - Fix v2 cookie loading
|
|
316
|
-
|
|
317
|
-
## 3.0.1
|
|
318
|
-
|
|
319
|
-
### Patch Changes
|
|
320
|
-
|
|
321
|
-
- ✨ [`bfc5a4f`](https://github.com/geekmidas/toolbox/commit/bfc5a4f656445bb389b0532e9d3385d2e66a28fe) Thanks [@geekmidas](https://github.com/geekmidas)! - Add function context and suport for partitions
|
|
322
|
-
|
|
323
|
-
## 3.0.0
|
|
324
|
-
|
|
325
|
-
### Patch Changes
|
|
326
|
-
|
|
327
|
-
- Updated dependencies [[`be4f7a9`](https://github.com/geekmidas/toolbox/commit/be4f7a9bd5de7f08adbca582916d6902e0c24de2)]:
|
|
328
|
-
- @geekmidas/cache@1.1.0
|
|
329
|
-
- @geekmidas/audit@2.0.0
|
|
330
|
-
- @geekmidas/rate-limit@2.0.0
|
|
331
|
-
|
|
332
|
-
## 2.0.0
|
|
333
|
-
|
|
334
|
-
### Patch Changes
|
|
335
|
-
|
|
336
|
-
- ✨ [`83a24de`](https://github.com/geekmidas/toolbox/commit/83a24de902b3fadd98444cab552ecd84f32b6661) Thanks [@geekmidas](https://github.com/geekmidas)! - Add pg-boss event publisher/subscriber, CLI setup and upgrade commands, and secrets sync via AWS SSM
|
|
337
|
-
- ✨ **@geekmidas/events**: Add pg-boss backend for event publishing and subscribing with connection string support
|
|
338
|
-
- ✨ **@geekmidas/cli**: Add `gkm setup` command for dev environment initialization, `gkm upgrade` command with workspace detection, and secrets push/pull via AWS SSM Parameter Store
|
|
339
|
-
- 🐛 **@geekmidas/testkit**: Fix database creation race condition in PostgresMigrator
|
|
340
|
-
- ✨ **@geekmidas/constructs**: Add integration tests for pg-boss with HonoEndpoint
|
|
341
|
-
|
|
342
|
-
- Updated dependencies [[`83a24de`](https://github.com/geekmidas/toolbox/commit/83a24de902b3fadd98444cab552ecd84f32b6661)]:
|
|
343
|
-
- @geekmidas/events@1.1.0
|
|
344
|
-
|
|
345
|
-
## 1.1.1
|
|
346
|
-
|
|
347
|
-
### Patch Changes
|
|
348
|
-
|
|
349
|
-
- 🔥 [`9ac81f2`](https://github.com/geekmidas/toolbox/commit/9ac81f25fbf3676e39580c916dc0085358af99cb) Thanks [@geekmidas](https://github.com/geekmidas)! - Remove subscriber adaptor from root exports
|
|
350
|
-
|
|
351
|
-
## 1.1.0
|
|
352
|
-
|
|
353
|
-
### Minor Changes
|
|
354
|
-
|
|
355
|
-
- ⚡️ [`73511d9`](https://github.com/geekmidas/toolbox/commit/73511d912062eb0776935168c9f72d42c7c854a6) Thanks [@geekmidas](https://github.com/geekmidas)! - Improve dev script experience and export function tester
|
|
356
|
-
|
|
357
|
-
## 1.0.5
|
|
358
|
-
|
|
359
|
-
### Patch Changes
|
|
360
|
-
|
|
361
|
-
- ⬆️ [`53c39a0`](https://github.com/geekmidas/toolbox/commit/53c39a0ed9244be6ca2ff6ec8e39138a0fc88692) Thanks [@geekmidas](https://github.com/geekmidas)! - Update RLS types
|
|
362
|
-
|
|
363
|
-
## 1.0.4
|
|
364
|
-
|
|
365
|
-
### Patch Changes
|
|
366
|
-
|
|
367
|
-
- 🐛 [`05a6302`](https://github.com/geekmidas/toolbox/commit/05a6302a37ef2285aaf07ee46eeb9135ed658a68) Thanks [@geekmidas](https://github.com/geekmidas)! - Fix lambda function generator to use correct adaptor import
|
|
368
|
-
|
|
369
|
-
## 1.0.3
|
|
370
|
-
|
|
371
|
-
### Patch Changes
|
|
372
|
-
|
|
373
|
-
- 🐛 [`8bdda11`](https://github.com/geekmidas/toolbox/commit/8bdda11f5c0f7c2eaea605befb0eca38ecc56e44) Thanks [@geekmidas](https://github.com/geekmidas)! - Fix iam resolution for authorizers and fixed exported types for envkit
|
|
374
|
-
|
|
375
|
-
- Updated dependencies [[`8bdda11`](https://github.com/geekmidas/toolbox/commit/8bdda11f5c0f7c2eaea605befb0eca38ecc56e44)]:
|
|
376
|
-
- @geekmidas/envkit@1.0.1
|
|
377
|
-
|
|
378
|
-
## 1.0.0
|
|
379
|
-
|
|
380
|
-
### Major Changes
|
|
381
|
-
|
|
382
|
-
- [`ff7b115`](https://github.com/geekmidas/toolbox/commit/ff7b11599f60f84ac6cdc73714c853ecf786b2e8) Thanks [@geekmidas](https://github.com/geekmidas)! - Version 1 Stable release
|
|
383
|
-
|
|
384
|
-
### Patch Changes
|
|
385
|
-
|
|
386
|
-
- Updated dependencies [[`ff7b115`](https://github.com/geekmidas/toolbox/commit/ff7b11599f60f84ac6cdc73714c853ecf786b2e8)]:
|
|
387
|
-
- @geekmidas/audit@1.0.0
|
|
388
|
-
- @geekmidas/cache@1.0.0
|
|
389
|
-
- @geekmidas/db@1.0.0
|
|
390
|
-
- @geekmidas/envkit@1.0.0
|
|
391
|
-
- @geekmidas/errors@1.0.0
|
|
392
|
-
- @geekmidas/events@1.0.0
|
|
393
|
-
- @geekmidas/logger@1.0.0
|
|
394
|
-
- @geekmidas/rate-limit@1.0.0
|
|
395
|
-
- @geekmidas/schema@1.0.0
|
|
396
|
-
- @geekmidas/services@1.0.0
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Construct-DCMuYOox.d.mts","names":[],"sources":["../src/Construct.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;AAS8D;AAuC9D;;;cAtBM,cAuBoB,EAvBJ,cAuBI;AAEf,uBAHW,SAGX,CAAA,gBAFM,MAEN,GAFe,MAEf,EAAA,qBAAA,MAAA,GAAA,MAAA,EAAA,UAAA,cAAA,CAAA,GAAA,CAAA,GAAA,SAAA,GAAA,SAAA,EAAA,kBACQ,gBADR,GAAA,SAAA,GAAA,SAAA,EAAA,kBAEQ,OAFR,EAAA,GAAA,EAAA,EAAA,iCAAA,MAAA,GAAA,MAAA,EAAA,sBAIY,YAJZ,GAAA,SAAA,GAAA,SAAA,EAAA,6BAAA,MAAA,GAAA,MAAA,EAAA,YAAA,OAAA,CAAA,CAAA;EAAc,SACN,IAAA,EAWK,aAXL;EAAgB,SAChB,MAAA,EAWO,OAXP;EAAO,SAEH,QAAA,EAUK,SAVL;EAAY,SAQX,MAAA,EAGE,WAHF,CAGc,CAHd,EAAA,GAAA,CAAA,EAAA;EAAa,SACX,gBAAA,CAAA,EAIW,OAJX,CAImB,YAJnB,EAIiC,CAJjC,CAAA;EAAO,YACL,CAAA,EAIJ,SAJI,GAAA,SAAA;EAAS,SACC,OAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EAAC,SAAb,UAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EAAW,SAEQ,qBAAA,CAAA,EAIH,OAJG,CAK1C,wBAL0C,EAM1C,aAN0C,CAAA;EAAY;EAAG,eAAvB,CAAA,EARX,OAQW,CARH,oBAQG,EARmB,SAQnB,CAAA;EAAO,WACpB,CAAA,IAAA,EANA,aAMA,EAAA,MAAA,EALE,OAKF,EAAA,QAAA,EAJI,SAIJ,EAAA,MAAA,CAAA,EAHE,WAGF,CAHc,CAGd,EAAA,GAAA,CAAA,EAAA,EAAA,gBAAA,CAAA,EADa,OACb,CADqB,YACrB,EADmC,CACnC,CAAA,EAAA,YAAA,CAAA,EAAA,SAAA,GAAA,SAAA,EAAA,OAAA,CAAA,EAAA,MAAA,GAAA,SAAA,EAAA,UAAA,CAAA,EAAA,MAAA,GAAA,SAAA,EAAA,qBAAA,CAAA,EAGkB,OAHlB,CAIrB,wBAJqB,EAKrB,aALqB,CAAA;EAAS;;;;;;;;;;;;;;;;;;;AAkCtB;AAiEX;AAuBA;;EAAkC,cAAU,CAAA,IAA6B,CAA7B,EAAA;IAAkB,YAAA,CAAA,EAAA,OAAA;EAAW,CAAA,CAAA,EAxFrE,OAwFkD,CAAA,MAAA,EAAA,CAAA;AAAO;aAvBjD,aAAA;;;;;;;;;;;;;;;;;;;;;;iBAuBU,YAAA,UAAsB,UAAU,QAAQ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Construct-_1wX7p_Y.d.cts","names":[],"sources":["../src/Construct.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;AAS8D;AAuC9D;;;cAtBM,cAuBoB,EAvBJ,cAuBI;AAEf,uBAHW,SAGX,CAAA,gBAFM,MAEN,GAFe,MAEf,EAAA,qBAAA,MAAA,GAAA,MAAA,EAAA,UAAA,cAAA,CAAA,GAAA,CAAA,GAAA,SAAA,GAAA,SAAA,EAAA,kBACQ,gBADR,GAAA,SAAA,GAAA,SAAA,EAAA,kBAEQ,OAFR,EAAA,GAAA,EAAA,EAAA,iCAAA,MAAA,GAAA,MAAA,EAAA,sBAIY,YAJZ,GAAA,SAAA,GAAA,SAAA,EAAA,6BAAA,MAAA,GAAA,MAAA,EAAA,YAAA,OAAA,CAAA,CAAA;EAAc,SACN,IAAA,EAWK,aAXL;EAAgB,SAChB,MAAA,EAWO,OAXP;EAAO,SAEH,QAAA,EAUK,SAVL;EAAY,SAQX,MAAA,EAGE,WAHF,CAGc,CAHd,EAAA,GAAA,CAAA,EAAA;EAAa,SACX,gBAAA,CAAA,EAIW,OAJX,CAImB,YAJnB,EAIiC,CAJjC,CAAA,GAAA,SAAA;EAAO,YACL,CAAA,EAIJ,SAJI,GAAA,SAAA;EAAS,SACC,OAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EAAC,SAAb,UAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EAAW,SAEQ,qBAAA,CAAA,EAIH,OAJG,CAK1C,wBAL0C,EAM1C,aAN0C,CAAA,GAAA,SAAA;EAAY;EAAG,eAAvB,CAAA,EARX,OAQW,CARH,oBAQG,EARmB,SAQnB,CAAA;EAAO,WACpB,CAAA,IAAA,EANA,aAMA,EAAA,MAAA,EALE,OAKF,EAAA,QAAA,EAJI,SAIJ,EAAA,MAAA,CAAA,EAHE,WAGF,CAHc,CAGd,EAAA,GAAA,CAAA,EAAA,EAAA,gBAAA,CAAA,EADa,OACb,CADqB,YACrB,EADmC,CACnC,CAAA,GAAA,SAAA,EAAA,YAAA,CAAA,EAAA,SAAA,GAAA,SAAA,EAAA,OAAA,CAAA,EAAA,MAAA,GAAA,SAAA,EAAA,UAAA,CAAA,EAAA,MAAA,GAAA,SAAA,EAAA,qBAAA,CAAA,EAGkB,OAHlB,CAIrB,wBAJqB,EAKrB,aALqB,CAAA,GAAA,SAAA;EAAS;;;;;;;;;;;;;;;;;;;AAkCtB;AAiEX;AAuBA;;EAAkC,cAAU,CAAA,IAA6B,CAA7B,EAAA;IAAkB,YAAA,CAAA,EAAA,OAAA;EAAW,CAAA,CAAA,EAxFrE,OAwFkD,CAAA,MAAA,EAAA,CAAA;AAAO;aAvBjD,aAAA;;;;;;;;;;;;;;;;;;;;;;iBAuBU,YAAA,UAAsB,UAAU,QAAQ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Construct-r0U2zBwW.mjs","names":["compact","snifferContext: ServiceContext","type: ConstructType","logger: TLogger","services: TServices","events: MappedEvent<T, any>[]","publisherService?: Service<TServiceName, T>","outputSchema?: OutSchema","timeout?: number","memorySize?: number","auditorStorageService?: Service<\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditStorage\n\t\t>","opts: { markOptional?: boolean }","services: Service[]","service: Service"],"sources":["../../../node_modules/.pnpm/lodash.compact@3.0.1/node_modules/lodash.compact/index.js","../src/Construct.ts"],"sourcesContent":["/**\n * lodash 3.0.1 (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license <https://lodash.com/license>\n */\n\n/**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\nfunction compact(array) {\n var index = -1,\n length = array ? array.length : 0,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = compact;\n","import type { AuditStorage } from '@geekmidas/audit';\nimport {\n\tSnifferEnvironmentParser,\n\ttype SniffResult,\n\tsniffWithFireAndForget,\n} from '@geekmidas/envkit/sniffer';\nimport type { EventPublisher, MappedEvent } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type { Service, ServiceContext } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport compact from 'lodash.compact';\n\n// Cache for service environment variables to handle singleton services\n// Stores both the full list and the optional subset so the same sniff result\n// can satisfy both getEnvironment() and getEnvironment({ markOptional: true }).\nconst serviceEnvCache = new Map<\n\tService,\n\t{ envVars: string[]; optionalEnvVars: string[] }\n>();\n\n/**\n * Noop context for environment sniffing.\n * Used when calling service.register() to detect env vars without a real request.\n * Returns dummy values since services should only use context in instance methods,\n * not during registration.\n */\nconst snifferContext: ServiceContext = {\n\tgetLogger() {\n\t\t// Return a noop logger for sniffing - services shouldn't log during registration\n\t\treturn {\n\t\t\tdebug: () => {},\n\t\t\tinfo: () => {},\n\t\t\twarn: () => {},\n\t\t\terror: () => {},\n\t\t\tchild: () => snifferContext.getLogger(),\n\t\t} as unknown as Logger;\n\t},\n\tgetRequestId() {\n\t\treturn 'sniffer-context';\n\t},\n\tgetRequestStartTime() {\n\t\treturn Date.now();\n\t},\n\thasContext() {\n\t\treturn false;\n\t},\n};\n\nexport abstract class Construct<\n\tTLogger extends Logger = Logger,\n\tTServiceName extends string = string,\n\tT extends EventPublisher<any> | undefined = undefined,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTAuditStorageServiceName extends string = string,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n\tTDatabaseServiceName extends string = string,\n\tTDatabase = unknown,\n> {\n\t/** Database service for this construct (used by Endpoint for RLS/audit context) */\n\tpublic databaseService?: Service<TDatabaseServiceName, TDatabase>;\n\n\tconstructor(\n\t\tpublic readonly type: ConstructType,\n\t\tpublic readonly logger: TLogger,\n\t\tpublic readonly services: TServices,\n\t\tpublic readonly events: MappedEvent<T, any>[] = [],\n\n\t\tpublic readonly publisherService?: Service<TServiceName, T>,\n\t\tpublic outputSchema?: OutSchema,\n\t\tpublic readonly timeout?: number,\n\t\tpublic readonly memorySize?: number,\n\t\tpublic readonly auditorStorageService?: Service<\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditStorage\n\t\t>,\n\t) {}\n\n\t/**\n\t * Returns an array of environment variable names required by this construct's services.\n\t * This is determined by running a \"sniffer\" EnvironmentParser through each service's\n\t * register method to track which environment variables are accessed.\n\t *\n\t * Results are cached per service class to handle singleton patterns where\n\t * subsequent register() calls may short-circuit and not access env vars.\n\t *\n\t * @param markOptional - When true, optional vars (those accessed via `.optional()` or\n\t * `.default()`) are suffixed with `?` in the returned array (e.g. `'PORT?'`).\n\t * @returns Promise that resolves to array of environment variable names, sorted alphabetically\n\t *\n\t * @example\n\t * ```typescript\n\t * const endpoint = e\n\t * .services([databaseService, authService])\n\t * .get('/users')\n\t * .handle(async () => []);\n\t *\n\t * await endpoint.getEnvironment(); // ['AUTH_SECRET', 'DATABASE_URL']\n\t * await endpoint.getEnvironment({ markOptional: true }); // ['AUTH_SECRET', 'DATABASE_URL', 'PORT?']\n\t * ```\n\t */\n\tasync getEnvironment(\n\t\topts: { markOptional?: boolean } = {},\n\t): Promise<string[]> {\n\t\tconst { markOptional = false } = opts;\n\t\tconst envVars = new Set<string>();\n\t\tconst optionalVars = new Set<string>();\n\t\tconst services: Service[] = compact([\n\t\t\t...this.services,\n\t\t\tthis.publisherService,\n\t\t\tthis.publisherService,\n\t\t\tthis.auditorStorageService,\n\t\t\tthis.databaseService,\n\t\t]);\n\n\t\ttry {\n\t\t\tfor (const service of services) {\n\t\t\t\t// Check cache first - handles singleton services that short-circuit\n\t\t\t\tif (serviceEnvCache.has(service)) {\n\t\t\t\t\tconst cached = serviceEnvCache.get(service)!;\n\t\t\t\t\tcached.envVars.forEach((v) => envVars.add(v));\n\t\t\t\t\tcached.optionalEnvVars.forEach((v) => optionalVars.add(v));\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Use sniffService to properly handle all error scenarios\n\t\t\t\tconst result = await sniffService(service);\n\n\t\t\t\t// Log any issues for debugging\n\t\t\t\tif (result.error) {\n\t\t\t\t\tthis.logger.warn(\n\t\t\t\t\t\t{ error: result.error.message, service: service.serviceName },\n\t\t\t\t\t\t'Service threw error during env sniffing (env vars still captured)',\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (result.unhandledRejections.length > 0) {\n\t\t\t\t\tthis.logger.warn(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\terrors: result.unhandledRejections.map((e) => e.message),\n\t\t\t\t\t\t\tservice: service.serviceName,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'Fire-and-forget rejections during env sniffing (suppressed)',\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Cache and collect env vars (both required and optional)\n\t\t\t\tserviceEnvCache.set(service, {\n\t\t\t\t\tenvVars: result.envVars,\n\t\t\t\t\toptionalEnvVars: result.optionalEnvVars,\n\t\t\t\t});\n\t\t\t\tresult.envVars.forEach((v) => envVars.add(v));\n\t\t\t\tresult.optionalEnvVars.forEach((v) => optionalVars.add(v));\n\t\t\t}\n\n\t\t\tconst sorted = Array.from(envVars).sort();\n\t\t\tif (!markOptional || optionalVars.size === 0) return sorted;\n\t\t\treturn sorted.map((v) => (optionalVars.has(v) ? `${v}?` : v));\n\t\t} catch (error) {\n\t\t\tthis.logger.error(\n\t\t\t\t{ error },\n\t\t\t\t'Error determining environment variables for construct',\n\t\t\t);\n\n\t\t\treturn [];\n\t\t}\n\t}\n}\n\nexport enum ConstructType {\n\tCron = 'dev.geekmidas.function.cron',\n\tEndpoint = 'dev.geekmidas.function.endpoint',\n\tFunction = 'dev.geekmidas.function.function',\n\tSubscriber = 'dev.geekmidas.function.subscriber',\n\tQueue = 'dev.geekmidas.function.queue',\n\tTopic = 'dev.geekmidas.resource.topic',\n}\n\n/**\n * Utility to test sniffing a service for environment variables.\n * Useful for debugging services that throw errors during sniffing.\n *\n * @example\n * ```typescript\n * import { sniffService } from '@geekmidas/constructs';\n * import { authService } from './services/AuthService';\n *\n * const result = await sniffService(authService);\n * console.log('Env vars:', result.envVars);\n * console.log('Error:', result.error);\n * ```\n */\nexport async function sniffService(service: Service): Promise<SniffResult> {\n\tconst sniffer = new SnifferEnvironmentParser();\n\n\treturn sniffWithFireAndForget(sniffer, () =>\n\t\tservice.register({\n\t\t\tenvParser: sniffer as any,\n\t\t\tcontext: snifferContext,\n\t\t}),\n\t);\n}\n\n// Export for testing\nexport { snifferContext };\n"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuBA,SAASA,UAAQ,OAAO;EACtB,IAAI,QAAQ,IACR,SAAS,QAAQ,MAAM,SAAS,GAChC,WAAW,GACX,SAAS,CAAE;AAEf,SAAO,EAAE,QAAQ,QAAQ;GACvB,IAAI,QAAQ,MAAM;AAClB,OAAI,MACF,QAAO,cAAc;EAExB;AACD,SAAO;CACR;AAED,QAAO,UAAUA;;;;;;ACvBjB,MAAM,kCAAkB,IAAI;;;;;;;AAW5B,MAAMC,iBAAiC;CACtC,YAAY;AAEX,SAAO;GACN,OAAO,MAAM,CAAE;GACf,MAAM,MAAM,CAAE;GACd,MAAM,MAAM,CAAE;GACd,OAAO,MAAM,CAAE;GACf,OAAO,MAAM,eAAe,WAAW;EACvC;CACD;CACD,eAAe;AACd,SAAO;CACP;CACD,sBAAsB;AACrB,SAAO,KAAK,KAAK;CACjB;CACD,aAAa;AACZ,SAAO;CACP;AACD;AAED,IAAsB,YAAtB,MAUE;;CAED,AAAO;CAEP,YACiBC,MACAC,QACAC,UACAC,SAAgC,CAAE,GAElCC,kBACTC,cACSC,SACAC,YACAC,uBAIf;EAbe;EACA;EACA;EACA;EAEA;EACT;EACS;EACA;EACA;CAIb;;;;;;;;;;;;;;;;;;;;;;;;CAyBJ,MAAM,eACLC,OAAmC,CAAE,GACjB;EACpB,MAAM,EAAE,eAAe,OAAO,GAAG;EACjC,MAAM,0BAAU,IAAI;EACpB,MAAM,+BAAe,IAAI;EACzB,MAAMC,WAAsB,2BAAQ;GACnC,GAAG,KAAK;GACR,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;EACL,EAAC;AAEF,MAAI;AACH,QAAK,MAAM,WAAW,UAAU;AAE/B,QAAI,gBAAgB,IAAI,QAAQ,EAAE;KACjC,MAAM,SAAS,gBAAgB,IAAI,QAAQ;AAC3C,YAAO,QAAQ,QAAQ,CAAC,MAAM,QAAQ,IAAI,EAAE,CAAC;AAC7C,YAAO,gBAAgB,QAAQ,CAAC,MAAM,aAAa,IAAI,EAAE,CAAC;AAC1D;IACA;IAGD,MAAM,SAAS,MAAM,aAAa,QAAQ;AAG1C,QAAI,OAAO,MACV,MAAK,OAAO,KACX;KAAE,OAAO,OAAO,MAAM;KAAS,SAAS,QAAQ;IAAa,GAC7D,oEACA;AAEF,QAAI,OAAO,oBAAoB,SAAS,EACvC,MAAK,OAAO,KACX;KACC,QAAQ,OAAO,oBAAoB,IAAI,CAAC,MAAM,EAAE,QAAQ;KACxD,SAAS,QAAQ;IACjB,GACD,8DACA;AAIF,oBAAgB,IAAI,SAAS;KAC5B,SAAS,OAAO;KAChB,iBAAiB,OAAO;IACxB,EAAC;AACF,WAAO,QAAQ,QAAQ,CAAC,MAAM,QAAQ,IAAI,EAAE,CAAC;AAC7C,WAAO,gBAAgB,QAAQ,CAAC,MAAM,aAAa,IAAI,EAAE,CAAC;GAC1D;GAED,MAAM,SAAS,MAAM,KAAK,QAAQ,CAAC,MAAM;AACzC,QAAK,gBAAgB,aAAa,SAAS,EAAG,QAAO;AACrD,UAAO,OAAO,IAAI,CAAC,MAAO,aAAa,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAG;EAC7D,SAAQ,OAAO;AACf,QAAK,OAAO,MACX,EAAE,MAAO,GACT,wDACA;AAED,UAAO,CAAE;EACT;CACD;AACD;AAED,IAAY,0DAAL;AACN;AACA;AACA;AACA;AACA;AACA;;AACA;;;;;;;;;;;;;;;AAgBD,eAAsB,aAAaC,SAAwC;CAC1E,MAAM,UAAU,IAAI;AAEpB,QAAO,uBAAuB,SAAS,MACtC,QAAQ,SAAS;EAChB,WAAW;EACX,SAAS;CACT,EAAC,CACF;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Construct-vXMZJgRp.cjs","names":["compact","snifferContext: ServiceContext","type: ConstructType","logger: TLogger","services: TServices","events: MappedEvent<T, any>[]","publisherService?: Service<TServiceName, T>","outputSchema?: OutSchema","timeout?: number","memorySize?: number","auditorStorageService?: Service<\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditStorage\n\t\t>","opts: { markOptional?: boolean }","services: Service[]","service: Service","SnifferEnvironmentParser"],"sources":["../../../node_modules/.pnpm/lodash.compact@3.0.1/node_modules/lodash.compact/index.js","../src/Construct.ts"],"sourcesContent":["/**\n * lodash 3.0.1 (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license <https://lodash.com/license>\n */\n\n/**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\nfunction compact(array) {\n var index = -1,\n length = array ? array.length : 0,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = compact;\n","import type { AuditStorage } from '@geekmidas/audit';\nimport {\n\tSnifferEnvironmentParser,\n\ttype SniffResult,\n\tsniffWithFireAndForget,\n} from '@geekmidas/envkit/sniffer';\nimport type { EventPublisher, MappedEvent } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type { Service, ServiceContext } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport compact from 'lodash.compact';\n\n// Cache for service environment variables to handle singleton services\n// Stores both the full list and the optional subset so the same sniff result\n// can satisfy both getEnvironment() and getEnvironment({ markOptional: true }).\nconst serviceEnvCache = new Map<\n\tService,\n\t{ envVars: string[]; optionalEnvVars: string[] }\n>();\n\n/**\n * Noop context for environment sniffing.\n * Used when calling service.register() to detect env vars without a real request.\n * Returns dummy values since services should only use context in instance methods,\n * not during registration.\n */\nconst snifferContext: ServiceContext = {\n\tgetLogger() {\n\t\t// Return a noop logger for sniffing - services shouldn't log during registration\n\t\treturn {\n\t\t\tdebug: () => {},\n\t\t\tinfo: () => {},\n\t\t\twarn: () => {},\n\t\t\terror: () => {},\n\t\t\tchild: () => snifferContext.getLogger(),\n\t\t} as unknown as Logger;\n\t},\n\tgetRequestId() {\n\t\treturn 'sniffer-context';\n\t},\n\tgetRequestStartTime() {\n\t\treturn Date.now();\n\t},\n\thasContext() {\n\t\treturn false;\n\t},\n};\n\nexport abstract class Construct<\n\tTLogger extends Logger = Logger,\n\tTServiceName extends string = string,\n\tT extends EventPublisher<any> | undefined = undefined,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTAuditStorageServiceName extends string = string,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n\tTDatabaseServiceName extends string = string,\n\tTDatabase = unknown,\n> {\n\t/** Database service for this construct (used by Endpoint for RLS/audit context) */\n\tpublic databaseService?: Service<TDatabaseServiceName, TDatabase>;\n\n\tconstructor(\n\t\tpublic readonly type: ConstructType,\n\t\tpublic readonly logger: TLogger,\n\t\tpublic readonly services: TServices,\n\t\tpublic readonly events: MappedEvent<T, any>[] = [],\n\n\t\tpublic readonly publisherService?: Service<TServiceName, T>,\n\t\tpublic outputSchema?: OutSchema,\n\t\tpublic readonly timeout?: number,\n\t\tpublic readonly memorySize?: number,\n\t\tpublic readonly auditorStorageService?: Service<\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditStorage\n\t\t>,\n\t) {}\n\n\t/**\n\t * Returns an array of environment variable names required by this construct's services.\n\t * This is determined by running a \"sniffer\" EnvironmentParser through each service's\n\t * register method to track which environment variables are accessed.\n\t *\n\t * Results are cached per service class to handle singleton patterns where\n\t * subsequent register() calls may short-circuit and not access env vars.\n\t *\n\t * @param markOptional - When true, optional vars (those accessed via `.optional()` or\n\t * `.default()`) are suffixed with `?` in the returned array (e.g. `'PORT?'`).\n\t * @returns Promise that resolves to array of environment variable names, sorted alphabetically\n\t *\n\t * @example\n\t * ```typescript\n\t * const endpoint = e\n\t * .services([databaseService, authService])\n\t * .get('/users')\n\t * .handle(async () => []);\n\t *\n\t * await endpoint.getEnvironment(); // ['AUTH_SECRET', 'DATABASE_URL']\n\t * await endpoint.getEnvironment({ markOptional: true }); // ['AUTH_SECRET', 'DATABASE_URL', 'PORT?']\n\t * ```\n\t */\n\tasync getEnvironment(\n\t\topts: { markOptional?: boolean } = {},\n\t): Promise<string[]> {\n\t\tconst { markOptional = false } = opts;\n\t\tconst envVars = new Set<string>();\n\t\tconst optionalVars = new Set<string>();\n\t\tconst services: Service[] = compact([\n\t\t\t...this.services,\n\t\t\tthis.publisherService,\n\t\t\tthis.publisherService,\n\t\t\tthis.auditorStorageService,\n\t\t\tthis.databaseService,\n\t\t]);\n\n\t\ttry {\n\t\t\tfor (const service of services) {\n\t\t\t\t// Check cache first - handles singleton services that short-circuit\n\t\t\t\tif (serviceEnvCache.has(service)) {\n\t\t\t\t\tconst cached = serviceEnvCache.get(service)!;\n\t\t\t\t\tcached.envVars.forEach((v) => envVars.add(v));\n\t\t\t\t\tcached.optionalEnvVars.forEach((v) => optionalVars.add(v));\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Use sniffService to properly handle all error scenarios\n\t\t\t\tconst result = await sniffService(service);\n\n\t\t\t\t// Log any issues for debugging\n\t\t\t\tif (result.error) {\n\t\t\t\t\tthis.logger.warn(\n\t\t\t\t\t\t{ error: result.error.message, service: service.serviceName },\n\t\t\t\t\t\t'Service threw error during env sniffing (env vars still captured)',\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (result.unhandledRejections.length > 0) {\n\t\t\t\t\tthis.logger.warn(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\terrors: result.unhandledRejections.map((e) => e.message),\n\t\t\t\t\t\t\tservice: service.serviceName,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'Fire-and-forget rejections during env sniffing (suppressed)',\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Cache and collect env vars (both required and optional)\n\t\t\t\tserviceEnvCache.set(service, {\n\t\t\t\t\tenvVars: result.envVars,\n\t\t\t\t\toptionalEnvVars: result.optionalEnvVars,\n\t\t\t\t});\n\t\t\t\tresult.envVars.forEach((v) => envVars.add(v));\n\t\t\t\tresult.optionalEnvVars.forEach((v) => optionalVars.add(v));\n\t\t\t}\n\n\t\t\tconst sorted = Array.from(envVars).sort();\n\t\t\tif (!markOptional || optionalVars.size === 0) return sorted;\n\t\t\treturn sorted.map((v) => (optionalVars.has(v) ? `${v}?` : v));\n\t\t} catch (error) {\n\t\t\tthis.logger.error(\n\t\t\t\t{ error },\n\t\t\t\t'Error determining environment variables for construct',\n\t\t\t);\n\n\t\t\treturn [];\n\t\t}\n\t}\n}\n\nexport enum ConstructType {\n\tCron = 'dev.geekmidas.function.cron',\n\tEndpoint = 'dev.geekmidas.function.endpoint',\n\tFunction = 'dev.geekmidas.function.function',\n\tSubscriber = 'dev.geekmidas.function.subscriber',\n\tQueue = 'dev.geekmidas.function.queue',\n\tTopic = 'dev.geekmidas.resource.topic',\n}\n\n/**\n * Utility to test sniffing a service for environment variables.\n * Useful for debugging services that throw errors during sniffing.\n *\n * @example\n * ```typescript\n * import { sniffService } from '@geekmidas/constructs';\n * import { authService } from './services/AuthService';\n *\n * const result = await sniffService(authService);\n * console.log('Env vars:', result.envVars);\n * console.log('Error:', result.error);\n * ```\n */\nexport async function sniffService(service: Service): Promise<SniffResult> {\n\tconst sniffer = new SnifferEnvironmentParser();\n\n\treturn sniffWithFireAndForget(sniffer, () =>\n\t\tservice.register({\n\t\t\tenvParser: sniffer as any,\n\t\t\tcontext: snifferContext,\n\t\t}),\n\t);\n}\n\n// Export for testing\nexport { snifferContext };\n"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuBA,SAASA,UAAQ,OAAO;EACtB,IAAI,QAAQ,IACR,SAAS,QAAQ,MAAM,SAAS,GAChC,WAAW,GACX,SAAS,CAAE;AAEf,SAAO,EAAE,QAAQ,QAAQ;GACvB,IAAI,QAAQ,MAAM;AAClB,OAAI,MACF,QAAO,cAAc;EAExB;AACD,SAAO;CACR;AAED,QAAO,UAAUA;;;;;;ACvBjB,MAAM,kCAAkB,IAAI;;;;;;;AAW5B,MAAMC,iBAAiC;CACtC,YAAY;AAEX,SAAO;GACN,OAAO,MAAM,CAAE;GACf,MAAM,MAAM,CAAE;GACd,MAAM,MAAM,CAAE;GACd,OAAO,MAAM,CAAE;GACf,OAAO,MAAM,eAAe,WAAW;EACvC;CACD;CACD,eAAe;AACd,SAAO;CACP;CACD,sBAAsB;AACrB,SAAO,KAAK,KAAK;CACjB;CACD,aAAa;AACZ,SAAO;CACP;AACD;AAED,IAAsB,YAAtB,MAUE;;CAED,AAAO;CAEP,YACiBC,MACAC,QACAC,UACAC,SAAgC,CAAE,GAElCC,kBACTC,cACSC,SACAC,YACAC,uBAIf;EAbe;EACA;EACA;EACA;EAEA;EACT;EACS;EACA;EACA;CAIb;;;;;;;;;;;;;;;;;;;;;;;;CAyBJ,MAAM,eACLC,OAAmC,CAAE,GACjB;EACpB,MAAM,EAAE,eAAe,OAAO,GAAG;EACjC,MAAM,0BAAU,IAAI;EACpB,MAAM,+BAAe,IAAI;EACzB,MAAMC,WAAsB,2BAAQ;GACnC,GAAG,KAAK;GACR,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;EACL,EAAC;AAEF,MAAI;AACH,QAAK,MAAM,WAAW,UAAU;AAE/B,QAAI,gBAAgB,IAAI,QAAQ,EAAE;KACjC,MAAM,SAAS,gBAAgB,IAAI,QAAQ;AAC3C,YAAO,QAAQ,QAAQ,CAAC,MAAM,QAAQ,IAAI,EAAE,CAAC;AAC7C,YAAO,gBAAgB,QAAQ,CAAC,MAAM,aAAa,IAAI,EAAE,CAAC;AAC1D;IACA;IAGD,MAAM,SAAS,MAAM,aAAa,QAAQ;AAG1C,QAAI,OAAO,MACV,MAAK,OAAO,KACX;KAAE,OAAO,OAAO,MAAM;KAAS,SAAS,QAAQ;IAAa,GAC7D,oEACA;AAEF,QAAI,OAAO,oBAAoB,SAAS,EACvC,MAAK,OAAO,KACX;KACC,QAAQ,OAAO,oBAAoB,IAAI,CAAC,MAAM,EAAE,QAAQ;KACxD,SAAS,QAAQ;IACjB,GACD,8DACA;AAIF,oBAAgB,IAAI,SAAS;KAC5B,SAAS,OAAO;KAChB,iBAAiB,OAAO;IACxB,EAAC;AACF,WAAO,QAAQ,QAAQ,CAAC,MAAM,QAAQ,IAAI,EAAE,CAAC;AAC7C,WAAO,gBAAgB,QAAQ,CAAC,MAAM,aAAa,IAAI,EAAE,CAAC;GAC1D;GAED,MAAM,SAAS,MAAM,KAAK,QAAQ,CAAC,MAAM;AACzC,QAAK,gBAAgB,aAAa,SAAS,EAAG,QAAO;AACrD,UAAO,OAAO,IAAI,CAAC,MAAO,aAAa,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAG;EAC7D,SAAQ,OAAO;AACf,QAAK,OAAO,MACX,EAAE,MAAO,GACT,wDACA;AAED,UAAO,CAAE;EACT;CACD;AACD;AAED,IAAY,0DAAL;AACN;AACA;AACA;AACA;AACA;AACA;;AACA;;;;;;;;;;;;;;;AAgBD,eAAsB,aAAaC,SAAwC;CAC1E,MAAM,UAAU,IAAIC;AAEpB,QAAO,uDAAuB,SAAS,MACtC,QAAQ,SAAS;EAChB,WAAW;EACX,SAAS;CACT,EAAC,CACF;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Endpoint-CLPSIl6S.d.mts","names":[],"sources":["../src/endpoints/Authorizer.ts","../src/endpoints/audit.ts","../src/endpoints/rls.ts","../src/endpoints/Endpoint.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Endpoint-DgfRslct.d.cts","names":[],"sources":["../src/endpoints/Authorizer.ts","../src/endpoints/audit.ts","../src/endpoints/rls.ts","../src/endpoints/Endpoint.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;UAIiB,cAAA;;;;;;;;;EAAA;EAwBA,MAAA,CAAA,EAAA,MAAU;EAAA;EAAA,YACf,CAAA,EAAA,MAAA;EAAS;EACA,KACA,CAAA,EAbZ,UAaY;EAAS;EACA,gBAAA,CAAA,EAAA,MAAA;EAGb;EAWJ,CAAA,GAAA,EAAA,KAAA,MAAA,EAAA,CAAA,EAAA,OAmCsC;AAGnD;AAKA;;;AAuBY,UApFK,UAAA,CAoFL;EAAM,QAAA,CAAA,EAnFN,SAmFM;EAMF,QAAA,CAAA,EAxFJ,SAwFoB;EAAA,iBAAA,CAAA,EAvFX,SAuFW;EAAA,iBAEhB,CAAA,EAxFK,SAwFL;;AACb,UAtFc,SAAA,CAsFd;EAAU,gBAAA,CAAA,EAAA,MAAA;EAUG,QAAA,CAAA,EAAA,MAAA;EASA,UAAA,CAAA,EAAA,MAAA;EAAiB,MAAA,EArGxB,MAqGwB,CAAA,MAAA,EAAA,MAAA,CAAA;;;;AAGhB;;cAjGJ;;IC1BI,SAAA,IAAW,EAAA,MAAA;IAAA,SAAA,MAAA,EAAA,QAAA;IACN,SAAA,YAAA,EAAA,KAAA;IACL,SAAA,WAAA,EAAA,iCAAA;EAAgB,CAAA;EACW,SAA7B,MAAA,EAAA;IAAkD,SAAA,IAAA,EAAA,MAAA;IAAjB,SAAA,MAAA,EAAA,QAAA;IAGzC,SAAA,WAAA,EAAA,6BAAA;EAAK,CAAA;EAGO,SAAS,MAAA,EAAA;IACH,SAAA,IAAA,EAAA,QAAA;IAApB,SAAA,EAAA,EAAA,QAAA;IAEqB,SAAA,IAAA,EAAA,WAAA;IAAc,SAAA,WAAA,EAAA,mCAAA;EAAK,CAAA;EAApB,SAGb,MAAA,EAAA;IAAgB,SAAA,IAAA,EAAA,QAAA;IACH,SAAA,KAAA,EAAA,CAAA,CAAA;IAApB,SAAA,WAAA,EAAA,0BAAA;EAAmB,CAAA;EAKL,SAAS,IAAA,EAAA;IACH,SAAA,IAAA,EAAA,eAAA;IAApB,SAAA,gBAAA,EAAA,EAAA;IAEU,SAAA,WAAA,EAAA,+BAAA;EAAM,CAAA;EAYT,SAAA,GAAA,EAAA;IAAc,SAAA,IAAA,EAAA,QAAA;IACP,SAAA,EAAA,EAAA,QAAA;IAEF,SAAA,IAAA,EAAA,eAAA;IAAS,SAAA,WAAA,EAAA,4CAAA;IAED,SAAA,8BAAA,EAAA,UAAA;EAAS,CAAA;CAAV;;AAGf,KDoBG,uBAAA,GCpBH,MAAA,ODoB0C,yBCpB1C;;;;AAEU,UDuBF,UAAA,CCvBE;EAAO;;;;EC1DT;AAoBjB;;EAA+B,cACZ,CAAA,EFoED,cEpEC;EAAO;;;;EAIF,IACd,CAAA,EAAA,MAAA;EAAQ;;;;EAIF,WAAW,CAAA,EAAA,MAAA;EAAU;AAAX;AAS1B;;EAA0B,QACP,CAAA,EFgEP,MEhEO,CAAA,MAAA,EAAA,OAAA,CAAA;;;;;AAKkC,iBFiErC,gBAAA,CEjEqC,IAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EFmE1C,IEnE0C,CFmErC,UEnEqC,EAAA,MAAA,CAAA,CAAA,EFoElD,UEpEkD;;AAAtB;AAQ/B;AAKY,iBFiEI,uBAAA,CEjEyB,IAAA,EAAA,MAAA,CAAA,EAAA,IAAA,IFmE9B,uBEnE8B;;;;ACP5B,iBHiFG,iBAAA,CGjFK,IAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EHmFJ,MGnFI,CAAA,MAAA,EHmFW,cGnFX,CAAA,CAAA,EHoFlB,cGpFkB,GAAA,SAAA;;;;;;;;;;;AHvDJ,UCgBA,WDhBc,CAAA,qBCiBT,eDHH,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,gBCIF,gBDJE,GAAA,SAAA,EAAA,cCKJ,gBDLI,CCKa,YDLb,CAAA,GCK6B,gBDL7B,CCK8C,YDL9C,CAAA,CAAA,CAAA;EAUF;EAAU,IAAA,ECFpB,KDEoB;EAAA;EACN,OACT,EAAA,CAAA,QAAA,ECDA,ODCA,SCDgB,gBDChB,GCAP,mBDAO,CCAa,ODAb,CAAA,GAAA,OAAA,EAAA,GCEN,mBDFM,CCEc,YDFd,ECE4B,KDF5B,CAAA;EAAS;EACS,IACT,CAAA,EAAA,CAAA,QAAA,ECGT,ODHS,SCGO,gBDHP,GCIhB,mBDJgB,CCII,ODJJ,CAAA,GAAA,OAAA,EAAA,GAAA,OAAA;EAAS;EAGb,QAAA,CAAA,EAAA,CAAS,QAAA,ECMd,ODFH,SCEmB,gBDFb,GCGV,mBDHU,CCGU,ODHV,CAAA,GAAA,OAAA,EAAA,GAAA,MAAA,GCKA,MDLA,CAAA,MAAA,EAAA,OAAA,CAAA;EAOF;EAsCD,KAAA,CAAA,EAAA,MAAA;AAKZ;;;;AAuBkB;AAMlB;;;AAEW,KChEC,cDgED,CAAA,kBC/DQ,OD+DR,EAAA,GAAA,EAAA,EAAA,WAAA,OAAA,EAAA,gBC7DM,MD6DN,GC7De,MD6Df,CAAA,GAAA,CAAA,GAAA,EAAA;EAAI,QACZ,EC5DQ,aD4DR,CC5DsB,SD4DtB,CAAA;EAAU,OAAA,EC3DH,QD2DG;EAUG,MAAA,ECpEP,QDoEO;EASA,MAAA,EC5EP,QD4EO;EAAiB,MAAA,EC3ExB,OD2EwB;CAAA,EAAA,GC1E3B,UD4E0B,GC5Eb,OD4Ea,CC5EL,UD4EK,CAAA;;;AACf;;;;;;;UEvIA,UAAA;;;;;;AFJjB;AAwBA;;;;;;AAI8B;AAG9B;AAWA;AAsCA;AAKA;;AAQkB,KErEN,mBFqEM,CAAA,kBEpEC,OFoED,EAAA,GAAA,EAAA,EAAA,WAAA,OAAA,EAAA,gBElED,MFkEC,GElEQ,MFkER,CAAA,GAAA,CAAA,GAAA,EAAA;EAAc,QAepB,EE/ED,aF+EC,CE/Ea,SF+Eb,CAAA;EAAM,OAAA,EE9ER,QF8EQ;EAMF,MAAA,EEnFP,QFmFO;EAAgB,MAAA,EElFvB,QFkFuB;EAAA,MAEhB,EEnFP,OFmFO;CAAU,EAAA,GElFpB,UFkFK,GElFQ,OFkFR,CElFgB,UFkFhB,CAAA;;AACE;AAUb;AASA;;;;AAGG,UEhGc,SFgGd,CAAA,kBE/FgB,OF+FhB,EAAA,GAAA,EAAA,EAAA,WAAA,OAAA,EAAA,gBE7Fc,MF6Fd,GE7FuB,MF6FvB,CAAA,CAAA;EAAc;aE1FL,oBAAoB,WAAW,UAAU;;;ADjCrD;;;;AAGgC,cCsCnB,UDtCmB,EAAA,OAAA,MAAA;;;;AAGzB,KCwCK,SAAA,GDxCL,OCwCwB,UDxCxB;;;;ADEP;;;;;;AAI8B;AAG9B;AAWA;AAsCA;AAKA;;;;AAuBkB;AAMlB;;;;;AAGa;AAUb;AASA;;;AAEiB,cGnFJ,QHmFI,CAAA,eAAA,MAAA,EAAA,gBGjFA,UHiFA,EAAA,eGhFD,eHgFC,GAAA,CAAA,CAAA,EAAA,kBG/EE,gBH+EF,GAAA,SAAA,GAAA,SAAA,EAAA,kBG9EE,OH8EF,EAAA,GAAA,EAAA,EAAA,gBG7EA,MH6EA,GG7ES,MH6ET,EAAA,WAAA,OAAA,EAAA,wBG3EQ,cH2ER,CAAA,GAAA,CAAA,GAAA,SAAA,GAAA,SAAA,EAAA,mCAAA,MAAA,GAAA,MAAA,EAAA,sBGzEM,YHyEN,GAAA,SAAA,GAAA,SAAA,EAAA,iCAAA,MAAA,GAAA,MAAA,EAAA,qBGvEK,eHuEL,CAAA,MAAA,EAAA,OAAA,CAAA,GGvEwC,eHuExC,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,YAAA,SAAA,EAAA,6BAAA,MAAA,GAAA,MAAA,CAAA,SGjEP,QHiEO,CGhEhB,MHgEgB,EG/DhB,SH+DgB,EG9DhB,OH8DgB,EG7DhB,SH6DgB,EG5DhB,eH4DgB,EG3DhB,0BH2DgB,EG1DhB,aH0DgB,EGzDhB,wBHyDgB,EGxDhB,SHwDgB,EGvDhB,oBHuDgB,EGtDhB,YHsDgB,EGrDhB,eHqDgB,CGpDf,MHoDe,EGnDf,SHmDe,EGlDf,OHkDe,EGjDf,SHiDe,EGhDf,SHgDe,EG/Cf,aH+Ce,EG9Cf,YH8Ce,CAAA,CAAA,CAAA;EAAM,WACpB,CAAA,EAAA,MAAA;EAAc;SG1CT;;UAEC;EFnFQ;EAAW,WAAA,CAAA,EAAA,MAAA;EAAA;EACS,IACpB,CAAA,EAAA,MAAA,EAAA;EAAgB;EACW,SAA7B,MAAA,EEsFU,aFtFV;EAAgB;;;;;EAMa,SACnB,YAAA,EAAA,MAAA;EAAO;EAAR,SAEE,cAAA,EEqFO,MFrFP,CAAA,MAAA,EAAA,MAAA,CAAA;EAAY;EAAO,UAAvC,EEuFc,SFvFd,CEuFwB,SFvFxB,EEuFmC,OFvFnC,EEuF4C,QFvF5C,EEuFsD,SFvFtD,CAAA;EAAmB;EAGN,SAAS,EEuFT,WFvFS,CEwF1B,SFxF0B,EEyF1B,OFzF0B,EE0F1B,QF1F0B,EE2F1B,MF3F0B,EE4F1B,SF5F0B,CAAA;EAAgB;EACZ,SAA3B,CAAA,EE8Fe,eF9Ff;EAAmB;EAKL,UAAS,CAAA,EE2FP,UF3FO;EAAgB;EACZ,cAA3B,CAAA,EE4FoB,cF5FpB,CE4FmC,SF5FnC,EE4F8C,QF5F9C,EE4FwD,OF5FxD,CAAA;EAAmB;EAEH,MAAA,EE4FL,WF5FK,CE4FO,YF5FP,EE4FqB,SF5FrB,CAAA,EAAA;EAYT;EAAc,eAAA,CAAA,EEkFQ,OFlFR,CEkFgB,oBFlFhB,EEkFsC,SFlFtC,CAAA;EAAA;EACA,SAET,CAAA,EEiFG,SFjFH,CEiFa,SFjFb,EEiFwB,QFjFxB,EEiFkC,OFjFlC,CAAA;EAAM;EAAS,SAEP,CAAA,EAAA,OAAA;EAAS;EAAV,QACd,UAAA;EAAQ;;;;;;AAIQ;;;;AC1D1B;AAoBA;;;;;;;EAKwB,OACd,kBAAA,CAAA,SAAA,EC4IG,QD5IH,CAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,CAAA,EAAA,EAAA,OAAA,CAAA,EC6IE,oBD7IF,CAAA,EC6IsB,OD7ItB,CC6IsB,WAAA,CAAA,QD7ItB,CAAA,CAAA,CAAA,CAAA,CAAA;EAAQ;;;;EAIF,IAAW,QAAA,CAAA,CAAA,EAAA,GCkJd,ODlJc,ICkJd,kBDlJc,CCkJd,MDlJc,CAAA,EAAA;EAAU;AAAX;AAS1B;;;;;;EAMyC,UAAE,CAAA,UAAA,MC+IT,MD/IS,CAAA,CAAA,KAAA,EAAA,OAAA,EAAA,GAAA,ECiJpC,CDjJoC,CAAA,ECkJvC,ODlJuC,CCkJ/B,6BDlJ+B,CCkJD,MDlJC,CCkJM,CDlJN,CAAA,CAAA,CAAA;EAAQ;;AAApB;AAQ/B;AAKA;;;4BCmJiC,QAAQ,oBAAoB;EA1JhD,OAAA,eAAQ,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA,OAAA;EAAA;;;;;;;;;;;;;EAoBX,OACT,aAAA,CAAA,OAAA,EA4J8B,MA5J9B,CAAA,MAAA,EAAA,MAAA,CAAA,CAAA,EA4JuD,QA5JvD;EAAO;;;;;;;;;;;;;EAcG,OACT,aAAA,CAAA,YAAA,EAAA,MAAA,GAAA,SAAA,CAAA,EA8KuD,QA9KvD;EAAa;;;;;;;;;;;;;;;;;;;EAqCgB,OAES,kBAAA,CAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAyL5B,aAzL4B,CAAA,EAAA,MAAA;EAAS;;;;;;;EAIa,WAAE,CAAA,GAAA,EAiNzD,eAjNyD,CAiNzC,MAjNyC,EAiNjC,SAjNiC,EAiNtB,OAjNsB,EAiNb,QAjNa,CAAA,CAAA,EAkN5D,6BAlN4D,CAkN9B,MAlN8B,CAAA;EAAS,OAAvC,EAAA,CAAA,GAAA,EA6N3B,eA7N2B,CA8N/B,MA9N+B,EA+N/B,SA/N+B,EAgO/B,OAhO+B,EAiO/B,QAjO+B,EAkO/B,YAlO+B,EAmO/B,SAnO+B,EAoO/B,aApO+B,CAAA,EAAA,QAAA,EAsOtB,eAtOsB,EAAA,GAuO9B,SAvO8B,SAuOZ,gBAvOY,GA0O5B,wBA1O4B,CA0OH,SA1OG,CAAA,GA2O5B,oBA3O4B,CA2OP,wBA3OO,CA2OkB,SA3OlB,CAAA,CAAA,GA4O5B,OA5O4B,CA4OpB,wBA5OoB,CA4OK,SA5OL,CAAA,CAAA,GA6O5B,OA7O4B,CA6OpB,oBA7OoB,CA6OC,wBA7OD,CA6O0B,SA7O1B,CAAA,CAAA,CAAA,GAAA,GAAA,GAgP5B,oBAhP4B,CAAA,GAAA,CAAA,GAiP5B,OAjP4B,CAAA,GAAA,CAAA,GAkP5B,OAlP4B,CAkPpB,oBAlPoB,CAAA,GAAA,CAAA,CAAA;EAAO;;;;;;EAqCT,OAAA,UAAA,CAAA,GAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAiPK,QAjPL,CAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,CAAA;EAAA;;;EASnB,OAAA,WAAA,CAAA,CAAA,CAAA,CAAA,QAAA,EAoPD,CApPC,GAoPG,oBApPH,CAoPwB,CApPxB,CAAA,CAAA,EAAA,QAAA,IAqPG,oBArPH,CAqPwB,CArPxB,CAAA;EAAA;;;;;EAe4B,IAArC,KAAA,CAAA,CAAA,EAqP8C,kBArP9C,CAqPiE,MArPjE,CAAA;EAAO;;;;;EAqCqD,eAiCP,CAAA,kBAAA,CAAA,EAwLlC,kBAxLkC,CAAA,EAyLrD,OAzLqD,CAyL7C,qBAzL6C,CAyLvB,MAzLuB,EAyLf,OAzLe,CAAA,CAAA;EAAQ;;;;;;;;;;;;;;;;;;EAoGpD,WAAS,CAAA;IAAA,EAAA;IAAA,MAAA;IAAA,KAAA;IAAA,WAAA;IAAA,IAAA;IAAA,KAAA;IAAA,MAAA;IAAA,MAAA,EAsOZ,YAtOY;IAAA,QAAA;IAAA,OAAA;IAAA,UAAA;IAAA,UAAA;IAAA,SAAA;IAAA,SAAA;IAAA,MAAA;IAAA,gBAAA;IAAA,MAAA;IAAA,UAAA;IAAA,qBAAA;IAAA,cAAA;IAAA,MAAA;IAAA,eAAA;IAAA,SAAA;IAAA,SAAA;IAAA;EAAA,CAAA,EAwPlB,eAxPkB,CAyPpB,MAzPoB,EA0PpB,OA1PoB,EA2PpB,MA3PoB,EA4PpB,SA5PoB,EA6PpB,SA7PoB,EA8PpB,OA9PoB,EA+PpB,QA/PoB,EAgQpB,SAhQoB,EAiQpB,eAjQoB,EAkQpB,0BAlQoB,EAmQpB,aAnQoB,EAoQpB,wBApQoB,EAqQpB,YArQoB,EAsQpB,SAtQoB,EAuQpB,oBAvQoB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmOpB,UAuIe,eAvIf,CAAA,eAAA,MAAA,EAAA,gBAyIe,UAzIf,EAAA,eA0Ic,eA1Id,GAAA,CAAA,CAAA,EAAA,gBA2Ie,gBA3If,GAAA,SAAA,GAAA,SAAA,EAAA,kBA4IiB,OA5IjB,EAAA,GAAA,EAAA,EAAA,gBA6Ie,MA7If,GA6IwB,MA7IxB,EAAA,WAAA,OAAA,EAAA,kBA+IiB,gBA/IjB,GAAA,SAAA,GAAA,SAAA,EAAA,wBAgJuB,cAhJvB,CAAA,GAAA,CAAA,GAAA,SAAA,GAAA,SAAA,EAAA,mCAAA,MAAA,GAAA,MAAA,EAAA,sBAkJqB,YAlJrB,GAAA,SAAA,GAAA,SAAA,EAAA,iCAAA,MAAA,GAAA,MAAA,EAAA,qBAoJoB,eApJpB,CAAA,MAAA,EAAA,OAAA,CAAA,GAoJuD,eApJvD,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,YAAA,SAAA,EAAA,6BAAA,MAAA,GAAA,MAAA,CAAA,CAAA;EAAI;EACC,KACL,EA0JM,MA1JN;EAAM;EACc,MACpB,EA0JO,OA1JP;EAAQ;EACD,EAAA,EA2JJ,eA1JH,CA2JA,MA3JA,EA4JA,SA5JA,EA6JA,OA7JA,EA8JA,OA9JA,EA+JA,QA/JA,EAgKA,SAhKA,EAiKA,aAjKA,EAkKA,YAlKA,CAAA;EAAU;EACA,SACV,EAoKE,WApKF,CAoKc,SApKd,EAoKyB,OApKzB,EAoKkC,QApKlC,EAoK4C,MApK5C,EAoKoD,SApKpD,CAAA,GAAA,SAAA;EAAS;EACA,WACT,EAAA,MAAA,GAAA,SAAA;EAAyB;EACT,IAChB,CAAA,EAAA,MAAA,EAAA;EAAM;EACI,OACV,EAAA,MAAA,GAAA,SAAA;EAAqB;EACP,UACd,EAAA,MAAA,GAAA,SAAA;EAAM;EACS,KACf,EAqKM,MArKN,GAAA,SAAA;EAAS;EACA,MACT,EAqKO,OArKP,GAAA,SAAA;EAAY;EAEN,QACN,EAoKS,SApKT;EAAO;EACD,MACN,EAoKO,OApKP;EAAS;EACA,UACT,EAoKW,SApKX,CAoKqB,SApKrB,EAoKgC,OApKhC,EAoKyC,QApKzC,EAoKmD,SApKnD,CAAA,GAAA,SAAA;EAAO;EACC,SACR,CAAA,EAoKW,eApKX;EAAS;EACM,MACf,EAoKO,aApKP,GAAA,SAAA;EAA0B;;;EAGd,gBACZ,CAAA,EAoKkB,OApKlB,CAoK0B,0BApK1B,EAoKsD,eApKtD,CAAA;EAAS,MACT,CAAA,EAqKQ,WArKR,CAqKoB,eArKpB,EAqKqC,SArKrC,CAAA,EAAA;EAAoB;EAfH,UA5hBT,CAAA,EAktBI,UAltBJ;EAAQ;AA8oBlB;;EAAgC,qBAEf,CAAA,EAsEQ,OAtER,CAsEgB,wBAtEhB,EAsE0C,aAtE1C,CAAA;EAAU;EACI,cACd,CAAA,EAsEC,cAtED,CAsEgB,SAtEhB,EAsE2B,QAtE3B,EAsEqC,OAtErC,CAAA;EAAgB;EACP,MACT,CAAA,EAsEP,WAtEO,CAsEK,YAtEL,EAsEmB,SAtEnB,CAAA,EAAA;EAAM;EAAS,eAEb,CAAA,EAsEA,OAtEA,CAsEQ,oBAtER,EAsE8B,SAtE9B,CAAA;EAAgB;EACI,SAEhB,CAAA,EAqEV,SArEU,CAqEA,SArEA,EAqEW,QArEX,EAqEqB,OArErB,CAAA;EAAY;EAEE,SAAoB,CAAA,EAAA,OAAA;EAAe;;;;EAc7D,YACT,CAAA,EAAA,MAAA;;;;;;AAHG,KAqEO,eAAA,GAAkB,OArEzB,CAAA;EAAe;EAYK,MAAE,EA2DlB,gBA3DkB;EAAO;EAAU,KAAE,EA6DtC,gBA7DsC;EAAM;EAAW,IAA3D,EA+DG,gBA/DH;CAAW,CAAA;AAaN,KAqDG,gBArDH,CAAA,kBAsDU,OAtDV,EAAA,GAAA,EAAA,EAAA,gBAuDQ,MAvDR,GAuDiB,MAvDjB,EAAA,WAAA,OAAA,EAAA,eAyDO,eAzDP,GAAA,SAAA,GAAA,SAAA,EAAA,YAAA,SAAA,CAAA,GAAA;EAAO,QAEL,EA0DA,aA1DA,CA0Dc,SA1Dd,CAAA;EAAS,MAEX,EAyDA,OAzDA;EAAO,MAEO,EAwDd,QAxDc;EAAS,MAAE,EAyDzB,QAzDyB;EAAO,OAAE,EA0DjC,QA1DiC;CAAQ,GA2D/C,6BA3DiD,CA2DnB,MA3DmB,CAAA,GA4DpD,sBA5DoD,CA4D7B,SA5D6B,CAAA;;;;;;;;;;;;;;;;;;AAoB/B,KA0DV,WA1DU,CAAA,kBA2DH,OA3DG,EAAA,GAAA,EAAA,EAAA,gBA4DL,MA5DK,GA4DI,MA5DJ,EAAA,WAAA,OAAA,EAAA,eA8DN,eA9DM,GAAA,SAAA,GAAA,SAAA,EAAA,YAAA,SAAA,CAAA,GAAA,CAAA,GAAA,EAiEhB,gBAjEgB,CAiEC,SAjED,EAiEY,OAjEZ,EAiEqB,QAjErB,EAiE+B,MAjE/B,EAiEuC,SAjEvC,CAAA,EAAA,GAkEjB,OAlEiB,CAAA,OAAA,CAAA,GAAA,OAAA;;;;KAuEjB,kBArE4C,CAAA,kBAsE9B,OAtE8B,EAAA,GAAA,EAAA,EAAA,gBAuEhC,MAvEgC,GAuEvB,MAvEuB,CAAA,GAAA;EAAS,QAAvC,EAyER,aAzEQ,CAyEM,SAzEN,CAAA;EAAO,MAEH,EAwEd,OAxEc;EAAS,MAAE,EAyEzB,QAzEyB;EAAQ,MAAE,EA0EnC,QA1EmC;CAAO;AAA7B;AActB;;KAkEK,sBAhEI,CAAA,YAAA,SAAA,CAAA,GAgE4C,SAhE5C,SAAA,SAAA,GAAA,CAAA,CAAA,GAAA;EAAgB;;;AAFY;AASrC;EAA4B,EAAA,EAiErB,SAjEqB;CAAA;AAEX,KAkEL,cAlEK,CAAA,kBAmEE,OAnEF,EAAA,GAAA,EAAA,EAAA,gBAoEA,MApEA,GAoES,MApET,EAAA,YAAA,SAAA,CAAA,GAsEb,kBAtEa,CAsEM,SAtEN,EAsEiB,OAtEjB,CAAA,GAsE4B,sBAtE5B,CAsEmD,SAtEnD,CAAA;;;;;;;;;;;;;AAWM;AAkBvB;;;;;;;;;;;;;AAQY;AAKP,KAwDO,SAxDP,CAAA,kBAyDc,OAzDI,EAAA,GAAA,EAAA,EAAA,gBA0DN,MA1DM,GA0DG,MA1DH,EAAA,WAAA,OAAA,EAAA,YAAA,SAAA,CAAA,GAAA,CAAA,GAAA,EA8DjB,cA9DiB,CA8DF,SA9DE,EA8DS,OA9DT,EA8DkB,SA9DlB,CAAA,EAAA,GA+DlB,OA/DkB,CA+DV,QA/DU,CAAA,GA+DE,QA/DF;;;;;;;;;;AAON;AAAA;;AAMoC,KAgEzC,kBAhEyC,CAAA,UAAA,MAAA,CAAA,GAiEpD,CAjEoD,SAAA,GAAA,KAAA,MAAA,IAAA,KAAA,MAAA,IAAA,KAAA,KAAA,EAAA,GAAA,GAkE9C,KAlE8C,IAkErC,KAlEqC,KAkE3B,kBAlE2B,CAkER,IAlEQ,CAAA,EAAA,GAmEjD,CAnEiD,SAAA,GAAA,KAAA,MAAA,IAAA,KAAA,MAAA,EAAA,GAAA,GAoE7C,KApE6C,IAoEpC,KApEoC,GAAA,GAqEhD,CArEgD;;AAQrC;AAGhB;;;;;;;;;;AAImE,KAoEvD,qBApEuD,CAAA,eAAA,MAAA,EAAA,gBAsElD,UAtEkD,CAAA,GAAA,UAwE1D,kBA5CY,CA4CO,MA5CP,CAAA,GAAA,UA6CX,eA7CW,CA6CK,OA7CL,CAAA,GA6CgB,WAAA,CAAY,eA7C5B,CAAA,CAAA,CAAA,CAAA,EAAA,GACF;EACF,UAAA,CAAA,EA6CF,WAAA,CAAY,eA7CV,EAAA;AAAM,CAAA,EAAS;AAKC;AAcjC;;;;;;;;;;;AAKM;AAcN;;;AAI4B,UA8BX,QAAA,CA9BW;EAAM,EAAA,EA+B7B,MA/BI,CAAA,MAAA,EAAA,MAAA,CAAA;EAAkB,CAAA,GACD,EAAA,MAAA,CAAA,EAAA,MAAA,GAAA,SAAA;;;;AAEgB;AA2B1C;AAqBA;AAQA;AAaA;;;;;;AAGuB;AAMvB;;;AAEW,UAhCM,QAAA,CAgCN;EAAgB,EAAA,EA/BtB,MA+BsB,CAAA,MAAA,EAAA,MAAA,CAAA;EAMd,CAAA,IAAA,EAAA,MAAA,CAAA,EAAA,MAAe,GAAA,SAAA;;;;;AA2Bd,UAzDG,aAAA,CAyDH;EAAa,MAKZ,CAAA,EAAA,MAAA;EAAC,IAAwB,CAAA,EAAA,MAAA;EAAC,OAAtB,CAAA,EA3DR,IA2DQ;EAAoB,MAIvB,CAAA,EAAA,MAAA;EAAgB,QAAA,CAAA,EAAA,OAAA;EAQ3B,MAAA,CAAA,EAAA,OAAA;EAAmB,QAAA,CAAA,EAAA,QAAA,GAAA,KAAA,GAAA,MAAA;;;;;AAMb,UAnEM,gBAAA,CAmEN;EAAa,OAEf,CAAA,EApEE,MAoEF,CAAA,MAAA,EAAA,MAAA,CAAA;EAAO,OAEP,CAAA,EArEE,GAqEF,CAAA,MAAA,EAAA;IAEA,KAAA,EAAA,MAAA;IAEC,OAAA,CAAA,EAzEwC,aAyExC;EAAQ,CAAA,CAAA;EAMb,MAAA,CAAA,EA9EK,aA8ES;;;;;AAeC,UAvFH,oBAuFG,CAAA,CAAA,CAAA,CAAA;EAAY,IAApB,EAtFL,CAsFK;EAAO,QAAA,EArFR,gBAqFQ;AAAA;;;;AAeH,cA9FH,eAAA,CA8FG;EAeJ,QAAA,QAAA;EAAe,MAAA,CAAA,GAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,EAAA,IAAA;EAAA,MACZ,CAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAnGgC,aAmGhC,CAAA,EAAA,IAAA;EAAe,YACX,CAAA,IAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EA7FP,IA6FO,CA7FF,aA6FE,EAAA,QAAA,GAAA,MAAA,CAAA,CAAA,EAAA,IAAA;EAAO,MACT,CAAA,IAAA,EArFH,aAqFG,CAAA,EAAA,IAAA;EAAM,IAAG,CAAA,CAAA,CAAA,CAAA,IAAA,EAhFX,CAgFW,CAAA,EAhFP,oBAgFO,CAhFc,CAgFd,CAAA;EAAM,WAEV,CAAA,CAAA,EA9EN,gBA8EM;;;;;KAtEjB,mBA4ED,CAAA,kBA3Ee,OA2Ef,EAAA,GAAA,EAAA,EAAA,gBA1Ea,MA0Eb,GA1EsB,MA0EtB,EAAA,WAAA,OAAA,CAAA,GAAA;EAAmB;EACa,QAAnC,EAvEU,aAuEV,CAvEwB,SAuExB,CAAA;EAA6B;EACF,MAAE,EAtErB,OAsEqB;EAAa;EAA5B,MACE,EArER,QAqEQ;EAAS;EAAV,MAAA,EAnEP,QAmEO;EA+BJ;EAAe,OAAA,EAhGjB,QAgGiB;CAAA;;;;KA1FtB,cA8Fc,CAAA,qBA7FG,eA6FH,CAAA,MAAA,EAAA,OAAA,CAAA,GA7FsC,eA6FtC,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,gBAAA,SAAA,CAAA,GAxFf,aAwFe,SAAA,SAAA,GAAA,CAAA,CAAA,GAAA;EAAgB;;;;;;EAazB,OACR,EA7FU,OA6FV,CA7FkB,YA6FlB,CAAA;CAAY;;;;KAvFT,eA4FA,CAAA,YAAA,SAAA,CAAA,GA5FyC,SA4FzC,SAAA,SAAA,GAAA,CAAA,CAAA,GAAA;EAAS;;;;;;EAOW,EAAA,EA1FlB,SA2F+B;CAAS;;;;;;;;;;AAMnC;AAKZ;AAeA;AAA0B,KAtGd,eAsGc,CAAA,cArGX,eAqGW,GAAA,SAAA,GAAA,SAAA,EAAA,kBApGP,OAoGO,EAAA,GAAA,EAAA,EAAA,gBAnGT,MAmGS,GAnGA,MAmGA,EAAA,WAAA,OAAA,EAAA,qBAjGJ,eAiGI,CAAA,MAAA,EAAA,OAAA,CAAA,GAjG+B,eAiG/B,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,YAAA,SAAA,EAAA,gBAAA,SAAA,CAAA,GA3FtB,mBA2FsB,CA3FF,SA2FE,EA3FS,OA2FT,EA3FkB,QA2FlB,CAAA,GA1FzB,6BA0FyB,CA1FK,KA0FL,CAAA,GAzFzB,cAyFyB,CAzFV,YAyFU,EAzFI,aAyFJ,CAAA,GAxFzB,eAwFyB,CAxFT,SAwFS,CAAA;;;;;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;KA3DX,+BACI,2DACG,gCACF,SAAS,0BACP,qIAIG,mCAAmC,0CAKnD,gBACJ,QACA,WACA,SACA,UACA,cACA,WACA,0BAES,oBACN,kBAAkB,mBAMlB,yBAAyB,aACzB,qBAAqB,yBAAyB,cAC9C,QAAQ,yBAAyB,cACjC,QAAQ,qBAAqB,yBAAyB,yBAGtD,gCACA,mBACA,QAAQ;;;;aAKD,aAAA;;;;;;;;;;;;;;KAeA,oBACX,UAAU,+DACP,oBAAoB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HonoEndpointAdaptor-CkJENANP.cjs","names":["routes: string[]","cwd: string","endpoints: Endpoint<string, HttpMethod, any, any, TServices>[]","c: Context","headers: Record<string, string>","endpoint: Endpoint<\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany\n\t>","endpoint: Endpoint<\n\t\t\tTRoute,\n\t\t\tTMethod,\n\t\t\tTInput,\n\t\t\tTOutSchema,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTSession,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>","c: Context<any, string, {}>","data: unknown","schema?: T","serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>>","app: Hono","_app: Hono","_serviceDiscovery: ServiceDiscovery<any>","routes: string[]","envParser: EnvironmentParser<{}>","Hono","_logger: TLogger","options?: HonoEndpointOptions","endpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[]","validators: any[]","c: Context","db: TDatabase | undefined","ResponseBuilder","metadata","output","result","validationError: any","e: any","docsPath: string","openApiOptions?: HonoEndpointOptions['openApiOptions']"],"sources":["../src/endpoints/helpers.ts","../src/endpoints/parseHonoQuery.ts","../src/endpoints/HonoEndpointAdaptor.ts"],"sourcesContent":["import path from 'node:path';\nimport type { Service } from '@geekmidas/services';\nimport fg from 'fast-glob';\nimport type { HttpMethod } from '../types';\nimport { Endpoint } from './Endpoint';\n\n// Re-export utility functions\n\n/**\n * Recursively finds the project root directory by looking for lock files.\n * Traverses up the directory tree until it finds a package manager lock file.\n *\n * @param cwd - The current working directory to start searching from\n * @returns Promise resolving to the absolute path of the project root\n *\n * @example\n * ```typescript\n * const projectRoot = await getProjectRoot(process.cwd());\n * console.log(`Project root: ${projectRoot}`);\n * // Output: Project root: /Users/user/my-project\n * ```\n */\nexport async function getProjectRoot(cwd: string): Promise<string> {\n\tif (cwd === '/') {\n\t\treturn cwd;\n\t}\n\n\tconst stream = fg.stream(\n\t\t['yarn.lock', 'pnpm-lock.yaml', 'package-lock.json', 'deno.lock'],\n\t\t{ dot: true, cwd },\n\t);\n\n\tlet isRoot = false;\n\n\tfor await (const _ of stream) {\n\t\tisRoot = true;\n\t\tbreak;\n\t}\n\n\tif (isRoot) {\n\t\treturn cwd;\n\t}\n\n\treturn getProjectRoot(path.resolve(cwd, '..'));\n}\n\n/**\n * Discovers and imports all Endpoint instances from the specified route patterns.\n * Uses fast-glob to find files matching the patterns and extracts exported Endpoints.\n *\n * @template TServices - Array of service types used by the endpoints\n * @param routes - Array of glob patterns to match route files (e.g., ['src/routes/*.ts'])\n * @param cwd - The current working directory to resolve paths from\n * @returns Promise resolving to an array of Endpoint instances found in the matched files\n *\n * @example\n * ```typescript\n * // Find all endpoints in the routes directory\n * const endpoints = await getEndpointsFromRoutes(\n * ['src/routes/**\\/*.ts'],\n * process.cwd()\n * );\n *\n * // Register endpoints with your server\n * for (const endpoint of endpoints) {\n * server.register(endpoint);\n * }\n * ```\n *\n * @remarks\n * - Only exports that are valid Endpoint instances are included\n * - Files are imported dynamically, so they must be valid ES modules\n * - The function filters out non-Endpoint exports automatically\n */\nexport async function getEndpointsFromRoutes<TServices extends Service[]>(\n\troutes: string[],\n\tcwd: string,\n): Promise<Endpoint<string, HttpMethod, any, any, TServices>[]> {\n\tconst stream = fg.stream(routes, { cwd });\n\n\tconst endpoints: Endpoint<string, HttpMethod, any, any, TServices>[] = [];\n\n\tfor await (const f of stream) {\n\t\t// Resolve the absolute path for the route file\n\t\tconst routePath = path.resolve(cwd, f.toString());\n\t\t// Dynamically import the route module\n\t\tconst route = await import(routePath);\n\n\t\t// Filter exported values to find only Endpoint instances\n\t\tconst handlers = Object.values(route).filter((value) => {\n\t\t\treturn Endpoint.isEndpoint(value);\n\t\t}) as unknown as Endpoint<string, HttpMethod, any, any, TServices>[];\n\n\t\tendpoints.push(...handlers);\n\t}\n\n\treturn endpoints;\n}\n","import type { Context } from 'hono';\nimport qs from 'qs';\n\n/**\n * Parse Hono query parameters using qs bracket notation\n * Supports nested objects, arrays, and deep nesting via standard bracket syntax\n */\nexport function parseHonoQuery(c: Context): Record<string, any> {\n\tconst url = c.req.url;\n\tconst queryIndex = url.indexOf('?');\n\tif (queryIndex === -1) {\n\t\treturn {};\n\t}\n\tconst queryString = url.slice(queryIndex + 1);\n\treturn qs.parse(queryString) as Record<string, any>;\n}\n","import type { AuditableAction, AuditStorage } from '@geekmidas/audit';\nimport { withRlsContext } from '@geekmidas/db/rls';\nimport type { EnvironmentParser } from '@geekmidas/envkit';\nimport { wrapError } from '@geekmidas/errors';\nimport type { EventPublisher } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport { checkRateLimit, getRateLimitHeaders } from '@geekmidas/rate-limit';\nimport {\n\trunWithRequestContext,\n\ttype Service,\n\tServiceDiscovery,\n\ttype ServiceRecord,\n} from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { type Context, Hono } from 'hono';\nimport { setCookie } from 'hono/cookie';\nimport { logger as honoLogger } from 'hono/logger';\nimport { timing } from 'hono/timing';\nimport type { ContentfulStatusCode } from 'hono/utils/http-status';\nimport { validator } from 'hono/validator';\nimport { publishConstructEvents } from '../publisher';\nimport type { HttpMethod, LowerHttpMethod } from '../types';\nimport type { MappedAudit } from './audit';\nimport {\n\tEndpoint,\n\ttype EndpointContext,\n\ttype EndpointSchemas,\n\tResponseBuilder,\n} from './Endpoint';\nimport { getEndpointsFromRoutes } from './helpers';\nimport { createHonoCookies, createHonoHeaders } from './lazyAccessors';\nimport { parseHonoQuery } from './parseHonoQuery';\nimport {\n\tcreateAuditContext,\n\texecuteWithAuditTransaction,\n} from './processAudits';\n\nexport interface HonoEndpointOptions {\n\t/**\n\t * Path where OpenAPI documentation will be served.\n\t * Set to false to disable docs route.\n\t * @default '/docs'\n\t */\n\tdocsPath?: string | false;\n\t/**\n\t * OpenAPI schema options\n\t */\n\topenApiOptions?: {\n\t\ttitle?: string;\n\t\tversion?: string;\n\t\tdescription?: string;\n\t};\n}\n\n/**\n * Feature flags for an endpoint, analyzed once at route registration time.\n * This avoids per-request feature detection overhead.\n */\ninterface EndpointFeatures {\n\thasServices: boolean;\n\thasDatabase: boolean;\n\thasBodyValidation: boolean;\n\thasQueryValidation: boolean;\n\thasParamValidation: boolean;\n\thasAudits: boolean;\n\thasEvents: boolean;\n\thasRateLimit: boolean;\n\thasRls: boolean;\n}\n\n/**\n * Case-insensitive check for a `content-type` header in a metadata headers map.\n */\nfunction hasContentTypeHeader(headers: Record<string, string>): boolean {\n\tfor (const key of Object.keys(headers)) {\n\t\tif (key.toLowerCase() === 'content-type') return true;\n\t}\n\treturn false;\n}\n\n/**\n * Analyze endpoint features at registration time (not per-request)\n */\nfunction analyzeEndpointFeatures(\n\tendpoint: Endpoint<\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany\n\t>,\n): EndpointFeatures {\n\treturn {\n\t\thasServices: endpoint.services.length > 0,\n\t\thasDatabase: !!endpoint.databaseService,\n\t\thasBodyValidation: !!endpoint.input?.body,\n\t\thasQueryValidation: !!endpoint.input?.query,\n\t\thasParamValidation: !!endpoint.input?.params,\n\t\t// Audit context needed if declarative audits OR auditor storage service configured (for manual audits)\n\t\thasAudits:\n\t\t\t(endpoint.audits?.length ?? 0) > 0 || !!endpoint.auditorStorageService,\n\t\thasEvents: (endpoint.events?.length ?? 0) > 0,\n\t\thasRateLimit: !!endpoint.rateLimit,\n\t\thasRls: !!endpoint.rlsConfig && !endpoint.rlsBypass,\n\t};\n}\n\nexport class HonoEndpoint<\n\tTRoute extends string,\n\tTMethod extends HttpMethod,\n\tTInput extends EndpointSchemas = {},\n\tTOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n\tTSession = unknown,\n\tTEventPublisher extends EventPublisher<any> | undefined = undefined,\n\tTEventPublisherServiceName extends string = string,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n\tTAuditStorageServiceName extends string = string,\n\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\tstring,\n\t\tunknown\n\t>,\n\tTDatabase = undefined,\n\tTDatabaseServiceName extends string = string,\n> {\n\tconstructor(\n\t\tprivate readonly endpoint: Endpoint<\n\t\t\tTRoute,\n\t\t\tTMethod,\n\t\t\tTInput,\n\t\t\tTOutSchema,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTSession,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>,\n\t) {}\n\n\tstatic isDev = process.env.NODE_ENV === 'development';\n\n\tstatic async validate<T extends StandardSchemaV1>(\n\t\tc: Context<any, string, {}>,\n\t\tdata: unknown,\n\t\tschema?: T,\n\t) {\n\t\tif (!schema) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst parsed = await Endpoint.validate(schema, data);\n\n\t\tif (parsed.issues) {\n\t\t\treturn c.json(parsed.issues, 422);\n\t\t}\n\n\t\treturn parsed.value;\n\t}\n\taddRoute(\n\t\tserviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>>,\n\t\tapp: Hono,\n\t): void {\n\t\tHonoEndpoint.addRoute(this.endpoint, serviceDiscovery, app);\n\t}\n\n\t/**\n\t * @deprecated Global event middleware is no longer used.\n\t * Events are now published per-route only for endpoints that have events configured.\n\t * This method is kept for backward compatibility but does nothing.\n\t */\n\tstatic applyEventMiddleware(\n\t\t_app: Hono,\n\t\t_serviceDiscovery: ServiceDiscovery<any>,\n\t) {\n\t\t// No-op: Event publishing is now handled per-route in addRoute\n\t\t// This avoids running middleware on every request including 404s\n\t}\n\n\tstatic async fromRoutes<TLogger extends Logger, TServices extends Service[]>(\n\t\troutes: string[],\n\t\tenvParser: EnvironmentParser<{}>,\n\t\tapp = new Hono(),\n\t\t_logger: TLogger,\n\t\tcwd = process.cwd(),\n\t\toptions?: HonoEndpointOptions,\n\t): Promise<Hono> {\n\t\tconst endpoints = await getEndpointsFromRoutes<TServices>(routes, cwd);\n\t\tconst serviceDiscovery =\n\t\t\tServiceDiscovery.getInstance<ServiceRecord<TServices>>(envParser);\n\n\t\tHonoEndpoint.addRoutes(endpoints, serviceDiscovery, app, options);\n\n\t\treturn app;\n\t}\n\n\tstatic addRoutes<\n\t\tTServices extends Service[] = [],\n\t\tTLogger extends Logger = Logger,\n\t>(\n\t\tendpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[],\n\t\tserviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>>,\n\t\tapp: Hono,\n\t\toptions?: HonoEndpointOptions,\n\t): void {\n\t\t// Add timing middleware (always enabled)\n\t\tapp.use('*', timing());\n\n\t\t// Add logger middleware in development mode\n\n\t\tif (HonoEndpoint.isDev) {\n\t\t\tapp.use('*', honoLogger());\n\t\t}\n\n\t\t// Add docs route if not disabled\n\t\tconst docsPath =\n\t\t\toptions?.docsPath !== false ? options?.docsPath || '/docs' : null;\n\t\tif (docsPath) {\n\t\t\tHonoEndpoint.addDocsRoute(\n\t\t\t\tendpoints,\n\t\t\t\tapp,\n\t\t\t\tdocsPath,\n\t\t\t\toptions?.openApiOptions,\n\t\t\t);\n\t\t}\n\n\t\t// Sort endpoints to ensure static routes come before dynamic ones\n\t\tconst sortedEndpoints = endpoints.sort((a, b) => {\n\t\t\tconst aSegments = a.route.split('/');\n\t\t\tconst bSegments = b.route.split('/');\n\n\t\t\t// Compare each segment\n\t\t\tfor (let i = 0; i < Math.max(aSegments.length, bSegments.length); i++) {\n\t\t\t\tconst aSegment = aSegments[i] || '';\n\t\t\t\tconst bSegment = bSegments[i] || '';\n\n\t\t\t\t// If one is dynamic and the other is not, static comes first\n\t\t\t\tconst aIsDynamic = aSegment.startsWith(':');\n\t\t\t\tconst bIsDynamic = bSegment.startsWith(':');\n\n\t\t\t\tif (!aIsDynamic && bIsDynamic) return -1;\n\t\t\t\tif (aIsDynamic && !bIsDynamic) return 1;\n\n\t\t\t\t// If both are the same type, compare alphabetically\n\t\t\t\tif (aSegment !== bSegment) {\n\t\t\t\t\treturn aSegment.localeCompare(bSegment);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t});\n\n\t\t// Note: Global event middleware removed for performance\n\t\t// Events are now published per-route only for endpoints with events configured\n\t\tfor (const endpoint of sortedEndpoints) {\n\t\t\tHonoEndpoint.addRoute(endpoint, serviceDiscovery, app);\n\t\t}\n\t}\n\n\tstatic addRoute<\n\t\tTRoute extends string,\n\t\tTMethod extends HttpMethod,\n\t\tTInput extends EndpointSchemas = {},\n\t\tTOutSchema extends StandardSchemaV1 | undefined = undefined,\n\t\tTServices extends Service[] = [],\n\t\tTLogger extends Logger = Logger,\n\t\tTSession = unknown,\n\t\tTEventPublisher extends EventPublisher<any> | undefined = undefined,\n\t\tTEventPublisherServiceName extends string = string,\n\t\tTAuditStorage extends AuditStorage | undefined = undefined,\n\t\tTAuditStorageServiceName extends string = string,\n\t\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\t\tstring,\n\t\t\tunknown\n\t\t>,\n\t\tTDatabase = undefined,\n\t\tTDatabaseServiceName extends string = string,\n\t>(\n\t\tendpoint: Endpoint<\n\t\t\tTRoute,\n\t\t\tTMethod,\n\t\t\tTInput,\n\t\t\tTOutSchema,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTSession,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>,\n\t\tserviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>>,\n\t\tapp: Hono,\n\t): void {\n\t\tconst { route } = endpoint;\n\t\tconst method = endpoint.method.toLowerCase() as LowerHttpMethod<TMethod>;\n\n\t\t// Analyze endpoint features once at registration time (not per-request)\n\t\tconst features = analyzeEndpointFeatures(endpoint);\n\n\t\t// Build validators array - only add validators for schemas that exist\n\t\tconst validators: any[] = [];\n\n\t\tif (features.hasBodyValidation) {\n\t\t\tvalidators.push(\n\t\t\t\tvalidator('json', (value, c) =>\n\t\t\t\t\tHonoEndpoint.validate(c, value, endpoint.input?.body),\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\n\t\tif (features.hasQueryValidation) {\n\t\t\tvalidators.push(\n\t\t\t\tvalidator('query', (_, c) => {\n\t\t\t\t\tconst parsedQuery = parseHonoQuery(c);\n\t\t\t\t\treturn HonoEndpoint.validate(c, parsedQuery, endpoint.input?.query);\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\tif (features.hasParamValidation) {\n\t\t\tvalidators.push(\n\t\t\t\tvalidator('param', (params, c) =>\n\t\t\t\t\tHonoEndpoint.validate(c, params, endpoint.input?.params),\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\n\t\t// Main handler\n\t\tconst handler = async (c: Context) => {\n\t\t\t// Request context setup\n\t\t\tconst startTime = Date.now();\n\t\t\tconst requestId = c.req.header('X-Request-ID') ?? crypto.randomUUID();\n\n\t\t\tconst logger = endpoint.logger.child({\n\t\t\t\trequestId,\n\t\t\t\tendpoint: endpoint.fullPath,\n\t\t\t\troute: endpoint.route,\n\t\t\t\thost: c.req.header('host'),\n\t\t\t\tmethod: endpoint.method,\n\t\t\t\tpath: c.req.path,\n\t\t\t}) as TLogger;\n\n\t\t\t// Set response header\n\t\t\tc.header('X-Request-ID', requestId);\n\n\t\t\t// Wrap entire handler in request context for services to access\n\t\t\treturn runWithRequestContext(\n\t\t\t\t{ logger, requestId, startTime },\n\t\t\t\tasync () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// Lazy accessors - no upfront parsing, use native Hono methods\n\t\t\t\t\t\tconst header = createHonoHeaders(c);\n\t\t\t\t\t\tconst cookie = createHonoCookies(c);\n\n\t\t\t\t\t\t// Only register services if endpoint has any\n\t\t\t\t\t\tconst services = features.hasServices\n\t\t\t\t\t\t\t? await serviceDiscovery.register(endpoint.services)\n\t\t\t\t\t\t\t: ({} as ServiceRecord<TServices>);\n\n\t\t\t\t\t\t// Resolve database service only if configured\n\t\t\t\t\t\tconst rawDb = features.hasDatabase\n\t\t\t\t\t\t\t? await serviceDiscovery\n\t\t\t\t\t\t\t\t\t.register([endpoint.databaseService!])\n\t\t\t\t\t\t\t\t\t.then(\n\t\t\t\t\t\t\t\t\t\t(s) =>\n\t\t\t\t\t\t\t\t\t\t\ts[\n\t\t\t\t\t\t\t\t\t\t\t\tendpoint.databaseService?.serviceName as keyof typeof s\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t\t// Extract session (defaults to empty object)\n\t\t\t\t\t\tconst session = await endpoint.getSession({\n\t\t\t\t\t\t\tservices,\n\t\t\t\t\t\t\tlogger,\n\t\t\t\t\t\t\theader,\n\t\t\t\t\t\t\tcookie,\n\t\t\t\t\t\t\t...(rawDb !== undefined && { db: rawDb }),\n\t\t\t\t\t\t} as any);\n\n\t\t\t\t\t\t// Check authorization (defaults to true)\n\t\t\t\t\t\tconst isAuthorized = await endpoint.authorize({\n\t\t\t\t\t\t\theader,\n\t\t\t\t\t\t\tcookie,\n\t\t\t\t\t\t\tservices,\n\t\t\t\t\t\t\tlogger,\n\t\t\t\t\t\t\tsession,\n\t\t\t\t\t\t\t...(rawDb !== undefined && { db: rawDb }),\n\t\t\t\t\t\t\tbody: features.hasBodyValidation\n\t\t\t\t\t\t\t\t? (c.req.valid as any)('json')\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\tquery: features.hasQueryValidation\n\t\t\t\t\t\t\t\t? (c.req.valid as any)('query')\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\tparams: features.hasParamValidation\n\t\t\t\t\t\t\t\t? (c.req.valid as any)('param')\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t} as any);\n\n\t\t\t\t\t\tif (!isAuthorized) {\n\t\t\t\t\t\t\tlogger.warn('Forbidden access attempt');\n\t\t\t\t\t\t\treturn c.json({ error: 'Forbidden' }, 403);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Check rate limit only if configured\n\t\t\t\t\t\tif (features.hasRateLimit) {\n\t\t\t\t\t\t\tconst rateLimitInfo = await checkRateLimit(endpoint.rateLimit!, {\n\t\t\t\t\t\t\t\theader,\n\t\t\t\t\t\t\t\tservices,\n\t\t\t\t\t\t\t\tlogger,\n\t\t\t\t\t\t\t\tsession,\n\t\t\t\t\t\t\t\tpath: c.req.path,\n\t\t\t\t\t\t\t\tmethod: endpoint.method,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tconst rateLimitHeaders = getRateLimitHeaders(\n\t\t\t\t\t\t\t\trateLimitInfo,\n\t\t\t\t\t\t\t\tendpoint.rateLimit!,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tfor (const [key, value] of Object.entries(rateLimitHeaders)) {\n\t\t\t\t\t\t\t\tif (value) {\n\t\t\t\t\t\t\t\t\tc.header(key, value);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Create audit context only if audits are configured\n\t\t\t\t\t\tconst auditContext = features.hasAudits\n\t\t\t\t\t\t\t? await createAuditContext(\n\t\t\t\t\t\t\t\t\tendpoint as any,\n\t\t\t\t\t\t\t\t\tserviceDiscovery,\n\t\t\t\t\t\t\t\t\tlogger,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tsession,\n\t\t\t\t\t\t\t\t\t\theader,\n\t\t\t\t\t\t\t\t\t\tcookie,\n\t\t\t\t\t\t\t\t\t\tservices: services as Record<string, unknown>,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t\tconst audits = features.hasAudits\n\t\t\t\t\t\t\t? (endpoint.audits as MappedAudit<TAuditAction, TOutSchema>[])\n\t\t\t\t\t\t\t: [];\n\n\t\t\t\t\t\t// Warn if declarative audits are configured but no audit storage\n\t\t\t\t\t\tif (features.hasAudits && !auditContext) {\n\t\t\t\t\t\t\tlogger.warn('No auditor storage service available');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Extract RLS context only if configured and not bypassed\n\t\t\t\t\t\tconst rlsContext =\n\t\t\t\t\t\t\tfeatures.hasRls && rawDb !== undefined\n\t\t\t\t\t\t\t\t? await endpoint.rlsConfig?.extractor({\n\t\t\t\t\t\t\t\t\t\tservices,\n\t\t\t\t\t\t\t\t\t\tsession: session as TSession,\n\t\t\t\t\t\t\t\t\t\theader,\n\t\t\t\t\t\t\t\t\t\tcookie,\n\t\t\t\t\t\t\t\t\t\tlogger,\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t\t// Execute handler with automatic audit transaction support\n\t\t\t\t\t\tconst result = await executeWithAuditTransaction(\n\t\t\t\t\t\t\tauditContext,\n\t\t\t\t\t\t\tasync (auditor) => {\n\t\t\t\t\t\t\t\tconst sameDatabase =\n\t\t\t\t\t\t\t\t\tauditContext?.storage?.databaseServiceName &&\n\t\t\t\t\t\t\t\t\tauditContext.storage.databaseServiceName ===\n\t\t\t\t\t\t\t\t\t\tendpoint.databaseService?.serviceName;\n\t\t\t\t\t\t\t\tconst baseDb = sameDatabase\n\t\t\t\t\t\t\t\t\t? (auditor?.getTransaction?.() ?? rawDb)\n\t\t\t\t\t\t\t\t\t: rawDb;\n\n\t\t\t\t\t\t\t\tconst executeHandler = async (db: TDatabase | undefined) => {\n\t\t\t\t\t\t\t\t\tconst responseBuilder = new ResponseBuilder();\n\t\t\t\t\t\t\t\t\tconst response = await endpoint.handler(\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tservices,\n\t\t\t\t\t\t\t\t\t\t\tlogger,\n\t\t\t\t\t\t\t\t\t\t\tbody: features.hasBodyValidation\n\t\t\t\t\t\t\t\t\t\t\t\t? (c.req.valid as any)('json')\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\tquery: features.hasQueryValidation\n\t\t\t\t\t\t\t\t\t\t\t\t? (c.req.valid as any)('query')\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\tparams: features.hasParamValidation\n\t\t\t\t\t\t\t\t\t\t\t\t? (c.req.valid as any)('param')\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\tsession,\n\t\t\t\t\t\t\t\t\t\t\theader,\n\t\t\t\t\t\t\t\t\t\t\tcookie,\n\t\t\t\t\t\t\t\t\t\t\tauditor,\n\t\t\t\t\t\t\t\t\t\t\tdb,\n\t\t\t\t\t\t\t\t\t\t} as unknown as EndpointContext<\n\t\t\t\t\t\t\t\t\t\t\tTInput,\n\t\t\t\t\t\t\t\t\t\t\tTServices,\n\t\t\t\t\t\t\t\t\t\t\tTLogger,\n\t\t\t\t\t\t\t\t\t\t\tTSession,\n\t\t\t\t\t\t\t\t\t\t\tTAuditAction,\n\t\t\t\t\t\t\t\t\t\t\tTDatabase,\n\t\t\t\t\t\t\t\t\t\t\tTAuditStorage\n\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\tresponseBuilder,\n\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\tlet data = response;\n\t\t\t\t\t\t\t\t\tlet metadata = responseBuilder.getMetadata();\n\n\t\t\t\t\t\t\t\t\tif (Endpoint.hasMetadata(response)) {\n\t\t\t\t\t\t\t\t\t\tdata = response.data;\n\t\t\t\t\t\t\t\t\t\tmetadata = response.metadata;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tconst output = endpoint.outputSchema\n\t\t\t\t\t\t\t\t\t\t? await endpoint.parseOutput(data)\n\t\t\t\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t\t\t\t\treturn { output, metadata, responseBuilder };\n\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\tif (features.hasRls && rlsContext && baseDb) {\n\t\t\t\t\t\t\t\t\treturn withRlsContext(\n\t\t\t\t\t\t\t\t\t\tbaseDb as any,\n\t\t\t\t\t\t\t\t\t\trlsContext,\n\t\t\t\t\t\t\t\t\t\tasync (trx) => executeHandler(trx as TDatabase),\n\t\t\t\t\t\t\t\t\t\t{ prefix: endpoint.rlsConfig?.prefix },\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn executeHandler(baseDb as TDatabase | undefined);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tasync (result, auditor) => {\n\t\t\t\t\t\t\t\tif (!audits?.length) return;\n\n\t\t\t\t\t\t\t\tfor (const audit of audits) {\n\t\t\t\t\t\t\t\t\tif (audit.when && !audit.when(result.output as any)) {\n\t\t\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tconst payload = audit.payload(result.output as any);\n\t\t\t\t\t\t\t\t\tconst entityId = audit.entityId?.(result.output as any);\n\t\t\t\t\t\t\t\t\tauditor.audit(audit.type as any, payload as any, {\n\t\t\t\t\t\t\t\t\t\ttable: audit.table,\n\t\t\t\t\t\t\t\t\t\tentityId,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{ db: rawDb },\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst { output, metadata } = result;\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tlet status = endpoint.status as ContentfulStatusCode;\n\n\t\t\t\t\t\t\tif (metadata.status) {\n\t\t\t\t\t\t\t\tstatus = metadata.status as ContentfulStatusCode;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (metadata.headers) {\n\t\t\t\t\t\t\t\tfor (const [key, value] of Object.entries(metadata.headers)) {\n\t\t\t\t\t\t\t\t\tc.header(key, value);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (metadata.cookies) {\n\t\t\t\t\t\t\t\tfor (const [name, { value, options }] of metadata.cookies) {\n\t\t\t\t\t\t\t\t\tsetCookie(c, name, value, options);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Only publish events if configured (no global middleware overhead)\n\t\t\t\t\t\t\tif (features.hasEvents && Endpoint.isSuccessStatus(status)) {\n\t\t\t\t\t\t\t\tawait publishConstructEvents<any, any>(\n\t\t\t\t\t\t\t\t\tendpoint as any,\n\t\t\t\t\t\t\t\t\toutput,\n\t\t\t\t\t\t\t\t\tserviceDiscovery,\n\t\t\t\t\t\t\t\t\tlogger,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (HonoEndpoint.isDev) {\n\t\t\t\t\t\t\t\tlogger.info({ status, body: output }, 'Outgoing response');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Respect the endpoint's declared responseType. For JSON (default)\n\t\t\t\t\t\t\t// we use c.json() which sets Content-Type and serializes. For any\n\t\t\t\t\t\t\t// other type, emit the body as-is and set the header explicitly —\n\t\t\t\t\t\t\t// metadata.headers (from r.header()) applied above still wins.\n\t\t\t\t\t\t\tif (endpoint.responseType === 'application/json') {\n\t\t\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\t\t\treturn c.json(output, status);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t!(metadata.headers && hasContentTypeHeader(metadata.headers))\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tc.header('content-type', endpoint.responseType);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn c.body(output as any, status);\n\t\t\t\t\t\t} catch (validationError: any) {\n\t\t\t\t\t\t\tlogger.error(validationError, 'Output validation failed');\n\t\t\t\t\t\t\tconst error = wrapError(\n\t\t\t\t\t\t\t\tvalidationError,\n\t\t\t\t\t\t\t\t422,\n\t\t\t\t\t\t\t\t'Response validation failed',\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (HonoEndpoint.isDev) {\n\t\t\t\t\t\t\t\tlogger.info(\n\t\t\t\t\t\t\t\t\t{ status: error.statusCode, body: error },\n\t\t\t\t\t\t\t\t\t'Outgoing response',\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn c.json(error, error.statusCode as ContentfulStatusCode);\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (e: any) {\n\t\t\t\t\t\tlogger.error(e, 'Error processing endpoint request');\n\t\t\t\t\t\tconst error = wrapError(e, 500, 'Internal Server Error');\n\t\t\t\t\t\tif (HonoEndpoint.isDev) {\n\t\t\t\t\t\t\tlogger.info(\n\t\t\t\t\t\t\t\t{ status: error.statusCode, body: error },\n\t\t\t\t\t\t\t\t'Outgoing response',\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn c.json(error, error.statusCode as ContentfulStatusCode);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t);\n\t\t};\n\n\t\t// Register route with conditional validators\n\t\tapp[method](route, ...validators, handler);\n\t}\n\n\tstatic addDocsRoute<\n\t\tTServices extends Service[] = [],\n\t\tTLogger extends Logger = Logger,\n\t>(\n\t\tendpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[],\n\t\tapp: Hono,\n\t\tdocsPath: string,\n\t\topenApiOptions?: HonoEndpointOptions['openApiOptions'],\n\t): void {\n\t\tapp.get(docsPath, async (c) => {\n\t\t\ttry {\n\t\t\t\tconst openApiSchema = await Endpoint.buildOpenApiSchema(\n\t\t\t\t\tendpoints,\n\t\t\t\t\topenApiOptions,\n\t\t\t\t);\n\n\t\t\t\treturn c.json(openApiSchema);\n\t\t\t} catch {\n\t\t\t\treturn c.json(\n\t\t\t\t\t{ error: 'Failed to generate OpenAPI documentation' },\n\t\t\t\t\t500,\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n}\n"],"mappings":"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"}
|