@honua/app-platform 0.1.2-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,265 @@
1
+ /**
2
+ * DOM-free presentation model behind `<honua-feature-editor>` — the
3
+ * production-tier capability-aware editing surface (issue #680, parent epic
4
+ * #678).
5
+ *
6
+ * Everything here is a *derivation* over the public contract editing
7
+ * primitives (`EditWorkflowField` / `EditFieldDomain` /
8
+ * `EditWorkflowCapabilitySummary` / `EditWorkflowValidationResult` from
9
+ * `@honua/sdk-js/contract`) plus the public source descriptor. No protocol
10
+ * adapter is imported, no service field name is hard-coded, and no transport
11
+ * happens: this module turns metadata into renderable controls, turns raw
12
+ * control input back into typed attribute values, and answers "which
13
+ * operations are truthfully available right now, and why not".
14
+ *
15
+ * Three things the protocol layer deliberately does not model, derived here
16
+ * because they are presentation concerns:
17
+ *
18
+ * 1. **Coded-value / range domains from native schema.** The contract's
19
+ * `resolveEditWorkflowMetadata` carries `name`/`type`/`length`/`nullable`/
20
+ * `editable`/`defaultValue` across from `SourceSchema.fields` but not the
21
+ * native `domain` block. {@link editorFieldsFromSchema} closes that gap
22
+ * over a structural (adapter-free) field shape so the contract's own
23
+ * `validate()` rejects out-of-domain values *before* transport.
24
+ * 2. **Subtypes.** There is no subtype primitive in the contract. A subtype is
25
+ * modeled here as a coded-value domain on one field plus per-subtype field
26
+ * overrides ({@link HonuaEditorSubtypeConfig}); {@link resolveEditorFields}
27
+ * folds the active subtype's overrides into the field list handed to the
28
+ * edit session, so switching subtype changes the valid choices *and* what
29
+ * the contract validator accepts.
30
+ * 3. **Per-operation availability.** The contract exposes one coarse
31
+ * `applyEdits` capability. {@link resolveEditorOperations} splits it into
32
+ * truthful per-operation state, folding in the capability profile's
33
+ * `authorization-required` / `authorization-denied` / `policy-disabled`
34
+ * verdicts, structural facts (an update or delete needs a feature
35
+ * identity), and host-supplied per-operation denials. It only ever
36
+ * *narrows* — a host override can never grant an operation the source does
37
+ * not support (fail closed).
38
+ *
39
+ * @module
40
+ */
41
+ import type { EditFieldDomain, EditWorkflowCapabilitySummary, EditWorkflowField, EditWorkflowValidationError, EditWorkflowValidationResult } from "../contract/edit-session.js";
42
+ /**
43
+ * Structural shape of one public schema field (`SourceSchema.fields[n]`, i.e.
44
+ * `HonuaFieldInfo`), described structurally so this module carries no import
45
+ * from any protocol-specific surface.
46
+ */
47
+ export interface HonuaEditorSchemaFieldLike {
48
+ readonly name: string;
49
+ readonly type?: string;
50
+ readonly alias?: string;
51
+ readonly length?: number;
52
+ readonly nullable?: boolean;
53
+ readonly editable?: boolean;
54
+ readonly defaultValue?: unknown;
55
+ readonly domain?: HonuaEditorSchemaDomainLike | null;
56
+ }
57
+ /** Structural shape of a native field domain block (coded-value or range). */
58
+ export interface HonuaEditorSchemaDomainLike {
59
+ readonly type?: string;
60
+ readonly name?: string;
61
+ readonly codedValues?: readonly {
62
+ readonly name?: string;
63
+ readonly code: string | number;
64
+ }[];
65
+ readonly range?: readonly [string | number, string | number];
66
+ }
67
+ /**
68
+ * Projects public schema fields onto contract {@link EditWorkflowField}s,
69
+ * including the coded-value / range domain the contract's own schema
70
+ * projection drops. Feed the result to `createEditSession`/
71
+ * `createEditSketchWorkflow` as `metadata.fields` so domain violations fail
72
+ * validation before any transport happens (REQ-001).
73
+ */
74
+ export declare function editorFieldsFromSchema(fields: readonly HonuaEditorSchemaFieldLike[] | undefined): readonly EditWorkflowField[];
75
+ /** Normalizes a native domain block to the contract's {@link EditFieldDomain}. */
76
+ export declare function editorDomainFromSchema(domain: HonuaEditorSchemaDomainLike | null | undefined): EditFieldDomain | undefined;
77
+ /** Per-subtype override for one field. `domain: null` clears an inherited domain. */
78
+ export interface HonuaEditorSubtypeFieldOverride {
79
+ readonly domain?: EditFieldDomain | null;
80
+ readonly required?: boolean;
81
+ readonly editable?: boolean;
82
+ readonly defaultValue?: unknown;
83
+ /** Hidden fields are not rendered and are never treated as required. */
84
+ readonly hidden?: boolean;
85
+ }
86
+ /** One subtype: a coded value of the subtype field plus its field overrides. */
87
+ export interface HonuaEditorSubtype {
88
+ readonly code: string | number;
89
+ readonly name: string;
90
+ readonly fieldOverrides?: Readonly<Record<string, HonuaEditorSubtypeFieldOverride>>;
91
+ }
92
+ /**
93
+ * Subtype configuration for an editable source: which field carries the
94
+ * subtype code, the available subtypes, and the code a new feature starts on.
95
+ */
96
+ export interface HonuaEditorSubtypeConfig {
97
+ /** Field whose value selects the subtype. */
98
+ readonly field: string;
99
+ readonly subtypes: readonly HonuaEditorSubtype[];
100
+ /** Code applied to a fresh create draft when the field has no value. */
101
+ readonly defaultCode?: string | number;
102
+ }
103
+ /** The subtype in effect for a set of attribute values, if any. */
104
+ export declare function resolveActiveEditorSubtype(config: HonuaEditorSubtypeConfig | undefined, values: Readonly<Record<string, unknown>>): HonuaEditorSubtype | undefined;
105
+ /**
106
+ * Folds subtype state into the field list handed to the edit session: the
107
+ * subtype field gains a coded-value domain built from the configured
108
+ * subtypes, and the active subtype's per-field overrides (domain, required,
109
+ * editable, default, hidden) are applied on top of the base metadata.
110
+ *
111
+ * Because the result is what `createEditSession`'s `metadata.fields` receives,
112
+ * a subtype change immediately changes both the rendered choices and what the
113
+ * contract validator accepts — an invalid combination is rejected before
114
+ * transport (REQ-001).
115
+ */
116
+ export declare function resolveEditorFields(fields: readonly EditWorkflowField[], config: HonuaEditorSubtypeConfig | undefined, values: Readonly<Record<string, unknown>>): readonly EditWorkflowField[];
117
+ /** Field names the active subtype hides from the form. */
118
+ export declare function hiddenEditorFieldNames(config: HonuaEditorSubtypeConfig | undefined, values: Readonly<Record<string, unknown>>): ReadonlySet<string>;
119
+ /** The three feature-edit operations the editor gates independently. */
120
+ export type HonuaEditorOperation = "create" | "update" | "delete";
121
+ /** Stable, testable reason code for an unavailable operation. */
122
+ export type HonuaEditorUnavailableCode = "capability-unsupported" | "capability-unknown" | "authorization-required" | "authorization-denied" | "policy-disabled" | "peer-unavailable" | "host-denied" | "no-feature-identity" | "no-editable-fields";
123
+ /** Truthful state of one operation, with a reason whenever it is unavailable. */
124
+ export interface HonuaEditorOperationAvailability {
125
+ readonly operation: HonuaEditorOperation;
126
+ readonly available: boolean;
127
+ readonly code?: HonuaEditorUnavailableCode;
128
+ readonly reason?: string;
129
+ }
130
+ /** Host-supplied per-operation denial (e.g. an `updateEnabled: false` service flag). */
131
+ export type HonuaEditorOperationOverride = boolean | {
132
+ readonly available: boolean;
133
+ readonly reason?: string;
134
+ };
135
+ /** Per-operation host overrides. Overrides can only deny, never grant. */
136
+ export type HonuaEditorOperationOverrides = Partial<Record<HonuaEditorOperation, HonuaEditorOperationOverride>>;
137
+ /**
138
+ * Structural subset of a capability decision (`CapabilityProfile.entries[n]`),
139
+ * described structurally so this module stays free of the capability
140
+ * evaluation surface.
141
+ */
142
+ export interface HonuaEditorCapabilityDecisionLike {
143
+ readonly id: string;
144
+ readonly effective: string;
145
+ readonly reasons?: readonly string[];
146
+ }
147
+ export interface ResolveEditorOperationsInput {
148
+ /** Coarse capability summary from the edit session (`session.capabilities()`). */
149
+ readonly capabilities: Pick<EditWorkflowCapabilitySummary, "applyEdits">;
150
+ /** `source.capabilityProfile?.entries`, when the source carries one. */
151
+ readonly decisions?: readonly HonuaEditorCapabilityDecisionLike[];
152
+ /** Whether the current draft/selection has a feature identity. */
153
+ readonly hasFeatureIdentity: boolean;
154
+ /** Effective (subtype-resolved) field list; used for the read-only check. */
155
+ readonly fields?: readonly EditWorkflowField[];
156
+ readonly overrides?: HonuaEditorOperationOverrides;
157
+ }
158
+ /**
159
+ * Derives truthful per-operation availability. Precedence, most authoritative
160
+ * first: capability profile verdict → coarse `applyEdits` capability → host
161
+ * override → structural preconditions. Every layer can only deny.
162
+ */
163
+ export declare function resolveEditorOperations(input: ResolveEditorOperationsInput): readonly HonuaEditorOperationAvailability[];
164
+ /** Looks one operation's availability up out of a resolved list. */
165
+ export declare function editorOperationAvailability(availability: readonly HonuaEditorOperationAvailability[], operation: HonuaEditorOperation): HonuaEditorOperationAvailability;
166
+ /** Control type the editor renders for a field. */
167
+ export type HonuaEditorControlKind = "text" | "textarea" | "number" | "select" | "checkbox" | "date" | "datetime";
168
+ /** One selectable choice of a coded-value domain (or the subtype field). */
169
+ export interface HonuaEditorChoice {
170
+ /** Stringified code, as an `<option value>` carries it. */
171
+ readonly value: string;
172
+ readonly label: string;
173
+ }
174
+ /** One rendered form control, fully derived from field metadata. */
175
+ export interface HonuaEditorFieldControl {
176
+ readonly name: string;
177
+ readonly label: string;
178
+ readonly kind: HonuaEditorControlKind;
179
+ readonly value: unknown;
180
+ readonly required: boolean;
181
+ readonly readOnly: boolean;
182
+ readonly nullable: boolean;
183
+ readonly maxLength?: number;
184
+ readonly min?: number;
185
+ readonly max?: number;
186
+ readonly choices?: readonly HonuaEditorChoice[];
187
+ /** True for the control that drives the active subtype. */
188
+ readonly subtypeField: boolean;
189
+ /** Validation messages scoped to this field. */
190
+ readonly errors: readonly string[];
191
+ }
192
+ /** The derived form: controls, subtype state, and validation state. */
193
+ export interface HonuaEditorFormModel {
194
+ readonly operation: HonuaEditorOperation;
195
+ readonly controls: readonly HonuaEditorFieldControl[];
196
+ readonly valid: boolean;
197
+ /** Validation errors not attributable to a rendered control. */
198
+ readonly formErrors: readonly string[];
199
+ readonly errors: readonly EditWorkflowValidationError[];
200
+ readonly subtype?: {
201
+ readonly field: string;
202
+ readonly code: string | number | undefined;
203
+ readonly name?: string;
204
+ readonly choices: readonly HonuaEditorChoice[];
205
+ };
206
+ }
207
+ export interface BuildEditorFormModelInput {
208
+ readonly operation: HonuaEditorOperation;
209
+ /** Subtype-resolved field list (see {@link resolveEditorFields}). */
210
+ readonly fields: readonly EditWorkflowField[];
211
+ readonly values: Readonly<Record<string, unknown>>;
212
+ readonly validation: EditWorkflowValidationResult;
213
+ readonly subtypes?: HonuaEditorSubtypeConfig;
214
+ }
215
+ /**
216
+ * Builds the renderable form from resolved field metadata plus the contract's
217
+ * own validation result — no service field names, no protocol branching
218
+ * (REQ-001).
219
+ */
220
+ export declare function buildEditorFormModel(input: BuildEditorFormModelInput): HonuaEditorFormModel;
221
+ /** Control kind for a field: coded-value domains select, otherwise by type. */
222
+ export declare function editorControlKind(field: EditWorkflowField): HonuaEditorControlKind;
223
+ /**
224
+ * Coerces raw control input (always a string from a DOM `value`, or a boolean
225
+ * from a checkbox) to the typed attribute value the source expects.
226
+ *
227
+ * Coded-value fields resolve back to the domain code's own type, so a numeric
228
+ * subtype or status code round-trips as a number rather than the `"3"` an
229
+ * `<option value>` carries — otherwise every coded-value edit would fail the
230
+ * contract's own domain check.
231
+ */
232
+ export declare function coerceEditorFieldValue(field: EditWorkflowField, raw: string | boolean | null): unknown;
233
+ /** Renders a typed attribute value as the string a DOM control carries. */
234
+ export declare function editorFieldInputValue(field: EditWorkflowField, value: unknown): string;
235
+ /**
236
+ * A staged attachment as the editor exposes it: descriptive metadata only.
237
+ *
238
+ * The payload itself (a `Blob`/`File`, or a string that may be a signed URL
239
+ * carrying credentials) stays inside the edit session and is never copied into
240
+ * a snapshot or an emitted event (REQ-004 / issue #680's data notes).
241
+ */
242
+ export interface HonuaEditorAttachmentDraft {
243
+ readonly index: number;
244
+ readonly operation: "add" | "update" | "delete";
245
+ readonly name: string;
246
+ readonly contentType?: string;
247
+ readonly size?: number;
248
+ readonly status: "staged" | "applied" | "failed" | "skipped";
249
+ readonly error?: string;
250
+ }
251
+ /** Structural shape of one staged attachment mutation. */
252
+ export interface HonuaEditorAttachmentMutationLike {
253
+ readonly operation: "add" | "update" | "delete";
254
+ readonly attachment?: unknown;
255
+ readonly name?: string;
256
+ readonly contentType?: string;
257
+ readonly attachmentIds?: readonly (string | number)[];
258
+ }
259
+ /**
260
+ * Redacts a staged attachment mutation down to safe descriptive metadata.
261
+ * String payloads (potentially credential-bearing URLs) never survive: only a
262
+ * `name`, which falls back to a neutral placeholder rather than the payload.
263
+ */
264
+ export declare function redactEditorAttachment(mutation: HonuaEditorAttachmentMutationLike, index: number, status?: HonuaEditorAttachmentDraft["status"], error?: string): HonuaEditorAttachmentDraft;
265
+ //# sourceMappingURL=feature-editor-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-editor-model.d.ts","sourceRoot":"","sources":["../../../src/web-components/feature-editor-model.ts"],"names":[],"mappings":"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"}