@loaders.gl/wms 3.3.0-alpha.9 → 3.3.1

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 (266) hide show
  1. package/dist/bundle.d.ts +2 -0
  2. package/dist/bundle.d.ts.map +1 -0
  3. package/dist/bundle.js +6 -0
  4. package/dist/dist.min.js +4080 -2009
  5. package/dist/es5/index.js +63 -7
  6. package/dist/es5/index.js.map +1 -1
  7. package/dist/es5/lerc-loader.js +74 -0
  8. package/dist/es5/lerc-loader.js.map +1 -0
  9. package/dist/es5/lib/data-sources/adhoc-image-service.js +129 -0
  10. package/dist/es5/lib/data-sources/adhoc-image-service.js.map +1 -0
  11. package/dist/es5/lib/data-sources/arcgis-image-service.js +180 -0
  12. package/dist/es5/lib/data-sources/arcgis-image-service.js.map +1 -0
  13. package/dist/es5/lib/data-sources/create-image-source.js +45 -0
  14. package/dist/es5/lib/data-sources/create-image-source.js.map +1 -0
  15. package/dist/es5/lib/data-sources/image-services/arcgis-image-service.js +179 -0
  16. package/dist/es5/lib/data-sources/image-services/arcgis-image-service.js.map +1 -0
  17. package/dist/es5/lib/data-sources/image-services/image-service.js +163 -0
  18. package/dist/es5/lib/data-sources/image-services/image-service.js.map +1 -0
  19. package/dist/es5/lib/data-sources/image-services/wms-service.js +400 -0
  20. package/dist/es5/lib/data-sources/image-services/wms-service.js.map +1 -0
  21. package/dist/es5/lib/data-sources/image-source.js +14 -0
  22. package/dist/es5/lib/data-sources/image-source.js.map +1 -0
  23. package/dist/es5/lib/gml/deep-strict-equal.js +64 -0
  24. package/dist/es5/lib/gml/deep-strict-equal.js.map +1 -0
  25. package/dist/es5/lib/gml/parse-gml.js +416 -0
  26. package/dist/es5/lib/gml/parse-gml.js.map +1 -0
  27. package/dist/es5/lib/lerc/lerc-types.js +2 -0
  28. package/dist/es5/lib/lerc/lerc-types.js.map +1 -0
  29. package/dist/es5/lib/wcs/parse-wcs.js +43 -0
  30. package/dist/es5/lib/wcs/parse-wcs.js.map +1 -0
  31. package/dist/es5/lib/wcs/wcs-types.js +2 -0
  32. package/dist/es5/lib/wcs/wcs-types.js.map +1 -0
  33. package/dist/es5/lib/wfs/parse-wfs.js +43 -0
  34. package/dist/es5/lib/wfs/parse-wfs.js.map +1 -0
  35. package/dist/es5/lib/wfs/wfs-types.js +2 -0
  36. package/dist/es5/lib/wfs/wfs-types.js.map +1 -0
  37. package/dist/es5/lib/{parse-wms.js → wms/parse-wms.js} +35 -2
  38. package/dist/es5/lib/wms/parse-wms.js.map +1 -0
  39. package/dist/es5/{wms-types.js → lib/wms/wms-types.js} +0 -0
  40. package/dist/es5/lib/wms/wms-types.js.map +1 -0
  41. package/dist/es5/lib/wmts/parse-wmts.js +43 -0
  42. package/dist/es5/lib/wmts/parse-wmts.js.map +1 -0
  43. package/dist/es5/lib/wmts/wmts-types.js +2 -0
  44. package/dist/es5/lib/wmts/wmts-types.js.map +1 -0
  45. package/dist/es5/wip/arcgis-feature-service.js +45 -0
  46. package/dist/es5/wip/arcgis-feature-service.js.map +1 -0
  47. package/dist/es5/wip/data-source.js +4 -0
  48. package/dist/es5/wip/data-source.js.map +1 -0
  49. package/dist/es5/wip/gml-loader.js +54 -0
  50. package/dist/es5/wip/gml-loader.js.map +1 -0
  51. package/dist/es5/wip/wcs-capabilities-loader.js +54 -0
  52. package/dist/es5/wip/wcs-capabilities-loader.js.map +1 -0
  53. package/dist/es5/wip/wfs-capabilities-loader.js +54 -0
  54. package/dist/es5/wip/wfs-capabilities-loader.js.map +1 -0
  55. package/dist/es5/{wms-feature-info-loader.js → wip/wms-feature-info-loader.js} +3 -3
  56. package/dist/es5/wip/wms-feature-info-loader.js.map +1 -0
  57. package/dist/es5/{wms-layer-description-loader.js → wip/wms-layer-description-loader.js} +5 -5
  58. package/dist/es5/wip/wms-layer-description-loader.js.map +1 -0
  59. package/dist/es5/wip/wms-layer-description-loader.md.disabled.md +47 -0
  60. package/dist/es5/wip/wmts-capabilities-loader.js +54 -0
  61. package/dist/es5/wip/wmts-capabilities-loader.js.map +1 -0
  62. package/dist/es5/wms-capabilities-loader.js +3 -3
  63. package/dist/es5/wms-capabilities-loader.js.map +1 -1
  64. package/dist/es5/wms-error-loader.js +70 -0
  65. package/dist/es5/wms-error-loader.js.map +1 -0
  66. package/dist/esm/index.js +16 -3
  67. package/dist/esm/index.js.map +1 -1
  68. package/dist/esm/lerc-loader.js +25 -0
  69. package/dist/esm/lerc-loader.js.map +1 -0
  70. package/dist/esm/lib/data-sources/adhoc-image-service.js +43 -0
  71. package/dist/esm/lib/data-sources/adhoc-image-service.js.map +1 -0
  72. package/dist/esm/lib/data-sources/arcgis-image-service.js +62 -0
  73. package/dist/esm/lib/data-sources/arcgis-image-service.js.map +1 -0
  74. package/dist/esm/lib/data-sources/create-image-source.js +30 -0
  75. package/dist/esm/lib/data-sources/create-image-source.js.map +1 -0
  76. package/dist/esm/lib/data-sources/image-services/arcgis-image-service.js +61 -0
  77. package/dist/esm/lib/data-sources/image-services/arcgis-image-service.js.map +1 -0
  78. package/dist/esm/lib/data-sources/image-services/image-service.js +72 -0
  79. package/dist/esm/lib/data-sources/image-services/image-service.js.map +1 -0
  80. package/dist/esm/lib/data-sources/image-services/wms-service.js +190 -0
  81. package/dist/esm/lib/data-sources/image-services/wms-service.js.map +1 -0
  82. package/dist/esm/lib/data-sources/image-source.js +4 -0
  83. package/dist/esm/lib/data-sources/image-source.js.map +1 -0
  84. package/dist/esm/lib/gml/deep-strict-equal.js +57 -0
  85. package/dist/esm/lib/gml/deep-strict-equal.js.map +1 -0
  86. package/dist/esm/lib/gml/parse-gml.js +348 -0
  87. package/dist/esm/lib/gml/parse-gml.js.map +1 -0
  88. package/dist/esm/lib/lerc/lerc-types.js +2 -0
  89. package/dist/esm/lib/lerc/lerc-types.js.map +1 -0
  90. package/dist/esm/lib/wcs/parse-wcs.js +32 -0
  91. package/dist/esm/lib/wcs/parse-wcs.js.map +1 -0
  92. package/dist/esm/lib/wcs/wcs-types.js +2 -0
  93. package/dist/esm/lib/wcs/wcs-types.js.map +1 -0
  94. package/dist/esm/lib/wfs/parse-wfs.js +32 -0
  95. package/dist/esm/lib/wfs/parse-wfs.js.map +1 -0
  96. package/dist/esm/lib/wfs/wfs-types.js +2 -0
  97. package/dist/esm/lib/wfs/wfs-types.js.map +1 -0
  98. package/dist/esm/lib/{parse-wms.js → wms/parse-wms.js} +33 -2
  99. package/dist/esm/lib/wms/parse-wms.js.map +1 -0
  100. package/dist/esm/{wms-types.js → lib/wms/wms-types.js} +0 -0
  101. package/dist/esm/lib/wms/wms-types.js.map +1 -0
  102. package/dist/esm/lib/wmts/parse-wmts.js +32 -0
  103. package/dist/esm/lib/wmts/parse-wmts.js.map +1 -0
  104. package/dist/esm/lib/wmts/wmts-types.js +2 -0
  105. package/dist/esm/lib/wmts/wmts-types.js.map +1 -0
  106. package/dist/esm/wip/arcgis-feature-service.js +28 -0
  107. package/dist/esm/wip/arcgis-feature-service.js.map +1 -0
  108. package/dist/esm/wip/data-source.js +2 -0
  109. package/dist/esm/wip/data-source.js.map +1 -0
  110. package/dist/esm/wip/gml-loader.js +25 -0
  111. package/dist/esm/wip/gml-loader.js.map +1 -0
  112. package/dist/esm/wip/wcs-capabilities-loader.js +25 -0
  113. package/dist/esm/wip/wcs-capabilities-loader.js.map +1 -0
  114. package/dist/esm/wip/wfs-capabilities-loader.js +25 -0
  115. package/dist/esm/wip/wfs-capabilities-loader.js.map +1 -0
  116. package/dist/esm/{wms-feature-info-loader.js → wip/wms-feature-info-loader.js} +3 -3
  117. package/dist/esm/wip/wms-feature-info-loader.js.map +1 -0
  118. package/dist/esm/wip/wms-layer-description-loader.js +14 -0
  119. package/dist/esm/wip/wms-layer-description-loader.js.map +1 -0
  120. package/dist/esm/wip/wms-layer-description-loader.md.disabled.md +47 -0
  121. package/dist/esm/wip/wmts-capabilities-loader.js +25 -0
  122. package/dist/esm/wip/wmts-capabilities-loader.js.map +1 -0
  123. package/dist/esm/wms-capabilities-loader.js +3 -3
  124. package/dist/esm/wms-capabilities-loader.js.map +1 -1
  125. package/dist/esm/wms-error-loader.js +40 -0
  126. package/dist/esm/wms-error-loader.js.map +1 -0
  127. package/dist/index.d.ts +27 -0
  128. package/dist/index.d.ts.map +1 -0
  129. package/dist/index.js +33 -0
  130. package/dist/lerc-loader.d.ts +30 -0
  131. package/dist/lerc-loader.d.ts.map +1 -0
  132. package/dist/lerc-loader.js +56 -0
  133. package/dist/lib/data-sources/adhoc-image-service.d.ts +24 -0
  134. package/dist/lib/data-sources/adhoc-image-service.d.ts.map +1 -0
  135. package/dist/lib/data-sources/adhoc-image-service.js +46 -0
  136. package/dist/lib/data-sources/arcgis-image-service.d.ts +79 -0
  137. package/dist/lib/data-sources/arcgis-image-service.d.ts.map +1 -0
  138. package/dist/lib/data-sources/arcgis-image-service.js +85 -0
  139. package/dist/lib/data-sources/create-image-source.d.ts +16 -0
  140. package/dist/lib/data-sources/create-image-source.d.ts.map +1 -0
  141. package/dist/lib/data-sources/create-image-source.js +39 -0
  142. package/dist/lib/data-sources/image-services/arcgis-image-service.d.ts +71 -0
  143. package/dist/lib/data-sources/image-services/arcgis-image-service.d.ts.map +1 -0
  144. package/dist/lib/data-sources/image-services/arcgis-image-service.js +85 -0
  145. package/dist/lib/data-sources/image-services/image-service.d.ts +39 -0
  146. package/dist/lib/data-sources/image-services/image-service.d.ts.map +1 -0
  147. package/dist/lib/data-sources/image-services/image-service.js +82 -0
  148. package/dist/lib/data-sources/image-services/wms-service.d.ts +188 -0
  149. package/dist/lib/data-sources/image-services/wms-service.d.ts.map +1 -0
  150. package/dist/lib/data-sources/image-services/wms-service.js +218 -0
  151. package/dist/lib/data-sources/image-source.d.ts +73 -0
  152. package/dist/lib/data-sources/image-source.d.ts.map +1 -0
  153. package/dist/lib/data-sources/image-source.js +12 -0
  154. package/dist/lib/gml/deep-strict-equal.d.ts +3 -0
  155. package/dist/lib/gml/deep-strict-equal.d.ts.map +1 -0
  156. package/dist/lib/gml/deep-strict-equal.js +119 -0
  157. package/dist/lib/gml/parse-gml.d.ts +28 -0
  158. package/dist/lib/gml/parse-gml.d.ts.map +1 -0
  159. package/dist/lib/gml/parse-gml.js +371 -0
  160. package/dist/lib/lerc/lerc-types.d.ts +30 -0
  161. package/dist/lib/lerc/lerc-types.d.ts.map +1 -0
  162. package/dist/lib/lerc/lerc-types.js +3 -0
  163. package/dist/lib/wcs/parse-wcs.d.ts +7 -0
  164. package/dist/lib/wcs/parse-wcs.d.ts.map +1 -0
  165. package/dist/lib/wcs/parse-wcs.js +36 -0
  166. package/dist/lib/wcs/wcs-types.d.ts +73 -0
  167. package/dist/lib/wcs/wcs-types.d.ts.map +1 -0
  168. package/dist/lib/wcs/wcs-types.js +3 -0
  169. package/dist/lib/wfs/parse-wfs.d.ts +7 -0
  170. package/dist/lib/wfs/parse-wfs.d.ts.map +1 -0
  171. package/dist/lib/wfs/parse-wfs.js +36 -0
  172. package/dist/lib/wfs/wfs-types.d.ts +73 -0
  173. package/dist/lib/wfs/wfs-types.d.ts.map +1 -0
  174. package/dist/lib/wfs/wfs-types.js +3 -0
  175. package/dist/lib/wms/parse-wms.d.ts +24 -0
  176. package/dist/lib/wms/parse-wms.d.ts.map +1 -0
  177. package/dist/lib/wms/parse-wms.js +115 -0
  178. package/dist/lib/wms/wms-types.d.ts +100 -0
  179. package/dist/lib/wms/wms-types.d.ts.map +1 -0
  180. package/dist/lib/wms/wms-types.js +1908 -0
  181. package/dist/lib/wmts/parse-wmts.d.ts +7 -0
  182. package/dist/lib/wmts/parse-wmts.d.ts.map +1 -0
  183. package/dist/lib/wmts/parse-wmts.js +36 -0
  184. package/dist/lib/wmts/wmts-types.d.ts +73 -0
  185. package/dist/lib/wmts/wmts-types.d.ts.map +1 -0
  186. package/dist/lib/wmts/wmts-types.js +3 -0
  187. package/dist/wip/arcgis-feature-service.d.ts +56 -0
  188. package/dist/wip/arcgis-feature-service.d.ts.map +1 -0
  189. package/dist/wip/arcgis-feature-service.js +28 -0
  190. package/dist/wip/data-source.d.ts +54 -0
  191. package/dist/wip/data-source.d.ts.map +1 -0
  192. package/dist/wip/data-source.js +59 -0
  193. package/dist/wip/gml-loader.d.ts +26 -0
  194. package/dist/wip/gml-loader.d.ts.map +1 -0
  195. package/dist/wip/gml-loader.js +31 -0
  196. package/dist/wip/wcs-capabilities-loader.d.ts +26 -0
  197. package/dist/wip/wcs-capabilities-loader.d.ts.map +1 -0
  198. package/dist/wip/wcs-capabilities-loader.js +31 -0
  199. package/dist/wip/wfs-capabilities-loader.d.ts +26 -0
  200. package/dist/wip/wfs-capabilities-loader.d.ts.map +1 -0
  201. package/dist/wip/wfs-capabilities-loader.js +31 -0
  202. package/dist/wip/wms-feature-info-loader.d.ts +22 -0
  203. package/dist/wip/wms-feature-info-loader.d.ts.map +1 -0
  204. package/dist/wip/wms-feature-info-loader.js +17 -0
  205. package/dist/wip/wms-layer-description-loader.d.ts +22 -0
  206. package/dist/wip/wms-layer-description-loader.d.ts.map +1 -0
  207. package/dist/wip/wms-layer-description-loader.js +17 -0
  208. package/dist/wip/wmts-capabilities-loader.d.ts +26 -0
  209. package/dist/wip/wmts-capabilities-loader.d.ts.map +1 -0
  210. package/dist/wip/wmts-capabilities-loader.js +31 -0
  211. package/dist/wms-capabilities-loader.d.ts +26 -0
  212. package/dist/wms-capabilities-loader.d.ts.map +1 -0
  213. package/dist/wms-capabilities-loader.js +31 -0
  214. package/dist/wms-error-loader.d.ts +34 -0
  215. package/dist/wms-error-loader.d.ts.map +1 -0
  216. package/dist/wms-error-loader.js +43 -0
  217. package/package.json +17 -6
  218. package/src/index.ts +51 -6
  219. package/src/lerc-loader.ts +50 -0
  220. package/src/lib/data-sources/adhoc-image-service.ts +61 -0
  221. package/src/lib/data-sources/arcgis-image-service.ts +146 -0
  222. package/src/lib/data-sources/create-image-source.ts +46 -0
  223. package/src/lib/data-sources/image-services/arcgis-image-service.ts +136 -0
  224. package/src/lib/data-sources/image-services/image-service.ts +105 -0
  225. package/src/lib/data-sources/image-services/wms-service.ts +351 -0
  226. package/src/lib/data-sources/image-source.ts +82 -0
  227. package/src/lib/gml/deep-strict-equal.ts +119 -0
  228. package/src/lib/gml/parse-gml.ts +500 -0
  229. package/src/lib/lerc/lerc-types.ts +43 -0
  230. package/src/lib/wcs/parse-wcs.ts +39 -0
  231. package/src/lib/wcs/wcs-types.ts +77 -0
  232. package/src/lib/wfs/parse-wfs.ts +39 -0
  233. package/src/lib/wfs/wfs-types.ts +78 -0
  234. package/src/lib/{parse-wms.ts → wms/parse-wms.ts} +54 -4
  235. package/src/{wms-types.ts → lib/wms/wms-types.ts} +3 -1
  236. package/src/lib/wmts/parse-wmts.ts +39 -0
  237. package/src/lib/wmts/wmts-types.ts +77 -0
  238. package/src/wip/arcgis-feature-service.ts +89 -0
  239. package/src/{lib/data-sources/image-data-source.ts → wip/data-source.ts} +20 -42
  240. package/src/wip/gml-loader.ts +40 -0
  241. package/src/wip/wcs-capabilities-loader.ts +40 -0
  242. package/src/wip/wfs-capabilities-loader.ts +40 -0
  243. package/src/{wms-feature-info-loader.ts → wip/wms-feature-info-loader.ts} +3 -3
  244. package/src/wip/wms-layer-description-loader.md.disabled.md +47 -0
  245. package/src/{wms-layer-description-loader.ts → wip/wms-layer-description-loader.ts} +6 -6
  246. package/src/wip/wmts-capabilities-loader.ts +40 -0
  247. package/src/wms-capabilities-loader.ts +2 -2
  248. package/src/wms-error-loader.ts +59 -0
  249. package/dist/es5/lib/data-sources/image-data-source.js +0 -4
  250. package/dist/es5/lib/data-sources/image-data-source.js.map +0 -1
  251. package/dist/es5/lib/data-sources/wms-data-source.js +0 -223
  252. package/dist/es5/lib/data-sources/wms-data-source.js.map +0 -1
  253. package/dist/es5/lib/parse-wms.js.map +0 -1
  254. package/dist/es5/wms-feature-info-loader.js.map +0 -1
  255. package/dist/es5/wms-layer-description-loader.js.map +0 -1
  256. package/dist/es5/wms-types.js.map +0 -1
  257. package/dist/esm/lib/data-sources/image-data-source.js +0 -2
  258. package/dist/esm/lib/data-sources/image-data-source.js.map +0 -1
  259. package/dist/esm/lib/data-sources/wms-data-source.js +0 -70
  260. package/dist/esm/lib/data-sources/wms-data-source.js.map +0 -1
  261. package/dist/esm/lib/parse-wms.js.map +0 -1
  262. package/dist/esm/wms-feature-info-loader.js.map +0 -1
  263. package/dist/esm/wms-layer-description-loader.js +0 -14
  264. package/dist/esm/wms-layer-description-loader.js.map +0 -1
  265. package/dist/esm/wms-types.js.map +0 -1
  266. package/src/lib/data-sources/wms-data-source.ts +0 -99
@@ -0,0 +1,24 @@
1
+ import type { WMSCapabilities, WMSFeatureInfo, WMSLayerDescription } from './wms-types';
2
+ /**
3
+ * Parses a typed data structure from raw XML for `GetCapabilities` response
4
+ * @note Error handlings is fairly weak
5
+ */
6
+ export declare function parseWMSCapabilities(text: string, options: any): WMSCapabilities;
7
+ /**
8
+ * Parses a typed data structure from raw XML for `GetFeatureInfo` response
9
+ * @note Error handlings is fairly weak
10
+ */
11
+ export declare function parseWMSFeatureInfo(text: string, options: any): WMSFeatureInfo;
12
+ /**
13
+ * Parses a typed data structure from raw XML for `GetFeatureInfo` response
14
+ * @note Error handlings is fairly weak
15
+ */
16
+ export declare function parseWMSLayerDescription(text: string, options: any): WMSLayerDescription;
17
+ /**
18
+ * Extract an error message from WMS error response XML
19
+ * @param text
20
+ * @param options
21
+ * @returns a string with a human readable message
22
+ */
23
+ export declare function parseWMSError(text: string, options: any): string;
24
+ //# sourceMappingURL=parse-wms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-wms.d.ts","sourceRoot":"","sources":["../../../src/lib/wms/parse-wms.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EAGf,cAAc,EACd,mBAAmB,EAGpB,MAAM,aAAa,CAAC;AAMrB;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,KAAA,GAAG,eAAe,CAK3E;AA8DD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,KAAA,GAAG,cAAc,CASzE;AAcD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,KAAA,GAAG,mBAAmB,CAInF;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,KAAA,GAAG,MAAM,CAW3D"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ // loaders.gl, MIT license
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.parseWMSError = exports.parseWMSLayerDescription = exports.parseWMSFeatureInfo = exports.parseWMSCapabilities = void 0;
5
+ const xml_1 = require("@loaders.gl/xml");
6
+ // GetCapabilities
7
+ /**
8
+ * Parses a typed data structure from raw XML for `GetCapabilities` response
9
+ * @note Error handlings is fairly weak
10
+ */
11
+ function parseWMSCapabilities(text, options) {
12
+ const parsedXML = xml_1.XMLLoader.parseTextSync(text, options);
13
+ const xmlCapabilities = parsedXML.WMT_MS_Capabilities || parsedXML.WMS_Capabilities || parsedXML;
14
+ return extractCapabilities(xmlCapabilities);
15
+ }
16
+ exports.parseWMSCapabilities = parseWMSCapabilities;
17
+ /** Extract typed capability data from XML */
18
+ function extractCapabilities(xml) {
19
+ const capabilities = {
20
+ name: xml.Service?.Name || 'unnamed',
21
+ title: xml.Service?.Title,
22
+ keywords: [],
23
+ requests: {},
24
+ layer: extractLayer(xml.Capability?.Layer),
25
+ raw: xml
26
+ };
27
+ for (const keyword of xml.Service?.KeywordList?.Keyword || []) {
28
+ capabilities.keywords.push(keyword);
29
+ }
30
+ for (const [name, xmlRequest] of Object.entries(xml.Capability?.Request || {})) {
31
+ capabilities.requests[name] = extractRequest(name, xmlRequest);
32
+ }
33
+ return capabilities;
34
+ }
35
+ /** Extract typed request data from XML */
36
+ function extractRequest(name, xmlRequest) {
37
+ const format = xmlRequest?.Format;
38
+ const mimeTypes = Array.isArray(format) ? format : [format];
39
+ return { name, mimeTypes };
40
+ }
41
+ /** Extract request data */
42
+ function extractLayer(xmlLayer) {
43
+ const layer = {
44
+ name: xmlLayer?.Name,
45
+ title: xmlLayer?.Title,
46
+ srs: xmlLayer?.SRS || [],
47
+ layers: []
48
+ };
49
+ // Single layer is not represented as array in XML
50
+ const xmlLayers = getXMLArray(xmlLayer?.Layer);
51
+ for (const xmlSubLayer of xmlLayers) {
52
+ layer.layers?.push(extractLayer(xmlSubLayer));
53
+ }
54
+ return layer;
55
+ }
56
+ function getXMLArray(xmlValue) {
57
+ if (Array.isArray(xmlValue)) {
58
+ return xmlValue;
59
+ }
60
+ if (xmlValue) {
61
+ return [xmlValue];
62
+ }
63
+ return [];
64
+ }
65
+ // GetFeatureInfo
66
+ /**
67
+ * Parses a typed data structure from raw XML for `GetFeatureInfo` response
68
+ * @note Error handlings is fairly weak
69
+ */
70
+ function parseWMSFeatureInfo(text, options) {
71
+ const parsedXML = xml_1.XMLLoader.parseTextSync(text, options);
72
+ const xmlFeatureInfo = parsedXML.FeatureInfoResponse?.FIELDS || [];
73
+ const xmlFeatures = Array.isArray(xmlFeatureInfo) ? xmlFeatureInfo : [xmlFeatureInfo];
74
+ return {
75
+ features: xmlFeatures.map((xmlFeature) => extractFeature(xmlFeature))
76
+ };
77
+ }
78
+ exports.parseWMSFeatureInfo = parseWMSFeatureInfo;
79
+ function extractFeature(xmlFeature) {
80
+ const xmlFields = xmlFeature || {};
81
+ // TODO - not correct
82
+ return {
83
+ attributes: xmlFields,
84
+ type: '',
85
+ bounds: { bottom: 0, top: 0, left: 0, right: 0 }
86
+ };
87
+ }
88
+ // GetFeatureInfo
89
+ /**
90
+ * Parses a typed data structure from raw XML for `GetFeatureInfo` response
91
+ * @note Error handlings is fairly weak
92
+ */
93
+ function parseWMSLayerDescription(text, options) {
94
+ const parsedXML = xml_1.XMLLoader.parseTextSync(text, options);
95
+ // TODO - implement parser
96
+ return parsedXML;
97
+ }
98
+ exports.parseWMSLayerDescription = parseWMSLayerDescription;
99
+ /**
100
+ * Extract an error message from WMS error response XML
101
+ * @param text
102
+ * @param options
103
+ * @returns a string with a human readable message
104
+ */
105
+ function parseWMSError(text, options) {
106
+ const parsedXML = xml_1.XMLLoader.parseTextSync?.(text, options);
107
+ const serviceExceptionXML = parsedXML?.ServiceExceptionReport?.ServiceException ||
108
+ parsedXML?.['ogc:ServiceExceptionReport']?.['ogc:ServiceException'];
109
+ // Sigh, can be either a string or an object
110
+ const message = typeof serviceExceptionXML === 'string'
111
+ ? serviceExceptionXML
112
+ : serviceExceptionXML['#text'] || serviceExceptionXML.code || 'Unknown error';
113
+ return message;
114
+ }
115
+ exports.parseWMSError = parseWMSError;
@@ -0,0 +1,100 @@
1
+ /** All capabilities of a WMS service - response to a WMS `GetCapabilities` data structure extracted from XML */
2
+ export type WMSCapabilities = {
3
+ name: string;
4
+ title?: string;
5
+ abstract?: string;
6
+ keywords: string[];
7
+ layer: {
8
+ name: string;
9
+ title?: string;
10
+ srs?: string[];
11
+ boundingBox?: [number, number, number, number];
12
+ layers: WMSLayer[];
13
+ };
14
+ requests: Record<string, WMSRequest>;
15
+ raw: Record<string, unknown>;
16
+ };
17
+ export type WMSLayer = {
18
+ name: string;
19
+ title?: string;
20
+ srs?: string[];
21
+ boundingBox?: [number, number, number, number];
22
+ layers: WMSLayer[];
23
+ };
24
+ export type WMSRequest = {
25
+ name: string;
26
+ mimeTypes: string[];
27
+ };
28
+ /** WMS Feature info - response to a WMS `GetFeatureInfo` request */
29
+ export type WMSFeatureInfo = {
30
+ features: WMSFeature[];
31
+ };
32
+ export type WMSFeature = {
33
+ attributes: Record<string, number | string>;
34
+ type: string;
35
+ bounds: {
36
+ top: number;
37
+ bottom: number;
38
+ left: number;
39
+ right: number;
40
+ };
41
+ };
42
+ /** Layer description - response to a WMS `DescribeLayer` request */
43
+ export type WMSLayerDescription = {
44
+ layers: {}[];
45
+ };
46
+ /**
47
+ * <EX_GeographicBoundingBox>
48
+ * <westBoundLongitude>-180</westBoundLongitude>
49
+ * <eastBoundLongitude>180</eastBoundLongitude>
50
+ * <southBoundLatitude>-65</southBoundLatitude>
51
+ * <northBoundLatitude>75</northBoundLatitude>
52
+ * </EX_GeographicBoundingBox>
53
+ * <BoundingBox CRS="EPSG:4326"
54
+ * minx="-65" miny="-180" maxx="75" maxy="180" />
55
+ */
56
+ export type Layer = {
57
+ name: string;
58
+ title: string;
59
+ abstract?: string;
60
+ crs: string;
61
+ queryable?: boolean;
62
+ opaque?: boolean;
63
+ cascaded?: boolean;
64
+ geographicBoundingBox: number[];
65
+ boundingBox: number[];
66
+ boundingBoxCRS: string;
67
+ layers: Layer[];
68
+ };
69
+ /**
70
+ * <Style>
71
+ * <Name>default</Name>
72
+ * <Title>default</Title>
73
+ * <LegendURL width="89" height="21">
74
+ * <Format>image/png</Format>
75
+ * <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://mapserver.ngdc.noaa.gov/cgi-bin/public/gcv4/?version=1.3.0&amp;service=WMS&amp;request=GetLegendGraphic&amp;sld_version=1.1.0&amp;layer=countries&amp;format=image/png&amp;STYLE=default"/>
76
+ * </LegendURL>
77
+ * </Style>
78
+ */
79
+ export type Style = {
80
+ name: string;
81
+ title: string;
82
+ legendUrl?: {
83
+ width: number;
84
+ height: number;
85
+ format: string;
86
+ onlineResource: string;
87
+ };
88
+ };
89
+ export type WMSService = {
90
+ rawData: unknown;
91
+ name: string;
92
+ title: string;
93
+ onlineResource?: string;
94
+ contactInformation?: string;
95
+ maxWidth?: number;
96
+ maxHeight?: number;
97
+ capabilities: {};
98
+ untypedData: unknown;
99
+ };
100
+ //# sourceMappingURL=wms-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wms-types.d.ts","sourceRoot":"","sources":["../../../src/lib/wms/wms-types.ts"],"names":[],"mappings":"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"}