@loaders.gl/wms 4.2.0-alpha.4 → 4.2.0-alpha.5

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 (109) hide show
  1. package/dist/csw-capabilities-loader.d.ts +1 -1
  2. package/dist/csw-capabilities-loader.d.ts.map +1 -1
  3. package/dist/csw-capabilities-loader.js +23 -15
  4. package/dist/csw-domain-loader.d.ts +1 -1
  5. package/dist/csw-domain-loader.d.ts.map +1 -1
  6. package/dist/csw-domain-loader.js +23 -15
  7. package/dist/csw-records-loader.d.ts +1 -1
  8. package/dist/csw-records-loader.d.ts.map +1 -1
  9. package/dist/csw-records-loader.js +23 -15
  10. package/dist/gml-loader.d.ts +1 -1
  11. package/dist/gml-loader.d.ts.map +1 -1
  12. package/dist/gml-loader.js +23 -15
  13. package/dist/index.cjs +49 -58
  14. package/dist/index.cjs.map +7 -0
  15. package/dist/index.d.ts +30 -30
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +8 -1
  18. package/dist/lib/parsers/csw/parse-csw-capabilities.js +18 -13
  19. package/dist/lib/parsers/csw/parse-csw-domain.js +26 -18
  20. package/dist/lib/parsers/csw/parse-csw-records.js +47 -36
  21. package/dist/lib/parsers/csw/parse-exception-report.js +26 -8
  22. package/dist/lib/parsers/gml/deep-strict-equal.js +107 -39
  23. package/dist/lib/parsers/gml/parse-gml.js +299 -280
  24. package/dist/lib/parsers/wms/parse-wms-capabilities.js +207 -187
  25. package/dist/lib/parsers/wms/parse-wms-error.js +17 -6
  26. package/dist/lib/parsers/wms/parse-wms-features.js +20 -19
  27. package/dist/lib/parsers/wms/parse-wms-layer-description.js +10 -4
  28. package/dist/lib/parsers/xml/parse-xml-helpers.js +54 -45
  29. package/dist/lib/services/create-image-service.d.ts +1 -1
  30. package/dist/lib/services/create-image-service.d.ts.map +1 -1
  31. package/dist/lib/services/create-image-service.js +31 -19
  32. package/dist/lib/services/image-service.js +39 -32
  33. package/dist/services/arcgis/arcgis-image-service.d.ts +2 -2
  34. package/dist/services/arcgis/arcgis-image-service.d.ts.map +1 -1
  35. package/dist/services/arcgis/arcgis-image-service.js +91 -55
  36. package/dist/services/arcgis/arcgis-server.js +35 -28
  37. package/dist/services/create-image-source.d.ts +3 -3
  38. package/dist/services/create-image-source.d.ts.map +1 -1
  39. package/dist/services/create-image-source.js +11 -2
  40. package/dist/services/ogc/csw-service.d.ts +3 -3
  41. package/dist/services/ogc/csw-service.d.ts.map +1 -1
  42. package/dist/services/ogc/csw-service.js +156 -142
  43. package/dist/services/ogc/wms-service.d.ts +4 -4
  44. package/dist/services/ogc/wms-service.d.ts.map +1 -1
  45. package/dist/services/ogc/wms-service.js +295 -242
  46. package/dist/wip/data-source.js +58 -1
  47. package/dist/wip/lib/wcs/parse-wcs-capabilities.js +8 -11
  48. package/dist/wip/lib/wfs/parse-wfs-capabilities.js +12 -12
  49. package/dist/wip/lib/wfs/parse-wfs.js +20 -20
  50. package/dist/wip/lib/wmts/parse-wmts-capabilities.js +70 -12
  51. package/dist/wip/lib/wmts/parse-wmts.js +23 -20
  52. package/dist/wip/services/arcgis-feature-service.js +22 -22
  53. package/dist/wip/wcs-capabilities-loader.d.ts +1 -1
  54. package/dist/wip/wcs-capabilities-loader.d.ts.map +1 -1
  55. package/dist/wip/wcs-capabilities-loader.js +21 -15
  56. package/dist/wip/wfs-capabilities-loader.d.ts +1 -1
  57. package/dist/wip/wfs-capabilities-loader.d.ts.map +1 -1
  58. package/dist/wip/wfs-capabilities-loader.js +21 -15
  59. package/dist/wip/wms-feature-info-loader.d.ts +1 -1
  60. package/dist/wip/wms-feature-info-loader.d.ts.map +1 -1
  61. package/dist/wip/wms-feature-info-loader.js +10 -6
  62. package/dist/wip/wms-layer-description-loader.d.ts +1 -1
  63. package/dist/wip/wms-layer-description-loader.d.ts.map +1 -1
  64. package/dist/wip/wms-layer-description-loader.js +9 -6
  65. package/dist/wip/wmts-capabilities-loader.js +22 -15
  66. package/dist/wms-capabilities-loader.d.ts +2 -2
  67. package/dist/wms-capabilities-loader.d.ts.map +1 -1
  68. package/dist/wms-capabilities-loader.js +27 -15
  69. package/dist/wms-error-loader.js +33 -28
  70. package/package.json +10 -8
  71. package/dist/csw-capabilities-loader.js.map +0 -1
  72. package/dist/csw-domain-loader.js.map +0 -1
  73. package/dist/csw-records-loader.js.map +0 -1
  74. package/dist/gml-loader.js.map +0 -1
  75. package/dist/index.js.map +0 -1
  76. package/dist/lib/parsers/csw/parse-csw-capabilities.js.map +0 -1
  77. package/dist/lib/parsers/csw/parse-csw-domain.js.map +0 -1
  78. package/dist/lib/parsers/csw/parse-csw-records.js.map +0 -1
  79. package/dist/lib/parsers/csw/parse-exception-report.js.map +0 -1
  80. package/dist/lib/parsers/gml/deep-strict-equal.js.map +0 -1
  81. package/dist/lib/parsers/gml/parse-gml.js.map +0 -1
  82. package/dist/lib/parsers/wms/parse-wms-capabilities.js.map +0 -1
  83. package/dist/lib/parsers/wms/parse-wms-error.js.map +0 -1
  84. package/dist/lib/parsers/wms/parse-wms-features.js.map +0 -1
  85. package/dist/lib/parsers/wms/parse-wms-layer-description.js.map +0 -1
  86. package/dist/lib/parsers/xml/parse-xml-helpers.js.map +0 -1
  87. package/dist/lib/services/create-image-service.js.map +0 -1
  88. package/dist/lib/services/image-service.js.map +0 -1
  89. package/dist/services/arcgis/arcgis-image-service.js.map +0 -1
  90. package/dist/services/arcgis/arcgis-server.js.map +0 -1
  91. package/dist/services/create-image-source.js.map +0 -1
  92. package/dist/services/ogc/csw-service.js.map +0 -1
  93. package/dist/services/ogc/wms-service.js.map +0 -1
  94. package/dist/wip/data-source.js.map +0 -1
  95. package/dist/wip/lib/wcs/parse-wcs-capabilities.js.map +0 -1
  96. package/dist/wip/lib/wfs/parse-wfs-capabilities.js.map +0 -1
  97. package/dist/wip/lib/wfs/parse-wfs.js.map +0 -1
  98. package/dist/wip/lib/wmts/parse-wmts-capabilities.js.map +0 -1
  99. package/dist/wip/lib/wmts/parse-wmts.js.map +0 -1
  100. package/dist/wip/services/arcgis-feature-service.js.map +0 -1
  101. package/dist/wip/services/wmts-service.ts.disabled +0 -348
  102. package/dist/wip/wcs-capabilities-loader.js.map +0 -1
  103. package/dist/wip/wfs-capabilities-loader.js.map +0 -1
  104. package/dist/wip/wms-feature-info-loader.js.map +0 -1
  105. package/dist/wip/wms-layer-description-loader.js.map +0 -1
  106. package/dist/wip/wms-layer-description-loader.md.disabled.md +0 -47
  107. package/dist/wip/wmts-capabilities-loader.js.map +0 -1
  108. package/dist/wms-capabilities-loader.js.map +0 -1
  109. package/dist/wms-error-loader.js.map +0 -1
@@ -1,27 +1,39 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ /**
5
+ * Creates an image source
6
+ * If type is not supplied, will try to automatically detect the the
7
+ * @param url URL to the image source
8
+ * @param type type of source. if not known, set to 'auto'
9
+ * @returns an ImageSource instance
10
+ */
1
11
  export function createImageService(props, services) {
2
- const {
3
- type = 'auto'
4
- } = props;
5
- const service = type === 'auto' ? guessServiceType(props.url, services) : getServiceOfType(type, services);
6
- if (!service) {
7
- throw new Error('Not a valid image source type');
8
- }
9
- return service.create(props);
12
+ const { type = 'auto' } = props;
13
+ const service = type === 'auto' ? guessServiceType(props.url, services) : getServiceOfType(type, services);
14
+ if (!service) {
15
+ throw new Error('Not a valid image source type');
16
+ }
17
+ return service.create(props);
10
18
  }
19
+ /** Guess service type from URL */
11
20
  function getServiceOfType(type, services) {
12
- for (const service of services) {
13
- if (service.type === type) {
14
- return service;
21
+ // if (type === 'template') {
22
+ // return ImageService;
23
+ // }
24
+ for (const service of services) {
25
+ if (service.type === type) {
26
+ return service;
27
+ }
15
28
  }
16
- }
17
- return null;
29
+ return null;
18
30
  }
31
+ /** Guess service type from URL */
19
32
  function guessServiceType(url, services) {
20
- for (const service of services) {
21
- if (service.testURL && service.testURL(url)) {
22
- return service;
33
+ for (const service of services) {
34
+ if (service.testURL && service.testURL(url)) {
35
+ return service;
36
+ }
23
37
  }
24
- }
25
- return null;
38
+ return null;
26
39
  }
27
- //# sourceMappingURL=create-image-service.js.map
@@ -1,38 +1,45 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
1
4
  import { ImageLoader } from '@loaders.gl/images';
2
5
  import { ImageSource } from '@loaders.gl/loader-utils';
6
+ /**
7
+ * Quickly connect to "ad hoc" image sources without subclassing ImageSource.
8
+ * ImageSource allows template url strings to be used to ad hoc connect to arbitrary image data sources
9
+ * Accepts a template url string and builds requests URLs
10
+ */
3
11
  export class ImageService extends ImageSource {
4
- constructor(props) {
5
- super(props);
6
- }
7
- async getMetadata() {
8
- throw new Error('ImageSource.getMetadata not implemented');
9
- }
10
- async getImage(parameters) {
11
- const granularParameters = this.getGranularParameters(parameters);
12
- const url = this.getURLFromTemplate(granularParameters);
13
- const response = await this.fetch(url);
14
- const arrayBuffer = await response.arrayBuffer();
15
- return await ImageLoader.parse(arrayBuffer);
16
- }
17
- getGranularParameters(parameters) {
18
- const [[east, north], [west, south]] = parameters.boundingBox;
19
- return {
20
- ...parameters,
21
- east,
22
- north,
23
- south,
24
- west
25
- };
26
- }
27
- getURLFromTemplate(parameters) {
28
- let url = this.props.url;
29
- for (const [key, value] of Object.entries(parameters)) {
30
- url = url.replace(`\${${key}}`, String(value));
31
- url = url.replace(`{${key}}`, String(value));
12
+ constructor(props) {
13
+ super(props);
14
+ }
15
+ // IMAGE SOURCE API
16
+ async getMetadata() {
17
+ throw new Error('ImageSource.getMetadata not implemented');
18
+ }
19
+ async getImage(parameters) {
20
+ const granularParameters = this.getGranularParameters(parameters);
21
+ const url = this.getURLFromTemplate(granularParameters);
22
+ const response = await this.fetch(url);
23
+ const arrayBuffer = await response.arrayBuffer();
24
+ return await ImageLoader.parse(arrayBuffer);
25
+ }
26
+ // HELPERS
27
+ /** Break up bounding box in east, north, south, west */
28
+ getGranularParameters(parameters) {
29
+ const [[east, north], [west, south]] = parameters.boundingBox;
30
+ return { ...parameters, east, north, south, west };
31
+ }
32
+ /** Supports both ${} and {} notations */
33
+ getURLFromTemplate(parameters) {
34
+ let url = this.props.url;
35
+ for (const [key, value] of Object.entries(parameters)) {
36
+ // TODO - parameter could be repeated
37
+ // const regex = new RegExp(`\${${key}}`, 'g');
38
+ url = url.replace(`\${${key}}`, String(value));
39
+ url = url.replace(`{${key}}`, String(value));
40
+ }
41
+ return url;
32
42
  }
33
- return url;
34
- }
35
43
  }
36
44
  ImageService.type = 'template';
37
- ImageService.testURL = url => url.toLowerCase().includes('{');
38
- //# sourceMappingURL=image-service.js.map
45
+ ImageService.testURL = (url) => url.toLowerCase().includes('{');
@@ -1,7 +1,7 @@
1
1
  import { ImageType } from '@loaders.gl/images';
2
2
  import type { Service, ImageSourceMetadata, GetImageParameters } from '@loaders.gl/loader-utils';
3
- import type { ImageServiceProps } from '../../lib/services/image-service';
4
- import { ImageService } from '../../lib/services/image-service';
3
+ import type { ImageServiceProps } from "../../lib/services/image-service.js";
4
+ import { ImageService } from "../../lib/services/image-service.js";
5
5
  export type ArcGISImageServerProps = ImageServiceProps & {
6
6
  url: string;
7
7
  };
@@ -1 +1 @@
1
- {"version":3,"file":"arcgis-image-service.d.ts","sourceRoot":"","sources":["../../../src/services/arcgis/arcgis-image-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arcgis-image-service.d.ts","sourceRoot":"","sources":["../../../src/services/arcgis/arcgis-image-service.ts"],"names":[],"mappings":"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"}
@@ -1,60 +1,96 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
1
4
  import { ImageService } from "../../lib/services/image-service.js";
5
+ /**
6
+ * ArcGIS ImageServer
7
+ * Note - exports a big API, that could be exposed here if there is a use case
8
+ * @see https://developers.arcgis.com/rest/services-reference/enterprise/image-service.htm
9
+ */
2
10
  export class ArcGISImageSource extends ImageService {
3
- constructor(props) {
4
- super(props);
5
- this.data = void 0;
6
- this.data = props.url;
7
- }
8
- async getMetadata() {
9
- return await this.metadata();
10
- }
11
- async getImage(parameters) {
12
- throw new Error('not implemented');
13
- }
14
- async metadata() {
15
- throw new Error('not implemented');
16
- }
17
- exportImage(options) {
18
- throw new Error('not implemented');
19
- }
20
- metadataURL(options) {
21
- return `${this.props.url}?f=pjson`;
22
- }
23
- exportImageURL(options) {
24
- const bbox = `bbox=${options.bbox[0]},${options.bbox[1]},${options.bbox[2]},${options.bbox[3]}`;
25
- const size = `size=${options.width},${options.height}`;
26
- const arcgisOptions = {
27
- ...options,
28
- bbox,
29
- size
30
- };
31
- delete arcgisOptions.width;
32
- delete arcgisOptions.height;
33
- return this.getUrl('exportImage', arcgisOptions);
34
- }
35
- getUrl(path, options, extra) {
36
- let url = `${this.props.url}/${path}`;
37
- let first = true;
38
- for (const [key, value] of Object.entries(options)) {
39
- url += first ? '?' : '&';
40
- first = false;
41
- if (Array.isArray(value)) {
42
- url += `${key.toUpperCase()}=${value.join(',')}`;
43
- } else {
44
- url += `${key.toUpperCase()}=${value ? String(value) : ''}`;
45
- }
46
- }
47
- return url;
48
- }
49
- async checkResponse(response) {
50
- if (!response.ok) {
51
- throw new Error('error');
52
- }
53
- }
11
+ constructor(props) {
12
+ super(props);
13
+ this.data = props.url;
14
+ }
15
+ // ImageSource (normalized endpoints)
16
+ async getMetadata() {
17
+ return (await this.metadata());
18
+ // TODO - normalize metadata
19
+ }
20
+ async getImage(parameters) {
21
+ throw new Error('not implemented');
22
+ // TODO - Map generic parameters to ArcGIS specific parameters
23
+ // return await this.exportImage(parameters);
24
+ }
25
+ // ImageServer endpoints
26
+ async metadata() {
27
+ // We just need a JSON parsing...
28
+ // return this.getUrl({path: '', ...options});
29
+ throw new Error('not implemented');
30
+ }
31
+ /**
32
+ * Form a URL to an ESRI ImageServer
33
+ // 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`,
34
+ */
35
+ exportImage(options) {
36
+ // See WMSService.getMap()
37
+ throw new Error('not implemented');
38
+ }
39
+ // URL creators
40
+ metadataURL(options) {
41
+ return `${this.props.url}?f=pjson`;
42
+ }
43
+ /**
44
+ * Form a URL to an ESRI ImageServer
45
+ // https://sampleserver6.arcgisonline.com/arcgis/rest/services/NLCDLandCover2001/ImageServer/exportImage?
46
+ // bbox=${bounds[0]},${bounds[1]},${bounds[2]},${bounds[3]}&bboxSR=4326&
47
+ // size=${width},${height}&imageSR=102100&time=&format=jpgpng&pixelType=U8&
48
+ // noData=&noDataInterpretation=esriNoDataMatchAny&interpolation=+RSP_NearestNeighbor&compression=&
49
+ // compressionQuality=&bandIds=&mosaicRule=&renderingRule=&
50
+ // f=image
51
+ */
52
+ exportImageURL(options) {
53
+ const bbox = `bbox=${options.bbox[0]},${options.bbox[1]},${options.bbox[2]},${options.bbox[3]}`;
54
+ const size = `size=${options.width},${options.height}`;
55
+ const arcgisOptions = { ...options, bbox, size };
56
+ // @ts-expect-error
57
+ delete arcgisOptions.width;
58
+ // @ts-expect-error
59
+ delete arcgisOptions.height;
60
+ return this.getUrl('exportImage', arcgisOptions);
61
+ }
62
+ // INTERNAL METHODS
63
+ /**
64
+ * @note protected, since perhaps getWMSUrl may need to be overridden to handle certain backends?
65
+ * @note if override is common, maybe add a callback prop?
66
+ * */
67
+ getUrl(path, options, extra) {
68
+ let url = `${this.props.url}/${path}`;
69
+ let first = true;
70
+ for (const [key, value] of Object.entries(options)) {
71
+ url += first ? '?' : '&';
72
+ first = false;
73
+ if (Array.isArray(value)) {
74
+ url += `${key.toUpperCase()}=${value.join(',')}`;
75
+ }
76
+ else {
77
+ url += `${key.toUpperCase()}=${value ? String(value) : ''}`;
78
+ }
79
+ }
80
+ return url;
81
+ }
82
+ /** Checks for and parses a WMS XML formatted ServiceError and throws an exception */
83
+ async checkResponse(response) {
84
+ if (!response.ok) {
85
+ // } || response.headers['content-type'] === WMSErrorLoader.mimeTypes[0]) {
86
+ // const arrayBuffer = await response.arrayBuffer();
87
+ // const error = await WMSErrorLoader.parse(arrayBuffer, this.loadOptions);
88
+ throw new Error('error');
89
+ }
90
+ }
54
91
  }
55
92
  export const ArcGISImageService = {
56
- type: 'arcgis-image-server',
57
- testURL: url => url.toLowerCase().includes('ImageServer'),
58
- create: props => new ArcGISImageSource(props)
93
+ type: 'arcgis-image-server',
94
+ testURL: (url) => url.toLowerCase().includes('ImageServer'),
95
+ create: (props) => new ArcGISImageSource(props)
59
96
  };
60
- //# sourceMappingURL=arcgis-image-service.js.map
@@ -1,33 +1,40 @@
1
- export async function getArcGISServices(url) {
2
- let fetchFile = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : fetch;
3
- if (url.includes('rest/services')) {
4
- const serverUrl = url.replace(/rest\/services.*$/i, 'rest/services');
5
- return loadServiceDirectory(serverUrl, fetchFile, []);
6
- }
7
- return null;
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ /**
5
+ * (Recursively) load the service directory from an ArcGIS Server URL
6
+ * @param url
7
+ * @param fetchFile= Optional fetch function override
8
+ * @returns
9
+ */
10
+ export async function getArcGISServices(url, fetchFile = fetch) {
11
+ if (url.includes('rest/services')) {
12
+ const serverUrl = url.replace(/rest\/services.*$/i, 'rest/services');
13
+ return loadServiceDirectory(serverUrl, fetchFile, []);
14
+ }
15
+ return null;
8
16
  }
9
17
  async function loadServiceDirectory(serverUrl, fetch, path) {
10
- const serviceUrl = `${serverUrl}/${path.join('/')}`;
11
- const response = await fetch(`${serviceUrl}?f=pjson`);
12
- const directory = await response.json();
13
- const services = extractServices(directory, serviceUrl);
14
- const folders = directory.folders || [];
15
- const promises = folders.map(folder => loadServiceDirectory(`${serverUrl}`, fetch, [...path, folder]));
16
- for (const folderServices of await Promise.all(promises)) {
17
- services.push(...folderServices);
18
- }
19
- return services;
18
+ const serviceUrl = `${serverUrl}/${path.join('/')}`;
19
+ const response = await fetch(`${serviceUrl}?f=pjson`);
20
+ const directory = await response.json();
21
+ const services = extractServices(directory, serviceUrl);
22
+ const folders = (directory.folders || []);
23
+ const promises = folders.map((folder) => loadServiceDirectory(`${serverUrl}`, fetch, [...path, folder]));
24
+ for (const folderServices of await Promise.all(promises)) {
25
+ services.push(...folderServices);
26
+ }
27
+ return services;
20
28
  }
21
29
  function extractServices(directory, url) {
22
- const arcgisServices = directory.services || [];
23
- const services = [];
24
- for (const service of arcgisServices) {
25
- services.push({
26
- name: service.name,
27
- type: `arcgis-${service.type.toLocaleLowerCase().replace('server', '-server')}`,
28
- url: `${url}${service.name}/${service.type}`
29
- });
30
- }
31
- return services;
30
+ const arcgisServices = (directory.services || []);
31
+ const services = [];
32
+ for (const service of arcgisServices) {
33
+ services.push({
34
+ name: service.name,
35
+ type: `arcgis-${service.type.toLocaleLowerCase().replace('server', '-server')}`,
36
+ url: `${url}${service.name}/${service.type}`
37
+ });
38
+ }
39
+ return services;
32
40
  }
33
- //# sourceMappingURL=arcgis-server.js.map
@@ -1,7 +1,7 @@
1
1
  import type { ImageSource } from '@loaders.gl/loader-utils';
2
- import { ImageServiceProps } from '../lib/services/image-service';
3
- import { CreateImageServiceProps } from '../lib/services/create-image-service';
4
- import type { WMSSourceProps } from './ogc/wms-service';
2
+ import { ImageServiceProps } from "../lib/services/image-service.js";
3
+ import { CreateImageServiceProps } from "../lib/services/create-image-service.js";
4
+ import type { WMSSourceProps } from "./ogc/wms-service.js";
5
5
  export type ImageServiceType = 'wms' | 'arcgis-image-server' | 'template';
6
6
  type CreateImageSourceProps = CreateImageServiceProps & ImageServiceProps & WMSSourceProps & {
7
7
  type?: ImageServiceType | 'auto';
@@ -1 +1 @@
1
- {"version":3,"file":"create-image-source.d.ts","sourceRoot":"","sources":["../../src/services/create-image-source.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAU,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAqB,uBAAuB,EAAC,MAAM,sCAAsC,CAAC;AAEjG,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AAItD,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,qBAAqB,GAAG,UAAU,CAAC;AAI1E,KAAK,sBAAsB,GAAG,uBAAuB,GACnD,iBAAiB,GACjB,cAAc,GAAG;IACf,IAAI,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC;CAClC,CAAC;AAEJ;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,WAAW,CAE5E"}
1
+ {"version":3,"file":"create-image-source.d.ts","sourceRoot":"","sources":["../../src/services/create-image-source.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAU,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAAC,iBAAiB,EAAC,yCAAsC;AAChE,OAAO,EAAqB,uBAAuB,EAAC,gDAA6C;AAEjG,OAAO,KAAK,EAAC,cAAc,EAAC,6BAA0B;AAItD,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,qBAAqB,GAAG,UAAU,CAAC;AAI1E,KAAK,sBAAsB,GAAG,uBAAuB,GACnD,iBAAiB,GACjB,cAAc,GAAG;IACf,IAAI,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC;CAClC,CAAC;AAEJ;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,WAAW,CAE5E"}
@@ -1,8 +1,17 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
1
4
  import { createImageService } from "../lib/services/create-image-service.js";
2
5
  import { WMSService } from "./ogc/wms-service.js";
3
6
  import { ArcGISImageService } from "./arcgis/arcgis-image-service.js";
4
7
  const SERVICES = [WMSService, ArcGISImageService];
8
+ /**
9
+ * Creates an image source
10
+ * If type is not supplied, will try to automatically detect the the
11
+ * @param url URL to the image source
12
+ * @param type type of source. if not known, set to 'auto'
13
+ * @returns an ImageSource instance
14
+ */
5
15
  export function createImageSource(props) {
6
- return createImageService(props, SERVICES);
16
+ return createImageService(props, SERVICES);
7
17
  }
8
- //# sourceMappingURL=create-image-source.js.map
@@ -1,8 +1,8 @@
1
1
  import type { DataSourceProps } from '@loaders.gl/loader-utils';
2
2
  import { DataSource } from '@loaders.gl/loader-utils';
3
- import type { CSWCapabilities } from '../../csw-capabilities-loader';
4
- import type { CSWRecords } from '../../csw-records-loader';
5
- import type { CSWDomain } from '../../csw-domain-loader';
3
+ import type { CSWCapabilities } from "../../csw-capabilities-loader.js";
4
+ import type { CSWRecords } from "../../csw-records-loader.js";
5
+ import type { CSWDomain } from "../../csw-domain-loader.js";
6
6
  type CSWCommonParameters = {
7
7
  /** In case the endpoint supports multiple services */
8
8
  service?: 'CSW';
@@ -1 +1 @@
1
- {"version":3,"file":"csw-service.d.ts","sourceRoot":"","sources":["../../../src/services/ogc/csw-service.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AAEpD,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAC;AAGnE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AAGzD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAKvD,KAAK,mBAAmB,GAAG;IACzB,sDAAsD;IACtD,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,mBAAmB,GAAG;IAC/D,mBAAmB;IACnB,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,mBAAmB,GAAG;IAC1D,mBAAmB;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,sBAAsB;IACtB,SAAS,EAAE,YAAY,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,mBAAmB,GAAG;IACzD,mBAAmB;IACnB,OAAO,CAAC,EAAE,WAAW,CAAC;CAEvB,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,OAAO,GAAG;IACpB,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,eAAe,GAAG;IAC9C,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,UAAW,SAAQ,UAAU,CAAC,eAAe,CAAC;IACzD,MAAM,CAAC,QAAQ,CAAC,IAAI,SAAS;IAC7B,MAAM,CAAC,OAAO,QAAS,MAAM,KAAG,OAAO,CAAsC;IAE7E,YAAY,EAAE,eAAe,GAAG,IAAI,CAAQ;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IAEZ,uDAAuD;IACvD,QAAQ,CAAC,OAAO,oQAA2C;IAE3D,0BAA0B;gBACd,KAAK,EAAE,eAAe;IAM5B,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC;IAK7C,iBAAiB,CAAC,YAAY,EAAE,eAAe,GAAG,eAAe;IAI3D,mBAAmB,CAAC,OAAO,CAAC,EAAE;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAoCnF,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC;IAUxD,uBAAuB;IACjB,eAAe,CACnB,aAAa,CAAC,EAAE,4BAA4B,EAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACzC,OAAO,CAAC,eAAe,CAAC;IAS3B,kBAAkB;IACZ,UAAU,CACd,aAAa,CAAC,EAAE,uBAAuB,EACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACzC,OAAO,CAAC,UAAU,CAAC;IAQtB,iBAAiB;IACX,SAAS,CACb,aAAa,CAAC,EAAE,sBAAsB,EACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACzC,OAAO,CAAC,SAAS,CAAC;IAWrB,qDAAqD;IACrD,kBAAkB,CAChB,aAAa,CAAC,EAAE,4BAA4B,EAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACzC,MAAM;IAWT,qDAAqD;IACrD,aAAa,CACX,aAAa,CAAC,EAAE,uBAAuB,EACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACzC,MAAM;IAYT,qDAAqD;IACrD,YAAY,CACV,aAAa,CAAC,EAAE,sBAAsB,EACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACzC,MAAM;IAaT;;SAEK;IACL,SAAS,CAAC,UAAU,CAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACzC,MAAM;IAeT,qFAAqF;IACrF,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI;IAQ5E,+BAA+B;IAC/B,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,GAAG,KAAK;CAIvD"}
1
+ {"version":3,"file":"csw-service.d.ts","sourceRoot":"","sources":["../../../src/services/ogc/csw-service.ts"],"names":[],"mappings":"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"}