@geekmidas/constructs 7.0.1 → 10.0.0-alpha.0
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-ysaCsdWx.d.mts → AWSScheduledFunction-BvFvBsBN.d.cts} +10 -5
- package/dist/{AWSScheduledFunction-ysaCsdWx.d.mts.map → AWSScheduledFunction-BvFvBsBN.d.cts.map} +1 -1
- package/dist/{AWSScheduledFunction-CTIa90EH.d.cts → AWSScheduledFunction-CVccZO-L.d.mts} +10 -5
- package/dist/{AWSScheduledFunction-CTIa90EH.d.cts.map → AWSScheduledFunction-CVccZO-L.d.mts.map} +1 -1
- package/dist/{AWSScheduledFunction-CufMMhGB.mjs → AWSScheduledFunction-Db1lttJH.mjs} +3 -3
- package/dist/{AWSScheduledFunction-CufMMhGB.mjs.map → AWSScheduledFunction-Db1lttJH.mjs.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-HmWM6YYu.mjs} +4 -3
- package/dist/Construct-HmWM6YYu.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/{lazyAccessors-DfqZR6C4.mjs → Endpoint-BGwpNEX4.mjs} +840 -1003
- package/dist/Endpoint-BGwpNEX4.mjs.map +1 -0
- package/dist/{Endpoint-CAzNbDEt.d.cts → Endpoint-BnxZqIX-.d.cts} +53 -4
- package/dist/Endpoint-BnxZqIX-.d.cts.map +1 -0
- package/dist/{Endpoint-CLPSIl6S.d.mts → Endpoint-ROcXU-eH.d.mts} +55 -6
- package/dist/Endpoint-ROcXU-eH.d.mts.map +1 -0
- package/dist/EndpointFactory-DYoGLaIT.cjs +850 -0
- package/dist/EndpointFactory-DYoGLaIT.cjs.map +1 -0
- package/dist/EndpointFactory-Di0X9AWp.mjs +808 -0
- package/dist/EndpointFactory-Di0X9AWp.mjs.map +1 -0
- package/dist/{HonoEndpointAdaptor-DJDT3PMx.mjs → HonoEndpointAdaptor-DFKIIG2o.mjs} +5 -4
- package/dist/HonoEndpointAdaptor-DFKIIG2o.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-CvT_q7Y4.mjs} +55 -51
- package/dist/functions-CvT_q7Y4.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-7OcOWe75.d.cts +419 -0
- package/dist/index-7OcOWe75.d.cts.map +1 -0
- package/dist/index-Bt-F7u8L.d.mts +419 -0
- package/dist/index-Bt-F7u8L.d.mts.map +1 -0
- package/dist/{index-DP6fqv0I.d.mts → index-CPeqtKgq.d.mts} +48 -19
- package/dist/index-CPeqtKgq.d.mts.map +1 -0
- package/dist/{index-BGeTScmi.d.cts → index-Dadljnh_.d.cts} +36 -9
- package/dist/index-Dadljnh_.d.cts.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 -366
- 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-CAzNbDEt.d.cts.map +0 -1
- package/dist/Endpoint-CLPSIl6S.d.mts.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-BGeTScmi.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
|
@@ -1,319 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck - Experimental benchmark strategy file
|
|
2
|
-
/**
|
|
3
|
-
* Strategy A: Lazy Service Resolution
|
|
4
|
-
*
|
|
5
|
-
* Key optimizations:
|
|
6
|
-
* 1. Services are resolved lazily (only when accessed)
|
|
7
|
-
* 2. Service registration is deduplicated
|
|
8
|
-
* 3. Cached service instances are reused
|
|
9
|
-
*/
|
|
10
|
-
import type { Logger } from '@geekmidas/logger';
|
|
11
|
-
import type {
|
|
12
|
-
Service,
|
|
13
|
-
ServiceDiscovery,
|
|
14
|
-
ServiceRecord,
|
|
15
|
-
} from '@geekmidas/services';
|
|
16
|
-
import type { StandardSchemaV1 } from '@standard-schema/spec';
|
|
17
|
-
import type { Hono } from 'hono';
|
|
18
|
-
import { validator } from 'hono/validator';
|
|
19
|
-
import {
|
|
20
|
-
Endpoint,
|
|
21
|
-
type EndpointSchemas,
|
|
22
|
-
ResponseBuilder,
|
|
23
|
-
} from '../../endpoints/Endpoint';
|
|
24
|
-
import { parseHonoQuery } from '../../endpoints/parseHonoQuery';
|
|
25
|
-
import type { HttpMethod, LowerHttpMethod } from '../../types';
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Lazy service resolver that caches service instances
|
|
29
|
-
* and deduplicates registration calls
|
|
30
|
-
*/
|
|
31
|
-
class LazyServiceResolver<TServices extends Service[]> {
|
|
32
|
-
private cache = new Map<string, any>();
|
|
33
|
-
private pendingRegistrations = new Map<string, Promise<any>>();
|
|
34
|
-
|
|
35
|
-
constructor(
|
|
36
|
-
private serviceDiscovery: ServiceDiscovery<
|
|
37
|
-
ServiceRecord<TServices>,
|
|
38
|
-
Logger
|
|
39
|
-
>,
|
|
40
|
-
private availableServices: TServices,
|
|
41
|
-
) {}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Get a service by name, registering it lazily if needed
|
|
45
|
-
*/
|
|
46
|
-
async get<TName extends TServices[number]['serviceName']>(
|
|
47
|
-
serviceName: TName,
|
|
48
|
-
): Promise<any> {
|
|
49
|
-
// Return cached instance
|
|
50
|
-
if (this.cache.has(serviceName)) {
|
|
51
|
-
return this.cache.get(serviceName);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// Wait for pending registration
|
|
55
|
-
if (this.pendingRegistrations.has(serviceName)) {
|
|
56
|
-
return this.pendingRegistrations.get(serviceName);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// Find and register service
|
|
60
|
-
const service = this.availableServices.find(
|
|
61
|
-
(s) => s.serviceName === serviceName,
|
|
62
|
-
);
|
|
63
|
-
if (!service) {
|
|
64
|
-
throw new Error(
|
|
65
|
-
`Service '${serviceName}' not found in available services`,
|
|
66
|
-
);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
const registrationPromise = this.serviceDiscovery
|
|
70
|
-
.register([service])
|
|
71
|
-
.then((result) => {
|
|
72
|
-
const instance = result[serviceName as keyof typeof result];
|
|
73
|
-
this.cache.set(serviceName, instance);
|
|
74
|
-
this.pendingRegistrations.delete(serviceName);
|
|
75
|
-
return instance;
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
this.pendingRegistrations.set(serviceName, registrationPromise);
|
|
79
|
-
return registrationPromise;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Preload multiple services at once (batch registration)
|
|
84
|
-
*/
|
|
85
|
-
async preload(serviceNames: string[]): Promise<Record<string, any>> {
|
|
86
|
-
const toLoad = serviceNames.filter(
|
|
87
|
-
(name) => !this.cache.has(name) && !this.pendingRegistrations.has(name),
|
|
88
|
-
);
|
|
89
|
-
|
|
90
|
-
if (toLoad.length === 0) {
|
|
91
|
-
// All cached, return from cache
|
|
92
|
-
const result: Record<string, any> = {};
|
|
93
|
-
for (const name of serviceNames) {
|
|
94
|
-
result[name] = this.cache.get(name);
|
|
95
|
-
}
|
|
96
|
-
return result;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
// Find services to register
|
|
100
|
-
const servicesToRegister = this.availableServices.filter((s) =>
|
|
101
|
-
toLoad.includes(s.serviceName),
|
|
102
|
-
);
|
|
103
|
-
|
|
104
|
-
if (servicesToRegister.length > 0) {
|
|
105
|
-
const registered =
|
|
106
|
-
await this.serviceDiscovery.register(servicesToRegister);
|
|
107
|
-
|
|
108
|
-
// Cache all registered services
|
|
109
|
-
for (const [name, instance] of Object.entries(registered)) {
|
|
110
|
-
this.cache.set(name, instance);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
// Return requested services from cache
|
|
115
|
-
const result: Record<string, any> = {};
|
|
116
|
-
for (const name of serviceNames) {
|
|
117
|
-
result[name] = this.cache.get(name);
|
|
118
|
-
}
|
|
119
|
-
return result;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* Create a proxy that lazily resolves services on access
|
|
124
|
-
*/
|
|
125
|
-
createProxy(): Record<string, any> {
|
|
126
|
-
const resolver = this;
|
|
127
|
-
return new Proxy(
|
|
128
|
-
{},
|
|
129
|
-
{
|
|
130
|
-
get(_, prop: string) {
|
|
131
|
-
// Synchronous access returns a promise
|
|
132
|
-
// Handler should await services.serviceName
|
|
133
|
-
return resolver.get(prop);
|
|
134
|
-
},
|
|
135
|
-
},
|
|
136
|
-
);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* Optimized HonoEndpoint adaptor with lazy service resolution
|
|
142
|
-
*/
|
|
143
|
-
export class OptimizedHonoEndpoint {
|
|
144
|
-
/**
|
|
145
|
-
* Add routes with lazy service resolution
|
|
146
|
-
*/
|
|
147
|
-
static addRoutes<
|
|
148
|
-
TServices extends Service[] = [],
|
|
149
|
-
TLogger extends Logger = Logger,
|
|
150
|
-
>(
|
|
151
|
-
endpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[],
|
|
152
|
-
serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>, TLogger>,
|
|
153
|
-
app: Hono,
|
|
154
|
-
): void {
|
|
155
|
-
// Sort endpoints (static routes before dynamic)
|
|
156
|
-
const sortedEndpoints = [...endpoints].sort((a, b) => {
|
|
157
|
-
const aHasDynamic = a.route.includes(':');
|
|
158
|
-
const bHasDynamic = b.route.includes(':');
|
|
159
|
-
if (!aHasDynamic && bHasDynamic) return -1;
|
|
160
|
-
if (aHasDynamic && !bHasDynamic) return 1;
|
|
161
|
-
return a.route.localeCompare(b.route);
|
|
162
|
-
});
|
|
163
|
-
|
|
164
|
-
for (const endpoint of sortedEndpoints) {
|
|
165
|
-
OptimizedHonoEndpoint.addRoute(endpoint, serviceDiscovery, app);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* Add a single route with optimized handler
|
|
171
|
-
*/
|
|
172
|
-
static addRoute<
|
|
173
|
-
TRoute extends string,
|
|
174
|
-
TMethod extends HttpMethod,
|
|
175
|
-
TInput extends EndpointSchemas = {},
|
|
176
|
-
TOutSchema extends StandardSchemaV1 | undefined = undefined,
|
|
177
|
-
TServices extends Service[] = [],
|
|
178
|
-
TLogger extends Logger = Logger,
|
|
179
|
-
>(
|
|
180
|
-
endpoint: Endpoint<
|
|
181
|
-
TRoute,
|
|
182
|
-
TMethod,
|
|
183
|
-
TInput,
|
|
184
|
-
TOutSchema,
|
|
185
|
-
TServices,
|
|
186
|
-
TLogger,
|
|
187
|
-
any,
|
|
188
|
-
any,
|
|
189
|
-
any,
|
|
190
|
-
any,
|
|
191
|
-
any,
|
|
192
|
-
any,
|
|
193
|
-
any,
|
|
194
|
-
any
|
|
195
|
-
>,
|
|
196
|
-
serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>, TLogger>,
|
|
197
|
-
app: Hono,
|
|
198
|
-
): void {
|
|
199
|
-
const { route } = endpoint;
|
|
200
|
-
const method = endpoint.method.toLowerCase() as LowerHttpMethod<TMethod>;
|
|
201
|
-
|
|
202
|
-
// Pre-analyze endpoint features at registration time
|
|
203
|
-
const hasServices = endpoint.services.length > 0;
|
|
204
|
-
const hasDatabaseService = !!endpoint.databaseService;
|
|
205
|
-
const hasAuthorizer = endpoint.authorizer !== 'none';
|
|
206
|
-
const serviceNames = endpoint.services.map((s) => s.serviceName);
|
|
207
|
-
|
|
208
|
-
// Create service resolver once per route (shared across requests)
|
|
209
|
-
const serviceResolver = new LazyServiceResolver(
|
|
210
|
-
serviceDiscovery,
|
|
211
|
-
endpoint.services,
|
|
212
|
-
);
|
|
213
|
-
|
|
214
|
-
// Register route with optimized handler
|
|
215
|
-
app[method](
|
|
216
|
-
route,
|
|
217
|
-
// Validators
|
|
218
|
-
validator('json', async (value, c) => {
|
|
219
|
-
if (!endpoint.input?.body) return undefined;
|
|
220
|
-
const parsed = await Endpoint.validate(endpoint.input.body, value);
|
|
221
|
-
if (parsed.issues) return c.json(parsed.issues, 422);
|
|
222
|
-
return parsed.value;
|
|
223
|
-
}),
|
|
224
|
-
validator('query', async (_, c) => {
|
|
225
|
-
if (!endpoint.input?.query) return undefined;
|
|
226
|
-
const parsedQuery = parseHonoQuery(c);
|
|
227
|
-
const parsed = await Endpoint.validate(
|
|
228
|
-
endpoint.input.query,
|
|
229
|
-
parsedQuery,
|
|
230
|
-
);
|
|
231
|
-
if (parsed.issues) return c.json(parsed.issues, 422);
|
|
232
|
-
return parsed.value;
|
|
233
|
-
}),
|
|
234
|
-
validator('param', async (params, c) => {
|
|
235
|
-
if (!endpoint.input?.params) return undefined;
|
|
236
|
-
const parsed = await Endpoint.validate(endpoint.input.params, params);
|
|
237
|
-
if (parsed.issues) return c.json(parsed.issues, 422);
|
|
238
|
-
return parsed.value;
|
|
239
|
-
}),
|
|
240
|
-
// Main handler
|
|
241
|
-
async (c) => {
|
|
242
|
-
try {
|
|
243
|
-
// Only resolve services if needed
|
|
244
|
-
const services = hasServices
|
|
245
|
-
? await serviceResolver.preload(serviceNames)
|
|
246
|
-
: ({} as any);
|
|
247
|
-
|
|
248
|
-
// Resolve database service only if configured
|
|
249
|
-
const db = hasDatabaseService
|
|
250
|
-
? await serviceResolver.get(endpoint.databaseService?.serviceName)
|
|
251
|
-
: undefined;
|
|
252
|
-
|
|
253
|
-
// Only check authorization if configured
|
|
254
|
-
if (hasAuthorizer) {
|
|
255
|
-
const headerValues = c.req.header();
|
|
256
|
-
const header = Endpoint.createHeaders(headerValues);
|
|
257
|
-
const cookie = Endpoint.createCookies(headerValues.cookie);
|
|
258
|
-
|
|
259
|
-
const session = await endpoint.getSession({
|
|
260
|
-
services,
|
|
261
|
-
logger: endpoint.logger,
|
|
262
|
-
header,
|
|
263
|
-
cookie,
|
|
264
|
-
...(db !== undefined && { db }),
|
|
265
|
-
} as any);
|
|
266
|
-
|
|
267
|
-
const isAuthorized = await endpoint.authorize({
|
|
268
|
-
header,
|
|
269
|
-
cookie,
|
|
270
|
-
services,
|
|
271
|
-
logger: endpoint.logger,
|
|
272
|
-
session,
|
|
273
|
-
});
|
|
274
|
-
|
|
275
|
-
if (!isAuthorized) {
|
|
276
|
-
return c.json({ error: 'Unauthorized' }, 401);
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
// Execute handler
|
|
281
|
-
const responseBuilder = new ResponseBuilder();
|
|
282
|
-
const response = await endpoint.handler(
|
|
283
|
-
{
|
|
284
|
-
services,
|
|
285
|
-
logger: endpoint.logger,
|
|
286
|
-
body: c.req.valid('json'),
|
|
287
|
-
query: c.req.valid('query'),
|
|
288
|
-
params: c.req.valid('param'),
|
|
289
|
-
session: undefined,
|
|
290
|
-
header: Endpoint.createHeaders(c.req.header()),
|
|
291
|
-
cookie: Endpoint.createCookies(c.req.header().cookie),
|
|
292
|
-
auditor: undefined,
|
|
293
|
-
db,
|
|
294
|
-
} as any,
|
|
295
|
-
responseBuilder,
|
|
296
|
-
);
|
|
297
|
-
|
|
298
|
-
// Build response
|
|
299
|
-
let data = response;
|
|
300
|
-
let metadata = responseBuilder.getMetadata();
|
|
301
|
-
|
|
302
|
-
if (Endpoint.hasMetadata(response)) {
|
|
303
|
-
data = response.data;
|
|
304
|
-
metadata = response.metadata;
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
const output = endpoint.outputSchema
|
|
308
|
-
? await endpoint.parseOutput(data)
|
|
309
|
-
: data;
|
|
310
|
-
|
|
311
|
-
const status = (metadata.status ?? endpoint.status) as any;
|
|
312
|
-
return c.json(output, status);
|
|
313
|
-
} catch (_error) {
|
|
314
|
-
return c.json({ error: 'Internal Server Error' }, 500);
|
|
315
|
-
}
|
|
316
|
-
},
|
|
317
|
-
);
|
|
318
|
-
}
|
|
319
|
-
}
|