@mimik/configuration 5.0.10 → 5.0.12
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 +0 -2
- package/index.js +34 -29
- package/lib/common.js +9 -7
- package/package.json +14 -9
package/README.md
CHANGED
|
@@ -161,8 +161,6 @@ When `mongodb` is used the following environment variables are used for the conf
|
|
|
161
161
|
| MONGO_REPLICAT_SET | specifies the name of the replica set, if the mongod is a member of a replica set | | not mandatory
|
|
162
162
|
| MONGO_WAIT_QUEUE_MULTIPLE | a number that the driver multiples the maxPoolSize value to, to provide the maximum number of threads allowed to wait for a connection to become available from the pool | | no mandatory
|
|
163
163
|
| MONGO_WAIT_QUEUE_TIMEOUT | the maximum time in milliseconds that a thread can wait for a connection to become available | | not mandatory
|
|
164
|
-
| MONGO_KEEP_ALIVE | pall th kep the connection with the database alive | true |
|
|
165
|
-
| MONGO_KEEP_ALIVE_INITIAL_DELAY | is the number of milliseconds to wait before initiating keepAlive on the socket | 300000 | in milliseconds
|
|
166
164
|
| MONGO_SOCKET_TIMEOUT | The time in milliseconds to attempt a send or receive on a socket before the attempt times out | 20000 | in milliseconds
|
|
167
165
|
| MONGO_FAMILY | IP address family | 4 | 4 -> IPV4, 6 -> IPV6
|
|
168
166
|
| MONGO_SERVER_SELECTION_TIMEOUT | the MongoDB driver will try to find a server to send any given operation to, and keep retrying for serverSelectionTimeoutMS milliseconds | 30000 | in milliseconds
|
package/index.js
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
/* eslint no-process-env: "off" */
|
|
2
|
-
const
|
|
2
|
+
const includes = require('lodash.includes');
|
|
3
|
+
const isNaN = require('lodash.isnan');
|
|
4
|
+
const isNil = require('lodash.isnil');
|
|
5
|
+
const isString = require('lodash.isstring');
|
|
6
|
+
const isUndefined = require('lodash.isundefined');
|
|
7
|
+
const split = require('lodash.split');
|
|
8
|
+
const trim = require('lodash.trim');
|
|
3
9
|
const fs = require('fs');
|
|
4
10
|
const ip = require('ip');
|
|
5
11
|
const uuid = require('uuid');
|
|
@@ -56,8 +62,6 @@ const {
|
|
|
56
62
|
DEFAULT_MONGO_MAX_POOL_SIZE,
|
|
57
63
|
DEFAULT_MONGO_MIN_POOL_SIZE,
|
|
58
64
|
DEFAULT_MONGO_MAX_IDLE_TIME,
|
|
59
|
-
DEFAULT_MONGO_KEEP_ALIVE,
|
|
60
|
-
DEFAULT_MONGO_KEEP_ALIVE_INITIAL_DELAY,
|
|
61
65
|
DEFAULT_MONGO_SOCKET_TIMEOUT,
|
|
62
66
|
DEFAULT_MONGO_FAMILY,
|
|
63
67
|
DEFAULT_MONGO_SERVER_SELECTION_TIMEOUT,
|
|
@@ -94,6 +98,8 @@ const {
|
|
|
94
98
|
DEFAULT_INTERCEPT_ERROR,
|
|
95
99
|
DEFAULT_BITBUCKET_USERNAME,
|
|
96
100
|
DEFAULT_BITBUCKET_PASSWORD,
|
|
101
|
+
YES,
|
|
102
|
+
NO,
|
|
97
103
|
} = require('./lib/common');
|
|
98
104
|
|
|
99
105
|
let display = true;
|
|
@@ -108,8 +114,10 @@ const setupRedis = () => {
|
|
|
108
114
|
const reconnectTries = parseInt(process.env.REDIS_RECONNECT_TRIES, 10) || DEFAULT_REDIS_RECONNECT_TRIES;
|
|
109
115
|
const reconnectInterval = parseInt(process.env.REDIS_RECONNECT_INTERVAL, 10) || DEFAULT_REDIS_RECONNECT_INTERVAL;
|
|
110
116
|
let url = REDIS_BASE_URL;
|
|
117
|
+
let noAuthUrl = url;
|
|
111
118
|
if (username && password) url += `${username}:${password}@`;
|
|
112
119
|
url += domain;
|
|
120
|
+
noAuthUrl += domain;
|
|
113
121
|
|
|
114
122
|
const clusterConfig = {
|
|
115
123
|
set: process.env.CACHE_CLUSTER_SET || SET_OFF,
|
|
@@ -125,6 +133,7 @@ const setupRedis = () => {
|
|
|
125
133
|
validationCheck: parseInt(process.env.CACHE_VALIDATION_CHECK, 10) || DEFAULT_CACHE_VALIDATION_CHECK,
|
|
126
134
|
reconnectOffset: parseInt(process.env.CACHE_RECONNECTION_OFFSET, 10) || DEFAULT_CACHE_RECONNECTION_OFFSET,
|
|
127
135
|
url,
|
|
136
|
+
noAuthUrl,
|
|
128
137
|
cluster: clusterConfig,
|
|
129
138
|
options: {
|
|
130
139
|
socket: {
|
|
@@ -142,7 +151,7 @@ const setupRedis = () => {
|
|
|
142
151
|
}
|
|
143
152
|
return undefined;
|
|
144
153
|
},
|
|
145
|
-
disableOfflineQueue: (process.env.REDIS_DISABLE_OFFLINE_QUEUE ===
|
|
154
|
+
disableOfflineQueue: (process.env.REDIS_DISABLE_OFFLINE_QUEUE === YES) || DEFAULT_REDIS_DISABLE_OFFLINE_QUEUE,
|
|
146
155
|
},
|
|
147
156
|
maxMemory: process.env.REDIS_REQUEST_MAX_MEMORY || DEFAULT_REDIS_REQUEST_MAX_MEMORY,
|
|
148
157
|
maxMemoryPolicy: process.env.REDIS_REQUEST_MAX_MEMORY_POLICY || DEFAULT_REDIS_REQUEST_MAX_MEMORY_POLICY,
|
|
@@ -178,17 +187,17 @@ const setupDynamo = (dbOpts) => {
|
|
|
178
187
|
},
|
|
179
188
|
tableName: dbOpts.table,
|
|
180
189
|
};
|
|
181
|
-
if (!
|
|
182
|
-
if (!
|
|
190
|
+
if (!isNil(process.env.DYNAMODB_AWS_ACCESS_KEY_ID)) dbConfig.accessKeyId = process.env.DYNAMODB_AWS_ACCESS_KEY_ID;
|
|
191
|
+
if (!isNil(process.env.DYNAMODB_AWS_SECRET_ACCESS_KEY)) dbConfig.secretAccessKey = process.env.DYNAMODB_AWS_SECRET_ACCESS_KEY;
|
|
183
192
|
|
|
184
193
|
if (process.env.DYNAMO_SCHEMA_THROUGHPUT === 'ON_DEMAND') {
|
|
185
194
|
dbConfig.schemaThroughput = process.env.DYNAMO_SCHEMA_THROUGHPUT;
|
|
186
195
|
delete dbConfig.throughput;
|
|
187
196
|
}
|
|
188
|
-
else if (!
|
|
197
|
+
else if (!isNil(process.env.DYNAMO_SCHEMA_THROUGHPUT)) {
|
|
189
198
|
const throughput = parseInt(process.env.DYNAMO_SCHEMA_THROUGHPUT, 10);
|
|
190
199
|
|
|
191
|
-
if (
|
|
200
|
+
if (isNil(throughput) || isNaN(throughput)) dbConfig.schemaThroughput = DEFAULT_DYNAMO_THROUGHPUT;
|
|
192
201
|
else dbConfig.schemaThroughput = throughput;
|
|
193
202
|
}
|
|
194
203
|
return dbConfig;
|
|
@@ -203,9 +212,9 @@ const setupMongo = (dbOpts) => {
|
|
|
203
212
|
maxIdleTimeMS: parseInt(process.env.MONGO_MAX_IDLE_TIME, 10) || DEFAULT_MONGO_MAX_IDLE_TIME,
|
|
204
213
|
};
|
|
205
214
|
// string variables without default
|
|
206
|
-
if (process.env.MONGO_SSL ===
|
|
207
|
-
if (process.env.MONGO_SSL_VALIDATE ===
|
|
208
|
-
if (process.env.MONGO_SSL_ALLOW_INVALID_HOSTNAMES ===
|
|
215
|
+
if (process.env.MONGO_SSL === YES) stringOptions.ssl = true; // default value of mongo driver is false
|
|
216
|
+
if (process.env.MONGO_SSL_VALIDATE === NO) stringOptions.sslValidate = false; // default value of mongo driver is true, if ssl is true
|
|
217
|
+
if (process.env.MONGO_SSL_ALLOW_INVALID_HOSTNAMES === YES) stringOptions.allowInvalidHostnames = true;
|
|
209
218
|
// if (process.env.MONGO_SSL_CA) stringOptions.sslCA = process.env.MONGO_SSL_CA; // commented out for now as we're not using a pem file at the moment
|
|
210
219
|
if (process.env.MONGO_REPLICAT_SET) stringOptions.replicaSet = process.env.MONGO_REPLICAT_SET;
|
|
211
220
|
if (process.env.MONGO_AUTH_DATABASE) stringOptions.authSource = process.env.MONGO_AUTH_DATABASE;
|
|
@@ -223,7 +232,7 @@ const setupMongo = (dbOpts) => {
|
|
|
223
232
|
const user = process.env.DATABASE_USER || DEFAULT_DATABASE_USER;
|
|
224
233
|
const password = process.env.DATABASE_PASSWORD || DEFAULT_DATABASE_PASSWORD;
|
|
225
234
|
const qs = processStringOptions();
|
|
226
|
-
let url = (process.env.MONGO_USE_SRV ===
|
|
235
|
+
let url = (process.env.MONGO_USE_SRV === YES) ? MONGO_BASE_URL_SRV : MONGO_BASE_URL;
|
|
227
236
|
let noAuthUrl = url;
|
|
228
237
|
|
|
229
238
|
if (user && password) url = `${url}${user}:${password}@`;
|
|
@@ -248,8 +257,6 @@ const setupMongo = (dbOpts) => {
|
|
|
248
257
|
noAuthUrl,
|
|
249
258
|
options: {
|
|
250
259
|
family: parseInt(process.env.MONGO_FAMILY, 10) || DEFAULT_MONGO_FAMILY,
|
|
251
|
-
keepAlive: process.env.MONGO_KEEP_ALIVE || DEFAULT_MONGO_KEEP_ALIVE,
|
|
252
|
-
keepAliveInitialDelay: parseInt(process.env.MONGO_KEEP_ALIVE_INITIAL_DELAY, 10) || DEFAULT_MONGO_KEEP_ALIVE_INITIAL_DELAY,
|
|
253
260
|
socketTimeoutMS: parseInt(process.env.MONGO_SOCKET_TIMEOUT, 10) || DEFAULT_MONGO_SOCKET_TIMEOUT,
|
|
254
261
|
serverSelectionTimeoutMS: parseInt(process.env.MONGO_SERVER_SELECTION_TIMEOUT, 10) || DEFAULT_MONGO_SERVER_SELECTION_TIMEOUT,
|
|
255
262
|
heartbeatFrequencyMS: parseInt(process.env.MONGO_HEARTBEAT_FREQUENCY, 10) || DEFAULT_MONGO_HEARTBEAT_FREQUENCY,
|
|
@@ -261,7 +268,7 @@ const setupLocationProvider = () => {
|
|
|
261
268
|
const url = process.env.LOCATION_PROVIDER;
|
|
262
269
|
|
|
263
270
|
if (!url) return NO_PUBLIC_PROVIDER;
|
|
264
|
-
if (
|
|
271
|
+
if (includes(locParams, url)) return url;
|
|
265
272
|
const locationProvider = { url };
|
|
266
273
|
|
|
267
274
|
if (process.env.LOCATION_PROVIDER_KEY) locationProvider.key = process.env.LOCATION_PROVIDER_KEY;
|
|
@@ -294,8 +301,8 @@ const setupLog = () => {
|
|
|
294
301
|
maxSize: parseInt(process.env.S3_AWS_MAX_SIZE, 10) || DEFAULT_S3_AWS_MAX_SIZE,
|
|
295
302
|
maxEvents: parseInt(process.env.S3_AWS_MAX_EVENTS, 10) || DEFAULT_S3_AWS_MAX_EVENTS,
|
|
296
303
|
};
|
|
297
|
-
if (!
|
|
298
|
-
if (!
|
|
304
|
+
if (!isNil(process.env.S3_AWS_ACCESS_KEY_ID)) logInfo[AWS_S3].accessKeyId = process.env.S3_AWS_ACCESS_KEY_ID;
|
|
305
|
+
if (!isNil(process.env.S3_AWS_SECRET_ACCESS_KEY)) logInfo[AWS_S3].secretAccessKey = process.env.S3_AWS_SECRET_ACCESS_KEY;
|
|
299
306
|
}
|
|
300
307
|
return logInfo;
|
|
301
308
|
};
|
|
@@ -304,13 +311,13 @@ const setupTopic = (topicOpts) => {
|
|
|
304
311
|
const topicConfig = {
|
|
305
312
|
region: process.env.SNS_AWS_REGION || DEFAULT_AWS_REGION,
|
|
306
313
|
name: topicOpts.name,
|
|
307
|
-
isFifoTopic: process.env.SET_SNS_TOPIC_FIFO ===
|
|
314
|
+
isFifoTopic: process.env.SET_SNS_TOPIC_FIFO === YES,
|
|
308
315
|
contentBasedDeduplication: false,
|
|
309
316
|
};
|
|
310
317
|
|
|
311
|
-
if (topicConfig.isFifoTopic) topicConfig.contentBasedDeduplication = process.env.SET_SNS_CONTENT_DEDUPLICATION ===
|
|
312
|
-
if (!
|
|
313
|
-
if (!
|
|
318
|
+
if (topicConfig.isFifoTopic) topicConfig.contentBasedDeduplication = process.env.SET_SNS_CONTENT_DEDUPLICATION === YES;
|
|
319
|
+
if (!isNil(process.env.SNS_AWS_ACCESS_KEY_ID)) topicConfig.accessKeyId = process.env.SNS_AWS_ACCESS_KEY_ID;
|
|
320
|
+
if (!isNil(process.env.SNS_AWS_SECRET_ACCESS_KEY)) topicConfig.secretAccessKey = process.env.SNS_AWS_SECRET_ACCESS_KEY;
|
|
314
321
|
|
|
315
322
|
return topicConfig;
|
|
316
323
|
};
|
|
@@ -328,8 +335,8 @@ const setupEncryption = (encryptionOpts) => {
|
|
|
328
335
|
encryptionConfig.region = process.env.MASTER_KEY_AWS_REGION || DEFAULT_AWS_REGION;
|
|
329
336
|
encryptionConfig.masterKeyARN = process.env.MASTER_KEY_ARN;
|
|
330
337
|
|
|
331
|
-
if (!
|
|
332
|
-
if (!
|
|
338
|
+
if (!isNil(process.env.ENCRYPTION_ACCESS_KEY_ID)) encryptionConfig.aws.accessKeyId = process.env.ENCRYPTION_ACCESS_KEY_ID;
|
|
339
|
+
if (!isNil(process.env.ENCRYPTION_SECRET_ACCESS_KEY)) encryptionConfig.aws.secretAccessKey = process.env.ENCRYPTION_SECRET_ACCESS_KEY;
|
|
333
340
|
}
|
|
334
341
|
else encryptionConfig.localMasterKey = process.env.LOCAL_MASTER_KEY;
|
|
335
342
|
|
|
@@ -362,7 +369,7 @@ const checkConfig = (config) => {
|
|
|
362
369
|
if (typeof node[prop] === 'object' && node[prop]) {
|
|
363
370
|
traverseNodeSync(node[prop], `${path}.${prop}`);
|
|
364
371
|
}
|
|
365
|
-
else if (
|
|
372
|
+
else if (isUndefined(node[prop])) errors.push({ reason: 'missing', value: `${path}.${prop}` });
|
|
366
373
|
});
|
|
367
374
|
}
|
|
368
375
|
|
|
@@ -392,7 +399,7 @@ const checkConfig = (config) => {
|
|
|
392
399
|
* | NODE_ENV | environnment of the microservice |
|
|
393
400
|
*/
|
|
394
401
|
const isProd = () => {
|
|
395
|
-
if (
|
|
402
|
+
if (isString(process.env.NODE_ENV)) return includes(PRODUCTIONS, process.env.NODE_ENV.toLowerCase());
|
|
396
403
|
return false;
|
|
397
404
|
};
|
|
398
405
|
|
|
@@ -412,7 +419,7 @@ const configuration = {
|
|
|
412
419
|
customerCodeSep: process.env.CUSTOMER_CODE ? CUSTOMER_CODE_SEP : '',
|
|
413
420
|
securitySet: process.env.SERVER_SECURITY_SET || DEFAULT_SERVER_SECURITY_SET,
|
|
414
421
|
isMSTSet,
|
|
415
|
-
port: process.env.SERVER_PORT,
|
|
422
|
+
port: parseInt(process.env.SERVER_PORT, 10),
|
|
416
423
|
interceptError: process.env.INTERCEPT_ERROR || DEFAULT_INTERCEPT_ERROR,
|
|
417
424
|
ip: {
|
|
418
425
|
local: process.env.SERVER_LOCAL_IPV4,
|
|
@@ -437,7 +444,7 @@ const configuration = {
|
|
|
437
444
|
key: process.env.OAUTH_GENERIC_KEY || NO_GENERIC,
|
|
438
445
|
audience: process.env.OAUTH_GENERIC_AUDIENCE || NO_GENERIC,
|
|
439
446
|
},
|
|
440
|
-
apiKeys: process.env.API_KEYS ?
|
|
447
|
+
apiKeys: process.env.API_KEYS ? split(trim(process.env.API_KEYS), /\s*,\s*/) : [],
|
|
441
448
|
},
|
|
442
449
|
cluster: {
|
|
443
450
|
management: process.env.CLUSTER_MANAGEMENT || DEFAULT_CLUSTER_MANAGEMENT,
|
|
@@ -624,8 +631,6 @@ configuration.locationProvider = setupLocationProvider();
|
|
|
624
631
|
* | MONGO_REPLICAT_SET | specifies the name of the replica set, if the mongod is a member of a replica set | | not mandatory
|
|
625
632
|
* | MONGO_WAIT_QUEUE_MULTIPLE | a number that the driver multiples the maxPoolSize value to, to provide the maximum number of threads allowed to wait for a connection to become available from the pool | | no mandatory
|
|
626
633
|
* | MONGO_WAIT_QUEUE_TIMEOUT | the maximum time in milliseconds that a thread can wait for a connection to become available | | not mandatory
|
|
627
|
-
* | MONGO_KEEP_ALIVE | pall th kep the connection with the database alive | true |
|
|
628
|
-
* | MONGO_KEEP_ALIVE_INITIAL_DELAY | is the number of milliseconds to wait before initiating keepAlive on the socket | 300000 | in milliseconds
|
|
629
634
|
* | MONGO_SOCKET_TIMEOUT | The time in milliseconds to attempt a send or receive on a socket before the attempt times out | 20000 | in milliseconds
|
|
630
635
|
* | MONGO_FAMILY | IP address family | 4 | 4 -> IPV4, 6 -> IPV6
|
|
631
636
|
* | MONGO_SERVER_SELECTION_TIMEOUT | the MongoDB driver will try to find a server to send any given operation to, and keep retrying for serverSelectionTimeoutMS milliseconds | 30000 | in milliseconds
|
package/lib/common.js
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
const YES = 'yes';
|
|
2
|
+
const NO = 'no';
|
|
3
|
+
const LOCAL = 'local';
|
|
4
|
+
|
|
1
5
|
const SUMOLOGIC = 'sumologic';
|
|
2
6
|
const AWS_S3 = 'awsS3';
|
|
3
7
|
const ALL = 'all';
|
|
@@ -15,7 +19,7 @@ const SWAGGER_SEP = '_';
|
|
|
15
19
|
const CUSTOMER_CODE_SEP = '__';
|
|
16
20
|
const PRODUCTIONS = ['prod', 'production'];
|
|
17
21
|
|
|
18
|
-
const DEFAULT_ENV =
|
|
22
|
+
const DEFAULT_ENV = LOCAL;
|
|
19
23
|
const DEFAULT_LOCATION_PROVIDER = NO_PUBLIC_PROVIDER;
|
|
20
24
|
const DEFAULT_CLOUD_PROVIDER = 'noCloud';
|
|
21
25
|
const DEFAULT_CUSTOMER_CODE = '';
|
|
@@ -46,8 +50,6 @@ const DEFAULT_DYNAMO_THROUGHPUT = 1;
|
|
|
46
50
|
const DEFAULT_MONGO_MAX_POOL_SIZE = 10;
|
|
47
51
|
const DEFAULT_MONGO_MIN_POOL_SIZE = 0;
|
|
48
52
|
const DEFAULT_MONGO_MAX_IDLE_TIME = 30000; // in ms
|
|
49
|
-
const DEFAULT_MONGO_KEEP_ALIVE = true;
|
|
50
|
-
const DEFAULT_MONGO_KEEP_ALIVE_INITIAL_DELAY = 300000; // in ms
|
|
51
53
|
const DEFAULT_MONGO_SOCKET_TIMEOUT = 20000; // in ms
|
|
52
54
|
const DEFAULT_MONGO_FAMILY = 4; // 4 -> ipv4, 6 -> ipv6
|
|
53
55
|
const DEFAULT_MONGO_SERVER_SELECTION_TIMEOUT = 30000; // in ms
|
|
@@ -61,12 +63,12 @@ const DEFAULT_DATABASE_RECONNECTION_OFFSET = 5; // in seconds
|
|
|
61
63
|
const DEFAULT_DATABASE_VALIDATION_CHECK = 1000; // in ms
|
|
62
64
|
|
|
63
65
|
const DEFAULT_ENCRYPTION_SET = SET_OFF;
|
|
64
|
-
const DEFAULT_KMS_PROVIDER =
|
|
66
|
+
const DEFAULT_KMS_PROVIDER = LOCAL;
|
|
65
67
|
|
|
66
68
|
const DEFAULT_LOG_LEVEL = 'debug';
|
|
67
69
|
const DEFAULT_FILTER_FILE = NOT_SET;
|
|
68
70
|
const DEFAULT_EXIT_DELAY = 2000; // in ms
|
|
69
|
-
const DEFAULT_NO_STACK =
|
|
71
|
+
const DEFAULT_NO_STACK = YES;
|
|
70
72
|
|
|
71
73
|
const DEFAULT_USER_DEFINITIONS_FILE = NOT_SET;
|
|
72
74
|
|
|
@@ -102,6 +104,8 @@ module.exports = {
|
|
|
102
104
|
ALL,
|
|
103
105
|
SET_ON,
|
|
104
106
|
SET_OFF,
|
|
107
|
+
YES,
|
|
108
|
+
NO,
|
|
105
109
|
CUSTOMER_CODE_SEP,
|
|
106
110
|
NO_PUBLIC_PROVIDER,
|
|
107
111
|
NO_GENERIC,
|
|
@@ -138,8 +142,6 @@ module.exports = {
|
|
|
138
142
|
DEFAULT_MONGO_MAX_POOL_SIZE,
|
|
139
143
|
DEFAULT_MONGO_MIN_POOL_SIZE,
|
|
140
144
|
DEFAULT_MONGO_MAX_IDLE_TIME,
|
|
141
|
-
DEFAULT_MONGO_KEEP_ALIVE,
|
|
142
|
-
DEFAULT_MONGO_KEEP_ALIVE_INITIAL_DELAY,
|
|
143
145
|
DEFAULT_MONGO_SOCKET_TIMEOUT,
|
|
144
146
|
DEFAULT_MONGO_FAMILY,
|
|
145
147
|
DEFAULT_MONGO_SERVER_SELECTION_TIMEOUT,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mimik/configuration",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.12",
|
|
4
4
|
"description": "Common configuration for mimik services",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -9,8 +9,7 @@
|
|
|
9
9
|
"test": "echo \"Error: no test specified\" && exit 0",
|
|
10
10
|
"test-ci": "echo \"Error: no test specified\" && exit 0",
|
|
11
11
|
"prepublishOnly": "npm run docs && npm run lint && npm run test-ci",
|
|
12
|
-
"commit-ready": "npm run docs && npm run lint && npm run test-ci"
|
|
13
|
-
"prepare": "husky install"
|
|
12
|
+
"commit-ready": "npm run docs && npm run lint && npm run test-ci"
|
|
14
13
|
},
|
|
15
14
|
"husky": {
|
|
16
15
|
"hooks": {
|
|
@@ -33,20 +32,26 @@
|
|
|
33
32
|
"@mimik/request-helper": "^1.7.10",
|
|
34
33
|
"@mimik/sumologic-winston-logger": "^1.6.20",
|
|
35
34
|
"@mimik/user-filters": "^1.3.7",
|
|
36
|
-
"ip": "2.0.
|
|
37
|
-
"lodash": "4.
|
|
35
|
+
"ip": "2.0.1",
|
|
36
|
+
"lodash.includes": "4.3.0",
|
|
37
|
+
"lodash.isnan": "3.0.2",
|
|
38
|
+
"lodash.isnil": "4.0.0",
|
|
39
|
+
"lodash.isstring": "4.0.1",
|
|
40
|
+
"lodash.isundefined": "3.0.1",
|
|
41
|
+
"lodash.split": "4.4.2",
|
|
42
|
+
"lodash.trim": "4.5.1",
|
|
38
43
|
"uuid": "9.0.1"
|
|
39
44
|
},
|
|
40
45
|
"devDependencies": {
|
|
41
46
|
"@mimik/eslint-plugin-dependencies": "^2.4.6",
|
|
42
47
|
"@mimik/eslint-plugin-document-env": "^1.0.6",
|
|
43
|
-
"eslint": "8.
|
|
48
|
+
"eslint": "8.57.0",
|
|
44
49
|
"eslint-config-airbnb": "19.0.4",
|
|
45
50
|
"eslint-plugin-import": "2.29.1",
|
|
46
51
|
"eslint-plugin-jsx-a11y": "6.8.0",
|
|
47
|
-
"eslint-plugin-react": "7.
|
|
52
|
+
"eslint-plugin-react": "7.34.0",
|
|
48
53
|
"eslint-plugin-react-hooks": "4.6.0",
|
|
49
|
-
"husky": "
|
|
50
|
-
"jsdoc-to-markdown": "8.0.
|
|
54
|
+
"husky": "9.0.11",
|
|
55
|
+
"jsdoc-to-markdown": "8.0.1"
|
|
51
56
|
}
|
|
52
57
|
}
|