stratal 0.0.18 → 0.0.20

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.
Files changed (185) hide show
  1. package/README.md +8 -8
  2. package/dist/{base-email.provider-Cuw4OAB0.mjs → base-email.provider-CfQCA08m.mjs} +1 -1
  3. package/dist/{base-email.provider-Cuw4OAB0.mjs.map → base-email.provider-CfQCA08m.mjs.map} +1 -1
  4. package/dist/bin/cloudflare-workers-loader.mjs.map +1 -1
  5. package/dist/bin/quarry.mjs +26 -35
  6. package/dist/bin/quarry.mjs.map +1 -1
  7. package/dist/cache/index.d.mts +2 -153
  8. package/dist/cache/index.d.mts.map +1 -1
  9. package/dist/cache/index.mjs +4 -6
  10. package/dist/cache/index.mjs.map +1 -1
  11. package/dist/cache.service-DsnKuNyO.d.mts +156 -0
  12. package/dist/cache.service-DsnKuNyO.d.mts.map +1 -0
  13. package/dist/cache.tokens-B7Rw1C9Q.mjs +6 -0
  14. package/dist/cache.tokens-B7Rw1C9Q.mjs.map +1 -0
  15. package/dist/{colors-BTAnQRGU.mjs → colors-DJaRDXoS.mjs} +1 -1
  16. package/dist/{colors-BTAnQRGU.mjs.map → colors-DJaRDXoS.mjs.map} +1 -1
  17. package/dist/{command-DjGqCYHv.mjs → command-BgSlsS4M.mjs} +2 -2
  18. package/dist/{command-DjGqCYHv.mjs.map → command-BgSlsS4M.mjs.map} +1 -1
  19. package/dist/{command-B1YuV-UZ.d.mts → command-Bu-PjJrX.d.mts} +2 -2
  20. package/dist/{command-B1YuV-UZ.d.mts.map → command-Bu-PjJrX.d.mts.map} +1 -1
  21. package/dist/config/index.d.mts +81 -37
  22. package/dist/config/index.d.mts.map +1 -1
  23. package/dist/config/index.mjs +126 -45
  24. package/dist/config/index.mjs.map +1 -1
  25. package/dist/{consumer-registry-BkuHXR_u.d.mts → consumer-registry-B7yUNh0q.d.mts} +1 -1
  26. package/dist/{consumer-registry-BkuHXR_u.d.mts.map → consumer-registry-B7yUNh0q.d.mts.map} +1 -1
  27. package/dist/controller.decorator-DQzenvSN.mjs +66 -0
  28. package/dist/controller.decorator-DQzenvSN.mjs.map +1 -0
  29. package/dist/cron/index.d.mts +4 -3
  30. package/dist/cron/index.d.mts.map +1 -1
  31. package/dist/cron/index.mjs +1 -1
  32. package/dist/{cron-manager-1KnZvojs.mjs → cron-manager-7Symz_TE.mjs} +29 -19
  33. package/dist/cron-manager-7Symz_TE.mjs.map +1 -0
  34. package/dist/{cron-manager-BnEZquBL.d.mts → cron-manager-BEsH1mjW.d.mts} +27 -13
  35. package/dist/cron-manager-BEsH1mjW.d.mts.map +1 -0
  36. package/dist/di/index.d.mts +1 -1
  37. package/dist/di/index.mjs +2 -2
  38. package/dist/email/index.d.mts +3 -3
  39. package/dist/email/index.mjs +87 -10
  40. package/dist/email/index.mjs.map +1 -1
  41. package/dist/{en-3QnZwP-u.mjs → en-DSH_bhh6.mjs} +10 -30
  42. package/dist/en-DSH_bhh6.mjs.map +1 -0
  43. package/dist/env-D1rcZ8_r.d.mts +25 -0
  44. package/dist/env-D1rcZ8_r.d.mts.map +1 -0
  45. package/dist/errors/index.d.mts +1 -1
  46. package/dist/errors/index.mjs +1 -1
  47. package/dist/{errors--RBIvDXr.mjs → errors-BdyV5PnY.mjs} +180 -15
  48. package/dist/errors-BdyV5PnY.mjs.map +1 -0
  49. package/dist/{errors-B7hCnXgB.mjs → errors-Da3Pz2X7.mjs} +14 -7
  50. package/dist/errors-Da3Pz2X7.mjs.map +1 -0
  51. package/dist/events/index.d.mts +2 -2
  52. package/dist/events/index.mjs +1 -1
  53. package/dist/{events-UTJliZhl.mjs → events-COKixqnG.mjs} +2 -2
  54. package/dist/{events-UTJliZhl.mjs.map → events-COKixqnG.mjs.map} +1 -1
  55. package/dist/{gateway-context-BdBFoQd8.mjs → gateway-context-CdJjpUCW.mjs} +5 -70
  56. package/dist/gateway-context-CdJjpUCW.mjs.map +1 -0
  57. package/dist/guards/index.d.mts +14 -5
  58. package/dist/guards/index.d.mts.map +1 -1
  59. package/dist/guards/index.mjs +1 -1
  60. package/dist/{guards-MtDgcHnF.mjs → guards-DUk_Kzst.mjs} +1 -1
  61. package/dist/guards-DUk_Kzst.mjs.map +1 -0
  62. package/dist/http-method.decorator-DXwxAfb_.mjs +96 -0
  63. package/dist/http-method.decorator-DXwxAfb_.mjs.map +1 -0
  64. package/dist/i18n/index.d.mts +3 -3
  65. package/dist/i18n/index.mjs +2 -2
  66. package/dist/i18n/messages/en/index.d.mts +1 -1
  67. package/dist/i18n/messages/en/index.mjs +1 -1
  68. package/dist/i18n/utils/index.mjs +1 -1
  69. package/dist/i18n/validation/index.d.mts +2 -2
  70. package/dist/i18n/validation/index.mjs +2 -2
  71. package/dist/{i18n.module-BpLLLCTg.mjs → i18n.module-BBlNNlcG.mjs} +234 -204
  72. package/dist/i18n.module-BBlNNlcG.mjs.map +1 -0
  73. package/dist/index-7-hU3GTV.d.mts +101 -0
  74. package/dist/index-7-hU3GTV.d.mts.map +1 -0
  75. package/dist/{index-Dfpd_ypO.d.mts → index-Bnpfq6uk.d.mts} +81 -19
  76. package/dist/index-Bnpfq6uk.d.mts.map +1 -0
  77. package/dist/{index-BDh9J2KD.d.mts → index-C1KvMncZ.d.mts} +9 -29
  78. package/dist/{index-BDh9J2KD.d.mts.map → index-C1KvMncZ.d.mts.map} +1 -1
  79. package/dist/{index-DPxmo6AY.d.mts → index-CjaQ6_tZ.d.mts} +5 -4
  80. package/dist/index-CjaQ6_tZ.d.mts.map +1 -0
  81. package/dist/{index-BrmS34sa.d.mts → index-D0US0X14.d.mts} +375 -235
  82. package/dist/index-D0US0X14.d.mts.map +1 -0
  83. package/dist/{index-BR23zDMy.d.mts → index-DBd_2wv8.d.mts} +1 -1
  84. package/dist/{index-BR23zDMy.d.mts.map → index-DBd_2wv8.d.mts.map} +1 -1
  85. package/dist/index.d.mts +3 -2
  86. package/dist/index.d.mts.map +1 -1
  87. package/dist/index.mjs +1 -1
  88. package/dist/{is-command-PvULqiTa.mjs → is-command-C6a7WTPw.mjs} +2 -2
  89. package/dist/{is-command-PvULqiTa.mjs.map → is-command-C6a7WTPw.mjs.map} +1 -1
  90. package/dist/{is-seeder-BN9Ej1r7.mjs → is-seeder-CebjZCDn.mjs} +1 -1
  91. package/dist/{is-seeder-BN9Ej1r7.mjs.map → is-seeder-CebjZCDn.mjs.map} +1 -1
  92. package/dist/logger/index.d.mts +1 -1
  93. package/dist/logger/index.mjs +1 -1
  94. package/dist/{logger-c0ftIK4G.mjs → logger-V6Ms3QnQ.mjs} +38 -20
  95. package/dist/{logger-c0ftIK4G.mjs.map → logger-V6Ms3QnQ.mjs.map} +1 -1
  96. package/dist/macroable/index.d.mts +2 -0
  97. package/dist/macroable/index.mjs +2 -0
  98. package/dist/macroable-BmufBshB.mjs +122 -0
  99. package/dist/macroable-BmufBshB.mjs.map +1 -0
  100. package/dist/module/index.d.mts +2 -2
  101. package/dist/module/index.mjs +1 -1
  102. package/dist/{module-C3YZ-kZN.mjs → module-Dk2qTa77.mjs} +160 -19
  103. package/dist/module-Dk2qTa77.mjs.map +1 -0
  104. package/dist/openapi/index.d.mts +3 -3
  105. package/dist/openapi/index.mjs +2 -2
  106. package/dist/{openapi-tools.service-B77QXD56.mjs → openapi-tools.service-Zs-Ewv7F.mjs} +4 -1
  107. package/dist/{openapi-tools.service-B77QXD56.mjs.map → openapi-tools.service-Zs-Ewv7F.mjs.map} +1 -1
  108. package/dist/{openapi.service-6yj0BUY4.d.mts → openapi.service-BLgvn3hJ.d.mts} +3 -3
  109. package/dist/{openapi.service-6yj0BUY4.d.mts.map → openapi.service-BLgvn3hJ.d.mts.map} +1 -1
  110. package/dist/quarry/index.d.mts +7 -7
  111. package/dist/quarry/index.d.mts.map +1 -1
  112. package/dist/quarry/index.mjs +4 -4
  113. package/dist/{quarry-registry-CQCIlYTO.mjs → quarry-registry-DNEej-Db.mjs} +17 -15
  114. package/dist/quarry-registry-DNEej-Db.mjs.map +1 -0
  115. package/dist/queue/index.d.mts +2 -2
  116. package/dist/queue/index.mjs +2 -2
  117. package/dist/{queue.module-DIjD6nr-.mjs → queue.module-BCdCiySt.mjs} +4 -4
  118. package/dist/{queue.module-DIjD6nr-.mjs.map → queue.module-BCdCiySt.mjs.map} +1 -1
  119. package/dist/r2-storage.provider-Co6F0ZYV.mjs +244 -0
  120. package/dist/r2-storage.provider-Co6F0ZYV.mjs.map +1 -0
  121. package/dist/rate-limit.decorator--o6Q6p9w.mjs +55 -0
  122. package/dist/rate-limit.decorator--o6Q6p9w.mjs.map +1 -0
  123. package/dist/rate-limiter/index.d.mts +420 -0
  124. package/dist/rate-limiter/index.d.mts.map +1 -0
  125. package/dist/rate-limiter/index.mjs +365 -0
  126. package/dist/rate-limiter/index.mjs.map +1 -0
  127. package/dist/{resend.provider-Bvw36rQy.mjs → resend.provider-M6qRLrcy.mjs} +2 -2
  128. package/dist/{resend.provider-Bvw36rQy.mjs.map → resend.provider-M6qRLrcy.mjs.map} +1 -1
  129. package/dist/router/index.d.mts +2 -2
  130. package/dist/router/index.mjs +7 -5
  131. package/dist/seeder/index.d.mts +3 -3
  132. package/dist/seeder/index.mjs +2 -2
  133. package/dist/{seeder-D7VXULXB.mjs → seeder-CJAOHEIo.mjs} +5 -5
  134. package/dist/{seeder-D7VXULXB.mjs.map → seeder-CJAOHEIo.mjs.map} +1 -1
  135. package/dist/{setup-BRIN-iYT.mjs → setup-CefZKV_e.mjs} +1 -1
  136. package/dist/{setup-BRIN-iYT.mjs.map → setup-CefZKV_e.mjs.map} +1 -1
  137. package/dist/signed-url-BQPbv2In.mjs +74 -0
  138. package/dist/signed-url-BQPbv2In.mjs.map +1 -0
  139. package/dist/{smtp.provider-CAwpvzvD.mjs → smtp.provider-w0Ve52Xg.mjs} +2 -2
  140. package/dist/{smtp.provider-CAwpvzvD.mjs.map → smtp.provider-w0Ve52Xg.mjs.map} +1 -1
  141. package/dist/storage/index.d.mts +39 -17
  142. package/dist/storage/index.d.mts.map +1 -1
  143. package/dist/storage/index.mjs +3 -3
  144. package/dist/storage/providers/index.d.mts +30 -70
  145. package/dist/storage/providers/index.d.mts.map +1 -1
  146. package/dist/storage/providers/index.mjs +2 -2
  147. package/dist/{storage-CJ-QOwNv.mjs → storage-1zw-6Yiz.mjs} +101 -27
  148. package/dist/storage-1zw-6Yiz.mjs.map +1 -0
  149. package/dist/{storage-provider.interface-YRtyYBxV.d.mts → storage-provider.interface-Bd6vA4ak.d.mts} +20 -21
  150. package/dist/storage-provider.interface-Bd6vA4ak.d.mts.map +1 -0
  151. package/dist/{stratal-B7G4i9-N.mjs → stratal-DeEcGgdq.mjs} +57 -26
  152. package/dist/stratal-DeEcGgdq.mjs.map +1 -0
  153. package/dist/{types-CN0zONAZ.d.mts → types-cySNS_lp.d.mts} +1 -1
  154. package/dist/types-cySNS_lp.d.mts.map +1 -0
  155. package/dist/{usage-generator-Cl1HPlUp.mjs → usage-generator-BUdlhnCK.mjs} +2 -2
  156. package/dist/{usage-generator-Cl1HPlUp.mjs.map → usage-generator-BUdlhnCK.mjs.map} +1 -1
  157. package/dist/{validation-B4bePOa_.mjs → validation-DtJwAv7O.mjs} +62 -8
  158. package/dist/validation-DtJwAv7O.mjs.map +1 -0
  159. package/dist/websocket/index.d.mts +9 -4
  160. package/dist/websocket/index.d.mts.map +1 -1
  161. package/dist/websocket/index.mjs +1 -1
  162. package/dist/workers/index.d.mts +2 -1
  163. package/dist/workers/index.d.mts.map +1 -1
  164. package/dist/workers/index.mjs +2 -2
  165. package/package.json +32 -40
  166. package/dist/cron-manager-1KnZvojs.mjs.map +0 -1
  167. package/dist/cron-manager-BnEZquBL.d.mts.map +0 -1
  168. package/dist/en-3QnZwP-u.mjs.map +0 -1
  169. package/dist/errors--RBIvDXr.mjs.map +0 -1
  170. package/dist/errors-B7hCnXgB.mjs.map +0 -1
  171. package/dist/gateway-context-BdBFoQd8.mjs.map +0 -1
  172. package/dist/guards-MtDgcHnF.mjs.map +0 -1
  173. package/dist/i18n.module-BpLLLCTg.mjs.map +0 -1
  174. package/dist/index-BrmS34sa.d.mts.map +0 -1
  175. package/dist/index-DPxmo6AY.d.mts.map +0 -1
  176. package/dist/index-Dfpd_ypO.d.mts.map +0 -1
  177. package/dist/module-C3YZ-kZN.mjs.map +0 -1
  178. package/dist/quarry-registry-CQCIlYTO.mjs.map +0 -1
  179. package/dist/s3-storage.provider-BAhHDMI3.mjs +0 -343
  180. package/dist/s3-storage.provider-BAhHDMI3.mjs.map +0 -1
  181. package/dist/storage-CJ-QOwNv.mjs.map +0 -1
  182. package/dist/storage-provider.interface-YRtyYBxV.d.mts.map +0 -1
  183. package/dist/stratal-B7G4i9-N.mjs.map +0 -1
  184. package/dist/types-CN0zONAZ.d.mts.map +0 -1
  185. package/dist/validation-B4bePOa_.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-D0US0X14.d.mts","names":[],"sources":["../src/errors/error-response.ts","../src/di/types.ts","../src/di/conditional-binding-builder.ts","../src/di/container.ts","../src/router/route-map.ts","../src/di/tokens.ts","../src/di/decorators/inject-param.decorator.ts","../src/di/decorators.ts","../src/di/errors/conditional-binding-fallback.error.ts","../src/di/errors/request-scope-operation-not-allowed.error.ts","../src/di/container-storage.ts","../src/router/constants.ts","../src/router/types.ts","../src/execution-context.ts","../src/errors/exception-handler.types.ts","../src/errors/exception-handler.ts","../src/module/types.ts","../src/quarry/types.ts","../src/router/controller.ts","../src/router/middleware.interface.ts","../src/router/hono-app.ts","../src/router/services/locale-path.service.ts","../src/router/router.internals.ts","../src/router/router.ts","../src/module/module-registry.ts","../src/router/services/versioning.service.ts","../src/router/route-registry.ts","../src/router/router-resolver.ts","../src/router/services/route-registration.service.ts","../src/router/router.tokens.ts","../src/router/route-url.ts","../src/router/utils/path.ts","../src/router/utils/route-name.ts","../src/router/middleware/middleware-chain.ts","../src/router/decorators/controller.decorator.ts","../src/router/decorators/http-method.decorator.ts","../src/router/decorators/route.decorator.ts","../src/router/schemas/common.schemas.ts","../src/router/middleware/domain.middleware.ts","../src/router/middleware/verify-signature.middleware.ts","../src/router/signed-url.ts","../src/router/errors/controller-registration.error.ts","../src/router/errors/hono-app-already-configured.error.ts","../src/router/errors/openapi-route-registration.error.ts","../src/router/errors/openapi-validation.error.ts","../src/router/errors/route-not-found.error.ts","../src/router/errors/schema-validation.error.ts","../src/router/errors/index.ts","../src/application.ts","../src/router/uri.ts","../src/router/router-context.ts","../src/errors/exception-context.ts","../src/i18n/errors/locale-not-supported.error.ts","../src/i18n/errors/translation-missing.error.ts","../src/i18n/i18n.options.ts","../src/i18n/i18n.module.ts","../src/i18n/i18n.tokens.ts","../src/i18n/messages/index.ts","../src/i18n/services/message-registry.ts","../src/i18n/services/message-loader.service.ts","../src/i18n/services/i18n.service.ts","../src/i18n/middleware/i18n-context.middleware.ts","../src/errors/error-codes.ts","../src/errors/application-error.ts","../src/errors/default-exception-handler.ts","../src/errors/get-http-status.ts","../src/errors/http-exception.ts","../src/errors/internal-error.ts","../src/errors/is-application-error.ts","../src/errors/container-not-initialized.error.ts","../src/errors/request-container-not-initialized.error.ts","../src/errors/stratal-not-initialized.error.ts"],"mappings":"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"}
@@ -260,4 +260,4 @@ declare class ConsoleTransport extends BaseTransport {
260
260
  }
261
261
  //#endregion
262
262
  export { LogEntry as a, LOG_LEVEL_PRIORITY as c, LoggerService as i, LogLevel as l, PrettyFormatter as n, InternalLogContext as o, JsonFormatter as r, LogContext as s, ConsoleTransport as t, LOGGER_TOKENS as u };
263
- //# sourceMappingURL=index-BR23zDMy.d.mts.map
263
+ //# sourceMappingURL=index-DBd_2wv8.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-BR23zDMy.d.mts","names":[],"sources":["../src/logger/logger.tokens.ts","../src/logger/contracts/log-level.ts","../src/logger/contracts/log-context.ts","../src/logger/contracts/log-entry.ts","../src/logger/formatters/formatter.interface.ts","../src/logger/transports/transport.interface.ts","../src/logger/services/logger.service.ts","../src/logger/formatters/json-formatter.ts","../src/logger/formatters/pretty-formatter.ts","../src/logger/transports/base-transport.ts","../src/logger/transports/console-transport.ts"],"mappings":";;AAMA;;;;;cAAa,aAAA;;;;;;;;;ECFD;;;EAAA;EACV;;;EAAA;EAGK;;AAOP;EAPO;;;;;ADFP;;;aCFY,QAAA;EACV,KAAA;EACA,IAAA;EACA,IAAA;EACA,KAAA;AAAA;;;;;cAOW,kBAAA,EAAoB,MAAA,CAAO,QAAA;;;;ADTxC;;;KEFY,UAAA,GAAa,MAAA;;;;;UAMR,kBAAA,SAA2B,UAAA;EAC1C,MAAA;EACA,SAAA;AAAA;;;;;;;UCLe,QAAA;EACf,KAAA,EAAO,QAAA;EACP,OAAA;EACA,OAAA,EAAS,kBAAA;EACT,KAAA;IACE,OAAA;IACA,KAAA;IACA,IAAA;EAAA;AAAA;;;AHRJ;;;;AAAA,UIAiB,aAAA;;;;;;EAMf,MAAA,CAAO,KAAA,EAAO,QAAA;AAAA;;;AJNhB;;;;AAAA,UKAiB,aAAA;;;;WAIN,IAAA;;;;;;AJNX;;;EIgBE,KAAA,CAAM,KAAA,EAAO,QAAA,EAAU,SAAA,WAAoB,OAAA;AAAA;;;;;;;;;;;;;;AJhB7C;;;;;;;;;;AAWA;;;;;;;;cKwBa,aAAA;EAAA,iBAGQ,QAAA;EAAA,iBAGA,gBAAA;EAAA,iBAGA,SAAA;EAAA,iBAGA,UAAA;cATA,QAAA,EAAU,QAAA,EAGV,gBAAA,EAAkB,UAAA,CAAW,gBAAA,EAG7B,SAAA,EAAW,aAAA,EAGX,UAAA,EAAY,aAAA;EJzCG;;;EI+ClC,KAAA,CAAM,OAAA,UAAiB,OAAA,GAAU,UAAA;EJ9CjC;;;EIqDA,IAAA,CAAK,OAAA,UAAiB,OAAA,GAAU,UAAA;;;;EAOhC,IAAA,CAAK,OAAA,UAAiB,OAAA,GAAU,UAAA;EHhET;;;;EGwEvB,KAAA,CAAM,OAAA,UAAiB,cAAA,GAAiB,UAAA,GAAa,KAAA;EHtErD;;;;;EAAA,QGwFQ,GAAA;EHnFN;;;;EAAA,QGgIM,aAAA;;AFxIV;;UEkJU,cAAA;AAAA;;;;;;;;;;;;;;;;ALpJV;;cMca,aAAA,YAAyB,aAAA;EACpC,MAAA,CAAO,KAAA,EAAO,QAAA;AAAA;;;;;;;;;;;;;cCLH,eAAA,YAA2B,aAAA;EAAA,iBACrB,MAAA;EAAA,iBAOA,KAAA;EAEjB,MAAA,CAAO,KAAA,EAAO,QAAA;AAAA;;;;;;;;;uBCfM,aAAA,YAAyB,aAAA;EAAA,kBAC3B,IAAA;;;;WAKT,KAAA,CAAM,KAAA,EAAO,QAAA,EAAU,SAAA,WAAoB,OAAA;;ARXtD;;;;;;YQoBY,WAAA,CAAY,KAAA,WAAgB,KAAA,EAAO,QAAA;AAAA;;;;;;;;;;;cCTlC,gBAAA,SAAyB,aAAA;EAAA,SAC3B,IAAA;EAET,KAAA,CAAM,KAAA,EAAO,QAAA,EAAU,SAAA,WAAoB,OAAA;;;ATd7C;US4BU,gBAAA;AAAA"}
1
+ {"version":3,"file":"index-DBd_2wv8.d.mts","names":[],"sources":["../src/logger/logger.tokens.ts","../src/logger/contracts/log-level.ts","../src/logger/contracts/log-context.ts","../src/logger/contracts/log-entry.ts","../src/logger/formatters/formatter.interface.ts","../src/logger/transports/transport.interface.ts","../src/logger/services/logger.service.ts","../src/logger/formatters/json-formatter.ts","../src/logger/formatters/pretty-formatter.ts","../src/logger/transports/base-transport.ts","../src/logger/transports/console-transport.ts"],"mappings":";;AAMA;;;;;cAAa,aAAA;;;;;;;;;ECFD;;;EAAA;EACV;;;EAAA;EAGK;;AAOP;EAPO;;;;;ADFP;;;aCFY,QAAA;EACV,KAAA;EACA,IAAA;EACA,IAAA;EACA,KAAA;AAAA;;;;;cAOW,kBAAA,EAAoB,MAAA,CAAO,QAAA;;;;ADTxC;;;KEFY,UAAA,GAAa,MAAA;;;;;UAMR,kBAAA,SAA2B,UAAA;EAC1C,MAAA;EACA,SAAA;AAAA;;;;;;;UCLe,QAAA;EACf,KAAA,EAAO,QAAA;EACP,OAAA;EACA,OAAA,EAAS,kBAAA;EACT,KAAA;IACE,OAAA;IACA,KAAA;IACA,IAAA;EAAA;AAAA;;;AHRJ;;;;AAAA,UIAiB,aAAA;;;;;;EAMf,MAAA,CAAO,KAAA,EAAO,QAAA;AAAA;;;AJNhB;;;;AAAA,UKAiB,aAAA;;;;WAIN,IAAA;;;;;;AJNX;;;EIgBE,KAAA,CAAM,KAAA,EAAO,QAAA,EAAU,SAAA,WAAoB,OAAA;AAAA;;;;;;;;;;;;;;AJhB7C;;;;;;;;;;AAWA;;;;;;;;cKwBa,aAAA;EAAA,iBAGQ,QAAA;EAAA,iBAGA,gBAAA;EAAA,iBAGA,SAAA;EAAA,iBAGA,UAAA;cATA,QAAA,EAAU,QAAA,EAGV,gBAAA,EAAkB,UAAA,CAAW,gBAAA,EAG7B,SAAA,EAAW,aAAA,EAGX,UAAA,EAAY,aAAA;EJzCG;;;EI+ClC,KAAA,CAAM,OAAA,UAAiB,OAAA,GAAU,UAAA;EJ9CjC;;;EIqDA,IAAA,CAAK,OAAA,UAAiB,OAAA,GAAU,UAAA;;;;EAOhC,IAAA,CAAK,OAAA,UAAiB,OAAA,GAAU,UAAA;EHhET;;;;EGwEvB,KAAA,CAAM,OAAA,UAAiB,cAAA,GAAiB,UAAA,GAAa,KAAA;EHtErD;;;;;EAAA,QGwFQ,GAAA;EHnFN;;;;EAAA,QGgIM,aAAA;;AFxIV;;UEkJU,cAAA;AAAA;;;;;;;;;;;;;;;;ALpJV;;cMca,aAAA,YAAyB,aAAA;EACpC,MAAA,CAAO,KAAA,EAAO,QAAA;AAAA;;;;;;;;;;;;;cCLH,eAAA,YAA2B,aAAA;EAAA,iBACrB,MAAA;EAAA,iBAOA,KAAA;EAEjB,MAAA,CAAO,KAAA,EAAO,QAAA;AAAA;;;;;;;;;uBCfM,aAAA,YAAyB,aAAA;EAAA,kBAC3B,IAAA;;;;WAKT,KAAA,CAAM,KAAA,EAAO,QAAA,EAAU,SAAA,WAAoB,OAAA;;ARXtD;;;;;;YQoBY,WAAA,CAAY,KAAA,WAAgB,KAAA,EAAO,QAAA;AAAA;;;;;;;;;;;cCTlC,gBAAA,SAAyB,aAAA;EAAA,SAC3B,IAAA;EAET,KAAA,CAAM,KAAA,EAAO,QAAA,EAAU,SAAA,WAAoB,OAAA;;;ATd7C;US4BU,gBAAA;AAAA"}
package/dist/index.d.mts CHANGED
@@ -1,5 +1,6 @@
1
- import { Fn as StratalExecutionContext, Q as ApplicationOptions, Rn as HonoApp, X as Application, Z as ApplicationConfig, ir as StratalEnv } from "./index-BrmS34sa.mjs";
2
- import { t as Constructor } from "./types-CN0zONAZ.mjs";
1
+ import { J as ApplicationOptions, K as Application, an as HonoApp, q as ApplicationConfig, zn as StratalExecutionContext } from "./index-D0US0X14.mjs";
2
+ import { t as Constructor } from "./types-cySNS_lp.mjs";
3
+ import { t as StratalEnv } from "./env-D1rcZ8_r.mjs";
3
4
  //#region src/stratal.d.ts
4
5
  /**
5
6
  * Stratal — Hono-style entry point for Cloudflare Workers.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/stratal.ts"],"mappings":";;;;AAqBA;;;;;;;;;;;;;cAAa,OAAA,aAAoB,UAAA,GAAa,UAAA;EAAA,QACpC,GAAA;EAAA,QACA,WAAA;EAAA,eAEO,YAAA;EAAA,eACA,WAAA;EAAA,eACA,iBAAA;cAEH,MAAA,EAAQ,iBAAA;EAiBd,KAAA,CAAM,OAAA,EAAS,OAAA,EAAS,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,gBAAA,GAAmB,OAAA,CAAQ,QAAA;EAKlE,KAAA,CAAM,KAAA,EAAO,YAAA,GAAe,OAAA;EAK5B,SAAA,CAAU,UAAA,EAAY,mBAAA,GAAsB,OAAA;EAAA,IAK9C,IAAA,CAAA,GAAQ,OAAA,CAAQ,OAAA;EAId,QAAA,CAAA,GAAY,OAAA;EA3CV;;;;;;EAAA,OAyDD,kBAAA,CAAA,GAAsB,OAAA,CAAQ,WAAA;EAAA,QAOvB,WAAA;EAAA,QAKA,UAAA;AAAA"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/stratal.ts"],"mappings":";;;;;;AAqBA;;;;;;;;;;;;cAAa,OAAA,aAAoB,UAAA,GAAa,UAAA;EAAA,QACpC,GAAA;EAAA,QACA,WAAA;EAAA,eAEO,YAAA;EAAA,eACA,WAAA;EAAA,eACA,iBAAA;cAEH,MAAA,EAAQ,iBAAA;EAiBd,KAAA,CAAM,OAAA,EAAS,OAAA,EAAS,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,gBAAA,GAAmB,OAAA,CAAQ,QAAA;EAMlE,KAAA,CAAM,KAAA,EAAO,YAAA,GAAe,OAAA;EAK5B,SAAA,CAAU,UAAA,EAAY,mBAAA,GAAsB,OAAA;EAAA,IAK9C,IAAA,CAAA,GAAQ,OAAA,CAAQ,OAAA;EAId,QAAA,CAAA,GAAY,OAAA;EA7C0B;;;;;;EAAA,OA2DrC,kBAAA,CAAA,GAAsB,OAAA,CAAQ,WAAA;EAAA,QAOvB,WAAA;EAAA,QAKA,UAAA;AAAA"}
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { n as Application, t as Stratal } from "./stratal-B7G4i9-N.mjs";
1
+ import { n as Application, t as Stratal } from "./stratal-DeEcGgdq.mjs";
2
2
  export { Application, Stratal };
@@ -1,4 +1,4 @@
1
- import { t as Command } from "./command-DjGqCYHv.mjs";
1
+ import { t as Command } from "./command-BgSlsS4M.mjs";
2
2
  //#region src/quarry/is-command.ts
3
3
  /**
4
4
  * Check if a class is a Command (extends Command base class).
@@ -11,4 +11,4 @@ function isCommand(target) {
11
11
  //#endregion
12
12
  export { isCommand as t };
13
13
 
14
- //# sourceMappingURL=is-command-PvULqiTa.mjs.map
14
+ //# sourceMappingURL=is-command-C6a7WTPw.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"is-command-PvULqiTa.mjs","names":[],"sources":["../src/quarry/is-command.ts"],"sourcesContent":["import { Command } from './command'\nimport type { Constructor } from '../types'\n\n/**\n * Check if a class is a Command (extends Command base class).\n *\n * Used by ModuleRegistry for auto-discovery from providers.\n */\nexport function isCommand(target: Constructor): boolean {\n return target.prototype instanceof Command\n}\n"],"mappings":";;;;;;;AAQA,SAAgB,UAAU,QAA8B;AACtD,QAAO,OAAO,qBAAqB"}
1
+ {"version":3,"file":"is-command-C6a7WTPw.mjs","names":[],"sources":["../src/quarry/is-command.ts"],"sourcesContent":["import { Command } from './command'\nimport type { Constructor } from '../types'\n\n/**\n * Check if a class is a Command (extends Command base class).\n *\n * Used by ModuleRegistry for auto-discovery from providers.\n */\nexport function isCommand(target: Constructor): boolean {\n return target.prototype instanceof Command\n}\n"],"mappings":";;;;;;;AAQA,SAAgB,UAAU,QAA8B;AACtD,QAAO,OAAO,qBAAqB"}
@@ -25,4 +25,4 @@ function isSeeder(target) {
25
25
  //#endregion
26
26
  export { SEEDER_INTERNALS as n, Seeder as r, isSeeder as t };
27
27
 
28
- //# sourceMappingURL=is-seeder-BN9Ej1r7.mjs.map
28
+ //# sourceMappingURL=is-seeder-CebjZCDn.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"is-seeder-BN9Ej1r7.mjs","names":[],"sources":["../src/seeder/seeder.ts","../src/seeder/is-seeder.ts"],"sourcesContent":["import type { Container } from '../di/container'\nimport type { Constructor } from '../types'\n\nexport const SEEDER_INTERNALS = Symbol('seeder:internals')\n\nexport interface SeederContext {\n run(SeederClass: Constructor<Seeder>): Promise<void>\n container: Container | null\n}\n\nexport abstract class Seeder {\n [SEEDER_INTERNALS]: SeederContext = {\n run: () => { throw new Error('SeederRegistry not available') },\n container: null,\n }\n\n abstract run(): Promise<void>\n\n /** Call another seeder (like Laravel's $this->call()) */\n protected async call(SeederClass: Constructor<Seeder>): Promise<void> {\n await this[SEEDER_INTERNALS].run(SeederClass)\n }\n}\n","import type { Constructor } from '../types'\nimport { Seeder } from './seeder'\n\n/**\n * Check if a class is a Seeder (extends Seeder base class).\n *\n * Used by ModuleRegistry for auto-discovery from providers.\n */\nexport function isSeeder(target: Constructor): boolean {\n return target.prototype instanceof Seeder\n}\n"],"mappings":";AAGA,MAAa,mBAAmB,OAAO,mBAAmB;AAO1D,IAAsB,SAAtB,MAA6B;CAC3B,CAAC,oBAAmC;EAClC,WAAW;AAAE,SAAM,IAAI,MAAM,+BAA+B;;EAC5D,WAAW;EACZ;;CAKD,MAAgB,KAAK,aAAiD;AACpE,QAAM,KAAK,kBAAkB,IAAI,YAAY;;;;;;;;;;ACZjD,SAAgB,SAAS,QAA8B;AACrD,QAAO,OAAO,qBAAqB"}
1
+ {"version":3,"file":"is-seeder-CebjZCDn.mjs","names":[],"sources":["../src/seeder/seeder.ts","../src/seeder/is-seeder.ts"],"sourcesContent":["import type { Container } from '../di/container'\nimport type { Constructor } from '../types'\n\nexport const SEEDER_INTERNALS = Symbol('seeder:internals')\n\nexport interface SeederContext {\n run(SeederClass: Constructor<Seeder>): Promise<void>\n container: Container | null\n}\n\nexport abstract class Seeder {\n [SEEDER_INTERNALS]: SeederContext = {\n run: () => { throw new Error('SeederRegistry not available') },\n container: null,\n }\n\n abstract run(): Promise<void>\n\n /** Call another seeder (like Laravel's $this->call()) */\n protected async call(SeederClass: Constructor<Seeder>): Promise<void> {\n await this[SEEDER_INTERNALS].run(SeederClass)\n }\n}\n","import type { Constructor } from '../types'\nimport { Seeder } from './seeder'\n\n/**\n * Check if a class is a Seeder (extends Seeder base class).\n *\n * Used by ModuleRegistry for auto-discovery from providers.\n */\nexport function isSeeder(target: Constructor): boolean {\n return target.prototype instanceof Seeder\n}\n"],"mappings":";AAGA,MAAa,mBAAmB,OAAO,mBAAmB;AAO1D,IAAsB,SAAtB,MAA6B;CAC3B,CAAC,oBAAmC;EAClC,WAAW;AAAE,SAAM,IAAI,MAAM,+BAA+B;;EAC5D,WAAW;EACZ;;CAKD,MAAgB,KAAK,aAAiD;AACpE,QAAM,KAAK,kBAAkB,IAAI,YAAY;;;;;;;;;;ACZjD,SAAgB,SAAS,QAA8B;AACrD,QAAO,OAAO,qBAAqB"}
@@ -1,2 +1,2 @@
1
- import { a as LogEntry, c as LOG_LEVEL_PRIORITY, i as LoggerService, l as LogLevel, n as PrettyFormatter, o as InternalLogContext, r as JsonFormatter, s as LogContext, t as ConsoleTransport, u as LOGGER_TOKENS } from "../index-BR23zDMy.mjs";
1
+ import { a as LogEntry, c as LOG_LEVEL_PRIORITY, i as LoggerService, l as LogLevel, n as PrettyFormatter, o as InternalLogContext, r as JsonFormatter, s as LogContext, t as ConsoleTransport, u as LOGGER_TOKENS } from "../index-DBd_2wv8.mjs";
2
2
  export { ConsoleTransport, InternalLogContext, JsonFormatter, LOGGER_TOKENS, LOG_LEVEL_PRIORITY, LogContext, LogEntry, LogLevel, LoggerService, PrettyFormatter };
@@ -1,2 +1,2 @@
1
- import { c as LOG_LEVEL_PRIORITY, i as LoggerService, l as LogLevel, n as PrettyFormatter, r as JsonFormatter, t as ConsoleTransport, u as LOGGER_TOKENS } from "../logger-c0ftIK4G.mjs";
1
+ import { c as LOG_LEVEL_PRIORITY, i as LoggerService, l as LogLevel, n as PrettyFormatter, r as JsonFormatter, t as ConsoleTransport, u as LOGGER_TOKENS } from "../logger-V6Ms3QnQ.mjs";
2
2
  export { ConsoleTransport, JsonFormatter, LOGGER_TOKENS, LOG_LEVEL_PRIORITY, LogLevel, LoggerService, PrettyFormatter };
@@ -141,6 +141,9 @@ const DI_TOKENS = {
141
141
  Cron: Symbol.for("stratal:cron:manager"),
142
142
  EventRegistry: Symbol.for("stratal:event:registry"),
143
143
  Quarry: Symbol.for("stratal:quarry"),
144
+ /**
145
+ * AuthContext: Use for services that need user authentication (userId).
146
+ */
144
147
  AuthContext: Symbol.for("stratal:auth:context"),
145
148
  DurableObjectState: Symbol.for("stratal:durable:object:state"),
146
149
  DurableObjectId: Symbol.for("stratal:durable:object:id")
@@ -154,10 +157,25 @@ const DI_TOKENS = {
154
157
  * and prevent naming collisions.
155
158
  */
156
159
  const LOGGER_TOKENS = {
160
+ /**
161
+ * Main logger service facade
162
+ */
157
163
  LoggerService: Symbol.for("stratal:logger:service"),
164
+ /**
165
+ * Log formatter (JSON or Pretty)
166
+ */
158
167
  Formatter: Symbol.for("stratal:logger:formatter"),
168
+ /**
169
+ * Array of active transports
170
+ */
159
171
  Transports: Symbol.for("stratal:logger:transports"),
172
+ /**
173
+ * Individual transport tokens (for factory registration)
174
+ */
160
175
  ConsoleTransport: Symbol.for("stratal:logger:console:transport"),
176
+ /**
177
+ * Configured log level for filtering
178
+ */
161
179
  LogLevelOptions: Symbol.for("stratal:logger:log:level:options")
162
180
  };
163
181
  //#endregion
@@ -178,25 +196,25 @@ let LogLevel = /* @__PURE__ */ function(LogLevel) {
178
196
  * Higher numbers = more severe = higher priority
179
197
  */
180
198
  const LOG_LEVEL_PRIORITY = {
181
- [LogLevel.DEBUG]: 0,
182
- [LogLevel.INFO]: 1,
183
- [LogLevel.WARN]: 2,
184
- [LogLevel.ERROR]: 3
199
+ ["debug"]: 0,
200
+ ["info"]: 1,
201
+ ["warn"]: 2,
202
+ ["error"]: 3
185
203
  };
186
204
  //#endregion
187
- //#region \0@oxc-project+runtime@0.122.0/helpers/decorateMetadata.js
205
+ //#region \0@oxc-project+runtime@0.127.0/helpers/decorateMetadata.js
188
206
  function __decorateMetadata(k, v) {
189
207
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
190
208
  }
191
209
  //#endregion
192
- //#region \0@oxc-project+runtime@0.122.0/helpers/decorateParam.js
210
+ //#region \0@oxc-project+runtime@0.127.0/helpers/decorateParam.js
193
211
  function __decorateParam(paramIndex, decorator) {
194
212
  return function(target, key) {
195
213
  decorator(target, key, paramIndex);
196
214
  };
197
215
  }
198
216
  //#endregion
199
- //#region \0@oxc-project+runtime@0.122.0/helpers/decorate.js
217
+ //#region \0@oxc-project+runtime@0.127.0/helpers/decorate.js
200
218
  function __decorate(decorators, target, key, desc) {
201
219
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
202
220
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -217,19 +235,19 @@ let LoggerService = class LoggerService {
217
235
  * Log debug message (development only)
218
236
  */
219
237
  debug(message, context) {
220
- this.log(LogLevel.DEBUG, message, context);
238
+ this.log("debug", message, context);
221
239
  }
222
240
  /**
223
241
  * Log info message
224
242
  */
225
243
  info(message, context) {
226
- this.log(LogLevel.INFO, message, context);
244
+ this.log("info", message, context);
227
245
  }
228
246
  /**
229
247
  * Log warning message
230
248
  */
231
249
  warn(message, context) {
232
- this.log(LogLevel.WARN, message, context);
250
+ this.log("warn", message, context);
233
251
  }
234
252
  /**
235
253
  * Log error message
@@ -240,7 +258,7 @@ let LoggerService = class LoggerService {
240
258
  let error;
241
259
  if (contextOrError instanceof Error) error = contextOrError;
242
260
  else context = contextOrError;
243
- this.log(LogLevel.ERROR, message, context, error);
261
+ this.log("error", message, context, error);
244
262
  }
245
263
  /**
246
264
  * Core logging implementation
@@ -342,10 +360,10 @@ var JsonFormatter = class {
342
360
  */
343
361
  var PrettyFormatter = class {
344
362
  colors = {
345
- [LogLevel.DEBUG]: "\x1B[36m",
346
- [LogLevel.INFO]: "\x1B[32m",
347
- [LogLevel.WARN]: "\x1B[33m",
348
- [LogLevel.ERROR]: "\x1B[31m"
363
+ ["debug"]: "\x1B[36m",
364
+ ["info"]: "\x1B[32m",
365
+ ["warn"]: "\x1B[33m",
366
+ ["error"]: "\x1B[31m"
349
367
  };
350
368
  reset = "\x1B[0m";
351
369
  format(entry) {
@@ -403,10 +421,10 @@ let ConsoleTransport = class ConsoleTransport extends BaseTransport {
403
421
  */
404
422
  getConsoleMethod(level) {
405
423
  switch (level) {
406
- case LogLevel.DEBUG: return console.debug;
407
- case LogLevel.INFO: return console.info;
408
- case LogLevel.WARN: return console.warn;
409
- case LogLevel.ERROR: return console.error;
424
+ case "debug": return console.debug;
425
+ case "info": return console.info;
426
+ case "warn": return console.warn;
427
+ case "error": return console.error;
410
428
  default: return console.log;
411
429
  }
412
430
  }
@@ -415,4 +433,4 @@ ConsoleTransport = __decorate([Transient(LOGGER_TOKENS.ConsoleTransport)], Conso
415
433
  //#endregion
416
434
  export { __decorate as a, LOG_LEVEL_PRIORITY as c, CONTAINER_TOKEN as d, DI_TOKENS as f, getMethodInjections as g, InjectParam as h, LoggerService as i, LogLevel as l, INJECT_PARAM_METADATA_KEY as m, PrettyFormatter as n, __decorateParam as o, Transient as p, JsonFormatter as r, __decorateMetadata as s, ConsoleTransport as t, LOGGER_TOKENS as u };
417
435
 
418
- //# sourceMappingURL=logger-c0ftIK4G.mjs.map
436
+ //# sourceMappingURL=logger-V6Ms3QnQ.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger-c0ftIK4G.mjs","names":[],"sources":["../src/di/decorators/inject-param.decorator.ts","../src/di/decorators.ts","../src/di/tokens.ts","../src/logger/logger.tokens.ts","../src/logger/contracts/log-level.ts","../src/logger/services/logger.service.ts","../src/logger/formatters/json-formatter.ts","../src/logger/formatters/pretty-formatter.ts","../src/logger/transports/base-transport.ts","../src/logger/transports/console-transport.ts"],"sourcesContent":["/**\n * Method Parameter Injection Decorator\n *\n * Enables DI for controller method parameters. Parameters marked with\n * @InjectParam(token) are resolved from the request-scoped container\n * at method invocation time.\n *\n * @example\n * ```typescript\n * @Route({ response: userSchema })\n * async show(\n * ctx: RouterContext,\n * @InjectParam(UserService) userService: UserService,\n * @InjectParam(CacheService) cache: CacheService\n * ): Promise<Response> {\n * // userService and cache auto-resolved from request container\n * }\n * ```\n */\nimport type InjectionToken from 'tsyringe/dist/typings/providers/injection-token'\n\n/**\n * Metadata key for storing parameter injection information\n */\nexport const INJECT_PARAM_METADATA_KEY = Symbol.for('stratal:inject:param')\n\n/**\n * Describes a parameter injection\n */\nexport interface ParamInjection {\n /** Parameter index in the method signature (0-based) */\n index: number\n /** DI token to resolve */\n token: InjectionToken\n}\n\n/**\n * Mark a method parameter for DI injection\n *\n * The parameter will be resolved from the request-scoped container\n * when the controller method is invoked.\n *\n * @param token - DI token to resolve (class or symbol)\n *\n * @example With class token\n * ```typescript\n * async show(\n * ctx: RouterContext,\n * @InjectParam(UserService) userService: UserService\n * ) { }\n * ```\n *\n * @example With symbol token\n * ```typescript\n * async show(\n * ctx: RouterContext,\n * @InjectParam(DI_TOKENS.Cache) cache: ICacheService\n * ) { }\n * ```\n */\nexport function InjectParam<T>(token: InjectionToken<T>): ParameterDecorator {\n return (target: object, propertyKey: string | symbol | undefined, parameterIndex: number) => {\n if (propertyKey === undefined) {\n throw new Error('@InjectParam can only be used on method parameters, not constructor parameters')\n }\n\n const existingInjections: ParamInjection[] =\n (Reflect.getMetadata(INJECT_PARAM_METADATA_KEY, target, propertyKey) as ParamInjection[] | undefined) ?? []\n\n existingInjections.push({\n index: parameterIndex,\n token,\n })\n\n Reflect.defineMetadata(INJECT_PARAM_METADATA_KEY, existingInjections, target, propertyKey)\n }\n}\n\n/**\n * Get method parameter injections\n *\n * @param target - Controller prototype\n * @param propertyKey - Method name\n * @returns Array of parameter injections sorted by index\n */\nexport function getMethodInjections(target: object, propertyKey: string | symbol): ParamInjection[] {\n const injections: ParamInjection[] =\n (Reflect.getMetadata(INJECT_PARAM_METADATA_KEY, target, propertyKey) as ParamInjection[] | undefined) ?? []\n\n return injections.sort((a, b) => a.index - b.index)\n}\n","/**\n * DI Decorators\n *\n * Provides decorators for dependency injection:\n * - @Transient: Mark classes as injectable (lifecycle controlled at registration)\n * - @InjectParam: Inject dependencies into method parameters\n *\n * Lifecycle (Singleton, Request, Transient) is controlled at registration time\n * via the `scope` property in module providers or Container.register().\n */\nimport { injectable } from 'tsyringe'\nimport type InjectionToken from 'tsyringe/dist/typings/providers/injection-token'\n\n// Re-export method parameter injection\nexport {\n InjectParam,\n getMethodInjections,\n type ParamInjection,\n INJECT_PARAM_METADATA_KEY,\n} from './decorators/inject-param.decorator'\n\n/**\n * Mark a class as injectable\n *\n * This decorator wraps tsyringe's `@injectable` decorator and optionally\n * associates a token with the class. The actual lifecycle (Singleton, Request,\n * Transient) is determined at registration time, not decoration time.\n *\n * **Lifecycle Control:**\n * - Use `scope: Scope.Singleton` in module providers for singleton\n * - Use `scope: Scope.Request` in module providers for request-scoped\n * - Default is Transient (new instance per resolution)\n *\n * @param token - Optional DI token for service resolution\n *\n * @example Basic usage (no token)\n * ```typescript\n * @Transient()\n * export class UserService {\n * constructor(@inject(DI_TOKENS.Database) private db: DatabaseService) {}\n * }\n *\n * // In module:\n * @Module({\n * providers: [UserService] // Transient by default\n * })\n * ```\n *\n * @example With token\n * ```typescript\n * @Transient(DI_TOKENS.ConnectionManager)\n * export class ConnectionManager implements Disposable {\n * // ...\n * }\n *\n * // In Application.ts:\n * container.register(DI_TOKENS.ConnectionManager, ConnectionManager, Scope.Request)\n * ```\n *\n * @example Singleton via provider scope\n * ```typescript\n * @Transient()\n * export class ConsumerRegistry {\n * // ...\n * }\n *\n * // In module:\n * @Module({\n * providers: [\n * { provide: DI_TOKENS.ConsumerRegistry, useClass: ConsumerRegistry, scope: Scope.Singleton }\n * ]\n * })\n * ```\n */\nexport function Transient<T>(token?: InjectionToken<T>) {\n return function <TFunction extends abstract new (...args: never[]) => unknown>(target: TFunction): TFunction {\n const targetConstructor = target as unknown as new (...args: unknown[]) => T\n injectable<T>({ token })(targetConstructor)\n return target\n }\n}\n","/**\n * Token for the Container instance\n * Used for injecting the Container into services that need dynamic resolution\n */\nexport const CONTAINER_TOKEN = Symbol.for('stratal:di:container')\n\nexport const DI_TOKENS = {\n // Cloudflare\n CloudflareEnv: Symbol.for('stratal:cloudflare:env'),\n ExecutionContext: Symbol.for('stratal:execution:context'),\n\n // Infrastructure\n Container: CONTAINER_TOKEN,\n Application: Symbol.for('stratal:application'),\n ModuleRegistry: Symbol.for('stratal:module:registry'),\n ExceptionHandler: Symbol.for('stratal:exception:handler'),\n Database: Symbol.for('stratal:database:service'),\n Queue: Symbol.for('stratal:queue:manager'),\n ConsumerRegistry: Symbol.for('stratal:consumer:registry'),\n Cron: Symbol.for('stratal:cron:manager'),\n EventRegistry: Symbol.for('stratal:event:registry'),\n Quarry: Symbol.for('stratal:quarry'),\n\n // Context\n /**\n * AuthContext: Use for services that need user authentication (userId).\n */\n AuthContext: Symbol.for('stratal:auth:context'),\n\n // Workers\n DurableObjectState: Symbol.for('stratal:durable:object:state'),\n DurableObjectId: Symbol.for('stratal:durable:object:id'),\n} as const\n\nexport type DIToken = typeof DI_TOKENS[keyof typeof DI_TOKENS]\n","/**\n * Dependency Injection Tokens for Logger Module\n *\n * Symbol-based tokens ensure type-safe dependency injection\n * and prevent naming collisions.\n */\nexport const LOGGER_TOKENS = {\n /**\n * Main logger service facade\n */\n LoggerService: Symbol.for('stratal:logger:service'),\n\n /**\n * Log formatter (JSON or Pretty)\n */\n Formatter: Symbol.for('stratal:logger:formatter'),\n\n /**\n * Array of active transports\n */\n Transports: Symbol.for('stratal:logger:transports'),\n\n /**\n * Individual transport tokens (for factory registration)\n */\n ConsoleTransport: Symbol.for('stratal:logger:console:transport'),\n\n /**\n * Configured log level for filtering\n */\n LogLevelOptions: Symbol.for('stratal:logger:log:level:options'),\n} as const\n","/**\n * Log severity levels\n * Ordered from least to most severe\n */\nexport enum LogLevel {\n DEBUG = 'debug',\n INFO = 'info',\n WARN = 'warn',\n ERROR = 'error',\n}\n\n/**\n * Map log levels to numeric priorities (for filtering)\n * Higher numbers = more severe = higher priority\n */\nexport const LOG_LEVEL_PRIORITY: Record<LogLevel, number> = {\n [LogLevel.DEBUG]: 0,\n [LogLevel.INFO]: 1,\n [LogLevel.WARN]: 2,\n [LogLevel.ERROR]: 3,\n}\n","import { inject } from 'tsyringe'\nimport { Transient } from '../../di/decorators'\nimport { DI_TOKENS } from '../../di/tokens'\nimport type { InternalLogContext, LogContext, LogEntry } from '../contracts'\nimport { LOG_LEVEL_PRIORITY, LogLevel } from '../contracts/log-level'\nimport type { ILogFormatter } from '../formatters/formatter.interface'\nimport { LOGGER_TOKENS } from '../logger.tokens'\nimport type { ILogTransport } from '../transports/transport.interface'\n\n/**\n * Logger Service\n *\n * Main logging facade.\n *\n * **Features:**\n * - Async logging via ctx.waitUntil() for non-blocking performance\n * - Multi-transport support (console, future Sentry/Cloudflare Analytics)\n * - Configurable formatters (JSON production, Pretty development)\n * - Log level filtering based on environment\n *\n * **Architecture:**\n * - Transports and formatters injected via DI\n *\n * @example Basic usage\n * ```typescript\n * @Transient()\n * export class UserService {\n * constructor(\n * @inject(LOGGER_TOKENS.LoggerService)\n * private readonly logger: LoggerService\n * ) {}\n *\n * async createUser(input: CreateUserInput) {\n * this.logger.info('Creating user', { email: input.email })\n * }\n * }\n * ```\n */\n@Transient()\nexport class LoggerService {\n constructor(\n @inject(LOGGER_TOKENS.LogLevelOptions)\n private readonly logLevel: LogLevel,\n\n @inject(DI_TOKENS.ExecutionContext)\n private readonly executionContext: globalThis.ExecutionContext,\n\n @inject(LOGGER_TOKENS.Formatter)\n private readonly formatter: ILogFormatter,\n\n @inject(LOGGER_TOKENS.Transports)\n private readonly transports: ILogTransport[],\n ) { }\n\n /**\n * Log debug message (development only)\n */\n debug(message: string, context?: LogContext): void {\n this.log(LogLevel.DEBUG, message, context)\n }\n\n /**\n * Log info message\n */\n info(message: string, context?: LogContext): void {\n this.log(LogLevel.INFO, message, context)\n }\n\n /**\n * Log warning message\n */\n warn(message: string, context?: LogContext): void {\n this.log(LogLevel.WARN, message, context)\n }\n\n /**\n * Log error message\n * Accepts Error object or custom context\n */\n error(message: string, contextOrError?: LogContext | Error): void {\n let context: LogContext | undefined\n let error: Error | undefined\n\n if (contextOrError instanceof Error) {\n error = contextOrError\n } else {\n context = contextOrError\n }\n\n this.log(LogLevel.ERROR, message, context, error)\n }\n\n /**\n * Core logging implementation\n * Enriches context, formats message, dispatches to transports\n * Uses ctx.waitUntil() for async non-blocking processing\n */\n private log(\n level: LogLevel,\n message: string,\n userContext?: LogContext,\n error?: Error\n ): void {\n // Filter by configured log level\n if (LOG_LEVEL_PRIORITY[level] < LOG_LEVEL_PRIORITY[this.logLevel]) {\n return\n }\n\n // Build complete log entry with enriched context\n const entry: LogEntry = {\n level,\n message,\n context: this.enrichContext(userContext ?? {}),\n error: error ? this.serializeError(error) : undefined,\n }\n\n // Format once for all transports\n const formatted = this.formatter.format(entry)\n\n // Dispatch to all transports asynchronously\n const writePromises = this.transports.map(transport =>\n transport.write(entry, formatted).catch((err: unknown) => {\n // Swallow transport errors to prevent log failure from crashing app\n console.error(`Transport ${transport.name} failed:`, err)\n })\n )\n\n // Use waitUntil to ensure logs complete even after response sent\n const allWrites = Promise.all(writePromises)\n try {\n this.executionContext.waitUntil(allWrites)\n } catch (error) {\n if (!(error instanceof Error) || !error.message.includes('global scope')) {\n throw error\n }\n }\n }\n\n /**\n * Enrich log context with request info and timestamp\n * Context enrichment can be extended by application modules\n */\n private enrichContext(userContext: LogContext): InternalLogContext {\n return {\n ...userContext,\n timestamp: Date.now(),\n }\n }\n\n /**\n * Serialize Error object for transport\n */\n private serializeError(error: Error): { message: string; stack?: string; name?: string } {\n return {\n message: error.message,\n stack: error.stack,\n name: error.name,\n }\n }\n}\n","import type { LogEntry } from '../contracts'\nimport type { ILogFormatter } from './formatter.interface'\n\n/**\n * JSON Formatter\n *\n * Produces structured JSON logs for production environments.\n * Optimized for log aggregation systems (Cloudflare Analytics, Datadog, etc.)\n *\n * Output format:\n * {\n * \"level\": \"info\",\n * \"message\": \"User logged in\",\n * \"timestamp\": 1234567890,\n * \"userId\": \"user_456\",\n * \"error\": { \"message\": \"...\", \"stack\": \"...\" }\n * }\n */\nexport class JsonFormatter implements ILogFormatter {\n format(entry: LogEntry): string {\n const output = {\n level: entry.level,\n message: entry.message,\n ...entry.context,\n ...(entry.error && { error: entry.error }),\n }\n\n return JSON.stringify(output)\n }\n}\n","import type { LogEntry } from '../contracts'\nimport { LogLevel } from '../contracts'\nimport type { ILogFormatter } from './formatter.interface'\n\n/**\n * Pretty Formatter\n *\n * Human-readable colored output for development environments.\n * Uses ANSI color codes for terminal output.\n *\n * Output format:\n * [2024-01-15 10:30:45] INFO: User logged in\n * userId: user_456\n */\nexport class PrettyFormatter implements ILogFormatter {\n private readonly colors: Record<LogLevel, string> = {\n [LogLevel.DEBUG]: '\\x1b[36m', // Cyan\n [LogLevel.INFO]: '\\x1b[32m', // Green\n [LogLevel.WARN]: '\\x1b[33m', // Yellow\n [LogLevel.ERROR]: '\\x1b[31m', // Red\n }\n\n private readonly reset = '\\x1b[0m'\n\n format(entry: LogEntry): string {\n const color = this.colors[entry.level]\n const timestamp = new Date(entry.context.timestamp).toISOString()\n const levelStr = entry.level.toUpperCase().padEnd(5)\n\n let output = `${color}[${timestamp}] ${levelStr}${this.reset}: ${entry.message}`\n\n // Add context (exclude timestamp)\n const { timestamp: _, ...contextWithoutTimestamp } = entry.context\n const contextEntries = Object.entries(contextWithoutTimestamp)\n\n if (contextEntries.length > 0) {\n output += '\\n'\n contextEntries.forEach(([key, value]) => {\n output += ` ${key}: ${JSON.stringify(value)}\\n`\n })\n }\n\n // Add error stack if present\n if (entry.error?.stack) {\n output += `\\n${entry.error.stack}\\n`\n }\n\n return output.trimEnd()\n }\n}\n","import type { ILogTransport } from './transport.interface'\nimport type { LogEntry } from '../contracts'\n\n/**\n * Base Transport\n *\n * Abstract base class providing shared transport logic.\n * Reduces code duplication across transport implementations.\n */\nexport abstract class BaseTransport implements ILogTransport {\n abstract readonly name: string\n\n /**\n * Write log entry - must be implemented by concrete transports\n */\n abstract write(entry: LogEntry, formatted: string): Promise<void>\n\n /**\n * Handle transport errors gracefully\n * Logs to console.error as fallback to prevent log loss\n *\n * @param error - Error that occurred during write\n * @param entry - Log entry that failed\n */\n protected handleError(error: unknown, entry: LogEntry): void {\n console.error(`[${this.name}] Failed to write log:`, {\n error: error instanceof Error ? error.message : String(error),\n logMessage: entry.message,\n level: entry.level,\n })\n }\n}\n","import { Transient } from '../../di/decorators'\nimport { LOGGER_TOKENS } from '../logger.tokens'\nimport { BaseTransport } from './base-transport'\nimport type { LogEntry } from '../contracts'\nimport { LogLevel } from '../contracts'\n\n/**\n * Console Transport\n *\n * Writes logs to console using appropriate console methods.\n * Maps log levels to console.debug, console.info, console.warn, console.error.\n *\n * Thread-safe for Cloudflare Workers environment.\n */\n@Transient(LOGGER_TOKENS.ConsoleTransport)\nexport class ConsoleTransport extends BaseTransport {\n readonly name = 'console'\n\n write(entry: LogEntry, formatted: string): Promise<void> {\n try {\n const consoleMethod = this.getConsoleMethod(entry.level)\n consoleMethod(formatted)\n } catch (error) {\n this.handleError(error, entry)\n }\n\n return Promise.resolve()\n }\n\n /**\n * Map log level to console method\n */\n private getConsoleMethod(level: LogLevel): typeof console.log {\n switch (level) {\n case LogLevel.DEBUG:\n return console.debug\n case LogLevel.INFO:\n return console.info\n case LogLevel.WARN:\n return console.warn\n case LogLevel.ERROR:\n return console.error\n default:\n return console.log\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"logger-V6Ms3QnQ.mjs","names":[],"sources":["../src/di/decorators/inject-param.decorator.ts","../src/di/decorators.ts","../src/di/tokens.ts","../src/logger/logger.tokens.ts","../src/logger/contracts/log-level.ts","../src/logger/services/logger.service.ts","../src/logger/formatters/json-formatter.ts","../src/logger/formatters/pretty-formatter.ts","../src/logger/transports/base-transport.ts","../src/logger/transports/console-transport.ts"],"sourcesContent":["/**\n * Method Parameter Injection Decorator\n *\n * Enables DI for controller method parameters. Parameters marked with\n * @InjectParam(token) are resolved from the request-scoped container\n * at method invocation time.\n *\n * @example\n * ```typescript\n * @Route({ response: userSchema })\n * async show(\n * ctx: RouterContext,\n * @InjectParam(UserService) userService: UserService,\n * @InjectParam(CacheService) cache: CacheService\n * ): Promise<Response> {\n * // userService and cache auto-resolved from request container\n * }\n * ```\n */\nimport type InjectionToken from 'tsyringe/dist/typings/providers/injection-token'\n\n/**\n * Metadata key for storing parameter injection information\n */\nexport const INJECT_PARAM_METADATA_KEY = Symbol.for('stratal:inject:param')\n\n/**\n * Describes a parameter injection\n */\nexport interface ParamInjection {\n /** Parameter index in the method signature (0-based) */\n index: number\n /** DI token to resolve */\n token: InjectionToken\n}\n\n/**\n * Mark a method parameter for DI injection\n *\n * The parameter will be resolved from the request-scoped container\n * when the controller method is invoked.\n *\n * @param token - DI token to resolve (class or symbol)\n *\n * @example With class token\n * ```typescript\n * async show(\n * ctx: RouterContext,\n * @InjectParam(UserService) userService: UserService\n * ) { }\n * ```\n *\n * @example With symbol token\n * ```typescript\n * async show(\n * ctx: RouterContext,\n * @InjectParam(DI_TOKENS.Cache) cache: ICacheService\n * ) { }\n * ```\n */\nexport function InjectParam<T>(token: InjectionToken<T>): ParameterDecorator {\n return (target: object, propertyKey: string | symbol | undefined, parameterIndex: number) => {\n if (propertyKey === undefined) {\n throw new Error('@InjectParam can only be used on method parameters, not constructor parameters')\n }\n\n const existingInjections: ParamInjection[] =\n (Reflect.getMetadata(INJECT_PARAM_METADATA_KEY, target, propertyKey) as ParamInjection[] | undefined) ?? []\n\n existingInjections.push({\n index: parameterIndex,\n token,\n })\n\n Reflect.defineMetadata(INJECT_PARAM_METADATA_KEY, existingInjections, target, propertyKey)\n }\n}\n\n/**\n * Get method parameter injections\n *\n * @param target - Controller prototype\n * @param propertyKey - Method name\n * @returns Array of parameter injections sorted by index\n */\nexport function getMethodInjections(target: object, propertyKey: string | symbol): ParamInjection[] {\n const injections: ParamInjection[] =\n (Reflect.getMetadata(INJECT_PARAM_METADATA_KEY, target, propertyKey) as ParamInjection[] | undefined) ?? []\n\n return injections.sort((a, b) => a.index - b.index)\n}\n","/**\n * DI Decorators\n *\n * Provides decorators for dependency injection:\n * - @Transient: Mark classes as injectable (lifecycle controlled at registration)\n * - @InjectParam: Inject dependencies into method parameters\n *\n * Lifecycle (Singleton, Request, Transient) is controlled at registration time\n * via the `scope` property in module providers or Container.register().\n */\nimport { injectable } from 'tsyringe'\nimport type InjectionToken from 'tsyringe/dist/typings/providers/injection-token'\n\n// Re-export method parameter injection\nexport {\n InjectParam,\n getMethodInjections,\n type ParamInjection,\n INJECT_PARAM_METADATA_KEY,\n} from './decorators/inject-param.decorator'\n\n/**\n * Mark a class as injectable\n *\n * This decorator wraps tsyringe's `@injectable` decorator and optionally\n * associates a token with the class. The actual lifecycle (Singleton, Request,\n * Transient) is determined at registration time, not decoration time.\n *\n * **Lifecycle Control:**\n * - Use `scope: Scope.Singleton` in module providers for singleton\n * - Use `scope: Scope.Request` in module providers for request-scoped\n * - Default is Transient (new instance per resolution)\n *\n * @param token - Optional DI token for service resolution\n *\n * @example Basic usage (no token)\n * ```typescript\n * @Transient()\n * export class UserService {\n * constructor(@inject(DI_TOKENS.Database) private db: DatabaseService) {}\n * }\n *\n * // In module:\n * @Module({\n * providers: [UserService] // Transient by default\n * })\n * ```\n *\n * @example With token\n * ```typescript\n * @Transient(DI_TOKENS.ConnectionManager)\n * export class ConnectionManager implements Disposable {\n * // ...\n * }\n *\n * // In Application.ts:\n * container.register(DI_TOKENS.ConnectionManager, ConnectionManager, Scope.Request)\n * ```\n *\n * @example Singleton via provider scope\n * ```typescript\n * @Transient()\n * export class ConsumerRegistry {\n * // ...\n * }\n *\n * // In module:\n * @Module({\n * providers: [\n * { provide: DI_TOKENS.ConsumerRegistry, useClass: ConsumerRegistry, scope: Scope.Singleton }\n * ]\n * })\n * ```\n */\nexport function Transient<T>(token?: InjectionToken<T>) {\n return function <TFunction extends abstract new (...args: never[]) => unknown>(target: TFunction): TFunction {\n const targetConstructor = target as unknown as new (...args: unknown[]) => T\n injectable<T>({ token })(targetConstructor)\n return target\n }\n}\n","/**\n * Token for the Container instance\n * Used for injecting the Container into services that need dynamic resolution\n */\nexport const CONTAINER_TOKEN = Symbol.for('stratal:di:container')\n\nexport const DI_TOKENS = {\n // Cloudflare\n CloudflareEnv: Symbol.for('stratal:cloudflare:env'),\n ExecutionContext: Symbol.for('stratal:execution:context'),\n\n // Infrastructure\n Container: CONTAINER_TOKEN,\n Application: Symbol.for('stratal:application'),\n ModuleRegistry: Symbol.for('stratal:module:registry'),\n ExceptionHandler: Symbol.for('stratal:exception:handler'),\n Database: Symbol.for('stratal:database:service'),\n Queue: Symbol.for('stratal:queue:manager'),\n ConsumerRegistry: Symbol.for('stratal:consumer:registry'),\n Cron: Symbol.for('stratal:cron:manager'),\n EventRegistry: Symbol.for('stratal:event:registry'),\n Quarry: Symbol.for('stratal:quarry'),\n\n // Context\n /**\n * AuthContext: Use for services that need user authentication (userId).\n */\n AuthContext: Symbol.for('stratal:auth:context'),\n\n // Workers\n DurableObjectState: Symbol.for('stratal:durable:object:state'),\n DurableObjectId: Symbol.for('stratal:durable:object:id'),\n} as const\n\nexport type DIToken = typeof DI_TOKENS[keyof typeof DI_TOKENS]\n","/**\n * Dependency Injection Tokens for Logger Module\n *\n * Symbol-based tokens ensure type-safe dependency injection\n * and prevent naming collisions.\n */\nexport const LOGGER_TOKENS = {\n /**\n * Main logger service facade\n */\n LoggerService: Symbol.for('stratal:logger:service'),\n\n /**\n * Log formatter (JSON or Pretty)\n */\n Formatter: Symbol.for('stratal:logger:formatter'),\n\n /**\n * Array of active transports\n */\n Transports: Symbol.for('stratal:logger:transports'),\n\n /**\n * Individual transport tokens (for factory registration)\n */\n ConsoleTransport: Symbol.for('stratal:logger:console:transport'),\n\n /**\n * Configured log level for filtering\n */\n LogLevelOptions: Symbol.for('stratal:logger:log:level:options'),\n} as const\n","/**\n * Log severity levels\n * Ordered from least to most severe\n */\nexport enum LogLevel {\n DEBUG = 'debug',\n INFO = 'info',\n WARN = 'warn',\n ERROR = 'error',\n}\n\n/**\n * Map log levels to numeric priorities (for filtering)\n * Higher numbers = more severe = higher priority\n */\nexport const LOG_LEVEL_PRIORITY: Record<LogLevel, number> = {\n [LogLevel.DEBUG]: 0,\n [LogLevel.INFO]: 1,\n [LogLevel.WARN]: 2,\n [LogLevel.ERROR]: 3,\n}\n","import { inject } from 'tsyringe'\nimport { Transient } from '../../di/decorators'\nimport { DI_TOKENS } from '../../di/tokens'\nimport type { InternalLogContext, LogContext, LogEntry } from '../contracts'\nimport { LOG_LEVEL_PRIORITY, LogLevel } from '../contracts/log-level'\nimport type { ILogFormatter } from '../formatters/formatter.interface'\nimport { LOGGER_TOKENS } from '../logger.tokens'\nimport type { ILogTransport } from '../transports/transport.interface'\n\n/**\n * Logger Service\n *\n * Main logging facade.\n *\n * **Features:**\n * - Async logging via ctx.waitUntil() for non-blocking performance\n * - Multi-transport support (console, future Sentry/Cloudflare Analytics)\n * - Configurable formatters (JSON production, Pretty development)\n * - Log level filtering based on environment\n *\n * **Architecture:**\n * - Transports and formatters injected via DI\n *\n * @example Basic usage\n * ```typescript\n * @Transient()\n * export class UserService {\n * constructor(\n * @inject(LOGGER_TOKENS.LoggerService)\n * private readonly logger: LoggerService\n * ) {}\n *\n * async createUser(input: CreateUserInput) {\n * this.logger.info('Creating user', { email: input.email })\n * }\n * }\n * ```\n */\n@Transient()\nexport class LoggerService {\n constructor(\n @inject(LOGGER_TOKENS.LogLevelOptions)\n private readonly logLevel: LogLevel,\n\n @inject(DI_TOKENS.ExecutionContext)\n private readonly executionContext: globalThis.ExecutionContext,\n\n @inject(LOGGER_TOKENS.Formatter)\n private readonly formatter: ILogFormatter,\n\n @inject(LOGGER_TOKENS.Transports)\n private readonly transports: ILogTransport[],\n ) { }\n\n /**\n * Log debug message (development only)\n */\n debug(message: string, context?: LogContext): void {\n this.log(LogLevel.DEBUG, message, context)\n }\n\n /**\n * Log info message\n */\n info(message: string, context?: LogContext): void {\n this.log(LogLevel.INFO, message, context)\n }\n\n /**\n * Log warning message\n */\n warn(message: string, context?: LogContext): void {\n this.log(LogLevel.WARN, message, context)\n }\n\n /**\n * Log error message\n * Accepts Error object or custom context\n */\n error(message: string, contextOrError?: LogContext | Error): void {\n let context: LogContext | undefined\n let error: Error | undefined\n\n if (contextOrError instanceof Error) {\n error = contextOrError\n } else {\n context = contextOrError\n }\n\n this.log(LogLevel.ERROR, message, context, error)\n }\n\n /**\n * Core logging implementation\n * Enriches context, formats message, dispatches to transports\n * Uses ctx.waitUntil() for async non-blocking processing\n */\n private log(\n level: LogLevel,\n message: string,\n userContext?: LogContext,\n error?: Error\n ): void {\n // Filter by configured log level\n if (LOG_LEVEL_PRIORITY[level] < LOG_LEVEL_PRIORITY[this.logLevel]) {\n return\n }\n\n // Build complete log entry with enriched context\n const entry: LogEntry = {\n level,\n message,\n context: this.enrichContext(userContext ?? {}),\n error: error ? this.serializeError(error) : undefined,\n }\n\n // Format once for all transports\n const formatted = this.formatter.format(entry)\n\n // Dispatch to all transports asynchronously\n const writePromises = this.transports.map(transport =>\n transport.write(entry, formatted).catch((err: unknown) => {\n // Swallow transport errors to prevent log failure from crashing app\n console.error(`Transport ${transport.name} failed:`, err)\n })\n )\n\n // Use waitUntil to ensure logs complete even after response sent\n const allWrites = Promise.all(writePromises)\n try {\n this.executionContext.waitUntil(allWrites)\n } catch (error) {\n if (!(error instanceof Error) || !error.message.includes('global scope')) {\n throw error\n }\n }\n }\n\n /**\n * Enrich log context with request info and timestamp\n * Context enrichment can be extended by application modules\n */\n private enrichContext(userContext: LogContext): InternalLogContext {\n return {\n ...userContext,\n timestamp: Date.now(),\n }\n }\n\n /**\n * Serialize Error object for transport\n */\n private serializeError(error: Error): { message: string; stack?: string; name?: string } {\n return {\n message: error.message,\n stack: error.stack,\n name: error.name,\n }\n }\n}\n","import type { LogEntry } from '../contracts'\nimport type { ILogFormatter } from './formatter.interface'\n\n/**\n * JSON Formatter\n *\n * Produces structured JSON logs for production environments.\n * Optimized for log aggregation systems (Cloudflare Analytics, Datadog, etc.)\n *\n * Output format:\n * {\n * \"level\": \"info\",\n * \"message\": \"User logged in\",\n * \"timestamp\": 1234567890,\n * \"userId\": \"user_456\",\n * \"error\": { \"message\": \"...\", \"stack\": \"...\" }\n * }\n */\nexport class JsonFormatter implements ILogFormatter {\n format(entry: LogEntry): string {\n const output = {\n level: entry.level,\n message: entry.message,\n ...entry.context,\n ...(entry.error && { error: entry.error }),\n }\n\n return JSON.stringify(output)\n }\n}\n","import type { LogEntry } from '../contracts'\nimport { LogLevel } from '../contracts'\nimport type { ILogFormatter } from './formatter.interface'\n\n/**\n * Pretty Formatter\n *\n * Human-readable colored output for development environments.\n * Uses ANSI color codes for terminal output.\n *\n * Output format:\n * [2024-01-15 10:30:45] INFO: User logged in\n * userId: user_456\n */\nexport class PrettyFormatter implements ILogFormatter {\n private readonly colors: Record<LogLevel, string> = {\n [LogLevel.DEBUG]: '\\x1b[36m', // Cyan\n [LogLevel.INFO]: '\\x1b[32m', // Green\n [LogLevel.WARN]: '\\x1b[33m', // Yellow\n [LogLevel.ERROR]: '\\x1b[31m', // Red\n }\n\n private readonly reset = '\\x1b[0m'\n\n format(entry: LogEntry): string {\n const color = this.colors[entry.level]\n const timestamp = new Date(entry.context.timestamp).toISOString()\n const levelStr = entry.level.toUpperCase().padEnd(5)\n\n let output = `${color}[${timestamp}] ${levelStr}${this.reset}: ${entry.message}`\n\n // Add context (exclude timestamp)\n const { timestamp: _, ...contextWithoutTimestamp } = entry.context\n const contextEntries = Object.entries(contextWithoutTimestamp)\n\n if (contextEntries.length > 0) {\n output += '\\n'\n contextEntries.forEach(([key, value]) => {\n output += ` ${key}: ${JSON.stringify(value)}\\n`\n })\n }\n\n // Add error stack if present\n if (entry.error?.stack) {\n output += `\\n${entry.error.stack}\\n`\n }\n\n return output.trimEnd()\n }\n}\n","import type { ILogTransport } from './transport.interface'\nimport type { LogEntry } from '../contracts'\n\n/**\n * Base Transport\n *\n * Abstract base class providing shared transport logic.\n * Reduces code duplication across transport implementations.\n */\nexport abstract class BaseTransport implements ILogTransport {\n abstract readonly name: string\n\n /**\n * Write log entry - must be implemented by concrete transports\n */\n abstract write(entry: LogEntry, formatted: string): Promise<void>\n\n /**\n * Handle transport errors gracefully\n * Logs to console.error as fallback to prevent log loss\n *\n * @param error - Error that occurred during write\n * @param entry - Log entry that failed\n */\n protected handleError(error: unknown, entry: LogEntry): void {\n console.error(`[${this.name}] Failed to write log:`, {\n error: error instanceof Error ? error.message : String(error),\n logMessage: entry.message,\n level: entry.level,\n })\n }\n}\n","import { Transient } from '../../di/decorators'\nimport { LOGGER_TOKENS } from '../logger.tokens'\nimport { BaseTransport } from './base-transport'\nimport type { LogEntry } from '../contracts'\nimport { LogLevel } from '../contracts'\n\n/**\n * Console Transport\n *\n * Writes logs to console using appropriate console methods.\n * Maps log levels to console.debug, console.info, console.warn, console.error.\n *\n * Thread-safe for Cloudflare Workers environment.\n */\n@Transient(LOGGER_TOKENS.ConsoleTransport)\nexport class ConsoleTransport extends BaseTransport {\n readonly name = 'console'\n\n write(entry: LogEntry, formatted: string): Promise<void> {\n try {\n const consoleMethod = this.getConsoleMethod(entry.level)\n consoleMethod(formatted)\n } catch (error) {\n this.handleError(error, entry)\n }\n\n return Promise.resolve()\n }\n\n /**\n * Map log level to console method\n */\n private getConsoleMethod(level: LogLevel): typeof console.log {\n switch (level) {\n case LogLevel.DEBUG:\n return console.debug\n case LogLevel.INFO:\n return console.info\n case LogLevel.WARN:\n return console.warn\n case LogLevel.ERROR:\n return console.error\n default:\n return console.log\n }\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { n as MacroFunction, t as Macroable } from "../index-7-hU3GTV.mjs";
2
+ export { MacroFunction, Macroable };
@@ -0,0 +1,2 @@
1
+ import { t as Macroable } from "../macroable-BmufBshB.mjs";
2
+ export { Macroable };
@@ -0,0 +1,122 @@
1
+ //#region src/macroable/macroable.ts
2
+ /**
3
+ * Abstract base class for adding macros, instance properties, and getters
4
+ * to classes at runtime.
5
+ *
6
+ * Inspired by [@poppinss/macroable](https://github.com/poppinss/macroable)
7
+ * and Laravel's Macroable trait.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * // Register a macro
12
+ * RouterContext.macro('flash', function (this: RouterContext, key: string, value: unknown) {
13
+ * const session = this.getContainer().resolve(SessionService)
14
+ * session.flash(key, value)
15
+ * })
16
+ *
17
+ * // Register a getter
18
+ * RouterContext.getter('requestId', function (this: RouterContext) {
19
+ * return this.header('x-request-id') ?? crypto.randomUUID()
20
+ * }, true)
21
+ *
22
+ * // Register a per-instance property (safe for destructuring)
23
+ * RouterContext.instanceProperty('getUser', function (this: RouterContext) {
24
+ * return this.getContainer().resolve(AuthContext).user
25
+ * })
26
+ * ```
27
+ */
28
+ var Macroable = class {
29
+ /**
30
+ * Per-instance properties. Each entry is applied and bound
31
+ * to `this` inside the constructor so destructuring stays safe.
32
+ */
33
+ static instanceMacros = /* @__PURE__ */ new Set();
34
+ /**
35
+ * Names registered via macro() — used by hasMacro() and flushMacros().
36
+ */
37
+ static macroNames = /* @__PURE__ */ new Set();
38
+ /**
39
+ * Names registered via getter() — used by hasMacro() and flushMacros().
40
+ */
41
+ static getterNames = /* @__PURE__ */ new Set();
42
+ /**
43
+ * Original prototype values saved before macro() overrides them.
44
+ * Used by flushMacros() to restore native methods.
45
+ */
46
+ static _originals = /* @__PURE__ */ new Map();
47
+ static macro(name, value) {
48
+ if (!Object.prototype.hasOwnProperty.call(this, "macroNames")) this.macroNames = new Set(this.macroNames);
49
+ if (!Object.prototype.hasOwnProperty.call(this, "_originals")) this._originals = new Map(this._originals);
50
+ if (!this._originals.has(name)) {
51
+ const existed = Object.prototype.hasOwnProperty.call(this.prototype, name);
52
+ this._originals.set(name, {
53
+ existed,
54
+ value: existed ? this.prototype[name] : void 0
55
+ });
56
+ }
57
+ this.macroNames.add(name);
58
+ this.prototype[name] = value;
59
+ }
60
+ static instanceProperty(name, value) {
61
+ if (!Object.prototype.hasOwnProperty.call(this, "instanceMacros")) this.instanceMacros = new Set(this.instanceMacros);
62
+ this.instanceMacros.add({
63
+ key: name,
64
+ value
65
+ });
66
+ }
67
+ static getter(name, accumulator, singleton = false) {
68
+ if (!Object.prototype.hasOwnProperty.call(this, "getterNames")) this.getterNames = new Set(this.getterNames);
69
+ this.getterNames.add(name);
70
+ Object.defineProperty(this.prototype, name, {
71
+ get() {
72
+ const value = accumulator.call(this);
73
+ if (singleton) Object.defineProperty(this, name, {
74
+ value,
75
+ configurable: false,
76
+ enumerable: false,
77
+ writable: false
78
+ });
79
+ return value;
80
+ },
81
+ configurable: true,
82
+ enumerable: false
83
+ });
84
+ }
85
+ /**
86
+ * Check if a macro, instance property, or getter is registered.
87
+ *
88
+ * @param name - Name to check
89
+ */
90
+ static hasMacro(name) {
91
+ return this.macroNames.has(name) || [...this.instanceMacros].some((m) => m.key === name) || this.getterNames.has(name);
92
+ }
93
+ /**
94
+ * Remove all macros, instance properties, and getters
95
+ * registered on this class. Does not affect parent classes.
96
+ */
97
+ static flushMacros() {
98
+ const proto = this.prototype;
99
+ for (const name of this.macroNames) {
100
+ const original = this._originals.get(name);
101
+ if (original?.existed) proto[name] = original.value;
102
+ else Reflect.deleteProperty(proto, name);
103
+ }
104
+ for (const name of this.getterNames) Reflect.deleteProperty(proto, name);
105
+ if (Object.prototype.hasOwnProperty.call(this, "macroNames")) this.macroNames.clear();
106
+ if (Object.prototype.hasOwnProperty.call(this, "instanceMacros")) this.instanceMacros.clear();
107
+ if (Object.prototype.hasOwnProperty.call(this, "getterNames")) this.getterNames.clear();
108
+ if (Object.prototype.hasOwnProperty.call(this, "_originals")) this._originals.clear();
109
+ }
110
+ constructor() {
111
+ const Constructor = this.constructor;
112
+ const self = this;
113
+ Constructor.instanceMacros.forEach(({ key, value }) => {
114
+ if (typeof value === "function") self[key] = value.bind(this);
115
+ else self[key] = value;
116
+ });
117
+ }
118
+ };
119
+ //#endregion
120
+ export { Macroable as t };
121
+
122
+ //# sourceMappingURL=macroable-BmufBshB.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"macroable-BmufBshB.mjs","names":[],"sources":["../src/macroable/macroable.ts"],"sourcesContent":["import type { MacroFunction } from './types'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Constructor = abstract new (...args: any[]) => any\n\n/**\n * Abstract base class for adding macros, instance properties, and getters\n * to classes at runtime.\n *\n * Inspired by [@poppinss/macroable](https://github.com/poppinss/macroable)\n * and Laravel's Macroable trait.\n *\n * @example\n * ```typescript\n * // Register a macro\n * RouterContext.macro('flash', function (this: RouterContext, key: string, value: unknown) {\n * const session = this.getContainer().resolve(SessionService)\n * session.flash(key, value)\n * })\n *\n * // Register a getter\n * RouterContext.getter('requestId', function (this: RouterContext) {\n * return this.header('x-request-id') ?? crypto.randomUUID()\n * }, true)\n *\n * // Register a per-instance property (safe for destructuring)\n * RouterContext.instanceProperty('getUser', function (this: RouterContext) {\n * return this.getContainer().resolve(AuthContext).user\n * })\n * ```\n */\nexport abstract class Macroable {\n [key: string | symbol]: unknown\n /**\n * Per-instance properties. Each entry is applied and bound\n * to `this` inside the constructor so destructuring stays safe.\n */\n protected static instanceMacros = new Set<{ key: string | symbol; value: unknown }>()\n\n /**\n * Names registered via macro() — used by hasMacro() and flushMacros().\n */\n protected static macroNames = new Set<string | symbol>()\n\n /**\n * Names registered via getter() — used by hasMacro() and flushMacros().\n */\n protected static getterNames = new Set<string | symbol>()\n\n /**\n * Original prototype values saved before macro() overrides them.\n * Used by flushMacros() to restore native methods.\n */\n private static _originals = new Map<string | symbol, { existed: boolean; value: unknown }>()\n\n // ── Macros (prototype-level) ──────────────────────────────\n\n /**\n * Register a macro on the class prototype.\n * Can override existing methods.\n *\n * When the name matches an existing property, the value type is auto-derived.\n *\n * @param name - Method or property name\n * @param value - Function or value to assign\n */\n static macro<T extends Constructor, K extends keyof InstanceType<T>>(\n this: T,\n name: K,\n value: InstanceType<T>[K],\n ): void\n static macro(name: string | symbol, value: unknown): void\n static macro(name: string | symbol, value: unknown): void {\n if (!Object.prototype.hasOwnProperty.call(this, 'macroNames')) {\n this.macroNames = new Set(this.macroNames)\n }\n if (!Object.prototype.hasOwnProperty.call(this, '_originals')) {\n this._originals = new Map(this._originals)\n }\n\n // Save the original value before first override so flushMacros() can restore it\n if (!this._originals.has(name)) {\n const existed = Object.prototype.hasOwnProperty.call(this.prototype, name)\n this._originals.set(name, {\n existed,\n value: existed ? (this.prototype as Record<string | symbol, unknown>)[name] : undefined,\n })\n }\n\n this.macroNames.add(name);\n (this.prototype as Record<string | symbol, unknown>)[name] = value\n }\n\n // ── Instance properties (bound per-instance) ─────────────\n\n /**\n * Register a per-instance property that is bound to `this`\n * in the constructor. Safe for destructuring.\n *\n * When the name matches an existing property, the value type is auto-derived.\n *\n * @param name - Property name\n * @param value - Function (will be bound) or value\n */\n static instanceProperty<T extends Constructor, K extends keyof InstanceType<T>>(\n this: T,\n name: K,\n value: InstanceType<T>[K],\n ): void\n static instanceProperty(name: string | symbol, value: unknown): void\n static instanceProperty(name: string | symbol, value: unknown): void {\n if (!Object.prototype.hasOwnProperty.call(this, 'instanceMacros')) {\n this.instanceMacros = new Set(this.instanceMacros)\n }\n this.instanceMacros.add({ key: name, value })\n }\n\n // ── Getters (Object.defineProperty on prototype) ──────────\n\n /**\n * Register a computed getter on the class prototype.\n *\n * @param name - Property name\n * @param accumulator - Function that computes the value (called with instance as `this`)\n * @param singleton - If true, cache the value after first access\n */\n static getter<T extends Constructor, K extends keyof InstanceType<T>>(\n this: T,\n name: K,\n accumulator: (this: InstanceType<T>) => InstanceType<T>[K],\n singleton?: boolean,\n ): void\n static getter(name: string | symbol, accumulator: MacroFunction, singleton?: boolean): void\n static getter(\n name: string | symbol,\n accumulator: MacroFunction,\n singleton = false,\n ): void {\n if (!Object.prototype.hasOwnProperty.call(this, 'getterNames')) {\n this.getterNames = new Set(this.getterNames)\n }\n this.getterNames.add(name)\n\n Object.defineProperty(this.prototype, name, {\n get(): unknown {\n const value: unknown = accumulator.call(this)\n if (singleton) {\n Object.defineProperty(this, name, {\n value,\n configurable: false,\n enumerable: false,\n writable: false,\n })\n }\n return value\n },\n configurable: true,\n enumerable: false,\n })\n }\n\n // ── Introspection ─────────────────────────────────────────\n\n /**\n * Check if a macro, instance property, or getter is registered.\n *\n * @param name - Name to check\n */\n static hasMacro(name: string | symbol): boolean {\n return (\n this.macroNames.has(name) ||\n [...this.instanceMacros].some((m) => m.key === name) ||\n this.getterNames.has(name)\n )\n }\n\n // ── Cleanup ───────────────────────────────────────────────\n\n /**\n * Remove all macros, instance properties, and getters\n * registered on this class. Does not affect parent classes.\n */\n static flushMacros(): void {\n const proto = this.prototype as Record<string | symbol, unknown>\n\n // Restore original prototype values or delete if they didn't exist before\n for (const name of this.macroNames) {\n const original = this._originals.get(name)\n if (original?.existed) {\n proto[name] = original.value\n } else {\n Reflect.deleteProperty(proto, name)\n }\n }\n for (const name of this.getterNames) {\n Reflect.deleteProperty(proto, name)\n }\n\n if (Object.prototype.hasOwnProperty.call(this, 'macroNames')) {\n this.macroNames.clear()\n }\n if (Object.prototype.hasOwnProperty.call(this, 'instanceMacros')) {\n this.instanceMacros.clear()\n }\n if (Object.prototype.hasOwnProperty.call(this, 'getterNames')) {\n this.getterNames.clear()\n }\n if (Object.prototype.hasOwnProperty.call(this, '_originals')) {\n this._originals.clear()\n }\n }\n\n // ── Constructor (applies instance properties) ─────────────\n\n constructor() {\n const Constructor = this.constructor as typeof Macroable\n const self = this as Record<string | symbol, unknown>\n Constructor.instanceMacros.forEach(({ key, value }) => {\n if (typeof value === 'function') {\n self[key] = value.bind(this)\n } else {\n self[key] = value\n }\n })\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,IAAsB,YAAtB,MAAgC;;;;;CAM9B,OAAiB,iCAAiB,IAAI,KAA+C;;;;CAKrF,OAAiB,6BAAa,IAAI,KAAsB;;;;CAKxD,OAAiB,8BAAc,IAAI,KAAsB;;;;;CAMzD,OAAe,6BAAa,IAAI,KAA4D;CAmB5F,OAAO,MAAM,MAAuB,OAAsB;AACxD,MAAI,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,aAAa,CAC3D,MAAK,aAAa,IAAI,IAAI,KAAK,WAAW;AAE5C,MAAI,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,aAAa,CAC3D,MAAK,aAAa,IAAI,IAAI,KAAK,WAAW;AAI5C,MAAI,CAAC,KAAK,WAAW,IAAI,KAAK,EAAE;GAC9B,MAAM,UAAU,OAAO,UAAU,eAAe,KAAK,KAAK,WAAW,KAAK;AAC1E,QAAK,WAAW,IAAI,MAAM;IACxB;IACA,OAAO,UAAW,KAAK,UAA+C,QAAQ,KAAA;IAC/E,CAAC;;AAGJ,OAAK,WAAW,IAAI,KAAK;AACxB,OAAK,UAA+C,QAAQ;;CAoB/D,OAAO,iBAAiB,MAAuB,OAAsB;AACnE,MAAI,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,iBAAiB,CAC/D,MAAK,iBAAiB,IAAI,IAAI,KAAK,eAAe;AAEpD,OAAK,eAAe,IAAI;GAAE,KAAK;GAAM;GAAO,CAAC;;CAmB/C,OAAO,OACL,MACA,aACA,YAAY,OACN;AACN,MAAI,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,cAAc,CAC5D,MAAK,cAAc,IAAI,IAAI,KAAK,YAAY;AAE9C,OAAK,YAAY,IAAI,KAAK;AAE1B,SAAO,eAAe,KAAK,WAAW,MAAM;GAC1C,MAAe;IACb,MAAM,QAAiB,YAAY,KAAK,KAAK;AAC7C,QAAI,UACF,QAAO,eAAe,MAAM,MAAM;KAChC;KACA,cAAc;KACd,YAAY;KACZ,UAAU;KACX,CAAC;AAEJ,WAAO;;GAET,cAAc;GACd,YAAY;GACb,CAAC;;;;;;;CAUJ,OAAO,SAAS,MAAgC;AAC9C,SACE,KAAK,WAAW,IAAI,KAAK,IACzB,CAAC,GAAG,KAAK,eAAe,CAAC,MAAM,MAAM,EAAE,QAAQ,KAAK,IACpD,KAAK,YAAY,IAAI,KAAK;;;;;;CAU9B,OAAO,cAAoB;EACzB,MAAM,QAAQ,KAAK;AAGnB,OAAK,MAAM,QAAQ,KAAK,YAAY;GAClC,MAAM,WAAW,KAAK,WAAW,IAAI,KAAK;AAC1C,OAAI,UAAU,QACZ,OAAM,QAAQ,SAAS;OAEvB,SAAQ,eAAe,OAAO,KAAK;;AAGvC,OAAK,MAAM,QAAQ,KAAK,YACtB,SAAQ,eAAe,OAAO,KAAK;AAGrC,MAAI,OAAO,UAAU,eAAe,KAAK,MAAM,aAAa,CAC1D,MAAK,WAAW,OAAO;AAEzB,MAAI,OAAO,UAAU,eAAe,KAAK,MAAM,iBAAiB,CAC9D,MAAK,eAAe,OAAO;AAE7B,MAAI,OAAO,UAAU,eAAe,KAAK,MAAM,cAAc,CAC3D,MAAK,YAAY,OAAO;AAE1B,MAAI,OAAO,UAAU,eAAe,KAAK,MAAM,aAAa,CAC1D,MAAK,WAAW,OAAO;;CAM3B,cAAc;EACZ,MAAM,cAAc,KAAK;EACzB,MAAM,OAAO;AACb,cAAY,eAAe,SAAS,EAAE,KAAK,YAAY;AACrD,OAAI,OAAO,UAAU,WACnB,MAAK,OAAO,MAAM,KAAK,KAAK;OAE5B,MAAK,OAAO;IAEd"}
@@ -1,5 +1,5 @@
1
- import { Cn as OnShutdown, En as ValueProvider, Qt as ModuleRegistry, Sn as OnInitialize, Tn as RegistryEntry, _n as InjectionToken, bn as ModuleOptions, fn as AsyncModuleOptions, gn as FactoryProvider, hn as ExistingProvider, mn as DynamicModule, pn as ClassProvider, vn as ModuleClass, wn as Provider, xn as OnException, yn as ModuleContext } from "../index-BrmS34sa.mjs";
2
- import { t as Constructor } from "../types-CN0zONAZ.mjs";
1
+ import { $t as ModuleRegistry, An as ValueProvider, Cn as ModuleContext, Dn as OnShutdown, En as OnInitialize, On as Provider, Sn as ModuleClass, Tn as OnException, _n as ClassProvider, bn as FactoryProvider, gn as AsyncModuleOptions, kn as RegistryEntry, vn as DynamicModule, wn as ModuleOptions, xn as InjectionToken, yn as ExistingProvider } from "../index-D0US0X14.mjs";
2
+ import { t as Constructor } from "../types-cySNS_lp.mjs";
3
3
 
4
4
  //#region src/module/module.decorator.d.ts
5
5
  declare const MODULE_OPTIONS_KEY: unique symbol;
@@ -1,2 +1,2 @@
1
- import { C as getModuleOptions, S as Module, t as ModuleRegistry, w as isModuleClass, x as MODULE_OPTIONS_KEY } from "../module-C3YZ-kZN.mjs";
1
+ import { A as getModuleOptions, O as MODULE_OPTIONS_KEY, j as isModuleClass, k as Module, t as ModuleRegistry } from "../module-Dk2qTa77.mjs";
2
2
  export { MODULE_OPTIONS_KEY, Module, ModuleRegistry, getModuleOptions, isModuleClass };