@loaders.gl/wms 3.4.0-alpha.2 → 3.4.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dist.min.js +359 -174
- package/dist/es5/csw-capabilities-loader.js +7 -11
- package/dist/es5/csw-capabilities-loader.js.map +1 -1
- package/dist/es5/csw-domain-loader.js +7 -10
- package/dist/es5/csw-domain-loader.js.map +1 -1
- package/dist/es5/csw-records-loader.js +7 -10
- package/dist/es5/csw-records-loader.js.map +1 -1
- package/dist/es5/gml-loader.js +7 -10
- package/dist/es5/gml-loader.js.map +1 -1
- package/dist/es5/index.js +0 -7
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lerc-loader.js +17 -22
- package/dist/es5/lerc-loader.js.map +1 -1
- package/dist/es5/lib/create-image-source.js +1 -2
- package/dist/es5/lib/create-image-source.js.map +1 -1
- package/dist/es5/lib/parsers/csw/parse-csw-capabilities.js.map +1 -1
- package/dist/es5/lib/parsers/csw/parse-csw-domain.js +1 -1
- package/dist/es5/lib/parsers/csw/parse-csw-domain.js.map +1 -1
- package/dist/es5/lib/parsers/csw/parse-csw-records.js +1 -2
- package/dist/es5/lib/parsers/csw/parse-csw-records.js.map +1 -1
- package/dist/es5/lib/parsers/csw/parse-exception-report.js +0 -2
- package/dist/es5/lib/parsers/csw/parse-exception-report.js.map +1 -1
- package/dist/es5/lib/parsers/gml/deep-strict-equal.js +0 -8
- package/dist/es5/lib/parsers/gml/deep-strict-equal.js.map +1 -1
- package/dist/es5/lib/parsers/gml/parse-gml.js +1 -13
- package/dist/es5/lib/parsers/gml/parse-gml.js.map +1 -1
- package/dist/es5/lib/parsers/wms/parse-wms-capabilities.js +197 -54
- package/dist/es5/lib/parsers/wms/parse-wms-capabilities.js.map +1 -1
- package/dist/es5/lib/parsers/wms/parse-wms-error.js +0 -1
- package/dist/es5/lib/parsers/wms/parse-wms-error.js.map +1 -1
- package/dist/es5/lib/parsers/wms/parse-wms-features.js +0 -1
- package/dist/es5/lib/parsers/wms/parse-wms-features.js.map +1 -1
- package/dist/es5/lib/parsers/wms/parse-wms-layer-description.js +0 -1
- package/dist/es5/lib/parsers/wms/parse-wms-layer-description.js.map +1 -1
- package/dist/es5/lib/parsers/xml/parse-xml-helpers.js +67 -0
- package/dist/es5/lib/parsers/xml/parse-xml-helpers.js.map +1 -0
- package/dist/es5/lib/services/arcgis/arcgis-image-service.js +35 -54
- package/dist/es5/lib/services/arcgis/arcgis-image-service.js.map +1 -1
- package/dist/es5/lib/services/arcgis/arcgis-server.js +50 -54
- package/dist/es5/lib/services/arcgis/arcgis-server.js.map +1 -1
- package/dist/es5/lib/services/generic/image-service.js +27 -36
- package/dist/es5/lib/services/generic/image-service.js.map +1 -1
- package/dist/es5/lib/services/ogc/csw-service.js +161 -186
- package/dist/es5/lib/services/ogc/csw-service.js.map +1 -1
- package/dist/es5/lib/services/ogc/wms-service.js +283 -245
- package/dist/es5/lib/services/ogc/wms-service.js.map +1 -1
- package/dist/es5/lib/sources/data-source.js +1 -6
- package/dist/es5/lib/sources/data-source.js.map +1 -1
- package/dist/es5/lib/sources/image-source.js.map +1 -1
- package/dist/es5/lib/sources/tile-source.js.map +1 -1
- package/dist/es5/lib/sources/utils/utils.js +0 -4
- package/dist/es5/lib/sources/utils/utils.js.map +1 -1
- package/dist/es5/wip/arcgis-feature-service.js +2 -7
- package/dist/es5/wip/arcgis-feature-service.js.map +1 -1
- package/dist/es5/wip/data-source.js +0 -2
- package/dist/es5/wip/lib/wcs/parse-wcs-capabilities.js.map +1 -1
- package/dist/es5/wip/lib/wfs/parse-wfs-capabilities.js.map +1 -1
- package/dist/es5/wip/lib/wmts/parse-wmts-capabilities.js.map +1 -1
- package/dist/es5/wip/wcs-capabilities-loader.js +7 -10
- package/dist/es5/wip/wcs-capabilities-loader.js.map +1 -1
- package/dist/es5/wip/wfs-capabilities-loader.js +7 -10
- package/dist/es5/wip/wfs-capabilities-loader.js.map +1 -1
- package/dist/es5/wip/wms-feature-info-loader.js +6 -8
- package/dist/es5/wip/wms-feature-info-loader.js.map +1 -1
- package/dist/es5/wip/wms-layer-description-loader.js +6 -8
- package/dist/es5/wip/wms-layer-description-loader.js.map +1 -1
- package/dist/es5/wip/wmts-capabilities-loader.js +7 -16
- package/dist/es5/wip/wmts-capabilities-loader.js.map +1 -1
- package/dist/es5/wms-capabilities-loader.js +8 -12
- package/dist/es5/wms-capabilities-loader.js.map +1 -1
- package/dist/es5/wms-error-loader.js +7 -9
- package/dist/es5/wms-error-loader.js.map +1 -1
- package/dist/esm/bundle.js +0 -2
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/csw-capabilities-loader.js +1 -5
- package/dist/esm/csw-capabilities-loader.js.map +1 -1
- package/dist/esm/csw-domain-loader.js +1 -4
- package/dist/esm/csw-domain-loader.js.map +1 -1
- package/dist/esm/csw-records-loader.js +1 -4
- package/dist/esm/csw-records-loader.js.map +1 -1
- package/dist/esm/gml-loader.js +1 -4
- package/dist/esm/gml-loader.js.map +1 -1
- package/dist/esm/index.js +0 -11
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lerc-loader.js +1 -4
- package/dist/esm/lerc-loader.js.map +1 -1
- package/dist/esm/lib/create-image-source.js +0 -3
- package/dist/esm/lib/create-image-source.js.map +1 -1
- package/dist/esm/lib/parsers/csw/parse-csw-capabilities.js +0 -3
- package/dist/esm/lib/parsers/csw/parse-csw-capabilities.js.map +1 -1
- package/dist/esm/lib/parsers/csw/parse-csw-domain.js +0 -3
- package/dist/esm/lib/parsers/csw/parse-csw-domain.js.map +1 -1
- package/dist/esm/lib/parsers/csw/parse-csw-records.js +0 -3
- package/dist/esm/lib/parsers/csw/parse-csw-records.js.map +1 -1
- package/dist/esm/lib/parsers/csw/parse-exception-report.js +0 -3
- package/dist/esm/lib/parsers/csw/parse-exception-report.js.map +1 -1
- package/dist/esm/lib/parsers/gml/deep-strict-equal.js +0 -9
- package/dist/esm/lib/parsers/gml/deep-strict-equal.js.map +1 -1
- package/dist/esm/lib/parsers/gml/parse-gml.js +0 -14
- package/dist/esm/lib/parsers/gml/parse-gml.js.map +1 -1
- package/dist/esm/lib/parsers/wms/parse-wms-capabilities.js +151 -42
- package/dist/esm/lib/parsers/wms/parse-wms-capabilities.js.map +1 -1
- package/dist/esm/lib/parsers/wms/parse-wms-error.js +0 -3
- package/dist/esm/lib/parsers/wms/parse-wms-error.js.map +1 -1
- package/dist/esm/lib/parsers/wms/parse-wms-features.js +0 -3
- package/dist/esm/lib/parsers/wms/parse-wms-features.js.map +1 -1
- package/dist/esm/lib/parsers/wms/parse-wms-layer-description.js +0 -3
- package/dist/esm/lib/parsers/wms/parse-wms-layer-description.js.map +1 -1
- package/dist/esm/lib/parsers/xml/parse-xml-helpers.js +53 -0
- package/dist/esm/lib/parsers/xml/parse-xml-helpers.js.map +1 -0
- package/dist/esm/lib/services/arcgis/arcgis-image-service.js +0 -9
- package/dist/esm/lib/services/arcgis/arcgis-image-service.js.map +1 -1
- package/dist/esm/lib/services/arcgis/arcgis-server.js +0 -2
- package/dist/esm/lib/services/arcgis/arcgis-server.js.map +1 -1
- package/dist/esm/lib/services/generic/image-service.js +0 -5
- package/dist/esm/lib/services/generic/image-service.js.map +1 -1
- package/dist/esm/lib/services/ogc/csw-service.js +0 -11
- package/dist/esm/lib/services/ogc/csw-service.js.map +1 -1
- package/dist/esm/lib/services/ogc/wms-service.js +96 -87
- package/dist/esm/lib/services/ogc/wms-service.js.map +1 -1
- package/dist/esm/lib/sources/data-source.js +0 -6
- package/dist/esm/lib/sources/data-source.js.map +1 -1
- package/dist/esm/lib/sources/image-source.js +0 -3
- package/dist/esm/lib/sources/image-source.js.map +1 -1
- package/dist/esm/lib/sources/tile-source.js +0 -3
- package/dist/esm/lib/sources/tile-source.js.map +1 -1
- package/dist/esm/lib/sources/utils/utils.js +0 -5
- package/dist/esm/lib/sources/utils/utils.js.map +1 -1
- package/dist/esm/wip/arcgis-feature-service.js +0 -3
- package/dist/esm/wip/arcgis-feature-service.js.map +1 -1
- package/dist/esm/wip/lib/wcs/parse-wcs-capabilities.js +0 -3
- package/dist/esm/wip/lib/wcs/parse-wcs-capabilities.js.map +1 -1
- package/dist/esm/wip/lib/wfs/parse-wfs-capabilities.js +0 -3
- package/dist/esm/wip/lib/wfs/parse-wfs-capabilities.js.map +1 -1
- package/dist/esm/wip/lib/wmts/parse-wmts-capabilities.js +0 -3
- package/dist/esm/wip/lib/wmts/parse-wmts-capabilities.js.map +1 -1
- package/dist/esm/wip/wcs-capabilities-loader.js +1 -4
- package/dist/esm/wip/wcs-capabilities-loader.js.map +1 -1
- package/dist/esm/wip/wfs-capabilities-loader.js +1 -4
- package/dist/esm/wip/wfs-capabilities-loader.js.map +1 -1
- package/dist/esm/wip/wms-feature-info-loader.js +0 -2
- package/dist/esm/wip/wms-feature-info-loader.js.map +1 -1
- package/dist/esm/wip/wms-layer-description-loader.js +0 -2
- package/dist/esm/wip/wms-layer-description-loader.js.map +1 -1
- package/dist/esm/wip/wmts-capabilities-loader.js +1 -6
- package/dist/esm/wip/wmts-capabilities-loader.js.map +1 -1
- package/dist/esm/wms-capabilities-loader.js +3 -7
- package/dist/esm/wms-capabilities-loader.js.map +1 -1
- package/dist/esm/wms-error-loader.js +1 -4
- package/dist/esm/wms-error-loader.js.map +1 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -5
- package/dist/lib/parsers/wms/parse-wms-capabilities.d.ts +78 -62
- package/dist/lib/parsers/wms/parse-wms-capabilities.d.ts.map +1 -1
- package/dist/lib/parsers/wms/parse-wms-capabilities.js +165 -1935
- package/dist/lib/parsers/xml/parse-xml-helpers.d.ts +11 -0
- package/dist/lib/parsers/xml/parse-xml-helpers.d.ts.map +1 -0
- package/dist/lib/parsers/xml/parse-xml-helpers.js +68 -0
- package/dist/lib/services/arcgis/arcgis-image-service.js +1 -1
- package/dist/lib/services/generic/image-service.js +1 -1
- package/dist/lib/services/ogc/csw-service.d.ts +1 -1
- package/dist/lib/services/ogc/csw-service.d.ts.map +1 -1
- package/dist/lib/services/ogc/csw-service.js +1 -1
- package/dist/lib/services/ogc/wms-service.d.ts +63 -58
- package/dist/lib/services/ogc/wms-service.d.ts.map +1 -1
- package/dist/lib/services/ogc/wms-service.js +106 -71
- package/dist/lib/sources/image-source.d.ts +3 -9
- package/dist/lib/sources/image-source.d.ts.map +1 -1
- package/dist/wip/wmts-capabilities-loader.d.ts +3 -4
- package/dist/wip/wmts-capabilities-loader.d.ts.map +1 -1
- package/dist/wip/wmts-capabilities-loader.js +1 -0
- package/dist/wms-capabilities-loader.d.ts +6 -1
- package/dist/wms-capabilities-loader.d.ts.map +1 -1
- package/dist/wms-capabilities-loader.js +2 -2
- package/package.json +6 -6
- package/src/index.ts +3 -4
- package/src/lib/parsers/wms/parse-wms-capabilities.ts +293 -2004
- package/src/lib/parsers/xml/parse-xml-helpers.ts +65 -0
- package/src/lib/services/ogc/csw-service.ts +1 -1
- package/src/lib/services/ogc/wms-service.ts +169 -109
- package/src/lib/sources/image-source.ts +3 -9
- package/src/wip/wmts-capabilities-loader.ts +2 -2
- package/src/wms-capabilities-loader.ts +9 -3
|
@@ -24,13 +24,12 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
24
24
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
25
25
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
26
26
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
27
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++)
|
|
27
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
28
28
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
29
29
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
30
30
|
var CSWService = function (_DataSource) {
|
|
31
31
|
(0, _inherits2.default)(CSWService, _DataSource);
|
|
32
32
|
var _super = _createSuper(CSWService);
|
|
33
|
-
|
|
34
33
|
function CSWService(props) {
|
|
35
34
|
var _this;
|
|
36
35
|
(0, _classCallCheck2.default)(this, CSWService);
|
|
@@ -47,18 +46,16 @@ var CSWService = function (_DataSource) {
|
|
|
47
46
|
var _getMetadata = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee() {
|
|
48
47
|
var capabilities;
|
|
49
48
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
50
|
-
while (1) {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
return _context.stop();
|
|
61
|
-
}
|
|
49
|
+
while (1) switch (_context.prev = _context.next) {
|
|
50
|
+
case 0:
|
|
51
|
+
_context.next = 2;
|
|
52
|
+
return this.getCapabilities();
|
|
53
|
+
case 2:
|
|
54
|
+
capabilities = _context.sent;
|
|
55
|
+
return _context.abrupt("return", this.normalizeMetadata(capabilities));
|
|
56
|
+
case 4:
|
|
57
|
+
case "end":
|
|
58
|
+
return _context.stop();
|
|
62
59
|
}
|
|
63
60
|
}, _callee, this);
|
|
64
61
|
}));
|
|
@@ -78,96 +75,94 @@ var CSWService = function (_DataSource) {
|
|
|
78
75
|
var _getServiceDirectory = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(options) {
|
|
79
76
|
var services, unknownServices, records, _iterator, _step, record, _iterator2, _step2, reference, url;
|
|
80
77
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
81
|
-
while (1) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
_context2.next = 38;
|
|
96
|
-
break;
|
|
97
|
-
}
|
|
98
|
-
record = _step.value;
|
|
99
|
-
_iterator2 = _createForOfIteratorHelper(record.references);
|
|
100
|
-
_context2.prev = 11;
|
|
101
|
-
_iterator2.s();
|
|
102
|
-
case 13:
|
|
103
|
-
if ((_step2 = _iterator2.n()).done) {
|
|
104
|
-
_context2.next = 28;
|
|
105
|
-
break;
|
|
106
|
-
}
|
|
107
|
-
reference = _step2.value;
|
|
108
|
-
url = reference.value;
|
|
109
|
-
_context2.t0 = reference.scheme;
|
|
110
|
-
_context2.next = _context2.t0 === 'OGC:WMS' ? 19 : _context2.t0 === 'OGC:WMTS' ? 21 : _context2.t0 === 'OGC:WFS' ? 23 : 25;
|
|
111
|
-
break;
|
|
112
|
-
case 19:
|
|
113
|
-
services.push(_objectSpread({
|
|
114
|
-
name: record.title,
|
|
115
|
-
type: 'ogc-wms-service'
|
|
116
|
-
}, this._parseOGCUrl(url)));
|
|
117
|
-
return _context2.abrupt("break", 26);
|
|
118
|
-
case 21:
|
|
119
|
-
services.push(_objectSpread({
|
|
120
|
-
name: record.title,
|
|
121
|
-
type: 'ogc-wmts-service'
|
|
122
|
-
}, this._parseOGCUrl(url)));
|
|
123
|
-
return _context2.abrupt("break", 26);
|
|
124
|
-
case 23:
|
|
125
|
-
services.push(_objectSpread({
|
|
126
|
-
name: record.title,
|
|
127
|
-
type: 'ogc-wfs-service'
|
|
128
|
-
}, this._parseOGCUrl(url)));
|
|
129
|
-
return _context2.abrupt("break", 26);
|
|
130
|
-
case 25:
|
|
131
|
-
unknownServices.push({
|
|
132
|
-
name: record.title,
|
|
133
|
-
type: 'unknown',
|
|
134
|
-
url: reference.value,
|
|
135
|
-
scheme: reference.scheme
|
|
136
|
-
});
|
|
137
|
-
case 26:
|
|
138
|
-
_context2.next = 13;
|
|
139
|
-
break;
|
|
140
|
-
case 28:
|
|
141
|
-
_context2.next = 33;
|
|
78
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
79
|
+
case 0:
|
|
80
|
+
services = [];
|
|
81
|
+
unknownServices = [];
|
|
82
|
+
_context2.next = 4;
|
|
83
|
+
return this.getRecords();
|
|
84
|
+
case 4:
|
|
85
|
+
records = _context2.sent;
|
|
86
|
+
_iterator = _createForOfIteratorHelper(records.records);
|
|
87
|
+
_context2.prev = 6;
|
|
88
|
+
_iterator.s();
|
|
89
|
+
case 8:
|
|
90
|
+
if ((_step = _iterator.n()).done) {
|
|
91
|
+
_context2.next = 38;
|
|
142
92
|
break;
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
case 36:
|
|
152
|
-
_context2.next = 8;
|
|
93
|
+
}
|
|
94
|
+
record = _step.value;
|
|
95
|
+
_iterator2 = _createForOfIteratorHelper(record.references);
|
|
96
|
+
_context2.prev = 11;
|
|
97
|
+
_iterator2.s();
|
|
98
|
+
case 13:
|
|
99
|
+
if ((_step2 = _iterator2.n()).done) {
|
|
100
|
+
_context2.next = 28;
|
|
153
101
|
break;
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
102
|
+
}
|
|
103
|
+
reference = _step2.value;
|
|
104
|
+
url = reference.value;
|
|
105
|
+
_context2.t0 = reference.scheme;
|
|
106
|
+
_context2.next = _context2.t0 === 'OGC:WMS' ? 19 : _context2.t0 === 'OGC:WMTS' ? 21 : _context2.t0 === 'OGC:WFS' ? 23 : 25;
|
|
107
|
+
break;
|
|
108
|
+
case 19:
|
|
109
|
+
services.push(_objectSpread({
|
|
110
|
+
name: record.title,
|
|
111
|
+
type: 'ogc-wms-service'
|
|
112
|
+
}, this._parseOGCUrl(url)));
|
|
113
|
+
return _context2.abrupt("break", 26);
|
|
114
|
+
case 21:
|
|
115
|
+
services.push(_objectSpread({
|
|
116
|
+
name: record.title,
|
|
117
|
+
type: 'ogc-wmts-service'
|
|
118
|
+
}, this._parseOGCUrl(url)));
|
|
119
|
+
return _context2.abrupt("break", 26);
|
|
120
|
+
case 23:
|
|
121
|
+
services.push(_objectSpread({
|
|
122
|
+
name: record.title,
|
|
123
|
+
type: 'ogc-wfs-service'
|
|
124
|
+
}, this._parseOGCUrl(url)));
|
|
125
|
+
return _context2.abrupt("break", 26);
|
|
126
|
+
case 25:
|
|
127
|
+
unknownServices.push({
|
|
128
|
+
name: record.title,
|
|
129
|
+
type: 'unknown',
|
|
130
|
+
url: reference.value,
|
|
131
|
+
scheme: reference.scheme
|
|
132
|
+
});
|
|
133
|
+
case 26:
|
|
134
|
+
_context2.next = 13;
|
|
135
|
+
break;
|
|
136
|
+
case 28:
|
|
137
|
+
_context2.next = 33;
|
|
138
|
+
break;
|
|
139
|
+
case 30:
|
|
140
|
+
_context2.prev = 30;
|
|
141
|
+
_context2.t1 = _context2["catch"](11);
|
|
142
|
+
_iterator2.e(_context2.t1);
|
|
143
|
+
case 33:
|
|
144
|
+
_context2.prev = 33;
|
|
145
|
+
_iterator2.f();
|
|
146
|
+
return _context2.finish(33);
|
|
147
|
+
case 36:
|
|
148
|
+
_context2.next = 8;
|
|
149
|
+
break;
|
|
150
|
+
case 38:
|
|
151
|
+
_context2.next = 43;
|
|
152
|
+
break;
|
|
153
|
+
case 40:
|
|
154
|
+
_context2.prev = 40;
|
|
155
|
+
_context2.t2 = _context2["catch"](6);
|
|
156
|
+
_iterator.e(_context2.t2);
|
|
157
|
+
case 43:
|
|
158
|
+
_context2.prev = 43;
|
|
159
|
+
_iterator.f();
|
|
160
|
+
return _context2.finish(43);
|
|
161
|
+
case 46:
|
|
162
|
+
return _context2.abrupt("return", options !== null && options !== void 0 && options.includeUnknown ? services.concat(unknownServices) : services);
|
|
163
|
+
case 47:
|
|
164
|
+
case "end":
|
|
165
|
+
return _context2.stop();
|
|
171
166
|
}
|
|
172
167
|
}, _callee2, this, [[6, 40, 43, 46], [11, 30, 33, 36]]);
|
|
173
168
|
}));
|
|
@@ -185,35 +180,32 @@ var CSWService = function (_DataSource) {
|
|
|
185
180
|
params: parts[1] || ''
|
|
186
181
|
};
|
|
187
182
|
}
|
|
188
|
-
|
|
189
183
|
}, {
|
|
190
184
|
key: "getCapabilities",
|
|
191
185
|
value: function () {
|
|
192
186
|
var _getCapabilities = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(wmsParameters, vendorParameters) {
|
|
193
187
|
var url, response, arrayBuffer, capabilities;
|
|
194
188
|
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
195
|
-
while (1) {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
return _context3.stop();
|
|
216
|
-
}
|
|
189
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
190
|
+
case 0:
|
|
191
|
+
url = this.getCapabilitiesURL(wmsParameters, vendorParameters);
|
|
192
|
+
_context3.next = 3;
|
|
193
|
+
return this.fetch(url);
|
|
194
|
+
case 3:
|
|
195
|
+
response = _context3.sent;
|
|
196
|
+
_context3.next = 6;
|
|
197
|
+
return response.arrayBuffer();
|
|
198
|
+
case 6:
|
|
199
|
+
arrayBuffer = _context3.sent;
|
|
200
|
+
this._checkResponse(response, arrayBuffer);
|
|
201
|
+
_context3.next = 10;
|
|
202
|
+
return _cswCapabilitiesLoader.CSWCapabilitiesLoader.parse(arrayBuffer, this.props.loadOptions);
|
|
203
|
+
case 10:
|
|
204
|
+
capabilities = _context3.sent;
|
|
205
|
+
return _context3.abrupt("return", capabilities);
|
|
206
|
+
case 12:
|
|
207
|
+
case "end":
|
|
208
|
+
return _context3.stop();
|
|
217
209
|
}
|
|
218
210
|
}, _callee3, this);
|
|
219
211
|
}));
|
|
@@ -228,27 +220,25 @@ var CSWService = function (_DataSource) {
|
|
|
228
220
|
var _getRecords = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(wmsParameters, vendorParameters) {
|
|
229
221
|
var url, response, arrayBuffer;
|
|
230
222
|
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
231
|
-
while (1) {
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
return _context4.stop();
|
|
251
|
-
}
|
|
223
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
224
|
+
case 0:
|
|
225
|
+
url = this.getRecordsURL(wmsParameters, vendorParameters);
|
|
226
|
+
_context4.next = 3;
|
|
227
|
+
return this.fetch(url);
|
|
228
|
+
case 3:
|
|
229
|
+
response = _context4.sent;
|
|
230
|
+
_context4.next = 6;
|
|
231
|
+
return response.arrayBuffer();
|
|
232
|
+
case 6:
|
|
233
|
+
arrayBuffer = _context4.sent;
|
|
234
|
+
this._checkResponse(response, arrayBuffer);
|
|
235
|
+
_context4.next = 10;
|
|
236
|
+
return _cswRecordsLoader.CSWRecordsLoader.parse(arrayBuffer, this.props.loadOptions);
|
|
237
|
+
case 10:
|
|
238
|
+
return _context4.abrupt("return", _context4.sent);
|
|
239
|
+
case 11:
|
|
240
|
+
case "end":
|
|
241
|
+
return _context4.stop();
|
|
252
242
|
}
|
|
253
243
|
}, _callee4, this);
|
|
254
244
|
}));
|
|
@@ -263,27 +253,25 @@ var CSWService = function (_DataSource) {
|
|
|
263
253
|
var _getDomain = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(wmsParameters, vendorParameters) {
|
|
264
254
|
var url, response, arrayBuffer;
|
|
265
255
|
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
266
|
-
while (1) {
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
return _context5.stop();
|
|
286
|
-
}
|
|
256
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
257
|
+
case 0:
|
|
258
|
+
url = this.getDomainURL(wmsParameters, vendorParameters);
|
|
259
|
+
_context5.next = 3;
|
|
260
|
+
return this.fetch(url);
|
|
261
|
+
case 3:
|
|
262
|
+
response = _context5.sent;
|
|
263
|
+
_context5.next = 6;
|
|
264
|
+
return response.arrayBuffer();
|
|
265
|
+
case 6:
|
|
266
|
+
arrayBuffer = _context5.sent;
|
|
267
|
+
this._checkResponse(response, arrayBuffer);
|
|
268
|
+
_context5.next = 10;
|
|
269
|
+
return _cswDomainLoader.CSWDomainLoader.parse(arrayBuffer, this.props.loadOptions);
|
|
270
|
+
case 10:
|
|
271
|
+
return _context5.abrupt("return", _context5.sent);
|
|
272
|
+
case 11:
|
|
273
|
+
case "end":
|
|
274
|
+
return _context5.stop();
|
|
287
275
|
}
|
|
288
276
|
}, _callee5, this);
|
|
289
277
|
}));
|
|
@@ -294,9 +282,7 @@ var CSWService = function (_DataSource) {
|
|
|
294
282
|
}()
|
|
295
283
|
}, {
|
|
296
284
|
key: "getCapabilitiesURL",
|
|
297
|
-
value:
|
|
298
|
-
|
|
299
|
-
function getCapabilitiesURL(wmsParameters, vendorParameters) {
|
|
285
|
+
value: function getCapabilitiesURL(wmsParameters, vendorParameters) {
|
|
300
286
|
var options = _objectSpread(_objectSpread(_objectSpread({
|
|
301
287
|
version: '3.0.0'
|
|
302
288
|
}, wmsParameters), vendorParameters), {}, {
|
|
@@ -305,11 +291,9 @@ var CSWService = function (_DataSource) {
|
|
|
305
291
|
});
|
|
306
292
|
return this._getCSWUrl(options, vendorParameters);
|
|
307
293
|
}
|
|
308
|
-
|
|
309
294
|
}, {
|
|
310
295
|
key: "getRecordsURL",
|
|
311
|
-
value:
|
|
312
|
-
function getRecordsURL(wmsParameters, vendorParameters) {
|
|
296
|
+
value: function getRecordsURL(wmsParameters, vendorParameters) {
|
|
313
297
|
var options = _objectSpread(_objectSpread(_objectSpread({
|
|
314
298
|
version: '3.0.0',
|
|
315
299
|
typenames: 'csw:Record'
|
|
@@ -319,11 +303,9 @@ var CSWService = function (_DataSource) {
|
|
|
319
303
|
});
|
|
320
304
|
return this._getCSWUrl(options, vendorParameters);
|
|
321
305
|
}
|
|
322
|
-
|
|
323
306
|
}, {
|
|
324
307
|
key: "getDomainURL",
|
|
325
|
-
value:
|
|
326
|
-
function getDomainURL(wmsParameters, vendorParameters) {
|
|
308
|
+
value: function getDomainURL(wmsParameters, vendorParameters) {
|
|
327
309
|
var options = _objectSpread(_objectSpread(_objectSpread({
|
|
328
310
|
version: '3.0.0'
|
|
329
311
|
}, wmsParameters), vendorParameters), {}, {
|
|
@@ -332,12 +314,9 @@ var CSWService = function (_DataSource) {
|
|
|
332
314
|
});
|
|
333
315
|
return this._getCSWUrl(options, vendorParameters);
|
|
334
316
|
}
|
|
335
|
-
|
|
336
317
|
}, {
|
|
337
318
|
key: "_getCSWUrl",
|
|
338
|
-
value:
|
|
339
|
-
|
|
340
|
-
function _getCSWUrl(options, vendorParameters) {
|
|
319
|
+
value: function _getCSWUrl(options, vendorParameters) {
|
|
341
320
|
var url = this.props.url;
|
|
342
321
|
var first = true;
|
|
343
322
|
for (var _i = 0, _Object$entries = Object.entries(options); _i < _Object$entries.length; _i++) {
|
|
@@ -354,22 +333,18 @@ var CSWService = function (_DataSource) {
|
|
|
354
333
|
}
|
|
355
334
|
return encodeURI(url);
|
|
356
335
|
}
|
|
357
|
-
|
|
358
336
|
}, {
|
|
359
337
|
key: "_checkResponse",
|
|
360
|
-
value:
|
|
361
|
-
function _checkResponse(response, arrayBuffer) {
|
|
338
|
+
value: function _checkResponse(response, arrayBuffer) {
|
|
362
339
|
var contentType = response.headers['content-type'];
|
|
363
340
|
if (!response.ok || _wmsErrorLoader.WMSErrorLoader.mimeTypes.includes(contentType)) {
|
|
364
341
|
var error = _wmsErrorLoader.WMSErrorLoader.parseSync(arrayBuffer, this.props.loadOptions);
|
|
365
342
|
throw new Error(error);
|
|
366
343
|
}
|
|
367
344
|
}
|
|
368
|
-
|
|
369
345
|
}, {
|
|
370
346
|
key: "_parseError",
|
|
371
|
-
value:
|
|
372
|
-
function _parseError(arrayBuffer) {
|
|
347
|
+
value: function _parseError(arrayBuffer) {
|
|
373
348
|
var error = _wmsErrorLoader.WMSErrorLoader.parseSync(arrayBuffer, this.props.loadOptions);
|
|
374
349
|
return new Error(error);
|
|
375
350
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csw-service.js","names":["CSWService","props","CSWErrorLoader","CSWCapabilitiesLoader","getCapabilities","capabilities","normalizeMetadata","options","services","unknownServices","getRecords","records","record","references","reference","url","value","scheme","push","name","title","type","_parseOGCUrl","includeUnknown","concat","parts","split","params","wmsParameters","vendorParameters","getCapabilitiesURL","fetch","response","arrayBuffer","_checkResponse","parse","loadOptions","getRecordsURL","CSWRecordsLoader","getDomainURL","CSWDomainLoader","version","service","request","_getCSWUrl","typenames","first","Object","entries","key","Array","isArray","toUpperCase","join","String","encodeURI","contentType","headers","ok","mimeTypes","includes","error","parseSync","Error","DataSource","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 {\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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"}
|