@loaders.gl/wms 3.4.0-alpha.3 → 4.0.0-alpha.6

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 (196) hide show
  1. package/dist/dist.min.js +133 -80
  2. package/dist/es5/csw-capabilities-loader.js +1 -1
  3. package/dist/es5/csw-capabilities-loader.js.map +1 -1
  4. package/dist/es5/csw-domain-loader.js +1 -1
  5. package/dist/es5/csw-domain-loader.js.map +1 -1
  6. package/dist/es5/csw-records-loader.js +1 -1
  7. package/dist/es5/csw-records-loader.js.map +1 -1
  8. package/dist/es5/gml-loader.js +1 -1
  9. package/dist/es5/gml-loader.js.map +1 -1
  10. package/dist/es5/lerc-loader.js +1 -1
  11. package/dist/es5/lerc-loader.js.map +1 -1
  12. package/dist/es5/lib/create-image-source.js.map +1 -1
  13. package/dist/es5/lib/parsers/csw/parse-csw-capabilities.js +2 -1
  14. package/dist/es5/lib/parsers/csw/parse-csw-capabilities.js.map +1 -1
  15. package/dist/es5/lib/parsers/csw/parse-csw-domain.js +2 -1
  16. package/dist/es5/lib/parsers/csw/parse-csw-domain.js.map +1 -1
  17. package/dist/es5/lib/parsers/csw/parse-csw-records.js +6 -5
  18. package/dist/es5/lib/parsers/csw/parse-csw-records.js.map +1 -1
  19. package/dist/es5/lib/parsers/csw/parse-exception-report.js.map +1 -1
  20. package/dist/es5/lib/parsers/gml/deep-strict-equal.js.map +1 -1
  21. package/dist/es5/lib/parsers/gml/parse-gml.js +2 -1
  22. package/dist/es5/lib/parsers/gml/parse-gml.js.map +1 -1
  23. package/dist/es5/lib/parsers/wms/parse-wms-capabilities.js +2 -1
  24. package/dist/es5/lib/parsers/wms/parse-wms-capabilities.js.map +1 -1
  25. package/dist/es5/lib/parsers/wms/parse-wms-features.js +2 -2
  26. package/dist/es5/lib/parsers/wms/parse-wms-features.js.map +1 -1
  27. package/dist/es5/lib/parsers/wms/parse-wms-layer-description.js +2 -1
  28. package/dist/es5/lib/parsers/wms/parse-wms-layer-description.js.map +1 -1
  29. package/dist/es5/lib/parsers/xml/parse-xml-helpers.js.map +1 -1
  30. package/dist/es5/lib/services/arcgis/arcgis-image-service.js +1 -6
  31. package/dist/es5/lib/services/arcgis/arcgis-image-service.js.map +1 -1
  32. package/dist/es5/lib/services/arcgis/arcgis-server.js.map +1 -1
  33. package/dist/es5/lib/services/generic/image-service.js +1 -6
  34. package/dist/es5/lib/services/generic/image-service.js.map +1 -1
  35. package/dist/es5/lib/services/ogc/csw-service.js +0 -2
  36. package/dist/es5/lib/services/ogc/csw-service.js.map +1 -1
  37. package/dist/es5/lib/services/ogc/wms-service.js +62 -20
  38. package/dist/es5/lib/services/ogc/wms-service.js.map +1 -1
  39. package/dist/es5/lib/sources/data-source.js +36 -8
  40. package/dist/es5/lib/sources/data-source.js.map +1 -1
  41. package/dist/es5/lib/sources/image-source.js.map +1 -1
  42. package/dist/es5/lib/sources/tile-source.js.map +1 -1
  43. package/dist/es5/lib/wfs/parse-wfs.js +41 -0
  44. package/dist/es5/lib/wfs/parse-wfs.js.map +1 -0
  45. package/dist/es5/lib/wmts/parse-wmts.js +41 -0
  46. package/dist/es5/lib/wmts/parse-wmts.js.map +1 -0
  47. package/dist/es5/wip/arcgis-feature-service.js.map +1 -1
  48. package/dist/es5/wip/lib/wcs/parse-wcs-capabilities.js +2 -1
  49. package/dist/es5/wip/lib/wcs/parse-wcs-capabilities.js.map +1 -1
  50. package/dist/es5/wip/lib/wfs/parse-wfs-capabilities.js +2 -1
  51. package/dist/es5/wip/lib/wfs/parse-wfs-capabilities.js.map +1 -1
  52. package/dist/es5/wip/lib/wmts/parse-wmts-capabilities.js +2 -1
  53. package/dist/es5/wip/lib/wmts/parse-wmts-capabilities.js.map +1 -1
  54. package/dist/es5/wip/wcs-capabilities-loader.js +1 -1
  55. package/dist/es5/wip/wcs-capabilities-loader.js.map +1 -1
  56. package/dist/es5/wip/wfs-capabilities-loader.js +1 -1
  57. package/dist/es5/wip/wfs-capabilities-loader.js.map +1 -1
  58. package/dist/es5/wip/wms-feature-info-loader.js.map +1 -1
  59. package/dist/es5/wip/wms-layer-description-loader.js.map +1 -1
  60. package/dist/es5/wip/wmts-capabilities-loader.js +1 -1
  61. package/dist/es5/wip/wmts-capabilities-loader.js.map +1 -1
  62. package/dist/es5/wms-capabilities-loader.js +1 -1
  63. package/dist/es5/wms-capabilities-loader.js.map +1 -1
  64. package/dist/es5/wms-error-loader.js +1 -1
  65. package/dist/es5/wms-error-loader.js.map +1 -1
  66. package/dist/esm/csw-capabilities-loader.js +1 -1
  67. package/dist/esm/csw-capabilities-loader.js.map +1 -1
  68. package/dist/esm/csw-domain-loader.js +1 -1
  69. package/dist/esm/csw-domain-loader.js.map +1 -1
  70. package/dist/esm/csw-records-loader.js +1 -1
  71. package/dist/esm/csw-records-loader.js.map +1 -1
  72. package/dist/esm/gml-loader.js +1 -1
  73. package/dist/esm/gml-loader.js.map +1 -1
  74. package/dist/esm/lerc-loader.js +1 -1
  75. package/dist/esm/lerc-loader.js.map +1 -1
  76. package/dist/esm/lib/create-image-source.js.map +1 -1
  77. package/dist/esm/lib/parsers/csw/parse-csw-capabilities.js +2 -1
  78. package/dist/esm/lib/parsers/csw/parse-csw-capabilities.js.map +1 -1
  79. package/dist/esm/lib/parsers/csw/parse-csw-domain.js +2 -1
  80. package/dist/esm/lib/parsers/csw/parse-csw-domain.js.map +1 -1
  81. package/dist/esm/lib/parsers/csw/parse-csw-records.js +7 -6
  82. package/dist/esm/lib/parsers/csw/parse-csw-records.js.map +1 -1
  83. package/dist/esm/lib/parsers/csw/parse-exception-report.js.map +1 -1
  84. package/dist/esm/lib/parsers/gml/deep-strict-equal.js.map +1 -1
  85. package/dist/esm/lib/parsers/gml/parse-gml.js +2 -1
  86. package/dist/esm/lib/parsers/gml/parse-gml.js.map +1 -1
  87. package/dist/esm/lib/parsers/wms/parse-wms-capabilities.js +2 -1
  88. package/dist/esm/lib/parsers/wms/parse-wms-capabilities.js.map +1 -1
  89. package/dist/esm/lib/parsers/wms/parse-wms-features.js +2 -2
  90. package/dist/esm/lib/parsers/wms/parse-wms-features.js.map +1 -1
  91. package/dist/esm/lib/parsers/wms/parse-wms-layer-description.js +2 -1
  92. package/dist/esm/lib/parsers/wms/parse-wms-layer-description.js.map +1 -1
  93. package/dist/esm/lib/parsers/xml/parse-xml-helpers.js.map +1 -1
  94. package/dist/esm/lib/services/arcgis/arcgis-image-service.js +0 -2
  95. package/dist/esm/lib/services/arcgis/arcgis-image-service.js.map +1 -1
  96. package/dist/esm/lib/services/arcgis/arcgis-server.js.map +1 -1
  97. package/dist/esm/lib/services/generic/image-service.js +0 -2
  98. package/dist/esm/lib/services/generic/image-service.js.map +1 -1
  99. package/dist/esm/lib/services/ogc/csw-service.js +0 -2
  100. package/dist/esm/lib/services/ogc/csw-service.js.map +1 -1
  101. package/dist/esm/lib/services/ogc/wms-service.js +54 -14
  102. package/dist/esm/lib/services/ogc/wms-service.js.map +1 -1
  103. package/dist/esm/lib/sources/data-source.js +20 -0
  104. package/dist/esm/lib/sources/data-source.js.map +1 -1
  105. package/dist/esm/lib/sources/image-source.js.map +1 -1
  106. package/dist/esm/lib/sources/tile-source.js.map +1 -1
  107. package/dist/esm/lib/wfs/parse-wfs.js +28 -0
  108. package/dist/esm/lib/wfs/parse-wfs.js.map +1 -0
  109. package/dist/esm/lib/wmts/parse-wmts.js +28 -0
  110. package/dist/esm/lib/wmts/parse-wmts.js.map +1 -0
  111. package/dist/esm/wip/lib/wcs/parse-wcs-capabilities.js +2 -1
  112. package/dist/esm/wip/lib/wcs/parse-wcs-capabilities.js.map +1 -1
  113. package/dist/esm/wip/lib/wfs/parse-wfs-capabilities.js +2 -1
  114. package/dist/esm/wip/lib/wfs/parse-wfs-capabilities.js.map +1 -1
  115. package/dist/esm/wip/lib/wmts/parse-wmts-capabilities.js +2 -1
  116. package/dist/esm/wip/lib/wmts/parse-wmts-capabilities.js.map +1 -1
  117. package/dist/esm/wip/wcs-capabilities-loader.js +1 -1
  118. package/dist/esm/wip/wcs-capabilities-loader.js.map +1 -1
  119. package/dist/esm/wip/wfs-capabilities-loader.js +1 -1
  120. package/dist/esm/wip/wfs-capabilities-loader.js.map +1 -1
  121. package/dist/esm/wip/wms-feature-info-loader.js.map +1 -1
  122. package/dist/esm/wip/wms-layer-description-loader.js.map +1 -1
  123. package/dist/esm/wip/wmts-capabilities-loader.js +1 -1
  124. package/dist/esm/wip/wmts-capabilities-loader.js.map +1 -1
  125. package/dist/esm/wms-capabilities-loader.js +1 -1
  126. package/dist/esm/wms-capabilities-loader.js.map +1 -1
  127. package/dist/esm/wms-error-loader.js +1 -1
  128. package/dist/esm/wms-error-loader.js.map +1 -1
  129. package/dist/lib/create-image-source.d.ts +1 -1
  130. package/dist/lib/create-image-source.d.ts.map +1 -1
  131. package/dist/lib/parsers/csw/parse-csw-capabilities.js +1 -1
  132. package/dist/lib/parsers/csw/parse-csw-domain.js +1 -1
  133. package/dist/lib/parsers/csw/parse-csw-records.js +6 -6
  134. package/dist/lib/parsers/csw/parse-exception-report.js +1 -1
  135. package/dist/lib/parsers/gml/parse-gml.js +1 -1
  136. package/dist/lib/parsers/wms/parse-wms-capabilities.js +2 -1
  137. package/dist/lib/parsers/wms/parse-wms-features.js +1 -1
  138. package/dist/lib/parsers/wms/parse-wms-layer-description.js +1 -1
  139. package/dist/lib/services/arcgis/arcgis-image-service.d.ts +1 -2
  140. package/dist/lib/services/arcgis/arcgis-image-service.d.ts.map +1 -1
  141. package/dist/lib/services/arcgis/arcgis-image-service.js +0 -1
  142. package/dist/lib/services/generic/image-service.d.ts +2 -3
  143. package/dist/lib/services/generic/image-service.d.ts.map +1 -1
  144. package/dist/lib/services/generic/image-service.js +0 -1
  145. package/dist/lib/services/ogc/csw-service.d.ts +1 -2
  146. package/dist/lib/services/ogc/csw-service.d.ts.map +1 -1
  147. package/dist/lib/services/ogc/csw-service.js +0 -1
  148. package/dist/lib/services/ogc/wms-service.d.ts +84 -43
  149. package/dist/lib/services/ogc/wms-service.d.ts.map +1 -1
  150. package/dist/lib/services/ogc/wms-service.js +73 -27
  151. package/dist/lib/sources/data-source.d.ts +12 -2
  152. package/dist/lib/sources/data-source.d.ts.map +1 -1
  153. package/dist/lib/sources/data-source.js +22 -0
  154. package/dist/lib/sources/image-source.d.ts +6 -6
  155. package/dist/lib/sources/image-source.d.ts.map +1 -1
  156. package/dist/lib/sources/tile-source.d.ts +4 -2
  157. package/dist/lib/sources/tile-source.d.ts.map +1 -1
  158. package/dist/lib/wfs/parse-wfs.d.ts +7 -0
  159. package/dist/lib/wfs/parse-wfs.d.ts.map +1 -0
  160. package/dist/lib/wfs/parse-wfs.js +32 -0
  161. package/dist/lib/wmts/parse-wmts.d.ts +7 -0
  162. package/dist/lib/wmts/parse-wmts.d.ts.map +1 -0
  163. package/dist/lib/wmts/parse-wmts.js +35 -0
  164. package/dist/wip/lib/wcs/parse-wcs-capabilities.js +1 -1
  165. package/dist/wip/lib/wfs/parse-wfs-capabilities.js +1 -1
  166. package/dist/wip/lib/wmts/parse-wmts-capabilities.js +1 -1
  167. package/package.json +6 -6
  168. package/src/lib/create-image-source.ts +1 -1
  169. package/src/lib/parsers/csw/parse-csw-capabilities.ts +1 -1
  170. package/src/lib/parsers/csw/parse-csw-domain.ts +1 -1
  171. package/src/lib/parsers/csw/parse-csw-records.ts +6 -6
  172. package/src/lib/parsers/csw/parse-exception-report.ts +1 -1
  173. package/src/lib/parsers/gml/parse-gml.ts +1 -1
  174. package/src/lib/parsers/wms/parse-wms-capabilities.ts +2 -1
  175. package/src/lib/parsers/wms/parse-wms-features.ts +1 -1
  176. package/src/lib/parsers/wms/parse-wms-layer-description.ts +1 -1
  177. package/src/lib/services/arcgis/arcgis-image-service.ts +1 -4
  178. package/src/lib/services/generic/image-service.ts +2 -5
  179. package/src/lib/services/ogc/csw-service.ts +1 -3
  180. package/src/lib/services/ogc/wms-service.ts +165 -60
  181. package/src/lib/sources/data-source.ts +29 -2
  182. package/src/lib/sources/image-source.ts +6 -6
  183. package/src/lib/sources/tile-source.ts +4 -2
  184. package/src/lib/wfs/parse-wfs.ts +34 -0
  185. package/src/lib/wmts/parse-wmts.ts +37 -0
  186. package/src/wip/lib/wcs/parse-wcs-capabilities.ts +1 -1
  187. package/src/wip/lib/wfs/parse-wfs-capabilities.ts +1 -1
  188. package/src/wip/lib/wmts/parse-wmts-capabilities.ts +1 -1
  189. package/dist/es5/lib/services/generic/tile-service.js +0 -2
  190. package/dist/es5/lib/services/generic/tile-service.js.map +0 -1
  191. package/dist/esm/lib/services/generic/tile-service.js +0 -2
  192. package/dist/esm/lib/services/generic/tile-service.js.map +0 -1
  193. package/dist/lib/services/generic/tile-service.d.ts +0 -1
  194. package/dist/lib/services/generic/tile-service.d.ts.map +0 -1
  195. package/dist/lib/services/generic/tile-service.js +0 -1
  196. package/src/lib/services/generic/tile-service.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"parse-xml-helpers.js","names":["getXMLArray","xmlValue","Array","isArray","getXMLStringArray","xmlArray","length","every","_","getXMLFloat","defaultValue","arguments","undefined","_typeof2","default","parseFloat","getXMLInteger","parseInt","getXMLBoolean"],"sources":["../../../../../src/lib/parsers/xml/parse-xml-helpers.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n/** A single element of an array is not represented as an array in XML */\nexport function getXMLArray(xmlValue: any): any[] {\n // Already an array, return as is\n if (Array.isArray(xmlValue)) {\n return xmlValue;\n }\n // Single value, wrap in array\n if (xmlValue) {\n return [xmlValue];\n }\n // nullish, return empty array\n return [];\n}\n\n/** Get a list of strings from XML */\nexport function getXMLStringArray(xmlValue: any): string[] {\n const xmlArray = getXMLArray(xmlValue);\n if (xmlArray.length > 0 && xmlArray.every((_) => typeof _ === 'string')) {\n return xmlArray as string[];\n }\n // TODO - error handling?\n return [];\n}\n\n/** Get XML float */\nexport function getXMLFloat(xmlValue: any, defaultValue = undefined): number | undefined {\n switch (typeof xmlValue) {\n case 'number':\n return xmlValue;\n case 'string':\n return parseFloat(xmlValue);\n default:\n return undefined;\n }\n}\n\n/** Get XML integer */\nexport function getXMLInteger(xmlValue: any, defaultValue = undefined): number | undefined {\n switch (typeof xmlValue) {\n case 'number':\n return xmlValue;\n case 'string':\n return parseInt(xmlValue, 10);\n default:\n return undefined;\n }\n}\n\n/** Somewhat arbitrary boolean parsing */\nexport function getXMLBoolean(xmlValue: any): boolean {\n switch (xmlValue) {\n case 'true':\n return true;\n case 'false':\n return false;\n case '1':\n return true;\n case '0':\n return false;\n default:\n return false;\n }\n}\n"],"mappings":";;;;;;;;;;;;AAGO,SAASA,WAAWA,CAACC,QAAa,EAAS;EAEhD,IAAIC,KAAK,CAACC,OAAO,CAACF,QAAQ,CAAC,EAAE;IAC3B,OAAOA,QAAQ;EACjB;EAEA,IAAIA,QAAQ,EAAE;IACZ,OAAO,CAACA,QAAQ,CAAC;EACnB;EAEA,OAAO,EAAE;AACX;AAGO,SAASG,iBAAiBA,CAACH,QAAa,EAAY;EACzD,IAAMI,QAAQ,GAAGL,WAAW,CAACC,QAAQ,CAAC;EACtC,IAAII,QAAQ,CAACC,MAAM,GAAG,CAAC,IAAID,QAAQ,CAACE,KAAK,CAAC,UAACC,CAAC;IAAA,OAAK,OAAOA,CAAC,KAAK,QAAQ;EAAA,EAAC,EAAE;IACvE,OAAOH,QAAQ;EACjB;EAEA,OAAO,EAAE;AACX;AAGO,SAASI,WAAWA,CAACR,QAAa,EAAgD;EAAA,IAA9CS,YAAY,GAAAC,SAAA,CAAAL,MAAA,QAAAK,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAGC,SAAS;EACjE,YAAAC,QAAA,CAAAC,OAAA,EAAeb,QAAQ;IACrB,KAAK,QAAQ;MACX,OAAOA,QAAQ;IACjB,KAAK,QAAQ;MACX,OAAOc,UAAU,CAACd,QAAQ,CAAC;IAC7B;MACE,OAAOW,SAAS;EAAC;AAEvB;AAGO,SAASI,aAAaA,CAACf,QAAa,EAAgD;EAAA,IAA9CS,YAAY,GAAAC,SAAA,CAAAL,MAAA,QAAAK,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAGC,SAAS;EACnE,YAAAC,QAAA,CAAAC,OAAA,EAAeb,QAAQ;IACrB,KAAK,QAAQ;MACX,OAAOA,QAAQ;IACjB,KAAK,QAAQ;MACX,OAAOgB,QAAQ,CAAChB,QAAQ,EAAE,EAAE,CAAC;IAC/B;MACE,OAAOW,SAAS;EAAC;AAEvB;AAGO,SAASM,aAAaA,CAACjB,QAAa,EAAW;EACpD,QAAQA,QAAQ;IACd,KAAK,MAAM;MACT,OAAO,IAAI;IACb,KAAK,OAAO;MACV,OAAO,KAAK;IACd,KAAK,GAAG;MACN,OAAO,IAAI;IACb,KAAK,GAAG;MACN,OAAO,KAAK;IACd;MACE,OAAO,KAAK;EAAC;AAEnB"}
1
+ {"version":3,"file":"parse-xml-helpers.js","names":["getXMLArray","xmlValue","Array","isArray","getXMLStringArray","xmlArray","length","every","_","getXMLFloat","defaultValue","arguments","undefined","_typeof2","default","parseFloat","getXMLInteger","parseInt","getXMLBoolean"],"sources":["../../../../../src/lib/parsers/xml/parse-xml-helpers.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n/** A single element of an array is not represented as an array in XML */\nexport function getXMLArray(xmlValue: any): any[] {\n // Already an array, return as is\n if (Array.isArray(xmlValue)) {\n return xmlValue;\n }\n // Single value, wrap in array\n if (xmlValue) {\n return [xmlValue];\n }\n // nullish, return empty array\n return [];\n}\n\n/** Get a list of strings from XML */\nexport function getXMLStringArray(xmlValue: any): string[] {\n const xmlArray = getXMLArray(xmlValue);\n if (xmlArray.length > 0 && xmlArray.every((_) => typeof _ === 'string')) {\n return xmlArray as string[];\n }\n // TODO - error handling?\n return [];\n}\n\n/** Get XML float */\nexport function getXMLFloat(xmlValue: any, defaultValue = undefined): number | undefined {\n switch (typeof xmlValue) {\n case 'number':\n return xmlValue;\n case 'string':\n return parseFloat(xmlValue);\n default:\n return undefined;\n }\n}\n\n/** Get XML integer */\nexport function getXMLInteger(xmlValue: any, defaultValue = undefined): number | undefined {\n switch (typeof xmlValue) {\n case 'number':\n return xmlValue;\n case 'string':\n return parseInt(xmlValue, 10);\n default:\n return undefined;\n }\n}\n\n/** Somewhat arbitrary boolean parsing */\nexport function getXMLBoolean(xmlValue: any): boolean {\n switch (xmlValue) {\n case 'true':\n return true;\n case 'false':\n return false;\n case '1':\n return true;\n case '0':\n return false;\n default:\n return false;\n }\n}\n"],"mappings":";;;;;;;;;;;;AAGO,SAASA,WAAWA,CAACC,QAAa,EAAS;EAEhD,IAAIC,KAAK,CAACC,OAAO,CAACF,QAAQ,CAAC,EAAE;IAC3B,OAAOA,QAAQ;EACjB;EAEA,IAAIA,QAAQ,EAAE;IACZ,OAAO,CAACA,QAAQ,CAAC;EACnB;EAEA,OAAO,EAAE;AACX;AAGO,SAASG,iBAAiBA,CAACH,QAAa,EAAY;EACzD,IAAMI,QAAQ,GAAGL,WAAW,CAACC,QAAQ,CAAC;EACtC,IAAII,QAAQ,CAACC,MAAM,GAAG,CAAC,IAAID,QAAQ,CAACE,KAAK,CAAC,UAACC,CAAC;IAAA,OAAK,OAAOA,CAAC,KAAK,QAAQ;EAAA,EAAC,EAAE;IACvE,OAAOH,QAAQ;EACjB;EAEA,OAAO,EAAE;AACX;AAGO,SAASI,WAAWA,CAACR,QAAa,EAAgD;EAAA,IAA9CS,YAAY,GAAAC,SAAA,CAAAL,MAAA,QAAAK,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAGC,SAAS;EACjE,YAAAC,QAAA,CAAAC,OAAA,EAAeb,QAAQ;IACrB,KAAK,QAAQ;MACX,OAAOA,QAAQ;IACjB,KAAK,QAAQ;MACX,OAAOc,UAAU,CAACd,QAAQ,CAAC;IAC7B;MACE,OAAOW,SAAS;EACpB;AACF;AAGO,SAASI,aAAaA,CAACf,QAAa,EAAgD;EAAA,IAA9CS,YAAY,GAAAC,SAAA,CAAAL,MAAA,QAAAK,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAGC,SAAS;EACnE,YAAAC,QAAA,CAAAC,OAAA,EAAeb,QAAQ;IACrB,KAAK,QAAQ;MACX,OAAOA,QAAQ;IACjB,KAAK,QAAQ;MACX,OAAOgB,QAAQ,CAAChB,QAAQ,EAAE,EAAE,CAAC;IAC/B;MACE,OAAOW,SAAS;EACpB;AACF;AAGO,SAASM,aAAaA,CAACjB,QAAa,EAAW;EACpD,QAAQA,QAAQ;IACd,KAAK,MAAM;MACT,OAAO,IAAI;IACb,KAAK,OAAO;MACV,OAAO,KAAK;IACd,KAAK,GAAG;MACN,OAAO,IAAI;IACb,KAAK,GAAG;MACN,OAAO,KAAK;IACd;MACE,OAAO,KAAK;EAChB;AACF"}
@@ -10,7 +10,6 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
10
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
11
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
14
13
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
14
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
16
15
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
@@ -24,12 +23,8 @@ var ArcGISImageServer = function (_ImageSource) {
24
23
  (0, _inherits2.default)(ArcGISImageServer, _ImageSource);
25
24
  var _super = _createSuper(ArcGISImageServer);
26
25
  function ArcGISImageServer(props) {
27
- var _this;
28
26
  (0, _classCallCheck2.default)(this, ArcGISImageServer);
29
- _this = _super.call(this, props);
30
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "props", void 0);
31
- _this.props = props;
32
- return _this;
27
+ return _super.call(this, props);
33
28
  }
34
29
  (0, _createClass2.default)(ArcGISImageServer, [{
35
30
  key: "getMetadata",
@@ -1 +1 @@
1
- {"version":3,"file":"arcgis-image-service.js","names":["_imageSource","require","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","ArcGISImageServer","_ImageSource","_inherits2","_super","props","_this","_classCallCheck2","_assertThisInitialized2","_createClass2","value","_getMetadata","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","next","metadata","abrupt","sent","stop","getMetadata","_getImage","_callee2","parameters","_callee2$","_context2","Error","getImage","_x","_metadata","_callee3","_callee3$","_context3","exportImage","options","metadataURL","concat","url","exportImageURL","bbox","size","width","height","arcgisOptions","getUrl","path","extra","first","_i","_Object$entries","entries","_Object$entries$_i","_slicedToArray2","Array","isArray","toUpperCase","join","String","_checkResponse","_callee4","response","_callee4$","_context4","ok","checkResponse","_x2","ImageSource","exports","toLowerCase","includes"],"sources":["../../../../../src/lib/services/arcgis/arcgis-image-service.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport {ImageType} from '@loaders.gl/images';\nimport type {ImageSourceMetadata, GetImageParameters} from '../../sources/image-source';\nimport type {ImageSourceProps} from '../../sources/image-source';\nimport {ImageSource} from '../../sources/image-source';\n\nexport type ArcGISImageServerProps = ImageSourceProps & {\n url: string;\n};\n\n/**\n * ArcGIS ImageServer\n * Note - exports a big API, that could be exposed here if there is a use case\n * @see https://developers.arcgis.com/rest/services-reference/enterprise/image-service.htm\n */\nexport class ArcGISImageServer extends ImageSource {\n static type: 'arcgis-image-server' = 'arcgis-image-server';\n static testURL = (url: string): boolean => url.toLowerCase().includes('ImageServer');\n\n props: ArcGISImageServerProps;\n\n constructor(props: ArcGISImageServerProps) {\n super(props);\n this.props = props;\n }\n\n // ImageSource (normalized endpoints)\n\n async getMetadata(): Promise<ImageSourceMetadata> {\n return (await this.metadata()) as ImageSourceMetadata;\n // TODO - normalize metadata\n }\n\n async getImage(parameters: GetImageParameters): Promise<ImageType> {\n throw new Error('not implemented');\n // TODO - Map generic parameters to ArcGIS specific parameters\n // return await this.exportImage(parameters);\n }\n\n // ImageServer endpoints\n\n async metadata(): Promise<unknown> {\n // We just need a JSON parsing...\n // return this.getUrl({path: '', ...options});\n throw new Error('not implemented');\n }\n\n /** \n * Form a URL to an ESRI ImageServer\n // 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`,\n */\n exportImage(options: {\n boundingBox: [number, number, number, number];\n boundingBoxSR?: string;\n width: number;\n height: number;\n imageSR?: string;\n time?: never;\n format?: 'jpgpng';\n pixelType?: 'U8';\n noData?: never;\n noDataInterpretation?: 'esriNoDataMatchAny';\n interpolation?: '+RSP_NearestNeighbor';\n compression?: never;\n compressionQuality?: never;\n bandIds?: never;\n mosaicRule?: never;\n renderingRule?: never;\n f?: 'image';\n }): Promise<ImageType> {\n // See WMSService.getMap()\n throw new Error('not implemented');\n }\n\n // URL creators\n\n metadataURL(options: {parameters?: Record<string, unknown>}): string {\n return `${this.props.url}?f=pjson`;\n }\n\n /** \n * Form a URL to an ESRI ImageServer\n // https://sampleserver6.arcgisonline.com/arcgis/rest/services/NLCDLandCover2001/ImageServer/exportImage?\n // bbox=${bounds[0]},${bounds[1]},${bounds[2]},${bounds[3]}&bboxSR=4326&\n // size=${width},${height}&imageSR=102100&time=&format=jpgpng&pixelType=U8&\n // noData=&noDataInterpretation=esriNoDataMatchAny&interpolation=+RSP_NearestNeighbor&compression=&\n // compressionQuality=&bandIds=&mosaicRule=&renderingRule=&\n // f=image\n */\n exportImageURL(options: {\n bbox: [number, number, number, number];\n boxSR?: string;\n width: number;\n height: number;\n imageSR?: string;\n time?: never;\n format?: 'jpgpng';\n pixelType?: 'U8';\n noData?: never;\n noDataInterpretation?: 'esriNoDataMatchAny';\n interpolation?: '+RSP_NearestNeighbor';\n compression?: never;\n compressionQuality?: never;\n bandIds?: never;\n mosaicRule?: never;\n renderingRule?: never;\n f?: 'image';\n }): string {\n const bbox = `bbox=${options.bbox[0]},${options.bbox[1]},${options.bbox[2]},${options.bbox[3]}`;\n const size = `size=${options.width},${options.height}`;\n const arcgisOptions = {...options, bbox, size};\n // @ts-expect-error\n delete arcgisOptions.width;\n // @ts-expect-error\n delete arcgisOptions.height;\n return this.getUrl('exportImage', arcgisOptions);\n }\n\n // INTERNAL METHODS\n\n /**\n * @note protected, since perhaps getWMSUrl may need to be overridden to handle certain backends?\n * @note if override is common, maybe add a callback prop?\n * */\n protected getUrl(\n path: string,\n options: Record<string, unknown>,\n extra?: Record<string, unknown>\n ): string {\n let url = `${this.props.url}/${path}`;\n let first = true;\n for (const [key, value] of Object.entries(options)) {\n url += first ? '?' : '&';\n first = false;\n if (Array.isArray(value)) {\n url += `${key.toUpperCase()}=${value.join(',')}`;\n } else {\n url += `${key.toUpperCase()}=${value ? String(value) : ''}`;\n }\n }\n return url;\n }\n\n /** Checks for and parses a WMS XML formatted ServiceError and throws an exception */\n protected async checkResponse(response: Response) {\n if (!response.ok) {\n // } || response.headers['content-type'] === WMSErrorLoader.mimeTypes[0]) {\n // const arrayBuffer = await response.arrayBuffer();\n // const error = await WMSErrorLoader.parse(arrayBuffer, this.loadOptions);\n throw new Error('error');\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"arcgis-image-service.js","names":["_imageSource","require","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","ArcGISImageServer","_ImageSource","_inherits2","_super","props","_classCallCheck2","_createClass2","value","_getMetadata","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","next","metadata","abrupt","sent","stop","getMetadata","_getImage","_callee2","parameters","_callee2$","_context2","Error","getImage","_x","_metadata","_callee3","_callee3$","_context3","exportImage","options","metadataURL","concat","url","exportImageURL","bbox","size","width","height","arcgisOptions","getUrl","path","extra","first","_i","_Object$entries","entries","_Object$entries$_i","_slicedToArray2","Array","isArray","toUpperCase","join","String","_checkResponse","_callee4","response","_callee4$","_context4","ok","checkResponse","_x2","ImageSource","exports","toLowerCase","includes"],"sources":["../../../../../src/lib/services/arcgis/arcgis-image-service.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport {ImageType} from '@loaders.gl/images';\nimport type {ImageSourceMetadata, GetImageParameters} from '../../sources/image-source';\nimport type {ImageSourceProps} from '../../sources/image-source';\nimport {ImageSource} from '../../sources/image-source';\n\nexport type ArcGISImageServerProps = ImageSourceProps & {\n url: string;\n};\n\n/**\n * ArcGIS ImageServer\n * Note - exports a big API, that could be exposed here if there is a use case\n * @see https://developers.arcgis.com/rest/services-reference/enterprise/image-service.htm\n */\nexport class ArcGISImageServer extends ImageSource<ArcGISImageServerProps> {\n static type: 'arcgis-image-server' = 'arcgis-image-server';\n static testURL = (url: string): boolean => url.toLowerCase().includes('ImageServer');\n\n constructor(props: ArcGISImageServerProps) {\n super(props);\n }\n\n // ImageSource (normalized endpoints)\n\n async getMetadata(): Promise<ImageSourceMetadata> {\n return (await this.metadata()) as ImageSourceMetadata;\n // TODO - normalize metadata\n }\n\n async getImage(parameters: GetImageParameters): Promise<ImageType> {\n throw new Error('not implemented');\n // TODO - Map generic parameters to ArcGIS specific parameters\n // return await this.exportImage(parameters);\n }\n\n // ImageServer endpoints\n\n async metadata(): Promise<unknown> {\n // We just need a JSON parsing...\n // return this.getUrl({path: '', ...options});\n throw new Error('not implemented');\n }\n\n /** \n * Form a URL to an ESRI ImageServer\n // 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`,\n */\n exportImage(options: {\n boundingBox: [number, number, number, number];\n boundingBoxSR?: string;\n width: number;\n height: number;\n imageSR?: string;\n time?: never;\n format?: 'jpgpng';\n pixelType?: 'U8';\n noData?: never;\n noDataInterpretation?: 'esriNoDataMatchAny';\n interpolation?: '+RSP_NearestNeighbor';\n compression?: never;\n compressionQuality?: never;\n bandIds?: never;\n mosaicRule?: never;\n renderingRule?: never;\n f?: 'image';\n }): Promise<ImageType> {\n // See WMSService.getMap()\n throw new Error('not implemented');\n }\n\n // URL creators\n\n metadataURL(options: {parameters?: Record<string, unknown>}): string {\n return `${this.props.url}?f=pjson`;\n }\n\n /** \n * Form a URL to an ESRI ImageServer\n // https://sampleserver6.arcgisonline.com/arcgis/rest/services/NLCDLandCover2001/ImageServer/exportImage?\n // bbox=${bounds[0]},${bounds[1]},${bounds[2]},${bounds[3]}&bboxSR=4326&\n // size=${width},${height}&imageSR=102100&time=&format=jpgpng&pixelType=U8&\n // noData=&noDataInterpretation=esriNoDataMatchAny&interpolation=+RSP_NearestNeighbor&compression=&\n // compressionQuality=&bandIds=&mosaicRule=&renderingRule=&\n // f=image\n */\n exportImageURL(options: {\n bbox: [number, number, number, number];\n boxSR?: string;\n width: number;\n height: number;\n imageSR?: string;\n time?: never;\n format?: 'jpgpng';\n pixelType?: 'U8';\n noData?: never;\n noDataInterpretation?: 'esriNoDataMatchAny';\n interpolation?: '+RSP_NearestNeighbor';\n compression?: never;\n compressionQuality?: never;\n bandIds?: never;\n mosaicRule?: never;\n renderingRule?: never;\n f?: 'image';\n }): string {\n const bbox = `bbox=${options.bbox[0]},${options.bbox[1]},${options.bbox[2]},${options.bbox[3]}`;\n const size = `size=${options.width},${options.height}`;\n const arcgisOptions = {...options, bbox, size};\n // @ts-expect-error\n delete arcgisOptions.width;\n // @ts-expect-error\n delete arcgisOptions.height;\n return this.getUrl('exportImage', arcgisOptions);\n }\n\n // INTERNAL METHODS\n\n /**\n * @note protected, since perhaps getWMSUrl may need to be overridden to handle certain backends?\n * @note if override is common, maybe add a callback prop?\n * */\n protected getUrl(\n path: string,\n options: Record<string, unknown>,\n extra?: Record<string, unknown>\n ): string {\n let url = `${this.props.url}/${path}`;\n let first = true;\n for (const [key, value] of Object.entries(options)) {\n url += first ? '?' : '&';\n first = false;\n if (Array.isArray(value)) {\n url += `${key.toUpperCase()}=${value.join(',')}`;\n } else {\n url += `${key.toUpperCase()}=${value ? String(value) : ''}`;\n }\n }\n return url;\n }\n\n /** Checks for and parses a WMS XML formatted ServiceError and throws an exception */\n protected async checkResponse(response: Response) {\n if (!response.ok) {\n // } || response.headers['content-type'] === WMSErrorLoader.mimeTypes[0]) {\n // const arrayBuffer = await response.arrayBuffer();\n // const error = await WMSErrorLoader.parse(arrayBuffer, this.loadOptions);\n throw new Error('error');\n }\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"arcgis-server.js","names":["getArcGISServices","_x","_getArcGISServices","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","url","fetchFile","serverUrl","_args","wrap","_callee$","_context","prev","next","length","undefined","fetch","includes","replace","abrupt","loadServiceDirectory","stop","_x2","_x3","_x4","_loadServiceDirectory","_callee2","path","serviceUrl","response","directory","services","folders","promises","_iterator2","_step2","folderServices","_callee2$","_context2","concat","join","sent","json","extractServices","map","folder","_toConsumableArray2","t0","_createForOfIteratorHelper","Promise","all","t1","s","n","done","value","push","err","e","f","arcgisServices","_iterator","_step","service","name","type","toLocaleLowerCase"],"sources":["../../../../../src/lib/services/arcgis/arcgis-server.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nexport type Service = {name: string; type: string; url: string};\n\ntype FetchLike = typeof fetch;\n\n/**\n * (Recursively) load the service directory from an ArcGIS Server URL\n * @param url\n * @param fetchFile= Optional fetch function override\n * @returns\n */\nexport async function getArcGISServices(\n url: string,\n fetchFile: FetchLike = fetch\n): Promise<Service[] | null> {\n if (url.includes('rest/services')) {\n const serverUrl = url.replace(/rest\\/services.*$/i, 'rest/services');\n return loadServiceDirectory(serverUrl, fetchFile, []);\n }\n return null;\n}\n\nasync function loadServiceDirectory(\n serverUrl: string,\n fetch: FetchLike,\n path: string[]\n): Promise<Service[]> {\n const serviceUrl = `${serverUrl}/${path.join('/')}`;\n\n const response = await fetch(`${serviceUrl}?f=pjson`);\n const directory = await response.json();\n\n const services = extractServices(directory, serviceUrl);\n\n const folders = (directory.folders || []) as string[];\n const promises = folders.map((folder) =>\n loadServiceDirectory(`${serverUrl}`, fetch, [...path, folder])\n );\n\n for (const folderServices of await Promise.all(promises)) {\n services.push(...folderServices);\n }\n\n return services;\n}\n\nfunction extractServices(directory: unknown, url: string): Service[] {\n const arcgisServices = ((directory as any).services || []) as {name: string; type: string}[];\n const services: Service[] = [];\n for (const service of arcgisServices) {\n services.push({\n name: service.name,\n type: `arcgis-${service.type.toLocaleLowerCase().replace('server', '-server')}`,\n url: `${url}${service.name}/${service.type}`\n });\n }\n return services;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"arcgis-server.js","names":["getArcGISServices","_x","_getArcGISServices","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","url","fetchFile","serverUrl","_args","wrap","_callee$","_context","prev","next","length","undefined","fetch","includes","replace","abrupt","loadServiceDirectory","stop","_x2","_x3","_x4","_loadServiceDirectory","_callee2","path","serviceUrl","response","directory","services","folders","promises","_iterator2","_step2","folderServices","_callee2$","_context2","concat","join","sent","json","extractServices","map","folder","_toConsumableArray2","t0","_createForOfIteratorHelper","Promise","all","t1","s","n","done","value","push","err","e","f","arcgisServices","_iterator","_step","service","name","type","toLocaleLowerCase"],"sources":["../../../../../src/lib/services/arcgis/arcgis-server.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nexport type Service = {name: string; type: string; url: string};\n\ntype FetchLike = typeof fetch;\n\n/**\n * (Recursively) load the service directory from an ArcGIS Server URL\n * @param url\n * @param fetchFile= Optional fetch function override\n * @returns\n */\nexport async function getArcGISServices(\n url: string,\n fetchFile: FetchLike = fetch\n): Promise<Service[] | null> {\n if (url.includes('rest/services')) {\n const serverUrl = url.replace(/rest\\/services.*$/i, 'rest/services');\n return loadServiceDirectory(serverUrl, fetchFile, []);\n }\n return null;\n}\n\nasync function loadServiceDirectory(\n serverUrl: string,\n fetch: FetchLike,\n path: string[]\n): Promise<Service[]> {\n const serviceUrl = `${serverUrl}/${path.join('/')}`;\n\n const response = await fetch(`${serviceUrl}?f=pjson`);\n const directory = await response.json();\n\n const services = extractServices(directory, serviceUrl);\n\n const folders = (directory.folders || []) as string[];\n const promises = folders.map((folder) =>\n loadServiceDirectory(`${serverUrl}`, fetch, [...path, folder])\n );\n\n for (const folderServices of await Promise.all(promises)) {\n services.push(...folderServices);\n }\n\n return services;\n}\n\nfunction extractServices(directory: unknown, url: string): Service[] {\n const arcgisServices = ((directory as any).services || []) as {name: string; type: string}[];\n const services: Service[] = [];\n for (const service of arcgisServices) {\n services.push({\n name: service.name,\n type: `arcgis-${service.type.toLocaleLowerCase().replace('server', '-server')}`,\n url: `${url}${service.name}/${service.type}`\n });\n }\n return services;\n}\n"],"mappings":"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"}
@@ -10,7 +10,6 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
10
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
11
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
14
13
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
14
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
16
15
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
@@ -25,12 +24,8 @@ var ImageService = function (_ImageSource) {
25
24
  (0, _inherits2.default)(ImageService, _ImageSource);
26
25
  var _super = _createSuper(ImageService);
27
26
  function ImageService(props) {
28
- var _this;
29
27
  (0, _classCallCheck2.default)(this, ImageService);
30
- _this = _super.call(this, props);
31
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "props", void 0);
32
- _this.props = props;
33
- return _this;
28
+ return _super.call(this, props);
34
29
  }
35
30
  (0, _createClass2.default)(ImageService, [{
36
31
  key: "getMetadata",
@@ -1 +1 @@
1
- {"version":3,"file":"image-service.js","names":["_images","require","_imageSource","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","ImageService","_ImageSource","_inherits2","_super","props","_this","_classCallCheck2","_assertThisInitialized2","_createClass2","value","_getMetadata","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","next","Error","stop","getMetadata","_getImage","_callee2","parameters","granularParameters","url","response","arrayBuffer","_callee2$","_context2","getGranularParameters","getURLFromTemplate","fetch","sent","ImageLoader","parse","abrupt","getImage","_x","_parameters$bbox","_slicedToArray2","bbox","east","north","west","south","_i","_Object$entries","entries","_Object$entries$_i","replace","concat","String","ImageSource","exports","toLowerCase","includes"],"sources":["../../../../../src/lib/services/generic/image-service.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport {LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {ImageType} from '@loaders.gl/images';\nimport {ImageLoader} from '@loaders.gl/images';\n\nimport type {ImageSourceMetadata, GetImageParameters} from '../../sources/image-source';\nimport {ImageSource} from '../../sources/image-source';\n\n/** Template URL string should contain `${width}` etc which will be substituted. */\nexport type ImageServiceProps = {\n /** Base URL to the service */\n url: string;\n /** Any load options to the loaders.gl Loaders used by the WMSService methods */\n loadOptions?: LoaderOptions;\n};\n\n/**\n * Quickly connect to \"ad hoc\" image sources without subclassing ImageSource.\n * ImageSource allows template url strings to be used to ad hoc connect to arbitrary image data sources\n * Accepts a template url string and builds requests URLs\n */\nexport class ImageService extends ImageSource {\n static type: 'template' = 'template';\n static testURL = (url: string): boolean => url.toLowerCase().includes('{');\n\n props: ImageServiceProps;\n\n constructor(props: ImageServiceProps) {\n super(props);\n this.props = props;\n }\n\n // IMAGE SOURCE API\n\n async getMetadata(): Promise<ImageSourceMetadata> {\n throw new Error('ImageSource.getMetadata not implemented');\n }\n\n async getImage(parameters: GetImageParameters): Promise<ImageType> {\n const granularParameters = this.getGranularParameters(parameters);\n const url = this.getURLFromTemplate(granularParameters);\n const response = await this.fetch(url);\n const arrayBuffer = await response.arrayBuffer();\n return await ImageLoader.parse(arrayBuffer);\n }\n\n // HELPERS\n\n /** Break up bounding box in east, north, south, west */\n protected getGranularParameters(parameters: GetImageParameters): Record<string, unknown> {\n const [east, north, west, south] = parameters.bbox;\n return {...parameters, east, north, south, west};\n }\n\n /** Supports both ${} and {} notations */\n protected getURLFromTemplate(parameters: Record<string, unknown>): string {\n let url = this.props.url;\n for (const [key, value] of Object.entries(parameters)) {\n // TODO - parameter could be repeated\n // const regex = new RegExp(`\\${${key}}`, 'g');\n url = url.replace(`\\${${key}}`, String(value));\n url = url.replace(`{${key}}`, String(value));\n }\n return url;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAIA,IAAAA,OAAA,GAAAC,OAAA;AAGA,IAAAC,YAAA,GAAAD,OAAA;AAAuD,SAAAE,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,QAAAC,gBAAA,CAAAC,OAAA,EAAAR,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAmB,yBAAA,GAAAnB,MAAA,CAAAoB,gBAAA,CAAAV,MAAA,EAAAV,MAAA,CAAAmB,yBAAA,CAAAL,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAqB,cAAA,CAAAX,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAAA,SAAAY,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAV,OAAA,EAAAK,OAAA,GAAAM,MAAA,MAAAL,yBAAA,QAAAM,SAAA,OAAAF,gBAAA,CAAAV,OAAA,QAAAa,WAAA,EAAAF,MAAA,GAAAG,OAAA,CAAAC,SAAA,CAAAN,KAAA,EAAAf,SAAA,EAAAkB,SAAA,YAAAD,MAAA,GAAAF,KAAA,CAAAnB,KAAA,OAAAI,SAAA,gBAAAsB,2BAAA,CAAAhB,OAAA,QAAAW,MAAA;AAAA,SAAAJ,0BAAA,eAAAO,OAAA,qBAAAA,OAAA,CAAAC,SAAA,oBAAAD,OAAA,CAAAC,SAAA,CAAAE,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAR,OAAA,CAAAC,SAAA,CAAAI,OAAA,8CAAAI,CAAA;AAAA,IAe1CC,YAAY,aAAAC,YAAA;EAAA,IAAAC,UAAA,CAAA1B,OAAA,EAAAwB,YAAA,EAAAC,YAAA;EAAA,IAAAE,MAAA,GAAAvB,YAAA,CAAAoB,YAAA;EAMvB,SAAAA,aAAYI,KAAwB,EAAE;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,CAAA9B,OAAA,QAAAwB,YAAA;IACpCK,KAAA,GAAAF,MAAA,CAAAL,IAAA,OAAMM,KAAK;IAAE,IAAA7B,gBAAA,CAAAC,OAAA,MAAA+B,uBAAA,CAAA/B,OAAA,EAAA6B,KAAA;IACbA,KAAA,CAAKD,KAAK,GAAGA,KAAK;IAAC,OAAAC,KAAA;EACrB;EAAC,IAAAG,aAAA,CAAAhC,OAAA,EAAAwB,YAAA;IAAA1B,GAAA;IAAAmC,KAAA;MAAA,IAAAC,YAAA,OAAAC,kBAAA,CAAAnC,OAAA,EAAAoC,YAAA,CAAApC,OAAA,CAAAqC,IAAA,CAID,SAAAC,QAAA;QAAA,OAAAF,YAAA,CAAApC,OAAA,CAAAuC,IAAA,UAAAC,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cAAA,MACQ,IAAIC,KAAK,CAAC,yCAAyC,CAAC;YAAA;YAAA;cAAA,OAAAH,QAAA,CAAAI,IAAA;UAAA;QAAA,GAAAP,OAAA;MAAA,CAC3D;MAAA,SAAAQ,YAAA;QAAA,OAAAZ,YAAA,CAAA5C,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAAoD,WAAA;IAAA;EAAA;IAAAhD,GAAA;IAAAmC,KAAA;MAAA,IAAAc,SAAA,OAAAZ,kBAAA,CAAAnC,OAAA,EAAAoC,YAAA,CAAApC,OAAA,CAAAqC,IAAA,CAED,SAAAW,SAAeC,UAA8B;QAAA,IAAAC,kBAAA,EAAAC,GAAA,EAAAC,QAAA,EAAAC,WAAA;QAAA,OAAAjB,YAAA,CAAApC,OAAA,CAAAuC,IAAA,UAAAe,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAb,IAAA,GAAAa,SAAA,CAAAZ,IAAA;YAAA;cACrCO,kBAAkB,GAAG,IAAI,CAACM,qBAAqB,CAACP,UAAU,CAAC;cAC3DE,GAAG,GAAG,IAAI,CAACM,kBAAkB,CAACP,kBAAkB,CAAC;cAAAK,SAAA,CAAAZ,IAAA;cAAA,OAChC,IAAI,CAACe,KAAK,CAACP,GAAG,CAAC;YAAA;cAAhCC,QAAQ,GAAAG,SAAA,CAAAI,IAAA;cAAAJ,SAAA,CAAAZ,IAAA;cAAA,OACYS,QAAQ,CAACC,WAAW,EAAE;YAAA;cAA1CA,WAAW,GAAAE,SAAA,CAAAI,IAAA;cAAAJ,SAAA,CAAAZ,IAAA;cAAA,OACJiB,mBAAW,CAACC,KAAK,CAACR,WAAW,CAAC;YAAA;cAAA,OAAAE,SAAA,CAAAO,MAAA,WAAAP,SAAA,CAAAI,IAAA;YAAA;YAAA;cAAA,OAAAJ,SAAA,CAAAV,IAAA;UAAA;QAAA,GAAAG,QAAA;MAAA,CAC5C;MAAA,SAAAe,SAAAC,EAAA;QAAA,OAAAjB,SAAA,CAAAzD,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAAqE,QAAA;IAAA;EAAA;IAAAjE,GAAA;IAAAmC,KAAA,EAKD,SAAAuB,sBAAgCP,UAA8B,EAA2B;MACvF,IAAAgB,gBAAA,OAAAC,eAAA,CAAAlE,OAAA,EAAmCiD,UAAU,CAACkB,IAAI;QAA3CC,IAAI,GAAAH,gBAAA;QAAEI,KAAK,GAAAJ,gBAAA;QAAEK,IAAI,GAAAL,gBAAA;QAAEM,KAAK,GAAAN,gBAAA;MAC/B,OAAA1E,aAAA,CAAAA,aAAA,KAAW0D,UAAU;QAAEmB,IAAI,EAAJA,IAAI;QAAEC,KAAK,EAALA,KAAK;QAAEE,KAAK,EAALA,KAAK;QAAED,IAAI,EAAJA;MAAI;IACjD;EAAC;IAAAxE,GAAA;IAAAmC,KAAA,EAGD,SAAAwB,mBAA6BR,UAAmC,EAAU;MACxE,IAAIE,GAAG,GAAG,IAAI,CAACvB,KAAK,CAACuB,GAAG;MACxB,SAAAqB,EAAA,MAAAC,eAAA,GAA2B3F,MAAM,CAAC4F,OAAO,CAACzB,UAAU,CAAC,EAAAuB,EAAA,GAAAC,eAAA,CAAA9E,MAAA,EAAA6E,EAAA,IAAE;QAAlD,IAAAG,kBAAA,OAAAT,eAAA,CAAAlE,OAAA,EAAAyE,eAAA,CAAAD,EAAA;UAAO1E,GAAG,GAAA6E,kBAAA;UAAE1C,KAAK,GAAA0C,kBAAA;QAGpBxB,GAAG,GAAGA,GAAG,CAACyB,OAAO,MAAAC,MAAA,CAAO/E,GAAG,QAAKgF,MAAM,CAAC7C,KAAK,CAAC,CAAC;QAC9CkB,GAAG,GAAGA,GAAG,CAACyB,OAAO,KAAAC,MAAA,CAAK/E,GAAG,QAAKgF,MAAM,CAAC7C,KAAK,CAAC,CAAC;MAC9C;MACA,OAAOkB,GAAG;IACZ;EAAC;EAAA,OAAA3B,YAAA;AAAA,EA3C+BuD,wBAAW;AAAAC,OAAA,CAAAxD,YAAA,GAAAA,YAAA;AAAA,IAAAzB,gBAAA,CAAAC,OAAA,EAAhCwB,YAAY,UACG,UAAU;AAAA,IAAAzB,gBAAA,CAAAC,OAAA,EADzBwB,YAAY,aAEN,UAAC2B,GAAW;EAAA,OAAcA,GAAG,CAAC8B,WAAW,EAAE,CAACC,QAAQ,CAAC,GAAG,CAAC;AAAA"}
1
+ {"version":3,"file":"image-service.js","names":["_images","require","_imageSource","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","ImageService","_ImageSource","_inherits2","_super","props","_classCallCheck2","_createClass2","value","_getMetadata","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","next","Error","stop","getMetadata","_getImage","_callee2","parameters","granularParameters","url","response","arrayBuffer","_callee2$","_context2","getGranularParameters","getURLFromTemplate","fetch","sent","ImageLoader","parse","abrupt","getImage","_x","_parameters$bbox","_slicedToArray2","bbox","east","north","west","south","_i","_Object$entries","entries","_Object$entries$_i","replace","concat","String","ImageSource","exports","toLowerCase","includes"],"sources":["../../../../../src/lib/services/generic/image-service.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport {LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {ImageType} from '@loaders.gl/images';\nimport {ImageLoader} from '@loaders.gl/images';\n\nimport type {ImageSourceMetadata, GetImageParameters} from '../../sources/image-source';\nimport {ImageSource} from '../../sources/image-source';\n\n/** Template URL string should contain `${width}` etc which will be substituted. */\nexport type ImageServiceProps = {\n /** Base URL to the service */\n url: string;\n /** Any load options to the loaders.gl Loaders used by the WMSService methods */\n loadOptions?: LoaderOptions;\n};\n\n/**\n * Quickly connect to \"ad hoc\" image sources without subclassing ImageSource.\n * ImageSource allows template url strings to be used to ad hoc connect to arbitrary image data sources\n * Accepts a template url string and builds requests URLs\n */\nexport class ImageService<PropsT extends ImageServiceProps> extends ImageSource<PropsT> {\n static type: 'template' = 'template';\n static testURL = (url: string): boolean => url.toLowerCase().includes('{');\n\n constructor(props: PropsT) {\n super(props);\n }\n\n // IMAGE SOURCE API\n\n async getMetadata(): Promise<ImageSourceMetadata> {\n throw new Error('ImageSource.getMetadata not implemented');\n }\n\n async getImage(parameters: GetImageParameters): Promise<ImageType> {\n const granularParameters = this.getGranularParameters(parameters);\n const url = this.getURLFromTemplate(granularParameters);\n const response = await this.fetch(url);\n const arrayBuffer = await response.arrayBuffer();\n return await ImageLoader.parse(arrayBuffer);\n }\n\n // HELPERS\n\n /** Break up bounding box in east, north, south, west */\n protected getGranularParameters(parameters: GetImageParameters): Record<string, unknown> {\n const [east, north, west, south] = parameters.bbox;\n return {...parameters, east, north, south, west};\n }\n\n /** Supports both ${} and {} notations */\n protected getURLFromTemplate(parameters: Record<string, unknown>): string {\n let url = this.props.url;\n for (const [key, value] of Object.entries(parameters)) {\n // TODO - parameter could be repeated\n // const regex = new RegExp(`\\${${key}}`, 'g');\n url = url.replace(`\\${${key}}`, String(value));\n url = url.replace(`{${key}}`, String(value));\n }\n return url;\n }\n}\n"],"mappings":"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"}
@@ -34,10 +34,8 @@ var CSWService = function (_DataSource) {
34
34
  var _this;
35
35
  (0, _classCallCheck2.default)(this, CSWService);
36
36
  _this = _super.call(this, props);
37
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "props", void 0);
38
37
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "capabilities", null);
39
38
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "loaders", [_wmsErrorLoader.WMSErrorLoader, _cswCapabilitiesLoader.CSWCapabilitiesLoader]);
40
- _this.props = props;
41
39
  return _this;
42
40
  }
43
41
  (0, _createClass2.default)(CSWService, [{
@@ -1 +1 @@
1
- {"version":3,"file":"csw-service.js","names":["_dataSource","require","_cswCapabilitiesLoader","_cswRecordsLoader","_cswDomainLoader","_wmsErrorLoader","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","valueOf","CSWService","_DataSource","_inherits2","_super","props","_this","_classCallCheck2","_assertThisInitialized2","CSWErrorLoader","CSWCapabilitiesLoader","_createClass2","_getMetadata","_asyncToGenerator2","_regenerator","mark","_callee","capabilities","wrap","_callee$","_context","prev","getCapabilities","sent","abrupt","normalizeMetadata","stop","getMetadata","_getServiceDirectory","_callee2","options","services","unknownServices","records","_iterator","_step","record","_iterator2","_step2","reference","url","_callee2$","_context2","getRecords","references","t0","scheme","title","type","_parseOGCUrl","t1","finish","t2","includeUnknown","concat","getServiceDirectory","_x","parts","split","params","_getCapabilities","_callee3","wmsParameters","vendorParameters","response","arrayBuffer","_callee3$","_context3","getCapabilitiesURL","fetch","_checkResponse","parse","loadOptions","_x2","_x3","_getRecords","_callee4","_callee4$","_context4","getRecordsURL","CSWRecordsLoader","_x4","_x5","_getDomain","_callee5","_callee5$","_context5","getDomainURL","CSWDomainLoader","getDomain","_x6","_x7","version","service","request","_getCSWUrl","typenames","first","_i","_Object$entries","entries","_Object$entries$_i","_slicedToArray2","toUpperCase","join","String","encodeURI","contentType","headers","ok","mimeTypes","includes","error","parseSync","Error","_parseError","DataSource","exports","toLowerCase"],"sources":["../../../../../src/lib/services/ogc/csw-service.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n/* eslint-disable camelcase */\n\nimport type {DataSourceProps} from '../../sources/data-source';\nimport {DataSource} from '../../sources/data-source';\n\nimport type {CSWCapabilities} from '../../../csw-capabilities-loader';\nimport {CSWCapabilitiesLoader} from '../../../csw-capabilities-loader';\n\nimport type {CSWRecords} from '../../../csw-records-loader';\nimport {CSWRecordsLoader} from '../../../csw-records-loader';\n\nimport type {CSWDomain} from '../../../csw-domain-loader';\nimport {CSWDomainLoader} from '../../../csw-domain-loader';\n\nimport {WMSErrorLoader as CSWErrorLoader} from '../../../wms-error-loader';\n\ntype CSWCommonParameters = {\n /** In case the endpoint supports multiple services */\n service?: 'CSW';\n /** In case the endpoint supports multiple CSW versions */\n version?: '1.1.1' | '2.0.0' | '2.0.1' | '3.0.0' | '3.0.0';\n};\n\nexport type CSWGetCapabilitiesParameters = CSWCommonParameters & {\n /** Request type */\n request?: 'GetCapabilities';\n};\n\nexport type CSWGetRecordsParameters = CSWCommonParameters & {\n /** Request type */\n request?: 'GetRecords';\n /** type of records */\n typenames: 'csw:Record';\n};\n\nexport type CSWGetDomainParameters = CSWCommonParameters & {\n /** Request type */\n request?: 'GetDomain';\n // TBA\n};\n\nexport type Service = {name: string; type: string; url: string; params?: string; scheme?: string};\n\nexport type CSWServiceProps = DataSourceProps & {\n url: string;\n};\n\n/**\n * The CSWService class provides\n * - provides type safe methods to form URLs to a CSW service\n * - provides type safe methods to query and parse results (and errors) from a CSW service\n * - implements the ImageService interface\n * @note Only the URL parameter conversion is supported. XML posts are not supported.\n */\nexport class CSWService extends DataSource {\n static type: 'csw' = 'csw';\n static testURL = (url: string): boolean => url.toLowerCase().includes('csw');\n\n props: CSWServiceProps;\n capabilities: CSWCapabilities | null = null;\n\n /** A list of loaders used by the CSWService methods */\n readonly loaders = [CSWErrorLoader, CSWCapabilitiesLoader];\n\n /** Create a CSWService */\n constructor(props: CSWServiceProps) {\n super(props);\n this.props = props;\n }\n\n async getMetadata(): Promise<CSWCapabilities> {\n const capabilities = await this.getCapabilities();\n return this.normalizeMetadata(capabilities);\n }\n\n normalizeMetadata(capabilities: CSWCapabilities): CSWCapabilities {\n return capabilities;\n }\n\n async getServiceDirectory(options?: {includeUnknown?: boolean}): Promise<Service[]> {\n const services: Service[] = [];\n const unknownServices: Service[] = [];\n\n const records = await this.getRecords();\n for (const record of records.records) {\n for (const reference of record.references) {\n const url = reference.value;\n switch (reference.scheme) {\n case 'OGC:WMS':\n services.push({name: record.title, type: 'ogc-wms-service', ...this._parseOGCUrl(url)});\n break;\n case 'OGC:WMTS':\n services.push({\n name: record.title,\n type: 'ogc-wmts-service',\n ...this._parseOGCUrl(url)\n });\n break;\n case 'OGC:WFS':\n services.push({name: record.title, type: 'ogc-wfs-service', ...this._parseOGCUrl(url)});\n break;\n default:\n unknownServices.push({\n name: record.title,\n type: 'unknown',\n url: reference.value,\n scheme: reference.scheme\n });\n }\n }\n }\n\n return options?.includeUnknown ? services.concat(unknownServices) : services;\n }\n\n _parseOGCUrl(url: string): {url: string; params: string} {\n const parts = url.split('?');\n return {\n url: parts[0],\n params: parts[1] || ''\n };\n }\n\n // CSW Service API Stubs\n\n /** Get Capabilities */\n async getCapabilities(\n wmsParameters?: CSWGetCapabilitiesParameters,\n vendorParameters?: Record<string, unknown>\n ): Promise<CSWCapabilities> {\n const url = this.getCapabilitiesURL(wmsParameters, vendorParameters);\n const response = await this.fetch(url);\n const arrayBuffer = await response.arrayBuffer();\n this._checkResponse(response, arrayBuffer);\n const capabilities = await CSWCapabilitiesLoader.parse(arrayBuffer, this.props.loadOptions);\n return capabilities;\n }\n\n /** Get Records */\n async getRecords(\n wmsParameters?: CSWGetRecordsParameters,\n vendorParameters?: Record<string, unknown>\n ): Promise<CSWRecords> {\n const url = this.getRecordsURL(wmsParameters, vendorParameters);\n const response = await this.fetch(url);\n const arrayBuffer = await response.arrayBuffer();\n this._checkResponse(response, arrayBuffer);\n return await CSWRecordsLoader.parse(arrayBuffer, this.props.loadOptions);\n }\n\n /** Get Domain */\n async getDomain(\n wmsParameters?: CSWGetDomainParameters,\n vendorParameters?: Record<string, unknown>\n ): Promise<CSWDomain> {\n const url = this.getDomainURL(wmsParameters, vendorParameters);\n const response = await this.fetch(url);\n const arrayBuffer = await response.arrayBuffer();\n this._checkResponse(response, arrayBuffer);\n return await CSWDomainLoader.parse(arrayBuffer, this.props.loadOptions);\n }\n\n // Typed URL creators\n // For applications that want full control of fetching and parsing\n\n /** Generate a URL for the GetCapabilities request */\n getCapabilitiesURL(\n wmsParameters?: CSWGetCapabilitiesParameters,\n vendorParameters?: Record<string, unknown>\n ): string {\n const options: Required<CSWGetCapabilitiesParameters> = {\n version: '3.0.0',\n ...wmsParameters,\n ...vendorParameters,\n service: 'CSW',\n request: 'GetCapabilities'\n };\n return this._getCSWUrl(options, vendorParameters);\n }\n\n /** Generate a URL for the GetCapabilities request */\n getRecordsURL(\n wmsParameters?: CSWGetRecordsParameters,\n vendorParameters?: Record<string, unknown>\n ): string {\n const options: Required<CSWGetRecordsParameters> = {\n version: '3.0.0',\n typenames: 'csw:Record',\n ...wmsParameters,\n ...vendorParameters,\n service: 'CSW',\n request: 'GetRecords'\n };\n return this._getCSWUrl(options, vendorParameters);\n }\n\n /** Generate a URL for the GetCapabilities request */\n getDomainURL(\n wmsParameters?: CSWGetDomainParameters,\n vendorParameters?: Record<string, unknown>\n ): string {\n const options: Required<CSWGetDomainParameters> = {\n version: '3.0.0',\n ...wmsParameters,\n ...vendorParameters,\n service: 'CSW',\n request: 'GetDomain'\n };\n return this._getCSWUrl(options, vendorParameters);\n }\n\n // INTERNAL METHODS\n\n /**\n * @note case _getCSWUrl may need to be overridden to handle certain backends?\n * */\n protected _getCSWUrl(\n options: Record<string, unknown>,\n vendorParameters?: Record<string, unknown>\n ): string {\n let url = this.props.url;\n let first = true;\n for (const [key, value] of Object.entries(options)) {\n url += first ? '?' : '&';\n first = false;\n if (Array.isArray(value)) {\n url += `${key.toUpperCase()}=${value.join(',')}`;\n } else {\n url += `${key.toUpperCase()}=${value ? String(value) : ''}`;\n }\n }\n return encodeURI(url);\n }\n\n /** Checks for and parses a CSW XML formatted ServiceError and throws an exception */\n protected _checkResponse(response: Response, arrayBuffer: ArrayBuffer): void {\n const contentType = response.headers['content-type'];\n if (!response.ok || CSWErrorLoader.mimeTypes.includes(contentType)) {\n const error = CSWErrorLoader.parseSync(arrayBuffer, this.props.loadOptions);\n throw new Error(error);\n }\n }\n\n /** Error situation detected */\n protected _parseError(arrayBuffer: ArrayBuffer): Error {\n const error = CSWErrorLoader.parseSync(arrayBuffer, this.props.loadOptions);\n return new Error(error);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"csw-service.js","names":["_dataSource","require","_cswCapabilitiesLoader","_cswRecordsLoader","_cswDomainLoader","_wmsErrorLoader","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","valueOf","CSWService","_DataSource","_inherits2","_super","props","_this","_classCallCheck2","_assertThisInitialized2","CSWErrorLoader","CSWCapabilitiesLoader","_createClass2","_getMetadata","_asyncToGenerator2","_regenerator","mark","_callee","capabilities","wrap","_callee$","_context","prev","getCapabilities","sent","abrupt","normalizeMetadata","stop","getMetadata","_getServiceDirectory","_callee2","options","services","unknownServices","records","_iterator","_step","record","_iterator2","_step2","reference","url","_callee2$","_context2","getRecords","references","t0","scheme","title","type","_parseOGCUrl","t1","finish","t2","includeUnknown","concat","getServiceDirectory","_x","parts","split","params","_getCapabilities","_callee3","wmsParameters","vendorParameters","response","arrayBuffer","_callee3$","_context3","getCapabilitiesURL","fetch","_checkResponse","parse","loadOptions","_x2","_x3","_getRecords","_callee4","_callee4$","_context4","getRecordsURL","CSWRecordsLoader","_x4","_x5","_getDomain","_callee5","_callee5$","_context5","getDomainURL","CSWDomainLoader","getDomain","_x6","_x7","version","service","request","_getCSWUrl","typenames","first","_i","_Object$entries","entries","_Object$entries$_i","_slicedToArray2","toUpperCase","join","String","encodeURI","contentType","headers","ok","mimeTypes","includes","error","parseSync","Error","_parseError","DataSource","exports","toLowerCase"],"sources":["../../../../../src/lib/services/ogc/csw-service.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n/* eslint-disable camelcase */\n\nimport type {DataSourceProps} from '../../sources/data-source';\nimport {DataSource} from '../../sources/data-source';\n\nimport type {CSWCapabilities} from '../../../csw-capabilities-loader';\nimport {CSWCapabilitiesLoader} from '../../../csw-capabilities-loader';\n\nimport type {CSWRecords} from '../../../csw-records-loader';\nimport {CSWRecordsLoader} from '../../../csw-records-loader';\n\nimport type {CSWDomain} from '../../../csw-domain-loader';\nimport {CSWDomainLoader} from '../../../csw-domain-loader';\n\nimport {WMSErrorLoader as CSWErrorLoader} from '../../../wms-error-loader';\n\ntype CSWCommonParameters = {\n /** In case the endpoint supports multiple services */\n service?: 'CSW';\n /** In case the endpoint supports multiple CSW versions */\n version?: '1.1.1' | '2.0.0' | '2.0.1' | '3.0.0' | '3.0.0';\n};\n\nexport type CSWGetCapabilitiesParameters = CSWCommonParameters & {\n /** Request type */\n request?: 'GetCapabilities';\n};\n\nexport type CSWGetRecordsParameters = CSWCommonParameters & {\n /** Request type */\n request?: 'GetRecords';\n /** type of records */\n typenames: 'csw:Record';\n};\n\nexport type CSWGetDomainParameters = CSWCommonParameters & {\n /** Request type */\n request?: 'GetDomain';\n // TBA\n};\n\nexport type Service = {name: string; type: string; url: string; params?: string; scheme?: string};\n\nexport type CSWServiceProps = DataSourceProps & {\n url: string;\n};\n\n/**\n * The CSWService class provides\n * - provides type safe methods to form URLs to a CSW service\n * - provides type safe methods to query and parse results (and errors) from a CSW service\n * - implements the ImageService interface\n * @note Only the URL parameter conversion is supported. XML posts are not supported.\n */\nexport class CSWService extends DataSource<CSWServiceProps> {\n static type: 'csw' = 'csw';\n static testURL = (url: string): boolean => url.toLowerCase().includes('csw');\n\n capabilities: CSWCapabilities | null = null;\n\n /** A list of loaders used by the CSWService methods */\n readonly loaders = [CSWErrorLoader, CSWCapabilitiesLoader];\n\n /** Create a CSWService */\n constructor(props: CSWServiceProps) {\n super(props);\n }\n\n async getMetadata(): Promise<CSWCapabilities> {\n const capabilities = await this.getCapabilities();\n return this.normalizeMetadata(capabilities);\n }\n\n normalizeMetadata(capabilities: CSWCapabilities): CSWCapabilities {\n return capabilities;\n }\n\n async getServiceDirectory(options?: {includeUnknown?: boolean}): Promise<Service[]> {\n const services: Service[] = [];\n const unknownServices: Service[] = [];\n\n const records = await this.getRecords();\n for (const record of records.records) {\n for (const reference of record.references) {\n const url = reference.value;\n switch (reference.scheme) {\n case 'OGC:WMS':\n services.push({name: record.title, type: 'ogc-wms-service', ...this._parseOGCUrl(url)});\n break;\n case 'OGC:WMTS':\n services.push({\n name: record.title,\n type: 'ogc-wmts-service',\n ...this._parseOGCUrl(url)\n });\n break;\n case 'OGC:WFS':\n services.push({name: record.title, type: 'ogc-wfs-service', ...this._parseOGCUrl(url)});\n break;\n default:\n unknownServices.push({\n name: record.title,\n type: 'unknown',\n url: reference.value,\n scheme: reference.scheme\n });\n }\n }\n }\n\n return options?.includeUnknown ? services.concat(unknownServices) : services;\n }\n\n _parseOGCUrl(url: string): {url: string; params: string} {\n const parts = url.split('?');\n return {\n url: parts[0],\n params: parts[1] || ''\n };\n }\n\n // CSW Service API Stubs\n\n /** Get Capabilities */\n async getCapabilities(\n wmsParameters?: CSWGetCapabilitiesParameters,\n vendorParameters?: Record<string, unknown>\n ): Promise<CSWCapabilities> {\n const url = this.getCapabilitiesURL(wmsParameters, vendorParameters);\n const response = await this.fetch(url);\n const arrayBuffer = await response.arrayBuffer();\n this._checkResponse(response, arrayBuffer);\n const capabilities = await CSWCapabilitiesLoader.parse(arrayBuffer, this.props.loadOptions);\n return capabilities;\n }\n\n /** Get Records */\n async getRecords(\n wmsParameters?: CSWGetRecordsParameters,\n vendorParameters?: Record<string, unknown>\n ): Promise<CSWRecords> {\n const url = this.getRecordsURL(wmsParameters, vendorParameters);\n const response = await this.fetch(url);\n const arrayBuffer = await response.arrayBuffer();\n this._checkResponse(response, arrayBuffer);\n return await CSWRecordsLoader.parse(arrayBuffer, this.props.loadOptions);\n }\n\n /** Get Domain */\n async getDomain(\n wmsParameters?: CSWGetDomainParameters,\n vendorParameters?: Record<string, unknown>\n ): Promise<CSWDomain> {\n const url = this.getDomainURL(wmsParameters, vendorParameters);\n const response = await this.fetch(url);\n const arrayBuffer = await response.arrayBuffer();\n this._checkResponse(response, arrayBuffer);\n return await CSWDomainLoader.parse(arrayBuffer, this.props.loadOptions);\n }\n\n // Typed URL creators\n // For applications that want full control of fetching and parsing\n\n /** Generate a URL for the GetCapabilities request */\n getCapabilitiesURL(\n wmsParameters?: CSWGetCapabilitiesParameters,\n vendorParameters?: Record<string, unknown>\n ): string {\n const options: Required<CSWGetCapabilitiesParameters> = {\n version: '3.0.0',\n ...wmsParameters,\n ...vendorParameters,\n service: 'CSW',\n request: 'GetCapabilities'\n };\n return this._getCSWUrl(options, vendorParameters);\n }\n\n /** Generate a URL for the GetCapabilities request */\n getRecordsURL(\n wmsParameters?: CSWGetRecordsParameters,\n vendorParameters?: Record<string, unknown>\n ): string {\n const options: Required<CSWGetRecordsParameters> = {\n version: '3.0.0',\n typenames: 'csw:Record',\n ...wmsParameters,\n ...vendorParameters,\n service: 'CSW',\n request: 'GetRecords'\n };\n return this._getCSWUrl(options, vendorParameters);\n }\n\n /** Generate a URL for the GetCapabilities request */\n getDomainURL(\n wmsParameters?: CSWGetDomainParameters,\n vendorParameters?: Record<string, unknown>\n ): string {\n const options: Required<CSWGetDomainParameters> = {\n version: '3.0.0',\n ...wmsParameters,\n ...vendorParameters,\n service: 'CSW',\n request: 'GetDomain'\n };\n return this._getCSWUrl(options, vendorParameters);\n }\n\n // INTERNAL METHODS\n\n /**\n * @note case _getCSWUrl may need to be overridden to handle certain backends?\n * */\n protected _getCSWUrl(\n options: Record<string, unknown>,\n vendorParameters?: Record<string, unknown>\n ): string {\n let url = this.props.url;\n let first = true;\n for (const [key, value] of Object.entries(options)) {\n url += first ? '?' : '&';\n first = false;\n if (Array.isArray(value)) {\n url += `${key.toUpperCase()}=${value.join(',')}`;\n } else {\n url += `${key.toUpperCase()}=${value ? String(value) : ''}`;\n }\n }\n return encodeURI(url);\n }\n\n /** Checks for and parses a CSW XML formatted ServiceError and throws an exception */\n protected _checkResponse(response: Response, arrayBuffer: ArrayBuffer): void {\n const contentType = response.headers['content-type'];\n if (!response.ok || CSWErrorLoader.mimeTypes.includes(contentType)) {\n const error = CSWErrorLoader.parseSync(arrayBuffer, this.props.loadOptions);\n throw new Error(error);\n }\n }\n\n /** Error situation detected */\n protected _parseError(arrayBuffer: ArrayBuffer): Error {\n const error = CSWErrorLoader.parseSync(arrayBuffer, this.props.loadOptions);\n return new Error(error);\n }\n}\n"],"mappings":"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"}
@@ -33,17 +33,23 @@ var WMSService = function (_ImageSource) {
33
33
  (0, _inherits2.default)(WMSService, _ImageSource);
34
34
  var _super = _createSuper(WMSService);
35
35
  function WMSService(props) {
36
+ var _props$substituteCRS;
36
37
  var _this;
37
38
  (0, _classCallCheck2.default)(this, WMSService);
38
39
  _this = _super.call(this, props);
39
40
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "url", void 0);
41
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "substituteCRS84", void 0);
42
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "flipCRS", void 0);
40
43
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "wmsParameters", void 0);
41
44
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "vendorParameters", void 0);
42
45
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "capabilities", null);
43
46
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "loaders", [_images.ImageLoader, _wmsErrorLoader.WMSErrorLoader, _wmsCapabilitiesLoader.WMSCapabilitiesLoader, _wmsFeatureInfoLoader.WMSFeatureInfoLoader, _wmsLayerDescriptionLoader.WMSLayerDescriptionLoader]);
44
47
  _this.url = props.url;
48
+ _this.substituteCRS84 = (_props$substituteCRS = props.substituteCRS84) !== null && _props$substituteCRS !== void 0 ? _props$substituteCRS : false;
49
+ _this.flipCRS = ['EPSG:4326'];
45
50
  _this.wmsParameters = _objectSpread({
46
51
  layers: undefined,
52
+ query_layers: undefined,
47
53
  styles: undefined,
48
54
  version: '1.3.0',
49
55
  crs: 'EPSG:4326',
@@ -82,19 +88,14 @@ var WMSService = function (_ImageSource) {
82
88
  key: "getImage",
83
89
  value: function () {
84
90
  var _getImage = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(parameters) {
85
- var wmsParameters;
86
91
  return _regenerator.default.wrap(function _callee2$(_context2) {
87
92
  while (1) switch (_context2.prev = _context2.next) {
88
93
  case 0:
89
- wmsParameters = _objectSpread(_objectSpread({}, parameters), {}, {
90
- crs: parameters.srs
91
- });
92
- delete wmsParameters.srs;
93
- _context2.next = 4;
94
- return this.getMap(wmsParameters);
95
- case 4:
94
+ _context2.next = 2;
95
+ return this.getMap(parameters);
96
+ case 2:
96
97
  return _context2.abrupt("return", _context2.sent);
97
- case 5:
98
+ case 3:
98
99
  case "end":
99
100
  return _context2.stop();
100
101
  }
@@ -328,12 +329,14 @@ var WMSService = function (_ImageSource) {
328
329
  }, {
329
330
  key: "getMapURL",
330
331
  value: function getMapURL(wmsParameters, vendorParameters) {
332
+ wmsParameters = this._getWMS130Parameters(wmsParameters);
331
333
  var options = _objectSpread({
332
334
  version: this.wmsParameters.version,
333
- styles: this.wmsParameters.styles,
334
- crs: this.wmsParameters.crs,
335
335
  format: this.wmsParameters.format,
336
- transparent: this.wmsParameters.transparent
336
+ transparent: this.wmsParameters.transparent,
337
+ layers: this.wmsParameters.layers,
338
+ styles: this.wmsParameters.styles,
339
+ crs: this.wmsParameters.crs
337
340
  }, wmsParameters);
338
341
  return this._getWMSUrl('GetMap', options, vendorParameters);
339
342
  }
@@ -342,10 +345,11 @@ var WMSService = function (_ImageSource) {
342
345
  value: function getFeatureInfoURL(wmsParameters, vendorParameters) {
343
346
  var options = _objectSpread({
344
347
  version: this.wmsParameters.version,
345
- srs: this.wmsParameters.crs,
346
- format: this.wmsParameters.format,
347
348
  info_format: this.wmsParameters.info_format,
348
- styles: this.wmsParameters.styles
349
+ layers: this.wmsParameters.layers,
350
+ query_layers: this.wmsParameters.query_layers,
351
+ styles: this.wmsParameters.styles,
352
+ crs: this.wmsParameters.crs
349
353
  }, wmsParameters);
350
354
  return this._getWMSUrl('GetFeatureInfo', options, vendorParameters);
351
355
  }
@@ -412,20 +416,58 @@ var WMSService = function (_ImageSource) {
412
416
  if (_key2 !== 'transparent' || value) {
413
417
  url += first ? '?' : '&';
414
418
  first = false;
415
- url += this._getParameterValue(wmsParameters.version, _key2, value);
419
+ url += this._getURLParameter(_key2, value, wmsParameters);
416
420
  }
417
421
  }
418
422
  return encodeURI(url);
419
423
  }
420
424
  }, {
421
- key: "_getParameterValue",
422
- value: function _getParameterValue(version, key, value) {
423
- if (key === 'crs' && version !== '1.3.0') {
424
- key = 'srs';
425
+ key: "_getWMS130Parameters",
426
+ value: function _getWMS130Parameters(wmsParameters) {
427
+ var newParameters = _objectSpread({}, wmsParameters);
428
+ if (newParameters.srs) {
429
+ newParameters.crs = newParameters.crs || newParameters.srs;
430
+ delete newParameters.srs;
431
+ }
432
+ return newParameters;
433
+ }
434
+ }, {
435
+ key: "_getURLParameter",
436
+ value: function _getURLParameter(key, value, wmsParameters) {
437
+ switch (key) {
438
+ case 'crs':
439
+ if (wmsParameters.version !== '1.3.0') {
440
+ key = 'srs';
441
+ } else if (this.substituteCRS84 && value === 'EPSG:4326') {
442
+ value = 'CRS:84';
443
+ }
444
+ break;
445
+ case 'srs':
446
+ if (wmsParameters.version === '1.3.0') {
447
+ key = 'crs';
448
+ }
449
+ break;
450
+ case 'bbox':
451
+ var bbox = this._flipBoundingBox(value, wmsParameters);
452
+ if (bbox) {
453
+ value = bbox;
454
+ }
455
+ break;
456
+ default:
425
457
  }
426
458
  key = key.toUpperCase();
427
459
  return Array.isArray(value) ? "".concat(key, "=").concat(value.join(',')) : "".concat(key, "=").concat(value ? String(value) : '');
428
460
  }
461
+ }, {
462
+ key: "_flipBoundingBox",
463
+ value: function _flipBoundingBox(bboxValue, wmsParameters) {
464
+ if (!Array.isArray(bboxValue) || bboxValue.length !== 4) {
465
+ return null;
466
+ }
467
+ var flipCoordinates = wmsParameters.version === '1.3.0' && this.flipCRS.includes(wmsParameters.crs || '') && !(this.substituteCRS84 && wmsParameters.crs === 'EPSG:4326');
468
+ var bbox = bboxValue;
469
+ return flipCoordinates ? [bbox[1], bbox[0], bbox[3], bbox[2]] : bbox;
470
+ }
429
471
  }, {
430
472
  key: "_fetchArrayBuffer",
431
473
  value: function () {