stratal 0.0.13 → 0.0.15
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/dist/application-Du0d8O_e.d.mts +116 -0
- package/dist/application-Du0d8O_e.d.mts.map +1 -0
- package/dist/base-email.provider-CNwsPbwm.mjs +42 -0
- package/dist/base-email.provider-CNwsPbwm.mjs.map +1 -0
- package/dist/bin/cloudflare-workers-loader.mjs +34 -0
- package/dist/bin/cloudflare-workers-loader.mjs.map +1 -0
- package/dist/bin/quarry.mjs +164 -0
- package/dist/bin/quarry.mjs.map +1 -0
- package/dist/cache/index.d.mts +219 -0
- package/dist/cache/index.d.mts.map +1 -0
- package/dist/cache/index.mjs +251 -0
- package/dist/cache/index.mjs.map +1 -0
- package/dist/chunk-D1SwGrFN.mjs +27 -0
- package/dist/command-DG_u5ob2.mjs +192 -0
- package/dist/command-DG_u5ob2.mjs.map +1 -0
- package/dist/command-DcebcSrL.d.mts +120 -0
- package/dist/command-DcebcSrL.d.mts.map +1 -0
- package/dist/config/index.d.mts +273 -0
- package/dist/config/index.d.mts.map +1 -0
- package/dist/config/index.mjs +239 -0
- package/dist/config/index.mjs.map +1 -0
- package/dist/cron/index.d.mts +128 -0
- package/dist/cron/index.d.mts.map +1 -0
- package/dist/cron/index.mjs +5 -0
- package/dist/cron-manager-BRh86QCS.mjs +107 -0
- package/dist/cron-manager-BRh86QCS.mjs.map +1 -0
- package/dist/decorate-D5j-d9_z.mjs +171 -0
- package/dist/decorate-D5j-d9_z.mjs.map +1 -0
- package/dist/di/index.d.mts +2 -0
- package/dist/di/index.mjs +4 -0
- package/dist/email/index.d.mts +532 -0
- package/dist/email/index.d.mts.map +1 -0
- package/dist/email/index.mjs +480 -0
- package/dist/email/index.mjs.map +1 -0
- package/dist/en-uVIaxFXR.mjs +319 -0
- package/dist/en-uVIaxFXR.mjs.map +1 -0
- package/dist/errors/index.d.mts +2 -0
- package/dist/errors/index.mjs +4 -0
- package/dist/errors-CtCi1wn6.mjs +707 -0
- package/dist/errors-CtCi1wn6.mjs.map +1 -0
- package/dist/events/index.d.mts +210 -0
- package/dist/events/index.d.mts.map +1 -0
- package/dist/events/index.mjs +4 -0
- package/dist/events-CXl-o1Ad.mjs +191 -0
- package/dist/events-CXl-o1Ad.mjs.map +1 -0
- package/dist/gateway-context-90CQEQDR.mjs +226 -0
- package/dist/gateway-context-90CQEQDR.mjs.map +1 -0
- package/dist/guards/index.d.mts +172 -0
- package/dist/guards/index.d.mts.map +1 -0
- package/dist/guards/index.mjs +2 -0
- package/dist/guards-DMbsAxSX.mjs +151 -0
- package/dist/guards-DMbsAxSX.mjs.map +1 -0
- package/dist/i18n/index.d.mts +3 -0
- package/dist/i18n/index.mjs +15 -0
- package/dist/i18n/messages/en/index.d.mts +2 -0
- package/dist/i18n/messages/en/index.mjs +2 -0
- package/dist/i18n/validation/index.d.mts +4 -0
- package/dist/i18n/validation/index.mjs +3 -0
- package/dist/i18n.module-qNrpIVts.mjs +1791 -0
- package/dist/i18n.module-qNrpIVts.mjs.map +1 -0
- package/dist/index-CSuHOJc3.d.mts +319 -0
- package/dist/index-CSuHOJc3.d.mts.map +1 -0
- package/dist/index-Cfkie8JM.d.mts +263 -0
- package/dist/index-Cfkie8JM.d.mts.map +1 -0
- package/dist/index-CpAN9ENH.d.mts +185 -0
- package/dist/index-CpAN9ENH.d.mts.map +1 -0
- package/dist/index-D69rxo8H.d.mts +2616 -0
- package/dist/index-D69rxo8H.d.mts.map +1 -0
- package/dist/index-H-Su81aK.d.mts +632 -0
- package/dist/index-H-Su81aK.d.mts.map +1 -0
- package/dist/index.d.mts +41 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +20 -0
- package/dist/is-command-MZDCH-0T.mjs +14 -0
- package/dist/is-command-MZDCH-0T.mjs.map +1 -0
- package/dist/is-seeder-BN9Ej1r7.mjs +28 -0
- package/dist/is-seeder-BN9Ej1r7.mjs.map +1 -0
- package/dist/logger/index.d.mts +2 -0
- package/dist/logger/index.mjs +3 -0
- package/dist/logger-BR1-s1Um.mjs +252 -0
- package/dist/logger-BR1-s1Um.mjs.map +1 -0
- package/dist/middleware/index.d.mts +2 -0
- package/dist/middleware/index.mjs +6 -0
- package/dist/middleware-iRhNjsPH.mjs +362 -0
- package/dist/middleware-iRhNjsPH.mjs.map +1 -0
- package/dist/module/index.d.mts +148 -0
- package/dist/module/index.d.mts.map +1 -0
- package/dist/module/index.mjs +11 -0
- package/dist/module-BH7t7BGG.mjs +370 -0
- package/dist/module-BH7t7BGG.mjs.map +1 -0
- package/dist/openapi/index.d.mts +202 -0
- package/dist/openapi/index.d.mts.map +1 -0
- package/dist/openapi/index.mjs +15 -0
- package/dist/quarry/index.d.mts +112 -0
- package/dist/quarry/index.d.mts.map +1 -0
- package/dist/quarry/index.mjs +6 -0
- package/dist/quarry-registry-BPmKVjhG.mjs +302 -0
- package/dist/quarry-registry-BPmKVjhG.mjs.map +1 -0
- package/dist/queue/index.d.mts +2 -0
- package/dist/queue/index.mjs +84 -0
- package/dist/queue/index.mjs.map +1 -0
- package/dist/queue.module-BdXWUvIM.mjs +403 -0
- package/dist/queue.module-BdXWUvIM.mjs.map +1 -0
- package/dist/resend.provider-CQT5be5E.mjs +70 -0
- package/dist/resend.provider-CQT5be5E.mjs.map +1 -0
- package/dist/router/index.d.mts +2 -0
- package/dist/router/index.mjs +15 -0
- package/dist/router-context-BLn4PrRG.mjs +264 -0
- package/dist/router-context-BLn4PrRG.mjs.map +1 -0
- package/dist/seeder/index.d.mts +77 -0
- package/dist/seeder/index.d.mts.map +1 -0
- package/dist/seeder/index.mjs +7 -0
- package/dist/seeder-DatfjJvU.mjs +132 -0
- package/dist/seeder-DatfjJvU.mjs.map +1 -0
- package/dist/smtp.provider-Cj7BUFbJ.mjs +78 -0
- package/dist/smtp.provider-Cj7BUFbJ.mjs.map +1 -0
- package/dist/storage/index.d.mts +743 -0
- package/dist/storage/index.d.mts.map +1 -0
- package/dist/storage/index.mjs +13 -0
- package/dist/storage-BtcfgibD.mjs +787 -0
- package/dist/storage-BtcfgibD.mjs.map +1 -0
- package/dist/stratal-Cm0Yy8v4.mjs +305 -0
- package/dist/stratal-Cm0Yy8v4.mjs.map +1 -0
- package/dist/{types.d.ts → types-Cu4jkeiH.d.mts} +5 -2
- package/dist/types-Cu4jkeiH.d.mts.map +1 -0
- package/dist/types-N84Ak6YT.d.mts +64 -0
- package/dist/types-N84Ak6YT.d.mts.map +1 -0
- package/dist/usage-generator-BTZDk5zx.mjs +75 -0
- package/dist/usage-generator-BTZDk5zx.mjs.map +1 -0
- package/dist/validation-Dbt-snjx.mjs +194 -0
- package/dist/validation-Dbt-snjx.mjs.map +1 -0
- package/dist/websocket/index.d.mts +168 -0
- package/dist/websocket/index.d.mts.map +1 -0
- package/dist/websocket/index.mjs +6 -0
- package/dist/workers/index.d.mts +90 -0
- package/dist/workers/index.d.mts.map +1 -0
- package/dist/workers/index.mjs +122 -0
- package/dist/workers/index.mjs.map +1 -0
- package/package.json +98 -28
- package/dist/application.d.ts +0 -101
- package/dist/application.d.ts.map +0 -1
- package/dist/application.js +0 -230
- package/dist/application.js.map +0 -1
- package/dist/cache/cache.module.d.ts +0 -14
- package/dist/cache/cache.module.d.ts.map +0 -1
- package/dist/cache/cache.module.js +0 -32
- package/dist/cache/cache.module.js.map +0 -1
- package/dist/cache/cache.tokens.d.ts +0 -5
- package/dist/cache/cache.tokens.d.ts.map +0 -1
- package/dist/cache/cache.tokens.js +0 -4
- package/dist/cache/cache.tokens.js.map +0 -1
- package/dist/cache/errors/cache-delete.error.d.ts +0 -11
- package/dist/cache/errors/cache-delete.error.d.ts.map +0 -1
- package/dist/cache/errors/cache-delete.error.js +0 -14
- package/dist/cache/errors/cache-delete.error.js.map +0 -1
- package/dist/cache/errors/cache-get.error.d.ts +0 -11
- package/dist/cache/errors/cache-get.error.d.ts.map +0 -1
- package/dist/cache/errors/cache-get.error.js +0 -14
- package/dist/cache/errors/cache-get.error.js.map +0 -1
- package/dist/cache/errors/cache-list.error.d.ts +0 -10
- package/dist/cache/errors/cache-list.error.d.ts.map +0 -1
- package/dist/cache/errors/cache-list.error.js +0 -13
- package/dist/cache/errors/cache-list.error.js.map +0 -1
- package/dist/cache/errors/cache-put.error.d.ts +0 -11
- package/dist/cache/errors/cache-put.error.d.ts.map +0 -1
- package/dist/cache/errors/cache-put.error.js +0 -14
- package/dist/cache/errors/cache-put.error.js.map +0 -1
- package/dist/cache/errors/index.d.ts +0 -5
- package/dist/cache/errors/index.d.ts.map +0 -1
- package/dist/cache/errors/index.js +0 -5
- package/dist/cache/errors/index.js.map +0 -1
- package/dist/cache/index.d.ts +0 -5
- package/dist/cache/index.d.ts.map +0 -1
- package/dist/cache/index.js +0 -5
- package/dist/cache/index.js.map +0 -1
- package/dist/cache/services/cache.service.d.ts +0 -152
- package/dist/cache/services/cache.service.d.ts.map +0 -1
- package/dist/cache/services/cache.service.js +0 -223
- package/dist/cache/services/cache.service.js.map +0 -1
- package/dist/cache/services/index.d.ts +0 -2
- package/dist/cache/services/index.d.ts.map +0 -1
- package/dist/cache/services/index.js +0 -2
- package/dist/cache/services/index.js.map +0 -1
- package/dist/config/config.module.d.ts +0 -79
- package/dist/config/config.module.d.ts.map +0 -1
- package/dist/config/config.module.js +0 -121
- package/dist/config/config.module.js.map +0 -1
- package/dist/config/config.tokens.d.ts +0 -4
- package/dist/config/config.tokens.d.ts.map +0 -1
- package/dist/config/config.tokens.js +0 -4
- package/dist/config/config.tokens.js.map +0 -1
- package/dist/config/config.types.d.ts +0 -68
- package/dist/config/config.types.d.ts.map +0 -1
- package/dist/config/config.types.js +0 -9
- package/dist/config/config.types.js.map +0 -1
- package/dist/config/errors/config-module-not-initialized.error.d.ts +0 -10
- package/dist/config/errors/config-module-not-initialized.error.d.ts.map +0 -1
- package/dist/config/errors/config-module-not-initialized.error.js +0 -12
- package/dist/config/errors/config-module-not-initialized.error.js.map +0 -1
- package/dist/config/errors/config-not-initialized.error.d.ts +0 -12
- package/dist/config/errors/config-not-initialized.error.d.ts.map +0 -1
- package/dist/config/errors/config-not-initialized.error.js +0 -15
- package/dist/config/errors/config-not-initialized.error.js.map +0 -1
- package/dist/config/errors/index.d.ts +0 -3
- package/dist/config/errors/index.d.ts.map +0 -1
- package/dist/config/errors/index.js +0 -3
- package/dist/config/errors/index.js.map +0 -1
- package/dist/config/index.d.ts +0 -7
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -9
- package/dist/config/index.js.map +0 -1
- package/dist/config/register-as.d.ts +0 -62
- package/dist/config/register-as.d.ts.map +0 -1
- package/dist/config/register-as.js +0 -48
- package/dist/config/register-as.js.map +0 -1
- package/dist/config/services/config.service.d.ts +0 -59
- package/dist/config/services/config.service.d.ts.map +0 -1
- package/dist/config/services/config.service.js +0 -140
- package/dist/config/services/config.service.js.map +0 -1
- package/dist/cron/cron-job.d.ts +0 -54
- package/dist/cron/cron-job.d.ts.map +0 -1
- package/dist/cron/cron-job.js +0 -2
- package/dist/cron/cron-job.js.map +0 -1
- package/dist/cron/cron-manager.d.ts +0 -60
- package/dist/cron/cron-manager.d.ts.map +0 -1
- package/dist/cron/cron-manager.js +0 -120
- package/dist/cron/cron-manager.js.map +0 -1
- package/dist/cron/errors/cron-execution.error.d.ts +0 -10
- package/dist/cron/errors/cron-execution.error.d.ts.map +0 -1
- package/dist/cron/errors/cron-execution.error.js +0 -17
- package/dist/cron/errors/cron-execution.error.js.map +0 -1
- package/dist/cron/index.d.ts +0 -4
- package/dist/cron/index.d.ts.map +0 -1
- package/dist/cron/index.js +0 -3
- package/dist/cron/index.js.map +0 -1
- package/dist/di/conditional-binding-builder.d.ts +0 -93
- package/dist/di/conditional-binding-builder.d.ts.map +0 -1
- package/dist/di/conditional-binding-builder.js +0 -115
- package/dist/di/conditional-binding-builder.js.map +0 -1
- package/dist/di/container.d.ts +0 -131
- package/dist/di/container.d.ts.map +0 -1
- package/dist/di/container.js +0 -177
- package/dist/di/container.js.map +0 -1
- package/dist/di/decorators/inject-param.decorator.d.ts +0 -67
- package/dist/di/decorators/inject-param.decorator.d.ts.map +0 -1
- package/dist/di/decorators/inject-param.decorator.js +0 -53
- package/dist/di/decorators/inject-param.decorator.js.map +0 -1
- package/dist/di/decorators.d.ts +0 -57
- package/dist/di/decorators.d.ts.map +0 -1
- package/dist/di/decorators.js +0 -74
- package/dist/di/decorators.js.map +0 -1
- package/dist/di/errors/conditional-binding-fallback.error.d.ts +0 -16
- package/dist/di/errors/conditional-binding-fallback.error.d.ts.map +0 -1
- package/dist/di/errors/conditional-binding-fallback.error.js +0 -19
- package/dist/di/errors/conditional-binding-fallback.error.js.map +0 -1
- package/dist/di/errors/index.d.ts +0 -3
- package/dist/di/errors/index.d.ts.map +0 -1
- package/dist/di/errors/index.js +0 -3
- package/dist/di/errors/index.js.map +0 -1
- package/dist/di/errors/request-scope-operation-not-allowed.error.d.ts +0 -11
- package/dist/di/errors/request-scope-operation-not-allowed.error.d.ts.map +0 -1
- package/dist/di/errors/request-scope-operation-not-allowed.error.js +0 -14
- package/dist/di/errors/request-scope-operation-not-allowed.error.js.map +0 -1
- package/dist/di/index.d.ts +0 -12
- package/dist/di/index.d.ts.map +0 -1
- package/dist/di/index.js +0 -10
- package/dist/di/index.js.map +0 -1
- package/dist/di/tokens.d.ts +0 -26
- package/dist/di/tokens.d.ts.map +0 -1
- package/dist/di/tokens.js +0 -29
- package/dist/di/tokens.js.map +0 -1
- package/dist/di/types.d.ts +0 -56
- package/dist/di/types.d.ts.map +0 -1
- package/dist/di/types.js +0 -34
- package/dist/di/types.js.map +0 -1
- package/dist/email/consumers/email.consumer.d.ts +0 -43
- package/dist/email/consumers/email.consumer.d.ts.map +0 -1
- package/dist/email/consumers/email.consumer.js +0 -129
- package/dist/email/consumers/email.consumer.js.map +0 -1
- package/dist/email/consumers/index.d.ts +0 -2
- package/dist/email/consumers/index.d.ts.map +0 -1
- package/dist/email/consumers/index.js +0 -2
- package/dist/email/consumers/index.js.map +0 -1
- package/dist/email/contracts/email-attachment.d.ts +0 -61
- package/dist/email/contracts/email-attachment.d.ts.map +0 -1
- package/dist/email/contracts/email-attachment.js +0 -58
- package/dist/email/contracts/email-attachment.js.map +0 -1
- package/dist/email/contracts/email-message.contract.d.ts +0 -58
- package/dist/email/contracts/email-message.contract.d.ts.map +0 -1
- package/dist/email/contracts/email-message.contract.js +0 -62
- package/dist/email/contracts/email-message.contract.js.map +0 -1
- package/dist/email/contracts/index.d.ts +0 -4
- package/dist/email/contracts/index.d.ts.map +0 -1
- package/dist/email/contracts/index.js +0 -4
- package/dist/email/contracts/index.js.map +0 -1
- package/dist/email/contracts/send-email.input.d.ts +0 -72
- package/dist/email/contracts/send-email.input.d.ts.map +0 -1
- package/dist/email/contracts/send-email.input.js +0 -28
- package/dist/email/contracts/send-email.input.js.map +0 -1
- package/dist/email/email.module.d.ts +0 -122
- package/dist/email/email.module.d.ts.map +0 -1
- package/dist/email/email.module.js +0 -129
- package/dist/email/email.module.js.map +0 -1
- package/dist/email/email.tokens.d.ts +0 -33
- package/dist/email/email.tokens.d.ts.map +0 -1
- package/dist/email/email.tokens.js +0 -33
- package/dist/email/email.tokens.js.map +0 -1
- package/dist/email/errors/email-provider-not-supported.error.d.ts +0 -13
- package/dist/email/errors/email-provider-not-supported.error.d.ts.map +0 -1
- package/dist/email/errors/email-provider-not-supported.error.js +0 -15
- package/dist/email/errors/email-provider-not-supported.error.js.map +0 -1
- package/dist/email/errors/email-resend-api-failed.error.d.ts +0 -13
- package/dist/email/errors/email-resend-api-failed.error.d.ts.map +0 -1
- package/dist/email/errors/email-resend-api-failed.error.js +0 -15
- package/dist/email/errors/email-resend-api-failed.error.js.map +0 -1
- package/dist/email/errors/email-smtp-connection-failed.error.d.ts +0 -13
- package/dist/email/errors/email-smtp-connection-failed.error.d.ts.map +0 -1
- package/dist/email/errors/email-smtp-connection-failed.error.js +0 -15
- package/dist/email/errors/email-smtp-connection-failed.error.js.map +0 -1
- package/dist/email/errors/index.d.ts +0 -7
- package/dist/email/errors/index.d.ts.map +0 -1
- package/dist/email/errors/index.js +0 -7
- package/dist/email/errors/index.js.map +0 -1
- package/dist/email/errors/resend-api-key-missing.error.d.ts +0 -13
- package/dist/email/errors/resend-api-key-missing.error.d.ts.map +0 -1
- package/dist/email/errors/resend-api-key-missing.error.js +0 -15
- package/dist/email/errors/resend-api-key-missing.error.js.map +0 -1
- package/dist/email/errors/smtp-configuration-missing.error.d.ts +0 -13
- package/dist/email/errors/smtp-configuration-missing.error.d.ts.map +0 -1
- package/dist/email/errors/smtp-configuration-missing.error.js +0 -15
- package/dist/email/errors/smtp-configuration-missing.error.js.map +0 -1
- package/dist/email/errors/smtp-host-missing.error.d.ts +0 -13
- package/dist/email/errors/smtp-host-missing.error.d.ts.map +0 -1
- package/dist/email/errors/smtp-host-missing.error.js +0 -15
- package/dist/email/errors/smtp-host-missing.error.js.map +0 -1
- package/dist/email/index.d.ts +0 -6
- package/dist/email/index.d.ts.map +0 -1
- package/dist/email/index.js +0 -8
- package/dist/email/index.js.map +0 -1
- package/dist/email/providers/base-email.provider.d.ts +0 -22
- package/dist/email/providers/base-email.provider.d.ts.map +0 -1
- package/dist/email/providers/base-email.provider.js +0 -43
- package/dist/email/providers/base-email.provider.js.map +0 -1
- package/dist/email/providers/email-provider.interface.d.ts +0 -66
- package/dist/email/providers/email-provider.interface.d.ts.map +0 -1
- package/dist/email/providers/email-provider.interface.js +0 -2
- package/dist/email/providers/email-provider.interface.js.map +0 -1
- package/dist/email/providers/index.d.ts +0 -5
- package/dist/email/providers/index.d.ts.map +0 -1
- package/dist/email/providers/index.js +0 -5
- package/dist/email/providers/index.js.map +0 -1
- package/dist/email/providers/resend.provider.d.ts +0 -26
- package/dist/email/providers/resend.provider.d.ts.map +0 -1
- package/dist/email/providers/resend.provider.js +0 -84
- package/dist/email/providers/resend.provider.js.map +0 -1
- package/dist/email/providers/smtp.provider.d.ts +0 -25
- package/dist/email/providers/smtp.provider.d.ts.map +0 -1
- package/dist/email/providers/smtp.provider.js +0 -86
- package/dist/email/providers/smtp.provider.js.map +0 -1
- package/dist/email/services/email-provider-factory.d.ts +0 -24
- package/dist/email/services/email-provider-factory.d.ts.map +0 -1
- package/dist/email/services/email-provider-factory.js +0 -59
- package/dist/email/services/email-provider-factory.js.map +0 -1
- package/dist/email/services/email.service.d.ts +0 -51
- package/dist/email/services/email.service.d.ts.map +0 -1
- package/dist/email/services/email.service.js +0 -75
- package/dist/email/services/email.service.js.map +0 -1
- package/dist/email/services/index.d.ts +0 -3
- package/dist/email/services/index.d.ts.map +0 -1
- package/dist/email/services/index.js +0 -3
- package/dist/email/services/index.js.map +0 -1
- package/dist/env.d.ts +0 -21
- package/dist/env.d.ts.map +0 -1
- package/dist/env.js +0 -2
- package/dist/env.js.map +0 -1
- package/dist/errors/application-error.d.ts +0 -87
- package/dist/errors/application-error.d.ts.map +0 -1
- package/dist/errors/application-error.js +0 -130
- package/dist/errors/application-error.js.map +0 -1
- package/dist/errors/error-codes.d.ts +0 -202
- package/dist/errors/error-codes.d.ts.map +0 -1
- package/dist/errors/error-codes.js +0 -184
- package/dist/errors/error-codes.js.map +0 -1
- package/dist/errors/error-response.d.ts +0 -32
- package/dist/errors/error-response.d.ts.map +0 -1
- package/dist/errors/error-response.js +0 -14
- package/dist/errors/error-response.js.map +0 -1
- package/dist/errors/get-http-status.d.ts +0 -12
- package/dist/errors/get-http-status.d.ts.map +0 -1
- package/dist/errors/get-http-status.js +0 -62
- package/dist/errors/get-http-status.js.map +0 -1
- package/dist/errors/global-error-handler.d.ts +0 -81
- package/dist/errors/global-error-handler.d.ts.map +0 -1
- package/dist/errors/global-error-handler.js +0 -176
- package/dist/errors/global-error-handler.js.map +0 -1
- package/dist/errors/index.d.ts +0 -10
- package/dist/errors/index.d.ts.map +0 -1
- package/dist/errors/index.js +0 -10
- package/dist/errors/index.js.map +0 -1
- package/dist/errors/internal-error.d.ts +0 -16
- package/dist/errors/internal-error.d.ts.map +0 -1
- package/dist/errors/internal-error.js +0 -19
- package/dist/errors/internal-error.js.map +0 -1
- package/dist/errors/is-application-error.d.ts +0 -9
- package/dist/errors/is-application-error.d.ts.map +0 -1
- package/dist/errors/is-application-error.js +0 -11
- package/dist/errors/is-application-error.js.map +0 -1
- package/dist/errors/request-container-not-initialized.error.d.ts +0 -12
- package/dist/errors/request-container-not-initialized.error.d.ts.map +0 -1
- package/dist/errors/request-container-not-initialized.error.js +0 -15
- package/dist/errors/request-container-not-initialized.error.js.map +0 -1
- package/dist/errors/stratal-not-initialized.error.d.ts +0 -11
- package/dist/errors/stratal-not-initialized.error.d.ts.map +0 -1
- package/dist/errors/stratal-not-initialized.error.js +0 -14
- package/dist/errors/stratal-not-initialized.error.js.map +0 -1
- package/dist/events/constants.d.ts +0 -11
- package/dist/events/constants.d.ts.map +0 -1
- package/dist/events/constants.js +0 -11
- package/dist/events/constants.js.map +0 -1
- package/dist/events/decorators/index.d.ts +0 -3
- package/dist/events/decorators/index.d.ts.map +0 -1
- package/dist/events/decorators/index.js +0 -3
- package/dist/events/decorators/index.js.map +0 -1
- package/dist/events/decorators/listener.decorator.d.ts +0 -24
- package/dist/events/decorators/listener.decorator.d.ts.map +0 -1
- package/dist/events/decorators/listener.decorator.js +0 -33
- package/dist/events/decorators/listener.decorator.js.map +0 -1
- package/dist/events/decorators/on.decorator.d.ts +0 -28
- package/dist/events/decorators/on.decorator.d.ts.map +0 -1
- package/dist/events/decorators/on.decorator.js +0 -41
- package/dist/events/decorators/on.decorator.js.map +0 -1
- package/dist/events/event-registry.d.ts +0 -26
- package/dist/events/event-registry.d.ts.map +0 -1
- package/dist/events/event-registry.js +0 -156
- package/dist/events/event-registry.js.map +0 -1
- package/dist/events/index.d.ts +0 -5
- package/dist/events/index.d.ts.map +0 -1
- package/dist/events/index.js +0 -4
- package/dist/events/index.js.map +0 -1
- package/dist/events/types.d.ts +0 -116
- package/dist/events/types.d.ts.map +0 -1
- package/dist/events/types.js +0 -23
- package/dist/events/types.js.map +0 -1
- package/dist/execution-context.d.ts +0 -4
- package/dist/execution-context.d.ts.map +0 -1
- package/dist/execution-context.js +0 -2
- package/dist/execution-context.js.map +0 -1
- package/dist/guards/guard-execution.service.d.ts +0 -37
- package/dist/guards/guard-execution.service.d.ts.map +0 -1
- package/dist/guards/guard-execution.service.js +0 -74
- package/dist/guards/guard-execution.service.js.map +0 -1
- package/dist/guards/index.d.ts +0 -12
- package/dist/guards/index.d.ts.map +0 -1
- package/dist/guards/index.js +0 -12
- package/dist/guards/index.js.map +0 -1
- package/dist/guards/types.d.ts +0 -60
- package/dist/guards/types.d.ts.map +0 -1
- package/dist/guards/types.js +0 -5
- package/dist/guards/types.js.map +0 -1
- package/dist/guards/use-guards.decorator.d.ts +0 -73
- package/dist/guards/use-guards.decorator.d.ts.map +0 -1
- package/dist/guards/use-guards.decorator.js +0 -89
- package/dist/guards/use-guards.decorator.js.map +0 -1
- package/dist/i18n/errors/index.d.ts +0 -6
- package/dist/i18n/errors/index.d.ts.map +0 -1
- package/dist/i18n/errors/index.js +0 -6
- package/dist/i18n/errors/index.js.map +0 -1
- package/dist/i18n/errors/locale-not-supported.error.d.ts +0 -12
- package/dist/i18n/errors/locale-not-supported.error.d.ts.map +0 -1
- package/dist/i18n/errors/locale-not-supported.error.js +0 -15
- package/dist/i18n/errors/locale-not-supported.error.js.map +0 -1
- package/dist/i18n/errors/translation-missing.error.d.ts +0 -12
- package/dist/i18n/errors/translation-missing.error.d.ts.map +0 -1
- package/dist/i18n/errors/translation-missing.error.js +0 -14
- package/dist/i18n/errors/translation-missing.error.js.map +0 -1
- package/dist/i18n/i18n.module.d.ts +0 -60
- package/dist/i18n/i18n.module.d.ts.map +0 -1
- package/dist/i18n/i18n.module.js +0 -103
- package/dist/i18n/i18n.module.js.map +0 -1
- package/dist/i18n/i18n.options.d.ts +0 -60
- package/dist/i18n/i18n.options.d.ts.map +0 -1
- package/dist/i18n/i18n.options.js +0 -18
- package/dist/i18n/i18n.options.js.map +0 -1
- package/dist/i18n/i18n.tokens.d.ts +0 -13
- package/dist/i18n/i18n.tokens.d.ts.map +0 -1
- package/dist/i18n/i18n.tokens.js +0 -13
- package/dist/i18n/i18n.tokens.js.map +0 -1
- package/dist/i18n/i18n.types.d.ts +0 -78
- package/dist/i18n/i18n.types.d.ts.map +0 -1
- package/dist/i18n/i18n.types.js +0 -8
- package/dist/i18n/i18n.types.js.map +0 -1
- package/dist/i18n/index.d.ts +0 -12
- package/dist/i18n/index.d.ts.map +0 -1
- package/dist/i18n/index.js +0 -12
- package/dist/i18n/index.js.map +0 -1
- package/dist/i18n/messages/en/common.d.ts +0 -19
- package/dist/i18n/messages/en/common.d.ts.map +0 -1
- package/dist/i18n/messages/en/common.js +0 -19
- package/dist/i18n/messages/en/common.js.map +0 -1
- package/dist/i18n/messages/en/emails.d.ts +0 -12
- package/dist/i18n/messages/en/emails.d.ts.map +0 -1
- package/dist/i18n/messages/en/emails.js +0 -12
- package/dist/i18n/messages/en/emails.js.map +0 -1
- package/dist/i18n/messages/en/errors.d.ts +0 -113
- package/dist/i18n/messages/en/errors.d.ts.map +0 -1
- package/dist/i18n/messages/en/errors.js +0 -130
- package/dist/i18n/messages/en/errors.js.map +0 -1
- package/dist/i18n/messages/en/index.d.ts +0 -13
- package/dist/i18n/messages/en/index.d.ts.map +0 -1
- package/dist/i18n/messages/en/index.js +0 -13
- package/dist/i18n/messages/en/index.js.map +0 -1
- package/dist/i18n/messages/en/validation.d.ts +0 -38
- package/dist/i18n/messages/en/validation.d.ts.map +0 -1
- package/dist/i18n/messages/en/validation.js +0 -38
- package/dist/i18n/messages/en/validation.js.map +0 -1
- package/dist/i18n/messages/en/zod.d.ts +0 -125
- package/dist/i18n/messages/en/zod.d.ts.map +0 -1
- package/dist/i18n/messages/en/zod.js +0 -132
- package/dist/i18n/messages/en/zod.js.map +0 -1
- package/dist/i18n/messages/index.d.ts +0 -27
- package/dist/i18n/messages/index.d.ts.map +0 -1
- package/dist/i18n/messages/index.js +0 -25
- package/dist/i18n/messages/index.js.map +0 -1
- package/dist/i18n/middleware/i18n-context.middleware.d.ts +0 -15
- package/dist/i18n/middleware/i18n-context.middleware.d.ts.map +0 -1
- package/dist/i18n/middleware/i18n-context.middleware.js +0 -42
- package/dist/i18n/middleware/i18n-context.middleware.js.map +0 -1
- package/dist/i18n/middleware/index.d.ts +0 -6
- package/dist/i18n/middleware/index.d.ts.map +0 -1
- package/dist/i18n/middleware/index.js +0 -6
- package/dist/i18n/middleware/index.js.map +0 -1
- package/dist/i18n/middleware/locale-extraction.middleware.d.ts +0 -19
- package/dist/i18n/middleware/locale-extraction.middleware.d.ts.map +0 -1
- package/dist/i18n/middleware/locale-extraction.middleware.js +0 -49
- package/dist/i18n/middleware/locale-extraction.middleware.js.map +0 -1
- package/dist/i18n/services/i18n.service.d.ts +0 -50
- package/dist/i18n/services/i18n.service.d.ts.map +0 -1
- package/dist/i18n/services/i18n.service.js +0 -82
- package/dist/i18n/services/i18n.service.js.map +0 -1
- package/dist/i18n/services/message-loader.service.d.ts +0 -65
- package/dist/i18n/services/message-loader.service.d.ts.map +0 -1
- package/dist/i18n/services/message-loader.service.js +0 -175
- package/dist/i18n/services/message-loader.service.js.map +0 -1
- package/dist/i18n/setup.d.ts +0 -27
- package/dist/i18n/setup.d.ts.map +0 -1
- package/dist/i18n/setup.js +0 -40
- package/dist/i18n/setup.js.map +0 -1
- package/dist/i18n/validation/index.d.ts +0 -9
- package/dist/i18n/validation/index.d.ts.map +0 -1
- package/dist/i18n/validation/index.js +0 -10
- package/dist/i18n/validation/index.js.map +0 -1
- package/dist/i18n/validation/validation.context.d.ts +0 -34
- package/dist/i18n/validation/validation.context.d.ts.map +0 -1
- package/dist/i18n/validation/validation.context.js +0 -42
- package/dist/i18n/validation/validation.context.js.map +0 -1
- package/dist/i18n/validation/validation.error-map.d.ts +0 -8
- package/dist/i18n/validation/validation.error-map.d.ts.map +0 -1
- package/dist/i18n/validation/validation.error-map.js +0 -158
- package/dist/i18n/validation/validation.error-map.js.map +0 -1
- package/dist/i18n/validation/validation.types.d.ts +0 -44
- package/dist/i18n/validation/validation.types.d.ts.map +0 -1
- package/dist/i18n/validation/validation.types.js +0 -2
- package/dist/i18n/validation/validation.types.js.map +0 -1
- package/dist/i18n/validation/with-i18n.d.ts +0 -29
- package/dist/i18n/validation/with-i18n.d.ts.map +0 -1
- package/dist/i18n/validation/with-i18n.js +0 -40
- package/dist/i18n/validation/with-i18n.js.map +0 -1
- package/dist/index.d.ts +0 -6
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -6
- package/dist/index.js.map +0 -1
- package/dist/logger/contracts/index.d.ts +0 -4
- package/dist/logger/contracts/index.d.ts.map +0 -1
- package/dist/logger/contracts/index.js +0 -4
- package/dist/logger/contracts/index.js.map +0 -1
- package/dist/logger/contracts/log-context.d.ts +0 -14
- package/dist/logger/contracts/log-context.d.ts.map +0 -1
- package/dist/logger/contracts/log-context.js +0 -2
- package/dist/logger/contracts/log-context.js.map +0 -1
- package/dist/logger/contracts/log-entry.d.ts +0 -17
- package/dist/logger/contracts/log-entry.d.ts.map +0 -1
- package/dist/logger/contracts/log-entry.js +0 -2
- package/dist/logger/contracts/log-entry.js.map +0 -1
- package/dist/logger/contracts/log-level.d.ts +0 -16
- package/dist/logger/contracts/log-level.d.ts.map +0 -1
- package/dist/logger/contracts/log-level.js +0 -22
- package/dist/logger/contracts/log-level.js.map +0 -1
- package/dist/logger/formatters/formatter.interface.d.ts +0 -14
- package/dist/logger/formatters/formatter.interface.d.ts.map +0 -1
- package/dist/logger/formatters/formatter.interface.js +0 -2
- package/dist/logger/formatters/formatter.interface.js.map +0 -1
- package/dist/logger/formatters/index.d.ts +0 -4
- package/dist/logger/formatters/index.d.ts.map +0 -1
- package/dist/logger/formatters/index.js +0 -4
- package/dist/logger/formatters/index.js.map +0 -1
- package/dist/logger/formatters/json-formatter.d.ts +0 -21
- package/dist/logger/formatters/json-formatter.d.ts.map +0 -1
- package/dist/logger/formatters/json-formatter.js +0 -27
- package/dist/logger/formatters/json-formatter.js.map +0 -1
- package/dist/logger/formatters/pretty-formatter.d.ts +0 -18
- package/dist/logger/formatters/pretty-formatter.d.ts.map +0 -1
- package/dist/logger/formatters/pretty-formatter.js +0 -41
- package/dist/logger/formatters/pretty-formatter.js.map +0 -1
- package/dist/logger/index.d.ts +0 -7
- package/dist/logger/index.d.ts.map +0 -1
- package/dist/logger/index.js +0 -10
- package/dist/logger/index.js.map +0 -1
- package/dist/logger/logger.tokens.d.ts +0 -29
- package/dist/logger/logger.tokens.d.ts.map +0 -1
- package/dist/logger/logger.tokens.js +0 -29
- package/dist/logger/logger.tokens.js.map +0 -1
- package/dist/logger/services/index.d.ts +0 -2
- package/dist/logger/services/index.d.ts.map +0 -1
- package/dist/logger/services/index.js +0 -2
- package/dist/logger/services/index.js.map +0 -1
- package/dist/logger/services/logger.service.d.ts +0 -73
- package/dist/logger/services/logger.service.d.ts.map +0 -1
- package/dist/logger/services/logger.service.js +0 -156
- package/dist/logger/services/logger.service.js.map +0 -1
- package/dist/logger/transports/base-transport.d.ts +0 -24
- package/dist/logger/transports/base-transport.d.ts.map +0 -1
- package/dist/logger/transports/base-transport.js +0 -23
- package/dist/logger/transports/base-transport.js.map +0 -1
- package/dist/logger/transports/console-transport.d.ts +0 -19
- package/dist/logger/transports/console-transport.d.ts.map +0 -1
- package/dist/logger/transports/console-transport.js +0 -53
- package/dist/logger/transports/console-transport.js.map +0 -1
- package/dist/logger/transports/index.d.ts +0 -4
- package/dist/logger/transports/index.d.ts.map +0 -1
- package/dist/logger/transports/index.js +0 -4
- package/dist/logger/transports/index.js.map +0 -1
- package/dist/logger/transports/transport.interface.d.ts +0 -21
- package/dist/logger/transports/transport.interface.d.ts.map +0 -1
- package/dist/logger/transports/transport.interface.js +0 -2
- package/dist/logger/transports/transport.interface.js.map +0 -1
- package/dist/middleware/index.d.ts +0 -24
- package/dist/middleware/index.d.ts.map +0 -1
- package/dist/middleware/index.js +0 -23
- package/dist/middleware/index.js.map +0 -1
- package/dist/middleware/middleware-configuration.service.d.ts +0 -70
- package/dist/middleware/middleware-configuration.service.d.ts.map +0 -1
- package/dist/middleware/middleware-configuration.service.js +0 -239
- package/dist/middleware/middleware-configuration.service.js.map +0 -1
- package/dist/middleware/middleware-consumer.d.ts +0 -57
- package/dist/middleware/middleware-consumer.d.ts.map +0 -1
- package/dist/middleware/middleware-consumer.js +0 -130
- package/dist/middleware/middleware-consumer.js.map +0 -1
- package/dist/middleware/types.d.ts +0 -96
- package/dist/middleware/types.d.ts.map +0 -1
- package/dist/middleware/types.js +0 -2
- package/dist/middleware/types.js.map +0 -1
- package/dist/module/errors/index.d.ts +0 -5
- package/dist/module/errors/index.d.ts.map +0 -1
- package/dist/module/errors/index.js +0 -5
- package/dist/module/errors/index.js.map +0 -1
- package/dist/module/errors/invalid-module-provider.error.d.ts +0 -11
- package/dist/module/errors/invalid-module-provider.error.d.ts.map +0 -1
- package/dist/module/errors/invalid-module-provider.error.js +0 -13
- package/dist/module/errors/invalid-module-provider.error.js.map +0 -1
- package/dist/module/errors/module-already-registered.error.d.ts +0 -11
- package/dist/module/errors/module-already-registered.error.d.ts.map +0 -1
- package/dist/module/errors/module-already-registered.error.js +0 -13
- package/dist/module/errors/module-already-registered.error.js.map +0 -1
- package/dist/module/errors/module-circular-dependency.error.d.ts +0 -11
- package/dist/module/errors/module-circular-dependency.error.d.ts.map +0 -1
- package/dist/module/errors/module-circular-dependency.error.js +0 -14
- package/dist/module/errors/module-circular-dependency.error.js.map +0 -1
- package/dist/module/errors/module-dependency-not-found.error.d.ts +0 -11
- package/dist/module/errors/module-dependency-not-found.error.d.ts.map +0 -1
- package/dist/module/errors/module-dependency-not-found.error.js +0 -13
- package/dist/module/errors/module-dependency-not-found.error.js.map +0 -1
- package/dist/module/index.d.ts +0 -4
- package/dist/module/index.d.ts.map +0 -1
- package/dist/module/index.js +0 -7
- package/dist/module/index.js.map +0 -1
- package/dist/module/module-registry.d.ts +0 -110
- package/dist/module/module-registry.d.ts.map +0 -1
- package/dist/module/module-registry.js +0 -299
- package/dist/module/module-registry.js.map +0 -1
- package/dist/module/module.decorator.d.ts +0 -34
- package/dist/module/module.decorator.d.ts.map +0 -1
- package/dist/module/module.decorator.js +0 -107
- package/dist/module/module.decorator.js.map +0 -1
- package/dist/module/types.d.ts +0 -240
- package/dist/module/types.d.ts.map +0 -1
- package/dist/module/types.js +0 -8
- package/dist/module/types.js.map +0 -1
- package/dist/openapi/index.d.ts +0 -5
- package/dist/openapi/index.d.ts.map +0 -1
- package/dist/openapi/index.js +0 -7
- package/dist/openapi/index.js.map +0 -1
- package/dist/openapi/openapi.module.d.ts +0 -52
- package/dist/openapi/openapi.module.d.ts.map +0 -1
- package/dist/openapi/openapi.module.js +0 -109
- package/dist/openapi/openapi.module.js.map +0 -1
- package/dist/openapi/openapi.tokens.d.ts +0 -12
- package/dist/openapi/openapi.tokens.d.ts.map +0 -1
- package/dist/openapi/openapi.tokens.js +0 -12
- package/dist/openapi/openapi.tokens.js.map +0 -1
- package/dist/openapi/services/index.d.ts +0 -3
- package/dist/openapi/services/index.d.ts.map +0 -1
- package/dist/openapi/services/index.js +0 -3
- package/dist/openapi/services/index.js.map +0 -1
- package/dist/openapi/services/openapi-config.service.d.ts +0 -43
- package/dist/openapi/services/openapi-config.service.d.ts.map +0 -1
- package/dist/openapi/services/openapi-config.service.js +0 -98
- package/dist/openapi/services/openapi-config.service.js.map +0 -1
- package/dist/openapi/services/openapi.service.d.ts +0 -52
- package/dist/openapi/services/openapi.service.d.ts.map +0 -1
- package/dist/openapi/services/openapi.service.js +0 -231
- package/dist/openapi/services/openapi.service.js.map +0 -1
- package/dist/openapi/types.d.ts +0 -84
- package/dist/openapi/types.d.ts.map +0 -1
- package/dist/openapi/types.js +0 -2
- package/dist/openapi/types.js.map +0 -1
- package/dist/queue/consumer-registry.d.ts +0 -77
- package/dist/queue/consumer-registry.d.ts.map +0 -1
- package/dist/queue/consumer-registry.js +0 -110
- package/dist/queue/consumer-registry.js.map +0 -1
- package/dist/queue/decorators/index.d.ts +0 -2
- package/dist/queue/decorators/index.d.ts.map +0 -1
- package/dist/queue/decorators/index.js +0 -2
- package/dist/queue/decorators/index.js.map +0 -1
- package/dist/queue/decorators/inject-queue.decorator.d.ts +0 -31
- package/dist/queue/decorators/inject-queue.decorator.d.ts.map +0 -1
- package/dist/queue/decorators/inject-queue.decorator.js +0 -33
- package/dist/queue/decorators/inject-queue.decorator.js.map +0 -1
- package/dist/queue/errors/index.d.ts +0 -3
- package/dist/queue/errors/index.d.ts.map +0 -1
- package/dist/queue/errors/index.js +0 -3
- package/dist/queue/errors/index.js.map +0 -1
- package/dist/queue/errors/queue-binding-not-found.error.d.ts +0 -12
- package/dist/queue/errors/queue-binding-not-found.error.d.ts.map +0 -1
- package/dist/queue/errors/queue-binding-not-found.error.js +0 -14
- package/dist/queue/errors/queue-binding-not-found.error.js.map +0 -1
- package/dist/queue/errors/queue-provider-not-supported.error.d.ts +0 -13
- package/dist/queue/errors/queue-provider-not-supported.error.d.ts.map +0 -1
- package/dist/queue/errors/queue-provider-not-supported.error.js +0 -15
- package/dist/queue/errors/queue-provider-not-supported.error.js.map +0 -1
- package/dist/queue/index.d.ts +0 -14
- package/dist/queue/index.d.ts.map +0 -1
- package/dist/queue/index.js +0 -21
- package/dist/queue/index.js.map +0 -1
- package/dist/queue/providers/cloudflare-queue.provider.d.ts +0 -42
- package/dist/queue/providers/cloudflare-queue.provider.d.ts.map +0 -1
- package/dist/queue/providers/cloudflare-queue.provider.js +0 -73
- package/dist/queue/providers/cloudflare-queue.provider.js.map +0 -1
- package/dist/queue/providers/index.d.ts +0 -4
- package/dist/queue/providers/index.d.ts.map +0 -1
- package/dist/queue/providers/index.js +0 -4
- package/dist/queue/providers/index.js.map +0 -1
- package/dist/queue/providers/queue-provider.interface.d.ts +0 -34
- package/dist/queue/providers/queue-provider.interface.d.ts.map +0 -1
- package/dist/queue/providers/queue-provider.interface.js +0 -2
- package/dist/queue/providers/queue-provider.interface.js.map +0 -1
- package/dist/queue/providers/sync-queue.provider.d.ts +0 -48
- package/dist/queue/providers/sync-queue.provider.d.ts.map +0 -1
- package/dist/queue/providers/sync-queue.provider.js +0 -89
- package/dist/queue/providers/sync-queue.provider.js.map +0 -1
- package/dist/queue/queue-consumer.d.ts +0 -62
- package/dist/queue/queue-consumer.d.ts.map +0 -1
- package/dist/queue/queue-consumer.js +0 -2
- package/dist/queue/queue-consumer.js.map +0 -1
- package/dist/queue/queue-manager.d.ts +0 -36
- package/dist/queue/queue-manager.d.ts.map +0 -1
- package/dist/queue/queue-manager.js +0 -80
- package/dist/queue/queue-manager.js.map +0 -1
- package/dist/queue/queue-name.d.ts +0 -50
- package/dist/queue/queue-name.d.ts.map +0 -1
- package/dist/queue/queue-name.js +0 -21
- package/dist/queue/queue-name.js.map +0 -1
- package/dist/queue/queue-registry.d.ts +0 -46
- package/dist/queue/queue-registry.d.ts.map +0 -1
- package/dist/queue/queue-registry.js +0 -78
- package/dist/queue/queue-registry.js.map +0 -1
- package/dist/queue/queue-sender.d.ts +0 -38
- package/dist/queue/queue-sender.d.ts.map +0 -1
- package/dist/queue/queue-sender.interface.d.ts +0 -46
- package/dist/queue/queue-sender.interface.d.ts.map +0 -1
- package/dist/queue/queue-sender.interface.js +0 -2
- package/dist/queue/queue-sender.interface.js.map +0 -1
- package/dist/queue/queue-sender.js +0 -54
- package/dist/queue/queue-sender.js.map +0 -1
- package/dist/queue/queue.module.d.ts +0 -80
- package/dist/queue/queue.module.d.ts.map +0 -1
- package/dist/queue/queue.module.js +0 -113
- package/dist/queue/queue.module.js.map +0 -1
- package/dist/queue/queue.tokens.d.ts +0 -7
- package/dist/queue/queue.tokens.d.ts.map +0 -1
- package/dist/queue/queue.tokens.js +0 -6
- package/dist/queue/queue.tokens.js.map +0 -1
- package/dist/queue/services/index.d.ts +0 -2
- package/dist/queue/services/index.d.ts.map +0 -1
- package/dist/queue/services/index.js +0 -2
- package/dist/queue/services/index.js.map +0 -1
- package/dist/queue/services/queue-provider-factory.d.ts +0 -41
- package/dist/queue/services/queue-provider-factory.d.ts.map +0 -1
- package/dist/queue/services/queue-provider-factory.js +0 -78
- package/dist/queue/services/queue-provider-factory.js.map +0 -1
- package/dist/router/constants.d.ts +0 -87
- package/dist/router/constants.d.ts.map +0 -1
- package/dist/router/constants.js +0 -69
- package/dist/router/constants.js.map +0 -1
- package/dist/router/controller.d.ts +0 -56
- package/dist/router/controller.d.ts.map +0 -1
- package/dist/router/controller.js +0 -2
- package/dist/router/controller.js.map +0 -1
- package/dist/router/decorators/controller.decorator.d.ts +0 -46
- package/dist/router/decorators/controller.decorator.d.ts.map +0 -1
- package/dist/router/decorators/controller.decorator.js +0 -70
- package/dist/router/decorators/controller.decorator.js.map +0 -1
- package/dist/router/decorators/http-method.decorator.d.ts +0 -83
- package/dist/router/decorators/http-method.decorator.d.ts.map +0 -1
- package/dist/router/decorators/http-method.decorator.js +0 -113
- package/dist/router/decorators/http-method.decorator.js.map +0 -1
- package/dist/router/decorators/index.d.ts +0 -4
- package/dist/router/decorators/index.d.ts.map +0 -1
- package/dist/router/decorators/index.js +0 -6
- package/dist/router/decorators/index.js.map +0 -1
- package/dist/router/decorators/route.decorator.d.ts +0 -90
- package/dist/router/decorators/route.decorator.d.ts.map +0 -1
- package/dist/router/decorators/route.decorator.js +0 -102
- package/dist/router/decorators/route.decorator.js.map +0 -1
- package/dist/router/errors/controller-method-not-found.error.d.ts +0 -11
- package/dist/router/errors/controller-method-not-found.error.d.ts.map +0 -1
- package/dist/router/errors/controller-method-not-found.error.js +0 -13
- package/dist/router/errors/controller-method-not-found.error.js.map +0 -1
- package/dist/router/errors/controller-registration.error.d.ts +0 -15
- package/dist/router/errors/controller-registration.error.d.ts.map +0 -1
- package/dist/router/errors/controller-registration.error.js +0 -20
- package/dist/router/errors/controller-registration.error.js.map +0 -1
- package/dist/router/errors/hono-app-already-configured.error.d.ts +0 -10
- package/dist/router/errors/hono-app-already-configured.error.d.ts.map +0 -1
- package/dist/router/errors/hono-app-already-configured.error.js +0 -12
- package/dist/router/errors/hono-app-already-configured.error.js.map +0 -1
- package/dist/router/errors/index.d.ts +0 -8
- package/dist/router/errors/index.d.ts.map +0 -1
- package/dist/router/errors/index.js +0 -8
- package/dist/router/errors/index.js.map +0 -1
- package/dist/router/errors/openapi-route-registration.error.d.ts +0 -17
- package/dist/router/errors/openapi-route-registration.error.d.ts.map +0 -1
- package/dist/router/errors/openapi-route-registration.error.js +0 -19
- package/dist/router/errors/openapi-route-registration.error.js.map +0 -1
- package/dist/router/errors/openapi-validation.error.d.ts +0 -19
- package/dist/router/errors/openapi-validation.error.d.ts.map +0 -1
- package/dist/router/errors/openapi-validation.error.js +0 -21
- package/dist/router/errors/openapi-validation.error.js.map +0 -1
- package/dist/router/errors/route-not-found.error.d.ts +0 -11
- package/dist/router/errors/route-not-found.error.d.ts.map +0 -1
- package/dist/router/errors/route-not-found.error.js +0 -13
- package/dist/router/errors/route-not-found.error.js.map +0 -1
- package/dist/router/errors/schema-validation.error.d.ts +0 -11
- package/dist/router/errors/schema-validation.error.d.ts.map +0 -1
- package/dist/router/errors/schema-validation.error.js +0 -17
- package/dist/router/errors/schema-validation.error.js.map +0 -1
- package/dist/router/hono-app.d.ts +0 -38
- package/dist/router/hono-app.d.ts.map +0 -1
- package/dist/router/hono-app.js +0 -126
- package/dist/router/hono-app.js.map +0 -1
- package/dist/router/index.d.ts +0 -16
- package/dist/router/index.d.ts.map +0 -1
- package/dist/router/index.js +0 -21
- package/dist/router/index.js.map +0 -1
- package/dist/router/middleware/index.d.ts +0 -2
- package/dist/router/middleware/index.d.ts.map +0 -1
- package/dist/router/middleware/index.js +0 -4
- package/dist/router/middleware/index.js.map +0 -1
- package/dist/router/middleware/logger.middleware.d.ts +0 -19
- package/dist/router/middleware/logger.middleware.d.ts.map +0 -1
- package/dist/router/middleware/logger.middleware.js +0 -32
- package/dist/router/middleware/logger.middleware.js.map +0 -1
- package/dist/router/middleware.interface.d.ts +0 -38
- package/dist/router/middleware.interface.d.ts.map +0 -1
- package/dist/router/middleware.interface.js +0 -2
- package/dist/router/middleware.interface.js.map +0 -1
- package/dist/router/router-context.d.ts +0 -143
- package/dist/router/router-context.d.ts.map +0 -1
- package/dist/router/router-context.js +0 -179
- package/dist/router/router-context.js.map +0 -1
- package/dist/router/router.tokens.d.ts +0 -11
- package/dist/router/router.tokens.d.ts.map +0 -1
- package/dist/router/router.tokens.js +0 -11
- package/dist/router/router.tokens.js.map +0 -1
- package/dist/router/schemas/common.schemas.d.ts +0 -148
- package/dist/router/schemas/common.schemas.d.ts.map +0 -1
- package/dist/router/schemas/common.schemas.js +0 -88
- package/dist/router/schemas/common.schemas.js.map +0 -1
- package/dist/router/schemas/index.d.ts +0 -2
- package/dist/router/schemas/index.d.ts.map +0 -1
- package/dist/router/schemas/index.js +0 -2
- package/dist/router/schemas/index.js.map +0 -1
- package/dist/router/services/index.d.ts +0 -6
- package/dist/router/services/index.d.ts.map +0 -1
- package/dist/router/services/index.js +0 -6
- package/dist/router/services/index.js.map +0 -1
- package/dist/router/services/route-registration.service.d.ts +0 -129
- package/dist/router/services/route-registration.service.d.ts.map +0 -1
- package/dist/router/services/route-registration.service.js +0 -700
- package/dist/router/services/route-registration.service.js.map +0 -1
- package/dist/router/types.d.ts +0 -187
- package/dist/router/types.d.ts.map +0 -1
- package/dist/router/types.js +0 -2
- package/dist/router/types.js.map +0 -1
- package/dist/storage/contracts/delete-file.input.d.ts +0 -7
- package/dist/storage/contracts/delete-file.input.d.ts.map +0 -1
- package/dist/storage/contracts/delete-file.input.js +0 -6
- package/dist/storage/contracts/delete-file.input.js.map +0 -1
- package/dist/storage/contracts/download-result.d.ts +0 -28
- package/dist/storage/contracts/download-result.d.ts.map +0 -1
- package/dist/storage/contracts/download-result.js +0 -2
- package/dist/storage/contracts/download-result.js.map +0 -1
- package/dist/storage/contracts/file-exists.input.d.ts +0 -7
- package/dist/storage/contracts/file-exists.input.d.ts.map +0 -1
- package/dist/storage/contracts/file-exists.input.js +0 -6
- package/dist/storage/contracts/file-exists.input.js.map +0 -1
- package/dist/storage/contracts/get-presigned-url.input.d.ts +0 -26
- package/dist/storage/contracts/get-presigned-url.input.d.ts.map +0 -1
- package/dist/storage/contracts/get-presigned-url.input.js +0 -14
- package/dist/storage/contracts/get-presigned-url.input.js.map +0 -1
- package/dist/storage/contracts/index.d.ts +0 -6
- package/dist/storage/contracts/index.d.ts.map +0 -1
- package/dist/storage/contracts/index.js +0 -6
- package/dist/storage/contracts/index.js.map +0 -1
- package/dist/storage/contracts/upload-file.input.d.ts +0 -34
- package/dist/storage/contracts/upload-file.input.d.ts.map +0 -1
- package/dist/storage/contracts/upload-file.input.js +0 -10
- package/dist/storage/contracts/upload-file.input.js.map +0 -1
- package/dist/storage/dom.polyfill.d.ts +0 -2
- package/dist/storage/dom.polyfill.d.ts.map +0 -1
- package/dist/storage/dom.polyfill.js +0 -30
- package/dist/storage/dom.polyfill.js.map +0 -1
- package/dist/storage/errors/disk-not-configured.error.d.ts +0 -5
- package/dist/storage/errors/disk-not-configured.error.d.ts.map +0 -1
- package/dist/storage/errors/disk-not-configured.error.js +0 -7
- package/dist/storage/errors/disk-not-configured.error.js.map +0 -1
- package/dist/storage/errors/file-not-found.error.d.ts +0 -5
- package/dist/storage/errors/file-not-found.error.d.ts.map +0 -1
- package/dist/storage/errors/file-not-found.error.js +0 -8
- package/dist/storage/errors/file-not-found.error.js.map +0 -1
- package/dist/storage/errors/file-too-large.error.d.ts +0 -5
- package/dist/storage/errors/file-too-large.error.d.ts.map +0 -1
- package/dist/storage/errors/file-too-large.error.js +0 -11
- package/dist/storage/errors/file-too-large.error.js.map +0 -1
- package/dist/storage/errors/index.d.ts +0 -9
- package/dist/storage/errors/index.d.ts.map +0 -1
- package/dist/storage/errors/index.js +0 -9
- package/dist/storage/errors/index.js.map +0 -1
- package/dist/storage/errors/invalid-disk.error.d.ts +0 -5
- package/dist/storage/errors/invalid-disk.error.d.ts.map +0 -1
- package/dist/storage/errors/invalid-disk.error.js +0 -8
- package/dist/storage/errors/invalid-disk.error.js.map +0 -1
- package/dist/storage/errors/invalid-file-type.error.d.ts +0 -5
- package/dist/storage/errors/invalid-file-type.error.d.ts.map +0 -1
- package/dist/storage/errors/invalid-file-type.error.js +0 -10
- package/dist/storage/errors/invalid-file-type.error.js.map +0 -1
- package/dist/storage/errors/presigned-url-invalid-expiry.error.d.ts +0 -5
- package/dist/storage/errors/presigned-url-invalid-expiry.error.d.ts.map +0 -1
- package/dist/storage/errors/presigned-url-invalid-expiry.error.js +0 -12
- package/dist/storage/errors/presigned-url-invalid-expiry.error.js.map +0 -1
- package/dist/storage/errors/storage-provider-not-supported.error.d.ts +0 -5
- package/dist/storage/errors/storage-provider-not-supported.error.d.ts.map +0 -1
- package/dist/storage/errors/storage-provider-not-supported.error.js +0 -8
- package/dist/storage/errors/storage-provider-not-supported.error.js.map +0 -1
- package/dist/storage/errors/storage-response-body-missing.error.d.ts +0 -5
- package/dist/storage/errors/storage-response-body-missing.error.d.ts.map +0 -1
- package/dist/storage/errors/storage-response-body-missing.error.js +0 -8
- package/dist/storage/errors/storage-response-body-missing.error.js.map +0 -1
- package/dist/storage/index.d.ts +0 -15
- package/dist/storage/index.d.ts.map +0 -1
- package/dist/storage/index.js +0 -18
- package/dist/storage/index.js.map +0 -1
- package/dist/storage/providers/s3-multipart-provider.interface.d.ts +0 -194
- package/dist/storage/providers/s3-multipart-provider.interface.d.ts.map +0 -1
- package/dist/storage/providers/s3-multipart-provider.interface.js +0 -2
- package/dist/storage/providers/s3-multipart-provider.interface.js.map +0 -1
- package/dist/storage/providers/s3-storage.provider.d.ts +0 -77
- package/dist/storage/providers/s3-storage.provider.d.ts.map +0 -1
- package/dist/storage/providers/s3-storage.provider.js +0 -310
- package/dist/storage/providers/s3-storage.provider.js.map +0 -1
- package/dist/storage/providers/storage-provider.interface.d.ts +0 -58
- package/dist/storage/providers/storage-provider.interface.d.ts.map +0 -1
- package/dist/storage/providers/storage-provider.interface.js +0 -2
- package/dist/storage/providers/storage-provider.interface.js.map +0 -1
- package/dist/storage/services/storage-manager.service.d.ts +0 -48
- package/dist/storage/services/storage-manager.service.d.ts.map +0 -1
- package/dist/storage/services/storage-manager.service.js +0 -111
- package/dist/storage/services/storage-manager.service.js.map +0 -1
- package/dist/storage/services/storage.service.d.ts +0 -137
- package/dist/storage/services/storage.service.d.ts.map +0 -1
- package/dist/storage/services/storage.service.js +0 -229
- package/dist/storage/services/storage.service.js.map +0 -1
- package/dist/storage/storage.module.d.ts +0 -52
- package/dist/storage/storage.module.d.ts.map +0 -1
- package/dist/storage/storage.module.js +0 -81
- package/dist/storage/storage.module.js.map +0 -1
- package/dist/storage/storage.tokens.d.ts +0 -10
- package/dist/storage/storage.tokens.d.ts.map +0 -1
- package/dist/storage/storage.tokens.js +0 -10
- package/dist/storage/storage.tokens.js.map +0 -1
- package/dist/storage/types.d.ts +0 -31
- package/dist/storage/types.d.ts.map +0 -1
- package/dist/storage/types.js +0 -2
- package/dist/storage/types.js.map +0 -1
- package/dist/stratal.d.ts +0 -39
- package/dist/stratal.d.ts.map +0 -1
- package/dist/stratal.js +0 -77
- package/dist/stratal.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/websocket/decorators/gateway.decorator.d.ts +0 -39
- package/dist/websocket/decorators/gateway.decorator.d.ts.map +0 -1
- package/dist/websocket/decorators/gateway.decorator.js +0 -55
- package/dist/websocket/decorators/gateway.decorator.js.map +0 -1
- package/dist/websocket/decorators/index.d.ts +0 -3
- package/dist/websocket/decorators/index.d.ts.map +0 -1
- package/dist/websocket/decorators/index.js +0 -3
- package/dist/websocket/decorators/index.js.map +0 -1
- package/dist/websocket/decorators/ws-event.decorator.d.ts +0 -59
- package/dist/websocket/decorators/ws-event.decorator.d.ts.map +0 -1
- package/dist/websocket/decorators/ws-event.decorator.js +0 -94
- package/dist/websocket/decorators/ws-event.decorator.js.map +0 -1
- package/dist/websocket/errors/websocket-body-not-available.error.d.ts +0 -5
- package/dist/websocket/errors/websocket-body-not-available.error.d.ts.map +0 -1
- package/dist/websocket/errors/websocket-body-not-available.error.js +0 -7
- package/dist/websocket/errors/websocket-body-not-available.error.js.map +0 -1
- package/dist/websocket/errors/websocket-duplicate-event-handler.error.d.ts +0 -5
- package/dist/websocket/errors/websocket-duplicate-event-handler.error.d.ts.map +0 -1
- package/dist/websocket/errors/websocket-duplicate-event-handler.error.js +0 -7
- package/dist/websocket/errors/websocket-duplicate-event-handler.error.js.map +0 -1
- package/dist/websocket/gateway-context.d.ts +0 -51
- package/dist/websocket/gateway-context.d.ts.map +0 -1
- package/dist/websocket/gateway-context.js +0 -66
- package/dist/websocket/gateway-context.js.map +0 -1
- package/dist/websocket/index.d.ts +0 -7
- package/dist/websocket/index.d.ts.map +0 -1
- package/dist/websocket/index.js +0 -5
- package/dist/websocket/index.js.map +0 -1
- package/dist/websocket/types.d.ts +0 -7
- package/dist/websocket/types.d.ts.map +0 -1
- package/dist/websocket/types.js +0 -2
- package/dist/websocket/types.js.map +0 -1
- package/dist/workers/index.d.ts +0 -5
- package/dist/workers/index.d.ts.map +0 -1
- package/dist/workers/index.js +0 -5
- package/dist/workers/index.js.map +0 -1
- package/dist/workers/run-in-scope.d.ts +0 -9
- package/dist/workers/run-in-scope.d.ts.map +0 -1
- package/dist/workers/run-in-scope.js +0 -13
- package/dist/workers/run-in-scope.js.map +0 -1
- package/dist/workers/stratal-durable-object.d.ts +0 -28
- package/dist/workers/stratal-durable-object.d.ts.map +0 -1
- package/dist/workers/stratal-durable-object.js +0 -34
- package/dist/workers/stratal-durable-object.js.map +0 -1
- package/dist/workers/stratal-worker-entrypoint.d.ts +0 -27
- package/dist/workers/stratal-worker-entrypoint.d.ts.map +0 -1
- package/dist/workers/stratal-worker-entrypoint.js +0 -28
- package/dist/workers/stratal-worker-entrypoint.js.map +0 -1
- package/dist/workers/stratal-workflow.d.ts +0 -27
- package/dist/workers/stratal-workflow.d.ts.map +0 -1
- package/dist/workers/stratal-workflow.js +0 -28
- package/dist/workers/stratal-workflow.js.map +0 -1
|
@@ -1,700 +0,0 @@
|
|
|
1
|
-
import { getMethodInjections } from '../../di';
|
|
2
|
-
import { getControllerGuards, getMethodGuards, GuardExecutionService, } from '../../guards';
|
|
3
|
-
import { createRoute } from '../../i18n/validation';
|
|
4
|
-
import { getWsOnCloseMethod, getWsOnErrorMethod, getWsOnMessageMethod, isGateway } from '../../websocket/decorators';
|
|
5
|
-
import { GatewayContext } from '../../websocket/gateway-context';
|
|
6
|
-
import { DEFAULT_CONTENT_TYPE, HTTP_METHODS, METHOD_STATUS_CODES, SECURITY_SCHEMES, VERSION_NEUTRAL } from '../constants';
|
|
7
|
-
import { getControllerOptions, getControllerRoute, getDecoratedMethods, getHttpDecoratedMethods, getHttpRouteMetadata, getRouteConfig, } from '../decorators';
|
|
8
|
-
import { ControllerMethodNotFoundError, ControllerRegistrationError, OpenAPIRouteRegistrationError, } from '../errors';
|
|
9
|
-
import { RouterContext } from '../router-context';
|
|
10
|
-
import { commonErrorSchemas } from '../schemas/common.schemas';
|
|
11
|
-
const invokeHandler = (instance, method, ...args) => {
|
|
12
|
-
try {
|
|
13
|
-
return Promise.resolve(instance[method](...args));
|
|
14
|
-
}
|
|
15
|
-
catch (err) {
|
|
16
|
-
return Promise.reject(err);
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* Route registration service
|
|
21
|
-
* Manages controller and route registration with OpenAPI support
|
|
22
|
-
*
|
|
23
|
-
* Responsibilities:
|
|
24
|
-
* - Register RESTful controllers with OpenAPI metadata
|
|
25
|
-
* - Auto-derive HTTP methods/paths from controller method names
|
|
26
|
-
* - Build OpenAPI route configurations with guard execution
|
|
27
|
-
* - Validate all controllers have access decorators (strict mode)
|
|
28
|
-
* - Create controller handlers with DI resolution
|
|
29
|
-
*/
|
|
30
|
-
export class RouteRegistrationService {
|
|
31
|
-
logger;
|
|
32
|
-
versioningOptions;
|
|
33
|
-
controllerClasses = new Map();
|
|
34
|
-
constructor(logger, versioningOptions = null) {
|
|
35
|
-
this.logger = logger;
|
|
36
|
-
this.versioningOptions = versioningOptions;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Configure router with controllers
|
|
40
|
-
*
|
|
41
|
-
* @param app - OpenAPIHono application instance
|
|
42
|
-
* @param controllers - Array of controller classes from modules
|
|
43
|
-
*/
|
|
44
|
-
async configure(app, controllers) {
|
|
45
|
-
this.logger.info('Registering controllers', {
|
|
46
|
-
controllerCount: controllers.length,
|
|
47
|
-
});
|
|
48
|
-
// Sort controllers: specific routes first, wildcard handlers last
|
|
49
|
-
// This ensures more specific routes are matched before catch-all wildcards
|
|
50
|
-
// (e.g., /api/v1/auth/magic-link matches before /api/v1/auth/:path{.+})
|
|
51
|
-
const sortedControllers = [...controllers].sort((a, b) => {
|
|
52
|
-
const aHasHandle = 'handle' in a.prototype;
|
|
53
|
-
const bHasHandle = 'handle' in b.prototype;
|
|
54
|
-
if (aHasHandle && !bHasHandle)
|
|
55
|
-
return 1; // a goes after b
|
|
56
|
-
if (!aHasHandle && bHasHandle)
|
|
57
|
-
return -1; // a goes before b
|
|
58
|
-
return 0; // maintain relative order
|
|
59
|
-
});
|
|
60
|
-
// Single-pass partition: gateways vs regular controllers
|
|
61
|
-
const gateways = [];
|
|
62
|
-
const regulars = [];
|
|
63
|
-
for (const c of sortedControllers) {
|
|
64
|
-
if (isGateway(c)) {
|
|
65
|
-
gateways.push(c);
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
regulars.push(c);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
// Register WebSocket gateways
|
|
72
|
-
for (const GatewayClass of gateways) {
|
|
73
|
-
await this.registerGateway(app, GatewayClass);
|
|
74
|
-
}
|
|
75
|
-
// Register controllers
|
|
76
|
-
for (const ControllerClass of regulars) {
|
|
77
|
-
this.registerController(app, ControllerClass);
|
|
78
|
-
}
|
|
79
|
-
this.logger.info('Controller registration complete');
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Register a WebSocket gateway
|
|
83
|
-
* Applies versioning and guards, then registers an upgradeWebSocket handler
|
|
84
|
-
*/
|
|
85
|
-
async registerGateway(app, GatewayClass) {
|
|
86
|
-
const route = getControllerRoute(GatewayClass);
|
|
87
|
-
if (!route) {
|
|
88
|
-
throw new ControllerRegistrationError(GatewayClass.name, 'Missing @Gateway decorator or route metadata');
|
|
89
|
-
}
|
|
90
|
-
const controllerOpts = getControllerOptions(GatewayClass);
|
|
91
|
-
const paths = this.versioningOptions
|
|
92
|
-
? this.resolveVersionedPaths(route, controllerOpts)
|
|
93
|
-
: [route];
|
|
94
|
-
for (const fullPath of paths) {
|
|
95
|
-
await this.registerGatewayRoute(app, GatewayClass, fullPath);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Register a single WebSocket gateway route
|
|
100
|
-
*/
|
|
101
|
-
async registerGatewayRoute(app, GatewayClass, fullPath) {
|
|
102
|
-
// Collect class-level guards
|
|
103
|
-
const controllerGuards = getControllerGuards(GatewayClass)?.guards ?? [];
|
|
104
|
-
// Dynamic import: only load hono/cloudflare-workers when gateways exist
|
|
105
|
-
const { upgradeWebSocket } = await import('hono/cloudflare-workers');
|
|
106
|
-
// Cache WS metadata once at registration time (not per-connection)
|
|
107
|
-
const onMsgMethod = getWsOnMessageMethod(GatewayClass);
|
|
108
|
-
const onCloseMethod = getWsOnCloseMethod(GatewayClass);
|
|
109
|
-
const onErrMethod = getWsOnErrorMethod(GatewayClass);
|
|
110
|
-
const wsHandler = upgradeWebSocket((c) => {
|
|
111
|
-
const routerCtx = new RouterContext(c);
|
|
112
|
-
const container = routerCtx.getContainer();
|
|
113
|
-
const gateway = container.resolve(GatewayClass);
|
|
114
|
-
// Cloudflare Workers doesn't support the `onOpen` WebSocket event;
|
|
115
|
-
// the upgrade callback itself serves as the open context.
|
|
116
|
-
const events = {};
|
|
117
|
-
const bindWsHandler = (method, onCatch) => {
|
|
118
|
-
return (evt, ws) => {
|
|
119
|
-
const ctx = new GatewayContext(c, ws);
|
|
120
|
-
c.executionCtx.waitUntil(invokeHandler(gateway, method, evt, ctx).catch((err) => {
|
|
121
|
-
this.logger.error(`WebSocket ${method} handler error`, { gateway: GatewayClass.name, error: err instanceof Error ? err.message : String(err) });
|
|
122
|
-
onCatch?.(err, ws);
|
|
123
|
-
}));
|
|
124
|
-
};
|
|
125
|
-
};
|
|
126
|
-
if (onMsgMethod) {
|
|
127
|
-
events.onMessage = bindWsHandler(onMsgMethod, (_err, ws) => ws.close(1011, 'Internal Error'));
|
|
128
|
-
}
|
|
129
|
-
if (onCloseMethod) {
|
|
130
|
-
events.onClose = bindWsHandler(onCloseMethod);
|
|
131
|
-
}
|
|
132
|
-
if (onErrMethod) {
|
|
133
|
-
events.onError = bindWsHandler(onErrMethod);
|
|
134
|
-
}
|
|
135
|
-
return events;
|
|
136
|
-
});
|
|
137
|
-
this.logger.info('Registering WebSocket gateway', {
|
|
138
|
-
gateway: GatewayClass.name,
|
|
139
|
-
path: fullPath,
|
|
140
|
-
});
|
|
141
|
-
const handlers = [];
|
|
142
|
-
if (controllerGuards.length > 0) {
|
|
143
|
-
this.logger.info('Gateway guards', {
|
|
144
|
-
gateway: GatewayClass.name,
|
|
145
|
-
path: fullPath,
|
|
146
|
-
guardCount: controllerGuards.length,
|
|
147
|
-
});
|
|
148
|
-
handlers.push(this.createGuardMiddleware(controllerGuards));
|
|
149
|
-
}
|
|
150
|
-
handlers.push(wsHandler);
|
|
151
|
-
// Type assertion needed because Hono's overloaded .get() signatures
|
|
152
|
-
// don't accept a spread of MiddlewareHandler[] alongside upgradeWebSocket's output type
|
|
153
|
-
app.get(fullPath, ...handlers);
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Register a single controller with all its routes
|
|
157
|
-
* Validates that controller has access decorator (strict mode)
|
|
158
|
-
*/
|
|
159
|
-
registerController(app, ControllerClass) {
|
|
160
|
-
const route = getControllerRoute(ControllerClass);
|
|
161
|
-
if (!route) {
|
|
162
|
-
throw new ControllerRegistrationError(ControllerClass.name, 'Missing @Controller decorator or route metadata');
|
|
163
|
-
}
|
|
164
|
-
const className = ControllerClass.name;
|
|
165
|
-
this.controllerClasses.set(className, ControllerClass);
|
|
166
|
-
const prototype = ControllerClass.prototype;
|
|
167
|
-
const controllerOpts = getControllerOptions(ControllerClass);
|
|
168
|
-
// Handle wildcard routes (non-RESTful controllers) — check once, not per version
|
|
169
|
-
if (prototype.handle) {
|
|
170
|
-
if (!this.versioningOptions) {
|
|
171
|
-
this.registerWildcardRoute(app, ControllerClass, route);
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
for (const versionedRoute of this.resolveVersionedPaths(route, controllerOpts)) {
|
|
175
|
-
this.registerWildcardRoute(app, ControllerClass, versionedRoute);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
return;
|
|
179
|
-
}
|
|
180
|
-
// Compute decorated methods once (loop-invariant)
|
|
181
|
-
const decoratedMethods = getDecoratedMethods(ControllerClass);
|
|
182
|
-
const httpDecoratedMethods = getHttpDecoratedMethods(ControllerClass);
|
|
183
|
-
// Enforce mutual exclusivity once
|
|
184
|
-
if (decoratedMethods.length > 0 && httpDecoratedMethods.length > 0) {
|
|
185
|
-
throw new ControllerRegistrationError(ControllerClass.name, 'Cannot mix @Route() with HTTP method decorators (@Get, @Post, etc.) in the same controller. Use one pattern or the other.');
|
|
186
|
-
}
|
|
187
|
-
// Fast path: no versioning — inline dispatch, no array allocation, no loop
|
|
188
|
-
if (!this.versioningOptions) {
|
|
189
|
-
this.dispatchRoutes(app, ControllerClass, route, decoratedMethods, httpDecoratedMethods, controllerOpts, prototype);
|
|
190
|
-
return;
|
|
191
|
-
}
|
|
192
|
-
// Versioning path: resolve versioned paths and register each
|
|
193
|
-
for (const versionedRoute of this.resolveVersionedPaths(route, controllerOpts)) {
|
|
194
|
-
this.dispatchRoutes(app, ControllerClass, versionedRoute, decoratedMethods, httpDecoratedMethods, controllerOpts, prototype);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Dispatch route registration based on decorator type
|
|
199
|
-
*/
|
|
200
|
-
dispatchRoutes(app, ControllerClass, path, decoratedMethods, httpDecoratedMethods, controllerOpts, prototype) {
|
|
201
|
-
if (httpDecoratedMethods.length > 0) {
|
|
202
|
-
this.registerHttpRoutes(app, ControllerClass, path, httpDecoratedMethods, controllerOpts);
|
|
203
|
-
}
|
|
204
|
-
else if (decoratedMethods.length > 0) {
|
|
205
|
-
this.registerOpenAPIRoutes(app, ControllerClass, path, decoratedMethods, controllerOpts);
|
|
206
|
-
}
|
|
207
|
-
else {
|
|
208
|
-
this.registerRESTfulRoutes(app, ControllerClass, path, prototype);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Resolve versioned paths for a controller based on versioning configuration.
|
|
213
|
-
*
|
|
214
|
-
* @param basePath - The base path from @Controller decorator
|
|
215
|
-
* @param controllerOpts - Controller options (may contain version)
|
|
216
|
-
* @returns Array of resolved paths (with version prefix if applicable)
|
|
217
|
-
*/
|
|
218
|
-
resolveVersionedPaths(basePath, controllerOpts) {
|
|
219
|
-
// Versioning disabled — always return base path
|
|
220
|
-
if (!this.versioningOptions) {
|
|
221
|
-
return [basePath];
|
|
222
|
-
}
|
|
223
|
-
const version = controllerOpts?.version;
|
|
224
|
-
// VERSION_NEUTRAL — explicitly opt out of versioning
|
|
225
|
-
if (version === VERSION_NEUTRAL) {
|
|
226
|
-
return [basePath];
|
|
227
|
-
}
|
|
228
|
-
const prefix = this.versioningOptions.prefix ?? 'v';
|
|
229
|
-
// Explicit version(s) on the controller
|
|
230
|
-
if (version !== undefined) {
|
|
231
|
-
const versions = Array.isArray(version) ? version : [version];
|
|
232
|
-
return versions.map(v => `/${prefix}${v}${basePath}`);
|
|
233
|
-
}
|
|
234
|
-
// No explicit version — apply defaultVersion if set
|
|
235
|
-
if (this.versioningOptions.defaultVersion !== undefined) {
|
|
236
|
-
const defaults = Array.isArray(this.versioningOptions.defaultVersion)
|
|
237
|
-
? this.versioningOptions.defaultVersion
|
|
238
|
-
: [this.versioningOptions.defaultVersion];
|
|
239
|
-
return defaults.map(v => `/${prefix}${v}${basePath}`);
|
|
240
|
-
}
|
|
241
|
-
// Versioning enabled but no version and no default — no prefix
|
|
242
|
-
return [basePath];
|
|
243
|
-
}
|
|
244
|
-
/**
|
|
245
|
-
* Create a guard execution middleware
|
|
246
|
-
*
|
|
247
|
-
* This middleware executes all guards for a route before the handler.
|
|
248
|
-
* Guards are executed in order; all must pass for the request to proceed.
|
|
249
|
-
*
|
|
250
|
-
* @param guards - Array of guards to execute
|
|
251
|
-
* @returns Hono middleware function
|
|
252
|
-
*/
|
|
253
|
-
createGuardMiddleware(guards) {
|
|
254
|
-
const guardService = new GuardExecutionService(this.logger);
|
|
255
|
-
return async (c, next) => {
|
|
256
|
-
const ctx = new RouterContext(c);
|
|
257
|
-
const container = ctx.getContainer();
|
|
258
|
-
// Execute all guards - throws on failure
|
|
259
|
-
await guardService.executeGuards(guards, ctx, container);
|
|
260
|
-
// All guards passed, continue to handler
|
|
261
|
-
await next();
|
|
262
|
-
};
|
|
263
|
-
}
|
|
264
|
-
/**
|
|
265
|
-
* Register wildcard route for non-RESTful controllers
|
|
266
|
-
*/
|
|
267
|
-
registerWildcardRoute(app, ControllerClass, route) {
|
|
268
|
-
this.logger.info(`Registering wildcard route`, {
|
|
269
|
-
controller: ControllerClass.name,
|
|
270
|
-
route: `${route}/:path{.+}`,
|
|
271
|
-
method: 'ALL',
|
|
272
|
-
});
|
|
273
|
-
const handler = this.createControllerHandler(ControllerClass, 'handle');
|
|
274
|
-
// Match base route exactly
|
|
275
|
-
app.all(route, handler);
|
|
276
|
-
// Match all sub-paths using named regex wildcard
|
|
277
|
-
app.all(`${route}/:path{.+}`, handler);
|
|
278
|
-
}
|
|
279
|
-
/**
|
|
280
|
-
* Register OpenAPI routes with metadata
|
|
281
|
-
*/
|
|
282
|
-
registerOpenAPIRoutes(app, ControllerClass, route, decoratedMethods, controllerOpts) {
|
|
283
|
-
const className = ControllerClass.name;
|
|
284
|
-
const prototype = ControllerClass.prototype;
|
|
285
|
-
// Check if entire controller is hidden from docs
|
|
286
|
-
const controllerHidden = controllerOpts?.hideFromDocs ?? false;
|
|
287
|
-
// Collect controller-level guards
|
|
288
|
-
const controllerGuards = getControllerGuards(ControllerClass)?.guards ?? [];
|
|
289
|
-
for (const methodName of decoratedMethods) {
|
|
290
|
-
const routeConfig = getRouteConfig(prototype, methodName);
|
|
291
|
-
if (!routeConfig)
|
|
292
|
-
continue;
|
|
293
|
-
const derived = this.deriveHttpMethodAndPath(methodName, route);
|
|
294
|
-
if (!derived) {
|
|
295
|
-
this.logger.warn(`Cannot derive HTTP method/path for ${className}.${methodName}`);
|
|
296
|
-
continue;
|
|
297
|
-
}
|
|
298
|
-
// Check if route is hidden (route-level overrides controller-level)
|
|
299
|
-
const hideFromDocs = routeConfig.hideFromDocs ?? controllerHidden;
|
|
300
|
-
if (hideFromDocs) {
|
|
301
|
-
// Register route handler without OpenAPI metadata
|
|
302
|
-
this.logger.info(`Registering hidden route (no OpenAPI)`, {
|
|
303
|
-
controller: className,
|
|
304
|
-
method: derived.method.toUpperCase(),
|
|
305
|
-
path: derived.path,
|
|
306
|
-
methodName,
|
|
307
|
-
});
|
|
308
|
-
this.registerRouteWithoutOpenAPI(app, ControllerClass, methodName, derived);
|
|
309
|
-
continue;
|
|
310
|
-
}
|
|
311
|
-
// Collect method-level guards
|
|
312
|
-
const methodGuards = getMethodGuards(prototype, methodName)?.guards ?? [];
|
|
313
|
-
// Combine controller and method guards
|
|
314
|
-
// Controller guards run first, then method guards
|
|
315
|
-
const allGuards = [...controllerGuards, ...methodGuards];
|
|
316
|
-
if (allGuards.length > 0) {
|
|
317
|
-
this.logger.info(`Route guards`, {
|
|
318
|
-
controller: className,
|
|
319
|
-
method: derived.method.toUpperCase(),
|
|
320
|
-
path: derived.path,
|
|
321
|
-
methodName,
|
|
322
|
-
guardCount: allGuards.length,
|
|
323
|
-
});
|
|
324
|
-
}
|
|
325
|
-
// Build and register OpenAPI route
|
|
326
|
-
const metadata = this.mergeMetadata(controllerOpts, routeConfig, ControllerClass, methodName);
|
|
327
|
-
const openApiRoute = this.buildOpenAPIRoute(derived.method, derived.path, routeConfig, metadata, allGuards, methodName);
|
|
328
|
-
this.logger.info(`Registering OpenAPI route`, {
|
|
329
|
-
controller: className,
|
|
330
|
-
method: derived.method.toUpperCase(),
|
|
331
|
-
path: derived.path,
|
|
332
|
-
methodName,
|
|
333
|
-
tags: metadata.tags,
|
|
334
|
-
});
|
|
335
|
-
// Register OpenAPI route with handler
|
|
336
|
-
app.openapi(openApiRoute, async (c) => {
|
|
337
|
-
const ctx = new RouterContext(c);
|
|
338
|
-
const requestContainer = ctx.getContainer();
|
|
339
|
-
const controller = requestContainer.resolve(ControllerClass);
|
|
340
|
-
const method = controller[methodName];
|
|
341
|
-
if (typeof method === 'function') {
|
|
342
|
-
const injectedArgs = this.resolveMethodInjections(prototype, methodName, requestContainer);
|
|
343
|
-
return await method.call(controller, ctx, ...injectedArgs);
|
|
344
|
-
}
|
|
345
|
-
throw new ControllerMethodNotFoundError(methodName, className);
|
|
346
|
-
});
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
/**
|
|
350
|
-
* Register routes using HTTP method decorators (@Get, @Post, etc.)
|
|
351
|
-
* These use explicit method + path instead of convention-based derivation
|
|
352
|
-
*/
|
|
353
|
-
registerHttpRoutes(app, ControllerClass, basePath, httpDecoratedMethods, controllerOpts) {
|
|
354
|
-
const className = ControllerClass.name;
|
|
355
|
-
const prototype = ControllerClass.prototype;
|
|
356
|
-
const controllerHidden = controllerOpts?.hideFromDocs ?? false;
|
|
357
|
-
const controllerGuards = getControllerGuards(ControllerClass)?.guards ?? [];
|
|
358
|
-
for (const methodName of httpDecoratedMethods) {
|
|
359
|
-
const httpMeta = getHttpRouteMetadata(prototype, methodName);
|
|
360
|
-
if (!httpMeta)
|
|
361
|
-
continue;
|
|
362
|
-
const fullPath = this.joinPaths(basePath, httpMeta.path);
|
|
363
|
-
const routeConfig = httpMeta.config;
|
|
364
|
-
const hideFromDocs = routeConfig.hideFromDocs ?? controllerHidden;
|
|
365
|
-
// @All routes or hidden routes are registered without OpenAPI
|
|
366
|
-
if (httpMeta.method === 'all' || hideFromDocs) {
|
|
367
|
-
this.logger.info(`Registering route (no OpenAPI)`, {
|
|
368
|
-
controller: className,
|
|
369
|
-
method: httpMeta.method.toUpperCase(),
|
|
370
|
-
path: fullPath,
|
|
371
|
-
methodName,
|
|
372
|
-
});
|
|
373
|
-
this.registerRouteWithoutOpenAPI(app, ControllerClass, methodName, {
|
|
374
|
-
method: httpMeta.method,
|
|
375
|
-
path: fullPath,
|
|
376
|
-
});
|
|
377
|
-
continue;
|
|
378
|
-
}
|
|
379
|
-
// Collect method-level guards
|
|
380
|
-
const methodGuards = getMethodGuards(prototype, methodName)?.guards ?? [];
|
|
381
|
-
const allGuards = [...controllerGuards, ...methodGuards];
|
|
382
|
-
if (allGuards.length > 0) {
|
|
383
|
-
this.logger.info(`Route guards`, {
|
|
384
|
-
controller: className,
|
|
385
|
-
method: httpMeta.method.toUpperCase(),
|
|
386
|
-
path: fullPath,
|
|
387
|
-
methodName,
|
|
388
|
-
guardCount: allGuards.length,
|
|
389
|
-
});
|
|
390
|
-
}
|
|
391
|
-
// Build and register OpenAPI route
|
|
392
|
-
const metadata = this.mergeMetadata(controllerOpts, routeConfig, ControllerClass, methodName);
|
|
393
|
-
const statusCode = routeConfig.statusCode ?? 200;
|
|
394
|
-
const openApiRoute = this.buildOpenAPIRoute(httpMeta.method, fullPath, routeConfig, metadata, allGuards, undefined, statusCode);
|
|
395
|
-
this.logger.info(`Registering OpenAPI route`, {
|
|
396
|
-
controller: className,
|
|
397
|
-
method: httpMeta.method.toUpperCase(),
|
|
398
|
-
path: fullPath,
|
|
399
|
-
methodName,
|
|
400
|
-
tags: metadata.tags,
|
|
401
|
-
});
|
|
402
|
-
app.openapi(openApiRoute, async (c) => {
|
|
403
|
-
const ctx = new RouterContext(c);
|
|
404
|
-
const requestContainer = ctx.getContainer();
|
|
405
|
-
const controller = requestContainer.resolve(ControllerClass);
|
|
406
|
-
const method = controller[methodName];
|
|
407
|
-
if (typeof method === 'function') {
|
|
408
|
-
const injectedArgs = this.resolveMethodInjections(prototype, methodName, requestContainer);
|
|
409
|
-
return await method.call(controller, ctx, ...injectedArgs);
|
|
410
|
-
}
|
|
411
|
-
throw new ControllerMethodNotFoundError(methodName, className);
|
|
412
|
-
});
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
/**
|
|
416
|
-
* Join a base path and a route path, normalizing slashes
|
|
417
|
-
*/
|
|
418
|
-
joinPaths(basePath, routePath) {
|
|
419
|
-
if (routePath === '/')
|
|
420
|
-
return basePath;
|
|
421
|
-
return basePath + routePath;
|
|
422
|
-
}
|
|
423
|
-
/**
|
|
424
|
-
* Register route without OpenAPI metadata (for hidden routes)
|
|
425
|
-
* Route is functional but won't appear in documentation
|
|
426
|
-
*/
|
|
427
|
-
registerRouteWithoutOpenAPI(app, ControllerClass, methodName, derived) {
|
|
428
|
-
// Create handler function
|
|
429
|
-
const prototype = ControllerClass.prototype;
|
|
430
|
-
const handler = async (c) => {
|
|
431
|
-
const ctx = new RouterContext(c);
|
|
432
|
-
const requestContainer = ctx.getContainer();
|
|
433
|
-
const controller = requestContainer.resolve(ControllerClass);
|
|
434
|
-
const method = controller[methodName];
|
|
435
|
-
if (typeof method === 'function') {
|
|
436
|
-
const injectedArgs = this.resolveMethodInjections(prototype, methodName, requestContainer);
|
|
437
|
-
return await method.call(controller, ctx, ...injectedArgs);
|
|
438
|
-
}
|
|
439
|
-
throw new ControllerMethodNotFoundError(methodName, ControllerClass.name);
|
|
440
|
-
};
|
|
441
|
-
// Register route handler without OpenAPI metadata using type-safe method dispatch
|
|
442
|
-
// Note: Only common HTTP methods (get, post, put, patch, delete) are supported
|
|
443
|
-
// For other methods, we fall back to all() which accepts any HTTP method
|
|
444
|
-
switch (derived.method) {
|
|
445
|
-
case 'get':
|
|
446
|
-
app.get(derived.path, handler);
|
|
447
|
-
break;
|
|
448
|
-
case 'post':
|
|
449
|
-
app.post(derived.path, handler);
|
|
450
|
-
break;
|
|
451
|
-
case 'put':
|
|
452
|
-
app.put(derived.path, handler);
|
|
453
|
-
break;
|
|
454
|
-
case 'patch':
|
|
455
|
-
app.patch(derived.path, handler);
|
|
456
|
-
break;
|
|
457
|
-
case 'delete':
|
|
458
|
-
app.delete(derived.path, handler);
|
|
459
|
-
break;
|
|
460
|
-
case 'all':
|
|
461
|
-
app.all(derived.path, handler);
|
|
462
|
-
break;
|
|
463
|
-
default:
|
|
464
|
-
// For head, options, trace, or any other method, use all()
|
|
465
|
-
app.all(derived.path, handler);
|
|
466
|
-
break;
|
|
467
|
-
}
|
|
468
|
-
}
|
|
469
|
-
/**
|
|
470
|
-
* Register traditional RESTful routes without OpenAPI
|
|
471
|
-
*/
|
|
472
|
-
registerRESTfulRoutes(app, ControllerClass, route, prototype) {
|
|
473
|
-
if (prototype.index) {
|
|
474
|
-
app.get(route, this.createControllerHandler(ControllerClass, 'index'));
|
|
475
|
-
}
|
|
476
|
-
if (prototype.show) {
|
|
477
|
-
app.get(`${route}/:id`, this.createControllerHandler(ControllerClass, 'show'));
|
|
478
|
-
}
|
|
479
|
-
if (prototype.create) {
|
|
480
|
-
app.post(route, this.createControllerHandler(ControllerClass, 'create'));
|
|
481
|
-
}
|
|
482
|
-
if (prototype.update) {
|
|
483
|
-
app.put(`${route}/:id`, this.createControllerHandler(ControllerClass, 'update'));
|
|
484
|
-
}
|
|
485
|
-
if (prototype.patch) {
|
|
486
|
-
app.patch(`${route}/:id`, this.createControllerHandler(ControllerClass, 'patch'));
|
|
487
|
-
}
|
|
488
|
-
if (prototype.destroy) {
|
|
489
|
-
app.delete(`${route}/:id`, this.createControllerHandler(ControllerClass, 'destroy'));
|
|
490
|
-
}
|
|
491
|
-
}
|
|
492
|
-
/**
|
|
493
|
-
* Auto-derive HTTP method and path from controller method name
|
|
494
|
-
* Uses HTTP_METHODS constant for RESTful convention mapping
|
|
495
|
-
*/
|
|
496
|
-
deriveHttpMethodAndPath(methodName, basePath) {
|
|
497
|
-
if (!(methodName in HTTP_METHODS))
|
|
498
|
-
return null;
|
|
499
|
-
const mapping = HTTP_METHODS[methodName];
|
|
500
|
-
return {
|
|
501
|
-
method: mapping.method,
|
|
502
|
-
path: basePath + mapping.path,
|
|
503
|
-
};
|
|
504
|
-
}
|
|
505
|
-
/**
|
|
506
|
-
* Merge controller-level and route-level metadata
|
|
507
|
-
* Tags are merged (appended), security is merged (union)
|
|
508
|
-
* Guards automatically add sessionCookie security if present
|
|
509
|
-
*/
|
|
510
|
-
mergeMetadata(controllerOpts, routeConfig, ControllerClass, methodName) {
|
|
511
|
-
const tags = [...(controllerOpts?.tags ?? []), ...(routeConfig.tags ?? [])];
|
|
512
|
-
// Check if guards are present (indicates authentication is required)
|
|
513
|
-
const prototype = ControllerClass.prototype;
|
|
514
|
-
const hasMethodGuards = (getMethodGuards(prototype, methodName)?.guards.length ?? 0) > 0;
|
|
515
|
-
const hasControllerGuards = (getControllerGuards(ControllerClass)?.guards.length ?? 0) > 0;
|
|
516
|
-
const requiresAuth = hasMethodGuards || hasControllerGuards;
|
|
517
|
-
// Merge security: if route explicitly sets security (even empty array), use it
|
|
518
|
-
// Otherwise inherit from controller
|
|
519
|
-
let security = [];
|
|
520
|
-
if (routeConfig.security !== undefined) {
|
|
521
|
-
// Route has explicit security (could be empty for public routes)
|
|
522
|
-
security = [...(controllerOpts?.security ?? []), ...routeConfig.security];
|
|
523
|
-
}
|
|
524
|
-
else if (controllerOpts?.security) {
|
|
525
|
-
// Inherit controller security
|
|
526
|
-
security = controllerOpts.security;
|
|
527
|
-
}
|
|
528
|
-
// Auto-add sessionCookie security if guards are present
|
|
529
|
-
if (requiresAuth && !security.includes(SECURITY_SCHEMES.SESSION_COOKIE)) {
|
|
530
|
-
security.push(SECURITY_SCHEMES.SESSION_COOKIE);
|
|
531
|
-
}
|
|
532
|
-
// Convert security array to OpenAPI security format
|
|
533
|
-
const securityArray = security.length > 0
|
|
534
|
-
? (security.map((scheme) => ({ [scheme]: [] })))
|
|
535
|
-
: [];
|
|
536
|
-
return { tags, security: securityArray };
|
|
537
|
-
}
|
|
538
|
-
/**
|
|
539
|
-
* Build OpenAPI route configuration from metadata
|
|
540
|
-
* Creates a route definition compatible with @hono/zod-openapi
|
|
541
|
-
* Includes guard execution for proper access control
|
|
542
|
-
*
|
|
543
|
-
* Execution order: Global middlewares → Guards → Handler
|
|
544
|
-
*/
|
|
545
|
-
buildOpenAPIRoute(method, path, routeConfig, metadata, guards, methodName, statusCodeOverride) {
|
|
546
|
-
try {
|
|
547
|
-
const route = {
|
|
548
|
-
method,
|
|
549
|
-
path,
|
|
550
|
-
request: {},
|
|
551
|
-
responses: {},
|
|
552
|
-
};
|
|
553
|
-
// Add guard execution middleware using Hono's built-in middleware property
|
|
554
|
-
if (guards.length > 0) {
|
|
555
|
-
route.middleware = [this.createGuardMiddleware(guards)];
|
|
556
|
-
}
|
|
557
|
-
// Add request body if defined
|
|
558
|
-
if (routeConfig.body) {
|
|
559
|
-
const bodySchema = this.isRouteBodyObject(routeConfig.body) ? routeConfig.body.schema : routeConfig.body;
|
|
560
|
-
const bodyContentType = this.isRouteBodyObject(routeConfig.body) ? routeConfig.body.contentType ?? DEFAULT_CONTENT_TYPE : DEFAULT_CONTENT_TYPE;
|
|
561
|
-
route.request = {
|
|
562
|
-
...route.request,
|
|
563
|
-
body: {
|
|
564
|
-
content: {
|
|
565
|
-
[bodyContentType]: {
|
|
566
|
-
schema: bodySchema,
|
|
567
|
-
},
|
|
568
|
-
},
|
|
569
|
-
},
|
|
570
|
-
};
|
|
571
|
-
}
|
|
572
|
-
// Add query parameters if defined
|
|
573
|
-
if (routeConfig.query) {
|
|
574
|
-
route.request = {
|
|
575
|
-
...route.request,
|
|
576
|
-
query: routeConfig.query,
|
|
577
|
-
};
|
|
578
|
-
}
|
|
579
|
-
// Add URL parameters if defined
|
|
580
|
-
if (routeConfig.params) {
|
|
581
|
-
route.request = {
|
|
582
|
-
...route.request,
|
|
583
|
-
params: routeConfig.params,
|
|
584
|
-
};
|
|
585
|
-
}
|
|
586
|
-
// Derive success status code from method name or use override
|
|
587
|
-
const successStatus = statusCodeOverride
|
|
588
|
-
?? (methodName && METHOD_STATUS_CODES[methodName])
|
|
589
|
-
?? 200;
|
|
590
|
-
// Build responses object with auto-derived status
|
|
591
|
-
const responses = {};
|
|
592
|
-
// Add success response with derived status code
|
|
593
|
-
const responseDef = routeConfig.response;
|
|
594
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- response may be undefined at runtime
|
|
595
|
-
if (responseDef) {
|
|
596
|
-
if (typeof responseDef === 'object' && 'schema' in responseDef) {
|
|
597
|
-
const responseContentType = responseDef.contentType ?? DEFAULT_CONTENT_TYPE;
|
|
598
|
-
responses[successStatus] = {
|
|
599
|
-
content: {
|
|
600
|
-
[responseContentType]: { schema: responseDef.schema },
|
|
601
|
-
},
|
|
602
|
-
description: responseDef.description ?? `Response ${successStatus}`,
|
|
603
|
-
};
|
|
604
|
-
}
|
|
605
|
-
else {
|
|
606
|
-
responses[successStatus] = {
|
|
607
|
-
content: {
|
|
608
|
-
[DEFAULT_CONTENT_TYPE]: { schema: responseDef },
|
|
609
|
-
},
|
|
610
|
-
description: `Response ${successStatus}`,
|
|
611
|
-
};
|
|
612
|
-
}
|
|
613
|
-
}
|
|
614
|
-
// Auto-merge common error schemas (400, 401, 403, 404, 409, 500)
|
|
615
|
-
// Controllers only need to define success response; error responses are added automatically
|
|
616
|
-
for (const [statusStr, schema] of Object.entries(commonErrorSchemas)) {
|
|
617
|
-
const status = parseInt(statusStr);
|
|
618
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- defensive: avoid overwriting success response status
|
|
619
|
-
responses[status] ??= schema;
|
|
620
|
-
}
|
|
621
|
-
route.responses = responses;
|
|
622
|
-
// Add tags if provided
|
|
623
|
-
if (metadata.tags.length > 0) {
|
|
624
|
-
route.tags = metadata.tags;
|
|
625
|
-
}
|
|
626
|
-
// Add security if provided
|
|
627
|
-
if (metadata.security.length > 0) {
|
|
628
|
-
route.security = metadata.security;
|
|
629
|
-
}
|
|
630
|
-
// Add description and summary
|
|
631
|
-
if (routeConfig.description) {
|
|
632
|
-
route.description = routeConfig.description;
|
|
633
|
-
}
|
|
634
|
-
if (routeConfig.summary) {
|
|
635
|
-
route.summary = routeConfig.summary;
|
|
636
|
-
}
|
|
637
|
-
return createRoute(route);
|
|
638
|
-
}
|
|
639
|
-
catch (error) {
|
|
640
|
-
throw new OpenAPIRouteRegistrationError(path, error instanceof Error ? error.message : String(error));
|
|
641
|
-
}
|
|
642
|
-
}
|
|
643
|
-
/**
|
|
644
|
-
* Check if a body definition is a RouteBodyObject (has schema key) vs bare ZodType
|
|
645
|
-
*/
|
|
646
|
-
isRouteBodyObject(body) {
|
|
647
|
-
return typeof body === 'object' && 'schema' in body;
|
|
648
|
-
}
|
|
649
|
-
/**
|
|
650
|
-
* Resolve method parameter injections from the container
|
|
651
|
-
*
|
|
652
|
-
* @param prototype - Controller prototype
|
|
653
|
-
* @param methodName - Method name to get injections for
|
|
654
|
-
* @param container - Request-scoped container
|
|
655
|
-
* @returns Array of resolved dependencies in parameter order
|
|
656
|
-
*/
|
|
657
|
-
resolveMethodInjections(prototype, methodName, container) {
|
|
658
|
-
const injections = getMethodInjections(prototype, methodName);
|
|
659
|
-
if (!injections.length)
|
|
660
|
-
return [];
|
|
661
|
-
return injections.map((inj) => container.resolve(inj.token));
|
|
662
|
-
}
|
|
663
|
-
/**
|
|
664
|
-
* Create controller handler that resolves controller from request-scoped container
|
|
665
|
-
* This ensures each request gets a fresh controller with request-scoped context
|
|
666
|
-
*/
|
|
667
|
-
createControllerHandler(ControllerClass, methodName) {
|
|
668
|
-
return async (c) => {
|
|
669
|
-
this.logger.info('Handler invoked', {
|
|
670
|
-
path: c.req.path,
|
|
671
|
-
method: c.req.method,
|
|
672
|
-
controller: ControllerClass.name,
|
|
673
|
-
methodName: methodName,
|
|
674
|
-
});
|
|
675
|
-
try {
|
|
676
|
-
const ctx = new RouterContext(c);
|
|
677
|
-
const requestContainer = ctx.getContainer();
|
|
678
|
-
// Resolve controller from request-scoped container
|
|
679
|
-
// Controller will get request-scoped TenancyContext via DI
|
|
680
|
-
const controller = requestContainer.resolve(ControllerClass);
|
|
681
|
-
const method = controller[methodName];
|
|
682
|
-
if (typeof method === 'function') {
|
|
683
|
-
const injectedArgs = this.resolveMethodInjections(ControllerClass.prototype, methodName, requestContainer);
|
|
684
|
-
return await method.apply(controller, [ctx, ...injectedArgs]);
|
|
685
|
-
}
|
|
686
|
-
throw new ControllerMethodNotFoundError(methodName, ControllerClass.name);
|
|
687
|
-
}
|
|
688
|
-
catch (error) {
|
|
689
|
-
this.logger.error('Error in controller handler', {
|
|
690
|
-
controller: ControllerClass.name,
|
|
691
|
-
methodName: methodName,
|
|
692
|
-
error: error instanceof Error ? error.message : String(error),
|
|
693
|
-
stack: error instanceof Error ? error.stack : undefined,
|
|
694
|
-
});
|
|
695
|
-
throw error;
|
|
696
|
-
}
|
|
697
|
-
};
|
|
698
|
-
}
|
|
699
|
-
}
|
|
700
|
-
//# sourceMappingURL=route-registration.service.js.map
|