geoserver-node-client 0.0.6 → 1.1.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.
- package/README.md +79 -8
- package/dist/geoserver-rest-client.js +87 -0
- package/dist/package.json +56 -0
- package/dist/src/about.js +145 -0
- package/dist/src/datastore.js +1050 -0
- package/dist/src/imagemosaic.js +297 -0
- package/dist/src/layer.js +1040 -0
- package/dist/src/namespace.js +315 -0
- package/dist/src/security.js +297 -0
- package/dist/src/settings.js +345 -0
- package/dist/src/style.js +597 -0
- package/dist/src/util/geoserver.js +97 -0
- package/dist/src/workspace.js +321 -0
- package/geoserver-rest-client.js +15 -52
- package/package.json +24 -5
- package/src/about.js +59 -0
- package/src/datastore.js +161 -200
- package/src/imagemosaic.js +74 -97
- package/src/layer.js +376 -332
- package/src/namespace.js +84 -83
- package/src/security.js +61 -84
- package/src/settings.js +76 -91
- package/src/style.js +200 -147
- package/src/util/geoserver.js +41 -0
- package/src/workspace.js +89 -81
- package/.eslintrc.json +0 -20
- package/.github/workflows/ci-geoserver-node-client.yml +0 -54
- package/.github/workflows/ci-publish-docs.yml +0 -24
- package/.github/workflows/wait-for.sh +0 -145
- package/.vscode/settings.json +0 -3
- package/DOCS_HOME.md +0 -26
- package/demo/index.js +0 -188
- package/release-it.json +0 -8
- package/test/sample_data/iceland.gpkg +0 -0
- package/test/sample_data/world.geotiff +0 -0
- package/test/test.js +0 -491
|
@@ -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;
|