@cloudflare/vitest-plugin 1.1.12 → 1.2.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/pool/index.d.mts +14 -4
- package/dist/pool/index.mjs +1004 -290
- package/dist/pool/index.mjs.map +1 -1
- package/package.json +9 -9
- package/types/cloudflare-test.d.ts +2 -3
package/dist/pool/index.mjs
CHANGED
|
@@ -324,7 +324,7 @@ function createFatalError$1(message, isJson, options) {
|
|
|
324
324
|
__name$3(createFatalError$1, "createFatalError");
|
|
325
325
|
|
|
326
326
|
//#endregion
|
|
327
|
-
//#region ../workers-utils/dist/chunk-
|
|
327
|
+
//#region ../workers-utils/dist/chunk-JTB7VJSC.mjs
|
|
328
328
|
function hasKnownExportType(entry) {
|
|
329
329
|
const type = entry?.type;
|
|
330
330
|
return type === "durable-object" || type === "worker";
|
|
@@ -351,7 +351,6 @@ function hasDurableObjectExports(exports$1) {
|
|
|
351
351
|
return Object.keys(getDurableObjectExports(exports$1)).length > 0;
|
|
352
352
|
}
|
|
353
353
|
__name$3(hasDurableObjectExports, "hasDurableObjectExports");
|
|
354
|
-
var CONTAINER_IMAGES_BINDING = "EXPERIMENTAL_CLOUDFLARE_CONTAINER_IMAGES";
|
|
355
354
|
function isDurableObjectContainerApp(container) {
|
|
356
355
|
return container.scheduling_policy === "durable_object";
|
|
357
356
|
}
|
|
@@ -2802,8 +2801,8 @@ function formatConfigSnippet(snippet, configPath, formatted = true) {
|
|
|
2802
2801
|
__name$3(formatConfigSnippet, "formatConfigSnippet");
|
|
2803
2802
|
|
|
2804
2803
|
//#endregion
|
|
2805
|
-
//#region ../workers-utils/dist/chunk-
|
|
2806
|
-
var DEFAULT_COMPAT_DATE = "2026-09-
|
|
2804
|
+
//#region ../workers-utils/dist/chunk-4PNP2TCS.mjs
|
|
2805
|
+
var DEFAULT_COMPAT_DATE = "2026-09-21";
|
|
2807
2806
|
function assertNever(_value) {}
|
|
2808
2807
|
__name$3(assertNever, "assertNever");
|
|
2809
2808
|
function mapWorkerMetadataBindings(bindings) {
|
|
@@ -26554,11 +26553,11 @@ var require_ci_info$1 = __commonJS$1({ "../../node_modules/.pnpm/ci-info@4.4.0/n
|
|
|
26554
26553
|
var require_command_exists$2 = __commonJS$1({ "../../node_modules/.pnpm/command-exists@1.2.9/node_modules/command-exists/lib/command-exists.js"(exports$1, module$1) {
|
|
26555
26554
|
var exec$3 = __require("child_process").exec;
|
|
26556
26555
|
var execSync$1 = __require("child_process").execSync;
|
|
26557
|
-
var
|
|
26558
|
-
var
|
|
26559
|
-
var access$1 =
|
|
26560
|
-
var accessSync2 =
|
|
26561
|
-
var constants2 =
|
|
26556
|
+
var fs4 = __require("fs");
|
|
26557
|
+
var path6 = __require("path");
|
|
26558
|
+
var access$1 = fs4.access;
|
|
26559
|
+
var accessSync2 = fs4.accessSync;
|
|
26560
|
+
var constants2 = fs4.constants || fs4;
|
|
26562
26561
|
var isUsingWindows$1 = process.platform == "win32";
|
|
26563
26562
|
var fileNotExists$1 = /* @__PURE__ */ __name$3(function(commandName, callback) {
|
|
26564
26563
|
access$1(commandName, constants2.F_OK, function(err) {
|
|
@@ -26632,8 +26631,8 @@ var require_command_exists$2 = __commonJS$1({ "../../node_modules/.pnpm/command-
|
|
|
26632
26631
|
}, "cleanInput");
|
|
26633
26632
|
if (isUsingWindows$1) cleanInput$1 = /* @__PURE__ */ __name$3(function(s) {
|
|
26634
26633
|
if (/[\\]/.test(s)) {
|
|
26635
|
-
var dirname4 = "\"" +
|
|
26636
|
-
var basename2 = "\"" +
|
|
26634
|
+
var dirname4 = "\"" + path6.dirname(s) + "\"";
|
|
26635
|
+
var basename2 = "\"" + path6.basename(s) + "\"";
|
|
26637
26636
|
return dirname4 + ":" + basename2;
|
|
26638
26637
|
}
|
|
26639
26638
|
return "\"" + s + "\"";
|
|
@@ -26854,9 +26853,9 @@ var require_strip_json_comments = __commonJS$1({ "../../node_modules/.pnpm/strip
|
|
|
26854
26853
|
};
|
|
26855
26854
|
} });
|
|
26856
26855
|
var require_utils = __commonJS$1({ "../../node_modules/.pnpm/rc@1.2.8/node_modules/rc/lib/utils.js"(exports$1) {
|
|
26857
|
-
var
|
|
26856
|
+
var fs4 = __require("fs");
|
|
26858
26857
|
var ini = require_ini();
|
|
26859
|
-
var
|
|
26858
|
+
var path6 = __require("path");
|
|
26860
26859
|
var stripJsonComments = require_strip_json_comments();
|
|
26861
26860
|
var parse3$1 = exports$1.parse = function(content) {
|
|
26862
26861
|
if (/^\s*{/.test(content)) return JSON.parse(stripJsonComments(content));
|
|
@@ -26867,9 +26866,9 @@ var require_utils = __commonJS$1({ "../../node_modules/.pnpm/rc@1.2.8/node_modul
|
|
|
26867
26866
|
return arg != null;
|
|
26868
26867
|
});
|
|
26869
26868
|
for (var i in args) if ("string" !== typeof args[i]) return;
|
|
26870
|
-
var file3 =
|
|
26869
|
+
var file3 = path6.join.apply(null, args);
|
|
26871
26870
|
try {
|
|
26872
|
-
return
|
|
26871
|
+
return fs4.readFileSync(file3, "utf-8");
|
|
26873
26872
|
} catch (err) {
|
|
26874
26873
|
return;
|
|
26875
26874
|
}
|
|
@@ -26897,14 +26896,14 @@ var require_utils = __commonJS$1({ "../../node_modules/.pnpm/rc@1.2.8/node_modul
|
|
|
26897
26896
|
return obj;
|
|
26898
26897
|
};
|
|
26899
26898
|
exports$1.find = function() {
|
|
26900
|
-
var rel =
|
|
26899
|
+
var rel = path6.join.apply(null, [].slice.call(arguments));
|
|
26901
26900
|
function find2(start, rel2) {
|
|
26902
|
-
var file3 =
|
|
26901
|
+
var file3 = path6.join(start, rel2);
|
|
26903
26902
|
try {
|
|
26904
|
-
|
|
26903
|
+
fs4.statSync(file3);
|
|
26905
26904
|
return file3;
|
|
26906
26905
|
} catch (err) {
|
|
26907
|
-
if (
|
|
26906
|
+
if (path6.dirname(start) !== start) return find2(path6.dirname(start), rel2);
|
|
26908
26907
|
}
|
|
26909
26908
|
}
|
|
26910
26909
|
__name$3(find2, "find");
|
|
@@ -27294,8 +27293,8 @@ var require_registry_auth_token = __commonJS$1({ "../../node_modules/.pnpm/regis
|
|
|
27294
27293
|
};
|
|
27295
27294
|
}
|
|
27296
27295
|
__name$3(getLegacyAuthInfo, "getLegacyAuthInfo");
|
|
27297
|
-
function normalizePath$1(
|
|
27298
|
-
return
|
|
27296
|
+
function normalizePath$1(path6) {
|
|
27297
|
+
return path6[path6.length - 1] === "/" ? path6 : path6 + "/";
|
|
27299
27298
|
}
|
|
27300
27299
|
__name$3(normalizePath$1, "normalizePath");
|
|
27301
27300
|
function getAuthInfoForUrl(regUrl, npmrc) {
|
|
@@ -27332,24 +27331,24 @@ var require_registry_auth_token = __commonJS$1({ "../../node_modules/.pnpm/regis
|
|
|
27332
27331
|
var require_update_check = __commonJS$1({ "../../node_modules/.pnpm/update-check@1.5.4/node_modules/update-check/index.js"(exports$1, module$1) {
|
|
27333
27332
|
var { URL: URL2 } = __require("url");
|
|
27334
27333
|
var { join: join3 } = __require("path");
|
|
27335
|
-
var
|
|
27334
|
+
var fs4 = __require("fs");
|
|
27336
27335
|
var { promisify: promisify$3 } = __require("util");
|
|
27337
27336
|
var { tmpdir } = __require("os");
|
|
27338
27337
|
var registryUrl = require_registry_url();
|
|
27339
|
-
var writeFile$1 = promisify$3(
|
|
27340
|
-
var mkdir$1 = promisify$3(
|
|
27341
|
-
var readFile$1 = promisify$3(
|
|
27338
|
+
var writeFile$1 = promisify$3(fs4.writeFile);
|
|
27339
|
+
var mkdir$1 = promisify$3(fs4.mkdir);
|
|
27340
|
+
var readFile$1 = promisify$3(fs4.readFile);
|
|
27342
27341
|
var compareVersions = /* @__PURE__ */ __name$3((a, b) => a.localeCompare(b, "en-US", { numeric: true }), "compareVersions");
|
|
27343
27342
|
var encode3 = /* @__PURE__ */ __name$3((value) => encodeURIComponent(value).replace(/^%40/, "@"), "encode");
|
|
27344
27343
|
var getFile = /* @__PURE__ */ __name$3(async (details, distTag) => {
|
|
27345
27344
|
const subDir = join3(tmpdir(), "update-check");
|
|
27346
|
-
if (!
|
|
27345
|
+
if (!fs4.existsSync(subDir)) await mkdir$1(subDir);
|
|
27347
27346
|
let name = `${details.name}-${distTag}.json`;
|
|
27348
27347
|
if (details.scope) name = `${details.scope}-${name}`;
|
|
27349
27348
|
return join3(subDir, name);
|
|
27350
27349
|
}, "getFile");
|
|
27351
27350
|
var evaluateCache = /* @__PURE__ */ __name$3(async (file2, time3, interval) => {
|
|
27352
|
-
if (
|
|
27351
|
+
if (fs4.existsSync(file2)) {
|
|
27353
27352
|
const content = await readFile$1(file2, "utf8");
|
|
27354
27353
|
const { lastUpdate, latest } = JSON.parse(content);
|
|
27355
27354
|
if (lastUpdate + interval > time3) return {
|
|
@@ -27451,6 +27450,700 @@ var require_update_check = __commonJS$1({ "../../node_modules/.pnpm/update-check
|
|
|
27451
27450
|
return null;
|
|
27452
27451
|
};
|
|
27453
27452
|
} });
|
|
27453
|
+
var require_path = __commonJS$1({ "../../node_modules/.pnpm/minimatch@5.1.6/node_modules/minimatch/lib/path.js"(exports$1, module$1) {
|
|
27454
|
+
module$1.exports = typeof process === "object" && process && process.platform === "win32" ? { sep: "\\" } : { sep: "/" };
|
|
27455
|
+
} });
|
|
27456
|
+
var require_balanced_match = __commonJS$1({ "../../node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/index.js"(exports$1, module$1) {
|
|
27457
|
+
module$1.exports = balanced;
|
|
27458
|
+
function balanced(a, b, str) {
|
|
27459
|
+
if (a instanceof RegExp) a = maybeMatch(a, str);
|
|
27460
|
+
if (b instanceof RegExp) b = maybeMatch(b, str);
|
|
27461
|
+
var r2 = range(a, b, str);
|
|
27462
|
+
return r2 && {
|
|
27463
|
+
start: r2[0],
|
|
27464
|
+
end: r2[1],
|
|
27465
|
+
pre: str.slice(0, r2[0]),
|
|
27466
|
+
body: str.slice(r2[0] + a.length, r2[1]),
|
|
27467
|
+
post: str.slice(r2[1] + b.length)
|
|
27468
|
+
};
|
|
27469
|
+
}
|
|
27470
|
+
__name$3(balanced, "balanced");
|
|
27471
|
+
function maybeMatch(reg, str) {
|
|
27472
|
+
var m = str.match(reg);
|
|
27473
|
+
return m ? m[0] : null;
|
|
27474
|
+
}
|
|
27475
|
+
__name$3(maybeMatch, "maybeMatch");
|
|
27476
|
+
balanced.range = range;
|
|
27477
|
+
function range(a, b, str) {
|
|
27478
|
+
var begs, beg, left, right, result;
|
|
27479
|
+
var ai = str.indexOf(a);
|
|
27480
|
+
var bi = str.indexOf(b, ai + 1);
|
|
27481
|
+
var i = ai;
|
|
27482
|
+
if (ai >= 0 && bi > 0) {
|
|
27483
|
+
if (a === b) return [ai, bi];
|
|
27484
|
+
begs = [];
|
|
27485
|
+
left = str.length;
|
|
27486
|
+
while (i >= 0 && !result) {
|
|
27487
|
+
if (i == ai) {
|
|
27488
|
+
begs.push(i);
|
|
27489
|
+
ai = str.indexOf(a, i + 1);
|
|
27490
|
+
} else if (begs.length == 1) result = [begs.pop(), bi];
|
|
27491
|
+
else {
|
|
27492
|
+
beg = begs.pop();
|
|
27493
|
+
if (beg < left) {
|
|
27494
|
+
left = beg;
|
|
27495
|
+
right = bi;
|
|
27496
|
+
}
|
|
27497
|
+
bi = str.indexOf(b, i + 1);
|
|
27498
|
+
}
|
|
27499
|
+
i = ai < bi && ai >= 0 ? ai : bi;
|
|
27500
|
+
}
|
|
27501
|
+
if (begs.length) result = [left, right];
|
|
27502
|
+
}
|
|
27503
|
+
return result;
|
|
27504
|
+
}
|
|
27505
|
+
__name$3(range, "range");
|
|
27506
|
+
} });
|
|
27507
|
+
var require_brace_expansion = __commonJS$1({ "../../node_modules/.pnpm/brace-expansion@2.0.1/node_modules/brace-expansion/index.js"(exports$1, module$1) {
|
|
27508
|
+
var balanced = require_balanced_match();
|
|
27509
|
+
module$1.exports = expandTop;
|
|
27510
|
+
var escSlash = "\0SLASH" + Math.random() + "\0";
|
|
27511
|
+
var escOpen = "\0OPEN" + Math.random() + "\0";
|
|
27512
|
+
var escClose = "\0CLOSE" + Math.random() + "\0";
|
|
27513
|
+
var escComma = "\0COMMA" + Math.random() + "\0";
|
|
27514
|
+
var escPeriod = "\0PERIOD" + Math.random() + "\0";
|
|
27515
|
+
function numeric$1(str) {
|
|
27516
|
+
return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0);
|
|
27517
|
+
}
|
|
27518
|
+
__name$3(numeric$1, "numeric");
|
|
27519
|
+
function escapeBraces(str) {
|
|
27520
|
+
return str.split("\\\\").join(escSlash).split("\\{").join(escOpen).split("\\}").join(escClose).split("\\,").join(escComma).split("\\.").join(escPeriod);
|
|
27521
|
+
}
|
|
27522
|
+
__name$3(escapeBraces, "escapeBraces");
|
|
27523
|
+
function unescapeBraces(str) {
|
|
27524
|
+
return str.split(escSlash).join("\\").split(escOpen).join("{").split(escClose).join("}").split(escComma).join(",").split(escPeriod).join(".");
|
|
27525
|
+
}
|
|
27526
|
+
__name$3(unescapeBraces, "unescapeBraces");
|
|
27527
|
+
function parseCommaParts(str) {
|
|
27528
|
+
if (!str) return [""];
|
|
27529
|
+
var parts = [];
|
|
27530
|
+
var m = balanced("{", "}", str);
|
|
27531
|
+
if (!m) return str.split(",");
|
|
27532
|
+
var pre = m.pre;
|
|
27533
|
+
var body = m.body;
|
|
27534
|
+
var post = m.post;
|
|
27535
|
+
var p$1 = pre.split(",");
|
|
27536
|
+
p$1[p$1.length - 1] += "{" + body + "}";
|
|
27537
|
+
var postParts = parseCommaParts(post);
|
|
27538
|
+
if (post.length) {
|
|
27539
|
+
p$1[p$1.length - 1] += postParts.shift();
|
|
27540
|
+
p$1.push.apply(p$1, postParts);
|
|
27541
|
+
}
|
|
27542
|
+
parts.push.apply(parts, p$1);
|
|
27543
|
+
return parts;
|
|
27544
|
+
}
|
|
27545
|
+
__name$3(parseCommaParts, "parseCommaParts");
|
|
27546
|
+
function expandTop(str) {
|
|
27547
|
+
if (!str) return [];
|
|
27548
|
+
if (str.substr(0, 2) === "{}") str = "\\{\\}" + str.substr(2);
|
|
27549
|
+
return expand(escapeBraces(str), true).map(unescapeBraces);
|
|
27550
|
+
}
|
|
27551
|
+
__name$3(expandTop, "expandTop");
|
|
27552
|
+
function embrace(str) {
|
|
27553
|
+
return "{" + str + "}";
|
|
27554
|
+
}
|
|
27555
|
+
__name$3(embrace, "embrace");
|
|
27556
|
+
function isPadded(el) {
|
|
27557
|
+
return /^-?0\d/.test(el);
|
|
27558
|
+
}
|
|
27559
|
+
__name$3(isPadded, "isPadded");
|
|
27560
|
+
function lte$2(i, y) {
|
|
27561
|
+
return i <= y;
|
|
27562
|
+
}
|
|
27563
|
+
__name$3(lte$2, "lte");
|
|
27564
|
+
function gte$2(i, y) {
|
|
27565
|
+
return i >= y;
|
|
27566
|
+
}
|
|
27567
|
+
__name$3(gte$2, "gte");
|
|
27568
|
+
function expand(str, isTop) {
|
|
27569
|
+
var expansions = [];
|
|
27570
|
+
var m = balanced("{", "}", str);
|
|
27571
|
+
if (!m) return [str];
|
|
27572
|
+
var pre = m.pre;
|
|
27573
|
+
var post = m.post.length ? expand(m.post, false) : [""];
|
|
27574
|
+
if (/\$$/.test(m.pre)) for (var k = 0; k < post.length; k++) {
|
|
27575
|
+
var expansion = pre + "{" + m.body + "}" + post[k];
|
|
27576
|
+
expansions.push(expansion);
|
|
27577
|
+
}
|
|
27578
|
+
else {
|
|
27579
|
+
var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
|
|
27580
|
+
var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
|
|
27581
|
+
var isSequence = isNumericSequence || isAlphaSequence;
|
|
27582
|
+
var isOptions = m.body.indexOf(",") >= 0;
|
|
27583
|
+
if (!isSequence && !isOptions) {
|
|
27584
|
+
if (m.post.match(/,.*\}/)) {
|
|
27585
|
+
str = m.pre + "{" + m.body + escClose + m.post;
|
|
27586
|
+
return expand(str);
|
|
27587
|
+
}
|
|
27588
|
+
return [str];
|
|
27589
|
+
}
|
|
27590
|
+
var n2;
|
|
27591
|
+
if (isSequence) n2 = m.body.split(/\.\./);
|
|
27592
|
+
else {
|
|
27593
|
+
n2 = parseCommaParts(m.body);
|
|
27594
|
+
if (n2.length === 1) {
|
|
27595
|
+
n2 = expand(n2[0], false).map(embrace);
|
|
27596
|
+
if (n2.length === 1) return post.map(function(p$1) {
|
|
27597
|
+
return m.pre + n2[0] + p$1;
|
|
27598
|
+
});
|
|
27599
|
+
}
|
|
27600
|
+
}
|
|
27601
|
+
var N;
|
|
27602
|
+
if (isSequence) {
|
|
27603
|
+
var x = numeric$1(n2[0]);
|
|
27604
|
+
var y = numeric$1(n2[1]);
|
|
27605
|
+
var width = Math.max(n2[0].length, n2[1].length);
|
|
27606
|
+
var incr = n2.length == 3 ? Math.abs(numeric$1(n2[2])) : 1;
|
|
27607
|
+
var test = lte$2;
|
|
27608
|
+
if (y < x) {
|
|
27609
|
+
incr *= -1;
|
|
27610
|
+
test = gte$2;
|
|
27611
|
+
}
|
|
27612
|
+
var pad = n2.some(isPadded);
|
|
27613
|
+
N = [];
|
|
27614
|
+
for (var i = x; test(i, y); i += incr) {
|
|
27615
|
+
var c$1;
|
|
27616
|
+
if (isAlphaSequence) {
|
|
27617
|
+
c$1 = String.fromCharCode(i);
|
|
27618
|
+
if (c$1 === "\\") c$1 = "";
|
|
27619
|
+
} else {
|
|
27620
|
+
c$1 = String(i);
|
|
27621
|
+
if (pad) {
|
|
27622
|
+
var need = width - c$1.length;
|
|
27623
|
+
if (need > 0) {
|
|
27624
|
+
var z2 = new Array(need + 1).join("0");
|
|
27625
|
+
if (i < 0) c$1 = "-" + z2 + c$1.slice(1);
|
|
27626
|
+
else c$1 = z2 + c$1;
|
|
27627
|
+
}
|
|
27628
|
+
}
|
|
27629
|
+
}
|
|
27630
|
+
N.push(c$1);
|
|
27631
|
+
}
|
|
27632
|
+
} else {
|
|
27633
|
+
N = [];
|
|
27634
|
+
for (var j$1 = 0; j$1 < n2.length; j$1++) N.push.apply(N, expand(n2[j$1], false));
|
|
27635
|
+
}
|
|
27636
|
+
for (var j$1 = 0; j$1 < N.length; j$1++) for (var k = 0; k < post.length; k++) {
|
|
27637
|
+
var expansion = pre + N[j$1] + post[k];
|
|
27638
|
+
if (!isTop || isSequence || expansion) expansions.push(expansion);
|
|
27639
|
+
}
|
|
27640
|
+
}
|
|
27641
|
+
return expansions;
|
|
27642
|
+
}
|
|
27643
|
+
__name$3(expand, "expand");
|
|
27644
|
+
} });
|
|
27645
|
+
var require_minimatch = __commonJS$1({ "../../node_modules/.pnpm/minimatch@5.1.6/node_modules/minimatch/minimatch.js"(exports$1, module$1) {
|
|
27646
|
+
var minimatch = module$1.exports = (p$1, pattern, options = {}) => {
|
|
27647
|
+
assertValidPattern(pattern);
|
|
27648
|
+
if (!options.nocomment && pattern.charAt(0) === "#") return false;
|
|
27649
|
+
return new Minimatch2(pattern, options).match(p$1);
|
|
27650
|
+
};
|
|
27651
|
+
module$1.exports = minimatch;
|
|
27652
|
+
var path6 = require_path();
|
|
27653
|
+
minimatch.sep = path6.sep;
|
|
27654
|
+
var GLOBSTAR = Symbol("globstar **");
|
|
27655
|
+
minimatch.GLOBSTAR = GLOBSTAR;
|
|
27656
|
+
var expand = require_brace_expansion();
|
|
27657
|
+
var plTypes = {
|
|
27658
|
+
"!": {
|
|
27659
|
+
open: "(?:(?!(?:",
|
|
27660
|
+
close: "))[^/]*?)"
|
|
27661
|
+
},
|
|
27662
|
+
"?": {
|
|
27663
|
+
open: "(?:",
|
|
27664
|
+
close: ")?"
|
|
27665
|
+
},
|
|
27666
|
+
"+": {
|
|
27667
|
+
open: "(?:",
|
|
27668
|
+
close: ")+"
|
|
27669
|
+
},
|
|
27670
|
+
"*": {
|
|
27671
|
+
open: "(?:",
|
|
27672
|
+
close: ")*"
|
|
27673
|
+
},
|
|
27674
|
+
"@": {
|
|
27675
|
+
open: "(?:",
|
|
27676
|
+
close: ")"
|
|
27677
|
+
}
|
|
27678
|
+
};
|
|
27679
|
+
var qmark = "[^/]";
|
|
27680
|
+
var star = qmark + "*?";
|
|
27681
|
+
var twoStarDot = "(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?";
|
|
27682
|
+
var twoStarNoDot = "(?:(?!(?:\\/|^)\\.).)*?";
|
|
27683
|
+
var charSet = /* @__PURE__ */ __name$3((s) => s.split("").reduce((set2, c$1) => {
|
|
27684
|
+
set2[c$1] = true;
|
|
27685
|
+
return set2;
|
|
27686
|
+
}, {}), "charSet");
|
|
27687
|
+
var reSpecials = charSet("().*{}+?[]^$\\!");
|
|
27688
|
+
var addPatternStartSet = charSet("[.(");
|
|
27689
|
+
var slashSplit = /\/+/;
|
|
27690
|
+
minimatch.filter = (pattern, options = {}) => (p$1, i, list) => minimatch(p$1, pattern, options);
|
|
27691
|
+
var ext = /* @__PURE__ */ __name$3((a, b = {}) => {
|
|
27692
|
+
const t2 = {};
|
|
27693
|
+
Object.keys(a).forEach((k) => t2[k] = a[k]);
|
|
27694
|
+
Object.keys(b).forEach((k) => t2[k] = b[k]);
|
|
27695
|
+
return t2;
|
|
27696
|
+
}, "ext");
|
|
27697
|
+
minimatch.defaults = (def) => {
|
|
27698
|
+
if (!def || typeof def !== "object" || !Object.keys(def).length) return minimatch;
|
|
27699
|
+
const orig = minimatch;
|
|
27700
|
+
const m = /* @__PURE__ */ __name$3((p$1, pattern, options) => orig(p$1, pattern, ext(def, options)), "m");
|
|
27701
|
+
m.Minimatch = class Minimatch extends orig.Minimatch {
|
|
27702
|
+
static {
|
|
27703
|
+
__name$3(this, "Minimatch");
|
|
27704
|
+
}
|
|
27705
|
+
constructor(pattern, options) {
|
|
27706
|
+
super(pattern, ext(def, options));
|
|
27707
|
+
}
|
|
27708
|
+
};
|
|
27709
|
+
m.Minimatch.defaults = (options) => orig.defaults(ext(def, options)).Minimatch;
|
|
27710
|
+
m.filter = (pattern, options) => orig.filter(pattern, ext(def, options));
|
|
27711
|
+
m.defaults = (options) => orig.defaults(ext(def, options));
|
|
27712
|
+
m.makeRe = (pattern, options) => orig.makeRe(pattern, ext(def, options));
|
|
27713
|
+
m.braceExpand = (pattern, options) => orig.braceExpand(pattern, ext(def, options));
|
|
27714
|
+
m.match = (list, pattern, options) => orig.match(list, pattern, ext(def, options));
|
|
27715
|
+
return m;
|
|
27716
|
+
};
|
|
27717
|
+
minimatch.braceExpand = (pattern, options) => braceExpand(pattern, options);
|
|
27718
|
+
var braceExpand = /* @__PURE__ */ __name$3((pattern, options = {}) => {
|
|
27719
|
+
assertValidPattern(pattern);
|
|
27720
|
+
if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) return [pattern];
|
|
27721
|
+
return expand(pattern);
|
|
27722
|
+
}, "braceExpand");
|
|
27723
|
+
var MAX_PATTERN_LENGTH = 1024 * 64;
|
|
27724
|
+
var assertValidPattern = /* @__PURE__ */ __name$3((pattern) => {
|
|
27725
|
+
if (typeof pattern !== "string") throw new TypeError("invalid pattern");
|
|
27726
|
+
if (pattern.length > MAX_PATTERN_LENGTH) throw new TypeError("pattern is too long");
|
|
27727
|
+
}, "assertValidPattern");
|
|
27728
|
+
var SUBPARSE = Symbol("subparse");
|
|
27729
|
+
minimatch.makeRe = (pattern, options) => new Minimatch2(pattern, options || {}).makeRe();
|
|
27730
|
+
minimatch.match = (list, pattern, options = {}) => {
|
|
27731
|
+
const mm = new Minimatch2(pattern, options);
|
|
27732
|
+
list = list.filter((f) => mm.match(f));
|
|
27733
|
+
if (mm.options.nonull && !list.length) list.push(pattern);
|
|
27734
|
+
return list;
|
|
27735
|
+
};
|
|
27736
|
+
var globUnescape = /* @__PURE__ */ __name$3((s) => s.replace(/\\(.)/g, "$1"), "globUnescape");
|
|
27737
|
+
var charUnescape = /* @__PURE__ */ __name$3((s) => s.replace(/\\([^-\]])/g, "$1"), "charUnescape");
|
|
27738
|
+
var regExpEscape = /* @__PURE__ */ __name$3((s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), "regExpEscape");
|
|
27739
|
+
var braExpEscape = /* @__PURE__ */ __name$3((s) => s.replace(/[[\]\\]/g, "\\$&"), "braExpEscape");
|
|
27740
|
+
var Minimatch2 = class {
|
|
27741
|
+
static {
|
|
27742
|
+
__name$3(this, "Minimatch");
|
|
27743
|
+
}
|
|
27744
|
+
constructor(pattern, options) {
|
|
27745
|
+
assertValidPattern(pattern);
|
|
27746
|
+
if (!options) options = {};
|
|
27747
|
+
this.options = options;
|
|
27748
|
+
this.set = [];
|
|
27749
|
+
this.pattern = pattern;
|
|
27750
|
+
this.windowsPathsNoEscape = !!options.windowsPathsNoEscape || options.allowWindowsEscape === false;
|
|
27751
|
+
if (this.windowsPathsNoEscape) this.pattern = this.pattern.replace(/\\/g, "/");
|
|
27752
|
+
this.regexp = null;
|
|
27753
|
+
this.negate = false;
|
|
27754
|
+
this.comment = false;
|
|
27755
|
+
this.empty = false;
|
|
27756
|
+
this.partial = !!options.partial;
|
|
27757
|
+
this.make();
|
|
27758
|
+
}
|
|
27759
|
+
debug() {}
|
|
27760
|
+
make() {
|
|
27761
|
+
const pattern = this.pattern;
|
|
27762
|
+
const options = this.options;
|
|
27763
|
+
if (!options.nocomment && pattern.charAt(0) === "#") {
|
|
27764
|
+
this.comment = true;
|
|
27765
|
+
return;
|
|
27766
|
+
}
|
|
27767
|
+
if (!pattern) {
|
|
27768
|
+
this.empty = true;
|
|
27769
|
+
return;
|
|
27770
|
+
}
|
|
27771
|
+
this.parseNegate();
|
|
27772
|
+
let set2 = this.globSet = this.braceExpand();
|
|
27773
|
+
if (options.debug) this.debug = (...args) => console.error(...args);
|
|
27774
|
+
this.debug(this.pattern, set2);
|
|
27775
|
+
set2 = this.globParts = set2.map((s) => s.split(slashSplit));
|
|
27776
|
+
this.debug(this.pattern, set2);
|
|
27777
|
+
set2 = set2.map((s, si, set3) => s.map(this.parse, this));
|
|
27778
|
+
this.debug(this.pattern, set2);
|
|
27779
|
+
set2 = set2.filter((s) => s.indexOf(false) === -1);
|
|
27780
|
+
this.debug(this.pattern, set2);
|
|
27781
|
+
this.set = set2;
|
|
27782
|
+
}
|
|
27783
|
+
parseNegate() {
|
|
27784
|
+
if (this.options.nonegate) return;
|
|
27785
|
+
const pattern = this.pattern;
|
|
27786
|
+
let negate = false;
|
|
27787
|
+
let negateOffset = 0;
|
|
27788
|
+
for (let i = 0; i < pattern.length && pattern.charAt(i) === "!"; i++) {
|
|
27789
|
+
negate = !negate;
|
|
27790
|
+
negateOffset++;
|
|
27791
|
+
}
|
|
27792
|
+
if (negateOffset) this.pattern = pattern.slice(negateOffset);
|
|
27793
|
+
this.negate = negate;
|
|
27794
|
+
}
|
|
27795
|
+
matchOne(file2, pattern, partial2) {
|
|
27796
|
+
var options = this.options;
|
|
27797
|
+
this.debug("matchOne", {
|
|
27798
|
+
"this": this,
|
|
27799
|
+
file: file2,
|
|
27800
|
+
pattern
|
|
27801
|
+
});
|
|
27802
|
+
this.debug("matchOne", file2.length, pattern.length);
|
|
27803
|
+
for (var fi = 0, pi = 0, fl = file2.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
|
|
27804
|
+
this.debug("matchOne loop");
|
|
27805
|
+
var p$1 = pattern[pi];
|
|
27806
|
+
var f = file2[fi];
|
|
27807
|
+
this.debug(pattern, p$1, f);
|
|
27808
|
+
if (p$1 === false) return false;
|
|
27809
|
+
if (p$1 === GLOBSTAR) {
|
|
27810
|
+
this.debug("GLOBSTAR", [
|
|
27811
|
+
pattern,
|
|
27812
|
+
p$1,
|
|
27813
|
+
f
|
|
27814
|
+
]);
|
|
27815
|
+
var fr = fi;
|
|
27816
|
+
var pr = pi + 1;
|
|
27817
|
+
if (pr === pl) {
|
|
27818
|
+
this.debug("** at the end");
|
|
27819
|
+
for (; fi < fl; fi++) if (file2[fi] === "." || file2[fi] === ".." || !options.dot && file2[fi].charAt(0) === ".") return false;
|
|
27820
|
+
return true;
|
|
27821
|
+
}
|
|
27822
|
+
while (fr < fl) {
|
|
27823
|
+
var swallowee = file2[fr];
|
|
27824
|
+
this.debug("\nglobstar while", file2, fr, pattern, pr, swallowee);
|
|
27825
|
+
if (this.matchOne(file2.slice(fr), pattern.slice(pr), partial2)) {
|
|
27826
|
+
this.debug("globstar found match!", fr, fl, swallowee);
|
|
27827
|
+
return true;
|
|
27828
|
+
} else {
|
|
27829
|
+
if (swallowee === "." || swallowee === ".." || !options.dot && swallowee.charAt(0) === ".") {
|
|
27830
|
+
this.debug("dot detected!", file2, fr, pattern, pr);
|
|
27831
|
+
break;
|
|
27832
|
+
}
|
|
27833
|
+
this.debug("globstar swallow a segment, and continue");
|
|
27834
|
+
fr++;
|
|
27835
|
+
}
|
|
27836
|
+
}
|
|
27837
|
+
if (partial2) {
|
|
27838
|
+
this.debug("\n>>> no match, partial?", file2, fr, pattern, pr);
|
|
27839
|
+
if (fr === fl) return true;
|
|
27840
|
+
}
|
|
27841
|
+
return false;
|
|
27842
|
+
}
|
|
27843
|
+
var hit;
|
|
27844
|
+
if (typeof p$1 === "string") {
|
|
27845
|
+
hit = f === p$1;
|
|
27846
|
+
this.debug("string match", p$1, f, hit);
|
|
27847
|
+
} else {
|
|
27848
|
+
hit = f.match(p$1);
|
|
27849
|
+
this.debug("pattern match", p$1, f, hit);
|
|
27850
|
+
}
|
|
27851
|
+
if (!hit) return false;
|
|
27852
|
+
}
|
|
27853
|
+
if (fi === fl && pi === pl) return true;
|
|
27854
|
+
else if (fi === fl) return partial2;
|
|
27855
|
+
else if (pi === pl) return fi === fl - 1 && file2[fi] === "";
|
|
27856
|
+
throw new Error("wtf?");
|
|
27857
|
+
}
|
|
27858
|
+
braceExpand() {
|
|
27859
|
+
return braceExpand(this.pattern, this.options);
|
|
27860
|
+
}
|
|
27861
|
+
parse(pattern, isSub) {
|
|
27862
|
+
assertValidPattern(pattern);
|
|
27863
|
+
const options = this.options;
|
|
27864
|
+
if (pattern === "**") if (!options.noglobstar) return GLOBSTAR;
|
|
27865
|
+
else pattern = "*";
|
|
27866
|
+
if (pattern === "") return "";
|
|
27867
|
+
let re$4 = "";
|
|
27868
|
+
let hasMagic = false;
|
|
27869
|
+
let escaping = false;
|
|
27870
|
+
const patternListStack = [];
|
|
27871
|
+
const negativeLists = [];
|
|
27872
|
+
let stateChar;
|
|
27873
|
+
let inClass = false;
|
|
27874
|
+
let reClassStart = -1;
|
|
27875
|
+
let classStart = -1;
|
|
27876
|
+
let cs;
|
|
27877
|
+
let pl;
|
|
27878
|
+
let sp;
|
|
27879
|
+
let dotTravAllowed = pattern.charAt(0) === ".";
|
|
27880
|
+
let dotFileAllowed = options.dot || dotTravAllowed;
|
|
27881
|
+
const patternStart = /* @__PURE__ */ __name$3(() => dotTravAllowed ? "" : dotFileAllowed ? "(?!(?:^|\\/)\\.{1,2}(?:$|\\/))" : "(?!\\.)", "patternStart");
|
|
27882
|
+
const subPatternStart = /* @__PURE__ */ __name$3((p$1) => p$1.charAt(0) === "." ? "" : options.dot ? "(?!(?:^|\\/)\\.{1,2}(?:$|\\/))" : "(?!\\.)", "subPatternStart");
|
|
27883
|
+
const clearStateChar = /* @__PURE__ */ __name$3(() => {
|
|
27884
|
+
if (stateChar) {
|
|
27885
|
+
switch (stateChar) {
|
|
27886
|
+
case "*":
|
|
27887
|
+
re$4 += star;
|
|
27888
|
+
hasMagic = true;
|
|
27889
|
+
break;
|
|
27890
|
+
case "?":
|
|
27891
|
+
re$4 += qmark;
|
|
27892
|
+
hasMagic = true;
|
|
27893
|
+
break;
|
|
27894
|
+
default:
|
|
27895
|
+
re$4 += "\\" + stateChar;
|
|
27896
|
+
break;
|
|
27897
|
+
}
|
|
27898
|
+
this.debug("clearStateChar %j %j", stateChar, re$4);
|
|
27899
|
+
stateChar = false;
|
|
27900
|
+
}
|
|
27901
|
+
}, "clearStateChar");
|
|
27902
|
+
for (let i = 0, c$1; i < pattern.length && (c$1 = pattern.charAt(i)); i++) {
|
|
27903
|
+
this.debug("%s %s %s %j", pattern, i, re$4, c$1);
|
|
27904
|
+
if (escaping) {
|
|
27905
|
+
if (c$1 === "/") return false;
|
|
27906
|
+
if (reSpecials[c$1]) re$4 += "\\";
|
|
27907
|
+
re$4 += c$1;
|
|
27908
|
+
escaping = false;
|
|
27909
|
+
continue;
|
|
27910
|
+
}
|
|
27911
|
+
switch (c$1) {
|
|
27912
|
+
case "/": return false;
|
|
27913
|
+
case "\\":
|
|
27914
|
+
if (inClass && pattern.charAt(i + 1) === "-") {
|
|
27915
|
+
re$4 += c$1;
|
|
27916
|
+
continue;
|
|
27917
|
+
}
|
|
27918
|
+
clearStateChar();
|
|
27919
|
+
escaping = true;
|
|
27920
|
+
continue;
|
|
27921
|
+
case "?":
|
|
27922
|
+
case "*":
|
|
27923
|
+
case "+":
|
|
27924
|
+
case "@":
|
|
27925
|
+
case "!":
|
|
27926
|
+
this.debug("%s %s %s %j <-- stateChar", pattern, i, re$4, c$1);
|
|
27927
|
+
if (inClass) {
|
|
27928
|
+
this.debug(" in class");
|
|
27929
|
+
if (c$1 === "!" && i === classStart + 1) c$1 = "^";
|
|
27930
|
+
re$4 += c$1;
|
|
27931
|
+
continue;
|
|
27932
|
+
}
|
|
27933
|
+
this.debug("call clearStateChar %j", stateChar);
|
|
27934
|
+
clearStateChar();
|
|
27935
|
+
stateChar = c$1;
|
|
27936
|
+
if (options.noext) clearStateChar();
|
|
27937
|
+
continue;
|
|
27938
|
+
case "(": {
|
|
27939
|
+
if (inClass) {
|
|
27940
|
+
re$4 += "(";
|
|
27941
|
+
continue;
|
|
27942
|
+
}
|
|
27943
|
+
if (!stateChar) {
|
|
27944
|
+
re$4 += "\\(";
|
|
27945
|
+
continue;
|
|
27946
|
+
}
|
|
27947
|
+
const plEntry = {
|
|
27948
|
+
type: stateChar,
|
|
27949
|
+
start: i - 1,
|
|
27950
|
+
reStart: re$4.length,
|
|
27951
|
+
open: plTypes[stateChar].open,
|
|
27952
|
+
close: plTypes[stateChar].close
|
|
27953
|
+
};
|
|
27954
|
+
this.debug(this.pattern, " ", plEntry);
|
|
27955
|
+
patternListStack.push(plEntry);
|
|
27956
|
+
re$4 += plEntry.open;
|
|
27957
|
+
if (plEntry.start === 0 && plEntry.type !== "!") {
|
|
27958
|
+
dotTravAllowed = true;
|
|
27959
|
+
re$4 += subPatternStart(pattern.slice(i + 1));
|
|
27960
|
+
}
|
|
27961
|
+
this.debug("plType %j %j", stateChar, re$4);
|
|
27962
|
+
stateChar = false;
|
|
27963
|
+
continue;
|
|
27964
|
+
}
|
|
27965
|
+
case ")": {
|
|
27966
|
+
const plEntry = patternListStack[patternListStack.length - 1];
|
|
27967
|
+
if (inClass || !plEntry) {
|
|
27968
|
+
re$4 += "\\)";
|
|
27969
|
+
continue;
|
|
27970
|
+
}
|
|
27971
|
+
patternListStack.pop();
|
|
27972
|
+
clearStateChar();
|
|
27973
|
+
hasMagic = true;
|
|
27974
|
+
pl = plEntry;
|
|
27975
|
+
re$4 += pl.close;
|
|
27976
|
+
if (pl.type === "!") negativeLists.push(Object.assign(pl, { reEnd: re$4.length }));
|
|
27977
|
+
continue;
|
|
27978
|
+
}
|
|
27979
|
+
case "|": {
|
|
27980
|
+
const plEntry = patternListStack[patternListStack.length - 1];
|
|
27981
|
+
if (inClass || !plEntry) {
|
|
27982
|
+
re$4 += "\\|";
|
|
27983
|
+
continue;
|
|
27984
|
+
}
|
|
27985
|
+
clearStateChar();
|
|
27986
|
+
re$4 += "|";
|
|
27987
|
+
if (plEntry.start === 0 && plEntry.type !== "!") {
|
|
27988
|
+
dotTravAllowed = true;
|
|
27989
|
+
re$4 += subPatternStart(pattern.slice(i + 1));
|
|
27990
|
+
}
|
|
27991
|
+
continue;
|
|
27992
|
+
}
|
|
27993
|
+
case "[":
|
|
27994
|
+
clearStateChar();
|
|
27995
|
+
if (inClass) {
|
|
27996
|
+
re$4 += "\\" + c$1;
|
|
27997
|
+
continue;
|
|
27998
|
+
}
|
|
27999
|
+
inClass = true;
|
|
28000
|
+
classStart = i;
|
|
28001
|
+
reClassStart = re$4.length;
|
|
28002
|
+
re$4 += c$1;
|
|
28003
|
+
continue;
|
|
28004
|
+
case "]":
|
|
28005
|
+
if (i === classStart + 1 || !inClass) {
|
|
28006
|
+
re$4 += "\\" + c$1;
|
|
28007
|
+
continue;
|
|
28008
|
+
}
|
|
28009
|
+
cs = pattern.substring(classStart + 1, i);
|
|
28010
|
+
try {
|
|
28011
|
+
RegExp("[" + braExpEscape(charUnescape(cs)) + "]");
|
|
28012
|
+
re$4 += c$1;
|
|
28013
|
+
} catch (er) {
|
|
28014
|
+
re$4 = re$4.substring(0, reClassStart) + "(?:$.)";
|
|
28015
|
+
}
|
|
28016
|
+
hasMagic = true;
|
|
28017
|
+
inClass = false;
|
|
28018
|
+
continue;
|
|
28019
|
+
default:
|
|
28020
|
+
clearStateChar();
|
|
28021
|
+
if (reSpecials[c$1] && !(c$1 === "^" && inClass)) re$4 += "\\";
|
|
28022
|
+
re$4 += c$1;
|
|
28023
|
+
break;
|
|
28024
|
+
}
|
|
28025
|
+
}
|
|
28026
|
+
if (inClass) {
|
|
28027
|
+
cs = pattern.slice(classStart + 1);
|
|
28028
|
+
sp = this.parse(cs, SUBPARSE);
|
|
28029
|
+
re$4 = re$4.substring(0, reClassStart) + "\\[" + sp[0];
|
|
28030
|
+
hasMagic = hasMagic || sp[1];
|
|
28031
|
+
}
|
|
28032
|
+
for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {
|
|
28033
|
+
let tail$1;
|
|
28034
|
+
tail$1 = re$4.slice(pl.reStart + pl.open.length);
|
|
28035
|
+
this.debug("setting tail", re$4, pl);
|
|
28036
|
+
tail$1 = tail$1.replace(/((?:\\{2}){0,64})(\\?)\|/g, (_, $1, $2) => {
|
|
28037
|
+
if (!$2) $2 = "\\";
|
|
28038
|
+
return $1 + $1 + $2 + "|";
|
|
28039
|
+
});
|
|
28040
|
+
this.debug("tail=%j\n %s", tail$1, tail$1, pl, re$4);
|
|
28041
|
+
const t2 = pl.type === "*" ? star : pl.type === "?" ? qmark : "\\" + pl.type;
|
|
28042
|
+
hasMagic = true;
|
|
28043
|
+
re$4 = re$4.slice(0, pl.reStart) + t2 + "\\(" + tail$1;
|
|
28044
|
+
}
|
|
28045
|
+
clearStateChar();
|
|
28046
|
+
if (escaping) re$4 += "\\\\";
|
|
28047
|
+
const addPatternStart = addPatternStartSet[re$4.charAt(0)];
|
|
28048
|
+
for (let n2 = negativeLists.length - 1; n2 > -1; n2--) {
|
|
28049
|
+
const nl = negativeLists[n2];
|
|
28050
|
+
const nlBefore = re$4.slice(0, nl.reStart);
|
|
28051
|
+
const nlFirst = re$4.slice(nl.reStart, nl.reEnd - 8);
|
|
28052
|
+
let nlAfter = re$4.slice(nl.reEnd);
|
|
28053
|
+
const nlLast = re$4.slice(nl.reEnd - 8, nl.reEnd) + nlAfter;
|
|
28054
|
+
const closeParensBefore = nlBefore.split(")").length;
|
|
28055
|
+
const openParensBefore = nlBefore.split("(").length - closeParensBefore;
|
|
28056
|
+
let cleanAfter = nlAfter;
|
|
28057
|
+
for (let i = 0; i < openParensBefore; i++) cleanAfter = cleanAfter.replace(/\)[+*?]?/, "");
|
|
28058
|
+
nlAfter = cleanAfter;
|
|
28059
|
+
const dollar = nlAfter === "" && isSub !== SUBPARSE ? "(?:$|\\/)" : "";
|
|
28060
|
+
re$4 = nlBefore + nlFirst + nlAfter + dollar + nlLast;
|
|
28061
|
+
}
|
|
28062
|
+
if (re$4 !== "" && hasMagic) re$4 = "(?=.)" + re$4;
|
|
28063
|
+
if (addPatternStart) re$4 = patternStart() + re$4;
|
|
28064
|
+
if (isSub === SUBPARSE) return [re$4, hasMagic];
|
|
28065
|
+
if (options.nocase && !hasMagic) hasMagic = pattern.toUpperCase() !== pattern.toLowerCase();
|
|
28066
|
+
if (!hasMagic) return globUnescape(pattern);
|
|
28067
|
+
const flags = options.nocase ? "i" : "";
|
|
28068
|
+
try {
|
|
28069
|
+
return Object.assign(new RegExp("^" + re$4 + "$", flags), {
|
|
28070
|
+
_glob: pattern,
|
|
28071
|
+
_src: re$4
|
|
28072
|
+
});
|
|
28073
|
+
} catch (er) {
|
|
28074
|
+
return /* @__PURE__ */ new RegExp("$.");
|
|
28075
|
+
}
|
|
28076
|
+
}
|
|
28077
|
+
makeRe() {
|
|
28078
|
+
if (this.regexp || this.regexp === false) return this.regexp;
|
|
28079
|
+
const set2 = this.set;
|
|
28080
|
+
if (!set2.length) {
|
|
28081
|
+
this.regexp = false;
|
|
28082
|
+
return this.regexp;
|
|
28083
|
+
}
|
|
28084
|
+
const options = this.options;
|
|
28085
|
+
const twoStar = options.noglobstar ? star : options.dot ? twoStarDot : twoStarNoDot;
|
|
28086
|
+
const flags = options.nocase ? "i" : "";
|
|
28087
|
+
let re$4 = set2.map((pattern) => {
|
|
28088
|
+
pattern = pattern.map((p$1) => typeof p$1 === "string" ? regExpEscape(p$1) : p$1 === GLOBSTAR ? GLOBSTAR : p$1._src).reduce((set3, p$1) => {
|
|
28089
|
+
if (!(set3[set3.length - 1] === GLOBSTAR && p$1 === GLOBSTAR)) set3.push(p$1);
|
|
28090
|
+
return set3;
|
|
28091
|
+
}, []);
|
|
28092
|
+
pattern.forEach((p$1, i) => {
|
|
28093
|
+
if (p$1 !== GLOBSTAR || pattern[i - 1] === GLOBSTAR) return;
|
|
28094
|
+
if (i === 0) if (pattern.length > 1) pattern[i + 1] = "(?:\\/|" + twoStar + "\\/)?" + pattern[i + 1];
|
|
28095
|
+
else pattern[i] = twoStar;
|
|
28096
|
+
else if (i === pattern.length - 1) pattern[i - 1] += "(?:\\/|" + twoStar + ")?";
|
|
28097
|
+
else {
|
|
28098
|
+
pattern[i - 1] += "(?:\\/|\\/" + twoStar + "\\/)" + pattern[i + 1];
|
|
28099
|
+
pattern[i + 1] = GLOBSTAR;
|
|
28100
|
+
}
|
|
28101
|
+
});
|
|
28102
|
+
return pattern.filter((p$1) => p$1 !== GLOBSTAR).join("/");
|
|
28103
|
+
}).join("|");
|
|
28104
|
+
re$4 = "^(?:" + re$4 + ")$";
|
|
28105
|
+
if (this.negate) re$4 = "^(?!" + re$4 + ").*$";
|
|
28106
|
+
try {
|
|
28107
|
+
this.regexp = new RegExp(re$4, flags);
|
|
28108
|
+
} catch (ex) {
|
|
28109
|
+
this.regexp = false;
|
|
28110
|
+
}
|
|
28111
|
+
return this.regexp;
|
|
28112
|
+
}
|
|
28113
|
+
match(f, partial2 = this.partial) {
|
|
28114
|
+
this.debug("match", f, this.pattern);
|
|
28115
|
+
if (this.comment) return false;
|
|
28116
|
+
if (this.empty) return f === "";
|
|
28117
|
+
if (f === "/" && partial2) return true;
|
|
28118
|
+
const options = this.options;
|
|
28119
|
+
if (path6.sep !== "/") f = f.split(path6.sep).join("/");
|
|
28120
|
+
f = f.split(slashSplit);
|
|
28121
|
+
this.debug(this.pattern, "split", f);
|
|
28122
|
+
const set2 = this.set;
|
|
28123
|
+
this.debug(this.pattern, "set", set2);
|
|
28124
|
+
let filename;
|
|
28125
|
+
for (let i = f.length - 1; i >= 0; i--) {
|
|
28126
|
+
filename = f[i];
|
|
28127
|
+
if (filename) break;
|
|
28128
|
+
}
|
|
28129
|
+
for (let i = 0; i < set2.length; i++) {
|
|
28130
|
+
const pattern = set2[i];
|
|
28131
|
+
let file2 = f;
|
|
28132
|
+
if (options.matchBase && pattern.length === 1) file2 = [filename];
|
|
28133
|
+
if (this.matchOne(file2, pattern, partial2)) {
|
|
28134
|
+
if (options.flipNegate) return true;
|
|
28135
|
+
return !this.negate;
|
|
28136
|
+
}
|
|
28137
|
+
}
|
|
28138
|
+
if (options.flipNegate) return false;
|
|
28139
|
+
return this.negate;
|
|
28140
|
+
}
|
|
28141
|
+
static defaults(def) {
|
|
28142
|
+
return minimatch.defaults(def).Minimatch;
|
|
28143
|
+
}
|
|
28144
|
+
};
|
|
28145
|
+
minimatch.Minimatch = Minimatch2;
|
|
28146
|
+
} });
|
|
27454
28147
|
var ARTIFACTS_EVENT_TYPES = [
|
|
27455
28148
|
"cf.artifacts.repo.created",
|
|
27456
28149
|
"cf.artifacts.repo.deleted",
|
|
@@ -28339,9 +29032,9 @@ function cloneDef(schema) {
|
|
|
28339
29032
|
return mergeDefs(schema._zod.def);
|
|
28340
29033
|
}
|
|
28341
29034
|
__name$3(cloneDef, "cloneDef");
|
|
28342
|
-
function getElementAtPath(obj,
|
|
28343
|
-
if (!
|
|
28344
|
-
return
|
|
29035
|
+
function getElementAtPath(obj, path6) {
|
|
29036
|
+
if (!path6) return obj;
|
|
29037
|
+
return path6.reduce((acc, key) => acc?.[key], obj);
|
|
28345
29038
|
}
|
|
28346
29039
|
__name$3(getElementAtPath, "getElementAtPath");
|
|
28347
29040
|
function promiseAllObject(promisesObj) {
|
|
@@ -28671,11 +29364,11 @@ function explicitlyAborted(x, startIndex = 0) {
|
|
|
28671
29364
|
return false;
|
|
28672
29365
|
}
|
|
28673
29366
|
__name$3(explicitlyAborted, "explicitlyAborted");
|
|
28674
|
-
function prefixIssues$1(
|
|
29367
|
+
function prefixIssues$1(path6, issues) {
|
|
28675
29368
|
return issues.map((iss) => {
|
|
28676
29369
|
var _a3;
|
|
28677
29370
|
(_a3 = iss).path ?? (_a3.path = []);
|
|
28678
|
-
iss.path.unshift(
|
|
29371
|
+
iss.path.unshift(path6);
|
|
28679
29372
|
return iss;
|
|
28680
29373
|
});
|
|
28681
29374
|
}
|
|
@@ -28810,12 +29503,12 @@ function flattenError(error51, mapper = (issue2) => issue2.message) {
|
|
|
28810
29503
|
__name$3(flattenError, "flattenError");
|
|
28811
29504
|
function formatError(error51, mapper = (issue2) => issue2.message) {
|
|
28812
29505
|
const fieldErrors = { _errors: [] };
|
|
28813
|
-
const processError = /* @__PURE__ */ __name$3((error52,
|
|
28814
|
-
for (const issue2 of error52.issues) if (issue2.code === "invalid_union" && issue2.errors.length) issue2.errors.map((issues) => processError({ issues }, [...
|
|
28815
|
-
else if (issue2.code === "invalid_key") processError({ issues: issue2.issues }, [...
|
|
28816
|
-
else if (issue2.code === "invalid_element") processError({ issues: issue2.issues }, [...
|
|
29506
|
+
const processError = /* @__PURE__ */ __name$3((error52, path6 = []) => {
|
|
29507
|
+
for (const issue2 of error52.issues) if (issue2.code === "invalid_union" && issue2.errors.length) issue2.errors.map((issues) => processError({ issues }, [...path6, ...issue2.path]));
|
|
29508
|
+
else if (issue2.code === "invalid_key") processError({ issues: issue2.issues }, [...path6, ...issue2.path]);
|
|
29509
|
+
else if (issue2.code === "invalid_element") processError({ issues: issue2.issues }, [...path6, ...issue2.path]);
|
|
28817
29510
|
else {
|
|
28818
|
-
const fullpath = [...
|
|
29511
|
+
const fullpath = [...path6, ...issue2.path];
|
|
28819
29512
|
if (fullpath.length === 0) fieldErrors._errors.push(mapper(issue2));
|
|
28820
29513
|
else {
|
|
28821
29514
|
let curr = fieldErrors;
|
|
@@ -28839,13 +29532,13 @@ function formatError(error51, mapper = (issue2) => issue2.message) {
|
|
|
28839
29532
|
__name$3(formatError, "formatError");
|
|
28840
29533
|
function treeifyError(error51, mapper = (issue2) => issue2.message) {
|
|
28841
29534
|
const result = { errors: [] };
|
|
28842
|
-
const processError = /* @__PURE__ */ __name$3((error52,
|
|
29535
|
+
const processError = /* @__PURE__ */ __name$3((error52, path6 = []) => {
|
|
28843
29536
|
var _a3, _b;
|
|
28844
|
-
for (const issue2 of error52.issues) if (issue2.code === "invalid_union" && issue2.errors.length) issue2.errors.map((issues) => processError({ issues }, [...
|
|
28845
|
-
else if (issue2.code === "invalid_key") processError({ issues: issue2.issues }, [...
|
|
28846
|
-
else if (issue2.code === "invalid_element") processError({ issues: issue2.issues }, [...
|
|
29537
|
+
for (const issue2 of error52.issues) if (issue2.code === "invalid_union" && issue2.errors.length) issue2.errors.map((issues) => processError({ issues }, [...path6, ...issue2.path]));
|
|
29538
|
+
else if (issue2.code === "invalid_key") processError({ issues: issue2.issues }, [...path6, ...issue2.path]);
|
|
29539
|
+
else if (issue2.code === "invalid_element") processError({ issues: issue2.issues }, [...path6, ...issue2.path]);
|
|
28847
29540
|
else {
|
|
28848
|
-
const fullpath = [...
|
|
29541
|
+
const fullpath = [...path6, ...issue2.path];
|
|
28849
29542
|
if (fullpath.length === 0) {
|
|
28850
29543
|
result.errors.push(mapper(issue2));
|
|
28851
29544
|
continue;
|
|
@@ -28875,8 +29568,8 @@ function treeifyError(error51, mapper = (issue2) => issue2.message) {
|
|
|
28875
29568
|
__name$3(treeifyError, "treeifyError");
|
|
28876
29569
|
function toDotPath(_path) {
|
|
28877
29570
|
const segs = [];
|
|
28878
|
-
const
|
|
28879
|
-
for (const seg of
|
|
29571
|
+
const path6 = _path.map((seg) => typeof seg === "object" ? seg.key : seg);
|
|
29572
|
+
for (const seg of path6) if (typeof seg === "number") segs.push(`[${seg}]`);
|
|
28880
29573
|
else if (typeof seg === "symbol") segs.push(`[${JSON.stringify(String(seg))}]`);
|
|
28881
29574
|
else if (/[^\w$]/.test(seg)) segs.push(`[${JSON.stringify(seg)}]`);
|
|
28882
29575
|
else {
|
|
@@ -41008,11 +41701,11 @@ function detectVersion(schema, defaultTarget) {
|
|
|
41008
41701
|
__name$3(detectVersion, "detectVersion");
|
|
41009
41702
|
function resolveRef(ref, ctx) {
|
|
41010
41703
|
if (!ref.startsWith("#")) throw new Error("External $ref is not supported, only local refs (#/...) are allowed");
|
|
41011
|
-
const
|
|
41012
|
-
if (
|
|
41704
|
+
const path6 = ref.slice(1).split("/").filter(Boolean);
|
|
41705
|
+
if (path6.length === 0) return ctx.rootSchema;
|
|
41013
41706
|
const defsKey = ctx.version === "draft-2020-12" ? "$defs" : "definitions";
|
|
41014
|
-
if (
|
|
41015
|
-
const key =
|
|
41707
|
+
if (path6[0] === defsKey) {
|
|
41708
|
+
const key = path6[1];
|
|
41016
41709
|
if (!key || !ctx.defs[key]) throw new Error(`Reference not found: ${ref}`);
|
|
41017
41710
|
return ctx.defs[key];
|
|
41018
41711
|
}
|
|
@@ -41401,9 +42094,9 @@ Please add "${field}" to "env.${envName}".`);
|
|
|
41401
42094
|
return rawEnv[field] ?? defaultValue;
|
|
41402
42095
|
}
|
|
41403
42096
|
__name$3(notInheritable, "notInheritable");
|
|
41404
|
-
function unwindPropertyPath(root,
|
|
42097
|
+
function unwindPropertyPath(root, path6) {
|
|
41405
42098
|
let container = root;
|
|
41406
|
-
const parts =
|
|
42099
|
+
const parts = path6.split(".");
|
|
41407
42100
|
for (let i = 0; i < parts.length - 1; i++) {
|
|
41408
42101
|
if (!hasProperty(container, parts[i])) return;
|
|
41409
42102
|
container = container[parts[i]];
|
|
@@ -42189,7 +42882,7 @@ function normalizeAndValidateEnvironment(diagnostics, configPath, rawEnv, isDisp
|
|
|
42189
42882
|
warnIfDurableObjectsHaveNoLifecycleConfig(diagnostics, environment.durable_objects, environment.migrations, environment.exports, configPath);
|
|
42190
42883
|
errorIfMigrationsAndExportsBothSet(diagnostics, environment.migrations, environment.exports);
|
|
42191
42884
|
const containersDeclaredElsewhere = rawConfig !== void 0 ? rawConfig.containers !== void 0 : Object.values("env" in rawEnv ? rawEnv.env ?? {} : {}).some((rawNamedEnv) => rawNamedEnv?.containers !== void 0);
|
|
42192
|
-
validateContainerExportLinks
|
|
42885
|
+
validateContainerExportLinks(diagnostics, environment.containers, environment.exports, containersDeclaredElsewhere);
|
|
42193
42886
|
if (envName !== "top level") validateAdditionalProperties(diagnostics, "env." + envName, Object.keys(rawEnv), Object.keys(environment));
|
|
42194
42887
|
return environment;
|
|
42195
42888
|
}
|
|
@@ -43481,7 +44174,6 @@ var validateBindingsHaveUniqueNames = /* @__PURE__ */ __name$3((diagnostics, con
|
|
|
43481
44174
|
const bindingNamesArray = Object.entries(friendlyBindingNames);
|
|
43482
44175
|
const bindingsGroupedByType = Object.fromEntries(bindingNamesArray.map(([bindingType, binding]) => [binding, getBindingNames(bindingType === "queues" ? config2[bindingType]?.producers : config2[bindingType])]));
|
|
43483
44176
|
bindingsGroupedByType["Secret"] = config2.secrets?.required ?? [];
|
|
43484
|
-
bindingsGroupedByType["Container images"] = [CONTAINER_IMAGES_BINDING];
|
|
43485
44177
|
const bindingsGroupedByName = {};
|
|
43486
44178
|
for (const bindingType in bindingsGroupedByType) {
|
|
43487
44179
|
const bindingNames = bindingsGroupedByType[bindingType];
|
|
@@ -44452,7 +45144,7 @@ function errorIfMigrationsAndExportsBothSet(diagnostics, migrations, exports$1)
|
|
|
44452
45144
|
if (migrations.length > 0 && exports$1 !== void 0 && Object.values(exports$1).some((entry) => entry.type === "durable-object")) diagnostics.errors.push(`\`migrations\` and \`exports\` are mutually exclusive. Choose one or the other to declare your Durable Object lifecycle, but not both.`);
|
|
44453
45145
|
}
|
|
44454
45146
|
__name$3(errorIfMigrationsAndExportsBothSet, "errorIfMigrationsAndExportsBothSet");
|
|
44455
|
-
function validateContainerExportLinks
|
|
45147
|
+
function validateContainerExportLinks(diagnostics, containers, exports$1, containersDeclaredElsewhere) {
|
|
44456
45148
|
if (containers !== void 0 && !Array.isArray(containers)) return;
|
|
44457
45149
|
if (containers === void 0 && containersDeclaredElsewhere) return;
|
|
44458
45150
|
const containersByName = /* @__PURE__ */ new Map();
|
|
@@ -44512,7 +45204,7 @@ function validateContainerExportLinks$1(diagnostics, containers, exports$1, cont
|
|
|
44512
45204
|
if (referencedContainerName === void 0 && exportEntry !== void 0 && "storage" in exportEntry && exportEntry.storage === "legacy-kv") diagnostics.errors.push(`The container "${container.name}" sets "class_name" to "${container.class_name}", but "exports.${container.class_name}.storage" is "legacy-kv". Containers are not supported on Durable Objects using the "legacy-kv" storage backend.`);
|
|
44513
45205
|
}
|
|
44514
45206
|
}
|
|
44515
|
-
__name$3(validateContainerExportLinks
|
|
45207
|
+
__name$3(validateContainerExportLinks, "validateContainerExportLinks");
|
|
44516
45208
|
var validatePythonModules = /* @__PURE__ */ __name$3((diagnostics, field, value, topLevelEnv) => {
|
|
44517
45209
|
if (value === void 0) return true;
|
|
44518
45210
|
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
@@ -44583,6 +45275,7 @@ var BINDING_LOCAL_SUPPORT = {
|
|
|
44583
45275
|
pipeline: "local-and-remote",
|
|
44584
45276
|
service: "local-and-remote",
|
|
44585
45277
|
queue: "local-and-remote",
|
|
45278
|
+
flagship: "local-and-remote",
|
|
44586
45279
|
vectorize: "remote",
|
|
44587
45280
|
mtls_certificate: "remote",
|
|
44588
45281
|
dispatch_namespace: "remote",
|
|
@@ -44591,7 +45284,6 @@ var BINDING_LOCAL_SUPPORT = {
|
|
|
44591
45284
|
ai_search_namespace: "DO-NOT-USE-this-resource-will-never-have-a-local-simulator",
|
|
44592
45285
|
media: "DO-NOT-USE-this-resource-will-never-have-a-local-simulator",
|
|
44593
45286
|
artifacts: "DO-NOT-USE-this-resource-will-never-have-a-local-simulator",
|
|
44594
|
-
flagship: "DO-NOT-USE-this-resource-will-never-have-a-local-simulator",
|
|
44595
45287
|
vpc_service: "DO-NOT-USE-this-resource-will-never-have-a-local-simulator",
|
|
44596
45288
|
vpc_network: "DO-NOT-USE-this-resource-will-never-have-a-local-simulator",
|
|
44597
45289
|
agent_memory: "DO-NOT-USE-this-resource-will-never-have-a-local-simulator"
|
|
@@ -45306,12 +45998,12 @@ function printBindings(bindings, options) {
|
|
|
45306
45998
|
mode: getMode({ isSimulatedLocally: true })
|
|
45307
45999
|
};
|
|
45308
46000
|
}));
|
|
45309
|
-
if (flagship.length > 0) output.push(...flagship.map(({ binding, app_id }) => {
|
|
46001
|
+
if (flagship.length > 0) output.push(...flagship.map(({ binding, app_id, remote }) => {
|
|
45310
46002
|
return {
|
|
45311
46003
|
name: binding,
|
|
45312
46004
|
type: getBindingTypeFriendlyName("flagship"),
|
|
45313
46005
|
value: app_id,
|
|
45314
|
-
mode: getMode({ isSimulatedLocally:
|
|
46006
|
+
mode: getMode({ isSimulatedLocally: context.remoteBindingsDisabled || !remote })
|
|
45315
46007
|
};
|
|
45316
46008
|
}));
|
|
45317
46009
|
if (services.length > 0) output.push(...services.map(({ binding, service, entrypoint, remote, dev }) => {
|
|
@@ -46944,6 +47636,91 @@ function toUrlPath(filePath) {
|
|
|
46944
47636
|
return filePath.replace(/\\/g, "/");
|
|
46945
47637
|
}
|
|
46946
47638
|
__name$3(toUrlPath, "toUrlPath");
|
|
47639
|
+
var import_minimatch = __toESM(require_minimatch());
|
|
47640
|
+
var DEFAULT_MIGRATIONS_DIR = "./migrations";
|
|
47641
|
+
function getD1MigrationFiles(options) {
|
|
47642
|
+
const migrationsDir = normalizeRelativePath(options.migrationsDir ?? DEFAULT_MIGRATIONS_DIR);
|
|
47643
|
+
const dirRelativePattern = stripDirPrefix(normalizeRelativePath(options.migrationsPattern ?? `${migrationsDir}/*.sql`), migrationsDir);
|
|
47644
|
+
const walkRoot = path.resolve(options.projectPath, migrationsDir);
|
|
47645
|
+
return listFilesRelative(walkRoot, new import_minimatch.Minimatch(dirRelativePattern, { dot: false })).map((name) => ({
|
|
47646
|
+
name,
|
|
47647
|
+
filePath: path.join(walkRoot, ...name.split("/"))
|
|
47648
|
+
}));
|
|
47649
|
+
}
|
|
47650
|
+
__name$3(getD1MigrationFiles, "getD1MigrationFiles");
|
|
47651
|
+
function normalizeRelativePath(p$1) {
|
|
47652
|
+
const forwardSlashed = p$1.replace(/\\/g, "/");
|
|
47653
|
+
const normalized = path.posix.normalize(forwardSlashed);
|
|
47654
|
+
if (normalized.endsWith("/")) return normalized.slice(0, -1);
|
|
47655
|
+
return normalized;
|
|
47656
|
+
}
|
|
47657
|
+
__name$3(normalizeRelativePath, "normalizeRelativePath");
|
|
47658
|
+
function stripDirPrefix(pattern, dir2) {
|
|
47659
|
+
if (dir2 === ".") return pattern;
|
|
47660
|
+
const prefix = `${dir2}/`;
|
|
47661
|
+
if (!pattern.startsWith(prefix)) throw new Error(`Expected migrations pattern ${JSON.stringify(pattern)} to start with ${JSON.stringify(prefix)}`);
|
|
47662
|
+
return pattern.slice(prefix.length);
|
|
47663
|
+
}
|
|
47664
|
+
__name$3(stripDirPrefix, "stripDirPrefix");
|
|
47665
|
+
function listFilesRelative(dir2, matcher) {
|
|
47666
|
+
const out = [];
|
|
47667
|
+
const stack = [{
|
|
47668
|
+
abs: dir2,
|
|
47669
|
+
rel: ""
|
|
47670
|
+
}];
|
|
47671
|
+
while (stack.length > 0) {
|
|
47672
|
+
const { abs, rel } = stack.pop();
|
|
47673
|
+
let entries;
|
|
47674
|
+
try {
|
|
47675
|
+
entries = fs.readdirSync(abs, { withFileTypes: true });
|
|
47676
|
+
} catch {
|
|
47677
|
+
continue;
|
|
47678
|
+
}
|
|
47679
|
+
for (const entry of entries) {
|
|
47680
|
+
const childRel = rel === "" ? entry.name : `${rel}/${entry.name}`;
|
|
47681
|
+
if (entry.isDirectory()) {
|
|
47682
|
+
if (matcher.match(childRel, true)) stack.push({
|
|
47683
|
+
abs: path.join(abs, entry.name),
|
|
47684
|
+
rel: childRel
|
|
47685
|
+
});
|
|
47686
|
+
} else if (entry.isFile() && matcher.match(childRel)) out.push(childRel);
|
|
47687
|
+
}
|
|
47688
|
+
}
|
|
47689
|
+
return out.sort(compareMigrationPaths);
|
|
47690
|
+
}
|
|
47691
|
+
__name$3(listFilesRelative, "listFilesRelative");
|
|
47692
|
+
function compareMigrationPaths(a, b) {
|
|
47693
|
+
const aSegments = a.split("/");
|
|
47694
|
+
const bSegments = b.split("/");
|
|
47695
|
+
const shared = Math.min(aSegments.length, bSegments.length);
|
|
47696
|
+
for (let i = 0; i < shared; i++) {
|
|
47697
|
+
const aSegment = aSegments[i];
|
|
47698
|
+
const bSegment = bSegments[i];
|
|
47699
|
+
if (aSegment === void 0 || bSegment === void 0) break;
|
|
47700
|
+
const cmp$2 = compareSegments(aSegment, bSegment);
|
|
47701
|
+
if (cmp$2 !== 0) return cmp$2;
|
|
47702
|
+
}
|
|
47703
|
+
return aSegments.length - bSegments.length;
|
|
47704
|
+
}
|
|
47705
|
+
__name$3(compareMigrationPaths, "compareMigrationPaths");
|
|
47706
|
+
function compareSegments(a, b) {
|
|
47707
|
+
const aNum = leadingMigrationNumber(a);
|
|
47708
|
+
const bNum = leadingMigrationNumber(b);
|
|
47709
|
+
if (aNum !== bNum) {
|
|
47710
|
+
if (Number.isFinite(aNum) && Number.isFinite(bNum)) return aNum - bNum;
|
|
47711
|
+
if (Number.isFinite(aNum)) return -1;
|
|
47712
|
+
if (Number.isFinite(bNum)) return 1;
|
|
47713
|
+
}
|
|
47714
|
+
if (a < b) return -1;
|
|
47715
|
+
if (a > b) return 1;
|
|
47716
|
+
return 0;
|
|
47717
|
+
}
|
|
47718
|
+
__name$3(compareSegments, "compareSegments");
|
|
47719
|
+
function leadingMigrationNumber(relativePath) {
|
|
47720
|
+
const firstSegment = relativePath.split("/")[0];
|
|
47721
|
+
return parseInt(firstSegment.split("_")[0], 10);
|
|
47722
|
+
}
|
|
47723
|
+
__name$3(leadingMigrationNumber, "leadingMigrationNumber");
|
|
46947
47724
|
|
|
46948
47725
|
//#endregion
|
|
46949
47726
|
//#region ../../node_modules/.pnpm/devalue@5.6.3/node_modules/devalue/src/utils.js
|
|
@@ -61073,7 +61850,7 @@ __name$1(createWorkerUploadForm, "createWorkerUploadForm");
|
|
|
61073
61850
|
//#endregion
|
|
61074
61851
|
//#region ../remote-bindings/dist/index.mjs
|
|
61075
61852
|
var import_undici = require_undici();
|
|
61076
|
-
var version = "0.0.
|
|
61853
|
+
var version = "0.0.29";
|
|
61077
61854
|
var NoDefaultValueProvided = class extends UserError$1 {
|
|
61078
61855
|
constructor() {
|
|
61079
61856
|
super("This command cannot be run in a non-interactive context", { telemetryMessage: "remote bindings prompt default missing" });
|
|
@@ -62299,14 +63076,13 @@ const ContainerObservabilityBaseSchema = z$1.strictObject({
|
|
|
62299
63076
|
enabled: z$1.boolean().optional(),
|
|
62300
63077
|
logs: z$1.strictObject({ enabled: z$1.boolean().optional() }).optional()
|
|
62301
63078
|
});
|
|
62302
|
-
const
|
|
63079
|
+
const StandardContainerObservabilitySchema = z$1.union([ContainerObservabilityBaseSchema.extend({ targetInstancePercentage: z$1.number().min(0).max(100).optional() }), ContainerObservabilityBaseSchema.extend({ targetInstanceCount: z$1.number().int().nonnegative().optional() })]);
|
|
62303
63080
|
const BaseContainerSchema = z$1.strictObject({
|
|
62304
|
-
type: z$1.literal("container"),
|
|
62305
63081
|
name: z$1.string().min(1),
|
|
62306
|
-
observability: ContainerObservabilitySchema.optional(),
|
|
62307
63082
|
unsafe: z$1.record(z$1.string(), z$1.unknown()).optional()
|
|
62308
63083
|
});
|
|
62309
63084
|
const StandardContainerBaseSchema = BaseContainerSchema.extend({
|
|
63085
|
+
observability: StandardContainerObservabilitySchema.optional(),
|
|
62310
63086
|
maxInstances: z$1.number().int().nonnegative().default(20),
|
|
62311
63087
|
instanceType: z$1.union([z$1.enum([
|
|
62312
63088
|
"basic",
|
|
@@ -62353,16 +63129,18 @@ const StandardContainerBaseSchema = BaseContainerSchema.extend({
|
|
|
62353
63129
|
activeGracePeriod: z$1.number().nonnegative().optional()
|
|
62354
63130
|
}).optional()
|
|
62355
63131
|
});
|
|
62356
|
-
const DurableObjectContainerBaseSchema = BaseContainerSchema.extend({
|
|
63132
|
+
const DurableObjectContainerBaseSchema = BaseContainerSchema.extend({
|
|
63133
|
+
schedulingPolicy: z$1.literal("durable-object"),
|
|
63134
|
+
observability: ContainerObservabilityBaseSchema.optional()
|
|
63135
|
+
});
|
|
62357
63136
|
/**
|
|
62358
|
-
* Input Container schema —
|
|
62359
|
-
* Container
|
|
63137
|
+
* Input Container schema — parses user-authored `cloudflare.config.ts`
|
|
63138
|
+
* Container objects. Dockerfiles are built by the consuming build tool.
|
|
62360
63139
|
*/
|
|
62361
63140
|
const InputContainerSchema = z$1.union([StandardContainerBaseSchema.extend({ image: InputContainerImageSchema }).superRefine(validateContainerRelationships), DurableObjectContainerBaseSchema.extend({ images: z$1.record(z$1.string(), InputContainerImageSchema).optional() })]);
|
|
62362
63141
|
/**
|
|
62363
|
-
* Output Container schema —
|
|
62364
|
-
* Specification, after any Dockerfile has been built into a local
|
|
62365
|
-
* image reference.
|
|
63142
|
+
* Output Container schema — parses `container.config.json` files in the Build
|
|
63143
|
+
* Output Specification, after any Dockerfile has been built into a local image reference.
|
|
62366
63144
|
*/
|
|
62367
63145
|
const OutputContainerSchema = z$1.union([StandardContainerBaseSchema.extend({ image: OutputContainerImageSchema }).superRefine(validateContainerRelationships), DurableObjectContainerBaseSchema.extend({ images: z$1.record(z$1.string(), OutputContainerImageSchema).optional() })]);
|
|
62368
63146
|
const DurableObjectCreatedExportSchema = z$1.strictObject({
|
|
@@ -62504,7 +63282,6 @@ const UnsafeSchema = z$1.strictObject({
|
|
|
62504
63282
|
* (user-authored) and output (on-disk) Worker configs.
|
|
62505
63283
|
*/
|
|
62506
63284
|
const BaseWorkerSchema = z$1.strictObject({
|
|
62507
|
-
type: z$1.literal("worker"),
|
|
62508
63285
|
name: z$1.string(),
|
|
62509
63286
|
compatibilityDate: z$1.string(),
|
|
62510
63287
|
compatibilityFlags: z$1.array(z$1.string()).optional(),
|
|
@@ -62525,72 +63302,37 @@ const BaseWorkerSchema = z$1.strictObject({
|
|
|
62525
63302
|
exports: z$1.record(z$1.string(), ExportSchema).optional()
|
|
62526
63303
|
});
|
|
62527
63304
|
/**
|
|
62528
|
-
* Input Worker schema —
|
|
62529
|
-
* files
|
|
62530
|
-
*
|
|
63305
|
+
* Input Worker schema — parses Worker definitions from user-authored
|
|
63306
|
+
* `cloudflare.config.ts` files. Adds an optional `entrypoint` field to the base
|
|
63307
|
+
* schema.
|
|
62531
63308
|
*/
|
|
62532
63309
|
const InputWorkerSchema = BaseWorkerSchema.extend({ entrypoint: z$1.union([z$1.string(), z$1.strictObject({ default: z$1.string() })]).transform((value) => typeof value === "string" ? value : value.default).optional() });
|
|
62533
63310
|
/**
|
|
62534
|
-
* Input settings schema —
|
|
62535
|
-
* `cloudflare.config.ts`.
|
|
63311
|
+
* Input settings schema — parses the account settings at the top level of
|
|
63312
|
+
* `cloudflare.config.ts`.
|
|
62536
63313
|
*/
|
|
62537
|
-
const InputSettingsSchema = z$1.
|
|
62538
|
-
type: z$1.literal("settings"),
|
|
63314
|
+
const InputSettingsSchema = z$1.object({
|
|
62539
63315
|
accountId: z$1.string().optional(),
|
|
62540
63316
|
complianceRegion: z$1.enum(["public", "fedramp-high"]).optional()
|
|
62541
63317
|
});
|
|
63318
|
+
/** The resolved, user-authored project configuration. */
|
|
63319
|
+
const InputConfigSchema = z$1.strictObject({
|
|
63320
|
+
...InputSettingsSchema.shape,
|
|
63321
|
+
worker: InputWorkerSchema.optional(),
|
|
63322
|
+
containers: z$1.array(InputContainerSchema).default([])
|
|
63323
|
+
});
|
|
63324
|
+
const BuildContextSchema = z$1.strictObject({
|
|
63325
|
+
isPreview: z$1.boolean(),
|
|
63326
|
+
mode: z$1.string().optional()
|
|
63327
|
+
});
|
|
62542
63328
|
/**
|
|
62543
|
-
*
|
|
62544
|
-
*
|
|
63329
|
+
* The shape of the root `config.json` in the Build Output Specification.
|
|
63330
|
+
* Account settings remain at the top level while build context is grouped
|
|
63331
|
+
* under `buildContext`.
|
|
62545
63332
|
*/
|
|
62546
|
-
const
|
|
62547
|
-
|
|
62548
|
-
|
|
62549
|
-
const SUPPORTED_EXPORT_TYPES = new Set([
|
|
62550
|
-
"container",
|
|
62551
|
-
"worker",
|
|
62552
|
-
"settings"
|
|
62553
|
-
]);
|
|
62554
|
-
function invalidConfigExportMessage(exportName) {
|
|
62555
|
-
return `The \`${exportName}\` export is not a supported export type. Move constants, helper functions, and other unsupported exports to a separate module.`;
|
|
62556
|
-
}
|
|
62557
|
-
const ConfigExportsTypeSchema = z$1.record(z$1.string(), z$1.unknown()).check((ctx) => {
|
|
62558
|
-
for (const [key, value] of Object.entries(ctx.value)) {
|
|
62559
|
-
const isObject$1 = typeof value === "object" && value !== null;
|
|
62560
|
-
const type = isObject$1 && "type" in value ? value.type : void 0;
|
|
62561
|
-
if (typeof type !== "string" || !SUPPORTED_EXPORT_TYPES.has(type)) {
|
|
62562
|
-
ctx.issues.push({
|
|
62563
|
-
code: "custom",
|
|
62564
|
-
input: value,
|
|
62565
|
-
path: isObject$1 ? [key, "type"] : [key],
|
|
62566
|
-
message: invalidConfigExportMessage(key)
|
|
62567
|
-
});
|
|
62568
|
-
continue;
|
|
62569
|
-
}
|
|
62570
|
-
if (key === DEFAULT_EXPORT_NAME && type !== "worker") {
|
|
62571
|
-
ctx.issues.push({
|
|
62572
|
-
code: "custom",
|
|
62573
|
-
input: value,
|
|
62574
|
-
path: [key],
|
|
62575
|
-
message: `The \`${DEFAULT_EXPORT_NAME}\` export is reserved for a \`worker\` config; found a \`${type}\` config.`
|
|
62576
|
-
});
|
|
62577
|
-
continue;
|
|
62578
|
-
}
|
|
62579
|
-
const isSettingsName = key === SETTINGS_EXPORT_NAME;
|
|
62580
|
-
const isSettingsType = type === "settings";
|
|
62581
|
-
if (isSettingsType && !isSettingsName) ctx.issues.push({
|
|
62582
|
-
code: "custom",
|
|
62583
|
-
input: value,
|
|
62584
|
-
path: [key],
|
|
62585
|
-
message: `A \`settings\` config is only allowed on the \`${SETTINGS_EXPORT_NAME}\` export; found one on the \`${key}\` export.`
|
|
62586
|
-
});
|
|
62587
|
-
else if (isSettingsName && !isSettingsType) ctx.issues.push({
|
|
62588
|
-
code: "custom",
|
|
62589
|
-
input: value,
|
|
62590
|
-
path: [key],
|
|
62591
|
-
message: `The \`${SETTINGS_EXPORT_NAME}\` export is reserved for a \`settings\` config; found a \`${type}\` config.`
|
|
62592
|
-
});
|
|
62593
|
-
}
|
|
63333
|
+
const OutputRootConfigSchema = z$1.strictObject({
|
|
63334
|
+
...InputSettingsSchema.shape,
|
|
63335
|
+
buildContext: BuildContextSchema
|
|
62594
63336
|
});
|
|
62595
63337
|
const ModuleTypeSchema = z$1.enum([
|
|
62596
63338
|
"esm",
|
|
@@ -62622,9 +63364,9 @@ const ManifestSchema = z$1.strictObject({
|
|
|
62622
63364
|
});
|
|
62623
63365
|
});
|
|
62624
63366
|
/**
|
|
62625
|
-
* Output Worker schema — the shape of the Worker's `config.json` in the
|
|
62626
|
-
* Build Output Specification. Adds an optional `manifest` field to the
|
|
62627
|
-
*
|
|
63367
|
+
* Output Worker schema — the shape of the Worker's `worker.config.json` in the
|
|
63368
|
+
* Build Output Specification. Adds an optional `manifest` field to the base
|
|
63369
|
+
* schema.
|
|
62628
63370
|
*/
|
|
62629
63371
|
const OutputWorkerSchema = BaseWorkerSchema.extend({ manifest: ManifestSchema.optional() });
|
|
62630
63372
|
var import_dist = (/* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/ts-dedent@2.2.0/node_modules/ts-dedent/dist/index.js": ((exports$1) => {
|
|
@@ -62732,34 +63474,36 @@ const ROLLOUT_KIND_MAP = {
|
|
|
62732
63474
|
/**
|
|
62733
63475
|
* Convert a parsed `@cloudflare/config` config into a Wrangler `RawConfig`.
|
|
62734
63476
|
*
|
|
62735
|
-
* The caller is responsible for
|
|
62736
|
-
*
|
|
62737
|
-
* passing them in.
|
|
63477
|
+
* The caller is responsible for resolving any function/promise wrappers and
|
|
63478
|
+
* parsing the configuration before passing it in.
|
|
62738
63479
|
*
|
|
62739
|
-
* @param
|
|
62740
|
-
* @param settingsConfig The optional parsed settings config, whose fields
|
|
62741
|
-
* are merged onto the result.
|
|
62742
|
-
* @param containerExports The parsed Container exports to include in the
|
|
62743
|
-
* result.
|
|
63480
|
+
* @param config The parsed configuration.
|
|
62744
63481
|
* @returns The corresponding Wrangler `RawConfig`.
|
|
62745
63482
|
*/
|
|
62746
|
-
function convertToWranglerConfig(
|
|
63483
|
+
function convertToWranglerConfig(config$1) {
|
|
62747
63484
|
const result = {};
|
|
62748
|
-
|
|
62749
|
-
|
|
62750
|
-
|
|
62751
|
-
|
|
62752
|
-
|
|
62753
|
-
|
|
62754
|
-
|
|
62755
|
-
|
|
63485
|
+
const { worker, containers } = config$1;
|
|
63486
|
+
if (worker !== void 0) {
|
|
63487
|
+
convertTopLevel(worker, result);
|
|
63488
|
+
convertBindingsAndAssets(worker, result);
|
|
63489
|
+
convertExports(worker, result);
|
|
63490
|
+
convertDomains(worker, result);
|
|
63491
|
+
convertTriggers(worker, result);
|
|
63492
|
+
convertTailConsumers(worker, result);
|
|
63493
|
+
}
|
|
63494
|
+
convertSettings(config$1, result);
|
|
63495
|
+
if (containers.length > 0) result.containers = containers.map((container) => convertContainer(container));
|
|
62756
63496
|
return result;
|
|
62757
63497
|
}
|
|
62758
63498
|
function convertContainer(container) {
|
|
62759
|
-
if (container.schedulingPolicy === "durable-object") throw new UserError("Durable Object-managed Containers are not currently supported by `convertToWranglerConfig()`.", { telemetryMessage: false });
|
|
62760
63499
|
const converted = { name: container.name };
|
|
62761
63500
|
if (container.observability !== void 0) converted.observability = convertContainerObservability(container.observability);
|
|
62762
63501
|
if (container.unsafe !== void 0) converted.unsafe = container.unsafe;
|
|
63502
|
+
if (container.schedulingPolicy === "durable-object") {
|
|
63503
|
+
converted.scheduling_policy = "durable_object";
|
|
63504
|
+
if (container.images !== void 0) converted.images = Object.fromEntries(Object.entries(container.images).map(([name, image]) => [name, convertDurableObjectContainerImage(image)]));
|
|
63505
|
+
return converted;
|
|
63506
|
+
}
|
|
62763
63507
|
converted.image = "dockerfile" in container.image ? container.image.dockerfile : container.image.reference;
|
|
62764
63508
|
converted.max_instances = container.maxInstances;
|
|
62765
63509
|
if ("dockerfile" in container.image) {
|
|
@@ -62788,6 +63532,13 @@ function convertContainer(container) {
|
|
|
62788
63532
|
}
|
|
62789
63533
|
return converted;
|
|
62790
63534
|
}
|
|
63535
|
+
function convertDurableObjectContainerImage(image) {
|
|
63536
|
+
if ("reference" in image) return { image: image.reference };
|
|
63537
|
+
const converted = { dockerfile: image.dockerfile };
|
|
63538
|
+
if (image.buildContext !== void 0) converted.build_context = image.buildContext;
|
|
63539
|
+
if (image.buildVars !== void 0) converted.build_vars = image.buildVars;
|
|
63540
|
+
return converted;
|
|
63541
|
+
}
|
|
62791
63542
|
function convertContainerObservability(observability) {
|
|
62792
63543
|
const converted = {};
|
|
62793
63544
|
if (observability.enabled !== void 0) converted.enabled = observability.enabled;
|
|
@@ -63339,31 +64090,22 @@ const CF_NO_CACHE_QUERY_KEY = "cf-no-cache";
|
|
|
63339
64090
|
const RE_NODE_MODULES = /[/\\]node_modules[/\\]/;
|
|
63340
64091
|
const depsStore = new AsyncLocalStorage();
|
|
63341
64092
|
/**
|
|
63342
|
-
* Dynamically import a
|
|
64093
|
+
* Dynamically import a Cloudflare config file from disk.
|
|
63343
64094
|
*
|
|
63344
|
-
* Returns
|
|
63345
|
-
*
|
|
63346
|
-
* are responsible for unwrapping function/promise/definition wrappers around
|
|
63347
|
-
* each export and validating them.
|
|
64095
|
+
* Returns the module's default export plus the set of file paths imported
|
|
64096
|
+
* during resolution.
|
|
63348
64097
|
*
|
|
63349
64098
|
* @param configPath Filesystem path to the config file. Relative paths are
|
|
63350
64099
|
* resolved against `process.cwd()`.
|
|
63351
|
-
* @param options.include When provided, only exports whose names are listed
|
|
63352
|
-
* survive into the returned `exports` map. Filtering happens before any
|
|
63353
|
-
* resolution or validation.
|
|
63354
64100
|
*/
|
|
63355
|
-
async function loadConfig(configPath
|
|
64101
|
+
async function loadConfig(configPath) {
|
|
63356
64102
|
registerConfigHooks();
|
|
63357
64103
|
const url$2 = pathToFileURL(configPath).href;
|
|
63358
64104
|
const dependencies = /* @__PURE__ */ new Set();
|
|
63359
64105
|
const mod = await depsStore.run(dependencies, () => import(url$2, { with: { [CF_ATTR]: CF_NO_CACHE_VALUE } }));
|
|
63360
|
-
|
|
63361
|
-
for (const [name, value] of Object.entries(mod)) {
|
|
63362
|
-
if (options?.include && !options.include.includes(name)) continue;
|
|
63363
|
-
exports$2[name] = value;
|
|
63364
|
-
}
|
|
64106
|
+
if (!("default" in mod)) throw new Error(`The config file "${configPath}" does not have a default export. Export your configuration with \`export default defineConfig({ ... })\`.`);
|
|
63365
64107
|
return {
|
|
63366
|
-
|
|
64108
|
+
config: mod.default,
|
|
63367
64109
|
dependencies
|
|
63368
64110
|
};
|
|
63369
64111
|
}
|
|
@@ -63455,11 +64197,8 @@ const CROSS_WORKER_BINDING_TYPES = new Set([
|
|
|
63455
64197
|
function isRecord(value) {
|
|
63456
64198
|
return typeof value === "object" && value !== null;
|
|
63457
64199
|
}
|
|
63458
|
-
function
|
|
63459
|
-
return typeof
|
|
63460
|
-
}
|
|
63461
|
-
function normalizeConfigReference(reference, resolved, expectedType) {
|
|
63462
|
-
return isRecord(resolved) && resolved.type === expectedType && typeof resolved.name === "string" ? resolved.name : reference;
|
|
64200
|
+
function normalizeConfigReference(reference, resolved) {
|
|
64201
|
+
return isRecord(resolved) && typeof resolved.name === "string" ? resolved.name : reference;
|
|
63463
64202
|
}
|
|
63464
64203
|
function createDefinitionResolver(ctx) {
|
|
63465
64204
|
const resolvedDefinitions = /* @__PURE__ */ new Map();
|
|
@@ -63477,11 +64216,11 @@ async function normalizeWorkerReferences(resolved, resolveDefinition) {
|
|
|
63477
64216
|
if (!isRecord(resolved) || !isRecord(resolved.env)) return resolved;
|
|
63478
64217
|
const env$2 = { ...resolved.env };
|
|
63479
64218
|
for (const [bindingName, binding] of Object.entries(env$2)) {
|
|
63480
|
-
if (!isRecord(binding) || typeof binding.type !== "string" || !CROSS_WORKER_BINDING_TYPES.has(binding.type) ||
|
|
64219
|
+
if (!isRecord(binding) || typeof binding.type !== "string" || !CROSS_WORKER_BINDING_TYPES.has(binding.type) || typeof binding.worker === "string") continue;
|
|
63481
64220
|
const target = await resolveDefinition(binding.worker);
|
|
63482
64221
|
env$2[bindingName] = {
|
|
63483
64222
|
...binding,
|
|
63484
|
-
worker: normalizeConfigReference(binding.worker, target
|
|
64223
|
+
worker: normalizeConfigReference(binding.worker, target)
|
|
63485
64224
|
};
|
|
63486
64225
|
}
|
|
63487
64226
|
return {
|
|
@@ -63489,7 +64228,7 @@ async function normalizeWorkerReferences(resolved, resolveDefinition) {
|
|
|
63489
64228
|
env: env$2
|
|
63490
64229
|
};
|
|
63491
64230
|
}
|
|
63492
|
-
async function normalizeContainerReferences(resolved, resolveDefinition,
|
|
64231
|
+
async function normalizeContainerReferences(resolved, resolveDefinition, containers) {
|
|
63493
64232
|
const issues = [];
|
|
63494
64233
|
if (!isRecord(resolved) || !isRecord(resolved.exports)) return {
|
|
63495
64234
|
value: resolved,
|
|
@@ -63508,7 +64247,7 @@ async function normalizeContainerReferences(resolved, resolveDefinition, resolve
|
|
|
63508
64247
|
exportName,
|
|
63509
64248
|
"container"
|
|
63510
64249
|
],
|
|
63511
|
-
message: "Container provided as a string. Reference
|
|
64250
|
+
message: "Container provided as a string. Reference a Container definition instead, for example `container: myContainer`."
|
|
63512
64251
|
});
|
|
63513
64252
|
workerExports[exportName] = {
|
|
63514
64253
|
...workerExport,
|
|
@@ -63517,7 +64256,7 @@ async function normalizeContainerReferences(resolved, resolveDefinition, resolve
|
|
|
63517
64256
|
continue;
|
|
63518
64257
|
}
|
|
63519
64258
|
const target = await resolveDefinition(reference);
|
|
63520
|
-
if (isRecord(target) &&
|
|
64259
|
+
if (isRecord(target) && typeof target.name === "string" && !containers.includes(target)) {
|
|
63521
64260
|
issues.push({
|
|
63522
64261
|
code: "custom",
|
|
63523
64262
|
input: reference,
|
|
@@ -63526,7 +64265,7 @@ async function normalizeContainerReferences(resolved, resolveDefinition, resolve
|
|
|
63526
64265
|
exportName,
|
|
63527
64266
|
"container"
|
|
63528
64267
|
],
|
|
63529
|
-
message: `The referenced Container "${target.name}" is not
|
|
64268
|
+
message: `The referenced Container "${target.name}" is not included in the \`containers\` array.`
|
|
63530
64269
|
});
|
|
63531
64270
|
workerExports[exportName] = {
|
|
63532
64271
|
...workerExport,
|
|
@@ -63536,7 +64275,7 @@ async function normalizeContainerReferences(resolved, resolveDefinition, resolve
|
|
|
63536
64275
|
}
|
|
63537
64276
|
workerExports[exportName] = {
|
|
63538
64277
|
...workerExport,
|
|
63539
|
-
container: normalizeConfigReference(reference, target
|
|
64278
|
+
container: normalizeConfigReference(reference, target)
|
|
63540
64279
|
};
|
|
63541
64280
|
}
|
|
63542
64281
|
return {
|
|
@@ -63547,8 +64286,8 @@ async function normalizeContainerReferences(resolved, resolveDefinition, resolve
|
|
|
63547
64286
|
issues
|
|
63548
64287
|
};
|
|
63549
64288
|
}
|
|
63550
|
-
async function
|
|
63551
|
-
return normalizeContainerReferences(await normalizeWorkerReferences(resolved, resolveDefinition), resolveDefinition,
|
|
64289
|
+
async function normalizeWorkerConfig(resolved, resolveDefinition, containers) {
|
|
64290
|
+
return normalizeContainerReferences(await normalizeWorkerReferences(resolved, resolveDefinition), resolveDefinition, containers);
|
|
63552
64291
|
}
|
|
63553
64292
|
function prefixIssues(issues, prefix) {
|
|
63554
64293
|
return issues.map((issue$1) => ({
|
|
@@ -63556,126 +64295,83 @@ function prefixIssues(issues, prefix) {
|
|
|
63556
64295
|
path: [prefix, ...issue$1.path]
|
|
63557
64296
|
}));
|
|
63558
64297
|
}
|
|
63559
|
-
function
|
|
64298
|
+
function validateUniqueContainerNames(config$1) {
|
|
63560
64299
|
const issues = [];
|
|
63561
|
-
const
|
|
63562
|
-
|
|
63563
|
-
|
|
63564
|
-
|
|
63565
|
-
for (const [exportName, config$1] of Object.entries(configExports)) {
|
|
63566
|
-
if (config$1.type !== "container" && config$1.type !== "worker") continue;
|
|
63567
|
-
const resourceType = config$1.type === "container" ? "Container" : "Worker";
|
|
63568
|
-
const exportNames = exportNameByResourceName[config$1.type];
|
|
63569
|
-
const previousExportName = exportNames.get(config$1.name);
|
|
63570
|
-
if (previousExportName !== void 0) {
|
|
64300
|
+
const firstIndexByName = /* @__PURE__ */ new Map();
|
|
64301
|
+
for (const [index, container] of config$1.containers.entries()) {
|
|
64302
|
+
const firstIndex = firstIndexByName.get(container.name);
|
|
64303
|
+
if (firstIndex !== void 0) {
|
|
63571
64304
|
issues.push({
|
|
63572
64305
|
code: "custom",
|
|
63573
|
-
input:
|
|
63574
|
-
path: [
|
|
63575
|
-
|
|
64306
|
+
input: container.name,
|
|
64307
|
+
path: [
|
|
64308
|
+
"containers",
|
|
64309
|
+
index,
|
|
64310
|
+
"name"
|
|
64311
|
+
],
|
|
64312
|
+
message: `The Container name "${container.name}" is also used by \`containers[${firstIndex}]\`. Container names must be unique.`
|
|
63576
64313
|
});
|
|
63577
64314
|
continue;
|
|
63578
64315
|
}
|
|
63579
|
-
|
|
64316
|
+
firstIndexByName.set(container.name, index);
|
|
63580
64317
|
}
|
|
63581
64318
|
return issues;
|
|
63582
64319
|
}
|
|
63583
|
-
function
|
|
64320
|
+
function validateContainerLinks(config$1) {
|
|
63584
64321
|
const issues = [];
|
|
63585
|
-
const
|
|
63586
|
-
for (const
|
|
63587
|
-
|
|
63588
|
-
|
|
63589
|
-
|
|
63590
|
-
|
|
63591
|
-
|
|
63592
|
-
|
|
63593
|
-
|
|
63594
|
-
|
|
63595
|
-
|
|
63596
|
-
|
|
63597
|
-
|
|
63598
|
-
|
|
63599
|
-
|
|
63600
|
-
|
|
63601
|
-
code: "custom",
|
|
63602
|
-
input: containerName,
|
|
63603
|
-
path: path$3,
|
|
63604
|
-
message: `The Container "${containerName}" is not exported from this configuration.`
|
|
63605
|
-
});
|
|
63606
|
-
continue;
|
|
63607
|
-
}
|
|
63608
|
-
const firstReference = firstReferenceByContainerName.get(containerName);
|
|
63609
|
-
if (firstReference !== void 0) {
|
|
63610
|
-
issues.push({
|
|
63611
|
-
code: "custom",
|
|
63612
|
-
input: containerName,
|
|
63613
|
-
path: path$3,
|
|
63614
|
-
message: `The Container "${containerName}" is already referenced by "${firstReference.workerExportName}.exports.${firstReference.durableObjectExportName}". A Container can only be linked to one Durable Object.`
|
|
63615
|
-
});
|
|
63616
|
-
continue;
|
|
63617
|
-
}
|
|
63618
|
-
firstReferenceByContainerName.set(containerName, {
|
|
63619
|
-
workerExportName,
|
|
63620
|
-
durableObjectExportName
|
|
64322
|
+
const firstExportByContainerName = /* @__PURE__ */ new Map();
|
|
64323
|
+
for (const [exportName, workerExport] of Object.entries(config$1.worker?.exports ?? {})) {
|
|
64324
|
+
if (workerExport.type !== "durable-object" || !("container" in workerExport) || workerExport.container === void 0) continue;
|
|
64325
|
+
const containerName = workerExport.container;
|
|
64326
|
+
const firstExportName = firstExportByContainerName.get(containerName);
|
|
64327
|
+
if (firstExportName !== void 0) {
|
|
64328
|
+
issues.push({
|
|
64329
|
+
code: "custom",
|
|
64330
|
+
input: containerName,
|
|
64331
|
+
path: [
|
|
64332
|
+
"worker",
|
|
64333
|
+
"exports",
|
|
64334
|
+
exportName,
|
|
64335
|
+
"container"
|
|
64336
|
+
],
|
|
64337
|
+
message: `The Container "${containerName}" is already referenced by \`worker.exports.${firstExportName}\`. A Container can only be linked to one Durable Object.`
|
|
63621
64338
|
});
|
|
64339
|
+
continue;
|
|
63622
64340
|
}
|
|
64341
|
+
firstExportByContainerName.set(containerName, exportName);
|
|
63623
64342
|
}
|
|
63624
64343
|
return issues;
|
|
63625
64344
|
}
|
|
63626
|
-
/**
|
|
63627
|
-
|
|
63628
|
-
*
|
|
63629
|
-
* Config inputs are resolved once by identity. Top-level Worker and Container
|
|
63630
|
-
* exports are also parsed once by identity. References are resolved only far
|
|
63631
|
-
* enough to replace them with resource names, then Container links are
|
|
63632
|
-
* validated across the exported resources.
|
|
63633
|
-
*/
|
|
63634
|
-
async function resolveAndValidateConfigExports(exports$2, ctx) {
|
|
64345
|
+
/** Resolve and parse the default configuration export. */
|
|
64346
|
+
async function resolveAndParseConfig(input, ctx) {
|
|
63635
64347
|
const resolveDefinition = createDefinitionResolver(ctx);
|
|
63636
|
-
const
|
|
63637
|
-
|
|
63638
|
-
|
|
63639
|
-
const
|
|
63640
|
-
|
|
63641
|
-
|
|
63642
|
-
|
|
63643
|
-
|
|
63644
|
-
const
|
|
63645
|
-
|
|
63646
|
-
|
|
63647
|
-
|
|
63648
|
-
|
|
63649
|
-
|
|
63650
|
-
|
|
63651
|
-
|
|
63652
|
-
|
|
63653
|
-
if (resolved.type === "worker") {
|
|
63654
|
-
const normalized = await normalizeConfigReferences(resolved, resolveDefinition, resolvedExports);
|
|
63655
|
-
issues.push(...prefixIssues(normalized.issues, name));
|
|
63656
|
-
result = InputWorkerSchema.safeParse(normalized.value);
|
|
63657
|
-
} else result = InputContainerSchema.safeParse(resolved);
|
|
63658
|
-
parsedResources.set(input, result);
|
|
63659
|
-
if (!result.success) issues.push(...prefixIssues(result.error.issues, name));
|
|
63660
|
-
}
|
|
63661
|
-
if (result.success) data[name] = result.data;
|
|
63662
|
-
}
|
|
63663
|
-
issues.push(...validateUniqueResourceNames(data), ...validateContainerExportLinks(data));
|
|
64348
|
+
const resolved = await resolveDefinition(input);
|
|
64349
|
+
if (!isRecord(resolved)) return InputConfigSchema.safeParse(resolved);
|
|
64350
|
+
const containerInputs = Array.isArray(resolved.containers) ? resolved.containers : [];
|
|
64351
|
+
const containers = await Promise.all(containerInputs.map((container) => resolveDefinition(container)));
|
|
64352
|
+
const normalizedWorker = resolved.worker === void 0 ? {
|
|
64353
|
+
value: void 0,
|
|
64354
|
+
issues: []
|
|
64355
|
+
} : await normalizeWorkerConfig(await resolveDefinition(resolved.worker), resolveDefinition, containers);
|
|
64356
|
+
const candidate = {
|
|
64357
|
+
...resolved,
|
|
64358
|
+
...resolved.worker === void 0 ? {} : { worker: normalizedWorker.value },
|
|
64359
|
+
...Array.isArray(resolved.containers) ? { containers } : {}
|
|
64360
|
+
};
|
|
64361
|
+
const result = InputConfigSchema.safeParse(candidate);
|
|
64362
|
+
const issues = [...prefixIssues(normalizedWorker.issues, "worker")];
|
|
64363
|
+
if (!result.success) issues.push(...result.error.issues);
|
|
64364
|
+
else issues.push(...validateUniqueContainerNames(result.data), ...validateContainerLinks(result.data));
|
|
63664
64365
|
return issues.length > 0 ? {
|
|
63665
64366
|
success: false,
|
|
63666
64367
|
error: new z$1.ZodError(issues)
|
|
63667
|
-
} :
|
|
63668
|
-
success: true,
|
|
63669
|
-
data
|
|
63670
|
-
};
|
|
64368
|
+
} : result;
|
|
63671
64369
|
}
|
|
63672
|
-
/**
|
|
63673
|
-
|
|
63674
|
-
|
|
63675
|
-
async function loadAndValidateConfig(configPath, ctx, options) {
|
|
63676
|
-
const { exports: exports$2, dependencies } = await loadConfig(configPath, options);
|
|
64370
|
+
/** Load and parse `cloudflare.config.ts`'s default export. */
|
|
64371
|
+
async function loadAndParseConfig(configPath, ctx) {
|
|
64372
|
+
const { config: config$1, dependencies } = await loadConfig(configPath);
|
|
63677
64373
|
return {
|
|
63678
|
-
result: await
|
|
64374
|
+
result: await resolveAndParseConfig(config$1, ctx),
|
|
63679
64375
|
dependencies
|
|
63680
64376
|
};
|
|
63681
64377
|
}
|
|
@@ -63691,7 +64387,7 @@ const NEW_CONFIG_FILENAME = "cloudflare.config.ts";
|
|
|
63691
64387
|
* the project uses.
|
|
63692
64388
|
*
|
|
63693
64389
|
* This mirrors the `@cloudflare/vite-plugin` implementation of
|
|
63694
|
-
* `experimental.newConfig`: load and
|
|
64390
|
+
* `experimental.newConfig`: load and parse via `@cloudflare/config`, convert
|
|
63695
64391
|
* the result to a Wrangler `RawConfig`, then run it through the standard
|
|
63696
64392
|
* Wrangler normalisation/validation pipeline.
|
|
63697
64393
|
*
|
|
@@ -63701,11 +64397,13 @@ const NEW_CONFIG_FILENAME = "cloudflare.config.ts";
|
|
|
63701
64397
|
*/
|
|
63702
64398
|
async function loadNewConfig(configPath, mode) {
|
|
63703
64399
|
if (!existsSync(configPath)) throw new TypeError(`\`experimental.newConfig\` is enabled but no \`${NEW_CONFIG_FILENAME}\` was found at ${configPath}.`);
|
|
63704
|
-
const { result } = await
|
|
64400
|
+
const { result } = await loadAndParseConfig(configPath, {
|
|
64401
|
+
isPreview: false,
|
|
64402
|
+
mode
|
|
64403
|
+
});
|
|
63705
64404
|
if (!result.success) throw new TypeError(`Invalid \`${NEW_CONFIG_FILENAME}\`:\n${result.error.message}`);
|
|
63706
|
-
|
|
63707
|
-
|
|
63708
|
-
const { config: config$1, diagnostics } = normalizeAndValidateConfig(convertToWranglerConfig(worker, result.data.settings?.type === "settings" ? result.data.settings : void 0), configPath, configPath, {});
|
|
64405
|
+
if (result.data.worker === void 0) throw new TypeError(`\`${NEW_CONFIG_FILENAME}\` must define a Worker using the \`worker\` property.`);
|
|
64406
|
+
const { config: config$1, diagnostics } = normalizeAndValidateConfig(convertToWranglerConfig(result.data), configPath, configPath, {});
|
|
63709
64407
|
if (diagnostics.hasWarnings()) console.warn(diagnostics.renderWarnings());
|
|
63710
64408
|
if (diagnostics.hasErrors()) throw new TypeError(diagnostics.renderErrors());
|
|
63711
64409
|
return config$1;
|
|
@@ -64196,24 +64894,40 @@ function cloudflareTest(options) {
|
|
|
64196
64894
|
//#endregion
|
|
64197
64895
|
//#region src/pool/d1.ts
|
|
64198
64896
|
/**
|
|
64199
|
-
* Reads
|
|
64200
|
-
*
|
|
64897
|
+
* Reads D1 migration files, ordered by migration number. Each migration has
|
|
64898
|
+
* its contents split into an array of SQL queries.
|
|
64899
|
+
*
|
|
64900
|
+
* Pass a directory path to keep the historical behaviour of reading top-level
|
|
64901
|
+
* `*.sql` files in that directory. Pass options to discover files the same way
|
|
64902
|
+
* Wrangler does, including nested layouts such as
|
|
64903
|
+
* `0001_init/migration.sql` via `migrationsPattern`.
|
|
64201
64904
|
*/
|
|
64202
|
-
async function readD1Migrations(
|
|
64203
|
-
|
|
64905
|
+
async function readD1Migrations(migrationsPathOrOptions) {
|
|
64906
|
+
const files = listD1MigrationFiles(migrationsPathOrOptions);
|
|
64204
64907
|
const { unstable_splitSqlQuery } = await import("wrangler");
|
|
64205
|
-
|
|
64206
|
-
names.sort((a, b) => {
|
|
64207
|
-
return parseInt(a.split("_")[0]) - parseInt(b.split("_")[0]);
|
|
64208
|
-
});
|
|
64209
|
-
return names.map((name) => {
|
|
64210
|
-
const migrationPath = path.join(migrationsPath, name);
|
|
64908
|
+
return files.map(({ name, filePath }) => {
|
|
64211
64909
|
return {
|
|
64212
64910
|
name,
|
|
64213
|
-
queries: unstable_splitSqlQuery(fs.readFileSync(
|
|
64911
|
+
queries: unstable_splitSqlQuery(fs.readFileSync(filePath, "utf8"))
|
|
64214
64912
|
};
|
|
64215
64913
|
});
|
|
64216
64914
|
}
|
|
64915
|
+
function listD1MigrationFiles(migrationsPathOrOptions) {
|
|
64916
|
+
if (typeof migrationsPathOrOptions === "string") {
|
|
64917
|
+
fs.readdirSync(migrationsPathOrOptions);
|
|
64918
|
+
return getD1MigrationFiles({
|
|
64919
|
+
projectPath: migrationsPathOrOptions,
|
|
64920
|
+
migrationsDir: ".",
|
|
64921
|
+
migrationsPattern: "*.sql"
|
|
64922
|
+
});
|
|
64923
|
+
}
|
|
64924
|
+
if (migrationsPathOrOptions !== null && typeof migrationsPathOrOptions === "object") return getD1MigrationFiles({
|
|
64925
|
+
projectPath: migrationsPathOrOptions.projectPath ?? process.cwd(),
|
|
64926
|
+
migrationsDir: migrationsPathOrOptions.migrationsDir,
|
|
64927
|
+
migrationsPattern: migrationsPathOrOptions.migrationsPattern
|
|
64928
|
+
});
|
|
64929
|
+
throw new TypeError("Failed to execute 'readD1Migrations': parameter 1 is not of type 'string' or 'object'.");
|
|
64930
|
+
}
|
|
64217
64931
|
|
|
64218
64932
|
//#endregion
|
|
64219
64933
|
//#region src/pool/index.ts
|