stratal 0.0.20 → 0.0.22

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 (247) hide show
  1. package/README.md +1 -1
  2. package/dist/{base-email.provider-CfQCA08m.mjs → base-email.provider-BWZHIjt8.mjs} +1 -1
  3. package/dist/{base-email.provider-CfQCA08m.mjs.map → base-email.provider-BWZHIjt8.mjs.map} +1 -1
  4. package/dist/bin/cloudflare-workers-loader.mjs.map +1 -1
  5. package/dist/bin/quarry.mjs +46 -109
  6. package/dist/bin/quarry.mjs.map +1 -1
  7. package/dist/cache/index.d.mts +6 -46
  8. package/dist/cache/index.d.mts.map +1 -1
  9. package/dist/cache/index.mjs +22 -67
  10. package/dist/cache/index.mjs.map +1 -1
  11. package/dist/{cache.service-DsnKuNyO.d.mts → cache.service-e34gV6tz.d.mts} +8 -8
  12. package/dist/{cache.service-DsnKuNyO.d.mts.map → cache.service-e34gV6tz.d.mts.map} +1 -1
  13. package/dist/{cache.tokens-B7Rw1C9Q.mjs → cache.tokens-ovi_c52J.mjs} +1 -1
  14. package/dist/{cache.tokens-B7Rw1C9Q.mjs.map → cache.tokens-ovi_c52J.mjs.map} +1 -1
  15. package/dist/{colors-DJaRDXoS.mjs → colors-axmupKdp.mjs} +1 -1
  16. package/dist/{colors-DJaRDXoS.mjs.map → colors-axmupKdp.mjs.map} +1 -1
  17. package/dist/{command-BgSlsS4M.mjs → command-BU4ApTo5.mjs} +2 -3
  18. package/dist/command-BU4ApTo5.mjs.map +1 -0
  19. package/dist/{command-Bu-PjJrX.d.mts → command-wXfvHbBZ.d.mts} +3 -2
  20. package/dist/command-wXfvHbBZ.d.mts.map +1 -0
  21. package/dist/config/index.d.mts +24 -11
  22. package/dist/config/index.d.mts.map +1 -1
  23. package/dist/config/index.mjs +33 -57
  24. package/dist/config/index.mjs.map +1 -1
  25. package/dist/{consumer-registry-B7yUNh0q.d.mts → consumer-registry-DHQtypr1.d.mts} +1 -1
  26. package/dist/{consumer-registry-B7yUNh0q.d.mts.map → consumer-registry-DHQtypr1.d.mts.map} +1 -1
  27. package/dist/container-storage-GpNNz79X.mjs +52 -0
  28. package/dist/container-storage-GpNNz79X.mjs.map +1 -0
  29. package/dist/{controller.decorator-DQzenvSN.mjs → controller.decorator-DIUazNU7.mjs} +8 -8
  30. package/dist/controller.decorator-DIUazNU7.mjs.map +1 -0
  31. package/dist/cron/index.d.mts +26 -5
  32. package/dist/cron/index.d.mts.map +1 -1
  33. package/dist/cron/index.mjs +1 -1
  34. package/dist/{cron-manager-7Symz_TE.mjs → cron-manager-9bpN9bu4.mjs} +42 -16
  35. package/dist/cron-manager-9bpN9bu4.mjs.map +1 -0
  36. package/dist/{cron-manager-BEsH1mjW.d.mts → cron-manager-CSTIBPcM.d.mts} +6 -13
  37. package/dist/cron-manager-CSTIBPcM.d.mts.map +1 -0
  38. package/dist/decorate-HgTKAYK8.mjs +16 -0
  39. package/dist/deep-merge-C8NgcXw4.mjs +18 -0
  40. package/dist/deep-merge-C8NgcXw4.mjs.map +1 -0
  41. package/dist/di/index.d.mts +2 -2
  42. package/dist/di/index.mjs +4 -3
  43. package/dist/di-BO1QIb5H.mjs +415 -0
  44. package/dist/di-BO1QIb5H.mjs.map +1 -0
  45. package/dist/email/index.d.mts +14 -89
  46. package/dist/email/index.d.mts.map +1 -1
  47. package/dist/email/index.mjs +30 -125
  48. package/dist/email/index.mjs.map +1 -1
  49. package/dist/en-BPP6h6y5.mjs +202 -0
  50. package/dist/en-BPP6h6y5.mjs.map +1 -0
  51. package/dist/{env-D1rcZ8_r.d.mts → env-DKSbuBi5.d.mts} +1 -1
  52. package/dist/env-DKSbuBi5.d.mts.map +1 -0
  53. package/dist/errors/index.d.mts +2 -2
  54. package/dist/errors/index.mjs +4 -2
  55. package/dist/errors-BBZTnjdq.mjs +333 -0
  56. package/dist/errors-BBZTnjdq.mjs.map +1 -0
  57. package/dist/events/index.d.mts +2 -2
  58. package/dist/events/index.d.mts.map +1 -1
  59. package/dist/events/index.mjs +1 -1
  60. package/dist/{events-COKixqnG.mjs → events-D1KdDaiP.mjs} +13 -11
  61. package/dist/events-D1KdDaiP.mjs.map +1 -0
  62. package/dist/exception-context-B4kM-M53.mjs +429 -0
  63. package/dist/exception-context-B4kM-M53.mjs.map +1 -0
  64. package/dist/{gateway-context-CdJjpUCW.mjs → gateway-context-CFe6a9gz.mjs} +20 -31
  65. package/dist/gateway-context-CFe6a9gz.mjs.map +1 -0
  66. package/dist/guards/index.d.mts +3 -3
  67. package/dist/guards/index.d.mts.map +1 -1
  68. package/dist/guards/index.mjs +1 -1
  69. package/dist/{guards-DUk_Kzst.mjs → guards-Ced-uNIF.mjs} +7 -5
  70. package/dist/guards-Ced-uNIF.mjs.map +1 -0
  71. package/dist/{http-method.decorator-DXwxAfb_.mjs → http-method.decorator-CdjKFJZZ.mjs} +7 -6
  72. package/dist/http-method.decorator-CdjKFJZZ.mjs.map +1 -0
  73. package/dist/i18n/index.d.mts +238 -3
  74. package/dist/i18n/index.d.mts.map +1 -0
  75. package/dist/i18n/index.mjs +39 -3
  76. package/dist/i18n/index.mjs.map +1 -0
  77. package/dist/i18n/messages/en/index.d.mts +2 -2
  78. package/dist/i18n/messages/en/index.mjs +2 -2
  79. package/dist/i18n/utils/index.d.mts +4 -26
  80. package/dist/i18n/utils/index.d.mts.map +1 -1
  81. package/dist/i18n/utils/index.mjs +2 -2
  82. package/dist/i18n/validation/index.d.mts +3 -2
  83. package/dist/i18n/validation/index.mjs +4 -2
  84. package/dist/i18n.module-BlXrtAlV.mjs +219 -0
  85. package/dist/i18n.module-BlXrtAlV.mjs.map +1 -0
  86. package/dist/i18n.tokens-hwRpmjRq.mjs +19 -0
  87. package/dist/i18n.tokens-hwRpmjRq.mjs.map +1 -0
  88. package/dist/{index-7-hU3GTV.d.mts → index-B4UBK-2T.d.mts} +1 -1
  89. package/dist/{index-7-hU3GTV.d.mts.map → index-B4UBK-2T.d.mts.map} +1 -1
  90. package/dist/index-BtlE9RuO.d.mts +124 -0
  91. package/dist/index-BtlE9RuO.d.mts.map +1 -0
  92. package/dist/{index-CjaQ6_tZ.d.mts → index-CW1YHSft.d.mts} +71 -167
  93. package/dist/index-CW1YHSft.d.mts.map +1 -0
  94. package/dist/{index-D0US0X14.d.mts → index-DEncMcC6.d.mts} +559 -2239
  95. package/dist/index-DEncMcC6.d.mts.map +1 -0
  96. package/dist/index-Dj5IMwtr.d.mts +44 -0
  97. package/dist/index-Dj5IMwtr.d.mts.map +1 -0
  98. package/dist/{index-C1KvMncZ.d.mts → index-KMgSCSM7.d.mts} +3 -108
  99. package/dist/index-KMgSCSM7.d.mts.map +1 -0
  100. package/dist/index.d.mts +5 -43
  101. package/dist/index.mjs +1 -1
  102. package/dist/{is-command-C6a7WTPw.mjs → is-command-CX5rAfZW.mjs} +2 -2
  103. package/dist/{is-command-C6a7WTPw.mjs.map → is-command-CX5rAfZW.mjs.map} +1 -1
  104. package/dist/{is-seeder-CebjZCDn.mjs → is-seeder-CYCtELlm.mjs} +1 -1
  105. package/dist/{is-seeder-CebjZCDn.mjs.map → is-seeder-CYCtELlm.mjs.map} +1 -1
  106. package/dist/logger/index.d.mts +2 -2
  107. package/dist/logger/index.mjs +170 -2
  108. package/dist/logger/index.mjs.map +1 -0
  109. package/dist/macroable/index.d.mts +1 -1
  110. package/dist/macroable/index.mjs +1 -1
  111. package/dist/{macroable-BmufBshB.mjs → macroable-DzlfzT50.mjs} +1 -1
  112. package/dist/{macroable-BmufBshB.mjs.map → macroable-DzlfzT50.mjs.map} +1 -1
  113. package/dist/metadata-BVkc4aUu.mjs +39 -0
  114. package/dist/metadata-BVkc4aUu.mjs.map +1 -0
  115. package/dist/module/index.d.mts +6 -24
  116. package/dist/module/index.d.mts.map +1 -1
  117. package/dist/module/index.mjs +2 -2
  118. package/dist/module-xYoHba6B.mjs +422 -0
  119. package/dist/module-xYoHba6B.mjs.map +1 -0
  120. package/dist/openapi/index.d.mts +3 -3
  121. package/dist/openapi/index.d.mts.map +1 -1
  122. package/dist/openapi/index.mjs +1 -2
  123. package/dist/openapi-C6lm0RmV.mjs +483 -0
  124. package/dist/openapi-C6lm0RmV.mjs.map +1 -0
  125. package/dist/{openapi.service-BLgvn3hJ.d.mts → openapi.service-CrLlsXAd.d.mts} +3 -3
  126. package/dist/openapi.service-CrLlsXAd.d.mts.map +1 -0
  127. package/dist/quarry/index.d.mts +5 -163
  128. package/dist/quarry/index.d.mts.map +1 -1
  129. package/dist/quarry/index.mjs +5 -5
  130. package/dist/quarry/runner.d.mts +184 -0
  131. package/dist/quarry/runner.d.mts.map +1 -0
  132. package/dist/quarry/runner.mjs +775 -0
  133. package/dist/quarry/runner.mjs.map +1 -0
  134. package/dist/quarry-registry-D4hIGScf.d.mts +69 -0
  135. package/dist/quarry-registry-D4hIGScf.d.mts.map +1 -0
  136. package/dist/quarry-registry-DkraZNwn.mjs +311 -0
  137. package/dist/quarry-registry-DkraZNwn.mjs.map +1 -0
  138. package/dist/queue/index.d.mts +3 -3
  139. package/dist/queue/index.mjs +27 -28
  140. package/dist/queue/index.mjs.map +1 -1
  141. package/dist/{queue.module-BCdCiySt.mjs → queue.module-DeWJ0tQM.mjs} +67 -112
  142. package/dist/queue.module-DeWJ0tQM.mjs.map +1 -0
  143. package/dist/{r2-storage.provider-Co6F0ZYV.mjs → r2-storage.provider-Hfm6LdZQ.mjs} +8 -5
  144. package/dist/r2-storage.provider-Hfm6LdZQ.mjs.map +1 -0
  145. package/dist/{rate-limit.decorator--o6Q6p9w.mjs → rate-limit.decorator-D69zdZbp.mjs} +6 -11
  146. package/dist/rate-limit.decorator-D69zdZbp.mjs.map +1 -0
  147. package/dist/rate-limiter/index.d.mts +11 -50
  148. package/dist/rate-limiter/index.d.mts.map +1 -1
  149. package/dist/rate-limiter/index.mjs +25 -30
  150. package/dist/rate-limiter/index.mjs.map +1 -1
  151. package/dist/{resend.provider-M6qRLrcy.mjs → resend.provider-Ur6tU7fK.mjs} +8 -7
  152. package/dist/resend.provider-Ur6tU7fK.mjs.map +1 -0
  153. package/dist/router/index.d.mts +2 -2
  154. package/dist/router/index.mjs +8 -7
  155. package/dist/{i18n.module-BBlNNlcG.mjs → router-Cy6DjkvP.mjs} +215 -855
  156. package/dist/router-Cy6DjkvP.mjs.map +1 -0
  157. package/dist/seeder/index.d.mts +6 -11
  158. package/dist/seeder/index.d.mts.map +1 -1
  159. package/dist/seeder/index.mjs +3 -3
  160. package/dist/{seeder-CJAOHEIo.mjs → seeder-BADTig4n.mjs} +17 -22
  161. package/dist/seeder-BADTig4n.mjs.map +1 -0
  162. package/dist/{signed-url-BQPbv2In.mjs → signed-url-BqUqt5dF.mjs} +1 -1
  163. package/dist/{signed-url-BQPbv2In.mjs.map → signed-url-BqUqt5dF.mjs.map} +1 -1
  164. package/dist/{smtp.provider-w0Ve52Xg.mjs → smtp.provider-C129sNBT.mjs} +7 -6
  165. package/dist/smtp.provider-C129sNBT.mjs.map +1 -0
  166. package/dist/storage/index.d.mts +15 -39
  167. package/dist/storage/index.d.mts.map +1 -1
  168. package/dist/storage/index.mjs +3 -3
  169. package/dist/storage/providers/index.d.mts +2 -2
  170. package/dist/storage/providers/index.mjs +1 -1
  171. package/dist/{storage-1zw-6Yiz.mjs → storage-BA3ppVYM.mjs} +70 -59
  172. package/dist/storage-BA3ppVYM.mjs.map +1 -0
  173. package/dist/{storage-provider.interface-Bd6vA4ak.d.mts → storage-provider.interface-DQMtT42e.d.mts} +2 -3
  174. package/dist/storage-provider.interface-DQMtT42e.d.mts.map +1 -0
  175. package/dist/storage.error-C6FY037a.mjs +8 -0
  176. package/dist/storage.error-C6FY037a.mjs.map +1 -0
  177. package/dist/{stratal-DeEcGgdq.mjs → stratal-Bdq4IdB3.mjs} +31 -183
  178. package/dist/stratal-Bdq4IdB3.mjs.map +1 -0
  179. package/dist/stratal-BsKmvP6J.d.mts +43 -0
  180. package/dist/stratal-BsKmvP6J.d.mts.map +1 -0
  181. package/dist/{types-cySNS_lp.d.mts → types-BaeHi67f.d.mts} +1 -1
  182. package/dist/types-BaeHi67f.d.mts.map +1 -0
  183. package/dist/{usage-generator-BUdlhnCK.mjs → usage-generator-DTqaUMR9.mjs} +6 -3
  184. package/dist/usage-generator-DTqaUMR9.mjs.map +1 -0
  185. package/dist/validation-DUzcjb8Q.mjs +49 -0
  186. package/dist/validation-DUzcjb8Q.mjs.map +1 -0
  187. package/dist/validation.context-XTysWJ3b.mjs +117 -0
  188. package/dist/validation.context-XTysWJ3b.mjs.map +1 -0
  189. package/dist/websocket/index.d.mts +7 -14
  190. package/dist/websocket/index.d.mts.map +1 -1
  191. package/dist/websocket/index.mjs +2 -2
  192. package/dist/workers/index.d.mts +2 -2
  193. package/dist/workers/index.mjs +3 -2
  194. package/dist/workers/index.mjs.map +1 -1
  195. package/dist/{index-Bnpfq6uk.d.mts → zod-DvWTfRpI.d.mts} +58 -133
  196. package/dist/zod-DvWTfRpI.d.mts.map +1 -0
  197. package/dist/zod-hMa3rSHV.mjs +72 -0
  198. package/dist/zod-hMa3rSHV.mjs.map +1 -0
  199. package/package.json +20 -20
  200. package/dist/command-BgSlsS4M.mjs.map +0 -1
  201. package/dist/command-Bu-PjJrX.d.mts.map +0 -1
  202. package/dist/controller.decorator-DQzenvSN.mjs.map +0 -1
  203. package/dist/cron-manager-7Symz_TE.mjs.map +0 -1
  204. package/dist/cron-manager-BEsH1mjW.d.mts.map +0 -1
  205. package/dist/en-DSH_bhh6.mjs +0 -308
  206. package/dist/en-DSH_bhh6.mjs.map +0 -1
  207. package/dist/env-D1rcZ8_r.d.mts.map +0 -1
  208. package/dist/errors-BdyV5PnY.mjs +0 -1725
  209. package/dist/errors-BdyV5PnY.mjs.map +0 -1
  210. package/dist/errors-Da3Pz2X7.mjs +0 -74
  211. package/dist/errors-Da3Pz2X7.mjs.map +0 -1
  212. package/dist/events-COKixqnG.mjs.map +0 -1
  213. package/dist/gateway-context-CdJjpUCW.mjs.map +0 -1
  214. package/dist/guards-DUk_Kzst.mjs.map +0 -1
  215. package/dist/http-method.decorator-DXwxAfb_.mjs.map +0 -1
  216. package/dist/i18n.module-BBlNNlcG.mjs.map +0 -1
  217. package/dist/index-Bnpfq6uk.d.mts.map +0 -1
  218. package/dist/index-C1KvMncZ.d.mts.map +0 -1
  219. package/dist/index-CjaQ6_tZ.d.mts.map +0 -1
  220. package/dist/index-D0US0X14.d.mts.map +0 -1
  221. package/dist/index-DBd_2wv8.d.mts +0 -263
  222. package/dist/index-DBd_2wv8.d.mts.map +0 -1
  223. package/dist/index.d.mts.map +0 -1
  224. package/dist/logger-V6Ms3QnQ.mjs +0 -436
  225. package/dist/logger-V6Ms3QnQ.mjs.map +0 -1
  226. package/dist/module-Dk2qTa77.mjs +0 -860
  227. package/dist/module-Dk2qTa77.mjs.map +0 -1
  228. package/dist/openapi-tools.service-Zs-Ewv7F.mjs +0 -200
  229. package/dist/openapi-tools.service-Zs-Ewv7F.mjs.map +0 -1
  230. package/dist/openapi.service-BLgvn3hJ.d.mts.map +0 -1
  231. package/dist/quarry-registry-DNEej-Db.mjs +0 -688
  232. package/dist/quarry-registry-DNEej-Db.mjs.map +0 -1
  233. package/dist/queue.module-BCdCiySt.mjs.map +0 -1
  234. package/dist/r2-storage.provider-Co6F0ZYV.mjs.map +0 -1
  235. package/dist/rate-limit.decorator--o6Q6p9w.mjs.map +0 -1
  236. package/dist/resend.provider-M6qRLrcy.mjs.map +0 -1
  237. package/dist/seeder-CJAOHEIo.mjs.map +0 -1
  238. package/dist/setup-CefZKV_e.mjs +0 -37
  239. package/dist/setup-CefZKV_e.mjs.map +0 -1
  240. package/dist/smtp.provider-w0Ve52Xg.mjs.map +0 -1
  241. package/dist/storage-1zw-6Yiz.mjs.map +0 -1
  242. package/dist/storage-provider.interface-Bd6vA4ak.d.mts.map +0 -1
  243. package/dist/stratal-DeEcGgdq.mjs.map +0 -1
  244. package/dist/types-cySNS_lp.d.mts.map +0 -1
  245. package/dist/usage-generator-BUdlhnCK.mjs.map +0 -1
  246. package/dist/validation-DtJwAv7O.mjs +0 -248
  247. package/dist/validation-DtJwAv7O.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-DEncMcC6.d.mts","names":[],"sources":["../src/errors/application-error.ts","../src/di/tokens.ts","../src/router/route-map.ts","../src/router/constants.ts","../src/router/types.ts","../src/execution-context.ts","../src/di/lazy.ts","../src/di/types.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/router.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/di/conditional-binding-builder.ts","../src/di/container.ts","../src/di/container.error.ts","../src/di/decorators/inject-param.decorator.ts","../src/di/decorators/inject.decorator.ts","../src/di/decorators.ts","../src/di/metadata.ts","../src/di/container-storage.ts","../src/errors/error-response.ts","../src/errors/exception-context.ts","../src/errors/exception-handler.types.ts","../src/errors/exception-handler.ts","../src/errors/default-exception-handler.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/stratal-not-initialized.error.ts","../src/errors/database.error.ts","../src/errors/auth.error.ts"],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { a as z$1, b as cuid2, c as ZodCustomIssue, h as MessageKeys, i as ZodError, n as OpenAPIObject, o as zod_d_exports, r as PathItemObject, s as I18nErrorMetadata, t as OpenAPIHono, y as CUID2_REGEX } from "./zod-DvWTfRpI.mjs";
2
+ import * as _$zod from "zod";
3
+ import * as _$zod_v4_core0 from "zod/v4/core";
4
+ import { $ZodRawIssue } from "zod/v4/core";
5
+
6
+ //#region src/i18n/validation/with-zod-i18n.d.ts
7
+ /**
8
+ * Type-safe helper for creating custom Zod error messages with i18n support
9
+ *
10
+ * Usage with .refine():
11
+ * ```typescript
12
+ * const schema = z.string().refine(
13
+ * (val) => val.length > 5,
14
+ * withZodI18n('validation.minLength', { min: 5 })
15
+ * )
16
+ * ```
17
+ *
18
+ * Usage with built-in validators:
19
+ * ```typescript
20
+ * const schema = z.string().min(5, withZodI18n('validation.minLength', { min: 5 }))
21
+ * const schema = z.string().email(withZodI18n('validation.email'))
22
+ * ```
23
+ *
24
+ * @param key - Message key from shared i18n messages (type-safe via MessageKeys)
25
+ * @param params - Optional interpolation parameters for the message
26
+ * @returns Zod error configuration object with translated message
27
+ */
28
+ declare function withZodI18n(key: MessageKeys, params?: Record<string, unknown>): {
29
+ error: (_issue: $ZodRawIssue) => string;
30
+ };
31
+ //#endregion
32
+ //#region src/i18n/validation/validation.context.d.ts
33
+ /**
34
+ * Zod error map that resolves I18nService from the DI container.
35
+ * Falls back to 'Invalid input' when called outside the container scope
36
+ * (e.g., config validation at startup, tests).
37
+ */
38
+ declare const zodErrorMap: _$zod.ZodErrorMap<_$zod_v4_core0.$ZodIssue>;
39
+ declare namespace index_d_exports {
40
+ export { CUID2_REGEX, I18nErrorMetadata, OpenAPIHono, OpenAPIObject, PathItemObject, ZodCustomIssue, ZodError, cuid2, withZodI18n, z$1 as z, zodErrorMap };
41
+ }
42
+ //#endregion
43
+ export { withZodI18n as n, zodErrorMap as t };
44
+ //# sourceMappingURL=index-Dj5IMwtr.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-Dj5IMwtr.d.mts","names":[],"sources":["../src/i18n/validation/with-zod-i18n.ts","../src/i18n/validation/validation.context.ts","../src/i18n/validation/index.ts"],"mappings":";;;;;;;;;;;AA0BA;;;;;;;;;;;;;;;;iBAAgB,WAAA,CACd,GAAA,EAAK,WAAA,EACL,MAAA,GAAS,MAAA;EACN,KAAA,GAAQ,MAAA,EAAQ,YAAA;AAAA;;;;;;;;cCtBR,WAAA,EAAW,KAAA,CAAA,WAAA,CAAuB,cAAA,CAAvB,SAAA;AAAA"}
@@ -18,111 +18,6 @@ declare const common: {
18
18
  };
19
19
  };
20
20
  //#endregion
21
- //#region src/i18n/messages/en/errors.d.ts
22
- /**
23
- * System Error Messages - English
24
- *
25
- * Error messages used by packages/modules infrastructure.
26
- * These are automatically merged with application-specific messages.
27
- */
28
- declare const errors: {
29
- readonly internalError: "An internal error occurred";
30
- readonly notFound: "Resource not found";
31
- readonly unauthorized: "Unauthorized. Please sign in.";
32
- readonly forbidden: "Access denied";
33
- readonly honoAppAlreadyConfigured: "HonoApp has already been configured and can only be configured once";
34
- readonly routeNotFound: "Route not found: {method} {path}";
35
- readonly routeAccessDenied: "Resource not found";
36
- readonly controllerMethodNotFound: "Method {methodName} not found on {controllerName}";
37
- readonly controllerRegistration: "Failed to register controller {controllerName}: {reason}";
38
- readonly duplicateRouteName: "Duplicate route name \"{name}\". Already registered by {existingHandler}, cannot register {newHandler}.";
39
- readonly routeNameNotFound: "Route \"{name}\" not found in registry.";
40
- readonly missingRouteParam: "Missing required parameter \"{param}\" for route \"{name}\" (path: {path}).";
41
- readonly routerUseScopeViolation: "router.use() can only be called on the root Router, not inside group() callbacks. Use router.middleware() for scoped middleware.";
42
- readonly middlewareNextCalledMultipleTimes: "next() was called multiple times in \"{middlewareName}\" middleware. Ensure each middleware calls next() at most once.";
43
- readonly missingEnvironmentVariable: "Environment variable \"{variable}\" is required but not set.";
44
- readonly websocketBodyNotAvailable: "body() is not available in WebSocket gateways. Use WebSocket messages instead.";
45
- readonly websocketDuplicateEventHandler: "@{decorator}() is already applied to '{existingMethod}'. Only one method per gateway can handle this event.";
46
- readonly contextNotInitialized: "Context has not been initialized";
47
- readonly userNotAuthenticated: "User is not authenticated";
48
- readonly insufficientPermissions: "Insufficient permissions to perform this action";
49
- readonly requestContainerNotInitialized: "Request container has not been initialized";
50
- readonly requestScopeOperationNotAllowed: "{methodName}() cannot be called on this container scope. Check if you are calling it on the correct container (global vs request-scoped).";
51
- readonly conditionalBindingFallback: "Conditional binding predicate returned false for token \"{token}\" but no fallback was provided and no existing registration exists.";
52
- readonly configNotInitialized: "Configuration service has not been initialized";
53
- readonly configModuleNotInitialized: "ConfigModule.forRoot() was not called before module initialization";
54
- readonly stratalNotInitialized: "Stratal has not been instantiated. Ensure you export a Stratal instance as the default export.";
55
- readonly moduleAlreadyRegistered: "Module {moduleName} is already registered";
56
- readonly moduleDependencyNotFound: "Module dependency {dependency} not found for module {moduleName}";
57
- readonly moduleCircularDependency: "Circular dependency detected: {cycle}";
58
- readonly invalidModuleProvider: "Invalid module provider configuration: {provider}";
59
- readonly databaseGeneric: "Database error occurred";
60
- readonly databaseRecordNotFound: "Record not found in database";
61
- readonly databaseUniqueConstraint: "Record already exists";
62
- readonly databaseForeignKeyConstraint: "Related record not found";
63
- readonly databaseConnectionFailed: "Failed to connect to database";
64
- readonly databaseTimeout: "Database query timeout";
65
- readonly databaseNullConstraint: "Required field is missing";
66
- readonly databaseTooManyConnections: "Too many database connections";
67
- readonly databaseTransactionConflict: "Transaction conflict or deadlock";
68
- readonly databaseConstraintFailed: "A database constraint was violated";
69
- readonly databaseTableNotFound: "The specified table does not exist in the database";
70
- readonly databaseColumnNotFound: "The specified column does not exist in the table";
71
- readonly databaseInvalidQuery: "The database query is invalid or malformed";
72
- readonly invalidErrorCodeRange: "Invalid error code range: {code}";
73
- readonly queueBindingNotFound: "Queue binding {queueName} not found in environment";
74
- readonly queueProviderNotSupported: "Queue provider \"{provider}\" is not supported. Valid providers: cloudflare, sync";
75
- readonly cronExecutionFailed: "{count} cron job(s) failed for schedule \"{schedule}\": {jobs}";
76
- readonly localeNotSupported: "Locale '{locale}' is not supported. Supported locales: {supportedLocales}";
77
- readonly translationMissing: "Translation missing for key '{key}' in locale '{locale}'";
78
- readonly containerNotInitialized: "Application container has not been initialized. Ensure Application.initialize() has been called.";
79
- readonly domainMismatch: "The requested domain does not match any configured route";
80
- readonly invalidSignature: "The URL signature is invalid or has expired";
81
- readonly schemaValidation: "Schema validation failed";
82
- readonly responseValidation: "Response validation failed";
83
- readonly openapiValidation: "OpenAPI validation failed: {details}";
84
- readonly openapiRouteRegistration: "Failed to register OpenAPI route {path}: {reason}";
85
- readonly email: {
86
- readonly resendApiKeyMissing: "Resend API key not configured. Set RESEND_EMAIL_API_KEY environment variable.";
87
- readonly smtpConfigurationMissing: "SMTP configuration missing. Set SMTP_URL environment variable.";
88
- readonly smtpHostMissing: "SMTP host not configured. Check SMTP_URL format (smtp://user:pass@host:port).";
89
- readonly smtpConnectionFailed: "Failed to connect to SMTP server {smtpHost}:{smtpPort}";
90
- readonly resendApiFailed: "Resend API error";
91
- readonly providerNotSupported: "Unsupported email provider: {provider}. Supported providers: resend, smtp";
92
- };
93
- readonly storage: {
94
- readonly fileNotFound: "File at path \"{path}\" was not found";
95
- readonly invalidDisk: "Storage disk \"{disk}\" is not configured";
96
- readonly invalidFileType: "File type \"{mimeType}\" is not allowed";
97
- readonly fileTooLarge: "File size {size} exceeds maximum allowed size of {maxSize}";
98
- readonly presignedUrlInvalidExpiry: "Expiry must be between {min} and {max} seconds";
99
- readonly diskNotConfigured: "Disk \"{disk}\" is not configured";
100
- readonly responseBodyMissing: "No body in storage response for path: {path}";
101
- readonly r2BindingNotFound: "R2 binding \"{binding}\" was not found in the environment";
102
- readonly r2PresignedUrlSecretMissing: "APP_SECRET environment variable is required for presigned URLs";
103
- };
104
- readonly cache: {
105
- readonly getFailed: "Failed to retrieve value from cache for key '{key}'";
106
- readonly putFailed: "Failed to store value in cache for key '{key}'";
107
- readonly deleteFailed: "Failed to delete value from cache for key '{key}'";
108
- readonly listFailed: "Failed to list cache keys";
109
- };
110
- readonly rateLimit: {
111
- readonly tooManyRequests: "Too Many Requests";
112
- readonly notDefined: "Rate limiter \"{name}\" is not defined. Register it via RateLimiterRegistry.for(\"{name}\", ...) inside a module's onInitialize hook.";
113
- readonly notConfigured: "RateLimiterModule.forRoot() was not called. Pass { store: \"kv\" | \"memory\" | { useClass } } to enable rate limiting.";
114
- readonly moduleNotImported: "Rate limiter \"{name}\" was used (router.throttle / @RateLimit) but RateLimiterModule is not imported in your AppModule. Add RateLimiterModule.forRoot({ store: ... }) to imports.";
115
- };
116
- readonly seederNameCollision: "Seeder name collision: \"{name}\" is already registered. Use distinct class names for each seeder.";
117
- readonly seederNotRegistered: "Seeder \"{name}\" is not registered";
118
- readonly migration: {
119
- readonly failed: "Migration {migrationName} failed: {error}";
120
- readonly checksumMismatch: "Migration {migrationName} checksum mismatch (expected: {expected}, actual: {actual})";
121
- readonly alreadyApplied: "Migration {migrationName} has already been applied";
122
- readonly notFound: "Migration {migrationName} not found";
123
- };
124
- };
125
- //#endregion
126
21
  //#region src/i18n/messages/en/emails.d.ts
127
22
  /**
128
23
  * System Email Messages - English
@@ -301,8 +196,8 @@ declare const zodI18n: {
301
196
  };
302
197
  };
303
198
  declare namespace index_d_exports {
304
- export { common, emails, errors, validation, zodI18n };
199
+ export { common, emails, validation, zodI18n };
305
200
  }
306
201
  //#endregion
307
- export { errors as a, emails as i, zodI18n as n, common as o, validation as r, index_d_exports as t };
308
- //# sourceMappingURL=index-C1KvMncZ.d.mts.map
202
+ export { common as a, emails as i, zodI18n as n, validation as r, index_d_exports as t };
203
+ //# sourceMappingURL=index-KMgSCSM7.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-KMgSCSM7.d.mts","names":[],"sources":["../src/i18n/messages/en/common.ts","../src/i18n/messages/en/emails.ts","../src/i18n/messages/en/validation.ts","../src/i18n/messages/en/zod.ts","../src/i18n/messages/en/index.ts"],"mappings":";;;;AAOA;;;cAAa,MAAA;EAAA;;;;;;;;;;;;;;;;AAAb;;;cCAa,MAAA;EAAA,SAIH,SAAA;IAAA,SAAA,OAAA;EAAA;AAAA;;;;;;cCPG,UAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AFGb;;;cGAa,OAAA;EAAA"}
package/dist/index.d.mts CHANGED
@@ -1,43 +1,5 @@
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";
4
- //#region src/stratal.d.ts
5
- /**
6
- * Stratal — Hono-style entry point for Cloudflare Workers.
7
- *
8
- * Eagerly bootstraps the Application at construction time, dynamically
9
- * importing `cloudflare:workers` for env and waitUntil.
10
- *
11
- * @example
12
- * ```typescript
13
- * import { Stratal } from 'stratal'
14
- * import { AppModule } from './app.module'
15
- *
16
- * export default new Stratal({ module: AppModule })
17
- * ```
18
- */
19
- declare class Stratal<Env extends StratalEnv = StratalEnv> {
20
- private app;
21
- private initPromise;
22
- private static _application;
23
- private static _generation;
24
- private static _previousInstance;
25
- constructor(config: ApplicationConfig);
26
- fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response>;
27
- queue(batch: MessageBatch): Promise<void>;
28
- scheduled(controller: ScheduledController): Promise<void>;
29
- get hono(): Promise<HonoApp>;
30
- shutdown(): Promise<void>;
31
- /**
32
- * @internal
33
- * Resolves the Application instance from the static singleton.
34
- * Used by worker base classes (DurableObject, Workflow, WorkerEntrypoint)
35
- * to access the DI container without going through Cloudflare RPC.
36
- */
37
- static resolveApplication(): Promise<Application>;
38
- private ensureReady;
39
- private prepareApp;
40
- }
41
- //#endregion
42
- export { Application, ApplicationConfig, ApplicationOptions, Constructor, Stratal, StratalEnv, StratalExecutionContext };
43
- //# sourceMappingURL=index.d.mts.map
1
+ import { Un as StratalExecutionContext, ct as Application, lt as ApplicationConfig, ut as ApplicationOptions } from "./index-DEncMcC6.mjs";
2
+ import { t as StratalEnv } from "./env-DKSbuBi5.mjs";
3
+ import { t as Constructor } from "./types-BaeHi67f.mjs";
4
+ import { t as Stratal } from "./stratal-BsKmvP6J.mjs";
5
+ export { Application, ApplicationConfig, ApplicationOptions, Constructor, Stratal, StratalEnv, StratalExecutionContext };
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { n as Application, t as Stratal } from "./stratal-DeEcGgdq.mjs";
1
+ import { n as Application, t as Stratal } from "./stratal-Bdq4IdB3.mjs";
2
2
  export { Application, Stratal };
@@ -1,4 +1,4 @@
1
- import { t as Command } from "./command-BgSlsS4M.mjs";
1
+ import { t as Command } from "./command-BU4ApTo5.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-C6a7WTPw.mjs.map
14
+ //# sourceMappingURL=is-command-CX5rAfZW.mjs.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"is-command-CX5rAfZW.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;CACtD,OAAO,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-CebjZCDn.mjs.map
28
+ //# sourceMappingURL=is-seeder-CYCtELlm.mjs.map
@@ -1 +1 @@
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
+ {"version":3,"file":"is-seeder-CYCtELlm.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;GAAE,MAAM,IAAI,MAAM,+BAA+B;;EAC5D,WAAW;EACZ;;CAKD,MAAgB,KAAK,aAAiD;EACpE,MAAM,KAAK,kBAAkB,IAAI,YAAY;;;;;;;;;;ACZjD,SAAgB,SAAS,QAA8B;CACrD,OAAO,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-DBd_2wv8.mjs";
2
- export { ConsoleTransport, InternalLogContext, JsonFormatter, LOGGER_TOKENS, LOG_LEVEL_PRIORITY, LogContext, LogEntry, LogLevel, LoggerService, PrettyFormatter };
1
+ import { a as InternalLogContext, c as LogLevel, i as LogEntry, l as LOGGER_TOKENS, n as JsonFormatter, o as LogContext, r as LoggerService, s as LOG_LEVEL_PRIORITY, t as PrettyFormatter } from "../index-BtlE9RuO.mjs";
2
+ export { InternalLogContext, JsonFormatter, LOGGER_TOKENS, LOG_LEVEL_PRIORITY, LogContext, LogEntry, LogLevel, LoggerService, PrettyFormatter };
@@ -1,2 +1,170 @@
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
- export { ConsoleTransport, JsonFormatter, LOGGER_TOKENS, LOG_LEVEL_PRIORITY, LogLevel, LoggerService, PrettyFormatter };
1
+ import { d as Transient, m as inject } from "../di-BO1QIb5H.mjs";
2
+ import { n as __decorateParam, t as __decorate } from "../decorate-HgTKAYK8.mjs";
3
+ //#region src/logger/logger.tokens.ts
4
+ const LOGGER_TOKENS = {
5
+ LoggerService: Symbol.for("stratal:logger:service"),
6
+ Formatter: Symbol.for("stratal:logger:formatter"),
7
+ LogLevelOptions: Symbol.for("stratal:logger:log:level:options")
8
+ };
9
+ //#endregion
10
+ //#region src/logger/contracts/log-level.ts
11
+ /**
12
+ * Log severity levels
13
+ * Ordered from least to most severe
14
+ */
15
+ let LogLevel = /* @__PURE__ */ function(LogLevel) {
16
+ LogLevel["DEBUG"] = "debug";
17
+ LogLevel["INFO"] = "info";
18
+ LogLevel["WARN"] = "warn";
19
+ LogLevel["ERROR"] = "error";
20
+ return LogLevel;
21
+ }({});
22
+ /**
23
+ * Map log levels to numeric priorities (for filtering)
24
+ * Higher numbers = more severe = higher priority
25
+ */
26
+ const LOG_LEVEL_PRIORITY = {
27
+ ["debug"]: 0,
28
+ ["info"]: 1,
29
+ ["warn"]: 2,
30
+ ["error"]: 3
31
+ };
32
+ //#endregion
33
+ //#region src/logger/services/logger.service.ts
34
+ let LoggerService = class LoggerService {
35
+ logLevel;
36
+ formatter;
37
+ constructor(logLevel, formatter) {
38
+ this.logLevel = logLevel;
39
+ this.formatter = formatter;
40
+ }
41
+ debug(message, context) {
42
+ this.log("debug", message, context);
43
+ }
44
+ info(message, context) {
45
+ this.log("info", message, context);
46
+ }
47
+ warn(message, context) {
48
+ this.log("warn", message, context);
49
+ }
50
+ error(message, errorOrContext, maybeContext) {
51
+ let context;
52
+ let error;
53
+ if (errorOrContext instanceof Error) {
54
+ error = errorOrContext;
55
+ context = maybeContext;
56
+ } else context = errorOrContext;
57
+ this.log("error", message, context, error);
58
+ }
59
+ log(level, message, userContext, error) {
60
+ if (LOG_LEVEL_PRIORITY[level] < LOG_LEVEL_PRIORITY[this.logLevel]) return;
61
+ const entry = {
62
+ level,
63
+ message,
64
+ context: this.enrichContext(userContext ?? {}),
65
+ error: error ? this.serializeError(error) : void 0
66
+ };
67
+ const formatted = this.formatter.format(entry);
68
+ this.writeToConsole(level, formatted);
69
+ }
70
+ writeToConsole(level, formatted) {
71
+ switch (level) {
72
+ case "debug":
73
+ console.debug(formatted);
74
+ break;
75
+ case "info":
76
+ console.info(formatted);
77
+ break;
78
+ case "warn":
79
+ console.warn(formatted);
80
+ break;
81
+ case "error":
82
+ console.error(formatted);
83
+ break;
84
+ }
85
+ }
86
+ enrichContext(userContext) {
87
+ return {
88
+ ...userContext,
89
+ timestamp: Date.now()
90
+ };
91
+ }
92
+ serializeError(error) {
93
+ return {
94
+ message: error.message,
95
+ stack: error.stack,
96
+ name: error.name
97
+ };
98
+ }
99
+ };
100
+ LoggerService = __decorate([
101
+ Transient(),
102
+ __decorateParam(0, inject(LOGGER_TOKENS.LogLevelOptions)),
103
+ __decorateParam(1, inject(LOGGER_TOKENS.Formatter))
104
+ ], LoggerService);
105
+ //#endregion
106
+ //#region src/logger/formatters/json-formatter.ts
107
+ /**
108
+ * JSON Formatter
109
+ *
110
+ * Produces structured JSON logs for production environments.
111
+ * Optimized for log aggregation systems (Cloudflare Analytics, Datadog, etc.)
112
+ *
113
+ * Output format:
114
+ * {
115
+ * "level": "info",
116
+ * "message": "User logged in",
117
+ * "timestamp": 1234567890,
118
+ * "userId": "user_456",
119
+ * "error": { "message": "...", "stack": "..." }
120
+ * }
121
+ */
122
+ var JsonFormatter = class {
123
+ format(entry) {
124
+ const output = {
125
+ level: entry.level,
126
+ message: entry.message,
127
+ ...entry.context,
128
+ ...entry.error && { error: entry.error }
129
+ };
130
+ return JSON.stringify(output);
131
+ }
132
+ };
133
+ //#endregion
134
+ //#region src/logger/formatters/pretty-formatter.ts
135
+ /**
136
+ * Pretty Formatter
137
+ *
138
+ * Human-readable colored output for development environments.
139
+ * Uses ANSI color codes for terminal output.
140
+ *
141
+ * Output format:
142
+ * [2024-01-15 10:30:45] INFO: User logged in
143
+ * userId: user_456
144
+ */
145
+ var PrettyFormatter = class {
146
+ colors = {
147
+ ["debug"]: "\x1B[36m",
148
+ ["info"]: "\x1B[32m",
149
+ ["warn"]: "\x1B[33m",
150
+ ["error"]: "\x1B[31m"
151
+ };
152
+ reset = "\x1B[0m";
153
+ format(entry) {
154
+ let output = `${this.colors[entry.level]}[${new Date(entry.context.timestamp).toISOString()}] ${entry.level.toUpperCase().padEnd(5)}${this.reset}: ${entry.message}`;
155
+ const { timestamp: _, ...contextWithoutTimestamp } = entry.context;
156
+ const contextEntries = Object.entries(contextWithoutTimestamp);
157
+ if (contextEntries.length > 0) {
158
+ output += "\n";
159
+ contextEntries.forEach(([key, value]) => {
160
+ output += ` ${key}: ${JSON.stringify(value)}\n`;
161
+ });
162
+ }
163
+ if (entry.error?.stack) output += `\n${entry.error.stack}\n`;
164
+ return output.trimEnd();
165
+ }
166
+ };
167
+ //#endregion
168
+ export { JsonFormatter, LOGGER_TOKENS, LOG_LEVEL_PRIORITY, LogLevel, LoggerService, PrettyFormatter };
169
+
170
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../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"],"sourcesContent":["export const LOGGER_TOKENS = {\n LoggerService: Symbol.for('stratal:logger:service'),\n Formatter: Symbol.for('stratal:logger:formatter'),\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 '../../di'\nimport { Transient } from '../../di/decorators'\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'\n\n@Transient()\nexport class LoggerService {\n constructor(\n @inject(LOGGER_TOKENS.LogLevelOptions)\n private readonly logLevel: LogLevel,\n\n @inject(LOGGER_TOKENS.Formatter)\n private readonly formatter: ILogFormatter,\n ) { }\n\n debug(message: string, context?: LogContext): void {\n this.log(LogLevel.DEBUG, message, context)\n }\n\n info(message: string, context?: LogContext): void {\n this.log(LogLevel.INFO, message, context)\n }\n\n warn(message: string, context?: LogContext): void {\n this.log(LogLevel.WARN, message, context)\n }\n\n error(message: string, error: Error, context?: LogContext): void\n error(message: string, context?: LogContext): void\n error(message: string, errorOrContext?: Error | LogContext, maybeContext?: LogContext): void {\n let context: LogContext | undefined\n let error: Error | undefined\n\n if (errorOrContext instanceof Error) {\n error = errorOrContext\n context = maybeContext\n } else {\n context = errorOrContext\n }\n\n this.log(LogLevel.ERROR, message, context, error)\n }\n\n private log(\n level: LogLevel,\n message: string,\n userContext?: LogContext,\n error?: Error\n ): void {\n if (LOG_LEVEL_PRIORITY[level] < LOG_LEVEL_PRIORITY[this.logLevel]) {\n return\n }\n\n const entry: LogEntry = {\n level,\n message,\n context: this.enrichContext(userContext ?? {}),\n error: error ? this.serializeError(error) : undefined,\n }\n\n const formatted = this.formatter.format(entry)\n this.writeToConsole(level, formatted)\n }\n\n private writeToConsole(level: LogLevel, formatted: string): void {\n switch (level) {\n case LogLevel.DEBUG:\n console.debug(formatted)\n break\n case LogLevel.INFO:\n console.info(formatted)\n break\n case LogLevel.WARN:\n console.warn(formatted)\n break\n case LogLevel.ERROR:\n console.error(formatted)\n break\n }\n }\n\n private enrichContext(userContext: LogContext): InternalLogContext {\n return {\n ...userContext,\n timestamp: Date.now(),\n }\n }\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"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { n as MacroFunction, t as Macroable } from "../index-7-hU3GTV.mjs";
1
+ import { n as MacroFunction, t as Macroable } from "../index-B4UBK-2T.mjs";
2
2
  export { MacroFunction, Macroable };
@@ -1,2 +1,2 @@
1
- import { t as Macroable } from "../macroable-BmufBshB.mjs";
1
+ import { t as Macroable } from "../macroable-DzlfzT50.mjs";
2
2
  export { Macroable };
@@ -119,4 +119,4 @@ var Macroable = class {
119
119
  //#endregion
120
120
  export { Macroable as t };
121
121
 
122
- //# sourceMappingURL=macroable-BmufBshB.mjs.map
122
+ //# sourceMappingURL=macroable-DzlfzT50.mjs.map
@@ -1 +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
+ {"version":3,"file":"macroable-DzlfzT50.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;EACxD,IAAI,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,aAAa,EAC3D,KAAK,aAAa,IAAI,IAAI,KAAK,WAAW;EAE5C,IAAI,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,aAAa,EAC3D,KAAK,aAAa,IAAI,IAAI,KAAK,WAAW;EAI5C,IAAI,CAAC,KAAK,WAAW,IAAI,KAAK,EAAE;GAC9B,MAAM,UAAU,OAAO,UAAU,eAAe,KAAK,KAAK,WAAW,KAAK;GAC1E,KAAK,WAAW,IAAI,MAAM;IACxB;IACA,OAAO,UAAW,KAAK,UAA+C,QAAQ,KAAA;IAC/E,CAAC;;EAGJ,KAAK,WAAW,IAAI,KAAK;EACzB,KAAM,UAA+C,QAAQ;;CAoB/D,OAAO,iBAAiB,MAAuB,OAAsB;EACnE,IAAI,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,iBAAiB,EAC/D,KAAK,iBAAiB,IAAI,IAAI,KAAK,eAAe;EAEpD,KAAK,eAAe,IAAI;GAAE,KAAK;GAAM;GAAO,CAAC;;CAmB/C,OAAO,OACL,MACA,aACA,YAAY,OACN;EACN,IAAI,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,cAAc,EAC5D,KAAK,cAAc,IAAI,IAAI,KAAK,YAAY;EAE9C,KAAK,YAAY,IAAI,KAAK;EAE1B,OAAO,eAAe,KAAK,WAAW,MAAM;GAC1C,MAAe;IACb,MAAM,QAAiB,YAAY,KAAK,KAAK;IAC7C,IAAI,WACF,OAAO,eAAe,MAAM,MAAM;KAChC;KACA,cAAc;KACd,YAAY;KACZ,UAAU;KACX,CAAC;IAEJ,OAAO;;GAET,cAAc;GACd,YAAY;GACb,CAAC;;;;;;;CAUJ,OAAO,SAAS,MAAgC;EAC9C,OACE,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;EAGnB,KAAK,MAAM,QAAQ,KAAK,YAAY;GAClC,MAAM,WAAW,KAAK,WAAW,IAAI,KAAK;GAC1C,IAAI,UAAU,SACZ,MAAM,QAAQ,SAAS;QAEvB,QAAQ,eAAe,OAAO,KAAK;;EAGvC,KAAK,MAAM,QAAQ,KAAK,aACtB,QAAQ,eAAe,OAAO,KAAK;EAGrC,IAAI,OAAO,UAAU,eAAe,KAAK,MAAM,aAAa,EAC1D,KAAK,WAAW,OAAO;EAEzB,IAAI,OAAO,UAAU,eAAe,KAAK,MAAM,iBAAiB,EAC9D,KAAK,eAAe,OAAO;EAE7B,IAAI,OAAO,UAAU,eAAe,KAAK,MAAM,cAAc,EAC3D,KAAK,YAAY,OAAO;EAE1B,IAAI,OAAO,UAAU,eAAe,KAAK,MAAM,aAAa,EAC1D,KAAK,WAAW,OAAO;;CAM3B,cAAc;EACZ,MAAM,cAAc,KAAK;EACzB,MAAM,OAAO;EACb,YAAY,eAAe,SAAS,EAAE,KAAK,YAAY;GACrD,IAAI,OAAO,UAAU,YACnB,KAAK,OAAO,MAAM,KAAK,KAAK;QAE5B,KAAK,OAAO;IAEd"}