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.
- package/CHANGELOG.md +912 -0
- package/README.md +96 -14
- package/dist/bin/cloudflare-workers-loader.mjs +18 -3
- package/dist/bin/cloudflare-workers-loader.mjs.map +1 -1
- package/dist/bin/quarry.mjs +73 -12
- package/dist/bin/quarry.mjs.map +1 -1
- package/dist/cache/index.d.mts +8 -9
- package/dist/cache/index.d.mts.map +1 -1
- package/dist/cache/index.mjs +56 -17
- package/dist/cache/index.mjs.map +1 -1
- package/dist/{cache.service-uElmBtdS.d.mts → cache.service-Dg0Hj0gp.d.mts} +27 -12
- package/dist/cache.service-Dg0Hj0gp.d.mts.map +1 -0
- package/dist/{command-DoBD2Cwl.d.mts → command-BXMccV_9.d.mts} +6 -3
- package/dist/command-BXMccV_9.d.mts.map +1 -0
- package/dist/{command-BvmUAPPQ.mjs → command-Bb820B6W.mjs} +36 -13
- package/dist/command-Bb820B6W.mjs.map +1 -0
- package/dist/common.schemas-BigQCwYB.mjs +89 -0
- package/dist/common.schemas-BigQCwYB.mjs.map +1 -0
- package/dist/config/index.d.mts +15 -15
- package/dist/config/index.d.mts.map +1 -1
- package/dist/config/index.mjs +4 -6
- package/dist/config/index.mjs.map +1 -1
- package/dist/{consumer-registry-D3iMTSdy.d.mts → consumer-registry-i9oCdarv.d.mts} +2 -3
- package/dist/consumer-registry-i9oCdarv.d.mts.map +1 -0
- package/dist/{container-storage-BmOJ4_Na.mjs → container-storage-DfF7SXdV.mjs} +11 -1
- package/dist/container-storage-DfF7SXdV.mjs.map +1 -0
- package/dist/{controller.decorator-YSTPQntu.mjs → controller.decorator-BB0JcwMg.mjs} +18 -9
- package/dist/controller.decorator-BB0JcwMg.mjs.map +1 -0
- package/dist/cron/index.d.mts +6 -7
- package/dist/cron/index.d.mts.map +1 -1
- package/dist/cron/index.mjs +1 -1
- package/dist/{cron-job-NesZRk8F.d.mts → cron-job-DAgNw4Bn.d.mts} +1 -2
- package/dist/cron-job-DAgNw4Bn.d.mts.map +1 -0
- package/dist/{cron.module-C81HTzR7.mjs → cron.module-Dnyl9sFk.mjs} +6 -7
- package/dist/{cron.module-C81HTzR7.mjs.map → cron.module-Dnyl9sFk.mjs.map} +1 -1
- package/dist/{decorate-CuAoSZvs.mjs → decorate-C79yt3Wt.mjs} +2 -2
- package/dist/di/index.d.mts +1 -1
- package/dist/di/index.mjs +2 -3
- package/dist/{di-D7qmrAir.mjs → di-DQ3xbjgf.mjs} +48 -6
- package/dist/di-DQ3xbjgf.mjs.map +1 -0
- package/dist/email/index.d.mts +158 -133
- package/dist/email/index.d.mts.map +1 -1
- package/dist/email/index.mjs +66 -78
- package/dist/email/index.mjs.map +1 -1
- package/dist/{en-CDZBMcc1.mjs → en-CCL84z4k.mjs} +2 -2
- package/dist/{en-CDZBMcc1.mjs.map → en-CCL84z4k.mjs.map} +1 -1
- package/dist/env-ug22bJj7.d.mts.map +1 -1
- package/dist/errors/index.d.mts +1 -1
- package/dist/errors/index.mjs +3 -3
- package/dist/{errors-C01O2T-n.mjs → errors-CrOXI_y5.mjs} +6 -8
- package/dist/errors-CrOXI_y5.mjs.map +1 -0
- package/dist/events/index.d.mts +8 -9
- package/dist/events/index.d.mts.map +1 -1
- package/dist/events/index.mjs +1 -1
- package/dist/{events-BhEQuT1X.mjs → events-GtwGEHyT.mjs} +5 -6
- package/dist/events-GtwGEHyT.mjs.map +1 -0
- package/dist/{exception-context-D-kvney-.mjs → exception-context-CdnGTQNF.mjs} +13 -7
- package/dist/exception-context-CdnGTQNF.mjs.map +1 -0
- package/dist/{gateway-context-m7kEzRa2.mjs → gateway-context-Cmc1NRS0.mjs} +7 -7
- package/dist/{gateway-context-m7kEzRa2.mjs.map → gateway-context-Cmc1NRS0.mjs.map} +1 -1
- package/dist/gateway-mode-0rUaeW3g.mjs +53 -0
- package/dist/gateway-mode-0rUaeW3g.mjs.map +1 -0
- package/dist/guards/index.d.mts +38 -20
- package/dist/guards/index.d.mts.map +1 -1
- package/dist/guards/index.mjs +2 -2
- package/dist/{guards-DALPXy3_.mjs → guards-DOGly9IF.mjs} +34 -11
- package/dist/guards-DOGly9IF.mjs.map +1 -0
- package/dist/hono-app-IhdqL0Fk.mjs +399 -0
- package/dist/hono-app-IhdqL0Fk.mjs.map +1 -0
- package/dist/{http-method.decorator-BljM8BDj.mjs → http-method.decorator-BDi9LTWj.mjs} +9 -8
- package/dist/http-method.decorator-BDi9LTWj.mjs.map +1 -0
- package/dist/i18n/index.d.mts +26 -137
- package/dist/i18n/index.d.mts.map +1 -1
- package/dist/i18n/index.mjs +4 -5
- package/dist/i18n/index.mjs.map +1 -1
- package/dist/i18n/messages/en/index.d.mts +1 -1
- package/dist/i18n/messages/en/index.mjs +1 -1
- package/dist/i18n/utils/index.d.mts +1 -2
- package/dist/i18n/utils/index.d.mts.map +1 -1
- package/dist/i18n/validation/index.d.mts +80 -5
- package/dist/i18n/validation/index.d.mts.map +1 -0
- package/dist/i18n/validation/index.mjs +4 -5
- package/dist/{i18n.module-B2DvWUPa.mjs → i18n.module-Bm3xlViA.mjs} +28 -13
- package/dist/i18n.module-Bm3xlViA.mjs.map +1 -0
- package/dist/index-0ItCjaqw.d.mts.map +1 -1
- package/dist/{index-CNuFQSNj.d.mts → index-3HJfhLlE.d.mts} +9 -11
- package/dist/index-3HJfhLlE.d.mts.map +1 -0
- package/dist/{index-uybm0bhQ.d.mts → index-B2WtEagR.d.mts} +1187 -234
- package/dist/index-B2WtEagR.d.mts.map +1 -0
- package/dist/index-BUt92sAE.d.mts.map +1 -1
- package/dist/index-CAHNCpvr.d.mts +203 -0
- package/dist/index-CAHNCpvr.d.mts.map +1 -0
- package/dist/index.d.mts +4 -4
- package/dist/index.mjs +2 -2
- package/dist/{is-command-CEPO9n8c.mjs → is-command-CSVv14wh.mjs} +2 -2
- package/dist/{is-command-CEPO9n8c.mjs.map → is-command-CSVv14wh.mjs.map} +1 -1
- package/dist/{is-seeder-Gvh_AM71.mjs → is-seeder-gLgXYbqC.mjs} +2 -2
- package/dist/is-seeder-gLgXYbqC.mjs.map +1 -0
- package/dist/{lazy-module-loader-M6YKudNL.d.mts → lazy-module-loader-C3OHoUnR.d.mts} +4 -5
- package/dist/lazy-module-loader-C3OHoUnR.d.mts.map +1 -0
- package/dist/limit-BE0HNAF6.mjs +116 -0
- package/dist/limit-BE0HNAF6.mjs.map +1 -0
- package/dist/locale-path.service-BqzDIrgy.mjs +213 -0
- package/dist/locale-path.service-BqzDIrgy.mjs.map +1 -0
- package/dist/locale-url-nZrZxqJP.mjs.map +1 -1
- package/dist/{locale-url.service-6bgia24_.mjs → locale-url.service-H8PH6GGh.mjs} +15 -5
- package/dist/{locale-url.service-6bgia24_.mjs.map → locale-url.service-H8PH6GGh.mjs.map} +1 -1
- package/dist/logger/index.mjs +3 -5
- package/dist/logger/index.mjs.map +1 -1
- package/dist/macroable-cvDTFZ_A.mjs.map +1 -1
- package/dist/metadata-Ba8Fxs1F.mjs +48 -0
- package/dist/metadata-Ba8Fxs1F.mjs.map +1 -0
- package/dist/module/index.d.mts +8 -9
- package/dist/module/index.d.mts.map +1 -1
- package/dist/module/index.mjs +3 -4
- package/dist/module/index.mjs.map +1 -1
- package/dist/{module-registry-NxX5O0Qk.mjs → module-registry-lkQPDuQe.mjs} +17 -15
- package/dist/module-registry-lkQPDuQe.mjs.map +1 -0
- package/dist/{module.decorator-CYHY6pG5.mjs → module.decorator-CYbrOlX9.mjs} +2 -2
- package/dist/{module.decorator-CYHY6pG5.mjs.map → module.decorator-CYbrOlX9.mjs.map} +1 -1
- package/dist/openapi/index.d.mts +19 -16
- package/dist/openapi/index.d.mts.map +1 -1
- package/dist/openapi/index.mjs +2 -2
- package/dist/{openapi-CMwuCp31.mjs → openapi-DBfBa5Qh.mjs} +41 -65
- package/dist/openapi-DBfBa5Qh.mjs.map +1 -0
- package/dist/openapi-generator-CCwiu8AU.mjs +134 -0
- package/dist/openapi-generator-CCwiu8AU.mjs.map +1 -0
- package/dist/{openapi-tools.service-BC5EC3R3.mjs → openapi-tools.service-VKZJlTIX.mjs} +12 -4
- package/dist/openapi-tools.service-VKZJlTIX.mjs.map +1 -0
- package/dist/openapi.service-Ds-R1tih.d.mts +43 -0
- package/dist/openapi.service-Ds-R1tih.d.mts.map +1 -0
- package/dist/quarry/index.d.mts +10 -11
- package/dist/quarry/index.d.mts.map +1 -1
- package/dist/quarry/index.mjs +4 -4
- package/dist/quarry/runner.d.mts +19 -20
- package/dist/quarry/runner.d.mts.map +1 -1
- package/dist/quarry/runner.mjs +16 -13
- package/dist/quarry/runner.mjs.map +1 -1
- package/dist/{quarry-registry-DRnV-DDa.d.mts → quarry-registry-Ci4k58FZ.d.mts} +3 -4
- package/dist/quarry-registry-Ci4k58FZ.d.mts.map +1 -0
- package/dist/{quarry.module-CcGxU2dJ.mjs → quarry.module-BssRR8f0.mjs} +20 -37
- package/dist/quarry.module-BssRR8f0.mjs.map +1 -0
- package/dist/queue/index.d.mts +2 -2
- package/dist/queue/index.mjs +3 -3
- package/dist/queue/index.mjs.map +1 -1
- package/dist/{queue.module-CEs4_kEM.mjs → queue.module-DnAdSbR-.mjs} +40 -41
- package/dist/queue.module-DnAdSbR-.mjs.map +1 -0
- package/dist/{r2-storage.provider-BoZmR6Ut.mjs → r2-storage.provider-wU_6api4.mjs} +45 -6
- package/dist/r2-storage.provider-wU_6api4.mjs.map +1 -0
- package/dist/{rate-limit.decorator-Djs4oYDB.mjs → rate-limit.decorator-PYQ9EYqs.mjs} +10 -5
- package/dist/{rate-limit.decorator-Djs4oYDB.mjs.map → rate-limit.decorator-PYQ9EYqs.mjs.map} +1 -1
- package/dist/rate-limiter/index.d.mts +64 -19
- package/dist/rate-limiter/index.d.mts.map +1 -1
- package/dist/rate-limiter/index.mjs +67 -83
- package/dist/rate-limiter/index.mjs.map +1 -1
- package/dist/response-cache/index.d.mts +326 -0
- package/dist/response-cache/index.d.mts.map +1 -0
- package/dist/response-cache/index.mjs +511 -0
- package/dist/response-cache/index.mjs.map +1 -0
- package/dist/response-cache.error-B4D0zy9W.mjs +24 -0
- package/dist/response-cache.error-B4D0zy9W.mjs.map +1 -0
- package/dist/response-headers-BqA57S_X.mjs +158 -0
- package/dist/response-headers-BqA57S_X.mjs.map +1 -0
- package/dist/rolldown-runtime-D7D4PA-g.mjs +13 -0
- package/dist/route-cache-binding-CrLh8tB6.mjs +390 -0
- package/dist/route-cache-binding-CrLh8tB6.mjs.map +1 -0
- package/dist/route-metadata-QQhbed1i.mjs +17 -0
- package/dist/route-metadata-QQhbed1i.mjs.map +1 -0
- package/dist/{route-name-DGoBOfPg.mjs → route-name-BslSbmMP.mjs} +15 -11
- package/dist/route-name-BslSbmMP.mjs.map +1 -0
- package/dist/route-registration.service-COKBZTsn.mjs +1265 -0
- package/dist/route-registration.service-COKBZTsn.mjs.map +1 -0
- package/dist/{route-registry-BvLJisvK.mjs → route-registry-DFz9_-N6.mjs} +6 -6
- package/dist/{route-registry-BvLJisvK.mjs.map → route-registry-DFz9_-N6.mjs.map} +1 -1
- package/dist/router/index.d.mts +2 -2
- package/dist/router/index.mjs +16 -15
- package/dist/{router-resolver-sUV_jTrU.mjs → router-resolver-B-dMSMIG.mjs} +7 -3
- package/dist/router-resolver-B-dMSMIG.mjs.map +1 -0
- package/dist/{router-DwyqEXgf.mjs → router-wlsVkGkM.mjs} +5 -14
- package/dist/{router-DwyqEXgf.mjs.map → router-wlsVkGkM.mjs.map} +1 -1
- package/dist/seeder/index.d.mts +12 -13
- package/dist/seeder/index.d.mts.map +1 -1
- package/dist/seeder/index.mjs +4 -4
- package/dist/{seeder-BPGY5rUb.mjs → seeder-BrAk7XIj.mjs} +5 -6
- package/dist/{seeder-BPGY5rUb.mjs.map → seeder-BrAk7XIj.mjs.map} +1 -1
- package/dist/{seeder-registry-DEvCycsT.mjs → seeder-registry-Bo5BgLbC.mjs} +5 -6
- package/dist/{seeder-registry-DEvCycsT.mjs.map → seeder-registry-Bo5BgLbC.mjs.map} +1 -1
- package/dist/{seeder.module-CIwQbdN4.mjs → seeder.module-DOoVgTsK.mjs} +5 -5
- package/dist/{seeder.module-CIwQbdN4.mjs.map → seeder.module-DOoVgTsK.mjs.map} +1 -1
- package/dist/signed-url-DIU0sK_6.mjs.map +1 -1
- package/dist/storage/index.d.mts +63 -13
- package/dist/storage/index.d.mts.map +1 -1
- package/dist/storage/index.mjs +2 -2
- package/dist/storage/providers/index.d.mts +18 -16
- package/dist/storage/providers/index.d.mts.map +1 -1
- package/dist/storage/providers/index.mjs +1 -1
- package/dist/{storage-C30X81CS.mjs → storage-DBWVYMnn.mjs} +167 -49
- package/dist/storage-DBWVYMnn.mjs.map +1 -0
- package/dist/storage-provider.interface-CinHpjl1.d.mts +315 -0
- package/dist/storage-provider.interface-CinHpjl1.d.mts.map +1 -0
- package/dist/storage.error-Ao38Qdjx.mjs +7 -0
- package/dist/storage.error-Ao38Qdjx.mjs.map +1 -0
- package/dist/{stratal-D5j_I14G.d.mts → stratal-Bs1_E8GQ.d.mts} +13 -3
- package/dist/stratal-Bs1_E8GQ.d.mts.map +1 -0
- package/dist/{stratal-BL6FKUM_.mjs → stratal-CiwNpWy2.mjs} +56 -23
- package/dist/stratal-CiwNpWy2.mjs.map +1 -0
- package/dist/{tiered-cache.service-Dv3BhxxE.d.mts → tiered-cache.service-Bz8bbvyb.d.mts} +16 -3
- package/dist/tiered-cache.service-Bz8bbvyb.d.mts.map +1 -0
- package/dist/trailing-slash-2SctvePW.mjs.map +1 -1
- package/dist/types-CmV_9xBD.d.mts.map +1 -1
- package/dist/{uri-iwofWJ_T.mjs → uri-BrOq148R.mjs} +13 -9
- package/dist/{uri-iwofWJ_T.mjs.map → uri-BrOq148R.mjs.map} +1 -1
- package/dist/{usage-generator-DAWYasuP.mjs → usage-generator-BW7EcO-C.mjs} +3 -3
- package/dist/{usage-generator-DAWYasuP.mjs.map → usage-generator-BW7EcO-C.mjs.map} +1 -1
- package/dist/{zod-eKqqhZ5_.mjs → validation-CZ_B0aXY.mjs} +38 -17
- package/dist/validation-CZ_B0aXY.mjs.map +1 -0
- package/dist/{validation.context-CRvmrhq7.mjs → validation.context-CdbwQWIr.mjs} +2 -2
- package/dist/{validation.context-CRvmrhq7.mjs.map → validation.context-CdbwQWIr.mjs.map} +1 -1
- package/dist/{versioning.service-CCa2oYMJ.mjs → versioning.service-DnF_4Lnd.mjs} +5 -5
- package/dist/{versioning.service-CCa2oYMJ.mjs.map → versioning.service-DnF_4Lnd.mjs.map} +1 -1
- package/dist/websocket/index.d.mts +12 -13
- package/dist/websocket/index.d.mts.map +1 -1
- package/dist/websocket/index.mjs +1 -1
- package/dist/workers/index.d.mts +70 -7
- package/dist/workers/index.d.mts.map +1 -1
- package/dist/workers/index.mjs +72 -3
- package/dist/workers/index.mjs.map +1 -1
- package/dist/{zod-wecrEVAs.d.mts → zod-BGisqLs3.d.mts} +9 -16
- package/dist/zod-BGisqLs3.d.mts.map +1 -0
- package/package.json +33 -25
- package/dist/cache.service-uElmBtdS.d.mts.map +0 -1
- package/dist/chunk-BBjsoOtd.mjs +0 -27
- package/dist/command-BvmUAPPQ.mjs.map +0 -1
- package/dist/command-DoBD2Cwl.d.mts.map +0 -1
- package/dist/consumer-registry-D3iMTSdy.d.mts.map +0 -1
- package/dist/container-storage-BmOJ4_Na.mjs.map +0 -1
- package/dist/controller.decorator-YSTPQntu.mjs.map +0 -1
- package/dist/cron-job-NesZRk8F.d.mts.map +0 -1
- package/dist/di-D7qmrAir.mjs.map +0 -1
- package/dist/errors-C01O2T-n.mjs.map +0 -1
- package/dist/events-BhEQuT1X.mjs.map +0 -1
- package/dist/exception-context-D-kvney-.mjs.map +0 -1
- package/dist/guards-DALPXy3_.mjs.map +0 -1
- package/dist/hono-app-COAgmutc.mjs +0 -168
- package/dist/hono-app-COAgmutc.mjs.map +0 -1
- package/dist/http-method.decorator-BljM8BDj.mjs.map +0 -1
- package/dist/i18n.module-B2DvWUPa.mjs.map +0 -1
- package/dist/index-CNuFQSNj.d.mts.map +0 -1
- package/dist/index-DtBNIFuP.d.mts +0 -42
- package/dist/index-DtBNIFuP.d.mts.map +0 -1
- package/dist/index-HgOLNruQ.d.mts +0 -203
- package/dist/index-HgOLNruQ.d.mts.map +0 -1
- package/dist/index-uybm0bhQ.d.mts.map +0 -1
- package/dist/is-seeder-Gvh_AM71.mjs.map +0 -1
- package/dist/lazy-module-loader-M6YKudNL.d.mts.map +0 -1
- package/dist/locale-path.service-CH0CaxwH.mjs +0 -165
- package/dist/locale-path.service-CH0CaxwH.mjs.map +0 -1
- package/dist/metadata-DzzprcID.mjs +0 -39
- package/dist/metadata-DzzprcID.mjs.map +0 -1
- package/dist/module-registry-NxX5O0Qk.mjs.map +0 -1
- package/dist/openapi-CMwuCp31.mjs.map +0 -1
- package/dist/openapi-tools.service-BC5EC3R3.mjs.map +0 -1
- package/dist/openapi.service-2rvJBCEg.d.mts +0 -50
- package/dist/openapi.service-2rvJBCEg.d.mts.map +0 -1
- package/dist/quarry-registry-DRnV-DDa.d.mts.map +0 -1
- package/dist/quarry.module-CcGxU2dJ.mjs.map +0 -1
- package/dist/queue.module-CEs4_kEM.mjs.map +0 -1
- package/dist/r2-storage.provider-BoZmR6Ut.mjs.map +0 -1
- package/dist/route-name-DGoBOfPg.mjs.map +0 -1
- package/dist/route-registration.service-CDPQKpm4.mjs +0 -918
- package/dist/route-registration.service-CDPQKpm4.mjs.map +0 -1
- package/dist/router-resolver-sUV_jTrU.mjs.map +0 -1
- package/dist/storage-C30X81CS.mjs.map +0 -1
- package/dist/storage-provider.interface-ClUwxz4S.d.mts +0 -201
- package/dist/storage-provider.interface-ClUwxz4S.d.mts.map +0 -1
- package/dist/storage.error-BStXPmO4.mjs +0 -8
- package/dist/storage.error-BStXPmO4.mjs.map +0 -1
- package/dist/stratal-BL6FKUM_.mjs.map +0 -1
- package/dist/stratal-D5j_I14G.d.mts.map +0 -1
- package/dist/tiered-cache.service-Dv3BhxxE.d.mts.map +0 -1
- package/dist/validation-CpOjviyT.mjs +0 -49
- package/dist/validation-CpOjviyT.mjs.map +0 -1
- package/dist/zod-eKqqhZ5_.mjs.map +0 -1
- 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":"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"}
|
|
@@ -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"}
|
package/dist/quarry/index.d.mts
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import {
|
|
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-
|
|
4
|
-
import { t as QuarryRegistry } from "../quarry-registry-
|
|
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,
|
|
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":"
|
|
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"}
|
package/dist/quarry/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as isCommand } from "../is-command-
|
|
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-
|
|
5
|
-
import { t as generateUsage } from "../usage-generator-
|
|
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 };
|
package/dist/quarry/runner.d.mts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import {
|
|
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-
|
|
4
|
-
import { t as Stratal } from "../stratal-
|
|
5
|
-
import { t as LazyModuleLoader } from "../lazy-module-loader-
|
|
6
|
-
import { t as OpenAPIService } from "../openapi.service-
|
|
7
|
-
import { t as Command } from "../command-
|
|
8
|
-
import { t as QuarryRegistry } from "../quarry-registry-
|
|
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 {
|
|
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":"
|
|
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"}
|
package/dist/quarry/runner.mjs
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as
|
|
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-
|
|
5
|
-
import { n as Module } from "../module.decorator-
|
|
6
|
-
import { a as
|
|
7
|
-
import { t as Stratal } from "../stratal-
|
|
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-
|
|
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-
|
|
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(
|
|
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
|
-
|
|
546
|
-
const
|
|
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
|
-
|
|
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-
|
|
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");
|