create-cloudflare 2.72.7 → 2.72.8

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.
Files changed (2) hide show
  1. package/dist/cli.js +146 -68
  2. package/package.json +7 -8
package/dist/cli.js CHANGED
@@ -77461,7 +77461,7 @@ function dedent(templ) {
77461
77461
  __name(dedent, "dedent");
77462
77462
  var esm_default = dedent;
77463
77463
 
77464
- // ../workers-utils/dist/chunk-R5MIV2EH.mjs
77464
+ // ../workers-utils/dist/chunk-JGKSDUFK.mjs
77465
77465
  init_chunk_Q72B4Q5Z();
77466
77466
  var import_node_fs = require("node:fs");
77467
77467
  var import_node_path = __toESM(require("node:path"), 1);
@@ -77504,6 +77504,19 @@ function getDurableObjectContainerApps(containers) {
77504
77504
  return Array.isArray(containers) ? containers.filter(isDurableObjectContainerApp) : [];
77505
77505
  }
77506
77506
  __name(getDurableObjectContainerApps, "getDurableObjectContainerApps");
77507
+ function getResolvedDurableObjectContainerApps(containers, exports$1) {
77508
+ return getDurableObjectContainerApps(containers).map((container) => {
77509
+ const className = resolveContainerClassName(container, exports$1);
77510
+ if (typeof className !== "string" || className.length === 0) {
77511
+ throw new UserError(
77512
+ `The container "${container.name}" is not linked to a Durable Object. Either set "containers.class_name", or reference this container from a Durable Object's \`exports\` entry via its "container" field.`,
77513
+ { telemetryMessage: "durable object container class unresolved" }
77514
+ );
77515
+ }
77516
+ return { ...container, class_name: className };
77517
+ });
77518
+ }
77519
+ __name(getResolvedDurableObjectContainerApps, "getResolvedDurableObjectContainerApps");
77507
77520
  function getContainerNameToClassNameMap(exports$1) {
77508
77521
  const containerNameToClassName = /* @__PURE__ */ new Map();
77509
77522
  for (const [className, entry] of Object.entries(
@@ -77604,12 +77617,17 @@ function getDurableObjectClassNameToUseSQLiteMap(migrations, exports$1) {
77604
77617
  return durableObjectClassNameToUseSQLiteMap;
77605
77618
  }
77606
77619
  __name(getDurableObjectClassNameToUseSQLiteMap, "getDurableObjectClassNameToUseSQLiteMap");
77607
- function validateDurableObjectContainerApplications(config50) {
77620
+ function validateDurableObjectContainerApplications(config50, containers = getDurableObjectContainerApps(
77621
+ config50.containers
77622
+ )) {
77608
77623
  const allDOs = getDurableObjectClassNameToUseSQLiteMap(
77609
77624
  config50.migrations,
77610
77625
  config50.exports
77611
77626
  );
77612
- for (const container of getDurableObjectContainerApps(config50.containers)) {
77627
+ for (const container of getResolvedDurableObjectContainerApps(
77628
+ containers,
77629
+ config50.exports
77630
+ )) {
77613
77631
  const maybeBoundDO = config50.durable_objects.bindings.find(
77614
77632
  (durableObject) => durableObject.class_name === container.class_name
77615
77633
  );
@@ -79935,7 +79953,7 @@ var APIError = class extends ParseError {
79935
79953
  }
79936
79954
  isGatewayError() {
79937
79955
  if (this.#status !== void 0) {
79938
- return [524].includes(this.#status);
79956
+ return [502, 503, 504, 524].includes(this.#status);
79939
79957
  }
79940
79958
  return false;
79941
79959
  }
@@ -80395,9 +80413,9 @@ function formatConfigSnippet(snippet, configPath, formatted = true) {
80395
80413
  }
80396
80414
  __name(formatConfigSnippet, "formatConfigSnippet");
80397
80415
 
80398
- // ../workers-utils/dist/chunk-KBTXSRPS.mjs
80416
+ // ../workers-utils/dist/chunk-5H6GBNUC.mjs
80399
80417
  init_chunk_Q72B4Q5Z();
80400
- var DEFAULT_COMPAT_DATE = "2026-09-11";
80418
+ var DEFAULT_COMPAT_DATE = "2026-09-15";
80401
80419
  function assertNever(_value) {
80402
80420
  }
80403
80421
  __name(assertNever, "assertNever");
@@ -80677,13 +80695,6 @@ function mapWorkerMetadataBindings(bindings) {
80677
80695
  }
80678
80696
  ];
80679
80697
  break;
80680
- case "websearch":
80681
- {
80682
- configObj.websearch = {
80683
- binding: binding.name
80684
- };
80685
- }
80686
- break;
80687
80698
  case "agent_memory": {
80688
80699
  configObj.agent_memory = [
80689
80700
  ...configObj.agent_memory ?? [],
@@ -82976,7 +82987,6 @@ var defaultWranglerConfig = {
82976
82987
  vectorize: [],
82977
82988
  ai_search_namespaces: [],
82978
82989
  ai_search: [],
82979
- websearch: void 0,
82980
82990
  agent_memory: [],
82981
82991
  hyperdrive: [],
82982
82992
  workflows: [],
@@ -98285,7 +98295,6 @@ var friendlyBindingNames = {
98285
98295
  vectorize: "Vectorize Index",
98286
98296
  ai_search_namespaces: "AI Search Namespace",
98287
98297
  ai_search: "AI Search Instance",
98288
- websearch: "Web Search",
98289
98298
  agent_memory: "Agent Memory",
98290
98299
  hyperdrive: "Hyperdrive Config",
98291
98300
  r2_buckets: "R2 Bucket",
@@ -98339,7 +98348,6 @@ var bindingTypeFriendlyNames = {
98339
98348
  vectorize: "Vectorize Index",
98340
98349
  ai_search_namespace: "AI Search Namespace",
98341
98350
  ai_search: "AI Search Instance",
98342
- websearch: "Web Search",
98343
98351
  agent_memory: "Agent Memory",
98344
98352
  hyperdrive: "Hyperdrive Config",
98345
98353
  service: "Worker",
@@ -99614,16 +99622,6 @@ function normalizeAndValidateEnvironment(diagnostics, configPath, rawEnv, isDisp
99614
99622
  validateBindingArray(envName, validateAISearchBinding),
99615
99623
  []
99616
99624
  ),
99617
- websearch: notInheritable(
99618
- diagnostics,
99619
- topLevelEnv,
99620
- rawConfig,
99621
- rawEnv,
99622
- envName,
99623
- "websearch",
99624
- validateNamedSimpleBinding(envName),
99625
- void 0
99626
- ),
99627
99625
  agent_memory: notInheritable(
99628
99626
  diagnostics,
99629
99627
  topLevelEnv,
@@ -100876,7 +100874,6 @@ var validateUnsafeBinding = /* @__PURE__ */ __name((diagnostics, field, value) =
100876
100874
  "ai",
100877
100875
  "ai_search_namespace",
100878
100876
  "ai_search",
100879
- "websearch",
100880
100877
  "agent_memory",
100881
100878
  "kv_namespace",
100882
100879
  "durable_object_namespace",
@@ -101092,8 +101089,25 @@ function validateDurableObjectContainerImages(diagnostics, field, images, compli
101092
101089
  valid = false;
101093
101090
  }
101094
101091
  }
101092
+ const isDockerfileBuild = hasDockerfile && !hasImage;
101093
+ if (isDockerfileBuild) {
101094
+ if (image.build_context !== void 0 && (typeof image.build_context !== "string" || image.build_context.length === 0)) {
101095
+ diagnostics.errors.push(
101096
+ `"${imageField}.build_context" must be a non-empty string.`
101097
+ );
101098
+ valid = false;
101099
+ }
101100
+ if (image.build_vars !== void 0 && (typeof image.build_vars !== "object" || image.build_vars === null || Array.isArray(image.build_vars) || Object.values(image.build_vars).some(
101101
+ (value) => typeof value !== "string"
101102
+ ))) {
101103
+ diagnostics.errors.push(
101104
+ `"${imageField}.build_vars" must be an object with string values.`
101105
+ );
101106
+ valid = false;
101107
+ }
101108
+ }
101095
101109
  const unsupportedFields = Object.keys(image).filter(
101096
- (property) => property !== "dockerfile" && property !== "image"
101110
+ (property) => property !== "dockerfile" && property !== "image" && !(isDockerfileBuild && (property === "build_context" || property === "build_vars"))
101097
101111
  );
101098
101112
  if (unsupportedFields.length > 0) {
101099
101113
  diagnostics.errors.push(
@@ -101105,6 +101119,32 @@ function validateDurableObjectContainerImages(diagnostics, field, images, compli
101105
101119
  return valid;
101106
101120
  }
101107
101121
  __name(validateDurableObjectContainerImages, "validateDurableObjectContainerImages");
101122
+ function validateDurableObjectContainerUnsafe(diagnostics, field, value) {
101123
+ if (value === void 0) {
101124
+ return;
101125
+ }
101126
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
101127
+ diagnostics.errors.push(`"${field}" should be an object.`);
101128
+ return;
101129
+ }
101130
+ const unsafe = value;
101131
+ const configuration = unsafe.configuration;
101132
+ if (Object.keys(unsafe).some((key) => key !== "configuration") || configuration !== void 0 && (typeof configuration !== "object" || configuration === null || Array.isArray(configuration) || Object.keys(configuration).some((key) => key !== "experimental_flags"))) {
101133
+ diagnostics.errors.push(
101134
+ `Only "${field}.configuration.experimental_flags" is supported for Durable Object-managed Containers.`
101135
+ );
101136
+ return;
101137
+ }
101138
+ if (configuration !== void 0) {
101139
+ const flags = configuration.experimental_flags;
101140
+ if (flags !== void 0 && (!Array.isArray(flags) || flags.some((flag) => typeof flag !== "string"))) {
101141
+ diagnostics.errors.push(
101142
+ `"${field}.configuration.experimental_flags" should be an array of strings.`
101143
+ );
101144
+ }
101145
+ }
101146
+ }
101147
+ __name(validateDurableObjectContainerUnsafe, "validateDurableObjectContainerUnsafe");
101108
101148
  function validateContainerApp(envName, topLevelName, configPath, options = {}) {
101109
101149
  const { generateDefaultName = true } = options;
101110
101150
  return (diagnostics, field, value, config210) => {
@@ -101120,19 +101160,16 @@ function validateContainerApp(envName, topLevelName, configPath, options = {}) {
101120
101160
  for (const containerAppOptional of value) {
101121
101161
  const isDurableObjectManaged = containerAppOptional.scheduling_policy === "durable_object";
101122
101162
  const hasValidDurableObjectClassName = typeof containerAppOptional.class_name === "string" && containerAppOptional.class_name.length > 0;
101123
- if (isDurableObjectManaged) {
101124
- if (!hasValidDurableObjectClassName) {
101125
- diagnostics.errors.push(
101126
- `"containers.class_name" must be a non-empty string when "containers.scheduling_policy" is "durable_object".`
101127
- );
101128
- }
101129
- } else {
101130
- validateOptionalProperty(
101131
- diagnostics,
101132
- field,
101133
- "class_name",
101134
- containerAppOptional.class_name,
101135
- "string"
101163
+ validateOptionalProperty(
101164
+ diagnostics,
101165
+ field,
101166
+ "class_name",
101167
+ containerAppOptional.class_name,
101168
+ "string"
101169
+ );
101170
+ if (isDurableObjectManaged && containerAppOptional.class_name === "") {
101171
+ diagnostics.errors.push(
101172
+ `"containers.class_name" must be a non-empty string when specified for a Durable Object-managed Container.`
101136
101173
  );
101137
101174
  }
101138
101175
  validateOptionalProperty(
@@ -101142,7 +101179,7 @@ function validateContainerApp(envName, topLevelName, configPath, options = {}) {
101142
101179
  containerAppOptional.name,
101143
101180
  "string"
101144
101181
  );
101145
- if (generateDefaultName && !containerAppOptional.name && (!isDurableObjectManaged || hasValidDurableObjectClassName)) {
101182
+ if (generateDefaultName && !containerAppOptional.name && (!isDurableObjectManaged || containerAppOptional.class_name === void 0 || hasValidDurableObjectClassName)) {
101146
101183
  if (containerAppOptional.class_name === void 0) {
101147
101184
  diagnostics.errors.push(
101148
101185
  `"containers.name" is required when "containers.class_name" is not defined, because there is no class name to derive a default name from. Either name this container and reference it from a Durable Object's \`exports\` entry, or set "containers.class_name".`
@@ -101164,12 +101201,35 @@ function validateContainerApp(envName, topLevelName, configPath, options = {}) {
101164
101201
  containerAppOptional.images,
101165
101202
  options.complianceConfig
101166
101203
  );
101204
+ validateContainerObservability(
101205
+ diagnostics,
101206
+ `${field}.observability`,
101207
+ containerAppOptional.observability,
101208
+ config210
101209
+ );
101210
+ if (containerAppOptional.observability?.target_instance_count !== void 0 || containerAppOptional.observability?.target_instance_percentage !== void 0) {
101211
+ diagnostics.errors.push(
101212
+ `"${field}.observability" only supports enabling or disabling logs for Durable Object-managed Containers; instance targeting is not supported.`
101213
+ );
101214
+ }
101215
+ validateDurableObjectContainerUnsafe(
101216
+ diagnostics,
101217
+ `${field}.unsafe`,
101218
+ containerAppOptional.unsafe
101219
+ );
101167
101220
  const unsupportedFields = Object.keys(containerAppOptional).filter(
101168
- (key) => !["name", "class_name", "scheduling_policy", "images"].includes(key)
101221
+ (key) => ![
101222
+ "name",
101223
+ "class_name",
101224
+ "scheduling_policy",
101225
+ "images",
101226
+ "observability",
101227
+ "unsafe"
101228
+ ].includes(key)
101169
101229
  );
101170
101230
  if (unsupportedFields.length > 0) {
101171
101231
  diagnostics.errors.push(
101172
- `Unsupported fields for Durable Object-managed Containers in ${field}: ${unsupportedFields.map((key) => `"${key}"`).join(",")}. Only "name", "class_name", "scheduling_policy", and "images" are supported.`
101232
+ `Unsupported fields for Durable Object-managed Containers in ${field}: ${unsupportedFields.map((key) => `"${key}"`).join(",")}. Only "name", "class_name", "scheduling_policy", "images", "observability", and restricted "unsafe" settings are supported.`
101173
101233
  );
101174
101234
  }
101175
101235
  continue;
@@ -103012,6 +103072,8 @@ var validatePreviewsConfig = /* @__PURE__ */ __name((envName, configPath) => (di
103012
103072
  "d1_databases",
103013
103073
  "r2_buckets",
103014
103074
  "vectorize",
103075
+ "ai_search_namespaces",
103076
+ "ai_search",
103015
103077
  "hyperdrive",
103016
103078
  "services",
103017
103079
  "analytics_engine_datasets",
@@ -103098,6 +103160,18 @@ var validatePreviewsConfig = /* @__PURE__ */ __name((envName, configPath) => (di
103098
103160
  previews.vectorize,
103099
103161
  void 0
103100
103162
  ) && isValid;
103163
+ isValid = validateBindingArray(envName, validateAISearchNamespaceBinding)(
103164
+ diagnostics,
103165
+ `${field}.ai_search_namespaces`,
103166
+ previews.ai_search_namespaces,
103167
+ void 0
103168
+ ) && isValid;
103169
+ isValid = validateBindingArray(envName, validateAISearchBinding)(
103170
+ diagnostics,
103171
+ `${field}.ai_search`,
103172
+ previews.ai_search,
103173
+ void 0
103174
+ ) && isValid;
103101
103175
  isValid = validateBindingArray(envName, validateHyperdriveBinding)(
103102
103176
  diagnostics,
103103
103177
  `${field}.hyperdrive`,
@@ -104251,7 +104325,6 @@ var BINDING_LOCAL_SUPPORT = {
104251
104325
  flagship: "DO-NOT-USE-this-resource-will-never-have-a-local-simulator",
104252
104326
  vpc_service: "DO-NOT-USE-this-resource-will-never-have-a-local-simulator",
104253
104327
  vpc_network: "DO-NOT-USE-this-resource-will-never-have-a-local-simulator",
104254
- websearch: "DO-NOT-USE-this-resource-will-never-have-a-local-simulator",
104255
104328
  agent_memory: "DO-NOT-USE-this-resource-will-never-have-a-local-simulator"
104256
104329
  };
104257
104330
  function getBindingLocalSupport(type) {
@@ -104745,11 +104818,6 @@ function convertConfigToBindings(config210, options) {
104745
104818
  }
104746
104819
  break;
104747
104820
  }
104748
- case "websearch": {
104749
- const { binding, ...x } = info;
104750
- output[binding] = { type: "websearch", ...x };
104751
- break;
104752
- }
104753
104821
  case "agent_memory": {
104754
104822
  for (const { binding, ...x } of info) {
104755
104823
  output[binding] = { type: "agent_memory", ...x };
@@ -104922,7 +104990,6 @@ function printBindings(bindings, options) {
104922
104990
  bindings
104923
104991
  );
104924
104992
  const ai_search = extractBindingsOfType("ai_search", bindings);
104925
- const websearch = extractBindingsOfType("websearch", bindings);
104926
104993
  const agent_memory = extractBindingsOfType("agent_memory", bindings);
104927
104994
  const hyperdrive = extractBindingsOfType("hyperdrive", bindings);
104928
104995
  const r2_buckets = extractBindingsOfType("r2_bucket", bindings);
@@ -105140,16 +105207,6 @@ function printBindings(bindings, options) {
105140
105207
  }))
105141
105208
  );
105142
105209
  }
105143
- if (websearch.length > 0) {
105144
- output.push(
105145
- ...websearch.map(({ binding }) => ({
105146
- name: binding,
105147
- type: getBindingTypeFriendlyName("websearch"),
105148
- value: void 0,
105149
- mode: getMode({ isSimulatedLocally: false })
105150
- }))
105151
- );
105152
- }
105153
105210
  if (agent_memory.length > 0) {
105154
105211
  output.push(
105155
105212
  ...agent_memory.map(({ binding, namespace }) => ({
@@ -105631,7 +105688,7 @@ ${allTailConsumers.map(({ service, streaming }) => {
105631
105688
  log2(
105632
105689
  `${containersTitle}
105633
105690
  ${containers.map(
105634
- (container) => container.scheduling_policy === "durable_object" ? `- ${container.class_name} (durable_object)` : `- ${container.name} (${container.image})`
105691
+ (container) => container.scheduling_policy === "durable_object" ? `- ${container.class_name ?? container.name} (durable_object)` : `- ${container.name} (${container.image})`
105635
105692
  ).join("\n")}`
105636
105693
  );
105637
105694
  log2("");
@@ -112533,7 +112590,7 @@ var Yargs = YargsFactory(esm_default2);
112533
112590
  var yargs_default = Yargs;
112534
112591
 
112535
112592
  // package.json
112536
- var version2 = "2.72.7";
112593
+ var version2 = "2.72.8";
112537
112594
 
112538
112595
  // src/metrics.ts
112539
112596
  var import_node_async_hooks = require("node:async_hooks");
@@ -115120,20 +115177,20 @@ __name2(getPropertyName, "getPropertyName");
115120
115177
  var package_default = {
115121
115178
  name: "frameworks_clis_info",
115122
115179
  dependencies: {
115123
- "@angular/create": "22.1.7",
115180
+ "@angular/create": "22.1.8",
115124
115181
  "@tanstack/cli": "0.71.0",
115125
- "create-analog": "2.7.1",
115182
+ "create-analog": "2.7.2",
115126
115183
  "create-astro": "5.2.4",
115127
115184
  "create-docusaurus": "3.10.2",
115128
115185
  "create-hono": "0.19.5",
115129
- "create-next-app": "16.3.4",
115186
+ "create-next-app": "16.3.5",
115130
115187
  "create-qwik": "1.20.0",
115131
115188
  "create-react-router": "8.3.1",
115132
115189
  "create-rwsdk": "3.1.3",
115133
115190
  "create-solid": "0.12.0",
115134
115191
  "create-vike": "0.0.681",
115135
115192
  "create-vinext-app": "1.0.0-beta.2",
115136
- "create-vite": "9.2.0",
115193
+ "create-vite": "9.2.1",
115137
115194
  "create-vue": "3.23.0",
115138
115195
  "create-waku": "0.12.5-1.0.0-alpha.10-0",
115139
115196
  gatsby: "5.16.1",
@@ -117699,6 +117756,27 @@ For all limits and quotas, retrieve from the product's \`/platform/limits/\` pag
117699
117756
 
117700
117757
  Run \`wrangler types\` after changing bindings in wrangler.jsonc.
117701
117758
 
117759
+ ## Local Explorer (Debugging & Inspection)
117760
+
117761
+ When running \`npx wrangler dev\`, a Local Explorer API is available for inspecting and debugging local Workers, bindings, and storage state. The API base URL is printed in the terminal when the dev server starts.
117762
+
117763
+ Key endpoints (relative to the dev server URL):
117764
+
117765
+ | Endpoint | Description |
117766
+ |----------|-------------|
117767
+ | \`GET /cdn-cgi/local/explorer/api/local/workers\` | List local Workers and their bindings |
117768
+ | \`GET /cdn-cgi/local/explorer/api/storage/kv/namespaces\` | List KV namespaces |
117769
+ | \`GET /cdn-cgi/local/explorer/api/d1/database\` | List D1 databases |
117770
+ | \`GET /cdn-cgi/local/explorer/api/r2/buckets\` | List R2 buckets |
117771
+ | \`GET /cdn-cgi/local/explorer/api/workers/durable_objects/namespaces\` | List Durable Object namespaces |
117772
+ | \`GET /cdn-cgi/local/explorer/api/workflows\` | List Workflows |
117773
+ | \`POST /cdn-cgi/local/explorer/api/local/observability/query\` | Run a read-only SQL query (SELECT/WITH only) over captured request traces and console logs. Tables: \`spans\`, \`logs\` (read attributes via \`json(attributes)\`). Example: \`curl -X POST <base>/cdn-cgi/local/explorer/api/local/observability/query -H 'Content-Type: application/json' -d '{"sql":"SELECT service, name, outcome, duration_ms FROM spans WHERE parent_id IS NULL LIMIT 20"}'\` |
117774
+ | \`POST /cdn-cgi/local/explorer/api/local/observability/clear\` | Clear all captured traces and logs |
117775
+
117776
+ If the routes above don't cover what you need, fetch the full OpenAPI schema (large - use only as a last resort): \`GET /cdn-cgi/local/explorer/api\`
117777
+
117778
+ Use the Local Explorer to debug issues by inspecting storage state (KV keys, D1 rows, R2 objects, DO storage), viewing Worker bindings, and querying request traces and logs captured during the dev session.
117779
+
117702
117780
  ## Node.js Compatibility
117703
117781
 
117704
117782
  https://developers.cloudflare.com/workers/runtime-apis/nodejs/
@@ -117725,7 +117803,7 @@ If the application uses Durable Objects or Workflows, refer to the relevant best
117725
117803
  var import_node_assert7 = __toESM(require("node:assert"));
117726
117804
 
117727
117805
  // ../wrangler/package.json
117728
- var version3 = "4.131.1";
117806
+ var version3 = "4.132.0";
117729
117807
 
117730
117808
  // src/git.ts
117731
117809
  var offerGit = async (ctx) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-cloudflare",
3
- "version": "2.72.7",
3
+ "version": "2.72.8",
4
4
  "description": "A CLI for creating and deploying new applications to Cloudflare.",
5
5
  "keywords": [
6
6
  "cloudflare",
@@ -31,7 +31,7 @@
31
31
  "@babel/parser": "^7.21.3",
32
32
  "@babel/types": "^7.21.4",
33
33
  "@clack/prompts": "^1.2.0",
34
- "@cloudflare/workers-types": "^5.20260911.1",
34
+ "@cloudflare/workers-types": "^5.20260915.1",
35
35
  "@types/command-exists": "^1.2.0",
36
36
  "@types/cross-spawn": "^6.0.2",
37
37
  "@types/deepmerge": "^2.2.0",
@@ -50,7 +50,6 @@
50
50
  "dns2": "^2.1.0",
51
51
  "dotenv": "16.3.1",
52
52
  "esbuild": "0.28.1",
53
- "execa": "^7.1.1",
54
53
  "exit-hook": "2.2.1",
55
54
  "get-port": "^7.1.0",
56
55
  "haikunator": "^2.1.2",
@@ -71,13 +70,13 @@
71
70
  "which-pm-runs": "^1.1.0",
72
71
  "wrap-ansi": "^9.0.0",
73
72
  "yargs": "^17.7.2",
74
- "@cloudflare/cli-shared-helpers": "0.1.29",
75
- "@cloudflare/mock-npm-registry": "0.0.0",
73
+ "@cloudflare/cli-shared-helpers": "0.1.31",
76
74
  "@cloudflare/shared-ast-primitives": "1.1.0",
77
- "@cloudflare/vite-plugin": "1.54.8",
75
+ "@cloudflare/vite-plugin": "1.54.10",
76
+ "@cloudflare/mock-npm-registry": "0.0.0",
78
77
  "@cloudflare/workers-tsconfig": "0.0.0",
79
- "@cloudflare/workers-utils": "0.38.0",
80
- "wrangler": "4.131.1"
78
+ "@cloudflare/workers-utils": "0.39.0",
79
+ "wrangler": "4.132.0"
81
80
  },
82
81
  "engines": {
83
82
  "node": ">=22.0.0"