@naturalcycles/nodejs-lib 13.25.0 → 13.26.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/dist/buffer/buffer.util.d.ts +0 -1
- package/dist/buffer/buffer.util.js +1 -2
- package/dist/csv/csvReader.js +2 -3
- package/dist/csv/csvWriter.js +3 -3
- package/dist/csv/transformToCSV.js +1 -2
- package/dist/diff/tableDiff.js +1 -2
- package/dist/fs/del.js +2 -3
- package/dist/fs/fs2.d.ts +0 -3
- package/dist/fs/json2env.js +7 -8
- package/dist/fs/kpy.js +2 -3
- package/dist/infra/process.util.js +3 -3
- package/dist/jwt/jwt.service.d.ts +0 -1
- package/dist/script/runScript.js +1 -2
- package/dist/secret/secrets-decrypt.util.d.ts +0 -1
- package/dist/secret/secrets-decrypt.util.js +1 -2
- package/dist/secret/secrets-encrypt.util.d.ts +0 -1
- package/dist/secret/secrets-encrypt.util.js +1 -2
- package/dist/security/crypto.util.d.ts +0 -1
- package/dist/security/crypto.util.js +7 -8
- package/dist/security/hash.util.d.ts +0 -2
- package/dist/security/hash.util.js +16 -17
- package/dist/security/id.util.js +4 -4
- package/dist/security/nanoid.js +3 -3
- package/dist/security/secret.util.js +8 -9
- package/dist/slack/slack.service.js +2 -2
- package/dist/stream/ndjson/ndjsonMap.js +1 -2
- package/dist/stream/ndjson/ndjsonStreamForEach.js +1 -2
- package/dist/stream/ndjson/transformJsonParse.d.ts +0 -1
- package/dist/stream/ndjson/transformJsonParse.js +2 -2
- package/dist/stream/ndjson/transformToNDJson.js +1 -2
- package/dist/stream/pipeline/pipeline.d.ts +0 -2
- package/dist/stream/pipeline/pipeline.js +3 -3
- package/dist/stream/progressLogger.js +3 -3
- package/dist/stream/readable/readableCreate.d.ts +0 -1
- package/dist/stream/readable/readableCreate.js +2 -3
- package/dist/stream/readable/readableForEach.js +2 -3
- package/dist/stream/readable/readableFromArray.d.ts +0 -1
- package/dist/stream/readable/readableFromArray.js +1 -2
- package/dist/stream/readable/readableToArray.js +1 -2
- package/dist/stream/stream.model.d.ts +0 -1
- package/dist/stream/stream.util.d.ts +0 -1
- package/dist/stream/stream.util.js +1 -2
- package/dist/stream/transform/transformChunk.js +1 -2
- package/dist/stream/transform/transformFilter.js +2 -3
- package/dist/stream/transform/transformLimit.d.ts +0 -1
- package/dist/stream/transform/transformLimit.js +2 -2
- package/dist/stream/transform/transformLogProgress.js +1 -2
- package/dist/stream/transform/transformMap.js +2 -3
- package/dist/stream/transform/transformMapSimple.js +1 -2
- package/dist/stream/transform/transformMapSync.js +2 -2
- package/dist/stream/transform/transformNoOp.js +1 -2
- package/dist/stream/transform/transformOffset.js +1 -2
- package/dist/stream/transform/transformSplit.d.ts +0 -1
- package/dist/stream/transform/transformSplit.js +2 -3
- package/dist/stream/transform/transformTap.js +1 -2
- package/dist/stream/transform/transformTee.d.ts +0 -1
- package/dist/stream/transform/transformTee.js +1 -2
- package/dist/stream/transform/transformToArray.js +1 -2
- package/dist/stream/transform/worker/transformMultiThreaded.js +1 -2
- package/dist/stream/writable/writableForEach.js +2 -3
- package/dist/stream/writable/writableFork.d.ts +0 -1
- package/dist/stream/writable/writableFork.js +1 -2
- package/dist/stream/writable/writableLimit.d.ts +0 -1
- package/dist/stream/writable/writableLimit.js +1 -2
- package/dist/stream/writable/writablePushToArray.js +1 -2
- package/dist/stream/writable/writableVoid.d.ts +0 -1
- package/dist/stream/writable/writableVoid.js +1 -2
- package/dist/string/inspect.d.ts +0 -1
- package/dist/string/inspect.js +2 -2
- package/dist/util/buildInfo.util.js +1 -2
- package/dist/util/env.util.js +2 -3
- package/dist/util/exec.util.d.ts +0 -1
- package/dist/util/exec.util.js +2 -3
- package/dist/util/git.util.js +11 -12
- package/dist/util/zip.util.d.ts +0 -2
- package/dist/util/zip.util.js +8 -9
- package/dist/validation/ajv/ajv.util.js +2 -3
- package/dist/validation/ajv/getAjv.js +1 -2
- package/dist/validation/joi/joi.shared.schemas.d.ts +0 -1
- package/dist/validation/joi/joi.shared.schemas.js +6 -5
- package/dist/validation/joi/joi.validation.util.js +5 -6
- package/dist/validation/joi/number.extensions.js +1 -2
- package/dist/validation/joi/string.extensions.js +1 -2
- package/package.json +1 -1
- package/src/validation/joi/joi.shared.schemas.ts +2 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports._chunkBuffer =
|
|
3
|
+
exports._chunkBuffer = _chunkBuffer;
|
|
4
4
|
/**
|
|
5
5
|
* Same as _chunk, but for Buffer.
|
|
6
6
|
*/
|
|
@@ -11,4 +11,3 @@ function _chunkBuffer(buf, size) {
|
|
|
11
11
|
}
|
|
12
12
|
return out;
|
|
13
13
|
}
|
|
14
|
-
exports._chunkBuffer = _chunkBuffer;
|
package/dist/csv/csvReader.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Inspired by: https://gist.github.com/Jezternz/c8e9fafc2c114e079829974e3764db75
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.
|
|
4
|
+
exports.csvStringParse = csvStringParse;
|
|
5
|
+
exports.csvStringToArray = csvStringToArray;
|
|
5
6
|
const js_lib_1 = require("@naturalcycles/js-lib");
|
|
6
7
|
// export class CSVReader {
|
|
7
8
|
// constructor (cfg: CSVReaderConfig) {
|
|
@@ -32,7 +33,6 @@ function csvStringParse(str, cfg = {}) {
|
|
|
32
33
|
}, {});
|
|
33
34
|
});
|
|
34
35
|
}
|
|
35
|
-
exports.csvStringParse = csvStringParse;
|
|
36
36
|
function csvStringToArray(str) {
|
|
37
37
|
const objPattern = new RegExp(String.raw `(,|\r?\n|\r|^)(?:"([^"]*(?:""[^"]*)*)"|([^,\r\n]*))`, 'gi');
|
|
38
38
|
let matches;
|
|
@@ -45,4 +45,3 @@ function csvStringToArray(str) {
|
|
|
45
45
|
}
|
|
46
46
|
return arr;
|
|
47
47
|
}
|
|
48
|
-
exports.csvStringToArray = csvStringToArray;
|
package/dist/csv/csvWriter.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Inspired by: https://github.com/ryu1kn/csv-writer/
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.
|
|
4
|
+
exports.CSVWriter = void 0;
|
|
5
|
+
exports.arrayToCSVString = arrayToCSVString;
|
|
6
|
+
exports.arrayToCSVColumns = arrayToCSVColumns;
|
|
5
7
|
const js_lib_1 = require("@naturalcycles/js-lib");
|
|
6
8
|
class CSVWriter {
|
|
7
9
|
constructor(cfg) {
|
|
@@ -45,7 +47,6 @@ function arrayToCSVString(arr, cfg = {}) {
|
|
|
45
47
|
const writer = new CSVWriter(cfg);
|
|
46
48
|
return writer.writeRows(arr);
|
|
47
49
|
}
|
|
48
|
-
exports.arrayToCSVString = arrayToCSVString;
|
|
49
50
|
/**
|
|
50
51
|
* Iterates over the whole array and notes all possible columns.
|
|
51
52
|
*/
|
|
@@ -54,4 +55,3 @@ function arrayToCSVColumns(arr) {
|
|
|
54
55
|
arr.forEach(row => Object.keys(row).forEach(col => cols.add(col)));
|
|
55
56
|
return [...cols];
|
|
56
57
|
}
|
|
57
|
-
exports.arrayToCSVColumns = arrayToCSVColumns;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.transformToCSV =
|
|
3
|
+
exports.transformToCSV = transformToCSV;
|
|
4
4
|
const node_stream_1 = require("node:stream");
|
|
5
5
|
const csvWriter_1 = require("./csvWriter");
|
|
6
6
|
/**
|
|
@@ -35,4 +35,3 @@ function transformToCSV(opt) {
|
|
|
35
35
|
},
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
|
-
exports.transformToCSV = transformToCSV;
|
package/dist/diff/tableDiff.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.tableDiff =
|
|
3
|
+
exports.tableDiff = tableDiff;
|
|
4
4
|
const js_lib_1 = require("@naturalcycles/js-lib");
|
|
5
5
|
/**
|
|
6
6
|
* Compares 2 objects, logs their differences via `console.table`.
|
|
@@ -29,4 +29,3 @@ function tableDiff(a, b, opt = {}) {
|
|
|
29
29
|
console.log('no_difference');
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
exports.tableDiff = tableDiff;
|
package/dist/fs/del.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.del = del;
|
|
4
|
+
exports.delSync = delSync;
|
|
4
5
|
const js_lib_1 = require("@naturalcycles/js-lib");
|
|
5
6
|
const colors_1 = require("../colors/colors");
|
|
6
7
|
const index_1 = require("../index");
|
|
@@ -68,7 +69,6 @@ async function del(_opt) {
|
|
|
68
69
|
console.log(`del deleted ${(0, colors_1.yellow)(filenames.length)} files and ${(0, colors_1.yellow)(deletedDirs.length)} dirs ${(0, colors_1.dimGrey)((0, js_lib_1._since)(started))}`);
|
|
69
70
|
}
|
|
70
71
|
}
|
|
71
|
-
exports.del = del;
|
|
72
72
|
function delSync(_opt) {
|
|
73
73
|
const started = Date.now();
|
|
74
74
|
// Convert DelSingleOption to DelOptions
|
|
@@ -121,7 +121,6 @@ function delSync(_opt) {
|
|
|
121
121
|
console.log(`del deleted ${(0, colors_1.yellow)(filenames.length)} files and ${(0, colors_1.yellow)(deletedDirs.length)} dirs ${(0, colors_1.dimGrey)((0, js_lib_1._since)(started))}`);
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
|
-
exports.delSync = delSync;
|
|
125
124
|
// Improved algorithm:
|
|
126
125
|
// 1. glob only files, expand dirs, delete
|
|
127
126
|
// 2. glob only dirs, expand, delete only empty!
|
package/dist/fs/fs2.d.ts
CHANGED
package/dist/fs/json2env.js
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.json2env = json2env;
|
|
4
|
+
exports.appendToBashEnv = appendToBashEnv;
|
|
5
|
+
exports.appendToGithubEnv = appendToGithubEnv;
|
|
6
|
+
exports.appendToGithubOutput = appendToGithubOutput;
|
|
7
|
+
exports.appendToGithubSummary = appendToGithubSummary;
|
|
8
|
+
exports.objectToShellExport = objectToShellExport;
|
|
9
|
+
exports.objectToGithubActionsEnv = objectToGithubActionsEnv;
|
|
4
10
|
const tslib_1 = require("tslib");
|
|
5
11
|
const node_fs_1 = tslib_1.__importDefault(require("node:fs"));
|
|
6
12
|
const colors_1 = require("../colors/colors");
|
|
@@ -50,7 +56,6 @@ function json2env(opt) {
|
|
|
50
56
|
appendToGithubOutput(json, prefix);
|
|
51
57
|
}
|
|
52
58
|
}
|
|
53
|
-
exports.json2env = json2env;
|
|
54
59
|
function appendToBashEnv(obj, prefix = '') {
|
|
55
60
|
const { BASH_ENV } = process.env;
|
|
56
61
|
if (BASH_ENV) {
|
|
@@ -59,7 +64,6 @@ function appendToBashEnv(obj, prefix = '') {
|
|
|
59
64
|
console.log(`BASH_ENV appended:\n${data}`);
|
|
60
65
|
}
|
|
61
66
|
}
|
|
62
|
-
exports.appendToBashEnv = appendToBashEnv;
|
|
63
67
|
function appendToGithubEnv(obj, prefix = '') {
|
|
64
68
|
const { GITHUB_ENV } = process.env;
|
|
65
69
|
if (GITHUB_ENV) {
|
|
@@ -68,7 +72,6 @@ function appendToGithubEnv(obj, prefix = '') {
|
|
|
68
72
|
console.log(`GITHUB_ENV appended:\n${data}`);
|
|
69
73
|
}
|
|
70
74
|
}
|
|
71
|
-
exports.appendToGithubEnv = appendToGithubEnv;
|
|
72
75
|
function appendToGithubOutput(obj, prefix = '') {
|
|
73
76
|
const { GITHUB_OUTPUT } = process.env;
|
|
74
77
|
if (GITHUB_OUTPUT) {
|
|
@@ -77,7 +80,6 @@ function appendToGithubOutput(obj, prefix = '') {
|
|
|
77
80
|
console.log(`GITHUB_OUTPUT appended:\n${data}`);
|
|
78
81
|
}
|
|
79
82
|
}
|
|
80
|
-
exports.appendToGithubOutput = appendToGithubOutput;
|
|
81
83
|
/**
|
|
82
84
|
* https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary
|
|
83
85
|
*/
|
|
@@ -89,7 +91,6 @@ function appendToGithubSummary(...lines) {
|
|
|
89
91
|
console.log(`GITHUB_STEP_SUMMARY appended:\n${str}`);
|
|
90
92
|
}
|
|
91
93
|
}
|
|
92
|
-
exports.appendToGithubSummary = appendToGithubSummary;
|
|
93
94
|
/**
|
|
94
95
|
* Turns Object with keys/values into a *.sh script that exports all keys as values.
|
|
95
96
|
*
|
|
@@ -116,7 +117,6 @@ function objectToShellExport(obj, prefix = '') {
|
|
|
116
117
|
.filter(Boolean)
|
|
117
118
|
.join('\n') + '\n'); // trailing \n is important
|
|
118
119
|
}
|
|
119
|
-
exports.objectToShellExport = objectToShellExport;
|
|
120
120
|
/**
|
|
121
121
|
* Turns Object with keys/values into a file of key-value pairs
|
|
122
122
|
*
|
|
@@ -145,4 +145,3 @@ function objectToGithubActionsEnv(obj, prefix = '') {
|
|
|
145
145
|
.filter(Boolean)
|
|
146
146
|
.join('\n') + '\n'); // trailing \n is important
|
|
147
147
|
}
|
|
148
|
-
exports.objectToGithubActionsEnv = objectToGithubActionsEnv;
|
package/dist/fs/kpy.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.kpy = kpy;
|
|
4
|
+
exports.kpySync = kpySync;
|
|
4
5
|
const tslib_1 = require("tslib");
|
|
5
6
|
const node_path_1 = tslib_1.__importDefault(require("node:path"));
|
|
6
7
|
const js_lib_1 = require("@naturalcycles/js-lib");
|
|
@@ -35,7 +36,6 @@ async function kpy(opt) {
|
|
|
35
36
|
}));
|
|
36
37
|
kpyLogResult(opt, filenames, started);
|
|
37
38
|
}
|
|
38
|
-
exports.kpy = kpy;
|
|
39
39
|
function kpySync(opt) {
|
|
40
40
|
const started = Date.now();
|
|
41
41
|
kpyPrepare(opt);
|
|
@@ -63,7 +63,6 @@ function kpySync(opt) {
|
|
|
63
63
|
});
|
|
64
64
|
kpyLogResult(opt, filenames, started);
|
|
65
65
|
}
|
|
66
|
-
exports.kpySync = kpySync;
|
|
67
66
|
function kpyPrepare(opt) {
|
|
68
67
|
// Default pattern
|
|
69
68
|
if (!opt.inputPatterns?.length)
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.processSharedUtil =
|
|
3
|
+
exports.processSharedUtil = void 0;
|
|
4
|
+
exports.memoryUsage = memoryUsage;
|
|
5
|
+
exports.memoryUsageFull = memoryUsageFull;
|
|
4
6
|
const tslib_1 = require("tslib");
|
|
5
7
|
const node_os_1 = tslib_1.__importDefault(require("node:os"));
|
|
6
8
|
const js_lib_1 = require("@naturalcycles/js-lib");
|
|
@@ -13,7 +15,6 @@ function memoryUsage() {
|
|
|
13
15
|
external: (0, js_lib_1._mb)(external),
|
|
14
16
|
};
|
|
15
17
|
}
|
|
16
|
-
exports.memoryUsage = memoryUsage;
|
|
17
18
|
function memoryUsageFull() {
|
|
18
19
|
const { rss, external, heapUsed, heapTotal } = process.memoryUsage();
|
|
19
20
|
const totalMem = node_os_1.default.totalmem();
|
|
@@ -28,7 +29,6 @@ function memoryUsageFull() {
|
|
|
28
29
|
usedMem: (0, js_lib_1._mb)(totalMem - freeMem),
|
|
29
30
|
};
|
|
30
31
|
}
|
|
31
|
-
exports.memoryUsageFull = memoryUsageFull;
|
|
32
32
|
class ProcessUtil {
|
|
33
33
|
startMemoryTimer(intervalMillis = 1000) {
|
|
34
34
|
console.log(memoryUsage());
|
package/dist/script/runScript.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.runScript =
|
|
3
|
+
exports.runScript = runScript;
|
|
4
4
|
const js_lib_1 = require("@naturalcycles/js-lib");
|
|
5
5
|
const inspect_1 = require("../string/inspect");
|
|
6
6
|
const { DEBUG_RUN_SCRIPT } = process.env;
|
|
@@ -58,4 +58,3 @@ function runScript(fn, opt = {}) {
|
|
|
58
58
|
}
|
|
59
59
|
})();
|
|
60
60
|
}
|
|
61
|
-
exports.runScript = runScript;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.secretsDecrypt =
|
|
3
|
+
exports.secretsDecrypt = secretsDecrypt;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const node_fs_1 = tslib_1.__importDefault(require("node:fs"));
|
|
6
6
|
const node_path_1 = tslib_1.__importDefault(require("node:path"));
|
|
@@ -43,4 +43,3 @@ function secretsDecrypt(dir, file, encKeyBuffer, del = false, jsonMode = false)
|
|
|
43
43
|
});
|
|
44
44
|
console.log(`decrypted ${(0, colors_1.yellow)(filenames.length)} files in ${(0, colors_1.dimGrey)(dir.join(' '))}`);
|
|
45
45
|
}
|
|
46
|
-
exports.secretsDecrypt = secretsDecrypt;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.secretsEncrypt =
|
|
3
|
+
exports.secretsEncrypt = secretsEncrypt;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const node_fs_1 = tslib_1.__importDefault(require("node:fs"));
|
|
6
6
|
const node_path_1 = tslib_1.__importDefault(require("node:path"));
|
|
@@ -41,4 +41,3 @@ function secretsEncrypt(pattern, file, encKeyBuffer, del = false, jsonMode = fal
|
|
|
41
41
|
});
|
|
42
42
|
console.log(`encrypted ${(0, colors_1.yellow)(filenames.length)} files in (${(0, colors_1.dimGrey)(pattern.join(' '))})`);
|
|
43
43
|
}
|
|
44
|
-
exports.secretsEncrypt = secretsEncrypt;
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.encryptRandomIVBuffer = encryptRandomIVBuffer;
|
|
4
|
+
exports.decryptRandomIVBuffer = decryptRandomIVBuffer;
|
|
5
|
+
exports.decryptObject = decryptObject;
|
|
6
|
+
exports.encryptObject = encryptObject;
|
|
7
|
+
exports.decryptString = decryptString;
|
|
8
|
+
exports.encryptString = encryptString;
|
|
9
|
+
exports.timingSafeStringEqual = timingSafeStringEqual;
|
|
4
10
|
const tslib_1 = require("tslib");
|
|
5
11
|
const node_crypto_1 = tslib_1.__importDefault(require("node:crypto"));
|
|
6
12
|
const js_lib_1 = require("@naturalcycles/js-lib");
|
|
@@ -17,7 +23,6 @@ function encryptRandomIVBuffer(input, secretKeyBuffer) {
|
|
|
17
23
|
const cipher = node_crypto_1.default.createCipheriv(algorithm, key, iv);
|
|
18
24
|
return Buffer.concat([iv, cipher.update(input), cipher.final()]);
|
|
19
25
|
}
|
|
20
|
-
exports.encryptRandomIVBuffer = encryptRandomIVBuffer;
|
|
21
26
|
/**
|
|
22
27
|
* Using aes-256-cbc.
|
|
23
28
|
*/
|
|
@@ -30,7 +35,6 @@ function decryptRandomIVBuffer(input, secretKeyBuffer) {
|
|
|
30
35
|
const decipher = node_crypto_1.default.createDecipheriv(algorithm, key, iv);
|
|
31
36
|
return Buffer.concat([decipher.update(payload), decipher.final()]);
|
|
32
37
|
}
|
|
33
|
-
exports.decryptRandomIVBuffer = decryptRandomIVBuffer;
|
|
34
38
|
/**
|
|
35
39
|
* Decrypts all object values (base64 strings).
|
|
36
40
|
* Returns object with decrypted values (utf8 strings).
|
|
@@ -44,7 +48,6 @@ function decryptObject(obj, secretKeyBuffer) {
|
|
|
44
48
|
});
|
|
45
49
|
return r;
|
|
46
50
|
}
|
|
47
|
-
exports.decryptObject = decryptObject;
|
|
48
51
|
/**
|
|
49
52
|
* Encrypts all object values (utf8 strings).
|
|
50
53
|
* Returns object with encrypted values (base64 strings).
|
|
@@ -58,7 +61,6 @@ function encryptObject(obj, secretKeyBuffer) {
|
|
|
58
61
|
});
|
|
59
62
|
return r;
|
|
60
63
|
}
|
|
61
|
-
exports.encryptObject = encryptObject;
|
|
62
64
|
/**
|
|
63
65
|
* Using aes-256-cbc.
|
|
64
66
|
*
|
|
@@ -70,7 +72,6 @@ function decryptString(str, secretKeyBuffer) {
|
|
|
70
72
|
const decipher = node_crypto_1.default.createDecipheriv(algorithm, key, iv);
|
|
71
73
|
return decipher.update(str, 'base64', 'utf8') + decipher.final('utf8');
|
|
72
74
|
}
|
|
73
|
-
exports.decryptString = decryptString;
|
|
74
75
|
/**
|
|
75
76
|
* Using aes-256-cbc.
|
|
76
77
|
*
|
|
@@ -82,7 +83,6 @@ function encryptString(str, secretKeyBuffer) {
|
|
|
82
83
|
const cipher = node_crypto_1.default.createCipheriv(algorithm, key, iv);
|
|
83
84
|
return cipher.update(str, 'utf8', 'base64') + cipher.final('base64');
|
|
84
85
|
}
|
|
85
|
-
exports.encryptString = encryptString;
|
|
86
86
|
function getCryptoParams(secretKeyBuffer) {
|
|
87
87
|
const key = (0, hash_util_1.sha256AsBuffer)(secretKeyBuffer);
|
|
88
88
|
const iv = (0, hash_util_1.md5AsBuffer)(Buffer.concat([secretKeyBuffer, key]));
|
|
@@ -105,4 +105,3 @@ function timingSafeStringEqual(s1, s2) {
|
|
|
105
105
|
return false;
|
|
106
106
|
return node_crypto_1.default.timingSafeEqual(Buffer.from(s1), Buffer.from(s2));
|
|
107
107
|
}
|
|
108
|
-
exports.timingSafeStringEqual = timingSafeStringEqual;
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
1
|
import { BinaryToTextEncoding } from 'node:crypto';
|
|
4
2
|
import type { Base64String, Base64UrlString } from '@naturalcycles/js-lib';
|
|
5
3
|
export declare function md5(s: string | Buffer, outputEncoding?: BinaryToTextEncoding): string;
|
|
@@ -1,24 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.md5 = md5;
|
|
4
|
+
exports.md5AsBuffer = md5AsBuffer;
|
|
5
|
+
exports.sha256 = sha256;
|
|
6
|
+
exports.sha256AsBuffer = sha256AsBuffer;
|
|
7
|
+
exports.hash = hash;
|
|
8
|
+
exports.hashAsBuffer = hashAsBuffer;
|
|
9
|
+
exports.base64 = base64;
|
|
10
|
+
exports.base64Url = base64Url;
|
|
11
|
+
exports.base64ToString = base64ToString;
|
|
12
|
+
exports.base64UrlToString = base64UrlToString;
|
|
13
|
+
exports.base64ToBuffer = base64ToBuffer;
|
|
14
|
+
exports.base64UrlToBuffer = base64UrlToBuffer;
|
|
15
|
+
exports.stringToBase64 = stringToBase64;
|
|
16
|
+
exports.stringToBase64Url = stringToBase64Url;
|
|
17
|
+
exports.bufferToBase64 = bufferToBase64;
|
|
18
|
+
exports.bufferToBase64Url = bufferToBase64Url;
|
|
4
19
|
const tslib_1 = require("tslib");
|
|
5
20
|
const node_crypto_1 = tslib_1.__importDefault(require("node:crypto"));
|
|
6
21
|
function md5(s, outputEncoding = 'hex') {
|
|
7
22
|
return hash(s, 'md5', outputEncoding);
|
|
8
23
|
}
|
|
9
|
-
exports.md5 = md5;
|
|
10
24
|
function md5AsBuffer(s) {
|
|
11
25
|
return hashAsBuffer(s, 'md5');
|
|
12
26
|
}
|
|
13
|
-
exports.md5AsBuffer = md5AsBuffer;
|
|
14
27
|
function sha256(s, outputEncoding = 'hex') {
|
|
15
28
|
return hash(s, 'sha256', outputEncoding);
|
|
16
29
|
}
|
|
17
|
-
exports.sha256 = sha256;
|
|
18
30
|
function sha256AsBuffer(s) {
|
|
19
31
|
return hashAsBuffer(s, 'sha256');
|
|
20
32
|
}
|
|
21
|
-
exports.sha256AsBuffer = sha256AsBuffer;
|
|
22
33
|
function hash(s, algorithm, outputEncoding = 'hex') {
|
|
23
34
|
// todo: cleanup after @types/node is updated
|
|
24
35
|
// https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V20.md#crypto-implement-cryptohash
|
|
@@ -28,7 +39,6 @@ function hash(s, algorithm, outputEncoding = 'hex') {
|
|
|
28
39
|
}
|
|
29
40
|
return node_crypto_1.default.createHash(algorithm).update(s).digest(outputEncoding);
|
|
30
41
|
}
|
|
31
|
-
exports.hash = hash;
|
|
32
42
|
function hashAsBuffer(s, algorithm) {
|
|
33
43
|
// todo: cleanup after @types/node is updated
|
|
34
44
|
// Node 20.12+
|
|
@@ -37,44 +47,33 @@ function hashAsBuffer(s, algorithm) {
|
|
|
37
47
|
}
|
|
38
48
|
return node_crypto_1.default.createHash(algorithm).update(s).digest();
|
|
39
49
|
}
|
|
40
|
-
exports.hashAsBuffer = hashAsBuffer;
|
|
41
50
|
function base64(s) {
|
|
42
51
|
return (typeof s === 'string' ? Buffer.from(s) : s).toString('base64');
|
|
43
52
|
}
|
|
44
|
-
exports.base64 = base64;
|
|
45
53
|
function base64Url(s) {
|
|
46
54
|
return (typeof s === 'string' ? Buffer.from(s) : s).toString('base64url');
|
|
47
55
|
}
|
|
48
|
-
exports.base64Url = base64Url;
|
|
49
56
|
function base64ToString(strBase64) {
|
|
50
57
|
return Buffer.from(strBase64, 'base64').toString('utf8');
|
|
51
58
|
}
|
|
52
|
-
exports.base64ToString = base64ToString;
|
|
53
59
|
function base64UrlToString(strBase64Url) {
|
|
54
60
|
return Buffer.from(strBase64Url, 'base64url').toString('utf8');
|
|
55
61
|
}
|
|
56
|
-
exports.base64UrlToString = base64UrlToString;
|
|
57
62
|
function base64ToBuffer(strBase64) {
|
|
58
63
|
return Buffer.from(strBase64, 'base64');
|
|
59
64
|
}
|
|
60
|
-
exports.base64ToBuffer = base64ToBuffer;
|
|
61
65
|
function base64UrlToBuffer(strBase64Url) {
|
|
62
66
|
return Buffer.from(strBase64Url, 'base64url');
|
|
63
67
|
}
|
|
64
|
-
exports.base64UrlToBuffer = base64UrlToBuffer;
|
|
65
68
|
function stringToBase64(s) {
|
|
66
69
|
return Buffer.from(s, 'utf8').toString('base64');
|
|
67
70
|
}
|
|
68
|
-
exports.stringToBase64 = stringToBase64;
|
|
69
71
|
function stringToBase64Url(s) {
|
|
70
72
|
return Buffer.from(s, 'utf8').toString('base64url');
|
|
71
73
|
}
|
|
72
|
-
exports.stringToBase64Url = stringToBase64Url;
|
|
73
74
|
function bufferToBase64(b) {
|
|
74
75
|
return b.toString('base64');
|
|
75
76
|
}
|
|
76
|
-
exports.bufferToBase64 = bufferToBase64;
|
|
77
77
|
function bufferToBase64Url(b) {
|
|
78
78
|
return b.toString('base64url');
|
|
79
79
|
}
|
|
80
|
-
exports.bufferToBase64Url = bufferToBase64Url;
|
package/dist/security/id.util.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.stringIdBase62 = void 0;
|
|
4
|
+
exports.stringId = stringId;
|
|
5
|
+
exports.stringIdBase64 = stringIdBase64;
|
|
6
|
+
exports.stringIdBase64Url = stringIdBase64Url;
|
|
4
7
|
const tslib_1 = require("tslib");
|
|
5
8
|
const node_crypto_1 = tslib_1.__importDefault(require("node:crypto"));
|
|
6
9
|
const nanoid_1 = require("./nanoid");
|
|
@@ -11,7 +14,6 @@ const nanoid_1 = require("./nanoid");
|
|
|
11
14
|
function stringId(length = 16, alphabet = nanoid_1.ALPHABET_ALPHANUMERIC_LOWERCASE) {
|
|
12
15
|
return (0, nanoid_1.nanoIdCustomAlphabet)(alphabet, length)();
|
|
13
16
|
}
|
|
14
|
-
exports.stringId = stringId;
|
|
15
17
|
/**
|
|
16
18
|
* Generate a string id of Base62 alphabet (same as "alphanumeric": A-Za-z0-9)
|
|
17
19
|
*
|
|
@@ -29,7 +31,6 @@ exports.stringIdBase62 = (0, nanoid_1.nanoIdCustomAlphabet)(nanoid_1.ALPHABET_AL
|
|
|
29
31
|
function stringIdBase64(size = 16) {
|
|
30
32
|
return node_crypto_1.default.randomBytes(size * 0.75).toString('base64');
|
|
31
33
|
}
|
|
32
|
-
exports.stringIdBase64 = stringIdBase64;
|
|
33
34
|
/**
|
|
34
35
|
* Generate a string id of Base64url alphabet: A-Za-z0-9-_
|
|
35
36
|
*
|
|
@@ -41,4 +42,3 @@ exports.stringIdBase64 = stringIdBase64;
|
|
|
41
42
|
function stringIdBase64Url(size = 16) {
|
|
42
43
|
return node_crypto_1.default.randomBytes(size * 0.75).toString('base64url');
|
|
43
44
|
}
|
|
44
|
-
exports.stringIdBase64Url = stringIdBase64Url;
|
package/dist/security/nanoid.js
CHANGED
|
@@ -6,7 +6,9 @@ https://github.com/ai/nanoid/
|
|
|
6
6
|
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.
|
|
9
|
+
exports.ALPHABET_BASE64_URL = exports.ALPHABET_BASE64 = exports.ALPHABET_ALPHANUMERIC = exports.ALPHABET_ALPHANUMERIC_UPPERCASE = exports.ALPHABET_ALPHANUMERIC_LOWERCASE = exports.ALPHABET_UPPERCASE = exports.ALPHABET_LOWERCASE = exports.ALPHABET_NUMBER = void 0;
|
|
10
|
+
exports.nanoIdCustomAlphabet = nanoIdCustomAlphabet;
|
|
11
|
+
exports.nanoid = nanoid;
|
|
10
12
|
/* eslint-disable */
|
|
11
13
|
const node_crypto_1 = require("node:crypto");
|
|
12
14
|
exports.ALPHABET_NUMBER = '0123456789';
|
|
@@ -77,7 +79,6 @@ function customRandom(alphabet, defaultSize, getRandom) {
|
|
|
77
79
|
function nanoIdCustomAlphabet(alphabet, size = 21) {
|
|
78
80
|
return customRandom(alphabet, size, random);
|
|
79
81
|
}
|
|
80
|
-
exports.nanoIdCustomAlphabet = nanoIdCustomAlphabet;
|
|
81
82
|
function nanoid(size = 21) {
|
|
82
83
|
// `-=` convert `size` to number to prevent `valueOf` abusing
|
|
83
84
|
fillPool((size -= 0));
|
|
@@ -93,4 +94,3 @@ function nanoid(size = 21) {
|
|
|
93
94
|
}
|
|
94
95
|
return id;
|
|
95
96
|
}
|
|
96
|
-
exports.nanoid = nanoid;
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.loadSecretsFromEnv = loadSecretsFromEnv;
|
|
4
|
+
exports.removeSecretsFromEnv = removeSecretsFromEnv;
|
|
5
|
+
exports.loadSecretsFromEncryptedJsonFile = loadSecretsFromEncryptedJsonFile;
|
|
6
|
+
exports.loadSecretsFromEncryptedJsonFileValues = loadSecretsFromEncryptedJsonFileValues;
|
|
7
|
+
exports.secret = secret;
|
|
8
|
+
exports.secretOptional = secretOptional;
|
|
9
|
+
exports.getSecretMap = getSecretMap;
|
|
10
|
+
exports.setSecretMap = setSecretMap;
|
|
4
11
|
const tslib_1 = require("tslib");
|
|
5
12
|
const node_fs_1 = tslib_1.__importDefault(require("node:fs"));
|
|
6
13
|
const js_lib_1 = require("@naturalcycles/js-lib");
|
|
@@ -26,7 +33,6 @@ function loadSecretsFromEnv() {
|
|
|
26
33
|
loaded = true;
|
|
27
34
|
console.log(`${Object.keys(secrets).length} secret(s) loaded from process.env: ${Object.keys(secrets).join(', ')}`);
|
|
28
35
|
}
|
|
29
|
-
exports.loadSecretsFromEnv = loadSecretsFromEnv;
|
|
30
36
|
/**
|
|
31
37
|
* Removes process.env.SECRET_*
|
|
32
38
|
*/
|
|
@@ -35,7 +41,6 @@ function removeSecretsFromEnv() {
|
|
|
35
41
|
.filter(k => k.toUpperCase().startsWith('SECRET_'))
|
|
36
42
|
.forEach(k => delete process.env[k]);
|
|
37
43
|
}
|
|
38
|
-
exports.removeSecretsFromEnv = removeSecretsFromEnv;
|
|
39
44
|
/**
|
|
40
45
|
* Does NOT delete previous secrets from secretMap.
|
|
41
46
|
*
|
|
@@ -62,7 +67,6 @@ function loadSecretsFromEncryptedJsonFile(filePath, secretEncryptionKey) {
|
|
|
62
67
|
.map(s => s.toUpperCase())
|
|
63
68
|
.join(', ')}`);
|
|
64
69
|
}
|
|
65
|
-
exports.loadSecretsFromEncryptedJsonFile = loadSecretsFromEncryptedJsonFile;
|
|
66
70
|
/**
|
|
67
71
|
* Whole file is NOT encrypted, but instead individual json values ARE encrypted..
|
|
68
72
|
* For whole-file encryption - use `loadSecretsFromEncryptedJsonFile`
|
|
@@ -80,7 +84,6 @@ function loadSecretsFromEncryptedJsonFileValues(filePath, secretEncryptionKey) {
|
|
|
80
84
|
.map(s => s.toUpperCase())
|
|
81
85
|
.join(', ')}`);
|
|
82
86
|
}
|
|
83
|
-
exports.loadSecretsFromEncryptedJsonFileValues = loadSecretsFromEncryptedJsonFileValues;
|
|
84
87
|
function secret(k, parseJson = false) {
|
|
85
88
|
const v = secretOptional(k, parseJson);
|
|
86
89
|
if (!v) {
|
|
@@ -88,7 +91,6 @@ function secret(k, parseJson = false) {
|
|
|
88
91
|
}
|
|
89
92
|
return v;
|
|
90
93
|
}
|
|
91
|
-
exports.secret = secret;
|
|
92
94
|
function secretOptional(k, parseJson = false) {
|
|
93
95
|
requireLoaded();
|
|
94
96
|
let v = secretMap[k.toUpperCase()];
|
|
@@ -99,12 +101,10 @@ function secretOptional(k, parseJson = false) {
|
|
|
99
101
|
}
|
|
100
102
|
return v;
|
|
101
103
|
}
|
|
102
|
-
exports.secretOptional = secretOptional;
|
|
103
104
|
function getSecretMap() {
|
|
104
105
|
requireLoaded();
|
|
105
106
|
return secretMap;
|
|
106
107
|
}
|
|
107
|
-
exports.getSecretMap = getSecretMap;
|
|
108
108
|
/**
|
|
109
109
|
* REPLACES secretMap with new map.
|
|
110
110
|
*/
|
|
@@ -115,7 +115,6 @@ function setSecretMap(map) {
|
|
|
115
115
|
.map(s => s.toUpperCase())
|
|
116
116
|
.join(', ')}`);
|
|
117
117
|
}
|
|
118
|
-
exports.setSecretMap = setSecretMap;
|
|
119
118
|
function requireLoaded() {
|
|
120
119
|
if (!loaded) {
|
|
121
120
|
throw new Error(`Secrets were not loaded! Call loadSecrets() before accessing secrets.`);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.SlackService = void 0;
|
|
4
|
+
exports.slackDefaultMessagePrefixHook = slackDefaultMessagePrefixHook;
|
|
4
5
|
const js_lib_1 = require("@naturalcycles/js-lib");
|
|
5
6
|
const __1 = require("..");
|
|
6
7
|
const GAE = !!process.env['GAE_INSTANCE'];
|
|
@@ -138,4 +139,3 @@ function slackDefaultMessagePrefixHook(msg) {
|
|
|
138
139
|
}
|
|
139
140
|
return tokens.filter(Boolean);
|
|
140
141
|
}
|
|
141
|
-
exports.slackDefaultMessagePrefixHook = slackDefaultMessagePrefixHook;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ndjsonMap =
|
|
3
|
+
exports.ndjsonMap = ndjsonMap;
|
|
4
4
|
const js_lib_1 = require("@naturalcycles/js-lib");
|
|
5
5
|
const __1 = require("../..");
|
|
6
6
|
/**
|
|
@@ -29,4 +29,3 @@ async function ndjsonMap(mapper, opt) {
|
|
|
29
29
|
...__1.fs2.createWriteStreamAsNDJSON(outputFilePath),
|
|
30
30
|
]);
|
|
31
31
|
}
|
|
32
|
-
exports.ndjsonMap = ndjsonMap;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ndjsonStreamForEach =
|
|
3
|
+
exports.ndjsonStreamForEach = ndjsonStreamForEach;
|
|
4
4
|
const js_lib_1 = require("@naturalcycles/js-lib");
|
|
5
5
|
const __1 = require("../..");
|
|
6
6
|
/**
|
|
@@ -18,4 +18,3 @@ async function ndjsonStreamForEach(mapper, opt) {
|
|
|
18
18
|
(0, __1.writableVoid)(),
|
|
19
19
|
]);
|
|
20
20
|
}
|
|
21
|
-
exports.ndjsonStreamForEach = ndjsonStreamForEach;
|