geoserver-node-client 1.6.1 → 2.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.
- package/README.md +23 -22
- package/dist/geoserver-rest-client.js +38 -39
- package/dist/package.json +17 -10
- package/dist/src/about.js +35 -86
- package/dist/src/datastore.js +524 -950
- package/dist/src/imagemosaic.js +103 -211
- package/dist/src/layer.js +718 -1287
- package/dist/src/layergroup.js +128 -226
- package/dist/src/namespace.js +110 -222
- package/dist/src/reset-reload.js +41 -96
- package/dist/src/security.js +279 -567
- package/dist/src/settings.js +127 -255
- package/dist/src/style.js +228 -448
- package/dist/src/util/geoserver.js +17 -44
- package/dist/src/workspace.js +116 -229
- package/dist/types/geoserver-rest-client.d.ts +53 -0
- package/dist/types/src/about.d.ts +30 -0
- package/dist/types/src/datastore.d.ts +241 -0
- package/dist/types/src/imagemosaic.d.ts +61 -0
- package/dist/types/src/layer.d.ts +265 -0
- package/dist/types/src/layergroup.d.ts +60 -0
- package/dist/types/src/namespace.d.ts +53 -0
- package/dist/types/src/reset-reload.d.ts +36 -0
- package/dist/types/src/security.d.ts +110 -0
- package/dist/types/src/settings.d.ts +62 -0
- package/dist/types/src/style.d.ts +91 -0
- package/dist/types/src/util/geoserver.d.ts +22 -0
- package/dist/types/src/workspace.d.ts +55 -0
- package/package.json +17 -10
- package/src/datastore.js +1 -1
- package/src/layer.js +25 -25
package/README.md
CHANGED
|
@@ -18,8 +18,9 @@ Detailed [API-Docs](https://meggsimum.github.io/geoserver-node-client/) are auto
|
|
|
18
18
|
|
|
19
19
|
Compatible with [GeoServer](https://geoserver.org)
|
|
20
20
|
|
|
21
|
+
- v3.0.x
|
|
21
22
|
- v2.28.x
|
|
22
|
-
- v2.27.x
|
|
23
|
+
- v2.27.x (no more maintained and officially deprecated)
|
|
23
24
|
- v2.26.x (no more maintained and officially deprecated)
|
|
24
25
|
- v2.25.x (no more maintained and officially deprecated)
|
|
25
26
|
- v2.24.x (no more maintained and officially deprecated)
|
|
@@ -37,39 +38,39 @@ Compatible with [GeoServer](https://geoserver.org)
|
|
|
37
38
|
npm i geoserver-node-client
|
|
38
39
|
```
|
|
39
40
|
|
|
40
|
-
usage
|
|
41
|
+
usage as ES module (ES6)
|
|
41
42
|
|
|
42
43
|
```js
|
|
43
|
-
|
|
44
|
-
var GeoServerRestClient = grcImport.GeoServerRestClient;
|
|
44
|
+
import {GeoServerRestClient} from 'geoserver-node-client';
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
const url = 'http://localhost:8080/geoserver/rest/';
|
|
47
|
+
const user = 'admin';
|
|
48
|
+
const pw = 'geoserver';
|
|
49
|
+
const grc = new GeoServerRestClient(url, user, pw);
|
|
50
50
|
|
|
51
|
-
function main () {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
});
|
|
51
|
+
async function main () {
|
|
52
|
+
const result = await grc.about.exists();
|
|
53
|
+
console.log(result);
|
|
55
54
|
};
|
|
56
55
|
|
|
57
56
|
main();
|
|
58
57
|
```
|
|
59
58
|
|
|
60
|
-
usage
|
|
59
|
+
usage with require (ES5):
|
|
61
60
|
|
|
62
61
|
```js
|
|
63
|
-
|
|
62
|
+
var grcImport = require('geoserver-node-client');
|
|
63
|
+
var GeoServerRestClient = grcImport.GeoServerRestClient;
|
|
64
64
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
65
|
+
var url = 'http://localhost:8080/geoserver/rest/';
|
|
66
|
+
var user = 'admin';
|
|
67
|
+
var pw = 'geoserver';
|
|
68
|
+
var grc = new GeoServerRestClient(url, user, pw);
|
|
69
69
|
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
function main () {
|
|
71
|
+
grc.about.exists().then(function (result) {
|
|
72
72
|
console.log(result);
|
|
73
|
+
});
|
|
73
74
|
};
|
|
74
75
|
|
|
75
76
|
main();
|
|
@@ -117,14 +118,14 @@ A request either succeeds or throws the custom `GeoServerResponseError`. It has
|
|
|
117
118
|
First start a test setup using this Docker compose file:
|
|
118
119
|
|
|
119
120
|
```shell
|
|
120
|
-
GEOSERVER_VERSION=
|
|
121
|
+
GEOSERVER_VERSION=3.0.0 TEMP_DIR=/tmp/gs docker compose -f test/docker-compose.yml up
|
|
121
122
|
```
|
|
122
123
|
|
|
123
124
|
Then, in an other terminal, run:
|
|
124
125
|
|
|
125
126
|
```shell
|
|
126
127
|
# specify the GeoServer version and run the test suite
|
|
127
|
-
GEOSERVER_VERSION=
|
|
128
|
+
GEOSERVER_VERSION=3.0.0 npm run test
|
|
128
129
|
```
|
|
129
130
|
|
|
130
131
|
## Release
|
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
Object.defineProperty(exports, "GeoServerResponseError", {
|
|
8
8
|
enumerable: true,
|
|
9
|
-
get: function
|
|
9
|
+
get: function () {
|
|
10
10
|
return _geoserver.GeoServerResponseError;
|
|
11
11
|
}
|
|
12
12
|
});
|
|
13
13
|
exports.GeoServerRestClient = void 0;
|
|
14
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
16
14
|
var _layer = _interopRequireDefault(require("./src/layer.js"));
|
|
17
15
|
var _style = _interopRequireDefault(require("./src/style.js"));
|
|
18
16
|
var _workspace = _interopRequireDefault(require("./src/workspace.js"));
|
|
@@ -32,39 +30,40 @@ var _geoserver = require("./src/util/geoserver.js");
|
|
|
32
30
|
*
|
|
33
31
|
* @module GeoServerRestClient
|
|
34
32
|
*/
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
this.auth = 'Basic ' + Buffer.from(user + ':' + password).toString('base64');
|
|
33
|
+
class GeoServerRestClient {
|
|
34
|
+
/**
|
|
35
|
+
* Creates a GeoServerRestClient instance.
|
|
36
|
+
*
|
|
37
|
+
* @param {String} url The URL of the GeoServer REST API endpoint
|
|
38
|
+
* @param {String} user The user for the GeoServer REST API
|
|
39
|
+
* @param {String} password The password for the GeoServer REST API
|
|
40
|
+
*/
|
|
41
|
+
constructor(url, user, password) {
|
|
42
|
+
this.url = url.endsWith('/') ? url : url + '/';
|
|
43
|
+
this.auth = 'Basic ' + Buffer.from(user + ':' + password).toString('base64');
|
|
47
44
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
45
|
+
/** @member {LayerClient} layers GeoServer REST client instance for layers */
|
|
46
|
+
this.layers = new _layer.default(this.url, this.auth);
|
|
47
|
+
/** @member {LayerGroupClient} layers GeoServer REST client instance for layergroups */
|
|
48
|
+
this.layergroups = new _layergroup.default(this.url, this.auth);
|
|
49
|
+
/** @member {StyleClient} styles GeoServer REST client instance for styles */
|
|
50
|
+
this.styles = new _style.default(this.url, this.auth);
|
|
51
|
+
/** @member {WorkspaceClient} workspaces GeoServer REST client instance for workspaces */
|
|
52
|
+
this.workspaces = new _workspace.default(this.url, this.auth);
|
|
53
|
+
/** @member {NamespaceClient} namespaces GeoServer REST client instance for namespaces */
|
|
54
|
+
this.namespaces = new _namespace.default(this.url, this.auth);
|
|
55
|
+
/** @member {DatastoreClient} datastores GeoServer REST client instance for data stores */
|
|
56
|
+
this.datastores = new _datastore.default(this.url, this.auth);
|
|
57
|
+
/** @member {ImageMosaicClient} imagemosaics GeoServer REST client instance for image mosaics */
|
|
58
|
+
this.imagemosaics = new _imagemosaic.default(this.url, this.auth);
|
|
59
|
+
/** @member {SecurityClient} security GeoServer REST client instance for security related modifications */
|
|
60
|
+
this.security = new _security.default(this.url, this.auth);
|
|
61
|
+
/** @member {SettingsClient} settings GeoServer REST client instance for settings */
|
|
62
|
+
this.settings = new _settings.default(this.url, this.auth);
|
|
63
|
+
/** @member {AboutClient} about GeoServer REST client instance for about endpoint */
|
|
64
|
+
this.about = new _about.default(this.url, this.auth);
|
|
65
|
+
/** @member {ResetReloadClient} about GeoServer REST client instance for reset/reload endpoints */
|
|
66
|
+
this.resetReload = new _resetReload.default(this.url, this.auth);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.GeoServerRestClient = GeoServerRestClient;
|
package/dist/package.json
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "geoserver-node-client",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Node.js client for GeoServer REST API",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "geoserver-rest-client.js",
|
|
7
|
+
"types": "./dist/types/geoserver-rest-client.d.ts",
|
|
7
8
|
"scripts": {
|
|
8
9
|
"demo": "node demo/index.js",
|
|
9
10
|
"docs": "./node_modules/.bin/jsdoc geoserver-rest-client.js src/*.js DOCS_HOME.md && cp img/*.png out/",
|
|
@@ -14,14 +15,18 @@
|
|
|
14
15
|
"test:reset-gs": "node test/reset-gs.js",
|
|
15
16
|
"release": "release-it",
|
|
16
17
|
"release:dry": "release-it --dry-run",
|
|
17
|
-
"build": "npm run build:clean && npm run build:babel && npm run build:fixup",
|
|
18
|
+
"build": "npm run build:clean && npm run build:babel && npm run build:types && npm run build:fixup",
|
|
18
19
|
"build:clean": "rm -rf dist",
|
|
19
20
|
"build:babel": "babel geoserver-rest-client.js -d dist && babel src -d dist/src",
|
|
21
|
+
"build:types": "tsc -p tsconfig.json",
|
|
20
22
|
"build:fixup": "node scripts/create-custom-package-json.js"
|
|
21
23
|
},
|
|
22
24
|
"exports": {
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
+
".": {
|
|
26
|
+
"types": "./dist/types/geoserver-rest-client.d.ts",
|
|
27
|
+
"import": "./geoserver-rest-client.js",
|
|
28
|
+
"require": "./dist/geoserver-rest-client.js"
|
|
29
|
+
}
|
|
25
30
|
},
|
|
26
31
|
"files": [
|
|
27
32
|
"geoserver-rest-client.js",
|
|
@@ -36,15 +41,16 @@
|
|
|
36
41
|
"author": "C. Mayer, meggsimum (info_at*meggsimum?dot?de)",
|
|
37
42
|
"license": "BSD-2-Clause",
|
|
38
43
|
"dependencies": {
|
|
39
|
-
"@babel/runtime": "^
|
|
44
|
+
"@babel/runtime": "^8.0.0",
|
|
40
45
|
"node-fetch": "^3.3.2"
|
|
41
46
|
},
|
|
42
47
|
"devDependencies": {
|
|
43
|
-
"@babel/cli": "^
|
|
44
|
-
"@babel/core": "^
|
|
45
|
-
"@babel/plugin-transform-runtime": "^
|
|
46
|
-
"@babel/preset-env": "^
|
|
48
|
+
"@babel/cli": "^8.0.0",
|
|
49
|
+
"@babel/core": "^8.0.0",
|
|
50
|
+
"@babel/plugin-transform-runtime": "^8.0.0",
|
|
51
|
+
"@babel/preset-env": "^8.0.0",
|
|
47
52
|
"@eslint/compat": "^2.0.0",
|
|
53
|
+
"@types/node": "^26.0.0",
|
|
48
54
|
"chai": "^6.0.1",
|
|
49
55
|
"eslint": "^9.29.0",
|
|
50
56
|
"eslint-config-prettier": "^10.1.5",
|
|
@@ -53,6 +59,7 @@
|
|
|
53
59
|
"mocha": "^11.7.1",
|
|
54
60
|
"neostandard": "^0.13.0",
|
|
55
61
|
"prettier": "^3.6.1",
|
|
56
|
-
"release-it": "^
|
|
62
|
+
"release-it": "^20.0.0",
|
|
63
|
+
"typescript": "^6.0.3"
|
|
57
64
|
}
|
|
58
65
|
}
|
package/dist/src/about.js
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports
|
|
8
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
7
|
+
exports.default = void 0;
|
|
12
8
|
var _nodeFetch = _interopRequireDefault(require("node-fetch"));
|
|
13
9
|
var _geoserver = require("./util/geoserver.js");
|
|
14
10
|
/**
|
|
@@ -16,15 +12,14 @@ var _geoserver = require("./util/geoserver.js");
|
|
|
16
12
|
*
|
|
17
13
|
* @module AboutClient
|
|
18
14
|
*/
|
|
19
|
-
|
|
15
|
+
class AboutClient {
|
|
20
16
|
/**
|
|
21
17
|
* Creates a GeoServer REST AboutClient instance.
|
|
22
18
|
*
|
|
23
19
|
* @param {String} url The URL of the GeoServer REST API endpoint
|
|
24
20
|
* @param {String} auth The Basic Authentication string
|
|
25
21
|
*/
|
|
26
|
-
|
|
27
|
-
(0, _classCallCheck2["default"])(this, AboutClient);
|
|
22
|
+
constructor(url, auth) {
|
|
28
23
|
this.url = url;
|
|
29
24
|
this.auth = auth;
|
|
30
25
|
}
|
|
@@ -36,81 +31,35 @@ var AboutClient = exports["default"] = /*#__PURE__*/function () {
|
|
|
36
31
|
*
|
|
37
32
|
* @returns {Object} The version of GeoServer
|
|
38
33
|
*/
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
case 0:
|
|
47
|
-
url = this.url + 'about/version.json';
|
|
48
|
-
_context.next = 1;
|
|
49
|
-
return (0, _nodeFetch["default"])(url, {
|
|
50
|
-
credentials: 'include',
|
|
51
|
-
method: 'GET',
|
|
52
|
-
headers: {
|
|
53
|
-
Authorization: this.auth
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
case 1:
|
|
57
|
-
response = _context.sent;
|
|
58
|
-
if (response.ok) {
|
|
59
|
-
_context.next = 3;
|
|
60
|
-
break;
|
|
61
|
-
}
|
|
62
|
-
_context.next = 2;
|
|
63
|
-
return (0, _geoserver.getGeoServerResponseText)(response);
|
|
64
|
-
case 2:
|
|
65
|
-
geoServerResponse = _context.sent;
|
|
66
|
-
throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
|
|
67
|
-
case 3:
|
|
68
|
-
return _context.abrupt("return", response.json());
|
|
69
|
-
case 4:
|
|
70
|
-
case "end":
|
|
71
|
-
return _context.stop();
|
|
72
|
-
}
|
|
73
|
-
}, _callee, this);
|
|
74
|
-
}));
|
|
75
|
-
function getVersion() {
|
|
76
|
-
return _getVersion.apply(this, arguments);
|
|
34
|
+
async getVersion() {
|
|
35
|
+
const url = this.url + 'about/version.json';
|
|
36
|
+
const response = await (0, _nodeFetch.default)(url, {
|
|
37
|
+
credentials: 'include',
|
|
38
|
+
method: 'GET',
|
|
39
|
+
headers: {
|
|
40
|
+
Authorization: this.auth
|
|
77
41
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
_t = _context2["catch"](0);
|
|
103
|
-
return _context2.abrupt("return", false);
|
|
104
|
-
case 3:
|
|
105
|
-
case "end":
|
|
106
|
-
return _context2.stop();
|
|
107
|
-
}
|
|
108
|
-
}, _callee2, this, [[0, 2]]);
|
|
109
|
-
}));
|
|
110
|
-
function exists() {
|
|
111
|
-
return _exists.apply(this, arguments);
|
|
112
|
-
}
|
|
113
|
-
return exists;
|
|
114
|
-
}())
|
|
115
|
-
}]);
|
|
116
|
-
}();
|
|
42
|
+
});
|
|
43
|
+
if (!response.ok) {
|
|
44
|
+
const geoServerResponse = await (0, _geoserver.getGeoServerResponseText)(response);
|
|
45
|
+
throw new _geoserver.GeoServerResponseError(null, geoServerResponse);
|
|
46
|
+
}
|
|
47
|
+
return response.json();
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Checks if the configured GeoServer REST connection exists.
|
|
52
|
+
*
|
|
53
|
+
* @returns {Boolean} If the connection exists
|
|
54
|
+
*/
|
|
55
|
+
async exists() {
|
|
56
|
+
let versionInfo;
|
|
57
|
+
try {
|
|
58
|
+
versionInfo = await this.getVersion();
|
|
59
|
+
return !!versionInfo;
|
|
60
|
+
} catch {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.default = AboutClient;
|