wrangler 0.0.0-e7a0cd5b → 0.0.0-e7cf0caa

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 (237) hide show
  1. package/README.md +3 -3
  2. package/bin/wrangler.js +30 -10
  3. package/miniflare-dist/index.mjs +126 -74
  4. package/package.json +27 -19
  5. package/src/__tests__/api-dev.test.ts +65 -36
  6. package/src/__tests__/api-devregistry.test.ts +121 -0
  7. package/src/__tests__/api.test.ts +27 -5
  8. package/src/__tests__/configuration.test.ts +567 -86
  9. package/src/__tests__/d1/d1.test.ts +82 -0
  10. package/src/__tests__/d1/execute.test.ts +66 -0
  11. package/src/__tests__/d1/migrate.test.ts +157 -0
  12. package/src/__tests__/d1/splitter.test.ts +255 -0
  13. package/src/__tests__/delete.test.ts +91 -49
  14. package/src/__tests__/deployments.test.ts +330 -56
  15. package/src/__tests__/dev.test.tsx +198 -90
  16. package/src/__tests__/generate.test.ts +12 -10
  17. package/src/__tests__/guess-worker-format.test.ts +35 -0
  18. package/src/__tests__/helpers/end-event-loop.ts +6 -0
  19. package/src/__tests__/helpers/mock-auth-domain.ts +20 -0
  20. package/src/__tests__/helpers/mock-console.ts +6 -0
  21. package/src/__tests__/helpers/mock-dialogs.ts +71 -85
  22. package/src/__tests__/helpers/mock-get-pages-upload-token.ts +25 -0
  23. package/src/__tests__/helpers/mock-get-zone-from-host.ts +8 -5
  24. package/src/__tests__/helpers/mock-known-routes.ts +7 -2
  25. package/src/__tests__/helpers/mock-kv.ts +29 -16
  26. package/src/__tests__/helpers/mock-oauth-flow.ts +103 -92
  27. package/src/__tests__/helpers/mock-process.ts +8 -13
  28. package/src/__tests__/helpers/mock-set-timeout.ts +16 -0
  29. package/src/__tests__/helpers/msw/blob-worker.cjs +19 -0
  30. package/src/__tests__/helpers/msw/handlers/deployments.ts +128 -27
  31. package/src/__tests__/helpers/msw/handlers/namespaces.ts +18 -41
  32. package/src/__tests__/helpers/msw/handlers/oauth.ts +13 -18
  33. package/src/__tests__/helpers/msw/handlers/r2.ts +14 -34
  34. package/src/__tests__/helpers/msw/handlers/script.ts +9 -28
  35. package/src/__tests__/helpers/msw/handlers/user.ts +13 -24
  36. package/src/__tests__/helpers/msw/handlers/zones.ts +6 -8
  37. package/src/__tests__/helpers/msw/index.ts +32 -1
  38. package/src/__tests__/helpers/msw/read-file-sync.js +61 -0
  39. package/src/__tests__/helpers/string-dynamic-values-matcher.ts +28 -0
  40. package/src/__tests__/helpers/worker-scripts/parent-worker.js +4 -1
  41. package/src/__tests__/index.test.ts +90 -72
  42. package/src/__tests__/init.test.ts +927 -631
  43. package/src/__tests__/jest.setup.ts +19 -42
  44. package/src/__tests__/kv.test.ts +355 -231
  45. package/src/__tests__/logger.test.ts +68 -2
  46. package/src/__tests__/logout.test.ts +47 -0
  47. package/src/__tests__/metrics.test.ts +94 -51
  48. package/src/__tests__/middleware.scheduled.test.ts +42 -32
  49. package/src/__tests__/middleware.test.ts +212 -122
  50. package/src/__tests__/mtls-certificates.test.ts +588 -0
  51. package/src/__tests__/pages/deployment-list.test.ts +80 -0
  52. package/src/__tests__/pages/functions-build.test.ts +452 -0
  53. package/src/__tests__/pages/pages.test.ts +81 -0
  54. package/src/__tests__/pages/project-create.test.ts +63 -0
  55. package/src/__tests__/pages/project-list.test.ts +110 -0
  56. package/src/__tests__/pages/project-upload.test.ts +500 -0
  57. package/src/__tests__/pages/publish.test.ts +2864 -0
  58. package/src/__tests__/pages-deployment-tail.test.ts +955 -0
  59. package/src/__tests__/parse.test.ts +106 -0
  60. package/src/__tests__/publish.test.ts +1615 -852
  61. package/src/__tests__/pubsub.test.ts +226 -100
  62. package/src/__tests__/queues.test.ts +238 -77
  63. package/src/__tests__/r2.test.ts +55 -57
  64. package/src/__tests__/secret.test.ts +179 -130
  65. package/src/__tests__/tail.test.ts +267 -109
  66. package/src/__tests__/test-old-node-version.js +3 -3
  67. package/src/__tests__/traverse-module-graph.test.ts +220 -0
  68. package/src/__tests__/tsconfig-sanity.ts +12 -0
  69. package/src/__tests__/tsconfig.json +8 -0
  70. package/src/__tests__/tsconfig.tsbuildinfo +1 -0
  71. package/src/__tests__/type-generation.test.ts +43 -26
  72. package/src/__tests__/user.test.ts +35 -72
  73. package/src/__tests__/whoami.test.tsx +8 -114
  74. package/src/__tests__/worker-namespace.test.ts +83 -69
  75. package/src/api/dev.ts +168 -60
  76. package/src/api/index.ts +10 -1
  77. package/src/api/mtls-certificate.ts +148 -0
  78. package/src/api/pages/create-worker-bundle-contents.ts +76 -0
  79. package/src/api/pages/index.ts +5 -0
  80. package/src/api/pages/publish.tsx +355 -0
  81. package/src/bundle.ts +263 -140
  82. package/src/cfetch/index.ts +0 -2
  83. package/src/cfetch/internal.ts +16 -21
  84. package/src/cli.ts +4 -4
  85. package/src/config/config.ts +14 -7
  86. package/src/config/environment.ts +79 -24
  87. package/src/config/index.ts +99 -38
  88. package/src/config/validation-helpers.ts +1 -1
  89. package/src/config/validation.ts +248 -19
  90. package/src/create-worker-preview.ts +19 -8
  91. package/src/create-worker-upload-form.ts +60 -22
  92. package/src/d1/backups.tsx +43 -42
  93. package/src/d1/constants.ts +2 -0
  94. package/src/d1/create.tsx +44 -30
  95. package/src/d1/{delete.tsx → delete.ts} +11 -14
  96. package/src/d1/execute.tsx +209 -151
  97. package/src/d1/index.ts +31 -7
  98. package/src/d1/list.tsx +22 -10
  99. package/src/d1/migrations/apply.tsx +212 -0
  100. package/src/d1/migrations/create.tsx +79 -0
  101. package/src/d1/migrations/helpers.ts +172 -0
  102. package/src/d1/migrations/index.ts +3 -0
  103. package/src/d1/migrations/list.tsx +95 -0
  104. package/src/d1/migrations/options.ts +23 -0
  105. package/src/d1/options.ts +12 -2
  106. package/src/d1/splitter.ts +161 -0
  107. package/src/d1/{types.tsx → types.ts} +11 -0
  108. package/src/d1/utils.ts +12 -2
  109. package/src/delete.ts +8 -16
  110. package/src/deployments.ts +340 -46
  111. package/src/deprecated/index.ts +8 -302
  112. package/src/dev/dev.tsx +57 -44
  113. package/src/dev/local.tsx +294 -91
  114. package/src/dev/remote.tsx +32 -3
  115. package/src/dev/start-server.ts +89 -68
  116. package/src/dev/use-esbuild.ts +17 -18
  117. package/src/dev/validate-dev-props.ts +9 -0
  118. package/src/{dev-registry.tsx → dev-registry.ts} +2 -1
  119. package/src/dev.tsx +178 -118
  120. package/src/dialogs.ts +136 -0
  121. package/src/dispatch-namespace.ts +21 -17
  122. package/src/docs/index.ts +97 -0
  123. package/src/entry.ts +19 -11
  124. package/src/environment-variables/factory.ts +88 -0
  125. package/src/environment-variables/misc-variables.ts +30 -0
  126. package/src/generate/index.ts +298 -0
  127. package/src/git-client.ts +15 -4
  128. package/src/{index.tsx → index.ts} +137 -63
  129. package/src/init.ts +249 -187
  130. package/src/inspect.ts +16 -1
  131. package/src/jest.d.ts +4 -0
  132. package/src/kv/index.ts +15 -17
  133. package/src/logger.ts +32 -5
  134. package/src/metrics/metrics-config.ts +3 -3
  135. package/src/metrics/send-event.ts +6 -1
  136. package/src/miniflare-cli/assets.ts +64 -28
  137. package/src/miniflare-cli/index.ts +4 -7
  138. package/src/miniflare-cli/tsconfig.json +9 -0
  139. package/src/miniflare-cli/tsconfig.tsbuildinfo +1 -0
  140. package/src/miniflare-cli/types.ts +11 -0
  141. package/src/module-collection.ts +91 -25
  142. package/src/mtls-certificate/cli.ts +155 -0
  143. package/src/pages/build.ts +410 -0
  144. package/src/pages/buildFunctions.ts +140 -0
  145. package/src/pages/deployment-tails.ts +281 -0
  146. package/src/pages/deployments.tsx +11 -33
  147. package/src/pages/{dev.tsx → dev.ts} +147 -124
  148. package/src/pages/errors.ts +1 -0
  149. package/src/pages/functions/buildPlugin.ts +72 -69
  150. package/src/pages/functions/buildWorker.ts +249 -114
  151. package/src/pages/functions/tsconfig.json +8 -0
  152. package/src/pages/functions/tsconfig.tsbuildinfo +1 -0
  153. package/src/pages/{functions.tsx → functions.ts} +8 -4
  154. package/src/pages/{index.tsx → index.ts} +11 -3
  155. package/src/pages/projects.tsx +12 -22
  156. package/src/pages/prompt-select-project.tsx +31 -0
  157. package/src/pages/publish.tsx +45 -214
  158. package/src/pages/types.ts +6 -9
  159. package/src/pages/upload.tsx +58 -14
  160. package/src/pages/utils.ts +14 -3
  161. package/src/parse.ts +23 -1
  162. package/src/paths.ts +1 -1
  163. package/src/proxy.ts +5 -0
  164. package/src/publish/index.ts +20 -16
  165. package/src/publish/publish.ts +72 -47
  166. package/src/pubsub/{pubsub-commands.tsx → pubsub-commands.ts} +19 -20
  167. package/src/queues/cli/commands/consumer/add.ts +24 -24
  168. package/src/queues/cli/commands/consumer/index.ts +3 -6
  169. package/src/queues/cli/commands/consumer/remove.ts +11 -18
  170. package/src/queues/cli/commands/create.ts +8 -8
  171. package/src/queues/cli/commands/delete.ts +8 -8
  172. package/src/queues/cli/commands/index.ts +6 -4
  173. package/src/queues/cli/commands/list.ts +8 -8
  174. package/src/queues/client.ts +1 -0
  175. package/src/queues/utils.ts +18 -0
  176. package/src/r2/constants.ts +4 -0
  177. package/src/r2/helpers.ts +1 -0
  178. package/src/r2/index.ts +40 -28
  179. package/src/secret/index.ts +14 -17
  180. package/src/{sites.tsx → sites.ts} +1 -1
  181. package/src/tail/createTail.ts +94 -3
  182. package/src/tail/filters.ts +1 -1
  183. package/src/tail/index.ts +8 -11
  184. package/src/tail/printing.ts +15 -0
  185. package/src/traverse-module-graph.ts +53 -0
  186. package/src/tsconfig-sanity.ts +16 -0
  187. package/src/type-generation.ts +79 -57
  188. package/src/user/access.ts +0 -1
  189. package/src/user/auth-variables.ts +113 -0
  190. package/src/user/choose-account.tsx +1 -31
  191. package/src/user/index.ts +0 -1
  192. package/src/user/{user.tsx → user.ts} +123 -82
  193. package/src/utils/render.ts +93 -0
  194. package/src/{whoami.tsx → whoami.ts} +37 -71
  195. package/src/worker.ts +35 -3
  196. package/src/yargs-types.ts +22 -5
  197. package/templates/__tests__/tsconfig-sanity.ts +12 -0
  198. package/templates/__tests__/tsconfig.json +8 -0
  199. package/templates/__tests__/tsconfig.tsbuildinfo +1 -0
  200. package/templates/checked-fetch.js +9 -3
  201. package/templates/d1-beta-facade.js +95 -25
  202. package/templates/facade.d.ts +14 -0
  203. package/templates/first-party-worker-module-facade.ts +4 -3
  204. package/templates/format-dev-errors.ts +8 -6
  205. package/templates/gitignore +1 -0
  206. package/templates/init-tests/test-jest-new-worker.js +3 -5
  207. package/templates/init-tests/test-vitest-new-worker.js +3 -5
  208. package/templates/init-tests/test-vitest-new-worker.ts +25 -0
  209. package/templates/middleware/loader-modules.ts +2 -2
  210. package/templates/middleware/loader-sw.ts +51 -31
  211. package/templates/middleware/middleware-miniflare3-json-error.ts +32 -0
  212. package/templates/new-worker.ts +3 -0
  213. package/templates/pages-dev-pipeline.ts +4 -1
  214. package/templates/pages-shim.ts +4 -1
  215. package/templates/pages-template-plugin.ts +19 -10
  216. package/templates/serve-static-assets.ts +17 -14
  217. package/templates/service-bindings-module-facade.js +1 -0
  218. package/templates/tsconfig-sanity.ts +11 -0
  219. package/templates/tsconfig.init.json +105 -0
  220. package/templates/tsconfig.json +5 -103
  221. package/templates/tsconfig.tsbuildinfo +1 -0
  222. package/wrangler-dist/cli.d.ts +826 -77
  223. package/wrangler-dist/cli.js +130734 -140838
  224. package/wrangler-dist/wasm-sync.wasm +0 -0
  225. package/src/__tests__/api-devregistry.test.js +0 -57
  226. package/src/__tests__/d1.test.ts +0 -72
  227. package/src/__tests__/dialogs.test.tsx +0 -40
  228. package/src/__tests__/helpers/mock-cfetch.ts +0 -333
  229. package/src/__tests__/pages.test.ts +0 -2223
  230. package/src/dialogs.tsx +0 -163
  231. package/src/environment-variables.ts +0 -50
  232. package/src/pages/build.tsx +0 -238
  233. package/src/user/env-vars.ts +0 -46
  234. package/templates/experimental-local-cache-stubs.js +0 -27
  235. /package/src/{bundle-reporter.tsx → bundle-reporter.ts} +0 -0
  236. /package/src/dev/{get-local-persistence-path.tsx → get-local-persistence-path.ts} +0 -0
  237. /package/src/pages/{hash.tsx → hash.ts} +0 -0
@@ -9,14 +9,17 @@ import { isBuildFailure } from "./bundle";
9
9
  import { loadDotEnv, readConfig } from "./config";
10
10
  import { d1 } from "./d1";
11
11
  import { deleteHandler, deleteOptions } from "./delete";
12
- import { deployments } from "./deployments";
12
+ import {
13
+ deployments,
14
+ commonDeploymentCMDSetup,
15
+ rollbackDeployment,
16
+ viewDeployment,
17
+ } from "./deployments";
13
18
  import {
14
19
  buildHandler,
15
20
  buildOptions,
16
21
  configHandler,
17
22
  noOpOptions,
18
- generateHandler,
19
- generateOptions,
20
23
  previewHandler,
21
24
  previewOptions,
22
25
  route,
@@ -26,10 +29,13 @@ import {
26
29
  } from "./deprecated";
27
30
  import { devHandler, devOptions } from "./dev";
28
31
  import { workerNamespaceCommands } from "./dispatch-namespace";
32
+ import { docsHandler, docsOptions } from "./docs";
33
+ import { generateHandler, generateOptions } from "./generate";
29
34
  import { initHandler, initOptions } from "./init";
30
35
  import { kvNamespace, kvKey, kvBulk } from "./kv";
31
36
  import { logBuildFailure, logger } from "./logger";
32
37
  import * as metrics from "./metrics";
38
+ import { mTlsCertificateCommands } from "./mtls-certificate/cli";
33
39
  import { pages } from "./pages";
34
40
  import { formatMessage, ParseError } from "./parse";
35
41
  import { publishOptions, publishHandler } from "./publish";
@@ -40,23 +46,13 @@ import { secret, secretBulkHandler, secretBulkOptions } from "./secret";
40
46
  import { tailOptions, tailHandler } from "./tail";
41
47
  import { generateTypes } from "./type-generation";
42
48
  import { updateCheck } from "./update-check";
43
- import {
44
- listScopes,
45
- login,
46
- logout,
47
- requireAuth,
48
- validateScopeKeys,
49
- } from "./user";
49
+ import { listScopes, login, logout, validateScopeKeys } from "./user";
50
50
  import { whoami } from "./whoami";
51
51
 
52
52
  import type { Config } from "./config";
53
- import type { PartialConfigToDTS } from "./type-generation";
54
- import type { CommonYargsOptions } from "./yargs-types";
55
- import type { ArgumentsCamelCase } from "yargs";
53
+ import type { CommonYargsArgv, CommonYargsOptions } from "./yargs-types";
56
54
  import type Yargs from "yargs";
57
55
 
58
- export type ConfigPath = string | undefined;
59
-
60
56
  const resetColor = "\x1b[0m";
61
57
  const fgGreenColor = "\x1b[32m";
62
58
  export const DEFAULT_LOCAL_PORT = 8787;
@@ -114,7 +110,7 @@ export async function printWranglerBanner() {
114
110
 
115
111
  export function isLegacyEnv(config: Config): boolean {
116
112
  // We only read from config here, because we've already accounted for
117
- // args["legacy-env"] in https://github.com/cloudflare/wrangler2/blob/b24aeb5722370c2e04bce97a84a1fa1e55725d79/packages/wrangler/src/config/validation.ts#L94-L98
113
+ // args["legacy-env"] in https://github.com/cloudflare/workers-sdk/blob/b24aeb5722370c2e04bce97a84a1fa1e55725d79/packages/wrangler/src/config/validation.ts#L94-L98
118
114
  return config.legacy_env;
119
115
  }
120
116
 
@@ -136,7 +132,7 @@ export function getScriptName(
136
132
  }
137
133
 
138
134
  /**
139
- * Alternative to the getScriptName() because special Legacy cases allowed "name", and "env" together in Wrangler1
135
+ * Alternative to the getScriptName() because special Legacy cases allowed "name", and "env" together in Wrangler v1
140
136
  */
141
137
  export function getLegacyScriptName(
142
138
  args: { name: string | undefined; env: string | undefined },
@@ -177,7 +173,7 @@ export class CommandLineArgsError extends Error {}
177
173
  export function createCLIParser(argv: string[]) {
178
174
  // Type check result against CommonYargsOptions to make sure we've included
179
175
  // all common options
180
- const wrangler: Yargs.Argv<CommonYargsOptions> = makeCLI(argv)
176
+ const wrangler: CommonYargsArgv = makeCLI(argv)
181
177
  .strict()
182
178
  // We handle errors ourselves in a try-catch around `yargs.parse`.
183
179
  // If you want the "help info" to be displayed then throw an instance of `CommandLineArgsError`.
@@ -213,6 +209,11 @@ export function createCLIParser(argv: string[]) {
213
209
  type: "string",
214
210
  requiresArg: true,
215
211
  })
212
+ .option("experimental-json-config", {
213
+ alias: "j",
214
+ describe: `Experimental: Support wrangler.json`,
215
+ type: "boolean",
216
+ })
216
217
  .check((args) => {
217
218
  // Grab locally specified env params from `.env` file
218
219
  const loaded = loadDotEnv(".env", args.env);
@@ -222,7 +223,10 @@ export function createCLIParser(argv: string[]) {
222
223
  return true;
223
224
  });
224
225
 
225
- wrangler.group(["config", "env", "help", "version"], "Flags:");
226
+ wrangler.group(
227
+ ["experimental-json-config", "config", "env", "help", "version"],
228
+ "Flags:"
229
+ );
226
230
  wrangler.help().alias("h", "help");
227
231
 
228
232
  // Default help command that supports the subcommands
@@ -265,24 +269,30 @@ export function createCLIParser(argv: string[]) {
265
269
  // I wish we could enforce this pattern, but this comment will have to do for now.
266
270
  // (It's also annoying that choices[] doesn't get inferred as an enum. 🤷‍♂.)
267
271
 
268
- // [DEPRECATED] generate
272
+ // docs
269
273
  wrangler.command(
270
- // we definitely want to move away from us cloning github templates
271
- // we can do something better here, let's see
272
- "generate [name] [template]",
273
- false,
274
- generateOptions,
275
- generateHandler
274
+ "docs [command]",
275
+ "📚 Open wrangler's docs in your browser",
276
+ docsOptions,
277
+ docsHandler
276
278
  );
277
279
 
278
280
  // init
279
281
  wrangler.command(
280
282
  "init [name]",
281
- "📥 Create a wrangler.toml configuration file",
283
+ "📥 Initialize a basic Worker project, including a wrangler.toml file",
282
284
  initOptions,
283
285
  initHandler
284
286
  );
285
287
 
288
+ // generate
289
+ wrangler.command(
290
+ "generate [name] [template]",
291
+ "✨ Generate a new Worker project from an existing Worker template. See https://github.com/cloudflare/templates",
292
+ generateOptions,
293
+ generateHandler
294
+ );
295
+
286
296
  // [DEPRECATED] build
287
297
  wrangler.command("build", false, buildOptions, buildHandler);
288
298
 
@@ -398,7 +408,7 @@ export function createCLIParser(argv: string[]) {
398
408
  });
399
409
 
400
410
  // queues
401
- wrangler.command("queues", "🆀 Configure Workers Queues", (queuesYargs) => {
411
+ wrangler.command("queues", "🇶 Configure Workers Queues", (queuesYargs) => {
402
412
  return queues(queuesYargs.command(subHelp));
403
413
  });
404
414
 
@@ -430,6 +440,15 @@ export function createCLIParser(argv: string[]) {
430
440
  }
431
441
  );
432
442
 
443
+ // mtls-certificate
444
+ wrangler.command(
445
+ "mtls-certificate",
446
+ "🪪 Manage certificates used for mTLS connections",
447
+ (mtlsYargs) => {
448
+ return mTlsCertificateCommands(mtlsYargs.command(subHelp));
449
+ }
450
+ );
451
+
433
452
  /**
434
453
  * User Group: login, logout, and whoami
435
454
  * TODO: group commands into User group similar to .group() for flags in yargs
@@ -446,6 +465,11 @@ export function createCLIParser(argv: string[]) {
446
465
  .option("scopes-list", {
447
466
  describe: "List all the available OAuth scopes with descriptions",
448
467
  })
468
+ .option("browser", {
469
+ default: true,
470
+ type: "boolean",
471
+ describe: "Automatically open the OAuth link in a browser",
472
+ })
449
473
  .option("scopes", {
450
474
  describe: "Pick the set of applicable OAuth scopes when logging in",
451
475
  array: true,
@@ -472,11 +496,11 @@ export function createCLIParser(argv: string[]) {
472
496
  `One of ${args.scopes} is not a valid authentication scope. Run "wrangler login --list-scopes" to see the valid scopes.`
473
497
  );
474
498
  }
475
- await login({ scopes: args.scopes });
499
+ await login({ scopes: args.scopes, browser: args.browser });
476
500
  return;
477
501
  }
478
- await login();
479
- const config = readConfig(args.config as ConfigPath, args);
502
+ await login({ browser: args.browser });
503
+ const config = readConfig(args.config, args);
480
504
  await metrics.sendMetricsEvent("login user", {
481
505
  sendMetrics: config.send_metrics,
482
506
  });
@@ -493,10 +517,10 @@ export function createCLIParser(argv: string[]) {
493
517
  "logout",
494
518
  "🚪 Logout from Cloudflare",
495
519
  () => {},
496
- async () => {
520
+ async (args) => {
497
521
  await printWranglerBanner();
498
522
  await logout();
499
- const config = readConfig(undefined, {});
523
+ const config = readConfig(undefined, args);
500
524
  await metrics.sendMetricsEvent("logout user", {
501
525
  sendMetrics: config.send_metrics,
502
526
  });
@@ -508,10 +532,10 @@ export function createCLIParser(argv: string[]) {
508
532
  "whoami",
509
533
  "🕵️ Retrieve your user info and test your auth config",
510
534
  () => {},
511
- async () => {
535
+ async (args) => {
512
536
  await printWranglerBanner();
513
537
  await whoami();
514
- const config = readConfig(undefined, {});
538
+ const config = readConfig(undefined, args);
515
539
  await metrics.sendMetricsEvent("view accounts", {
516
540
  sendMetrics: config.send_metrics,
517
541
  });
@@ -523,11 +547,11 @@ export function createCLIParser(argv: string[]) {
523
547
  "types",
524
548
  "📝 Generate types from bindings & module rules in config",
525
549
  () => {},
526
- async () => {
550
+ async (args) => {
527
551
  await printWranglerBanner();
528
- const config = readConfig(undefined, {});
552
+ const config = readConfig(undefined, args);
529
553
 
530
- const configBindings: PartialConfigToDTS = {
554
+ const configBindings: Partial<Config> = {
531
555
  kv_namespaces: config.kv_namespaces ?? [],
532
556
  vars: { ...config.vars },
533
557
  wasm_modules: config.wasm_modules,
@@ -537,13 +561,14 @@ export function createCLIParser(argv: string[]) {
537
561
  data_blobs: config.data_blobs,
538
562
  durable_objects: config.durable_objects,
539
563
  r2_buckets: config.r2_buckets,
540
- // @ts-expect-error - We don't want the type generated to inlcude the Beta prefix
541
564
  d1_databases: config.d1_databases,
542
565
  services: config.services,
566
+ analytics_engine_datasets: config.analytics_engine_datasets,
543
567
  dispatch_namespaces: config.dispatch_namespaces,
544
568
  logfwdr: config.logfwdr,
545
- unsafe: config.unsafe?.bindings,
569
+ unsafe: config.unsafe,
546
570
  rules: config.rules,
571
+ queues: config.queues,
547
572
  };
548
573
 
549
574
  await generateTypes(configBindings, config);
@@ -552,35 +577,84 @@ export function createCLIParser(argv: string[]) {
552
577
 
553
578
  //deployments
554
579
  const deploymentsWarning =
555
- "🚧`wrangler deployments` is a beta command. Please report any issues to https://github.com/cloudflare/wrangler2/issues/new/choose";
580
+ "🚧`wrangler deployments` is a beta command. Please report any issues to https://github.com/cloudflare/workers-sdk/issues/new/choose";
556
581
  wrangler.command(
557
582
  "deployments",
558
- false,
559
- // "🚢 Logs the 10 most recent deployments with 'Version ID', 'Version number','Author email', 'Created on' and 'Latest deploy'",
560
- (yargs) => {
583
+ "🚢 List and view details for deployments",
584
+ (yargs) =>
561
585
  yargs
562
586
  .option("name", {
563
587
  describe: "The name of your worker",
564
588
  type: "string",
565
589
  })
566
- .epilogue(deploymentsWarning);
567
- },
568
- async (deploymentsYargs: ArgumentsCamelCase<{ name: string }>) => {
569
- await printWranglerBanner();
570
- const config = readConfig(
571
- deploymentsYargs.config as ConfigPath,
572
- deploymentsYargs
573
- );
574
- const accountId = await requireAuth(config);
575
- const scriptName = getScriptName(
576
- { name: deploymentsYargs.name, env: undefined },
577
- config
578
- );
579
-
580
- logger.log(`${deploymentsWarning}\n`);
581
- await deployments(accountId, scriptName);
582
- }
590
+ .command(
591
+ "list",
592
+ "🚢 Displays the 10 most recent deployments for a worker",
593
+ async (listYargs) => listYargs,
594
+ async (listYargs) => {
595
+ const { accountId, scriptName, config } =
596
+ await commonDeploymentCMDSetup(listYargs, deploymentsWarning);
597
+ await deployments(accountId, scriptName, config);
598
+ }
599
+ )
600
+ .command(
601
+ "view [deployment-id]",
602
+ "🔍 View a deployment",
603
+ async (viewYargs) =>
604
+ viewYargs.positional("deployment-id", {
605
+ describe: "The ID of the deployment you want to inspect",
606
+ type: "string",
607
+ demandOption: false,
608
+ }),
609
+ async (viewYargs) => {
610
+ const { accountId, scriptName, config } =
611
+ await commonDeploymentCMDSetup(viewYargs, deploymentsWarning);
612
+
613
+ await viewDeployment(
614
+ accountId,
615
+ scriptName,
616
+ config,
617
+ viewYargs.deploymentId
618
+ );
619
+ }
620
+ )
621
+ .command(subHelp)
622
+ .epilogue(deploymentsWarning)
583
623
  );
624
+ const rollbackWarning =
625
+ "🚧`wrangler rollback` is a beta command. Please report any issues to https://github.com/cloudflare/workers-sdk/issues/new/choose";
626
+ wrangler
627
+ .command(
628
+ "rollback [deployment-id]",
629
+ "🔙 Rollback a deployment",
630
+ (rollbackYargs) =>
631
+ rollbackYargs
632
+ .positional("deployment-id", {
633
+ describe: "The ID of the deployment to rollback to",
634
+ type: "string",
635
+ demandOption: false,
636
+ })
637
+ .option("message", {
638
+ alias: "m",
639
+ describe:
640
+ "Skip confirmation and message prompts, uses provided argument as message",
641
+ type: "string",
642
+ default: undefined,
643
+ }),
644
+ async (rollbackYargs) => {
645
+ const { accountId, scriptName, config } =
646
+ await commonDeploymentCMDSetup(rollbackYargs, rollbackWarning);
647
+
648
+ await rollbackDeployment(
649
+ accountId,
650
+ scriptName,
651
+ config,
652
+ rollbackYargs.deploymentId,
653
+ rollbackYargs.message
654
+ );
655
+ }
656
+ )
657
+ .epilogue(rollbackWarning);
584
658
 
585
659
  // This set to false to allow overwrite of default behaviour
586
660
  wrangler.version(false);
@@ -618,7 +692,7 @@ export async function main(argv: string[]): Promise<void> {
618
692
  await createCLIParser([...argv, "--help"]).parse();
619
693
  } else if (e instanceof ParseError) {
620
694
  e.notes.push({
621
- text: "\nIf you think this is a bug, please open an issue at: https://github.com/cloudflare/wrangler2/issues/new/choose",
695
+ text: "\nIf you think this is a bug, please open an issue at: https://github.com/cloudflare/workers-sdk/issues/new/choose",
622
696
  });
623
697
  logger.log(formatMessage(e));
624
698
  } else if (
@@ -654,7 +728,7 @@ export async function main(argv: string[]): Promise<void> {
654
728
  logger.error(e instanceof Error ? e.message : e);
655
729
  logger.log(
656
730
  `${fgGreenColor}%s${resetColor}`,
657
- "If you think this is a bug then please create an issue at https://github.com/cloudflare/wrangler2/issues/new/choose"
731
+ "If you think this is a bug then please create an issue at https://github.com/cloudflare/workers-sdk/issues/new/choose"
658
732
  );
659
733
  }
660
734
  throw e;