wrangler 3.1.2 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/templates/middleware/loader-modules.ts +13 -3
- package/wrangler-dist/cli.js +121 -26
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wrangler",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.0",
|
|
4
4
|
"description": "Command-line interface for all things Cloudflare Workers",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"wrangler",
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
"blake3-wasm": "^2.1.5",
|
|
104
104
|
"chokidar": "^3.5.3",
|
|
105
105
|
"esbuild": "0.16.3",
|
|
106
|
-
"miniflare": "3.
|
|
106
|
+
"miniflare": "3.20230717.0",
|
|
107
107
|
"nanoid": "^3.3.3",
|
|
108
108
|
"path-to-regexp": "^6.2.0",
|
|
109
109
|
"selfsigned": "^2.0.1",
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
"@cloudflare/eslint-config-worker": "*",
|
|
115
115
|
"@cloudflare/types": "^6.18.4",
|
|
116
116
|
"@cloudflare/workers-tsconfig": "*",
|
|
117
|
-
"@cloudflare/workers-types": "^4.
|
|
117
|
+
"@cloudflare/workers-types": "^4.20230717.0",
|
|
118
118
|
"@iarna/toml": "^3.0.0",
|
|
119
119
|
"@microsoft/api-extractor": "^7.28.3",
|
|
120
120
|
"@types/better-sqlite3": "^7.6.0",
|
|
@@ -62,9 +62,11 @@ function getMaskedEnv(rawEnv: unknown) {
|
|
|
62
62
|
*/
|
|
63
63
|
type MissingExportHandlers = Omit<
|
|
64
64
|
Required<ExportedHandler>,
|
|
65
|
-
"tail" | "trace" | "scheduled" | "queue" | "test" | "fetch"
|
|
65
|
+
"tail" | "trace" | "scheduled" | "queue" | "test" | "email" | "fetch"
|
|
66
66
|
>;
|
|
67
67
|
|
|
68
|
+
let registeredMiddleware = false;
|
|
69
|
+
|
|
68
70
|
const facade: ExportedHandler<unknown> & MissingExportHandlers = {
|
|
69
71
|
...(worker.tail && {
|
|
70
72
|
tail: maskHandlerEnv(worker.tail),
|
|
@@ -81,13 +83,21 @@ const facade: ExportedHandler<unknown> & MissingExportHandlers = {
|
|
|
81
83
|
...(worker.test && {
|
|
82
84
|
test: maskHandlerEnv(worker.test),
|
|
83
85
|
}),
|
|
86
|
+
...(worker.email && {
|
|
87
|
+
email: maskHandlerEnv(worker.email),
|
|
88
|
+
}),
|
|
84
89
|
|
|
85
90
|
fetch(request, rawEnv, ctx) {
|
|
86
91
|
const env = getMaskedEnv(rawEnv);
|
|
87
92
|
// Get the chain of middleware from the worker object
|
|
88
93
|
if (worker.middleware && worker.middleware.length > 0) {
|
|
89
|
-
|
|
90
|
-
|
|
94
|
+
// Make sure we only register middleware once:
|
|
95
|
+
// https://github.com/cloudflare/workers-sdk/issues/2386#issuecomment-1614715911
|
|
96
|
+
if (!registeredMiddleware) {
|
|
97
|
+
registeredMiddleware = true;
|
|
98
|
+
for (const middleware of worker.middleware) {
|
|
99
|
+
__facade_register__(middleware);
|
|
100
|
+
}
|
|
91
101
|
}
|
|
92
102
|
|
|
93
103
|
const __facade_modules_dispatch__: Dispatcher = function (type, init) {
|
package/wrangler-dist/cli.js
CHANGED
|
@@ -119568,7 +119568,7 @@ var import_undici3 = __toESM(require_undici());
|
|
|
119568
119568
|
var import_undici4 = __toESM(require_undici());
|
|
119569
119569
|
|
|
119570
119570
|
// package.json
|
|
119571
|
-
var version = "3.
|
|
119571
|
+
var version = "3.3.0";
|
|
119572
119572
|
var package_default = {
|
|
119573
119573
|
name: "wrangler",
|
|
119574
119574
|
version,
|
|
@@ -119674,7 +119674,7 @@ var package_default = {
|
|
|
119674
119674
|
"blake3-wasm": "^2.1.5",
|
|
119675
119675
|
chokidar: "^3.5.3",
|
|
119676
119676
|
esbuild: "0.16.3",
|
|
119677
|
-
miniflare: "3.
|
|
119677
|
+
miniflare: "3.20230717.0",
|
|
119678
119678
|
nanoid: "^3.3.3",
|
|
119679
119679
|
"path-to-regexp": "^6.2.0",
|
|
119680
119680
|
selfsigned: "^2.0.1",
|
|
@@ -119685,7 +119685,7 @@ var package_default = {
|
|
|
119685
119685
|
"@cloudflare/eslint-config-worker": "*",
|
|
119686
119686
|
"@cloudflare/types": "^6.18.4",
|
|
119687
119687
|
"@cloudflare/workers-tsconfig": "*",
|
|
119688
|
-
"@cloudflare/workers-types": "^4.
|
|
119688
|
+
"@cloudflare/workers-types": "^4.20230717.0",
|
|
119689
119689
|
"@iarna/toml": "^3.0.0",
|
|
119690
119690
|
"@microsoft/api-extractor": "^7.28.3",
|
|
119691
119691
|
"@types/better-sqlite3": "^7.6.0",
|
|
@@ -124559,7 +124559,8 @@ async function bundleWorker(entry, destination, options14) {
|
|
|
124559
124559
|
sourceMapMetadata: {
|
|
124560
124560
|
tmpDir: tmpDir.path,
|
|
124561
124561
|
entryDirectory: entry.directory
|
|
124562
|
-
}
|
|
124562
|
+
},
|
|
124563
|
+
moduleCollector
|
|
124563
124564
|
};
|
|
124564
124565
|
}
|
|
124565
124566
|
__name(bundleWorker, "bundleWorker");
|
|
@@ -128510,7 +128511,8 @@ async function traverseModuleGraph(entry, rules) {
|
|
|
128510
128511
|
bundleType,
|
|
128511
128512
|
stop: void 0,
|
|
128512
128513
|
sourceMapPath: void 0,
|
|
128513
|
-
sourceMapMetadata: void 0
|
|
128514
|
+
sourceMapMetadata: void 0,
|
|
128515
|
+
moduleCollector: void 0
|
|
128514
128516
|
};
|
|
128515
128517
|
}
|
|
128516
128518
|
__name(traverseModuleGraph, "traverseModuleGraph");
|
|
@@ -137271,6 +137273,9 @@ function deleteOptions(yargs) {
|
|
|
137271
137273
|
}).option("dry-run", {
|
|
137272
137274
|
describe: "Don't actually delete",
|
|
137273
137275
|
type: "boolean"
|
|
137276
|
+
}).option("force", {
|
|
137277
|
+
describe: "Delete even if doing so will break other Workers that depend on this one",
|
|
137278
|
+
type: "boolean"
|
|
137274
137279
|
}).option("legacy-env", {
|
|
137275
137280
|
type: "boolean",
|
|
137276
137281
|
describe: "Use legacy environments",
|
|
@@ -137298,14 +137303,18 @@ async function deleteHandler(args) {
|
|
|
137298
137303
|
return;
|
|
137299
137304
|
}
|
|
137300
137305
|
(0, import_assert2.default)(accountId, "Missing accountId");
|
|
137301
|
-
const confirmed = await confirm(
|
|
137306
|
+
const confirmed = args.force || await confirm(
|
|
137302
137307
|
`Are you sure you want to delete ${scriptName}? This action cannot be undone.`
|
|
137303
137308
|
);
|
|
137304
137309
|
if (confirmed) {
|
|
137310
|
+
const needsForceDelete = args.force || await checkAndConfirmForceDeleteIfNecessary(scriptName, accountId);
|
|
137311
|
+
if (needsForceDelete === null) {
|
|
137312
|
+
return;
|
|
137313
|
+
}
|
|
137305
137314
|
await fetchResult(
|
|
137306
137315
|
`/accounts/${accountId}/workers/services/${scriptName}`,
|
|
137307
137316
|
{ method: "DELETE" },
|
|
137308
|
-
new URLSearchParams({ force:
|
|
137317
|
+
new URLSearchParams({ force: needsForceDelete.toString() })
|
|
137309
137318
|
);
|
|
137310
137319
|
await deleteSiteNamespaceIfExisting(scriptName, accountId);
|
|
137311
137320
|
logger.log("Successfully deleted", scriptName);
|
|
@@ -137325,6 +137334,82 @@ async function deleteSiteNamespaceIfExisting(scriptName, accountId) {
|
|
|
137325
137334
|
}
|
|
137326
137335
|
}
|
|
137327
137336
|
__name(deleteSiteNamespaceIfExisting, "deleteSiteNamespaceIfExisting");
|
|
137337
|
+
function renderScriptName(details) {
|
|
137338
|
+
let service;
|
|
137339
|
+
let environment;
|
|
137340
|
+
if ("script" in details) {
|
|
137341
|
+
service = details.script;
|
|
137342
|
+
} else {
|
|
137343
|
+
service = details.service;
|
|
137344
|
+
environment = details.environment;
|
|
137345
|
+
}
|
|
137346
|
+
return environment ? `${service} (${environment})` : service;
|
|
137347
|
+
}
|
|
137348
|
+
__name(renderScriptName, "renderScriptName");
|
|
137349
|
+
function isUsedAsServiceBinding(references) {
|
|
137350
|
+
return (references.services?.incoming.length || 0) > 0;
|
|
137351
|
+
}
|
|
137352
|
+
__name(isUsedAsServiceBinding, "isUsedAsServiceBinding");
|
|
137353
|
+
function isUsedAsDurableObjectNamespace(references, scriptName) {
|
|
137354
|
+
return (references.durable_objects?.filter((ref) => ref.service !== scriptName)?.length || 0) > 0;
|
|
137355
|
+
}
|
|
137356
|
+
__name(isUsedAsDurableObjectNamespace, "isUsedAsDurableObjectNamespace");
|
|
137357
|
+
function isUsedAsDispatchOutbound(references) {
|
|
137358
|
+
return references.dispatch_outbounds?.length || 0;
|
|
137359
|
+
}
|
|
137360
|
+
__name(isUsedAsDispatchOutbound, "isUsedAsDispatchOutbound");
|
|
137361
|
+
function isUsedAsTailConsumer(tailProducers) {
|
|
137362
|
+
return tailProducers.length > 0;
|
|
137363
|
+
}
|
|
137364
|
+
__name(isUsedAsTailConsumer, "isUsedAsTailConsumer");
|
|
137365
|
+
async function checkAndConfirmForceDeleteIfNecessary(scriptName, accountId) {
|
|
137366
|
+
const references = await fetchResult(
|
|
137367
|
+
`/accounts/${accountId}/workers/scripts/${scriptName}/references`
|
|
137368
|
+
);
|
|
137369
|
+
const tailProducers = await fetchResult(
|
|
137370
|
+
`/accounts/${accountId}/workers/tails/by-consumer/${scriptName}`
|
|
137371
|
+
);
|
|
137372
|
+
const isDependentService = isUsedAsServiceBinding(references) || isUsedAsDurableObjectNamespace(references, scriptName) || isUsedAsDispatchOutbound(references) || isUsedAsTailConsumer(tailProducers);
|
|
137373
|
+
if (!isDependentService)
|
|
137374
|
+
return false;
|
|
137375
|
+
const dependentMessages = [];
|
|
137376
|
+
for (const serviceBindingReference of references.services?.incoming || []) {
|
|
137377
|
+
const dependentScript = renderScriptName(serviceBindingReference);
|
|
137378
|
+
dependentMessages.push(
|
|
137379
|
+
`- Worker ${dependentScript} uses this Worker as a Service Binding`
|
|
137380
|
+
);
|
|
137381
|
+
}
|
|
137382
|
+
for (const implementedDOBindingReference of references.durable_objects || []) {
|
|
137383
|
+
if (implementedDOBindingReference.service === scriptName)
|
|
137384
|
+
continue;
|
|
137385
|
+
const dependentScript = renderScriptName(implementedDOBindingReference);
|
|
137386
|
+
dependentMessages.push(
|
|
137387
|
+
`- Worker ${dependentScript} has a binding to the Durable Object Namespace "${implementedDOBindingReference.durable_object_namespace_name}" implemented by this Worker`
|
|
137388
|
+
);
|
|
137389
|
+
}
|
|
137390
|
+
for (const dispatchNamespaceOutboundReference of references.dispatch_outbounds || []) {
|
|
137391
|
+
const dependentScript = renderScriptName(
|
|
137392
|
+
dispatchNamespaceOutboundReference
|
|
137393
|
+
);
|
|
137394
|
+
dependentMessages.push(
|
|
137395
|
+
`- Worker ${dependentScript} uses this Worker as an Outbound Worker for the Dynamic Dispatch Namespace "${dispatchNamespaceOutboundReference.namespace}"`
|
|
137396
|
+
);
|
|
137397
|
+
}
|
|
137398
|
+
for (const consumingTail of tailProducers) {
|
|
137399
|
+
const dependentScript = renderScriptName(consumingTail.producer);
|
|
137400
|
+
dependentMessages.push(
|
|
137401
|
+
`- Worker ${dependentScript} uses this Worker as a Tail Worker`
|
|
137402
|
+
);
|
|
137403
|
+
}
|
|
137404
|
+
const extraConfirmed = await confirm(`${scriptName} is currently in use by other Workers:
|
|
137405
|
+
|
|
137406
|
+
${dependentMessages.join("\n")}
|
|
137407
|
+
|
|
137408
|
+
You can still delete this Worker, but doing so WILL BREAK the Workers that depend on it. This will cause unexpected failures, and cannot be undone.
|
|
137409
|
+
Are you sure you want to continue?`);
|
|
137410
|
+
return extraConfirmed ? true : null;
|
|
137411
|
+
}
|
|
137412
|
+
__name(checkAndConfirmForceDeleteIfNecessary, "checkAndConfirmForceDeleteIfNecessary");
|
|
137328
137413
|
|
|
137329
137414
|
// src/deploy/index.ts
|
|
137330
137415
|
init_import_meta_url();
|
|
@@ -139561,7 +139646,8 @@ async function traverseAndBuildWorkerJSDirectory({
|
|
|
139561
139646
|
resolvedEntryPointPath: bundleResult.resolvedEntryPointPath,
|
|
139562
139647
|
bundleType: bundleResult.bundleType,
|
|
139563
139648
|
stop: bundleResult.stop,
|
|
139564
|
-
sourceMapPath: bundleResult.sourceMapPath
|
|
139649
|
+
sourceMapPath: bundleResult.sourceMapPath,
|
|
139650
|
+
moduleCollector: bundleResult.moduleCollector
|
|
139565
139651
|
};
|
|
139566
139652
|
}
|
|
139567
139653
|
__name(traverseAndBuildWorkerJSDirectory, "traverseAndBuildWorkerJSDirectory");
|
|
@@ -141468,7 +141554,8 @@ async function deploy2({
|
|
|
141468
141554
|
dependencies: {},
|
|
141469
141555
|
stop: void 0,
|
|
141470
141556
|
resolvedEntryPointPath: _workerPath,
|
|
141471
|
-
bundleType: "esm"
|
|
141557
|
+
bundleType: "esm",
|
|
141558
|
+
moduleCollector: void 0
|
|
141472
141559
|
};
|
|
141473
141560
|
}
|
|
141474
141561
|
}
|
|
@@ -148327,17 +148414,21 @@ function useEsbuild({
|
|
|
148327
148414
|
testScheduled,
|
|
148328
148415
|
experimentalLocal
|
|
148329
148416
|
}) {
|
|
148330
|
-
const [
|
|
148417
|
+
const [bundleInfo, setBundleInfo] = (0, import_react18.useState)();
|
|
148331
148418
|
const { exit } = (0, import_ink11.useApp)();
|
|
148332
148419
|
(0, import_react18.useEffect)(() => {
|
|
148333
148420
|
let stopWatching = void 0;
|
|
148334
148421
|
function updateBundle() {
|
|
148335
|
-
|
|
148422
|
+
setBundleInfo((previousBundle) => {
|
|
148336
148423
|
(0, import_node_assert14.default)(
|
|
148337
148424
|
previousBundle,
|
|
148338
148425
|
"Rebuild triggered with no previous build available"
|
|
148339
148426
|
);
|
|
148340
|
-
|
|
148427
|
+
previousBundle.bundle.modules = dedupeModulesByName([
|
|
148428
|
+
...previousBundle.bundle.modules,
|
|
148429
|
+
...previousBundle.moduleCollector?.modules ?? []
|
|
148430
|
+
]);
|
|
148431
|
+
return { ...previousBundle, id: previousBundle.bundle.id + 1 };
|
|
148341
148432
|
});
|
|
148342
148433
|
}
|
|
148343
148434
|
__name(updateBundle, "updateBundle");
|
|
@@ -148404,18 +148495,21 @@ function useEsbuild({
|
|
|
148404
148495
|
void watcher.close();
|
|
148405
148496
|
}, "stopWatching");
|
|
148406
148497
|
}
|
|
148407
|
-
|
|
148408
|
-
|
|
148409
|
-
|
|
148410
|
-
|
|
148411
|
-
|
|
148412
|
-
|
|
148413
|
-
|
|
148414
|
-
|
|
148415
|
-
|
|
148416
|
-
|
|
148417
|
-
|
|
148418
|
-
|
|
148498
|
+
setBundleInfo({
|
|
148499
|
+
bundle: {
|
|
148500
|
+
id: 0,
|
|
148501
|
+
entry,
|
|
148502
|
+
path: bundleResult?.resolvedEntryPointPath ?? entry.file,
|
|
148503
|
+
type: bundleResult?.bundleType ?? (entry.format === "modules" ? "esm" : "commonjs"),
|
|
148504
|
+
modules: bundleResult ? bundleResult.modules : dedupeModulesByName([
|
|
148505
|
+
...traverseModuleGraphResult?.modules ?? [],
|
|
148506
|
+
...additionalModules
|
|
148507
|
+
]),
|
|
148508
|
+
dependencies: bundleResult?.dependencies ?? {},
|
|
148509
|
+
sourceMapPath: bundleResult?.sourceMapPath,
|
|
148510
|
+
sourceMapMetadata: bundleResult?.sourceMapMetadata
|
|
148511
|
+
},
|
|
148512
|
+
moduleCollector: bundleResult?.moduleCollector
|
|
148419
148513
|
});
|
|
148420
148514
|
}
|
|
148421
148515
|
__name(build5, "build");
|
|
@@ -148452,7 +148546,7 @@ function useEsbuild({
|
|
|
148452
148546
|
testScheduled,
|
|
148453
148547
|
experimentalLocal
|
|
148454
148548
|
]);
|
|
148455
|
-
return bundle;
|
|
148549
|
+
return bundleInfo?.bundle;
|
|
148456
148550
|
}
|
|
148457
148551
|
__name(useEsbuild, "useEsbuild");
|
|
148458
148552
|
|
|
@@ -149510,8 +149604,9 @@ To run an edge preview session for your Worker, use ${import_chalk15.default.gre
|
|
|
149510
149604
|
await watcher?.close();
|
|
149511
149605
|
}
|
|
149512
149606
|
};
|
|
149513
|
-
}
|
|
149607
|
+
} catch (e2) {
|
|
149514
149608
|
await watcher?.close();
|
|
149609
|
+
throw e2;
|
|
149515
149610
|
}
|
|
149516
149611
|
}
|
|
149517
149612
|
__name(startDev, "startDev");
|