@venizia/ignis-helpers 0.2.0-0 → 0.2.0-2
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/cjs/common/redact.d.ts +10 -2
- package/dist/cjs/common/redact.d.ts.map +1 -1
- package/dist/cjs/common/redact.js +17 -3
- package/dist/cjs/common/redact.js.map +1 -1
- package/dist/cjs/modules/logger/formatting/deep-splat.d.ts.map +1 -1
- package/dist/cjs/modules/logger/formatting/deep-splat.js +18 -1
- package/dist/cjs/modules/logger/formatting/deep-splat.js.map +1 -1
- package/dist/cjs/modules/logger/winston/logger.d.ts.map +1 -1
- package/dist/cjs/modules/logger/winston/logger.js +7 -0
- package/dist/cjs/modules/logger/winston/logger.js.map +1 -1
- package/dist/cjs/modules/network/http-request/fetcher/axios-fetcher.d.ts +22 -2
- package/dist/cjs/modules/network/http-request/fetcher/axios-fetcher.d.ts.map +1 -1
- package/dist/cjs/modules/network/http-request/fetcher/axios-fetcher.js +12 -3
- package/dist/cjs/modules/network/http-request/fetcher/axios-fetcher.js.map +1 -1
- package/dist/cjs/modules/network/http-request/fetcher/base-fetcher.d.ts +15 -14
- package/dist/cjs/modules/network/http-request/fetcher/base-fetcher.d.ts.map +1 -1
- package/dist/cjs/modules/network/http-request/fetcher/base-fetcher.js.map +1 -1
- package/dist/cjs/modules/network/http-request/fetcher/node-fetcher.d.ts +3 -2
- package/dist/cjs/modules/network/http-request/fetcher/node-fetcher.d.ts.map +1 -1
- package/dist/cjs/modules/network/http-request/fetcher/node-fetcher.js +10 -1
- package/dist/cjs/modules/network/http-request/fetcher/node-fetcher.js.map +1 -1
- package/dist/cjs/modules/network/tcp-socket/base-tcp-server.helper.d.ts.map +1 -1
- package/dist/cjs/modules/network/tcp-socket/base-tcp-server.helper.js +3 -5
- package/dist/cjs/modules/network/tcp-socket/base-tcp-server.helper.js.map +1 -1
- package/dist/cjs/modules/redis/base/abstract.helper.js +7 -4
- package/dist/cjs/modules/redis/base/abstract.helper.js.map +1 -1
- package/dist/cjs/modules/socket/socket-io/server/helper.d.ts +10 -0
- package/dist/cjs/modules/socket/socket-io/server/helper.d.ts.map +1 -1
- package/dist/cjs/modules/socket/socket-io/server/helper.js +23 -5
- package/dist/cjs/modules/socket/socket-io/server/helper.js.map +1 -1
- package/dist/cjs/modules/socket/websocket/server/helper.d.ts +9 -0
- package/dist/cjs/modules/socket/websocket/server/helper.d.ts.map +1 -1
- package/dist/cjs/modules/socket/websocket/server/helper.js +35 -4
- package/dist/cjs/modules/socket/websocket/server/helper.js.map +1 -1
- package/dist/cjs/modules/uid/request-id.d.ts +15 -6
- package/dist/cjs/modules/uid/request-id.d.ts.map +1 -1
- package/dist/cjs/modules/uid/request-id.js +47 -17
- package/dist/cjs/modules/uid/request-id.js.map +1 -1
- package/dist/esm/common/redact.d.ts +10 -2
- package/dist/esm/common/redact.d.ts.map +1 -1
- package/dist/esm/common/redact.js +17 -3
- package/dist/esm/common/redact.js.map +1 -1
- package/dist/esm/modules/logger/formatting/deep-splat.d.ts.map +1 -1
- package/dist/esm/modules/logger/formatting/deep-splat.js +18 -1
- package/dist/esm/modules/logger/formatting/deep-splat.js.map +1 -1
- package/dist/esm/modules/logger/winston/logger.d.ts.map +1 -1
- package/dist/esm/modules/logger/winston/logger.js +7 -0
- package/dist/esm/modules/logger/winston/logger.js.map +1 -1
- package/dist/esm/modules/network/http-request/fetcher/axios-fetcher.d.ts +22 -2
- package/dist/esm/modules/network/http-request/fetcher/axios-fetcher.d.ts.map +1 -1
- package/dist/esm/modules/network/http-request/fetcher/axios-fetcher.js +12 -3
- package/dist/esm/modules/network/http-request/fetcher/axios-fetcher.js.map +1 -1
- package/dist/esm/modules/network/http-request/fetcher/base-fetcher.d.ts +15 -14
- package/dist/esm/modules/network/http-request/fetcher/base-fetcher.d.ts.map +1 -1
- package/dist/esm/modules/network/http-request/fetcher/base-fetcher.js.map +1 -1
- package/dist/esm/modules/network/http-request/fetcher/node-fetcher.d.ts +3 -2
- package/dist/esm/modules/network/http-request/fetcher/node-fetcher.d.ts.map +1 -1
- package/dist/esm/modules/network/http-request/fetcher/node-fetcher.js +10 -1
- package/dist/esm/modules/network/http-request/fetcher/node-fetcher.js.map +1 -1
- package/dist/esm/modules/network/tcp-socket/base-tcp-server.helper.d.ts.map +1 -1
- package/dist/esm/modules/network/tcp-socket/base-tcp-server.helper.js +3 -2
- package/dist/esm/modules/network/tcp-socket/base-tcp-server.helper.js.map +1 -1
- package/dist/esm/modules/redis/base/abstract.helper.js +7 -4
- package/dist/esm/modules/redis/base/abstract.helper.js.map +1 -1
- package/dist/esm/modules/socket/socket-io/server/helper.d.ts +10 -0
- package/dist/esm/modules/socket/socket-io/server/helper.d.ts.map +1 -1
- package/dist/esm/modules/socket/socket-io/server/helper.js +23 -5
- package/dist/esm/modules/socket/socket-io/server/helper.js.map +1 -1
- package/dist/esm/modules/socket/websocket/server/helper.d.ts +9 -0
- package/dist/esm/modules/socket/websocket/server/helper.d.ts.map +1 -1
- package/dist/esm/modules/socket/websocket/server/helper.js +35 -4
- package/dist/esm/modules/socket/websocket/server/helper.js.map +1 -1
- package/dist/esm/modules/uid/request-id.d.ts +15 -6
- package/dist/esm/modules/uid/request-id.d.ts.map +1 -1
- package/dist/esm/modules/uid/request-id.js +47 -17
- package/dist/esm/modules/uid/request-id.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
export declare const REDACTED = "[REDACTED]";
|
|
2
|
-
/**
|
|
3
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Redacts every secret-looking KEY (not value shape - buffers/typed arrays are summarized, not
|
|
4
|
+
* serialized). `APP_ENV_LOGGER_DO_REDACT=false` makes this the identity function.
|
|
5
|
+
*
|
|
6
|
+
* `depth` bounds the walk, exactly as {@link toJsonSafe} already does. It defaults to `Infinity` for
|
|
7
|
+
* callers that really do want the whole graph, but the logger passes its own bound: rendering only
|
|
8
|
+
* inspects a handful of levels, so walking to `Infinity` did work whose result was thrown away -
|
|
9
|
+
* 12x on a deep graph, and a `RangeError` on a very deep chain.
|
|
10
|
+
*/
|
|
11
|
+
export declare const redactSecrets: (value: unknown, seen?: WeakSet<object>, depth?: number) => unknown;
|
|
4
12
|
/** Projects a value into something `JSON.stringify` can render: it answers `[Circular]` for the WHOLE payload when one cycle sits anywhere inside it, so cycles must be broken per-branch first. `depth` bounds the walk the way `util.inspect` does - a log argument may hold a live connector or request context, whose graph is effectively unbounded. The projection itself is unconditional: `APP_ENV_LOGGER_DO_REDACT=false` turns off the key masking, never the structural pass. */
|
|
5
13
|
export declare const toJsonSafe: (opts: {
|
|
6
14
|
value: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redact.d.ts","sourceRoot":"","sources":["../../../src/common/redact.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"redact.d.ts","sourceRoot":"","sources":["../../../src/common/redact.ts"],"names":[],"mappings":"AAgCA,eAAO,MAAM,QAAQ,eAAe,CAAC;AA4ErC;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GACxB,OAAO,OAAO,EACd,OAAO,OAAO,CAAC,MAAM,CAAC,EACtB,QAAO,MAAiB,KACvB,OAUF,CAAC;AAEF,4dAA4d;AAC5d,eAAO,MAAM,UAAU,GAAI,MAAM;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,OAMrE,CAAC;AAEF,sPAAsP;AACtP,eAAO,MAAM,oBAAoB,GAAI,KAAK,MAAM,KAAG,MAmBlD,CAAC"}
|
|
@@ -11,6 +11,12 @@ const SECRET_KEY_PATTERN = new RegExp([
|
|
|
11
11
|
'|^(client_token|secret_id|role_id)$',
|
|
12
12
|
// Any `*_token` (snake_case) or `*Token` (camelCase) key; a preceding character is required so the bare word `token` (already covered above) is not the whole match, and so ordinary words are not swallowed.
|
|
13
13
|
'|_token$|[a-z0-9]token$',
|
|
14
|
+
// The `*Secret` counterpart the `*Token` rule always lacked. `clientSecret` / `client_secret` is the RFC 6749 parameter name and a live field on the search connector's model options, and `webhookSecret` is the standard spelling everywhere; none of them matched the anchored list above.
|
|
15
|
+
'|_secret$|[a-z0-9]secret$',
|
|
16
|
+
// Connection descriptors: `connectionString` was anchored above but its snake_case twin was not, and `dsn` is the third common spelling for the same thing.
|
|
17
|
+
'|^(connection_string|dsn|database_url|databaseUrl)$',
|
|
18
|
+
// Any `*_password` / `*Password` key - `dbPassword`, `admin_password`. The bare word is anchored above; this catches the prefixed forms.
|
|
19
|
+
'|_password$|[a-z0-9]password$',
|
|
14
20
|
// HTTP HEADER spellings: header names are kebab-case and often `x-`-prefixed, none of which the camelCase list above matches; `vault` is included so `X-Vault-Token` (node-vault's auth header) is caught.
|
|
15
21
|
'|^(x-)?(api|auth|access|secret|session|csrf|xsrf|vault)-(key|token|secret|id)$',
|
|
16
22
|
'|^(cookie|set-cookie|proxy-authorization|www-authenticate)$',
|
|
@@ -66,15 +72,23 @@ const deepSanitize = (value, context) => {
|
|
|
66
72
|
}
|
|
67
73
|
return result;
|
|
68
74
|
};
|
|
69
|
-
/**
|
|
70
|
-
|
|
75
|
+
/**
|
|
76
|
+
* Redacts every secret-looking KEY (not value shape - buffers/typed arrays are summarized, not
|
|
77
|
+
* serialized). `APP_ENV_LOGGER_DO_REDACT=false` makes this the identity function.
|
|
78
|
+
*
|
|
79
|
+
* `depth` bounds the walk, exactly as {@link toJsonSafe} already does. It defaults to `Infinity` for
|
|
80
|
+
* callers that really do want the whole graph, but the logger passes its own bound: rendering only
|
|
81
|
+
* inspects a handful of levels, so walking to `Infinity` did work whose result was thrown away -
|
|
82
|
+
* 12x on a deep graph, and a `RangeError` on a very deep chain.
|
|
83
|
+
*/
|
|
84
|
+
const redactSecrets = (value, seen, depth = Infinity) => {
|
|
71
85
|
if (!isRedactionEnabled()) {
|
|
72
86
|
return value;
|
|
73
87
|
}
|
|
74
88
|
return deepSanitize(value, {
|
|
75
89
|
seen: seen ?? new WeakSet(),
|
|
76
90
|
doRedact: true,
|
|
77
|
-
depth
|
|
91
|
+
depth,
|
|
78
92
|
});
|
|
79
93
|
};
|
|
80
94
|
exports.redactSecrets = redactSecrets;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redact.js","sourceRoot":"","sources":["../../../src/common/redact.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"redact.js","sourceRoot":"","sources":["../../../src/common/redact.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-splat.d.ts","sourceRoot":"","sources":["../../../../../src/modules/logger/formatting/deep-splat.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAoC7B,2TAA2T;AAC3T,eAAO,MAAM,gBAAgB,GAAI,MAAM;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,cAAc,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC;CACtC,KAAG,
|
|
1
|
+
{"version":3,"file":"deep-splat.d.ts","sourceRoot":"","sources":["../../../../../src/modules/logger/formatting/deep-splat.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAoC7B,2TAA2T;AAC3T,eAAO,MAAM,gBAAgB,GAAI,MAAM;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,cAAc,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC;CACtC,KAAG,MAoDH,CAAC"}
|
|
@@ -46,6 +46,20 @@ const formatLogMessage = (opts) => {
|
|
|
46
46
|
if (placeholder === '%j') {
|
|
47
47
|
return (0, redact_1.toJsonSafe)({ value: arg, depth: inspectOptions.depth ?? resolveDepth() });
|
|
48
48
|
}
|
|
49
|
+
// `%o`, `%O` and arguments with NO placeholder (`util.format` appends those) are redacted but
|
|
50
|
+
// left as objects, so `util.formatWithOptions` still renders them the way that placeholder
|
|
51
|
+
// means. Pre-inspecting them into a string here would make `%o` print a quoted, escaped string
|
|
52
|
+
// instead of an object. Only the redaction is added; the rendering is unchanged.
|
|
53
|
+
//
|
|
54
|
+
// Before this, `logger.info('login failed', { password })` printed the password verbatim: the
|
|
55
|
+
// redactor only ever saw `%s`, while the reference docs recommend `%o` for data objects.
|
|
56
|
+
//
|
|
57
|
+
// Bounded like the `%s` path below, and for the same reason: an unbounded walk on a very deep
|
|
58
|
+
// graph is work whose result the renderer discards, and deep enough it is a `RangeError` on a
|
|
59
|
+
// call that could not throw before. `%o` renders at `depth`, so `+2` covers what is shown.
|
|
60
|
+
if (placeholder === undefined || placeholder === '%o' || placeholder === '%O') {
|
|
61
|
+
return (0, redact_1.redactSecrets)(arg, undefined, (inspectOptions.depth ?? resolveDepth()) + 2);
|
|
62
|
+
}
|
|
49
63
|
if (placeholder !== '%s') {
|
|
50
64
|
return arg;
|
|
51
65
|
}
|
|
@@ -53,7 +67,10 @@ const formatLogMessage = (opts) => {
|
|
|
53
67
|
if (arg instanceof Error) {
|
|
54
68
|
return `\n${error_prettier_1.ErrorPrettier.format({ error: arg, inspectOptions })}`;
|
|
55
69
|
}
|
|
56
|
-
|
|
70
|
+
// Bounded to just past what `util.inspect` will actually render. `+2`, not `+1`: at exactly
|
|
71
|
+
// `depth + 1` the redactor replaces the last level with a string, and inspect then prints a
|
|
72
|
+
// QUOTED `'[Object]'` instead of its own bare `[Object]`.
|
|
73
|
+
return node_util_1.default.inspect((0, redact_1.redactSecrets)(arg, undefined, (inspectOptions.depth ?? resolveDepth()) + 2), inspectOptions);
|
|
57
74
|
});
|
|
58
75
|
return node_util_1.default.formatWithOptions(inspectOptions, message, ...widened);
|
|
59
76
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-splat.js","sourceRoot":"","sources":["../../../../../src/modules/logger/formatting/deep-splat.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA4D;AAC5D,0DAA6B;AAC7B,qDAAiD;AAEjD,wFAAwF;AACxF,MAAM,mBAAmB,GAAG,eAAe,CAAC;AAE5C,uQAAuQ;AACvQ,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEhC,MAAM,YAAY,GAAG,GAAW,EAAE;IAChC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;IAE5D,8HAA8H;IAC9H,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACzD,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAE/C,mJAAmJ;IACnJ,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,GAAwB,EAAE;IACpD,OAAO;QACL,KAAK,EAAE,YAAY,EAAE;QACrB,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,QAAQ;KACtB,CAAC;AACJ,CAAC,CAAC;AAEF,2TAA2T;AACpT,MAAM,gBAAgB,GAAG,CAAC,IAIhC,EAAU,EAAE;IACX,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,GAAG,mBAAmB,EAAE,EAAE,GAAG,IAAI,CAAC;IAEvE,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;IAEhG,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACtC,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,aAAa,GAAG,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC;QAE9D,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,GAAG,CAAC;QACb,CAAC;QAED,0TAA0T;QAC1T,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,OAAO,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,IAAI,YAAY,EAAE,EAAE,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,OAAO,GAAG,CAAC;QACb,CAAC;QAED,kOAAkO;QAClO,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,OAAO,KAAK,8BAAa,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;QACrE,CAAC;QAED,OAAO,mBAAI,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"deep-splat.js","sourceRoot":"","sources":["../../../../../src/modules/logger/formatting/deep-splat.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../../src/modules/logger/winston/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAG/C,qBAAa,aAAc,SAAQ,UAAU;IAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAoC;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IAEzC,OAAO;IAKP,4KAA4K;IAC5K,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,aAAa;IAcvE,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;KAAE;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../../src/modules/logger/winston/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAG/C,qBAAa,aAAc,SAAQ,UAAU;IAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAoC;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IAEzC,OAAO;IAKP,4KAA4K;IAC5K,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,aAAa;IAcvE,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;KAAE;IAYjF,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO;CAOlD;AAED,OAAO,EAAE,aAAa,IAAI,MAAM,EAAE,CAAC"}
|
|
@@ -22,6 +22,13 @@ class WinstonLogger extends base_1.BaseLogger {
|
|
|
22
22
|
return cached;
|
|
23
23
|
}
|
|
24
24
|
write(opts) {
|
|
25
|
+
// Asked BEFORE handing the line to winston. The deep-splat format - redaction plus
|
|
26
|
+
// `util.inspect` over the whole argument graph - runs as part of winston's pipeline, so a line
|
|
27
|
+
// the level was going to discard was formatted in full first. Measured: 3.6 us per discarded
|
|
28
|
+
// line, against 0.08 us once gated.
|
|
29
|
+
if (!this._logger.isLevelEnabled(opts.level)) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
25
32
|
this._logger.log(opts.level, this._formattedPrefix + opts.message, ...opts.args);
|
|
26
33
|
}
|
|
27
34
|
child(opts) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../../../src/modules/logger/winston/logger.ts"],"names":[],"mappings":";;;AAEA,kCAAqC;AAErC,qCAAgD;AAEhD,MAAa,aAAc,SAAQ,iBAAU;aAC5B,UAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;IAGxD,YAAoB,KAAa,EAAE,MAAsB;QACvD,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,4KAA4K;IAC5K,MAAM,CAAC,GAAG,CAAC,KAAa,EAAE,YAA6B;QACrD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,IAAI,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE,6BAAoB,CAAC,CAAC;YACxD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,KAAK,CAAC,IAAiE;QAC/E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACnF,CAAC;IAES,KAAK,CAAC,IAAuB;QACrC,IAAI,IAAI,CAAC,OAAO,KAAK,6BAAoB,EAAE,CAAC;YAC1C,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../../../src/modules/logger/winston/logger.ts"],"names":[],"mappings":";;;AAEA,kCAAqC;AAErC,qCAAgD;AAEhD,MAAa,aAAc,SAAQ,iBAAU;aAC5B,UAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;IAGxD,YAAoB,KAAa,EAAE,MAAsB;QACvD,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,4KAA4K;IAC5K,MAAM,CAAC,GAAG,CAAC,KAAa,EAAE,YAA6B;QACrD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,IAAI,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE,6BAAoB,CAAC,CAAC;YACxD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,KAAK,CAAC,IAAiE;QAC/E,mFAAmF;QACnF,+FAA+F;QAC/F,6FAA6F;QAC7F,oCAAoC;QACpC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACnF,CAAC;IAES,KAAK,CAAC,IAAuB;QACrC,IAAI,IAAI,CAAC,OAAO,KAAK,6BAAoB,EAAE,CAAC;YAC1C,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;;AA1CH,sCA2CC;AAEyB,+BAAM"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AnyObject, THttpMethod } from '../../../../common';
|
|
2
2
|
import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
|
|
3
3
|
import { BaseNetworkRequest } from '../base-network-request.helper';
|
|
4
|
+
import type { ILogger } from '../../../../modules/logger/common/types';
|
|
4
5
|
import { AbstractNetworkFetchableHelper, IRequestOptions } from './base-fetcher';
|
|
5
6
|
export interface IAxiosRequestOptions extends AxiosRequestConfig, IRequestOptions {
|
|
6
7
|
url: string;
|
|
@@ -8,14 +9,33 @@ export interface IAxiosRequestOptions extends AxiosRequestConfig, IRequestOption
|
|
|
8
9
|
params?: AnyObject;
|
|
9
10
|
body?: AnyObject;
|
|
10
11
|
headers?: AnyObject;
|
|
12
|
+
/**
|
|
13
|
+
* Declared so the opt-out is TYPED. It used to reach the agent only through the
|
|
14
|
+
* `[extra: string]: any` index signature on {@link IRequestOptions}, which meant nothing told a
|
|
15
|
+
* caller the option existed, and nothing stopped a typo from silently doing nothing.
|
|
16
|
+
*/
|
|
17
|
+
rejectUnauthorized?: boolean;
|
|
11
18
|
}
|
|
12
19
|
export declare class AxiosFetcher extends AbstractNetworkFetchableHelper<'axios', IAxiosRequestOptions, AxiosResponse<any, any>['data'], AxiosInstance> {
|
|
20
|
+
/**
|
|
21
|
+
* One agent for the instance, not one per request. Built here so TLS verification is decided
|
|
22
|
+
* ONCE, at construction, rather than per call - and so connections are actually reused: a fresh
|
|
23
|
+
* agent per request forces a new TCP and TLS handshake every time (measured: 10 handshakes for 10
|
|
24
|
+
* requests, versus 1).
|
|
25
|
+
*/
|
|
26
|
+
private readonly httpsAgent;
|
|
13
27
|
constructor(opts: {
|
|
14
28
|
name: string;
|
|
15
29
|
defaultConfigs: AxiosRequestConfig;
|
|
16
|
-
logger?:
|
|
30
|
+
logger?: ILogger;
|
|
31
|
+
/**
|
|
32
|
+
* Turns OFF certificate verification for this instance. Node's own default is `true` and so is
|
|
33
|
+
* this one; the previous code defaulted it to `false`, which silently accepted any certificate
|
|
34
|
+
* on every HTTPS request the framework made.
|
|
35
|
+
*/
|
|
36
|
+
rejectUnauthorized?: boolean;
|
|
17
37
|
});
|
|
18
|
-
send<T = any>(opts: IAxiosRequestOptions, logger?:
|
|
38
|
+
send<T = any>(opts: IAxiosRequestOptions, logger?: ILogger): Promise<axios.AxiosResponse<T, any, {}>>;
|
|
19
39
|
}
|
|
20
40
|
export interface IAxiosNetworkRequestOptions {
|
|
21
41
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axios-fetcher.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/network/http-request/fetcher/axios-fetcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAQ,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,8BAA8B,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjF,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB,EAAE,eAAe;IAC/E,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"axios-fetcher.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/network/http-request/fetcher/axios-fetcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAQ,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,8BAA8B,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjF,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB,EAAE,eAAe;IAC/E,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,qBAAa,YAAa,SAAQ,8BAA8B,CAC9D,OAAO,EACP,oBAAoB,EAGpB,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,EAC/B,aAAa,CACd;IACC;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;gBAE7B,IAAI,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,kBAAkB,CAAC;QACnC,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB;;;;WAIG;QACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B;IAaQ,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,CAAC,EAAE,OAAO;CA2BpE;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,GAAG;QACpD,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,qBAAa,mBAAoB,SAAQ,kBAAkB,CAAC,OAAO,CAAC;gBACtD,IAAI,EAAE,2BAA2B;CAwB9C"}
|
|
@@ -16,6 +16,10 @@ class AxiosFetcher extends base_fetcher_1.AbstractNetworkFetchableHelper {
|
|
|
16
16
|
super({ name: opts.name, variant: 'axios' });
|
|
17
17
|
const { defaultConfigs } = opts;
|
|
18
18
|
opts?.logger?.info('Creating new network request worker instance! Name: %s', this.name);
|
|
19
|
+
this.httpsAgent = new node_https_1.default.Agent({
|
|
20
|
+
keepAlive: true,
|
|
21
|
+
rejectUnauthorized: opts.rejectUnauthorized ?? true,
|
|
22
|
+
});
|
|
19
23
|
this.worker = axios_1.default.create({ ...defaultConfigs });
|
|
20
24
|
}
|
|
21
25
|
send(opts, logger) {
|
|
@@ -31,9 +35,14 @@ class AxiosFetcher extends base_fetcher_1.AbstractNetworkFetchableHelper {
|
|
|
31
35
|
};
|
|
32
36
|
const protocol = this.getProtocol(url);
|
|
33
37
|
if (protocol === common_1.HTTP.Protocols.HTTPS) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
38
|
+
// A caller's own agent WINS. The previous code assigned after the `...rest` spread, so a
|
|
39
|
+
// hardened agent - custom CA, pinning, mTLS - was overwritten and the secure path was
|
|
40
|
+
// unreachable through the public seam.
|
|
41
|
+
props.httpsAgent =
|
|
42
|
+
rest.httpsAgent ??
|
|
43
|
+
(opts.rejectUnauthorized === undefined
|
|
44
|
+
? this.httpsAgent
|
|
45
|
+
: new node_https_1.default.Agent({ keepAlive: true, rejectUnauthorized: opts.rejectUnauthorized }));
|
|
37
46
|
}
|
|
38
47
|
logger?.for(this.send.name).info('URL: %s | Props: %s', url, (0, redact_1.redactSecrets)(props));
|
|
39
48
|
return this.worker.request(props);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axios-fetcher.js","sourceRoot":"","sources":["../../../../../../src/modules/network/http-request/fetcher/axios-fetcher.ts"],"names":[],"mappings":";;;;;;AAAA,qCAAwD;AACxD,4CAAgD;AAChD,kDAAgF;AAChF,4DAA+B;AAC/B,uDAA6C;AAC7C,gFAAoE;
|
|
1
|
+
{"version":3,"file":"axios-fetcher.js","sourceRoot":"","sources":["../../../../../../src/modules/network/http-request/fetcher/axios-fetcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { THttpMethod } from '../../../../common/constants/http';
|
|
2
2
|
import { AnyObject } from '../../../../common/types';
|
|
3
|
+
import type { ILogger } from '../../../../modules/logger/common/types';
|
|
3
4
|
import { TFetcherVariant } from '../types';
|
|
4
5
|
export interface IRequestOptions {
|
|
5
6
|
url: string;
|
|
@@ -9,13 +10,13 @@ export interface IRequestOptions {
|
|
|
9
10
|
[extra: symbol | string]: any;
|
|
10
11
|
}
|
|
11
12
|
export interface IFetchable<V extends TFetcherVariant, RQ extends IRequestOptions, RS, W = unknown> {
|
|
12
|
-
send(opts: RQ, logger?:
|
|
13
|
-
get(opts: RQ, logger?:
|
|
14
|
-
post(opts: RQ, logger?:
|
|
15
|
-
put(opts: RQ, logger?:
|
|
16
|
-
patch(opts: RQ, logger?:
|
|
17
|
-
delete(opts: RQ, logger?:
|
|
18
|
-
query(opts: RQ, logger?:
|
|
13
|
+
send(opts: RQ, logger?: ILogger): Promise<RS>;
|
|
14
|
+
get(opts: RQ, logger?: ILogger): Promise<RS>;
|
|
15
|
+
post(opts: RQ, logger?: ILogger): Promise<RS>;
|
|
16
|
+
put(opts: RQ, logger?: ILogger): Promise<RS>;
|
|
17
|
+
patch(opts: RQ, logger?: ILogger): Promise<RS>;
|
|
18
|
+
delete(opts: RQ, logger?: ILogger): Promise<RS>;
|
|
19
|
+
query(opts: RQ, logger?: ILogger): Promise<RS>;
|
|
19
20
|
getVariant(): V;
|
|
20
21
|
getWorker(): W;
|
|
21
22
|
}
|
|
@@ -28,15 +29,15 @@ export declare abstract class AbstractNetworkFetchableHelper<V extends TFetcherV
|
|
|
28
29
|
name: string;
|
|
29
30
|
variant: V;
|
|
30
31
|
});
|
|
31
|
-
abstract send(opts: RQ, logger?:
|
|
32
|
+
abstract send(opts: RQ, logger?: ILogger): Promise<RS>;
|
|
32
33
|
getProtocol(url: string): "http" | "https";
|
|
33
34
|
getVariant(): V;
|
|
34
35
|
getWorker(): W;
|
|
35
|
-
get(opts: RQ, logger?:
|
|
36
|
-
post(opts: RQ, logger?:
|
|
37
|
-
put(opts: RQ, logger?:
|
|
38
|
-
patch(opts: RQ, logger?:
|
|
39
|
-
delete(opts: RQ, logger?:
|
|
40
|
-
query(opts: RQ, logger?:
|
|
36
|
+
get(opts: RQ, logger?: ILogger): Promise<RS>;
|
|
37
|
+
post(opts: RQ, logger?: ILogger): Promise<RS>;
|
|
38
|
+
put(opts: RQ, logger?: ILogger): Promise<RS>;
|
|
39
|
+
patch(opts: RQ, logger?: ILogger): Promise<RS>;
|
|
40
|
+
delete(opts: RQ, logger?: ILogger): Promise<RS>;
|
|
41
|
+
query(opts: RQ, logger?: ILogger): Promise<RS>;
|
|
41
42
|
}
|
|
42
43
|
//# sourceMappingURL=base-fetcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-fetcher.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/network/http-request/fetcher/base-fetcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"base-fetcher.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/network/http-request/fetcher/base-fetcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;CAC/B;AAED,MAAM,WAAW,UAAU,CACzB,CAAC,SAAS,eAAe,EACzB,EAAE,SAAS,eAAe,EAC1B,EAAE,EACF,CAAC,GAAG,OAAO;IAEX,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9C,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7C,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9C,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/C,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;IAE/C,UAAU,IAAI,CAAC,CAAC;IAChB,SAAS,IAAI,CAAC,CAAC;CAChB;AAED,yNAAyN;AACzN,8BAAsB,8BAA8B,CAClD,CAAC,SAAS,eAAe,EACzB,EAAE,SAAS,eAAe,EAC1B,EAAE,EACF,CAAC,GAAG,OAAO,CACX,YAAW,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACnC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IACrB,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;gBAER,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC,CAAA;KAAE;IAK9C,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC;IAEtD,WAAW,CAAC,GAAG,EAAE,MAAM;IAIvB,UAAU;IAIV,SAAS,IAAI,CAAC;IAId,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO;IAK9B,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO;IAK/B,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO;IAK9B,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO;IAKhC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO;IAKjC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO;CAIjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-fetcher.js","sourceRoot":"","sources":["../../../../../../src/modules/network/http-request/fetcher/base-fetcher.ts"],"names":[],"mappings":";;;AAAA,kDAA4D;
|
|
1
|
+
{"version":3,"file":"base-fetcher.js","sourceRoot":"","sources":["../../../../../../src/modules/network/http-request/fetcher/base-fetcher.ts"],"names":[],"mappings":";;;AAAA,kDAA4D;AAiC5D,yNAAyN;AACzN,MAAsB,8BAA8B;IAUlD,YAAY,IAAkC;QAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9B,CAAC;IAID,WAAW,CAAC,GAAW;QACrB,OAAO,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,WAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC9E,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,GAAG,CAAC,IAAQ,EAAE,MAAgB;QAC5B,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,WAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,CAAC,IAAQ,EAAE,MAAgB;QAC7B,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,WAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IAED,GAAG,CAAC,IAAQ,EAAE,MAAgB;QAC5B,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,WAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,IAAQ,EAAE,MAAgB;QAC9B,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,WAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,CAAC,IAAQ,EAAE,MAAgB;QAC/B,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,WAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,IAAQ,EAAE,MAAgB;QAC9B,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,WAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;IACpE,CAAC;CACF;AA1DD,wEA0DC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { THttpMethod } from '../../../../common/constants/http';
|
|
2
2
|
import { AnyObject } from '../../../../common/types';
|
|
3
3
|
import { BaseNetworkRequest } from '../base-network-request.helper';
|
|
4
|
+
import type { ILogger } from '../../../../modules/logger/common/types';
|
|
4
5
|
import { AbstractNetworkFetchableHelper, IRequestOptions } from './base-fetcher';
|
|
5
6
|
export interface INodeFetchRequestOptions extends RequestInit, IRequestOptions {
|
|
6
7
|
url: string;
|
|
@@ -12,9 +13,9 @@ export declare class NodeFetcher extends AbstractNetworkFetchableHelper<'node-fe
|
|
|
12
13
|
constructor(opts: {
|
|
13
14
|
name: string;
|
|
14
15
|
defaultConfigs: RequestInit;
|
|
15
|
-
logger?:
|
|
16
|
+
logger?: ILogger;
|
|
16
17
|
});
|
|
17
|
-
send(opts: INodeFetchRequestOptions, logger?:
|
|
18
|
+
send(opts: INodeFetchRequestOptions, logger?: ILogger): Promise<Response>;
|
|
18
19
|
}
|
|
19
20
|
export interface INodeFetchNetworkRequestOptions {
|
|
20
21
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-fetcher.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/network/http-request/fetcher/node-fetcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,8BAA8B,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjF,MAAM,WAAW,wBAAyB,SAAQ,WAAW,EAAE,eAAe;IAC5E,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,qBAAa,WAAY,SAAQ,8BAA8B,CAC7D,YAAY,EACZ,wBAAwB,EACxB,OAAO,CAAC,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,EACjC,OAAO,KAAK,CACb;IACC,OAAO,CAAC,cAAc,CAAc;gBAExB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,WAAW,CAAC;QAAC,MAAM,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"node-fetcher.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/network/http-request/fetcher/node-fetcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,8BAA8B,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjF,MAAM,WAAW,wBAAyB,SAAQ,WAAW,EAAE,eAAe;IAC5E,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,qBAAa,WAAY,SAAQ,8BAA8B,CAC7D,YAAY,EACZ,wBAAwB,EACxB,OAAO,CAAC,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,EACjC,OAAO,KAAK,CACb;IACC,OAAO,CAAC,cAAc,CAAc;gBAExB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,WAAW,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE;IASlE,IAAI,CAAC,IAAI,EAAE,wBAAwB,EAAE,MAAM,CAAC,EAAE,OAAO;CAkErE;AAED,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,WAAW,GAAG;QAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,qBAAa,uBAAwB,SAAQ,kBAAkB,CAAC,YAAY,CAAC;gBAC/D,IAAI,EAAE,+BAA+B;CAsBlD"}
|
|
@@ -42,9 +42,18 @@ class NodeFetcher extends base_fetcher_1.AbstractNetworkFetchableHelper {
|
|
|
42
42
|
const requestUrl = serializedParams
|
|
43
43
|
? `${url}${url.includes('?') ? '&' : '?'}${serializedParams}`
|
|
44
44
|
: url;
|
|
45
|
+
// The body is NEVER logged, only its size. `fetch` bodies are strings, and `redactSecrets` walks
|
|
46
|
+
// object keys - so a JSON credential payload passed straight through as a string was printed in
|
|
47
|
+
// full, with no key for the redactor to match on. Headers are normalised through `Headers` first
|
|
48
|
+
// because the `string[][]` form is a list of tuples, which key matching cannot see either.
|
|
49
|
+
const loggableConfigs = {
|
|
50
|
+
...requestConfigs,
|
|
51
|
+
body: typeof body === 'string' ? `[body ${body.length} chars]` : body ? '[body]' : undefined,
|
|
52
|
+
headers: headers ? Object.fromEntries(new Headers(headers)) : undefined,
|
|
53
|
+
};
|
|
45
54
|
logger
|
|
46
55
|
?.for(this.send.name)
|
|
47
|
-
.info('URL: %s | Props: %s | Timeout: %s', url, (0, redact_1.redactSecrets)(
|
|
56
|
+
.info('URL: %s | Props: %s | Timeout: %s', url, (0, redact_1.redactSecrets)(loggableConfigs), timeout);
|
|
48
57
|
try {
|
|
49
58
|
const rs = await fetch(requestUrl, requestConfigs);
|
|
50
59
|
return rs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-fetcher.js","sourceRoot":"","sources":["../../../../../../src/modules/network/http-request/fetcher/node-fetcher.ts"],"names":[],"mappings":";;;AAAA,4CAAgD;AAChD,kDAA4D;AAE5D,uDAA6C;AAC7C,gFAAoE;
|
|
1
|
+
{"version":3,"file":"node-fetcher.js","sourceRoot":"","sources":["../../../../../../src/modules/network/http-request/fetcher/node-fetcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-tcp-server.helper.d.ts","sourceRoot":"","sources":["../../../../../src/modules/network/tcp-socket/base-tcp-server.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"base-tcp-server.helper.d.ts","sourceRoot":"","sources":["../../../../../src/modules/network/tcp-socket/base-tcp-server.helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.BaseNetworkTcpServer = void 0;
|
|
7
4
|
const base_1 = require("../../../modules/base");
|
|
@@ -9,7 +6,6 @@ const error_1 = require("../../../modules/error");
|
|
|
9
6
|
const date_utility_1 = require("../../../utilities/date.utility");
|
|
10
7
|
const parse_utility_1 = require("../../../utilities/parse.utility");
|
|
11
8
|
const promise_utility_1 = require("../../../utilities/promise.utility");
|
|
12
|
-
const omit_1 = __importDefault(require("lodash/omit"));
|
|
13
9
|
class BaseNetworkTcpServer extends base_1.BaseHelper {
|
|
14
10
|
constructor(opts) {
|
|
15
11
|
super({
|
|
@@ -111,7 +107,9 @@ class BaseNetworkTcpServer extends base_1.BaseHelper {
|
|
|
111
107
|
if (authenticateTimeout) {
|
|
112
108
|
clearTimeout(authenticateTimeout);
|
|
113
109
|
}
|
|
114
|
-
|
|
110
|
+
// `delete`, not `omit`: omit rebuilds the WHOLE registry per disconnect, so a disconnect
|
|
111
|
+
// storm is O(n^2) - measured at 5000 clients, 2.3s of drain with a 2.2s worst-case stall.
|
|
112
|
+
delete this.clients[id];
|
|
115
113
|
});
|
|
116
114
|
for (const extraEvent in this.extraEvents) {
|
|
117
115
|
socket.on(extraEvent, args => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-tcp-server.helper.js","sourceRoot":"","sources":["../../../../../src/modules/network/tcp-socket/base-tcp-server.helper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base-tcp-server.helper.js","sourceRoot":"","sources":["../../../../../src/modules/network/tcp-socket/base-tcp-server.helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -204,10 +204,13 @@ class AbstractRedisHelper extends base_1.BaseHelper {
|
|
|
204
204
|
if (!payload.length) {
|
|
205
205
|
return;
|
|
206
206
|
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
207
|
+
// A plain loop, not spread-in-reduce: `{ ...current, [key]: v }` copies every key already
|
|
208
|
+
// accumulated on EVERY element, which is O(n^2). Measured at 10k keys: 2.2s of blocked event
|
|
209
|
+
// loop, against 1.5ms for this.
|
|
210
|
+
const serialized = {};
|
|
211
|
+
for (const { key, value } of payload) {
|
|
212
|
+
serialized[key] = JSON.stringify(value);
|
|
213
|
+
}
|
|
211
214
|
await this.client.mset(serialized);
|
|
212
215
|
if (!options?.log) {
|
|
213
216
|
return;
|