stratal 0.0.27 → 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 +73 -12
  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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi-tools.service-VKZJlTIX.mjs","names":[],"sources":["../src/openapi/openapi.tokens.ts","../src/openapi/services/openapi-tools.service.ts"],"sourcesContent":["/**\n * OpenAPI Module DI Tokens\n */\nexport const OPENAPI_TOKENS = {\n /** Static options provided via forRoot() */\n Options: Symbol.for('stratal:openapi:options'),\n\n /**\n * Singleton holder of the static base config. Resolvable outside a request\n * (bootstrap endpoint mounting, CLI commands) for static config — never throws\n * on resolve and carries no per-request state.\n */\n ConfigStore: Symbol.for('stratal:openapi:config:store'),\n\n /** Request-scoped config service that layers runtime overrides over the store */\n ConfigService: Symbol.for('stratal:openapi:config:service'),\n\n /** OpenAPI service that generates specs and serves endpoints */\n OpenAPIService: Symbol.for('stratal:openapi:service'),\n} as const\n","import type { OpenAPIObject } from '../../i18n/validation/zod'\nimport type { HttpMethod } from '../../router/types'\n\ntype JsonSchema = Record<string, unknown>\n\n/**\n * Serialize a path/query parameter value for use in a URL.\n * Objects/arrays are JSON-encoded; primitives are coerced to string.\n */\nfunction stringifyParamValue(value: unknown): string {\n if (value != null && typeof value === 'object') {\n return JSON.stringify(value)\n }\n return String(value)\n}\n\nexport interface ToolDefinition {\n name: string\n description: string\n inputSchema: JsonSchema\n method: string\n path: string\n pathParams: string[]\n}\n\nexport interface ToolExecutionResult {\n status: number\n body: string\n headers: Record<string, string>\n}\n\nexport interface ToolFilter {\n tags?: string[]\n pathPrefix?: string\n}\n\nexport type Dispatcher = (method: string, url: string, options?: {\n body?: unknown\n headers?: Record<string, string>\n}) => Promise<Response>\n\ninterface OperationObject {\n operationId?: string\n summary?: string\n description?: string\n tags?: string[]\n parameters?: ParameterObject[]\n requestBody?: RequestBodyObject\n}\n\ninterface ParameterObject {\n name: string\n in: string\n required?: boolean\n schema?: JsonSchema\n description?: string\n}\n\ninterface RequestBodyObject {\n required?: boolean\n content?: Record<string, { schema?: JsonSchema }>\n}\n\n/**\n * Converts an OpenAPI 3.0 spec into callable tool definitions.\n *\n * Plain class (no DI) — reusable across MCP, CLI, and custom tooling.\n */\nexport class OpenApiToolsService {\n private static readonly HTTP_METHODS: Set<string> = new Set<HttpMethod>(['get', 'post', 'put', 'delete', 'patch', 'head', 'options', 'trace'])\n\n private tools: ToolDefinition[] = []\n private toolMap = new Map<string, ToolDefinition>()\n private dispatcher?: Dispatcher\n\n private spec: OpenAPIObject\n\n constructor(spec: OpenAPIObject, options?: { dispatcher?: Dispatcher }) {\n this.spec = spec\n this.dispatcher = options?.dispatcher\n this.tools = this.buildTools()\n for (const tool of this.tools) {\n this.toolMap.set(tool.name, tool)\n }\n }\n\n getTools(filter?: ToolFilter): ToolDefinition[] {\n let tools = this.tools\n\n if (filter?.tags?.length) {\n const tagSet = new Set(filter.tags)\n tools = tools.filter((t) => {\n const op = this.getOperation(t.method, t.path)\n return op?.tags?.some((tag) => tagSet.has(tag)) ?? false\n })\n }\n\n if (filter?.pathPrefix) {\n const prefix = filter.pathPrefix\n tools = tools.filter((t) => t.path.startsWith(prefix))\n }\n\n return tools\n }\n\n getTool(name: string): ToolDefinition | undefined {\n return this.toolMap.get(name)\n }\n\n async executeTool(name: string, args: Record<string, unknown>): Promise<ToolExecutionResult> {\n const tool = this.toolMap.get(name)\n if (!tool) {\n throw new Error(`Tool not found: ${name}`)\n }\n if (!this.dispatcher) {\n throw new Error('No dispatcher configured')\n }\n\n // Interpolate path params\n let url = tool.path\n for (const param of tool.pathParams) {\n const value = args[`path_${param}`]\n if (value === undefined) {\n throw new Error(`Missing required path parameter: ${param}`)\n }\n url = url.replace(`{${param}}`, encodeURIComponent(stringifyParamValue(value)))\n }\n\n // Collect query params\n const queryParts: string[] = []\n for (const key of Object.keys(args)) {\n if (key.startsWith('query_')) {\n const paramName = key.slice(6)\n const value = args[key]\n queryParts.push(`${encodeURIComponent(paramName)}=${encodeURIComponent(stringifyParamValue(value))}`)\n }\n }\n if (queryParts.length > 0) {\n url += `?${queryParts.join('&')}`\n }\n\n const body = args.body\n const response = await this.dispatcher(\n tool.method.toUpperCase(),\n url,\n body !== undefined ? { body } : undefined,\n )\n\n const responseHeaders: Record<string, string> = {}\n response.headers.forEach((value, key) => {\n responseHeaders[key] = value\n })\n\n return {\n status: response.status,\n body: await response.text(),\n headers: responseHeaders,\n }\n }\n\n private buildTools(): ToolDefinition[] {\n const tools: ToolDefinition[] = []\n const paths = this.spec.paths\n\n for (const [path, pathItem] of Object.entries(paths)) {\n for (const [method, operation] of Object.entries(pathItem)) {\n if (!operation || typeof operation !== 'object') continue\n if (!OpenApiToolsService.HTTP_METHODS.has(method.toLowerCase())) continue\n\n const op = operation as OperationObject\n const name = op.operationId ?? this.generateName(method, path)\n const description = this.buildDescription(op, method, path)\n const pathItemParams = (pathItem as Record<string, unknown>).parameters as ParameterObject[] | undefined\n const mergedParameters = this.mergeParameters(pathItemParams, op.parameters)\n const { schema, pathParams } = this.buildInputSchema({ ...op, parameters: mergedParameters })\n\n tools.push({ name, description, inputSchema: schema, method: method.toUpperCase(), path, pathParams })\n }\n }\n\n return tools\n }\n\n private generateName(method: string, path: string): string {\n const snake = path\n .replace(/[{}]/g, '')\n .replace(/[^a-zA-Z0-9]+/g, '_')\n .replace(/^_|_$/g, '')\n .toLowerCase()\n return `${method.toLowerCase()}_${snake}`\n }\n\n private buildDescription(op: OperationObject, method: string, path: string): string {\n if (op.summary && op.description) {\n return `${op.summary} — ${op.description}`\n }\n return op.summary ?? op.description ?? `${method.toUpperCase()} ${path}`\n }\n\n private buildInputSchema(op: OperationObject): { schema: JsonSchema; pathParams: string[] } {\n const properties: Record<string, JsonSchema> = {}\n const required: string[] = []\n const pathParams: string[] = []\n\n // Parameters (path + query)\n for (const param of op.parameters ?? []) {\n const resolvedParam = this.resolveRef(param) as ParameterObject\n const paramSchema = resolvedParam.schema ? this.resolveRef(resolvedParam.schema) as JsonSchema : { type: 'string' }\n\n if (resolvedParam.in === 'path') {\n pathParams.push(resolvedParam.name)\n const key = `path_${resolvedParam.name}`\n properties[key] = { ...paramSchema }\n if (resolvedParam.description) properties[key].description = resolvedParam.description\n required.push(key)\n } else if (resolvedParam.in === 'query') {\n const key = `query_${resolvedParam.name}`\n properties[key] = { ...paramSchema }\n if (resolvedParam.description) properties[key].description = resolvedParam.description\n if (resolvedParam.required) required.push(key)\n }\n }\n\n // Request body\n const resolvedBody = op.requestBody ? this.resolveRef(op.requestBody) as RequestBodyObject : undefined\n if (resolvedBody) {\n const jsonContent = resolvedBody.content?.['application/json']\n if (jsonContent?.schema) {\n properties.body = this.resolveRef(jsonContent.schema) as JsonSchema\n } else {\n properties.body = { type: 'object' }\n }\n const needsBody = resolvedBody.required === true\n if (needsBody) {\n required.push('body')\n }\n }\n\n const schema: JsonSchema = { type: 'object', properties }\n if (required.length > 0) {\n schema.required = required\n }\n\n return { schema, pathParams }\n }\n\n private mergeParameters(pathLevel?: ParameterObject[], opLevel?: ParameterObject[]): ParameterObject[] {\n const resolvedPathLevel = pathLevel?.map((p) => this.resolveRef(p) as ParameterObject)\n const resolvedOpLevel = opLevel?.map((p) => this.resolveRef(p) as ParameterObject)\n\n if (!resolvedPathLevel?.length) return resolvedOpLevel ?? []\n if (!resolvedOpLevel?.length) return resolvedPathLevel\n\n const opKeys = new Set(resolvedOpLevel.map((p) => `${p.in}:${p.name}`))\n const inherited = resolvedPathLevel.filter((p) => !opKeys.has(`${p.in}:${p.name}`))\n return [...inherited, ...resolvedOpLevel]\n }\n\n private resolveRef(obj: unknown, seen = new Set<string>()): unknown {\n if (!obj || typeof obj !== 'object') return obj\n const record = obj as Record<string, unknown>\n\n if (typeof record.$ref === 'string') {\n const refPath = record.$ref\n if (seen.has(refPath)) return obj\n seen.add(refPath)\n\n const resolved = this.lookupRef(refPath)\n if (!resolved) return obj\n return this.resolveRef(resolved, seen)\n }\n\n // Recursively walk all properties and resolve nested $refs\n const result: Record<string, unknown> = {}\n for (const [key, value] of Object.entries(record)) {\n if (Array.isArray(value)) {\n result[key] = value.map((item) => this.resolveRef(item, seen))\n } else if (value && typeof value === 'object') {\n result[key] = this.resolveRef(value, seen)\n } else {\n result[key] = value\n }\n }\n return result\n }\n\n private lookupRef(refPath: string): unknown {\n const components = this.spec.components as Record<string, Record<string, unknown>> | undefined\n if (!components) return undefined\n\n const match = /^#\\/components\\/(\\w+)\\/(.+)$/.exec(refPath)\n if (!match) return undefined\n\n const [, section, name] = match\n const sectionObj = components[section]\n if (typeof sectionObj !== 'object') return undefined\n return sectionObj[name]\n }\n\n private getOperation(method: string, path: string): OperationObject | undefined {\n const paths = this.spec.paths as Record<string, Record<string, unknown>> | undefined\n return paths?.[path]?.[method.toLowerCase()] as OperationObject | undefined\n }\n}\n"],"mappings":";;;;AAGA,MAAa,iBAAiB;;CAE5B,SAAS,OAAO,IAAI,yBAAyB;;;;;;CAO7C,aAAa,OAAO,IAAI,8BAA8B;;CAGtD,eAAe,OAAO,IAAI,gCAAgC;;CAG1D,gBAAgB,OAAO,IAAI,yBAAyB;AACtD;;;;;;;ACVA,SAAS,oBAAoB,OAAwB;CACnD,IAAI,SAAS,QAAQ,OAAO,UAAU,UACpC,OAAO,KAAK,UAAU,KAAK;CAE7B,OAAO,OAAO,KAAK;AACrB;;;;;;AAsDA,IAAa,sBAAb,MAAa,oBAAoB;CAC/B,OAAwB,+BAA4B,IAAI,IAAgB;EAAC;EAAO;EAAQ;EAAO;EAAU;EAAS;EAAQ;EAAW;CAAO,CAAC;CAE7I,QAAkC,CAAC;CACnC,0BAAkB,IAAI,IAA4B;CAClD;CAEA;CAEA,YAAY,MAAqB,SAAuC;EACtE,KAAK,OAAO;EACZ,KAAK,aAAa,SAAS;EAC3B,KAAK,QAAQ,KAAK,WAAW;EAC7B,KAAK,MAAM,QAAQ,KAAK,OACtB,KAAK,QAAQ,IAAI,KAAK,MAAM,IAAI;CAEpC;CAEA,SAAS,QAAuC;EAC9C,IAAI,QAAQ,KAAK;EAEjB,IAAI,QAAQ,MAAM,QAAQ;GACxB,MAAM,SAAS,IAAI,IAAI,OAAO,IAAI;GAClC,QAAQ,MAAM,QAAQ,MAAM;IAE1B,OADW,KAAK,aAAa,EAAE,QAAQ,EAAE,IACjC,CAAC,EAAE,MAAM,MAAM,QAAQ,OAAO,IAAI,GAAG,CAAC,KAAK;GACrD,CAAC;EACH;EAEA,IAAI,QAAQ,YAAY;GACtB,MAAM,SAAS,OAAO;GACtB,QAAQ,MAAM,QAAQ,MAAM,EAAE,KAAK,WAAW,MAAM,CAAC;EACvD;EAEA,OAAO;CACT;CAEA,QAAQ,MAA0C;EAChD,OAAO,KAAK,QAAQ,IAAI,IAAI;CAC9B;CAEA,MAAM,YAAY,MAAc,MAA6D;EAC3F,MAAM,OAAO,KAAK,QAAQ,IAAI,IAAI;EAClC,IAAI,CAAC,MACH,MAAM,IAAI,MAAM,mBAAmB,MAAM;EAE3C,IAAI,CAAC,KAAK,YACR,MAAM,IAAI,MAAM,0BAA0B;EAI5C,IAAI,MAAM,KAAK;EACf,KAAK,MAAM,SAAS,KAAK,YAAY;GACnC,MAAM,QAAQ,KAAK,QAAQ;GAC3B,IAAI,UAAU,KAAA,GACZ,MAAM,IAAI,MAAM,oCAAoC,OAAO;GAE7D,MAAM,IAAI,QAAQ,IAAI,MAAM,IAAI,mBAAmB,oBAAoB,KAAK,CAAC,CAAC;EAChF;EAGA,MAAM,aAAuB,CAAC;EAC9B,KAAK,MAAM,OAAO,OAAO,KAAK,IAAI,GAChC,IAAI,IAAI,WAAW,QAAQ,GAAG;GAC5B,MAAM,YAAY,IAAI,MAAM,CAAC;GAC7B,MAAM,QAAQ,KAAK;GACnB,WAAW,KAAK,GAAG,mBAAmB,SAAS,EAAE,GAAG,mBAAmB,oBAAoB,KAAK,CAAC,GAAG;EACtG;EAEF,IAAI,WAAW,SAAS,GACtB,OAAO,IAAI,WAAW,KAAK,GAAG;EAGhC,MAAM,OAAO,KAAK;EAClB,MAAM,WAAW,MAAM,KAAK,WAC1B,KAAK,OAAO,YAAY,GACxB,KACA,SAAS,KAAA,IAAY,EAAE,KAAK,IAAI,KAAA,CAClC;EAEA,MAAM,kBAA0C,CAAC;EACjD,SAAS,QAAQ,SAAS,OAAO,QAAQ;GACvC,gBAAgB,OAAO;EACzB,CAAC;EAED,OAAO;GACL,QAAQ,SAAS;GACjB,MAAM,MAAM,SAAS,KAAK;GAC1B,SAAS;EACX;CACF;CAEA,aAAuC;EACrC,MAAM,QAA0B,CAAC;EACjC,MAAM,QAAQ,KAAK,KAAK;EAExB,KAAK,MAAM,CAAC,MAAM,aAAa,OAAO,QAAQ,KAAK,GACjD,KAAK,MAAM,CAAC,QAAQ,cAAc,OAAO,QAAQ,QAAQ,GAAG;GAC1D,IAAI,CAAC,aAAa,OAAO,cAAc,UAAU;GACjD,IAAI,CAAC,oBAAoB,aAAa,IAAI,OAAO,YAAY,CAAC,GAAG;GAEjE,MAAM,KAAK;GACX,MAAM,OAAO,GAAG,eAAe,KAAK,aAAa,QAAQ,IAAI;GAC7D,MAAM,cAAc,KAAK,iBAAiB,IAAI,QAAQ,IAAI;GAC1D,MAAM,iBAAkB,SAAqC;GAC7D,MAAM,mBAAmB,KAAK,gBAAgB,gBAAgB,GAAG,UAAU;GAC3E,MAAM,EAAE,QAAQ,eAAe,KAAK,iBAAiB;IAAE,GAAG;IAAI,YAAY;GAAiB,CAAC;GAE5F,MAAM,KAAK;IAAE;IAAM;IAAa,aAAa;IAAQ,QAAQ,OAAO,YAAY;IAAG;IAAM;GAAW,CAAC;EACvG;EAGF,OAAO;CACT;CAEA,aAAqB,QAAgB,MAAsB;EACzD,MAAM,QAAQ,KACX,QAAQ,SAAS,EAAE,CAAC,CACpB,QAAQ,kBAAkB,GAAG,CAAC,CAC9B,QAAQ,UAAU,EAAE,CAAC,CACrB,YAAY;EACf,OAAO,GAAG,OAAO,YAAY,EAAE,GAAG;CACpC;CAEA,iBAAyB,IAAqB,QAAgB,MAAsB;EAClF,IAAI,GAAG,WAAW,GAAG,aACnB,OAAO,GAAG,GAAG,QAAQ,KAAK,GAAG;EAE/B,OAAO,GAAG,WAAW,GAAG,eAAe,GAAG,OAAO,YAAY,EAAE,GAAG;CACpE;CAEA,iBAAyB,IAAmE;EAC1F,MAAM,aAAyC,CAAC;EAChD,MAAM,WAAqB,CAAC;EAC5B,MAAM,aAAuB,CAAC;EAG9B,KAAK,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG;GACvC,MAAM,gBAAgB,KAAK,WAAW,KAAK;GAC3C,MAAM,cAAc,cAAc,SAAS,KAAK,WAAW,cAAc,MAAM,IAAkB,EAAE,MAAM,SAAS;GAElH,IAAI,cAAc,OAAO,QAAQ;IAC/B,WAAW,KAAK,cAAc,IAAI;IAClC,MAAM,MAAM,QAAQ,cAAc;IAClC,WAAW,OAAO,EAAE,GAAG,YAAY;IACnC,IAAI,cAAc,aAAa,WAAW,IAAI,CAAC,cAAc,cAAc;IAC3E,SAAS,KAAK,GAAG;GACnB,OAAO,IAAI,cAAc,OAAO,SAAS;IACvC,MAAM,MAAM,SAAS,cAAc;IACnC,WAAW,OAAO,EAAE,GAAG,YAAY;IACnC,IAAI,cAAc,aAAa,WAAW,IAAI,CAAC,cAAc,cAAc;IAC3E,IAAI,cAAc,UAAU,SAAS,KAAK,GAAG;GAC/C;EACF;EAGA,MAAM,eAAe,GAAG,cAAc,KAAK,WAAW,GAAG,WAAW,IAAyB,KAAA;EAC7F,IAAI,cAAc;GAChB,MAAM,cAAc,aAAa,UAAU;GAC3C,IAAI,aAAa,QACf,WAAW,OAAO,KAAK,WAAW,YAAY,MAAM;QAEpD,WAAW,OAAO,EAAE,MAAM,SAAS;GAGrC,IADkB,aAAa,aAAa,MAE1C,SAAS,KAAK,MAAM;EAExB;EAEA,MAAM,SAAqB;GAAE,MAAM;GAAU;EAAW;EACxD,IAAI,SAAS,SAAS,GACpB,OAAO,WAAW;EAGpB,OAAO;GAAE;GAAQ;EAAW;CAC9B;CAEA,gBAAwB,WAA+B,SAAgD;EACrG,MAAM,oBAAoB,WAAW,KAAK,MAAM,KAAK,WAAW,CAAC,CAAoB;EACrF,MAAM,kBAAkB,SAAS,KAAK,MAAM,KAAK,WAAW,CAAC,CAAoB;EAEjF,IAAI,CAAC,mBAAmB,QAAQ,OAAO,mBAAmB,CAAC;EAC3D,IAAI,CAAC,iBAAiB,QAAQ,OAAO;EAErC,MAAM,SAAS,IAAI,IAAI,gBAAgB,KAAK,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE,MAAM,CAAC;EAEtE,OAAO,CAAC,GADU,kBAAkB,QAAQ,MAAM,CAAC,OAAO,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,MAAM,CAC9D,GAAG,GAAG,eAAe;CAC1C;CAEA,WAAmB,KAAc,uBAAO,IAAI,IAAY,GAAY;EAClE,IAAI,CAAC,OAAO,OAAO,QAAQ,UAAU,OAAO;EAC5C,MAAM,SAAS;EAEf,IAAI,OAAO,OAAO,SAAS,UAAU;GACnC,MAAM,UAAU,OAAO;GACvB,IAAI,KAAK,IAAI,OAAO,GAAG,OAAO;GAC9B,KAAK,IAAI,OAAO;GAEhB,MAAM,WAAW,KAAK,UAAU,OAAO;GACvC,IAAI,CAAC,UAAU,OAAO;GACtB,OAAO,KAAK,WAAW,UAAU,IAAI;EACvC;EAGA,MAAM,SAAkC,CAAC;EACzC,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,MAAM,GAC9C,IAAI,MAAM,QAAQ,KAAK,GACrB,OAAO,OAAO,MAAM,KAAK,SAAS,KAAK,WAAW,MAAM,IAAI,CAAC;OACxD,IAAI,SAAS,OAAO,UAAU,UACnC,OAAO,OAAO,KAAK,WAAW,OAAO,IAAI;OAEzC,OAAO,OAAO;EAGlB,OAAO;CACT;CAEA,UAAkB,SAA0B;EAC1C,MAAM,aAAa,KAAK,KAAK;EAC7B,IAAI,CAAC,YAAY,OAAO,KAAA;EAExB,MAAM,QAAQ,+BAA+B,KAAK,OAAO;EACzD,IAAI,CAAC,OAAO,OAAO,KAAA;EAEnB,MAAM,GAAG,SAAS,QAAQ;EAC1B,MAAM,aAAa,WAAW;EAC9B,IAAI,OAAO,eAAe,UAAU,OAAO,KAAA;EAC3C,OAAO,WAAW;CACpB;CAEA,aAAqB,QAAgB,MAA2C;EAE9E,OADc,KAAK,KAAK,QACT,KAAK,GAAG,OAAO,YAAY;CAC5C;AACF"}
@@ -0,0 +1,43 @@
1
+ import { $ as Container, zn as HonoApp } from "./index-B2WtEagR.mjs";
2
+ import { r as OpenAPIObject } from "./zod-BGisqLs3.mjs";
3
+ //#region src/openapi/services/openapi.service.d.ts
4
+ /**
5
+ * OpenAPI Service
6
+ *
7
+ * Generates OpenAPI specifications lazily from the route metadata registry:
8
+ * - Built on demand (per request to the spec endpoint), never at startup
9
+ * - Schema → JSON Schema via zod v4's native `z.toJSONSchema()`
10
+ * - Runtime configuration via OpenAPIConfigService
11
+ * - Route visibility via a metadata predicate (`routeFilter`)
12
+ * - i18n support for titles, descriptions, and security schemes
13
+ *
14
+ * Hidden routes (hideFromDocs) are flagged in the metadata and excluded by the
15
+ * generator. The generator and the common error schemas are dynamically
16
+ * imported so `zod`/`common.schemas` never reach the routing path — they load
17
+ * only when the document is actually requested.
18
+ */
19
+ declare class OpenAPIService {
20
+ /**
21
+ * Generate a filtered OpenAPI document from collected route metadata.
22
+ * Usable from both HTTP handlers and CLI commands.
23
+ */
24
+ getSpec(container: Container): Promise<OpenAPIObject>;
25
+ /**
26
+ * Append the standard error responses (400/401/403/404/409/500) a route
27
+ * doesn't already declare. Done here, in the lazy doc path, so the error
28
+ * schemas never load at registration time.
29
+ */
30
+ private withCommonErrors;
31
+ /**
32
+ * Setup OpenAPI documentation endpoints
33
+ */
34
+ setupEndpoints(app: HonoApp, container: Container): void;
35
+ private nameLastHandler;
36
+ /**
37
+ * Get localized security scheme definitions
38
+ */
39
+ private getSecuritySchemeDefinitions;
40
+ }
41
+ //#endregion
42
+ export { OpenAPIService as t };
43
+ //# sourceMappingURL=openapi.service-Ds-R1tih.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi.service-Ds-R1tih.d.mts","names":[],"sources":["../src/openapi/services/openapi.service.ts"],"mappings":";;;;;;;;;;;;;;;;;;cA6Ba;;;;;EAKL,QAAQ,WAAW,YAAY,QAAQ;;;;;;UA8BrC;;;;EAkBR,eAAe,KAAK,SAAS,WAAW;UAkDhC;;;;UAQA"}
@@ -1,13 +1,12 @@
1
- import { An as ParsedOption, En as CommandInput, Mn as Quarry, On as CommandResult, jn as ParsedSignature, kn as ParsedArgument } from "../index-uybm0bhQ.mjs";
1
+ import { Gn as ParsedOption, Kn as ParsedSignature, Un as CommandResult, Vn as CommandInput, Wn as ParsedArgument, qn as Quarry } from "../index-B2WtEagR.mjs";
2
2
  import { t as Constructor } from "../types-CmV_9xBD.mjs";
3
- import { t as Command } from "../command-DoBD2Cwl.mjs";
4
- import { t as QuarryRegistry } from "../quarry-registry-DRnV-DDa.mjs";
5
-
3
+ import { t as Command } from "../command-BXMccV_9.mjs";
4
+ import { t as QuarryRegistry } from "../quarry-registry-Ci4k58FZ.mjs";
6
5
  //#region src/quarry/errors/command-not-found.error.d.ts
7
6
  /**
8
7
  * Thrown when a command is not found in the Quarry registry.
9
8
  */
10
- declare class CommandNotFoundError extends Error {
9
+ export declare class CommandNotFoundError extends Error {
11
10
  constructor(name: string);
12
11
  }
13
12
  //#endregion
@@ -19,7 +18,7 @@ declare class CommandNotFoundError extends Error {
19
18
  * Does NOT extend `ApplicationError` (which requires i18n keys + error codes).
20
19
  * Not routed through ExceptionHandler.
21
20
  */
22
- declare class CommandError extends Error {
21
+ export declare class CommandError extends Error {
23
22
  constructor(message: string);
24
23
  }
25
24
  //#endregion
@@ -29,7 +28,7 @@ declare class CommandError extends Error {
29
28
  *
30
29
  * Used by ModuleRegistry for auto-discovery from providers.
31
30
  */
32
- declare function isCommand(target: Constructor): boolean;
31
+ export declare function isCommand(target: Constructor): boolean;
33
32
  //#endregion
34
33
  //#region src/quarry/quarry.module.d.ts
35
34
  /**
@@ -38,7 +37,7 @@ declare function isCommand(target: Constructor): boolean;
38
37
  * Eager: resolved synchronously at bootstrap (`registerCommands`) and by the
39
38
  * CLI runner (`bin/quarry.ts`), so it cannot be lazily loaded.
40
39
  */
41
- declare class QuarryModule {}
40
+ export declare class QuarryModule {}
42
41
  //#endregion
43
42
  //#region src/quarry/signature-parser.d.ts
44
43
  /**
@@ -52,7 +51,7 @@ declare class QuarryModule {}
52
51
  *
53
52
  * Pure function, zero dependencies, edge-compatible.
54
53
  */
55
- declare function parseSignature(signature: string): ParsedSignature;
54
+ export declare function parseSignature(signature: string): ParsedSignature;
56
55
  //#endregion
57
56
  //#region src/quarry/usage-generator.d.ts
58
57
  /**
@@ -60,7 +59,7 @@ declare function parseSignature(signature: string): ParsedSignature;
60
59
  *
61
60
  * Pure function, edge-compatible.
62
61
  */
63
- declare function generateUsage(signature: ParsedSignature, description?: string): string;
62
+ export declare function generateUsage(signature: ParsedSignature, description?: string): string;
64
63
  //#endregion
65
- export { Command, CommandError, type CommandInput, CommandNotFoundError, type CommandResult, type ParsedArgument, type ParsedOption, type ParsedSignature, type Quarry, QuarryModule, QuarryRegistry, generateUsage, isCommand, parseSignature };
64
+ export { Command, type CommandInput, type CommandResult, type ParsedArgument, type ParsedOption, type ParsedSignature, type Quarry, QuarryRegistry };
66
65
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/quarry/errors/command-not-found.error.ts","../../src/quarry/errors/command.error.ts","../../src/quarry/is-command.ts","../../src/quarry/quarry.module.ts","../../src/quarry/signature-parser.ts","../../src/quarry/usage-generator.ts"],"mappings":";;;;;;;;;cAGa,oBAAA,SAA6B,KAAK;cACjC,IAAA;AAAA;;;;;;;;;AADd;cCIa,YAAA,SAAqB,KAAK;cACzB,OAAA;AAAA;;;;;;;;iBCAE,SAAA,CAAU,MAAmB,EAAX,WAAW;;;;;;;;;cCOhC,YAAA;;;;;;;;AHZb;;;;;;iBIWgB,cAAA,CAAe,SAAA,WAAoB,eAAe;;;;;;;;iBCNlD,aAAA,CAAc,SAAA,EAAW,eAAe,EAAE,WAAA"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/quarry/errors/command-not-found.error.ts","../../src/quarry/errors/command.error.ts","../../src/quarry/is-command.ts","../../src/quarry/quarry.module.ts","../../src/quarry/signature-parser.ts","../../src/quarry/usage-generator.ts"],"mappings":";;;;;;;;qBAGa,6BAA6B;EACxC,YAAY;;;;;;;;;;;qBCGD,qBAAqB;EAChC,YAAY;;;;;;;;;wBCAE,UAAU,QAAQ;;;;;;;;;qBCOrB;;;;;;;;;;;;;;wBCDG,eAAe,oBAAoB;;;;;;;;wBCNnC,cAAc,WAAW,iBAAiB"}
@@ -1,6 +1,6 @@
1
- import { n as CommandError, t as Command } from "../command-BvmUAPPQ.mjs";
2
- import { t as isCommand } from "../is-command-CEPO9n8c.mjs";
1
+ import { r as CommandError, t as Command } from "../command-Bb820B6W.mjs";
2
+ import { t as isCommand } from "../is-command-CSVv14wh.mjs";
3
3
  import { t as CommandNotFoundError } from "../command-not-found.error-ONAZ2Bpk.mjs";
4
- import { i as parseSignature, r as QuarryRegistry, t as QuarryModule } from "../quarry.module-CcGxU2dJ.mjs";
5
- import { t as generateUsage } from "../usage-generator-DAWYasuP.mjs";
4
+ import { i as parseSignature, r as QuarryRegistry, t as QuarryModule } from "../quarry.module-BssRR8f0.mjs";
5
+ import { t as generateUsage } from "../usage-generator-BW7EcO-C.mjs";
6
6
  export { Command, CommandError, CommandNotFoundError, QuarryModule, QuarryRegistry, generateUsage, isCommand, parseSignature };
@@ -1,12 +1,11 @@
1
- import { bn as LocalePathService, f as ExceptionHandler, ft as Application, hn as ModuleRegistry, pn as RouteRegistry } from "../index-uybm0bhQ.mjs";
1
+ import { En as LocalePathService, _n as RouteRegistry, f as ExceptionHandler, ft as Application, xn as ModuleRegistry } from "../index-B2WtEagR.mjs";
2
2
  import { t as Constructor } from "../types-CmV_9xBD.mjs";
3
- import { n as ConsumerRegistry } from "../consumer-registry-D3iMTSdy.mjs";
4
- import { t as Stratal } from "../stratal-D5j_I14G.mjs";
5
- import { t as LazyModuleLoader } from "../lazy-module-loader-M6YKudNL.mjs";
6
- import { t as OpenAPIService } from "../openapi.service-2rvJBCEg.mjs";
7
- import { t as Command } from "../command-DoBD2Cwl.mjs";
8
- import { t as QuarryRegistry } from "../quarry-registry-DRnV-DDa.mjs";
9
-
3
+ import { n as ConsumerRegistry } from "../consumer-registry-i9oCdarv.mjs";
4
+ import { t as Stratal } from "../stratal-Bs1_E8GQ.mjs";
5
+ import { t as LazyModuleLoader } from "../lazy-module-loader-C3OHoUnR.mjs";
6
+ import { t as OpenAPIService } from "../openapi.service-Ds-R1tih.mjs";
7
+ import { t as Command } from "../command-BXMccV_9.mjs";
8
+ import { t as QuarryRegistry } from "../quarry-registry-Ci4k58FZ.mjs";
10
9
  //#region src/quarry/builtin-quarry.module.d.ts
11
10
  /**
12
11
  * Built-in framework CLI commands.
@@ -17,10 +16,10 @@ import { t as QuarryRegistry } from "../quarry-registry-DRnV-DDa.mjs";
17
16
  * (e.g. `@modelcontextprotocol/sdk` reached via `McpServeCommand`) out
18
17
  * of the worker bundle and the worker-env Vite dev optimizer.
19
18
  */
20
- declare class BuiltinQuarryModule {}
19
+ export declare class BuiltinQuarryModule {}
21
20
  //#endregion
22
21
  //#region src/quarry/commands/api.command.d.ts
23
- declare class ApiCommand extends Command {
22
+ export declare class ApiCommand extends Command {
24
23
  private app;
25
24
  static command: string;
26
25
  static description: string;
@@ -31,7 +30,7 @@ declare class ApiCommand extends Command {
31
30
  }
32
31
  //#endregion
33
32
  //#region src/quarry/commands/event-list.command.d.ts
34
- declare class EventListCommand extends Command {
33
+ export declare class EventListCommand extends Command {
35
34
  private modules;
36
35
  static command: string;
37
36
  static description: string;
@@ -40,7 +39,7 @@ declare class EventListCommand extends Command {
40
39
  }
41
40
  //#endregion
42
41
  //#region src/quarry/commands/help.command.d.ts
43
- declare class HelpCommand extends Command {
42
+ export declare class HelpCommand extends Command {
44
43
  private quarryRegistry;
45
44
  static command: string;
46
45
  static description: string;
@@ -50,7 +49,7 @@ declare class HelpCommand extends Command {
50
49
  }
51
50
  //#endregion
52
51
  //#region src/quarry/commands/mcp-serve.command.d.ts
53
- declare class McpServeCommand extends Command {
52
+ export declare class McpServeCommand extends Command {
54
53
  private app;
55
54
  private openAPIService;
56
55
  static command: string;
@@ -60,7 +59,7 @@ declare class McpServeCommand extends Command {
60
59
  }
61
60
  //#endregion
62
61
  //#region src/quarry/commands/mcp-tools.command.d.ts
63
- declare class McpToolsCommand extends Command {
62
+ export declare class McpToolsCommand extends Command {
64
63
  private app;
65
64
  private openAPIService;
66
65
  static command: string;
@@ -70,7 +69,7 @@ declare class McpToolsCommand extends Command {
70
69
  }
71
70
  //#endregion
72
71
  //#region src/quarry/commands/queue-list.command.d.ts
73
- declare class QueueListCommand extends Command {
72
+ export declare class QueueListCommand extends Command {
74
73
  private consumers;
75
74
  static command: string;
76
75
  static description: string;
@@ -94,7 +93,7 @@ declare class QueueListCommand extends Command {
94
93
  * quarry route:list --hidden
95
94
  * ```
96
95
  */
97
- declare class RouteListCommand extends Command {
96
+ export declare class RouteListCommand extends Command {
98
97
  private registry;
99
98
  static command: string;
100
99
  static description: string;
@@ -116,7 +115,7 @@ declare class RouteListCommand extends Command {
116
115
  * quarry route:types --output=types/routes.d.ts
117
116
  * ```
118
117
  */
119
- declare class RouteTypesCommand extends Command {
118
+ export declare class RouteTypesCommand extends Command {
120
119
  private registry;
121
120
  private localePathService;
122
121
  static command: string;
@@ -130,7 +129,7 @@ declare class RouteTypesCommand extends Command {
130
129
  }
131
130
  //#endregion
132
131
  //#region src/quarry/commands/schedule-list.command.d.ts
133
- declare class ScheduleListCommand extends Command {
132
+ export declare class ScheduleListCommand extends Command {
134
133
  private loader;
135
134
  static command: string;
136
135
  static description: string;
@@ -176,9 +175,9 @@ interface QuarryRunOptions {
176
175
  * })
177
176
  * ```
178
177
  */
179
- declare class QuarryRunner {
178
+ export declare class QuarryRunner {
180
179
  static run(options: QuarryRunOptions): Stratal;
181
180
  }
182
181
  //#endregion
183
- export { ApiCommand, BuiltinQuarryModule, EventListCommand, HelpCommand, McpServeCommand, McpToolsCommand, type QuarryRunOptions, QuarryRunner, QueueListCommand, RouteListCommand, RouteTypesCommand, ScheduleListCommand };
182
+ export type { QuarryRunOptions };
184
183
  //# sourceMappingURL=runner.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.mts","names":[],"sources":["../../src/quarry/builtin-quarry.module.ts","../../src/quarry/commands/api.command.ts","../../src/quarry/commands/event-list.command.ts","../../src/quarry/commands/help.command.ts","../../src/quarry/commands/mcp-serve.command.ts","../../src/quarry/commands/mcp-tools.command.ts","../../src/quarry/commands/queue-list.command.ts","../../src/quarry/commands/route-list.command.ts","../../src/quarry/commands/route-types.command.ts","../../src/quarry/commands/schedule-list.command.ts","../../src/quarry/quarry-runner.ts"],"mappings":";;;;;;;;;;;;;;;;;;;cAsDa,mBAAA;;;cChDA,UAAA,SAAmB,OAAA;EAAA,QAKqB,GAAA;EAAA,OAJ5C,OAAA;EAAA,OACA,WAAA;EAAA,OACA,OAAA;cAE4C,GAAA,EAAK,WAAA;EAIlD,MAAA,IAAU,OAAA;EAAA,QAUF,SAAA;AAAA;;;cCnBH,gBAAA,SAAyB,OAAO;EAAA,QAIW,OAAA;EAAA,OAH/C,OAAA;EAAA,OACA,WAAA;cAE+C,OAAA,EAAS,cAAA;EAI/D,MAAA;AAAA;;;cCRW,WAAA,SAAoB,OAAA;EAAA,QAKe,cAAA;EAAA,OAJvC,OAAA;EAAA,OACA,WAAA;EAAA,OACA,OAAA;cAEuC,cAAA,EAAgB,cAAA;EAIxD,MAAA,IAAU,OAAA;AAAA;;;cCJL,eAAA,SAAwB,OAAA;EAAA,QAKM,GAAA;EAAA,QACQ,cAAA;EAAA,OAL1C,OAAA;EAAA,OACA,WAAA;cAGkC,GAAA,EAAK,WAAA,EACG,cAAA,EAAgB,cAAA;EAK3D,MAAA,IAAU,OAAA;AAAA;;;cCdL,eAAA,SAAwB,OAAA;EAAA,QAKM,GAAA;EAAA,QACQ,cAAA;EAAA,OAL1C,OAAA;EAAA,OACA,WAAA;cAGkC,GAAA,EAAK,WAAA,EACG,cAAA,EAAgB,cAAA;EAK3D,MAAA,IAAU,OAAA;AAAA;;;cCdL,gBAAA,SAAyB,OAAO;EAAA,QAIa,SAAA;EAAA,OAHjD,OAAA;EAAA,OACA,WAAA;cAEiD,SAAA,EAAW,gBAAA;EAInE,MAAA;AAAA;;;;;;;;;;;ANiBF;;;;AAwBgC;;;cOlCnB,gBAAA,SAAyB,OAAO;EAAA,QAIc,QAAA;EAAA,OAHlD,OAAA;EAAA,OACA,WAAA;cAEkD,QAAA,EAAU,aAAA;EAInE,MAAA;EAAA,QAsCQ,SAAA;AAAA;;;;;;;;;;APpCV;;;;AAwBgC;cQlCnB,iBAAA,SAA0B,OAAA;EAAA,QAKU,QAAA;EAAA,QACI,iBAAA;EAAA,OAL5C,OAAA;EAAA,OACA,WAAA;cAGwC,QAAA,EAAU,aAAA,EACN,iBAAA,EAAmB,iBAAA;EAKtE,MAAA;EPhBgB;;;EAAA,QOmCR,mBAAA;AAAA;;;cC5CG,mBAAA,SAA4B,OAAA;EAAA,QAIiB,MAAA;EAAA,OAHjD,OAAA;EAAA,OACA,WAAA;cAEiD,MAAA,EAAQ,gBAAA;EAI1D,MAAA,IAAU,OAAA;AAAA;;;UCPD,gBAAA;;;;;;;AVuBjB;;EUdE,OAAA,EAAS,WAAA;EVsCqB;AAAA;;;;AChDhC;ESiBE,SAAA,GAAY,WAAA;;EAEZ,gBAAA,GAAmB,WAAA,CAAY,gBAAA;AAAA;;;;;;;;;;;;;;;;ATAR;;cSoBZ,YAAA;EAAA,OACJ,GAAA,CAAI,OAAA,EAAS,gBAAA,GAAmB,OAAO;AAAA"}
1
+ {"version":3,"file":"runner.d.mts","names":[],"sources":["../../src/quarry/builtin-quarry.module.ts","../../src/quarry/commands/api.command.ts","../../src/quarry/commands/event-list.command.ts","../../src/quarry/commands/help.command.ts","../../src/quarry/commands/mcp-serve.command.ts","../../src/quarry/commands/mcp-tools.command.ts","../../src/quarry/commands/queue-list.command.ts","../../src/quarry/commands/route-list.command.ts","../../src/quarry/commands/route-types.command.ts","../../src/quarry/commands/schedule-list.command.ts","../../src/quarry/quarry-runner.ts"],"mappings":";;;;;;;;;;;;;;;;;;qBAsDa;;;qBChDA,mBAAmB;UAKqB;SAJ5C;SACA;SACA;EAEP,YAAmD,KAAK;EAIlD,UAAU;UAUF;;;;qBCnBH,yBAAyB;UAIkB;SAH/C;SACA;EAEP,YAAsD,SAAS;EAI/D;;;;qBCRW,oBAAoB;UAKe;SAJvC;SACA;SACA;EAEP,YAA8C,gBAAgB;EAIxD,UAAU;;;;qBCHL,wBAAwB;UAKM;UACQ;SAL1C;SACA;EAEP,YACyC,KAAK,aACG,gBAAgB;EAK3D,UAAU;;;;qBCdL,wBAAwB;UAKM;UACQ;SAL1C;SACA;EAEP,YACyC,KAAK,aACG,gBAAgB;EAK3D,UAAU;;;;qBCfL,yBAAyB;UAIoB;SAHjD;SACA;EAEP,YAAwD,WAAW;EAInE;;;;;;;;;;;;;;;;;;;qBCOW,yBAAyB;UAIqB;SAHlD;SACA;EAEP,YAAyD,UAAU;EAInE;UAsCQ;;;;;;;;;;;;;;;;qBC9CG,0BAA0B;UAKU;UACI;SAL5C;SACA;EAEP,YAC+C,UAAU,eACN,mBAAmB;EAKtE;;;;UAmBQ;;;;qBC5CG,4BAA4B;UAIiB;SAHjD;SACA;EAEP,YAAwD,QAAQ;EAI1D,UAAU;;;;UCPD;;;;;;;;;EASf,SAAS;;;;;;;EAOT,YAAY;;EAEZ,mBAAmB,YAAY;;;;;;;;;;;;;;;;;;;qBAoBpB;SACJ,IAAI,SAAS,mBAAmB"}
@@ -1,15 +1,16 @@
1
- import { b as ROUTER_TOKENS, p as inject, r as DI_TOKENS } from "../di-D7qmrAir.mjs";
2
- import { n as __decorateParam, t as __decorate } from "../decorate-CuAoSZvs.mjs";
1
+ import { C as ROUTER_TOKENS, p as inject, r as DI_TOKENS } from "../di-DQ3xbjgf.mjs";
2
+ import { n as getContainer } from "../container-storage-DfF7SXdV.mjs";
3
+ import { n as __decorateParam, t as __decorate } from "../decorate-C79yt3Wt.mjs";
3
4
  import "../logger/index.mjs";
4
- import { a as getListenerHandlers } from "../events-BhEQuT1X.mjs";
5
- import { n as Module } from "../module.decorator-CYHY6pG5.mjs";
6
- import { a as cyan, c as green, i as bold, l as red, t as Command, u as yellow } from "../command-BvmUAPPQ.mjs";
7
- import { t as Stratal } from "../stratal-BL6FKUM_.mjs";
5
+ import { a as getListenerHandlers } from "../events-GtwGEHyT.mjs";
6
+ import { n as Module } from "../module.decorator-CYbrOlX9.mjs";
7
+ import { a as bold, d as yellow, l as green, o as cyan, t as Command, u as red } from "../command-Bb820B6W.mjs";
8
+ import { t as Stratal } from "../stratal-CiwNpWy2.mjs";
8
9
  import { t as QUEUE_TOKENS } from "../queue.tokens-DjHnFmre.mjs";
9
10
  import { t as I18N_TOKENS } from "../i18n.tokens-CZ_v8oyS.mjs";
10
- import { n as OPENAPI_TOKENS, t as OpenApiToolsService } from "../openapi-tools.service-BC5EC3R3.mjs";
11
+ import { n as OPENAPI_TOKENS, t as OpenApiToolsService } from "../openapi-tools.service-VKZJlTIX.mjs";
11
12
  import { t as CommandNotFoundError } from "../command-not-found.error-ONAZ2Bpk.mjs";
12
- import { n as DbSeedListCommand, t as DbSeedCommand } from "../seeder-BPGY5rUb.mjs";
13
+ import { n as DbSeedListCommand, t as DbSeedCommand } from "../seeder-BrAk7XIj.mjs";
13
14
  import { z } from "zod";
14
15
  import { writeFileSync } from "node:fs";
15
16
  import { resolve } from "node:path";
@@ -453,7 +454,7 @@ let McpServeCommand = class McpServeCommand extends Command {
453
454
  if (colonIdx > 0) headers[h.slice(0, colonIdx).trim()] = h.slice(colonIdx + 1).trim();
454
455
  }
455
456
  const hono = await this.app.ensureHono();
456
- const spec = this.openAPIService.getSpec(hono, this.app.container);
457
+ const spec = await this.openAPIService.getSpec(getContainer());
457
458
  const service = new OpenApiToolsService(spec, { dispatcher: baseUrl ? async (method, url, opts) => {
458
459
  const fullUrl = `${baseUrl}${url}`;
459
460
  try {
@@ -542,8 +543,9 @@ let McpToolsCommand = class McpToolsCommand extends Command {
542
543
  async handle() {
543
544
  const tags = this.array("tag");
544
545
  const pathPrefix = this.string("path");
545
- const hono = await this.app.ensureHono();
546
- const service = new OpenApiToolsService(this.openAPIService.getSpec(hono, this.app.container));
546
+ await this.app.ensureHono();
547
+ const spec = await this.openAPIService.getSpec(getContainer());
548
+ const service = new OpenApiToolsService(spec);
547
549
  const filter = {
548
550
  tags: tags.length > 0 ? tags : void 0,
549
551
  pathPrefix: pathPrefix || void 0
@@ -816,7 +818,8 @@ let RouteTypesCommand = class RouteTypesCommand extends Command {
816
818
  this.warn("No named routes found. Add name to your @Route() or @Get()/@Post() decorators.");
817
819
  return 0;
818
820
  }
819
- writeFileSync(outputPath, this.generateDeclaration(namedRoutes), "utf-8");
821
+ const content = this.generateDeclaration(namedRoutes);
822
+ writeFileSync(outputPath, content, "utf-8");
820
823
  this.info(`Generated route types for ${namedRoutes.length} named routes → ${outputPath}`);
821
824
  }
822
825
  /**
@@ -863,7 +866,7 @@ let ScheduleListCommand = class ScheduleListCommand extends Command {
863
866
  this.loader = loader;
864
867
  }
865
868
  async handle() {
866
- const cron = (await this.loader.load(() => import("../cron.module-C81HTzR7.mjs").then((n) => n.n).then((m) => m.CronModule))).get(DI_TOKENS.Cron);
869
+ const cron = (await this.loader.load(() => import("../cron.module-Dnyl9sFk.mjs").then((n) => n.n).then((m) => m.CronModule))).get(DI_TOKENS.Cron);
867
870
  const schedules = cron.getAllSchedules();
868
871
  if (schedules.length === 0) {
869
872
  this.info("No cron jobs found");