@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
package/runtime/diff.js
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Diff primitives for incremental `updatePackage` application.
|
|
3
|
+
*
|
|
4
|
+
* The runtime uses stable IDs (`sourceId`, `layer.id`) as the diff key
|
|
5
|
+
* and falls back to a full `map.setStyle` only when structural change
|
|
6
|
+
* makes incremental patching unsafe (e.g. layer reorder, mapSpec version
|
|
7
|
+
* mismatch, source type change).
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
11
|
+
export function diffPackages(previous, next) {
|
|
12
|
+
const prevBindings = new Map(previous.sourceBindings.map((b) => [b.sourceId, b]));
|
|
13
|
+
const nextBindings = new Map(next.sourceBindings.map((b) => [b.sourceId, b]));
|
|
14
|
+
const addedSourceBindings = [];
|
|
15
|
+
const removedSourceIds = [];
|
|
16
|
+
const changedSourceIds = [];
|
|
17
|
+
for (const [id, binding] of nextBindings) {
|
|
18
|
+
if (!prevBindings.has(id))
|
|
19
|
+
addedSourceBindings.push(binding);
|
|
20
|
+
else if (!sameBinding(prevBindings.get(id), binding))
|
|
21
|
+
changedSourceIds.push(id);
|
|
22
|
+
}
|
|
23
|
+
for (const id of prevBindings.keys()) {
|
|
24
|
+
if (!nextBindings.has(id))
|
|
25
|
+
removedSourceIds.push(id);
|
|
26
|
+
}
|
|
27
|
+
const prevLayers = new Map(previous.mapSpec.layers.map((l) => [l.id, l]));
|
|
28
|
+
const nextLayers = new Map(next.mapSpec.layers.map((l) => [l.id, l]));
|
|
29
|
+
const addedLayerIds = [];
|
|
30
|
+
const removedLayerIds = [];
|
|
31
|
+
const changedLayerIds = [];
|
|
32
|
+
for (const [id, layer] of nextLayers) {
|
|
33
|
+
if (!prevLayers.has(id))
|
|
34
|
+
addedLayerIds.push(id);
|
|
35
|
+
else if (!sameLayer(prevLayers.get(id), layer))
|
|
36
|
+
changedLayerIds.push(id);
|
|
37
|
+
}
|
|
38
|
+
for (const id of prevLayers.keys()) {
|
|
39
|
+
if (!nextLayers.has(id))
|
|
40
|
+
removedLayerIds.push(id);
|
|
41
|
+
}
|
|
42
|
+
const styleStructuralReason = detectStructuralChange(previous.mapSpec, next.mapSpec);
|
|
43
|
+
const sourceStructuralReason = detectSourceBindingChange(addedSourceBindings, removedSourceIds, changedSourceIds);
|
|
44
|
+
const structuralReason = styleStructuralReason ?? sourceStructuralReason;
|
|
45
|
+
return {
|
|
46
|
+
addedSourceBindings,
|
|
47
|
+
removedSourceIds,
|
|
48
|
+
changedSourceIds,
|
|
49
|
+
addedLayerIds,
|
|
50
|
+
removedLayerIds,
|
|
51
|
+
changedLayerIds,
|
|
52
|
+
incremental: structuralReason === undefined,
|
|
53
|
+
structuralReason,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function detectSourceBindingChange(added, removed, changed) {
|
|
57
|
+
if (added.length > 0)
|
|
58
|
+
return "source bindings added";
|
|
59
|
+
if (removed.length > 0)
|
|
60
|
+
return "source bindings removed";
|
|
61
|
+
if (changed.length > 0)
|
|
62
|
+
return "source bindings changed";
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
function sameBinding(a, b) {
|
|
66
|
+
if (a.protocol !== b.protocol)
|
|
67
|
+
return false;
|
|
68
|
+
if ((a.filter ?? "") !== (b.filter ?? ""))
|
|
69
|
+
return false;
|
|
70
|
+
if ((a.attribution ?? "") !== (b.attribution ?? ""))
|
|
71
|
+
return false;
|
|
72
|
+
return shallowEqual(a.locator, b.locator);
|
|
73
|
+
}
|
|
74
|
+
function sameLayer(a, b) {
|
|
75
|
+
if (a.type !== b.type)
|
|
76
|
+
return false;
|
|
77
|
+
if ((a.source ?? "") !== (b.source ?? ""))
|
|
78
|
+
return false;
|
|
79
|
+
if (a["source-layer"] !== b["source-layer"])
|
|
80
|
+
return false;
|
|
81
|
+
if (!stableEqual(a.paint, b.paint))
|
|
82
|
+
return false;
|
|
83
|
+
if (!stableEqual(a.layout, b.layout))
|
|
84
|
+
return false;
|
|
85
|
+
if (!stableEqual(a.filter, b.filter))
|
|
86
|
+
return false;
|
|
87
|
+
if (a.minzoom !== b.minzoom)
|
|
88
|
+
return false;
|
|
89
|
+
if (a.maxzoom !== b.maxzoom)
|
|
90
|
+
return false;
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
function detectStructuralChange(prev, next) {
|
|
94
|
+
if (prev.version !== next.version)
|
|
95
|
+
return "mapSpec.version changed";
|
|
96
|
+
const prevSourceIds = Object.keys(prev.sources).sort();
|
|
97
|
+
const nextSourceIds = Object.keys(next.sources).sort();
|
|
98
|
+
if (prevSourceIds.length !== nextSourceIds.length)
|
|
99
|
+
return "mapSpec source set changed";
|
|
100
|
+
for (let i = 0; i < prevSourceIds.length; i++) {
|
|
101
|
+
if (prevSourceIds[i] !== nextSourceIds[i])
|
|
102
|
+
return "mapSpec source set changed";
|
|
103
|
+
}
|
|
104
|
+
for (const sourceId of prevSourceIds) {
|
|
105
|
+
if (!stableEqual(prev.sources[sourceId], next.sources[sourceId])) {
|
|
106
|
+
return `mapSpec source "${sourceId}" changed`;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
const prevIds = prev.layers.map((l) => l.id);
|
|
110
|
+
const nextIds = next.layers.map((l) => l.id);
|
|
111
|
+
if (prevIds.length !== nextIds.length || prevIds.some((id) => !nextIds.includes(id))) {
|
|
112
|
+
return "layer set changed";
|
|
113
|
+
}
|
|
114
|
+
const commonPrev = prevIds.filter((id) => nextIds.includes(id));
|
|
115
|
+
const commonNext = nextIds.filter((id) => prevIds.includes(id));
|
|
116
|
+
for (let i = 0; i < commonPrev.length; i++) {
|
|
117
|
+
if (commonPrev[i] !== commonNext[i])
|
|
118
|
+
return "layer order changed";
|
|
119
|
+
}
|
|
120
|
+
return undefined;
|
|
121
|
+
}
|
|
122
|
+
function stableEqual(a, b) {
|
|
123
|
+
if (a === b)
|
|
124
|
+
return true;
|
|
125
|
+
if (a === undefined || b === undefined)
|
|
126
|
+
return a === b;
|
|
127
|
+
try {
|
|
128
|
+
return JSON.stringify(a) === JSON.stringify(b);
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
function shallowEqual(a, b) {
|
|
135
|
+
const ak = Object.keys(a);
|
|
136
|
+
const bk = Object.keys(b);
|
|
137
|
+
if (ak.length !== bk.length)
|
|
138
|
+
return false;
|
|
139
|
+
for (const k of ak)
|
|
140
|
+
if (a[k] !== b[k])
|
|
141
|
+
return false;
|
|
142
|
+
return true;
|
|
143
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime-specific error surface. Other Honua SDK errors
|
|
3
|
+
* (`HonuaCapabilityNotSupportedError`, `HonuaHttpError`, etc.) bubble
|
|
4
|
+
* through unchanged; this class wraps only the runtime-binding failures
|
|
5
|
+
* so callers can discriminate stage of failure.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Stage of the runtime pipeline a failure occurred in. Keeping this as a
|
|
11
|
+
* string union lets callers switch on it without a dependency on the
|
|
12
|
+
* error class itself.
|
|
13
|
+
*/
|
|
14
|
+
export type HonuaMapPackageErrorStage = "fetch" | "load" | "validate" | "update" | "style-compose" | "source-bind" | "view" | "popup" | "dispose";
|
|
15
|
+
/**
|
|
16
|
+
* Thrown for runtime-level binding failures. Per-source / per-request
|
|
17
|
+
* protocol failures keep their existing error classes
|
|
18
|
+
* (`HonuaCapabilityNotSupportedError`, `HonuaHttpError`) and surface on
|
|
19
|
+
* the per-`Source` promises from `runtime.dataset` and through the
|
|
20
|
+
* shared `HonuaClient` interceptor chain. The `source-error` event on
|
|
21
|
+
* `HonuaRuntimeEvent` is the canonical observable for per-source
|
|
22
|
+
* failures: the loader emits it for tolerant bind-time failures
|
|
23
|
+
* (`sourceErrorPolicy: "tolerant"`, the default) and
|
|
24
|
+
* `HonuaMapRuntime.reportSourceError` emits the same event for
|
|
25
|
+
* query-time rejections forwarded by mixed-source consumers — see
|
|
26
|
+
* `docs/composition.md`.
|
|
27
|
+
*/
|
|
28
|
+
export declare class HonuaMapPackageError extends Error {
|
|
29
|
+
readonly packageId: string | undefined;
|
|
30
|
+
readonly stage: HonuaMapPackageErrorStage;
|
|
31
|
+
readonly detail: unknown;
|
|
32
|
+
readonly cause: unknown;
|
|
33
|
+
constructor(message: string, options: {
|
|
34
|
+
packageId?: string;
|
|
35
|
+
stage: HonuaMapPackageErrorStage;
|
|
36
|
+
detail?: unknown;
|
|
37
|
+
cause?: unknown;
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/runtime/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GACjC,OAAO,GACP,MAAM,GACN,UAAU,GACV,QAAQ,GACR,eAAe,GACf,aAAa,GACb,MAAM,GACN,OAAO,GACP,SAAS,CAAC;AAEd;;;;;;;;;;;;GAYG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,SAAgB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,SAAgB,KAAK,EAAE,yBAAyB,CAAC;IACjD,SAAgB,MAAM,EAAE,OAAO,CAAC;IAChC,SAAyB,KAAK,EAAE,OAAO,CAAC;gBAGtC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,yBAAyB,CAAC;QACjC,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB;CASJ"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime-specific error surface. Other Honua SDK errors
|
|
3
|
+
* (`HonuaCapabilityNotSupportedError`, `HonuaHttpError`, etc.) bubble
|
|
4
|
+
* through unchanged; this class wraps only the runtime-binding failures
|
|
5
|
+
* so callers can discriminate stage of failure.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Thrown for runtime-level binding failures. Per-source / per-request
|
|
11
|
+
* protocol failures keep their existing error classes
|
|
12
|
+
* (`HonuaCapabilityNotSupportedError`, `HonuaHttpError`) and surface on
|
|
13
|
+
* the per-`Source` promises from `runtime.dataset` and through the
|
|
14
|
+
* shared `HonuaClient` interceptor chain. The `source-error` event on
|
|
15
|
+
* `HonuaRuntimeEvent` is the canonical observable for per-source
|
|
16
|
+
* failures: the loader emits it for tolerant bind-time failures
|
|
17
|
+
* (`sourceErrorPolicy: "tolerant"`, the default) and
|
|
18
|
+
* `HonuaMapRuntime.reportSourceError` emits the same event for
|
|
19
|
+
* query-time rejections forwarded by mixed-source consumers — see
|
|
20
|
+
* `docs/composition.md`.
|
|
21
|
+
*/
|
|
22
|
+
export class HonuaMapPackageError extends Error {
|
|
23
|
+
packageId;
|
|
24
|
+
stage;
|
|
25
|
+
detail;
|
|
26
|
+
cause;
|
|
27
|
+
constructor(message, options) {
|
|
28
|
+
super(message);
|
|
29
|
+
this.name = "HonuaMapPackageError";
|
|
30
|
+
this.packageId = options.packageId;
|
|
31
|
+
this.stage = options.stage;
|
|
32
|
+
this.detail = options.detail;
|
|
33
|
+
this.cause = options.cause;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@honua/sdk-js/runtime` — MapLibre GL JS-first runtime for Honua
|
|
3
|
+
* `MapPackage`. Consumes a server-produced `MapPackage` and binds it to
|
|
4
|
+
* a caller-provided `MaplibreMap` instance.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { HonuaClient } from "@honua/sdk-js";
|
|
9
|
+
* import { loadMapPackage } from "@honua/sdk-js/runtime";
|
|
10
|
+
* import maplibregl from "maplibre-gl";
|
|
11
|
+
*
|
|
12
|
+
* const map = new maplibregl.Map({ container: "map" });
|
|
13
|
+
* const runtime = await loadMapPackage(pkg, map, {
|
|
14
|
+
* client: new HonuaClient({ baseUrl: "https://honua.example.com" }),
|
|
15
|
+
* popupFactory: () => new maplibregl.Popup(),
|
|
16
|
+
* });
|
|
17
|
+
* runtime.setLayerVisibility("parcels-fill", false);
|
|
18
|
+
* await runtime.updatePackage(nextPkg);
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @packageDocumentation
|
|
22
|
+
*/
|
|
23
|
+
export { loadMapPackage } from "./load-package.js";
|
|
24
|
+
export type { LoadMapPackageOptions, SourceErrorPolicy } from "./load-package.js";
|
|
25
|
+
export { BoundedMapPackageFetchCache, DEFAULT_MAP_PACKAGE_CACHE_LIMIT, DEFAULT_MAP_PACKAGE_PATH_PREFIX, defaultMapPackagePath, fetchMapPackage, loadMapPackageFromId, mapPackageFingerprint, resolveMapPackagePath, } from "./map-package-fetch.js";
|
|
26
|
+
export type { FetchMapPackageOptions, FetchMapPackageResult, LoadMapPackageFromIdOptions, LoadMapPackageFromIdResult, MapPackageFetchCache, MapPackageFetchCacheEntry, MapPackageFetchCacheState, MapPackageFetchCacheStatus, MapPackageLocator, MapPackagePathResolver, } from "./map-package-fetch.js";
|
|
27
|
+
export { MAP_PACKAGE_REALTIME_CHANNEL_V1, createMapPackageServerSentEventsTransport, decodeMapPackageRealtimeMessage, encodeMapPackageRealtimeUrl, readMapPackageRealtimeAdvertisement, } from "./map-package-realtime.js";
|
|
28
|
+
export type { MapPackageRealtimeAdvertisement, MapPackageRealtimeAuth, MapPackageRealtimeChannel, MapPackageRealtimeCheckpoint, MapPackageRealtimeDisconnectedMessage, MapPackageRealtimeErrorMessage, MapPackageRealtimeEventSource, MapPackageRealtimeEventSourceFactory, MapPackageRealtimeFallbackMode, MapPackageRealtimeHeartbeatMessage, MapPackageRealtimeMessage, MapPackageRealtimeMessageBase, MapPackageRealtimeObserver, MapPackageRealtimeReadyMessage, MapPackageRealtimeReconnectOptions, MapPackageRealtimeRefetchRequiredMessage, MapPackageRealtimeReloadRequiredMessage, MapPackageRealtimeStaleMessage, MapPackageRealtimeSubscribeRequest, MapPackageRealtimeSubscriptionHandle, MapPackageRealtimeTransport, MapPackageRealtimeTransportKind, MapPackageRealtimeUpdate, MapPackageRealtimeUpdatedMessage, MapPackageRealtimeWatchOptions, MapPackageServerSentEventsTransportOptions, } from "./map-package-realtime.js";
|
|
29
|
+
export { watchMapPackage } from "./map-package-watch.js";
|
|
30
|
+
export type { MapPackageWatchEvent, MapPackageWatchHandle, WatchMapPackageOptions } from "./map-package-watch.js";
|
|
31
|
+
export { hasMapPackageDiagnosticErrors, validateMapPackage } from "./map-package-validation.js";
|
|
32
|
+
export type { HonuaMapPackageDiagnostic, HonuaMapPackageDiagnosticCode, HonuaMapPackageDiagnosticSeverity, ValidateMapPackageOptions, ValidateMapPackageResult, } from "./map-package-validation.js";
|
|
33
|
+
export { fromMapPackageValidation, toStudioValidationResponse } from "./map-package-validation.js";
|
|
34
|
+
export type { StudioPackageDiagnostic, StudioPackageDiagnosticSeverity, StudioPackageValidationResponse, } from "./map-package-validation.js";
|
|
35
|
+
export { HonuaMapRuntime } from "./runtime.js";
|
|
36
|
+
export type { HonuaMapRuntimeInternals, HonuaMapRuntimeReload, HonuaRuntimeEvent, HonuaRuntimeEventListener, HonuaRuntimeTelemetry, HonuaRuntimeTelemetrySpan, HonuaRuntimeTelemetrySpanResult, MaplibreMap, RuntimeHitTestOptions, RuntimePointerInteractionHandler, RuntimePointerInteractionOptions, SetViewStateInput, } from "./runtime.js";
|
|
37
|
+
export { HONUA_MAP_PACKAGE_FORMAT_V1 } from "./map-package.js";
|
|
38
|
+
export type { HonuaMapPackage, HonuaMapPackageFormat, HonuaMapPackageInitialView, HonuaMapPackageLabelBinding, HonuaMapPackageLegendEntry, HonuaMapPackageLocator, HonuaMapPackagePopupBinding, HonuaMapPackageProtocol, HonuaMapPackageSourceBinding, HonuaMapPackageStatus, HonuaMapPackageStyleRef, HonuaMapPackageThemeSpec, HonuaStyleRefBody, HonuaStyleRefLayerOverride, } from "./map-package.js";
|
|
39
|
+
export { HonuaMapPackageError } from "./errors.js";
|
|
40
|
+
export type { HonuaMapPackageErrorStage } from "./errors.js";
|
|
41
|
+
export { buildLegend } from "./legend.js";
|
|
42
|
+
export type { LegendEntry } from "./legend.js";
|
|
43
|
+
export { bindPopup, defaultPopupRenderer } from "./popups.js";
|
|
44
|
+
export type { BindPopupOptions, PopupBindingHandle, PopupFactory, PopupFeature, PopupHandle, PopupRenderContext, PopupRenderer, } from "./popups.js";
|
|
45
|
+
export { applyStyleRefs, applyTheme, composeStyle } from "./style-compose.js";
|
|
46
|
+
export type { StyleComposeOptions, StyleRefResolver, ThemeResolver } from "./style-compose.js";
|
|
47
|
+
export { DEFAULT_OGC_STYLES_PATH_PREFIX, MAPLIBRE_STYLE_MEDIA_TYPE, OgcStylesClient, createOgcStyleRefResolver, styleDocumentToRefBody, } from "./ogc-styles.js";
|
|
48
|
+
export type { OgcStyleLink, OgcStyleList, OgcStyleListEntry, OgcStyleRefResolverOptions, OgcStylesClientOptions, OgcStylesRequestOptions, } from "./ogc-styles.js";
|
|
49
|
+
export { prepareRuntimeStyleSpecValidation, validateRuntimeFilterStyleSpec, validateRuntimeLayerStyleSpec, validateRuntimeSourceStyleSpec, validateRuntimeStyleExpressionStyleSpec, validateRuntimeStyleSpec, } from "./style-spec-validation.js";
|
|
50
|
+
export type { RuntimeStyleSpecValidationMode, RuntimeStyleSpecValidationOptions } from "./style-spec-validation.js";
|
|
51
|
+
export { buildWmsRasterSourceSpec, buildWmtsRasterSourceSpec, projectSourceBindings, toHonuaSourceSpec, } from "./source-bridge.js";
|
|
52
|
+
export type { NativeMapLibreSourceEntry, SourceBridgeProjection } from "./source-bridge.js";
|
|
53
|
+
export { QueryTileRequestController, buildMapLibreQueryTileSourceSpec, buildQueryTileJson, buildQueryTileUrl, buildQueryTileUrlTemplate, createQueryTileRequestController, diagnoseQueryTileSourceSupport, fetchQueryTileFeatureDetail, fetchQueryTileJson, queryTilesForViewport, QueryTileServerResponseError, } from "./query-tiles.js";
|
|
54
|
+
export type { FetchQueryTileFeatureDetailOptions, FetchQueryTileJsonOptions, MapLibreQueryTileSourceSpec, QueryTileFeatureDetailFetchResult, QueryTileCacheSnapshot, QueryTileDiagnostic, QueryTileDiagnosticCode, QueryTileDiagnosticSeverity, QueryTileFetcher, QueryTileJsonFetchResult, QueryTileLifecycleEvent, QueryTileLifecycleListener, QueryTileRequest, QueryTileRequestControllerOptions, QueryTileRequestTileOptions, QueryTileServerFetch, QueryTileServerFetchOptions, QueryTileSourceSpecOptions, QueryTileUrlTemplateOptions, QueryTileViewport, QueryTileViewportRequestOptions, QueryTileViewportRequestResult, } from "./query-tiles.js";
|
|
55
|
+
export { diffPackages } from "./diff.js";
|
|
56
|
+
export type { MapPackageDiff } from "./diff.js";
|
|
57
|
+
export { HonuaRuntimeDiagnosticError, featureStateTargetFromSelection, featureStateTargetKey, featureTargetForLayer, materializeRuntimeLayer, materializeRuntimeSource, materializeStyleValue, protocolForSource, rendererRuntimeDiagnosticError, resolveFeatureIdFromEventFeature, resolveRuntimeBeforeId, selectionTargetForLayer, sourceContextForLayer, throwRuntimeDiagnostics, validateRuntimeFilterExpression, validateRuntimeLayer, validateRuntimeSource, validateRuntimeStyleExpression, } from "./style-interactions.js";
|
|
58
|
+
export type { HonuaRuntimeDiagnostic, HonuaRuntimeDiagnosticSeverity, NativeMapLibreSourceSpecification, RuntimeClickInteractionHandler, RuntimeClickInteractionOptions, RuntimeExplorationSelectionOptions, RuntimeFeatureInteractionEvent, RuntimeFeatureStateTarget, RuntimeFilterExpression, RuntimeHoverInteractionOptions, RuntimeLayerOrder, RuntimeLayerOrderOptions, RuntimeLayerSpecification, RuntimeLayerUpdate, RuntimeLayoutSpecification, RuntimePaintSpecification, RuntimeSelectionInteractionOptions, RuntimeSourceSpecification, RuntimeStyleValue, } from "./style-interactions.js";
|
|
59
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"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"}
|
package/runtime/index.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@honua/sdk-js/runtime` — MapLibre GL JS-first runtime for Honua
|
|
3
|
+
* `MapPackage`. Consumes a server-produced `MapPackage` and binds it to
|
|
4
|
+
* a caller-provided `MaplibreMap` instance.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { HonuaClient } from "@honua/sdk-js";
|
|
9
|
+
* import { loadMapPackage } from "@honua/sdk-js/runtime";
|
|
10
|
+
* import maplibregl from "maplibre-gl";
|
|
11
|
+
*
|
|
12
|
+
* const map = new maplibregl.Map({ container: "map" });
|
|
13
|
+
* const runtime = await loadMapPackage(pkg, map, {
|
|
14
|
+
* client: new HonuaClient({ baseUrl: "https://honua.example.com" }),
|
|
15
|
+
* popupFactory: () => new maplibregl.Popup(),
|
|
16
|
+
* });
|
|
17
|
+
* runtime.setLayerVisibility("parcels-fill", false);
|
|
18
|
+
* await runtime.updatePackage(nextPkg);
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @packageDocumentation
|
|
22
|
+
*/
|
|
23
|
+
export { loadMapPackage } from "./load-package.js";
|
|
24
|
+
export { BoundedMapPackageFetchCache, DEFAULT_MAP_PACKAGE_CACHE_LIMIT, DEFAULT_MAP_PACKAGE_PATH_PREFIX, defaultMapPackagePath, fetchMapPackage, loadMapPackageFromId, mapPackageFingerprint, resolveMapPackagePath, } from "./map-package-fetch.js";
|
|
25
|
+
export { MAP_PACKAGE_REALTIME_CHANNEL_V1, createMapPackageServerSentEventsTransport, decodeMapPackageRealtimeMessage, encodeMapPackageRealtimeUrl, readMapPackageRealtimeAdvertisement, } from "./map-package-realtime.js";
|
|
26
|
+
export { watchMapPackage } from "./map-package-watch.js";
|
|
27
|
+
export { hasMapPackageDiagnosticErrors, validateMapPackage } from "./map-package-validation.js";
|
|
28
|
+
// Experimental bridge to the unified Studio validation envelope. Reachable
|
|
29
|
+
// from the same path map-package consumers already use; the full Studio
|
|
30
|
+
// contract lives at `@honua/sdk-js/studio`.
|
|
31
|
+
export { fromMapPackageValidation, toStudioValidationResponse } from "./map-package-validation.js";
|
|
32
|
+
export { HonuaMapRuntime } from "./runtime.js";
|
|
33
|
+
export { HONUA_MAP_PACKAGE_FORMAT_V1 } from "./map-package.js";
|
|
34
|
+
export { HonuaMapPackageError } from "./errors.js";
|
|
35
|
+
export { buildLegend } from "./legend.js";
|
|
36
|
+
export { bindPopup, defaultPopupRenderer } from "./popups.js";
|
|
37
|
+
export { applyStyleRefs, applyTheme, composeStyle } from "./style-compose.js";
|
|
38
|
+
export { DEFAULT_OGC_STYLES_PATH_PREFIX, MAPLIBRE_STYLE_MEDIA_TYPE, OgcStylesClient, createOgcStyleRefResolver, styleDocumentToRefBody, } from "./ogc-styles.js";
|
|
39
|
+
export { prepareRuntimeStyleSpecValidation, validateRuntimeFilterStyleSpec, validateRuntimeLayerStyleSpec, validateRuntimeSourceStyleSpec, validateRuntimeStyleExpressionStyleSpec, validateRuntimeStyleSpec, } from "./style-spec-validation.js";
|
|
40
|
+
export { buildWmsRasterSourceSpec, buildWmtsRasterSourceSpec, projectSourceBindings, toHonuaSourceSpec, } from "./source-bridge.js";
|
|
41
|
+
export { QueryTileRequestController, buildMapLibreQueryTileSourceSpec, buildQueryTileJson, buildQueryTileUrl, buildQueryTileUrlTemplate, createQueryTileRequestController, diagnoseQueryTileSourceSupport, fetchQueryTileFeatureDetail, fetchQueryTileJson, queryTilesForViewport, QueryTileServerResponseError, } from "./query-tiles.js";
|
|
42
|
+
export { diffPackages } from "./diff.js";
|
|
43
|
+
export { HonuaRuntimeDiagnosticError, featureStateTargetFromSelection, featureStateTargetKey, featureTargetForLayer, materializeRuntimeLayer, materializeRuntimeSource, materializeStyleValue, protocolForSource, rendererRuntimeDiagnosticError, resolveFeatureIdFromEventFeature, resolveRuntimeBeforeId, selectionTargetForLayer, sourceContextForLayer, throwRuntimeDiagnostics, validateRuntimeFilterExpression, validateRuntimeLayer, validateRuntimeSource, validateRuntimeStyleExpression, } from "./style-interactions.js";
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Legend helpers. The runtime surfaces a `LegendEntry[]` derived from
|
|
3
|
+
* `MapPackage.legend[]` (authoritative) with optional swatches pulled
|
|
4
|
+
* from the composed style for layers that did not supply an explicit
|
|
5
|
+
* color.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
import type { HonuaStyleSpecification } from "../style/specification.js";
|
|
10
|
+
import type { HonuaMapPackageLegendEntry } from "./map-package.js";
|
|
11
|
+
/** Runtime-facing legend entry. */
|
|
12
|
+
export interface LegendEntry {
|
|
13
|
+
/** Stable id for UI list keys. Derived from label when absent. */
|
|
14
|
+
id: string;
|
|
15
|
+
label: string;
|
|
16
|
+
color?: string;
|
|
17
|
+
minValue?: number;
|
|
18
|
+
maxValue?: number;
|
|
19
|
+
iconUrl?: string;
|
|
20
|
+
}
|
|
21
|
+
/** Build a legend list from the package entries, backfilling colors from the style when possible. */
|
|
22
|
+
export declare function buildLegend(packageEntries: readonly HonuaMapPackageLegendEntry[] | undefined, style: HonuaStyleSpecification): LegendEntry[];
|
|
23
|
+
//# sourceMappingURL=legend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legend.d.ts","sourceRoot":"","sources":["../../../src/runtime/legend.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAEnE,mCAAmC;AACnC,MAAM,WAAW,WAAW;IAC1B,kEAAkE;IAClE,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qGAAqG;AACrG,wBAAgB,WAAW,CACzB,cAAc,EAAE,SAAS,0BAA0B,EAAE,GAAG,SAAS,EACjE,KAAK,EAAE,uBAAuB,GAC7B,WAAW,EAAE,CAYf"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Legend helpers. The runtime surfaces a `LegendEntry[]` derived from
|
|
3
|
+
* `MapPackage.legend[]` (authoritative) with optional swatches pulled
|
|
4
|
+
* from the composed style for layers that did not supply an explicit
|
|
5
|
+
* color.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
import { trimChar } from "../core/path-utils.js";
|
|
10
|
+
/** Build a legend list from the package entries, backfilling colors from the style when possible. */
|
|
11
|
+
export function buildLegend(packageEntries, style) {
|
|
12
|
+
const entries = packageEntries ?? [];
|
|
13
|
+
const fallbackColors = collectFirstFillColors(style);
|
|
14
|
+
return entries.map((entry, index) => ({
|
|
15
|
+
id: legendEntryId(entry, index),
|
|
16
|
+
label: entry.label,
|
|
17
|
+
color: entry.color ?? fallbackColors[index],
|
|
18
|
+
...(entry.minValue !== undefined ? { minValue: entry.minValue } : {}),
|
|
19
|
+
...(entry.maxValue !== undefined ? { maxValue: entry.maxValue } : {}),
|
|
20
|
+
...(entry.iconUrl !== undefined ? { iconUrl: entry.iconUrl } : {}),
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
function legendEntryId(entry, index) {
|
|
24
|
+
const slug = trimChar(entry.label
|
|
25
|
+
.trim()
|
|
26
|
+
.toLowerCase()
|
|
27
|
+
.replace(/[^a-z0-9]+/g, "-"), "-");
|
|
28
|
+
return slug ? `${slug}-${index}` : `legend-${index}`;
|
|
29
|
+
}
|
|
30
|
+
function collectFirstFillColors(style) {
|
|
31
|
+
const colors = [];
|
|
32
|
+
for (const layer of style.layers) {
|
|
33
|
+
const paint = layer.paint ?? {};
|
|
34
|
+
const value = (paint["fill-color"] ?? paint["circle-color"] ?? paint["line-color"]);
|
|
35
|
+
colors.push(typeof value === "string" ? value : undefined);
|
|
36
|
+
}
|
|
37
|
+
return colors;
|
|
38
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `loadMapPackage` — the first-class entry point that turns a server
|
|
3
|
+
* `MapPackage` into a running MapLibre GL JS map. The caller owns the
|
|
4
|
+
* `MaplibreMap` instance (peer dependency); the runtime composes the
|
|
5
|
+
* style, resolves bindings through the shared contract, and hands the
|
|
6
|
+
* composed style to `map.setStyle`.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
import { type SourceResolver } from "../contract/index.js";
|
|
11
|
+
import type { HonuaClient } from "../core/client.js";
|
|
12
|
+
import { type HonuaMapPackage } from "./map-package.js";
|
|
13
|
+
import type { PopupFactory, PopupRenderer } from "./popups.js";
|
|
14
|
+
import { HonuaMapRuntime, type HonuaRuntimeEventListener, type HonuaRuntimeTelemetry, type MaplibreMap } from "./runtime.js";
|
|
15
|
+
import { type StyleRefResolver, type ThemeResolver } from "./style-compose.js";
|
|
16
|
+
import type { RuntimeStyleSpecValidationMode } from "./style-spec-validation.js";
|
|
17
|
+
/**
|
|
18
|
+
* How `loadMapPackage` reacts when a single protocol-backed source
|
|
19
|
+
* binding fails to project / build a Honua source spec. Defaults to
|
|
20
|
+
* `"tolerant"` because the entire point of mixed-protocol composition is
|
|
21
|
+
* that one bad source should not break the rest of the map.
|
|
22
|
+
*
|
|
23
|
+
* Per-source binding failures still surface loudly under `"tolerant"`:
|
|
24
|
+
*
|
|
25
|
+
* - the runtime emits a `{ type: "source-error", sourceId, error }`
|
|
26
|
+
* event,
|
|
27
|
+
* - {@link HonuaRuntimeTelemetry.error} receives a `source-bind` span,
|
|
28
|
+
* - layers whose `source` references a failed source are dropped from
|
|
29
|
+
* the composed style so MapLibre does not throw on a missing source.
|
|
30
|
+
*
|
|
31
|
+
* `"fail-fast"` preserves the historical single-source behaviour: any
|
|
32
|
+
* per-source binding failure rejects the load with
|
|
33
|
+
* `HonuaMapPackageError({ stage: "source-bind" })`. Configuration-level
|
|
34
|
+
* binding errors (unknown protocol, missing locator, duplicate id,
|
|
35
|
+
* deferred `workspace_artifact`) raised by `projectSourceBindings`
|
|
36
|
+
* always fail-fast under either policy — those are operator errors that
|
|
37
|
+
* must be fixed.
|
|
38
|
+
*/
|
|
39
|
+
export type SourceErrorPolicy = "tolerant" | "fail-fast";
|
|
40
|
+
export interface LoadMapPackageOptions {
|
|
41
|
+
/** Active `HonuaClient`; used for protocol adapter binding. */
|
|
42
|
+
client: HonuaClient;
|
|
43
|
+
/**
|
|
44
|
+
* Out-of-band style-ref body resolver. Only called when the ref has no
|
|
45
|
+
* inline body. When omitted, the runtime defaults to resolving
|
|
46
|
+
* `styleRefs.styleId` against the server's OGC API – Styles surface
|
|
47
|
+
* (`GET /ogc/styles/{styleId}`, content-negotiated MapLibre) via
|
|
48
|
+
* {@link createOgcStyleRefResolver}, so the JS identifier matches the
|
|
49
|
+
* server's canonical styleId. Pass a callback to override that path
|
|
50
|
+
* (back-compat), or set {@link disableDefaultStyleRefResolver} to skip it.
|
|
51
|
+
*/
|
|
52
|
+
resolveStyleRef?: StyleRefResolver;
|
|
53
|
+
/**
|
|
54
|
+
* Disable the default `/ogc/styles` StyleRef resolver. When true and no
|
|
55
|
+
* {@link resolveStyleRef} callback is supplied, style refs without an
|
|
56
|
+
* inline body are left unresolved (composition then errors on them).
|
|
57
|
+
*/
|
|
58
|
+
disableDefaultStyleRefResolver?: boolean;
|
|
59
|
+
/** Out-of-band theme resolver. Only called when `pkg.theme` is absent and `pkg.themeId` is set. */
|
|
60
|
+
resolveTheme?: ThemeResolver;
|
|
61
|
+
/**
|
|
62
|
+
* Resolver passed to `createDataset` for adapters the built-in set
|
|
63
|
+
* (`geoservices-*`, `ogc-features`) does not cover — typically the
|
|
64
|
+
* WFS/WMS/OData/tile-layer adapters contributed by `#24`–`#28`.
|
|
65
|
+
*/
|
|
66
|
+
resolveSource?: SourceResolver;
|
|
67
|
+
/** Skip `client.checkCompatibility()` — useful in tests and conformance fixtures. */
|
|
68
|
+
skipCompatibilityCheck?: boolean;
|
|
69
|
+
/** Telemetry collector; wired through the `HonuaClient` interceptor chain. */
|
|
70
|
+
telemetry?: HonuaRuntimeTelemetry;
|
|
71
|
+
/** Optional popup factory; required only if the caller calls `runtime.bindPopup`. */
|
|
72
|
+
popupFactory?: PopupFactory;
|
|
73
|
+
/** Optional popup renderer; defaults to an unstyled `<dl>` of feature properties. */
|
|
74
|
+
popupRenderer?: PopupRenderer;
|
|
75
|
+
/**
|
|
76
|
+
* When true, apply `pkg.initialView` to the map immediately after load.
|
|
77
|
+
* Defaults to `true`.
|
|
78
|
+
*/
|
|
79
|
+
applyInitialView?: boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Listener registered on the runtime **before** the first
|
|
82
|
+
* `source-ready` / `package-loaded` emissions so callers can observe
|
|
83
|
+
* the initial lifecycle without race-binding through
|
|
84
|
+
* `runtime.on(...)`. Equivalent to calling `runtime.on(listener)`
|
|
85
|
+
* immediately after construction. Subsequent events (updatePackage,
|
|
86
|
+
* disposed, …) also flow through this listener.
|
|
87
|
+
*/
|
|
88
|
+
onEvent?: HonuaRuntimeEventListener;
|
|
89
|
+
/**
|
|
90
|
+
* Per-source binding error policy. Defaults to `"tolerant"`: a single
|
|
91
|
+
* source failing to bind (resolver throws, `toHonuaSourceSpec` throws,
|
|
92
|
+
* `dataset.source(id)` throws) does not abort the whole package load.
|
|
93
|
+
* Failed sources surface via `source-error` events and the
|
|
94
|
+
* {@link HonuaRuntimeTelemetry.error} hook; remaining sources continue
|
|
95
|
+
* to render. Pass `"fail-fast"` to reject the load on any per-source
|
|
96
|
+
* binding failure (the historical single-source behaviour).
|
|
97
|
+
*/
|
|
98
|
+
sourceErrorPolicy?: SourceErrorPolicy;
|
|
99
|
+
/**
|
|
100
|
+
* MapLibre style-spec validation mode used by runtime source/layer
|
|
101
|
+
* mutation helpers. Defaults to `"strict"`; pass `"warning-only"` to
|
|
102
|
+
* keep diagnostics non-fatal, or `"renderer-deferred"` to skip SDK
|
|
103
|
+
* style-spec checks and let the renderer report invalid style values.
|
|
104
|
+
*/
|
|
105
|
+
styleSpecValidationMode?: RuntimeStyleSpecValidationMode;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Load a `MapPackage` onto a caller-provided `MaplibreMap`. Returns a
|
|
109
|
+
* runtime handle that exposes the operational API. Throws
|
|
110
|
+
* `HonuaMapPackageError` on binding failure. Query-time adapter errors
|
|
111
|
+
* (`HonuaHttpError`, `HonuaCapabilityNotSupportedError`, ...) continue
|
|
112
|
+
* to flow through the returned `Source` promises on `runtime.dataset`
|
|
113
|
+
* and through the shared `HonuaClient` interceptor chain.
|
|
114
|
+
*
|
|
115
|
+
* Per-source binding tolerance is governed by
|
|
116
|
+
* {@link LoadMapPackageOptions.sourceErrorPolicy} — the default
|
|
117
|
+
* `"tolerant"` policy lets a heterogeneous (mixed-protocol) composition
|
|
118
|
+
* keep rendering when one source fails by skipping the failing source
|
|
119
|
+
* (and any layers that reference it) and emitting a `source-error`
|
|
120
|
+
* runtime event plus a `source-bind` telemetry error span. Pass
|
|
121
|
+
* `"fail-fast"` to restore the historical reject-on-any-binding-failure
|
|
122
|
+
* behaviour.
|
|
123
|
+
*/
|
|
124
|
+
export declare function loadMapPackage(pkg: HonuaMapPackage, map: MaplibreMap, options: LoadMapPackageOptions): Promise<HonuaMapRuntime>;
|
|
125
|
+
//# sourceMappingURL=load-package.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-package.d.ts","sourceRoot":"","sources":["../../../src/runtime/load-package.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAuC,KAAK,cAAc,EAAiB,MAAM,sBAAsB,CAAC;AAC/G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,OAAO,EAA+B,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAErF,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EACL,eAAe,EAEf,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAgB,MAAM,oBAAoB,CAAC;AAG7F,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAEjF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,WAAW,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IACpC,+DAA+D;IAC/D,MAAM,EAAE,WAAW,CAAC;IACpB;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC;;;;OAIG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC,mGAAmG;IACnG,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B;;;;OAIG;IACH,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,qFAAqF;IACrF,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,8EAA8E;IAC9E,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,qFAAqF;IACrF,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,qFAAqF;IACrF,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,8BAA8B,CAAC;CAC1D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CA6M1B"}
|