wrangler 3.0.0 → 3.1.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.
Files changed (2) hide show
  1. package/package.json +2 -2
  2. package/wrangler-dist/cli.js +300 -152
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wrangler",
3
- "version": "3.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "Command-line interface for all things Cloudflare Workers",
5
5
  "keywords": [
6
6
  "wrangler",
@@ -63,7 +63,7 @@
63
63
  "test-watch": "npm run test -- --runInBand --testTimeout=50000 --watch",
64
64
  "test:ci": "npm run test -- --coverage",
65
65
  "test:debug": "npm run test -- --silent=false --verbose=true",
66
- "test:e2e": "vitest --no-threads ./e2e"
66
+ "test:e2e": "vitest --single-thread ./e2e"
67
67
  },
68
68
  "jest": {
69
69
  "coverageReporters": [
@@ -57418,7 +57418,7 @@ var require_table = __commonJS({
57418
57418
  var debug = require_debug();
57419
57419
  var utils = require_utils3();
57420
57420
  var tableLayout = require_layout_manager();
57421
- var Table9 = class extends Array {
57421
+ var Table10 = class extends Array {
57422
57422
  constructor(opts) {
57423
57423
  super();
57424
57424
  const options14 = utils.mergeOptions(opts);
@@ -57493,8 +57493,8 @@ var require_table = __commonJS({
57493
57493
  return str[0].length;
57494
57494
  }
57495
57495
  };
57496
- __name(Table9, "Table");
57497
- Table9.reset = () => debug.reset();
57496
+ __name(Table10, "Table");
57497
+ Table10.reset = () => debug.reset();
57498
57498
  function doDraw(row, lineNum, result) {
57499
57499
  let line = [];
57500
57500
  row.forEach(function(cell) {
@@ -57505,7 +57505,7 @@ var require_table = __commonJS({
57505
57505
  result.push(str);
57506
57506
  }
57507
57507
  __name(doDraw, "doDraw");
57508
- module2.exports = Table9;
57508
+ module2.exports = Table10;
57509
57509
  }
57510
57510
  });
57511
57511
 
@@ -110317,6 +110317,7 @@ async function generateHandler({
110317
110317
  request,
110318
110318
  metadata,
110319
110319
  xServerEnvHeader,
110320
+ xDeploymentIdHeader,
110320
110321
  logError,
110321
110322
  findAssetEntryForPath,
110322
110323
  getAssetKey,
@@ -110579,6 +110580,9 @@ async function generateHandler({
110579
110580
  if (xServerEnvHeader) {
110580
110581
  headers["x-server-env"] = xServerEnvHeader;
110581
110582
  }
110583
+ if (xDeploymentIdHeader && metadata.deploymentId) {
110584
+ headers["x-deployment-id"] = metadata.deploymentId;
110585
+ }
110582
110586
  if (content.encoding) {
110583
110587
  encodeBody = "manual";
110584
110588
  headers["cache-control"] = "no-transform";
@@ -111815,10 +111819,10 @@ var require_Indicator = __commonJS({
111815
111819
  "use strict";
111816
111820
  init_import_meta_url();
111817
111821
  Object.defineProperty(exports2, "__esModule", { value: true });
111818
- var React17 = require_react();
111822
+ var React18 = require_react();
111819
111823
  var ink_1 = require_build2();
111820
111824
  var figures = require_figures3();
111821
- var Indicator = /* @__PURE__ */ __name(({ isSelected = false }) => React17.createElement(ink_1.Box, { marginRight: 1 }, isSelected ? React17.createElement(ink_1.Text, { color: "blue" }, figures.pointer) : React17.createElement(ink_1.Text, null, " ")), "Indicator");
111825
+ var Indicator = /* @__PURE__ */ __name(({ isSelected = false }) => React18.createElement(ink_1.Box, { marginRight: 1 }, isSelected ? React18.createElement(ink_1.Text, { color: "blue" }, figures.pointer) : React18.createElement(ink_1.Text, null, " ")), "Indicator");
111822
111826
  exports2.default = Indicator;
111823
111827
  }
111824
111828
  });
@@ -111829,9 +111833,9 @@ var require_Item = __commonJS({
111829
111833
  "use strict";
111830
111834
  init_import_meta_url();
111831
111835
  Object.defineProperty(exports2, "__esModule", { value: true });
111832
- var React17 = require_react();
111836
+ var React18 = require_react();
111833
111837
  var ink_1 = require_build2();
111834
- var Item = /* @__PURE__ */ __name(({ isSelected = false, label }) => React17.createElement(ink_1.Text, { color: isSelected ? "blue" : void 0 }, label), "Item");
111838
+ var Item = /* @__PURE__ */ __name(({ isSelected = false, label }) => React18.createElement(ink_1.Text, { color: isSelected ? "blue" : void 0 }, label), "Item");
111835
111839
  exports2.default = Item;
111836
111840
  }
111837
111841
  });
@@ -111842,7 +111846,7 @@ var require_SelectInput = __commonJS({
111842
111846
  "use strict";
111843
111847
  init_import_meta_url();
111844
111848
  Object.defineProperty(exports2, "__esModule", { value: true });
111845
- var React17 = require_react();
111849
+ var React18 = require_react();
111846
111850
  var react_1 = require_react();
111847
111851
  var isEqual = require_lodash2();
111848
111852
  var arrayRotate = require_arr_rotate();
@@ -111904,14 +111908,14 @@ var require_SelectInput = __commonJS({
111904
111908
  onHighlight
111905
111909
  ]), { isActive: isFocused });
111906
111910
  const slicedItems = hasLimit ? arrayRotate(items, rotateIndex).slice(0, limit) : items;
111907
- return React17.createElement(ink_1.Box, { flexDirection: "column" }, slicedItems.map((item, index) => {
111911
+ return React18.createElement(ink_1.Box, { flexDirection: "column" }, slicedItems.map((item, index) => {
111908
111912
  var _a2;
111909
111913
  const isSelected = index === selectedIndex;
111910
- return React17.createElement(
111914
+ return React18.createElement(
111911
111915
  ink_1.Box,
111912
111916
  { key: (_a2 = item.key) !== null && _a2 !== void 0 ? _a2 : item.value },
111913
- React17.createElement(indicatorComponent, { isSelected }),
111914
- React17.createElement(itemComponent, { ...item, isSelected })
111917
+ React18.createElement(indicatorComponent, { isSelected }),
111918
+ React18.createElement(itemComponent, { ...item, isSelected })
111915
111919
  );
111916
111920
  }));
111917
111921
  }
@@ -112336,7 +112340,7 @@ var require_dist3 = __commonJS({
112336
112340
  var react_1 = __importDefault(require_react());
112337
112341
  var ink_1 = require_build2();
112338
112342
  var object_hash_1 = require_object_hash();
112339
- var Table9 = class extends react_1.default.Component {
112343
+ var Table10 = class extends react_1.default.Component {
112340
112344
  constructor() {
112341
112345
  super(...arguments);
112342
112346
  this.header = row({
@@ -112459,8 +112463,8 @@ var require_dist3 = __commonJS({
112459
112463
  );
112460
112464
  }
112461
112465
  };
112462
- __name(Table9, "Table");
112463
- exports2.default = Table9;
112466
+ __name(Table10, "Table");
112467
+ exports2.default = Table10;
112464
112468
  function row(config) {
112465
112469
  const skeleton = config.skeleton;
112466
112470
  return (props) => react_1.default.createElement(
@@ -114238,7 +114242,7 @@ var require_build4 = __commonJS({
114238
114242
  "use strict";
114239
114243
  init_import_meta_url();
114240
114244
  Object.defineProperty(exports2, "__esModule", { value: true });
114241
- var React17 = require_react();
114245
+ var React18 = require_react();
114242
114246
  var react_1 = require_react();
114243
114247
  var ink_1 = require_build2();
114244
114248
  var spinners = require_cli_spinners();
@@ -114256,7 +114260,7 @@ var require_build4 = __commonJS({
114256
114260
  clearInterval(timer);
114257
114261
  };
114258
114262
  }, [spinner]);
114259
- return React17.createElement(ink_1.Text, null, spinner.frames[frame]);
114263
+ return React18.createElement(ink_1.Text, null, spinner.frames[frame]);
114260
114264
  }, "Spinner");
114261
114265
  exports2.default = Spinner2;
114262
114266
  }
@@ -118040,7 +118044,7 @@ __name(getPorts, "getPorts");
118040
118044
 
118041
118045
  // src/dev.tsx
118042
118046
  var import_ink13 = __toESM(require_build2());
118043
- var import_react19 = __toESM(require_react());
118047
+ var import_react20 = __toESM(require_react());
118044
118048
 
118045
118049
  // src/config/index.ts
118046
118050
  init_import_meta_url();
@@ -119523,7 +119527,7 @@ var import_undici3 = __toESM(require_undici());
119523
119527
  var import_undici4 = __toESM(require_undici());
119524
119528
 
119525
119529
  // package.json
119526
- var version = "3.0.0";
119530
+ var version = "3.1.0";
119527
119531
  var package_default = {
119528
119532
  name: "wrangler",
119529
119533
  version,
@@ -119589,7 +119593,7 @@ var package_default = {
119589
119593
  "test-watch": "npm run test -- --runInBand --testTimeout=50000 --watch",
119590
119594
  "test:ci": "npm run test -- --coverage",
119591
119595
  "test:debug": "npm run test -- --silent=false --verbose=true",
119592
- "test:e2e": "vitest --no-threads ./e2e"
119596
+ "test:e2e": "vitest --single-thread ./e2e"
119593
119597
  },
119594
119598
  jest: {
119595
119599
  coverageReporters: [
@@ -121491,6 +121495,15 @@ var validateAdditionalProperties = /* @__PURE__ */ __name((diagnostics, fieldPat
121491
121495
  }
121492
121496
  return true;
121493
121497
  }, "validateAdditionalProperties");
121498
+ var validateSmartPlacementConfig = /* @__PURE__ */ __name((diagnostics, placement, triggers) => {
121499
+ if (placement?.mode === "smart" && !!triggers?.crons?.length) {
121500
+ diagnostics.errors.push(
121501
+ `You cannot configure both [triggers] and [placement] in your wrangler.toml. Placement is not supported with cron triggers.`
121502
+ );
121503
+ return false;
121504
+ }
121505
+ return true;
121506
+ }, "validateSmartPlacementConfig");
121494
121507
  var getBindingNames = /* @__PURE__ */ __name((value) => {
121495
121508
  if (typeof value !== "object" || value === null) {
121496
121509
  return [];
@@ -121665,6 +121678,7 @@ Consider adding an environment configuration section to the wrangler.toml file:
121665
121678
  Object.keys(rawConfig),
121666
121679
  [...Object.keys(config), "env"]
121667
121680
  );
121681
+ validateSmartPlacementConfig(diagnostics, config.placement, config.triggers);
121668
121682
  experimental(diagnostics, rawConfig, "assets");
121669
121683
  return { config, diagnostics };
121670
121684
  }
@@ -124040,7 +124054,7 @@ var clipboardy_default = clipboard5;
124040
124054
  // src/dev/dev.tsx
124041
124055
  var import_command_exists = __toESM(require_command_exists2());
124042
124056
  var import_ink12 = __toESM(require_build2());
124043
- var import_react18 = __toESM(require_react());
124057
+ var import_react19 = __toESM(require_react());
124044
124058
 
124045
124059
  // ../../node_modules/react-error-boundary/dist/react-error-boundary.esm.js
124046
124060
  init_import_meta_url();
@@ -125946,7 +125960,7 @@ async function applyMiddlewareLoaderFacade(entry, tmpDirPath, middleware) {
125946
125960
  format: "esm",
125947
125961
  plugins: [
125948
125962
  esbuildAliasExternalPlugin({
125949
- __ENTRY_POINT__: entry.file,
125963
+ __ENTRY_POINT__: path12.resolve(entry.directory, entry.file),
125950
125964
  ...Object.fromEntries(
125951
125965
  middleware.map((val, index) => [
125952
125966
  middlewareIdentifiers[index],
@@ -128074,7 +128088,7 @@ var import_promises16 = require("node:fs/promises");
128074
128088
  var import_node_path40 = __toESM(require("node:path"));
128075
128089
  var import_ink10 = __toESM(require_build2());
128076
128090
  var import_ink_select_input3 = __toESM(require_build3());
128077
- var import_react16 = __toESM(require_react());
128091
+ var import_react17 = __toESM(require_react());
128078
128092
 
128079
128093
  // src/bundle-reporter.ts
128080
128094
  init_import_meta_url();
@@ -135762,6 +135776,27 @@ __name(getLocalPersistencePath, "getLocalPersistencePath");
135762
135776
 
135763
135777
  // src/d1/splitter.ts
135764
135778
  init_import_meta_url();
135779
+
135780
+ // src/d1/trimmer.ts
135781
+ init_import_meta_url();
135782
+ function trimSqlQuery(sql) {
135783
+ if (!mayContainTransaction(sql))
135784
+ return sql;
135785
+ const trimmedSql = sql.replace("BEGIN TRANSACTION;", "").replace("COMMIT;", "");
135786
+ if (mayContainTransaction(trimmedSql)) {
135787
+ throw new Error(
135788
+ "Wrangler could not process the provided SQL file, as it contains several transactions.\nD1 runs your SQL in a transaction for you.\nPlease export an SQL file from your SQLite database and try again."
135789
+ );
135790
+ }
135791
+ return trimmedSql;
135792
+ }
135793
+ __name(trimSqlQuery, "trimSqlQuery");
135794
+ function mayContainTransaction(sql) {
135795
+ return sql.includes("BEGIN TRANSACTION");
135796
+ }
135797
+ __name(mayContainTransaction, "mayContainTransaction");
135798
+
135799
+ // src/d1/splitter.ts
135765
135800
  function mayContainMultipleStatements(sql) {
135766
135801
  const trimmed = sql.trimEnd();
135767
135802
  const semiColonIndex = trimmed.indexOf(";");
@@ -135769,11 +135804,12 @@ function mayContainMultipleStatements(sql) {
135769
135804
  }
135770
135805
  __name(mayContainMultipleStatements, "mayContainMultipleStatements");
135771
135806
  function splitSqlQuery(sql) {
135772
- if (!mayContainMultipleStatements(sql))
135773
- return [sql];
135774
- const split = splitSqlIntoStatements(sql);
135807
+ const trimmedSql = trimSqlQuery(sql);
135808
+ if (!mayContainMultipleStatements(trimmedSql))
135809
+ return [trimmedSql];
135810
+ const split = splitSqlIntoStatements(trimmedSql);
135775
135811
  if (split.length === 0) {
135776
- return [sql];
135812
+ return [trimmedSql];
135777
135813
  } else {
135778
135814
  return split;
135779
135815
  }
@@ -135974,6 +136010,10 @@ async function executeSql({
135974
136010
  preview,
135975
136011
  batchSize
135976
136012
  }) {
136013
+ const existingLogLevel = logger.loggerLevel;
136014
+ if (json) {
136015
+ logger.loggerLevel = "error";
136016
+ }
135977
136017
  const sql = file ? readFileSync5(file) : command2;
135978
136018
  if (!sql)
135979
136019
  throw new Error(`Error: must provide --command or --file.`);
@@ -135990,7 +136030,7 @@ async function executeSql({
135990
136030
  );
135991
136031
  }
135992
136032
  }
135993
- return local ? await executeLocally({
136033
+ const result = local ? await executeLocally({
135994
136034
  config,
135995
136035
  name,
135996
136036
  shouldPrompt,
@@ -136005,6 +136045,9 @@ async function executeSql({
136005
136045
  json,
136006
136046
  preview
136007
136047
  });
136048
+ if (json)
136049
+ logger.loggerLevel = existingLogLevel;
136050
+ return result;
136008
136051
  }
136009
136052
  __name(executeSql, "executeSql");
136010
136053
  async function executeLocally({
@@ -136145,6 +136188,51 @@ function shorten(query, length) {
136145
136188
  }
136146
136189
  __name(shorten, "shorten");
136147
136190
 
136191
+ // src/d1/info.tsx
136192
+ init_import_meta_url();
136193
+ var import_ink_table4 = __toESM(require_dist3());
136194
+ var import_react8 = __toESM(require_react());
136195
+ function Options5(d1ListYargs) {
136196
+ return d1ListYargs.positional("name", {
136197
+ describe: "The name of the DB",
136198
+ type: "string",
136199
+ demandOption: true
136200
+ }).option("json", {
136201
+ describe: "return output as clean JSON",
136202
+ type: "boolean",
136203
+ default: false
136204
+ }).epilogue(d1BetaWarning);
136205
+ }
136206
+ __name(Options5, "Options");
136207
+ var Handler5 = withConfig(
136208
+ async ({ name, config, json }) => {
136209
+ const accountId = await requireAuth(config);
136210
+ const db = await getDatabaseByNameOrBinding(
136211
+ config,
136212
+ accountId,
136213
+ name
136214
+ );
136215
+ const result = await fetchResult(
136216
+ `/accounts/${accountId}/d1/database/${db.uuid}`,
136217
+ {
136218
+ headers: {
136219
+ "Content-Type": "application/json"
136220
+ }
136221
+ }
136222
+ );
136223
+ if (json) {
136224
+ logger.log(JSON.stringify(result, null, 2));
136225
+ } else {
136226
+ const entries = Object.entries(result).filter(([k, _v]) => k !== "uuid");
136227
+ const data = entries.map(([k, v]) => ({
136228
+ [db.binding || ""]: k,
136229
+ [db.uuid]: k === "file_size" ? prettyBytes(Number(v)) : v
136230
+ }));
136231
+ logger.log(renderToString(/* @__PURE__ */ import_react8.default.createElement(import_ink_table4.default, { data })));
136232
+ }
136233
+ }
136234
+ );
136235
+
136148
136236
  // src/d1/migrations/index.ts
136149
136237
  init_import_meta_url();
136150
136238
 
@@ -136154,8 +136242,8 @@ var import_node_assert9 = __toESM(require("node:assert"));
136154
136242
  var import_node_fs15 = __toESM(require("node:fs"));
136155
136243
  var import_path7 = __toESM(require("path"));
136156
136244
  var import_ink4 = __toESM(require_build2());
136157
- var import_ink_table4 = __toESM(require_dist3());
136158
- var import_react8 = __toESM(require_react());
136245
+ var import_ink_table5 = __toESM(require_dist3());
136246
+ var import_react9 = __toESM(require_react());
136159
136247
 
136160
136248
  // src/d1/migrations/helpers.ts
136161
136249
  init_import_meta_url();
@@ -136220,7 +136308,7 @@ var listAppliedMigrations = /* @__PURE__ */ __name(async (migrationsTableName, l
136220
136308
  FROM ${migrationsTableName}
136221
136309
  ORDER BY id`,
136222
136310
  file: void 0,
136223
- json: void 0,
136311
+ json: true,
136224
136312
  preview,
136225
136313
  batchSize: DEFAULT_BATCH_SIZE
136226
136314
  });
@@ -136271,7 +136359,7 @@ var initMigrationsTable = /* @__PURE__ */ __name(async ({
136271
136359
  applied_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL
136272
136360
  );`,
136273
136361
  file: void 0,
136274
- json: void 0,
136362
+ json: true,
136275
136363
  preview,
136276
136364
  batchSize: DEFAULT_BATCH_SIZE
136277
136365
  });
@@ -136297,7 +136385,7 @@ __name(MigrationOptions, "MigrationOptions");
136297
136385
 
136298
136386
  // src/d1/migrations/apply.tsx
136299
136387
  function ApplyOptions(yargs) {
136300
- return MigrationOptions(yargs).option("experimentalBackend", {
136388
+ return MigrationOptions(yargs).option("experimental-backend", {
136301
136389
  default: false,
136302
136390
  describe: "Use new experimental DB backend",
136303
136391
  type: "boolean"
@@ -136352,12 +136440,12 @@ var ApplyHandler = withConfig(
136352
136440
  preview
136353
136441
  })).map((migration) => {
136354
136442
  return {
136355
- Name: migration,
136356
- Status: "\u{1F552}\uFE0F"
136443
+ name: migration,
136444
+ status: "\u{1F552}\uFE0F"
136357
136445
  };
136358
136446
  }).sort((a, b) => {
136359
- const migrationNumberA = parseInt(a.Name.split("_")[0]);
136360
- const migrationNumberB = parseInt(b.Name.split("_")[0]);
136447
+ const migrationNumberA = parseInt(a.name.split("_")[0]);
136448
+ const migrationNumberB = parseInt(b.name.split("_")[0]);
136361
136449
  if (migrationNumberA < migrationNumberB) {
136362
136450
  return -1;
136363
136451
  }
@@ -136367,12 +136455,12 @@ var ApplyHandler = withConfig(
136367
136455
  return 0;
136368
136456
  });
136369
136457
  if (unappliedMigrations.length === 0) {
136370
- logger.log(renderToString(/* @__PURE__ */ import_react8.default.createElement(import_ink4.Text, null, "\u2705 No migrations to apply!")));
136458
+ logger.log(renderToString(/* @__PURE__ */ import_react9.default.createElement(import_ink4.Text, null, "\u2705 No migrations to apply!")));
136371
136459
  return;
136372
136460
  }
136373
136461
  logger.log(
136374
136462
  renderToString(
136375
- /* @__PURE__ */ import_react8.default.createElement(import_ink4.Box, { flexDirection: "column" }, /* @__PURE__ */ import_react8.default.createElement(import_ink4.Text, null, "Migrations to be applied:"), /* @__PURE__ */ import_react8.default.createElement(import_ink_table4.default, { data: unappliedMigrations, columns: ["Name"] }))
136463
+ /* @__PURE__ */ import_react9.default.createElement(import_ink4.Box, { flexDirection: "column" }, /* @__PURE__ */ import_react9.default.createElement(import_ink4.Text, null, "Migrations to be applied:"), /* @__PURE__ */ import_react9.default.createElement(import_ink_table5.default, { data: unappliedMigrations, columns: ["name"] }))
136376
136464
  )
136377
136465
  );
136378
136466
  const ok = await confirm(
@@ -136386,18 +136474,18 @@ Your database may not be available to serve requests during the migration, conti
136386
136474
  databaseInfo,
136387
136475
  "In non-local mode `databaseInfo` should be defined."
136388
136476
  );
136389
- logger.log(renderToString(/* @__PURE__ */ import_react8.default.createElement(import_ink4.Text, null, "\u{1F552} Creating backup...")));
136477
+ logger.log(renderToString(/* @__PURE__ */ import_react9.default.createElement(import_ink4.Text, null, "\u{1F552} Creating backup...")));
136390
136478
  const accountId = await requireAuth(config);
136391
136479
  await createBackup(accountId, databaseInfo.uuid);
136392
136480
  }
136393
136481
  for (const migration of unappliedMigrations) {
136394
136482
  let query = import_node_fs15.default.readFileSync(
136395
- `${migrationsPath}/${migration.Name}`,
136483
+ `${migrationsPath}/${migration.name}`,
136396
136484
  "utf8"
136397
136485
  );
136398
136486
  query += `
136399
136487
  INSERT INTO ${migrationsTableName} (name)
136400
- values ('${migration.Name}');
136488
+ values ('${migration.name}');
136401
136489
  `;
136402
136490
  let success = true;
136403
136491
  let errorNotes = [];
@@ -136438,27 +136526,19 @@ Your database may not be available to serve requests during the migration, conti
136438
136526
  maybeCause?.message ?? maybeCause.toString()
136439
136527
  ];
136440
136528
  }
136441
- migration.Status = success ? "\u2705" : "\u274C";
136529
+ migration.status = success ? "\u2705" : "\u274C";
136442
136530
  logger.log(
136443
136531
  renderToString(
136444
- /* @__PURE__ */ import_react8.default.createElement(import_ink4.Box, { flexDirection: "column" }, /* @__PURE__ */ import_react8.default.createElement(
136445
- import_ink_table4.default,
136446
- {
136447
- data: unappliedMigrations,
136448
- columns: ["Name", "Status"]
136449
- }
136450
- ), errorNotes.length > 0 && /* @__PURE__ */ import_react8.default.createElement(import_ink4.Box, { flexDirection: "column" }, /* @__PURE__ */ import_react8.default.createElement(import_ink4.Text, null, "\xA0"), /* @__PURE__ */ import_react8.default.createElement(import_ink4.Text, null, "\u274C Migration ", migration.Name, " failed with following Errors"), /* @__PURE__ */ import_react8.default.createElement(
136451
- import_ink_table4.default,
136452
- {
136453
- data: errorNotes.map((err) => {
136454
- return { Error: err };
136455
- })
136456
- }
136457
- )))
136532
+ /* @__PURE__ */ import_react9.default.createElement(import_ink4.Box, { flexDirection: "column" }, /* @__PURE__ */ import_react9.default.createElement(import_ink_table5.default, { data: unappliedMigrations, columns: ["name", "status"] }), errorNotes.length > 0 && /* @__PURE__ */ import_react9.default.createElement(import_ink4.Box, { flexDirection: "column" }, /* @__PURE__ */ import_react9.default.createElement(import_ink4.Text, null, "\xA0"), /* @__PURE__ */ import_react9.default.createElement(import_ink4.Text, null, "\u274C Migration ", migration.name, " ", errorNotes.length > 0 ? "failed with the following errors:" : "")))
136458
136533
  )
136459
136534
  );
136460
- if (errorNotes.length > 0)
136461
- return;
136535
+ if (errorNotes.length > 0) {
136536
+ throw new Error(
136537
+ errorNotes.map((err) => {
136538
+ return err;
136539
+ }).join("\n")
136540
+ );
136541
+ }
136462
136542
  }
136463
136543
  }
136464
136544
  );
@@ -136468,7 +136548,7 @@ init_import_meta_url();
136468
136548
  var import_node_fs16 = __toESM(require("node:fs"));
136469
136549
  var import_path8 = __toESM(require("path"));
136470
136550
  var import_ink5 = __toESM(require_build2());
136471
- var import_react9 = __toESM(require_react());
136551
+ var import_react10 = __toESM(require_react());
136472
136552
  function CreateOptions2(yargs) {
136473
136553
  return Database(yargs).positional("message", {
136474
136554
  describe: "The Migration message",
@@ -136504,7 +136584,7 @@ var CreateHandler2 = withConfig(
136504
136584
  );
136505
136585
  logger.log(
136506
136586
  renderToString(
136507
- /* @__PURE__ */ import_react9.default.createElement(import_ink5.Box, { flexDirection: "column" }, /* @__PURE__ */ import_react9.default.createElement(import_ink5.Text, null, "\u2705 Successfully created Migration '", newMigrationName, "'!"), /* @__PURE__ */ import_react9.default.createElement(import_ink5.Text, null, "\xA0"), /* @__PURE__ */ import_react9.default.createElement(import_ink5.Text, null, "The migration is available for editing here"), /* @__PURE__ */ import_react9.default.createElement(import_ink5.Text, null, migrationsPath, "/", newMigrationName))
136587
+ /* @__PURE__ */ import_react10.default.createElement(import_ink5.Box, { flexDirection: "column" }, /* @__PURE__ */ import_react10.default.createElement(import_ink5.Text, null, "\u2705 Successfully created Migration '", newMigrationName, "'!"), /* @__PURE__ */ import_react10.default.createElement(import_ink5.Text, null, "\xA0"), /* @__PURE__ */ import_react10.default.createElement(import_ink5.Text, null, "The migration is available for editing here"), /* @__PURE__ */ import_react10.default.createElement(import_ink5.Text, null, migrationsPath, "/", newMigrationName))
136508
136588
  )
136509
136589
  );
136510
136590
  }
@@ -136521,8 +136601,8 @@ __name(pad, "pad");
136521
136601
  init_import_meta_url();
136522
136602
  var import_path9 = __toESM(require("path"));
136523
136603
  var import_ink6 = __toESM(require_build2());
136524
- var import_ink_table5 = __toESM(require_dist3());
136525
- var import_react10 = __toESM(require_react());
136604
+ var import_ink_table6 = __toESM(require_dist3());
136605
+ var import_react11 = __toESM(require_react());
136526
136606
  function ListOptions2(yargs) {
136527
136607
  return MigrationOptions(yargs);
136528
136608
  }
@@ -136570,12 +136650,12 @@ var ListHandler2 = withConfig(
136570
136650
  };
136571
136651
  });
136572
136652
  if (unappliedMigrations.length === 0) {
136573
- logger.log(renderToString(/* @__PURE__ */ import_react10.default.createElement(import_ink6.Text, null, "\u2705 No migrations to apply!")));
136653
+ logger.log(renderToString(/* @__PURE__ */ import_react11.default.createElement(import_ink6.Text, null, "\u2705 No migrations to apply!")));
136574
136654
  return;
136575
136655
  }
136576
136656
  logger.log(
136577
136657
  renderToString(
136578
- /* @__PURE__ */ import_react10.default.createElement(import_ink6.Box, { flexDirection: "column" }, /* @__PURE__ */ import_react10.default.createElement(import_ink6.Text, null, "Migrations to be applied:"), /* @__PURE__ */ import_react10.default.createElement(import_ink_table5.default, { data: unappliedMigrations, columns: ["Name"] }))
136658
+ /* @__PURE__ */ import_react11.default.createElement(import_ink6.Box, { flexDirection: "column" }, /* @__PURE__ */ import_react11.default.createElement(import_ink6.Text, null, "Migrations to be applied:"), /* @__PURE__ */ import_react11.default.createElement(import_ink_table6.default, { data: unappliedMigrations, columns: ["Name"] }))
136579
136659
  )
136580
136660
  );
136581
136661
  }
@@ -136584,6 +136664,11 @@ var ListHandler2 = withConfig(
136584
136664
  // src/d1/index.ts
136585
136665
  function d1(yargs) {
136586
136666
  return yargs.command("list", "List D1 databases", Options, Handler).command(
136667
+ "info <name>",
136668
+ "Get information about a D1 database, including the current database size and state.",
136669
+ Options5,
136670
+ Handler5
136671
+ ).command(
136587
136672
  "create <name>",
136588
136673
  "Create D1 database",
136589
136674
  Options2,
@@ -140131,7 +140216,7 @@ async function buildFunctions({
140131
140216
  __name(buildFunctions, "buildFunctions");
140132
140217
 
140133
140218
  // src/pages/build.ts
140134
- function Options5(yargs) {
140219
+ function Options6(yargs) {
140135
140220
  return yargs.positional("directory", {
140136
140221
  type: "string",
140137
140222
  default: "functions",
@@ -140208,8 +140293,8 @@ function Options5(yargs) {
140208
140293
  }
140209
140294
  }).epilogue(pagesBetaWarning);
140210
140295
  }
140211
- __name(Options5, "Options");
140212
- var Handler5 = /* @__PURE__ */ __name(async (args) => {
140296
+ __name(Options6, "Options");
140297
+ var Handler6 = /* @__PURE__ */ __name(async (args) => {
140213
140298
  if (!isInPagesCI) {
140214
140299
  logger.log(pagesBetaWarning);
140215
140300
  }
@@ -140458,7 +140543,7 @@ init_import_meta_url();
140458
140543
  var import_node_child_process3 = require("node:child_process");
140459
140544
  var import_ink9 = __toESM(require_build2());
140460
140545
  var import_ink_select_input2 = __toESM(require_build3());
140461
- var import_react14 = __toESM(require_react());
140546
+ var import_react15 = __toESM(require_react());
140462
140547
 
140463
140548
  // src/api/pages/deploy.tsx
140464
140549
  init_import_meta_url();
@@ -140902,9 +140987,9 @@ _PQueue_carryoverConcurrencyCount = /* @__PURE__ */ new WeakMap(), _PQueue_isInt
140902
140987
  }, "_PQueue_processQueue");
140903
140988
 
140904
140989
  // src/pages/upload.tsx
140905
- var import_react11 = __toESM(require_react());
140990
+ var import_react12 = __toESM(require_react());
140906
140991
  init_hash();
140907
- function Options6(yargs) {
140992
+ function Options7(yargs) {
140908
140993
  return yargs.positional("directory", {
140909
140994
  type: "string",
140910
140995
  demandOption: true,
@@ -140920,8 +141005,8 @@ function Options6(yargs) {
140920
141005
  }
140921
141006
  }).epilogue(pagesBetaWarning);
140922
141007
  }
140923
- __name(Options6, "Options");
140924
- var Handler6 = /* @__PURE__ */ __name(async ({
141008
+ __name(Options7, "Options");
141009
+ var Handler7 = /* @__PURE__ */ __name(async ({
140925
141010
  directory,
140926
141011
  outputManifestPath,
140927
141012
  skipCaching
@@ -141208,11 +141293,11 @@ __name(formatTime, "formatTime");
141208
141293
  function renderProgress(done, total) {
141209
141294
  if (isInteractive()) {
141210
141295
  const { rerender, unmount } = (0, import_ink7.render)(
141211
- /* @__PURE__ */ import_react11.default.createElement(Progress, { done, total })
141296
+ /* @__PURE__ */ import_react12.default.createElement(Progress, { done, total })
141212
141297
  );
141213
141298
  return {
141214
141299
  rerender(done2, total2) {
141215
- rerender(/* @__PURE__ */ import_react11.default.createElement(Progress, { done: done2, total: total2 }));
141300
+ rerender(/* @__PURE__ */ import_react12.default.createElement(Progress, { done: done2, total: total2 }));
141216
141301
  },
141217
141302
  unmount
141218
141303
  };
@@ -141227,7 +141312,7 @@ function renderProgress(done, total) {
141227
141312
  }
141228
141313
  __name(renderProgress, "renderProgress");
141229
141314
  function Progress({ done, total }) {
141230
- return /* @__PURE__ */ import_react11.default.createElement(import_react11.default.Fragment, null, /* @__PURE__ */ import_react11.default.createElement(import_ink7.Text, null, isInteractive() ? /* @__PURE__ */ import_react11.default.createElement(import_ink_spinner.default, { type: "earth" }) : null, ` Uploading... (${done}/${total})
141315
+ return /* @__PURE__ */ import_react12.default.createElement(import_react12.default.Fragment, null, /* @__PURE__ */ import_react12.default.createElement(import_ink7.Text, null, isInteractive() ? /* @__PURE__ */ import_react12.default.createElement(import_ink_spinner.default, { type: "earth" }) : null, ` Uploading... (${done}/${total})
141231
141316
  `));
141232
141317
  }
141233
141318
  __name(Progress, "Progress");
@@ -141462,8 +141547,8 @@ __name(deploy2, "deploy");
141462
141547
  // src/pages/projects.tsx
141463
141548
  init_import_meta_url();
141464
141549
  var import_node_child_process2 = require("node:child_process");
141465
- var import_ink_table6 = __toESM(require_dist3());
141466
- var import_react12 = __toESM(require_react());
141550
+ var import_ink_table7 = __toESM(require_dist3());
141551
+ var import_react13 = __toESM(require_react());
141467
141552
 
141468
141553
  // ../../node_modules/timeago.js/esm/index.js
141469
141554
  init_import_meta_url();
@@ -141581,7 +141666,7 @@ async function ListHandler3() {
141581
141666
  saveToConfigCache(PAGES_CONFIG_CACHE_FILENAME, {
141582
141667
  account_id: accountId
141583
141668
  });
141584
- logger.log(renderToString(/* @__PURE__ */ import_react12.default.createElement(import_ink_table6.default, { data })));
141669
+ logger.log(renderToString(/* @__PURE__ */ import_react13.default.createElement(import_ink_table7.default, { data })));
141585
141670
  await sendMetricsEvent("list pages projects");
141586
141671
  }
141587
141672
  __name(ListHandler3, "ListHandler");
@@ -141617,12 +141702,26 @@ function CreateOptions3(yargs) {
141617
141702
  "production-branch": {
141618
141703
  type: "string",
141619
141704
  description: "The name of the production branch of your project"
141705
+ },
141706
+ "compatibility-flags": {
141707
+ describe: "Flags to use for compatibility checks",
141708
+ alias: "compatibility-flag",
141709
+ type: "string",
141710
+ requiresArg: true,
141711
+ array: true
141712
+ },
141713
+ "compatibility-date": {
141714
+ describe: "Date to use for compatibility checks",
141715
+ type: "string",
141716
+ requiresArg: true
141620
141717
  }
141621
141718
  }).epilogue(pagesBetaWarning);
141622
141719
  }
141623
141720
  __name(CreateOptions3, "CreateOptions");
141624
141721
  async function CreateHandler3({
141625
141722
  productionBranch,
141723
+ compatibilityFlags,
141724
+ compatibilityDate,
141626
141725
  projectName
141627
141726
  }) {
141628
141727
  const config = getConfigCache(PAGES_CONFIG_CACHE_FILENAME);
@@ -141656,14 +141755,27 @@ async function CreateHandler3({
141656
141755
  if (!productionBranch) {
141657
141756
  throw new FatalError("Must specify a production branch.", 1);
141658
141757
  }
141758
+ const deploymentConfig = {
141759
+ ...compatibilityFlags && {
141760
+ compatibility_flags: [...compatibilityFlags]
141761
+ },
141762
+ ...compatibilityDate && {
141763
+ compatibility_date: compatibilityDate
141764
+ }
141765
+ };
141766
+ const body = {
141767
+ name: projectName,
141768
+ production_branch: productionBranch,
141769
+ deployment_configs: {
141770
+ production: { ...deploymentConfig },
141771
+ preview: { ...deploymentConfig }
141772
+ }
141773
+ };
141659
141774
  const { subdomain } = await fetchResult(
141660
141775
  `/accounts/${accountId}/pages/projects`,
141661
141776
  {
141662
141777
  method: "POST",
141663
- body: JSON.stringify({
141664
- name: projectName,
141665
- production_branch: productionBranch
141666
- })
141778
+ body: JSON.stringify(body)
141667
141779
  }
141668
141780
  );
141669
141781
  saveToConfigCache(PAGES_CONFIG_CACHE_FILENAME, {
@@ -141679,19 +141791,49 @@ async function CreateHandler3({
141679
141791
  await sendMetricsEvent("create pages project");
141680
141792
  }
141681
141793
  __name(CreateHandler3, "CreateHandler");
141794
+ function DeleteOptions(yargs) {
141795
+ return yargs.positional("project-name", {
141796
+ type: "string",
141797
+ demandOption: true,
141798
+ description: "The name of your Pages project"
141799
+ }).options({
141800
+ yes: {
141801
+ alias: "y",
141802
+ type: "boolean",
141803
+ description: 'Answer "yes" to confirm project deletion'
141804
+ }
141805
+ }).epilogue(pagesBetaWarning);
141806
+ }
141807
+ __name(DeleteOptions, "DeleteOptions");
141808
+ async function DeleteHandler(args) {
141809
+ const config = getConfigCache(PAGES_CONFIG_CACHE_FILENAME);
141810
+ const accountId = await requireAuth(config);
141811
+ const confirmed = args.yes || await confirm(
141812
+ `Are you sure you want to delete "${args.projectName}"? This action cannot be undone.`
141813
+ );
141814
+ if (confirmed) {
141815
+ logger.log("Deleting", args.projectName);
141816
+ await fetchResult(
141817
+ `/accounts/${accountId}/pages/projects/${args.projectName}`,
141818
+ { method: "DELETE" }
141819
+ );
141820
+ logger.log("Successfully deleted", args.projectName);
141821
+ }
141822
+ }
141823
+ __name(DeleteHandler, "DeleteHandler");
141682
141824
 
141683
141825
  // src/pages/prompt-select-project.tsx
141684
141826
  init_import_meta_url();
141685
141827
  var import_ink8 = __toESM(require_build2());
141686
141828
  var import_ink_select_input = __toESM(require_build3());
141687
- var import_react13 = __toESM(require_react());
141829
+ var import_react14 = __toESM(require_react());
141688
141830
  async function promptSelectProject({
141689
141831
  accountId
141690
141832
  }) {
141691
141833
  const projects = await listProjects2({ accountId });
141692
141834
  return new Promise((resolve16) => {
141693
141835
  const { unmount } = (0, import_ink8.render)(
141694
- /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, /* @__PURE__ */ import_react13.default.createElement(import_ink8.Text, null, "Select a project:"), /* @__PURE__ */ import_react13.default.createElement(
141836
+ /* @__PURE__ */ import_react14.default.createElement(import_react14.default.Fragment, null, /* @__PURE__ */ import_react14.default.createElement(import_ink8.Text, null, "Select a project:"), /* @__PURE__ */ import_react14.default.createElement(
141695
141837
  import_ink_select_input.default,
141696
141838
  {
141697
141839
  items: projects.map((project) => ({
@@ -141711,7 +141853,7 @@ async function promptSelectProject({
141711
141853
  __name(promptSelectProject, "promptSelectProject");
141712
141854
 
141713
141855
  // src/pages/deploy.tsx
141714
- function Options7(yargs) {
141856
+ function Options8(yargs) {
141715
141857
  return yargs.positional("directory", {
141716
141858
  type: "string",
141717
141859
  demandOption: true,
@@ -141758,8 +141900,8 @@ function Options7(yargs) {
141758
141900
  }
141759
141901
  }).epilogue(pagesBetaWarning);
141760
141902
  }
141761
- __name(Options7, "Options");
141762
- var Handler7 = /* @__PURE__ */ __name(async ({
141903
+ __name(Options8, "Options");
141904
+ var Handler8 = /* @__PURE__ */ __name(async ({
141763
141905
  _: _2,
141764
141906
  directory,
141765
141907
  projectName,
@@ -141795,7 +141937,7 @@ var Handler7 = /* @__PURE__ */ __name(async ({
141795
141937
  if (projects.length > 0) {
141796
141938
  existingOrNew = await new Promise((resolve16) => {
141797
141939
  const { unmount } = (0, import_ink9.render)(
141798
- /* @__PURE__ */ import_react14.default.createElement(import_react14.default.Fragment, null, /* @__PURE__ */ import_react14.default.createElement(import_ink9.Text, null, "No project selected. Would you like to create one or use an existing project?"), /* @__PURE__ */ import_react14.default.createElement(
141940
+ /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, /* @__PURE__ */ import_react15.default.createElement(import_ink9.Text, null, "No project selected. Would you like to create one or use an existing project?"), /* @__PURE__ */ import_react15.default.createElement(
141799
141941
  import_ink_select_input2.default,
141800
141942
  {
141801
141943
  items: [
@@ -142202,7 +142344,7 @@ __name(createTail, "createTail");
142202
142344
  // src/pages/deployment-tails.ts
142203
142345
  var statusChoices = ["ok", "error", "canceled"];
142204
142346
  var isStatusChoiceList = /* @__PURE__ */ __name((data) => data?.every((d) => statusChoices.includes(d)) ?? false, "isStatusChoiceList");
142205
- function Options8(yargs) {
142347
+ function Options9(yargs) {
142206
142348
  return yargs.positional("deployment", {
142207
142349
  type: "string",
142208
142350
  description: "(Optional) ID or URL of the deployment to tail. Specify by environment if deployment ID is unknown."
@@ -142253,8 +142395,8 @@ function Options8(yargs) {
142253
142395
  array: true
142254
142396
  });
142255
142397
  }
142256
- __name(Options8, "Options");
142257
- async function Handler8({
142398
+ __name(Options9, "Options");
142399
+ async function Handler9({
142258
142400
  deployment,
142259
142401
  projectName,
142260
142402
  environment,
@@ -142398,12 +142540,12 @@ async function Handler8({
142398
142540
  logger.log(`Connected to deployment ${deploymentId}, waiting for logs...`);
142399
142541
  }
142400
142542
  }
142401
- __name(Handler8, "Handler");
142543
+ __name(Handler9, "Handler");
142402
142544
 
142403
142545
  // src/pages/deployments.tsx
142404
142546
  init_import_meta_url();
142405
- var import_ink_table7 = __toESM(require_dist3());
142406
- var import_react15 = __toESM(require_react());
142547
+ var import_ink_table8 = __toESM(require_dist3());
142548
+ var import_react16 = __toESM(require_react());
142407
142549
  function ListOptions4(yargs) {
142408
142550
  return yargs.options({
142409
142551
  "project-name": {
@@ -142448,7 +142590,7 @@ async function ListHandler4({ projectName }) {
142448
142590
  saveToConfigCache(PAGES_CONFIG_CACHE_FILENAME, {
142449
142591
  account_id: accountId
142450
142592
  });
142451
- logger.log(renderToString(/* @__PURE__ */ import_react15.default.createElement(import_ink_table7.default, { data })));
142593
+ logger.log(renderToString(/* @__PURE__ */ import_react16.default.createElement(import_ink_table8.default, { data })));
142452
142594
  await sendMetricsEvent("list pages deployments");
142453
142595
  }
142454
142596
  __name(ListHandler4, "ListHandler");
@@ -142464,7 +142606,7 @@ var esbuild3 = __toESM(require("esbuild"));
142464
142606
  var DURABLE_OBJECTS_BINDING_REGEXP = new RegExp(
142465
142607
  /^(?<binding>[^=]+)=(?<className>[^@\s]+)(@(?<scriptName>.*)$)?$/
142466
142608
  );
142467
- function Options9(yargs) {
142609
+ function Options10(yargs) {
142468
142610
  return yargs.positional("directory", {
142469
142611
  type: "string",
142470
142612
  demandOption: void 0,
@@ -142584,8 +142726,8 @@ function Options9(yargs) {
142584
142726
  }
142585
142727
  }).epilogue(pagesBetaWarning);
142586
142728
  }
142587
- __name(Options9, "Options");
142588
- var Handler9 = /* @__PURE__ */ __name(async ({
142729
+ __name(Options10, "Options");
142730
+ var Handler10 = /* @__PURE__ */ __name(async ({
142589
142731
  directory,
142590
142732
  compatibilityDate,
142591
142733
  compatibilityFlags,
@@ -142697,7 +142839,7 @@ See https://developers.cloudflare.com/workers/platform/compatibility-dates/ for
142697
142839
  nodejsCompat,
142698
142840
  local: true,
142699
142841
  sourcemap: true,
142700
- watch: true,
142842
+ watch: false,
142701
142843
  onEnd: () => scriptReadyResolve()
142702
142844
  });
142703
142845
  } catch (e2) {
@@ -142733,7 +142875,7 @@ See https://developers.cloudflare.com/workers/platform/compatibility-dates/ for
142733
142875
  outfile: scriptPath,
142734
142876
  functionsDirectory,
142735
142877
  sourcemap: true,
142736
- watch: true,
142878
+ watch: false,
142737
142879
  onEnd,
142738
142880
  buildOutputDirectory: directory,
142739
142881
  legacyNodeCompat,
@@ -142906,7 +143048,7 @@ See https://developers.cloudflare.com/workers/platform/compatibility-dates/ for
142906
143048
  additionalModules: modules,
142907
143049
  d1Databases: d1s.map((binding) => ({
142908
143050
  binding: binding.toString(),
142909
- database_id: "",
143051
+ database_id: binding.toString(),
142910
143052
  database_name: `local-${binding}`
142911
143053
  })),
142912
143054
  disableExperimentalWarning: true,
@@ -143116,16 +143258,16 @@ function pages(yargs) {
143116
143258
  return yargs.command(
143117
143259
  "dev [directory] [-- command..]",
143118
143260
  "\u{1F9D1}\u200D\u{1F4BB} Develop your full-stack Pages application locally",
143119
- Options9,
143120
- Handler9
143261
+ Options10,
143262
+ Handler10
143121
143263
  ).command(
143122
143264
  "functions",
143123
143265
  false,
143124
143266
  (yargs2) => yargs2.command(
143125
143267
  "build [directory]",
143126
143268
  "Compile a folder of Cloudflare Pages Functions into a single Worker",
143127
- Options5,
143128
- Handler5
143269
+ Options6,
143270
+ Handler6
143129
143271
  ).command(
143130
143272
  "optimize-routes [routesPath] [outputRoutesPath]",
143131
143273
  "Consolidate and optimize the route paths declared in _routes.json",
@@ -143145,7 +143287,12 @@ function pages(yargs) {
143145
143287
  "Create a new Cloudflare Pages project",
143146
143288
  CreateOptions3,
143147
143289
  CreateHandler3
143148
- ).command("upload [directory]", false, Options6, Handler6).epilogue(pagesBetaWarning)
143290
+ ).command(
143291
+ "delete [project-name]",
143292
+ "Delete a Cloudflare Pages project",
143293
+ DeleteOptions,
143294
+ DeleteHandler
143295
+ ).command("upload [directory]", false, Options7, Handler7).epilogue(pagesBetaWarning)
143149
143296
  ).command(
143150
143297
  "deployment",
143151
143298
  "\u{1F680} Interact with the deployments of a project",
@@ -143157,19 +143304,19 @@ function pages(yargs) {
143157
143304
  ).command(
143158
143305
  "create [directory]",
143159
143306
  "\u{1F199} Publish a directory of static assets as a Pages deployment",
143160
- Options7,
143161
- Handler7
143307
+ Options8,
143308
+ Handler8
143162
143309
  ).command(
143163
143310
  "tail [deployment]",
143164
143311
  "Start a tailing session for a project's deployment and livestream logs from your Functions",
143165
- Options8,
143166
- Handler8
143312
+ Options9,
143313
+ Handler9
143167
143314
  ).epilogue(pagesBetaWarning)
143168
143315
  ).command(
143169
143316
  ["deploy [directory]", "publish [directory]"],
143170
143317
  "\u{1F199} Deploy a directory of static assets as a Pages deployment",
143171
- Options7,
143172
- Handler7
143318
+ Options8,
143319
+ Handler8
143173
143320
  ).epilogue(pagesBetaWarning);
143174
143321
  }
143175
143322
  __name(pages, "pages");
@@ -145603,9 +145750,12 @@ function createCLIParser(argv) {
145603
145750
  describe: "Skip confirmation and message prompts, uses provided argument as message",
145604
145751
  type: "string",
145605
145752
  default: void 0
145606
- }),
145753
+ }).epilogue(rollbackWarning),
145607
145754
  async (rollbackYargs) => {
145608
- const { accountId, scriptName, config } = await commonDeploymentCMDSetup(rollbackYargs, rollbackWarning);
145755
+ const { accountId, scriptName, config } = await commonDeploymentCMDSetup(
145756
+ rollbackYargs,
145757
+ rollbackWarning
145758
+ );
145609
145759
  await rollbackDeployment(
145610
145760
  accountId,
145611
145761
  scriptName,
@@ -145614,7 +145764,7 @@ function createCLIParser(argv) {
145614
145764
  rollbackYargs.message
145615
145765
  );
145616
145766
  }
145617
- ).epilogue(rollbackWarning);
145767
+ );
145618
145768
  wrangler.version(false);
145619
145769
  wrangler.command(
145620
145770
  "version",
@@ -145784,9 +145934,7 @@ Have you considered using Cloudflare Pages instead? See https://pages.cloudflare
145784
145934
  fromDashScriptName,
145785
145935
  "--",
145786
145936
  "--type",
145787
- "pre-existing",
145788
- "--name",
145789
- fromDashScriptName
145937
+ "pre-existing"
145790
145938
  ];
145791
145939
  const replacementC3Command = `\`${packageManager.type} ${c3Arguments.join(
145792
145940
  " "
@@ -147659,9 +147807,9 @@ __name(updateQueueConsumers, "updateQueueConsumers");
147659
147807
 
147660
147808
  // src/dev/remote.tsx
147661
147809
  function Remote(props) {
147662
- const [accountId, setAccountId] = (0, import_react16.useState)(props.accountId);
147663
- const accountChoicesRef = (0, import_react16.useRef)();
147664
- const [accountChoices, setAccountChoices] = (0, import_react16.useState)();
147810
+ const [accountId, setAccountId] = (0, import_react17.useState)(props.accountId);
147811
+ const accountChoicesRef = (0, import_react17.useRef)();
147812
+ const [accountChoices, setAccountChoices] = (0, import_react17.useState)();
147665
147813
  const previewToken = useWorker({
147666
147814
  name: props.name,
147667
147815
  bundle: props.bundle,
@@ -147700,7 +147848,7 @@ function Remote(props) {
147700
147848
  sourceMapMetadata: props.bundle?.sourceMapMetadata
147701
147849
  });
147702
147850
  const errorHandler = useErrorHandler();
147703
- (0, import_react16.useEffect)(() => {
147851
+ (0, import_react17.useEffect)(() => {
147704
147852
  if (accountChoicesRef.current !== void 0 || props.accountId !== void 0) {
147705
147853
  return;
147706
147854
  }
@@ -147722,7 +147870,7 @@ function Remote(props) {
147722
147870
  }
147723
147871
  );
147724
147872
  });
147725
- return accountId === void 0 && accountChoices !== void 0 ? /* @__PURE__ */ import_react16.default.createElement(
147873
+ return accountId === void 0 && accountChoices !== void 0 ? /* @__PURE__ */ import_react17.default.createElement(
147726
147874
  ChooseAccount,
147727
147875
  {
147728
147876
  accounts: accountChoices,
@@ -147736,12 +147884,12 @@ function Remote(props) {
147736
147884
  }
147737
147885
  __name(Remote, "Remote");
147738
147886
  function useWorker(props) {
147739
- const [session, setSession] = (0, import_react16.useState)();
147740
- const [token, setToken] = (0, import_react16.useState)();
147741
- const [restartCounter, setRestartCounter] = (0, import_react16.useState)(0);
147742
- const startedRef = (0, import_react16.useRef)(false);
147887
+ const [session, setSession] = (0, import_react17.useState)();
147888
+ const [token, setToken] = (0, import_react17.useState)();
147889
+ const [restartCounter, setRestartCounter] = (0, import_react17.useState)(0);
147890
+ const startedRef = (0, import_react17.useRef)(false);
147743
147891
  const { onReady } = props;
147744
- (0, import_react16.useEffect)(() => {
147892
+ (0, import_react17.useEffect)(() => {
147745
147893
  const abortController = new AbortController();
147746
147894
  async function start() {
147747
147895
  if (props.accountId === void 0) {
@@ -147790,7 +147938,7 @@ ${onboardingLink}`);
147790
147938
  props.sendMetrics,
147791
147939
  restartCounter
147792
147940
  ]);
147793
- (0, import_react16.useEffect)(() => {
147941
+ (0, import_react17.useEffect)(() => {
147794
147942
  const abortController = new AbortController();
147795
147943
  async function start() {
147796
147944
  if (props.accountId === void 0) {
@@ -148063,7 +148211,7 @@ function getWorkerAccountAndContext(props) {
148063
148211
  }
148064
148212
  __name(getWorkerAccountAndContext, "getWorkerAccountAndContext");
148065
148213
  function ChooseAccount(props) {
148066
- return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, /* @__PURE__ */ import_react16.default.createElement(import_ink10.Text, { bold: true }, "Select an account from below:"), /* @__PURE__ */ import_react16.default.createElement(
148214
+ return /* @__PURE__ */ import_react17.default.createElement(import_react17.default.Fragment, null, /* @__PURE__ */ import_react17.default.createElement(import_ink10.Text, { bold: true }, "Select an account from below:"), /* @__PURE__ */ import_react17.default.createElement(
148067
148215
  import_ink_select_input3.default,
148068
148216
  {
148069
148217
  items: props.accounts.map((item) => ({
@@ -148085,7 +148233,7 @@ init_import_meta_url();
148085
148233
  var import_node_assert14 = __toESM(require("node:assert"));
148086
148234
  var import_chokidar3 = require("chokidar");
148087
148235
  var import_ink11 = __toESM(require_build2());
148088
- var import_react17 = __toESM(require_react());
148236
+ var import_react18 = __toESM(require_react());
148089
148237
  function useEsbuild({
148090
148238
  entry,
148091
148239
  destination,
@@ -148112,9 +148260,9 @@ function useEsbuild({
148112
148260
  testScheduled,
148113
148261
  experimentalLocal
148114
148262
  }) {
148115
- const [bundle, setBundle] = (0, import_react17.useState)();
148263
+ const [bundle, setBundle] = (0, import_react18.useState)();
148116
148264
  const { exit } = (0, import_ink11.useApp)();
148117
- (0, import_react17.useEffect)(() => {
148265
+ (0, import_react18.useEffect)(() => {
148118
148266
  let stopWatching = void 0;
148119
148267
  function updateBundle() {
148120
148268
  setBundle((previousBundle) => {
@@ -148275,8 +148423,8 @@ __name(validateDevProps, "validateDevProps");
148275
148423
 
148276
148424
  // src/dev/dev.tsx
148277
148425
  function useDevRegistry(name, services, durableObjects, mode) {
148278
- const [workers, setWorkers] = (0, import_react18.useState)({});
148279
- (0, import_react18.useEffect)(() => {
148426
+ const [workers, setWorkers] = (0, import_react19.useState)({});
148427
+ (0, import_react19.useEffect)(() => {
148280
148428
  startWorkerRegistry().catch((err) => {
148281
148429
  logger.error("failed to start worker registry", err);
148282
148430
  });
@@ -148330,7 +148478,7 @@ __name(useDevRegistry, "useDevRegistry");
148330
148478
  function DevImplementation(props) {
148331
148479
  validateDevProps(props);
148332
148480
  const { isRawModeSupported } = (0, import_ink12.useStdin)();
148333
- return props.showInteractiveDevSession ?? isRawModeSupported ? /* @__PURE__ */ import_react18.default.createElement(InteractiveDevSession, { ...props }) : /* @__PURE__ */ import_react18.default.createElement(DevSession, { ...props, local: props.initialMode === "local" });
148481
+ return props.showInteractiveDevSession ?? isRawModeSupported ? /* @__PURE__ */ import_react19.default.createElement(InteractiveDevSession, { ...props }) : /* @__PURE__ */ import_react19.default.createElement(DevSession, { ...props, local: props.initialMode === "local" });
148334
148482
  }
148335
148483
  __name(DevImplementation, "DevImplementation");
148336
148484
  var ip;
@@ -148359,14 +148507,14 @@ function InteractiveDevSession(props) {
148359
148507
  }
148360
148508
  }
148361
148509
  }, "onReady");
148362
- return /* @__PURE__ */ import_react18.default.createElement(import_react18.default.Fragment, null, /* @__PURE__ */ import_react18.default.createElement(DevSession, { ...props, local: toggles.local, onReady }), /* @__PURE__ */ import_react18.default.createElement(import_ink12.Box, { borderStyle: "round", paddingLeft: 1, paddingRight: 1 }, /* @__PURE__ */ import_react18.default.createElement(import_ink12.Text, { bold: true }, "[b]"), /* @__PURE__ */ import_react18.default.createElement(import_ink12.Text, null, " open a browser, "), props.inspect ? /* @__PURE__ */ import_react18.default.createElement(import_react18.default.Fragment, null, /* @__PURE__ */ import_react18.default.createElement(import_ink12.Text, { bold: true }, "[d]"), /* @__PURE__ */ import_react18.default.createElement(import_ink12.Text, null, " open Devtools, ")) : null, !props.forceLocal ? /* @__PURE__ */ import_react18.default.createElement(import_react18.default.Fragment, null, /* @__PURE__ */ import_react18.default.createElement(import_ink12.Text, { bold: true }, "[l]"), /* @__PURE__ */ import_react18.default.createElement(import_ink12.Text, null, " ", toggles.local ? "turn off" : "turn on", " local mode, ")) : null, /* @__PURE__ */ import_react18.default.createElement(import_ink12.Text, { bold: true }, "[c]"), /* @__PURE__ */ import_react18.default.createElement(import_ink12.Text, null, " clear console, "), /* @__PURE__ */ import_react18.default.createElement(import_ink12.Text, { bold: true }, "[x]"), /* @__PURE__ */ import_react18.default.createElement(import_ink12.Text, null, " to exit")));
148510
+ return /* @__PURE__ */ import_react19.default.createElement(import_react19.default.Fragment, null, /* @__PURE__ */ import_react19.default.createElement(DevSession, { ...props, local: toggles.local, onReady }), /* @__PURE__ */ import_react19.default.createElement(import_ink12.Box, { borderStyle: "round", paddingLeft: 1, paddingRight: 1 }, /* @__PURE__ */ import_react19.default.createElement(import_ink12.Text, { bold: true }, "[b]"), /* @__PURE__ */ import_react19.default.createElement(import_ink12.Text, null, " open a browser, "), props.inspect ? /* @__PURE__ */ import_react19.default.createElement(import_react19.default.Fragment, null, /* @__PURE__ */ import_react19.default.createElement(import_ink12.Text, { bold: true }, "[d]"), /* @__PURE__ */ import_react19.default.createElement(import_ink12.Text, null, " open Devtools, ")) : null, !props.forceLocal ? /* @__PURE__ */ import_react19.default.createElement(import_react19.default.Fragment, null, /* @__PURE__ */ import_react19.default.createElement(import_ink12.Text, { bold: true }, "[l]"), /* @__PURE__ */ import_react19.default.createElement(import_ink12.Text, null, " ", toggles.local ? "turn off" : "turn on", " local mode, ")) : null, /* @__PURE__ */ import_react19.default.createElement(import_ink12.Text, { bold: true }, "[c]"), /* @__PURE__ */ import_react19.default.createElement(import_ink12.Text, null, " clear console, "), /* @__PURE__ */ import_react19.default.createElement(import_ink12.Text, { bold: true }, "[x]"), /* @__PURE__ */ import_react19.default.createElement(import_ink12.Text, null, " to exit")));
148363
148511
  }
148364
148512
  __name(InteractiveDevSession, "InteractiveDevSession");
148365
148513
  function DevSession(props) {
148366
148514
  useCustomBuild(props.entry, props.build);
148367
148515
  const directory = useTmpDir();
148368
148516
  const handleError = useErrorHandler();
148369
- const betaD1Shims = (0, import_react18.useMemo)(
148517
+ const betaD1Shims = (0, import_react19.useMemo)(
148370
148518
  () => props.bindings.d1_databases?.map((db) => db.binding),
148371
148519
  [props.bindings.d1_databases]
148372
148520
  );
@@ -148430,7 +148578,7 @@ function DevSession(props) {
148430
148578
  props.onReady(finalIp, finalPort);
148431
148579
  }
148432
148580
  }, "announceAndOnReady");
148433
- return props.local ? /* @__PURE__ */ import_react18.default.createElement(
148581
+ return props.local ? /* @__PURE__ */ import_react19.default.createElement(
148434
148582
  Local,
148435
148583
  {
148436
148584
  name: props.name,
@@ -148458,7 +148606,7 @@ function DevSession(props) {
148458
148606
  enablePagesAssetsServiceBinding: props.enablePagesAssetsServiceBinding,
148459
148607
  sourceMapPath: bundle?.sourceMapPath
148460
148608
  }
148461
- ) : /* @__PURE__ */ import_react18.default.createElement(
148609
+ ) : /* @__PURE__ */ import_react19.default.createElement(
148462
148610
  Remote,
148463
148611
  {
148464
148612
  name: props.name,
@@ -148489,9 +148637,9 @@ function DevSession(props) {
148489
148637
  }
148490
148638
  __name(DevSession, "DevSession");
148491
148639
  function useTmpDir() {
148492
- const [directory, setDirectory] = (0, import_react18.useState)();
148640
+ const [directory, setDirectory] = (0, import_react19.useState)();
148493
148641
  const handleError = useErrorHandler();
148494
- (0, import_react18.useEffect)(() => {
148642
+ (0, import_react19.useEffect)(() => {
148495
148643
  let dir;
148496
148644
  try {
148497
148645
  dir = import_tmp_promise3.default.dirSync({ unsafeCleanup: true });
@@ -148511,7 +148659,7 @@ function useTmpDir() {
148511
148659
  }
148512
148660
  __name(useTmpDir, "useTmpDir");
148513
148661
  function useCustomBuild(expectedEntry, build5) {
148514
- (0, import_react18.useEffect)(() => {
148662
+ (0, import_react19.useEffect)(() => {
148515
148663
  if (!build5.command)
148516
148664
  return;
148517
148665
  let watcher;
@@ -148555,9 +148703,9 @@ async function findTunnelHostname() {
148555
148703
  }
148556
148704
  __name(findTunnelHostname, "findTunnelHostname");
148557
148705
  function useTunnel(toggle) {
148558
- const tunnel = (0, import_react18.useRef)();
148559
- const removeSignalExitListener = (0, import_react18.useRef)();
148560
- (0, import_react18.useEffect)(() => {
148706
+ const tunnel = (0, import_react19.useRef)();
148707
+ const removeSignalExitListener = (0, import_react19.useRef)();
148708
+ (0, import_react19.useEffect)(() => {
148561
148709
  async function startTunnel() {
148562
148710
  if (toggle) {
148563
148711
  try {
@@ -148609,7 +148757,7 @@ function useTunnel(toggle) {
148609
148757
  __name(useTunnel, "useTunnel");
148610
148758
  function useHotkeys(props) {
148611
148759
  const { initial, inspectorPort, inspect: inspect2, localProtocol, forceLocal } = props;
148612
- const [toggles, setToggles] = (0, import_react18.useState)(initial);
148760
+ const [toggles, setToggles] = (0, import_react19.useState)(initial);
148613
148761
  const { exit } = (0, import_ink12.useApp)();
148614
148762
  (0, import_ink12.useInput)(
148615
148763
  async (input, key) => {
@@ -148654,8 +148802,8 @@ function useHotkeys(props) {
148654
148802
  __name(useHotkeys, "useHotkeys");
148655
148803
  function ErrorFallback(props) {
148656
148804
  const { exit } = (0, import_ink12.useApp)();
148657
- (0, import_react18.useEffect)(() => exit(props.error));
148658
- return /* @__PURE__ */ import_react18.default.createElement(import_react18.default.Fragment, null, /* @__PURE__ */ import_react18.default.createElement(import_ink12.Text, null, "Something went wrong:"), /* @__PURE__ */ import_react18.default.createElement(import_ink12.Text, null, props.error.stack));
148805
+ (0, import_react19.useEffect)(() => exit(props.error));
148806
+ return /* @__PURE__ */ import_react19.default.createElement(import_react19.default.Fragment, null, /* @__PURE__ */ import_react19.default.createElement(import_ink12.Text, null, "Something went wrong:"), /* @__PURE__ */ import_react19.default.createElement(import_ink12.Text, null, props.error.stack));
148659
148807
  }
148660
148808
  __name(ErrorFallback, "ErrorFallback");
148661
148809
  var dev_default = withErrorBoundary(DevImplementation, {
@@ -149225,7 +149373,7 @@ To run an edge preview session for your Worker, use ${import_chalk15.default.gre
149225
149373
  args,
149226
149374
  configParam
149227
149375
  );
149228
- return /* @__PURE__ */ import_react19.default.createElement(
149376
+ return /* @__PURE__ */ import_react20.default.createElement(
149229
149377
  dev_default,
149230
149378
  {
149231
149379
  name: getScriptName({ name: args.name, env: args.env }, configParam),