@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,99 @@
1
+ /**
2
+ * Translates `MapPackage.sourceBindings[]` (server shape) into SDK-side
3
+ * `SourceDescriptor[]` consumed by `createDataset`, and keeps a parallel
4
+ * record of MapLibre-native source entries that flow straight into the
5
+ * composed style.
6
+ *
7
+ * Contract:
8
+ * - Protocol-backed bindings (`geoservices_*`, `ogc_features`, `wfs`,
9
+ * `wms`, `odata`) produce a `SourceDescriptor` whose locator mirrors
10
+ * the server's field shape verbatim per `docs/source-binding-alignment.md`.
11
+ * - MapLibre-native bindings (`vector_tile`, `raster_tile`) skip the
12
+ * contract pipeline and surface as MapLibre source entries.
13
+ * - `ogc_maps` / `ogc_tiles` project onto MapLibre-native sources
14
+ * (raster or vector) since the SDK does not model them as first-party
15
+ * data protocols.
16
+ * - `workspace_artifact` is deferred (no adapter); load fails with a
17
+ * clear `HonuaMapPackageError` stage="source-bind" so callers can
18
+ * detect missing server artifacts.
19
+ *
20
+ * @module
21
+ */
22
+ import { type SourceDescriptor } from "../contract/index.js";
23
+ import type { HonuaMapPackageLocator, HonuaMapPackageSourceBinding } from "./map-package.js";
24
+ /** One MapLibre-native source entry derived from a binding. */
25
+ export interface NativeMapLibreSourceEntry {
26
+ sourceId: string;
27
+ spec: {
28
+ type: string;
29
+ [key: string]: unknown;
30
+ };
31
+ attribution?: string;
32
+ }
33
+ /** Result of projecting a package's source bindings. */
34
+ export interface SourceBridgeProjection {
35
+ /** Protocol-backed descriptors destined for `createDataset`. */
36
+ descriptors: SourceDescriptor[];
37
+ /**
38
+ * MapLibre-native source entries keyed by sourceId. These flow straight
39
+ * into the composed style's `sources` map without going through
40
+ * `Dataset`.
41
+ */
42
+ nativeSources: NativeMapLibreSourceEntry[];
43
+ /** Binding filter expressions captured per source id. */
44
+ filtersBySourceId: Map<string, string>;
45
+ }
46
+ /**
47
+ * Project the bindings on a MapPackage into SDK contract descriptors and
48
+ * MapLibre-native source entries. Throws `HonuaMapPackageError` for
49
+ * bindings the runtime cannot route (unknown protocol, missing locator,
50
+ * deferred `workspace_artifact`).
51
+ */
52
+ export declare function projectSourceBindings(packageId: string | undefined, bindings: readonly HonuaMapPackageSourceBinding[]): SourceBridgeProjection;
53
+ /**
54
+ * Build the Honua custom-source spec (to be inserted into `style.sources`)
55
+ * for a protocol-backed descriptor.
56
+ */
57
+ export declare function toHonuaSourceSpec(descriptor: SourceDescriptor, filter?: string): {
58
+ type: string;
59
+ [key: string]: unknown;
60
+ };
61
+ /**
62
+ * Build a MapLibre `raster` source spec for a WMS descriptor. The
63
+ * `tiles` template uses MapLibre's runtime substitution placeholders
64
+ * (`{bbox-epsg3857}`, `{width}`, `{height}`) so each tile request is a
65
+ * pre-baked KVP URL — consumers do not have to hand-assemble GetMap
66
+ * URLs themselves.
67
+ */
68
+ export declare function buildWmsRasterSourceSpec(descriptor: SourceDescriptor, options?: {
69
+ tileSize?: number;
70
+ format?: string;
71
+ transparent?: boolean;
72
+ }): {
73
+ type: "raster";
74
+ tiles: string[];
75
+ tileSize: number;
76
+ attribution?: string;
77
+ };
78
+ /**
79
+ * Build a MapLibre `raster` source spec for a WMTS descriptor using the
80
+ * RESTful tile route. The template expands `{z}/{y}/{x}` at runtime
81
+ * (MapLibre's standard tile placeholders).
82
+ */
83
+ export declare function buildWmtsRasterSourceSpec(descriptor: SourceDescriptor, options?: {
84
+ tileSize?: number;
85
+ format?: string;
86
+ minzoom?: number;
87
+ maxzoom?: number;
88
+ }): {
89
+ type: "raster";
90
+ tiles: string[];
91
+ tileSize: number;
92
+ scheme?: string;
93
+ minzoom?: number;
94
+ maxzoom?: number;
95
+ attribution?: string;
96
+ };
97
+ /** Re-export the server-shape locator type so callers do not import a deep path. */
98
+ export type { HonuaMapPackageLocator };
99
+ //# sourceMappingURL=source-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-bridge.d.ts","sourceRoot":"","sources":["../../../src/runtime/source-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,sBAAsB,EAA2B,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAEtH,+DAA+D;AAC/D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wDAAwD;AACxD,MAAM,WAAW,sBAAsB;IACrC,gEAAgE;IAChE,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC;;;;OAIG;IACH,aAAa,EAAE,yBAAyB,EAAE,CAAC;IAC3C,yDAAyD;IACzD,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,QAAQ,EAAE,SAAS,4BAA4B,EAAE,GAChD,sBAAsB,CA4CxB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,gBAAgB,EAC5B,MAAM,CAAC,EAAE,MAAM,GACd;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAkE1C;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,gBAAgB,EAC5B,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1E;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CA8B7E;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,gBAAgB,EAC5B,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACvF;IACD,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CA2BA;AAgMD,oFAAoF;AACpF,YAAY,EAAE,sBAAsB,EAAE,CAAC"}
@@ -0,0 +1,401 @@
1
+ /**
2
+ * Translates `MapPackage.sourceBindings[]` (server shape) into SDK-side
3
+ * `SourceDescriptor[]` consumed by `createDataset`, and keeps a parallel
4
+ * record of MapLibre-native source entries that flow straight into the
5
+ * composed style.
6
+ *
7
+ * Contract:
8
+ * - Protocol-backed bindings (`geoservices_*`, `ogc_features`, `wfs`,
9
+ * `wms`, `odata`) produce a `SourceDescriptor` whose locator mirrors
10
+ * the server's field shape verbatim per `docs/source-binding-alignment.md`.
11
+ * - MapLibre-native bindings (`vector_tile`, `raster_tile`) skip the
12
+ * contract pipeline and surface as MapLibre source entries.
13
+ * - `ogc_maps` / `ogc_tiles` project onto MapLibre-native sources
14
+ * (raster or vector) since the SDK does not model them as first-party
15
+ * data protocols.
16
+ * - `workspace_artifact` is deferred (no adapter); load fails with a
17
+ * clear `HonuaMapPackageError` stage="source-bind" so callers can
18
+ * detect missing server artifacts.
19
+ *
20
+ * @module
21
+ */
22
+ import { PROTOCOL_DEFAULT_CAPABILITIES, } from "../contract/index.js";
23
+ import { wmtsExtensionForFormat } from "../core/wms-types.js";
24
+ import { HonuaMapPackageError } from "./errors.js";
25
+ /**
26
+ * Project the bindings on a MapPackage into SDK contract descriptors and
27
+ * MapLibre-native source entries. Throws `HonuaMapPackageError` for
28
+ * bindings the runtime cannot route (unknown protocol, missing locator,
29
+ * deferred `workspace_artifact`).
30
+ */
31
+ export function projectSourceBindings(packageId, bindings) {
32
+ const descriptors = [];
33
+ const nativeSources = [];
34
+ const filtersBySourceId = new Map();
35
+ const seen = new Set();
36
+ for (const binding of bindings) {
37
+ if (seen.has(binding.sourceId)) {
38
+ throw new HonuaMapPackageError(`duplicate sourceBinding id "${binding.sourceId}"`, {
39
+ packageId,
40
+ stage: "source-bind",
41
+ detail: { sourceId: binding.sourceId },
42
+ });
43
+ }
44
+ seen.add(binding.sourceId);
45
+ if (binding.filter) {
46
+ filtersBySourceId.set(binding.sourceId, binding.filter);
47
+ }
48
+ const mlNative = toMapLibreNativeSource(binding);
49
+ if (mlNative) {
50
+ nativeSources.push(mlNative);
51
+ continue;
52
+ }
53
+ const sdkProtocol = toSdkProtocol(binding.protocol);
54
+ if (!sdkProtocol) {
55
+ throw new HonuaMapPackageError(`unsupported SourceBinding protocol "${binding.protocol}" on source "${binding.sourceId}"`, { packageId, stage: "source-bind", detail: { sourceId: binding.sourceId, protocol: binding.protocol } });
56
+ }
57
+ descriptors.push({
58
+ id: binding.sourceId,
59
+ protocol: sdkProtocol,
60
+ locator: toSourceLocator(packageId, binding, sdkProtocol),
61
+ capabilities: PROTOCOL_DEFAULT_CAPABILITIES[sdkProtocol],
62
+ attribution: binding.attribution,
63
+ });
64
+ }
65
+ return { descriptors, nativeSources, filtersBySourceId };
66
+ }
67
+ /**
68
+ * Build the Honua custom-source spec (to be inserted into `style.sources`)
69
+ * for a protocol-backed descriptor.
70
+ */
71
+ export function toHonuaSourceSpec(descriptor, filter) {
72
+ switch (descriptor.protocol) {
73
+ case "geoservices-feature-service": {
74
+ const url = requireLocatorUrl(descriptor);
75
+ return {
76
+ type: "honua-feature-service",
77
+ url,
78
+ ...(filter ? { definitionExpression: filter } : {}),
79
+ ...(descriptor.attribution ? { attribution: descriptor.attribution } : {}),
80
+ };
81
+ }
82
+ case "geoservices-map-service": {
83
+ const url = requireLocatorUrl(descriptor);
84
+ return {
85
+ type: "honua-map-service",
86
+ url,
87
+ ...(descriptor.attribution ? { attribution: descriptor.attribution } : {}),
88
+ };
89
+ }
90
+ case "ogc-features": {
91
+ const url = requireLocatorUrl(descriptor);
92
+ return {
93
+ type: "honua-ogc-features",
94
+ url,
95
+ ...(descriptor.locator.collectionId !== undefined
96
+ ? { collectionId: String(descriptor.locator.collectionId) }
97
+ : {}),
98
+ ...(filter ? { filter } : {}),
99
+ ...(descriptor.attribution ? { attribution: descriptor.attribution } : {}),
100
+ };
101
+ }
102
+ case "wms": {
103
+ const url = requireLocatorUrl(descriptor);
104
+ const out = {
105
+ type: "honua-wms",
106
+ url,
107
+ };
108
+ if (descriptor.locator.serviceId !== undefined)
109
+ out.serviceId = descriptor.locator.serviceId;
110
+ if (descriptor.locator.typeName !== undefined)
111
+ out.layers = descriptor.locator.typeName;
112
+ if (descriptor.locator.styleId !== undefined)
113
+ out.styles = descriptor.locator.styleId;
114
+ if (descriptor.attribution !== undefined)
115
+ out.attribution = descriptor.attribution;
116
+ return out;
117
+ }
118
+ case "wmts": {
119
+ const url = requireLocatorUrl(descriptor);
120
+ const out = {
121
+ type: "honua-wmts",
122
+ url,
123
+ };
124
+ if (descriptor.locator.serviceId !== undefined)
125
+ out.serviceId = descriptor.locator.serviceId;
126
+ if (descriptor.locator.typeName !== undefined)
127
+ out.layer = descriptor.locator.typeName;
128
+ if (descriptor.locator.styleId !== undefined)
129
+ out.style = descriptor.locator.styleId;
130
+ if (descriptor.locator.tileMatrixSetId !== undefined) {
131
+ out.tileMatrixSet = descriptor.locator.tileMatrixSetId;
132
+ }
133
+ if (descriptor.attribution !== undefined)
134
+ out.attribution = descriptor.attribution;
135
+ return out;
136
+ }
137
+ default:
138
+ return {
139
+ type: `honua-${descriptor.protocol}`,
140
+ ...descriptor.locator,
141
+ ...(filter ? { filter } : {}),
142
+ ...(descriptor.attribution ? { attribution: descriptor.attribution } : {}),
143
+ };
144
+ }
145
+ }
146
+ /**
147
+ * Build a MapLibre `raster` source spec for a WMS descriptor. The
148
+ * `tiles` template uses MapLibre's runtime substitution placeholders
149
+ * (`{bbox-epsg3857}`, `{width}`, `{height}`) so each tile request is a
150
+ * pre-baked KVP URL — consumers do not have to hand-assemble GetMap
151
+ * URLs themselves.
152
+ */
153
+ export function buildWmsRasterSourceSpec(descriptor, options = {}) {
154
+ const url = requireLocatorUrl(descriptor);
155
+ const tileSize = options.tileSize ?? 256;
156
+ const format = options.format ?? "image/png";
157
+ const transparent = options.transparent ?? true;
158
+ const layers = descriptor.locator.typeName ?? "";
159
+ const styles = descriptor.locator.styleId ?? "";
160
+ const params = new URLSearchParams();
161
+ params.set("SERVICE", "WMS");
162
+ params.set("VERSION", "1.3.0");
163
+ params.set("REQUEST", "GetMap");
164
+ params.set("LAYERS", layers);
165
+ params.set("STYLES", styles);
166
+ params.set("CRS", "EPSG:3857");
167
+ params.set("FORMAT", format);
168
+ params.set("TRANSPARENT", String(transparent).toUpperCase());
169
+ // MapLibre substitutes these placeholders at fetch-time. They are
170
+ // intentionally appended verbatim (no encoding) so MapLibre's
171
+ // template parser sees the literal tokens. WIDTH and HEIGHT are
172
+ // emitted only as placeholders — duplicating them as fixed params
173
+ // would produce ambiguous query keys that honua-server's
174
+ // TryGetRequiredQueryValue / int.TryParse pair rejects.
175
+ const baseUrl = `${url}?${params.toString()}&BBOX={bbox-epsg3857}&WIDTH={width}&HEIGHT={height}`;
176
+ const out = {
177
+ type: "raster",
178
+ tiles: [baseUrl],
179
+ tileSize,
180
+ };
181
+ if (descriptor.attribution)
182
+ out.attribution = descriptor.attribution;
183
+ return out;
184
+ }
185
+ /**
186
+ * Build a MapLibre `raster` source spec for a WMTS descriptor using the
187
+ * RESTful tile route. The template expands `{z}/{y}/{x}` at runtime
188
+ * (MapLibre's standard tile placeholders).
189
+ */
190
+ export function buildWmtsRasterSourceSpec(descriptor, options = {}) {
191
+ const url = requireLocatorUrl(descriptor);
192
+ const tileSize = options.tileSize ?? 256;
193
+ const format = options.format ?? "image/png";
194
+ const ext = wmtsExtensionForFormat(format);
195
+ const layer = descriptor.locator.typeName ?? "";
196
+ const style = descriptor.locator.styleId ?? "default";
197
+ const tms = descriptor.locator.tileMatrixSetId ?? "WebMercatorQuad";
198
+ const tileTemplate = `${url}/${encodeURIComponent(layer)}/${encodeURIComponent(style)}/${encodeURIComponent(tms)}/{z}/{y}/{x}.${ext}`;
199
+ const out = {
200
+ type: "raster",
201
+ tiles: [tileTemplate],
202
+ tileSize,
203
+ scheme: "xyz",
204
+ };
205
+ if (options.minzoom !== undefined)
206
+ out.minzoom = options.minzoom;
207
+ if (options.maxzoom !== undefined)
208
+ out.maxzoom = options.maxzoom;
209
+ if (descriptor.attribution)
210
+ out.attribution = descriptor.attribution;
211
+ return out;
212
+ }
213
+ function toSdkProtocol(protocol) {
214
+ switch (protocol) {
215
+ case "geoservices_feature_service":
216
+ return "geoservices-feature-service";
217
+ case "geoservices_map_service":
218
+ return "geoservices-map-service";
219
+ case "ogc_features":
220
+ return "ogc-features";
221
+ case "wfs":
222
+ return "wfs";
223
+ case "wms":
224
+ return "wms";
225
+ case "wmts":
226
+ return "wmts";
227
+ case "odata":
228
+ return "odata";
229
+ default:
230
+ return undefined;
231
+ }
232
+ }
233
+ function toMapLibreNativeSource(binding) {
234
+ switch (binding.protocol) {
235
+ case "vector_tile":
236
+ case "ogc_tiles":
237
+ return {
238
+ sourceId: binding.sourceId,
239
+ attribution: binding.attribution,
240
+ spec: {
241
+ type: "vector",
242
+ ...(binding.locator.url ? { tiles: [binding.locator.url] } : {}),
243
+ ...(binding.attribution ? { attribution: binding.attribution } : {}),
244
+ },
245
+ };
246
+ case "raster_tile":
247
+ case "ogc_maps":
248
+ return {
249
+ sourceId: binding.sourceId,
250
+ attribution: binding.attribution,
251
+ spec: {
252
+ type: "raster",
253
+ ...(binding.locator.url ? { tiles: [binding.locator.url] } : {}),
254
+ ...(binding.attribution ? { attribution: binding.attribution } : {}),
255
+ },
256
+ };
257
+ default:
258
+ return undefined;
259
+ }
260
+ }
261
+ function toSourceLocator(packageId, binding, sdkProtocol) {
262
+ const loc = binding.locator;
263
+ if (binding.protocol === "workspace_artifact") {
264
+ throw new HonuaMapPackageError(`"workspace_artifact" binding on source "${binding.sourceId}" requires a server-side artifact resolver that is not yet wired`, { packageId, stage: "source-bind", detail: { sourceId: binding.sourceId, protocol: binding.protocol } });
265
+ }
266
+ if (typeof loc.url !== "string" || loc.url.length === 0) {
267
+ throw new HonuaMapPackageError(`SourceBinding "${binding.sourceId}" is missing locator.url`, {
268
+ packageId,
269
+ stage: "source-bind",
270
+ detail: { sourceId: binding.sourceId, protocol: binding.protocol },
271
+ });
272
+ }
273
+ const locator = { url: loc.url };
274
+ if (loc.serviceId !== undefined)
275
+ locator.serviceId = loc.serviceId;
276
+ const normalizedLayerId = normalizeLayerId(loc.layerId);
277
+ if (normalizedLayerId !== undefined)
278
+ locator.layerId = normalizedLayerId;
279
+ if (loc.collectionId !== undefined)
280
+ locator.collectionId = loc.collectionId;
281
+ if (loc.typeName !== undefined)
282
+ locator.typeName = loc.typeName;
283
+ if (loc.entitySet !== undefined)
284
+ locator.entitySet = loc.entitySet;
285
+ if (typeof loc.styleId === "string") {
286
+ locator.styleId = loc.styleId;
287
+ }
288
+ if (typeof loc.tileMatrixSetId === "string") {
289
+ locator.tileMatrixSetId = loc.tileMatrixSetId;
290
+ }
291
+ // Backfill protocol-specific fields from the URL when the server ships
292
+ // only `locator.url`. The built-in GeoServices and OGC adapters require
293
+ // `serviceId` + `layerId` / `collectionId`, so projection must fill them
294
+ // in here rather than failing later inside `createDataset`.
295
+ if (sdkProtocol === "geoservices-feature-service" || sdkProtocol === "geoservices-map-service") {
296
+ const parsed = parseGeoServicesUrl(loc.url);
297
+ if (parsed) {
298
+ if (locator.serviceId === undefined && parsed.serviceId !== undefined) {
299
+ locator.serviceId = parsed.serviceId;
300
+ }
301
+ if (locator.layerId === undefined && parsed.layerId !== undefined) {
302
+ locator.layerId = parsed.layerId;
303
+ }
304
+ }
305
+ }
306
+ else if (sdkProtocol === "ogc-features") {
307
+ if (locator.collectionId === undefined) {
308
+ const parsedCollectionId = parseOgcCollectionId(loc.url);
309
+ if (parsedCollectionId !== undefined)
310
+ locator.collectionId = parsedCollectionId;
311
+ }
312
+ }
313
+ else if (sdkProtocol === "wms" || sdkProtocol === "wmts") {
314
+ if (locator.serviceId === undefined) {
315
+ const parsedServiceId = parseWmsServiceId(loc.url);
316
+ if (parsedServiceId !== undefined)
317
+ locator.serviceId = parsedServiceId;
318
+ }
319
+ }
320
+ return locator;
321
+ }
322
+ /**
323
+ * Coerce `layerId` to a number when the server wire format serialises it
324
+ * as a numeric string (the C# mirror declares it as a string so the
325
+ * JSON wire may arrive as `"0"`). Non-numeric strings are left as-is so
326
+ * the built-in adapters can surface a typed validation error.
327
+ */
328
+ function normalizeLayerId(value) {
329
+ if (value === undefined || value === null)
330
+ return undefined;
331
+ if (typeof value === "number")
332
+ return Number.isFinite(value) ? value : undefined;
333
+ if (typeof value === "string" && value.length > 0) {
334
+ const trimmed = value.trim();
335
+ if (trimmed.length === 0)
336
+ return undefined;
337
+ if (!/^-?\d+$/.test(trimmed))
338
+ return undefined;
339
+ const parsed = Number(trimmed);
340
+ return Number.isFinite(parsed) ? parsed : undefined;
341
+ }
342
+ return undefined;
343
+ }
344
+ const GEOSERVICES_URL_RE = /\/rest\/services\/([^/?#]+)\/(?:FeatureServer|MapServer)(?:\/(\d+))?/i;
345
+ function parseGeoServicesUrl(url) {
346
+ const match = GEOSERVICES_URL_RE.exec(url);
347
+ if (!match)
348
+ return undefined;
349
+ const result = {};
350
+ if (match[1]) {
351
+ try {
352
+ result.serviceId = decodeURIComponent(match[1]);
353
+ }
354
+ catch {
355
+ result.serviceId = match[1];
356
+ }
357
+ }
358
+ if (match[2]) {
359
+ const parsed = Number(match[2]);
360
+ if (Number.isFinite(parsed))
361
+ result.layerId = parsed;
362
+ }
363
+ return result;
364
+ }
365
+ const OGC_COLLECTION_URL_RE = /\/collections\/([^/?#]+)/i;
366
+ function parseOgcCollectionId(url) {
367
+ const match = OGC_COLLECTION_URL_RE.exec(url);
368
+ if (!match || !match[1])
369
+ return undefined;
370
+ try {
371
+ return decodeURIComponent(match[1]);
372
+ }
373
+ catch {
374
+ return match[1];
375
+ }
376
+ }
377
+ const WMS_SERVICE_URL_RE = /\/(?:rest\/services\/([^/?#]+)\/MapServer\/(?:WMS|WMTS)|ogc\/services\/([^/?#]+)\/(?:wms|wmts))/i;
378
+ function parseWmsServiceId(url) {
379
+ const match = WMS_SERVICE_URL_RE.exec(url);
380
+ if (!match)
381
+ return undefined;
382
+ const id = match[1] ?? match[2];
383
+ if (!id)
384
+ return undefined;
385
+ try {
386
+ return decodeURIComponent(id);
387
+ }
388
+ catch {
389
+ return id;
390
+ }
391
+ }
392
+ function requireLocatorUrl(descriptor) {
393
+ const url = descriptor.locator.url;
394
+ if (typeof url !== "string" || url.length === 0) {
395
+ throw new HonuaMapPackageError(`descriptor for "${descriptor.id}" is missing locator.url`, {
396
+ stage: "source-bind",
397
+ detail: { sourceId: descriptor.id, protocol: descriptor.protocol },
398
+ });
399
+ }
400
+ return url;
401
+ }
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Compose the runtime MapLibre style document from a `MapPackage`:
3
+ *
4
+ * mapSpec ─┐
5
+ * styleRefs ─┤──> applyStyleRefs ──> applyTheme ──> composed style
6
+ * theme ─┘
7
+ *
8
+ * `mapSpec` is already MapLibre-compatible (it is a `HonuaStyleSpecification`).
9
+ * Style refs attach paint/layout overrides per layer id; theme tokens are
10
+ * substituted by name against `{theme:key}` placeholders.
11
+ *
12
+ * Resolvers are async so the loader can plug into server-hosted lookup
13
+ * without reopening this module.
14
+ *
15
+ * @module
16
+ */
17
+ import type { HonuaStyleSpecification } from "../style/specification.js";
18
+ import type { HonuaMapPackage, HonuaMapPackageThemeSpec, HonuaStyleRefBody } from "./map-package.js";
19
+ /**
20
+ * Resolver for out-of-band style-ref bodies. Returns the per-layer
21
+ * override map keyed by MapLibre layer id. The default loader assumes
22
+ * inline bodies attached to the package and calls this resolver only
23
+ * when the inline body is absent.
24
+ */
25
+ export type StyleRefResolver = (styleId: string, presetId?: string) => Promise<HonuaStyleRefBody>;
26
+ /** Resolver for out-of-band theme bodies; called only when `mapPackage.theme` is absent. */
27
+ export type ThemeResolver = (themeId: string) => Promise<HonuaMapPackageThemeSpec>;
28
+ export interface StyleComposeOptions {
29
+ resolveStyleRef?: StyleRefResolver;
30
+ resolveTheme?: ThemeResolver;
31
+ }
32
+ /** Compose a MapLibre-ready style from the `MapPackage`. */
33
+ export declare function composeStyle(pkg: HonuaMapPackage, mapSpecWithSources: HonuaStyleSpecification, options: StyleComposeOptions): Promise<HonuaStyleSpecification>;
34
+ /**
35
+ * Merge style-ref layer overrides onto the base style. Each ref's body is
36
+ * keyed by layer id; unknown layer ids are ignored (they may target
37
+ * layers emitted by an adapter plugin).
38
+ */
39
+ export declare function applyStyleRefs(base: HonuaStyleSpecification, pkg: HonuaMapPackage, resolve?: StyleRefResolver): Promise<HonuaStyleSpecification>;
40
+ /**
41
+ * Substitute `{theme:key}` placeholders in string paint/layout values with
42
+ * the corresponding theme token. Values that resolve to nothing are left
43
+ * untouched so authors can spot missing tokens at review time.
44
+ */
45
+ export declare function applyTheme(style: HonuaStyleSpecification, theme: HonuaMapPackageThemeSpec): HonuaStyleSpecification;
46
+ //# sourceMappingURL=style-compose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style-compose.d.ts","sourceRoot":"","sources":["../../../src/runtime/style-compose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAA2B,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAElG,OAAO,KAAK,EACV,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EAElB,MAAM,kBAAkB,CAAC;AAE1B;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAElG,4FAA4F;AAC5F,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAEnF,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B;AAED,4DAA4D;AAC5D,wBAAsB,YAAY,CAChC,GAAG,EAAE,eAAe,EACpB,kBAAkB,EAAE,uBAAuB,EAC3C,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,uBAAuB,CAAC,CAalC;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,uBAAuB,EAC7B,GAAG,EAAE,eAAe,EACpB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,uBAAuB,CAAC,CAuBlC;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,wBAAwB,GAAG,uBAAuB,CAMnH"}