@grekt/cli 6.35.0 → 6.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1181 -52
- package/package.json +2 -1
package/dist/index.js
CHANGED
|
@@ -34844,7 +34844,7 @@ var require_dist_cjs32 = __commonJS((exports2) => {
|
|
|
34844
34844
|
// node_modules/@aws-sdk/util-arn-parser/dist-cjs/index.js
|
|
34845
34845
|
var require_dist_cjs33 = __commonJS((exports2) => {
|
|
34846
34846
|
var validate2 = (str2) => typeof str2 === "string" && str2.indexOf("arn:") === 0 && str2.split(":").length >= 6;
|
|
34847
|
-
var
|
|
34847
|
+
var parse7 = (arn) => {
|
|
34848
34848
|
const segments = arn.split(":");
|
|
34849
34849
|
if (segments.length < 6 || segments[0] !== "arn")
|
|
34850
34850
|
throw new Error("Malformed ARN");
|
|
@@ -34865,7 +34865,7 @@ var require_dist_cjs33 = __commonJS((exports2) => {
|
|
|
34865
34865
|
return `arn:${partition}:${service}:${region}:${accountId}:${resource}`;
|
|
34866
34866
|
};
|
|
34867
34867
|
exports2.build = build;
|
|
34868
|
-
exports2.parse =
|
|
34868
|
+
exports2.parse = parse7;
|
|
34869
34869
|
exports2.validate = validate2;
|
|
34870
34870
|
});
|
|
34871
34871
|
|
|
@@ -38008,7 +38008,7 @@ var require_dist_cjs49 = __commonJS((exports2) => {
|
|
|
38008
38008
|
// node_modules/@aws-sdk/signature-v4-multi-region/node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@aws-sdk/util-arn-parser/dist-cjs/index.js
|
|
38009
38009
|
var require_dist_cjs50 = __commonJS((exports2) => {
|
|
38010
38010
|
var validate2 = (str2) => typeof str2 === "string" && str2.indexOf("arn:") === 0 && str2.split(":").length >= 6;
|
|
38011
|
-
var
|
|
38011
|
+
var parse7 = (arn) => {
|
|
38012
38012
|
const segments = arn.split(":");
|
|
38013
38013
|
if (segments.length < 6 || segments[0] !== "arn")
|
|
38014
38014
|
throw new Error("Malformed ARN");
|
|
@@ -38029,7 +38029,7 @@ var require_dist_cjs50 = __commonJS((exports2) => {
|
|
|
38029
38029
|
return `arn:${partition}:${service}:${region}:${accountId}:${resource}`;
|
|
38030
38030
|
};
|
|
38031
38031
|
exports2.build = build;
|
|
38032
|
-
exports2.parse =
|
|
38032
|
+
exports2.parse = parse7;
|
|
38033
38033
|
exports2.validate = validate2;
|
|
38034
38034
|
});
|
|
38035
38035
|
|
|
@@ -58479,7 +58479,7 @@ var require_utils3 = __commonJS((exports2) => {
|
|
|
58479
58479
|
var require_stringify6 = __commonJS((exports2, module2) => {
|
|
58480
58480
|
var utils = require_utils3();
|
|
58481
58481
|
module2.exports = (ast, options2 = {}) => {
|
|
58482
|
-
const
|
|
58482
|
+
const stringify2 = (node, parent = {}) => {
|
|
58483
58483
|
const invalidBlock = options2.escapeInvalid && utils.isInvalidBrace(parent);
|
|
58484
58484
|
const invalidNode = node.invalid === true && options2.escapeInvalid === true;
|
|
58485
58485
|
let output = "";
|
|
@@ -58494,12 +58494,12 @@ var require_stringify6 = __commonJS((exports2, module2) => {
|
|
|
58494
58494
|
}
|
|
58495
58495
|
if (node.nodes) {
|
|
58496
58496
|
for (const child of node.nodes) {
|
|
58497
|
-
output +=
|
|
58497
|
+
output += stringify2(child);
|
|
58498
58498
|
}
|
|
58499
58499
|
}
|
|
58500
58500
|
return output;
|
|
58501
58501
|
};
|
|
58502
|
-
return
|
|
58502
|
+
return stringify2(ast);
|
|
58503
58503
|
};
|
|
58504
58504
|
});
|
|
58505
58505
|
|
|
@@ -58766,7 +58766,7 @@ var require_fill_range = __commonJS((exports2, module2) => {
|
|
|
58766
58766
|
;
|
|
58767
58767
|
return index > 0;
|
|
58768
58768
|
};
|
|
58769
|
-
var
|
|
58769
|
+
var stringify2 = (start, end, options2) => {
|
|
58770
58770
|
if (typeof start === "string" || typeof end === "string") {
|
|
58771
58771
|
return true;
|
|
58772
58772
|
}
|
|
@@ -58868,7 +58868,7 @@ var require_fill_range = __commonJS((exports2, module2) => {
|
|
|
58868
58868
|
step = Math.max(Math.abs(step), 1);
|
|
58869
58869
|
let padded = zeros(startString) || zeros(endString) || zeros(stepString);
|
|
58870
58870
|
let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0;
|
|
58871
|
-
let toNumber = padded === false &&
|
|
58871
|
+
let toNumber = padded === false && stringify2(start, end, options2) === false;
|
|
58872
58872
|
let format = options2.transform || transform(toNumber);
|
|
58873
58873
|
if (options2.toRegex && step === 1) {
|
|
58874
58874
|
return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options2);
|
|
@@ -58998,7 +58998,7 @@ var require_compile = __commonJS((exports2, module2) => {
|
|
|
58998
58998
|
// node_modules/braces/lib/expand.js
|
|
58999
58999
|
var require_expand = __commonJS((exports2, module2) => {
|
|
59000
59000
|
var fill = require_fill_range();
|
|
59001
|
-
var
|
|
59001
|
+
var stringify2 = require_stringify6();
|
|
59002
59002
|
var utils = require_utils3();
|
|
59003
59003
|
var append = (queue = "", stash = "", enclose = false) => {
|
|
59004
59004
|
const result = [];
|
|
@@ -59035,7 +59035,7 @@ var require_expand = __commonJS((exports2, module2) => {
|
|
|
59035
59035
|
q = p.queue;
|
|
59036
59036
|
}
|
|
59037
59037
|
if (node.invalid || node.dollar) {
|
|
59038
|
-
q.push(append(q.pop(),
|
|
59038
|
+
q.push(append(q.pop(), stringify2(node, options2)));
|
|
59039
59039
|
return;
|
|
59040
59040
|
}
|
|
59041
59041
|
if (node.type === "brace" && node.invalid !== true && node.nodes.length === 2) {
|
|
@@ -59049,7 +59049,7 @@ var require_expand = __commonJS((exports2, module2) => {
|
|
|
59049
59049
|
}
|
|
59050
59050
|
let range = fill(...args, options2);
|
|
59051
59051
|
if (range.length === 0) {
|
|
59052
|
-
range =
|
|
59052
|
+
range = stringify2(node, options2);
|
|
59053
59053
|
}
|
|
59054
59054
|
q.push(append(q.pop(), range));
|
|
59055
59055
|
node.nodes = [];
|
|
@@ -59143,7 +59143,7 @@ var require_constants4 = __commonJS((exports2, module2) => {
|
|
|
59143
59143
|
|
|
59144
59144
|
// node_modules/braces/lib/parse.js
|
|
59145
59145
|
var require_parse5 = __commonJS((exports2, module2) => {
|
|
59146
|
-
var
|
|
59146
|
+
var stringify2 = require_stringify6();
|
|
59147
59147
|
var {
|
|
59148
59148
|
MAX_LENGTH,
|
|
59149
59149
|
CHAR_BACKSLASH,
|
|
@@ -59161,7 +59161,7 @@ var require_parse5 = __commonJS((exports2, module2) => {
|
|
|
59161
59161
|
CHAR_NO_BREAK_SPACE,
|
|
59162
59162
|
CHAR_ZERO_WIDTH_NOBREAK_SPACE
|
|
59163
59163
|
} = require_constants4();
|
|
59164
|
-
var
|
|
59164
|
+
var parse7 = (input, options2 = {}) => {
|
|
59165
59165
|
if (typeof input !== "string") {
|
|
59166
59166
|
throw new TypeError("Expected a string");
|
|
59167
59167
|
}
|
|
@@ -59304,7 +59304,7 @@ var require_parse5 = __commonJS((exports2, module2) => {
|
|
|
59304
59304
|
if (block.ranges > 0) {
|
|
59305
59305
|
block.ranges = 0;
|
|
59306
59306
|
const open = block.nodes.shift();
|
|
59307
|
-
block.nodes = [open, { type: "text", value:
|
|
59307
|
+
block.nodes = [open, { type: "text", value: stringify2(block) }];
|
|
59308
59308
|
}
|
|
59309
59309
|
push2({ type: "comma", value });
|
|
59310
59310
|
block.commas++;
|
|
@@ -59365,15 +59365,15 @@ var require_parse5 = __commonJS((exports2, module2) => {
|
|
|
59365
59365
|
push2({ type: "eos" });
|
|
59366
59366
|
return ast;
|
|
59367
59367
|
};
|
|
59368
|
-
module2.exports =
|
|
59368
|
+
module2.exports = parse7;
|
|
59369
59369
|
});
|
|
59370
59370
|
|
|
59371
59371
|
// node_modules/braces/index.js
|
|
59372
59372
|
var require_braces = __commonJS((exports2, module2) => {
|
|
59373
|
-
var
|
|
59373
|
+
var stringify2 = require_stringify6();
|
|
59374
59374
|
var compile = require_compile();
|
|
59375
59375
|
var expand = require_expand();
|
|
59376
|
-
var
|
|
59376
|
+
var parse7 = require_parse5();
|
|
59377
59377
|
var braces = (input, options2 = {}) => {
|
|
59378
59378
|
let output = [];
|
|
59379
59379
|
if (Array.isArray(input)) {
|
|
@@ -59393,12 +59393,12 @@ var require_braces = __commonJS((exports2, module2) => {
|
|
|
59393
59393
|
}
|
|
59394
59394
|
return output;
|
|
59395
59395
|
};
|
|
59396
|
-
braces.parse = (input, options2 = {}) =>
|
|
59396
|
+
braces.parse = (input, options2 = {}) => parse7(input, options2);
|
|
59397
59397
|
braces.stringify = (input, options2 = {}) => {
|
|
59398
59398
|
if (typeof input === "string") {
|
|
59399
|
-
return
|
|
59399
|
+
return stringify2(braces.parse(input, options2), options2);
|
|
59400
59400
|
}
|
|
59401
|
-
return
|
|
59401
|
+
return stringify2(input, options2);
|
|
59402
59402
|
};
|
|
59403
59403
|
braces.compile = (input, options2 = {}) => {
|
|
59404
59404
|
if (typeof input === "string") {
|
|
@@ -59970,7 +59970,7 @@ var require_parse6 = __commonJS((exports2, module2) => {
|
|
|
59970
59970
|
var syntaxError = (type, char) => {
|
|
59971
59971
|
return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`;
|
|
59972
59972
|
};
|
|
59973
|
-
var
|
|
59973
|
+
var parse7 = (input, options2) => {
|
|
59974
59974
|
if (typeof input !== "string") {
|
|
59975
59975
|
throw new TypeError("Expected a string");
|
|
59976
59976
|
}
|
|
@@ -60120,7 +60120,7 @@ var require_parse6 = __commonJS((exports2, module2) => {
|
|
|
60120
60120
|
output = token.close = `)$))${extglobStar}`;
|
|
60121
60121
|
}
|
|
60122
60122
|
if (token.inner.includes("*") && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) {
|
|
60123
|
-
const expression =
|
|
60123
|
+
const expression = parse7(rest, { ...options2, fastpaths: false }).output;
|
|
60124
60124
|
output = token.close = `)${expression})${extglobStar})`;
|
|
60125
60125
|
}
|
|
60126
60126
|
if (token.prev.type === "bos") {
|
|
@@ -60649,7 +60649,7 @@ var require_parse6 = __commonJS((exports2, module2) => {
|
|
|
60649
60649
|
}
|
|
60650
60650
|
return state;
|
|
60651
60651
|
};
|
|
60652
|
-
|
|
60652
|
+
parse7.fastpaths = (input, options2) => {
|
|
60653
60653
|
const opts = { ...options2 };
|
|
60654
60654
|
const max = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;
|
|
60655
60655
|
const len = input.length;
|
|
@@ -60718,14 +60718,14 @@ var require_parse6 = __commonJS((exports2, module2) => {
|
|
|
60718
60718
|
}
|
|
60719
60719
|
return source;
|
|
60720
60720
|
};
|
|
60721
|
-
module2.exports =
|
|
60721
|
+
module2.exports = parse7;
|
|
60722
60722
|
});
|
|
60723
60723
|
|
|
60724
60724
|
// node_modules/picomatch/lib/picomatch.js
|
|
60725
60725
|
var require_picomatch = __commonJS((exports2, module2) => {
|
|
60726
60726
|
var path8 = __require("path");
|
|
60727
60727
|
var scan = require_scan();
|
|
60728
|
-
var
|
|
60728
|
+
var parse7 = require_parse6();
|
|
60729
60729
|
var utils = require_utils4();
|
|
60730
60730
|
var constants2 = require_constants5();
|
|
60731
60731
|
var isObject = (val) => val && typeof val === "object" && !Array.isArray(val);
|
|
@@ -60815,7 +60815,7 @@ var require_picomatch = __commonJS((exports2, module2) => {
|
|
|
60815
60815
|
picomatch.parse = (pattern, options2) => {
|
|
60816
60816
|
if (Array.isArray(pattern))
|
|
60817
60817
|
return pattern.map((p) => picomatch.parse(p, options2));
|
|
60818
|
-
return
|
|
60818
|
+
return parse7(pattern, { ...options2, fastpaths: false });
|
|
60819
60819
|
};
|
|
60820
60820
|
picomatch.scan = (input, options2) => scan(input, options2);
|
|
60821
60821
|
picomatch.compileRe = (state, options2, returnOutput = false, returnState = false) => {
|
|
@@ -60841,10 +60841,10 @@ var require_picomatch = __commonJS((exports2, module2) => {
|
|
|
60841
60841
|
}
|
|
60842
60842
|
let parsed = { negated: false, fastpaths: true };
|
|
60843
60843
|
if (options2.fastpaths !== false && (input[0] === "." || input[0] === "*")) {
|
|
60844
|
-
parsed.output =
|
|
60844
|
+
parsed.output = parse7.fastpaths(input, options2);
|
|
60845
60845
|
}
|
|
60846
60846
|
if (!parsed.output) {
|
|
60847
|
-
parsed =
|
|
60847
|
+
parsed = parse7(input, options2);
|
|
60848
60848
|
}
|
|
60849
60849
|
return picomatch.compileRe(parsed, options2, returnOutput, returnState);
|
|
60850
60850
|
};
|
|
@@ -96744,6 +96744,34 @@ async function promptAndInstallHooks(projectRoot, artifactId, hookFiles) {
|
|
|
96744
96744
|
// src/sync/mcp/mcp.ts
|
|
96745
96745
|
import { dirname as dirname8, join as join25, relative as relative6 } from "path";
|
|
96746
96746
|
|
|
96747
|
+
// src/sync/plugins/codex/codex.mcp.ts
|
|
96748
|
+
var codexMcpTransform = (_serverName, content, executablePath) => {
|
|
96749
|
+
if (content.url) {
|
|
96750
|
+
return {
|
|
96751
|
+
url: content.url,
|
|
96752
|
+
...content.headers && { http_headers: content.headers }
|
|
96753
|
+
};
|
|
96754
|
+
}
|
|
96755
|
+
return {
|
|
96756
|
+
command: executablePath,
|
|
96757
|
+
...content.args?.length && { args: content.args },
|
|
96758
|
+
...content.env && { env: content.env }
|
|
96759
|
+
};
|
|
96760
|
+
};
|
|
96761
|
+
var codexMcpConfig = {
|
|
96762
|
+
configFile: ".codex/config.toml",
|
|
96763
|
+
serverKey: "mcp_servers",
|
|
96764
|
+
format: "toml",
|
|
96765
|
+
transform: codexMcpTransform
|
|
96766
|
+
};
|
|
96767
|
+
|
|
96768
|
+
// src/sync/plugins/zed/zed.mcp.ts
|
|
96769
|
+
var zedMcpConfig = {
|
|
96770
|
+
configFile: ".zed/settings.json",
|
|
96771
|
+
serverKey: "context_servers",
|
|
96772
|
+
transform: standardMcpTransform
|
|
96773
|
+
};
|
|
96774
|
+
|
|
96747
96775
|
// src/sync/mcp/mcp.config.ts
|
|
96748
96776
|
var MCP_CONFIGS = {
|
|
96749
96777
|
claude: claudeMcpConfig,
|
|
@@ -96752,7 +96780,9 @@ var MCP_CONFIGS = {
|
|
|
96752
96780
|
amazonq: amazonqMcpConfig,
|
|
96753
96781
|
opencode: opencodeMcpConfig,
|
|
96754
96782
|
kiro: kiroMcpConfig,
|
|
96783
|
+
codex: codexMcpConfig,
|
|
96755
96784
|
gemini: geminiMcpConfig,
|
|
96785
|
+
zed: zedMcpConfig,
|
|
96756
96786
|
roocode: roocodeMcpConfig,
|
|
96757
96787
|
kilocode: kilocodeMcpConfig,
|
|
96758
96788
|
amp: ampMcpConfig
|
|
@@ -96764,6 +96794,1092 @@ function getMcpTargetIds() {
|
|
|
96764
96794
|
return Object.keys(MCP_CONFIGS);
|
|
96765
96795
|
}
|
|
96766
96796
|
|
|
96797
|
+
// node_modules/smol-toml/dist/error.js
|
|
96798
|
+
/*!
|
|
96799
|
+
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
96800
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
96801
|
+
*
|
|
96802
|
+
* Redistribution and use in source and binary forms, with or without
|
|
96803
|
+
* modification, are permitted provided that the following conditions are met:
|
|
96804
|
+
*
|
|
96805
|
+
* 1. Redistributions of source code must retain the above copyright notice, this
|
|
96806
|
+
* list of conditions and the following disclaimer.
|
|
96807
|
+
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
96808
|
+
* this list of conditions and the following disclaimer in the
|
|
96809
|
+
* documentation and/or other materials provided with the distribution.
|
|
96810
|
+
* 3. Neither the name of the copyright holder nor the names of its contributors
|
|
96811
|
+
* may be used to endorse or promote products derived from this software without
|
|
96812
|
+
* specific prior written permission.
|
|
96813
|
+
*
|
|
96814
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
96815
|
+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
96816
|
+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
96817
|
+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
96818
|
+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
96819
|
+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
96820
|
+
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
96821
|
+
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
96822
|
+
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
96823
|
+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
96824
|
+
*/
|
|
96825
|
+
function getLineColFromPtr(string, ptr) {
|
|
96826
|
+
let lines = string.slice(0, ptr).split(/\r\n|\n|\r/g);
|
|
96827
|
+
return [lines.length, lines.pop().length + 1];
|
|
96828
|
+
}
|
|
96829
|
+
function makeCodeBlock(string, line, column) {
|
|
96830
|
+
let lines = string.split(/\r\n|\n|\r/g);
|
|
96831
|
+
let codeblock = "";
|
|
96832
|
+
let numberLen = (Math.log10(line + 1) | 0) + 1;
|
|
96833
|
+
for (let i = line - 1;i <= line + 1; i++) {
|
|
96834
|
+
let l = lines[i - 1];
|
|
96835
|
+
if (!l)
|
|
96836
|
+
continue;
|
|
96837
|
+
codeblock += i.toString().padEnd(numberLen, " ");
|
|
96838
|
+
codeblock += ": ";
|
|
96839
|
+
codeblock += l;
|
|
96840
|
+
codeblock += `
|
|
96841
|
+
`;
|
|
96842
|
+
if (i === line) {
|
|
96843
|
+
codeblock += " ".repeat(numberLen + column + 2);
|
|
96844
|
+
codeblock += `^
|
|
96845
|
+
`;
|
|
96846
|
+
}
|
|
96847
|
+
}
|
|
96848
|
+
return codeblock;
|
|
96849
|
+
}
|
|
96850
|
+
|
|
96851
|
+
class TomlError extends Error {
|
|
96852
|
+
line;
|
|
96853
|
+
column;
|
|
96854
|
+
codeblock;
|
|
96855
|
+
constructor(message, options2) {
|
|
96856
|
+
const [line, column] = getLineColFromPtr(options2.toml, options2.ptr);
|
|
96857
|
+
const codeblock = makeCodeBlock(options2.toml, line, column);
|
|
96858
|
+
super(`Invalid TOML document: ${message}
|
|
96859
|
+
|
|
96860
|
+
${codeblock}`, options2);
|
|
96861
|
+
this.line = line;
|
|
96862
|
+
this.column = column;
|
|
96863
|
+
this.codeblock = codeblock;
|
|
96864
|
+
}
|
|
96865
|
+
}
|
|
96866
|
+
|
|
96867
|
+
// node_modules/smol-toml/dist/util.js
|
|
96868
|
+
/*!
|
|
96869
|
+
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
96870
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
96871
|
+
*
|
|
96872
|
+
* Redistribution and use in source and binary forms, with or without
|
|
96873
|
+
* modification, are permitted provided that the following conditions are met:
|
|
96874
|
+
*
|
|
96875
|
+
* 1. Redistributions of source code must retain the above copyright notice, this
|
|
96876
|
+
* list of conditions and the following disclaimer.
|
|
96877
|
+
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
96878
|
+
* this list of conditions and the following disclaimer in the
|
|
96879
|
+
* documentation and/or other materials provided with the distribution.
|
|
96880
|
+
* 3. Neither the name of the copyright holder nor the names of its contributors
|
|
96881
|
+
* may be used to endorse or promote products derived from this software without
|
|
96882
|
+
* specific prior written permission.
|
|
96883
|
+
*
|
|
96884
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
96885
|
+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
96886
|
+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
96887
|
+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
96888
|
+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
96889
|
+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
96890
|
+
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
96891
|
+
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
96892
|
+
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
96893
|
+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
96894
|
+
*/
|
|
96895
|
+
function isEscaped(str2, ptr) {
|
|
96896
|
+
let i = 0;
|
|
96897
|
+
while (str2[ptr - ++i] === "\\")
|
|
96898
|
+
;
|
|
96899
|
+
return --i && i % 2;
|
|
96900
|
+
}
|
|
96901
|
+
function indexOfNewline(str2, start = 0, end = str2.length) {
|
|
96902
|
+
let idx = str2.indexOf(`
|
|
96903
|
+
`, start);
|
|
96904
|
+
if (str2[idx - 1] === "\r")
|
|
96905
|
+
idx--;
|
|
96906
|
+
return idx <= end ? idx : -1;
|
|
96907
|
+
}
|
|
96908
|
+
function skipComment(str2, ptr) {
|
|
96909
|
+
for (let i = ptr;i < str2.length; i++) {
|
|
96910
|
+
let c = str2[i];
|
|
96911
|
+
if (c === `
|
|
96912
|
+
`)
|
|
96913
|
+
return i;
|
|
96914
|
+
if (c === "\r" && str2[i + 1] === `
|
|
96915
|
+
`)
|
|
96916
|
+
return i + 1;
|
|
96917
|
+
if (c < " " && c !== "\t" || c === "") {
|
|
96918
|
+
throw new TomlError("control characters are not allowed in comments", {
|
|
96919
|
+
toml: str2,
|
|
96920
|
+
ptr
|
|
96921
|
+
});
|
|
96922
|
+
}
|
|
96923
|
+
}
|
|
96924
|
+
return str2.length;
|
|
96925
|
+
}
|
|
96926
|
+
function skipVoid(str2, ptr, banNewLines, banComments) {
|
|
96927
|
+
let c;
|
|
96928
|
+
while ((c = str2[ptr]) === " " || c === "\t" || !banNewLines && (c === `
|
|
96929
|
+
` || c === "\r" && str2[ptr + 1] === `
|
|
96930
|
+
`))
|
|
96931
|
+
ptr++;
|
|
96932
|
+
return banComments || c !== "#" ? ptr : skipVoid(str2, skipComment(str2, ptr), banNewLines);
|
|
96933
|
+
}
|
|
96934
|
+
function skipUntil(str2, ptr, sep3, end, banNewLines = false) {
|
|
96935
|
+
if (!end) {
|
|
96936
|
+
ptr = indexOfNewline(str2, ptr);
|
|
96937
|
+
return ptr < 0 ? str2.length : ptr;
|
|
96938
|
+
}
|
|
96939
|
+
for (let i = ptr;i < str2.length; i++) {
|
|
96940
|
+
let c = str2[i];
|
|
96941
|
+
if (c === "#") {
|
|
96942
|
+
i = indexOfNewline(str2, i);
|
|
96943
|
+
} else if (c === sep3) {
|
|
96944
|
+
return i + 1;
|
|
96945
|
+
} else if (c === end || banNewLines && (c === `
|
|
96946
|
+
` || c === "\r" && str2[i + 1] === `
|
|
96947
|
+
`)) {
|
|
96948
|
+
return i;
|
|
96949
|
+
}
|
|
96950
|
+
}
|
|
96951
|
+
throw new TomlError("cannot find end of structure", {
|
|
96952
|
+
toml: str2,
|
|
96953
|
+
ptr
|
|
96954
|
+
});
|
|
96955
|
+
}
|
|
96956
|
+
function getStringEnd(str2, seek) {
|
|
96957
|
+
let first = str2[seek];
|
|
96958
|
+
let target = first === str2[seek + 1] && str2[seek + 1] === str2[seek + 2] ? str2.slice(seek, seek + 3) : first;
|
|
96959
|
+
seek += target.length - 1;
|
|
96960
|
+
do
|
|
96961
|
+
seek = str2.indexOf(target, ++seek);
|
|
96962
|
+
while (seek > -1 && first !== "'" && isEscaped(str2, seek));
|
|
96963
|
+
if (seek > -1) {
|
|
96964
|
+
seek += target.length;
|
|
96965
|
+
if (target.length > 1) {
|
|
96966
|
+
if (str2[seek] === first)
|
|
96967
|
+
seek++;
|
|
96968
|
+
if (str2[seek] === first)
|
|
96969
|
+
seek++;
|
|
96970
|
+
}
|
|
96971
|
+
}
|
|
96972
|
+
return seek;
|
|
96973
|
+
}
|
|
96974
|
+
|
|
96975
|
+
// node_modules/smol-toml/dist/date.js
|
|
96976
|
+
/*!
|
|
96977
|
+
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
96978
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
96979
|
+
*
|
|
96980
|
+
* Redistribution and use in source and binary forms, with or without
|
|
96981
|
+
* modification, are permitted provided that the following conditions are met:
|
|
96982
|
+
*
|
|
96983
|
+
* 1. Redistributions of source code must retain the above copyright notice, this
|
|
96984
|
+
* list of conditions and the following disclaimer.
|
|
96985
|
+
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
96986
|
+
* this list of conditions and the following disclaimer in the
|
|
96987
|
+
* documentation and/or other materials provided with the distribution.
|
|
96988
|
+
* 3. Neither the name of the copyright holder nor the names of its contributors
|
|
96989
|
+
* may be used to endorse or promote products derived from this software without
|
|
96990
|
+
* specific prior written permission.
|
|
96991
|
+
*
|
|
96992
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
96993
|
+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
96994
|
+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
96995
|
+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
96996
|
+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
96997
|
+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
96998
|
+
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
96999
|
+
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
97000
|
+
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
97001
|
+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
97002
|
+
*/
|
|
97003
|
+
var DATE_TIME_RE = /^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[-+]\d{2}:\d{2})?$/i;
|
|
97004
|
+
|
|
97005
|
+
class TomlDate extends Date {
|
|
97006
|
+
#hasDate = false;
|
|
97007
|
+
#hasTime = false;
|
|
97008
|
+
#offset = null;
|
|
97009
|
+
constructor(date) {
|
|
97010
|
+
let hasDate = true;
|
|
97011
|
+
let hasTime = true;
|
|
97012
|
+
let offset = "Z";
|
|
97013
|
+
if (typeof date === "string") {
|
|
97014
|
+
let match = date.match(DATE_TIME_RE);
|
|
97015
|
+
if (match) {
|
|
97016
|
+
if (!match[1]) {
|
|
97017
|
+
hasDate = false;
|
|
97018
|
+
date = `0000-01-01T${date}`;
|
|
97019
|
+
}
|
|
97020
|
+
hasTime = !!match[2];
|
|
97021
|
+
hasTime && date[10] === " " && (date = date.replace(" ", "T"));
|
|
97022
|
+
if (match[2] && +match[2] > 23) {
|
|
97023
|
+
date = "";
|
|
97024
|
+
} else {
|
|
97025
|
+
offset = match[3] || null;
|
|
97026
|
+
date = date.toUpperCase();
|
|
97027
|
+
if (!offset && hasTime)
|
|
97028
|
+
date += "Z";
|
|
97029
|
+
}
|
|
97030
|
+
} else {
|
|
97031
|
+
date = "";
|
|
97032
|
+
}
|
|
97033
|
+
}
|
|
97034
|
+
super(date);
|
|
97035
|
+
if (!isNaN(this.getTime())) {
|
|
97036
|
+
this.#hasDate = hasDate;
|
|
97037
|
+
this.#hasTime = hasTime;
|
|
97038
|
+
this.#offset = offset;
|
|
97039
|
+
}
|
|
97040
|
+
}
|
|
97041
|
+
isDateTime() {
|
|
97042
|
+
return this.#hasDate && this.#hasTime;
|
|
97043
|
+
}
|
|
97044
|
+
isLocal() {
|
|
97045
|
+
return !this.#hasDate || !this.#hasTime || !this.#offset;
|
|
97046
|
+
}
|
|
97047
|
+
isDate() {
|
|
97048
|
+
return this.#hasDate && !this.#hasTime;
|
|
97049
|
+
}
|
|
97050
|
+
isTime() {
|
|
97051
|
+
return this.#hasTime && !this.#hasDate;
|
|
97052
|
+
}
|
|
97053
|
+
isValid() {
|
|
97054
|
+
return this.#hasDate || this.#hasTime;
|
|
97055
|
+
}
|
|
97056
|
+
toISOString() {
|
|
97057
|
+
let iso = super.toISOString();
|
|
97058
|
+
if (this.isDate())
|
|
97059
|
+
return iso.slice(0, 10);
|
|
97060
|
+
if (this.isTime())
|
|
97061
|
+
return iso.slice(11, 23);
|
|
97062
|
+
if (this.#offset === null)
|
|
97063
|
+
return iso.slice(0, -1);
|
|
97064
|
+
if (this.#offset === "Z")
|
|
97065
|
+
return iso;
|
|
97066
|
+
let offset = +this.#offset.slice(1, 3) * 60 + +this.#offset.slice(4, 6);
|
|
97067
|
+
offset = this.#offset[0] === "-" ? offset : -offset;
|
|
97068
|
+
let offsetDate = new Date(this.getTime() - offset * 60000);
|
|
97069
|
+
return offsetDate.toISOString().slice(0, -1) + this.#offset;
|
|
97070
|
+
}
|
|
97071
|
+
static wrapAsOffsetDateTime(jsDate, offset = "Z") {
|
|
97072
|
+
let date = new TomlDate(jsDate);
|
|
97073
|
+
date.#offset = offset;
|
|
97074
|
+
return date;
|
|
97075
|
+
}
|
|
97076
|
+
static wrapAsLocalDateTime(jsDate) {
|
|
97077
|
+
let date = new TomlDate(jsDate);
|
|
97078
|
+
date.#offset = null;
|
|
97079
|
+
return date;
|
|
97080
|
+
}
|
|
97081
|
+
static wrapAsLocalDate(jsDate) {
|
|
97082
|
+
let date = new TomlDate(jsDate);
|
|
97083
|
+
date.#hasTime = false;
|
|
97084
|
+
date.#offset = null;
|
|
97085
|
+
return date;
|
|
97086
|
+
}
|
|
97087
|
+
static wrapAsLocalTime(jsDate) {
|
|
97088
|
+
let date = new TomlDate(jsDate);
|
|
97089
|
+
date.#hasDate = false;
|
|
97090
|
+
date.#offset = null;
|
|
97091
|
+
return date;
|
|
97092
|
+
}
|
|
97093
|
+
}
|
|
97094
|
+
|
|
97095
|
+
// node_modules/smol-toml/dist/primitive.js
|
|
97096
|
+
/*!
|
|
97097
|
+
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
97098
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
97099
|
+
*
|
|
97100
|
+
* Redistribution and use in source and binary forms, with or without
|
|
97101
|
+
* modification, are permitted provided that the following conditions are met:
|
|
97102
|
+
*
|
|
97103
|
+
* 1. Redistributions of source code must retain the above copyright notice, this
|
|
97104
|
+
* list of conditions and the following disclaimer.
|
|
97105
|
+
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
97106
|
+
* this list of conditions and the following disclaimer in the
|
|
97107
|
+
* documentation and/or other materials provided with the distribution.
|
|
97108
|
+
* 3. Neither the name of the copyright holder nor the names of its contributors
|
|
97109
|
+
* may be used to endorse or promote products derived from this software without
|
|
97110
|
+
* specific prior written permission.
|
|
97111
|
+
*
|
|
97112
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
97113
|
+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
97114
|
+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
97115
|
+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
97116
|
+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
97117
|
+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
97118
|
+
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
97119
|
+
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
97120
|
+
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
97121
|
+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
97122
|
+
*/
|
|
97123
|
+
var INT_REGEX = /^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/;
|
|
97124
|
+
var FLOAT_REGEX = /^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/;
|
|
97125
|
+
var LEADING_ZERO = /^[+-]?0[0-9_]/;
|
|
97126
|
+
var ESCAPE_REGEX = /^[0-9a-f]{2,8}$/i;
|
|
97127
|
+
var ESC_MAP = {
|
|
97128
|
+
b: "\b",
|
|
97129
|
+
t: "\t",
|
|
97130
|
+
n: `
|
|
97131
|
+
`,
|
|
97132
|
+
f: "\f",
|
|
97133
|
+
r: "\r",
|
|
97134
|
+
e: "\x1B",
|
|
97135
|
+
'"': '"',
|
|
97136
|
+
"\\": "\\"
|
|
97137
|
+
};
|
|
97138
|
+
function parseString(str2, ptr = 0, endPtr = str2.length) {
|
|
97139
|
+
let isLiteral = str2[ptr] === "'";
|
|
97140
|
+
let isMultiline = str2[ptr++] === str2[ptr] && str2[ptr] === str2[ptr + 1];
|
|
97141
|
+
if (isMultiline) {
|
|
97142
|
+
endPtr -= 2;
|
|
97143
|
+
if (str2[ptr += 2] === "\r")
|
|
97144
|
+
ptr++;
|
|
97145
|
+
if (str2[ptr] === `
|
|
97146
|
+
`)
|
|
97147
|
+
ptr++;
|
|
97148
|
+
}
|
|
97149
|
+
let tmp = 0;
|
|
97150
|
+
let isEscape;
|
|
97151
|
+
let parsed = "";
|
|
97152
|
+
let sliceStart = ptr;
|
|
97153
|
+
while (ptr < endPtr - 1) {
|
|
97154
|
+
let c = str2[ptr++];
|
|
97155
|
+
if (c === `
|
|
97156
|
+
` || c === "\r" && str2[ptr] === `
|
|
97157
|
+
`) {
|
|
97158
|
+
if (!isMultiline) {
|
|
97159
|
+
throw new TomlError("newlines are not allowed in strings", {
|
|
97160
|
+
toml: str2,
|
|
97161
|
+
ptr: ptr - 1
|
|
97162
|
+
});
|
|
97163
|
+
}
|
|
97164
|
+
} else if (c < " " && c !== "\t" || c === "") {
|
|
97165
|
+
throw new TomlError("control characters are not allowed in strings", {
|
|
97166
|
+
toml: str2,
|
|
97167
|
+
ptr: ptr - 1
|
|
97168
|
+
});
|
|
97169
|
+
}
|
|
97170
|
+
if (isEscape) {
|
|
97171
|
+
isEscape = false;
|
|
97172
|
+
if (c === "x" || c === "u" || c === "U") {
|
|
97173
|
+
let code2 = str2.slice(ptr, ptr += c === "x" ? 2 : c === "u" ? 4 : 8);
|
|
97174
|
+
if (!ESCAPE_REGEX.test(code2)) {
|
|
97175
|
+
throw new TomlError("invalid unicode escape", {
|
|
97176
|
+
toml: str2,
|
|
97177
|
+
ptr: tmp
|
|
97178
|
+
});
|
|
97179
|
+
}
|
|
97180
|
+
try {
|
|
97181
|
+
parsed += String.fromCodePoint(parseInt(code2, 16));
|
|
97182
|
+
} catch {
|
|
97183
|
+
throw new TomlError("invalid unicode escape", {
|
|
97184
|
+
toml: str2,
|
|
97185
|
+
ptr: tmp
|
|
97186
|
+
});
|
|
97187
|
+
}
|
|
97188
|
+
} else if (isMultiline && (c === `
|
|
97189
|
+
` || c === " " || c === "\t" || c === "\r")) {
|
|
97190
|
+
ptr = skipVoid(str2, ptr - 1, true);
|
|
97191
|
+
if (str2[ptr] !== `
|
|
97192
|
+
` && str2[ptr] !== "\r") {
|
|
97193
|
+
throw new TomlError("invalid escape: only line-ending whitespace may be escaped", {
|
|
97194
|
+
toml: str2,
|
|
97195
|
+
ptr: tmp
|
|
97196
|
+
});
|
|
97197
|
+
}
|
|
97198
|
+
ptr = skipVoid(str2, ptr);
|
|
97199
|
+
} else if (c in ESC_MAP) {
|
|
97200
|
+
parsed += ESC_MAP[c];
|
|
97201
|
+
} else {
|
|
97202
|
+
throw new TomlError("unrecognized escape sequence", {
|
|
97203
|
+
toml: str2,
|
|
97204
|
+
ptr: tmp
|
|
97205
|
+
});
|
|
97206
|
+
}
|
|
97207
|
+
sliceStart = ptr;
|
|
97208
|
+
} else if (!isLiteral && c === "\\") {
|
|
97209
|
+
tmp = ptr - 1;
|
|
97210
|
+
isEscape = true;
|
|
97211
|
+
parsed += str2.slice(sliceStart, tmp);
|
|
97212
|
+
}
|
|
97213
|
+
}
|
|
97214
|
+
return parsed + str2.slice(sliceStart, endPtr - 1);
|
|
97215
|
+
}
|
|
97216
|
+
function parseValue2(value, toml, ptr, integersAsBigInt) {
|
|
97217
|
+
if (value === "true")
|
|
97218
|
+
return true;
|
|
97219
|
+
if (value === "false")
|
|
97220
|
+
return false;
|
|
97221
|
+
if (value === "-inf")
|
|
97222
|
+
return -Infinity;
|
|
97223
|
+
if (value === "inf" || value === "+inf")
|
|
97224
|
+
return Infinity;
|
|
97225
|
+
if (value === "nan" || value === "+nan" || value === "-nan")
|
|
97226
|
+
return NaN;
|
|
97227
|
+
if (value === "-0")
|
|
97228
|
+
return integersAsBigInt ? 0n : 0;
|
|
97229
|
+
let isInt = INT_REGEX.test(value);
|
|
97230
|
+
if (isInt || FLOAT_REGEX.test(value)) {
|
|
97231
|
+
if (LEADING_ZERO.test(value)) {
|
|
97232
|
+
throw new TomlError("leading zeroes are not allowed", {
|
|
97233
|
+
toml,
|
|
97234
|
+
ptr
|
|
97235
|
+
});
|
|
97236
|
+
}
|
|
97237
|
+
value = value.replace(/_/g, "");
|
|
97238
|
+
let numeric = +value;
|
|
97239
|
+
if (isNaN(numeric)) {
|
|
97240
|
+
throw new TomlError("invalid number", {
|
|
97241
|
+
toml,
|
|
97242
|
+
ptr
|
|
97243
|
+
});
|
|
97244
|
+
}
|
|
97245
|
+
if (isInt) {
|
|
97246
|
+
if ((isInt = !Number.isSafeInteger(numeric)) && !integersAsBigInt) {
|
|
97247
|
+
throw new TomlError("integer value cannot be represented losslessly", {
|
|
97248
|
+
toml,
|
|
97249
|
+
ptr
|
|
97250
|
+
});
|
|
97251
|
+
}
|
|
97252
|
+
if (isInt || integersAsBigInt === true)
|
|
97253
|
+
numeric = BigInt(value);
|
|
97254
|
+
}
|
|
97255
|
+
return numeric;
|
|
97256
|
+
}
|
|
97257
|
+
const date = new TomlDate(value);
|
|
97258
|
+
if (!date.isValid()) {
|
|
97259
|
+
throw new TomlError("invalid value", {
|
|
97260
|
+
toml,
|
|
97261
|
+
ptr
|
|
97262
|
+
});
|
|
97263
|
+
}
|
|
97264
|
+
return date;
|
|
97265
|
+
}
|
|
97266
|
+
|
|
97267
|
+
// node_modules/smol-toml/dist/extract.js
|
|
97268
|
+
/*!
|
|
97269
|
+
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
97270
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
97271
|
+
*
|
|
97272
|
+
* Redistribution and use in source and binary forms, with or without
|
|
97273
|
+
* modification, are permitted provided that the following conditions are met:
|
|
97274
|
+
*
|
|
97275
|
+
* 1. Redistributions of source code must retain the above copyright notice, this
|
|
97276
|
+
* list of conditions and the following disclaimer.
|
|
97277
|
+
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
97278
|
+
* this list of conditions and the following disclaimer in the
|
|
97279
|
+
* documentation and/or other materials provided with the distribution.
|
|
97280
|
+
* 3. Neither the name of the copyright holder nor the names of its contributors
|
|
97281
|
+
* may be used to endorse or promote products derived from this software without
|
|
97282
|
+
* specific prior written permission.
|
|
97283
|
+
*
|
|
97284
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
97285
|
+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
97286
|
+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
97287
|
+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
97288
|
+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
97289
|
+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
97290
|
+
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
97291
|
+
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
97292
|
+
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
97293
|
+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
97294
|
+
*/
|
|
97295
|
+
function sliceAndTrimEndOf(str2, startPtr, endPtr) {
|
|
97296
|
+
let value = str2.slice(startPtr, endPtr);
|
|
97297
|
+
let commentIdx = value.indexOf("#");
|
|
97298
|
+
if (commentIdx > -1) {
|
|
97299
|
+
skipComment(str2, commentIdx);
|
|
97300
|
+
value = value.slice(0, commentIdx);
|
|
97301
|
+
}
|
|
97302
|
+
return [value.trimEnd(), commentIdx];
|
|
97303
|
+
}
|
|
97304
|
+
function extractValue(str2, ptr, end, depth, integersAsBigInt) {
|
|
97305
|
+
if (depth === 0) {
|
|
97306
|
+
throw new TomlError("document contains excessively nested structures. aborting.", {
|
|
97307
|
+
toml: str2,
|
|
97308
|
+
ptr
|
|
97309
|
+
});
|
|
97310
|
+
}
|
|
97311
|
+
let c = str2[ptr];
|
|
97312
|
+
if (c === "[" || c === "{") {
|
|
97313
|
+
let [value, endPtr2] = c === "[" ? parseArray(str2, ptr, depth, integersAsBigInt) : parseInlineTable(str2, ptr, depth, integersAsBigInt);
|
|
97314
|
+
if (end) {
|
|
97315
|
+
endPtr2 = skipVoid(str2, endPtr2);
|
|
97316
|
+
if (str2[endPtr2] === ",")
|
|
97317
|
+
endPtr2++;
|
|
97318
|
+
else if (str2[endPtr2] !== end) {
|
|
97319
|
+
throw new TomlError("expected comma or end of structure", {
|
|
97320
|
+
toml: str2,
|
|
97321
|
+
ptr: endPtr2
|
|
97322
|
+
});
|
|
97323
|
+
}
|
|
97324
|
+
}
|
|
97325
|
+
return [value, endPtr2];
|
|
97326
|
+
}
|
|
97327
|
+
let endPtr;
|
|
97328
|
+
if (c === '"' || c === "'") {
|
|
97329
|
+
endPtr = getStringEnd(str2, ptr);
|
|
97330
|
+
let parsed = parseString(str2, ptr, endPtr);
|
|
97331
|
+
if (end) {
|
|
97332
|
+
endPtr = skipVoid(str2, endPtr);
|
|
97333
|
+
if (str2[endPtr] && str2[endPtr] !== "," && str2[endPtr] !== end && str2[endPtr] !== `
|
|
97334
|
+
` && str2[endPtr] !== "\r") {
|
|
97335
|
+
throw new TomlError("unexpected character encountered", {
|
|
97336
|
+
toml: str2,
|
|
97337
|
+
ptr: endPtr
|
|
97338
|
+
});
|
|
97339
|
+
}
|
|
97340
|
+
endPtr += +(str2[endPtr] === ",");
|
|
97341
|
+
}
|
|
97342
|
+
return [parsed, endPtr];
|
|
97343
|
+
}
|
|
97344
|
+
endPtr = skipUntil(str2, ptr, ",", end);
|
|
97345
|
+
let slice = sliceAndTrimEndOf(str2, ptr, endPtr - +(str2[endPtr - 1] === ","));
|
|
97346
|
+
if (!slice[0]) {
|
|
97347
|
+
throw new TomlError("incomplete key-value declaration: no value specified", {
|
|
97348
|
+
toml: str2,
|
|
97349
|
+
ptr
|
|
97350
|
+
});
|
|
97351
|
+
}
|
|
97352
|
+
if (end && slice[1] > -1) {
|
|
97353
|
+
endPtr = skipVoid(str2, ptr + slice[1]);
|
|
97354
|
+
endPtr += +(str2[endPtr] === ",");
|
|
97355
|
+
}
|
|
97356
|
+
return [
|
|
97357
|
+
parseValue2(slice[0], str2, ptr, integersAsBigInt),
|
|
97358
|
+
endPtr
|
|
97359
|
+
];
|
|
97360
|
+
}
|
|
97361
|
+
|
|
97362
|
+
// node_modules/smol-toml/dist/struct.js
|
|
97363
|
+
/*!
|
|
97364
|
+
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
97365
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
97366
|
+
*
|
|
97367
|
+
* Redistribution and use in source and binary forms, with or without
|
|
97368
|
+
* modification, are permitted provided that the following conditions are met:
|
|
97369
|
+
*
|
|
97370
|
+
* 1. Redistributions of source code must retain the above copyright notice, this
|
|
97371
|
+
* list of conditions and the following disclaimer.
|
|
97372
|
+
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
97373
|
+
* this list of conditions and the following disclaimer in the
|
|
97374
|
+
* documentation and/or other materials provided with the distribution.
|
|
97375
|
+
* 3. Neither the name of the copyright holder nor the names of its contributors
|
|
97376
|
+
* may be used to endorse or promote products derived from this software without
|
|
97377
|
+
* specific prior written permission.
|
|
97378
|
+
*
|
|
97379
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
97380
|
+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
97381
|
+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
97382
|
+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
97383
|
+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
97384
|
+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
97385
|
+
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
97386
|
+
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
97387
|
+
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
97388
|
+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
97389
|
+
*/
|
|
97390
|
+
var KEY_PART_RE = /^[a-zA-Z0-9-_]+[ \t]*$/;
|
|
97391
|
+
function parseKey(str2, ptr, end = "=") {
|
|
97392
|
+
let dot = ptr - 1;
|
|
97393
|
+
let parsed = [];
|
|
97394
|
+
let endPtr = str2.indexOf(end, ptr);
|
|
97395
|
+
if (endPtr < 0) {
|
|
97396
|
+
throw new TomlError("incomplete key-value: cannot find end of key", {
|
|
97397
|
+
toml: str2,
|
|
97398
|
+
ptr
|
|
97399
|
+
});
|
|
97400
|
+
}
|
|
97401
|
+
do {
|
|
97402
|
+
let c = str2[ptr = ++dot];
|
|
97403
|
+
if (c !== " " && c !== "\t") {
|
|
97404
|
+
if (c === '"' || c === "'") {
|
|
97405
|
+
if (c === str2[ptr + 1] && c === str2[ptr + 2]) {
|
|
97406
|
+
throw new TomlError("multiline strings are not allowed in keys", {
|
|
97407
|
+
toml: str2,
|
|
97408
|
+
ptr
|
|
97409
|
+
});
|
|
97410
|
+
}
|
|
97411
|
+
let eos = getStringEnd(str2, ptr);
|
|
97412
|
+
if (eos < 0) {
|
|
97413
|
+
throw new TomlError("unfinished string encountered", {
|
|
97414
|
+
toml: str2,
|
|
97415
|
+
ptr
|
|
97416
|
+
});
|
|
97417
|
+
}
|
|
97418
|
+
dot = str2.indexOf(".", eos);
|
|
97419
|
+
let strEnd = str2.slice(eos, dot < 0 || dot > endPtr ? endPtr : dot);
|
|
97420
|
+
let newLine = indexOfNewline(strEnd);
|
|
97421
|
+
if (newLine > -1) {
|
|
97422
|
+
throw new TomlError("newlines are not allowed in keys", {
|
|
97423
|
+
toml: str2,
|
|
97424
|
+
ptr: ptr + dot + newLine
|
|
97425
|
+
});
|
|
97426
|
+
}
|
|
97427
|
+
if (strEnd.trimStart()) {
|
|
97428
|
+
throw new TomlError("found extra tokens after the string part", {
|
|
97429
|
+
toml: str2,
|
|
97430
|
+
ptr: eos
|
|
97431
|
+
});
|
|
97432
|
+
}
|
|
97433
|
+
if (endPtr < eos) {
|
|
97434
|
+
endPtr = str2.indexOf(end, eos);
|
|
97435
|
+
if (endPtr < 0) {
|
|
97436
|
+
throw new TomlError("incomplete key-value: cannot find end of key", {
|
|
97437
|
+
toml: str2,
|
|
97438
|
+
ptr
|
|
97439
|
+
});
|
|
97440
|
+
}
|
|
97441
|
+
}
|
|
97442
|
+
parsed.push(parseString(str2, ptr, eos));
|
|
97443
|
+
} else {
|
|
97444
|
+
dot = str2.indexOf(".", ptr);
|
|
97445
|
+
let part = str2.slice(ptr, dot < 0 || dot > endPtr ? endPtr : dot);
|
|
97446
|
+
if (!KEY_PART_RE.test(part)) {
|
|
97447
|
+
throw new TomlError("only letter, numbers, dashes and underscores are allowed in keys", {
|
|
97448
|
+
toml: str2,
|
|
97449
|
+
ptr
|
|
97450
|
+
});
|
|
97451
|
+
}
|
|
97452
|
+
parsed.push(part.trimEnd());
|
|
97453
|
+
}
|
|
97454
|
+
}
|
|
97455
|
+
} while (dot + 1 && dot < endPtr);
|
|
97456
|
+
return [parsed, skipVoid(str2, endPtr + 1, true, true)];
|
|
97457
|
+
}
|
|
97458
|
+
function parseInlineTable(str2, ptr, depth, integersAsBigInt) {
|
|
97459
|
+
let res = {};
|
|
97460
|
+
let seen = new Set;
|
|
97461
|
+
let c;
|
|
97462
|
+
ptr++;
|
|
97463
|
+
while ((c = str2[ptr++]) !== "}" && c) {
|
|
97464
|
+
if (c === ",") {
|
|
97465
|
+
throw new TomlError("expected value, found comma", {
|
|
97466
|
+
toml: str2,
|
|
97467
|
+
ptr: ptr - 1
|
|
97468
|
+
});
|
|
97469
|
+
} else if (c === "#")
|
|
97470
|
+
ptr = skipComment(str2, ptr);
|
|
97471
|
+
else if (c !== " " && c !== "\t" && c !== `
|
|
97472
|
+
` && c !== "\r") {
|
|
97473
|
+
let k;
|
|
97474
|
+
let t = res;
|
|
97475
|
+
let hasOwn = false;
|
|
97476
|
+
let [key, keyEndPtr] = parseKey(str2, ptr - 1);
|
|
97477
|
+
for (let i = 0;i < key.length; i++) {
|
|
97478
|
+
if (i)
|
|
97479
|
+
t = hasOwn ? t[k] : t[k] = {};
|
|
97480
|
+
k = key[i];
|
|
97481
|
+
if ((hasOwn = Object.hasOwn(t, k)) && (typeof t[k] !== "object" || seen.has(t[k]))) {
|
|
97482
|
+
throw new TomlError("trying to redefine an already defined value", {
|
|
97483
|
+
toml: str2,
|
|
97484
|
+
ptr
|
|
97485
|
+
});
|
|
97486
|
+
}
|
|
97487
|
+
if (!hasOwn && k === "__proto__") {
|
|
97488
|
+
Object.defineProperty(t, k, { enumerable: true, configurable: true, writable: true });
|
|
97489
|
+
}
|
|
97490
|
+
}
|
|
97491
|
+
if (hasOwn) {
|
|
97492
|
+
throw new TomlError("trying to redefine an already defined value", {
|
|
97493
|
+
toml: str2,
|
|
97494
|
+
ptr
|
|
97495
|
+
});
|
|
97496
|
+
}
|
|
97497
|
+
let [value, valueEndPtr] = extractValue(str2, keyEndPtr, "}", depth - 1, integersAsBigInt);
|
|
97498
|
+
seen.add(value);
|
|
97499
|
+
t[k] = value;
|
|
97500
|
+
ptr = valueEndPtr;
|
|
97501
|
+
}
|
|
97502
|
+
}
|
|
97503
|
+
if (!c) {
|
|
97504
|
+
throw new TomlError("unfinished table encountered", {
|
|
97505
|
+
toml: str2,
|
|
97506
|
+
ptr
|
|
97507
|
+
});
|
|
97508
|
+
}
|
|
97509
|
+
return [res, ptr];
|
|
97510
|
+
}
|
|
97511
|
+
function parseArray(str2, ptr, depth, integersAsBigInt) {
|
|
97512
|
+
let res = [];
|
|
97513
|
+
let c;
|
|
97514
|
+
ptr++;
|
|
97515
|
+
while ((c = str2[ptr++]) !== "]" && c) {
|
|
97516
|
+
if (c === ",") {
|
|
97517
|
+
throw new TomlError("expected value, found comma", {
|
|
97518
|
+
toml: str2,
|
|
97519
|
+
ptr: ptr - 1
|
|
97520
|
+
});
|
|
97521
|
+
} else if (c === "#")
|
|
97522
|
+
ptr = skipComment(str2, ptr);
|
|
97523
|
+
else if (c !== " " && c !== "\t" && c !== `
|
|
97524
|
+
` && c !== "\r") {
|
|
97525
|
+
let e = extractValue(str2, ptr - 1, "]", depth - 1, integersAsBigInt);
|
|
97526
|
+
res.push(e[0]);
|
|
97527
|
+
ptr = e[1];
|
|
97528
|
+
}
|
|
97529
|
+
}
|
|
97530
|
+
if (!c) {
|
|
97531
|
+
throw new TomlError("unfinished array encountered", {
|
|
97532
|
+
toml: str2,
|
|
97533
|
+
ptr
|
|
97534
|
+
});
|
|
97535
|
+
}
|
|
97536
|
+
return [res, ptr];
|
|
97537
|
+
}
|
|
97538
|
+
|
|
97539
|
+
// node_modules/smol-toml/dist/parse.js
|
|
97540
|
+
/*!
|
|
97541
|
+
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
97542
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
97543
|
+
*
|
|
97544
|
+
* Redistribution and use in source and binary forms, with or without
|
|
97545
|
+
* modification, are permitted provided that the following conditions are met:
|
|
97546
|
+
*
|
|
97547
|
+
* 1. Redistributions of source code must retain the above copyright notice, this
|
|
97548
|
+
* list of conditions and the following disclaimer.
|
|
97549
|
+
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
97550
|
+
* this list of conditions and the following disclaimer in the
|
|
97551
|
+
* documentation and/or other materials provided with the distribution.
|
|
97552
|
+
* 3. Neither the name of the copyright holder nor the names of its contributors
|
|
97553
|
+
* may be used to endorse or promote products derived from this software without
|
|
97554
|
+
* specific prior written permission.
|
|
97555
|
+
*
|
|
97556
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
97557
|
+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
97558
|
+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
97559
|
+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
97560
|
+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
97561
|
+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
97562
|
+
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
97563
|
+
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
97564
|
+
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
97565
|
+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
97566
|
+
*/
|
|
97567
|
+
function peekTable(key, table, meta, type) {
|
|
97568
|
+
let t = table;
|
|
97569
|
+
let m = meta;
|
|
97570
|
+
let k;
|
|
97571
|
+
let hasOwn = false;
|
|
97572
|
+
let state;
|
|
97573
|
+
for (let i = 0;i < key.length; i++) {
|
|
97574
|
+
if (i) {
|
|
97575
|
+
t = hasOwn ? t[k] : t[k] = {};
|
|
97576
|
+
m = (state = m[k]).c;
|
|
97577
|
+
if (type === 0 && (state.t === 1 || state.t === 2)) {
|
|
97578
|
+
return null;
|
|
97579
|
+
}
|
|
97580
|
+
if (state.t === 2) {
|
|
97581
|
+
let l = t.length - 1;
|
|
97582
|
+
t = t[l];
|
|
97583
|
+
m = m[l].c;
|
|
97584
|
+
}
|
|
97585
|
+
}
|
|
97586
|
+
k = key[i];
|
|
97587
|
+
if ((hasOwn = Object.hasOwn(t, k)) && m[k]?.t === 0 && m[k]?.d) {
|
|
97588
|
+
return null;
|
|
97589
|
+
}
|
|
97590
|
+
if (!hasOwn) {
|
|
97591
|
+
if (k === "__proto__") {
|
|
97592
|
+
Object.defineProperty(t, k, { enumerable: true, configurable: true, writable: true });
|
|
97593
|
+
Object.defineProperty(m, k, { enumerable: true, configurable: true, writable: true });
|
|
97594
|
+
}
|
|
97595
|
+
m[k] = {
|
|
97596
|
+
t: i < key.length - 1 && type === 2 ? 3 : type,
|
|
97597
|
+
d: false,
|
|
97598
|
+
i: 0,
|
|
97599
|
+
c: {}
|
|
97600
|
+
};
|
|
97601
|
+
}
|
|
97602
|
+
}
|
|
97603
|
+
state = m[k];
|
|
97604
|
+
if (state.t !== type && !(type === 1 && state.t === 3)) {
|
|
97605
|
+
return null;
|
|
97606
|
+
}
|
|
97607
|
+
if (type === 2) {
|
|
97608
|
+
if (!state.d) {
|
|
97609
|
+
state.d = true;
|
|
97610
|
+
t[k] = [];
|
|
97611
|
+
}
|
|
97612
|
+
t[k].push(t = {});
|
|
97613
|
+
state.c[state.i++] = state = { t: 1, d: false, i: 0, c: {} };
|
|
97614
|
+
}
|
|
97615
|
+
if (state.d) {
|
|
97616
|
+
return null;
|
|
97617
|
+
}
|
|
97618
|
+
state.d = true;
|
|
97619
|
+
if (type === 1) {
|
|
97620
|
+
t = hasOwn ? t[k] : t[k] = {};
|
|
97621
|
+
} else if (type === 0 && hasOwn) {
|
|
97622
|
+
return null;
|
|
97623
|
+
}
|
|
97624
|
+
return [k, t, state.c];
|
|
97625
|
+
}
|
|
97626
|
+
function parse6(toml, { maxDepth = 1000, integersAsBigInt } = {}) {
|
|
97627
|
+
let res = {};
|
|
97628
|
+
let meta = {};
|
|
97629
|
+
let tbl = res;
|
|
97630
|
+
let m = meta;
|
|
97631
|
+
for (let ptr = skipVoid(toml, 0);ptr < toml.length; ) {
|
|
97632
|
+
if (toml[ptr] === "[") {
|
|
97633
|
+
let isTableArray = toml[++ptr] === "[";
|
|
97634
|
+
let k = parseKey(toml, ptr += +isTableArray, "]");
|
|
97635
|
+
if (isTableArray) {
|
|
97636
|
+
if (toml[k[1] - 1] !== "]") {
|
|
97637
|
+
throw new TomlError("expected end of table declaration", {
|
|
97638
|
+
toml,
|
|
97639
|
+
ptr: k[1] - 1
|
|
97640
|
+
});
|
|
97641
|
+
}
|
|
97642
|
+
k[1]++;
|
|
97643
|
+
}
|
|
97644
|
+
let p = peekTable(k[0], res, meta, isTableArray ? 2 : 1);
|
|
97645
|
+
if (!p) {
|
|
97646
|
+
throw new TomlError("trying to redefine an already defined table or value", {
|
|
97647
|
+
toml,
|
|
97648
|
+
ptr
|
|
97649
|
+
});
|
|
97650
|
+
}
|
|
97651
|
+
m = p[2];
|
|
97652
|
+
tbl = p[1];
|
|
97653
|
+
ptr = k[1];
|
|
97654
|
+
} else {
|
|
97655
|
+
let k = parseKey(toml, ptr);
|
|
97656
|
+
let p = peekTable(k[0], tbl, m, 0);
|
|
97657
|
+
if (!p) {
|
|
97658
|
+
throw new TomlError("trying to redefine an already defined table or value", {
|
|
97659
|
+
toml,
|
|
97660
|
+
ptr
|
|
97661
|
+
});
|
|
97662
|
+
}
|
|
97663
|
+
let v = extractValue(toml, k[1], undefined, maxDepth, integersAsBigInt);
|
|
97664
|
+
p[1][p[0]] = v[0];
|
|
97665
|
+
ptr = v[1];
|
|
97666
|
+
}
|
|
97667
|
+
ptr = skipVoid(toml, ptr, true);
|
|
97668
|
+
if (toml[ptr] && toml[ptr] !== `
|
|
97669
|
+
` && toml[ptr] !== "\r") {
|
|
97670
|
+
throw new TomlError("each key-value declaration must be followed by an end-of-line", {
|
|
97671
|
+
toml,
|
|
97672
|
+
ptr
|
|
97673
|
+
});
|
|
97674
|
+
}
|
|
97675
|
+
ptr = skipVoid(toml, ptr);
|
|
97676
|
+
}
|
|
97677
|
+
return res;
|
|
97678
|
+
}
|
|
97679
|
+
|
|
97680
|
+
// node_modules/smol-toml/dist/stringify.js
|
|
97681
|
+
/*!
|
|
97682
|
+
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
97683
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
97684
|
+
*
|
|
97685
|
+
* Redistribution and use in source and binary forms, with or without
|
|
97686
|
+
* modification, are permitted provided that the following conditions are met:
|
|
97687
|
+
*
|
|
97688
|
+
* 1. Redistributions of source code must retain the above copyright notice, this
|
|
97689
|
+
* list of conditions and the following disclaimer.
|
|
97690
|
+
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
97691
|
+
* this list of conditions and the following disclaimer in the
|
|
97692
|
+
* documentation and/or other materials provided with the distribution.
|
|
97693
|
+
* 3. Neither the name of the copyright holder nor the names of its contributors
|
|
97694
|
+
* may be used to endorse or promote products derived from this software without
|
|
97695
|
+
* specific prior written permission.
|
|
97696
|
+
*
|
|
97697
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
97698
|
+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
97699
|
+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
97700
|
+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
97701
|
+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
97702
|
+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
97703
|
+
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
97704
|
+
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
97705
|
+
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
97706
|
+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
97707
|
+
*/
|
|
97708
|
+
var BARE_KEY = /^[a-z0-9-_]+$/i;
|
|
97709
|
+
function extendedTypeOf(obj) {
|
|
97710
|
+
let type = typeof obj;
|
|
97711
|
+
if (type === "object") {
|
|
97712
|
+
if (Array.isArray(obj))
|
|
97713
|
+
return "array";
|
|
97714
|
+
if (obj instanceof Date)
|
|
97715
|
+
return "date";
|
|
97716
|
+
}
|
|
97717
|
+
return type;
|
|
97718
|
+
}
|
|
97719
|
+
function isArrayOfTables(obj) {
|
|
97720
|
+
for (let i = 0;i < obj.length; i++) {
|
|
97721
|
+
if (extendedTypeOf(obj[i]) !== "object")
|
|
97722
|
+
return false;
|
|
97723
|
+
}
|
|
97724
|
+
return obj.length != 0;
|
|
97725
|
+
}
|
|
97726
|
+
function formatString(s) {
|
|
97727
|
+
return JSON.stringify(s).replace(/\x7f/g, "\\u007f");
|
|
97728
|
+
}
|
|
97729
|
+
function stringifyValue(val, type, depth, numberAsFloat) {
|
|
97730
|
+
if (depth === 0) {
|
|
97731
|
+
throw new Error("Could not stringify the object: maximum object depth exceeded");
|
|
97732
|
+
}
|
|
97733
|
+
if (type === "number") {
|
|
97734
|
+
if (isNaN(val))
|
|
97735
|
+
return "nan";
|
|
97736
|
+
if (val === Infinity)
|
|
97737
|
+
return "inf";
|
|
97738
|
+
if (val === -Infinity)
|
|
97739
|
+
return "-inf";
|
|
97740
|
+
if (numberAsFloat && Number.isInteger(val))
|
|
97741
|
+
return val.toFixed(1);
|
|
97742
|
+
return val.toString();
|
|
97743
|
+
}
|
|
97744
|
+
if (type === "bigint" || type === "boolean") {
|
|
97745
|
+
return val.toString();
|
|
97746
|
+
}
|
|
97747
|
+
if (type === "string") {
|
|
97748
|
+
return formatString(val);
|
|
97749
|
+
}
|
|
97750
|
+
if (type === "date") {
|
|
97751
|
+
if (isNaN(val.getTime())) {
|
|
97752
|
+
throw new TypeError("cannot serialize invalid date");
|
|
97753
|
+
}
|
|
97754
|
+
return val.toISOString();
|
|
97755
|
+
}
|
|
97756
|
+
if (type === "object") {
|
|
97757
|
+
return stringifyInlineTable(val, depth, numberAsFloat);
|
|
97758
|
+
}
|
|
97759
|
+
if (type === "array") {
|
|
97760
|
+
return stringifyArray(val, depth, numberAsFloat);
|
|
97761
|
+
}
|
|
97762
|
+
}
|
|
97763
|
+
function stringifyInlineTable(obj, depth, numberAsFloat) {
|
|
97764
|
+
let keys = Object.keys(obj);
|
|
97765
|
+
if (keys.length === 0)
|
|
97766
|
+
return "{}";
|
|
97767
|
+
let res = "{ ";
|
|
97768
|
+
for (let i = 0;i < keys.length; i++) {
|
|
97769
|
+
let k = keys[i];
|
|
97770
|
+
if (i)
|
|
97771
|
+
res += ", ";
|
|
97772
|
+
res += BARE_KEY.test(k) ? k : formatString(k);
|
|
97773
|
+
res += " = ";
|
|
97774
|
+
res += stringifyValue(obj[k], extendedTypeOf(obj[k]), depth - 1, numberAsFloat);
|
|
97775
|
+
}
|
|
97776
|
+
return res + " }";
|
|
97777
|
+
}
|
|
97778
|
+
function stringifyArray(array, depth, numberAsFloat) {
|
|
97779
|
+
if (array.length === 0)
|
|
97780
|
+
return "[]";
|
|
97781
|
+
let res = "[ ";
|
|
97782
|
+
for (let i = 0;i < array.length; i++) {
|
|
97783
|
+
if (i)
|
|
97784
|
+
res += ", ";
|
|
97785
|
+
if (array[i] === null || array[i] === undefined) {
|
|
97786
|
+
throw new TypeError("arrays cannot contain null or undefined values");
|
|
97787
|
+
}
|
|
97788
|
+
res += stringifyValue(array[i], extendedTypeOf(array[i]), depth - 1, numberAsFloat);
|
|
97789
|
+
}
|
|
97790
|
+
return res + " ]";
|
|
97791
|
+
}
|
|
97792
|
+
function stringifyArrayTable(array, key, depth, numberAsFloat) {
|
|
97793
|
+
if (depth === 0) {
|
|
97794
|
+
throw new Error("Could not stringify the object: maximum object depth exceeded");
|
|
97795
|
+
}
|
|
97796
|
+
let res = "";
|
|
97797
|
+
for (let i = 0;i < array.length; i++) {
|
|
97798
|
+
res += `${res && `
|
|
97799
|
+
`}[[${key}]]
|
|
97800
|
+
`;
|
|
97801
|
+
res += stringifyTable(0, array[i], key, depth, numberAsFloat);
|
|
97802
|
+
}
|
|
97803
|
+
return res;
|
|
97804
|
+
}
|
|
97805
|
+
function stringifyTable(tableKey, obj, prefix, depth, numberAsFloat) {
|
|
97806
|
+
if (depth === 0) {
|
|
97807
|
+
throw new Error("Could not stringify the object: maximum object depth exceeded");
|
|
97808
|
+
}
|
|
97809
|
+
let preamble = "";
|
|
97810
|
+
let tables = "";
|
|
97811
|
+
let keys = Object.keys(obj);
|
|
97812
|
+
for (let i = 0;i < keys.length; i++) {
|
|
97813
|
+
let k = keys[i];
|
|
97814
|
+
if (obj[k] !== null && obj[k] !== undefined) {
|
|
97815
|
+
let type = extendedTypeOf(obj[k]);
|
|
97816
|
+
if (type === "symbol" || type === "function") {
|
|
97817
|
+
throw new TypeError(`cannot serialize values of type '${type}'`);
|
|
97818
|
+
}
|
|
97819
|
+
let key = BARE_KEY.test(k) ? k : formatString(k);
|
|
97820
|
+
if (type === "array" && isArrayOfTables(obj[k])) {
|
|
97821
|
+
tables += (tables && `
|
|
97822
|
+
`) + stringifyArrayTable(obj[k], prefix ? `${prefix}.${key}` : key, depth - 1, numberAsFloat);
|
|
97823
|
+
} else if (type === "object") {
|
|
97824
|
+
let tblKey = prefix ? `${prefix}.${key}` : key;
|
|
97825
|
+
tables += (tables && `
|
|
97826
|
+
`) + stringifyTable(tblKey, obj[k], tblKey, depth - 1, numberAsFloat);
|
|
97827
|
+
} else {
|
|
97828
|
+
preamble += key;
|
|
97829
|
+
preamble += " = ";
|
|
97830
|
+
preamble += stringifyValue(obj[k], type, depth, numberAsFloat);
|
|
97831
|
+
preamble += `
|
|
97832
|
+
`;
|
|
97833
|
+
}
|
|
97834
|
+
}
|
|
97835
|
+
}
|
|
97836
|
+
if (tableKey && (preamble || !tables))
|
|
97837
|
+
preamble = preamble ? `[${tableKey}]
|
|
97838
|
+
${preamble}` : `[${tableKey}]`;
|
|
97839
|
+
return preamble && tables ? `${preamble}
|
|
97840
|
+
${tables}` : preamble || tables;
|
|
97841
|
+
}
|
|
97842
|
+
function stringify(obj, { maxDepth = 1000, numbersAsFloat = false } = {}) {
|
|
97843
|
+
if (extendedTypeOf(obj) !== "object") {
|
|
97844
|
+
throw new TypeError("stringify can only be called with an object");
|
|
97845
|
+
}
|
|
97846
|
+
let str2 = stringifyTable(0, obj, "", maxDepth, numbersAsFloat);
|
|
97847
|
+
if (str2[str2.length - 1] !== `
|
|
97848
|
+
`)
|
|
97849
|
+
return str2 + `
|
|
97850
|
+
`;
|
|
97851
|
+
return str2;
|
|
97852
|
+
}
|
|
97853
|
+
|
|
97854
|
+
// node_modules/smol-toml/dist/index.js
|
|
97855
|
+
/*!
|
|
97856
|
+
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
97857
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
97858
|
+
*
|
|
97859
|
+
* Redistribution and use in source and binary forms, with or without
|
|
97860
|
+
* modification, are permitted provided that the following conditions are met:
|
|
97861
|
+
*
|
|
97862
|
+
* 1. Redistributions of source code must retain the above copyright notice, this
|
|
97863
|
+
* list of conditions and the following disclaimer.
|
|
97864
|
+
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
97865
|
+
* this list of conditions and the following disclaimer in the
|
|
97866
|
+
* documentation and/or other materials provided with the distribution.
|
|
97867
|
+
* 3. Neither the name of the copyright holder nor the names of its contributors
|
|
97868
|
+
* may be used to endorse or promote products derived from this software without
|
|
97869
|
+
* specific prior written permission.
|
|
97870
|
+
*
|
|
97871
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
97872
|
+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
97873
|
+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
97874
|
+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
97875
|
+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
97876
|
+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
97877
|
+
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
97878
|
+
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
97879
|
+
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
97880
|
+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
97881
|
+
*/
|
|
97882
|
+
|
|
96767
97883
|
// src/sync/mcp/mcp.ts
|
|
96768
97884
|
var SERVER_NAME_SEPARATOR = "--";
|
|
96769
97885
|
var KEY_SEPARATOR = ".";
|
|
@@ -96831,24 +97947,40 @@ function deleteNestedValue(obj, key) {
|
|
|
96831
97947
|
}
|
|
96832
97948
|
}
|
|
96833
97949
|
}
|
|
96834
|
-
function
|
|
96835
|
-
|
|
97950
|
+
function resolveFormat(filePath, explicit) {
|
|
97951
|
+
if (explicit)
|
|
97952
|
+
return explicit;
|
|
97953
|
+
return filePath.endsWith(".toml") ? "toml" : "json";
|
|
97954
|
+
}
|
|
97955
|
+
function readConfigFile(options2) {
|
|
97956
|
+
const fullPath = join25(options2.projectRoot, options2.filePath);
|
|
96836
97957
|
if (!fs.exists(fullPath)) {
|
|
96837
97958
|
return {};
|
|
96838
97959
|
}
|
|
96839
97960
|
try {
|
|
96840
|
-
|
|
97961
|
+
const raw2 = fs.readFile(fullPath);
|
|
97962
|
+
const format = resolveFormat(options2.filePath, options2.format);
|
|
97963
|
+
if (format === "toml") {
|
|
97964
|
+
return parse6(raw2);
|
|
97965
|
+
}
|
|
97966
|
+
return JSON.parse(raw2);
|
|
96841
97967
|
} catch {
|
|
96842
97968
|
return {};
|
|
96843
97969
|
}
|
|
96844
97970
|
}
|
|
96845
|
-
function writeConfigFile(
|
|
96846
|
-
const fullPath = join25(projectRoot,
|
|
97971
|
+
function writeConfigFile(options2) {
|
|
97972
|
+
const fullPath = join25(options2.projectRoot, options2.filePath);
|
|
96847
97973
|
const dir = dirname8(fullPath);
|
|
96848
97974
|
if (!fs.exists(dir)) {
|
|
96849
97975
|
fs.mkdir(dir, { recursive: true });
|
|
96850
97976
|
}
|
|
96851
|
-
|
|
97977
|
+
const format = resolveFormat(options2.filePath, options2.format);
|
|
97978
|
+
if (format === "toml") {
|
|
97979
|
+
fs.writeFile(fullPath, stringify(options2.data) + `
|
|
97980
|
+
`);
|
|
97981
|
+
return;
|
|
97982
|
+
}
|
|
97983
|
+
fs.writeFile(fullPath, JSON.stringify(options2.data, null, 2) + `
|
|
96852
97984
|
`);
|
|
96853
97985
|
}
|
|
96854
97986
|
function resolveExecutablePath(projectRoot, artifactId, content) {
|
|
@@ -96887,9 +98019,7 @@ function installMcps(projectRoot, artifactId, mcpFiles, activeTargets) {
|
|
|
96887
98019
|
return result;
|
|
96888
98020
|
}
|
|
96889
98021
|
for (const [targetId, mcpConfig] of targetConfigs) {
|
|
96890
|
-
|
|
96891
|
-
continue;
|
|
96892
|
-
const configData = readConfigFile(projectRoot, mcpConfig.configFile);
|
|
98022
|
+
const configData = readConfigFile({ projectRoot, filePath: mcpConfig.configFile, format: mcpConfig.format });
|
|
96893
98023
|
const servers = getNestedValue(configData, mcpConfig.serverKey) ?? {};
|
|
96894
98024
|
for (const serverName of Object.keys(servers)) {
|
|
96895
98025
|
if (isOwnedByArtifact(serverName, artifactId)) {
|
|
@@ -96903,7 +98033,7 @@ function installMcps(projectRoot, artifactId, mcpFiles, activeTargets) {
|
|
|
96903
98033
|
servers[serverName] = mcpConfig.transform(serverName, content, executablePath);
|
|
96904
98034
|
}
|
|
96905
98035
|
setNestedValue(configData, mcpConfig.serverKey, servers);
|
|
96906
|
-
writeConfigFile(projectRoot, mcpConfig.configFile, configData);
|
|
98036
|
+
writeConfigFile({ projectRoot, filePath: mcpConfig.configFile, data: configData, format: mcpConfig.format });
|
|
96907
98037
|
result.targets.push(targetId);
|
|
96908
98038
|
result.installed += mcpFiles.length;
|
|
96909
98039
|
}
|
|
@@ -96913,9 +98043,7 @@ function uninstallMcps(projectRoot, artifactId, activeTargets) {
|
|
|
96913
98043
|
let removedCount = 0;
|
|
96914
98044
|
const targetConfigs = collectTargetConfigs(activeTargets);
|
|
96915
98045
|
for (const [_targetId, mcpConfig] of targetConfigs) {
|
|
96916
|
-
|
|
96917
|
-
continue;
|
|
96918
|
-
const configData = readConfigFile(projectRoot, mcpConfig.configFile);
|
|
98046
|
+
const configData = readConfigFile({ projectRoot, filePath: mcpConfig.configFile, format: mcpConfig.format });
|
|
96919
98047
|
const servers = getNestedValue(configData, mcpConfig.serverKey);
|
|
96920
98048
|
if (!servers)
|
|
96921
98049
|
continue;
|
|
@@ -96933,7 +98061,7 @@ function uninstallMcps(projectRoot, artifactId, activeTargets) {
|
|
|
96933
98061
|
} else {
|
|
96934
98062
|
deleteNestedValue(configData, mcpConfig.serverKey);
|
|
96935
98063
|
}
|
|
96936
|
-
writeConfigFile(projectRoot, mcpConfig.configFile, configData);
|
|
98064
|
+
writeConfigFile({ projectRoot, filePath: mcpConfig.configFile, data: configData, format: mcpConfig.format });
|
|
96937
98065
|
}
|
|
96938
98066
|
}
|
|
96939
98067
|
return removedCount;
|
|
@@ -98067,8 +99195,8 @@ function resolveRegistry3(scope, localConfig) {
|
|
|
98067
99195
|
}
|
|
98068
99196
|
|
|
98069
99197
|
// node_modules/@supabase/supabase-js/dist/index.mjs
|
|
98070
|
-
var
|
|
98071
|
-
__export(
|
|
99198
|
+
var exports_dist4 = {};
|
|
99199
|
+
__export(exports_dist4, {
|
|
98072
99200
|
createClient: () => createClient,
|
|
98073
99201
|
SupabaseClient: () => SupabaseClient,
|
|
98074
99202
|
PostgrestError: () => PostgrestError,
|
|
@@ -98081,8 +99209,8 @@ __export(exports_dist3, {
|
|
|
98081
99209
|
var import_functions_js = __toESM(require_main(), 1);
|
|
98082
99210
|
|
|
98083
99211
|
// node_modules/@supabase/postgrest-js/dist/index.mjs
|
|
98084
|
-
var
|
|
98085
|
-
__export(
|
|
99212
|
+
var exports_dist2 = {};
|
|
99213
|
+
__export(exports_dist2, {
|
|
98086
99214
|
default: () => src_default,
|
|
98087
99215
|
PostgrestTransformBuilder: () => PostgrestTransformBuilder,
|
|
98088
99216
|
PostgrestQueryBuilder: () => PostgrestQueryBuilder,
|
|
@@ -98691,8 +99819,8 @@ var src_default = {
|
|
|
98691
99819
|
var import_realtime_js = __toESM(require_main2(), 1);
|
|
98692
99820
|
|
|
98693
99821
|
// node_modules/@supabase/storage-js/dist/index.mjs
|
|
98694
|
-
var
|
|
98695
|
-
__export(
|
|
99822
|
+
var exports_dist3 = {};
|
|
99823
|
+
__export(exports_dist3, {
|
|
98696
99824
|
isStorageVectorsError: () => isStorageVectorsError,
|
|
98697
99825
|
isStorageError: () => isStorageError,
|
|
98698
99826
|
VectorIndexScope: () => VectorIndexScope,
|
|
@@ -99989,8 +101117,8 @@ var StorageClient = class extends StorageBucketApi {
|
|
|
99989
101117
|
|
|
99990
101118
|
// node_modules/@supabase/supabase-js/dist/index.mjs
|
|
99991
101119
|
var import_auth_js = __toESM(require_main3(), 1);
|
|
99992
|
-
__reExport(
|
|
99993
|
-
__reExport(
|
|
101120
|
+
__reExport(exports_dist4, __toESM(require_main2(), 1));
|
|
101121
|
+
__reExport(exports_dist4, __toESM(require_main3(), 1));
|
|
99994
101122
|
var version2 = "2.93.3";
|
|
99995
101123
|
var JS_ENV = "";
|
|
99996
101124
|
if (typeof Deno !== "undefined")
|
|
@@ -102549,7 +103677,7 @@ var whoamiCommand = new Command("whoami").description("Show current user").actio
|
|
|
102549
103677
|
// package.json
|
|
102550
103678
|
var package_default = {
|
|
102551
103679
|
name: "@grekt/cli",
|
|
102552
|
-
version: "6.
|
|
103680
|
+
version: "6.36.0",
|
|
102553
103681
|
description: "AI tools versioned, synced, and shared across tools and teams",
|
|
102554
103682
|
type: "module",
|
|
102555
103683
|
bin: {
|
|
@@ -102593,6 +103721,7 @@ var package_default = {
|
|
|
102593
103721
|
"fast-glob": "^3.3.3",
|
|
102594
103722
|
"gray-matter": "^4.0.3",
|
|
102595
103723
|
ora: "^8.1.1",
|
|
103724
|
+
"smol-toml": "^1.6.0",
|
|
102596
103725
|
tar: "^7.4.0",
|
|
102597
103726
|
yaml: "^2.6.1",
|
|
102598
103727
|
zod: "^3.24.1"
|