geoserver-node-client 0.0.7 → 1.0.0

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.
@@ -0,0 +1,597 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _nodeFetch = _interopRequireDefault(require("node-fetch"));
19
+
20
+ var _workspace = _interopRequireDefault(require("./workspace.js"));
21
+
22
+ var _geoserver = require("./util/geoserver.js");
23
+
24
+ var _about = _interopRequireDefault(require("./about.js"));
25
+
26
+ /**
27
+ * Client for GeoServer styles
28
+ *
29
+ * @module StyleClient
30
+ */
31
+ var StyleClient = /*#__PURE__*/function () {
32
+ /**
33
+ * Creates a GeoServer REST StyleClient instance.
34
+ *
35
+ * @param {String} url The URL of the GeoServer REST API endpoint
36
+ * @param {String} auth The Basic Authentication string
37
+ */
38
+ function StyleClient(url, auth) {
39
+ (0, _classCallCheck2["default"])(this, StyleClient);
40
+ this.url = url;
41
+ this.auth = auth;
42
+ }
43
+ /**
44
+ * Returns all default styles.
45
+ *
46
+ * @throws Error if request fails
47
+ *
48
+ * @returns {Object} An object with the default styles
49
+ */
50
+
51
+
52
+ (0, _createClass2["default"])(StyleClient, [{
53
+ key: "getDefaults",
54
+ value: function () {
55
+ var _getDefaults = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
56
+ var response, geoServerResponse;
57
+ return _regenerator["default"].wrap(function _callee$(_context) {
58
+ while (1) {
59
+ switch (_context.prev = _context.next) {
60
+ case 0:
61
+ _context.next = 2;
62
+ return (0, _nodeFetch["default"])(this.url + 'styles.json', {
63
+ credentials: 'include',
64
+ method: 'GET',
65
+ headers: {
66
+ Authorization: this.auth
67
+ }
68
+ });
69
+
70
+ case 2:
71
+ response = _context.sent;
72
+
73
+ if (response.ok) {
74
+ _context.next = 8;
75
+ break;
76
+ }
77
+
78
+ _context.next = 6;
79
+ return (0, _geoserver.getGeoServerResponseText)(response);
80
+
81
+ case 6:
82
+ geoServerResponse = _context.sent;
83
+ throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
84
+
85
+ case 8:
86
+ return _context.abrupt("return", response.json());
87
+
88
+ case 9:
89
+ case "end":
90
+ return _context.stop();
91
+ }
92
+ }
93
+ }, _callee, this);
94
+ }));
95
+
96
+ function getDefaults() {
97
+ return _getDefaults.apply(this, arguments);
98
+ }
99
+
100
+ return getDefaults;
101
+ }()
102
+ /**
103
+ * Returns all styles in a workspace.
104
+ *
105
+ * @param {String} workspace Workspace name to get styles for
106
+ *
107
+ * @throws Error if request fails
108
+ *
109
+ * @returns {Object} An object with all styles
110
+ */
111
+
112
+ }, {
113
+ key: "getInWorkspace",
114
+ value: function () {
115
+ var _getInWorkspace = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(workspace) {
116
+ var response, geoServerResponse;
117
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
118
+ while (1) {
119
+ switch (_context2.prev = _context2.next) {
120
+ case 0:
121
+ _context2.next = 2;
122
+ return (0, _nodeFetch["default"])(this.url + 'workspaces/' + workspace + '/styles.json', {
123
+ credentials: 'include',
124
+ method: 'GET',
125
+ headers: {
126
+ Authorization: this.auth
127
+ }
128
+ });
129
+
130
+ case 2:
131
+ response = _context2.sent;
132
+
133
+ if (response.ok) {
134
+ _context2.next = 8;
135
+ break;
136
+ }
137
+
138
+ _context2.next = 6;
139
+ return (0, _geoserver.getGeoServerResponseText)(response);
140
+
141
+ case 6:
142
+ geoServerResponse = _context2.sent;
143
+ throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
144
+
145
+ case 8:
146
+ return _context2.abrupt("return", response.json());
147
+
148
+ case 9:
149
+ case "end":
150
+ return _context2.stop();
151
+ }
152
+ }
153
+ }, _callee2, this);
154
+ }));
155
+
156
+ function getInWorkspace(_x) {
157
+ return _getInWorkspace.apply(this, arguments);
158
+ }
159
+
160
+ return getInWorkspace;
161
+ }()
162
+ /**
163
+ * Returns all styles defined in workspaces.
164
+ *
165
+ * @throws Error if request fails
166
+ *
167
+ * @returns {Object[]} An array with all style objects
168
+ */
169
+
170
+ }, {
171
+ key: "getAllWorkspaceStyles",
172
+ value: function () {
173
+ var _getAllWorkspaceStyles = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
174
+ var allStyles, ws, allWs, i, _ws, wsStyles;
175
+
176
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
177
+ while (1) {
178
+ switch (_context3.prev = _context3.next) {
179
+ case 0:
180
+ allStyles = [];
181
+ ws = new _workspace["default"](this.url, this.auth);
182
+ _context3.next = 4;
183
+ return ws.getAll();
184
+
185
+ case 4:
186
+ allWs = _context3.sent;
187
+
188
+ if (!(!allWs || !allWs.workspaces || !allWs.workspaces.workspace || !Array.isArray(allWs.workspaces.workspace))) {
189
+ _context3.next = 7;
190
+ break;
191
+ }
192
+
193
+ throw new _geoserver.GeoServerResponseError('Response of available workspaces is malformed');
194
+
195
+ case 7:
196
+ i = 0;
197
+
198
+ case 8:
199
+ if (!(i < allWs.workspaces.workspace.length)) {
200
+ _context3.next = 17;
201
+ break;
202
+ }
203
+
204
+ _ws = allWs.workspaces.workspace[i];
205
+ _context3.next = 12;
206
+ return this.getInWorkspace(_ws.name);
207
+
208
+ case 12:
209
+ wsStyles = _context3.sent;
210
+
211
+ if (wsStyles.styles.style) {
212
+ wsStyles.styles.style.forEach(function (wsStyle) {
213
+ allStyles.push(wsStyle);
214
+ });
215
+ }
216
+
217
+ case 14:
218
+ i++;
219
+ _context3.next = 8;
220
+ break;
221
+
222
+ case 17:
223
+ return _context3.abrupt("return", allStyles);
224
+
225
+ case 18:
226
+ case "end":
227
+ return _context3.stop();
228
+ }
229
+ }
230
+ }, _callee3, this);
231
+ }));
232
+
233
+ function getAllWorkspaceStyles() {
234
+ return _getAllWorkspaceStyles.apply(this, arguments);
235
+ }
236
+
237
+ return getAllWorkspaceStyles;
238
+ }()
239
+ /**
240
+ * Returns all styles as combined object (default ones and those in
241
+ * workspaces).
242
+ *
243
+ * @returns {Object[]} An array with all style objects
244
+ */
245
+
246
+ }, {
247
+ key: "getAll",
248
+ value: function () {
249
+ var _getAll = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
250
+ var defaultStyles, wsStyles, allStyles;
251
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
252
+ while (1) {
253
+ switch (_context4.prev = _context4.next) {
254
+ case 0:
255
+ _context4.next = 2;
256
+ return this.getDefaults();
257
+
258
+ case 2:
259
+ defaultStyles = _context4.sent;
260
+ _context4.next = 5;
261
+ return this.getAllWorkspaceStyles();
262
+
263
+ case 5:
264
+ wsStyles = _context4.sent;
265
+
266
+ if (!(!defaultStyles || !defaultStyles.styles || !defaultStyles.styles.style || !Array.isArray(defaultStyles.styles.style))) {
267
+ _context4.next = 8;
268
+ break;
269
+ }
270
+
271
+ throw new _geoserver.GeoServerResponseError('Response of default styles malformed');
272
+
273
+ case 8:
274
+ allStyles = defaultStyles.styles.style.concat(wsStyles);
275
+ return _context4.abrupt("return", allStyles);
276
+
277
+ case 10:
278
+ case "end":
279
+ return _context4.stop();
280
+ }
281
+ }
282
+ }, _callee4, this);
283
+ }));
284
+
285
+ function getAll() {
286
+ return _getAll.apply(this, arguments);
287
+ }
288
+
289
+ return getAll;
290
+ }()
291
+ /**
292
+ * Publishes a new SLD style.
293
+ *
294
+ * @param {String} workspace The workspace to publish the style in
295
+ * @param {String} name Name of the style
296
+ * @param {String} sldBody SLD style (as XML text)
297
+ *
298
+ * @throws Error if request fails
299
+ */
300
+
301
+ }, {
302
+ key: "publish",
303
+ value: function () {
304
+ var _publish = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(workspace, name, sldBody) {
305
+ var response, geoServerResponse;
306
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
307
+ while (1) {
308
+ switch (_context5.prev = _context5.next) {
309
+ case 0:
310
+ _context5.next = 2;
311
+ return (0, _nodeFetch["default"])(this.url + 'workspaces/' + workspace + '/styles?name=' + name, {
312
+ credentials: 'include',
313
+ method: 'POST',
314
+ headers: {
315
+ Authorization: this.auth,
316
+ 'Content-Type': 'application/vnd.ogc.sld+xml'
317
+ },
318
+ body: sldBody
319
+ });
320
+
321
+ case 2:
322
+ response = _context5.sent;
323
+
324
+ if (response.ok) {
325
+ _context5.next = 8;
326
+ break;
327
+ }
328
+
329
+ _context5.next = 6;
330
+ return (0, _geoserver.getGeoServerResponseText)(response);
331
+
332
+ case 6:
333
+ geoServerResponse = _context5.sent;
334
+ throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
335
+
336
+ case 8:
337
+ case "end":
338
+ return _context5.stop();
339
+ }
340
+ }
341
+ }, _callee5, this);
342
+ }));
343
+
344
+ function publish(_x2, _x3, _x4) {
345
+ return _publish.apply(this, arguments);
346
+ }
347
+
348
+ return publish;
349
+ }()
350
+ /**
351
+ * Deletes a style.
352
+ *
353
+ * @param {String} workspace The name of the workspace, can be undefined if style is not assigned to a workspace
354
+ * @param {String} name The name of the style to delete
355
+ * @param {Boolean} [recurse=false] If references to the specified style in existing layers should be deleted
356
+ * @param {Boolean} [purge=false] Whether the underlying file containing the style should be deleted on disk
357
+ */
358
+
359
+ }, {
360
+ key: "delete",
361
+ value: function () {
362
+ var _delete2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(workspace, name, recurse, purge) {
363
+ var paramPurge, paramRecurse, endpoint, response, geoServerResponse;
364
+ return _regenerator["default"].wrap(function _callee6$(_context6) {
365
+ while (1) {
366
+ switch (_context6.prev = _context6.next) {
367
+ case 0:
368
+ paramPurge = false;
369
+ paramRecurse = false;
370
+
371
+ if (purge === true) {
372
+ paramPurge = true;
373
+ }
374
+
375
+ if (recurse === true) {
376
+ paramRecurse = true;
377
+ }
378
+
379
+ if (workspace) {
380
+ // delete style inside workspace
381
+ endpoint = this.url + 'workspaces/' + workspace + '/styles/' + name + '?' + 'purge=' + paramPurge + '&' + 'recurse=' + paramRecurse;
382
+ } else {
383
+ // delete style without workspace
384
+ endpoint = this.url + 'styles/' + name + '?' + 'purge=' + paramPurge + '&' + 'recurse=' + paramRecurse;
385
+ }
386
+
387
+ _context6.next = 7;
388
+ return (0, _nodeFetch["default"])(endpoint, {
389
+ credentials: 'include',
390
+ method: 'DELETE',
391
+ headers: {
392
+ Authorization: this.auth
393
+ }
394
+ });
395
+
396
+ case 7:
397
+ response = _context6.sent;
398
+
399
+ if (response.ok) {
400
+ _context6.next = 17;
401
+ break;
402
+ }
403
+
404
+ _context6.next = 11;
405
+ return (0, _geoserver.getGeoServerResponseText)(response);
406
+
407
+ case 11:
408
+ geoServerResponse = _context6.sent;
409
+ _context6.t0 = response.status;
410
+ _context6.next = _context6.t0 === 403 ? 15 : 16;
411
+ break;
412
+
413
+ case 15:
414
+ throw new _geoserver.GeoServerResponseError('Deletion failed. There might be dependant layers to this style. Delete them first or call this with "recurse=false"', geoServerResponse);
415
+
416
+ case 16:
417
+ throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
418
+
419
+ case 17:
420
+ case "end":
421
+ return _context6.stop();
422
+ }
423
+ }
424
+ }, _callee6, this);
425
+ }));
426
+
427
+ function _delete(_x5, _x6, _x7, _x8) {
428
+ return _delete2.apply(this, arguments);
429
+ }
430
+
431
+ return _delete;
432
+ }()
433
+ /**
434
+ * Assigns a style to a layer.
435
+ *
436
+ * @param {String} workspaceOfLayer The name of the layer's workspace, can be undefined
437
+ * @param {String} layerName The name of the layer to query
438
+ * @param {String} workspaceOfStyle The workspace of the style, can be undefined
439
+ * @param {String} styleName The name of the style
440
+ * @param {Boolean} [isDefaultStyle=true] If the style should be the default style of the layer
441
+ *
442
+ * @throws Error if request fails
443
+ */
444
+
445
+ }, {
446
+ key: "assignStyleToLayer",
447
+ value: function () {
448
+ var _assignStyleToLayer = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(workspaceOfLayer, layerName, workspaceOfStyle, styleName, isDefaultStyle) {
449
+ var qualifiedName, styleBody, url, response, geoServerResponse;
450
+ return _regenerator["default"].wrap(function _callee7$(_context7) {
451
+ while (1) {
452
+ switch (_context7.prev = _context7.next) {
453
+ case 0:
454
+ if (workspaceOfLayer) {
455
+ qualifiedName = "".concat(workspaceOfLayer, ":").concat(layerName);
456
+ } else {
457
+ qualifiedName = layerName;
458
+ }
459
+
460
+ _context7.next = 3;
461
+ return this.getStyleInformation(workspaceOfStyle, styleName);
462
+
463
+ case 3:
464
+ styleBody = _context7.sent;
465
+
466
+ // we set the style as defaultStyle, unless user explicitly provides 'false'
467
+ if (isDefaultStyle !== false) {
468
+ url = this.url + 'layers/' + qualifiedName + '/styles?default=true';
469
+ } else {
470
+ url = this.url + 'layers/' + qualifiedName + '/styles';
471
+ }
472
+
473
+ _context7.next = 7;
474
+ return (0, _nodeFetch["default"])(url, {
475
+ credentials: 'include',
476
+ method: 'POST',
477
+ headers: {
478
+ Authorization: this.auth,
479
+ 'Content-Type': 'application/json'
480
+ },
481
+ body: JSON.stringify(styleBody)
482
+ });
483
+
484
+ case 7:
485
+ response = _context7.sent;
486
+
487
+ if (response.ok) {
488
+ _context7.next = 13;
489
+ break;
490
+ }
491
+
492
+ _context7.next = 11;
493
+ return (0, _geoserver.getGeoServerResponseText)(response);
494
+
495
+ case 11:
496
+ geoServerResponse = _context7.sent;
497
+ throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
498
+
499
+ case 13:
500
+ case "end":
501
+ return _context7.stop();
502
+ }
503
+ }
504
+ }, _callee7, this);
505
+ }));
506
+
507
+ function assignStyleToLayer(_x9, _x10, _x11, _x12, _x13) {
508
+ return _assignStyleToLayer.apply(this, arguments);
509
+ }
510
+
511
+ return assignStyleToLayer;
512
+ }()
513
+ /**
514
+ * Get information about a style.
515
+ *
516
+ * @param {String} workspace The name of the workspace, can be undefined
517
+ * @param {String} styleName The name of the style
518
+ *
519
+ * @throws Error if request fails
520
+ *
521
+ * @returns {Object} An object about the style or undefined if it cannot be found
522
+ */
523
+
524
+ }, {
525
+ key: "getStyleInformation",
526
+ value: function () {
527
+ var _getStyleInformation = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8(workspace, styleName) {
528
+ var url, response, grc, geoServerResponse;
529
+ return _regenerator["default"].wrap(function _callee8$(_context8) {
530
+ while (1) {
531
+ switch (_context8.prev = _context8.next) {
532
+ case 0:
533
+ if (workspace) {
534
+ url = this.url + 'workspaces/' + workspace + '/styles/' + styleName + '.json';
535
+ } else {
536
+ url = this.url + 'styles/' + styleName + '.json';
537
+ }
538
+
539
+ _context8.next = 3;
540
+ return (0, _nodeFetch["default"])(url, {
541
+ credentials: 'include',
542
+ method: 'GET',
543
+ headers: {
544
+ Authorization: this.auth
545
+ }
546
+ });
547
+
548
+ case 3:
549
+ response = _context8.sent;
550
+
551
+ if (response.ok) {
552
+ _context8.next = 16;
553
+ break;
554
+ }
555
+
556
+ grc = new _about["default"](this.url, this.auth);
557
+ _context8.next = 8;
558
+ return grc.exists();
559
+
560
+ case 8:
561
+ if (!_context8.sent) {
562
+ _context8.next = 12;
563
+ break;
564
+ }
565
+
566
+ return _context8.abrupt("return");
567
+
568
+ case 12:
569
+ _context8.next = 14;
570
+ return (0, _geoserver.getGeoServerResponseText)(response);
571
+
572
+ case 14:
573
+ geoServerResponse = _context8.sent;
574
+ throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
575
+
576
+ case 16:
577
+ return _context8.abrupt("return", response.json());
578
+
579
+ case 17:
580
+ case "end":
581
+ return _context8.stop();
582
+ }
583
+ }
584
+ }, _callee8, this);
585
+ }));
586
+
587
+ function getStyleInformation(_x14, _x15) {
588
+ return _getStyleInformation.apply(this, arguments);
589
+ }
590
+
591
+ return getStyleInformation;
592
+ }()
593
+ }]);
594
+ return StyleClient;
595
+ }();
596
+
597
+ exports["default"] = StyleClient;
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.GeoServerResponseError = void 0;
9
+ exports.getGeoServerResponseText = getGeoServerResponseText;
10
+
11
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
+
13
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14
+
15
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
16
+
17
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
18
+
19
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
20
+
21
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
22
+
23
+ var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
24
+
25
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
26
+
27
+ 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); }; }
28
+
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
+
31
+ /**
32
+ * Utility functions and classes
33
+ */
34
+
35
+ /**
36
+ * Return the GeoServer response text if available.
37
+ *
38
+ * @param {Response} response The response of the GeoServer
39
+ *
40
+ * @returns {String} The response text if available
41
+ */
42
+ function getGeoServerResponseText(_x) {
43
+ return _getGeoServerResponseText.apply(this, arguments);
44
+ }
45
+ /**
46
+ * Generic GeoServer error
47
+ */
48
+
49
+
50
+ function _getGeoServerResponseText() {
51
+ _getGeoServerResponseText = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(response) {
52
+ return _regenerator["default"].wrap(function _callee$(_context) {
53
+ while (1) {
54
+ switch (_context.prev = _context.next) {
55
+ case 0:
56
+ _context.prev = 0;
57
+ return _context.abrupt("return", response.text());
58
+
59
+ case 4:
60
+ _context.prev = 4;
61
+ _context.t0 = _context["catch"](0);
62
+
63
+ case 6:
64
+ case "end":
65
+ return _context.stop();
66
+ }
67
+ }
68
+ }, _callee, null, [[0, 4]]);
69
+ }));
70
+ return _getGeoServerResponseText.apply(this, arguments);
71
+ }
72
+
73
+ var GeoServerResponseError = /*#__PURE__*/function (_Error) {
74
+ (0, _inherits2["default"])(GeoServerResponseError, _Error);
75
+
76
+ var _super = _createSuper(GeoServerResponseError);
77
+
78
+ /**
79
+ * @param {String} [message=GeoServer Response Error] The error message
80
+ * @param {String} [geoServerOutput] The error output from GeoServer (useful for debugging)
81
+ */
82
+ function GeoServerResponseError(message, geoServerOutput) {
83
+ var _this;
84
+
85
+ (0, _classCallCheck2["default"])(this, GeoServerResponseError);
86
+ _this = _super.call(this, message);
87
+ _this.name = 'GeoServerResponseError';
88
+ _this.message = message || 'GeoServer Response Error'; // custom property as explained here: https://xjamundx.medium.com/custom-javascript-errors-in-es6-aa891b173f87
89
+
90
+ _this.geoServerOutput = geoServerOutput;
91
+ return _this;
92
+ }
93
+
94
+ return (0, _createClass2["default"])(GeoServerResponseError);
95
+ }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(Error));
96
+
97
+ exports.GeoServerResponseError = GeoServerResponseError;