@honua/react 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 (597) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +9 -0
  3. package/contract/analytics-sources.d.ts +149 -0
  4. package/contract/analytics-sources.d.ts.map +1 -0
  5. package/contract/analytics-sources.js +235 -0
  6. package/contract/edit-session.d.ts +203 -0
  7. package/contract/edit-session.d.ts.map +1 -0
  8. package/contract/edit-session.js +760 -0
  9. package/contract/edit-sketch.d.ts +91 -0
  10. package/contract/edit-sketch.d.ts.map +1 -0
  11. package/contract/edit-sketch.js +281 -0
  12. package/contract/index.d.ts +61 -0
  13. package/contract/index.d.ts.map +1 -0
  14. package/contract/index.js +51 -0
  15. package/contract/jobs.d.ts +149 -0
  16. package/contract/jobs.d.ts.map +1 -0
  17. package/contract/jobs.js +40 -0
  18. package/contract/source.d.ts +423 -0
  19. package/contract/source.d.ts.map +1 -0
  20. package/contract/source.js +3802 -0
  21. package/contract/spatial-aggregation.d.ts +336 -0
  22. package/contract/spatial-aggregation.d.ts.map +1 -0
  23. package/contract/spatial-aggregation.js +298 -0
  24. package/contract/temporal.d.ts +455 -0
  25. package/contract/temporal.d.ts.map +1 -0
  26. package/contract/temporal.js +146 -0
  27. package/contract/tiles.d.ts +370 -0
  28. package/contract/tiles.d.ts.map +1 -0
  29. package/contract/tiles.js +519 -0
  30. package/contract/types.d.ts +665 -0
  31. package/contract/types.d.ts.map +1 -0
  32. package/contract/types.js +175 -0
  33. package/contract/widget-source.d.ts +205 -0
  34. package/contract/widget-source.d.ts.map +1 -0
  35. package/contract/widget-source.js +1473 -0
  36. package/control-plane/client.d.ts +95 -0
  37. package/control-plane/client.d.ts.map +1 -0
  38. package/control-plane/client.js +374 -0
  39. package/control-plane/index.d.ts +18 -0
  40. package/control-plane/index.d.ts.map +1 -0
  41. package/control-plane/index.js +14 -0
  42. package/control-plane/types.d.ts +233 -0
  43. package/control-plane/types.d.ts.map +1 -0
  44. package/control-plane/types.js +7 -0
  45. package/core/batch.d.ts +37 -0
  46. package/core/batch.d.ts.map +1 -0
  47. package/core/batch.js +79 -0
  48. package/core/cache-state.d.ts +79 -0
  49. package/core/cache-state.d.ts.map +1 -0
  50. package/core/cache-state.js +87 -0
  51. package/core/client.d.ts +577 -0
  52. package/core/client.d.ts.map +1 -0
  53. package/core/client.js +1664 -0
  54. package/core/compatibility.d.ts +18 -0
  55. package/core/compatibility.d.ts.map +1 -0
  56. package/core/compatibility.js +245 -0
  57. package/core/errors.d.ts +107 -0
  58. package/core/errors.d.ts.map +1 -0
  59. package/core/errors.js +156 -0
  60. package/core/esri-geojson.d.ts +66 -0
  61. package/core/esri-geojson.d.ts.map +1 -0
  62. package/core/esri-geojson.js +363 -0
  63. package/core/geoservices.d.ts +34 -0
  64. package/core/geoservices.d.ts.map +1 -0
  65. package/core/geoservices.js +434 -0
  66. package/core/grpc-adapter.d.ts +23 -0
  67. package/core/grpc-adapter.d.ts.map +1 -0
  68. package/core/grpc-adapter.js +688 -0
  69. package/core/odata.d.ts +347 -0
  70. package/core/odata.d.ts.map +1 -0
  71. package/core/odata.js +913 -0
  72. package/core/ogc-conformance.d.ts +35 -0
  73. package/core/ogc-conformance.d.ts.map +1 -0
  74. package/core/ogc-conformance.js +134 -0
  75. package/core/ogc-features.d.ts +23 -0
  76. package/core/ogc-features.d.ts.map +1 -0
  77. package/core/ogc-features.js +114 -0
  78. package/core/ogc-maps.d.ts +49 -0
  79. package/core/ogc-maps.d.ts.map +1 -0
  80. package/core/ogc-maps.js +126 -0
  81. package/core/ogc-processes.d.ts +118 -0
  82. package/core/ogc-processes.d.ts.map +1 -0
  83. package/core/ogc-processes.js +423 -0
  84. package/core/ogc-records.d.ts +75 -0
  85. package/core/ogc-records.d.ts.map +1 -0
  86. package/core/ogc-records.js +251 -0
  87. package/core/ogc-tiles.d.ts +125 -0
  88. package/core/ogc-tiles.d.ts.map +1 -0
  89. package/core/ogc-tiles.js +183 -0
  90. package/core/path-utils.d.ts +69 -0
  91. package/core/path-utils.d.ts.map +1 -0
  92. package/core/path-utils.js +123 -0
  93. package/core/pbf-decoder.d.ts +39 -0
  94. package/core/pbf-decoder.d.ts.map +1 -0
  95. package/core/pbf-decoder.js +702 -0
  96. package/core/process-runner.d.ts +104 -0
  97. package/core/process-runner.d.ts.map +1 -0
  98. package/core/process-runner.js +315 -0
  99. package/core/protocol-transport.d.ts +76 -0
  100. package/core/protocol-transport.d.ts.map +1 -0
  101. package/core/protocol-transport.js +15 -0
  102. package/core/query-builder.d.ts +261 -0
  103. package/core/query-builder.d.ts.map +1 -0
  104. package/core/query-builder.js +538 -0
  105. package/core/request-pipeline.d.ts +88 -0
  106. package/core/request-pipeline.d.ts.map +1 -0
  107. package/core/request-pipeline.js +273 -0
  108. package/core/spatial-filter.d.ts +93 -0
  109. package/core/spatial-filter.d.ts.map +1 -0
  110. package/core/spatial-filter.js +153 -0
  111. package/core/stac.d.ts +55 -0
  112. package/core/stac.d.ts.map +1 -0
  113. package/core/stac.js +229 -0
  114. package/core/surfaces.d.ts +527 -0
  115. package/core/surfaces.d.ts.map +1 -0
  116. package/core/surfaces.js +1917 -0
  117. package/core/terrain-elevation.d.ts +114 -0
  118. package/core/terrain-elevation.d.ts.map +1 -0
  119. package/core/terrain-elevation.js +150 -0
  120. package/core/types.d.ts +1355 -0
  121. package/core/types.d.ts.map +1 -0
  122. package/core/types.js +13 -0
  123. package/core/wfs-capabilities.d.ts +143 -0
  124. package/core/wfs-capabilities.d.ts.map +1 -0
  125. package/core/wfs-capabilities.js +478 -0
  126. package/core/wfs-filter.d.ts +118 -0
  127. package/core/wfs-filter.d.ts.map +1 -0
  128. package/core/wfs-filter.js +634 -0
  129. package/core/wfs.d.ts +219 -0
  130. package/core/wfs.d.ts.map +1 -0
  131. package/core/wfs.js +406 -0
  132. package/core/wire-shared.d.ts +32 -0
  133. package/core/wire-shared.d.ts.map +1 -0
  134. package/core/wire-shared.js +76 -0
  135. package/core/wms-axis.d.ts +36 -0
  136. package/core/wms-axis.d.ts.map +1 -0
  137. package/core/wms-axis.js +73 -0
  138. package/core/wms-capabilities.d.ts +110 -0
  139. package/core/wms-capabilities.d.ts.map +1 -0
  140. package/core/wms-capabilities.js +559 -0
  141. package/core/wms-types.d.ts +128 -0
  142. package/core/wms-types.d.ts.map +1 -0
  143. package/core/wms-types.js +32 -0
  144. package/core/wms.d.ts +144 -0
  145. package/core/wms.d.ts.map +1 -0
  146. package/core/wms.js +338 -0
  147. package/core/wmts-capabilities.d.ts +82 -0
  148. package/core/wmts-capabilities.d.ts.map +1 -0
  149. package/core/wmts-capabilities.js +402 -0
  150. package/core/wmts.d.ts +103 -0
  151. package/core/wmts.d.ts.map +1 -0
  152. package/core/wmts.js +332 -0
  153. package/core/xml-text.d.ts +20 -0
  154. package/core/xml-text.d.ts.map +1 -0
  155. package/core/xml-text.js +85 -0
  156. package/esri-compat/basemap-gallery.d.ts +38 -0
  157. package/esri-compat/basemap-gallery.d.ts.map +1 -0
  158. package/esri-compat/basemap-gallery.js +159 -0
  159. package/esri-compat/basemap-layer-list.d.ts +35 -0
  160. package/esri-compat/basemap-layer-list.d.ts.map +1 -0
  161. package/esri-compat/basemap-layer-list.js +139 -0
  162. package/esri-compat/basemap.d.ts +32 -0
  163. package/esri-compat/basemap.d.ts.map +1 -0
  164. package/esri-compat/basemap.js +84 -0
  165. package/esri-compat/bookmarks.d.ts +36 -0
  166. package/esri-compat/bookmarks.d.ts.map +1 -0
  167. package/esri-compat/bookmarks.js +108 -0
  168. package/esri-compat/class-breaks-renderer.d.ts +50 -0
  169. package/esri-compat/class-breaks-renderer.d.ts.map +1 -0
  170. package/esri-compat/class-breaks-renderer.js +164 -0
  171. package/esri-compat/color.d.ts +22 -0
  172. package/esri-compat/color.d.ts.map +1 -0
  173. package/esri-compat/color.js +106 -0
  174. package/esri-compat/controls.d.ts +174 -0
  175. package/esri-compat/controls.d.ts.map +1 -0
  176. package/esri-compat/controls.js +479 -0
  177. package/esri-compat/coordinate-conversion.d.ts +41 -0
  178. package/esri-compat/coordinate-conversion.d.ts.map +1 -0
  179. package/esri-compat/coordinate-conversion.js +125 -0
  180. package/esri-compat/directions.d.ts +45 -0
  181. package/esri-compat/directions.d.ts.map +1 -0
  182. package/esri-compat/directions.js +123 -0
  183. package/esri-compat/editor.d.ts +47 -0
  184. package/esri-compat/editor.d.ts.map +1 -0
  185. package/esri-compat/editor.js +170 -0
  186. package/esri-compat/esri-config.d.ts +16 -0
  187. package/esri-compat/esri-config.d.ts.map +1 -0
  188. package/esri-compat/esri-config.js +23 -0
  189. package/esri-compat/esri-request.d.ts +17 -0
  190. package/esri-compat/esri-request.d.ts.map +1 -0
  191. package/esri-compat/esri-request.js +127 -0
  192. package/esri-compat/event-bus.d.ts +106 -0
  193. package/esri-compat/event-bus.d.ts.map +1 -0
  194. package/esri-compat/event-bus.js +90 -0
  195. package/esri-compat/expand.d.ts +36 -0
  196. package/esri-compat/expand.d.ts.map +1 -0
  197. package/esri-compat/expand.js +97 -0
  198. package/esri-compat/extent.d.ts +43 -0
  199. package/esri-compat/extent.d.ts.map +1 -0
  200. package/esri-compat/extent.js +140 -0
  201. package/esri-compat/feature-filter.d.ts +55 -0
  202. package/esri-compat/feature-filter.d.ts.map +1 -0
  203. package/esri-compat/feature-filter.js +109 -0
  204. package/esri-compat/feature-form.d.ts +64 -0
  205. package/esri-compat/feature-form.d.ts.map +1 -0
  206. package/esri-compat/feature-form.js +137 -0
  207. package/esri-compat/feature-layer.d.ts +173 -0
  208. package/esri-compat/feature-layer.d.ts.map +1 -0
  209. package/esri-compat/feature-layer.js +661 -0
  210. package/esri-compat/feature-set.d.ts +32 -0
  211. package/esri-compat/feature-set.d.ts.map +1 -0
  212. package/esri-compat/feature-set.js +80 -0
  213. package/esri-compat/feature-table.d.ts +141 -0
  214. package/esri-compat/feature-table.d.ts.map +1 -0
  215. package/esri-compat/feature-table.js +500 -0
  216. package/esri-compat/feature-templates.d.ts +41 -0
  217. package/esri-compat/feature-templates.d.ts.map +1 -0
  218. package/esri-compat/feature-templates.js +97 -0
  219. package/esri-compat/feature.d.ts +33 -0
  220. package/esri-compat/feature.d.ts.map +1 -0
  221. package/esri-compat/feature.js +83 -0
  222. package/esri-compat/geojson-layer.d.ts +86 -0
  223. package/esri-compat/geojson-layer.d.ts.map +1 -0
  224. package/esri-compat/geojson-layer.js +191 -0
  225. package/esri-compat/geometry-engine.d.ts +107 -0
  226. package/esri-compat/geometry-engine.d.ts.map +1 -0
  227. package/esri-compat/geometry-engine.js +266 -0
  228. package/esri-compat/graphic.d.ts +46 -0
  229. package/esri-compat/graphic.d.ts.map +1 -0
  230. package/esri-compat/graphic.js +103 -0
  231. package/esri-compat/graphics-layer.d.ts +49 -0
  232. package/esri-compat/graphics-layer.d.ts.map +1 -0
  233. package/esri-compat/graphics-layer.js +185 -0
  234. package/esri-compat/group-layer.d.ts +48 -0
  235. package/esri-compat/group-layer.d.ts.map +1 -0
  236. package/esri-compat/group-layer.js +212 -0
  237. package/esri-compat/identify.d.ts +71 -0
  238. package/esri-compat/identify.d.ts.map +1 -0
  239. package/esri-compat/identify.js +299 -0
  240. package/esri-compat/identity-manager.d.ts +31 -0
  241. package/esri-compat/identity-manager.d.ts.map +1 -0
  242. package/esri-compat/identity-manager.js +115 -0
  243. package/esri-compat/imagery-layer.d.ts +78 -0
  244. package/esri-compat/imagery-layer.d.ts.map +1 -0
  245. package/esri-compat/imagery-layer.js +167 -0
  246. package/esri-compat/label-class.d.ts +31 -0
  247. package/esri-compat/label-class.d.ts.map +1 -0
  248. package/esri-compat/label-class.js +102 -0
  249. package/esri-compat/layer-list.d.ts +77 -0
  250. package/esri-compat/layer-list.d.ts.map +1 -0
  251. package/esri-compat/layer-list.js +342 -0
  252. package/esri-compat/legend.d.ts +53 -0
  253. package/esri-compat/legend.d.ts.map +1 -0
  254. package/esri-compat/legend.js +254 -0
  255. package/esri-compat/map-image-layer.d.ts +162 -0
  256. package/esri-compat/map-image-layer.d.ts.map +1 -0
  257. package/esri-compat/map-image-layer.js +709 -0
  258. package/esri-compat/map-view.d.ts +323 -0
  259. package/esri-compat/map-view.d.ts.map +1 -0
  260. package/esri-compat/map-view.js +1175 -0
  261. package/esri-compat/map.d.ts +47 -0
  262. package/esri-compat/map.d.ts.map +1 -0
  263. package/esri-compat/map.js +209 -0
  264. package/esri-compat/measurement-2d.d.ts +61 -0
  265. package/esri-compat/measurement-2d.d.ts.map +1 -0
  266. package/esri-compat/measurement-2d.js +184 -0
  267. package/esri-compat/measurement.d.ts +45 -0
  268. package/esri-compat/measurement.d.ts.map +1 -0
  269. package/esri-compat/measurement.js +193 -0
  270. package/esri-compat/oauth-info.d.ts +35 -0
  271. package/esri-compat/oauth-info.d.ts.map +1 -0
  272. package/esri-compat/oauth-info.js +115 -0
  273. package/esri-compat/picture-marker-symbol.d.ts +35 -0
  274. package/esri-compat/picture-marker-symbol.d.ts.map +1 -0
  275. package/esri-compat/picture-marker-symbol.js +126 -0
  276. package/esri-compat/point.d.ts +31 -0
  277. package/esri-compat/point.d.ts.map +1 -0
  278. package/esri-compat/point.js +102 -0
  279. package/esri-compat/polygon.d.ts +31 -0
  280. package/esri-compat/polygon.d.ts.map +1 -0
  281. package/esri-compat/polygon.js +107 -0
  282. package/esri-compat/polyline.d.ts +31 -0
  283. package/esri-compat/polyline.d.ts.map +1 -0
  284. package/esri-compat/polyline.js +107 -0
  285. package/esri-compat/popup-template.d.ts +55 -0
  286. package/esri-compat/popup-template.d.ts.map +1 -0
  287. package/esri-compat/popup-template.js +128 -0
  288. package/esri-compat/popup.d.ts +54 -0
  289. package/esri-compat/popup.d.ts.map +1 -0
  290. package/esri-compat/popup.js +312 -0
  291. package/esri-compat/print.d.ts +47 -0
  292. package/esri-compat/print.d.ts.map +1 -0
  293. package/esri-compat/print.js +105 -0
  294. package/esri-compat/query.d.ts +58 -0
  295. package/esri-compat/query.d.ts.map +1 -0
  296. package/esri-compat/query.js +128 -0
  297. package/esri-compat/reactive-utils.d.ts +24 -0
  298. package/esri-compat/reactive-utils.d.ts.map +1 -0
  299. package/esri-compat/reactive-utils.js +193 -0
  300. package/esri-compat/request.d.ts +41 -0
  301. package/esri-compat/request.d.ts.map +1 -0
  302. package/esri-compat/request.js +253 -0
  303. package/esri-compat/route-layer.d.ts +59 -0
  304. package/esri-compat/route-layer.d.ts.map +1 -0
  305. package/esri-compat/route-layer.js +223 -0
  306. package/esri-compat/route-task.d.ts +88 -0
  307. package/esri-compat/route-task.d.ts.map +1 -0
  308. package/esri-compat/route-task.js +225 -0
  309. package/esri-compat/scene-view.d.ts +41 -0
  310. package/esri-compat/scene-view.d.ts.map +1 -0
  311. package/esri-compat/scene-view.js +68 -0
  312. package/esri-compat/search.d.ts +112 -0
  313. package/esri-compat/search.d.ts.map +1 -0
  314. package/esri-compat/search.js +820 -0
  315. package/esri-compat/simple-fill-symbol.d.ts +27 -0
  316. package/esri-compat/simple-fill-symbol.d.ts.map +1 -0
  317. package/esri-compat/simple-fill-symbol.js +85 -0
  318. package/esri-compat/simple-line-symbol.d.ts +27 -0
  319. package/esri-compat/simple-line-symbol.d.ts.map +1 -0
  320. package/esri-compat/simple-line-symbol.js +85 -0
  321. package/esri-compat/simple-marker-symbol.d.ts +29 -0
  322. package/esri-compat/simple-marker-symbol.d.ts.map +1 -0
  323. package/esri-compat/simple-marker-symbol.js +92 -0
  324. package/esri-compat/simple-renderer.d.ts +29 -0
  325. package/esri-compat/simple-renderer.d.ts.map +1 -0
  326. package/esri-compat/simple-renderer.js +92 -0
  327. package/esri-compat/sketch.d.ts +64 -0
  328. package/esri-compat/sketch.d.ts.map +1 -0
  329. package/esri-compat/sketch.js +227 -0
  330. package/esri-compat/spatial-reference.d.ts +31 -0
  331. package/esri-compat/spatial-reference.d.ts.map +1 -0
  332. package/esri-compat/spatial-reference.js +102 -0
  333. package/esri-compat/swipe.d.ts +34 -0
  334. package/esri-compat/swipe.d.ts.map +1 -0
  335. package/esri-compat/swipe.js +93 -0
  336. package/esri-compat/table-list.d.ts +36 -0
  337. package/esri-compat/table-list.d.ts.map +1 -0
  338. package/esri-compat/table-list.js +126 -0
  339. package/esri-compat/text-symbol.d.ts +37 -0
  340. package/esri-compat/text-symbol.d.ts.map +1 -0
  341. package/esri-compat/text-symbol.js +123 -0
  342. package/esri-compat/tile-layer.d.ts +52 -0
  343. package/esri-compat/tile-layer.d.ts.map +1 -0
  344. package/esri-compat/tile-layer.js +168 -0
  345. package/esri-compat/time-slider.d.ts +70 -0
  346. package/esri-compat/time-slider.d.ts.map +1 -0
  347. package/esri-compat/time-slider.js +208 -0
  348. package/esri-compat/track.d.ts +51 -0
  349. package/esri-compat/track.d.ts.map +1 -0
  350. package/esri-compat/track.js +174 -0
  351. package/esri-compat/unique-value-renderer.d.ts +41 -0
  352. package/esri-compat/unique-value-renderer.d.ts.map +1 -0
  353. package/esri-compat/unique-value-renderer.js +127 -0
  354. package/esri-compat/url.d.ts +13 -0
  355. package/esri-compat/url.d.ts.map +1 -0
  356. package/esri-compat/url.js +68 -0
  357. package/esri-compat/vector-tile-layer.d.ts +47 -0
  358. package/esri-compat/vector-tile-layer.d.ts.map +1 -0
  359. package/esri-compat/vector-tile-layer.js +130 -0
  360. package/esri-compat/web-map.d.ts +14 -0
  361. package/esri-compat/web-map.d.ts.map +1 -0
  362. package/esri-compat/web-map.js +24 -0
  363. package/esri-compat/wfs-layer.d.ts +64 -0
  364. package/esri-compat/wfs-layer.d.ts.map +1 -0
  365. package/esri-compat/wfs-layer.js +145 -0
  366. package/esri-compat/wms-layer.d.ts +76 -0
  367. package/esri-compat/wms-layer.d.ts.map +1 -0
  368. package/esri-compat/wms-layer.js +157 -0
  369. package/exploration/context.d.ts +25 -0
  370. package/exploration/context.d.ts.map +1 -0
  371. package/exploration/context.js +396 -0
  372. package/exploration/index.d.ts +27 -0
  373. package/exploration/index.d.ts.map +1 -0
  374. package/exploration/index.js +24 -0
  375. package/exploration/presets.d.ts +27 -0
  376. package/exploration/presets.d.ts.map +1 -0
  377. package/exploration/presets.js +114 -0
  378. package/exploration/reducer.d.ts +23 -0
  379. package/exploration/reducer.d.ts.map +1 -0
  380. package/exploration/reducer.js +332 -0
  381. package/exploration/selection.d.ts +25 -0
  382. package/exploration/selection.d.ts.map +1 -0
  383. package/exploration/selection.js +34 -0
  384. package/exploration/selectors.d.ts +56 -0
  385. package/exploration/selectors.d.ts.map +1 -0
  386. package/exploration/selectors.js +110 -0
  387. package/exploration/types.d.ts +294 -0
  388. package/exploration/types.d.ts.map +1 -0
  389. package/exploration/types.js +33 -0
  390. package/expr/expression.d.ts +457 -0
  391. package/expr/expression.d.ts.map +1 -0
  392. package/expr/expression.js +663 -0
  393. package/expr/index.d.ts +32 -0
  394. package/expr/index.d.ts.map +1 -0
  395. package/expr/index.js +30 -0
  396. package/gen/honua/v1/feature_service_pb.d.ts +918 -0
  397. package/gen/honua/v1/feature_service_pb.d.ts.map +1 -0
  398. package/gen/honua/v1/feature_service_pb.js +375 -0
  399. package/generated-app/errors.d.ts +41 -0
  400. package/generated-app/errors.d.ts.map +1 -0
  401. package/generated-app/errors.js +41 -0
  402. package/generated-app/index.d.ts +17 -0
  403. package/generated-app/index.d.ts.map +1 -0
  404. package/generated-app/index.js +12 -0
  405. package/generated-app/manifest.d.ts +183 -0
  406. package/generated-app/manifest.d.ts.map +1 -0
  407. package/generated-app/manifest.js +14 -0
  408. package/generated-app/projection.d.ts +44 -0
  409. package/generated-app/projection.d.ts.map +1 -0
  410. package/generated-app/projection.js +234 -0
  411. package/generated-app/runtime.d.ts +215 -0
  412. package/generated-app/runtime.d.ts.map +1 -0
  413. package/generated-app/runtime.js +1196 -0
  414. package/interactions/detail-model.d.ts +54 -0
  415. package/interactions/detail-model.d.ts.map +1 -0
  416. package/interactions/detail-model.js +105 -0
  417. package/interactions/exploration-bindings.d.ts +120 -0
  418. package/interactions/exploration-bindings.d.ts.map +1 -0
  419. package/interactions/exploration-bindings.js +218 -0
  420. package/interactions/feature-state.d.ts +144 -0
  421. package/interactions/feature-state.d.ts.map +1 -0
  422. package/interactions/feature-state.js +169 -0
  423. package/interactions/hit-test.d.ts +112 -0
  424. package/interactions/hit-test.d.ts.map +1 -0
  425. package/interactions/hit-test.js +291 -0
  426. package/interactions/index.d.ts +31 -0
  427. package/interactions/index.d.ts.map +1 -0
  428. package/interactions/index.js +24 -0
  429. package/interactions/share-state.d.ts +36 -0
  430. package/interactions/share-state.d.ts.map +1 -0
  431. package/interactions/share-state.js +123 -0
  432. package/map/feature-service-adapter.d.ts +138 -0
  433. package/map/feature-service-adapter.d.ts.map +1 -0
  434. package/map/feature-service-adapter.js +279 -0
  435. package/map/honua-map.d.ts +203 -0
  436. package/map/honua-map.d.ts.map +1 -0
  437. package/map/honua-map.js +347 -0
  438. package/map/index.d.ts +27 -0
  439. package/map/index.d.ts.map +1 -0
  440. package/map/index.js +22 -0
  441. package/map/maplibre-target.d.ts +103 -0
  442. package/map/maplibre-target.d.ts.map +1 -0
  443. package/map/maplibre-target.js +164 -0
  444. package/map/webmap-maplibre.d.ts +60 -0
  445. package/map/webmap-maplibre.d.ts.map +1 -0
  446. package/map/webmap-maplibre.js +212 -0
  447. package/package.json +37 -0
  448. package/react/context.d.ts +32 -0
  449. package/react/context.d.ts.map +1 -0
  450. package/react/context.js +19 -0
  451. package/react/honua-layer.d.ts +35 -0
  452. package/react/honua-layer.d.ts.map +1 -0
  453. package/react/honua-layer.js +47 -0
  454. package/react/honua-map.d.ts +83 -0
  455. package/react/honua-map.d.ts.map +1 -0
  456. package/react/honua-map.js +109 -0
  457. package/react/honua-popup.d.ts +26 -0
  458. package/react/honua-popup.d.ts.map +1 -0
  459. package/react/honua-popup.js +34 -0
  460. package/react/hooks.d.ts +127 -0
  461. package/react/hooks.d.ts.map +1 -0
  462. package/react/hooks.js +206 -0
  463. package/react/index.d.ts +42 -0
  464. package/react/index.d.ts.map +1 -0
  465. package/react/index.js +34 -0
  466. package/react/provider.d.ts +36 -0
  467. package/react/provider.d.ts.map +1 -0
  468. package/react/provider.js +35 -0
  469. package/react/query-cache.d.ts +76 -0
  470. package/react/query-cache.d.ts.map +1 -0
  471. package/react/query-cache.js +188 -0
  472. package/runtime/diff.d.ts +31 -0
  473. package/runtime/diff.d.ts.map +1 -0
  474. package/runtime/diff.js +143 -0
  475. package/runtime/errors.d.ts +40 -0
  476. package/runtime/errors.d.ts.map +1 -0
  477. package/runtime/errors.js +35 -0
  478. package/runtime/index.d.ts +59 -0
  479. package/runtime/index.d.ts.map +1 -0
  480. package/runtime/index.js +43 -0
  481. package/runtime/legend.d.ts +23 -0
  482. package/runtime/legend.d.ts.map +1 -0
  483. package/runtime/legend.js +38 -0
  484. package/runtime/load-package.d.ts +125 -0
  485. package/runtime/load-package.d.ts.map +1 -0
  486. package/runtime/load-package.js +264 -0
  487. package/runtime/map-package-fetch.d.ts +107 -0
  488. package/runtime/map-package-fetch.d.ts.map +1 -0
  489. package/runtime/map-package-fetch.js +336 -0
  490. package/runtime/map-package-realtime.d.ts +169 -0
  491. package/runtime/map-package-realtime.d.ts.map +1 -0
  492. package/runtime/map-package-realtime.js +350 -0
  493. package/runtime/map-package-validation.d.ts +43 -0
  494. package/runtime/map-package-validation.d.ts.map +1 -0
  495. package/runtime/map-package-validation.js +269 -0
  496. package/runtime/map-package-watch.d.ts +78 -0
  497. package/runtime/map-package-watch.d.ts.map +1 -0
  498. package/runtime/map-package-watch.js +695 -0
  499. package/runtime/map-package.d.ts +167 -0
  500. package/runtime/map-package.d.ts.map +1 -0
  501. package/runtime/map-package.js +15 -0
  502. package/runtime/ogc-styles.d.ts +110 -0
  503. package/runtime/ogc-styles.d.ts.map +1 -0
  504. package/runtime/ogc-styles.js +195 -0
  505. package/runtime/popups.d.ts +62 -0
  506. package/runtime/popups.d.ts.map +1 -0
  507. package/runtime/popups.js +95 -0
  508. package/runtime/query-tiles.d.ts +217 -0
  509. package/runtime/query-tiles.d.ts.map +1 -0
  510. package/runtime/query-tiles.js +801 -0
  511. package/runtime/runtime.d.ts +243 -0
  512. package/runtime/runtime.d.ts.map +1 -0
  513. package/runtime/runtime.js +1147 -0
  514. package/runtime/source-bridge.d.ts +99 -0
  515. package/runtime/source-bridge.d.ts.map +1 -0
  516. package/runtime/source-bridge.js +401 -0
  517. package/runtime/style-compose.d.ts +46 -0
  518. package/runtime/style-compose.d.ts.map +1 -0
  519. package/runtime/style-compose.js +144 -0
  520. package/runtime/style-interactions.d.ts +141 -0
  521. package/runtime/style-interactions.d.ts.map +1 -0
  522. package/runtime/style-interactions.js +574 -0
  523. package/runtime/style-spec-validation.d.ts +23 -0
  524. package/runtime/style-spec-validation.d.ts.map +1 -0
  525. package/runtime/style-spec-validation.js +357 -0
  526. package/studio/capability-manifest.d.ts +285 -0
  527. package/studio/capability-manifest.d.ts.map +1 -0
  528. package/studio/capability-manifest.js +59 -0
  529. package/studio/chart-spec.d.ts +85 -0
  530. package/studio/chart-spec.d.ts.map +1 -0
  531. package/studio/chart-spec.js +106 -0
  532. package/studio/index.d.ts +34 -0
  533. package/studio/index.d.ts.map +1 -0
  534. package/studio/index.js +27 -0
  535. package/studio/provenance.d.ts +131 -0
  536. package/studio/provenance.d.ts.map +1 -0
  537. package/studio/provenance.js +39 -0
  538. package/studio/publish.d.ts +64 -0
  539. package/studio/publish.d.ts.map +1 -0
  540. package/studio/publish.js +13 -0
  541. package/studio/types.d.ts +278 -0
  542. package/studio/types.d.ts.map +1 -0
  543. package/studio/types.js +71 -0
  544. package/studio/validate.d.ts +45 -0
  545. package/studio/validate.d.ts.map +1 -0
  546. package/studio/validate.js +255 -0
  547. package/studio/validation.d.ts +112 -0
  548. package/studio/validation.d.ts.map +1 -0
  549. package/studio/validation.js +42 -0
  550. package/style/factory.d.ts +30 -0
  551. package/style/factory.d.ts.map +1 -0
  552. package/style/factory.js +61 -0
  553. package/style/index.d.ts +25 -0
  554. package/style/index.d.ts.map +1 -0
  555. package/style/index.js +24 -0
  556. package/style/specification.d.ts +203 -0
  557. package/style/specification.d.ts.map +1 -0
  558. package/style/specification.js +178 -0
  559. package/style/wms-wmts-resolvers.d.ts +38 -0
  560. package/style/wms-wmts-resolvers.d.ts.map +1 -0
  561. package/style/wms-wmts-resolvers.js +92 -0
  562. package/webmap/contract.d.ts +28 -0
  563. package/webmap/contract.d.ts.map +1 -0
  564. package/webmap/contract.js +130 -0
  565. package/webmap/convert-basemap.d.ts +17 -0
  566. package/webmap/convert-basemap.d.ts.map +1 -0
  567. package/webmap/convert-basemap.js +78 -0
  568. package/webmap/convert-extent.d.ts +17 -0
  569. package/webmap/convert-extent.d.ts.map +1 -0
  570. package/webmap/convert-extent.js +114 -0
  571. package/webmap/convert-label.d.ts +13 -0
  572. package/webmap/convert-label.d.ts.map +1 -0
  573. package/webmap/convert-label.js +125 -0
  574. package/webmap/convert-layer.d.ts +22 -0
  575. package/webmap/convert-layer.d.ts.map +1 -0
  576. package/webmap/convert-layer.js +181 -0
  577. package/webmap/convert-popup.d.ts +34 -0
  578. package/webmap/convert-popup.d.ts.map +1 -0
  579. package/webmap/convert-popup.js +68 -0
  580. package/webmap/convert-renderer.d.ts +17 -0
  581. package/webmap/convert-renderer.d.ts.map +1 -0
  582. package/webmap/convert-renderer.js +161 -0
  583. package/webmap/convert-symbol.d.ts +17 -0
  584. package/webmap/convert-symbol.d.ts.map +1 -0
  585. package/webmap/convert-symbol.js +122 -0
  586. package/webmap/index.d.ts +44 -0
  587. package/webmap/index.d.ts.map +1 -0
  588. package/webmap/index.js +33 -0
  589. package/webmap/parse.d.ts +25 -0
  590. package/webmap/parse.d.ts.map +1 -0
  591. package/webmap/parse.js +83 -0
  592. package/webmap/types.d.ts +264 -0
  593. package/webmap/types.d.ts.map +1 -0
  594. package/webmap/types.js +13 -0
  595. package/webmap/warnings.d.ts +30 -0
  596. package/webmap/warnings.d.ts.map +1 -0
  597. package/webmap/warnings.js +37 -0
@@ -0,0 +1,178 @@
1
+ /**
2
+ * HonuaMapSpec — Honua-specific source type definitions extending MapLibre Style Spec v8.
3
+ *
4
+ * Defines three custom source types (`honua-feature-service`, `honua-map-service`,
5
+ * `honua-ogc-features`) and a `HonuaStyleSpecification` that widens the MapLibre
6
+ * style's `sources` map to accept them. Standard MapLibre layer types, paint/layout
7
+ * properties, and expressions are used unchanged.
8
+ *
9
+ * These types are standalone (zero dependency on `maplibre-gl` or
10
+ * `@maplibre/maplibre-gl-style-spec`), but structurally compatible — a
11
+ * `HonuaStyleSpecification` can be narrowed to `StyleSpecification` by filtering
12
+ * out Honua sources.
13
+ *
14
+ * @module
15
+ */
16
+ // ── Type guards ──────────────────────────────────────────────
17
+ /** Test whether a source specification is any Honua custom type. */
18
+ export function isHonuaSource(source) {
19
+ return source.type.startsWith("honua-");
20
+ }
21
+ /** Test whether a source is a `honua-feature-service`. */
22
+ export function isFeatureServiceSource(source) {
23
+ return source.type === "honua-feature-service";
24
+ }
25
+ /** Test whether a source is a `honua-map-service`. */
26
+ export function isMapServiceSource(source) {
27
+ return source.type === "honua-map-service";
28
+ }
29
+ /** Test whether a source is a `honua-ogc-features`. */
30
+ export function isOgcFeaturesSource(source) {
31
+ return source.type === "honua-ogc-features";
32
+ }
33
+ /** Test whether a source is a `honua-wms`. */
34
+ export function isWmsSource(source) {
35
+ return source.type === "honua-wms";
36
+ }
37
+ /** Test whether a source is a `honua-wmts`. */
38
+ export function isWmtsSource(source) {
39
+ return source.type === "honua-wmts";
40
+ }
41
+ /**
42
+ * Parse an OGC Features URL into baseUrl and optional collectionId.
43
+ *
44
+ * Accepts URLs like:
45
+ * - `https://gis.example.com/ogc/collections/admin-boundaries`
46
+ * - `https://gis.example.com/ogc` (collectionId provided separately)
47
+ */
48
+ export function parseOgcFeaturesUrl(url) {
49
+ const absoluteUrl = parseAbsoluteHttpUrl(url);
50
+ const path = absoluteUrl ? absoluteUrl.pathname : stripQueryAndHash(url);
51
+ const normalizedPath = trimTrailingSlashes(path);
52
+ // Locate the first `/collections/` segment (case-insensitive) and split the
53
+ // path into basePath + collectionId. Linear `indexOf` scanning replaces the
54
+ // prior `/^(.*?)\/collections\/([^/?#]+)(?:\/.*)?$/i` regex, whose lazy
55
+ // leading `.*?` plus trailing alternation could backtrack super-linearly.
56
+ const collectionsToken = "/collections/";
57
+ const markerIndex = normalizedPath.toLowerCase().indexOf(collectionsToken);
58
+ if (markerIndex >= 0) {
59
+ const afterMarker = normalizedPath.slice(markerIndex + collectionsToken.length);
60
+ const nextSlash = afterMarker.indexOf("/");
61
+ const collectionId = nextSlash >= 0 ? afterMarker.slice(0, nextSlash) : afterMarker;
62
+ if (collectionId !== "") {
63
+ const basePath = normalizeCollectionBasePath(normalizedPath.slice(0, markerIndex), normalizedPath);
64
+ return {
65
+ baseUrl: joinUrlParts(absoluteUrl?.origin, basePath),
66
+ collectionId,
67
+ };
68
+ }
69
+ }
70
+ return {
71
+ baseUrl: joinUrlParts(absoluteUrl?.origin, normalizedPath),
72
+ collectionId: undefined,
73
+ };
74
+ }
75
+ function parseAbsoluteHttpUrl(url) {
76
+ try {
77
+ const parsed = new URL(url);
78
+ if (parsed.protocol === "http:" || parsed.protocol === "https:") {
79
+ return parsed;
80
+ }
81
+ }
82
+ catch {
83
+ // Relative URLs are handled by string parsing below.
84
+ }
85
+ return undefined;
86
+ }
87
+ function stripQueryAndHash(url) {
88
+ const hashIndex = url.indexOf("#");
89
+ const withoutHash = hashIndex >= 0 ? url.slice(0, hashIndex) : url;
90
+ const queryIndex = withoutHash.indexOf("?");
91
+ return queryIndex >= 0 ? withoutHash.slice(0, queryIndex) : withoutHash;
92
+ }
93
+ function trimTrailingSlashes(path) {
94
+ if (path === "/") {
95
+ return "/";
96
+ }
97
+ // Linear-time trailing-slash trim. Avoids the `/\/+$/` regex, whose
98
+ // anchored quantifier can backtrack super-linearly on long slash runs.
99
+ let end = path.length;
100
+ while (end > 0 && path.charCodeAt(end - 1) === 47 /* '/' */) {
101
+ end -= 1;
102
+ }
103
+ return end === path.length ? path : path.slice(0, end);
104
+ }
105
+ function normalizeCollectionBasePath(basePath, fullPath) {
106
+ const normalized = trimTrailingSlashes(basePath);
107
+ if (normalized.length > 0) {
108
+ return normalized;
109
+ }
110
+ return fullPath.startsWith("/") ? "/" : "";
111
+ }
112
+ function joinUrlParts(origin, path) {
113
+ if (!origin) {
114
+ return path;
115
+ }
116
+ if (path.length === 0 || path === "/") {
117
+ return origin;
118
+ }
119
+ return `${origin}${path.startsWith("/") ? path : `/${path}`}`;
120
+ }
121
+ /**
122
+ * Validate a HonuaStyleSpecification for structural correctness.
123
+ *
124
+ * Returns an empty array if the style is valid. Does not validate MapLibre
125
+ * layer/expression semantics — use `@maplibre/maplibre-gl-style-spec` for that.
126
+ */
127
+ export function validateHonuaStyle(style) {
128
+ const errors = [];
129
+ if (typeof style !== "object" || style === null) {
130
+ errors.push({ path: "", message: "Style must be a non-null object" });
131
+ return errors;
132
+ }
133
+ const s = style;
134
+ if (s.version !== 8) {
135
+ errors.push({ path: "version", message: "Version must be 8" });
136
+ }
137
+ if (typeof s.sources !== "object" || s.sources === null || Array.isArray(s.sources)) {
138
+ errors.push({ path: "sources", message: "Sources must be a non-null object" });
139
+ }
140
+ else {
141
+ for (const [name, source] of Object.entries(s.sources)) {
142
+ if (typeof source !== "object" || source === null) {
143
+ errors.push({ path: `sources.${name}`, message: "Source must be a non-null object" });
144
+ continue;
145
+ }
146
+ const src = source;
147
+ if (typeof src.type !== "string") {
148
+ errors.push({ path: `sources.${name}.type`, message: "Source type must be a string" });
149
+ continue;
150
+ }
151
+ if (isHonuaSource(src)) {
152
+ if (typeof src.url !== "string") {
153
+ errors.push({ path: `sources.${name}.url`, message: "Honua source must have a string url" });
154
+ }
155
+ }
156
+ }
157
+ }
158
+ if (!Array.isArray(s.layers)) {
159
+ errors.push({ path: "layers", message: "Layers must be an array" });
160
+ }
161
+ else {
162
+ for (let i = 0; i < s.layers.length; i++) {
163
+ const layer = s.layers[i];
164
+ if (typeof layer !== "object" || layer === null) {
165
+ errors.push({ path: `layers[${i}]`, message: "Layer must be a non-null object" });
166
+ continue;
167
+ }
168
+ const l = layer;
169
+ if (typeof l.id !== "string") {
170
+ errors.push({ path: `layers[${i}].id`, message: "Layer must have a string id" });
171
+ }
172
+ if (typeof l.type !== "string") {
173
+ errors.push({ path: `layers[${i}].type`, message: "Layer must have a string type" });
174
+ }
175
+ }
176
+ }
177
+ return errors;
178
+ }
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Shared resolvers that turn a `HonuaWmsSourceSpecification` /
3
+ * `HonuaWmtsSourceSpecification` into a runtime SDK handle. Used by both
4
+ * `src/style/factory.ts` (`createSources`) and `src/map/honua-map.ts`
5
+ * (`HonuaMap.getSource`) so the URL-parsing and handle-selection rules
6
+ * stay identical between the two surfaces.
7
+ *
8
+ * @module
9
+ */
10
+ import type { HonuaClient } from "../core/client.js";
11
+ import { HonuaWms, HonuaWmsLayer } from "../core/wms.js";
12
+ import { HonuaWmts, HonuaWmtsTileset } from "../core/wmts.js";
13
+ import type { HonuaWmsSourceSpecification, HonuaWmtsSourceSpecification } from "./specification.js";
14
+ /**
15
+ * Extract the service id from a WMS/WMTS endpoint URL. Returns
16
+ * `undefined` if the URL does not match a known service shape so the
17
+ * caller can fall back to the spec's explicit `serviceId` (or surface a
18
+ * typed error).
19
+ */
20
+ export declare function parseWmsServiceIdFromUrl(url: string): string | undefined;
21
+ /**
22
+ * Resolve a `honua-wms` source spec to a runtime handle. Returns the
23
+ * layer-bound `HonuaWmsLayer` only when `spec.layers` parses to exactly
24
+ * one non-empty layer token, because `HonuaWmsLayer` is a single-layer
25
+ * handle (its `describe()` resolves one `<Layer>` from the parsed
26
+ * Capabilities). Multi-layer composites (`LAYERS=a,b`) and
27
+ * empty / missing values stay on the service-level `HonuaWms` handle so
28
+ * `map()` / `featureInfo()` can still target the composite.
29
+ */
30
+ export declare function resolveWmsSpec(client: HonuaClient, spec: HonuaWmsSourceSpecification): HonuaWms | HonuaWmsLayer;
31
+ /**
32
+ * Resolve a `honua-wmts` source spec to a runtime handle. Returns the
33
+ * (layer × style × TileMatrixSet) `HonuaWmtsTileset` when the spec
34
+ * pins a single layer; otherwise returns the service-level `HonuaWmts`
35
+ * handle.
36
+ */
37
+ export declare function resolveWmtsSpec(client: HonuaClient, spec: HonuaWmtsSourceSpecification): HonuaWmts | HonuaWmtsTileset;
38
+ //# sourceMappingURL=wms-wmts-resolvers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wms-wmts-resolvers.d.ts","sourceRoot":"","sources":["../../../src/style/wms-wmts-resolvers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAsB,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAWpG;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUxE;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,2BAA2B,GAAG,QAAQ,GAAG,aAAa,CAmB/G;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,4BAA4B,GAAG,SAAS,GAAG,gBAAgB,CAkBrH"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Shared resolvers that turn a `HonuaWmsSourceSpecification` /
3
+ * `HonuaWmtsSourceSpecification` into a runtime SDK handle. Used by both
4
+ * `src/style/factory.ts` (`createSources`) and `src/map/honua-map.ts`
5
+ * (`HonuaMap.getSource`) so the URL-parsing and handle-selection rules
6
+ * stay identical between the two surfaces.
7
+ *
8
+ * @module
9
+ */
10
+ import { HonuaWms, HonuaWmsLayer, parseWmsLayerNames } from "../core/wms.js";
11
+ import { HonuaWmts, HonuaWmtsTileset } from "../core/wmts.js";
12
+ /**
13
+ * Match the canonical Esri MapServer WMS/WMTS endpoint shape
14
+ * (`/rest/services/<name>/MapServer/{WMS|WMTS}`) and the OGC web-map
15
+ * shape (`/ogc/services/<name>/{wms|wmts}`) so we can lift the service
16
+ * id out of the URL when the spec did not carry it explicitly.
17
+ */
18
+ const HONUA_WMS_WMTS_URL_RE = /\/(?:rest\/services\/([^/?#]+)\/MapServer\/(?:WMS|WMTS)|ogc\/services\/([^/?#]+)\/(?:wms|wmts))/i;
19
+ /**
20
+ * Extract the service id from a WMS/WMTS endpoint URL. Returns
21
+ * `undefined` if the URL does not match a known service shape so the
22
+ * caller can fall back to the spec's explicit `serviceId` (or surface a
23
+ * typed error).
24
+ */
25
+ export function parseWmsServiceIdFromUrl(url) {
26
+ const match = HONUA_WMS_WMTS_URL_RE.exec(url);
27
+ if (!match)
28
+ return undefined;
29
+ const id = match[1] ?? match[2];
30
+ if (!id)
31
+ return undefined;
32
+ try {
33
+ return decodeURIComponent(id);
34
+ }
35
+ catch {
36
+ return id;
37
+ }
38
+ }
39
+ /**
40
+ * Resolve a `honua-wms` source spec to a runtime handle. Returns the
41
+ * layer-bound `HonuaWmsLayer` only when `spec.layers` parses to exactly
42
+ * one non-empty layer token, because `HonuaWmsLayer` is a single-layer
43
+ * handle (its `describe()` resolves one `<Layer>` from the parsed
44
+ * Capabilities). Multi-layer composites (`LAYERS=a,b`) and
45
+ * empty / missing values stay on the service-level `HonuaWms` handle so
46
+ * `map()` / `featureInfo()` can still target the composite.
47
+ */
48
+ export function resolveWmsSpec(client, spec) {
49
+ const serviceId = spec.serviceId ?? parseWmsServiceIdFromUrl(spec.url);
50
+ if (!serviceId) {
51
+ throw new Error("honua-wms source requires either serviceId or a URL containing the service id");
52
+ }
53
+ const root = new HonuaWms({ client, serviceId });
54
+ const parsedLayers = parseWmsLayerNames(spec.layers);
55
+ if (parsedLayers.length === 1) {
56
+ const opts = {
57
+ client,
58
+ serviceId,
59
+ layerName: parsedLayers[0],
60
+ };
61
+ if (typeof spec.styles === "string" && spec.styles.length > 0) {
62
+ opts.defaultStyleId = spec.styles;
63
+ }
64
+ return new HonuaWmsLayer(opts);
65
+ }
66
+ return root;
67
+ }
68
+ /**
69
+ * Resolve a `honua-wmts` source spec to a runtime handle. Returns the
70
+ * (layer × style × TileMatrixSet) `HonuaWmtsTileset` when the spec
71
+ * pins a single layer; otherwise returns the service-level `HonuaWmts`
72
+ * handle.
73
+ */
74
+ export function resolveWmtsSpec(client, spec) {
75
+ const serviceId = spec.serviceId ?? parseWmsServiceIdFromUrl(spec.url);
76
+ if (!serviceId) {
77
+ throw new Error("honua-wmts source requires either serviceId or a URL containing the service id");
78
+ }
79
+ const root = new HonuaWmts({ client, serviceId });
80
+ if (typeof spec.layer === "string" && spec.layer.length > 0) {
81
+ const style = spec.style ?? "default";
82
+ const tms = spec.tileMatrixSet ?? "WebMercatorQuad";
83
+ return new HonuaWmtsTileset({
84
+ client,
85
+ serviceId,
86
+ layerName: spec.layer,
87
+ styleId: style,
88
+ tileMatrixSetId: tms,
89
+ });
90
+ }
91
+ return root;
92
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Compatibility contract for WebMap JSON → HonuaStyleSpecification conversion.
3
+ *
4
+ * Documents every WebMap JSON property path and its support level,
5
+ * enabling consumers to programmatically audit which features are
6
+ * handled (or not) by the parser.
7
+ *
8
+ * @module
9
+ */
10
+ export type ContractSupport = "full" | "partial" | "ignored" | "unsupported";
11
+ export interface ContractEntry {
12
+ /** JSON path pattern (e.g. `"operationalLayers[].layerDefinition.drawingInfo.renderer"`). */
13
+ path: string;
14
+ /** Support level. */
15
+ support: ContractSupport;
16
+ /** Additional notes about limitations or behavior. */
17
+ notes?: string;
18
+ }
19
+ export declare const CONTRACT: ContractEntry[];
20
+ export interface ContractSummary {
21
+ total: number;
22
+ full: number;
23
+ partial: number;
24
+ ignored: number;
25
+ unsupported: number;
26
+ }
27
+ export declare function getContractSummary(): ContractSummary;
28
+ //# sourceMappingURL=contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../src/webmap/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAC;AAE7E,MAAM,WAAW,aAAa;IAC5B,6FAA6F;IAC7F,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,OAAO,EAAE,eAAe,CAAC;IACzB,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,QAAQ,EAAE,aAAa,EA2HnC,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAOpD"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Compatibility contract for WebMap JSON → HonuaStyleSpecification conversion.
3
+ *
4
+ * Documents every WebMap JSON property path and its support level,
5
+ * enabling consumers to programmatically audit which features are
6
+ * handled (or not) by the parser.
7
+ *
8
+ * @module
9
+ */
10
+ export const CONTRACT = [
11
+ // ── Top-level ──
12
+ { path: "version", support: "ignored", notes: "Informational only" },
13
+ { path: "authoringApp", support: "ignored" },
14
+ { path: "authoringAppVersion", support: "ignored" },
15
+ { path: "spatialReference", support: "partial", notes: "Web Mercator (3857/102100) supported; others warn" },
16
+ { path: "unknown top-level properties", support: "ignored", notes: "Ignored with warning" },
17
+ // ── Initial viewpoint / extent ──
18
+ {
19
+ path: "initialViewpoint",
20
+ support: "partial",
21
+ notes: "targetGeometry point/extent supported; camera/3D unsupported",
22
+ },
23
+ { path: "initialViewpoint.targetGeometry", support: "partial", notes: "Point or extent in 3857/102100/4326" },
24
+ { path: "initialViewpoint.scale", support: "full", notes: "Converted to approximate zoom" },
25
+ { path: "initialExtent", support: "full", notes: "Converted to center/zoom for Web Mercator" },
26
+ { path: "initialExtent.spatialReference", support: "partial", notes: "Web Mercator only" },
27
+ // ── Bookmarks ──
28
+ { path: "bookmarks", support: "full", notes: "Passed through as-is in result" },
29
+ { path: "bookmarks[].name", support: "full" },
30
+ { path: "bookmarks[].extent", support: "full" },
31
+ // ── Basemap ──
32
+ { path: "baseMap", support: "partial" },
33
+ { path: "baseMap.title", support: "full" },
34
+ { path: "baseMap.baseMapLayers[]", support: "partial" },
35
+ { path: "baseMap.baseMapLayers[].url", support: "full" },
36
+ {
37
+ path: "baseMap.baseMapLayers[].layerType",
38
+ support: "partial",
39
+ notes: "ArcGISTiledMapServiceLayer supported; VectorTileLayer partial",
40
+ },
41
+ { path: "baseMap.baseMapLayers[].visibility", support: "full" },
42
+ { path: "baseMap.baseMapLayers[].opacity", support: "full" },
43
+ {
44
+ path: "baseMap.baseMapLayers[].styleUrl",
45
+ support: "partial",
46
+ notes: "Noted in metadata; sprite/glyph resolution not performed",
47
+ },
48
+ // ── Operational layers ──
49
+ { path: "operationalLayers[]", support: "partial" },
50
+ { path: "operationalLayers[].id", support: "full" },
51
+ { path: "operationalLayers[].title", support: "full", notes: "Used as layer metadata" },
52
+ { path: "operationalLayers[].url", support: "full" },
53
+ {
54
+ path: "operationalLayers[].layerType",
55
+ support: "partial",
56
+ notes: "ArcGISFeatureLayer, ArcGISMapServiceLayer supported",
57
+ },
58
+ { path: "operationalLayers[].visibility", support: "full" },
59
+ { path: "operationalLayers[].opacity", support: "full" },
60
+ { path: "operationalLayers[].minScale", support: "full" },
61
+ { path: "operationalLayers[].maxScale", support: "full" },
62
+ // ── Layer definition ──
63
+ { path: "operationalLayers[].layerDefinition", support: "partial" },
64
+ { path: "operationalLayers[].layerDefinition.definitionExpression", support: "full" },
65
+ { path: "operationalLayers[].layerDefinition.drawingInfo", support: "partial" },
66
+ { path: "operationalLayers[].layerDefinition.drawingInfo.transparency", support: "full" },
67
+ // ── Renderers ──
68
+ { path: "operationalLayers[].layerDefinition.drawingInfo.renderer", support: "partial" },
69
+ { path: "operationalLayers[].layerDefinition.drawingInfo.renderer (simple)", support: "full" },
70
+ { path: "operationalLayers[].layerDefinition.drawingInfo.renderer (uniqueValue)", support: "full" },
71
+ { path: "operationalLayers[].layerDefinition.drawingInfo.renderer (classBreaks)", support: "full" },
72
+ {
73
+ path: "operationalLayers[].layerDefinition.drawingInfo.renderer (heatmap)",
74
+ support: "unsupported",
75
+ notes: "Warning emitted",
76
+ },
77
+ {
78
+ path: "operationalLayers[].layerDefinition.drawingInfo.renderer (dotDensity)",
79
+ support: "unsupported",
80
+ notes: "Warning emitted",
81
+ },
82
+ // ── Symbols ──
83
+ { path: "symbol (esriSFS)", support: "full", notes: "Simple fill symbol → fill layer" },
84
+ { path: "symbol (esriSLS)", support: "full", notes: "Simple line symbol → line layer" },
85
+ { path: "symbol (esriSMS)", support: "full", notes: "Simple marker symbol → circle layer" },
86
+ { path: "symbol (esriPMS)", support: "partial", notes: "Picture marker → symbol layer; requires sprite setup" },
87
+ { path: "symbol (esriTS)", support: "partial", notes: "Text symbol → symbol layer with text" },
88
+ // ── Labeling ──
89
+ { path: "operationalLayers[].layerDefinition.drawingInfo.labelingInfo", support: "partial" },
90
+ {
91
+ path: "operationalLayers[].layerDefinition.drawingInfo.labelingInfo[].labelExpressionInfo.expression",
92
+ support: "partial",
93
+ notes: "Simple $feature.FIELD supported; complex Arcade skipped",
94
+ },
95
+ // ── Popups ──
96
+ {
97
+ path: "operationalLayers[].popupInfo",
98
+ support: "full",
99
+ notes: "Passed through as metadata (MapLibre has no popup spec)",
100
+ },
101
+ { path: "operationalLayers[].popupInfo.title", support: "full" },
102
+ { path: "operationalLayers[].popupInfo.description", support: "full" },
103
+ { path: "operationalLayers[].popupInfo.fieldInfos", support: "full" },
104
+ { path: "operationalLayers[].popupInfo.mediaInfos", support: "full" },
105
+ {
106
+ path: "operationalLayers[].popupInfo.expressionInfos",
107
+ support: "unsupported",
108
+ notes: "Warning emitted; manual intervention",
109
+ },
110
+ // ── Feature collection (inline) ──
111
+ {
112
+ path: "operationalLayers[].featureCollection",
113
+ support: "unsupported",
114
+ notes: "Inline feature collections not yet supported",
115
+ },
116
+ // ── 3D ──
117
+ {
118
+ path: "ground / viewingMode / camera / elevationInfo",
119
+ support: "unsupported",
120
+ notes: "Warning emitted; manual intervention",
121
+ },
122
+ ];
123
+ export function getContractSummary() {
124
+ const summary = { total: 0, full: 0, partial: 0, ignored: 0, unsupported: 0 };
125
+ for (const entry of CONTRACT) {
126
+ summary.total++;
127
+ summary[entry.support]++;
128
+ }
129
+ return summary;
130
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Converts Esri WebMap baseMap to Honua sources and layers.
3
+ *
4
+ * @module
5
+ */
6
+ import type { HonuaLayerSpecification, HonuaMapServiceSourceSpecification } from "../style/specification.js";
7
+ import type { WebMapBaseMap } from "./types.js";
8
+ import { type WarningCollector } from "./warnings.js";
9
+ export interface BasemapConversionResult {
10
+ sources: Record<string, HonuaMapServiceSourceSpecification | {
11
+ type: string;
12
+ [key: string]: unknown;
13
+ }>;
14
+ layers: HonuaLayerSpecification[];
15
+ }
16
+ export declare function convertBasemap(baseMap: WebMapBaseMap | undefined, warn: WarningCollector): BasemapConversionResult;
17
+ //# sourceMappingURL=convert-basemap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert-basemap.d.ts","sourceRoot":"","sources":["../../../src/webmap/convert-basemap.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,kCAAkC,EAAE,MAAM,2BAA2B,CAAC;AAC7G,OAAO,KAAK,EAAE,aAAa,EAAsB,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,KAAK,gBAAgB,EAAyB,MAAM,eAAe,CAAC;AAE7E,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,kCAAkC,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,CAAC;IACvG,MAAM,EAAE,uBAAuB,EAAE,CAAC;CACnC;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,EAAE,IAAI,EAAE,gBAAgB,GAAG,uBAAuB,CA6ElH"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Converts Esri WebMap baseMap to Honua sources and layers.
3
+ *
4
+ * @module
5
+ */
6
+ import { warnUnknownProperties } from "./warnings.js";
7
+ export function convertBasemap(baseMap, warn) {
8
+ const result = { sources: {}, layers: [] };
9
+ if (!baseMap?.baseMapLayers)
10
+ return result;
11
+ warnUnknownProperties(baseMap, BASEMAP_PROPERTIES, warn);
12
+ const bmLayers = baseMap.baseMapLayers;
13
+ for (let i = 0; i < bmLayers.length; i++) {
14
+ const bml = bmLayers[i];
15
+ const bmlWarn = warn.child(`baseMapLayers[${i}]`);
16
+ warnUnknownProperties(bml, BASEMAP_LAYER_PROPERTIES, bmlWarn);
17
+ const sourceId = bml.id ?? `basemap-${i}`;
18
+ const layerId = `${sourceId}-layer`;
19
+ const layerType = bml.layerType ?? "";
20
+ if (layerType === "ArcGISTiledMapServiceLayer" && bml.url) {
21
+ result.sources[sourceId] = {
22
+ type: "honua-map-service",
23
+ url: bml.url,
24
+ };
25
+ const layer = {
26
+ id: layerId,
27
+ type: "raster",
28
+ source: sourceId,
29
+ layout: {},
30
+ paint: {},
31
+ };
32
+ if (bml.visibility === false) {
33
+ layer.layout = { visibility: "none" };
34
+ }
35
+ if (bml.opacity != null && bml.opacity < 1) {
36
+ layer.paint["raster-opacity"] = bml.opacity;
37
+ }
38
+ result.layers.push(layer);
39
+ }
40
+ else if (layerType === "VectorTileLayer") {
41
+ // Partial support: note styleUrl in metadata
42
+ if (bml.url) {
43
+ result.sources[sourceId] = {
44
+ type: "vector",
45
+ url: bml.url,
46
+ };
47
+ }
48
+ else {
49
+ bmlWarn.warn("missing-url", "VectorTileLayer missing url");
50
+ continue;
51
+ }
52
+ const layer = {
53
+ id: layerId,
54
+ type: "background",
55
+ source: sourceId,
56
+ layout: {},
57
+ paint: {},
58
+ metadata: {
59
+ ...(bml.styleUrl ? { esriStyleUrl: bml.styleUrl } : {}),
60
+ note: "VectorTileLayer requires style resolution; using placeholder background layer",
61
+ },
62
+ };
63
+ if (bml.visibility === false) {
64
+ layer.layout = { visibility: "none" };
65
+ }
66
+ bmlWarn.warn("vector-tile-partial", "VectorTileLayer support is partial; style must be resolved separately", {
67
+ styleUrl: bml.styleUrl,
68
+ });
69
+ result.layers.push(layer);
70
+ }
71
+ else {
72
+ bmlWarn.warn("unsupported-basemap-type", `Unsupported basemap layer type: ${layerType}`, { layerType });
73
+ }
74
+ }
75
+ return result;
76
+ }
77
+ const BASEMAP_PROPERTIES = ["title", "baseMapLayers"];
78
+ const BASEMAP_LAYER_PROPERTIES = ["id", "title", "url", "layerType", "visibility", "opacity", "styleUrl"];
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Converts Esri WebMap extents/viewpoints to MapLibre center/zoom.
3
+ *
4
+ * Supports Web Mercator (WKID 3857 / 102100) and geographic (4326).
5
+ * Unsupported spatial references emit warnings and are skipped.
6
+ *
7
+ * @module
8
+ */
9
+ import type { WebMapExtent, WebMapViewpoint } from "./types.js";
10
+ import type { WarningCollector } from "./warnings.js";
11
+ export interface ExtentConversionResult {
12
+ center: [number, number];
13
+ zoom: number;
14
+ }
15
+ export declare function convertInitialViewpoint(viewpoint: WebMapViewpoint | undefined, warn: WarningCollector): ExtentConversionResult | undefined;
16
+ export declare function convertExtent(extent: WebMapExtent | undefined, warn: WarningCollector): ExtentConversionResult | undefined;
17
+ //# sourceMappingURL=convert-extent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert-extent.d.ts","sourceRoot":"","sources":["../../../src/webmap/convert-extent.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAe,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAMD,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,eAAe,GAAG,SAAS,EACtC,IAAI,EAAE,gBAAgB,GACrB,sBAAsB,GAAG,SAAS,CAsBpC;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,YAAY,GAAG,SAAS,EAChC,IAAI,EAAE,gBAAgB,GACrB,sBAAsB,GAAG,SAAS,CAyBpC"}