@loaders.gl/wms 3.3.2 → 3.4.0-alpha.2

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 (404) hide show
  1. package/dist/csw-capabilities-loader.d.ts +29 -0
  2. package/dist/csw-capabilities-loader.d.ts.map +1 -0
  3. package/dist/csw-capabilities-loader.js +31 -0
  4. package/dist/csw-domain-loader.d.ts +28 -0
  5. package/dist/csw-domain-loader.d.ts.map +1 -0
  6. package/dist/csw-domain-loader.js +31 -0
  7. package/dist/csw-records-loader.d.ts +12 -0
  8. package/dist/csw-records-loader.d.ts.map +1 -0
  9. package/dist/csw-records-loader.js +30 -0
  10. package/dist/dist.min.js +3781 -4001
  11. package/dist/es5/csw-capabilities-loader.js +55 -0
  12. package/dist/es5/csw-capabilities-loader.js.map +1 -0
  13. package/dist/es5/csw-domain-loader.js +54 -0
  14. package/dist/es5/csw-domain-loader.js.map +1 -0
  15. package/dist/es5/csw-records-loader.js +52 -0
  16. package/dist/es5/csw-records-loader.js.map +1 -0
  17. package/dist/es5/{wip/gml-loader.js → gml-loader.js} +3 -3
  18. package/dist/es5/gml-loader.js.map +1 -0
  19. package/dist/es5/index.js +43 -8
  20. package/dist/es5/index.js.map +1 -1
  21. package/dist/es5/lerc-loader.js +1 -1
  22. package/dist/es5/lerc-loader.js.map +1 -1
  23. package/dist/es5/lib/{data-sources/create-image-source.js → create-image-source.js} +4 -4
  24. package/dist/es5/lib/create-image-source.js.map +1 -0
  25. package/dist/es5/lib/parsers/csw/parse-csw-capabilities.js +24 -0
  26. package/dist/es5/lib/parsers/csw/parse-csw-capabilities.js.map +1 -0
  27. package/dist/es5/lib/parsers/csw/parse-csw-domain.js +42 -0
  28. package/dist/es5/lib/parsers/csw/parse-csw-domain.js.map +1 -0
  29. package/dist/es5/lib/parsers/csw/parse-csw-records.js +76 -0
  30. package/dist/es5/lib/parsers/csw/parse-csw-records.js.map +1 -0
  31. package/dist/es5/lib/parsers/csw/parse-exception-report.js +18 -0
  32. package/dist/es5/lib/parsers/csw/parse-exception-report.js.map +1 -0
  33. package/dist/es5/lib/parsers/gml/deep-strict-equal.js.map +1 -0
  34. package/dist/es5/lib/parsers/gml/parse-gml.js.map +1 -0
  35. package/dist/es5/lib/parsers/lerc/lerc-types.js.map +1 -0
  36. package/dist/es5/lib/{wms/parse-wms.js → parsers/wms/parse-wms-capabilities.js} +1 -42
  37. package/dist/es5/lib/parsers/wms/parse-wms-capabilities.js.map +1 -0
  38. package/dist/es5/lib/parsers/wms/parse-wms-error.js +16 -0
  39. package/dist/es5/lib/parsers/wms/parse-wms-error.js.map +1 -0
  40. package/dist/es5/lib/parsers/wms/parse-wms-features.js +33 -0
  41. package/dist/es5/lib/parsers/wms/parse-wms-features.js.map +1 -0
  42. package/dist/es5/lib/parsers/wms/parse-wms-layer-description.js +13 -0
  43. package/dist/es5/lib/parsers/wms/parse-wms-layer-description.js.map +1 -0
  44. package/dist/es5/lib/{data-sources/image-services → services/arcgis}/arcgis-image-service.js +36 -29
  45. package/dist/es5/lib/services/arcgis/arcgis-image-service.js.map +1 -0
  46. package/dist/es5/lib/services/arcgis/arcgis-server.js +115 -0
  47. package/dist/es5/lib/services/arcgis/arcgis-server.js.map +1 -0
  48. package/dist/es5/lib/{data-sources/adhoc-image-service.js → services/generic/image-service.js} +22 -19
  49. package/dist/es5/lib/services/generic/image-service.js.map +1 -0
  50. package/dist/es5/lib/services/generic/tile-service.js +2 -0
  51. package/dist/es5/lib/services/generic/tile-service.js.map +1 -0
  52. package/dist/es5/lib/services/ogc/csw-service.js +384 -0
  53. package/dist/es5/lib/services/ogc/csw-service.js.map +1 -0
  54. package/dist/es5/lib/{data-sources/image-services → services/ogc}/wms-service.js +163 -115
  55. package/dist/es5/lib/services/ogc/wms-service.js.map +1 -0
  56. package/dist/es5/lib/services/ogc/wmts-service.ts.disabled +348 -0
  57. package/dist/es5/lib/sources/data-source.js +44 -0
  58. package/dist/es5/lib/sources/data-source.js.map +1 -0
  59. package/dist/es5/lib/sources/image-source.js +26 -0
  60. package/dist/es5/lib/sources/image-source.js.map +1 -0
  61. package/dist/es5/lib/sources/tile-source.js +26 -0
  62. package/dist/es5/lib/sources/tile-source.js.map +1 -0
  63. package/dist/es5/lib/sources/utils/utils.js +40 -0
  64. package/dist/es5/lib/sources/utils/utils.js.map +1 -0
  65. package/dist/es5/{lib/wfs/parse-wfs.js → wip/lib/wcs/parse-wcs-capabilities.js} +7 -29
  66. package/dist/es5/wip/lib/wcs/parse-wcs-capabilities.js.map +1 -0
  67. package/dist/es5/{lib/wcs/parse-wcs.js → wip/lib/wfs/parse-wfs-capabilities.js} +7 -28
  68. package/dist/es5/wip/lib/wfs/parse-wfs-capabilities.js.map +1 -0
  69. package/dist/es5/{lib/wmts/parse-wmts.js → wip/lib/wmts/parse-wmts-capabilities.js} +7 -28
  70. package/dist/es5/wip/lib/wmts/parse-wmts-capabilities.js.map +1 -0
  71. package/dist/es5/wip/wcs-capabilities-loader.js +4 -4
  72. package/dist/es5/wip/wcs-capabilities-loader.js.map +1 -1
  73. package/dist/es5/wip/wfs-capabilities-loader.js +4 -4
  74. package/dist/es5/wip/wfs-capabilities-loader.js.map +1 -1
  75. package/dist/es5/wip/wms-feature-info-loader.js +3 -3
  76. package/dist/es5/wip/wms-feature-info-loader.js.map +1 -1
  77. package/dist/es5/wip/wms-layer-description-loader.js +3 -3
  78. package/dist/es5/wip/wms-layer-description-loader.js.map +1 -1
  79. package/dist/es5/wip/wmts-capabilities-loader.js +10 -4
  80. package/dist/es5/wip/wmts-capabilities-loader.js.map +1 -1
  81. package/dist/es5/wms-capabilities-loader.js +5 -4
  82. package/dist/es5/wms-capabilities-loader.js.map +1 -1
  83. package/dist/es5/wms-error-loader.js +3 -3
  84. package/dist/es5/wms-error-loader.js.map +1 -1
  85. package/dist/esm/csw-capabilities-loader.js +26 -0
  86. package/dist/esm/csw-capabilities-loader.js.map +1 -0
  87. package/dist/esm/csw-domain-loader.js +25 -0
  88. package/dist/esm/csw-domain-loader.js.map +1 -0
  89. package/dist/esm/csw-records-loader.js +24 -0
  90. package/dist/esm/csw-records-loader.js.map +1 -0
  91. package/dist/esm/{wip/gml-loader.js → gml-loader.js} +3 -3
  92. package/dist/esm/gml-loader.js.map +1 -0
  93. package/dist/esm/index.js +16 -8
  94. package/dist/esm/index.js.map +1 -1
  95. package/dist/esm/lerc-loader.js +1 -1
  96. package/dist/esm/lerc-loader.js.map +1 -1
  97. package/dist/esm/lib/{data-sources/create-image-source.js → create-image-source.js} +4 -4
  98. package/dist/esm/lib/create-image-source.js.map +1 -0
  99. package/dist/esm/lib/parsers/csw/parse-csw-capabilities.js +19 -0
  100. package/dist/esm/lib/parsers/csw/parse-csw-capabilities.js.map +1 -0
  101. package/dist/esm/lib/parsers/csw/parse-csw-domain.js +25 -0
  102. package/dist/esm/lib/parsers/csw/parse-csw-domain.js.map +1 -0
  103. package/dist/esm/lib/parsers/csw/parse-csw-records.js +46 -0
  104. package/dist/esm/lib/parsers/csw/parse-csw-records.js.map +1 -0
  105. package/dist/esm/lib/parsers/csw/parse-exception-report.js +13 -0
  106. package/dist/esm/lib/parsers/csw/parse-exception-report.js.map +1 -0
  107. package/dist/esm/lib/parsers/gml/deep-strict-equal.js.map +1 -0
  108. package/dist/esm/lib/parsers/gml/parse-gml.js.map +1 -0
  109. package/dist/esm/lib/parsers/lerc/lerc-types.js.map +1 -0
  110. package/dist/esm/lib/{wms/parse-wms.js → parsers/wms/parse-wms-capabilities.js} +1 -37
  111. package/dist/esm/lib/parsers/wms/parse-wms-capabilities.js.map +1 -0
  112. package/dist/esm/lib/parsers/wms/parse-wms-error.js +12 -0
  113. package/dist/esm/lib/parsers/wms/parse-wms-error.js.map +1 -0
  114. package/dist/esm/lib/parsers/wms/parse-wms-features.js +27 -0
  115. package/dist/esm/lib/parsers/wms/parse-wms-features.js.map +1 -0
  116. package/dist/esm/lib/parsers/wms/parse-wms-layer-description.js +9 -0
  117. package/dist/esm/lib/parsers/wms/parse-wms-layer-description.js.map +1 -0
  118. package/dist/esm/lib/services/arcgis/arcgis-image-service.js +67 -0
  119. package/dist/esm/lib/services/arcgis/arcgis-image-service.js.map +1 -0
  120. package/dist/esm/lib/services/arcgis/arcgis-server.js +35 -0
  121. package/dist/esm/lib/services/arcgis/arcgis-server.js.map +1 -0
  122. package/dist/esm/lib/{data-sources/adhoc-image-service.js → services/generic/image-service.js} +13 -10
  123. package/dist/esm/lib/services/generic/image-service.js.map +1 -0
  124. package/dist/esm/lib/services/generic/tile-service.js +2 -0
  125. package/dist/esm/lib/services/generic/tile-service.js.map +1 -0
  126. package/dist/esm/lib/services/ogc/csw-service.js +162 -0
  127. package/dist/esm/lib/services/ogc/csw-service.js.map +1 -0
  128. package/dist/esm/lib/{data-sources/image-services → services/ogc}/wms-service.js +40 -34
  129. package/dist/esm/lib/services/ogc/wms-service.js.map +1 -0
  130. package/dist/esm/lib/services/ogc/wmts-service.ts.disabled +348 -0
  131. package/dist/esm/lib/sources/data-source.js +29 -0
  132. package/dist/esm/lib/sources/data-source.js.map +1 -0
  133. package/dist/esm/lib/sources/image-source.js +6 -0
  134. package/dist/esm/lib/sources/image-source.js.map +1 -0
  135. package/dist/esm/lib/sources/tile-source.js +6 -0
  136. package/dist/esm/lib/sources/tile-source.js.map +1 -0
  137. package/dist/esm/lib/sources/utils/utils.js +26 -0
  138. package/dist/esm/lib/sources/utils/utils.js.map +1 -0
  139. package/dist/esm/wip/lib/wcs/parse-wcs-capabilities.js +16 -0
  140. package/dist/esm/wip/lib/wcs/parse-wcs-capabilities.js.map +1 -0
  141. package/dist/esm/wip/lib/wfs/parse-wfs-capabilities.js +17 -0
  142. package/dist/esm/wip/lib/wfs/parse-wfs-capabilities.js.map +1 -0
  143. package/dist/esm/wip/lib/wmts/parse-wmts-capabilities.js +17 -0
  144. package/dist/esm/wip/lib/wmts/parse-wmts-capabilities.js.map +1 -0
  145. package/dist/esm/wip/wcs-capabilities-loader.js +4 -4
  146. package/dist/esm/wip/wcs-capabilities-loader.js.map +1 -1
  147. package/dist/esm/wip/wfs-capabilities-loader.js +2 -2
  148. package/dist/esm/wip/wfs-capabilities-loader.js.map +1 -1
  149. package/dist/esm/wip/wms-feature-info-loader.js +1 -2
  150. package/dist/esm/wip/wms-feature-info-loader.js.map +1 -1
  151. package/dist/esm/wip/wms-layer-description-loader.js +1 -2
  152. package/dist/esm/wip/wms-layer-description-loader.js.map +1 -1
  153. package/dist/esm/wip/wmts-capabilities-loader.js +4 -2
  154. package/dist/esm/wip/wmts-capabilities-loader.js.map +1 -1
  155. package/dist/esm/wms-capabilities-loader.js +3 -2
  156. package/dist/esm/wms-capabilities-loader.js.map +1 -1
  157. package/dist/esm/wms-error-loader.js +2 -2
  158. package/dist/esm/wms-error-loader.js.map +1 -1
  159. package/dist/gml-loader.d.ts.map +1 -0
  160. package/dist/{wip/gml-loader.js → gml-loader.js} +2 -2
  161. package/dist/index.d.ts +25 -16
  162. package/dist/index.d.ts.map +1 -1
  163. package/dist/index.js +26 -14
  164. package/dist/lerc-loader.d.ts +1 -1
  165. package/dist/lerc-loader.d.ts.map +1 -1
  166. package/dist/lib/create-image-source.d.ts +17 -0
  167. package/dist/lib/create-image-source.d.ts.map +1 -0
  168. package/dist/lib/{data-sources/create-image-source.js → create-image-source.js} +5 -5
  169. package/dist/lib/{wmts/wmts-types.d.ts → parsers/csw/parse-csw-capabilities.d.ts} +9 -3
  170. package/dist/lib/parsers/csw/parse-csw-capabilities.d.ts.map +1 -0
  171. package/dist/lib/parsers/csw/parse-csw-capabilities.js +24 -0
  172. package/dist/lib/parsers/csw/parse-csw-domain.d.ts +17 -0
  173. package/dist/lib/parsers/csw/parse-csw-domain.d.ts.map +1 -0
  174. package/dist/lib/parsers/csw/parse-csw-domain.js +33 -0
  175. package/dist/lib/parsers/csw/parse-csw-records.d.ts +33 -0
  176. package/dist/lib/parsers/csw/parse-csw-records.d.ts.map +1 -0
  177. package/dist/lib/parsers/csw/parse-csw-records.js +58 -0
  178. package/dist/lib/parsers/csw/parse-exception-report.d.ts +6 -0
  179. package/dist/lib/parsers/csw/parse-exception-report.d.ts.map +1 -0
  180. package/dist/lib/parsers/csw/parse-exception-report.js +30 -0
  181. package/dist/lib/parsers/gml/deep-strict-equal.d.ts.map +1 -0
  182. package/dist/lib/parsers/gml/parse-gml.d.ts.map +1 -0
  183. package/dist/lib/parsers/lerc/lerc-types.d.ts.map +1 -0
  184. package/dist/lib/{wms/wms-types.d.ts → parsers/wms/parse-wms-capabilities.d.ts} +6 -19
  185. package/dist/lib/parsers/wms/parse-wms-capabilities.d.ts.map +1 -0
  186. package/dist/lib/{wms/wms-types.js → parsers/wms/parse-wms-capabilities.js} +61 -1
  187. package/dist/lib/parsers/wms/parse-wms-error.d.ts +8 -0
  188. package/dist/lib/parsers/wms/parse-wms-error.d.ts.map +1 -0
  189. package/dist/lib/parsers/wms/parse-wms-error.js +22 -0
  190. package/dist/lib/parsers/wms/parse-wms-features.d.ts +20 -0
  191. package/dist/lib/parsers/wms/parse-wms-features.d.ts.map +1 -0
  192. package/dist/lib/parsers/wms/parse-wms-features.js +27 -0
  193. package/dist/lib/parsers/wms/parse-wms-layer-description.d.ts +10 -0
  194. package/dist/lib/parsers/wms/parse-wms-layer-description.d.ts.map +1 -0
  195. package/dist/lib/parsers/wms/parse-wms-layer-description.js +15 -0
  196. package/dist/lib/{data-sources/image-services → services/arcgis}/arcgis-image-service.d.ts +25 -13
  197. package/dist/lib/services/arcgis/arcgis-image-service.d.ts.map +1 -0
  198. package/dist/lib/{data-sources → services/arcgis}/arcgis-image-service.js +33 -23
  199. package/dist/lib/services/arcgis/arcgis-server.d.ts +15 -0
  200. package/dist/lib/services/arcgis/arcgis-server.d.ts.map +1 -0
  201. package/dist/lib/services/arcgis/arcgis-server.js +42 -0
  202. package/dist/lib/{data-sources/image-services → services/generic}/image-service.d.ts +3 -13
  203. package/dist/lib/services/generic/image-service.d.ts.map +1 -0
  204. package/dist/lib/{data-sources/adhoc-image-service.js → services/generic/image-service.js} +12 -10
  205. package/dist/lib/services/generic/tile-service.d.ts +1 -0
  206. package/dist/lib/services/generic/tile-service.d.ts.map +1 -0
  207. package/dist/lib/services/generic/tile-service.js +1 -0
  208. package/dist/lib/services/ogc/csw-service.d.ts +115 -0
  209. package/dist/lib/services/ogc/csw-service.d.ts.map +1 -0
  210. package/dist/lib/services/ogc/csw-service.js +170 -0
  211. package/dist/lib/{data-sources/image-services → services/ogc}/wms-service.d.ts +41 -22
  212. package/dist/lib/services/ogc/wms-service.d.ts.map +1 -0
  213. package/dist/lib/{data-sources/image-services → services/ogc}/wms-service.js +41 -28
  214. package/dist/lib/sources/data-source.d.ts +22 -0
  215. package/dist/lib/sources/data-source.d.ts.map +1 -0
  216. package/dist/lib/sources/data-source.js +34 -0
  217. package/dist/lib/{data-sources → sources}/image-source.d.ts +4 -1
  218. package/dist/lib/sources/image-source.d.ts.map +1 -0
  219. package/dist/lib/{data-sources → sources}/image-source.js +2 -1
  220. package/dist/lib/sources/tile-source.d.ts +54 -0
  221. package/dist/lib/sources/tile-source.d.ts.map +1 -0
  222. package/dist/lib/sources/tile-source.js +13 -0
  223. package/dist/lib/sources/utils/utils.d.ts +13 -0
  224. package/dist/lib/sources/utils/utils.d.ts.map +1 -0
  225. package/dist/lib/sources/utils/utils.js +38 -0
  226. package/dist/{lib/wfs/wfs-types.d.ts → wip/lib/wcs/parse-wcs-capabilities.d.ts} +8 -3
  227. package/dist/wip/lib/wcs/parse-wcs-capabilities.d.ts.map +1 -0
  228. package/dist/wip/lib/wcs/parse-wcs-capabilities.js +15 -0
  229. package/dist/{lib/wcs/wcs-types.d.ts → wip/lib/wfs/parse-wfs-capabilities.d.ts} +6 -1
  230. package/dist/wip/lib/wfs/parse-wfs-capabilities.d.ts.map +1 -0
  231. package/dist/wip/lib/wfs/parse-wfs-capabilities.js +19 -0
  232. package/dist/wip/lib/wmts/parse-wmts-capabilities.d.ts +87 -0
  233. package/dist/wip/lib/wmts/parse-wmts-capabilities.d.ts.map +1 -0
  234. package/dist/wip/lib/wmts/parse-wmts-capabilities.js +77 -0
  235. package/dist/wip/wcs-capabilities-loader.d.ts +4 -3
  236. package/dist/wip/wcs-capabilities-loader.d.ts.map +1 -1
  237. package/dist/wip/wcs-capabilities-loader.js +3 -3
  238. package/dist/wip/wfs-capabilities-loader.d.ts +4 -3
  239. package/dist/wip/wfs-capabilities-loader.d.ts.map +1 -1
  240. package/dist/wip/wfs-capabilities-loader.js +3 -3
  241. package/dist/wip/wms-feature-info-loader.d.ts +4 -2
  242. package/dist/wip/wms-feature-info-loader.d.ts.map +1 -1
  243. package/dist/wip/wms-feature-info-loader.js +3 -3
  244. package/dist/wip/wms-layer-description-loader.d.ts +5 -3
  245. package/dist/wip/wms-layer-description-loader.d.ts.map +1 -1
  246. package/dist/wip/wms-layer-description-loader.js +3 -3
  247. package/dist/wip/wmts-capabilities-loader.d.ts +4 -3
  248. package/dist/wip/wmts-capabilities-loader.d.ts.map +1 -1
  249. package/dist/wip/wmts-capabilities-loader.js +3 -3
  250. package/dist/wms-capabilities-loader.d.ts +4 -3
  251. package/dist/wms-capabilities-loader.d.ts.map +1 -1
  252. package/dist/wms-capabilities-loader.js +3 -3
  253. package/dist/wms-error-loader.js +2 -2
  254. package/package.json +7 -7
  255. package/src/csw-capabilities-loader.ts +46 -0
  256. package/src/csw-domain-loader.ts +44 -0
  257. package/src/csw-records-loader.ts +42 -0
  258. package/src/{wip/gml-loader.ts → gml-loader.ts} +2 -2
  259. package/src/index.ts +48 -28
  260. package/src/lerc-loader.ts +1 -1
  261. package/src/lib/{data-sources/create-image-source.ts → create-image-source.ts} +12 -10
  262. package/src/lib/parsers/csw/parse-csw-capabilities.ts +103 -0
  263. package/src/lib/parsers/csw/parse-csw-domain.ts +45 -0
  264. package/src/lib/parsers/csw/parse-csw-records.ts +90 -0
  265. package/src/lib/parsers/csw/parse-exception-report.ts +31 -0
  266. package/src/lib/{wms/wms-types.ts → parsers/wms/parse-wms-capabilities.ts} +72 -53
  267. package/src/lib/parsers/wms/parse-wms-error.ts +22 -0
  268. package/src/lib/parsers/wms/parse-wms-features.ts +39 -0
  269. package/src/lib/parsers/wms/parse-wms-layer-description.ts +18 -0
  270. package/src/lib/{data-sources/image-services → services/arcgis}/arcgis-image-service.ts +44 -26
  271. package/src/lib/services/arcgis/arcgis-server.ts +59 -0
  272. package/src/lib/{data-sources/adhoc-image-service.ts → services/generic/image-service.ts} +18 -12
  273. package/src/lib/services/generic/tile-service.ts +0 -0
  274. package/src/lib/services/ogc/csw-service.ts +251 -0
  275. package/src/lib/{data-sources/image-services → services/ogc}/wms-service.ts +73 -34
  276. package/src/lib/services/ogc/wmts-service.ts.disabled +348 -0
  277. package/src/lib/sources/data-source.ts +46 -0
  278. package/src/lib/{data-sources → sources}/image-source.ts +5 -1
  279. package/src/lib/sources/tile-source.ts +59 -0
  280. package/src/lib/sources/utils/utils.ts +42 -0
  281. package/src/{lib/wmts/wmts-types.ts → wip/lib/wcs/parse-wcs-capabilities.ts} +15 -3
  282. package/src/{lib/wcs/wcs-types.ts → wip/lib/wfs/parse-wfs-capabilities.ts} +18 -1
  283. package/src/wip/lib/wmts/parse-wmts-capabilities.ts +170 -0
  284. package/src/wip/wcs-capabilities-loader.ts +6 -3
  285. package/src/wip/wfs-capabilities-loader.ts +4 -1
  286. package/src/wip/wms-feature-info-loader.ts +5 -1
  287. package/src/wip/wms-layer-description-loader.ts +7 -2
  288. package/src/wip/wmts-capabilities-loader.ts +4 -1
  289. package/src/wms-capabilities-loader.ts +5 -1
  290. package/src/wms-error-loader.ts +1 -1
  291. package/dist/es5/lib/data-sources/adhoc-image-service.js.map +0 -1
  292. package/dist/es5/lib/data-sources/arcgis-image-service.js +0 -180
  293. package/dist/es5/lib/data-sources/arcgis-image-service.js.map +0 -1
  294. package/dist/es5/lib/data-sources/create-image-source.js.map +0 -1
  295. package/dist/es5/lib/data-sources/image-services/arcgis-image-service.js.map +0 -1
  296. package/dist/es5/lib/data-sources/image-services/image-service.js +0 -163
  297. package/dist/es5/lib/data-sources/image-services/image-service.js.map +0 -1
  298. package/dist/es5/lib/data-sources/image-services/wms-service.js.map +0 -1
  299. package/dist/es5/lib/data-sources/image-source.js +0 -14
  300. package/dist/es5/lib/data-sources/image-source.js.map +0 -1
  301. package/dist/es5/lib/gml/deep-strict-equal.js.map +0 -1
  302. package/dist/es5/lib/gml/parse-gml.js.map +0 -1
  303. package/dist/es5/lib/lerc/lerc-types.js.map +0 -1
  304. package/dist/es5/lib/wcs/parse-wcs.js.map +0 -1
  305. package/dist/es5/lib/wcs/wcs-types.js +0 -2
  306. package/dist/es5/lib/wcs/wcs-types.js.map +0 -1
  307. package/dist/es5/lib/wfs/parse-wfs.js.map +0 -1
  308. package/dist/es5/lib/wfs/wfs-types.js +0 -2
  309. package/dist/es5/lib/wfs/wfs-types.js.map +0 -1
  310. package/dist/es5/lib/wms/parse-wms.js.map +0 -1
  311. package/dist/es5/lib/wms/wms-types.js +0 -2
  312. package/dist/es5/lib/wms/wms-types.js.map +0 -1
  313. package/dist/es5/lib/wmts/parse-wmts.js.map +0 -1
  314. package/dist/es5/lib/wmts/wmts-types.js +0 -2
  315. package/dist/es5/lib/wmts/wmts-types.js.map +0 -1
  316. package/dist/es5/wip/gml-loader.js.map +0 -1
  317. package/dist/esm/lib/data-sources/adhoc-image-service.js.map +0 -1
  318. package/dist/esm/lib/data-sources/arcgis-image-service.js +0 -62
  319. package/dist/esm/lib/data-sources/arcgis-image-service.js.map +0 -1
  320. package/dist/esm/lib/data-sources/create-image-source.js.map +0 -1
  321. package/dist/esm/lib/data-sources/image-services/arcgis-image-service.js +0 -61
  322. package/dist/esm/lib/data-sources/image-services/arcgis-image-service.js.map +0 -1
  323. package/dist/esm/lib/data-sources/image-services/image-service.js +0 -72
  324. package/dist/esm/lib/data-sources/image-services/image-service.js.map +0 -1
  325. package/dist/esm/lib/data-sources/image-services/wms-service.js.map +0 -1
  326. package/dist/esm/lib/data-sources/image-source.js +0 -4
  327. package/dist/esm/lib/data-sources/image-source.js.map +0 -1
  328. package/dist/esm/lib/gml/deep-strict-equal.js.map +0 -1
  329. package/dist/esm/lib/gml/parse-gml.js.map +0 -1
  330. package/dist/esm/lib/lerc/lerc-types.js.map +0 -1
  331. package/dist/esm/lib/wcs/parse-wcs.js +0 -32
  332. package/dist/esm/lib/wcs/parse-wcs.js.map +0 -1
  333. package/dist/esm/lib/wcs/wcs-types.js +0 -2
  334. package/dist/esm/lib/wcs/wcs-types.js.map +0 -1
  335. package/dist/esm/lib/wfs/parse-wfs.js +0 -32
  336. package/dist/esm/lib/wfs/parse-wfs.js.map +0 -1
  337. package/dist/esm/lib/wfs/wfs-types.js +0 -2
  338. package/dist/esm/lib/wfs/wfs-types.js.map +0 -1
  339. package/dist/esm/lib/wms/parse-wms.js.map +0 -1
  340. package/dist/esm/lib/wms/wms-types.js +0 -2
  341. package/dist/esm/lib/wms/wms-types.js.map +0 -1
  342. package/dist/esm/lib/wmts/parse-wmts.js +0 -32
  343. package/dist/esm/lib/wmts/parse-wmts.js.map +0 -1
  344. package/dist/esm/lib/wmts/wmts-types.js +0 -2
  345. package/dist/esm/lib/wmts/wmts-types.js.map +0 -1
  346. package/dist/esm/wip/gml-loader.js.map +0 -1
  347. package/dist/lib/data-sources/adhoc-image-service.d.ts +0 -24
  348. package/dist/lib/data-sources/adhoc-image-service.d.ts.map +0 -1
  349. package/dist/lib/data-sources/arcgis-image-service.d.ts +0 -79
  350. package/dist/lib/data-sources/arcgis-image-service.d.ts.map +0 -1
  351. package/dist/lib/data-sources/create-image-source.d.ts +0 -16
  352. package/dist/lib/data-sources/create-image-source.d.ts.map +0 -1
  353. package/dist/lib/data-sources/image-services/arcgis-image-service.d.ts.map +0 -1
  354. package/dist/lib/data-sources/image-services/arcgis-image-service.js +0 -85
  355. package/dist/lib/data-sources/image-services/image-service.d.ts.map +0 -1
  356. package/dist/lib/data-sources/image-services/image-service.js +0 -82
  357. package/dist/lib/data-sources/image-services/wms-service.d.ts.map +0 -1
  358. package/dist/lib/data-sources/image-source.d.ts.map +0 -1
  359. package/dist/lib/gml/deep-strict-equal.d.ts.map +0 -1
  360. package/dist/lib/gml/parse-gml.d.ts.map +0 -1
  361. package/dist/lib/lerc/lerc-types.d.ts.map +0 -1
  362. package/dist/lib/wcs/parse-wcs.d.ts +0 -7
  363. package/dist/lib/wcs/parse-wcs.d.ts.map +0 -1
  364. package/dist/lib/wcs/parse-wcs.js +0 -36
  365. package/dist/lib/wcs/wcs-types.d.ts.map +0 -1
  366. package/dist/lib/wcs/wcs-types.js +0 -3
  367. package/dist/lib/wfs/parse-wfs.d.ts +0 -7
  368. package/dist/lib/wfs/parse-wfs.d.ts.map +0 -1
  369. package/dist/lib/wfs/parse-wfs.js +0 -36
  370. package/dist/lib/wfs/wfs-types.d.ts.map +0 -1
  371. package/dist/lib/wfs/wfs-types.js +0 -3
  372. package/dist/lib/wms/parse-wms.d.ts +0 -24
  373. package/dist/lib/wms/parse-wms.d.ts.map +0 -1
  374. package/dist/lib/wms/parse-wms.js +0 -115
  375. package/dist/lib/wms/wms-types.d.ts.map +0 -1
  376. package/dist/lib/wmts/parse-wmts.d.ts +0 -7
  377. package/dist/lib/wmts/parse-wmts.d.ts.map +0 -1
  378. package/dist/lib/wmts/parse-wmts.js +0 -36
  379. package/dist/lib/wmts/wmts-types.d.ts.map +0 -1
  380. package/dist/lib/wmts/wmts-types.js +0 -3
  381. package/dist/wip/gml-loader.d.ts.map +0 -1
  382. package/src/lib/data-sources/arcgis-image-service.ts +0 -146
  383. package/src/lib/data-sources/image-services/image-service.ts +0 -105
  384. package/src/lib/wcs/parse-wcs.ts +0 -39
  385. package/src/lib/wfs/parse-wfs.ts +0 -39
  386. package/src/lib/wfs/wfs-types.ts +0 -78
  387. package/src/lib/wms/parse-wms.ts +0 -142
  388. package/src/lib/wmts/parse-wmts.ts +0 -39
  389. /package/dist/es5/lib/{gml → parsers/gml}/deep-strict-equal.js +0 -0
  390. /package/dist/es5/lib/{gml → parsers/gml}/parse-gml.js +0 -0
  391. /package/dist/es5/lib/{lerc → parsers/lerc}/lerc-types.js +0 -0
  392. /package/dist/esm/lib/{gml → parsers/gml}/deep-strict-equal.js +0 -0
  393. /package/dist/esm/lib/{gml → parsers/gml}/parse-gml.js +0 -0
  394. /package/dist/esm/lib/{lerc → parsers/lerc}/lerc-types.js +0 -0
  395. /package/dist/{wip/gml-loader.d.ts → gml-loader.d.ts} +0 -0
  396. /package/dist/lib/{gml → parsers/gml}/deep-strict-equal.d.ts +0 -0
  397. /package/dist/lib/{gml → parsers/gml}/deep-strict-equal.js +0 -0
  398. /package/dist/lib/{gml → parsers/gml}/parse-gml.d.ts +0 -0
  399. /package/dist/lib/{gml → parsers/gml}/parse-gml.js +0 -0
  400. /package/dist/lib/{lerc → parsers/lerc}/lerc-types.d.ts +0 -0
  401. /package/dist/lib/{lerc → parsers/lerc}/lerc-types.js +0 -0
  402. /package/src/lib/{gml → parsers/gml}/deep-strict-equal.ts +0 -0
  403. /package/src/lib/{gml → parsers/gml}/parse-gml.ts +0 -0
  404. /package/src/lib/{lerc → parsers/lerc}/lerc-types.ts +0 -0
@@ -0,0 +1,115 @@
1
+ import type { DataSourceProps } from '../../sources/data-source';
2
+ import { DataSource } from '../../sources/data-source';
3
+ import type { CSWCapabilities } from '../../../csw-capabilities-loader';
4
+ import type { CSWRecords } from '../../../csw-records-loader';
5
+ import type { CSWDomain } from '../../../csw-domain-loader';
6
+ type CSWCommonParameters = {
7
+ /** In case the endpoint supports multiple services */
8
+ service?: 'CSW';
9
+ /** In case the endpoint supports multiple CSW versions */
10
+ version?: '1.1.1' | '2.0.0' | '2.0.1' | '3.0.0' | '3.0.0';
11
+ };
12
+ export type CSWGetCapabilitiesParameters = CSWCommonParameters & {
13
+ /** Request type */
14
+ request?: 'GetCapabilities';
15
+ };
16
+ export type CSWGetRecordsParameters = CSWCommonParameters & {
17
+ /** Request type */
18
+ request?: 'GetRecords';
19
+ /** type of records */
20
+ typenames: 'csw:Record';
21
+ };
22
+ export type CSWGetDomainParameters = CSWCommonParameters & {
23
+ /** Request type */
24
+ request?: 'GetDomain';
25
+ };
26
+ export type Service = {
27
+ name: string;
28
+ type: string;
29
+ url: string;
30
+ params?: string;
31
+ scheme?: string;
32
+ };
33
+ export type CSWServiceProps = DataSourceProps & {
34
+ url: string;
35
+ };
36
+ /**
37
+ * The CSWService class provides
38
+ * - provides type safe methods to form URLs to a CSW service
39
+ * - provides type safe methods to query and parse results (and errors) from a CSW service
40
+ * - implements the ImageService interface
41
+ * @note Only the URL parameter conversion is supported. XML posts are not supported.
42
+ */
43
+ export declare class CSWService extends DataSource {
44
+ static type: 'csw';
45
+ static testURL: (url: string) => boolean;
46
+ props: CSWServiceProps;
47
+ capabilities: CSWCapabilities | null;
48
+ /** A list of loaders used by the CSWService methods */
49
+ readonly loaders: ({
50
+ /** In case the endpoint supports multiple CSW versions */
51
+ id: string;
52
+ name: string;
53
+ module: string;
54
+ version: any;
55
+ worker: boolean;
56
+ extensions: string[];
57
+ mimeTypes: string[];
58
+ testText: (text: string) => boolean;
59
+ options: {
60
+ csw: {};
61
+ };
62
+ parse: (arrayBuffer: ArrayBuffer, options?: import("../../../csw-capabilities-loader").CSWLoaderOptions | undefined) => Promise<CSWCapabilities>;
63
+ parseTextSync: (text: string, options?: import("../../../csw-capabilities-loader").CSWLoaderOptions | undefined) => CSWCapabilities;
64
+ } | {
65
+ id: string;
66
+ name: string;
67
+ module: string;
68
+ version: any;
69
+ worker: boolean;
70
+ extensions: string[];
71
+ mimeTypes: string[];
72
+ testText: (text: string) => boolean;
73
+ options: {
74
+ wms: {
75
+ throwOnError: boolean;
76
+ };
77
+ };
78
+ parse: (arrayBuffer: ArrayBuffer, options?: import("../../../wms-error-loader").WMSLoaderOptions | undefined) => Promise<string>;
79
+ parseSync: (arrayBuffer: ArrayBuffer, options?: import("../../../wms-error-loader").WMSLoaderOptions | undefined) => string;
80
+ parseTextSync: (text: string, options?: import("../../../wms-error-loader").WMSLoaderOptions | undefined) => string;
81
+ })[];
82
+ /** Create a CSWService */
83
+ constructor(props: CSWServiceProps);
84
+ getMetadata(): Promise<CSWCapabilities>;
85
+ normalizeMetadata(capabilities: CSWCapabilities): CSWCapabilities;
86
+ getServiceDirectory(options: {
87
+ includeUnknown?: boolean;
88
+ }): Promise<Service[]>;
89
+ _parseOGCUrl(url: string): {
90
+ url: string;
91
+ params: string;
92
+ };
93
+ /** Get Capabilities */
94
+ getCapabilities(wmsParameters?: CSWGetCapabilitiesParameters, vendorParameters?: Record<string, unknown>): Promise<CSWCapabilities>;
95
+ /** Get Records */
96
+ getRecords(wmsParameters?: CSWGetRecordsParameters, vendorParameters?: Record<string, unknown>): Promise<CSWRecords>;
97
+ /** Get Domain */
98
+ getDomain(wmsParameters?: CSWGetDomainParameters, vendorParameters?: Record<string, unknown>): Promise<CSWDomain>;
99
+ /** Generate a URL for the GetCapabilities request */
100
+ getCapabilitiesURL(wmsParameters?: CSWGetCapabilitiesParameters, vendorParameters?: Record<string, unknown>): string;
101
+ /** Generate a URL for the GetCapabilities request */
102
+ getRecordsURL(wmsParameters?: CSWGetRecordsParameters, vendorParameters?: Record<string, unknown>): string;
103
+ /** Generate a URL for the GetCapabilities request */
104
+ getDomainURL(wmsParameters?: CSWGetDomainParameters, vendorParameters?: Record<string, unknown>): string;
105
+ /**
106
+ * @note case _getCSWUrl may need to be overridden to handle certain backends?
107
+ * */
108
+ protected _getCSWUrl(options: Record<string, unknown>, vendorParameters?: Record<string, unknown>): string;
109
+ /** Checks for and parses a CSW XML formatted ServiceError and throws an exception */
110
+ protected _checkResponse(response: Response, arrayBuffer: ArrayBuffer): void;
111
+ /** Error situation detected */
112
+ protected _parseError(arrayBuffer: ArrayBuffer): Error;
113
+ }
114
+ export {};
115
+ //# sourceMappingURL=csw-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csw-service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/ogc/csw-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ // loaders.gl, MIT license
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.CSWService = void 0;
5
+ const data_source_1 = require("../../sources/data-source");
6
+ const csw_capabilities_loader_1 = require("../../../csw-capabilities-loader");
7
+ const csw_records_loader_1 = require("../../../csw-records-loader");
8
+ const csw_domain_loader_1 = require("../../../csw-domain-loader");
9
+ const wms_error_loader_1 = require("../../../wms-error-loader");
10
+ /**
11
+ * The CSWService class provides
12
+ * - provides type safe methods to form URLs to a CSW service
13
+ * - provides type safe methods to query and parse results (and errors) from a CSW service
14
+ * - implements the ImageService interface
15
+ * @note Only the URL parameter conversion is supported. XML posts are not supported.
16
+ */
17
+ class CSWService extends data_source_1.DataSource {
18
+ /** Create a CSWService */
19
+ constructor(props) {
20
+ super(props);
21
+ this.capabilities = null;
22
+ /** A list of loaders used by the CSWService methods */
23
+ this.loaders = [wms_error_loader_1.WMSErrorLoader, csw_capabilities_loader_1.CSWCapabilitiesLoader];
24
+ this.props = props;
25
+ }
26
+ async getMetadata() {
27
+ const capabilities = await this.getCapabilities();
28
+ return this.normalizeMetadata(capabilities);
29
+ }
30
+ normalizeMetadata(capabilities) {
31
+ return capabilities;
32
+ }
33
+ async getServiceDirectory(options) {
34
+ const services = [];
35
+ const unknownServices = [];
36
+ const records = await this.getRecords();
37
+ for (const record of records.records) {
38
+ for (const reference of record.references) {
39
+ const url = reference.value;
40
+ switch (reference.scheme) {
41
+ case 'OGC:WMS':
42
+ services.push({ name: record.title, type: 'ogc-wms-service', ...this._parseOGCUrl(url) });
43
+ break;
44
+ case 'OGC:WMTS':
45
+ services.push({
46
+ name: record.title,
47
+ type: 'ogc-wmts-service',
48
+ ...this._parseOGCUrl(url)
49
+ });
50
+ break;
51
+ case 'OGC:WFS':
52
+ services.push({ name: record.title, type: 'ogc-wfs-service', ...this._parseOGCUrl(url) });
53
+ break;
54
+ default:
55
+ unknownServices.push({
56
+ name: record.title,
57
+ type: 'unknown',
58
+ url: reference.value,
59
+ scheme: reference.scheme
60
+ });
61
+ }
62
+ }
63
+ }
64
+ return options?.includeUnknown ? services.concat(unknownServices) : services;
65
+ }
66
+ _parseOGCUrl(url) {
67
+ const parts = url.split('?');
68
+ return {
69
+ url: parts[0],
70
+ params: parts[1] || ''
71
+ };
72
+ }
73
+ // CSW Service API Stubs
74
+ /** Get Capabilities */
75
+ async getCapabilities(wmsParameters, vendorParameters) {
76
+ const url = this.getCapabilitiesURL(wmsParameters, vendorParameters);
77
+ const response = await this.fetch(url);
78
+ const arrayBuffer = await response.arrayBuffer();
79
+ this._checkResponse(response, arrayBuffer);
80
+ const capabilities = await csw_capabilities_loader_1.CSWCapabilitiesLoader.parse(arrayBuffer, this.props.loadOptions);
81
+ return capabilities;
82
+ }
83
+ /** Get Records */
84
+ async getRecords(wmsParameters, vendorParameters) {
85
+ const url = this.getRecordsURL(wmsParameters, vendorParameters);
86
+ const response = await this.fetch(url);
87
+ const arrayBuffer = await response.arrayBuffer();
88
+ this._checkResponse(response, arrayBuffer);
89
+ return await csw_records_loader_1.CSWRecordsLoader.parse(arrayBuffer, this.props.loadOptions);
90
+ }
91
+ /** Get Domain */
92
+ async getDomain(wmsParameters, vendorParameters) {
93
+ const url = this.getDomainURL(wmsParameters, vendorParameters);
94
+ const response = await this.fetch(url);
95
+ const arrayBuffer = await response.arrayBuffer();
96
+ this._checkResponse(response, arrayBuffer);
97
+ return await csw_domain_loader_1.CSWDomainLoader.parse(arrayBuffer, this.props.loadOptions);
98
+ }
99
+ // Typed URL creators
100
+ // For applications that want full control of fetching and parsing
101
+ /** Generate a URL for the GetCapabilities request */
102
+ getCapabilitiesURL(wmsParameters, vendorParameters) {
103
+ const options = {
104
+ version: '3.0.0',
105
+ ...wmsParameters,
106
+ ...vendorParameters,
107
+ service: 'CSW',
108
+ request: 'GetCapabilities'
109
+ };
110
+ return this._getCSWUrl(options, vendorParameters);
111
+ }
112
+ /** Generate a URL for the GetCapabilities request */
113
+ getRecordsURL(wmsParameters, vendorParameters) {
114
+ const options = {
115
+ version: '3.0.0',
116
+ typenames: 'csw:Record',
117
+ ...wmsParameters,
118
+ ...vendorParameters,
119
+ service: 'CSW',
120
+ request: 'GetRecords'
121
+ };
122
+ return this._getCSWUrl(options, vendorParameters);
123
+ }
124
+ /** Generate a URL for the GetCapabilities request */
125
+ getDomainURL(wmsParameters, vendorParameters) {
126
+ const options = {
127
+ version: '3.0.0',
128
+ ...wmsParameters,
129
+ ...vendorParameters,
130
+ service: 'CSW',
131
+ request: 'GetDomain'
132
+ };
133
+ return this._getCSWUrl(options, vendorParameters);
134
+ }
135
+ // INTERNAL METHODS
136
+ /**
137
+ * @note case _getCSWUrl may need to be overridden to handle certain backends?
138
+ * */
139
+ _getCSWUrl(options, vendorParameters) {
140
+ let url = this.props.url;
141
+ let first = true;
142
+ for (const [key, value] of Object.entries(options)) {
143
+ url += first ? '?' : '&';
144
+ first = false;
145
+ if (Array.isArray(value)) {
146
+ url += `${key.toUpperCase()}=${value.join(',')}`;
147
+ }
148
+ else {
149
+ url += `${key.toUpperCase()}=${value ? String(value) : ''}`;
150
+ }
151
+ }
152
+ return encodeURI(url);
153
+ }
154
+ /** Checks for and parses a CSW XML formatted ServiceError and throws an exception */
155
+ _checkResponse(response, arrayBuffer) {
156
+ const contentType = response.headers['content-type'];
157
+ if (!response.ok || wms_error_loader_1.WMSErrorLoader.mimeTypes.includes(contentType)) {
158
+ const error = wms_error_loader_1.WMSErrorLoader.parseSync(arrayBuffer, this.props.loadOptions);
159
+ throw new Error(error);
160
+ }
161
+ }
162
+ /** Error situation detected */
163
+ _parseError(arrayBuffer) {
164
+ const error = wms_error_loader_1.WMSErrorLoader.parseSync(arrayBuffer, this.props.loadOptions);
165
+ return new Error(error);
166
+ }
167
+ }
168
+ exports.CSWService = CSWService;
169
+ CSWService.type = 'csw';
170
+ CSWService.testURL = (url) => url.toLowerCase().includes('csw');
@@ -1,8 +1,11 @@
1
1
  import type { ImageType } from '@loaders.gl/images';
2
- import type { ImageSourceMetadata, GetImageParameters } from '../image-source';
3
- import { ImageSource } from '../image-source';
4
- import { ImageServiceProps } from './image-service';
5
- import type { WMSCapabilities, WMSFeatureInfo, WMSLayerDescription } from '../../wms/wms-types';
2
+ import type { ImageSourceMetadata, GetImageParameters } from '../../sources/image-source';
3
+ import type { ImageSourceProps } from '../../sources/image-source';
4
+ import { ImageSource } from '../../sources/image-source';
5
+ import type { WMSCapabilities } from '../../../wms-capabilities-loader';
6
+ import type { WMSFeatureInfo } from '../../../wip/wms-feature-info-loader';
7
+ import type { WMSLayerDescription } from '../../../wip/wms-layer-description-loader';
8
+ import type { WMSLoaderOptions } from '../../../wms-error-loader';
6
9
  type WMSCommonParameters = {
7
10
  /** In case the endpoint supports multiple services */
8
11
  service?: 'WMS';
@@ -40,7 +43,7 @@ export type WMSGetFeatureInfoParameters = WMSCommonParameters & {
40
43
  y: number;
41
44
  /** list of layers to query (could be different from rendered layers) */
42
45
  query_layers: string[];
43
- /** MIME type of returned feature info */
46
+ /** Requested MIME type of returned feature info */
44
47
  info_format?: 'text/plain' | 'application/vnd.ogc.gml';
45
48
  /** Layers to render */
46
49
  layers: string[];
@@ -65,6 +68,23 @@ export type WMSGetLegendGraphicParameters = WMSCommonParameters & {
65
68
  /** Request type */
66
69
  request?: 'GetLegendGraphic';
67
70
  };
71
+ /** Properties for initializing a WMS service */
72
+ export type WMSServiceProps = ImageSourceProps & {
73
+ /** Base URL to the service */
74
+ url: string;
75
+ /** WMS version */
76
+ version?: '1.1.1' | '1.3.0';
77
+ /** Layers to render */
78
+ layers?: string[];
79
+ /** SRS for the image (not the bounding box) */
80
+ srs?: string;
81
+ /** Requested format for the return image */
82
+ format?: 'image/png';
83
+ /** Requested MIME type of returned feature info */
84
+ info_format?: 'text/plain' | 'application/vnd.ogc.gml';
85
+ /** Styling */
86
+ styles?: unknown;
87
+ };
68
88
  /**
69
89
  * The WMSService class provides
70
90
  * - provides type safe methods to form URLs to a WMS service
@@ -75,8 +95,7 @@ export type WMSGetLegendGraphicParameters = WMSCommonParameters & {
75
95
  export declare class WMSService extends ImageSource {
76
96
  static type: 'wms';
77
97
  static testURL: (url: string) => boolean;
78
- props: Required<ImageServiceProps>;
79
- fetch: (url: string, options?: RequestInit) => Promise<Response>;
98
+ props: Required<WMSServiceProps>;
80
99
  capabilities: WMSCapabilities | null;
81
100
  /** A list of loaders used by the WMSService methods */
82
101
  readonly loaders: ({
@@ -93,9 +112,9 @@ export declare class WMSService extends ImageSource {
93
112
  throwOnError: boolean;
94
113
  };
95
114
  };
96
- parse: (arrayBuffer: ArrayBuffer, options?: import("../../../wms-error-loader").WMSLoaderOptions | undefined) => Promise<string>;
97
- parseSync: (arrayBuffer: ArrayBuffer, options?: import("../../../wms-error-loader").WMSLoaderOptions | undefined) => string;
98
- parseTextSync: (text: string, options?: import("../../../wms-error-loader").WMSLoaderOptions | undefined) => string;
115
+ parse: (arrayBuffer: ArrayBuffer, options?: WMSLoaderOptions | undefined) => Promise<string>;
116
+ parseSync: (arrayBuffer: ArrayBuffer, options?: WMSLoaderOptions | undefined) => string;
117
+ parseTextSync: (text: string, options?: WMSLoaderOptions | undefined) => string;
99
118
  } | {
100
119
  id: string;
101
120
  name: string;
@@ -108,19 +127,8 @@ export declare class WMSService extends ImageSource {
108
127
  options: {
109
128
  wms: {};
110
129
  };
111
- /** In case the endpoint supports multiple services */
112
130
  parse: (arrayBuffer: ArrayBuffer, options?: import("../../../wms-capabilities-loader").WMSLoaderOptions | undefined) => Promise<WMSCapabilities>;
113
131
  parseTextSync: (text: string, options?: import("../../../wms-capabilities-loader").WMSLoaderOptions | undefined) => WMSCapabilities;
114
- } | {
115
- id: string;
116
- module: string;
117
- name: string;
118
- version: any;
119
- mimeTypes: string[];
120
- extensions: string[];
121
- parse: typeof import("modules/images/src/lib/parsers/parse-image").default;
122
- tests: ((arrayBuffer: any) => boolean)[];
123
- options: import("@loaders.gl/images").ImageLoaderOptions;
124
132
  } | {
125
133
  id: string;
126
134
  name: string;
@@ -149,11 +157,22 @@ export declare class WMSService extends ImageSource {
149
157
  options: {
150
158
  wms: {};
151
159
  };
160
+ } | {
161
+ id: string;
162
+ module: string;
163
+ name: string;
164
+ version: any;
165
+ mimeTypes: string[];
166
+ extensions: string[];
167
+ parse: typeof import("modules/images/src/lib/parsers/parse-image").default;
168
+ tests: ((arrayBuffer: any) => boolean)[];
169
+ options: import("@loaders.gl/images").ImageLoaderOptions;
152
170
  })[];
153
171
  /** Create a WMSService */
154
- constructor(props: ImageServiceProps);
172
+ constructor(props: WMSServiceProps);
155
173
  getMetadata(): Promise<ImageSourceMetadata>;
156
174
  getImage(parameters: GetImageParameters): Promise<ImageType>;
175
+ normalizeMetadata(capabilities: WMSCapabilities): ImageSourceMetadata;
157
176
  /** Get Capabilities */
158
177
  getCapabilities(wmsParameters?: WMSGetCapabilitiesParameters, vendorParameters?: Record<string, unknown>): Promise<WMSCapabilities>;
159
178
  /** Get a map image */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wms-service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/ogc/wms-service.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.WMSService = void 0;
5
5
  const images_1 = require("@loaders.gl/images");
6
- const image_source_1 = require("../image-source");
7
- const image_service_1 = require("./image-service");
6
+ const loader_utils_1 = require("@loaders.gl/loader-utils");
7
+ const image_source_1 = require("../../sources/image-source");
8
8
  const wms_capabilities_loader_1 = require("../../../wms-capabilities-loader");
9
9
  const wms_feature_info_loader_1 = require("../../../wip/wms-feature-info-loader");
10
10
  const wms_layer_description_loader_1 = require("../../../wip/wms-layer-description-loader");
@@ -19,7 +19,7 @@ const wms_error_loader_1 = require("../../../wms-error-loader");
19
19
  class WMSService extends image_source_1.ImageSource {
20
20
  /** Create a WMSService */
21
21
  constructor(props) {
22
- super();
22
+ super(props);
23
23
  this.capabilities = null;
24
24
  /** A list of loaders used by the WMSService methods */
25
25
  this.loaders = [
@@ -29,20 +29,29 @@ class WMSService extends image_source_1.ImageSource {
29
29
  wms_feature_info_loader_1.WMSFeatureInfoLoader,
30
30
  wms_layer_description_loader_1.WMSLayerDescriptionLoader
31
31
  ];
32
- this.props = (0, image_service_1.mergeImageServiceProps)(props);
33
- this.fetch = (0, image_service_1.getFetchFunction)(this.props);
34
- this.props.loadOptions = {
35
- ...this.props.loadOptions,
36
- // We want error responses to throw exceptions, the WMSErrorLoader can do this
37
- wms: { ...this.props.loadOptions?.wms, throwOnError: true }
32
+ // TODO - defaults such as version, layers etc could be extracted from a base URL with parameters
33
+ // This would make pasting in any WMS URL more likely to make this class just work.
34
+ this.props = {
35
+ loadOptions: undefined,
36
+ layers: undefined,
37
+ styles: undefined,
38
+ version: '1.1.1',
39
+ srs: 'EPSG:4326',
40
+ format: 'image/png',
41
+ info_format: 'text/plain',
42
+ ...props
38
43
  };
39
44
  }
40
45
  // ImageSource implementation
41
- getMetadata() {
42
- return this.getCapabilities();
46
+ async getMetadata() {
47
+ const capabilities = await this.getCapabilities();
48
+ return this.normalizeMetadata(capabilities);
43
49
  }
44
- getImage(parameters) {
45
- return this.getMap(parameters);
50
+ async getImage(parameters) {
51
+ return await this.getMap(parameters);
52
+ }
53
+ normalizeMetadata(capabilities) {
54
+ return capabilities;
46
55
  }
47
56
  // WMS Service API Stubs
48
57
  /** Get Capabilities */
@@ -78,7 +87,6 @@ class WMSService extends image_source_1.ImageSource {
78
87
  }
79
88
  /** Get Feature Info for a coordinate */
80
89
  async getFeatureInfoText(options, vendorParameters) {
81
- options = { ...options, info_format: 'text/plain' };
82
90
  const url = this.getFeatureInfoURL(options, vendorParameters);
83
91
  const response = await this.fetch(url);
84
92
  const arrayBuffer = await response.arrayBuffer();
@@ -112,7 +120,7 @@ class WMSService extends image_source_1.ImageSource {
112
120
  getCapabilitiesURL(wmsParameters, vendorParameters) {
113
121
  const options = {
114
122
  service: 'WMS',
115
- version: '1.1.1',
123
+ version: this.props.version,
116
124
  request: 'GetCapabilities',
117
125
  ...wmsParameters,
118
126
  ...vendorParameters
@@ -123,15 +131,15 @@ class WMSService extends image_source_1.ImageSource {
123
131
  getMapURL(wmsParameters, vendorParameters) {
124
132
  const options = {
125
133
  service: 'WMS',
126
- version: '1.1.1',
134
+ version: this.props.version,
127
135
  request: 'GetMap',
128
136
  // layers: [],
129
137
  // bbox: [-77.87304, 40.78975, -77.85828, 40.80228],
130
138
  // width: 1200,
131
139
  // height: 900,
132
- styles: undefined,
133
- srs: 'EPSG:4326',
134
- format: 'image/png',
140
+ styles: this.props.styles,
141
+ srs: this.props.srs,
142
+ format: this.props.format,
135
143
  ...wmsParameters,
136
144
  ...vendorParameters
137
145
  };
@@ -141,19 +149,19 @@ class WMSService extends image_source_1.ImageSource {
141
149
  getFeatureInfoURL(wmsParameters, vendorParameters) {
142
150
  const options = {
143
151
  service: 'WMS',
144
- version: '1.1.1',
152
+ version: this.props.version,
145
153
  request: 'GetFeatureInfo',
146
- // layers: [],
154
+ // layers: this.props.layers,
147
155
  // bbox: [-77.87304, 40.78975, -77.85828, 40.80228],
148
156
  // width: 1200,
149
157
  // height: 900,
150
158
  // x: undefined!,
151
159
  // y: undefined!,
152
160
  // query_layers: [],
153
- srs: 'EPSG:4326',
154
- format: 'image/png',
155
- info_format: 'text/plain',
156
- styles: undefined,
161
+ srs: this.props.srs,
162
+ format: this.props.format,
163
+ info_format: this.props.info_format,
164
+ styles: this.props.styles,
157
165
  ...wmsParameters,
158
166
  ...vendorParameters
159
167
  };
@@ -163,7 +171,7 @@ class WMSService extends image_source_1.ImageSource {
163
171
  describeLayerURL(wmsParameters, vendorParameters) {
164
172
  const options = {
165
173
  service: 'WMS',
166
- version: '1.1.1',
174
+ version: this.props.version,
167
175
  request: 'DescribeLayer',
168
176
  ...wmsParameters,
169
177
  ...vendorParameters
@@ -173,8 +181,9 @@ class WMSService extends image_source_1.ImageSource {
173
181
  getLegendGraphicURL(wmsParameters, vendorParameters) {
174
182
  const options = {
175
183
  service: 'WMS',
176
- version: '1.1.1',
184
+ version: this.props.version,
177
185
  request: 'GetLegendGraphic',
186
+ // format?
178
187
  ...wmsParameters,
179
188
  ...vendorParameters
180
189
  };
@@ -203,7 +212,11 @@ class WMSService extends image_source_1.ImageSource {
203
212
  _checkResponse(response, arrayBuffer) {
204
213
  const contentType = response.headers['content-type'];
205
214
  if (!response.ok || wms_error_loader_1.WMSErrorLoader.mimeTypes.includes(contentType)) {
206
- const error = wms_error_loader_1.WMSErrorLoader.parseSync(arrayBuffer, this.props.loadOptions);
215
+ // We want error responses to throw exceptions, the WMSErrorLoader can do this
216
+ const loadOptions = (0, loader_utils_1.mergeLoaderOptions)(this.props.loadOptions, {
217
+ wms: { throwOnError: true }
218
+ });
219
+ const error = wms_error_loader_1.WMSErrorLoader.parseSync(arrayBuffer, loadOptions);
207
220
  throw new Error(error);
208
221
  }
209
222
  }
@@ -0,0 +1,22 @@
1
+ import type { LoaderOptions } from '@loaders.gl/loader-utils';
2
+ export type DataSourceProps = {
3
+ /** LoaderOptions provide an option to override `fetch`. Will also be passed to any sub loaders */
4
+ loadOptions?: LoaderOptions;
5
+ };
6
+ /** base class of all data sources */
7
+ export declare abstract class DataSource {
8
+ /** A resolved fetch function extracted from loadOptions prop */
9
+ fetch: (url: string, options?: RequestInit) => Promise<Response>;
10
+ /** The actual load options, if calling a loaders.gl loader */
11
+ loadOptions: LoaderOptions;
12
+ constructor(props: DataSourceProps);
13
+ }
14
+ /**
15
+ * Gets the current fetch function from options
16
+ * @todo - move to loader-utils module
17
+ * @todo - use in core module counterpart
18
+ * @param options
19
+ * @param context
20
+ */
21
+ export declare function getFetchFunction(options?: LoaderOptions): (url: string, fetchOptions?: RequestInit) => Promise<Response>;
22
+ //# sourceMappingURL=data-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-source.d.ts","sourceRoot":"","sources":["../../../src/lib/sources/data-source.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAE5D,MAAM,MAAM,eAAe,GAAG;IAC5B,kGAAkG;IAClG,WAAW,CAAC,EAAE,aAAa,CAAC;CAC7B,CAAC;AAEF,qCAAqC;AACrC,8BAAsB,UAAU;IAC9B,gEAAgE;IAChE,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjE,8DAA8D;IAC9D,WAAW,EAAE,aAAa,CAAC;gBAEf,KAAK,EAAE,eAAe;CAInC;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,aAAa,SAKvC,MAAM,iBAAiB,WAAW,uBAWlD"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ // loaders.gl, MIT license
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.getFetchFunction = exports.DataSource = void 0;
5
+ /** base class of all data sources */
6
+ class DataSource {
7
+ constructor(props) {
8
+ this.loadOptions = { ...props.loadOptions };
9
+ this.fetch = getFetchFunction(this.loadOptions);
10
+ }
11
+ }
12
+ exports.DataSource = DataSource;
13
+ /**
14
+ * Gets the current fetch function from options
15
+ * @todo - move to loader-utils module
16
+ * @todo - use in core module counterpart
17
+ * @param options
18
+ * @param context
19
+ */
20
+ function getFetchFunction(options) {
21
+ const fetchFunction = options?.fetch;
22
+ // options.fetch can be a function
23
+ if (fetchFunction && typeof fetchFunction === 'function') {
24
+ return (url, fetchOptions) => fetchFunction(url, fetchOptions);
25
+ }
26
+ // options.fetch can be an options object, use global fetch with those options
27
+ const fetchOptions = options?.fetch;
28
+ if (fetchOptions && typeof fetchOptions !== 'function') {
29
+ return (url) => fetch(url, fetchOptions);
30
+ }
31
+ // else return the global fetch function
32
+ return (url) => fetch(url);
33
+ }
34
+ exports.getFetchFunction = getFetchFunction;
@@ -1,4 +1,6 @@
1
1
  import type { ImageType } from '@loaders.gl/images';
2
+ import type { DataSourceProps } from './data-source';
3
+ import { DataSource } from './data-source';
2
4
  /**
3
5
  * Normalized capabilities of an Image service
4
6
  * @example
@@ -61,12 +63,13 @@ export type ImageFormat = {
61
63
  /** requested format for the return image */
62
64
  format?: 'image/png';
63
65
  };
66
+ export type ImageSourceProps = DataSourceProps;
64
67
  /**
65
68
  * MapImageSource - data sources that allow data to be queried by (geospatial) extents
66
69
  * @note
67
70
  * - If geospatial, bounding box is expected to be in web mercator coordinates
68
71
  */
69
- export declare abstract class ImageSource {
72
+ export declare abstract class ImageSource extends DataSource {
70
73
  abstract getMetadata(): Promise<ImageSourceMetadata>;
71
74
  abstract getImage(parameters: GetImageParameters): Promise<ImageType>;
72
75
  }