Compare View

switch
from
...
to
 
Commits (7)

Changes

Showing 6 changed files Side-by-side Diff

... ... @@ -4,8 +4,16 @@ All notable changes to this project will be documented in this file. Dates are d
4 4  
5 5 Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
6 6  
  7 +#### [v1.45.7](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.45.6...v1.45.7)
  8 +
  9 +- Bump tektrans-logger 1.2.4 to 1.2.5 [`25e6190`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/25e6190f8718c46dd1ffbc96b1df7188557f4fff)
  10 +- Add config-save on api-server [`4a7ed5b`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/4a7ed5bd6b8d31c41a98369a72289530376d1bdf)
  11 +- Change api-server.router-config.save using config-save [`c1e6950`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/c1e6950b52c7a2dc31a67ff7e5c84071c00ee169)
  12 +
7 13 #### [v1.45.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.45.5...v1.45.6)
8 14  
  15 +> 16 March 2022
  16 +
9 17 - Touch matrix.systemd_notified on invoking sd-notify [`7616bf2`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/7616bf2596787222ad693968c61a6889f5813f97)
10 18  
11 19 #### [v1.45.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.45.4...v1.45.5)
api-server/config-save.js
... ... @@ -0,0 +1,76 @@
  1 +const MODULE_NAME = 'KOMODO-SDK.API-SERVER.CONFIG-SAVE';
  2 +
  3 +const fs = require('fs');
  4 +const locks = require('locks');
  5 +const moment = require('moment');
  6 +const logger = require('tektrans-logger');
  7 +const config = require('../config');
  8 +const matrix = require('../matrix');
  9 +
  10 +if (!fs.existsSync('config-backup')) fs.mkdirSync('config-backup');
  11 +
  12 +const mutex = locks.createMutex();
  13 +
  14 +const backup = async (xid) => {
  15 + try {
  16 + const backupFilename = `config-backup/config_${moment().format('YYYYMMDD_HHmmss.SS')}.json`;
  17 + await fs.promises.copyFile('config.json', backupFilename);
  18 + logger.verbose(`${MODULE_NAME} 88213811: Backup saved`, {
  19 + xid,
  20 + backupFilename,
  21 + });
  22 +
  23 + return backupFilename;
  24 + } catch (e) {
  25 + const newE = new Error(`${MODULE_NAME} 0257A553: Exception on backup`);
  26 + newE.code = 'E_BACKUP_CONFIG';
  27 +
  28 + logger.warn(newE.message, {
  29 + xid,
  30 + eCode: e.code,
  31 + eMessage: e.message || e,
  32 + });
  33 +
  34 + throw newE;
  35 + }
  36 +};
  37 +
  38 +module.exports = async (xid) => {
  39 + if (!matrix.config_is_dirty) {
  40 + logger.verbose(`${MODULE_NAME} 4B263CB4: No need to save because config is not dirty`, { xid });
  41 + return;
  42 + }
  43 +
  44 + await new Promise((resolve) => {
  45 + mutex.lock(() => {
  46 + resolve();
  47 + });
  48 + });
  49 +
  50 + try {
  51 + const backupFilename = await backup(xid);
  52 +
  53 + await fs.promises.writeFile(
  54 + 'config.json',
  55 + `${JSON.stringify(config, null, 2)}\n`,
  56 + { mode: 0o640 },
  57 + );
  58 +
  59 + matrix.config_is_dirty = false;
  60 +
  61 + logger.verbose(`${MODULE_NAME} DE655EEF: Config saved`, { xid, backupFilename });
  62 + } catch (e) {
  63 + const newE = new Error(`${MODULE_NAME} CD9C1BE1: Exception on saving config file`);
  64 + newE.code = 'E_SAVE_CONFIG';
  65 +
  66 + logger.warn(newE.message, {
  67 + xid,
  68 + eCode: e.code,
  69 + eMessage: e.message || e,
  70 + });
  71 +
  72 + throw newE;
  73 + } finally {
  74 + mutex.unlock();
  75 + }
  76 +};
api-server/router-config.js
  1 +const MODULE_NAME = 'KOMODO-SDK.API-SERVER.ROUTER-CONFIG';
  2 +
1 3 const fs = require('fs');
2 4 const express = require('express');
3 5 const bodyParser = require('body-parser');
4 6 const jsonQuery = require('json-query');
5 7 const dot = require('dot-object');
6   -const copyFile = require('fs-copy-file');
7   -const moment = require('moment');
  8 +const logger = require('tektrans-logger');
8 9  
9 10 const config = require('../config');
10 11 const matrix = require('../matrix');
  12 +const configSave = require('./config-save');
11 13  
12 14 const router = express.Router();
13 15 module.exports = router;
... ... @@ -57,34 +59,30 @@ function delConfigElement(req, res) {
57 59 });
58 60 }
59 61  
60   -function saveConfig(req, res) {
61   - copyFile('config.json', `config-backup/config_${moment().format('YYYYMMDD_HHmmss.SS')}.json`, (err) => {
62   - if (err) {
63   - res.json({
64   - method: '/config/save',
65   - error: err.toString(),
66   - });
67   - return;
68   - }
69   -
70   - fs.writeFile('config.json', JSON.stringify(config, null, 2), (errWriteFile) => {
71   - if (errWriteFile) {
72   - res.json({
73   - method: '/config/save',
74   - error: errWriteFile.toString(),
75   - });
76   -
77   - return;
78   - }
79   -
80   - matrix.config_is_dirty = false;
81   -
82   - res.json({
83   - method: '/config/save',
84   - error: null,
85   - });
  62 +async function saveConfig(req, res) {
  63 + const { xid } = res.locals;
  64 + try {
  65 + await configSave(xid);
  66 +
  67 + res.json({
  68 + method: '/config/save',
  69 + error: null,
86 70 });
87   - });
  71 + } catch (e) {
  72 + logger.warn(`${MODULE_NAME} 22E7FCA2: Exception on saving`, {
  73 + xid,
  74 + eCode: e.code,
  75 + eMessage: e.message || e,
  76 + });
  77 +
  78 + res.json({
  79 + method: '/config/save',
  80 + error: [
  81 + e.code || 'UNKNOWN',
  82 + e.message || 'ERROR',
  83 + ].join(' - '),
  84 + });
  85 + }
88 86 }
89 87  
90 88 function isDirty(req, res) {
api-server/router-locations.js
1   -"use strict";
2   -
3 1 const express = require('express');
4 2 const naturalSort = require('node-natural-sort');
5 3 const unique = require('array-unique');
... ... @@ -14,39 +12,42 @@ function pageIndex(req, res) {
14 12 res.json({
15 13 method: '/locations',
16 14 error: null,
17   - result: config.locations
  15 + result: config.locations,
18 16 });
19 17 }
20 18  
21 19 function pageAdd(req, res) {
22   - let locations = req.params.locations || req.query.locations
  20 + let locations = req.params.locations || req.query.locations;
23 21  
24 22 if (!locations) {
25 23 res.json({
26 24 method: '/locations/add',
27 25 error: true,
28   - error_msg: 'Usage: /locations/add/<NEW_LOCATION>'
  26 + error_msg: 'Usage: /locations/add/<NEW_LOCATION>',
29 27 });
30 28  
31 29 return;
32 30 }
33 31  
34 32 if (typeof locations === 'string') {
35   - locations = locations.trim().split(/[\s,]+/).filter((el) => { return el.toUpperCase() !== 'ALL'; });
  33 + locations = locations
  34 + .trim()
  35 + .split(/[\s,]+/)
  36 + .filter((loc) => typeof loc === 'string')
  37 + .map((loc) => loc.trim().toUpperCase())
  38 + .filter((loc) => loc && (loc !== 'ALL'));
36 39 }
37 40  
38 41 const locationsCount = locations.length;
39   - for (let i=0; i<locationsCount; i++) {
  42 + for (let i = 0; i < locationsCount; i += 1) {
40 43 const location = locations[i];
41   - if (!location.trim()) {
42   - continue;
43   - }
44 44  
45 45 if (!config.locations) config.locations = [];
46   - config.locations.push(location.trim().toUpperCase());
  46 + config.locations.push(location);
47 47 }
48 48  
49   - config.locations.map(function(x) { return x.toUpperCase(); });
  49 + // config.locations.map((x) => x.toUpperCase());
  50 +
50 51 unique(config.locations);
51 52 config.locations.sort(naturalSort());
52 53 matrix.config_is_dirty = true;
... ... @@ -55,17 +56,17 @@ function pageAdd(req, res) {
55 56 method: '/locations/add',
56 57 error: null,
57 58 new_location: locations,
58   - locations: config.locations
59   - })
  59 + locations: config.locations,
  60 + });
60 61 }
61 62  
62 63 function pageDel(req, res) {
63   - let locations = req.params.locations || req.query.locations
  64 + let locations = req.params.locations || req.query.locations;
64 65 if (!locations) {
65 66 res.json({
66 67 method: '/locations/del',
67 68 error: true,
68   - error_msg: 'Usage: /locations/del/<LOCATION_TO_DELETE> or /locations/del?locations=<LOCATION_TO_DELETE>'
  69 + error_msg: 'Usage: /locations/del/<LOCATION_TO_DELETE> or /locations/del?locations=<LOCATION_TO_DELETE>',
69 70 });
70 71  
71 72 return;
... ... @@ -75,14 +76,15 @@ function pageDel(req, res) {
75 76 locations = locations.trim().split(/[\s,]+/);
76 77 }
77 78  
78   - config.locations.map(function(x) { return x.toUpperCase(); });
  79 + // config.locations.map((x) => x.toUpperCase());
79 80 const locationsCount = locations.length;
80   - for (let i=0; i<locationsCount; i++) {
  81 +
  82 + for (let i = 0; i < locationsCount; i += 1) {
81 83 const location = locations[i].toUpperCase();
82 84 const idx = config.locations.indexOf(location);
83 85 if (idx >= 0) {
84 86 matrix.config_is_dirty = true;
85   - config.locations.splice(idx, 1)
  87 + config.locations.splice(idx, 1);
86 88 }
87 89 }
88 90  
... ... @@ -90,8 +92,8 @@ function pageDel(req, res) {
90 92 method: '/locations/del',
91 93 error: null,
92 94 locations_to_delete: locations,
93   - locations: config.locations
94   - })
  95 + locations: config.locations,
  96 + });
95 97 }
96 98  
97 99 router.get('/', pageIndex);
1 1 {
2 2 "name": "komodo-sdk",
3   - "version": "1.45.6",
  3 + "version": "1.45.7",
4 4 "lockfileVersion": 2,
5 5 "requires": true,
6 6 "packages": {
7 7 "": {
8 8 "name": "komodo-sdk",
9   - "version": "1.45.6",
  9 + "version": "1.45.7",
10 10 "license": "ISC",
11 11 "dependencies": {
12 12 "array-unique": "^0.3.2",
... ... @@ -18,9 +18,10 @@
18 18 "fs-copy-file": "^2.1.2",
19 19 "json-query": "^2.2.2",
20 20 "json-stringify-pretty-compact": "^3.0.0",
  21 + "locks": "^0.2.2",
21 22 "lru-cache": "^4.1.1",
22 23 "macaddress": "^0.2.9",
23   - "moment": "^2.24.0",
  24 + "moment": "^2.29.4",
24 25 "node-machine-id": "^1.1.10",
25 26 "node-natural-sort": "^0.8.6",
26 27 "numeral": "^2.0.6",
... ... @@ -28,13 +29,12 @@
28 29 "pkginfo": "^0.4.1",
29 30 "redis": "^3.1.2",
30 31 "request": "^2.88.2",
31   - "sd-notify": "*",
32 32 "sha1": "^1.1.1",
33 33 "simple-git": "^1.80.1",
34 34 "stack-trace": "0.0.10",
35 35 "strftime": "^0.10.0",
36 36 "string-natural-compare": "^2.0.2",
37   - "tektrans-logger": "^1.2.4",
  37 + "tektrans-logger": "^1.2.5",
38 38 "uniqid": "^4.1.1",
39 39 "url-join": "^4.0.1",
40 40 "uuid": "^3.4.0"
... ... @@ -379,9 +379,9 @@
379 379 }
380 380 },
381 381 "node_modules/async": {
382   - "version": "3.2.1",
383   - "resolved": "https://registry.npmjs.org/async/-/async-3.2.1.tgz",
384   - "integrity": "sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg=="
  382 + "version": "3.2.4",
  383 + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
  384 + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
385 385 },
386 386 "node_modules/asynckit": {
387 387 "version": "0.4.0",
... ... @@ -1503,11 +1503,11 @@
1503 1503 }
1504 1504 },
1505 1505 "node_modules/file-stream-rotator": {
1506   - "version": "0.5.7",
1507   - "resolved": "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.5.7.tgz",
1508   - "integrity": "sha512-VYb3HZ/GiAGUCrfeakO8Mp54YGswNUHvL7P09WQcXAJNSj3iQ5QraYSp3cIn1MUyw6uzfgN/EFOarCNa4JvUHQ==",
  1506 + "version": "0.6.1",
  1507 + "resolved": "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.6.1.tgz",
  1508 + "integrity": "sha512-u+dBid4PvZw17PmDeRcNOtCP9CCK/9lRN2w+r1xIS7yOL9JFrIBKTvrYsxT4P0pGtThYTn++QS5ChHaUov3+zQ==",
1509 1509 "dependencies": {
1510   - "moment": "^2.11.2"
  1510 + "moment": "^2.29.1"
1511 1511 }
1512 1512 },
1513 1513 "node_modules/file-uri-to-path": {
... ... @@ -2266,6 +2266,11 @@
2266 2266 "node": ">=4"
2267 2267 }
2268 2268 },
  2269 + "node_modules/locks": {
  2270 + "version": "0.2.2",
  2271 + "resolved": "https://registry.npmjs.org/locks/-/locks-0.2.2.tgz",
  2272 + "integrity": "sha1-JZkz0TJ8uvD9NmL4//3jaAnYTO0="
  2273 + },
2269 2274 "node_modules/lodash": {
2270 2275 "version": "4.17.21",
2271 2276 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
... ... @@ -2377,9 +2382,9 @@
2377 2382 "dev": true
2378 2383 },
2379 2384 "node_modules/moment": {
2380   - "version": "2.24.0",
2381   - "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
2382   - "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==",
  2385 + "version": "2.29.4",
  2386 + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
  2387 + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==",
2383 2388 "engines": {
2384 2389 "node": "*"
2385 2390 }
... ... @@ -3340,14 +3345,14 @@
3340 3345 }
3341 3346 },
3342 3347 "node_modules/tektrans-logger": {
3343   - "version": "1.2.4",
3344   - "resolved": "https://registry.npmjs.org/tektrans-logger/-/tektrans-logger-1.2.4.tgz",
3345   - "integrity": "sha512-NBX6yJ0sQU8+omv00UjgRnCThx1W3vJItDfE5XLbvZHZjeegxzqqzsUnPH6MvYUVjg1l5+UPDBsNGCGcfjR+kQ==",
  3348 + "version": "1.2.5",
  3349 + "resolved": "https://registry.npmjs.org/tektrans-logger/-/tektrans-logger-1.2.5.tgz",
  3350 + "integrity": "sha512-i3o6Q1TTHpppDSJ0Yzj76NXVeUw2EuC2SVYhe263jVk2O77OnRC8fAEJzT4Fq+Yd4MoMa+azn5NqfyZnjgiAQw==",
3346 3351 "dependencies": {
3347 3352 "@codibre/winston-redis": "^3.1.1",
3348 3353 "mkdirp": "^1.0.4",
3349   - "winston": "^3.3.3",
3350   - "winston-daily-rotate-file": "^4.5.5"
  3354 + "winston": "^3.8.2",
  3355 + "winston-daily-rotate-file": "^4.7.1"
3351 3356 }
3352 3357 },
3353 3358 "node_modules/tektrans-logger/node_modules/mkdirp": {
... ... @@ -3651,30 +3656,32 @@
3651 3656 }
3652 3657 },
3653 3658 "node_modules/winston": {
3654   - "version": "3.3.3",
3655   - "resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz",
3656   - "integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==",
  3659 + "version": "3.8.2",
  3660 + "resolved": "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz",
  3661 + "integrity": "sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==",
3657 3662 "dependencies": {
  3663 + "@colors/colors": "1.5.0",
3658 3664 "@dabh/diagnostics": "^2.0.2",
3659   - "async": "^3.1.0",
  3665 + "async": "^3.2.3",
3660 3666 "is-stream": "^2.0.0",
3661   - "logform": "^2.2.0",
  3667 + "logform": "^2.4.0",
3662 3668 "one-time": "^1.0.0",
3663 3669 "readable-stream": "^3.4.0",
  3670 + "safe-stable-stringify": "^2.3.1",
3664 3671 "stack-trace": "0.0.x",
3665 3672 "triple-beam": "^1.3.0",
3666   - "winston-transport": "^4.4.0"
  3673 + "winston-transport": "^4.5.0"
3667 3674 },
3668 3675 "engines": {
3669   - "node": ">= 6.4.0"
  3676 + "node": ">= 12.0.0"
3670 3677 }
3671 3678 },
3672 3679 "node_modules/winston-daily-rotate-file": {
3673   - "version": "4.5.5",
3674   - "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-4.5.5.tgz",
3675   - "integrity": "sha512-ds0WahIjiDhKCiMXmY799pDBW+58ByqIBtUcsqr4oDoXrAI3Zn+hbgFdUxzMfqA93OG0mPLYVMiotqTgE/WeWQ==",
  3680 + "version": "4.7.1",
  3681 + "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-4.7.1.tgz",
  3682 + "integrity": "sha512-7LGPiYGBPNyGHLn9z33i96zx/bd71pjBn9tqQzO3I4Tayv94WPmBNwKC7CO1wPHdP9uvu+Md/1nr6VSH9h0iaA==",
3676 3683 "dependencies": {
3677   - "file-stream-rotator": "^0.5.7",
  3684 + "file-stream-rotator": "^0.6.1",
3678 3685 "object-hash": "^2.0.1",
3679 3686 "triple-beam": "^1.3.0",
3680 3687 "winston-transport": "^4.4.0"
... ... @@ -3996,9 +4003,9 @@
3996 4003 "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
3997 4004 },
3998 4005 "async": {
3999   - "version": "3.2.1",
4000   - "resolved": "https://registry.npmjs.org/async/-/async-3.2.1.tgz",
4001   - "integrity": "sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg=="
  4006 + "version": "3.2.4",
  4007 + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
  4008 + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
4002 4009 },
4003 4010 "asynckit": {
4004 4011 "version": "0.4.0",
... ... @@ -4898,11 +4905,11 @@
4898 4905 }
4899 4906 },
4900 4907 "file-stream-rotator": {
4901   - "version": "0.5.7",
4902   - "resolved": "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.5.7.tgz",
4903   - "integrity": "sha512-VYb3HZ/GiAGUCrfeakO8Mp54YGswNUHvL7P09WQcXAJNSj3iQ5QraYSp3cIn1MUyw6uzfgN/EFOarCNa4JvUHQ==",
  4908 + "version": "0.6.1",
  4909 + "resolved": "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.6.1.tgz",
  4910 + "integrity": "sha512-u+dBid4PvZw17PmDeRcNOtCP9CCK/9lRN2w+r1xIS7yOL9JFrIBKTvrYsxT4P0pGtThYTn++QS5ChHaUov3+zQ==",
4904 4911 "requires": {
4905   - "moment": "^2.11.2"
  4912 + "moment": "^2.29.1"
4906 4913 }
4907 4914 },
4908 4915 "file-uri-to-path": {
... ... @@ -5457,6 +5464,11 @@
5457 5464 "path-exists": "^3.0.0"
5458 5465 }
5459 5466 },
  5467 + "locks": {
  5468 + "version": "0.2.2",
  5469 + "resolved": "https://registry.npmjs.org/locks/-/locks-0.2.2.tgz",
  5470 + "integrity": "sha1-JZkz0TJ8uvD9NmL4//3jaAnYTO0="
  5471 + },
5460 5472 "lodash": {
5461 5473 "version": "4.17.21",
5462 5474 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
... ... @@ -5549,9 +5561,9 @@
5549 5561 "dev": true
5550 5562 },
5551 5563 "moment": {
5552   - "version": "2.24.0",
5553   - "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
5554   - "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="
  5564 + "version": "2.29.4",
  5565 + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
  5566 + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w=="
5555 5567 },
5556 5568 "ms": {
5557 5569 "version": "2.0.0",
... ... @@ -6241,14 +6253,14 @@
6241 6253 "dev": true
6242 6254 },
6243 6255 "tektrans-logger": {
6244   - "version": "1.2.4",
6245   - "resolved": "https://registry.npmjs.org/tektrans-logger/-/tektrans-logger-1.2.4.tgz",
6246   - "integrity": "sha512-NBX6yJ0sQU8+omv00UjgRnCThx1W3vJItDfE5XLbvZHZjeegxzqqzsUnPH6MvYUVjg1l5+UPDBsNGCGcfjR+kQ==",
  6256 + "version": "1.2.5",
  6257 + "resolved": "https://registry.npmjs.org/tektrans-logger/-/tektrans-logger-1.2.5.tgz",
  6258 + "integrity": "sha512-i3o6Q1TTHpppDSJ0Yzj76NXVeUw2EuC2SVYhe263jVk2O77OnRC8fAEJzT4Fq+Yd4MoMa+azn5NqfyZnjgiAQw==",
6247 6259 "requires": {
6248 6260 "@codibre/winston-redis": "^3.1.1",
6249 6261 "mkdirp": "^1.0.4",
6250   - "winston": "^3.3.3",
6251   - "winston-daily-rotate-file": "^4.5.5"
  6262 + "winston": "^3.8.2",
  6263 + "winston-daily-rotate-file": "^4.7.1"
6252 6264 },
6253 6265 "dependencies": {
6254 6266 "mkdirp": {
... ... @@ -6486,27 +6498,29 @@
6486 6498 }
6487 6499 },
6488 6500 "winston": {
6489   - "version": "3.3.3",
6490   - "resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz",
6491   - "integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==",
  6501 + "version": "3.8.2",
  6502 + "resolved": "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz",
  6503 + "integrity": "sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==",
6492 6504 "requires": {
  6505 + "@colors/colors": "1.5.0",
6493 6506 "@dabh/diagnostics": "^2.0.2",
6494   - "async": "^3.1.0",
  6507 + "async": "^3.2.3",
6495 6508 "is-stream": "^2.0.0",
6496   - "logform": "^2.2.0",
  6509 + "logform": "^2.4.0",
6497 6510 "one-time": "^1.0.0",
6498 6511 "readable-stream": "^3.4.0",
  6512 + "safe-stable-stringify": "^2.3.1",
6499 6513 "stack-trace": "0.0.x",
6500 6514 "triple-beam": "^1.3.0",
6501   - "winston-transport": "^4.4.0"
  6515 + "winston-transport": "^4.5.0"
6502 6516 }
6503 6517 },
6504 6518 "winston-daily-rotate-file": {
6505   - "version": "4.5.5",
6506   - "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-4.5.5.tgz",
6507   - "integrity": "sha512-ds0WahIjiDhKCiMXmY799pDBW+58ByqIBtUcsqr4oDoXrAI3Zn+hbgFdUxzMfqA93OG0mPLYVMiotqTgE/WeWQ==",
  6519 + "version": "4.7.1",
  6520 + "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-4.7.1.tgz",
  6521 + "integrity": "sha512-7LGPiYGBPNyGHLn9z33i96zx/bd71pjBn9tqQzO3I4Tayv94WPmBNwKC7CO1wPHdP9uvu+Md/1nr6VSH9h0iaA==",
6508 6522 "requires": {
6509   - "file-stream-rotator": "^0.5.7",
  6523 + "file-stream-rotator": "^0.6.1",
6510 6524 "object-hash": "^2.0.1",
6511 6525 "triple-beam": "^1.3.0",
6512 6526 "winston-transport": "^4.4.0"
1 1 {
2 2 "name": "komodo-sdk",
3   - "version": "1.45.6",
  3 + "version": "1.45.7",
4 4 "description": "SDK for Komodo",
5 5 "main": "index.js",
6 6 "scripts": {
... ... @@ -29,9 +29,10 @@
29 29 "fs-copy-file": "^2.1.2",
30 30 "json-query": "^2.2.2",
31 31 "json-stringify-pretty-compact": "^3.0.0",
  32 + "locks": "^0.2.2",
32 33 "lru-cache": "^4.1.1",
33 34 "macaddress": "^0.2.9",
34   - "moment": "^2.24.0",
  35 + "moment": "^2.29.4",
35 36 "node-machine-id": "^1.1.10",
36 37 "node-natural-sort": "^0.8.6",
37 38 "numeral": "^2.0.6",
... ... @@ -44,7 +45,7 @@
44 45 "stack-trace": "0.0.10",
45 46 "strftime": "^0.10.0",
46 47 "string-natural-compare": "^2.0.2",
47   - "tektrans-logger": "^1.2.4",
  48 + "tektrans-logger": "^1.2.5",
48 49 "uniqid": "^4.1.1",
49 50 "url-join": "^4.0.1",
50 51 "uuid": "^3.4.0"