@mountainpass/addressr 1.1.2 → 1.1.4
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 +3 -3
- package/lib/.claude/skills/c4/scripts/c4-generate.js +84 -0
- package/lib/.claude/skills/c4/scripts/c4-lib.js +252 -0
- package/lib/.claude/skills/c4-check/scripts/c4-check.js +76 -0
- package/lib/.claude/skills/wardley/owm-to-svg.js +191 -0
- package/lib/ci/build.js +6 -3
- package/lib/ci/pipeline.js +12 -13
- package/lib/client/elasticsearch.js +13 -27
- package/lib/controllers/Addresses.js +0 -10
- package/lib/controllers/Default.js +2 -3
- package/lib/deploy/create-deployment-archive.js +0 -7
- package/lib/loader.js +0 -8
- package/lib/server.js +0 -6
- package/lib/service/DefaultService.js +3 -10
- package/lib/service/address-service.js +90 -258
- package/lib/service/printVersion.js +0 -8
- package/lib/service/setLinkOptions.js +0 -2
- package/lib/src/server2.js +0 -6
- package/lib/src/waycharterServer.js +20 -20
- package/lib/swagger.js +16 -35
- package/lib/utils/stream-down.js +6 -14
- package/lib/utils/writer.js +2 -9
- package/lib/version.js +1 -1
- package/package.json +9 -5
|
@@ -4,24 +4,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.printVersion = printVersion;
|
|
7
|
-
|
|
8
7
|
var _dotenv = require("dotenv");
|
|
9
|
-
|
|
10
8
|
var _dotenv2 = _interopRequireDefault(_dotenv);
|
|
11
|
-
|
|
12
9
|
var _version = require("../version");
|
|
13
|
-
|
|
14
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
11
|
_dotenv2.default.config();
|
|
17
|
-
|
|
18
12
|
function printVersion() {
|
|
19
13
|
let environment = process.env.NODE_ENV || 'development';
|
|
20
|
-
|
|
21
14
|
if (environment === 'development') {
|
|
22
15
|
environment = `${environment}|(set NODE_ENV to 'production' in production environments)`;
|
|
23
16
|
}
|
|
24
|
-
|
|
25
17
|
const port = process.env.PORT || 8080;
|
|
26
18
|
console.log(`Version: ${_version.version}`);
|
|
27
19
|
console.log(`NODE_ENV: ${environment}`);
|
package/lib/src/server2.js
CHANGED
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _debug = require("debug");
|
|
4
|
-
|
|
5
4
|
var _debug2 = _interopRequireDefault(_debug);
|
|
6
|
-
|
|
7
5
|
var _elasticsearch = require("../client/elasticsearch");
|
|
8
|
-
|
|
9
6
|
var _printVersion = require("../service/printVersion");
|
|
10
|
-
|
|
11
7
|
var _waycharterServer = require("./waycharterServer");
|
|
12
|
-
|
|
13
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
|
-
|
|
15
9
|
const logger = (0, _debug2.default)('api');
|
|
16
10
|
(0, _waycharterServer.startRest2Server)().then(() => {
|
|
17
11
|
logger('connecting es client');
|
|
@@ -5,30 +5,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.startRest2Server = startRest2Server;
|
|
7
7
|
exports.stopServer = stopServer;
|
|
8
|
-
|
|
9
8
|
var _debug = require("debug");
|
|
10
|
-
|
|
11
9
|
var _debug2 = _interopRequireDefault(_debug);
|
|
12
|
-
|
|
13
10
|
var _express = require("express");
|
|
14
|
-
|
|
15
11
|
var _express2 = _interopRequireDefault(_express);
|
|
16
|
-
|
|
17
12
|
var _http = require("http");
|
|
18
|
-
|
|
19
13
|
var _waycharter = require("@mountainpass/waycharter");
|
|
20
|
-
|
|
21
14
|
var _addressService = require("../service/address-service");
|
|
22
|
-
|
|
23
15
|
var _version = require("../version");
|
|
24
|
-
|
|
25
16
|
var _crypto = require("crypto");
|
|
26
|
-
|
|
27
17
|
var _crypto2 = _interopRequireDefault(_crypto);
|
|
28
|
-
|
|
29
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
30
|
-
|
|
31
19
|
//import connect from 'connect';
|
|
20
|
+
|
|
32
21
|
var app = (0, _express2.default)();
|
|
33
22
|
const ONE_DAY = 60 * 60 * 24;
|
|
34
23
|
const ONE_WEEK = ONE_DAY * 7;
|
|
@@ -39,21 +28,17 @@ error.log = console.error.bind(console); // eslint-disable-line no-console
|
|
|
39
28
|
|
|
40
29
|
let server;
|
|
41
30
|
const PAGE_SIZE = process.env.PAGE_SIZE || 8;
|
|
42
|
-
|
|
43
31
|
function startRest2Server() {
|
|
44
32
|
app.use((_request, response, next) => {
|
|
45
33
|
if (process.env.ADDRESSR_ACCESS_CONTROL_ALLOW_ORIGIN !== undefined) {
|
|
46
34
|
response.append('Access-Control-Allow-Origin', process.env.ADDRESSR_ACCESS_CONTROL_ALLOW_ORIGIN);
|
|
47
35
|
}
|
|
48
|
-
|
|
49
36
|
if (process.env.ADDRESSR_ACCESS_CONTROL_EXPOSE_HEADERS !== undefined) {
|
|
50
37
|
response.append('Access-Control-Expose-Headers', process.env.ADDRESSR_ACCESS_CONTROL_EXPOSE_HEADERS);
|
|
51
38
|
}
|
|
52
|
-
|
|
53
39
|
if (process.env.ADDRESSR_ACCESS_CONTROL_ALLOW_HEADERS !== undefined) {
|
|
54
40
|
response.append('Access-Control-Allow-Headers', process.env.ADDRESSR_ACCESS_CONTROL_ALLOW_HEADERS);
|
|
55
41
|
}
|
|
56
|
-
|
|
57
42
|
next();
|
|
58
43
|
});
|
|
59
44
|
const waycharter = new _waycharter.WayCharter();
|
|
@@ -100,9 +85,7 @@ function startRest2Server() {
|
|
|
100
85
|
pid: h._id.replace('/addresses/', '')
|
|
101
86
|
};
|
|
102
87
|
});
|
|
103
|
-
|
|
104
88
|
const responseHash = _crypto2.default.createHash('md5').update(JSON.stringify(body)).digest('hex');
|
|
105
|
-
|
|
106
89
|
return {
|
|
107
90
|
body,
|
|
108
91
|
hasMore: page < foundAddresses.body.hits.total.value / PAGE_SIZE - 1,
|
|
@@ -128,12 +111,30 @@ function startRest2Server() {
|
|
|
128
111
|
parameters: ['q']
|
|
129
112
|
}]
|
|
130
113
|
});
|
|
114
|
+
const healthType = waycharter.registerResourceType({
|
|
115
|
+
path: '/health',
|
|
116
|
+
loader: async () => {
|
|
117
|
+
return {
|
|
118
|
+
body: {
|
|
119
|
+
status: 'healthy',
|
|
120
|
+
version: _version.version,
|
|
121
|
+
timestamp: new Date().toISOString()
|
|
122
|
+
},
|
|
123
|
+
headers: {
|
|
124
|
+
'cache-control': 'no-cache'
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
});
|
|
131
129
|
const index = waycharter.registerResourceType({
|
|
132
130
|
path: '/',
|
|
133
131
|
loader: async () => {
|
|
134
132
|
return {
|
|
135
133
|
body: {},
|
|
136
|
-
links: addressesType.additionalPaths,
|
|
134
|
+
links: [...addressesType.additionalPaths, {
|
|
135
|
+
rel: 'https://addressr.io/rels/health',
|
|
136
|
+
path: '/health'
|
|
137
|
+
}],
|
|
137
138
|
headers: {
|
|
138
139
|
etag: `"${_version.version}"`,
|
|
139
140
|
'cache-control': `public, max-age=${ONE_WEEK}`
|
|
@@ -149,7 +150,6 @@ function startRest2Server() {
|
|
|
149
150
|
});
|
|
150
151
|
});
|
|
151
152
|
}
|
|
152
|
-
|
|
153
153
|
function stopServer() {
|
|
154
154
|
if (server !== undefined) {
|
|
155
155
|
server.close();
|
package/lib/swagger.js
CHANGED
|
@@ -7,83 +7,71 @@ exports.swaggerDoc = undefined;
|
|
|
7
7
|
exports.swaggerInit = swaggerInit;
|
|
8
8
|
exports.startServer = startServer;
|
|
9
9
|
exports.stopServer = stopServer;
|
|
10
|
-
|
|
11
10
|
var _debug = require("debug");
|
|
12
|
-
|
|
13
11
|
var _debug2 = _interopRequireDefault(_debug);
|
|
14
|
-
|
|
15
12
|
var _express = require("express");
|
|
16
|
-
|
|
17
13
|
var _express2 = _interopRequireDefault(_express);
|
|
18
|
-
|
|
19
14
|
var _fs = require("fs");
|
|
20
|
-
|
|
21
15
|
var _http = require("http");
|
|
22
|
-
|
|
23
16
|
var _jsYaml = require("js-yaml");
|
|
24
|
-
|
|
25
17
|
var _path = require("path");
|
|
26
|
-
|
|
27
18
|
var _path2 = _interopRequireDefault(_path);
|
|
28
|
-
|
|
29
19
|
var _swaggerTools = require("swagger-tools");
|
|
30
|
-
|
|
31
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
32
|
-
|
|
33
21
|
//import connect from 'connect';
|
|
22
|
+
|
|
34
23
|
var app = (0, _express2.default)();
|
|
35
24
|
var serverPort = process.env.PORT || 8080;
|
|
36
25
|
var logger = (0, _debug2.default)('api');
|
|
37
26
|
var error = (0, _debug2.default)('error');
|
|
38
27
|
error.log = console.error.bind(console); // eslint-disable-line no-console
|
|
39
|
-
// swaggerRouter configuration
|
|
40
28
|
|
|
29
|
+
// swaggerRouter configuration
|
|
41
30
|
var options = {
|
|
42
31
|
swaggerUi: _path2.default.join(__dirname, '/swagger.json'),
|
|
43
32
|
controllers: _path2.default.join(__dirname, './controllers'),
|
|
44
33
|
useStubs: process.env.NODE_ENV === 'development' // Conditionally turn on stubs (mock mode)
|
|
34
|
+
};
|
|
45
35
|
|
|
46
|
-
|
|
47
|
-
|
|
36
|
+
// The Swagger document (require it, build it programmatically, fetch it from a URL, ...)
|
|
48
37
|
var spec = (0, _fs.readFileSync)(_path2.default.join(__dirname, 'api/swagger.yaml'), 'utf8');
|
|
49
38
|
var swaggerDoc = exports.swaggerDoc = (0, _jsYaml.safeLoad)(spec);
|
|
50
39
|
global.swaggerDoc = swaggerDoc;
|
|
51
|
-
|
|
52
40
|
function swaggerInit() {
|
|
53
41
|
// Initialize the Swagger middleware
|
|
54
42
|
return new Promise(resolve => {
|
|
55
43
|
(0, _swaggerTools.initializeMiddleware)(swaggerDoc, function (middleware) {
|
|
56
44
|
// Interpret Swagger resources and attach metadata to request - must be first in swagger-tools middleware chain
|
|
57
45
|
const metaData = middleware.swaggerMetadata();
|
|
58
|
-
app.use(metaData);
|
|
46
|
+
app.use(metaData);
|
|
59
47
|
|
|
48
|
+
// Validate Swagger requests
|
|
60
49
|
app.use(middleware.swaggerValidator({
|
|
61
50
|
validateResponse: process.env.NODE_ENV === undefined || process.env.NODE_ENV === 'development'
|
|
62
|
-
}));
|
|
51
|
+
}));
|
|
63
52
|
|
|
64
|
-
|
|
53
|
+
// Route validated requests to appropriate controller
|
|
54
|
+
app.use(middleware.swaggerRouter(options));
|
|
65
55
|
|
|
66
|
-
|
|
56
|
+
// Serve the Swagger documents and Swagger UI
|
|
57
|
+
app.use(middleware.swaggerUi({
|
|
58
|
+
// apiDocs: '/api-docs',
|
|
67
59
|
// swaggerUi: '/docs',
|
|
68
60
|
}));
|
|
69
61
|
app.use(function (error_, request, res, next) {
|
|
70
62
|
if (error_.failedValidation) {
|
|
71
63
|
// handle validation errror
|
|
72
64
|
const rehydratedError = Object.assign({}, error_);
|
|
73
|
-
|
|
74
65
|
if (error_.originalResponse) {
|
|
75
66
|
rehydratedError.originalResponse = JSON.parse(error_.originalResponse);
|
|
76
67
|
}
|
|
77
|
-
|
|
78
68
|
if (error_.message) {
|
|
79
69
|
rehydratedError.message = error_.message;
|
|
80
70
|
}
|
|
81
|
-
|
|
82
71
|
if (error_.results) {
|
|
83
72
|
rehydratedError.errors = error_.results.errors;
|
|
84
73
|
delete rehydratedError.results;
|
|
85
74
|
}
|
|
86
|
-
|
|
87
75
|
error('error!!!', error_.message, JSON.stringify(rehydratedError, undefined, 2));
|
|
88
76
|
res.status(error_.code === 'SCHEMA_VALIDATION_FAILED' ? '500' : '400').json(rehydratedError);
|
|
89
77
|
} else {
|
|
@@ -99,38 +87,32 @@ function swaggerInit() {
|
|
|
99
87
|
});
|
|
100
88
|
});
|
|
101
89
|
}
|
|
102
|
-
|
|
103
90
|
let server;
|
|
104
|
-
|
|
105
91
|
function startServer() {
|
|
106
92
|
app.use((request, response, next) => {
|
|
107
93
|
if (process.env.ADDRESSR_ACCESS_CONTROL_ALLOW_ORIGIN !== undefined) {
|
|
108
94
|
response.append('Access-Control-Allow-Origin', process.env.ADDRESSR_ACCESS_CONTROL_ALLOW_ORIGIN);
|
|
109
95
|
}
|
|
110
|
-
|
|
111
96
|
if (process.env.ADDRESSR_ACCESS_CONTROL_EXPOSE_HEADERS !== undefined) {
|
|
112
97
|
response.append('Access-Control-Expose-Headers', process.env.ADDRESSR_ACCESS_CONTROL_EXPOSE_HEADERS);
|
|
113
98
|
}
|
|
114
|
-
|
|
115
99
|
if (process.env.ADDRESSR_ACCESS_CONTROL_ALLOW_HEADERS !== undefined) {
|
|
116
100
|
response.append('Access-Control-Allow-Headers', process.env.ADDRESSR_ACCESS_CONTROL_ALLOW_HEADERS);
|
|
117
101
|
}
|
|
118
|
-
|
|
119
102
|
next();
|
|
120
103
|
});
|
|
121
104
|
return swaggerInit().then(({
|
|
122
|
-
app
|
|
123
|
-
/*, middleware*/
|
|
124
|
-
|
|
105
|
+
app /*, middleware*/
|
|
125
106
|
}) => {
|
|
126
107
|
// logger(app);
|
|
127
108
|
// logger(middleware);
|
|
109
|
+
|
|
128
110
|
server = (0, _http.createServer)(app);
|
|
129
111
|
server.listen(serverPort, function () {
|
|
130
112
|
logger('📡 Addressr is listening on port %d ( http://localhost:%d ) ', serverPort, serverPort);
|
|
131
113
|
logger('📑 Swagger-ui is available on http://localhost:%d/docs', serverPort);
|
|
132
|
-
|
|
133
|
-
|
|
114
|
+
if (process.env.NODE_ENV !== 'PRODUCTION') {
|
|
115
|
+
// ngrok.connect(serverPort).then(url => {
|
|
134
116
|
// logger('📡 Addressr is listening at %s', url);
|
|
135
117
|
// logger('📑 Swagger-ui is available on %s/docs/', url);
|
|
136
118
|
// });
|
|
@@ -139,7 +121,6 @@ function startServer() {
|
|
|
139
121
|
return `http://localhost:${serverPort}`;
|
|
140
122
|
});
|
|
141
123
|
}
|
|
142
|
-
|
|
143
124
|
function stopServer() {
|
|
144
125
|
if (server !== undefined) {
|
|
145
126
|
server.close();
|
package/lib/utils/stream-down.js
CHANGED
|
@@ -1,34 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _progress = require("progress");
|
|
4
|
-
|
|
5
4
|
var _progress2 = _interopRequireDefault(_progress);
|
|
6
|
-
|
|
7
5
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
8
|
-
|
|
9
6
|
const {
|
|
10
7
|
parse
|
|
11
8
|
} = require('url');
|
|
12
|
-
|
|
13
9
|
const http = require('https');
|
|
14
|
-
|
|
15
10
|
const fs = require('fs');
|
|
16
|
-
|
|
17
11
|
const pathUtil = require('path');
|
|
18
|
-
|
|
19
12
|
module.exports = function (url, path, size) {
|
|
20
13
|
const uri = parse(url);
|
|
21
|
-
|
|
22
14
|
if (!path) {
|
|
23
15
|
path = pathUtil.basename(uri.path);
|
|
24
16
|
}
|
|
25
|
-
|
|
26
17
|
const file = fs.createWriteStream(path);
|
|
27
18
|
return new Promise(function (resolve, reject) {
|
|
28
19
|
http.get(uri.href).on('response', function (res) {
|
|
29
|
-
const length = res.headers['content-length'] ? Number.parseInt(res.headers['content-length'], 10) : size;
|
|
20
|
+
const length = res.headers['content-length'] ? Number.parseInt(res.headers['content-length'], 10) : size;
|
|
21
|
+
// let downloaded = 0;
|
|
30
22
|
// let percent = 0;
|
|
31
|
-
|
|
32
23
|
var bar = new _progress2.default(' downloading [:bar] :rate/bps :percent :etas', {
|
|
33
24
|
complete: '=',
|
|
34
25
|
incomplete: ' ',
|
|
@@ -36,10 +27,11 @@ module.exports = function (url, path, size) {
|
|
|
36
27
|
total: length
|
|
37
28
|
});
|
|
38
29
|
res.on('data', function (chunk) {
|
|
39
|
-
file.write(chunk);
|
|
30
|
+
file.write(chunk);
|
|
31
|
+
// downloaded += chunk.length;
|
|
40
32
|
//percent = ((100.0 * downloaded) / len).toFixed(2);
|
|
41
|
-
|
|
42
|
-
|
|
33
|
+
bar.tick(chunk.length);
|
|
34
|
+
// process.stdout.write(
|
|
43
35
|
// `Downloading\t${percent}%\t${filesize(downloaded, {
|
|
44
36
|
// standard: 'iec',
|
|
45
37
|
// })}\t of ${filesize(len, {
|
package/lib/utils/writer.js
CHANGED
|
@@ -4,20 +4,16 @@ var ResponsePayload = function (code, payload) {
|
|
|
4
4
|
this.code = code;
|
|
5
5
|
this.payload = payload;
|
|
6
6
|
};
|
|
7
|
-
|
|
8
7
|
exports.respondWithCode = function (code, payload) {
|
|
9
8
|
return new ResponsePayload(code, payload);
|
|
10
9
|
};
|
|
11
|
-
|
|
12
10
|
var writeJson = exports.writeJson = function (response, argument1, argument2) {
|
|
13
11
|
var code;
|
|
14
12
|
var payload;
|
|
15
|
-
|
|
16
13
|
if (argument1 && argument1 instanceof ResponsePayload) {
|
|
17
14
|
writeJson(response, argument1.payload, argument1.code);
|
|
18
15
|
return;
|
|
19
16
|
}
|
|
20
|
-
|
|
21
17
|
if (argument2 && Number.isInteger(argument2)) {
|
|
22
18
|
code = argument2;
|
|
23
19
|
} else {
|
|
@@ -25,21 +21,18 @@ var writeJson = exports.writeJson = function (response, argument1, argument2) {
|
|
|
25
21
|
code = argument1;
|
|
26
22
|
}
|
|
27
23
|
}
|
|
28
|
-
|
|
29
24
|
if (code && argument1) {
|
|
30
25
|
payload = argument1;
|
|
31
26
|
} else if (argument1) {
|
|
32
27
|
payload = argument1;
|
|
33
28
|
}
|
|
34
|
-
|
|
35
29
|
if (!code) {
|
|
36
30
|
// if no response code given, we default to 200
|
|
37
31
|
code = 200;
|
|
38
|
-
}
|
|
32
|
+
}
|
|
33
|
+
// if (typeof payload === 'object') {
|
|
39
34
|
// payload = JSON.stringify(payload, null, 2);
|
|
40
35
|
// }
|
|
41
|
-
|
|
42
|
-
|
|
43
36
|
response.status(code);
|
|
44
37
|
response.setHeader('Content-Type', 'application/json');
|
|
45
38
|
response.json(payload);
|
package/lib/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mountainpass/addressr",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.4",
|
|
4
4
|
"description": "Australian Address Validation, Search and Autocomplete",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Mountain Pass",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
},
|
|
18
18
|
"config": {
|
|
19
19
|
"localport": "6060",
|
|
20
|
-
"SEARCH_IMAGE": "opensearchproject/opensearch:1.
|
|
20
|
+
"SEARCH_IMAGE": "opensearchproject/opensearch:1.3.20"
|
|
21
21
|
},
|
|
22
22
|
"scripts": {
|
|
23
23
|
"gen-install-cmd": "echo \"#!/bin/sh\n\nnpm install -g ${npm_package_name}@${npm_package_version}\" > install.sh",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"npm-check-unused": "npm-check",
|
|
76
76
|
"lint": "eslint . --fix",
|
|
77
77
|
"test": "NO_STRICT=' ' npm-run-all --serial test:nogeo test:geo",
|
|
78
|
-
"test:nogeo": "NO_STRICT=' ' npm-run-all --serial test:nodejs:nogeo test:rest:nogeo test:cli:nogeo",
|
|
78
|
+
"test:nogeo": "NO_STRICT=' ' npm-run-all --serial test:nodejs:nogeo test:rest:nogeo test:rest2:nogeo test:cli:nogeo",
|
|
79
79
|
"test:geo": "NO_STRICT=' ' npm-run-all --serial test:nodejs:geo test:rest:geo test:cli:geo",
|
|
80
80
|
"watch:test": "nodemon -V --ext \"*.feature, *.js, *.json, *.css, *.yaml\" -x npm -- run test",
|
|
81
81
|
"genversion": "genversion --es6 --semi version.js",
|
|
@@ -89,6 +89,7 @@
|
|
|
89
89
|
"cover:rest:nogeo": "nyc --report-dir coverage/rest --temp-dir coverage/rest/.nyc_output npm run test:rest:nogeo",
|
|
90
90
|
"test:rest:geo": "PORT=$npm_package_config_localport ADDRESSR_ENABLE_GEO=1 ES_INDEX_NAME=test-geo COVERED_STATES=OT DEBUG=error,api,express:*,swagger-tools*,test,es TEST_PROFILE=rest cucumber-js -p rest -- --harmony_async_iteration",
|
|
91
91
|
"cover:rest:geo": "nyc --report-dir coverage/rest-geo --temp-dir coverage/rest-geo/.nyc_output npm run test:rest:geo",
|
|
92
|
+
"test:rest2:nogeo": "PORT=$npm_package_config_localport ES_INDEX_NAME=test COVERED_STATES=OT DEBUG=error,api,express:*,swagger-tools*,test,es,waychaser,waycharter TEST_PROFILE=rest2 cucumber-js -p rest2 -- --harmony_async_iteration",
|
|
92
93
|
"test:rest2:geo": "PORT=$npm_package_config_localport ADDRESSR_ENABLE_GEO=1 ES_INDEX_NAME=test-geo COVERED_STATES=OT DEBUG=error,api,express:*,swagger-tools*,test,es,waychaser,waycharter TEST_PROFILE=rest2 cucumber-js -p rest2 -- --harmony_async_iteration",
|
|
93
94
|
"watch:test:rest2:geo": "nodemon -V -x npm -- run ${npm_lifecycle_event#watch:}",
|
|
94
95
|
"watch:test:rest:nogeo": "nodemon -V --ext \"*.feature, *.js, *.json, *.css, *.yaml\" -x npm -- run test:rest:nogeo",
|
|
@@ -120,7 +121,10 @@
|
|
|
120
121
|
"test:performance": "k6 run --out csv=target/stress.csv test/k6/script.js",
|
|
121
122
|
"add-changeset": "changeset add --open",
|
|
122
123
|
"ci:version": "[ \"$CI\" = true ] && changeset version || echo \"Dry run: changeset version\"",
|
|
123
|
-
"ci:publish": "[ \"$CI\" = true ] && changeset publish || echo \"Dry run: changeset publish\""
|
|
124
|
+
"ci:publish": "[ \"$CI\" = true ] && changeset publish || echo \"Dry run: changeset publish\"",
|
|
125
|
+
"push:watch": "bash scripts/push-and-watch.sh",
|
|
126
|
+
"release:watch": "bash scripts/release-watch.sh",
|
|
127
|
+
"test:hooks": "bats .claude/hooks/test/"
|
|
124
128
|
},
|
|
125
129
|
"bin": {
|
|
126
130
|
"addressr-loader": "lib/bin/addressr-loader.js",
|
|
@@ -192,6 +196,7 @@
|
|
|
192
196
|
"babel-eslint": "^10.0.2",
|
|
193
197
|
"babel-plugin-istanbul": "^6.0.0",
|
|
194
198
|
"babel-preset-env": "^1.7.0",
|
|
199
|
+
"bats": "^1.13.0",
|
|
195
200
|
"chai": "^4.2.0",
|
|
196
201
|
"cucumber": "^5.1.0",
|
|
197
202
|
"eslint": "^7.9.0",
|
|
@@ -212,7 +217,6 @@
|
|
|
212
217
|
"istanbul-middleware": "^0.2.2",
|
|
213
218
|
"license-checker": "^25.0.1",
|
|
214
219
|
"lint-staged": "^11.0.0",
|
|
215
|
-
"ngrok": "^4.0.1",
|
|
216
220
|
"nodemon": "^2.0.4",
|
|
217
221
|
"npm-check": "^5.9.0",
|
|
218
222
|
"npm-run-all": "^4.1.5",
|