@honua/app-platform 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 +11 -0
- package/app/index.d.ts +164 -0
- package/app/index.d.ts.map +1 -0
- package/app/index.js +424 -0
- package/app-controller/controller.d.ts +425 -0
- package/app-controller/controller.d.ts.map +1 -0
- package/app-controller/controller.js +1173 -0
- package/app-controller/index.d.ts +14 -0
- package/app-controller/index.d.ts.map +1 -0
- package/app-controller/index.js +12 -0
- package/app-workspace/index.d.ts +421 -0
- package/app-workspace/index.d.ts.map +1 -0
- package/app-workspace/index.js +722 -0
- package/collaboration/client.d.ts +40 -0
- package/collaboration/client.d.ts.map +1 -0
- package/collaboration/client.js +299 -0
- package/collaboration/errors.d.ts +15 -0
- package/collaboration/errors.d.ts.map +1 -0
- package/collaboration/errors.js +17 -0
- package/collaboration/fixture.d.ts +41 -0
- package/collaboration/fixture.d.ts.map +1 -0
- package/collaboration/fixture.js +362 -0
- package/collaboration/index.d.ts +18 -0
- package/collaboration/index.d.ts.map +1 -0
- package/collaboration/index.js +14 -0
- package/collaboration/types.d.ts +240 -0
- package/collaboration/types.d.ts.map +1 -0
- package/collaboration/types.js +1 -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 +63 -0
- package/contract/index.d.ts.map +1 -0
- package/contract/index.js +52 -0
- package/contract/jobs.d.ts +149 -0
- package/contract/jobs.d.ts.map +1 -0
- package/contract/jobs.js +40 -0
- package/contract/pmtiles.d.ts +162 -0
- package/contract/pmtiles.d.ts.map +1 -0
- package/contract/pmtiles.js +155 -0
- package/contract/source.d.ts +447 -0
- package/contract/source.d.ts.map +1 -0
- package/contract/source.js +3909 -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 +694 -0
- package/contract/types.d.ts.map +1 -0
- package/contract/types.js +183 -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/controls/basemap-style-binding.d.ts +54 -0
- package/controls/basemap-style-binding.d.ts.map +1 -0
- package/controls/basemap-style-binding.js +199 -0
- package/controls/basemap-switcher.d.ts +95 -0
- package/controls/basemap-switcher.d.ts.map +1 -0
- package/controls/basemap-switcher.js +379 -0
- package/controls/element-utils.d.ts +48 -0
- package/controls/element-utils.d.ts.map +1 -0
- package/controls/element-utils.js +78 -0
- package/controls/index.d.ts +33 -0
- package/controls/index.d.ts.map +1 -0
- package/controls/index.js +30 -0
- package/controls/layer-list.d.ts +98 -0
- package/controls/layer-list.d.ts.map +1 -0
- package/controls/layer-list.js +375 -0
- package/controls/legend-derive.d.ts +53 -0
- package/controls/legend-derive.d.ts.map +1 -0
- package/controls/legend-derive.js +196 -0
- package/controls/legend.d.ts +104 -0
- package/controls/legend.d.ts.map +1 -0
- package/controls/legend.js +381 -0
- package/controls/swipe-control.d.ts +80 -0
- package/controls/swipe-control.d.ts.map +1 -0
- package/controls/swipe-control.js +368 -0
- package/controls/types.d.ts +227 -0
- package/controls/types.d.ts.map +1 -0
- package/controls/types.js +11 -0
- package/core/auth/client-credentials-provider.d.ts +51 -0
- package/core/auth/client-credentials-provider.d.ts.map +1 -0
- package/core/auth/client-credentials-provider.js +115 -0
- package/core/auth/credential-store.d.ts +52 -0
- package/core/auth/credential-store.d.ts.map +1 -0
- package/core/auth/credential-store.js +82 -0
- package/core/auth/index.d.ts +23 -0
- package/core/auth/index.d.ts.map +1 -0
- package/core/auth/index.js +20 -0
- package/core/auth/oauth2-provider.d.ts +114 -0
- package/core/auth/oauth2-provider.d.ts.map +1 -0
- package/core/auth/oauth2-provider.js +408 -0
- package/core/auth/pkce.d.ts +25 -0
- package/core/auth/pkce.d.ts.map +1 -0
- package/core/auth/pkce.js +46 -0
- package/core/auth/static-providers.d.ts +20 -0
- package/core/auth/static-providers.d.ts.map +1 -0
- package/core/auth/static-providers.js +26 -0
- package/core/auth/token-endpoint.d.ts +40 -0
- package/core/auth/token-endpoint.d.ts.map +1 -0
- package/core/auth/token-endpoint.js +133 -0
- package/core/auth/types.d.ts +144 -0
- package/core/auth/types.d.ts.map +1 -0
- package/core/auth/types.js +8 -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 +607 -0
- package/core/client.d.ts.map +1 -0
- package/core/client.js +1716 -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 +139 -0
- package/core/errors.d.ts.map +1 -0
- package/core/errors.js +176 -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/geoparquet-sql.d.ts +162 -0
- package/core/geoparquet-sql.d.ts.map +1 -0
- package/core/geoparquet-sql.js +333 -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-endpoint-layout.d.ts +70 -0
- package/core/ogc-endpoint-layout.d.ts.map +1 -0
- package/core/ogc-endpoint-layout.js +173 -0
- package/core/ogc-features.d.ts +23 -0
- package/core/ogc-features.d.ts.map +1 -0
- package/core/ogc-features.js +129 -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-static.d.ts +51 -0
- package/core/stac-static.d.ts.map +1 -0
- package/core/stac-static.js +195 -0
- package/core/stac.d.ts +67 -0
- package/core/stac.d.ts.map +1 -0
- package/core/stac.js +259 -0
- package/core/surfaces.d.ts +540 -0
- package/core/surfaces.d.ts.map +1 -0
- package/core/surfaces.js +1964 -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 +1404 -0
- package/core/types.d.ts.map +1 -0
- package/core/types.js +13 -0
- package/core/wfs-capabilities.d.ts +153 -0
- package/core/wfs-capabilities.d.ts.map +1 -0
- package/core/wfs-capabilities.js +490 -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 +232 -0
- package/core/wfs.d.ts.map +1 -0
- package/core/wfs.js +426 -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 +74 -0
- package/esri-compat/identity-manager.d.ts.map +1 -0
- package/esri-compat/identity-manager.js +245 -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 +50 -0
- package/esri-compat/oauth-info.d.ts.map +1 -0
- package/esri-compat/oauth-info.js +142 -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/filter-registry/index.d.ts +145 -0
- package/filter-registry/index.d.ts.map +1 -0
- package/filter-registry/index.js +531 -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/geocoding/index.d.ts +106 -0
- package/geocoding/index.d.ts.map +1 -0
- package/geocoding/index.js +278 -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/operate/client.d.ts +94 -0
- package/operate/client.d.ts.map +1 -0
- package/operate/client.js +361 -0
- package/operate/index.d.ts +22 -0
- package/operate/index.d.ts.map +1 -0
- package/operate/index.js +19 -0
- package/operate/types.d.ts +397 -0
- package/operate/types.d.ts.map +1 -0
- package/operate/types.js +17 -0
- package/operator/client.d.ts +60 -0
- package/operator/client.d.ts.map +1 -0
- package/operator/client.js +20 -0
- package/operator/controllers/approval.d.ts +52 -0
- package/operator/controllers/approval.d.ts.map +1 -0
- package/operator/controllers/approval.js +123 -0
- package/operator/controllers/base.d.ts +27 -0
- package/operator/controllers/base.d.ts.map +1 -0
- package/operator/controllers/base.js +53 -0
- package/operator/controllers/builder-workspace.d.ts +55 -0
- package/operator/controllers/builder-workspace.d.ts.map +1 -0
- package/operator/controllers/builder-workspace.js +108 -0
- package/operator/controllers/chat.d.ts +61 -0
- package/operator/controllers/chat.d.ts.map +1 -0
- package/operator/controllers/chat.js +154 -0
- package/operator/controllers/clarification.d.ts +52 -0
- package/operator/controllers/clarification.d.ts.map +1 -0
- package/operator/controllers/clarification.js +121 -0
- package/operator/controllers/execution.d.ts +60 -0
- package/operator/controllers/execution.d.ts.map +1 -0
- package/operator/controllers/execution.js +286 -0
- package/operator/controllers/index.d.ts +23 -0
- package/operator/controllers/index.d.ts.map +1 -0
- package/operator/controllers/index.js +15 -0
- package/operator/controllers/map-workspace.d.ts +85 -0
- package/operator/controllers/map-workspace.d.ts.map +1 -0
- package/operator/controllers/map-workspace.js +296 -0
- package/operator/controllers/plan-review.d.ts +66 -0
- package/operator/controllers/plan-review.d.ts.map +1 -0
- package/operator/controllers/plan-review.js +124 -0
- package/operator/errors.d.ts +62 -0
- package/operator/errors.d.ts.map +1 -0
- package/operator/errors.js +75 -0
- package/operator/i18n/index.d.ts +10 -0
- package/operator/i18n/index.d.ts.map +1 -0
- package/operator/i18n/index.js +8 -0
- package/operator/i18n/messages.d.ts +19 -0
- package/operator/i18n/messages.d.ts.map +1 -0
- package/operator/i18n/messages.js +54 -0
- package/operator/index.d.ts +19 -0
- package/operator/index.d.ts.map +1 -0
- package/operator/index.js +15 -0
- package/operator/telemetry.d.ts +26 -0
- package/operator/telemetry.d.ts.map +1 -0
- package/operator/telemetry.js +9 -0
- package/operator/theming/index.d.ts +12 -0
- package/operator/theming/index.d.ts.map +1 -0
- package/operator/theming/index.js +9 -0
- package/operator/theming/provider.d.ts +27 -0
- package/operator/theming/provider.d.ts.map +1 -0
- package/operator/theming/provider.js +26 -0
- package/operator/theming/tokens.d.ts +28 -0
- package/operator/theming/tokens.d.ts.map +1 -0
- package/operator/theming/tokens.js +65 -0
- package/operator/workspace/events.d.ts +70 -0
- package/operator/workspace/events.d.ts.map +1 -0
- package/operator/workspace/events.js +9 -0
- package/operator/workspace/index.d.ts +12 -0
- package/operator/workspace/index.d.ts.map +1 -0
- package/operator/workspace/index.js +8 -0
- package/operator/workspace/types.d.ts +178 -0
- package/operator/workspace/types.d.ts.map +1 -0
- package/operator/workspace/types.js +47 -0
- package/operator/workspace/workspace.d.ts +58 -0
- package/operator/workspace/workspace.d.ts.map +1 -0
- package/operator/workspace/workspace.js +339 -0
- package/package.json +105 -0
- package/realtime/exploration.d.ts +16 -0
- package/realtime/exploration.d.ts.map +1 -0
- package/realtime/exploration.js +32 -0
- package/realtime/honua-server.d.ts +123 -0
- package/realtime/honua-server.d.ts.map +1 -0
- package/realtime/honua-server.js +188 -0
- package/realtime/index.d.ts +20 -0
- package/realtime/index.d.ts.map +1 -0
- package/realtime/index.js +14 -0
- package/realtime/projections.d.ts +30 -0
- package/realtime/projections.d.ts.map +1 -0
- package/realtime/projections.js +51 -0
- package/realtime/reducer.d.ts +14 -0
- package/realtime/reducer.d.ts.map +1 -0
- package/realtime/reducer.js +351 -0
- package/realtime/sse.d.ts +23 -0
- package/realtime/sse.d.ts.map +1 -0
- package/realtime/sse.js +143 -0
- package/realtime/store.d.ts +18 -0
- package/realtime/store.d.ts.map +1 -0
- package/realtime/store.js +63 -0
- package/realtime/types.d.ts +190 -0
- package/realtime/types.d.ts.map +1 -0
- package/realtime/types.js +10 -0
- package/replica-sync/client.d.ts +32 -0
- package/replica-sync/client.d.ts.map +1 -0
- package/replica-sync/client.js +52 -0
- package/replica-sync/errors.d.ts +22 -0
- package/replica-sync/errors.d.ts.map +1 -0
- package/replica-sync/errors.js +29 -0
- package/replica-sync/fixture.d.ts +40 -0
- package/replica-sync/fixture.d.ts.map +1 -0
- package/replica-sync/fixture.js +364 -0
- package/replica-sync/index.d.ts +22 -0
- package/replica-sync/index.d.ts.map +1 -0
- package/replica-sync/index.js +17 -0
- package/replica-sync/types.d.ts +270 -0
- package/replica-sync/types.d.ts.map +1 -0
- package/replica-sync/types.js +13 -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 +40 -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 +272 -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 +30 -0
- package/runtime/map-package-validation.d.ts.map +1 -0
- package/runtime/map-package-validation.js +257 -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/pmtiles-protocol.d.ts +77 -0
- package/runtime/pmtiles-protocol.d.ts.map +1 -0
- package/runtime/pmtiles-protocol.js +120 -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 +428 -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/scene-workspace/analysis-widgets.d.ts +334 -0
- package/scene-workspace/analysis-widgets.d.ts.map +1 -0
- package/scene-workspace/analysis-widgets.js +424 -0
- package/scene-workspace/cesium-adapter.d.ts +438 -0
- package/scene-workspace/cesium-adapter.d.ts.map +1 -0
- package/scene-workspace/cesium-adapter.js +493 -0
- package/scene-workspace/index.d.ts +21 -0
- package/scene-workspace/index.d.ts.map +1 -0
- package/scene-workspace/index.js +14 -0
- package/scene-workspace/primitives.d.ts +162 -0
- package/scene-workspace/primitives.d.ts.map +1 -0
- package/scene-workspace/primitives.js +255 -0
- package/scene-workspace/scene-discovery.d.ts +196 -0
- package/scene-workspace/scene-discovery.d.ts.map +1 -0
- package/scene-workspace/scene-discovery.js +228 -0
- package/scene-workspace/scene-view.d.ts +209 -0
- package/scene-workspace/scene-view.d.ts.map +1 -0
- package/scene-workspace/scene-view.js +267 -0
- package/scene-workspace/types.d.ts +229 -0
- package/scene-workspace/types.d.ts.map +1 -0
- package/scene-workspace/types.js +23 -0
- package/scene-workspace/workspace.d.ts +13 -0
- package/scene-workspace/workspace.d.ts.map +1 -0
- package/scene-workspace/workspace.js +391 -0
- package/share/denial.d.ts +78 -0
- package/share/denial.d.ts.map +1 -0
- package/share/denial.js +61 -0
- package/share/embed-token.d.ts +71 -0
- package/share/embed-token.d.ts.map +1 -0
- package/share/embed-token.js +99 -0
- package/share/index.d.ts +35 -0
- package/share/index.d.ts.map +1 -0
- package/share/index.js +30 -0
- package/share/open-data.d.ts +114 -0
- package/share/open-data.d.ts.map +1 -0
- package/share/open-data.js +81 -0
- package/share/types.d.ts +163 -0
- package/share/types.d.ts.map +1 -0
- package/share/types.js +17 -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/web-components/controller.d.ts +39 -0
- package/web-components/controller.d.ts.map +1 -0
- package/web-components/controller.js +640 -0
- package/web-components/elements.d.ts +210 -0
- package/web-components/elements.d.ts.map +1 -0
- package/web-components/elements.js +1651 -0
- package/web-components/index.d.ts +24 -0
- package/web-components/index.d.ts.map +1 -0
- package/web-components/index.js +22 -0
- package/web-components/maplibre-renderer.d.ts +22 -0
- package/web-components/maplibre-renderer.d.ts.map +1 -0
- package/web-components/maplibre-renderer.js +474 -0
- package/web-components/types.d.ts +397 -0
- package/web-components/types.d.ts.map +1 -0
- package/web-components/types.js +1 -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,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical async-operation surface. `IJobRun` is the protocol-neutral
|
|
3
|
+
* vocabulary every long-running operation in the SDK speaks. It is the
|
|
4
|
+
* receipt returned from operations that complete asynchronously on the
|
|
5
|
+
* server (OGC API Processes execution, future GeoServices async export
|
|
6
|
+
* tickets, OData function imports, etc.).
|
|
7
|
+
*
|
|
8
|
+
* Per the ticket constraint, OGC Processes specifically must surface
|
|
9
|
+
* through this shared interface — there is no `OgcJobRun` top-level
|
|
10
|
+
* type. The implementation in `src/core/ogc-processes.ts` returns
|
|
11
|
+
* `IJobRun<T>` directly.
|
|
12
|
+
*
|
|
13
|
+
* @module
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Coarse-grained job lifecycle. The OGC API Processes 1.0 status values
|
|
17
|
+
* (`accepted`, `running`, `successful`, `failed`, `dismissed`) are the
|
|
18
|
+
* canonical vocabulary; adapters for protocols that report a narrower or
|
|
19
|
+
* wider set must map onto these.
|
|
20
|
+
*/
|
|
21
|
+
export type JobStatus = "accepted" | "running" | "successful" | "failed" | "dismissed";
|
|
22
|
+
/** Human-meaningful job-progress signal. Optional; servers may omit fields. */
|
|
23
|
+
export interface JobProgress {
|
|
24
|
+
/** 0..100. Omitted when the server does not report a numeric estimate. */
|
|
25
|
+
percent?: number;
|
|
26
|
+
/** Human-readable status message for the current step. */
|
|
27
|
+
message?: string;
|
|
28
|
+
/** ISO-8601 timestamp of when the server last updated the progress. */
|
|
29
|
+
updatedAt?: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Snapshot of a job's state. Returned from `IJobRun.poll()` and emitted
|
|
33
|
+
* to `IJobRun.watch` listeners. The result/error fields are filled only
|
|
34
|
+
* for terminal states.
|
|
35
|
+
*/
|
|
36
|
+
export interface JobSnapshot<T = unknown> {
|
|
37
|
+
status: JobStatus;
|
|
38
|
+
progress?: JobProgress;
|
|
39
|
+
/** Payload returned for terminal `successful` snapshots only. */
|
|
40
|
+
result?: JobResult<T>;
|
|
41
|
+
/** Error envelope returned for terminal `failed` snapshots. */
|
|
42
|
+
error?: JobError;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Server-side error envelope for a failed job. Mirrors the OGC API
|
|
46
|
+
* Processes "exception" shape; adapters for other protocols translate
|
|
47
|
+
* onto this surface so callers can branch on `code` without protocol
|
|
48
|
+
* knowledge.
|
|
49
|
+
*/
|
|
50
|
+
export interface JobError {
|
|
51
|
+
/** Stable machine code (e.g. `"InvalidParameterValue"`). */
|
|
52
|
+
code: string;
|
|
53
|
+
/** Human-readable explanation. */
|
|
54
|
+
message: string;
|
|
55
|
+
/** Optional details payload as returned by the server. */
|
|
56
|
+
details?: unknown;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Job-result document. `outputs` is a map of output-id → value; the SDK
|
|
60
|
+
* does not parse the value further (it may be a GeoJSON feature
|
|
61
|
+
* collection, a download URL, a binary asset, etc., depending on the
|
|
62
|
+
* process). Adapters narrow `T` for typed access.
|
|
63
|
+
*/
|
|
64
|
+
export interface JobResult<T = unknown> {
|
|
65
|
+
outputs: Record<string, T>;
|
|
66
|
+
}
|
|
67
|
+
/** Listener function invoked on every observed snapshot transition. */
|
|
68
|
+
export type JobSnapshotListener<T = unknown> = (snapshot: JobSnapshot<T>) => void;
|
|
69
|
+
/**
|
|
70
|
+
* Bounds for {@link IJobRun.results}. Without any bound a hung or never-terminal
|
|
71
|
+
* status endpoint polls forever with no caller cancellation. Implementations
|
|
72
|
+
* pass {@link signal} through to the underlying status request, stop polling
|
|
73
|
+
* when the signal aborts or a deadline / attempt cap is reached, and use capped
|
|
74
|
+
* exponential backoff between polls.
|
|
75
|
+
*/
|
|
76
|
+
export interface JobResultsOptions {
|
|
77
|
+
/** Abort the poll loop (and the in-flight status request) when this fires. */
|
|
78
|
+
readonly signal?: AbortSignal;
|
|
79
|
+
/** Wall-clock budget in ms for reaching a terminal state. */
|
|
80
|
+
readonly deadlineMs?: number;
|
|
81
|
+
/** Maximum number of status polls before giving up. */
|
|
82
|
+
readonly maxAttempts?: number;
|
|
83
|
+
/** Base poll interval in ms (defaults to the adapter's cadence). */
|
|
84
|
+
readonly pollIntervalMs?: number;
|
|
85
|
+
/** Cap for the exponential backoff interval in ms. */
|
|
86
|
+
readonly maxPollIntervalMs?: number;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Canonical async-operation handle. Methods are intentionally narrow so
|
|
90
|
+
* downstream tickets that submit jobs (operator workflows, manifest
|
|
91
|
+
* apply, etc.) can speak one vocabulary across protocols.
|
|
92
|
+
*/
|
|
93
|
+
export interface IJobRun<T = unknown> {
|
|
94
|
+
/** Stable identifier assigned by the server when the job was accepted. */
|
|
95
|
+
readonly id: string;
|
|
96
|
+
/** Process / operation identifier, e.g. an OGC processId. */
|
|
97
|
+
readonly type: string;
|
|
98
|
+
/**
|
|
99
|
+
* Last-observed status. Backed by the most recent `poll()` /
|
|
100
|
+
* `status()` / `watch()` snapshot; reads are synchronous.
|
|
101
|
+
*/
|
|
102
|
+
readonly status: JobStatus;
|
|
103
|
+
/** Last-observed progress, if the server reported any. */
|
|
104
|
+
readonly progress: JobProgress | undefined;
|
|
105
|
+
/** Force a fresh server poll and return the resulting snapshot. */
|
|
106
|
+
poll(): Promise<JobSnapshot<T>>;
|
|
107
|
+
/**
|
|
108
|
+
* Subscribe to snapshot transitions. The callback fires on every
|
|
109
|
+
* observed status / progress change, and again on the terminal
|
|
110
|
+
* snapshot. Returns an unsubscribe handle.
|
|
111
|
+
*/
|
|
112
|
+
watch(listener: JobSnapshotListener<T>): () => void;
|
|
113
|
+
/**
|
|
114
|
+
* Wait for the job to reach a terminal state and resolve with the
|
|
115
|
+
* outputs. Rejects with `HonuaJobFailedError` for `failed` /
|
|
116
|
+
* `dismissed` terminal states, or `HonuaJobPollTimeoutError` when the
|
|
117
|
+
* optional {@link JobResultsOptions} deadline / attempt cap is reached or
|
|
118
|
+
* the supplied signal aborts. Implementations poll on a configurable
|
|
119
|
+
* interval (capped exponential backoff); the default cadence is left to
|
|
120
|
+
* the adapter.
|
|
121
|
+
*/
|
|
122
|
+
results(options?: JobResultsOptions): Promise<JobResult<T>>;
|
|
123
|
+
/**
|
|
124
|
+
* Cancel / dismiss the job. Idempotent. Returns the resulting status
|
|
125
|
+
* (typically `dismissed`, but the server may have raced to a terminal
|
|
126
|
+
* state already, in which case the original terminal status is
|
|
127
|
+
* returned).
|
|
128
|
+
*/
|
|
129
|
+
cancel(): Promise<JobStatus>;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* `true` when the snapshot status is one of the terminal values
|
|
133
|
+
* (`successful`, `failed`, `dismissed`). Useful for stop conditions in
|
|
134
|
+
* watchers and tests.
|
|
135
|
+
*/
|
|
136
|
+
export declare function isJobTerminal(status: JobStatus): boolean;
|
|
137
|
+
/**
|
|
138
|
+
* Thrown by {@link IJobRun.results} when the poll loop is cancelled or exhausted
|
|
139
|
+
* before the job reached a terminal state — i.e. the {@link JobResultsOptions}
|
|
140
|
+
* signal aborted, the deadline elapsed, or the attempt cap was hit. `reason`
|
|
141
|
+
* distinguishes the three so callers can branch (e.g. retry vs surface).
|
|
142
|
+
*/
|
|
143
|
+
export declare class HonuaJobPollTimeoutError extends Error {
|
|
144
|
+
readonly reason: "aborted" | "deadline" | "max-attempts";
|
|
145
|
+
readonly jobId: string;
|
|
146
|
+
readonly lastStatus: JobStatus;
|
|
147
|
+
constructor(message: string, reason: "aborted" | "deadline" | "max-attempts", jobId: string, lastStatus: JobStatus);
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=jobs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../../../src/contract/jobs.ts"],"names":[],"mappings":"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"}
|
package/contract/jobs.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical async-operation surface. `IJobRun` is the protocol-neutral
|
|
3
|
+
* vocabulary every long-running operation in the SDK speaks. It is the
|
|
4
|
+
* receipt returned from operations that complete asynchronously on the
|
|
5
|
+
* server (OGC API Processes execution, future GeoServices async export
|
|
6
|
+
* tickets, OData function imports, etc.).
|
|
7
|
+
*
|
|
8
|
+
* Per the ticket constraint, OGC Processes specifically must surface
|
|
9
|
+
* through this shared interface — there is no `OgcJobRun` top-level
|
|
10
|
+
* type. The implementation in `src/core/ogc-processes.ts` returns
|
|
11
|
+
* `IJobRun<T>` directly.
|
|
12
|
+
*
|
|
13
|
+
* @module
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* `true` when the snapshot status is one of the terminal values
|
|
17
|
+
* (`successful`, `failed`, `dismissed`). Useful for stop conditions in
|
|
18
|
+
* watchers and tests.
|
|
19
|
+
*/
|
|
20
|
+
export function isJobTerminal(status) {
|
|
21
|
+
return status === "successful" || status === "failed" || status === "dismissed";
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Thrown by {@link IJobRun.results} when the poll loop is cancelled or exhausted
|
|
25
|
+
* before the job reached a terminal state — i.e. the {@link JobResultsOptions}
|
|
26
|
+
* signal aborted, the deadline elapsed, or the attempt cap was hit. `reason`
|
|
27
|
+
* distinguishes the three so callers can branch (e.g. retry vs surface).
|
|
28
|
+
*/
|
|
29
|
+
export class HonuaJobPollTimeoutError extends Error {
|
|
30
|
+
reason;
|
|
31
|
+
jobId;
|
|
32
|
+
lastStatus;
|
|
33
|
+
constructor(message, reason, jobId, lastStatus) {
|
|
34
|
+
super(message);
|
|
35
|
+
this.name = "HonuaJobPollTimeoutError";
|
|
36
|
+
this.reason = reason;
|
|
37
|
+
this.jobId = jobId;
|
|
38
|
+
this.lastStatus = lastStatus;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PMTiles archive inspection for the protocol-neutral contract.
|
|
3
|
+
*
|
|
4
|
+
* A PMTiles archive is a single, immutable file (on object storage or any
|
|
5
|
+
* static host) that stores an entire raster or vector tile pyramid. It
|
|
6
|
+
* participates in the `Dataset` / `Source` model as a **tiles-only** protocol:
|
|
7
|
+
* the canonical query family throws {@link HonuaCapabilityNotSupportedError}
|
|
8
|
+
* (there is no feature-query surface on an archive), while archive metadata —
|
|
9
|
+
* bounds, min/max zoom, and vector layer names — is inspected through
|
|
10
|
+
* `Source.protocol("pmtiles").describe()`.
|
|
11
|
+
*
|
|
12
|
+
* This module never statically imports the `pmtiles` package. The reader is
|
|
13
|
+
* pulled in lazily (`await import("pmtiles")`) the first time an archive is
|
|
14
|
+
* actually described, mirroring the Cesium adapter so consumers that never
|
|
15
|
+
* touch PMTiles pay zero bundle cost. A minimal `pmtiles` module slice is
|
|
16
|
+
* modelled here so the wiring stays unit-testable against an injected fake
|
|
17
|
+
* without a network fetch.
|
|
18
|
+
*
|
|
19
|
+
* @module
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Canonical tile-payload kinds a PMTiles archive can store. `mvt` is a vector
|
|
23
|
+
* archive (Mapbox Vector Tiles); the rest are raster encodings. `unknown`
|
|
24
|
+
* covers archives whose header tile-type byte the reader could not classify.
|
|
25
|
+
*/
|
|
26
|
+
export type PmtilesTileKind = "mvt" | "png" | "jpeg" | "webp" | "avif" | "unknown";
|
|
27
|
+
/**
|
|
28
|
+
* One vector layer advertised in a vector archive's TileJSON-style metadata
|
|
29
|
+
* (`vector_layers`). Present only for `mvt` archives; raster archives report an
|
|
30
|
+
* empty {@link PmtilesArchiveDescription.vectorLayers} list.
|
|
31
|
+
*/
|
|
32
|
+
export interface PmtilesVectorLayerInfo {
|
|
33
|
+
/** Layer id — the MapLibre `source-layer` name to reference in a style. */
|
|
34
|
+
readonly id: string;
|
|
35
|
+
/** Optional human description carried in the archive metadata. */
|
|
36
|
+
readonly description?: string;
|
|
37
|
+
/** Optional per-layer minimum zoom advertised in the metadata. */
|
|
38
|
+
readonly minZoom?: number;
|
|
39
|
+
/** Optional per-layer maximum zoom advertised in the metadata. */
|
|
40
|
+
readonly maxZoom?: number;
|
|
41
|
+
/** Optional field-name → type map advertised in the metadata. */
|
|
42
|
+
readonly fields?: Readonly<Record<string, string>>;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* The archive metadata surfaced by {@link describePmtilesArchive}. Bounds are
|
|
46
|
+
* `[west, south, east, north]` in degrees; `center` is `[lon, lat, zoom]`. The
|
|
47
|
+
* raw metadata JSON is preserved on `metadata` for callers that need archive
|
|
48
|
+
* fields beyond the normalized shape.
|
|
49
|
+
*/
|
|
50
|
+
export interface PmtilesArchiveDescription {
|
|
51
|
+
/** Archive URL the description was read from. */
|
|
52
|
+
readonly url: string;
|
|
53
|
+
/** Tile payload kind stored in the archive. */
|
|
54
|
+
readonly tileKind: PmtilesTileKind;
|
|
55
|
+
/** Geographic bounds `[west, south, east, north]` in degrees. */
|
|
56
|
+
readonly bounds: readonly [number, number, number, number];
|
|
57
|
+
/** Lowest zoom level present in the archive. */
|
|
58
|
+
readonly minZoom: number;
|
|
59
|
+
/** Highest zoom level present in the archive. */
|
|
60
|
+
readonly maxZoom: number;
|
|
61
|
+
/** Suggested view center `[lon, lat, zoom]`. */
|
|
62
|
+
readonly center: readonly [number, number, number];
|
|
63
|
+
/** Vector layer definitions (empty for raster archives). */
|
|
64
|
+
readonly vectorLayers: readonly PmtilesVectorLayerInfo[];
|
|
65
|
+
/** Attribution string advertised in the archive metadata, when present. */
|
|
66
|
+
readonly attribution?: string;
|
|
67
|
+
/** The raw, parsed archive metadata JSON. */
|
|
68
|
+
readonly metadata: Readonly<Record<string, unknown>>;
|
|
69
|
+
}
|
|
70
|
+
/** A byte-range response from a {@link PmtilesSourceLike}. */
|
|
71
|
+
export interface PmtilesRangeResponse {
|
|
72
|
+
readonly data: ArrayBuffer;
|
|
73
|
+
readonly etag?: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* The `pmtiles` `Source` surface — a byte-range reader over the archive. A
|
|
77
|
+
* remote archive uses the reader's own `FetchSource`; a local fixture (tests)
|
|
78
|
+
* supplies a buffer-backed implementation.
|
|
79
|
+
*/
|
|
80
|
+
export interface PmtilesSourceLike {
|
|
81
|
+
getBytes(offset: number, length: number, signal?: AbortSignal, etag?: string): Promise<PmtilesRangeResponse>;
|
|
82
|
+
getKey(): string;
|
|
83
|
+
}
|
|
84
|
+
/** The `Header` fields this module reads (a subset of `pmtiles.Header`). */
|
|
85
|
+
export interface PmtilesHeaderLike {
|
|
86
|
+
readonly minZoom: number;
|
|
87
|
+
readonly maxZoom: number;
|
|
88
|
+
readonly minLon: number;
|
|
89
|
+
readonly minLat: number;
|
|
90
|
+
readonly maxLon: number;
|
|
91
|
+
readonly maxLat: number;
|
|
92
|
+
readonly centerZoom: number;
|
|
93
|
+
readonly centerLon: number;
|
|
94
|
+
readonly centerLat: number;
|
|
95
|
+
readonly tileType: number;
|
|
96
|
+
}
|
|
97
|
+
/** The `PMTiles` reader surface this module drives. */
|
|
98
|
+
export interface PmtilesArchiveLike {
|
|
99
|
+
getHeader(): Promise<PmtilesHeaderLike>;
|
|
100
|
+
getMetadata(): Promise<unknown>;
|
|
101
|
+
}
|
|
102
|
+
/** The minimal slice of `typeof import("pmtiles")` the describe path needs. */
|
|
103
|
+
export interface PmtilesModuleLike {
|
|
104
|
+
new (source: PmtilesSourceLike | string): PmtilesArchiveLike;
|
|
105
|
+
}
|
|
106
|
+
/** Injectable dependencies for {@link describePmtilesArchive} (test seams). */
|
|
107
|
+
export interface DescribePmtilesArchiveDeps {
|
|
108
|
+
/** Override the lazily-imported `pmtiles.PMTiles` constructor. */
|
|
109
|
+
readonly PMTiles?: PmtilesModuleLike;
|
|
110
|
+
/** Read from a local/in-memory source instead of fetching `url`. */
|
|
111
|
+
readonly source?: PmtilesSourceLike;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Inspect a PMTiles archive and return its normalized metadata (bounds, min/max
|
|
115
|
+
* zoom, suggested center, and vector layer names). The `pmtiles` reader is
|
|
116
|
+
* imported lazily on first use.
|
|
117
|
+
*
|
|
118
|
+
* Pass {@link DescribePmtilesArchiveDeps.source} to read a local archive (the
|
|
119
|
+
* unit-test path) or {@link DescribePmtilesArchiveDeps.PMTiles} to inject a fake
|
|
120
|
+
* reader; both default to fetching `url` through the real reader.
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```ts
|
|
124
|
+
* const info = await describePmtilesArchive("https://example.com/basemap.pmtiles");
|
|
125
|
+
* console.log(info.bounds, info.minZoom, info.maxZoom);
|
|
126
|
+
* for (const layer of info.vectorLayers) console.log(layer.id);
|
|
127
|
+
* ```
|
|
128
|
+
*/
|
|
129
|
+
export declare function describePmtilesArchive(url: string, deps?: DescribePmtilesArchiveDeps): Promise<PmtilesArchiveDescription>;
|
|
130
|
+
/**
|
|
131
|
+
* Typed adapter handle for a PMTiles archive, reachable through
|
|
132
|
+
* `Source.protocol("pmtiles")`. Provides the archive-metadata inspection
|
|
133
|
+
* surface ({@link HonuaPmtilesArchive.describe}) that the tiles-only PMTiles
|
|
134
|
+
* `Source` uses to participate in the Dataset model honestly. The first
|
|
135
|
+
* `describe()` call is cached so repeated inspection does not re-open the
|
|
136
|
+
* archive.
|
|
137
|
+
*/
|
|
138
|
+
export declare class HonuaPmtilesArchive {
|
|
139
|
+
#private;
|
|
140
|
+
/** The `pmtiles://`-free archive URL this handle inspects. */
|
|
141
|
+
readonly url: string;
|
|
142
|
+
constructor(url: string, deps?: DescribePmtilesArchiveDeps);
|
|
143
|
+
/**
|
|
144
|
+
* Inspect the archive and return its normalized metadata. Cached after the
|
|
145
|
+
* first successful call; a failed inspection is not cached so a transient
|
|
146
|
+
* fetch error can be retried.
|
|
147
|
+
*/
|
|
148
|
+
describe(): Promise<PmtilesArchiveDescription>;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Strip a leading `pmtiles://` scheme from an archive URL, if present. MapLibre
|
|
152
|
+
* style sources address PMTiles archives as `pmtiles://https://…`; the reader
|
|
153
|
+
* (and this contract's describe path) want the bare archive URL.
|
|
154
|
+
*/
|
|
155
|
+
export declare function stripPmtilesScheme(url: string): string;
|
|
156
|
+
/**
|
|
157
|
+
* Add the `pmtiles://` scheme to a bare archive URL if it is not already
|
|
158
|
+
* present. The inverse of {@link stripPmtilesScheme}; use it when composing a
|
|
159
|
+
* MapLibre source `url` from a plain archive locator.
|
|
160
|
+
*/
|
|
161
|
+
export declare function toPmtilesSourceUrl(url: string): string;
|
|
162
|
+
//# sourceMappingURL=pmtiles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pmtiles.d.ts","sourceRoot":"","sources":["../../../src/contract/pmtiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PMTiles archive inspection for the protocol-neutral contract.
|
|
3
|
+
*
|
|
4
|
+
* A PMTiles archive is a single, immutable file (on object storage or any
|
|
5
|
+
* static host) that stores an entire raster or vector tile pyramid. It
|
|
6
|
+
* participates in the `Dataset` / `Source` model as a **tiles-only** protocol:
|
|
7
|
+
* the canonical query family throws {@link HonuaCapabilityNotSupportedError}
|
|
8
|
+
* (there is no feature-query surface on an archive), while archive metadata —
|
|
9
|
+
* bounds, min/max zoom, and vector layer names — is inspected through
|
|
10
|
+
* `Source.protocol("pmtiles").describe()`.
|
|
11
|
+
*
|
|
12
|
+
* This module never statically imports the `pmtiles` package. The reader is
|
|
13
|
+
* pulled in lazily (`await import("pmtiles")`) the first time an archive is
|
|
14
|
+
* actually described, mirroring the Cesium adapter so consumers that never
|
|
15
|
+
* touch PMTiles pay zero bundle cost. A minimal `pmtiles` module slice is
|
|
16
|
+
* modelled here so the wiring stays unit-testable against an injected fake
|
|
17
|
+
* without a network fetch.
|
|
18
|
+
*
|
|
19
|
+
* @module
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Lazily import the `pmtiles` reader. Kept in its own function so the dynamic
|
|
23
|
+
* `import("pmtiles")` is the only reference to the package in `src/`, which is
|
|
24
|
+
* what keeps PMTiles out of every bundle that never inspects an archive.
|
|
25
|
+
*/
|
|
26
|
+
async function loadPmtilesCtor() {
|
|
27
|
+
const mod = (await import("pmtiles"));
|
|
28
|
+
return mod.PMTiles;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The `pmtiles` `TileType` enum values (spec v3). Duplicated here as a plain
|
|
32
|
+
* map so classification does not force a value import of the package.
|
|
33
|
+
*/
|
|
34
|
+
const TILE_KIND_BY_TYPE = {
|
|
35
|
+
0: "unknown",
|
|
36
|
+
1: "mvt",
|
|
37
|
+
2: "png",
|
|
38
|
+
3: "jpeg",
|
|
39
|
+
4: "webp",
|
|
40
|
+
5: "avif",
|
|
41
|
+
};
|
|
42
|
+
function tileKindFromHeader(tileType) {
|
|
43
|
+
return TILE_KIND_BY_TYPE[tileType] ?? "unknown";
|
|
44
|
+
}
|
|
45
|
+
function readVectorLayers(metadata) {
|
|
46
|
+
const raw = metadata.vector_layers;
|
|
47
|
+
if (!Array.isArray(raw))
|
|
48
|
+
return [];
|
|
49
|
+
const layers = [];
|
|
50
|
+
for (const entry of raw) {
|
|
51
|
+
if (!entry || typeof entry !== "object")
|
|
52
|
+
continue;
|
|
53
|
+
const record = entry;
|
|
54
|
+
const id = record.id;
|
|
55
|
+
if (typeof id !== "string" || id === "")
|
|
56
|
+
continue;
|
|
57
|
+
const info = { id };
|
|
58
|
+
if (typeof record.description === "string")
|
|
59
|
+
info.description = record.description;
|
|
60
|
+
if (typeof record.minzoom === "number")
|
|
61
|
+
info.minZoom = record.minzoom;
|
|
62
|
+
if (typeof record.maxzoom === "number")
|
|
63
|
+
info.maxZoom = record.maxzoom;
|
|
64
|
+
if (record.fields && typeof record.fields === "object") {
|
|
65
|
+
info.fields = record.fields;
|
|
66
|
+
}
|
|
67
|
+
layers.push(info);
|
|
68
|
+
}
|
|
69
|
+
return layers;
|
|
70
|
+
}
|
|
71
|
+
function asMetadataRecord(metadata) {
|
|
72
|
+
return metadata && typeof metadata === "object" ? metadata : {};
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Inspect a PMTiles archive and return its normalized metadata (bounds, min/max
|
|
76
|
+
* zoom, suggested center, and vector layer names). The `pmtiles` reader is
|
|
77
|
+
* imported lazily on first use.
|
|
78
|
+
*
|
|
79
|
+
* Pass {@link DescribePmtilesArchiveDeps.source} to read a local archive (the
|
|
80
|
+
* unit-test path) or {@link DescribePmtilesArchiveDeps.PMTiles} to inject a fake
|
|
81
|
+
* reader; both default to fetching `url` through the real reader.
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```ts
|
|
85
|
+
* const info = await describePmtilesArchive("https://example.com/basemap.pmtiles");
|
|
86
|
+
* console.log(info.bounds, info.minZoom, info.maxZoom);
|
|
87
|
+
* for (const layer of info.vectorLayers) console.log(layer.id);
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
export async function describePmtilesArchive(url, deps = {}) {
|
|
91
|
+
const PMTiles = deps.PMTiles ?? (await loadPmtilesCtor());
|
|
92
|
+
const archive = deps.source ? new PMTiles(deps.source) : new PMTiles(url);
|
|
93
|
+
const [header, rawMetadata] = await Promise.all([archive.getHeader(), archive.getMetadata()]);
|
|
94
|
+
const metadata = asMetadataRecord(rawMetadata);
|
|
95
|
+
const attribution = typeof metadata.attribution === "string" ? metadata.attribution : undefined;
|
|
96
|
+
return {
|
|
97
|
+
url,
|
|
98
|
+
tileKind: tileKindFromHeader(header.tileType),
|
|
99
|
+
bounds: [header.minLon, header.minLat, header.maxLon, header.maxLat],
|
|
100
|
+
minZoom: header.minZoom,
|
|
101
|
+
maxZoom: header.maxZoom,
|
|
102
|
+
center: [header.centerLon, header.centerLat, header.centerZoom],
|
|
103
|
+
vectorLayers: readVectorLayers(metadata),
|
|
104
|
+
...(attribution ? { attribution } : {}),
|
|
105
|
+
metadata,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Typed adapter handle for a PMTiles archive, reachable through
|
|
110
|
+
* `Source.protocol("pmtiles")`. Provides the archive-metadata inspection
|
|
111
|
+
* surface ({@link HonuaPmtilesArchive.describe}) that the tiles-only PMTiles
|
|
112
|
+
* `Source` uses to participate in the Dataset model honestly. The first
|
|
113
|
+
* `describe()` call is cached so repeated inspection does not re-open the
|
|
114
|
+
* archive.
|
|
115
|
+
*/
|
|
116
|
+
export class HonuaPmtilesArchive {
|
|
117
|
+
/** The `pmtiles://`-free archive URL this handle inspects. */
|
|
118
|
+
url;
|
|
119
|
+
#deps;
|
|
120
|
+
#description;
|
|
121
|
+
constructor(url, deps = {}) {
|
|
122
|
+
this.url = url;
|
|
123
|
+
this.#deps = deps;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Inspect the archive and return its normalized metadata. Cached after the
|
|
127
|
+
* first successful call; a failed inspection is not cached so a transient
|
|
128
|
+
* fetch error can be retried.
|
|
129
|
+
*/
|
|
130
|
+
describe() {
|
|
131
|
+
if (!this.#description) {
|
|
132
|
+
this.#description = describePmtilesArchive(this.url, this.#deps).catch((error) => {
|
|
133
|
+
this.#description = undefined;
|
|
134
|
+
throw error;
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
return this.#description;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Strip a leading `pmtiles://` scheme from an archive URL, if present. MapLibre
|
|
142
|
+
* style sources address PMTiles archives as `pmtiles://https://…`; the reader
|
|
143
|
+
* (and this contract's describe path) want the bare archive URL.
|
|
144
|
+
*/
|
|
145
|
+
export function stripPmtilesScheme(url) {
|
|
146
|
+
return url.startsWith("pmtiles://") ? url.slice("pmtiles://".length) : url;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Add the `pmtiles://` scheme to a bare archive URL if it is not already
|
|
150
|
+
* present. The inverse of {@link stripPmtilesScheme}; use it when composing a
|
|
151
|
+
* MapLibre source `url` from a plain archive locator.
|
|
152
|
+
*/
|
|
153
|
+
export function toPmtilesSourceUrl(url) {
|
|
154
|
+
return url.startsWith("pmtiles://") ? url : `pmtiles://${url}`;
|
|
155
|
+
}
|