@sjawhar/pi-legion 9.1.1 → 9.1.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/legion.js +74 -15
- package/package.json +1 -1
package/dist/legion.js
CHANGED
|
@@ -15477,6 +15477,15 @@ var CHECKS = {
|
|
|
15477
15477
|
};
|
|
15478
15478
|
var MAX_DETAIL_BYTES = 1024;
|
|
15479
15479
|
var HELD = "\uFFFF";
|
|
15480
|
+
var C1_INTRODUCER = "\uFFFE";
|
|
15481
|
+
var OPENER = "\uFDD0";
|
|
15482
|
+
var HELD_READINGS = [
|
|
15483
|
+
[/(?:\uffff\[|\ufffe)[0-?]*[!-)+,/-]*/g, OPENER],
|
|
15484
|
+
[/\ufdd0[@-~]?/g, HELD],
|
|
15485
|
+
[/\uffff/g, " "]
|
|
15486
|
+
];
|
|
15487
|
+
var HELD_SEQUENCE = String.raw`\ufffe|\ufdd0|\uffff(?:\[[0-?]*[@-~])?`;
|
|
15488
|
+
var JWT_FIRST_HELD_SEQUENCE = String.raw`\ufffe|\uffff(?:\[[0-?]*[@-~])?`;
|
|
15480
15489
|
function isSpace(code) {
|
|
15481
15490
|
return code >= 9 && code <= 13 || code === 32 || code === 133 || code === 160 || code === 5760 || code >= 8192 && code <= 8202 || code === 8232 || code === 8233 || code === 8239 || code === 8287 || code === 12288;
|
|
15482
15491
|
}
|
|
@@ -15495,33 +15504,83 @@ function truncateUtf8(text, max) {
|
|
|
15495
15504
|
var CREDENTIAL_RULES = [
|
|
15496
15505
|
[/(?<![a-z0-9+.-])([0-9+.-]*[a-z][a-z0-9+.-]*:\/\/)[^ /?#]+@/gi, "$1***@"],
|
|
15497
15506
|
[
|
|
15498
|
-
/([?&](?:token|key|secret|password|access_token|refresh_token|id_token|api_key|apikey|client_secret|sig|x-amz-security-token|x-amz-signature)=)[^ &#"'<>]+/gi,
|
|
15507
|
+
/([?&](?:token|key|secret|password|access_token|accesstoken|refresh_token|id_token|auth_token|private_token|api_key|apikey|client_secret|sig|signature|x-amz-security-token|x-amz-signature|x-goog-signature)=)[^ &#"'<>]+/gi,
|
|
15508
|
+
"$1***"
|
|
15509
|
+
],
|
|
15510
|
+
[
|
|
15511
|
+
/\b(password[ \ufffe\uffff]*=[ \ufffe\uffff]*)(?:(')(?:[^'\\]|\\.)*('?)|[^ &#"'<>]+)/gi,
|
|
15512
|
+
"$1$2***$3"
|
|
15513
|
+
],
|
|
15514
|
+
[
|
|
15515
|
+
/(authorization\\?["']?[ \ufffe\uffff]*[:=][ \ufffe\uffff]*)(?:(\\["'](?:(?:bearer|basic|token|digest)[ \ufffe\uffff]+)?)[^"'\\]+|(["'](?:(?:bearer|basic|token|digest)[ \ufffe\uffff]+)?)(?:[^"'\\]|\\.)+|(\[?(?:(?:bearer|basic|token|digest)[ \ufffe\uffff]+)?)[^)\]}>]+)/gi,
|
|
15516
|
+
"$1$2$3$4***"
|
|
15517
|
+
],
|
|
15518
|
+
[
|
|
15519
|
+
new RegExp(String.raw`((?:api-key|ocp-apim-subscription-key|x-subscription-token)\\?["']?[ \ufffe\uffff]*[:=][ \ufffe\uffff]*\\?["']?)(?:[A-Za-z0-9._~+/=*-]|${HELD_SEQUENCE})+`, "gi"),
|
|
15520
|
+
"$1***"
|
|
15521
|
+
],
|
|
15522
|
+
[
|
|
15523
|
+
/(\\?["'](?:api_key|access_token)\\?["'][ \ufffe\uffff]*:[ \ufffe\uffff]*\\?["'])[^"'\\]+/gi,
|
|
15524
|
+
"$1***"
|
|
15525
|
+
],
|
|
15526
|
+
[
|
|
15527
|
+
new RegExp(String.raw`\b(bearer[ \ufffe\uffff]+)(?:[A-Za-z0-9._~+/=*-]|${HELD_SEQUENCE})+`, "gi"),
|
|
15499
15528
|
"$1***"
|
|
15500
15529
|
],
|
|
15501
15530
|
[
|
|
15502
|
-
|
|
15503
|
-
"$1
|
|
15531
|
+
new RegExp(String.raw`\b(gh[pousr]_|github_pat_)(?:[A-Za-z0-9._-]|${HELD_SEQUENCE}){20,}`, "g"),
|
|
15532
|
+
"$1***"
|
|
15504
15533
|
],
|
|
15505
|
-
[/(x-api-key["']?[ \uffff]*[:=][ \uffff]*["']?)[A-Za-z0-9._~+/=*\uffff-]+/gi, "$1***"],
|
|
15506
|
-
[/\b(bearer[ \uffff]+)[A-Za-z0-9._~+/=*\uffff-]+/gi, "$1***"],
|
|
15507
|
-
[/\b(gh[pousr]_|github_pat_)[A-Za-z0-9._\uffff-]{20,}/g, "$1***"],
|
|
15508
15534
|
[
|
|
15509
|
-
|
|
15535
|
+
new RegExp(String.raw`(?:(?=eyJ)(?<!\uffff\[[0-?]*(?:[@-~]?|\\u[0-9A-Fa-f]{4}))(?:(?<![A-Za-z0-9_\ufffe\uffff-])|(?<=%[0-9A-Fa-f]{2}|\\u[0-9A-Fa-f]{4}))eyJ(?:[A-Za-z0-9_-]|${JWT_FIRST_HELD_SEQUENCE}){8,}|(?<=\uffff)eyJ(?:[A-Za-z0-9_-]|\ufffe){8,}|(?=eyJ)(?<=\uffff\[[0-?]*(?:[@-~]|\\u[0-9A-Fa-f]{4})?)eyJ[A-Za-z0-9_-]*\ufffe(?:[A-Za-z0-9_-]|\ufffe)*)\.(?:[A-Za-z0-9_-]|${HELD_SEQUENCE}){8,}\.(?:[A-Za-z0-9_-]|${HELD_SEQUENCE})*`, "g"),
|
|
15510
15536
|
"***"
|
|
15511
15537
|
],
|
|
15512
|
-
[
|
|
15513
|
-
|
|
15538
|
+
[
|
|
15539
|
+
new RegExp(String.raw`\b(sk-|dsp_|ya29\.|xox[a-z]-|glpat-|npm_)(?:[A-Za-z0-9_-]|${HELD_SEQUENCE}){20,}`, "g"),
|
|
15540
|
+
"$1***"
|
|
15541
|
+
],
|
|
15542
|
+
[new RegExp(String.raw`\b(AIza)(?:[A-Za-z0-9_-]|${HELD_SEQUENCE}){35,}`, "g"), "$1***"],
|
|
15543
|
+
[new RegExp(String.raw`\b(AKIA|ASIA)(?:(?:${HELD_SEQUENCE})*[A-Z0-9]){16}\b`, "g"), "$1***"]
|
|
15514
15544
|
];
|
|
15545
|
+
var MAX_REDACTION_PASSES = 8;
|
|
15546
|
+
function redactCredentials(text) {
|
|
15547
|
+
let line = text;
|
|
15548
|
+
for (let pass = 0;pass < MAX_REDACTION_PASSES; pass++) {
|
|
15549
|
+
const next = CREDENTIAL_RULES.reduce((redacted, [pattern, replacement]) => redacted.replace(pattern, replacement), line);
|
|
15550
|
+
if (next === line)
|
|
15551
|
+
break;
|
|
15552
|
+
line = next;
|
|
15553
|
+
}
|
|
15554
|
+
return line;
|
|
15555
|
+
}
|
|
15556
|
+
function withoutLastCodePoint(text) {
|
|
15557
|
+
const last = text.charCodeAt(text.length - 1);
|
|
15558
|
+
return text.slice(0, last >= 56320 && last <= 57343 && text.length > 1 ? -2 : -1);
|
|
15559
|
+
}
|
|
15515
15560
|
function cleanDetail(text) {
|
|
15516
15561
|
let marked = "";
|
|
15517
15562
|
for (const char of text) {
|
|
15518
15563
|
const code = char.codePointAt(0) ?? 0;
|
|
15519
|
-
const control = code < 32 || code >= 127 && code < 160;
|
|
15520
|
-
marked += isSpace(code) ? " " : control ? HELD : char;
|
|
15564
|
+
const control = code < 32 || code >= 127 && code < 160 || code === 65534 || code === 64976 || code === 65533;
|
|
15565
|
+
marked += isSpace(code) ? " " : code === 155 ? C1_INTRODUCER : control ? HELD : char;
|
|
15566
|
+
}
|
|
15567
|
+
let redacted = redactCredentials(marked);
|
|
15568
|
+
if (marked.includes(HELD) || marked.includes(C1_INTRODUCER)) {
|
|
15569
|
+
for (const [pattern, replacement] of HELD_READINGS) {
|
|
15570
|
+
const read = redacted.replace(pattern, replacement);
|
|
15571
|
+
if (read !== redacted)
|
|
15572
|
+
redacted = redactCredentials(read);
|
|
15573
|
+
}
|
|
15574
|
+
}
|
|
15575
|
+
const line = redacted.split(" ").filter((field) => field !== "").join(" ");
|
|
15576
|
+
let cut = truncateUtf8(line, MAX_DETAIL_BYTES).replace(/ +$/, "");
|
|
15577
|
+
if (cut.length < line.length) {
|
|
15578
|
+
while (redactCredentials(cut) !== cut) {
|
|
15579
|
+
const space = cut.lastIndexOf(" ");
|
|
15580
|
+
cut = space > 0 ? cut.slice(0, space) : withoutLastCodePoint(cut);
|
|
15581
|
+
}
|
|
15521
15582
|
}
|
|
15522
|
-
|
|
15523
|
-
const line = redacted.replaceAll(HELD, " ").split(" ").filter((field) => field !== "").join(" ");
|
|
15524
|
-
return truncateUtf8(line, MAX_DETAIL_BYTES);
|
|
15583
|
+
return cut;
|
|
15525
15584
|
}
|
|
15526
15585
|
function budgetLabel(ms) {
|
|
15527
15586
|
return ms % 1000 === 0 ? `${ms / 1000} s` : `${ms} ms`;
|
|
@@ -15641,7 +15700,7 @@ function onEnvoyRoleRegained(listener) {
|
|
|
15641
15700
|
// package.json
|
|
15642
15701
|
var package_default = {
|
|
15643
15702
|
name: "@sjawhar/pi-legion",
|
|
15644
|
-
version: "9.1.
|
|
15703
|
+
version: "9.1.2",
|
|
15645
15704
|
license: "Apache-2.0",
|
|
15646
15705
|
type: "module",
|
|
15647
15706
|
omp: {
|