@mapbox/mcp-server 0.0.2 → 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/dist/cjs/package.json +3 -0
- package/dist/esm/package.json +3 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +38 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/MapboxApiBasedTool.d.ts +75 -0
- package/dist/tools/MapboxApiBasedTool.d.ts.map +1 -0
- package/dist/tools/MapboxApiBasedTool.js +78 -0
- package/dist/tools/MapboxApiBasedTool.js.map +1 -0
- package/dist/tools/category-search-tool/CategorySearchTool.d.ts +39 -0
- package/dist/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -0
- package/dist/tools/category-search-tool/CategorySearchTool.js +638 -0
- package/dist/tools/category-search-tool/CategorySearchTool.js.map +1 -0
- package/dist/tools/category-search-tool/CategorySearchTool.test.d.ts +2 -0
- package/dist/tools/category-search-tool/CategorySearchTool.test.d.ts.map +1 -0
- package/dist/tools/category-search-tool/CategorySearchTool.test.js +289 -0
- package/dist/tools/category-search-tool/CategorySearchTool.test.js.map +1 -0
- package/dist/tools/directions-tool/DirectionsTool.d.ts +53 -0
- package/dist/tools/directions-tool/DirectionsTool.d.ts.map +1 -0
- package/dist/tools/directions-tool/DirectionsTool.js +405 -0
- package/dist/tools/directions-tool/DirectionsTool.js.map +1 -0
- package/dist/tools/directions-tool/DirectionsTool.test.d.ts +2 -0
- package/dist/tools/directions-tool/DirectionsTool.test.d.ts.map +1 -0
- package/dist/tools/directions-tool/DirectionsTool.test.js +867 -0
- package/dist/tools/directions-tool/DirectionsTool.test.js.map +1 -0
- package/dist/tools/forward-geocode-tool/ForwardGeocodeTool.d.ts +51 -0
- package/dist/tools/forward-geocode-tool/ForwardGeocodeTool.d.ts.map +1 -0
- package/dist/tools/forward-geocode-tool/ForwardGeocodeTool.js +182 -0
- package/dist/tools/forward-geocode-tool/ForwardGeocodeTool.js.map +1 -0
- package/dist/tools/forward-geocode-tool/ForwardGeocodeTool.test.d.ts +2 -0
- package/dist/tools/forward-geocode-tool/ForwardGeocodeTool.test.d.ts.map +1 -0
- package/dist/tools/forward-geocode-tool/ForwardGeocodeTool.test.js +335 -0
- package/dist/tools/forward-geocode-tool/ForwardGeocodeTool.test.js.map +1 -0
- package/dist/tools/isochrone-tool/IsochroneTool.d.ts +44 -0
- package/dist/tools/isochrone-tool/IsochroneTool.d.ts.map +1 -0
- package/dist/tools/isochrone-tool/IsochroneTool.js +108 -0
- package/dist/tools/isochrone-tool/IsochroneTool.js.map +1 -0
- package/dist/tools/isochrone-tool/IsochroneTool.test.d.ts +2 -0
- package/dist/tools/isochrone-tool/IsochroneTool.test.d.ts.map +1 -0
- package/dist/tools/isochrone-tool/IsochroneTool.test.js +110 -0
- package/dist/tools/isochrone-tool/IsochroneTool.test.js.map +1 -0
- package/dist/tools/matrix-tool/MatrixTool.d.ts +35 -0
- package/dist/tools/matrix-tool/MatrixTool.d.ts.map +1 -0
- package/dist/tools/matrix-tool/MatrixTool.js +195 -0
- package/dist/tools/matrix-tool/MatrixTool.js.map +1 -0
- package/dist/tools/matrix-tool/MatrixTool.test.d.ts +2 -0
- package/dist/tools/matrix-tool/MatrixTool.test.d.ts.map +1 -0
- package/dist/tools/matrix-tool/MatrixTool.test.js +803 -0
- package/dist/tools/matrix-tool/MatrixTool.test.js.map +1 -0
- package/dist/tools/poi-search-tool/PoiSearchTool.d.ts +54 -0
- package/dist/tools/poi-search-tool/PoiSearchTool.d.ts.map +1 -0
- package/dist/tools/poi-search-tool/PoiSearchTool.js +193 -0
- package/dist/tools/poi-search-tool/PoiSearchTool.js.map +1 -0
- package/dist/tools/poi-search-tool/PoiSearchTool.test.d.ts +2 -0
- package/dist/tools/poi-search-tool/PoiSearchTool.test.d.ts.map +1 -0
- package/dist/tools/poi-search-tool/PoiSearchTool.test.js +338 -0
- package/dist/tools/poi-search-tool/PoiSearchTool.test.js.map +1 -0
- package/dist/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts +42 -0
- package/dist/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts.map +1 -0
- package/dist/tools/reverse-geocode-tool/ReverseGeocodeTool.js +131 -0
- package/dist/tools/reverse-geocode-tool/ReverseGeocodeTool.js.map +1 -0
- package/dist/tools/reverse-geocode-tool/ReverseGeocodeTool.test.d.ts +2 -0
- package/dist/tools/reverse-geocode-tool/ReverseGeocodeTool.test.d.ts.map +1 -0
- package/dist/tools/reverse-geocode-tool/ReverseGeocodeTool.test.js +340 -0
- package/dist/tools/reverse-geocode-tool/ReverseGeocodeTool.test.js.map +1 -0
- package/dist/tools/static-map-image-tool/StaticMapImageTool.d.ts +148 -0
- package/dist/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +1 -0
- package/dist/tools/static-map-image-tool/StaticMapImageTool.js +406 -0
- package/dist/tools/static-map-image-tool/StaticMapImageTool.js.map +1 -0
- package/dist/tools/static-map-image-tool/StaticMapImageTool.test.d.ts +2 -0
- package/dist/tools/static-map-image-tool/StaticMapImageTool.test.d.ts.map +1 -0
- package/dist/tools/static-map-image-tool/StaticMapImageTool.test.js +440 -0
- package/dist/tools/static-map-image-tool/StaticMapImageTool.test.js.map +1 -0
- package/dist/utils/requestUtils.d.ts +6 -0
- package/dist/utils/requestUtils.d.ts.map +1 -0
- package/dist/utils/requestUtils.js +29 -0
- package/dist/utils/requestUtils.js.map +1 -0
- package/dist/utils/requestUtils.test-helpers.d.ts +3 -0
- package/dist/utils/requestUtils.test-helpers.d.ts.map +1 -0
- package/dist/utils/requestUtils.test-helpers.js +28 -0
- package/dist/utils/requestUtils.test-helpers.js.map +1 -0
- package/dist/utils/versionUtils.d.ts +9 -0
- package/dist/utils/versionUtils.d.ts.map +1 -0
- package/dist/utils/versionUtils.js +25 -0
- package/dist/utils/versionUtils.js.map +1 -0
- package/dist/version.json +6 -0
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ForwardGeocodeTool.test.js","sourceRoot":"","sources":["../../../src/tools/forward-geocode-tool/ForwardGeocodeTool.test.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,YAAY,CAAC;AAE/C,OAAO,EACL,UAAU,EACV,iBAAiB,EAClB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAE/B,MAAM,IAAI,kBAAkB,EAAE,CAAC,GAAG,CAAC;YACjC,CAAC,EAAE,iBAAiB;SACrB,CAAC,CAAC;QAEH,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAE/B,MAAM,IAAI,kBAAkB,EAAE,CAAC,GAAG,CAAC;YACjC,CAAC,EAAE,6CAA6C;SACjD,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QACzD,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CACzB,mDAAmD,CACpD,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAE/B,MAAM,IAAI,kBAAkB,EAAE,CAAC,GAAG,CAAC;YACjC,CAAC,EAAE,YAAY;YACf,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;YAChC,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;YACrB,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC;YAC7B,KAAK,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;YAC3B,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC5C,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC9C,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAClD,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAC;QAChE,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC/C,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC9C,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC3C,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;QAC3D,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACrD,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAE/B,MAAM,IAAI,kBAAkB,EAAE,CAAC,GAAG,CAAC;YACjC,CAAC,EAAE,cAAc;SAClB,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,iBAAiB;QACjB,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC/C,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QACjD,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC9C,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAE/B,MAAM,IAAI,kBAAkB,EAAE,CAAC,GAAG,CAAC;YACjC,CAAC,EAAE,aAAa;YAChB,SAAS,EAAE,sBAAsB;SAClC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAE/B,MAAM,IAAI,kBAAkB,EAAE,CAAC,GAAG,CAAC;YACjC,CAAC,EAAE,MAAM;YACT,SAAS,EAAE,yBAAyB;SACrC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,SAAS,GAAG,UAAU,CAAC;YAC3B,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,GAAG;YACX,UAAU,EAAE,WAAW;SACxB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,kBAAkB,EAAE,CAAC,GAAG,CAAC;YAChD,CAAC,EAAE,YAAY;SAChB,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YACtC,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,8BAA8B;SACrC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,IAAI,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAEtC,MAAM,MAAM,CACV,IAAI,CAAC,GAAG,CAAC;YACP,CAAC,EAAE,aAAa;SACjB,CAAC,CACH,CAAC,QAAQ,CAAC,aAAa,CAAC;YACvB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,IAAI,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,0BAA0B;QAEvE,MAAM,MAAM,CACV,IAAI,CAAC,GAAG,CAAC;YACP,CAAC,EAAE,SAAS;SACb,CAAC,CACH,CAAC,QAAQ,CAAC,aAAa,CAAC;YACvB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,IAAI,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,gCAAgC;QAEnE,MAAM,MAAM,CACV,IAAI,CAAC,GAAG,CAAC;YACP,CAAC,EAAE,SAAS;SACb,CAAC,CACH,CAAC,QAAQ,CAAC,aAAa,CAAC;YACvB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,IAAI,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAEtC,sBAAsB;QACtB,MAAM,MAAM,CACV,IAAI,CAAC,GAAG,CAAC;YACP,CAAC,EAAE,MAAM;YACT,KAAK,EAAE,EAAE;SACV,CAAC,CACH,CAAC,QAAQ,CAAC,aAAa,CAAC;YACvB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QAEH,qBAAqB;QACrB,MAAM,MAAM,CACV,IAAI,CAAC,GAAG,CAAC;YACP,CAAC,EAAE,MAAM;YACT,KAAK,EAAE,CAAC;SACT,CAAC,CACH,CAAC,QAAQ,CAAC,aAAa,CAAC;YACvB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,IAAI,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAEtC,sCAAsC;QACtC,MAAM,MAAM,CACV,IAAI,CAAC,GAAG,CAAC;YACP,CAAC,EAAE,MAAM;YACT,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;SACtB,CAAC,CACH,CAAC,QAAQ,CAAC,aAAa,CAAC;YACvB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QAEH,gCAAgC;QAChC,MAAM,MAAM,CACV,IAAI,CAAC,GAAG,CAAC;YACP,CAAC,EAAE,MAAM;YACT,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;SAC1B,CAAC,CACH,CAAC,QAAQ,CAAC,aAAa,CAAC;YACvB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAE/B,MAAM,IAAI,kBAAkB,EAAE,CAAC,GAAG,CAAC;YACjC,CAAC,EAAE,mBAAmB;SACvB,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,SAAS,GAAG,UAAU,CAAC;YAC3B,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,SAAS;oBACf,UAAU,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE;iBAC3C;aACF;SACF,CAAC,CAAC;QAEH,MAAM,IAAI,kBAAkB,EAAE,CAAC,GAAG,CAAC;YACjC,CAAC,EAAE,aAAa;YAChB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,YAAY,GAAG;YACnB,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,SAAS;oBACf,UAAU,EAAE;wBACV,IAAI,EAAE,SAAS;wBACf,YAAY,EAAE,oCAAoC;wBAClD,YAAY,EAAE,OAAO;qBACtB;oBACD,QAAQ,EAAE;wBACR,IAAI,EAAE,OAAO;wBACb,WAAW,EAAE,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC;qBACtC;iBACF;aACF;SACF,CAAC;QAEF,MAAM,SAAS,GAAG,UAAU,CAAC;YAC3B,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,YAAY;SAC/B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,kBAAkB,EAAE,CAAC,GAAG,CAAC;YAChD,CAAC,EAAE,SAAS;SACb,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE5C,MAAM,WAAW,GAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAoC,CAAC,IAAI,CAAC;QAC/E,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,6CAA6C,CAAC,CAAC;QAC7E,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,qCAAqC,CAAC,CAAC;QACrE,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,YAAY,GAAG;YACnB,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,SAAS;oBACf,UAAU,EAAE;wBACV,IAAI,EAAE,KAAK;wBACX,cAAc,EAAE,eAAe;wBAC/B,eAAe,EAAE,6BAA6B;qBAC/C;oBACD,QAAQ,EAAE;wBACR,IAAI,EAAE,OAAO;wBACb,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC;qBACjC;iBACF;aACF;SACF,CAAC;QAEF,MAAM,SAAS,GAAG,UAAU,CAAC;YAC3B,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,YAAY;SAC/B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,kBAAkB,EAAE,CAAC,GAAG,CAAC;YAChD,CAAC,EAAE,KAAK;SACT,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEpC,MAAM,WAAW,GAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAoC,CAAC,IAAI,CAAC;QAC/E,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACxD,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACtE,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,YAAY,GAAG;YACnB,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,SAAS;oBACf,UAAU,EAAE;wBACV,IAAI,EAAE,aAAa;wBACnB,YAAY,EAAE,sCAAsC;wBACpD,YAAY,EAAE,OAAO;qBACtB;oBACD,QAAQ,EAAE;wBACR,IAAI,EAAE,OAAO;wBACb,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC;qBACjC;iBACF;gBACD;oBACE,IAAI,EAAE,SAAS;oBACf,UAAU,EAAE;wBACV,IAAI,EAAE,aAAa;wBACnB,YAAY,EAAE,2CAA2C;wBACzD,YAAY,EAAE,OAAO;qBACtB;oBACD,QAAQ,EAAE;wBACR,IAAI,EAAE,OAAO;wBACb,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC;qBACjC;iBACF;aACF;SACF,CAAC;QAEF,MAAM,SAAS,GAAG,UAAU,CAAC;YAC3B,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,YAAY;SAC/B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,kBAAkB,EAAE,CAAC,GAAG,CAAC;YAChD,CAAC,EAAE,aAAa;YAChB,KAAK,EAAE,CAAC;SACT,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEpC,MAAM,WAAW,GAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAoC,CAAC,IAAI,CAAC;QAC/E,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAChD,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAChD,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACtE,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,2CAA2C,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,YAAY,GAAG;YACnB,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,MAAM,SAAS,GAAG,UAAU,CAAC;YAC3B,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,YAAY;SAC/B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,kBAAkB,EAAE,CAAC,GAAG,CAAC;YAChD,CAAC,EAAE,uBAAuB;SAC3B,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAoC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,YAAY,GAAG;YACnB,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,SAAS;oBACf,UAAU,EAAE;wBACV,IAAI,EAAE,YAAY;qBACnB;oBACD,QAAQ,EAAE;wBACR,IAAI,EAAE,OAAO;wBACb,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC;qBAChC;iBACF;aACF;SACF,CAAC;QAEF,MAAM,SAAS,GAAG,UAAU,CAAC;YAC3B,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,YAAY;SAC/B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,kBAAkB,EAAE,CAAC,GAAG,CAAC;YAChD,CAAC,EAAE,YAAY;SAChB,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEpC,MAAM,WAAW,GAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAoC,CAAC,IAAI,CAAC;QAC/E,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC/C,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;QAC/D,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { MapboxApiBasedTool } from '../MapboxApiBasedTool.js';
|
|
3
|
+
declare const IsochroneInputSchema: z.ZodObject<{
|
|
4
|
+
profile: z.ZodDefault<z.ZodEnum<["mapbox/driving-traffic", "mapbox/driving", "mapbox/cycling", "mapbox/walking"]>>;
|
|
5
|
+
coordinates: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
|
|
6
|
+
contours_minutes: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
7
|
+
contours_meters: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
8
|
+
contours_colors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
9
|
+
polygons: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
10
|
+
denoise: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
11
|
+
generalize: z.ZodNumber;
|
|
12
|
+
exclude: z.ZodOptional<z.ZodArray<z.ZodEnum<["motorway", "toll", "ferry", "unpaved", "cash_only_tolls"]>, "many">>;
|
|
13
|
+
depart_at: z.ZodOptional<z.ZodString>;
|
|
14
|
+
}, "strip", z.ZodTypeAny, {
|
|
15
|
+
coordinates: [number, number];
|
|
16
|
+
profile: "mapbox/driving-traffic" | "mapbox/driving" | "mapbox/cycling" | "mapbox/walking";
|
|
17
|
+
generalize: number;
|
|
18
|
+
depart_at?: string | undefined;
|
|
19
|
+
exclude?: ("ferry" | "cash_only_tolls" | "toll" | "motorway" | "unpaved")[] | undefined;
|
|
20
|
+
contours_minutes?: number[] | undefined;
|
|
21
|
+
contours_meters?: number[] | undefined;
|
|
22
|
+
contours_colors?: string[] | undefined;
|
|
23
|
+
polygons?: boolean | undefined;
|
|
24
|
+
denoise?: number | undefined;
|
|
25
|
+
}, {
|
|
26
|
+
coordinates: [number, number];
|
|
27
|
+
generalize: number;
|
|
28
|
+
depart_at?: string | undefined;
|
|
29
|
+
exclude?: ("ferry" | "cash_only_tolls" | "toll" | "motorway" | "unpaved")[] | undefined;
|
|
30
|
+
profile?: "mapbox/driving-traffic" | "mapbox/driving" | "mapbox/cycling" | "mapbox/walking" | undefined;
|
|
31
|
+
contours_minutes?: number[] | undefined;
|
|
32
|
+
contours_meters?: number[] | undefined;
|
|
33
|
+
contours_colors?: string[] | undefined;
|
|
34
|
+
polygons?: boolean | undefined;
|
|
35
|
+
denoise?: number | undefined;
|
|
36
|
+
}>;
|
|
37
|
+
export declare class IsochroneTool extends MapboxApiBasedTool<typeof IsochroneInputSchema> {
|
|
38
|
+
name: string;
|
|
39
|
+
description: string;
|
|
40
|
+
constructor();
|
|
41
|
+
protected execute(input: z.infer<typeof IsochroneInputSchema>): Promise<any>;
|
|
42
|
+
}
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=IsochroneTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IsochroneTool.d.ts","sourceRoot":"","sources":["../../../src/tools/isochrone-tool/IsochroneTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6ExB,CAAC;AAEH,qBAAa,aAAc,SAAQ,kBAAkB,CACnD,OAAO,oBAAoB,CAC5B;IACC,IAAI,SAAmB;IACvB,WAAW,SAIuD;;cAMlD,OAAO,CACrB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,GAC1C,OAAO,CAAC,GAAG,CAAC;CA6DhB"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { MapboxApiBasedTool } from '../MapboxApiBasedTool.js';
|
|
3
|
+
const IsochroneInputSchema = z.object({
|
|
4
|
+
profile: z
|
|
5
|
+
.enum([
|
|
6
|
+
'mapbox/driving-traffic',
|
|
7
|
+
'mapbox/driving',
|
|
8
|
+
'mapbox/cycling',
|
|
9
|
+
'mapbox/walking'
|
|
10
|
+
])
|
|
11
|
+
.default('mapbox/driving-traffic')
|
|
12
|
+
.describe('Mode of travel.'),
|
|
13
|
+
coordinates: z
|
|
14
|
+
.tuple([z.number().min(-180).max(180), z.number().min(-90).max(90)])
|
|
15
|
+
.describe('A coordinate [longitude, latitude] pair around which to center the isochrone lines. Longitude: -180 to 180, Latitude: -85.0511 to 85.0511'),
|
|
16
|
+
contours_minutes: z
|
|
17
|
+
.array(z.number().int().min(1).max(60))
|
|
18
|
+
.max(4)
|
|
19
|
+
.optional()
|
|
20
|
+
.describe('Contour times in minutes. Times must be in increasing order. Must be specified either contours_minutes or contours_meters.'),
|
|
21
|
+
contours_meters: z
|
|
22
|
+
.array(z.number().int().min(1).max(100000))
|
|
23
|
+
.max(4)
|
|
24
|
+
.optional()
|
|
25
|
+
.describe('Distances in meters. Distances must be in increasing order. Must be specified either contours_minutes or contours_meters.'),
|
|
26
|
+
contours_colors: z
|
|
27
|
+
.array(z.string().regex(/^[0-9a-fA-F]{6}$/))
|
|
28
|
+
.max(4)
|
|
29
|
+
.optional()
|
|
30
|
+
.describe('Contour colors as hex strings without starting # (for example ff0000 for red. must match contours_minutes or contours_meters length if provided).'),
|
|
31
|
+
polygons: z
|
|
32
|
+
.boolean()
|
|
33
|
+
.default(false)
|
|
34
|
+
.optional()
|
|
35
|
+
.describe('Whether to return Polygons (true) or LineStrings (false).'),
|
|
36
|
+
denoise: z
|
|
37
|
+
.number()
|
|
38
|
+
.min(0)
|
|
39
|
+
.max(1)
|
|
40
|
+
.default(1)
|
|
41
|
+
.optional()
|
|
42
|
+
.describe('A floating point value that can be used to remove smaller contours. A value of 1.0 will only return the largest contour for a given value.'),
|
|
43
|
+
generalize: z
|
|
44
|
+
.number()
|
|
45
|
+
.min(0)
|
|
46
|
+
.describe(`Positive number in meters that is used to simplify geometries.
|
|
47
|
+
- Walking: use 0-500. Prefer 50-200 for short contours (minutes < 10 or meters < 5000), 300-500 as they grow.
|
|
48
|
+
- Driving: use 1000-5000. Start at 2000, use 3000 if minutes > 10 or meters > 20000. Use 4000-5000 if near 60 minutes or 100000 meters.
|
|
49
|
+
`.trim()),
|
|
50
|
+
exclude: z
|
|
51
|
+
.array(z.enum(['motorway', 'toll', 'ferry', 'unpaved', 'cash_only_tolls']))
|
|
52
|
+
.optional()
|
|
53
|
+
.describe('Exclude certain road types and custom locations from routing.'),
|
|
54
|
+
depart_at: z
|
|
55
|
+
.string()
|
|
56
|
+
.optional()
|
|
57
|
+
.describe('An ISO 8601 date-time string representing the time to depart (format string: YYYY-MM-DDThh:mmss±hh:mm).')
|
|
58
|
+
});
|
|
59
|
+
export class IsochroneTool extends MapboxApiBasedTool {
|
|
60
|
+
name = 'IsochroneTool';
|
|
61
|
+
description = `Computes areas that are reachable within a specified amount of time from a location, and returns the reachable regions as contours of Polygons or LineStrings in GeoJSON format that you can display on a map.
|
|
62
|
+
Common use cases:
|
|
63
|
+
- Show a user how far they can travel in X minutes from their current location
|
|
64
|
+
- Determine whether a destination is within a certain travel time threshold
|
|
65
|
+
- Compare travel ranges for different modes of transportation'`;
|
|
66
|
+
constructor() {
|
|
67
|
+
super({ inputSchema: IsochroneInputSchema });
|
|
68
|
+
}
|
|
69
|
+
async execute(input) {
|
|
70
|
+
const url = new URL(`${MapboxApiBasedTool.MAPBOX_API_ENDPOINT}isochrone/v1/${input.profile}/${input.coordinates[0]}%2C${input.coordinates[1]}`);
|
|
71
|
+
url.searchParams.append('access_token', MapboxApiBasedTool.MAPBOX_ACCESS_TOKEN);
|
|
72
|
+
if ((!input.contours_minutes || input.contours_minutes.length === 0) &&
|
|
73
|
+
(!input.contours_meters || input.contours_meters.length === 0)) {
|
|
74
|
+
throw new Error("At least one of 'contours_minutes' or 'contours_meters' must be provided");
|
|
75
|
+
}
|
|
76
|
+
if (input.contours_minutes && input.contours_minutes.length > 0) {
|
|
77
|
+
url.searchParams.append('contours_minutes', input.contours_minutes.join(','));
|
|
78
|
+
}
|
|
79
|
+
if (input.contours_meters && input.contours_meters.length > 0) {
|
|
80
|
+
url.searchParams.append('contours_meters', input.contours_meters?.join(','));
|
|
81
|
+
}
|
|
82
|
+
if (input.contours_colors && input.contours_colors.length > 0) {
|
|
83
|
+
url.searchParams.append('contours_colors', input.contours_colors.join(','));
|
|
84
|
+
}
|
|
85
|
+
if (input.polygons) {
|
|
86
|
+
url.searchParams.append('polygons', String(input.polygons));
|
|
87
|
+
}
|
|
88
|
+
if (input.denoise) {
|
|
89
|
+
url.searchParams.append('denoise', String(input.denoise));
|
|
90
|
+
}
|
|
91
|
+
if (input.generalize) {
|
|
92
|
+
url.searchParams.append('generalize', String(input.generalize));
|
|
93
|
+
}
|
|
94
|
+
if (input.exclude && input.exclude.length > 0) {
|
|
95
|
+
url.searchParams.append('exclude', input.exclude.join(','));
|
|
96
|
+
}
|
|
97
|
+
if (input.depart_at) {
|
|
98
|
+
url.searchParams.append('depart_at', input.depart_at);
|
|
99
|
+
}
|
|
100
|
+
const response = await fetch(url);
|
|
101
|
+
if (!response.ok) {
|
|
102
|
+
throw new Error(`Failed to calculate isochrones: ${response.status} ${response.statusText}`);
|
|
103
|
+
}
|
|
104
|
+
const data = await response.json();
|
|
105
|
+
return data;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=IsochroneTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IsochroneTool.js","sourceRoot":"","sources":["../../../src/tools/isochrone-tool/IsochroneTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IsochroneTool.test.d.ts","sourceRoot":"","sources":["../../../src/tools/isochrone-tool/IsochroneTool.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
process.env.MAPBOX_ACCESS_TOKEN = 'test-token';
|
|
2
|
+
import { cleanup } from '../../utils/requestUtils.js';
|
|
3
|
+
import { setupFetch, assertHeadersSent } from '../../utils/requestUtils.test-helpers.js';
|
|
4
|
+
import { IsochroneTool } from '../isochrone-tool/IsochroneTool.js';
|
|
5
|
+
describe('IsochroneTool', () => {
|
|
6
|
+
afterEach(() => {
|
|
7
|
+
jest.restoreAllMocks();
|
|
8
|
+
jest.clearAllMocks();
|
|
9
|
+
cleanup();
|
|
10
|
+
});
|
|
11
|
+
it('sends custom header', async () => {
|
|
12
|
+
const mockFetch = setupFetch();
|
|
13
|
+
await new IsochroneTool().run({
|
|
14
|
+
coordinates: [-74.006, 40.7128],
|
|
15
|
+
profile: 'mapbox/driving',
|
|
16
|
+
contours_minutes: [10],
|
|
17
|
+
generalize: 1000
|
|
18
|
+
});
|
|
19
|
+
assertHeadersSent(mockFetch);
|
|
20
|
+
});
|
|
21
|
+
it('sends correct parameters', async () => {
|
|
22
|
+
const mockFetch = setupFetch({
|
|
23
|
+
ok: true,
|
|
24
|
+
json: async () => ({ type: 'FeatureCollection', features: [] })
|
|
25
|
+
});
|
|
26
|
+
await new IsochroneTool().run({
|
|
27
|
+
coordinates: [27.534527, 53.9353451],
|
|
28
|
+
profile: 'mapbox/driving',
|
|
29
|
+
contours_minutes: [10, 20],
|
|
30
|
+
contours_colors: ['ff0000', '00ff00'],
|
|
31
|
+
polygons: true,
|
|
32
|
+
denoise: 0.5,
|
|
33
|
+
generalize: 1000,
|
|
34
|
+
exclude: ['toll'],
|
|
35
|
+
depart_at: '2025-06-02T12:00:00Z'
|
|
36
|
+
});
|
|
37
|
+
assertHeadersSent(mockFetch);
|
|
38
|
+
const calledUrl = mockFetch.mock.calls[0][0].toString();
|
|
39
|
+
expect(calledUrl).toContain('isochrone/v1/mapbox/driving/27.534527%2C53.9353451');
|
|
40
|
+
expect(calledUrl).toContain('contours_minutes=10%2C20');
|
|
41
|
+
expect(calledUrl).toContain('contours_colors=ff0000%2C00ff00');
|
|
42
|
+
expect(calledUrl).toContain('polygons=true');
|
|
43
|
+
expect(calledUrl).toContain('denoise=0.5');
|
|
44
|
+
expect(calledUrl).toContain('generalize=1000');
|
|
45
|
+
expect(calledUrl).toContain('exclude=toll');
|
|
46
|
+
expect(calledUrl).toContain('depart_at=2025-06-02T12%3A00%3A00Z');
|
|
47
|
+
});
|
|
48
|
+
it('does not send empty parameters', async () => {
|
|
49
|
+
const mockFetch = setupFetch({
|
|
50
|
+
ok: true,
|
|
51
|
+
json: async () => ({ type: 'FeatureCollection', features: [] })
|
|
52
|
+
});
|
|
53
|
+
await new IsochroneTool().run({
|
|
54
|
+
coordinates: [27.534527, 53.9353451],
|
|
55
|
+
profile: 'mapbox/driving',
|
|
56
|
+
contours_minutes: [10, 20],
|
|
57
|
+
generalize: 1000
|
|
58
|
+
});
|
|
59
|
+
const calledUrl = mockFetch.mock.calls[0][0].toString();
|
|
60
|
+
expect(calledUrl).toContain('isochrone/v1/mapbox/driving/27.534527%2C53.9353451');
|
|
61
|
+
expect(calledUrl).toContain('contours_minutes=10%2C20');
|
|
62
|
+
expect(calledUrl).not.toContain('contours_colors');
|
|
63
|
+
expect(calledUrl).not.toContain('polygons');
|
|
64
|
+
expect(calledUrl).not.toContain('denoise');
|
|
65
|
+
expect(calledUrl).not.toContain('exclude');
|
|
66
|
+
expect(calledUrl).not.toContain('depart_at');
|
|
67
|
+
});
|
|
68
|
+
it('returns geojson from API', async () => {
|
|
69
|
+
const geojson = { type: 'FeatureCollection', features: [{ id: 42 }] };
|
|
70
|
+
const mockFetch = setupFetch({
|
|
71
|
+
ok: true,
|
|
72
|
+
json: async () => geojson
|
|
73
|
+
});
|
|
74
|
+
const result = await new IsochroneTool().run({
|
|
75
|
+
coordinates: [-74.006, 40.7128],
|
|
76
|
+
profile: 'mapbox/walking',
|
|
77
|
+
contours_minutes: [5],
|
|
78
|
+
generalize: 1000
|
|
79
|
+
});
|
|
80
|
+
assertHeadersSent(mockFetch);
|
|
81
|
+
expect(result.content[0].type).toEqual('text');
|
|
82
|
+
if (result.content[0].type == 'text') {
|
|
83
|
+
expect(result.content[0].text).toEqual(JSON.stringify(geojson));
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
it('throws on invalid input', async () => {
|
|
87
|
+
const tool = new IsochroneTool();
|
|
88
|
+
const result = await tool.run({
|
|
89
|
+
coordinates: [0, 0],
|
|
90
|
+
profile: 'invalid',
|
|
91
|
+
contours_minutes: [5]
|
|
92
|
+
});
|
|
93
|
+
expect(result.content[0].type).toEqual('text');
|
|
94
|
+
if (result.content[0].type == 'text') {
|
|
95
|
+
expect(result.content[0].text).toContain('Internal error');
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
it('throws if neither contours_minutes nor contours_meters is specified', async () => {
|
|
99
|
+
const result = await new IsochroneTool().run({
|
|
100
|
+
coordinates: [-74.006, 40.7128],
|
|
101
|
+
profile: 'mapbox/driving',
|
|
102
|
+
generalize: 1000
|
|
103
|
+
});
|
|
104
|
+
expect(result.content[0].type).toEqual('text');
|
|
105
|
+
if (result.content[0].type == 'text') {
|
|
106
|
+
expect(result.content[0].text).toContain('Internal error');
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
//# sourceMappingURL=IsochroneTool.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IsochroneTool.test.js","sourceRoot":"","sources":["../../../src/tools/isochrone-tool/IsochroneTool.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { MapboxApiBasedTool } from '../MapboxApiBasedTool.js';
|
|
3
|
+
declare const MatrixInputSchema: z.ZodObject<{
|
|
4
|
+
coordinates: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, "many">;
|
|
5
|
+
profile: z.ZodEnum<["driving-traffic", "driving", "walking", "cycling"]>;
|
|
6
|
+
annotations: z.ZodOptional<z.ZodEnum<["duration", "distance", "duration,distance", "distance,duration"]>>;
|
|
7
|
+
approaches: z.ZodOptional<z.ZodString>;
|
|
8
|
+
bearings: z.ZodOptional<z.ZodString>;
|
|
9
|
+
destinations: z.ZodOptional<z.ZodString>;
|
|
10
|
+
sources: z.ZodOptional<z.ZodString>;
|
|
11
|
+
}, "strip", z.ZodTypeAny, {
|
|
12
|
+
coordinates: [number, number][];
|
|
13
|
+
profile: "driving-traffic" | "driving" | "walking" | "cycling";
|
|
14
|
+
annotations?: "distance" | "duration" | "duration,distance" | "distance,duration" | undefined;
|
|
15
|
+
approaches?: string | undefined;
|
|
16
|
+
bearings?: string | undefined;
|
|
17
|
+
destinations?: string | undefined;
|
|
18
|
+
sources?: string | undefined;
|
|
19
|
+
}, {
|
|
20
|
+
coordinates: [number, number][];
|
|
21
|
+
profile: "driving-traffic" | "driving" | "walking" | "cycling";
|
|
22
|
+
annotations?: "distance" | "duration" | "duration,distance" | "distance,duration" | undefined;
|
|
23
|
+
approaches?: string | undefined;
|
|
24
|
+
bearings?: string | undefined;
|
|
25
|
+
destinations?: string | undefined;
|
|
26
|
+
sources?: string | undefined;
|
|
27
|
+
}>;
|
|
28
|
+
export declare class MatrixTool extends MapboxApiBasedTool<typeof MatrixInputSchema> {
|
|
29
|
+
name: string;
|
|
30
|
+
description: string;
|
|
31
|
+
constructor();
|
|
32
|
+
protected execute(input: z.infer<typeof MatrixInputSchema>): Promise<any>;
|
|
33
|
+
}
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=MatrixTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MatrixTool.d.ts","sourceRoot":"","sources":["../../../src/tools/matrix-tool/MatrixTool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAI9D,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;EA2ErB,CAAC;AAEH,qBAAa,UAAW,SAAQ,kBAAkB,CAAC,OAAO,iBAAiB,CAAC;IAC1E,IAAI,SAAgB;IACpB,WAAW,SACgF;;cAM3E,OAAO,CACrB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,GACvC,OAAO,CAAC,GAAG,CAAC;CA4LhB"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { URLSearchParams } from 'url';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { MapboxApiBasedTool } from '../MapboxApiBasedTool.js';
|
|
4
|
+
// API documentation: https://docs.mapbox.com/api/navigation/matrix/
|
|
5
|
+
const MatrixInputSchema = z.object({
|
|
6
|
+
coordinates: z
|
|
7
|
+
.array(z.tuple([
|
|
8
|
+
z
|
|
9
|
+
.number()
|
|
10
|
+
.min(-180, 'Longitude must be between -180 and 180 degrees')
|
|
11
|
+
.max(180, 'Longitude must be between -180 and 180 degrees'),
|
|
12
|
+
z
|
|
13
|
+
.number()
|
|
14
|
+
.min(-90, 'Latitude must be between -90 and 90 degrees')
|
|
15
|
+
.max(90, 'Latitude must be between -90 and 90 degrees')
|
|
16
|
+
]))
|
|
17
|
+
.min(2, 'At least two coordinate pairs are required.')
|
|
18
|
+
.max(25, 'Up to 25 coordinate pairs are supported for most profiles (10 for driving-traffic).')
|
|
19
|
+
.describe('Array of [longitude, latitude] coordinate pairs. ' +
|
|
20
|
+
'Must include at least 2 coordinate pairs. ' +
|
|
21
|
+
'Up to 25 coordinates total are supported for most profiles (10 for driving-traffic).'),
|
|
22
|
+
profile: z
|
|
23
|
+
.enum(['driving-traffic', 'driving', 'walking', 'cycling'])
|
|
24
|
+
.describe('Routing profile for different modes of transport. Options: \n' +
|
|
25
|
+
'- driving-traffic: automotive with current traffic conditions (limited to 10 coordinates)\n' +
|
|
26
|
+
'- driving: automotive based on typical traffic\n' +
|
|
27
|
+
'- walking: pedestrian/hiking\n' +
|
|
28
|
+
'- cycling: bicycle'),
|
|
29
|
+
annotations: z
|
|
30
|
+
.enum(['duration', 'distance', 'duration,distance', 'distance,duration'])
|
|
31
|
+
.optional()
|
|
32
|
+
.describe('Specifies the resulting matrices. Possible values are: duration (default), distance, or both values separated by a comma.'),
|
|
33
|
+
approaches: z
|
|
34
|
+
.string()
|
|
35
|
+
.optional()
|
|
36
|
+
.describe('A semicolon-separated list indicating the side of the road from which to approach waypoints. ' +
|
|
37
|
+
'Accepts "unrestricted" (default, route can arrive at the waypoint from either side of the road) ' +
|
|
38
|
+
'or "curb" (route will arrive at the waypoint on the driving_side of the region). ' +
|
|
39
|
+
'If provided, the number of approaches must be the same as the number of waypoints. ' +
|
|
40
|
+
'You can skip a coordinate and show its position with the ; separator.'),
|
|
41
|
+
bearings: z
|
|
42
|
+
.string()
|
|
43
|
+
.optional()
|
|
44
|
+
.describe('A semicolon-separated list of headings and allowed deviation indicating the direction of movement. ' +
|
|
45
|
+
'Input as two comma-separated values per location: a heading course measured clockwise from true north ' +
|
|
46
|
+
'between 0 and 360, and the range of degrees by which the angle can deviate (recommended value is 45° or 90°), ' +
|
|
47
|
+
'formatted as {angle,degrees}. If provided, the number of bearings must equal the number of coordinates. ' +
|
|
48
|
+
'You can skip a coordinate and show its position in the list with the ; separator.'),
|
|
49
|
+
destinations: z
|
|
50
|
+
.string()
|
|
51
|
+
.optional()
|
|
52
|
+
.describe('Use the coordinates at given indices as destinations. ' +
|
|
53
|
+
'Possible values are: a semicolon-separated list of 0-based indices, or "all" (default). ' +
|
|
54
|
+
'The option "all" allows using all coordinates as destinations.'),
|
|
55
|
+
sources: z
|
|
56
|
+
.string()
|
|
57
|
+
.optional()
|
|
58
|
+
.describe('Use the coordinates at given indices as sources. ' +
|
|
59
|
+
'Possible values are: a semicolon-separated list of 0-based indices, or "all" (default). ' +
|
|
60
|
+
'The option "all" allows using all coordinates as sources.')
|
|
61
|
+
});
|
|
62
|
+
export class MatrixTool extends MapboxApiBasedTool {
|
|
63
|
+
name = 'MatrixTool';
|
|
64
|
+
description = 'Calculates travel times and distances between multiple points using Mapbox Matrix API.';
|
|
65
|
+
constructor() {
|
|
66
|
+
super({ inputSchema: MatrixInputSchema });
|
|
67
|
+
}
|
|
68
|
+
async execute(input) {
|
|
69
|
+
// Validate input based on profile type
|
|
70
|
+
if (input.profile === 'driving-traffic' && input.coordinates.length > 10) {
|
|
71
|
+
throw new Error('The driving-traffic profile supports a maximum of 10 coordinate pairs.');
|
|
72
|
+
}
|
|
73
|
+
// Validate approaches parameter if provided
|
|
74
|
+
if (input.approaches &&
|
|
75
|
+
input.approaches.split(';').length !== input.coordinates.length) {
|
|
76
|
+
throw new Error('When provided, the number of approaches (including empty/skipped) must match the number of coordinates.');
|
|
77
|
+
}
|
|
78
|
+
// Validate that all approaches values are either "curb" or "unrestricted"
|
|
79
|
+
if (input.approaches &&
|
|
80
|
+
input.approaches
|
|
81
|
+
.split(';')
|
|
82
|
+
.some((approach) => approach !== '' &&
|
|
83
|
+
approach !== 'curb' &&
|
|
84
|
+
approach !== 'unrestricted')) {
|
|
85
|
+
throw new Error('Approaches parameter contains invalid values. Each value must be either "curb" or "unrestricted".');
|
|
86
|
+
}
|
|
87
|
+
// Validate bearings parameter if provided
|
|
88
|
+
if (input.bearings &&
|
|
89
|
+
input.bearings.split(';').length !== input.coordinates.length) {
|
|
90
|
+
throw new Error('When provided, the number of bearings (including empty/skipped) must match the number of coordinates.');
|
|
91
|
+
}
|
|
92
|
+
// Additional validation for bearings values
|
|
93
|
+
if (input.bearings) {
|
|
94
|
+
const bearingsArr = input.bearings.split(';');
|
|
95
|
+
bearingsArr.forEach((bearing, idx) => {
|
|
96
|
+
if (bearing.trim() === '')
|
|
97
|
+
return; // allow skipped
|
|
98
|
+
const parts = bearing.split(',');
|
|
99
|
+
if (parts.length !== 2) {
|
|
100
|
+
throw new Error(`Invalid bearings format at index ${idx}: '${bearing}'. Each bearing must be two comma-separated numbers (angle,degrees).`);
|
|
101
|
+
}
|
|
102
|
+
const angle = Number(parts[0]);
|
|
103
|
+
const degrees = Number(parts[1]);
|
|
104
|
+
if (isNaN(angle) || angle < 0 || angle > 360) {
|
|
105
|
+
throw new Error(`Invalid bearing angle at index ${idx}: '${parts[0]}'. Angle must be a number between 0 and 360.`);
|
|
106
|
+
}
|
|
107
|
+
if (isNaN(degrees) || degrees < 0 || degrees > 180) {
|
|
108
|
+
throw new Error(`Invalid bearing degrees at index ${idx}: '${parts[1]}'. Degrees must be a number between 0 and 180.`);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
// Validate sources parameter if provided - ensure all indices are valid
|
|
113
|
+
if (input.sources &&
|
|
114
|
+
input.sources !== 'all' &&
|
|
115
|
+
input.sources.split(';').some((index) => {
|
|
116
|
+
const parsedIndex = parseInt(index, 10);
|
|
117
|
+
return (isNaN(parsedIndex) ||
|
|
118
|
+
parsedIndex < 0 ||
|
|
119
|
+
parsedIndex >= input.coordinates.length);
|
|
120
|
+
})) {
|
|
121
|
+
throw new Error('Sources parameter contains invalid indices. All indices must be between 0 and ' +
|
|
122
|
+
(input.coordinates.length - 1) +
|
|
123
|
+
'.');
|
|
124
|
+
}
|
|
125
|
+
// Validate destinations parameter if provided - ensure all indices are valid
|
|
126
|
+
if (input.destinations &&
|
|
127
|
+
input.destinations !== 'all' &&
|
|
128
|
+
input.destinations.split(';').some((index) => {
|
|
129
|
+
const parsedIndex = parseInt(index, 10);
|
|
130
|
+
return (isNaN(parsedIndex) ||
|
|
131
|
+
parsedIndex < 0 ||
|
|
132
|
+
parsedIndex >= input.coordinates.length);
|
|
133
|
+
})) {
|
|
134
|
+
throw new Error('Destinations parameter contains invalid indices. All indices must be between 0 and ' +
|
|
135
|
+
(input.coordinates.length - 1) +
|
|
136
|
+
'.');
|
|
137
|
+
}
|
|
138
|
+
// Validate that when specifying both sources and destinations, all coordinates are used
|
|
139
|
+
if (input.sources &&
|
|
140
|
+
input.sources !== 'all' &&
|
|
141
|
+
input.destinations &&
|
|
142
|
+
input.destinations !== 'all') {
|
|
143
|
+
// Get all unique coordinate indices that are used
|
|
144
|
+
const sourcesIndices = input.sources
|
|
145
|
+
.split(';')
|
|
146
|
+
.map((idx) => parseInt(idx, 10));
|
|
147
|
+
const destinationsIndices = input.destinations
|
|
148
|
+
.split(';')
|
|
149
|
+
.map((idx) => parseInt(idx, 10));
|
|
150
|
+
const usedIndices = new Set([...sourcesIndices, ...destinationsIndices]);
|
|
151
|
+
// Check if all coordinate indices are used
|
|
152
|
+
if (usedIndices.size < input.coordinates.length) {
|
|
153
|
+
throw new Error('When specifying both sources and destinations, all coordinates must be used as either a source or destination.');
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
// Format coordinates for API request
|
|
157
|
+
const joined = input.coordinates
|
|
158
|
+
.map(([lng, lat]) => `${lng},${lat}`)
|
|
159
|
+
.join(';');
|
|
160
|
+
// Build query parameters
|
|
161
|
+
const queryParams = new URLSearchParams();
|
|
162
|
+
queryParams.append('access_token', MapboxApiBasedTool.MAPBOX_ACCESS_TOKEN);
|
|
163
|
+
// Add annotations parameter if specified
|
|
164
|
+
if (input.annotations) {
|
|
165
|
+
queryParams.append('annotations', input.annotations);
|
|
166
|
+
}
|
|
167
|
+
// Add approaches parameter if specified
|
|
168
|
+
if (input.approaches) {
|
|
169
|
+
queryParams.append('approaches', input.approaches);
|
|
170
|
+
}
|
|
171
|
+
// Add bearings parameter if specified
|
|
172
|
+
if (input.bearings) {
|
|
173
|
+
queryParams.append('bearings', input.bearings);
|
|
174
|
+
}
|
|
175
|
+
// Add destinations parameter if specified
|
|
176
|
+
if (input.destinations) {
|
|
177
|
+
queryParams.append('destinations', input.destinations);
|
|
178
|
+
}
|
|
179
|
+
// Add sources parameter if specified
|
|
180
|
+
if (input.sources) {
|
|
181
|
+
queryParams.append('sources', input.sources);
|
|
182
|
+
}
|
|
183
|
+
// Construct the URL for the Matrix API request
|
|
184
|
+
const url = `${MapboxApiBasedTool.MAPBOX_API_ENDPOINT}directions-matrix/v1/mapbox/${input.profile}/${joined}?${queryParams.toString()}`;
|
|
185
|
+
// Make the request
|
|
186
|
+
const response = await fetch(url);
|
|
187
|
+
if (!response.ok) {
|
|
188
|
+
throw new Error(`Request failed with status ${response.status}: ${response.statusText}`);
|
|
189
|
+
}
|
|
190
|
+
// Return the matrix data
|
|
191
|
+
const data = await response.json();
|
|
192
|
+
return data;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=MatrixTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MatrixTool.js","sourceRoot":"","sources":["../../../src/tools/matrix-tool/MatrixTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MatrixTool.test.d.ts","sourceRoot":"","sources":["../../../src/tools/matrix-tool/MatrixTool.test.ts"],"names":[],"mappings":""}
|