@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,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Translates `MapPackage.sourceBindings[]` (server shape) into SDK-side
|
|
3
|
+
* `SourceDescriptor[]` consumed by `createDataset`, and keeps a parallel
|
|
4
|
+
* record of MapLibre-native source entries that flow straight into the
|
|
5
|
+
* composed style.
|
|
6
|
+
*
|
|
7
|
+
* Contract:
|
|
8
|
+
* - Protocol-backed bindings (`geoservices_*`, `ogc_features`, `wfs`,
|
|
9
|
+
* `wms`, `odata`) produce a `SourceDescriptor` whose locator mirrors
|
|
10
|
+
* the server's field shape verbatim per `docs/source-binding-alignment.md`.
|
|
11
|
+
* - MapLibre-native bindings (`vector_tile`, `raster_tile`) skip the
|
|
12
|
+
* contract pipeline and surface as MapLibre source entries.
|
|
13
|
+
* - `ogc_maps` / `ogc_tiles` project onto MapLibre-native sources
|
|
14
|
+
* (raster or vector) since the SDK does not model them as first-party
|
|
15
|
+
* data protocols.
|
|
16
|
+
* - `workspace_artifact` is deferred (no adapter); load fails with a
|
|
17
|
+
* clear `HonuaMapPackageError` stage="source-bind" so callers can
|
|
18
|
+
* detect missing server artifacts.
|
|
19
|
+
*
|
|
20
|
+
* @module
|
|
21
|
+
*/
|
|
22
|
+
import { type SourceDescriptor } from "../contract/index.js";
|
|
23
|
+
import type { HonuaMapPackageLocator, HonuaMapPackageSourceBinding } from "./map-package.js";
|
|
24
|
+
/** One MapLibre-native source entry derived from a binding. */
|
|
25
|
+
export interface NativeMapLibreSourceEntry {
|
|
26
|
+
sourceId: string;
|
|
27
|
+
spec: {
|
|
28
|
+
type: string;
|
|
29
|
+
[key: string]: unknown;
|
|
30
|
+
};
|
|
31
|
+
attribution?: string;
|
|
32
|
+
}
|
|
33
|
+
/** Result of projecting a package's source bindings. */
|
|
34
|
+
export interface SourceBridgeProjection {
|
|
35
|
+
/** Protocol-backed descriptors destined for `createDataset`. */
|
|
36
|
+
descriptors: SourceDescriptor[];
|
|
37
|
+
/**
|
|
38
|
+
* MapLibre-native source entries keyed by sourceId. These flow straight
|
|
39
|
+
* into the composed style's `sources` map without going through
|
|
40
|
+
* `Dataset`.
|
|
41
|
+
*/
|
|
42
|
+
nativeSources: NativeMapLibreSourceEntry[];
|
|
43
|
+
/** Binding filter expressions captured per source id. */
|
|
44
|
+
filtersBySourceId: Map<string, string>;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Project the bindings on a MapPackage into SDK contract descriptors and
|
|
48
|
+
* MapLibre-native source entries. Throws `HonuaMapPackageError` for
|
|
49
|
+
* bindings the runtime cannot route (unknown protocol, missing locator,
|
|
50
|
+
* deferred `workspace_artifact`).
|
|
51
|
+
*/
|
|
52
|
+
export declare function projectSourceBindings(packageId: string | undefined, bindings: readonly HonuaMapPackageSourceBinding[]): SourceBridgeProjection;
|
|
53
|
+
/**
|
|
54
|
+
* Build the Honua custom-source spec (to be inserted into `style.sources`)
|
|
55
|
+
* for a protocol-backed descriptor.
|
|
56
|
+
*/
|
|
57
|
+
export declare function toHonuaSourceSpec(descriptor: SourceDescriptor, filter?: string): {
|
|
58
|
+
type: string;
|
|
59
|
+
[key: string]: unknown;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Build a MapLibre `raster` source spec for a WMS descriptor. The
|
|
63
|
+
* `tiles` template uses MapLibre's runtime substitution placeholders
|
|
64
|
+
* (`{bbox-epsg3857}`, `{width}`, `{height}`) so each tile request is a
|
|
65
|
+
* pre-baked KVP URL — consumers do not have to hand-assemble GetMap
|
|
66
|
+
* URLs themselves.
|
|
67
|
+
*/
|
|
68
|
+
export declare function buildWmsRasterSourceSpec(descriptor: SourceDescriptor, options?: {
|
|
69
|
+
tileSize?: number;
|
|
70
|
+
format?: string;
|
|
71
|
+
transparent?: boolean;
|
|
72
|
+
}): {
|
|
73
|
+
type: "raster";
|
|
74
|
+
tiles: string[];
|
|
75
|
+
tileSize: number;
|
|
76
|
+
attribution?: string;
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Build a MapLibre `raster` source spec for a WMTS descriptor using the
|
|
80
|
+
* RESTful tile route. The template expands `{z}/{y}/{x}` at runtime
|
|
81
|
+
* (MapLibre's standard tile placeholders).
|
|
82
|
+
*/
|
|
83
|
+
export declare function buildWmtsRasterSourceSpec(descriptor: SourceDescriptor, options?: {
|
|
84
|
+
tileSize?: number;
|
|
85
|
+
format?: string;
|
|
86
|
+
minzoom?: number;
|
|
87
|
+
maxzoom?: number;
|
|
88
|
+
}): {
|
|
89
|
+
type: "raster";
|
|
90
|
+
tiles: string[];
|
|
91
|
+
tileSize: number;
|
|
92
|
+
scheme?: string;
|
|
93
|
+
minzoom?: number;
|
|
94
|
+
maxzoom?: number;
|
|
95
|
+
attribution?: string;
|
|
96
|
+
};
|
|
97
|
+
/** Re-export the server-shape locator type so callers do not import a deep path. */
|
|
98
|
+
export type { HonuaMapPackageLocator };
|
|
99
|
+
//# sourceMappingURL=source-bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-bridge.d.ts","sourceRoot":"","sources":["../../../src/runtime/source-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,sBAAsB,EAA2B,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAEtH,+DAA+D;AAC/D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wDAAwD;AACxD,MAAM,WAAW,sBAAsB;IACrC,gEAAgE;IAChE,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC;;;;OAIG;IACH,aAAa,EAAE,yBAAyB,EAAE,CAAC;IAC3C,yDAAyD;IACzD,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,QAAQ,EAAE,SAAS,4BAA4B,EAAE,GAChD,sBAAsB,CA4CxB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,gBAAgB,EAC5B,MAAM,CAAC,EAAE,MAAM,GACd;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAkE1C;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,gBAAgB,EAC5B,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1E;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CA8B7E;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,gBAAgB,EAC5B,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACvF;IACD,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CA2BA;AAgMD,oFAAoF;AACpF,YAAY,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Translates `MapPackage.sourceBindings[]` (server shape) into SDK-side
|
|
3
|
+
* `SourceDescriptor[]` consumed by `createDataset`, and keeps a parallel
|
|
4
|
+
* record of MapLibre-native source entries that flow straight into the
|
|
5
|
+
* composed style.
|
|
6
|
+
*
|
|
7
|
+
* Contract:
|
|
8
|
+
* - Protocol-backed bindings (`geoservices_*`, `ogc_features`, `wfs`,
|
|
9
|
+
* `wms`, `odata`) produce a `SourceDescriptor` whose locator mirrors
|
|
10
|
+
* the server's field shape verbatim per `docs/source-binding-alignment.md`.
|
|
11
|
+
* - MapLibre-native bindings (`vector_tile`, `raster_tile`) skip the
|
|
12
|
+
* contract pipeline and surface as MapLibre source entries.
|
|
13
|
+
* - `ogc_maps` / `ogc_tiles` project onto MapLibre-native sources
|
|
14
|
+
* (raster or vector) since the SDK does not model them as first-party
|
|
15
|
+
* data protocols.
|
|
16
|
+
* - `workspace_artifact` is deferred (no adapter); load fails with a
|
|
17
|
+
* clear `HonuaMapPackageError` stage="source-bind" so callers can
|
|
18
|
+
* detect missing server artifacts.
|
|
19
|
+
*
|
|
20
|
+
* @module
|
|
21
|
+
*/
|
|
22
|
+
import { PROTOCOL_DEFAULT_CAPABILITIES, } from "../contract/index.js";
|
|
23
|
+
import { wmtsExtensionForFormat } from "../core/wms-types.js";
|
|
24
|
+
import { HonuaMapPackageError } from "./errors.js";
|
|
25
|
+
/**
|
|
26
|
+
* Project the bindings on a MapPackage into SDK contract descriptors and
|
|
27
|
+
* MapLibre-native source entries. Throws `HonuaMapPackageError` for
|
|
28
|
+
* bindings the runtime cannot route (unknown protocol, missing locator,
|
|
29
|
+
* deferred `workspace_artifact`).
|
|
30
|
+
*/
|
|
31
|
+
export function projectSourceBindings(packageId, bindings) {
|
|
32
|
+
const descriptors = [];
|
|
33
|
+
const nativeSources = [];
|
|
34
|
+
const filtersBySourceId = new Map();
|
|
35
|
+
const seen = new Set();
|
|
36
|
+
for (const binding of bindings) {
|
|
37
|
+
if (seen.has(binding.sourceId)) {
|
|
38
|
+
throw new HonuaMapPackageError(`duplicate sourceBinding id "${binding.sourceId}"`, {
|
|
39
|
+
packageId,
|
|
40
|
+
stage: "source-bind",
|
|
41
|
+
detail: { sourceId: binding.sourceId },
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
seen.add(binding.sourceId);
|
|
45
|
+
if (binding.filter) {
|
|
46
|
+
filtersBySourceId.set(binding.sourceId, binding.filter);
|
|
47
|
+
}
|
|
48
|
+
const mlNative = toMapLibreNativeSource(binding);
|
|
49
|
+
if (mlNative) {
|
|
50
|
+
nativeSources.push(mlNative);
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
const sdkProtocol = toSdkProtocol(binding.protocol);
|
|
54
|
+
if (!sdkProtocol) {
|
|
55
|
+
throw new HonuaMapPackageError(`unsupported SourceBinding protocol "${binding.protocol}" on source "${binding.sourceId}"`, { packageId, stage: "source-bind", detail: { sourceId: binding.sourceId, protocol: binding.protocol } });
|
|
56
|
+
}
|
|
57
|
+
descriptors.push({
|
|
58
|
+
id: binding.sourceId,
|
|
59
|
+
protocol: sdkProtocol,
|
|
60
|
+
locator: toSourceLocator(packageId, binding, sdkProtocol),
|
|
61
|
+
capabilities: PROTOCOL_DEFAULT_CAPABILITIES[sdkProtocol],
|
|
62
|
+
attribution: binding.attribution,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
return { descriptors, nativeSources, filtersBySourceId };
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Build the Honua custom-source spec (to be inserted into `style.sources`)
|
|
69
|
+
* for a protocol-backed descriptor.
|
|
70
|
+
*/
|
|
71
|
+
export function toHonuaSourceSpec(descriptor, filter) {
|
|
72
|
+
switch (descriptor.protocol) {
|
|
73
|
+
case "geoservices-feature-service": {
|
|
74
|
+
const url = requireLocatorUrl(descriptor);
|
|
75
|
+
return {
|
|
76
|
+
type: "honua-feature-service",
|
|
77
|
+
url,
|
|
78
|
+
...(filter ? { definitionExpression: filter } : {}),
|
|
79
|
+
...(descriptor.attribution ? { attribution: descriptor.attribution } : {}),
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
case "geoservices-map-service": {
|
|
83
|
+
const url = requireLocatorUrl(descriptor);
|
|
84
|
+
return {
|
|
85
|
+
type: "honua-map-service",
|
|
86
|
+
url,
|
|
87
|
+
...(descriptor.attribution ? { attribution: descriptor.attribution } : {}),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
case "ogc-features": {
|
|
91
|
+
const url = requireLocatorUrl(descriptor);
|
|
92
|
+
return {
|
|
93
|
+
type: "honua-ogc-features",
|
|
94
|
+
url,
|
|
95
|
+
...(descriptor.locator.collectionId !== undefined
|
|
96
|
+
? { collectionId: String(descriptor.locator.collectionId) }
|
|
97
|
+
: {}),
|
|
98
|
+
...(filter ? { filter } : {}),
|
|
99
|
+
...(descriptor.attribution ? { attribution: descriptor.attribution } : {}),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
case "wms": {
|
|
103
|
+
const url = requireLocatorUrl(descriptor);
|
|
104
|
+
const out = {
|
|
105
|
+
type: "honua-wms",
|
|
106
|
+
url,
|
|
107
|
+
};
|
|
108
|
+
if (descriptor.locator.serviceId !== undefined)
|
|
109
|
+
out.serviceId = descriptor.locator.serviceId;
|
|
110
|
+
if (descriptor.locator.typeName !== undefined)
|
|
111
|
+
out.layers = descriptor.locator.typeName;
|
|
112
|
+
if (descriptor.locator.styleId !== undefined)
|
|
113
|
+
out.styles = descriptor.locator.styleId;
|
|
114
|
+
if (descriptor.attribution !== undefined)
|
|
115
|
+
out.attribution = descriptor.attribution;
|
|
116
|
+
return out;
|
|
117
|
+
}
|
|
118
|
+
case "wmts": {
|
|
119
|
+
const url = requireLocatorUrl(descriptor);
|
|
120
|
+
const out = {
|
|
121
|
+
type: "honua-wmts",
|
|
122
|
+
url,
|
|
123
|
+
};
|
|
124
|
+
if (descriptor.locator.serviceId !== undefined)
|
|
125
|
+
out.serviceId = descriptor.locator.serviceId;
|
|
126
|
+
if (descriptor.locator.typeName !== undefined)
|
|
127
|
+
out.layer = descriptor.locator.typeName;
|
|
128
|
+
if (descriptor.locator.styleId !== undefined)
|
|
129
|
+
out.style = descriptor.locator.styleId;
|
|
130
|
+
if (descriptor.locator.tileMatrixSetId !== undefined) {
|
|
131
|
+
out.tileMatrixSet = descriptor.locator.tileMatrixSetId;
|
|
132
|
+
}
|
|
133
|
+
if (descriptor.attribution !== undefined)
|
|
134
|
+
out.attribution = descriptor.attribution;
|
|
135
|
+
return out;
|
|
136
|
+
}
|
|
137
|
+
default:
|
|
138
|
+
return {
|
|
139
|
+
type: `honua-${descriptor.protocol}`,
|
|
140
|
+
...descriptor.locator,
|
|
141
|
+
...(filter ? { filter } : {}),
|
|
142
|
+
...(descriptor.attribution ? { attribution: descriptor.attribution } : {}),
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Build a MapLibre `raster` source spec for a WMS descriptor. The
|
|
148
|
+
* `tiles` template uses MapLibre's runtime substitution placeholders
|
|
149
|
+
* (`{bbox-epsg3857}`, `{width}`, `{height}`) so each tile request is a
|
|
150
|
+
* pre-baked KVP URL — consumers do not have to hand-assemble GetMap
|
|
151
|
+
* URLs themselves.
|
|
152
|
+
*/
|
|
153
|
+
export function buildWmsRasterSourceSpec(descriptor, options = {}) {
|
|
154
|
+
const url = requireLocatorUrl(descriptor);
|
|
155
|
+
const tileSize = options.tileSize ?? 256;
|
|
156
|
+
const format = options.format ?? "image/png";
|
|
157
|
+
const transparent = options.transparent ?? true;
|
|
158
|
+
const layers = descriptor.locator.typeName ?? "";
|
|
159
|
+
const styles = descriptor.locator.styleId ?? "";
|
|
160
|
+
const params = new URLSearchParams();
|
|
161
|
+
params.set("SERVICE", "WMS");
|
|
162
|
+
params.set("VERSION", "1.3.0");
|
|
163
|
+
params.set("REQUEST", "GetMap");
|
|
164
|
+
params.set("LAYERS", layers);
|
|
165
|
+
params.set("STYLES", styles);
|
|
166
|
+
params.set("CRS", "EPSG:3857");
|
|
167
|
+
params.set("FORMAT", format);
|
|
168
|
+
params.set("TRANSPARENT", String(transparent).toUpperCase());
|
|
169
|
+
// MapLibre substitutes these placeholders at fetch-time. They are
|
|
170
|
+
// intentionally appended verbatim (no encoding) so MapLibre's
|
|
171
|
+
// template parser sees the literal tokens. WIDTH and HEIGHT are
|
|
172
|
+
// emitted only as placeholders — duplicating them as fixed params
|
|
173
|
+
// would produce ambiguous query keys that honua-server's
|
|
174
|
+
// TryGetRequiredQueryValue / int.TryParse pair rejects.
|
|
175
|
+
const baseUrl = `${url}?${params.toString()}&BBOX={bbox-epsg3857}&WIDTH={width}&HEIGHT={height}`;
|
|
176
|
+
const out = {
|
|
177
|
+
type: "raster",
|
|
178
|
+
tiles: [baseUrl],
|
|
179
|
+
tileSize,
|
|
180
|
+
};
|
|
181
|
+
if (descriptor.attribution)
|
|
182
|
+
out.attribution = descriptor.attribution;
|
|
183
|
+
return out;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Build a MapLibre `raster` source spec for a WMTS descriptor using the
|
|
187
|
+
* RESTful tile route. The template expands `{z}/{y}/{x}` at runtime
|
|
188
|
+
* (MapLibre's standard tile placeholders).
|
|
189
|
+
*/
|
|
190
|
+
export function buildWmtsRasterSourceSpec(descriptor, options = {}) {
|
|
191
|
+
const url = requireLocatorUrl(descriptor);
|
|
192
|
+
const tileSize = options.tileSize ?? 256;
|
|
193
|
+
const format = options.format ?? "image/png";
|
|
194
|
+
const ext = wmtsExtensionForFormat(format);
|
|
195
|
+
const layer = descriptor.locator.typeName ?? "";
|
|
196
|
+
const style = descriptor.locator.styleId ?? "default";
|
|
197
|
+
const tms = descriptor.locator.tileMatrixSetId ?? "WebMercatorQuad";
|
|
198
|
+
const tileTemplate = `${url}/${encodeURIComponent(layer)}/${encodeURIComponent(style)}/${encodeURIComponent(tms)}/{z}/{y}/{x}.${ext}`;
|
|
199
|
+
const out = {
|
|
200
|
+
type: "raster",
|
|
201
|
+
tiles: [tileTemplate],
|
|
202
|
+
tileSize,
|
|
203
|
+
scheme: "xyz",
|
|
204
|
+
};
|
|
205
|
+
if (options.minzoom !== undefined)
|
|
206
|
+
out.minzoom = options.minzoom;
|
|
207
|
+
if (options.maxzoom !== undefined)
|
|
208
|
+
out.maxzoom = options.maxzoom;
|
|
209
|
+
if (descriptor.attribution)
|
|
210
|
+
out.attribution = descriptor.attribution;
|
|
211
|
+
return out;
|
|
212
|
+
}
|
|
213
|
+
function toSdkProtocol(protocol) {
|
|
214
|
+
switch (protocol) {
|
|
215
|
+
case "geoservices_feature_service":
|
|
216
|
+
return "geoservices-feature-service";
|
|
217
|
+
case "geoservices_map_service":
|
|
218
|
+
return "geoservices-map-service";
|
|
219
|
+
case "ogc_features":
|
|
220
|
+
return "ogc-features";
|
|
221
|
+
case "wfs":
|
|
222
|
+
return "wfs";
|
|
223
|
+
case "wms":
|
|
224
|
+
return "wms";
|
|
225
|
+
case "wmts":
|
|
226
|
+
return "wmts";
|
|
227
|
+
case "odata":
|
|
228
|
+
return "odata";
|
|
229
|
+
default:
|
|
230
|
+
return undefined;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
function toMapLibreNativeSource(binding) {
|
|
234
|
+
switch (binding.protocol) {
|
|
235
|
+
case "vector_tile":
|
|
236
|
+
case "ogc_tiles":
|
|
237
|
+
return {
|
|
238
|
+
sourceId: binding.sourceId,
|
|
239
|
+
attribution: binding.attribution,
|
|
240
|
+
spec: {
|
|
241
|
+
type: "vector",
|
|
242
|
+
...(binding.locator.url ? { tiles: [binding.locator.url] } : {}),
|
|
243
|
+
...(binding.attribution ? { attribution: binding.attribution } : {}),
|
|
244
|
+
},
|
|
245
|
+
};
|
|
246
|
+
case "raster_tile":
|
|
247
|
+
case "ogc_maps":
|
|
248
|
+
return {
|
|
249
|
+
sourceId: binding.sourceId,
|
|
250
|
+
attribution: binding.attribution,
|
|
251
|
+
spec: {
|
|
252
|
+
type: "raster",
|
|
253
|
+
...(binding.locator.url ? { tiles: [binding.locator.url] } : {}),
|
|
254
|
+
...(binding.attribution ? { attribution: binding.attribution } : {}),
|
|
255
|
+
},
|
|
256
|
+
};
|
|
257
|
+
default:
|
|
258
|
+
return undefined;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
function toSourceLocator(packageId, binding, sdkProtocol) {
|
|
262
|
+
const loc = binding.locator;
|
|
263
|
+
if (binding.protocol === "workspace_artifact") {
|
|
264
|
+
throw new HonuaMapPackageError(`"workspace_artifact" binding on source "${binding.sourceId}" requires a server-side artifact resolver that is not yet wired`, { packageId, stage: "source-bind", detail: { sourceId: binding.sourceId, protocol: binding.protocol } });
|
|
265
|
+
}
|
|
266
|
+
if (typeof loc.url !== "string" || loc.url.length === 0) {
|
|
267
|
+
throw new HonuaMapPackageError(`SourceBinding "${binding.sourceId}" is missing locator.url`, {
|
|
268
|
+
packageId,
|
|
269
|
+
stage: "source-bind",
|
|
270
|
+
detail: { sourceId: binding.sourceId, protocol: binding.protocol },
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
const locator = { url: loc.url };
|
|
274
|
+
if (loc.serviceId !== undefined)
|
|
275
|
+
locator.serviceId = loc.serviceId;
|
|
276
|
+
const normalizedLayerId = normalizeLayerId(loc.layerId);
|
|
277
|
+
if (normalizedLayerId !== undefined)
|
|
278
|
+
locator.layerId = normalizedLayerId;
|
|
279
|
+
if (loc.collectionId !== undefined)
|
|
280
|
+
locator.collectionId = loc.collectionId;
|
|
281
|
+
if (loc.typeName !== undefined)
|
|
282
|
+
locator.typeName = loc.typeName;
|
|
283
|
+
if (loc.entitySet !== undefined)
|
|
284
|
+
locator.entitySet = loc.entitySet;
|
|
285
|
+
if (typeof loc.styleId === "string") {
|
|
286
|
+
locator.styleId = loc.styleId;
|
|
287
|
+
}
|
|
288
|
+
if (typeof loc.tileMatrixSetId === "string") {
|
|
289
|
+
locator.tileMatrixSetId = loc.tileMatrixSetId;
|
|
290
|
+
}
|
|
291
|
+
// Backfill protocol-specific fields from the URL when the server ships
|
|
292
|
+
// only `locator.url`. The built-in GeoServices and OGC adapters require
|
|
293
|
+
// `serviceId` + `layerId` / `collectionId`, so projection must fill them
|
|
294
|
+
// in here rather than failing later inside `createDataset`.
|
|
295
|
+
if (sdkProtocol === "geoservices-feature-service" || sdkProtocol === "geoservices-map-service") {
|
|
296
|
+
const parsed = parseGeoServicesUrl(loc.url);
|
|
297
|
+
if (parsed) {
|
|
298
|
+
if (locator.serviceId === undefined && parsed.serviceId !== undefined) {
|
|
299
|
+
locator.serviceId = parsed.serviceId;
|
|
300
|
+
}
|
|
301
|
+
if (locator.layerId === undefined && parsed.layerId !== undefined) {
|
|
302
|
+
locator.layerId = parsed.layerId;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
else if (sdkProtocol === "ogc-features") {
|
|
307
|
+
if (locator.collectionId === undefined) {
|
|
308
|
+
const parsedCollectionId = parseOgcCollectionId(loc.url);
|
|
309
|
+
if (parsedCollectionId !== undefined)
|
|
310
|
+
locator.collectionId = parsedCollectionId;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
else if (sdkProtocol === "wms" || sdkProtocol === "wmts") {
|
|
314
|
+
if (locator.serviceId === undefined) {
|
|
315
|
+
const parsedServiceId = parseWmsServiceId(loc.url);
|
|
316
|
+
if (parsedServiceId !== undefined)
|
|
317
|
+
locator.serviceId = parsedServiceId;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
return locator;
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Coerce `layerId` to a number when the server wire format serialises it
|
|
324
|
+
* as a numeric string (the C# mirror declares it as a string so the
|
|
325
|
+
* JSON wire may arrive as `"0"`). Non-numeric strings are left as-is so
|
|
326
|
+
* the built-in adapters can surface a typed validation error.
|
|
327
|
+
*/
|
|
328
|
+
function normalizeLayerId(value) {
|
|
329
|
+
if (value === undefined || value === null)
|
|
330
|
+
return undefined;
|
|
331
|
+
if (typeof value === "number")
|
|
332
|
+
return Number.isFinite(value) ? value : undefined;
|
|
333
|
+
if (typeof value === "string" && value.length > 0) {
|
|
334
|
+
const trimmed = value.trim();
|
|
335
|
+
if (trimmed.length === 0)
|
|
336
|
+
return undefined;
|
|
337
|
+
if (!/^-?\d+$/.test(trimmed))
|
|
338
|
+
return undefined;
|
|
339
|
+
const parsed = Number(trimmed);
|
|
340
|
+
return Number.isFinite(parsed) ? parsed : undefined;
|
|
341
|
+
}
|
|
342
|
+
return undefined;
|
|
343
|
+
}
|
|
344
|
+
const GEOSERVICES_URL_RE = /\/rest\/services\/([^/?#]+)\/(?:FeatureServer|MapServer)(?:\/(\d+))?/i;
|
|
345
|
+
function parseGeoServicesUrl(url) {
|
|
346
|
+
const match = GEOSERVICES_URL_RE.exec(url);
|
|
347
|
+
if (!match)
|
|
348
|
+
return undefined;
|
|
349
|
+
const result = {};
|
|
350
|
+
if (match[1]) {
|
|
351
|
+
try {
|
|
352
|
+
result.serviceId = decodeURIComponent(match[1]);
|
|
353
|
+
}
|
|
354
|
+
catch {
|
|
355
|
+
result.serviceId = match[1];
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
if (match[2]) {
|
|
359
|
+
const parsed = Number(match[2]);
|
|
360
|
+
if (Number.isFinite(parsed))
|
|
361
|
+
result.layerId = parsed;
|
|
362
|
+
}
|
|
363
|
+
return result;
|
|
364
|
+
}
|
|
365
|
+
const OGC_COLLECTION_URL_RE = /\/collections\/([^/?#]+)/i;
|
|
366
|
+
function parseOgcCollectionId(url) {
|
|
367
|
+
const match = OGC_COLLECTION_URL_RE.exec(url);
|
|
368
|
+
if (!match || !match[1])
|
|
369
|
+
return undefined;
|
|
370
|
+
try {
|
|
371
|
+
return decodeURIComponent(match[1]);
|
|
372
|
+
}
|
|
373
|
+
catch {
|
|
374
|
+
return match[1];
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
const WMS_SERVICE_URL_RE = /\/(?:rest\/services\/([^/?#]+)\/MapServer\/(?:WMS|WMTS)|ogc\/services\/([^/?#]+)\/(?:wms|wmts))/i;
|
|
378
|
+
function parseWmsServiceId(url) {
|
|
379
|
+
const match = WMS_SERVICE_URL_RE.exec(url);
|
|
380
|
+
if (!match)
|
|
381
|
+
return undefined;
|
|
382
|
+
const id = match[1] ?? match[2];
|
|
383
|
+
if (!id)
|
|
384
|
+
return undefined;
|
|
385
|
+
try {
|
|
386
|
+
return decodeURIComponent(id);
|
|
387
|
+
}
|
|
388
|
+
catch {
|
|
389
|
+
return id;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
function requireLocatorUrl(descriptor) {
|
|
393
|
+
const url = descriptor.locator.url;
|
|
394
|
+
if (typeof url !== "string" || url.length === 0) {
|
|
395
|
+
throw new HonuaMapPackageError(`descriptor for "${descriptor.id}" is missing locator.url`, {
|
|
396
|
+
stage: "source-bind",
|
|
397
|
+
detail: { sourceId: descriptor.id, protocol: descriptor.protocol },
|
|
398
|
+
});
|
|
399
|
+
}
|
|
400
|
+
return url;
|
|
401
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compose the runtime MapLibre style document from a `MapPackage`:
|
|
3
|
+
*
|
|
4
|
+
* mapSpec ─┐
|
|
5
|
+
* styleRefs ─┤──> applyStyleRefs ──> applyTheme ──> composed style
|
|
6
|
+
* theme ─┘
|
|
7
|
+
*
|
|
8
|
+
* `mapSpec` is already MapLibre-compatible (it is a `HonuaStyleSpecification`).
|
|
9
|
+
* Style refs attach paint/layout overrides per layer id; theme tokens are
|
|
10
|
+
* substituted by name against `{theme:key}` placeholders.
|
|
11
|
+
*
|
|
12
|
+
* Resolvers are async so the loader can plug into server-hosted lookup
|
|
13
|
+
* without reopening this module.
|
|
14
|
+
*
|
|
15
|
+
* @module
|
|
16
|
+
*/
|
|
17
|
+
import type { HonuaStyleSpecification } from "../style/specification.js";
|
|
18
|
+
import type { HonuaMapPackage, HonuaMapPackageThemeSpec, HonuaStyleRefBody } from "./map-package.js";
|
|
19
|
+
/**
|
|
20
|
+
* Resolver for out-of-band style-ref bodies. Returns the per-layer
|
|
21
|
+
* override map keyed by MapLibre layer id. The default loader assumes
|
|
22
|
+
* inline bodies attached to the package and calls this resolver only
|
|
23
|
+
* when the inline body is absent.
|
|
24
|
+
*/
|
|
25
|
+
export type StyleRefResolver = (styleId: string, presetId?: string) => Promise<HonuaStyleRefBody>;
|
|
26
|
+
/** Resolver for out-of-band theme bodies; called only when `mapPackage.theme` is absent. */
|
|
27
|
+
export type ThemeResolver = (themeId: string) => Promise<HonuaMapPackageThemeSpec>;
|
|
28
|
+
export interface StyleComposeOptions {
|
|
29
|
+
resolveStyleRef?: StyleRefResolver;
|
|
30
|
+
resolveTheme?: ThemeResolver;
|
|
31
|
+
}
|
|
32
|
+
/** Compose a MapLibre-ready style from the `MapPackage`. */
|
|
33
|
+
export declare function composeStyle(pkg: HonuaMapPackage, mapSpecWithSources: HonuaStyleSpecification, options: StyleComposeOptions): Promise<HonuaStyleSpecification>;
|
|
34
|
+
/**
|
|
35
|
+
* Merge style-ref layer overrides onto the base style. Each ref's body is
|
|
36
|
+
* keyed by layer id; unknown layer ids are ignored (they may target
|
|
37
|
+
* layers emitted by an adapter plugin).
|
|
38
|
+
*/
|
|
39
|
+
export declare function applyStyleRefs(base: HonuaStyleSpecification, pkg: HonuaMapPackage, resolve?: StyleRefResolver): Promise<HonuaStyleSpecification>;
|
|
40
|
+
/**
|
|
41
|
+
* Substitute `{theme:key}` placeholders in string paint/layout values with
|
|
42
|
+
* the corresponding theme token. Values that resolve to nothing are left
|
|
43
|
+
* untouched so authors can spot missing tokens at review time.
|
|
44
|
+
*/
|
|
45
|
+
export declare function applyTheme(style: HonuaStyleSpecification, theme: HonuaMapPackageThemeSpec): HonuaStyleSpecification;
|
|
46
|
+
//# sourceMappingURL=style-compose.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style-compose.d.ts","sourceRoot":"","sources":["../../../src/runtime/style-compose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAA2B,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAElG,OAAO,KAAK,EACV,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EAElB,MAAM,kBAAkB,CAAC;AAE1B;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAElG,4FAA4F;AAC5F,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAEnF,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B;AAED,4DAA4D;AAC5D,wBAAsB,YAAY,CAChC,GAAG,EAAE,eAAe,EACpB,kBAAkB,EAAE,uBAAuB,EAC3C,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,uBAAuB,CAAC,CAalC;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,uBAAuB,EAC7B,GAAG,EAAE,eAAe,EACpB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,uBAAuB,CAAC,CAuBlC;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,wBAAwB,GAAG,uBAAuB,CAMnH"}
|