wrangler 4.49.0 → 4.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wrangler",
3
- "version": "4.49.0",
3
+ "version": "4.50.0",
4
4
  "description": "Command-line interface for all things Cloudflare Workers",
5
5
  "keywords": [
6
6
  "wrangler",
@@ -54,15 +54,15 @@
54
54
  "esbuild": "0.25.4",
55
55
  "path-to-regexp": "6.3.0",
56
56
  "unenv": "2.0.0-rc.24",
57
- "workerd": "1.20251113.0",
58
- "@cloudflare/kv-asset-handler": "0.4.0",
59
- "@cloudflare/unenv-preset": "2.7.10",
60
- "miniflare": "4.20251113.0"
57
+ "workerd": "1.20251118.0",
58
+ "miniflare": "4.20251118.1",
59
+ "@cloudflare/unenv-preset": "2.7.11",
60
+ "@cloudflare/kv-asset-handler": "0.4.0"
61
61
  },
62
62
  "devDependencies": {
63
63
  "@aws-sdk/client-s3": "^3.721.0",
64
64
  "@cloudflare/types": "6.18.4",
65
- "@cloudflare/workers-types": "^4.20251113.0",
65
+ "@cloudflare/workers-types": "^4.20251118.0",
66
66
  "@cspotcode/source-map-support": "0.8.1",
67
67
  "@netlify/build-info": "^10.0.9",
68
68
  "@sentry/node": "^7.86.0",
@@ -146,17 +146,17 @@
146
146
  "xxhash-wasm": "^1.0.1",
147
147
  "yaml": "^2.8.1",
148
148
  "yargs": "^17.7.2",
149
- "@cloudflare/containers-shared": "0.3.0",
150
149
  "@cloudflare/cli": "1.1.3",
150
+ "@cloudflare/containers-shared": "0.3.0",
151
151
  "@cloudflare/eslint-config-shared": "1.1.0",
152
- "@cloudflare/pages-shared": "^0.13.86",
152
+ "@cloudflare/pages-shared": "^0.13.88",
153
153
  "@cloudflare/workers-shared": "0.18.8",
154
- "@cloudflare/workers-utils": "0.1.1",
155
154
  "@cloudflare/workers-tsconfig": "0.0.0",
155
+ "@cloudflare/workers-utils": "0.2.0",
156
156
  "@cloudflare/workflows-shared": "0.3.8"
157
157
  },
158
158
  "peerDependencies": {
159
- "@cloudflare/workers-types": "^4.20251113.0"
159
+ "@cloudflare/workers-types": "^4.20251118.0"
160
160
  },
161
161
  "peerDependenciesMeta": {
162
162
  "@cloudflare/workers-types": {
@@ -184,23 +184,12 @@ var init_MultipartBody = __esm({
184
184
  }
185
185
  });
186
186
 
187
- // ../workers-utils/dist/chunk-PSOC3TD3.mjs
187
+ // ../workers-utils/dist/chunk-DBPNILFW.mjs
188
188
  function formatCompatibilityDate(date) {
189
189
  return date.toISOString().slice(0, 10);
190
190
  }
191
191
  function assertNever(_value) {
192
192
  }
193
- function createFatalError(message, isJson, code, telemetryMessage) {
194
- if (isJson) {
195
- return new JsonFriendlyFatalError(
196
- JSON.stringify(message),
197
- code,
198
- telemetryMessage
199
- );
200
- } else {
201
- return new FatalError(`${message}`, code, telemetryMessage);
202
- }
203
- }
204
193
  function mapWorkerMetadataBindings(bindings) {
205
194
  return bindings.filter((binding) => binding.type !== "secret_text").reduce((configObj, binding) => {
206
195
  switch (binding.type) {
@@ -460,9 +449,13 @@ function mapWorkerMetadataBindings(bindings) {
460
449
  ];
461
450
  break;
462
451
  case "assets":
463
- throw new FatalError(
464
- "`wrangler init --from-dash` is not yet supported for Workers with Assets"
465
- );
452
+ configObj.assets = {
453
+ binding: binding.name
454
+ // Note: we currently don't get all the assets information from the
455
+ // API, so here we are only able to set the name of the binding
456
+ // hopefully in the future we can properly fully support the binding
457
+ };
458
+ break;
466
459
  case "inherit":
467
460
  configObj.unsafe = {
468
461
  bindings: [...configObj.unsafe?.bindings ?? [], binding],
@@ -609,9 +602,9 @@ function constructWranglerConfig(workerOrWorkers) {
609
602
  }
610
603
  return combinedConfig;
611
604
  }
612
- var __defProp2, __name2, INHERIT_SYMBOL, SERVICE_TAG_PREFIX, ENVIRONMENT_TAG_PREFIX, PATH_TO_DEPLOY_CONFIG, UserError, FatalError, CommandLineArgsError, JsonFriendlyFatalError, MissingConfigError;
613
- var init_chunk_PSOC3TD3 = __esm({
614
- "../workers-utils/dist/chunk-PSOC3TD3.mjs"() {
605
+ var __defProp2, __name2, INHERIT_SYMBOL, SERVICE_TAG_PREFIX, ENVIRONMENT_TAG_PREFIX, PATH_TO_DEPLOY_CONFIG;
606
+ var init_chunk_DBPNILFW = __esm({
607
+ "../workers-utils/dist/chunk-DBPNILFW.mjs"() {
615
608
  init_import_meta_url();
616
609
  __defProp2 = Object.defineProperty;
617
610
  __name2 = /* @__PURE__ */ __name((target, value) => __defProp2(target, "name", { value, configurable: true }), "__name");
@@ -623,79 +616,6 @@ var init_chunk_PSOC3TD3 = __esm({
623
616
  __name2(formatCompatibilityDate, "formatCompatibilityDate");
624
617
  __name(assertNever, "assertNever");
625
618
  __name2(assertNever, "assertNever");
626
- UserError = class extends Error {
627
- static {
628
- __name(this, "UserError");
629
- }
630
- static {
631
- __name2(this, "UserError");
632
- }
633
- telemetryMessage;
634
- constructor(message, options) {
635
- super(message, options);
636
- Object.setPrototypeOf(this, new.target.prototype);
637
- this.telemetryMessage = options?.telemetryMessage === true ? message : options?.telemetryMessage;
638
- }
639
- };
640
- (class extends UserError {
641
- static {
642
- __name(this, "DeprecationError");
643
- }
644
- static {
645
- __name2(this, "DeprecationError");
646
- }
647
- constructor(message, options) {
648
- super(`Deprecation:
649
- ${message}`, options);
650
- }
651
- });
652
- FatalError = class extends UserError {
653
- static {
654
- __name(this, "FatalError");
655
- }
656
- constructor(message, code, options) {
657
- super(message, options);
658
- this.code = code;
659
- }
660
- static {
661
- __name2(this, "FatalError");
662
- }
663
- };
664
- CommandLineArgsError = class extends UserError {
665
- static {
666
- __name(this, "CommandLineArgsError");
667
- }
668
- static {
669
- __name2(this, "CommandLineArgsError");
670
- }
671
- };
672
- JsonFriendlyFatalError = class extends FatalError {
673
- static {
674
- __name(this, "JsonFriendlyFatalError");
675
- }
676
- constructor(message, code, options) {
677
- super(message, code, options);
678
- this.code = code;
679
- }
680
- static {
681
- __name2(this, "JsonFriendlyFatalError");
682
- }
683
- };
684
- MissingConfigError = class extends Error {
685
- static {
686
- __name(this, "MissingConfigError");
687
- }
688
- static {
689
- __name2(this, "MissingConfigError");
690
- }
691
- telemetryMessage;
692
- constructor(key) {
693
- super(`Missing config value for ${key}`);
694
- this.telemetryMessage = `Missing config value for ${key}`;
695
- }
696
- };
697
- __name(createFatalError, "createFatalError");
698
- __name2(createFatalError, "createFatalError");
699
619
  __name(mapWorkerMetadataBindings, "mapWorkerMetadataBindings");
700
620
  __name2(mapWorkerMetadataBindings, "mapWorkerMetadataBindings");
701
621
  __name(convertWorkerToWranglerConfig, "convertWorkerToWranglerConfig");
@@ -2662,6 +2582,17 @@ function applyEdits(text, edits) {
2662
2582
  }
2663
2583
  return text;
2664
2584
  }
2585
+ function createFatalError(message, isJson, code, telemetryMessage) {
2586
+ if (isJson) {
2587
+ return new JsonFriendlyFatalError(
2588
+ JSON.stringify(message),
2589
+ code,
2590
+ telemetryMessage
2591
+ );
2592
+ } else {
2593
+ return new FatalError(`${message}`, code, telemetryMessage);
2594
+ }
2595
+ }
2665
2596
  function parseTOML(input, file) {
2666
2597
  try {
2667
2598
  return dist_default.parse(input);
@@ -4565,6 +4496,15 @@ function validateContainerApp(envName, topLevelName, configPath) {
4565
4496
  `"containers.durable_objects" is deprecated. Use the "class_name" field instead.`
4566
4497
  );
4567
4498
  }
4499
+ if ("unsafe" in containerAppOptional) {
4500
+ if (containerAppOptional.unsafe && typeof containerAppOptional.unsafe !== "object" || Array.isArray(containerAppOptional.unsafe)) {
4501
+ diagnostics.errors.push(
4502
+ `The field "containers.unsafe" should be an object but got ${JSON.stringify(
4503
+ typeof containerAppOptional.unsafe
4504
+ )}.`
4505
+ );
4506
+ }
4507
+ }
4568
4508
  validateAdditionalProperties(
4569
4509
  diagnostics,
4570
4510
  field,
@@ -4585,7 +4525,8 @@ function validateContainerApp(envName, topLevelName, configPath) {
4585
4525
  "rollout_step_percentage",
4586
4526
  "rollout_kind",
4587
4527
  "durable_objects",
4588
- "rollout_active_grace_period"
4528
+ "rollout_active_grace_period",
4529
+ "unsafe"
4589
4530
  ]
4590
4531
  );
4591
4532
  if ("configuration" in containerAppOptional) {
@@ -4875,12 +4816,12 @@ Pages requires Durable Object bindings to specify the name of the Worker where t
4875
4816
  }
4876
4817
  }
4877
4818
  }
4878
- var defaultWranglerConfig, TomlError2, DATE_TIME_RE, TomlDate, INT_REGEX, FLOAT_REGEX, LEADING_ZERO, ESCAPE_REGEX, ESC_MAP, KEY_PART_RE, BARE_KEY, dist_default, CharacterCodes, ParseOptions, ScanError, SyntaxKind, parse3, ParseErrorCode, ParseError, APIError, units, UNSUPPORTED_BOMS, typeMappings, matchType, toPath, toPath2, findUpStop, esm_default, parseRawConfigFile; exports.experimental_readRawConfig = void 0; exports.experimental_patchConfig = void 0; var getJSONPath, PatchConfigError, ApplicationRollout, BadRequestWithCodeError, CreateApplicationRolloutRequest, DeploymentNotFoundError, ImageRegistryAlreadyExistsError, ImageRegistryIsPublic, ImageRegistryNotAllowedError, ImageRegistryNotFoundError, ImageRegistryProtocolAlreadyExists, ImageRegistryProtocolIsReferencedError, ImageRegistryProtocolNotFound, ProvisionerConfiguration, RolloutStep, SecretNameAlreadyExists, SecretNotFound, SSHPublicKeyNotFoundError, UpdateApplicationRolloutRequest, UserError2, isDockerfile, MAX_WORKFLOW_NAME_LENGTH, ALLOWED_STRING_ID_PATTERN, ALLOWED_WORKFLOW_INSTANCE_ID_REGEX, ALLOWED_WORKFLOW_NAME_REGEX, Diagnostics, appendEnvName, isString, isValidName, isValidDateTimeStringFormat, isStringArray, isOneOf, all, isMutuallyExclusiveWith, isBoolean, validateRequiredProperty, validateAtLeastOnePropertyRequired, validateOptionalProperty, validateTypedArray, validateOptionalTypedArray, isRequiredProperty, isOptionalProperty, hasProperty, validateAdditionalProperties, getBindingNames, isBindingList, isNamespaceList, isRecord, validateUniqueNameProperty, bucketFormatMessage, friendlyBindingNames, ENGLISH, ALLOWED_INSTANCE_TYPES, isRoute, isRouteArray, validateTailConsumers, validateStreamingTailConsumers, validateAndNormalizeRules, validateTriggers, validateRules, validateRule, validateDefines, validateVars, validateBindingsProperty, validateUnsafeSettings, validateDurableObjectBinding, workflowNameFormatMessage, validateWorkflowBinding, validateCflogfwdrObject, validateCflogfwdrBinding, validateAssetsConfig, validateNamedSimpleBinding, validateAIBinding, validateVersionMetadataBinding, validateUnsafeBinding, validateBindingArray, validateCloudchamberConfig, validateKVBinding, validateSendEmailBinding, validateQueueBinding, validateR2Binding, validateD1Binding, validateVectorizeBinding, validateHyperdriveBinding, validateVpcServiceBinding, validateBindingsHaveUniqueNames, validateServiceBinding, validateAnalyticsEngineBinding, validateWorkerNamespaceBinding, validateMTlsCertificateBinding, validateConsumer, validateCompatibilityDate, validatePipelineBinding, validateSecretsStoreSecretBinding, validateHelloWorldBinding, validateWorkerLoaderBinding, validateRateLimitBinding, validateMigrations, validateObservability, validatePythonModules, supportedPagesConfigFields;
4819
+ var defaultWranglerConfig, TomlError2, DATE_TIME_RE, TomlDate, INT_REGEX, FLOAT_REGEX, LEADING_ZERO, ESCAPE_REGEX, ESC_MAP, KEY_PART_RE, BARE_KEY, dist_default, CharacterCodes, ParseOptions, ScanError, SyntaxKind, parse3, ParseErrorCode, UserError, FatalError, CommandLineArgsError, JsonFriendlyFatalError, MissingConfigError, ParseError, APIError, units, UNSUPPORTED_BOMS, typeMappings, matchType, toPath, toPath2, findUpStop, esm_default, parseRawConfigFile; exports.experimental_readRawConfig = void 0; exports.experimental_patchConfig = void 0; var getJSONPath, PatchConfigError, ApplicationRollout, BadRequestWithCodeError, CreateApplicationRolloutRequest, DeploymentNotFoundError, ImageRegistryAlreadyExistsError, ImageRegistryIsPublic, ImageRegistryNotAllowedError, ImageRegistryNotFoundError, ImageRegistryProtocolAlreadyExists, ImageRegistryProtocolIsReferencedError, ImageRegistryProtocolNotFound, ProvisionerConfiguration, RolloutStep, SecretNameAlreadyExists, SecretNotFound, SSHPublicKeyNotFoundError, UpdateApplicationRolloutRequest, UserError2, isDockerfile, MAX_WORKFLOW_NAME_LENGTH, ALLOWED_STRING_ID_PATTERN, ALLOWED_WORKFLOW_INSTANCE_ID_REGEX, ALLOWED_WORKFLOW_NAME_REGEX, Diagnostics, appendEnvName, isString, isValidName, isValidDateTimeStringFormat, isStringArray, isOneOf, all, isMutuallyExclusiveWith, isBoolean, validateRequiredProperty, validateAtLeastOnePropertyRequired, validateOptionalProperty, validateTypedArray, validateOptionalTypedArray, isRequiredProperty, isOptionalProperty, hasProperty, validateAdditionalProperties, getBindingNames, isBindingList, isNamespaceList, isRecord, validateUniqueNameProperty, bucketFormatMessage, friendlyBindingNames, ENGLISH, ALLOWED_INSTANCE_TYPES, isRoute, isRouteArray, validateTailConsumers, validateStreamingTailConsumers, validateAndNormalizeRules, validateTriggers, validateRules, validateRule, validateDefines, validateVars, validateBindingsProperty, validateUnsafeSettings, validateDurableObjectBinding, workflowNameFormatMessage, validateWorkflowBinding, validateCflogfwdrObject, validateCflogfwdrBinding, validateAssetsConfig, validateNamedSimpleBinding, validateAIBinding, validateVersionMetadataBinding, validateUnsafeBinding, validateBindingArray, validateCloudchamberConfig, validateKVBinding, validateSendEmailBinding, validateQueueBinding, validateR2Binding, validateD1Binding, validateVectorizeBinding, validateHyperdriveBinding, validateVpcServiceBinding, validateBindingsHaveUniqueNames, validateServiceBinding, validateAnalyticsEngineBinding, validateWorkerNamespaceBinding, validateMTlsCertificateBinding, validateConsumer, validateCompatibilityDate, validatePipelineBinding, validateSecretsStoreSecretBinding, validateHelloWorldBinding, validateWorkerLoaderBinding, validateRateLimitBinding, validateMigrations, validateObservability, validatePythonModules, supportedPagesConfigFields;
4879
4820
  var init_dist = __esm({
4880
4821
  "../workers-utils/dist/index.mjs"() {
4881
4822
  init_import_meta_url();
4882
- init_chunk_PSOC3TD3();
4883
- init_chunk_PSOC3TD3();
4823
+ init_chunk_DBPNILFW();
4824
+ init_chunk_DBPNILFW();
4884
4825
  defaultWranglerConfig = {
4885
4826
  /* COMPUTED_FIELDS */
4886
4827
  configPath: void 0,
@@ -5354,6 +5295,79 @@ ${codeblock}`, options);
5354
5295
  __name2(modify, "modify");
5355
5296
  __name(applyEdits, "applyEdits");
5356
5297
  __name2(applyEdits, "applyEdits");
5298
+ UserError = class extends Error {
5299
+ static {
5300
+ __name(this, "UserError");
5301
+ }
5302
+ static {
5303
+ __name2(this, "UserError");
5304
+ }
5305
+ telemetryMessage;
5306
+ constructor(message, options) {
5307
+ super(message, options);
5308
+ Object.setPrototypeOf(this, new.target.prototype);
5309
+ this.telemetryMessage = options?.telemetryMessage === true ? message : options?.telemetryMessage;
5310
+ }
5311
+ };
5312
+ (class extends UserError {
5313
+ static {
5314
+ __name(this, "DeprecationError");
5315
+ }
5316
+ static {
5317
+ __name2(this, "DeprecationError");
5318
+ }
5319
+ constructor(message, options) {
5320
+ super(`Deprecation:
5321
+ ${message}`, options);
5322
+ }
5323
+ });
5324
+ FatalError = class extends UserError {
5325
+ static {
5326
+ __name(this, "FatalError");
5327
+ }
5328
+ constructor(message, code, options) {
5329
+ super(message, options);
5330
+ this.code = code;
5331
+ }
5332
+ static {
5333
+ __name2(this, "FatalError");
5334
+ }
5335
+ };
5336
+ CommandLineArgsError = class extends UserError {
5337
+ static {
5338
+ __name(this, "CommandLineArgsError");
5339
+ }
5340
+ static {
5341
+ __name2(this, "CommandLineArgsError");
5342
+ }
5343
+ };
5344
+ JsonFriendlyFatalError = class extends FatalError {
5345
+ static {
5346
+ __name(this, "JsonFriendlyFatalError");
5347
+ }
5348
+ constructor(message, code, options) {
5349
+ super(message, code, options);
5350
+ this.code = code;
5351
+ }
5352
+ static {
5353
+ __name2(this, "JsonFriendlyFatalError");
5354
+ }
5355
+ };
5356
+ MissingConfigError = class extends Error {
5357
+ static {
5358
+ __name(this, "MissingConfigError");
5359
+ }
5360
+ static {
5361
+ __name2(this, "MissingConfigError");
5362
+ }
5363
+ telemetryMessage;
5364
+ constructor(key) {
5365
+ super(`Missing config value for ${key}`);
5366
+ this.telemetryMessage = `Missing config value for ${key}`;
5367
+ }
5368
+ };
5369
+ __name(createFatalError, "createFatalError");
5370
+ __name2(createFatalError, "createFatalError");
5357
5371
  ParseError = class extends UserError {
5358
5372
  static {
5359
5373
  __name(this, "ParseError");
@@ -47825,7 +47839,7 @@ var name, version;
47825
47839
  var init_package = __esm({
47826
47840
  "package.json"() {
47827
47841
  name = "wrangler";
47828
- version = "4.49.0";
47842
+ version = "4.50.0";
47829
47843
  }
47830
47844
  });
47831
47845
 
@@ -137257,12 +137271,16 @@ async function apply(args, containerConfig, config) {
137257
137271
  const imageRef = "remoteDigest" in args.imageRef ? prevApp?.configuration.image ?? args.imageRef.remoteDigest : args.imageRef.newTag;
137258
137272
  log(dim("Container application changes\n"));
137259
137273
  const accountId = config.account_id || await getAccountId(config);
137260
- const appConfig = containerConfigToCreateRequest(
137261
- accountId,
137262
- containerConfig,
137263
- imageRef,
137264
- args.durable_object_namespace_id,
137265
- prevApp
137274
+ const appConfig = mergeIfUnsafe(
137275
+ config,
137276
+ containerConfigToCreateRequest(
137277
+ accountId,
137278
+ containerConfig,
137279
+ imageRef,
137280
+ args.durable_object_namespace_id,
137281
+ prevApp
137282
+ ),
137283
+ containerConfig.name
137266
137284
  );
137267
137285
  if (prevApp !== void 0 && prevApp !== null) {
137268
137286
  if (!prevApp.durable_objects?.namespace_id) {
@@ -137284,7 +137302,11 @@ async function apply(args, containerConfig, config) {
137284
137302
  cleanApplicationFromAPI(prevApp, containerConfig, accountId)
137285
137303
  )
137286
137304
  );
137287
- const modifyReq = createApplicationToModifyApplication(appConfig);
137305
+ const modifyReq = mergeIfUnsafe(
137306
+ config,
137307
+ createApplicationToModifyApplication(appConfig),
137308
+ appConfig.name
137309
+ );
137288
137310
  const nowContainer = mergeDeep2(
137289
137311
  normalisedPrevApp,
137290
137312
  sortObjectRecursive(modifyReq)
@@ -137338,6 +137360,19 @@ async function apply(args, containerConfig, config) {
137338
137360
  newline();
137339
137361
  endSection("Applied changes");
137340
137362
  }
137363
+ function mergeIfUnsafe(fullConfig, containerConfig, name2) {
137364
+ const unsafeContainerConfig = fullConfig.containers?.find((original) => {
137365
+ return original.name === name2 && original.unsafe !== void 0;
137366
+ });
137367
+ if (unsafeContainerConfig) {
137368
+ return mergeDeep2(
137369
+ containerConfig,
137370
+ unsafeContainerConfig.unsafe
137371
+ );
137372
+ } else {
137373
+ return containerConfig;
137374
+ }
137375
+ }
137341
137376
  function formatError(err) {
137342
137377
  try {
137343
137378
  const maybeError = JSON.parse(err.body.error);
@@ -137401,6 +137436,7 @@ var init_deploy = __esm({
137401
137436
  __name(observabilityToConfiguration, "observabilityToConfiguration");
137402
137437
  __name(containerConfigToCreateRequest, "containerConfigToCreateRequest");
137403
137438
  __name(apply, "apply");
137439
+ __name(mergeIfUnsafe, "mergeIfUnsafe");
137404
137440
  __name(formatError, "formatError");
137405
137441
  doAction = /* @__PURE__ */ __name(async (action) => {
137406
137442
  if (action.action === "create") {
@@ -181050,6 +181086,7 @@ var init_sveltekit = __esm({
181050
181086
  "sv",
181051
181087
  "add",
181052
181088
  "--no-install",
181089
+ "--no-git-check",
181053
181090
  "sveltekit-adapter=adapter:cloudflare"
181054
181091
  ],
181055
181092
  {
@@ -183763,6 +183800,11 @@ async function downloadWorker(accountId, workerName) {
183763
183800
  entrypoint,
183764
183801
  accountId
183765
183802
  );
183803
+ if (config.assets) {
183804
+ throw new FatalError(
183805
+ "`wrangler init --from-dash` is not yet supported for Workers with Assets"
183806
+ );
183807
+ }
183766
183808
  return {
183767
183809
  modules,
183768
183810
  config
@@ -232381,8 +232423,9 @@ var init_object3 = __esm({
232381
232423
  r2BulkNamespace = createNamespace({
232382
232424
  metadata: {
232383
232425
  description: `Interact with multiple R2 objects at once`,
232384
- status: "stable",
232385
- owner: "Product: R2"
232426
+ status: "experimental",
232427
+ owner: "Product: R2",
232428
+ hidden: true
232386
232429
  }
232387
232430
  });
232388
232431
  r2ObjectGetCommand = createCommand({
@@ -232759,8 +232802,9 @@ var init_object3 = __esm({
232759
232802
  r2BulkPutCommand = createCommand({
232760
232803
  metadata: {
232761
232804
  description: "Create objects in an R2 bucket",
232762
- status: "stable",
232763
- owner: "Product: R2"
232805
+ status: "experimental",
232806
+ owner: "Product: R2",
232807
+ hidden: true
232764
232808
  },
232765
232809
  positionalArgs: ["bucket"],
232766
232810
  args: {
@@ -247386,6 +247430,11 @@ function normalizeLocalResolvedConfigAsRemote(localResolvedConfig) {
247386
247430
  observability: normalizeObservability(localResolvedConfig.observability)
247387
247431
  };
247388
247432
  removeRemoteConfigFieldFromBindings(normalizedConfig);
247433
+ if (normalizedConfig.assets) {
247434
+ normalizedConfig.assets = {
247435
+ binding: normalizedConfig.assets.binding
247436
+ };
247437
+ }
247389
247438
  return normalizedConfig;
247390
247439
  }
247391
247440
  function removeRemoteConfigFieldFromBindings(normalizedConfig) {
@@ -247492,7 +247541,14 @@ function normalizeObservability(obs) {
247492
247541
  function normalizeRemoteConfigAsResolvedLocal(remoteConfig, localResolvedConfig) {
247493
247542
  let normalizedRemote = {};
247494
247543
  Object.entries(localResolvedConfig).forEach(([key, value]) => {
247495
- if (key !== "observability") {
247544
+ if (
247545
+ // We want to skip observability since it has a remote default behavior
247546
+ // different from that of wrangler
247547
+ key !== "observability" && // We want to skip assets since it is a special case, the issue being that
247548
+ // remotely assets configs only include at most the binding name and we
247549
+ // already address that in the local config normalization already
247550
+ key !== "assets"
247551
+ ) {
247496
247552
  normalizedRemote[key] = value;
247497
247553
  }
247498
247554
  });