@honua/app-platform 0.0.20-alpha.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 (840) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +11 -0
  3. package/app/index.d.ts +164 -0
  4. package/app/index.d.ts.map +1 -0
  5. package/app/index.js +424 -0
  6. package/app-controller/controller.d.ts +425 -0
  7. package/app-controller/controller.d.ts.map +1 -0
  8. package/app-controller/controller.js +1173 -0
  9. package/app-controller/index.d.ts +14 -0
  10. package/app-controller/index.d.ts.map +1 -0
  11. package/app-controller/index.js +12 -0
  12. package/app-workspace/index.d.ts +421 -0
  13. package/app-workspace/index.d.ts.map +1 -0
  14. package/app-workspace/index.js +722 -0
  15. package/collaboration/client.d.ts +40 -0
  16. package/collaboration/client.d.ts.map +1 -0
  17. package/collaboration/client.js +299 -0
  18. package/collaboration/errors.d.ts +15 -0
  19. package/collaboration/errors.d.ts.map +1 -0
  20. package/collaboration/errors.js +17 -0
  21. package/collaboration/fixture.d.ts +41 -0
  22. package/collaboration/fixture.d.ts.map +1 -0
  23. package/collaboration/fixture.js +362 -0
  24. package/collaboration/index.d.ts +18 -0
  25. package/collaboration/index.d.ts.map +1 -0
  26. package/collaboration/index.js +14 -0
  27. package/collaboration/types.d.ts +240 -0
  28. package/collaboration/types.d.ts.map +1 -0
  29. package/collaboration/types.js +1 -0
  30. package/contract/analytics-sources.d.ts +149 -0
  31. package/contract/analytics-sources.d.ts.map +1 -0
  32. package/contract/analytics-sources.js +235 -0
  33. package/contract/edit-session.d.ts +203 -0
  34. package/contract/edit-session.d.ts.map +1 -0
  35. package/contract/edit-session.js +760 -0
  36. package/contract/edit-sketch.d.ts +91 -0
  37. package/contract/edit-sketch.d.ts.map +1 -0
  38. package/contract/edit-sketch.js +281 -0
  39. package/contract/index.d.ts +63 -0
  40. package/contract/index.d.ts.map +1 -0
  41. package/contract/index.js +52 -0
  42. package/contract/jobs.d.ts +149 -0
  43. package/contract/jobs.d.ts.map +1 -0
  44. package/contract/jobs.js +40 -0
  45. package/contract/pmtiles.d.ts +162 -0
  46. package/contract/pmtiles.d.ts.map +1 -0
  47. package/contract/pmtiles.js +155 -0
  48. package/contract/source.d.ts +447 -0
  49. package/contract/source.d.ts.map +1 -0
  50. package/contract/source.js +3909 -0
  51. package/contract/spatial-aggregation.d.ts +336 -0
  52. package/contract/spatial-aggregation.d.ts.map +1 -0
  53. package/contract/spatial-aggregation.js +298 -0
  54. package/contract/temporal.d.ts +455 -0
  55. package/contract/temporal.d.ts.map +1 -0
  56. package/contract/temporal.js +146 -0
  57. package/contract/tiles.d.ts +370 -0
  58. package/contract/tiles.d.ts.map +1 -0
  59. package/contract/tiles.js +519 -0
  60. package/contract/types.d.ts +694 -0
  61. package/contract/types.d.ts.map +1 -0
  62. package/contract/types.js +183 -0
  63. package/contract/widget-source.d.ts +205 -0
  64. package/contract/widget-source.d.ts.map +1 -0
  65. package/contract/widget-source.js +1473 -0
  66. package/control-plane/client.d.ts +95 -0
  67. package/control-plane/client.d.ts.map +1 -0
  68. package/control-plane/client.js +374 -0
  69. package/control-plane/index.d.ts +18 -0
  70. package/control-plane/index.d.ts.map +1 -0
  71. package/control-plane/index.js +14 -0
  72. package/control-plane/types.d.ts +233 -0
  73. package/control-plane/types.d.ts.map +1 -0
  74. package/control-plane/types.js +7 -0
  75. package/controls/basemap-style-binding.d.ts +54 -0
  76. package/controls/basemap-style-binding.d.ts.map +1 -0
  77. package/controls/basemap-style-binding.js +199 -0
  78. package/controls/basemap-switcher.d.ts +95 -0
  79. package/controls/basemap-switcher.d.ts.map +1 -0
  80. package/controls/basemap-switcher.js +379 -0
  81. package/controls/element-utils.d.ts +48 -0
  82. package/controls/element-utils.d.ts.map +1 -0
  83. package/controls/element-utils.js +78 -0
  84. package/controls/index.d.ts +33 -0
  85. package/controls/index.d.ts.map +1 -0
  86. package/controls/index.js +30 -0
  87. package/controls/layer-list.d.ts +98 -0
  88. package/controls/layer-list.d.ts.map +1 -0
  89. package/controls/layer-list.js +375 -0
  90. package/controls/legend-derive.d.ts +53 -0
  91. package/controls/legend-derive.d.ts.map +1 -0
  92. package/controls/legend-derive.js +196 -0
  93. package/controls/legend.d.ts +104 -0
  94. package/controls/legend.d.ts.map +1 -0
  95. package/controls/legend.js +381 -0
  96. package/controls/swipe-control.d.ts +80 -0
  97. package/controls/swipe-control.d.ts.map +1 -0
  98. package/controls/swipe-control.js +368 -0
  99. package/controls/types.d.ts +227 -0
  100. package/controls/types.d.ts.map +1 -0
  101. package/controls/types.js +11 -0
  102. package/core/auth/client-credentials-provider.d.ts +51 -0
  103. package/core/auth/client-credentials-provider.d.ts.map +1 -0
  104. package/core/auth/client-credentials-provider.js +115 -0
  105. package/core/auth/credential-store.d.ts +52 -0
  106. package/core/auth/credential-store.d.ts.map +1 -0
  107. package/core/auth/credential-store.js +82 -0
  108. package/core/auth/index.d.ts +23 -0
  109. package/core/auth/index.d.ts.map +1 -0
  110. package/core/auth/index.js +20 -0
  111. package/core/auth/oauth2-provider.d.ts +114 -0
  112. package/core/auth/oauth2-provider.d.ts.map +1 -0
  113. package/core/auth/oauth2-provider.js +408 -0
  114. package/core/auth/pkce.d.ts +25 -0
  115. package/core/auth/pkce.d.ts.map +1 -0
  116. package/core/auth/pkce.js +46 -0
  117. package/core/auth/static-providers.d.ts +20 -0
  118. package/core/auth/static-providers.d.ts.map +1 -0
  119. package/core/auth/static-providers.js +26 -0
  120. package/core/auth/token-endpoint.d.ts +40 -0
  121. package/core/auth/token-endpoint.d.ts.map +1 -0
  122. package/core/auth/token-endpoint.js +133 -0
  123. package/core/auth/types.d.ts +144 -0
  124. package/core/auth/types.d.ts.map +1 -0
  125. package/core/auth/types.js +8 -0
  126. package/core/batch.d.ts +37 -0
  127. package/core/batch.d.ts.map +1 -0
  128. package/core/batch.js +79 -0
  129. package/core/cache-state.d.ts +79 -0
  130. package/core/cache-state.d.ts.map +1 -0
  131. package/core/cache-state.js +87 -0
  132. package/core/client.d.ts +607 -0
  133. package/core/client.d.ts.map +1 -0
  134. package/core/client.js +1716 -0
  135. package/core/compatibility.d.ts +18 -0
  136. package/core/compatibility.d.ts.map +1 -0
  137. package/core/compatibility.js +245 -0
  138. package/core/errors.d.ts +139 -0
  139. package/core/errors.d.ts.map +1 -0
  140. package/core/errors.js +176 -0
  141. package/core/esri-geojson.d.ts +66 -0
  142. package/core/esri-geojson.d.ts.map +1 -0
  143. package/core/esri-geojson.js +363 -0
  144. package/core/geoparquet-sql.d.ts +162 -0
  145. package/core/geoparquet-sql.d.ts.map +1 -0
  146. package/core/geoparquet-sql.js +333 -0
  147. package/core/geoservices.d.ts +34 -0
  148. package/core/geoservices.d.ts.map +1 -0
  149. package/core/geoservices.js +434 -0
  150. package/core/grpc-adapter.d.ts +23 -0
  151. package/core/grpc-adapter.d.ts.map +1 -0
  152. package/core/grpc-adapter.js +688 -0
  153. package/core/odata.d.ts +347 -0
  154. package/core/odata.d.ts.map +1 -0
  155. package/core/odata.js +913 -0
  156. package/core/ogc-conformance.d.ts +35 -0
  157. package/core/ogc-conformance.d.ts.map +1 -0
  158. package/core/ogc-conformance.js +134 -0
  159. package/core/ogc-endpoint-layout.d.ts +70 -0
  160. package/core/ogc-endpoint-layout.d.ts.map +1 -0
  161. package/core/ogc-endpoint-layout.js +173 -0
  162. package/core/ogc-features.d.ts +23 -0
  163. package/core/ogc-features.d.ts.map +1 -0
  164. package/core/ogc-features.js +129 -0
  165. package/core/ogc-maps.d.ts +49 -0
  166. package/core/ogc-maps.d.ts.map +1 -0
  167. package/core/ogc-maps.js +126 -0
  168. package/core/ogc-processes.d.ts +118 -0
  169. package/core/ogc-processes.d.ts.map +1 -0
  170. package/core/ogc-processes.js +423 -0
  171. package/core/ogc-records.d.ts +75 -0
  172. package/core/ogc-records.d.ts.map +1 -0
  173. package/core/ogc-records.js +251 -0
  174. package/core/ogc-tiles.d.ts +125 -0
  175. package/core/ogc-tiles.d.ts.map +1 -0
  176. package/core/ogc-tiles.js +183 -0
  177. package/core/path-utils.d.ts +69 -0
  178. package/core/path-utils.d.ts.map +1 -0
  179. package/core/path-utils.js +123 -0
  180. package/core/pbf-decoder.d.ts +39 -0
  181. package/core/pbf-decoder.d.ts.map +1 -0
  182. package/core/pbf-decoder.js +702 -0
  183. package/core/process-runner.d.ts +104 -0
  184. package/core/process-runner.d.ts.map +1 -0
  185. package/core/process-runner.js +315 -0
  186. package/core/protocol-transport.d.ts +76 -0
  187. package/core/protocol-transport.d.ts.map +1 -0
  188. package/core/protocol-transport.js +15 -0
  189. package/core/query-builder.d.ts +261 -0
  190. package/core/query-builder.d.ts.map +1 -0
  191. package/core/query-builder.js +538 -0
  192. package/core/request-pipeline.d.ts +88 -0
  193. package/core/request-pipeline.d.ts.map +1 -0
  194. package/core/request-pipeline.js +273 -0
  195. package/core/spatial-filter.d.ts +93 -0
  196. package/core/spatial-filter.d.ts.map +1 -0
  197. package/core/spatial-filter.js +153 -0
  198. package/core/stac-static.d.ts +51 -0
  199. package/core/stac-static.d.ts.map +1 -0
  200. package/core/stac-static.js +195 -0
  201. package/core/stac.d.ts +67 -0
  202. package/core/stac.d.ts.map +1 -0
  203. package/core/stac.js +259 -0
  204. package/core/surfaces.d.ts +540 -0
  205. package/core/surfaces.d.ts.map +1 -0
  206. package/core/surfaces.js +1964 -0
  207. package/core/terrain-elevation.d.ts +114 -0
  208. package/core/terrain-elevation.d.ts.map +1 -0
  209. package/core/terrain-elevation.js +150 -0
  210. package/core/types.d.ts +1404 -0
  211. package/core/types.d.ts.map +1 -0
  212. package/core/types.js +13 -0
  213. package/core/wfs-capabilities.d.ts +153 -0
  214. package/core/wfs-capabilities.d.ts.map +1 -0
  215. package/core/wfs-capabilities.js +490 -0
  216. package/core/wfs-filter.d.ts +118 -0
  217. package/core/wfs-filter.d.ts.map +1 -0
  218. package/core/wfs-filter.js +634 -0
  219. package/core/wfs.d.ts +232 -0
  220. package/core/wfs.d.ts.map +1 -0
  221. package/core/wfs.js +426 -0
  222. package/core/wire-shared.d.ts +32 -0
  223. package/core/wire-shared.d.ts.map +1 -0
  224. package/core/wire-shared.js +76 -0
  225. package/core/wms-axis.d.ts +36 -0
  226. package/core/wms-axis.d.ts.map +1 -0
  227. package/core/wms-axis.js +73 -0
  228. package/core/wms-capabilities.d.ts +110 -0
  229. package/core/wms-capabilities.d.ts.map +1 -0
  230. package/core/wms-capabilities.js +559 -0
  231. package/core/wms-types.d.ts +128 -0
  232. package/core/wms-types.d.ts.map +1 -0
  233. package/core/wms-types.js +32 -0
  234. package/core/wms.d.ts +144 -0
  235. package/core/wms.d.ts.map +1 -0
  236. package/core/wms.js +338 -0
  237. package/core/wmts-capabilities.d.ts +82 -0
  238. package/core/wmts-capabilities.d.ts.map +1 -0
  239. package/core/wmts-capabilities.js +402 -0
  240. package/core/wmts.d.ts +103 -0
  241. package/core/wmts.d.ts.map +1 -0
  242. package/core/wmts.js +332 -0
  243. package/core/xml-text.d.ts +20 -0
  244. package/core/xml-text.d.ts.map +1 -0
  245. package/core/xml-text.js +85 -0
  246. package/esri-compat/basemap-gallery.d.ts +38 -0
  247. package/esri-compat/basemap-gallery.d.ts.map +1 -0
  248. package/esri-compat/basemap-gallery.js +159 -0
  249. package/esri-compat/basemap-layer-list.d.ts +35 -0
  250. package/esri-compat/basemap-layer-list.d.ts.map +1 -0
  251. package/esri-compat/basemap-layer-list.js +139 -0
  252. package/esri-compat/basemap.d.ts +32 -0
  253. package/esri-compat/basemap.d.ts.map +1 -0
  254. package/esri-compat/basemap.js +84 -0
  255. package/esri-compat/bookmarks.d.ts +36 -0
  256. package/esri-compat/bookmarks.d.ts.map +1 -0
  257. package/esri-compat/bookmarks.js +108 -0
  258. package/esri-compat/class-breaks-renderer.d.ts +50 -0
  259. package/esri-compat/class-breaks-renderer.d.ts.map +1 -0
  260. package/esri-compat/class-breaks-renderer.js +164 -0
  261. package/esri-compat/color.d.ts +22 -0
  262. package/esri-compat/color.d.ts.map +1 -0
  263. package/esri-compat/color.js +106 -0
  264. package/esri-compat/controls.d.ts +174 -0
  265. package/esri-compat/controls.d.ts.map +1 -0
  266. package/esri-compat/controls.js +479 -0
  267. package/esri-compat/coordinate-conversion.d.ts +41 -0
  268. package/esri-compat/coordinate-conversion.d.ts.map +1 -0
  269. package/esri-compat/coordinate-conversion.js +125 -0
  270. package/esri-compat/directions.d.ts +45 -0
  271. package/esri-compat/directions.d.ts.map +1 -0
  272. package/esri-compat/directions.js +123 -0
  273. package/esri-compat/editor.d.ts +47 -0
  274. package/esri-compat/editor.d.ts.map +1 -0
  275. package/esri-compat/editor.js +170 -0
  276. package/esri-compat/esri-config.d.ts +16 -0
  277. package/esri-compat/esri-config.d.ts.map +1 -0
  278. package/esri-compat/esri-config.js +23 -0
  279. package/esri-compat/esri-request.d.ts +17 -0
  280. package/esri-compat/esri-request.d.ts.map +1 -0
  281. package/esri-compat/esri-request.js +127 -0
  282. package/esri-compat/event-bus.d.ts +106 -0
  283. package/esri-compat/event-bus.d.ts.map +1 -0
  284. package/esri-compat/event-bus.js +90 -0
  285. package/esri-compat/expand.d.ts +36 -0
  286. package/esri-compat/expand.d.ts.map +1 -0
  287. package/esri-compat/expand.js +97 -0
  288. package/esri-compat/extent.d.ts +43 -0
  289. package/esri-compat/extent.d.ts.map +1 -0
  290. package/esri-compat/extent.js +140 -0
  291. package/esri-compat/feature-filter.d.ts +55 -0
  292. package/esri-compat/feature-filter.d.ts.map +1 -0
  293. package/esri-compat/feature-filter.js +109 -0
  294. package/esri-compat/feature-form.d.ts +64 -0
  295. package/esri-compat/feature-form.d.ts.map +1 -0
  296. package/esri-compat/feature-form.js +137 -0
  297. package/esri-compat/feature-layer.d.ts +173 -0
  298. package/esri-compat/feature-layer.d.ts.map +1 -0
  299. package/esri-compat/feature-layer.js +661 -0
  300. package/esri-compat/feature-set.d.ts +32 -0
  301. package/esri-compat/feature-set.d.ts.map +1 -0
  302. package/esri-compat/feature-set.js +80 -0
  303. package/esri-compat/feature-table.d.ts +141 -0
  304. package/esri-compat/feature-table.d.ts.map +1 -0
  305. package/esri-compat/feature-table.js +500 -0
  306. package/esri-compat/feature-templates.d.ts +41 -0
  307. package/esri-compat/feature-templates.d.ts.map +1 -0
  308. package/esri-compat/feature-templates.js +97 -0
  309. package/esri-compat/feature.d.ts +33 -0
  310. package/esri-compat/feature.d.ts.map +1 -0
  311. package/esri-compat/feature.js +83 -0
  312. package/esri-compat/geojson-layer.d.ts +86 -0
  313. package/esri-compat/geojson-layer.d.ts.map +1 -0
  314. package/esri-compat/geojson-layer.js +191 -0
  315. package/esri-compat/geometry-engine.d.ts +107 -0
  316. package/esri-compat/geometry-engine.d.ts.map +1 -0
  317. package/esri-compat/geometry-engine.js +266 -0
  318. package/esri-compat/graphic.d.ts +46 -0
  319. package/esri-compat/graphic.d.ts.map +1 -0
  320. package/esri-compat/graphic.js +103 -0
  321. package/esri-compat/graphics-layer.d.ts +49 -0
  322. package/esri-compat/graphics-layer.d.ts.map +1 -0
  323. package/esri-compat/graphics-layer.js +185 -0
  324. package/esri-compat/group-layer.d.ts +48 -0
  325. package/esri-compat/group-layer.d.ts.map +1 -0
  326. package/esri-compat/group-layer.js +212 -0
  327. package/esri-compat/identify.d.ts +71 -0
  328. package/esri-compat/identify.d.ts.map +1 -0
  329. package/esri-compat/identify.js +299 -0
  330. package/esri-compat/identity-manager.d.ts +74 -0
  331. package/esri-compat/identity-manager.d.ts.map +1 -0
  332. package/esri-compat/identity-manager.js +245 -0
  333. package/esri-compat/imagery-layer.d.ts +78 -0
  334. package/esri-compat/imagery-layer.d.ts.map +1 -0
  335. package/esri-compat/imagery-layer.js +167 -0
  336. package/esri-compat/label-class.d.ts +31 -0
  337. package/esri-compat/label-class.d.ts.map +1 -0
  338. package/esri-compat/label-class.js +102 -0
  339. package/esri-compat/layer-list.d.ts +77 -0
  340. package/esri-compat/layer-list.d.ts.map +1 -0
  341. package/esri-compat/layer-list.js +342 -0
  342. package/esri-compat/legend.d.ts +53 -0
  343. package/esri-compat/legend.d.ts.map +1 -0
  344. package/esri-compat/legend.js +254 -0
  345. package/esri-compat/map-image-layer.d.ts +162 -0
  346. package/esri-compat/map-image-layer.d.ts.map +1 -0
  347. package/esri-compat/map-image-layer.js +709 -0
  348. package/esri-compat/map-view.d.ts +323 -0
  349. package/esri-compat/map-view.d.ts.map +1 -0
  350. package/esri-compat/map-view.js +1175 -0
  351. package/esri-compat/map.d.ts +47 -0
  352. package/esri-compat/map.d.ts.map +1 -0
  353. package/esri-compat/map.js +209 -0
  354. package/esri-compat/measurement-2d.d.ts +61 -0
  355. package/esri-compat/measurement-2d.d.ts.map +1 -0
  356. package/esri-compat/measurement-2d.js +184 -0
  357. package/esri-compat/measurement.d.ts +45 -0
  358. package/esri-compat/measurement.d.ts.map +1 -0
  359. package/esri-compat/measurement.js +193 -0
  360. package/esri-compat/oauth-info.d.ts +50 -0
  361. package/esri-compat/oauth-info.d.ts.map +1 -0
  362. package/esri-compat/oauth-info.js +142 -0
  363. package/esri-compat/picture-marker-symbol.d.ts +35 -0
  364. package/esri-compat/picture-marker-symbol.d.ts.map +1 -0
  365. package/esri-compat/picture-marker-symbol.js +126 -0
  366. package/esri-compat/point.d.ts +31 -0
  367. package/esri-compat/point.d.ts.map +1 -0
  368. package/esri-compat/point.js +102 -0
  369. package/esri-compat/polygon.d.ts +31 -0
  370. package/esri-compat/polygon.d.ts.map +1 -0
  371. package/esri-compat/polygon.js +107 -0
  372. package/esri-compat/polyline.d.ts +31 -0
  373. package/esri-compat/polyline.d.ts.map +1 -0
  374. package/esri-compat/polyline.js +107 -0
  375. package/esri-compat/popup-template.d.ts +55 -0
  376. package/esri-compat/popup-template.d.ts.map +1 -0
  377. package/esri-compat/popup-template.js +128 -0
  378. package/esri-compat/popup.d.ts +54 -0
  379. package/esri-compat/popup.d.ts.map +1 -0
  380. package/esri-compat/popup.js +312 -0
  381. package/esri-compat/print.d.ts +47 -0
  382. package/esri-compat/print.d.ts.map +1 -0
  383. package/esri-compat/print.js +105 -0
  384. package/esri-compat/query.d.ts +58 -0
  385. package/esri-compat/query.d.ts.map +1 -0
  386. package/esri-compat/query.js +128 -0
  387. package/esri-compat/reactive-utils.d.ts +24 -0
  388. package/esri-compat/reactive-utils.d.ts.map +1 -0
  389. package/esri-compat/reactive-utils.js +193 -0
  390. package/esri-compat/request.d.ts +41 -0
  391. package/esri-compat/request.d.ts.map +1 -0
  392. package/esri-compat/request.js +253 -0
  393. package/esri-compat/route-layer.d.ts +59 -0
  394. package/esri-compat/route-layer.d.ts.map +1 -0
  395. package/esri-compat/route-layer.js +223 -0
  396. package/esri-compat/route-task.d.ts +88 -0
  397. package/esri-compat/route-task.d.ts.map +1 -0
  398. package/esri-compat/route-task.js +225 -0
  399. package/esri-compat/scene-view.d.ts +41 -0
  400. package/esri-compat/scene-view.d.ts.map +1 -0
  401. package/esri-compat/scene-view.js +68 -0
  402. package/esri-compat/search.d.ts +112 -0
  403. package/esri-compat/search.d.ts.map +1 -0
  404. package/esri-compat/search.js +820 -0
  405. package/esri-compat/simple-fill-symbol.d.ts +27 -0
  406. package/esri-compat/simple-fill-symbol.d.ts.map +1 -0
  407. package/esri-compat/simple-fill-symbol.js +85 -0
  408. package/esri-compat/simple-line-symbol.d.ts +27 -0
  409. package/esri-compat/simple-line-symbol.d.ts.map +1 -0
  410. package/esri-compat/simple-line-symbol.js +85 -0
  411. package/esri-compat/simple-marker-symbol.d.ts +29 -0
  412. package/esri-compat/simple-marker-symbol.d.ts.map +1 -0
  413. package/esri-compat/simple-marker-symbol.js +92 -0
  414. package/esri-compat/simple-renderer.d.ts +29 -0
  415. package/esri-compat/simple-renderer.d.ts.map +1 -0
  416. package/esri-compat/simple-renderer.js +92 -0
  417. package/esri-compat/sketch.d.ts +64 -0
  418. package/esri-compat/sketch.d.ts.map +1 -0
  419. package/esri-compat/sketch.js +227 -0
  420. package/esri-compat/spatial-reference.d.ts +31 -0
  421. package/esri-compat/spatial-reference.d.ts.map +1 -0
  422. package/esri-compat/spatial-reference.js +102 -0
  423. package/esri-compat/swipe.d.ts +34 -0
  424. package/esri-compat/swipe.d.ts.map +1 -0
  425. package/esri-compat/swipe.js +93 -0
  426. package/esri-compat/table-list.d.ts +36 -0
  427. package/esri-compat/table-list.d.ts.map +1 -0
  428. package/esri-compat/table-list.js +126 -0
  429. package/esri-compat/text-symbol.d.ts +37 -0
  430. package/esri-compat/text-symbol.d.ts.map +1 -0
  431. package/esri-compat/text-symbol.js +123 -0
  432. package/esri-compat/tile-layer.d.ts +52 -0
  433. package/esri-compat/tile-layer.d.ts.map +1 -0
  434. package/esri-compat/tile-layer.js +168 -0
  435. package/esri-compat/time-slider.d.ts +70 -0
  436. package/esri-compat/time-slider.d.ts.map +1 -0
  437. package/esri-compat/time-slider.js +208 -0
  438. package/esri-compat/track.d.ts +51 -0
  439. package/esri-compat/track.d.ts.map +1 -0
  440. package/esri-compat/track.js +174 -0
  441. package/esri-compat/unique-value-renderer.d.ts +41 -0
  442. package/esri-compat/unique-value-renderer.d.ts.map +1 -0
  443. package/esri-compat/unique-value-renderer.js +127 -0
  444. package/esri-compat/url.d.ts +13 -0
  445. package/esri-compat/url.d.ts.map +1 -0
  446. package/esri-compat/url.js +68 -0
  447. package/esri-compat/vector-tile-layer.d.ts +47 -0
  448. package/esri-compat/vector-tile-layer.d.ts.map +1 -0
  449. package/esri-compat/vector-tile-layer.js +130 -0
  450. package/esri-compat/web-map.d.ts +14 -0
  451. package/esri-compat/web-map.d.ts.map +1 -0
  452. package/esri-compat/web-map.js +24 -0
  453. package/esri-compat/wfs-layer.d.ts +64 -0
  454. package/esri-compat/wfs-layer.d.ts.map +1 -0
  455. package/esri-compat/wfs-layer.js +145 -0
  456. package/esri-compat/wms-layer.d.ts +76 -0
  457. package/esri-compat/wms-layer.d.ts.map +1 -0
  458. package/esri-compat/wms-layer.js +157 -0
  459. package/exploration/context.d.ts +25 -0
  460. package/exploration/context.d.ts.map +1 -0
  461. package/exploration/context.js +396 -0
  462. package/exploration/index.d.ts +27 -0
  463. package/exploration/index.d.ts.map +1 -0
  464. package/exploration/index.js +24 -0
  465. package/exploration/presets.d.ts +27 -0
  466. package/exploration/presets.d.ts.map +1 -0
  467. package/exploration/presets.js +114 -0
  468. package/exploration/reducer.d.ts +23 -0
  469. package/exploration/reducer.d.ts.map +1 -0
  470. package/exploration/reducer.js +332 -0
  471. package/exploration/selection.d.ts +25 -0
  472. package/exploration/selection.d.ts.map +1 -0
  473. package/exploration/selection.js +34 -0
  474. package/exploration/selectors.d.ts +56 -0
  475. package/exploration/selectors.d.ts.map +1 -0
  476. package/exploration/selectors.js +110 -0
  477. package/exploration/types.d.ts +294 -0
  478. package/exploration/types.d.ts.map +1 -0
  479. package/exploration/types.js +33 -0
  480. package/expr/expression.d.ts +457 -0
  481. package/expr/expression.d.ts.map +1 -0
  482. package/expr/expression.js +663 -0
  483. package/expr/index.d.ts +32 -0
  484. package/expr/index.d.ts.map +1 -0
  485. package/expr/index.js +30 -0
  486. package/filter-registry/index.d.ts +145 -0
  487. package/filter-registry/index.d.ts.map +1 -0
  488. package/filter-registry/index.js +531 -0
  489. package/gen/honua/v1/feature_service_pb.d.ts +918 -0
  490. package/gen/honua/v1/feature_service_pb.d.ts.map +1 -0
  491. package/gen/honua/v1/feature_service_pb.js +375 -0
  492. package/generated-app/errors.d.ts +41 -0
  493. package/generated-app/errors.d.ts.map +1 -0
  494. package/generated-app/errors.js +41 -0
  495. package/generated-app/index.d.ts +17 -0
  496. package/generated-app/index.d.ts.map +1 -0
  497. package/generated-app/index.js +12 -0
  498. package/generated-app/manifest.d.ts +183 -0
  499. package/generated-app/manifest.d.ts.map +1 -0
  500. package/generated-app/manifest.js +14 -0
  501. package/generated-app/projection.d.ts +44 -0
  502. package/generated-app/projection.d.ts.map +1 -0
  503. package/generated-app/projection.js +234 -0
  504. package/generated-app/runtime.d.ts +215 -0
  505. package/generated-app/runtime.d.ts.map +1 -0
  506. package/generated-app/runtime.js +1196 -0
  507. package/geocoding/index.d.ts +106 -0
  508. package/geocoding/index.d.ts.map +1 -0
  509. package/geocoding/index.js +278 -0
  510. package/interactions/detail-model.d.ts +54 -0
  511. package/interactions/detail-model.d.ts.map +1 -0
  512. package/interactions/detail-model.js +105 -0
  513. package/interactions/exploration-bindings.d.ts +120 -0
  514. package/interactions/exploration-bindings.d.ts.map +1 -0
  515. package/interactions/exploration-bindings.js +218 -0
  516. package/interactions/feature-state.d.ts +144 -0
  517. package/interactions/feature-state.d.ts.map +1 -0
  518. package/interactions/feature-state.js +169 -0
  519. package/interactions/hit-test.d.ts +112 -0
  520. package/interactions/hit-test.d.ts.map +1 -0
  521. package/interactions/hit-test.js +291 -0
  522. package/interactions/index.d.ts +31 -0
  523. package/interactions/index.d.ts.map +1 -0
  524. package/interactions/index.js +24 -0
  525. package/interactions/share-state.d.ts +36 -0
  526. package/interactions/share-state.d.ts.map +1 -0
  527. package/interactions/share-state.js +123 -0
  528. package/map/feature-service-adapter.d.ts +138 -0
  529. package/map/feature-service-adapter.d.ts.map +1 -0
  530. package/map/feature-service-adapter.js +279 -0
  531. package/map/honua-map.d.ts +203 -0
  532. package/map/honua-map.d.ts.map +1 -0
  533. package/map/honua-map.js +347 -0
  534. package/map/index.d.ts +27 -0
  535. package/map/index.d.ts.map +1 -0
  536. package/map/index.js +22 -0
  537. package/map/maplibre-target.d.ts +103 -0
  538. package/map/maplibre-target.d.ts.map +1 -0
  539. package/map/maplibre-target.js +164 -0
  540. package/map/webmap-maplibre.d.ts +60 -0
  541. package/map/webmap-maplibre.d.ts.map +1 -0
  542. package/map/webmap-maplibre.js +212 -0
  543. package/operate/client.d.ts +94 -0
  544. package/operate/client.d.ts.map +1 -0
  545. package/operate/client.js +361 -0
  546. package/operate/index.d.ts +22 -0
  547. package/operate/index.d.ts.map +1 -0
  548. package/operate/index.js +19 -0
  549. package/operate/types.d.ts +397 -0
  550. package/operate/types.d.ts.map +1 -0
  551. package/operate/types.js +17 -0
  552. package/operator/client.d.ts +60 -0
  553. package/operator/client.d.ts.map +1 -0
  554. package/operator/client.js +20 -0
  555. package/operator/controllers/approval.d.ts +52 -0
  556. package/operator/controllers/approval.d.ts.map +1 -0
  557. package/operator/controllers/approval.js +123 -0
  558. package/operator/controllers/base.d.ts +27 -0
  559. package/operator/controllers/base.d.ts.map +1 -0
  560. package/operator/controllers/base.js +53 -0
  561. package/operator/controllers/builder-workspace.d.ts +55 -0
  562. package/operator/controllers/builder-workspace.d.ts.map +1 -0
  563. package/operator/controllers/builder-workspace.js +108 -0
  564. package/operator/controllers/chat.d.ts +61 -0
  565. package/operator/controllers/chat.d.ts.map +1 -0
  566. package/operator/controllers/chat.js +154 -0
  567. package/operator/controllers/clarification.d.ts +52 -0
  568. package/operator/controllers/clarification.d.ts.map +1 -0
  569. package/operator/controllers/clarification.js +121 -0
  570. package/operator/controllers/execution.d.ts +60 -0
  571. package/operator/controllers/execution.d.ts.map +1 -0
  572. package/operator/controllers/execution.js +286 -0
  573. package/operator/controllers/index.d.ts +23 -0
  574. package/operator/controllers/index.d.ts.map +1 -0
  575. package/operator/controllers/index.js +15 -0
  576. package/operator/controllers/map-workspace.d.ts +85 -0
  577. package/operator/controllers/map-workspace.d.ts.map +1 -0
  578. package/operator/controllers/map-workspace.js +296 -0
  579. package/operator/controllers/plan-review.d.ts +66 -0
  580. package/operator/controllers/plan-review.d.ts.map +1 -0
  581. package/operator/controllers/plan-review.js +124 -0
  582. package/operator/errors.d.ts +62 -0
  583. package/operator/errors.d.ts.map +1 -0
  584. package/operator/errors.js +75 -0
  585. package/operator/i18n/index.d.ts +10 -0
  586. package/operator/i18n/index.d.ts.map +1 -0
  587. package/operator/i18n/index.js +8 -0
  588. package/operator/i18n/messages.d.ts +19 -0
  589. package/operator/i18n/messages.d.ts.map +1 -0
  590. package/operator/i18n/messages.js +54 -0
  591. package/operator/index.d.ts +19 -0
  592. package/operator/index.d.ts.map +1 -0
  593. package/operator/index.js +15 -0
  594. package/operator/telemetry.d.ts +26 -0
  595. package/operator/telemetry.d.ts.map +1 -0
  596. package/operator/telemetry.js +9 -0
  597. package/operator/theming/index.d.ts +12 -0
  598. package/operator/theming/index.d.ts.map +1 -0
  599. package/operator/theming/index.js +9 -0
  600. package/operator/theming/provider.d.ts +27 -0
  601. package/operator/theming/provider.d.ts.map +1 -0
  602. package/operator/theming/provider.js +26 -0
  603. package/operator/theming/tokens.d.ts +28 -0
  604. package/operator/theming/tokens.d.ts.map +1 -0
  605. package/operator/theming/tokens.js +65 -0
  606. package/operator/workspace/events.d.ts +70 -0
  607. package/operator/workspace/events.d.ts.map +1 -0
  608. package/operator/workspace/events.js +9 -0
  609. package/operator/workspace/index.d.ts +12 -0
  610. package/operator/workspace/index.d.ts.map +1 -0
  611. package/operator/workspace/index.js +8 -0
  612. package/operator/workspace/types.d.ts +178 -0
  613. package/operator/workspace/types.d.ts.map +1 -0
  614. package/operator/workspace/types.js +47 -0
  615. package/operator/workspace/workspace.d.ts +58 -0
  616. package/operator/workspace/workspace.d.ts.map +1 -0
  617. package/operator/workspace/workspace.js +339 -0
  618. package/package.json +105 -0
  619. package/realtime/exploration.d.ts +16 -0
  620. package/realtime/exploration.d.ts.map +1 -0
  621. package/realtime/exploration.js +32 -0
  622. package/realtime/honua-server.d.ts +123 -0
  623. package/realtime/honua-server.d.ts.map +1 -0
  624. package/realtime/honua-server.js +188 -0
  625. package/realtime/index.d.ts +20 -0
  626. package/realtime/index.d.ts.map +1 -0
  627. package/realtime/index.js +14 -0
  628. package/realtime/projections.d.ts +30 -0
  629. package/realtime/projections.d.ts.map +1 -0
  630. package/realtime/projections.js +51 -0
  631. package/realtime/reducer.d.ts +14 -0
  632. package/realtime/reducer.d.ts.map +1 -0
  633. package/realtime/reducer.js +351 -0
  634. package/realtime/sse.d.ts +23 -0
  635. package/realtime/sse.d.ts.map +1 -0
  636. package/realtime/sse.js +143 -0
  637. package/realtime/store.d.ts +18 -0
  638. package/realtime/store.d.ts.map +1 -0
  639. package/realtime/store.js +63 -0
  640. package/realtime/types.d.ts +190 -0
  641. package/realtime/types.d.ts.map +1 -0
  642. package/realtime/types.js +10 -0
  643. package/replica-sync/client.d.ts +32 -0
  644. package/replica-sync/client.d.ts.map +1 -0
  645. package/replica-sync/client.js +52 -0
  646. package/replica-sync/errors.d.ts +22 -0
  647. package/replica-sync/errors.d.ts.map +1 -0
  648. package/replica-sync/errors.js +29 -0
  649. package/replica-sync/fixture.d.ts +40 -0
  650. package/replica-sync/fixture.d.ts.map +1 -0
  651. package/replica-sync/fixture.js +364 -0
  652. package/replica-sync/index.d.ts +22 -0
  653. package/replica-sync/index.d.ts.map +1 -0
  654. package/replica-sync/index.js +17 -0
  655. package/replica-sync/types.d.ts +270 -0
  656. package/replica-sync/types.d.ts.map +1 -0
  657. package/replica-sync/types.js +13 -0
  658. package/runtime/diff.d.ts +31 -0
  659. package/runtime/diff.d.ts.map +1 -0
  660. package/runtime/diff.js +143 -0
  661. package/runtime/errors.d.ts +40 -0
  662. package/runtime/errors.d.ts.map +1 -0
  663. package/runtime/errors.js +35 -0
  664. package/runtime/index.d.ts +59 -0
  665. package/runtime/index.d.ts.map +1 -0
  666. package/runtime/index.js +40 -0
  667. package/runtime/legend.d.ts +23 -0
  668. package/runtime/legend.d.ts.map +1 -0
  669. package/runtime/legend.js +38 -0
  670. package/runtime/load-package.d.ts +125 -0
  671. package/runtime/load-package.d.ts.map +1 -0
  672. package/runtime/load-package.js +272 -0
  673. package/runtime/map-package-fetch.d.ts +107 -0
  674. package/runtime/map-package-fetch.d.ts.map +1 -0
  675. package/runtime/map-package-fetch.js +336 -0
  676. package/runtime/map-package-realtime.d.ts +169 -0
  677. package/runtime/map-package-realtime.d.ts.map +1 -0
  678. package/runtime/map-package-realtime.js +350 -0
  679. package/runtime/map-package-validation.d.ts +30 -0
  680. package/runtime/map-package-validation.d.ts.map +1 -0
  681. package/runtime/map-package-validation.js +257 -0
  682. package/runtime/map-package-watch.d.ts +78 -0
  683. package/runtime/map-package-watch.d.ts.map +1 -0
  684. package/runtime/map-package-watch.js +695 -0
  685. package/runtime/map-package.d.ts +167 -0
  686. package/runtime/map-package.d.ts.map +1 -0
  687. package/runtime/map-package.js +15 -0
  688. package/runtime/ogc-styles.d.ts +110 -0
  689. package/runtime/ogc-styles.d.ts.map +1 -0
  690. package/runtime/ogc-styles.js +195 -0
  691. package/runtime/pmtiles-protocol.d.ts +77 -0
  692. package/runtime/pmtiles-protocol.d.ts.map +1 -0
  693. package/runtime/pmtiles-protocol.js +120 -0
  694. package/runtime/popups.d.ts +62 -0
  695. package/runtime/popups.d.ts.map +1 -0
  696. package/runtime/popups.js +95 -0
  697. package/runtime/query-tiles.d.ts +217 -0
  698. package/runtime/query-tiles.d.ts.map +1 -0
  699. package/runtime/query-tiles.js +801 -0
  700. package/runtime/runtime.d.ts +243 -0
  701. package/runtime/runtime.d.ts.map +1 -0
  702. package/runtime/runtime.js +1147 -0
  703. package/runtime/source-bridge.d.ts +99 -0
  704. package/runtime/source-bridge.d.ts.map +1 -0
  705. package/runtime/source-bridge.js +428 -0
  706. package/runtime/style-compose.d.ts +46 -0
  707. package/runtime/style-compose.d.ts.map +1 -0
  708. package/runtime/style-compose.js +144 -0
  709. package/runtime/style-interactions.d.ts +141 -0
  710. package/runtime/style-interactions.d.ts.map +1 -0
  711. package/runtime/style-interactions.js +574 -0
  712. package/runtime/style-spec-validation.d.ts +23 -0
  713. package/runtime/style-spec-validation.d.ts.map +1 -0
  714. package/runtime/style-spec-validation.js +357 -0
  715. package/scene-workspace/analysis-widgets.d.ts +334 -0
  716. package/scene-workspace/analysis-widgets.d.ts.map +1 -0
  717. package/scene-workspace/analysis-widgets.js +424 -0
  718. package/scene-workspace/cesium-adapter.d.ts +438 -0
  719. package/scene-workspace/cesium-adapter.d.ts.map +1 -0
  720. package/scene-workspace/cesium-adapter.js +493 -0
  721. package/scene-workspace/index.d.ts +21 -0
  722. package/scene-workspace/index.d.ts.map +1 -0
  723. package/scene-workspace/index.js +14 -0
  724. package/scene-workspace/primitives.d.ts +162 -0
  725. package/scene-workspace/primitives.d.ts.map +1 -0
  726. package/scene-workspace/primitives.js +255 -0
  727. package/scene-workspace/scene-discovery.d.ts +196 -0
  728. package/scene-workspace/scene-discovery.d.ts.map +1 -0
  729. package/scene-workspace/scene-discovery.js +228 -0
  730. package/scene-workspace/scene-view.d.ts +209 -0
  731. package/scene-workspace/scene-view.d.ts.map +1 -0
  732. package/scene-workspace/scene-view.js +267 -0
  733. package/scene-workspace/types.d.ts +229 -0
  734. package/scene-workspace/types.d.ts.map +1 -0
  735. package/scene-workspace/types.js +23 -0
  736. package/scene-workspace/workspace.d.ts +13 -0
  737. package/scene-workspace/workspace.d.ts.map +1 -0
  738. package/scene-workspace/workspace.js +391 -0
  739. package/share/denial.d.ts +78 -0
  740. package/share/denial.d.ts.map +1 -0
  741. package/share/denial.js +61 -0
  742. package/share/embed-token.d.ts +71 -0
  743. package/share/embed-token.d.ts.map +1 -0
  744. package/share/embed-token.js +99 -0
  745. package/share/index.d.ts +35 -0
  746. package/share/index.d.ts.map +1 -0
  747. package/share/index.js +30 -0
  748. package/share/open-data.d.ts +114 -0
  749. package/share/open-data.d.ts.map +1 -0
  750. package/share/open-data.js +81 -0
  751. package/share/types.d.ts +163 -0
  752. package/share/types.d.ts.map +1 -0
  753. package/share/types.js +17 -0
  754. package/studio/capability-manifest.d.ts +285 -0
  755. package/studio/capability-manifest.d.ts.map +1 -0
  756. package/studio/capability-manifest.js +59 -0
  757. package/studio/chart-spec.d.ts +85 -0
  758. package/studio/chart-spec.d.ts.map +1 -0
  759. package/studio/chart-spec.js +106 -0
  760. package/studio/index.d.ts +34 -0
  761. package/studio/index.d.ts.map +1 -0
  762. package/studio/index.js +27 -0
  763. package/studio/provenance.d.ts +131 -0
  764. package/studio/provenance.d.ts.map +1 -0
  765. package/studio/provenance.js +39 -0
  766. package/studio/publish.d.ts +64 -0
  767. package/studio/publish.d.ts.map +1 -0
  768. package/studio/publish.js +13 -0
  769. package/studio/types.d.ts +278 -0
  770. package/studio/types.d.ts.map +1 -0
  771. package/studio/types.js +71 -0
  772. package/studio/validate.d.ts +45 -0
  773. package/studio/validate.d.ts.map +1 -0
  774. package/studio/validate.js +255 -0
  775. package/studio/validation.d.ts +112 -0
  776. package/studio/validation.d.ts.map +1 -0
  777. package/studio/validation.js +42 -0
  778. package/style/factory.d.ts +30 -0
  779. package/style/factory.d.ts.map +1 -0
  780. package/style/factory.js +61 -0
  781. package/style/index.d.ts +25 -0
  782. package/style/index.d.ts.map +1 -0
  783. package/style/index.js +24 -0
  784. package/style/specification.d.ts +203 -0
  785. package/style/specification.d.ts.map +1 -0
  786. package/style/specification.js +178 -0
  787. package/style/wms-wmts-resolvers.d.ts +38 -0
  788. package/style/wms-wmts-resolvers.d.ts.map +1 -0
  789. package/style/wms-wmts-resolvers.js +92 -0
  790. package/web-components/controller.d.ts +39 -0
  791. package/web-components/controller.d.ts.map +1 -0
  792. package/web-components/controller.js +640 -0
  793. package/web-components/elements.d.ts +210 -0
  794. package/web-components/elements.d.ts.map +1 -0
  795. package/web-components/elements.js +1651 -0
  796. package/web-components/index.d.ts +24 -0
  797. package/web-components/index.d.ts.map +1 -0
  798. package/web-components/index.js +22 -0
  799. package/web-components/maplibre-renderer.d.ts +22 -0
  800. package/web-components/maplibre-renderer.d.ts.map +1 -0
  801. package/web-components/maplibre-renderer.js +474 -0
  802. package/web-components/types.d.ts +397 -0
  803. package/web-components/types.d.ts.map +1 -0
  804. package/web-components/types.js +1 -0
  805. package/webmap/contract.d.ts +28 -0
  806. package/webmap/contract.d.ts.map +1 -0
  807. package/webmap/contract.js +130 -0
  808. package/webmap/convert-basemap.d.ts +17 -0
  809. package/webmap/convert-basemap.d.ts.map +1 -0
  810. package/webmap/convert-basemap.js +78 -0
  811. package/webmap/convert-extent.d.ts +17 -0
  812. package/webmap/convert-extent.d.ts.map +1 -0
  813. package/webmap/convert-extent.js +114 -0
  814. package/webmap/convert-label.d.ts +13 -0
  815. package/webmap/convert-label.d.ts.map +1 -0
  816. package/webmap/convert-label.js +125 -0
  817. package/webmap/convert-layer.d.ts +22 -0
  818. package/webmap/convert-layer.d.ts.map +1 -0
  819. package/webmap/convert-layer.js +181 -0
  820. package/webmap/convert-popup.d.ts +34 -0
  821. package/webmap/convert-popup.d.ts.map +1 -0
  822. package/webmap/convert-popup.js +68 -0
  823. package/webmap/convert-renderer.d.ts +17 -0
  824. package/webmap/convert-renderer.d.ts.map +1 -0
  825. package/webmap/convert-renderer.js +161 -0
  826. package/webmap/convert-symbol.d.ts +17 -0
  827. package/webmap/convert-symbol.d.ts.map +1 -0
  828. package/webmap/convert-symbol.js +122 -0
  829. package/webmap/index.d.ts +44 -0
  830. package/webmap/index.d.ts.map +1 -0
  831. package/webmap/index.js +33 -0
  832. package/webmap/parse.d.ts +25 -0
  833. package/webmap/parse.d.ts.map +1 -0
  834. package/webmap/parse.js +83 -0
  835. package/webmap/types.d.ts +264 -0
  836. package/webmap/types.d.ts.map +1 -0
  837. package/webmap/types.js +13 -0
  838. package/webmap/warnings.d.ts +30 -0
  839. package/webmap/warnings.d.ts.map +1 -0
  840. package/webmap/warnings.js +37 -0
@@ -0,0 +1,255 @@
1
+ /**
2
+ * Family-agnostic validation for Studio packages produced outside Console —
3
+ * by an MCP client, the QGIS plugin, or the SDK itself. It returns the same
4
+ * unified {@link StudioPackageValidationResponse} envelope as the per-family
5
+ * validators, so a package generated through any surface is validated against
6
+ * one contract.
7
+ *
8
+ * For the `map` family this delegates to the established
9
+ * {@link validateMapPackage} (no duplication). For every other family it runs
10
+ * the shared base checks (`packageId`/`format`, lifecycle) and, when present,
11
+ * the shared {@link HonuaPackageProvenance} checks. Provenance is optional, but
12
+ * when a package carries it, MCP- and QGIS-origin packages must satisfy the
13
+ * same provenance shape as Console.
14
+ *
15
+ * @experimental Not yet covered by the SDK's semver contract — these shapes
16
+ * may change in any minor release prior to `1.0.0`.
17
+ * @module
18
+ */
19
+ import { validateMapPackage } from "../runtime/map-package-validation.js";
20
+ import { HONUA_MAP_PACKAGE_FORMAT_V1 } from "../runtime/map-package.js";
21
+ import { HONUA_PACKAGE_PROVENANCE_FORMAT_V1, getPackageProvenance } from "./provenance.js";
22
+ import { STUDIO_PACKAGE_FAMILIES, isStudioPackageFamily } from "./types.js";
23
+ import { fromMapPackageValidation } from "./validation.js";
24
+ /**
25
+ * Expected `format` string for each family whose projection carries a single
26
+ * `format` discriminant. `map` and `dashboard` reuse their established
27
+ * constants; the `app` family is identified by `version` rather than `format`
28
+ * and is therefore not in this table.
29
+ */
30
+ const FAMILY_FORMAT = {
31
+ query: "honua_query_package.v1",
32
+ analysis: "honua_analysis_package.v1",
33
+ map: HONUA_MAP_PACKAGE_FORMAT_V1,
34
+ dashboard: "honua_generated_app_manifest.v1",
35
+ report: "honua_report_package.v1",
36
+ form: "honua_form_package.v1",
37
+ workflow: "honua_workflow_package.v1",
38
+ gp: "honua_gp_package.v1",
39
+ etl: "honua_etl_package.v1",
40
+ };
41
+ /** The package-identity field each family uses. */
42
+ function packageIdOf(family, value) {
43
+ if (family === "map")
44
+ return typeof value.mapPackageId === "string" ? value.mapPackageId : undefined;
45
+ if (family === "dashboard")
46
+ return typeof value.appId === "string" ? value.appId : undefined;
47
+ if (family === "app")
48
+ return typeof value.id === "string" ? value.id : undefined;
49
+ return typeof value.packageId === "string" ? value.packageId : undefined;
50
+ }
51
+ /**
52
+ * Validate a package of any Studio family produced outside Console. Dispatches
53
+ * to the map validator for the `map` family and applies shared base +
54
+ * provenance checks for every family.
55
+ *
56
+ * @experimental
57
+ */
58
+ export function validateStudioPackage(family, value, options = {}) {
59
+ const diagnostics = [];
60
+ if (!isStudioPackageFamily(family)) {
61
+ diagnostics.push({
62
+ code: "unknown-family",
63
+ severity: "error",
64
+ message: `Unknown Studio package family "${family}". Expected one of: ${STUDIO_PACKAGE_FAMILIES.join(", ")}.`,
65
+ path: "packageFamily",
66
+ });
67
+ return { valid: false, diagnostics };
68
+ }
69
+ if (!isRecord(value)) {
70
+ diagnostics.push({
71
+ code: "invalid-package",
72
+ severity: "error",
73
+ message: `${family} package must be a JSON object.`,
74
+ });
75
+ return { valid: false, diagnostics };
76
+ }
77
+ // The map family has a full structural validator already — reuse it so MCP
78
+ // and QGIS map packages validate identically to Console's.
79
+ if (family === "map") {
80
+ const mapResponse = fromMapPackageValidation(validateMapPackage(value, { now: options.now }));
81
+ const merged = [...mapResponse.diagnostics];
82
+ appendProvenanceDiagnostics(merged, value, options);
83
+ return {
84
+ valid: mapResponse.valid && !hasErrors(merged),
85
+ diagnostics: merged,
86
+ ...(mapResponse.pkg === undefined ? {} : { pkg: mapResponse.pkg }),
87
+ };
88
+ }
89
+ const packageId = packageIdOf(family, value);
90
+ if (!packageId) {
91
+ diagnostics.push({
92
+ code: "missing-package-id",
93
+ severity: "error",
94
+ message: `${family} package must carry a non-empty identity field.`,
95
+ path: family === "dashboard" ? "appId" : family === "app" ? "id" : "packageId",
96
+ });
97
+ }
98
+ const expectedFormat = FAMILY_FORMAT[family];
99
+ if (expectedFormat !== undefined && family !== "app" && value.format !== expectedFormat) {
100
+ diagnostics.push({
101
+ code: "unsupported-format",
102
+ severity: "error",
103
+ message: `${family} package format must be "${expectedFormat}".`,
104
+ path: "format",
105
+ detail: { expected: expectedFormat, received: value.format },
106
+ });
107
+ }
108
+ appendLifecycleDiagnostics(diagnostics, value, options);
109
+ appendProvenanceDiagnostics(diagnostics, value, options);
110
+ return {
111
+ valid: !hasErrors(diagnostics),
112
+ diagnostics,
113
+ pkg: value,
114
+ };
115
+ }
116
+ /**
117
+ * Validate just the {@link HonuaPackageProvenance} envelope on a package value.
118
+ * Useful when a host (MCP/QGIS) wants to confirm attribution without running
119
+ * the full family validation.
120
+ *
121
+ * @experimental
122
+ */
123
+ export function validatePackageProvenance(value, options = {}) {
124
+ const diagnostics = [];
125
+ appendProvenanceDiagnostics(diagnostics, value, { requireProvenance: options.required });
126
+ const provenance = getPackageProvenance(value);
127
+ return {
128
+ valid: !hasErrors(diagnostics),
129
+ diagnostics,
130
+ ...(provenance === undefined ? {} : { pkg: provenance }),
131
+ };
132
+ }
133
+ const KNOWN_ORIGINS = new Set(["console", "studio", "mcp", "qgis", "sdk"]);
134
+ function appendProvenanceDiagnostics(diagnostics, value, options) {
135
+ const raw = isRecord(value) ? value.provenance : undefined;
136
+ if (raw === undefined) {
137
+ if (options.requireProvenance) {
138
+ diagnostics.push({
139
+ code: "missing-provenance",
140
+ severity: "error",
141
+ message: "Package provenance is required but absent.",
142
+ path: "provenance",
143
+ });
144
+ }
145
+ return;
146
+ }
147
+ if (!isRecord(raw)) {
148
+ diagnostics.push({
149
+ code: "invalid-provenance",
150
+ severity: "error",
151
+ message: "Package provenance must be a JSON object.",
152
+ path: "provenance",
153
+ });
154
+ return;
155
+ }
156
+ if (raw.format !== HONUA_PACKAGE_PROVENANCE_FORMAT_V1) {
157
+ diagnostics.push({
158
+ code: "unsupported-provenance-format",
159
+ severity: "error",
160
+ message: `Package provenance.format must be "${HONUA_PACKAGE_PROVENANCE_FORMAT_V1}".`,
161
+ path: "provenance.format",
162
+ detail: { expected: HONUA_PACKAGE_PROVENANCE_FORMAT_V1, received: raw.format },
163
+ });
164
+ return;
165
+ }
166
+ if (typeof raw.origin !== "string" || raw.origin.length === 0) {
167
+ diagnostics.push({
168
+ code: "missing-provenance-origin",
169
+ severity: "error",
170
+ message: "Package provenance.origin must be a non-empty string.",
171
+ path: "provenance.origin",
172
+ });
173
+ }
174
+ else if (!KNOWN_ORIGINS.has(raw.origin)) {
175
+ diagnostics.push({
176
+ code: "unknown-provenance-origin",
177
+ severity: "warning",
178
+ message: `Package provenance.origin "${raw.origin}" is not a known surface.`,
179
+ path: "provenance.origin",
180
+ detail: { origin: raw.origin, known: [...KNOWN_ORIGINS] },
181
+ });
182
+ }
183
+ if (raw.dataBindings !== undefined && !Array.isArray(raw.dataBindings)) {
184
+ diagnostics.push({
185
+ code: "invalid-provenance-data-bindings",
186
+ severity: "error",
187
+ message: "Package provenance.dataBindings must be an array when present.",
188
+ path: "provenance.dataBindings",
189
+ });
190
+ }
191
+ else if (Array.isArray(raw.dataBindings)) {
192
+ raw.dataBindings.forEach((binding, i) => {
193
+ if (!isRecord(binding) || typeof binding.sourceId !== "string" || binding.sourceId.length === 0) {
194
+ diagnostics.push({
195
+ code: "invalid-provenance-data-binding",
196
+ severity: "error",
197
+ message: "Each provenance dataBinding must carry a non-empty sourceId.",
198
+ path: `provenance.dataBindings[${i}].sourceId`,
199
+ });
200
+ }
201
+ });
202
+ }
203
+ if (raw.permissions !== undefined && !Array.isArray(raw.permissions)) {
204
+ diagnostics.push({
205
+ code: "invalid-provenance-permissions",
206
+ severity: "error",
207
+ message: "Package provenance.permissions must be an array when present.",
208
+ path: "provenance.permissions",
209
+ });
210
+ }
211
+ else if (Array.isArray(raw.permissions)) {
212
+ raw.permissions.forEach((permission, i) => {
213
+ if (!isRecord(permission) || typeof permission.scope !== "string" || permission.scope.length === 0) {
214
+ diagnostics.push({
215
+ code: "invalid-provenance-permission",
216
+ severity: "error",
217
+ message: "Each provenance permission must carry a non-empty scope.",
218
+ path: `provenance.permissions[${i}].scope`,
219
+ });
220
+ }
221
+ });
222
+ }
223
+ }
224
+ function appendLifecycleDiagnostics(diagnostics, value, options) {
225
+ const nowMs = options.now instanceof Date ? options.now.getTime() : (options.now ?? Date.now());
226
+ if (value.status === "Expired") {
227
+ diagnostics.push({
228
+ code: "expired-package",
229
+ severity: "error",
230
+ message: "Package status is Expired.",
231
+ path: "status",
232
+ });
233
+ }
234
+ const expiresAt = parseTimestamp(value.expiresAt);
235
+ if (expiresAt !== undefined && expiresAt <= nowMs) {
236
+ diagnostics.push({
237
+ code: "expired-package",
238
+ severity: "error",
239
+ message: "Package expiresAt is in the past.",
240
+ path: "expiresAt",
241
+ });
242
+ }
243
+ }
244
+ function parseTimestamp(value) {
245
+ if (typeof value !== "string" && typeof value !== "number")
246
+ return undefined;
247
+ const parsed = typeof value === "number" ? value : Date.parse(value);
248
+ return Number.isFinite(parsed) ? parsed : undefined;
249
+ }
250
+ function hasErrors(diagnostics) {
251
+ return diagnostics.some((d) => d.severity === "error");
252
+ }
253
+ function isRecord(value) {
254
+ return typeof value === "object" && value !== null && !Array.isArray(value);
255
+ }
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Unified validation and preview response envelopes shared across every
3
+ * Studio package family and across the SDK, Console, MCP, and QGIS clients.
4
+ *
5
+ * The existing {@link ValidateMapPackageResult} (map family) stays unchanged;
6
+ * {@link toStudioValidationResponse} and {@link fromMapPackageValidation}
7
+ * adapt it into the generic {@link StudioPackageValidationResponse} envelope
8
+ * without renaming or restructuring it. {@link HonuaMapPackageDiagnostic} is
9
+ * already a structural subtype of {@link StudioPackageDiagnostic}.
10
+ *
11
+ * @experimental Not yet covered by the SDK's semver contract — these shapes
12
+ * may change in any minor release prior to `1.0.0`.
13
+ * @module
14
+ */
15
+ import type { ValidateMapPackageResult } from "../runtime/map-package-validation.js";
16
+ import type { HonuaMapPackage } from "../runtime/map-package.js";
17
+ import type { HonuaStudioPackageFamily } from "./types.js";
18
+ /**
19
+ * Severity of a single {@link StudioPackageDiagnostic}. Matches the frozen
20
+ * server / honua-sdk-dotnet `StudioPackageDiagnosticSeverity` enum members
21
+ * (`info`, `warning`, `error`, `blocker`); the map-package validator emits only
22
+ * `error`/`warning`, which remain assignable.
23
+ */
24
+ export type StudioPackageDiagnosticSeverity = "info" | "warning" | "error" | "blocker";
25
+ /**
26
+ * One diagnostic emitted while validating a Studio package. The shape is a
27
+ * superset-compatible mirror of `HonuaMapPackageDiagnostic` so the map
28
+ * validator's output adapts without conversion.
29
+ *
30
+ * @experimental
31
+ */
32
+ export interface StudioPackageDiagnostic {
33
+ readonly code: string;
34
+ readonly severity: StudioPackageDiagnosticSeverity;
35
+ readonly message: string;
36
+ readonly path?: string;
37
+ readonly detail?: unknown;
38
+ }
39
+ /**
40
+ * Generic validation response envelope. Every package family returns the
41
+ * same `{ valid, diagnostics, pkg? }` shape, so SDK, Console, MCP, and QGIS
42
+ * clients consume one contract.
43
+ *
44
+ * @experimental
45
+ */
46
+ export interface StudioPackageValidationResponse<T> {
47
+ readonly valid: boolean;
48
+ readonly diagnostics: readonly StudioPackageDiagnostic[];
49
+ readonly pkg?: T;
50
+ }
51
+ /** Reference to a server-rendered preview artifact for a package. */
52
+ export interface StudioPreviewArtifactRef {
53
+ readonly id?: string;
54
+ readonly kind?: string;
55
+ readonly url?: string;
56
+ readonly mediaType?: string;
57
+ readonly [extra: string]: unknown;
58
+ }
59
+ /**
60
+ * Generic preview response envelope returned when a package is previewed
61
+ * (composed without publishing). Diagnostics reuse the validation shape.
62
+ *
63
+ * @experimental
64
+ */
65
+ export interface StudioPackagePreviewResponse<T> {
66
+ readonly packageId?: string;
67
+ readonly packageFamily?: HonuaStudioPackageFamily | (string & {});
68
+ readonly pkg?: T;
69
+ readonly diagnostics?: readonly StudioPackageDiagnostic[];
70
+ readonly artifacts?: readonly StudioPreviewArtifactRef[];
71
+ readonly expiresAt?: string;
72
+ readonly [extra: string]: unknown;
73
+ }
74
+ /**
75
+ * Loose shape a family-specific validation result must satisfy to be adapted
76
+ * by {@link toStudioValidationResponse}. Diagnostics carry no index signature
77
+ * so that results with extra diagnostic fields (e.g. `packageId` on
78
+ * {@link HonuaMapPackageDiagnostic}) — and results that carry a named package
79
+ * field alongside `valid`/`diagnostics` — assign without a structural index
80
+ * signature on the caller's type.
81
+ */
82
+ interface StudioValidationResultLike {
83
+ readonly valid: boolean;
84
+ readonly diagnostics: readonly {
85
+ readonly code: string;
86
+ readonly severity: StudioPackageDiagnosticSeverity;
87
+ readonly message: string;
88
+ readonly path?: string;
89
+ readonly detail?: unknown;
90
+ }[];
91
+ }
92
+ /**
93
+ * Adapt any family validation result — an object with `valid`, `diagnostics`,
94
+ * and a named package field — into the unified
95
+ * {@link StudioPackageValidationResponse}. `pkgKey` names the field holding
96
+ * the package (e.g. `"mapPackage"`). The package field is loosely typed; for
97
+ * the map family prefer the fully-typed {@link fromMapPackageValidation}.
98
+ *
99
+ * @experimental
100
+ */
101
+ export declare function toStudioValidationResponse<T>(result: StudioValidationResultLike, pkgKey: string): StudioPackageValidationResponse<T>;
102
+ /**
103
+ * Fully-typed convenience adapter from the map family's
104
+ * {@link ValidateMapPackageResult} to a
105
+ * {@link StudioPackageValidationResponse}. Equivalent to
106
+ * `toStudioValidationResponse<HonuaMapPackage>(result, "mapPackage")`.
107
+ *
108
+ * @experimental
109
+ */
110
+ export declare function fromMapPackageValidation(result: ValidateMapPackageResult): StudioPackageValidationResponse<HonuaMapPackage>;
111
+ export {};
112
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/studio/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,MAAM,+BAA+B,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAEvF;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,+BAA+B,CAAC;IACnD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,+BAA+B,CAAC,CAAC;IAChD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACzD,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;CAClB;AAED,qEAAqE;AACrE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CACnC;AAED;;;;;GAKG;AACH,MAAM,WAAW,4BAA4B,CAAC,CAAC;IAC7C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,wBAAwB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAClE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC1D,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CACnC;AAED;;;;;;;GAOG;AACH,UAAU,0BAA0B;IAClC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,SAAS;QAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,QAAQ,EAAE,+BAA+B,CAAC;QACnD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;KAC3B,EAAE,CAAC;CACL;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAC1C,MAAM,EAAE,0BAA0B,EAClC,MAAM,EAAE,MAAM,GACb,+BAA+B,CAAC,CAAC,CAAC,CAOpC;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,wBAAwB,GAC/B,+BAA+B,CAAC,eAAe,CAAC,CAElD"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Unified validation and preview response envelopes shared across every
3
+ * Studio package family and across the SDK, Console, MCP, and QGIS clients.
4
+ *
5
+ * The existing {@link ValidateMapPackageResult} (map family) stays unchanged;
6
+ * {@link toStudioValidationResponse} and {@link fromMapPackageValidation}
7
+ * adapt it into the generic {@link StudioPackageValidationResponse} envelope
8
+ * without renaming or restructuring it. {@link HonuaMapPackageDiagnostic} is
9
+ * already a structural subtype of {@link StudioPackageDiagnostic}.
10
+ *
11
+ * @experimental Not yet covered by the SDK's semver contract — these shapes
12
+ * may change in any minor release prior to `1.0.0`.
13
+ * @module
14
+ */
15
+ /**
16
+ * Adapt any family validation result — an object with `valid`, `diagnostics`,
17
+ * and a named package field — into the unified
18
+ * {@link StudioPackageValidationResponse}. `pkgKey` names the field holding
19
+ * the package (e.g. `"mapPackage"`). The package field is loosely typed; for
20
+ * the map family prefer the fully-typed {@link fromMapPackageValidation}.
21
+ *
22
+ * @experimental
23
+ */
24
+ export function toStudioValidationResponse(result, pkgKey) {
25
+ const pkg = result[pkgKey];
26
+ return {
27
+ valid: result.valid,
28
+ diagnostics: [...result.diagnostics],
29
+ ...(pkg === undefined ? {} : { pkg: pkg }),
30
+ };
31
+ }
32
+ /**
33
+ * Fully-typed convenience adapter from the map family's
34
+ * {@link ValidateMapPackageResult} to a
35
+ * {@link StudioPackageValidationResponse}. Equivalent to
36
+ * `toStudioValidationResponse<HonuaMapPackage>(result, "mapPackage")`.
37
+ *
38
+ * @experimental
39
+ */
40
+ export function fromMapPackageValidation(result) {
41
+ return toStudioValidationResponse(result, "mapPackage");
42
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Style-to-source factory: creates Honua SDK surface instances from a
3
+ * HonuaStyleSpecification's source definitions.
4
+ *
5
+ * @module
6
+ */
7
+ import type { HonuaClient } from "../core/client.js";
8
+ import { HonuaFeatureLayer, HonuaMapService, type HonuaOgcFeatureCollection } from "../core/surfaces.js";
9
+ import type { HonuaWms, HonuaWmsLayer } from "../core/wms.js";
10
+ import type { HonuaWmts, HonuaWmtsTileset } from "../core/wmts.js";
11
+ import type { HonuaStyleSpecification } from "./specification.js";
12
+ /** A resolved Honua source: either a surface instance or `null` for non-Honua (MapLibre-native) sources. */
13
+ export type ResolvedSource = HonuaFeatureLayer | HonuaMapService | HonuaOgcFeatureCollection | HonuaWms | HonuaWmsLayer | HonuaWmts | HonuaWmtsTileset | null;
14
+ /**
15
+ * Create Honua SDK surface instances for each source in a style.
16
+ *
17
+ * Non-Honua sources (e.g. `vector`, `raster`, `geojson`) are mapped to `null` —
18
+ * these should be handled directly by MapLibre's built-in source types.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * const sources = createSources(client, style);
23
+ * const parcels = sources.get("parcels"); // HonuaFeatureLayer
24
+ * if (parcels instanceof HonuaFeatureLayer) {
25
+ * const features = await parcels.queryFeatures({ where: "status = 'active'" });
26
+ * }
27
+ * ```
28
+ */
29
+ export declare function createSources(client: HonuaClient, style: HonuaStyleSpecification): Map<string, ResolvedSource>;
30
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/style/factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,KAAK,yBAAyB,EAE/B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAWlE,4GAA4G;AAC5G,MAAM,MAAM,cAAc,GACtB,iBAAiB,GACjB,eAAe,GACf,yBAAyB,GACzB,QAAQ,GACR,aAAa,GACb,SAAS,GACT,gBAAgB,GAChB,IAAI,CAAC;AAET;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,uBAAuB,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAsC9G"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Style-to-source factory: creates Honua SDK surface instances from a
3
+ * HonuaStyleSpecification's source definitions.
4
+ *
5
+ * @module
6
+ */
7
+ import { HonuaFeatureLayer, HonuaMapService, HonuaOgcFeatures, } from "../core/surfaces.js";
8
+ import { parseFeatureLayerUrl, parseMapServiceUrl } from "../esri-compat/url.js";
9
+ import { isFeatureServiceSource, isMapServiceSource, isOgcFeaturesSource, isWmsSource, isWmtsSource, parseOgcFeaturesUrl, } from "./specification.js";
10
+ import { resolveWmsSpec, resolveWmtsSpec } from "./wms-wmts-resolvers.js";
11
+ /**
12
+ * Create Honua SDK surface instances for each source in a style.
13
+ *
14
+ * Non-Honua sources (e.g. `vector`, `raster`, `geojson`) are mapped to `null` —
15
+ * these should be handled directly by MapLibre's built-in source types.
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * const sources = createSources(client, style);
20
+ * const parcels = sources.get("parcels"); // HonuaFeatureLayer
21
+ * if (parcels instanceof HonuaFeatureLayer) {
22
+ * const features = await parcels.queryFeatures({ where: "status = 'active'" });
23
+ * }
24
+ * ```
25
+ */
26
+ export function createSources(client, style) {
27
+ const result = new Map();
28
+ for (const [name, spec] of Object.entries(style.sources)) {
29
+ if (isFeatureServiceSource(spec)) {
30
+ const parsed = parseFeatureLayerUrl(spec.url);
31
+ result.set(name, new HonuaFeatureLayer({
32
+ client,
33
+ serviceId: parsed.serviceId,
34
+ layerId: parsed.layerId,
35
+ }));
36
+ }
37
+ else if (isMapServiceSource(spec)) {
38
+ const parsed = parseMapServiceUrl(spec.url);
39
+ result.set(name, new HonuaMapService({
40
+ client,
41
+ serviceId: parsed.serviceId,
42
+ }));
43
+ }
44
+ else if (isOgcFeaturesSource(spec)) {
45
+ const parsed = parseOgcFeaturesUrl(spec.url);
46
+ const ogcRoot = new HonuaOgcFeatures({ client });
47
+ const collectionId = spec.collectionId ?? parsed.collectionId ?? "";
48
+ result.set(name, ogcRoot.collection(collectionId));
49
+ }
50
+ else if (isWmsSource(spec)) {
51
+ result.set(name, resolveWmsSpec(client, spec));
52
+ }
53
+ else if (isWmtsSource(spec)) {
54
+ result.set(name, resolveWmtsSpec(client, spec));
55
+ }
56
+ else {
57
+ result.set(name, null);
58
+ }
59
+ }
60
+ return result;
61
+ }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * `@honua/sdk-js/style` — Honua style spec source parsers and validators.
3
+ *
4
+ * Translate `Source`/`SourceDescriptor` shapes to and from MapLibre-style
5
+ * source specifications, and validate Honua style documents.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { createSources, validateHonuaStyle, parseOgcFeaturesUrl } from "@honua/sdk-js/style";
10
+ *
11
+ * const sources = createSources(dataset.sourceDescriptors);
12
+ * const errors = validateHonuaStyle(myStyle);
13
+ * if (errors.length) throw new Error(errors.map(e => e.message).join("\n"));
14
+ *
15
+ * const parsed = parseOgcFeaturesUrl("https://example.com/ogc/collections/parcels/items");
16
+ * console.log(parsed.collectionId); // "parcels"
17
+ * ```
18
+ *
19
+ * @packageDocumentation
20
+ */
21
+ export { isHonuaSource, isFeatureServiceSource, isMapServiceSource, isOgcFeaturesSource, isWmsSource, isWmtsSource, parseOgcFeaturesUrl, validateHonuaStyle, } from "./specification.js";
22
+ export type { HonuaSourceBase, HonuaFeatureServiceSourceSpecification, HonuaMapServiceSourceSpecification, HonuaOgcFeaturesSourceSpecification, HonuaWmsSourceSpecification, HonuaWmtsSourceSpecification, HonuaSourceSpecification, HonuaLayerSpecification, HonuaStyleSpecification, ParsedOgcFeaturesUrl, StyleValidationError, } from "./specification.js";
23
+ export { createSources } from "./factory.js";
24
+ export type { ResolvedSource } from "./factory.js";
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/style/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,eAAe,EACf,sCAAsC,EACtC,kCAAkC,EAClC,mCAAmC,EACnC,2BAA2B,EAC3B,4BAA4B,EAC5B,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
package/style/index.js ADDED
@@ -0,0 +1,24 @@
1
+ /**
2
+ * `@honua/sdk-js/style` — Honua style spec source parsers and validators.
3
+ *
4
+ * Translate `Source`/`SourceDescriptor` shapes to and from MapLibre-style
5
+ * source specifications, and validate Honua style documents.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { createSources, validateHonuaStyle, parseOgcFeaturesUrl } from "@honua/sdk-js/style";
10
+ *
11
+ * const sources = createSources(dataset.sourceDescriptors);
12
+ * const errors = validateHonuaStyle(myStyle);
13
+ * if (errors.length) throw new Error(errors.map(e => e.message).join("\n"));
14
+ *
15
+ * const parsed = parseOgcFeaturesUrl("https://example.com/ogc/collections/parcels/items");
16
+ * console.log(parsed.collectionId); // "parcels"
17
+ * ```
18
+ *
19
+ * @packageDocumentation
20
+ */
21
+ export { isHonuaSource, isFeatureServiceSource, isMapServiceSource, isOgcFeaturesSource, isWmsSource, isWmtsSource, parseOgcFeaturesUrl, validateHonuaStyle, } from "./specification.js";
22
+ export { createSources } from "./factory.js";
23
+ // Feature Service and Map Service URL parsers are exported from
24
+ // esri-compat/url.ts via the main index.ts barrel — no re-export needed here.