stratal 0.0.26 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (284) hide show
  1. package/CHANGELOG.md +912 -0
  2. package/README.md +96 -14
  3. package/dist/bin/cloudflare-workers-loader.mjs +18 -3
  4. package/dist/bin/cloudflare-workers-loader.mjs.map +1 -1
  5. package/dist/bin/quarry.mjs +85 -14
  6. package/dist/bin/quarry.mjs.map +1 -1
  7. package/dist/cache/index.d.mts +8 -9
  8. package/dist/cache/index.d.mts.map +1 -1
  9. package/dist/cache/index.mjs +56 -17
  10. package/dist/cache/index.mjs.map +1 -1
  11. package/dist/{cache.service-uElmBtdS.d.mts → cache.service-Dg0Hj0gp.d.mts} +27 -12
  12. package/dist/cache.service-Dg0Hj0gp.d.mts.map +1 -0
  13. package/dist/{command-DoBD2Cwl.d.mts → command-BXMccV_9.d.mts} +6 -3
  14. package/dist/command-BXMccV_9.d.mts.map +1 -0
  15. package/dist/{command-BvmUAPPQ.mjs → command-Bb820B6W.mjs} +36 -13
  16. package/dist/command-Bb820B6W.mjs.map +1 -0
  17. package/dist/common.schemas-BigQCwYB.mjs +89 -0
  18. package/dist/common.schemas-BigQCwYB.mjs.map +1 -0
  19. package/dist/config/index.d.mts +15 -15
  20. package/dist/config/index.d.mts.map +1 -1
  21. package/dist/config/index.mjs +4 -6
  22. package/dist/config/index.mjs.map +1 -1
  23. package/dist/{consumer-registry-D3iMTSdy.d.mts → consumer-registry-i9oCdarv.d.mts} +2 -3
  24. package/dist/consumer-registry-i9oCdarv.d.mts.map +1 -0
  25. package/dist/{container-storage-BmOJ4_Na.mjs → container-storage-DfF7SXdV.mjs} +11 -1
  26. package/dist/container-storage-DfF7SXdV.mjs.map +1 -0
  27. package/dist/{controller.decorator-YSTPQntu.mjs → controller.decorator-BB0JcwMg.mjs} +18 -9
  28. package/dist/controller.decorator-BB0JcwMg.mjs.map +1 -0
  29. package/dist/cron/index.d.mts +6 -7
  30. package/dist/cron/index.d.mts.map +1 -1
  31. package/dist/cron/index.mjs +1 -1
  32. package/dist/{cron-job-NesZRk8F.d.mts → cron-job-DAgNw4Bn.d.mts} +1 -2
  33. package/dist/cron-job-DAgNw4Bn.d.mts.map +1 -0
  34. package/dist/{cron.module-C81HTzR7.mjs → cron.module-Dnyl9sFk.mjs} +6 -7
  35. package/dist/{cron.module-C81HTzR7.mjs.map → cron.module-Dnyl9sFk.mjs.map} +1 -1
  36. package/dist/{decorate-CuAoSZvs.mjs → decorate-C79yt3Wt.mjs} +2 -2
  37. package/dist/di/index.d.mts +1 -1
  38. package/dist/di/index.mjs +2 -3
  39. package/dist/{di-D7qmrAir.mjs → di-DQ3xbjgf.mjs} +48 -6
  40. package/dist/di-DQ3xbjgf.mjs.map +1 -0
  41. package/dist/email/index.d.mts +158 -133
  42. package/dist/email/index.d.mts.map +1 -1
  43. package/dist/email/index.mjs +66 -78
  44. package/dist/email/index.mjs.map +1 -1
  45. package/dist/{en-CDZBMcc1.mjs → en-CCL84z4k.mjs} +2 -2
  46. package/dist/{en-CDZBMcc1.mjs.map → en-CCL84z4k.mjs.map} +1 -1
  47. package/dist/env-ug22bJj7.d.mts.map +1 -1
  48. package/dist/errors/index.d.mts +1 -1
  49. package/dist/errors/index.mjs +3 -3
  50. package/dist/{errors-C01O2T-n.mjs → errors-CrOXI_y5.mjs} +6 -8
  51. package/dist/errors-CrOXI_y5.mjs.map +1 -0
  52. package/dist/events/index.d.mts +8 -9
  53. package/dist/events/index.d.mts.map +1 -1
  54. package/dist/events/index.mjs +1 -1
  55. package/dist/{events-BhEQuT1X.mjs → events-GtwGEHyT.mjs} +5 -6
  56. package/dist/events-GtwGEHyT.mjs.map +1 -0
  57. package/dist/{exception-context-D-kvney-.mjs → exception-context-CdnGTQNF.mjs} +13 -7
  58. package/dist/exception-context-CdnGTQNF.mjs.map +1 -0
  59. package/dist/{gateway-context-m7kEzRa2.mjs → gateway-context-Cmc1NRS0.mjs} +7 -7
  60. package/dist/{gateway-context-m7kEzRa2.mjs.map → gateway-context-Cmc1NRS0.mjs.map} +1 -1
  61. package/dist/gateway-mode-0rUaeW3g.mjs +53 -0
  62. package/dist/gateway-mode-0rUaeW3g.mjs.map +1 -0
  63. package/dist/guards/index.d.mts +38 -20
  64. package/dist/guards/index.d.mts.map +1 -1
  65. package/dist/guards/index.mjs +2 -2
  66. package/dist/{guards-DALPXy3_.mjs → guards-DOGly9IF.mjs} +34 -11
  67. package/dist/guards-DOGly9IF.mjs.map +1 -0
  68. package/dist/hono-app-IhdqL0Fk.mjs +399 -0
  69. package/dist/hono-app-IhdqL0Fk.mjs.map +1 -0
  70. package/dist/{http-method.decorator-BljM8BDj.mjs → http-method.decorator-BDi9LTWj.mjs} +9 -8
  71. package/dist/http-method.decorator-BDi9LTWj.mjs.map +1 -0
  72. package/dist/i18n/index.d.mts +26 -137
  73. package/dist/i18n/index.d.mts.map +1 -1
  74. package/dist/i18n/index.mjs +4 -5
  75. package/dist/i18n/index.mjs.map +1 -1
  76. package/dist/i18n/messages/en/index.d.mts +1 -1
  77. package/dist/i18n/messages/en/index.mjs +1 -1
  78. package/dist/i18n/utils/index.d.mts +1 -2
  79. package/dist/i18n/utils/index.d.mts.map +1 -1
  80. package/dist/i18n/validation/index.d.mts +80 -5
  81. package/dist/i18n/validation/index.d.mts.map +1 -0
  82. package/dist/i18n/validation/index.mjs +4 -5
  83. package/dist/{i18n.module-B2DvWUPa.mjs → i18n.module-Bm3xlViA.mjs} +28 -13
  84. package/dist/i18n.module-Bm3xlViA.mjs.map +1 -0
  85. package/dist/index-0ItCjaqw.d.mts.map +1 -1
  86. package/dist/{index-CNuFQSNj.d.mts → index-3HJfhLlE.d.mts} +9 -11
  87. package/dist/index-3HJfhLlE.d.mts.map +1 -0
  88. package/dist/{index-uybm0bhQ.d.mts → index-B2WtEagR.d.mts} +1187 -234
  89. package/dist/index-B2WtEagR.d.mts.map +1 -0
  90. package/dist/index-BUt92sAE.d.mts.map +1 -1
  91. package/dist/index-CAHNCpvr.d.mts +203 -0
  92. package/dist/index-CAHNCpvr.d.mts.map +1 -0
  93. package/dist/index.d.mts +4 -4
  94. package/dist/index.mjs +2 -2
  95. package/dist/{is-command-CEPO9n8c.mjs → is-command-CSVv14wh.mjs} +2 -2
  96. package/dist/{is-command-CEPO9n8c.mjs.map → is-command-CSVv14wh.mjs.map} +1 -1
  97. package/dist/{is-seeder-Gvh_AM71.mjs → is-seeder-gLgXYbqC.mjs} +2 -2
  98. package/dist/is-seeder-gLgXYbqC.mjs.map +1 -0
  99. package/dist/{lazy-module-loader-M6YKudNL.d.mts → lazy-module-loader-C3OHoUnR.d.mts} +4 -5
  100. package/dist/lazy-module-loader-C3OHoUnR.d.mts.map +1 -0
  101. package/dist/limit-BE0HNAF6.mjs +116 -0
  102. package/dist/limit-BE0HNAF6.mjs.map +1 -0
  103. package/dist/locale-path.service-BqzDIrgy.mjs +213 -0
  104. package/dist/locale-path.service-BqzDIrgy.mjs.map +1 -0
  105. package/dist/locale-url-nZrZxqJP.mjs.map +1 -1
  106. package/dist/{locale-url.service-6bgia24_.mjs → locale-url.service-H8PH6GGh.mjs} +15 -5
  107. package/dist/{locale-url.service-6bgia24_.mjs.map → locale-url.service-H8PH6GGh.mjs.map} +1 -1
  108. package/dist/logger/index.mjs +3 -5
  109. package/dist/logger/index.mjs.map +1 -1
  110. package/dist/macroable-cvDTFZ_A.mjs.map +1 -1
  111. package/dist/metadata-Ba8Fxs1F.mjs +48 -0
  112. package/dist/metadata-Ba8Fxs1F.mjs.map +1 -0
  113. package/dist/module/index.d.mts +8 -9
  114. package/dist/module/index.d.mts.map +1 -1
  115. package/dist/module/index.mjs +3 -4
  116. package/dist/module/index.mjs.map +1 -1
  117. package/dist/{module-registry-NxX5O0Qk.mjs → module-registry-lkQPDuQe.mjs} +17 -15
  118. package/dist/module-registry-lkQPDuQe.mjs.map +1 -0
  119. package/dist/{module.decorator-CYHY6pG5.mjs → module.decorator-CYbrOlX9.mjs} +2 -2
  120. package/dist/{module.decorator-CYHY6pG5.mjs.map → module.decorator-CYbrOlX9.mjs.map} +1 -1
  121. package/dist/openapi/index.d.mts +19 -16
  122. package/dist/openapi/index.d.mts.map +1 -1
  123. package/dist/openapi/index.mjs +2 -2
  124. package/dist/{openapi-CMwuCp31.mjs → openapi-DBfBa5Qh.mjs} +41 -65
  125. package/dist/openapi-DBfBa5Qh.mjs.map +1 -0
  126. package/dist/openapi-generator-CCwiu8AU.mjs +134 -0
  127. package/dist/openapi-generator-CCwiu8AU.mjs.map +1 -0
  128. package/dist/{openapi-tools.service-BC5EC3R3.mjs → openapi-tools.service-VKZJlTIX.mjs} +12 -4
  129. package/dist/openapi-tools.service-VKZJlTIX.mjs.map +1 -0
  130. package/dist/openapi.service-Ds-R1tih.d.mts +43 -0
  131. package/dist/openapi.service-Ds-R1tih.d.mts.map +1 -0
  132. package/dist/quarry/index.d.mts +10 -11
  133. package/dist/quarry/index.d.mts.map +1 -1
  134. package/dist/quarry/index.mjs +4 -4
  135. package/dist/quarry/runner.d.mts +19 -20
  136. package/dist/quarry/runner.d.mts.map +1 -1
  137. package/dist/quarry/runner.mjs +16 -13
  138. package/dist/quarry/runner.mjs.map +1 -1
  139. package/dist/{quarry-registry-DRnV-DDa.d.mts → quarry-registry-Ci4k58FZ.d.mts} +3 -4
  140. package/dist/quarry-registry-Ci4k58FZ.d.mts.map +1 -0
  141. package/dist/{quarry.module-CcGxU2dJ.mjs → quarry.module-BssRR8f0.mjs} +20 -37
  142. package/dist/quarry.module-BssRR8f0.mjs.map +1 -0
  143. package/dist/queue/index.d.mts +2 -2
  144. package/dist/queue/index.mjs +3 -3
  145. package/dist/queue/index.mjs.map +1 -1
  146. package/dist/{queue.module-CEs4_kEM.mjs → queue.module-DnAdSbR-.mjs} +40 -41
  147. package/dist/queue.module-DnAdSbR-.mjs.map +1 -0
  148. package/dist/{r2-storage.provider-BoZmR6Ut.mjs → r2-storage.provider-wU_6api4.mjs} +45 -6
  149. package/dist/r2-storage.provider-wU_6api4.mjs.map +1 -0
  150. package/dist/{rate-limit.decorator-Djs4oYDB.mjs → rate-limit.decorator-PYQ9EYqs.mjs} +10 -5
  151. package/dist/{rate-limit.decorator-Djs4oYDB.mjs.map → rate-limit.decorator-PYQ9EYqs.mjs.map} +1 -1
  152. package/dist/rate-limiter/index.d.mts +64 -19
  153. package/dist/rate-limiter/index.d.mts.map +1 -1
  154. package/dist/rate-limiter/index.mjs +67 -83
  155. package/dist/rate-limiter/index.mjs.map +1 -1
  156. package/dist/response-cache/index.d.mts +326 -0
  157. package/dist/response-cache/index.d.mts.map +1 -0
  158. package/dist/response-cache/index.mjs +511 -0
  159. package/dist/response-cache/index.mjs.map +1 -0
  160. package/dist/response-cache.error-B4D0zy9W.mjs +24 -0
  161. package/dist/response-cache.error-B4D0zy9W.mjs.map +1 -0
  162. package/dist/response-headers-BqA57S_X.mjs +158 -0
  163. package/dist/response-headers-BqA57S_X.mjs.map +1 -0
  164. package/dist/rolldown-runtime-D7D4PA-g.mjs +13 -0
  165. package/dist/route-cache-binding-CrLh8tB6.mjs +390 -0
  166. package/dist/route-cache-binding-CrLh8tB6.mjs.map +1 -0
  167. package/dist/route-metadata-QQhbed1i.mjs +17 -0
  168. package/dist/route-metadata-QQhbed1i.mjs.map +1 -0
  169. package/dist/{route-name-DGoBOfPg.mjs → route-name-BslSbmMP.mjs} +15 -11
  170. package/dist/route-name-BslSbmMP.mjs.map +1 -0
  171. package/dist/route-registration.service-COKBZTsn.mjs +1265 -0
  172. package/dist/route-registration.service-COKBZTsn.mjs.map +1 -0
  173. package/dist/{route-registry-BvLJisvK.mjs → route-registry-DFz9_-N6.mjs} +6 -6
  174. package/dist/{route-registry-BvLJisvK.mjs.map → route-registry-DFz9_-N6.mjs.map} +1 -1
  175. package/dist/router/index.d.mts +2 -2
  176. package/dist/router/index.mjs +16 -15
  177. package/dist/{router-resolver-sUV_jTrU.mjs → router-resolver-B-dMSMIG.mjs} +7 -3
  178. package/dist/router-resolver-B-dMSMIG.mjs.map +1 -0
  179. package/dist/{router-DwyqEXgf.mjs → router-wlsVkGkM.mjs} +5 -14
  180. package/dist/{router-DwyqEXgf.mjs.map → router-wlsVkGkM.mjs.map} +1 -1
  181. package/dist/seeder/index.d.mts +12 -13
  182. package/dist/seeder/index.d.mts.map +1 -1
  183. package/dist/seeder/index.mjs +4 -4
  184. package/dist/{seeder-BPGY5rUb.mjs → seeder-BrAk7XIj.mjs} +5 -6
  185. package/dist/{seeder-BPGY5rUb.mjs.map → seeder-BrAk7XIj.mjs.map} +1 -1
  186. package/dist/{seeder-registry-DEvCycsT.mjs → seeder-registry-Bo5BgLbC.mjs} +5 -6
  187. package/dist/{seeder-registry-DEvCycsT.mjs.map → seeder-registry-Bo5BgLbC.mjs.map} +1 -1
  188. package/dist/{seeder.module-CIwQbdN4.mjs → seeder.module-DOoVgTsK.mjs} +5 -5
  189. package/dist/{seeder.module-CIwQbdN4.mjs.map → seeder.module-DOoVgTsK.mjs.map} +1 -1
  190. package/dist/signed-url-DIU0sK_6.mjs.map +1 -1
  191. package/dist/storage/index.d.mts +63 -13
  192. package/dist/storage/index.d.mts.map +1 -1
  193. package/dist/storage/index.mjs +2 -2
  194. package/dist/storage/providers/index.d.mts +18 -16
  195. package/dist/storage/providers/index.d.mts.map +1 -1
  196. package/dist/storage/providers/index.mjs +1 -1
  197. package/dist/{storage-C30X81CS.mjs → storage-DBWVYMnn.mjs} +167 -49
  198. package/dist/storage-DBWVYMnn.mjs.map +1 -0
  199. package/dist/storage-provider.interface-CinHpjl1.d.mts +315 -0
  200. package/dist/storage-provider.interface-CinHpjl1.d.mts.map +1 -0
  201. package/dist/storage.error-Ao38Qdjx.mjs +7 -0
  202. package/dist/storage.error-Ao38Qdjx.mjs.map +1 -0
  203. package/dist/{stratal-D5j_I14G.d.mts → stratal-Bs1_E8GQ.d.mts} +13 -3
  204. package/dist/stratal-Bs1_E8GQ.d.mts.map +1 -0
  205. package/dist/{stratal-BL6FKUM_.mjs → stratal-CiwNpWy2.mjs} +56 -23
  206. package/dist/stratal-CiwNpWy2.mjs.map +1 -0
  207. package/dist/{tiered-cache.service-Dv3BhxxE.d.mts → tiered-cache.service-Bz8bbvyb.d.mts} +16 -3
  208. package/dist/tiered-cache.service-Bz8bbvyb.d.mts.map +1 -0
  209. package/dist/trailing-slash-2SctvePW.mjs.map +1 -1
  210. package/dist/types-CmV_9xBD.d.mts.map +1 -1
  211. package/dist/{uri-iwofWJ_T.mjs → uri-BrOq148R.mjs} +13 -9
  212. package/dist/{uri-iwofWJ_T.mjs.map → uri-BrOq148R.mjs.map} +1 -1
  213. package/dist/{usage-generator-DAWYasuP.mjs → usage-generator-BW7EcO-C.mjs} +3 -3
  214. package/dist/{usage-generator-DAWYasuP.mjs.map → usage-generator-BW7EcO-C.mjs.map} +1 -1
  215. package/dist/{zod-eKqqhZ5_.mjs → validation-CZ_B0aXY.mjs} +38 -17
  216. package/dist/validation-CZ_B0aXY.mjs.map +1 -0
  217. package/dist/{validation.context-CRvmrhq7.mjs → validation.context-CdbwQWIr.mjs} +2 -2
  218. package/dist/{validation.context-CRvmrhq7.mjs.map → validation.context-CdbwQWIr.mjs.map} +1 -1
  219. package/dist/{versioning.service-CCa2oYMJ.mjs → versioning.service-DnF_4Lnd.mjs} +5 -5
  220. package/dist/{versioning.service-CCa2oYMJ.mjs.map → versioning.service-DnF_4Lnd.mjs.map} +1 -1
  221. package/dist/websocket/index.d.mts +12 -13
  222. package/dist/websocket/index.d.mts.map +1 -1
  223. package/dist/websocket/index.mjs +1 -1
  224. package/dist/workers/index.d.mts +70 -7
  225. package/dist/workers/index.d.mts.map +1 -1
  226. package/dist/workers/index.mjs +72 -3
  227. package/dist/workers/index.mjs.map +1 -1
  228. package/dist/{zod-wecrEVAs.d.mts → zod-BGisqLs3.d.mts} +9 -16
  229. package/dist/zod-BGisqLs3.d.mts.map +1 -0
  230. package/package.json +33 -25
  231. package/dist/cache.service-uElmBtdS.d.mts.map +0 -1
  232. package/dist/chunk-BBjsoOtd.mjs +0 -27
  233. package/dist/command-BvmUAPPQ.mjs.map +0 -1
  234. package/dist/command-DoBD2Cwl.d.mts.map +0 -1
  235. package/dist/consumer-registry-D3iMTSdy.d.mts.map +0 -1
  236. package/dist/container-storage-BmOJ4_Na.mjs.map +0 -1
  237. package/dist/controller.decorator-YSTPQntu.mjs.map +0 -1
  238. package/dist/cron-job-NesZRk8F.d.mts.map +0 -1
  239. package/dist/di-D7qmrAir.mjs.map +0 -1
  240. package/dist/errors-C01O2T-n.mjs.map +0 -1
  241. package/dist/events-BhEQuT1X.mjs.map +0 -1
  242. package/dist/exception-context-D-kvney-.mjs.map +0 -1
  243. package/dist/guards-DALPXy3_.mjs.map +0 -1
  244. package/dist/hono-app-COAgmutc.mjs +0 -168
  245. package/dist/hono-app-COAgmutc.mjs.map +0 -1
  246. package/dist/http-method.decorator-BljM8BDj.mjs.map +0 -1
  247. package/dist/i18n.module-B2DvWUPa.mjs.map +0 -1
  248. package/dist/index-CNuFQSNj.d.mts.map +0 -1
  249. package/dist/index-DtBNIFuP.d.mts +0 -42
  250. package/dist/index-DtBNIFuP.d.mts.map +0 -1
  251. package/dist/index-HgOLNruQ.d.mts +0 -203
  252. package/dist/index-HgOLNruQ.d.mts.map +0 -1
  253. package/dist/index-uybm0bhQ.d.mts.map +0 -1
  254. package/dist/is-seeder-Gvh_AM71.mjs.map +0 -1
  255. package/dist/lazy-module-loader-M6YKudNL.d.mts.map +0 -1
  256. package/dist/locale-path.service-CH0CaxwH.mjs +0 -165
  257. package/dist/locale-path.service-CH0CaxwH.mjs.map +0 -1
  258. package/dist/metadata-DzzprcID.mjs +0 -39
  259. package/dist/metadata-DzzprcID.mjs.map +0 -1
  260. package/dist/module-registry-NxX5O0Qk.mjs.map +0 -1
  261. package/dist/openapi-CMwuCp31.mjs.map +0 -1
  262. package/dist/openapi-tools.service-BC5EC3R3.mjs.map +0 -1
  263. package/dist/openapi.service-2rvJBCEg.d.mts +0 -50
  264. package/dist/openapi.service-2rvJBCEg.d.mts.map +0 -1
  265. package/dist/quarry-registry-DRnV-DDa.d.mts.map +0 -1
  266. package/dist/quarry.module-CcGxU2dJ.mjs.map +0 -1
  267. package/dist/queue.module-CEs4_kEM.mjs.map +0 -1
  268. package/dist/r2-storage.provider-BoZmR6Ut.mjs.map +0 -1
  269. package/dist/route-name-DGoBOfPg.mjs.map +0 -1
  270. package/dist/route-registration.service-CDPQKpm4.mjs +0 -918
  271. package/dist/route-registration.service-CDPQKpm4.mjs.map +0 -1
  272. package/dist/router-resolver-sUV_jTrU.mjs.map +0 -1
  273. package/dist/storage-C30X81CS.mjs.map +0 -1
  274. package/dist/storage-provider.interface-ClUwxz4S.d.mts +0 -201
  275. package/dist/storage-provider.interface-ClUwxz4S.d.mts.map +0 -1
  276. package/dist/storage.error-BStXPmO4.mjs +0 -8
  277. package/dist/storage.error-BStXPmO4.mjs.map +0 -1
  278. package/dist/stratal-BL6FKUM_.mjs.map +0 -1
  279. package/dist/stratal-D5j_I14G.d.mts.map +0 -1
  280. package/dist/tiered-cache.service-Dv3BhxxE.d.mts.map +0 -1
  281. package/dist/validation-CpOjviyT.mjs +0 -49
  282. package/dist/validation-CpOjviyT.mjs.map +0 -1
  283. package/dist/zod-eKqqhZ5_.mjs.map +0 -1
  284. package/dist/zod-wecrEVAs.d.mts.map +0 -1
@@ -1,134 +1,19 @@
1
- import { Fn as DynamicModule, Hn as OnInitialize, Ir as ApplicationError, zn as ModuleContext } from "../index-uybm0bhQ.mjs";
2
- import { _ as MessageParams, d as AppMessages, f as DeepKeys, g as MessageKeys, h as MessageKeyPrefix, l as AppMessageKeys, m as II18nService, p as FilterByPrefix, u as AppMessageNamespaces, v as Prefixes, y as SystemMessageKeys } from "../zod-wecrEVAs.mjs";
3
- import { t as index_d_exports } from "../index-HgOLNruQ.mjs";
4
- import { DetectorOptions } from "hono/language";
5
-
1
+ import { An as DetectionStrategy, Fn as ResolvedI18nOptions, In as buildDetectorOptions, Jn as AsyncModuleOptions, Ln as resolveDetectionForPath, Mn as LOCALE_COOKIE, Nn as LanguageDetectionOptions, On as DetectionConfig, Pn as ResolvedDetection, Rn as resolveI18nOptions, Xn as DynamicModule, er as ModuleContext, jn as I18nModuleOptions, kn as DetectionResolver, li as ApplicationError, rr as OnInitialize } from "../index-B2WtEagR.mjs";
2
+ import { _ as MessageKeys, b as SystemMessageKeys, d as AppMessageNamespaces, f as AppMessages, g as MessageKeyPrefix, h as II18nService, m as FilterByPrefix, p as DeepKeys, u as AppMessageKeys, v as MessageParams, y as Prefixes } from "../zod-BGisqLs3.mjs";
3
+ import { t as index_d_exports } from "../index-CAHNCpvr.mjs";
6
4
  //#region src/i18n/i18n.error.d.ts
7
- declare class I18nError extends ApplicationError {}
8
- //#endregion
9
- //#region src/i18n/i18n.options.d.ts
10
- /**
11
- * Detection strategy for locale resolution
12
- *
13
- * - `'cookie'` — reads from the `locale` cookie (default)
14
- * - `'header'` — reads from the `Accept-Language` header
15
- * - `'querystring'` — reads from the `?locale=` query parameter
16
- * - `'path'` — reads from the first URL path segment (e.g., `/en/api/users`)
17
- */
18
- type DetectionStrategy = 'cookie' | 'header' | 'querystring' | 'path';
19
- interface BaseDetection {
20
- /** Set to false to disable language detection entirely. @default true */
21
- enabled?: boolean;
22
- }
23
- /**
24
- * Language detection options (discriminated by strategy)
25
- *
26
- * @example Cookie detection (default)
27
- * ```typescript
28
- * { strategy: 'cookie' }
29
- * ```
30
- *
31
- * @example Header detection
32
- * ```typescript
33
- * { strategy: 'header' }
34
- * ```
35
- *
36
- * @example Path detection
37
- * ```typescript
38
- * { strategy: 'path' }
39
- * ```
40
- *
41
- * @example Disable detection
42
- * ```typescript
43
- * { enabled: false }
44
- * ```
45
- */
46
- type LanguageDetectionOptions = (BaseDetection & {
47
- strategy?: 'cookie';
48
- cookieOptions?: DetectorOptions['cookieOptions'];
49
- }) | (BaseDetection & {
50
- strategy: 'header';
51
- }) | (BaseDetection & {
52
- strategy: 'querystring';
53
- }) | (BaseDetection & {
54
- strategy: 'path';
55
- /**
56
- * Controls whether the default locale gets a URL path prefix.
57
- *
58
- * - `false` (default) — The default locale has no prefix (`/users`), other locales
59
- * are prefixed (`/fr/users`). Requests to the prefixed default locale (`/en/users`) return 404.
60
- * - `'redirect'` — Same as `false`, but requests to the prefixed default locale
61
- * (`/en/users`) are 301-redirected to the unprefixed path (`/users`).
62
- * - `true` — All locales are prefixed (`/en/users`, `/fr/users`).
63
- *
64
- * @default false
65
- */
66
- prefixDefaultLocale?: false | true | 'redirect';
67
- }) | {
68
- enabled: false;
69
- };
70
- /**
71
- * Options for configuring the I18n module
72
- *
73
- * @example
74
- * ```typescript
75
- * I18nModule.forRoot({
76
- * defaultLocale: 'en',
77
- * fallbackLocale: 'en',
78
- * locales: ['en', 'fr'],
79
- * detection: { strategy: 'header' },
80
- * })
81
- * ```
82
- */
83
- interface I18nModuleOptions {
84
- /**
85
- * Default locale for the application
86
- * @default 'en'
87
- */
88
- defaultLocale?: string;
89
- /**
90
- * Fallback locale when translation is missing
91
- * @default 'en'
92
- */
93
- fallbackLocale?: string;
94
- /**
95
- * List of supported locales
96
- * Request locales not in this list will fall back to defaultLocale
97
- */
98
- locales?: string[];
99
- /**
100
- * Language detection configuration
101
- * Controls how the locale is extracted from incoming requests
102
- */
103
- detection?: LanguageDetectionOptions;
104
- }
105
- /**
106
- * Resolved options with all defaults applied
107
- * Used internally by I18n services
108
- */
109
- interface ResolvedI18nOptions {
110
- defaultLocale: string;
111
- fallbackLocale: string;
112
- locales: string[];
113
- detection: {
114
- enabled: boolean;
115
- strategy: DetectionStrategy; /** Resolved value of the path detection `prefixDefaultLocale` option. Only meaningful when `strategy` is `'path'`. */
116
- prefixDefaultLocale: false | true | 'redirect';
117
- };
118
- }
119
- /**
120
- * Resolve I18n options with defaults
121
- */
122
- declare function resolveI18nOptions(options?: I18nModuleOptions): ResolvedI18nOptions;
123
- /**
124
- * Build Hono languageDetector options from I18n module options
125
- */
126
- declare function buildDetectorOptions(options?: I18nModuleOptions): Partial<DetectorOptions>;
5
+ export declare class I18nError extends ApplicationError {}
127
6
  //#endregion
128
7
  //#region src/i18n/i18n.module.d.ts
129
- declare class I18nModule implements OnInitialize {
8
+ export declare class I18nModule implements OnInitialize {
130
9
  onInitialize(_context: ModuleContext): void;
131
10
  static forRoot(options?: I18nModuleOptions): DynamicModule;
11
+ /**
12
+ * Configure i18n with options resolved asynchronously from injected
13
+ * dependencies (e.g. a config service). Useful when `detection` is a per-path
14
+ * resolver built from runtime config.
15
+ */
16
+ static forRootAsync(options: AsyncModuleOptions<I18nModuleOptions>): DynamicModule;
132
17
  static registerMessages(messages: Record<string, Record<string, unknown>>): DynamicModule;
133
18
  }
134
19
  //#endregion
@@ -137,10 +22,14 @@ declare class I18nModule implements OnInitialize {
137
22
  * I18n Module DI Tokens
138
23
  * Symbol-based tokens to avoid string collisions
139
24
  */
140
- declare const I18N_TOKENS: {
141
- /** MessageLoaderService - loads and caches locale messages */readonly MessageLoader: symbol; /** I18nService - request-scoped translation service */
142
- readonly I18nService: symbol; /** I18nModuleOptions - configuration options from forRoot() */
143
- readonly Options: symbol; /** MessageRegistry - singleton accumulator for registerMessages() contributions */
25
+ export declare const I18N_TOKENS: {
26
+ /** MessageLoaderService - loads and caches locale messages */
27
+ readonly MessageLoader: symbol;
28
+ /** I18nService - request-scoped translation service */
29
+ readonly I18nService: symbol;
30
+ /** I18nModuleOptions - configuration options from forRoot() */
31
+ readonly Options: symbol;
32
+ /** MessageRegistry - singleton accumulator for registerMessages() contributions */
144
33
  readonly MessageRegistry: symbol;
145
34
  };
146
35
  //#endregion
@@ -149,7 +38,7 @@ declare const I18N_TOKENS: {
149
38
  * All locale messages
150
39
  * Explicitly import and export (no filesystem scanning - Cloudflare Workers compatible)
151
40
  */
152
- declare const messages: {
41
+ export declare const messages: {
153
42
  readonly en: typeof index_d_exports;
154
43
  };
155
44
  /**
@@ -159,11 +48,11 @@ type Messages = typeof messages;
159
48
  /**
160
49
  * Get messages for all locales
161
50
  */
162
- declare function getMessages(): Record<string, Record<string, unknown>>;
51
+ export declare function getMessages(): Record<string, Record<string, unknown>>;
163
52
  /**
164
53
  * Get available locales
165
54
  */
166
- declare function getLocales(): string[];
55
+ export declare function getLocales(): string[];
167
56
  //#endregion
168
57
  //#region src/i18n/services/message-registry.d.ts
169
58
  type Contribution = Record<string, Record<string, unknown>>;
@@ -182,7 +71,7 @@ type Contribution = Record<string, Record<string, unknown>>;
182
71
  * live entries are re-appended after it on every reload, so stale content
183
72
  * sinks to the lowest merge precedence.
184
73
  */
185
- declare class MessageRegistry {
74
+ export declare class MessageRegistry {
186
75
  /**
187
76
  * Add messages (called statically by I18nModule.registerMessages)
188
77
  */
@@ -199,7 +88,7 @@ declare class MessageRegistry {
199
88
  }
200
89
  //#endregion
201
90
  //#region src/i18n/services/message-loader.service.d.ts
202
- declare class MessageLoaderService {
91
+ export declare class MessageLoaderService {
203
92
  private readonly registry;
204
93
  private readonly options?;
205
94
  private readonly cache;
@@ -239,7 +128,7 @@ declare class MessageLoaderService {
239
128
  * const greeting = withI18n('common.welcome', { name: 'Alice' })
240
129
  * ```
241
130
  */
242
- declare function withI18n(key: MessageKeys, params?: MessageParams): string;
131
+ export declare function withI18n(key: MessageKeys, params?: MessageParams): string;
243
132
  //#endregion
244
- export { AppMessageKeys, AppMessageNamespaces, AppMessages, DeepKeys, DetectionStrategy, FilterByPrefix, I18N_TOKENS, I18nError, I18nModule, I18nModuleOptions, II18nService, LanguageDetectionOptions, MessageKeyPrefix, MessageKeys, MessageLoaderService, MessageParams, MessageRegistry, type Messages, Prefixes, ResolvedI18nOptions, SystemMessageKeys, buildDetectorOptions, getLocales, getMessages, messages, resolveI18nOptions, withI18n };
133
+ export { AppMessageKeys, AppMessageNamespaces, AppMessages, DeepKeys, DetectionConfig, DetectionResolver, DetectionStrategy, FilterByPrefix, I18nModuleOptions, II18nService, LOCALE_COOKIE, LanguageDetectionOptions, MessageKeyPrefix, MessageKeys, MessageParams, type Messages, Prefixes, ResolvedDetection, ResolvedI18nOptions, SystemMessageKeys, buildDetectorOptions, resolveDetectionForPath, resolveI18nOptions };
245
134
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/i18n/i18n.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/with-i18n.ts"],"mappings":";;;;;;cAEa,SAAA,SAAkB,gBAAgB;;;;;AAAA;;;;ACgB/C;;KAAY,iBAAA;AAAA,UAEF,aAAA;EAFmB;EAI3B,OAAO;AAAA;;;AAAA;AA0BT;;;;;;;;;;;;;;;;;;;;KAAY,wBAAA,IACP,aAAA;EAAkB,QAAA;EAAqB,aAAA,GAAgB,eAAA;AAAA,MACvD,aAAA;EAAkB,QAAA;AAAA,MAClB,aAAA;EAAkB,QAAA;AAAA,MAClB,aAAA;EACD,QAAA;EAwCF;;;;;AAYoC;AAOtC;;;;;EA/CI,mBAAA;AAAA;EAEE,OAAA;AAAA;;;;;AAqDiB;AAOvB;;;;;;;;UA7CiB,iBAAA;EAiED;;;;EA5Dd,aAAA;EA4DiE;;;;EAtDjE,cAAA;EAsDiE;;;AAAuB;EAhDxF,OAAA;;;ACzFF;;ED+FE,SAAA,GAAY,wBAAwB;AAAA;;;;;UAOrB,mBAAA;EACf,aAAA;EACA,cAAA;EACA,OAAA;EACA,SAAA;IACE,OAAA;IACA,QAAA,EAAU,iBAAiB,ECpGhB;IDsGX,mBAAA;EAAA;AAAA;;;;iBAOY,kBAAA,CAAmB,OAAA,GAAU,iBAAA,GAAoB,mBAAmB;;;;iBAoBpE,oBAAA,CAAqB,OAAA,GAAU,iBAAA,GAAoB,OAAA,CAAQ,eAAA;;;cClI9D,UAAA,YAAsB,YAAA;EACjC,YAAA,CAAa,QAAA,EAAU,aAAA;EAAA,OAIhB,OAAA,CAAQ,OAAA,GAAS,iBAAA,GAAyB,aAAA;EAAA,OAS1C,gBAAA,CAAiB,QAAA,EAAU,MAAA,SAAe,MAAA,qBAA2B,aAAA;AAAA;;;;;;;cC1BjE,WAAA;gGHHU;EAAA,8BAAwB;EAAA;;;;;;;;AAAA;cIWlC,QAAA;EAAA,oBAA0B,eAAA;AAAA;AHKvC;;;AAAA,KGAY,QAAA,UAAkB,QAAQ;AHAT;AAA+C;;AAA/C,iBGKb,WAAA,IAAe,MAAM,SAAS,MAAA;;AHDrC;AA0BT;iBGlBgB,UAAA;;;KCfX,YAAA,GAAe,MAAM,SAAS,MAAA;;;;;;ALbnC;;;;AAA+C;;;;ACgB/C;;cIwCa,eAAA;EJxCgB;AAAA;AAA+C;EAA/C,OI4CpB,WAAA,CAAY,QAAA,EAAU,YAAA;;;AJxCtB;EIoDP,iBAAA,IAAqB,MAAA,SAAe,MAAA;EJ1BF;;;;EAAA,OI6C3B,KAAA;AAAA;;;cChFI,oBAAA;EAAA,iBAO6C,QAAA;EAAA,iBAErC,OAAA;EAAA,iBARF,KAAA;EAAA,iBACA,aAAA;EAAA,iBACA,OAAA;EAAA,iBACA,aAAA;cAGuC,QAAA,EAAU,eAAA,EAE/C,OAAA,GAAU,iBAAA;EAwB7B,SAAA,CAAU,MAAA,UAAgB,GAAA,UAAa,MAAA,GAAS,MAAA;EAOhD,WAAA,CAAY,MAAA,WAAiB,MAAA;EAI7B,mBAAA;EAIA,iBAAA,CAAkB,MAAA;EAIlB,gBAAA;EAIA,mBAAA,CACE,MAAA,UACA,OAAA;IAAY,IAAA,GAAO,gBAAA;EAAA,IAClB,MAAA;EAAA,QAeK,mBAAA;EAAA,QAmBA,eAAA;AAAA;;;;;;;;ANxGV;;;;AAA+C;;;;ACgB/C;;;;AAA6B;AAA+C;iBMK5D,QAAA,CAAS,GAAA,EAAK,WAAA,EAAa,MAAA,GAAS,aAAa"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/i18n/i18n.error.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/with-i18n.ts"],"mappings":";;;;qBAEa,kBAAkB;;;qBCelB,sBAAsB;EACjC,aAAa,UAAU;SAIhB,QAAQ,UAAS,oBAAyB;;;;;;SAc1C,aAAa,SAAS,mBAAmB,qBAAqB;SAa9D,iBAAiB,UAAU,eAAe,2BAA2B;;;;;;;;qBC5CjE;;WAEX;;WAEA;;WAEA;;WAEA;;;;;;;;qBCAW;sBAAA;;;;;KAKD,kBAAkB;;;;wBAKd,eAAe,eAAe;;;;wBAO9B;;;KCfX,eAAe,eAAe;;;;;;;;;;;;;;;;qBA2CtB;;;;SAIJ,YAAY,UAAU;;;;EAY7B,qBAAqB,eAAe;;;;;SAmB7B;;;;qBChFI;mBAO6C;mBAErC;mBARF;mBACA;mBACA;mBACA;EAEjB,YACwD,UAAU,iBAE/C,UAAU;EAwB7B,UAAU,gBAAgB,aAAa,SAAS;EAOhD,YAAY,iBAAiB;EAI7B;EAIA,kBAAkB;EAIlB;EAIA,oBACE,gBACA;IAAY,OAAO;MAClB;UAeK;UAmBA;;;;;;;;;;;;;;;;;;;;;;;wBCnFM,SAAS,KAAK,aAAa,SAAS"}
@@ -1,8 +1,7 @@
1
- import { a as ApplicationError, n as getContainer } from "../container-storage-BmOJ4_Na.mjs";
2
- import "../errors-C01O2T-n.mjs";
1
+ import { a as ApplicationError, n as getContainer } from "../container-storage-DfF7SXdV.mjs";
3
2
  import { t as I18N_TOKENS } from "../i18n.tokens-CZ_v8oyS.mjs";
4
- import { i as resolveI18nOptions, r as buildDetectorOptions } from "../locale-path.service-CH0CaxwH.mjs";
5
- import { a as getLocales, i as MessageLoaderService, o as getMessages, r as MessageRegistry, s as messages, t as I18nModule } from "../i18n.module-B2DvWUPa.mjs";
3
+ import { a as resolveDetectionForPath, i as buildDetectorOptions, o as resolveI18nOptions, r as LOCALE_COOKIE } from "../locale-path.service-BqzDIrgy.mjs";
4
+ import { a as getLocales, i as MessageLoaderService, o as getMessages, r as MessageRegistry, s as messages, t as I18nModule } from "../i18n.module-Bm3xlViA.mjs";
6
5
  //#region src/i18n/i18n.error.ts
7
6
  var I18nError = class extends ApplicationError {};
8
7
  //#endregion
@@ -34,6 +33,6 @@ function withI18n(key, params) {
34
33
  }
35
34
  }
36
35
  //#endregion
37
- export { I18N_TOKENS, I18nError, I18nModule, MessageLoaderService, MessageRegistry, buildDetectorOptions, getLocales, getMessages, messages, resolveI18nOptions, withI18n };
36
+ export { I18N_TOKENS, I18nError, I18nModule, LOCALE_COOKIE, MessageLoaderService, MessageRegistry, buildDetectorOptions, getLocales, getMessages, messages, resolveDetectionForPath, resolveI18nOptions, withI18n };
38
37
 
39
38
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/i18n/i18n.error.ts","../../src/i18n/with-i18n.ts"],"sourcesContent":["import { ApplicationError } from '../errors'\n\nexport class I18nError extends ApplicationError {}\n","import { getContainer } from '../di/container-storage'\nimport { I18N_TOKENS } from './i18n.tokens'\nimport type { II18nService, MessageKeys, MessageParams } from './i18n.types'\n\n/**\n * Translate a message key using I18nService from the DI container.\n *\n * Works in both request scope (uses the request's detected locale) and\n * global scope (defaults to 'en'). Can be used anywhere — services,\n * middleware, error handlers, cron jobs, queue consumers, etc.\n *\n * @param key - Message key (e.g., 'common.welcome', 'errors.notFound')\n * @param params - Optional interpolation parameters\n * @returns Translated string, or the key itself if no container is available\n *\n * @example\n * ```typescript\n * import { withI18n } from 'stratal/i18n'\n *\n * const message = withI18n('errors.notFound')\n * const greeting = withI18n('common.welcome', { name: 'Alice' })\n * ```\n */\nexport function withI18n(key: MessageKeys, params?: MessageParams): string {\n try {\n const container = getContainer()\n const i18n = container.resolve<II18nService>(I18N_TOKENS.I18nService)\n return i18n.t(key, params)\n } catch {\n return key\n }\n}\n"],"mappings":";;;;;;AAEA,IAAa,YAAb,cAA+B,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;;;;;ACqBjD,SAAgB,SAAS,KAAkB,QAAgC;CACzE,IAAI;EAGF,OAFkB,aACG,EAAE,QAAsB,YAAY,WAC/C,EAAE,EAAE,KAAK,MAAM;CAC3B,QAAQ;EACN,OAAO;CACT;AACF"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/i18n/i18n.error.ts","../../src/i18n/with-i18n.ts"],"sourcesContent":["import { ApplicationError } from '../errors'\n\nexport class I18nError extends ApplicationError {}\n","import { getContainer } from '../di/container-storage'\nimport { I18N_TOKENS } from './i18n.tokens'\nimport type { II18nService, MessageKeys, MessageParams } from './i18n.types'\n\n/**\n * Translate a message key using I18nService from the DI container.\n *\n * Works in both request scope (uses the request's detected locale) and\n * global scope (defaults to 'en'). Can be used anywhere — services,\n * middleware, error handlers, cron jobs, queue consumers, etc.\n *\n * @param key - Message key (e.g., 'common.welcome', 'errors.notFound')\n * @param params - Optional interpolation parameters\n * @returns Translated string, or the key itself if no container is available\n *\n * @example\n * ```typescript\n * import { withI18n } from 'stratal/i18n'\n *\n * const message = withI18n('errors.notFound')\n * const greeting = withI18n('common.welcome', { name: 'Alice' })\n * ```\n */\nexport function withI18n(key: MessageKeys, params?: MessageParams): string {\n try {\n const container = getContainer()\n const i18n = container.resolve<II18nService>(I18N_TOKENS.I18nService)\n return i18n.t(key, params)\n } catch {\n return key\n }\n}\n"],"mappings":";;;;;AAEA,IAAa,YAAb,cAA+B,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;;;;;ACqBjD,SAAgB,SAAS,KAAkB,QAAgC;CACzE,IAAI;EAGF,OAFkB,aACG,CAAC,CAAC,QAAsB,YAAY,WAC/C,CAAC,CAAC,EAAE,KAAK,MAAM;CAC3B,QAAQ;EACN,OAAO;CACT;AACF"}
@@ -1,2 +1,2 @@
1
- import { a as common, i as emails, n as zodI18n, r as validation } from "../../../index-HgOLNruQ.mjs";
1
+ import { a as common, i as emails, n as zodI18n, r as validation } from "../../../index-CAHNCpvr.mjs";
2
2
  export { common, emails, validation, zodI18n };
@@ -1,2 +1,2 @@
1
- import { a as common, i as emails, n as zodI18n, r as validation } from "../../../en-CDZBMcc1.mjs";
1
+ import { a as common, i as emails, n as zodI18n, r as validation } from "../../../en-CCL84z4k.mjs";
2
2
  export { common, emails, validation, zodI18n };
@@ -2,7 +2,6 @@
2
2
  /**
3
3
  * Deep merge two objects. Source values override target at leaf level.
4
4
  */
5
- declare function deepMerge(target: Record<string, unknown>, source: Record<string, unknown>): Record<string, unknown>;
5
+ export declare function deepMerge(target: Record<string, unknown>, source: Record<string, unknown>): Record<string, unknown>;
6
6
  //#endregion
7
- export { deepMerge };
8
7
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/i18n/utils/deep-merge.ts"],"mappings":";;AAGA;;iBAAgB,SAAA,CACd,MAAA,EAAQ,MAAA,mBACR,MAAA,EAAQ,MAAA,oBACP,MAAA"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/i18n/utils/deep-merge.ts"],"mappings":";;;;wBAGgB,UACd,QAAQ,yBACR,QAAQ,0BACP"}
@@ -1,5 +1,80 @@
1
- import { a as z, b as CUID2_REGEX, c as ZodCustomIssue, i as ZodError, n as OpenAPIObject, r as PathItemObject, s as I18nErrorMetadata, t as OpenAPIHono, x as cuid2 } from "../../zod-wecrEVAs.mjs";
2
- import { n as withZodI18n, t as zodErrorMap } from "../../index-DtBNIFuP.mjs";
3
- export * from "@hono/zod-openapi";
4
- export * from "zod";
5
- export { CUID2_REGEX, type I18nErrorMetadata, OpenAPIHono, type OpenAPIObject, type PathItemObject, type ZodCustomIssue, ZodError, cuid2, withZodI18n, z, zodErrorMap };
1
+ import { S as cuid2, _ as MessageKeys, a as ZodError, c as I18nErrorMetadata, i as PathItemObject, l as ZodCustomIssue, n as GlobalMeta, o as ZodObject, r as OpenAPIObject, s as ZodType, t as $ZodIssue, x as CUID2_REGEX } from "../../zod-BGisqLs3.mjs";
2
+ import { $ZodRawIssue } from "zod/v4/core";
3
+ //#region src/i18n/validation/metadata.d.ts
4
+ /**
5
+ * Schema metadata read by the OpenAPI generator: `description`, `title`,
6
+ * `example`, `examples`, `deprecated`, and any extra keys zod passes through to
7
+ * the generated JSON Schema.
8
+ */
9
+ type SchemaMeta = GlobalMeta;
10
+ /** A bare description string, or a full metadata object. */
11
+ type SchemaMetaInput = string | SchemaMeta;
12
+ /**
13
+ * Attach metadata to a schema. zod/mini has no chainable `.describe()`, so
14
+ * metadata is registered in the global registry; the OpenAPI generator reads it
15
+ * back when building the document. Pass a string for a description only, or an
16
+ * object to set `example`, `examples`, `title`, `deprecated`, etc.
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * import { string } from 'zod/mini'
21
+ * import { describe } from 'stratal/validation'
22
+ *
23
+ * const name = describe(string(), 'The display name')
24
+ * const id = describe(string(), { description: 'The id', example: '1212121' })
25
+ * ```
26
+ */
27
+ export declare function describe<T extends ZodType>(schema: T, meta: SchemaMetaInput): T;
28
+ /**
29
+ * Register a schema as a reusable OpenAPI component. The generator emits it once
30
+ * under `components.schemas.<id>` and references it with `$ref` everywhere it is
31
+ * used. Pass a string for a description only, or an object for further metadata;
32
+ * the explicit `id` always wins.
33
+ *
34
+ * @example
35
+ * ```ts
36
+ * import { object, string } from 'zod/mini'
37
+ * import { named } from 'stratal/validation'
38
+ *
39
+ * const User = named(object({ id: string() }), 'User', 'A user record')
40
+ * const Money = named(object({ cents: number() }), 'Money', { example: { cents: 500 } })
41
+ * ```
42
+ */
43
+ export declare function named<T extends ZodType>(schema: T, id: string, meta?: SchemaMetaInput): T;
44
+ //#endregion
45
+ //#region src/i18n/validation/with-zod-i18n.d.ts
46
+ /**
47
+ * Type-safe helper for creating custom Zod error messages with i18n support
48
+ *
49
+ * Usage with .refine():
50
+ * ```typescript
51
+ * const schema = z.string().refine(
52
+ * (val) => val.length > 5,
53
+ * withZodI18n('validation.minLength', { min: 5 })
54
+ * )
55
+ * ```
56
+ *
57
+ * Usage with built-in validators:
58
+ * ```typescript
59
+ * const schema = z.string().min(5, withZodI18n('validation.minLength', { min: 5 }))
60
+ * const schema = z.string().email(withZodI18n('validation.email'))
61
+ * ```
62
+ *
63
+ * @param key - Message key from shared i18n messages (type-safe via MessageKeys)
64
+ * @param params - Optional interpolation parameters for the message
65
+ * @returns Zod error configuration object with translated message
66
+ */
67
+ export declare function withZodI18n(key: MessageKeys, params?: Record<string, unknown>): {
68
+ error: (_issue: $ZodRawIssue) => string;
69
+ };
70
+ //#endregion
71
+ //#region src/i18n/validation/validation.context.d.ts
72
+ /**
73
+ * Zod error map that resolves I18nService from the DI container.
74
+ * Falls back to 'Invalid input' when called outside the container scope
75
+ * (e.g., config validation at startup, tests).
76
+ */
77
+ export declare const zodErrorMap: import("zod/v4/core").$ZodErrorMap<import("zod/v4/core").$ZodIssue>;
78
+ //#endregion
79
+ export { type $ZodIssue, CUID2_REGEX, type GlobalMeta, type I18nErrorMetadata, type OpenAPIObject, type PathItemObject, type SchemaMeta, type SchemaMetaInput, type ZodCustomIssue, type ZodError, type ZodObject, type ZodType, cuid2 };
80
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/i18n/validation/metadata.ts","../../../src/i18n/validation/with-zod-i18n.ts","../../../src/i18n/validation/validation.context.ts"],"mappings":";;;;;;;;KAQY,aAAa;;KAGb,2BAA2B;;;;;;;;;;;;;;;;wBAoBvB,SAAS,UAAU,SAAS,QAAQ,GAAG,MAAM,kBAAkB;;;;;;;;;;;;;;;;wBAoB/D,MAAM,UAAU,SAAS,QAAQ,GAAG,YAAY,OAAO,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;wBCzBzE,YACd,KAAK,aACL,SAAS;EACN,QAAQ,QAAQ;;;;;;;;;qBCtBR,mCAAW,mCAAA"}
@@ -1,5 +1,4 @@
1
- import { a as CUID2_REGEX, n as ZodError, o as cuid2, r as z, t as OpenAPIHono } from "../../zod-eKqqhZ5_.mjs";
2
- import { t as withZodI18n } from "../../validation-CpOjviyT.mjs";
3
- import { t as zodErrorMap } from "../../validation.context-CRvmrhq7.mjs";
4
- export * from "@hono/zod-openapi";
5
- export { CUID2_REGEX, OpenAPIHono, ZodError, cuid2, withZodI18n, z, zodErrorMap };
1
+ import { n as CUID2_REGEX, r as cuid2, t as withZodI18n } from "../../validation-CZ_B0aXY.mjs";
2
+ import { n as named, t as describe } from "../../metadata-Ba8Fxs1F.mjs";
3
+ import { t as zodErrorMap } from "../../validation.context-CdbwQWIr.mjs";
4
+ export { CUID2_REGEX, cuid2, describe, named, withZodI18n, zodErrorMap };
@@ -1,14 +1,12 @@
1
- import { t as __exportAll } from "./chunk-BBjsoOtd.mjs";
2
- import { b as ROUTER_TOKENS, c as Request, l as Singleton, p as inject } from "./di-D7qmrAir.mjs";
3
- import { n as __decorateParam, t as __decorate } from "./decorate-CuAoSZvs.mjs";
4
- import { n as Module } from "./module.decorator-CYHY6pG5.mjs";
5
- import "./module/index.mjs";
1
+ import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
2
+ import { C as ROUTER_TOKENS, c as Request, l as Singleton, p as inject } from "./di-DQ3xbjgf.mjs";
3
+ import { n as __decorateParam, t as __decorate } from "./decorate-C79yt3Wt.mjs";
4
+ import { n as Module } from "./module.decorator-CYbrOlX9.mjs";
6
5
  import { t as I18N_TOKENS } from "./i18n.tokens-CZ_v8oyS.mjs";
7
- import { r as z } from "./zod-eKqqhZ5_.mjs";
8
- import { t as zodErrorMap } from "./validation.context-CRvmrhq7.mjs";
9
- import "./router-DwyqEXgf.mjs";
10
- import { t as en_exports } from "./en-CDZBMcc1.mjs";
6
+ import { t as zodErrorMap } from "./validation.context-CdbwQWIr.mjs";
7
+ import { t as en_exports } from "./en-CCL84z4k.mjs";
11
8
  import { t as deepMerge } from "./deep-merge-ByiAOZ3r.mjs";
9
+ import { config } from "zod/mini";
12
10
  import IntlMessageFormat from "intl-messageformat";
13
11
  //#region src/i18n/services/i18n.service.ts
14
12
  let I18nService = class I18nService {
@@ -74,10 +72,12 @@ let MessageLoaderService = class MessageLoaderService {
74
72
  const coreLocales = getLocales();
75
73
  const registryMessages = this.registry.getMergedMessages();
76
74
  const registryLocales = Object.keys(registryMessages);
77
- const allLocales = [...new Set([...coreLocales, ...registryLocales])];
75
+ const allLocales = [.../* @__PURE__ */ new Set([...coreLocales, ...registryLocales])];
78
76
  this.locales = allLocales;
79
77
  for (const locale of allLocales) {
80
- const merged = deepMerge(coreMessages[locale] ?? {}, registryMessages[locale] ?? {});
78
+ const coreLocaleMessages = coreMessages[locale] ?? {};
79
+ const registryLocaleMessages = registryMessages[locale] ?? {};
80
+ const merged = deepMerge(coreLocaleMessages, registryLocaleMessages);
81
81
  this.cache.set(locale, merged);
82
82
  }
83
83
  }
@@ -198,7 +198,7 @@ var i18n_module_exports = /* @__PURE__ */ __exportAll({ I18nModule: () => I18nMo
198
198
  var _I18nModule;
199
199
  let I18nModule = _I18nModule = class I18nModule {
200
200
  onInitialize(_context) {
201
- z.config({ customError: zodErrorMap });
201
+ config({ customError: zodErrorMap });
202
202
  }
203
203
  static forRoot(options = {}) {
204
204
  return {
@@ -209,6 +209,21 @@ let I18nModule = _I18nModule = class I18nModule {
209
209
  }]
210
210
  };
211
211
  }
212
+ /**
213
+ * Configure i18n with options resolved asynchronously from injected
214
+ * dependencies (e.g. a config service). Useful when `detection` is a per-path
215
+ * resolver built from runtime config.
216
+ */
217
+ static forRootAsync(options) {
218
+ return {
219
+ module: _I18nModule,
220
+ providers: [{
221
+ provide: I18N_TOKENS.Options,
222
+ useFactory: options.useFactory,
223
+ inject: options.inject
224
+ }]
225
+ };
226
+ }
212
227
  static registerMessages(messages) {
213
228
  MessageRegistry.addMessages(messages);
214
229
  return {
@@ -234,4 +249,4 @@ I18nModule = _I18nModule = __decorate([Module({ providers: [
234
249
  //#endregion
235
250
  export { getLocales as a, MessageLoaderService as i, i18n_module_exports as n, getMessages as o, MessageRegistry as r, messages as s, I18nModule as t };
236
251
 
237
- //# sourceMappingURL=i18n.module-B2DvWUPa.mjs.map
252
+ //# sourceMappingURL=i18n.module-Bm3xlViA.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.module-Bm3xlViA.mjs","names":[],"sources":["../src/i18n/services/i18n.service.ts","../src/i18n/messages/index.ts","../src/i18n/services/message-loader.service.ts","../src/i18n/services/message-registry.ts","../src/i18n/i18n.module.ts"],"sourcesContent":["import { inject } from '../../di'\nimport { Request } from '../../di/decorators'\nimport { ROUTER_TOKENS, type RouterContext } from '../../router'\nimport { I18N_TOKENS } from '../i18n.tokens'\nimport type { II18nService, MessageKeys, MessageParams } from '../i18n.types'\nimport type { MessageLoaderService } from './message-loader.service'\n\n@Request(I18N_TOKENS.I18nService)\nexport class I18nService implements II18nService {\n constructor(\n @inject(I18N_TOKENS.MessageLoader) private readonly loader: MessageLoaderService,\n @inject(ROUTER_TOKENS.RouterContext, { isOptional: true }) private readonly routerContext?: RouterContext\n ) {\n }\n\n t(key: MessageKeys, params?: MessageParams): string {\n return this.loader.translate(this.getLocale(), key, params)\n }\n\n getLocale(): string {\n return this.routerContext?.getLocale() ?? 'en'\n }\n}\n","/**\n * Core Messages\n *\n * Messages used by packages/modules infrastructure.\n * These are automatically merged with application-specific messages.\n */\n\nimport * as en from './en'\n\n/**\n * All locale messages\n * Explicitly import and export (no filesystem scanning - Cloudflare Workers compatible)\n */\nexport const messages = { en } as const\n\n/**\n * Type for all messages\n */\nexport type Messages = typeof messages\n\n/**\n * Get messages for all locales\n */\nexport function getMessages(): Record<string, Record<string, unknown>> {\n return messages\n}\n\n/**\n * Get available locales\n */\nexport function getLocales(): string[] {\n return Object.keys(messages)\n}\n","import IntlMessageFormat from 'intl-messageformat'\nimport { inject } from '../../di'\nimport { Singleton } from '../../di/decorators'\nimport type { I18nModuleOptions } from '../i18n.options'\nimport type { MessageKeyPrefix } from '../i18n.types'\nimport { I18N_TOKENS } from '../i18n.tokens'\nimport { getLocales, getMessages } from '../messages'\nimport { deepMerge } from '../utils/deep-merge'\nimport type { MessageRegistry } from './message-registry'\n\ntype CompiledMessages = Record<string, (params?: Record<string, unknown>) => string>\n\n@Singleton(I18N_TOKENS.MessageLoader)\nexport class MessageLoaderService {\n private readonly cache: Map<string, Record<string, unknown>>\n private readonly compiledCache: Map<string, CompiledMessages>\n private readonly locales: string[]\n private readonly defaultLocale: string\n\n constructor(\n @inject(I18N_TOKENS.MessageRegistry) private readonly registry: MessageRegistry,\n @inject(I18N_TOKENS.Options, { isOptional: true })\n private readonly options?: I18nModuleOptions\n ) {\n this.defaultLocale = this.options?.defaultLocale ?? 'en'\n this.cache = new Map()\n this.compiledCache = new Map()\n\n const coreMessages = getMessages()\n const coreLocales = getLocales()\n\n const registryMessages = this.registry.getMergedMessages()\n const registryLocales = Object.keys(registryMessages)\n\n const allLocales = [...new Set([...coreLocales, ...registryLocales])]\n this.locales = allLocales\n\n for (const locale of allLocales) {\n const coreLocaleMessages = coreMessages[locale] ?? {}\n const registryLocaleMessages = registryMessages[locale] ?? {}\n\n const merged = deepMerge(coreLocaleMessages, registryLocaleMessages)\n this.cache.set(locale, merged)\n }\n }\n\n translate(locale: string, key: string, params?: Record<string, unknown>): string {\n const compiled = this.getCompiledMessages(locale)\n const fn = compiled[key]\n if (!fn) return key\n return fn(params)\n }\n\n getMessages(locale: string): Record<string, unknown> {\n return this.cache.get(locale) ?? this.cache.get(this.defaultLocale) ?? {}\n }\n\n getAvailableLocales(): string[] {\n return this.locales\n }\n\n isLocaleSupported(locale: string): boolean {\n return this.cache.has(locale)\n }\n\n getDefaultLocale(): string {\n return this.defaultLocale\n }\n\n getFilteredMessages(\n locale: string,\n options?: { only?: MessageKeyPrefix[] }\n ): Record<string, string> {\n const messages = this.getMessages(locale)\n const flattened = this.flattenMessages(messages)\n\n if (!options?.only?.length) return flattened\n\n const result: Record<string, string> = {}\n for (const [key, value] of Object.entries(flattened)) {\n if (options.only.some((prefix) => key === prefix || key.startsWith(`${prefix}.`))) {\n result[key] = value\n }\n }\n return result\n }\n\n private getCompiledMessages(locale: string): CompiledMessages {\n const effectiveLocale = this.cache.has(locale) ? locale : this.defaultLocale\n\n const cached = this.compiledCache.get(effectiveLocale)\n if (cached) return cached\n\n const messages = this.cache.get(effectiveLocale) ?? {}\n const flattened = this.flattenMessages(messages)\n\n const compiled: CompiledMessages = {}\n for (const [key, value] of Object.entries(flattened)) {\n const msg = new IntlMessageFormat(value, effectiveLocale)\n compiled[key] = (params) => String(msg.format(params as Record<string, string | number | boolean>))\n }\n\n this.compiledCache.set(effectiveLocale, compiled)\n return compiled\n }\n\n private flattenMessages(\n messages: Record<string, unknown>,\n prefix = ''\n ): Record<string, string> {\n const result: Record<string, string> = {}\n\n for (const key of Object.keys(messages)) {\n const value = messages[key]\n const newKey = prefix ? `${prefix}.${key}` : key\n\n if (typeof value === 'object' && value !== null && !Array.isArray(value)) {\n Object.assign(result, this.flattenMessages(value as Record<string, unknown>, newKey))\n } else {\n result[newKey] = String(value)\n }\n }\n\n return result\n }\n}\n","import { Singleton } from '../../di/decorators'\nimport { I18N_TOKENS } from '../i18n.tokens'\nimport { deepMerge } from '../utils/deep-merge'\n\n/**\n * Global key for the shared contributions store.\n *\n * When stratal is installed via portal/symlink (e.g., in monorepos), bundlers\n * like esbuild may inline multiple copies of this module. Each copy gets its\n * own static class fields, so messages registered by one copy are invisible\n * to another. Using a `Symbol.for()` key on `globalThis` ensures all copies\n * share the same contributions store.\n */\nconst CONTRIBUTIONS_KEY = Symbol.for('stratal:i18n:message-registry:contributions')\n\ntype Contribution = Record<string, Record<string, unknown>>\ntype Contributions = Map<string, Contribution>\n\nfunction getContributions(): Contributions {\n const g = globalThis as Record<symbol, unknown>\n g[CONTRIBUTIONS_KEY] ??= new Map();\n return g[CONTRIBUTIONS_KEY] as Contributions\n}\n\n/**\n * Stable, key-order-independent identity for a contribution. Keyed dedup is\n * what keeps the globalThis store bounded across Vite HMR reloads: module\n * re-evaluation re-registers the same messages, which must not accumulate.\n */\nfunction contentKey(value: unknown): string {\n if (Array.isArray(value)) {\n return `[${value.map(contentKey).join(',')}]`\n }\n if (typeof value === 'object' && value !== null) {\n const entries = Object.keys(value)\n .sort()\n .map(key => `${JSON.stringify(key)}:${contentKey((value as Record<string, unknown>)[key])}`)\n return `{${entries.join(',')}}`\n }\n return JSON.stringify(value) ?? 'undefined'\n}\n\n/**\n * Message Registry\n *\n * Accumulates i18n messages from multiple `I18nModule.registerMessages()` calls.\n * Messages are collected statically (at module import time) and deep-merged\n * when `getMergedMessages()` is called by `MessageLoaderService`.\n *\n * Later registrations override earlier ones at leaf level. Contributions are\n * stored content-keyed: re-registering identical messages (HMR reload) moves\n * the entry to the end instead of appending a duplicate, so registration\n * order is always the latest evaluation order and the store stays bounded.\n * Entries whose content changed leave their stale predecessor behind, but\n * live entries are re-appended after it on every reload, so stale content\n * sinks to the lowest merge precedence.\n */\n@Singleton(I18N_TOKENS.MessageRegistry)\nexport class MessageRegistry {\n /**\n * Add messages (called statically by I18nModule.registerMessages)\n */\n static addMessages(messages: Contribution): void {\n if (Boolean(messages) && typeof messages === 'object' && Object.keys(messages).length > 0) {\n const contributions = getContributions()\n const key = contentKey(messages)\n contributions.delete(key)\n contributions.set(key, messages)\n }\n }\n\n /**\n * Get all messages deep-merged in registration order\n */\n getMergedMessages(): Record<string, Record<string, unknown>> {\n const merged: Record<string, Record<string, unknown>> = {}\n\n for (const contribution of getContributions().values()) {\n for (const locale of Object.keys(contribution)) {\n merged[locale] = deepMerge(\n (merged[locale] ?? {}),\n contribution[locale],\n )\n }\n }\n\n return merged\n }\n\n /**\n * Reset registry (for testing)\n * @internal\n */\n static reset(): void {\n (globalThis as Record<symbol, unknown>)[CONTRIBUTIONS_KEY] = new Map()\n }\n}\n","import { Module } from '../module'\nimport type { AsyncModuleOptions, DynamicModule, ModuleContext, OnInitialize } from '../module/types'\nimport type { I18nModuleOptions } from './i18n.options'\nimport { I18N_TOKENS } from './i18n.tokens'\nimport { I18nService } from './services/i18n.service'\nimport { MessageLoaderService } from './services/message-loader.service'\nimport { MessageRegistry } from './services/message-registry'\nimport { config } from 'zod/mini'\nimport { zodErrorMap } from './validation/validation.context'\n\n@Module({\n providers: [\n { provide: I18N_TOKENS.MessageRegistry, useClass: MessageRegistry },\n { provide: I18N_TOKENS.MessageLoader, useClass: MessageLoaderService },\n { provide: I18N_TOKENS.I18nService, useClass: I18nService },\n ],\n})\nexport class I18nModule implements OnInitialize {\n onInitialize(_context: ModuleContext): void {\n config({ customError: zodErrorMap })\n }\n\n static forRoot(options: I18nModuleOptions = {}): DynamicModule {\n return {\n module: I18nModule,\n providers: [\n { provide: I18N_TOKENS.Options, useValue: options },\n ],\n }\n }\n\n /**\n * Configure i18n with options resolved asynchronously from injected\n * dependencies (e.g. a config service). Useful when `detection` is a per-path\n * resolver built from runtime config.\n */\n static forRootAsync(options: AsyncModuleOptions<I18nModuleOptions>): DynamicModule {\n return {\n module: I18nModule,\n providers: [\n {\n provide: I18N_TOKENS.Options,\n useFactory: options.useFactory,\n inject: options.inject,\n },\n ],\n }\n }\n\n static registerMessages(messages: Record<string, Record<string, unknown>>): DynamicModule {\n MessageRegistry.addMessages(messages)\n return {\n module: I18nModule,\n providers: [],\n }\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index-0ItCjaqw.d.mts","names":[],"sources":["../src/macroable/types.ts","../src/macroable/macroable.ts"],"mappings":";KACY,aAAA,IAAiB,IAAA,UAAc,IAAI;;;KCE1C,WAAA,oBAA+B,IAAI;;;;ADFO;;;;ACDH;;;;AAGJ;AA4BxC;;;;;;;;;;;;;;uBAAsB,SAAA;EAAA,CACnB,GAAA;EAwE8D;;;;EAAA,iBAnE9C,cAAA,EAAc,GAAA;;;;EAyFsB;;;EAAA,iBApFpC,UAAA,EAAU,GAAA;EAuFL;;;EAAA,iBAlFL,WAAA,EAAW,GAAA;EAqFsB;;;;EAAA,eA/EnC,UAAA;EAhBgB;;;;;;;;;EAAA,OA6BxB,KAAA,WAAgB,WAAA,kBAA6B,YAAA,CAAa,CAAA,GAC/D,IAAA,EAAM,CAAA,EACN,IAAA,EAAM,CAAA,EACN,KAAA,EAAO,YAAA,CAAa,CAAA,EAAG,CAAA;EAAA,OAElB,KAAA,CAAM,IAAA,mBAAuB,KAAA;EALA;;;;;;;;;EAAA,OAsC7B,gBAAA,WAA2B,WAAA,kBAA6B,YAAA,CAAa,CAAA,GAC1E,IAAA,EAAM,CAAA,EACN,IAAA,EAAM,CAAA,EACN,KAAA,EAAO,YAAA,CAAa,CAAA,EAAG,CAAA;EAAA,OAElB,gBAAA,CAAiB,IAAA,mBAAuB,KAAA;EAtCxC;;;;;;;EAAA,OAuDA,MAAA,WAAiB,WAAA,kBAA6B,YAAA,CAAa,CAAA,GAChE,IAAA,EAAM,CAAA,EACN,IAAA,EAAM,CAAA,EACN,WAAA,GAAc,IAAA,EAAM,YAAA,CAAa,CAAA,MAAO,YAAA,CAAa,CAAA,EAAG,CAAA,GACxD,SAAA;EAAA,OAEK,MAAA,CAAO,IAAA,mBAAuB,WAAA,EAAa,aAAA,EAAe,SAAA;EA3BzD;;;;;EAAA,OA+DD,QAAA,CAAS,IAAA;EA7DS;;;;EAAA,OA2ElB,WAAA"}
1
+ {"version":3,"file":"index-0ItCjaqw.d.mts","names":[],"sources":["../src/macroable/types.ts","../src/macroable/macroable.ts"],"mappings":";KACY,iBAAiB,cAAc;;;KCEtC,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA4Bd;GACnB;;;;;mBAKgB,gBAAc;IAAkB;IAAwB;;;;;mBAKxD,YAAU;;;;mBAKV,aAAW;;;;;iBAMb;;;;;;;;;;SAaR,MAAM,UAAU,aAAa,gBAAgB,aAAa,IAC/D,MAAM,GACN,MAAM,GACN,OAAO,aAAa,GAAG;SAElB,MAAM,uBAAuB;;;;;;;;;;SAiC7B,iBAAiB,UAAU,aAAa,gBAAgB,aAAa,IAC1E,MAAM,GACN,MAAM,GACN,OAAO,aAAa,GAAG;SAElB,iBAAiB,uBAAuB;;;;;;;;SAiBxC,OAAO,UAAU,aAAa,gBAAgB,aAAa,IAChE,MAAM,GACN,MAAM,GACN,cAAc,MAAM,aAAa,OAAO,aAAa,GAAG,IACxD;SAEK,OAAO,uBAAuB,aAAa,eAAe;;;;;;SAoC1D,SAAS;;;;;SAcT;EAgCP"}
@@ -1,12 +1,11 @@
1
- import { $ as Container, Fn as DynamicModule, Hn as OnInitialize, Ir as ApplicationError, Nn as AsyncModuleOptions, ft as Application, zn as ModuleContext } from "./index-uybm0bhQ.mjs";
1
+ import { $ as Container, Jn as AsyncModuleOptions, Xn as DynamicModule, er as ModuleContext, ft as Application, li as ApplicationError, rr as OnInitialize } from "./index-B2WtEagR.mjs";
2
2
  import { t as StratalEnv } from "./env-ug22bJj7.mjs";
3
- import { m as II18nService } from "./zod-wecrEVAs.mjs";
3
+ import { h as II18nService } from "./zod-BGisqLs3.mjs";
4
4
  import { r as LoggerService } from "./index-BUt92sAE.mjs";
5
5
  import { t as Constructor } from "./types-CmV_9xBD.mjs";
6
- import { t as TieredCacheService } from "./tiered-cache.service-Dv3BhxxE.mjs";
7
- import { t as CronJob } from "./cron-job-NesZRk8F.mjs";
8
- import { a as QueueBinding, i as QueueMessage, n as ConsumerRegistry } from "./consumer-registry-D3iMTSdy.mjs";
9
-
6
+ import { t as TieredCacheService } from "./tiered-cache.service-Bz8bbvyb.mjs";
7
+ import { t as CronJob } from "./cron-job-DAgNw4Bn.mjs";
8
+ import { a as QueueBinding, i as QueueMessage, n as ConsumerRegistry } from "./consumer-registry-i9oCdarv.mjs";
10
9
  //#region src/queue/queue.module.d.ts
11
10
  /**
12
11
  * Queue module configuration options
@@ -43,7 +42,8 @@ interface QueueModuleOptions {
43
42
  * `ttl` bounds how long processed keys are remembered.
44
43
  */
45
44
  idempotency?: {
46
- /** TTL in seconds for processed idempotency keys. Default: 86400 (24h) */ttl?: number;
45
+ /** TTL in seconds for processed idempotency keys. Default: 86400 (24h) */
46
+ ttl?: number;
47
47
  };
48
48
  /**
49
49
  * Failed-job configuration.
@@ -69,9 +69,7 @@ declare class QueueModule implements OnInitialize {
69
69
  * idempotency claims and failed-job storage, so without it the queue
70
70
  * subsystem cannot function.
71
71
  */
72
- onInitialize({
73
- container
74
- }: ModuleContext): void;
72
+ onInitialize({ container }: ModuleContext): void;
75
73
  /**
76
74
  * Configure queue infrastructure with async factory.
77
75
  *
@@ -543,4 +541,4 @@ type QueueToken = (typeof QUEUE_TOKENS)[keyof typeof QUEUE_TOKENS];
543
541
  declare class QueueError extends ApplicationError {}
544
542
  //#endregion
545
543
  export { QueueStore as _, FailedJobCleanupJob as a, QueueModule as b, QueueProviderFactory as c, CloudflareQueueProvider as d, IQueueProvider as f, DEFAULT_STORE_BINDING as g, QueueManager as h, InjectQueue as i, QueueSender as l, IQueueSender as m, QUEUE_TOKENS as n, failedJobCleanupJob as o, DispatchMessage as p, QueueToken as r, QueueRegistry as s, QueueError as t, SyncQueueProvider as u, FailedJob as v, QueueModuleOptions as x, FailedJobMetadata as y };
546
- //# sourceMappingURL=index-CNuFQSNj.d.mts.map
544
+ //# sourceMappingURL=index-3HJfhLlE.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-3HJfhLlE.d.mts","names":[],"sources":["../src/queue/queue.module.ts","../src/queue/failed-job.ts","../src/queue/queue-store.ts","../src/queue/queue-manager.ts","../src/queue/queue-sender.interface.ts","../src/queue/providers/queue-provider.interface.ts","../src/queue/providers/cloudflare-queue.provider.ts","../src/queue/providers/sync-queue.provider.ts","../src/queue/queue-sender.ts","../src/queue/services/queue-provider-factory.ts","../src/queue/queue-registry.ts","../src/queue/jobs/failed-job-cleanup.job.ts","../src/queue/decorators/inject-queue.decorator.ts","../src/queue/queue.tokens.ts","../src/queue/queue.error.ts"],"mappings":";;;;;;;;;;;;UAmDiB;;;;;;EAMf;;;;;EAMA;;;;;IAKE;;;;;;;;;;;;;;;EAgBF;;IAEE;;;;;;;;;EAUF;;;;;IAKE;;;EAIF;;cAeW,uBAAuB;;;;;;;EAOlC,eAAe,aAAa;;;;;;;;;;;;;;;;;;;SAwCrB,aAAa,SAAS,mBAAmB,sBAAsB;;;;;;;;;;;;;;;;;;;;;SAiC/D,cAAc,SAAS,eAAe;;;;UCtM9B;;EAEf;;EAEA;EACA;EACA;EACA;EACA;;UAGe,kBAAkB;EACjC;EACA,SAAS;EACT;IACE;IACA;IACA;;;;;;cCNS;;;;;;;;;;;;;cAeA;mBACM;mBACA;EAEjB,YAC2C,OAAO,oBACP,SAAS;EAU9C,YAAY,cAAc;EAI1B,cAAc,cAAc;EAS5B,eAAe,KAAK,YAAY;EAkBhC,aAAa,oBAAoB,QAAQ;EAIzC,gBAAgB,oBAAoB;EAIpC,eAAe;IACnB;IACA;MACE;IAAU;MAAQ;MAAY,UAAU;;IAAuB;;EAsB7D,mBAAmB;;;;;;;EAgBnB,yBAAyB,2BAA2B;;;;cC5G/C;mBAI4C;mBACC;mBACJ;mBALnC;EAEjB,YACuD,UAAU,kBACT,QAAQ,eACZ,OAAO,YAChB,SAAS;EAK9C,aAAa,mBAAmB,OAAO,eAAe;;;;;;;;;;KCpBlD,gBAAgB,eAAe,KAAK,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;UA0B5C;;;;;;;;;;;EAWf,SAAS,GAAG,SAAS,gBAAgB,KAAK;;;;;;;;;;;;;;;;;;;;;;;UCxB3B;;;;;;;;;;;EAWf,KAAK,GAAG,iBAAiB,SAAS,aAAa,KAAK;;;;;;;;;;;;;;;;;cCVzC,mCAAmC;mBAEM;EADpD,YACoD,KAAK;;;;;;;;EAUnD,KAAK,GAAG,iBAAiB,SAAS,aAAa,KAAK;;;;;;;;;;;;;;;;;;;;;cCL/C,6BAA6B;mBAEe;mBACP;mBACE;EAHlD,YACuD,UAAU,kBACjB,MAAM,WACJ,KAAK;;;;;;;;;;;;;;EAgBjD,KAAK,GAAG,kBAAkB,SAAS,aAAa,KAAK;;;;;UA2B7C;;;;;;;;;;;;;;;;;;;;;;;;;;cCjDH,uBAAuB;mBAEf;mBACA;mBACA;EAHnB,YACmB,iBACA,UAAU,gBACV,MAAM;;;;;;EAQnB,SAAS,GAAG,SAAS,gBAAgB,KAAK;UA0BlC;;;;;;;;;;;;;;;;;;;;;;;;;;;cC7BH;mBAEyC;mBACG;mBACP;mBACE;mBACgC;EALlF,YACoD,KAAK,YACF,UAAU,kBACjB,WAAW,WACT,KAAK,aAC2B,UAAU;;;;;;;EAS5F,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cCbC;mBAMyC;mBALnC;mBACA;EAEjB,YAC6C,iBAAiB,sBACV,MAAM;;;;;;;;;EAa1D,SAAS,kBAAkB;;;;;;;;;;;;;;;;;;;;;;cC1BhB,+BAA+B;mBAIU;mBACQ;mBACJ;SALjD;EAEP,YACoD,OAAO,YACC,SAAS,oBACb,QAAQ;EAG1D,WAAW;;;;;;;;;;;iBAgBH,oBAAoB,mBAAmB,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBCzBnD,YAAY,SAAS,eAAe;;;cC/BvC;WACX;WACA;WACA;WACA;;KAGU,qBAAqB,2BAA2B;;;cCL/C,mBAAmB"}