wrangler 2.0.7 → 2.0.11
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/README.md +1 -1
- package/bin/wrangler.js +16 -4
- package/package.json +2 -2
- package/src/__tests__/configuration.test.ts +165 -70
- package/src/__tests__/dev.test.tsx +158 -66
- package/src/__tests__/helpers/mock-dialogs.ts +41 -1
- package/src/__tests__/init.test.ts +191 -111
- package/src/__tests__/kv.test.ts +8 -8
- package/src/__tests__/package-manager.test.ts +154 -7
- package/src/__tests__/pages.test.ts +115 -18
- package/src/__tests__/publish.test.ts +431 -140
- package/src/__tests__/secret.test.ts +4 -4
- package/src/__tests__/whoami.test.tsx +34 -0
- package/src/cfetch/index.ts +17 -2
- package/src/cfetch/internal.ts +12 -9
- package/src/config/config.ts +1 -1
- package/src/config/validation-helpers.ts +10 -1
- package/src/config/validation.ts +59 -33
- package/src/create-worker-preview.ts +15 -15
- package/src/dev/dev.tsx +4 -15
- package/src/dev/remote.tsx +26 -16
- package/src/dialogs.tsx +48 -0
- package/src/index.tsx +181 -167
- package/src/package-manager.ts +50 -3
- package/src/pages.tsx +298 -228
- package/src/publish.ts +148 -15
- package/src/sites.tsx +52 -14
- package/src/user.tsx +12 -1
- package/src/whoami.tsx +3 -2
- package/src/worker.ts +2 -1
- package/src/zones.ts +73 -0
- package/templates/new-worker-scheduled.js +17 -0
- package/templates/new-worker-scheduled.ts +32 -0
- package/wrangler-dist/cli.js +707 -407
package/wrangler-dist/cli.js
CHANGED
|
@@ -66374,9 +66374,9 @@ var require_build2 = __commonJS({
|
|
|
66374
66374
|
}
|
|
66375
66375
|
});
|
|
66376
66376
|
|
|
66377
|
-
// node_modules/undici/lib/core/symbols.js
|
|
66377
|
+
// ../../node_modules/undici/lib/core/symbols.js
|
|
66378
66378
|
var require_symbols = __commonJS({
|
|
66379
|
-
"node_modules/undici/lib/core/symbols.js"(exports2, module2) {
|
|
66379
|
+
"../../node_modules/undici/lib/core/symbols.js"(exports2, module2) {
|
|
66380
66380
|
init_import_meta_url();
|
|
66381
66381
|
module2.exports = {
|
|
66382
66382
|
kClose: Symbol("close"),
|
|
@@ -66433,9 +66433,9 @@ var require_symbols = __commonJS({
|
|
|
66433
66433
|
}
|
|
66434
66434
|
});
|
|
66435
66435
|
|
|
66436
|
-
// node_modules/undici/lib/core/errors.js
|
|
66436
|
+
// ../../node_modules/undici/lib/core/errors.js
|
|
66437
66437
|
var require_errors = __commonJS({
|
|
66438
|
-
"node_modules/undici/lib/core/errors.js"(exports2, module2) {
|
|
66438
|
+
"../../node_modules/undici/lib/core/errors.js"(exports2, module2) {
|
|
66439
66439
|
"use strict";
|
|
66440
66440
|
init_import_meta_url();
|
|
66441
66441
|
var AbortError2 = class extends Error {
|
|
@@ -66633,9 +66633,9 @@ var require_errors = __commonJS({
|
|
|
66633
66633
|
}
|
|
66634
66634
|
});
|
|
66635
66635
|
|
|
66636
|
-
// node_modules/undici/lib/core/util.js
|
|
66636
|
+
// ../../node_modules/undici/lib/core/util.js
|
|
66637
66637
|
var require_util2 = __commonJS({
|
|
66638
|
-
"node_modules/undici/lib/core/util.js"(exports2, module2) {
|
|
66638
|
+
"../../node_modules/undici/lib/core/util.js"(exports2, module2) {
|
|
66639
66639
|
"use strict";
|
|
66640
66640
|
init_import_meta_url();
|
|
66641
66641
|
var assert12 = require("assert");
|
|
@@ -66941,9 +66941,9 @@ var require_util2 = __commonJS({
|
|
|
66941
66941
|
}
|
|
66942
66942
|
});
|
|
66943
66943
|
|
|
66944
|
-
// node_modules/undici/lib/fetch/constants.js
|
|
66944
|
+
// ../../node_modules/undici/lib/fetch/constants.js
|
|
66945
66945
|
var require_constants2 = __commonJS({
|
|
66946
|
-
"node_modules/undici/lib/fetch/constants.js"(exports2, module2) {
|
|
66946
|
+
"../../node_modules/undici/lib/fetch/constants.js"(exports2, module2) {
|
|
66947
66947
|
"use strict";
|
|
66948
66948
|
init_import_meta_url();
|
|
66949
66949
|
var forbiddenHeaderNames = [
|
|
@@ -67037,9 +67037,9 @@ var require_constants2 = __commonJS({
|
|
|
67037
67037
|
}
|
|
67038
67038
|
});
|
|
67039
67039
|
|
|
67040
|
-
// node_modules/undici/lib/fetch/symbols.js
|
|
67040
|
+
// ../../node_modules/undici/lib/fetch/symbols.js
|
|
67041
67041
|
var require_symbols2 = __commonJS({
|
|
67042
|
-
"node_modules/undici/lib/fetch/symbols.js"(exports2, module2) {
|
|
67042
|
+
"../../node_modules/undici/lib/fetch/symbols.js"(exports2, module2) {
|
|
67043
67043
|
"use strict";
|
|
67044
67044
|
init_import_meta_url();
|
|
67045
67045
|
module2.exports = {
|
|
@@ -67053,9 +67053,9 @@ var require_symbols2 = __commonJS({
|
|
|
67053
67053
|
}
|
|
67054
67054
|
});
|
|
67055
67055
|
|
|
67056
|
-
// node_modules/undici/lib/fetch/file.js
|
|
67056
|
+
// ../../node_modules/undici/lib/fetch/file.js
|
|
67057
67057
|
var require_file = __commonJS({
|
|
67058
|
-
"node_modules/undici/lib/fetch/file.js"(exports2, module2) {
|
|
67058
|
+
"../../node_modules/undici/lib/fetch/file.js"(exports2, module2) {
|
|
67059
67059
|
"use strict";
|
|
67060
67060
|
init_import_meta_url();
|
|
67061
67061
|
var { Blob: Blob2 } = require("buffer");
|
|
@@ -67155,9 +67155,9 @@ var require_file = __commonJS({
|
|
|
67155
67155
|
}
|
|
67156
67156
|
});
|
|
67157
67157
|
|
|
67158
|
-
// node_modules/undici/lib/fetch/util.js
|
|
67158
|
+
// ../../node_modules/undici/lib/fetch/util.js
|
|
67159
67159
|
var require_util3 = __commonJS({
|
|
67160
|
-
"node_modules/undici/lib/fetch/util.js"(exports2, module2) {
|
|
67160
|
+
"../../node_modules/undici/lib/fetch/util.js"(exports2, module2) {
|
|
67161
67161
|
"use strict";
|
|
67162
67162
|
init_import_meta_url();
|
|
67163
67163
|
var { redirectStatus } = require_constants2();
|
|
@@ -67451,9 +67451,9 @@ var require_util3 = __commonJS({
|
|
|
67451
67451
|
}
|
|
67452
67452
|
});
|
|
67453
67453
|
|
|
67454
|
-
// node_modules/undici/lib/fetch/formdata.js
|
|
67454
|
+
// ../../node_modules/undici/lib/fetch/formdata.js
|
|
67455
67455
|
var require_formdata = __commonJS({
|
|
67456
|
-
"node_modules/undici/lib/fetch/formdata.js"(exports2, module2) {
|
|
67456
|
+
"../../node_modules/undici/lib/fetch/formdata.js"(exports2, module2) {
|
|
67457
67457
|
"use strict";
|
|
67458
67458
|
init_import_meta_url();
|
|
67459
67459
|
var { isBlobLike, isFileLike, toUSVString } = require_util3();
|
|
@@ -67612,9 +67612,9 @@ var require_formdata = __commonJS({
|
|
|
67612
67612
|
}
|
|
67613
67613
|
});
|
|
67614
67614
|
|
|
67615
|
-
// node_modules/undici/lib/fetch/body.js
|
|
67615
|
+
// ../../node_modules/undici/lib/fetch/body.js
|
|
67616
67616
|
var require_body = __commonJS({
|
|
67617
|
-
"node_modules/undici/lib/fetch/body.js"(exports2, module2) {
|
|
67617
|
+
"../../node_modules/undici/lib/fetch/body.js"(exports2, module2) {
|
|
67618
67618
|
"use strict";
|
|
67619
67619
|
init_import_meta_url();
|
|
67620
67620
|
var util = require_util2();
|
|
@@ -67838,9 +67838,9 @@ Content-Type: ${value.type || "application/octet-stream"}\r
|
|
|
67838
67838
|
}
|
|
67839
67839
|
});
|
|
67840
67840
|
|
|
67841
|
-
// node_modules/undici/lib/core/request.js
|
|
67841
|
+
// ../../node_modules/undici/lib/core/request.js
|
|
67842
67842
|
var require_request = __commonJS({
|
|
67843
|
-
"node_modules/undici/lib/core/request.js"(exports2, module2) {
|
|
67843
|
+
"../../node_modules/undici/lib/core/request.js"(exports2, module2) {
|
|
67844
67844
|
"use strict";
|
|
67845
67845
|
init_import_meta_url();
|
|
67846
67846
|
var {
|
|
@@ -68070,9 +68070,9 @@ var require_request = __commonJS({
|
|
|
68070
68070
|
}
|
|
68071
68071
|
});
|
|
68072
68072
|
|
|
68073
|
-
// node_modules/undici/lib/dispatcher.js
|
|
68073
|
+
// ../../node_modules/undici/lib/dispatcher.js
|
|
68074
68074
|
var require_dispatcher = __commonJS({
|
|
68075
|
-
"node_modules/undici/lib/dispatcher.js"(exports2, module2) {
|
|
68075
|
+
"../../node_modules/undici/lib/dispatcher.js"(exports2, module2) {
|
|
68076
68076
|
"use strict";
|
|
68077
68077
|
init_import_meta_url();
|
|
68078
68078
|
var EventEmitter2 = require("events");
|
|
@@ -68091,9 +68091,9 @@ var require_dispatcher = __commonJS({
|
|
|
68091
68091
|
}
|
|
68092
68092
|
});
|
|
68093
68093
|
|
|
68094
|
-
// node_modules/undici/lib/dispatcher-base.js
|
|
68094
|
+
// ../../node_modules/undici/lib/dispatcher-base.js
|
|
68095
68095
|
var require_dispatcher_base = __commonJS({
|
|
68096
|
-
"node_modules/undici/lib/dispatcher-base.js"(exports2, module2) {
|
|
68096
|
+
"../../node_modules/undici/lib/dispatcher-base.js"(exports2, module2) {
|
|
68097
68097
|
"use strict";
|
|
68098
68098
|
init_import_meta_url();
|
|
68099
68099
|
var Dispatcher = require_dispatcher();
|
|
@@ -68224,9 +68224,9 @@ var require_dispatcher_base = __commonJS({
|
|
|
68224
68224
|
}
|
|
68225
68225
|
});
|
|
68226
68226
|
|
|
68227
|
-
// node_modules/undici/lib/handler/redirect.js
|
|
68227
|
+
// ../../node_modules/undici/lib/handler/redirect.js
|
|
68228
68228
|
var require_redirect = __commonJS({
|
|
68229
|
-
"node_modules/undici/lib/handler/redirect.js"(exports2, module2) {
|
|
68229
|
+
"../../node_modules/undici/lib/handler/redirect.js"(exports2, module2) {
|
|
68230
68230
|
"use strict";
|
|
68231
68231
|
init_import_meta_url();
|
|
68232
68232
|
var util = require_util2();
|
|
@@ -68364,9 +68364,9 @@ var require_redirect = __commonJS({
|
|
|
68364
68364
|
}
|
|
68365
68365
|
});
|
|
68366
68366
|
|
|
68367
|
-
// node_modules/undici/lib/core/connect.js
|
|
68367
|
+
// ../../node_modules/undici/lib/core/connect.js
|
|
68368
68368
|
var require_connect = __commonJS({
|
|
68369
|
-
"node_modules/undici/lib/core/connect.js"(exports2, module2) {
|
|
68369
|
+
"../../node_modules/undici/lib/core/connect.js"(exports2, module2) {
|
|
68370
68370
|
"use strict";
|
|
68371
68371
|
init_import_meta_url();
|
|
68372
68372
|
var net2 = require("net");
|
|
@@ -68448,9 +68448,9 @@ var require_connect = __commonJS({
|
|
|
68448
68448
|
}
|
|
68449
68449
|
});
|
|
68450
68450
|
|
|
68451
|
-
// node_modules/undici/lib/llhttp/utils.js
|
|
68451
|
+
// ../../node_modules/undici/lib/llhttp/utils.js
|
|
68452
68452
|
var require_utils = __commonJS({
|
|
68453
|
-
"node_modules/undici/lib/llhttp/utils.js"(exports2) {
|
|
68453
|
+
"../../node_modules/undici/lib/llhttp/utils.js"(exports2) {
|
|
68454
68454
|
"use strict";
|
|
68455
68455
|
init_import_meta_url();
|
|
68456
68456
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
@@ -68469,9 +68469,9 @@ var require_utils = __commonJS({
|
|
|
68469
68469
|
}
|
|
68470
68470
|
});
|
|
68471
68471
|
|
|
68472
|
-
// node_modules/undici/lib/llhttp/constants.js
|
|
68472
|
+
// ../../node_modules/undici/lib/llhttp/constants.js
|
|
68473
68473
|
var require_constants3 = __commonJS({
|
|
68474
|
-
"node_modules/undici/lib/llhttp/constants.js"(exports2) {
|
|
68474
|
+
"../../node_modules/undici/lib/llhttp/constants.js"(exports2) {
|
|
68475
68475
|
"use strict";
|
|
68476
68476
|
init_import_meta_url();
|
|
68477
68477
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
@@ -68789,25 +68789,25 @@ var require_constants3 = __commonJS({
|
|
|
68789
68789
|
}
|
|
68790
68790
|
});
|
|
68791
68791
|
|
|
68792
|
-
// node_modules/undici/lib/llhttp/llhttp.wasm.js
|
|
68792
|
+
// ../../node_modules/undici/lib/llhttp/llhttp.wasm.js
|
|
68793
68793
|
var require_llhttp_wasm = __commonJS({
|
|
68794
|
-
"node_modules/undici/lib/llhttp/llhttp.wasm.js"(exports2, module2) {
|
|
68794
|
+
"../../node_modules/undici/lib/llhttp/llhttp.wasm.js"(exports2, module2) {
|
|
68795
68795
|
init_import_meta_url();
|
|
68796
68796
|
module2.exports = "AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzk4AwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAYGAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAAMEBQFwAQ4OBQMBAAIGCAF/AUGgtwQLB/UEHwZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAJGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAKGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQA1DGxsaHR0cF9hbGxvYwAMBm1hbGxvYwA6C2xsaHR0cF9mcmVlAA0EZnJlZQA8D2xsaHR0cF9nZXRfdHlwZQAOFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAPFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAQEWxsaHR0cF9nZXRfbWV0aG9kABEWbGxodHRwX2dldF9zdGF0dXNfY29kZQASEmxsaHR0cF9nZXRfdXBncmFkZQATDGxsaHR0cF9yZXNldAAUDmxsaHR0cF9leGVjdXRlABUUbGxodHRwX3NldHRpbmdzX2luaXQAFg1sbGh0dHBfZmluaXNoABcMbGxodHRwX3BhdXNlABgNbGxodHRwX3Jlc3VtZQAZG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAaEGxsaHR0cF9nZXRfZXJybm8AGxdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAcF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uAB0UbGxodHRwX2dldF9lcnJvcl9wb3MAHhFsbGh0dHBfZXJybm9fbmFtZQAfEmxsaHR0cF9tZXRob2RfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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QZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQBBBCEFIARBiARxQYAERg0CIARBKHFFDQILQQAPC0EAQQMgACkDIFAbIQULIAULXQECf0EAIQECQCAALQAoQQFGDQAgAC8BMiICQZx/akHkAEkNACACQcwBRg0AIAJBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhASAAQYgEcUGABEYNACAAQShxRSEBCyABC6IBAQN/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQMgAC8BMCIEQQJxRQ0BDAILQQAhAyAALwEwIgRBAXFFDQELQQEhAyAALQAoQQFGDQAgAC8BMiIFQZx/akHkAEkNACAFQcwBRg0AIAVBsAJGDQAgBEHAAHENAEEAIQMgBEGIBHFBgARGDQAgBEEocUEARyEDCyAAQQA7ATAgAEEAOgAvIAMLlAEBAn8CQAJAAkAgAC0AKkUNACAALQArRQ0AQQAhASAALwEwIgJBAnFFDQEMAgtBACEBIAAvATAiAkEBcUUNAQtBASEBIAAtAChBAUYNACAALwEyIgBBnH9qQeQASQ0AIABBzAFGDQAgAEGwAkYNACACQcAAcQ0AQQAhASACQYgEcUGABEYNACACQShxQQBHIQELIAELTwAgAEEYakIANwMAIABCADcDACAAQTBqQgA3AwAgAEEoakIANwMAIABBIGpCADcDACAAQRBqQgA3AwAgAEEIakIANwMAIABBuAE2AhxBAAt7AQF/AkAgACgCDCIDDQACQCAAKAIERQ0AIAAgATYCBAsCQCAAIAEgAhC4gICAACIDDQAgACgCDA8LIAAgAzYCHEEAIQMgACgCBCIBRQ0AIAAgASACIAAoAggRgYCAgAAAIgFFDQAgACACNgIUIAAgATYCDCABIQMLIAML8soBAxl/A34FfyOAgICAAEEQayIDJICAgIAAIAEhBCABIQUgASEGIAEhByABIQggASEJIAEhCiABIQsgASEMIAEhDSABIQ4gASEPIAEhECABIREgASESIAEhEyABIRQgASEVIAEhFiABIRcgASEYIAEhGSABIRoCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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QQEhGwwPC0GbASEbDA4LQZwBIRsMDQtBngEhGwwMC0GgASEbDAsLQZ8BIRsMCgtBoQEhGwwJC0GiASEbDAgLQaMBIRsMBwtBpAEhGwwGC0GlASEbDAULQaYBIRsMBAtBpwEhGwwDC0GoASEbDAILQakBIRsMAQtBrwEhGwsDQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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IAAgIDYCAAybAgsgAEEANgIAIB8gI2tBBWohAUEjIRsMswELAkAgASIEIAJHDQBB6wAhGwyaAgsCQAJAIAQtAABBtH9qDggAtgG2AbYBtgG2AbYBAbYBCyAEQQFqIQFB3QAhGwyPAgsgBEEBaiEBQd4AIRsMjgILAkAgASIEIAJHDQBB7AAhGwyZAgsgBC0AAEHFAEcNswEgBEEBaiEBDOQBC0HtACEbIAEiHyACRg2XAiACIB9rIAAoAgAiI2ohICAfIQQgIyEBAkADQCAELQAAIAFBqLKAgABqLQAARw2zASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAICA2AgAMmAILIABBADYCACAfICNrQQRqIQFBLSEbDLABC0HuACEbIAEiHyACRg2WAiACIB9rIAAoAgAiI2ohICAfIQQgIyEBAkADQCAELQAAIAFB8LKAgABqLQAARw2yASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAICA2AgAMlwILIABBADYCACAfICNrQQlqIQFBKSEbDK8BCwJAIAEiASACRw0AQe8AIRsMlgILQQEhGyABLQAAQd8ARw2uASABQQFqIQEM4gELQfAAIRsgASIfIAJGDZQCIAIgH2sgACgCACIjaiEgIB8hBCAjIQEDQCAELQAAIAFBrLKAgABqLQAARw2vASABQQFGDfoBIAFBAWohASAEQQFqIgQgAkcNAAsgACAgNgIADJQCC0HxACEbIAEiHyACRg2TAiACIB9rIAAoAgAiI2ohICAfIQQgIyEBAkADQCAELQAAIAFBrrKAgABqLQAARw2vASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAICA2AgAMlAILIABBADYCACAfICNrQQNqIQFBAiEbDKwBC0HyACEbIAEiHyACRg2SAiACIB9rIAAoAgAiI2ohICAfIQQgIyEBAkADQCAELQAAIAFBkLOAgABqLQAARw2uASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAICA2AgAMkwILIABBADYCACAfICNrQQJqIQFBHyEbDKsBC0HzACEbIAEiHyACRg2RAiACIB9rIAAoAgAiI2ohICAfIQQgIyEBAkADQCAELQAAIAFBkrOAgABqLQAARw2tASABQQFGDQEgAUEBaiEBIARBAWoiBCAC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c3QASW52YWxpZCBtZXRob2QgZm9yIFJUU1AveC54IHJlcXVlc3QARXhwZWN0ZWQgU09VUkNFIG1ldGhvZCBmb3IgSUNFL3gueCByZXF1ZXN0AEludmFsaWQgY2hhciBpbiB1cmwgZnJhZ21lbnQgc3RhcnQARXhwZWN0ZWQgZG90AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fc3RhdHVzAEludmFsaWQgcmVzcG9uc2Ugc3RhdHVzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHBhcmFtZXRlcnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAE1LQUNUSVZJVFkAQ09QWQBOT1RJRlkAUExBWQBQVVQAQ0hFQ0tPVVQAUE9TVABSRVBPUlQASFBFX0lOVkFMSURfQ09OU1RBTlQAR0VUAEhQRV9TVFJJQ1QAUkVESVJFQ1QAQ09OTkVDVABIUEVfSU5WQUxJRF9TVEFUVVMAT1BUSU9OUwBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIASFBFX0NCX0NIVU5LX0hFQURFUgBNS0NBTEVOREFSAFNFVFVQAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIUEVfSU5WQUxJRF9WRVJTSU9OAEhQRV9DQl9NRVNTQUdFX0JFR0lOAEhQRV9JTlZBTElEX0hFQURFUl9UT0tFTgBIUEVfSU5WQUxJRF9VUkwATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAFBBVVNFAFBVUkdFAE1FUkdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QAUFJPUEZJTkQAVU5CSU5EAFJFQklORABIUEVfTEZfRVhQRUNURUQASFBFX1BBVVNFRABIRUFEAEV4cGVjdGVkIEhUVFAvAIwLAAB/CwAAgwoAADkNAADACwAADQsAAA8NAABlCwAAagoAACMLAABMCwAApQsAACMMAACfCgAAjAwAAPcLAAA3CwAAPwwAAG0MAADfCgAAVwwAAEkNAAC0DAAAxwwAANYKAACFDAAAfwoAAFQNAABeCgAAUQoAAJcKAACyCgAA7QwAAEAKAACcCwAAdQsAADoMAAAiDQAA5AsAAPALAACaCwAANA0AADINAAArDQAAewsAAGMKAAA1CgAAVQoAAK4MAADuCwAARQoAAP4MAAD8DAAA6AsAAKgMAADzCgAAlQsAAJMLAADdDAAAoQsAAPMMAADkDAAA/goAAEwKAACiDAAABAsAAMgKAAC6CgAAjgoAAAgNAADeCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWxvc2VlZXAtYWxpdmUAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWN0aW9uZW50LWxlbmd0aG9ucm94eS1jb25uZWN0aW9uAAAAAAAAAAAAAAAAAAAAcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAAAAAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAEAAAIAAAAAAAAAAAAAAAAAAAAAAAADBAAABAQEBAQEBAQEBAQFBAQEBAQEBAQEBAQEAAQABgcEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAACAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv";
|
|
68797
68797
|
}
|
|
68798
68798
|
});
|
|
68799
68799
|
|
|
68800
|
-
// node_modules/undici/lib/llhttp/llhttp_simd.wasm.js
|
|
68800
|
+
// ../../node_modules/undici/lib/llhttp/llhttp_simd.wasm.js
|
|
68801
68801
|
var require_llhttp_simd_wasm = __commonJS({
|
|
68802
|
-
"node_modules/undici/lib/llhttp/llhttp_simd.wasm.js"(exports2, module2) {
|
|
68802
|
+
"../../node_modules/undici/lib/llhttp/llhttp_simd.wasm.js"(exports2, module2) {
|
|
68803
68803
|
init_import_meta_url();
|
|
68804
68804
|
module2.exports = "AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzk4AwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAYGAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAAMEBQFwAQ4OBQMBAAIGCAF/AUGgtwQLB/UEHwZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAJGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAKGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQA1DGxsaHR0cF9hbGxvYwAMBm1hbGxvYwA6C2xsaHR0cF9mcmVlAA0EZnJlZQA8D2xsaHR0cF9nZXRfdHlwZQAOFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAPFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAQEWxsaHR0cF9nZXRfbWV0aG9kABEWbGxodHRwX2dldF9zdGF0dXNfY29kZQASEmxsaHR0cF9nZXRfdXBncmFkZQATDGxsaHR0cF9yZXNldAAUDmxsaHR0cF9leGVjdXRlABUUbGxodHRwX3NldHRpbmdzX2luaXQAFg1sbGh0dHBfZmluaXNoABcMbGxodHRwX3BhdXNlABgNbGxodHRwX3Jlc3VtZQAZG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAaEGxsaHR0cF9nZXRfZXJybm8AGxdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAcF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uAB0UbGxodHRwX2dldF9lcnJvcl9wb3MAHhFsbGh0dHBfZXJybm9fbmFtZQAfEmxsaHR0cF9tZXRob2RfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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C0GcASEbDA0LQZ4BIRsMDAtBoAEhGwwLC0GfASEbDAoLQaEBIRsMCQtBogEhGwwIC0GjASEbDAcLQaQBIRsMBgtBpQEhGwwFC0GmASEbDAQLQacBIRsMAwtBqAEhGwwCC0GpASEbDAELQa8BIRsLA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBsO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aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBwYXJhbWV0ZXJzAFVzZXIgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBJbnZhbGlkIG1pbm9yIHZlcnNpb24ASW52YWxpZCBtYWpvciB2ZXJzaW9uAEV4cGVjdGVkIHNwYWNlIGFmdGVyIHZlcnNpb24ARXhwZWN0ZWQgQ1JMRiBhZnRlciB2ZXJzaW9uAEludmFsaWQgaGVhZGVyIHRva2VuAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdXJsAEludmFsaWQgY2hhcmFjdGVycyBpbiB1cmwAVW5leHBlY3RlZCBzdGFydCBjaGFyIGluIHVybABEb3VibGUgQCBpbiB1cmwARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgARHVwbGljYXRlIENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhciBpbiB1cmwgcGF0aABDb250ZW50LUxlbmd0aCBjYW4ndCBiZSBwcmVzZW50IHdpdGggVHJhbnNmZXItRW5jb2RpbmcASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgc2l6ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl92YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABNS0FDVElWSVRZAENPUFkATk9USUZZAFBMQVkAUFVUAENIRUNLT1VUAFBPU1QAUkVQT1JUAEhQRV9JTlZBTElEX0NPTlNUQU5UAEdFVABIUEVfU1RSSUNUAFJFRElSRUNUAENPTk5FQ1QASFBFX0lOVkFMSURfU1RBVFVTAE9QVElPTlMAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASFBFX0lOVkFMSURfVVJMAE1LQ09MAEFDTABIUEVfSU5URVJOQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBS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bmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==";
|
|
68805
68805
|
}
|
|
68806
68806
|
});
|
|
68807
68807
|
|
|
68808
|
-
// node_modules/undici/lib/client.js
|
|
68808
|
+
// ../../node_modules/undici/lib/client.js
|
|
68809
68809
|
var require_client = __commonJS({
|
|
68810
|
-
"node_modules/undici/lib/client.js"(exports2, module2) {
|
|
68810
|
+
"../../node_modules/undici/lib/client.js"(exports2, module2) {
|
|
68811
68811
|
"use strict";
|
|
68812
68812
|
init_import_meta_url();
|
|
68813
68813
|
var assert12 = require("assert");
|
|
@@ -70103,9 +70103,9 @@ ${len.toString(16)}\r
|
|
|
70103
70103
|
}
|
|
70104
70104
|
});
|
|
70105
70105
|
|
|
70106
|
-
// node_modules/undici/lib/node/fixed-queue.js
|
|
70106
|
+
// ../../node_modules/undici/lib/node/fixed-queue.js
|
|
70107
70107
|
var require_fixed_queue = __commonJS({
|
|
70108
|
-
"node_modules/undici/lib/node/fixed-queue.js"(exports2, module2) {
|
|
70108
|
+
"../../node_modules/undici/lib/node/fixed-queue.js"(exports2, module2) {
|
|
70109
70109
|
"use strict";
|
|
70110
70110
|
init_import_meta_url();
|
|
70111
70111
|
var kSize = 2048;
|
|
@@ -70161,9 +70161,9 @@ var require_fixed_queue = __commonJS({
|
|
|
70161
70161
|
}
|
|
70162
70162
|
});
|
|
70163
70163
|
|
|
70164
|
-
// node_modules/undici/lib/pool-stats.js
|
|
70164
|
+
// ../../node_modules/undici/lib/pool-stats.js
|
|
70165
70165
|
var require_pool_stats = __commonJS({
|
|
70166
|
-
"node_modules/undici/lib/pool-stats.js"(exports2, module2) {
|
|
70166
|
+
"../../node_modules/undici/lib/pool-stats.js"(exports2, module2) {
|
|
70167
70167
|
init_import_meta_url();
|
|
70168
70168
|
var { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require_symbols();
|
|
70169
70169
|
var kPool = Symbol("pool");
|
|
@@ -70194,9 +70194,9 @@ var require_pool_stats = __commonJS({
|
|
|
70194
70194
|
}
|
|
70195
70195
|
});
|
|
70196
70196
|
|
|
70197
|
-
// node_modules/undici/lib/pool-base.js
|
|
70197
|
+
// ../../node_modules/undici/lib/pool-base.js
|
|
70198
70198
|
var require_pool_base = __commonJS({
|
|
70199
|
-
"node_modules/undici/lib/pool-base.js"(exports2, module2) {
|
|
70199
|
+
"../../node_modules/undici/lib/pool-base.js"(exports2, module2) {
|
|
70200
70200
|
"use strict";
|
|
70201
70201
|
init_import_meta_url();
|
|
70202
70202
|
var DispatcherBase = require_dispatcher_base();
|
|
@@ -70350,9 +70350,9 @@ var require_pool_base = __commonJS({
|
|
|
70350
70350
|
}
|
|
70351
70351
|
});
|
|
70352
70352
|
|
|
70353
|
-
// node_modules/undici/lib/pool.js
|
|
70353
|
+
// ../../node_modules/undici/lib/pool.js
|
|
70354
70354
|
var require_pool = __commonJS({
|
|
70355
|
-
"node_modules/undici/lib/pool.js"(exports2, module2) {
|
|
70355
|
+
"../../node_modules/undici/lib/pool.js"(exports2, module2) {
|
|
70356
70356
|
"use strict";
|
|
70357
70357
|
init_import_meta_url();
|
|
70358
70358
|
var {
|
|
@@ -70426,9 +70426,9 @@ var require_pool = __commonJS({
|
|
|
70426
70426
|
}
|
|
70427
70427
|
});
|
|
70428
70428
|
|
|
70429
|
-
// node_modules/undici/lib/balanced-pool.js
|
|
70429
|
+
// ../../node_modules/undici/lib/balanced-pool.js
|
|
70430
70430
|
var require_balanced_pool = __commonJS({
|
|
70431
|
-
"node_modules/undici/lib/balanced-pool.js"(exports2, module2) {
|
|
70431
|
+
"../../node_modules/undici/lib/balanced-pool.js"(exports2, module2) {
|
|
70432
70432
|
"use strict";
|
|
70433
70433
|
init_import_meta_url();
|
|
70434
70434
|
var {
|
|
@@ -70502,9 +70502,9 @@ var require_balanced_pool = __commonJS({
|
|
|
70502
70502
|
}
|
|
70503
70503
|
});
|
|
70504
70504
|
|
|
70505
|
-
// node_modules/undici/lib/compat/dispatcher-weakref.js
|
|
70505
|
+
// ../../node_modules/undici/lib/compat/dispatcher-weakref.js
|
|
70506
70506
|
var require_dispatcher_weakref = __commonJS({
|
|
70507
|
-
"node_modules/undici/lib/compat/dispatcher-weakref.js"(exports2, module2) {
|
|
70507
|
+
"../../node_modules/undici/lib/compat/dispatcher-weakref.js"(exports2, module2) {
|
|
70508
70508
|
"use strict";
|
|
70509
70509
|
init_import_meta_url();
|
|
70510
70510
|
var { kConnected, kSize } = require_symbols();
|
|
@@ -70537,9 +70537,9 @@ var require_dispatcher_weakref = __commonJS({
|
|
|
70537
70537
|
}
|
|
70538
70538
|
});
|
|
70539
70539
|
|
|
70540
|
-
// node_modules/undici/lib/agent.js
|
|
70540
|
+
// ../../node_modules/undici/lib/agent.js
|
|
70541
70541
|
var require_agent = __commonJS({
|
|
70542
|
-
"node_modules/undici/lib/agent.js"(exports2, module2) {
|
|
70542
|
+
"../../node_modules/undici/lib/agent.js"(exports2, module2) {
|
|
70543
70543
|
"use strict";
|
|
70544
70544
|
init_import_meta_url();
|
|
70545
70545
|
var { InvalidArgumentError } = require_errors();
|
|
@@ -70656,9 +70656,9 @@ var require_agent = __commonJS({
|
|
|
70656
70656
|
}
|
|
70657
70657
|
});
|
|
70658
70658
|
|
|
70659
|
-
// node_modules/undici/lib/api/readable.js
|
|
70659
|
+
// ../../node_modules/undici/lib/api/readable.js
|
|
70660
70660
|
var require_readable = __commonJS({
|
|
70661
|
-
"node_modules/undici/lib/api/readable.js"(exports2, module2) {
|
|
70661
|
+
"../../node_modules/undici/lib/api/readable.js"(exports2, module2) {
|
|
70662
70662
|
"use strict";
|
|
70663
70663
|
init_import_meta_url();
|
|
70664
70664
|
var assert12 = require("assert");
|
|
@@ -70871,9 +70871,9 @@ var require_readable = __commonJS({
|
|
|
70871
70871
|
}
|
|
70872
70872
|
});
|
|
70873
70873
|
|
|
70874
|
-
// node_modules/undici/lib/api/abort-signal.js
|
|
70874
|
+
// ../../node_modules/undici/lib/api/abort-signal.js
|
|
70875
70875
|
var require_abort_signal = __commonJS({
|
|
70876
|
-
"node_modules/undici/lib/api/abort-signal.js"(exports2, module2) {
|
|
70876
|
+
"../../node_modules/undici/lib/api/abort-signal.js"(exports2, module2) {
|
|
70877
70877
|
init_import_meta_url();
|
|
70878
70878
|
var { RequestAbortedError } = require_errors();
|
|
70879
70879
|
var kListener = Symbol("kListener");
|
|
@@ -70924,9 +70924,9 @@ var require_abort_signal = __commonJS({
|
|
|
70924
70924
|
}
|
|
70925
70925
|
});
|
|
70926
70926
|
|
|
70927
|
-
// node_modules/undici/lib/api/api-request.js
|
|
70927
|
+
// ../../node_modules/undici/lib/api/api-request.js
|
|
70928
70928
|
var require_api_request = __commonJS({
|
|
70929
|
-
"node_modules/undici/lib/api/api-request.js"(exports2, module2) {
|
|
70929
|
+
"../../node_modules/undici/lib/api/api-request.js"(exports2, module2) {
|
|
70930
70930
|
"use strict";
|
|
70931
70931
|
init_import_meta_url();
|
|
70932
70932
|
var Readable = require_readable();
|
|
@@ -71070,9 +71070,9 @@ var require_api_request = __commonJS({
|
|
|
71070
71070
|
}
|
|
71071
71071
|
});
|
|
71072
71072
|
|
|
71073
|
-
// node_modules/undici/lib/api/api-stream.js
|
|
71073
|
+
// ../../node_modules/undici/lib/api/api-stream.js
|
|
71074
71074
|
var require_api_stream = __commonJS({
|
|
71075
|
-
"node_modules/undici/lib/api/api-stream.js"(exports2, module2) {
|
|
71075
|
+
"../../node_modules/undici/lib/api/api-stream.js"(exports2, module2) {
|
|
71076
71076
|
"use strict";
|
|
71077
71077
|
init_import_meta_url();
|
|
71078
71078
|
var { finished } = require("stream");
|
|
@@ -71225,9 +71225,9 @@ var require_api_stream = __commonJS({
|
|
|
71225
71225
|
}
|
|
71226
71226
|
});
|
|
71227
71227
|
|
|
71228
|
-
// node_modules/undici/lib/api/api-pipeline.js
|
|
71228
|
+
// ../../node_modules/undici/lib/api/api-pipeline.js
|
|
71229
71229
|
var require_api_pipeline = __commonJS({
|
|
71230
|
-
"node_modules/undici/lib/api/api-pipeline.js"(exports2, module2) {
|
|
71230
|
+
"../../node_modules/undici/lib/api/api-pipeline.js"(exports2, module2) {
|
|
71231
71231
|
"use strict";
|
|
71232
71232
|
init_import_meta_url();
|
|
71233
71233
|
var {
|
|
@@ -71424,9 +71424,9 @@ var require_api_pipeline = __commonJS({
|
|
|
71424
71424
|
}
|
|
71425
71425
|
});
|
|
71426
71426
|
|
|
71427
|
-
// node_modules/undici/lib/api/api-upgrade.js
|
|
71427
|
+
// ../../node_modules/undici/lib/api/api-upgrade.js
|
|
71428
71428
|
var require_api_upgrade = __commonJS({
|
|
71429
|
-
"node_modules/undici/lib/api/api-upgrade.js"(exports2, module2) {
|
|
71429
|
+
"../../node_modules/undici/lib/api/api-upgrade.js"(exports2, module2) {
|
|
71430
71430
|
"use strict";
|
|
71431
71431
|
init_import_meta_url();
|
|
71432
71432
|
var { InvalidArgumentError, RequestAbortedError, SocketError } = require_errors();
|
|
@@ -71515,9 +71515,9 @@ var require_api_upgrade = __commonJS({
|
|
|
71515
71515
|
}
|
|
71516
71516
|
});
|
|
71517
71517
|
|
|
71518
|
-
// node_modules/undici/lib/api/api-connect.js
|
|
71518
|
+
// ../../node_modules/undici/lib/api/api-connect.js
|
|
71519
71519
|
var require_api_connect = __commonJS({
|
|
71520
|
-
"node_modules/undici/lib/api/api-connect.js"(exports2, module2) {
|
|
71520
|
+
"../../node_modules/undici/lib/api/api-connect.js"(exports2, module2) {
|
|
71521
71521
|
"use strict";
|
|
71522
71522
|
init_import_meta_url();
|
|
71523
71523
|
var { InvalidArgumentError, RequestAbortedError, SocketError } = require_errors();
|
|
@@ -71600,9 +71600,9 @@ var require_api_connect = __commonJS({
|
|
|
71600
71600
|
}
|
|
71601
71601
|
});
|
|
71602
71602
|
|
|
71603
|
-
// node_modules/undici/lib/api/index.js
|
|
71603
|
+
// ../../node_modules/undici/lib/api/index.js
|
|
71604
71604
|
var require_api = __commonJS({
|
|
71605
|
-
"node_modules/undici/lib/api/index.js"(exports2, module2) {
|
|
71605
|
+
"../../node_modules/undici/lib/api/index.js"(exports2, module2) {
|
|
71606
71606
|
"use strict";
|
|
71607
71607
|
init_import_meta_url();
|
|
71608
71608
|
module2.exports.request = require_api_request();
|
|
@@ -71613,9 +71613,9 @@ var require_api = __commonJS({
|
|
|
71613
71613
|
}
|
|
71614
71614
|
});
|
|
71615
71615
|
|
|
71616
|
-
// node_modules/undici/lib/mock/mock-errors.js
|
|
71616
|
+
// ../../node_modules/undici/lib/mock/mock-errors.js
|
|
71617
71617
|
var require_mock_errors = __commonJS({
|
|
71618
|
-
"node_modules/undici/lib/mock/mock-errors.js"(exports2, module2) {
|
|
71618
|
+
"../../node_modules/undici/lib/mock/mock-errors.js"(exports2, module2) {
|
|
71619
71619
|
"use strict";
|
|
71620
71620
|
init_import_meta_url();
|
|
71621
71621
|
var { UndiciError } = require_errors();
|
|
@@ -71634,9 +71634,9 @@ var require_mock_errors = __commonJS({
|
|
|
71634
71634
|
}
|
|
71635
71635
|
});
|
|
71636
71636
|
|
|
71637
|
-
// node_modules/undici/lib/mock/mock-symbols.js
|
|
71637
|
+
// ../../node_modules/undici/lib/mock/mock-symbols.js
|
|
71638
71638
|
var require_mock_symbols = __commonJS({
|
|
71639
|
-
"node_modules/undici/lib/mock/mock-symbols.js"(exports2, module2) {
|
|
71639
|
+
"../../node_modules/undici/lib/mock/mock-symbols.js"(exports2, module2) {
|
|
71640
71640
|
"use strict";
|
|
71641
71641
|
init_import_meta_url();
|
|
71642
71642
|
module2.exports = {
|
|
@@ -71663,9 +71663,9 @@ var require_mock_symbols = __commonJS({
|
|
|
71663
71663
|
}
|
|
71664
71664
|
});
|
|
71665
71665
|
|
|
71666
|
-
// node_modules/undici/lib/mock/mock-utils.js
|
|
71666
|
+
// ../../node_modules/undici/lib/mock/mock-utils.js
|
|
71667
71667
|
var require_mock_utils = __commonJS({
|
|
71668
|
-
"node_modules/undici/lib/mock/mock-utils.js"(exports2, module2) {
|
|
71668
|
+
"../../node_modules/undici/lib/mock/mock-utils.js"(exports2, module2) {
|
|
71669
71669
|
"use strict";
|
|
71670
71670
|
init_import_meta_url();
|
|
71671
71671
|
var { MockNotMatchedError } = require_mock_errors();
|
|
@@ -72035,9 +72035,9 @@ var require_mock_utils = __commonJS({
|
|
|
72035
72035
|
}
|
|
72036
72036
|
});
|
|
72037
72037
|
|
|
72038
|
-
// node_modules/undici/lib/mock/mock-interceptor.js
|
|
72038
|
+
// ../../node_modules/undici/lib/mock/mock-interceptor.js
|
|
72039
72039
|
var require_mock_interceptor = __commonJS({
|
|
72040
|
-
"node_modules/undici/lib/mock/mock-interceptor.js"(exports2, module2) {
|
|
72040
|
+
"../../node_modules/undici/lib/mock/mock-interceptor.js"(exports2, module2) {
|
|
72041
72041
|
"use strict";
|
|
72042
72042
|
init_import_meta_url();
|
|
72043
72043
|
var { getResponseData, buildKey, addMockDispatch } = require_mock_utils();
|
|
@@ -72168,9 +72168,9 @@ var require_mock_interceptor = __commonJS({
|
|
|
72168
72168
|
}
|
|
72169
72169
|
});
|
|
72170
72170
|
|
|
72171
|
-
// node_modules/undici/lib/mock/mock-client.js
|
|
72171
|
+
// ../../node_modules/undici/lib/mock/mock-client.js
|
|
72172
72172
|
var require_mock_client = __commonJS({
|
|
72173
|
-
"node_modules/undici/lib/mock/mock-client.js"(exports2, module2) {
|
|
72173
|
+
"../../node_modules/undici/lib/mock/mock-client.js"(exports2, module2) {
|
|
72174
72174
|
"use strict";
|
|
72175
72175
|
init_import_meta_url();
|
|
72176
72176
|
var { promisify: promisify2 } = require("util");
|
|
@@ -72219,9 +72219,9 @@ var require_mock_client = __commonJS({
|
|
|
72219
72219
|
}
|
|
72220
72220
|
});
|
|
72221
72221
|
|
|
72222
|
-
// node_modules/undici/lib/mock/mock-pool.js
|
|
72222
|
+
// ../../node_modules/undici/lib/mock/mock-pool.js
|
|
72223
72223
|
var require_mock_pool = __commonJS({
|
|
72224
|
-
"node_modules/undici/lib/mock/mock-pool.js"(exports2, module2) {
|
|
72224
|
+
"../../node_modules/undici/lib/mock/mock-pool.js"(exports2, module2) {
|
|
72225
72225
|
"use strict";
|
|
72226
72226
|
init_import_meta_url();
|
|
72227
72227
|
var { promisify: promisify2 } = require("util");
|
|
@@ -72270,9 +72270,9 @@ var require_mock_pool = __commonJS({
|
|
|
72270
72270
|
}
|
|
72271
72271
|
});
|
|
72272
72272
|
|
|
72273
|
-
// node_modules/undici/lib/mock/pluralizer.js
|
|
72273
|
+
// ../../node_modules/undici/lib/mock/pluralizer.js
|
|
72274
72274
|
var require_pluralizer = __commonJS({
|
|
72275
|
-
"node_modules/undici/lib/mock/pluralizer.js"(exports2, module2) {
|
|
72275
|
+
"../../node_modules/undici/lib/mock/pluralizer.js"(exports2, module2) {
|
|
72276
72276
|
"use strict";
|
|
72277
72277
|
init_import_meta_url();
|
|
72278
72278
|
var singulars = {
|
|
@@ -72302,9 +72302,9 @@ var require_pluralizer = __commonJS({
|
|
|
72302
72302
|
}
|
|
72303
72303
|
});
|
|
72304
72304
|
|
|
72305
|
-
// node_modules/undici/lib/mock/pending-interceptors-formatter.js
|
|
72305
|
+
// ../../node_modules/undici/lib/mock/pending-interceptors-formatter.js
|
|
72306
72306
|
var require_pending_interceptors_formatter = __commonJS({
|
|
72307
|
-
"node_modules/undici/lib/mock/pending-interceptors-formatter.js"(exports2, module2) {
|
|
72307
|
+
"../../node_modules/undici/lib/mock/pending-interceptors-formatter.js"(exports2, module2) {
|
|
72308
72308
|
"use strict";
|
|
72309
72309
|
init_import_meta_url();
|
|
72310
72310
|
var { Transform } = require("stream");
|
|
@@ -72340,9 +72340,9 @@ var require_pending_interceptors_formatter = __commonJS({
|
|
|
72340
72340
|
}
|
|
72341
72341
|
});
|
|
72342
72342
|
|
|
72343
|
-
// node_modules/undici/lib/mock/mock-agent.js
|
|
72343
|
+
// ../../node_modules/undici/lib/mock/mock-agent.js
|
|
72344
72344
|
var require_mock_agent = __commonJS({
|
|
72345
|
-
"node_modules/undici/lib/mock/mock-agent.js"(exports2, module2) {
|
|
72345
|
+
"../../node_modules/undici/lib/mock/mock-agent.js"(exports2, module2) {
|
|
72346
72346
|
"use strict";
|
|
72347
72347
|
init_import_meta_url();
|
|
72348
72348
|
var { kClients } = require_symbols();
|
|
@@ -72478,9 +72478,9 @@ ${pendingInterceptorsFormatter.format(pending)}
|
|
|
72478
72478
|
}
|
|
72479
72479
|
});
|
|
72480
72480
|
|
|
72481
|
-
// node_modules/undici/lib/proxy-agent.js
|
|
72481
|
+
// ../../node_modules/undici/lib/proxy-agent.js
|
|
72482
72482
|
var require_proxy_agent = __commonJS({
|
|
72483
|
-
"node_modules/undici/lib/proxy-agent.js"(exports2, module2) {
|
|
72483
|
+
"../../node_modules/undici/lib/proxy-agent.js"(exports2, module2) {
|
|
72484
72484
|
"use strict";
|
|
72485
72485
|
init_import_meta_url();
|
|
72486
72486
|
var { kProxy, kClose, kDestroy } = require_symbols();
|
|
@@ -72539,9 +72539,9 @@ var require_proxy_agent = __commonJS({
|
|
|
72539
72539
|
}
|
|
72540
72540
|
});
|
|
72541
72541
|
|
|
72542
|
-
// node_modules/undici/lib/global.js
|
|
72542
|
+
// ../../node_modules/undici/lib/global.js
|
|
72543
72543
|
var require_global = __commonJS({
|
|
72544
|
-
"node_modules/undici/lib/global.js"(exports2, module2) {
|
|
72544
|
+
"../../node_modules/undici/lib/global.js"(exports2, module2) {
|
|
72545
72545
|
"use strict";
|
|
72546
72546
|
init_import_meta_url();
|
|
72547
72547
|
var globalDispatcher = Symbol.for("undici.globalDispatcher.1");
|
|
@@ -72571,9 +72571,9 @@ var require_global = __commonJS({
|
|
|
72571
72571
|
}
|
|
72572
72572
|
});
|
|
72573
72573
|
|
|
72574
|
-
// node_modules/undici/lib/fetch/headers.js
|
|
72574
|
+
// ../../node_modules/undici/lib/fetch/headers.js
|
|
72575
72575
|
var require_headers = __commonJS({
|
|
72576
|
-
"node_modules/undici/lib/fetch/headers.js"(exports2, module2) {
|
|
72576
|
+
"../../node_modules/undici/lib/fetch/headers.js"(exports2, module2) {
|
|
72577
72577
|
"use strict";
|
|
72578
72578
|
init_import_meta_url();
|
|
72579
72579
|
var { validateHeaderName, validateHeaderValue } = require("http");
|
|
@@ -72842,9 +72842,9 @@ var require_headers = __commonJS({
|
|
|
72842
72842
|
}
|
|
72843
72843
|
});
|
|
72844
72844
|
|
|
72845
|
-
// node_modules/undici/lib/fetch/response.js
|
|
72845
|
+
// ../../node_modules/undici/lib/fetch/response.js
|
|
72846
72846
|
var require_response = __commonJS({
|
|
72847
|
-
"node_modules/undici/lib/fetch/response.js"(exports2, module2) {
|
|
72847
|
+
"../../node_modules/undici/lib/fetch/response.js"(exports2, module2) {
|
|
72848
72848
|
"use strict";
|
|
72849
72849
|
init_import_meta_url();
|
|
72850
72850
|
var { Headers: Headers2, HeadersList, fill } = require_headers();
|
|
@@ -73168,9 +73168,9 @@ var require_response = __commonJS({
|
|
|
73168
73168
|
}
|
|
73169
73169
|
});
|
|
73170
73170
|
|
|
73171
|
-
// node_modules/undici/lib/fetch/request.js
|
|
73171
|
+
// ../../node_modules/undici/lib/fetch/request.js
|
|
73172
73172
|
var require_request2 = __commonJS({
|
|
73173
|
-
"node_modules/undici/lib/fetch/request.js"(exports2, module2) {
|
|
73173
|
+
"../../node_modules/undici/lib/fetch/request.js"(exports2, module2) {
|
|
73174
73174
|
"use strict";
|
|
73175
73175
|
init_import_meta_url();
|
|
73176
73176
|
var { extractBody, mixinBody, cloneBody } = require_body();
|
|
@@ -73618,9 +73618,9 @@ var require_request2 = __commonJS({
|
|
|
73618
73618
|
}
|
|
73619
73619
|
});
|
|
73620
73620
|
|
|
73621
|
-
// node_modules/undici/lib/fetch/dataURL.js
|
|
73621
|
+
// ../../node_modules/undici/lib/fetch/dataURL.js
|
|
73622
73622
|
var require_dataURL = __commonJS({
|
|
73623
|
-
"node_modules/undici/lib/fetch/dataURL.js"(exports2, module2) {
|
|
73623
|
+
"../../node_modules/undici/lib/fetch/dataURL.js"(exports2, module2) {
|
|
73624
73624
|
init_import_meta_url();
|
|
73625
73625
|
var assert12 = require("assert");
|
|
73626
73626
|
var { atob } = require("buffer");
|
|
@@ -73825,9 +73825,9 @@ var require_dataURL = __commonJS({
|
|
|
73825
73825
|
}
|
|
73826
73826
|
});
|
|
73827
73827
|
|
|
73828
|
-
// node_modules/undici/lib/fetch/index.js
|
|
73828
|
+
// ../../node_modules/undici/lib/fetch/index.js
|
|
73829
73829
|
var require_fetch = __commonJS({
|
|
73830
|
-
"node_modules/undici/lib/fetch/index.js"(exports2, module2) {
|
|
73830
|
+
"../../node_modules/undici/lib/fetch/index.js"(exports2, module2) {
|
|
73831
73831
|
"use strict";
|
|
73832
73832
|
init_import_meta_url();
|
|
73833
73833
|
var {
|
|
@@ -74740,9 +74740,9 @@ var require_fetch = __commonJS({
|
|
|
74740
74740
|
}
|
|
74741
74741
|
});
|
|
74742
74742
|
|
|
74743
|
-
// node_modules/undici/index.js
|
|
74743
|
+
// ../../node_modules/undici/index.js
|
|
74744
74744
|
var require_undici = __commonJS({
|
|
74745
|
-
"node_modules/undici/index.js"(exports2, module2) {
|
|
74745
|
+
"../../node_modules/undici/index.js"(exports2, module2) {
|
|
74746
74746
|
"use strict";
|
|
74747
74747
|
init_import_meta_url();
|
|
74748
74748
|
var Client = require_client();
|
|
@@ -75888,7 +75888,7 @@ var require_SelectInput = __commonJS({
|
|
|
75888
75888
|
var ink_1 = require_build2();
|
|
75889
75889
|
var Indicator_1 = require_Indicator();
|
|
75890
75890
|
var Item_1 = require_Item();
|
|
75891
|
-
function
|
|
75891
|
+
function SelectInput4({ items = [], isFocused = true, initialIndex = 0, indicatorComponent = Indicator_1.default, itemComponent = Item_1.default, limit: customLimit, onSelect, onHighlight }) {
|
|
75892
75892
|
const [rotateIndex, setRotateIndex] = react_1.useState(0);
|
|
75893
75893
|
const [selectedIndex, setSelectedIndex] = react_1.useState(initialIndex);
|
|
75894
75894
|
const hasLimit = typeof customLimit === "number" && items.length > customLimit;
|
|
@@ -75949,7 +75949,7 @@ var require_SelectInput = __commonJS({
|
|
|
75949
75949
|
return React7.createElement(ink_1.Box, { key: (_a2 = item.key) !== null && _a2 !== void 0 ? _a2 : item.value }, React7.createElement(indicatorComponent, { isSelected }), React7.createElement(itemComponent, { ...item, isSelected }));
|
|
75950
75950
|
}));
|
|
75951
75951
|
}
|
|
75952
|
-
exports2.default =
|
|
75952
|
+
exports2.default = SelectInput4;
|
|
75953
75953
|
}
|
|
75954
75954
|
});
|
|
75955
75955
|
|
|
@@ -116942,7 +116942,7 @@ var yargs_default = Yargs;
|
|
|
116942
116942
|
|
|
116943
116943
|
// package.json
|
|
116944
116944
|
var name = "wrangler";
|
|
116945
|
-
var version = "2.0.
|
|
116945
|
+
var version = "2.0.11";
|
|
116946
116946
|
var author = "wrangler@cloudflare.com";
|
|
116947
116947
|
var description = "Command-line interface for all things Cloudflare Workers";
|
|
116948
116948
|
var bin = {
|
|
@@ -116982,7 +116982,7 @@ var dependencies = {
|
|
|
116982
116982
|
"@esbuild-plugins/node-modules-polyfill": "^0.1.4",
|
|
116983
116983
|
"blake3-wasm": "^2.1.5",
|
|
116984
116984
|
esbuild: "0.14.34",
|
|
116985
|
-
miniflare: "2.
|
|
116985
|
+
miniflare: "^2.5.0",
|
|
116986
116986
|
nanoid: "^3.3.3",
|
|
116987
116987
|
"path-to-regexp": "^6.2.0",
|
|
116988
116988
|
selfsigned: "^2.0.1",
|
|
@@ -117223,6 +117223,7 @@ function indexLocation(file, index) {
|
|
|
117223
117223
|
|
|
117224
117224
|
// src/cfetch/internal.ts
|
|
117225
117225
|
init_import_meta_url();
|
|
117226
|
+
var import_node_assert2 = __toESM(require("node:assert"));
|
|
117226
117227
|
var import_undici2 = __toESM(require_undici());
|
|
117227
117228
|
|
|
117228
117229
|
// src/environment-variables.ts
|
|
@@ -117940,6 +117941,13 @@ async function requireAuth(config) {
|
|
|
117940
117941
|
}
|
|
117941
117942
|
return accountId;
|
|
117942
117943
|
}
|
|
117944
|
+
function requireApiToken() {
|
|
117945
|
+
const authToken = getAPIToken();
|
|
117946
|
+
if (!authToken) {
|
|
117947
|
+
throw new Error("No API token found.");
|
|
117948
|
+
}
|
|
117949
|
+
return authToken;
|
|
117950
|
+
}
|
|
117943
117951
|
|
|
117944
117952
|
// src/cfetch/internal.ts
|
|
117945
117953
|
var getCloudflareAPIBaseURL = getEnvironmentVariableFactory({
|
|
@@ -117948,10 +117956,12 @@ var getCloudflareAPIBaseURL = getEnvironmentVariableFactory({
|
|
|
117948
117956
|
defaultValue: "https://api.cloudflare.com/client/v4"
|
|
117949
117957
|
});
|
|
117950
117958
|
async function fetchInternal(resource, init = {}, queryParams, abortSignal) {
|
|
117959
|
+
(0, import_node_assert2.default)(resource.startsWith("/"), `CF API fetch - resource path must start with a "/" but got "${resource}"`);
|
|
117951
117960
|
await requireLoggedIn();
|
|
117952
117961
|
const apiToken = requireApiToken();
|
|
117953
117962
|
const headers = cloneHeaders(init.headers);
|
|
117954
117963
|
addAuthorizationHeaderIfUnspecified(headers, apiToken);
|
|
117964
|
+
addUserAgent(headers);
|
|
117955
117965
|
const queryString = queryParams ? `?${queryParams.toString()}` : "";
|
|
117956
117966
|
const method = init.method ?? "GET";
|
|
117957
117967
|
const response = await (0, import_undici2.fetch)(`${getCloudflareAPIBaseURL()}${resource}${queryString}`, {
|
|
@@ -117993,18 +118003,14 @@ async function requireLoggedIn() {
|
|
|
117993
118003
|
throw new Error("Not logged in.");
|
|
117994
118004
|
}
|
|
117995
118005
|
}
|
|
117996
|
-
function requireApiToken() {
|
|
117997
|
-
const authToken = getAPIToken();
|
|
117998
|
-
if (!authToken) {
|
|
117999
|
-
throw new Error("No API token found.");
|
|
118000
|
-
}
|
|
118001
|
-
return authToken;
|
|
118002
|
-
}
|
|
118003
118006
|
function addAuthorizationHeaderIfUnspecified(headers, apiToken) {
|
|
118004
118007
|
if (!("Authorization" in headers)) {
|
|
118005
118008
|
headers["Authorization"] = `Bearer ${apiToken}`;
|
|
118006
118009
|
}
|
|
118007
118010
|
}
|
|
118011
|
+
function addUserAgent(headers) {
|
|
118012
|
+
headers["User-Agent"] = `wrangler/${version}`;
|
|
118013
|
+
}
|
|
118008
118014
|
async function fetchKVGetValue(accountId, namespaceId, key2) {
|
|
118009
118015
|
await requireLoggedIn();
|
|
118010
118016
|
const apiToken = requireApiToken();
|
|
@@ -118055,9 +118061,9 @@ async function fetchListResult(resource, init = {}, queryParams) {
|
|
|
118055
118061
|
}
|
|
118056
118062
|
function throwFetchError(resource, response) {
|
|
118057
118063
|
const error = new ParseError({
|
|
118058
|
-
text:
|
|
118064
|
+
text: `A request to the Cloudflare API (${resource}) failed.`,
|
|
118059
118065
|
notes: response.errors.map((err2) => ({
|
|
118060
|
-
text: err2
|
|
118066
|
+
text: renderError(err2)
|
|
118061
118067
|
}))
|
|
118062
118068
|
});
|
|
118063
118069
|
const code = response.errors[0]?.code;
|
|
@@ -118070,6 +118076,11 @@ function hasCursor(result_info) {
|
|
|
118070
118076
|
const cursor = result_info?.cursor;
|
|
118071
118077
|
return cursor !== void 0 && cursor !== null && cursor !== "";
|
|
118072
118078
|
}
|
|
118079
|
+
function renderError(err2, level = 0) {
|
|
118080
|
+
const chainedMessages = err2.error_chain?.map((chainedError) => `
|
|
118081
|
+
${" ".repeat(level)}- ${renderError(chainedError, level + 1)}`).join("\n") ?? "";
|
|
118082
|
+
return (err2.code ? `${err2.message} [code: ${err2.code}]` : err2.message) + chainedMessages;
|
|
118083
|
+
}
|
|
118073
118084
|
|
|
118074
118085
|
// src/config/index.ts
|
|
118075
118086
|
init_import_meta_url();
|
|
@@ -118206,9 +118217,13 @@ var isStringArray = (diagnostics, field, value) => {
|
|
|
118206
118217
|
};
|
|
118207
118218
|
var isObjectWith = (...properties) => (diagnostics, field, value) => {
|
|
118208
118219
|
if (value !== void 0 && (typeof value !== "object" || value === null || !properties.every((prop) => prop in value))) {
|
|
118209
|
-
diagnostics.errors.push(`Expected "${field}" to be of type object, containing properties ${properties}, but got ${JSON.stringify(value)}.`);
|
|
118220
|
+
diagnostics.errors.push(`Expected "${field}" to be of type object, containing only properties ${properties}, but got ${JSON.stringify(value)}.`);
|
|
118210
118221
|
return false;
|
|
118211
118222
|
}
|
|
118223
|
+
if (value !== void 0) {
|
|
118224
|
+
const restFields = Object.keys(value).filter((key2) => !properties.includes(key2));
|
|
118225
|
+
validateAdditionalProperties(diagnostics, field, restFields, []);
|
|
118226
|
+
}
|
|
118212
118227
|
return true;
|
|
118213
118228
|
};
|
|
118214
118229
|
var isOneOf = (...choices) => (diagnostics, field, value) => {
|
|
@@ -118335,8 +118350,6 @@ function normalizeAndValidateConfig(rawConfig, configPath, args) {
|
|
|
118335
118350
|
deprecated(diagnostics, rawConfig, "type", "Most common features now work out of the box with wrangler, including modules, jsx, typescript, etc. If you need anything more, use a custom build.", true, "\u{1F636} Ignored");
|
|
118336
118351
|
deprecated(diagnostics, rawConfig, "webpack_config", "Most common features now work out of the box with wrangler, including modules, jsx, typescript, etc. If you need anything more, use a custom build.", true, "\u{1F636} Ignored");
|
|
118337
118352
|
validateOptionalProperty(diagnostics, "", "legacy_env", rawConfig.legacy_env, "boolean");
|
|
118338
|
-
validateOptionalProperty(diagnostics, "", "minify", rawConfig.minify, "boolean");
|
|
118339
|
-
validateOptionalProperty(diagnostics, "", "node_compat", rawConfig.node_compat, "boolean");
|
|
118340
118353
|
const isLegacyEnv2 = args["legacy-env"] ?? rawConfig.legacy_env ?? true;
|
|
118341
118354
|
if (!isLegacyEnv2) {
|
|
118342
118355
|
diagnostics.warnings.push("Experimental: Service environments are in beta, and their behaviour is guaranteed to change in the future. DO NOT USE IN PRODUCTION.");
|
|
@@ -118383,8 +118396,8 @@ Consider adding an environment configuration section to the wrangler.toml file:
|
|
|
118383
118396
|
return { config, diagnostics };
|
|
118384
118397
|
}
|
|
118385
118398
|
function normalizeAndValidateBuild(diagnostics, rawEnv, rawBuild, configPath) {
|
|
118386
|
-
const { command: command2, cwd: cwd2, watch_dir, upload, ...rest } = rawBuild;
|
|
118387
|
-
const deprecatedUpload = { ...
|
|
118399
|
+
const { command: command2, cwd: cwd2, watch_dir, upload: upload2, ...rest } = rawBuild;
|
|
118400
|
+
const deprecatedUpload = { ...upload2 };
|
|
118388
118401
|
validateAdditionalProperties(diagnostics, "build", Object.keys(rest), []);
|
|
118389
118402
|
validateOptionalProperty(diagnostics, "build", "command", command2, "string");
|
|
118390
118403
|
validateOptionalProperty(diagnostics, "build", "cwd", cwd2, "string");
|
|
@@ -118448,22 +118461,34 @@ function normalizeAndValidateMigrations(diagnostics, rawMigrations, durableObjec
|
|
|
118448
118461
|
return [];
|
|
118449
118462
|
} else {
|
|
118450
118463
|
for (let i2 = 0; i2 < rawMigrations.length; i2++) {
|
|
118451
|
-
const
|
|
118452
|
-
|
|
118453
|
-
|
|
118454
|
-
|
|
118455
|
-
|
|
118456
|
-
|
|
118457
|
-
|
|
118458
|
-
|
|
118464
|
+
const { tag, new_classes, renamed_classes, deleted_classes, ...rest } = rawMigrations[i2];
|
|
118465
|
+
validateAdditionalProperties(diagnostics, "migrations", Object.keys(rest), []);
|
|
118466
|
+
validateRequiredProperty(diagnostics, `migrations[${i2}]`, `tag`, tag, "string");
|
|
118467
|
+
validateOptionalTypedArray(diagnostics, `migrations[${i2}].new_classes`, new_classes, "string");
|
|
118468
|
+
if (renamed_classes !== void 0) {
|
|
118469
|
+
if (!Array.isArray(renamed_classes)) {
|
|
118470
|
+
diagnostics.errors.push(`Expected "migrations[${i2}].renamed_classes" to be an array of "{from: string, to: string}" objects but got ${JSON.stringify(renamed_classes)}.`);
|
|
118471
|
+
} else if (renamed_classes.some((c) => typeof c !== "object" || !isRequiredProperty(c, "from", "string") || !isRequiredProperty(c, "to", "string"))) {
|
|
118472
|
+
diagnostics.errors.push(`Expected "migrations[${i2}].renamed_classes" to be an array of "{from: string, to: string}" objects but got ${JSON.stringify(renamed_classes)}.`);
|
|
118459
118473
|
}
|
|
118460
118474
|
}
|
|
118461
|
-
validateOptionalTypedArray(diagnostics, `migrations[${i2}].deleted_classes`,
|
|
118475
|
+
validateOptionalTypedArray(diagnostics, `migrations[${i2}].deleted_classes`, deleted_classes, "string");
|
|
118462
118476
|
}
|
|
118463
118477
|
if (Array.isArray(durableObjects?.bindings) && durableObjects.bindings.length > 0) {
|
|
118464
118478
|
const exportedDurableObjects = (durableObjects.bindings || []).filter((binding) => !binding.script_name);
|
|
118465
118479
|
if (exportedDurableObjects.length > 0 && rawMigrations.length === 0) {
|
|
118466
|
-
|
|
118480
|
+
if (!exportedDurableObjects.some((exportedDurableObject) => typeof exportedDurableObject.class_name !== "string")) {
|
|
118481
|
+
const durableObjectClassnames = exportedDurableObjects.map((durable) => durable.class_name);
|
|
118482
|
+
diagnostics.warnings.push(`In wrangler.toml, you have configured [durable_objects] exported by this Worker (${durableObjectClassnames.join(", ")}), but no [migrations] for them. This may not work as expected until you add a [migrations] section to your wrangler.toml. Add this configuration to your wrangler.toml:
|
|
118483
|
+
|
|
118484
|
+
\`\`\`
|
|
118485
|
+
[[migrations]]
|
|
118486
|
+
tag = "v1" # Should be unique for each entry
|
|
118487
|
+
new_classes = [${durableObjectClassnames.map((name2) => `"${name2}"`).join(", ")}]
|
|
118488
|
+
\`\`\`
|
|
118489
|
+
|
|
118490
|
+
Refer to https://developers.cloudflare.com/workers/learning/using-durable-objects/#durable-object-migrations-in-wranglertoml for more details.`);
|
|
118491
|
+
}
|
|
118467
118492
|
}
|
|
118468
118493
|
}
|
|
118469
118494
|
return rawMigrations;
|
|
@@ -118613,8 +118638,8 @@ function normalizeAndValidateEnvironment(diagnostics, configPath, rawEnv, envNam
|
|
|
118613
118638
|
bindings: []
|
|
118614
118639
|
}),
|
|
118615
118640
|
zone_id: rawEnv.zone_id,
|
|
118616
|
-
minify: rawEnv
|
|
118617
|
-
node_compat: rawEnv
|
|
118641
|
+
minify: inheritable(diagnostics, topLevelEnv, rawEnv, "minify", isBoolean2, void 0),
|
|
118642
|
+
node_compat: inheritable(diagnostics, topLevelEnv, rawEnv, "node_compat", isBoolean2, void 0)
|
|
118618
118643
|
};
|
|
118619
118644
|
return environment;
|
|
118620
118645
|
}
|
|
@@ -119432,7 +119457,7 @@ var import_undici5 = __toESM(require_undici());
|
|
|
119432
119457
|
|
|
119433
119458
|
// src/entry.ts
|
|
119434
119459
|
init_import_meta_url();
|
|
119435
|
-
var
|
|
119460
|
+
var import_node_assert3 = __toESM(require("node:assert"));
|
|
119436
119461
|
var import_node_fs4 = require("node:fs");
|
|
119437
119462
|
var import_node_path10 = __toESM(require("node:path"));
|
|
119438
119463
|
var esbuild = __toESM(require("esbuild"));
|
|
@@ -119509,8 +119534,8 @@ async function guessWorkerFormat(entryFile, entryWorkingDirectory, hint, tsconfi
|
|
|
119509
119534
|
});
|
|
119510
119535
|
const metafile = result.metafile;
|
|
119511
119536
|
const entryPoints = Object.entries(metafile.outputs).filter(([_path, output]) => output.entryPoint !== void 0);
|
|
119512
|
-
(0,
|
|
119513
|
-
(0,
|
|
119537
|
+
(0, import_node_assert3.default)(entryPoints.length > 0, `Cannot find entry-point "${entryFile}" in generated bundle.` + listEntryPoints(entryPoints));
|
|
119538
|
+
(0, import_node_assert3.default)(entryPoints.length < 2, "More than one entry-point found for generated bundle." + listEntryPoints(entryPoints));
|
|
119514
119539
|
let guessedWorkerFormat;
|
|
119515
119540
|
const scriptExports = entryPoints[0][1].exports;
|
|
119516
119541
|
if (scriptExports.length > 0) {
|
|
@@ -119604,7 +119629,7 @@ Did you mean to set the main field to${possiblePaths.length > 1 ? " one of" : ""
|
|
|
119604
119629
|
|
|
119605
119630
|
// src/inspect.ts
|
|
119606
119631
|
init_import_meta_url();
|
|
119607
|
-
var
|
|
119632
|
+
var import_node_assert4 = __toESM(require("node:assert"));
|
|
119608
119633
|
var import_node_http3 = require("node:http");
|
|
119609
119634
|
var import_node_os6 = __toESM(require("node:os"));
|
|
119610
119635
|
var import_node_url8 = require("node:url");
|
|
@@ -120119,7 +120144,7 @@ function useInspector(props) {
|
|
|
120119
120144
|
}
|
|
120120
120145
|
function sendMessageToRemoteWebSocket(event) {
|
|
120121
120146
|
try {
|
|
120122
|
-
(0,
|
|
120147
|
+
(0, import_node_assert4.default)(remoteWebSocket, "Trying to send a message to an undefined `remoteWebSocket`");
|
|
120123
120148
|
remoteWebSocket.send(event.data);
|
|
120124
120149
|
} catch (e2) {
|
|
120125
120150
|
if (e2.message !== "WebSocket is not open: readyState 0 (CONNECTING)") {
|
|
@@ -120128,7 +120153,7 @@ function useInspector(props) {
|
|
|
120128
120153
|
}
|
|
120129
120154
|
}
|
|
120130
120155
|
function sendMessageToLocalWebSocket(event) {
|
|
120131
|
-
(0,
|
|
120156
|
+
(0, import_node_assert4.default)(localWebSocket, "Trying to send a message to an undefined `localWebSocket`");
|
|
120132
120157
|
localWebSocket.send(event.data);
|
|
120133
120158
|
}
|
|
120134
120159
|
if (localWebSocket && remoteWebSocket) {
|
|
@@ -120626,7 +120651,6 @@ function useLocalWorker({
|
|
|
120626
120651
|
|
|
120627
120652
|
// src/dev/remote.tsx
|
|
120628
120653
|
init_import_meta_url();
|
|
120629
|
-
var import_node_assert5 = __toESM(require("node:assert"));
|
|
120630
120654
|
var import_promises4 = require("node:fs/promises");
|
|
120631
120655
|
var import_node_path13 = __toESM(require("node:path"));
|
|
120632
120656
|
var import_react5 = __toESM(require_react());
|
|
@@ -120637,7 +120661,7 @@ var import_node_url9 = require("node:url");
|
|
|
120637
120661
|
var import_undici4 = __toESM(require_undici());
|
|
120638
120662
|
async function sessionToken(account, ctx, abortSignal) {
|
|
120639
120663
|
const { accountId } = account;
|
|
120640
|
-
const initUrl = ctx.zone ? `/zones/${ctx.zone
|
|
120664
|
+
const initUrl = ctx.zone ? `/zones/${ctx.zone}/workers/edge-preview` : `/accounts/${accountId}/workers/subdomain/edge-preview`;
|
|
120641
120665
|
const { exchange_url } = await fetchResult(initUrl, void 0, void 0, abortSignal);
|
|
120642
120666
|
const { inspector_websocket, prewarm, token } = await (await (0, import_undici4.fetch)(exchange_url, { signal: abortSignal })).json();
|
|
120643
120667
|
const { host } = new import_node_url9.URL(inspector_websocket);
|
|
@@ -120658,7 +120682,7 @@ function randomId2() {
|
|
|
120658
120682
|
async function createPreviewToken(account, worker, ctx, abortSignal) {
|
|
120659
120683
|
const { value, host, inspectorUrl, prewarmUrl } = await sessionToken(account, ctx, abortSignal);
|
|
120660
120684
|
const { accountId } = account;
|
|
120661
|
-
const scriptId = ctx.zone ? randomId2() :
|
|
120685
|
+
const scriptId = worker.name || (ctx.zone ? randomId2() : host.split(".")[0]);
|
|
120662
120686
|
const url3 = ctx.env && !ctx.legacyEnv ? `/accounts/${accountId}/workers/services/${scriptId}/environments/${ctx.env}/edge-preview` : `/accounts/${accountId}/workers/scripts/${scriptId}/edge-preview`;
|
|
120663
120687
|
const mode = ctx.zone ? { routes: ["*/*"] } : { workers_dev: true };
|
|
120664
120688
|
const formData = createWorkerUploadForm(worker);
|
|
@@ -120672,7 +120696,7 @@ async function createPreviewToken(account, worker, ctx, abortSignal) {
|
|
|
120672
120696
|
}, void 0, abortSignal);
|
|
120673
120697
|
return {
|
|
120674
120698
|
value: preview_token,
|
|
120675
|
-
host: ctx.
|
|
120699
|
+
host: ctx.host ?? (worker.name ? `${worker.name}.${host.split(".").slice(1).join(".")}` : host),
|
|
120676
120700
|
inspectorUrl,
|
|
120677
120701
|
prewarmUrl
|
|
120678
120702
|
};
|
|
@@ -120694,7 +120718,7 @@ async function createWorkerPreview(init, account, ctx, abortSignal) {
|
|
|
120694
120718
|
|
|
120695
120719
|
// src/sites.tsx
|
|
120696
120720
|
init_import_meta_url();
|
|
120697
|
-
var
|
|
120721
|
+
var import_node_assert5 = __toESM(require("node:assert"));
|
|
120698
120722
|
var import_promises3 = require("node:fs/promises");
|
|
120699
120723
|
var path13 = __toESM(require("node:path"));
|
|
120700
120724
|
var import_ignore = __toESM(require_ignore());
|
|
@@ -120973,33 +120997,42 @@ async function syncAssets(accountId, scriptName, siteAssets, preview, dryRun) {
|
|
|
120973
120997
|
logger.log("(Note: doing a dry run, not uploading or deleting anything.)");
|
|
120974
120998
|
return { manifest: void 0, namespace: void 0 };
|
|
120975
120999
|
}
|
|
120976
|
-
(0,
|
|
121000
|
+
(0, import_node_assert5.default)(accountId, "Missing accountId");
|
|
120977
121001
|
const title = `__${scriptName}-workers_sites_assets${preview ? "_preview" : ""}`;
|
|
120978
121002
|
const { id: namespace } = await createKVNamespaceIfNotAlreadyExisting(title, accountId);
|
|
120979
121003
|
const namespaceKeysResponse = await listKVNamespaceKeys(accountId, namespace);
|
|
120980
121004
|
const namespaceKeys = new Set(namespaceKeysResponse.map((x) => x.name));
|
|
120981
121005
|
const manifest = {};
|
|
120982
|
-
const
|
|
121006
|
+
const uploadBuckets = [];
|
|
121007
|
+
let uploadBucket = [];
|
|
121008
|
+
let uploadBucketSize = 0;
|
|
120983
121009
|
const include = createPatternMatcher(siteAssets.includePatterns, false);
|
|
120984
121010
|
const exclude = createPatternMatcher(siteAssets.excludePatterns, true);
|
|
120985
121011
|
const hasher = await e();
|
|
120986
121012
|
const assetDirectory = path13.join(siteAssets.baseDirectory, siteAssets.assetDirectory);
|
|
120987
121013
|
for await (const absAssetFile of getFilesInFolder(assetDirectory)) {
|
|
120988
|
-
const assetFile = path13.relative(
|
|
121014
|
+
const assetFile = path13.relative(assetDirectory, absAssetFile);
|
|
120989
121015
|
if (!include(assetFile)) {
|
|
120990
121016
|
continue;
|
|
120991
121017
|
}
|
|
120992
121018
|
if (exclude(assetFile)) {
|
|
120993
121019
|
continue;
|
|
120994
121020
|
}
|
|
120995
|
-
await validateAssetSize(absAssetFile, assetFile);
|
|
120996
121021
|
logger.log(`Reading ${assetFile}...`);
|
|
120997
121022
|
const content = await (0, import_promises3.readFile)(absAssetFile, "base64");
|
|
121023
|
+
await validateAssetSize(absAssetFile, assetFile);
|
|
121024
|
+
const assetSize = Buffer.from(content).length;
|
|
120998
121025
|
const assetKey = hashAsset(hasher, assetFile, content);
|
|
120999
121026
|
validateAssetKey(assetKey);
|
|
121000
121027
|
if (!namespaceKeys.has(assetKey)) {
|
|
121001
121028
|
logger.log(`Uploading as ${assetKey}...`);
|
|
121002
|
-
|
|
121029
|
+
if (uploadBucketSize + assetSize > 100 * 1024 * 1024) {
|
|
121030
|
+
uploadBuckets.push(uploadBucket);
|
|
121031
|
+
uploadBucketSize = 0;
|
|
121032
|
+
uploadBucket = [];
|
|
121033
|
+
}
|
|
121034
|
+
uploadBucketSize += assetSize;
|
|
121035
|
+
uploadBucket.push({
|
|
121003
121036
|
key: assetKey,
|
|
121004
121037
|
value: content,
|
|
121005
121038
|
base64: true
|
|
@@ -121008,15 +121041,19 @@ async function syncAssets(accountId, scriptName, siteAssets, preview, dryRun) {
|
|
|
121008
121041
|
logger.log(`Skipping - already uploaded.`);
|
|
121009
121042
|
}
|
|
121010
121043
|
namespaceKeys.delete(assetKey);
|
|
121011
|
-
|
|
121044
|
+
const manifestKey = urlSafe(path13.relative(siteAssets.assetDirectory, absAssetFile));
|
|
121045
|
+
manifest[manifestKey] = assetKey;
|
|
121012
121046
|
}
|
|
121047
|
+
uploadBuckets.push(uploadBucket);
|
|
121013
121048
|
for (const key2 of namespaceKeys) {
|
|
121014
121049
|
logger.log(`Deleting ${key2} from the asset store...`);
|
|
121015
121050
|
}
|
|
121016
|
-
|
|
121017
|
-
|
|
121018
|
-
|
|
121019
|
-
|
|
121051
|
+
const bucketsToPut = [];
|
|
121052
|
+
for (const bucket of uploadBuckets) {
|
|
121053
|
+
bucketsToPut.push(putKVBulkKeyValue(accountId, namespace, bucket));
|
|
121054
|
+
}
|
|
121055
|
+
await Promise.all(bucketsToPut);
|
|
121056
|
+
await deleteKVBulkKeyValue(accountId, namespace, Array.from(namespaceKeys));
|
|
121020
121057
|
logger.log("\u2197\uFE0F Done syncing assets");
|
|
121021
121058
|
return { manifest, namespace };
|
|
121022
121059
|
}
|
|
@@ -121054,15 +121091,12 @@ function getAssetPaths(config, assetDirectory = config.site?.bucket, includePatt
|
|
|
121054
121091
|
|
|
121055
121092
|
// src/dev/remote.tsx
|
|
121056
121093
|
function Remote(props) {
|
|
121057
|
-
(0, import_node_assert5.default)(props.accountId, "accountId is required");
|
|
121058
|
-
(0, import_node_assert5.default)(props.apiToken, "apiToken is required");
|
|
121059
121094
|
const previewToken = useWorker({
|
|
121060
121095
|
name: props.name,
|
|
121061
121096
|
bundle: props.bundle,
|
|
121062
121097
|
format: props.format,
|
|
121063
121098
|
modules: props.bundle ? props.bundle.modules : [],
|
|
121064
121099
|
accountId: props.accountId,
|
|
121065
|
-
apiToken: props.apiToken,
|
|
121066
121100
|
bindings: props.bindings,
|
|
121067
121101
|
assetPaths: props.assetPaths,
|
|
121068
121102
|
port: props.port,
|
|
@@ -121071,7 +121105,8 @@ function Remote(props) {
|
|
|
121071
121105
|
usageModel: props.usageModel,
|
|
121072
121106
|
env: props.env,
|
|
121073
121107
|
legacyEnv: props.legacyEnv,
|
|
121074
|
-
zone: props.zone
|
|
121108
|
+
zone: props.zone,
|
|
121109
|
+
host: props.host
|
|
121075
121110
|
});
|
|
121076
121111
|
usePreviewServer({
|
|
121077
121112
|
previewToken,
|
|
@@ -121094,7 +121129,6 @@ function useWorker(props) {
|
|
|
121094
121129
|
format: format4,
|
|
121095
121130
|
modules,
|
|
121096
121131
|
accountId,
|
|
121097
|
-
apiToken,
|
|
121098
121132
|
bindings,
|
|
121099
121133
|
assetPaths,
|
|
121100
121134
|
compatibilityDate,
|
|
@@ -121104,6 +121138,7 @@ function useWorker(props) {
|
|
|
121104
121138
|
} = props;
|
|
121105
121139
|
const [token, setToken] = (0, import_react5.useState)();
|
|
121106
121140
|
const startedRef = (0, import_react5.useRef)(false);
|
|
121141
|
+
const accountIdRef = (0, import_react5.useRef)(accountId);
|
|
121107
121142
|
(0, import_react5.useEffect)(() => {
|
|
121108
121143
|
const abortController = new AbortController();
|
|
121109
121144
|
async function start() {
|
|
@@ -121115,7 +121150,10 @@ function useWorker(props) {
|
|
|
121115
121150
|
} else {
|
|
121116
121151
|
logger.log("\u2394 Detected changes, restarted server.");
|
|
121117
121152
|
}
|
|
121118
|
-
|
|
121153
|
+
accountIdRef.current = await requireAuth({
|
|
121154
|
+
account_id: accountIdRef.current
|
|
121155
|
+
});
|
|
121156
|
+
const assets = await syncAssets(accountIdRef.current, name2 + (!props.legacyEnv && props.env ? `-${props.env}` : ""), assetPaths, true, false);
|
|
121119
121157
|
const content = await (0, import_promises4.readFile)(bundle.path, "utf-8");
|
|
121120
121158
|
const init = {
|
|
121121
121159
|
name: name2,
|
|
@@ -121145,16 +121183,21 @@ function useWorker(props) {
|
|
|
121145
121183
|
usage_model: usageModel
|
|
121146
121184
|
};
|
|
121147
121185
|
setToken(await createWorkerPreview(init, {
|
|
121148
|
-
accountId,
|
|
121149
|
-
apiToken
|
|
121150
|
-
}, {
|
|
121186
|
+
accountId: accountIdRef.current,
|
|
121187
|
+
apiToken: requireApiToken()
|
|
121188
|
+
}, {
|
|
121189
|
+
env: props.env,
|
|
121190
|
+
legacyEnv: props.legacyEnv,
|
|
121191
|
+
zone: props.zone,
|
|
121192
|
+
host: props.host
|
|
121193
|
+
}, abortController.signal));
|
|
121151
121194
|
}
|
|
121152
121195
|
start().catch((err2) => {
|
|
121153
121196
|
if (err2.code !== "ABORT_ERR") {
|
|
121154
121197
|
if (err2.code === 10063) {
|
|
121155
121198
|
const errorMessage = "Error: You need to register a workers.dev subdomain before running the dev command in remote mode";
|
|
121156
121199
|
const solutionMessage = "You can either enable local mode by pressing l, or register a workers.dev subdomain here:";
|
|
121157
|
-
const onboardingLink = `https://dash.cloudflare.com/${
|
|
121200
|
+
const onboardingLink = `https://dash.cloudflare.com/${accountIdRef.current}/workers/onboarding`;
|
|
121158
121201
|
logger.error(`${errorMessage}
|
|
121159
121202
|
${solutionMessage}
|
|
121160
121203
|
${onboardingLink}`);
|
|
@@ -121171,7 +121214,6 @@ ${onboardingLink}`);
|
|
|
121171
121214
|
bundle,
|
|
121172
121215
|
format4,
|
|
121173
121216
|
accountId,
|
|
121174
|
-
apiToken,
|
|
121175
121217
|
port,
|
|
121176
121218
|
assetPaths,
|
|
121177
121219
|
compatibilityDate,
|
|
@@ -121181,7 +121223,8 @@ ${onboardingLink}`);
|
|
|
121181
121223
|
modules,
|
|
121182
121224
|
props.env,
|
|
121183
121225
|
props.legacyEnv,
|
|
121184
|
-
props.zone
|
|
121226
|
+
props.zone,
|
|
121227
|
+
props.host
|
|
121185
121228
|
]);
|
|
121186
121229
|
return token;
|
|
121187
121230
|
}
|
|
@@ -121370,7 +121413,6 @@ function useEsbuild({
|
|
|
121370
121413
|
|
|
121371
121414
|
// src/dev/dev.tsx
|
|
121372
121415
|
function DevImplementation(props) {
|
|
121373
|
-
const apiToken = props.initialMode === "remote" ? getAPIToken() : void 0;
|
|
121374
121416
|
const directory = useTmpDir();
|
|
121375
121417
|
useCustomBuild(props.entry, props.build);
|
|
121376
121418
|
if (props.public && props.entry.format === "service-worker") {
|
|
@@ -121397,16 +121439,13 @@ function DevImplementation(props) {
|
|
|
121397
121439
|
minify: props.minify,
|
|
121398
121440
|
nodeCompat: props.nodeCompat
|
|
121399
121441
|
});
|
|
121400
|
-
printBindings(props.bindings);
|
|
121401
121442
|
const { isRawModeSupported } = (0, import_ink3.useStdin)();
|
|
121402
121443
|
return isRawModeSupported ? /* @__PURE__ */ import_react7.default.createElement(InteractiveDevSession, {
|
|
121403
121444
|
...props,
|
|
121404
|
-
bundle
|
|
121405
|
-
apiToken
|
|
121445
|
+
bundle
|
|
121406
121446
|
}) : /* @__PURE__ */ import_react7.default.createElement(DevSession, {
|
|
121407
121447
|
...props,
|
|
121408
121448
|
bundle,
|
|
121409
|
-
apiToken,
|
|
121410
121449
|
local: props.initialMode === "local"
|
|
121411
121450
|
});
|
|
121412
121451
|
}
|
|
@@ -121456,7 +121495,6 @@ function DevSession(props) {
|
|
|
121456
121495
|
bundle: props.bundle,
|
|
121457
121496
|
format: props.entry.format,
|
|
121458
121497
|
accountId: props.accountId,
|
|
121459
|
-
apiToken: props.apiToken,
|
|
121460
121498
|
bindings: props.bindings,
|
|
121461
121499
|
assetPaths: props.assetPaths,
|
|
121462
121500
|
public: props.public,
|
|
@@ -121469,7 +121507,8 @@ function DevSession(props) {
|
|
|
121469
121507
|
usageModel: props.usageModel,
|
|
121470
121508
|
env: props.env,
|
|
121471
121509
|
legacyEnv: props.legacyEnv,
|
|
121472
|
-
zone: props.zone
|
|
121510
|
+
zone: props.zone,
|
|
121511
|
+
host: props.host
|
|
121473
121512
|
});
|
|
121474
121513
|
}
|
|
121475
121514
|
function useTmpDir() {
|
|
@@ -121648,6 +121687,7 @@ function getVarsForDev(config) {
|
|
|
121648
121687
|
init_import_meta_url();
|
|
121649
121688
|
var import_chalk = __toESM(require_chalk());
|
|
121650
121689
|
var import_ink4 = __toESM(require_build2());
|
|
121690
|
+
var import_ink_select_input2 = __toESM(require_build3());
|
|
121651
121691
|
var import_ink_text_input = __toESM(require_build4());
|
|
121652
121692
|
var React3 = __toESM(require_react());
|
|
121653
121693
|
var import_react8 = __toESM(require_react());
|
|
@@ -121696,15 +121736,44 @@ async function prompt(text, type2 = "text", defaultValue) {
|
|
|
121696
121736
|
}));
|
|
121697
121737
|
});
|
|
121698
121738
|
}
|
|
121739
|
+
function Select(props) {
|
|
121740
|
+
return /* @__PURE__ */ React3.createElement(import_ink4.Box, {
|
|
121741
|
+
flexDirection: "column"
|
|
121742
|
+
}, /* @__PURE__ */ React3.createElement(import_ink4.Text, null, props.text), /* @__PURE__ */ React3.createElement(import_ink_select_input2.default, {
|
|
121743
|
+
initialIndex: props.initialIndex,
|
|
121744
|
+
items: props.options,
|
|
121745
|
+
onSelect: async (selected) => {
|
|
121746
|
+
props.onSelect(selected.value);
|
|
121747
|
+
}
|
|
121748
|
+
}));
|
|
121749
|
+
}
|
|
121750
|
+
function select(text, options, initialIndex) {
|
|
121751
|
+
return new Promise((resolve11) => {
|
|
121752
|
+
const { unmount } = (0, import_ink4.render)(/* @__PURE__ */ React3.createElement(Select, {
|
|
121753
|
+
text,
|
|
121754
|
+
options,
|
|
121755
|
+
initialIndex,
|
|
121756
|
+
onSelect: (option) => {
|
|
121757
|
+
unmount();
|
|
121758
|
+
resolve11(option);
|
|
121759
|
+
}
|
|
121760
|
+
}));
|
|
121761
|
+
});
|
|
121762
|
+
}
|
|
121699
121763
|
|
|
121700
121764
|
// src/package-manager.ts
|
|
121701
121765
|
init_import_meta_url();
|
|
121702
121766
|
var import_node_fs6 = require("node:fs");
|
|
121703
121767
|
var import_node_path14 = require("node:path");
|
|
121704
121768
|
async function getPackageManager(cwd2) {
|
|
121705
|
-
const [hasYarn, hasNpm] = await Promise.all([
|
|
121769
|
+
const [hasYarn, hasNpm, hasPnpm] = await Promise.all([
|
|
121770
|
+
supportsYarn(),
|
|
121771
|
+
supportsNpm(),
|
|
121772
|
+
supportsPnpm()
|
|
121773
|
+
]);
|
|
121706
121774
|
const hasYarnLock = (0, import_node_fs6.existsSync)((0, import_node_path14.join)(cwd2, "yarn.lock"));
|
|
121707
121775
|
const hasNpmLock = (0, import_node_fs6.existsSync)((0, import_node_path14.join)(cwd2, "package-lock.json"));
|
|
121776
|
+
const hasPnpmLock = (0, import_node_fs6.existsSync)((0, import_node_path14.join)(cwd2, "pnpm-lock.yaml"));
|
|
121708
121777
|
if (hasNpmLock) {
|
|
121709
121778
|
if (hasNpm) {
|
|
121710
121779
|
logger.log("Using npm as package manager, as there is already a package-lock.json file.");
|
|
@@ -121714,6 +121783,13 @@ async function getPackageManager(cwd2) {
|
|
|
121714
121783
|
logger.warn("There is already a package-lock.json file but could not find npm on the PATH.");
|
|
121715
121784
|
return { ...YarnPackageManager, cwd: cwd2 };
|
|
121716
121785
|
}
|
|
121786
|
+
} else if (hasPnpmLock) {
|
|
121787
|
+
if (hasPnpm) {
|
|
121788
|
+
logger.log("Using pnpm as package manager, as there is already a pnpm-lock.yaml file.");
|
|
121789
|
+
return { ...PnpmPackageManager, cwd: cwd2 };
|
|
121790
|
+
} else {
|
|
121791
|
+
logger.warn("There is already a pnpm-lock.yaml file but could not find pnpm on the PATH.");
|
|
121792
|
+
}
|
|
121717
121793
|
} else if (hasYarnLock) {
|
|
121718
121794
|
if (hasYarn) {
|
|
121719
121795
|
logger.log("Using yarn as package manager, as there is already a yarn.lock file.");
|
|
@@ -121730,8 +121806,11 @@ async function getPackageManager(cwd2) {
|
|
|
121730
121806
|
} else if (hasYarn) {
|
|
121731
121807
|
logger.log("Using yarn as package manager.");
|
|
121732
121808
|
return { ...YarnPackageManager, cwd: cwd2 };
|
|
121809
|
+
} else if (hasPnpm) {
|
|
121810
|
+
logger.log("Using pnpm as package manager.");
|
|
121811
|
+
return { ...PnpmPackageManager, cwd: cwd2 };
|
|
121733
121812
|
} else {
|
|
121734
|
-
throw new Error("Unable to find a package manager. Supported managers are: npm and
|
|
121813
|
+
throw new Error("Unable to find a package manager. Supported managers are: npm, yarn, and pnpm.");
|
|
121735
121814
|
}
|
|
121736
121815
|
}
|
|
121737
121816
|
var NpmPackageManager = {
|
|
@@ -121750,6 +121829,22 @@ var NpmPackageManager = {
|
|
|
121750
121829
|
});
|
|
121751
121830
|
}
|
|
121752
121831
|
};
|
|
121832
|
+
var PnpmPackageManager = {
|
|
121833
|
+
cwd: process.cwd(),
|
|
121834
|
+
type: "pnpm",
|
|
121835
|
+
async addDevDeps(...packages) {
|
|
121836
|
+
await execa("pnpm", ["install", ...packages, "--save-dev"], {
|
|
121837
|
+
stdio: "inherit",
|
|
121838
|
+
cwd: this.cwd
|
|
121839
|
+
});
|
|
121840
|
+
},
|
|
121841
|
+
async install() {
|
|
121842
|
+
await execa("pnpm", ["install"], {
|
|
121843
|
+
stdio: "inherit",
|
|
121844
|
+
cwd: this.cwd
|
|
121845
|
+
});
|
|
121846
|
+
}
|
|
121847
|
+
};
|
|
121753
121848
|
var YarnPackageManager = {
|
|
121754
121849
|
cwd: process.cwd(),
|
|
121755
121850
|
type: "yarn",
|
|
@@ -121780,6 +121875,9 @@ function supportsYarn() {
|
|
|
121780
121875
|
function supportsNpm() {
|
|
121781
121876
|
return supports("npm");
|
|
121782
121877
|
}
|
|
121878
|
+
function supportsPnpm() {
|
|
121879
|
+
return supports("pnpm");
|
|
121880
|
+
}
|
|
121783
121881
|
|
|
121784
121882
|
// src/pages.tsx
|
|
121785
121883
|
init_import_meta_url();
|
|
@@ -121793,7 +121891,7 @@ var import_node_url11 = require("node:url");
|
|
|
121793
121891
|
var import_blake3_wasm = require("blake3-wasm");
|
|
121794
121892
|
var import_chokidar2 = __toESM(require_chokidar());
|
|
121795
121893
|
var import_ink5 = __toESM(require_build2());
|
|
121796
|
-
var
|
|
121894
|
+
var import_ink_select_input3 = __toESM(require_build3());
|
|
121797
121895
|
var import_ink_spinner = __toESM(require_build5());
|
|
121798
121896
|
var import_ink_table2 = __toESM(require_dist2());
|
|
121799
121897
|
var import_mime = __toESM(require_mime2());
|
|
@@ -123311,6 +123409,197 @@ async function buildFunctions({
|
|
|
123311
123409
|
}));
|
|
123312
123410
|
}
|
|
123313
123411
|
}
|
|
123412
|
+
var upload = async ({
|
|
123413
|
+
directory,
|
|
123414
|
+
accountId,
|
|
123415
|
+
projectName
|
|
123416
|
+
}) => {
|
|
123417
|
+
const IGNORE_LIST = [
|
|
123418
|
+
"_worker.js",
|
|
123419
|
+
"_redirects",
|
|
123420
|
+
"_headers",
|
|
123421
|
+
".DS_Store",
|
|
123422
|
+
"node_modules",
|
|
123423
|
+
".git"
|
|
123424
|
+
];
|
|
123425
|
+
const walk = async (dir, fileMap2 = /* @__PURE__ */ new Map(), depth = 0) => {
|
|
123426
|
+
const files3 = await (0, import_promises9.readdir)(dir);
|
|
123427
|
+
await Promise.all(files3.map(async (file) => {
|
|
123428
|
+
const filepath = (0, import_node_path19.join)(dir, file);
|
|
123429
|
+
const filestat = await (0, import_promises9.stat)(filepath);
|
|
123430
|
+
if (IGNORE_LIST.includes(file)) {
|
|
123431
|
+
return;
|
|
123432
|
+
}
|
|
123433
|
+
if (filestat.isSymbolicLink()) {
|
|
123434
|
+
return;
|
|
123435
|
+
}
|
|
123436
|
+
if (filestat.isDirectory()) {
|
|
123437
|
+
fileMap2 = await walk(filepath, fileMap2, depth + 1);
|
|
123438
|
+
} else {
|
|
123439
|
+
let name2;
|
|
123440
|
+
if (depth) {
|
|
123441
|
+
name2 = filepath.split(import_node_path19.sep).slice(1).join("/");
|
|
123442
|
+
} else {
|
|
123443
|
+
name2 = file;
|
|
123444
|
+
}
|
|
123445
|
+
const fileContent = await (0, import_promises9.readFile)(filepath);
|
|
123446
|
+
const base64Content = fileContent.toString("base64");
|
|
123447
|
+
const extension = (0, import_node_path19.extname)((0, import_node_path19.basename)(name2)).substring(1);
|
|
123448
|
+
if (filestat.size > 25 * 1024 * 1024) {
|
|
123449
|
+
throw new Error(`Error: Pages only supports files up to ${prettyBytes(25 * 1024 * 1024)} in size
|
|
123450
|
+
${name2} is ${prettyBytes(filestat.size)} in size`);
|
|
123451
|
+
}
|
|
123452
|
+
fileMap2.set(name2, {
|
|
123453
|
+
content: base64Content,
|
|
123454
|
+
contentType: (0, import_mime.getType)(name2) || "application/octet-stream",
|
|
123455
|
+
sizeInBytes: filestat.size,
|
|
123456
|
+
hash: (0, import_blake3_wasm.hash)(base64Content + extension).toString("hex").slice(0, 32)
|
|
123457
|
+
});
|
|
123458
|
+
}
|
|
123459
|
+
}));
|
|
123460
|
+
return fileMap2;
|
|
123461
|
+
};
|
|
123462
|
+
const fileMap = await walk(directory);
|
|
123463
|
+
if (fileMap.size > 2e4) {
|
|
123464
|
+
throw new FatalError(`Error: Pages only supports up to 20,000 files in a deployment. Ensure you have specified your build output directory correctly.`, 1);
|
|
123465
|
+
}
|
|
123466
|
+
const files2 = [...fileMap.values()];
|
|
123467
|
+
async function fetchJwt() {
|
|
123468
|
+
return (await fetchResult(`/accounts/${accountId}/pages/projects/${projectName}/upload-token`)).jwt;
|
|
123469
|
+
}
|
|
123470
|
+
let jwt = await fetchJwt();
|
|
123471
|
+
const start = Date.now();
|
|
123472
|
+
const missingHashes = await fetchResult(`/pages/assets/check-missing`, {
|
|
123473
|
+
method: "POST",
|
|
123474
|
+
headers: {
|
|
123475
|
+
"Content-Type": "application/json",
|
|
123476
|
+
Authorization: `Bearer ${jwt}`
|
|
123477
|
+
},
|
|
123478
|
+
body: JSON.stringify({
|
|
123479
|
+
hashes: files2.map(({ hash: hash2 }) => hash2)
|
|
123480
|
+
})
|
|
123481
|
+
});
|
|
123482
|
+
const sortedFiles = files2.filter((file) => missingHashes.includes(file.hash)).sort((a, b) => b.sizeInBytes - a.sizeInBytes);
|
|
123483
|
+
const buckets = new Array(BULK_UPLOAD_CONCURRENCY).fill(null).map(() => ({
|
|
123484
|
+
files: [],
|
|
123485
|
+
remainingSize: MAX_BUCKET_SIZE
|
|
123486
|
+
}));
|
|
123487
|
+
let bucketOffset = 0;
|
|
123488
|
+
for (const file of sortedFiles) {
|
|
123489
|
+
let inserted = false;
|
|
123490
|
+
for (let i2 = 0; i2 < buckets.length; i2++) {
|
|
123491
|
+
const bucket = buckets[(i2 + bucketOffset) % buckets.length];
|
|
123492
|
+
if (bucket.remainingSize >= file.sizeInBytes && bucket.files.length < MAX_BUCKET_FILE_COUNT) {
|
|
123493
|
+
bucket.files.push(file);
|
|
123494
|
+
bucket.remainingSize -= file.sizeInBytes;
|
|
123495
|
+
inserted = true;
|
|
123496
|
+
break;
|
|
123497
|
+
}
|
|
123498
|
+
}
|
|
123499
|
+
if (!inserted) {
|
|
123500
|
+
buckets.push({
|
|
123501
|
+
files: [file],
|
|
123502
|
+
remainingSize: MAX_BUCKET_SIZE - file.sizeInBytes
|
|
123503
|
+
});
|
|
123504
|
+
}
|
|
123505
|
+
bucketOffset++;
|
|
123506
|
+
}
|
|
123507
|
+
let counter = fileMap.size - sortedFiles.length;
|
|
123508
|
+
const { rerender, unmount } = (0, import_ink5.render)(/* @__PURE__ */ import_react9.default.createElement(Progress, {
|
|
123509
|
+
done: counter,
|
|
123510
|
+
total: fileMap.size
|
|
123511
|
+
}));
|
|
123512
|
+
const queue = new PQueue({ concurrency: BULK_UPLOAD_CONCURRENCY });
|
|
123513
|
+
for (const bucket of buckets) {
|
|
123514
|
+
if (bucket.files.length === 0)
|
|
123515
|
+
continue;
|
|
123516
|
+
const payload = bucket.files.map((file) => ({
|
|
123517
|
+
key: file.hash,
|
|
123518
|
+
value: file.content,
|
|
123519
|
+
metadata: {
|
|
123520
|
+
contentType: file.contentType
|
|
123521
|
+
},
|
|
123522
|
+
base64: true
|
|
123523
|
+
}));
|
|
123524
|
+
let attempts = 0;
|
|
123525
|
+
const doUpload = async () => {
|
|
123526
|
+
try {
|
|
123527
|
+
return await fetchResult(`/pages/assets/upload`, {
|
|
123528
|
+
method: "POST",
|
|
123529
|
+
headers: {
|
|
123530
|
+
"Content-Type": "application/json",
|
|
123531
|
+
Authorization: `Bearer ${jwt}`
|
|
123532
|
+
},
|
|
123533
|
+
body: JSON.stringify(payload)
|
|
123534
|
+
});
|
|
123535
|
+
} catch (e2) {
|
|
123536
|
+
if (attempts < MAX_UPLOAD_ATTEMPTS) {
|
|
123537
|
+
await new Promise((resolve11) => setTimeout(resolve11, attempts++ * 1e3));
|
|
123538
|
+
if (e2.code === 8000013) {
|
|
123539
|
+
jwt = await fetchJwt();
|
|
123540
|
+
}
|
|
123541
|
+
return doUpload();
|
|
123542
|
+
} else {
|
|
123543
|
+
throw e2;
|
|
123544
|
+
}
|
|
123545
|
+
}
|
|
123546
|
+
};
|
|
123547
|
+
queue.add(() => doUpload().then(() => {
|
|
123548
|
+
counter += bucket.files.length;
|
|
123549
|
+
rerender(/* @__PURE__ */ import_react9.default.createElement(Progress, {
|
|
123550
|
+
done: counter,
|
|
123551
|
+
total: fileMap.size
|
|
123552
|
+
}));
|
|
123553
|
+
}, (error) => {
|
|
123554
|
+
return Promise.reject(new FatalError("Failed to upload files. Please try again.", error.code || 1));
|
|
123555
|
+
}));
|
|
123556
|
+
}
|
|
123557
|
+
await queue.onIdle();
|
|
123558
|
+
unmount();
|
|
123559
|
+
const uploadMs = Date.now() - start;
|
|
123560
|
+
const skipped = fileMap.size - missingHashes.length;
|
|
123561
|
+
const skippedMessage = skipped > 0 ? `(${skipped} already uploaded) ` : "";
|
|
123562
|
+
logger.log(`\u2728 Success! Uploaded ${sortedFiles.length} files ${skippedMessage}${formatTime(uploadMs)}
|
|
123563
|
+
`);
|
|
123564
|
+
const doUpsertHashes = async () => {
|
|
123565
|
+
try {
|
|
123566
|
+
return await fetchResult(`/pages/assets/upsert-hashes`, {
|
|
123567
|
+
method: "POST",
|
|
123568
|
+
headers: {
|
|
123569
|
+
"Content-Type": "application/json",
|
|
123570
|
+
Authorization: `Bearer ${jwt}`
|
|
123571
|
+
},
|
|
123572
|
+
body: JSON.stringify({
|
|
123573
|
+
hashes: files2.map(({ hash: hash2 }) => hash2)
|
|
123574
|
+
})
|
|
123575
|
+
});
|
|
123576
|
+
} catch (e2) {
|
|
123577
|
+
await new Promise((resolve11) => setTimeout(resolve11, 1e3));
|
|
123578
|
+
if (e2.code === 8000013) {
|
|
123579
|
+
jwt = await fetchJwt();
|
|
123580
|
+
}
|
|
123581
|
+
return await fetchResult(`/pages/assets/upsert-hashes`, {
|
|
123582
|
+
method: "POST",
|
|
123583
|
+
headers: {
|
|
123584
|
+
"Content-Type": "application/json",
|
|
123585
|
+
Authorization: `Bearer ${jwt}`
|
|
123586
|
+
},
|
|
123587
|
+
body: JSON.stringify({
|
|
123588
|
+
hashes: files2.map(({ hash: hash2 }) => hash2)
|
|
123589
|
+
})
|
|
123590
|
+
});
|
|
123591
|
+
}
|
|
123592
|
+
};
|
|
123593
|
+
try {
|
|
123594
|
+
await doUpsertHashes();
|
|
123595
|
+
} catch {
|
|
123596
|
+
logger.warn("Failed to update file hashes. Every upload appeared to succeed for this deployment, but you might need to re-upload for future deployments. This shouldn't have any impact other than slowing the upload speed of your next deployment.");
|
|
123597
|
+
}
|
|
123598
|
+
return Object.fromEntries([...fileMap.entries()].map(([fileName, file]) => [
|
|
123599
|
+
`/${fileName}`,
|
|
123600
|
+
file.hash
|
|
123601
|
+
]));
|
|
123602
|
+
};
|
|
123314
123603
|
var createDeployment = {
|
|
123315
123604
|
describe: "\u{1F199} Publish a directory of static assets as a Pages deployment",
|
|
123316
123605
|
builder: (yargs) => {
|
|
@@ -123361,7 +123650,7 @@ var createDeployment = {
|
|
|
123361
123650
|
let existingOrNew = "new";
|
|
123362
123651
|
if (projects.length > 0) {
|
|
123363
123652
|
existingOrNew = await new Promise((resolve11) => {
|
|
123364
|
-
const { unmount
|
|
123653
|
+
const { unmount } = (0, import_ink5.render)(/* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, null, /* @__PURE__ */ import_react9.default.createElement(import_ink5.Text, null, "No project selected. Would you like to create one or use an existing project?"), /* @__PURE__ */ import_react9.default.createElement(import_ink_select_input3.default, {
|
|
123365
123654
|
items: [
|
|
123366
123655
|
{
|
|
123367
123656
|
key: "new",
|
|
@@ -123376,7 +123665,7 @@ var createDeployment = {
|
|
|
123376
123665
|
],
|
|
123377
123666
|
onSelect: async (selected) => {
|
|
123378
123667
|
resolve11(selected.value);
|
|
123379
|
-
|
|
123668
|
+
unmount();
|
|
123380
123669
|
}
|
|
123381
123670
|
})));
|
|
123382
123671
|
});
|
|
@@ -123384,7 +123673,7 @@ var createDeployment = {
|
|
|
123384
123673
|
switch (existingOrNew) {
|
|
123385
123674
|
case "existing": {
|
|
123386
123675
|
projectName = await new Promise((resolve11) => {
|
|
123387
|
-
const { unmount
|
|
123676
|
+
const { unmount } = (0, import_ink5.render)(/* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, null, /* @__PURE__ */ import_react9.default.createElement(import_ink5.Text, null, "Select a project:"), /* @__PURE__ */ import_react9.default.createElement(import_ink_select_input3.default, {
|
|
123388
123677
|
items: projects.map((project) => ({
|
|
123389
123678
|
key: project.name,
|
|
123390
123679
|
label: project.name,
|
|
@@ -123392,7 +123681,7 @@ var createDeployment = {
|
|
|
123392
123681
|
})),
|
|
123393
123682
|
onSelect: async (selected) => {
|
|
123394
123683
|
resolve11(selected.value.name);
|
|
123395
|
-
|
|
123684
|
+
unmount();
|
|
123396
123685
|
}
|
|
123397
123686
|
})));
|
|
123398
123687
|
});
|
|
@@ -123477,149 +123766,9 @@ To silence this warning, pass in --commit-dirty=true`);
|
|
|
123477
123766
|
}));
|
|
123478
123767
|
builtFunctions = (0, import_node_fs7.readFileSync)(outfile, "utf-8");
|
|
123479
123768
|
}
|
|
123480
|
-
const
|
|
123481
|
-
"_worker.js",
|
|
123482
|
-
"_redirects",
|
|
123483
|
-
"_headers",
|
|
123484
|
-
".DS_Store",
|
|
123485
|
-
"node_modules"
|
|
123486
|
-
];
|
|
123487
|
-
const walk = async (dir, fileMap2 = /* @__PURE__ */ new Map(), depth = 0) => {
|
|
123488
|
-
const files3 = await (0, import_promises9.readdir)(dir);
|
|
123489
|
-
await Promise.all(files3.map(async (file) => {
|
|
123490
|
-
const filepath = (0, import_node_path19.join)(dir, file);
|
|
123491
|
-
const filestat = await (0, import_promises9.stat)(filepath);
|
|
123492
|
-
if (IGNORE_LIST.includes(file)) {
|
|
123493
|
-
return;
|
|
123494
|
-
}
|
|
123495
|
-
if (filestat.isSymbolicLink()) {
|
|
123496
|
-
return;
|
|
123497
|
-
}
|
|
123498
|
-
if (filestat.isDirectory()) {
|
|
123499
|
-
fileMap2 = await walk(filepath, fileMap2, depth + 1);
|
|
123500
|
-
} else {
|
|
123501
|
-
let name2;
|
|
123502
|
-
if (depth) {
|
|
123503
|
-
name2 = filepath.split(import_node_path19.sep).slice(1).join("/");
|
|
123504
|
-
} else {
|
|
123505
|
-
name2 = file;
|
|
123506
|
-
}
|
|
123507
|
-
const fileContent = await (0, import_promises9.readFile)(filepath);
|
|
123508
|
-
const base64Content = fileContent.toString("base64");
|
|
123509
|
-
const extension = (0, import_node_path19.extname)((0, import_node_path19.basename)(name2)).substring(1);
|
|
123510
|
-
if (filestat.size > 25 * 1024 * 1024) {
|
|
123511
|
-
throw new Error(`Error: Pages only supports files up to ${prettyBytes(25 * 1024 * 1024)} in size
|
|
123512
|
-
${name2} is ${prettyBytes(filestat.size)} in size`);
|
|
123513
|
-
}
|
|
123514
|
-
fileMap2.set(name2, {
|
|
123515
|
-
content: base64Content,
|
|
123516
|
-
contentType: (0, import_mime.getType)(name2) || "application/octet-stream",
|
|
123517
|
-
sizeInBytes: filestat.size,
|
|
123518
|
-
hash: (0, import_blake3_wasm.hash)(base64Content + extension).toString("hex").slice(0, 32)
|
|
123519
|
-
});
|
|
123520
|
-
}
|
|
123521
|
-
}));
|
|
123522
|
-
return fileMap2;
|
|
123523
|
-
};
|
|
123524
|
-
const fileMap = await walk(directory);
|
|
123525
|
-
if (fileMap.size > 2e4) {
|
|
123526
|
-
throw new FatalError(`Error: Pages only supports up to 20,000 files in a deployment. Ensure you have specified your build output directory correctly.`, 1);
|
|
123527
|
-
}
|
|
123528
|
-
const files2 = [...fileMap.values()];
|
|
123529
|
-
const { jwt } = await fetchResult(`/accounts/${accountId}/pages/projects/${projectName}/upload-token`);
|
|
123530
|
-
const start = Date.now();
|
|
123531
|
-
const missingHashes = await fetchResult(`/pages/assets/check-missing`, {
|
|
123532
|
-
method: "POST",
|
|
123533
|
-
headers: {
|
|
123534
|
-
"Content-Type": "application/json",
|
|
123535
|
-
Authorization: `Bearer ${jwt}`
|
|
123536
|
-
},
|
|
123537
|
-
body: JSON.stringify({
|
|
123538
|
-
hashes: files2.map(({ hash: hash2 }) => hash2)
|
|
123539
|
-
})
|
|
123540
|
-
});
|
|
123541
|
-
const sortedFiles = files2.filter((file) => missingHashes.includes(file.hash)).sort((a, b) => b.sizeInBytes - a.sizeInBytes);
|
|
123542
|
-
const buckets = new Array(BULK_UPLOAD_CONCURRENCY).fill(null).map(() => ({
|
|
123543
|
-
files: [],
|
|
123544
|
-
remainingSize: MAX_BUCKET_SIZE
|
|
123545
|
-
}));
|
|
123546
|
-
let bucketOffset = 0;
|
|
123547
|
-
for (const file of sortedFiles) {
|
|
123548
|
-
let inserted = false;
|
|
123549
|
-
for (let i2 = 0; i2 < buckets.length; i2++) {
|
|
123550
|
-
const bucket = buckets[(i2 + bucketOffset) % buckets.length];
|
|
123551
|
-
if (bucket.remainingSize >= file.sizeInBytes && bucket.files.length < MAX_BUCKET_FILE_COUNT) {
|
|
123552
|
-
bucket.files.push(file);
|
|
123553
|
-
bucket.remainingSize -= file.sizeInBytes;
|
|
123554
|
-
inserted = true;
|
|
123555
|
-
break;
|
|
123556
|
-
}
|
|
123557
|
-
}
|
|
123558
|
-
if (!inserted) {
|
|
123559
|
-
buckets.push({
|
|
123560
|
-
files: [file],
|
|
123561
|
-
remainingSize: MAX_BUCKET_SIZE - file.sizeInBytes
|
|
123562
|
-
});
|
|
123563
|
-
}
|
|
123564
|
-
bucketOffset++;
|
|
123565
|
-
}
|
|
123566
|
-
let counter = fileMap.size - sortedFiles.length;
|
|
123567
|
-
const { rerender, unmount } = (0, import_ink5.render)(/* @__PURE__ */ import_react9.default.createElement(Progress, {
|
|
123568
|
-
done: counter,
|
|
123569
|
-
total: fileMap.size
|
|
123570
|
-
}));
|
|
123571
|
-
const queue = new PQueue({ concurrency: BULK_UPLOAD_CONCURRENCY });
|
|
123572
|
-
for (const bucket of buckets) {
|
|
123573
|
-
if (bucket.files.length === 0)
|
|
123574
|
-
continue;
|
|
123575
|
-
const payload = bucket.files.map((file) => ({
|
|
123576
|
-
key: file.hash,
|
|
123577
|
-
value: file.content,
|
|
123578
|
-
metadata: {
|
|
123579
|
-
contentType: file.contentType
|
|
123580
|
-
},
|
|
123581
|
-
base64: true
|
|
123582
|
-
}));
|
|
123583
|
-
let attempts = 0;
|
|
123584
|
-
const doUpload = async () => {
|
|
123585
|
-
try {
|
|
123586
|
-
return await fetchResult(`/pages/assets/upload`, {
|
|
123587
|
-
method: "POST",
|
|
123588
|
-
headers: {
|
|
123589
|
-
"Content-Type": "application/json",
|
|
123590
|
-
Authorization: `Bearer ${jwt}`
|
|
123591
|
-
},
|
|
123592
|
-
body: JSON.stringify(payload)
|
|
123593
|
-
});
|
|
123594
|
-
} catch (e2) {
|
|
123595
|
-
if (attempts < MAX_UPLOAD_ATTEMPTS) {
|
|
123596
|
-
await new Promise((resolve11) => setTimeout(resolve11, attempts++ * 1e3));
|
|
123597
|
-
return doUpload();
|
|
123598
|
-
} else {
|
|
123599
|
-
throw e2;
|
|
123600
|
-
}
|
|
123601
|
-
}
|
|
123602
|
-
};
|
|
123603
|
-
queue.add(() => doUpload().then(() => {
|
|
123604
|
-
counter += bucket.files.length;
|
|
123605
|
-
rerender(/* @__PURE__ */ import_react9.default.createElement(Progress, {
|
|
123606
|
-
done: counter,
|
|
123607
|
-
total: fileMap.size
|
|
123608
|
-
}));
|
|
123609
|
-
}, (error) => {
|
|
123610
|
-
return Promise.reject(new FatalError("Failed to upload files. Please try again.", error.code || 1));
|
|
123611
|
-
}));
|
|
123612
|
-
}
|
|
123613
|
-
await queue.onIdle();
|
|
123614
|
-
unmount();
|
|
123615
|
-
const uploadMs = Date.now() - start;
|
|
123616
|
-
logger.log(`\u2728 Success! Uploaded ${fileMap.size} files ${formatTime(uploadMs)}
|
|
123617
|
-
`);
|
|
123769
|
+
const manifest = await upload({ directory, accountId, projectName });
|
|
123618
123770
|
const formData = new import_undici6.FormData();
|
|
123619
|
-
formData.append("manifest", JSON.stringify(
|
|
123620
|
-
`/${fileName}`,
|
|
123621
|
-
file.hash
|
|
123622
|
-
]))));
|
|
123771
|
+
formData.append("manifest", JSON.stringify(manifest));
|
|
123623
123772
|
if (branch) {
|
|
123624
123773
|
formData.append("branch", branch);
|
|
123625
123774
|
}
|
|
@@ -123802,6 +123951,7 @@ var pages = (yargs) => {
|
|
|
123802
123951
|
} else {
|
|
123803
123952
|
logger.log("No functions. Shimming...");
|
|
123804
123953
|
miniflareArgs = {
|
|
123954
|
+
cfFetch: false,
|
|
123805
123955
|
script: `
|
|
123806
123956
|
export default {
|
|
123807
123957
|
async fetch(request, env, context) {
|
|
@@ -124037,7 +124187,7 @@ var pages = (yargs) => {
|
|
|
124037
124187
|
if (!projectName && isInteractive) {
|
|
124038
124188
|
const projects = await listProjects({ accountId });
|
|
124039
124189
|
projectName = await new Promise((resolve11) => {
|
|
124040
|
-
const { unmount } = (0, import_ink5.render)(/* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, null, /* @__PURE__ */ import_react9.default.createElement(import_ink5.Text, null, "Select a project:"), /* @__PURE__ */ import_react9.default.createElement(
|
|
124190
|
+
const { unmount } = (0, import_ink5.render)(/* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, null, /* @__PURE__ */ import_react9.default.createElement(import_ink5.Text, null, "Select a project:"), /* @__PURE__ */ import_react9.default.createElement(import_ink_select_input3.default, {
|
|
124041
124191
|
items: projects.map((project) => ({
|
|
124042
124192
|
key: project.name,
|
|
124043
124193
|
label: project.name,
|
|
@@ -124185,6 +124335,32 @@ async function getMigrationsToUpload(scriptName, props) {
|
|
|
124185
124335
|
return migrations;
|
|
124186
124336
|
}
|
|
124187
124337
|
|
|
124338
|
+
// src/zones.ts
|
|
124339
|
+
init_import_meta_url();
|
|
124340
|
+
async function getZoneForRoute(route) {
|
|
124341
|
+
const host = typeof route === "string" ? getHostFromUrl(route) : typeof route === "object" ? "zone_name" in route ? getHostFromUrl(route.zone_name) : getHostFromUrl(route.pattern) : void 0;
|
|
124342
|
+
const id = typeof route === "object" && "zone_id" in route ? route.zone_id : host ? await getZoneIdFromHost(host) : void 0;
|
|
124343
|
+
return id && host ? { id, host } : void 0;
|
|
124344
|
+
}
|
|
124345
|
+
function getHostFromUrl(urlLike) {
|
|
124346
|
+
urlLike = urlLike.replace(/^\*(\.)?/g, "");
|
|
124347
|
+
if (!(urlLike.startsWith("http://") || urlLike.startsWith("https://"))) {
|
|
124348
|
+
urlLike = "http://" + urlLike;
|
|
124349
|
+
}
|
|
124350
|
+
return new URL(urlLike).host;
|
|
124351
|
+
}
|
|
124352
|
+
async function getZoneIdFromHost(host) {
|
|
124353
|
+
const hostPieces = host.split(".");
|
|
124354
|
+
while (hostPieces.length > 1) {
|
|
124355
|
+
const zones = await fetchListResult(`/zones`, {}, new URLSearchParams({ name: hostPieces.join(".") }));
|
|
124356
|
+
if (zones.length > 0) {
|
|
124357
|
+
return zones[0].id;
|
|
124358
|
+
}
|
|
124359
|
+
hostPieces.shift();
|
|
124360
|
+
}
|
|
124361
|
+
throw new Error(`Could not find zone for ${host}`);
|
|
124362
|
+
}
|
|
124363
|
+
|
|
124188
124364
|
// src/publish.ts
|
|
124189
124365
|
function sleep3(ms) {
|
|
124190
124366
|
return new Promise((resolve11) => setTimeout(resolve11, ms));
|
|
@@ -124318,7 +124494,7 @@ async function publish(props) {
|
|
|
124318
124494
|
const minify = props.minify ?? config.minify;
|
|
124319
124495
|
const nodeCompat = props.nodeCompat ?? config.node_compat;
|
|
124320
124496
|
if (nodeCompat) {
|
|
124321
|
-
logger.warn("Enabling node.js compatibility mode for
|
|
124497
|
+
logger.warn("Enabling node.js compatibility mode for built-ins and globals. This is experimental and has serious tradeoffs. Please see https://github.com/ionic-team/rollup-plugin-node-polyfills/ for more details.");
|
|
124322
124498
|
}
|
|
124323
124499
|
const scriptName = props.name;
|
|
124324
124500
|
(0, import_node_assert9.default)(scriptName, 'You need to provide a name when publishing a worker. Either pass it as a cli arg with `--name <name>` or in your config file as `name = "<name>"`');
|
|
@@ -124331,7 +124507,7 @@ async function publish(props) {
|
|
|
124331
124507
|
const destination = props.outDir ?? await import_tmp_promise2.default.dir({ unsafeCleanup: true });
|
|
124332
124508
|
const envName = props.env ?? "production";
|
|
124333
124509
|
const start = Date.now();
|
|
124334
|
-
const notProd = !props.legacyEnv && props.env;
|
|
124510
|
+
const notProd = Boolean(!props.legacyEnv && props.env);
|
|
124335
124511
|
const workerName = notProd ? `${scriptName} (${envName})` : scriptName;
|
|
124336
124512
|
const workerUrl = notProd ? `/accounts/${accountId}/workers/services/${scriptName}/environments/${envName}` : `/accounts/${accountId}/workers/scripts/${scriptName}`;
|
|
124337
124513
|
let available_on_subdomain;
|
|
@@ -124459,13 +124635,7 @@ async function publish(props) {
|
|
|
124459
124635
|
}
|
|
124460
124636
|
logger.log("Uploaded", workerName, formatTime2(uploadMs));
|
|
124461
124637
|
if (routesOnly.length > 0) {
|
|
124462
|
-
deployments.push(
|
|
124463
|
-
method: "PUT",
|
|
124464
|
-
body: JSON.stringify(routesOnly.map((route) => typeof route !== "object" ? { pattern: route } : route)),
|
|
124465
|
-
headers: {
|
|
124466
|
-
"Content-Type": "application/json"
|
|
124467
|
-
}
|
|
124468
|
-
}).then(() => {
|
|
124638
|
+
deployments.push(publishRoutes(routesOnly, { workerUrl, scriptName, notProd }).then(() => {
|
|
124469
124639
|
if (routesOnly.length > 10) {
|
|
124470
124640
|
return routesOnly.slice(0, 9).map((route) => renderRoute(route)).concat([`...and ${routesOnly.length - 10} more routes`]);
|
|
124471
124641
|
}
|
|
@@ -124516,6 +124686,92 @@ ${onboardingLink}`);
|
|
|
124516
124686
|
}
|
|
124517
124687
|
}
|
|
124518
124688
|
}
|
|
124689
|
+
async function publishRoutes(routes, {
|
|
124690
|
+
workerUrl,
|
|
124691
|
+
scriptName,
|
|
124692
|
+
notProd
|
|
124693
|
+
}) {
|
|
124694
|
+
try {
|
|
124695
|
+
return await fetchResult(`${workerUrl}/routes`, {
|
|
124696
|
+
method: "PUT",
|
|
124697
|
+
body: JSON.stringify(routes.map((route) => typeof route !== "object" ? { pattern: route } : route)),
|
|
124698
|
+
headers: {
|
|
124699
|
+
"Content-Type": "application/json"
|
|
124700
|
+
}
|
|
124701
|
+
});
|
|
124702
|
+
} catch (e2) {
|
|
124703
|
+
if (isAuthenticationError(e2)) {
|
|
124704
|
+
return await publishRoutesFallback(routes, { scriptName, notProd });
|
|
124705
|
+
} else {
|
|
124706
|
+
throw e2;
|
|
124707
|
+
}
|
|
124708
|
+
}
|
|
124709
|
+
}
|
|
124710
|
+
async function publishRoutesFallback(routes, { scriptName, notProd }) {
|
|
124711
|
+
if (notProd) {
|
|
124712
|
+
throw new Error("Service environments combined with an API token that doesn't have 'All Zones' permissions is not supported.\nEither turn off service environments by setting `legacy_env = true`, creating an API token with 'All Zones' permissions, or logging in via OAuth");
|
|
124713
|
+
}
|
|
124714
|
+
logger.warn("The current authentication token does not have 'All Zones' permissions.\nFalling back to using the zone-based API endpoint to update each route individually.\nNote that there is no access to routes associated with zones that the API token does not have permission for.\nExisting routes for this Worker in such zones will not be deleted.");
|
|
124715
|
+
const deployedRoutes = [];
|
|
124716
|
+
const activeZones = /* @__PURE__ */ new Map();
|
|
124717
|
+
const routesToDeploy = /* @__PURE__ */ new Map();
|
|
124718
|
+
for (const route of routes) {
|
|
124719
|
+
const zone = await getZoneForRoute(route);
|
|
124720
|
+
if (zone) {
|
|
124721
|
+
activeZones.set(zone.id, zone.host);
|
|
124722
|
+
routesToDeploy.set(typeof route === "string" ? route : route.pattern, zone.id);
|
|
124723
|
+
}
|
|
124724
|
+
}
|
|
124725
|
+
const allRoutes = /* @__PURE__ */ new Map();
|
|
124726
|
+
const alreadyDeployedRoutes = /* @__PURE__ */ new Set();
|
|
124727
|
+
for (const [zone, host] of activeZones) {
|
|
124728
|
+
try {
|
|
124729
|
+
for (const { pattern, script } of await fetchListResult(`/zones/${zone}/workers/routes`)) {
|
|
124730
|
+
allRoutes.set(pattern, script);
|
|
124731
|
+
if (script === scriptName) {
|
|
124732
|
+
alreadyDeployedRoutes.add(pattern);
|
|
124733
|
+
}
|
|
124734
|
+
}
|
|
124735
|
+
} catch (e2) {
|
|
124736
|
+
if (isAuthenticationError(e2)) {
|
|
124737
|
+
e2.notes.push({
|
|
124738
|
+
text: `This could be because the API token being used does not have permission to access the zone "${host}" (${zone}).`
|
|
124739
|
+
});
|
|
124740
|
+
}
|
|
124741
|
+
throw e2;
|
|
124742
|
+
}
|
|
124743
|
+
}
|
|
124744
|
+
for (const [routePattern, zoneId] of routesToDeploy.entries()) {
|
|
124745
|
+
if (allRoutes.has(routePattern)) {
|
|
124746
|
+
const knownScript = allRoutes.get(routePattern);
|
|
124747
|
+
if (knownScript === scriptName) {
|
|
124748
|
+
alreadyDeployedRoutes.delete(routePattern);
|
|
124749
|
+
continue;
|
|
124750
|
+
} else {
|
|
124751
|
+
throw new Error(`The route with pattern "${routePattern}" is already associated with another worker called "${knownScript}".`);
|
|
124752
|
+
}
|
|
124753
|
+
}
|
|
124754
|
+
const { pattern } = await fetchResult(`/zones/${zoneId}/workers/routes`, {
|
|
124755
|
+
method: "POST",
|
|
124756
|
+
body: JSON.stringify({
|
|
124757
|
+
pattern: routePattern,
|
|
124758
|
+
script: scriptName
|
|
124759
|
+
}),
|
|
124760
|
+
headers: {
|
|
124761
|
+
"Content-Type": "application/json"
|
|
124762
|
+
}
|
|
124763
|
+
});
|
|
124764
|
+
deployedRoutes.push(pattern);
|
|
124765
|
+
}
|
|
124766
|
+
if (alreadyDeployedRoutes.size) {
|
|
124767
|
+
logger.warn("Previously deployed routes:\nThe following routes were already associated with this worker, and have not been deleted:\n" + [...alreadyDeployedRoutes.values()].map((route) => ` - "${route}"
|
|
124768
|
+
`) + "If these routes are not wanted then you can remove them in the dashboard.");
|
|
124769
|
+
}
|
|
124770
|
+
return deployedRoutes;
|
|
124771
|
+
}
|
|
124772
|
+
function isAuthenticationError(e2) {
|
|
124773
|
+
return e2 instanceof ParseError && e2.code === 1e4;
|
|
124774
|
+
}
|
|
124519
124775
|
|
|
124520
124776
|
// src/r2.ts
|
|
124521
124777
|
init_import_meta_url();
|
|
@@ -124744,9 +125000,10 @@ function Accounts(props) {
|
|
|
124744
125000
|
}
|
|
124745
125001
|
async function getUserInfo() {
|
|
124746
125002
|
const apiToken = getAPIToken();
|
|
125003
|
+
const apiTokenFromEnv = getCloudflareAPITokenFromEnv();
|
|
124747
125004
|
return apiToken ? {
|
|
124748
125005
|
apiToken,
|
|
124749
|
-
authType: "OAuth",
|
|
125006
|
+
authType: apiTokenFromEnv ? "API" : "OAuth",
|
|
124750
125007
|
email: await getEmail(),
|
|
124751
125008
|
accounts: await getAccounts()
|
|
124752
125009
|
} : void 0;
|
|
@@ -124957,7 +125214,10 @@ ${err2.message ?? err2}`);
|
|
|
124957
125214
|
if (!isInsideGitProject && isGitInstalled) {
|
|
124958
125215
|
const shouldInitGit = yesFlag || await confirm("Would you like to use git to manage this Worker?");
|
|
124959
125216
|
if (shouldInitGit) {
|
|
124960
|
-
await execa("git", ["init"
|
|
125217
|
+
await execa("git", ["init"], {
|
|
125218
|
+
cwd: creationDirectory
|
|
125219
|
+
});
|
|
125220
|
+
await execa("git", ["branch", "-m", "main"], {
|
|
124961
125221
|
cwd: creationDirectory
|
|
124962
125222
|
});
|
|
124963
125223
|
await (0, import_promises10.writeFile)(import_node_path21.default.join(creationDirectory, ".gitignore"), readFileSync5(import_node_path21.default.join(__dirname, "../templates/gitignore")));
|
|
@@ -125035,14 +125295,16 @@ ${err2.message ?? err2}`);
|
|
|
125035
125295
|
}
|
|
125036
125296
|
}
|
|
125037
125297
|
}
|
|
125038
|
-
async function writePackageJsonScriptsAndUpdateWranglerToml(isWritingScripts, isCreatingWranglerToml, packagePath, scriptPath) {
|
|
125298
|
+
async function writePackageJsonScriptsAndUpdateWranglerToml(isWritingScripts, isCreatingWranglerToml, packagePath, scriptPath, extraToml) {
|
|
125039
125299
|
if (isCreatingWranglerToml) {
|
|
125040
125300
|
const parsedWranglerToml = parseTOML(readFileSync5(wranglerTomlDestination));
|
|
125041
|
-
|
|
125301
|
+
const newToml = {
|
|
125042
125302
|
name: parsedWranglerToml.name,
|
|
125043
125303
|
main: scriptPath,
|
|
125044
|
-
compatibility_date: parsedWranglerToml.compatibility_date
|
|
125045
|
-
|
|
125304
|
+
compatibility_date: parsedWranglerToml.compatibility_date,
|
|
125305
|
+
...extraToml
|
|
125306
|
+
};
|
|
125307
|
+
fs8.writeFileSync(wranglerTomlDestination, import_toml4.default.stringify(newToml));
|
|
125046
125308
|
}
|
|
125047
125309
|
const isNamedWorker = isCreatingWranglerToml && import_node_path21.default.dirname(packagePath) !== process.cwd();
|
|
125048
125310
|
if (isWritingScripts) {
|
|
@@ -125051,40 +125313,79 @@ ${err2.message ?? err2}`);
|
|
|
125051
125313
|
scripts: {
|
|
125052
125314
|
...packageJsonContent.scripts,
|
|
125053
125315
|
start: isCreatingWranglerToml ? `wrangler dev` : `wrangler dev ${scriptPath}`,
|
|
125054
|
-
|
|
125316
|
+
deploy: isCreatingWranglerToml ? `wrangler publish` : `wrangler publish ${scriptPath}`
|
|
125055
125317
|
}
|
|
125056
125318
|
}, null, 2) + "\n");
|
|
125057
125319
|
instructions.push(`
|
|
125058
125320
|
To start developing your Worker, run \`${isNamedWorker ? `cd ${args.name} && ` : ""}npm start\``);
|
|
125059
|
-
instructions.push(`To publish your Worker to the Internet, run \`npm run
|
|
125321
|
+
instructions.push(`To publish your Worker to the Internet, run \`npm run deploy\``);
|
|
125060
125322
|
} else {
|
|
125061
125323
|
instructions.push(`
|
|
125062
125324
|
To start developing your Worker, run \`npx wrangler dev\`${isCreatingWranglerToml ? "" : ` ${scriptPath}`}`);
|
|
125063
125325
|
instructions.push(`To publish your Worker to the Internet, run \`npx wrangler publish\`${isCreatingWranglerToml ? "" : ` ${scriptPath}`}`);
|
|
125064
125326
|
}
|
|
125065
125327
|
}
|
|
125328
|
+
async function getNewWorkerType(newWorkerFilename) {
|
|
125329
|
+
return select(`Would you like to create a Worker at ${newWorkerFilename}?`, [
|
|
125330
|
+
{
|
|
125331
|
+
value: "none",
|
|
125332
|
+
label: "None"
|
|
125333
|
+
},
|
|
125334
|
+
{
|
|
125335
|
+
value: "fetch",
|
|
125336
|
+
label: "Fetch handler"
|
|
125337
|
+
},
|
|
125338
|
+
{
|
|
125339
|
+
value: "scheduled",
|
|
125340
|
+
label: "Scheduled handler"
|
|
125341
|
+
}
|
|
125342
|
+
], 1);
|
|
125343
|
+
}
|
|
125344
|
+
function getNewWorkerTemplate(lang, workerType) {
|
|
125345
|
+
const templates = {
|
|
125346
|
+
"js-fetch": "new-worker.js",
|
|
125347
|
+
"js-scheduled": "new-worker-scheduled.js",
|
|
125348
|
+
"ts-fetch": "new-worker.ts",
|
|
125349
|
+
"ts-scheduled": "new-worker-scheduled.ts"
|
|
125350
|
+
};
|
|
125351
|
+
return templates[`${lang}-${workerType}`];
|
|
125352
|
+
}
|
|
125353
|
+
function getNewWorkerToml(workerType) {
|
|
125354
|
+
if (workerType === "scheduled") {
|
|
125355
|
+
return {
|
|
125356
|
+
triggers: {
|
|
125357
|
+
crons: ["1 * * * *"]
|
|
125358
|
+
}
|
|
125359
|
+
};
|
|
125360
|
+
}
|
|
125361
|
+
return {};
|
|
125362
|
+
}
|
|
125066
125363
|
if (isTypescriptProject) {
|
|
125067
125364
|
if (!fs8.existsSync(import_node_path21.default.join(creationDirectory, "./src/index.ts"))) {
|
|
125068
|
-
const
|
|
125069
|
-
|
|
125365
|
+
const newWorkerFilename = import_node_path21.default.relative(process.cwd(), import_node_path21.default.join(creationDirectory, "./src/index.ts"));
|
|
125366
|
+
const newWorkerType = yesFlag ? "fetch" : await getNewWorkerType(newWorkerFilename);
|
|
125367
|
+
if (newWorkerType !== "none") {
|
|
125368
|
+
const template = getNewWorkerTemplate("ts", newWorkerType);
|
|
125070
125369
|
await (0, import_promises10.mkdir)(import_node_path21.default.join(creationDirectory, "./src"), {
|
|
125071
125370
|
recursive: true
|
|
125072
125371
|
});
|
|
125073
|
-
await (0, import_promises10.writeFile)(import_node_path21.default.join(creationDirectory, "./src/index.ts"), readFileSync5(import_node_path21.default.join(__dirname,
|
|
125372
|
+
await (0, import_promises10.writeFile)(import_node_path21.default.join(creationDirectory, "./src/index.ts"), readFileSync5(import_node_path21.default.join(__dirname, `../templates/${template}`)));
|
|
125074
125373
|
logger.log(`\u2728 Created ${import_node_path21.default.relative(process.cwd(), import_node_path21.default.join(creationDirectory, "./src/index.ts"))}`);
|
|
125075
|
-
await writePackageJsonScriptsAndUpdateWranglerToml(shouldWritePackageJsonScripts, justCreatedWranglerToml, pathToPackageJson, "src/index.ts");
|
|
125374
|
+
await writePackageJsonScriptsAndUpdateWranglerToml(shouldWritePackageJsonScripts, justCreatedWranglerToml, pathToPackageJson, "src/index.ts", getNewWorkerToml(newWorkerType));
|
|
125076
125375
|
}
|
|
125077
125376
|
}
|
|
125078
125377
|
} else {
|
|
125079
125378
|
if (!fs8.existsSync(import_node_path21.default.join(creationDirectory, "./src/index.js"))) {
|
|
125080
|
-
const
|
|
125081
|
-
|
|
125379
|
+
const newWorkerFilename = import_node_path21.default.relative(process.cwd(), import_node_path21.default.join(creationDirectory, "./src/index.js"));
|
|
125380
|
+
const newWorkerType = yesFlag ? "fetch" : await getNewWorkerType(newWorkerFilename);
|
|
125381
|
+
if (newWorkerType !== "none") {
|
|
125382
|
+
const template = getNewWorkerTemplate("js", newWorkerType);
|
|
125082
125383
|
await (0, import_promises10.mkdir)(import_node_path21.default.join(creationDirectory, "./src"), {
|
|
125083
125384
|
recursive: true
|
|
125084
125385
|
});
|
|
125085
|
-
await (0, import_promises10.writeFile)(import_node_path21.default.join(creationDirectory, "./src/index.js"), readFileSync5(import_node_path21.default.join(__dirname,
|
|
125386
|
+
await (0, import_promises10.writeFile)(import_node_path21.default.join(creationDirectory, "./src/index.js"), readFileSync5(import_node_path21.default.join(__dirname, `../templates/${template}`)));
|
|
125086
125387
|
logger.log(`\u2728 Created ${import_node_path21.default.relative(process.cwd(), import_node_path21.default.join(creationDirectory, "./src/index.js"))}`);
|
|
125087
|
-
await writePackageJsonScriptsAndUpdateWranglerToml(shouldWritePackageJsonScripts, justCreatedWranglerToml, pathToPackageJson, "src/index.js");
|
|
125388
|
+
await writePackageJsonScriptsAndUpdateWranglerToml(shouldWritePackageJsonScripts, justCreatedWranglerToml, pathToPackageJson, "src/index.js", getNewWorkerToml(newWorkerType));
|
|
125088
125389
|
}
|
|
125089
125390
|
}
|
|
125090
125391
|
}
|
|
@@ -125257,45 +125558,69 @@ To start developing your Worker, run \`npx wrangler dev\`${isCreatingWranglerTom
|
|
|
125257
125558
|
if (upstreamProtocol === "http") {
|
|
125258
125559
|
logger.warn("Setting upstream-protocol to http is not currently implemented.\nIf this is required in your project, please add your use case to the following issue:\nhttps://github.com/cloudflare/wrangler2/issues/583.");
|
|
125259
125560
|
}
|
|
125260
|
-
|
|
125261
|
-
|
|
125262
|
-
urlLike = urlLike.replace(/^\*(\.)?/g, "");
|
|
125263
|
-
if (!(urlLike.startsWith("http://") || urlLike.startsWith("https://"))) {
|
|
125264
|
-
urlLike = "http://" + urlLike;
|
|
125265
|
-
}
|
|
125266
|
-
return new URL(urlLike).host;
|
|
125267
|
-
}
|
|
125268
|
-
async function getZoneId(host) {
|
|
125269
|
-
const zones = await fetchResult(`/zones`, {}, new URLSearchParams({ name: host }));
|
|
125270
|
-
return zones[0]?.id;
|
|
125271
|
-
}
|
|
125272
|
-
let zone;
|
|
125561
|
+
let host = args.host || config.dev.host;
|
|
125562
|
+
let zoneId;
|
|
125273
125563
|
if (!args.local) {
|
|
125274
|
-
|
|
125275
|
-
|
|
125276
|
-
|
|
125277
|
-
const
|
|
125278
|
-
|
|
125279
|
-
|
|
125280
|
-
|
|
125281
|
-
|
|
125282
|
-
|
|
125283
|
-
|
|
125284
|
-
|
|
125285
|
-
|
|
125286
|
-
host,
|
|
125287
|
-
id: zoneId
|
|
125288
|
-
} : void 0;
|
|
125564
|
+
if (host) {
|
|
125565
|
+
zoneId = await getZoneIdFromHost(host);
|
|
125566
|
+
}
|
|
125567
|
+
const routes = args.routes || config.route || config.routes;
|
|
125568
|
+
if (!zoneId && routes) {
|
|
125569
|
+
const firstRoute = Array.isArray(routes) ? routes[0] : routes;
|
|
125570
|
+
const zone = await getZoneForRoute(firstRoute);
|
|
125571
|
+
if (zone) {
|
|
125572
|
+
zoneId = zone.id;
|
|
125573
|
+
host = zone.host;
|
|
125574
|
+
}
|
|
125575
|
+
}
|
|
125289
125576
|
}
|
|
125290
125577
|
const nodeCompat = args.nodeCompat ?? config.node_compat;
|
|
125291
125578
|
if (nodeCompat) {
|
|
125292
125579
|
logger.warn("Enabling node.js compatibility mode for built-ins and globals. This is experimental and has serious tradeoffs. Please see https://github.com/ionic-team/rollup-plugin-node-polyfills/ for more details.");
|
|
125293
125580
|
}
|
|
125581
|
+
const bindings = {
|
|
125582
|
+
kv_namespaces: config.kv_namespaces?.map(({ binding, preview_id, id: _id }) => {
|
|
125583
|
+
if (!preview_id) {
|
|
125584
|
+
throw new Error(`In development, you should use a separate kv namespace than the one you'd use in production. Please create a new kv namespace with "wrangler kv:namespace create <name> --preview" and add its id as preview_id to the kv_namespace "${binding}" in your wrangler.toml`);
|
|
125585
|
+
}
|
|
125586
|
+
return {
|
|
125587
|
+
binding,
|
|
125588
|
+
id: preview_id
|
|
125589
|
+
};
|
|
125590
|
+
}),
|
|
125591
|
+
vars: getVarsForDev(config),
|
|
125592
|
+
wasm_modules: config.wasm_modules,
|
|
125593
|
+
text_blobs: config.text_blobs,
|
|
125594
|
+
data_blobs: config.data_blobs,
|
|
125595
|
+
durable_objects: config.durable_objects,
|
|
125596
|
+
r2_buckets: config.r2_buckets?.map(({ binding, preview_bucket_name, bucket_name: _bucket_name }) => {
|
|
125597
|
+
if (!preview_bucket_name) {
|
|
125598
|
+
throw new Error(`In development, you should use a separate r2 bucket than the one you'd use in production. Please create a new r2 bucket with "wrangler r2 bucket create <name>" and add its name as preview_bucket_name to the r2_buckets "${binding}" in your wrangler.toml`);
|
|
125599
|
+
}
|
|
125600
|
+
return {
|
|
125601
|
+
binding,
|
|
125602
|
+
bucket_name: preview_bucket_name
|
|
125603
|
+
};
|
|
125604
|
+
}),
|
|
125605
|
+
services: config.services,
|
|
125606
|
+
unsafe: config.unsafe?.bindings
|
|
125607
|
+
};
|
|
125608
|
+
const maskedVars = { ...bindings.vars };
|
|
125609
|
+
for (const key2 of Object.keys(maskedVars)) {
|
|
125610
|
+
if (maskedVars[key2] !== config.vars[key2]) {
|
|
125611
|
+
maskedVars[key2] = "(hidden)";
|
|
125612
|
+
}
|
|
125613
|
+
}
|
|
125614
|
+
printBindings({
|
|
125615
|
+
...bindings,
|
|
125616
|
+
vars: maskedVars
|
|
125617
|
+
});
|
|
125294
125618
|
const { waitUntilExit } = (0, import_ink7.render)(/* @__PURE__ */ import_react11.default.createElement(dev_default, {
|
|
125295
125619
|
name: getScriptName(args, config),
|
|
125296
125620
|
entry,
|
|
125297
125621
|
env: args.env,
|
|
125298
|
-
zone,
|
|
125622
|
+
zone: zoneId,
|
|
125623
|
+
host,
|
|
125299
125624
|
rules: getRules(config),
|
|
125300
125625
|
legacyEnv: isLegacyEnv(config),
|
|
125301
125626
|
minify: args.minify ?? config.minify,
|
|
@@ -125308,7 +125633,7 @@ To start developing your Worker, run \`npx wrangler dev\`${isCreatingWranglerTom
|
|
|
125308
125633
|
upstreamProtocol,
|
|
125309
125634
|
localProtocol: args["local-protocol"] || config.dev.local_protocol,
|
|
125310
125635
|
enableLocalPersistence: args["experimental-enable-local-persistence"] || false,
|
|
125311
|
-
accountId,
|
|
125636
|
+
accountId: config.account_id,
|
|
125312
125637
|
assetPaths: getAssetPaths(config, args.site, args.siteInclude, args.siteExclude),
|
|
125313
125638
|
port: args.port || config.dev.port || await getPorts({ port: DEFAULT_LOCAL_PORT }),
|
|
125314
125639
|
ip: args.ip || config.dev.ip,
|
|
@@ -125317,33 +125642,7 @@ To start developing your Worker, run \`npx wrangler dev\`${isCreatingWranglerTom
|
|
|
125317
125642
|
compatibilityDate: getDevCompatibilityDate(config, args["compatibility-date"]),
|
|
125318
125643
|
compatibilityFlags: args["compatibility-flags"] || config.compatibility_flags,
|
|
125319
125644
|
usageModel: config.usage_model,
|
|
125320
|
-
bindings
|
|
125321
|
-
kv_namespaces: config.kv_namespaces?.map(({ binding, preview_id, id: _id }) => {
|
|
125322
|
-
if (!preview_id) {
|
|
125323
|
-
throw new Error(`In development, you should use a separate kv namespace than the one you'd use in production. Please create a new kv namespace with "wrangler kv:namespace create <name> --preview" and add its id as preview_id to the kv_namespace "${binding}" in your wrangler.toml`);
|
|
125324
|
-
}
|
|
125325
|
-
return {
|
|
125326
|
-
binding,
|
|
125327
|
-
id: preview_id
|
|
125328
|
-
};
|
|
125329
|
-
}),
|
|
125330
|
-
vars: getVarsForDev(config),
|
|
125331
|
-
wasm_modules: config.wasm_modules,
|
|
125332
|
-
text_blobs: config.text_blobs,
|
|
125333
|
-
data_blobs: config.data_blobs,
|
|
125334
|
-
durable_objects: config.durable_objects,
|
|
125335
|
-
r2_buckets: config.r2_buckets?.map(({ binding, preview_bucket_name, bucket_name: _bucket_name }) => {
|
|
125336
|
-
if (!preview_bucket_name) {
|
|
125337
|
-
throw new Error(`In development, you should use a separate r2 bucket than the one you'd use in production. Please create a new r2 bucket with "wrangler r2 bucket create <name>" and add its name as preview_bucket_name to the r2_buckets "${binding}" in your wrangler.toml`);
|
|
125338
|
-
}
|
|
125339
|
-
return {
|
|
125340
|
-
binding,
|
|
125341
|
-
bucket_name: preview_bucket_name
|
|
125342
|
-
};
|
|
125343
|
-
}),
|
|
125344
|
-
services: config.services,
|
|
125345
|
-
unsafe: config.unsafe?.bindings
|
|
125346
|
-
},
|
|
125645
|
+
bindings,
|
|
125347
125646
|
crons: config.triggers.crons
|
|
125348
125647
|
}));
|
|
125349
125648
|
await waitUntilExit();
|
|
@@ -125607,6 +125906,7 @@ To start developing your Worker, run \`npx wrangler dev\`${isCreatingWranglerTom
|
|
|
125607
125906
|
rules: getRules(config),
|
|
125608
125907
|
env: args.env,
|
|
125609
125908
|
zone: void 0,
|
|
125909
|
+
host: void 0,
|
|
125610
125910
|
legacyEnv: isLegacyEnv(config),
|
|
125611
125911
|
build: config.build || {},
|
|
125612
125912
|
minify: void 0,
|
|
@@ -126288,12 +126588,12 @@ async function main(argv) {
|
|
|
126288
126588
|
await createCLIParser([...argv, "--help"]).parse();
|
|
126289
126589
|
} else if (e2 instanceof ParseError) {
|
|
126290
126590
|
e2.notes.push({
|
|
126291
|
-
text: "\nIf you think this is a bug, please open an issue at: https://github.com/cloudflare/wrangler2/issues/new"
|
|
126591
|
+
text: "\nIf you think this is a bug, please open an issue at: https://github.com/cloudflare/wrangler2/issues/new/choose"
|
|
126292
126592
|
});
|
|
126293
|
-
logger.
|
|
126593
|
+
logger.log(formatMessage(e2));
|
|
126294
126594
|
} else {
|
|
126295
126595
|
logger.error(e2 instanceof Error ? e2.message : e2);
|
|
126296
|
-
logger.log(`${fgGreenColor}%s${resetColor}`, "If you think this is a bug then please create an issue at https://github.com/cloudflare/wrangler2/issues/new
|
|
126596
|
+
logger.log(`${fgGreenColor}%s${resetColor}`, "If you think this is a bug then please create an issue at https://github.com/cloudflare/wrangler2/issues/new/choose");
|
|
126297
126597
|
}
|
|
126298
126598
|
throw e2;
|
|
126299
126599
|
}
|