@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
|
@@ -0,0 +1,419 @@
|
|
|
1
|
+
import { Construct } from "./Construct-B-xc0SE9.mjs";
|
|
2
|
+
import { BaseFunctionBuilder } from "./index-L7pz0R0T.mjs";
|
|
3
|
+
import { Consumable, ServicesOf } from "./construct-interface-BqwRNYA2.mjs";
|
|
4
|
+
import { HttpMethod } from "./types-aKksMEWL.mjs";
|
|
5
|
+
import { ActorExtractor, AuthorizeFn, Authorizer, BuiltInSecuritySchemeId, CookieFn, Endpoint, EndpointHandler, EndpointSchemas, EndpointSurface, HeaderFn, MappedAudit, RlsBypass, RlsConfig, SecurityScheme, SessionFn, SuccessStatus } from "./Endpoint-BKR5QH6O.mjs";
|
|
6
|
+
import { EnvironmentParser } from "@geekmidas/envkit";
|
|
7
|
+
import { Service, ServiceDiscovery } from "@geekmidas/services";
|
|
8
|
+
import { AuditStorage, AuditableAction, ExtractStorageAuditAction } from "@geekmidas/audit";
|
|
9
|
+
import { RateLimitConfig } from "@geekmidas/rate-limit";
|
|
10
|
+
import { Context } from "hono";
|
|
11
|
+
import { EventPublisher, MappedEvent } from "@geekmidas/events";
|
|
12
|
+
import { Logger } from "@geekmidas/logger";
|
|
13
|
+
import { InferStandardSchema } from "@geekmidas/schema";
|
|
14
|
+
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
15
|
+
|
|
16
|
+
//#region src/publisher.d.ts
|
|
17
|
+
declare function publishConstructEvents<T extends EventPublisher<any> | undefined, OutSchema extends StandardSchemaV1 | undefined = undefined, TServiceName extends string = string, TServices extends Service[] = [], TAuditStorageServiceName extends string = string, TAuditStorage extends AuditStorage | undefined = undefined>(construct: Construct<Logger, TServiceName, T, OutSchema, TServices, TAuditStorageServiceName, TAuditStorage>, response: InferStandardSchema<OutSchema>, serviceDiscovery: ServiceDiscovery<any>, logger?: Logger): Promise<void>;
|
|
18
|
+
//# sourceMappingURL=publisher.d.ts.map
|
|
19
|
+
|
|
20
|
+
//#endregion
|
|
21
|
+
//#region src/endpoints/EndpointBuilder.d.ts
|
|
22
|
+
declare class EndpointBuilder<TRoute extends string, TMethod extends HttpMethod, TInput extends EndpointSchemas = {}, TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TSession = unknown, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TAuthorizers extends readonly string[] = readonly string[], TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>, TDatabase = undefined, TDatabaseServiceName extends string = string> extends BaseFunctionBuilder<TInput, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName> {
|
|
23
|
+
readonly route: TRoute;
|
|
24
|
+
readonly method: TMethod;
|
|
25
|
+
protected schemas: TInput;
|
|
26
|
+
protected _description?: string;
|
|
27
|
+
protected _status?: SuccessStatus;
|
|
28
|
+
protected _tags?: string[];
|
|
29
|
+
protected _memorySize?: number;
|
|
30
|
+
protected _responseType: string;
|
|
31
|
+
_getSession: SessionFn<TServices, TLogger, TSession, TDatabase>;
|
|
32
|
+
_authorize: AuthorizeFn<TServices, TLogger, TSession, TInput, TDatabase>;
|
|
33
|
+
_rateLimit?: RateLimitConfig;
|
|
34
|
+
_availableAuthorizers: Authorizer[];
|
|
35
|
+
_authorizerName?: TAuthorizers[number];
|
|
36
|
+
_actorExtractor?: ActorExtractor<TServices, TSession, TLogger>;
|
|
37
|
+
_audits: MappedAudit<TAuditAction, OutSchema>[];
|
|
38
|
+
/**
|
|
39
|
+
* Internal: the surface this builder came from, carried to the endpoint.
|
|
40
|
+
*
|
|
41
|
+
* Assigned by the factory before the builder is handed out, which is the
|
|
42
|
+
* only way a builder is ever created.
|
|
43
|
+
*/
|
|
44
|
+
_surface: EndpointSurface;
|
|
45
|
+
_customSecuritySchemes: Record<string, SecurityScheme>;
|
|
46
|
+
_rlsConfig?: RlsConfig<TServices, TSession, TLogger>;
|
|
47
|
+
_rlsBypass?: boolean;
|
|
48
|
+
constructor(route: TRoute, method: TMethod);
|
|
49
|
+
_setPublisher(publisher: Service<TEventPublisherServiceName, TEventPublisher>): void;
|
|
50
|
+
_setAuditorStorage(storage: Service<TAuditStorageServiceName, TAuditStorage>): void;
|
|
51
|
+
_setDatabaseService(service: Service<TDatabaseServiceName, TDatabase>): void;
|
|
52
|
+
description(description: string): this;
|
|
53
|
+
status(status: SuccessStatus): this;
|
|
54
|
+
event<TEvent extends MappedEvent<TEventPublisher, OutSchema>>(event: TEvent): this;
|
|
55
|
+
tags(tags: string[]): this;
|
|
56
|
+
memorySize(memorySize: number): this;
|
|
57
|
+
/**
|
|
58
|
+
* Set the response content type for this endpoint.
|
|
59
|
+
*
|
|
60
|
+
* Defaults to `'application/json'`. When set to any other value
|
|
61
|
+
* (e.g. `'text/html'`, `'text/plain'`), the response body is emitted
|
|
62
|
+
* as-is rather than JSON-serialized, and the `Content-Type` header
|
|
63
|
+
* reflects the declared value. Runtime overrides via `r.header()` still win.
|
|
64
|
+
*
|
|
65
|
+
* @param type - The MIME type to return (e.g. `'text/html'`)
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```typescript
|
|
69
|
+
* api.get('/checkout-page')
|
|
70
|
+
* .output(z.string())
|
|
71
|
+
* .responseType('text/html')
|
|
72
|
+
* .handle(async () => '<html>...</html>');
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
responseType(type: string): this;
|
|
76
|
+
publisher<T extends EventPublisher<any>, TName extends string>(publisher: Service<TName, T>): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, T, TName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
77
|
+
body<T extends StandardSchemaV1>(schema: T): EndpointBuilder<TRoute, TMethod, Omit<TInput, 'body'> & {
|
|
78
|
+
body: T;
|
|
79
|
+
}, TServices, TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
80
|
+
search<T extends StandardSchemaV1>(schema: T): EndpointBuilder<TRoute, TMethod, Omit<TInput, 'query'> & {
|
|
81
|
+
query: T;
|
|
82
|
+
}, TServices, TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
83
|
+
query<T extends StandardSchemaV1>(schema: T): EndpointBuilder<TRoute, TMethod, Omit<TInput, 'query'> & {
|
|
84
|
+
query: T;
|
|
85
|
+
}, TServices, TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
86
|
+
params<T extends StandardSchemaV1>(schema: T): EndpointBuilder<TRoute, TMethod, Omit<TInput, 'params'> & {
|
|
87
|
+
params: T;
|
|
88
|
+
}, TServices, TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
89
|
+
authorize(fn: AuthorizeFn<TServices, TLogger, TSession, TInput, TDatabase>): this;
|
|
90
|
+
rateLimit(config: RateLimitConfig): this;
|
|
91
|
+
authorizer(name: TAuthorizers[number] | 'none'): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
92
|
+
/**
|
|
93
|
+
* Depend on constructs — a database, a bucket, a mail sender, a queue, a
|
|
94
|
+
* topic.
|
|
95
|
+
*
|
|
96
|
+
* It records the edge and dissolves each construct's client into the
|
|
97
|
+
* handler's service record under the construct's own id, so
|
|
98
|
+
* `.dependsOn([uploads])` is what makes `services.uploads` exist and type.
|
|
99
|
+
*
|
|
100
|
+
* Constructs only. A `Service` does not match the shape, which is what keeps
|
|
101
|
+
* env sniffing confined to `.services()` and the explicit lift.
|
|
102
|
+
*/
|
|
103
|
+
dependsOn<const T extends readonly Consumable[]>(constructs: T): EndpointBuilder<TRoute, TMethod, TInput, [...TServices, ...ServicesOf<T>], TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
104
|
+
services<T extends Service[]>(services: T): EndpointBuilder<TRoute, TMethod, TInput, [...TServices, ...T], TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
105
|
+
logger<T extends Logger>(logger: T): EndpointBuilder<TRoute, TMethod, TInput, TServices, T, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
106
|
+
output<T extends StandardSchemaV1>(schema: T): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, T, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
107
|
+
/**
|
|
108
|
+
* Set the auditor storage service for this endpoint.
|
|
109
|
+
* This enables audit functionality and makes `auditor` available in the handler context.
|
|
110
|
+
* The audit action type is automatically inferred from the storage's generic parameter.
|
|
111
|
+
*/
|
|
112
|
+
auditor<T extends AuditStorage<any>, TName extends string>(storage: Service<TName, T>): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, T, TName, ExtractStorageAuditAction<T>, TDatabase, TDatabaseServiceName>;
|
|
113
|
+
/**
|
|
114
|
+
* Set the actor extractor function for audit records.
|
|
115
|
+
* The actor is extracted from the request context and attached to all audits.
|
|
116
|
+
*/
|
|
117
|
+
actor(extractor: ActorExtractor<TServices, TSession, TLogger>): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
118
|
+
/**
|
|
119
|
+
* Add declarative audit definitions that are processed after the handler executes.
|
|
120
|
+
* Similar to `.event()` for events, but for audits.
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```typescript
|
|
124
|
+
* .audit<AppAuditAction>([
|
|
125
|
+
* {
|
|
126
|
+
* type: 'user.created',
|
|
127
|
+
* payload: (response) => ({ userId: response.id, email: response.email }),
|
|
128
|
+
* when: (response) => response.active,
|
|
129
|
+
* entityId: (response) => response.id,
|
|
130
|
+
* table: 'users',
|
|
131
|
+
* },
|
|
132
|
+
* ])
|
|
133
|
+
* ```
|
|
134
|
+
*/
|
|
135
|
+
audit(audits: MappedAudit<TAuditAction, OutSchema>[]): this;
|
|
136
|
+
/**
|
|
137
|
+
* Set the database service for this endpoint.
|
|
138
|
+
* The database will be available in the handler context as `db`.
|
|
139
|
+
* When audit storage is configured and uses the same database,
|
|
140
|
+
* `db` will automatically be the transaction for ACID compliance.
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* ```typescript
|
|
144
|
+
* .database(databaseService)
|
|
145
|
+
* .handle(async ({ db }) => {
|
|
146
|
+
* // db is the raw database or transaction (when auditor uses same db)
|
|
147
|
+
* return await db.selectFrom('users').selectAll().execute();
|
|
148
|
+
* })
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
151
|
+
database<T, TName extends string>(source: Consumable<TName, T> | Service<TName, T>): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, T, TName>;
|
|
152
|
+
/**
|
|
153
|
+
* Configure RLS (Row-Level Security) context for this endpoint.
|
|
154
|
+
* Pass `false` or `RLS_BYPASS` to explicitly bypass RLS for this endpoint.
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```typescript
|
|
158
|
+
* // Custom RLS config for this endpoint
|
|
159
|
+
* .rls({
|
|
160
|
+
* extractor: ({ session }) => ({
|
|
161
|
+
* user_id: session.userId,
|
|
162
|
+
* tenant_id: session.tenantId,
|
|
163
|
+
* }),
|
|
164
|
+
* prefix: 'app',
|
|
165
|
+
* })
|
|
166
|
+
*
|
|
167
|
+
* // Bypass RLS (for admin endpoints)
|
|
168
|
+
* .rls(false)
|
|
169
|
+
* ```
|
|
170
|
+
*/
|
|
171
|
+
rls(config: RlsConfig<TServices, TSession, TLogger> | false | RlsBypass): this;
|
|
172
|
+
/**
|
|
173
|
+
* Explicitly bypass RLS for this endpoint.
|
|
174
|
+
* Useful for admin operations that need unrestricted database access.
|
|
175
|
+
*
|
|
176
|
+
* @example
|
|
177
|
+
* ```typescript
|
|
178
|
+
* .rlsBypass()
|
|
179
|
+
* .handle(async ({ db }) => {
|
|
180
|
+
* // Full access, no RLS filtering
|
|
181
|
+
* return db.selectFrom('orders').selectAll().execute();
|
|
182
|
+
* })
|
|
183
|
+
* ```
|
|
184
|
+
*/
|
|
185
|
+
rlsBypass(): this;
|
|
186
|
+
input(_schema: any): any;
|
|
187
|
+
handle(fn: EndpointHandler<TInput, TServices, TLogger, OutSchema, TSession, TDatabase, TAuditStorage, TAuditAction>): Endpoint<TRoute, TMethod, TInput, OutSchema, TServices, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=EndpointBuilder.d.ts.map
|
|
190
|
+
//#endregion
|
|
191
|
+
//#region src/endpoints/EndpointFactory.d.ts
|
|
192
|
+
declare class EndpointFactory<TServices extends Service[] = [], TBasePath extends string = '', TLogger extends Logger = Logger, TSession = unknown, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TAuthorizers extends readonly string[] = readonly string[], TAuditStorage extends AuditStorage<any> | undefined = undefined, TAuditStorageServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = ExtractStorageAuditAction<NonNullable<TAuditStorage>>, TDatabase = undefined, TDatabaseServiceName extends string = string, TSecuritySchemes extends Record<string, SecurityScheme> = Record<string, SecurityScheme>, TRlsConfig extends RlsConfig<TServices, TSession, TLogger> | undefined = undefined> {
|
|
193
|
+
private defaultServices;
|
|
194
|
+
/**
|
|
195
|
+
* The constructs `.dependsOn()` was given, kept alongside the services they
|
|
196
|
+
* dissolve into.
|
|
197
|
+
*
|
|
198
|
+
* `.dependsOn()` collapses straight into `.services()`, which is right for
|
|
199
|
+
* *running* — a handler wants clients, not ids — and loses the one thing the
|
|
200
|
+
* manifest needs: which constructs this endpoint reaches. Keeping the ids
|
|
201
|
+
* here is what lets a route declare its edges, and lets a target derive its
|
|
202
|
+
* environment from the graph rather than from sniffing what the code touched.
|
|
203
|
+
*/
|
|
204
|
+
private defaultConstructs;
|
|
205
|
+
private basePath;
|
|
206
|
+
private defaultAuthorizeFn?;
|
|
207
|
+
private defaultEventPublisher;
|
|
208
|
+
private defaultSessionExtractor?;
|
|
209
|
+
private defaultLogger;
|
|
210
|
+
/**
|
|
211
|
+
* The surface this factory belongs to, stamped onto everything it builds.
|
|
212
|
+
*
|
|
213
|
+
* Set only by `RestApi`, which is the only thing that has one. A factory
|
|
214
|
+
* with no surface produces endpoints that carry none, which is what a
|
|
215
|
+
* standalone endpoint has always been.
|
|
216
|
+
*/
|
|
217
|
+
private surface;
|
|
218
|
+
private availableAuthorizers;
|
|
219
|
+
private defaultAuthorizerName?;
|
|
220
|
+
private defaultAuditorStorage;
|
|
221
|
+
private defaultDatabaseService;
|
|
222
|
+
private defaultActorExtractor?;
|
|
223
|
+
private customSecuritySchemes;
|
|
224
|
+
private defaultRlsConfig?;
|
|
225
|
+
constructor({
|
|
226
|
+
basePath,
|
|
227
|
+
defaultAuthorizeFn,
|
|
228
|
+
defaultLogger,
|
|
229
|
+
defaultSessionExtractor,
|
|
230
|
+
defaultServices,
|
|
231
|
+
defaultConstructs,
|
|
232
|
+
defaultEventPublisher,
|
|
233
|
+
availableAuthorizers,
|
|
234
|
+
defaultAuthorizerName,
|
|
235
|
+
defaultAuditorStorage,
|
|
236
|
+
defaultDatabaseService,
|
|
237
|
+
defaultActorExtractor,
|
|
238
|
+
customSecuritySchemes,
|
|
239
|
+
defaultRlsConfig,
|
|
240
|
+
surface
|
|
241
|
+
}: EndpointFactoryOptions<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>);
|
|
242
|
+
static joinPaths<TBasePath extends string, P extends string>(path: P, basePath?: TBasePath): JoinPaths<TBasePath, P>;
|
|
243
|
+
authorizers<const T extends readonly string[]>(authorizers: T): EndpointFactory<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, T, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
|
|
244
|
+
/**
|
|
245
|
+
* Define custom security schemes for this factory.
|
|
246
|
+
* These extend the built-in schemes (jwt, bearer, apiKey, oauth2, oidc).
|
|
247
|
+
*
|
|
248
|
+
* @example
|
|
249
|
+
* ```typescript
|
|
250
|
+
* const router = e.securitySchemes({
|
|
251
|
+
* awsIamSigV4: {
|
|
252
|
+
* type: 'apiKey',
|
|
253
|
+
* in: 'header',
|
|
254
|
+
* name: 'Authorization',
|
|
255
|
+
* 'x-amazon-apigateway-authtype': 'awsSigv4',
|
|
256
|
+
* },
|
|
257
|
+
* });
|
|
258
|
+
* ```
|
|
259
|
+
*/
|
|
260
|
+
securitySchemes<T extends Record<string, SecurityScheme>>(schemes: T): EndpointFactory<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes & T, TRlsConfig>;
|
|
261
|
+
/**
|
|
262
|
+
* Set the default authorizer for all endpoints created from this factory.
|
|
263
|
+
* Individual endpoints can override this by calling `.authorizer()` on the builder.
|
|
264
|
+
* Use `'none'` to explicitly disable authorization for all endpoints.
|
|
265
|
+
*
|
|
266
|
+
* Accepts:
|
|
267
|
+
* - Built-in security scheme names: 'jwt', 'bearer', 'apiKey', 'oauth2', 'oidc'
|
|
268
|
+
* - Custom security scheme names defined via `.securitySchemes()`
|
|
269
|
+
* - 'none' to disable authorization
|
|
270
|
+
*/
|
|
271
|
+
authorizer(name: BuiltInSecuritySchemeId | keyof TSecuritySchemes | TAuthorizers[number] | 'none'): EndpointFactory<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
|
|
272
|
+
route<TPath extends string>(path: TPath): EndpointFactory<TServices, JoinPaths<TBasePath, TPath>, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
|
|
273
|
+
authorize(fn: AuthorizeFn<TServices, TLogger, TSession, undefined, TDatabase>): EndpointFactory<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
|
|
274
|
+
/**
|
|
275
|
+
* Depend on constructs — a database, a bucket, a mail sender, a queue, a
|
|
276
|
+
* topic.
|
|
277
|
+
*
|
|
278
|
+
* It records the edge and dissolves each construct's client into the
|
|
279
|
+
* handler's service record under the construct's own id, so
|
|
280
|
+
* `.dependsOn([uploads])` is what makes `services.uploads` exist and type.
|
|
281
|
+
*
|
|
282
|
+
* Constructs only. A `Service` does not match the shape, which is what keeps
|
|
283
|
+
* env sniffing confined to `.services()` and the explicit lift.
|
|
284
|
+
*/
|
|
285
|
+
dependsOn<const S extends readonly Consumable[]>(constructs: S): EndpointFactory<[...ServicesOf<S>, ...TServices], TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, RlsConfig<[...ServicesOf<S>, ...TServices], TSession, TLogger> | undefined>;
|
|
286
|
+
services<S extends Service[]>(services: S): EndpointFactory<[...S, ...TServices], TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, RlsConfig<[...S, ...TServices], TSession, TLogger> | undefined>;
|
|
287
|
+
logger<L extends Logger>(logger: L): EndpointFactory<TServices, TBasePath, L, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, RlsConfig<TServices, TSession, L> | undefined>;
|
|
288
|
+
publisher<T extends EventPublisher<any>, TServiceName extends string = string>(publisher: Service<TServiceName, T>): EndpointFactory<TServices, TBasePath, TLogger, TSession, T, TServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
|
|
289
|
+
session<T>(session: SessionFn<TServices, TLogger, T, TDatabase>): EndpointFactory<TServices, TBasePath, TLogger, T, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, RlsConfig<TServices, T, TLogger> | undefined>;
|
|
290
|
+
/**
|
|
291
|
+
* Set the database service for endpoints created from this factory.
|
|
292
|
+
* The database will be available in handler context as `db`.
|
|
293
|
+
*/
|
|
294
|
+
database<T, TName extends string>(source: Consumable<TName, T> | Service<TName, T>): EndpointFactory<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, T, TName, TSecuritySchemes, TRlsConfig>;
|
|
295
|
+
/**
|
|
296
|
+
* Set the auditor storage service for endpoints created from this factory.
|
|
297
|
+
* This enables audit functionality and makes `auditor` available in handler context.
|
|
298
|
+
* The audit action type is automatically inferred from the storage's generic parameter.
|
|
299
|
+
*/
|
|
300
|
+
auditor<T extends AuditStorage<any>, TName extends string>(storage: Service<TName, T>): EndpointFactory<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, T, TName, ExtractStorageAuditAction<T>, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
|
|
301
|
+
/**
|
|
302
|
+
* Set the actor extractor function for endpoints created from this factory.
|
|
303
|
+
* The actor is extracted from the request context and attached to all audits.
|
|
304
|
+
*/
|
|
305
|
+
actor(extractor: ActorExtractor<TServices, TSession, TLogger>): EndpointFactory<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
|
|
306
|
+
/**
|
|
307
|
+
* Set the RLS (Row-Level Security) configuration for endpoints created from this factory.
|
|
308
|
+
* This enables automatic PostgreSQL session variable setting for RLS policies.
|
|
309
|
+
*
|
|
310
|
+
* @example
|
|
311
|
+
* ```typescript
|
|
312
|
+
* const api = new EndpointFactory()
|
|
313
|
+
* .database(databaseService)
|
|
314
|
+
* .session(extractSession)
|
|
315
|
+
* .rls({
|
|
316
|
+
* extractor: ({ session }) => ({
|
|
317
|
+
* user_id: session.userId,
|
|
318
|
+
* tenant_id: session.tenantId,
|
|
319
|
+
* }),
|
|
320
|
+
* prefix: 'app',
|
|
321
|
+
* });
|
|
322
|
+
* ```
|
|
323
|
+
*/
|
|
324
|
+
rls<TConfig extends RlsConfig<TServices, TSession, TLogger>>(config: TConfig): EndpointFactory<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TConfig>;
|
|
325
|
+
private createBuilder;
|
|
326
|
+
post<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "POST", {}, TServices, TLogger, undefined, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
327
|
+
get<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "GET", {}, TServices, TLogger, undefined, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
328
|
+
put<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "PUT", {}, TServices, TLogger, undefined, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
329
|
+
delete<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "DELETE", {}, TServices, TLogger, undefined, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
330
|
+
patch<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "PATCH", {}, TServices, TLogger, undefined, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
331
|
+
options<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "OPTIONS", {}, TServices, TLogger, undefined, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
|
|
332
|
+
}
|
|
333
|
+
type RemoveTrailingSlash<T extends string> = T extends `${infer Rest}/` ? Rest extends '' ? T : Rest : T;
|
|
334
|
+
type JoinPaths<TBasePath extends string, TPath extends string> = RemoveTrailingSlash<TBasePath extends '' ? TPath : TPath extends '' ? TBasePath : TBasePath extends '/' ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest}` ? `${TBasePath}/${Rest}` : `${TBasePath}/${TPath}`>;
|
|
335
|
+
interface EndpointFactoryOptions<TServices extends Service[] = [], TBasePath extends string = '', TLogger extends Logger = Logger, TSession = unknown, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TAuthorizers extends readonly string[] = readonly string[], TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string, TSecuritySchemes extends Record<string, SecurityScheme> = Record<string, SecurityScheme>, TRlsConfig extends RlsConfig<TServices, TSession, TLogger> | undefined = undefined> {
|
|
336
|
+
defaultServices?: TServices;
|
|
337
|
+
/** Construct ids from `.dependsOn()`, carried so a route can declare edges. */
|
|
338
|
+
defaultConstructs?: string[];
|
|
339
|
+
basePath?: TBasePath;
|
|
340
|
+
defaultAuthorizeFn?: AuthorizeFn<TServices, TLogger, TSession, undefined, TDatabase>;
|
|
341
|
+
defaultLogger?: TLogger;
|
|
342
|
+
defaultSessionExtractor?: SessionFn<TServices, TLogger, TSession, TDatabase>;
|
|
343
|
+
defaultEventPublisher?: Service<TEventPublisherServiceName, TEventPublisher>;
|
|
344
|
+
defaultEvents?: MappedEvent<TEventPublisher, undefined>[];
|
|
345
|
+
availableAuthorizers?: Authorizer[];
|
|
346
|
+
defaultAuthorizerName?: TAuthorizers[number];
|
|
347
|
+
defaultAuditorStorage?: Service<TAuditStorageServiceName, TAuditStorage>;
|
|
348
|
+
defaultDatabaseService?: Service<TDatabaseServiceName, TDatabase>;
|
|
349
|
+
defaultActorExtractor?: ActorExtractor<TServices, TSession, TLogger>;
|
|
350
|
+
customSecuritySchemes?: TSecuritySchemes;
|
|
351
|
+
defaultRlsConfig?: TRlsConfig;
|
|
352
|
+
/**
|
|
353
|
+
* The surface this factory belongs to.
|
|
354
|
+
*
|
|
355
|
+
* Required. A factory exists to build endpoints for a surface, and an
|
|
356
|
+
* endpoint without one has no logger, no env parser and nothing to
|
|
357
|
+
* attribute its traffic to — which was survivable only while `e` existed.
|
|
358
|
+
*
|
|
359
|
+
* Carried through every derived factory, so `api.endpoints.database(db)`
|
|
360
|
+
* still produces endpoints that know which API serves them.
|
|
361
|
+
*/
|
|
362
|
+
surface: EndpointSurface;
|
|
363
|
+
}
|
|
364
|
+
//# sourceMappingURL=EndpointFactory.d.ts.map
|
|
365
|
+
//#endregion
|
|
366
|
+
//#region src/endpoints/lazyAccessors.d.ts
|
|
367
|
+
/**
|
|
368
|
+
* Create a lazy header accessor for Hono.
|
|
369
|
+
* Uses `c.req.header(name)` for single lookups (native, case-insensitive).
|
|
370
|
+
* Only calls `c.req.header()` to get all headers when needed.
|
|
371
|
+
*/
|
|
372
|
+
declare function createHonoHeaders(c: Context): HeaderFn;
|
|
373
|
+
/**
|
|
374
|
+
* Create a lazy cookie accessor for Hono.
|
|
375
|
+
* Uses `getCookie(c, name)` for single lookups (native).
|
|
376
|
+
* Only parses the cookie header when all cookies are requested.
|
|
377
|
+
*/
|
|
378
|
+
declare function createHonoCookies(c: Context): CookieFn;
|
|
379
|
+
/**
|
|
380
|
+
* Create a lazy header accessor for API Gateway events.
|
|
381
|
+
* Handles case-insensitive lookups.
|
|
382
|
+
*/
|
|
383
|
+
declare function createApiGatewayHeaders(headers: Record<string, string | undefined> | null | undefined): HeaderFn;
|
|
384
|
+
/**
|
|
385
|
+
* Create a lazy cookie accessor for API Gateway events.
|
|
386
|
+
* Decodes URL-encoded values to match browser behavior.
|
|
387
|
+
*/
|
|
388
|
+
declare function createApiGatewayCookies(cookies: string[] | undefined, cookieHeader: string | undefined): CookieFn;
|
|
389
|
+
/**
|
|
390
|
+
* Create a lazy header accessor for plain object headers (test adaptor, etc).
|
|
391
|
+
* Headers are already available as an object, just provide lazy access.
|
|
392
|
+
*/
|
|
393
|
+
|
|
394
|
+
/**
|
|
395
|
+
* Create a no-op header accessor (for minimal endpoints that don't use headers).
|
|
396
|
+
*/
|
|
397
|
+
declare function createNoopHeaders(): HeaderFn;
|
|
398
|
+
/**
|
|
399
|
+
* Create a no-op cookie accessor (for minimal endpoints that don't use cookies).
|
|
400
|
+
*/
|
|
401
|
+
declare function createNoopCookies(): CookieFn;
|
|
402
|
+
//# sourceMappingURL=lazyAccessors.d.ts.map
|
|
403
|
+
//#endregion
|
|
404
|
+
//#region src/endpoints/surfaceEnv.d.ts
|
|
405
|
+
/**
|
|
406
|
+
* The default parser, built once.
|
|
407
|
+
*
|
|
408
|
+
* Once because `Credentials` resolves through `globalThis` and decryption is
|
|
409
|
+
* not free, and because two parsers over the same environment are two caches of
|
|
410
|
+
* the same answer.
|
|
411
|
+
*/
|
|
412
|
+
declare function defaultEnvParser(): EnvironmentParser<{}>;
|
|
413
|
+
/** The parser for an endpoint, from its surface or the default. */
|
|
414
|
+
declare function envParserFor(surface: EndpointSurface | undefined): EnvironmentParser<{}>;
|
|
415
|
+
//# sourceMappingURL=surfaceEnv.d.ts.map
|
|
416
|
+
|
|
417
|
+
//#endregion
|
|
418
|
+
export { EndpointBuilder, EndpointFactory, RemoveTrailingSlash, createApiGatewayCookies, createApiGatewayHeaders, createHonoCookies, createHonoHeaders, createNoopCookies, createNoopHeaders, defaultEnvParser, envParserFor, publishConstructEvents };
|
|
419
|
+
//# sourceMappingURL=index-Cvz551AO.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-Cvz551AO.d.mts","names":[],"sources":["../src/publisher.ts","../src/endpoints/EndpointBuilder.ts","../src/endpoints/EndpointFactory.ts","../src/endpoints/lazyAccessors.ts","../src/endpoints/surfaceEnv.ts"],"sourcesContent":[],"mappings":"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,iBAAA;IAAA,qBAAA;IAAA,oBAAA;IAAA,qBAAA;IAAA,qBAAA;IAAA,sBAAA;IAAA,qBAAA;IAAA,qBAAA;IAAA,gBAAA;IAAA;EAAA,CAAA,EC8Eb,sBD9Ea,CC+Ef,SD/Ee,ECgFf,SDhFe,ECiFf,ODjFe,ECkFf,QDlFe,ECmFf,eDnFe,ECoFf,0BDpFe,ECqFf,YDrFe,ECsFf,aDtFe,ECuFf,wBDvFe,ECwFf,SDxFe,ECyFf,oBDzFe,EC0Ff,gBD1Fe,EC2Ff,UD3Fe,CAAA;EAAM,OAAG,SAAA,CAAA,kBAAA,MAAA,EAAA,UAAA,MAAA,CAAA,CAAA,IAAA,ECoHlB,CDpHkB,EAAA,QAAA,CAAA,ECqHd,SDrHc,CAAA,ECsHtB,SDtHsB,CCsHZ,SDtHY,ECsHD,CDtHC,CAAA;EAAM,WACb,CAAA,gBAAA,SAAA,MAAA,EAAA,CAAA,CAAA,WAAA,ECyJJ,CDzJI,CAAA,EC0Jf,eD1Je,CC2JjB,SD3JiB,EC4JjB,SD5JiB,EC6JjB,OD7JiB,EC8JjB,QD9JiB,EC+JjB,eD/JiB,ECgKjB,0BDhKiB,ECiKjB,CDjKiB,ECkKjB,aDlKiB,ECmKjB,wBDnKiB,ECoKjB,YDpKiB,ECqKjB,SDrKiB,ECsKjB,oBDtKiB,ECuKjB,gBDvKiB,ECwKjB,UDxKiB,CAAA;EAAgB;;;;;;;;;;;;;;;;EAqDT,eA5BN,CAAA,UCuMO,MDvMP,CAAA,MAAA,ECuMsB,cDvMtB,CAAA,CAAA,CAAA,OAAA,ECwMT,CDxMS,CAAA,ECyMhB,eDzMgB,CC0MlB,SD1MkB,EC2MlB,SD3MkB,EC4MlB,OD5MkB,EC6MlB,QD7MkB,EC8MlB,eD9MkB,EC+MlB,0BD/MkB,ECgNlB,YDhNkB,ECiNlB,aDjNkB,ECkNlB,wBDlNkB,ECmNlB,YDnNkB,ECoNlB,SDpNkB,ECqNlB,oBDrNkB,ECsNlB,gBDtNkB,GCsNC,CDtND,ECuNlB,UDvNkB,CAAA;EAAM;;;;;;;;;;EAQmC,UAAE,CAAA,IAAA,ECkQ1D,uBDlQ0D,GAAA,MCmQpD,gBDnQoD,GCoQ1D,YDpQ0D,CAAA,MAAA,CAAA,GAAA,MAAA,CAAA,ECsQ3D,eDtQ2D,CCuQ7D,SDvQ6D,ECwQ7D,SDxQ6D,ECyQ7D,ODzQ6D,EC0Q7D,QD1Q6D,EC2Q7D,eD3Q6D,EC4Q7D,0BD5Q6D,EC6Q7D,YD7Q6D,EC8Q7D,aD9Q6D,EC+Q7D,wBD/Q6D,ECgR7D,YDhR6D,ECiR7D,SDjR6D,ECkR7D,oBDlR6D,ECmR7D,gBDnR6D,ECoR7D,UDpR6D,CAAA;EAAS,KAA3D,CAAA,cAAA,MAAA,CAAA,CAAA,IAAA,EC0UL,KD1UK,CAAA,EC2UT,eD3US,CC4UX,SD5UW,EC6UX,SD7UW,CC6UD,SD7UC,EC6UU,KD7UV,CAAA,EC8UX,OD9UW,EC+UX,QD/UW,ECgVX,eDhVW,ECiVX,0BDjVW,ECkVX,YDlVW,ECmVX,aDnVW,ECoVX,wBDpVW,ECqVX,YDrVW,ECsVX,SDtVW,ECuVX,oBDvVW,ECwVX,gBDxVW,ECyVX,UDzVW,CAAA;EAAW,SAEV,CAAA,EAAA,EC8XR,WD9XQ,CC8XI,SD9XJ,EC8Xe,OD9Xf,EC8XwB,QD9XxB,EAAA,SAAA,EC8X6C,SD9X7C,CAAA,CAAA,EC+XV,eD/XU,CCgYZ,SDhYY,ECiYZ,SDjYY,ECkYZ,ODlYY,ECmYZ,QDnYY,ECoYZ,eDpYY,ECqYZ,0BDrYY,ECsYZ,YDtYY,ECuYZ,aDvYY,ECwYZ,wBDxYY,ECyYZ,YDzYY,EC0YZ,SD1YY,EC2YZ,oBD3YY,EC4YZ,gBD5YY,EC6YZ,UD7YY,CAAA;EAAe;;;;;;;;;;;EAYyB,SAA7B,CAAA,gBAAA,SCibW,UDjbX,EAAA,CAAA,CAAA,UAAA,ECkbX,CDlbW,CAAA,ECmbrB,eDnbqB,CAAA,CACD,GCmblB,UDnbkB,CCmbP,CDnbO,CAAA,EAAW,GCmbX,SDnbW,CAAQ,ECobzC,SDpb2C,ECqb3C,ODrb2C,ECsb3C,QDtb2C,ECub3C,eDvb2C,ECwb3C,0BDxb2C,ECyb3C,YDzb2C,EC0b3C,aD1b2C,EC2b3C,wBD3b2C,EC4b3C,YD5b2C,EC6b3C,SD7b2C,EC8b3C,oBD9b2C,EC+b3C,gBD/b2C,ECgc3C,SDhc2C,CAAA,CAAA,GCgc7B,UDhc6B,CCgclB,CDhckB,CAAA,EAAA,GCgcX,SDhcW,CAAA,ECgcC,QDhcD,ECgcW,ODhcX,CAAA,GAAA,SAAA,CAAA;EAAO,QAAtC,CAAA,UC+dM,OD/dN,EAAA,CAAA,CAAA,QAAA,ECgeF,CDheE,CAAA,ECieV,eDjeU,CAAA,CAII,GC8dZ,CD9dY,EACC,GC6dP,SD7dO,CAAO,EC8dxB,SDvdmB,ECwdnB,ODxdmB,ECydnB,QDzdmB,EC0dnB,eD1dmB,EC2dnB,0BD3dmB,EC4dnB,YD5dmB,EC6dnB,aD7dmB,EC8dnB,wBD9dmB,EC+dnB,YD/dmB,ECgenB,SDhemB,ECienB,oBDjemB,ECkenB,gBDlemB,ECmenB,SDnemB,CAAA,CAAA,GCmeL,CDneK,EAAA,GCmeC,SDneD,CAAA,ECmea,QDneb,ECmeuB,ODnevB,CAAA,GAAA,SAAA,CAAA;EAA0B,MAAE,CAAA,UCihB/B,MDjhB+B,CAAA,CAAA,MAAA,ECkhBvC,CDlhBuC,CAAA,ECmhB7C,eDnhB6C,CCohB/C,SDphB+C,ECqhB/C,SDrhB+C,ECshB/C,CDthB+C,ECuhB/C,QDvhB+C,ECwhB/C,eDxhB+C,ECyhB/C,0BDzhB+C,EC0hB/C,YD1hB+C,EC2hB/C,aD3hB+C,EC4hB/C,wBD5hB+C,EC6hB/C,YD7hB+C,EC8hB/C,SD9hB+C,EC+hB/C,oBD/hB+C,ECgiB/C,gBDhiB+C,ECiiB/C,SDjiB+C,CCiiBrC,SDjiBqC,ECiiB1B,QDjiB0B,ECiiBhB,CDjiBgB,CAAA,GAAA,SAAA,CAAA;EAAe,SAAnD,CAAA,UCslBD,cDtlBC,CAAA,GAAA,CAAA,EAAA,qBAAA,MAAA,GAAA,MAAA,CAAA,CAAA,SAAA,ECylBA,ODzlBA,CCylBQ,YDzlBR,ECylBsB,CDzlBtB,CAAA,CAAA,EC0lBT,eD1lBS,CC2lBX,SD3lBW,EC4lBX,SD5lBW,EC6lBX,OD7lBW,EC8lBX,QD9lBW,EC+lBX,CD/lBW,ECgmBX,YDhmBW,ECimBX,YDjmBW,ECkmBX,aDlmBW,ECmmBX,wBDnmBW,EComBX,YDpmBW,ECqmBX,SDrmBW,ECsmBX,oBDtmBW,ECumBX,gBDvmBW,ECwmBX,UDxmBW,CAAA;EAAO,OAOD,CAAA,CAAA,CAAA,CAAA,OAAA,ECsoBR,SDtoBQ,CCsoBE,SDtoBF,ECsoBa,ODtoBb,ECsoBsB,CDtoBtB,ECsoByB,SDtoBzB,CAAA,CAAA,ECuoBf,eDvoBe,CCwoBjB,SDxoBiB,ECyoBjB,SDzoBiB,EC0oBjB,OD1oBiB,EC2oBjB,CD3oBiB,EC4oBjB,eD5oBiB,EC6oBjB,0BD7oBiB,EC8oBjB,YD9oBiB,EC+oBjB,aD/oBiB,ECgpBjB,wBDhpBiB,ECipBjB,YDjpBiB,ECkpBjB,SDlpBiB,ECmpBjB,oBDnpBiB,ECopBjB,gBDppBiB,ECqpBjB,SDrpBiB,CCqpBP,SDrpBO,ECqpBI,CDrpBJ,ECqpBO,ODrpBP,CAAA,GAAA,SAAA,CAAA;EAAwB;;;;EAM0B,QAAvC,CAAA,CAAA,EAAA,cAAA,MAAA,CAAA,CAAA,MAAA,ECmsBpB,UDnsBoB,CCmsBT,KDnsBS,ECmsBF,CDnsBE,CAAA,GCmsBG,ODnsBH,CCmsBW,KDnsBX,ECmsBkB,CDnsBlB,CAAA,CAAA,ECosB1B,eDpsB0B,CCqsB5B,SDrsB4B,ECssB5B,SDtsB4B,ECusB5B,ODvsB4B,ECwsB5B,QDxsB4B,ECysB5B,eDzsB4B,EC0sB5B,0BD1sB4B,EC2sB5B,YD3sB4B,EC4sB5B,aD5sB4B,EC6sB5B,wBD7sB4B,EC8sB5B,YD9sB4B,EC+sB5B,CD/sB4B,ECgtB5B,KDhtB4B,ECitB5B,gBDjtB4B,ECktB5B,UDltB4B,CAAA;EAAO;;;;;EAatB,OAqCe,CAAA,UCgtBX,YDhtBW,CAAA,GAAA,CAAA,EAAA,cAAA,MAAA,CAAA,CAAA,OAAA,ECitBnB,ODjtBmB,CCitBX,KDjtBW,ECitBJ,CDjtBI,CAAA,CAAA,ECktB1B,eDltB0B,CCmtB5B,SDntB4B,ECotB5B,SDptB4B,ECqtB5B,ODrtB4B,ECstB5B,QDttB4B,ECutB5B,eDvtB4B,ECwtB5B,0BDxtB4B,ECytB5B,YDztB4B,EC0tB5B,CD1tB4B,EC2tB5B,KD3tB4B,EC4tB5B,yBD5tB4B,CC4tBF,CD5tBE,CAAA,EC6tB5B,SD7tB4B,EC8tB5B,oBD9tB4B,EC+tB5B,gBD/tB4B,ECguB5B,UDhuB4B,CAAA;EAAc;;;;EAGpC,KACN,CAAA,SAAA,EC0wBW,cD1wBX,CC0wB0B,SD1wB1B,EC0wBqC,QD1wBrC,EC0wB+C,OD1wB/C,CAAA,CAAA,EC2wBE,eD3wBF,CC4wBA,SD5wBA,EC6wBA,SD7wBA,EC8wBA,OD9wBA,EC+wBA,QD/wBA,ECgxBA,eDhxBA,ECixBA,0BDjxBA,ECkxBA,YDlxBA,ECmxBA,aDnxBA,ECoxBA,wBDpxBA,ECqxBA,YDrxBA,ECsxBA,SDtxBA,ECuxBA,oBDvxBA,ECwxBA,gBDxxBA,ECyxBA,UDzxBA,CAAA;EAAO;;;;;;;;;;;;;;;;;;EA2CA,GACF,CAAA,gBCmyBc,SDnyBd,CCmyBwB,SDnyBxB,ECmyBmC,QDnyBnC,ECmyB6C,ODnyB7C,CAAA,CAAA,CAAA,MAAA,ECoyBG,ODpyBH,CAAA,ECqyBH,eDryBG,CCsyBL,SDtyBK,ECuyBL,SDvyBK,ECwyBL,ODxyBK,ECyyBL,QDzyBK,EC0yBL,eD1yBK,EC2yBL,0BD3yBK,EC4yBL,YD5yBK,EC6yBL,aD7yBK,EC8yBL,wBD9yBK,EC+yBL,YD/yBK,ECgzBL,SDhzBK,ECizBL,oBDjzBK,ECkzBL,gBDlzBK,ECmzBL,ODnzBK,CAAA;EAAM,QAAX,aAAA;EAAI,IAA2B,CAAA,cAAA,MAAA,CAAA,CAAA,IAAA,EC67BC,KD77BD,CAAA,EC67BM,eD77BN,CC67BM,mBD77BN,CC67BM,SD77BN,SAAA,EAAA,GC67BM,KD77BN,GC67BM,KD77BN,SAAA,EAAA,GC67BM,SD77BN,GC67BM,SD77BN,SAAA,GAAA,GC67BM,KD77BN,SAAA,IAAA,MAAA,EAAA,GC67BM,KD77BN,GAAA,IC67BM,KD77BN,EAAA,GC67BM,SD77BN,SAAA,GAAA,KAAA,KAAA,GAAA,GCw+BI,KDx+BJ,SAAA,IAAA,KAAA,KAAA,EAAA,GAAA,GCy+BE,IDz+BF,ICy+BE,IDz+BF,EAAA,GAAA,GCy+BE,IDz+BF,ICy+BE,KDz+BF,EAAA,GCy+BE,KDz+BF,SAAA,IAAA,KAAA,OAAA,EAAA,GAAA,GCy+BE,SDz+BF,ICy+BE,MDz+BF,EAAA,GAAA,GCy+BE,SDz+BF,ICy+BE,KDz+BF,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,ECy+BE,SDz+BF,ECy+BE,ODz+BF,EAAA,SAAA,ECy+BE,QDz+BF,ECy+BE,eDz+BF,ECy+BE,0BDz+BF,ECy+BE,YDz+BF,ECy+BE,aDz+BF,ECy+BE,wBDz+BF,ECy+BE,YDz+BF,ECy+BE,SDz+BF,ECy+BE,oBDz+BF,CAAA;EAAC,GAChC,CAAA,cAAA,MAAA,CAAA,CAAA,IAAA,ECg8B+B,KDh8B/B,CAAA,ECg8BoC,eDh8BpC,CCg8BoC,mBDh8BpC,CCg8BoC,SDh8BpC,SAAA,EAAA,GCg8BoC,KDh8BpC,GCg8BoC,KDh8BpC,SAAA,EAAA,GCg8BoC,SDh8BpC,GCg8BoC,SDh8BpC,SAAA,GAAA,GCg8BoC,KDh8BpC,SAAA,IAAA,MAAA,EAAA,GCg8BoC,KDh8BpC,GAAA,ICg8BoC,KDh8BpC,EAAA,GCg8BoC,SDh8BpC,SAAA,GAAA,KAAA,KAAA,GAAA,GCu+BmC,KDv+BnC,SAAA,IAAA,KAAA,KAAA,EAAA,GAAA,GCw+BiC,IDx+BjC,ICw+BiC,IDx+BjC,EAAA,GAAA,GCw+BiC,IDx+BjC,ICw+BiC,KDx+BjC,EAAA,GCw+BiC,KDx+BjC,SAAA,IAAA,KAAA,OAAA,EAAA,GAAA,GCw+BiC,SDx+BjC,ICw+BiC,MDx+BjC,EAAA,GAAA,GCw+BiC,SDx+BjC,ICw+BiC,KDx+BjC,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,ECw+BiC,SDx+BjC,ECw+BiC,ODx+BjC,EAAA,SAAA,ECw+BiC,QDx+BjC,ECw+BiC,eDx+BjC,ECw+BiC,0BDx+BjC,ECw+BiC,YDx+BjC,ECw+BiC,aDx+BjC,ECw+BiC,wBDx+BjC,ECw+BiC,YDx+BjC,ECw+BiC,SDx+BjC,ECw+BiC,oBDx+BjC,CAAA;EAAS,GACT,CAAA,cAAA,MAAA,CAAA,CAAA,IAAA,ECm8B+B,KDn8B/B,CAAA,ECm8BoC,eDn8BpC,CCm8BoC,mBDn8BpC,CCm8BoC,SDn8BpC,SAAA,EAAA,GCm8BoC,KDn8BpC,GCm8BoC,KDn8BpC,SAAA,EAAA,GCm8BoC,SDn8BpC,GCm8BoC,SDn8BpC,SAAA,GAAA,GCm8BoC,KDn8BpC,SAAA,IAAA,MAAA,EAAA,GCm8BoC,KDn8BpC,GAAA,ICm8BoC,KDn8BpC,EAAA,GCm8BoC,SDn8BpC,SAAA,GAAA,KAAA,KAAA,GAAA,GCs+BmC,KDt+BnC,SAAA,IAAA,KAAA,KAAA,EAAA,GAAA,GCu+BiC,IDv+BjC,ICu+BiC,IDv+BjC,EAAA,GAAA,GCu+BiC,IDv+BjC,ICu+BiC,KDv+BjC,EAAA,GCu+BiC,KDv+BjC,SAAA,IAAA,KAAA,OAAA,EAAA,GAAA,GCu+BiC,SDv+BjC,ICu+BiC,MDv+BjC,EAAA,GAAA,GCu+BiC,SDv+BjC,ICu+BiC,KDv+BjC,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,ECu+BiC,SDv+BjC,ECu+BiC,ODv+BjC,EAAA,SAAA,ECu+BiC,QDv+BjC,ECu+BiC,eDv+BjC,ECu+BiC,0BDv+BjC,ECu+BiC,YDv+BjC,ECu+BiC,aDv+BjC,ECu+BiC,wBDv+BjC,ECu+BiC,YDv+BjC,ECu+BiC,SDv+BjC,ECu+BiC,oBDv+BjC,CAAA;EAAO,MACP,CAAA,cAAA,MAAA,CAAA,CAAA,IAAA,ECs8BkC,KDt8BlC,CAAA,ECs8BuC,eDt8BvC,CCs8BuC,mBDt8BvC,CCs8BuC,SDt8BvC,SAAA,EAAA,GCs8BuC,KDt8BvC,GCs8BuC,KDt8BvC,SAAA,EAAA,GCs8BuC,SDt8BvC,GCs8BuC,SDt8BvC,SAAA,GAAA,GCs8BuC,KDt8BvC,SAAA,IAAA,MAAA,EAAA,GCs8BuC,KDt8BvC,GAAA,ICs8BuC,KDt8BvC,EAAA,GCs8BuC,SDt8BvC,SAAA,GAAA,KAAA,KAAA,GAAA,GCq+BmC,KDr+BnC,SAAA,IAAA,KAAA,KAAA,EAAA,GAAA,GCs+BiC,IDt+BjC,ICs+BiC,IDt+BjC,EAAA,GAAA,GCs+BiC,IDt+BjC,ICs+BiC,KDt+BjC,EAAA,GCs+BiC,KDt+BjC,SAAA,IAAA,KAAA,OAAA,EAAA,GAAA,GCs+BiC,SDt+BjC,ICs+BiC,MDt+BjC,EAAA,GAAA,GCs+BiC,SDt+BjC,ICs+BiC,KDt+BjC,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,ECs+BiC,SDt+BjC,ECs+BiC,ODt+BjC,EAAA,SAAA,ECs+BiC,QDt+BjC,ECs+BiC,eDt+BjC,ECs+BiC,0BDt+BjC,ECs+BiC,YDt+BjC,ECs+BiC,aDt+BjC,ECs+BiC,wBDt+BjC,ECs+BiC,YDt+BjC,ECs+BiC,SDt+BjC,ECs+BiC,oBDt+BjC,CAAA;EAAS,KACT,CAAA,cAAA,MAAA,CAAA,CAAA,IAAA,ECy8BiC,KDz8BjC,CAAA,ECy8BsC,eDz8BtC,CCy8BsC,mBDz8BtC,CCy8BsC,SDz8BtC,SAAA,EAAA,GCy8BsC,KDz8BtC,GCy8BsC,KDz8BtC,SAAA,EAAA,GCy8BsC,SDz8BtC,GCy8BsC,SDz8BtC,SAAA,GAAA,GCy8BsC,KDz8BtC,SAAA,IAAA,MAAA,EAAA,GCy8BsC,KDz8BtC,GAAA,ICy8BsC,KDz8BtC,EAAA,GCy8BsC,SDz8BtC,SAAA,GAAA,KAAA,KAAA,GAAA,GCo+BmC,KDp+BnC,SAAA,IAAA,KAAA,KAAA,EAAA,GAAA,GCq+BiC,IDr+BjC,ICq+BiC,IDr+BjC,EAAA,GAAA,GCq+BiC,IDr+BjC,ICq+BiC,KDr+BjC,EAAA,GCq+BiC,KDr+BjC,SAAA,IAAA,KAAA,OAAA,EAAA,GAAA,GCq+BiC,SDr+BjC,ICq+BiC,MDr+BjC,EAAA,GAAA,GCq+BiC,SDr+BjC,ICq+BiC,KDr+BjC,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,ECq+BiC,SDr+BjC,ECq+BiC,ODr+BjC,EAAA,SAAA,ECq+BiC,QDr+BjC,ECq+BiC,eDr+BjC,ECq+BiC,0BDr+BjC,ECq+BiC,YDr+BjC,ECq+BiC,aDr+BjC,ECq+BiC,wBDr+BjC,ECq+BiC,YDr+BjC,ECq+BiC,SDr+BjC,ECq+BiC,oBDr+BjC,CAAA;EAAQ,OACR,CAAA,cAAA,MAAA,CAAA,CAAA,IAAA,EC48BmC,KD58BnC,CAAA,EC48BwC,eD58BxC,CC48BwC,mBD58BxC,CC48BwC,SD58BxC,SAAA,EAAA,GC48BwC,KD58BxC,GC48BwC,KD58BxC,SAAA,EAAA,GC48BwC,SD58BxC,GC48BwC,SD58BxC,SAAA,GAAA,GC48BwC,KD58BxC,SAAA,IAAA,MAAA,EAAA,GC48BwC,KD58BxC,GAAA,IC48BwC,KD58BxC,EAAA,GC48BwC,SD58BxC,SAAA,GAAA,KAAA,KAAA,GAAA,GCm+BmC,KDn+BnC,SAAA,IAAA,KAAA,KAAA,EAAA,GAAA,GCo+BiC,IDp+BjC,ICo+BiC,IDp+BjC,EAAA,GAAA,GCo+BiC,IDp+BjC,ICo+BiC,KDp+BjC,EAAA,GCo+BiC,KDp+BjC,SAAA,IAAA,KAAA,OAAA,EAAA,GAAA,GCo+BiC,SDp+BjC,ICo+BiC,MDp+BjC,EAAA,GAAA,GCo+BiC,SDp+BjC,ICo+BiC,KDp+BjC,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,ECo+BiC,SDp+BjC,ECo+BiC,ODp+BjC,EAAA,SAAA,ECo+BiC,QDp+BjC,ECo+BiC,eDp+BjC,ECo+BiC,0BDp+BjC,ECo+BiC,YDp+BjC,ECo+BiC,aDp+BjC,ECo+BiC,wBDp+BjC,ECo+BiC,YDp+BjC,ECo+BiC,SDp+BjC,ECo+BiC,oBDp+BjC,CAAA;;AAEA,KC+8BU,mBD/8BV,CAAA,UAAA,MAAA,CAAA,GC+8BkD,CD/8BlD,SAAA,GAAA,KAAA,KAAA,GAAA,GCg9BC,IDh9BD,SAAA,EAAA,GCi9BE,CDj9BF,GCk9BE,IDl9BF,GCm9BC,CDn9BD;AACA,KCo9BU,SDp9BV,CAAA,kBAAA,MAAA,EAAA,cAAA,MAAA,CAAA,GCu9BE,mBDv9BF,CCw9BD,SDx9BC,SAAA,EAAA,GCy9BE,KDz9BF,GC09BE,KD19BF,SAAA,EAAA,GC29BG,SD39BH,GC49BG,SD59BH,SAAA,GAAA,GC69BI,KD79BJ,SAAA,IAAA,MAAA,EAAA,GC89BK,KD99BL,GAAA,IC+9BS,KD/9BT,EAAA,GCg+BI,SDh+BJ,SAAA,GAAA,KAAA,KAAA,GAAA,GCi+BK,KDj+BL,SAAA,IAAA,KAAA,KAAA,EAAA,GAAA,GCk+BS,IDl+BT,ICk+BiB,IDl+BjB,EAAA,GAAA,GCm+BS,IDn+BT,ICm+BiB,KDn+BjB,EAAA,GCo+BK,KDp+BL,SAAA,IAAA,KAAA,KAAA,EAA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"}
|