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

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 (208) hide show
  1. package/dist/dist.min.js +412 -176
  2. package/dist/es5/csw-capabilities-loader.js +7 -11
  3. package/dist/es5/csw-capabilities-loader.js.map +1 -1
  4. package/dist/es5/csw-domain-loader.js +7 -10
  5. package/dist/es5/csw-domain-loader.js.map +1 -1
  6. package/dist/es5/csw-records-loader.js +7 -10
  7. package/dist/es5/csw-records-loader.js.map +1 -1
  8. package/dist/es5/gml-loader.js +7 -10
  9. package/dist/es5/gml-loader.js.map +1 -1
  10. package/dist/es5/index.js +0 -7
  11. package/dist/es5/index.js.map +1 -1
  12. package/dist/es5/lerc-loader.js +17 -22
  13. package/dist/es5/lerc-loader.js.map +1 -1
  14. package/dist/es5/lib/create-image-source.js +1 -2
  15. package/dist/es5/lib/create-image-source.js.map +1 -1
  16. package/dist/es5/lib/parsers/csw/parse-csw-capabilities.js.map +1 -1
  17. package/dist/es5/lib/parsers/csw/parse-csw-domain.js +1 -1
  18. package/dist/es5/lib/parsers/csw/parse-csw-domain.js.map +1 -1
  19. package/dist/es5/lib/parsers/csw/parse-csw-records.js +1 -2
  20. package/dist/es5/lib/parsers/csw/parse-csw-records.js.map +1 -1
  21. package/dist/es5/lib/parsers/csw/parse-exception-report.js +0 -2
  22. package/dist/es5/lib/parsers/csw/parse-exception-report.js.map +1 -1
  23. package/dist/es5/lib/parsers/gml/deep-strict-equal.js +0 -8
  24. package/dist/es5/lib/parsers/gml/deep-strict-equal.js.map +1 -1
  25. package/dist/es5/lib/parsers/gml/parse-gml.js +1 -13
  26. package/dist/es5/lib/parsers/gml/parse-gml.js.map +1 -1
  27. package/dist/es5/lib/parsers/wms/parse-wms-capabilities.js +197 -54
  28. package/dist/es5/lib/parsers/wms/parse-wms-capabilities.js.map +1 -1
  29. package/dist/es5/lib/parsers/wms/parse-wms-error.js +0 -1
  30. package/dist/es5/lib/parsers/wms/parse-wms-error.js.map +1 -1
  31. package/dist/es5/lib/parsers/wms/parse-wms-features.js +0 -1
  32. package/dist/es5/lib/parsers/wms/parse-wms-features.js.map +1 -1
  33. package/dist/es5/lib/parsers/wms/parse-wms-layer-description.js +0 -1
  34. package/dist/es5/lib/parsers/wms/parse-wms-layer-description.js.map +1 -1
  35. package/dist/es5/lib/parsers/xml/parse-xml-helpers.js +67 -0
  36. package/dist/es5/lib/parsers/xml/parse-xml-helpers.js.map +1 -0
  37. package/dist/es5/lib/services/arcgis/arcgis-image-service.js +36 -60
  38. package/dist/es5/lib/services/arcgis/arcgis-image-service.js.map +1 -1
  39. package/dist/es5/lib/services/arcgis/arcgis-server.js +50 -54
  40. package/dist/es5/lib/services/arcgis/arcgis-server.js.map +1 -1
  41. package/dist/es5/lib/services/generic/image-service.js +28 -42
  42. package/dist/es5/lib/services/generic/image-service.js.map +1 -1
  43. package/dist/es5/lib/services/ogc/csw-service.js +161 -188
  44. package/dist/es5/lib/services/ogc/csw-service.js.map +1 -1
  45. package/dist/es5/lib/services/ogc/wms-service.js +325 -245
  46. package/dist/es5/lib/services/ogc/wms-service.js.map +1 -1
  47. package/dist/es5/lib/sources/data-source.js +36 -13
  48. package/dist/es5/lib/sources/data-source.js.map +1 -1
  49. package/dist/es5/lib/sources/image-source.js.map +1 -1
  50. package/dist/es5/lib/sources/tile-source.js.map +1 -1
  51. package/dist/es5/lib/sources/utils/utils.js +0 -4
  52. package/dist/es5/lib/sources/utils/utils.js.map +1 -1
  53. package/dist/es5/wip/arcgis-feature-service.js +2 -7
  54. package/dist/es5/wip/arcgis-feature-service.js.map +1 -1
  55. package/dist/es5/wip/data-source.js +0 -2
  56. package/dist/es5/wip/lib/wcs/parse-wcs-capabilities.js.map +1 -1
  57. package/dist/es5/wip/lib/wfs/parse-wfs-capabilities.js.map +1 -1
  58. package/dist/es5/wip/lib/wmts/parse-wmts-capabilities.js.map +1 -1
  59. package/dist/es5/wip/wcs-capabilities-loader.js +7 -10
  60. package/dist/es5/wip/wcs-capabilities-loader.js.map +1 -1
  61. package/dist/es5/wip/wfs-capabilities-loader.js +7 -10
  62. package/dist/es5/wip/wfs-capabilities-loader.js.map +1 -1
  63. package/dist/es5/wip/wms-feature-info-loader.js +6 -8
  64. package/dist/es5/wip/wms-feature-info-loader.js.map +1 -1
  65. package/dist/es5/wip/wms-layer-description-loader.js +6 -8
  66. package/dist/es5/wip/wms-layer-description-loader.js.map +1 -1
  67. package/dist/es5/wip/wmts-capabilities-loader.js +7 -16
  68. package/dist/es5/wip/wmts-capabilities-loader.js.map +1 -1
  69. package/dist/es5/wms-capabilities-loader.js +8 -12
  70. package/dist/es5/wms-capabilities-loader.js.map +1 -1
  71. package/dist/es5/wms-error-loader.js +7 -9
  72. package/dist/es5/wms-error-loader.js.map +1 -1
  73. package/dist/esm/bundle.js +0 -2
  74. package/dist/esm/bundle.js.map +1 -1
  75. package/dist/esm/csw-capabilities-loader.js +1 -5
  76. package/dist/esm/csw-capabilities-loader.js.map +1 -1
  77. package/dist/esm/csw-domain-loader.js +1 -4
  78. package/dist/esm/csw-domain-loader.js.map +1 -1
  79. package/dist/esm/csw-records-loader.js +1 -4
  80. package/dist/esm/csw-records-loader.js.map +1 -1
  81. package/dist/esm/gml-loader.js +1 -4
  82. package/dist/esm/gml-loader.js.map +1 -1
  83. package/dist/esm/index.js +0 -11
  84. package/dist/esm/index.js.map +1 -1
  85. package/dist/esm/lerc-loader.js +1 -4
  86. package/dist/esm/lerc-loader.js.map +1 -1
  87. package/dist/esm/lib/create-image-source.js +0 -3
  88. package/dist/esm/lib/create-image-source.js.map +1 -1
  89. package/dist/esm/lib/parsers/csw/parse-csw-capabilities.js +0 -3
  90. package/dist/esm/lib/parsers/csw/parse-csw-capabilities.js.map +1 -1
  91. package/dist/esm/lib/parsers/csw/parse-csw-domain.js +0 -3
  92. package/dist/esm/lib/parsers/csw/parse-csw-domain.js.map +1 -1
  93. package/dist/esm/lib/parsers/csw/parse-csw-records.js +0 -3
  94. package/dist/esm/lib/parsers/csw/parse-csw-records.js.map +1 -1
  95. package/dist/esm/lib/parsers/csw/parse-exception-report.js +0 -3
  96. package/dist/esm/lib/parsers/csw/parse-exception-report.js.map +1 -1
  97. package/dist/esm/lib/parsers/gml/deep-strict-equal.js +0 -9
  98. package/dist/esm/lib/parsers/gml/deep-strict-equal.js.map +1 -1
  99. package/dist/esm/lib/parsers/gml/parse-gml.js +0 -14
  100. package/dist/esm/lib/parsers/gml/parse-gml.js.map +1 -1
  101. package/dist/esm/lib/parsers/wms/parse-wms-capabilities.js +151 -42
  102. package/dist/esm/lib/parsers/wms/parse-wms-capabilities.js.map +1 -1
  103. package/dist/esm/lib/parsers/wms/parse-wms-error.js +0 -3
  104. package/dist/esm/lib/parsers/wms/parse-wms-error.js.map +1 -1
  105. package/dist/esm/lib/parsers/wms/parse-wms-features.js +0 -3
  106. package/dist/esm/lib/parsers/wms/parse-wms-features.js.map +1 -1
  107. package/dist/esm/lib/parsers/wms/parse-wms-layer-description.js +0 -3
  108. package/dist/esm/lib/parsers/wms/parse-wms-layer-description.js.map +1 -1
  109. package/dist/esm/lib/parsers/xml/parse-xml-helpers.js +53 -0
  110. package/dist/esm/lib/parsers/xml/parse-xml-helpers.js.map +1 -0
  111. package/dist/esm/lib/services/arcgis/arcgis-image-service.js +0 -11
  112. package/dist/esm/lib/services/arcgis/arcgis-image-service.js.map +1 -1
  113. package/dist/esm/lib/services/arcgis/arcgis-server.js +0 -2
  114. package/dist/esm/lib/services/arcgis/arcgis-server.js.map +1 -1
  115. package/dist/esm/lib/services/generic/image-service.js +0 -7
  116. package/dist/esm/lib/services/generic/image-service.js.map +1 -1
  117. package/dist/esm/lib/services/ogc/csw-service.js +0 -13
  118. package/dist/esm/lib/services/ogc/csw-service.js.map +1 -1
  119. package/dist/esm/lib/services/ogc/wms-service.js +135 -86
  120. package/dist/esm/lib/services/ogc/wms-service.js.map +1 -1
  121. package/dist/esm/lib/sources/data-source.js +20 -6
  122. package/dist/esm/lib/sources/data-source.js.map +1 -1
  123. package/dist/esm/lib/sources/image-source.js +0 -3
  124. package/dist/esm/lib/sources/image-source.js.map +1 -1
  125. package/dist/esm/lib/sources/tile-source.js +0 -3
  126. package/dist/esm/lib/sources/tile-source.js.map +1 -1
  127. package/dist/esm/lib/sources/utils/utils.js +0 -5
  128. package/dist/esm/lib/sources/utils/utils.js.map +1 -1
  129. package/dist/esm/wip/arcgis-feature-service.js +0 -3
  130. package/dist/esm/wip/arcgis-feature-service.js.map +1 -1
  131. package/dist/esm/wip/lib/wcs/parse-wcs-capabilities.js +0 -3
  132. package/dist/esm/wip/lib/wcs/parse-wcs-capabilities.js.map +1 -1
  133. package/dist/esm/wip/lib/wfs/parse-wfs-capabilities.js +0 -3
  134. package/dist/esm/wip/lib/wfs/parse-wfs-capabilities.js.map +1 -1
  135. package/dist/esm/wip/lib/wmts/parse-wmts-capabilities.js +0 -3
  136. package/dist/esm/wip/lib/wmts/parse-wmts-capabilities.js.map +1 -1
  137. package/dist/esm/wip/wcs-capabilities-loader.js +1 -4
  138. package/dist/esm/wip/wcs-capabilities-loader.js.map +1 -1
  139. package/dist/esm/wip/wfs-capabilities-loader.js +1 -4
  140. package/dist/esm/wip/wfs-capabilities-loader.js.map +1 -1
  141. package/dist/esm/wip/wms-feature-info-loader.js +0 -2
  142. package/dist/esm/wip/wms-feature-info-loader.js.map +1 -1
  143. package/dist/esm/wip/wms-layer-description-loader.js +0 -2
  144. package/dist/esm/wip/wms-layer-description-loader.js.map +1 -1
  145. package/dist/esm/wip/wmts-capabilities-loader.js +1 -6
  146. package/dist/esm/wip/wmts-capabilities-loader.js.map +1 -1
  147. package/dist/esm/wms-capabilities-loader.js +3 -7
  148. package/dist/esm/wms-capabilities-loader.js.map +1 -1
  149. package/dist/esm/wms-error-loader.js +1 -4
  150. package/dist/esm/wms-error-loader.js.map +1 -1
  151. package/dist/index.d.ts +0 -3
  152. package/dist/index.d.ts.map +1 -1
  153. package/dist/index.js +3 -5
  154. package/dist/lib/create-image-source.d.ts +1 -1
  155. package/dist/lib/create-image-source.d.ts.map +1 -1
  156. package/dist/lib/parsers/wms/parse-wms-capabilities.d.ts +78 -62
  157. package/dist/lib/parsers/wms/parse-wms-capabilities.d.ts.map +1 -1
  158. package/dist/lib/parsers/wms/parse-wms-capabilities.js +166 -1935
  159. package/dist/lib/parsers/xml/parse-xml-helpers.d.ts +11 -0
  160. package/dist/lib/parsers/xml/parse-xml-helpers.d.ts.map +1 -0
  161. package/dist/lib/parsers/xml/parse-xml-helpers.js +68 -0
  162. package/dist/lib/services/arcgis/arcgis-image-service.d.ts +1 -2
  163. package/dist/lib/services/arcgis/arcgis-image-service.d.ts.map +1 -1
  164. package/dist/lib/services/arcgis/arcgis-image-service.js +1 -2
  165. package/dist/lib/services/generic/image-service.d.ts +2 -3
  166. package/dist/lib/services/generic/image-service.d.ts.map +1 -1
  167. package/dist/lib/services/generic/image-service.js +1 -2
  168. package/dist/lib/services/ogc/csw-service.d.ts +2 -3
  169. package/dist/lib/services/ogc/csw-service.d.ts.map +1 -1
  170. package/dist/lib/services/ogc/csw-service.js +1 -2
  171. package/dist/lib/services/ogc/wms-service.d.ts +128 -72
  172. package/dist/lib/services/ogc/wms-service.d.ts.map +1 -1
  173. package/dist/lib/services/ogc/wms-service.js +154 -73
  174. package/dist/lib/sources/data-source.d.ts +12 -2
  175. package/dist/lib/sources/data-source.d.ts.map +1 -1
  176. package/dist/lib/sources/data-source.js +22 -0
  177. package/dist/lib/sources/image-source.d.ts +9 -15
  178. package/dist/lib/sources/image-source.d.ts.map +1 -1
  179. package/dist/lib/sources/tile-source.d.ts +4 -2
  180. package/dist/lib/sources/tile-source.d.ts.map +1 -1
  181. package/dist/wip/wmts-capabilities-loader.d.ts +3 -4
  182. package/dist/wip/wmts-capabilities-loader.d.ts.map +1 -1
  183. package/dist/wip/wmts-capabilities-loader.js +1 -0
  184. package/dist/wms-capabilities-loader.d.ts +6 -1
  185. package/dist/wms-capabilities-loader.d.ts.map +1 -1
  186. package/dist/wms-capabilities-loader.js +2 -2
  187. package/package.json +6 -6
  188. package/src/index.ts +3 -4
  189. package/src/lib/create-image-source.ts +1 -1
  190. package/src/lib/parsers/wms/parse-wms-capabilities.ts +294 -2004
  191. package/src/lib/parsers/xml/parse-xml-helpers.ts +65 -0
  192. package/src/lib/services/arcgis/arcgis-image-service.ts +1 -4
  193. package/src/lib/services/generic/image-service.ts +2 -5
  194. package/src/lib/services/ogc/csw-service.ts +2 -4
  195. package/src/lib/services/ogc/wms-service.ts +290 -125
  196. package/src/lib/sources/data-source.ts +29 -2
  197. package/src/lib/sources/image-source.ts +9 -15
  198. package/src/lib/sources/tile-source.ts +4 -2
  199. package/src/wip/wmts-capabilities-loader.ts +2 -2
  200. package/src/wms-capabilities-loader.ts +9 -3
  201. package/dist/es5/lib/services/generic/tile-service.js +0 -2
  202. package/dist/es5/lib/services/generic/tile-service.js.map +0 -1
  203. package/dist/esm/lib/services/generic/tile-service.js +0 -2
  204. package/dist/esm/lib/services/generic/tile-service.js.map +0 -1
  205. package/dist/lib/services/generic/tile-service.d.ts +0 -1
  206. package/dist/lib/services/generic/tile-service.d.ts.map +0 -1
  207. package/dist/lib/services/generic/tile-service.js +0 -1
  208. package/src/lib/services/generic/tile-service.ts +0 -0
@@ -0,0 +1,65 @@
1
+ // loaders.gl, MIT license
2
+
3
+ /** A single element of an array is not represented as an array in XML */
4
+ export function getXMLArray(xmlValue: any): any[] {
5
+ // Already an array, return as is
6
+ if (Array.isArray(xmlValue)) {
7
+ return xmlValue;
8
+ }
9
+ // Single value, wrap in array
10
+ if (xmlValue) {
11
+ return [xmlValue];
12
+ }
13
+ // nullish, return empty array
14
+ return [];
15
+ }
16
+
17
+ /** Get a list of strings from XML */
18
+ export function getXMLStringArray(xmlValue: any): string[] {
19
+ const xmlArray = getXMLArray(xmlValue);
20
+ if (xmlArray.length > 0 && xmlArray.every((_) => typeof _ === 'string')) {
21
+ return xmlArray as string[];
22
+ }
23
+ // TODO - error handling?
24
+ return [];
25
+ }
26
+
27
+ /** Get XML float */
28
+ export function getXMLFloat(xmlValue: any, defaultValue = undefined): number | undefined {
29
+ switch (typeof xmlValue) {
30
+ case 'number':
31
+ return xmlValue;
32
+ case 'string':
33
+ return parseFloat(xmlValue);
34
+ default:
35
+ return undefined;
36
+ }
37
+ }
38
+
39
+ /** Get XML integer */
40
+ export function getXMLInteger(xmlValue: any, defaultValue = undefined): number | undefined {
41
+ switch (typeof xmlValue) {
42
+ case 'number':
43
+ return xmlValue;
44
+ case 'string':
45
+ return parseInt(xmlValue, 10);
46
+ default:
47
+ return undefined;
48
+ }
49
+ }
50
+
51
+ /** Somewhat arbitrary boolean parsing */
52
+ export function getXMLBoolean(xmlValue: any): boolean {
53
+ switch (xmlValue) {
54
+ case 'true':
55
+ return true;
56
+ case 'false':
57
+ return false;
58
+ case '1':
59
+ return true;
60
+ case '0':
61
+ return false;
62
+ default:
63
+ return false;
64
+ }
65
+ }
@@ -14,15 +14,12 @@ export type ArcGISImageServerProps = ImageSourceProps & {
14
14
  * Note - exports a big API, that could be exposed here if there is a use case
15
15
  * @see https://developers.arcgis.com/rest/services-reference/enterprise/image-service.htm
16
16
  */
17
- export class ArcGISImageServer extends ImageSource {
17
+ export class ArcGISImageServer extends ImageSource<ArcGISImageServerProps> {
18
18
  static type: 'arcgis-image-server' = 'arcgis-image-server';
19
19
  static testURL = (url: string): boolean => url.toLowerCase().includes('ImageServer');
20
20
 
21
- props: ArcGISImageServerProps;
22
-
23
21
  constructor(props: ArcGISImageServerProps) {
24
22
  super(props);
25
- this.props = props;
26
23
  }
27
24
 
28
25
  // ImageSource (normalized endpoints)
@@ -20,15 +20,12 @@ export type ImageServiceProps = {
20
20
  * ImageSource allows template url strings to be used to ad hoc connect to arbitrary image data sources
21
21
  * Accepts a template url string and builds requests URLs
22
22
  */
23
- export class ImageService extends ImageSource {
23
+ export class ImageService<PropsT extends ImageServiceProps> extends ImageSource<PropsT> {
24
24
  static type: 'template' = 'template';
25
25
  static testURL = (url: string): boolean => url.toLowerCase().includes('{');
26
26
 
27
- props: ImageServiceProps;
28
-
29
- constructor(props: ImageServiceProps) {
27
+ constructor(props: PropsT) {
30
28
  super(props);
31
- this.props = props;
32
29
  }
33
30
 
34
31
  // IMAGE SOURCE API
@@ -54,11 +54,10 @@ export type CSWServiceProps = DataSourceProps & {
54
54
  * - implements the ImageService interface
55
55
  * @note Only the URL parameter conversion is supported. XML posts are not supported.
56
56
  */
57
- export class CSWService extends DataSource {
57
+ export class CSWService extends DataSource<CSWServiceProps> {
58
58
  static type: 'csw' = 'csw';
59
59
  static testURL = (url: string): boolean => url.toLowerCase().includes('csw');
60
60
 
61
- props: CSWServiceProps;
62
61
  capabilities: CSWCapabilities | null = null;
63
62
 
64
63
  /** A list of loaders used by the CSWService methods */
@@ -67,7 +66,6 @@ export class CSWService extends DataSource {
67
66
  /** Create a CSWService */
68
67
  constructor(props: CSWServiceProps) {
69
68
  super(props);
70
- this.props = props;
71
69
  }
72
70
 
73
71
  async getMetadata(): Promise<CSWCapabilities> {
@@ -79,7 +77,7 @@ export class CSWService extends DataSource {
79
77
  return capabilities;
80
78
  }
81
79
 
82
- async getServiceDirectory(options: {includeUnknown?: boolean}): Promise<Service[]> {
80
+ async getServiceDirectory(options?: {includeUnknown?: boolean}): Promise<Service[]> {
83
81
  const services: Service[] = [];
84
82
  const unknownServices: Service[] = [];
85
83