@honua/react 0.0.20-alpha.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/LICENSE +201 -0
- package/README.md +9 -0
- package/contract/analytics-sources.d.ts +149 -0
- package/contract/analytics-sources.d.ts.map +1 -0
- package/contract/analytics-sources.js +235 -0
- package/contract/edit-session.d.ts +203 -0
- package/contract/edit-session.d.ts.map +1 -0
- package/contract/edit-session.js +760 -0
- package/contract/edit-sketch.d.ts +91 -0
- package/contract/edit-sketch.d.ts.map +1 -0
- package/contract/edit-sketch.js +281 -0
- package/contract/index.d.ts +61 -0
- package/contract/index.d.ts.map +1 -0
- package/contract/index.js +51 -0
- package/contract/jobs.d.ts +149 -0
- package/contract/jobs.d.ts.map +1 -0
- package/contract/jobs.js +40 -0
- package/contract/source.d.ts +423 -0
- package/contract/source.d.ts.map +1 -0
- package/contract/source.js +3802 -0
- package/contract/spatial-aggregation.d.ts +336 -0
- package/contract/spatial-aggregation.d.ts.map +1 -0
- package/contract/spatial-aggregation.js +298 -0
- package/contract/temporal.d.ts +455 -0
- package/contract/temporal.d.ts.map +1 -0
- package/contract/temporal.js +146 -0
- package/contract/tiles.d.ts +370 -0
- package/contract/tiles.d.ts.map +1 -0
- package/contract/tiles.js +519 -0
- package/contract/types.d.ts +665 -0
- package/contract/types.d.ts.map +1 -0
- package/contract/types.js +175 -0
- package/contract/widget-source.d.ts +205 -0
- package/contract/widget-source.d.ts.map +1 -0
- package/contract/widget-source.js +1473 -0
- package/control-plane/client.d.ts +95 -0
- package/control-plane/client.d.ts.map +1 -0
- package/control-plane/client.js +374 -0
- package/control-plane/index.d.ts +18 -0
- package/control-plane/index.d.ts.map +1 -0
- package/control-plane/index.js +14 -0
- package/control-plane/types.d.ts +233 -0
- package/control-plane/types.d.ts.map +1 -0
- package/control-plane/types.js +7 -0
- package/core/batch.d.ts +37 -0
- package/core/batch.d.ts.map +1 -0
- package/core/batch.js +79 -0
- package/core/cache-state.d.ts +79 -0
- package/core/cache-state.d.ts.map +1 -0
- package/core/cache-state.js +87 -0
- package/core/client.d.ts +577 -0
- package/core/client.d.ts.map +1 -0
- package/core/client.js +1664 -0
- package/core/compatibility.d.ts +18 -0
- package/core/compatibility.d.ts.map +1 -0
- package/core/compatibility.js +245 -0
- package/core/errors.d.ts +107 -0
- package/core/errors.d.ts.map +1 -0
- package/core/errors.js +156 -0
- package/core/esri-geojson.d.ts +66 -0
- package/core/esri-geojson.d.ts.map +1 -0
- package/core/esri-geojson.js +363 -0
- package/core/geoservices.d.ts +34 -0
- package/core/geoservices.d.ts.map +1 -0
- package/core/geoservices.js +434 -0
- package/core/grpc-adapter.d.ts +23 -0
- package/core/grpc-adapter.d.ts.map +1 -0
- package/core/grpc-adapter.js +688 -0
- package/core/odata.d.ts +347 -0
- package/core/odata.d.ts.map +1 -0
- package/core/odata.js +913 -0
- package/core/ogc-conformance.d.ts +35 -0
- package/core/ogc-conformance.d.ts.map +1 -0
- package/core/ogc-conformance.js +134 -0
- package/core/ogc-features.d.ts +23 -0
- package/core/ogc-features.d.ts.map +1 -0
- package/core/ogc-features.js +114 -0
- package/core/ogc-maps.d.ts +49 -0
- package/core/ogc-maps.d.ts.map +1 -0
- package/core/ogc-maps.js +126 -0
- package/core/ogc-processes.d.ts +118 -0
- package/core/ogc-processes.d.ts.map +1 -0
- package/core/ogc-processes.js +423 -0
- package/core/ogc-records.d.ts +75 -0
- package/core/ogc-records.d.ts.map +1 -0
- package/core/ogc-records.js +251 -0
- package/core/ogc-tiles.d.ts +125 -0
- package/core/ogc-tiles.d.ts.map +1 -0
- package/core/ogc-tiles.js +183 -0
- package/core/path-utils.d.ts +69 -0
- package/core/path-utils.d.ts.map +1 -0
- package/core/path-utils.js +123 -0
- package/core/pbf-decoder.d.ts +39 -0
- package/core/pbf-decoder.d.ts.map +1 -0
- package/core/pbf-decoder.js +702 -0
- package/core/process-runner.d.ts +104 -0
- package/core/process-runner.d.ts.map +1 -0
- package/core/process-runner.js +315 -0
- package/core/protocol-transport.d.ts +76 -0
- package/core/protocol-transport.d.ts.map +1 -0
- package/core/protocol-transport.js +15 -0
- package/core/query-builder.d.ts +261 -0
- package/core/query-builder.d.ts.map +1 -0
- package/core/query-builder.js +538 -0
- package/core/request-pipeline.d.ts +88 -0
- package/core/request-pipeline.d.ts.map +1 -0
- package/core/request-pipeline.js +273 -0
- package/core/spatial-filter.d.ts +93 -0
- package/core/spatial-filter.d.ts.map +1 -0
- package/core/spatial-filter.js +153 -0
- package/core/stac.d.ts +55 -0
- package/core/stac.d.ts.map +1 -0
- package/core/stac.js +229 -0
- package/core/surfaces.d.ts +527 -0
- package/core/surfaces.d.ts.map +1 -0
- package/core/surfaces.js +1917 -0
- package/core/terrain-elevation.d.ts +114 -0
- package/core/terrain-elevation.d.ts.map +1 -0
- package/core/terrain-elevation.js +150 -0
- package/core/types.d.ts +1355 -0
- package/core/types.d.ts.map +1 -0
- package/core/types.js +13 -0
- package/core/wfs-capabilities.d.ts +143 -0
- package/core/wfs-capabilities.d.ts.map +1 -0
- package/core/wfs-capabilities.js +478 -0
- package/core/wfs-filter.d.ts +118 -0
- package/core/wfs-filter.d.ts.map +1 -0
- package/core/wfs-filter.js +634 -0
- package/core/wfs.d.ts +219 -0
- package/core/wfs.d.ts.map +1 -0
- package/core/wfs.js +406 -0
- package/core/wire-shared.d.ts +32 -0
- package/core/wire-shared.d.ts.map +1 -0
- package/core/wire-shared.js +76 -0
- package/core/wms-axis.d.ts +36 -0
- package/core/wms-axis.d.ts.map +1 -0
- package/core/wms-axis.js +73 -0
- package/core/wms-capabilities.d.ts +110 -0
- package/core/wms-capabilities.d.ts.map +1 -0
- package/core/wms-capabilities.js +559 -0
- package/core/wms-types.d.ts +128 -0
- package/core/wms-types.d.ts.map +1 -0
- package/core/wms-types.js +32 -0
- package/core/wms.d.ts +144 -0
- package/core/wms.d.ts.map +1 -0
- package/core/wms.js +338 -0
- package/core/wmts-capabilities.d.ts +82 -0
- package/core/wmts-capabilities.d.ts.map +1 -0
- package/core/wmts-capabilities.js +402 -0
- package/core/wmts.d.ts +103 -0
- package/core/wmts.d.ts.map +1 -0
- package/core/wmts.js +332 -0
- package/core/xml-text.d.ts +20 -0
- package/core/xml-text.d.ts.map +1 -0
- package/core/xml-text.js +85 -0
- package/esri-compat/basemap-gallery.d.ts +38 -0
- package/esri-compat/basemap-gallery.d.ts.map +1 -0
- package/esri-compat/basemap-gallery.js +159 -0
- package/esri-compat/basemap-layer-list.d.ts +35 -0
- package/esri-compat/basemap-layer-list.d.ts.map +1 -0
- package/esri-compat/basemap-layer-list.js +139 -0
- package/esri-compat/basemap.d.ts +32 -0
- package/esri-compat/basemap.d.ts.map +1 -0
- package/esri-compat/basemap.js +84 -0
- package/esri-compat/bookmarks.d.ts +36 -0
- package/esri-compat/bookmarks.d.ts.map +1 -0
- package/esri-compat/bookmarks.js +108 -0
- package/esri-compat/class-breaks-renderer.d.ts +50 -0
- package/esri-compat/class-breaks-renderer.d.ts.map +1 -0
- package/esri-compat/class-breaks-renderer.js +164 -0
- package/esri-compat/color.d.ts +22 -0
- package/esri-compat/color.d.ts.map +1 -0
- package/esri-compat/color.js +106 -0
- package/esri-compat/controls.d.ts +174 -0
- package/esri-compat/controls.d.ts.map +1 -0
- package/esri-compat/controls.js +479 -0
- package/esri-compat/coordinate-conversion.d.ts +41 -0
- package/esri-compat/coordinate-conversion.d.ts.map +1 -0
- package/esri-compat/coordinate-conversion.js +125 -0
- package/esri-compat/directions.d.ts +45 -0
- package/esri-compat/directions.d.ts.map +1 -0
- package/esri-compat/directions.js +123 -0
- package/esri-compat/editor.d.ts +47 -0
- package/esri-compat/editor.d.ts.map +1 -0
- package/esri-compat/editor.js +170 -0
- package/esri-compat/esri-config.d.ts +16 -0
- package/esri-compat/esri-config.d.ts.map +1 -0
- package/esri-compat/esri-config.js +23 -0
- package/esri-compat/esri-request.d.ts +17 -0
- package/esri-compat/esri-request.d.ts.map +1 -0
- package/esri-compat/esri-request.js +127 -0
- package/esri-compat/event-bus.d.ts +106 -0
- package/esri-compat/event-bus.d.ts.map +1 -0
- package/esri-compat/event-bus.js +90 -0
- package/esri-compat/expand.d.ts +36 -0
- package/esri-compat/expand.d.ts.map +1 -0
- package/esri-compat/expand.js +97 -0
- package/esri-compat/extent.d.ts +43 -0
- package/esri-compat/extent.d.ts.map +1 -0
- package/esri-compat/extent.js +140 -0
- package/esri-compat/feature-filter.d.ts +55 -0
- package/esri-compat/feature-filter.d.ts.map +1 -0
- package/esri-compat/feature-filter.js +109 -0
- package/esri-compat/feature-form.d.ts +64 -0
- package/esri-compat/feature-form.d.ts.map +1 -0
- package/esri-compat/feature-form.js +137 -0
- package/esri-compat/feature-layer.d.ts +173 -0
- package/esri-compat/feature-layer.d.ts.map +1 -0
- package/esri-compat/feature-layer.js +661 -0
- package/esri-compat/feature-set.d.ts +32 -0
- package/esri-compat/feature-set.d.ts.map +1 -0
- package/esri-compat/feature-set.js +80 -0
- package/esri-compat/feature-table.d.ts +141 -0
- package/esri-compat/feature-table.d.ts.map +1 -0
- package/esri-compat/feature-table.js +500 -0
- package/esri-compat/feature-templates.d.ts +41 -0
- package/esri-compat/feature-templates.d.ts.map +1 -0
- package/esri-compat/feature-templates.js +97 -0
- package/esri-compat/feature.d.ts +33 -0
- package/esri-compat/feature.d.ts.map +1 -0
- package/esri-compat/feature.js +83 -0
- package/esri-compat/geojson-layer.d.ts +86 -0
- package/esri-compat/geojson-layer.d.ts.map +1 -0
- package/esri-compat/geojson-layer.js +191 -0
- package/esri-compat/geometry-engine.d.ts +107 -0
- package/esri-compat/geometry-engine.d.ts.map +1 -0
- package/esri-compat/geometry-engine.js +266 -0
- package/esri-compat/graphic.d.ts +46 -0
- package/esri-compat/graphic.d.ts.map +1 -0
- package/esri-compat/graphic.js +103 -0
- package/esri-compat/graphics-layer.d.ts +49 -0
- package/esri-compat/graphics-layer.d.ts.map +1 -0
- package/esri-compat/graphics-layer.js +185 -0
- package/esri-compat/group-layer.d.ts +48 -0
- package/esri-compat/group-layer.d.ts.map +1 -0
- package/esri-compat/group-layer.js +212 -0
- package/esri-compat/identify.d.ts +71 -0
- package/esri-compat/identify.d.ts.map +1 -0
- package/esri-compat/identify.js +299 -0
- package/esri-compat/identity-manager.d.ts +31 -0
- package/esri-compat/identity-manager.d.ts.map +1 -0
- package/esri-compat/identity-manager.js +115 -0
- package/esri-compat/imagery-layer.d.ts +78 -0
- package/esri-compat/imagery-layer.d.ts.map +1 -0
- package/esri-compat/imagery-layer.js +167 -0
- package/esri-compat/label-class.d.ts +31 -0
- package/esri-compat/label-class.d.ts.map +1 -0
- package/esri-compat/label-class.js +102 -0
- package/esri-compat/layer-list.d.ts +77 -0
- package/esri-compat/layer-list.d.ts.map +1 -0
- package/esri-compat/layer-list.js +342 -0
- package/esri-compat/legend.d.ts +53 -0
- package/esri-compat/legend.d.ts.map +1 -0
- package/esri-compat/legend.js +254 -0
- package/esri-compat/map-image-layer.d.ts +162 -0
- package/esri-compat/map-image-layer.d.ts.map +1 -0
- package/esri-compat/map-image-layer.js +709 -0
- package/esri-compat/map-view.d.ts +323 -0
- package/esri-compat/map-view.d.ts.map +1 -0
- package/esri-compat/map-view.js +1175 -0
- package/esri-compat/map.d.ts +47 -0
- package/esri-compat/map.d.ts.map +1 -0
- package/esri-compat/map.js +209 -0
- package/esri-compat/measurement-2d.d.ts +61 -0
- package/esri-compat/measurement-2d.d.ts.map +1 -0
- package/esri-compat/measurement-2d.js +184 -0
- package/esri-compat/measurement.d.ts +45 -0
- package/esri-compat/measurement.d.ts.map +1 -0
- package/esri-compat/measurement.js +193 -0
- package/esri-compat/oauth-info.d.ts +35 -0
- package/esri-compat/oauth-info.d.ts.map +1 -0
- package/esri-compat/oauth-info.js +115 -0
- package/esri-compat/picture-marker-symbol.d.ts +35 -0
- package/esri-compat/picture-marker-symbol.d.ts.map +1 -0
- package/esri-compat/picture-marker-symbol.js +126 -0
- package/esri-compat/point.d.ts +31 -0
- package/esri-compat/point.d.ts.map +1 -0
- package/esri-compat/point.js +102 -0
- package/esri-compat/polygon.d.ts +31 -0
- package/esri-compat/polygon.d.ts.map +1 -0
- package/esri-compat/polygon.js +107 -0
- package/esri-compat/polyline.d.ts +31 -0
- package/esri-compat/polyline.d.ts.map +1 -0
- package/esri-compat/polyline.js +107 -0
- package/esri-compat/popup-template.d.ts +55 -0
- package/esri-compat/popup-template.d.ts.map +1 -0
- package/esri-compat/popup-template.js +128 -0
- package/esri-compat/popup.d.ts +54 -0
- package/esri-compat/popup.d.ts.map +1 -0
- package/esri-compat/popup.js +312 -0
- package/esri-compat/print.d.ts +47 -0
- package/esri-compat/print.d.ts.map +1 -0
- package/esri-compat/print.js +105 -0
- package/esri-compat/query.d.ts +58 -0
- package/esri-compat/query.d.ts.map +1 -0
- package/esri-compat/query.js +128 -0
- package/esri-compat/reactive-utils.d.ts +24 -0
- package/esri-compat/reactive-utils.d.ts.map +1 -0
- package/esri-compat/reactive-utils.js +193 -0
- package/esri-compat/request.d.ts +41 -0
- package/esri-compat/request.d.ts.map +1 -0
- package/esri-compat/request.js +253 -0
- package/esri-compat/route-layer.d.ts +59 -0
- package/esri-compat/route-layer.d.ts.map +1 -0
- package/esri-compat/route-layer.js +223 -0
- package/esri-compat/route-task.d.ts +88 -0
- package/esri-compat/route-task.d.ts.map +1 -0
- package/esri-compat/route-task.js +225 -0
- package/esri-compat/scene-view.d.ts +41 -0
- package/esri-compat/scene-view.d.ts.map +1 -0
- package/esri-compat/scene-view.js +68 -0
- package/esri-compat/search.d.ts +112 -0
- package/esri-compat/search.d.ts.map +1 -0
- package/esri-compat/search.js +820 -0
- package/esri-compat/simple-fill-symbol.d.ts +27 -0
- package/esri-compat/simple-fill-symbol.d.ts.map +1 -0
- package/esri-compat/simple-fill-symbol.js +85 -0
- package/esri-compat/simple-line-symbol.d.ts +27 -0
- package/esri-compat/simple-line-symbol.d.ts.map +1 -0
- package/esri-compat/simple-line-symbol.js +85 -0
- package/esri-compat/simple-marker-symbol.d.ts +29 -0
- package/esri-compat/simple-marker-symbol.d.ts.map +1 -0
- package/esri-compat/simple-marker-symbol.js +92 -0
- package/esri-compat/simple-renderer.d.ts +29 -0
- package/esri-compat/simple-renderer.d.ts.map +1 -0
- package/esri-compat/simple-renderer.js +92 -0
- package/esri-compat/sketch.d.ts +64 -0
- package/esri-compat/sketch.d.ts.map +1 -0
- package/esri-compat/sketch.js +227 -0
- package/esri-compat/spatial-reference.d.ts +31 -0
- package/esri-compat/spatial-reference.d.ts.map +1 -0
- package/esri-compat/spatial-reference.js +102 -0
- package/esri-compat/swipe.d.ts +34 -0
- package/esri-compat/swipe.d.ts.map +1 -0
- package/esri-compat/swipe.js +93 -0
- package/esri-compat/table-list.d.ts +36 -0
- package/esri-compat/table-list.d.ts.map +1 -0
- package/esri-compat/table-list.js +126 -0
- package/esri-compat/text-symbol.d.ts +37 -0
- package/esri-compat/text-symbol.d.ts.map +1 -0
- package/esri-compat/text-symbol.js +123 -0
- package/esri-compat/tile-layer.d.ts +52 -0
- package/esri-compat/tile-layer.d.ts.map +1 -0
- package/esri-compat/tile-layer.js +168 -0
- package/esri-compat/time-slider.d.ts +70 -0
- package/esri-compat/time-slider.d.ts.map +1 -0
- package/esri-compat/time-slider.js +208 -0
- package/esri-compat/track.d.ts +51 -0
- package/esri-compat/track.d.ts.map +1 -0
- package/esri-compat/track.js +174 -0
- package/esri-compat/unique-value-renderer.d.ts +41 -0
- package/esri-compat/unique-value-renderer.d.ts.map +1 -0
- package/esri-compat/unique-value-renderer.js +127 -0
- package/esri-compat/url.d.ts +13 -0
- package/esri-compat/url.d.ts.map +1 -0
- package/esri-compat/url.js +68 -0
- package/esri-compat/vector-tile-layer.d.ts +47 -0
- package/esri-compat/vector-tile-layer.d.ts.map +1 -0
- package/esri-compat/vector-tile-layer.js +130 -0
- package/esri-compat/web-map.d.ts +14 -0
- package/esri-compat/web-map.d.ts.map +1 -0
- package/esri-compat/web-map.js +24 -0
- package/esri-compat/wfs-layer.d.ts +64 -0
- package/esri-compat/wfs-layer.d.ts.map +1 -0
- package/esri-compat/wfs-layer.js +145 -0
- package/esri-compat/wms-layer.d.ts +76 -0
- package/esri-compat/wms-layer.d.ts.map +1 -0
- package/esri-compat/wms-layer.js +157 -0
- package/exploration/context.d.ts +25 -0
- package/exploration/context.d.ts.map +1 -0
- package/exploration/context.js +396 -0
- package/exploration/index.d.ts +27 -0
- package/exploration/index.d.ts.map +1 -0
- package/exploration/index.js +24 -0
- package/exploration/presets.d.ts +27 -0
- package/exploration/presets.d.ts.map +1 -0
- package/exploration/presets.js +114 -0
- package/exploration/reducer.d.ts +23 -0
- package/exploration/reducer.d.ts.map +1 -0
- package/exploration/reducer.js +332 -0
- package/exploration/selection.d.ts +25 -0
- package/exploration/selection.d.ts.map +1 -0
- package/exploration/selection.js +34 -0
- package/exploration/selectors.d.ts +56 -0
- package/exploration/selectors.d.ts.map +1 -0
- package/exploration/selectors.js +110 -0
- package/exploration/types.d.ts +294 -0
- package/exploration/types.d.ts.map +1 -0
- package/exploration/types.js +33 -0
- package/expr/expression.d.ts +457 -0
- package/expr/expression.d.ts.map +1 -0
- package/expr/expression.js +663 -0
- package/expr/index.d.ts +32 -0
- package/expr/index.d.ts.map +1 -0
- package/expr/index.js +30 -0
- package/gen/honua/v1/feature_service_pb.d.ts +918 -0
- package/gen/honua/v1/feature_service_pb.d.ts.map +1 -0
- package/gen/honua/v1/feature_service_pb.js +375 -0
- package/generated-app/errors.d.ts +41 -0
- package/generated-app/errors.d.ts.map +1 -0
- package/generated-app/errors.js +41 -0
- package/generated-app/index.d.ts +17 -0
- package/generated-app/index.d.ts.map +1 -0
- package/generated-app/index.js +12 -0
- package/generated-app/manifest.d.ts +183 -0
- package/generated-app/manifest.d.ts.map +1 -0
- package/generated-app/manifest.js +14 -0
- package/generated-app/projection.d.ts +44 -0
- package/generated-app/projection.d.ts.map +1 -0
- package/generated-app/projection.js +234 -0
- package/generated-app/runtime.d.ts +215 -0
- package/generated-app/runtime.d.ts.map +1 -0
- package/generated-app/runtime.js +1196 -0
- package/interactions/detail-model.d.ts +54 -0
- package/interactions/detail-model.d.ts.map +1 -0
- package/interactions/detail-model.js +105 -0
- package/interactions/exploration-bindings.d.ts +120 -0
- package/interactions/exploration-bindings.d.ts.map +1 -0
- package/interactions/exploration-bindings.js +218 -0
- package/interactions/feature-state.d.ts +144 -0
- package/interactions/feature-state.d.ts.map +1 -0
- package/interactions/feature-state.js +169 -0
- package/interactions/hit-test.d.ts +112 -0
- package/interactions/hit-test.d.ts.map +1 -0
- package/interactions/hit-test.js +291 -0
- package/interactions/index.d.ts +31 -0
- package/interactions/index.d.ts.map +1 -0
- package/interactions/index.js +24 -0
- package/interactions/share-state.d.ts +36 -0
- package/interactions/share-state.d.ts.map +1 -0
- package/interactions/share-state.js +123 -0
- package/map/feature-service-adapter.d.ts +138 -0
- package/map/feature-service-adapter.d.ts.map +1 -0
- package/map/feature-service-adapter.js +279 -0
- package/map/honua-map.d.ts +203 -0
- package/map/honua-map.d.ts.map +1 -0
- package/map/honua-map.js +347 -0
- package/map/index.d.ts +27 -0
- package/map/index.d.ts.map +1 -0
- package/map/index.js +22 -0
- package/map/maplibre-target.d.ts +103 -0
- package/map/maplibre-target.d.ts.map +1 -0
- package/map/maplibre-target.js +164 -0
- package/map/webmap-maplibre.d.ts +60 -0
- package/map/webmap-maplibre.d.ts.map +1 -0
- package/map/webmap-maplibre.js +212 -0
- package/package.json +37 -0
- package/react/context.d.ts +32 -0
- package/react/context.d.ts.map +1 -0
- package/react/context.js +19 -0
- package/react/honua-layer.d.ts +35 -0
- package/react/honua-layer.d.ts.map +1 -0
- package/react/honua-layer.js +47 -0
- package/react/honua-map.d.ts +83 -0
- package/react/honua-map.d.ts.map +1 -0
- package/react/honua-map.js +109 -0
- package/react/honua-popup.d.ts +26 -0
- package/react/honua-popup.d.ts.map +1 -0
- package/react/honua-popup.js +34 -0
- package/react/hooks.d.ts +127 -0
- package/react/hooks.d.ts.map +1 -0
- package/react/hooks.js +206 -0
- package/react/index.d.ts +42 -0
- package/react/index.d.ts.map +1 -0
- package/react/index.js +34 -0
- package/react/provider.d.ts +36 -0
- package/react/provider.d.ts.map +1 -0
- package/react/provider.js +35 -0
- package/react/query-cache.d.ts +76 -0
- package/react/query-cache.d.ts.map +1 -0
- package/react/query-cache.js +188 -0
- package/runtime/diff.d.ts +31 -0
- package/runtime/diff.d.ts.map +1 -0
- package/runtime/diff.js +143 -0
- package/runtime/errors.d.ts +40 -0
- package/runtime/errors.d.ts.map +1 -0
- package/runtime/errors.js +35 -0
- package/runtime/index.d.ts +59 -0
- package/runtime/index.d.ts.map +1 -0
- package/runtime/index.js +43 -0
- package/runtime/legend.d.ts +23 -0
- package/runtime/legend.d.ts.map +1 -0
- package/runtime/legend.js +38 -0
- package/runtime/load-package.d.ts +125 -0
- package/runtime/load-package.d.ts.map +1 -0
- package/runtime/load-package.js +264 -0
- package/runtime/map-package-fetch.d.ts +107 -0
- package/runtime/map-package-fetch.d.ts.map +1 -0
- package/runtime/map-package-fetch.js +336 -0
- package/runtime/map-package-realtime.d.ts +169 -0
- package/runtime/map-package-realtime.d.ts.map +1 -0
- package/runtime/map-package-realtime.js +350 -0
- package/runtime/map-package-validation.d.ts +43 -0
- package/runtime/map-package-validation.d.ts.map +1 -0
- package/runtime/map-package-validation.js +269 -0
- package/runtime/map-package-watch.d.ts +78 -0
- package/runtime/map-package-watch.d.ts.map +1 -0
- package/runtime/map-package-watch.js +695 -0
- package/runtime/map-package.d.ts +167 -0
- package/runtime/map-package.d.ts.map +1 -0
- package/runtime/map-package.js +15 -0
- package/runtime/ogc-styles.d.ts +110 -0
- package/runtime/ogc-styles.d.ts.map +1 -0
- package/runtime/ogc-styles.js +195 -0
- package/runtime/popups.d.ts +62 -0
- package/runtime/popups.d.ts.map +1 -0
- package/runtime/popups.js +95 -0
- package/runtime/query-tiles.d.ts +217 -0
- package/runtime/query-tiles.d.ts.map +1 -0
- package/runtime/query-tiles.js +801 -0
- package/runtime/runtime.d.ts +243 -0
- package/runtime/runtime.d.ts.map +1 -0
- package/runtime/runtime.js +1147 -0
- package/runtime/source-bridge.d.ts +99 -0
- package/runtime/source-bridge.d.ts.map +1 -0
- package/runtime/source-bridge.js +401 -0
- package/runtime/style-compose.d.ts +46 -0
- package/runtime/style-compose.d.ts.map +1 -0
- package/runtime/style-compose.js +144 -0
- package/runtime/style-interactions.d.ts +141 -0
- package/runtime/style-interactions.d.ts.map +1 -0
- package/runtime/style-interactions.js +574 -0
- package/runtime/style-spec-validation.d.ts +23 -0
- package/runtime/style-spec-validation.d.ts.map +1 -0
- package/runtime/style-spec-validation.js +357 -0
- package/studio/capability-manifest.d.ts +285 -0
- package/studio/capability-manifest.d.ts.map +1 -0
- package/studio/capability-manifest.js +59 -0
- package/studio/chart-spec.d.ts +85 -0
- package/studio/chart-spec.d.ts.map +1 -0
- package/studio/chart-spec.js +106 -0
- package/studio/index.d.ts +34 -0
- package/studio/index.d.ts.map +1 -0
- package/studio/index.js +27 -0
- package/studio/provenance.d.ts +131 -0
- package/studio/provenance.d.ts.map +1 -0
- package/studio/provenance.js +39 -0
- package/studio/publish.d.ts +64 -0
- package/studio/publish.d.ts.map +1 -0
- package/studio/publish.js +13 -0
- package/studio/types.d.ts +278 -0
- package/studio/types.d.ts.map +1 -0
- package/studio/types.js +71 -0
- package/studio/validate.d.ts +45 -0
- package/studio/validate.d.ts.map +1 -0
- package/studio/validate.js +255 -0
- package/studio/validation.d.ts +112 -0
- package/studio/validation.d.ts.map +1 -0
- package/studio/validation.js +42 -0
- package/style/factory.d.ts +30 -0
- package/style/factory.d.ts.map +1 -0
- package/style/factory.js +61 -0
- package/style/index.d.ts +25 -0
- package/style/index.d.ts.map +1 -0
- package/style/index.js +24 -0
- package/style/specification.d.ts +203 -0
- package/style/specification.d.ts.map +1 -0
- package/style/specification.js +178 -0
- package/style/wms-wmts-resolvers.d.ts +38 -0
- package/style/wms-wmts-resolvers.d.ts.map +1 -0
- package/style/wms-wmts-resolvers.js +92 -0
- package/webmap/contract.d.ts +28 -0
- package/webmap/contract.d.ts.map +1 -0
- package/webmap/contract.js +130 -0
- package/webmap/convert-basemap.d.ts +17 -0
- package/webmap/convert-basemap.d.ts.map +1 -0
- package/webmap/convert-basemap.js +78 -0
- package/webmap/convert-extent.d.ts +17 -0
- package/webmap/convert-extent.d.ts.map +1 -0
- package/webmap/convert-extent.js +114 -0
- package/webmap/convert-label.d.ts +13 -0
- package/webmap/convert-label.d.ts.map +1 -0
- package/webmap/convert-label.js +125 -0
- package/webmap/convert-layer.d.ts +22 -0
- package/webmap/convert-layer.d.ts.map +1 -0
- package/webmap/convert-layer.js +181 -0
- package/webmap/convert-popup.d.ts +34 -0
- package/webmap/convert-popup.d.ts.map +1 -0
- package/webmap/convert-popup.js +68 -0
- package/webmap/convert-renderer.d.ts +17 -0
- package/webmap/convert-renderer.d.ts.map +1 -0
- package/webmap/convert-renderer.js +161 -0
- package/webmap/convert-symbol.d.ts +17 -0
- package/webmap/convert-symbol.d.ts.map +1 -0
- package/webmap/convert-symbol.js +122 -0
- package/webmap/index.d.ts +44 -0
- package/webmap/index.d.ts.map +1 -0
- package/webmap/index.js +33 -0
- package/webmap/parse.d.ts +25 -0
- package/webmap/parse.d.ts.map +1 -0
- package/webmap/parse.js +83 -0
- package/webmap/types.d.ts +264 -0
- package/webmap/types.d.ts.map +1 -0
- package/webmap/types.js +13 -0
- package/webmap/warnings.d.ts +30 -0
- package/webmap/warnings.d.ts.map +1 -0
- package/webmap/warnings.js +37 -0
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import { HonuaAbortError, HonuaHttpError, HonuaNetworkError, HonuaTimeoutError } from "./errors.js";
|
|
2
|
+
export const DEFAULT_RETRY_STATUSES = new Set([429, 502, 503, 504]);
|
|
3
|
+
export const DEFAULT_RETRY_METHODS = new Set(["GET", "PUT", "DELETE"]);
|
|
4
|
+
export function normalizeTimeoutMs(timeoutMs) {
|
|
5
|
+
if (typeof timeoutMs !== "number" || !Number.isFinite(timeoutMs)) {
|
|
6
|
+
return undefined;
|
|
7
|
+
}
|
|
8
|
+
return Math.max(1, Math.trunc(timeoutMs));
|
|
9
|
+
}
|
|
10
|
+
export function normalizeRetryOptions(options) {
|
|
11
|
+
if (!options) {
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
const maxRetries = typeof options.maxRetries === "number" && Number.isFinite(options.maxRetries)
|
|
15
|
+
? Math.max(0, Math.trunc(options.maxRetries))
|
|
16
|
+
: 0;
|
|
17
|
+
if (maxRetries < 1) {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
const baseDelayMs = typeof options.baseDelayMs === "number" && Number.isFinite(options.baseDelayMs)
|
|
21
|
+
? Math.max(1, Math.trunc(options.baseDelayMs))
|
|
22
|
+
: 100;
|
|
23
|
+
const maxDelayMs = typeof options.maxDelayMs === "number" && Number.isFinite(options.maxDelayMs)
|
|
24
|
+
? Math.max(baseDelayMs, Math.trunc(options.maxDelayMs))
|
|
25
|
+
: 2_000;
|
|
26
|
+
const retryStatuses = new Set((options.retryStatuses ?? Array.from(DEFAULT_RETRY_STATUSES))
|
|
27
|
+
.map((status) => Math.trunc(status))
|
|
28
|
+
.filter((status) => Number.isFinite(status) && status >= 100 && status <= 599));
|
|
29
|
+
if (retryStatuses.size === 0) {
|
|
30
|
+
for (const status of DEFAULT_RETRY_STATUSES) {
|
|
31
|
+
retryStatuses.add(status);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
maxRetries,
|
|
36
|
+
baseDelayMs,
|
|
37
|
+
maxDelayMs,
|
|
38
|
+
retryStatuses,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Parse a `Retry-After` header value (delta-seconds or HTTP-date) into a delay
|
|
43
|
+
* in milliseconds. Shared by the REST {@link parseRetryAfterMs} response helper
|
|
44
|
+
* and the gRPC-web path, which reads the same header off the Connect error
|
|
45
|
+
* metadata (a `Headers`-shaped object) rather than a `Response`.
|
|
46
|
+
*/
|
|
47
|
+
export function parseRetryAfterHeaderMs(headers) {
|
|
48
|
+
const value = headers.get("retry-after");
|
|
49
|
+
if (!value) {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
const seconds = Number.parseInt(value, 10);
|
|
53
|
+
if (Number.isFinite(seconds) && seconds >= 0) {
|
|
54
|
+
return seconds * 1_000;
|
|
55
|
+
}
|
|
56
|
+
const targetTime = Date.parse(value);
|
|
57
|
+
if (!Number.isFinite(targetTime)) {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
return Math.max(0, targetTime - Date.now());
|
|
61
|
+
}
|
|
62
|
+
export function parseRetryAfterMs(response) {
|
|
63
|
+
return parseRetryAfterHeaderMs(response.headers);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Decide whether a failed attempt should be retried. Idempotent/replay-safe
|
|
67
|
+
* methods (GET/PUT/DELETE) are retried on the configured retry statuses or on
|
|
68
|
+
* transient network/timeout errors; aborts are never retried.
|
|
69
|
+
*/
|
|
70
|
+
export function shouldRetryRequest(retryOptions, method, attempt, statusCode, error) {
|
|
71
|
+
if (!retryOptions || attempt >= retryOptions.maxRetries) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
if (!DEFAULT_RETRY_METHODS.has(method)) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
if (error instanceof HonuaAbortError) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
if (statusCode !== undefined) {
|
|
81
|
+
return retryOptions.retryStatuses.has(statusCode);
|
|
82
|
+
}
|
|
83
|
+
return error instanceof HonuaNetworkError || error instanceof HonuaTimeoutError;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Resolve the backoff delay before the next attempt. A server `Retry-After`
|
|
87
|
+
* header (capped by `maxDelayMs`) wins; otherwise an exponential backoff with
|
|
88
|
+
* full jitter in the [0.5x, 1x] band is used.
|
|
89
|
+
*/
|
|
90
|
+
export function resolveRetryDelayMs(retryOptions, attempt, response) {
|
|
91
|
+
const retryAfterMs = response ? parseRetryAfterMs(response) : undefined;
|
|
92
|
+
if (retryAfterMs !== undefined) {
|
|
93
|
+
return Math.min(retryOptions?.maxDelayMs ?? retryAfterMs, retryAfterMs);
|
|
94
|
+
}
|
|
95
|
+
if (!retryOptions) {
|
|
96
|
+
return 0;
|
|
97
|
+
}
|
|
98
|
+
const exponentialDelay = retryOptions.baseDelayMs * 2 ** attempt;
|
|
99
|
+
const cappedDelay = Math.min(retryOptions.maxDelayMs, exponentialDelay);
|
|
100
|
+
return cappedDelay * (0.5 + Math.random() * 0.5);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* gRPC/Connect numeric status codes that map to the transient REST retry
|
|
104
|
+
* statuses in {@link DEFAULT_RETRY_STATUSES}, so the grpc-web transport retries
|
|
105
|
+
* the same class of transient failures as REST. Mirrors the gRPC retry
|
|
106
|
+
* conventions: `resource_exhausted` (~429), `unavailable` (~502/503),
|
|
107
|
+
* `deadline_exceeded` (~504), and the transient `aborted` concurrency code.
|
|
108
|
+
*/
|
|
109
|
+
export const DEFAULT_RETRYABLE_GRPC_CODES = new Set([
|
|
110
|
+
4, // deadline_exceeded
|
|
111
|
+
8, // resource_exhausted
|
|
112
|
+
10, // aborted
|
|
113
|
+
14, // unavailable
|
|
114
|
+
]);
|
|
115
|
+
/** Connect/gRPC `canceled` code — caller/abort-driven, never retried. */
|
|
116
|
+
const GRPC_CODE_CANCELED = 1;
|
|
117
|
+
/**
|
|
118
|
+
* Extract the numeric gRPC/Connect status code off a thrown error (a
|
|
119
|
+
* `ConnectError` carries a numeric `code`). Returns `undefined` for non-Connect
|
|
120
|
+
* errors so callers can treat them as non-retryable.
|
|
121
|
+
*/
|
|
122
|
+
export function connectErrorCode(error) {
|
|
123
|
+
if (typeof error === "object" &&
|
|
124
|
+
error !== null &&
|
|
125
|
+
"code" in error &&
|
|
126
|
+
typeof error.code === "number") {
|
|
127
|
+
return error.code;
|
|
128
|
+
}
|
|
129
|
+
return undefined;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Decide whether a failed gRPC-web call should be retried. Mirrors
|
|
133
|
+
* {@link shouldRetryRequest} for the Connect transport: retries only the
|
|
134
|
+
* transient {@link DEFAULT_RETRYABLE_GRPC_CODES} while honoring `maxRetries`,
|
|
135
|
+
* and never retries once the call's abort signal has fired (caller abort or the
|
|
136
|
+
* `timeoutMs` deadline) or for the `canceled` code.
|
|
137
|
+
*
|
|
138
|
+
* Replay-safety (unary-only, since server-streaming responses cannot be safely
|
|
139
|
+
* replayed mid-iteration) is enforced by the caller, mirroring the REST
|
|
140
|
+
* {@link DEFAULT_RETRY_METHODS} idempotency gate.
|
|
141
|
+
*/
|
|
142
|
+
export function shouldRetryGrpcCall(retryOptions, attempt, error, aborted) {
|
|
143
|
+
if (!retryOptions || attempt >= retryOptions.maxRetries) {
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
if (aborted) {
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
const code = connectErrorCode(error);
|
|
150
|
+
if (code === undefined || code === GRPC_CODE_CANCELED) {
|
|
151
|
+
return false;
|
|
152
|
+
}
|
|
153
|
+
return DEFAULT_RETRYABLE_GRPC_CODES.has(code);
|
|
154
|
+
}
|
|
155
|
+
function connectErrorMetadata(error) {
|
|
156
|
+
if (typeof error === "object" && error !== null && "metadata" in error) {
|
|
157
|
+
const metadata = error.metadata;
|
|
158
|
+
if (metadata && typeof metadata.get === "function") {
|
|
159
|
+
return metadata;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return undefined;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Resolve the backoff delay before the next gRPC-web attempt. Reuses the shared
|
|
166
|
+
* {@link resolveRetryDelayMs} exponential-with-jitter math; a `retry-after`
|
|
167
|
+
* value carried on the Connect error metadata (capped by `maxDelayMs`) wins,
|
|
168
|
+
* mirroring the REST `Retry-After` handling.
|
|
169
|
+
*/
|
|
170
|
+
export function resolveGrpcRetryDelayMs(retryOptions, attempt, error) {
|
|
171
|
+
const metadata = connectErrorMetadata(error);
|
|
172
|
+
const retryAfterMs = metadata ? parseRetryAfterHeaderMs(metadata) : undefined;
|
|
173
|
+
if (retryAfterMs !== undefined) {
|
|
174
|
+
return Math.min(retryOptions?.maxDelayMs ?? retryAfterMs, retryAfterMs);
|
|
175
|
+
}
|
|
176
|
+
return resolveRetryDelayMs(retryOptions, attempt);
|
|
177
|
+
}
|
|
178
|
+
export async function sleep(ms, signal) {
|
|
179
|
+
if (ms <= 0) {
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
if (signal?.aborted) {
|
|
183
|
+
throw new HonuaAbortError();
|
|
184
|
+
}
|
|
185
|
+
await new Promise((resolve, reject) => {
|
|
186
|
+
const timer = setTimeout(() => {
|
|
187
|
+
signal?.removeEventListener("abort", abort);
|
|
188
|
+
resolve();
|
|
189
|
+
}, ms);
|
|
190
|
+
const abort = () => {
|
|
191
|
+
clearTimeout(timer);
|
|
192
|
+
reject(new HonuaAbortError());
|
|
193
|
+
};
|
|
194
|
+
signal?.addEventListener("abort", abort, { once: true });
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
export function normalizeNetworkError(error) {
|
|
198
|
+
if (error instanceof Error && error.name === "AbortError") {
|
|
199
|
+
return new HonuaAbortError();
|
|
200
|
+
}
|
|
201
|
+
if (error instanceof Error) {
|
|
202
|
+
return new HonuaNetworkError(error.message, error);
|
|
203
|
+
}
|
|
204
|
+
return new HonuaNetworkError(String(error), error);
|
|
205
|
+
}
|
|
206
|
+
export function createTimeoutSignal(existingSignal, timeoutMs) {
|
|
207
|
+
if (timeoutMs === undefined) {
|
|
208
|
+
return {
|
|
209
|
+
signal: existingSignal ?? undefined,
|
|
210
|
+
didTimeout: false,
|
|
211
|
+
dispose: () => undefined,
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
const controller = new AbortController();
|
|
215
|
+
let didTimeout = false;
|
|
216
|
+
let timer;
|
|
217
|
+
let onAbort;
|
|
218
|
+
timer = setTimeout(() => {
|
|
219
|
+
didTimeout = true;
|
|
220
|
+
controller.abort();
|
|
221
|
+
}, timeoutMs);
|
|
222
|
+
if (existingSignal) {
|
|
223
|
+
if (existingSignal.aborted) {
|
|
224
|
+
controller.abort();
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
onAbort = () => {
|
|
228
|
+
controller.abort();
|
|
229
|
+
};
|
|
230
|
+
existingSignal.addEventListener("abort", onAbort, { once: true });
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
return {
|
|
234
|
+
signal: controller.signal,
|
|
235
|
+
get didTimeout() {
|
|
236
|
+
return didTimeout;
|
|
237
|
+
},
|
|
238
|
+
dispose: () => {
|
|
239
|
+
if (timer) {
|
|
240
|
+
clearTimeout(timer);
|
|
241
|
+
timer = undefined;
|
|
242
|
+
}
|
|
243
|
+
if (existingSignal && onAbort) {
|
|
244
|
+
existingSignal.removeEventListener("abort", onAbort);
|
|
245
|
+
onAbort = undefined;
|
|
246
|
+
}
|
|
247
|
+
},
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Map a non-OK HTTP response body into a {@link HonuaHttpError}, preferring the
|
|
252
|
+
* server's structured error message (`error.message`, `message`, or `detail`)
|
|
253
|
+
* and falling back to a generic message while preserving the raw body.
|
|
254
|
+
*/
|
|
255
|
+
export function toHttpError(statusCode, body) {
|
|
256
|
+
const fallback = "Request failed";
|
|
257
|
+
if (isObject(body)) {
|
|
258
|
+
const error = body.error;
|
|
259
|
+
if (isObject(error) && typeof error.message === "string") {
|
|
260
|
+
return new HonuaHttpError(statusCode, error.message, body);
|
|
261
|
+
}
|
|
262
|
+
if (typeof body.message === "string") {
|
|
263
|
+
return new HonuaHttpError(statusCode, body.message, body);
|
|
264
|
+
}
|
|
265
|
+
if (typeof body.detail === "string") {
|
|
266
|
+
return new HonuaHttpError(statusCode, body.detail, body);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
return new HonuaHttpError(statusCode, fallback, body);
|
|
270
|
+
}
|
|
271
|
+
function isObject(value) {
|
|
272
|
+
return typeof value === "object" && value !== null;
|
|
273
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { EsriGeometryType, EsriSpatialRel, HonuaSpatialReference } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* A spatial filter fragment that can be spread into a `QueryFeaturesRequest`
|
|
4
|
+
* or applied via `QueryBuilder.geometry()` / `.geometryType()` / `.spatialRel()`.
|
|
5
|
+
*/
|
|
6
|
+
export interface SpatialFilter {
|
|
7
|
+
geometry: Record<string, unknown>;
|
|
8
|
+
geometryType: EsriGeometryType;
|
|
9
|
+
spatialRel?: EsriSpatialRel;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Create an envelope (bounding box) spatial filter.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* const req: QueryFeaturesRequest = {
|
|
17
|
+
* serviceId: "svc", layerId: 0,
|
|
18
|
+
* ...envelope(-118.5, 33.7, -117.5, 34.2),
|
|
19
|
+
* };
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare function envelope(xmin: number, ymin: number, xmax: number, ymax: number, spatialReference?: HonuaSpatialReference): SpatialFilter;
|
|
23
|
+
/**
|
|
24
|
+
* Create a point spatial filter.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* const req: QueryFeaturesRequest = {
|
|
29
|
+
* serviceId: "svc", layerId: 0,
|
|
30
|
+
* ...point(-118.24, 34.05),
|
|
31
|
+
* };
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare function point(x: number, y: number, spatialReference?: HonuaSpatialReference): SpatialFilter;
|
|
35
|
+
/**
|
|
36
|
+
* Create a polygon spatial filter from an array of rings.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```ts
|
|
40
|
+
* const req: QueryFeaturesRequest = {
|
|
41
|
+
* serviceId: "svc", layerId: 0,
|
|
42
|
+
* ...polygon([[[-118, 34], [-117, 34], [-117, 35], [-118, 35], [-118, 34]]]),
|
|
43
|
+
* };
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export declare function polygon(rings: number[][][], spatialReference?: HonuaSpatialReference): SpatialFilter;
|
|
47
|
+
/**
|
|
48
|
+
* Create an envelope spatial filter centered on a point, approximating a
|
|
49
|
+
* circular buffer as a bounding box.
|
|
50
|
+
*
|
|
51
|
+
* @param x - Center x coordinate
|
|
52
|
+
* @param y - Center y coordinate
|
|
53
|
+
* @param distance - Half-width of the envelope in coordinate units
|
|
54
|
+
* @param spatialReference - Optional spatial reference
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts
|
|
58
|
+
* // 0.5-degree bounding box around a point
|
|
59
|
+
* const req: QueryFeaturesRequest = {
|
|
60
|
+
* serviceId: "svc", layerId: 0,
|
|
61
|
+
* ...buffer(-118.24, 34.05, 0.5),
|
|
62
|
+
* };
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export declare function buffer(x: number, y: number, distance: number, spatialReference?: HonuaSpatialReference): SpatialFilter;
|
|
66
|
+
/**
|
|
67
|
+
* Wrap an existing geometry with `esriSpatialRelIntersects`.
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```ts
|
|
71
|
+
* const filter = spatialIntersects({ xmin: -180, ymin: -90, xmax: 180, ymax: 90 });
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export declare function spatialIntersects(geometry: Record<string, unknown>): SpatialFilter;
|
|
75
|
+
/**
|
|
76
|
+
* Wrap an existing geometry with `esriSpatialRelContains`.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```ts
|
|
80
|
+
* const filter = spatialContains({ rings: [[[-118, 34], [-117, 34], [-117, 35], [-118, 35], [-118, 34]]] });
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
export declare function spatialContains(geometry: Record<string, unknown>): SpatialFilter;
|
|
84
|
+
/**
|
|
85
|
+
* Wrap an existing geometry with `esriSpatialRelWithin`.
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```ts
|
|
89
|
+
* const filter = spatialWithin({ rings: [[[-118, 34], [-117, 34], [-117, 35], [-118, 35], [-118, 34]]] });
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
export declare function spatialWithin(geometry: Record<string, unknown>): SpatialFilter;
|
|
93
|
+
//# sourceMappingURL=spatial-filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spatial-filter.d.ts","sourceRoot":"","sources":["../../../src/core/spatial-filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE1F;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,YAAY,EAAE,gBAAgB,CAAC;IAC/B,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,gBAAgB,CAAC,EAAE,qBAAqB,GACvC,aAAa,CAQf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,qBAAqB,GAAG,aAAa,CAQnG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,gBAAgB,CAAC,EAAE,qBAAqB,GAAG,aAAa,CAQpG;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,MAAM,CACpB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,QAAQ,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,qBAAqB,GACvC,aAAa,CAEf;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,CAMlF;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,CAMhF;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,CAM9E"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create an envelope (bounding box) spatial filter.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* const req: QueryFeaturesRequest = {
|
|
7
|
+
* serviceId: "svc", layerId: 0,
|
|
8
|
+
* ...envelope(-118.5, 33.7, -117.5, 34.2),
|
|
9
|
+
* };
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export function envelope(xmin, ymin, xmax, ymax, spatialReference) {
|
|
13
|
+
const geometry = { xmin, ymin, xmax, ymax };
|
|
14
|
+
if (spatialReference)
|
|
15
|
+
geometry.spatialReference = spatialReference;
|
|
16
|
+
return {
|
|
17
|
+
geometry,
|
|
18
|
+
geometryType: "esriGeometryEnvelope",
|
|
19
|
+
spatialRel: "esriSpatialRelIntersects",
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Create a point spatial filter.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* const req: QueryFeaturesRequest = {
|
|
28
|
+
* serviceId: "svc", layerId: 0,
|
|
29
|
+
* ...point(-118.24, 34.05),
|
|
30
|
+
* };
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export function point(x, y, spatialReference) {
|
|
34
|
+
const geometry = { x, y };
|
|
35
|
+
if (spatialReference)
|
|
36
|
+
geometry.spatialReference = spatialReference;
|
|
37
|
+
return {
|
|
38
|
+
geometry,
|
|
39
|
+
geometryType: "esriGeometryPoint",
|
|
40
|
+
spatialRel: "esriSpatialRelIntersects",
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Create a polygon spatial filter from an array of rings.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```ts
|
|
48
|
+
* const req: QueryFeaturesRequest = {
|
|
49
|
+
* serviceId: "svc", layerId: 0,
|
|
50
|
+
* ...polygon([[[-118, 34], [-117, 34], [-117, 35], [-118, 35], [-118, 34]]]),
|
|
51
|
+
* };
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export function polygon(rings, spatialReference) {
|
|
55
|
+
const geometry = { rings };
|
|
56
|
+
if (spatialReference)
|
|
57
|
+
geometry.spatialReference = spatialReference;
|
|
58
|
+
return {
|
|
59
|
+
geometry,
|
|
60
|
+
geometryType: "esriGeometryPolygon",
|
|
61
|
+
spatialRel: "esriSpatialRelIntersects",
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Create an envelope spatial filter centered on a point, approximating a
|
|
66
|
+
* circular buffer as a bounding box.
|
|
67
|
+
*
|
|
68
|
+
* @param x - Center x coordinate
|
|
69
|
+
* @param y - Center y coordinate
|
|
70
|
+
* @param distance - Half-width of the envelope in coordinate units
|
|
71
|
+
* @param spatialReference - Optional spatial reference
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```ts
|
|
75
|
+
* // 0.5-degree bounding box around a point
|
|
76
|
+
* const req: QueryFeaturesRequest = {
|
|
77
|
+
* serviceId: "svc", layerId: 0,
|
|
78
|
+
* ...buffer(-118.24, 34.05, 0.5),
|
|
79
|
+
* };
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
export function buffer(x, y, distance, spatialReference) {
|
|
83
|
+
return envelope(x - distance, y - distance, x + distance, y + distance, spatialReference);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Wrap an existing geometry with `esriSpatialRelIntersects`.
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```ts
|
|
90
|
+
* const filter = spatialIntersects({ xmin: -180, ymin: -90, xmax: 180, ymax: 90 });
|
|
91
|
+
* ```
|
|
92
|
+
*/
|
|
93
|
+
export function spatialIntersects(geometry) {
|
|
94
|
+
return {
|
|
95
|
+
geometry,
|
|
96
|
+
geometryType: detectGeometryType(geometry),
|
|
97
|
+
spatialRel: "esriSpatialRelIntersects",
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Wrap an existing geometry with `esriSpatialRelContains`.
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```ts
|
|
105
|
+
* const filter = spatialContains({ rings: [[[-118, 34], [-117, 34], [-117, 35], [-118, 35], [-118, 34]]] });
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
export function spatialContains(geometry) {
|
|
109
|
+
return {
|
|
110
|
+
geometry,
|
|
111
|
+
geometryType: detectGeometryType(geometry),
|
|
112
|
+
spatialRel: "esriSpatialRelContains",
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Wrap an existing geometry with `esriSpatialRelWithin`.
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* ```ts
|
|
120
|
+
* const filter = spatialWithin({ rings: [[[-118, 34], [-117, 34], [-117, 35], [-118, 35], [-118, 34]]] });
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
export function spatialWithin(geometry) {
|
|
124
|
+
return {
|
|
125
|
+
geometry,
|
|
126
|
+
geometryType: detectGeometryType(geometry),
|
|
127
|
+
spatialRel: "esriSpatialRelWithin",
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Detect the Esri geometry type from a plain geometry object by inspecting
|
|
132
|
+
* its shape (duck-typing).
|
|
133
|
+
*
|
|
134
|
+
* @internal
|
|
135
|
+
*/
|
|
136
|
+
function detectGeometryType(geometry) {
|
|
137
|
+
if ("xmin" in geometry && "ymin" in geometry && "xmax" in geometry && "ymax" in geometry) {
|
|
138
|
+
return "esriGeometryEnvelope";
|
|
139
|
+
}
|
|
140
|
+
if ("rings" in geometry) {
|
|
141
|
+
return "esriGeometryPolygon";
|
|
142
|
+
}
|
|
143
|
+
if ("paths" in geometry) {
|
|
144
|
+
return "esriGeometryPolyline";
|
|
145
|
+
}
|
|
146
|
+
if ("points" in geometry) {
|
|
147
|
+
return "esriGeometryMultipoint";
|
|
148
|
+
}
|
|
149
|
+
if ("x" in geometry && "y" in geometry) {
|
|
150
|
+
return "esriGeometryPoint";
|
|
151
|
+
}
|
|
152
|
+
return "esriGeometryPoint";
|
|
153
|
+
}
|
package/core/stac.d.ts
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* STAC API search surface. STAC builds on OGC API Features, so this
|
|
3
|
+
* class wraps the STAC catalog landing, collections listing, items, and
|
|
4
|
+
* cross-collection search endpoints. The wire calls live on
|
|
5
|
+
* `HonuaClient`; this class is the request-shaping layer on top.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
import type { HonuaClient } from "./client.js";
|
|
10
|
+
import type { HonuaProtocolTransport } from "./protocol-transport.js";
|
|
11
|
+
import type { HonuaOgcCollectionMetadata, HonuaOgcCollectionsResponse, HonuaStacItemCollectionResponse, HonuaStacItemResponse, HonuaStacLandingResponse, OgcCollectionRequest, OgcMetadataRequest, StacSearchRequest } from "./types.js";
|
|
12
|
+
export interface HonuaStacSearchOptions {
|
|
13
|
+
client: HonuaClient;
|
|
14
|
+
}
|
|
15
|
+
export interface HonuaStacSearchAllRequest extends StacSearchRequest {
|
|
16
|
+
/** Maximum number of items to materialize across pages. */
|
|
17
|
+
pageSize?: number;
|
|
18
|
+
/** Hard cap on the number of pages to fetch (defaults to 100). */
|
|
19
|
+
maxPages?: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* STAC API entry point. Discovery (`landing`, `collections`,
|
|
23
|
+
* `collection`) plus search (`search`, `searchAll`, `searchStream`) and
|
|
24
|
+
* item fetch.
|
|
25
|
+
*/
|
|
26
|
+
export declare class HonuaStacSearch {
|
|
27
|
+
readonly client: HonuaClient;
|
|
28
|
+
constructor(options: HonuaStacSearchOptions);
|
|
29
|
+
landing(request?: OgcMetadataRequest): Promise<HonuaStacLandingResponse>;
|
|
30
|
+
collections(request?: OgcMetadataRequest): Promise<HonuaOgcCollectionsResponse>;
|
|
31
|
+
collection(request: OgcCollectionRequest): Promise<HonuaOgcCollectionMetadata>;
|
|
32
|
+
item(request: {
|
|
33
|
+
collectionId: string | number;
|
|
34
|
+
itemId: string | number;
|
|
35
|
+
signal?: AbortSignal;
|
|
36
|
+
responseFormat?: string;
|
|
37
|
+
extraParams?: Record<string, string | number | boolean>;
|
|
38
|
+
}): Promise<HonuaStacItemResponse>;
|
|
39
|
+
search(request?: StacSearchRequest): Promise<HonuaStacItemCollectionResponse>;
|
|
40
|
+
searchAll(request?: HonuaStacSearchAllRequest): Promise<HonuaStacItemResponse[]>;
|
|
41
|
+
searchStream(request?: HonuaStacSearchAllRequest): AsyncGenerator<HonuaStacItemResponse[], void, undefined>;
|
|
42
|
+
}
|
|
43
|
+
export declare function createHonuaStacSearch(client: HonuaClient): HonuaStacSearch;
|
|
44
|
+
export declare function getStacLanding(transport: HonuaProtocolTransport, request?: OgcMetadataRequest): Promise<HonuaStacLandingResponse>;
|
|
45
|
+
export declare function listStacCollections(transport: HonuaProtocolTransport, request?: OgcMetadataRequest): Promise<HonuaOgcCollectionsResponse>;
|
|
46
|
+
export declare function getStacCollection(transport: HonuaProtocolTransport, request: OgcCollectionRequest): Promise<HonuaOgcCollectionMetadata>;
|
|
47
|
+
export declare function getStacItem(transport: HonuaProtocolTransport, request: {
|
|
48
|
+
collectionId: string | number;
|
|
49
|
+
itemId: string | number;
|
|
50
|
+
signal?: AbortSignal;
|
|
51
|
+
responseFormat?: string;
|
|
52
|
+
extraParams?: Record<string, string | number | boolean>;
|
|
53
|
+
}): Promise<HonuaStacItemResponse>;
|
|
54
|
+
export declare function searchStac(transport: HonuaProtocolTransport, request?: StacSearchRequest): Promise<HonuaStacItemCollectionResponse>;
|
|
55
|
+
//# sourceMappingURL=stac.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stac.d.ts","sourceRoot":"","sources":["../../../src/core/stac.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EACV,0BAA0B,EAC1B,2BAA2B,EAC3B,+BAA+B,EAC/B,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAKD;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,SAAgB,MAAM,EAAE,WAAW,CAAC;gBAEjB,OAAO,EAAE,sBAAsB;IAIrC,OAAO,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAI5E,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAInF,UAAU,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAI9E,IAAI,CAAC,OAAO,EAAE;QACzB,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;QAC9B,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;QACxB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;KACzD,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIrB,MAAM,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,+BAA+B,CAAC;IAIjF,SAAS,CAAC,OAAO,GAAE,yBAA8B,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAyBnF,YAAY,CACxB,OAAO,GAAE,yBAA8B,GACtC,cAAc,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC;CAoB5D;AAkCD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG,eAAe,CAE1E;AAID,wBAAsB,cAAc,CAClC,SAAS,EAAE,sBAAsB,EACjC,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,wBAAwB,CAAC,CAOnC;AAED,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,sBAAsB,EACjC,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,2BAA2B,CAAC,CAOtC;AAED,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,sBAAsB,EACjC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,0BAA0B,CAAC,CAOrC;AAED,wBAAsB,WAAW,CAC/B,SAAS,EAAE,sBAAsB,EACjC,OAAO,EAAE;IACP,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CACzD,GACA,OAAO,CAAC,qBAAqB,CAAC,CAMhC;AAED,wBAAsB,UAAU,CAC9B,SAAS,EAAE,sBAAsB,EACjC,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,+BAA+B,CAAC,CAmB1C"}
|