chore(deps): roll up Dependabot updates (#962)

## Summary

- update all CodeQL actions from 4.36.2 to 4.37.0
- update `smol-toml` from 1.6.1 to 1.7.0
- update `@types/node` from 25.5.0 to 26.0.1
- update `@vercel/ncc` from 0.44.0 to 0.44.1
- regenerate bundled action artifacts

Supersedes #950, #951, #952, #957, #958, and #959. The updates from #905
and #907 are already present on `main`.

Refs: pi-session 019f796d-a374-7a76-a8e4-1699b89ec8e6
This commit is contained in:
Kevin Stillhammer
2026-07-19 10:28:45 +02:00
committed by GitHub
parent f12b1f0a84
commit 71966eff34
5 changed files with 425 additions and 445 deletions

View File

@@ -47,7 +47,7 @@ jobs:
# Initializes the CodeQL tools for scanning. # Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL - name: Initialize CodeQL
uses: github/codeql-action/init@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2 uses: github/codeql-action/init@99df26d4f13ea111d4ec1a7dddef6063f76b97e9 # v4.37.0
with: with:
languages: ${{ matrix.language }} languages: ${{ matrix.language }}
source-root: src source-root: src
@@ -59,7 +59,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below) # If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild - name: Autobuild
uses: github/codeql-action/autobuild@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2 uses: github/codeql-action/autobuild@99df26d4f13ea111d4ec1a7dddef6063f76b97e9 # v4.37.0
# Command-line programs to run using the OS shell. # Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl # 📚 https://git.io/JvXDl
@@ -73,4 +73,4 @@ jobs:
# make release # make release
- name: Perform CodeQL Analysis - name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2 uses: github/codeql-action/analyze@99df26d4f13ea111d4ec1a7dddef6063f76b97e9 # v4.37.0

398
dist/save-cache/index.cjs generated vendored
View File

@@ -61835,125 +61835,6 @@ var import_node_path = __toESM(require("node:path"), 1);
// src/utils/config-file.ts // src/utils/config-file.ts
var import_node_fs2 = __toESM(require("node:fs"), 1); var import_node_fs2 = __toESM(require("node:fs"), 1);
// node_modules/smol-toml/dist/error.js
function getLineColFromPtr(string, ptr) {
let lines = string.slice(0, ptr).split(/\r\n|\n|\r/g);
return [lines.length, lines.pop().length + 1];
}
function makeCodeBlock(string, line, column) {
let lines = string.split(/\r\n|\n|\r/g);
let codeblock = "";
let numberLen = (Math.log10(line + 1) | 0) + 1;
for (let i = line - 1; i <= line + 1; i++) {
let l = lines[i - 1];
if (!l)
continue;
codeblock += i.toString().padEnd(numberLen, " ");
codeblock += ": ";
codeblock += l;
codeblock += "\n";
if (i === line) {
codeblock += " ".repeat(numberLen + column + 2);
codeblock += "^\n";
}
}
return codeblock;
}
var TomlError = class extends Error {
line;
column;
codeblock;
constructor(message, options) {
const [line, column] = getLineColFromPtr(options.toml, options.ptr);
const codeblock = makeCodeBlock(options.toml, line, column);
super(`Invalid TOML document: ${message}
${codeblock}`, options);
this.line = line;
this.column = column;
this.codeblock = codeblock;
}
};
// node_modules/smol-toml/dist/util.js
function isEscaped(str, ptr) {
let i = 0;
while (str[ptr - ++i] === "\\")
;
return --i && i % 2;
}
function indexOfNewline(str, start = 0, end = str.length) {
let idx = str.indexOf("\n", start);
if (str[idx - 1] === "\r")
idx--;
return idx <= end ? idx : -1;
}
function skipComment(str, ptr) {
for (let i = ptr; i < str.length; i++) {
let c = str[i];
if (c === "\n")
return i;
if (c === "\r" && str[i + 1] === "\n")
return i + 1;
if (c < " " && c !== " " || c === "\x7F") {
throw new TomlError("control characters are not allowed in comments", {
toml: str,
ptr
});
}
}
return str.length;
}
function skipVoid(str, ptr, banNewLines, banComments) {
let c;
while (1) {
while ((c = str[ptr]) === " " || c === " " || !banNewLines && (c === "\n" || c === "\r" && str[ptr + 1] === "\n"))
ptr++;
if (banComments || c !== "#")
break;
ptr = skipComment(str, ptr);
}
return ptr;
}
function skipUntil(str, ptr, sep7, end, banNewLines = false) {
if (!end) {
ptr = indexOfNewline(str, ptr);
return ptr < 0 ? str.length : ptr;
}
for (let i = ptr; i < str.length; i++) {
let c = str[i];
if (c === "#") {
i = indexOfNewline(str, i);
} else if (c === sep7) {
return i + 1;
} else if (c === end || banNewLines && (c === "\n" || c === "\r" && str[i + 1] === "\n")) {
return i;
}
}
throw new TomlError("cannot find end of structure", {
toml: str,
ptr
});
}
function getStringEnd(str, seek) {
let first = str[seek];
let target = first === str[seek + 1] && str[seek + 1] === str[seek + 2] ? str.slice(seek, seek + 3) : first;
seek += target.length - 1;
do
seek = str.indexOf(target, ++seek);
while (seek > -1 && first !== "'" && isEscaped(str, seek));
if (seek > -1) {
seek += target.length;
if (target.length > 1) {
if (str[seek] === first)
seek++;
if (str[seek] === first)
seek++;
}
}
return seek;
}
// node_modules/smol-toml/dist/date.js // node_modules/smol-toml/dist/date.js
var DATE_TIME_RE = /^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[-+]\d{2}:\d{2})?$/i; var DATE_TIME_RE = /^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[-+]\d{2}:\d{2})?$/i;
var TomlDate = class _TomlDate extends Date { var TomlDate = class _TomlDate extends Date {
@@ -62046,93 +61927,153 @@ var TomlDate = class _TomlDate extends Date {
} }
}; };
// node_modules/smol-toml/dist/error.js
function getLineColFromPtr(string, ptr) {
let lines = string.slice(0, ptr).split(/\r\n|\n|\r/g);
return [lines.length, lines.pop().length + 1];
}
function makeCodeBlock(string, line, column) {
let lines = string.split(/\r\n|\n|\r/g);
let codeblock = "";
let numberLen = (Math.log10(line + 1) | 0) + 1;
for (let i = line - 1; i <= line + 1; i++) {
let l = lines[i - 1];
if (!l)
continue;
codeblock += i.toString().padEnd(numberLen, " ");
codeblock += ": ";
codeblock += l;
codeblock += "\n";
if (i === line) {
codeblock += " ".repeat(numberLen + column + 2);
codeblock += "^\n";
}
}
return codeblock;
}
var TomlError = class extends Error {
line;
column;
codeblock;
constructor(message, options) {
const [line, column] = getLineColFromPtr(options.toml, options.ptr);
const codeblock = makeCodeBlock(options.toml, line, column);
super(`Invalid TOML document: ${message}
${codeblock}`, options);
this.line = line;
this.column = column;
this.codeblock = codeblock;
}
};
// node_modules/smol-toml/dist/primitive.js // node_modules/smol-toml/dist/primitive.js
var INT_REGEX = /^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/; var INT_REGEX = /^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/;
var FLOAT_REGEX = /^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/; var FLOAT_REGEX = /^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/;
var LEADING_ZERO = /^[+-]?0[0-9_]/; var LEADING_ZERO = /^[+-]?0[0-9_]/;
var ESCAPE_REGEX = /^[0-9a-f]{2,8}$/i; function parseString(str, ptr) {
var ESC_MAP = { let c = str[ptr++];
b: "\b", let first = c;
t: " ", let isLiteral = c === "'";
n: "\n", let isMultiline = c === str[ptr] && c === str[ptr + 1];
f: "\f",
r: "\r",
e: "\x1B",
'"': '"',
"\\": "\\"
};
function parseString(str, ptr = 0, endPtr = str.length) {
let isLiteral = str[ptr] === "'";
let isMultiline = str[ptr++] === str[ptr] && str[ptr] === str[ptr + 1];
if (isMultiline) { if (isMultiline) {
endPtr -= 2; if (str[ptr += 2] === "\n")
if (str[ptr += 2] === "\r")
ptr++;
if (str[ptr] === "\n")
ptr++; ptr++;
else if (str[ptr] === "\r" && str[ptr + 1] === "\n")
ptr += 2;
} }
let tmp = 0;
let isEscape;
let parsed = ""; let parsed = "";
let sliceStart = ptr; let sliceStart = ptr;
while (ptr < endPtr - 1) { let state3 = 0;
let c = str[ptr++]; for (let i = ptr; i < str.length; i++) {
if (c === "\n" || c === "\r" && str[ptr] === "\n") { c = str[i];
if (!isMultiline) { if (isMultiline && (c === "\n" || c === "\r" && str[i + 1] === "\n")) {
throw new TomlError("newlines are not allowed in strings", { state3 = state3 && 3;
toml: str,
ptr: ptr - 1
});
}
} else if (c < " " && c !== " " || c === "\x7F") { } else if (c < " " && c !== " " || c === "\x7F") {
throw new TomlError("control characters are not allowed in strings", { throw new TomlError("control characters are not allowed in strings", {
toml: str, toml: str,
ptr: ptr - 1 ptr: i
}); });
} else if ((!state3 || state3 === 3) && c === first && (!isMultiline || str[i + 1] === first && str[i + 2] === first)) {
if (isMultiline) {
if (str[i + 3] === first)
i++;
if (str[i + 3] === first)
i++;
} }
if (isEscape) { return [
isEscape = false; // If we're in a newline escape still, then there's nothing to add.
// Also try to avoid concat if there's nothing to add to parsed, or nothing has been added to parsed.
state3 ? parsed : parsed + str.slice(sliceStart, i),
i + (isMultiline ? 3 : 1)
];
} else if (!state3) {
if (!isLiteral && c === "\\") {
parsed += str.slice(sliceStart, sliceStart = i);
state3 = 1;
}
} else if (state3 === 1) {
if (c === "x" || c === "u" || c === "U") { if (c === "x" || c === "u" || c === "U") {
let code = str.slice(ptr, ptr += c === "x" ? 2 : c === "u" ? 4 : 8); let value = 0;
if (!ESCAPE_REGEX.test(code)) { let len = c === "x" ? 2 : c === "u" ? 4 : 8;
throw new TomlError("invalid unicode escape", { for (let j = 0; j < len; j++, i++) {
toml: str, let hex = str.charCodeAt(i + 1);
ptr: tmp let digit = (
}); /* 0-9 */
hex >= 48 && hex <= 57 ? hex - 48 : (
/* A-F */
hex >= 65 && hex <= 70 ? hex - 65 + 10 : (
/* a-f */
hex >= 97 && hex <= 102 ? hex - 97 + 10 : -1
)
)
);
if (digit < 0)
throw new TomlError("invalid non-hex character in unicode escape", { toml: str, ptr: i + 1 });
value = value << 4 | digit;
} }
try { if (value < 0 || value > 1114111 || value >= 55296 && value <= 57343) {
parsed += String.fromCodePoint(parseInt(code, 16)); throw new TomlError("invalid unicode escape", { toml: str, ptr: i });
} catch {
throw new TomlError("invalid unicode escape", {
toml: str,
ptr: tmp
});
} }
} else if (isMultiline && (c === "\n" || c === " " || c === " " || c === "\r")) { parsed += String.fromCodePoint(value);
ptr = skipVoid(str, ptr - 1, true); sliceStart = i + 1;
if (str[ptr] !== "\n" && str[ptr] !== "\r") { state3 = 0;
} else if (c === " " || c === " ") {
state3 = 2;
} else {
if (c === "b")
parsed += "\b";
else if (c === "t")
parsed += " ";
else if (c === "n")
parsed += "\n";
else if (c === "f")
parsed += "\f";
else if (c === "r")
parsed += "\r";
else if (c === "e")
parsed += "\x1B";
else if (c === '"')
parsed += '"';
else if (c === "\\")
parsed += "\\";
else
throw new TomlError("unrecognized escape sequence", { toml: str, ptr: i });
sliceStart = i + 1;
state3 = 0;
}
} else if (c !== " " && c !== " ") {
if (state3 === 2) {
throw new TomlError("invalid escape: only line-ending whitespace may be escaped", { throw new TomlError("invalid escape: only line-ending whitespace may be escaped", {
toml: str, toml: str,
ptr: tmp ptr: sliceStart
}); });
} }
ptr = skipVoid(str, ptr); state3 = !isLiteral && c === "\\" ? 1 : 0;
} else if (c in ESC_MAP) { sliceStart = i;
parsed += ESC_MAP[c];
} else {
throw new TomlError("unrecognized escape sequence", {
toml: str,
ptr: tmp
});
}
sliceStart = ptr;
} else if (!isLiteral && c === "\\") {
tmp = ptr - 1;
isEscape = true;
parsed += str.slice(sliceStart, tmp);
} }
} }
return parsed + str.slice(sliceStart, endPtr - 1); throw new TomlError("unfinished string", { toml: str, ptr });
} }
function parseValue2(value, toml, ptr, integersAsBigInt) { function parseValue2(value, toml, ptr, integersAsBigInt) {
if (value === "true") if (value === "true")
@@ -62185,6 +62126,61 @@ function parseValue2(value, toml, ptr, integersAsBigInt) {
return date; return date;
} }
// node_modules/smol-toml/dist/util.js
function indexOfNewline(str, start = 0, end = str.length) {
let idx = str.indexOf("\n", start);
if (str[idx - 1] === "\r")
idx--;
return idx <= end ? idx : -1;
}
function skipComment(str, ptr) {
for (let i = ptr; i < str.length; i++) {
let c = str[i];
if (c === "\n")
return i;
if (c === "\r" && str[i + 1] === "\n")
return i + 1;
if (c < " " && c !== " " || c === "\x7F") {
throw new TomlError("control characters are not allowed in comments", {
toml: str,
ptr
});
}
}
return str.length;
}
function skipVoid(str, ptr, banNewLines, banComments) {
let c;
while (1) {
while ((c = str[ptr]) === " " || c === " " || !banNewLines && (c === "\n" || c === "\r" && str[ptr + 1] === "\n"))
ptr++;
if (banComments || c !== "#")
break;
ptr = skipComment(str, ptr);
}
return ptr;
}
function skipUntil(str, ptr, sep7, end, banNewLines = false) {
if (!end) {
ptr = indexOfNewline(str, ptr);
return ptr < 0 ? str.length : ptr;
}
for (let i = ptr; i < str.length; i++) {
let c = str[i];
if (c === "#") {
i = indexOfNewline(str, i);
} else if (c === sep7) {
return i + 1;
} else if (c === end || banNewLines && (c === "\n" || c === "\r" && str[i + 1] === "\n")) {
return i;
}
}
throw new TomlError("cannot find end of structure", {
toml: str,
ptr
});
}
// node_modules/smol-toml/dist/extract.js // node_modules/smol-toml/dist/extract.js
function sliceAndTrimEndOf(str, startPtr, endPtr) { function sliceAndTrimEndOf(str, startPtr, endPtr) {
let value = str.slice(startPtr, endPtr); let value = str.slice(startPtr, endPtr);
@@ -62218,24 +62214,23 @@ function extractValue(str, ptr, end, depth, integersAsBigInt) {
} }
return [value, endPtr2]; return [value, endPtr2];
} }
let endPtr;
if (c === '"' || c === "'") { if (c === '"' || c === "'") {
endPtr = getStringEnd(str, ptr); let [parsed, endPtr2] = parseString(str, ptr);
let parsed = parseString(str, ptr, endPtr);
if (end) { if (end) {
endPtr = skipVoid(str, endPtr); endPtr2 = skipVoid(str, endPtr2);
if (str[endPtr] && str[endPtr] !== "," && str[endPtr] !== end && str[endPtr] !== "\n" && str[endPtr] !== "\r") { if (str[endPtr2] && str[endPtr2] !== "," && str[endPtr2] !== end && str[endPtr2] !== "\n" && str[endPtr2] !== "\r") {
throw new TomlError("unexpected character encountered", { throw new TomlError("unexpected character encountered", {
toml: str, toml: str,
ptr: endPtr ptr: endPtr2
}); });
} }
endPtr += +(str[endPtr] === ","); if (str[endPtr2] === ",")
endPtr2++;
} }
return [parsed, endPtr]; return [parsed, endPtr2];
} }
endPtr = skipUntil(str, ptr, ",", end); let endPtr = skipUntil(str, ptr, ",", end);
let slice = sliceAndTrimEndOf(str, ptr, endPtr - +(str[endPtr - 1] === ",")); let slice = sliceAndTrimEndOf(str, ptr, endPtr - (str[endPtr - 1] === "," ? 1 : 0));
if (!slice[0]) { if (!slice[0]) {
throw new TomlError("incomplete key-value declaration: no value specified", { throw new TomlError("incomplete key-value declaration: no value specified", {
toml: str, toml: str,
@@ -62244,7 +62239,8 @@ function extractValue(str, ptr, end, depth, integersAsBigInt) {
} }
if (end && slice[1] > -1) { if (end && slice[1] > -1) {
endPtr = skipVoid(str, ptr + slice[1]); endPtr = skipVoid(str, ptr + slice[1]);
endPtr += +(str[endPtr] === ","); if (str[endPtr] === ",")
endPtr++;
} }
return [ return [
parseValue2(slice[0], str, ptr, integersAsBigInt), parseValue2(slice[0], str, ptr, integersAsBigInt),
@@ -62274,13 +62270,7 @@ function parseKey(str, ptr, end = "=") {
ptr ptr
}); });
} }
let eos = getStringEnd(str, ptr); let [part, eos] = parseString(str, ptr);
if (eos < 0) {
throw new TomlError("unfinished string encountered", {
toml: str,
ptr
});
}
dot = str.indexOf(".", eos); dot = str.indexOf(".", eos);
let strEnd = str.slice(eos, dot < 0 || dot > endPtr ? endPtr : dot); let strEnd = str.slice(eos, dot < 0 || dot > endPtr ? endPtr : dot);
let newLine = indexOfNewline(strEnd); let newLine = indexOfNewline(strEnd);
@@ -62305,7 +62295,7 @@ function parseKey(str, ptr, end = "=") {
}); });
} }
} }
parsed.push(parseString(str, ptr, eos)); parsed.push(part);
} else { } else {
dot = str.indexOf(".", ptr); dot = str.indexOf(".", ptr);
let part = str.slice(ptr, dot < 0 || dot > endPtr ? endPtr : dot); let part = str.slice(ptr, dot < 0 || dot > endPtr ? endPtr : dot);
@@ -62931,10 +62921,10 @@ undici/lib/web/fetch/body.js:
undici/lib/web/websocket/frame.js: undici/lib/web/websocket/frame.js:
(*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *) (*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
smol-toml/dist/error.js:
smol-toml/dist/util.js:
smol-toml/dist/date.js: smol-toml/dist/date.js:
smol-toml/dist/error.js:
smol-toml/dist/primitive.js: smol-toml/dist/primitive.js:
smol-toml/dist/util.js:
smol-toml/dist/extract.js: smol-toml/dist/extract.js:
smol-toml/dist/struct.js: smol-toml/dist/struct.js:
smol-toml/dist/parse.js: smol-toml/dist/parse.js:

398
dist/setup/index.cjs generated vendored
View File

@@ -96745,125 +96745,6 @@ var import_node_fs6 = __toESM(require("node:fs"), 1);
// src/utils/config-file.ts // src/utils/config-file.ts
var import_node_fs3 = __toESM(require("node:fs"), 1); var import_node_fs3 = __toESM(require("node:fs"), 1);
// node_modules/smol-toml/dist/error.js
function getLineColFromPtr(string, ptr) {
let lines = string.slice(0, ptr).split(/\r\n|\n|\r/g);
return [lines.length, lines.pop().length + 1];
}
function makeCodeBlock(string, line, column) {
let lines = string.split(/\r\n|\n|\r/g);
let codeblock = "";
let numberLen = (Math.log10(line + 1) | 0) + 1;
for (let i = line - 1; i <= line + 1; i++) {
let l = lines[i - 1];
if (!l)
continue;
codeblock += i.toString().padEnd(numberLen, " ");
codeblock += ": ";
codeblock += l;
codeblock += "\n";
if (i === line) {
codeblock += " ".repeat(numberLen + column + 2);
codeblock += "^\n";
}
}
return codeblock;
}
var TomlError = class extends Error {
line;
column;
codeblock;
constructor(message, options) {
const [line, column] = getLineColFromPtr(options.toml, options.ptr);
const codeblock = makeCodeBlock(options.toml, line, column);
super(`Invalid TOML document: ${message}
${codeblock}`, options);
this.line = line;
this.column = column;
this.codeblock = codeblock;
}
};
// node_modules/smol-toml/dist/util.js
function isEscaped(str, ptr) {
let i = 0;
while (str[ptr - ++i] === "\\")
;
return --i && i % 2;
}
function indexOfNewline(str, start = 0, end = str.length) {
let idx = str.indexOf("\n", start);
if (str[idx - 1] === "\r")
idx--;
return idx <= end ? idx : -1;
}
function skipComment(str, ptr) {
for (let i = ptr; i < str.length; i++) {
let c = str[i];
if (c === "\n")
return i;
if (c === "\r" && str[i + 1] === "\n")
return i + 1;
if (c < " " && c !== " " || c === "\x7F") {
throw new TomlError("control characters are not allowed in comments", {
toml: str,
ptr
});
}
}
return str.length;
}
function skipVoid(str, ptr, banNewLines, banComments) {
let c;
while (1) {
while ((c = str[ptr]) === " " || c === " " || !banNewLines && (c === "\n" || c === "\r" && str[ptr + 1] === "\n"))
ptr++;
if (banComments || c !== "#")
break;
ptr = skipComment(str, ptr);
}
return ptr;
}
function skipUntil(str, ptr, sep8, end, banNewLines = false) {
if (!end) {
ptr = indexOfNewline(str, ptr);
return ptr < 0 ? str.length : ptr;
}
for (let i = ptr; i < str.length; i++) {
let c = str[i];
if (c === "#") {
i = indexOfNewline(str, i);
} else if (c === sep8) {
return i + 1;
} else if (c === end || banNewLines && (c === "\n" || c === "\r" && str[i + 1] === "\n")) {
return i;
}
}
throw new TomlError("cannot find end of structure", {
toml: str,
ptr
});
}
function getStringEnd(str, seek) {
let first = str[seek];
let target = first === str[seek + 1] && str[seek + 1] === str[seek + 2] ? str.slice(seek, seek + 3) : first;
seek += target.length - 1;
do
seek = str.indexOf(target, ++seek);
while (seek > -1 && first !== "'" && isEscaped(str, seek));
if (seek > -1) {
seek += target.length;
if (target.length > 1) {
if (str[seek] === first)
seek++;
if (str[seek] === first)
seek++;
}
}
return seek;
}
// node_modules/smol-toml/dist/date.js // node_modules/smol-toml/dist/date.js
var DATE_TIME_RE = /^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[-+]\d{2}:\d{2})?$/i; var DATE_TIME_RE = /^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[-+]\d{2}:\d{2})?$/i;
var TomlDate = class _TomlDate extends Date { var TomlDate = class _TomlDate extends Date {
@@ -96956,93 +96837,153 @@ var TomlDate = class _TomlDate extends Date {
} }
}; };
// node_modules/smol-toml/dist/error.js
function getLineColFromPtr(string, ptr) {
let lines = string.slice(0, ptr).split(/\r\n|\n|\r/g);
return [lines.length, lines.pop().length + 1];
}
function makeCodeBlock(string, line, column) {
let lines = string.split(/\r\n|\n|\r/g);
let codeblock = "";
let numberLen = (Math.log10(line + 1) | 0) + 1;
for (let i = line - 1; i <= line + 1; i++) {
let l = lines[i - 1];
if (!l)
continue;
codeblock += i.toString().padEnd(numberLen, " ");
codeblock += ": ";
codeblock += l;
codeblock += "\n";
if (i === line) {
codeblock += " ".repeat(numberLen + column + 2);
codeblock += "^\n";
}
}
return codeblock;
}
var TomlError = class extends Error {
line;
column;
codeblock;
constructor(message, options) {
const [line, column] = getLineColFromPtr(options.toml, options.ptr);
const codeblock = makeCodeBlock(options.toml, line, column);
super(`Invalid TOML document: ${message}
${codeblock}`, options);
this.line = line;
this.column = column;
this.codeblock = codeblock;
}
};
// node_modules/smol-toml/dist/primitive.js // node_modules/smol-toml/dist/primitive.js
var INT_REGEX = /^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/; var INT_REGEX = /^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/;
var FLOAT_REGEX = /^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/; var FLOAT_REGEX = /^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/;
var LEADING_ZERO = /^[+-]?0[0-9_]/; var LEADING_ZERO = /^[+-]?0[0-9_]/;
var ESCAPE_REGEX = /^[0-9a-f]{2,8}$/i; function parseString(str, ptr) {
var ESC_MAP = { let c = str[ptr++];
b: "\b", let first = c;
t: " ", let isLiteral = c === "'";
n: "\n", let isMultiline = c === str[ptr] && c === str[ptr + 1];
f: "\f",
r: "\r",
e: "\x1B",
'"': '"',
"\\": "\\"
};
function parseString(str, ptr = 0, endPtr = str.length) {
let isLiteral = str[ptr] === "'";
let isMultiline = str[ptr++] === str[ptr] && str[ptr] === str[ptr + 1];
if (isMultiline) { if (isMultiline) {
endPtr -= 2; if (str[ptr += 2] === "\n")
if (str[ptr += 2] === "\r")
ptr++;
if (str[ptr] === "\n")
ptr++; ptr++;
else if (str[ptr] === "\r" && str[ptr + 1] === "\n")
ptr += 2;
} }
let tmp = 0;
let isEscape;
let parsed = ""; let parsed = "";
let sliceStart = ptr; let sliceStart = ptr;
while (ptr < endPtr - 1) { let state3 = 0;
let c = str[ptr++]; for (let i = ptr; i < str.length; i++) {
if (c === "\n" || c === "\r" && str[ptr] === "\n") { c = str[i];
if (!isMultiline) { if (isMultiline && (c === "\n" || c === "\r" && str[i + 1] === "\n")) {
throw new TomlError("newlines are not allowed in strings", { state3 = state3 && 3;
toml: str,
ptr: ptr - 1
});
}
} else if (c < " " && c !== " " || c === "\x7F") { } else if (c < " " && c !== " " || c === "\x7F") {
throw new TomlError("control characters are not allowed in strings", { throw new TomlError("control characters are not allowed in strings", {
toml: str, toml: str,
ptr: ptr - 1 ptr: i
}); });
} else if ((!state3 || state3 === 3) && c === first && (!isMultiline || str[i + 1] === first && str[i + 2] === first)) {
if (isMultiline) {
if (str[i + 3] === first)
i++;
if (str[i + 3] === first)
i++;
} }
if (isEscape) { return [
isEscape = false; // If we're in a newline escape still, then there's nothing to add.
// Also try to avoid concat if there's nothing to add to parsed, or nothing has been added to parsed.
state3 ? parsed : parsed + str.slice(sliceStart, i),
i + (isMultiline ? 3 : 1)
];
} else if (!state3) {
if (!isLiteral && c === "\\") {
parsed += str.slice(sliceStart, sliceStart = i);
state3 = 1;
}
} else if (state3 === 1) {
if (c === "x" || c === "u" || c === "U") { if (c === "x" || c === "u" || c === "U") {
let code = str.slice(ptr, ptr += c === "x" ? 2 : c === "u" ? 4 : 8); let value = 0;
if (!ESCAPE_REGEX.test(code)) { let len = c === "x" ? 2 : c === "u" ? 4 : 8;
throw new TomlError("invalid unicode escape", { for (let j = 0; j < len; j++, i++) {
toml: str, let hex = str.charCodeAt(i + 1);
ptr: tmp let digit = (
}); /* 0-9 */
hex >= 48 && hex <= 57 ? hex - 48 : (
/* A-F */
hex >= 65 && hex <= 70 ? hex - 65 + 10 : (
/* a-f */
hex >= 97 && hex <= 102 ? hex - 97 + 10 : -1
)
)
);
if (digit < 0)
throw new TomlError("invalid non-hex character in unicode escape", { toml: str, ptr: i + 1 });
value = value << 4 | digit;
} }
try { if (value < 0 || value > 1114111 || value >= 55296 && value <= 57343) {
parsed += String.fromCodePoint(parseInt(code, 16)); throw new TomlError("invalid unicode escape", { toml: str, ptr: i });
} catch {
throw new TomlError("invalid unicode escape", {
toml: str,
ptr: tmp
});
} }
} else if (isMultiline && (c === "\n" || c === " " || c === " " || c === "\r")) { parsed += String.fromCodePoint(value);
ptr = skipVoid(str, ptr - 1, true); sliceStart = i + 1;
if (str[ptr] !== "\n" && str[ptr] !== "\r") { state3 = 0;
} else if (c === " " || c === " ") {
state3 = 2;
} else {
if (c === "b")
parsed += "\b";
else if (c === "t")
parsed += " ";
else if (c === "n")
parsed += "\n";
else if (c === "f")
parsed += "\f";
else if (c === "r")
parsed += "\r";
else if (c === "e")
parsed += "\x1B";
else if (c === '"')
parsed += '"';
else if (c === "\\")
parsed += "\\";
else
throw new TomlError("unrecognized escape sequence", { toml: str, ptr: i });
sliceStart = i + 1;
state3 = 0;
}
} else if (c !== " " && c !== " ") {
if (state3 === 2) {
throw new TomlError("invalid escape: only line-ending whitespace may be escaped", { throw new TomlError("invalid escape: only line-ending whitespace may be escaped", {
toml: str, toml: str,
ptr: tmp ptr: sliceStart
}); });
} }
ptr = skipVoid(str, ptr); state3 = !isLiteral && c === "\\" ? 1 : 0;
} else if (c in ESC_MAP) { sliceStart = i;
parsed += ESC_MAP[c];
} else {
throw new TomlError("unrecognized escape sequence", {
toml: str,
ptr: tmp
});
}
sliceStart = ptr;
} else if (!isLiteral && c === "\\") {
tmp = ptr - 1;
isEscape = true;
parsed += str.slice(sliceStart, tmp);
} }
} }
return parsed + str.slice(sliceStart, endPtr - 1); throw new TomlError("unfinished string", { toml: str, ptr });
} }
function parseValue2(value, toml, ptr, integersAsBigInt) { function parseValue2(value, toml, ptr, integersAsBigInt) {
if (value === "true") if (value === "true")
@@ -97095,6 +97036,61 @@ function parseValue2(value, toml, ptr, integersAsBigInt) {
return date; return date;
} }
// node_modules/smol-toml/dist/util.js
function indexOfNewline(str, start = 0, end = str.length) {
let idx = str.indexOf("\n", start);
if (str[idx - 1] === "\r")
idx--;
return idx <= end ? idx : -1;
}
function skipComment(str, ptr) {
for (let i = ptr; i < str.length; i++) {
let c = str[i];
if (c === "\n")
return i;
if (c === "\r" && str[i + 1] === "\n")
return i + 1;
if (c < " " && c !== " " || c === "\x7F") {
throw new TomlError("control characters are not allowed in comments", {
toml: str,
ptr
});
}
}
return str.length;
}
function skipVoid(str, ptr, banNewLines, banComments) {
let c;
while (1) {
while ((c = str[ptr]) === " " || c === " " || !banNewLines && (c === "\n" || c === "\r" && str[ptr + 1] === "\n"))
ptr++;
if (banComments || c !== "#")
break;
ptr = skipComment(str, ptr);
}
return ptr;
}
function skipUntil(str, ptr, sep8, end, banNewLines = false) {
if (!end) {
ptr = indexOfNewline(str, ptr);
return ptr < 0 ? str.length : ptr;
}
for (let i = ptr; i < str.length; i++) {
let c = str[i];
if (c === "#") {
i = indexOfNewline(str, i);
} else if (c === sep8) {
return i + 1;
} else if (c === end || banNewLines && (c === "\n" || c === "\r" && str[i + 1] === "\n")) {
return i;
}
}
throw new TomlError("cannot find end of structure", {
toml: str,
ptr
});
}
// node_modules/smol-toml/dist/extract.js // node_modules/smol-toml/dist/extract.js
function sliceAndTrimEndOf(str, startPtr, endPtr) { function sliceAndTrimEndOf(str, startPtr, endPtr) {
let value = str.slice(startPtr, endPtr); let value = str.slice(startPtr, endPtr);
@@ -97128,24 +97124,23 @@ function extractValue(str, ptr, end, depth, integersAsBigInt) {
} }
return [value, endPtr2]; return [value, endPtr2];
} }
let endPtr;
if (c === '"' || c === "'") { if (c === '"' || c === "'") {
endPtr = getStringEnd(str, ptr); let [parsed, endPtr2] = parseString(str, ptr);
let parsed = parseString(str, ptr, endPtr);
if (end) { if (end) {
endPtr = skipVoid(str, endPtr); endPtr2 = skipVoid(str, endPtr2);
if (str[endPtr] && str[endPtr] !== "," && str[endPtr] !== end && str[endPtr] !== "\n" && str[endPtr] !== "\r") { if (str[endPtr2] && str[endPtr2] !== "," && str[endPtr2] !== end && str[endPtr2] !== "\n" && str[endPtr2] !== "\r") {
throw new TomlError("unexpected character encountered", { throw new TomlError("unexpected character encountered", {
toml: str, toml: str,
ptr: endPtr ptr: endPtr2
}); });
} }
endPtr += +(str[endPtr] === ","); if (str[endPtr2] === ",")
endPtr2++;
} }
return [parsed, endPtr]; return [parsed, endPtr2];
} }
endPtr = skipUntil(str, ptr, ",", end); let endPtr = skipUntil(str, ptr, ",", end);
let slice = sliceAndTrimEndOf(str, ptr, endPtr - +(str[endPtr - 1] === ",")); let slice = sliceAndTrimEndOf(str, ptr, endPtr - (str[endPtr - 1] === "," ? 1 : 0));
if (!slice[0]) { if (!slice[0]) {
throw new TomlError("incomplete key-value declaration: no value specified", { throw new TomlError("incomplete key-value declaration: no value specified", {
toml: str, toml: str,
@@ -97154,7 +97149,8 @@ function extractValue(str, ptr, end, depth, integersAsBigInt) {
} }
if (end && slice[1] > -1) { if (end && slice[1] > -1) {
endPtr = skipVoid(str, ptr + slice[1]); endPtr = skipVoid(str, ptr + slice[1]);
endPtr += +(str[endPtr] === ","); if (str[endPtr] === ",")
endPtr++;
} }
return [ return [
parseValue2(slice[0], str, ptr, integersAsBigInt), parseValue2(slice[0], str, ptr, integersAsBigInt),
@@ -97184,13 +97180,7 @@ function parseKey(str, ptr, end = "=") {
ptr ptr
}); });
} }
let eos = getStringEnd(str, ptr); let [part, eos] = parseString(str, ptr);
if (eos < 0) {
throw new TomlError("unfinished string encountered", {
toml: str,
ptr
});
}
dot = str.indexOf(".", eos); dot = str.indexOf(".", eos);
let strEnd = str.slice(eos, dot < 0 || dot > endPtr ? endPtr : dot); let strEnd = str.slice(eos, dot < 0 || dot > endPtr ? endPtr : dot);
let newLine = indexOfNewline(strEnd); let newLine = indexOfNewline(strEnd);
@@ -97215,7 +97205,7 @@ function parseKey(str, ptr, end = "=") {
}); });
} }
} }
parsed.push(parseString(str, ptr, eos)); parsed.push(part);
} else { } else {
dot = str.indexOf(".", ptr); dot = str.indexOf(".", ptr);
let part = str.slice(ptr, dot < 0 || dot > endPtr ? endPtr : dot); let part = str.slice(ptr, dot < 0 || dot > endPtr ? endPtr : dot);
@@ -98419,10 +98409,10 @@ undici/lib/web/websocket/frame.js:
undici/lib/web/websocket/frame.js: undici/lib/web/websocket/frame.js:
(*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *) (*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
smol-toml/dist/error.js:
smol-toml/dist/util.js:
smol-toml/dist/date.js: smol-toml/dist/date.js:
smol-toml/dist/error.js:
smol-toml/dist/primitive.js: smol-toml/dist/primitive.js:
smol-toml/dist/util.js:
smol-toml/dist/extract.js: smol-toml/dist/extract.js:
smol-toml/dist/struct.js: smol-toml/dist/struct.js:
smol-toml/dist/parse.js: smol-toml/dist/parse.js:

58
package-lock.json generated
View File

@@ -16,15 +16,15 @@
"@actions/io": "^3.0.2", "@actions/io": "^3.0.2",
"@actions/tool-cache": "^4.0.0", "@actions/tool-cache": "^4.0.0",
"@renovatebot/pep440": "^5.0.0", "@renovatebot/pep440": "^5.0.0",
"smol-toml": "^1.6.1", "smol-toml": "^1.7.0",
"undici": "^8.3.0" "undici": "^8.3.0"
}, },
"devDependencies": { "devDependencies": {
"@biomejs/biome": "^2.5.1", "@biomejs/biome": "^2.5.1",
"@types/js-yaml": "^4.0.9", "@types/js-yaml": "^4.0.9",
"@types/node": "^25.5.0", "@types/node": "^26.0.1",
"@types/semver": "^7.7.1", "@types/semver": "^7.7.1",
"@vercel/ncc": "^0.44.0", "@vercel/ncc": "^0.44.1",
"esbuild": "^0.28.0", "esbuild": "^0.28.0",
"jest": "^30.4.2", "jest": "^30.4.2",
"js-yaml": "^4.1.1", "js-yaml": "^4.1.1",
@@ -2145,13 +2145,13 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "25.5.0", "version": "26.0.1",
"resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-26.0.1.tgz",
"integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", "integrity": "sha512-fc3KiUoBt6kie0N9bIW3E47vZsuaMf0PM2AaUpLCLT0s/LvX1nxAim6Fc049cNxODPpGm6qRAuUOB86SkRuPQw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"undici-types": "~7.18.0" "undici-types": "~8.3.0"
} }
}, },
"node_modules/@types/semver": { "node_modules/@types/semver": {
@@ -2520,9 +2520,9 @@
] ]
}, },
"node_modules/@vercel/ncc": { "node_modules/@vercel/ncc": {
"version": "0.44.0", "version": "0.44.1",
"resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.44.0.tgz", "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.44.1.tgz",
"integrity": "sha512-pHyI+bZokSgIscTKFSmpNk5vZzmOrb9RW0Vu4SRyqUvkJ0kgg3PzaZLLDVTFXhbUiCqg0/Eu8L4fKtgViA92kg==", "integrity": "sha512-cUjIE5P2YY1n+Kt9rFIazMMpGoPn1Fic04rOmTkElMkiDP5oszGfERMpo2shVkFKDL7rVppdM2pqJKC59shQWQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"bin": { "bin": {
@@ -4984,9 +4984,9 @@
} }
}, },
"node_modules/smol-toml": { "node_modules/smol-toml": {
"version": "1.6.1", "version": "1.7.0",
"resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.1.tgz", "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.7.0.tgz",
"integrity": "sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==", "integrity": "sha512-aqVvWoyO21L23mb+drl4RmMXbf6N7FdHjAhTRA9ZBL7apWBgfWC16KjrASI+1p9GAroljyMHj6fK67i0UiTNvQ==",
"license": "BSD-3-Clause", "license": "BSD-3-Clause",
"engines": { "engines": {
"node": ">= 18" "node": ">= 18"
@@ -5435,9 +5435,9 @@
} }
}, },
"node_modules/undici-types": { "node_modules/undici-types": {
"version": "7.18.2", "version": "8.3.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz",
"integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==",
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
@@ -7143,12 +7143,12 @@
"dev": true "dev": true
}, },
"@types/node": { "@types/node": {
"version": "25.5.0", "version": "26.0.1",
"resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-26.0.1.tgz",
"integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", "integrity": "sha512-fc3KiUoBt6kie0N9bIW3E47vZsuaMf0PM2AaUpLCLT0s/LvX1nxAim6Fc049cNxODPpGm6qRAuUOB86SkRuPQw==",
"dev": true, "dev": true,
"requires": { "requires": {
"undici-types": "~7.18.0" "undici-types": "~8.3.0"
} }
}, },
"@types/semver": { "@types/semver": {
@@ -7354,9 +7354,9 @@
"optional": true "optional": true
}, },
"@vercel/ncc": { "@vercel/ncc": {
"version": "0.44.0", "version": "0.44.1",
"resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.44.0.tgz", "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.44.1.tgz",
"integrity": "sha512-pHyI+bZokSgIscTKFSmpNk5vZzmOrb9RW0Vu4SRyqUvkJ0kgg3PzaZLLDVTFXhbUiCqg0/Eu8L4fKtgViA92kg==", "integrity": "sha512-cUjIE5P2YY1n+Kt9rFIazMMpGoPn1Fic04rOmTkElMkiDP5oszGfERMpo2shVkFKDL7rVppdM2pqJKC59shQWQ==",
"dev": true "dev": true
}, },
"agent-base": { "agent-base": {
@@ -9025,9 +9025,9 @@
"dev": true "dev": true
}, },
"smol-toml": { "smol-toml": {
"version": "1.6.1", "version": "1.7.0",
"resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.1.tgz", "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.7.0.tgz",
"integrity": "sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==" "integrity": "sha512-aqVvWoyO21L23mb+drl4RmMXbf6N7FdHjAhTRA9ZBL7apWBgfWC16KjrASI+1p9GAroljyMHj6fK67i0UiTNvQ=="
}, },
"source-map": { "source-map": {
"version": "0.6.1", "version": "0.6.1",
@@ -9298,9 +9298,9 @@
"integrity": "sha512-TkUDgb6tl7KOGZ+7e8E3d2FYgUQgF6z5YypqjWmixVQSQERFcVrVg0ySADm2LVLRh5ljAaHTCR5Fmz3Q34rB7Q==" "integrity": "sha512-TkUDgb6tl7KOGZ+7e8E3d2FYgUQgF6z5YypqjWmixVQSQERFcVrVg0ySADm2LVLRh5ljAaHTCR5Fmz3Q34rB7Q=="
}, },
"undici-types": { "undici-types": {
"version": "7.18.2", "version": "8.3.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz",
"integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==",
"dev": true "dev": true
}, },
"unrs-resolver": { "unrs-resolver": {

View File

@@ -35,15 +35,15 @@
"@actions/io": "^3.0.2", "@actions/io": "^3.0.2",
"@actions/tool-cache": "^4.0.0", "@actions/tool-cache": "^4.0.0",
"@renovatebot/pep440": "^5.0.0", "@renovatebot/pep440": "^5.0.0",
"smol-toml": "^1.6.1", "smol-toml": "^1.7.0",
"undici": "^8.3.0" "undici": "^8.3.0"
}, },
"devDependencies": { "devDependencies": {
"@biomejs/biome": "^2.5.1", "@biomejs/biome": "^2.5.1",
"@types/js-yaml": "^4.0.9", "@types/js-yaml": "^4.0.9",
"@types/node": "^25.5.0", "@types/node": "^26.0.1",
"@types/semver": "^7.7.1", "@types/semver": "^7.7.1",
"@vercel/ncc": "^0.44.0", "@vercel/ncc": "^0.44.1",
"esbuild": "^0.28.0", "esbuild": "^0.28.0",
"jest": "^30.4.2", "jest": "^30.4.2",
"js-yaml": "^4.1.1", "js-yaml": "^4.1.1",