@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,346 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application time and rebuild boundaries for the Cesium scene adapter.
|
|
3
|
+
*
|
|
4
|
+
* Issue #930 gave the Cesium mount a diff: identity plus configuration
|
|
5
|
+
* fingerprint decide what is reused and what is rebuilt. What it did not have
|
|
6
|
+
* was a *time*. `applyCesiumScenePrimitives()` accepted the workspace state —
|
|
7
|
+
* the object carrying the `timeline` and `realtime` slices — and dropped it.
|
|
8
|
+
* This module is the missing half:
|
|
9
|
+
*
|
|
10
|
+
* - {@link sceneTimelineToCesiumClockPlan} turns the renderer-neutral
|
|
11
|
+
* `SceneTimelineState` into the exact set of writes a Cesium `Clock` accepts.
|
|
12
|
+
* It is pure and Cesium-free, so a host can inspect (and a test can assert)
|
|
13
|
+
* what would be written without loading the optional peer.
|
|
14
|
+
* - {@link applyCesiumClockPlan} performs those writes against a live clock and
|
|
15
|
+
* hands back the snapshot needed to undo them, so time participates in the
|
|
16
|
+
* adapter's existing transactional rollback exactly like the terrain provider.
|
|
17
|
+
* - {@link bindTemporalPlaybackToCesium} gives the renderer-neutral playback
|
|
18
|
+
* controller (`createTemporalPlayback`, `@honua/sdk-js/map`) a Cesium sink, so
|
|
19
|
+
* the same controller that drives a MapLibre map and `<honua-time-slider>`
|
|
20
|
+
* drives a globe.
|
|
21
|
+
* - {@link SceneRebuildBoundary} names, on the *beta* primitive path, what an
|
|
22
|
+
* update had to cross. Before this the vocabulary existed only as a detail
|
|
23
|
+
* field on the experimental entity slice's `incremental-update` diagnostic.
|
|
24
|
+
*
|
|
25
|
+
* ## Clock ownership
|
|
26
|
+
*
|
|
27
|
+
* The adapter binds a clock **only when the host opts in** by putting one on the
|
|
28
|
+
* scene target ({@link CesiumClockTarget.clock}). A target without a clock is
|
|
29
|
+
* never given one, and a target that declares `clockOwnership: "host"` is never
|
|
30
|
+
* written to at all — a host driving `viewer.clock` from Cesium's own Animation
|
|
31
|
+
* widget, or from a simulation loop, must not have the SDK fighting it. Both
|
|
32
|
+
* refusals are reported rather than silent, so "the time did not reach the
|
|
33
|
+
* globe" is always visible in the diagnostic list.
|
|
34
|
+
*
|
|
35
|
+
* ## Time is not a rebuild
|
|
36
|
+
*
|
|
37
|
+
* Application time lives in the workspace state, never in the scene plan, so it
|
|
38
|
+
* is outside the fingerprint the mount diffs on. Advancing time therefore
|
|
39
|
+
* crosses no rebuild boundary: every mounted binding is reused untouched and the
|
|
40
|
+
* only mutation is on the clock. That property is asserted, not assumed
|
|
41
|
+
* (`test/cesium-scene-temporal.test.ts`, and against a real `Viewer` in
|
|
42
|
+
* `test/playwright/cesium-scene-adapter-fixtures.spec.mjs`).
|
|
43
|
+
*
|
|
44
|
+
* @beta Part of the beta `@honua/app-platform/scene-workspace` surface: these
|
|
45
|
+
* exports are not renamed or removed through 0.1.x, and the boundary and
|
|
46
|
+
* diagnostic vocabularies grow additively.
|
|
47
|
+
* @module
|
|
48
|
+
*/
|
|
49
|
+
import type { ScenePrimitiveDiagnostic, SceneRuntimePrimitiveKind } from "./primitives.js";
|
|
50
|
+
import type { SceneTimelineState } from "./types.js";
|
|
51
|
+
/**
|
|
52
|
+
* Who owns transport on the bound Cesium clock.
|
|
53
|
+
*
|
|
54
|
+
* - `"adapter"` (default): the SDK writes the canonical application time, and
|
|
55
|
+
* the transport fields the workspace timeline actually declares.
|
|
56
|
+
* - `"host"`: the SDK writes nothing. Declare this when Cesium's own Animation /
|
|
57
|
+
* Timeline widgets, or a host simulation loop, own `viewer.clock`. The
|
|
58
|
+
* adapter still reports what it would have applied, so standing down is
|
|
59
|
+
* visible rather than indistinguishable from a missing binding.
|
|
60
|
+
*/
|
|
61
|
+
export type CesiumClockOwnership = "adapter" | "host";
|
|
62
|
+
/**
|
|
63
|
+
* The minimal slice of Cesium's `Clock` the time binding touches. A real
|
|
64
|
+
* `viewer.clock` satisfies it; tests pass a plain object.
|
|
65
|
+
*
|
|
66
|
+
* Times are `unknown` because they are Cesium `JulianDate` instances, which this
|
|
67
|
+
* module never constructs itself — it asks the lazily-loaded peer for them.
|
|
68
|
+
*/
|
|
69
|
+
export interface CesiumClockLike {
|
|
70
|
+
currentTime?: unknown;
|
|
71
|
+
startTime?: unknown;
|
|
72
|
+
stopTime?: unknown;
|
|
73
|
+
multiplier?: number;
|
|
74
|
+
shouldAnimate?: boolean;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* A scene target that may carry a clock. {@link CesiumSceneRuntimeTarget}
|
|
78
|
+
* extends this, so anything the adapter accepts can drive time.
|
|
79
|
+
*/
|
|
80
|
+
export interface CesiumClockTarget {
|
|
81
|
+
/**
|
|
82
|
+
* Opt-in application-time binding: the live Cesium `Clock` (`viewer.clock`).
|
|
83
|
+
* Omit it and the adapter never reads or writes a clock — a declared
|
|
84
|
+
* application time is then reported as `scene-time-clock-unbound` instead of
|
|
85
|
+
* being silently dropped.
|
|
86
|
+
*/
|
|
87
|
+
readonly clock?: CesiumClockLike;
|
|
88
|
+
/** Who owns transport on {@link clock}. Defaults to `"adapter"`. */
|
|
89
|
+
readonly clockOwnership?: CesiumClockOwnership;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* The Cesium symbols the clock binding needs. Modelled as the minimal slice of
|
|
93
|
+
* `typeof import("cesium")` so an injected stub satisfies it without a live
|
|
94
|
+
* `Viewer`.
|
|
95
|
+
*/
|
|
96
|
+
export interface CesiumClockRuntimeModule {
|
|
97
|
+
readonly JulianDate: {
|
|
98
|
+
fromIso8601(value: string): unknown;
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/** Inject the peer, or a lazy loader for it. */
|
|
102
|
+
export type CesiumClockRuntimeLoader = () => Promise<CesiumClockRuntimeModule>;
|
|
103
|
+
/**
|
|
104
|
+
* The exact writes a {@link SceneTimelineState} implies for a Cesium `Clock`.
|
|
105
|
+
*
|
|
106
|
+
* Instants stay ISO-8601 strings here — this plan is computable, comparable, and
|
|
107
|
+
* loggable without the Cesium peer, which is what keeps time diagnostics
|
|
108
|
+
* available to a host that has not loaded CesiumJS.
|
|
109
|
+
*/
|
|
110
|
+
export interface CesiumClockPlan {
|
|
111
|
+
/** Canonical application time → `Clock.currentTime`. */
|
|
112
|
+
readonly currentTime?: string;
|
|
113
|
+
/** Timeline extent start → `Clock.startTime`. */
|
|
114
|
+
readonly startTime?: string;
|
|
115
|
+
/** Timeline extent end → `Clock.stopTime`. */
|
|
116
|
+
readonly stopTime?: string;
|
|
117
|
+
/** Clock rate → `Clock.multiplier` (simulated seconds per real second). */
|
|
118
|
+
readonly multiplier?: number;
|
|
119
|
+
/** Transport → `Clock.shouldAnimate`. */
|
|
120
|
+
readonly shouldAnimate?: boolean;
|
|
121
|
+
/**
|
|
122
|
+
* Timeline fields that were declared but could not be interpreted (an
|
|
123
|
+
* unparseable instant, a non-finite rate, an inverted extent). They are named
|
|
124
|
+
* rather than dropped: a plan with a non-empty `rejected` list is what raises
|
|
125
|
+
* `scene-time-invalid`.
|
|
126
|
+
*/
|
|
127
|
+
readonly rejected: readonly string[];
|
|
128
|
+
}
|
|
129
|
+
/** The clock values a binding displaced, kept so they can be restored exactly. */
|
|
130
|
+
export interface CesiumClockSnapshot {
|
|
131
|
+
readonly currentTime: unknown;
|
|
132
|
+
readonly startTime: unknown;
|
|
133
|
+
readonly stopTime: unknown;
|
|
134
|
+
readonly multiplier: number | undefined;
|
|
135
|
+
readonly shouldAnimate: boolean | undefined;
|
|
136
|
+
}
|
|
137
|
+
/** Stable diagnostic codes emitted by the Cesium time binding. */
|
|
138
|
+
export type SceneTimeDiagnosticCode = "scene-time-applied" | "scene-time-host-owned" | "scene-time-clock-unbound" | "scene-time-invalid" | "scene-time-runtime-unavailable";
|
|
139
|
+
/**
|
|
140
|
+
* Translate a renderer-neutral timeline slice into Cesium clock writes.
|
|
141
|
+
*
|
|
142
|
+
* Pure: no Cesium import, no clock, no side effect. Returns `undefined` when the
|
|
143
|
+
* timeline declares nothing at all, so an empty slice (the default workspace
|
|
144
|
+
* state) produces no diagnostic and no write.
|
|
145
|
+
*
|
|
146
|
+
* `currentTime`, `startTime`, and `endTime` are ISO-8601 in the workspace
|
|
147
|
+
* contract and are passed through as strings for `JulianDate.fromIso8601`; each
|
|
148
|
+
* is validated with `Date.parse` first so an unparseable instant is *named*
|
|
149
|
+
* rather than handed to Cesium. The extent is applied only when both ends parse
|
|
150
|
+
* and `start < end`, because a half or inverted extent would leave a Cesium
|
|
151
|
+
* `Timeline` widget describing a range that does not exist.
|
|
152
|
+
*/
|
|
153
|
+
export declare function sceneTimelineToCesiumClockPlan(timeline: SceneTimelineState | undefined): CesiumClockPlan | undefined;
|
|
154
|
+
/** Whether a plan would actually write anything to a clock. */
|
|
155
|
+
export declare function cesiumClockPlanWrites(plan: CesiumClockPlan | undefined): boolean;
|
|
156
|
+
/** Read the clock values a plan is about to displace. */
|
|
157
|
+
export declare function readCesiumClock(clock: CesiumClockLike): CesiumClockSnapshot;
|
|
158
|
+
/** Restore a clock to a snapshot taken by {@link readCesiumClock}. */
|
|
159
|
+
export declare function restoreCesiumClock(clock: CesiumClockLike, snapshot: CesiumClockSnapshot): void;
|
|
160
|
+
/**
|
|
161
|
+
* Apply a {@link CesiumClockPlan} to a live clock and return what it displaced.
|
|
162
|
+
*
|
|
163
|
+
* The extent is written before `currentTime` so a clock whose `clockRange`
|
|
164
|
+
* clamps to `[startTime, stopTime]` accepts the new instant rather than pinning
|
|
165
|
+
* it to the previous range's edge.
|
|
166
|
+
*/
|
|
167
|
+
export declare function applyCesiumClockPlan(clock: CesiumClockLike, plan: CesiumClockPlan, runtime: CesiumClockRuntimeModule): CesiumClockSnapshot;
|
|
168
|
+
/** Whether a loaded peer exposes the time symbols the clock binding needs. */
|
|
169
|
+
export declare function isCesiumClockRuntime(runtime: unknown): runtime is CesiumClockRuntimeModule;
|
|
170
|
+
/** The outcome of one time application, ready to fold into an apply result. */
|
|
171
|
+
export interface CesiumSceneTimeApplication {
|
|
172
|
+
/** `true` when at least one clock field was written. */
|
|
173
|
+
readonly applied: boolean;
|
|
174
|
+
/** What the plan asked for, whether or not it was applied. */
|
|
175
|
+
readonly plan: CesiumClockPlan | undefined;
|
|
176
|
+
/** Displaced values, present only when something was written. */
|
|
177
|
+
readonly previous: CesiumClockSnapshot | undefined;
|
|
178
|
+
readonly diagnostics: readonly ScenePrimitiveDiagnostic[];
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Bind the workspace timeline slice to a scene target's clock.
|
|
182
|
+
*
|
|
183
|
+
* Every arm reports itself, so the diagnostic list always answers "did the
|
|
184
|
+
* application time reach the globe, and if not, why":
|
|
185
|
+
*
|
|
186
|
+
* | Situation | Code | Status |
|
|
187
|
+
* | --- | --- | --- |
|
|
188
|
+
* | Written to the clock | `scene-time-applied` | supported |
|
|
189
|
+
* | `clockOwnership: "host"` | `scene-time-host-owned` | supported |
|
|
190
|
+
* | Time declared, no clock on the target | `scene-time-clock-unbound` | degraded |
|
|
191
|
+
* | Time declared but uninterpretable | `scene-time-invalid` | degraded |
|
|
192
|
+
* | Peer has no usable `JulianDate` | `scene-time-runtime-unavailable` | degraded |
|
|
193
|
+
*
|
|
194
|
+
* The `rebuildBoundary: "none"` on `scene-time-applied` is load-bearing: it
|
|
195
|
+
* states, in the same vocabulary the mount uses for plan revisions, that moving
|
|
196
|
+
* time rebuilt nothing.
|
|
197
|
+
*/
|
|
198
|
+
export declare function applyCesiumSceneTime(target: CesiumClockTarget, timeline: SceneTimelineState | undefined, runtime: unknown): CesiumSceneTimeApplication;
|
|
199
|
+
/**
|
|
200
|
+
* What an update had to cross to land.
|
|
201
|
+
*
|
|
202
|
+
* - `none` — applied in place. The binding's renderer resource was reused
|
|
203
|
+
* untouched. Advancing application time is always this.
|
|
204
|
+
* - `primitive-identity` — the binding is new to this mount (kind + id were not
|
|
205
|
+
* previously mounted), so its resource was constructed.
|
|
206
|
+
* - `primitive-configuration` — the binding's configuration fingerprint changed,
|
|
207
|
+
* so its resource was rebuilt. This is the boundary a realtime data delta
|
|
208
|
+
* crosses when it revises a binding rather than only its time.
|
|
209
|
+
* - `plan-membership` — the binding left the plan, so its resource was released.
|
|
210
|
+
* - `unfingerprintable` — the primitive could not be fingerprinted
|
|
211
|
+
* deterministically, so it was rebuilt conservatively rather than assumed
|
|
212
|
+
* unchanged.
|
|
213
|
+
*/
|
|
214
|
+
export type SceneRebuildBoundary = "none" | "primitive-identity" | "primitive-configuration" | "plan-membership" | "unfingerprintable";
|
|
215
|
+
/** The boundary vocabulary, in escalation order. */
|
|
216
|
+
export declare const SCENE_REBUILD_BOUNDARIES: readonly SceneRebuildBoundary[];
|
|
217
|
+
/** One binding's outcome across an update. */
|
|
218
|
+
export interface SceneRebuildBoundaryReport {
|
|
219
|
+
readonly id: string;
|
|
220
|
+
readonly kind: SceneRuntimePrimitiveKind;
|
|
221
|
+
readonly boundary: SceneRebuildBoundary;
|
|
222
|
+
/** `true` when the binding's renderer resource survived the update untouched. */
|
|
223
|
+
readonly incremental: boolean;
|
|
224
|
+
readonly reason: string;
|
|
225
|
+
}
|
|
226
|
+
/** Build one boundary report with the vocabulary's own stable reason text. */
|
|
227
|
+
export declare function sceneRebuildBoundaryReport(id: string, kind: SceneRuntimePrimitiveKind, boundary: SceneRebuildBoundary): SceneRebuildBoundaryReport;
|
|
228
|
+
/** A half-open window `[start, end)` in epoch milliseconds. */
|
|
229
|
+
export interface CesiumTemporalPlaybackWindow {
|
|
230
|
+
readonly start: number;
|
|
231
|
+
readonly end: number;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* The structural slice of a temporal playback controller this binding drives.
|
|
235
|
+
*
|
|
236
|
+
* Declared here rather than imported so `scene-workspace` never pulls the `/map`
|
|
237
|
+
* entrypoint into its graph — the same structural-typing posture
|
|
238
|
+
* `<honua-time-slider>` takes with `HonuaTimeSliderPlayback`. A
|
|
239
|
+
* `createTemporalPlayback()` controller satisfies it exactly.
|
|
240
|
+
*/
|
|
241
|
+
export interface CesiumTemporalPlayback {
|
|
242
|
+
readonly playing: boolean;
|
|
243
|
+
/** The window currently applied by the controller. */
|
|
244
|
+
readonly window: CesiumTemporalPlaybackWindow;
|
|
245
|
+
/** The full playable extent. */
|
|
246
|
+
readonly extent: CesiumTemporalPlaybackWindow;
|
|
247
|
+
/** Current playback rate multiplier, when the controller exposes one. */
|
|
248
|
+
readonly speed?: number;
|
|
249
|
+
on(type: "tick", listener: (event: {
|
|
250
|
+
window: CesiumTemporalPlaybackWindow;
|
|
251
|
+
}) => void): {
|
|
252
|
+
remove(): void;
|
|
253
|
+
};
|
|
254
|
+
on(type: "play" | "pause" | "end", listener: () => void): {
|
|
255
|
+
remove(): void;
|
|
256
|
+
};
|
|
257
|
+
on(type: "error", listener: (error: unknown) => void): {
|
|
258
|
+
remove(): void;
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Which edge of the playback window becomes the clock's instant.
|
|
263
|
+
*
|
|
264
|
+
* A playback window is an interval and a Cesium clock is an instant, so the
|
|
265
|
+
* mapping is `equivalent`, never exact. `"window-start"` (the default) matches
|
|
266
|
+
* `<honua-time-slider>`'s `aria-valuenow` and the controller's own `scrub()` and
|
|
267
|
+
* `progress` semantics, so a slider and a globe agree on what time it is.
|
|
268
|
+
* `"window-end"` binds the window's leading edge instead, which is what a
|
|
269
|
+
* trailing-window live feed usually means by "now".
|
|
270
|
+
*/
|
|
271
|
+
export type CesiumTemporalPlaybackInstant = "window-start" | "window-end";
|
|
272
|
+
/**
|
|
273
|
+
* How the binding treats Cesium's own clock animation.
|
|
274
|
+
*
|
|
275
|
+
* - `"paused"` (default): `shouldAnimate` is set to `false` for as long as the
|
|
276
|
+
* binding is live. The controller is the transport and the SDK is the only
|
|
277
|
+
* writer of `currentTime`; letting Cesium animate the same clock would put two
|
|
278
|
+
* drivers on it.
|
|
279
|
+
* - `"mirror"`: `shouldAnimate` follows `playback.playing` and `Clock.multiplier`
|
|
280
|
+
* follows `playback.speed`, scaled by whatever multiplier the clock carried at
|
|
281
|
+
* bind time. Cesium then interpolates between the controller's frames and the
|
|
282
|
+
* controller re-anchors it to canonical time on every tick. Use it when
|
|
283
|
+
* entity interpolation should look continuous rather than stepped.
|
|
284
|
+
*/
|
|
285
|
+
export type CesiumTemporalPlaybackTransport = "paused" | "mirror";
|
|
286
|
+
/** Options for {@link bindTemporalPlaybackToCesium}. */
|
|
287
|
+
export interface BindTemporalPlaybackToCesiumOptions {
|
|
288
|
+
/** Which window edge becomes `Clock.currentTime`. @default "window-start" */
|
|
289
|
+
readonly instant?: CesiumTemporalPlaybackInstant;
|
|
290
|
+
/** How Cesium's own clock animation is treated. @default "paused" */
|
|
291
|
+
readonly transport?: CesiumTemporalPlaybackTransport;
|
|
292
|
+
/**
|
|
293
|
+
* Write `Clock.startTime` / `Clock.stopTime` from the controller's extent so a
|
|
294
|
+
* Cesium `Timeline` widget shows the playable range. @default true
|
|
295
|
+
*/
|
|
296
|
+
readonly bindExtent?: boolean;
|
|
297
|
+
/** Apply the controller's current window immediately on bind. @default true */
|
|
298
|
+
readonly applyImmediately?: boolean;
|
|
299
|
+
/** Inject the peer or a lazy loader. Omit to use `import("cesium")`. */
|
|
300
|
+
readonly cesium?: CesiumClockRuntimeModule | CesiumClockRuntimeLoader;
|
|
301
|
+
}
|
|
302
|
+
/** Why a binding stood down instead of driving the clock. */
|
|
303
|
+
export type CesiumTemporalPlaybackRefusal = "clock-unbound" | "host-owned" | "runtime-unavailable";
|
|
304
|
+
/** The handle returned by {@link bindTemporalPlaybackToCesium}. */
|
|
305
|
+
export interface CesiumTemporalPlaybackBinding {
|
|
306
|
+
/** `false` when the binding stood down; see {@link refusal}. */
|
|
307
|
+
readonly bound: boolean;
|
|
308
|
+
/** Present exactly when {@link bound} is `false`. */
|
|
309
|
+
readonly refusal?: CesiumTemporalPlaybackRefusal;
|
|
310
|
+
/** How many controller events have been written to the clock. */
|
|
311
|
+
readonly applications: number;
|
|
312
|
+
/** The most recent plan written (or, when unbound, the one that was refused). */
|
|
313
|
+
readonly plan: CesiumClockPlan | undefined;
|
|
314
|
+
/**
|
|
315
|
+
* Drop the controller subscriptions and restore the clock exactly as it was at
|
|
316
|
+
* bind time. Idempotent. A binding that never wrote restores nothing.
|
|
317
|
+
*/
|
|
318
|
+
dispose(): void;
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Drive a live Cesium clock from a renderer-neutral temporal playback
|
|
322
|
+
* controller.
|
|
323
|
+
*
|
|
324
|
+
* This is the Cesium sink `createTemporalPlayback()` never had: the same
|
|
325
|
+
* controller instance can hold a MapLibre filter binding, a data-to-map bridge
|
|
326
|
+
* `where` clause, a `<honua-time-slider>` view, and now a globe, without any of
|
|
327
|
+
* them knowing about the others.
|
|
328
|
+
*
|
|
329
|
+
* Ownership is the target's, not this function's: a target with no clock, or one
|
|
330
|
+
* that declares `clockOwnership: "host"`, gets an inert binding whose `refusal`
|
|
331
|
+
* names why. Nothing is written and nothing is thrown — a UI binding must not
|
|
332
|
+
* explode because the host drives its own clock.
|
|
333
|
+
*
|
|
334
|
+
* @example
|
|
335
|
+
* ```ts doc-test=skip reason="requires a live Cesium Viewer and a mounted source"
|
|
336
|
+
* const playback = createTemporalPlayback({ handle: mounted, timeField: "observed_at", ... });
|
|
337
|
+
* const binding = await bindTemporalPlaybackToCesium(
|
|
338
|
+
* { camera: viewer.camera, scene: viewer.scene, clock: viewer.clock },
|
|
339
|
+
* playback,
|
|
340
|
+
* );
|
|
341
|
+
* playback.play(); // the globe's clock now follows the controller
|
|
342
|
+
* binding.dispose(); // the clock is restored exactly as it was
|
|
343
|
+
* ```
|
|
344
|
+
*/
|
|
345
|
+
export declare function bindTemporalPlaybackToCesium(target: CesiumClockTarget, playback: CesiumTemporalPlayback, options?: BindTemporalPlaybackToCesiumOptions): Promise<CesiumTemporalPlaybackBinding>;
|
|
346
|
+
//# sourceMappingURL=cesium-time.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cesium-time.d.ts","sourceRoot":"","sources":["../../../src/scene-workspace/cesium-time.ts"],"names":[],"mappings":"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"}
|