wrangler 0.0.0-e7a0cd5b → 0.0.0-e87ad068

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