@mountainpass/addressr 1.1.2 → 1.1.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/README.md +3 -3
- 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 +1 -19
- 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 +2 -2
|
@@ -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,
|
|
@@ -149,7 +132,6 @@ function startRest2Server() {
|
|
|
149
132
|
});
|
|
150
133
|
});
|
|
151
134
|
}
|
|
152
|
-
|
|
153
135
|
function stopServer() {
|
|
154
136
|
if (server !== undefined) {
|
|
155
137
|
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.3",
|
|
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",
|