wrangler 4.145.0 → 4.147.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.
@@ -4404,19 +4404,19 @@
4404
4404
  "type": "object",
4405
4405
  "properties": {
4406
4406
  "logpush": {
4407
- "$ref": "#/definitions/interface-769040647-14860-25222-769040647-0-614002004818536"
4407
+ "$ref": "#/definitions/interface-769040647-14867-25229-769040647-0-614072004818536"
4408
4408
  },
4409
4409
  "observability": {
4410
- "$ref": "#/definitions/interface-769040647-14860-25222-769040647-0-614002004818536"
4410
+ "$ref": "#/definitions/interface-769040647-14867-25229-769040647-0-614072004818536"
4411
4411
  },
4412
4412
  "limits": {
4413
- "$ref": "#/definitions/interface-769040647-14860-25222-769040647-0-614002004818536"
4413
+ "$ref": "#/definitions/interface-769040647-14867-25229-769040647-0-614072004818536"
4414
4414
  },
4415
4415
  "placement": {
4416
- "$ref": "#/definitions/interface-769040647-14860-25222-769040647-0-614002004818536"
4416
+ "$ref": "#/definitions/interface-769040647-14867-25229-769040647-0-614072004818536"
4417
4417
  },
4418
4418
  "cache": {
4419
- "$ref": "#/definitions/interface-769040647-14860-25222-769040647-0-614002004818536"
4419
+ "$ref": "#/definitions/interface-769040647-14867-25229-769040647-0-614072004818536"
4420
4420
  },
4421
4421
  "define": {
4422
4422
  "type": "object",
@@ -5781,7 +5781,7 @@
5781
5781
  "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`, `placement`, `cache`",
5782
5782
  "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`, `placement`, `cache`"
5783
5783
  },
5784
- "interface-769040647-14860-25222-769040647-0-614002004818536": {
5784
+ "interface-769040647-14867-25229-769040647-0-614072004818536": {
5785
5785
  "type": "object",
5786
5786
  "properties": {
5787
5787
  "name": {
@@ -6533,7 +6533,8 @@
6533
6533
  "type": "string",
6534
6534
  "enum": [
6535
6535
  "eu",
6536
- "fedramp"
6536
+ "fedramp",
6537
+ "us"
6537
6538
  ],
6538
6539
  "description": "Restrict containers to compliance boundaries.",
6539
6540
  "markdownDescription": "Restrict containers to compliance boundaries."
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wrangler",
3
- "version": "4.145.0",
3
+ "version": "4.147.0",
4
4
  "description": "Command-line interface for all things Cloudflare Workers",
5
5
  "keywords": [
6
6
  "assembly",
@@ -71,17 +71,17 @@
71
71
  "esbuild": "0.28.1",
72
72
  "path-to-regexp": "6.3.0",
73
73
  "unenv": "2.0.0-rc.24",
74
- "workerd": "1.20260930.2",
74
+ "workerd": "1.20261001.1",
75
75
  "@cloudflare/kv-asset-handler": "0.5.0",
76
76
  "@cloudflare/unenv-preset": "2.16.2",
77
- "miniflare": "5.20260930.0-alpha"
77
+ "miniflare": "5.20261001.0-alpha"
78
78
  },
79
79
  "devDependencies": {
80
80
  "@aws-sdk/client-s3": "^3.721.0",
81
81
  "@aws-sdk/s3-request-presigner": "^3.721.0",
82
82
  "@bomb.sh/tab": "^0.0.12",
83
83
  "@cloudflare/types": "6.18.4",
84
- "@cloudflare/workers-types": "^5.20260930.2",
84
+ "@cloudflare/workers-types": "^5.20261001.1",
85
85
  "@cspotcode/source-map-support": "0.8.1",
86
86
  "@netlify/build-info": "10.5.1",
87
87
  "@sentry/node": "^7.86.0",
@@ -161,25 +161,25 @@
161
161
  "yaml": "^2.8.1",
162
162
  "yargs": "^17.7.2",
163
163
  "zod": "4.4.3",
164
- "@cloudflare/autoconfig": "0.7.3",
165
- "@cloudflare/build-output-utils": "0.8.4",
166
- "@cloudflare/cli-shared-helpers": "0.2.1",
167
- "@cloudflare/config": "0.22.0",
168
- "@cloudflare/containers-shared": "0.21.1",
169
- "@cloudflare/deploy-helpers": "0.19.0",
170
- "@cloudflare/pages-shared": "^0.13.192",
171
- "@cloudflare/remote-bindings": "0.0.40",
172
- "@cloudflare/runtime-types": "0.1.6",
164
+ "@cloudflare/build-output-utils": "0.8.5",
165
+ "@cloudflare/autoconfig": "0.7.5",
166
+ "@cloudflare/cli-shared-helpers": "0.2.3",
167
+ "@cloudflare/config": "0.23.0",
168
+ "@cloudflare/containers-shared": "0.21.3",
169
+ "@cloudflare/deploy-helpers": "0.19.2",
173
170
  "@cloudflare/pages-functions": "0.1.0",
171
+ "@cloudflare/pages-shared": "^0.13.193",
172
+ "@cloudflare/remote-bindings": "0.0.43",
173
+ "@cloudflare/runtime-types": "0.1.7",
174
174
  "@cloudflare/shared-ast-primitives": "1.1.0",
175
- "@cloudflare/workers-auth": "0.10.0",
175
+ "@cloudflare/workers-auth": "0.12.0",
176
176
  "@cloudflare/workers-shared": "0.20.0",
177
177
  "@cloudflare/workers-tsconfig": "0.0.0",
178
- "@cloudflare/workers-utils": "0.45.0",
178
+ "@cloudflare/workers-utils": "0.46.0",
179
179
  "@cloudflare/workflows-shared": "0.15.0"
180
180
  },
181
181
  "peerDependencies": {
182
- "@cloudflare/workers-types": "^5.20260930.2"
182
+ "@cloudflare/workers-types": "^5.20261001.1"
183
183
  },
184
184
  "peerDependenciesMeta": {
185
185
  "@cloudflare/workers-types": {
@@ -1478,7 +1478,7 @@ type ContainerApp = {
1478
1478
  /**
1479
1479
  * Restrict containers to compliance boundaries.
1480
1480
  */
1481
- jurisdiction?: "eu" | "fedramp";
1481
+ jurisdiction?: "eu" | "fedramp" | "us";
1482
1482
  /**
1483
1483
  * @hidden
1484
1484
  */
@@ -22586,9 +22586,9 @@ function validateContainerApp(envName, topLevelName, configPath, options = {}) {
22586
22586
  constraints.jurisdiction,
22587
22587
  "string"
22588
22588
  );
22589
- if (constraints.jurisdiction && !["eu", "fedramp"].includes(constraints.jurisdiction)) {
22589
+ if (constraints.jurisdiction && !["eu", "fedramp", "us"].includes(constraints.jurisdiction)) {
22590
22590
  diagnostics.errors.push(
22591
- `${field}.constraints.jurisdiction must be one of: "eu", "fedramp"`
22591
+ `${field}.constraints.jurisdiction must be one of: "eu", "fedramp", "us"`
22592
22592
  );
22593
22593
  }
22594
22594
  if (validateOptionalTypedArray(
@@ -27412,7 +27412,7 @@ var DEFAULT_COMPAT_DATE;
27412
27412
  var init_default_compat_date = __esm({
27413
27413
  "../workers-utils/src/default-compat-date.ts"() {
27414
27414
  init_import_meta_url();
27415
- DEFAULT_COMPAT_DATE = "2026-09-30";
27415
+ DEFAULT_COMPAT_DATE = "2026-10-01";
27416
27416
  }
27417
27417
  });
27418
27418
 
@@ -57511,13 +57511,16 @@ You can try:
57511
57511
  }
57512
57512
  function redactCloudflaredArgsForLogging(args) {
57513
57513
  const redacted = [...args];
57514
+ const sensitiveArgs = ["--token", "--allowed-mail"];
57514
57515
  for (let i8 = 0; i8 < redacted.length; i8++) {
57515
57516
  const arg = redacted[i8];
57516
- if (arg === "--token" && i8 + 1 < redacted.length) {
57517
- redacted[i8 + 1] = "[REDACTED]";
57518
- }
57519
- if (arg.startsWith("--token=")) {
57520
- redacted[i8] = "--token=[REDACTED]";
57517
+ for (const sensitiveArg of sensitiveArgs) {
57518
+ if (arg === sensitiveArg && i8 + 1 < redacted.length) {
57519
+ redacted[i8 + 1] = "[REDACTED]";
57520
+ }
57521
+ if (arg.startsWith(`${sensitiveArg}=`)) {
57522
+ redacted[i8] = `${sensitiveArg}=[REDACTED]`;
57523
+ }
57521
57524
  }
57522
57525
  }
57523
57526
  return redacted;
@@ -57786,6 +57789,27 @@ async function spawnCloudflared(args, options) {
57786
57789
  confirmDownload: options?.confirmDownload,
57787
57790
  logger: logger7
57788
57791
  });
57792
+ if (args.some(
57793
+ (arg) => arg === "--allowed-mail" || arg.startsWith("--allowed-mail=")
57794
+ )) {
57795
+ const minimumVersion = "2026.9.2";
57796
+ const installedVersion = getInstalledVersion(binPath);
57797
+ if (!installedVersion || isVersionOutdated(installedVersion, minimumVersion)) {
57798
+ throw new UserError(
57799
+ `[cloudflared] --allowed-mail requires cloudflared ${minimumVersion} or later.
57800
+
57801
+ ` + (installedVersion ? `The selected binary (${binPath}) is version ${installedVersion}.
57802
+
57803
+ ` : `Could not determine the version of the selected binary (${binPath}).
57804
+
57805
+ `) + `Update cloudflared in your PATH or set CLOUDFLARED_PATH to a compatible binary.
57806
+ Download instructions: https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/downloads/`,
57807
+ {
57808
+ telemetryMessage: "tunnel cloudflared allowed mail unsupported version"
57809
+ }
57810
+ );
57811
+ }
57812
+ }
57789
57813
  logger7?.debug(
57790
57814
  `Spawning cloudflared: ${binPath} ${redactCloudflaredArgsForLogging(args).join(" ")}`
57791
57815
  );
@@ -63047,7 +63071,7 @@ var name, version2;
63047
63071
  var init_package = __esm({
63048
63072
  "package.json"() {
63049
63073
  name = "wrangler";
63050
- version2 = "4.145.0";
63074
+ version2 = "4.147.0";
63051
63075
  }
63052
63076
  });
63053
63077
 
@@ -136893,7 +136917,11 @@ var init_dist3 = __esm({
136893
136917
  "OC",
136894
136918
  "AFR"
136895
136919
  ])).optional(),
136896
- jurisdiction: _enum2(["eu", "fedramp"]).optional()
136920
+ jurisdiction: _enum2([
136921
+ "eu",
136922
+ "fedramp",
136923
+ "us"
136924
+ ]).optional()
136897
136925
  }).optional(),
136898
136926
  rollout: strictObject({
136899
136927
  kind: _enum2([
@@ -179899,6 +179927,10 @@ var init_cf = __esm({
179899
179927
  "ip-prefix-bgp-on-demand.write",
179900
179928
  "ip-prefix.read",
179901
179929
  "ip-prefix.write",
179930
+ "k2.consume",
179931
+ "k2.produce",
179932
+ "k2.read",
179933
+ "k2.write",
179902
179934
  "l4-ddos-managed-ruleset.read",
179903
179935
  "l4-ddos-managed-ruleset.write",
179904
179936
  "load-balancers-account.read",
@@ -180052,6 +180084,8 @@ var init_cf = __esm({
180052
180084
  "zone-disable-esc.write",
180053
180085
  "zone-dns-settings.read",
180054
180086
  "zone-dns-settings.write",
180087
+ "zone-observability.read",
180088
+ "zone-observability.write",
180055
180089
  "zone-security-center-insights.read",
180056
180090
  "zone-security-center-insights.write",
180057
180091
  "zone-settings.read",
@@ -180572,7 +180606,7 @@ var init_dist14 = __esm({
180572
180606
  init_wrapper();
180573
180607
  init_create_worker_upload_form();
180574
180608
  import_undici13 = __toESM(require_undici(), 1);
180575
- version3 = "0.0.40";
180609
+ version3 = "0.0.43";
180576
180610
  NoDefaultValueProvided2 = class extends UserError {
180577
180611
  static {
180578
180612
  __name(this, "NoDefaultValueProvided");
@@ -188748,7 +188782,7 @@ function renderContainerTable(apps2) {
188748
188782
  ID: app.id,
188749
188783
  NAME: app.name,
188750
188784
  STATE: colorState(state3),
188751
- "LIVE INSTANCES": String(app.instances),
188785
+ "LIVE INSTANCES": String(app.health.instances.active),
188752
188786
  "LAST MODIFIED": app.updated_at
188753
188787
  };
188754
188788
  })
@@ -196362,10 +196396,22 @@ var require_dist4 = __commonJS({
196362
196396
  }
196363
196397
  });
196364
196398
 
196399
+ // src/containers/application-id.ts
196400
+ function isValidApplicationId(id) {
196401
+ return APPLICATION_ID_REGEX.test(id);
196402
+ }
196403
+ var APPLICATION_ID_REGEX;
196404
+ var init_application_id = __esm({
196405
+ "src/containers/application-id.ts"() {
196406
+ init_import_meta_url();
196407
+ APPLICATION_ID_REGEX = /^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$/i;
196408
+ __name(isValidApplicationId, "isValidApplicationId");
196409
+ }
196410
+ });
196411
+
196365
196412
  // src/containers/containers.ts
196366
196413
  async function deleteCommand(deleteArgs, _config) {
196367
- const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
196368
- if (!uuidRegex.test(deleteArgs.ID)) {
196414
+ if (!isValidApplicationId(deleteArgs.ID)) {
196369
196415
  throw new UserError(
196370
196416
  `Expected a container ID but got ${deleteArgs.ID}. Use \`wrangler containers list\` to view your containers and corresponding IDs.`,
196371
196417
  { telemetryMessage: "containers delete invalid container id" }
@@ -196456,6 +196502,7 @@ var init_containers2 = __esm({
196456
196502
  init_wrap();
196457
196503
  init_create_command();
196458
196504
  init_logger2();
196505
+ init_application_id();
196459
196506
  init_containers3();
196460
196507
  __name(deleteCommand, "deleteCommand");
196461
196508
  __name(infoCommand, "infoCommand");
@@ -196697,8 +196744,7 @@ function renderTable(rows) {
196697
196744
  }
196698
196745
  }
196699
196746
  async function instancesCommand(args) {
196700
- const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
196701
- if (!uuidRegex.test(args.ID)) {
196747
+ if (!isValidApplicationId(args.ID)) {
196702
196748
  throw new UserError(
196703
196749
  `Expected an application ID but got ${args.ID}. Use \`wrangler containers list\` to view your containers and corresponding IDs.`,
196704
196750
  { telemetryMessage: "containers instances invalid application id" }
@@ -196845,6 +196891,7 @@ var init_instances2 = __esm({
196845
196891
  init_create_command();
196846
196892
  init_logger2();
196847
196893
  init_onKeyPress();
196894
+ init_application_id();
196848
196895
  init_containers3();
196849
196896
  DEFAULT_PER_PAGE = 25;
196850
196897
  __name(deriveInstanceState, "deriveInstanceState");
@@ -211792,7 +211839,7 @@ var init_namespaces4 = __esm({
211792
211839
  artifactsNamespacesNamespace = createNamespace({
211793
211840
  metadata: {
211794
211841
  description: "Manage Artifacts namespaces",
211795
- status: "private beta",
211842
+ status: "open beta",
211796
211843
  owner: "Product: Artifacts"
211797
211844
  }
211798
211845
  });
@@ -211801,7 +211848,7 @@ var init_namespaces4 = __esm({
211801
211848
  artifactsNamespacesListCommand = createCommand({
211802
211849
  metadata: {
211803
211850
  description: "List Artifacts namespaces",
211804
- status: "private beta",
211851
+ status: "open beta",
211805
211852
  owner: "Product: Artifacts"
211806
211853
  },
211807
211854
  behaviour: {
@@ -211833,7 +211880,7 @@ var init_namespaces4 = __esm({
211833
211880
  artifactsNamespacesGetCommand = createCommand({
211834
211881
  metadata: {
211835
211882
  description: "Get an Artifacts namespace",
211836
- status: "private beta",
211883
+ status: "open beta",
211837
211884
  owner: "Product: Artifacts"
211838
211885
  },
211839
211886
  behaviour: {
@@ -211933,7 +211980,7 @@ var init_repos = __esm({
211933
211980
  artifactsReposNamespace = createNamespace({
211934
211981
  metadata: {
211935
211982
  description: "Manage Artifacts repositories",
211936
- status: "private beta",
211983
+ status: "open beta",
211937
211984
  owner: "Product: Artifacts"
211938
211985
  }
211939
211986
  });
@@ -211944,7 +211991,7 @@ var init_repos = __esm({
211944
211991
  artifactsReposCreateCommand = createCommand({
211945
211992
  metadata: {
211946
211993
  description: "Create an Artifacts repository",
211947
- status: "private beta",
211994
+ status: "open beta",
211948
211995
  owner: "Product: Artifacts"
211949
211996
  },
211950
211997
  behaviour: {
@@ -211991,7 +212038,7 @@ var init_repos = __esm({
211991
212038
  artifactsReposListCommand = createCommand({
211992
212039
  metadata: {
211993
212040
  description: "List Artifacts repositories in a namespace",
211994
- status: "private beta",
212041
+ status: "open beta",
211995
212042
  owner: "Product: Artifacts"
211996
212043
  },
211997
212044
  behaviour: {
@@ -212025,7 +212072,7 @@ var init_repos = __esm({
212025
212072
  artifactsReposGetCommand = createCommand({
212026
212073
  metadata: {
212027
212074
  description: "Get an Artifacts repository",
212028
- status: "private beta",
212075
+ status: "open beta",
212029
212076
  owner: "Product: Artifacts"
212030
212077
  },
212031
212078
  behaviour: {
@@ -212049,7 +212096,7 @@ var init_repos = __esm({
212049
212096
  artifactsReposDeleteCommand = createCommand({
212050
212097
  metadata: {
212051
212098
  description: "Delete an Artifacts repository",
212052
- status: "private beta",
212099
+ status: "open beta",
212053
212100
  owner: "Product: Artifacts"
212054
212101
  },
212055
212102
  behaviour: {
@@ -212086,7 +212133,7 @@ var init_repos = __esm({
212086
212133
  artifactsReposIssueTokenCommand = createCommand({
212087
212134
  metadata: {
212088
212135
  description: "Issue a repo-scoped Artifacts token",
212089
- status: "private beta",
212136
+ status: "open beta",
212090
212137
  owner: "Product: Artifacts"
212091
212138
  },
212092
212139
  behaviour: {
@@ -212148,7 +212195,7 @@ var init_artifacts = __esm({
212148
212195
  artifactsNamespace = createNamespace({
212149
212196
  metadata: {
212150
212197
  description: "\u{1F9F1} Manage Artifacts namespaces and repos",
212151
- status: "private beta",
212198
+ status: "open beta",
212152
212199
  owner: "Product: Artifacts",
212153
212200
  category: "Storage & databases"
212154
212201
  }
@@ -303115,11 +303162,14 @@ function parseMethod(method) {
303115
303162
  return { method };
303116
303163
  }
303117
303164
  function parseHeader(header) {
303118
- const [headerKey, headerQuery] = header.split(":", 2);
303165
+ const separatorIndex = header.indexOf(":");
303166
+ if (separatorIndex === -1) {
303167
+ return { header: { key: header.trim() } };
303168
+ }
303119
303169
  return {
303120
303170
  header: {
303121
- key: headerKey.trim(),
303122
- query: headerQuery?.trim()
303171
+ key: header.slice(0, separatorIndex).trim(),
303172
+ query: header.slice(separatorIndex + 1).trim()
303123
303173
  }
303124
303174
  };
303125
303175
  }
@@ -350364,6 +350414,12 @@ var init_quick_start = __esm({
350364
350414
  demandOption: true,
350365
350415
  description: "The local URL to expose (e.g., http://localhost:3000)"
350366
350416
  },
350417
+ "allowed-mail": {
350418
+ type: "string",
350419
+ array: true,
350420
+ nargs: 1,
350421
+ description: "Require email authentication (cloudflared 2026.9.2 or later). Accepts an exact address or domain wildcard such as user@example.com or *@example.org. May be repeated or comma-separated."
350422
+ },
350367
350423
  "log-level": {
350368
350424
  type: "string",
350369
350425
  default: "info",
@@ -350381,7 +350437,11 @@ var init_quick_start = __esm({
350381
350437
  "--url",
350382
350438
  args.url,
350383
350439
  "--loglevel",
350384
- args.logLevel || "info"
350440
+ args.logLevel || "info",
350441
+ ...(args.allowedMail ?? []).flatMap((allowedMail) => [
350442
+ "--allowed-mail",
350443
+ allowedMail
350444
+ ])
350385
350445
  ];
350386
350446
  logger7.log(`
350387
350447
  Starting cloudflared...`);
@@ -356290,6 +356350,18 @@ var init_local = __esm({
356290
356350
  });
356291
356351
 
356292
356352
  // src/workflows/utils.ts
356353
+ function getJsonAwareRetryLogger(json2) {
356354
+ if (!json2) {
356355
+ return logger2;
356356
+ }
356357
+ return {
356358
+ debug: logger2.debug,
356359
+ log: logger2.warn,
356360
+ info: logger2.warn,
356361
+ warn: logger2.warn,
356362
+ error: /* @__PURE__ */ __name((...args) => logger2.error(...args), "error")
356363
+ };
356364
+ }
356293
356365
  function withUtcDesignator(value) {
356294
356366
  const timeIndex = value.indexOf("T");
356295
356367
  if (timeIndex === -1 || UTC_DESIGNATOR_REG_EXP.test(value.slice(timeIndex + 1))) {
@@ -356327,9 +356399,12 @@ function validateInstanceDate(value, flag, bound) {
356327
356399
  async function getInstanceIdFromArgs(accountId, args, config2) {
356328
356400
  let id = args.id;
356329
356401
  if (id == "latest") {
356330
- const instances = (await fetchResult2(
356331
- config2,
356332
- `/accounts/${accountId}/workflows/${args.name}/instances/`
356402
+ const instances = (await retryOnAPIFailure(
356403
+ () => fetchResult2(
356404
+ config2,
356405
+ `/accounts/${accountId}/workflows/${args.name}/instances/`
356406
+ ),
356407
+ getJsonAwareRetryLogger(args.json)
356333
356408
  )).sort((a8, b11) => b11.created_on.localeCompare(a8.created_on));
356334
356409
  if (instances.length == 0) {
356335
356410
  throw new UserError(
@@ -356365,6 +356440,8 @@ var init_utils21 = __esm({
356365
356440
  init_import_meta_url();
356366
356441
  init_src();
356367
356442
  init_cfetch2();
356443
+ init_logger2();
356444
+ __name(getJsonAwareRetryLogger, "getJsonAwareRetryLogger");
356368
356445
  jsonWorkflowArgs = {
356369
356446
  json: {
356370
356447
  describe: "Output the raw API response as JSON",
@@ -356727,7 +356804,7 @@ var init_delete27 = __esm({
356727
356804
  if (ids.includes("latest")) {
356728
356805
  const latestId = await getInstanceIdFromArgs(
356729
356806
  accountId,
356730
- { id: "latest", name: args.name },
356807
+ { id: "latest", name: args.name, json: args.json },
356731
356808
  config2
356732
356809
  );
356733
356810
  ids = ids.map((id) => id === "latest" ? latestId : id);
@@ -359701,6 +359778,7 @@ var init_describe2 = __esm({
359701
359778
  init_import_meta_url();
359702
359779
  init_dist5();
359703
359780
  init_colors();
359781
+ init_src();
359704
359782
  init_date_fns();
359705
359783
  init_itty_time2();
359706
359784
  init_cfetch2();
@@ -359759,9 +359837,12 @@ var init_describe2 = __esm({
359759
359837
  } else {
359760
359838
  const accountId = await requireAuth(config2);
359761
359839
  id = await getInstanceIdFromArgs(accountId, args, config2);
359762
- instance = await fetchResult2(
359763
- config2,
359764
- `/accounts/${accountId}/workflows/${args.name}/instances/${id}`
359840
+ instance = await retryOnAPIFailure(
359841
+ () => fetchResult2(
359842
+ config2,
359843
+ `/accounts/${accountId}/workflows/${args.name}/instances/${id}`
359844
+ ),
359845
+ getJsonAwareRetryLogger(args.json)
359765
359846
  );
359766
359847
  }
359767
359848
  if (args.json) {
@@ -359920,11 +360001,15 @@ var init_list35 = __esm({
359920
360001
  URLParams.set("per_page", args.perPage.toString());
359921
360002
  }
359922
360003
  URLParams.set("page", args.page.toString());
359923
- const instances = await fetchCursorPage(
359924
- config2,
359925
- `/accounts/${accountId}/workflows/${args.name}/instances`,
359926
- void 0,
359927
- URLParams
360004
+ const instances = await retryOnAPIFailure(
360005
+ () => fetchCursorPage(
360006
+ config2,
360007
+ `/accounts/${accountId}/workflows/${args.name}/instances`,
360008
+ void 0,
360009
+ // fetchCursorPage deletes `page` from the params it is given, so each attempt needs its own copy
360010
+ new URLSearchParams(URLParams)
360011
+ ),
360012
+ getJsonAwareRetryLogger(args.json)
359928
360013
  );
359929
360014
  const sortedInstances = instances.sort(
359930
360015
  (a8, b11) => args.reverse ? a8.created_on.localeCompare(b11.created_on) : b11.created_on.localeCompare(a8.created_on)
@@ -77,7 +77,7 @@ interface WranglerConfig {
77
77
  sendMetrics?: boolean;
78
78
  }
79
79
  //#endregion
80
- //#region ../config/dist/public-DFY8wDEh.d.mts
80
+ //#region ../config/dist/public-Cf9CrRAi.d.mts
81
81
 
82
82
  //#endregion
83
83
  //#region src/definition.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"experimental-config.d.mts","names":["Pipeline","PipelineRecord","DurableObjectStorageOptions","TContainer","ContainerDefinition","DurableObjectCreatedExportOptions","DurableObjectDeletedExportOptions","DurableObjectRenamedExportOptions","DurableObjectTransferredExportOptions","DurableObjectExpectingTransferExportOptions","DurableObjectCreatedExport","DurableObjectDeletedExport","DurableObjectRenamedExport","DurableObjectTransferredExport","DurableObjectExpectingTransferExport","DurableObjectExportOptions","DurableObjectExports","WorkerEntrypointExportOptions","WorkerEntrypointExport","WorkflowExportOptions","WorkflowExport","Exports","exports","WorkerModule","Record","DefaultModule","ExportedHandler","Rpc","WorkerEntrypointBranded","Constructor","DurableObjectBranded","WorkflowEntrypointBranded","TInstance","ExtractInstance","T$1","InstanceType","BindingTypeMap","TBinding","K2Producer","TypedAiBinding","T","Ai","JsonBinding","TypedKvBinding","KVNamespace","TypedPipelineBinding","TypedQueueBinding","Queue","TextBinding","AgentMemoryNamespace","AiSearchInstance","AiSearchNamespace","AnalyticsEngineDataset","AnalyticsSQLBinding","Artifacts","Fetcher","BrowserRun","D1Database","DispatchNamespace","DurableObjectNamespace","Flagship","Hyperdrive","ImagesBinding","MediaBinding","RateLimit","R2Bucket","SecretsStoreSecret","SendEmail","StreamBinding","VectorizeIndex","WorkerVersionMetadata","WorkerLoader","Workflow","SelectedWorkerExportName","TExportName","InferBindingType","WorkerReference","TWorker","UnwrapConfig","InferMainModule","TModule","TWorkflow","P","K","InferExportsByType","TUnwrappedConfig","TExportType","TExports","InferWorkerEntrypointExports","Exclude","TConfig","TReturn","Promise","TCompletion","ConfigEnv","TEnv","KeysOfUnion","UnionProperty","K$1","PropertyKey","MergeEnv","TEnv$1","TRequiredKey","TOptionalKey","InferEnv","InferDurableNamespaces","FetchTriggerOptions","FetchTrigger","QueueConsumerTriggerOptions","QueueConsumerTrigger","ScheduledTriggerOptions","ScheduledTrigger","EmailTriggerOptions","EmailTrigger","ConnectTriggerOptionsBase","TcpConnectTriggerOptions","UdpConnectTriggerOptions","ConnectTriggerOptions","ConnectTrigger","Triggers","triggers","Settings","CloudflareConfig","WorkerConfig","ConfigInput","ContainerConfig","Binding","AgentMemoryBinding","AiBinding","AiSearchBinding","AiSearchNamespaceBinding","AnalyticsEngineDatasetBinding","AnalyticsSQLBinding$1","ArtifactsBinding","AssetsBinding","BrowserBinding","D1Binding","DispatchNamespaceBinding","DurableObjectBinding","FlagshipBinding","HyperdriveBinding","ImagesBinding$1","K2Binding","KvBinding","LogfwdrBinding","MediaBinding$1","MtlsCertificateBinding","PipelineBinding","QueueBinding","R2Binding","RateLimitBinding","SecretBinding","SecretsStoreSecretBinding","SendEmailBinding","StreamBinding$1","UnsafeBinding","VectorizeBinding","VersionMetadataBinding","VpcNetworkBinding","VpcServiceBinding","WorkerBinding","WorkerLoaderBinding","WorkflowBinding","Trigger","Export","ContainerImage","ContainerObservabilityConfig","StandardContainerObservabilityConfig","BaseContainerConfig","Array","StandardContainerConfig","DurableObjectContainerConfig","ConfigContext","ContextualProperties","TInput","TElement","ContextualConfig","TValue","TResult","WorkerDefinition","defineConfig","defineContainer","defineWorker","Json","BindingDevOptions","AgentMemoryBindingOptions","AiBindingOptions","TAiModelList","AiModelListType","AiModels","AiSearchBindingOptions","AiSearchNamespaceBindingOptions","AnalyticsEngineDatasetBindingOptions","ArtifactsBindingOptions","BrowserBindingOptions","AnalyticsSQLBindingOptions","D1BindingOptions","DispatchNamespaceBindingOptions","ReferencedWorkerConfig","TWorker$1","DurableObjectExportName","WorkerEntrypointExportName","WorkflowExportName","DurableObjectBindingOptions","TExportName$1","FlagshipBindingOptions","HyperdriveBindingOptions","ImagesBindingOptions","KvBindingOptions","TKey","LogfwdrBindingOptions","MediaBindingOptions","MtlsCertificateBindingOptions","PipelineBindingOptions","K2BindingOptions","K2Record","ArrayBuffer","Uint8Array","K2ProduceResult","TRecord","QueueBindingOptions","TBody","R2BindingOptions","RateLimitBindingOptions","SecretsStoreSecretBindingOptions","SendEmailDestinationOptions","SendEmailBindingOptions","StreamBindingOptions","UnsafeBindingOptions","VectorizeBindingOptions","VpcNetworkBindingOptions","VpcServiceBindingOptions","WorkerBindingOptions","WorkflowBindingOptions","Bindings","NoInfer","bindings","$","A","B","C","Ct","D","Dt","E","Et","F","G","H","I","J","L","M","N","O","Q","R","S","St","Tt","U","V","W","X","Y","Z","_","_t","a","at","b","bt","c","ct","d","dt","et","f","ft","g","gt","h","ht","i","it","j","k","l","lt","m","mt","n","nt","o","ot","p","pt","q","r","rt","s","st","t","tt","u","ut","v","vt","w","wt","x","xt","y","yt","z"],"sources":["../src/experimental-config/types.ts","../../config/dist/public-DFY8wDEh.d.mts","../src/experimental-config/wrangler-definition.ts"],"sourcesContent":["import { Pipeline, PipelineRecord } from \"cloudflare:pipelines\";\n\n//#region src/exports.d.ts\n\n/**\n * Storage backend for the Durable Object.\n *\n * Containers are only supported on the SQLite storage engine, so `container` is\n * only offered alongside `storage: \"sqlite\"`.\n */\ntype DurableObjectStorageOptions<TContainer extends ContainerDefinition | undefined = ContainerDefinition | undefined> = {\n /**\n * Selects the SQLite-backed storage engine (recommended for new\n * classes).\n */\n storage: \"sqlite\";\n /**\n * Attach a Container application to this Durable Object by config reference.\n */\n container?: TContainer;\n} | {\n /** Selects the legacy key-value storage engine. */\n storage: \"legacy-kv\";\n};\n/**\n * Declares a provisioned Durable Object class exported from this Worker.\n *\n * For more information about Durable Objects, see the documentation at\n * https://developers.cloudflare.com/workers/learning/using-durable-objects\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#durable-objects\n */\ntype DurableObjectCreatedExportOptions<TContainer extends ContainerDefinition | undefined = ContainerDefinition | undefined> = {\n state?: \"created\";\n} & DurableObjectStorageOptions<TContainer>;\n/**\n * Retire a provisioned Durable Object namespace whose class has\n * been removed from code.\n *\n * During deploy, the class must not be exported in the uploaded code, and no\n * other Worker may hold a `durableObject` binding to the namespace.\n */\ninterface DurableObjectDeletedExportOptions {\n state: \"deleted\";\n}\n/**\n * Rename a provisioned Durable Object namespace's class. The\n * `renamedTo` value must also appear as a live (`state: \"created\"`)\n * `durableObject` entry in the same `exports` map.\n */\ninterface DurableObjectRenamedExportOptions {\n state: \"renamed\";\n /**\n * The destination class name. Must be a valid JavaScript identifier and\n * must appear as a live (`state: \"created\"`) `durableObject` entry in the\n * same `exports` map.\n */\n renamedTo: string;\n}\n/**\n * Transfer ownership of a Durable Object namespace to another Worker in the same account.\n * The target Worker must first deploy an `expectingTransfer` entry naming this Worker via `transferFrom`.\n */\ninterface DurableObjectTransferredExportOptions {\n state: \"transferred\";\n /**\n * The destination Worker. Must reference a Worker in the same account.\n */\n transferredTo: string;\n}\n/**\n * Prepare to receive cross-Worker Durable Object transfer.\n * Once the source Worker's `transferred` export is deployed, this entry becomes a normal live `durable-object` export.\n */\ntype DurableObjectExpectingTransferExportOptions<TContainer extends ContainerDefinition | undefined = ContainerDefinition | undefined> = {\n state: \"expecting-transfer\";\n /**\n * The source Worker for the two-phase cross-Worker transfer.\n */\n transferFrom: string;\n} & DurableObjectStorageOptions<TContainer>;\ntype DurableObjectCreatedExport<TContainer extends ContainerDefinition | undefined = ContainerDefinition | undefined> = DurableObjectCreatedExportOptions<TContainer> & {\n type: \"durable-object\";\n};\ninterface DurableObjectDeletedExport extends DurableObjectDeletedExportOptions {\n type: \"durable-object\";\n}\ninterface DurableObjectRenamedExport extends DurableObjectRenamedExportOptions {\n type: \"durable-object\";\n}\ninterface DurableObjectTransferredExport extends DurableObjectTransferredExportOptions {\n type: \"durable-object\";\n}\ntype DurableObjectExpectingTransferExport<TContainer extends ContainerDefinition | undefined = ContainerDefinition | undefined> = DurableObjectExpectingTransferExportOptions<TContainer> & {\n type: \"durable-object\";\n};\ntype DurableObjectExportOptions = DurableObjectCreatedExportOptions | DurableObjectDeletedExportOptions | DurableObjectRenamedExportOptions | DurableObjectTransferredExportOptions | DurableObjectExpectingTransferExportOptions;\ntype DurableObjectExports = DurableObjectCreatedExport | DurableObjectDeletedExport | DurableObjectRenamedExport | DurableObjectTransferredExport | DurableObjectExpectingTransferExport;\ninterface WorkerEntrypointExportOptions {\n cache?: {\n /** Whether cache is enabled for this entrypoint. */\n enabled: boolean;\n };\n}\ninterface WorkerEntrypointExport extends WorkerEntrypointExportOptions {\n type: \"worker\";\n}\ninterface WorkflowExportOptions {\n /**\n * The name of the Workflow. It identifies the Workflow's instances and must\n * be unique within the account.\n */\n name: string;\n limits?: {\n /** Maximum number of steps a single Workflow instance may run. */\n steps?: number;\n };\n concurrency?: {\n /** Maximum number of Workflow instances that can run concurrently. */\n limit?: number;\n };\n /** Cron schedule(s) that automatically trigger Workflow instances. */\n schedules?: string | string[];\n /**\n * Default retention for instances of this Workflow, applied when an instance\n * does not set its own retention. Accepts milliseconds or a duration string\n * such as `\"3 days\"`.\n */\n defaultRetention?: {\n /** How long to retain instances that completed successfully or were terminated. */\n successRetention?: number | string;\n /** How long to retain errored instances. */\n errorRetention?: number | string;\n };\n}\ninterface WorkflowExport extends WorkflowExportOptions {\n type: \"workflow\";\n}\n/**\n * Configuration for named exports declared by the Worker. Each entry's\n * key is the exported class name; the value configures the export.\n */\ninterface Exports {\n /**\n * Declares a Durable Object class defined by this Worker.\n *\n * For more information about Durable Objects, see the documentation at\n * https://developers.cloudflare.com/workers/learning/using-durable-objects\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#durable-objects\n */\n durableObject<TContainer extends ContainerDefinition | undefined = undefined>(options: DurableObjectCreatedExportOptions<TContainer>): DurableObjectCreatedExport<TContainer>;\n /**\n * Retire a provisioned Durable Object namespace whose class has been removed from code.\n */\n durableObject(options: DurableObjectDeletedExportOptions): DurableObjectDeletedExport;\n /**\n * Rename a provisioned Durable Object namespace's class.\n */\n durableObject(options: DurableObjectRenamedExportOptions): DurableObjectRenamedExport;\n /**\n * Transfer ownership of a Durable Object namespace to another Worker in the same account.\n */\n durableObject(options: DurableObjectTransferredExportOptions): DurableObjectTransferredExport;\n /**\n * Prepare to receive cross-Worker Durable Object transfer.\n * The source Worker must follow up with a deployment containing a `transferred` export to commit the transfer.\n */\n durableObject<TContainer extends ContainerDefinition | undefined = undefined>(options: DurableObjectExpectingTransferExportOptions<TContainer>): DurableObjectExpectingTransferExport<TContainer>;\n durableObject(options: DurableObjectExportOptions): DurableObjectExports;\n /** Declares a WorkerEntrypoint export defined by this Worker. */\n worker(options?: WorkerEntrypointExportOptions): WorkerEntrypointExport;\n /**\n * Declares a Workflow defined by this Worker. The export's key must name a\n * class that extends `WorkflowEntrypoint`.\n *\n * For more information about Workflows, see the documentation at\n * https://developers.cloudflare.com/workflows/\n */\n workflow(options: WorkflowExportOptions): WorkflowExport;\n}\n/**\n * Exports builder for configuring Worker exports.\n *\n * @example\n * ```typescript\n * import { defineConfig, defineContainer, defineWorker, exports } from \"@cloudflare/config\";\n *\n * const myContainer = defineContainer({\n * name: \"my-container\",\n * image: { dockerfile: \"./Dockerfile\" },\n * });\n *\n * const worker = defineWorker({\n * exports: {\n * MyDurableObject: exports.durableObject({ storage: \"sqlite\" }),\n * MyContainerDO: exports.durableObject({ storage: \"sqlite\", container: myContainer }),\n * OldClass: exports.durableObject({ state: \"deleted\" }),\n * OldName: exports.durableObject({ state: \"renamed\", renamedTo: \"NewName\" }),\n * Outgoing: exports.durableObject({ state: \"transferred\", transferredTo: \"target-worker\" }),\n * Incoming: exports.durableObject({ state: \"expecting-transfer\", storage: \"sqlite\", transferFrom: \"source-worker\" }),\n * MyWorkflow: exports.workflow({ name: \"my-workflow\", limits: { steps: 100 }, schedules: \"0 * * * *\" }),\n * },\n * });\n *\n * export default defineConfig({ worker, containers: [myContainer] });\n * ```\n */\ndeclare const exports: Exports;\n//#endregion\n//#region src/inference.d.ts\n/**\n * The Worker's entry module, imported with the `{ type: \"cf-worker\" }` import attribute\n * @example\n * ```ts\n * import * as entrypoint from \"./src\" with { type: \"cf-worker\" };\n * ```\n */\ntype WorkerModule = Record<string, any>;\n/**\n * Default module type representing an unknown Worker's exports.\n * - default export can be `ExportedHandler` or a `WorkerEntrypoint` class constructor\n * - named exports can be `WorkerEntrypoint`, `DurableObject`, or `WorkflowEntrypoint` class constructors\n */\ninterface DefaultModule {\n default?: ExportedHandler | Constructor<Rpc.WorkerEntrypointBranded>;\n [key: string]: ExportedHandler | Constructor<Rpc.WorkerEntrypointBranded> | Constructor<Rpc.DurableObjectBranded> | Constructor<Rpc.WorkflowEntrypointBranded> | undefined;\n}\n/**\n * Represents a class constructor that creates instances of TInstance.\n */\ntype Constructor<TInstance> = new (...args: any[]) => TInstance;\n/**\n * Extracts the instance type from a class constructor if it extends `TInstance`.\n */\ntype ExtractInstance<T$1, TInstance> = T$1 extends Constructor<TInstance> ? InstanceType<T$1> : never;\n/**\n * Mapping from binding type literals to Cloudflare runtime types.\n *\n * Entries fall into two groups:\n * - Parameterized bindings (ai, json, kv, pipeline, queue, text) refine their\n * runtime type from the binding instance via nominal matches against the\n * `Typed*Binding` / `JsonBinding` / `TextBinding` interfaces from\n * `./bindings`. When `TBinding` does not match, the entry falls back to the\n * unparameterized runtime type.\n * - Non-parameterized bindings map their type literal directly to a runtime\n * type and ignore `TBinding`.\n *\n * IMPORTANT: The right-hand-side identifiers in this map (e.g. `KVNamespace`,\n * `ImagesBinding`, `Fetcher`) must resolve to the ambient runtime types from\n * `@cloudflare/workers-types`, not to local config interfaces. Several local\n * binding interfaces in `./bindings.ts` (`ImagesBinding`, `MediaBinding`,\n * `StreamBinding`) share names with ambient globals — importing those local\n * types into this file silently shadows the globals and breaks `InferEnv`.\n * Only import the `Typed*Binding`, `JsonBinding`, and `TextBinding` interfaces\n * from `./bindings` (their names do not collide with ambient globals); never\n * widen the import to a wildcard or to the plain `*Binding` interfaces.\n */\ninterface BindingTypeMap<TBinding> {\n k2: K2Producer;\n ai: TBinding extends TypedAiBinding<infer T> ? Ai<T> : Ai;\n json: TBinding extends JsonBinding<infer T> ? T : never;\n kv: TBinding extends TypedKvBinding<infer T> ? KVNamespace<T> : KVNamespace;\n pipeline: TBinding extends TypedPipelineBinding<infer T> ? Pipeline<T> : Pipeline;\n queue: TBinding extends TypedQueueBinding<infer T> ? Queue<T> : Queue;\n text: TBinding extends TextBinding<infer T> ? T : never;\n \"agent-memory\": AgentMemoryNamespace;\n \"ai-search\": AiSearchInstance;\n \"ai-search-namespace\": AiSearchNamespace;\n \"analytics-engine-dataset\": AnalyticsEngineDataset;\n analytics: AnalyticsSQLBinding;\n artifacts: Artifacts;\n assets: Fetcher;\n browser: BrowserRun;\n d1: D1Database;\n \"dispatch-namespace\": DispatchNamespace;\n \"durable-object\": DurableObjectNamespace;\n flagship: Flagship;\n hyperdrive: Hyperdrive;\n images: ImagesBinding;\n logfwdr: any;\n media: MediaBinding;\n \"mtls-certificate\": Fetcher;\n \"rate-limit\": RateLimit;\n r2: R2Bucket;\n secret: string;\n \"secrets-store-secret\": SecretsStoreSecret;\n \"send-email\": SendEmail;\n stream: StreamBinding;\n vectorize: VectorizeIndex;\n \"version-metadata\": WorkerVersionMetadata;\n \"vpc-service\": Fetcher;\n \"vpc-network\": Fetcher;\n worker: Fetcher;\n \"worker-loader\": WorkerLoader;\n workflow: Workflow;\n}\ntype SelectedWorkerExportName<TBinding> = TBinding extends {\n exportName?: infer TExportName;\n} ? TExportName extends string ? TExportName : \"default\" : \"default\";\ntype InferBindingType<TBinding> = TBinding extends {\n type: \"worker\";\n worker: infer TWorker extends WorkerReference;\n} ? TWorker extends string ? Fetcher : InferMainModule<UnwrapConfig<TWorker>> extends infer TModule extends WorkerModule ? SelectedWorkerExportName<TBinding> extends infer TExportName ? TExportName extends keyof TModule ? TModule[TExportName] extends Constructor<any> ? Fetcher<ExtractInstance<TModule[TExportName], Rpc.WorkerEntrypointBranded>> : Fetcher : never : never : never : TBinding extends {\n type: \"durable-object\";\n worker: infer TWorker extends WorkerReference;\n exportName: infer TExportName extends string;\n} ? TWorker extends string ? DurableObjectNamespace : InferMainModule<UnwrapConfig<TWorker>> extends infer TModule extends WorkerModule ? TExportName extends keyof TModule ? DurableObjectNamespace<ExtractInstance<TModule[TExportName], Rpc.DurableObjectBranded>> : never : never : TBinding extends {\n type: \"workflow\";\n worker: infer TWorker extends WorkerReference;\n exportName: infer TExportName extends string;\n} ? TWorker extends string ? Workflow : InferMainModule<UnwrapConfig<TWorker>> extends infer TModule extends WorkerModule ? TExportName extends keyof TModule ? ExtractInstance<TModule[TExportName], Rpc.WorkflowEntrypointBranded> extends infer TWorkflow ? TWorkflow extends {\n run(event: {\n payload: infer P;\n }, step: any): any;\n} ? Workflow<P> : Workflow : Workflow : never : never : TBinding extends {\n type: `unsafe:${string}`;\n} ? any : TBinding extends {\n type: infer K extends keyof BindingTypeMap<TBinding>;\n} ? BindingTypeMap<TBinding>[K] : never;\n/**\n * Infer export names from a config's exports, optionally filtered by type.\n * When TExportType is `string` (default), returns all export names.\n * When TExportType is a specific literal like `\"durable-object\"` or `\"workflow\"`,\n * returns only exports of that type.\n */\ntype InferExportsByType<TUnwrappedConfig, TExportType extends string = string> = TUnwrappedConfig extends {\n exports: infer TExports extends Record<string, {\n type: string;\n }>;\n} ? { [K in keyof TExports]: TExports[K] extends {\n type: TExportType;\n} ? K & string : never }[keyof TExports] : never;\n/**\n * Infer `WorkerEntrypoint` export names from a config.\n * Returns named module exports that are not declared as type `\"durable-object\"` or `\"workflow\"` in `exports`.\n * Excludes `\"default\"` since `exportName` should only be provided for named exports.\n */\ntype InferWorkerEntrypointExports<TUnwrappedConfig> = Exclude<keyof InferMainModule<TUnwrappedConfig> & string, \"default\" | InferExportsByType<TUnwrappedConfig, \"durable-object\" | \"workflow\">>;\n/**\n * Unwrap function and promise types to get the underlying config.\n * Use this to normalize a config before passing it to other inference utilities.\n */\ntype UnwrapConfig<TConfig> = TConfig extends ((...args: any[]) => infer TReturn) ? UnwrapConfig<TReturn> : TConfig extends Promise<infer TCompletion> ? UnwrapConfig<TCompletion> : TConfig;\n/** Extract the authored binding map from each possible config branch. */\ntype ConfigEnv<TConfig> = TConfig extends {\n env: infer TEnv extends Record<string, any>;\n} ? TEnv : Record<never, never>;\n/** Collect every property name from a union of object types. */\ntype KeysOfUnion<T$1> = T$1 extends unknown ? keyof T$1 : never;\n/** Read a property distributively from every member of a union. */\ntype UnionProperty<T$1, K$1 extends PropertyKey> = T$1 extends unknown ? K$1 extends keyof T$1 ? T$1[K$1] : never : never;\n/** Merge binding maps, making bindings absent from some branches optional. */\ntype MergeEnv<TEnv$1, TRequiredKey extends PropertyKey = keyof TEnv$1, TOptionalKey extends PropertyKey = Exclude<KeysOfUnion<TEnv$1>, TRequiredKey>> = { [K in TRequiredKey]: InferBindingType<UnionProperty<TEnv$1, K>> } & { [K in TOptionalKey]?: InferBindingType<UnionProperty<TEnv$1, K>> };\n/**\n * Infer the `Env` interface type from a Worker config.\n *\n * Transforms a config object's `env` bindings into their\n * corresponding Cloudflare runtime types.\n *\n * @example\n * ```typescript\n * import { defineWorker, bindings } from \"@cloudflare/config\";\n * import type { InferEnv, UnwrapConfig } from \"@cloudflare/config\";\n *\n * const config = defineWorker({\n * env: {\n * MY_JSON: bindings.json({ id: string }),\n * MY_KV: bindings.kv(),\n * },\n * });\n *\n * type WorkerConfig = UnwrapConfig<typeof config>;\n * // Inferred as: { MY_JSON: { id: string }; MY_KV: KVNamespace }\n * export type Env = InferEnv<WorkerConfig>;\n * ```\n */\ntype InferEnv<TUnwrappedConfig> = MergeEnv<ConfigEnv<TUnwrappedConfig>>;\n/**\n * Infer the Durable Object namespace names from a Worker config's exports.\n * Returns a union of export names that declare a *live* Durable Object —\n * `type: \"durable-object\"` with `state` either omitted, `\"created\"`, or\n * `\"expecting-transfer\"`. Tombstone entries (`deleted`, `renamed`,\n * `transferred`) are excluded because they retire the namespace and a\n * binding to a tombstoned class would fail at deploy time.\n *\n * @example\n * ```typescript\n * import { defineWorker } from \"@cloudflare/config\";\n * import type { InferDurableNamespaces, UnwrapConfig } from \"@cloudflare/config\";\n *\n * const config = defineWorker({\n * exports: {\n * MyDurableObject: { type: \"durable-object\", storage: \"sqlite\" },\n * OldGone: { type: \"durable-object\", state: \"deleted\" },\n * },\n * });\n *\n * type WorkerConfig = UnwrapConfig<typeof config>;\n * // Inferred as: \"MyDurableObject\" (the deleted tombstone is excluded)\n * type DurableNamespaces = InferDurableNamespaces<WorkerConfig>;\n * ```\n */\ntype InferDurableNamespaces<TUnwrappedConfig> = TUnwrappedConfig extends {\n exports: infer TExports extends Record<string, {\n type: string;\n }>;\n} ? { [K in keyof TExports]: TExports[K] extends {\n type: \"durable-object\";\n} ? TExports[K] extends {\n state: \"deleted\" | \"renamed\" | \"transferred\";\n} ? never : K & string : never }[keyof TExports] : never;\n/**\n * Infer the main module type from a Worker config's entrypoint.\n * If entrypoint is a module namespace object, returns that type.\n * If entrypoint is a `string` or not present, returns `DefaultModule` as a fallback.\n */\ntype InferMainModule<TUnwrappedConfig> = TUnwrappedConfig extends {\n entrypoint: infer TModule extends WorkerModule;\n} ? TModule : DefaultModule;\n//#endregion\n//#region src/triggers.d.ts\ninterface FetchTriggerOptions {\n /**\n * A route that your Worker should be published to.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#types-of-routes\n */\n pattern: string;\n /**\n * The DNS zone the pattern is attached to. Required when the\n * pattern is ambiguous.\n */\n zone?: string;\n}\n/**\n * Fetch trigger — a route that your Worker should be published to.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#types-of-routes\n */\ninterface FetchTrigger extends FetchTriggerOptions {\n type: \"fetch\";\n}\ninterface QueueConsumerTriggerOptions {\n /** The name of the queue from which this consumer should consume. */\n name: string;\n /** The queue to send messages that failed to be consumed. */\n deadLetterQueue?: string;\n /** The maximum number of messages per batch. */\n maxBatchSize?: number;\n /** The maximum number of seconds to wait to fill a batch with messages. */\n maxBatchTimeout?: number;\n /**\n * The maximum number of concurrent consumer Worker invocations.\n * Leaving this unset will allow your consumer to scale to the\n * maximum concurrency needed to keep up with the message backlog.\n */\n maxConcurrency?: number | null;\n /** The maximum number of retries for each message. */\n maxRetries?: number;\n /** The number of seconds to wait before retrying a message. */\n retryDelay?: number;\n /** The number of milliseconds to wait for pulled messages to become visible again. */\n visibilityTimeoutMs?: number;\n}\n/**\n * Queue consumer trigger — invokes this Worker when messages arrive on the\n * named queue.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#queues\n */\ninterface QueueConsumerTrigger extends QueueConsumerTriggerOptions {\n type: \"queue\";\n}\ninterface ScheduledTriggerOptions {\n /**\n * A \"cron\" definition to trigger a Worker's \"scheduled\" function.\n *\n * Lets you call Workers periodically, much like a cron job.\n *\n * More details here https://developers.cloudflare.com/workers/platform/cron-triggers\n */\n schedule: string;\n}\n/**\n * Scheduled (cron) trigger — invokes this Worker on the given schedules.\n *\n * More details here https://developers.cloudflare.com/workers/platform/cron-triggers\n */\ninterface ScheduledTrigger extends ScheduledTriggerOptions {\n type: \"scheduled\";\n}\ninterface EmailTriggerOptions {\n /**\n * Inbound Email Routing addresses handled by this Worker.\n *\n * Each entry is a literal recipient address (e.g. `\"support@example.com\"`)\n * or a `*@domain` catch-all (e.g. `\"*@example.com\"`).\n */\n addresses: string[];\n}\n/**\n * Email trigger — invokes this Worker for the configured Email Routing\n * addresses.\n */\ninterface EmailTrigger extends EmailTriggerOptions {\n type: \"email\";\n}\ninterface ConnectTriggerOptionsBase {\n /** The port to listen on. */\n port: number;\n /** The address to bind to. Defaults to `127.0.0.1`. */\n address?: string;\n}\ntype TcpConnectTriggerOptions = ConnectTriggerOptionsBase & {\n protocol: \"tcp\";\n};\ntype UdpConnectTriggerOptions = ConnectTriggerOptionsBase & {\n protocol: \"udp\";\n /** The idle timeout in milliseconds after which a peer flow is closed. */\n idleTimeoutMs?: number;\n /** The maximum number of pending datagram bytes per peer flow. */\n maxPendingBytes?: number;\n};\ntype ConnectTriggerOptions = TcpConnectTriggerOptions | UdpConnectTriggerOptions;\n/**\n * Connect trigger — invokes this Worker's `connect(socket, env, ctx)`\n * handler for raw socket connections received on the configured\n * protocol/port.\n */\ntype ConnectTrigger = ConnectTriggerOptions & {\n type: \"connect\";\n};\n/**\n * Event triggers — fetch routes, queue consumers, cron schedules, Email\n * Routing addresses, and raw sockets — that invoke this Worker.\n * Construct entries with `triggers.fetch(...)`, `triggers.queue(...)`,\n * `triggers.scheduled(...)`, `triggers.email(...)`, or `triggers.connect(...)`.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#triggers\n */\ninterface Triggers {\n /**\n * Fetch trigger — a route that your Worker should be published to.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#types-of-routes\n */\n fetch(options: FetchTriggerOptions): FetchTrigger;\n /**\n * Queue consumer trigger — invokes this Worker when messages arrive on the\n * named queue.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#queues\n */\n queue(options: QueueConsumerTriggerOptions): QueueConsumerTrigger;\n /**\n * Scheduled (cron) trigger — invokes this Worker on the given schedules.\n *\n * More details here https://developers.cloudflare.com/workers/platform/cron-triggers\n */\n scheduled(options: ScheduledTriggerOptions): ScheduledTrigger;\n /**\n * Email trigger — invokes this Worker for the configured Email Routing\n * addresses.\n */\n email(options: EmailTriggerOptions): EmailTrigger;\n /**\n * Connect trigger — invokes this Worker's `connect(socket, env, ctx)`\n * handler for raw socket connections received on the configured\n * protocol/port.\n */\n connect(options: ConnectTriggerOptions): ConnectTrigger;\n}\n/**\n * Triggers builder for configuring event triggers.\n *\n * @example\n * ```typescript\n * import { defineConfig, triggers } from \"@cloudflare/config\";\n *\n * export default defineConfig({\n * worker: {\n * name: \"my-worker\",\n * compatibilityDate: \"2026-09-17\",\n * triggers: [\n * triggers.fetch({ pattern: \"example.com/*\", zone: \"example.com\" }),\n * triggers.queue({ name: \"my-queue\" }),\n * triggers.scheduled({ schedule: \"0 * * * *\" }),\n * triggers.scheduled({ schedule: \"30 0 * * *\" }),\n * triggers.email({ addresses: [\"support@example.com\"] }),\n * triggers.connect({ protocol: \"tcp\", port: 5432 }),\n * ],\n * },\n * });\n * ```\n */\ndeclare const triggers: Triggers;\n//#endregion\n//#region src/types.d.ts\n/** Account-level values shared by the resources in a configuration. */\ninterface Settings {\n /**\n * This is the ID of the account associated with your zone. It can also be\n * specified through the `CLOUDFLARE_ACCOUNT_ID` environment variable.\n */\n accountId?: string;\n /**\n * The compliance boundary in which commands should operate. When omitted,\n * this can be supplied through `CLOUDFLARE_COMPLIANCE_REGION`.\n */\n complianceRegion?: \"public\" | \"fedramp-high\";\n}\n/** The authored shape of `cloudflare.config.ts`'s default export. */\ninterface CloudflareConfig extends Settings {\n /** The Worker defined by this configuration. */\n worker?: ConfigInput<WorkerConfig>;\n /** Container applications defined by this configuration. */\n containers?: ConfigInput<ContainerConfig>[];\n}\n/**\n * Union of all binding definitions accepted in `env`.\n */\ntype Binding = AgentMemoryBinding | AiBinding | AiSearchBinding | AiSearchNamespaceBinding | AnalyticsEngineDatasetBinding | AnalyticsSQLBinding$1 | ArtifactsBinding | AssetsBinding | BrowserBinding | D1Binding | DispatchNamespaceBinding | DurableObjectBinding | FlagshipBinding | HyperdriveBinding | ImagesBinding$1 | JsonBinding | K2Binding | KvBinding | LogfwdrBinding | MediaBinding$1 | MtlsCertificateBinding | PipelineBinding | QueueBinding | R2Binding | RateLimitBinding | SecretBinding | SecretsStoreSecretBinding | SendEmailBinding | StreamBinding$1 | TextBinding | UnsafeBinding | VectorizeBinding | VersionMetadataBinding | VpcNetworkBinding | VpcServiceBinding | WorkerBinding | WorkerLoaderBinding | WorkflowBinding;\n/**\n * Union of all trigger definitions accepted in `triggers`.\n */\ntype Trigger = ConnectTrigger | EmailTrigger | FetchTrigger | QueueConsumerTrigger | ScheduledTrigger;\n/**\n * Union of all export definitions accepted in `exports`. Worker entries\n * configure WorkerEntrypoint exports. Durable Object entries configure live\n * classes and tombstone lifecycle operations. Workflow entries declare the\n * Workflows defined by the Worker.\n */\ntype Export = DurableObjectCreatedExport | DurableObjectDeletedExport | DurableObjectRenamedExport | DurableObjectTransferredExport | DurableObjectExpectingTransferExport | WorkerEntrypointExport | WorkflowExport;\n/** An image source accepted in an authored Container configuration. */\ntype ContainerImage = {\n /** The path to a Dockerfile. */\n dockerfile: string;\n /**\n * Build context of the application.\n *\n * @default The directory containing `dockerfile`.\n */\n buildContext?: string;\n /** Image variables available to the image at build time only. */\n buildVars?: Record<string, string>;\n} | {\n /**\n * Reference to an existing image.\n *\n * For supported registries, refer to\n * https://developers.cloudflare.com/containers/guides/image-management/#use-pre-built-container-images\n */\n reference: string;\n};\n/** Application-wide observability settings shared by all Containers. */\ninterface ContainerObservabilityConfig {\n /** Whether observability is enabled. */\n enabled?: boolean;\n logs?: {\n /** Whether log collection is enabled. */\n enabled?: boolean;\n };\n}\n/** Observability settings for a standard Container application. */\ntype StandardContainerObservabilityConfig = ContainerObservabilityConfig & ({\n /** Percentage of Container instances targeted for observability. */\n targetInstancePercentage?: number;\n targetInstanceCount?: never;\n} | {\n targetInstancePercentage?: never;\n /** Number of Container instances targeted for observability. */\n targetInstanceCount?: number;\n});\n/** Fields shared by all Container application configurations. */\ninterface BaseContainerConfig {\n /**\n * Name of the application.\n *\n * This is also the identifier used to reference the Container from a Durable\n * Object's `exports` entry via its `container` field.\n */\n name: string;\n /**\n * Passed through without client-side validation or transformation.\n *\n * @hidden\n */\n unsafe?: Record<string, unknown>;\n ssh?: {\n /**\n * If enabled, users with write access to the Container application can\n * connect to it over SSH.\n *\n * @default true\n */\n enabled: boolean;\n /**\n * Port that the SSH service is running on.\n *\n * @default 22\n */\n port?: number;\n };\n /** SSH public keys to put in the Container's authorized_keys file. */\n authorizedKeys?: Array<{\n name: string;\n publicKey: string;\n }>;\n}\n/** A Container application managed with a standard scheduling policy. */\ninterface StandardContainerConfig extends BaseContainerConfig {\n /** Configures observability and optional targeting for Container instances. */\n observability?: StandardContainerObservabilityConfig;\n /** The image to build or deploy. */\n image: ContainerImage;\n /**\n * Maximum number of application instances.\n *\n * @default 20\n */\n maxInstances?: number;\n /**\n * The instance type to be used for the Container.\n * Select from one of the following named instance types:\n *\n * - lite: 1/16 vCPU, 256 MiB memory, and 2 GB disk\n * - basic: 1/4 vCPU, 1 GiB memory, and 4 GB disk\n * - standard-1: 1/2 vCPU, 4 GiB memory, and 8 GB disk\n * - standard-2: 1 vCPU, 6 GiB memory, and 12 GB disk\n * - standard-3: 2 vCPU, 8 GiB memory, and 16 GB disk\n * - standard-4: 4 vCPU, 12 GiB memory, and 20 GB disk\n *\n * Customers on an enterprise plan have the additional option to set custom\n * limits.\n *\n * @default \"lite\"\n */\n instanceType?: \"basic\" | \"lite\" | \"standard-1\" | \"standard-2\" | \"standard-3\" | \"standard-4\" | {\n /** @default 0.0625 (1/16 vCPU) */\n vcpu?: number;\n /** @default 256 MiB */\n memoryMib?: number;\n /** @default 2 GB */\n diskMb?: number;\n };\n /**\n * The scheduling policy of the application.\n *\n * @default \"default\"\n */\n schedulingPolicy?: \"default\" | \"regional\";\n /** Scheduling constraints for Container placement. */\n constraints?: {\n /** Limit Container placement to specific geographic regions. */\n regions?: Array<\"ENAM\" | \"WNAM\" | \"EEUR\" | \"WEUR\" | \"APAC\" | \"SAM\" | \"ME\" | \"OC\" | \"AFR\">;\n /** Restrict Containers to compliance boundaries. */\n jurisdiction?: \"eu\" | \"fedramp\";\n };\n rollout?: {\n /**\n * How a rollout should be created. It supports the following modes:\n *\n * - full-auto: The Container application will be rolled out fully\n * automatically.\n * - none: The Container application will not have a rollout or update.\n * - full-manual: The Container application will be rolled out by manually\n * progressing through the rollout steps.\n *\n * @default \"full-auto\"\n * @hidden\n */\n kind?: \"full-auto\" | \"none\" | \"full-manual\";\n /**\n * Configures what percentage of instances should be updated at each step of\n * a rollout. You can specify this as a single number or an array of numbers.\n *\n * If this is a single number, each step will progress by that percentage.\n * The options are 5, 10, 20, 25, 50, or 100.\n *\n * If this is an array, each step specifies the cumulative rollout progress.\n * The final step must be 100.\n *\n * @default [10, 100]\n */\n stepPercentage?: number | number[];\n /**\n * Configures the grace period, in seconds, for active instances before they\n * are shut down during a rollout.\n *\n * @default 0\n */\n activeGracePeriod?: number;\n };\n}\n/** A Container application managed by a Durable Object. */\ninterface DurableObjectContainerConfig extends BaseContainerConfig {\n schedulingPolicy: \"durable-object\";\n /**\n * Configures application-wide observability. Instance targeting is not\n * supported for Durable Object-managed Containers.\n */\n observability?: ContainerObservabilityConfig;\n /** Named images that the Durable Object can start. */\n images?: Record<string, ContainerImage>;\n}\n/**\n * Container application configuration. This is the input shape passed to\n * `defineContainer` and parsed at runtime by `InputContainerSchema`.\n */\ntype ContainerConfig = DurableObjectContainerConfig | StandardContainerConfig;\n/**\n * Worker configuration. This is the input shape passed to\n * [`defineWorker`](https://developers.cloudflare.com/workers/wrangler/configuration/).\n *\n * Fields are parsed and normalised at runtime by `InputWorkerSchema` before\n * being passed to downstream tooling.\n */\ninterface WorkerConfig {\n /**\n * The name of your Worker.\n */\n name: string;\n /**\n * A date in the form yyyy-mm-dd, which will be used to determine\n * which version of the Workers runtime is used.\n *\n * More details at https://developers.cloudflare.com/workers/configuration/compatibility-dates\n */\n compatibilityDate: string;\n /**\n * A list of flags that enable features from upcoming features of\n * the Workers runtime, usually used together with `compatibilityDate`.\n *\n * More details at https://developers.cloudflare.com/workers/configuration/compatibility-flags/\n *\n * @default []\n */\n compatibilityFlags?: string[];\n /**\n * The entrypoint module that will be executed.\n *\n * May be either a path string (e.g. `\"./src/index.ts\"`) or a module\n * namespace imported with the `cf-worker` import attribute.\n *\n * @example\n * ```ts\n * import { defineConfig, defineWorker } from \"@cloudflare/config\";\n * import * as entrypoint from \"./src\" with { type: \"cf-worker\" };\n * const worker = defineWorker({ entrypoint });\n * export default defineConfig({ worker });\n * ```\n */\n entrypoint?: string | WorkerModule;\n /**\n * Specify the directory of static assets to deploy/serve.\n *\n * More details at https://developers.cloudflare.com/workers/frameworks/\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#assets\n */\n assets?: {\n /** How to handle HTML requests. */\n htmlHandling?: \"auto-trailing-slash\" | \"drop-trailing-slash\" | \"force-trailing-slash\" | \"none\";\n /** How to handle requests that do not match an asset. */\n notFoundHandling?: \"single-page-application\" | \"404-page\" | \"none\";\n /**\n * Matches will be routed to the User Worker, and matches to negative rules will go to the Asset Worker.\n *\n * Can also be `true`, indicating that every request should be routed to the User Worker.\n */\n runWorkerFirst?: string[] | boolean;\n };\n /**\n * Custom domains that your Worker should be published to.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#types-of-routes\n */\n domains?: string[];\n /**\n * Event triggers — fetch routes, queue consumers, cron schedules, Email\n * Routing addresses, and raw sockets — that invoke this Worker.\n * Construct entries with `triggers.fetch(...)`, `triggers.queue(...)`,\n * `triggers.scheduled(...)`, `triggers.email(...)`, or\n * `triggers.connect(...)`.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#triggers\n */\n triggers?: Trigger[];\n /**\n * A list of Tail Workers that are bound to this Worker.\n *\n * `@cloudflare/config` unifies regular and streaming tail consumers under\n * a single field; pass `streaming: true` to forward streaming tail events.\n *\n * @default []\n */\n tailConsumers?: Array<{\n /** The name of the service tail events will be forwarded to. */\n worker: string;\n /** Whether to stream tail events in real time. */\n streaming?: boolean;\n }>;\n /**\n * Specify the cache behavior of the Worker.\n */\n cache?: {\n /** If cache is enabled for this Worker. */\n enabled: boolean;\n /** Whether cached assets may be reused across Worker versions. */\n crossVersionCache?: boolean;\n };\n /**\n * Specify how the Worker should be located to minimize round-trip time.\n *\n * More details: https://developers.cloudflare.com/workers/platform/smart-placement/\n */\n placement?: {\n mode: \"off\" | \"smart\";\n hint?: string;\n } | {\n mode?: \"targeted\";\n region: string;\n } | {\n mode?: \"targeted\";\n host: string;\n } | {\n mode?: \"targeted\";\n hostname: string;\n };\n /**\n * Specify limits for runtime behavior.\n * Only supported for the \"standard\" Usage Model.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#limits\n */\n limits?: {\n /** Maximum allowed CPU time for a Worker's invocation in milliseconds. */\n cpuMs?: number;\n /** Maximum allowed number of fetch requests that a Worker's invocation can execute. */\n subrequests?: number;\n };\n /**\n * Send Trace Events from this Worker to Workers Logpush.\n *\n * This will not configure a corresponding Logpush job automatically.\n *\n * For more information about Workers Logpush, see:\n * https://blog.cloudflare.com/logpush-for-workers/\n */\n logpush?: boolean;\n /**\n * Specify the observability behavior of the Worker.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#observability\n */\n observability?: {\n /** If observability is enabled for this Worker. */\n enabled?: boolean;\n /** The sampling rate. */\n headSamplingRate?: number;\n /**\n * Whether query strings are removed from request URLs in logs and traces.\n *\n * @default false\n */\n redactQueryString?: boolean;\n /** Real-time Issues settings for this Worker. */\n issues?: {\n /** Whether real-time Issues are enabled. */\n enabled?: boolean;\n };\n logs?: {\n enabled?: boolean;\n /** The sampling rate. */\n headSamplingRate?: number;\n /** Set to false to disable invocation logs. */\n invocationLogs?: boolean;\n /**\n * If logs should be persisted to the Cloudflare observability platform where they can be queried in the dashboard.\n *\n * @default true\n */\n persist?: boolean;\n /**\n * What destinations logs emitted from the Worker should be sent to.\n *\n * @default []\n */\n destinations?: string[];\n };\n traces?: {\n enabled?: boolean;\n /** The sampling rate. */\n headSamplingRate?: number;\n /**\n * If traces should be persisted to the Cloudflare observability platform where they can be queried in the dashboard.\n *\n * @default true\n */\n persist?: boolean;\n /**\n * What destinations traces emitted from the Worker should be sent to.\n *\n * @default []\n */\n destinations?: string[];\n };\n };\n /**\n * Whether we use `<name>.<subdomain>.workers.dev` to\n * test and deploy your Worker.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#workersdev\n *\n * @default true\n */\n workersDev?: boolean;\n /**\n * Whether we use `<version>-<name>.<subdomain>.workers.dev` to\n * serve Preview URLs for your Worker.\n *\n * @default false\n */\n previewUrls?: boolean;\n /**\n * Designates this Worker as an internal-only \"first-party\" Worker.\n *\n * @internal\n */\n firstPartyWorker?: boolean;\n /**\n * \"Unsafe\" tables for runtime features that aren't directly supported by\n * this configuration. Values are forwarded verbatim in the Worker's\n * upload metadata.\n *\n * @default {}\n */\n unsafe?: {\n /**\n * Arbitrary key/value pairs that will be included in the uploaded metadata. Values specified\n * here will always be applied to metadata last, so can add new or override existing fields.\n */\n metadata?: Record<string, unknown>;\n /**\n * Used for internal capnp uploads for the Workers runtime.\n */\n capnp?: {\n basePath: string;\n sourceSchemas: string[];\n compiledSchema?: never;\n } | {\n basePath?: never;\n sourceSchemas?: never;\n compiledSchema: string;\n };\n };\n /**\n * Bindings exposed on the Worker's `env` object. Construct entries with\n * `bindings.kv(...)`, `bindings.r2(...)`, etc.\n */\n env?: Record<string, Binding>;\n /**\n * Configuration for named exports declared by the Worker. Each entry's\n * key is the exported class name; the value configures the export.\n *\n * - Construct entries with `exports.durableObject(...)`.\n * - Declares Durable Object classes exported from this Worker.\n * For more information about Durable Objects, see the documentation at\n * https://developers.cloudflare.com/workers/learning/using-durable-objects.\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#durable-objects.\n *\n * - Construct entries with `exports.workflow(...)`.\n * - Declares Workflows defined by this Worker.\n * For more information about Workflows, see the documentation at\n * https://developers.cloudflare.com/workflows/.\n */\n exports?: Record<string, Export>;\n}\n//#endregion\n//#region src/definition.d.ts\ninterface ConfigContext {\n /** Whether the config is being evaluated for a Preview build. */\n isPreview: boolean;\n /**\n * The mode the config is being evaluated in.\n * Set via the `--mode` CLI flag.\n * In Vite the mode defaults to `development` in `vite dev` and `production` in `vite build` ([more info](https://vite.dev/guide/env-and-mode.html#modes)).\n * In Wrangler the mode defaults to `undefined`.\n */\n mode: string | undefined;\n}\n/**\n * A configuration value, promise, or factory. Factories can be passed directly\n * for automatic resolution with the current context or called explicitly with\n * another context before they are used.\n */\ntype ConfigInput<T$1> = T$1 | Promise<T$1> | ((ctx: ConfigContext) => T$1 | Promise<T$1>);\n/** Recursively apply declared config properties without expanding open records. */\ntype ContextualProperties<TInput extends object, TConfig> = TInput extends readonly unknown[] ? TConfig extends readonly (infer TElement)[] ? { [K in keyof TInput]: ContextualConfig<TInput[K], TElement> } : TConfig : string extends keyof TConfig ? TConfig : { [K in keyof TConfig]: K extends keyof TInput ? ContextualConfig<TInput[K], TConfig[K]> : TConfig[K] };\ntype ContextualConfig<TInput, TConfig> = TInput extends Promise<infer TValue> ? Promise<ContextualConfig<TValue, TConfig>> : TInput extends ((ctx: ConfigContext) => infer TResult) ? (ctx: ConfigContext) => ContextualConfig<TResult, TConfig> : TConfig extends unknown ? TInput extends TConfig ? TInput & (TInput extends object ? ContextualProperties<TInput, TConfig> : TConfig) : never : never;\n/** Create a type-safe identity helper for a configuration value or factory. */\n\ntype ContainerDefinition<T$1 extends ContainerConfig = ContainerConfig> = ConfigInput<T$1>;\ntype WorkerDefinition<T$1 extends WorkerConfig = WorkerConfig> = ConfigInput<T$1>;\n/** A Worker name, value, promise, or context-aware factory. */\ntype WorkerReference = string | WorkerDefinition;\n/**\n * Used to define the default export in `cloudflare.config.ts`.\n *\n * @example\n * ```typescript\n * import { defineConfig } from \"@cloudflare/config\";\n *\n * export default defineConfig({\n * worker: {\n * name: \"my-worker\",\n * compatibilityDate: \"2026-09-17\",\n * },\n * });\n * ```\n */\ndeclare const defineConfig: <const TInput extends ConfigInput<CloudflareConfig>>(config: TInput & ContextualConfig<TInput, CloudflareConfig>) => TInput;\n/**\n * Define a Container.\n *\n * @example\n * ```typescript\n * import { defineContainer } from \"@cloudflare/config\";\n *\n * const container = defineContainer({\n * name: \"my-container\",\n * image: { dockerfile: \"./Dockerfile\" },\n * });\n * ```\n */\ndeclare const defineContainer: <const TInput extends ConfigInput<ContainerConfig>>(config: TInput & ContextualConfig<TInput, ContainerConfig>) => TInput;\n/**\n * Define a Worker.\n *\n * @example\n * ```typescript\n * import { defineWorker } from \"@cloudflare/config\";\n *\n * const worker = defineWorker({\n * name: \"my-worker\",\n * compatibilityDate: \"2026-09-17\",\n * });\n * ```\n */\ndeclare const defineWorker: <const TInput extends ConfigInput<WorkerConfig>>(config: TInput & ContextualConfig<TInput, WorkerConfig>) => TInput;\n//#endregion\n//#region src/utils.d.ts\n/**\n * Represents any valid JSON value.\n */\ntype Json = string | number | boolean | null | Json[] | {\n [key: string]: Json;\n};\n//#endregion\n//#region src/bindings.d.ts\n/** Options that control a binding during local development. */\ninterface BindingDevOptions {\n /** Whether the binding should connect to the remote resource. */\n remote?: boolean;\n}\ninterface AgentMemoryBindingOptions {\n /** The user-chosen namespace name. Must exist in Cloudflare at deploy time. */\n namespace: string;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * Agent Memory namespace binding. Each binding is scoped to a namespace and\n * allows agents to persist and recall memory.\n */\ninterface AgentMemoryBinding extends AgentMemoryBindingOptions {\n type: \"agent-memory\";\n}\ninterface AiBindingOptions {\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * Binding to the Workers AI project.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#workers-ai\n */\ninterface AiBinding extends AiBindingOptions {\n type: \"ai\";\n}\n/**\n * Binding to the Workers AI project.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#workers-ai\n */\ninterface TypedAiBinding<TAiModelList extends AiModelListType = AiModels> extends AiBinding {\n /** @internal Carries type parameters for inference */\n __typeParams: [TAiModelList];\n}\ninterface AiSearchBindingOptions {\n /** The user-chosen instance name. Must exist in Cloudflare at deploy time. */\n name: string;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * AI Search instance binding. Each binding is bound directly to a single\n * pre-existing instance within the \"default\" namespace.\n */\ninterface AiSearchBinding extends AiSearchBindingOptions {\n type: \"ai-search\";\n}\ninterface AiSearchNamespaceBindingOptions {\n /** The user-chosen namespace name. Must exist in Cloudflare at deploy time. */\n namespace: string;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * AI Search namespace binding. Each binding is scoped to a namespace and\n * allows dynamic instance CRUD within it.\n */\ninterface AiSearchNamespaceBinding extends AiSearchNamespaceBindingOptions {\n type: \"ai-search-namespace\";\n}\ninterface AnalyticsEngineDatasetBindingOptions {\n /** The name of this dataset to write to. */\n name?: string;\n}\n/**\n * Binding to an Analytics Engine dataset.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#analytics-engine-datasets\n */\ninterface AnalyticsEngineDatasetBinding extends AnalyticsEngineDatasetBindingOptions {\n type: \"analytics-engine-dataset\";\n}\ninterface ArtifactsBindingOptions {\n /** The namespace to use. */\n namespace: string;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * Binding to an Artifacts instance. Artifacts provides git-compatible file\n * storage on Cloudflare Workers.\n */\ninterface ArtifactsBinding extends ArtifactsBindingOptions {\n type: \"artifacts\";\n}\n/**\n * Binding to the Worker's static assets.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#assets\n */\ninterface AssetsBinding {\n type: \"assets\";\n}\ninterface BrowserBindingOptions {\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * Binding to a headless browser usable from the Worker.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#browser-rendering\n */\ninterface BrowserBinding extends BrowserBindingOptions {\n type: \"browser\";\n}\ninterface AnalyticsSQLBindingOptions {\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/** An Analytics SQL binding. */\ninterface AnalyticsSQLBinding$1 extends AnalyticsSQLBindingOptions {\n type: \"analytics\";\n}\ninterface D1BindingOptions {\n /** The UUID of this D1 database (not required). */\n id?: string;\n /** The name of this D1 database. */\n name?: string;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * Binding to a D1 database.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#d1-databases\n */\ninterface D1Binding extends D1BindingOptions {\n type: \"d1\";\n}\ninterface DispatchNamespaceBindingOptions {\n /** The namespace to bind to. */\n namespace?: string;\n /** Details about the outbound Worker which will handle outbound requests from your namespace. */\n outbound?: {\n /** Name of the Worker handling the outbound requests. */\n worker: string;\n /** (Optional) List of parameter names, for sending context from your dispatch Worker to the outbound handler. */\n parameters?: string[];\n };\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * Binding to a Workers for Platforms dispatch namespace.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#dispatch-namespace-bindings-workers-for-platforms\n */\ninterface DispatchNamespaceBinding extends DispatchNamespaceBindingOptions {\n type: \"dispatch-namespace\";\n}\ntype ReferencedWorkerConfig<TWorker$1 extends WorkerReference> = TWorker$1 extends string ? never : UnwrapConfig<TWorker$1>;\ntype DurableObjectExportName<TWorker$1 extends WorkerReference> = TWorker$1 extends string ? string : InferDurableNamespaces<ReferencedWorkerConfig<TWorker$1>>;\ntype WorkerEntrypointExportName<TWorker$1 extends WorkerReference> = TWorker$1 extends string ? string : InferWorkerEntrypointExports<ReferencedWorkerConfig<TWorker$1>>;\ntype WorkflowExportName<TWorker$1 extends WorkerReference> = TWorker$1 extends string ? string : InferExportsByType<ReferencedWorkerConfig<TWorker$1>, \"workflow\">;\ninterface DurableObjectBindingOptions<TWorker$1 extends WorkerReference = WorkerReference, TExportName$1 extends DurableObjectExportName<TWorker$1> = DurableObjectExportName<TWorker$1>> {\n /** The name or config of the Worker that defines the Durable Object class. */\n worker: TWorker$1;\n /** The exported class name of the Durable Object. */\n exportName: TExportName$1;\n}\n/**\n * Binding to a Durable Object class. `worker` is the name or config of the\n * Worker that defines the class; `exportName` is the exported class name.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#durable-objects\n */\ninterface DurableObjectBinding<TWorker$1 extends WorkerReference = WorkerReference, TExportName$1 extends DurableObjectExportName<TWorker$1> = DurableObjectExportName<TWorker$1>> extends DurableObjectBindingOptions<TWorker$1, TExportName$1> {\n type: \"durable-object\";\n}\ninterface FlagshipBindingOptions {\n /** The Flagship app ID to bind to. */\n id?: string;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/** Binding to a Flagship feature-flag service. */\ninterface FlagshipBinding extends FlagshipBindingOptions {\n type: \"flagship\";\n}\ninterface HyperdriveBindingOptions {\n /** The ID of the Hyperdrive configuration. */\n id: string;\n /** Options that only apply during local development. */\n dev?: {\n /** The database connection string used during local development. */\n connectionString?: string;\n };\n}\n/**\n * Binding to a Hyperdrive configuration.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#hyperdrive\n */\ninterface HyperdriveBinding extends HyperdriveBindingOptions {\n type: \"hyperdrive\";\n}\ninterface ImagesBindingOptions {\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * Binding to Cloudflare Images.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#images\n */\ninterface ImagesBinding$1 extends ImagesBindingOptions {\n type: \"images\";\n}\n/**\n * Inline JSON value made available to the Worker on `env` under the\n * binding name.\n */\ninterface JsonBinding<T$1 extends Json = Json> {\n type: \"json\";\n /** The JSON value made available to the Worker. */\n value: T$1;\n}\ninterface KvBindingOptions {\n /** The ID of the KV namespace. */\n id?: string;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * Binding to a Workers KV namespace.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#kv-namespaces\n */\ninterface KvBinding extends KvBindingOptions {\n type: \"kv\";\n}\n/**\n * Binding to a Workers KV namespace.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#kv-namespaces\n */\ninterface TypedKvBinding<TKey extends string = string> extends KvBinding {\n /** @internal Carries type parameters for inference */\n __typeParams: [TKey];\n}\ninterface LogfwdrBindingOptions {\n /** The destination for this logged message. */\n destination: string;\n}\n/** Binding for forwarding logs to logfwdr. */\ninterface LogfwdrBinding extends LogfwdrBindingOptions {\n type: \"logfwdr\";\n}\ninterface MediaBindingOptions {\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/** Binding to Cloudflare Media Transformations. */\ninterface MediaBinding$1 extends MediaBindingOptions {\n type: \"media\";\n}\ninterface MtlsCertificateBindingOptions {\n /** The UUID of the uploaded mTLS certificate. */\n id: string;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * Binding to an uploaded mTLS certificate.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#mtls-certificates\n */\ninterface MtlsCertificateBinding extends MtlsCertificateBindingOptions {\n type: \"mtls-certificate\";\n}\ninterface PipelineBindingOptions {\n /** Name of the Pipeline to bind. */\n name: string;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\ninterface K2BindingOptions {\n /** The ID of the K2 stream. */\n stream: string;\n /** Always uses the real stream in development. Set remote to true to suppress the usage warning; false is unsupported. */\n dev?: BindingDevOptions;\n}\n/** A producer binding to a K2 stream created using the Dashboard or API. */\ninterface K2Binding extends K2BindingOptions {\n type: \"k2\";\n}\n/** An opaque K2 record with optional application headers. */\ninterface K2Record<T$1 extends ArrayBuffer | Uint8Array> {\n content: T$1;\n headers?: Record<string, string>;\n}\n/** A complete-batch append outcome. An unsuccessful append may have committed. */\ntype K2ProduceResult = {\n success: true;\n} | {\n success: false;\n error: {\n code: number;\n message: string;\n retryable: boolean;\n };\n};\n/** The K2 producer RPC interface. Batches use one byte representation. */\ninterface K2Producer {\n /**\n * Atomically appends a batch of opaque records to the stream.\n * @param records - A batch containing either all ArrayBuffers or all Uint8Arrays.\n * @returns The append outcome; retry only when explicitly marked retryable.\n * @throws RPC transport failures may reject with an unknown append outcome.\n */\n send(records: K2Record<ArrayBuffer>[] | K2Record<Uint8Array>[]): Promise<K2ProduceResult>;\n}\n/** Binding to a Cloudflare Pipeline. */\ninterface PipelineBinding extends PipelineBindingOptions {\n type: \"pipeline\";\n}\n/** Binding to a Cloudflare Pipeline. */\ninterface TypedPipelineBinding<TRecord extends PipelineRecord = PipelineRecord> extends PipelineBinding {\n /** @internal Carries type parameters for inference */\n __typeParams: [TRecord];\n}\ninterface QueueBindingOptions {\n /** The name of this Queue. */\n name?: string;\n /** The number of seconds to wait before delivering a message. */\n deliveryDelay?: number;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * Producer binding to a Cloudflare Queue.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#queues\n */\ninterface QueueBinding extends QueueBindingOptions {\n type: \"queue\";\n}\n/**\n * Producer binding to a Cloudflare Queue.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#queues\n */\ninterface TypedQueueBinding<TBody = unknown> extends QueueBinding {\n /** @internal Carries type parameters for inference */\n __typeParams: [TBody];\n}\ninterface R2BindingOptions {\n /** The name of this R2 bucket at the edge. */\n name?: string;\n /** The jurisdiction that the bucket exists in. Default if not present. */\n jurisdiction?: string;\n /** Settings that only apply to local development. */\n dev?: BindingDevOptions & {\n /** EXPERIMENTAL: credentials for the local S3-compatible endpoint. */\n experimentalS3Credentials?: {\n accessKeyId: string;\n secretAccessKey: string;\n };\n };\n}\n/**\n * Binding to an R2 bucket.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#r2-buckets\n */\ninterface R2Binding extends R2BindingOptions {\n type: \"r2\";\n}\ninterface RateLimitBindingOptions {\n /** The namespace ID for this rate limiter. */\n namespace: string;\n /** Simple rate limiting configuration. */\n simple: {\n /** The maximum number of requests allowed in the time period. */\n limit: number;\n /** The time period in seconds (10 for ten seconds, 60 for one minute). */\n period: 10 | 60;\n };\n}\n/** Binding to a rate limiter. */\ninterface RateLimitBinding extends RateLimitBindingOptions {\n type: \"rate-limit\";\n}\n/**\n * Declares a secret that is required by your Worker, exposed on `env` under\n * the binding name.\n *\n * When defined, this binding:\n * - Replaces .dev.vars/.env/process.env inference for type generation\n * - Enables local dev validation with warnings for missing secrets\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#secrets-configuration-property\n */\ninterface SecretBinding {\n type: \"secret\";\n}\ninterface SecretsStoreSecretBindingOptions {\n /** ID of the secret store. */\n storeId: string;\n /** Name of the secret. */\n secretName: string;\n}\n/** Binding to a Secrets Store secret. */\ninterface SecretsStoreSecretBinding extends SecretsStoreSecretBindingOptions {\n type: \"secrets-store-secret\";\n}\ntype SendEmailDestinationOptions = {\n /** If this binding should be restricted to a specific verified address. */\n destinationAddress: string;\n allowedDestinationAddresses?: never;\n} | {\n destinationAddress?: never;\n /** If this binding should be restricted to a set of verified addresses. */\n allowedDestinationAddresses: string[];\n} | {\n destinationAddress?: never;\n allowedDestinationAddresses?: never;\n};\ntype SendEmailBindingOptions = SendEmailDestinationOptions & {\n /** If this binding should be restricted to a set of sender addresses. */\n allowedSenderAddresses?: string[];\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n};\n/**\n * Binding for sending email from inside the Worker.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#email-bindings\n */\ntype SendEmailBinding = SendEmailBindingOptions & {\n type: \"send-email\";\n};\ninterface StreamBindingOptions {\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/** Binding to Cloudflare Stream. */\ninterface StreamBinding$1 extends StreamBindingOptions {\n type: \"stream\";\n}\n/**\n * Inline string value made available to the Worker on `env` under the\n * binding name.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables\n */\ninterface TextBinding<T$1 extends string = string> {\n type: \"text\";\n /** The string value made available to the Worker. */\n value: T$1;\n}\ninterface UnsafeBindingOptions {\n /** Local-dev plugin configuration for this unsafe binding. */\n dev?: {\n /** The plugin package that provides the binding's local-dev implementation. */\n plugin: {\n package: string;\n name: string;\n };\n /** Plugin-specific options. */\n options?: Record<string, unknown>;\n };\n [key: string]: unknown;\n}\n/**\n * Escape-hatch binding for runtime features that aren't directly supported\n * by this configuration. Included in the Worker's upload metadata without\n * changes.\n */\ninterface UnsafeBinding extends UnsafeBindingOptions {\n type: `unsafe:${string}`;\n}\ninterface VectorizeBindingOptions {\n /** The name of the Vectorize index. */\n name: string;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * Binding to a Vectorize index.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#vectorize-indexes\n */\ninterface VectorizeBinding extends VectorizeBindingOptions {\n type: \"vectorize\";\n}\n/** Binding to the Worker version's metadata. */\ninterface VersionMetadataBinding {\n type: \"version-metadata\";\n}\ntype VpcNetworkBindingOptions = {\n /** The tunnel ID of the Cloudflare Tunnel to route traffic through. Mutually exclusive with `networkId`. */\n tunnelId: string;\n networkId?: never;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n} | {\n tunnelId?: never;\n /** The network ID to route traffic through. Mutually exclusive with `tunnelId`. */\n networkId: string;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n};\n/** Binding to a VPC network. */\ntype VpcNetworkBinding = VpcNetworkBindingOptions & {\n type: \"vpc-network\";\n};\ninterface VpcServiceBindingOptions {\n /** The service ID of the VPC connectivity service. */\n id: string;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/** Binding to a VPC service. */\ninterface VpcServiceBinding extends VpcServiceBindingOptions {\n type: \"vpc-service\";\n}\ninterface WorkerBindingOptions<TWorker$1 extends WorkerReference = WorkerReference, TExportName$1 extends WorkerEntrypointExportName<TWorker$1> | undefined = WorkerEntrypointExportName<TWorker$1> | undefined> {\n /** The name or config of the bound Worker. */\n worker: TWorker$1;\n /** The named export to bind to (defaults to the default export). */\n exportName?: TExportName$1;\n /** Optional properties that will be made available to the service via `ctx.props`. */\n props?: Record<string, unknown>;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * Service binding (Worker-to-Worker). `worker` is the name or config of the\n * bound Worker; `exportName` selects a named `WorkerEntrypoint` export\n * (defaults to the default export).\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings\n */\ninterface WorkerBinding<TWorker$1 extends WorkerReference = WorkerReference, TExportName$1 extends WorkerEntrypointExportName<TWorker$1> | undefined = WorkerEntrypointExportName<TWorker$1> | undefined> extends WorkerBindingOptions<TWorker$1, TExportName$1> {\n type: \"worker\";\n}\n/** Binding to a Worker Loader. */\ninterface WorkerLoaderBinding {\n type: \"worker-loader\";\n}\ninterface WorkflowBindingOptions<TWorker$1 extends WorkerReference = WorkerReference, TExportName$1 extends WorkflowExportName<TWorker$1> = WorkflowExportName<TWorker$1>> {\n /** The name of the Workflow. */\n name: string;\n /** The name or config of the Worker that defines the Workflow. */\n worker: TWorker$1;\n /** The exported class name of the Workflow. */\n exportName: TExportName$1;\n}\n/**\n * Binding to a Workflow. `name` identifies the Workflow, `worker` is the name\n * or config of the Worker that defines it, and `exportName` is the exported\n * `WorkflowEntrypoint` class name.\n */\ninterface WorkflowBinding<TWorker$1 extends WorkerReference = WorkerReference, TExportName$1 extends WorkflowExportName<TWorker$1> = WorkflowExportName<TWorker$1>> extends WorkflowBindingOptions<TWorker$1, TExportName$1> {\n type: \"workflow\";\n}\ninterface Bindings {\n /**\n * Agent Memory namespace binding. Each binding is scoped to a namespace and\n * allows agents to persist and recall memory.\n */\n agentMemory(options: AgentMemoryBindingOptions): AgentMemoryBinding;\n /**\n * Binding to the Workers AI project.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#workers-ai\n */\n ai<TAiModelList extends AiModelListType = AiModels>(options?: AiBindingOptions): TypedAiBinding<TAiModelList>;\n /**\n * AI Search instance binding. Each binding is bound directly to a single\n * pre-existing instance within the \"default\" namespace.\n */\n aiSearch(options: AiSearchBindingOptions): AiSearchBinding;\n /**\n * AI Search namespace binding. Each binding is scoped to a namespace and\n * allows dynamic instance CRUD within it.\n */\n aiSearchNamespace(options: AiSearchNamespaceBindingOptions): AiSearchNamespaceBinding;\n /**\n * Binding to an Analytics Engine dataset.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#analytics-engine-datasets\n */\n analyticsEngineDataset(options?: AnalyticsEngineDatasetBindingOptions): AnalyticsEngineDatasetBinding;\n /**\n * Binding to an Artifacts instance. Artifacts provides git-compatible file\n * storage on Cloudflare Workers.\n */\n artifacts(options: ArtifactsBindingOptions): ArtifactsBinding;\n /**\n * Binding to the Worker's static assets.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#assets\n */\n assets(): AssetsBinding;\n /**\n * Binding to a headless browser usable from the Worker.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#browser-rendering\n */\n browser(options?: BrowserBindingOptions): BrowserBinding;\n /** An Analytics SQL binding. */\n analyticsSQL(options?: AnalyticsSQLBindingOptions): AnalyticsSQLBinding$1;\n /**\n * Binding to a D1 database.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#d1-databases\n */\n d1(options?: D1BindingOptions): D1Binding;\n /**\n * Binding to a Workers for Platforms dispatch namespace.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#dispatch-namespace-bindings-workers-for-platforms\n */\n dispatchNamespace(options?: DispatchNamespaceBindingOptions): DispatchNamespaceBinding;\n /**\n * Binding to a Durable Object class. `worker` is the name or config of the\n * Worker that defines the class; `exportName` is the exported class name.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#durable-objects\n */\n durableObject<TWorker$1 extends WorkerReference, TExportName$1 extends DurableObjectExportName<TWorker$1>>(options: DurableObjectBindingOptions<TWorker$1, TExportName$1>): DurableObjectBinding<TWorker$1, TExportName$1>;\n /** Binding to a Flagship feature-flag service. */\n flagship(options?: FlagshipBindingOptions): FlagshipBinding;\n /**\n * Binding to a Hyperdrive configuration.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#hyperdrive\n */\n hyperdrive(options: HyperdriveBindingOptions): HyperdriveBinding;\n /**\n * Binding to Cloudflare Images.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#images\n */\n images(options?: ImagesBindingOptions): ImagesBinding$1;\n /**\n * Inline JSON value made available to the Worker on `env` under the\n * binding name.\n */\n json<T$1 extends Json>(value: T$1): JsonBinding<T$1>;\n /**\n * Binding to a Workers KV namespace.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#kv-namespaces\n */\n kv<TKey extends string = string>(options?: KvBindingOptions): TypedKvBinding<TKey>;\n /** Binding for forwarding logs to logfwdr. */\n logfwdr(options: LogfwdrBindingOptions): LogfwdrBinding;\n /** Binding to Cloudflare Media Transformations. */\n media(options?: MediaBindingOptions): MediaBinding$1;\n /**\n * Binding to an uploaded mTLS certificate.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#mtls-certificates\n */\n mtlsCertificate(options: MtlsCertificateBindingOptions): MtlsCertificateBinding;\n /** Binding to a Cloudflare Pipeline. */\n pipeline<TRecord extends PipelineRecord = PipelineRecord>(options: PipelineBindingOptions): TypedPipelineBinding<TRecord>;\n /** A producer binding to a K2 stream created using the Dashboard or API. */\n k2(options: K2BindingOptions): K2Binding;\n /**\n * Producer binding to a Cloudflare Queue.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#queues\n */\n queue<TBody = unknown>(options?: QueueBindingOptions): TypedQueueBinding<TBody>;\n /**\n * Binding to an R2 bucket.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#r2-buckets\n */\n r2(options?: R2BindingOptions): R2Binding;\n /** Binding to a rate limiter. */\n rateLimit(options: RateLimitBindingOptions): RateLimitBinding;\n /**\n * Declares a secret that is required by your Worker, exposed on `env` under\n * the binding name.\n *\n * When defined, this binding:\n * - Replaces .dev.vars/.env/process.env inference for type generation\n * - Enables local dev validation with warnings for missing secrets\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#secrets-configuration-property\n */\n secret(): SecretBinding;\n /** Binding to a Secrets Store secret. */\n secretsStoreSecret(options: SecretsStoreSecretBindingOptions): SecretsStoreSecretBinding;\n /**\n * Binding for sending email from inside the Worker.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#email-bindings\n */\n sendEmail(options?: SendEmailBindingOptions): SendEmailBinding;\n /** Binding to Cloudflare Stream. */\n stream(options?: StreamBindingOptions): StreamBinding$1;\n /**\n * Inline string value made available to the Worker on `env` under the\n * binding name.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables\n */\n text<T$1 extends string>(value: T$1): TextBinding<T$1>;\n /**\n * Binding to a Vectorize index.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#vectorize-indexes\n */\n vectorize(options: VectorizeBindingOptions): VectorizeBinding;\n /** Binding to the Worker version's metadata. */\n versionMetadata(): VersionMetadataBinding;\n /** Binding to a VPC network. */\n vpcNetwork(options: VpcNetworkBindingOptions): VpcNetworkBinding;\n /** Binding to a VPC service. */\n vpcService(options: VpcServiceBindingOptions): VpcServiceBinding;\n /**\n * Service binding (Worker-to-Worker). `worker` is the name or config of the\n * bound Worker; `exportName` selects a named `WorkerEntrypoint` export\n * (defaults to the default export).\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings\n */\n worker<TWorker$1 extends WorkerReference, TExportName$1 extends WorkerEntrypointExportName<TWorker$1> | undefined = undefined>(options: WorkerBindingOptions<TWorker$1, TExportName$1>): WorkerBinding<TWorker$1, NoInfer<TExportName$1>>;\n /** Binding to a Worker Loader. */\n workerLoader(): WorkerLoaderBinding;\n /**\n * Create a Workflow binding.\n * `worker` may be a Worker config reference or a Worker name.\n * `exportName` must be a valid `WorkflowEntrypoint` export for the given Worker.\n */\n workflow<TWorker$1 extends WorkerReference, TExportName$1 extends WorkflowExportName<TWorker$1>>(options: WorkflowBindingOptions<TWorker$1, TExportName$1>): WorkflowBinding<TWorker$1, NoInfer<TExportName$1>>;\n}\ndeclare const bindings: Bindings;\n//#endregion\nexport { defineConfig as $, RateLimitBinding as A, UnsafeBinding as B, KvBinding as C, WorkerEntrypointExport as Ct, PipelineBinding as D, exports as Dt, MtlsCertificateBinding as E, WorkflowExportOptions as Et, TextBinding as F, WorkerBinding as G, VersionMetadataBinding as H, TypedAiBinding as I, bindings as J, WorkerLoaderBinding as K, TypedKvBinding as L, SecretsStoreSecretBinding as M, SendEmailBinding as N, QueueBinding as O, StreamBinding$1 as P, WorkerReference as Q, TypedPipelineBinding as R, K2Record as S, Exports as St, MediaBinding$1 as T, WorkflowExport as Tt, VpcNetworkBinding as U, VectorizeBinding as V, VpcServiceBinding as W, ContainerDefinition as X, ConfigContext as Y, WorkerDefinition as Z, ImagesBinding$1 as _, DurableObjectCreatedExport as _t, AnalyticsEngineDatasetBinding as a, WorkerConfig as at, K2ProduceResult as b, DurableObjectRenamedExport as bt, AssetsBinding as c, FetchTrigger as ct, BrowserBinding as d, Triggers as dt, defineContainer as et, D1Binding as f, triggers as ft, HyperdriveBinding as g, UnwrapConfig as gt, FlagshipBinding as h, InferMainModule as ht, AiSearchNamespaceBinding as i, Settings as it, SecretBinding as j, R2Binding as k, BindingDevOptions as l, QueueConsumerTrigger as lt, DurableObjectBinding as m, InferEnv as mt, AiBinding as n, CloudflareConfig as nt, AnalyticsSQLBinding$1 as o, ConnectTrigger as ot, DispatchNamespaceBinding as p, InferDurableNamespaces as pt, WorkflowBinding as q, AiSearchBinding as r, ContainerConfig as rt, ArtifactsBinding as s, EmailTrigger as st, AgentMemoryBinding as t, defineWorker as tt, Bindings as u, ScheduledTrigger as ut, JsonBinding as v, DurableObjectDeletedExport as vt, LogfwdrBinding as w, WorkerEntrypointExportOptions as wt, K2Producer as x, DurableObjectTransferredExport as xt, K2Binding as y, DurableObjectExpectingTransferExport as yt, TypedQueueBinding as z };"],"mappings":";;AAKA;;;;AAsBe,UAtBE,cAAA,CAsBF;EACF,QAAA,CAAA,EAAA,OAAA;EACA,MAAA,CAAA,EAAA,OAAA;EAAM,SAAA,CAAA,EAAA,OAAA;UAnBV;WACC;;EC8iCA4K,iBAAa,CAAA,EAAA,OAAA;;UD1iCd;;IEZG,KAAA,EAAA,MAAA,EAAA;IACT,WAAA,CAAA,EAAA,OAAA;EACQ,CAAA,CAAA;EAAR,WAAA,CAAA,EFsBY,MEtBZ,CAAA,MAAA,EAAA,MAAA,CAAA;EACO,SAAA,CAAA,EFsBG,MEtBH,CAAA,MAAA,EAAA,MAAA,CAAA;EAAkB,SAAA,CAAA,EFuBf,MEvBe,CAAA,MAAA,EAAA,MAAA,CAAA;EAAyB,QAAA,CAAA,EAAA,MAAA;EAAR,UAAA,CAAA,EAAA,MAAA;EAAO,WAAA,CAAA,EAAA,MAAA;EAEpC,aAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UDijCNA,aAAAA;;;;;;;;;;;;;;;;;;AD/iCD,KEPG,oBAAA,GACT,cFMM,GELN,OFKM,CELE,cFKF,CAAA,GAAA,CAAA,CAAA,GAAA,EEJC,aFID,EAAA,GEJmB,cFInB,GEJoC,OFIpC,CEJ4C,cFI5C,CAAA,CAAA;AACC,iBEHM,oBAAA,CFGN,MAAA,EEFD,oBFEC,CAAA,EEDP,oBFCO"}
1
+ {"version":3,"file":"experimental-config.d.mts","names":["Pipeline","PipelineRecord","DurableObjectStorageOptions","TContainer","ContainerDefinition","DurableObjectCreatedExportOptions","DurableObjectDeletedExportOptions","DurableObjectRenamedExportOptions","DurableObjectTransferredExportOptions","DurableObjectExpectingTransferExportOptions","DurableObjectCreatedExport","DurableObjectDeletedExport","DurableObjectRenamedExport","DurableObjectTransferredExport","DurableObjectExpectingTransferExport","DurableObjectExportOptions","DurableObjectExports","WorkerEntrypointExportOptions","WorkerEntrypointExport","WorkflowExportOptions","WorkflowExport","Exports","exports","WorkerModule","Record","DefaultModule","ExportedHandler","Rpc","WorkerEntrypointBranded","Constructor","DurableObjectBranded","WorkflowEntrypointBranded","TInstance","ExtractInstance","T$1","InstanceType","BindingTypeMap","TBinding","K2Producer","TypedAiBinding","T","Ai","JsonBinding","TypedKvBinding","KVNamespace","TypedPipelineBinding","TypedQueueBinding","Queue","TextBinding","AgentMemoryNamespace","AiSearchInstance","AiSearchNamespace","AnalyticsEngineDataset","AnalyticsSQLBinding","Artifacts","Fetcher","BrowserRun","D1Database","DispatchNamespace","DurableObjectNamespace","Flagship","Hyperdrive","ImagesBinding","MediaBinding","RateLimit","R2Bucket","SecretsStoreSecret","SendEmail","StreamBinding","VectorizeIndex","WorkerVersionMetadata","WorkerLoader","Workflow","SelectedWorkerExportName","TExportName","InferBindingType","WorkerReference","TWorker","UnwrapConfig","InferMainModule","TModule","TWorkflow","P","K","InferExportsByType","TUnwrappedConfig","TExportType","TExports","InferWorkerEntrypointExports","Exclude","TConfig","TReturn","Promise","TCompletion","ConfigEnv","TEnv","KeysOfUnion","UnionProperty","K$1","PropertyKey","MergeEnv","TEnv$1","TRequiredKey","TOptionalKey","InferEnv","InferDurableNamespaces","FetchTriggerOptions","FetchTrigger","QueueConsumerTriggerOptions","QueueConsumerTrigger","ScheduledTriggerOptions","ScheduledTrigger","EmailTriggerOptions","EmailTrigger","ConnectTriggerOptionsBase","TcpConnectTriggerOptions","UdpConnectTriggerOptions","ConnectTriggerOptions","ConnectTrigger","Triggers","triggers","Settings","CloudflareConfig","WorkerConfig","ConfigInput","ContainerConfig","Binding","AgentMemoryBinding","AiBinding","AiSearchBinding","AiSearchNamespaceBinding","AnalyticsEngineDatasetBinding","AnalyticsSQLBinding$1","ArtifactsBinding","AssetsBinding","BrowserBinding","D1Binding","DispatchNamespaceBinding","DurableObjectBinding","FlagshipBinding","HyperdriveBinding","ImagesBinding$1","K2Binding","KvBinding","LogfwdrBinding","MediaBinding$1","MtlsCertificateBinding","PipelineBinding","QueueBinding","R2Binding","RateLimitBinding","SecretBinding","SecretsStoreSecretBinding","SendEmailBinding","StreamBinding$1","UnsafeBinding","VectorizeBinding","VersionMetadataBinding","VpcNetworkBinding","VpcServiceBinding","WorkerBinding","WorkerLoaderBinding","WorkflowBinding","Trigger","Export","ContainerImage","ContainerObservabilityConfig","StandardContainerObservabilityConfig","BaseContainerConfig","Array","StandardContainerConfig","DurableObjectContainerConfig","ConfigContext","ContextualProperties","TInput","TElement","ContextualConfig","TValue","TResult","WorkerDefinition","defineConfig","defineContainer","defineWorker","Json","BindingDevOptions","AgentMemoryBindingOptions","AiBindingOptions","TAiModelList","AiModelListType","AiModels","AiSearchBindingOptions","AiSearchNamespaceBindingOptions","AnalyticsEngineDatasetBindingOptions","ArtifactsBindingOptions","BrowserBindingOptions","AnalyticsSQLBindingOptions","D1BindingOptions","DispatchNamespaceBindingOptions","ReferencedWorkerConfig","TWorker$1","DurableObjectExportName","WorkerEntrypointExportName","WorkflowExportName","DurableObjectBindingOptions","TExportName$1","FlagshipBindingOptions","HyperdriveBindingOptions","ImagesBindingOptions","KvBindingOptions","TKey","LogfwdrBindingOptions","MediaBindingOptions","MtlsCertificateBindingOptions","PipelineBindingOptions","K2BindingOptions","K2Record","ArrayBuffer","Uint8Array","K2ProduceResult","TRecord","QueueBindingOptions","TBody","R2BindingOptions","RateLimitBindingOptions","SecretsStoreSecretBindingOptions","SendEmailDestinationOptions","SendEmailBindingOptions","StreamBindingOptions","UnsafeBindingOptions","VectorizeBindingOptions","VpcNetworkBindingOptions","VpcServiceBindingOptions","WorkerBindingOptions","WorkflowBindingOptions","Bindings","NoInfer","bindings","$","A","B","C","Ct","D","Dt","E","Et","F","G","H","I","J","L","M","N","O","Q","R","S","St","Tt","U","V","W","X","Y","Z","_","_t","a","at","b","bt","c","ct","d","dt","et","f","ft","g","gt","h","ht","i","it","j","k","l","lt","m","mt","n","nt","o","ot","p","pt","q","r","rt","s","st","t","tt","u","ut","v","vt","w","wt","x","xt","y","yt","z"],"sources":["../src/experimental-config/types.ts","../../config/dist/public-Cf9CrRAi.d.mts","../src/experimental-config/wrangler-definition.ts"],"sourcesContent":["import { Pipeline, PipelineRecord } from \"cloudflare:pipelines\";\n\n//#region src/exports.d.ts\n\n/**\n * Storage backend for the Durable Object.\n *\n * Containers are only supported on the SQLite storage engine, so `container` is\n * only offered alongside `storage: \"sqlite\"`.\n */\ntype DurableObjectStorageOptions<TContainer extends ContainerDefinition | undefined = ContainerDefinition | undefined> = {\n /**\n * Selects the SQLite-backed storage engine (recommended for new\n * classes).\n */\n storage: \"sqlite\";\n /**\n * Attach a Container application to this Durable Object by config reference.\n */\n container?: TContainer;\n} | {\n /** Selects the legacy key-value storage engine. */\n storage: \"legacy-kv\";\n};\n/**\n * Declares a provisioned Durable Object class exported from this Worker.\n *\n * For more information about Durable Objects, see the documentation at\n * https://developers.cloudflare.com/workers/learning/using-durable-objects\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#durable-objects\n */\ntype DurableObjectCreatedExportOptions<TContainer extends ContainerDefinition | undefined = ContainerDefinition | undefined> = {\n state?: \"created\";\n} & DurableObjectStorageOptions<TContainer>;\n/**\n * Retire a provisioned Durable Object namespace whose class has\n * been removed from code.\n *\n * During deploy, the class must not be exported in the uploaded code, and no\n * other Worker may hold a `durableObject` binding to the namespace.\n */\ninterface DurableObjectDeletedExportOptions {\n state: \"deleted\";\n}\n/**\n * Rename a provisioned Durable Object namespace's class. The\n * `renamedTo` value must also appear as a live (`state: \"created\"`)\n * `durableObject` entry in the same `exports` map.\n */\ninterface DurableObjectRenamedExportOptions {\n state: \"renamed\";\n /**\n * The destination class name. Must be a valid JavaScript identifier and\n * must appear as a live (`state: \"created\"`) `durableObject` entry in the\n * same `exports` map.\n */\n renamedTo: string;\n}\n/**\n * Transfer ownership of a Durable Object namespace to another Worker in the same account.\n * The target Worker must first deploy an `expectingTransfer` entry naming this Worker via `transferFrom`.\n */\ninterface DurableObjectTransferredExportOptions {\n state: \"transferred\";\n /**\n * The destination Worker. Must reference a Worker in the same account.\n */\n transferredTo: string;\n}\n/**\n * Prepare to receive cross-Worker Durable Object transfer.\n * Once the source Worker's `transferred` export is deployed, this entry becomes a normal live `durable-object` export.\n */\ntype DurableObjectExpectingTransferExportOptions<TContainer extends ContainerDefinition | undefined = ContainerDefinition | undefined> = {\n state: \"expecting-transfer\";\n /**\n * The source Worker for the two-phase cross-Worker transfer.\n */\n transferFrom: string;\n} & DurableObjectStorageOptions<TContainer>;\ntype DurableObjectCreatedExport<TContainer extends ContainerDefinition | undefined = ContainerDefinition | undefined> = DurableObjectCreatedExportOptions<TContainer> & {\n type: \"durable-object\";\n};\ninterface DurableObjectDeletedExport extends DurableObjectDeletedExportOptions {\n type: \"durable-object\";\n}\ninterface DurableObjectRenamedExport extends DurableObjectRenamedExportOptions {\n type: \"durable-object\";\n}\ninterface DurableObjectTransferredExport extends DurableObjectTransferredExportOptions {\n type: \"durable-object\";\n}\ntype DurableObjectExpectingTransferExport<TContainer extends ContainerDefinition | undefined = ContainerDefinition | undefined> = DurableObjectExpectingTransferExportOptions<TContainer> & {\n type: \"durable-object\";\n};\ntype DurableObjectExportOptions = DurableObjectCreatedExportOptions | DurableObjectDeletedExportOptions | DurableObjectRenamedExportOptions | DurableObjectTransferredExportOptions | DurableObjectExpectingTransferExportOptions;\ntype DurableObjectExports = DurableObjectCreatedExport | DurableObjectDeletedExport | DurableObjectRenamedExport | DurableObjectTransferredExport | DurableObjectExpectingTransferExport;\ninterface WorkerEntrypointExportOptions {\n cache?: {\n /** Whether cache is enabled for this entrypoint. */\n enabled: boolean;\n };\n}\ninterface WorkerEntrypointExport extends WorkerEntrypointExportOptions {\n type: \"worker\";\n}\ninterface WorkflowExportOptions {\n /**\n * The name of the Workflow. It identifies the Workflow's instances and must\n * be unique within the account.\n */\n name: string;\n limits?: {\n /** Maximum number of steps a single Workflow instance may run. */\n steps?: number;\n };\n concurrency?: {\n /** Maximum number of Workflow instances that can run concurrently. */\n limit?: number;\n };\n /** Cron schedule(s) that automatically trigger Workflow instances. */\n schedules?: string | string[];\n /**\n * Default retention for instances of this Workflow, applied when an instance\n * does not set its own retention. Accepts milliseconds or a duration string\n * such as `\"3 days\"`.\n */\n defaultRetention?: {\n /** How long to retain instances that completed successfully or were terminated. */\n successRetention?: number | string;\n /** How long to retain errored instances. */\n errorRetention?: number | string;\n };\n}\ninterface WorkflowExport extends WorkflowExportOptions {\n type: \"workflow\";\n}\n/**\n * Configuration for named exports declared by the Worker. Each entry's\n * key is the exported class name; the value configures the export.\n */\ninterface Exports {\n /**\n * Declares a Durable Object class defined by this Worker.\n *\n * For more information about Durable Objects, see the documentation at\n * https://developers.cloudflare.com/workers/learning/using-durable-objects\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#durable-objects\n */\n durableObject<TContainer extends ContainerDefinition | undefined = undefined>(options: DurableObjectCreatedExportOptions<TContainer>): DurableObjectCreatedExport<TContainer>;\n /**\n * Retire a provisioned Durable Object namespace whose class has been removed from code.\n */\n durableObject(options: DurableObjectDeletedExportOptions): DurableObjectDeletedExport;\n /**\n * Rename a provisioned Durable Object namespace's class.\n */\n durableObject(options: DurableObjectRenamedExportOptions): DurableObjectRenamedExport;\n /**\n * Transfer ownership of a Durable Object namespace to another Worker in the same account.\n */\n durableObject(options: DurableObjectTransferredExportOptions): DurableObjectTransferredExport;\n /**\n * Prepare to receive cross-Worker Durable Object transfer.\n * The source Worker must follow up with a deployment containing a `transferred` export to commit the transfer.\n */\n durableObject<TContainer extends ContainerDefinition | undefined = undefined>(options: DurableObjectExpectingTransferExportOptions<TContainer>): DurableObjectExpectingTransferExport<TContainer>;\n durableObject(options: DurableObjectExportOptions): DurableObjectExports;\n /** Declares a WorkerEntrypoint export defined by this Worker. */\n worker(options?: WorkerEntrypointExportOptions): WorkerEntrypointExport;\n /**\n * Declares a Workflow defined by this Worker. The export's key must name a\n * class that extends `WorkflowEntrypoint`.\n *\n * For more information about Workflows, see the documentation at\n * https://developers.cloudflare.com/workflows/\n */\n workflow(options: WorkflowExportOptions): WorkflowExport;\n}\n/**\n * Exports builder for configuring Worker exports.\n *\n * @example\n * ```typescript\n * import { defineConfig, defineContainer, defineWorker, exports } from \"@cloudflare/config\";\n *\n * const myContainer = defineContainer({\n * name: \"my-container\",\n * image: { dockerfile: \"./Dockerfile\" },\n * });\n *\n * const worker = defineWorker({\n * exports: {\n * MyDurableObject: exports.durableObject({ storage: \"sqlite\" }),\n * MyContainerDO: exports.durableObject({ storage: \"sqlite\", container: myContainer }),\n * OldClass: exports.durableObject({ state: \"deleted\" }),\n * OldName: exports.durableObject({ state: \"renamed\", renamedTo: \"NewName\" }),\n * Outgoing: exports.durableObject({ state: \"transferred\", transferredTo: \"target-worker\" }),\n * Incoming: exports.durableObject({ state: \"expecting-transfer\", storage: \"sqlite\", transferFrom: \"source-worker\" }),\n * MyWorkflow: exports.workflow({ name: \"my-workflow\", limits: { steps: 100 }, schedules: \"0 * * * *\" }),\n * },\n * });\n *\n * export default defineConfig({ worker, containers: [myContainer] });\n * ```\n */\ndeclare const exports: Exports;\n//#endregion\n//#region src/inference.d.ts\n/**\n * The Worker's entry module, imported with the `{ type: \"cf-worker\" }` import attribute\n * @example\n * ```ts\n * import * as entrypoint from \"./src\" with { type: \"cf-worker\" };\n * ```\n */\ntype WorkerModule = Record<string, any>;\n/**\n * Default module type representing an unknown Worker's exports.\n * - default export can be `ExportedHandler` or a `WorkerEntrypoint` class constructor\n * - named exports can be `WorkerEntrypoint`, `DurableObject`, or `WorkflowEntrypoint` class constructors\n */\ninterface DefaultModule {\n default?: ExportedHandler | Constructor<Rpc.WorkerEntrypointBranded>;\n [key: string]: ExportedHandler | Constructor<Rpc.WorkerEntrypointBranded> | Constructor<Rpc.DurableObjectBranded> | Constructor<Rpc.WorkflowEntrypointBranded> | undefined;\n}\n/**\n * Represents a class constructor that creates instances of TInstance.\n */\ntype Constructor<TInstance> = new (...args: any[]) => TInstance;\n/**\n * Extracts the instance type from a class constructor if it extends `TInstance`.\n */\ntype ExtractInstance<T$1, TInstance> = T$1 extends Constructor<TInstance> ? InstanceType<T$1> : never;\n/**\n * Mapping from binding type literals to Cloudflare runtime types.\n *\n * Entries fall into two groups:\n * - Parameterized bindings (ai, json, kv, pipeline, queue, text) refine their\n * runtime type from the binding instance via nominal matches against the\n * `Typed*Binding` / `JsonBinding` / `TextBinding` interfaces from\n * `./bindings`. When `TBinding` does not match, the entry falls back to the\n * unparameterized runtime type.\n * - Non-parameterized bindings map their type literal directly to a runtime\n * type and ignore `TBinding`.\n *\n * IMPORTANT: The right-hand-side identifiers in this map (e.g. `KVNamespace`,\n * `ImagesBinding`, `Fetcher`) must resolve to the ambient runtime types from\n * `@cloudflare/workers-types`, not to local config interfaces. Several local\n * binding interfaces in `./bindings.ts` (`ImagesBinding`, `MediaBinding`,\n * `StreamBinding`) share names with ambient globals — importing those local\n * types into this file silently shadows the globals and breaks `InferEnv`.\n * Only import the `Typed*Binding`, `JsonBinding`, and `TextBinding` interfaces\n * from `./bindings` (their names do not collide with ambient globals); never\n * widen the import to a wildcard or to the plain `*Binding` interfaces.\n */\ninterface BindingTypeMap<TBinding> {\n k2: K2Producer;\n ai: TBinding extends TypedAiBinding<infer T> ? Ai<T> : Ai;\n json: TBinding extends JsonBinding<infer T> ? T : never;\n kv: TBinding extends TypedKvBinding<infer T> ? KVNamespace<T> : KVNamespace;\n pipeline: TBinding extends TypedPipelineBinding<infer T> ? Pipeline<T> : Pipeline;\n queue: TBinding extends TypedQueueBinding<infer T> ? Queue<T> : Queue;\n text: TBinding extends TextBinding<infer T> ? T : never;\n \"agent-memory\": AgentMemoryNamespace;\n \"ai-search\": AiSearchInstance;\n \"ai-search-namespace\": AiSearchNamespace;\n \"analytics-engine-dataset\": AnalyticsEngineDataset;\n analytics: AnalyticsSQLBinding;\n artifacts: Artifacts;\n assets: Fetcher;\n browser: BrowserRun;\n d1: D1Database;\n \"dispatch-namespace\": DispatchNamespace;\n \"durable-object\": DurableObjectNamespace;\n flagship: Flagship;\n hyperdrive: Hyperdrive;\n images: ImagesBinding;\n logfwdr: any;\n media: MediaBinding;\n \"mtls-certificate\": Fetcher;\n \"rate-limit\": RateLimit;\n r2: R2Bucket;\n secret: string;\n \"secrets-store-secret\": SecretsStoreSecret;\n \"send-email\": SendEmail;\n stream: StreamBinding;\n vectorize: VectorizeIndex;\n \"version-metadata\": WorkerVersionMetadata;\n \"vpc-service\": Fetcher;\n \"vpc-network\": Fetcher;\n worker: Fetcher;\n \"worker-loader\": WorkerLoader;\n workflow: Workflow;\n}\ntype SelectedWorkerExportName<TBinding> = TBinding extends {\n exportName?: infer TExportName;\n} ? TExportName extends string ? TExportName : \"default\" : \"default\";\ntype InferBindingType<TBinding> = TBinding extends {\n type: \"worker\";\n worker: infer TWorker extends WorkerReference;\n} ? TWorker extends string ? Fetcher : InferMainModule<UnwrapConfig<TWorker>> extends infer TModule extends WorkerModule ? SelectedWorkerExportName<TBinding> extends infer TExportName ? TExportName extends keyof TModule ? TModule[TExportName] extends Constructor<any> ? Fetcher<ExtractInstance<TModule[TExportName], Rpc.WorkerEntrypointBranded>> : Fetcher : never : never : never : TBinding extends {\n type: \"durable-object\";\n worker: infer TWorker extends WorkerReference;\n exportName: infer TExportName extends string;\n} ? TWorker extends string ? DurableObjectNamespace : InferMainModule<UnwrapConfig<TWorker>> extends infer TModule extends WorkerModule ? TExportName extends keyof TModule ? DurableObjectNamespace<ExtractInstance<TModule[TExportName], Rpc.DurableObjectBranded>> : never : never : TBinding extends {\n type: \"workflow\";\n worker: infer TWorker extends WorkerReference;\n exportName: infer TExportName extends string;\n} ? TWorker extends string ? Workflow : InferMainModule<UnwrapConfig<TWorker>> extends infer TModule extends WorkerModule ? TExportName extends keyof TModule ? ExtractInstance<TModule[TExportName], Rpc.WorkflowEntrypointBranded> extends infer TWorkflow ? TWorkflow extends {\n run(event: {\n payload: infer P;\n }, step: any): any;\n} ? Workflow<P> : Workflow : Workflow : never : never : TBinding extends {\n type: `unsafe:${string}`;\n} ? any : TBinding extends {\n type: infer K extends keyof BindingTypeMap<TBinding>;\n} ? BindingTypeMap<TBinding>[K] : never;\n/**\n * Infer export names from a config's exports, optionally filtered by type.\n * When TExportType is `string` (default), returns all export names.\n * When TExportType is a specific literal like `\"durable-object\"` or `\"workflow\"`,\n * returns only exports of that type.\n */\ntype InferExportsByType<TUnwrappedConfig, TExportType extends string = string> = TUnwrappedConfig extends {\n exports: infer TExports extends Record<string, {\n type: string;\n }>;\n} ? { [K in keyof TExports]: TExports[K] extends {\n type: TExportType;\n} ? K & string : never }[keyof TExports] : never;\n/**\n * Infer `WorkerEntrypoint` export names from a config.\n * Returns named module exports that are not declared as type `\"durable-object\"` or `\"workflow\"` in `exports`.\n * Excludes `\"default\"` since `exportName` should only be provided for named exports.\n */\ntype InferWorkerEntrypointExports<TUnwrappedConfig> = Exclude<keyof InferMainModule<TUnwrappedConfig> & string, \"default\" | InferExportsByType<TUnwrappedConfig, \"durable-object\" | \"workflow\">>;\n/**\n * Unwrap function and promise types to get the underlying config.\n * Use this to normalize a config before passing it to other inference utilities.\n */\ntype UnwrapConfig<TConfig> = TConfig extends ((...args: any[]) => infer TReturn) ? UnwrapConfig<TReturn> : TConfig extends Promise<infer TCompletion> ? UnwrapConfig<TCompletion> : TConfig;\n/** Extract the authored binding map from each possible config branch. */\ntype ConfigEnv<TConfig> = TConfig extends {\n env: infer TEnv extends Record<string, any>;\n} ? TEnv : Record<never, never>;\n/** Collect every property name from a union of object types. */\ntype KeysOfUnion<T$1> = T$1 extends unknown ? keyof T$1 : never;\n/** Read a property distributively from every member of a union. */\ntype UnionProperty<T$1, K$1 extends PropertyKey> = T$1 extends unknown ? K$1 extends keyof T$1 ? T$1[K$1] : never : never;\n/** Merge binding maps, making bindings absent from some branches optional. */\ntype MergeEnv<TEnv$1, TRequiredKey extends PropertyKey = keyof TEnv$1, TOptionalKey extends PropertyKey = Exclude<KeysOfUnion<TEnv$1>, TRequiredKey>> = { [K in TRequiredKey]: InferBindingType<UnionProperty<TEnv$1, K>> } & { [K in TOptionalKey]?: InferBindingType<UnionProperty<TEnv$1, K>> };\n/**\n * Infer the `Env` interface type from a Worker config.\n *\n * Transforms a config object's `env` bindings into their\n * corresponding Cloudflare runtime types.\n *\n * @example\n * ```typescript\n * import { defineWorker, bindings } from \"@cloudflare/config\";\n * import type { InferEnv, UnwrapConfig } from \"@cloudflare/config\";\n *\n * const config = defineWorker({\n * env: {\n * MY_JSON: bindings.json({ id: string }),\n * MY_KV: bindings.kv(),\n * },\n * });\n *\n * type WorkerConfig = UnwrapConfig<typeof config>;\n * // Inferred as: { MY_JSON: { id: string }; MY_KV: KVNamespace }\n * export type Env = InferEnv<WorkerConfig>;\n * ```\n */\ntype InferEnv<TUnwrappedConfig> = MergeEnv<ConfigEnv<TUnwrappedConfig>>;\n/**\n * Infer the Durable Object namespace names from a Worker config's exports.\n * Returns a union of export names that declare a *live* Durable Object —\n * `type: \"durable-object\"` with `state` either omitted, `\"created\"`, or\n * `\"expecting-transfer\"`. Tombstone entries (`deleted`, `renamed`,\n * `transferred`) are excluded because they retire the namespace and a\n * binding to a tombstoned class would fail at deploy time.\n *\n * @example\n * ```typescript\n * import { defineWorker } from \"@cloudflare/config\";\n * import type { InferDurableNamespaces, UnwrapConfig } from \"@cloudflare/config\";\n *\n * const config = defineWorker({\n * exports: {\n * MyDurableObject: { type: \"durable-object\", storage: \"sqlite\" },\n * OldGone: { type: \"durable-object\", state: \"deleted\" },\n * },\n * });\n *\n * type WorkerConfig = UnwrapConfig<typeof config>;\n * // Inferred as: \"MyDurableObject\" (the deleted tombstone is excluded)\n * type DurableNamespaces = InferDurableNamespaces<WorkerConfig>;\n * ```\n */\ntype InferDurableNamespaces<TUnwrappedConfig> = TUnwrappedConfig extends {\n exports: infer TExports extends Record<string, {\n type: string;\n }>;\n} ? { [K in keyof TExports]: TExports[K] extends {\n type: \"durable-object\";\n} ? TExports[K] extends {\n state: \"deleted\" | \"renamed\" | \"transferred\";\n} ? never : K & string : never }[keyof TExports] : never;\n/**\n * Infer the main module type from a Worker config's entrypoint.\n * If entrypoint is a module namespace object, returns that type.\n * If entrypoint is a `string` or not present, returns `DefaultModule` as a fallback.\n */\ntype InferMainModule<TUnwrappedConfig> = TUnwrappedConfig extends {\n entrypoint: infer TModule extends WorkerModule;\n} ? TModule : DefaultModule;\n//#endregion\n//#region src/triggers.d.ts\ninterface FetchTriggerOptions {\n /**\n * A route that your Worker should be published to.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#types-of-routes\n */\n pattern: string;\n /**\n * The DNS zone the pattern is attached to. Required when the\n * pattern is ambiguous.\n */\n zone?: string;\n}\n/**\n * Fetch trigger — a route that your Worker should be published to.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#types-of-routes\n */\ninterface FetchTrigger extends FetchTriggerOptions {\n type: \"fetch\";\n}\ninterface QueueConsumerTriggerOptions {\n /** The name of the queue from which this consumer should consume. */\n name: string;\n /** The queue to send messages that failed to be consumed. */\n deadLetterQueue?: string;\n /** The maximum number of messages per batch. */\n maxBatchSize?: number;\n /** The maximum number of seconds to wait to fill a batch with messages. */\n maxBatchTimeout?: number;\n /**\n * The maximum number of concurrent consumer Worker invocations.\n * Leaving this unset will allow your consumer to scale to the\n * maximum concurrency needed to keep up with the message backlog.\n */\n maxConcurrency?: number | null;\n /** The maximum number of retries for each message. */\n maxRetries?: number;\n /** The number of seconds to wait before retrying a message. */\n retryDelay?: number;\n /** The number of milliseconds to wait for pulled messages to become visible again. */\n visibilityTimeoutMs?: number;\n}\n/**\n * Queue consumer trigger — invokes this Worker when messages arrive on the\n * named queue.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#queues\n */\ninterface QueueConsumerTrigger extends QueueConsumerTriggerOptions {\n type: \"queue\";\n}\ninterface ScheduledTriggerOptions {\n /**\n * A \"cron\" definition to trigger a Worker's \"scheduled\" function.\n *\n * Lets you call Workers periodically, much like a cron job.\n *\n * More details here https://developers.cloudflare.com/workers/platform/cron-triggers\n */\n schedule: string;\n}\n/**\n * Scheduled (cron) trigger — invokes this Worker on the given schedules.\n *\n * More details here https://developers.cloudflare.com/workers/platform/cron-triggers\n */\ninterface ScheduledTrigger extends ScheduledTriggerOptions {\n type: \"scheduled\";\n}\ninterface EmailTriggerOptions {\n /**\n * Inbound Email Routing addresses handled by this Worker.\n *\n * Each entry is a literal recipient address (e.g. `\"support@example.com\"`)\n * or a `*@domain` catch-all (e.g. `\"*@example.com\"`).\n */\n addresses: string[];\n}\n/**\n * Email trigger — invokes this Worker for the configured Email Routing\n * addresses.\n */\ninterface EmailTrigger extends EmailTriggerOptions {\n type: \"email\";\n}\ninterface ConnectTriggerOptionsBase {\n /** The port to listen on. */\n port: number;\n /** The address to bind to. Defaults to `127.0.0.1`. */\n address?: string;\n}\ntype TcpConnectTriggerOptions = ConnectTriggerOptionsBase & {\n protocol: \"tcp\";\n};\ntype UdpConnectTriggerOptions = ConnectTriggerOptionsBase & {\n protocol: \"udp\";\n /** The idle timeout in milliseconds after which a peer flow is closed. */\n idleTimeoutMs?: number;\n /** The maximum number of pending datagram bytes per peer flow. */\n maxPendingBytes?: number;\n};\ntype ConnectTriggerOptions = TcpConnectTriggerOptions | UdpConnectTriggerOptions;\n/**\n * Connect trigger — invokes this Worker's `connect(socket, env, ctx)`\n * handler for raw socket connections received on the configured\n * protocol/port.\n */\ntype ConnectTrigger = ConnectTriggerOptions & {\n type: \"connect\";\n};\n/**\n * Event triggers — fetch routes, queue consumers, cron schedules, Email\n * Routing addresses, and raw sockets — that invoke this Worker.\n * Construct entries with `triggers.fetch(...)`, `triggers.queue(...)`,\n * `triggers.scheduled(...)`, `triggers.email(...)`, or `triggers.connect(...)`.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#triggers\n */\ninterface Triggers {\n /**\n * Fetch trigger — a route that your Worker should be published to.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#types-of-routes\n */\n fetch(options: FetchTriggerOptions): FetchTrigger;\n /**\n * Queue consumer trigger — invokes this Worker when messages arrive on the\n * named queue.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#queues\n */\n queue(options: QueueConsumerTriggerOptions): QueueConsumerTrigger;\n /**\n * Scheduled (cron) trigger — invokes this Worker on the given schedules.\n *\n * More details here https://developers.cloudflare.com/workers/platform/cron-triggers\n */\n scheduled(options: ScheduledTriggerOptions): ScheduledTrigger;\n /**\n * Email trigger — invokes this Worker for the configured Email Routing\n * addresses.\n */\n email(options: EmailTriggerOptions): EmailTrigger;\n /**\n * Connect trigger — invokes this Worker's `connect(socket, env, ctx)`\n * handler for raw socket connections received on the configured\n * protocol/port.\n */\n connect(options: ConnectTriggerOptions): ConnectTrigger;\n}\n/**\n * Triggers builder for configuring event triggers.\n *\n * @example\n * ```typescript\n * import { defineConfig, triggers } from \"@cloudflare/config\";\n *\n * export default defineConfig({\n * worker: {\n * name: \"my-worker\",\n * compatibilityDate: \"2026-09-17\",\n * triggers: [\n * triggers.fetch({ pattern: \"example.com/*\", zone: \"example.com\" }),\n * triggers.queue({ name: \"my-queue\" }),\n * triggers.scheduled({ schedule: \"0 * * * *\" }),\n * triggers.scheduled({ schedule: \"30 0 * * *\" }),\n * triggers.email({ addresses: [\"support@example.com\"] }),\n * triggers.connect({ protocol: \"tcp\", port: 5432 }),\n * ],\n * },\n * });\n * ```\n */\ndeclare const triggers: Triggers;\n//#endregion\n//#region src/types.d.ts\n/** Account-level values shared by the resources in a configuration. */\ninterface Settings {\n /**\n * This is the ID of the account associated with your zone. It can also be\n * specified through the `CLOUDFLARE_ACCOUNT_ID` environment variable.\n */\n accountId?: string;\n /**\n * The compliance boundary in which commands should operate. When omitted,\n * this can be supplied through `CLOUDFLARE_COMPLIANCE_REGION`.\n */\n complianceRegion?: \"public\" | \"fedramp-high\";\n}\n/** The authored shape of `cloudflare.config.ts`'s default export. */\ninterface CloudflareConfig extends Settings {\n /** The Worker defined by this configuration. */\n worker?: ConfigInput<WorkerConfig>;\n /** Container applications defined by this configuration. */\n containers?: ConfigInput<ContainerConfig>[];\n}\n/**\n * Union of all binding definitions accepted in `env`.\n */\ntype Binding = AgentMemoryBinding | AiBinding | AiSearchBinding | AiSearchNamespaceBinding | AnalyticsEngineDatasetBinding | AnalyticsSQLBinding$1 | ArtifactsBinding | AssetsBinding | BrowserBinding | D1Binding | DispatchNamespaceBinding | DurableObjectBinding | FlagshipBinding | HyperdriveBinding | ImagesBinding$1 | JsonBinding | K2Binding | KvBinding | LogfwdrBinding | MediaBinding$1 | MtlsCertificateBinding | PipelineBinding | QueueBinding | R2Binding | RateLimitBinding | SecretBinding | SecretsStoreSecretBinding | SendEmailBinding | StreamBinding$1 | TextBinding | UnsafeBinding | VectorizeBinding | VersionMetadataBinding | VpcNetworkBinding | VpcServiceBinding | WorkerBinding | WorkerLoaderBinding | WorkflowBinding;\n/**\n * Union of all trigger definitions accepted in `triggers`.\n */\ntype Trigger = ConnectTrigger | EmailTrigger | FetchTrigger | QueueConsumerTrigger | ScheduledTrigger;\n/**\n * Union of all export definitions accepted in `exports`. Worker entries\n * configure WorkerEntrypoint exports. Durable Object entries configure live\n * classes and tombstone lifecycle operations. Workflow entries declare the\n * Workflows defined by the Worker.\n */\ntype Export = DurableObjectCreatedExport | DurableObjectDeletedExport | DurableObjectRenamedExport | DurableObjectTransferredExport | DurableObjectExpectingTransferExport | WorkerEntrypointExport | WorkflowExport;\n/** An image source accepted in an authored Container configuration. */\ntype ContainerImage = {\n /** The path to a Dockerfile. */\n dockerfile: string;\n /**\n * Build context of the application.\n *\n * @default The directory containing `dockerfile`.\n */\n buildContext?: string;\n /** Image variables available to the image at build time only. */\n buildVars?: Record<string, string>;\n} | {\n /**\n * Reference to an existing image.\n *\n * For supported registries, refer to\n * https://developers.cloudflare.com/containers/guides/image-management/#use-pre-built-container-images\n */\n reference: string;\n};\n/** Application-wide observability settings shared by all Containers. */\ninterface ContainerObservabilityConfig {\n /** Whether observability is enabled. */\n enabled?: boolean;\n logs?: {\n /** Whether log collection is enabled. */\n enabled?: boolean;\n };\n}\n/** Observability settings for a standard Container application. */\ntype StandardContainerObservabilityConfig = ContainerObservabilityConfig & ({\n /** Percentage of Container instances targeted for observability. */\n targetInstancePercentage?: number;\n targetInstanceCount?: never;\n} | {\n targetInstancePercentage?: never;\n /** Number of Container instances targeted for observability. */\n targetInstanceCount?: number;\n});\n/** Fields shared by all Container application configurations. */\ninterface BaseContainerConfig {\n /**\n * Name of the application.\n *\n * This is also the identifier used to reference the Container from a Durable\n * Object's `exports` entry via its `container` field.\n */\n name: string;\n /**\n * Passed through without client-side validation or transformation.\n *\n * @hidden\n */\n unsafe?: Record<string, unknown>;\n ssh?: {\n /**\n * If enabled, users with write access to the Container application can\n * connect to it over SSH.\n *\n * @default true\n */\n enabled: boolean;\n /**\n * Port that the SSH service is running on.\n *\n * @default 22\n */\n port?: number;\n };\n /** SSH public keys to put in the Container's authorized_keys file. */\n authorizedKeys?: Array<{\n name: string;\n publicKey: string;\n }>;\n}\n/** A Container application managed with a standard scheduling policy. */\ninterface StandardContainerConfig extends BaseContainerConfig {\n /** Configures observability and optional targeting for Container instances. */\n observability?: StandardContainerObservabilityConfig;\n /** The image to build or deploy. */\n image: ContainerImage;\n /**\n * Maximum number of application instances.\n *\n * @default 20\n */\n maxInstances?: number;\n /**\n * The instance type to be used for the Container.\n * Select from one of the following named instance types:\n *\n * - lite: 1/16 vCPU, 256 MiB memory, and 2 GB disk\n * - basic: 1/4 vCPU, 1 GiB memory, and 4 GB disk\n * - standard-1: 1/2 vCPU, 4 GiB memory, and 8 GB disk\n * - standard-2: 1 vCPU, 6 GiB memory, and 12 GB disk\n * - standard-3: 2 vCPU, 8 GiB memory, and 16 GB disk\n * - standard-4: 4 vCPU, 12 GiB memory, and 20 GB disk\n *\n * Customers on an enterprise plan have the additional option to set custom\n * limits.\n *\n * @default \"lite\"\n */\n instanceType?: \"basic\" | \"lite\" | \"standard-1\" | \"standard-2\" | \"standard-3\" | \"standard-4\" | {\n /** @default 0.0625 (1/16 vCPU) */\n vcpu?: number;\n /** @default 256 MiB */\n memoryMib?: number;\n /** @default 2 GB */\n diskMb?: number;\n };\n /**\n * The scheduling policy of the application.\n *\n * @default \"default\"\n */\n schedulingPolicy?: \"default\" | \"regional\";\n /** Scheduling constraints for Container placement. */\n constraints?: {\n /** Limit Container placement to specific geographic regions. */\n regions?: Array<\"ENAM\" | \"WNAM\" | \"EEUR\" | \"WEUR\" | \"APAC\" | \"SAM\" | \"ME\" | \"OC\" | \"AFR\">;\n /** Restrict Containers to compliance boundaries. */\n jurisdiction?: \"eu\" | \"fedramp\" | \"us\";\n };\n rollout?: {\n /**\n * How a rollout should be created. It supports the following modes:\n *\n * - full-auto: The Container application will be rolled out fully\n * automatically.\n * - none: The Container application will not have a rollout or update.\n * - full-manual: The Container application will be rolled out by manually\n * progressing through the rollout steps.\n *\n * @default \"full-auto\"\n * @hidden\n */\n kind?: \"full-auto\" | \"none\" | \"full-manual\";\n /**\n * Configures what percentage of instances should be updated at each step of\n * a rollout. You can specify this as a single number or an array of numbers.\n *\n * If this is a single number, each step will progress by that percentage.\n * The options are 5, 10, 20, 25, 50, or 100.\n *\n * If this is an array, each step specifies the cumulative rollout progress.\n * The final step must be 100.\n *\n * @default [10, 100]\n */\n stepPercentage?: number | number[];\n /**\n * Configures the grace period, in seconds, for active instances before they\n * are shut down during a rollout.\n *\n * @default 0\n */\n activeGracePeriod?: number;\n };\n}\n/** A Container application managed by a Durable Object. */\ninterface DurableObjectContainerConfig extends BaseContainerConfig {\n schedulingPolicy: \"durable-object\";\n /**\n * Configures application-wide observability. Instance targeting is not\n * supported for Durable Object-managed Containers.\n */\n observability?: ContainerObservabilityConfig;\n /** Named images that the Durable Object can start. */\n images?: Record<string, ContainerImage>;\n}\n/**\n * Container application configuration. This is the input shape passed to\n * `defineContainer` and parsed at runtime by `InputContainerSchema`.\n */\ntype ContainerConfig = DurableObjectContainerConfig | StandardContainerConfig;\n/**\n * Worker configuration. This is the input shape passed to\n * [`defineWorker`](https://developers.cloudflare.com/workers/wrangler/configuration/).\n *\n * Fields are parsed and normalised at runtime by `InputWorkerSchema` before\n * being passed to downstream tooling.\n */\ninterface WorkerConfig {\n /**\n * The name of your Worker.\n */\n name: string;\n /**\n * A date in the form yyyy-mm-dd, which will be used to determine\n * which version of the Workers runtime is used.\n *\n * More details at https://developers.cloudflare.com/workers/configuration/compatibility-dates\n */\n compatibilityDate: string;\n /**\n * A list of flags that enable features from upcoming features of\n * the Workers runtime, usually used together with `compatibilityDate`.\n *\n * More details at https://developers.cloudflare.com/workers/configuration/compatibility-flags/\n *\n * @default []\n */\n compatibilityFlags?: string[];\n /**\n * The entrypoint module that will be executed.\n *\n * May be either a path string (e.g. `\"./src/index.ts\"`) or a module\n * namespace imported with the `cf-worker` import attribute.\n *\n * @example\n * ```ts\n * import { defineConfig, defineWorker } from \"@cloudflare/config\";\n * import * as entrypoint from \"./src\" with { type: \"cf-worker\" };\n * const worker = defineWorker({ entrypoint });\n * export default defineConfig({ worker });\n * ```\n */\n entrypoint?: string | WorkerModule;\n /**\n * Specify the directory of static assets to deploy/serve.\n *\n * More details at https://developers.cloudflare.com/workers/frameworks/\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#assets\n */\n assets?: {\n /** How to handle HTML requests. */\n htmlHandling?: \"auto-trailing-slash\" | \"drop-trailing-slash\" | \"force-trailing-slash\" | \"none\";\n /** How to handle requests that do not match an asset. */\n notFoundHandling?: \"single-page-application\" | \"404-page\" | \"none\";\n /**\n * Matches will be routed to the User Worker, and matches to negative rules will go to the Asset Worker.\n *\n * Can also be `true`, indicating that every request should be routed to the User Worker.\n */\n runWorkerFirst?: string[] | boolean;\n };\n /**\n * Custom domains that your Worker should be published to.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#types-of-routes\n */\n domains?: string[];\n /**\n * Event triggers — fetch routes, queue consumers, cron schedules, Email\n * Routing addresses, and raw sockets — that invoke this Worker.\n * Construct entries with `triggers.fetch(...)`, `triggers.queue(...)`,\n * `triggers.scheduled(...)`, `triggers.email(...)`, or\n * `triggers.connect(...)`.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#triggers\n */\n triggers?: Trigger[];\n /**\n * A list of Tail Workers that are bound to this Worker.\n *\n * `@cloudflare/config` unifies regular and streaming tail consumers under\n * a single field; pass `streaming: true` to forward streaming tail events.\n *\n * @default []\n */\n tailConsumers?: Array<{\n /** The name of the service tail events will be forwarded to. */\n worker: string;\n /** Whether to stream tail events in real time. */\n streaming?: boolean;\n }>;\n /**\n * Specify the cache behavior of the Worker.\n */\n cache?: {\n /** If cache is enabled for this Worker. */\n enabled: boolean;\n /** Whether cached assets may be reused across Worker versions. */\n crossVersionCache?: boolean;\n };\n /**\n * Specify how the Worker should be located to minimize round-trip time.\n *\n * More details: https://developers.cloudflare.com/workers/platform/smart-placement/\n */\n placement?: {\n mode: \"off\" | \"smart\";\n hint?: string;\n } | {\n mode?: \"targeted\";\n region: string;\n } | {\n mode?: \"targeted\";\n host: string;\n } | {\n mode?: \"targeted\";\n hostname: string;\n };\n /**\n * Specify limits for runtime behavior.\n * Only supported for the \"standard\" Usage Model.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#limits\n */\n limits?: {\n /** Maximum allowed CPU time for a Worker's invocation in milliseconds. */\n cpuMs?: number;\n /** Maximum allowed number of fetch requests that a Worker's invocation can execute. */\n subrequests?: number;\n };\n /**\n * Send Trace Events from this Worker to Workers Logpush.\n *\n * This will not configure a corresponding Logpush job automatically.\n *\n * For more information about Workers Logpush, see:\n * https://blog.cloudflare.com/logpush-for-workers/\n */\n logpush?: boolean;\n /**\n * Specify the observability behavior of the Worker.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#observability\n */\n observability?: {\n /** If observability is enabled for this Worker. */\n enabled?: boolean;\n /** The sampling rate. */\n headSamplingRate?: number;\n /**\n * Whether query strings are removed from request URLs in logs and traces.\n *\n * @default false\n */\n redactQueryString?: boolean;\n /** Real-time Issues settings for this Worker. */\n issues?: {\n /** Whether real-time Issues are enabled. */\n enabled?: boolean;\n };\n logs?: {\n enabled?: boolean;\n /** The sampling rate. */\n headSamplingRate?: number;\n /** Set to false to disable invocation logs. */\n invocationLogs?: boolean;\n /**\n * If logs should be persisted to the Cloudflare observability platform where they can be queried in the dashboard.\n *\n * @default true\n */\n persist?: boolean;\n /**\n * What destinations logs emitted from the Worker should be sent to.\n *\n * @default []\n */\n destinations?: string[];\n };\n traces?: {\n enabled?: boolean;\n /** The sampling rate. */\n headSamplingRate?: number;\n /**\n * If traces should be persisted to the Cloudflare observability platform where they can be queried in the dashboard.\n *\n * @default true\n */\n persist?: boolean;\n /**\n * What destinations traces emitted from the Worker should be sent to.\n *\n * @default []\n */\n destinations?: string[];\n };\n };\n /**\n * Whether we use `<name>.<subdomain>.workers.dev` to\n * test and deploy your Worker.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#workersdev\n *\n * @default true\n */\n workersDev?: boolean;\n /**\n * Whether we use `<version>-<name>.<subdomain>.workers.dev` to\n * serve Preview URLs for your Worker.\n *\n * @default false\n */\n previewUrls?: boolean;\n /**\n * Designates this Worker as an internal-only \"first-party\" Worker.\n *\n * @internal\n */\n firstPartyWorker?: boolean;\n /**\n * \"Unsafe\" tables for runtime features that aren't directly supported by\n * this configuration. Values are forwarded verbatim in the Worker's\n * upload metadata.\n *\n * @default {}\n */\n unsafe?: {\n /**\n * Arbitrary key/value pairs that will be included in the uploaded metadata. Values specified\n * here will always be applied to metadata last, so can add new or override existing fields.\n */\n metadata?: Record<string, unknown>;\n /**\n * Used for internal capnp uploads for the Workers runtime.\n */\n capnp?: {\n basePath: string;\n sourceSchemas: string[];\n compiledSchema?: never;\n } | {\n basePath?: never;\n sourceSchemas?: never;\n compiledSchema: string;\n };\n };\n /**\n * Bindings exposed on the Worker's `env` object. Construct entries with\n * `bindings.kv(...)`, `bindings.r2(...)`, etc.\n */\n env?: Record<string, Binding>;\n /**\n * Configuration for named exports declared by the Worker. Each entry's\n * key is the exported class name; the value configures the export.\n *\n * - Construct entries with `exports.durableObject(...)`.\n * - Declares Durable Object classes exported from this Worker.\n * For more information about Durable Objects, see the documentation at\n * https://developers.cloudflare.com/workers/learning/using-durable-objects.\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#durable-objects.\n *\n * - Construct entries with `exports.workflow(...)`.\n * - Declares Workflows defined by this Worker.\n * For more information about Workflows, see the documentation at\n * https://developers.cloudflare.com/workflows/.\n */\n exports?: Record<string, Export>;\n}\n//#endregion\n//#region src/definition.d.ts\ninterface ConfigContext {\n /** Whether the config is being evaluated for a Preview build. */\n isPreview: boolean;\n /**\n * The mode the config is being evaluated in.\n * Set via the `--mode` CLI flag.\n * In Vite the mode defaults to `development` in `vite dev` and `production` in `vite build` ([more info](https://vite.dev/guide/env-and-mode.html#modes)).\n * In Wrangler the mode defaults to `undefined`.\n */\n mode: string | undefined;\n}\n/**\n * A configuration value, promise, or factory. Factories can be passed directly\n * for automatic resolution with the current context or called explicitly with\n * another context before they are used.\n */\ntype ConfigInput<T$1> = T$1 | Promise<T$1> | ((ctx: ConfigContext) => T$1 | Promise<T$1>);\n/** Recursively apply declared config properties without expanding open records. */\ntype ContextualProperties<TInput extends object, TConfig> = TInput extends readonly unknown[] ? TConfig extends readonly (infer TElement)[] ? { [K in keyof TInput]: ContextualConfig<TInput[K], TElement> } : TConfig : string extends keyof TConfig ? TConfig : { [K in keyof TConfig]: K extends keyof TInput ? ContextualConfig<TInput[K], TConfig[K]> : TConfig[K] };\ntype ContextualConfig<TInput, TConfig> = TInput extends Promise<infer TValue> ? Promise<ContextualConfig<TValue, TConfig>> : TInput extends ((ctx: ConfigContext) => infer TResult) ? (ctx: ConfigContext) => ContextualConfig<TResult, TConfig> : TConfig extends unknown ? TInput extends TConfig ? TInput & (TInput extends object ? ContextualProperties<TInput, TConfig> : TConfig) : never : never;\n/** Create a type-safe identity helper for a configuration value or factory. */\n\ntype ContainerDefinition<T$1 extends ContainerConfig = ContainerConfig> = ConfigInput<T$1>;\ntype WorkerDefinition<T$1 extends WorkerConfig = WorkerConfig> = ConfigInput<T$1>;\n/** A Worker name, value, promise, or context-aware factory. */\ntype WorkerReference = string | WorkerDefinition;\n/**\n * Used to define the default export in `cloudflare.config.ts`.\n *\n * @example\n * ```typescript\n * import { defineConfig } from \"@cloudflare/config\";\n *\n * export default defineConfig({\n * worker: {\n * name: \"my-worker\",\n * compatibilityDate: \"2026-09-17\",\n * },\n * });\n * ```\n */\ndeclare const defineConfig: <const TInput extends ConfigInput<CloudflareConfig>>(config: TInput & ContextualConfig<TInput, CloudflareConfig>) => TInput;\n/**\n * Define a Container.\n *\n * @example\n * ```typescript\n * import { defineContainer } from \"@cloudflare/config\";\n *\n * const container = defineContainer({\n * name: \"my-container\",\n * image: { dockerfile: \"./Dockerfile\" },\n * });\n * ```\n */\ndeclare const defineContainer: <const TInput extends ConfigInput<ContainerConfig>>(config: TInput & ContextualConfig<TInput, ContainerConfig>) => TInput;\n/**\n * Define a Worker.\n *\n * @example\n * ```typescript\n * import { defineWorker } from \"@cloudflare/config\";\n *\n * const worker = defineWorker({\n * name: \"my-worker\",\n * compatibilityDate: \"2026-09-17\",\n * });\n * ```\n */\ndeclare const defineWorker: <const TInput extends ConfigInput<WorkerConfig>>(config: TInput & ContextualConfig<TInput, WorkerConfig>) => TInput;\n//#endregion\n//#region src/utils.d.ts\n/**\n * Represents any valid JSON value.\n */\ntype Json = string | number | boolean | null | Json[] | {\n [key: string]: Json;\n};\n//#endregion\n//#region src/bindings.d.ts\n/** Options that control a binding during local development. */\ninterface BindingDevOptions {\n /** Whether the binding should connect to the remote resource. */\n remote?: boolean;\n}\ninterface AgentMemoryBindingOptions {\n /** The user-chosen namespace name. Must exist in Cloudflare at deploy time. */\n namespace: string;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * Agent Memory namespace binding. Each binding is scoped to a namespace and\n * allows agents to persist and recall memory.\n */\ninterface AgentMemoryBinding extends AgentMemoryBindingOptions {\n type: \"agent-memory\";\n}\ninterface AiBindingOptions {\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * Binding to the Workers AI project.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#workers-ai\n */\ninterface AiBinding extends AiBindingOptions {\n type: \"ai\";\n}\n/**\n * Binding to the Workers AI project.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#workers-ai\n */\ninterface TypedAiBinding<TAiModelList extends AiModelListType = AiModels> extends AiBinding {\n /** @internal Carries type parameters for inference */\n __typeParams: [TAiModelList];\n}\ninterface AiSearchBindingOptions {\n /** The user-chosen instance name. Must exist in Cloudflare at deploy time. */\n name: string;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * AI Search instance binding. Each binding is bound directly to a single\n * pre-existing instance within the \"default\" namespace.\n */\ninterface AiSearchBinding extends AiSearchBindingOptions {\n type: \"ai-search\";\n}\ninterface AiSearchNamespaceBindingOptions {\n /** The user-chosen namespace name. Must exist in Cloudflare at deploy time. */\n namespace: string;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * AI Search namespace binding. Each binding is scoped to a namespace and\n * allows dynamic instance CRUD within it.\n */\ninterface AiSearchNamespaceBinding extends AiSearchNamespaceBindingOptions {\n type: \"ai-search-namespace\";\n}\ninterface AnalyticsEngineDatasetBindingOptions {\n /** The name of this dataset to write to. */\n name?: string;\n}\n/**\n * Binding to an Analytics Engine dataset.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#analytics-engine-datasets\n */\ninterface AnalyticsEngineDatasetBinding extends AnalyticsEngineDatasetBindingOptions {\n type: \"analytics-engine-dataset\";\n}\ninterface ArtifactsBindingOptions {\n /** The namespace to use. */\n namespace: string;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * Binding to an Artifacts instance. Artifacts provides git-compatible file\n * storage on Cloudflare Workers.\n */\ninterface ArtifactsBinding extends ArtifactsBindingOptions {\n type: \"artifacts\";\n}\n/**\n * Binding to the Worker's static assets.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#assets\n */\ninterface AssetsBinding {\n type: \"assets\";\n}\ninterface BrowserBindingOptions {\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * Binding to a headless browser usable from the Worker.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#browser-rendering\n */\ninterface BrowserBinding extends BrowserBindingOptions {\n type: \"browser\";\n}\ninterface AnalyticsSQLBindingOptions {\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/** An Analytics SQL binding. */\ninterface AnalyticsSQLBinding$1 extends AnalyticsSQLBindingOptions {\n type: \"analytics\";\n}\ninterface D1BindingOptions {\n /** The UUID of this D1 database (not required). */\n id?: string;\n /** The name of this D1 database. */\n name?: string;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * Binding to a D1 database.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#d1-databases\n */\ninterface D1Binding extends D1BindingOptions {\n type: \"d1\";\n}\ninterface DispatchNamespaceBindingOptions {\n /** The namespace to bind to. */\n namespace?: string;\n /** Details about the outbound Worker which will handle outbound requests from your namespace. */\n outbound?: {\n /** Name of the Worker handling the outbound requests. */\n worker: string;\n /** (Optional) List of parameter names, for sending context from your dispatch Worker to the outbound handler. */\n parameters?: string[];\n };\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * Binding to a Workers for Platforms dispatch namespace.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#dispatch-namespace-bindings-workers-for-platforms\n */\ninterface DispatchNamespaceBinding extends DispatchNamespaceBindingOptions {\n type: \"dispatch-namespace\";\n}\ntype ReferencedWorkerConfig<TWorker$1 extends WorkerReference> = TWorker$1 extends string ? never : UnwrapConfig<TWorker$1>;\ntype DurableObjectExportName<TWorker$1 extends WorkerReference> = TWorker$1 extends string ? string : InferDurableNamespaces<ReferencedWorkerConfig<TWorker$1>>;\ntype WorkerEntrypointExportName<TWorker$1 extends WorkerReference> = TWorker$1 extends string ? string : InferWorkerEntrypointExports<ReferencedWorkerConfig<TWorker$1>>;\ntype WorkflowExportName<TWorker$1 extends WorkerReference> = TWorker$1 extends string ? string : InferExportsByType<ReferencedWorkerConfig<TWorker$1>, \"workflow\">;\ninterface DurableObjectBindingOptions<TWorker$1 extends WorkerReference = WorkerReference, TExportName$1 extends DurableObjectExportName<TWorker$1> = DurableObjectExportName<TWorker$1>> {\n /** The name or config of the Worker that defines the Durable Object class. */\n worker: TWorker$1;\n /** The exported class name of the Durable Object. */\n exportName: TExportName$1;\n}\n/**\n * Binding to a Durable Object class. `worker` is the name or config of the\n * Worker that defines the class; `exportName` is the exported class name.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#durable-objects\n */\ninterface DurableObjectBinding<TWorker$1 extends WorkerReference = WorkerReference, TExportName$1 extends DurableObjectExportName<TWorker$1> = DurableObjectExportName<TWorker$1>> extends DurableObjectBindingOptions<TWorker$1, TExportName$1> {\n type: \"durable-object\";\n}\ninterface FlagshipBindingOptions {\n /** The Flagship app ID to bind to. */\n id?: string;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/** Binding to a Flagship feature-flag service. */\ninterface FlagshipBinding extends FlagshipBindingOptions {\n type: \"flagship\";\n}\ninterface HyperdriveBindingOptions {\n /** The ID of the Hyperdrive configuration. */\n id: string;\n /** Options that only apply during local development. */\n dev?: {\n /** The database connection string used during local development. */\n connectionString?: string;\n };\n}\n/**\n * Binding to a Hyperdrive configuration.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#hyperdrive\n */\ninterface HyperdriveBinding extends HyperdriveBindingOptions {\n type: \"hyperdrive\";\n}\ninterface ImagesBindingOptions {\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * Binding to Cloudflare Images.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#images\n */\ninterface ImagesBinding$1 extends ImagesBindingOptions {\n type: \"images\";\n}\n/**\n * Inline JSON value made available to the Worker on `env` under the\n * binding name.\n */\ninterface JsonBinding<T$1 extends Json = Json> {\n type: \"json\";\n /** The JSON value made available to the Worker. */\n value: T$1;\n}\ninterface KvBindingOptions {\n /** The ID of the KV namespace. */\n id?: string;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * Binding to a Workers KV namespace.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#kv-namespaces\n */\ninterface KvBinding extends KvBindingOptions {\n type: \"kv\";\n}\n/**\n * Binding to a Workers KV namespace.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#kv-namespaces\n */\ninterface TypedKvBinding<TKey extends string = string> extends KvBinding {\n /** @internal Carries type parameters for inference */\n __typeParams: [TKey];\n}\ninterface LogfwdrBindingOptions {\n /** The destination for this logged message. */\n destination: string;\n}\n/** Binding for forwarding logs to logfwdr. */\ninterface LogfwdrBinding extends LogfwdrBindingOptions {\n type: \"logfwdr\";\n}\ninterface MediaBindingOptions {\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/** Binding to Cloudflare Media Transformations. */\ninterface MediaBinding$1 extends MediaBindingOptions {\n type: \"media\";\n}\ninterface MtlsCertificateBindingOptions {\n /** The UUID of the uploaded mTLS certificate. */\n id: string;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * Binding to an uploaded mTLS certificate.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#mtls-certificates\n */\ninterface MtlsCertificateBinding extends MtlsCertificateBindingOptions {\n type: \"mtls-certificate\";\n}\ninterface PipelineBindingOptions {\n /** Name of the Pipeline to bind. */\n name: string;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\ninterface K2BindingOptions {\n /** The ID of the K2 stream. */\n stream: string;\n /** Always uses the real stream in development. Set remote to true to suppress the usage warning; false is unsupported. */\n dev?: BindingDevOptions;\n}\n/** A producer binding to a K2 stream created using the Dashboard or API. */\ninterface K2Binding extends K2BindingOptions {\n type: \"k2\";\n}\n/** An opaque K2 record with optional application headers. */\ninterface K2Record<T$1 extends ArrayBuffer | Uint8Array> {\n content: T$1;\n headers?: Record<string, string>;\n}\n/** A complete-batch append outcome. An unsuccessful append may have committed. */\ntype K2ProduceResult = {\n success: true;\n} | {\n success: false;\n error: {\n code: number;\n message: string;\n retryable: boolean;\n };\n};\n/** The K2 producer RPC interface. Batches use one byte representation. */\ninterface K2Producer {\n /**\n * Atomically appends a batch of opaque records to the stream.\n * @param records - A batch containing either all ArrayBuffers or all Uint8Arrays.\n * @returns The append outcome; retry only when explicitly marked retryable.\n * @throws RPC transport failures may reject with an unknown append outcome.\n */\n send(records: K2Record<ArrayBuffer>[] | K2Record<Uint8Array>[]): Promise<K2ProduceResult>;\n}\n/** Binding to a Cloudflare Pipeline. */\ninterface PipelineBinding extends PipelineBindingOptions {\n type: \"pipeline\";\n}\n/** Binding to a Cloudflare Pipeline. */\ninterface TypedPipelineBinding<TRecord extends PipelineRecord = PipelineRecord> extends PipelineBinding {\n /** @internal Carries type parameters for inference */\n __typeParams: [TRecord];\n}\ninterface QueueBindingOptions {\n /** The name of this Queue. */\n name?: string;\n /** The number of seconds to wait before delivering a message. */\n deliveryDelay?: number;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * Producer binding to a Cloudflare Queue.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#queues\n */\ninterface QueueBinding extends QueueBindingOptions {\n type: \"queue\";\n}\n/**\n * Producer binding to a Cloudflare Queue.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#queues\n */\ninterface TypedQueueBinding<TBody = unknown> extends QueueBinding {\n /** @internal Carries type parameters for inference */\n __typeParams: [TBody];\n}\ninterface R2BindingOptions {\n /** The name of this R2 bucket at the edge. */\n name?: string;\n /** The jurisdiction that the bucket exists in. Default if not present. */\n jurisdiction?: string;\n /** Settings that only apply to local development. */\n dev?: BindingDevOptions & {\n /** EXPERIMENTAL: credentials for the local S3-compatible endpoint. */\n experimentalS3Credentials?: {\n accessKeyId: string;\n secretAccessKey: string;\n };\n };\n}\n/**\n * Binding to an R2 bucket.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#r2-buckets\n */\ninterface R2Binding extends R2BindingOptions {\n type: \"r2\";\n}\ninterface RateLimitBindingOptions {\n /** The namespace ID for this rate limiter. */\n namespace: string;\n /** Simple rate limiting configuration. */\n simple: {\n /** The maximum number of requests allowed in the time period. */\n limit: number;\n /** The time period in seconds (10 for ten seconds, 60 for one minute). */\n period: 10 | 60;\n };\n}\n/** Binding to a rate limiter. */\ninterface RateLimitBinding extends RateLimitBindingOptions {\n type: \"rate-limit\";\n}\n/**\n * Declares a secret that is required by your Worker, exposed on `env` under\n * the binding name.\n *\n * When defined, this binding:\n * - Replaces .dev.vars/.env/process.env inference for type generation\n * - Enables local dev validation with warnings for missing secrets\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#secrets-configuration-property\n */\ninterface SecretBinding {\n type: \"secret\";\n}\ninterface SecretsStoreSecretBindingOptions {\n /** ID of the secret store. */\n storeId: string;\n /** Name of the secret. */\n secretName: string;\n}\n/** Binding to a Secrets Store secret. */\ninterface SecretsStoreSecretBinding extends SecretsStoreSecretBindingOptions {\n type: \"secrets-store-secret\";\n}\ntype SendEmailDestinationOptions = {\n /** If this binding should be restricted to a specific verified address. */\n destinationAddress: string;\n allowedDestinationAddresses?: never;\n} | {\n destinationAddress?: never;\n /** If this binding should be restricted to a set of verified addresses. */\n allowedDestinationAddresses: string[];\n} | {\n destinationAddress?: never;\n allowedDestinationAddresses?: never;\n};\ntype SendEmailBindingOptions = SendEmailDestinationOptions & {\n /** If this binding should be restricted to a set of sender addresses. */\n allowedSenderAddresses?: string[];\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n};\n/**\n * Binding for sending email from inside the Worker.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#email-bindings\n */\ntype SendEmailBinding = SendEmailBindingOptions & {\n type: \"send-email\";\n};\ninterface StreamBindingOptions {\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/** Binding to Cloudflare Stream. */\ninterface StreamBinding$1 extends StreamBindingOptions {\n type: \"stream\";\n}\n/**\n * Inline string value made available to the Worker on `env` under the\n * binding name.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables\n */\ninterface TextBinding<T$1 extends string = string> {\n type: \"text\";\n /** The string value made available to the Worker. */\n value: T$1;\n}\ninterface UnsafeBindingOptions {\n /** Local-dev plugin configuration for this unsafe binding. */\n dev?: {\n /** The plugin package that provides the binding's local-dev implementation. */\n plugin: {\n package: string;\n name: string;\n };\n /** Plugin-specific options. */\n options?: Record<string, unknown>;\n };\n [key: string]: unknown;\n}\n/**\n * Escape-hatch binding for runtime features that aren't directly supported\n * by this configuration. Included in the Worker's upload metadata without\n * changes.\n */\ninterface UnsafeBinding extends UnsafeBindingOptions {\n type: `unsafe:${string}`;\n}\ninterface VectorizeBindingOptions {\n /** The name of the Vectorize index. */\n name: string;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * Binding to a Vectorize index.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#vectorize-indexes\n */\ninterface VectorizeBinding extends VectorizeBindingOptions {\n type: \"vectorize\";\n}\n/** Binding to the Worker version's metadata. */\ninterface VersionMetadataBinding {\n type: \"version-metadata\";\n}\ntype VpcNetworkBindingOptions = {\n /** The tunnel ID of the Cloudflare Tunnel to route traffic through. Mutually exclusive with `networkId`. */\n tunnelId: string;\n networkId?: never;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n} | {\n tunnelId?: never;\n /** The network ID to route traffic through. Mutually exclusive with `tunnelId`. */\n networkId: string;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n};\n/** Binding to a VPC network. */\ntype VpcNetworkBinding = VpcNetworkBindingOptions & {\n type: \"vpc-network\";\n};\ninterface VpcServiceBindingOptions {\n /** The service ID of the VPC connectivity service. */\n id: string;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/** Binding to a VPC service. */\ninterface VpcServiceBinding extends VpcServiceBindingOptions {\n type: \"vpc-service\";\n}\ninterface WorkerBindingOptions<TWorker$1 extends WorkerReference = WorkerReference, TExportName$1 extends WorkerEntrypointExportName<TWorker$1> | undefined = WorkerEntrypointExportName<TWorker$1> | undefined> {\n /** The name or config of the bound Worker. */\n worker: TWorker$1;\n /** The named export to bind to (defaults to the default export). */\n exportName?: TExportName$1;\n /** Optional properties that will be made available to the service via `ctx.props`. */\n props?: Record<string, unknown>;\n /** Options that only apply during local development. */\n dev?: BindingDevOptions;\n}\n/**\n * Service binding (Worker-to-Worker). `worker` is the name or config of the\n * bound Worker; `exportName` selects a named `WorkerEntrypoint` export\n * (defaults to the default export).\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings\n */\ninterface WorkerBinding<TWorker$1 extends WorkerReference = WorkerReference, TExportName$1 extends WorkerEntrypointExportName<TWorker$1> | undefined = WorkerEntrypointExportName<TWorker$1> | undefined> extends WorkerBindingOptions<TWorker$1, TExportName$1> {\n type: \"worker\";\n}\n/** Binding to a Worker Loader. */\ninterface WorkerLoaderBinding {\n type: \"worker-loader\";\n}\ninterface WorkflowBindingOptions<TWorker$1 extends WorkerReference = WorkerReference, TExportName$1 extends WorkflowExportName<TWorker$1> = WorkflowExportName<TWorker$1>> {\n /** The name of the Workflow. */\n name: string;\n /** The name or config of the Worker that defines the Workflow. */\n worker: TWorker$1;\n /** The exported class name of the Workflow. */\n exportName: TExportName$1;\n}\n/**\n * Binding to a Workflow. `name` identifies the Workflow, `worker` is the name\n * or config of the Worker that defines it, and `exportName` is the exported\n * `WorkflowEntrypoint` class name.\n */\ninterface WorkflowBinding<TWorker$1 extends WorkerReference = WorkerReference, TExportName$1 extends WorkflowExportName<TWorker$1> = WorkflowExportName<TWorker$1>> extends WorkflowBindingOptions<TWorker$1, TExportName$1> {\n type: \"workflow\";\n}\ninterface Bindings {\n /**\n * Agent Memory namespace binding. Each binding is scoped to a namespace and\n * allows agents to persist and recall memory.\n */\n agentMemory(options: AgentMemoryBindingOptions): AgentMemoryBinding;\n /**\n * Binding to the Workers AI project.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#workers-ai\n */\n ai<TAiModelList extends AiModelListType = AiModels>(options?: AiBindingOptions): TypedAiBinding<TAiModelList>;\n /**\n * AI Search instance binding. Each binding is bound directly to a single\n * pre-existing instance within the \"default\" namespace.\n */\n aiSearch(options: AiSearchBindingOptions): AiSearchBinding;\n /**\n * AI Search namespace binding. Each binding is scoped to a namespace and\n * allows dynamic instance CRUD within it.\n */\n aiSearchNamespace(options: AiSearchNamespaceBindingOptions): AiSearchNamespaceBinding;\n /**\n * Binding to an Analytics Engine dataset.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#analytics-engine-datasets\n */\n analyticsEngineDataset(options?: AnalyticsEngineDatasetBindingOptions): AnalyticsEngineDatasetBinding;\n /**\n * Binding to an Artifacts instance. Artifacts provides git-compatible file\n * storage on Cloudflare Workers.\n */\n artifacts(options: ArtifactsBindingOptions): ArtifactsBinding;\n /**\n * Binding to the Worker's static assets.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#assets\n */\n assets(): AssetsBinding;\n /**\n * Binding to a headless browser usable from the Worker.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#browser-rendering\n */\n browser(options?: BrowserBindingOptions): BrowserBinding;\n /** An Analytics SQL binding. */\n analyticsSQL(options?: AnalyticsSQLBindingOptions): AnalyticsSQLBinding$1;\n /**\n * Binding to a D1 database.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#d1-databases\n */\n d1(options?: D1BindingOptions): D1Binding;\n /**\n * Binding to a Workers for Platforms dispatch namespace.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#dispatch-namespace-bindings-workers-for-platforms\n */\n dispatchNamespace(options?: DispatchNamespaceBindingOptions): DispatchNamespaceBinding;\n /**\n * Binding to a Durable Object class. `worker` is the name or config of the\n * Worker that defines the class; `exportName` is the exported class name.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#durable-objects\n */\n durableObject<TWorker$1 extends WorkerReference, TExportName$1 extends DurableObjectExportName<TWorker$1>>(options: DurableObjectBindingOptions<TWorker$1, TExportName$1>): DurableObjectBinding<TWorker$1, TExportName$1>;\n /** Binding to a Flagship feature-flag service. */\n flagship(options?: FlagshipBindingOptions): FlagshipBinding;\n /**\n * Binding to a Hyperdrive configuration.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#hyperdrive\n */\n hyperdrive(options: HyperdriveBindingOptions): HyperdriveBinding;\n /**\n * Binding to Cloudflare Images.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#images\n */\n images(options?: ImagesBindingOptions): ImagesBinding$1;\n /**\n * Inline JSON value made available to the Worker on `env` under the\n * binding name.\n */\n json<T$1 extends Json>(value: T$1): JsonBinding<T$1>;\n /**\n * Binding to a Workers KV namespace.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#kv-namespaces\n */\n kv<TKey extends string = string>(options?: KvBindingOptions): TypedKvBinding<TKey>;\n /** Binding for forwarding logs to logfwdr. */\n logfwdr(options: LogfwdrBindingOptions): LogfwdrBinding;\n /** Binding to Cloudflare Media Transformations. */\n media(options?: MediaBindingOptions): MediaBinding$1;\n /**\n * Binding to an uploaded mTLS certificate.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#mtls-certificates\n */\n mtlsCertificate(options: MtlsCertificateBindingOptions): MtlsCertificateBinding;\n /** Binding to a Cloudflare Pipeline. */\n pipeline<TRecord extends PipelineRecord = PipelineRecord>(options: PipelineBindingOptions): TypedPipelineBinding<TRecord>;\n /** A producer binding to a K2 stream created using the Dashboard or API. */\n k2(options: K2BindingOptions): K2Binding;\n /**\n * Producer binding to a Cloudflare Queue.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#queues\n */\n queue<TBody = unknown>(options?: QueueBindingOptions): TypedQueueBinding<TBody>;\n /**\n * Binding to an R2 bucket.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#r2-buckets\n */\n r2(options?: R2BindingOptions): R2Binding;\n /** Binding to a rate limiter. */\n rateLimit(options: RateLimitBindingOptions): RateLimitBinding;\n /**\n * Declares a secret that is required by your Worker, exposed on `env` under\n * the binding name.\n *\n * When defined, this binding:\n * - Replaces .dev.vars/.env/process.env inference for type generation\n * - Enables local dev validation with warnings for missing secrets\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#secrets-configuration-property\n */\n secret(): SecretBinding;\n /** Binding to a Secrets Store secret. */\n secretsStoreSecret(options: SecretsStoreSecretBindingOptions): SecretsStoreSecretBinding;\n /**\n * Binding for sending email from inside the Worker.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#email-bindings\n */\n sendEmail(options?: SendEmailBindingOptions): SendEmailBinding;\n /** Binding to Cloudflare Stream. */\n stream(options?: StreamBindingOptions): StreamBinding$1;\n /**\n * Inline string value made available to the Worker on `env` under the\n * binding name.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables\n */\n text<T$1 extends string>(value: T$1): TextBinding<T$1>;\n /**\n * Binding to a Vectorize index.\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#vectorize-indexes\n */\n vectorize(options: VectorizeBindingOptions): VectorizeBinding;\n /** Binding to the Worker version's metadata. */\n versionMetadata(): VersionMetadataBinding;\n /** Binding to a VPC network. */\n vpcNetwork(options: VpcNetworkBindingOptions): VpcNetworkBinding;\n /** Binding to a VPC service. */\n vpcService(options: VpcServiceBindingOptions): VpcServiceBinding;\n /**\n * Service binding (Worker-to-Worker). `worker` is the name or config of the\n * bound Worker; `exportName` selects a named `WorkerEntrypoint` export\n * (defaults to the default export).\n *\n * For reference, see https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings\n */\n worker<TWorker$1 extends WorkerReference, TExportName$1 extends WorkerEntrypointExportName<TWorker$1> | undefined = undefined>(options: WorkerBindingOptions<TWorker$1, TExportName$1>): WorkerBinding<TWorker$1, NoInfer<TExportName$1>>;\n /** Binding to a Worker Loader. */\n workerLoader(): WorkerLoaderBinding;\n /**\n * Create a Workflow binding.\n * `worker` may be a Worker config reference or a Worker name.\n * `exportName` must be a valid `WorkflowEntrypoint` export for the given Worker.\n */\n workflow<TWorker$1 extends WorkerReference, TExportName$1 extends WorkflowExportName<TWorker$1>>(options: WorkflowBindingOptions<TWorker$1, TExportName$1>): WorkflowBinding<TWorker$1, NoInfer<TExportName$1>>;\n}\ndeclare const bindings: Bindings;\n//#endregion\nexport { defineConfig as $, RateLimitBinding as A, UnsafeBinding as B, KvBinding as C, WorkerEntrypointExport as Ct, PipelineBinding as D, exports as Dt, MtlsCertificateBinding as E, WorkflowExportOptions as Et, TextBinding as F, WorkerBinding as G, VersionMetadataBinding as H, TypedAiBinding as I, bindings as J, WorkerLoaderBinding as K, TypedKvBinding as L, SecretsStoreSecretBinding as M, SendEmailBinding as N, QueueBinding as O, StreamBinding$1 as P, WorkerReference as Q, TypedPipelineBinding as R, K2Record as S, Exports as St, MediaBinding$1 as T, WorkflowExport as Tt, VpcNetworkBinding as U, VectorizeBinding as V, VpcServiceBinding as W, ContainerDefinition as X, ConfigContext as Y, WorkerDefinition as Z, ImagesBinding$1 as _, DurableObjectCreatedExport as _t, AnalyticsEngineDatasetBinding as a, WorkerConfig as at, K2ProduceResult as b, DurableObjectRenamedExport as bt, AssetsBinding as c, FetchTrigger as ct, BrowserBinding as d, Triggers as dt, defineContainer as et, D1Binding as f, triggers as ft, HyperdriveBinding as g, UnwrapConfig as gt, FlagshipBinding as h, InferMainModule as ht, AiSearchNamespaceBinding as i, Settings as it, SecretBinding as j, R2Binding as k, BindingDevOptions as l, QueueConsumerTrigger as lt, DurableObjectBinding as m, InferEnv as mt, AiBinding as n, CloudflareConfig as nt, AnalyticsSQLBinding$1 as o, ConnectTrigger as ot, DispatchNamespaceBinding as p, InferDurableNamespaces as pt, WorkflowBinding as q, AiSearchBinding as r, ContainerConfig as rt, ArtifactsBinding as s, EmailTrigger as st, AgentMemoryBinding as t, defineWorker as tt, Bindings as u, ScheduledTrigger as ut, JsonBinding as v, DurableObjectDeletedExport as vt, LogfwdrBinding as w, WorkerEntrypointExportOptions as wt, K2Producer as x, DurableObjectTransferredExport as xt, K2Binding as y, DurableObjectExpectingTransferExport as yt, TypedQueueBinding as z };"],"mappings":";;AAKA;;;;AAsBe,UAtBE,cAAA,CAsBF;EACF,QAAA,CAAA,EAAA,OAAA;EACA,MAAA,CAAA,EAAA,OAAA;EAAM,SAAA,CAAA,EAAA,OAAA;UAnBV;WACC;;EC8iCA4K,iBAAa,CAAA,EAAA,OAAA;;UD1iCd;;IEZG,KAAA,EAAA,MAAA,EAAA;IACT,WAAA,CAAA,EAAA,OAAA;EACQ,CAAA,CAAA;EAAR,WAAA,CAAA,EFsBY,MEtBZ,CAAA,MAAA,EAAA,MAAA,CAAA;EACO,SAAA,CAAA,EFsBG,MEtBH,CAAA,MAAA,EAAA,MAAA,CAAA;EAAkB,SAAA,CAAA,EFuBf,MEvBe,CAAA,MAAA,EAAA,MAAA,CAAA;EAAyB,QAAA,CAAA,EAAA,MAAA;EAAR,UAAA,CAAA,EAAA,MAAA;EAAO,WAAA,CAAA,EAAA,MAAA;EAEpC,aAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UDijCNA,aAAAA;;;;;;;;;;;;;;;;;;AD/iCD,KEPG,oBAAA,GACT,cFMM,GELN,OFKM,CELE,cFKF,CAAA,GAAA,CAAA,CAAA,GAAA,EEJC,aFID,EAAA,GEJmB,cFInB,GEJoC,OFIpC,CEJ4C,cFI5C,CAAA,CAAA;AACC,iBEHM,oBAAA,CFGN,MAAA,EEFD,oBFEC,CAAA,EEDP,oBFCO"}