@honua/react 0.0.20-alpha.0 → 0.1.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (363) hide show
  1. package/contract/discovery.d.ts +231 -0
  2. package/contract/discovery.d.ts.map +1 -0
  3. package/contract/discovery.js +554 -0
  4. package/contract/edit-sketch.d.ts +8 -0
  5. package/contract/edit-sketch.d.ts.map +1 -1
  6. package/contract/edit-sketch.js +15 -0
  7. package/contract/edit-snapping.d.ts +160 -0
  8. package/contract/edit-snapping.d.ts.map +1 -0
  9. package/contract/edit-snapping.js +675 -0
  10. package/contract/generated/projjson-v0.7-crs-validator.d.ts +35 -0
  11. package/contract/generated/projjson-v0.7-crs-validator.d.ts.map +1 -0
  12. package/contract/generated/projjson-v0.7-crs-validator.js +3941 -0
  13. package/contract/index.d.ts +12 -1
  14. package/contract/index.d.ts.map +1 -1
  15. package/contract/index.js +4 -0
  16. package/contract/pmtiles.d.ts +193 -0
  17. package/contract/pmtiles.d.ts.map +1 -0
  18. package/contract/pmtiles.js +195 -0
  19. package/contract/protocol-module.d.ts +70 -0
  20. package/contract/protocol-module.d.ts.map +1 -0
  21. package/contract/protocol-module.js +1 -0
  22. package/contract/schema-envelope.d.ts +26 -0
  23. package/contract/schema-envelope.d.ts.map +1 -0
  24. package/contract/schema-envelope.js +25 -0
  25. package/contract/schema.d.ts +582 -0
  26. package/contract/schema.d.ts.map +1 -0
  27. package/contract/schema.js +2483 -0
  28. package/contract/source-capability-support.d.ts +6 -0
  29. package/contract/source-capability-support.d.ts.map +1 -0
  30. package/contract/source-capability-support.js +154 -0
  31. package/contract/source.d.ts +57 -15
  32. package/contract/source.d.ts.map +1 -1
  33. package/contract/source.js +368 -65
  34. package/contract/types.d.ts +171 -6
  35. package/contract/types.d.ts.map +1 -1
  36. package/contract/types.js +14 -14
  37. package/core/auth/client-credentials-provider.d.ts +51 -0
  38. package/core/auth/client-credentials-provider.d.ts.map +1 -0
  39. package/core/auth/client-credentials-provider.js +115 -0
  40. package/core/auth/credential-store.d.ts +52 -0
  41. package/core/auth/credential-store.d.ts.map +1 -0
  42. package/core/auth/credential-store.js +82 -0
  43. package/core/auth/index.d.ts +23 -0
  44. package/core/auth/index.d.ts.map +1 -0
  45. package/core/auth/index.js +20 -0
  46. package/core/auth/oauth2-provider.d.ts +114 -0
  47. package/core/auth/oauth2-provider.d.ts.map +1 -0
  48. package/core/auth/oauth2-provider.js +408 -0
  49. package/core/auth/pkce.d.ts +25 -0
  50. package/core/auth/pkce.d.ts.map +1 -0
  51. package/core/auth/pkce.js +46 -0
  52. package/core/auth/static-providers.d.ts +20 -0
  53. package/core/auth/static-providers.d.ts.map +1 -0
  54. package/core/auth/static-providers.js +26 -0
  55. package/core/auth/token-endpoint.d.ts +40 -0
  56. package/core/auth/token-endpoint.d.ts.map +1 -0
  57. package/core/auth/token-endpoint.js +133 -0
  58. package/core/auth/types.d.ts +144 -0
  59. package/core/auth/types.d.ts.map +1 -0
  60. package/core/auth/types.js +8 -0
  61. package/core/bounded-json.d.ts +4 -0
  62. package/core/bounded-json.d.ts.map +1 -0
  63. package/core/bounded-json.js +38 -0
  64. package/core/cache-state.d.ts +9 -0
  65. package/core/cache-state.d.ts.map +1 -1
  66. package/core/cache-state.js +10 -0
  67. package/core/capabilities-xml.d.ts +33 -0
  68. package/core/capabilities-xml.d.ts.map +1 -0
  69. package/core/capabilities-xml.js +331 -0
  70. package/core/client.d.ts +35 -2
  71. package/core/client.d.ts.map +1 -1
  72. package/core/client.js +167 -29
  73. package/core/error-classifications.d.ts +153 -0
  74. package/core/error-classifications.d.ts.map +1 -0
  75. package/core/error-classifications.js +140 -0
  76. package/core/error-code-registry.d.ts +158 -0
  77. package/core/error-code-registry.d.ts.map +1 -0
  78. package/core/error-code-registry.js +143 -0
  79. package/core/error-envelope.d.ts +68 -0
  80. package/core/error-envelope.d.ts.map +1 -0
  81. package/core/error-envelope.js +357 -0
  82. package/core/errors.d.ts +73 -25
  83. package/core/errors.d.ts.map +1 -1
  84. package/core/errors.js +113 -46
  85. package/core/geoparquet-sql.d.ts +190 -0
  86. package/core/geoparquet-sql.d.ts.map +1 -0
  87. package/core/geoparquet-sql.js +368 -0
  88. package/core/odata-key-path.d.ts +12 -0
  89. package/core/odata-key-path.d.ts.map +1 -0
  90. package/core/odata-key-path.js +28 -0
  91. package/core/odata-write-codec.d.ts +66 -0
  92. package/core/odata-write-codec.d.ts.map +1 -0
  93. package/core/odata-write-codec.js +1083 -0
  94. package/core/odata.d.ts +59 -7
  95. package/core/odata.d.ts.map +1 -1
  96. package/core/odata.js +431 -99
  97. package/core/ogc-endpoint-layout.d.ts +70 -0
  98. package/core/ogc-endpoint-layout.d.ts.map +1 -0
  99. package/core/ogc-endpoint-layout.js +173 -0
  100. package/core/ogc-features.d.ts.map +1 -1
  101. package/core/ogc-features.js +35 -17
  102. package/core/ogc-maps.d.ts +7 -0
  103. package/core/ogc-maps.d.ts.map +1 -1
  104. package/core/ogc-maps.js +46 -7
  105. package/core/ogc-processes.d.ts +2 -1
  106. package/core/ogc-processes.d.ts.map +1 -1
  107. package/core/ogc-processes.js +33 -5
  108. package/core/ogc-records.d.ts +9 -0
  109. package/core/ogc-records.d.ts.map +1 -1
  110. package/core/ogc-records.js +78 -29
  111. package/core/ogc-tiles.d.ts +10 -1
  112. package/core/ogc-tiles.d.ts.map +1 -1
  113. package/core/ogc-tiles.js +56 -17
  114. package/core/path-utils.d.ts +9 -0
  115. package/core/path-utils.d.ts.map +1 -1
  116. package/core/path-utils.js +19 -0
  117. package/core/protocol-transport.d.ts +1 -0
  118. package/core/protocol-transport.d.ts.map +1 -1
  119. package/core/request-pipeline.d.ts.map +1 -1
  120. package/core/request-pipeline.js +1 -1
  121. package/core/spatial-filter.d.ts +8 -4
  122. package/core/spatial-filter.d.ts.map +1 -1
  123. package/core/spatial-filter.js +206 -16
  124. package/core/stac-static.d.ts +55 -0
  125. package/core/stac-static.d.ts.map +1 -0
  126. package/core/stac-static.js +386 -0
  127. package/core/stac.d.ts +12 -0
  128. package/core/stac.d.ts.map +1 -1
  129. package/core/stac.js +45 -15
  130. package/core/surfaces.d.ts +13 -0
  131. package/core/surfaces.d.ts.map +1 -1
  132. package/core/surfaces.js +127 -16
  133. package/core/types.d.ts +174 -7
  134. package/core/types.d.ts.map +1 -1
  135. package/core/wfs-capabilities.d.ts +12 -0
  136. package/core/wfs-capabilities.d.ts.map +1 -1
  137. package/core/wfs-capabilities.js +22 -3
  138. package/core/wfs.d.ts +13 -0
  139. package/core/wfs.d.ts.map +1 -1
  140. package/core/wfs.js +35 -5
  141. package/core/wms-capabilities.d.ts +56 -84
  142. package/core/wms-capabilities.d.ts.map +1 -1
  143. package/core/wms-capabilities.js +212 -509
  144. package/core/wmts-capabilities.d.ts +62 -62
  145. package/core/wmts-capabilities.d.ts.map +1 -1
  146. package/core/wmts-capabilities.js +224 -371
  147. package/esri-compat/editor.d.ts +8 -0
  148. package/esri-compat/editor.d.ts.map +1 -1
  149. package/esri-compat/editor.js +13 -0
  150. package/esri-compat/feature-layer.d.ts +2 -0
  151. package/esri-compat/feature-layer.d.ts.map +1 -1
  152. package/esri-compat/feature-layer.js +1 -0
  153. package/esri-compat/identity-manager.d.ts +43 -0
  154. package/esri-compat/identity-manager.d.ts.map +1 -1
  155. package/esri-compat/identity-manager.js +131 -1
  156. package/esri-compat/layer-list.d.ts +11 -0
  157. package/esri-compat/layer-list.d.ts.map +1 -1
  158. package/esri-compat/layer-list.js +49 -0
  159. package/esri-compat/legend.d.ts +10 -0
  160. package/esri-compat/legend.d.ts.map +1 -1
  161. package/esri-compat/legend.js +27 -0
  162. package/esri-compat/oauth-info.d.ts +15 -0
  163. package/esri-compat/oauth-info.d.ts.map +1 -1
  164. package/esri-compat/oauth-info.js +27 -0
  165. package/esri-compat/portal.d.ts +197 -0
  166. package/esri-compat/portal.d.ts.map +1 -0
  167. package/esri-compat/portal.js +251 -0
  168. package/esri-compat/renderer-objects.d.ts +40 -0
  169. package/esri-compat/renderer-objects.d.ts.map +1 -0
  170. package/esri-compat/renderer-objects.js +62 -0
  171. package/esri-compat/sketch.d.ts +43 -0
  172. package/esri-compat/sketch.d.ts.map +1 -1
  173. package/esri-compat/sketch.js +46 -0
  174. package/esri-compat/snapping.d.ts +43 -0
  175. package/esri-compat/snapping.d.ts.map +1 -0
  176. package/esri-compat/snapping.js +45 -0
  177. package/esri-compat/url.d.ts.map +1 -1
  178. package/esri-compat/url.js +1 -1
  179. package/esri-compat/widget-host.d.ts +84 -0
  180. package/esri-compat/widget-host.d.ts.map +1 -0
  181. package/esri-compat/widget-host.js +159 -0
  182. package/filter-registry/index.d.ts +145 -0
  183. package/filter-registry/index.d.ts.map +1 -0
  184. package/filter-registry/index.js +531 -0
  185. package/generated-app/errors.d.ts +18 -2
  186. package/generated-app/errors.d.ts.map +1 -1
  187. package/generated-app/errors.js +44 -11
  188. package/map/automatic-mount-integration.d.ts +134 -0
  189. package/map/automatic-mount-integration.d.ts.map +1 -0
  190. package/map/automatic-mount-integration.js +305 -0
  191. package/map/automatic-source-strategy.d.ts +125 -0
  192. package/map/automatic-source-strategy.d.ts.map +1 -0
  193. package/map/automatic-source-strategy.js +494 -0
  194. package/map/data-to-map-bridge.d.ts +293 -0
  195. package/map/data-to-map-bridge.d.ts.map +1 -0
  196. package/map/data-to-map-bridge.js +817 -0
  197. package/map/geojson-projection.d.ts +33 -0
  198. package/map/geojson-projection.d.ts.map +1 -0
  199. package/map/geojson-projection.js +118 -0
  200. package/map/index.d.ts +14 -0
  201. package/map/index.d.ts.map +1 -1
  202. package/map/index.js +8 -0
  203. package/map/raster-source-spec.d.ts +30 -0
  204. package/map/raster-source-spec.d.ts.map +1 -0
  205. package/map/raster-source-spec.js +190 -0
  206. package/map/raster-source-strategy.d.ts +65 -0
  207. package/map/raster-source-strategy.d.ts.map +1 -0
  208. package/map/raster-source-strategy.js +232 -0
  209. package/map/source-to-maplibre.d.ts +91 -0
  210. package/map/source-to-maplibre.d.ts.map +1 -0
  211. package/map/source-to-maplibre.js +454 -0
  212. package/map/temporal-playback.d.ts +139 -0
  213. package/map/temporal-playback.d.ts.map +1 -0
  214. package/map/temporal-playback.js +247 -0
  215. package/package.json +19 -1
  216. package/query-planner/canonical.d.ts +7 -0
  217. package/query-planner/canonical.d.ts.map +1 -0
  218. package/query-planner/canonical.js +145 -0
  219. package/query-planner/cql2-json.d.ts +17 -0
  220. package/query-planner/cql2-json.d.ts.map +1 -0
  221. package/query-planner/cql2-json.js +646 -0
  222. package/query-planner/diagnostics.d.ts +35 -0
  223. package/query-planner/diagnostics.d.ts.map +1 -0
  224. package/query-planner/diagnostics.js +373 -0
  225. package/query-planner/duckdb.d.ts +79 -0
  226. package/query-planner/duckdb.d.ts.map +1 -0
  227. package/query-planner/duckdb.js +758 -0
  228. package/query-planner/execution-context.d.ts +5 -0
  229. package/query-planner/execution-context.d.ts.map +1 -0
  230. package/query-planner/execution-context.js +50 -0
  231. package/query-planner/executor.d.ts +5 -0
  232. package/query-planner/executor.d.ts.map +1 -0
  233. package/query-planner/executor.js +223 -0
  234. package/query-planner/geoservices.d.ts +91 -0
  235. package/query-planner/geoservices.d.ts.map +1 -0
  236. package/query-planner/geoservices.js +667 -0
  237. package/query-planner/grpc.d.ts +100 -0
  238. package/query-planner/grpc.d.ts.map +1 -0
  239. package/query-planner/grpc.js +736 -0
  240. package/query-planner/index.d.ts +44 -0
  241. package/query-planner/index.d.ts.map +1 -0
  242. package/query-planner/index.js +30 -0
  243. package/query-planner/ir.d.ts +20 -0
  244. package/query-planner/ir.d.ts.map +1 -0
  245. package/query-planner/ir.js +417 -0
  246. package/query-planner/local-aggregate.d.ts +5 -0
  247. package/query-planner/local-aggregate.d.ts.map +1 -0
  248. package/query-planner/local-aggregate.js +126 -0
  249. package/query-planner/odata.d.ts +48 -0
  250. package/query-planner/odata.d.ts.map +1 -0
  251. package/query-planner/odata.js +662 -0
  252. package/query-planner/ogc-compiler.d.ts +55 -0
  253. package/query-planner/ogc-compiler.d.ts.map +1 -0
  254. package/query-planner/ogc-compiler.js +480 -0
  255. package/query-planner/ogc-features.d.ts +53 -0
  256. package/query-planner/ogc-features.d.ts.map +1 -0
  257. package/query-planner/ogc-features.js +617 -0
  258. package/query-planner/planner.d.ts +17 -0
  259. package/query-planner/planner.d.ts.map +1 -0
  260. package/query-planner/planner.js +818 -0
  261. package/query-planner/resource.d.ts +94 -0
  262. package/query-planner/resource.d.ts.map +1 -0
  263. package/query-planner/resource.js +526 -0
  264. package/query-planner/semantic-canonical.d.ts +15 -0
  265. package/query-planner/semantic-canonical.d.ts.map +1 -0
  266. package/query-planner/semantic-canonical.js +62 -0
  267. package/query-planner/semantic-compat.d.ts +10 -0
  268. package/query-planner/semantic-compat.d.ts.map +1 -0
  269. package/query-planner/semantic-compat.js +35 -0
  270. package/query-planner/semantic-compiler.d.ts +64 -0
  271. package/query-planner/semantic-compiler.d.ts.map +1 -0
  272. package/query-planner/semantic-compiler.js +81 -0
  273. package/query-planner/semantic-literals.d.ts +30 -0
  274. package/query-planner/semantic-literals.d.ts.map +1 -0
  275. package/query-planner/semantic-literals.js +133 -0
  276. package/query-planner/semantic-types.d.ts +265 -0
  277. package/query-planner/semantic-types.d.ts.map +1 -0
  278. package/query-planner/semantic-types.js +1 -0
  279. package/query-planner/semantic.d.ts +54 -0
  280. package/query-planner/semantic.d.ts.map +1 -0
  281. package/query-planner/semantic.js +1421 -0
  282. package/query-planner/types.d.ts +560 -0
  283. package/query-planner/types.d.ts.map +1 -0
  284. package/query-planner/types.js +49 -0
  285. package/query-planner/wfs-semantic.d.ts +58 -0
  286. package/query-planner/wfs-semantic.d.ts.map +1 -0
  287. package/query-planner/wfs-semantic.js +547 -0
  288. package/query-planner/wfs.d.ts +6 -0
  289. package/query-planner/wfs.d.ts.map +1 -0
  290. package/query-planner/wfs.js +71 -0
  291. package/react/external-map.d.ts +67 -0
  292. package/react/external-map.d.ts.map +1 -0
  293. package/react/external-map.js +63 -0
  294. package/react/honua-map.d.ts.map +1 -1
  295. package/react/honua-map.js +3 -2
  296. package/react/honua-source-layer.d.ts +110 -0
  297. package/react/honua-source-layer.d.ts.map +1 -0
  298. package/react/honua-source-layer.js +101 -0
  299. package/react/hooks.d.ts +28 -0
  300. package/react/hooks.d.ts.map +1 -1
  301. package/react/hooks.js +26 -4
  302. package/react/index.d.ts +8 -0
  303. package/react/index.d.ts.map +1 -1
  304. package/react/index.js +5 -0
  305. package/react/query-cache.d.ts +26 -4
  306. package/react/query-cache.d.ts.map +1 -1
  307. package/react/query-cache.js +51 -8
  308. package/react/selection.d.ts +177 -0
  309. package/react/selection.d.ts.map +1 -0
  310. package/react/selection.js +0 -0
  311. package/react/use-mounted-source.d.ts +69 -0
  312. package/react/use-mounted-source.d.ts.map +1 -0
  313. package/react/use-mounted-source.js +346 -0
  314. package/runtime/edit-snapping.d.ts +107 -0
  315. package/runtime/edit-snapping.d.ts.map +1 -0
  316. package/runtime/edit-snapping.js +190 -0
  317. package/runtime/errors.d.ts +3 -2
  318. package/runtime/errors.d.ts.map +1 -1
  319. package/runtime/errors.js +19 -2
  320. package/runtime/index.d.ts +8 -2
  321. package/runtime/index.d.ts.map +1 -1
  322. package/runtime/index.js +4 -4
  323. package/runtime/load-package.d.ts.map +1 -1
  324. package/runtime/load-package.js +8 -0
  325. package/runtime/map-package-validation.d.ts +0 -13
  326. package/runtime/map-package-validation.d.ts.map +1 -1
  327. package/runtime/map-package-validation.js +0 -12
  328. package/runtime/map-package.d.ts +1 -1
  329. package/runtime/map-package.d.ts.map +1 -1
  330. package/runtime/maplibre-renderer.d.ts +41 -0
  331. package/runtime/maplibre-renderer.d.ts.map +1 -0
  332. package/runtime/maplibre-renderer.js +322 -0
  333. package/runtime/pmtiles-protocol.d.ts +77 -0
  334. package/runtime/pmtiles-protocol.d.ts.map +1 -0
  335. package/runtime/pmtiles-protocol.js +120 -0
  336. package/runtime/query-tiles.d.ts +2 -1
  337. package/runtime/query-tiles.d.ts.map +1 -1
  338. package/runtime/query-tiles.js +6 -2
  339. package/runtime/source-bridge.d.ts +4 -4
  340. package/runtime/source-bridge.d.ts.map +1 -1
  341. package/runtime/source-bridge.js +36 -56
  342. package/runtime/style-interactions.d.ts +3 -2
  343. package/runtime/style-interactions.d.ts.map +1 -1
  344. package/runtime/style-interactions.js +11 -3
  345. package/runtime/terra-draw-sketch.d.ts +275 -0
  346. package/runtime/terra-draw-sketch.d.ts.map +1 -0
  347. package/runtime/terra-draw-sketch.js +404 -0
  348. package/source-capability-registry.d.ts +1 -0
  349. package/source-capability-registry.js +1 -0
  350. package/source-capability-types.d.ts +186 -0
  351. package/source-capability-types.js +7 -0
  352. package/style/index.d.ts +2 -0
  353. package/style/index.d.ts.map +1 -1
  354. package/style/index.js +2 -0
  355. package/style/renderers.d.ts +326 -0
  356. package/style/renderers.d.ts.map +1 -0
  357. package/style/renderers.js +517 -0
  358. package/webmap/convert-renderer.d.ts +24 -3
  359. package/webmap/convert-renderer.d.ts.map +1 -1
  360. package/webmap/convert-renderer.js +93 -112
  361. package/webmap/index.d.ts +1 -1
  362. package/webmap/index.d.ts.map +1 -1
  363. package/webmap/index.js +1 -1
package/runtime/errors.js CHANGED
@@ -6,6 +6,7 @@
6
6
  *
7
7
  * @module
8
8
  */
9
+ import { HonuaSdkError, mergeHonuaErrorContext } from "../core/error-envelope.js";
9
10
  /**
10
11
  * Thrown for runtime-level binding failures. Per-source / per-request
11
12
  * protocol failures keep their existing error classes
@@ -19,13 +20,18 @@
19
20
  * query-time rejections forwarded by mixed-source consumers — see
20
21
  * `docs/composition.md`.
21
22
  */
22
- export class HonuaMapPackageError extends Error {
23
+ export class HonuaMapPackageError extends HonuaSdkError {
23
24
  packageId;
24
25
  stage;
25
26
  detail;
26
27
  cause;
27
28
  constructor(message, options) {
28
- super(message);
29
+ super(MAP_PACKAGE_ERROR_CODES[options.stage], message, {
30
+ cause: options.cause,
31
+ operationId: options.operationId,
32
+ requestId: options.requestId,
33
+ context: mergeHonuaErrorContext(options.context, { packageId: options.packageId, stage: options.stage }),
34
+ });
29
35
  this.name = "HonuaMapPackageError";
30
36
  this.packageId = options.packageId;
31
37
  this.stage = options.stage;
@@ -33,3 +39,14 @@ export class HonuaMapPackageError extends Error {
33
39
  this.cause = options.cause;
34
40
  }
35
41
  }
42
+ const MAP_PACKAGE_ERROR_CODES = {
43
+ fetch: "runtime.map-package.fetch",
44
+ load: "runtime.map-package.load",
45
+ validate: "runtime.map-package.validate",
46
+ update: "runtime.map-package.update",
47
+ "style-compose": "runtime.map-package.style-compose",
48
+ "source-bind": "runtime.map-package.source-bind",
49
+ view: "runtime.map-package.view",
50
+ popup: "runtime.map-package.popup",
51
+ dispose: "runtime.map-package.dispose",
52
+ };
@@ -22,6 +22,8 @@
22
22
  */
23
23
  export { loadMapPackage } from "./load-package.js";
24
24
  export type { LoadMapPackageOptions, SourceErrorPolicy } from "./load-package.js";
25
+ export { maplibreRenderer } from "./maplibre-renderer.js";
26
+ export type { MapLibreRendererFactoryOptions, MapLibreRendererMap, MapLibreRendererOptions, MapLibreRendererPeer, } from "./maplibre-renderer.js";
25
27
  export { BoundedMapPackageFetchCache, DEFAULT_MAP_PACKAGE_CACHE_LIMIT, DEFAULT_MAP_PACKAGE_PATH_PREFIX, defaultMapPackagePath, fetchMapPackage, loadMapPackageFromId, mapPackageFingerprint, resolveMapPackagePath, } from "./map-package-fetch.js";
26
28
  export type { FetchMapPackageOptions, FetchMapPackageResult, LoadMapPackageFromIdOptions, LoadMapPackageFromIdResult, MapPackageFetchCache, MapPackageFetchCacheEntry, MapPackageFetchCacheState, MapPackageFetchCacheStatus, MapPackageLocator, MapPackagePathResolver, } from "./map-package-fetch.js";
27
29
  export { MAP_PACKAGE_REALTIME_CHANNEL_V1, createMapPackageServerSentEventsTransport, decodeMapPackageRealtimeMessage, encodeMapPackageRealtimeUrl, readMapPackageRealtimeAdvertisement, } from "./map-package-realtime.js";
@@ -30,8 +32,6 @@ export { watchMapPackage } from "./map-package-watch.js";
30
32
  export type { MapPackageWatchEvent, MapPackageWatchHandle, WatchMapPackageOptions } from "./map-package-watch.js";
31
33
  export { hasMapPackageDiagnosticErrors, validateMapPackage } from "./map-package-validation.js";
32
34
  export type { HonuaMapPackageDiagnostic, HonuaMapPackageDiagnosticCode, HonuaMapPackageDiagnosticSeverity, ValidateMapPackageOptions, ValidateMapPackageResult, } from "./map-package-validation.js";
33
- export { fromMapPackageValidation, toStudioValidationResponse } from "./map-package-validation.js";
34
- export type { StudioPackageDiagnostic, StudioPackageDiagnosticSeverity, StudioPackageValidationResponse, } from "./map-package-validation.js";
35
35
  export { HonuaMapRuntime } from "./runtime.js";
36
36
  export type { HonuaMapRuntimeInternals, HonuaMapRuntimeReload, HonuaRuntimeEvent, HonuaRuntimeEventListener, HonuaRuntimeTelemetry, HonuaRuntimeTelemetrySpan, HonuaRuntimeTelemetrySpanResult, MaplibreMap, RuntimeHitTestOptions, RuntimePointerInteractionHandler, RuntimePointerInteractionOptions, SetViewStateInput, } from "./runtime.js";
37
37
  export { HONUA_MAP_PACKAGE_FORMAT_V1 } from "./map-package.js";
@@ -44,6 +44,8 @@ export { bindPopup, defaultPopupRenderer } from "./popups.js";
44
44
  export type { BindPopupOptions, PopupBindingHandle, PopupFactory, PopupFeature, PopupHandle, PopupRenderContext, PopupRenderer, } from "./popups.js";
45
45
  export { applyStyleRefs, applyTheme, composeStyle } from "./style-compose.js";
46
46
  export type { StyleComposeOptions, StyleRefResolver, ThemeResolver } from "./style-compose.js";
47
+ export { PMTILES_PROTOCOL_SCHEME, ensurePmtilesProtocol, isPmtilesProtocolRegistered, resetPmtilesProtocol, styleUsesPmtiles, } from "./pmtiles-protocol.js";
48
+ export type { EnsurePmtilesProtocolDeps, MaplibreProtocolRegistrar, PmtilesProtocolLike, PmtilesProtocolModuleLike, } from "./pmtiles-protocol.js";
47
49
  export { DEFAULT_OGC_STYLES_PATH_PREFIX, MAPLIBRE_STYLE_MEDIA_TYPE, OgcStylesClient, createOgcStyleRefResolver, styleDocumentToRefBody, } from "./ogc-styles.js";
48
50
  export type { OgcStyleLink, OgcStyleList, OgcStyleListEntry, OgcStyleRefResolverOptions, OgcStylesClientOptions, OgcStylesRequestOptions, } from "./ogc-styles.js";
49
51
  export { prepareRuntimeStyleSpecValidation, validateRuntimeFilterStyleSpec, validateRuntimeLayerStyleSpec, validateRuntimeSourceStyleSpec, validateRuntimeStyleExpressionStyleSpec, validateRuntimeStyleSpec, } from "./style-spec-validation.js";
@@ -56,4 +58,8 @@ export { diffPackages } from "./diff.js";
56
58
  export type { MapPackageDiff } from "./diff.js";
57
59
  export { HonuaRuntimeDiagnosticError, featureStateTargetFromSelection, featureStateTargetKey, featureTargetForLayer, materializeRuntimeLayer, materializeRuntimeSource, materializeStyleValue, protocolForSource, rendererRuntimeDiagnosticError, resolveFeatureIdFromEventFeature, resolveRuntimeBeforeId, selectionTargetForLayer, sourceContextForLayer, throwRuntimeDiagnostics, validateRuntimeFilterExpression, validateRuntimeLayer, validateRuntimeSource, validateRuntimeStyleExpression, } from "./style-interactions.js";
58
60
  export type { HonuaRuntimeDiagnostic, HonuaRuntimeDiagnosticSeverity, NativeMapLibreSourceSpecification, RuntimeClickInteractionHandler, RuntimeClickInteractionOptions, RuntimeExplorationSelectionOptions, RuntimeFeatureInteractionEvent, RuntimeFeatureStateTarget, RuntimeFilterExpression, RuntimeHoverInteractionOptions, RuntimeLayerOrder, RuntimeLayerOrderOptions, RuntimeLayerSpecification, RuntimeLayerUpdate, RuntimeLayoutSpecification, RuntimePaintSpecification, RuntimeSelectionInteractionOptions, RuntimeSourceSpecification, RuntimeStyleValue, } from "./style-interactions.js";
61
+ export { bindEditSketchSnapping } from "./edit-snapping.js";
62
+ export type { BindEditSketchSnappingOptions, EditSketchSnapIndicatorOptions, EditSketchSnappingEvents, EditSketchSnappingHandle, SnappingMap, } from "./edit-snapping.js";
63
+ export { TERRA_DRAW_SKETCH_TOOL_MODES, bindTerraDrawSketch, createTerraDrawSketch, createTerraDrawSnapping, editSketchToolForTerraDrawMode, terraDrawSketchToolCapabilities, } from "./terra-draw-sketch.js";
64
+ export type { BindTerraDrawSketchOptions, CreateTerraDrawSketchOptions, CreateTerraDrawSnappingOptions, TerraDrawSketchController, TerraDrawSketchFeature, TerraDrawSketchFeatureId, TerraDrawSketchFinishContext, TerraDrawSketchFinishEvent, TerraDrawSketchHandle, TerraDrawSketchInstance, TerraDrawSnapContext, TerraDrawSnapEvent, } from "./terra-draw-sketch.js";
59
65
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"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"}
package/runtime/index.js CHANGED
@@ -21,23 +21,23 @@
21
21
  * @packageDocumentation
22
22
  */
23
23
  export { loadMapPackage } from "./load-package.js";
24
+ export { maplibreRenderer } from "./maplibre-renderer.js";
24
25
  export { BoundedMapPackageFetchCache, DEFAULT_MAP_PACKAGE_CACHE_LIMIT, DEFAULT_MAP_PACKAGE_PATH_PREFIX, defaultMapPackagePath, fetchMapPackage, loadMapPackageFromId, mapPackageFingerprint, resolveMapPackagePath, } from "./map-package-fetch.js";
25
26
  export { MAP_PACKAGE_REALTIME_CHANNEL_V1, createMapPackageServerSentEventsTransport, decodeMapPackageRealtimeMessage, encodeMapPackageRealtimeUrl, readMapPackageRealtimeAdvertisement, } from "./map-package-realtime.js";
26
27
  export { watchMapPackage } from "./map-package-watch.js";
27
28
  export { hasMapPackageDiagnosticErrors, validateMapPackage } from "./map-package-validation.js";
28
- // Experimental bridge to the unified Studio validation envelope. Reachable
29
- // from the same path map-package consumers already use; the full Studio
30
- // contract lives at `@honua/sdk-js/studio`.
31
- export { fromMapPackageValidation, toStudioValidationResponse } from "./map-package-validation.js";
32
29
  export { HonuaMapRuntime } from "./runtime.js";
33
30
  export { HONUA_MAP_PACKAGE_FORMAT_V1 } from "./map-package.js";
34
31
  export { HonuaMapPackageError } from "./errors.js";
35
32
  export { buildLegend } from "./legend.js";
36
33
  export { bindPopup, defaultPopupRenderer } from "./popups.js";
37
34
  export { applyStyleRefs, applyTheme, composeStyle } from "./style-compose.js";
35
+ export { PMTILES_PROTOCOL_SCHEME, ensurePmtilesProtocol, isPmtilesProtocolRegistered, resetPmtilesProtocol, styleUsesPmtiles, } from "./pmtiles-protocol.js";
38
36
  export { DEFAULT_OGC_STYLES_PATH_PREFIX, MAPLIBRE_STYLE_MEDIA_TYPE, OgcStylesClient, createOgcStyleRefResolver, styleDocumentToRefBody, } from "./ogc-styles.js";
39
37
  export { prepareRuntimeStyleSpecValidation, validateRuntimeFilterStyleSpec, validateRuntimeLayerStyleSpec, validateRuntimeSourceStyleSpec, validateRuntimeStyleExpressionStyleSpec, validateRuntimeStyleSpec, } from "./style-spec-validation.js";
40
38
  export { buildWmsRasterSourceSpec, buildWmtsRasterSourceSpec, projectSourceBindings, toHonuaSourceSpec, } from "./source-bridge.js";
41
39
  export { QueryTileRequestController, buildMapLibreQueryTileSourceSpec, buildQueryTileJson, buildQueryTileUrl, buildQueryTileUrlTemplate, createQueryTileRequestController, diagnoseQueryTileSourceSupport, fetchQueryTileFeatureDetail, fetchQueryTileJson, queryTilesForViewport, QueryTileServerResponseError, } from "./query-tiles.js";
42
40
  export { diffPackages } from "./diff.js";
43
41
  export { HonuaRuntimeDiagnosticError, featureStateTargetFromSelection, featureStateTargetKey, featureTargetForLayer, materializeRuntimeLayer, materializeRuntimeSource, materializeStyleValue, protocolForSource, rendererRuntimeDiagnosticError, resolveFeatureIdFromEventFeature, resolveRuntimeBeforeId, selectionTargetForLayer, sourceContextForLayer, throwRuntimeDiagnostics, validateRuntimeFilterExpression, validateRuntimeLayer, validateRuntimeSource, validateRuntimeStyleExpression, } from "./style-interactions.js";
42
+ export { bindEditSketchSnapping } from "./edit-snapping.js";
43
+ export { TERRA_DRAW_SKETCH_TOOL_MODES, bindTerraDrawSketch, createTerraDrawSketch, createTerraDrawSnapping, editSketchToolForTerraDrawMode, terraDrawSketchToolCapabilities, } from "./terra-draw-sketch.js";
@@ -1 +1 @@
1
- {"version":3,"file":"load-package.d.ts","sourceRoot":"","sources":["../../../src/runtime/load-package.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAuC,KAAK,cAAc,EAAiB,MAAM,sBAAsB,CAAC;AAC/G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,OAAO,EAA+B,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAErF,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EACL,eAAe,EAEf,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAgB,MAAM,oBAAoB,CAAC;AAG7F,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAEjF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,WAAW,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IACpC,+DAA+D;IAC/D,MAAM,EAAE,WAAW,CAAC;IACpB;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC;;;;OAIG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC,mGAAmG;IACnG,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B;;;;OAIG;IACH,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,qFAAqF;IACrF,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,8EAA8E;IAC9E,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,qFAAqF;IACrF,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,qFAAqF;IACrF,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,8BAA8B,CAAC;CAC1D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CA6M1B"}
1
+ {"version":3,"file":"load-package.d.ts","sourceRoot":"","sources":["../../../src/runtime/load-package.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAuC,KAAK,cAAc,EAAiB,MAAM,sBAAsB,CAAC;AAC/G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,OAAO,EAA+B,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGrF,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EACL,eAAe,EAEf,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAgB,MAAM,oBAAoB,CAAC;AAG7F,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAEjF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,WAAW,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IACpC,+DAA+D;IAC/D,MAAM,EAAE,WAAW,CAAC;IACpB;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC;;;;OAIG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC,mGAAmG;IACnG,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B;;;;OAIG;IACH,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,qFAAqF;IACrF,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,8EAA8E;IAC9E,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,qFAAqF;IACrF,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,qFAAqF;IACrF,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,8BAA8B,CAAC;CAC1D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAoN1B"}
@@ -12,6 +12,7 @@ import { HonuaMap } from "../map/honua-map.js";
12
12
  import { HonuaMapPackageError } from "./errors.js";
13
13
  import { HONUA_MAP_PACKAGE_FORMAT_V1 } from "./map-package.js";
14
14
  import { createOgcStyleRefResolver } from "./ogc-styles.js";
15
+ import { ensurePmtilesProtocol, styleUsesPmtiles } from "./pmtiles-protocol.js";
15
16
  import { HonuaMapRuntime, } from "./runtime.js";
16
17
  import { projectSourceBindings, toHonuaSourceSpec } from "./source-bridge.js";
17
18
  import { composeStyle } from "./style-compose.js";
@@ -124,6 +125,13 @@ export async function loadMapPackage(pkg, map, options) {
124
125
  resolveStyleRef: styleRefResolver,
125
126
  resolveTheme: options.resolveTheme,
126
127
  });
128
+ // Auto-register the MapLibre `pmtiles://` protocol before the caller (or
129
+ // `runtime.reload`) hands this style to `map.setStyle`, so PMTiles-backed
130
+ // sources render with no manual `addProtocol` wiring. Idempotent across
131
+ // maps and no-ops (zero import cost) when no source uses PMTiles.
132
+ if (styleUsesPmtiles(composed)) {
133
+ await ensurePmtilesProtocol();
134
+ }
127
135
  return { composed, dataset, honuaMap, failedSources };
128
136
  };
129
137
  try {
@@ -27,17 +27,4 @@ export interface ValidateMapPackageResult {
27
27
  */
28
28
  export declare function validateMapPackage(value: unknown, options?: ValidateMapPackageOptions): ValidateMapPackageResult;
29
29
  export declare function hasMapPackageDiagnosticErrors(diagnostics: readonly HonuaMapPackageDiagnostic[]): boolean;
30
- /**
31
- * Compatibility bridge to the unified Studio validation envelope. The map
32
- * family keeps {@link ValidateMapPackageResult} as its native result;
33
- * {@link fromMapPackageValidation} and {@link toStudioValidationResponse}
34
- * adapt it (and any other family result) into a
35
- * `StudioPackageValidationResponse` without changing existing types. See
36
- * `@honua/sdk-js/studio` for the full Studio contract surface.
37
- *
38
- * @experimental The Studio contract surface is not yet covered by the SDK's
39
- * semver contract and may change in any minor release prior to `1.0.0`.
40
- */
41
- export { fromMapPackageValidation, toStudioValidationResponse } from "../studio/validation.js";
42
- export type { StudioPackageDiagnostic, StudioPackageDiagnosticSeverity, StudioPackageValidationResponse, } from "../studio/validation.js";
43
30
  //# sourceMappingURL=map-package-validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"map-package-validation.d.ts","sourceRoot":"","sources":["../../../src/runtime/map-package-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAErF,MAAM,MAAM,iCAAiC,GAAG,OAAO,GAAG,SAAS,CAAC;AAEpE,MAAM,MAAM,6BAA6B,GACrC,iBAAiB,GACjB,oBAAoB,GACpB,wBAAwB,GACxB,yBAAyB,GACzB,kBAAkB,GAClB,kBAAkB,GAClB,kBAAkB,GAClB,mBAAmB,GACnB,wBAAwB,GACxB,sBAAsB,GACtB,gBAAgB,GAChB,eAAe,GACf,iBAAiB,GACjB,yBAAyB,GACzB,sBAAsB,GACtB,6BAA6B,CAAC;AAElC,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,6BAA6B,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,iCAAiC,CAAC;IACrD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,iFAAiF;IACjF,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gGAAgG;IAChG,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,UAAU,EAAE,eAAe,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC3D,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAgBD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,yBAA8B,GAAG,wBAAwB,CA2HpH;AAED,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,SAAS,yBAAyB,EAAE,GAAG,OAAO,CAExG;AAkID;;;;;;;;;;GAUG;AACH,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAC/F,YAAY,EACV,uBAAuB,EACvB,+BAA+B,EAC/B,+BAA+B,GAChC,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"map-package-validation.d.ts","sourceRoot":"","sources":["../../../src/runtime/map-package-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAErF,MAAM,MAAM,iCAAiC,GAAG,OAAO,GAAG,SAAS,CAAC;AAEpE,MAAM,MAAM,6BAA6B,GACrC,iBAAiB,GACjB,oBAAoB,GACpB,wBAAwB,GACxB,yBAAyB,GACzB,kBAAkB,GAClB,kBAAkB,GAClB,kBAAkB,GAClB,mBAAmB,GACnB,wBAAwB,GACxB,sBAAsB,GACtB,gBAAgB,GAChB,eAAe,GACf,iBAAiB,GACjB,yBAAyB,GACzB,sBAAsB,GACtB,6BAA6B,CAAC;AAElC,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,6BAA6B,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,iCAAiC,CAAC;IACrD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,iFAAiF;IACjF,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gGAAgG;IAChG,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,UAAU,EAAE,eAAe,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC3D,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAgBD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,yBAA8B,GAAG,wBAAwB,CA2HpH;AAED,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,SAAS,yBAAyB,EAAE,GAAG,OAAO,CAExG"}
@@ -255,15 +255,3 @@ function parseTimestampMs(value) {
255
255
  function isRecord(value) {
256
256
  return typeof value === "object" && value !== null && !Array.isArray(value);
257
257
  }
258
- /**
259
- * Compatibility bridge to the unified Studio validation envelope. The map
260
- * family keeps {@link ValidateMapPackageResult} as its native result;
261
- * {@link fromMapPackageValidation} and {@link toStudioValidationResponse}
262
- * adapt it (and any other family result) into a
263
- * `StudioPackageValidationResponse` without changing existing types. See
264
- * `@honua/sdk-js/studio` for the full Studio contract surface.
265
- *
266
- * @experimental The Studio contract surface is not yet covered by the SDK's
267
- * semver contract and may change in any minor release prior to `1.0.0`.
268
- */
269
- export { fromMapPackageValidation, toStudioValidationResponse } from "../studio/validation.js";
@@ -23,7 +23,7 @@ export type HonuaMapPackageStatus = "Draft" | "Composing" | "Ready" | "Failed" |
23
23
  * server wire format. Translated to the SDK's kebab-case `Protocol`
24
24
  * union in `source-bridge.ts`.
25
25
  */
26
- export type HonuaMapPackageProtocol = "geoservices_feature_service" | "geoservices_map_service" | "ogc_features" | "ogc_maps" | "ogc_tiles" | "wfs" | "wms" | "wmts" | "odata" | "vector_tile" | "raster_tile" | "workspace_artifact";
26
+ export type HonuaMapPackageProtocol = "geoservices_feature_service" | "geoservices_map_service" | "ogc_features" | "ogc_maps" | "ogc_tiles" | "wfs" | "wms" | "wmts" | "odata" | "vector_tile" | "raster_tile" | "pmtiles" | "workspace_artifact";
27
27
  /** Protocol-specific endpoint information attached to a binding. */
28
28
  export interface HonuaMapPackageLocator {
29
29
  url?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"map-package.d.ts","sourceRoot":"","sources":["../../../src/runtime/map-package.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"map-package.d.ts","sourceRoot":"","sources":["../../../src/runtime/map-package.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { RendererAdapter } from "../kernel/renderer.js";
2
+ import { type ExplainAutomaticMapLibreOptions, type SourceToMapLibreMap } from "../map/index.js";
3
+ import type { PmtilesProtocolModuleLike } from "./pmtiles-protocol.js";
4
+ /** MapLibre module slice consumed from the caller-injected optional peer. */
5
+ export interface MapLibreRendererPeer {
6
+ /** Runtime-validated so the real MapLibre constructor remains structurally injectable. */
7
+ readonly Map?: unknown;
8
+ readonly addProtocol?: unknown;
9
+ readonly removeProtocol?: unknown;
10
+ readonly default?: unknown;
11
+ }
12
+ /** Host slice added to the existing source-mutation contract for lifecycle readiness. */
13
+ export interface MapLibreRendererMap extends SourceToMapLibreMap {
14
+ loaded?(): boolean;
15
+ /** Mirrors MapLibre v5, which returns void after the style has been destroyed. */
16
+ isStyleLoaded?(): boolean | void;
17
+ getStyle?(): unknown;
18
+ once?(event: string, listener: () => void): unknown;
19
+ off?(event: string, listener: () => void): unknown;
20
+ triggerRepaint?(): void;
21
+ remove?(): void;
22
+ }
23
+ export interface MapLibreRendererFactoryOptions {
24
+ /** Inject PMTiles only when PMTiles sources are expected; no package is loaded implicitly. */
25
+ readonly pmtiles?: PmtilesProtocolModuleLike;
26
+ }
27
+ /** Adapter-specific construction and automatic-strategy controls. */
28
+ export interface MapLibreRendererOptions extends Omit<ExplainAutomaticMapLibreOptions, "queryPlan"> {
29
+ /** Map-constructor options for an owned selector/element target; invalid for an existing map host. */
30
+ readonly mapOptions?: Readonly<Record<string, unknown>>;
31
+ /** Defaults to `render`, the first frame that can contain the mounted layer. */
32
+ readonly firstFrameEvent?: "render" | "idle";
33
+ }
34
+ /**
35
+ * Create an executable MapLibre adapter without importing `maplibre-gl`.
36
+ * The supplied module is retained only on this adapter instance. `style` and
37
+ * `rendererOptions.mapOptions` configure owned map construction; an existing
38
+ * map must already carry its caller-owned construction state.
39
+ */
40
+ export declare function maplibreRenderer(peer: MapLibreRendererPeer, options?: MapLibreRendererFactoryOptions): RendererAdapter<"maplibre", MapLibreRendererMap, MapLibreRendererOptions>;
41
+ //# sourceMappingURL=maplibre-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maplibre-renderer.d.ts","sourceRoot":"","sources":["../../../src/runtime/maplibre-renderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EAKhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,KAAK,+BAA+B,EAEpC,KAAK,mBAAmB,EAGzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAGvE,6EAA6E;AAC7E,MAAM,WAAW,oBAAoB;IACnC,0FAA0F;IAC1F,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAQD,yFAAyF;AACzF,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,MAAM,CAAC,IAAI,OAAO,CAAC;IACnB,kFAAkF;IAClF,aAAa,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,IAAI,OAAO,CAAC;IACrB,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC;IACpD,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC;IACnD,cAAc,CAAC,IAAI,IAAI,CAAC;IACxB,MAAM,CAAC,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,8BAA8B;IAC7C,8FAA8F;IAC9F,QAAQ,CAAC,OAAO,CAAC,EAAE,yBAAyB,CAAC;CAC9C;AAED,qEAAqE;AACrE,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CAAC,+BAA+B,EAAE,WAAW,CAAC;IACjG,sGAAsG;IACtG,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,gFAAgF;IAChF,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CAC9C;AAQD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,oBAAoB,EAC1B,OAAO,GAAE,8BAAmC,GAC3C,eAAe,CAAC,UAAU,EAAE,mBAAmB,EAAE,uBAAuB,CAAC,CA6G3E"}
@@ -0,0 +1,322 @@
1
+ import { HonuaAbortError } from "../core/errors.js";
2
+ import { HonuaAutomaticMapLibreStrategyError, explainAutomaticSourceToMapLibre, mountAutomaticSourceToMapLibre, } from "../map/index.js";
3
+ import { ensurePmtilesProtocol } from "./pmtiles-protocol.js";
4
+ const EMPTY_STYLE = Object.freeze({
5
+ version: 8,
6
+ sources: Object.freeze({}),
7
+ layers: Object.freeze([]),
8
+ });
9
+ /**
10
+ * Create an executable MapLibre adapter without importing `maplibre-gl`.
11
+ * The supplied module is retained only on this adapter instance. `style` and
12
+ * `rendererOptions.mapOptions` configure owned map construction; an existing
13
+ * map must already carry its caller-owned construction state.
14
+ */
15
+ export function maplibreRenderer(peer, options = {}) {
16
+ const maplibre = maplibrePeer(peer);
17
+ const pmtiles = options.pmtiles;
18
+ return Object.freeze({
19
+ kind: "maplibre",
20
+ environments: Object.freeze(["browser"]),
21
+ peer,
22
+ defaultOwnership(target) {
23
+ return isMapHost(target) ? "borrowed" : "owned";
24
+ },
25
+ async mount(target, request) {
26
+ const rendererOptions = request.rendererOptions ?? {};
27
+ const host = resolveMapHost(maplibre, target, request, rendererOptions);
28
+ const map = host.map;
29
+ try {
30
+ await waitUntilStyleReady(map, request.signal, host.owned);
31
+ let queryPlan = request.queryPlan;
32
+ let plan = explainAutomaticSourceToMapLibre(request.source, {
33
+ ...automaticOptions(rendererOptions),
34
+ ...(queryPlan === undefined ? {} : { queryPlan }),
35
+ });
36
+ const queryCandidate = plan.candidates.find((candidate) => candidate.strategy === "geojson-query");
37
+ if (queryPlan !== undefined && queryCandidate?.reason === "plan-context-mismatch") {
38
+ throw new HonuaAutomaticMapLibreStrategyError("stale-plan", "The accepted query plan no longer matches the mounted source.");
39
+ }
40
+ if (request.queryIntent === "explicit" &&
41
+ plan.selected !== undefined &&
42
+ plan.selected.strategy !== "geojson-query") {
43
+ throw new HonuaAutomaticMapLibreStrategyError("no-eligible-strategy", `The selected ${plan.selected.strategy} strategy cannot apply the explicit query. Select the geojson-query override or omit the query.`);
44
+ }
45
+ if (plan.selected === undefined && queryCandidate?.reason === "missing-query-plan") {
46
+ queryPlan = await request.planQuery();
47
+ plan = explainAutomaticSourceToMapLibre(request.source, {
48
+ ...automaticOptions(rendererOptions),
49
+ queryPlan,
50
+ });
51
+ }
52
+ if (plan.selected?.strategy.startsWith("pmtiles")) {
53
+ if (pmtiles === undefined || typeof maplibre.addProtocol !== "function") {
54
+ throw new HonuaAutomaticMapLibreStrategyError("no-eligible-strategy", "PMTiles mounting requires caller-injected MapLibre and PMTiles protocol peers.");
55
+ }
56
+ const registrar = {
57
+ addProtocol: (scheme, handler) => maplibre.addProtocol(scheme, handler),
58
+ ...(typeof maplibre.removeProtocol === "function"
59
+ ? { removeProtocol: (scheme) => maplibre.removeProtocol(scheme) }
60
+ : {}),
61
+ };
62
+ await ensurePmtilesProtocol({ maplibre: registrar, pmtilesModule: pmtiles });
63
+ }
64
+ const mounted = await mountAutomaticSourceToMapLibre(map, request.source, plan, {
65
+ ...automaticOptions(rendererOptions),
66
+ ...(queryPlan === undefined ? {} : { queryPlan }),
67
+ ...request.execution,
68
+ signal: request.signal,
69
+ });
70
+ let disposePromise;
71
+ const dispose = () => {
72
+ if (disposePromise !== undefined)
73
+ return disposePromise;
74
+ disposePromise = disposeMapLibreSession(mounted.dispose, host);
75
+ return disposePromise;
76
+ };
77
+ const ready = firstUsableFrame(map, rendererOptions.firstFrameEvent ?? "render", request.signal).catch(async (error) => {
78
+ try {
79
+ await dispose();
80
+ }
81
+ catch (cleanupError) {
82
+ throw new AggregateError([error, cleanupError], "MapLibre readiness and rollback failed");
83
+ }
84
+ throw error;
85
+ });
86
+ return {
87
+ raw: map,
88
+ diagnostics: mounted.diagnostics,
89
+ ready,
90
+ async refresh(refreshOptions = {}) {
91
+ const signal = combineSignals(request.signal, refreshOptions.signal);
92
+ throwIfAborted(signal);
93
+ await mounted.refresh({ ...request.execution, signal });
94
+ await firstUsableFrame(map, rendererOptions.firstFrameEvent ?? "render", signal);
95
+ },
96
+ dispose,
97
+ };
98
+ }
99
+ catch (error) {
100
+ if (host.owned) {
101
+ try {
102
+ host.map.remove?.();
103
+ }
104
+ catch (cleanupError) {
105
+ throw new AggregateError([error, cleanupError], "MapLibre mount and owned-host rollback failed");
106
+ }
107
+ }
108
+ throw error;
109
+ }
110
+ },
111
+ });
112
+ }
113
+ function automaticOptions(options) {
114
+ const { mapOptions: _mapOptions, firstFrameEvent: _firstFrameEvent, ...automatic } = options;
115
+ return automatic;
116
+ }
117
+ function maplibrePeer(value) {
118
+ if (typeof value !== "object" || value === null)
119
+ throw new TypeError("maplibreRenderer() requires an injected peer.");
120
+ const fallback = value.default !== null && typeof value.default === "object" ? value.default : undefined;
121
+ const MapConstructor = fallback?.Map ?? value.Map;
122
+ const addProtocol = value.addProtocol ?? fallback?.addProtocol;
123
+ const removeProtocol = value.removeProtocol ?? fallback?.removeProtocol;
124
+ return Object.freeze({
125
+ ...(typeof MapConstructor === "function" ? { Map: MapConstructor } : {}),
126
+ ...(typeof addProtocol === "function"
127
+ ? { addProtocol: addProtocol }
128
+ : {}),
129
+ ...(typeof removeProtocol === "function"
130
+ ? { removeProtocol: removeProtocol }
131
+ : {}),
132
+ });
133
+ }
134
+ function resolveMapHost(peer, target, request, options) {
135
+ if (isMapHost(target)) {
136
+ if (request.style !== undefined) {
137
+ throw new TypeError("MapLibre style is an owned-host construction option and cannot be applied to an existing map.");
138
+ }
139
+ if (options.mapOptions !== undefined) {
140
+ throw new TypeError("MapLibre mapOptions are owned-host construction options and cannot be applied to an existing map.");
141
+ }
142
+ assertReadinessHost(target);
143
+ if (request.ownership === "owned")
144
+ assertOwnedHost(target);
145
+ return { map: target, owned: request.ownership === "owned" };
146
+ }
147
+ if (request.ownership === "borrowed") {
148
+ throw new TypeError("A selector or element target cannot be borrowed without an existing MapLibre map.");
149
+ }
150
+ const MapConstructor = peer.Map;
151
+ if (typeof MapConstructor !== "function") {
152
+ throw new TypeError("The injected MapLibre peer does not expose a Map constructor.");
153
+ }
154
+ const style = request.style === undefined || request.style === "auto" ? EMPTY_STYLE : request.style;
155
+ const map = new MapConstructor({ ...options.mapOptions, container: target, style });
156
+ if (!isMapHost(map)) {
157
+ removeHostCandidate(map);
158
+ throw new TypeError("The injected MapLibre Map constructor returned an incompatible host.");
159
+ }
160
+ try {
161
+ assertReadinessHost(map);
162
+ assertOwnedHost(map);
163
+ }
164
+ catch (error) {
165
+ removeHostCandidate(map);
166
+ throw error;
167
+ }
168
+ return { map, owned: true };
169
+ }
170
+ function assertReadinessHost(map) {
171
+ if (typeof map.once !== "function" || typeof map.off !== "function" || typeof map.triggerRepaint !== "function") {
172
+ throw new HonuaAutomaticMapLibreStrategyError("map-mutation-failed", "The MapLibre host does not expose once(), off(), and triggerRepaint(); first-frame readiness is unavailable.");
173
+ }
174
+ }
175
+ function assertOwnedHost(map) {
176
+ if (typeof map.remove !== "function") {
177
+ throw new HonuaAutomaticMapLibreStrategyError("map-mutation-failed", "An owned MapLibre host must expose remove() for deterministic disposal.");
178
+ }
179
+ }
180
+ function removeHostCandidate(value) {
181
+ if (typeof value !== "object" || value === null)
182
+ return;
183
+ try {
184
+ const remove = value.remove;
185
+ if (typeof remove === "function")
186
+ Reflect.apply(remove, value, []);
187
+ }
188
+ catch {
189
+ // The incompatible host error remains the primary construction failure.
190
+ }
191
+ }
192
+ function isMapHost(value) {
193
+ if (typeof value !== "object" || value === null)
194
+ return false;
195
+ try {
196
+ const map = value;
197
+ return (typeof map.getSource === "function" &&
198
+ typeof map.addSource === "function" &&
199
+ typeof map.removeSource === "function" &&
200
+ typeof map.getLayer === "function" &&
201
+ typeof map.addLayer === "function" &&
202
+ typeof map.removeLayer === "function");
203
+ }
204
+ catch {
205
+ return false;
206
+ }
207
+ }
208
+ async function waitUntilStyleReady(map, signal, owned) {
209
+ throwIfAborted(signal);
210
+ assertReadinessHost(map);
211
+ const event = owned ? "load" : "style.load";
212
+ if (typeof map.isStyleLoaded === "function") {
213
+ const isReady = () => map.isStyleLoaded?.() === true;
214
+ while (!isReady()) {
215
+ await (owned
216
+ ? waitForEvent(map, event, signal, isReady)
217
+ : waitForAnyEvent(map, [event, "data"], signal, isReady));
218
+ }
219
+ return;
220
+ }
221
+ if (typeof map.loaded === "function") {
222
+ const isReady = () => map.loaded?.() === true;
223
+ while (!isReady())
224
+ await waitForEvent(map, event, signal, isReady);
225
+ return;
226
+ }
227
+ if (!owned && typeof map.getStyle === "function" && map.getStyle() !== undefined)
228
+ return;
229
+ await waitForEvent(map, event, signal);
230
+ }
231
+ async function firstUsableFrame(map, event, signal) {
232
+ throwIfAborted(signal);
233
+ assertReadinessHost(map);
234
+ const frame = waitForEvent(map, event, signal);
235
+ map.triggerRepaint();
236
+ await frame;
237
+ }
238
+ function waitForEvent(map, event, signal, isReady) {
239
+ return waitForAnyEvent(map, [event], signal, isReady);
240
+ }
241
+ function waitForAnyEvent(map, events, signal, isReady) {
242
+ return new Promise((resolve, reject) => {
243
+ let settled = false;
244
+ const cleanup = () => {
245
+ signal.removeEventListener("abort", aborted);
246
+ for (const event of events)
247
+ map.off(event, completed);
248
+ };
249
+ const completed = () => {
250
+ if (settled)
251
+ return;
252
+ settled = true;
253
+ cleanup();
254
+ resolve();
255
+ };
256
+ const aborted = () => {
257
+ if (settled)
258
+ return;
259
+ settled = true;
260
+ cleanup();
261
+ reject(new HonuaAbortError());
262
+ };
263
+ signal.addEventListener("abort", aborted, { once: true });
264
+ if (signal.aborted) {
265
+ aborted();
266
+ return;
267
+ }
268
+ try {
269
+ for (const event of events) {
270
+ if (settled)
271
+ break;
272
+ map.once(event, completed);
273
+ }
274
+ if (isReady?.())
275
+ completed();
276
+ if (signal.aborted) {
277
+ if (settled)
278
+ for (const event of events)
279
+ map.off(event, completed);
280
+ else
281
+ aborted();
282
+ }
283
+ }
284
+ catch (error) {
285
+ settled = true;
286
+ cleanup();
287
+ reject(error);
288
+ }
289
+ });
290
+ }
291
+ function disposeMapLibreSession(disposeMounted, host) {
292
+ return Promise.resolve().then(() => {
293
+ const failures = [];
294
+ try {
295
+ disposeMounted();
296
+ }
297
+ catch (error) {
298
+ failures.push(error);
299
+ }
300
+ if (host.owned) {
301
+ try {
302
+ host.map.remove?.();
303
+ }
304
+ catch (error) {
305
+ failures.push(error);
306
+ }
307
+ }
308
+ if (failures.length === 1)
309
+ throw failures[0];
310
+ if (failures.length > 1)
311
+ throw new AggregateError(failures, "MapLibre mounted-session cleanup failed");
312
+ });
313
+ }
314
+ function combineSignals(primary, secondary) {
315
+ if (secondary === undefined || secondary === primary)
316
+ return primary;
317
+ return AbortSignal.any([primary, secondary]);
318
+ }
319
+ function throwIfAborted(signal) {
320
+ if (signal.aborted)
321
+ throw new HonuaAbortError();
322
+ }