@mapbox/mcp-server 0.12.7 → 0.13.0-dev
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/commonjs/config/toolConfig.d.ts +0 -10
- package/dist/commonjs/config/toolConfig.d.ts.map +1 -1
- package/dist/commonjs/config/toolConfig.js +0 -36
- package/dist/commonjs/config/toolConfig.js.map +1 -1
- package/dist/commonjs/resources/compute/ComputeResource.d.ts +20 -0
- package/dist/commonjs/resources/compute/ComputeResource.d.ts.map +1 -0
- package/dist/commonjs/resources/compute/ComputeResource.js +49 -0
- package/dist/commonjs/resources/compute/ComputeResource.js.map +1 -0
- package/dist/commonjs/resources/inline-payload/InlinePayloadResource.d.ts +17 -0
- package/dist/commonjs/resources/inline-payload/InlinePayloadResource.d.ts.map +1 -0
- package/dist/commonjs/resources/inline-payload/InlinePayloadResource.js +46 -0
- package/dist/commonjs/resources/inline-payload/InlinePayloadResource.js.map +1 -0
- package/dist/commonjs/resources/resourceRegistry.d.ts +4 -2
- package/dist/commonjs/resources/resourceRegistry.d.ts.map +1 -1
- package/dist/commonjs/resources/resourceRegistry.js +16 -6
- package/dist/commonjs/resources/resourceRegistry.js.map +1 -1
- package/dist/commonjs/resources/ui-apps/MapAppUIResource.d.ts +27 -0
- package/dist/commonjs/resources/ui-apps/MapAppUIResource.d.ts.map +1 -0
- package/dist/commonjs/resources/ui-apps/{DirectionsAppUIResource.js → MapAppUIResource.js} +15 -17
- package/dist/commonjs/resources/ui-apps/MapAppUIResource.js.map +1 -0
- package/dist/commonjs/resources/ui-apps/mapAppHtml.d.ts +19 -0
- package/dist/commonjs/resources/ui-apps/mapAppHtml.d.ts.map +1 -0
- package/dist/commonjs/resources/ui-apps/mapAppHtml.js +1621 -0
- package/dist/commonjs/resources/ui-apps/mapAppHtml.js.map +1 -0
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.js +46 -41
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.js.map +1 -1
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.d.ts +6 -3
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.js +3 -1
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.js.map +1 -1
- package/dist/commonjs/tools/category-search-tool/buildCategorySearchRequestUrl.d.ts +30 -0
- package/dist/commonjs/tools/category-search-tool/buildCategorySearchRequestUrl.d.ts.map +1 -0
- package/dist/commonjs/tools/category-search-tool/buildCategorySearchRequestUrl.js +39 -0
- package/dist/commonjs/tools/category-search-tool/buildCategorySearchRequestUrl.js.map +1 -0
- package/dist/commonjs/tools/difference-tool/DifferenceTool.d.ts.map +1 -1
- package/dist/commonjs/tools/difference-tool/DifferenceTool.js +19 -3
- package/dist/commonjs/tools/difference-tool/DifferenceTool.js.map +1 -1
- package/dist/commonjs/tools/difference-tool/DifferenceTool.output.schema.d.ts +4 -1
- package/dist/commonjs/tools/difference-tool/DifferenceTool.output.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/difference-tool/DifferenceTool.output.schema.js +7 -3
- package/dist/commonjs/tools/difference-tool/DifferenceTool.output.schema.js.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.d.ts +0 -9
- package/dist/commonjs/tools/directions-tool/DirectionsTool.d.ts.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.js +9 -4
- package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.js.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.js +40 -78
- package/dist/commonjs/tools/directions-tool/DirectionsTool.js.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.d.ts +4 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.js +10 -4
- package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.js.map +1 -1
- package/dist/commonjs/tools/directions-tool/buildDirectionsRequestUrl.d.ts +2 -2
- package/dist/commonjs/tools/directions-tool/buildDirectionsRequestUrl.d.ts.map +1 -1
- package/dist/commonjs/tools/directions-tool/buildDirectionsRequestUrl.js +4 -12
- package/dist/commonjs/tools/directions-tool/buildDirectionsRequestUrl.js.map +1 -1
- package/dist/commonjs/tools/ground-location-tool/GroundLocationTool.d.ts.map +1 -1
- package/dist/commonjs/tools/ground-location-tool/GroundLocationTool.js +52 -18
- package/dist/commonjs/tools/ground-location-tool/GroundLocationTool.js.map +1 -1
- package/dist/commonjs/tools/ground-location-tool/GroundLocationTool.output.schema.d.ts +4 -1
- package/dist/commonjs/tools/ground-location-tool/GroundLocationTool.output.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/ground-location-tool/GroundLocationTool.output.schema.js +7 -3
- package/dist/commonjs/tools/ground-location-tool/GroundLocationTool.output.schema.js.map +1 -1
- package/dist/commonjs/tools/ground-location-tool/buildReverseGeocodeUrl.d.ts +19 -0
- package/dist/commonjs/tools/ground-location-tool/buildReverseGeocodeUrl.d.ts.map +1 -0
- package/dist/commonjs/tools/ground-location-tool/buildReverseGeocodeUrl.js +26 -0
- package/dist/commonjs/tools/ground-location-tool/buildReverseGeocodeUrl.js.map +1 -0
- package/dist/commonjs/tools/intersect-tool/IntersectTool.d.ts.map +1 -1
- package/dist/commonjs/tools/intersect-tool/IntersectTool.js +19 -3
- package/dist/commonjs/tools/intersect-tool/IntersectTool.js.map +1 -1
- package/dist/commonjs/tools/intersect-tool/IntersectTool.output.schema.d.ts +4 -1
- package/dist/commonjs/tools/intersect-tool/IntersectTool.output.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/intersect-tool/IntersectTool.output.schema.js +7 -3
- package/dist/commonjs/tools/intersect-tool/IntersectTool.output.schema.js.map +1 -1
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.d.ts.map +1 -1
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.js +51 -47
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.js.map +1 -1
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.output.schema.d.ts +4 -5
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.output.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.output.schema.js +7 -3
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.output.schema.js.map +1 -1
- package/dist/commonjs/tools/isochrone-tool/buildIsochroneRequestUrl.d.ts +28 -0
- package/dist/commonjs/tools/isochrone-tool/buildIsochroneRequestUrl.d.ts.map +1 -0
- package/dist/commonjs/tools/isochrone-tool/buildIsochroneRequestUrl.js +44 -0
- package/dist/commonjs/tools/isochrone-tool/buildIsochroneRequestUrl.js.map +1 -0
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.d.ts.map +1 -1
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.js +61 -34
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.js.map +1 -1
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts +8 -5
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.js +11 -5
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.js.map +1 -1
- package/dist/commonjs/tools/map-matching-tool/buildMapMatchingRequestUrl.d.ts +25 -0
- package/dist/commonjs/tools/map-matching-tool/buildMapMatchingRequestUrl.d.ts.map +1 -0
- package/dist/commonjs/tools/map-matching-tool/buildMapMatchingRequestUrl.js +33 -0
- package/dist/commonjs/tools/map-matching-tool/buildMapMatchingRequestUrl.js.map +1 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.d.ts.map +1 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.input.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.input.schema.js +19 -4
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.input.schema.js.map +1 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.js +32 -33
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.js.map +1 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.d.ts +3 -5
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.js +6 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.js.map +1 -1
- package/dist/commonjs/tools/optimization-tool/buildOptimizationRequestUrl.d.ts +30 -0
- package/dist/commonjs/tools/optimization-tool/buildOptimizationRequestUrl.d.ts.map +1 -0
- package/dist/commonjs/tools/optimization-tool/buildOptimizationRequestUrl.js +45 -0
- package/dist/commonjs/tools/optimization-tool/buildOptimizationRequestUrl.js.map +1 -0
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.d.ts +60 -0
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.d.ts.map +1 -0
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.input.schema.d.ts +41 -0
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.input.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.input.schema.js +99 -0
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.input.schema.js.map +1 -0
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.js +246 -0
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.js.map +1 -0
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.output.schema.d.ts +97 -0
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.output.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.output.schema.js +35 -0
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.output.schema.js.map +1 -0
- package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.input.schema.d.ts +1 -1
- package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.d.ts +3 -3
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts +10 -0
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts.map +1 -1
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.js +58 -48
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.js.map +1 -1
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts +3 -0
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.js +3 -1
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.js.map +1 -1
- package/dist/commonjs/tools/search-and-geocode-tool/buildSearchAndGeocodeRequestUrl.d.ts +37 -0
- package/dist/commonjs/tools/search-and-geocode-tool/buildSearchAndGeocodeRequestUrl.d.ts.map +1 -0
- package/dist/commonjs/tools/search-and-geocode-tool/buildSearchAndGeocodeRequestUrl.js +51 -0
- package/dist/commonjs/tools/search-and-geocode-tool/buildSearchAndGeocodeRequestUrl.js.map +1 -0
- package/dist/commonjs/tools/shared/polygonSchema.d.ts +15 -0
- package/dist/commonjs/tools/shared/polygonSchema.d.ts.map +1 -1
- package/dist/commonjs/tools/shared/polygonSchema.js +23 -2
- package/dist/commonjs/tools/shared/polygonSchema.js.map +1 -1
- package/dist/commonjs/tools/toolRegistry.d.ts +3 -2
- package/dist/commonjs/tools/toolRegistry.d.ts.map +1 -1
- package/dist/commonjs/tools/toolRegistry.js +2 -0
- package/dist/commonjs/tools/toolRegistry.js.map +1 -1
- package/dist/commonjs/tools/union-tool/UnionTool.d.ts.map +1 -1
- package/dist/commonjs/tools/union-tool/UnionTool.js +22 -3
- package/dist/commonjs/tools/union-tool/UnionTool.js.map +1 -1
- package/dist/commonjs/tools/union-tool/UnionTool.output.schema.d.ts +4 -1
- package/dist/commonjs/tools/union-tool/UnionTool.output.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/union-tool/UnionTool.output.schema.js +7 -3
- package/dist/commonjs/tools/union-tool/UnionTool.output.schema.js.map +1 -1
- package/dist/commonjs/tools/union-tool/buildPolygonOpsMapPayload.d.ts +21 -0
- package/dist/commonjs/tools/union-tool/buildPolygonOpsMapPayload.d.ts.map +1 -0
- package/dist/commonjs/tools/union-tool/buildPolygonOpsMapPayload.js +72 -0
- package/dist/commonjs/tools/union-tool/buildPolygonOpsMapPayload.js.map +1 -0
- package/dist/commonjs/utils/computeRef.d.ts +38 -0
- package/dist/commonjs/utils/computeRef.d.ts.map +1 -0
- package/dist/commonjs/utils/computeRef.js +116 -0
- package/dist/commonjs/utils/computeRef.js.map +1 -0
- package/dist/commonjs/utils/inlinePayloadRef.d.ts +32 -0
- package/dist/commonjs/utils/inlinePayloadRef.d.ts.map +1 -0
- package/dist/commonjs/utils/inlinePayloadRef.js +56 -0
- package/dist/commonjs/utils/inlinePayloadRef.js.map +1 -0
- package/dist/commonjs/utils/mapAppPayload.d.ts +206 -0
- package/dist/commonjs/utils/mapAppPayload.d.ts.map +1 -0
- package/dist/commonjs/utils/mapAppPayload.js +129 -0
- package/dist/commonjs/utils/mapAppPayload.js.map +1 -0
- package/dist/commonjs/utils/selfFetchRef.d.ts +25 -0
- package/dist/commonjs/utils/selfFetchRef.d.ts.map +1 -0
- package/dist/commonjs/utils/selfFetchRef.js +75 -0
- package/dist/commonjs/utils/selfFetchRef.js.map +1 -0
- package/dist/commonjs/utils/storeMapPayload.d.ts +71 -0
- package/dist/commonjs/utils/storeMapPayload.d.ts.map +1 -0
- package/dist/commonjs/utils/storeMapPayload.js +153 -0
- package/dist/commonjs/utils/storeMapPayload.js.map +1 -0
- package/dist/commonjs/version.json +3 -3
- package/dist/esm/config/toolConfig.d.ts +0 -10
- package/dist/esm/config/toolConfig.d.ts.map +1 -1
- package/dist/esm/config/toolConfig.js +0 -35
- package/dist/esm/config/toolConfig.js.map +1 -1
- package/dist/esm/resources/compute/ComputeResource.d.ts +20 -0
- package/dist/esm/resources/compute/ComputeResource.d.ts.map +1 -0
- package/dist/esm/resources/compute/ComputeResource.js +45 -0
- package/dist/esm/resources/compute/ComputeResource.js.map +1 -0
- package/dist/esm/resources/inline-payload/InlinePayloadResource.d.ts +17 -0
- package/dist/esm/resources/inline-payload/InlinePayloadResource.d.ts.map +1 -0
- package/dist/esm/resources/inline-payload/InlinePayloadResource.js +42 -0
- package/dist/esm/resources/inline-payload/InlinePayloadResource.js.map +1 -0
- package/dist/esm/resources/resourceRegistry.d.ts +4 -2
- package/dist/esm/resources/resourceRegistry.d.ts.map +1 -1
- package/dist/esm/resources/resourceRegistry.js +16 -6
- package/dist/esm/resources/resourceRegistry.js.map +1 -1
- package/dist/esm/resources/ui-apps/MapAppUIResource.d.ts +27 -0
- package/dist/esm/resources/ui-apps/MapAppUIResource.d.ts.map +1 -0
- package/dist/esm/resources/ui-apps/{DirectionsAppUIResource.js → MapAppUIResource.js} +13 -15
- package/dist/esm/resources/ui-apps/MapAppUIResource.js.map +1 -0
- package/dist/esm/resources/ui-apps/mapAppHtml.d.ts +19 -0
- package/dist/esm/resources/ui-apps/mapAppHtml.d.ts.map +1 -0
- package/dist/esm/resources/ui-apps/mapAppHtml.js +1617 -0
- package/dist/esm/resources/ui-apps/mapAppHtml.js.map +1 -0
- package/dist/esm/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
- package/dist/esm/tools/category-search-tool/CategorySearchTool.js +46 -41
- package/dist/esm/tools/category-search-tool/CategorySearchTool.js.map +1 -1
- package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.d.ts +6 -3
- package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.d.ts.map +1 -1
- package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.js +3 -1
- package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.js.map +1 -1
- package/dist/esm/tools/category-search-tool/buildCategorySearchRequestUrl.d.ts +30 -0
- package/dist/esm/tools/category-search-tool/buildCategorySearchRequestUrl.d.ts.map +1 -0
- package/dist/esm/tools/category-search-tool/buildCategorySearchRequestUrl.js +36 -0
- package/dist/esm/tools/category-search-tool/buildCategorySearchRequestUrl.js.map +1 -0
- package/dist/esm/tools/difference-tool/DifferenceTool.d.ts.map +1 -1
- package/dist/esm/tools/difference-tool/DifferenceTool.js +19 -3
- package/dist/esm/tools/difference-tool/DifferenceTool.js.map +1 -1
- package/dist/esm/tools/difference-tool/DifferenceTool.output.schema.d.ts +4 -1
- package/dist/esm/tools/difference-tool/DifferenceTool.output.schema.d.ts.map +1 -1
- package/dist/esm/tools/difference-tool/DifferenceTool.output.schema.js +7 -3
- package/dist/esm/tools/difference-tool/DifferenceTool.output.schema.js.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.d.ts +0 -9
- package/dist/esm/tools/directions-tool/DirectionsTool.d.ts.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.d.ts.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.js +9 -4
- package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.js.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.js +41 -79
- package/dist/esm/tools/directions-tool/DirectionsTool.js.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.d.ts +4 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.d.ts.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.js +10 -4
- package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.js.map +1 -1
- package/dist/esm/tools/directions-tool/buildDirectionsRequestUrl.d.ts +2 -2
- package/dist/esm/tools/directions-tool/buildDirectionsRequestUrl.d.ts.map +1 -1
- package/dist/esm/tools/directions-tool/buildDirectionsRequestUrl.js +4 -12
- package/dist/esm/tools/directions-tool/buildDirectionsRequestUrl.js.map +1 -1
- package/dist/esm/tools/ground-location-tool/GroundLocationTool.d.ts.map +1 -1
- package/dist/esm/tools/ground-location-tool/GroundLocationTool.js +52 -18
- package/dist/esm/tools/ground-location-tool/GroundLocationTool.js.map +1 -1
- package/dist/esm/tools/ground-location-tool/GroundLocationTool.output.schema.d.ts +4 -1
- package/dist/esm/tools/ground-location-tool/GroundLocationTool.output.schema.d.ts.map +1 -1
- package/dist/esm/tools/ground-location-tool/GroundLocationTool.output.schema.js +7 -3
- package/dist/esm/tools/ground-location-tool/GroundLocationTool.output.schema.js.map +1 -1
- package/dist/esm/tools/ground-location-tool/buildReverseGeocodeUrl.d.ts +19 -0
- package/dist/esm/tools/ground-location-tool/buildReverseGeocodeUrl.d.ts.map +1 -0
- package/dist/esm/tools/ground-location-tool/buildReverseGeocodeUrl.js +23 -0
- package/dist/esm/tools/ground-location-tool/buildReverseGeocodeUrl.js.map +1 -0
- package/dist/esm/tools/intersect-tool/IntersectTool.d.ts.map +1 -1
- package/dist/esm/tools/intersect-tool/IntersectTool.js +19 -3
- package/dist/esm/tools/intersect-tool/IntersectTool.js.map +1 -1
- package/dist/esm/tools/intersect-tool/IntersectTool.output.schema.d.ts +4 -1
- package/dist/esm/tools/intersect-tool/IntersectTool.output.schema.d.ts.map +1 -1
- package/dist/esm/tools/intersect-tool/IntersectTool.output.schema.js +7 -3
- package/dist/esm/tools/intersect-tool/IntersectTool.output.schema.js.map +1 -1
- package/dist/esm/tools/isochrone-tool/IsochroneTool.d.ts.map +1 -1
- package/dist/esm/tools/isochrone-tool/IsochroneTool.js +51 -47
- package/dist/esm/tools/isochrone-tool/IsochroneTool.js.map +1 -1
- package/dist/esm/tools/isochrone-tool/IsochroneTool.output.schema.d.ts +4 -5
- package/dist/esm/tools/isochrone-tool/IsochroneTool.output.schema.d.ts.map +1 -1
- package/dist/esm/tools/isochrone-tool/IsochroneTool.output.schema.js +7 -3
- package/dist/esm/tools/isochrone-tool/IsochroneTool.output.schema.js.map +1 -1
- package/dist/esm/tools/isochrone-tool/buildIsochroneRequestUrl.d.ts +28 -0
- package/dist/esm/tools/isochrone-tool/buildIsochroneRequestUrl.d.ts.map +1 -0
- package/dist/esm/tools/isochrone-tool/buildIsochroneRequestUrl.js +41 -0
- package/dist/esm/tools/isochrone-tool/buildIsochroneRequestUrl.js.map +1 -0
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.d.ts.map +1 -1
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.js +61 -34
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.js.map +1 -1
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts +8 -5
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts.map +1 -1
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.js +11 -5
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.js.map +1 -1
- package/dist/esm/tools/map-matching-tool/buildMapMatchingRequestUrl.d.ts +25 -0
- package/dist/esm/tools/map-matching-tool/buildMapMatchingRequestUrl.d.ts.map +1 -0
- package/dist/esm/tools/map-matching-tool/buildMapMatchingRequestUrl.js +30 -0
- package/dist/esm/tools/map-matching-tool/buildMapMatchingRequestUrl.js.map +1 -0
- package/dist/esm/tools/optimization-tool/OptimizationTool.d.ts.map +1 -1
- package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.d.ts.map +1 -1
- package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.js +19 -4
- package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.js.map +1 -1
- package/dist/esm/tools/optimization-tool/OptimizationTool.js +32 -33
- package/dist/esm/tools/optimization-tool/OptimizationTool.js.map +1 -1
- package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.d.ts +3 -5
- package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.d.ts.map +1 -1
- package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.js +6 -1
- package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.js.map +1 -1
- package/dist/esm/tools/optimization-tool/buildOptimizationRequestUrl.d.ts +30 -0
- package/dist/esm/tools/optimization-tool/buildOptimizationRequestUrl.d.ts.map +1 -0
- package/dist/esm/tools/optimization-tool/buildOptimizationRequestUrl.js +42 -0
- package/dist/esm/tools/optimization-tool/buildOptimizationRequestUrl.js.map +1 -0
- package/dist/esm/tools/render-map-tool/RenderMapTool.d.ts +60 -0
- package/dist/esm/tools/render-map-tool/RenderMapTool.d.ts.map +1 -0
- package/dist/esm/tools/render-map-tool/RenderMapTool.input.schema.d.ts +41 -0
- package/dist/esm/tools/render-map-tool/RenderMapTool.input.schema.d.ts.map +1 -0
- package/dist/esm/tools/render-map-tool/RenderMapTool.input.schema.js +96 -0
- package/dist/esm/tools/render-map-tool/RenderMapTool.input.schema.js.map +1 -0
- package/dist/esm/tools/render-map-tool/RenderMapTool.js +242 -0
- package/dist/esm/tools/render-map-tool/RenderMapTool.js.map +1 -0
- package/dist/esm/tools/render-map-tool/RenderMapTool.output.schema.d.ts +97 -0
- package/dist/esm/tools/render-map-tool/RenderMapTool.output.schema.d.ts.map +1 -0
- package/dist/esm/tools/render-map-tool/RenderMapTool.output.schema.js +32 -0
- package/dist/esm/tools/render-map-tool/RenderMapTool.output.schema.js.map +1 -0
- package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.input.schema.d.ts +1 -1
- package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.d.ts +3 -3
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts +10 -0
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts.map +1 -1
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.js +58 -48
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.js.map +1 -1
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts +3 -0
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts.map +1 -1
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.js +3 -1
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.js.map +1 -1
- package/dist/esm/tools/search-and-geocode-tool/buildSearchAndGeocodeRequestUrl.d.ts +37 -0
- package/dist/esm/tools/search-and-geocode-tool/buildSearchAndGeocodeRequestUrl.d.ts.map +1 -0
- package/dist/esm/tools/search-and-geocode-tool/buildSearchAndGeocodeRequestUrl.js +48 -0
- package/dist/esm/tools/search-and-geocode-tool/buildSearchAndGeocodeRequestUrl.js.map +1 -0
- package/dist/esm/tools/shared/polygonSchema.d.ts +15 -0
- package/dist/esm/tools/shared/polygonSchema.d.ts.map +1 -1
- package/dist/esm/tools/shared/polygonSchema.js +23 -2
- package/dist/esm/tools/shared/polygonSchema.js.map +1 -1
- package/dist/esm/tools/toolRegistry.d.ts +3 -2
- package/dist/esm/tools/toolRegistry.d.ts.map +1 -1
- package/dist/esm/tools/toolRegistry.js +2 -0
- package/dist/esm/tools/toolRegistry.js.map +1 -1
- package/dist/esm/tools/union-tool/UnionTool.d.ts.map +1 -1
- package/dist/esm/tools/union-tool/UnionTool.js +22 -3
- package/dist/esm/tools/union-tool/UnionTool.js.map +1 -1
- package/dist/esm/tools/union-tool/UnionTool.output.schema.d.ts +4 -1
- package/dist/esm/tools/union-tool/UnionTool.output.schema.d.ts.map +1 -1
- package/dist/esm/tools/union-tool/UnionTool.output.schema.js +7 -3
- package/dist/esm/tools/union-tool/UnionTool.output.schema.js.map +1 -1
- package/dist/esm/tools/union-tool/buildPolygonOpsMapPayload.d.ts +21 -0
- package/dist/esm/tools/union-tool/buildPolygonOpsMapPayload.d.ts.map +1 -0
- package/dist/esm/tools/union-tool/buildPolygonOpsMapPayload.js +69 -0
- package/dist/esm/tools/union-tool/buildPolygonOpsMapPayload.js.map +1 -0
- package/dist/esm/utils/computeRef.d.ts +38 -0
- package/dist/esm/utils/computeRef.d.ts.map +1 -0
- package/dist/esm/utils/computeRef.js +111 -0
- package/dist/esm/utils/computeRef.js.map +1 -0
- package/dist/esm/utils/inlinePayloadRef.d.ts +32 -0
- package/dist/esm/utils/inlinePayloadRef.d.ts.map +1 -0
- package/dist/esm/utils/inlinePayloadRef.js +51 -0
- package/dist/esm/utils/inlinePayloadRef.js.map +1 -0
- package/dist/esm/utils/mapAppPayload.d.ts +206 -0
- package/dist/esm/utils/mapAppPayload.d.ts.map +1 -0
- package/dist/esm/utils/mapAppPayload.js +124 -0
- package/dist/esm/utils/mapAppPayload.js.map +1 -0
- package/dist/esm/utils/selfFetchRef.d.ts +25 -0
- package/dist/esm/utils/selfFetchRef.d.ts.map +1 -0
- package/dist/esm/utils/selfFetchRef.js +70 -0
- package/dist/esm/utils/selfFetchRef.js.map +1 -0
- package/dist/esm/utils/storeMapPayload.d.ts +71 -0
- package/dist/esm/utils/storeMapPayload.d.ts.map +1 -0
- package/dist/esm/utils/storeMapPayload.js +145 -0
- package/dist/esm/utils/storeMapPayload.js.map +1 -0
- package/dist/esm/version.json +3 -3
- package/package.json +2 -2
- package/dist/commonjs/resources/ui-apps/DirectionsAppUIResource.d.ts +0 -29
- package/dist/commonjs/resources/ui-apps/DirectionsAppUIResource.d.ts.map +0 -1
- package/dist/commonjs/resources/ui-apps/DirectionsAppUIResource.js.map +0 -1
- package/dist/commonjs/resources/ui-apps/directionsAppHtml.d.ts +0 -45
- package/dist/commonjs/resources/ui-apps/directionsAppHtml.d.ts.map +0 -1
- package/dist/commonjs/resources/ui-apps/directionsAppHtml.js +0 -640
- package/dist/commonjs/resources/ui-apps/directionsAppHtml.js.map +0 -1
- package/dist/esm/resources/ui-apps/DirectionsAppUIResource.d.ts +0 -29
- package/dist/esm/resources/ui-apps/DirectionsAppUIResource.d.ts.map +0 -1
- package/dist/esm/resources/ui-apps/DirectionsAppUIResource.js.map +0 -1
- package/dist/esm/resources/ui-apps/directionsAppHtml.d.ts +0 -45
- package/dist/esm/resources/ui-apps/directionsAppHtml.d.ts.map +0 -1
- package/dist/esm/resources/ui-apps/directionsAppHtml.js +0 -636
- package/dist/esm/resources/ui-apps/directionsAppHtml.js.map +0 -1
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Payload format for the generic Mapbox MCP App (`ui://mapbox/map-app/...`).
|
|
4
|
+
*
|
|
5
|
+
* Tools that want to render their result on a live Mapbox GL JS map produce
|
|
6
|
+
* a `MapAppPayload` and attach it to the tool result at `_meta.ui.payload`.
|
|
7
|
+
* The shared iframe template reads it and translates each entry into
|
|
8
|
+
* `map.addSource`/`map.addLayer`/`new mapboxgl.Marker` calls.
|
|
9
|
+
*
|
|
10
|
+
* The payload is intentionally a thin pass-through to Mapbox Style spec
|
|
11
|
+
* `paint` and `layout` objects rather than its own DSL — the iframe just
|
|
12
|
+
* forwards them to GL JS. That keeps the spec surface small and avoids
|
|
13
|
+
* reinventing a chunk of the style spec over postMessage.
|
|
14
|
+
*/
|
|
15
|
+
export type Geometry = {
|
|
16
|
+
type: 'Point';
|
|
17
|
+
coordinates: [number, number];
|
|
18
|
+
} | {
|
|
19
|
+
type: 'LineString';
|
|
20
|
+
coordinates: [number, number][];
|
|
21
|
+
} | {
|
|
22
|
+
type: 'Polygon';
|
|
23
|
+
coordinates: [number, number][][];
|
|
24
|
+
} | {
|
|
25
|
+
type: 'MultiPolygon';
|
|
26
|
+
coordinates: [number, number][][][];
|
|
27
|
+
};
|
|
28
|
+
export type Feature = {
|
|
29
|
+
type: 'Feature';
|
|
30
|
+
geometry: Geometry;
|
|
31
|
+
properties?: Record<string, unknown>;
|
|
32
|
+
};
|
|
33
|
+
export type FeatureCollection = {
|
|
34
|
+
type: 'FeatureCollection';
|
|
35
|
+
features: Feature[];
|
|
36
|
+
};
|
|
37
|
+
export interface MapAppLayer {
|
|
38
|
+
/** Unique within the payload — used as both source id and layer id. */
|
|
39
|
+
id: string;
|
|
40
|
+
type: 'fill' | 'line' | 'circle' | 'symbol';
|
|
41
|
+
data: Feature | FeatureCollection;
|
|
42
|
+
/** Mapbox Style spec paint object, passed through to addLayer. */
|
|
43
|
+
paint?: Record<string, unknown>;
|
|
44
|
+
/** Mapbox Style spec layout object, passed through to addLayer. */
|
|
45
|
+
layout?: Record<string, unknown>;
|
|
46
|
+
}
|
|
47
|
+
export interface MapAppMarker {
|
|
48
|
+
coordinates: [number, number];
|
|
49
|
+
/**
|
|
50
|
+
* Visual style:
|
|
51
|
+
* - `pin`: default Mapbox marker
|
|
52
|
+
* - `numbered`: circular badge containing `label` (e.g. visit order)
|
|
53
|
+
* - `start`/`end`: green/red circular badge (route endpoints)
|
|
54
|
+
*/
|
|
55
|
+
style?: 'pin' | 'numbered' | 'start' | 'end';
|
|
56
|
+
/** Required when style === 'numbered'. */
|
|
57
|
+
label?: string;
|
|
58
|
+
/** Optional CSS color override; defaults are style-derived. */
|
|
59
|
+
color?: string;
|
|
60
|
+
/** Popup text (optional). */
|
|
61
|
+
popup?: string;
|
|
62
|
+
}
|
|
63
|
+
export interface MapAppLegendEntry {
|
|
64
|
+
label: string;
|
|
65
|
+
color: string;
|
|
66
|
+
opacity?: number;
|
|
67
|
+
}
|
|
68
|
+
export interface MapAppCamera {
|
|
69
|
+
center?: [number, number];
|
|
70
|
+
zoom?: number;
|
|
71
|
+
/** If set, takes precedence over center/zoom and over auto-fit. */
|
|
72
|
+
bounds?: [[number, number], [number, number]];
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* For responses >50KB where the geometry is offloaded to a temp resource:
|
|
76
|
+
* the iframe will fetch this URI via `resources/read` (host bridge) and
|
|
77
|
+
* merge the returned GeoJSON into the named layer.
|
|
78
|
+
*/
|
|
79
|
+
export interface MapAppDeferredLayer {
|
|
80
|
+
resourceUri: string;
|
|
81
|
+
layerId: string;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* A layer the iframe must fetch and build *itself*, directly from the
|
|
85
|
+
* Mapbox API using its own public token — rather than server-computed
|
|
86
|
+
* geometry passed through a ref. Used by tools whose geometry is a single
|
|
87
|
+
* Mapbox API call away from the tool's own input params (e.g. directions,
|
|
88
|
+
* isochrone, map matching, search, category search, trip optimization),
|
|
89
|
+
* so the map preview never depends on server-side storage that a process
|
|
90
|
+
* restart or a conversation rehydration could invalidate. See
|
|
91
|
+
* `src/utils/selfFetchRef.ts` and the `selffetch` handling in
|
|
92
|
+
* `mapAppHtml.ts`.
|
|
93
|
+
*/
|
|
94
|
+
export interface MapAppSelfFetch {
|
|
95
|
+
tool: 'directions' | 'isochrone' | 'map_matching' | 'search' | 'category_search' | 'optimization' | 'ground_location';
|
|
96
|
+
params: Record<string, unknown>;
|
|
97
|
+
}
|
|
98
|
+
export interface MapAppPayload {
|
|
99
|
+
/** Short header chip shown in the top-left of the iframe. */
|
|
100
|
+
summary?: string;
|
|
101
|
+
/** Layers to add to the map (in order). */
|
|
102
|
+
layers: MapAppLayer[];
|
|
103
|
+
markers?: MapAppMarker[];
|
|
104
|
+
/** Bottom-left legend rows (color swatch + label). */
|
|
105
|
+
legend?: MapAppLegendEntry[];
|
|
106
|
+
/** Optional initial camera; otherwise auto-fits to the union of all data. */
|
|
107
|
+
camera?: MapAppCamera;
|
|
108
|
+
/** Optional fetch-on-render hook for large geometries. */
|
|
109
|
+
defer?: MapAppDeferredLayer;
|
|
110
|
+
/** Layers the iframe fetches and builds itself, post-initial-render. */
|
|
111
|
+
selfFetch?: MapAppSelfFetch[];
|
|
112
|
+
}
|
|
113
|
+
export declare const MapAppPayloadSchema: z.ZodObject<{
|
|
114
|
+
summary: z.ZodOptional<z.ZodString>;
|
|
115
|
+
layers: z.ZodArray<z.ZodObject<{
|
|
116
|
+
id: z.ZodString;
|
|
117
|
+
type: z.ZodEnum<{
|
|
118
|
+
symbol: "symbol";
|
|
119
|
+
fill: "fill";
|
|
120
|
+
line: "line";
|
|
121
|
+
circle: "circle";
|
|
122
|
+
}>;
|
|
123
|
+
data: z.ZodUnion<readonly [z.ZodObject<{
|
|
124
|
+
type: z.ZodLiteral<"Feature">;
|
|
125
|
+
geometry: z.ZodObject<{
|
|
126
|
+
type: z.ZodEnum<{
|
|
127
|
+
Point: "Point";
|
|
128
|
+
LineString: "LineString";
|
|
129
|
+
Polygon: "Polygon";
|
|
130
|
+
MultiPolygon: "MultiPolygon";
|
|
131
|
+
}>;
|
|
132
|
+
coordinates: z.ZodUnknown;
|
|
133
|
+
}, z.core.$strip>;
|
|
134
|
+
properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
135
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
136
|
+
type: z.ZodLiteral<"FeatureCollection">;
|
|
137
|
+
features: z.ZodArray<z.ZodObject<{
|
|
138
|
+
type: z.ZodLiteral<"Feature">;
|
|
139
|
+
geometry: z.ZodObject<{
|
|
140
|
+
type: z.ZodEnum<{
|
|
141
|
+
Point: "Point";
|
|
142
|
+
LineString: "LineString";
|
|
143
|
+
Polygon: "Polygon";
|
|
144
|
+
MultiPolygon: "MultiPolygon";
|
|
145
|
+
}>;
|
|
146
|
+
coordinates: z.ZodUnknown;
|
|
147
|
+
}, z.core.$strip>;
|
|
148
|
+
properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
149
|
+
}, z.core.$strip>>;
|
|
150
|
+
}, z.core.$strip>]>;
|
|
151
|
+
paint: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
152
|
+
layout: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
153
|
+
}, z.core.$strip>>;
|
|
154
|
+
markers: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
155
|
+
coordinates: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
|
|
156
|
+
style: z.ZodOptional<z.ZodEnum<{
|
|
157
|
+
start: "start";
|
|
158
|
+
pin: "pin";
|
|
159
|
+
numbered: "numbered";
|
|
160
|
+
end: "end";
|
|
161
|
+
}>>;
|
|
162
|
+
label: z.ZodOptional<z.ZodString>;
|
|
163
|
+
color: z.ZodOptional<z.ZodString>;
|
|
164
|
+
popup: z.ZodOptional<z.ZodString>;
|
|
165
|
+
}, z.core.$strip>>>;
|
|
166
|
+
legend: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
167
|
+
label: z.ZodString;
|
|
168
|
+
color: z.ZodString;
|
|
169
|
+
opacity: z.ZodOptional<z.ZodNumber>;
|
|
170
|
+
}, z.core.$strip>>>;
|
|
171
|
+
camera: z.ZodOptional<z.ZodObject<{
|
|
172
|
+
center: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
|
|
173
|
+
zoom: z.ZodOptional<z.ZodNumber>;
|
|
174
|
+
bounds: z.ZodOptional<z.ZodTuple<[z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>], null>>;
|
|
175
|
+
}, z.core.$strip>>;
|
|
176
|
+
selfFetch: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
177
|
+
tool: z.ZodEnum<{
|
|
178
|
+
search: "search";
|
|
179
|
+
directions: "directions";
|
|
180
|
+
isochrone: "isochrone";
|
|
181
|
+
map_matching: "map_matching";
|
|
182
|
+
category_search: "category_search";
|
|
183
|
+
optimization: "optimization";
|
|
184
|
+
ground_location: "ground_location";
|
|
185
|
+
}>;
|
|
186
|
+
params: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
187
|
+
}, z.core.$strip>>>;
|
|
188
|
+
}, z.core.$strip>;
|
|
189
|
+
/**
|
|
190
|
+
* Decode a Mapbox polyline string (precision 5 by default) to a GeoJSON
|
|
191
|
+
* LineString. Used tool-side so the iframe never has to do this — the
|
|
192
|
+
* generic renderer only ever sees GeoJSON.
|
|
193
|
+
*
|
|
194
|
+
* Returns null if the decoded coordinates fall outside lng/lat bounds,
|
|
195
|
+
* which can happen if the precision is wrong (the Directions API can emit
|
|
196
|
+
* polyline6 when `geometries=polyline6`). Callers should try precision 6
|
|
197
|
+
* as a fallback.
|
|
198
|
+
*/
|
|
199
|
+
export declare function decodePolyline(str: string, precision?: number): [number, number][] | null;
|
|
200
|
+
/**
|
|
201
|
+
* Convenience: decode polyline with precision-5 then precision-6 fallback.
|
|
202
|
+
* If both produce out-of-range coordinates, returns null and the caller
|
|
203
|
+
* should skip emitting a map-app payload (the geometry can't be drawn).
|
|
204
|
+
*/
|
|
205
|
+
export declare function decodePolylineWithFallback(str: string): [number, number][] | null;
|
|
206
|
+
//# sourceMappingURL=mapAppPayload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapAppPayload.d.ts","sourceRoot":"","sources":["../../../src/utils/mapAppPayload.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Mapbox, Inc.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.MapAppPayloadSchema = void 0;
|
|
6
|
+
exports.decodePolyline = decodePolyline;
|
|
7
|
+
exports.decodePolylineWithFallback = decodePolylineWithFallback;
|
|
8
|
+
const zod_1 = require("zod");
|
|
9
|
+
// Zod mirror of MapAppPayload, kept loose on paint/layout/geometry internals
|
|
10
|
+
// (those are already validated by construction in the payload builders) -
|
|
11
|
+
// this exists so `render_map_tool` can declare the inline payload shape on
|
|
12
|
+
// its output schema without a strict validator stripping it. See
|
|
13
|
+
// RenderMapTool.output.schema.ts for why the inline copy matters.
|
|
14
|
+
const GeometrySchema = zod_1.z.object({
|
|
15
|
+
type: zod_1.z.enum(['Point', 'LineString', 'Polygon', 'MultiPolygon']),
|
|
16
|
+
coordinates: zod_1.z.unknown()
|
|
17
|
+
});
|
|
18
|
+
const FeatureSchema = zod_1.z.object({
|
|
19
|
+
type: zod_1.z.literal('Feature'),
|
|
20
|
+
geometry: GeometrySchema,
|
|
21
|
+
properties: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional()
|
|
22
|
+
});
|
|
23
|
+
const FeatureCollectionSchema = zod_1.z.object({
|
|
24
|
+
type: zod_1.z.literal('FeatureCollection'),
|
|
25
|
+
features: zod_1.z.array(FeatureSchema)
|
|
26
|
+
});
|
|
27
|
+
const MapAppLayerSchema = zod_1.z.object({
|
|
28
|
+
id: zod_1.z.string(),
|
|
29
|
+
type: zod_1.z.enum(['fill', 'line', 'circle', 'symbol']),
|
|
30
|
+
data: zod_1.z.union([FeatureSchema, FeatureCollectionSchema]),
|
|
31
|
+
paint: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
|
|
32
|
+
layout: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional()
|
|
33
|
+
});
|
|
34
|
+
const MapAppMarkerSchema = zod_1.z.object({
|
|
35
|
+
coordinates: zod_1.z.tuple([zod_1.z.number(), zod_1.z.number()]),
|
|
36
|
+
style: zod_1.z.enum(['pin', 'numbered', 'start', 'end']).optional(),
|
|
37
|
+
label: zod_1.z.string().optional(),
|
|
38
|
+
color: zod_1.z.string().optional(),
|
|
39
|
+
popup: zod_1.z.string().optional()
|
|
40
|
+
});
|
|
41
|
+
const MapAppLegendEntrySchema = zod_1.z.object({
|
|
42
|
+
label: zod_1.z.string(),
|
|
43
|
+
color: zod_1.z.string(),
|
|
44
|
+
opacity: zod_1.z.number().optional()
|
|
45
|
+
});
|
|
46
|
+
const MapAppCameraSchema = zod_1.z.object({
|
|
47
|
+
center: zod_1.z.tuple([zod_1.z.number(), zod_1.z.number()]).optional(),
|
|
48
|
+
zoom: zod_1.z.number().optional(),
|
|
49
|
+
bounds: zod_1.z
|
|
50
|
+
.tuple([
|
|
51
|
+
zod_1.z.tuple([zod_1.z.number(), zod_1.z.number()]),
|
|
52
|
+
zod_1.z.tuple([zod_1.z.number(), zod_1.z.number()])
|
|
53
|
+
])
|
|
54
|
+
.optional()
|
|
55
|
+
});
|
|
56
|
+
const MapAppSelfFetchSchema = zod_1.z.object({
|
|
57
|
+
tool: zod_1.z.enum([
|
|
58
|
+
'directions',
|
|
59
|
+
'isochrone',
|
|
60
|
+
'map_matching',
|
|
61
|
+
'search',
|
|
62
|
+
'category_search',
|
|
63
|
+
'optimization',
|
|
64
|
+
'ground_location'
|
|
65
|
+
]),
|
|
66
|
+
params: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown())
|
|
67
|
+
});
|
|
68
|
+
exports.MapAppPayloadSchema = zod_1.z.object({
|
|
69
|
+
summary: zod_1.z.string().optional(),
|
|
70
|
+
layers: zod_1.z.array(MapAppLayerSchema),
|
|
71
|
+
markers: zod_1.z.array(MapAppMarkerSchema).optional(),
|
|
72
|
+
legend: zod_1.z.array(MapAppLegendEntrySchema).optional(),
|
|
73
|
+
camera: MapAppCameraSchema.optional(),
|
|
74
|
+
selfFetch: zod_1.z.array(MapAppSelfFetchSchema).optional()
|
|
75
|
+
});
|
|
76
|
+
/**
|
|
77
|
+
* Decode a Mapbox polyline string (precision 5 by default) to a GeoJSON
|
|
78
|
+
* LineString. Used tool-side so the iframe never has to do this — the
|
|
79
|
+
* generic renderer only ever sees GeoJSON.
|
|
80
|
+
*
|
|
81
|
+
* Returns null if the decoded coordinates fall outside lng/lat bounds,
|
|
82
|
+
* which can happen if the precision is wrong (the Directions API can emit
|
|
83
|
+
* polyline6 when `geometries=polyline6`). Callers should try precision 6
|
|
84
|
+
* as a fallback.
|
|
85
|
+
*/
|
|
86
|
+
function decodePolyline(str, precision = 5) {
|
|
87
|
+
if (!str || typeof str !== 'string')
|
|
88
|
+
return null;
|
|
89
|
+
const factor = Math.pow(10, precision);
|
|
90
|
+
const coords = [];
|
|
91
|
+
let lat = 0;
|
|
92
|
+
let lng = 0;
|
|
93
|
+
let i = 0;
|
|
94
|
+
while (i < str.length) {
|
|
95
|
+
let shift = 0;
|
|
96
|
+
let result = 0;
|
|
97
|
+
let b;
|
|
98
|
+
do {
|
|
99
|
+
b = str.charCodeAt(i++) - 63;
|
|
100
|
+
result |= (b & 0x1f) << shift;
|
|
101
|
+
shift += 5;
|
|
102
|
+
} while (b >= 0x20 && i < str.length);
|
|
103
|
+
lat += result & 1 ? ~(result >> 1) : result >> 1;
|
|
104
|
+
shift = 0;
|
|
105
|
+
result = 0;
|
|
106
|
+
do {
|
|
107
|
+
b = str.charCodeAt(i++) - 63;
|
|
108
|
+
result |= (b & 0x1f) << shift;
|
|
109
|
+
shift += 5;
|
|
110
|
+
} while (b >= 0x20 && i < str.length);
|
|
111
|
+
lng += result & 1 ? ~(result >> 1) : result >> 1;
|
|
112
|
+
const lngOut = lng / factor;
|
|
113
|
+
const latOut = lat / factor;
|
|
114
|
+
if (lngOut < -180 || lngOut > 180 || latOut < -90 || latOut > 90) {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
coords.push([lngOut, latOut]);
|
|
118
|
+
}
|
|
119
|
+
return coords;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Convenience: decode polyline with precision-5 then precision-6 fallback.
|
|
123
|
+
* If both produce out-of-range coordinates, returns null and the caller
|
|
124
|
+
* should skip emitting a map-app payload (the geometry can't be drawn).
|
|
125
|
+
*/
|
|
126
|
+
function decodePolylineWithFallback(str) {
|
|
127
|
+
return decodePolyline(str, 5) ?? decodePolyline(str, 6);
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=mapAppPayload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapAppPayload.js","sourceRoot":"","sources":["../../../src/utils/mapAppPayload.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { MapAppPayload, MapAppSelfFetch } from './mapAppPayload.js';
|
|
2
|
+
export type SelfFetchTool = MapAppSelfFetch['tool'];
|
|
3
|
+
/**
|
|
4
|
+
* Build a ref for a tool whose map preview is fetched by the iframe itself,
|
|
5
|
+
* directly from the Mapbox API using its own public token — rather than
|
|
6
|
+
* server-computed geometry stashed behind an opaque UUID.
|
|
7
|
+
*
|
|
8
|
+
* `params` is the tool's own call arguments (already visible to the LLM —
|
|
9
|
+
* nothing new is exposed), base64'd into the URI. Unlike `mapbox://temp/`
|
|
10
|
+
* refs, there is nothing server-side to lose on a restart: resolving this
|
|
11
|
+
* ref just unwraps the params back into a `MapAppPayload.selfFetch` entry
|
|
12
|
+
* for the iframe to act on, with no I/O and no store involved.
|
|
13
|
+
*/
|
|
14
|
+
export declare function buildSelfFetchRef(tool: SelfFetchTool, params: Record<string, unknown>): string;
|
|
15
|
+
export declare function isSelfFetchRef(uri: string): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Unwrap a `mapbox://selffetch/...` ref back into a minimal `MapAppPayload`
|
|
18
|
+
* carrying only a `selfFetch` entry — no layers/markers of its own. The
|
|
19
|
+
* iframe resolves the actual geometry client-side after the initial render
|
|
20
|
+
* (see the `selffetch` handling in `mapAppHtml.ts`). Returns null if the ref
|
|
21
|
+
* isn't a self-fetch ref, names an unrecognized tool, or its data doesn't
|
|
22
|
+
* decode.
|
|
23
|
+
*/
|
|
24
|
+
export declare function resolveSelfFetchRef(uri: string): MapAppPayload | null;
|
|
25
|
+
//# sourceMappingURL=selfFetchRef.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selfFetchRef.d.ts","sourceRoot":"","sources":["../../../src/utils/selfFetchRef.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAIzE,MAAM,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;AAYpD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,CAKR;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CA2BrE"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Mapbox, Inc.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.buildSelfFetchRef = buildSelfFetchRef;
|
|
6
|
+
exports.isSelfFetchRef = isSelfFetchRef;
|
|
7
|
+
exports.resolveSelfFetchRef = resolveSelfFetchRef;
|
|
8
|
+
const SELF_FETCH_URI_PREFIX = 'mapbox://selffetch/';
|
|
9
|
+
const SELF_FETCH_TOOLS = [
|
|
10
|
+
'directions',
|
|
11
|
+
'isochrone',
|
|
12
|
+
'map_matching',
|
|
13
|
+
'search',
|
|
14
|
+
'category_search',
|
|
15
|
+
'optimization',
|
|
16
|
+
'ground_location'
|
|
17
|
+
];
|
|
18
|
+
/**
|
|
19
|
+
* Build a ref for a tool whose map preview is fetched by the iframe itself,
|
|
20
|
+
* directly from the Mapbox API using its own public token — rather than
|
|
21
|
+
* server-computed geometry stashed behind an opaque UUID.
|
|
22
|
+
*
|
|
23
|
+
* `params` is the tool's own call arguments (already visible to the LLM —
|
|
24
|
+
* nothing new is exposed), base64'd into the URI. Unlike `mapbox://temp/`
|
|
25
|
+
* refs, there is nothing server-side to lose on a restart: resolving this
|
|
26
|
+
* ref just unwraps the params back into a `MapAppPayload.selfFetch` entry
|
|
27
|
+
* for the iframe to act on, with no I/O and no store involved.
|
|
28
|
+
*/
|
|
29
|
+
function buildSelfFetchRef(tool, params) {
|
|
30
|
+
const data = Buffer.from(JSON.stringify(params), 'utf8').toString('base64url');
|
|
31
|
+
return `${SELF_FETCH_URI_PREFIX}${tool}?data=${data}`;
|
|
32
|
+
}
|
|
33
|
+
function isSelfFetchRef(uri) {
|
|
34
|
+
return uri.startsWith(SELF_FETCH_URI_PREFIX);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Unwrap a `mapbox://selffetch/...` ref back into a minimal `MapAppPayload`
|
|
38
|
+
* carrying only a `selfFetch` entry — no layers/markers of its own. The
|
|
39
|
+
* iframe resolves the actual geometry client-side after the initial render
|
|
40
|
+
* (see the `selffetch` handling in `mapAppHtml.ts`). Returns null if the ref
|
|
41
|
+
* isn't a self-fetch ref, names an unrecognized tool, or its data doesn't
|
|
42
|
+
* decode.
|
|
43
|
+
*/
|
|
44
|
+
function resolveSelfFetchRef(uri) {
|
|
45
|
+
if (!isSelfFetchRef(uri))
|
|
46
|
+
return null;
|
|
47
|
+
let tool;
|
|
48
|
+
let encoded;
|
|
49
|
+
try {
|
|
50
|
+
const parsed = new URL(uri);
|
|
51
|
+
tool = parsed.pathname.replace(/^\//, '');
|
|
52
|
+
encoded = parsed.searchParams.get('data');
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
if (!encoded)
|
|
58
|
+
return null;
|
|
59
|
+
if (!SELF_FETCH_TOOLS.includes(tool))
|
|
60
|
+
return null;
|
|
61
|
+
let params;
|
|
62
|
+
try {
|
|
63
|
+
params = JSON.parse(Buffer.from(encoded, 'base64url').toString('utf8'));
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
if (!params || typeof params !== 'object')
|
|
69
|
+
return null;
|
|
70
|
+
return {
|
|
71
|
+
layers: [],
|
|
72
|
+
selfFetch: [{ tool: tool, params }]
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=selfFetchRef.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selfFetchRef.js","sourceRoot":"","sources":["../../../src/utils/selfFetchRef.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;AA6BlC,8CAQC;AAED,wCAEC;AAUD,kDA2BC;AA1ED,MAAM,qBAAqB,GAAG,qBAAqB,CAAC;AAIpD,MAAM,gBAAgB,GAA6B;IACjD,YAAY;IACZ,WAAW;IACX,cAAc;IACd,QAAQ;IACR,iBAAiB;IACjB,cAAc;IACd,iBAAiB;CAClB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,SAAgB,iBAAiB,CAC/B,IAAmB,EACnB,MAA+B;IAE/B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,CAC/D,WAAW,CACZ,CAAC;IACF,OAAO,GAAG,qBAAqB,GAAG,IAAI,SAAS,IAAI,EAAE,CAAC;AACxD,CAAC;AAED,SAAgB,cAAc,CAAC,GAAW;IACxC,OAAO,GAAG,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CAAC,GAAW;IAC7C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,IAAI,IAAY,CAAC;IACjB,IAAI,OAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1C,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAqB,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnE,IAAI,MAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAEvD,OAAO;QACL,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAqB,EAAE,MAAM,EAAE,CAAC;KACrD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { MapAppPayload } from './mapAppPayload.js';
|
|
3
|
+
export declare const MAX_INLINE_PAYLOAD_BYTES: number;
|
|
4
|
+
/**
|
|
5
|
+
* Schema for the `mapboxRender` field that data tools attach to their
|
|
6
|
+
* structuredContent. Each tool declares this on its output schema so
|
|
7
|
+
* Claude Desktop (and any other host that strictly validates tool results
|
|
8
|
+
* against the published output schema) doesn't flag the response.
|
|
9
|
+
*/
|
|
10
|
+
export declare const MapAppRefSchema: z.ZodObject<{
|
|
11
|
+
ref: z.ZodString;
|
|
12
|
+
}, z.core.$strip>;
|
|
13
|
+
export type MapAppRef = z.infer<typeof MapAppRefSchema>;
|
|
14
|
+
/**
|
|
15
|
+
* Stash a `MapAppPayload` server-side and return a short reference the LLM
|
|
16
|
+
* can pass to `render_map_tool` instead of inlining the whole payload as
|
|
17
|
+
* tool-call arguments. With detailed geometry (a directions polyline can
|
|
18
|
+
* easily be 5–50 KB), having the LLM emit the payload token-by-token costs
|
|
19
|
+
* 20–30 seconds per render and risks Anthropic API timeouts on big
|
|
20
|
+
* payloads (e.g. polygon-op chains). Passing a ref instead keeps the LLM's
|
|
21
|
+
* emission down to a few tokens.
|
|
22
|
+
*
|
|
23
|
+
* `owner` must be the same account identifier (`getUserNameFromToken`) the
|
|
24
|
+
* caller resolves for its own token — `TemporaryDataResource.read()` fails
|
|
25
|
+
* closed on an unowned resource, so omitting this makes the ref permanently
|
|
26
|
+
* unreadable via the real `resources/read` path the render iframe uses (it
|
|
27
|
+
* always 404s), even though callers that read the manager directly (like
|
|
28
|
+
* `resolveMapPayloadRef`) wouldn't notice anything wrong.
|
|
29
|
+
*/
|
|
30
|
+
export declare function storeMapPayload(payload: MapAppPayload, owner?: string): string;
|
|
31
|
+
/**
|
|
32
|
+
* Build the `mapboxRender` field for `render_map_tool`'s own structuredContent
|
|
33
|
+
* - the one tool result the iframe actually reads. Includes the resolved
|
|
34
|
+
* payload inline (in addition to `ref`) when it's small enough, because
|
|
35
|
+
* ChatGPT's MCP Apps bridge delivers `structuredContent` to the iframe intact
|
|
36
|
+
* but has no `resources/read` equivalent at all - the ref alone is
|
|
37
|
+
* permanently unusable there. Claude Desktop strips `structuredContent`
|
|
38
|
+
* before it reaches the iframe, so it's unaffected either way and keeps
|
|
39
|
+
* using the ref (via the sentinel-tagged text) + `resources/read`.
|
|
40
|
+
*
|
|
41
|
+
* Only `render_map_tool` needs this: it's the only tool that declares
|
|
42
|
+
* `_meta.ui.resourceUri`, so it's the only tool result the iframe ever sees.
|
|
43
|
+
*/
|
|
44
|
+
export declare function buildMapboxRenderField(ref: string, payload: MapAppPayload): {
|
|
45
|
+
ref: string;
|
|
46
|
+
} & Partial<MapAppPayload>;
|
|
47
|
+
/**
|
|
48
|
+
* One-line render hint that data tools append to their text output. Tells the
|
|
49
|
+
* LLM the EXACT shape of the next call so it doesn't hallucinate a ref URI.
|
|
50
|
+
* (Seen in the wild: Sonnet inventing `mapbox-isochrone-tool-result://0` when
|
|
51
|
+
* only structuredContent.mapboxRender.ref had the real `mapbox://temp/map-payload-…`
|
|
52
|
+
* URI — including the literal string in the visible text fixes that.)
|
|
53
|
+
*/
|
|
54
|
+
export declare function renderHint(ref: string): string;
|
|
55
|
+
/**
|
|
56
|
+
* Resolve a `mapbox://temp/map-payload-...` ref back to its `MapAppPayload`.
|
|
57
|
+
* Returns null if the ref is unknown, expired, or owned by a different
|
|
58
|
+
* account than `owner` — this is the same account-scoping enforced by
|
|
59
|
+
* `TemporaryDataResource.read()` (a caller passing another account's ref
|
|
60
|
+
* would otherwise have it silently merged and re-served under their own
|
|
61
|
+
* ref, bypassing the read-side check entirely since this goes straight to
|
|
62
|
+
* the manager rather than through `resources/read`).
|
|
63
|
+
*/
|
|
64
|
+
export declare function resolveMapPayloadRef(ref: string, owner: string | undefined): MapAppPayload | null;
|
|
65
|
+
/**
|
|
66
|
+
* Merge multiple `MapAppPayload`s into one. Layer/marker IDs are
|
|
67
|
+
* deduplicated by appending an index suffix when collisions happen.
|
|
68
|
+
* Summaries are joined with " · ". Legends are concatenated.
|
|
69
|
+
*/
|
|
70
|
+
export declare function mergeMapPayloads(payloads: MapAppPayload[]): MapAppPayload;
|
|
71
|
+
//# sourceMappingURL=storeMapPayload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storeMapPayload.d.ts","sourceRoot":"","sources":["../../../src/utils/storeMapPayload.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMxD,eAAO,MAAM,wBAAwB,QAAY,CAAC;AAElD;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;iBAUzB,CAAC;AAEJ,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAIxD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,aAAa,EACtB,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAcR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,aAAa,GACrB;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAM1C;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK9C;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,aAAa,GAAG,IAAI,CAMtB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,aAAa,CA8BzE"}
|