@honua/react 0.1.2-beta.0 → 0.1.7-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 (295) hide show
  1. package/contract/discovery.d.ts +34 -0
  2. package/contract/discovery.d.ts.map +1 -1
  3. package/contract/index.d.ts +7 -5
  4. package/contract/index.d.ts.map +1 -1
  5. package/contract/index.js +3 -2
  6. package/contract/pmtiles.d.ts +10 -1
  7. package/contract/pmtiles.d.ts.map +1 -1
  8. package/contract/pmtiles.js +10 -2
  9. package/contract/protocol-module.d.ts +84 -9
  10. package/contract/protocol-module.d.ts.map +1 -1
  11. package/contract/query-filter-fes.d.ts +18 -0
  12. package/contract/query-filter-fes.d.ts.map +1 -0
  13. package/contract/query-filter-fes.js +122 -0
  14. package/contract/query-filter.d.ts +300 -0
  15. package/contract/query-filter.d.ts.map +1 -0
  16. package/contract/query-filter.js +883 -0
  17. package/contract/schema.d.ts +12 -0
  18. package/contract/schema.d.ts.map +1 -1
  19. package/contract/schema.js +34 -0
  20. package/contract/source-capability-support.d.ts.map +1 -1
  21. package/contract/source-capability-support.js +15 -3
  22. package/contract/source.d.ts +45 -25
  23. package/contract/source.d.ts.map +1 -1
  24. package/contract/source.js +719 -479
  25. package/contract/types.d.ts +88 -19
  26. package/contract/types.d.ts.map +1 -1
  27. package/contract/types.js +4 -0
  28. package/contract/widget-source.d.ts.map +1 -1
  29. package/core/client.d.ts +51 -21
  30. package/core/client.d.ts.map +1 -1
  31. package/core/client.js +234 -54
  32. package/core/error-classifications.d.ts +23 -0
  33. package/core/error-classifications.d.ts.map +1 -1
  34. package/core/error-classifications.js +23 -0
  35. package/core/error-code-registry.d.ts +24 -1
  36. package/core/error-code-registry.d.ts.map +1 -1
  37. package/core/error-code-registry.js +23 -0
  38. package/core/error-envelope.js +2 -0
  39. package/core/errors.d.ts +2 -2
  40. package/core/errors.d.ts.map +1 -1
  41. package/core/errors.js +1 -1
  42. package/core/geoparquet-sql.d.ts +69 -5
  43. package/core/geoparquet-sql.d.ts.map +1 -1
  44. package/core/geoparquet-sql.js +327 -10
  45. package/core/odata-write-codec.d.ts.map +1 -1
  46. package/core/odata-write-codec.js +0 -1
  47. package/core/odata.d.ts +6 -0
  48. package/core/odata.d.ts.map +1 -1
  49. package/core/odata.js +6 -1
  50. package/core/ogc-processes.d.ts +182 -25
  51. package/core/ogc-processes.d.ts.map +1 -1
  52. package/core/ogc-processes.js +602 -30
  53. package/core/process-runner.d.ts +8 -1
  54. package/core/process-runner.d.ts.map +1 -1
  55. package/core/process-runner.js +1 -0
  56. package/core/protocol-transport.d.ts +2 -0
  57. package/core/protocol-transport.d.ts.map +1 -1
  58. package/core/stac.d.ts +32 -0
  59. package/core/stac.d.ts.map +1 -1
  60. package/core/stac.js +158 -23
  61. package/core/surfaces.d.ts.map +1 -1
  62. package/core/surfaces.js +273 -68
  63. package/core/types.d.ts +138 -11
  64. package/core/types.d.ts.map +1 -1
  65. package/core/wfs-axis-order.d.ts +18 -0
  66. package/core/wfs-axis-order.d.ts.map +1 -0
  67. package/core/wfs-axis-order.js +108 -0
  68. package/core/wfs-capabilities.d.ts +65 -24
  69. package/core/wfs-capabilities.d.ts.map +1 -1
  70. package/core/wfs-capabilities.js +237 -27
  71. package/core/wfs-filter.d.ts +26 -3
  72. package/core/wfs-filter.d.ts.map +1 -1
  73. package/core/wfs-filter.js +48 -53
  74. package/core/wfs-protocol-error.d.ts +12 -0
  75. package/core/wfs-protocol-error.d.ts.map +1 -0
  76. package/core/wfs-protocol-error.js +13 -0
  77. package/core/wfs.d.ts +53 -1
  78. package/core/wfs.d.ts.map +1 -1
  79. package/core/wfs.js +251 -29
  80. package/core/wms-feature-info.d.ts +92 -0
  81. package/core/wms-feature-info.d.ts.map +1 -0
  82. package/core/wms-feature-info.js +285 -0
  83. package/core/wms.d.ts +9 -0
  84. package/core/wms.d.ts.map +1 -1
  85. package/core/wms.js +17 -5
  86. package/esri-compat/event-bus.d.ts +20 -0
  87. package/esri-compat/event-bus.d.ts.map +1 -1
  88. package/esri-compat/feature-filter.d.ts +46 -1
  89. package/esri-compat/feature-filter.d.ts.map +1 -1
  90. package/esri-compat/feature-filter.js +49 -0
  91. package/esri-compat/geojson-layer.d.ts +4 -2
  92. package/esri-compat/geojson-layer.d.ts.map +1 -1
  93. package/esri-compat/geojson-layer.js +4 -2
  94. package/esri-compat/identity-manager.js +2 -2
  95. package/esri-compat/imagery-layer.d.ts +2 -1
  96. package/esri-compat/imagery-layer.d.ts.map +1 -1
  97. package/esri-compat/imagery-layer.js +2 -1
  98. package/esri-compat/layer-list.d.ts +8 -1
  99. package/esri-compat/layer-list.d.ts.map +1 -1
  100. package/esri-compat/layer-list.js +11 -4
  101. package/esri-compat/legend.d.ts.map +1 -1
  102. package/esri-compat/legend.js +1 -1
  103. package/esri-compat/locator.d.ts +297 -0
  104. package/esri-compat/locator.d.ts.map +1 -0
  105. package/esri-compat/locator.js +579 -0
  106. package/esri-compat/map-image-layer.d.ts.map +1 -1
  107. package/esri-compat/map-view.d.ts.map +1 -1
  108. package/esri-compat/map-view.js +1 -1
  109. package/esri-compat/scene-view.d.ts.map +1 -1
  110. package/esri-compat/time-slider.d.ts +29 -0
  111. package/esri-compat/time-slider.d.ts.map +1 -1
  112. package/esri-compat/time-slider.js +117 -0
  113. package/esri-compat/wfs-layer.d.ts +2 -1
  114. package/esri-compat/wfs-layer.d.ts.map +1 -1
  115. package/esri-compat/wfs-layer.js +2 -1
  116. package/esri-compat/widget-host.d.ts +42 -6
  117. package/esri-compat/widget-host.d.ts.map +1 -1
  118. package/esri-compat/widget-host.js +99 -10
  119. package/generated-app/projection.d.ts.map +1 -1
  120. package/generated-app/runtime.d.ts.map +1 -1
  121. package/interactions/declarative-contract.d.ts +149 -0
  122. package/interactions/declarative-contract.d.ts.map +1 -0
  123. package/interactions/declarative-contract.js +293 -0
  124. package/interactions/declarative.d.ts +198 -0
  125. package/interactions/declarative.d.ts.map +1 -0
  126. package/interactions/declarative.js +470 -0
  127. package/interactions/feature-state.d.ts +7 -0
  128. package/interactions/feature-state.d.ts.map +1 -1
  129. package/interactions/feature-state.js +10 -2
  130. package/map/data-to-map-bridge.d.ts +1 -1
  131. package/map/data-to-map-bridge.d.ts.map +1 -1
  132. package/map/data-to-map-bridge.js +1 -2
  133. package/map/honua-map.d.ts.map +1 -1
  134. package/map/honua-map.js +1 -1
  135. package/map/index.d.ts +2 -0
  136. package/map/index.d.ts.map +1 -1
  137. package/map/index.js +2 -0
  138. package/map/maplibre-target.js +1 -1
  139. package/map/realtime-reconciliation-adapter.d.ts +98 -0
  140. package/map/realtime-reconciliation-adapter.d.ts.map +1 -0
  141. package/map/realtime-reconciliation-adapter.js +84 -0
  142. package/map/temporal-playback.d.ts +25 -0
  143. package/map/temporal-playback.d.ts.map +1 -1
  144. package/map/temporal-playback.js +29 -1
  145. package/package.json +4 -3
  146. package/query-planner/canonical-filter.d.ts +30 -0
  147. package/query-planner/canonical-filter.d.ts.map +1 -0
  148. package/query-planner/canonical-filter.js +30 -0
  149. package/query-planner/columnar-plan.d.ts +63 -0
  150. package/query-planner/columnar-plan.d.ts.map +1 -0
  151. package/query-planner/columnar-plan.js +94 -0
  152. package/query-planner/diagnostics.d.ts +3 -3
  153. package/query-planner/diagnostics.d.ts.map +1 -1
  154. package/query-planner/diagnostics.js +17 -4
  155. package/query-planner/duckdb.d.ts.map +1 -1
  156. package/query-planner/duckdb.js +16 -2
  157. package/query-planner/execution-context.d.ts.map +1 -1
  158. package/query-planner/execution-context.js +3 -1
  159. package/query-planner/executor.d.ts.map +1 -1
  160. package/query-planner/executor.js +7 -1
  161. package/query-planner/geoservices.d.ts.map +1 -1
  162. package/query-planner/geoservices.js +24 -5
  163. package/query-planner/grpc.d.ts.map +1 -1
  164. package/query-planner/grpc.js +29 -5
  165. package/query-planner/index.d.ts +20 -5
  166. package/query-planner/index.d.ts.map +1 -1
  167. package/query-planner/index.js +16 -3
  168. package/query-planner/ir.d.ts +6 -1
  169. package/query-planner/ir.d.ts.map +1 -1
  170. package/query-planner/ir.js +63 -1
  171. package/query-planner/odata-protocol-module.d.ts +54 -0
  172. package/query-planner/odata-protocol-module.d.ts.map +1 -0
  173. package/query-planner/odata-protocol-module.js +199 -0
  174. package/query-planner/odata-v1.d.ts +23 -0
  175. package/query-planner/odata-v1.d.ts.map +1 -0
  176. package/query-planner/odata-v1.js +202 -0
  177. package/query-planner/odata.d.ts +0 -3
  178. package/query-planner/odata.d.ts.map +1 -1
  179. package/query-planner/odata.js +0 -143
  180. package/query-planner/ogc-features.d.ts.map +1 -1
  181. package/query-planner/ogc-features.js +23 -1
  182. package/query-planner/planner.d.ts +2 -2
  183. package/query-planner/planner.d.ts.map +1 -1
  184. package/query-planner/planner.js +146 -27
  185. package/query-planner/representation.d.ts +59 -0
  186. package/query-planner/representation.d.ts.map +1 -0
  187. package/query-planner/representation.js +140 -0
  188. package/query-planner/types.d.ts +153 -3
  189. package/query-planner/types.d.ts.map +1 -1
  190. package/query-planner/wfs-protocol-module.d.ts +57 -0
  191. package/query-planner/wfs-protocol-module.d.ts.map +1 -0
  192. package/query-planner/wfs-protocol-module.js +731 -0
  193. package/query-planner/wfs-v1.d.ts +41 -0
  194. package/query-planner/wfs-v1.d.ts.map +1 -0
  195. package/query-planner/wfs-v1.js +366 -0
  196. package/query-planner/wfs.d.ts +1 -3
  197. package/query-planner/wfs.d.ts.map +1 -1
  198. package/query-planner/wfs.js +1 -70
  199. package/react/honua-map.d.ts +3 -1
  200. package/react/honua-map.d.ts.map +1 -1
  201. package/react/honua-map.js +11 -1
  202. package/react/hooks.d.ts +1 -1
  203. package/react/hooks.js +1 -1
  204. package/react/selection.d.ts.map +1 -1
  205. package/react/selection.js +0 -0
  206. package/react/use-mounted-source.d.ts +1 -1
  207. package/react/use-mounted-source.js +1 -1
  208. package/realtime/checkpoint-store.d.ts +206 -0
  209. package/realtime/checkpoint-store.d.ts.map +1 -0
  210. package/realtime/checkpoint-store.js +504 -0
  211. package/realtime/contract.d.ts +142 -0
  212. package/realtime/contract.d.ts.map +1 -0
  213. package/realtime/contract.js +154 -0
  214. package/realtime/exploration.d.ts +16 -0
  215. package/realtime/exploration.d.ts.map +1 -0
  216. package/realtime/exploration.js +32 -0
  217. package/realtime/honua-server.d.ts +131 -0
  218. package/realtime/honua-server.d.ts.map +1 -0
  219. package/realtime/honua-server.js +302 -0
  220. package/realtime/index.d.ts +39 -0
  221. package/realtime/index.d.ts.map +1 -0
  222. package/realtime/index.js +26 -0
  223. package/realtime/odata-delta.d.ts +114 -0
  224. package/realtime/odata-delta.d.ts.map +1 -0
  225. package/realtime/odata-delta.js +483 -0
  226. package/realtime/projections.d.ts +30 -0
  227. package/realtime/projections.d.ts.map +1 -0
  228. package/realtime/projections.js +51 -0
  229. package/realtime/reconciliation.d.ts +245 -0
  230. package/realtime/reconciliation.d.ts.map +1 -0
  231. package/realtime/reconciliation.js +377 -0
  232. package/realtime/reducer.d.ts +14 -0
  233. package/realtime/reducer.d.ts.map +1 -0
  234. package/realtime/reducer.js +351 -0
  235. package/realtime/resumable-transport.d.ts +111 -0
  236. package/realtime/resumable-transport.d.ts.map +1 -0
  237. package/realtime/resumable-transport.js +406 -0
  238. package/realtime/resumable.d.ts +104 -0
  239. package/realtime/resumable.d.ts.map +1 -0
  240. package/realtime/resumable.js +632 -0
  241. package/realtime/sse.d.ts +23 -0
  242. package/realtime/sse.d.ts.map +1 -0
  243. package/realtime/sse.js +153 -0
  244. package/realtime/store.d.ts +18 -0
  245. package/realtime/store.d.ts.map +1 -0
  246. package/realtime/store.js +63 -0
  247. package/realtime/types.d.ts +190 -0
  248. package/realtime/types.d.ts.map +1 -0
  249. package/realtime/types.js +10 -0
  250. package/realtime/websocket.d.ts +60 -0
  251. package/realtime/websocket.d.ts.map +1 -0
  252. package/realtime/websocket.js +157 -0
  253. package/realtime/wire.d.ts +28 -0
  254. package/realtime/wire.d.ts.map +1 -0
  255. package/realtime/wire.js +73 -0
  256. package/runtime/index.d.ts +6 -2
  257. package/runtime/index.d.ts.map +1 -1
  258. package/runtime/index.js +3 -1
  259. package/runtime/load-package.d.ts +24 -0
  260. package/runtime/load-package.d.ts.map +1 -1
  261. package/runtime/load-package.js +45 -1
  262. package/runtime/maplibre-renderer.d.ts +11 -0
  263. package/runtime/maplibre-renderer.d.ts.map +1 -1
  264. package/runtime/maplibre-renderer.js +32 -7
  265. package/runtime/offline-region-protocol.d.ts +73 -0
  266. package/runtime/offline-region-protocol.d.ts.map +1 -0
  267. package/runtime/offline-region-protocol.js +63 -0
  268. package/runtime/offline-region-style.d.ts +78 -0
  269. package/runtime/offline-region-style.d.ts.map +1 -0
  270. package/runtime/offline-region-style.js +147 -0
  271. package/runtime/pmtiles-protocol.d.ts +7 -8
  272. package/runtime/pmtiles-protocol.d.ts.map +1 -1
  273. package/runtime/pmtiles-protocol.js +19 -66
  274. package/runtime/protocol-registry.d.ts +55 -0
  275. package/runtime/protocol-registry.d.ts.map +1 -0
  276. package/runtime/protocol-registry.js +103 -0
  277. package/runtime/runtime.d.ts +2 -0
  278. package/runtime/runtime.d.ts.map +1 -1
  279. package/runtime/runtime.js +6 -1
  280. package/runtime/style-compose.d.ts.map +1 -1
  281. package/runtime/style-compose.js +78 -9
  282. package/studio/index.d.ts +24 -7
  283. package/studio/index.d.ts.map +1 -1
  284. package/studio/index.js +21 -7
  285. package/studio/lifecycle-client.d.ts +164 -0
  286. package/studio/lifecycle-client.d.ts.map +1 -0
  287. package/studio/lifecycle-client.js +299 -0
  288. package/studio/lifecycle-errors.d.ts +91 -0
  289. package/studio/lifecycle-errors.d.ts.map +1 -0
  290. package/studio/lifecycle-errors.js +77 -0
  291. package/studio/lifecycle-types.d.ts +321 -0
  292. package/studio/lifecycle-types.d.ts.map +1 -0
  293. package/studio/lifecycle-types.js +22 -0
  294. package/webmap/convert-label.js +0 -1
  295. package/webmap/convert-symbol.d.ts.map +1 -1
@@ -6,7 +6,7 @@
6
6
  * remains the public documentation source of truth; `check:error-codes`
7
7
  * verifies the compact table against every descriptor.
8
8
  */
9
- export type HonuaErrorDomain = "core" | "discovery" | "query" | "map" | "runtime" | "realtime" | "offline" | "plugin" | "agent" | "app";
9
+ export type HonuaErrorDomain = "core" | "discovery" | "query" | "map" | "runtime" | "realtime" | "offline" | "plugin" | "pmtiles" | "agent" | "app";
10
10
  export type HonuaErrorCategory = "authentication" | "cancellation" | "capability" | "internal" | "network" | "protocol" | "timeout" | "validation";
11
11
  export interface HonuaErrorCodeDescriptor {
12
12
  readonly domain: HonuaErrorDomain;
@@ -26,6 +26,14 @@ export declare const HONUA_ERROR_CODE_REGISTRY: Readonly<{
26
26
  readonly "core.cancelled": HonuaErrorCodeDescriptor;
27
27
  readonly "core.grpc.transient": HonuaErrorCodeDescriptor;
28
28
  readonly "core.grpc.rejected": HonuaErrorCodeDescriptor;
29
+ readonly "pmtiles.lifecycle.invalid-request": HonuaErrorCodeDescriptor;
30
+ readonly "pmtiles.lifecycle.invalid-response": HonuaErrorCodeDescriptor;
31
+ readonly "pmtiles.lifecycle.response-too-large": HonuaErrorCodeDescriptor;
32
+ readonly "pmtiles.lifecycle.job-poll-timeout": HonuaErrorCodeDescriptor;
33
+ readonly "pmtiles.lifecycle.job-failed": HonuaErrorCodeDescriptor;
34
+ readonly "pmtiles.lifecycle.job-cancelled": HonuaErrorCodeDescriptor;
35
+ readonly "pmtiles.lifecycle.access-url-expired": HonuaErrorCodeDescriptor;
36
+ readonly "pmtiles.lifecycle.manual-cleanup-unsupported": HonuaErrorCodeDescriptor;
29
37
  readonly "core.geometry.unknown-geometry": HonuaErrorCodeDescriptor;
30
38
  readonly "core.geometry.malformed-geometry": HonuaErrorCodeDescriptor;
31
39
  readonly "core.auth.interaction-required": HonuaErrorCodeDescriptor;
@@ -37,12 +45,21 @@ export declare const HONUA_ERROR_CODE_REGISTRY: Readonly<{
37
45
  readonly "core.job-failed": HonuaErrorCodeDescriptor;
38
46
  readonly "core.wms-capabilities-parse": HonuaErrorCodeDescriptor;
39
47
  readonly "core.wmts-capabilities-parse": HonuaErrorCodeDescriptor;
48
+ readonly "core.coverage.invalid-request": HonuaErrorCodeDescriptor;
49
+ readonly "core.coverage.invalid-response": HonuaErrorCodeDescriptor;
50
+ readonly "core.coverage.response-too-large": HonuaErrorCodeDescriptor;
51
+ readonly "core.coverage.unsupported-format": HonuaErrorCodeDescriptor;
52
+ readonly "core.coverage.service-error": HonuaErrorCodeDescriptor;
53
+ readonly "core.coverage.wcs-exception": HonuaErrorCodeDescriptor;
40
54
  readonly "discovery.ambiguous-protocol": HonuaErrorCodeDescriptor;
41
55
  readonly "discovery.ambiguous-source": HonuaErrorCodeDescriptor;
56
+ readonly "discovery.invalid-cloud-native-input": HonuaErrorCodeDescriptor;
57
+ readonly "discovery.invalid-cloud-native-manifest": HonuaErrorCodeDescriptor;
42
58
  readonly "discovery.invalid-endpoint": HonuaErrorCodeDescriptor;
43
59
  readonly "discovery.invalid-cache-identity": HonuaErrorCodeDescriptor;
44
60
  readonly "discovery.invalid-discovery-cache": HonuaErrorCodeDescriptor;
45
61
  readonly "discovery.invalid-capability": HonuaErrorCodeDescriptor;
62
+ readonly "discovery.cloud-native-operation-unavailable": HonuaErrorCodeDescriptor;
46
63
  readonly "discovery.unsupported-protocol": HonuaErrorCodeDescriptor;
47
64
  readonly "discovery.protocol-mismatch": HonuaErrorCodeDescriptor;
48
65
  readonly "query.planning.invalid-query": HonuaErrorCodeDescriptor;
@@ -52,6 +69,7 @@ export declare const HONUA_ERROR_CODE_REGISTRY: Readonly<{
52
69
  readonly "query.planning.fallback-disabled": HonuaErrorCodeDescriptor;
53
70
  readonly "query.planning.unsafe-materialization": HonuaErrorCodeDescriptor;
54
71
  readonly "query.execution.invalid-plan": HonuaErrorCodeDescriptor;
72
+ readonly "query.execution.wfs-protocol": HonuaErrorCodeDescriptor;
55
73
  readonly "query.execution.plan-context-mismatch": HonuaErrorCodeDescriptor;
56
74
  readonly "query.execution.unsafe-materialization": HonuaErrorCodeDescriptor;
57
75
  readonly "query.execution.invalid-resource-handle": HonuaErrorCodeDescriptor;
@@ -106,9 +124,12 @@ export declare const HONUA_ERROR_CODE_REGISTRY: Readonly<{
106
124
  readonly "realtime.checkpoint.invalid": HonuaErrorCodeDescriptor;
107
125
  readonly "realtime.sequence.gap": HonuaErrorCodeDescriptor;
108
126
  readonly "realtime.protocol.terminal": HonuaErrorCodeDescriptor;
127
+ readonly "realtime.reconciliation.disposed": HonuaErrorCodeDescriptor;
128
+ readonly "realtime.reconciliation.invalid-option": HonuaErrorCodeDescriptor;
109
129
  readonly "offline.region.validation": HonuaErrorCodeDescriptor;
110
130
  readonly "offline.region.quota": HonuaErrorCodeDescriptor;
111
131
  readonly "offline.region.integrity": HonuaErrorCodeDescriptor;
132
+ readonly "offline.region.miss": HonuaErrorCodeDescriptor;
112
133
  readonly "offline.cancelled": HonuaErrorCodeDescriptor;
113
134
  readonly "offline.transport.failure": HonuaErrorCodeDescriptor;
114
135
  readonly "offline.transport.transient": HonuaErrorCodeDescriptor;
@@ -153,6 +174,8 @@ export declare const HONUA_ERROR_CODE_REGISTRY: Readonly<{
153
174
  readonly "app.data-load-failed": HonuaErrorCodeDescriptor;
154
175
  readonly "app.render-failed": HonuaErrorCodeDescriptor;
155
176
  readonly "app.disposed": HonuaErrorCodeDescriptor;
177
+ readonly "app.export-unsafe": HonuaErrorCodeDescriptor;
178
+ readonly "app.export-failed": HonuaErrorCodeDescriptor;
156
179
  }>;
157
180
  export type HonuaErrorCode = keyof typeof HONUA_ERROR_CODE_REGISTRY;
158
181
  //# sourceMappingURL=error-code-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"error-code-registry.d.ts","sourceRoot":"","sources":["../../../src/core/error-code-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,WAAW,GACX,OAAO,GACP,KAAK,GACL,SAAS,GACT,UAAU,GACV,SAAS,GACT,QAAQ,GACR,OAAO,GACP,KAAK,CAAC;AAEV,MAAM,MAAM,kBAAkB,GAC1B,gBAAgB,GAChB,cAAc,GACd,YAAY,GACZ,UAAU,GACV,SAAS,GACT,UAAU,GACV,SAAS,GACT,YAAY,CAAC;AAEjB,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsiBwB,CAAC;AAE/D,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,yBAAyB,CAAC"}
1
+ {"version":3,"file":"error-code-registry.d.ts","sourceRoot":"","sources":["../../../src/core/error-code-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,WAAW,GACX,OAAO,GACP,KAAK,GACL,SAAS,GACT,UAAU,GACV,SAAS,GACT,QAAQ,GACR,SAAS,GACT,OAAO,GACP,KAAK,CAAC;AAEV,MAAM,MAAM,kBAAkB,GAC1B,gBAAgB,GAChB,cAAc,GACd,YAAY,GACZ,UAAU,GACV,SAAS,GACT,UAAU,GACV,SAAS,GACT,YAAY,CAAC;AAEjB,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkpBwB,CAAC;AAE/D,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,yBAAyB,CAAC"}
@@ -10,6 +10,14 @@ export const HONUA_ERROR_CODE_REGISTRY = Object.freeze({
10
10
  "core.cancelled": classification("core", "cancellation", false, "Caller cancelled the operation"),
11
11
  "core.grpc.transient": classification("core", "protocol", true, "Retryable gRPC-Web transport failure"),
12
12
  "core.grpc.rejected": classification("core", "protocol", false, "Non-retryable gRPC-Web transport failure"),
13
+ "pmtiles.lifecycle.invalid-request": classification("pmtiles", "validation", false, "PMTiles lifecycle request is invalid"),
14
+ "pmtiles.lifecycle.invalid-response": classification("pmtiles", "validation", false, "PMTiles lifecycle response violates the server contract"),
15
+ "pmtiles.lifecycle.response-too-large": classification("pmtiles", "validation", false, "PMTiles lifecycle response exceeds its byte ceiling"),
16
+ "pmtiles.lifecycle.job-poll-timeout": classification("pmtiles", "timeout", true, "PMTiles job did not reach a terminal state within polling bounds"),
17
+ "pmtiles.lifecycle.job-failed": classification("pmtiles", "protocol", false, "PMTiles job reached the failed state"),
18
+ "pmtiles.lifecycle.job-cancelled": classification("pmtiles", "cancellation", false, "PMTiles job reached the cancelled state"),
19
+ "pmtiles.lifecycle.access-url-expired": classification("pmtiles", "validation", false, "Published PMTiles access URL is expired"),
20
+ "pmtiles.lifecycle.manual-cleanup-unsupported": classification("pmtiles", "capability", false, "Managed PMTiles artifact deletion is not exposed"),
13
21
  "core.geometry.unknown-geometry": classification("core", "validation", false, "Geometry shape cannot be classified safely"),
14
22
  "core.geometry.malformed-geometry": classification("core", "validation", false, "Recognized geometry has invalid coordinates or structure"),
15
23
  "core.auth.interaction-required": classification("core", "authentication", false, "Interactive authentication is required"),
@@ -21,12 +29,21 @@ export const HONUA_ERROR_CODE_REGISTRY = Object.freeze({
21
29
  "core.job-failed": classification("core", "protocol", false, "Remote job reached a failed terminal state"),
22
30
  "core.wms-capabilities-parse": classification("core", "protocol", false, "WMS capabilities document is invalid"),
23
31
  "core.wmts-capabilities-parse": classification("core", "protocol", false, "WMTS capabilities document is invalid"),
32
+ "core.coverage.invalid-request": classification("core", "validation", false, "Coverage request is invalid"),
33
+ "core.coverage.invalid-response": classification("core", "protocol", false, "Coverage response is invalid"),
34
+ "core.coverage.response-too-large": classification("core", "validation", false, "Coverage response exceeds its byte limit"),
35
+ "core.coverage.unsupported-format": classification("core", "capability", false, "Coverage format is unsupported"),
36
+ "core.coverage.service-error": classification("core", "protocol", false, "Coverage service rejected the request"),
37
+ "core.coverage.wcs-exception": classification("core", "protocol", false, "WCS exception report"),
24
38
  "discovery.ambiguous-protocol": classification("discovery", "validation", false, "Multiple protocols match the endpoint"),
25
39
  "discovery.ambiguous-source": classification("discovery", "validation", false, "Multiple sources match the selection"),
40
+ "discovery.invalid-cloud-native-input": classification("discovery", "validation", false, "Cloud-native discovery input is invalid or ambiguous"),
41
+ "discovery.invalid-cloud-native-manifest": classification("discovery", "validation", false, "Cloud-native deployment manifest is invalid"),
26
42
  "discovery.invalid-endpoint": classification("discovery", "validation", false, "Discovery endpoint is invalid"),
27
43
  "discovery.invalid-cache-identity": classification("discovery", "validation", false, "Discovery cache identity is invalid"),
28
44
  "discovery.invalid-discovery-cache": classification("discovery", "validation", false, "Discovery cache entry is invalid"),
29
45
  "discovery.invalid-capability": classification("discovery", "validation", false, "Discovered capability evidence is invalid"),
46
+ "discovery.cloud-native-operation-unavailable": classification("discovery", "capability", false, "Cloud-native source operation is unavailable at its declared maturity"),
30
47
  "discovery.unsupported-protocol": classification("discovery", "capability", false, "Endpoint protocol is unsupported"),
31
48
  "discovery.protocol-mismatch": classification("discovery", "validation", false, "Endpoint protocol conflicts with its hint"),
32
49
  "query.planning.invalid-query": classification("query", "validation", false, "Query is invalid"),
@@ -36,6 +53,7 @@ export const HONUA_ERROR_CODE_REGISTRY = Object.freeze({
36
53
  "query.planning.fallback-disabled": classification("query", "capability", false, "Required local fallback is disabled"),
37
54
  "query.planning.unsafe-materialization": classification("query", "validation", false, "Planned local materialization exceeds its safety bound"),
38
55
  "query.execution.invalid-plan": classification("query", "validation", false, "Query plan is invalid"),
56
+ "query.execution.wfs-protocol": classification("query", "protocol", false, "WFS protocol evidence or response is invalid"),
39
57
  "query.execution.plan-context-mismatch": classification("query", "validation", false, "Execution context does not match the accepted query plan"),
40
58
  "query.execution.unsafe-materialization": classification("query", "validation", false, "Query execution exceeded its materialization bound"),
41
59
  "query.execution.invalid-resource-handle": classification("query", "validation", false, "Query resource handle is invalid"),
@@ -90,9 +108,12 @@ export const HONUA_ERROR_CODE_REGISTRY = Object.freeze({
90
108
  "realtime.checkpoint.invalid": classification("realtime", "validation", false, "Realtime checkpoint or resume context is invalid"),
91
109
  "realtime.sequence.gap": classification("realtime", "protocol", true, "Realtime ordering requires a replacement snapshot"),
92
110
  "realtime.protocol.terminal": classification("realtime", "protocol", false, "Realtime delivery reached a terminal failure"),
111
+ "realtime.reconciliation.disposed": classification("realtime", "validation", false, "Realtime reconciliation controller, cache, or adapter is disposed"),
112
+ "realtime.reconciliation.invalid-option": classification("realtime", "validation", false, "Realtime reconciliation option is invalid"),
93
113
  "offline.region.validation": classification("offline", "validation", false, "Offline region input or lifecycle state is invalid"),
94
114
  "offline.region.quota": classification("offline", "validation", false, "Offline region exceeds a logical storage quota"),
95
115
  "offline.region.integrity": classification("offline", "protocol", false, "Offline resource integrity verification failed"),
116
+ "offline.region.miss": classification("offline", "validation", false, "Offline region does not cover the requested read"),
96
117
  "offline.cancelled": classification("offline", "cancellation", false, "Offline operation was cancelled"),
97
118
  "offline.transport.failure": classification("offline", "network", false, "Offline resource or replica transport failed without a transient classification"),
98
119
  "offline.transport.transient": classification("offline", "network", true, "Offline resource or replica transport failed transiently"),
@@ -137,6 +158,8 @@ export const HONUA_ERROR_CODE_REGISTRY = Object.freeze({
137
158
  "app.data-load-failed": classification("app", "internal", false, "Generated app feature data failed to load"),
138
159
  "app.render-failed": classification("app", "internal", false, "Generated app render failed"),
139
160
  "app.disposed": classification("app", "validation", false, "Generated app runtime is disposed"),
161
+ "app.export-unsafe": classification("app", "validation", false, "Component export refused because the artifact could not be proven credential-free"),
162
+ "app.export-failed": classification("app", "internal", false, "Component export adapter failed to produce an artifact"),
140
163
  });
141
164
  function classification(domain, category, retryable, summary) {
142
165
  return Object.freeze({ domain, category, retryable, summary });
@@ -326,6 +326,7 @@ const SAFE_ERROR_NAMES = new Set([
326
326
  "HonuaMapPackageError",
327
327
  "HonuaNetworkError",
328
328
  "HonuaOfflineRegionError",
329
+ "HonuaOfflineEditQueueError",
329
330
  "HonuaPluginRegistryError",
330
331
  "HonuaQueryPlanExecutionError",
331
332
  "HonuaQueryPlanningError",
@@ -336,6 +337,7 @@ const SAFE_ERROR_NAMES = new Set([
336
337
  "HonuaTemporalPlaybackError",
337
338
  "HonuaTimeoutError",
338
339
  "HonuaWfsExceptionError",
340
+ "HonuaWfsProtocolError",
339
341
  "HonuaWmsCapabilitiesParseError",
340
342
  "HonuaWmtsCapabilitiesParseError",
341
343
  "NetworkError",
package/core/errors.d.ts CHANGED
@@ -15,7 +15,7 @@
15
15
  * } from "@honua/sdk-js";
16
16
  *
17
17
  * try {
18
- * await dataset.source("parcels")!.queryAll({ where: "1=1" });
18
+ * await dataset.source("parcels")!.queryAll({ pagination: { limit: 100 } });
19
19
  * } catch (error) {
20
20
  * if (!isHonuaError(error)) throw error;
21
21
  * if (error instanceof HonuaCapabilityNotSupportedError) return fallback();
@@ -31,7 +31,7 @@
31
31
  * @packageDocumentation
32
32
  */
33
33
  import { type HonuaErrorMetadata, type HonuaErrorOptions, HonuaSdkError } from "./error-envelope.js";
34
- export type HonuaDiscoveryErrorCode = "ambiguous-protocol" | "ambiguous-source" | "invalid-endpoint" | "invalid-cache-identity" | "invalid-discovery-cache" | "invalid-capability" | "unsupported-protocol" | "protocol-mismatch";
34
+ export type HonuaDiscoveryErrorCode = "ambiguous-protocol" | "ambiguous-source" | "invalid-cloud-native-input" | "invalid-cloud-native-manifest" | "invalid-endpoint" | "invalid-cache-identity" | "invalid-discovery-cache" | "invalid-capability" | "cloud-native-operation-unavailable" | "unsupported-protocol" | "protocol-mismatch";
35
35
  /** Discovery input, metadata, or cache identity is invalid or inconsistent. */
36
36
  export declare class HonuaDiscoveryError extends HonuaSdkError {
37
37
  readonly code: HonuaDiscoveryErrorCode;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/core/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/core/errors.ts"],"names":[],"mappings":"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"}
package/core/errors.js CHANGED
@@ -15,7 +15,7 @@
15
15
  * } from "@honua/sdk-js";
16
16
  *
17
17
  * try {
18
- * await dataset.source("parcels")!.queryAll({ where: "1=1" });
18
+ * await dataset.source("parcels")!.queryAll({ pagination: { limit: 100 } });
19
19
  * } catch (error) {
20
20
  * if (!isHonuaError(error)) throw error;
21
21
  * if (error instanceof HonuaCapabilityNotSupportedError) return fallback();
@@ -16,10 +16,10 @@
16
16
  * (b) a string literal escaped by {@link stringLiteral} (single quotes doubled,
17
17
  * embedded NULs rejected), or (c) a SQL identifier escaped by
18
18
  * {@link quoteIdentifier} (double quotes doubled, embedded NULs / control chars
19
- * rejected). The one exception is {@link Query.where}: like the GeoServices and
20
- * OGC adapters, `where` is caller-authored filter SQL and is passed through
21
- * verbatim (wrapped in parentheses). Callers are responsible for the trust
22
- * boundary on `where`, exactly as they are for a GeoServices `where` clause.
19
+ * rejected). {@link Query.where} is the one raw-text lane: it is caller-authored
20
+ * DuckDB filter SQL, so it cannot be escaped like a value. It is instead
21
+ * **contained** by {@link validateWhereExpression} before it is embedded — see
22
+ * that function for the exact trust model.
23
23
  *
24
24
  * @module
25
25
  */
@@ -48,6 +48,70 @@ export declare function numberLiteral(value: number): string;
48
48
  * validates non-negative finiteness.
49
49
  */
50
50
  export declare function integerLiteral(value: number): string;
51
+ /**
52
+ * Fixed rejection codes emitted by {@link validateWhereExpression}. Codes are
53
+ * stable and the thrown message never echoes the rejected text, so a hostile
54
+ * `where` cannot smuggle content into logs or a UI error toast.
55
+ */
56
+ export type GeoParquetWhereRejectionCode = "GEOPARQUET_WHERE_NOT_TEXT" | "GEOPARQUET_WHERE_EMPTY" | "GEOPARQUET_WHERE_CONTROL_CHARACTER" | "GEOPARQUET_WHERE_UNTERMINATED_QUOTE" | "GEOPARQUET_WHERE_STATEMENT_SEPARATOR" | "GEOPARQUET_WHERE_COMMENT" | "GEOPARQUET_WHERE_UNBALANCED_PARENTHESES" | "GEOPARQUET_WHERE_PARAMETER_MARKER" | "GEOPARQUET_WHERE_ESCAPE_STRING" | "GEOPARQUET_WHERE_FORBIDDEN_KEYWORD";
57
+ /**
58
+ * A `Query.where` expression was rejected before it could be embedded in
59
+ * DuckDB SQL. Carries a fixed {@link GeoParquetWhereRejectionCode} rather than
60
+ * the offending text.
61
+ */
62
+ export declare class GeoParquetWhereClauseError extends Error {
63
+ readonly code: GeoParquetWhereRejectionCode;
64
+ /** The denylisted keyword for `GEOPARQUET_WHERE_FORBIDDEN_KEYWORD`; never caller text otherwise. */
65
+ readonly keyword: string | undefined;
66
+ constructor(code: GeoParquetWhereRejectionCode, detail: string, keyword?: string);
67
+ }
68
+ /**
69
+ * Contain a caller-authored {@link Query.where} expression before it is
70
+ * embedded in generated DuckDB SQL, returning the trimmed text on success.
71
+ *
72
+ * ## Trust model
73
+ *
74
+ * `where` is raw filter SQL — the GeoParquet/DuckDB lane has no value-escaping
75
+ * equivalent for it, and the semantic (typed, parameterized) compiler in
76
+ * `query-planner/duckdb.ts` is the path that removes the raw text entirely.
77
+ * Until a caller migrates to that path, this validator draws the boundary:
78
+ *
79
+ * **Guaranteed by this function.** The accepted text is a *single* expression
80
+ * that cannot leave the `WHERE ( … )` slot it is spliced into. It rejects, with
81
+ * a typed {@link GeoParquetWhereClauseError}:
82
+ *
83
+ * - statement separators (`;`) and therefore chained/multi-statement input;
84
+ * - SQL comments — both line (`--`) and block comment markers — including the
85
+ * trailing-comment trick that would otherwise swallow the compiler's own
86
+ * `AND (<spatial predicate>)`;
87
+ * - unterminated string / quoted-identifier literals, which is how `x' OR 1=1`
88
+ * style probes escape a literal;
89
+ * - `E'…'` escape strings, where a backslash escapes a quote: that second
90
+ * escaping grammar would let a literal end for this scanner but not for
91
+ * DuckDB, so every boundary after it is mis-parsed. Plain literals with
92
+ * doubled quotes carry the same data;
93
+ * - unbalanced parentheses, so the wrapping `( … )` cannot be closed early to
94
+ * re-associate or append clauses;
95
+ * - `SELECT` / `UNION` and other statement or set-operation keywords, plus a
96
+ * table-context `FROM`, so a filter cannot become a subquery or UNION probe
97
+ * that reads other tables or files registered in the same DuckDB session.
98
+ * `FROM` stays available in its expression forms — `EXTRACT(YEAR FROM ts)`,
99
+ * `TRIM(BOTH ' ' FROM name)`, `SUBSTRING(name FROM 2 FOR 3)`, `OVERLAY(…)`;
100
+ * - parameter markers (`?`, `$1`, `$name`) — this lane binds no values;
101
+ * - control characters other than tab / newline / carriage return.
102
+ *
103
+ * **Still the caller's responsibility.** This is containment, not a semantic
104
+ * parser: accepted text is still executed by DuckDB. It can reference any
105
+ * column in the scanned files, call any scalar function the session exposes,
106
+ * and cost arbitrary CPU. Fabricating a syntactically invalid expression still
107
+ * fails at DuckDB, not here. Applications that forward end-user input (a filter
108
+ * box, a URL parameter) should build the expression from typed inputs rather
109
+ * than concatenating strings, and treat this validator as a backstop.
110
+ *
111
+ * The `Source.protocol("geoparquet").sql(...)` handle remains an explicit,
112
+ * opt-in raw-SQL escape hatch and is deliberately not covered here.
113
+ */
114
+ export declare function validateWhereExpression(where: string): string;
51
115
  /**
52
116
  * Build the `read_parquet(...)` table expression from one or more file URLs /
53
117
  * globs. A single source renders `read_parquet('url')`; multiple sources
@@ -176,7 +240,7 @@ export declare function compileAggregate(query: Query & {
176
240
  */
177
241
  export declare function describeSql(sources: readonly string[]): string;
178
242
  /**
179
- * Cheap row-count estimate from the parquet footer (`num_rows` per row group),
243
+ * Cheap row-count and row-group totals from the Parquet file metadata,
180
244
  * summed across all files. Avoids a full `count(*)` table scan on large
181
245
  * Overture extracts.
182
246
  */
@@ -1 +1 @@
1
- {"version":3,"file":"geoparquet-sql.d.ts","sourceRoot":"","sources":["../../../src/core/geoparquet-sql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geoparquet-sql.d.ts","sourceRoot":"","sources":["../../../src/core/geoparquet-sql.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAQH,OAAO,KAAK,EAAiB,eAAe,EAAE,KAAK,EAAY,MAAM,sBAAsB,CAAC;AAE5F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASpD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQnD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKpD;AAID;;;;GAIG;AACH,MAAM,MAAM,4BAA4B,GACpC,2BAA2B,GAC3B,wBAAwB,GACxB,oCAAoC,GACpC,qCAAqC,GACrC,sCAAsC,GACtC,0BAA0B,GAC1B,yCAAyC,GACzC,mCAAmC,GACnC,gCAAgC,GAChC,oCAAoC,CAAC;AAEzC;;;;GAIG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,SAAgB,IAAI,EAAE,4BAA4B,CAAC;IACnD,oGAAoG;IACpG,SAAgB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;gBAEzB,IAAI,EAAE,4BAA4B,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAMxF;AAuFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA+H7D;AA6BD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAOjE;AAID;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,gBAAgB,GACxB,KAAK,GACL,QAAQ,GACR,SAAS,GACT,gBAAgB,GAChB,qBAAqB,GACrB,kBAAkB,GAClB,qBAAqB,GACrB,0BAA0B,GAC1B,uBAAuB,CAAC;AAE5B,mFAAmF;AACnF,MAAM,MAAM,8BAA8B,GAAG,OAAO,CAAC,gBAAgB,EAAE,YAAY,MAAM,EAAE,CAAC,CAAC;AAW7F,gGAAgG;AAChG,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,QAAQ,IAAI,8BAA8B,CAE/G;AAED,MAAM,WAAW,kBAAkB;IACjC,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;CAC1C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAmB7D;AAID,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,CAkC7E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAE/D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAW7E;AAID,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IACvC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,+EAA+E;IAC/E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAyHD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACpC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,GAAG,WAAW,CAkB/E;AAsBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,KAAK,GAAG;IAAE,WAAW,EAAE,eAAe,CAAA;CAAE,EAC/C,OAAO,EAAE,cAAc,GACtB,WAAW,CA6Bb;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAIjE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAIjE"}