@coana-tech/cli 14.12.73 → 14.12.75
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/cli.mjs +1 -1
- package/package.json +1 -1
- package/reachability-analyzers-cli.mjs +494 -1168
- package/repos/coana-tech/alucard/alucard.jar +0 -0
- package/repos/coana-tech/class-graph-analysis/dist/bundle/class-graph-analysis-cli.mjs +2230 -2199
- package/repos/coana-tech/class-graph-analysis/dist/bundle/tree-sitter.wasm +0 -0
- package/repos/coana-tech/goana/bin/goana-darwin-amd64.gz +0 -0
- package/repos/coana-tech/goana/bin/goana-darwin-arm64.gz +0 -0
- package/repos/coana-tech/goana/bin/goana-linux-amd64.gz +0 -0
- package/repos/coana-tech/goana/bin/goana-linux-arm64.gz +0 -0
|
@@ -4127,13 +4127,13 @@ var require_safe_stable_stringify = __commonJS({
|
|
|
4127
4127
|
"../../node_modules/.pnpm/safe-stable-stringify@2.4.3/node_modules/safe-stable-stringify/index.js"(exports, module) {
|
|
4128
4128
|
"use strict";
|
|
4129
4129
|
var { hasOwnProperty: hasOwnProperty4 } = Object.prototype;
|
|
4130
|
-
var
|
|
4131
|
-
|
|
4132
|
-
|
|
4133
|
-
|
|
4134
|
-
exports.stringify =
|
|
4130
|
+
var stringify3 = configure();
|
|
4131
|
+
stringify3.configure = configure;
|
|
4132
|
+
stringify3.stringify = stringify3;
|
|
4133
|
+
stringify3.default = stringify3;
|
|
4134
|
+
exports.stringify = stringify3;
|
|
4135
4135
|
exports.configure = configure;
|
|
4136
|
-
module.exports =
|
|
4136
|
+
module.exports = stringify3;
|
|
4137
4137
|
var strEscapeSequencesRegExp = /[\u0000-\u001f\u0022\u005c\ud800-\udfff]|[\ud800-\udbff](?![\udc00-\udfff])|(?:[^\ud800-\udbff]|^)[\udc00-\udfff]/;
|
|
4138
4138
|
function strEscape(str) {
|
|
4139
4139
|
if (str.length < 5e3 && !strEscapeSequencesRegExp.test(str)) {
|
|
@@ -4679,7 +4679,7 @@ ${originalIndentation}`;
|
|
|
4679
4679
|
return fail ? fail(value2) : void 0;
|
|
4680
4680
|
}
|
|
4681
4681
|
}
|
|
4682
|
-
function
|
|
4682
|
+
function stringify4(value2, replacer, space) {
|
|
4683
4683
|
if (arguments.length > 1) {
|
|
4684
4684
|
let spacer = "";
|
|
4685
4685
|
if (typeof space === "number") {
|
|
@@ -4701,7 +4701,7 @@ ${originalIndentation}`;
|
|
|
4701
4701
|
}
|
|
4702
4702
|
return stringifySimple("", value2, []);
|
|
4703
4703
|
}
|
|
4704
|
-
return
|
|
4704
|
+
return stringify4;
|
|
4705
4705
|
}
|
|
4706
4706
|
}
|
|
4707
4707
|
});
|
|
@@ -4712,14 +4712,14 @@ var require_json = __commonJS({
|
|
|
4712
4712
|
"use strict";
|
|
4713
4713
|
var format3 = require_format();
|
|
4714
4714
|
var { MESSAGE } = require_triple_beam();
|
|
4715
|
-
var
|
|
4715
|
+
var stringify3 = require_safe_stable_stringify();
|
|
4716
4716
|
function replacer(key, value2) {
|
|
4717
4717
|
if (typeof value2 === "bigint")
|
|
4718
4718
|
return value2.toString();
|
|
4719
4719
|
return value2;
|
|
4720
4720
|
}
|
|
4721
4721
|
module.exports = format3((info, opts) => {
|
|
4722
|
-
const jsonStringify =
|
|
4722
|
+
const jsonStringify = stringify3.configure(opts);
|
|
4723
4723
|
info[MESSAGE] = jsonStringify(info, opts.replacer || replacer, opts.space);
|
|
4724
4724
|
return info;
|
|
4725
4725
|
});
|
|
@@ -4832,7 +4832,7 @@ var require_ms = __commonJS({
|
|
|
4832
4832
|
options = options || {};
|
|
4833
4833
|
var type = typeof val2;
|
|
4834
4834
|
if (type === "string" && val2.length > 0) {
|
|
4835
|
-
return
|
|
4835
|
+
return parse14(val2);
|
|
4836
4836
|
} else if (type === "number" && isFinite(val2)) {
|
|
4837
4837
|
return options.long ? fmtLong(val2) : fmtShort(val2);
|
|
4838
4838
|
}
|
|
@@ -4840,7 +4840,7 @@ var require_ms = __commonJS({
|
|
|
4840
4840
|
"val is not a non-empty string or a valid number. val=" + JSON.stringify(val2)
|
|
4841
4841
|
);
|
|
4842
4842
|
};
|
|
4843
|
-
function
|
|
4843
|
+
function parse14(str) {
|
|
4844
4844
|
str = String(str);
|
|
4845
4845
|
if (str.length > 100) {
|
|
4846
4846
|
return;
|
|
@@ -5388,7 +5388,7 @@ var require_fecha_umd = __commonJS({
|
|
|
5388
5388
|
return literals.shift();
|
|
5389
5389
|
});
|
|
5390
5390
|
};
|
|
5391
|
-
function
|
|
5391
|
+
function parse14(dateStr, format4, i18n) {
|
|
5392
5392
|
if (i18n === void 0) {
|
|
5393
5393
|
i18n = {};
|
|
5394
5394
|
}
|
|
@@ -5483,7 +5483,7 @@ var require_fecha_umd = __commonJS({
|
|
|
5483
5483
|
}
|
|
5484
5484
|
var fecha = {
|
|
5485
5485
|
format: format3,
|
|
5486
|
-
parse:
|
|
5486
|
+
parse: parse14,
|
|
5487
5487
|
defaultI18n,
|
|
5488
5488
|
setGlobalDateI18n,
|
|
5489
5489
|
setGlobalDateMasks
|
|
@@ -5491,7 +5491,7 @@ var require_fecha_umd = __commonJS({
|
|
|
5491
5491
|
exports2.assign = assign;
|
|
5492
5492
|
exports2.default = fecha;
|
|
5493
5493
|
exports2.format = format3;
|
|
5494
|
-
exports2.parse =
|
|
5494
|
+
exports2.parse = parse14;
|
|
5495
5495
|
exports2.defaultI18n = defaultI18n;
|
|
5496
5496
|
exports2.setGlobalDateI18n = setGlobalDateI18n;
|
|
5497
5497
|
exports2.setGlobalDateMasks = setGlobalDateMasks;
|
|
@@ -20490,7 +20490,7 @@ var require_templates = __commonJS({
|
|
|
20490
20490
|
var TEMPLATE_REGEX = /(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi;
|
|
20491
20491
|
var STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g;
|
|
20492
20492
|
var STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/;
|
|
20493
|
-
var
|
|
20493
|
+
var ESCAPE_REGEX = /\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi;
|
|
20494
20494
|
var ESCAPES = /* @__PURE__ */ new Map([
|
|
20495
20495
|
["n", "\n"],
|
|
20496
20496
|
["r", "\r"],
|
|
@@ -20523,7 +20523,7 @@ var require_templates = __commonJS({
|
|
|
20523
20523
|
if (!Number.isNaN(number)) {
|
|
20524
20524
|
results.push(number);
|
|
20525
20525
|
} else if (matches = chunk2.match(STRING_REGEX)) {
|
|
20526
|
-
results.push(matches[2].replace(
|
|
20526
|
+
results.push(matches[2].replace(ESCAPE_REGEX, (m, escape3, character) => escape3 ? unescape3(escape3) : character));
|
|
20527
20527
|
} else {
|
|
20528
20528
|
throw new Error(`Invalid Chalk template style argument: ${chunk2} (in style '${name2}')`);
|
|
20529
20529
|
}
|
|
@@ -34180,7 +34180,7 @@ var require_ms3 = __commonJS({
|
|
|
34180
34180
|
options = options || {};
|
|
34181
34181
|
var type = typeof val2;
|
|
34182
34182
|
if (type === "string" && val2.length > 0) {
|
|
34183
|
-
return
|
|
34183
|
+
return parse14(val2);
|
|
34184
34184
|
} else if (type === "number" && isFinite(val2)) {
|
|
34185
34185
|
return options.long ? fmtLong(val2) : fmtShort(val2);
|
|
34186
34186
|
}
|
|
@@ -34188,7 +34188,7 @@ var require_ms3 = __commonJS({
|
|
|
34188
34188
|
"val is not a non-empty string or a valid number. val=" + JSON.stringify(val2)
|
|
34189
34189
|
);
|
|
34190
34190
|
};
|
|
34191
|
-
function
|
|
34191
|
+
function parse14(str) {
|
|
34192
34192
|
str = String(str);
|
|
34193
34193
|
if (str.length > 100) {
|
|
34194
34194
|
return;
|
|
@@ -36805,7 +36805,7 @@ var require_util2 = __commonJS({
|
|
|
36805
36805
|
var { InvalidArgumentError: InvalidArgumentError2 } = require_errors3();
|
|
36806
36806
|
var { Blob: Blob2 } = __require("buffer");
|
|
36807
36807
|
var nodeUtil = __require("util");
|
|
36808
|
-
var { stringify:
|
|
36808
|
+
var { stringify: stringify3 } = __require("querystring");
|
|
36809
36809
|
var { headerNameLowerCasedRecord } = require_constants();
|
|
36810
36810
|
var [nodeMajor, nodeMinor] = process.versions.node.split(".").map((v) => Number(v));
|
|
36811
36811
|
function nop() {
|
|
@@ -36820,7 +36820,7 @@ var require_util2 = __commonJS({
|
|
|
36820
36820
|
if (url3.includes("?") || url3.includes("#")) {
|
|
36821
36821
|
throw new Error('Query params cannot be passed when url already contains "?" or "#".');
|
|
36822
36822
|
}
|
|
36823
|
-
const stringified =
|
|
36823
|
+
const stringified = stringify3(queryParams);
|
|
36824
36824
|
if (stringified) {
|
|
36825
36825
|
url3 += "?" + stringified;
|
|
36826
36826
|
}
|
|
@@ -40678,7 +40678,7 @@ var require_dataURL = __commonJS({
|
|
|
40678
40678
|
}
|
|
40679
40679
|
return bytes;
|
|
40680
40680
|
}
|
|
40681
|
-
function collectAnHTTPQuotedString(input, position,
|
|
40681
|
+
function collectAnHTTPQuotedString(input, position, extractValue) {
|
|
40682
40682
|
const positionStart = position.position;
|
|
40683
40683
|
let value2 = "";
|
|
40684
40684
|
assert8(input[position.position] === '"');
|
|
@@ -40706,7 +40706,7 @@ var require_dataURL = __commonJS({
|
|
|
40706
40706
|
break;
|
|
40707
40707
|
}
|
|
40708
40708
|
}
|
|
40709
|
-
if (
|
|
40709
|
+
if (extractValue) {
|
|
40710
40710
|
return value2;
|
|
40711
40711
|
}
|
|
40712
40712
|
return input.slice(positionStart, position.position);
|
|
@@ -51435,7 +51435,7 @@ var require_util7 = __commonJS({
|
|
|
51435
51435
|
throw new Error("Invalid cookie max-age");
|
|
51436
51436
|
}
|
|
51437
51437
|
}
|
|
51438
|
-
function
|
|
51438
|
+
function stringify3(cookie) {
|
|
51439
51439
|
if (cookie.name.length === 0) {
|
|
51440
51440
|
return null;
|
|
51441
51441
|
}
|
|
@@ -51500,7 +51500,7 @@ var require_util7 = __commonJS({
|
|
|
51500
51500
|
}
|
|
51501
51501
|
module.exports = {
|
|
51502
51502
|
isCTLExcludingHtab,
|
|
51503
|
-
stringify:
|
|
51503
|
+
stringify: stringify3,
|
|
51504
51504
|
getHeadersList
|
|
51505
51505
|
};
|
|
51506
51506
|
}
|
|
@@ -51651,7 +51651,7 @@ var require_cookies = __commonJS({
|
|
|
51651
51651
|
"../../node_modules/.pnpm/undici@5.28.5/node_modules/undici/lib/cookies/index.js"(exports, module) {
|
|
51652
51652
|
"use strict";
|
|
51653
51653
|
var { parseSetCookie } = require_parse();
|
|
51654
|
-
var { stringify:
|
|
51654
|
+
var { stringify: stringify3, getHeadersList } = require_util7();
|
|
51655
51655
|
var { webidl } = require_webidl();
|
|
51656
51656
|
var { Headers } = require_headers();
|
|
51657
51657
|
function getCookies(headers) {
|
|
@@ -51693,9 +51693,9 @@ var require_cookies = __commonJS({
|
|
|
51693
51693
|
webidl.argumentLengthCheck(arguments, 2, { header: "setCookie" });
|
|
51694
51694
|
webidl.brandCheck(headers, Headers, { strict: false });
|
|
51695
51695
|
cookie = webidl.converters.Cookie(cookie);
|
|
51696
|
-
const str =
|
|
51696
|
+
const str = stringify3(cookie);
|
|
51697
51697
|
if (str) {
|
|
51698
|
-
headers.append("Set-Cookie",
|
|
51698
|
+
headers.append("Set-Cookie", stringify3(cookie));
|
|
51699
51699
|
}
|
|
51700
51700
|
}
|
|
51701
51701
|
webidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([
|
|
@@ -55338,9 +55338,9 @@ var require_minimatch = __commonJS({
|
|
|
55338
55338
|
throw new TypeError("pattern is too long");
|
|
55339
55339
|
}
|
|
55340
55340
|
};
|
|
55341
|
-
Minimatch2.prototype.parse =
|
|
55341
|
+
Minimatch2.prototype.parse = parse14;
|
|
55342
55342
|
var SUBPARSE = {};
|
|
55343
|
-
function
|
|
55343
|
+
function parse14(pattern, isSub) {
|
|
55344
55344
|
assertValidPattern2(pattern);
|
|
55345
55345
|
var options = this.options;
|
|
55346
55346
|
if (pattern === "**") {
|
|
@@ -59962,7 +59962,7 @@ var require_stringify = __commonJS({
|
|
|
59962
59962
|
"use strict";
|
|
59963
59963
|
var utils = require_utils4();
|
|
59964
59964
|
module.exports = (ast, options = {}) => {
|
|
59965
|
-
let
|
|
59965
|
+
let stringify3 = (node, parent2 = {}) => {
|
|
59966
59966
|
let invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent2);
|
|
59967
59967
|
let invalidNode = node.invalid === true && options.escapeInvalid === true;
|
|
59968
59968
|
let output = "";
|
|
@@ -59977,12 +59977,12 @@ var require_stringify = __commonJS({
|
|
|
59977
59977
|
}
|
|
59978
59978
|
if (node.nodes) {
|
|
59979
59979
|
for (let child of node.nodes) {
|
|
59980
|
-
output +=
|
|
59980
|
+
output += stringify3(child);
|
|
59981
59981
|
}
|
|
59982
59982
|
}
|
|
59983
59983
|
return output;
|
|
59984
59984
|
};
|
|
59985
|
-
return
|
|
59985
|
+
return stringify3(ast);
|
|
59986
59986
|
};
|
|
59987
59987
|
}
|
|
59988
59988
|
});
|
|
@@ -60236,7 +60236,7 @@ var require_fill_range = __commonJS({
|
|
|
60236
60236
|
while (value2[++index2] === "0") ;
|
|
60237
60237
|
return index2 > 0;
|
|
60238
60238
|
};
|
|
60239
|
-
var
|
|
60239
|
+
var stringify3 = (start, end2, options) => {
|
|
60240
60240
|
if (typeof start === "string" || typeof end2 === "string") {
|
|
60241
60241
|
return true;
|
|
60242
60242
|
}
|
|
@@ -60331,7 +60331,7 @@ var require_fill_range = __commonJS({
|
|
|
60331
60331
|
step = Math.max(Math.abs(step), 1);
|
|
60332
60332
|
let padded = zeros(startString) || zeros(endString) || zeros(stepString);
|
|
60333
60333
|
let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0;
|
|
60334
|
-
let toNumber = padded === false &&
|
|
60334
|
+
let toNumber = padded === false && stringify3(start, end2, options) === false;
|
|
60335
60335
|
let format3 = options.transform || transform2(toNumber);
|
|
60336
60336
|
if (options.toRegex && step === 1) {
|
|
60337
60337
|
return toRange(toMaxLen(start, maxLen), toMaxLen(end2, maxLen), true, options);
|
|
@@ -60464,7 +60464,7 @@ var require_expand = __commonJS({
|
|
|
60464
60464
|
"../../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/expand.js"(exports, module) {
|
|
60465
60465
|
"use strict";
|
|
60466
60466
|
var fill = require_fill_range();
|
|
60467
|
-
var
|
|
60467
|
+
var stringify3 = require_stringify();
|
|
60468
60468
|
var utils = require_utils4();
|
|
60469
60469
|
var append5 = (queue = "", stash = "", enclose = false) => {
|
|
60470
60470
|
let result = [];
|
|
@@ -60499,7 +60499,7 @@ var require_expand = __commonJS({
|
|
|
60499
60499
|
q = p.queue;
|
|
60500
60500
|
}
|
|
60501
60501
|
if (node.invalid || node.dollar) {
|
|
60502
|
-
q.push(append5(q.pop(),
|
|
60502
|
+
q.push(append5(q.pop(), stringify3(node, options)));
|
|
60503
60503
|
return;
|
|
60504
60504
|
}
|
|
60505
60505
|
if (node.type === "brace" && node.invalid !== true && node.nodes.length === 2) {
|
|
@@ -60513,7 +60513,7 @@ var require_expand = __commonJS({
|
|
|
60513
60513
|
}
|
|
60514
60514
|
let range2 = fill(...args, options);
|
|
60515
60515
|
if (range2.length === 0) {
|
|
60516
|
-
range2 =
|
|
60516
|
+
range2 = stringify3(node, options);
|
|
60517
60517
|
}
|
|
60518
60518
|
q.push(append5(q.pop(), range2));
|
|
60519
60519
|
node.nodes = [];
|
|
@@ -60658,7 +60658,7 @@ var require_constants6 = __commonJS({
|
|
|
60658
60658
|
var require_parse2 = __commonJS({
|
|
60659
60659
|
"../../node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/parse.js"(exports, module) {
|
|
60660
60660
|
"use strict";
|
|
60661
|
-
var
|
|
60661
|
+
var stringify3 = require_stringify();
|
|
60662
60662
|
var {
|
|
60663
60663
|
MAX_LENGTH,
|
|
60664
60664
|
CHAR_BACKSLASH,
|
|
@@ -60688,7 +60688,7 @@ var require_parse2 = __commonJS({
|
|
|
60688
60688
|
CHAR_NO_BREAK_SPACE,
|
|
60689
60689
|
CHAR_ZERO_WIDTH_NOBREAK_SPACE
|
|
60690
60690
|
} = require_constants6();
|
|
60691
|
-
var
|
|
60691
|
+
var parse14 = (input, options = {}) => {
|
|
60692
60692
|
if (typeof input !== "string") {
|
|
60693
60693
|
throw new TypeError("Expected a string");
|
|
60694
60694
|
}
|
|
@@ -60832,7 +60832,7 @@ var require_parse2 = __commonJS({
|
|
|
60832
60832
|
if (block.ranges > 0) {
|
|
60833
60833
|
block.ranges = 0;
|
|
60834
60834
|
let open = block.nodes.shift();
|
|
60835
|
-
block.nodes = [open, { type: "text", value:
|
|
60835
|
+
block.nodes = [open, { type: "text", value: stringify3(block) }];
|
|
60836
60836
|
}
|
|
60837
60837
|
push2({ type: "comma", value: value2 });
|
|
60838
60838
|
block.commas++;
|
|
@@ -60890,7 +60890,7 @@ var require_parse2 = __commonJS({
|
|
|
60890
60890
|
push2({ type: "eos" });
|
|
60891
60891
|
return ast;
|
|
60892
60892
|
};
|
|
60893
|
-
module.exports =
|
|
60893
|
+
module.exports = parse14;
|
|
60894
60894
|
}
|
|
60895
60895
|
});
|
|
60896
60896
|
|
|
@@ -60898,10 +60898,10 @@ var require_parse2 = __commonJS({
|
|
|
60898
60898
|
var require_braces = __commonJS({
|
|
60899
60899
|
"../../node_modules/.pnpm/braces@3.0.2/node_modules/braces/index.js"(exports, module) {
|
|
60900
60900
|
"use strict";
|
|
60901
|
-
var
|
|
60901
|
+
var stringify3 = require_stringify();
|
|
60902
60902
|
var compile4 = require_compile();
|
|
60903
60903
|
var expand2 = require_expand();
|
|
60904
|
-
var
|
|
60904
|
+
var parse14 = require_parse2();
|
|
60905
60905
|
var braces = (input, options = {}) => {
|
|
60906
60906
|
let output = [];
|
|
60907
60907
|
if (Array.isArray(input)) {
|
|
@@ -60921,12 +60921,12 @@ var require_braces = __commonJS({
|
|
|
60921
60921
|
}
|
|
60922
60922
|
return output;
|
|
60923
60923
|
};
|
|
60924
|
-
braces.parse = (input, options = {}) =>
|
|
60924
|
+
braces.parse = (input, options = {}) => parse14(input, options);
|
|
60925
60925
|
braces.stringify = (input, options = {}) => {
|
|
60926
60926
|
if (typeof input === "string") {
|
|
60927
|
-
return
|
|
60927
|
+
return stringify3(braces.parse(input, options), options);
|
|
60928
60928
|
}
|
|
60929
|
-
return
|
|
60929
|
+
return stringify3(input, options);
|
|
60930
60930
|
};
|
|
60931
60931
|
braces.compile = (input, options = {}) => {
|
|
60932
60932
|
if (typeof input === "string") {
|
|
@@ -61574,7 +61574,7 @@ var require_parse3 = __commonJS({
|
|
|
61574
61574
|
var syntaxError = (type, char) => {
|
|
61575
61575
|
return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`;
|
|
61576
61576
|
};
|
|
61577
|
-
var
|
|
61577
|
+
var parse14 = (input, options) => {
|
|
61578
61578
|
if (typeof input !== "string") {
|
|
61579
61579
|
throw new TypeError("Expected a string");
|
|
61580
61580
|
}
|
|
@@ -61723,7 +61723,7 @@ var require_parse3 = __commonJS({
|
|
|
61723
61723
|
output = token.close = `)$))${extglobStar}`;
|
|
61724
61724
|
}
|
|
61725
61725
|
if (token.inner.includes("*") && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) {
|
|
61726
|
-
const expression =
|
|
61726
|
+
const expression = parse14(rest, { ...options, fastpaths: false }).output;
|
|
61727
61727
|
output = token.close = `)${expression})${extglobStar})`;
|
|
61728
61728
|
}
|
|
61729
61729
|
if (token.prev.type === "bos") {
|
|
@@ -62248,7 +62248,7 @@ var require_parse3 = __commonJS({
|
|
|
62248
62248
|
}
|
|
62249
62249
|
return state;
|
|
62250
62250
|
};
|
|
62251
|
-
|
|
62251
|
+
parse14.fastpaths = (input, options) => {
|
|
62252
62252
|
const opts = { ...options };
|
|
62253
62253
|
const max = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;
|
|
62254
62254
|
const len = input.length;
|
|
@@ -62314,7 +62314,7 @@ var require_parse3 = __commonJS({
|
|
|
62314
62314
|
}
|
|
62315
62315
|
return source;
|
|
62316
62316
|
};
|
|
62317
|
-
module.exports =
|
|
62317
|
+
module.exports = parse14;
|
|
62318
62318
|
}
|
|
62319
62319
|
});
|
|
62320
62320
|
|
|
@@ -62324,7 +62324,7 @@ var require_picomatch = __commonJS({
|
|
|
62324
62324
|
"use strict";
|
|
62325
62325
|
var path10 = __require("path");
|
|
62326
62326
|
var scan = require_scan();
|
|
62327
|
-
var
|
|
62327
|
+
var parse14 = require_parse3();
|
|
62328
62328
|
var utils = require_utils5();
|
|
62329
62329
|
var constants4 = require_constants7();
|
|
62330
62330
|
var isObject3 = (val2) => val2 && typeof val2 === "object" && !Array.isArray(val2);
|
|
@@ -62412,7 +62412,7 @@ var require_picomatch = __commonJS({
|
|
|
62412
62412
|
picomatch5.isMatch = (str, patterns, options) => picomatch5(patterns, options)(str);
|
|
62413
62413
|
picomatch5.parse = (pattern, options) => {
|
|
62414
62414
|
if (Array.isArray(pattern)) return pattern.map((p) => picomatch5.parse(p, options));
|
|
62415
|
-
return
|
|
62415
|
+
return parse14(pattern, { ...options, fastpaths: false });
|
|
62416
62416
|
};
|
|
62417
62417
|
picomatch5.scan = (input, options) => scan(input, options);
|
|
62418
62418
|
picomatch5.compileRe = (state, options, returnOutput = false, returnState = false) => {
|
|
@@ -62438,10 +62438,10 @@ var require_picomatch = __commonJS({
|
|
|
62438
62438
|
}
|
|
62439
62439
|
let parsed = { negated: false, fastpaths: true };
|
|
62440
62440
|
if (options.fastpaths !== false && (input[0] === "." || input[0] === "*")) {
|
|
62441
|
-
parsed.output =
|
|
62441
|
+
parsed.output = parse14.fastpaths(input, options);
|
|
62442
62442
|
}
|
|
62443
62443
|
if (!parsed.output) {
|
|
62444
|
-
parsed =
|
|
62444
|
+
parsed = parse14(input, options);
|
|
62445
62445
|
}
|
|
62446
62446
|
return picomatch5.compileRe(parsed, options, returnOutput, returnState);
|
|
62447
62447
|
};
|
|
@@ -63054,7 +63054,7 @@ var require_semver = __commonJS({
|
|
|
63054
63054
|
var require_parse4 = __commonJS({
|
|
63055
63055
|
"../../node_modules/.pnpm/semver@7.7.1/node_modules/semver/functions/parse.js"(exports, module) {
|
|
63056
63056
|
var SemVer = require_semver();
|
|
63057
|
-
var
|
|
63057
|
+
var parse14 = (version3, options, throwErrors = false) => {
|
|
63058
63058
|
if (version3 instanceof SemVer) {
|
|
63059
63059
|
return version3;
|
|
63060
63060
|
}
|
|
@@ -63067,16 +63067,16 @@ var require_parse4 = __commonJS({
|
|
|
63067
63067
|
throw er;
|
|
63068
63068
|
}
|
|
63069
63069
|
};
|
|
63070
|
-
module.exports =
|
|
63070
|
+
module.exports = parse14;
|
|
63071
63071
|
}
|
|
63072
63072
|
});
|
|
63073
63073
|
|
|
63074
63074
|
// ../../node_modules/.pnpm/semver@7.7.1/node_modules/semver/functions/valid.js
|
|
63075
63075
|
var require_valid = __commonJS({
|
|
63076
63076
|
"../../node_modules/.pnpm/semver@7.7.1/node_modules/semver/functions/valid.js"(exports, module) {
|
|
63077
|
-
var
|
|
63077
|
+
var parse14 = require_parse4();
|
|
63078
63078
|
var valid = (version3, options) => {
|
|
63079
|
-
const v =
|
|
63079
|
+
const v = parse14(version3, options);
|
|
63080
63080
|
return v ? v.version : null;
|
|
63081
63081
|
};
|
|
63082
63082
|
module.exports = valid;
|
|
@@ -63086,9 +63086,9 @@ var require_valid = __commonJS({
|
|
|
63086
63086
|
// ../../node_modules/.pnpm/semver@7.7.1/node_modules/semver/functions/clean.js
|
|
63087
63087
|
var require_clean = __commonJS({
|
|
63088
63088
|
"../../node_modules/.pnpm/semver@7.7.1/node_modules/semver/functions/clean.js"(exports, module) {
|
|
63089
|
-
var
|
|
63089
|
+
var parse14 = require_parse4();
|
|
63090
63090
|
var clean = (version3, options) => {
|
|
63091
|
-
const s2 =
|
|
63091
|
+
const s2 = parse14(version3.trim().replace(/^[=v]+/, ""), options);
|
|
63092
63092
|
return s2 ? s2.version : null;
|
|
63093
63093
|
};
|
|
63094
63094
|
module.exports = clean;
|
|
@@ -63121,10 +63121,10 @@ var require_inc = __commonJS({
|
|
|
63121
63121
|
// ../../node_modules/.pnpm/semver@7.7.1/node_modules/semver/functions/diff.js
|
|
63122
63122
|
var require_diff = __commonJS({
|
|
63123
63123
|
"../../node_modules/.pnpm/semver@7.7.1/node_modules/semver/functions/diff.js"(exports, module) {
|
|
63124
|
-
var
|
|
63124
|
+
var parse14 = require_parse4();
|
|
63125
63125
|
var diff = (version1, version22) => {
|
|
63126
|
-
const v12 =
|
|
63127
|
-
const v2 =
|
|
63126
|
+
const v12 = parse14(version1, null, true);
|
|
63127
|
+
const v2 = parse14(version22, null, true);
|
|
63128
63128
|
const comparison = v12.compare(v2);
|
|
63129
63129
|
if (comparison === 0) {
|
|
63130
63130
|
return null;
|
|
@@ -63191,9 +63191,9 @@ var require_patch = __commonJS({
|
|
|
63191
63191
|
// ../../node_modules/.pnpm/semver@7.7.1/node_modules/semver/functions/prerelease.js
|
|
63192
63192
|
var require_prerelease = __commonJS({
|
|
63193
63193
|
"../../node_modules/.pnpm/semver@7.7.1/node_modules/semver/functions/prerelease.js"(exports, module) {
|
|
63194
|
-
var
|
|
63194
|
+
var parse14 = require_parse4();
|
|
63195
63195
|
var prerelease = (version3, options) => {
|
|
63196
|
-
const parsed =
|
|
63196
|
+
const parsed = parse14(version3, options);
|
|
63197
63197
|
return parsed && parsed.prerelease.length ? parsed.prerelease : null;
|
|
63198
63198
|
};
|
|
63199
63199
|
module.exports = prerelease;
|
|
@@ -63365,7 +63365,7 @@ var require_cmp = __commonJS({
|
|
|
63365
63365
|
var require_coerce = __commonJS({
|
|
63366
63366
|
"../../node_modules/.pnpm/semver@7.7.1/node_modules/semver/functions/coerce.js"(exports, module) {
|
|
63367
63367
|
var SemVer = require_semver();
|
|
63368
|
-
var
|
|
63368
|
+
var parse14 = require_parse4();
|
|
63369
63369
|
var { safeRe: re, t } = require_re();
|
|
63370
63370
|
var coerce = (version3, options) => {
|
|
63371
63371
|
if (version3 instanceof SemVer) {
|
|
@@ -63400,7 +63400,7 @@ var require_coerce = __commonJS({
|
|
|
63400
63400
|
const patch = match2[4] || "0";
|
|
63401
63401
|
const prerelease = options.includePrerelease && match2[5] ? `-${match2[5]}` : "";
|
|
63402
63402
|
const build = options.includePrerelease && match2[6] ? `+${match2[6]}` : "";
|
|
63403
|
-
return
|
|
63403
|
+
return parse14(`${major}.${minor}.${patch}${prerelease}${build}`, options);
|
|
63404
63404
|
};
|
|
63405
63405
|
module.exports = coerce;
|
|
63406
63406
|
}
|
|
@@ -64400,7 +64400,7 @@ var require_semver2 = __commonJS({
|
|
|
64400
64400
|
var constants4 = require_constants8();
|
|
64401
64401
|
var SemVer = require_semver();
|
|
64402
64402
|
var identifiers = require_identifiers();
|
|
64403
|
-
var
|
|
64403
|
+
var parse14 = require_parse4();
|
|
64404
64404
|
var valid = require_valid();
|
|
64405
64405
|
var clean = require_clean();
|
|
64406
64406
|
var inc = require_inc();
|
|
@@ -64438,7 +64438,7 @@ var require_semver2 = __commonJS({
|
|
|
64438
64438
|
var simplifyRange = require_simplify();
|
|
64439
64439
|
var subset = require_subset();
|
|
64440
64440
|
module.exports = {
|
|
64441
|
-
parse:
|
|
64441
|
+
parse: parse14,
|
|
64442
64442
|
valid,
|
|
64443
64443
|
clean,
|
|
64444
64444
|
inc,
|
|
@@ -64924,7 +64924,7 @@ var require_parse5 = __commonJS({
|
|
|
64924
64924
|
"../../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/parse.js"(exports, module) {
|
|
64925
64925
|
"use strict";
|
|
64926
64926
|
var SemVer = require_semver3();
|
|
64927
|
-
var
|
|
64927
|
+
var parse14 = (version3, options, throwErrors = false) => {
|
|
64928
64928
|
if (version3 instanceof SemVer) {
|
|
64929
64929
|
return version3;
|
|
64930
64930
|
}
|
|
@@ -64937,7 +64937,7 @@ var require_parse5 = __commonJS({
|
|
|
64937
64937
|
throw er;
|
|
64938
64938
|
}
|
|
64939
64939
|
};
|
|
64940
|
-
module.exports =
|
|
64940
|
+
module.exports = parse14;
|
|
64941
64941
|
}
|
|
64942
64942
|
});
|
|
64943
64943
|
|
|
@@ -64945,9 +64945,9 @@ var require_parse5 = __commonJS({
|
|
|
64945
64945
|
var require_valid3 = __commonJS({
|
|
64946
64946
|
"../../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/valid.js"(exports, module) {
|
|
64947
64947
|
"use strict";
|
|
64948
|
-
var
|
|
64948
|
+
var parse14 = require_parse5();
|
|
64949
64949
|
var valid = (version3, options) => {
|
|
64950
|
-
const v =
|
|
64950
|
+
const v = parse14(version3, options);
|
|
64951
64951
|
return v ? v.version : null;
|
|
64952
64952
|
};
|
|
64953
64953
|
module.exports = valid;
|
|
@@ -64958,9 +64958,9 @@ var require_valid3 = __commonJS({
|
|
|
64958
64958
|
var require_clean2 = __commonJS({
|
|
64959
64959
|
"../../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/clean.js"(exports, module) {
|
|
64960
64960
|
"use strict";
|
|
64961
|
-
var
|
|
64961
|
+
var parse14 = require_parse5();
|
|
64962
64962
|
var clean = (version3, options) => {
|
|
64963
|
-
const s2 =
|
|
64963
|
+
const s2 = parse14(version3.trim().replace(/^[=v]+/, ""), options);
|
|
64964
64964
|
return s2 ? s2.version : null;
|
|
64965
64965
|
};
|
|
64966
64966
|
module.exports = clean;
|
|
@@ -64995,10 +64995,10 @@ var require_inc2 = __commonJS({
|
|
|
64995
64995
|
var require_diff2 = __commonJS({
|
|
64996
64996
|
"../../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/diff.js"(exports, module) {
|
|
64997
64997
|
"use strict";
|
|
64998
|
-
var
|
|
64998
|
+
var parse14 = require_parse5();
|
|
64999
64999
|
var diff = (version1, version22) => {
|
|
65000
|
-
const v12 =
|
|
65001
|
-
const v2 =
|
|
65000
|
+
const v12 = parse14(version1, null, true);
|
|
65001
|
+
const v2 = parse14(version22, null, true);
|
|
65002
65002
|
const comparison = v12.compare(v2);
|
|
65003
65003
|
if (comparison === 0) {
|
|
65004
65004
|
return null;
|
|
@@ -65069,9 +65069,9 @@ var require_patch2 = __commonJS({
|
|
|
65069
65069
|
var require_prerelease2 = __commonJS({
|
|
65070
65070
|
"../../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/prerelease.js"(exports, module) {
|
|
65071
65071
|
"use strict";
|
|
65072
|
-
var
|
|
65072
|
+
var parse14 = require_parse5();
|
|
65073
65073
|
var prerelease = (version3, options) => {
|
|
65074
|
-
const parsed =
|
|
65074
|
+
const parsed = parse14(version3, options);
|
|
65075
65075
|
return parsed && parsed.prerelease.length ? parsed.prerelease : null;
|
|
65076
65076
|
};
|
|
65077
65077
|
module.exports = prerelease;
|
|
@@ -65257,7 +65257,7 @@ var require_coerce2 = __commonJS({
|
|
|
65257
65257
|
"../../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/coerce.js"(exports, module) {
|
|
65258
65258
|
"use strict";
|
|
65259
65259
|
var SemVer = require_semver3();
|
|
65260
|
-
var
|
|
65260
|
+
var parse14 = require_parse5();
|
|
65261
65261
|
var { safeRe: re, t } = require_re2();
|
|
65262
65262
|
var coerce = (version3, options) => {
|
|
65263
65263
|
if (version3 instanceof SemVer) {
|
|
@@ -65292,7 +65292,7 @@ var require_coerce2 = __commonJS({
|
|
|
65292
65292
|
const patch = match2[4] || "0";
|
|
65293
65293
|
const prerelease = options.includePrerelease && match2[5] ? `-${match2[5]}` : "";
|
|
65294
65294
|
const build = options.includePrerelease && match2[6] ? `+${match2[6]}` : "";
|
|
65295
|
-
return
|
|
65295
|
+
return parse14(`${major}.${minor}.${patch}${prerelease}${build}`, options);
|
|
65296
65296
|
};
|
|
65297
65297
|
module.exports = coerce;
|
|
65298
65298
|
}
|
|
@@ -66308,7 +66308,7 @@ var require_semver4 = __commonJS({
|
|
|
66308
66308
|
var constants4 = require_constants9();
|
|
66309
66309
|
var SemVer = require_semver3();
|
|
66310
66310
|
var identifiers = require_identifiers2();
|
|
66311
|
-
var
|
|
66311
|
+
var parse14 = require_parse5();
|
|
66312
66312
|
var valid = require_valid3();
|
|
66313
66313
|
var clean = require_clean2();
|
|
66314
66314
|
var inc = require_inc2();
|
|
@@ -66346,7 +66346,7 @@ var require_semver4 = __commonJS({
|
|
|
66346
66346
|
var simplifyRange = require_simplify2();
|
|
66347
66347
|
var subset = require_subset2();
|
|
66348
66348
|
module.exports = {
|
|
66349
|
-
parse:
|
|
66349
|
+
parse: parse14,
|
|
66350
66350
|
valid,
|
|
66351
66351
|
clean,
|
|
66352
66352
|
inc,
|
|
@@ -69933,7 +69933,7 @@ var require_parse6 = __commonJS({
|
|
|
69933
69933
|
var syntaxError = (type, char) => {
|
|
69934
69934
|
return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`;
|
|
69935
69935
|
};
|
|
69936
|
-
var
|
|
69936
|
+
var parse14 = (input, options) => {
|
|
69937
69937
|
if (typeof input !== "string") {
|
|
69938
69938
|
throw new TypeError("Expected a string");
|
|
69939
69939
|
}
|
|
@@ -70081,7 +70081,7 @@ var require_parse6 = __commonJS({
|
|
|
70081
70081
|
output = token.close = `)$))${extglobStar}`;
|
|
70082
70082
|
}
|
|
70083
70083
|
if (token.inner.includes("*") && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) {
|
|
70084
|
-
const expression =
|
|
70084
|
+
const expression = parse14(rest, { ...options, fastpaths: false }).output;
|
|
70085
70085
|
output = token.close = `)${expression})${extglobStar})`;
|
|
70086
70086
|
}
|
|
70087
70087
|
if (token.prev.type === "bos") {
|
|
@@ -70603,7 +70603,7 @@ var require_parse6 = __commonJS({
|
|
|
70603
70603
|
}
|
|
70604
70604
|
return state;
|
|
70605
70605
|
};
|
|
70606
|
-
|
|
70606
|
+
parse14.fastpaths = (input, options) => {
|
|
70607
70607
|
const opts = { ...options };
|
|
70608
70608
|
const max = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;
|
|
70609
70609
|
const len = input.length;
|
|
@@ -70668,7 +70668,7 @@ var require_parse6 = __commonJS({
|
|
|
70668
70668
|
}
|
|
70669
70669
|
return source;
|
|
70670
70670
|
};
|
|
70671
|
-
module.exports =
|
|
70671
|
+
module.exports = parse14;
|
|
70672
70672
|
}
|
|
70673
70673
|
});
|
|
70674
70674
|
|
|
@@ -70677,7 +70677,7 @@ var require_picomatch3 = __commonJS({
|
|
|
70677
70677
|
"../../node_modules/.pnpm/picomatch@4.0.3/node_modules/picomatch/lib/picomatch.js"(exports, module) {
|
|
70678
70678
|
"use strict";
|
|
70679
70679
|
var scan = require_scan2();
|
|
70680
|
-
var
|
|
70680
|
+
var parse14 = require_parse6();
|
|
70681
70681
|
var utils = require_utils7();
|
|
70682
70682
|
var constants4 = require_constants10();
|
|
70683
70683
|
var isObject3 = (val2) => val2 && typeof val2 === "object" && !Array.isArray(val2);
|
|
@@ -70765,7 +70765,7 @@ var require_picomatch3 = __commonJS({
|
|
|
70765
70765
|
picomatch5.isMatch = (str, patterns, options) => picomatch5(patterns, options)(str);
|
|
70766
70766
|
picomatch5.parse = (pattern, options) => {
|
|
70767
70767
|
if (Array.isArray(pattern)) return pattern.map((p) => picomatch5.parse(p, options));
|
|
70768
|
-
return
|
|
70768
|
+
return parse14(pattern, { ...options, fastpaths: false });
|
|
70769
70769
|
};
|
|
70770
70770
|
picomatch5.scan = (input, options) => scan(input, options);
|
|
70771
70771
|
picomatch5.compileRe = (state, options, returnOutput = false, returnState = false) => {
|
|
@@ -70791,10 +70791,10 @@ var require_picomatch3 = __commonJS({
|
|
|
70791
70791
|
}
|
|
70792
70792
|
let parsed = { negated: false, fastpaths: true };
|
|
70793
70793
|
if (options.fastpaths !== false && (input[0] === "." || input[0] === "*")) {
|
|
70794
|
-
parsed.output =
|
|
70794
|
+
parsed.output = parse14.fastpaths(input, options);
|
|
70795
70795
|
}
|
|
70796
70796
|
if (!parsed.output) {
|
|
70797
|
-
parsed =
|
|
70797
|
+
parsed = parse14(input, options);
|
|
70798
70798
|
}
|
|
70799
70799
|
return picomatch5.compileRe(parsed, options, returnOutput, returnState);
|
|
70800
70800
|
};
|
|
@@ -75047,7 +75047,7 @@ var require_parse7 = __commonJS({
|
|
|
75047
75047
|
function isWhitespace3(c) {
|
|
75048
75048
|
return c === 32 || c === 9 || c === 10 || c === 12 || c === 13;
|
|
75049
75049
|
}
|
|
75050
|
-
function
|
|
75050
|
+
function parse14(selector) {
|
|
75051
75051
|
var subselects2 = [];
|
|
75052
75052
|
var endIndex = parseSelector(subselects2, "".concat(selector), 0);
|
|
75053
75053
|
if (endIndex < selector.length) {
|
|
@@ -75055,7 +75055,7 @@ var require_parse7 = __commonJS({
|
|
|
75055
75055
|
}
|
|
75056
75056
|
return subselects2;
|
|
75057
75057
|
}
|
|
75058
|
-
exports.parse =
|
|
75058
|
+
exports.parse = parse14;
|
|
75059
75059
|
function parseSelector(subselects2, selector, selectorIndex) {
|
|
75060
75060
|
var tokens = [];
|
|
75061
75061
|
function getName2(offset) {
|
|
@@ -75382,12 +75382,12 @@ var require_stringify2 = __commonJS({
|
|
|
75382
75382
|
], false).map(function(c) {
|
|
75383
75383
|
return c.charCodeAt(0);
|
|
75384
75384
|
}));
|
|
75385
|
-
function
|
|
75385
|
+
function stringify3(selector) {
|
|
75386
75386
|
return selector.map(function(token) {
|
|
75387
75387
|
return token.map(stringifyToken).join("");
|
|
75388
75388
|
}).join(", ");
|
|
75389
75389
|
}
|
|
75390
|
-
exports.stringify =
|
|
75390
|
+
exports.stringify = stringify3;
|
|
75391
75391
|
function stringifyToken(token, index2, arr) {
|
|
75392
75392
|
switch (token.type) {
|
|
75393
75393
|
// Simple types
|
|
@@ -75410,7 +75410,7 @@ var require_stringify2 = __commonJS({
|
|
|
75410
75410
|
case types_1.SelectorType.PseudoElement:
|
|
75411
75411
|
return "::".concat(escapeName(token.name, charsToEscapeInName)).concat(token.data === null ? "" : "(".concat(escapeName(token.data, charsToEscapeInPseudoValue), ")"));
|
|
75412
75412
|
case types_1.SelectorType.Pseudo:
|
|
75413
|
-
return ":".concat(escapeName(token.name, charsToEscapeInName)).concat(token.data === null ? "" : "(".concat(typeof token.data === "string" ? escapeName(token.data, charsToEscapeInPseudoValue) :
|
|
75413
|
+
return ":".concat(escapeName(token.name, charsToEscapeInName)).concat(token.data === null ? "" : "(".concat(typeof token.data === "string" ? escapeName(token.data, charsToEscapeInPseudoValue) : stringify3(token.data), ")"));
|
|
75414
75414
|
case types_1.SelectorType.Attribute: {
|
|
75415
75415
|
if (token.name === "id" && token.action === types_1.AttributeAction.Equals && token.ignoreCase === "quirks" && !token.namespace) {
|
|
75416
75416
|
return "#".concat(escapeName(token.value, charsToEscapeInName));
|
|
@@ -81012,6 +81012,107 @@ var TOMLScalar = class {
|
|
|
81012
81012
|
return scalarValue;
|
|
81013
81013
|
}
|
|
81014
81014
|
};
|
|
81015
|
+
function keyToString(key) {
|
|
81016
|
+
if (key.type === "TOMLBare") {
|
|
81017
|
+
return key.name;
|
|
81018
|
+
} else if (key.type === "TOMLQuoted") {
|
|
81019
|
+
return key.value;
|
|
81020
|
+
}
|
|
81021
|
+
return "";
|
|
81022
|
+
}
|
|
81023
|
+
function assignKey(obj, key, value2) {
|
|
81024
|
+
if (key.type === "TOMLKey") {
|
|
81025
|
+
let needle = obj;
|
|
81026
|
+
const tail = keyToString(key.keys.slice(-1)[0]);
|
|
81027
|
+
for (const name2 of key.keys.slice(0, -1)) {
|
|
81028
|
+
const propName = keyToString(name2);
|
|
81029
|
+
if (Object.hasOwn(needle, propName)) {
|
|
81030
|
+
if (needle[propName] instanceof TOMLTable) {
|
|
81031
|
+
needle = needle[propName];
|
|
81032
|
+
} else {
|
|
81033
|
+
throw new Error(`Cannot assign nested key to non-table value: ${propName}`);
|
|
81034
|
+
}
|
|
81035
|
+
} else {
|
|
81036
|
+
needle[propName] = new TOMLTable(name2.range, name2.range);
|
|
81037
|
+
needle = needle[propName];
|
|
81038
|
+
}
|
|
81039
|
+
}
|
|
81040
|
+
needle[tail] = value2;
|
|
81041
|
+
} else {
|
|
81042
|
+
obj[keyToString(key)] = value2;
|
|
81043
|
+
}
|
|
81044
|
+
}
|
|
81045
|
+
function toTOMLScalar(ast, valueKeyRange) {
|
|
81046
|
+
return new TOMLScalar(ast.value, ast.range, valueKeyRange);
|
|
81047
|
+
}
|
|
81048
|
+
function toTOMLArray(ast, valueKeyRange) {
|
|
81049
|
+
const ret = new TOMLArray(ast.range, valueKeyRange);
|
|
81050
|
+
for (let i3 = 0; i3 < ast.elements.length; i3++) {
|
|
81051
|
+
ret[i3] = toTOMLValue(ast.elements[i3], ast.elements[i3].range);
|
|
81052
|
+
}
|
|
81053
|
+
return ret;
|
|
81054
|
+
}
|
|
81055
|
+
function toTOMLTable(ast, valueKeyRange) {
|
|
81056
|
+
const ret = new TOMLTable(ast.range, valueKeyRange);
|
|
81057
|
+
for (const pair of ast.body) {
|
|
81058
|
+
assignKey(ret, pair.key, toTOMLValue(pair.value, pair.key.range));
|
|
81059
|
+
}
|
|
81060
|
+
return ret;
|
|
81061
|
+
}
|
|
81062
|
+
function toTOMLValue(ast, valueKeyRange) {
|
|
81063
|
+
if (ast.type === "TOMLValue") {
|
|
81064
|
+
return toTOMLScalar(ast, valueKeyRange);
|
|
81065
|
+
} else if (ast.type === "TOMLArray") {
|
|
81066
|
+
return toTOMLArray(ast, valueKeyRange);
|
|
81067
|
+
}
|
|
81068
|
+
return toTOMLTable(ast, valueKeyRange);
|
|
81069
|
+
}
|
|
81070
|
+
function recursiveAllocContainer(root3, keys, keyRange2, value2) {
|
|
81071
|
+
let needle = root3;
|
|
81072
|
+
for (let i3 = 0; i3 < keys.length - 1; i3++) {
|
|
81073
|
+
const key = keys[i3];
|
|
81074
|
+
if (needle instanceof TOMLTable && typeof key === "string") {
|
|
81075
|
+
needle = needle[key] ??= typeof keys[i3 + 1] === "number" ? new TOMLArray(keyRange2, keyRange2) : new TOMLTable(keyRange2, keyRange2);
|
|
81076
|
+
} else if (needle instanceof TOMLArray && typeof key === "number") {
|
|
81077
|
+
needle = needle[key] ??= typeof keys[i3 + 1] === "number" ? new TOMLArray(keyRange2, keyRange2) : new TOMLTable(keyRange2, keyRange2);
|
|
81078
|
+
} else {
|
|
81079
|
+
return;
|
|
81080
|
+
}
|
|
81081
|
+
}
|
|
81082
|
+
const finalKey = keys[keys.length - 1];
|
|
81083
|
+
if (needle instanceof TOMLTable && typeof finalKey === "string") {
|
|
81084
|
+
const existing = needle[finalKey];
|
|
81085
|
+
if (existing instanceof TOMLTable) {
|
|
81086
|
+
for (const k in value2) existing[k] = value2[k];
|
|
81087
|
+
} else {
|
|
81088
|
+
needle[finalKey] = value2;
|
|
81089
|
+
}
|
|
81090
|
+
} else if (needle instanceof TOMLArray && typeof finalKey === "number") {
|
|
81091
|
+
needle[finalKey] = value2;
|
|
81092
|
+
}
|
|
81093
|
+
}
|
|
81094
|
+
function tomlASTToObject(ast) {
|
|
81095
|
+
const root3 = new TOMLTable(ast.range, [0, 0]);
|
|
81096
|
+
for (const node of ast.body[0].body) {
|
|
81097
|
+
if (node.type === "TOMLKeyValue") {
|
|
81098
|
+
assignKey(root3, node.key, toTOMLValue(node.value, node.key.range));
|
|
81099
|
+
} else if (node.type === "TOMLTable") {
|
|
81100
|
+
recursiveAllocContainer(root3, node.resolvedKey, node.range, toTOMLTable(node, node.key.range));
|
|
81101
|
+
}
|
|
81102
|
+
}
|
|
81103
|
+
return root3;
|
|
81104
|
+
}
|
|
81105
|
+
function parseTOML2(src) {
|
|
81106
|
+
try {
|
|
81107
|
+
const ast = tomlParser.parseTOML(src);
|
|
81108
|
+
return tomlASTToObject(ast);
|
|
81109
|
+
} catch (e) {
|
|
81110
|
+
return null;
|
|
81111
|
+
}
|
|
81112
|
+
}
|
|
81113
|
+
function getNestedValue(table, path10) {
|
|
81114
|
+
return path10.split(".").reduce((current, key) => current instanceof TOMLTable ? current[key] : void 0, table);
|
|
81115
|
+
}
|
|
81015
81116
|
|
|
81016
81117
|
// ../utils/src/pip-utils.ts
|
|
81017
81118
|
function normalizePackageName(packageName) {
|
|
@@ -89832,7 +89933,8 @@ var DotnetCodeAwareVulnerabilityScanner = class _DotnetCodeAwareVulnerabilitySca
|
|
|
89832
89933
|
const inputFile = resolve8(tmpDir, "input.json");
|
|
89833
89934
|
const outputFile = resolve8(tmpDir, "output.json");
|
|
89834
89935
|
await writeFile3(inputFile, JSON.stringify(options));
|
|
89835
|
-
const
|
|
89936
|
+
const timeoutMs = this.timeoutInSeconds ? Math.max(this.timeoutInSeconds * 1.5, this.timeoutInSeconds + 30) * 1e3 : 750 * 1e3;
|
|
89937
|
+
const result = await execNeverFail(cmdt`node ${classGraphAnalysisCliPath} runDotnetDirectDependencyAnalysis -i ${inputFile} -o ${outputFile} --cocoa ${cocoaPath} --tree-sitter-c-sharp ${treeSitterCSharpPath}`, void 0, { timeout: timeoutMs });
|
|
89836
89938
|
if (result.error)
|
|
89837
89939
|
return void 0;
|
|
89838
89940
|
const packageIds = JSON.parse(await readFile6(outputFile, "utf-8")).result;
|
|
@@ -89865,7 +89967,8 @@ var DotnetCodeAwareVulnerabilityScanner = class _DotnetCodeAwareVulnerabilitySca
|
|
|
89865
89967
|
const inputFile = resolve8(tmpDir, "input.json");
|
|
89866
89968
|
const outputFile = resolve8(tmpDir, "output.json");
|
|
89867
89969
|
await writeFile3(inputFile, JSON.stringify(options));
|
|
89868
|
-
const
|
|
89970
|
+
const timeoutMs = this.timeoutInSeconds ? Math.max(this.timeoutInSeconds * 1.5, this.timeoutInSeconds + 30) * 1e3 : 750 * 1e3;
|
|
89971
|
+
const result = await execNeverFail(cmdt`node ${classGraphAnalysisCliPath} runDotnetReachabilityAnalysis -i ${inputFile} -o ${outputFile} --cocoa ${cocoaPath} --tree-sitter-c-sharp ${treeSitterCSharpPath}`, void 0, { timeout: timeoutMs });
|
|
89869
89972
|
if (result.error)
|
|
89870
89973
|
return { type: "error", message: result.error.message ?? "unknown error" };
|
|
89871
89974
|
const { success, error, analysisDiagnostics: diagnostics, vulnerablePaths, reachablePackageIds } = JSON.parse(await readFile6(outputFile, "utf-8")).result;
|
|
@@ -93796,7 +93899,7 @@ __export(manipulation_exports, {
|
|
|
93796
93899
|
|
|
93797
93900
|
// ../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/esm/parse.js
|
|
93798
93901
|
function getParse(parser) {
|
|
93799
|
-
return function
|
|
93902
|
+
return function parse14(content, options, isDocument2, context) {
|
|
93800
93903
|
if (typeof Buffer !== "undefined" && Buffer.isBuffer(content)) {
|
|
93801
93904
|
content = content.toString();
|
|
93802
93905
|
}
|
|
@@ -94287,13 +94390,13 @@ Cheerio.prototype[Symbol.iterator] = Array.prototype[Symbol.iterator];
|
|
|
94287
94390
|
Object.assign(Cheerio.prototype, attributes_exports, traversing_exports, manipulation_exports, css_exports, forms_exports);
|
|
94288
94391
|
|
|
94289
94392
|
// ../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/esm/load.js
|
|
94290
|
-
function getLoad(
|
|
94393
|
+
function getLoad(parse14, render3) {
|
|
94291
94394
|
return function load2(content, options, isDocument2 = true) {
|
|
94292
94395
|
if (content == null) {
|
|
94293
94396
|
throw new Error("cheerio.load() expects a string");
|
|
94294
94397
|
}
|
|
94295
94398
|
const internalOpts = { ...options_default, ...flatten(options) };
|
|
94296
|
-
const initialRoot =
|
|
94399
|
+
const initialRoot = parse14(content, internalOpts, isDocument2, null);
|
|
94297
94400
|
class LoadedCheerio extends Cheerio {
|
|
94298
94401
|
_make(selector, context) {
|
|
94299
94402
|
const cheerio = initialize(selector, context);
|
|
@@ -94301,7 +94404,7 @@ function getLoad(parse15, render3) {
|
|
|
94301
94404
|
return cheerio;
|
|
94302
94405
|
}
|
|
94303
94406
|
_parse(content2, options2, isDocument3, context) {
|
|
94304
|
-
return
|
|
94407
|
+
return parse14(content2, options2, isDocument3, context);
|
|
94305
94408
|
}
|
|
94306
94409
|
_render(dom) {
|
|
94307
94410
|
return render3(dom, this.options);
|
|
@@ -94314,7 +94417,7 @@ function getLoad(parse15, render3) {
|
|
|
94314
94417
|
...internalOpts,
|
|
94315
94418
|
...flatten(opts)
|
|
94316
94419
|
};
|
|
94317
|
-
const r = typeof root3 === "string" ? [
|
|
94420
|
+
const r = typeof root3 === "string" ? [parse14(root3, options2, false, null)] : "length" in root3 ? root3 : [root3];
|
|
94318
94421
|
const rootInstance = isCheerio(r) ? r : new LoadedCheerio(r, null, options2);
|
|
94319
94422
|
rootInstance._root = rootInstance;
|
|
94320
94423
|
if (!selector) {
|
|
@@ -94322,7 +94425,7 @@ function getLoad(parse15, render3) {
|
|
|
94322
94425
|
}
|
|
94323
94426
|
const elements = typeof selector === "string" && isHtml(selector) ? (
|
|
94324
94427
|
// $(<html>)
|
|
94325
|
-
|
|
94428
|
+
parse14(selector, options2, false, null).children
|
|
94326
94429
|
) : isNode(selector) ? (
|
|
94327
94430
|
// $(dom)
|
|
94328
94431
|
[selector]
|
|
@@ -94343,7 +94446,7 @@ function getLoad(parse15, render3) {
|
|
|
94343
94446
|
rootInstance
|
|
94344
94447
|
) : typeof context === "string" ? isHtml(context) ? (
|
|
94345
94448
|
// $('li', '<ul>...</ul>')
|
|
94346
|
-
new LoadedCheerio([
|
|
94449
|
+
new LoadedCheerio([parse14(context, options2, false, null)], rootInstance, options2)
|
|
94347
94450
|
) : (
|
|
94348
94451
|
// $('li', 'ul')
|
|
94349
94452
|
(search = `${context} ${search}`, rootInstance)
|
|
@@ -103810,7 +103913,8 @@ var JavaCodeAwareVulnerabilityScanner = class _JavaCodeAwareVulnerabilityScanner
|
|
|
103810
103913
|
const inputFile = resolve9(tmpDir, "input.json");
|
|
103811
103914
|
const outputFile = resolve9(tmpDir, "output.json");
|
|
103812
103915
|
await writeFile4(inputFile, JSON.stringify(options));
|
|
103813
|
-
const
|
|
103916
|
+
const timeoutMs = this.timeoutInSeconds ? Math.max(this.timeoutInSeconds * 1.5, this.timeoutInSeconds + 30) * 1e3 : 750 * 1e3;
|
|
103917
|
+
const result = await execNeverFail(cmdt`node ${classGraphAnalysisCliPath} runJvmDirectDependencyAnalysis -i ${inputFile} -o ${outputFile} --alucard ${alucardPath} --tree-sitter-java ${treeSitterJavaPath} --tree-sitter-kotlin ${treeSitterKotlinPath} --tree-sitter-scala ${treeSitterScalaPath}`, void 0, { timeout: timeoutMs });
|
|
103814
103918
|
if (result.error)
|
|
103815
103919
|
return void 0;
|
|
103816
103920
|
const packageIds = JSON.parse(await readFile7(outputFile, "utf-8")).result;
|
|
@@ -103843,7 +103947,8 @@ var JavaCodeAwareVulnerabilityScanner = class _JavaCodeAwareVulnerabilityScanner
|
|
|
103843
103947
|
const inputFile = resolve9(tmpDir, "input.json");
|
|
103844
103948
|
const outputFile = resolve9(tmpDir, "output.json");
|
|
103845
103949
|
await writeFile4(inputFile, JSON.stringify(options));
|
|
103846
|
-
const
|
|
103950
|
+
const timeoutMs = this.timeoutInSeconds ? Math.max(this.timeoutInSeconds * 1.5, this.timeoutInSeconds + 30) * 1e3 : 750 * 1e3;
|
|
103951
|
+
const result = await execNeverFail(cmdt`node ${classGraphAnalysisCliPath} runJvmReachabilityAnalysis -i ${inputFile} -o ${outputFile} --alucard ${alucardPath} --tree-sitter-java ${treeSitterJavaPath} --tree-sitter-kotlin ${treeSitterKotlinPath} --tree-sitter-scala ${treeSitterScalaPath}`, void 0, { timeout: timeoutMs });
|
|
103847
103952
|
if (result.error)
|
|
103848
103953
|
return { type: "error", message: result.error.message ?? "unknown error" };
|
|
103849
103954
|
const { success, error, analysisDiagnostics: diagnostics, vulnerablePaths, reachablePackageIds } = JSON.parse(await readFile7(outputFile, "utf-8")).result;
|
|
@@ -106371,12 +106476,12 @@ var listFileSync = (opt) => {
|
|
|
106371
106476
|
}
|
|
106372
106477
|
};
|
|
106373
106478
|
var listFile = (opt, _files) => {
|
|
106374
|
-
const
|
|
106479
|
+
const parse14 = new Parser3(opt);
|
|
106375
106480
|
const readSize = opt.maxReadSize || 16 * 1024 * 1024;
|
|
106376
106481
|
const file = opt.file;
|
|
106377
106482
|
const p = new Promise((resolve22, reject) => {
|
|
106378
|
-
|
|
106379
|
-
|
|
106483
|
+
parse14.on("error", reject);
|
|
106484
|
+
parse14.on("end", resolve22);
|
|
106380
106485
|
fs2.stat(file, (er, stat3) => {
|
|
106381
106486
|
if (er) {
|
|
106382
106487
|
reject(er);
|
|
@@ -106386,7 +106491,7 @@ var listFile = (opt, _files) => {
|
|
|
106386
106491
|
size: stat3.size
|
|
106387
106492
|
});
|
|
106388
106493
|
stream8.on("error", reject);
|
|
106389
|
-
stream8.pipe(
|
|
106494
|
+
stream8.pipe(parse14);
|
|
106390
106495
|
}
|
|
106391
106496
|
});
|
|
106392
106497
|
});
|
|
@@ -110092,701 +110197,6 @@ function getUrlForCrate(crateName, version3) {
|
|
|
110092
110197
|
// dist/whole-program-code-aware-vulnerability-scanner/rust/rust-code-aware-vulnerability-scanner.js
|
|
110093
110198
|
import { randomUUID as randomUUID3 } from "node:crypto";
|
|
110094
110199
|
|
|
110095
|
-
// ../../node_modules/.pnpm/smol-toml@1.4.1/node_modules/smol-toml/dist/error.js
|
|
110096
|
-
function getLineColFromPtr(string, ptr) {
|
|
110097
|
-
let lines = string.slice(0, ptr).split(/\r\n|\n|\r/g);
|
|
110098
|
-
return [lines.length, lines.pop().length + 1];
|
|
110099
|
-
}
|
|
110100
|
-
function makeCodeBlock(string, line, column) {
|
|
110101
|
-
let lines = string.split(/\r\n|\n|\r/g);
|
|
110102
|
-
let codeblock = "";
|
|
110103
|
-
let numberLen = (Math.log10(line + 1) | 0) + 1;
|
|
110104
|
-
for (let i3 = line - 1; i3 <= line + 1; i3++) {
|
|
110105
|
-
let l = lines[i3 - 1];
|
|
110106
|
-
if (!l)
|
|
110107
|
-
continue;
|
|
110108
|
-
codeblock += i3.toString().padEnd(numberLen, " ");
|
|
110109
|
-
codeblock += ": ";
|
|
110110
|
-
codeblock += l;
|
|
110111
|
-
codeblock += "\n";
|
|
110112
|
-
if (i3 === line) {
|
|
110113
|
-
codeblock += " ".repeat(numberLen + column + 2);
|
|
110114
|
-
codeblock += "^\n";
|
|
110115
|
-
}
|
|
110116
|
-
}
|
|
110117
|
-
return codeblock;
|
|
110118
|
-
}
|
|
110119
|
-
var TomlError = class extends Error {
|
|
110120
|
-
line;
|
|
110121
|
-
column;
|
|
110122
|
-
codeblock;
|
|
110123
|
-
constructor(message, options) {
|
|
110124
|
-
const [line, column] = getLineColFromPtr(options.toml, options.ptr);
|
|
110125
|
-
const codeblock = makeCodeBlock(options.toml, line, column);
|
|
110126
|
-
super(`Invalid TOML document: ${message}
|
|
110127
|
-
|
|
110128
|
-
${codeblock}`, options);
|
|
110129
|
-
this.line = line;
|
|
110130
|
-
this.column = column;
|
|
110131
|
-
this.codeblock = codeblock;
|
|
110132
|
-
}
|
|
110133
|
-
};
|
|
110134
|
-
|
|
110135
|
-
// ../../node_modules/.pnpm/smol-toml@1.4.1/node_modules/smol-toml/dist/util.js
|
|
110136
|
-
function indexOfNewline(str, start = 0, end2 = str.length) {
|
|
110137
|
-
let idx = str.indexOf("\n", start);
|
|
110138
|
-
if (str[idx - 1] === "\r")
|
|
110139
|
-
idx--;
|
|
110140
|
-
return idx <= end2 ? idx : -1;
|
|
110141
|
-
}
|
|
110142
|
-
function skipComment(str, ptr) {
|
|
110143
|
-
for (let i3 = ptr; i3 < str.length; i3++) {
|
|
110144
|
-
let c = str[i3];
|
|
110145
|
-
if (c === "\n")
|
|
110146
|
-
return i3;
|
|
110147
|
-
if (c === "\r" && str[i3 + 1] === "\n")
|
|
110148
|
-
return i3 + 1;
|
|
110149
|
-
if (c < " " && c !== " " || c === "\x7F") {
|
|
110150
|
-
throw new TomlError("control characters are not allowed in comments", {
|
|
110151
|
-
toml: str,
|
|
110152
|
-
ptr
|
|
110153
|
-
});
|
|
110154
|
-
}
|
|
110155
|
-
}
|
|
110156
|
-
return str.length;
|
|
110157
|
-
}
|
|
110158
|
-
function skipVoid(str, ptr, banNewLines, banComments) {
|
|
110159
|
-
let c;
|
|
110160
|
-
while ((c = str[ptr]) === " " || c === " " || !banNewLines && (c === "\n" || c === "\r" && str[ptr + 1] === "\n"))
|
|
110161
|
-
ptr++;
|
|
110162
|
-
return banComments || c !== "#" ? ptr : skipVoid(str, skipComment(str, ptr), banNewLines);
|
|
110163
|
-
}
|
|
110164
|
-
function skipUntil(str, ptr, sep5, end2, banNewLines = false) {
|
|
110165
|
-
if (!end2) {
|
|
110166
|
-
ptr = indexOfNewline(str, ptr);
|
|
110167
|
-
return ptr < 0 ? str.length : ptr;
|
|
110168
|
-
}
|
|
110169
|
-
for (let i3 = ptr; i3 < str.length; i3++) {
|
|
110170
|
-
let c = str[i3];
|
|
110171
|
-
if (c === "#") {
|
|
110172
|
-
i3 = indexOfNewline(str, i3);
|
|
110173
|
-
} else if (c === sep5) {
|
|
110174
|
-
return i3 + 1;
|
|
110175
|
-
} else if (c === end2 || banNewLines && (c === "\n" || c === "\r" && str[i3 + 1] === "\n")) {
|
|
110176
|
-
return i3;
|
|
110177
|
-
}
|
|
110178
|
-
}
|
|
110179
|
-
throw new TomlError("cannot find end of structure", {
|
|
110180
|
-
toml: str,
|
|
110181
|
-
ptr
|
|
110182
|
-
});
|
|
110183
|
-
}
|
|
110184
|
-
function getStringEnd(str, seek) {
|
|
110185
|
-
let first2 = str[seek];
|
|
110186
|
-
let target = first2 === str[seek + 1] && str[seek + 1] === str[seek + 2] ? str.slice(seek, seek + 3) : first2;
|
|
110187
|
-
seek += target.length - 1;
|
|
110188
|
-
do
|
|
110189
|
-
seek = str.indexOf(target, ++seek);
|
|
110190
|
-
while (seek > -1 && first2 !== "'" && str[seek - 1] === "\\" && (str[seek - 2] !== "\\" || str[seek - 3] === "\\"));
|
|
110191
|
-
if (seek > -1) {
|
|
110192
|
-
seek += target.length;
|
|
110193
|
-
if (target.length > 1) {
|
|
110194
|
-
if (str[seek] === first2)
|
|
110195
|
-
seek++;
|
|
110196
|
-
if (str[seek] === first2)
|
|
110197
|
-
seek++;
|
|
110198
|
-
}
|
|
110199
|
-
}
|
|
110200
|
-
return seek;
|
|
110201
|
-
}
|
|
110202
|
-
|
|
110203
|
-
// ../../node_modules/.pnpm/smol-toml@1.4.1/node_modules/smol-toml/dist/date.js
|
|
110204
|
-
var DATE_TIME_RE = /^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}:\d{2}(?:\.\d+)?)?(Z|[-+]\d{2}:\d{2})?$/i;
|
|
110205
|
-
var TomlDate = class _TomlDate extends Date {
|
|
110206
|
-
#hasDate = false;
|
|
110207
|
-
#hasTime = false;
|
|
110208
|
-
#offset = null;
|
|
110209
|
-
constructor(date) {
|
|
110210
|
-
let hasDate = true;
|
|
110211
|
-
let hasTime = true;
|
|
110212
|
-
let offset = "Z";
|
|
110213
|
-
if (typeof date === "string") {
|
|
110214
|
-
let match2 = date.match(DATE_TIME_RE);
|
|
110215
|
-
if (match2) {
|
|
110216
|
-
if (!match2[1]) {
|
|
110217
|
-
hasDate = false;
|
|
110218
|
-
date = `0000-01-01T${date}`;
|
|
110219
|
-
}
|
|
110220
|
-
hasTime = !!match2[2];
|
|
110221
|
-
hasTime && date[10] === " " && (date = date.replace(" ", "T"));
|
|
110222
|
-
if (match2[2] && +match2[2] > 23) {
|
|
110223
|
-
date = "";
|
|
110224
|
-
} else {
|
|
110225
|
-
offset = match2[3] || null;
|
|
110226
|
-
date = date.toUpperCase();
|
|
110227
|
-
if (!offset && hasTime)
|
|
110228
|
-
date += "Z";
|
|
110229
|
-
}
|
|
110230
|
-
} else {
|
|
110231
|
-
date = "";
|
|
110232
|
-
}
|
|
110233
|
-
}
|
|
110234
|
-
super(date);
|
|
110235
|
-
if (!isNaN(this.getTime())) {
|
|
110236
|
-
this.#hasDate = hasDate;
|
|
110237
|
-
this.#hasTime = hasTime;
|
|
110238
|
-
this.#offset = offset;
|
|
110239
|
-
}
|
|
110240
|
-
}
|
|
110241
|
-
isDateTime() {
|
|
110242
|
-
return this.#hasDate && this.#hasTime;
|
|
110243
|
-
}
|
|
110244
|
-
isLocal() {
|
|
110245
|
-
return !this.#hasDate || !this.#hasTime || !this.#offset;
|
|
110246
|
-
}
|
|
110247
|
-
isDate() {
|
|
110248
|
-
return this.#hasDate && !this.#hasTime;
|
|
110249
|
-
}
|
|
110250
|
-
isTime() {
|
|
110251
|
-
return this.#hasTime && !this.#hasDate;
|
|
110252
|
-
}
|
|
110253
|
-
isValid() {
|
|
110254
|
-
return this.#hasDate || this.#hasTime;
|
|
110255
|
-
}
|
|
110256
|
-
toISOString() {
|
|
110257
|
-
let iso = super.toISOString();
|
|
110258
|
-
if (this.isDate())
|
|
110259
|
-
return iso.slice(0, 10);
|
|
110260
|
-
if (this.isTime())
|
|
110261
|
-
return iso.slice(11, 23);
|
|
110262
|
-
if (this.#offset === null)
|
|
110263
|
-
return iso.slice(0, -1);
|
|
110264
|
-
if (this.#offset === "Z")
|
|
110265
|
-
return iso;
|
|
110266
|
-
let offset = +this.#offset.slice(1, 3) * 60 + +this.#offset.slice(4, 6);
|
|
110267
|
-
offset = this.#offset[0] === "-" ? offset : -offset;
|
|
110268
|
-
let offsetDate = new Date(this.getTime() - offset * 6e4);
|
|
110269
|
-
return offsetDate.toISOString().slice(0, -1) + this.#offset;
|
|
110270
|
-
}
|
|
110271
|
-
static wrapAsOffsetDateTime(jsDate, offset = "Z") {
|
|
110272
|
-
let date = new _TomlDate(jsDate);
|
|
110273
|
-
date.#offset = offset;
|
|
110274
|
-
return date;
|
|
110275
|
-
}
|
|
110276
|
-
static wrapAsLocalDateTime(jsDate) {
|
|
110277
|
-
let date = new _TomlDate(jsDate);
|
|
110278
|
-
date.#offset = null;
|
|
110279
|
-
return date;
|
|
110280
|
-
}
|
|
110281
|
-
static wrapAsLocalDate(jsDate) {
|
|
110282
|
-
let date = new _TomlDate(jsDate);
|
|
110283
|
-
date.#hasTime = false;
|
|
110284
|
-
date.#offset = null;
|
|
110285
|
-
return date;
|
|
110286
|
-
}
|
|
110287
|
-
static wrapAsLocalTime(jsDate) {
|
|
110288
|
-
let date = new _TomlDate(jsDate);
|
|
110289
|
-
date.#hasDate = false;
|
|
110290
|
-
date.#offset = null;
|
|
110291
|
-
return date;
|
|
110292
|
-
}
|
|
110293
|
-
};
|
|
110294
|
-
|
|
110295
|
-
// ../../node_modules/.pnpm/smol-toml@1.4.1/node_modules/smol-toml/dist/primitive.js
|
|
110296
|
-
var INT_REGEX = /^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/;
|
|
110297
|
-
var FLOAT_REGEX = /^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/;
|
|
110298
|
-
var LEADING_ZERO = /^[+-]?0[0-9_]/;
|
|
110299
|
-
var ESCAPE_REGEX = /^[0-9a-f]{4,8}$/i;
|
|
110300
|
-
var ESC_MAP = {
|
|
110301
|
-
b: "\b",
|
|
110302
|
-
t: " ",
|
|
110303
|
-
n: "\n",
|
|
110304
|
-
f: "\f",
|
|
110305
|
-
r: "\r",
|
|
110306
|
-
'"': '"',
|
|
110307
|
-
"\\": "\\"
|
|
110308
|
-
};
|
|
110309
|
-
function parseString(str, ptr = 0, endPtr = str.length) {
|
|
110310
|
-
let isLiteral = str[ptr] === "'";
|
|
110311
|
-
let isMultiline = str[ptr++] === str[ptr] && str[ptr] === str[ptr + 1];
|
|
110312
|
-
if (isMultiline) {
|
|
110313
|
-
endPtr -= 2;
|
|
110314
|
-
if (str[ptr += 2] === "\r")
|
|
110315
|
-
ptr++;
|
|
110316
|
-
if (str[ptr] === "\n")
|
|
110317
|
-
ptr++;
|
|
110318
|
-
}
|
|
110319
|
-
let tmp = 0;
|
|
110320
|
-
let isEscape;
|
|
110321
|
-
let parsed = "";
|
|
110322
|
-
let sliceStart = ptr;
|
|
110323
|
-
while (ptr < endPtr - 1) {
|
|
110324
|
-
let c = str[ptr++];
|
|
110325
|
-
if (c === "\n" || c === "\r" && str[ptr] === "\n") {
|
|
110326
|
-
if (!isMultiline) {
|
|
110327
|
-
throw new TomlError("newlines are not allowed in strings", {
|
|
110328
|
-
toml: str,
|
|
110329
|
-
ptr: ptr - 1
|
|
110330
|
-
});
|
|
110331
|
-
}
|
|
110332
|
-
} else if (c < " " && c !== " " || c === "\x7F") {
|
|
110333
|
-
throw new TomlError("control characters are not allowed in strings", {
|
|
110334
|
-
toml: str,
|
|
110335
|
-
ptr: ptr - 1
|
|
110336
|
-
});
|
|
110337
|
-
}
|
|
110338
|
-
if (isEscape) {
|
|
110339
|
-
isEscape = false;
|
|
110340
|
-
if (c === "u" || c === "U") {
|
|
110341
|
-
let code2 = str.slice(ptr, ptr += c === "u" ? 4 : 8);
|
|
110342
|
-
if (!ESCAPE_REGEX.test(code2)) {
|
|
110343
|
-
throw new TomlError("invalid unicode escape", {
|
|
110344
|
-
toml: str,
|
|
110345
|
-
ptr: tmp
|
|
110346
|
-
});
|
|
110347
|
-
}
|
|
110348
|
-
try {
|
|
110349
|
-
parsed += String.fromCodePoint(parseInt(code2, 16));
|
|
110350
|
-
} catch {
|
|
110351
|
-
throw new TomlError("invalid unicode escape", {
|
|
110352
|
-
toml: str,
|
|
110353
|
-
ptr: tmp
|
|
110354
|
-
});
|
|
110355
|
-
}
|
|
110356
|
-
} else if (isMultiline && (c === "\n" || c === " " || c === " " || c === "\r")) {
|
|
110357
|
-
ptr = skipVoid(str, ptr - 1, true);
|
|
110358
|
-
if (str[ptr] !== "\n" && str[ptr] !== "\r") {
|
|
110359
|
-
throw new TomlError("invalid escape: only line-ending whitespace may be escaped", {
|
|
110360
|
-
toml: str,
|
|
110361
|
-
ptr: tmp
|
|
110362
|
-
});
|
|
110363
|
-
}
|
|
110364
|
-
ptr = skipVoid(str, ptr);
|
|
110365
|
-
} else if (c in ESC_MAP) {
|
|
110366
|
-
parsed += ESC_MAP[c];
|
|
110367
|
-
} else {
|
|
110368
|
-
throw new TomlError("unrecognized escape sequence", {
|
|
110369
|
-
toml: str,
|
|
110370
|
-
ptr: tmp
|
|
110371
|
-
});
|
|
110372
|
-
}
|
|
110373
|
-
sliceStart = ptr;
|
|
110374
|
-
} else if (!isLiteral && c === "\\") {
|
|
110375
|
-
tmp = ptr - 1;
|
|
110376
|
-
isEscape = true;
|
|
110377
|
-
parsed += str.slice(sliceStart, tmp);
|
|
110378
|
-
}
|
|
110379
|
-
}
|
|
110380
|
-
return parsed + str.slice(sliceStart, endPtr - 1);
|
|
110381
|
-
}
|
|
110382
|
-
function parseValue(value2, toml, ptr, integersAsBigInt) {
|
|
110383
|
-
if (value2 === "true")
|
|
110384
|
-
return true;
|
|
110385
|
-
if (value2 === "false")
|
|
110386
|
-
return false;
|
|
110387
|
-
if (value2 === "-inf")
|
|
110388
|
-
return -Infinity;
|
|
110389
|
-
if (value2 === "inf" || value2 === "+inf")
|
|
110390
|
-
return Infinity;
|
|
110391
|
-
if (value2 === "nan" || value2 === "+nan" || value2 === "-nan")
|
|
110392
|
-
return NaN;
|
|
110393
|
-
if (value2 === "-0")
|
|
110394
|
-
return integersAsBigInt ? 0n : 0;
|
|
110395
|
-
let isInt = INT_REGEX.test(value2);
|
|
110396
|
-
if (isInt || FLOAT_REGEX.test(value2)) {
|
|
110397
|
-
if (LEADING_ZERO.test(value2)) {
|
|
110398
|
-
throw new TomlError("leading zeroes are not allowed", {
|
|
110399
|
-
toml,
|
|
110400
|
-
ptr
|
|
110401
|
-
});
|
|
110402
|
-
}
|
|
110403
|
-
value2 = value2.replace(/_/g, "");
|
|
110404
|
-
let numeric = +value2;
|
|
110405
|
-
if (isNaN(numeric)) {
|
|
110406
|
-
throw new TomlError("invalid number", {
|
|
110407
|
-
toml,
|
|
110408
|
-
ptr
|
|
110409
|
-
});
|
|
110410
|
-
}
|
|
110411
|
-
if (isInt) {
|
|
110412
|
-
if ((isInt = !Number.isSafeInteger(numeric)) && !integersAsBigInt) {
|
|
110413
|
-
throw new TomlError("integer value cannot be represented losslessly", {
|
|
110414
|
-
toml,
|
|
110415
|
-
ptr
|
|
110416
|
-
});
|
|
110417
|
-
}
|
|
110418
|
-
if (isInt || integersAsBigInt === true)
|
|
110419
|
-
numeric = BigInt(value2);
|
|
110420
|
-
}
|
|
110421
|
-
return numeric;
|
|
110422
|
-
}
|
|
110423
|
-
const date = new TomlDate(value2);
|
|
110424
|
-
if (!date.isValid()) {
|
|
110425
|
-
throw new TomlError("invalid value", {
|
|
110426
|
-
toml,
|
|
110427
|
-
ptr
|
|
110428
|
-
});
|
|
110429
|
-
}
|
|
110430
|
-
return date;
|
|
110431
|
-
}
|
|
110432
|
-
|
|
110433
|
-
// ../../node_modules/.pnpm/smol-toml@1.4.1/node_modules/smol-toml/dist/extract.js
|
|
110434
|
-
function sliceAndTrimEndOf(str, startPtr, endPtr, allowNewLines) {
|
|
110435
|
-
let value2 = str.slice(startPtr, endPtr);
|
|
110436
|
-
let commentIdx = value2.indexOf("#");
|
|
110437
|
-
if (commentIdx > -1) {
|
|
110438
|
-
skipComment(str, commentIdx);
|
|
110439
|
-
value2 = value2.slice(0, commentIdx);
|
|
110440
|
-
}
|
|
110441
|
-
let trimmed = value2.trimEnd();
|
|
110442
|
-
if (!allowNewLines) {
|
|
110443
|
-
let newlineIdx = value2.indexOf("\n", trimmed.length);
|
|
110444
|
-
if (newlineIdx > -1) {
|
|
110445
|
-
throw new TomlError("newlines are not allowed in inline tables", {
|
|
110446
|
-
toml: str,
|
|
110447
|
-
ptr: startPtr + newlineIdx
|
|
110448
|
-
});
|
|
110449
|
-
}
|
|
110450
|
-
}
|
|
110451
|
-
return [trimmed, commentIdx];
|
|
110452
|
-
}
|
|
110453
|
-
function extractValue(str, ptr, end2, depth, integersAsBigInt) {
|
|
110454
|
-
if (depth === 0) {
|
|
110455
|
-
throw new TomlError("document contains excessively nested structures. aborting.", {
|
|
110456
|
-
toml: str,
|
|
110457
|
-
ptr
|
|
110458
|
-
});
|
|
110459
|
-
}
|
|
110460
|
-
let c = str[ptr];
|
|
110461
|
-
if (c === "[" || c === "{") {
|
|
110462
|
-
let [value2, endPtr2] = c === "[" ? parseArray(str, ptr, depth, integersAsBigInt) : parseInlineTable(str, ptr, depth, integersAsBigInt);
|
|
110463
|
-
let newPtr = end2 ? skipUntil(str, endPtr2, ",", end2) : endPtr2;
|
|
110464
|
-
if (endPtr2 - newPtr && end2 === "}") {
|
|
110465
|
-
let nextNewLine = indexOfNewline(str, endPtr2, newPtr);
|
|
110466
|
-
if (nextNewLine > -1) {
|
|
110467
|
-
throw new TomlError("newlines are not allowed in inline tables", {
|
|
110468
|
-
toml: str,
|
|
110469
|
-
ptr: nextNewLine
|
|
110470
|
-
});
|
|
110471
|
-
}
|
|
110472
|
-
}
|
|
110473
|
-
return [value2, newPtr];
|
|
110474
|
-
}
|
|
110475
|
-
let endPtr;
|
|
110476
|
-
if (c === '"' || c === "'") {
|
|
110477
|
-
endPtr = getStringEnd(str, ptr);
|
|
110478
|
-
let parsed = parseString(str, ptr, endPtr);
|
|
110479
|
-
if (end2) {
|
|
110480
|
-
endPtr = skipVoid(str, endPtr, end2 !== "]");
|
|
110481
|
-
if (str[endPtr] && str[endPtr] !== "," && str[endPtr] !== end2 && str[endPtr] !== "\n" && str[endPtr] !== "\r") {
|
|
110482
|
-
throw new TomlError("unexpected character encountered", {
|
|
110483
|
-
toml: str,
|
|
110484
|
-
ptr: endPtr
|
|
110485
|
-
});
|
|
110486
|
-
}
|
|
110487
|
-
endPtr += +(str[endPtr] === ",");
|
|
110488
|
-
}
|
|
110489
|
-
return [parsed, endPtr];
|
|
110490
|
-
}
|
|
110491
|
-
endPtr = skipUntil(str, ptr, ",", end2);
|
|
110492
|
-
let slice2 = sliceAndTrimEndOf(str, ptr, endPtr - +(str[endPtr - 1] === ","), end2 === "]");
|
|
110493
|
-
if (!slice2[0]) {
|
|
110494
|
-
throw new TomlError("incomplete key-value declaration: no value specified", {
|
|
110495
|
-
toml: str,
|
|
110496
|
-
ptr
|
|
110497
|
-
});
|
|
110498
|
-
}
|
|
110499
|
-
if (end2 && slice2[1] > -1) {
|
|
110500
|
-
endPtr = skipVoid(str, ptr + slice2[1]);
|
|
110501
|
-
endPtr += +(str[endPtr] === ",");
|
|
110502
|
-
}
|
|
110503
|
-
return [
|
|
110504
|
-
parseValue(slice2[0], str, ptr, integersAsBigInt),
|
|
110505
|
-
endPtr
|
|
110506
|
-
];
|
|
110507
|
-
}
|
|
110508
|
-
|
|
110509
|
-
// ../../node_modules/.pnpm/smol-toml@1.4.1/node_modules/smol-toml/dist/struct.js
|
|
110510
|
-
var KEY_PART_RE = /^[a-zA-Z0-9-_]+[ \t]*$/;
|
|
110511
|
-
function parseKey(str, ptr, end2 = "=") {
|
|
110512
|
-
let dot = ptr - 1;
|
|
110513
|
-
let parsed = [];
|
|
110514
|
-
let endPtr = str.indexOf(end2, ptr);
|
|
110515
|
-
if (endPtr < 0) {
|
|
110516
|
-
throw new TomlError("incomplete key-value: cannot find end of key", {
|
|
110517
|
-
toml: str,
|
|
110518
|
-
ptr
|
|
110519
|
-
});
|
|
110520
|
-
}
|
|
110521
|
-
do {
|
|
110522
|
-
let c = str[ptr = ++dot];
|
|
110523
|
-
if (c !== " " && c !== " ") {
|
|
110524
|
-
if (c === '"' || c === "'") {
|
|
110525
|
-
if (c === str[ptr + 1] && c === str[ptr + 2]) {
|
|
110526
|
-
throw new TomlError("multiline strings are not allowed in keys", {
|
|
110527
|
-
toml: str,
|
|
110528
|
-
ptr
|
|
110529
|
-
});
|
|
110530
|
-
}
|
|
110531
|
-
let eos = getStringEnd(str, ptr);
|
|
110532
|
-
if (eos < 0) {
|
|
110533
|
-
throw new TomlError("unfinished string encountered", {
|
|
110534
|
-
toml: str,
|
|
110535
|
-
ptr
|
|
110536
|
-
});
|
|
110537
|
-
}
|
|
110538
|
-
dot = str.indexOf(".", eos);
|
|
110539
|
-
let strEnd = str.slice(eos, dot < 0 || dot > endPtr ? endPtr : dot);
|
|
110540
|
-
let newLine = indexOfNewline(strEnd);
|
|
110541
|
-
if (newLine > -1) {
|
|
110542
|
-
throw new TomlError("newlines are not allowed in keys", {
|
|
110543
|
-
toml: str,
|
|
110544
|
-
ptr: ptr + dot + newLine
|
|
110545
|
-
});
|
|
110546
|
-
}
|
|
110547
|
-
if (strEnd.trimStart()) {
|
|
110548
|
-
throw new TomlError("found extra tokens after the string part", {
|
|
110549
|
-
toml: str,
|
|
110550
|
-
ptr: eos
|
|
110551
|
-
});
|
|
110552
|
-
}
|
|
110553
|
-
if (endPtr < eos) {
|
|
110554
|
-
endPtr = str.indexOf(end2, eos);
|
|
110555
|
-
if (endPtr < 0) {
|
|
110556
|
-
throw new TomlError("incomplete key-value: cannot find end of key", {
|
|
110557
|
-
toml: str,
|
|
110558
|
-
ptr
|
|
110559
|
-
});
|
|
110560
|
-
}
|
|
110561
|
-
}
|
|
110562
|
-
parsed.push(parseString(str, ptr, eos));
|
|
110563
|
-
} else {
|
|
110564
|
-
dot = str.indexOf(".", ptr);
|
|
110565
|
-
let part = str.slice(ptr, dot < 0 || dot > endPtr ? endPtr : dot);
|
|
110566
|
-
if (!KEY_PART_RE.test(part)) {
|
|
110567
|
-
throw new TomlError("only letter, numbers, dashes and underscores are allowed in keys", {
|
|
110568
|
-
toml: str,
|
|
110569
|
-
ptr
|
|
110570
|
-
});
|
|
110571
|
-
}
|
|
110572
|
-
parsed.push(part.trimEnd());
|
|
110573
|
-
}
|
|
110574
|
-
}
|
|
110575
|
-
} while (dot + 1 && dot < endPtr);
|
|
110576
|
-
return [parsed, skipVoid(str, endPtr + 1, true, true)];
|
|
110577
|
-
}
|
|
110578
|
-
function parseInlineTable(str, ptr, depth, integersAsBigInt) {
|
|
110579
|
-
let res = {};
|
|
110580
|
-
let seen = /* @__PURE__ */ new Set();
|
|
110581
|
-
let c;
|
|
110582
|
-
let comma = 0;
|
|
110583
|
-
ptr++;
|
|
110584
|
-
while ((c = str[ptr++]) !== "}" && c) {
|
|
110585
|
-
let err = { toml: str, ptr: ptr - 1 };
|
|
110586
|
-
if (c === "\n") {
|
|
110587
|
-
throw new TomlError("newlines are not allowed in inline tables", err);
|
|
110588
|
-
} else if (c === "#") {
|
|
110589
|
-
throw new TomlError("inline tables cannot contain comments", err);
|
|
110590
|
-
} else if (c === ",") {
|
|
110591
|
-
throw new TomlError("expected key-value, found comma", err);
|
|
110592
|
-
} else if (c !== " " && c !== " ") {
|
|
110593
|
-
let k;
|
|
110594
|
-
let t = res;
|
|
110595
|
-
let hasOwn2 = false;
|
|
110596
|
-
let [key, keyEndPtr] = parseKey(str, ptr - 1);
|
|
110597
|
-
for (let i3 = 0; i3 < key.length; i3++) {
|
|
110598
|
-
if (i3)
|
|
110599
|
-
t = hasOwn2 ? t[k] : t[k] = {};
|
|
110600
|
-
k = key[i3];
|
|
110601
|
-
if ((hasOwn2 = Object.hasOwn(t, k)) && (typeof t[k] !== "object" || seen.has(t[k]))) {
|
|
110602
|
-
throw new TomlError("trying to redefine an already defined value", {
|
|
110603
|
-
toml: str,
|
|
110604
|
-
ptr
|
|
110605
|
-
});
|
|
110606
|
-
}
|
|
110607
|
-
if (!hasOwn2 && k === "__proto__") {
|
|
110608
|
-
Object.defineProperty(t, k, { enumerable: true, configurable: true, writable: true });
|
|
110609
|
-
}
|
|
110610
|
-
}
|
|
110611
|
-
if (hasOwn2) {
|
|
110612
|
-
throw new TomlError("trying to redefine an already defined value", {
|
|
110613
|
-
toml: str,
|
|
110614
|
-
ptr
|
|
110615
|
-
});
|
|
110616
|
-
}
|
|
110617
|
-
let [value2, valueEndPtr] = extractValue(str, keyEndPtr, "}", depth - 1, integersAsBigInt);
|
|
110618
|
-
seen.add(value2);
|
|
110619
|
-
t[k] = value2;
|
|
110620
|
-
ptr = valueEndPtr;
|
|
110621
|
-
comma = str[ptr - 1] === "," ? ptr - 1 : 0;
|
|
110622
|
-
}
|
|
110623
|
-
}
|
|
110624
|
-
if (comma) {
|
|
110625
|
-
throw new TomlError("trailing commas are not allowed in inline tables", {
|
|
110626
|
-
toml: str,
|
|
110627
|
-
ptr: comma
|
|
110628
|
-
});
|
|
110629
|
-
}
|
|
110630
|
-
if (!c) {
|
|
110631
|
-
throw new TomlError("unfinished table encountered", {
|
|
110632
|
-
toml: str,
|
|
110633
|
-
ptr
|
|
110634
|
-
});
|
|
110635
|
-
}
|
|
110636
|
-
return [res, ptr];
|
|
110637
|
-
}
|
|
110638
|
-
function parseArray(str, ptr, depth, integersAsBigInt) {
|
|
110639
|
-
let res = [];
|
|
110640
|
-
let c;
|
|
110641
|
-
ptr++;
|
|
110642
|
-
while ((c = str[ptr++]) !== "]" && c) {
|
|
110643
|
-
if (c === ",") {
|
|
110644
|
-
throw new TomlError("expected value, found comma", {
|
|
110645
|
-
toml: str,
|
|
110646
|
-
ptr: ptr - 1
|
|
110647
|
-
});
|
|
110648
|
-
} else if (c === "#")
|
|
110649
|
-
ptr = skipComment(str, ptr);
|
|
110650
|
-
else if (c !== " " && c !== " " && c !== "\n" && c !== "\r") {
|
|
110651
|
-
let e = extractValue(str, ptr - 1, "]", depth - 1, integersAsBigInt);
|
|
110652
|
-
res.push(e[0]);
|
|
110653
|
-
ptr = e[1];
|
|
110654
|
-
}
|
|
110655
|
-
}
|
|
110656
|
-
if (!c) {
|
|
110657
|
-
throw new TomlError("unfinished array encountered", {
|
|
110658
|
-
toml: str,
|
|
110659
|
-
ptr
|
|
110660
|
-
});
|
|
110661
|
-
}
|
|
110662
|
-
return [res, ptr];
|
|
110663
|
-
}
|
|
110664
|
-
|
|
110665
|
-
// ../../node_modules/.pnpm/smol-toml@1.4.1/node_modules/smol-toml/dist/parse.js
|
|
110666
|
-
function peekTable(key, table, meta, type) {
|
|
110667
|
-
let t = table;
|
|
110668
|
-
let m = meta;
|
|
110669
|
-
let k;
|
|
110670
|
-
let hasOwn2 = false;
|
|
110671
|
-
let state;
|
|
110672
|
-
for (let i3 = 0; i3 < key.length; i3++) {
|
|
110673
|
-
if (i3) {
|
|
110674
|
-
t = hasOwn2 ? t[k] : t[k] = {};
|
|
110675
|
-
m = (state = m[k]).c;
|
|
110676
|
-
if (type === 0 && (state.t === 1 || state.t === 2)) {
|
|
110677
|
-
return null;
|
|
110678
|
-
}
|
|
110679
|
-
if (state.t === 2) {
|
|
110680
|
-
let l = t.length - 1;
|
|
110681
|
-
t = t[l];
|
|
110682
|
-
m = m[l].c;
|
|
110683
|
-
}
|
|
110684
|
-
}
|
|
110685
|
-
k = key[i3];
|
|
110686
|
-
if ((hasOwn2 = Object.hasOwn(t, k)) && m[k]?.t === 0 && m[k]?.d) {
|
|
110687
|
-
return null;
|
|
110688
|
-
}
|
|
110689
|
-
if (!hasOwn2) {
|
|
110690
|
-
if (k === "__proto__") {
|
|
110691
|
-
Object.defineProperty(t, k, { enumerable: true, configurable: true, writable: true });
|
|
110692
|
-
Object.defineProperty(m, k, { enumerable: true, configurable: true, writable: true });
|
|
110693
|
-
}
|
|
110694
|
-
m[k] = {
|
|
110695
|
-
t: i3 < key.length - 1 && type === 2 ? 3 : type,
|
|
110696
|
-
d: false,
|
|
110697
|
-
i: 0,
|
|
110698
|
-
c: {}
|
|
110699
|
-
};
|
|
110700
|
-
}
|
|
110701
|
-
}
|
|
110702
|
-
state = m[k];
|
|
110703
|
-
if (state.t !== type && !(type === 1 && state.t === 3)) {
|
|
110704
|
-
return null;
|
|
110705
|
-
}
|
|
110706
|
-
if (type === 2) {
|
|
110707
|
-
if (!state.d) {
|
|
110708
|
-
state.d = true;
|
|
110709
|
-
t[k] = [];
|
|
110710
|
-
}
|
|
110711
|
-
t[k].push(t = {});
|
|
110712
|
-
state.c[state.i++] = state = { t: 1, d: false, i: 0, c: {} };
|
|
110713
|
-
}
|
|
110714
|
-
if (state.d) {
|
|
110715
|
-
return null;
|
|
110716
|
-
}
|
|
110717
|
-
state.d = true;
|
|
110718
|
-
if (type === 1) {
|
|
110719
|
-
t = hasOwn2 ? t[k] : t[k] = {};
|
|
110720
|
-
} else if (type === 0 && hasOwn2) {
|
|
110721
|
-
return null;
|
|
110722
|
-
}
|
|
110723
|
-
return [k, t, state.c];
|
|
110724
|
-
}
|
|
110725
|
-
function parse14(toml, { maxDepth = 1e3, integersAsBigInt } = {}) {
|
|
110726
|
-
let res = {};
|
|
110727
|
-
let meta = {};
|
|
110728
|
-
let tbl = res;
|
|
110729
|
-
let m = meta;
|
|
110730
|
-
for (let ptr = skipVoid(toml, 0); ptr < toml.length; ) {
|
|
110731
|
-
if (toml[ptr] === "[") {
|
|
110732
|
-
let isTableArray = toml[++ptr] === "[";
|
|
110733
|
-
let k = parseKey(toml, ptr += +isTableArray, "]");
|
|
110734
|
-
if (isTableArray) {
|
|
110735
|
-
if (toml[k[1] - 1] !== "]") {
|
|
110736
|
-
throw new TomlError("expected end of table declaration", {
|
|
110737
|
-
toml,
|
|
110738
|
-
ptr: k[1] - 1
|
|
110739
|
-
});
|
|
110740
|
-
}
|
|
110741
|
-
k[1]++;
|
|
110742
|
-
}
|
|
110743
|
-
let p = peekTable(
|
|
110744
|
-
k[0],
|
|
110745
|
-
res,
|
|
110746
|
-
meta,
|
|
110747
|
-
isTableArray ? 2 : 1
|
|
110748
|
-
/* Type.EXPLICIT */
|
|
110749
|
-
);
|
|
110750
|
-
if (!p) {
|
|
110751
|
-
throw new TomlError("trying to redefine an already defined table or value", {
|
|
110752
|
-
toml,
|
|
110753
|
-
ptr
|
|
110754
|
-
});
|
|
110755
|
-
}
|
|
110756
|
-
m = p[2];
|
|
110757
|
-
tbl = p[1];
|
|
110758
|
-
ptr = k[1];
|
|
110759
|
-
} else {
|
|
110760
|
-
let k = parseKey(toml, ptr);
|
|
110761
|
-
let p = peekTable(
|
|
110762
|
-
k[0],
|
|
110763
|
-
tbl,
|
|
110764
|
-
m,
|
|
110765
|
-
0
|
|
110766
|
-
/* Type.DOTTED */
|
|
110767
|
-
);
|
|
110768
|
-
if (!p) {
|
|
110769
|
-
throw new TomlError("trying to redefine an already defined table or value", {
|
|
110770
|
-
toml,
|
|
110771
|
-
ptr
|
|
110772
|
-
});
|
|
110773
|
-
}
|
|
110774
|
-
let v = extractValue(toml, k[1], void 0, maxDepth, integersAsBigInt);
|
|
110775
|
-
p[1][p[0]] = v[0];
|
|
110776
|
-
ptr = v[1];
|
|
110777
|
-
}
|
|
110778
|
-
ptr = skipVoid(toml, ptr, true);
|
|
110779
|
-
if (toml[ptr] && toml[ptr] !== "\n" && toml[ptr] !== "\r") {
|
|
110780
|
-
throw new TomlError("each key-value declaration must be followed by an end-of-line", {
|
|
110781
|
-
toml,
|
|
110782
|
-
ptr
|
|
110783
|
-
});
|
|
110784
|
-
}
|
|
110785
|
-
ptr = skipVoid(toml, ptr);
|
|
110786
|
-
}
|
|
110787
|
-
return res;
|
|
110788
|
-
}
|
|
110789
|
-
|
|
110790
110200
|
// dist/whole-program-code-aware-vulnerability-scanner/rust/constants.js
|
|
110791
110201
|
import { join as join18 } from "node:path";
|
|
110792
110202
|
var treeSitterRustPath = join18(REPOS_PATH(), "tree-sitter", "tree-sitter-rust");
|
|
@@ -110809,80 +110219,155 @@ var RustCodeAwareVulnerabilityScanner = class _RustCodeAwareVulnerabilityScanner
|
|
|
110809
110219
|
this.statusUpdater = statusUpdater;
|
|
110810
110220
|
}
|
|
110811
110221
|
static initFromDependencyTree(dependencyTree, timeoutInSeconds, statusUpdater) {
|
|
110222
|
+
const appDependencies = {};
|
|
110223
|
+
if (dependencyTree.dependenciesWithAliases) {
|
|
110224
|
+
for (const [depId, names] of Object.entries(dependencyTree.dependenciesWithAliases)) {
|
|
110225
|
+
appDependencies[depId] = { names };
|
|
110226
|
+
}
|
|
110227
|
+
}
|
|
110812
110228
|
const apps = {
|
|
110813
|
-
|
|
110229
|
+
"<app>": {
|
|
110814
110230
|
src: dependencyTree.src,
|
|
110815
110231
|
ecosystemSpecificPackageInfo: {
|
|
110816
110232
|
type: "RUST",
|
|
110817
|
-
crate: dependencyTree.packageName.replaceAll("-", "_")
|
|
110233
|
+
crate: dependencyTree.packageName.replaceAll("-", "_"),
|
|
110234
|
+
dependencies: appDependencies
|
|
110818
110235
|
}
|
|
110819
110236
|
}
|
|
110820
110237
|
};
|
|
110821
110238
|
const deps = {};
|
|
110822
110239
|
const depIdToPurl = /* @__PURE__ */ new Map();
|
|
110823
|
-
Object.
|
|
110824
|
-
|
|
110825
|
-
|
|
110826
|
-
|
|
110240
|
+
for (const [depId, dep] of Object.entries(dependencyTree.transitiveDependencies)) {
|
|
110241
|
+
depIdToPurl.set(depId, getCargoPurl(dep.packageName, dep.version ?? void 0));
|
|
110242
|
+
const dependencies = {};
|
|
110243
|
+
if (dep.dependenciesWithAliases) {
|
|
110244
|
+
for (const [transDepId, names] of Object.entries(dep.dependenciesWithAliases)) {
|
|
110245
|
+
dependencies[transDepId] = { names };
|
|
110246
|
+
}
|
|
110247
|
+
}
|
|
110248
|
+
deps[depId] = {
|
|
110827
110249
|
src: dep.src,
|
|
110828
|
-
ecosystemSpecificPackageInfo: {
|
|
110250
|
+
ecosystemSpecificPackageInfo: {
|
|
110251
|
+
type: "RUST",
|
|
110252
|
+
crate: dep.packageName.replaceAll("-", "_"),
|
|
110253
|
+
dependencies
|
|
110254
|
+
}
|
|
110829
110255
|
};
|
|
110830
|
-
}
|
|
110256
|
+
}
|
|
110831
110257
|
return new _RustCodeAwareVulnerabilityScanner(apps, deps, depIdToPurl, timeoutInSeconds, statusUpdater);
|
|
110832
110258
|
}
|
|
110833
|
-
static async initFromSocketArtifacts(subprojectDir,
|
|
110834
|
-
const
|
|
110835
|
-
for (const
|
|
110836
|
-
|
|
110837
|
-
|
|
110838
|
-
|
|
110839
|
-
|
|
110840
|
-
|
|
110841
|
-
|
|
110842
|
-
|
|
110259
|
+
static async initFromSocketArtifacts(subprojectDir, workspacePath, artifacts, tmpDir, timeoutInSeconds, statusUpdater) {
|
|
110260
|
+
const cargoTomlToArtifacts = /* @__PURE__ */ new Map();
|
|
110261
|
+
for (const artifact of artifacts) {
|
|
110262
|
+
for (const mf of artifact.manifestFiles ?? []) {
|
|
110263
|
+
const manifestPath = mf.file;
|
|
110264
|
+
if (!cargoTomlToArtifacts.has(manifestPath)) {
|
|
110265
|
+
cargoTomlToArtifacts.set(manifestPath, []);
|
|
110266
|
+
}
|
|
110267
|
+
cargoTomlToArtifacts.get(manifestPath).push(artifact);
|
|
110268
|
+
}
|
|
110269
|
+
}
|
|
110270
|
+
const artifactNameToId = /* @__PURE__ */ new Map();
|
|
110271
|
+
for (const artifact of artifacts) {
|
|
110272
|
+
if (artifact.name) {
|
|
110273
|
+
artifactNameToId.set(artifact.name, artifact.id);
|
|
110274
|
+
}
|
|
110275
|
+
}
|
|
110276
|
+
const cargoTomlRelativePath = resolve15(workspacePath, "Cargo.toml");
|
|
110277
|
+
const cargoTomlPath = resolve15(subprojectDir, cargoTomlRelativePath);
|
|
110278
|
+
let appCrateName;
|
|
110279
|
+
const appSrc = [];
|
|
110280
|
+
const dependencies = {};
|
|
110281
|
+
const appCrateInfo = existsSync11(cargoTomlPath) ? await getCrateInfo(cargoTomlPath) : void 0;
|
|
110282
|
+
if (appCrateInfo?.name) {
|
|
110283
|
+
appSrc.push(...i([appCrateInfo.lib, ...appCrateInfo.examples ?? [], ...appCrateInfo.tests ?? []]));
|
|
110284
|
+
appCrateName = appCrateInfo.name.replaceAll("-", "_");
|
|
110285
|
+
const directDepArtifacts = cargoTomlToArtifacts.get(cargoTomlRelativePath) ?? [];
|
|
110286
|
+
const cargoTomlDeps = await extractDependenciesFromCargoToml(cargoTomlPath);
|
|
110287
|
+
for (const artifact of directDepArtifacts) {
|
|
110288
|
+
const names = artifact.name ? cargoTomlDeps.get(artifact.name) ?? [artifact.name] : [];
|
|
110289
|
+
if (names.length > 0) {
|
|
110290
|
+
dependencies[artifact.id] = { names };
|
|
110291
|
+
}
|
|
110292
|
+
}
|
|
110293
|
+
} else {
|
|
110294
|
+
appSrc.push(resolve15(subprojectDir, workspacePath, "src"));
|
|
110295
|
+
appCrateName = randomUUID3();
|
|
110296
|
+
const directDepArtifacts = cargoTomlToArtifacts.get(cargoTomlRelativePath) ?? [];
|
|
110297
|
+
for (const artifact of directDepArtifacts) {
|
|
110298
|
+
if (artifact.name) {
|
|
110299
|
+
dependencies[artifact.id] = { names: [artifact.name] };
|
|
110300
|
+
}
|
|
110301
|
+
}
|
|
110302
|
+
}
|
|
110303
|
+
const apps = {
|
|
110304
|
+
"<app>": {
|
|
110305
|
+
src: appSrc,
|
|
110843
110306
|
ecosystemSpecificPackageInfo: {
|
|
110844
110307
|
type: "RUST",
|
|
110845
|
-
crate:
|
|
110308
|
+
crate: appCrateName,
|
|
110309
|
+
dependencies
|
|
110846
110310
|
}
|
|
110847
|
-
}
|
|
110848
|
-
}
|
|
110849
|
-
const { deps, depIdToPurl } = await convertSocketArtifacts3(artifacts, tmpDir);
|
|
110311
|
+
}
|
|
110312
|
+
};
|
|
110313
|
+
const { deps, depIdToPurl } = await convertSocketArtifacts3(artifacts, tmpDir, artifactNameToId);
|
|
110850
110314
|
return new _RustCodeAwareVulnerabilityScanner(apps, deps, depIdToPurl, timeoutInSeconds, statusUpdater);
|
|
110851
110315
|
}
|
|
110316
|
+
/** @deprecated */
|
|
110852
110317
|
static async runOnAlreadyDownloadedPackages([appPath, ...depPaths], vulnerability, options) {
|
|
110853
|
-
const
|
|
110318
|
+
const packageNameToId = /* @__PURE__ */ new Map();
|
|
110319
|
+
const allCargoTomls = [];
|
|
110854
110320
|
for (const cargoToml of (await getFiles(appPath)).filter((f2) => basename9(f2) === "Cargo.toml")) {
|
|
110855
110321
|
if (!cargoToml)
|
|
110856
110322
|
continue;
|
|
110857
|
-
const
|
|
110858
|
-
if (!
|
|
110323
|
+
const crateInfo = await getCrateInfo(cargoToml);
|
|
110324
|
+
if (!crateInfo.name)
|
|
110859
110325
|
continue;
|
|
110860
|
-
|
|
110861
|
-
|
|
110862
|
-
|
|
110863
|
-
type: "RUST",
|
|
110864
|
-
crate: appCrateInfo.name.replaceAll("-", "_")
|
|
110865
|
-
}
|
|
110866
|
-
};
|
|
110326
|
+
const packageId = "<app>";
|
|
110327
|
+
packageNameToId.set(crateInfo.name, packageId);
|
|
110328
|
+
allCargoTomls.push({ path: cargoToml, isApp: true });
|
|
110867
110329
|
}
|
|
110868
|
-
const deps = {};
|
|
110869
|
-
const depIdToPurl = /* @__PURE__ */ new Map();
|
|
110870
110330
|
for (const depPath of depPaths) {
|
|
110871
110331
|
for (const cargoToml of (await getFiles(depPath)).filter((f2) => basename9(f2) === "Cargo.toml")) {
|
|
110872
110332
|
if (!cargoToml)
|
|
110873
110333
|
continue;
|
|
110874
|
-
const
|
|
110875
|
-
if (!
|
|
110334
|
+
const crateInfo = await getCrateInfo(cargoToml);
|
|
110335
|
+
if (!crateInfo.name)
|
|
110876
110336
|
continue;
|
|
110877
|
-
const
|
|
110878
|
-
|
|
110879
|
-
|
|
110880
|
-
|
|
110881
|
-
|
|
110882
|
-
|
|
110883
|
-
|
|
110884
|
-
|
|
110885
|
-
|
|
110337
|
+
const packageId = randomUUID3();
|
|
110338
|
+
packageNameToId.set(crateInfo.name, packageId);
|
|
110339
|
+
allCargoTomls.push({ path: cargoToml, isApp: false });
|
|
110340
|
+
}
|
|
110341
|
+
}
|
|
110342
|
+
const apps = {};
|
|
110343
|
+
const deps = {};
|
|
110344
|
+
const depIdToPurl = /* @__PURE__ */ new Map();
|
|
110345
|
+
for (const { path: cargoToml, isApp } of allCargoTomls) {
|
|
110346
|
+
const crateInfo = await getCrateInfo(cargoToml);
|
|
110347
|
+
if (!crateInfo.name)
|
|
110348
|
+
continue;
|
|
110349
|
+
const cargoTomlDeps = await extractDependenciesFromCargoToml(cargoToml);
|
|
110350
|
+
const dependencies = {};
|
|
110351
|
+
for (const [packageName, names] of cargoTomlDeps.entries()) {
|
|
110352
|
+
const depId = packageNameToId.get(packageName);
|
|
110353
|
+
if (depId) {
|
|
110354
|
+
dependencies[depId] = { names };
|
|
110355
|
+
}
|
|
110356
|
+
}
|
|
110357
|
+
const packageId = packageNameToId.get(crateInfo.name);
|
|
110358
|
+
const packageInfo = {
|
|
110359
|
+
src: isApp ? i([crateInfo.lib, ...crateInfo.examples ?? [], ...crateInfo.tests ?? []]) : [crateInfo.lib],
|
|
110360
|
+
ecosystemSpecificPackageInfo: {
|
|
110361
|
+
type: "RUST",
|
|
110362
|
+
crate: crateInfo.name.replaceAll("-", "_"),
|
|
110363
|
+
dependencies
|
|
110364
|
+
}
|
|
110365
|
+
};
|
|
110366
|
+
if (isApp) {
|
|
110367
|
+
apps[packageId] = packageInfo;
|
|
110368
|
+
} else {
|
|
110369
|
+
depIdToPurl.set(packageId, getCargoPurl("", void 0));
|
|
110370
|
+
deps[packageId] = packageInfo;
|
|
110886
110371
|
}
|
|
110887
110372
|
}
|
|
110888
110373
|
const scanner = new _RustCodeAwareVulnerabilityScanner(apps, deps, depIdToPurl, options.timeoutInSeconds);
|
|
@@ -110898,28 +110383,62 @@ var RustCodeAwareVulnerabilityScanner = class _RustCodeAwareVulnerabilityScanner
|
|
|
110898
110383
|
return withTmpDirectory("rust-run-on-dependency-chain", async (tmpDir) => {
|
|
110899
110384
|
try {
|
|
110900
110385
|
const rustDependencyChain = await convertDependencyChain3(dependencyChain, tmpDir);
|
|
110386
|
+
const packageNameToId = /* @__PURE__ */ new Map();
|
|
110387
|
+
packageNameToId.set(rustDependencyChain[0].packageName, "<app>");
|
|
110388
|
+
rustDependencyChain.slice(1).forEach((dep) => {
|
|
110389
|
+
const packageId = randomUUID3();
|
|
110390
|
+
packageNameToId.set(dep.packageName, packageId);
|
|
110391
|
+
});
|
|
110392
|
+
const appDependencies = {};
|
|
110393
|
+
if (rustDependencyChain[0].src && rustDependencyChain[0].src.length > 0) {
|
|
110394
|
+
const appCargoTomlPath = resolve15(rustDependencyChain[0].src[0], "..", "Cargo.toml");
|
|
110395
|
+
if (existsSync11(appCargoTomlPath)) {
|
|
110396
|
+
const cargoTomlDeps = await extractDependenciesFromCargoToml(appCargoTomlPath);
|
|
110397
|
+
for (const [packageName, names] of cargoTomlDeps.entries()) {
|
|
110398
|
+
const depId = packageNameToId.get(packageName);
|
|
110399
|
+
if (depId) {
|
|
110400
|
+
appDependencies[depId] = { names };
|
|
110401
|
+
}
|
|
110402
|
+
}
|
|
110403
|
+
}
|
|
110404
|
+
}
|
|
110901
110405
|
const apps = {
|
|
110902
|
-
|
|
110406
|
+
"<app>": {
|
|
110903
110407
|
src: rustDependencyChain[0].src,
|
|
110904
110408
|
ecosystemSpecificPackageInfo: {
|
|
110905
110409
|
type: "RUST",
|
|
110906
|
-
crate: rustDependencyChain[0].packageName.replaceAll("-", "_")
|
|
110410
|
+
crate: rustDependencyChain[0].packageName.replaceAll("-", "_"),
|
|
110411
|
+
dependencies: appDependencies
|
|
110907
110412
|
}
|
|
110908
110413
|
}
|
|
110909
110414
|
};
|
|
110910
110415
|
const deps = {};
|
|
110911
110416
|
const depIdToPurl = /* @__PURE__ */ new Map();
|
|
110912
|
-
rustDependencyChain.slice(1)
|
|
110913
|
-
const
|
|
110914
|
-
depIdToPurl.set(
|
|
110915
|
-
|
|
110417
|
+
for (const dep of rustDependencyChain.slice(1)) {
|
|
110418
|
+
const packageId = packageNameToId.get(dep.packageName);
|
|
110419
|
+
depIdToPurl.set(packageId, getCargoPurl(dep.packageName, dep.version ?? void 0));
|
|
110420
|
+
const dependencies = {};
|
|
110421
|
+
if (dep.src && dep.src.length > 0) {
|
|
110422
|
+
const depCargoTomlPath = resolve15(dep.src[0], "..", "Cargo.toml");
|
|
110423
|
+
if (existsSync11(depCargoTomlPath)) {
|
|
110424
|
+
const cargoTomlDeps = await extractDependenciesFromCargoToml(depCargoTomlPath);
|
|
110425
|
+
for (const [packageName, names] of cargoTomlDeps.entries()) {
|
|
110426
|
+
const transDepId = packageNameToId.get(packageName);
|
|
110427
|
+
if (transDepId) {
|
|
110428
|
+
dependencies[transDepId] = { names };
|
|
110429
|
+
}
|
|
110430
|
+
}
|
|
110431
|
+
}
|
|
110432
|
+
}
|
|
110433
|
+
deps[packageId] = {
|
|
110916
110434
|
src: dep.src,
|
|
110917
110435
|
ecosystemSpecificPackageInfo: {
|
|
110918
110436
|
type: "RUST",
|
|
110919
|
-
crate: dep.packageName.replaceAll("-", "_")
|
|
110437
|
+
crate: dep.packageName.replaceAll("-", "_"),
|
|
110438
|
+
dependencies
|
|
110920
110439
|
}
|
|
110921
110440
|
};
|
|
110922
|
-
}
|
|
110441
|
+
}
|
|
110923
110442
|
const scanner = new _RustCodeAwareVulnerabilityScanner(apps, deps, depIdToPurl, timeoutInSeconds, statusUpdater);
|
|
110924
110443
|
const result = await scanner.actuallyRunAnalysis(vulnerability.vulnerabilityAccessPaths);
|
|
110925
110444
|
if (result.type === "error")
|
|
@@ -110943,7 +110462,8 @@ var RustCodeAwareVulnerabilityScanner = class _RustCodeAwareVulnerabilityScanner
|
|
|
110943
110462
|
const inputFile = resolve15(tmpDir, "input.json");
|
|
110944
110463
|
const outputFile = resolve15(tmpDir, "output.json");
|
|
110945
110464
|
await writeFile7(inputFile, JSON.stringify(options));
|
|
110946
|
-
const
|
|
110465
|
+
const timeoutMs = this.timeoutInSeconds ? Math.max(this.timeoutInSeconds * 1.5, this.timeoutInSeconds + 30) * 1e3 : 750 * 1e3;
|
|
110466
|
+
const result = await execNeverFail(cmdt`node ${classGraphAnalysisCliPath} runRustDirectDependencyAnalysis -i ${inputFile} -o ${outputFile} --tree-sitter-rust ${treeSitterRustPath}`, void 0, { timeout: timeoutMs });
|
|
110947
110467
|
if (result.error)
|
|
110948
110468
|
return void 0;
|
|
110949
110469
|
const packageIds = JSON.parse(await readFile10(outputFile, "utf-8")).result;
|
|
@@ -110977,7 +110497,9 @@ var RustCodeAwareVulnerabilityScanner = class _RustCodeAwareVulnerabilityScanner
|
|
|
110977
110497
|
const inputFile = resolve15(tmpDir, "input.json");
|
|
110978
110498
|
const outputFile = resolve15(tmpDir, "output.json");
|
|
110979
110499
|
await writeFile7(inputFile, JSON.stringify(options));
|
|
110980
|
-
|
|
110500
|
+
await writeFile7("/Users/jfblaa/Desktop/class-graph-analysis-input.json", JSON.stringify(options, null, 2));
|
|
110501
|
+
const timeoutMs = this.timeoutInSeconds ? Math.max(this.timeoutInSeconds * 1.5, this.timeoutInSeconds + 30) * 1e3 : 750 * 1e3;
|
|
110502
|
+
const result = await execNeverFail(cmdt`node ${classGraphAnalysisCliPath} runRustReachabilityAnalysis -i ${inputFile} -o ${outputFile} --tree-sitter-rust ${treeSitterRustPath}`, void 0, { timeout: timeoutMs });
|
|
110981
110503
|
if (result.error)
|
|
110982
110504
|
return { type: "error", message: result.error.message ?? "unknown error" };
|
|
110983
110505
|
const { success, error, analysisDiagnostics: diagnostics, vulnerablePaths, reachablePackageIds } = JSON.parse(await readFile10(outputFile, "utf-8")).result;
|
|
@@ -111032,24 +110554,19 @@ var RustCodeAwareVulnerabilityScanner = class _RustCodeAwareVulnerabilityScanner
|
|
|
111032
110554
|
}
|
|
111033
110555
|
};
|
|
111034
110556
|
async function convertDependencyChain3(dependencyChain, tmpDir) {
|
|
111035
|
-
|
|
111036
|
-
|
|
111037
|
-
const
|
|
111038
|
-
|
|
111039
|
-
|
|
111040
|
-
|
|
111041
|
-
return void 0;
|
|
110557
|
+
const localRepositories = getCargoLocalRepositoryPaths();
|
|
110558
|
+
async function resolveCargoCrate(packageName, version3) {
|
|
110559
|
+
for (const repo of localRepositories) {
|
|
110560
|
+
const localPackage = await findCargoPackageInLocalRepo(repo, packageName, version3, tmpDir);
|
|
110561
|
+
if (localPackage)
|
|
110562
|
+
return localPackage;
|
|
111042
110563
|
}
|
|
111043
|
-
await
|
|
111044
|
-
const packageDir = resolve15(tmpDir, `${packageName.toLocaleLowerCase()}-${version3.toLocaleLowerCase()}`);
|
|
111045
|
-
const cargoTomlPath = resolve15(packageDir, "Cargo.toml");
|
|
111046
|
-
const depCrateInfo = await getCrateInfo(cargoTomlPath);
|
|
111047
|
-
return [depCrateInfo.lib];
|
|
110564
|
+
return await downloadAndExtractCargoCrate(packageName, version3, tmpDir);
|
|
111048
110565
|
}
|
|
111049
110566
|
const rustDependencyChain = await asyncMap(dependencyChain, async (dep) => {
|
|
111050
110567
|
return {
|
|
111051
110568
|
...dep,
|
|
111052
|
-
src: dep.version ? await
|
|
110569
|
+
src: dep.version ? await resolveCargoCrate(dep.packageName, dep.version) : void 0
|
|
111053
110570
|
};
|
|
111054
110571
|
}, 4);
|
|
111055
110572
|
return rustDependencyChain;
|
|
@@ -111138,7 +110655,7 @@ async function downloadAndExtractCargoCrate(packageName, version3, tmpDir) {
|
|
|
111138
110655
|
}
|
|
111139
110656
|
return extractCargoCrate(packageFile, packageName, version3, tmpDir);
|
|
111140
110657
|
}
|
|
111141
|
-
async function convertSocketArtifacts3(artifacts, tmpDir) {
|
|
110658
|
+
async function convertSocketArtifacts3(artifacts, tmpDir, artifactNameToId) {
|
|
111142
110659
|
const localRepositories = getCargoLocalRepositoryPaths();
|
|
111143
110660
|
async function resolveCargoCrate(packageName, version3) {
|
|
111144
110661
|
for (const repo of localRepositories) {
|
|
@@ -111150,19 +110667,81 @@ async function convertSocketArtifacts3(artifacts, tmpDir) {
|
|
|
111150
110667
|
}
|
|
111151
110668
|
const deps = {};
|
|
111152
110669
|
const depIdToPurl = /* @__PURE__ */ new Map();
|
|
110670
|
+
const artifactToSrcPath = /* @__PURE__ */ new Map();
|
|
111153
110671
|
await asyncForEach(artifacts, async (artifact) => {
|
|
111154
|
-
const
|
|
111155
|
-
|
|
111156
|
-
|
|
110672
|
+
const src = artifact.name && artifact.version ? await resolveCargoCrate(artifact.name, artifact.version) : void 0;
|
|
110673
|
+
artifactToSrcPath.set(artifact.id, src);
|
|
110674
|
+
}, 4);
|
|
110675
|
+
for (const artifact of artifacts) {
|
|
110676
|
+
const src = artifactToSrcPath.get(artifact.id);
|
|
110677
|
+
depIdToPurl.set(artifact.id, getPurlFromSocketFactArtifact(artifact));
|
|
110678
|
+
const dependencies = {};
|
|
110679
|
+
if (src && src.length > 0) {
|
|
110680
|
+
const cargoTomlPath = resolve15(dirname13(src[0]), "Cargo.toml");
|
|
110681
|
+
if (existsSync11(cargoTomlPath)) {
|
|
110682
|
+
const cargoTomlDeps = await extractDependenciesFromCargoToml(cargoTomlPath);
|
|
110683
|
+
for (const [packageName, names] of cargoTomlDeps.entries()) {
|
|
110684
|
+
const depArtifactId = artifactNameToId.get(packageName);
|
|
110685
|
+
if (depArtifactId) {
|
|
110686
|
+
dependencies[depArtifactId] = { names };
|
|
110687
|
+
}
|
|
110688
|
+
}
|
|
110689
|
+
}
|
|
110690
|
+
}
|
|
110691
|
+
deps[artifact.id] = {
|
|
111157
110692
|
ecosystemSpecificPackageInfo: {
|
|
111158
110693
|
type: "RUST",
|
|
111159
|
-
crate: artifact.name?.replaceAll("-", "_") ?? ""
|
|
110694
|
+
crate: artifact.name?.replaceAll("-", "_") ?? "",
|
|
110695
|
+
dependencies
|
|
111160
110696
|
},
|
|
111161
|
-
src
|
|
110697
|
+
src
|
|
111162
110698
|
};
|
|
111163
|
-
}
|
|
110699
|
+
}
|
|
111164
110700
|
return { deps, depIdToPurl };
|
|
111165
110701
|
}
|
|
110702
|
+
async function extractDependenciesFromCargoToml(cargoTomlPath) {
|
|
110703
|
+
const content = await readFile10(cargoTomlPath, "utf-8");
|
|
110704
|
+
const toml = parseTOML2(content);
|
|
110705
|
+
if (!toml)
|
|
110706
|
+
return /* @__PURE__ */ new Map();
|
|
110707
|
+
const result = /* @__PURE__ */ new Map();
|
|
110708
|
+
function processDependencySection(section) {
|
|
110709
|
+
if (!(section instanceof TOMLTable))
|
|
110710
|
+
return;
|
|
110711
|
+
for (const key in section) {
|
|
110712
|
+
const dep = section[key];
|
|
110713
|
+
let actualPackageName = key;
|
|
110714
|
+
if (dep instanceof TOMLScalar) {
|
|
110715
|
+
actualPackageName = key;
|
|
110716
|
+
} else if (dep instanceof TOMLTable) {
|
|
110717
|
+
const packageNameValue = dep.package;
|
|
110718
|
+
if (packageNameValue instanceof TOMLScalar) {
|
|
110719
|
+
actualPackageName = String(packageNameValue[value]);
|
|
110720
|
+
} else {
|
|
110721
|
+
actualPackageName = key;
|
|
110722
|
+
}
|
|
110723
|
+
}
|
|
110724
|
+
const names = result.get(actualPackageName) ?? [];
|
|
110725
|
+
if (!names.includes(key)) {
|
|
110726
|
+
names.push(key);
|
|
110727
|
+
}
|
|
110728
|
+
result.set(actualPackageName, names);
|
|
110729
|
+
}
|
|
110730
|
+
}
|
|
110731
|
+
processDependencySection(toml.dependencies);
|
|
110732
|
+
processDependencySection(toml["dev-dependencies"]);
|
|
110733
|
+
const target = toml.target;
|
|
110734
|
+
if (target instanceof TOMLTable) {
|
|
110735
|
+
for (const targetKey in target) {
|
|
110736
|
+
const targetSection = target[targetKey];
|
|
110737
|
+
if (targetSection instanceof TOMLTable) {
|
|
110738
|
+
processDependencySection(targetSection.dependencies);
|
|
110739
|
+
processDependencySection(targetSection["dev-dependencies"]);
|
|
110740
|
+
}
|
|
110741
|
+
}
|
|
110742
|
+
}
|
|
110743
|
+
return result;
|
|
110744
|
+
}
|
|
111166
110745
|
async function getCrateInfo(cargoTomlPath) {
|
|
111167
110746
|
let name2;
|
|
111168
110747
|
let version3;
|
|
@@ -111171,41 +110750,49 @@ async function getCrateInfo(cargoTomlPath) {
|
|
|
111171
110750
|
let tests;
|
|
111172
110751
|
const cargoTomlDir = dirname13(cargoTomlPath);
|
|
111173
110752
|
const content = await readFile10(cargoTomlPath, "utf-8");
|
|
111174
|
-
const parsed =
|
|
111175
|
-
if (
|
|
111176
|
-
|
|
111177
|
-
|
|
111178
|
-
}
|
|
110753
|
+
const parsed = parseTOML2(content);
|
|
110754
|
+
if (!parsed) {
|
|
110755
|
+
lib = resolve15(dirname13(cargoTomlPath), "src");
|
|
110756
|
+
return { name: name2, version: version3, lib, examples, tests };
|
|
111179
110757
|
}
|
|
111180
|
-
|
|
111181
|
-
|
|
111182
|
-
|
|
110758
|
+
const packageSection = getNestedValue(parsed, "package");
|
|
110759
|
+
if (packageSection instanceof TOMLTable) {
|
|
110760
|
+
const packageName = packageSection.name;
|
|
110761
|
+
if (packageName instanceof TOMLScalar) {
|
|
110762
|
+
name2 = String(packageName[value]);
|
|
110763
|
+
}
|
|
110764
|
+
const packageVersion = packageSection.version;
|
|
110765
|
+
if (packageVersion instanceof TOMLScalar) {
|
|
110766
|
+
version3 = String(packageVersion[value]);
|
|
111183
110767
|
}
|
|
111184
110768
|
}
|
|
111185
|
-
|
|
111186
|
-
|
|
111187
|
-
|
|
111188
|
-
|
|
110769
|
+
const libSection = parsed.lib;
|
|
110770
|
+
if (libSection instanceof TOMLTable) {
|
|
110771
|
+
const libPath = libSection.path;
|
|
110772
|
+
if (libPath instanceof TOMLScalar) {
|
|
110773
|
+
lib = dirname13(resolve15(cargoTomlDir, String(libPath[value])));
|
|
111189
110774
|
}
|
|
111190
110775
|
}
|
|
111191
|
-
|
|
110776
|
+
const exampleSection = parsed.example;
|
|
110777
|
+
if (Array.isArray(exampleSection)) {
|
|
111192
110778
|
examples = [];
|
|
111193
|
-
|
|
111194
|
-
if (
|
|
110779
|
+
exampleSection.forEach((example) => {
|
|
110780
|
+
if (example instanceof TOMLTable) {
|
|
111195
110781
|
const examplePath = example.path;
|
|
111196
|
-
if (
|
|
111197
|
-
examples?.push(dirname13(resolve15(cargoTomlDir, examplePath)));
|
|
110782
|
+
if (examplePath instanceof TOMLScalar) {
|
|
110783
|
+
examples?.push(dirname13(resolve15(cargoTomlDir, String(examplePath[value]))));
|
|
111198
110784
|
}
|
|
111199
110785
|
}
|
|
111200
110786
|
});
|
|
111201
110787
|
}
|
|
111202
|
-
|
|
110788
|
+
const testSection = parsed.test;
|
|
110789
|
+
if (Array.isArray(testSection)) {
|
|
111203
110790
|
tests = [];
|
|
111204
|
-
|
|
111205
|
-
if (
|
|
110791
|
+
testSection.forEach((test3) => {
|
|
110792
|
+
if (test3 instanceof TOMLTable) {
|
|
111206
110793
|
const testPath = test3.path;
|
|
111207
|
-
if (
|
|
111208
|
-
tests?.push(dirname13(resolve15(cargoTomlDir, testPath)));
|
|
110794
|
+
if (testPath instanceof TOMLScalar) {
|
|
110795
|
+
tests?.push(dirname13(resolve15(cargoTomlDir, String(testPath[value]))));
|
|
111209
110796
|
}
|
|
111210
110797
|
}
|
|
111211
110798
|
});
|
|
@@ -116182,13 +115769,13 @@ var RustAnalyzer = class {
|
|
|
116182
115769
|
}
|
|
116183
115770
|
async runPhantomDependencyAnalysis() {
|
|
116184
115771
|
return withTmpDirectory("cargo-phantom-dependency-analysis", async (tmpDir) => {
|
|
116185
|
-
const scanner = this.state.workspaceData.type === "coana" ? RustCodeAwareVulnerabilityScanner.initFromDependencyTree(this.state.workspaceData.data.dependencyTree) : await RustCodeAwareVulnerabilityScanner.initFromSocketArtifacts(this.state.subprojectDir, this.state.
|
|
115772
|
+
const scanner = this.state.workspaceData.type === "coana" ? RustCodeAwareVulnerabilityScanner.initFromDependencyTree(this.state.workspaceData.data.dependencyTree) : await RustCodeAwareVulnerabilityScanner.initFromSocketArtifacts(this.state.subprojectDir, this.state.workspacePath, this.state.workspaceData.data.artifacts, tmpDir);
|
|
116186
115773
|
return scanner.runPhantomDependencyAnalysis();
|
|
116187
115774
|
});
|
|
116188
115775
|
}
|
|
116189
115776
|
async runReachabilityAnalysis(vulns, analysisMetadataCollector, statusUpdater) {
|
|
116190
115777
|
return withTmpDirectory("cargo-reachability-analysis", async (tmpDir) => {
|
|
116191
|
-
const scanner = this.state.workspaceData.type === "coana" ? RustCodeAwareVulnerabilityScanner.initFromDependencyTree(this.state.workspaceData.data.dependencyTree, this.state.reachabilityAnalysisOptions.timeoutInSeconds, statusUpdater) : await RustCodeAwareVulnerabilityScanner.initFromSocketArtifacts(this.state.subprojectDir, this.state.
|
|
115778
|
+
const scanner = this.state.workspaceData.type === "coana" ? RustCodeAwareVulnerabilityScanner.initFromDependencyTree(this.state.workspaceData.data.dependencyTree, this.state.reachabilityAnalysisOptions.timeoutInSeconds, statusUpdater) : await RustCodeAwareVulnerabilityScanner.initFromSocketArtifacts(this.state.subprojectDir, this.state.workspacePath, this.state.workspaceData.data.artifacts, tmpDir, this.state.reachabilityAnalysisOptions.timeoutInSeconds, statusUpdater);
|
|
116192
115779
|
const heuristicsInOrder = [RusticaHeuristics.ALL_PACKAGES];
|
|
116193
115780
|
return await analyzeWithHeuristics(this.state, vulns, heuristicsInOrder, false, scanner, analysisMetadataCollector, statusUpdater);
|
|
116194
115781
|
});
|
|
@@ -116354,266 +115941,5 @@ fill-range/index.js:
|
|
|
116354
115941
|
* Copyright (c) 2014-present, Jon Schlinkert.
|
|
116355
115942
|
* Licensed under the MIT License.
|
|
116356
115943
|
*)
|
|
116357
|
-
|
|
116358
|
-
smol-toml/dist/error.js:
|
|
116359
|
-
(*!
|
|
116360
|
-
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
116361
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
116362
|
-
*
|
|
116363
|
-
* Redistribution and use in source and binary forms, with or without
|
|
116364
|
-
* modification, are permitted provided that the following conditions are met:
|
|
116365
|
-
*
|
|
116366
|
-
* 1. Redistributions of source code must retain the above copyright notice, this
|
|
116367
|
-
* list of conditions and the following disclaimer.
|
|
116368
|
-
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
116369
|
-
* this list of conditions and the following disclaimer in the
|
|
116370
|
-
* documentation and/or other materials provided with the distribution.
|
|
116371
|
-
* 3. Neither the name of the copyright holder nor the names of its contributors
|
|
116372
|
-
* may be used to endorse or promote products derived from this software without
|
|
116373
|
-
* specific prior written permission.
|
|
116374
|
-
*
|
|
116375
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
116376
|
-
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
116377
|
-
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
116378
|
-
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
116379
|
-
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
116380
|
-
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
116381
|
-
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
116382
|
-
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
116383
|
-
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
116384
|
-
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
116385
|
-
*)
|
|
116386
|
-
|
|
116387
|
-
smol-toml/dist/util.js:
|
|
116388
|
-
(*!
|
|
116389
|
-
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
116390
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
116391
|
-
*
|
|
116392
|
-
* Redistribution and use in source and binary forms, with or without
|
|
116393
|
-
* modification, are permitted provided that the following conditions are met:
|
|
116394
|
-
*
|
|
116395
|
-
* 1. Redistributions of source code must retain the above copyright notice, this
|
|
116396
|
-
* list of conditions and the following disclaimer.
|
|
116397
|
-
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
116398
|
-
* this list of conditions and the following disclaimer in the
|
|
116399
|
-
* documentation and/or other materials provided with the distribution.
|
|
116400
|
-
* 3. Neither the name of the copyright holder nor the names of its contributors
|
|
116401
|
-
* may be used to endorse or promote products derived from this software without
|
|
116402
|
-
* specific prior written permission.
|
|
116403
|
-
*
|
|
116404
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
116405
|
-
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
116406
|
-
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
116407
|
-
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
116408
|
-
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
116409
|
-
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
116410
|
-
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
116411
|
-
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
116412
|
-
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
116413
|
-
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
116414
|
-
*)
|
|
116415
|
-
|
|
116416
|
-
smol-toml/dist/date.js:
|
|
116417
|
-
(*!
|
|
116418
|
-
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
116419
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
116420
|
-
*
|
|
116421
|
-
* Redistribution and use in source and binary forms, with or without
|
|
116422
|
-
* modification, are permitted provided that the following conditions are met:
|
|
116423
|
-
*
|
|
116424
|
-
* 1. Redistributions of source code must retain the above copyright notice, this
|
|
116425
|
-
* list of conditions and the following disclaimer.
|
|
116426
|
-
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
116427
|
-
* this list of conditions and the following disclaimer in the
|
|
116428
|
-
* documentation and/or other materials provided with the distribution.
|
|
116429
|
-
* 3. Neither the name of the copyright holder nor the names of its contributors
|
|
116430
|
-
* may be used to endorse or promote products derived from this software without
|
|
116431
|
-
* specific prior written permission.
|
|
116432
|
-
*
|
|
116433
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
116434
|
-
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
116435
|
-
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
116436
|
-
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
116437
|
-
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
116438
|
-
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
116439
|
-
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
116440
|
-
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
116441
|
-
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
116442
|
-
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
116443
|
-
*)
|
|
116444
|
-
|
|
116445
|
-
smol-toml/dist/primitive.js:
|
|
116446
|
-
(*!
|
|
116447
|
-
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
116448
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
116449
|
-
*
|
|
116450
|
-
* Redistribution and use in source and binary forms, with or without
|
|
116451
|
-
* modification, are permitted provided that the following conditions are met:
|
|
116452
|
-
*
|
|
116453
|
-
* 1. Redistributions of source code must retain the above copyright notice, this
|
|
116454
|
-
* list of conditions and the following disclaimer.
|
|
116455
|
-
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
116456
|
-
* this list of conditions and the following disclaimer in the
|
|
116457
|
-
* documentation and/or other materials provided with the distribution.
|
|
116458
|
-
* 3. Neither the name of the copyright holder nor the names of its contributors
|
|
116459
|
-
* may be used to endorse or promote products derived from this software without
|
|
116460
|
-
* specific prior written permission.
|
|
116461
|
-
*
|
|
116462
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
116463
|
-
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
116464
|
-
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
116465
|
-
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
116466
|
-
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
116467
|
-
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
116468
|
-
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
116469
|
-
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
116470
|
-
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
116471
|
-
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
116472
|
-
*)
|
|
116473
|
-
|
|
116474
|
-
smol-toml/dist/extract.js:
|
|
116475
|
-
(*!
|
|
116476
|
-
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
116477
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
116478
|
-
*
|
|
116479
|
-
* Redistribution and use in source and binary forms, with or without
|
|
116480
|
-
* modification, are permitted provided that the following conditions are met:
|
|
116481
|
-
*
|
|
116482
|
-
* 1. Redistributions of source code must retain the above copyright notice, this
|
|
116483
|
-
* list of conditions and the following disclaimer.
|
|
116484
|
-
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
116485
|
-
* this list of conditions and the following disclaimer in the
|
|
116486
|
-
* documentation and/or other materials provided with the distribution.
|
|
116487
|
-
* 3. Neither the name of the copyright holder nor the names of its contributors
|
|
116488
|
-
* may be used to endorse or promote products derived from this software without
|
|
116489
|
-
* specific prior written permission.
|
|
116490
|
-
*
|
|
116491
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
116492
|
-
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
116493
|
-
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
116494
|
-
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
116495
|
-
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
116496
|
-
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
116497
|
-
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
116498
|
-
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
116499
|
-
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
116500
|
-
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
116501
|
-
*)
|
|
116502
|
-
|
|
116503
|
-
smol-toml/dist/struct.js:
|
|
116504
|
-
(*!
|
|
116505
|
-
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
116506
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
116507
|
-
*
|
|
116508
|
-
* Redistribution and use in source and binary forms, with or without
|
|
116509
|
-
* modification, are permitted provided that the following conditions are met:
|
|
116510
|
-
*
|
|
116511
|
-
* 1. Redistributions of source code must retain the above copyright notice, this
|
|
116512
|
-
* list of conditions and the following disclaimer.
|
|
116513
|
-
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
116514
|
-
* this list of conditions and the following disclaimer in the
|
|
116515
|
-
* documentation and/or other materials provided with the distribution.
|
|
116516
|
-
* 3. Neither the name of the copyright holder nor the names of its contributors
|
|
116517
|
-
* may be used to endorse or promote products derived from this software without
|
|
116518
|
-
* specific prior written permission.
|
|
116519
|
-
*
|
|
116520
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
116521
|
-
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
116522
|
-
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
116523
|
-
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
116524
|
-
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
116525
|
-
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
116526
|
-
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
116527
|
-
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
116528
|
-
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
116529
|
-
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
116530
|
-
*)
|
|
116531
|
-
|
|
116532
|
-
smol-toml/dist/parse.js:
|
|
116533
|
-
(*!
|
|
116534
|
-
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
116535
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
116536
|
-
*
|
|
116537
|
-
* Redistribution and use in source and binary forms, with or without
|
|
116538
|
-
* modification, are permitted provided that the following conditions are met:
|
|
116539
|
-
*
|
|
116540
|
-
* 1. Redistributions of source code must retain the above copyright notice, this
|
|
116541
|
-
* list of conditions and the following disclaimer.
|
|
116542
|
-
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
116543
|
-
* this list of conditions and the following disclaimer in the
|
|
116544
|
-
* documentation and/or other materials provided with the distribution.
|
|
116545
|
-
* 3. Neither the name of the copyright holder nor the names of its contributors
|
|
116546
|
-
* may be used to endorse or promote products derived from this software without
|
|
116547
|
-
* specific prior written permission.
|
|
116548
|
-
*
|
|
116549
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
116550
|
-
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
116551
|
-
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
116552
|
-
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
116553
|
-
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
116554
|
-
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
116555
|
-
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
116556
|
-
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
116557
|
-
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
116558
|
-
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
116559
|
-
*)
|
|
116560
|
-
|
|
116561
|
-
smol-toml/dist/stringify.js:
|
|
116562
|
-
(*!
|
|
116563
|
-
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
116564
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
116565
|
-
*
|
|
116566
|
-
* Redistribution and use in source and binary forms, with or without
|
|
116567
|
-
* modification, are permitted provided that the following conditions are met:
|
|
116568
|
-
*
|
|
116569
|
-
* 1. Redistributions of source code must retain the above copyright notice, this
|
|
116570
|
-
* list of conditions and the following disclaimer.
|
|
116571
|
-
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
116572
|
-
* this list of conditions and the following disclaimer in the
|
|
116573
|
-
* documentation and/or other materials provided with the distribution.
|
|
116574
|
-
* 3. Neither the name of the copyright holder nor the names of its contributors
|
|
116575
|
-
* may be used to endorse or promote products derived from this software without
|
|
116576
|
-
* specific prior written permission.
|
|
116577
|
-
*
|
|
116578
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
116579
|
-
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
116580
|
-
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
116581
|
-
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
116582
|
-
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
116583
|
-
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
116584
|
-
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
116585
|
-
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
116586
|
-
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
116587
|
-
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
116588
|
-
*)
|
|
116589
|
-
|
|
116590
|
-
smol-toml/dist/index.js:
|
|
116591
|
-
(*!
|
|
116592
|
-
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
116593
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
116594
|
-
*
|
|
116595
|
-
* Redistribution and use in source and binary forms, with or without
|
|
116596
|
-
* modification, are permitted provided that the following conditions are met:
|
|
116597
|
-
*
|
|
116598
|
-
* 1. Redistributions of source code must retain the above copyright notice, this
|
|
116599
|
-
* list of conditions and the following disclaimer.
|
|
116600
|
-
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
116601
|
-
* this list of conditions and the following disclaimer in the
|
|
116602
|
-
* documentation and/or other materials provided with the distribution.
|
|
116603
|
-
* 3. Neither the name of the copyright holder nor the names of its contributors
|
|
116604
|
-
* may be used to endorse or promote products derived from this software without
|
|
116605
|
-
* specific prior written permission.
|
|
116606
|
-
*
|
|
116607
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
116608
|
-
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
116609
|
-
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
116610
|
-
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
116611
|
-
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
116612
|
-
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
116613
|
-
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
116614
|
-
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
116615
|
-
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
116616
|
-
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
116617
|
-
*)
|
|
116618
115944
|
*/
|
|
116619
115945
|
//# sourceMappingURL=reachability-analyzers-cli.mjs.map
|