@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,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OGC API conformance-class → canonical capability mapping. The
|
|
3
|
+
* conformance class identifiers are intentionally kept *internal* to
|
|
4
|
+
* this module — `negotiateOgcCapabilities` is the only public surface
|
|
5
|
+
* that maps from the server-advertised list onto canonical capability
|
|
6
|
+
* names. Top-level SDK types must not expose conformance-class names
|
|
7
|
+
* (acceptance criterion).
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
11
|
+
import type { Capabilities, Protocol } from "../contract/types.js";
|
|
12
|
+
import type { HonuaOgcConformanceResponse } from "./types.js";
|
|
13
|
+
/** Subset of `Protocol` for which OGC-style conformance applies. */
|
|
14
|
+
export type OgcConformanceProtocol = Extract<Protocol, "ogc-features" | "ogc-tiles" | "ogc-maps" | "ogc-records" | "stac"> | "ogc-processes";
|
|
15
|
+
/**
|
|
16
|
+
* Translate the server-advertised `conformsTo[]` list into a canonical
|
|
17
|
+
* `Capabilities` set for the given protocol. Conformance class
|
|
18
|
+
* identifiers are matched against substring keys so version drift
|
|
19
|
+
* (`features-1` → `features-3`) does not silently drop capabilities.
|
|
20
|
+
*
|
|
21
|
+
* Callers can intersect the result with their own narrower set when
|
|
22
|
+
* they want to gate optional features even if the server claims them.
|
|
23
|
+
*/
|
|
24
|
+
export declare function negotiateOgcCapabilities(protocol: OgcConformanceProtocol, conformance: HonuaOgcConformanceResponse | {
|
|
25
|
+
conformsTo?: readonly string[];
|
|
26
|
+
} | undefined): Capabilities;
|
|
27
|
+
/**
|
|
28
|
+
* `true` when the conformance response advertises a class containing
|
|
29
|
+
* the given substring. Lets callers gate features on a specific
|
|
30
|
+
* extension without exposing the URI as a primary SDK type.
|
|
31
|
+
*/
|
|
32
|
+
export declare function hasOgcConformanceClass(conformance: HonuaOgcConformanceResponse | {
|
|
33
|
+
conformsTo?: readonly string[];
|
|
34
|
+
} | undefined, classSubstring: string): boolean;
|
|
35
|
+
//# sourceMappingURL=ogc-conformance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ogc-conformance.d.ts","sourceRoot":"","sources":["../../../src/core/ogc-conformance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAc,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE/E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AA8F9D,oEAAoE;AACpE,MAAM,MAAM,sBAAsB,GAC9B,OAAO,CAAC,QAAQ,EAAE,cAAc,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa,GAAG,MAAM,CAAC,GACrF,eAAe,CAAC;AAEpB;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,sBAAsB,EAChC,WAAW,EAAE,2BAA2B,GAAG;IAAE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,GACxF,YAAY,CAad;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,2BAA2B,GAAG;IAAE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,EACzF,cAAc,EAAE,MAAM,GACrB,OAAO,CAMT"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OGC API conformance-class → canonical capability mapping. The
|
|
3
|
+
* conformance class identifiers are intentionally kept *internal* to
|
|
4
|
+
* this module — `negotiateOgcCapabilities` is the only public surface
|
|
5
|
+
* that maps from the server-advertised list onto canonical capability
|
|
6
|
+
* names. Top-level SDK types must not expose conformance-class names
|
|
7
|
+
* (acceptance criterion).
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
11
|
+
import { capabilities } from "../contract/types.js";
|
|
12
|
+
/**
|
|
13
|
+
* Mapping from OGC conformance-class URI segments to one or more
|
|
14
|
+
* canonical capabilities. Stored as substring keys because the server
|
|
15
|
+
* may version the path differently (`features-1`, `features-2`,
|
|
16
|
+
* `features-3`, `features-4` — and OGC has been re-issuing the URIs
|
|
17
|
+
* over time). A substring match against `conformsTo[]` covers both
|
|
18
|
+
* versions.
|
|
19
|
+
*/
|
|
20
|
+
const FEATURE_CONFORMANCE_MAP = [
|
|
21
|
+
["features-1/1.0/conf/core", ["query", "queryObjectIds"]],
|
|
22
|
+
["features-1/1.0/conf/oas3", []],
|
|
23
|
+
["features-1/1.0/conf/oas30", []],
|
|
24
|
+
["features-1/1.0/conf/geojson", []],
|
|
25
|
+
["features-1/1.0/conf/html", []],
|
|
26
|
+
["features-1/1.0/conf/crs", []],
|
|
27
|
+
["features-3/1.0/conf/filter", ["queryAggregate"]],
|
|
28
|
+
["features-3/1.0/conf/features-filter", ["queryAggregate"]],
|
|
29
|
+
["features-3/1.0/conf/queryables", []],
|
|
30
|
+
["features-3/1.0/conf/cql2-text", []],
|
|
31
|
+
["features-3/1.0/conf/cql2-json", []],
|
|
32
|
+
["features-4/1.0/conf/create-replace-delete", ["applyEdits"]],
|
|
33
|
+
["features-4/1.0/conf/transactions", ["applyEdits"]],
|
|
34
|
+
["features-2/1.0/conf/sql", ["sql"]],
|
|
35
|
+
];
|
|
36
|
+
const TILE_CONFORMANCE_MAP = [
|
|
37
|
+
["tiles-1/1.0/conf/core", ["tiles"]],
|
|
38
|
+
["tiles-1/1.0/conf/tileset", ["tiles"]],
|
|
39
|
+
["tiles-1/1.0/conf/tilesets-list", ["tiles"]],
|
|
40
|
+
["tiles-1/1.0/conf/dataset-tilesets", ["tiles"]],
|
|
41
|
+
["tiles-1/1.0/conf/geodata-tilesets", ["tiles"]],
|
|
42
|
+
["tiles-1/1.0/conf/geodata-selection", ["tiles"]],
|
|
43
|
+
["tiles-1/1.0/conf/multi-tile", ["tiles"]],
|
|
44
|
+
["tiles-1/1.0/conf/oas30", []],
|
|
45
|
+
["tiles-1/1.0/conf/mvt", ["tiles", "render"]],
|
|
46
|
+
["tiles-1/1.0/conf/png", ["tiles", "render"]],
|
|
47
|
+
["tiles-1/1.0/conf/jpeg", ["tiles", "render"]],
|
|
48
|
+
];
|
|
49
|
+
const MAP_CONFORMANCE_MAP = [
|
|
50
|
+
["maps-1/1.0/conf/core", ["render"]],
|
|
51
|
+
["maps-1/1.0/conf/dataset-map", ["render"]],
|
|
52
|
+
["maps-1/1.0/conf/collection-map", ["render"]],
|
|
53
|
+
["maps-1/1.0/conf/scaling", ["render"]],
|
|
54
|
+
["maps-1/1.0/conf/spatial-subsetting", ["render"]],
|
|
55
|
+
["maps-1/1.0/conf/png", ["render"]],
|
|
56
|
+
["maps-1/1.0/conf/jpeg", ["render"]],
|
|
57
|
+
["styles-1/1.0/conf/core", ["render"]],
|
|
58
|
+
];
|
|
59
|
+
const PROCESS_CONFORMANCE_MAP = [
|
|
60
|
+
["processes-1/1.0/conf/core", ["processes"]],
|
|
61
|
+
["processes-1/1.0/conf/ogc-process-description", ["processes"]],
|
|
62
|
+
["processes-1/1.0/conf/job-list", ["processes"]],
|
|
63
|
+
["processes-1/1.0/conf/dismiss", ["processes"]],
|
|
64
|
+
["processes-1/1.0/conf/callback", ["processes"]],
|
|
65
|
+
];
|
|
66
|
+
const RECORDS_CONFORMANCE_MAP = [
|
|
67
|
+
["ogcapi-records-1/1.0/conf/records-api", ["query", "queryObjectIds"]],
|
|
68
|
+
["ogcapi-records-1/1.0/conf/searchable-catalog", ["query", "queryObjectIds"]],
|
|
69
|
+
["ogcapi-records-1/1.0/conf/record-core-query-parameters", ["query"]],
|
|
70
|
+
["ogcapi-records-1/1.0/conf/cql-filter", ["query"]],
|
|
71
|
+
["ogcapi-records-1/1.0/conf/searchable-catalog-filtering", ["query"]],
|
|
72
|
+
["ogcapi-records-1/1.0/conf/sorting", ["query"]],
|
|
73
|
+
["ogcapi-records-1/1.0/conf/searchable-catalog/sorting", ["query"]],
|
|
74
|
+
["ogcapi-records-1/1.0/conf/json", []],
|
|
75
|
+
["ogcapi-records-1/1.0/conf/html", []],
|
|
76
|
+
["ogcapi-records-1/1.0/conf/oas30", []],
|
|
77
|
+
];
|
|
78
|
+
const STAC_CONFORMANCE_MAP = [
|
|
79
|
+
["stac-spec.org", ["query", "queryObjectIds"]],
|
|
80
|
+
["api.stacspec.org/v1.0.0/core", ["query"]],
|
|
81
|
+
["api.stacspec.org/v1.0.0/item-search", ["query", "queryObjectIds"]],
|
|
82
|
+
["api.stacspec.org/v1.0.0/ogcapi-features", ["query", "queryObjectIds"]],
|
|
83
|
+
["api.stacspec.org/v1.0.0/collections", []],
|
|
84
|
+
// STAC's `filter` extension is CQL2 query-side filtering, not server-side
|
|
85
|
+
// aggregation. The STAC source adapter has no aggregation implementation,
|
|
86
|
+
// so this conformance class must not advertise `queryAggregate`.
|
|
87
|
+
["api.stacspec.org/v1.0.0/filter", []],
|
|
88
|
+
];
|
|
89
|
+
const CONFORMANCE_TABLES = {
|
|
90
|
+
"ogc-features": FEATURE_CONFORMANCE_MAP,
|
|
91
|
+
"ogc-tiles": TILE_CONFORMANCE_MAP,
|
|
92
|
+
"ogc-maps": MAP_CONFORMANCE_MAP,
|
|
93
|
+
"ogc-processes": PROCESS_CONFORMANCE_MAP,
|
|
94
|
+
"ogc-records": RECORDS_CONFORMANCE_MAP,
|
|
95
|
+
stac: STAC_CONFORMANCE_MAP,
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Translate the server-advertised `conformsTo[]` list into a canonical
|
|
99
|
+
* `Capabilities` set for the given protocol. Conformance class
|
|
100
|
+
* identifiers are matched against substring keys so version drift
|
|
101
|
+
* (`features-1` → `features-3`) does not silently drop capabilities.
|
|
102
|
+
*
|
|
103
|
+
* Callers can intersect the result with their own narrower set when
|
|
104
|
+
* they want to gate optional features even if the server claims them.
|
|
105
|
+
*/
|
|
106
|
+
export function negotiateOgcCapabilities(protocol, conformance) {
|
|
107
|
+
const table = CONFORMANCE_TABLES[protocol];
|
|
108
|
+
const advertised = conformance?.conformsTo ?? [];
|
|
109
|
+
const out = new Set();
|
|
110
|
+
for (const uri of advertised) {
|
|
111
|
+
if (typeof uri !== "string")
|
|
112
|
+
continue;
|
|
113
|
+
for (const [needle, caps] of table) {
|
|
114
|
+
if (uri.includes(needle)) {
|
|
115
|
+
for (const cap of caps)
|
|
116
|
+
out.add(cap);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return capabilities(Array.from(out));
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* `true` when the conformance response advertises a class containing
|
|
124
|
+
* the given substring. Lets callers gate features on a specific
|
|
125
|
+
* extension without exposing the URI as a primary SDK type.
|
|
126
|
+
*/
|
|
127
|
+
export function hasOgcConformanceClass(conformance, classSubstring) {
|
|
128
|
+
const advertised = conformance?.conformsTo ?? [];
|
|
129
|
+
for (const uri of advertised) {
|
|
130
|
+
if (typeof uri === "string" && uri.includes(classSubstring))
|
|
131
|
+
return true;
|
|
132
|
+
}
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OGC API endpoint-layout resolution.
|
|
3
|
+
*
|
|
4
|
+
* The SDK's headline claim is one typed contract against ANY standards
|
|
5
|
+
* server. For OGC API Features / Records that means the client must not
|
|
6
|
+
* assume a fixed path prefix: a Honua Server mounts the facade at
|
|
7
|
+
* `/ogc/features/...`, but pygeoapi, ldproxy, and GeoServer's OGC API each
|
|
8
|
+
* serve the landing page at their own root and advertise their collections
|
|
9
|
+
* and conformance URLs through the landing page's `links` array
|
|
10
|
+
* (OGC API - Common Requirement 5).
|
|
11
|
+
*
|
|
12
|
+
* This module produces an {@link OgcEndpointLayout} — the concrete set of
|
|
13
|
+
* resource paths a Features client addresses:
|
|
14
|
+
*
|
|
15
|
+
* - {@link honuaFacadeFeaturesLayout} is the fixed facade layout and the
|
|
16
|
+
* default. It performs no network round-trips, so existing callers see
|
|
17
|
+
* zero behaviour change.
|
|
18
|
+
* - {@link resolveOgcEndpointLayout} discovers the layout from the landing
|
|
19
|
+
* page (`ogc-api` mode) or auto-detects the facade first and falls back
|
|
20
|
+
* to discovery (`auto` mode).
|
|
21
|
+
*
|
|
22
|
+
* Per OGC API - Features Requirement 17 the items resource is always at
|
|
23
|
+
* `{collections}/{collectionId}/items`, so a single landing-page fetch is
|
|
24
|
+
* enough to derive every per-collection path from the discovered
|
|
25
|
+
* collections URL.
|
|
26
|
+
*
|
|
27
|
+
* @module
|
|
28
|
+
*/
|
|
29
|
+
import type { HonuaProtocolTransport } from "./protocol-transport.js";
|
|
30
|
+
import type { OgcEndpointLayout } from "./types.js";
|
|
31
|
+
/** Discovery mode carried on a source locator. */
|
|
32
|
+
export type OgcApiLayoutMode = "honua-facade" | "ogc-api" | "auto";
|
|
33
|
+
/**
|
|
34
|
+
* The Honua Server facade layout (`/ogc/features/...`). No network access;
|
|
35
|
+
* this is the default fast path and preserves the pre-existing behaviour of
|
|
36
|
+
* every OGC Features caller that points at a Honua Server.
|
|
37
|
+
*/
|
|
38
|
+
export declare function honuaFacadeFeaturesLayout(base?: string): OgcEndpointLayout;
|
|
39
|
+
/**
|
|
40
|
+
* A raw OGC API layout built from a discovered (or configured) landing +
|
|
41
|
+
* collections + conformance URL triple. Per-collection paths are templated
|
|
42
|
+
* off the collections URL per OGC API - Features Requirement 17.
|
|
43
|
+
*/
|
|
44
|
+
export declare function ogcApiFeaturesLayout(options: {
|
|
45
|
+
landingUrl: string;
|
|
46
|
+
collectionsUrl: string;
|
|
47
|
+
conformanceUrl: string;
|
|
48
|
+
}): OgcEndpointLayout;
|
|
49
|
+
/**
|
|
50
|
+
* Find the first link whose `rel` matches one of `rels` (exact or as the
|
|
51
|
+
* final path segment of a full OGC relation URI, e.g.
|
|
52
|
+
* `http://www.opengis.net/def/rel/ogc/1.0/data`).
|
|
53
|
+
*/
|
|
54
|
+
export declare function findOgcLink(links: ReadonlyArray<{
|
|
55
|
+
href?: string;
|
|
56
|
+
rel?: string;
|
|
57
|
+
}> | undefined, ...rels: string[]): string | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* Resolve the endpoint layout for the requested `mode`:
|
|
60
|
+
*
|
|
61
|
+
* - `honua-facade` (default) — the fixed facade layout, no round-trips.
|
|
62
|
+
* - `ogc-api` — discover from the landing page at the client baseUrl.
|
|
63
|
+
* - `auto` — probe the facade landing; use it when valid, otherwise
|
|
64
|
+
* discover from the root.
|
|
65
|
+
*
|
|
66
|
+
* Discovery failures surface as {@link HonuaCapabilityNotSupportedError}
|
|
67
|
+
* (per the SDK convention of throwing rather than returning empty data).
|
|
68
|
+
*/
|
|
69
|
+
export declare function resolveOgcEndpointLayout(transport: HonuaProtocolTransport, mode?: OgcApiLayoutMode): Promise<OgcEndpointLayout>;
|
|
70
|
+
//# sourceMappingURL=ogc-endpoint-layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ogc-endpoint-layout.d.ts","sourceRoot":"","sources":["../../../src/core/ogc-endpoint-layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAA2B,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE7E,kDAAkD;AAClD,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,SAAS,GAAG,MAAM,CAAC;AAcnE;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,GAAE,MAA4B,GAAG,iBAAiB,CAY/F;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,iBAAiB,CAiBpB;AAgBD;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,aAAa,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,SAAS,EACjE,GAAG,IAAI,EAAE,MAAM,EAAE,GAChB,MAAM,GAAG,SAAS,CAWpB;AAyCD;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,sBAAsB,EACjC,IAAI,GAAE,gBAAiC,GACtC,OAAO,CAAC,iBAAiB,CAAC,CAe5B"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OGC API endpoint-layout resolution.
|
|
3
|
+
*
|
|
4
|
+
* The SDK's headline claim is one typed contract against ANY standards
|
|
5
|
+
* server. For OGC API Features / Records that means the client must not
|
|
6
|
+
* assume a fixed path prefix: a Honua Server mounts the facade at
|
|
7
|
+
* `/ogc/features/...`, but pygeoapi, ldproxy, and GeoServer's OGC API each
|
|
8
|
+
* serve the landing page at their own root and advertise their collections
|
|
9
|
+
* and conformance URLs through the landing page's `links` array
|
|
10
|
+
* (OGC API - Common Requirement 5).
|
|
11
|
+
*
|
|
12
|
+
* This module produces an {@link OgcEndpointLayout} — the concrete set of
|
|
13
|
+
* resource paths a Features client addresses:
|
|
14
|
+
*
|
|
15
|
+
* - {@link honuaFacadeFeaturesLayout} is the fixed facade layout and the
|
|
16
|
+
* default. It performs no network round-trips, so existing callers see
|
|
17
|
+
* zero behaviour change.
|
|
18
|
+
* - {@link resolveOgcEndpointLayout} discovers the layout from the landing
|
|
19
|
+
* page (`ogc-api` mode) or auto-detects the facade first and falls back
|
|
20
|
+
* to discovery (`auto` mode).
|
|
21
|
+
*
|
|
22
|
+
* Per OGC API - Features Requirement 17 the items resource is always at
|
|
23
|
+
* `{collections}/{collectionId}/items`, so a single landing-page fetch is
|
|
24
|
+
* enough to derive every per-collection path from the discovered
|
|
25
|
+
* collections URL.
|
|
26
|
+
*
|
|
27
|
+
* @module
|
|
28
|
+
*/
|
|
29
|
+
import { HonuaCapabilityNotSupportedError } from "./errors.js";
|
|
30
|
+
const DEFAULT_FACADE_BASE = "/ogc/features";
|
|
31
|
+
function enc(id) {
|
|
32
|
+
return encodeURIComponent(String(id));
|
|
33
|
+
}
|
|
34
|
+
function trimTrailingSlash(url) {
|
|
35
|
+
let end = url.length;
|
|
36
|
+
while (end > 0 && url.charCodeAt(end - 1) === 0x2f)
|
|
37
|
+
end--;
|
|
38
|
+
return url.slice(0, end);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The Honua Server facade layout (`/ogc/features/...`). No network access;
|
|
42
|
+
* this is the default fast path and preserves the pre-existing behaviour of
|
|
43
|
+
* every OGC Features caller that points at a Honua Server.
|
|
44
|
+
*/
|
|
45
|
+
export function honuaFacadeFeaturesLayout(base = DEFAULT_FACADE_BASE) {
|
|
46
|
+
const root = trimTrailingSlash(base) || DEFAULT_FACADE_BASE;
|
|
47
|
+
return {
|
|
48
|
+
mode: "honua-facade",
|
|
49
|
+
landing: () => root,
|
|
50
|
+
conformance: () => `${root}/conformance`,
|
|
51
|
+
collections: () => `${root}/collections`,
|
|
52
|
+
collection: (id) => `${root}/collections/${enc(id)}`,
|
|
53
|
+
queryables: (id) => `${root}/collections/${enc(id)}/queryables`,
|
|
54
|
+
items: (id) => `${root}/collections/${enc(id)}/items`,
|
|
55
|
+
item: (id, featureId) => `${root}/collections/${enc(id)}/items/${enc(featureId)}`,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* A raw OGC API layout built from a discovered (or configured) landing +
|
|
60
|
+
* collections + conformance URL triple. Per-collection paths are templated
|
|
61
|
+
* off the collections URL per OGC API - Features Requirement 17.
|
|
62
|
+
*/
|
|
63
|
+
export function ogcApiFeaturesLayout(options) {
|
|
64
|
+
const landing = trimTrailingSlash(options.landingUrl);
|
|
65
|
+
const collections = trimTrailingSlash(options.collectionsUrl);
|
|
66
|
+
const conformance = trimTrailingSlash(options.conformanceUrl);
|
|
67
|
+
return {
|
|
68
|
+
mode: "ogc-api",
|
|
69
|
+
// A bare landing path can be empty (the client baseUrl is the landing
|
|
70
|
+
// root); the wire layer still appends the `f=` param, producing
|
|
71
|
+
// `${baseUrl}?f=json`.
|
|
72
|
+
landing: () => landing,
|
|
73
|
+
conformance: () => conformance,
|
|
74
|
+
collections: () => collections,
|
|
75
|
+
collection: (id) => `${collections}/${enc(id)}`,
|
|
76
|
+
queryables: (id) => `${collections}/${enc(id)}/queryables`,
|
|
77
|
+
items: (id) => `${collections}/${enc(id)}/items`,
|
|
78
|
+
item: (id, featureId) => `${collections}/${enc(id)}/items/${enc(featureId)}`,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Resolve a link href to an absolute URL against a base. Absolute hrefs are
|
|
83
|
+
* returned unchanged; relative hrefs resolve against `${baseUrl}/`.
|
|
84
|
+
*/
|
|
85
|
+
function absolutize(href, baseUrl) {
|
|
86
|
+
if (/^https?:\/\//i.test(href))
|
|
87
|
+
return href;
|
|
88
|
+
const root = baseUrl.endsWith("/") ? baseUrl : `${baseUrl}/`;
|
|
89
|
+
try {
|
|
90
|
+
return new URL(href, root).toString();
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
return href;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Find the first link whose `rel` matches one of `rels` (exact or as the
|
|
98
|
+
* final path segment of a full OGC relation URI, e.g.
|
|
99
|
+
* `http://www.opengis.net/def/rel/ogc/1.0/data`).
|
|
100
|
+
*/
|
|
101
|
+
export function findOgcLink(links, ...rels) {
|
|
102
|
+
if (!links)
|
|
103
|
+
return undefined;
|
|
104
|
+
const wanted = new Set(rels.map((r) => r.toLowerCase()));
|
|
105
|
+
for (const link of links) {
|
|
106
|
+
if (typeof link.href !== "string" || link.href.length === 0)
|
|
107
|
+
continue;
|
|
108
|
+
const rel = (link.rel ?? "").toLowerCase();
|
|
109
|
+
if (wanted.has(rel))
|
|
110
|
+
return link.href;
|
|
111
|
+
const tail = rel.slice(rel.lastIndexOf("/") + 1);
|
|
112
|
+
if (tail && wanted.has(tail))
|
|
113
|
+
return link.href;
|
|
114
|
+
}
|
|
115
|
+
return undefined;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Discover an OGC API layout from the landing page. The client `baseUrl`
|
|
119
|
+
* IS the landing page root; the collections and conformance URLs are read
|
|
120
|
+
* from the landing `links` (falling back to the mandated relative
|
|
121
|
+
* `collections` / `conformance` sub-paths when a server omits them).
|
|
122
|
+
*/
|
|
123
|
+
async function discoverOgcApiLayout(transport) {
|
|
124
|
+
const landing = await transport.requestCachedMetadataJson("ogc-features:layout:landing", "?f=json", {});
|
|
125
|
+
const baseUrl = trimTrailingSlash(transport.baseUrl);
|
|
126
|
+
const links = landing?.links;
|
|
127
|
+
const dataHref = findOgcLink(links, "data");
|
|
128
|
+
const conformanceHref = findOgcLink(links, "conformance");
|
|
129
|
+
const collectionsUrl = dataHref ? absolutize(dataHref, baseUrl) : `${baseUrl}/collections`;
|
|
130
|
+
const conformanceUrl = conformanceHref ? absolutize(conformanceHref, baseUrl) : `${baseUrl}/conformance`;
|
|
131
|
+
return ogcApiFeaturesLayout({ landingUrl: baseUrl, collectionsUrl, conformanceUrl });
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Probe whether the Honua facade landing (`/ogc/features`) exists. Used by
|
|
135
|
+
* `auto` mode: a valid OGC landing document there confirms the facade
|
|
136
|
+
* fast path; anything else falls through to landing-page discovery.
|
|
137
|
+
*/
|
|
138
|
+
async function facadeLandingLooksValid(transport) {
|
|
139
|
+
try {
|
|
140
|
+
const landing = await transport.requestCachedMetadataJson("ogc-features:layout:facade-probe", `${DEFAULT_FACADE_BASE}?f=json`, {});
|
|
141
|
+
return Array.isArray(landing?.links);
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Resolve the endpoint layout for the requested `mode`:
|
|
149
|
+
*
|
|
150
|
+
* - `honua-facade` (default) — the fixed facade layout, no round-trips.
|
|
151
|
+
* - `ogc-api` — discover from the landing page at the client baseUrl.
|
|
152
|
+
* - `auto` — probe the facade landing; use it when valid, otherwise
|
|
153
|
+
* discover from the root.
|
|
154
|
+
*
|
|
155
|
+
* Discovery failures surface as {@link HonuaCapabilityNotSupportedError}
|
|
156
|
+
* (per the SDK convention of throwing rather than returning empty data).
|
|
157
|
+
*/
|
|
158
|
+
export async function resolveOgcEndpointLayout(transport, mode = "honua-facade") {
|
|
159
|
+
if (mode === "honua-facade")
|
|
160
|
+
return honuaFacadeFeaturesLayout();
|
|
161
|
+
if (mode === "auto") {
|
|
162
|
+
if (await facadeLandingLooksValid(transport))
|
|
163
|
+
return honuaFacadeFeaturesLayout();
|
|
164
|
+
}
|
|
165
|
+
try {
|
|
166
|
+
return await discoverOgcApiLayout(transport);
|
|
167
|
+
}
|
|
168
|
+
catch (err) {
|
|
169
|
+
if (err instanceof HonuaCapabilityNotSupportedError)
|
|
170
|
+
throw err;
|
|
171
|
+
throw new HonuaCapabilityNotSupportedError("query", "ogc-features", `ogc-api layout discovery failed for ${transport.baseUrl}: ${err instanceof Error ? err.message : String(err)}`);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OGC API Features wire methods. Concrete URL-building, param
|
|
3
|
+
* serialization, and request shaping for the OGC API Features endpoints,
|
|
4
|
+
* invoked against an injected {@link HonuaProtocolTransport}. The typed
|
|
5
|
+
* `HonuaOgcFeatures` surface (in `surfaces.ts`) and the `HonuaClient`
|
|
6
|
+
* facade both delegate here.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
import type { HonuaProtocolTransport } from "./protocol-transport.js";
|
|
11
|
+
import type { HonuaOgcCollectionMetadata, HonuaOgcCollectionsResponse, HonuaOgcConformanceResponse, HonuaOgcFeatureCollectionResponse, HonuaOgcFeatureResponse, HonuaOgcLandingResponse, HonuaOgcQueryablesResponse, OgcCollectionRequest, OgcCreateItemRequest, OgcDeleteItemRequest, OgcItemRequest, OgcItemsRequest, OgcMetadataRequest, OgcPatchItemRequest, OgcReplaceItemRequest } from "./types.js";
|
|
12
|
+
export declare function getOgcFeaturesLanding(transport: HonuaProtocolTransport, request?: OgcMetadataRequest): Promise<HonuaOgcLandingResponse>;
|
|
13
|
+
export declare function getOgcFeaturesConformance(transport: HonuaProtocolTransport, request?: OgcMetadataRequest): Promise<HonuaOgcConformanceResponse>;
|
|
14
|
+
export declare function listOgcCollections(transport: HonuaProtocolTransport, request?: OgcMetadataRequest): Promise<HonuaOgcCollectionsResponse>;
|
|
15
|
+
export declare function getOgcCollection(transport: HonuaProtocolTransport, request: OgcCollectionRequest): Promise<HonuaOgcCollectionMetadata>;
|
|
16
|
+
export declare function getOgcQueryables(transport: HonuaProtocolTransport, request: OgcCollectionRequest): Promise<HonuaOgcQueryablesResponse>;
|
|
17
|
+
export declare function listOgcItems(transport: HonuaProtocolTransport, request: OgcItemsRequest): Promise<HonuaOgcFeatureCollectionResponse>;
|
|
18
|
+
export declare function getOgcItem(transport: HonuaProtocolTransport, request: OgcItemRequest): Promise<HonuaOgcFeatureResponse>;
|
|
19
|
+
export declare function createOgcItem(transport: HonuaProtocolTransport, request: OgcCreateItemRequest): Promise<HonuaOgcFeatureResponse>;
|
|
20
|
+
export declare function replaceOgcItem(transport: HonuaProtocolTransport, request: OgcReplaceItemRequest): Promise<HonuaOgcFeatureResponse>;
|
|
21
|
+
export declare function patchOgcItem(transport: HonuaProtocolTransport, request: OgcPatchItemRequest): Promise<HonuaOgcFeatureResponse>;
|
|
22
|
+
export declare function deleteOgcItem(transport: HonuaProtocolTransport, request: OgcDeleteItemRequest): Promise<void>;
|
|
23
|
+
//# sourceMappingURL=ogc-features.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ogc-features.d.ts","sourceRoot":"","sources":["../../../src/core/ogc-features.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EACV,0BAA0B,EAC1B,2BAA2B,EAC3B,2BAA2B,EAC3B,iCAAiC,EACjC,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EAEpB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAoBpB,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,sBAAsB,EACjC,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,uBAAuB,CAAC,CAQlC;AAED,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,sBAAsB,EACjC,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,2BAA2B,CAAC,CAQtC;AAED,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,sBAAsB,EACjC,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,2BAA2B,CAAC,CAQtC;AAED,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,sBAAsB,EACjC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,0BAA0B,CAAC,CAQrC;AAED,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,sBAAsB,EACjC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,0BAA0B,CAAC,CAQrC;AAED,wBAAsB,YAAY,CAChC,SAAS,EAAE,sBAAsB,EACjC,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,iCAAiC,CAAC,CAoC5C;AAED,wBAAsB,UAAU,CAC9B,SAAS,EAAE,sBAAsB,EACjC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,uBAAuB,CAAC,CAYlC;AAED,wBAAsB,aAAa,CACjC,SAAS,EAAE,sBAAsB,EACjC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,uBAAuB,CAAC,CAYlC;AAED,wBAAsB,cAAc,CAClC,SAAS,EAAE,sBAAsB,EACjC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,uBAAuB,CAAC,CAelC;AAED,wBAAsB,YAAY,CAChC,SAAS,EAAE,sBAAsB,EACjC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,uBAAuB,CAAC,CAelC;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,sBAAsB,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAOnH"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OGC API Features wire methods. Concrete URL-building, param
|
|
3
|
+
* serialization, and request shaping for the OGC API Features endpoints,
|
|
4
|
+
* invoked against an injected {@link HonuaProtocolTransport}. The typed
|
|
5
|
+
* `HonuaOgcFeatures` surface (in `surfaces.ts`) and the `HonuaClient`
|
|
6
|
+
* facade both delegate here.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
import { honuaFacadeFeaturesLayout } from "./ogc-endpoint-layout.js";
|
|
11
|
+
import { createOgcMetadataParams, mergeHeaders, normalizeCsv } from "./wire-shared.js";
|
|
12
|
+
/**
|
|
13
|
+
* The endpoint layout to build paths against. Defaults to the Honua facade
|
|
14
|
+
* fast path (`/ogc/features/...`); backend-agnostic callers thread a
|
|
15
|
+
* spec-discovered layout onto `request.layout`.
|
|
16
|
+
*/
|
|
17
|
+
function layoutOf(request) {
|
|
18
|
+
return request.layout ?? honuaFacadeFeaturesLayout();
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* A layout key fragment for cache keys so the facade and a discovered raw
|
|
22
|
+
* layout never collide in the metadata cache.
|
|
23
|
+
*/
|
|
24
|
+
function layoutKey(layout) {
|
|
25
|
+
return layout.mode === "honua-facade" ? "facade" : layout.collections();
|
|
26
|
+
}
|
|
27
|
+
export async function getOgcFeaturesLanding(transport, request = {}) {
|
|
28
|
+
const params = createOgcMetadataParams(request);
|
|
29
|
+
const layout = layoutOf(request);
|
|
30
|
+
return transport.requestCachedMetadataJson(`ogc-features:landing:${layoutKey(layout)}:${params.toString()}`, `${layout.landing()}?${params.toString()}`, request);
|
|
31
|
+
}
|
|
32
|
+
export async function getOgcFeaturesConformance(transport, request = {}) {
|
|
33
|
+
const params = createOgcMetadataParams(request);
|
|
34
|
+
const layout = layoutOf(request);
|
|
35
|
+
return transport.requestCachedMetadataJson(`ogc-features:conformance:${layoutKey(layout)}:${params.toString()}`, `${layout.conformance()}?${params.toString()}`, request);
|
|
36
|
+
}
|
|
37
|
+
export async function listOgcCollections(transport, request = {}) {
|
|
38
|
+
const params = createOgcMetadataParams(request);
|
|
39
|
+
const layout = layoutOf(request);
|
|
40
|
+
return transport.requestCachedMetadataJson(`ogc-features:collections:${layoutKey(layout)}:${params.toString()}`, `${layout.collections()}?${params.toString()}`, request);
|
|
41
|
+
}
|
|
42
|
+
export async function getOgcCollection(transport, request) {
|
|
43
|
+
const params = createOgcMetadataParams(request);
|
|
44
|
+
const layout = layoutOf(request);
|
|
45
|
+
return transport.requestCachedMetadataJson(`ogc-features:collection:${layoutKey(layout)}:${request.collectionId}:${params.toString()}`, `${layout.collection(request.collectionId)}?${params.toString()}`, request);
|
|
46
|
+
}
|
|
47
|
+
export async function getOgcQueryables(transport, request) {
|
|
48
|
+
const params = createOgcMetadataParams(request);
|
|
49
|
+
const layout = layoutOf(request);
|
|
50
|
+
return transport.requestCachedMetadataJson(`ogc-features:queryables:${layoutKey(layout)}:${request.collectionId}:${params.toString()}`, `${layout.queryables(request.collectionId)}?${params.toString()}`, request);
|
|
51
|
+
}
|
|
52
|
+
export async function listOgcItems(transport, request) {
|
|
53
|
+
const params = createOgcMetadataParams(request);
|
|
54
|
+
if (request.limit !== undefined) {
|
|
55
|
+
params.set("limit", String(request.limit));
|
|
56
|
+
}
|
|
57
|
+
if (request.offset !== undefined) {
|
|
58
|
+
params.set("offset", String(request.offset));
|
|
59
|
+
}
|
|
60
|
+
if (request.bbox !== undefined) {
|
|
61
|
+
params.set("bbox", request.bbox);
|
|
62
|
+
}
|
|
63
|
+
if (request.datetime !== undefined) {
|
|
64
|
+
params.set("datetime", request.datetime);
|
|
65
|
+
}
|
|
66
|
+
if (request.filter !== undefined) {
|
|
67
|
+
params.set("filter", request.filter);
|
|
68
|
+
}
|
|
69
|
+
if (request.ids !== undefined) {
|
|
70
|
+
params.set("ids", normalizeCsv(request.ids));
|
|
71
|
+
}
|
|
72
|
+
if (request.properties !== undefined) {
|
|
73
|
+
params.set("properties", normalizeCsv(request.properties));
|
|
74
|
+
}
|
|
75
|
+
if (request.sortby !== undefined) {
|
|
76
|
+
params.set("sortby", request.sortby);
|
|
77
|
+
}
|
|
78
|
+
if (request.crs !== undefined) {
|
|
79
|
+
params.set("crs", request.crs);
|
|
80
|
+
}
|
|
81
|
+
const path = layoutOf(request).items(request.collectionId);
|
|
82
|
+
return transport.requestJson("GET", `${path}?${params.toString()}`, undefined, request.signal);
|
|
83
|
+
}
|
|
84
|
+
export async function getOgcItem(transport, request) {
|
|
85
|
+
const params = createOgcMetadataParams(request);
|
|
86
|
+
if (request.crs !== undefined) {
|
|
87
|
+
params.set("crs", request.crs);
|
|
88
|
+
}
|
|
89
|
+
const path = layoutOf(request).item(request.collectionId, request.featureId);
|
|
90
|
+
return transport.requestJson("GET", `${path}?${params.toString()}`, undefined, request.signal);
|
|
91
|
+
}
|
|
92
|
+
export async function createOgcItem(transport, request) {
|
|
93
|
+
const params = createOgcMetadataParams(request);
|
|
94
|
+
const path = layoutOf(request).items(request.collectionId);
|
|
95
|
+
return transport.requestJson("POST", `${path}?${params.toString()}`, {
|
|
96
|
+
headers: mergeHeaders({ "Content-Type": "application/geo+json" }, request.headers),
|
|
97
|
+
body: JSON.stringify(request.feature),
|
|
98
|
+
}, request.signal);
|
|
99
|
+
}
|
|
100
|
+
export async function replaceOgcItem(transport, request) {
|
|
101
|
+
const params = createOgcMetadataParams(request);
|
|
102
|
+
if (request.crs !== undefined) {
|
|
103
|
+
params.set("crs", request.crs);
|
|
104
|
+
}
|
|
105
|
+
const path = layoutOf(request).item(request.collectionId, request.featureId);
|
|
106
|
+
return transport.requestJson("PUT", `${path}?${params.toString()}`, {
|
|
107
|
+
headers: mergeHeaders({ "Content-Type": "application/geo+json" }, request.headers),
|
|
108
|
+
body: JSON.stringify(request.feature),
|
|
109
|
+
}, request.signal);
|
|
110
|
+
}
|
|
111
|
+
export async function patchOgcItem(transport, request) {
|
|
112
|
+
const params = createOgcMetadataParams(request);
|
|
113
|
+
if (request.crs !== undefined) {
|
|
114
|
+
params.set("crs", request.crs);
|
|
115
|
+
}
|
|
116
|
+
const path = layoutOf(request).item(request.collectionId, request.featureId);
|
|
117
|
+
return transport.requestJson("PATCH", `${path}?${params.toString()}`, {
|
|
118
|
+
headers: mergeHeaders({ "Content-Type": "application/merge-patch+json" }, request.headers),
|
|
119
|
+
body: JSON.stringify(request.patch),
|
|
120
|
+
}, request.signal);
|
|
121
|
+
}
|
|
122
|
+
export async function deleteOgcItem(transport, request) {
|
|
123
|
+
const params = createOgcMetadataParams(request);
|
|
124
|
+
if (request.crs !== undefined) {
|
|
125
|
+
params.set("crs", request.crs);
|
|
126
|
+
}
|
|
127
|
+
const path = layoutOf(request).item(request.collectionId, request.featureId);
|
|
128
|
+
await transport.requestJson("DELETE", `${path}?${params.toString()}`, undefined, request.signal);
|
|
129
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OGC API Maps surface. Server-rendered map images at the dataset or
|
|
3
|
+
* collection level, with optional styled-output access. The runtime
|
|
4
|
+
* deliberately exposes a thin envelope (`width`, `height`, `bbox`,
|
|
5
|
+
* `crs`, `format`, optional `filter` / `collections`) — extension
|
|
6
|
+
* parameters live on `extraParams`.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
import type { HonuaClient } from "./client.js";
|
|
11
|
+
import type { HonuaProtocolTransport } from "./protocol-transport.js";
|
|
12
|
+
import type { HonuaOgcConformanceResponse, HonuaOgcLandingResponse, HonuaOgcMapImageResponse, OgcMapImageRequest, OgcMetadataRequest } from "./types.js";
|
|
13
|
+
export interface HonuaOgcMapsOptions {
|
|
14
|
+
client: HonuaClient;
|
|
15
|
+
}
|
|
16
|
+
export interface HonuaOgcCollectionMapOptions {
|
|
17
|
+
client: HonuaClient;
|
|
18
|
+
collectionId: string | number;
|
|
19
|
+
styleId?: string;
|
|
20
|
+
}
|
|
21
|
+
export type HonuaOgcCollectionMapImageRequest = Omit<OgcMapImageRequest, "collectionId" | "styleId"> & {
|
|
22
|
+
styleId?: string;
|
|
23
|
+
};
|
|
24
|
+
/** Top-level OGC API Maps handle. */
|
|
25
|
+
export declare class HonuaOgcMaps {
|
|
26
|
+
readonly client: HonuaClient;
|
|
27
|
+
constructor(options: HonuaOgcMapsOptions);
|
|
28
|
+
collection(collectionId: string | number, styleId?: string): HonuaOgcCollectionMap;
|
|
29
|
+
landing(request?: OgcMetadataRequest): Promise<HonuaOgcLandingResponse>;
|
|
30
|
+
conformance(request?: OgcMetadataRequest): Promise<HonuaOgcConformanceResponse>;
|
|
31
|
+
/** Render a dataset-level map (across one or more collections). */
|
|
32
|
+
map(request?: OgcMapImageRequest): Promise<HonuaOgcMapImageResponse>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Bound handle for a collection-level (and optionally styled) map. Drops
|
|
36
|
+
* the routing-discriminator fields from per-call requests.
|
|
37
|
+
*/
|
|
38
|
+
export declare class HonuaOgcCollectionMap {
|
|
39
|
+
readonly client: HonuaClient;
|
|
40
|
+
readonly collectionId: string | number;
|
|
41
|
+
readonly styleId: string | undefined;
|
|
42
|
+
constructor(options: HonuaOgcCollectionMapOptions);
|
|
43
|
+
map(request?: HonuaOgcCollectionMapImageRequest): Promise<HonuaOgcMapImageResponse>;
|
|
44
|
+
}
|
|
45
|
+
export declare function createHonuaOgcMaps(client: HonuaClient): HonuaOgcMaps;
|
|
46
|
+
export declare function getOgcMapsLanding(transport: HonuaProtocolTransport, request?: OgcMetadataRequest): Promise<HonuaOgcLandingResponse>;
|
|
47
|
+
export declare function getOgcMapsConformance(transport: HonuaProtocolTransport, request?: OgcMetadataRequest): Promise<HonuaOgcConformanceResponse>;
|
|
48
|
+
export declare function getOgcMapImage(transport: HonuaProtocolTransport, request: OgcMapImageRequest): Promise<HonuaOgcMapImageResponse>;
|
|
49
|
+
//# sourceMappingURL=ogc-maps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ogc-maps.d.ts","sourceRoot":"","sources":["../../../src/core/ogc-maps.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EACV,2BAA2B,EAC3B,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,iCAAiC,GAAG,IAAI,CAAC,kBAAkB,EAAE,cAAc,GAAG,SAAS,CAAC,GAAG;IACrG,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,qCAAqC;AACrC,qBAAa,YAAY;IACvB,SAAgB,MAAM,EAAE,WAAW,CAAC;gBAEjB,OAAO,EAAE,mBAAmB;IAIxC,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,qBAAqB;IAI5E,OAAO,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAI3E,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAIhG,mEAAmE;IACtD,GAAG,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAGtF;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,SAAgB,MAAM,EAAE,WAAW,CAAC;IACpC,SAAgB,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9C,SAAgB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;gBAEzB,OAAO,EAAE,4BAA4B;IAM3C,GAAG,CAAC,OAAO,GAAE,iCAAsC,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAOrG;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,CAEpE;AAID,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,sBAAsB,EACjC,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,uBAAuB,CAAC,CAOlC;AAED,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,sBAAsB,EACjC,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,2BAA2B,CAAC,CAOtC;AAED,wBAAsB,cAAc,CAClC,SAAS,EAAE,sBAAsB,EACjC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,wBAAwB,CAAC,CASnC"}
|