@rapidrest/core 1.14.0 → 1.15.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/lib/AlertUtils.js +18 -19
- package/dist/lib/AlertUtils.js.map +1 -1
- package/dist/lib/ClassLoader.js +11 -0
- package/dist/lib/ClassLoader.js.map +1 -1
- package/dist/lib/FileUtils.js +19 -21
- package/dist/lib/FileUtils.js.map +1 -1
- package/dist/lib/JWTUtils.js +112 -42
- package/dist/lib/JWTUtils.js.map +1 -1
- package/dist/lib/Logger.js +7 -4
- package/dist/lib/Logger.js.map +1 -1
- package/dist/lib/MessagingUtils.js +8 -1
- package/dist/lib/MessagingUtils.js.map +1 -1
- package/dist/lib/NotificationsUtils.js +37 -3
- package/dist/lib/NotificationsUtils.js.map +1 -1
- package/dist/lib/OASUtils.js +22 -4
- package/dist/lib/OASUtils.js.map +1 -1
- package/dist/lib/ObjectFactory.js +27 -16
- package/dist/lib/ObjectFactory.js.map +1 -1
- package/dist/lib/ObjectUtils.js +34 -6
- package/dist/lib/ObjectUtils.js.map +1 -1
- package/dist/lib/StringUtils.js +11 -4
- package/dist/lib/StringUtils.js.map +1 -1
- package/dist/lib/TelemetryUtils.js +13 -3
- package/dist/lib/TelemetryUtils.js.map +1 -1
- package/dist/lib/UserUtils.js +1 -1
- package/dist/lib/UserUtils.js.map +1 -1
- package/dist/lib/ValidationUtils.js +6 -1
- package/dist/lib/ValidationUtils.js.map +1 -1
- package/dist/lib/index.js +1 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/threads/ThreadPool.js +77 -13
- package/dist/lib/threads/ThreadPool.js.map +1 -1
- package/dist/types/FileUtils.d.ts +4 -1
- package/dist/types/JWTUtils.d.ts +25 -0
- package/dist/types/MessagingUtils.d.ts +2 -0
- package/dist/types/NotificationsUtils.d.ts +8 -0
- package/dist/types/ObjectUtils.d.ts +10 -0
- package/dist/types/TelemetryUtils.d.ts +9 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/threads/ThreadPool.d.ts +4 -1
- package/package.json +1 -1
package/dist/lib/AlertUtils.js
CHANGED
|
@@ -58,7 +58,7 @@ export class AlertUtils {
|
|
|
58
58
|
if (data.source) {
|
|
59
59
|
data.source = data.source.substring(0, MAX_CHARS_SOURCE);
|
|
60
60
|
}
|
|
61
|
-
const url = `${this.serviceUrl}/${id}/close`;
|
|
61
|
+
const url = `${this.serviceUrl}/${encodeURIComponent(id)}/close`;
|
|
62
62
|
const response = await axios.post(url, data, {
|
|
63
63
|
headers: {
|
|
64
64
|
Authorization: this.auth,
|
|
@@ -67,8 +67,8 @@ export class AlertUtils {
|
|
|
67
67
|
return response.status >= 200 && response.status < 300;
|
|
68
68
|
}
|
|
69
69
|
catch (err) {
|
|
70
|
-
this.logger
|
|
71
|
-
this.logger
|
|
70
|
+
this.logger?.error("Failed to close alert with id " + id);
|
|
71
|
+
this.logger?.error(err.message);
|
|
72
72
|
return false;
|
|
73
73
|
}
|
|
74
74
|
}
|
|
@@ -79,7 +79,7 @@ export class AlertUtils {
|
|
|
79
79
|
*/
|
|
80
80
|
async get(id) {
|
|
81
81
|
try {
|
|
82
|
-
const url = `${this.serviceUrl}/${id}`;
|
|
82
|
+
const url = `${this.serviceUrl}/${encodeURIComponent(id)}`;
|
|
83
83
|
const response = await axios.get(url, {
|
|
84
84
|
headers: {
|
|
85
85
|
Authorization: this.auth,
|
|
@@ -92,8 +92,8 @@ export class AlertUtils {
|
|
|
92
92
|
: /* v8 ignore next */ null;
|
|
93
93
|
}
|
|
94
94
|
catch (err) {
|
|
95
|
-
this.logger
|
|
96
|
-
this.logger
|
|
95
|
+
this.logger?.error("Failed to retrieve alert with id " + id);
|
|
96
|
+
this.logger?.error(err.message);
|
|
97
97
|
return null;
|
|
98
98
|
}
|
|
99
99
|
}
|
|
@@ -152,20 +152,19 @@ export class AlertUtils {
|
|
|
152
152
|
let count = 0;
|
|
153
153
|
while (!id && count < MAX_ATTEMPTS) {
|
|
154
154
|
try {
|
|
155
|
-
const url = `${this.serviceUrl}/requests/${requestId}`;
|
|
155
|
+
const url = `${this.serviceUrl}/requests/${encodeURIComponent(requestId)}`;
|
|
156
156
|
const response = await axios.get(url, {
|
|
157
157
|
headers: {
|
|
158
158
|
Authorization: this.auth,
|
|
159
159
|
}
|
|
160
160
|
});
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
}
|
|
161
|
+
if (response.data.success && response.data.alertId) {
|
|
162
|
+
id = response.data.alertId;
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
// Request accepted but not finished processing yet. Wait a second before retrying instead
|
|
166
|
+
// of hot-looping.
|
|
167
|
+
await sleep(1000);
|
|
169
168
|
}
|
|
170
169
|
}
|
|
171
170
|
catch (err) {
|
|
@@ -221,14 +220,14 @@ export class AlertUtils {
|
|
|
221
220
|
filename: attachment.filename,
|
|
222
221
|
knownLength: attachment.size
|
|
223
222
|
});
|
|
224
|
-
let url = `${this.serviceUrl}/${id}/attachments`;
|
|
223
|
+
let url = `${this.serviceUrl}/${encodeURIComponent(id)}/attachments`;
|
|
225
224
|
if (indexFile) {
|
|
226
|
-
url += "?indexFile=" + indexFile;
|
|
225
|
+
url += "?indexFile=" + encodeURIComponent(indexFile);
|
|
227
226
|
}
|
|
228
227
|
const response = await axios.post(url, form, {
|
|
229
228
|
headers: {
|
|
230
|
-
|
|
231
|
-
|
|
229
|
+
...form.getHeaders(),
|
|
230
|
+
Authorization: this.auth
|
|
232
231
|
}
|
|
233
232
|
});
|
|
234
233
|
return response.status >= 200 && response.status < 300;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlertUtils.js","sourceRoot":"","sources":["../../src/AlertUtils.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,kDAAkD;AAClD,+EAA+E;AAC/E,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,QAAQ,MAAM,WAAW,CAAC;AAEjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,YAAY,GAAW,EAAE,CAAC;AAChC,MAAM,eAAe,GAAW,GAAG,CAAC;AACpC,MAAM,qBAAqB,GAAW,KAAK,CAAC;AAC5C,MAAM,gBAAgB,GAAW,GAAG,CAAC;AACrC,MAAM,iBAAiB,GAAW,GAAG,CAAC;AACtC,MAAM,cAAc,GAAW,KAAK,CAAC;AACrC,MAAM,gBAAgB,GAAW,GAAG,CAAC;AACrC,MAAM,cAAc,GAAW,EAAE,CAAC;AAClC,MAAM,QAAQ,GAAW,EAAE,CAAC;AAE5B;;GAEG;AACH,MAAM,CAAN,IAAY,aAWX;AAXD,WAAY,aAAa;IACrB,0FAA0F;IAC1F,gCAAe,CAAA;IACf,kGAAkG;IAClG,8BAAa,CAAA;IACb,gGAAgG;IAChG,iCAAgB,CAAA;IAChB,gHAAgH;IAChH,+BAAc,CAAA;IACd,6GAA6G;IAC7G,8BAAa,CAAA;AACjB,CAAC,EAXW,aAAa,KAAb,aAAa,QAWxB;AA6ED;;;GAGG;AACH,MAAM,OAAO,UAAU;IAQnB;;;OAGG;IACH,YAAY,OAA0B;QAClC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,KAAK,CAAC,EAAU,EAAE,OAAmB,EAAE;QAChD,IAAI,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;YAC7D,CAAC;YAED,MAAM,GAAG,GAAW,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"AlertUtils.js","sourceRoot":"","sources":["../../src/AlertUtils.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/ClassLoader.js
CHANGED
|
@@ -130,6 +130,17 @@ export class ClassLoader {
|
|
|
130
130
|
let relpath = path.relative(this.rootDir, fqp);
|
|
131
131
|
let fullpath = path.resolve(path.join(this.rootDir, relpath, file.name));
|
|
132
132
|
let pkg = relpath.replace(sepRegex, ".");
|
|
133
|
+
// `fs.Dirent.isDirectory()`/extension matching below reflect the directory entry itself, not
|
|
134
|
+
// what it points to. Without resolving symlinks here, a symlink placed inside the scanned tree
|
|
135
|
+
// could point at an arbitrary file or directory outside rootDir and still be recursed into or
|
|
136
|
+
// dynamically imported below, defeating the containment check performed on `dir` above.
|
|
137
|
+
if (file.isSymbolicLink()) {
|
|
138
|
+
const realpath = await fs.promises.realpath(fullpath);
|
|
139
|
+
const relReal = path.relative(this.rootDir, realpath);
|
|
140
|
+
if (relReal !== "" && (relReal.startsWith("..") || path.isAbsolute(relReal))) {
|
|
141
|
+
throw new Error(`Symlink "${fullpath}" escapes the allowed root directory "${this.rootDir}".`);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
133
144
|
if (file.isDirectory()) {
|
|
134
145
|
let subdir = path.join(dir, file.name);
|
|
135
146
|
await this.load(subdir);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClassLoader.js","sourceRoot":"","sources":["../../src/ClassLoader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ClassLoader.js","sourceRoot":"","sources":["../../src/ClassLoader.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/FileUtils.js
CHANGED
|
@@ -79,21 +79,11 @@ export class FileUtils {
|
|
|
79
79
|
if (!fs.existsSync(srcPathFull)) {
|
|
80
80
|
throw new Error("File does not exist: " + srcPathFull);
|
|
81
81
|
}
|
|
82
|
-
// Make sure the path leading to the final destination exists
|
|
83
|
-
let outDirPath = path.dirname(outPath);
|
|
84
|
-
if (!fs.existsSync(outDirPath)) {
|
|
85
|
-
await mkdirp(outDirPath);
|
|
86
|
-
}
|
|
87
82
|
let template = fs.readFileSync(srcPathFull, "utf-8");
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
await FileUtils.writeFile(srcPath, outPathFinal, output, overwrite, rootDir);
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
throw new Error("Failed to read file: " + srcPathFull);
|
|
96
|
-
}
|
|
83
|
+
let output = StringUtils.findAndReplace(template, variables);
|
|
84
|
+
let outPathFinal = path.resolve(StringUtils.findAndReplace(outPath, variables));
|
|
85
|
+
logger.info("Writing: " + outPathFinal);
|
|
86
|
+
await FileUtils.writeFile(srcPath, outPathFinal, output, overwrite, rootDir);
|
|
97
87
|
}
|
|
98
88
|
/**
|
|
99
89
|
* Generates a copy of the source file at the desired output destination using binary copy mode.
|
|
@@ -103,8 +93,11 @@ export class FileUtils {
|
|
|
103
93
|
* @param {Map<string,string>} variables The map of variable names to values to swap. Applies to outPath only.
|
|
104
94
|
* @param {string} rootDir Optional. When provided, all resolved source and destination paths must be contained
|
|
105
95
|
* within this directory, otherwise an error is thrown.
|
|
96
|
+
* @param {boolean} overwrite Set to `true` to overwrite an existing file at the destination. Default is `false`,
|
|
97
|
+
* matching the behavior of `writeFile`/`copyFile`. Appended after `rootDir` to preserve the existing positional
|
|
98
|
+
* call signature.
|
|
106
99
|
*/
|
|
107
|
-
static async copyBinaryFile(srcPath, outPath, variables = {}, rootDir) {
|
|
100
|
+
static async copyBinaryFile(srcPath, outPath, variables = {}, rootDir, overwrite = false) {
|
|
108
101
|
let srcPathFull = path.resolve(srcPath);
|
|
109
102
|
if (rootDir) {
|
|
110
103
|
FileUtils.assertContained(rootDir, srcPathFull);
|
|
@@ -112,15 +105,20 @@ export class FileUtils {
|
|
|
112
105
|
if (!fs.existsSync(srcPathFull)) {
|
|
113
106
|
throw new Error("File does not exist: " + srcPathFull);
|
|
114
107
|
}
|
|
115
|
-
// Make sure the path leading to the final destination exists
|
|
116
|
-
let outDirPath = path.resolve(path.dirname(outPath));
|
|
117
|
-
if (!fs.existsSync(outDirPath)) {
|
|
118
|
-
await mkdirp(outDirPath);
|
|
119
|
-
}
|
|
120
108
|
let outPathFinal = path.resolve(StringUtils.findAndReplace(outPath, variables));
|
|
121
109
|
if (rootDir) {
|
|
122
110
|
FileUtils.assertContained(rootDir, outPathFinal);
|
|
123
111
|
}
|
|
112
|
+
if (fs.existsSync(outPathFinal) && !overwrite) {
|
|
113
|
+
throw new Error(`File already exists at "${outPathFinal}". Pass overwrite=true to replace it.`);
|
|
114
|
+
}
|
|
115
|
+
// Make sure the path leading to the final (template-substituted) destination exists. Must be derived from
|
|
116
|
+
// `outPathFinal`, not the raw `outPath`, otherwise the created directory can differ from the one actually
|
|
117
|
+
// written to whenever `outPath`'s directory itself contains template variables.
|
|
118
|
+
let outDirPath = path.dirname(outPathFinal);
|
|
119
|
+
if (!fs.existsSync(outDirPath)) {
|
|
120
|
+
await mkdirp(outDirPath);
|
|
121
|
+
}
|
|
124
122
|
fs.copyFileSync(srcPathFull, outPathFinal);
|
|
125
123
|
}
|
|
126
124
|
/**
|
|
@@ -165,7 +163,7 @@ export class FileUtils {
|
|
|
165
163
|
await FileUtils.copyDirectory(path.join(templatePath, file.name), destPath, vars, excludeFilters, binaryFilters, force, rootDir);
|
|
166
164
|
}
|
|
167
165
|
else if (binaryFilters.indexOf(extension) >= 0) {
|
|
168
|
-
await FileUtils.copyBinaryFile(path.join(templatePath, file.name), destPath, vars, rootDir);
|
|
166
|
+
await FileUtils.copyBinaryFile(path.join(templatePath, file.name), destPath, vars, rootDir, force);
|
|
169
167
|
}
|
|
170
168
|
else {
|
|
171
169
|
await FileUtils.copyFile(path.join(templatePath, file.name), destPath, vars, force, rootDir);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUtils.js","sourceRoot":"","sources":["../../src/FileUtils.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,kDAAkD;AAClD,+EAA+E;AAC/E,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;AAExB;;;GAGG;AACF,MAAM,OAAO,SAAS;IACnB;;;;;;;OAOG;IACK,MAAM,CAAC,eAAe,CAAC,OAAe,EAAE,MAAc;QAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QACxD,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CAAC,SAAS,MAAM,yCAAyC,YAAY,IAAI,CAAC,CAAC;QAC9F,CAAC;IACL,CAAC;IAED;;;;;;;;;;;OAWG;IACI,MAAM,CAAC,KAAK,CAAC,SAAS,CACzB,OAAe,EACf,OAAe,EACf,QAAa,EACb,YAAqB,KAAK,EAC1B,OAAgB;QAEhB,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAExC,IAAI,OAAO,EAAE,CAAC;YACV,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAChD,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAE5C,6DAA6D;QAC7D,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QAC7B,CAAC;QAED,IAAI,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACX,2BAA2B,WAAW,uCAAuC,CAChF,CAAC;QACN,CAAC;QAED,iCAAiC;QACjC,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC;QACvC,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;;;;;;OAUG;IACI,MAAM,CAAC,KAAK,CAAC,QAAQ,CACxB,OAAe,EACf,OAAe,EACf,YAAiB,EAAE,EACnB,YAAqB,KAAK,EAC1B,OAAgB;QAEhB,IAAI,WAAW,GAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE7C,IAAI,OAAO,EAAE,CAAC;YACV,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,WAAW,CAAC,CAAC;QAC3D,CAAC;QAED,
|
|
1
|
+
{"version":3,"file":"FileUtils.js","sourceRoot":"","sources":["../../src/FileUtils.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/JWTUtils.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
///////////////////////////////////////////////////////////////////////////////
|
|
2
2
|
// Copyright (C) 2020-2026 Jean-Philippe Steinmetz
|
|
3
3
|
///////////////////////////////////////////////////////////////////////////////
|
|
4
|
-
import crypto from "crypto";
|
|
4
|
+
import crypto, { KeyObject } from "crypto";
|
|
5
5
|
import jwt from "jsonwebtoken";
|
|
6
6
|
import zlib from "zlib";
|
|
7
7
|
/**
|
|
@@ -31,8 +31,14 @@ export class JWTUtils {
|
|
|
31
31
|
const pemPattern = /-----BEGIN [A-Z ]*(PRIVATE|PUBLIC) KEY-----/;
|
|
32
32
|
// `fs.readFileSync()` - the idiomatic way to load a key file - returns a Buffer, not a string, so both
|
|
33
33
|
// representations must be checked or the guard below is trivially bypassed.
|
|
34
|
-
const
|
|
34
|
+
const isPemLike = (typeof secret === "string" && pemPattern.test(secret)) ||
|
|
35
35
|
(Buffer.isBuffer(secret) && pemPattern.test(secret.toString("utf8")));
|
|
36
|
+
// `jwt.Secret` also allows a `KeyObject` (e.g. from `crypto.createPrivateKey()`) or a
|
|
37
|
+
// `{ key, passphrase }` encrypted-PEM wrapper, neither of which are strings/Buffers - both must be
|
|
38
|
+
// detected too or this guard is trivially bypassed by using either form.
|
|
39
|
+
const isAsymmetricKeyObject = secret instanceof KeyObject && secret.type !== "secret";
|
|
40
|
+
const isPassphraseWrappedKey = !!secret && typeof secret === "object" && !Buffer.isBuffer(secret) && "key" in secret && "passphrase" in secret;
|
|
41
|
+
const looksAsymmetric = isPemLike || isAsymmetricKeyObject || isPassphraseWrappedKey;
|
|
36
42
|
if (looksAsymmetric && (!config.options?.algorithms || config.options.algorithms.length === 0)) {
|
|
37
43
|
throw new Error("config.secret appears to be an asymmetric key. config.options.algorithms must be explicitly set " +
|
|
38
44
|
"(e.g. ['RS256']) to prevent algorithm-confusion attacks.");
|
|
@@ -58,6 +64,52 @@ export class JWTUtils {
|
|
|
58
64
|
static deriveKeySync(password, salt) {
|
|
59
65
|
return crypto.scryptSync(password, salt, 24);
|
|
60
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Encrypts `plaintext` for `publicKey` using hybrid encryption: `plaintext` is encrypted with a fresh
|
|
69
|
+
* AES-256-GCM key, which is itself wrapped with RSA. This avoids `crypto.publicEncrypt`'s fixed plaintext-size
|
|
70
|
+
* limit (e.g. ~214 bytes for a 2048-bit key with OAEP padding), which a raw JSON user profile easily exceeds.
|
|
71
|
+
*
|
|
72
|
+
* @param publicKey The RSA public key to wrap the AES key with.
|
|
73
|
+
* @param plaintext The data to encrypt.
|
|
74
|
+
* @returns The encrypted data, encoded as `<wrapped-key>.<iv>.<authTag>.<ciphertext>`, all base64.
|
|
75
|
+
*/
|
|
76
|
+
static hybridEncrypt(publicKey, plaintext) {
|
|
77
|
+
const aesKey = crypto.randomBytes(32);
|
|
78
|
+
const iv = crypto.randomBytes(12);
|
|
79
|
+
const cipher = crypto.createCipheriv("aes-256-gcm", aesKey, iv);
|
|
80
|
+
let ciphertext = cipher.update(plaintext, "utf8", "base64");
|
|
81
|
+
ciphertext += cipher.final("base64");
|
|
82
|
+
const authTag = cipher.getAuthTag();
|
|
83
|
+
const wrappedKey = crypto.publicEncrypt(publicKey, aesKey);
|
|
84
|
+
return [wrappedKey.toString("base64"), iv.toString("base64"), authTag.toString("base64"), ciphertext].join(".");
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Returns `true` if `algorithm` is an AEAD cipher (GCM/CCM/OCB/ChaCha20-Poly1305), which produces an
|
|
88
|
+
* authentication tag that must be captured on encryption and supplied back on decryption via
|
|
89
|
+
* `getAuthTag()`/`setAuthTag()`.
|
|
90
|
+
*
|
|
91
|
+
* @param algorithm The cipher algorithm name (e.g. `aes-256-gcm`).
|
|
92
|
+
*/
|
|
93
|
+
static isAEADCipher(algorithm) {
|
|
94
|
+
return /-(gcm|ccm|ocb)$/i.test(algorithm) || /chacha20-poly1305/i.test(algorithm);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Decrypts data produced by `hybridEncrypt`.
|
|
98
|
+
*
|
|
99
|
+
* @param privateKey The RSA private key to unwrap the AES key with.
|
|
100
|
+
* @param encoded The encrypted data, as produced by `hybridEncrypt`.
|
|
101
|
+
*/
|
|
102
|
+
static hybridDecrypt(privateKey, encoded) {
|
|
103
|
+
const [wrappedKeyB64, ivB64, authTagB64, ciphertext] = encoded.split(".");
|
|
104
|
+
const aesKey = crypto.privateDecrypt(privateKey, Buffer.from(wrappedKeyB64, "base64"));
|
|
105
|
+
const iv = Buffer.from(ivB64, "base64");
|
|
106
|
+
const authTag = Buffer.from(authTagB64, "base64");
|
|
107
|
+
const decipher = crypto.createDecipheriv("aes-256-gcm", aesKey, iv);
|
|
108
|
+
decipher.setAuthTag(authTag);
|
|
109
|
+
let decrypted = decipher.update(ciphertext, "base64", "utf8");
|
|
110
|
+
decrypted += decipher.final("utf8");
|
|
111
|
+
return decrypted;
|
|
112
|
+
}
|
|
61
113
|
static async createToken(config, user, data) {
|
|
62
114
|
// Validate the required config options
|
|
63
115
|
if (!config.secret) {
|
|
@@ -70,13 +122,21 @@ export class JWTUtils {
|
|
|
70
122
|
// `data` is spread before `profile` so that a `profile` key present in caller-supplied `data` can never
|
|
71
123
|
// silently override the authoritative, server-derived user profile before signing.
|
|
72
124
|
let payload = { ...data, profile: JSON.stringify(user) };
|
|
125
|
+
// Compress the profile if desired. Done *before* encryption so encryption (and, for RSA, its fixed
|
|
126
|
+
// plaintext-size limit) operates on the smaller compressed representation rather than the raw JSON.
|
|
127
|
+
if (config.payload && config.payload.compress) {
|
|
128
|
+
if (config.payload.compress === JWTUtilsCompressionMethods.ZLIB) {
|
|
129
|
+
const buf = Buffer.from(payload.profile, "utf-8");
|
|
130
|
+
payload.profile = zlib.gzipSync(buf).toString("base64");
|
|
131
|
+
payload.compression = "zlib";
|
|
132
|
+
}
|
|
133
|
+
}
|
|
73
134
|
// Encrypt the profile if desired
|
|
74
135
|
if (config.payload && config.payload.encrypt) {
|
|
75
136
|
const payloadOptions = config.payload;
|
|
76
137
|
if (payloadOptions.public_key) {
|
|
77
138
|
const keyOptions = payloadOptions;
|
|
78
|
-
|
|
79
|
-
payload.profile = encrypted.toString("base64");
|
|
139
|
+
payload.profile = JWTUtils.hybridEncrypt(keyOptions.public_key, payload.profile);
|
|
80
140
|
}
|
|
81
141
|
else {
|
|
82
142
|
const pwOtions = payloadOptions;
|
|
@@ -86,18 +146,16 @@ export class JWTUtils {
|
|
|
86
146
|
const cipher = crypto.createCipheriv(pwOtions.algorithm, key, iv);
|
|
87
147
|
let encrypted = cipher.update(payload.profile, "utf8", "base64");
|
|
88
148
|
encrypted += cipher.final("base64");
|
|
89
|
-
|
|
149
|
+
// AEAD ciphers (e.g. aes-256-gcm) require the auth tag to be captured here and verified on
|
|
150
|
+
// decrypt via setAuthTag(), otherwise decodeToken() throws "Unsupported state or unable to
|
|
151
|
+
// authenticate data" on every token.
|
|
152
|
+
const authTag = JWTUtils.isAEADCipher(pwOtions.algorithm)
|
|
153
|
+
? cipher.getAuthTag().toString("base64")
|
|
154
|
+
: "";
|
|
155
|
+
payload.profile = salt.toString("base64") + ":" + authTag + ":" + encrypted;
|
|
90
156
|
}
|
|
91
157
|
payload.encryption = true;
|
|
92
158
|
}
|
|
93
|
-
// Compress the profile if desired
|
|
94
|
-
if (config.payload && config.payload.compress) {
|
|
95
|
-
if (config.payload.compress === JWTUtilsCompressionMethods.ZLIB) {
|
|
96
|
-
const buf = Buffer.from(payload.profile, "utf-8");
|
|
97
|
-
payload.profile = zlib.gzipSync(buf).toString("base64");
|
|
98
|
-
payload.compression = "zlib";
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
159
|
JWTUtils.assertSafeAlgorithm(config);
|
|
102
160
|
return jwt.sign(payload, config.secret, config.options);
|
|
103
161
|
}
|
|
@@ -113,13 +171,21 @@ export class JWTUtils {
|
|
|
113
171
|
// `data` is spread before `profile` so that a `profile` key present in caller-supplied `data` can never
|
|
114
172
|
// silently override the authoritative, server-derived user profile before signing.
|
|
115
173
|
let payload = { ...data, profile: JSON.stringify(user) };
|
|
174
|
+
// Compress the profile if desired. Done *before* encryption so encryption (and, for RSA, its fixed
|
|
175
|
+
// plaintext-size limit) operates on the smaller compressed representation rather than the raw JSON.
|
|
176
|
+
if (config.payload && config.payload.compress) {
|
|
177
|
+
if (config.payload.compress === JWTUtilsCompressionMethods.ZLIB) {
|
|
178
|
+
const buf = Buffer.from(payload.profile, "utf-8");
|
|
179
|
+
payload.profile = zlib.gzipSync(buf).toString("base64");
|
|
180
|
+
payload.compression = "zlib";
|
|
181
|
+
}
|
|
182
|
+
}
|
|
116
183
|
// Encrypt the profile if desired
|
|
117
184
|
if (config.payload && config.payload.encrypt) {
|
|
118
185
|
const payloadOptions = config.payload;
|
|
119
186
|
if (payloadOptions.public_key) {
|
|
120
187
|
const keyOptions = payloadOptions;
|
|
121
|
-
|
|
122
|
-
payload.profile = encrypted.toString("base64");
|
|
188
|
+
payload.profile = JWTUtils.hybridEncrypt(keyOptions.public_key, payload.profile);
|
|
123
189
|
}
|
|
124
190
|
else {
|
|
125
191
|
const pwOtions = payloadOptions;
|
|
@@ -129,18 +195,16 @@ export class JWTUtils {
|
|
|
129
195
|
const cipher = crypto.createCipheriv(pwOtions.algorithm, key, iv);
|
|
130
196
|
let encrypted = cipher.update(payload.profile, "utf8", "base64");
|
|
131
197
|
encrypted += cipher.final("base64");
|
|
132
|
-
|
|
198
|
+
// AEAD ciphers (e.g. aes-256-gcm) require the auth tag to be captured here and verified on
|
|
199
|
+
// decrypt via setAuthTag(), otherwise decodeTokenSync() throws "Unsupported state or unable to
|
|
200
|
+
// authenticate data" on every token.
|
|
201
|
+
const authTag = JWTUtils.isAEADCipher(pwOtions.algorithm)
|
|
202
|
+
? cipher.getAuthTag().toString("base64")
|
|
203
|
+
: "";
|
|
204
|
+
payload.profile = salt.toString("base64") + ":" + authTag + ":" + encrypted;
|
|
133
205
|
}
|
|
134
206
|
payload.encryption = true;
|
|
135
207
|
}
|
|
136
|
-
// Compress the profile if desired
|
|
137
|
-
if (config.payload && config.payload.compress) {
|
|
138
|
-
if (config.payload.compress === JWTUtilsCompressionMethods.ZLIB) {
|
|
139
|
-
const buf = Buffer.from(payload.profile, "utf-8");
|
|
140
|
-
payload.profile = zlib.gzipSync(buf).toString("base64");
|
|
141
|
-
payload.compression = "zlib";
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
208
|
JWTUtils.assertSafeAlgorithm(config);
|
|
145
209
|
return jwt.sign(payload, config.secret, config.options);
|
|
146
210
|
}
|
|
@@ -160,31 +224,34 @@ export class JWTUtils {
|
|
|
160
224
|
if (!payload || !payload.profile) {
|
|
161
225
|
throw new Error("Token is invalid or missing data.");
|
|
162
226
|
}
|
|
163
|
-
//
|
|
164
|
-
|
|
165
|
-
const buf = Buffer.from(payload.profile, "base64");
|
|
166
|
-
payload.profile = zlib.gunzipSync(buf).toString("utf-8");
|
|
167
|
-
}
|
|
168
|
-
// Decrypt the payload if desired
|
|
227
|
+
// Decrypt the payload if desired. Must happen before decompression since compression is applied *before*
|
|
228
|
+
// encryption when the token is created (see createToken), so decryption must be undone first.
|
|
169
229
|
if (payload.encryption && config.payload && config.payload.encrypt) {
|
|
170
230
|
const payloadOptions = config.payload;
|
|
171
231
|
if (payloadOptions.private_key) {
|
|
172
232
|
const keyOptions = payloadOptions;
|
|
173
|
-
|
|
174
|
-
payload.profile = decrypted.toString("utf8");
|
|
233
|
+
payload.profile = JWTUtils.hybridDecrypt(keyOptions.private_key, payload.profile);
|
|
175
234
|
}
|
|
176
235
|
else {
|
|
177
236
|
const pwOtions = payloadOptions;
|
|
178
237
|
const iv = Buffer.from(pwOtions.iv);
|
|
179
|
-
const [saltB64, profile] = payload.profile.split(":");
|
|
238
|
+
const [saltB64, authTagB64, profile] = payload.profile.split(":");
|
|
180
239
|
const salt = Buffer.from(saltB64, "base64");
|
|
181
240
|
const key = await JWTUtils.deriveKey(pwOtions.password, salt);
|
|
182
241
|
const decipher = crypto.createDecipheriv(pwOtions.algorithm, key, iv);
|
|
242
|
+
if (authTagB64) {
|
|
243
|
+
decipher.setAuthTag(Buffer.from(authTagB64, "base64"));
|
|
244
|
+
}
|
|
183
245
|
let decrypted = decipher.update(profile, "base64", "utf8");
|
|
184
246
|
decrypted += decipher.final("utf8");
|
|
185
247
|
payload.profile = decrypted;
|
|
186
248
|
}
|
|
187
249
|
}
|
|
250
|
+
// Decompress the payload if desired
|
|
251
|
+
if (payload.compression === JWTUtilsCompressionMethods.ZLIB) {
|
|
252
|
+
const buf = Buffer.from(payload.profile, "base64");
|
|
253
|
+
payload.profile = zlib.gunzipSync(buf).toString("utf-8");
|
|
254
|
+
}
|
|
188
255
|
// Make sure the profile is an parsed
|
|
189
256
|
payload.profile = JSON.parse(payload.profile);
|
|
190
257
|
return payload;
|
|
@@ -205,31 +272,34 @@ export class JWTUtils {
|
|
|
205
272
|
if (!payload || !payload.profile) {
|
|
206
273
|
throw new Error("Token is invalid or missing data.");
|
|
207
274
|
}
|
|
208
|
-
//
|
|
209
|
-
|
|
210
|
-
const buf = Buffer.from(payload.profile, "base64");
|
|
211
|
-
payload.profile = zlib.gunzipSync(buf).toString("utf-8");
|
|
212
|
-
}
|
|
213
|
-
// Decrypt the payload if desired
|
|
275
|
+
// Decrypt the payload if desired. Must happen before decompression since compression is applied *before*
|
|
276
|
+
// encryption when the token is created (see createTokenSync), so decryption must be undone first.
|
|
214
277
|
if (payload.encryption && config.payload && config.payload.encrypt) {
|
|
215
278
|
const payloadOptions = config.payload;
|
|
216
279
|
if (payloadOptions.private_key) {
|
|
217
280
|
const keyOptions = payloadOptions;
|
|
218
|
-
|
|
219
|
-
payload.profile = decrypted.toString("utf8");
|
|
281
|
+
payload.profile = JWTUtils.hybridDecrypt(keyOptions.private_key, payload.profile);
|
|
220
282
|
}
|
|
221
283
|
else {
|
|
222
284
|
const pwOtions = payloadOptions;
|
|
223
285
|
const iv = Buffer.from(pwOtions.iv);
|
|
224
|
-
const [saltB64, profile] = payload.profile.split(":");
|
|
286
|
+
const [saltB64, authTagB64, profile] = payload.profile.split(":");
|
|
225
287
|
const salt = Buffer.from(saltB64, "base64");
|
|
226
288
|
const key = JWTUtils.deriveKeySync(pwOtions.password, salt);
|
|
227
289
|
const decipher = crypto.createDecipheriv(pwOtions.algorithm, key, iv);
|
|
290
|
+
if (authTagB64) {
|
|
291
|
+
decipher.setAuthTag(Buffer.from(authTagB64, "base64"));
|
|
292
|
+
}
|
|
228
293
|
let decrypted = decipher.update(profile, "base64", "utf8");
|
|
229
294
|
decrypted += decipher.final("utf8");
|
|
230
295
|
payload.profile = decrypted;
|
|
231
296
|
}
|
|
232
297
|
}
|
|
298
|
+
// Decompress the payload if desired
|
|
299
|
+
if (payload.compression === JWTUtilsCompressionMethods.ZLIB) {
|
|
300
|
+
const buf = Buffer.from(payload.profile, "base64");
|
|
301
|
+
payload.profile = zlib.gunzipSync(buf).toString("utf-8");
|
|
302
|
+
}
|
|
233
303
|
// Make sure the profile is an parsed
|
|
234
304
|
payload.profile = JSON.parse(payload.profile);
|
|
235
305
|
return payload;
|
package/dist/lib/JWTUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JWTUtils.js","sourceRoot":"","sources":["../../src/JWTUtils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"JWTUtils.js","sourceRoot":"","sources":["../../src/JWTUtils.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,kDAAkD;AAClD,+EAA+E;AAC/E,OAAO,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,OAAO,IAAI,MAAM,MAAM,CAAC;AAmDxB;;GAEG;AACH,MAAM,CAAN,IAAY,0BAGX;AAHD,WAAY,0BAA0B;IAClC,wCAAwC;IACxC,2CAAa,CAAA;AACjB,CAAC,EAHW,0BAA0B,KAA1B,0BAA0B,QAGrC;AAkFD;;;;GAIG;AACH,MAAM,OAAO,QAAQ;IAGjB;;;;;;;OAOG;IACK,MAAM,CAAC,mBAAmB,CAAC,MAAsB;QACrD,MAAM,MAAM,GAAQ,MAAM,CAAC,MAAM,CAAC;QAClC,MAAM,UAAU,GAAG,6CAA6C,CAAC;QACjE,uGAAuG;QACvG,4EAA4E;QAC5E,MAAM,SAAS,GACX,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvD,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1E,sFAAsF;QACtF,mGAAmG;QACnG,yEAAyE;QACzE,MAAM,qBAAqB,GAAG,MAAM,YAAY,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC;QACtF,MAAM,sBAAsB,GACxB,CAAC,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,MAAM,IAAI,YAAY,IAAI,MAAM,CAAC;QACpH,MAAM,eAAe,GAAG,SAAS,IAAI,qBAAqB,IAAI,sBAAsB,CAAC;QACrF,IAAI,eAAe,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAC7F,MAAM,IAAI,KAAK,CACX,kGAAkG;gBAC9F,0DAA0D,CACjE,CAAC;QACN,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACK,MAAM,CAAC,SAAS,CAAC,QAAgB,EAAE,IAAY;QACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACnC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CACtF,CAAC;IACN,CAAC;IAED;;;;;;OAMG;IACK,MAAM,CAAC,aAAa,CAAC,QAAgB,EAAE,IAAY;QACvD,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;;OAQG;IACK,MAAM,CAAC,aAAa,CAAC,SAAiB,EAAE,SAAiB;QAC7D,MAAM,MAAM,GAAW,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,EAAE,GAAW,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAChE,IAAI,UAAU,GAAW,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpE,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,OAAO,GAAW,MAAM,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAW,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnE,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,CACtG,GAAG,CACN,CAAC;IACN,CAAC;IAED;;;;;;OAMG;IACK,MAAM,CAAC,YAAY,CAAC,SAAiB;QACzC,OAAO,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtF,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,aAAa,CAAC,UAAkB,EAAE,OAAe;QAC5D,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAW,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC/F,MAAM,EAAE,GAAW,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAChD,MAAM,OAAO,GAAW,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACpE,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,SAAS,GAAW,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACtE,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,SAAS,CAAC;IACrB,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAsB,EAAE,IAAa,EAAE,IAAU;QAC7E,uCAAuC;QACvC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACvD,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC7D,CAAC;QAED,wGAAwG;QACxG,mFAAmF;QACnF,IAAI,OAAO,GAAQ,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAE9D,mGAAmG;QACnG,oGAAoG;QACpG,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC5C,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,0BAA0B,CAAC,IAAI,EAAE,CAAC;gBAC9D,MAAM,GAAG,GAAW,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC1D,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACxD,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC;YACjC,CAAC;QACL,CAAC;QAED,iCAAiC;QACjC,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3C,MAAM,cAAc,GAAQ,MAAM,CAAC,OAAO,CAAC;YAC3C,IAAI,cAAc,CAAC,UAAU,EAAE,CAAC;gBAC5B,MAAM,UAAU,GAA8B,cAA2C,CAAC;gBAC1F,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACrF,CAAC;iBAAM,CAAC;gBACJ,MAAM,QAAQ,GAAmC,cAAgD,CAAC;gBAClG,MAAM,EAAE,GAAW,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBACpC,MAAM,GAAG,GAAW,MAAM,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACtE,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;gBAElE,IAAI,SAAS,GAAW,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACzE,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACpC,2FAA2F;gBAC3F,2FAA2F;gBAC3F,qCAAqC;gBACrC,MAAM,OAAO,GAAW,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAC7D,CAAC,CAAE,MAA2B,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAC9D,CAAC,CAAC,EAAE,CAAC;gBACT,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,GAAG,SAAS,CAAC;YAChF,CAAC;YACD,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;QAC9B,CAAC;QAED,QAAQ,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAsC,CAAC,CAAC;IAC3F,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,MAAsB,EAAE,IAAa,EAAE,IAAU;QAC3E,uCAAuC;QACvC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACvD,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC7D,CAAC;QAED,wGAAwG;QACxG,mFAAmF;QACnF,IAAI,OAAO,GAAQ,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAE9D,mGAAmG;QACnG,oGAAoG;QACpG,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC5C,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,0BAA0B,CAAC,IAAI,EAAE,CAAC;gBAC9D,MAAM,GAAG,GAAW,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC1D,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACxD,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC;YACjC,CAAC;QACL,CAAC;QAED,iCAAiC;QACjC,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3C,MAAM,cAAc,GAAQ,MAAM,CAAC,OAAO,CAAC;YAC3C,IAAI,cAAc,CAAC,UAAU,EAAE,CAAC;gBAC5B,MAAM,UAAU,GAA8B,cAA2C,CAAC;gBAC1F,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACrF,CAAC;iBAAM,CAAC;gBACJ,MAAM,QAAQ,GAAmC,cAAgD,CAAC;gBAClG,MAAM,EAAE,GAAW,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBACpC,MAAM,GAAG,GAAW,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACpE,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;gBAElE,IAAI,SAAS,GAAW,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACzE,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACpC,2FAA2F;gBAC3F,+FAA+F;gBAC/F,qCAAqC;gBACrC,MAAM,OAAO,GAAW,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAC7D,CAAC,CAAE,MAA2B,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAC9D,CAAC,CAAC,EAAE,CAAC;gBACT,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,GAAG,SAAS,CAAC;YAChF,CAAC;YACD,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;QAC9B,CAAC;QAED,QAAQ,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAsC,CAAC,CAAC;IAC3F,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAsB,EAAE,KAAa;QACjE,QAAQ,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACrC,mBAAmB;QACnB,IAAI,OAAO,GAAQ,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAEpE,uBAAuB;QACvB,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACzD,CAAC;QAED,yGAAyG;QACzG,8FAA8F;QAC9F,IAAI,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACjE,MAAM,cAAc,GAAQ,MAAM,CAAC,OAAO,CAAC;YAC3C,IAAI,cAAc,CAAC,WAAW,EAAE,CAAC;gBAC7B,MAAM,UAAU,GAA8B,cAA2C,CAAC;gBAC1F,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACtF,CAAC;iBAAM,CAAC;gBACJ,MAAM,QAAQ,GAAmC,cAAgD,CAAC;gBAClG,MAAM,EAAE,GAAW,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC5C,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAClE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAC5C,MAAM,GAAG,GAAW,MAAM,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACtE,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;gBACtE,IAAI,UAAU,EAAE,CAAC;oBACZ,QAA+B,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACnF,CAAC;gBAED,IAAI,SAAS,GAAW,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACnE,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACpC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;YAChC,CAAC;QACL,CAAC;QAED,oCAAoC;QACpC,IAAI,OAAO,CAAC,WAAW,KAAK,0BAA0B,CAAC,IAAI,EAAE,CAAC;YAC1D,MAAM,GAAG,GAAW,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAiB,EAAE,QAAQ,CAAC,CAAC;YACrE,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC7D,CAAC;QAED,qCAAqC;QACrC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE9C,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,eAAe,CAAC,MAAsB,EAAE,KAAa;QAC/D,QAAQ,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACrC,mBAAmB;QACnB,IAAI,OAAO,GAAQ,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAEpE,uBAAuB;QACvB,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACzD,CAAC;QAED,yGAAyG;QACzG,kGAAkG;QAClG,IAAI,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACjE,MAAM,cAAc,GAAQ,MAAM,CAAC,OAAO,CAAC;YAC3C,IAAI,cAAc,CAAC,WAAW,EAAE,CAAC;gBAC7B,MAAM,UAAU,GAA8B,cAA2C,CAAC;gBAC1F,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACtF,CAAC;iBAAM,CAAC;gBACJ,MAAM,QAAQ,GAAmC,cAAgD,CAAC;gBAClG,MAAM,EAAE,GAAW,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC5C,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAClE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAC5C,MAAM,GAAG,GAAW,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACpE,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;gBACtE,IAAI,UAAU,EAAE,CAAC;oBACZ,QAA+B,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACnF,CAAC;gBAED,IAAI,SAAS,GAAW,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACnE,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACpC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;YAChC,CAAC;QACL,CAAC;QAED,oCAAoC;QACpC,IAAI,OAAO,CAAC,WAAW,KAAK,0BAA0B,CAAC,IAAI,EAAE,CAAC;YAC1D,MAAM,GAAG,GAAW,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAiB,EAAE,QAAQ,CAAC,CAAC;YACrE,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC7D,CAAC;QAED,qCAAqC;QACrC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE9C,OAAO,OAAO,CAAC;IACnB,CAAC;;AApUc,wBAAe,GAAG,IAAI,GAAG,EAAE,CAAC"}
|
package/dist/lib/Logger.js
CHANGED
|
@@ -6,10 +6,6 @@ import winston from "winston";
|
|
|
6
6
|
const { format, transports } = winston;
|
|
7
7
|
const { combine, timestamp, printf } = format;
|
|
8
8
|
export const FILENAME = fileURLToPath(import.meta.url).replace(/\\/g, "/");
|
|
9
|
-
// The default stack trace limit (10) is too shallow once a few frames of winston/logform internals are on the
|
|
10
|
-
// stack, causing the real caller frame that `source()` below looks for to be truncated. Widen it so the caller is
|
|
11
|
-
// always captured.
|
|
12
|
-
Error.stackTraceLimit = Math.max(Error.stackTraceLimit, 30);
|
|
13
9
|
export const logFormat = printf((info) => {
|
|
14
10
|
const prefix = info.source ? `[${info.source}] ` : "";
|
|
15
11
|
return `${prefix}${info.timestamp} ${info.level}: ${info.message}`;
|
|
@@ -24,7 +20,14 @@ export const logFormat = printf((info) => {
|
|
|
24
20
|
* call stack in either case.
|
|
25
21
|
*/
|
|
26
22
|
export const source = format((info) => {
|
|
23
|
+
// The default stack trace limit (10) is too shallow once a few frames of winston/logform internals are on
|
|
24
|
+
// the stack, causing the real caller frame below to be truncated. The limit is widened only for the duration
|
|
25
|
+
// of this capture (rather than mutated globally for the whole process) so every other `Error` thrown
|
|
26
|
+
// anywhere in the application doesn't pay the cost of a permanently-widened trace.
|
|
27
|
+
const originalStackTraceLimit = Error.stackTraceLimit;
|
|
28
|
+
Error.stackTraceLimit = Math.max(originalStackTraceLimit, 30);
|
|
27
29
|
const stack = new Error().stack?.split("\n") ?? [];
|
|
30
|
+
Error.stackTraceLimit = originalStackTraceLimit;
|
|
28
31
|
for (const line of stack) {
|
|
29
32
|
if (line.includes(FILENAME) || line.includes("node_modules") || line.includes("node:internal")) {
|
|
30
33
|
continue;
|
package/dist/lib/Logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/Logger.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,kDAAkD;AAClD,+EAA+E;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;AACvC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;AAC9C,MAAM,CAAC,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAE3E,
|
|
1
|
+
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/Logger.ts"],"names":[],"mappings":"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"}
|