@honua/app-platform 0.1.1-beta.0 → 0.1.4-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/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 +87 -18
- package/contract/types.d.ts.map +1 -1
- 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 +45 -21
- package/core/client.d.ts.map +1 -1
- package/core/client.js +224 -46
- package/core/error-classifications.d.ts +6 -0
- package/core/error-classifications.d.ts.map +1 -1
- package/core/error-classifications.js +6 -0
- package/core/error-code-registry.d.ts +6 -0
- package/core/error-code-registry.d.ts.map +1 -1
- package/core/error-code-registry.js +6 -0
- package/core/error-envelope.js +2 -0
- package/core/errors.d.ts +1 -1
- package/core/errors.js +1 -1
- package/core/geoparquet-sql.d.ts +68 -4
- package/core/geoparquet-sql.d.ts.map +1 -1
- package/core/geoparquet-sql.js +325 -8
- 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 +31 -0
- package/core/stac.d.ts.map +1 -1
- package/core/stac.js +136 -19
- package/core/surfaces.d.ts.map +1 -1
- package/core/surfaces.js +273 -68
- package/core/types.d.ts +123 -9
- 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/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/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/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/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,403 @@
|
|
|
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
|
+
/**
|
|
50
|
+
* Translate a renderer-neutral timeline slice into Cesium clock writes.
|
|
51
|
+
*
|
|
52
|
+
* Pure: no Cesium import, no clock, no side effect. Returns `undefined` when the
|
|
53
|
+
* timeline declares nothing at all, so an empty slice (the default workspace
|
|
54
|
+
* state) produces no diagnostic and no write.
|
|
55
|
+
*
|
|
56
|
+
* `currentTime`, `startTime`, and `endTime` are ISO-8601 in the workspace
|
|
57
|
+
* contract and are passed through as strings for `JulianDate.fromIso8601`; each
|
|
58
|
+
* is validated with `Date.parse` first so an unparseable instant is *named*
|
|
59
|
+
* rather than handed to Cesium. The extent is applied only when both ends parse
|
|
60
|
+
* and `start < end`, because a half or inverted extent would leave a Cesium
|
|
61
|
+
* `Timeline` widget describing a range that does not exist.
|
|
62
|
+
*/
|
|
63
|
+
export function sceneTimelineToCesiumClockPlan(timeline) {
|
|
64
|
+
if (!timeline)
|
|
65
|
+
return undefined;
|
|
66
|
+
const declared = timeline.currentTime !== undefined ||
|
|
67
|
+
timeline.startTime !== undefined ||
|
|
68
|
+
timeline.endTime !== undefined ||
|
|
69
|
+
timeline.playing !== undefined ||
|
|
70
|
+
timeline.speed !== undefined;
|
|
71
|
+
if (!declared)
|
|
72
|
+
return undefined;
|
|
73
|
+
const rejected = [];
|
|
74
|
+
const instant = (value, label) => {
|
|
75
|
+
if (value === undefined)
|
|
76
|
+
return undefined;
|
|
77
|
+
if (typeof value !== "string" || Number.isNaN(Date.parse(value))) {
|
|
78
|
+
rejected.push(label);
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
return value;
|
|
82
|
+
};
|
|
83
|
+
const currentTime = instant(timeline.currentTime, "currentTime");
|
|
84
|
+
const startTime = instant(timeline.startTime, "startTime");
|
|
85
|
+
const endTime = instant(timeline.endTime, "endTime");
|
|
86
|
+
const extentOrdered = startTime !== undefined && endTime !== undefined ? Date.parse(startTime) < Date.parse(endTime) : false;
|
|
87
|
+
if (startTime !== undefined && endTime !== undefined && !extentOrdered)
|
|
88
|
+
rejected.push("extent");
|
|
89
|
+
let multiplier;
|
|
90
|
+
if (timeline.speed !== undefined) {
|
|
91
|
+
if (typeof timeline.speed === "number" && Number.isFinite(timeline.speed))
|
|
92
|
+
multiplier = timeline.speed;
|
|
93
|
+
else
|
|
94
|
+
rejected.push("speed");
|
|
95
|
+
}
|
|
96
|
+
const shouldAnimate = typeof timeline.playing === "boolean" ? timeline.playing : undefined;
|
|
97
|
+
if (timeline.playing !== undefined && shouldAnimate === undefined)
|
|
98
|
+
rejected.push("playing");
|
|
99
|
+
return Object.freeze({
|
|
100
|
+
...(currentTime === undefined ? {} : { currentTime }),
|
|
101
|
+
...(extentOrdered ? { startTime, stopTime: endTime } : {}),
|
|
102
|
+
...(multiplier === undefined ? {} : { multiplier }),
|
|
103
|
+
...(shouldAnimate === undefined ? {} : { shouldAnimate }),
|
|
104
|
+
rejected: Object.freeze(rejected),
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
/** Whether a plan would actually write anything to a clock. */
|
|
108
|
+
export function cesiumClockPlanWrites(plan) {
|
|
109
|
+
if (!plan)
|
|
110
|
+
return false;
|
|
111
|
+
return (plan.currentTime !== undefined ||
|
|
112
|
+
plan.startTime !== undefined ||
|
|
113
|
+
plan.stopTime !== undefined ||
|
|
114
|
+
plan.multiplier !== undefined ||
|
|
115
|
+
plan.shouldAnimate !== undefined);
|
|
116
|
+
}
|
|
117
|
+
/** Read the clock values a plan is about to displace. */
|
|
118
|
+
export function readCesiumClock(clock) {
|
|
119
|
+
return {
|
|
120
|
+
currentTime: clock.currentTime,
|
|
121
|
+
startTime: clock.startTime,
|
|
122
|
+
stopTime: clock.stopTime,
|
|
123
|
+
multiplier: clock.multiplier,
|
|
124
|
+
shouldAnimate: clock.shouldAnimate,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
/** Restore a clock to a snapshot taken by {@link readCesiumClock}. */
|
|
128
|
+
export function restoreCesiumClock(clock, snapshot) {
|
|
129
|
+
clock.currentTime = snapshot.currentTime;
|
|
130
|
+
clock.startTime = snapshot.startTime;
|
|
131
|
+
clock.stopTime = snapshot.stopTime;
|
|
132
|
+
clock.multiplier = snapshot.multiplier;
|
|
133
|
+
clock.shouldAnimate = snapshot.shouldAnimate;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Apply a {@link CesiumClockPlan} to a live clock and return what it displaced.
|
|
137
|
+
*
|
|
138
|
+
* The extent is written before `currentTime` so a clock whose `clockRange`
|
|
139
|
+
* clamps to `[startTime, stopTime]` accepts the new instant rather than pinning
|
|
140
|
+
* it to the previous range's edge.
|
|
141
|
+
*/
|
|
142
|
+
export function applyCesiumClockPlan(clock, plan, runtime) {
|
|
143
|
+
const previous = readCesiumClock(clock);
|
|
144
|
+
if (plan.startTime !== undefined && plan.stopTime !== undefined) {
|
|
145
|
+
clock.startTime = runtime.JulianDate.fromIso8601(plan.startTime);
|
|
146
|
+
clock.stopTime = runtime.JulianDate.fromIso8601(plan.stopTime);
|
|
147
|
+
}
|
|
148
|
+
if (plan.currentTime !== undefined)
|
|
149
|
+
clock.currentTime = runtime.JulianDate.fromIso8601(plan.currentTime);
|
|
150
|
+
if (plan.multiplier !== undefined)
|
|
151
|
+
clock.multiplier = plan.multiplier;
|
|
152
|
+
if (plan.shouldAnimate !== undefined)
|
|
153
|
+
clock.shouldAnimate = plan.shouldAnimate;
|
|
154
|
+
return previous;
|
|
155
|
+
}
|
|
156
|
+
/** Whether a loaded peer exposes the time symbols the clock binding needs. */
|
|
157
|
+
export function isCesiumClockRuntime(runtime) {
|
|
158
|
+
if (runtime === null || typeof runtime !== "object")
|
|
159
|
+
return false;
|
|
160
|
+
const julian = runtime.JulianDate;
|
|
161
|
+
return typeof julian?.fromIso8601 === "function";
|
|
162
|
+
}
|
|
163
|
+
const NO_TIME_APPLICATION = Object.freeze({
|
|
164
|
+
applied: false,
|
|
165
|
+
plan: undefined,
|
|
166
|
+
previous: undefined,
|
|
167
|
+
diagnostics: Object.freeze([]),
|
|
168
|
+
});
|
|
169
|
+
function timeDiagnostic(code, severity, status, message, context, fallback) {
|
|
170
|
+
return {
|
|
171
|
+
code,
|
|
172
|
+
severity,
|
|
173
|
+
status,
|
|
174
|
+
renderer: "cesium",
|
|
175
|
+
message,
|
|
176
|
+
...(fallback === undefined ? {} : { fallback }),
|
|
177
|
+
context,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
function planContext(plan) {
|
|
181
|
+
return {
|
|
182
|
+
...(plan.currentTime === undefined ? {} : { currentTime: plan.currentTime }),
|
|
183
|
+
...(plan.startTime === undefined ? {} : { startTime: plan.startTime }),
|
|
184
|
+
...(plan.stopTime === undefined ? {} : { stopTime: plan.stopTime }),
|
|
185
|
+
...(plan.multiplier === undefined ? {} : { multiplier: plan.multiplier }),
|
|
186
|
+
...(plan.shouldAnimate === undefined ? {} : { shouldAnimate: plan.shouldAnimate }),
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Bind the workspace timeline slice to a scene target's clock.
|
|
191
|
+
*
|
|
192
|
+
* Every arm reports itself, so the diagnostic list always answers "did the
|
|
193
|
+
* application time reach the globe, and if not, why":
|
|
194
|
+
*
|
|
195
|
+
* | Situation | Code | Status |
|
|
196
|
+
* | --- | --- | --- |
|
|
197
|
+
* | Written to the clock | `scene-time-applied` | supported |
|
|
198
|
+
* | `clockOwnership: "host"` | `scene-time-host-owned` | supported |
|
|
199
|
+
* | Time declared, no clock on the target | `scene-time-clock-unbound` | degraded |
|
|
200
|
+
* | Time declared but uninterpretable | `scene-time-invalid` | degraded |
|
|
201
|
+
* | Peer has no usable `JulianDate` | `scene-time-runtime-unavailable` | degraded |
|
|
202
|
+
*
|
|
203
|
+
* The `rebuildBoundary: "none"` on `scene-time-applied` is load-bearing: it
|
|
204
|
+
* states, in the same vocabulary the mount uses for plan revisions, that moving
|
|
205
|
+
* time rebuilt nothing.
|
|
206
|
+
*/
|
|
207
|
+
export function applyCesiumSceneTime(target, timeline, runtime) {
|
|
208
|
+
const plan = sceneTimelineToCesiumClockPlan(timeline);
|
|
209
|
+
if (!plan)
|
|
210
|
+
return NO_TIME_APPLICATION;
|
|
211
|
+
if (plan.rejected.length > 0 && !cesiumClockPlanWrites(plan)) {
|
|
212
|
+
return {
|
|
213
|
+
applied: false,
|
|
214
|
+
plan,
|
|
215
|
+
previous: undefined,
|
|
216
|
+
diagnostics: [
|
|
217
|
+
timeDiagnostic("scene-time-invalid", "warning", "degraded", `The scene timeline declares application time this adapter cannot interpret: ${plan.rejected.join(", ")}.`, { rejected: [...plan.rejected] }, "Supply ISO-8601 instants (and a finite speed) on the workspace timeline slice."),
|
|
218
|
+
],
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
const ownership = target.clockOwnership ?? "adapter";
|
|
222
|
+
if (!target.clock) {
|
|
223
|
+
return {
|
|
224
|
+
applied: false,
|
|
225
|
+
plan,
|
|
226
|
+
previous: undefined,
|
|
227
|
+
diagnostics: [
|
|
228
|
+
timeDiagnostic("scene-time-clock-unbound", "warning", "degraded", "The scene timeline declares an application time, but no Cesium clock is bound to this target.", { ...planContext(plan), ownership }, "Attach the viewer's clock to the scene target: `{ camera: viewer.camera, scene: viewer.scene, clock: viewer.clock }`."),
|
|
229
|
+
],
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
if (ownership === "host") {
|
|
233
|
+
return {
|
|
234
|
+
applied: false,
|
|
235
|
+
plan,
|
|
236
|
+
previous: undefined,
|
|
237
|
+
diagnostics: [
|
|
238
|
+
timeDiagnostic("scene-time-host-owned", "info", "supported", "The host owns this Cesium clock; the adapter reported the application time without writing it.", { ...planContext(plan), ownership }),
|
|
239
|
+
],
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
if (!isCesiumClockRuntime(runtime)) {
|
|
243
|
+
return {
|
|
244
|
+
applied: false,
|
|
245
|
+
plan,
|
|
246
|
+
previous: undefined,
|
|
247
|
+
diagnostics: [
|
|
248
|
+
timeDiagnostic("scene-time-runtime-unavailable", "warning", "degraded", "The loaded Cesium runtime does not expose JulianDate.fromIso8601, so application time cannot be bound.", { ...planContext(plan), ownership }, "Upgrade the `cesium` peer to a build that exports JulianDate."),
|
|
249
|
+
],
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
const previous = applyCesiumClockPlan(target.clock, plan, runtime);
|
|
253
|
+
const diagnostics = [
|
|
254
|
+
timeDiagnostic("scene-time-applied", "info", "supported", "Bound canonical application time to the Cesium clock without rebuilding any scene primitive.", { ...planContext(plan), ownership, rebuildBoundary: "none" }),
|
|
255
|
+
];
|
|
256
|
+
if (plan.rejected.length > 0) {
|
|
257
|
+
diagnostics.push(timeDiagnostic("scene-time-invalid", "warning", "degraded", `Part of the scene timeline could not be interpreted and was not applied: ${plan.rejected.join(", ")}.`, { rejected: [...plan.rejected] }, "Supply ISO-8601 instants (and a finite speed) on the workspace timeline slice."));
|
|
258
|
+
}
|
|
259
|
+
return { applied: true, plan, previous, diagnostics };
|
|
260
|
+
}
|
|
261
|
+
/** The boundary vocabulary, in escalation order. */
|
|
262
|
+
export const SCENE_REBUILD_BOUNDARIES = Object.freeze([
|
|
263
|
+
"none",
|
|
264
|
+
"primitive-identity",
|
|
265
|
+
"primitive-configuration",
|
|
266
|
+
"plan-membership",
|
|
267
|
+
"unfingerprintable",
|
|
268
|
+
]);
|
|
269
|
+
const BOUNDARY_REASONS = Object.freeze({
|
|
270
|
+
none: "Identity and configuration are unchanged; the renderer resource was reused.",
|
|
271
|
+
"primitive-identity": "The binding was not previously mounted; its renderer resource was constructed.",
|
|
272
|
+
"primitive-configuration": "The configuration fingerprint changed; the renderer resource was rebuilt.",
|
|
273
|
+
"plan-membership": "The binding left the plan; its renderer resource was released.",
|
|
274
|
+
unfingerprintable: "The primitive could not be fingerprinted deterministically and was rebuilt conservatively.",
|
|
275
|
+
});
|
|
276
|
+
/** Build one boundary report with the vocabulary's own stable reason text. */
|
|
277
|
+
export function sceneRebuildBoundaryReport(id, kind, boundary) {
|
|
278
|
+
return Object.freeze({
|
|
279
|
+
id,
|
|
280
|
+
kind,
|
|
281
|
+
boundary,
|
|
282
|
+
incremental: boundary === "none",
|
|
283
|
+
reason: BOUNDARY_REASONS[boundary],
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
async function loadCesiumClockRuntime(source) {
|
|
287
|
+
if (typeof source === "function")
|
|
288
|
+
return source();
|
|
289
|
+
if (source !== undefined)
|
|
290
|
+
return source;
|
|
291
|
+
return await import("cesium");
|
|
292
|
+
}
|
|
293
|
+
function refusedBinding(refusal, plan) {
|
|
294
|
+
return {
|
|
295
|
+
bound: false,
|
|
296
|
+
refusal,
|
|
297
|
+
applications: 0,
|
|
298
|
+
plan,
|
|
299
|
+
dispose() {
|
|
300
|
+
/* nothing was subscribed and nothing was written */
|
|
301
|
+
},
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Drive a live Cesium clock from a renderer-neutral temporal playback
|
|
306
|
+
* controller.
|
|
307
|
+
*
|
|
308
|
+
* This is the Cesium sink `createTemporalPlayback()` never had: the same
|
|
309
|
+
* controller instance can hold a MapLibre filter binding, a data-to-map bridge
|
|
310
|
+
* `where` clause, a `<honua-time-slider>` view, and now a globe, without any of
|
|
311
|
+
* them knowing about the others.
|
|
312
|
+
*
|
|
313
|
+
* Ownership is the target's, not this function's: a target with no clock, or one
|
|
314
|
+
* that declares `clockOwnership: "host"`, gets an inert binding whose `refusal`
|
|
315
|
+
* names why. Nothing is written and nothing is thrown — a UI binding must not
|
|
316
|
+
* explode because the host drives its own clock.
|
|
317
|
+
*
|
|
318
|
+
* @example
|
|
319
|
+
* ```ts doc-test=skip reason="requires a live Cesium Viewer and a mounted source"
|
|
320
|
+
* const playback = createTemporalPlayback({ handle: mounted, timeField: "observed_at", ... });
|
|
321
|
+
* const binding = await bindTemporalPlaybackToCesium(
|
|
322
|
+
* { camera: viewer.camera, scene: viewer.scene, clock: viewer.clock },
|
|
323
|
+
* playback,
|
|
324
|
+
* );
|
|
325
|
+
* playback.play(); // the globe's clock now follows the controller
|
|
326
|
+
* binding.dispose(); // the clock is restored exactly as it was
|
|
327
|
+
* ```
|
|
328
|
+
*/
|
|
329
|
+
export async function bindTemporalPlaybackToCesium(target, playback, options = {}) {
|
|
330
|
+
const instant = options.instant ?? "window-start";
|
|
331
|
+
const transport = options.transport ?? "paused";
|
|
332
|
+
const bindExtent = options.bindExtent !== false;
|
|
333
|
+
// The clock's rate at bind time is the reference the controller's multiplier
|
|
334
|
+
// scales, so `speed: 2` means "twice whatever the host configured" rather than
|
|
335
|
+
// silently redefining the host's simulation rate as 1.
|
|
336
|
+
let baseMultiplier = 1;
|
|
337
|
+
const timelineFor = (window) => {
|
|
338
|
+
const at = instant === "window-end" ? window.end : window.start;
|
|
339
|
+
return {
|
|
340
|
+
currentTime: new Date(at).toISOString(),
|
|
341
|
+
...(bindExtent
|
|
342
|
+
? {
|
|
343
|
+
startTime: new Date(playback.extent.start).toISOString(),
|
|
344
|
+
endTime: new Date(playback.extent.end).toISOString(),
|
|
345
|
+
}
|
|
346
|
+
: {}),
|
|
347
|
+
playing: transport === "mirror" ? playback.playing : false,
|
|
348
|
+
...(transport === "mirror" ? { speed: (playback.speed ?? 1) * baseMultiplier } : {}),
|
|
349
|
+
};
|
|
350
|
+
};
|
|
351
|
+
const planFor = (window) => sceneTimelineToCesiumClockPlan(timelineFor(window));
|
|
352
|
+
const ownership = target.clockOwnership ?? "adapter";
|
|
353
|
+
const clock = target.clock;
|
|
354
|
+
if (!clock)
|
|
355
|
+
return refusedBinding("clock-unbound", planFor(playback.window));
|
|
356
|
+
if (ownership === "host")
|
|
357
|
+
return refusedBinding("host-owned", planFor(playback.window));
|
|
358
|
+
const runtime = await loadCesiumClockRuntime(options.cesium);
|
|
359
|
+
if (!isCesiumClockRuntime(runtime))
|
|
360
|
+
return refusedBinding("runtime-unavailable", planFor(playback.window));
|
|
361
|
+
const restore = readCesiumClock(clock);
|
|
362
|
+
if (typeof restore.multiplier === "number" && Number.isFinite(restore.multiplier) && restore.multiplier !== 0) {
|
|
363
|
+
baseMultiplier = restore.multiplier;
|
|
364
|
+
}
|
|
365
|
+
let applications = 0;
|
|
366
|
+
let plan;
|
|
367
|
+
let disposed = false;
|
|
368
|
+
const write = (window) => {
|
|
369
|
+
if (disposed)
|
|
370
|
+
return;
|
|
371
|
+
const next = planFor(window);
|
|
372
|
+
if (!next || !cesiumClockPlanWrites(next))
|
|
373
|
+
return;
|
|
374
|
+
applyCesiumClockPlan(clock, next, runtime);
|
|
375
|
+
plan = next;
|
|
376
|
+
applications += 1;
|
|
377
|
+
};
|
|
378
|
+
const subscriptions = [
|
|
379
|
+
playback.on("tick", (event) => write(event.window)),
|
|
380
|
+
playback.on("play", () => write(playback.window)),
|
|
381
|
+
playback.on("pause", () => write(playback.window)),
|
|
382
|
+
playback.on("end", () => write(playback.window)),
|
|
383
|
+
];
|
|
384
|
+
if (options.applyImmediately !== false)
|
|
385
|
+
write(playback.window);
|
|
386
|
+
return {
|
|
387
|
+
bound: true,
|
|
388
|
+
get applications() {
|
|
389
|
+
return applications;
|
|
390
|
+
},
|
|
391
|
+
get plan() {
|
|
392
|
+
return plan;
|
|
393
|
+
},
|
|
394
|
+
dispose() {
|
|
395
|
+
if (disposed)
|
|
396
|
+
return;
|
|
397
|
+
disposed = true;
|
|
398
|
+
for (const subscription of subscriptions)
|
|
399
|
+
subscription.remove();
|
|
400
|
+
restoreCesiumClock(clock, restore);
|
|
401
|
+
},
|
|
402
|
+
};
|
|
403
|
+
}
|
|
@@ -1,18 +1,50 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `@honua/
|
|
2
|
+
* `@honua/app-platform/scene-workspace` — framework-neutral 3D scene workspace
|
|
3
|
+
* state and the Cesium renderer adapter. `@honua/sdk-js/scene-workspace` is a
|
|
4
|
+
* deprecated 0.1.x forwarder onto this module.
|
|
3
5
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
+
* This barrel carries two support tiers, and they are enumerated symbol by
|
|
7
|
+
* symbol in `config/support-manifest.v1.json` (projected into
|
|
8
|
+
* `config/public-surface.json`) rather than inferred from the directory. The
|
|
9
|
+
* support gate fails on an export that no tier classifies, so nothing is
|
|
10
|
+
* promoted by proximity.
|
|
11
|
+
*
|
|
12
|
+
* @beta The renderer-neutral workspace state, the scene primitive contract, and
|
|
13
|
+
* the Cesium primitive adapter keep their shape through `@honua/app-platform`
|
|
14
|
+
* 0.1.x: no export is renamed or removed, primitive discriminants and
|
|
15
|
+
* diagnostic codes grow additively only, and Cesium stays a lazily imported
|
|
16
|
+
* optional peer. Additive union members can still require a new arm in an
|
|
17
|
+
* exhaustive `switch`, the `cesium` peer floor can rise within 0.1.x, and the
|
|
18
|
+
* server-authored 3D style types track the Honua Server styling contract.
|
|
19
|
+
* @experimental Held back from the beta tier: Honua Server scene discovery, the
|
|
20
|
+
* `SceneView` container, and the elevation/analysis widgets (server-attached,
|
|
21
|
+
* outside the open-endpoint evidence), plus the bounded accepted-plan
|
|
22
|
+
* `Source`-to-Cesium-entity slice and the `mountCesiumScene` owner that
|
|
23
|
+
* composes it with the primitive mount. Those may change in any minor release.
|
|
6
24
|
* @module
|
|
7
25
|
*/
|
|
8
26
|
export { createSceneWorkspace, emptySceneWorkspaceState, reduceSceneWorkspaceState, sceneWorkspaceIntentFromAdapterEvent, selectSceneDiagnosticsByStatus, selectSceneEvidenceForFeature, selectScenePrimitivesByKind, selectSceneVisibleLayers, } from "./workspace.js";
|
|
9
|
-
export { SCENE_STATE_SYNC_KIND, SCENE_STATE_SYNC_SLICES, SCENE_STATE_SYNC_VERSION, HonuaSceneStateSyncError, createSceneStateSynchronizer, defaultSceneStateSyncMappings, } from "./state-sync.js";
|
|
27
|
+
export { SCENE_STATE_SYNC_KIND, SCENE_STATE_SYNC_SLICES, SCENE_STATE_SYNC_SLICE_WORKSPACE_CROSSWALK, SCENE_STATE_SYNC_VERSION, HonuaSceneStateSyncError, createSceneStateSynchronizer, defaultSceneStateSyncMappings, } from "./state-sync.js";
|
|
28
|
+
export { DEFAULT_MAPLIBRE_CAMERA_GEOMETRY, DEFAULT_MAPLIBRE_CAMERA_LIMITS, EARTH_CIRCUMFERENCE_METERS, WEB_MERCATOR_MAX_LATITUDE, mapLibreCameraHeightToZoom, mapLibreGroundResolutionMeters, mapLibreViewToSceneCamera, mapLibreZoomToCameraHeight, sceneCameraToMapLibreView, } from "./camera-correspondence.js";
|
|
29
|
+
export type { MapLibreCameraGeometry, MapLibreCameraLimits, MapLibreCameraProjection, MapLibreCameraView, SceneCameraDegradation, SceneCameraDegradationCode, } from "./camera-correspondence.js";
|
|
30
|
+
export { sceneAttributionId, sceneAttributionValue } from "./state-sync-port-kit.js";
|
|
31
|
+
export type { SceneStateSyncPortDegradation, SceneStateSyncPortDegradationCode, SceneStateSyncPublishOutcome, SceneStateSyncRendererPort, } from "./state-sync-port-kit.js";
|
|
32
|
+
export { createMapLibreStateSyncPort } from "./maplibre-state-sync.js";
|
|
33
|
+
export type { CreateMapLibreStateSyncPortOptions, MapLibreStateSyncTarget } from "./maplibre-state-sync.js";
|
|
34
|
+
export { createCesiumStateSyncPort } from "./cesium-state-sync.js";
|
|
35
|
+
export type { CesiumStateSyncEntity, CesiumStateSyncEntityCollection, CesiumStateSyncEvent, CesiumStateSyncModule, CesiumStateSyncTarget, CreateCesiumStateSyncPortOptions, } from "./cesium-state-sync.js";
|
|
10
36
|
export type { CreateSceneStateSynchronizerOptions, SceneStateSyncAttributionValue, SceneStateSyncDelivery, SceneStateSyncDiagnostic, SceneStateSyncDiagnosticCode, SceneStateSyncEnvelope, SceneStateSyncErrorCode, SceneStateSyncEvent, SceneStateSyncFidelity, SceneStateSyncIdentity, SceneStateSyncInput, SceneStateSyncMapping, SceneStateSyncMappings, SceneStateSyncOrigin, SceneStateSyncPort, SceneStateSyncRealtimeValue, SceneStateSyncRenderer, SceneStateSyncSlice, SceneStateSyncSnapshot, SceneStateSyncValueMap, SceneStateSynchronizer, } from "./state-sync.js";
|
|
11
|
-
export { MAPLIBRE_SCENE_CAPABILITIES, applyMapLibreScenePrimitives, createMapLibreSceneAdapter, createSceneRuntimeAdapter, diagnoseScenePrimitive, diagnoseScenePrimitives, summarizeDiagnosticStatus, toMapLibreExtrusionLayer, toMapLibreTerrainPatch, } from "./primitives.js";
|
|
12
|
-
export { CESIUM_SCENE_CAPABILITIES, addCesium3DTileset, addCesiumModel, applyCameraStateToCesiumCamera, applyCesiumScenePrimitives, applyCesiumTerrain, applyHonua3DStyle, applyTilesetServerStyle, cameraStateToCesiumView, cesiumCameraToSceneState, createCesiumSceneAdapter, fetchHonua3DStyleSpec, honua3DStyleToCesiumStyleOptions, loadHonua3DStyle, modelLayerToCesiumPlacement, pickCesiumFeatureAttributes, readHonua3DStyleDescriptor, resolveCesiumModelScale, resolveHonua3DStyleUri, resolvePickedFeatureAttributes, setTilesetStyle, } from "./cesium-adapter.js";
|
|
13
|
-
export
|
|
14
|
-
export {
|
|
15
|
-
export
|
|
37
|
+
export { MAPLIBRE_SCENE_CAPABILITIES, RENDERER_WGS84_SPATIAL_CAPABILITIES, applyMapLibreScenePrimitives, compileMapLibreFilters, createMapLibreSceneAdapter, createSceneRuntimeAdapter, diagnoseScenePrimitive, diagnoseScenePrimitives, summarizeDiagnosticStatus, toMapLibreExtrusionLayer, toMapLibreTerrainPatch, } from "./primitives.js";
|
|
38
|
+
export { CESIUM_SCENE_CAPABILITIES, addCesium3DTileset, addCesiumImageryLayer, addCesiumModel, applyCameraStateToCesiumCamera, applyCesiumScenePrimitives, applyCesiumTerrain, applyHonua3DStyle, applyTilesetServerStyle, cameraStateToCesiumView, cesiumCameraToSceneState, createCesiumSceneAdapter, fetchHonua3DStyleSpec, honua3DStyleToCesiumStyleOptions, loadHonua3DStyle, modelLayerToCesiumPlacement, pickCesiumFeatureAttributes, readHonua3DStyleDescriptor, resolveCesiumModelScale, resolveHonua3DStyleUri, resolvePickedFeatureAttributes, setTilesetStyle, } from "./cesium-adapter.js";
|
|
39
|
+
export { SCENE_REBUILD_BOUNDARIES, applyCesiumClockPlan, applyCesiumSceneTime, bindTemporalPlaybackToCesium, cesiumClockPlanWrites, isCesiumClockRuntime, readCesiumClock, restoreCesiumClock, sceneRebuildBoundaryReport, sceneTimelineToCesiumClockPlan, } from "./cesium-time.js";
|
|
40
|
+
export type { BindTemporalPlaybackToCesiumOptions, CesiumClockLike, CesiumClockOwnership, CesiumClockPlan, CesiumClockRuntimeLoader, CesiumClockRuntimeModule, CesiumClockSnapshot, CesiumClockTarget, CesiumSceneTimeApplication, CesiumTemporalPlayback, CesiumTemporalPlaybackBinding, CesiumTemporalPlaybackInstant, CesiumTemporalPlaybackRefusal, CesiumTemporalPlaybackTransport, CesiumTemporalPlaybackWindow, SceneRebuildBoundary, SceneRebuildBoundaryReport, SceneTimeDiagnosticCode, } from "./cesium-time.js";
|
|
41
|
+
export { DEFAULT_SCENE_MOUNT_LAYER_LIMIT, HonuaCesiumSceneMountError, mountScenePrimitivesToCesium, } from "./cesium-mount.js";
|
|
42
|
+
export type { ApplyMountedScenePrimitivesOptions, CesiumSceneMountErrorCode, CesiumSceneMountState, MountedCesiumScenePrimitives, MountedScenePrimitiveApplyResult, MountScenePrimitivesToCesiumOptions, } from "./cesium-mount.js";
|
|
43
|
+
export type { AddCesium3DTilesetOptions, CesiumCameraLike, CesiumCameraView, CesiumHeadingPitchRollRadians, CesiumImageryLayerCollectionLike, CesiumImageryLayerLike, CesiumImageryProviderLike, CesiumLayerHandle, CesiumModelLike, CesiumModelPlacement, CesiumPrimitiveCollectionLike, CesiumSceneLike, CesiumSceneMaterializationOptions, CesiumSceneRuntimeTarget, CesiumTilesetLike, Honua3DStyleConditions, Honua3DStyleDescriptor, Honua3DStyleSpec, } from "./cesium-adapter.js";
|
|
44
|
+
export { CESIUM_ENTITY_REBUILD_BOUNDARIES, DEFAULT_CESIUM_ENTITY_LIMIT, HonuaCesiumEntityAdapterError, mountSourceToCesium, projectSourceToCesium, } from "./source-to-cesium.js";
|
|
45
|
+
export type { CesiumEntityAdapterErrorCode, CesiumEntityCollectionTarget, CesiumEntityDiagnostic, CesiumEntityDiagnosticCode, CesiumEntityGeometry, CesiumEntityInterval, CesiumEntityProjection, CesiumEntityProjectionItem, CesiumEntityPositionSample, CesiumEntityRebuildBoundary, CesiumEntityRebuildBoundaryReport, CesiumEntityRefreshResult, CesiumEntityRuntimeLoader, CesiumEntityRuntimeModule, CesiumEntityTimeOptions, CesiumEntityWorkflowState, MountedCesiumEntitySource, MountSourceToCesiumOptions, ProjectSourceToCesiumOptions, } from "./source-to-cesium.js";
|
|
46
|
+
export { DEFAULT_CESIUM_SCENE_SOURCE_LIMIT, HonuaCesiumSceneOwnerError, mountCesiumScene, } from "./cesium-scene-owner.js";
|
|
47
|
+
export type { CesiumSceneOwnerErrorCode, CesiumSceneOwnerState, CesiumSceneOwnerTarget, MountCesiumSceneOptions, MountedCesiumScene, } from "./cesium-scene-owner.js";
|
|
16
48
|
export { buildElevationProfilePath, buildLineOfSightBody, buildViewshedBody, formatMeasurementLabel, haversineMeters, measureScenePositions, pathLengthMeters, positionsToWktLineString, renderElevationProfilePolyline, renderLineOfSight, renderMeasurement, renderViewshed, requestElevationProfile, requestLineOfSight, requestViewshed, slantDistanceMeters, sphericalPolygonAreaSquareMeters, } from "./analysis-widgets.js";
|
|
17
49
|
export type { CesiumEntityCollectionLike, ElevationProfileRequest, ElevationProfileResult, ElevationProfileSample, LineOfSightRequest, LineOfSightResult, SceneAnalysisCesiumModule, SceneAnalysisOverlay, SceneAnalysisPosition, SceneAnalysisRequestExecutor, SceneMeasurement, ViewshedRequest, ViewshedResult, ViewshedSample, } from "./analysis-widgets.js";
|
|
18
50
|
export { getScene, listScenes, normalizeScene, resolveSceneTilesetUrl, sceneCameraPrimitive, sceneLayerStates, sceneTerrainPrimitive, sceneTilesetPrimitive, sceneToRuntimePrimitives, sceneViewpointBookmarks, } from "./scene-discovery.js";
|
|
@@ -20,6 +52,6 @@ export type { HonuaScene, SceneDiscoveryRequestExecutor, SceneExtent3D, SceneVie
|
|
|
20
52
|
export { SceneView } from "./scene-view.js";
|
|
21
53
|
export type { SceneViewEvent, SceneViewEventListener, SceneViewOptions, SceneViewRequestExecutor, } from "./scene-view.js";
|
|
22
54
|
export { SCENE_WORKSPACE_SLICES } from "./types.js";
|
|
23
|
-
export type { MapLibreExtrusionLayerSpecification, MapLibreSceneRuntimeTarget, MapLibreTerrainOptions, MapLibreTerrainPatch, MapLibreTerrainSourceSpecification, SceneCacheMetadata, SceneCameraPrimitive, SceneElevationSourcePrimitive, SceneElevationSourceProtocol, SceneExtrusionPrimitive, SceneExtrusionValue, SceneGroundPrimitive, SceneLayerMetadataPrimitive, SceneModelFormat, SceneModelLayerPrimitive, ScenePrimitiveApplyResult, ScenePrimitiveDiagnostic, ScenePrimitiveDiagnosticSeverity, ScenePrimitiveStatus, SceneRendererKind, SceneRuntimeAdapter, SceneRuntimeCapabilities, SceneRuntimePrimitive, SceneRuntimePrimitiveKind, } from "./primitives.js";
|
|
55
|
+
export type { MapLibreExtrusionLayerSpecification, MapLibreSceneRuntimeTarget, MapLibreTerrainOptions, MapLibreTerrainPatch, MapLibreTerrainSourceSpecification, SceneCacheMetadata, SceneCameraPrimitive, SceneElevationSourcePrimitive, SceneElevationSourceProtocol, SceneExtrusionPrimitive, SceneExtrusionValue, SceneGroundPrimitive, SceneImageryLayerPrimitive, SceneImagerySourceProtocol, SceneLayerMetadataPrimitive, SceneModelFormat, SceneModelLayerPrimitive, ScenePointCloudShading, ScenePrimitiveApplyResult, ScenePrimitiveDiagnostic, ScenePrimitiveDiagnosticSeverity, ScenePrimitiveStatus, SceneRendererKind, SceneRuntimeAdapter, SceneRuntimeCapabilities, SceneRuntimePrimitive, SceneRuntimePrimitiveKind, SceneSpatialCapabilities, SceneSpatialFidelity, SceneSpatialPrecision, SceneSpatialPrecisionFloor, SceneSpatialReference, } from "./primitives.js";
|
|
24
56
|
export type { SceneBookmark, SceneCameraState, SceneDetailState, SceneEvidenceReference, SceneLayerState, SceneRealtimeState, SceneTimelineState, SceneWorkspace, SceneWorkspaceAdapterEvent, SceneWorkspaceChangeEvent, SceneWorkspaceHistoryEntry, SceneWorkspaceIntent, SceneWorkspaceListener, SceneWorkspaceSlice, SceneWorkspaceSnapshot, SceneWorkspaceState, SceneWorkspaceUnsubscribe, } from "./types.js";
|
|
25
57
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/scene-workspace/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/scene-workspace/index.ts"],"names":[],"mappings":"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"}
|
package/scene-workspace/index.js
CHANGED
|
@@ -1,15 +1,40 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `@honua/
|
|
2
|
+
* `@honua/app-platform/scene-workspace` — framework-neutral 3D scene workspace
|
|
3
|
+
* state and the Cesium renderer adapter. `@honua/sdk-js/scene-workspace` is a
|
|
4
|
+
* deprecated 0.1.x forwarder onto this module.
|
|
3
5
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
+
* This barrel carries two support tiers, and they are enumerated symbol by
|
|
7
|
+
* symbol in `config/support-manifest.v1.json` (projected into
|
|
8
|
+
* `config/public-surface.json`) rather than inferred from the directory. The
|
|
9
|
+
* support gate fails on an export that no tier classifies, so nothing is
|
|
10
|
+
* promoted by proximity.
|
|
11
|
+
*
|
|
12
|
+
* @beta The renderer-neutral workspace state, the scene primitive contract, and
|
|
13
|
+
* the Cesium primitive adapter keep their shape through `@honua/app-platform`
|
|
14
|
+
* 0.1.x: no export is renamed or removed, primitive discriminants and
|
|
15
|
+
* diagnostic codes grow additively only, and Cesium stays a lazily imported
|
|
16
|
+
* optional peer. Additive union members can still require a new arm in an
|
|
17
|
+
* exhaustive `switch`, the `cesium` peer floor can rise within 0.1.x, and the
|
|
18
|
+
* server-authored 3D style types track the Honua Server styling contract.
|
|
19
|
+
* @experimental Held back from the beta tier: Honua Server scene discovery, the
|
|
20
|
+
* `SceneView` container, and the elevation/analysis widgets (server-attached,
|
|
21
|
+
* outside the open-endpoint evidence), plus the bounded accepted-plan
|
|
22
|
+
* `Source`-to-Cesium-entity slice and the `mountCesiumScene` owner that
|
|
23
|
+
* composes it with the primitive mount. Those may change in any minor release.
|
|
6
24
|
* @module
|
|
7
25
|
*/
|
|
8
26
|
export { createSceneWorkspace, emptySceneWorkspaceState, reduceSceneWorkspaceState, sceneWorkspaceIntentFromAdapterEvent, selectSceneDiagnosticsByStatus, selectSceneEvidenceForFeature, selectScenePrimitivesByKind, selectSceneVisibleLayers, } from "./workspace.js";
|
|
9
|
-
export { SCENE_STATE_SYNC_KIND, SCENE_STATE_SYNC_SLICES, SCENE_STATE_SYNC_VERSION, HonuaSceneStateSyncError, createSceneStateSynchronizer, defaultSceneStateSyncMappings, } from "./state-sync.js";
|
|
10
|
-
export {
|
|
11
|
-
export {
|
|
12
|
-
export {
|
|
27
|
+
export { SCENE_STATE_SYNC_KIND, SCENE_STATE_SYNC_SLICES, SCENE_STATE_SYNC_SLICE_WORKSPACE_CROSSWALK, SCENE_STATE_SYNC_VERSION, HonuaSceneStateSyncError, createSceneStateSynchronizer, defaultSceneStateSyncMappings, } from "./state-sync.js";
|
|
28
|
+
export { DEFAULT_MAPLIBRE_CAMERA_GEOMETRY, DEFAULT_MAPLIBRE_CAMERA_LIMITS, EARTH_CIRCUMFERENCE_METERS, WEB_MERCATOR_MAX_LATITUDE, mapLibreCameraHeightToZoom, mapLibreGroundResolutionMeters, mapLibreViewToSceneCamera, mapLibreZoomToCameraHeight, sceneCameraToMapLibreView, } from "./camera-correspondence.js";
|
|
29
|
+
export { sceneAttributionId, sceneAttributionValue } from "./state-sync-port-kit.js";
|
|
30
|
+
export { createMapLibreStateSyncPort } from "./maplibre-state-sync.js";
|
|
31
|
+
export { createCesiumStateSyncPort } from "./cesium-state-sync.js";
|
|
32
|
+
export { MAPLIBRE_SCENE_CAPABILITIES, RENDERER_WGS84_SPATIAL_CAPABILITIES, applyMapLibreScenePrimitives, compileMapLibreFilters, createMapLibreSceneAdapter, createSceneRuntimeAdapter, diagnoseScenePrimitive, diagnoseScenePrimitives, summarizeDiagnosticStatus, toMapLibreExtrusionLayer, toMapLibreTerrainPatch, } from "./primitives.js";
|
|
33
|
+
export { CESIUM_SCENE_CAPABILITIES, addCesium3DTileset, addCesiumImageryLayer, addCesiumModel, applyCameraStateToCesiumCamera, applyCesiumScenePrimitives, applyCesiumTerrain, applyHonua3DStyle, applyTilesetServerStyle, cameraStateToCesiumView, cesiumCameraToSceneState, createCesiumSceneAdapter, fetchHonua3DStyleSpec, honua3DStyleToCesiumStyleOptions, loadHonua3DStyle, modelLayerToCesiumPlacement, pickCesiumFeatureAttributes, readHonua3DStyleDescriptor, resolveCesiumModelScale, resolveHonua3DStyleUri, resolvePickedFeatureAttributes, setTilesetStyle, } from "./cesium-adapter.js";
|
|
34
|
+
export { SCENE_REBUILD_BOUNDARIES, applyCesiumClockPlan, applyCesiumSceneTime, bindTemporalPlaybackToCesium, cesiumClockPlanWrites, isCesiumClockRuntime, readCesiumClock, restoreCesiumClock, sceneRebuildBoundaryReport, sceneTimelineToCesiumClockPlan, } from "./cesium-time.js";
|
|
35
|
+
export { DEFAULT_SCENE_MOUNT_LAYER_LIMIT, HonuaCesiumSceneMountError, mountScenePrimitivesToCesium, } from "./cesium-mount.js";
|
|
36
|
+
export { CESIUM_ENTITY_REBUILD_BOUNDARIES, DEFAULT_CESIUM_ENTITY_LIMIT, HonuaCesiumEntityAdapterError, mountSourceToCesium, projectSourceToCesium, } from "./source-to-cesium.js";
|
|
37
|
+
export { DEFAULT_CESIUM_SCENE_SOURCE_LIMIT, HonuaCesiumSceneOwnerError, mountCesiumScene, } from "./cesium-scene-owner.js";
|
|
13
38
|
export { buildElevationProfilePath, buildLineOfSightBody, buildViewshedBody, formatMeasurementLabel, haversineMeters, measureScenePositions, pathLengthMeters, positionsToWktLineString, renderElevationProfilePolyline, renderLineOfSight, renderMeasurement, renderViewshed, requestElevationProfile, requestLineOfSight, requestViewshed, slantDistanceMeters, sphericalPolygonAreaSquareMeters, } from "./analysis-widgets.js";
|
|
14
39
|
export { getScene, listScenes, normalizeScene, resolveSceneTilesetUrl, sceneCameraPrimitive, sceneLayerStates, sceneTerrainPrimitive, sceneTilesetPrimitive, sceneToRuntimePrimitives, sceneViewpointBookmarks, } from "./scene-discovery.js";
|
|
15
40
|
export { SceneView } from "./scene-view.js";
|