@loaders.gl/wms 3.4.0-alpha.1 → 3.4.0-alpha.3

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 (428) 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 +3951 -3986
  11. package/dist/es5/csw-capabilities-loader.js +51 -0
  12. package/dist/es5/csw-capabilities-loader.js.map +1 -0
  13. package/dist/es5/csw-domain-loader.js +51 -0
  14. package/dist/es5/csw-domain-loader.js.map +1 -0
  15. package/dist/es5/csw-records-loader.js +49 -0
  16. package/dist/es5/csw-records-loader.js.map +1 -0
  17. package/dist/es5/{wip/gml-loader.js → gml-loader.js} +9 -12
  18. package/dist/es5/gml-loader.js.map +1 -0
  19. package/dist/es5/index.js +39 -11
  20. package/dist/es5/index.js.map +1 -1
  21. package/dist/es5/lerc-loader.js +17 -22
  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} +5 -6
  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 +75 -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 +16 -0
  32. package/dist/es5/lib/parsers/csw/parse-exception-report.js.map +1 -0
  33. package/dist/es5/lib/{gml → parsers/gml}/deep-strict-equal.js +0 -8
  34. package/dist/es5/lib/parsers/gml/deep-strict-equal.js.map +1 -0
  35. package/dist/es5/lib/{gml → parsers/gml}/parse-gml.js +1 -13
  36. package/dist/es5/lib/parsers/gml/parse-gml.js.map +1 -0
  37. package/dist/es5/lib/parsers/lerc/lerc-types.js.map +1 -0
  38. package/dist/es5/lib/parsers/wms/parse-wms-capabilities.js +237 -0
  39. package/dist/es5/lib/parsers/wms/parse-wms-capabilities.js.map +1 -0
  40. package/dist/es5/lib/parsers/wms/parse-wms-error.js +15 -0
  41. package/dist/es5/lib/parsers/wms/parse-wms-error.js.map +1 -0
  42. package/dist/es5/lib/parsers/wms/parse-wms-features.js +32 -0
  43. package/dist/es5/lib/parsers/wms/parse-wms-features.js.map +1 -0
  44. package/dist/es5/lib/parsers/wms/parse-wms-layer-description.js +12 -0
  45. package/dist/es5/lib/parsers/wms/parse-wms-layer-description.js.map +1 -0
  46. package/dist/es5/lib/parsers/xml/parse-xml-helpers.js +67 -0
  47. package/dist/es5/lib/parsers/xml/parse-xml-helpers.js.map +1 -0
  48. package/dist/es5/lib/{data-sources/image-services → services/arcgis}/arcgis-image-service.js +68 -80
  49. package/dist/es5/lib/services/arcgis/arcgis-image-service.js.map +1 -0
  50. package/dist/es5/lib/services/arcgis/arcgis-server.js +111 -0
  51. package/dist/es5/lib/services/arcgis/arcgis-server.js.map +1 -0
  52. package/dist/es5/lib/{data-sources/adhoc-image-service.js → services/generic/image-service.js} +44 -50
  53. package/dist/es5/lib/services/generic/image-service.js.map +1 -0
  54. package/dist/es5/lib/services/generic/tile-service.js +2 -0
  55. package/dist/es5/lib/services/generic/tile-service.js.map +1 -0
  56. package/dist/es5/lib/services/ogc/csw-service.js +359 -0
  57. package/dist/es5/lib/services/ogc/csw-service.js.map +1 -0
  58. package/dist/es5/lib/services/ogc/wms-service.js +486 -0
  59. package/dist/es5/lib/services/ogc/wms-service.js.map +1 -0
  60. package/dist/es5/lib/services/ogc/wmts-service.ts.disabled +348 -0
  61. package/dist/es5/lib/sources/data-source.js +39 -0
  62. package/dist/es5/lib/sources/data-source.js.map +1 -0
  63. package/dist/es5/lib/sources/image-source.js +26 -0
  64. package/dist/es5/lib/sources/image-source.js.map +1 -0
  65. package/dist/es5/lib/sources/tile-source.js +26 -0
  66. package/dist/es5/lib/sources/tile-source.js.map +1 -0
  67. package/dist/es5/lib/sources/utils/utils.js +36 -0
  68. package/dist/es5/lib/sources/utils/utils.js.map +1 -0
  69. package/dist/es5/wip/arcgis-feature-service.js +2 -7
  70. package/dist/es5/wip/arcgis-feature-service.js.map +1 -1
  71. package/dist/es5/wip/data-source.js +0 -2
  72. package/dist/es5/{lib/wfs/parse-wfs.js → wip/lib/wcs/parse-wcs-capabilities.js} +7 -29
  73. package/dist/es5/wip/lib/wcs/parse-wcs-capabilities.js.map +1 -0
  74. package/dist/es5/{lib/wcs/parse-wcs.js → wip/lib/wfs/parse-wfs-capabilities.js} +7 -28
  75. package/dist/es5/wip/lib/wfs/parse-wfs-capabilities.js.map +1 -0
  76. package/dist/es5/{lib/wmts/parse-wmts.js → wip/lib/wmts/parse-wmts-capabilities.js} +7 -28
  77. package/dist/es5/wip/lib/wmts/parse-wmts-capabilities.js.map +1 -0
  78. package/dist/es5/wip/wcs-capabilities-loader.js +9 -12
  79. package/dist/es5/wip/wcs-capabilities-loader.js.map +1 -1
  80. package/dist/es5/wip/wfs-capabilities-loader.js +9 -12
  81. package/dist/es5/wip/wfs-capabilities-loader.js.map +1 -1
  82. package/dist/es5/wip/wms-feature-info-loader.js +8 -10
  83. package/dist/es5/wip/wms-feature-info-loader.js.map +1 -1
  84. package/dist/es5/wip/wms-layer-description-loader.js +8 -10
  85. package/dist/es5/wip/wms-layer-description-loader.js.map +1 -1
  86. package/dist/es5/wip/wmts-capabilities-loader.js +9 -12
  87. package/dist/es5/wip/wmts-capabilities-loader.js.map +1 -1
  88. package/dist/es5/wms-capabilities-loader.js +9 -12
  89. package/dist/es5/wms-capabilities-loader.js.map +1 -1
  90. package/dist/es5/wms-error-loader.js +9 -11
  91. package/dist/es5/wms-error-loader.js.map +1 -1
  92. package/dist/esm/bundle.js +0 -2
  93. package/dist/esm/bundle.js.map +1 -1
  94. package/dist/esm/csw-capabilities-loader.js +22 -0
  95. package/dist/esm/csw-capabilities-loader.js.map +1 -0
  96. package/dist/esm/csw-domain-loader.js +22 -0
  97. package/dist/esm/csw-domain-loader.js.map +1 -0
  98. package/dist/esm/csw-records-loader.js +21 -0
  99. package/dist/esm/csw-records-loader.js.map +1 -0
  100. package/dist/esm/{wip/gml-loader.js → gml-loader.js} +3 -6
  101. package/dist/esm/gml-loader.js.map +1 -0
  102. package/dist/esm/index.js +11 -14
  103. package/dist/esm/index.js.map +1 -1
  104. package/dist/esm/lerc-loader.js +1 -4
  105. package/dist/esm/lerc-loader.js.map +1 -1
  106. package/dist/esm/lib/{data-sources/create-image-source.js → create-image-source.js} +4 -7
  107. package/dist/esm/lib/create-image-source.js.map +1 -0
  108. package/dist/esm/lib/parsers/csw/parse-csw-capabilities.js +16 -0
  109. package/dist/esm/lib/parsers/csw/parse-csw-capabilities.js.map +1 -0
  110. package/dist/esm/lib/parsers/csw/parse-csw-domain.js +22 -0
  111. package/dist/esm/lib/parsers/csw/parse-csw-domain.js.map +1 -0
  112. package/dist/esm/lib/parsers/csw/parse-csw-records.js +43 -0
  113. package/dist/esm/lib/parsers/csw/parse-csw-records.js.map +1 -0
  114. package/dist/esm/lib/parsers/csw/parse-exception-report.js +10 -0
  115. package/dist/esm/lib/parsers/csw/parse-exception-report.js.map +1 -0
  116. package/dist/esm/lib/{gml → parsers/gml}/deep-strict-equal.js +0 -9
  117. package/dist/esm/lib/parsers/gml/deep-strict-equal.js.map +1 -0
  118. package/dist/esm/lib/{gml → parsers/gml}/parse-gml.js +0 -14
  119. package/dist/esm/lib/parsers/gml/parse-gml.js.map +1 -0
  120. package/dist/esm/lib/parsers/lerc/lerc-types.js.map +1 -0
  121. package/dist/esm/lib/parsers/wms/parse-wms-capabilities.js +174 -0
  122. package/dist/esm/lib/parsers/wms/parse-wms-capabilities.js.map +1 -0
  123. package/dist/esm/lib/parsers/wms/parse-wms-error.js +9 -0
  124. package/dist/esm/lib/parsers/wms/parse-wms-error.js.map +1 -0
  125. package/dist/esm/lib/parsers/wms/parse-wms-features.js +24 -0
  126. package/dist/esm/lib/parsers/wms/parse-wms-features.js.map +1 -0
  127. package/dist/esm/lib/parsers/wms/parse-wms-layer-description.js +6 -0
  128. package/dist/esm/lib/parsers/wms/parse-wms-layer-description.js.map +1 -0
  129. package/dist/esm/lib/parsers/xml/parse-xml-helpers.js +53 -0
  130. package/dist/esm/lib/parsers/xml/parse-xml-helpers.js.map +1 -0
  131. package/dist/esm/lib/services/arcgis/arcgis-image-service.js +58 -0
  132. package/dist/esm/lib/services/arcgis/arcgis-image-service.js.map +1 -0
  133. package/dist/esm/lib/services/arcgis/arcgis-server.js +33 -0
  134. package/dist/esm/lib/services/arcgis/arcgis-server.js.map +1 -0
  135. package/dist/esm/lib/{data-sources/adhoc-image-service.js → services/generic/image-service.js} +11 -13
  136. package/dist/esm/lib/services/generic/image-service.js.map +1 -0
  137. package/dist/esm/lib/services/generic/tile-service.js +2 -0
  138. package/dist/esm/lib/services/generic/tile-service.js.map +1 -0
  139. package/dist/esm/lib/services/ogc/csw-service.js +151 -0
  140. package/dist/esm/lib/services/ogc/csw-service.js.map +1 -0
  141. package/dist/esm/lib/services/ogc/wms-service.js +205 -0
  142. package/dist/esm/lib/services/ogc/wms-service.js.map +1 -0
  143. package/dist/esm/lib/services/ogc/wmts-service.ts.disabled +348 -0
  144. package/dist/esm/lib/sources/data-source.js +23 -0
  145. package/dist/esm/lib/sources/data-source.js.map +1 -0
  146. package/dist/esm/lib/sources/image-source.js +3 -0
  147. package/dist/esm/lib/sources/image-source.js.map +1 -0
  148. package/dist/esm/lib/sources/tile-source.js +3 -0
  149. package/dist/esm/lib/sources/tile-source.js.map +1 -0
  150. package/dist/esm/lib/sources/utils/utils.js +21 -0
  151. package/dist/esm/lib/sources/utils/utils.js.map +1 -0
  152. package/dist/esm/wip/arcgis-feature-service.js +0 -3
  153. package/dist/esm/wip/arcgis-feature-service.js.map +1 -1
  154. package/dist/esm/wip/lib/wcs/parse-wcs-capabilities.js +13 -0
  155. package/dist/esm/wip/lib/wcs/parse-wcs-capabilities.js.map +1 -0
  156. package/dist/esm/wip/lib/wfs/parse-wfs-capabilities.js +14 -0
  157. package/dist/esm/wip/lib/wfs/parse-wfs-capabilities.js.map +1 -0
  158. package/dist/esm/wip/lib/wmts/parse-wmts-capabilities.js +14 -0
  159. package/dist/esm/wip/lib/wmts/parse-wmts-capabilities.js.map +1 -0
  160. package/dist/esm/wip/wcs-capabilities-loader.js +4 -7
  161. package/dist/esm/wip/wcs-capabilities-loader.js.map +1 -1
  162. package/dist/esm/wip/wfs-capabilities-loader.js +2 -5
  163. package/dist/esm/wip/wfs-capabilities-loader.js.map +1 -1
  164. package/dist/esm/wip/wms-feature-info-loader.js +1 -4
  165. package/dist/esm/wip/wms-feature-info-loader.js.map +1 -1
  166. package/dist/esm/wip/wms-layer-description-loader.js +1 -4
  167. package/dist/esm/wip/wms-layer-description-loader.js.map +1 -1
  168. package/dist/esm/wip/wmts-capabilities-loader.js +2 -5
  169. package/dist/esm/wip/wmts-capabilities-loader.js.map +1 -1
  170. package/dist/esm/wms-capabilities-loader.js +4 -7
  171. package/dist/esm/wms-capabilities-loader.js.map +1 -1
  172. package/dist/esm/wms-error-loader.js +2 -5
  173. package/dist/esm/wms-error-loader.js.map +1 -1
  174. package/dist/gml-loader.d.ts.map +1 -0
  175. package/dist/{wip/gml-loader.js → gml-loader.js} +2 -2
  176. package/dist/index.d.ts +24 -18
  177. package/dist/index.d.ts.map +1 -1
  178. package/dist/index.js +28 -18
  179. package/dist/lerc-loader.d.ts +1 -1
  180. package/dist/lerc-loader.d.ts.map +1 -1
  181. package/dist/lib/create-image-source.d.ts +17 -0
  182. package/dist/lib/create-image-source.d.ts.map +1 -0
  183. package/dist/lib/{data-sources/create-image-source.js → create-image-source.js} +5 -5
  184. package/dist/lib/{wmts/wmts-types.d.ts → parsers/csw/parse-csw-capabilities.d.ts} +9 -3
  185. package/dist/lib/parsers/csw/parse-csw-capabilities.d.ts.map +1 -0
  186. package/dist/lib/parsers/csw/parse-csw-capabilities.js +24 -0
  187. package/dist/lib/parsers/csw/parse-csw-domain.d.ts +17 -0
  188. package/dist/lib/parsers/csw/parse-csw-domain.d.ts.map +1 -0
  189. package/dist/lib/parsers/csw/parse-csw-domain.js +33 -0
  190. package/dist/lib/parsers/csw/parse-csw-records.d.ts +33 -0
  191. package/dist/lib/parsers/csw/parse-csw-records.d.ts.map +1 -0
  192. package/dist/lib/parsers/csw/parse-csw-records.js +58 -0
  193. package/dist/lib/parsers/csw/parse-exception-report.d.ts +6 -0
  194. package/dist/lib/parsers/csw/parse-exception-report.d.ts.map +1 -0
  195. package/dist/lib/parsers/csw/parse-exception-report.js +30 -0
  196. package/dist/lib/parsers/gml/deep-strict-equal.d.ts.map +1 -0
  197. package/dist/lib/parsers/gml/parse-gml.d.ts.map +1 -0
  198. package/dist/lib/parsers/lerc/lerc-types.d.ts.map +1 -0
  199. package/dist/lib/parsers/wms/parse-wms-capabilities.d.ts +103 -0
  200. package/dist/lib/parsers/wms/parse-wms-capabilities.d.ts.map +1 -0
  201. package/dist/lib/parsers/wms/parse-wms-capabilities.js +198 -0
  202. package/dist/lib/parsers/wms/parse-wms-error.d.ts +8 -0
  203. package/dist/lib/parsers/wms/parse-wms-error.d.ts.map +1 -0
  204. package/dist/lib/parsers/wms/parse-wms-error.js +22 -0
  205. package/dist/lib/parsers/wms/parse-wms-features.d.ts +20 -0
  206. package/dist/lib/parsers/wms/parse-wms-features.d.ts.map +1 -0
  207. package/dist/lib/parsers/wms/parse-wms-features.js +27 -0
  208. package/dist/lib/parsers/wms/parse-wms-layer-description.d.ts +10 -0
  209. package/dist/lib/parsers/wms/parse-wms-layer-description.d.ts.map +1 -0
  210. package/dist/lib/parsers/wms/parse-wms-layer-description.js +15 -0
  211. package/dist/lib/parsers/xml/parse-xml-helpers.d.ts +11 -0
  212. package/dist/lib/parsers/xml/parse-xml-helpers.d.ts.map +1 -0
  213. package/dist/lib/parsers/xml/parse-xml-helpers.js +68 -0
  214. package/dist/lib/{data-sources/image-services → services/arcgis}/arcgis-image-service.d.ts +25 -13
  215. package/dist/lib/services/arcgis/arcgis-image-service.d.ts.map +1 -0
  216. package/dist/lib/{data-sources → services/arcgis}/arcgis-image-service.js +33 -23
  217. package/dist/lib/services/arcgis/arcgis-server.d.ts +15 -0
  218. package/dist/lib/services/arcgis/arcgis-server.d.ts.map +1 -0
  219. package/dist/lib/services/arcgis/arcgis-server.js +42 -0
  220. package/dist/lib/{data-sources/image-services → services/generic}/image-service.d.ts +3 -13
  221. package/dist/lib/services/generic/image-service.d.ts.map +1 -0
  222. package/dist/lib/{data-sources/adhoc-image-service.js → services/generic/image-service.js} +12 -10
  223. package/dist/lib/services/generic/tile-service.d.ts +1 -0
  224. package/dist/lib/services/generic/tile-service.d.ts.map +1 -0
  225. package/dist/lib/services/generic/tile-service.js +1 -0
  226. package/dist/lib/services/ogc/csw-service.d.ts +115 -0
  227. package/dist/lib/services/ogc/csw-service.d.ts.map +1 -0
  228. package/dist/lib/services/ogc/csw-service.js +170 -0
  229. package/dist/lib/{data-sources/image-services → services/ogc}/wms-service.d.ts +88 -64
  230. package/dist/lib/services/ogc/wms-service.d.ts.map +1 -0
  231. package/dist/lib/services/ogc/wms-service.js +266 -0
  232. package/dist/lib/sources/data-source.d.ts +22 -0
  233. package/dist/lib/sources/data-source.d.ts.map +1 -0
  234. package/dist/lib/sources/data-source.js +34 -0
  235. package/dist/lib/{data-sources → sources}/image-source.d.ts +7 -10
  236. package/dist/lib/sources/image-source.d.ts.map +1 -0
  237. package/dist/lib/{data-sources → sources}/image-source.js +2 -1
  238. package/dist/lib/sources/tile-source.d.ts +54 -0
  239. package/dist/lib/sources/tile-source.d.ts.map +1 -0
  240. package/dist/lib/sources/tile-source.js +13 -0
  241. package/dist/lib/sources/utils/utils.d.ts +13 -0
  242. package/dist/lib/sources/utils/utils.d.ts.map +1 -0
  243. package/dist/lib/sources/utils/utils.js +38 -0
  244. package/dist/{lib/wfs/wfs-types.d.ts → wip/lib/wcs/parse-wcs-capabilities.d.ts} +8 -3
  245. package/dist/wip/lib/wcs/parse-wcs-capabilities.d.ts.map +1 -0
  246. package/dist/wip/lib/wcs/parse-wcs-capabilities.js +15 -0
  247. package/dist/{lib/wcs/wcs-types.d.ts → wip/lib/wfs/parse-wfs-capabilities.d.ts} +6 -1
  248. package/dist/wip/lib/wfs/parse-wfs-capabilities.d.ts.map +1 -0
  249. package/dist/wip/lib/wfs/parse-wfs-capabilities.js +19 -0
  250. package/dist/wip/lib/wmts/parse-wmts-capabilities.d.ts +87 -0
  251. package/dist/wip/lib/wmts/parse-wmts-capabilities.d.ts.map +1 -0
  252. package/dist/wip/lib/wmts/parse-wmts-capabilities.js +77 -0
  253. package/dist/wip/wcs-capabilities-loader.d.ts +4 -3
  254. package/dist/wip/wcs-capabilities-loader.d.ts.map +1 -1
  255. package/dist/wip/wcs-capabilities-loader.js +3 -3
  256. package/dist/wip/wfs-capabilities-loader.d.ts +4 -3
  257. package/dist/wip/wfs-capabilities-loader.d.ts.map +1 -1
  258. package/dist/wip/wfs-capabilities-loader.js +3 -3
  259. package/dist/wip/wms-feature-info-loader.d.ts +4 -2
  260. package/dist/wip/wms-feature-info-loader.d.ts.map +1 -1
  261. package/dist/wip/wms-feature-info-loader.js +3 -3
  262. package/dist/wip/wms-layer-description-loader.d.ts +5 -3
  263. package/dist/wip/wms-layer-description-loader.d.ts.map +1 -1
  264. package/dist/wip/wms-layer-description-loader.js +3 -3
  265. package/dist/wip/wmts-capabilities-loader.d.ts +2 -2
  266. package/dist/wip/wmts-capabilities-loader.d.ts.map +1 -1
  267. package/dist/wip/wmts-capabilities-loader.js +4 -3
  268. package/dist/wms-capabilities-loader.d.ts +10 -4
  269. package/dist/wms-capabilities-loader.d.ts.map +1 -1
  270. package/dist/wms-capabilities-loader.js +3 -3
  271. package/dist/wms-error-loader.js +2 -2
  272. package/package.json +7 -7
  273. package/src/csw-capabilities-loader.ts +46 -0
  274. package/src/csw-domain-loader.ts +44 -0
  275. package/src/csw-records-loader.ts +42 -0
  276. package/src/{wip/gml-loader.ts → gml-loader.ts} +2 -2
  277. package/src/index.ts +49 -30
  278. package/src/lerc-loader.ts +1 -1
  279. package/src/lib/{data-sources/create-image-source.ts → create-image-source.ts} +12 -10
  280. package/src/lib/parsers/csw/parse-csw-capabilities.ts +103 -0
  281. package/src/lib/parsers/csw/parse-csw-domain.ts +45 -0
  282. package/src/lib/parsers/csw/parse-csw-records.ts +90 -0
  283. package/src/lib/parsers/csw/parse-exception-report.ts +31 -0
  284. package/src/lib/parsers/wms/parse-wms-capabilities.ts +361 -0
  285. package/src/lib/parsers/wms/parse-wms-error.ts +22 -0
  286. package/src/lib/parsers/wms/parse-wms-features.ts +39 -0
  287. package/src/lib/parsers/wms/parse-wms-layer-description.ts +18 -0
  288. package/src/lib/parsers/xml/parse-xml-helpers.ts +65 -0
  289. package/src/lib/{data-sources/image-services → services/arcgis}/arcgis-image-service.ts +44 -26
  290. package/src/lib/services/arcgis/arcgis-server.ts +59 -0
  291. package/src/lib/{data-sources/adhoc-image-service.ts → services/generic/image-service.ts} +18 -12
  292. package/src/lib/services/generic/tile-service.ts +0 -0
  293. package/src/lib/services/ogc/csw-service.ts +251 -0
  294. package/src/lib/services/ogc/wms-service.ts +450 -0
  295. package/src/lib/services/ogc/wmts-service.ts.disabled +348 -0
  296. package/src/lib/sources/data-source.ts +46 -0
  297. package/src/lib/{data-sources → sources}/image-source.ts +8 -10
  298. package/src/lib/sources/tile-source.ts +59 -0
  299. package/src/lib/sources/utils/utils.ts +42 -0
  300. package/src/{lib/wmts/wmts-types.ts → wip/lib/wcs/parse-wcs-capabilities.ts} +15 -3
  301. package/src/{lib/wcs/wcs-types.ts → wip/lib/wfs/parse-wfs-capabilities.ts} +18 -1
  302. package/src/wip/lib/wmts/parse-wmts-capabilities.ts +170 -0
  303. package/src/wip/wcs-capabilities-loader.ts +6 -3
  304. package/src/wip/wfs-capabilities-loader.ts +4 -1
  305. package/src/wip/wms-feature-info-loader.ts +5 -1
  306. package/src/wip/wms-layer-description-loader.ts +7 -2
  307. package/src/wip/wmts-capabilities-loader.ts +4 -1
  308. package/src/wms-capabilities-loader.ts +14 -4
  309. package/src/wms-error-loader.ts +1 -1
  310. package/dist/es5/lib/data-sources/adhoc-image-service.js.map +0 -1
  311. package/dist/es5/lib/data-sources/arcgis-image-service.js +0 -180
  312. package/dist/es5/lib/data-sources/arcgis-image-service.js.map +0 -1
  313. package/dist/es5/lib/data-sources/create-image-source.js.map +0 -1
  314. package/dist/es5/lib/data-sources/image-services/arcgis-image-service.js.map +0 -1
  315. package/dist/es5/lib/data-sources/image-services/image-service.js +0 -163
  316. package/dist/es5/lib/data-sources/image-services/image-service.js.map +0 -1
  317. package/dist/es5/lib/data-sources/image-services/wms-service.js +0 -400
  318. package/dist/es5/lib/data-sources/image-services/wms-service.js.map +0 -1
  319. package/dist/es5/lib/data-sources/image-source.js +0 -14
  320. package/dist/es5/lib/data-sources/image-source.js.map +0 -1
  321. package/dist/es5/lib/gml/deep-strict-equal.js.map +0 -1
  322. package/dist/es5/lib/gml/parse-gml.js.map +0 -1
  323. package/dist/es5/lib/lerc/lerc-types.js.map +0 -1
  324. package/dist/es5/lib/wcs/parse-wcs.js.map +0 -1
  325. package/dist/es5/lib/wcs/wcs-types.js +0 -2
  326. package/dist/es5/lib/wcs/wcs-types.js.map +0 -1
  327. package/dist/es5/lib/wfs/parse-wfs.js.map +0 -1
  328. package/dist/es5/lib/wfs/wfs-types.js +0 -2
  329. package/dist/es5/lib/wfs/wfs-types.js.map +0 -1
  330. package/dist/es5/lib/wms/parse-wms.js +0 -135
  331. package/dist/es5/lib/wms/parse-wms.js.map +0 -1
  332. package/dist/es5/lib/wms/wms-types.js +0 -2
  333. package/dist/es5/lib/wms/wms-types.js.map +0 -1
  334. package/dist/es5/lib/wmts/parse-wmts.js.map +0 -1
  335. package/dist/es5/lib/wmts/wmts-types.js +0 -2
  336. package/dist/es5/lib/wmts/wmts-types.js.map +0 -1
  337. package/dist/es5/wip/gml-loader.js.map +0 -1
  338. package/dist/esm/lib/data-sources/adhoc-image-service.js.map +0 -1
  339. package/dist/esm/lib/data-sources/arcgis-image-service.js +0 -62
  340. package/dist/esm/lib/data-sources/arcgis-image-service.js.map +0 -1
  341. package/dist/esm/lib/data-sources/create-image-source.js.map +0 -1
  342. package/dist/esm/lib/data-sources/image-services/arcgis-image-service.js +0 -61
  343. package/dist/esm/lib/data-sources/image-services/arcgis-image-service.js.map +0 -1
  344. package/dist/esm/lib/data-sources/image-services/image-service.js +0 -72
  345. package/dist/esm/lib/data-sources/image-services/image-service.js.map +0 -1
  346. package/dist/esm/lib/data-sources/image-services/wms-service.js +0 -190
  347. package/dist/esm/lib/data-sources/image-services/wms-service.js.map +0 -1
  348. package/dist/esm/lib/data-sources/image-source.js +0 -4
  349. package/dist/esm/lib/data-sources/image-source.js.map +0 -1
  350. package/dist/esm/lib/gml/deep-strict-equal.js.map +0 -1
  351. package/dist/esm/lib/gml/parse-gml.js.map +0 -1
  352. package/dist/esm/lib/lerc/lerc-types.js.map +0 -1
  353. package/dist/esm/lib/wcs/parse-wcs.js +0 -32
  354. package/dist/esm/lib/wcs/parse-wcs.js.map +0 -1
  355. package/dist/esm/lib/wcs/wcs-types.js +0 -2
  356. package/dist/esm/lib/wcs/wcs-types.js.map +0 -1
  357. package/dist/esm/lib/wfs/parse-wfs.js +0 -32
  358. package/dist/esm/lib/wfs/parse-wfs.js.map +0 -1
  359. package/dist/esm/lib/wfs/wfs-types.js +0 -2
  360. package/dist/esm/lib/wfs/wfs-types.js.map +0 -1
  361. package/dist/esm/lib/wms/parse-wms.js +0 -101
  362. package/dist/esm/lib/wms/parse-wms.js.map +0 -1
  363. package/dist/esm/lib/wms/wms-types.js +0 -2
  364. package/dist/esm/lib/wms/wms-types.js.map +0 -1
  365. package/dist/esm/lib/wmts/parse-wmts.js +0 -32
  366. package/dist/esm/lib/wmts/parse-wmts.js.map +0 -1
  367. package/dist/esm/lib/wmts/wmts-types.js +0 -2
  368. package/dist/esm/lib/wmts/wmts-types.js.map +0 -1
  369. package/dist/esm/wip/gml-loader.js.map +0 -1
  370. package/dist/lib/data-sources/adhoc-image-service.d.ts +0 -24
  371. package/dist/lib/data-sources/adhoc-image-service.d.ts.map +0 -1
  372. package/dist/lib/data-sources/arcgis-image-service.d.ts +0 -79
  373. package/dist/lib/data-sources/arcgis-image-service.d.ts.map +0 -1
  374. package/dist/lib/data-sources/create-image-source.d.ts +0 -16
  375. package/dist/lib/data-sources/create-image-source.d.ts.map +0 -1
  376. package/dist/lib/data-sources/image-services/arcgis-image-service.d.ts.map +0 -1
  377. package/dist/lib/data-sources/image-services/arcgis-image-service.js +0 -85
  378. package/dist/lib/data-sources/image-services/image-service.d.ts.map +0 -1
  379. package/dist/lib/data-sources/image-services/image-service.js +0 -82
  380. package/dist/lib/data-sources/image-services/wms-service.d.ts.map +0 -1
  381. package/dist/lib/data-sources/image-services/wms-service.js +0 -218
  382. package/dist/lib/data-sources/image-source.d.ts.map +0 -1
  383. package/dist/lib/gml/deep-strict-equal.d.ts.map +0 -1
  384. package/dist/lib/gml/parse-gml.d.ts.map +0 -1
  385. package/dist/lib/lerc/lerc-types.d.ts.map +0 -1
  386. package/dist/lib/wcs/parse-wcs.d.ts +0 -7
  387. package/dist/lib/wcs/parse-wcs.d.ts.map +0 -1
  388. package/dist/lib/wcs/parse-wcs.js +0 -36
  389. package/dist/lib/wcs/wcs-types.d.ts.map +0 -1
  390. package/dist/lib/wcs/wcs-types.js +0 -3
  391. package/dist/lib/wfs/parse-wfs.d.ts +0 -7
  392. package/dist/lib/wfs/parse-wfs.d.ts.map +0 -1
  393. package/dist/lib/wfs/parse-wfs.js +0 -36
  394. package/dist/lib/wfs/wfs-types.d.ts.map +0 -1
  395. package/dist/lib/wfs/wfs-types.js +0 -3
  396. package/dist/lib/wms/parse-wms.d.ts +0 -24
  397. package/dist/lib/wms/parse-wms.d.ts.map +0 -1
  398. package/dist/lib/wms/parse-wms.js +0 -115
  399. package/dist/lib/wms/wms-types.d.ts +0 -100
  400. package/dist/lib/wms/wms-types.d.ts.map +0 -1
  401. package/dist/lib/wms/wms-types.js +0 -1908
  402. package/dist/lib/wmts/parse-wmts.d.ts +0 -7
  403. package/dist/lib/wmts/parse-wmts.d.ts.map +0 -1
  404. package/dist/lib/wmts/parse-wmts.js +0 -36
  405. package/dist/lib/wmts/wmts-types.d.ts.map +0 -1
  406. package/dist/lib/wmts/wmts-types.js +0 -3
  407. package/dist/wip/gml-loader.d.ts.map +0 -1
  408. package/src/lib/data-sources/arcgis-image-service.ts +0 -146
  409. package/src/lib/data-sources/image-services/image-service.ts +0 -105
  410. package/src/lib/data-sources/image-services/wms-service.ts +0 -351
  411. package/src/lib/wcs/parse-wcs.ts +0 -39
  412. package/src/lib/wfs/parse-wfs.ts +0 -39
  413. package/src/lib/wfs/wfs-types.ts +0 -78
  414. package/src/lib/wms/parse-wms.ts +0 -142
  415. package/src/lib/wms/wms-types.ts +0 -2053
  416. package/src/lib/wmts/parse-wmts.ts +0 -39
  417. /package/dist/es5/lib/{lerc → parsers/lerc}/lerc-types.js +0 -0
  418. /package/dist/esm/lib/{lerc → parsers/lerc}/lerc-types.js +0 -0
  419. /package/dist/{wip/gml-loader.d.ts → gml-loader.d.ts} +0 -0
  420. /package/dist/lib/{gml → parsers/gml}/deep-strict-equal.d.ts +0 -0
  421. /package/dist/lib/{gml → parsers/gml}/deep-strict-equal.js +0 -0
  422. /package/dist/lib/{gml → parsers/gml}/parse-gml.d.ts +0 -0
  423. /package/dist/lib/{gml → parsers/gml}/parse-gml.js +0 -0
  424. /package/dist/lib/{lerc → parsers/lerc}/lerc-types.d.ts +0 -0
  425. /package/dist/lib/{lerc → parsers/lerc}/lerc-types.js +0 -0
  426. /package/src/lib/{gml → parsers/gml}/deep-strict-equal.ts +0 -0
  427. /package/src/lib/{gml → parsers/gml}/parse-gml.ts +0 -0
  428. /package/src/lib/{lerc → parsers/lerc}/lerc-types.ts +0 -0
@@ -1,18 +1,21 @@
1
1
  "use strict";
2
2
  // loaders.gl, MIT license
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.ArcGISImageService = void 0;
5
- const image_source_1 = require("./image-source");
6
- class ArcGISImageService extends image_source_1.ImageSource {
4
+ exports.ArcGISImageServer = void 0;
5
+ const image_source_1 = require("../../sources/image-source");
6
+ /**
7
+ * ArcGIS ImageServer
8
+ * Note - exports a big API, that could be exposed here if there is a use case
9
+ * @see https://developers.arcgis.com/rest/services-reference/enterprise/image-service.htm
10
+ */
11
+ class ArcGISImageServer extends image_source_1.ImageSource {
7
12
  constructor(props) {
8
- super();
9
- this.url = props.url;
10
- this.loadOptions = props.loadOptions || {};
11
- this.fetch = props.fetch || fetch;
13
+ super(props);
14
+ this.props = props;
12
15
  }
13
16
  // ImageSource (normalized endpoints)
14
17
  async getMetadata() {
15
- return (await this.info());
18
+ return (await this.metadata());
16
19
  // TODO - normalize metadata
17
20
  }
18
21
  async getImage(parameters) {
@@ -21,7 +24,7 @@ class ArcGISImageService extends image_source_1.ImageSource {
21
24
  // return await this.exportImage(parameters);
22
25
  }
23
26
  // ImageServer endpoints
24
- async info() {
27
+ async metadata() {
25
28
  // We just need a JSON parsing...
26
29
  // return this.getUrl({path: '', ...options});
27
30
  throw new Error('not implemented');
@@ -35,28 +38,35 @@ class ArcGISImageService extends image_source_1.ImageSource {
35
38
  throw new Error('not implemented');
36
39
  }
37
40
  // URL creators
38
- infoURL(options) {
39
- return this.url;
40
- // return this.getUrl({path: '', ...options});
41
+ metadataURL(options) {
42
+ return `${this.props.url}?f=pjson`;
41
43
  }
42
44
  /**
43
45
  * Form a URL to an ESRI ImageServer
44
- // https://sampleserver6.arcgisonline.com/arcgis/rest/services/NLCDLandCover2001/ImageServer/exportImage?bbox=${bounds[0]},${bounds[1]},${bounds[2]},${bounds[3]}&bboxSR=4326&size=${width},${height}&imageSR=102100&time=&format=jpgpng&pixelType=U8&noData=&noDataInterpretation=esriNoDataMatchAny&interpolation=+RSP_NearestNeighbor&compression=&compressionQuality=&bandIds=&mosaicRule=&renderingRule=&f=image`,
46
+ // https://sampleserver6.arcgisonline.com/arcgis/rest/services/NLCDLandCover2001/ImageServer/exportImage?
47
+ // bbox=${bounds[0]},${bounds[1]},${bounds[2]},${bounds[3]}&bboxSR=4326&
48
+ // size=${width},${height}&imageSR=102100&time=&format=jpgpng&pixelType=U8&
49
+ // noData=&noDataInterpretation=esriNoDataMatchAny&interpolation=+RSP_NearestNeighbor&compression=&
50
+ // compressionQuality=&bandIds=&mosaicRule=&renderingRule=&
51
+ // f=image
45
52
  */
46
53
  exportImageURL(options) {
47
- // const {boundingBox} = options;
48
- // const bbox = `bbox=${boundingBox[0]},${boundingBox[1]},${boundingBox[2]},${boundingBox[3]}`;
49
- // const size = `size=${width},${height}`;
50
- // return this.getUrl({path: 'exportImage'});
51
- return this.url;
54
+ const bbox = `bbox=${options.bbox[0]},${options.bbox[1]},${options.bbox[2]},${options.bbox[3]}`;
55
+ const size = `size=${options.width},${options.height}`;
56
+ const arcgisOptions = { ...options, bbox, size };
57
+ // @ts-expect-error
58
+ delete arcgisOptions.width;
59
+ // @ts-expect-error
60
+ delete arcgisOptions.height;
61
+ return this.getUrl('exportImage', arcgisOptions);
52
62
  }
53
63
  // INTERNAL METHODS
54
64
  /**
55
65
  * @note protected, since perhaps getWMSUrl may need to be overridden to handle certain backends?
56
66
  * @note if override is common, maybe add a callback prop?
57
67
  * */
58
- getUrl(options, extra) {
59
- let url = `${this.url}`;
68
+ getUrl(path, options, extra) {
69
+ let url = `${this.props.url}/${path}`;
60
70
  let first = true;
61
71
  for (const [key, value] of Object.entries(options)) {
62
72
  url += first ? '?' : '&';
@@ -80,6 +90,6 @@ class ArcGISImageService extends image_source_1.ImageSource {
80
90
  }
81
91
  }
82
92
  }
83
- exports.ArcGISImageService = ArcGISImageService;
84
- ArcGISImageService.type = 'arcgis-image-server';
85
- ArcGISImageService.testURL = (url) => url.toLowerCase().includes('ImageServer');
93
+ ArcGISImageServer.type = 'arcgis-image-server';
94
+ ArcGISImageServer.testURL = (url) => url.toLowerCase().includes('ImageServer');
95
+ exports.ArcGISImageServer = ArcGISImageServer;
@@ -0,0 +1,15 @@
1
+ export type Service = {
2
+ name: string;
3
+ type: string;
4
+ url: string;
5
+ };
6
+ type FetchLike = typeof fetch;
7
+ /**
8
+ * (Recursively) load the service directory from an ArcGIS Server URL
9
+ * @param url
10
+ * @param fetchFile= Optional fetch function override
11
+ * @returns
12
+ */
13
+ export declare function getArcGISServices(url: string, fetchFile?: FetchLike): Promise<Service[] | null>;
14
+ export {};
15
+ //# sourceMappingURL=arcgis-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arcgis-server.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/arcgis/arcgis-server.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,OAAO,GAAG;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAC,CAAC;AAEhE,KAAK,SAAS,GAAG,OAAO,KAAK,CAAC;AAE9B;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,SAAS,GAAE,SAAiB,GAC3B,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAM3B"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ // loaders.gl, MIT license
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.getArcGISServices = void 0;
5
+ /**
6
+ * (Recursively) load the service directory from an ArcGIS Server URL
7
+ * @param url
8
+ * @param fetchFile= Optional fetch function override
9
+ * @returns
10
+ */
11
+ async function getArcGISServices(url, fetchFile = fetch) {
12
+ if (url.includes('rest/services')) {
13
+ const serverUrl = url.replace(/rest\/services.*$/i, 'rest/services');
14
+ return loadServiceDirectory(serverUrl, fetchFile, []);
15
+ }
16
+ return null;
17
+ }
18
+ exports.getArcGISServices = getArcGISServices;
19
+ async function loadServiceDirectory(serverUrl, fetch, path) {
20
+ const serviceUrl = `${serverUrl}/${path.join('/')}`;
21
+ const response = await fetch(`${serviceUrl}?f=pjson`);
22
+ const directory = await response.json();
23
+ const services = extractServices(directory, serviceUrl);
24
+ const folders = (directory.folders || []);
25
+ const promises = folders.map((folder) => loadServiceDirectory(`${serverUrl}`, fetch, [...path, folder]));
26
+ for (const folderServices of await Promise.all(promises)) {
27
+ services.push(...folderServices);
28
+ }
29
+ return services;
30
+ }
31
+ function extractServices(directory, url) {
32
+ const arcgisServices = (directory.services || []);
33
+ const services = [];
34
+ for (const service of arcgisServices) {
35
+ services.push({
36
+ name: service.name,
37
+ type: `arcgis-${service.type.toLocaleLowerCase().replace('server', '-server')}`,
38
+ url: `${url}${service.name}/${service.type}`
39
+ });
40
+ }
41
+ return services;
42
+ }
@@ -1,7 +1,7 @@
1
1
  import { LoaderOptions } from '@loaders.gl/loader-utils';
2
2
  import type { ImageType } from '@loaders.gl/images';
3
- import type { ImageSourceMetadata, GetImageParameters } from '../image-source';
4
- import { ImageSource } from '../image-source';
3
+ import type { ImageSourceMetadata, GetImageParameters } from '../../sources/image-source';
4
+ import { ImageSource } from '../../sources/image-source';
5
5
  /** Template URL string should contain `${width}` etc which will be substituted. */
6
6
  export type ImageServiceProps = {
7
7
  /** Base URL to the service */
@@ -17,8 +17,7 @@ export type ImageServiceProps = {
17
17
  export declare class ImageService extends ImageSource {
18
18
  static type: 'template';
19
19
  static testURL: (url: string) => boolean;
20
- props: Required<ImageServiceProps>;
21
- fetch: (url: string, options?: RequestInit) => Promise<Response>;
20
+ props: ImageServiceProps;
22
21
  constructor(props: ImageServiceProps);
23
22
  getMetadata(): Promise<ImageSourceMetadata>;
24
23
  getImage(parameters: GetImageParameters): Promise<ImageType>;
@@ -27,13 +26,4 @@ export declare class ImageService extends ImageSource {
27
26
  /** Supports both ${} and {} notations */
28
27
  protected getURLFromTemplate(parameters: Record<string, unknown>): string;
29
28
  }
30
- /**
31
- * Gets the current fetch function from options
32
- * @todo - move to loader-utils module
33
- * @todo - use in core module counterpart
34
- * @param options
35
- * @param context
36
- */
37
- export declare function getFetchFunction(options?: LoaderOptions): (url: string, fetchOptions?: RequestInit) => Promise<Response>;
38
- export declare function mergeImageServiceProps(props: ImageServiceProps): Required<ImageServiceProps>;
39
29
  //# sourceMappingURL=image-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/generic/image-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAGlD,OAAO,KAAK,EAAC,mBAAmB,EAAE,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AAEvD,mFAAmF;AACnF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,gFAAgF;IAChF,WAAW,CAAC,EAAE,aAAa,CAAC;CAC7B,CAAC;AAEF;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,WAAW;IAC3C,MAAM,CAAC,IAAI,EAAE,UAAU,CAAc;IACrC,MAAM,CAAC,OAAO,QAAS,MAAM,KAAG,OAAO,CAAoC;IAE3E,KAAK,EAAE,iBAAiB,CAAC;gBAEb,KAAK,EAAE,iBAAiB;IAO9B,WAAW,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAI3C,QAAQ,CAAC,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC;IAUlE,wDAAwD;IACxD,SAAS,CAAC,qBAAqB,CAAC,UAAU,EAAE,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAKxF,yCAAyC;IACzC,SAAS,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;CAU1E"}
@@ -1,18 +1,18 @@
1
1
  "use strict";
2
2
  // loaders.gl, MIT license
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.AdHocImageService = void 0;
4
+ exports.ImageService = void 0;
5
5
  const images_1 = require("@loaders.gl/images");
6
- const image_source_1 = require("./image-source");
6
+ const image_source_1 = require("../../sources/image-source");
7
7
  /**
8
8
  * Quickly connect to "ad hoc" image sources without subclassing ImageSource.
9
9
  * ImageSource allows template url strings to be used to ad hoc connect to arbitrary image data sources
10
10
  * Accepts a template url string and builds requests URLs
11
11
  */
12
- class AdHocImageService extends image_source_1.ImageSource {
12
+ class ImageService extends image_source_1.ImageSource {
13
13
  constructor(props) {
14
- super();
15
- this.templateUrl = props.templateUrl;
14
+ super(props);
15
+ this.props = props;
16
16
  }
17
17
  // IMAGE SOURCE API
18
18
  async getMetadata() {
@@ -21,7 +21,7 @@ class AdHocImageService extends image_source_1.ImageSource {
21
21
  async getImage(parameters) {
22
22
  const granularParameters = this.getGranularParameters(parameters);
23
23
  const url = this.getURLFromTemplate(granularParameters);
24
- const response = await fetch(url);
24
+ const response = await this.fetch(url);
25
25
  const arrayBuffer = await response.arrayBuffer();
26
26
  return await images_1.ImageLoader.parse(arrayBuffer);
27
27
  }
@@ -31,16 +31,18 @@ class AdHocImageService extends image_source_1.ImageSource {
31
31
  const [east, north, west, south] = parameters.bbox;
32
32
  return { ...parameters, east, north, south, west };
33
33
  }
34
+ /** Supports both ${} and {} notations */
34
35
  getURLFromTemplate(parameters) {
35
- let url = this.templateUrl;
36
+ let url = this.props.url;
36
37
  for (const [key, value] of Object.entries(parameters)) {
37
38
  // TODO - parameter could be repeated
38
39
  // const regex = new RegExp(`\${${key}}`, 'g');
39
40
  url = url.replace(`\${${key}}`, String(value));
41
+ url = url.replace(`{${key}}`, String(value));
40
42
  }
41
43
  return url;
42
44
  }
43
45
  }
44
- exports.AdHocImageService = AdHocImageService;
45
- AdHocImageService.type = 'template';
46
- AdHocImageService.testURL = (url) => url.toLowerCase().includes('{');
46
+ ImageService.type = 'template';
47
+ ImageService.testURL = (url) => url.toLowerCase().includes('{');
48
+ exports.ImageService = ImageService;
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=tile-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tile-service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/generic/tile-service.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ "use strict";
@@ -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
+ CSWService.type = 'csw';
169
+ CSWService.testURL = (url) => url.toLowerCase().includes('csw');
170
+ exports.CSWService = CSWService;