wrangler 4.111.0 → 4.113.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.
@@ -570,8 +570,7 @@
570
570
  }
571
571
  },
572
572
  "required": [
573
- "binding",
574
- "queue"
573
+ "binding"
575
574
  ],
576
575
  "additionalProperties": false
577
576
  },
@@ -1305,8 +1304,7 @@
1305
1304
  }
1306
1305
  },
1307
1306
  "required": [
1308
- "binding",
1309
- "namespace"
1307
+ "binding"
1310
1308
  ],
1311
1309
  "additionalProperties": false
1312
1310
  },
@@ -1460,8 +1458,7 @@
1460
1458
  }
1461
1459
  },
1462
1460
  "required": [
1463
- "binding",
1464
- "app_id"
1461
+ "binding"
1465
1462
  ],
1466
1463
  "additionalProperties": false
1467
1464
  },
@@ -1650,6 +1647,14 @@
1650
1647
  "type": "boolean",
1651
1648
  "description": "Whether dependency instrumentation is enabled. Defaults to `true`.",
1652
1649
  "markdownDescription": "Whether dependency instrumentation is enabled. Defaults to `true`."
1650
+ },
1651
+ "exclude_packages": {
1652
+ "type": "array",
1653
+ "items": {
1654
+ "type": "string"
1655
+ },
1656
+ "description": "An optional list of package name patterns to exclude from the collected dependency metadata.\n\nEach entry can be an exact package name (e.g. `\"lodash\"`) or a glob pattern using `*` as a wildcard (e.g. `\"@internal/*\"` to exclude all packages under the `@internal` scope).",
1657
+ "markdownDescription": "An optional list of package name patterns to exclude from the\ncollected dependency metadata.\n\nEach entry can be an exact package name (e.g. `\"lodash\"`) or a glob\npattern using `*` as a wildcard (e.g. `\"@internal/*\"` to exclude all\npackages under the `@internal` scope)."
1653
1658
  }
1654
1659
  },
1655
1660
  "required": [
@@ -1741,6 +1746,14 @@
1741
1746
  "description": "By default, the Wrangler configuration file is the source of truth for your environment configuration, like a terraform file.\n\nIf you change your vars in the dashboard, wrangler *will* override/delete them on its next deploy.\n\nIf you want to keep your dashboard vars when wrangler deploys, set this field to true.",
1742
1747
  "markdownDescription": "By default, the Wrangler configuration file is the source of truth for your environment configuration, like a terraform file.\n\nIf you change your vars in the dashboard, wrangler *will* override/delete them on its next deploy.\n\nIf you want to keep your dashboard vars when wrangler deploys, set this field to true.",
1743
1748
  "default": false
1749
+ },
1750
+ "addresses": {
1751
+ "type": "array",
1752
+ "items": {
1753
+ "type": "string"
1754
+ },
1755
+ "description": "The inbound email addresses handled by the Worker being deployed.\n\nEach entry is a literal recipient address (e.g. `\"support@example.com\"`) or a `*@domain` catch-all (e.g. `\"*@example.com\"`). Every entry creates an Email Routing rule whose action routes mail to this Worker.\n\nThis field is top-level only and applies to every environment of the Worker; it cannot be set under `env.*`.",
1756
+ "markdownDescription": "The inbound email addresses handled by the Worker being deployed.\n\nEach entry is a literal recipient address (e.g. `\"support@example.com\"`)\nor a `*@domain` catch-all (e.g. `\"*@example.com\"`). Every entry creates an\nEmail Routing rule whose action routes mail to this Worker.\n\nThis field is top-level only and applies to every environment of the\nWorker; it cannot be set under `env.*`."
1744
1757
  }
1745
1758
  }
1746
1759
  },
@@ -2299,8 +2312,7 @@
2299
2312
  }
2300
2313
  },
2301
2314
  "required": [
2302
- "binding",
2303
- "queue"
2315
+ "binding"
2304
2316
  ],
2305
2317
  "additionalProperties": false
2306
2318
  },
@@ -3034,8 +3046,7 @@
3034
3046
  }
3035
3047
  },
3036
3048
  "required": [
3037
- "binding",
3038
- "namespace"
3049
+ "binding"
3039
3050
  ],
3040
3051
  "additionalProperties": false
3041
3052
  },
@@ -3189,8 +3200,7 @@
3189
3200
  }
3190
3201
  },
3191
3202
  "required": [
3192
- "binding",
3193
- "app_id"
3203
+ "binding"
3194
3204
  ],
3195
3205
  "additionalProperties": false
3196
3206
  },
@@ -3882,16 +3892,16 @@
3882
3892
  "additionalProperties": false,
3883
3893
  "properties": {
3884
3894
  "logpush": {
3885
- "$ref": "#/definitions/interface-769040647-10589-20711-769040647-0-526752004818536"
3895
+ "$ref": "#/definitions/interface-769040647-10591-20713-769040647-0-526802004818536"
3886
3896
  },
3887
3897
  "observability": {
3888
- "$ref": "#/definitions/interface-769040647-10589-20711-769040647-0-526752004818536"
3898
+ "$ref": "#/definitions/interface-769040647-10591-20713-769040647-0-526802004818536"
3889
3899
  },
3890
3900
  "limits": {
3891
- "$ref": "#/definitions/interface-769040647-10589-20711-769040647-0-526752004818536"
3901
+ "$ref": "#/definitions/interface-769040647-10591-20713-769040647-0-526802004818536"
3892
3902
  },
3893
3903
  "cache": {
3894
- "$ref": "#/definitions/interface-769040647-10589-20711-769040647-0-526752004818536"
3904
+ "$ref": "#/definitions/interface-769040647-10591-20713-769040647-0-526802004818536"
3895
3905
  },
3896
3906
  "define": {
3897
3907
  "type": "object",
@@ -4086,8 +4096,7 @@
4086
4096
  }
4087
4097
  },
4088
4098
  "required": [
4089
- "binding",
4090
- "queue"
4099
+ "binding"
4091
4100
  ],
4092
4101
  "additionalProperties": false
4093
4102
  },
@@ -4821,8 +4830,7 @@
4821
4830
  }
4822
4831
  },
4823
4832
  "required": [
4824
- "binding",
4825
- "namespace"
4833
+ "binding"
4826
4834
  ],
4827
4835
  "additionalProperties": false
4828
4836
  },
@@ -4976,8 +4984,7 @@
4976
4984
  }
4977
4985
  },
4978
4986
  "required": [
4979
- "binding",
4980
- "app_id"
4987
+ "binding"
4981
4988
  ],
4982
4989
  "additionalProperties": false
4983
4990
  },
@@ -5153,7 +5160,7 @@
5153
5160
  "description": "Configuration for Worker Previews.\n\nThis defines the settings used when creating Preview deployments. Previews are branches of your Worker's main instance used to test features during feature development outside of production.\n\nThe `previews` block contains any intentionally divergent configuration intended solely for Previews, including:\n- All non-inheritable properties (environment variables and bindings like KV, D1, R2, etc.)\n- Select inheritable properties: `logpush`, `observability`, `limits`, `cache`",
5154
5161
  "markdownDescription": "Configuration for Worker Previews.\n\nThis defines the settings used when creating Preview deployments.\nPreviews are branches of your Worker's main instance used to test features\nduring feature development outside of production.\n\nThe `previews` block contains any intentionally divergent configuration intended solely for Previews, including:\n- All non-inheritable properties (environment variables and bindings like KV, D1, R2, etc.)\n- Select inheritable properties: `logpush`, `observability`, `limits`, `cache`"
5155
5162
  },
5156
- "interface-769040647-10589-20711-769040647-0-526752004818536": {
5163
+ "interface-769040647-10591-20713-769040647-0-526802004818536": {
5157
5164
  "type": "object",
5158
5165
  "properties": {
5159
5166
  "name": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wrangler",
3
- "version": "4.111.0",
3
+ "version": "4.113.0",
4
4
  "description": "Command-line interface for all things Cloudflare Workers",
5
5
  "keywords": [
6
6
  "assembly",
@@ -66,16 +66,16 @@
66
66
  "esbuild": "0.28.1",
67
67
  "path-to-regexp": "6.3.0",
68
68
  "unenv": "2.0.0-rc.24",
69
- "workerd": "1.20260710.1",
70
- "@cloudflare/kv-asset-handler": "0.5.0",
69
+ "workerd": "1.20260721.1",
71
70
  "@cloudflare/unenv-preset": "2.16.1",
72
- "miniflare": "4.20260710.0"
71
+ "@cloudflare/kv-asset-handler": "0.5.0",
72
+ "miniflare": "4.20260721.0"
73
73
  },
74
74
  "devDependencies": {
75
75
  "@aws-sdk/client-s3": "^3.721.0",
76
76
  "@bomb.sh/tab": "^0.0.12",
77
77
  "@cloudflare/types": "6.18.4",
78
- "@cloudflare/workers-types": "^5.20260710.1",
78
+ "@cloudflare/workers-types": "^5.20260721.1",
79
79
  "@cspotcode/source-map-support": "0.8.1",
80
80
  "@netlify/build-info": "^10.5.1",
81
81
  "@sentry/node": "^7.86.0",
@@ -154,23 +154,24 @@
154
154
  "xxhash-wasm": "^1.0.1",
155
155
  "yaml": "^2.8.1",
156
156
  "yargs": "^17.7.2",
157
- "zod": "^4.4.3",
158
- "@cloudflare/autoconfig": "0.1.5",
157
+ "zod": "4.4.3",
158
+ "@cloudflare/autoconfig": "0.2.0",
159
+ "@cloudflare/cli-shared-helpers": "0.1.16",
159
160
  "@cloudflare/codemod": "1.1.0",
160
- "@cloudflare/cli-shared-helpers": "0.1.14",
161
- "@cloudflare/config": "0.2.0",
162
- "@cloudflare/deploy-helpers": "0.5.0",
163
- "@cloudflare/pages-shared": "^0.13.157",
161
+ "@cloudflare/config": "0.3.0",
164
162
  "@cloudflare/containers-shared": "0.16.0",
165
- "@cloudflare/runtime-types": "0.0.2",
166
- "@cloudflare/workers-auth": "0.5.0",
167
- "@cloudflare/workers-shared": "0.19.8",
163
+ "@cloudflare/deploy-helpers": "0.6.0",
164
+ "@cloudflare/runtime-types": "0.0.4",
165
+ "@cloudflare/pages-shared": "^0.13.159",
166
+ "@cloudflare/remote-bindings": "0.0.1",
167
+ "@cloudflare/workers-auth": "0.5.1",
168
+ "@cloudflare/workers-shared": "0.19.9",
169
+ "@cloudflare/workers-utils": "0.28.0",
168
170
  "@cloudflare/workers-tsconfig": "0.0.0",
169
- "@cloudflare/workers-utils": "0.27.0",
170
- "@cloudflare/workflows-shared": "0.12.0"
171
+ "@cloudflare/workflows-shared": "0.12.1"
171
172
  },
172
173
  "peerDependencies": {
173
- "@cloudflare/workers-types": "^5.20260710.1"
174
+ "@cloudflare/workers-types": "^5.20260721.1"
174
175
  },
175
176
  "peerDependenciesMeta": {
176
177
  "@cloudflare/workers-types": {
@@ -22,10 +22,20 @@ const jsonError: Middleware = async (request, env, _ctx, middlewareCtx) => {
22
22
  return await middlewareCtx.next(request, env);
23
23
  } catch (e: any) {
24
24
  const error = reduceError(e);
25
- return Response.json(error, {
26
- status: 500,
27
- headers: { "MF-Experimental-Error-Stack": "true" },
28
- });
25
+ const body = JSON.stringify(error);
26
+ const headers: Record<string, string> = {
27
+ "Content-Type": "application/json",
28
+ "MF-Experimental-Error-Stack": "true",
29
+ };
30
+ // `workerd` drops response bodies for `HEAD` requests, so also carry the
31
+ // serialised error in a header. Past roughly 16KB of encoded header the
32
+ // runtime drops the whole response, so stay well under that; the body
33
+ // remains the primary channel for every method that keeps one.
34
+ const encoded = encodeURIComponent(body);
35
+ if (encoded.length <= 8192) {
36
+ headers["MF-Experimental-Error-Stack-Payload"] = encoded;
37
+ }
38
+ return new Response(body, { status: 500, headers });
29
39
  }
30
40
  };
31
41
 
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createDeferred,
3
- DeferredPromise,
3
+ type DeferredPromise,
4
4
  rewriteUrlInHeaderValue,
5
5
  urlFromParts,
6
6
  } from "../../src/api/startDevWorker/utils";
@@ -1,15 +1,18 @@
1
- import { Rule as Rule$1, CfModule, Environment as Environment$1, Entry, CfModuleType, StartDevWorkerInput, Config as Config$1, NodeJSCompatMode, CfScriptFormat, AsyncHook, CfAccount as CfAccount$1, AssetsOptions as AssetsOptions$1, Binding, ConfigBindingFieldName, RawConfig as RawConfig$1, NormalizeAndValidateConfigArgs, ResolveConfigPathOptions, ApiCredentials, ParseError, LoggerLevel, ComplianceConfig, UserError, FatalError } from '@cloudflare/workers-utils';
1
+ import { Rule as Rule$1, CfModule, Environment as Environment$1, Entry, CfModuleType, Config as Config$1, StartDevWorkerInput, NodeJSCompatMode, CfScriptFormat, AsyncHook, CfAccount, AssetsOptions as AssetsOptions$1, Binding, ConfigBindingFieldName, RawConfig as RawConfig$1, NormalizeAndValidateConfigArgs, ResolveConfigPathOptions, ParseError, LoggerLevel, ComplianceConfig, ApiCredentials, UserError, FatalError } from '@cloudflare/workers-utils';
2
2
  export { Binding, experimental_patchConfig, experimental_readRawConfig, defaultWranglerConfig as unstable_defaultWranglerConfig } from '@cloudflare/workers-utils';
3
- import { Json as Json$1, WorkerdStructuredLog, DispatchFetch, Miniflare, WorkerRegistry, MiniflareOptions, Mutex, Response as Response$1, RemoteProxyConnectionString, WorkerOptions, ModuleRule, Request } from 'miniflare';
3
+ import { Json as Json$1, WorkerdStructuredLog, DispatchFetch, Miniflare, WorkerRegistry, MiniflareOptions, Mutex, Response as Response$1, DurableObjectStorageOptions, DurableObjectStorageHandle, RemoteProxyConnectionString, WorkerOptions, ModuleRule, Request } from 'miniflare';
4
4
  import * as undici from 'undici';
5
5
  import { RequestInfo, RequestInit, Response, FormData } from 'undici';
6
6
  import { Metafile } from 'esbuild';
7
7
  import Protocol from 'devtools-protocol/types/protocol-mapping';
8
+ import Protocol$1 from 'devtools-protocol';
8
9
  import { EventEmitter } from 'node:events';
9
10
  import { ContainerNormalizedConfig } from '@cloudflare/containers-shared';
10
11
  import { Rpc, ExportedHandler, DurableObjectNamespace, D1Database, Workflow, Service } from '@cloudflare/workers-types';
11
12
  import { FetcherScheduledOptions, FetcherScheduledResult, IncomingRequestCfProperties } from '@cloudflare/workers-types/experimental';
12
13
  import { RouterConfig, AssetConfig } from '@cloudflare/workers-shared';
14
+ import { StartRemoteProxySessionOptions as StartRemoteProxySessionOptions$1, RemoteProxySession, WorkerConfigObject, RemoteProxySessionData } from '@cloudflare/remote-bindings';
15
+ export { RemoteProxySession } from '@cloudflare/remote-bindings';
13
16
  export { printBindings as unstable_printBindings } from '@cloudflare/deploy-helpers';
14
17
  import { URLSearchParams } from 'node:url';
15
18
  import { Argv, PositionalOptions, Options, ArgumentsCamelCase, InferredOptionTypes, InferredOptionType } from 'yargs';
@@ -335,17 +338,29 @@ type EsbuildBundle = {
335
338
 
336
339
  declare class ConfigController extends Controller {
337
340
  #private;
338
- latestInput?: StartDevWorkerInput;
341
+ latestInput?: WranglerStartDevWorkerInput;
339
342
  latestWranglerConfig?: Config$1;
340
343
  latestConfig?: StartDevWorkerOptions;
341
- set(input: StartDevWorkerInput, throwErrors?: boolean): Promise<StartDevWorkerOptions | undefined>;
342
- patch(input: Partial<StartDevWorkerInput>): Promise<StartDevWorkerOptions | undefined>;
344
+ set(input: WranglerStartDevWorkerInput, throwErrors?: boolean): Promise<StartDevWorkerOptions | undefined>;
345
+ patch(input: Partial<WranglerStartDevWorkerInput>): Promise<StartDevWorkerOptions | undefined>;
343
346
  onDevRegistryUpdate(event: DevRegistryUpdateEvent): void;
344
347
  teardown(): Promise<void>;
345
348
  emitConfigUpdateEvent(config: StartDevWorkerOptions): void;
346
349
  }
347
350
 
348
351
  type MiniflareWorker = Awaited<ReturnType<Miniflare["getWorker"]>>;
352
+ /**
353
+ * Extended StartDevWorkerInput with wrangler-specific fields that depend on miniflare types.
354
+ * The base StartDevWorkerInput in workers-utils is kept dependency-free.
355
+ */
356
+ type WranglerStartDevWorkerInput = Omit<StartDevWorkerInput, "dev"> & {
357
+ dev?: StartDevWorkerInput["dev"] & {
358
+ /** Handles structured runtime logs. */
359
+ structuredLogsHandler?: (log: WorkerdStructuredLog) => void;
360
+ /** An undici MockAgent to declaratively mock fetch calls to particular resources. */
361
+ mockFetch?: undici.MockAgent;
362
+ };
363
+ };
349
364
  interface Worker {
350
365
  ready: Promise<void>;
351
366
  url: Promise<URL>;
@@ -379,7 +394,7 @@ type StartDevWorkerOptions = Omit<StartDevWorkerInput, "assets" | "config" | "co
379
394
  };
380
395
  dev: StartDevWorkerInput["dev"] & {
381
396
  persist: string | false;
382
- auth?: AsyncHook<CfAccount$1>;
397
+ auth?: AsyncHook<CfAccount>;
383
398
  /** Handles structured runtime logs. */
384
399
  structuredLogsHandler?: (log: WorkerdStructuredLog) => void;
385
400
  /** An undici MockAgent to declaratively mock fetch calls to particular resources. */
@@ -435,6 +450,17 @@ type DevRegistryUpdateEvent = {
435
450
  type: "devRegistryUpdate";
436
451
  registry: WorkerRegistry;
437
452
  };
453
+ type RuntimeErrorEvent = {
454
+ type: "runtimeError";
455
+ source: "LocalRuntimeController" | "ProxyController";
456
+ /** The exception summary line. */
457
+ text: string;
458
+ /** The source-mapped stack. */
459
+ stack: string;
460
+ /** The raw Chrome DevTools Protocol exception details, when the event
461
+ * came over the inspector. */
462
+ exceptionDetails?: Protocol$1.Runtime.ExceptionDetails;
463
+ };
438
464
  type PreviewTokenExpiredEvent = {
439
465
  type: "previewTokenExpired";
440
466
  proxyData: ProxyData;
@@ -501,7 +527,7 @@ type ProxyData = {
501
527
  proxyLogsToController?: boolean;
502
528
  };
503
529
 
504
- type ControllerEvent = ErrorEvent | ConfigUpdateEvent | BundleStartEvent | BundleCompleteEvent | ReloadStartEvent | ReloadCompleteEvent | DevRegistryUpdateEvent | PreviewTokenExpiredEvent;
530
+ type ControllerEvent = ErrorEvent | ConfigUpdateEvent | BundleStartEvent | BundleCompleteEvent | ReloadStartEvent | ReloadCompleteEvent | DevRegistryUpdateEvent | RuntimeErrorEvent | PreviewTokenExpiredEvent;
505
531
  interface ControllerBus {
506
532
  dispatch(event: ControllerEvent): void;
507
533
  }
@@ -573,7 +599,7 @@ declare class DevEnv extends EventEmitter implements ControllerBus {
573
599
  bundler: BundlerController;
574
600
  runtimes: RuntimeController[];
575
601
  proxy: ProxyController;
576
- startWorker(options: StartDevWorkerInput): Promise<Worker>;
602
+ startWorker(options: WranglerStartDevWorkerInput): Promise<Worker>;
577
603
  constructor({ configFactory, bundlerFactory, runtimeFactories, proxyFactory, }?: {
578
604
  configFactory?: ControllerFactory<ConfigController>;
579
605
  bundlerFactory?: ControllerFactory<BundlerController>;
@@ -603,7 +629,7 @@ declare class DevEnv extends EventEmitter implements ControllerBus {
603
629
  teardown(): Promise<void>;
604
630
  }
605
631
 
606
- declare function startWorker(options: StartDevWorkerInput): Promise<Worker>;
632
+ declare function startWorker(options: WranglerStartDevWorkerInput): Promise<Worker>;
607
633
 
608
634
  declare const dev: {
609
635
  args: {
@@ -712,6 +738,7 @@ type AdditionalDevProps = {
712
738
  moduleRoot?: string;
713
739
  rules?: Rule$1[];
714
740
  showInteractiveDevSession?: boolean;
741
+ showLocalExplorerAgentHint?: boolean;
715
742
  };
716
743
  type DevArguments = Omit<(typeof dev)["args"], "installSkills" | "profile">;
717
744
  type StartDevOptions = DevArguments & AdditionalDevProps & {
@@ -869,6 +896,25 @@ type WorkerHandle<Env = AnyEnv, Module extends WorkerModule = {
869
896
  * ```
870
897
  */
871
898
  applyD1Migrations(bindingName: BindingName<Env, D1Database>): Promise<void>;
899
+ /**
900
+ * Returns remote storage access for a Durable Object instance.
901
+ * Pass an exported Durable Object class name, or a Durable Object binding name.
902
+ * Class names are resolved before binding names.
903
+ *
904
+ * Use this to seed state before sending requests to the object, or to inspect
905
+ * state after awaited requests. Calling `exec()` runs SQL inside the target
906
+ * Durable Object and returns all rows. It may start the object if it is not
907
+ * already active.
908
+ *
909
+ * @example
910
+ * ```ts
911
+ * const sql = await worker.getDurableObjectStorage("COUNTER", {
912
+ * name: "user-123"
913
+ * });
914
+ * const rows = await sql.exec("SELECT count FROM counters WHERE id = ?", "user-123");
915
+ * ```
916
+ */
917
+ getDurableObjectStorage(classNameOrBindingName: ExportName<Module, Rpc.DurableObjectBranded> | BindingName<Env, DurableObjectNamespace>, options: DurableObjectStorageOptions): Promise<DurableObjectStorageHandle>;
872
918
  /**
873
919
  * Creates an introspector for a specific Workflow instance.
874
920
  */
@@ -1108,7 +1154,7 @@ type AssetsOptions = {
1108
1154
  /**
1109
1155
  * Wrangler configuration types. The JSDoc on these fields is also the source
1110
1156
  * of truth for the equivalent fields in `@cloudflare/config`
1111
- * (`packages/config/src/types.ts` — `UserConfig` — and the binding option
1157
+ * (`packages/config/src/types.ts` — `WorkerConfig` — and the binding option
1112
1158
  * interfaces in `packages/config/src/config.ts`). When editing prose here,
1113
1159
  * mirror the changes there.
1114
1160
  */
@@ -1994,7 +2040,7 @@ interface EnvironmentNonInheritable {
1994
2040
  /** The binding name used to refer to the Queue in the Worker. */
1995
2041
  binding: string;
1996
2042
  /** The name of this Queue. */
1997
- queue: string;
2043
+ queue?: string;
1998
2044
  /** The number of seconds to wait before delivering a message */
1999
2045
  delivery_delay?: number;
2000
2046
  /** Whether the Queue producer should be remote or not in local development */
@@ -2421,7 +2467,7 @@ interface EnvironmentNonInheritable {
2421
2467
  /** The binding name used to refer to the bound service. */
2422
2468
  binding: string;
2423
2469
  /** The namespace to bind to. */
2424
- namespace: string;
2470
+ namespace?: string;
2425
2471
  /** Details about the outbound Worker which will handle outbound requests from your namespace */
2426
2472
  outbound?: DispatchNamespaceOutbound;
2427
2473
  /** Whether the Dispatch Namespace should be remote or not in local development */
@@ -2512,7 +2558,7 @@ interface EnvironmentNonInheritable {
2512
2558
  /** The binding name used to refer to the bound Flagship service. */
2513
2559
  binding: string;
2514
2560
  /** The Flagship app ID to bind to. */
2515
- app_id: string;
2561
+ app_id?: string;
2516
2562
  /** Set to `true` to suppress the remote binding warning in local dev. Flagship bindings are always remote. */
2517
2563
  remote?: boolean;
2518
2564
  }[];
@@ -2792,6 +2838,15 @@ interface ConfigFields<Dev extends RawDevConfig> {
2792
2838
  dependencies_instrumentation: {
2793
2839
  /** Whether dependency instrumentation is enabled. Defaults to `true`. */
2794
2840
  enabled: boolean;
2841
+ /**
2842
+ * An optional list of package name patterns to exclude from the
2843
+ * collected dependency metadata.
2844
+ *
2845
+ * Each entry can be an exact package name (e.g. `"lodash"`) or a glob
2846
+ * pattern using `*` as a wildcard (e.g. `"@internal/*"` to exclude all
2847
+ * packages under the `@internal` scope).
2848
+ */
2849
+ exclude_packages?: string[];
2795
2850
  } | undefined;
2796
2851
  /**
2797
2852
  * Options to configure the development server that your worker will use.
@@ -2887,6 +2942,19 @@ interface ConfigFields<Dev extends RawDevConfig> {
2887
2942
  * @nonInheritable
2888
2943
  */
2889
2944
  keep_vars?: boolean;
2945
+ /**
2946
+ * The inbound email addresses handled by the Worker being deployed.
2947
+ *
2948
+ * Each entry is a literal recipient address (e.g. `"support@example.com"`)
2949
+ * or a `*@domain` catch-all (e.g. `"*@example.com"`). Every entry creates an
2950
+ * Email Routing rule whose action routes mail to this Worker.
2951
+ *
2952
+ * This field is top-level only and applies to every environment of the
2953
+ * Worker; it cannot be set under `env.*`.
2954
+ *
2955
+ * @nonInheritable
2956
+ */
2957
+ addresses?: string[];
2890
2958
  }
2891
2959
  interface PagesConfigFields {
2892
2960
  /**
@@ -3137,75 +3205,14 @@ declare function unstable_getMiniflareWorkerOptions(config: Config, env?: string
3137
3205
  containerBuildId?: string;
3138
3206
  }): Unstable_MiniflareWorkerOptions;
3139
3207
 
3140
- /**
3141
- * A Cloudflare account.
3142
- */
3143
- interface CfAccount {
3144
- /**
3145
- * An API token.
3146
- *
3147
- * @link https://api.cloudflare.com/#user-api-tokens-properties
3148
- */
3149
- apiToken: ApiCredentials;
3150
- /**
3151
- * An account ID.
3152
- */
3153
- accountId: string;
3154
- }
3155
-
3156
- type StartRemoteProxySessionOptions = {
3157
- workerName?: string;
3158
- auth?: NonNullable<StartDevWorkerInput["dev"]>["auth"];
3159
- /** If running in a non-public compliance region, set this here. */
3160
- complianceRegion?: Config$1["compliance_region"];
3161
- };
3208
+ type StartRemoteProxySessionOptions = Omit<StartRemoteProxySessionOptions$1, "logger">;
3162
3209
  declare function startRemoteProxySession(bindings: StartDevWorkerInput["bindings"], options?: StartRemoteProxySessionOptions): Promise<RemoteProxySession>;
3163
- type RemoteProxySession = Pick<Worker, "ready" | "dispose"> & {
3164
- updateBindings: (bindings: StartDevWorkerInput["bindings"]) => Promise<void>;
3165
- remoteProxyConnectionString: RemoteProxyConnectionString;
3166
- };
3167
3210
 
3168
3211
  type WranglerConfigObject = {
3169
- /** The path to the wrangler config file */
3170
3212
  path: string;
3171
- /** The target environment */
3172
3213
  environment?: string;
3173
3214
  };
3174
- type WorkerConfigObject = {
3175
- /** The name of the worker */
3176
- name?: string;
3177
- /** The Worker's bindings */
3178
- bindings: NonNullable<StartDevWorkerInput["bindings"]>;
3179
- /** If running in a non-public compliance region, set this here. */
3180
- complianceRegion?: Config$1["compliance_region"];
3181
- /** Id of the account owning the worker */
3182
- account_id?: Config$1["account_id"];
3183
- /**
3184
- * directory used to resolve the auth profile from directory bindings.
3185
- * Falls back to `process.cwd()` when not provided.
3186
- */
3187
- profileDir?: string;
3188
- };
3189
- /**
3190
- * Utility for potentially starting or updating a remote proxy session.
3191
- *
3192
- * @param wranglerOrWorkerConfigObject either a file path to a wrangler configuration file or an object containing the name of
3193
- * the target worker alongside its bindings.
3194
- * @param preExistingRemoteProxySessionData the optional data of a pre-existing remote proxy session if there was one, this
3195
- * argument can be omitted or set to null if there is no pre-existing remote proxy session
3196
- * @param auth the authentication information for establishing the remote proxy connection
3197
- * @returns null if no existing remote proxy session was provided and one should not be created (because the worker is not
3198
- * defining any remote bindings), the data associated to the created/updated remote proxy session otherwise.
3199
- */
3200
- declare function maybeStartOrUpdateRemoteProxySession(wranglerOrWorkerConfigObject: WranglerConfigObject | WorkerConfigObject, preExistingRemoteProxySessionData?: {
3201
- session: RemoteProxySession;
3202
- remoteBindings: Record<string, Binding>;
3203
- auth?: AsyncHook<CfAccount> | undefined;
3204
- } | null, auth?: AsyncHook<CfAccount> | undefined): Promise<{
3205
- session: RemoteProxySession;
3206
- remoteBindings: Record<string, Binding>;
3207
- auth?: AsyncHook<CfAccount> | undefined;
3208
- } | null>;
3215
+ declare function maybeStartOrUpdateRemoteProxySession(wranglerOrWorkerConfigObject: WranglerConfigObject | WorkerConfigObject, preExistingRemoteProxySessionData?: RemoteProxySessionData | null, auth?: AsyncHook<CfAccount>): Promise<RemoteProxySessionData | null>;
3209
3216
 
3210
3217
  type TableRow<Keys extends string> = Record<Keys, string>;
3211
3218
  declare class Logger {
@@ -3777,4 +3784,4 @@ interface Unstable_ASSETSBindingsOptions {
3777
3784
  }
3778
3785
  declare const unstable_generateASSETSBinding: (opts: Unstable_ASSETSBindingsOptions) => (request: Request) => Promise<Response$1>;
3779
3786
 
3780
- export { ArgParseError, type Experimental_GenerateTypesOptions, type Experimental_GenerateTypesResult, type GetPlatformProxyOptions, type PlatformProxy, type RemoteProxySession, type SourcelessWorkerOptions, type StartRemoteProxySessionOptions, type TestHarness, type TestHarnessOptions, type Unstable_ASSETSBindingsOptions, type Config as Unstable_Config, type Unstable_DevOptions, type Unstable_DevWorker, type Unstable_MiniflareWorkerOptions, type RawConfig as Unstable_RawConfig, type RawEnvironment as Unstable_RawEnvironment, type WorkerHandle, createTestHarness, generateTypes as experimental_generateTypes, experimental_getWranglerCommands, getPlatformProxy, maybeStartOrUpdateRemoteProxySession, parseArgs as parseCfWranglerArgs, parseBuildArgs as parseCfWranglerBuildArgs, runCfWranglerBuild, runCfWranglerDev, startRemoteProxySession, DevEnv as unstable_DevEnv, convertConfigBindingsToStartWorkerBindings as unstable_convertConfigBindingsToStartWorkerBindings, unstable_dev, unstable_generateASSETSBinding, unstable_getDevCompatibilityDate, getDurableObjectClassNameToUseSQLiteMap as unstable_getDurableObjectClassNameToUseSQLiteMap, unstable_getMiniflareWorkerOptions, getVarsForDev as unstable_getVarsForDev, unstable_pages, readConfig as unstable_readConfig, resolveNamedTunnel as unstable_resolveNamedTunnel, splitSqlQuery as unstable_splitSqlQuery, startWorker as unstable_startWorker };
3787
+ export { ArgParseError, type Experimental_GenerateTypesOptions, type Experimental_GenerateTypesResult, type GetPlatformProxyOptions, type PlatformProxy, type SourcelessWorkerOptions, type StartRemoteProxySessionOptions, type TestHarness, type TestHarnessOptions, type Unstable_ASSETSBindingsOptions, type Config as Unstable_Config, type Unstable_DevOptions, type Unstable_DevWorker, type Unstable_MiniflareWorkerOptions, type RawConfig as Unstable_RawConfig, type RawEnvironment as Unstable_RawEnvironment, type WorkerHandle, createTestHarness, generateTypes as experimental_generateTypes, experimental_getWranglerCommands, getPlatformProxy, maybeStartOrUpdateRemoteProxySession, parseArgs as parseCfWranglerArgs, parseBuildArgs as parseCfWranglerBuildArgs, runCfWranglerBuild, runCfWranglerDev, startRemoteProxySession, DevEnv as unstable_DevEnv, convertConfigBindingsToStartWorkerBindings as unstable_convertConfigBindingsToStartWorkerBindings, unstable_dev, unstable_generateASSETSBinding, unstable_getDevCompatibilityDate, getDurableObjectClassNameToUseSQLiteMap as unstable_getDurableObjectClassNameToUseSQLiteMap, unstable_getMiniflareWorkerOptions, getVarsForDev as unstable_getVarsForDev, unstable_pages, readConfig as unstable_readConfig, resolveNamedTunnel as unstable_resolveNamedTunnel, splitSqlQuery as unstable_splitSqlQuery, startWorker as unstable_startWorker };