@weavecode/weave 0.1.7 → 0.1.8
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/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/adapter/bun/serve-static.js +1 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/adapter/bun/websocket.js +1 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/context.js +1 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/helper/css/common.js +3 -5
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/hono-base.js +4 -10
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/hono.js +0 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/middleware/basic-auth/index.js +1 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/middleware/bearer-auth/index.js +1 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/middleware/csrf/index.js +2 -2
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/middleware/jwk/jwk.js +2 -2
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/middleware/jwt/jwt.js +2 -2
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/middleware/mount/index.js +4 -4
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/router/reg-exp-router/node.js +13 -11
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/router/reg-exp-router/prepared-router.js +4 -4
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/router/reg-exp-router/router.js +39 -51
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/router/reg-exp-router/trie.js +15 -5
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/utils/jwt/jwt.js +2 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/utils/mount.js +35 -0
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/utils/url.js +10 -0
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/validator/validator.js +1 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/context.js +1 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/helper/css/common.js +3 -5
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/hono-base.js +4 -10
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/hono.js +0 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/middleware/basic-auth/index.js +1 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/middleware/bearer-auth/index.js +1 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/middleware/csrf/index.js +2 -2
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/middleware/jwk/jwk.js +2 -2
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/middleware/jwt/jwt.js +2 -2
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/middleware/language/language.js +1 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/middleware/mount/index.js +4 -4
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/router/reg-exp-router/node.js +13 -11
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/router/reg-exp-router/prepared-router.js +5 -5
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/router/reg-exp-router/router.js +40 -52
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/router/reg-exp-router/trie.js +15 -5
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/types/middleware/mount/index.d.ts +1 -0
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/types/router/reg-exp-router/node.d.ts +3 -3
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/types/router/reg-exp-router/trie.d.ts +1 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/types/utils/mount.d.ts +4 -0
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/types/utils/url.d.ts +1 -0
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/utils/jwt/jwt.js +2 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/utils/mount.js +34 -0
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/utils/url.js +10 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/validator/validator.js +1 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/package.json +1 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jwks/remote.js +3 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/deflate.js +2 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +2 -1
- package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/package.json +1 -1
- package/node_modules/@weavecode/cli/dist/commands/msg.js +2 -2
- package/node_modules/@weavecode/cli/dist/i18n/dict/en.js +1 -1
- package/node_modules/@weavecode/cli/dist/i18n/dict/zh.js +1 -1
- package/node_modules/@weavecode/cli/dist/init/claudemd-gen.js +3 -3
- package/node_modules/@weavecode/cli/dist/statusline/ansi.js +1 -1
- package/node_modules/@weavecode/cli/dist/statusline/mock-input.js +1 -1
- package/node_modules/@weavecode/cli/dist/statusline/preview.js +2 -2
- package/node_modules/@weavecode/cli/package.json +5 -5
- package/node_modules/@weavecode/core/dist/harness.d.ts +78 -0
- package/node_modules/@weavecode/core/dist/harness.js +1 -1
- package/node_modules/@weavecode/core/dist/index.d.ts +1 -1
- package/node_modules/@weavecode/core/dist/index.js +1 -1
- package/node_modules/@weavecode/core/package.json +1 -1
- package/node_modules/@weavecode/harness/dist/claude/commands.d.ts +2 -0
- package/node_modules/@weavecode/harness/dist/claude/commands.js +3 -2
- package/node_modules/@weavecode/harness/dist/driver.d.ts +6 -0
- package/node_modules/@weavecode/harness/dist/zcode/assets.js +1 -1
- package/node_modules/@weavecode/harness/dist/zcode/capture.js +3 -3
- package/node_modules/@weavecode/harness/dist/zcode/mcp.js +2 -2
- package/node_modules/@weavecode/harness/package.json +2 -2
- package/node_modules/@weavecode/server/dist/daemon/dev-entry.js +1 -1
- package/node_modules/@weavecode/server/dist/daemon/hooks-routes.js +1 -1
- package/node_modules/@weavecode/server/dist/daemon/opener/launch.js +1 -1
- package/node_modules/@weavecode/server/dist/daemon/pet-seed.d.ts +6 -0
- package/node_modules/@weavecode/server/dist/daemon/pet-seed.js +1 -0
- package/node_modules/@weavecode/server/dist/daemon/pet-window.d.ts +17 -0
- package/node_modules/@weavecode/server/dist/daemon/pet-window.js +2 -0
- package/node_modules/@weavecode/server/dist/daemon/project-files.d.ts +1 -1
- package/node_modules/@weavecode/server/dist/daemon/project-files.js +2 -2
- package/node_modules/@weavecode/server/dist/daemon/routes/pets.d.ts +3 -0
- package/node_modules/@weavecode/server/dist/daemon/routes/pets.js +1 -0
- package/node_modules/@weavecode/server/dist/daemon/routes/settings-statusline.js +1 -1
- package/node_modules/@weavecode/server/dist/daemon/routes/visualizations.js +2 -1
- package/node_modules/@weavecode/server/dist/daemon/server.d.ts +2 -0
- package/node_modules/@weavecode/server/dist/daemon/settings.d.ts +21 -0
- package/node_modules/@weavecode/server/dist/daemon/settings.js +2 -2
- package/node_modules/@weavecode/server/dist/daemon/start.js +1 -1
- package/node_modules/@weavecode/server/dist/db/db.d.ts +4 -1
- package/node_modules/@weavecode/server/dist/db/db.js +2 -2
- package/node_modules/@weavecode/server/dist/db/paths.d.ts +4 -0
- package/node_modules/@weavecode/server/dist/db/paths.js +1 -1
- package/node_modules/@weavecode/server/dist/index.d.ts +1 -1
- package/node_modules/@weavecode/server/dist/index.js +1 -1
- package/node_modules/@weavecode/server/dist/repositories/hook-events.d.ts +6 -0
- package/node_modules/@weavecode/server/dist/repositories/hook-events.js +8 -5
- package/node_modules/@weavecode/server/dist/repositories/sessions.js +2 -2
- package/node_modules/@weavecode/server/package.json +4 -4
- package/node_modules/@weavecode/server/web/dist/assets/abnfDiagram-WEYOIA3C-t5OQjhuS.js +1 -0
- package/node_modules/@weavecode/server/web/dist/assets/{arc-CRZTRyjb.js → arc-De-uH_Q9.js} +1 -1
- package/node_modules/@weavecode/server/web/dist/assets/architectureDiagram-ZHVYKT53-ImPclD43.js +36 -0
- package/node_modules/@weavecode/server/web/dist/assets/{blockDiagram-RJAE7QA3-BIH8mSIZ.js → blockDiagram-RJAE7QA3-B5xEQs6X.js} +2 -2
- package/node_modules/@weavecode/server/web/dist/assets/{c4Diagram-XDPPPE54-5YoKWFOD.js → c4Diagram-XDPPPE54-DP8MjIgJ.js} +2 -2
- package/node_modules/@weavecode/server/web/dist/assets/channel-C0RGiobt.js +1 -0
- package/node_modules/@weavecode/server/web/dist/assets/{chunk-2E7WHVMD-B653kMXt.js → chunk-2E7WHVMD-C3UFIDyj.js} +1 -1
- package/node_modules/@weavecode/server/web/dist/assets/{chunk-2Q5K7J3B-f_A4_eDz.js → chunk-2Q5K7J3B-Bgw-3YfG.js} +1 -1
- package/node_modules/@weavecode/server/web/dist/assets/{chunk-4EMNKR2T-v5j5qNGj.js → chunk-4EMNKR2T-Dy_Wq9qn.js} +1 -1
- package/node_modules/@weavecode/server/web/dist/assets/chunk-55XCU76K-D32C0DXX.js +1 -0
- package/node_modules/@weavecode/server/web/dist/assets/{chunk-5VM5RSS4-BeROhLXN.js → chunk-5VM5RSS4-Dpmi-9Gi.js} +1 -1
- package/node_modules/@weavecode/server/web/dist/assets/{chunk-JWPE2WC7-D6dXb_jr.js → chunk-JWPE2WC7-CEYXaZDX.js} +1 -1
- package/node_modules/@weavecode/server/web/dist/assets/{chunk-VQ5W62QI-CnHdSEMi.js → chunk-VQ5W62QI-A616Pgzo.js} +1 -1
- package/node_modules/@weavecode/server/web/dist/assets/chunk-XXDRQBXY-CnxFMLWV.js +1 -0
- package/node_modules/@weavecode/server/web/dist/assets/chunk-ZCHMQSOR-BhjCTig8.js +2 -0
- package/node_modules/@weavecode/server/web/dist/assets/{classDiagram-v2-4MYWR3UA-DQe1b_k8.js → classDiagram-v2-4MYWR3UA-rzlq5tPv.js} +2 -2
- package/node_modules/@weavecode/server/web/dist/assets/cose-bilkent-JH36ORCC-CxWQXzj8.js +1 -0
- package/node_modules/@weavecode/server/web/dist/assets/{cynefin-EF2NZ3EQ-OZotFKUu.js → cynefin-EF2NZ3EQ-AFHjx2wU.js} +1 -1
- package/node_modules/@weavecode/server/web/dist/assets/cynefinDiagram-WF24UDRP-Bp_Oaf9U.js +62 -0
- package/node_modules/@weavecode/server/web/dist/assets/dagre-NK4GIZVX-7oUPIU35.js +4 -0
- package/node_modules/@weavecode/server/web/dist/assets/diagram-CBK3MWTC-D_rS_rSY.js +24 -0
- package/node_modules/@weavecode/server/web/dist/assets/diagram-I5XIIV2D-Duc_cKMb.js +24 -0
- package/node_modules/@weavecode/server/web/dist/assets/{diagram-ODIL2UCW-D9A6W8oB.js → diagram-ODIL2UCW-DA0XFVXm.js} +2 -2
- package/node_modules/@weavecode/server/web/dist/assets/{diagram-PFBEJUXE-PeI-eyu2.js → diagram-PFBEJUXE-D1U0Xhtt.js} +2 -2
- package/node_modules/@weavecode/server/web/dist/assets/diagram-RJA3I4VV-CbDFY871.js +41 -0
- package/node_modules/@weavecode/server/web/dist/assets/{diagram-TYUNFSNR-D5KieEw5.js → diagram-TYUNFSNR-jPg9AxQv.js} +2 -2
- package/node_modules/@weavecode/server/web/dist/assets/ebnfDiagram-V4P3TTPT-ZHfGTB0N.js +1 -0
- package/node_modules/@weavecode/server/web/dist/assets/{elk-QONTBCTQ-D3xrVg0U.js → elk-QONTBCTQ-C-ESJrUi.js} +3 -3
- package/node_modules/@weavecode/server/web/dist/assets/{erDiagram-KYQIGQAA-y_V1cor7.js → erDiagram-KYQIGQAA-DGK7TeHj.js} +2 -2
- package/node_modules/@weavecode/server/web/dist/assets/{flowDiagram-IUGLLWBU-BJ8Z0MkF.js → flowDiagram-IUGLLWBU-CVV4rL8v.js} +1 -1
- package/node_modules/@weavecode/server/web/dist/assets/ganttDiagram-R7GPNTJY-CuAwNvbm.js +292 -0
- package/node_modules/@weavecode/server/web/dist/assets/gitGraphDiagram-PDYL7XHY-D_15Wtf-.js +106 -0
- package/node_modules/@weavecode/server/web/dist/assets/infoDiagram-MVDRKAX5-ClqhbrCa.js +2 -0
- package/node_modules/@weavecode/server/web/dist/assets/{ishikawaDiagram-HPEHV2GE-ChEnND76.js → ishikawaDiagram-HPEHV2GE-CUJ891JX.js} +2 -2
- package/node_modules/@weavecode/server/web/dist/assets/{journeyDiagram-BOSHW7O7-DHcNtpYF.js → journeyDiagram-BOSHW7O7-B4skiMu-.js} +2 -2
- package/node_modules/@weavecode/server/web/dist/assets/{kanban-definition-FNSA4HC5-Dft7qpW5.js → kanban-definition-FNSA4HC5-UNGJR_y_.js} +2 -2
- package/node_modules/@weavecode/server/web/dist/assets/linear-BEB-UwbR.js +1 -0
- package/node_modules/@weavecode/server/web/dist/assets/main-B_0jS_Gz.js +1096 -0
- package/node_modules/@weavecode/server/web/dist/assets/main-Czzlavi4.css +11 -0
- package/node_modules/@weavecode/server/web/dist/assets/{mermaid.core-D_Dp_Kl2.js → mermaid.core-knGXJfjz.js} +4 -4
- package/node_modules/@weavecode/server/web/dist/assets/{mindmap-definition-6OY57UG3-CM6OAd_-.js → mindmap-definition-6OY57UG3-CEldbr3a.js} +2 -2
- package/node_modules/@weavecode/server/web/dist/assets/modulepreload-polyfill-B5Qt9EMX.js +1 -0
- package/node_modules/@weavecode/server/web/dist/assets/pegDiagram-ECIUJNBX-cNCkGLx3.js +1 -0
- package/node_modules/@weavecode/server/web/dist/assets/pet-DJCpIDM5.js +1 -0
- package/node_modules/@weavecode/server/web/dist/assets/pieDiagram-GNMPY74T-CfMEFiQD.js +39 -0
- package/node_modules/@weavecode/server/web/dist/assets/{quadrantDiagram-D57K4MC3-D8pQ_PU2.js → quadrantDiagram-D57K4MC3-knmi2rwP.js} +4 -4
- package/node_modules/@weavecode/server/web/dist/assets/railroadDiagram-Y72NRBL7-BJ7AzhEo.js +1 -0
- package/node_modules/@weavecode/server/web/dist/assets/{requirementDiagram-EQYSW5RA-C90DU5Ny.js → requirementDiagram-EQYSW5RA-Dte2LGQM.js} +2 -2
- package/node_modules/@weavecode/server/web/dist/assets/{sankeyDiagram-SY24JHO5-B_poYGgJ.js → sankeyDiagram-SY24JHO5-3noLaWgd.js} +2 -2
- package/node_modules/@weavecode/server/web/dist/assets/{sequenceDiagram-BLEHNHQU-DDW7b2Dn.js → sequenceDiagram-BLEHNHQU-CclOWTTc.js} +2 -2
- package/node_modules/@weavecode/server/web/dist/assets/sizeCapture-INFHLROL-B82sbLhA.js +1 -0
- package/node_modules/@weavecode/server/web/dist/assets/{stateDiagram-v2-A6IESKWZ-CkVMAyxG.js → stateDiagram-v2-A6IESKWZ-BXfVDwSN.js} +2 -2
- package/node_modules/@weavecode/server/web/dist/assets/swimlanes-B3ENRKFQ-D4lKZaeV.js +1 -0
- package/node_modules/@weavecode/server/web/dist/assets/swimlanesDiagram-AYQRV4AK-DbdFh_d6.js +8 -0
- package/node_modules/@weavecode/server/web/dist/assets/{timeline-definition-JXYKGLGB-DnhkRGLb.js → timeline-definition-JXYKGLGB-D6H6zP5b.js} +2 -2
- package/node_modules/@weavecode/server/web/dist/assets/{usecaseDiagram-WPOLBNNX-_TdIjC6Z.js → usecaseDiagram-WPOLBNNX-D2J2bKo_.js} +2 -2
- package/node_modules/@weavecode/server/web/dist/assets/{vennDiagram-Q3Y3IDCW-FzgsymXB.js → vennDiagram-Q3Y3IDCW-pdRbIkpB.js} +2 -2
- package/node_modules/@weavecode/server/web/dist/assets/{wardleyDiagram-IVAIDKWA-BwqimStC.js → wardleyDiagram-IVAIDKWA-Cyd2QPMf.js} +2 -2
- package/node_modules/@weavecode/server/web/dist/assets/{xychartDiagram-4URNHDU4-CFjjVPIV.js → xychartDiagram-4URNHDU4-Bd4BkwVM.js} +2 -2
- package/node_modules/@weavecode/server/web/dist/index.html +3 -2
- package/node_modules/@weavecode/server/web/dist/pet.html +60 -0
- package/node_modules/@weavecode/templates/dist/index.d.ts +2 -0
- package/node_modules/@weavecode/templates/dist/index.js +1 -1
- package/node_modules/@weavecode/templates/dist/resources/pets/weave-spider/pet.json +7 -0
- package/node_modules/@weavecode/templates/dist/resources/pets/weave-spider/spritesheet.png +0 -0
- package/node_modules/@weavecode/templates/dist/resources/weave-market/.claude-plugin/marketplace.json +6 -0
- package/node_modules/@weavecode/templates/dist/resources/weave-market/plugins/core-skills/weave-pet-hatcher/.claude-plugin/plugin.json +8 -0
- package/node_modules/@weavecode/templates/dist/resources/weave-market/plugins/core-skills/weave-pet-hatcher/skills/weave-pet-hatcher/SKILL.md +121 -0
- package/node_modules/@weavecode/templates/dist/resources/weave-market/plugins/core-skills/weave-pet-hatcher/skills/weave-pet-hatcher/scripts/assemble-pet.mjs +308 -0
- package/node_modules/@weavecode/templates/dist/resources/weave-market/plugins/core-skills/weave-pet-hatcher/weave.json +4 -0
- package/node_modules/@weavecode/templates/package.json +2 -2
- package/package.json +11 -7
- package/scripts/preinstall.mjs +70 -0
- package/node_modules/@weavecode/server/web/dist/assets/abnfDiagram-WEYOIA3C-DDeQkTf5.js +0 -1
- package/node_modules/@weavecode/server/web/dist/assets/architectureDiagram-ZHVYKT53-Dj54DE3O.js +0 -36
- package/node_modules/@weavecode/server/web/dist/assets/channel-5VM93AJ8.js +0 -1
- package/node_modules/@weavecode/server/web/dist/assets/chunk-55XCU76K-CgEqeP7j.js +0 -1
- package/node_modules/@weavecode/server/web/dist/assets/chunk-XXDRQBXY-BkG_e6PE.js +0 -1
- package/node_modules/@weavecode/server/web/dist/assets/chunk-ZCHMQSOR-DxR-fxzs.js +0 -2
- package/node_modules/@weavecode/server/web/dist/assets/cose-bilkent-JH36ORCC-DThrA8S5.js +0 -1
- package/node_modules/@weavecode/server/web/dist/assets/cynefinDiagram-WF24UDRP-DJjq2hfT.js +0 -62
- package/node_modules/@weavecode/server/web/dist/assets/dagre-NK4GIZVX-C2vH93HT.js +0 -4
- package/node_modules/@weavecode/server/web/dist/assets/diagram-CBK3MWTC-DrF_ScM-.js +0 -24
- package/node_modules/@weavecode/server/web/dist/assets/diagram-I5XIIV2D-D1qoUJ4t.js +0 -24
- package/node_modules/@weavecode/server/web/dist/assets/diagram-RJA3I4VV-DITY0Rd8.js +0 -41
- package/node_modules/@weavecode/server/web/dist/assets/ebnfDiagram-V4P3TTPT-DDylK-gz.js +0 -1
- package/node_modules/@weavecode/server/web/dist/assets/ganttDiagram-R7GPNTJY-C0q-CS1T.js +0 -292
- package/node_modules/@weavecode/server/web/dist/assets/gitGraphDiagram-PDYL7XHY-BYTComiB.js +0 -106
- package/node_modules/@weavecode/server/web/dist/assets/index-BKxAxaVG.js +0 -1091
- package/node_modules/@weavecode/server/web/dist/assets/index-C0Sd4MH7.css +0 -11
- package/node_modules/@weavecode/server/web/dist/assets/infoDiagram-MVDRKAX5-DtixgjLP.js +0 -2
- package/node_modules/@weavecode/server/web/dist/assets/linear-DEo11t-X.js +0 -1
- package/node_modules/@weavecode/server/web/dist/assets/pegDiagram-ECIUJNBX-_QkY0h8Q.js +0 -1
- package/node_modules/@weavecode/server/web/dist/assets/pieDiagram-GNMPY74T-ZGr5vtDj.js +0 -39
- package/node_modules/@weavecode/server/web/dist/assets/railroadDiagram-Y72NRBL7-DUIo-WmA.js +0 -1
- package/node_modules/@weavecode/server/web/dist/assets/sizeCapture-INFHLROL-CmKoqX6K.js +0 -1
- package/node_modules/@weavecode/server/web/dist/assets/swimlanes-B3ENRKFQ-Dm_Omzky.js +0 -1
- package/node_modules/@weavecode/server/web/dist/assets/swimlanesDiagram-AYQRV4AK-Bjj8ZA4d.js +0 -8
package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/middleware/basic-auth/index.js
CHANGED
|
@@ -80,7 +80,7 @@ const basicAuth = (options, ...users) => {
|
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
const status = 401;
|
|
83
|
-
const headers = { "WWW-Authenticate": "Basic realm=\"" + options.realm?.replace(/"/g, "
|
|
83
|
+
const headers = { "WWW-Authenticate": "Basic realm=\"" + options.realm?.replace(/[\\"]/g, "\\$&") + "\"" };
|
|
84
84
|
const responseMessage = typeof options.invalidUserMessage === "function" ? await options.invalidUserMessage(ctx) : options.invalidUserMessage;
|
|
85
85
|
const res = typeof responseMessage === "string" ? new Response(responseMessage, {
|
|
86
86
|
status,
|
|
@@ -44,7 +44,7 @@ const bearerAuth = (options) => {
|
|
|
44
44
|
if (!("token" in options || "verifyToken" in options)) throw new Error("bearer auth middleware requires options for \"token\" or \"verifyToken\"");
|
|
45
45
|
if (!options.realm) options.realm = "";
|
|
46
46
|
if (options.prefix === void 0) options.prefix = PREFIX;
|
|
47
|
-
const realm = options.realm?.replace(/"/g, "
|
|
47
|
+
const realm = options.realm?.replace(/[\\"]/g, "\\$&");
|
|
48
48
|
const prefix = options.prefix;
|
|
49
49
|
const tokenRegexp = new RegExp(`^${TOKEN_STRINGS}$`);
|
|
50
50
|
const wwwAuthenticatePrefix = prefix === "" ? "" : `${prefix} `;
|
package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/middleware/csrf/index.js
CHANGED
|
@@ -8,7 +8,7 @@ const secFetchSiteValues = [
|
|
|
8
8
|
];
|
|
9
9
|
const isSecFetchSite = (value) => secFetchSiteValues.includes(value);
|
|
10
10
|
const isSafeMethodRe = /^(GET|HEAD|OPTIONS)$/;
|
|
11
|
-
const
|
|
11
|
+
const isCsrfContentTypeRe = /^\b(application\/x-www-form-urlencoded|multipart\/form-data|text\/(?:plain|ping))\b/i;
|
|
12
12
|
/**
|
|
13
13
|
* CSRF Protection Middleware for Hono.
|
|
14
14
|
*
|
|
@@ -94,7 +94,7 @@ const csrf = (options) => {
|
|
|
94
94
|
return await secFetchSiteHandler(secFetchSite, c);
|
|
95
95
|
};
|
|
96
96
|
return async function csrf(c, next) {
|
|
97
|
-
if (!isSafeMethodRe.test(c.req.method) &&
|
|
97
|
+
if (!isSafeMethodRe.test(c.req.method) && isCsrfContentTypeRe.test(c.req.header("content-type") || "text/plain") && !await isAllowedSecFetchSite(c.req.header("sec-fetch-site"), c) && !await isAllowedOrigin(c.req.header("origin"), c)) {
|
|
98
98
|
const res = new Response("Forbidden", { status: 403 });
|
|
99
99
|
throw new HTTPException(403, { res });
|
|
100
100
|
}
|
|
@@ -109,8 +109,8 @@ const jwk = (options, init) => {
|
|
|
109
109
|
};
|
|
110
110
|
};
|
|
111
111
|
function unauthorizedResponse(opts) {
|
|
112
|
-
const realm = (opts.realm ?? opts.ctx.req.url).replace(/"/g, "
|
|
113
|
-
const errDescription = opts.errDescription.replace(/"/g, "
|
|
112
|
+
const realm = (opts.realm ?? opts.ctx.req.url).replace(/[\\"]/g, "\\$&");
|
|
113
|
+
const errDescription = opts.errDescription.replace(/[\\"]/g, "\\$&");
|
|
114
114
|
return new Response("Unauthorized", {
|
|
115
115
|
status: 401,
|
|
116
116
|
statusText: opts.statusText,
|
|
@@ -103,8 +103,8 @@ const jwt = (options) => {
|
|
|
103
103
|
};
|
|
104
104
|
};
|
|
105
105
|
function unauthorizedResponse(opts) {
|
|
106
|
-
const realm = (opts.realm ?? opts.ctx.req.url).replace(/"/g, "
|
|
107
|
-
const errDescription = opts.errDescription.replace(/"/g, "
|
|
106
|
+
const realm = (opts.realm ?? opts.ctx.req.url).replace(/[\\"]/g, "\\$&");
|
|
107
|
+
const errDescription = opts.errDescription.replace(/[\\"]/g, "\\$&");
|
|
108
108
|
return new Response("Unauthorized", {
|
|
109
109
|
status: 401,
|
|
110
110
|
statusText: opts.statusText,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { getCookie, setCookie } from "../../helper/cookie/index.js";
|
|
2
1
|
import { parseAccept } from "../../utils/accept.js";
|
|
2
|
+
import { getCookie, setCookie } from "../../helper/cookie/index.js";
|
|
3
3
|
//#region src/middleware/language/language.ts
|
|
4
4
|
const DEFAULT_OPTIONS = {
|
|
5
5
|
order: [
|
package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/middleware/mount/index.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
+
import { createMountedRequest } from "../../utils/mount.js";
|
|
1
2
|
import { routePath } from "../../helper/route/index.js";
|
|
2
3
|
//#region src/middleware/mount/index.ts
|
|
3
4
|
const defaultReplaceRequest = (c) => {
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
url.pathname = c.req.path.slice(pathPrefix.length) || "/";
|
|
7
|
-
return new Request(url, c.req.raw);
|
|
5
|
+
const path = routePath(c);
|
|
6
|
+
return createMountedRequest(c, path.replace(/\/?\*$/, ""), path);
|
|
8
7
|
};
|
|
9
8
|
const defaultGetOptions = (c) => {
|
|
10
9
|
let executionContext = void 0;
|
|
@@ -21,6 +20,7 @@ const defaultGetOptions = (c) => {
|
|
|
21
20
|
* @param {Function} applicationHandler - other Request Handler
|
|
22
21
|
* @param {MountOptions} [options] - options of `mount()`
|
|
23
22
|
* @returns {MiddlewareHandler} handler to register with `app.all()`
|
|
23
|
+
* @throws {Error} If the route ends with a wildcard inside a segment (e.g. `/assets*`), or automatic request rewriting encounters duplicate path parameter names.
|
|
24
24
|
*
|
|
25
25
|
* @example
|
|
26
26
|
* ```ts
|
package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/router/reg-exp-router/node.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createNullObject } from "../utils.js";
|
|
2
2
|
//#region src/router/reg-exp-router/node.ts
|
|
3
3
|
const LABEL_REG_EXP_STR = "[^/]+";
|
|
4
|
-
const ONLY_WILDCARD_REG_EXP_STR = "
|
|
5
|
-
const TAIL_WILDCARD_REG_EXP_STR = "(
|
|
4
|
+
const ONLY_WILDCARD_REG_EXP_STR = "[^]*";
|
|
5
|
+
const TAIL_WILDCARD_REG_EXP_STR = "(?:|/[^]*)";
|
|
6
6
|
const PATH_ERROR = Symbol();
|
|
7
7
|
const regExpMetaChars = /* @__PURE__ */ new Set(".\\+*[^]$()");
|
|
8
8
|
/**
|
|
@@ -15,8 +15,8 @@ const regExpMetaChars = /* @__PURE__ */ new Set(".\\+*[^]$()");
|
|
|
15
15
|
function compareKey(a, b) {
|
|
16
16
|
if (a.length === 1) return b.length === 1 ? a < b ? -1 : 1 : -1;
|
|
17
17
|
if (b.length === 1) return 1;
|
|
18
|
-
if (a === "
|
|
19
|
-
else if (b === "
|
|
18
|
+
if (a === "[^]*" || a === "(?:|/[^]*)") return b === "[^]*" ? -1 : 1;
|
|
19
|
+
else if (b === "[^]*" || b === "(?:|/[^]*)") return -1;
|
|
20
20
|
if (a === "[^/]+") return 1;
|
|
21
21
|
else if (b === "[^/]+") return -1;
|
|
22
22
|
return a.length === b.length ? a < b ? -1 : 1 : b.length - a.length;
|
|
@@ -25,14 +25,14 @@ var Node = class Node {
|
|
|
25
25
|
#index;
|
|
26
26
|
#varIndex;
|
|
27
27
|
#children = createNullObject();
|
|
28
|
-
insert(tokens, index, paramMap, context,
|
|
28
|
+
insert(tokens, index, paramMap, context, keys) {
|
|
29
29
|
let node = this;
|
|
30
30
|
for (let i = 0, len = tokens.length; i < len; i++) {
|
|
31
31
|
const token = tokens[i];
|
|
32
32
|
const pattern = token.length === 1 ? token === "*" ? i === len - 1 ? [
|
|
33
33
|
"",
|
|
34
34
|
"",
|
|
35
|
-
|
|
35
|
+
ONLY_WILDCARD_REG_EXP_STR
|
|
36
36
|
] : [
|
|
37
37
|
"",
|
|
38
38
|
"",
|
|
@@ -47,15 +47,16 @@ var Node = class Node {
|
|
|
47
47
|
const name = pattern[1];
|
|
48
48
|
let regexpStr = pattern[2] || "[^/]+";
|
|
49
49
|
if (name && pattern[2]) {
|
|
50
|
-
if (regexpStr
|
|
50
|
+
if (new RegExp(regexpStr).test("")) throw PATH_ERROR;
|
|
51
51
|
regexpStr = regexpStr.replace(/^\((?!\?:)(?=[^)]+\)$)/, "(?:");
|
|
52
52
|
if (/\((?!\?:)/.test(regexpStr)) throw PATH_ERROR;
|
|
53
53
|
if (regexpStr.length === 1 && regExpMetaChars.has(regexpStr)) throw PATH_ERROR;
|
|
54
54
|
}
|
|
55
|
+
keys.push(regexpStr);
|
|
55
56
|
nextNode = node.#children[regexpStr];
|
|
56
57
|
if (!nextNode) {
|
|
57
|
-
if (regexpStr !== "
|
|
58
|
-
for (const k in node.#children) if ((regexpStr.length > 1 || k.length > 1) && k !== "
|
|
58
|
+
if (regexpStr !== "[^]*" && regexpStr !== "(?:|/[^]*)") {
|
|
59
|
+
for (const k in node.#children) if ((regexpStr.length > 1 || k.length > 1) && k !== "[^]*" && k !== "(?:|/[^]*)") throw PATH_ERROR;
|
|
59
60
|
}
|
|
60
61
|
nextNode = node.#children[regexpStr] = new Node();
|
|
61
62
|
}
|
|
@@ -64,16 +65,17 @@ var Node = class Node {
|
|
|
64
65
|
paramMap.push([name, nextNode.#varIndex]);
|
|
65
66
|
}
|
|
66
67
|
} else {
|
|
68
|
+
keys.push(token);
|
|
67
69
|
nextNode = node.#children[token];
|
|
68
70
|
if (!nextNode) {
|
|
69
|
-
for (const k in node.#children) if (k.length > 1 && k !== "
|
|
71
|
+
for (const k in node.#children) if (k.length > 1 && k !== "[^]*" && k !== "(?:|/[^]*)") throw PATH_ERROR;
|
|
70
72
|
nextNode = node.#children[token] = new Node();
|
|
71
73
|
}
|
|
72
74
|
}
|
|
73
75
|
node = nextNode;
|
|
74
76
|
}
|
|
75
77
|
if (node.#index !== void 0) throw PATH_ERROR;
|
|
76
|
-
node.#index =
|
|
78
|
+
node.#index = index;
|
|
77
79
|
}
|
|
78
80
|
buildRegExpStr() {
|
|
79
81
|
const strList = Object.keys(this.#children).sort(compareKey).map((k) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "../../router.js";
|
|
2
|
-
import {
|
|
2
|
+
import { match } from "./matcher.js";
|
|
3
3
|
import { RegExpRouter } from "./router.js";
|
|
4
4
|
//#region src/router/reg-exp-router/prepared-router.ts
|
|
5
5
|
var PreparedRegExpRouter = class {
|
|
@@ -27,7 +27,7 @@ var PreparedRegExpRouter = class {
|
|
|
27
27
|
if (!this.#matchers[method]) {
|
|
28
28
|
const all = this.#matchers["ALL"];
|
|
29
29
|
const staticMap = {};
|
|
30
|
-
for (const key in all[2]) staticMap[key] = [all[2][key][0].slice(),
|
|
30
|
+
for (const key in all[2]) staticMap[key] = [all[2][key][0].slice(), all[2][key][1]];
|
|
31
31
|
this.#matchers[method] = [
|
|
32
32
|
all[0],
|
|
33
33
|
all[1].map((list) => Array.isArray(list) ? list.slice() : 0),
|
|
@@ -71,7 +71,7 @@ const buildInitParams = ({ paths }) => {
|
|
|
71
71
|
...map
|
|
72
72
|
};
|
|
73
73
|
else relocateMap[path] = [[[], map]];
|
|
74
|
-
if (relocateMap[path][0][0].
|
|
74
|
+
if (!relocateMap[path][0][0].includes(i)) relocateMap[path][0][0].push(i);
|
|
75
75
|
}
|
|
76
76
|
});
|
|
77
77
|
});
|
|
@@ -79,7 +79,7 @@ const buildInitParams = ({ paths }) => {
|
|
|
79
79
|
if (p === path) {
|
|
80
80
|
relocateMap[path] ||= [[[]]];
|
|
81
81
|
const value = path2 === path ? "" : path2;
|
|
82
|
-
if (relocateMap[path][0][0].
|
|
82
|
+
if (!relocateMap[path][0][0].includes(value)) relocateMap[path][0][0].push(value);
|
|
83
83
|
}
|
|
84
84
|
});
|
|
85
85
|
}
|
|
@@ -88,7 +88,7 @@ const buildInitParams = ({ paths }) => {
|
|
|
88
88
|
return [matchers, relocateMap];
|
|
89
89
|
};
|
|
90
90
|
const serializeInitParams = ([matchers, relocateMap]) => {
|
|
91
|
-
return `[${JSON.stringify(matchers, (_, value) => value instanceof RegExp ? `##${value
|
|
91
|
+
return `[${JSON.stringify(matchers, (_, value) => value instanceof RegExp || value === void 0 ? `##${value}##` : value).replace(/"##(.+?)##"/g, (_, str) => str.replace(/\\\\/g, "\\"))},${JSON.stringify(relocateMap)}]`;
|
|
92
92
|
};
|
|
93
93
|
//#endregion
|
|
94
94
|
export { PreparedRegExpRouter, buildInitParams, serializeInitParams };
|
|
@@ -2,24 +2,24 @@ import { checkOptionalParameter } from "../../utils/url.js";
|
|
|
2
2
|
import { MESSAGE_MATCHER_IS_ALREADY_BUILT, UnsupportedPathError } from "../../router.js";
|
|
3
3
|
import { createNullObject } from "../utils.js";
|
|
4
4
|
import { emptyParam, match } from "./matcher.js";
|
|
5
|
-
import {
|
|
5
|
+
import { PATH_ERROR } from "./node.js";
|
|
6
6
|
import { Trie } from "./trie.js";
|
|
7
7
|
//#region src/router/reg-exp-router/router.ts
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
return
|
|
8
|
+
function endsWithWildcard(keys) {
|
|
9
|
+
const tail = keys[keys.length - 1];
|
|
10
|
+
return tail === "[^]*" || tail === "(?:|/[^]*)";
|
|
11
11
|
}
|
|
12
|
-
function
|
|
13
|
-
|
|
12
|
+
function covers(wildcard, target) {
|
|
13
|
+
const last = wildcard.length - 1;
|
|
14
|
+
for (let i = 0; i < last; i++) if (wildcard[i] !== target[i]) return false;
|
|
15
|
+
return wildcard[last] === "[^]*" || target.length === last || target[last] === "/";
|
|
14
16
|
}
|
|
15
17
|
var RegExpRouter = class {
|
|
16
18
|
name = "RegExpRouter";
|
|
17
|
-
#
|
|
18
|
-
#routes;
|
|
19
|
+
#handlers;
|
|
19
20
|
#tries;
|
|
20
21
|
constructor() {
|
|
21
|
-
this.#
|
|
22
|
-
this.#routes = { ["ALL"]: createNullObject() };
|
|
22
|
+
this.#handlers = { ["ALL"]: [] };
|
|
23
23
|
this.#tries = { ["ALL"]: new Trie() };
|
|
24
24
|
}
|
|
25
25
|
#insertPath(method, path) {
|
|
@@ -30,65 +30,53 @@ var RegExpRouter = class {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
add(method, path, handler) {
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
if (!
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
for (const p in handlerMap["ALL"]) {
|
|
41
|
-
handlerMap[method][p] = [...handlerMap["ALL"][p]];
|
|
42
|
-
this.#insertPath(method, p);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
33
|
+
const handlers = this.#handlers;
|
|
34
|
+
if (!handlers) throw new Error(MESSAGE_MATCHER_IS_ALREADY_BUILT);
|
|
35
|
+
const tries = this.#tries;
|
|
36
|
+
if (!handlers[method]) {
|
|
37
|
+
tries[method] = new Trie();
|
|
38
|
+
handlers[method] = [...handlers["ALL"]];
|
|
39
|
+
for (const p in tries["ALL"].paths) this.#insertPath(method, p);
|
|
45
40
|
}
|
|
46
41
|
if (path === "/*") path = "*";
|
|
47
|
-
const methods = method === "ALL" ? Object.keys(
|
|
48
|
-
if (/\*$/.test(path)) {
|
|
49
|
-
const re = buildWildcardRegExp(path);
|
|
50
|
-
for (const m of methods) if (!middleware[m][path]) {
|
|
51
|
-
this.#insertPath(m, path);
|
|
52
|
-
middleware[m][path] = findMiddleware(middleware[m], path) || findMiddleware(middleware["ALL"], path) || [];
|
|
53
|
-
}
|
|
54
|
-
for (const handlerMap of [middleware, routes]) for (const m of methods) for (const p in handlerMap[m]) re.test(p) && handlerMap[m][p].push([handler, path]);
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
42
|
+
const methods = method === "ALL" ? Object.keys(handlers) : [method];
|
|
57
43
|
const paths = checkOptionalParameter(path) || [path];
|
|
58
44
|
for (const path of paths) for (const m of methods) {
|
|
59
|
-
if (!
|
|
60
|
-
|
|
61
|
-
routes[m][path] = findMiddleware(middleware[m], path) || findMiddleware(middleware["ALL"], path) || [];
|
|
62
|
-
}
|
|
63
|
-
routes[m][path].push([handler, path]);
|
|
45
|
+
if (!tries[m].paths[path]) this.#insertPath(m, path);
|
|
46
|
+
handlers[m].push([handler, path]);
|
|
64
47
|
}
|
|
65
48
|
}
|
|
66
49
|
match = match;
|
|
67
50
|
buildAllMatchers() {
|
|
68
51
|
const matchers = createNullObject();
|
|
69
|
-
for (const method of Object.keys(this.#
|
|
70
|
-
this.#
|
|
71
|
-
wildcardRegExpCache = createNullObject();
|
|
52
|
+
for (const method of Object.keys(this.#handlers)) matchers[method] = this.#buildMatcher(method);
|
|
53
|
+
this.#handlers = this.#tries = void 0;
|
|
72
54
|
return matchers;
|
|
73
55
|
}
|
|
74
56
|
#buildMatcher(method) {
|
|
75
|
-
const
|
|
76
|
-
const routes = this.#routes[method];
|
|
57
|
+
const handlers = this.#handlers[method];
|
|
77
58
|
const trie = this.#tries[method];
|
|
78
59
|
const staticMap = createNullObject();
|
|
79
60
|
const handlerData = [];
|
|
80
61
|
const [regexp, indexReplacementMap, paramReplacementMap] = trie.buildRegExp();
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
continue;
|
|
87
|
-
}
|
|
88
|
-
handlerData[pathData[0]] = handlers.map(([h, handlerPath]) => [h, trie.paths[handlerPath][1].reduceRight((map, [key], i) => {
|
|
89
|
-
map[key] = paramReplacementMap[pathData[1][i][1]];
|
|
62
|
+
const own = createNullObject();
|
|
63
|
+
const entries = handlers.map(([h, p], i) => {
|
|
64
|
+
(own[p] ??= []).push(i);
|
|
65
|
+
return [h, trie.paths[p][1].reduceRight((map, [key, varIndex]) => {
|
|
66
|
+
map[key] = paramReplacementMap[varIndex];
|
|
90
67
|
return map;
|
|
91
|
-
}, createNullObject())]
|
|
68
|
+
}, createNullObject())];
|
|
69
|
+
});
|
|
70
|
+
const wildcards = Object.keys(own).filter((p) => endsWithWildcard(trie.paths[p][2]));
|
|
71
|
+
for (const path in trie.paths) {
|
|
72
|
+
const [index, , keys] = trie.paths[path];
|
|
73
|
+
const indexes = [...own[path]];
|
|
74
|
+
for (const p of wildcards) if (p !== path && covers(trie.paths[p][2], keys)) indexes.push(...own[p]);
|
|
75
|
+
const data = indexes.sort((a, b) => a - b).map((i) => entries[i]);
|
|
76
|
+
if (index === -1) {
|
|
77
|
+
const last = Math.max(-1, ...data.flatMap(([, map]) => Object.values(map)));
|
|
78
|
+
staticMap[path] = [data, last === -1 ? emptyParam : path.match(regexp).slice(0, last + 1)];
|
|
79
|
+
} else handlerData[index] = data;
|
|
92
80
|
}
|
|
93
81
|
return [
|
|
94
82
|
regexp,
|
package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/router/reg-exp-router/trie.js
CHANGED
|
@@ -7,8 +7,14 @@ var Trie = class {
|
|
|
7
7
|
#index = 0;
|
|
8
8
|
paths = createNullObject();
|
|
9
9
|
insert(path, isStatic) {
|
|
10
|
+
const keys = [];
|
|
10
11
|
if (isStatic) {
|
|
11
|
-
this.#root.insert(path.split(""),
|
|
12
|
+
this.#root.insert(path.split(""), -1, [], this.#context, keys);
|
|
13
|
+
this.paths[path] = [
|
|
14
|
+
-1,
|
|
15
|
+
[],
|
|
16
|
+
keys
|
|
17
|
+
];
|
|
12
18
|
return;
|
|
13
19
|
}
|
|
14
20
|
const paramAssoc = [];
|
|
@@ -16,7 +22,7 @@ var Trie = class {
|
|
|
16
22
|
let markedPath = path;
|
|
17
23
|
for (let i = 0;;) {
|
|
18
24
|
let replaced = false;
|
|
19
|
-
markedPath = markedPath.replace(/\{[^}]+\}/g, (m) => {
|
|
25
|
+
markedPath = markedPath.replace(/\{(?:\{[\d,]+\}|[^}])+\}/g, (m) => {
|
|
20
26
|
const mark = `@\\${i}`;
|
|
21
27
|
groups[i] = [mark, m];
|
|
22
28
|
i++;
|
|
@@ -30,7 +36,7 @@ var Trie = class {
|
|
|
30
36
|
* - /* wildcard
|
|
31
37
|
* - character
|
|
32
38
|
*/
|
|
33
|
-
const tokens = markedPath.match(/(?::[^\/]+)|(?:\/\*$)|./
|
|
39
|
+
const tokens = markedPath.match(/(?::[^\/]+)|(?:\/\*$)|./gs) || [];
|
|
34
40
|
for (let i = groups.length - 1; i >= 0; i--) {
|
|
35
41
|
const [mark] = groups[i];
|
|
36
42
|
for (let j = tokens.length - 1; j >= 0; j--) if (tokens[j].indexOf(mark) !== -1) {
|
|
@@ -38,8 +44,12 @@ var Trie = class {
|
|
|
38
44
|
break;
|
|
39
45
|
}
|
|
40
46
|
}
|
|
41
|
-
this.#root.insert(tokens, this.#index, paramAssoc, this.#context,
|
|
42
|
-
this.paths[path] = [
|
|
47
|
+
this.#root.insert(tokens, this.#index, paramAssoc, this.#context, keys);
|
|
48
|
+
this.paths[path] = [
|
|
49
|
+
this.#index++,
|
|
50
|
+
paramAssoc,
|
|
51
|
+
keys
|
|
52
|
+
];
|
|
43
53
|
}
|
|
44
54
|
buildRegExp() {
|
|
45
55
|
let regexp = this.#root.buildRegExpStr();
|
|
@@ -16,6 +16,7 @@ type MountOptions = MountOptionHandler | {
|
|
|
16
16
|
* @param {Function} applicationHandler - other Request Handler
|
|
17
17
|
* @param {MountOptions} [options] - options of `mount()`
|
|
18
18
|
* @returns {MiddlewareHandler} handler to register with `app.all()`
|
|
19
|
+
* @throws {Error} If the route ends with a wildcard inside a segment (e.g. `/assets*`), or automatic request rewriting encounters duplicate path parameter names.
|
|
19
20
|
*
|
|
20
21
|
* @example
|
|
21
22
|
* ```ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
//#region src/router/reg-exp-router/node.d.ts
|
|
2
2
|
export declare const LABEL_REG_EXP_STR = "[^/]+";
|
|
3
|
-
export declare const ONLY_WILDCARD_REG_EXP_STR = "
|
|
4
|
-
export declare const TAIL_WILDCARD_REG_EXP_STR = "(
|
|
3
|
+
export declare const ONLY_WILDCARD_REG_EXP_STR = "[^]*";
|
|
4
|
+
export declare const TAIL_WILDCARD_REG_EXP_STR = "(?:|/[^]*)";
|
|
5
5
|
export declare const PATH_ERROR: unique symbol;
|
|
6
6
|
export type ParamAssocArray = [string, number][];
|
|
7
7
|
export interface Context {
|
|
@@ -9,7 +9,7 @@ export interface Context {
|
|
|
9
9
|
}
|
|
10
10
|
export declare class Node {
|
|
11
11
|
|
|
12
|
-
insert(tokens: readonly string[], index: number, paramMap: ParamAssocArray, context: Context,
|
|
12
|
+
insert(tokens: readonly string[], index: number, paramMap: ParamAssocArray, context: Context, keys: string[]): void;
|
|
13
13
|
buildRegExpStr(): string;
|
|
14
14
|
}
|
|
15
15
|
//#endregion
|
|
@@ -3,7 +3,7 @@ import { ParamAssocArray } from "./node.js";
|
|
|
3
3
|
export type ReplacementMap = number[];
|
|
4
4
|
export declare class Trie {
|
|
5
5
|
|
|
6
|
-
paths: Record<string, [number, ParamAssocArray]>;
|
|
6
|
+
paths: Record<string, [number, ParamAssocArray, string[]]>;
|
|
7
7
|
insert(path: string, isStatic: boolean): void;
|
|
8
8
|
buildRegExp(): [RegExp, ReplacementMap, ReplacementMap];
|
|
9
9
|
}
|
|
@@ -26,6 +26,7 @@ export declare const getPath: (request: Request) => string;
|
|
|
26
26
|
*/
|
|
27
27
|
export declare const getQueryStrings: (url: string) => string;
|
|
28
28
|
export declare const getPathNoStrict: (request: Request) => string;
|
|
29
|
+
export declare const stripPathPrefix: (rawPath: string, decodedPath: string, prefixLength: number) => string;
|
|
29
30
|
/**
|
|
30
31
|
* Merge paths.
|
|
31
32
|
* @param {string[]} ...paths - The paths to merge.
|
|
@@ -15,7 +15,7 @@ const decodeJwtPart = (part) => JSON.parse(utf8Decoder.decode(decodeBase64Url(pa
|
|
|
15
15
|
function isTokenHeader(obj) {
|
|
16
16
|
if (typeof obj === "object" && obj !== null) {
|
|
17
17
|
const objWithAlg = obj;
|
|
18
|
-
return "alg" in objWithAlg && Object.values(AlgorithmTypes).includes(objWithAlg.alg) && (!("typ" in objWithAlg) || objWithAlg.typ === "JWT");
|
|
18
|
+
return "alg" in objWithAlg && Object.values(AlgorithmTypes).includes(objWithAlg.alg) && (!("typ" in objWithAlg) || objWithAlg.typ === "JWT") && !("crit" in objWithAlg);
|
|
19
19
|
}
|
|
20
20
|
return false;
|
|
21
21
|
}
|
|
@@ -66,6 +66,7 @@ const verify = async (token, publicKey, algOrOptions) => {
|
|
|
66
66
|
if (!(Array.isArray(payload.aud) ? payload.aud : [payload.aud]).some((payloadAud) => aud instanceof RegExp ? aud.test(payloadAud) : typeof aud === "string" ? payloadAud === aud : Array.isArray(aud) && aud.includes(payloadAud))) throw new JwtTokenAudience(aud, payload.aud);
|
|
67
67
|
}
|
|
68
68
|
const headerPayload = token.substring(0, token.lastIndexOf("."));
|
|
69
|
+
if (!/^[A-Za-z0-9_-]*={0,2}$/.test(tokenParts[2])) throw new JwtTokenInvalid(token);
|
|
69
70
|
let signature;
|
|
70
71
|
try {
|
|
71
72
|
signature = decodeBase64Url(tokenParts[2]);
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { GET_MATCH_RESULT } from "../request/constants.js";
|
|
2
|
+
import { getPattern, splitRoutingPath, stripPathPrefix } from "./url.js";
|
|
3
|
+
//#region src/utils/mount.ts
|
|
4
|
+
const getPathPrefixLength = (c, pathPrefix, routePath) => {
|
|
5
|
+
if (!/[:*]/.test(pathPrefix)) return pathPrefix.length;
|
|
6
|
+
const path = c.req.path;
|
|
7
|
+
const matchResult = c.req[GET_MATCH_RESULT];
|
|
8
|
+
const paramNames = /* @__PURE__ */ new Set();
|
|
9
|
+
let length = 0;
|
|
10
|
+
for (const part of splitRoutingPath(pathPrefix)) {
|
|
11
|
+
const pattern = getPattern(part);
|
|
12
|
+
if (pattern && pattern !== "*") {
|
|
13
|
+
const name = pattern[1];
|
|
14
|
+
if (paramNames.has(name)) throw new Error(`mount(): Duplicate path parameter "${name}" in "${routePath}".`);
|
|
15
|
+
paramNames.add(name);
|
|
16
|
+
}
|
|
17
|
+
if (pattern && pattern !== "*" && pattern[2] !== true) {
|
|
18
|
+
const value = matchResult.length === 2 ? matchResult[1][matchResult[0][c.req.routeIndex][1][pattern[1]]] : matchResult[0][c.req.routeIndex][1][pattern[1]];
|
|
19
|
+
length += value.length + 1;
|
|
20
|
+
} else if (pattern || part.endsWith("*")) {
|
|
21
|
+
const end = path.indexOf("/", length + 1);
|
|
22
|
+
length = end === -1 ? path.length : end;
|
|
23
|
+
} else length += part.length + 1;
|
|
24
|
+
}
|
|
25
|
+
return length;
|
|
26
|
+
};
|
|
27
|
+
const createMountedRequest = (c, pathPrefix, routePath) => {
|
|
28
|
+
if (/[^/]\*$/.test(routePath)) throw new Error(`mount(): Wildcard must follow "/" in "${routePath}".`);
|
|
29
|
+
const url = new URL(c.req.raw.url);
|
|
30
|
+
url.pathname = stripPathPrefix(url.pathname, c.req.path, getPathPrefixLength(c, pathPrefix, routePath));
|
|
31
|
+
return new Request(url, c.req.raw);
|
|
32
|
+
};
|
|
33
|
+
//#endregion
|
|
34
|
+
export { createMountedRequest };
|
|
@@ -110,6 +110,15 @@ const getPathNoStrict = (request) => {
|
|
|
110
110
|
const result = getPath(request);
|
|
111
111
|
return result.length > 1 && result.at(-1) === "/" ? result.slice(0, -1) : result;
|
|
112
112
|
};
|
|
113
|
+
const stripPathPrefix = (rawPath, decodedPath, prefixLength) => {
|
|
114
|
+
if (rawPath.at(-1) === "/" && decodedPath.at(-1) !== "/") rawPath = rawPath.slice(0, -1);
|
|
115
|
+
let index = 0;
|
|
116
|
+
for (let i = decodedPath.indexOf("/"); i !== -1 && i < prefixLength; i = decodedPath.indexOf("/", i + 1)) {
|
|
117
|
+
index = rawPath.indexOf("/", index + 1);
|
|
118
|
+
if (index === -1) return "/";
|
|
119
|
+
}
|
|
120
|
+
return rawPath.slice(index) || "/";
|
|
121
|
+
};
|
|
113
122
|
/**
|
|
114
123
|
* Merge paths.
|
|
115
124
|
* @param {string[]} ...paths - The paths to merge.
|
|
@@ -203,4 +212,4 @@ const getQueryParams = (url, key) => {
|
|
|
203
212
|
};
|
|
204
213
|
const decodeURIComponent_ = decodeURIComponent;
|
|
205
214
|
//#endregion
|
|
206
|
-
export { checkOptionalParameter, decodeURIComponent_, getPath, getPathNoStrict, getPattern, getQueryParam, getQueryParams, getQueryStrings, mergePath, splitPath, splitRoutingPath, tryDecode, tryDecodeURI, tryDecodeURIComponent };
|
|
215
|
+
export { checkOptionalParameter, decodeURIComponent_, getPath, getPathNoStrict, getPattern, getQueryParam, getQueryParams, getQueryStrings, mergePath, splitPath, splitRoutingPath, stripPathPrefix, tryDecode, tryDecodeURI, tryDecodeURIComponent };
|
package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/validator/validator.js
CHANGED
|
@@ -3,7 +3,7 @@ import { bufferToFormData } from "../utils/buffer.js";
|
|
|
3
3
|
import { getCookie } from "../helper/cookie/index.js";
|
|
4
4
|
//#region src/validator/validator.ts
|
|
5
5
|
const jsonRegex = /^application\/([a-z-\.]+\+)?json(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/i;
|
|
6
|
-
const multipartRegex = /^multipart\/form-data(;\s
|
|
6
|
+
const multipartRegex = /^multipart\/form-data(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/i;
|
|
7
7
|
const urlencodedRegex = /^application\/x-www-form-urlencoded(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/i;
|
|
8
8
|
const validator = (target, validationFunc) => {
|
|
9
9
|
return async (c, next) => {
|
|
@@ -5,7 +5,7 @@ function isCloudflareWorkers() {
|
|
|
5
5
|
return typeof WebSocketPair < "u" || typeof navigator < "u" && navigator.userAgent === "Cloudflare-Workers" || typeof EdgeRuntime < "u" && EdgeRuntime === "vercel";
|
|
6
6
|
}
|
|
7
7
|
let USER_AGENT;
|
|
8
|
-
(typeof navigator > "u" || !navigator.userAgent?.startsWith?.("Mozilla/5.0 ")) && (USER_AGENT = "jose/v6.2.
|
|
8
|
+
(typeof navigator > "u" || !navigator.userAgent?.startsWith?.("Mozilla/5.0 ")) && (USER_AGENT = "jose/v6.2.15");
|
|
9
9
|
const customFetch = /* @__PURE__ */ Symbol();
|
|
10
10
|
async function fetchJwks(url, headers, signal, fetchImpl = fetch) {
|
|
11
11
|
const response = await fetchImpl(url, {
|
|
@@ -31,6 +31,8 @@ function isFreshFor(timestamp, duration) {
|
|
|
31
31
|
function validateDuration(value, fallback, option) {
|
|
32
32
|
if (Number.isNaN(value))
|
|
33
33
|
throw new TypeError(`"${option}" option must not be NaN`);
|
|
34
|
+
if (typeof value == "number" && value < 0)
|
|
35
|
+
throw new TypeError(`"${option}" option must not be negative`);
|
|
34
36
|
return typeof value == "number" ? value : fallback;
|
|
35
37
|
}
|
|
36
38
|
function createRemoteJWKSet(url, options) {
|
|
@@ -23,7 +23,8 @@ async function transform(stream, input, maxLength = 1 / 0) {
|
|
|
23
23
|
if (done)
|
|
24
24
|
break;
|
|
25
25
|
if (chunks.push(value), length += value.byteLength, maxLength !== 1 / 0 && length > maxLength)
|
|
26
|
-
throw
|
|
26
|
+
throw await reader.cancel().catch(() => {
|
|
27
|
+
}), new JWEInvalid("Decompressed plaintext exceeded the configured limit");
|
|
27
28
|
}
|
|
28
29
|
return concat(...chunks);
|
|
29
30
|
}
|
package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/jwt_claims_set.js
CHANGED
|
@@ -77,7 +77,8 @@ function validateClaimsSet(protectedHeader, claimsSetBytes, options = {}) {
|
|
|
77
77
|
throw new TypeError("Invalid clockTolerance option type");
|
|
78
78
|
tolerance = clockTolerance;
|
|
79
79
|
}
|
|
80
|
-
validateInput("clockTolerance option", tolerance)
|
|
80
|
+
if (validateInput("clockTolerance option", tolerance), tolerance < 0)
|
|
81
|
+
throw new TypeError("Invalid clockTolerance option input");
|
|
81
82
|
const { currentDate } = options, now = validateInput("currentDate option", epoch(currentDate === void 0 ? /* @__PURE__ */ new Date() : currentDate)), iat = validateNumericDate(claimsSet, "iat", maxTokenAge !== void 0), nbf = validateNumericDate(claimsSet, "nbf");
|
|
82
83
|
if (nbf !== void 0 && nbf > now + tolerance)
|
|
83
84
|
throw new JWTClaimValidationFailed('"nbf" claim timestamp check failed', claimsSet, "nbf", checkFailed);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{DAEMON_HOST as h}from"@weavecode/server";import{logger as a}from"@weavecode/core";import{createRuntimeRegistry as y}from"@weavecode/harness";import{ensureDaemonRunning as
|
|
2
|
-
`)}const l=s=>s.slice(0,8);function f(s,o){return
|
|
1
|
+
import{DAEMON_HOST as h}from"@weavecode/server";import{logger as a}from"@weavecode/core";import{createRuntimeRegistry as y}from"@weavecode/harness";import{ensureDaemonRunning as d}from"./daemon.js";import{t as i}from"../i18n/index.js";async function u(s,o,e){const t=await fetch(`http://${h}:${s}${o}`,e),n=await t.json().catch(()=>({}));if(!t.ok)throw new Error(String(n.error??`HTTP ${t.status}`));return n}export function resolveSessionRef(s,o){const e=o.toLowerCase(),t=s.filter(c=>c.sessionId.toLowerCase()===e);if(t.length===1)return{row:t[0]};const n=s.filter(c=>c.sessionId.toLowerCase().startsWith(e));if(n.length===1)return{row:n[0]};const r=s.filter(c=>c.title!=null&&c.title.toLowerCase().includes(e));if(r.length===1)return{row:r[0]};const g=n.length>0?n:r;return g.length>1?{error:"ambiguous",rows:g}:{error:"not-found"}}export function currentSessionId(s,o){for(const e of o){if(!e)continue;const t=s[e];if(typeof t=="string"&&t!=="")return t}return null}export function pickReplyTarget(s,o){for(let e=s.length-1;e>=0;e--){const t=s[e];if(t.toSessionId===o&&t.fromSessionId!=null)return t.fromSessionId}return null}function I(s){const o=s[0].map((e,t)=>Math.max(...s.map(n=>n[t].length)));return s.map(e=>e.map((t,n)=>t.padEnd(o[n])).join(" ").trimEnd()).join(`
|
|
2
|
+
`)}const l=s=>s.slice(0,8);function f(s,o){return u(s,"/sessions").then(({sessions:e})=>{const t=resolveSessionRef(e,o);if("row"in t)return t.row;throw t.error==="ambiguous"?new Error(i("out.msg.ambiguous",{ref:o,candidates:t.rows.map(n=>`${l(n.sessionId)}${n.title?` (${n.title})`:""}`).join(", ")})):new Error(i("out.msg.notFound",{ref:o}))})}function p(){const s=y().byCapability("messaging").flatMap(o=>o.messaging?.sessionEnv?[o.messaging.sessionEnv]:[]);return currentSessionId(process.env,s)}async function w(s,o,e,t,n){const r=await f(s,o),g=await u(s,`/sessions/${encodeURIComponent(r.sessionId)}/messages`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({text:e,mode:t,fromKind:"cli",fromSessionId:n})});a.success(i("out.msg.sendOk",{target:r.title??l(r.sessionId),id:g.messageId,status:g.status}))}async function S(s,o){const{sessions:e}=await u(s,"/sessions");if(!o){const{capabilities:r}=await u(s,"/messaging/capabilities"),g=new Set(r.filter(m=>m.discovery).map(m=>m.harness)),c=e.map(m=>[l(m.sessionId),m.title??"",m.harness??"-",m.turnOpen===void 0?"-":m.turnOpen?i("out.msg.busy"):i("out.msg.idle"),m.harness!=null&&g.has(m.harness)?"\u2713":"\u2014"]);if(c.length===0){a.info(i("out.msg.noSessions"));return}a.info(i("out.msg.sessionHeader",{n:c.length})),console.log(I([[i("out.msg.col.session"),i("out.msg.col.title"),i("out.msg.col.harness"),i("out.msg.col.state"),i("out.msg.col.msg")],...c]));return}const t=await f(s,o),{messages:n}=await u(s,`/sessions/${encodeURIComponent(t.sessionId)}/messages`);a.info(i("out.msg.threadHeader",{session:t.title??t.sessionId,n:n.length}));for(const r of n){const g=r.fromSessionId===t.sessionId?"\u25B6":"\u25C0",c=r.fromKind==="dashboard"?"dashboard":r.fromKind==="cli"?"cli":r.fromSessionId??"?";console.log(`${r.createdAt.slice(11,19)} ${g} ${c} [${r.status}] ${r.text.slice(0,80)}`)}}async function C(s,o,e){const t=await f(s,o),n=p(),r=await u(s,`/sessions/${encodeURIComponent(t.sessionId)}/watch`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({watcherSessionId:n,notify:e??null})});a.success(i("out.msg.watchOk",{target:t.title??l(t.sessionId),id:r.watchId,via:n??i("out.msg.watchViaDashboard")}))}async function x(s,o){const e=p();if(!e){a.warn(i("out.msg.replyNoSession")),process.exitCode=1;return}const{messages:t}=await u(s,`/sessions/${encodeURIComponent(e)}/messages`),n=pickReplyTarget(t,e);if(!n){a.warn(i("out.msg.replyNothing")),process.exitCode=1;return}await w(s,n,o,"inject",e)}export const msgCommand={name:"msg",description:"cmd.msg.desc",subcommands:[{name:"ls",description:"cmd.msg.ls.desc",async action(s){const o=await d();try{await S(o.port,s.positional[0])}catch(e){a.warn(i("out.msg.failed",{error:e instanceof Error?e.message:String(e)})),process.exitCode=1}}},{name:"send",description:"cmd.msg.send.desc",options:[{name:"mode",short:"m",description:"flag.msg.mode",type:"string",choices:["auto","inject","headless"],default:"inject"}],async action(s){const o=s.positional[0],e=s.positional.slice(1).join(" ");if(!o||!e){a.warn(i("out.msg.sendUsage")),process.exitCode=1;return}const t=await d();try{await w(t.port,o,e,String(s.flags.mode??"inject"),p())}catch(n){a.warn(i("out.msg.sendFail",{error:n instanceof Error?n.message:String(n)})),process.exitCode=1}}},{name:"watch",description:"cmd.msg.watch.desc",options:[{name:"notify",description:"flag.msg.notify",type:"string"}],async action(s){const o=s.positional[0];if(!o){a.warn(i("out.msg.watchUsage")),process.exitCode=1;return}const e=await d();try{await C(e.port,o,s.flags.notify==null?void 0:String(s.flags.notify))}catch(t){a.warn(i("out.msg.watchFail",{error:t instanceof Error?t.message:String(t)})),process.exitCode=1}}},{name:"reply",description:"cmd.msg.reply.desc",async action(s){const o=s.positional.join(" ");if(!o){a.warn(i("out.msg.replyUsage")),process.exitCode=1;return}const e=await d();try{await x(e.port,o)}catch(t){a.warn(i("out.msg.sendFail",{error:t instanceof Error?t.message:String(t)})),process.exitCode=1}}}]};
|