@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.
Files changed (383) hide show
  1. package/collaboration/client.d.ts.map +1 -1
  2. package/connect-url-safety.d.ts +53 -0
  3. package/connect-url-safety.js +189 -0
  4. package/contract/discovery.d.ts +34 -0
  5. package/contract/discovery.d.ts.map +1 -1
  6. package/contract/index.d.ts +7 -5
  7. package/contract/index.d.ts.map +1 -1
  8. package/contract/index.js +3 -2
  9. package/contract/pmtiles.d.ts +10 -1
  10. package/contract/pmtiles.d.ts.map +1 -1
  11. package/contract/pmtiles.js +10 -2
  12. package/contract/protocol-module.d.ts +84 -9
  13. package/contract/protocol-module.d.ts.map +1 -1
  14. package/contract/query-filter-fes.d.ts +18 -0
  15. package/contract/query-filter-fes.d.ts.map +1 -0
  16. package/contract/query-filter-fes.js +122 -0
  17. package/contract/query-filter.d.ts +300 -0
  18. package/contract/query-filter.d.ts.map +1 -0
  19. package/contract/query-filter.js +883 -0
  20. package/contract/schema.d.ts +12 -0
  21. package/contract/schema.d.ts.map +1 -1
  22. package/contract/schema.js +34 -0
  23. package/contract/source-capability-support.d.ts.map +1 -1
  24. package/contract/source-capability-support.js +15 -3
  25. package/contract/source.d.ts +45 -25
  26. package/contract/source.d.ts.map +1 -1
  27. package/contract/source.js +719 -479
  28. package/contract/types.d.ts +87 -18
  29. package/contract/types.d.ts.map +1 -1
  30. package/contract/widget-source.d.ts.map +1 -1
  31. package/controls/basemap-switcher.d.ts +19 -11
  32. package/controls/basemap-switcher.d.ts.map +1 -1
  33. package/controls/basemap-switcher.js +58 -25
  34. package/controls/catalog.d.ts +105 -0
  35. package/controls/catalog.d.ts.map +1 -0
  36. package/controls/catalog.js +341 -0
  37. package/controls/element-utils.d.ts +9 -0
  38. package/controls/element-utils.d.ts.map +1 -1
  39. package/controls/element-utils.js +17 -0
  40. package/controls/index.d.ts +29 -8
  41. package/controls/index.d.ts.map +1 -1
  42. package/controls/index.js +26 -8
  43. package/controls/layer-list.d.ts +13 -5
  44. package/controls/layer-list.d.ts.map +1 -1
  45. package/controls/layer-list.js +72 -15
  46. package/controls/legend.d.ts +32 -5
  47. package/controls/legend.d.ts.map +1 -1
  48. package/controls/legend.js +95 -25
  49. package/controls/qualification.d.ts +152 -0
  50. package/controls/qualification.d.ts.map +1 -0
  51. package/controls/qualification.js +1265 -0
  52. package/controls/registry.d.ts +104 -0
  53. package/controls/registry.d.ts.map +1 -0
  54. package/controls/registry.js +150 -0
  55. package/controls/swipe-control.d.ts +6 -1
  56. package/controls/swipe-control.d.ts.map +1 -1
  57. package/controls/swipe-control.js +82 -20
  58. package/core/client.d.ts +45 -21
  59. package/core/client.d.ts.map +1 -1
  60. package/core/client.js +224 -46
  61. package/core/error-classifications.d.ts +6 -0
  62. package/core/error-classifications.d.ts.map +1 -1
  63. package/core/error-classifications.js +6 -0
  64. package/core/error-code-registry.d.ts +6 -0
  65. package/core/error-code-registry.d.ts.map +1 -1
  66. package/core/error-code-registry.js +6 -0
  67. package/core/error-envelope.js +2 -0
  68. package/core/errors.d.ts +1 -1
  69. package/core/errors.js +1 -1
  70. package/core/geoparquet-sql.d.ts +68 -4
  71. package/core/geoparquet-sql.d.ts.map +1 -1
  72. package/core/geoparquet-sql.js +325 -8
  73. package/core/odata-write-codec.d.ts.map +1 -1
  74. package/core/odata-write-codec.js +0 -1
  75. package/core/odata.d.ts +6 -0
  76. package/core/odata.d.ts.map +1 -1
  77. package/core/odata.js +6 -1
  78. package/core/ogc-processes.d.ts +182 -25
  79. package/core/ogc-processes.d.ts.map +1 -1
  80. package/core/ogc-processes.js +602 -30
  81. package/core/process-runner.d.ts +8 -1
  82. package/core/process-runner.d.ts.map +1 -1
  83. package/core/process-runner.js +1 -0
  84. package/core/protocol-transport.d.ts +2 -0
  85. package/core/protocol-transport.d.ts.map +1 -1
  86. package/core/stac.d.ts +31 -0
  87. package/core/stac.d.ts.map +1 -1
  88. package/core/stac.js +136 -19
  89. package/core/surfaces.d.ts.map +1 -1
  90. package/core/surfaces.js +273 -68
  91. package/core/types.d.ts +123 -9
  92. package/core/types.d.ts.map +1 -1
  93. package/core/wfs-axis-order.d.ts +18 -0
  94. package/core/wfs-axis-order.d.ts.map +1 -0
  95. package/core/wfs-axis-order.js +108 -0
  96. package/core/wfs-capabilities.d.ts +65 -24
  97. package/core/wfs-capabilities.d.ts.map +1 -1
  98. package/core/wfs-capabilities.js +237 -27
  99. package/core/wfs-filter.d.ts +26 -3
  100. package/core/wfs-filter.d.ts.map +1 -1
  101. package/core/wfs-filter.js +48 -53
  102. package/core/wfs-protocol-error.d.ts +12 -0
  103. package/core/wfs-protocol-error.d.ts.map +1 -0
  104. package/core/wfs-protocol-error.js +13 -0
  105. package/core/wfs.d.ts +53 -1
  106. package/core/wfs.d.ts.map +1 -1
  107. package/core/wfs.js +251 -29
  108. package/core/wms-feature-info.d.ts +92 -0
  109. package/core/wms-feature-info.d.ts.map +1 -0
  110. package/core/wms-feature-info.js +285 -0
  111. package/core/wms.d.ts +9 -0
  112. package/core/wms.d.ts.map +1 -1
  113. package/core/wms.js +17 -5
  114. package/esri-compat/event-bus.d.ts +20 -0
  115. package/esri-compat/event-bus.d.ts.map +1 -1
  116. package/esri-compat/feature-filter.d.ts +46 -1
  117. package/esri-compat/feature-filter.d.ts.map +1 -1
  118. package/esri-compat/feature-filter.js +49 -0
  119. package/esri-compat/geojson-layer.d.ts +4 -2
  120. package/esri-compat/geojson-layer.d.ts.map +1 -1
  121. package/esri-compat/geojson-layer.js +4 -2
  122. package/esri-compat/identity-manager.js +2 -2
  123. package/esri-compat/imagery-layer.d.ts +2 -1
  124. package/esri-compat/imagery-layer.d.ts.map +1 -1
  125. package/esri-compat/imagery-layer.js +2 -1
  126. package/esri-compat/layer-list.d.ts +8 -1
  127. package/esri-compat/layer-list.d.ts.map +1 -1
  128. package/esri-compat/layer-list.js +11 -4
  129. package/esri-compat/legend.d.ts.map +1 -1
  130. package/esri-compat/legend.js +1 -1
  131. package/esri-compat/locator.d.ts +297 -0
  132. package/esri-compat/locator.d.ts.map +1 -0
  133. package/esri-compat/locator.js +579 -0
  134. package/esri-compat/map-image-layer.d.ts.map +1 -1
  135. package/esri-compat/map-view.d.ts.map +1 -1
  136. package/esri-compat/map-view.js +1 -1
  137. package/esri-compat/scene-view.d.ts.map +1 -1
  138. package/esri-compat/time-slider.d.ts +29 -0
  139. package/esri-compat/time-slider.d.ts.map +1 -1
  140. package/esri-compat/time-slider.js +117 -0
  141. package/esri-compat/wfs-layer.d.ts +2 -1
  142. package/esri-compat/wfs-layer.d.ts.map +1 -1
  143. package/esri-compat/wfs-layer.js +2 -1
  144. package/esri-compat/widget-host.d.ts +42 -6
  145. package/esri-compat/widget-host.d.ts.map +1 -1
  146. package/esri-compat/widget-host.js +99 -10
  147. package/generated-app/projection.d.ts.map +1 -1
  148. package/generated-app/runtime.d.ts.map +1 -1
  149. package/map/data-to-map-bridge.d.ts +1 -1
  150. package/map/data-to-map-bridge.d.ts.map +1 -1
  151. package/map/data-to-map-bridge.js +1 -2
  152. package/map/honua-map.d.ts.map +1 -1
  153. package/map/honua-map.js +1 -1
  154. package/map/index.d.ts +2 -0
  155. package/map/index.d.ts.map +1 -1
  156. package/map/index.js +2 -0
  157. package/map/realtime-reconciliation-adapter.d.ts +98 -0
  158. package/map/realtime-reconciliation-adapter.d.ts.map +1 -0
  159. package/map/realtime-reconciliation-adapter.js +84 -0
  160. package/map/temporal-playback.d.ts +25 -0
  161. package/map/temporal-playback.d.ts.map +1 -1
  162. package/map/temporal-playback.js +29 -1
  163. package/operator/workspace/workspace.d.ts.map +1 -1
  164. package/operator/workspace/workspace.js +0 -2
  165. package/package.json +4 -3
  166. package/query-planner/canonical-filter.d.ts +30 -0
  167. package/query-planner/canonical-filter.d.ts.map +1 -0
  168. package/query-planner/canonical-filter.js +30 -0
  169. package/query-planner/columnar-plan.d.ts +63 -0
  170. package/query-planner/columnar-plan.d.ts.map +1 -0
  171. package/query-planner/columnar-plan.js +94 -0
  172. package/query-planner/diagnostics.d.ts +3 -3
  173. package/query-planner/diagnostics.d.ts.map +1 -1
  174. package/query-planner/diagnostics.js +17 -4
  175. package/query-planner/duckdb.d.ts.map +1 -1
  176. package/query-planner/duckdb.js +16 -2
  177. package/query-planner/execution-context.d.ts.map +1 -1
  178. package/query-planner/execution-context.js +3 -1
  179. package/query-planner/executor.d.ts.map +1 -1
  180. package/query-planner/executor.js +7 -1
  181. package/query-planner/geoservices.d.ts.map +1 -1
  182. package/query-planner/geoservices.js +24 -5
  183. package/query-planner/grpc.d.ts.map +1 -1
  184. package/query-planner/grpc.js +29 -5
  185. package/query-planner/index.d.ts +20 -5
  186. package/query-planner/index.d.ts.map +1 -1
  187. package/query-planner/index.js +16 -3
  188. package/query-planner/ir.d.ts +6 -1
  189. package/query-planner/ir.d.ts.map +1 -1
  190. package/query-planner/ir.js +63 -1
  191. package/query-planner/odata-protocol-module.d.ts +54 -0
  192. package/query-planner/odata-protocol-module.d.ts.map +1 -0
  193. package/query-planner/odata-protocol-module.js +199 -0
  194. package/query-planner/odata-v1.d.ts +23 -0
  195. package/query-planner/odata-v1.d.ts.map +1 -0
  196. package/query-planner/odata-v1.js +202 -0
  197. package/query-planner/odata.d.ts +0 -3
  198. package/query-planner/odata.d.ts.map +1 -1
  199. package/query-planner/odata.js +0 -143
  200. package/query-planner/ogc-features.d.ts.map +1 -1
  201. package/query-planner/ogc-features.js +23 -1
  202. package/query-planner/planner.d.ts +2 -2
  203. package/query-planner/planner.d.ts.map +1 -1
  204. package/query-planner/planner.js +146 -27
  205. package/query-planner/representation.d.ts +59 -0
  206. package/query-planner/representation.d.ts.map +1 -0
  207. package/query-planner/representation.js +140 -0
  208. package/query-planner/types.d.ts +153 -3
  209. package/query-planner/types.d.ts.map +1 -1
  210. package/query-planner/wfs-protocol-module.d.ts +57 -0
  211. package/query-planner/wfs-protocol-module.d.ts.map +1 -0
  212. package/query-planner/wfs-protocol-module.js +731 -0
  213. package/query-planner/wfs-v1.d.ts +41 -0
  214. package/query-planner/wfs-v1.d.ts.map +1 -0
  215. package/query-planner/wfs-v1.js +366 -0
  216. package/query-planner/wfs.d.ts +1 -3
  217. package/query-planner/wfs.d.ts.map +1 -1
  218. package/query-planner/wfs.js +1 -70
  219. package/realtime/checkpoint-store.d.ts +206 -0
  220. package/realtime/checkpoint-store.d.ts.map +1 -0
  221. package/realtime/checkpoint-store.js +504 -0
  222. package/realtime/honua-server.d.ts +8 -0
  223. package/realtime/honua-server.d.ts.map +1 -1
  224. package/realtime/honua-server.js +123 -14
  225. package/realtime/index.d.ts +4 -0
  226. package/realtime/index.d.ts.map +1 -1
  227. package/realtime/index.js +2 -0
  228. package/realtime/reconciliation.d.ts +245 -0
  229. package/realtime/reconciliation.d.ts.map +1 -0
  230. package/realtime/reconciliation.js +377 -0
  231. package/realtime/resumable-transport.d.ts.map +1 -1
  232. package/realtime/sse.d.ts.map +1 -1
  233. package/realtime/websocket.d.ts.map +1 -1
  234. package/realtime/wire.d.ts +2 -1
  235. package/realtime/wire.d.ts.map +1 -1
  236. package/realtime/wire.js +24 -8
  237. package/replica-sync/errors.d.ts +19 -1
  238. package/replica-sync/errors.d.ts.map +1 -1
  239. package/replica-sync/errors.js +16 -0
  240. package/replica-sync/geoservices.d.ts +260 -0
  241. package/replica-sync/geoservices.d.ts.map +1 -0
  242. package/replica-sync/geoservices.js +1093 -0
  243. package/replica-sync/index.d.ts +5 -1
  244. package/replica-sync/index.d.ts.map +1 -1
  245. package/replica-sync/index.js +3 -1
  246. package/replica-sync/transport-conformance.d.ts +58 -0
  247. package/replica-sync/transport-conformance.d.ts.map +1 -0
  248. package/replica-sync/transport-conformance.js +265 -0
  249. package/replica-sync/types.d.ts +22 -0
  250. package/replica-sync/types.d.ts.map +1 -1
  251. package/runtime/index.d.ts +6 -2
  252. package/runtime/index.d.ts.map +1 -1
  253. package/runtime/index.js +3 -1
  254. package/runtime/load-package.d.ts +24 -0
  255. package/runtime/load-package.d.ts.map +1 -1
  256. package/runtime/load-package.js +45 -1
  257. package/runtime/maplibre-renderer.d.ts +11 -0
  258. package/runtime/maplibre-renderer.d.ts.map +1 -1
  259. package/runtime/maplibre-renderer.js +32 -7
  260. package/runtime/offline-region-protocol.d.ts +73 -0
  261. package/runtime/offline-region-protocol.d.ts.map +1 -0
  262. package/runtime/offline-region-protocol.js +63 -0
  263. package/runtime/offline-region-style.d.ts +78 -0
  264. package/runtime/offline-region-style.d.ts.map +1 -0
  265. package/runtime/offline-region-style.js +147 -0
  266. package/runtime/pmtiles-protocol.d.ts +7 -8
  267. package/runtime/pmtiles-protocol.d.ts.map +1 -1
  268. package/runtime/pmtiles-protocol.js +19 -66
  269. package/runtime/protocol-registry.d.ts +55 -0
  270. package/runtime/protocol-registry.d.ts.map +1 -0
  271. package/runtime/protocol-registry.js +103 -0
  272. package/runtime/runtime.d.ts +2 -0
  273. package/runtime/runtime.d.ts.map +1 -1
  274. package/runtime/runtime.js +6 -1
  275. package/scene-workspace/analysis-widgets.d.ts +4 -2
  276. package/scene-workspace/analysis-widgets.d.ts.map +1 -1
  277. package/scene-workspace/analysis-widgets.js +4 -2
  278. package/scene-workspace/camera-correspondence.d.ts +151 -0
  279. package/scene-workspace/camera-correspondence.d.ts.map +1 -0
  280. package/scene-workspace/camera-correspondence.js +220 -0
  281. package/scene-workspace/cesium-adapter.d.ts +230 -29
  282. package/scene-workspace/cesium-adapter.d.ts.map +1 -1
  283. package/scene-workspace/cesium-adapter.js +741 -56
  284. package/scene-workspace/cesium-mount.d.ts +205 -0
  285. package/scene-workspace/cesium-mount.d.ts.map +1 -0
  286. package/scene-workspace/cesium-mount.js +392 -0
  287. package/scene-workspace/cesium-scene-owner.d.ts +160 -0
  288. package/scene-workspace/cesium-scene-owner.d.ts.map +1 -0
  289. package/scene-workspace/cesium-scene-owner.js +205 -0
  290. package/scene-workspace/cesium-state-sync.d.ts +101 -0
  291. package/scene-workspace/cesium-state-sync.d.ts.map +1 -0
  292. package/scene-workspace/cesium-state-sync.js +432 -0
  293. package/scene-workspace/cesium-time.d.ts +346 -0
  294. package/scene-workspace/cesium-time.d.ts.map +1 -0
  295. package/scene-workspace/cesium-time.js +403 -0
  296. package/scene-workspace/index.d.ts +42 -10
  297. package/scene-workspace/index.d.ts.map +1 -1
  298. package/scene-workspace/index.js +32 -7
  299. package/scene-workspace/maplibre-state-sync.d.ts +112 -0
  300. package/scene-workspace/maplibre-state-sync.d.ts.map +1 -0
  301. package/scene-workspace/maplibre-state-sync.js +400 -0
  302. package/scene-workspace/primitives.d.ts +237 -3
  303. package/scene-workspace/primitives.d.ts.map +1 -1
  304. package/scene-workspace/primitives.js +1087 -17
  305. package/scene-workspace/scene-discovery.d.ts +5 -2
  306. package/scene-workspace/scene-discovery.d.ts.map +1 -1
  307. package/scene-workspace/scene-discovery.js +5 -2
  308. package/scene-workspace/scene-view.d.ts +5 -2
  309. package/scene-workspace/scene-view.d.ts.map +1 -1
  310. package/scene-workspace/scene-view.js +5 -2
  311. package/scene-workspace/source-to-cesium.d.ts +141 -8
  312. package/scene-workspace/source-to-cesium.d.ts.map +1 -1
  313. package/scene-workspace/source-to-cesium.js +497 -72
  314. package/scene-workspace/state-sync-port-kit.d.ts +156 -0
  315. package/scene-workspace/state-sync-port-kit.d.ts.map +1 -0
  316. package/scene-workspace/state-sync-port-kit.js +319 -0
  317. package/scene-workspace/state-sync.d.ts +34 -1
  318. package/scene-workspace/state-sync.d.ts.map +1 -1
  319. package/scene-workspace/state-sync.js +48 -0
  320. package/scene-workspace/types.d.ts +8 -0
  321. package/scene-workspace/types.d.ts.map +1 -1
  322. package/scene-workspace/types.js +2 -0
  323. package/scene-workspace/workspace.d.ts +12 -1
  324. package/scene-workspace/workspace.d.ts.map +1 -1
  325. package/scene-workspace/workspace.js +13 -0
  326. package/studio/index.d.ts +24 -7
  327. package/studio/index.d.ts.map +1 -1
  328. package/studio/index.js +21 -7
  329. package/studio/lifecycle-client.d.ts +164 -0
  330. package/studio/lifecycle-client.d.ts.map +1 -0
  331. package/studio/lifecycle-client.js +299 -0
  332. package/studio/lifecycle-errors.d.ts +91 -0
  333. package/studio/lifecycle-errors.d.ts.map +1 -0
  334. package/studio/lifecycle-errors.js +77 -0
  335. package/studio/lifecycle-types.d.ts +321 -0
  336. package/studio/lifecycle-types.d.ts.map +1 -0
  337. package/studio/lifecycle-types.js +22 -0
  338. package/web-components/controller.d.ts.map +1 -1
  339. package/web-components/csp-styles.d.ts +6 -0
  340. package/web-components/csp-styles.d.ts.map +1 -0
  341. package/web-components/csp-styles.js +53 -0
  342. package/web-components/elements.d.ts +158 -2
  343. package/web-components/elements.d.ts.map +1 -1
  344. package/web-components/elements.js +1302 -215
  345. package/web-components/export-redaction.d.ts +252 -0
  346. package/web-components/export-redaction.d.ts.map +1 -0
  347. package/web-components/export-redaction.js +588 -0
  348. package/web-components/export.d.ts +417 -0
  349. package/web-components/export.d.ts.map +1 -0
  350. package/web-components/export.js +719 -0
  351. package/web-components/feature-editor-model.d.ts +265 -0
  352. package/web-components/feature-editor-model.d.ts.map +1 -0
  353. package/web-components/feature-editor-model.js +438 -0
  354. package/web-components/feature-editor-sketch.d.ts +125 -0
  355. package/web-components/feature-editor-sketch.d.ts.map +1 -0
  356. package/web-components/feature-editor-sketch.js +194 -0
  357. package/web-components/feature-editor-workflow.d.ts +286 -0
  358. package/web-components/feature-editor-workflow.d.ts.map +1 -0
  359. package/web-components/feature-editor-workflow.js +889 -0
  360. package/web-components/feature-editor.d.ts +83 -0
  361. package/web-components/feature-editor.d.ts.map +1 -0
  362. package/web-components/feature-editor.js +829 -0
  363. package/web-components/feature-table-engine.d.ts +465 -0
  364. package/web-components/feature-table-engine.d.ts.map +1 -0
  365. package/web-components/feature-table-engine.js +1360 -0
  366. package/web-components/feature-table-view.d.ts +95 -0
  367. package/web-components/feature-table-view.d.ts.map +1 -0
  368. package/web-components/feature-table-view.js +343 -0
  369. package/web-components/index.d.ts +34 -3
  370. package/web-components/index.d.ts.map +1 -1
  371. package/web-components/index.js +35 -2
  372. package/web-components/maplibre-renderer.d.ts.map +1 -1
  373. package/web-components/maplibre-renderer.js +13 -4
  374. package/web-components/measurement.d.ts +3 -1
  375. package/web-components/measurement.d.ts.map +1 -1
  376. package/web-components/measurement.js +62 -18
  377. package/web-components/time-slider.d.ts +122 -0
  378. package/web-components/time-slider.d.ts.map +1 -0
  379. package/web-components/time-slider.js +740 -0
  380. package/web-components/types.d.ts +310 -0
  381. package/web-components/types.d.ts.map +1 -1
  382. package/webmap/convert-label.js +0 -1
  383. 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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"}