@honua/app-platform 0.1.2-beta.0 → 0.1.7-beta.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/app/index.d.ts.map +1 -1
- package/app/index.js +4 -0
- package/collaboration/client.d.ts.map +1 -1
- package/connect-url-safety.d.ts +53 -0
- package/connect-url-safety.js +189 -0
- package/contract/discovery.d.ts +34 -0
- package/contract/discovery.d.ts.map +1 -1
- package/contract/index.d.ts +7 -5
- package/contract/index.d.ts.map +1 -1
- package/contract/index.js +3 -2
- package/contract/pmtiles.d.ts +10 -1
- package/contract/pmtiles.d.ts.map +1 -1
- package/contract/pmtiles.js +10 -2
- package/contract/protocol-module.d.ts +84 -9
- package/contract/protocol-module.d.ts.map +1 -1
- package/contract/query-filter-fes.d.ts +18 -0
- package/contract/query-filter-fes.d.ts.map +1 -0
- package/contract/query-filter-fes.js +122 -0
- package/contract/query-filter.d.ts +300 -0
- package/contract/query-filter.d.ts.map +1 -0
- package/contract/query-filter.js +883 -0
- package/contract/schema.d.ts +12 -0
- package/contract/schema.d.ts.map +1 -1
- package/contract/schema.js +34 -0
- package/contract/source-capability-support.d.ts.map +1 -1
- package/contract/source-capability-support.js +15 -3
- package/contract/source.d.ts +45 -25
- package/contract/source.d.ts.map +1 -1
- package/contract/source.js +719 -479
- package/contract/types.d.ts +88 -19
- package/contract/types.d.ts.map +1 -1
- package/contract/types.js +4 -0
- package/contract/widget-source.d.ts.map +1 -1
- package/controls/basemap-switcher.d.ts +19 -11
- package/controls/basemap-switcher.d.ts.map +1 -1
- package/controls/basemap-switcher.js +58 -25
- package/controls/catalog.d.ts +105 -0
- package/controls/catalog.d.ts.map +1 -0
- package/controls/catalog.js +341 -0
- package/controls/element-utils.d.ts +9 -0
- package/controls/element-utils.d.ts.map +1 -1
- package/controls/element-utils.js +17 -0
- package/controls/index.d.ts +29 -8
- package/controls/index.d.ts.map +1 -1
- package/controls/index.js +26 -8
- package/controls/layer-list.d.ts +13 -5
- package/controls/layer-list.d.ts.map +1 -1
- package/controls/layer-list.js +72 -15
- package/controls/legend.d.ts +32 -5
- package/controls/legend.d.ts.map +1 -1
- package/controls/legend.js +95 -25
- package/controls/qualification.d.ts +152 -0
- package/controls/qualification.d.ts.map +1 -0
- package/controls/qualification.js +1265 -0
- package/controls/registry.d.ts +104 -0
- package/controls/registry.d.ts.map +1 -0
- package/controls/registry.js +150 -0
- package/controls/swipe-control.d.ts +6 -1
- package/controls/swipe-control.d.ts.map +1 -1
- package/controls/swipe-control.js +82 -20
- package/core/client.d.ts +51 -21
- package/core/client.d.ts.map +1 -1
- package/core/client.js +234 -54
- package/core/error-classifications.d.ts +23 -0
- package/core/error-classifications.d.ts.map +1 -1
- package/core/error-classifications.js +23 -0
- package/core/error-code-registry.d.ts +24 -1
- package/core/error-code-registry.d.ts.map +1 -1
- package/core/error-code-registry.js +23 -0
- package/core/error-envelope.js +2 -0
- package/core/errors.d.ts +2 -2
- package/core/errors.d.ts.map +1 -1
- package/core/errors.js +1 -1
- package/core/geoparquet-sql.d.ts +69 -5
- package/core/geoparquet-sql.d.ts.map +1 -1
- package/core/geoparquet-sql.js +327 -10
- package/core/odata-write-codec.d.ts.map +1 -1
- package/core/odata-write-codec.js +0 -1
- package/core/odata.d.ts +6 -0
- package/core/odata.d.ts.map +1 -1
- package/core/odata.js +6 -1
- package/core/ogc-processes.d.ts +182 -25
- package/core/ogc-processes.d.ts.map +1 -1
- package/core/ogc-processes.js +602 -30
- package/core/process-runner.d.ts +8 -1
- package/core/process-runner.d.ts.map +1 -1
- package/core/process-runner.js +1 -0
- package/core/protocol-transport.d.ts +2 -0
- package/core/protocol-transport.d.ts.map +1 -1
- package/core/stac.d.ts +32 -0
- package/core/stac.d.ts.map +1 -1
- package/core/stac.js +158 -23
- package/core/surfaces.d.ts.map +1 -1
- package/core/surfaces.js +273 -68
- package/core/types.d.ts +138 -11
- package/core/types.d.ts.map +1 -1
- package/core/wfs-axis-order.d.ts +18 -0
- package/core/wfs-axis-order.d.ts.map +1 -0
- package/core/wfs-axis-order.js +108 -0
- package/core/wfs-capabilities.d.ts +65 -24
- package/core/wfs-capabilities.d.ts.map +1 -1
- package/core/wfs-capabilities.js +237 -27
- package/core/wfs-filter.d.ts +26 -3
- package/core/wfs-filter.d.ts.map +1 -1
- package/core/wfs-filter.js +48 -53
- package/core/wfs-protocol-error.d.ts +12 -0
- package/core/wfs-protocol-error.d.ts.map +1 -0
- package/core/wfs-protocol-error.js +13 -0
- package/core/wfs.d.ts +53 -1
- package/core/wfs.d.ts.map +1 -1
- package/core/wfs.js +251 -29
- package/core/wms-feature-info.d.ts +92 -0
- package/core/wms-feature-info.d.ts.map +1 -0
- package/core/wms-feature-info.js +285 -0
- package/core/wms.d.ts +9 -0
- package/core/wms.d.ts.map +1 -1
- package/core/wms.js +17 -5
- package/esri-compat/event-bus.d.ts +20 -0
- package/esri-compat/event-bus.d.ts.map +1 -1
- package/esri-compat/feature-filter.d.ts +46 -1
- package/esri-compat/feature-filter.d.ts.map +1 -1
- package/esri-compat/feature-filter.js +49 -0
- package/esri-compat/geojson-layer.d.ts +4 -2
- package/esri-compat/geojson-layer.d.ts.map +1 -1
- package/esri-compat/geojson-layer.js +4 -2
- package/esri-compat/identity-manager.js +2 -2
- package/esri-compat/imagery-layer.d.ts +2 -1
- package/esri-compat/imagery-layer.d.ts.map +1 -1
- package/esri-compat/imagery-layer.js +2 -1
- package/esri-compat/layer-list.d.ts +8 -1
- package/esri-compat/layer-list.d.ts.map +1 -1
- package/esri-compat/layer-list.js +11 -4
- package/esri-compat/legend.d.ts.map +1 -1
- package/esri-compat/legend.js +1 -1
- package/esri-compat/locator.d.ts +297 -0
- package/esri-compat/locator.d.ts.map +1 -0
- package/esri-compat/locator.js +579 -0
- package/esri-compat/map-image-layer.d.ts.map +1 -1
- package/esri-compat/map-view.d.ts.map +1 -1
- package/esri-compat/map-view.js +1 -1
- package/esri-compat/scene-view.d.ts.map +1 -1
- package/esri-compat/time-slider.d.ts +29 -0
- package/esri-compat/time-slider.d.ts.map +1 -1
- package/esri-compat/time-slider.js +117 -0
- package/esri-compat/wfs-layer.d.ts +2 -1
- package/esri-compat/wfs-layer.d.ts.map +1 -1
- package/esri-compat/wfs-layer.js +2 -1
- package/esri-compat/widget-host.d.ts +42 -6
- package/esri-compat/widget-host.d.ts.map +1 -1
- package/esri-compat/widget-host.js +99 -10
- package/generated-app/projection.d.ts.map +1 -1
- package/generated-app/runtime.d.ts.map +1 -1
- package/interactions/declarative-contract.d.ts +149 -0
- package/interactions/declarative-contract.d.ts.map +1 -0
- package/interactions/declarative-contract.js +293 -0
- package/interactions/declarative.d.ts +198 -0
- package/interactions/declarative.d.ts.map +1 -0
- package/interactions/declarative.js +470 -0
- package/interactions/feature-state.d.ts +7 -0
- package/interactions/feature-state.d.ts.map +1 -1
- package/interactions/feature-state.js +10 -2
- package/map/data-to-map-bridge.d.ts +1 -1
- package/map/data-to-map-bridge.d.ts.map +1 -1
- package/map/data-to-map-bridge.js +1 -2
- package/map/honua-map.d.ts.map +1 -1
- package/map/honua-map.js +1 -1
- package/map/index.d.ts +2 -0
- package/map/index.d.ts.map +1 -1
- package/map/index.js +2 -0
- package/map/maplibre-target.js +1 -1
- package/map/realtime-reconciliation-adapter.d.ts +98 -0
- package/map/realtime-reconciliation-adapter.d.ts.map +1 -0
- package/map/realtime-reconciliation-adapter.js +84 -0
- package/map/temporal-playback.d.ts +25 -0
- package/map/temporal-playback.d.ts.map +1 -1
- package/map/temporal-playback.js +29 -1
- package/operator/workspace/workspace.d.ts.map +1 -1
- package/operator/workspace/workspace.js +0 -2
- package/package.json +4 -3
- package/query-planner/canonical-filter.d.ts +30 -0
- package/query-planner/canonical-filter.d.ts.map +1 -0
- package/query-planner/canonical-filter.js +30 -0
- package/query-planner/columnar-plan.d.ts +63 -0
- package/query-planner/columnar-plan.d.ts.map +1 -0
- package/query-planner/columnar-plan.js +94 -0
- package/query-planner/diagnostics.d.ts +3 -3
- package/query-planner/diagnostics.d.ts.map +1 -1
- package/query-planner/diagnostics.js +17 -4
- package/query-planner/duckdb.d.ts.map +1 -1
- package/query-planner/duckdb.js +16 -2
- package/query-planner/execution-context.d.ts.map +1 -1
- package/query-planner/execution-context.js +3 -1
- package/query-planner/executor.d.ts.map +1 -1
- package/query-planner/executor.js +7 -1
- package/query-planner/geoservices.d.ts.map +1 -1
- package/query-planner/geoservices.js +24 -5
- package/query-planner/grpc.d.ts.map +1 -1
- package/query-planner/grpc.js +29 -5
- package/query-planner/index.d.ts +20 -5
- package/query-planner/index.d.ts.map +1 -1
- package/query-planner/index.js +16 -3
- package/query-planner/ir.d.ts +6 -1
- package/query-planner/ir.d.ts.map +1 -1
- package/query-planner/ir.js +63 -1
- package/query-planner/odata-protocol-module.d.ts +54 -0
- package/query-planner/odata-protocol-module.d.ts.map +1 -0
- package/query-planner/odata-protocol-module.js +199 -0
- package/query-planner/odata-v1.d.ts +23 -0
- package/query-planner/odata-v1.d.ts.map +1 -0
- package/query-planner/odata-v1.js +202 -0
- package/query-planner/odata.d.ts +0 -3
- package/query-planner/odata.d.ts.map +1 -1
- package/query-planner/odata.js +0 -143
- package/query-planner/ogc-features.d.ts.map +1 -1
- package/query-planner/ogc-features.js +23 -1
- package/query-planner/planner.d.ts +2 -2
- package/query-planner/planner.d.ts.map +1 -1
- package/query-planner/planner.js +146 -27
- package/query-planner/representation.d.ts +59 -0
- package/query-planner/representation.d.ts.map +1 -0
- package/query-planner/representation.js +140 -0
- package/query-planner/types.d.ts +153 -3
- package/query-planner/types.d.ts.map +1 -1
- package/query-planner/wfs-protocol-module.d.ts +57 -0
- package/query-planner/wfs-protocol-module.d.ts.map +1 -0
- package/query-planner/wfs-protocol-module.js +731 -0
- package/query-planner/wfs-v1.d.ts +41 -0
- package/query-planner/wfs-v1.d.ts.map +1 -0
- package/query-planner/wfs-v1.js +366 -0
- package/query-planner/wfs.d.ts +1 -3
- package/query-planner/wfs.d.ts.map +1 -1
- package/query-planner/wfs.js +1 -70
- package/realtime/checkpoint-store.d.ts +206 -0
- package/realtime/checkpoint-store.d.ts.map +1 -0
- package/realtime/checkpoint-store.js +504 -0
- package/realtime/honua-server.d.ts +8 -0
- package/realtime/honua-server.d.ts.map +1 -1
- package/realtime/honua-server.js +123 -14
- package/realtime/index.d.ts +4 -0
- package/realtime/index.d.ts.map +1 -1
- package/realtime/index.js +2 -0
- package/realtime/reconciliation.d.ts +245 -0
- package/realtime/reconciliation.d.ts.map +1 -0
- package/realtime/reconciliation.js +377 -0
- package/realtime/resumable-transport.d.ts.map +1 -1
- package/realtime/sse.d.ts.map +1 -1
- package/realtime/sse.js +7 -1
- package/realtime/websocket.d.ts.map +1 -1
- package/realtime/wire.d.ts +2 -1
- package/realtime/wire.d.ts.map +1 -1
- package/realtime/wire.js +24 -8
- package/replica-sync/errors.d.ts +19 -1
- package/replica-sync/errors.d.ts.map +1 -1
- package/replica-sync/errors.js +16 -0
- package/replica-sync/geoservices.d.ts +260 -0
- package/replica-sync/geoservices.d.ts.map +1 -0
- package/replica-sync/geoservices.js +1093 -0
- package/replica-sync/index.d.ts +5 -1
- package/replica-sync/index.d.ts.map +1 -1
- package/replica-sync/index.js +3 -1
- package/replica-sync/transport-conformance.d.ts +58 -0
- package/replica-sync/transport-conformance.d.ts.map +1 -0
- package/replica-sync/transport-conformance.js +265 -0
- package/replica-sync/types.d.ts +22 -0
- package/replica-sync/types.d.ts.map +1 -1
- package/runtime/index.d.ts +6 -2
- package/runtime/index.d.ts.map +1 -1
- package/runtime/index.js +3 -1
- package/runtime/load-package.d.ts +24 -0
- package/runtime/load-package.d.ts.map +1 -1
- package/runtime/load-package.js +45 -1
- package/runtime/maplibre-renderer.d.ts +11 -0
- package/runtime/maplibre-renderer.d.ts.map +1 -1
- package/runtime/maplibre-renderer.js +32 -7
- package/runtime/offline-region-protocol.d.ts +73 -0
- package/runtime/offline-region-protocol.d.ts.map +1 -0
- package/runtime/offline-region-protocol.js +63 -0
- package/runtime/offline-region-style.d.ts +78 -0
- package/runtime/offline-region-style.d.ts.map +1 -0
- package/runtime/offline-region-style.js +147 -0
- package/runtime/pmtiles-protocol.d.ts +7 -8
- package/runtime/pmtiles-protocol.d.ts.map +1 -1
- package/runtime/pmtiles-protocol.js +19 -66
- package/runtime/protocol-registry.d.ts +55 -0
- package/runtime/protocol-registry.d.ts.map +1 -0
- package/runtime/protocol-registry.js +103 -0
- package/runtime/runtime.d.ts +2 -0
- package/runtime/runtime.d.ts.map +1 -1
- package/runtime/runtime.js +6 -1
- package/runtime/style-compose.d.ts.map +1 -1
- package/runtime/style-compose.js +78 -9
- package/scene-workspace/analysis-widgets.d.ts +4 -2
- package/scene-workspace/analysis-widgets.d.ts.map +1 -1
- package/scene-workspace/analysis-widgets.js +4 -2
- package/scene-workspace/camera-correspondence.d.ts +151 -0
- package/scene-workspace/camera-correspondence.d.ts.map +1 -0
- package/scene-workspace/camera-correspondence.js +220 -0
- package/scene-workspace/cesium-adapter.d.ts +230 -29
- package/scene-workspace/cesium-adapter.d.ts.map +1 -1
- package/scene-workspace/cesium-adapter.js +741 -56
- package/scene-workspace/cesium-mount.d.ts +205 -0
- package/scene-workspace/cesium-mount.d.ts.map +1 -0
- package/scene-workspace/cesium-mount.js +392 -0
- package/scene-workspace/cesium-scene-owner.d.ts +160 -0
- package/scene-workspace/cesium-scene-owner.d.ts.map +1 -0
- package/scene-workspace/cesium-scene-owner.js +205 -0
- package/scene-workspace/cesium-state-sync.d.ts +101 -0
- package/scene-workspace/cesium-state-sync.d.ts.map +1 -0
- package/scene-workspace/cesium-state-sync.js +432 -0
- package/scene-workspace/cesium-time.d.ts +346 -0
- package/scene-workspace/cesium-time.d.ts.map +1 -0
- package/scene-workspace/cesium-time.js +403 -0
- package/scene-workspace/index.d.ts +42 -10
- package/scene-workspace/index.d.ts.map +1 -1
- package/scene-workspace/index.js +32 -7
- package/scene-workspace/maplibre-state-sync.d.ts +112 -0
- package/scene-workspace/maplibre-state-sync.d.ts.map +1 -0
- package/scene-workspace/maplibre-state-sync.js +400 -0
- package/scene-workspace/primitives.d.ts +237 -3
- package/scene-workspace/primitives.d.ts.map +1 -1
- package/scene-workspace/primitives.js +1087 -17
- package/scene-workspace/scene-discovery.d.ts +5 -2
- package/scene-workspace/scene-discovery.d.ts.map +1 -1
- package/scene-workspace/scene-discovery.js +5 -2
- package/scene-workspace/scene-view.d.ts +5 -2
- package/scene-workspace/scene-view.d.ts.map +1 -1
- package/scene-workspace/scene-view.js +5 -2
- package/scene-workspace/source-to-cesium.d.ts +141 -8
- package/scene-workspace/source-to-cesium.d.ts.map +1 -1
- package/scene-workspace/source-to-cesium.js +497 -72
- package/scene-workspace/state-sync-port-kit.d.ts +156 -0
- package/scene-workspace/state-sync-port-kit.d.ts.map +1 -0
- package/scene-workspace/state-sync-port-kit.js +319 -0
- package/scene-workspace/state-sync.d.ts +34 -1
- package/scene-workspace/state-sync.d.ts.map +1 -1
- package/scene-workspace/state-sync.js +48 -0
- package/scene-workspace/types.d.ts +8 -0
- package/scene-workspace/types.d.ts.map +1 -1
- package/scene-workspace/types.js +2 -0
- package/scene-workspace/workspace.d.ts +12 -1
- package/scene-workspace/workspace.d.ts.map +1 -1
- package/scene-workspace/workspace.js +13 -0
- package/studio/index.d.ts +24 -7
- package/studio/index.d.ts.map +1 -1
- package/studio/index.js +21 -7
- package/studio/lifecycle-client.d.ts +164 -0
- package/studio/lifecycle-client.d.ts.map +1 -0
- package/studio/lifecycle-client.js +299 -0
- package/studio/lifecycle-errors.d.ts +91 -0
- package/studio/lifecycle-errors.d.ts.map +1 -0
- package/studio/lifecycle-errors.js +77 -0
- package/studio/lifecycle-types.d.ts +321 -0
- package/studio/lifecycle-types.d.ts.map +1 -0
- package/studio/lifecycle-types.js +22 -0
- package/web-components/controller.d.ts.map +1 -1
- package/web-components/csp-styles.d.ts +6 -0
- package/web-components/csp-styles.d.ts.map +1 -0
- package/web-components/csp-styles.js +53 -0
- package/web-components/elements.d.ts +158 -2
- package/web-components/elements.d.ts.map +1 -1
- package/web-components/elements.js +1302 -215
- package/web-components/export-redaction.d.ts +252 -0
- package/web-components/export-redaction.d.ts.map +1 -0
- package/web-components/export-redaction.js +588 -0
- package/web-components/export.d.ts +417 -0
- package/web-components/export.d.ts.map +1 -0
- package/web-components/export.js +719 -0
- package/web-components/feature-editor-model.d.ts +265 -0
- package/web-components/feature-editor-model.d.ts.map +1 -0
- package/web-components/feature-editor-model.js +438 -0
- package/web-components/feature-editor-sketch.d.ts +125 -0
- package/web-components/feature-editor-sketch.d.ts.map +1 -0
- package/web-components/feature-editor-sketch.js +194 -0
- package/web-components/feature-editor-workflow.d.ts +286 -0
- package/web-components/feature-editor-workflow.d.ts.map +1 -0
- package/web-components/feature-editor-workflow.js +889 -0
- package/web-components/feature-editor.d.ts +83 -0
- package/web-components/feature-editor.d.ts.map +1 -0
- package/web-components/feature-editor.js +829 -0
- package/web-components/feature-table-engine.d.ts +465 -0
- package/web-components/feature-table-engine.d.ts.map +1 -0
- package/web-components/feature-table-engine.js +1360 -0
- package/web-components/feature-table-view.d.ts +95 -0
- package/web-components/feature-table-view.d.ts.map +1 -0
- package/web-components/feature-table-view.js +343 -0
- package/web-components/index.d.ts +34 -3
- package/web-components/index.d.ts.map +1 -1
- package/web-components/index.js +35 -2
- package/web-components/maplibre-renderer.d.ts.map +1 -1
- package/web-components/maplibre-renderer.js +13 -4
- package/web-components/measurement.d.ts +3 -1
- package/web-components/measurement.d.ts.map +1 -1
- package/web-components/measurement.js +62 -18
- package/web-components/time-slider.d.ts +122 -0
- package/web-components/time-slider.d.ts.map +1 -0
- package/web-components/time-slider.js +740 -0
- package/web-components/types.d.ts +310 -0
- package/web-components/types.d.ts.map +1 -1
- package/webmap/convert-label.js +0 -1
- package/webmap/convert-symbol.d.ts.map +1 -1
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GeoServices FeatureServer replica-sync transport.
|
|
3
|
+
*
|
|
4
|
+
* This is the real HTTP transport behind {@link ReplicaSyncTransport}: it speaks
|
|
5
|
+
* the GeoServices FeatureServer REST dialect that honua-server implements for
|
|
6
|
+
* disconnected replicas, plus the durable conflict review/resolution API that
|
|
7
|
+
* ships beside it. It is the production counterpart to
|
|
8
|
+
* `FixtureReplicaSyncTransport`, and it passes the same
|
|
9
|
+
* `REPLICA_SYNC_TRANSPORT_CONFORMANCE_CASES` suite.
|
|
10
|
+
*
|
|
11
|
+
* ## Endpoint contract
|
|
12
|
+
*
|
|
13
|
+
* Two route families, deliberately distinct:
|
|
14
|
+
*
|
|
15
|
+
* | Transport call | Server endpoint |
|
|
16
|
+
* | ------------------------- | ---------------------------------------------------------------------------- |
|
|
17
|
+
* | `capabilities` | `GET {rest}/services/{serviceId}/FeatureServer[/{layerId}]?f=json` |
|
|
18
|
+
* | `listReplicas` | `GET {admin}/services/{serviceId}/replicas` |
|
|
19
|
+
* | `getReplica` | `GET {admin}/services/{serviceId}/replicas/{replicaId}` |
|
|
20
|
+
* | `listConflicts` | `GET {admin}/services/{serviceId}/replicas/{replicaId}/conflicts[?status=]` |
|
|
21
|
+
* | `getConflict` | `GET {admin}/services/{serviceId}/replicas/{replicaId}/conflicts/{conflictId}`|
|
|
22
|
+
* | `resolveConflict` | `POST {admin}/…/conflicts/{conflictId}/resolve` |
|
|
23
|
+
* | `createReplica` | `POST {rest}/services/{serviceId}/FeatureServer/createReplica` |
|
|
24
|
+
* | `synchronizeReplica` | `POST {rest}/services/{serviceId}/FeatureServer/synchronizeReplica` |
|
|
25
|
+
* | `unregisterReplica` | `POST {rest}/services/{serviceId}/FeatureServer/unRegisterReplica` |
|
|
26
|
+
* | `applyEdits` | `POST {rest}/services/{serviceId}/FeatureServer/{layerId}/applyEdits` |
|
|
27
|
+
*
|
|
28
|
+
* ## Capability gating
|
|
29
|
+
*
|
|
30
|
+
* Nothing is attempted before the service advertises it. `capabilities()` reads
|
|
31
|
+
* the FeatureServer metadata resource and refuses with
|
|
32
|
+
* {@link HonuaCapabilityNotSupportedError} naming `Sync` when the service does
|
|
33
|
+
* not advertise sync. The admin replica routes sit behind the server's
|
|
34
|
+
* `sync.offline` experimental capability gate, which answers a disabled
|
|
35
|
+
* deployment with HTTP 404 and an `application/problem+json` body whose `type`
|
|
36
|
+
* is `honua:capability-experimental-disabled`. That 404 is recognized and
|
|
37
|
+
* re-raised as `HonuaCapabilityNotSupportedError("sync.offline", …)` — a
|
|
38
|
+
* disabled capability is never surfaced as a missing replica or as corruption.
|
|
39
|
+
*
|
|
40
|
+
* ## Fail closed on drift
|
|
41
|
+
*
|
|
42
|
+
* Every response member this transport reads is validated. An unknown conflict
|
|
43
|
+
* classification, an unknown lifecycle status, an unknown per-feature edit error
|
|
44
|
+
* code, a non-integer-safe generation cursor, or a missing required member
|
|
45
|
+
* raises `HonuaReplicaSyncError("response-drift")` naming the member that
|
|
46
|
+
* drifted. There is no fallback mapping and no partially-populated contract
|
|
47
|
+
* object: the GA hardening tracked in honua-server#2430 may move this surface,
|
|
48
|
+
* and a silent guess would be worse than a refusal.
|
|
49
|
+
*
|
|
50
|
+
* ## Credential discipline
|
|
51
|
+
*
|
|
52
|
+
* Authentication rides the caller's `HonuaClient` header plumbing (API key,
|
|
53
|
+
* bearer token, or auth provider) and is never re-read here. No request URL, no
|
|
54
|
+
* token, and no header value is copied into a conflict record, a replica record,
|
|
55
|
+
* or an error `details` payload; every string this transport places in a durable
|
|
56
|
+
* or reported position is screened with `screenPersistedString`.
|
|
57
|
+
*
|
|
58
|
+
* @experimental
|
|
59
|
+
* @module
|
|
60
|
+
*/
|
|
61
|
+
import type { HonuaRawRequest, QueryMethod } from "../core/types.js";
|
|
62
|
+
import type { BatchConflictResolutionResult, DisconnectedReplica, ListConflictsRequest, ListReplicasRequest, ReplicaId, ReplicaSyncCapabilities, ReplicaSyncTransport, ServerGenerationCursor, SyncConflictDetail, SyncConflictId, SyncConflictResolution, SyncConflictResolutionRecord, SyncConflictSummary, SyncPage } from "./types.js";
|
|
63
|
+
/** The server capability descriptor that gates the disconnected-sync surface. */
|
|
64
|
+
export declare const GEOSERVICES_REPLICA_SYNC_CAPABILITY: "sync.offline";
|
|
65
|
+
/** The FeatureServer capability token that advertises replica synchronization. */
|
|
66
|
+
export declare const GEOSERVICES_SYNC_CAPABILITY_TOKEN: "Sync";
|
|
67
|
+
/** Protocol name reported on capability refusals raised by this transport. */
|
|
68
|
+
export declare const GEOSERVICES_REPLICA_SYNC_PROTOCOL: "geoservices";
|
|
69
|
+
/**
|
|
70
|
+
* The narrow slice of `HonuaClient` this transport drives. `HonuaClient`
|
|
71
|
+
* satisfies it structurally, so the transport composes with the client's
|
|
72
|
+
* existing auth, retry, timeout, and interceptor pipeline without importing the
|
|
73
|
+
* client implementation or re-deriving credentials.
|
|
74
|
+
*
|
|
75
|
+
* `request` is the GeoServices path (it appends `f=json`); `pipelineRequestJson`
|
|
76
|
+
* is the plain-JSON path used for the admin API, which does not model `f=`.
|
|
77
|
+
*/
|
|
78
|
+
export interface GeoServicesReplicaSyncHttpPort {
|
|
79
|
+
request<T = unknown>(request: HonuaRawRequest): Promise<T>;
|
|
80
|
+
pipelineRequestJson<T = unknown>(method: QueryMethod, path: string, init?: {
|
|
81
|
+
headers?: HeadersInit;
|
|
82
|
+
body?: BodyInit | null;
|
|
83
|
+
}, signal?: AbortSignal): Promise<T>;
|
|
84
|
+
}
|
|
85
|
+
export interface GeoServicesReplicaSyncTransportOptions {
|
|
86
|
+
/** Drives every request. A `HonuaClient` satisfies this structurally. */
|
|
87
|
+
readonly client: GeoServicesReplicaSyncHttpPort;
|
|
88
|
+
/**
|
|
89
|
+
* FeatureServer service id used when a request omits `datasetId`. A Honua
|
|
90
|
+
* dataset id maps onto a GeoServices service id one-for-one.
|
|
91
|
+
*/
|
|
92
|
+
readonly serviceId: string;
|
|
93
|
+
/** Admin API base path. Defaults to `/api/v1/admin`. */
|
|
94
|
+
readonly adminBasePath?: string;
|
|
95
|
+
/** GeoServices REST base path. Defaults to `/rest`. */
|
|
96
|
+
readonly restBasePath?: string;
|
|
97
|
+
/**
|
|
98
|
+
* Optional projection from a GeoServices `(serviceId, layerId)` pair onto a
|
|
99
|
+
* Honua `SourceId`. GeoServices names a layer by its service-local integer id,
|
|
100
|
+
* which is not a `SourceId`; rather than invent one, the transport omits
|
|
101
|
+
* `sourceId` unless this hook supplies it.
|
|
102
|
+
*/
|
|
103
|
+
readonly sourceIdForLayer?: (serviceId: string, layerId: number) => string | undefined;
|
|
104
|
+
}
|
|
105
|
+
/** Sync direction accepted by `synchronizeReplica`. */
|
|
106
|
+
export type GeoServicesSyncDirection = "upload" | "download" | "bidirectional";
|
|
107
|
+
export interface GeoServicesCreateReplicaRequest {
|
|
108
|
+
readonly replicaName: string;
|
|
109
|
+
/** Service-local layer ids. Serialized as the comma-joined `layers` form. */
|
|
110
|
+
readonly layers: ReadonlyArray<number>;
|
|
111
|
+
readonly syncModel?: "perReplica" | "perLayer";
|
|
112
|
+
readonly datasetId?: string;
|
|
113
|
+
readonly signal?: AbortSignal;
|
|
114
|
+
}
|
|
115
|
+
export interface GeoServicesCreateReplicaResult {
|
|
116
|
+
readonly replicaId: ReplicaId;
|
|
117
|
+
readonly replicaName?: string;
|
|
118
|
+
readonly syncModel?: string;
|
|
119
|
+
readonly serverGen: ServerGenerationCursor;
|
|
120
|
+
}
|
|
121
|
+
/** One layer's uploaded edits, matching the GeoServices sync `edits` element. */
|
|
122
|
+
export interface GeoServicesLayerEdits {
|
|
123
|
+
readonly id: number;
|
|
124
|
+
readonly adds?: ReadonlyArray<unknown>;
|
|
125
|
+
readonly updates?: ReadonlyArray<unknown>;
|
|
126
|
+
readonly deletes?: ReadonlyArray<number | string>;
|
|
127
|
+
}
|
|
128
|
+
export interface GeoServicesSynchronizeRequest {
|
|
129
|
+
readonly replicaId: ReplicaId;
|
|
130
|
+
readonly direction: GeoServicesSyncDirection;
|
|
131
|
+
/** The replica's current cursor, echoed back so the server can compute a delta. */
|
|
132
|
+
readonly replicaServerGen?: ServerGenerationCursor;
|
|
133
|
+
readonly edits?: ReadonlyArray<GeoServicesLayerEdits>;
|
|
134
|
+
readonly rollbackOnFailure?: boolean;
|
|
135
|
+
readonly datasetId?: string;
|
|
136
|
+
readonly signal?: AbortSignal;
|
|
137
|
+
}
|
|
138
|
+
/** A conflict reported inline by a synchronize upload. */
|
|
139
|
+
export interface GeoServicesSyncConflict {
|
|
140
|
+
readonly layerId: number;
|
|
141
|
+
readonly featureId: string;
|
|
142
|
+
readonly classification: GeoServicesConflictClassification;
|
|
143
|
+
/** True when the client edit was still committed under last-write-wins. */
|
|
144
|
+
readonly applied: boolean;
|
|
145
|
+
/** Present when a durable, reviewable record was written. */
|
|
146
|
+
readonly conflictId?: SyncConflictId;
|
|
147
|
+
}
|
|
148
|
+
export interface GeoServicesSynchronizeResult {
|
|
149
|
+
readonly replicaId: ReplicaId;
|
|
150
|
+
readonly direction: GeoServicesSyncDirection;
|
|
151
|
+
readonly serverGen: ServerGenerationCursor;
|
|
152
|
+
readonly appliedAdds?: number;
|
|
153
|
+
readonly appliedUpdates?: number;
|
|
154
|
+
readonly appliedDeletes?: number;
|
|
155
|
+
readonly conflicts: ReadonlyArray<GeoServicesSyncConflict>;
|
|
156
|
+
/** Server-to-client delta, verbatim, for download and bidirectional syncs. */
|
|
157
|
+
readonly edits?: ReadonlyArray<unknown>;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Stable per-feature edit error codes the FeatureServer `applyEdits` HTTP-200
|
|
161
|
+
* envelope carries (honua-server#2251). The Esri wire shape only has a numeric
|
|
162
|
+
* `code` and a free-form `description`; these codes are the machine-readable
|
|
163
|
+
* classification, and the transport keys on them rather than on the prose.
|
|
164
|
+
*/
|
|
165
|
+
export declare const GEOSERVICES_EDIT_ERROR_CODES: {
|
|
166
|
+
readonly genericFailure: 1000;
|
|
167
|
+
readonly invalidObjectId: 1001;
|
|
168
|
+
readonly notFound: 1002;
|
|
169
|
+
readonly deleteNotFound: 1003;
|
|
170
|
+
readonly updateConflict: 1004;
|
|
171
|
+
readonly featureLocked: 1005;
|
|
172
|
+
readonly validationFailed: 1006;
|
|
173
|
+
readonly notPermitted: 1007;
|
|
174
|
+
readonly operationRolledBack: 1008;
|
|
175
|
+
};
|
|
176
|
+
/** The edit operation an `applyEdits` result belongs to. */
|
|
177
|
+
export type GeoServicesEditKind = "add" | "update" | "delete";
|
|
178
|
+
/**
|
|
179
|
+
* How a per-feature `applyEdits` failure maps onto the offline replay
|
|
180
|
+
* acknowledgement vocabulary (`src/offline/edit-replay.ts`).
|
|
181
|
+
*
|
|
182
|
+
* - `conflicted` — another writer won the race, or the row is gone. The caller
|
|
183
|
+
* holds a conflict, not a broken request.
|
|
184
|
+
* - `retryable` — transient: a lock, a rolled-back sibling, or an unclassified
|
|
185
|
+
* provider failure. Resubmitting the same payload can succeed.
|
|
186
|
+
* - `rejected` — the request itself is wrong (shape, validation, authorization).
|
|
187
|
+
* Resubmitting the same payload fails identically.
|
|
188
|
+
*/
|
|
189
|
+
export type GeoServicesEditOutcome = "applied" | "conflicted" | "retryable" | "rejected";
|
|
190
|
+
/** Conflict classes the server's durable records and sync responses name. */
|
|
191
|
+
export type GeoServicesConflictClassification = "attribute" | "geometry" | "deleteUpdate" | "updateDelete" | "duplicateInsert" | "attachment" | "relationship";
|
|
192
|
+
export interface GeoServicesEditResultClassification {
|
|
193
|
+
readonly outcome: GeoServicesEditOutcome;
|
|
194
|
+
readonly kind: GeoServicesEditKind;
|
|
195
|
+
readonly featureId?: string;
|
|
196
|
+
/** The stable numeric code, absent for a successful result. */
|
|
197
|
+
readonly code?: number;
|
|
198
|
+
/** Symbolic name of the stable code, absent for a successful result. */
|
|
199
|
+
readonly reason?: keyof typeof GEOSERVICES_EDIT_ERROR_CODES;
|
|
200
|
+
}
|
|
201
|
+
export declare function createGeoServicesReplicaSyncTransport(options: GeoServicesReplicaSyncTransportOptions): GeoServicesReplicaSyncTransport;
|
|
202
|
+
export declare class GeoServicesReplicaSyncTransport implements ReplicaSyncTransport {
|
|
203
|
+
#private;
|
|
204
|
+
constructor(options: GeoServicesReplicaSyncTransportOptions);
|
|
205
|
+
/**
|
|
206
|
+
* Read the FeatureServer metadata resource and project its advertised sync
|
|
207
|
+
* surface onto {@link ReplicaSyncCapabilities}.
|
|
208
|
+
*
|
|
209
|
+
* `conflictReview` / `conflictResolution` are observed, not assumed: the
|
|
210
|
+
* durable review route is probed against the first registered replica. When
|
|
211
|
+
* the service has no replica yet the provider's answer is unobservable, and
|
|
212
|
+
* the flags report the admin surface's reachability — `listConflicts` and
|
|
213
|
+
* `getConflict` still fail closed with `unsupported-conflict-review` if the
|
|
214
|
+
* provider denies review.
|
|
215
|
+
*/
|
|
216
|
+
capabilities(datasetId: string, sourceId?: string): Promise<ReplicaSyncCapabilities>;
|
|
217
|
+
listReplicas(request?: ListReplicasRequest): Promise<SyncPage<DisconnectedReplica>>;
|
|
218
|
+
getReplica(replicaId: ReplicaId, options?: {
|
|
219
|
+
readonly signal?: AbortSignal;
|
|
220
|
+
}): Promise<DisconnectedReplica>;
|
|
221
|
+
listConflicts(request?: ListConflictsRequest): Promise<SyncPage<SyncConflictSummary>>;
|
|
222
|
+
getConflict(conflictId: SyncConflictId, options?: {
|
|
223
|
+
readonly signal?: AbortSignal;
|
|
224
|
+
}): Promise<SyncConflictDetail>;
|
|
225
|
+
resolveConflict(resolution: SyncConflictResolution): Promise<SyncConflictResolutionRecord>;
|
|
226
|
+
resolveConflicts(resolutions: ReadonlyArray<SyncConflictResolution>): Promise<BatchConflictResolutionResult>;
|
|
227
|
+
/** Register a disconnected replica (`createReplica`). */
|
|
228
|
+
createReplica(request: GeoServicesCreateReplicaRequest): Promise<GeoServicesCreateReplicaResult>;
|
|
229
|
+
/** Exchange a delta with the server (`synchronizeReplica`). */
|
|
230
|
+
synchronizeReplica(request: GeoServicesSynchronizeRequest): Promise<GeoServicesSynchronizeResult>;
|
|
231
|
+
/** Release a replica's server-side registration (`unRegisterReplica`). */
|
|
232
|
+
unregisterReplica(replicaId: ReplicaId, options?: {
|
|
233
|
+
readonly datasetId?: string;
|
|
234
|
+
readonly signal?: AbortSignal;
|
|
235
|
+
}): Promise<void>;
|
|
236
|
+
/**
|
|
237
|
+
* Apply edits directly to a layer and classify every per-feature result.
|
|
238
|
+
*
|
|
239
|
+
* `applyEdits` answers HTTP 200 even when individual features fail; the
|
|
240
|
+
* per-feature `error.code` is the stable classification. Each result is
|
|
241
|
+
* projected onto the offline replay acknowledgement vocabulary so a caller can
|
|
242
|
+
* branch on conflict versus retry versus reject without parsing prose.
|
|
243
|
+
*/
|
|
244
|
+
applyEdits(request: {
|
|
245
|
+
readonly layerId: number;
|
|
246
|
+
readonly adds?: ReadonlyArray<unknown>;
|
|
247
|
+
readonly updates?: ReadonlyArray<unknown>;
|
|
248
|
+
readonly deletes?: ReadonlyArray<number | string>;
|
|
249
|
+
readonly rollbackOnFailure?: boolean;
|
|
250
|
+
readonly datasetId?: string;
|
|
251
|
+
readonly signal?: AbortSignal;
|
|
252
|
+
}): Promise<ReadonlyArray<GeoServicesEditResultClassification>>;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Classify one per-feature `applyEdits` result. A code outside the published
|
|
256
|
+
* table is drift and is refused; it is never folded into the generic class,
|
|
257
|
+
* because a future code could mean the opposite of "retry".
|
|
258
|
+
*/
|
|
259
|
+
export declare function classifyGeoServicesEditResult(result: unknown, kind: GeoServicesEditKind, path?: string): GeoServicesEditResultClassification;
|
|
260
|
+
//# sourceMappingURL=geoservices.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geoservices.d.ts","sourceRoot":"","sources":["../../../src/replica-sync/geoservices.ts"],"names":[],"mappings":"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"}
|