@mapbox/mcp-server 0.12.7 → 0.13.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/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
|
@@ -9,12 +9,17 @@ const tracing_js_1 = require("../../utils/tracing.js");
|
|
|
9
9
|
const BaseTool_js_1 = require("../BaseTool.js");
|
|
10
10
|
const UnionTool_input_schema_js_1 = require("./UnionTool.input.schema.js");
|
|
11
11
|
const UnionTool_output_schema_js_1 = require("./UnionTool.output.schema.js");
|
|
12
|
+
const storeMapPayload_js_1 = require("../../utils/storeMapPayload.js");
|
|
13
|
+
const computeRef_js_1 = require("../../utils/computeRef.js");
|
|
12
14
|
class UnionTool extends BaseTool_js_1.BaseTool {
|
|
13
15
|
name = 'union_tool';
|
|
14
16
|
description = 'Merge two or more polygons into a single unified geometry. ' +
|
|
15
17
|
'Useful for combining service areas, delivery zones, isochrones, or coverage regions. ' +
|
|
16
18
|
'Returns a Polygon or MultiPolygon if the inputs do not overlap. ' +
|
|
17
|
-
'Works offline without API calls.'
|
|
19
|
+
'Works offline without API calls. ' +
|
|
20
|
+
'INPUT SHAPE: pass `polygons` as an array of polygons. Each polygon is an array of rings; each ring is an array of [lng, lat] pairs. ' +
|
|
21
|
+
'When chaining with isochrone_tool, extract `feature.geometry.coordinates` from each isochrone Feature — that is already a valid Polygon value. ' +
|
|
22
|
+
'Skip features whose `geometry.type === "MultiPolygon"` (pass each inner Polygon separately) or whose `geometry.type === "LineString"` (set isochrone_tool `polygons=true` to get Polygon output instead).';
|
|
18
23
|
annotations = {
|
|
19
24
|
title: 'Union Polygons',
|
|
20
25
|
readOnlyHint: true,
|
|
@@ -43,11 +48,25 @@ class UnionTool extends BaseTool_js_1.BaseTool {
|
|
|
43
48
|
const text = `Union of ${input.polygons.length} polygons computed.\n` +
|
|
44
49
|
`Result type: ${validated.type}\n` +
|
|
45
50
|
`GeoJSON geometry:\n${JSON.stringify(validated.geometry, null, 2)}`;
|
|
51
|
+
// Union is a pure function of its inputs — the ref carries the
|
|
52
|
+
// inputs themselves (already present in this call's own
|
|
53
|
+
// arguments) rather than a pointer to a server-side store, so
|
|
54
|
+
// rendering it later never depends on this process still being
|
|
55
|
+
// alive. See computeRef.ts.
|
|
56
|
+
const ref = (0, computeRef_js_1.buildComputeRef)('union', polys.map((p) => ({
|
|
57
|
+
type: 'Feature',
|
|
58
|
+
geometry: p.geometry
|
|
59
|
+
})));
|
|
60
|
+
const sc = {
|
|
61
|
+
...validated,
|
|
62
|
+
mapboxRender: { ref }
|
|
63
|
+
};
|
|
64
|
+
const textOut = text + (0, storeMapPayload_js_1.renderHint)(ref);
|
|
46
65
|
toolContext.span.setStatus({ code: api_1.SpanStatusCode.OK });
|
|
47
66
|
toolContext.span.end();
|
|
48
67
|
return {
|
|
49
|
-
content: [{ type: 'text', text }],
|
|
50
|
-
structuredContent:
|
|
68
|
+
content: [{ type: 'text', text: textOut }],
|
|
69
|
+
structuredContent: sc,
|
|
51
70
|
isError: false
|
|
52
71
|
};
|
|
53
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnionTool.js","sourceRoot":"","sources":["../../../../src/tools/union-tool/UnionTool.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;;AAElC,qCAA+D;AAC/D,4CAAoE;AACpE,uDAAyE;AACzE,gDAA0C;AAC1C,2EAA+D;AAC/D,6EAGsC;
|
|
1
|
+
{"version":3,"file":"UnionTool.js","sourceRoot":"","sources":["../../../../src/tools/union-tool/UnionTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,9 @@ import { z } from 'zod';
|
|
|
2
2
|
export declare const UnionOutputSchema: z.ZodObject<{
|
|
3
3
|
geometry: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
4
4
|
type: z.ZodString;
|
|
5
|
-
|
|
5
|
+
mapboxRender: z.ZodOptional<z.ZodObject<{
|
|
6
|
+
ref: z.ZodString;
|
|
7
|
+
}, z.core.$strip>>;
|
|
8
|
+
}, z.core.$loose>;
|
|
6
9
|
export type UnionOutput = z.infer<typeof UnionOutputSchema>;
|
|
7
10
|
//# sourceMappingURL=UnionTool.output.schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnionTool.output.schema.d.ts","sourceRoot":"","sources":["../../../../src/tools/union-tool/UnionTool.output.schema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"UnionTool.output.schema.d.ts","sourceRoot":"","sources":["../../../../src/tools/union-tool/UnionTool.output.schema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB;;;;;;iBAUd,CAAC;AAEjB,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -4,10 +4,14 @@
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.UnionOutputSchema = void 0;
|
|
6
6
|
const zod_1 = require("zod");
|
|
7
|
-
|
|
7
|
+
const storeMapPayload_js_1 = require("../../utils/storeMapPayload.js");
|
|
8
|
+
exports.UnionOutputSchema = zod_1.z
|
|
9
|
+
.object({
|
|
8
10
|
geometry: zod_1.z
|
|
9
11
|
.record(zod_1.z.string(), zod_1.z.unknown())
|
|
10
12
|
.describe('GeoJSON geometry of the merged polygon (Polygon or MultiPolygon)'),
|
|
11
|
-
type: zod_1.z.string().describe('Geometry type: Polygon or MultiPolygon')
|
|
12
|
-
|
|
13
|
+
type: zod_1.z.string().describe('Geometry type: Polygon or MultiPolygon'),
|
|
14
|
+
mapboxRender: storeMapPayload_js_1.MapAppRefSchema.optional()
|
|
15
|
+
})
|
|
16
|
+
.passthrough();
|
|
13
17
|
//# sourceMappingURL=UnionTool.output.schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnionTool.output.schema.js","sourceRoot":"","sources":["../../../../src/tools/union-tool/UnionTool.output.schema.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;;AAElC,6BAAwB;
|
|
1
|
+
{"version":3,"file":"UnionTool.output.schema.js","sourceRoot":"","sources":["../../../../src/tools/union-tool/UnionTool.output.schema.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;;AAElC,6BAAwB;AAExB,uEAAiE;AAEpD,QAAA,iBAAiB,GAAG,OAAC;KAC/B,MAAM,CAAC;IACN,QAAQ,EAAE,OAAC;SACR,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC;SAC/B,QAAQ,CACP,kEAAkE,CACnE;IACH,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IACnE,YAAY,EAAE,oCAAe,CAAC,QAAQ,EAAE;CACzC,CAAC;KACD,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { MapAppPayload } from '../../utils/mapAppPayload.js';
|
|
2
|
+
export type PolygonOperation = 'union' | 'intersect' | 'difference';
|
|
3
|
+
/**
|
|
4
|
+
* Build a `MapAppPayload` for the offline polygon-op tools
|
|
5
|
+
* (union/intersect/difference). Renders input polygons in muted blue and the
|
|
6
|
+
* result in an operation-keyed color. Used by all three tools — color and
|
|
7
|
+
* summary are the only operation-dependent fields.
|
|
8
|
+
*/
|
|
9
|
+
export declare function buildPolygonOpsMapPayload(params: {
|
|
10
|
+
operation: PolygonOperation;
|
|
11
|
+
inputs: Array<{
|
|
12
|
+
type: 'Feature';
|
|
13
|
+
geometry: unknown;
|
|
14
|
+
}>;
|
|
15
|
+
result: {
|
|
16
|
+
type: 'Feature';
|
|
17
|
+
geometry: unknown;
|
|
18
|
+
} | null;
|
|
19
|
+
summary: string;
|
|
20
|
+
}): MapAppPayload | null;
|
|
21
|
+
//# sourceMappingURL=buildPolygonOpsMapPayload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildPolygonOpsMapPayload.d.ts","sourceRoot":"","sources":["../../../../src/tools/union-tool/buildPolygonOpsMapPayload.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,WAAW,GAAG,YAAY,CAAC;AAQpE;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,SAAS,EAAE,gBAAgB,CAAC;IAC5B,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACtD,MAAM,EAAE;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACtD,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,aAAa,GAAG,IAAI,CAyDvB"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Mapbox, Inc.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.buildPolygonOpsMapPayload = buildPolygonOpsMapPayload;
|
|
6
|
+
const RESULT_COLORS = {
|
|
7
|
+
union: '#22c55e', // green
|
|
8
|
+
intersect: '#8b5cf6', // purple
|
|
9
|
+
difference: '#f97316' // orange
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Build a `MapAppPayload` for the offline polygon-op tools
|
|
13
|
+
* (union/intersect/difference). Renders input polygons in muted blue and the
|
|
14
|
+
* result in an operation-keyed color. Used by all three tools — color and
|
|
15
|
+
* summary are the only operation-dependent fields.
|
|
16
|
+
*/
|
|
17
|
+
function buildPolygonOpsMapPayload(params) {
|
|
18
|
+
const { operation, inputs, result, summary } = params;
|
|
19
|
+
if (inputs.length === 0)
|
|
20
|
+
return null;
|
|
21
|
+
const resultColor = RESULT_COLORS[operation];
|
|
22
|
+
const layers = [];
|
|
23
|
+
inputs.forEach((feature, i) => {
|
|
24
|
+
layers.push({
|
|
25
|
+
id: `input-fill-${i}`,
|
|
26
|
+
type: 'fill',
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
28
|
+
data: feature,
|
|
29
|
+
paint: { 'fill-color': '#3b82f6', 'fill-opacity': 0.25 }
|
|
30
|
+
});
|
|
31
|
+
layers.push({
|
|
32
|
+
id: `input-line-${i}`,
|
|
33
|
+
type: 'line',
|
|
34
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
35
|
+
data: feature,
|
|
36
|
+
paint: {
|
|
37
|
+
'line-color': '#3b82f6',
|
|
38
|
+
'line-width': 2,
|
|
39
|
+
'line-opacity': 0.7
|
|
40
|
+
},
|
|
41
|
+
layout: { 'line-join': 'round', 'line-cap': 'round' }
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
if (result && result.geometry) {
|
|
45
|
+
layers.push({
|
|
46
|
+
id: 'result-fill',
|
|
47
|
+
type: 'fill',
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
49
|
+
data: result,
|
|
50
|
+
paint: { 'fill-color': resultColor, 'fill-opacity': 0.45 }
|
|
51
|
+
});
|
|
52
|
+
layers.push({
|
|
53
|
+
id: 'result-line',
|
|
54
|
+
type: 'line',
|
|
55
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
56
|
+
data: result,
|
|
57
|
+
paint: { 'line-color': resultColor, 'line-width': 3 },
|
|
58
|
+
layout: { 'line-join': 'round', 'line-cap': 'round' }
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
summary,
|
|
63
|
+
layers,
|
|
64
|
+
legend: [
|
|
65
|
+
{ label: 'Inputs', color: '#3b82f6', opacity: 0.35 },
|
|
66
|
+
...(result
|
|
67
|
+
? [{ label: `${operation} result`, color: resultColor, opacity: 0.7 }]
|
|
68
|
+
: [])
|
|
69
|
+
]
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=buildPolygonOpsMapPayload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildPolygonOpsMapPayload.js","sourceRoot":"","sources":["../../../../src/tools/union-tool/buildPolygonOpsMapPayload.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;AAkBlC,8DA8DC;AA1ED,MAAM,aAAa,GAAqC;IACtD,KAAK,EAAE,SAAS,EAAE,QAAQ;IAC1B,SAAS,EAAE,SAAS,EAAE,SAAS;IAC/B,UAAU,EAAE,SAAS,CAAC,SAAS;CAChC,CAAC;AAEF;;;;;GAKG;AACH,SAAgB,yBAAyB,CAAC,MAKzC;IACC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IACtD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAErC,MAAM,WAAW,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;QAC5B,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,cAAc,CAAC,EAAE;YACrB,IAAI,EAAE,MAAM;YACZ,8DAA8D;YAC9D,IAAI,EAAE,OAAc;YACpB,KAAK,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,EAAE;SACzD,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,cAAc,CAAC,EAAE;YACrB,IAAI,EAAE,MAAM;YACZ,8DAA8D;YAC9D,IAAI,EAAE,OAAc;YACpB,KAAK,EAAE;gBACL,YAAY,EAAE,SAAS;gBACvB,YAAY,EAAE,CAAC;gBACf,cAAc,EAAE,GAAG;aACpB;YACD,MAAM,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE;SACtD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,aAAa;YACjB,IAAI,EAAE,MAAM;YACZ,8DAA8D;YAC9D,IAAI,EAAE,MAAa;YACnB,KAAK,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE;SAC3D,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,aAAa;YACjB,IAAI,EAAE,MAAM;YACZ,8DAA8D;YAC9D,IAAI,EAAE,MAAa;YACnB,KAAK,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,EAAE;YACrD,MAAM,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE;SACtD,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,OAAO;QACP,MAAM;QACN,MAAM,EAAE;YACN,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;YACpD,GAAG,CAAC,MAAM;gBACR,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;gBACtE,CAAC,CAAC,EAAE,CAAC;SACR;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { MapAppPayload } from './mapAppPayload.js';
|
|
2
|
+
export type PolygonOperation = 'union' | 'intersect' | 'difference';
|
|
3
|
+
type ComputeFeature = {
|
|
4
|
+
type: 'Feature';
|
|
5
|
+
geometry: unknown;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Stateless alternative to `storeMapPayload` for the offline polygon-op
|
|
9
|
+
* tools (union/intersect/difference). Those tools compute their result from
|
|
10
|
+
* `@turf/turf` given only the caller's own input polygons — there is no
|
|
11
|
+
* external API response to cache and no reason a ref should depend on
|
|
12
|
+
* server-side state at all.
|
|
13
|
+
*
|
|
14
|
+
* Instead of storing the *computed result* behind an opaque UUID (which is
|
|
15
|
+
* lost on every process restart — see the mapbox://temp/ 30-min-TTL-in-
|
|
16
|
+
* memory-store issue this was built to avoid), the ref itself carries the
|
|
17
|
+
* *inputs* (already present in the tool's own call arguments, so no bigger
|
|
18
|
+
* than what the LLM already emitted to call union/intersect/difference in
|
|
19
|
+
* the first place). `resolveComputeRef` re-derives the result by re-running
|
|
20
|
+
* the same turf operation. This makes the ref:
|
|
21
|
+
* - immune to server restarts (nothing to lose — it's a pure function of
|
|
22
|
+
* the URI's own contents),
|
|
23
|
+
* - safe under horizontal scaling (any instance can resolve any ref; no
|
|
24
|
+
* server affinity, unlike an in-memory store keyed by process),
|
|
25
|
+
* - safe across accounts (no owner check needed — the ref only ever
|
|
26
|
+
* contains geometry the caller already had).
|
|
27
|
+
*/
|
|
28
|
+
export declare function buildComputeRef(operation: PolygonOperation, inputs: ComputeFeature[]): string;
|
|
29
|
+
/**
|
|
30
|
+
* Re-derive the `MapAppPayload` for a `mapbox://compute/...` ref by
|
|
31
|
+
* re-running the encoded turf operation. Returns null if the ref isn't a
|
|
32
|
+
* compute ref, the operation is unrecognized, or the encoded data doesn't
|
|
33
|
+
* decode to a valid input array.
|
|
34
|
+
*/
|
|
35
|
+
export declare function resolveComputeRef(uri: string): MapAppPayload | null;
|
|
36
|
+
export declare function isComputeRef(uri: string): boolean;
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=computeRef.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeRef.d.ts","sourceRoot":"","sources":["../../../src/utils/computeRef.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,WAAW,GAAG,YAAY,CAAC;AAIpE,KAAK,cAAc,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC;AAG7D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,gBAAgB,EAC3B,MAAM,EAAE,cAAc,EAAE,GACvB,MAAM,CAKR;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAoEnE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEjD"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Mapbox, Inc.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.buildComputeRef = buildComputeRef;
|
|
6
|
+
exports.resolveComputeRef = resolveComputeRef;
|
|
7
|
+
exports.isComputeRef = isComputeRef;
|
|
8
|
+
const turf_1 = require("@turf/turf");
|
|
9
|
+
const buildPolygonOpsMapPayload_js_1 = require("../tools/union-tool/buildPolygonOpsMapPayload.js");
|
|
10
|
+
const COMPUTE_URI_PREFIX = 'mapbox://compute/';
|
|
11
|
+
/**
|
|
12
|
+
* Stateless alternative to `storeMapPayload` for the offline polygon-op
|
|
13
|
+
* tools (union/intersect/difference). Those tools compute their result from
|
|
14
|
+
* `@turf/turf` given only the caller's own input polygons — there is no
|
|
15
|
+
* external API response to cache and no reason a ref should depend on
|
|
16
|
+
* server-side state at all.
|
|
17
|
+
*
|
|
18
|
+
* Instead of storing the *computed result* behind an opaque UUID (which is
|
|
19
|
+
* lost on every process restart — see the mapbox://temp/ 30-min-TTL-in-
|
|
20
|
+
* memory-store issue this was built to avoid), the ref itself carries the
|
|
21
|
+
* *inputs* (already present in the tool's own call arguments, so no bigger
|
|
22
|
+
* than what the LLM already emitted to call union/intersect/difference in
|
|
23
|
+
* the first place). `resolveComputeRef` re-derives the result by re-running
|
|
24
|
+
* the same turf operation. This makes the ref:
|
|
25
|
+
* - immune to server restarts (nothing to lose — it's a pure function of
|
|
26
|
+
* the URI's own contents),
|
|
27
|
+
* - safe under horizontal scaling (any instance can resolve any ref; no
|
|
28
|
+
* server affinity, unlike an in-memory store keyed by process),
|
|
29
|
+
* - safe across accounts (no owner check needed — the ref only ever
|
|
30
|
+
* contains geometry the caller already had).
|
|
31
|
+
*/
|
|
32
|
+
function buildComputeRef(operation, inputs) {
|
|
33
|
+
const data = Buffer.from(JSON.stringify(inputs), 'utf8').toString('base64url');
|
|
34
|
+
return `${COMPUTE_URI_PREFIX}${operation}?data=${data}`;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Re-derive the `MapAppPayload` for a `mapbox://compute/...` ref by
|
|
38
|
+
* re-running the encoded turf operation. Returns null if the ref isn't a
|
|
39
|
+
* compute ref, the operation is unrecognized, or the encoded data doesn't
|
|
40
|
+
* decode to a valid input array.
|
|
41
|
+
*/
|
|
42
|
+
function resolveComputeRef(uri) {
|
|
43
|
+
if (!uri.startsWith(COMPUTE_URI_PREFIX))
|
|
44
|
+
return null;
|
|
45
|
+
let operation;
|
|
46
|
+
let encoded;
|
|
47
|
+
try {
|
|
48
|
+
const parsed = new URL(uri);
|
|
49
|
+
// The operation is the path segment, not the hostname: for
|
|
50
|
+
// `mapbox://compute/union?...` the WHATWG URL parser treats `compute`
|
|
51
|
+
// as the hostname and `/union` as the pathname.
|
|
52
|
+
operation = parsed.pathname.replace(/^\//, '');
|
|
53
|
+
encoded = parsed.searchParams.get('data');
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
if (!encoded)
|
|
59
|
+
return null;
|
|
60
|
+
let inputs;
|
|
61
|
+
try {
|
|
62
|
+
inputs = JSON.parse(Buffer.from(encoded, 'base64url').toString('utf8'));
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
if (!Array.isArray(inputs) || inputs.length === 0)
|
|
68
|
+
return null;
|
|
69
|
+
// `inputs` came from base64-decoded JSON built by buildComputeRef, which
|
|
70
|
+
// only ever writes `{ type: 'Feature', geometry }` (no `properties`) —
|
|
71
|
+
// turf doesn't require it at runtime, so cast past the stricter
|
|
72
|
+
// `Feature<Polygon | MultiPolygon>` shape rather than adding a field
|
|
73
|
+
// nothing reads.
|
|
74
|
+
const fc = (0, turf_1.featureCollection)(inputs);
|
|
75
|
+
switch (operation) {
|
|
76
|
+
case 'union': {
|
|
77
|
+
const result = (0, turf_1.union)(fc);
|
|
78
|
+
if (!result)
|
|
79
|
+
return null;
|
|
80
|
+
return (0, buildPolygonOpsMapPayload_js_1.buildPolygonOpsMapPayload)({
|
|
81
|
+
operation: 'union',
|
|
82
|
+
inputs,
|
|
83
|
+
result,
|
|
84
|
+
summary: `Union of ${inputs.length} polygons`
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
case 'intersect': {
|
|
88
|
+
const result = (0, turf_1.intersect)(fc);
|
|
89
|
+
return (0, buildPolygonOpsMapPayload_js_1.buildPolygonOpsMapPayload)({
|
|
90
|
+
operation: 'intersect',
|
|
91
|
+
inputs,
|
|
92
|
+
result: result ?? null,
|
|
93
|
+
summary: result
|
|
94
|
+
? 'Intersection of two polygons'
|
|
95
|
+
: 'Polygons do not intersect'
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
case 'difference': {
|
|
99
|
+
const result = (0, turf_1.difference)(fc);
|
|
100
|
+
return (0, buildPolygonOpsMapPayload_js_1.buildPolygonOpsMapPayload)({
|
|
101
|
+
operation: 'difference',
|
|
102
|
+
inputs,
|
|
103
|
+
result: result ?? null,
|
|
104
|
+
summary: result
|
|
105
|
+
? 'Difference of two polygons (polygon1 minus polygon2)'
|
|
106
|
+
: 'polygon2 fully covers polygon1 (no difference)'
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
default:
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
function isComputeRef(uri) {
|
|
114
|
+
return uri.startsWith(COMPUTE_URI_PREFIX);
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=computeRef.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeRef.js","sourceRoot":"","sources":["../../../src/utils/computeRef.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { MapAppPayload } from './mapAppPayload.js';
|
|
2
|
+
/**
|
|
3
|
+
* Self-describing counterpart to `storeMapPayload` for `render_map_tool`'s
|
|
4
|
+
* own merged output. The whole resolved payload is base64'd directly into
|
|
5
|
+
* the ref — no server-side store, no TTL, no owner.
|
|
6
|
+
*
|
|
7
|
+
* Why this exists: `render_map_tool` used to *always* call `storeMapPayload`
|
|
8
|
+
* for its merged output, even when every input was already a self-
|
|
9
|
+
* describing `mapbox://compute/...` or `mapbox://selffetch/...` ref (see
|
|
10
|
+
* computeRef.ts / selfFetchRef.ts). That meant Claude Desktop — which
|
|
11
|
+
* strips `structuredContent` and depends entirely on `resources/read`
|
|
12
|
+
* against the sentinel-embedded ref — was still vulnerable to the exact
|
|
13
|
+
* restart/rehydration bug those refs were built to eliminate, because the
|
|
14
|
+
* *final* hop (render_map_tool's own ref) was still ephemeral regardless of
|
|
15
|
+
* how the inputs got there. ChatGPT was unaffected (it reads the payload
|
|
16
|
+
* straight out of `structuredContent`, never touching the ref), which is
|
|
17
|
+
* why the gap wasn't obvious from that side.
|
|
18
|
+
*
|
|
19
|
+
* Only used when the merged payload is small enough to inline (see
|
|
20
|
+
* `MAX_INLINE_PAYLOAD_BYTES` in storeMapPayload.ts) — a payload backed by a
|
|
21
|
+
* genuinely large upstream `mapbox://temp/...` resource still needs the
|
|
22
|
+
* real store and keeps the existing TTL behavior.
|
|
23
|
+
*/
|
|
24
|
+
export declare function buildInlinePayloadRef(payload: MapAppPayload): string;
|
|
25
|
+
export declare function isInlinePayloadRef(uri: string): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Unwrap a `mapbox://inline/payload?data=...` ref back into its
|
|
28
|
+
* `MapAppPayload`. Returns null if the ref isn't this scheme or its data
|
|
29
|
+
* doesn't decode.
|
|
30
|
+
*/
|
|
31
|
+
export declare function resolveInlinePayloadRef(uri: string): MapAppPayload | null;
|
|
32
|
+
//# sourceMappingURL=inlinePayloadRef.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inlinePayloadRef.d.ts","sourceRoot":"","sources":["../../../src/utils/inlinePayloadRef.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAIxD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAKpE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CASzE"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Mapbox, Inc.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.buildInlinePayloadRef = buildInlinePayloadRef;
|
|
6
|
+
exports.isInlinePayloadRef = isInlinePayloadRef;
|
|
7
|
+
exports.resolveInlinePayloadRef = resolveInlinePayloadRef;
|
|
8
|
+
const INLINE_PAYLOAD_URI_PREFIX = 'mapbox://inline/payload?data=';
|
|
9
|
+
/**
|
|
10
|
+
* Self-describing counterpart to `storeMapPayload` for `render_map_tool`'s
|
|
11
|
+
* own merged output. The whole resolved payload is base64'd directly into
|
|
12
|
+
* the ref — no server-side store, no TTL, no owner.
|
|
13
|
+
*
|
|
14
|
+
* Why this exists: `render_map_tool` used to *always* call `storeMapPayload`
|
|
15
|
+
* for its merged output, even when every input was already a self-
|
|
16
|
+
* describing `mapbox://compute/...` or `mapbox://selffetch/...` ref (see
|
|
17
|
+
* computeRef.ts / selfFetchRef.ts). That meant Claude Desktop — which
|
|
18
|
+
* strips `structuredContent` and depends entirely on `resources/read`
|
|
19
|
+
* against the sentinel-embedded ref — was still vulnerable to the exact
|
|
20
|
+
* restart/rehydration bug those refs were built to eliminate, because the
|
|
21
|
+
* *final* hop (render_map_tool's own ref) was still ephemeral regardless of
|
|
22
|
+
* how the inputs got there. ChatGPT was unaffected (it reads the payload
|
|
23
|
+
* straight out of `structuredContent`, never touching the ref), which is
|
|
24
|
+
* why the gap wasn't obvious from that side.
|
|
25
|
+
*
|
|
26
|
+
* Only used when the merged payload is small enough to inline (see
|
|
27
|
+
* `MAX_INLINE_PAYLOAD_BYTES` in storeMapPayload.ts) — a payload backed by a
|
|
28
|
+
* genuinely large upstream `mapbox://temp/...` resource still needs the
|
|
29
|
+
* real store and keeps the existing TTL behavior.
|
|
30
|
+
*/
|
|
31
|
+
function buildInlinePayloadRef(payload) {
|
|
32
|
+
const data = Buffer.from(JSON.stringify(payload), 'utf8').toString('base64url');
|
|
33
|
+
return `${INLINE_PAYLOAD_URI_PREFIX}${data}`;
|
|
34
|
+
}
|
|
35
|
+
function isInlinePayloadRef(uri) {
|
|
36
|
+
return uri.startsWith(INLINE_PAYLOAD_URI_PREFIX);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Unwrap a `mapbox://inline/payload?data=...` ref back into its
|
|
40
|
+
* `MapAppPayload`. Returns null if the ref isn't this scheme or its data
|
|
41
|
+
* doesn't decode.
|
|
42
|
+
*/
|
|
43
|
+
function resolveInlinePayloadRef(uri) {
|
|
44
|
+
if (!isInlinePayloadRef(uri))
|
|
45
|
+
return null;
|
|
46
|
+
const encoded = uri.slice(INLINE_PAYLOAD_URI_PREFIX.length);
|
|
47
|
+
if (!encoded)
|
|
48
|
+
return null;
|
|
49
|
+
try {
|
|
50
|
+
return JSON.parse(Buffer.from(encoded, 'base64url').toString('utf8'));
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=inlinePayloadRef.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inlinePayloadRef.js","sourceRoot":"","sources":["../../../src/utils/inlinePayloadRef.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;AA4BlC,sDAKC;AAED,gDAEC;AAOD,0DASC;AAjDD,MAAM,yBAAyB,GAAG,+BAA+B,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAgB,qBAAqB,CAAC,OAAsB;IAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,CAChE,WAAW,CACZ,CAAC;IACF,OAAO,GAAG,yBAAyB,GAAG,IAAI,EAAE,CAAC;AAC/C,CAAC;AAED,SAAgB,kBAAkB,CAAC,GAAW;IAC5C,OAAO,GAAG,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB,CAAC,GAAW;IACjD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC5D,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|