@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,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/sdk-js/scene-workspace` — framework-neutral 3D scene workspace state.
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
- * @experimental This entrypoint is not yet covered by the SDK's semver contract
5
- * — the surface may change in any minor release prior to `1.0.0`.
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 type { AddCesium3DTilesetOptions, CesiumCameraLike, CesiumCameraView, CesiumHeadingPitchRollRadians, CesiumLayerHandle, CesiumModelLike, CesiumModelPlacement, CesiumPrimitiveCollectionLike, CesiumSceneLike, CesiumSceneRuntimeTarget, CesiumTilesetLike, Honua3DStyleConditions, Honua3DStyleDescriptor, Honua3DStyleSpec, } from "./cesium-adapter.js";
14
- export { DEFAULT_CESIUM_ENTITY_LIMIT, HonuaCesiumEntityAdapterError, mountSourceToCesium, projectSourceToCesium, } from "./source-to-cesium.js";
15
- export type { CesiumEntityAdapterErrorCode, CesiumEntityCollectionTarget, CesiumEntityDiagnostic, CesiumEntityDiagnosticCode, CesiumEntityGeometry, CesiumEntityInterval, CesiumEntityProjection, CesiumEntityProjectionItem, CesiumEntityRuntimeLoader, CesiumEntityRuntimeModule, CesiumEntityWorkflowState, MountedCesiumEntitySource, MountSourceToCesiumOptions, ProjectSourceToCesiumOptions, } from "./source-to-cesium.js";
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;;;;;;GAMG;AAEH,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,yBAAyB,EACzB,oCAAoC,EACpC,8BAA8B,EAC9B,6BAA6B,EAC7B,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,mCAAmC,EACnC,8BAA8B,EAC9B,sBAAsB,EACtB,wBAAwB,EACxB,4BAA4B,EAC5B,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,2BAA2B,EAC3B,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,0BAA0B,EAC1B,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAClB,cAAc,EACd,8BAA8B,EAC9B,0BAA0B,EAC1B,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,gCAAgC,EAChC,gBAAgB,EAChB,2BAA2B,EAC3B,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,EACvB,sBAAsB,EACtB,8BAA8B,EAC9B,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,yBAAyB,EACzB,gBAAgB,EAChB,gBAAgB,EAChB,6BAA6B,EAC7B,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,6BAA6B,EAC7B,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,4BAA4B,EAC5B,4BAA4B,EAC5B,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,8BAA8B,EAC9B,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,gCAAgC,GACjC,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,0BAA0B,EAC1B,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,EACrB,4BAA4B,EAC5B,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,QAAQ,EACR,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,UAAU,EACV,6BAA6B,EAC7B,aAAa,EACb,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EACV,cAAc,EACd,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,YAAY,EACV,mCAAmC,EACnC,0BAA0B,EAC1B,sBAAsB,EACtB,oBAAoB,EACpB,kCAAkC,EAClC,kBAAkB,EAClB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,2BAA2B,EAC3B,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,gCAAgC,EAChC,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,0BAA0B,EAC1B,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/scene-workspace/index.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,40 @@
1
1
  /**
2
- * `@honua/sdk-js/scene-workspace` — framework-neutral 3D scene workspace state.
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
- * @experimental This entrypoint is not yet covered by the SDK's semver contract
5
- * — the surface may change in any minor release prior to `1.0.0`.
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 { MAPLIBRE_SCENE_CAPABILITIES, applyMapLibreScenePrimitives, createMapLibreSceneAdapter, createSceneRuntimeAdapter, diagnoseScenePrimitive, diagnoseScenePrimitives, summarizeDiagnosticStatus, toMapLibreExtrusionLayer, toMapLibreTerrainPatch, } from "./primitives.js";
11
- 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";
12
- export { DEFAULT_CESIUM_ENTITY_LIMIT, HonuaCesiumEntityAdapterError, mountSourceToCesium, projectSourceToCesium, } from "./source-to-cesium.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 { 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";