wrangler 0.0.0-e978986 → 0.0.0-e98613f8

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 (304) hide show
  1. package/README.md +23 -3
  2. package/bin/wrangler.js +162 -62
  3. package/kv-asset-handler.js +1 -0
  4. package/miniflare-dist/index.mjs +1456 -21
  5. package/package.json +191 -152
  6. package/src/__tests__/access.test.ts +25 -0
  7. package/src/__tests__/api-dev.test.ts +209 -0
  8. package/src/__tests__/api-devregistry.test.js +56 -0
  9. package/src/__tests__/api.test.ts +80 -0
  10. package/src/__tests__/config-cache-without-cache-dir.test.ts +38 -0
  11. package/src/__tests__/config-cache.test.ts +30 -24
  12. package/src/__tests__/configuration.test.ts +3970 -3363
  13. package/src/__tests__/d1.test.ts +80 -0
  14. package/src/__tests__/delete.test.ts +263 -0
  15. package/src/__tests__/deployments.test.ts +91 -0
  16. package/src/__tests__/dev.test.tsx +1524 -951
  17. package/src/__tests__/dialogs.test.tsx +40 -0
  18. package/src/__tests__/generate.test.ts +235 -0
  19. package/src/__tests__/get-host-from-url.test.ts +16 -0
  20. package/src/__tests__/guess-worker-format.test.ts +68 -68
  21. package/src/__tests__/helpers/cmd-shim.d.ts +6 -6
  22. package/src/__tests__/helpers/mock-account-id.ts +24 -24
  23. package/src/__tests__/helpers/mock-bin.ts +20 -20
  24. package/src/__tests__/helpers/mock-cfetch.ts +216 -94
  25. package/src/__tests__/helpers/mock-console.ts +58 -39
  26. package/src/__tests__/helpers/mock-dialogs.ts +94 -71
  27. package/src/__tests__/helpers/mock-get-zone-from-host.ts +8 -0
  28. package/src/__tests__/helpers/mock-http-server.ts +30 -30
  29. package/src/__tests__/helpers/mock-istty.ts +65 -18
  30. package/src/__tests__/helpers/mock-known-routes.ts +7 -0
  31. package/src/__tests__/helpers/mock-kv.ts +27 -27
  32. package/src/__tests__/helpers/mock-oauth-flow.ts +229 -228
  33. package/src/__tests__/helpers/mock-process.ts +39 -0
  34. package/src/__tests__/helpers/mock-stdin.ts +82 -77
  35. package/src/__tests__/helpers/mock-web-socket.ts +21 -21
  36. package/src/__tests__/helpers/msw/handlers/access.ts +13 -0
  37. package/src/__tests__/helpers/msw/handlers/deployments.ts +59 -0
  38. package/src/__tests__/helpers/msw/handlers/namespaces.ts +104 -0
  39. package/src/__tests__/helpers/msw/handlers/oauth.ts +31 -0
  40. package/src/__tests__/helpers/msw/handlers/r2.ts +80 -0
  41. package/src/__tests__/helpers/msw/handlers/script.ts +75 -0
  42. package/src/__tests__/helpers/msw/handlers/user.ts +63 -0
  43. package/src/__tests__/helpers/msw/handlers/zones.ts +22 -0
  44. package/src/__tests__/helpers/msw/index.ts +21 -0
  45. package/src/__tests__/helpers/run-in-tmp.ts +27 -28
  46. package/src/__tests__/helpers/run-wrangler.ts +8 -8
  47. package/src/__tests__/helpers/worker-scripts/child-wrangler.toml +1 -0
  48. package/src/__tests__/helpers/worker-scripts/hello-world-worker.js +5 -0
  49. package/src/__tests__/helpers/worker-scripts/hello-world-wrangler.toml +1 -0
  50. package/src/__tests__/helpers/worker-scripts/parent-worker.js +8 -0
  51. package/src/__tests__/helpers/worker-scripts/parent-wrangler.toml +5 -0
  52. package/src/__tests__/helpers/write-worker-source.ts +16 -16
  53. package/src/__tests__/helpers/write-wrangler-toml.ts +9 -9
  54. package/src/__tests__/https-options.test.ts +142 -109
  55. package/src/__tests__/index.test.ts +241 -233
  56. package/src/__tests__/init.test.ts +2884 -1536
  57. package/src/__tests__/jest.setup.ts +159 -34
  58. package/src/__tests__/kv.test.ts +1660 -1466
  59. package/src/__tests__/logger.test.ts +100 -74
  60. package/src/__tests__/logout.test.ts +47 -0
  61. package/src/__tests__/metrics.test.ts +450 -0
  62. package/src/__tests__/middleware.scheduled.test.ts +135 -0
  63. package/src/__tests__/middleware.test.ts +726 -0
  64. package/src/__tests__/package-manager.test.ts +303 -303
  65. package/src/__tests__/pages-deployment-tail.test.ts +820 -0
  66. package/src/__tests__/pages.test.ts +2423 -638
  67. package/src/__tests__/parse.test.ts +252 -252
  68. package/src/__tests__/paths.test.ts +39 -0
  69. package/src/__tests__/publish.test.ts +7516 -5351
  70. package/src/__tests__/pubsub.test.ts +370 -0
  71. package/src/__tests__/queues.test.ts +522 -0
  72. package/src/__tests__/r2.test.ts +388 -228
  73. package/src/__tests__/route.test.ts +18 -18
  74. package/src/__tests__/secret.test.ts +622 -459
  75. package/src/__tests__/tail.test.ts +776 -567
  76. package/src/__tests__/test-old-node-version.js +31 -0
  77. package/src/__tests__/type-generation.test.ts +226 -0
  78. package/src/__tests__/user.test.ts +117 -119
  79. package/src/__tests__/utils-collectKeyValues.test.ts +47 -0
  80. package/src/__tests__/validate-dev-props.test.ts +56 -0
  81. package/src/__tests__/version.test.ts +35 -0
  82. package/src/__tests__/whoami.test.tsx +264 -91
  83. package/src/__tests__/worker-namespace.test.ts +326 -0
  84. package/src/abort.d.ts +1 -1
  85. package/src/api/dev.ts +210 -0
  86. package/src/api/index.ts +2 -0
  87. package/src/bundle-reporter.tsx +68 -0
  88. package/src/bundle.ts +785 -162
  89. package/src/cfetch/index.ts +120 -81
  90. package/src/cfetch/internal.ts +209 -91
  91. package/src/cli.ts +23 -8
  92. package/src/config/config.ts +236 -195
  93. package/src/config/diagnostics.ts +61 -61
  94. package/src/config/environment.ts +498 -357
  95. package/src/config/index.ts +302 -193
  96. package/src/config/validation-helpers.ts +379 -357
  97. package/src/config/validation.ts +1931 -1367
  98. package/src/config-cache.ts +81 -41
  99. package/src/create-worker-preview.ts +239 -142
  100. package/src/create-worker-upload-form.ts +300 -238
  101. package/src/d1/backups.tsx +223 -0
  102. package/src/d1/constants.ts +2 -0
  103. package/src/d1/create.tsx +63 -0
  104. package/src/d1/delete.tsx +56 -0
  105. package/src/d1/execute.tsx +352 -0
  106. package/src/d1/formatTimeAgo.ts +14 -0
  107. package/src/d1/index.ts +101 -0
  108. package/src/d1/list.tsx +48 -0
  109. package/src/d1/migrations/apply.tsx +184 -0
  110. package/src/d1/migrations/create.tsx +77 -0
  111. package/src/d1/migrations/helpers.ts +147 -0
  112. package/src/d1/migrations/index.tsx +3 -0
  113. package/src/d1/migrations/list.tsx +79 -0
  114. package/src/d1/migrations/options.ts +18 -0
  115. package/src/d1/options.ts +22 -0
  116. package/src/d1/types.tsx +24 -0
  117. package/src/d1/utils.ts +48 -0
  118. package/src/delete.ts +108 -0
  119. package/src/deployments.ts +77 -0
  120. package/src/deprecated/index.ts +438 -0
  121. package/src/dev/dev-vars.ts +20 -17
  122. package/src/dev/dev.tsx +547 -352
  123. package/src/dev/get-local-persistence-path.tsx +31 -0
  124. package/src/dev/local.tsx +870 -298
  125. package/src/dev/remote.tsx +591 -215
  126. package/src/dev/start-server.ts +539 -0
  127. package/src/dev/use-esbuild.ts +183 -97
  128. package/src/dev/validate-dev-props.ts +31 -0
  129. package/src/dev-registry.tsx +201 -0
  130. package/src/dev.tsx +913 -0
  131. package/src/dialogs.tsx +132 -99
  132. package/src/dispatch-namespace.ts +207 -0
  133. package/src/durable.ts +87 -87
  134. package/src/entry.ts +235 -228
  135. package/src/environment-variables.ts +38 -23
  136. package/src/errors.ts +6 -6
  137. package/src/git-client.ts +135 -0
  138. package/src/global-wrangler-config-path.ts +26 -0
  139. package/src/https-options.ts +84 -80
  140. package/src/index.tsx +630 -2791
  141. package/src/init.ts +970 -0
  142. package/src/inspect.ts +698 -593
  143. package/src/intl-polyfill.d.ts +123 -123
  144. package/src/is-ci.ts +14 -0
  145. package/src/is-interactive.ts +16 -0
  146. package/src/kv/helpers.ts +430 -0
  147. package/src/kv/index.ts +596 -0
  148. package/src/logger.ts +67 -41
  149. package/src/metrics/index.ts +5 -0
  150. package/src/metrics/metrics-config.ts +239 -0
  151. package/src/metrics/metrics-dispatcher.ts +96 -0
  152. package/src/metrics/metrics-usage-headers.ts +24 -0
  153. package/src/metrics/send-event.ts +96 -0
  154. package/src/miniflare-cli/assets.ts +220 -0
  155. package/src/miniflare-cli/index.ts +205 -33
  156. package/src/miniflare-cli/request-context.ts +18 -18
  157. package/src/module-collection.ts +221 -212
  158. package/src/open-in-browser.ts +4 -6
  159. package/src/package-manager.ts +173 -128
  160. package/src/pages/build.tsx +270 -0
  161. package/src/pages/constants.ts +18 -0
  162. package/src/pages/deployment-tails.tsx +284 -0
  163. package/src/pages/deployments.tsx +84 -0
  164. package/src/pages/dev.tsx +706 -0
  165. package/src/pages/errors.ts +66 -0
  166. package/src/pages/functions/buildPlugin.ts +107 -0
  167. package/src/pages/functions/buildWorker.ts +166 -0
  168. package/{pages → src/pages}/functions/filepath-routing.test.ts +113 -113
  169. package/src/pages/functions/filepath-routing.ts +189 -0
  170. package/src/pages/functions/identifiers.ts +78 -0
  171. package/src/pages/functions/routes-consolidation.test.ts +250 -0
  172. package/src/pages/functions/routes-consolidation.ts +73 -0
  173. package/src/pages/functions/routes-transformation.test.ts +282 -0
  174. package/src/pages/functions/routes-transformation.ts +115 -0
  175. package/src/pages/functions/routes-validation.test.ts +403 -0
  176. package/src/pages/functions/routes-validation.ts +202 -0
  177. package/src/pages/functions/routes.ts +151 -0
  178. package/src/pages/functions.tsx +82 -0
  179. package/src/pages/hash.tsx +13 -0
  180. package/src/pages/index.tsx +102 -0
  181. package/src/pages/projects.tsx +169 -0
  182. package/src/pages/prompt-select-project.tsx +31 -0
  183. package/src/pages/publish.tsx +451 -0
  184. package/src/pages/types.ts +41 -0
  185. package/src/pages/upload.tsx +426 -0
  186. package/src/pages/utils.ts +23 -0
  187. package/src/parse.ts +209 -125
  188. package/src/paths.ts +53 -8
  189. package/src/proxy.ts +623 -394
  190. package/src/publish/index.ts +270 -0
  191. package/src/publish/publish.ts +1035 -0
  192. package/src/pubsub/index.ts +286 -0
  193. package/src/pubsub/pubsub-commands.tsx +624 -0
  194. package/src/queues/cli/commands/consumer/add.ts +71 -0
  195. package/src/queues/cli/commands/consumer/index.ts +22 -0
  196. package/src/queues/cli/commands/consumer/remove.ts +38 -0
  197. package/src/queues/cli/commands/create.ts +25 -0
  198. package/src/queues/cli/commands/delete.ts +26 -0
  199. package/src/queues/cli/commands/index.ts +36 -0
  200. package/src/queues/cli/commands/list.ts +25 -0
  201. package/src/queues/client.ts +135 -0
  202. package/src/queues/utils.ts +18 -0
  203. package/src/r2/constants.ts +4 -0
  204. package/src/r2/helpers.ts +131 -0
  205. package/src/r2/index.ts +289 -0
  206. package/src/routes.ts +140 -0
  207. package/src/secret/index.ts +378 -0
  208. package/src/selfsigned.d.ts +23 -23
  209. package/src/sites.tsx +280 -203
  210. package/src/tail/createTail.ts +379 -0
  211. package/src/tail/filters.ts +108 -110
  212. package/src/tail/index.ts +211 -296
  213. package/src/tail/printing.ts +86 -46
  214. package/src/type-generation.ts +173 -0
  215. package/src/update-check.ts +11 -11
  216. package/src/user/access.ts +69 -0
  217. package/src/user/choose-account.tsx +69 -0
  218. package/src/user/env-vars.ts +46 -0
  219. package/src/user/generate-auth-url.ts +33 -0
  220. package/src/user/generate-random-state.ts +16 -0
  221. package/src/user/index.ts +3 -0
  222. package/src/user/user.tsx +1198 -0
  223. package/src/utils/collectKeyValues.ts +14 -0
  224. package/src/whoami.tsx +141 -42
  225. package/src/worker.ts +171 -106
  226. package/src/yargs-types.ts +24 -0
  227. package/src/zones.ts +191 -0
  228. package/templates/__tests__/pages-dev-util.test.ts +128 -0
  229. package/templates/checked-fetch.js +17 -0
  230. package/templates/d1-beta-facade.js +205 -0
  231. package/templates/first-party-worker-module-facade.ts +18 -0
  232. package/templates/format-dev-errors.ts +32 -0
  233. package/templates/init-tests/test-jest-new-worker.js +25 -0
  234. package/templates/init-tests/test-vitest-new-worker.js +26 -0
  235. package/templates/middleware/common.ts +62 -0
  236. package/templates/middleware/loader-modules.ts +84 -0
  237. package/templates/middleware/loader-sw.ts +227 -0
  238. package/templates/middleware/middleware-miniflare3-json-error.ts +20 -0
  239. package/templates/middleware/middleware-pretty-error.ts +40 -0
  240. package/templates/middleware/middleware-scheduled.ts +15 -0
  241. package/templates/new-worker-scheduled.js +4 -4
  242. package/templates/new-worker-scheduled.ts +16 -16
  243. package/templates/new-worker.js +3 -3
  244. package/templates/new-worker.ts +15 -15
  245. package/templates/no-op-worker.js +10 -0
  246. package/templates/pages-dev-pipeline.ts +28 -0
  247. package/templates/pages-dev-util.ts +52 -0
  248. package/templates/pages-shim.ts +9 -0
  249. package/templates/pages-template-plugin.ts +171 -0
  250. package/templates/pages-template-worker.ts +189 -0
  251. package/templates/serve-static-assets.ts +63 -0
  252. package/templates/service-bindings-module-facade.js +54 -0
  253. package/templates/service-bindings-sw-facade.js +42 -0
  254. package/templates/tsconfig.json +96 -95
  255. package/wrangler-dist/cli.d.ts +893 -0
  256. package/wrangler-dist/cli.js +146463 -108710
  257. package/pages/functions/buildPlugin.ts +0 -105
  258. package/pages/functions/buildWorker.ts +0 -151
  259. package/pages/functions/filepath-routing.ts +0 -189
  260. package/pages/functions/identifiers.ts +0 -78
  261. package/pages/functions/routes.ts +0 -156
  262. package/pages/functions/template-plugin.ts +0 -147
  263. package/pages/functions/template-worker.ts +0 -143
  264. package/src/__tests__/helpers/faye-websocket.d.ts +0 -6
  265. package/src/kv.ts +0 -408
  266. package/src/miniflare-cli/enum-keys.ts +0 -17
  267. package/src/pages.tsx +0 -2027
  268. package/src/publish.ts +0 -583
  269. package/src/r2.ts +0 -50
  270. package/src/user.tsx +0 -1203
  271. package/templates/static-asset-facade.js +0 -47
  272. package/vendor/@cloudflare/kv-asset-handler/CHANGELOG.md +0 -332
  273. package/vendor/@cloudflare/kv-asset-handler/LICENSE_APACHE +0 -176
  274. package/vendor/@cloudflare/kv-asset-handler/LICENSE_MIT +0 -25
  275. package/vendor/@cloudflare/kv-asset-handler/README.md +0 -245
  276. package/vendor/@cloudflare/kv-asset-handler/dist/index.d.ts +0 -32
  277. package/vendor/@cloudflare/kv-asset-handler/dist/index.js +0 -354
  278. package/vendor/@cloudflare/kv-asset-handler/dist/mocks.d.ts +0 -13
  279. package/vendor/@cloudflare/kv-asset-handler/dist/mocks.js +0 -148
  280. package/vendor/@cloudflare/kv-asset-handler/dist/test/getAssetFromKV.d.ts +0 -1
  281. package/vendor/@cloudflare/kv-asset-handler/dist/test/getAssetFromKV.js +0 -436
  282. package/vendor/@cloudflare/kv-asset-handler/dist/test/mapRequestToAsset.d.ts +0 -1
  283. package/vendor/@cloudflare/kv-asset-handler/dist/test/mapRequestToAsset.js +0 -40
  284. package/vendor/@cloudflare/kv-asset-handler/dist/test/serveSinglePageApp.d.ts +0 -1
  285. package/vendor/@cloudflare/kv-asset-handler/dist/test/serveSinglePageApp.js +0 -42
  286. package/vendor/@cloudflare/kv-asset-handler/dist/types.d.ts +0 -26
  287. package/vendor/@cloudflare/kv-asset-handler/dist/types.js +0 -31
  288. package/vendor/@cloudflare/kv-asset-handler/package.json +0 -52
  289. package/vendor/@cloudflare/kv-asset-handler/src/index.ts +0 -296
  290. package/vendor/@cloudflare/kv-asset-handler/src/mocks.ts +0 -136
  291. package/vendor/@cloudflare/kv-asset-handler/src/test/getAssetFromKV.ts +0 -464
  292. package/vendor/@cloudflare/kv-asset-handler/src/test/mapRequestToAsset.ts +0 -33
  293. package/vendor/@cloudflare/kv-asset-handler/src/test/serveSinglePageApp.ts +0 -42
  294. package/vendor/@cloudflare/kv-asset-handler/src/types.ts +0 -39
  295. package/vendor/wrangler-mime/CHANGELOG.md +0 -289
  296. package/vendor/wrangler-mime/LICENSE +0 -21
  297. package/vendor/wrangler-mime/Mime.js +0 -97
  298. package/vendor/wrangler-mime/README.md +0 -187
  299. package/vendor/wrangler-mime/cli.js +0 -46
  300. package/vendor/wrangler-mime/index.js +0 -4
  301. package/vendor/wrangler-mime/lite.js +0 -4
  302. package/vendor/wrangler-mime/package.json +0 -52
  303. package/vendor/wrangler-mime/types/other.js +0 -1
  304. package/vendor/wrangler-mime/types/standard.js +0 -1
@@ -7,250 +7,258 @@ import writeWranglerToml from "./helpers/write-wrangler-toml";
7
7
  import type { PackageManager } from "../package-manager";
8
8
 
9
9
  describe("wrangler", () => {
10
- let mockPackageManager: PackageManager;
11
- runInTempDir();
12
-
13
- beforeEach(() => {
14
- mockPackageManager = {
15
- cwd: process.cwd(),
16
- // @ts-expect-error we're making a fake package manager here
17
- type: "mockpm",
18
- addDevDeps: jest.fn(),
19
- install: jest.fn(),
20
- };
21
- (getPackageManager as jest.Mock).mockResolvedValue(mockPackageManager);
22
- });
23
-
24
- const std = mockConsoleMethods();
25
-
26
- describe("no command", () => {
27
- it("should display a list of available commands", async () => {
28
- await runWrangler();
29
-
30
- expect(std.out).toMatchInlineSnapshot(`
31
- "wrangler
32
-
33
- Commands:
34
- wrangler init [name] 📥 Create a wrangler.toml configuration file
35
- wrangler dev [script] 👂 Start a local server for developing your worker
36
- wrangler publish [script] 🆙 Publish your Worker to Cloudflare.
37
- wrangler tail [name] 🦚 Starts a log tailing session for a published Worker.
38
- wrangler secret 🤫 Generate a secret that can be referenced in the worker script
39
- wrangler kv:namespace 🗂️ Interact with your Workers KV Namespaces
40
- wrangler kv:key 🔑 Individually manage Workers KV key-value pairs
41
- wrangler kv:bulk 💪 Interact with multiple Workers KV key-value pairs at once
42
- wrangler pages ⚡️ Configure Cloudflare Pages
43
- wrangler r2 📦 Interact with an R2 store
44
- wrangler login 🔓 Login to Cloudflare
45
- wrangler logout 🚪 Logout from Cloudflare
46
- wrangler whoami 🕵️ Retrieve your user info and test your auth config
47
-
48
- Flags:
49
- -c, --config Path to .toml configuration file [string]
50
- -h, --help Show help [boolean]
51
- -v, --version Show version number [boolean]"
52
- `);
53
-
54
- expect(std.err).toMatchInlineSnapshot(`""`);
55
- });
56
- });
57
-
58
- describe("invalid command", () => {
59
- it("should display an error", async () => {
60
- await expect(
61
- runWrangler("invalid-command")
62
- ).rejects.toThrowErrorMatchingInlineSnapshot(
63
- `"Unknown argument: invalid-command"`
64
- );
65
-
66
- expect(std.out).toMatchInlineSnapshot(`
67
- "
68
- wrangler
69
-
70
- Commands:
71
- wrangler init [name] 📥 Create a wrangler.toml configuration file
72
- wrangler dev [script] 👂 Start a local server for developing your worker
73
- wrangler publish [script] 🆙 Publish your Worker to Cloudflare.
74
- wrangler tail [name] 🦚 Starts a log tailing session for a published Worker.
75
- wrangler secret 🤫 Generate a secret that can be referenced in the worker script
76
- wrangler kv:namespace 🗂️ Interact with your Workers KV Namespaces
77
- wrangler kv:key 🔑 Individually manage Workers KV key-value pairs
78
- wrangler kv:bulk 💪 Interact with multiple Workers KV key-value pairs at once
79
- wrangler pages ⚡️ Configure Cloudflare Pages
80
- wrangler r2 📦 Interact with an R2 store
81
- wrangler login 🔓 Login to Cloudflare
82
- wrangler logout 🚪 Logout from Cloudflare
83
- wrangler whoami 🕵️ Retrieve your user info and test your auth config
84
-
85
- Flags:
86
- -c, --config Path to .toml configuration file [string]
87
- -h, --help Show help [boolean]
88
- -v, --version Show version number [boolean]"
89
- `);
90
- expect(std.err).toMatchInlineSnapshot(`
91
- "X [ERROR] Unknown argument: invalid-command
92
-
93
- "
94
- `);
95
- });
96
- });
97
-
98
- describe("preview", () => {
99
- it("should throw an error if the deprecated command is used with positional arguments", async () => {
100
- await expect(runWrangler("preview GET")).rejects
101
- .toThrowErrorMatchingInlineSnapshot(`
10
+ let mockPackageManager: PackageManager;
11
+ runInTempDir();
12
+
13
+ beforeEach(() => {
14
+ mockPackageManager = {
15
+ cwd: process.cwd(),
16
+ // @ts-expect-error we're making a fake package manager here
17
+ type: "mockpm",
18
+ addDevDeps: jest.fn(),
19
+ install: jest.fn(),
20
+ };
21
+ (getPackageManager as jest.Mock).mockResolvedValue(mockPackageManager);
22
+ });
23
+
24
+ const std = mockConsoleMethods();
25
+
26
+ describe("no command", () => {
27
+ it("should display a list of available commands", async () => {
28
+ await runWrangler();
29
+
30
+ expect(std.out).toMatchInlineSnapshot(`
31
+ "wrangler
32
+
33
+ Commands:
34
+ wrangler init [name] 📥 Create a wrangler.toml configuration file
35
+ wrangler dev [script] 👂 Start a local server for developing your worker
36
+ wrangler publish [script] 🆙 Publish your Worker to Cloudflare.
37
+ wrangler delete [script] 🗑 Delete your Worker from Cloudflare.
38
+ wrangler tail [worker] 🦚 Starts a log tailing session for a published Worker.
39
+ wrangler secret 🤫 Generate a secret that can be referenced in a Worker
40
+ wrangler secret:bulk <json> 🗄️ Bulk upload secrets for a Worker
41
+ wrangler kv:namespace 🗂️ Interact with your Workers KV Namespaces
42
+ wrangler kv:key 🔑 Individually manage Workers KV key-value pairs
43
+ wrangler kv:bulk 💪 Interact with multiple Workers KV key-value pairs at once
44
+ wrangler pages ⚡️ Configure Cloudflare Pages
45
+ wrangler queues 🇶 Configure Workers Queues
46
+ wrangler r2 📦 Interact with an R2 store
47
+ wrangler dispatch-namespace 📦 Interact with a dispatch namespace
48
+ wrangler d1 🗄 Interact with a D1 database
49
+ wrangler pubsub 📮 Interact and manage Pub/Sub Brokers
50
+ wrangler login 🔓 Login to Cloudflare
51
+ wrangler logout 🚪 Logout from Cloudflare
52
+ wrangler whoami 🕵️ Retrieve your user info and test your auth config
53
+ wrangler types 📝 Generate types from bindings & module rules in config
54
+ wrangler deployments 🚢 Displays the 10 most recent deployments for a worker
55
+
56
+ Flags:
57
+ -c, --config Path to .toml configuration file [string]
58
+ -e, --env Environment to use for operations and .env files [string]
59
+ -h, --help Show help [boolean]
60
+ -v, --version Show version number [boolean]"
61
+ `);
62
+
63
+ expect(std.err).toMatchInlineSnapshot(`""`);
64
+ });
65
+ });
66
+
67
+ describe("invalid command", () => {
68
+ it("should display an error", async () => {
69
+ await expect(
70
+ runWrangler("invalid-command")
71
+ ).rejects.toThrowErrorMatchingInlineSnapshot(
72
+ `"Unknown argument: invalid-command"`
73
+ );
74
+
75
+ expect(std.out).toMatchInlineSnapshot(`
76
+ "
77
+ wrangler
78
+
79
+ Commands:
80
+ wrangler init [name] 📥 Create a wrangler.toml configuration file
81
+ wrangler dev [script] 👂 Start a local server for developing your worker
82
+ wrangler publish [script] 🆙 Publish your Worker to Cloudflare.
83
+ wrangler delete [script] 🗑 Delete your Worker from Cloudflare.
84
+ wrangler tail [worker] 🦚 Starts a log tailing session for a published Worker.
85
+ wrangler secret 🤫 Generate a secret that can be referenced in a Worker
86
+ wrangler secret:bulk <json> 🗄️ Bulk upload secrets for a Worker
87
+ wrangler kv:namespace 🗂️ Interact with your Workers KV Namespaces
88
+ wrangler kv:key 🔑 Individually manage Workers KV key-value pairs
89
+ wrangler kv:bulk 💪 Interact with multiple Workers KV key-value pairs at once
90
+ wrangler pages ⚡️ Configure Cloudflare Pages
91
+ wrangler queues 🇶 Configure Workers Queues
92
+ wrangler r2 📦 Interact with an R2 store
93
+ wrangler dispatch-namespace 📦 Interact with a dispatch namespace
94
+ wrangler d1 🗄 Interact with a D1 database
95
+ wrangler pubsub 📮 Interact and manage Pub/Sub Brokers
96
+ wrangler login 🔓 Login to Cloudflare
97
+ wrangler logout 🚪 Logout from Cloudflare
98
+ wrangler whoami 🕵️ Retrieve your user info and test your auth config
99
+ wrangler types 📝 Generate types from bindings & module rules in config
100
+ wrangler deployments 🚢 Displays the 10 most recent deployments for a worker
101
+
102
+ Flags:
103
+ -c, --config Path to .toml configuration file [string]
104
+ -e, --env Environment to use for operations and .env files [string]
105
+ -h, --help Show help [boolean]
106
+ -v, --version Show version number [boolean]"
107
+ `);
108
+ expect(std.err).toMatchInlineSnapshot(`
109
+ "X [ERROR] Unknown argument: invalid-command
110
+
111
+ "
112
+ `);
113
+ });
114
+ });
115
+
116
+ describe("preview", () => {
117
+ it("should throw an error if the deprecated command is used with positional arguments", async () => {
118
+ await expect(runWrangler("preview GET")).rejects
119
+ .toThrowErrorMatchingInlineSnapshot(`
102
120
  "Deprecation:
103
121
  The \`wrangler preview\` command has been deprecated.
104
122
  Try using \`wrangler dev\` to to try out a worker during development.
105
123
  "
106
124
  `);
107
- await expect(runWrangler(`preview GET "SomeBody"`)).rejects
108
- .toThrowErrorMatchingInlineSnapshot(`
125
+ await expect(runWrangler(`preview GET "SomeBody"`)).rejects
126
+ .toThrowErrorMatchingInlineSnapshot(`
109
127
  "Deprecation:
110
128
  The \`wrangler preview\` command has been deprecated.
111
129
  Try using \`wrangler dev\` to to try out a worker during development.
112
130
  "
113
131
  `);
114
- });
115
- });
116
-
117
- describe("subcommand implicit help ran on incomplete command execution", () => {
118
- it("no subcommand for 'secret' should display a list of available subcommands", async () => {
119
- await runWrangler("secret");
120
- await endEventLoop();
121
- expect(std.out).toMatchInlineSnapshot(`
122
- "wrangler secret
123
-
124
- 🤫 Generate a secret that can be referenced in the worker script
125
-
126
- Commands:
127
- wrangler secret put <key> Create or update a secret variable for a script
128
- wrangler secret delete <key> Delete a secret variable from a script
129
- wrangler secret list List all secrets for a script
130
-
131
- Flags:
132
- -c, --config Path to .toml configuration file [string]
133
- -h, --help Show help [boolean]
134
- -v, --version Show version number [boolean]"
135
- `);
136
- });
137
-
138
- it("no subcommand 'kv:namespace' should display a list of available subcommands", async () => {
139
- await runWrangler("kv:namespace");
140
- await endEventLoop();
141
- expect(std.out).toMatchInlineSnapshot(`
142
- "wrangler kv:namespace
143
-
144
- 🗂️ Interact with your Workers KV Namespaces
145
-
146
- Commands:
147
- wrangler kv:namespace create <namespace> Create a new namespace
148
- wrangler kv:namespace list Outputs a list of all KV namespaces associated with your account id.
149
- wrangler kv:namespace delete Deletes a given namespace.
150
-
151
- Flags:
152
- -c, --config Path to .toml configuration file [string]
153
- -h, --help Show help [boolean]
154
- -v, --version Show version number [boolean]"
155
- `);
156
- });
157
-
158
- it("no subcommand 'kv:key' should display a list of available subcommands", async () => {
159
- await runWrangler("kv:key");
160
- await endEventLoop();
161
- expect(std.out).toMatchInlineSnapshot(`
162
- "wrangler kv:key
163
-
164
- 🔑 Individually manage Workers KV key-value pairs
165
-
166
- Commands:
167
- wrangler kv:key put <key> [value] Writes a single key/value pair to the given namespace.
168
- wrangler kv:key list Outputs a list of all keys in a given namespace.
169
- wrangler kv:key get <key> Reads a single value by key from the given namespace.
170
- wrangler kv:key delete <key> Removes a single key value pair from the given namespace.
171
-
172
- Flags:
173
- -c, --config Path to .toml configuration file [string]
174
- -h, --help Show help [boolean]
175
- -v, --version Show version number [boolean]"
176
- `);
177
- });
178
-
179
- it("no subcommand 'kv:bulk' should display a list of available subcommands", async () => {
180
- await runWrangler("kv:bulk");
181
- await endEventLoop();
182
- expect(std.out).toMatchInlineSnapshot(`
183
- "wrangler kv:bulk
184
-
185
- 💪 Interact with multiple Workers KV key-value pairs at once
186
-
187
- Commands:
188
- wrangler kv:bulk put <filename> Upload multiple key-value pairs to a namespace
189
- wrangler kv:bulk delete <filename> Delete multiple key-value pairs from a namespace
190
-
191
- Flags:
192
- -c, --config Path to .toml configuration file [string]
193
- -h, --help Show help [boolean]
194
- -v, --version Show version number [boolean]"
195
- `);
196
- });
197
-
198
- it("no subcommand 'r2' should display a list of available subcommands", async () => {
199
- await runWrangler("r2");
200
- await endEventLoop();
201
- expect(std.out).toMatchInlineSnapshot(`
202
- "wrangler r2
203
-
204
- 📦 Interact with an R2 store
205
-
206
- Commands:
207
- wrangler r2 bucket Manage R2 buckets
208
-
209
- Flags:
210
- -c, --config Path to .toml configuration file [string]
211
- -h, --help Show help [boolean]
212
- -v, --version Show version number [boolean]"
213
- `);
214
- });
215
- });
216
-
217
- describe("Deprecated commands", () => {
218
- it("should print a deprecation message for 'generate'", async () => {
219
- await runWrangler("generate").catch((err) => {
220
- expect(err.message).toMatchInlineSnapshot(`
221
- "Deprecation:
222
- \`wrangler generate\` has been deprecated.
223
- Try running \`wrangler init\` to generate a basic Worker, or cloning the template repository instead:
224
-
225
- \`\`\`
226
- git clone https://github.com/cloudflare/worker-template
227
- \`\`\`
228
-
229
- Please refer to https://developers.cloudflare.com/workers/wrangler/deprecations/#generate for more information."
230
- `);
231
- });
232
- });
233
- });
234
-
235
- it("should print a deprecation message for 'build' and then try to run `publish --dry-run --outdir`", async () => {
236
- writeWranglerToml({
237
- main: "index.js",
238
- });
239
- writeWorkerSource();
240
- await runWrangler("build");
241
- await endEventLoop();
242
- expect(std.out).toMatchInlineSnapshot(`
243
- "▲ [WARNING] Deprecation: \`wrangler build\` has been deprecated.
244
-
245
- Please refer to https://developers.cloudflare.com/workers/wrangler/migration/deprecations/#build for more information.
246
- Attempting to run \`wrangler publish --dry-run --outdir=dist\` for you instead:
247
-
248
-
249
- --dry-run: exiting now."
250
- `);
251
- });
132
+ });
133
+ });
134
+
135
+ describe("subcommand implicit help ran on incomplete command execution", () => {
136
+ it("no subcommand for 'secret' should display a list of available subcommands", async () => {
137
+ await runWrangler("secret");
138
+ await endEventLoop();
139
+ expect(std.out).toMatchInlineSnapshot(`
140
+ "wrangler secret
141
+
142
+ 🤫 Generate a secret that can be referenced in a Worker
143
+
144
+ Commands:
145
+ wrangler secret put <key> Create or update a secret variable for a Worker
146
+ wrangler secret delete <key> Delete a secret variable from a Worker
147
+ wrangler secret list List all secrets for a Worker
148
+
149
+ Flags:
150
+ -c, --config Path to .toml configuration file [string]
151
+ -e, --env Environment to use for operations and .env files [string]
152
+ -h, --help Show help [boolean]
153
+ -v, --version Show version number [boolean]"
154
+ `);
155
+ });
156
+
157
+ it("no subcommand 'kv:namespace' should display a list of available subcommands", async () => {
158
+ await runWrangler("kv:namespace");
159
+ await endEventLoop();
160
+ expect(std.out).toMatchInlineSnapshot(`
161
+ "wrangler kv:namespace
162
+
163
+ 🗂️ Interact with your Workers KV Namespaces
164
+
165
+ Commands:
166
+ wrangler kv:namespace create <namespace> Create a new namespace
167
+ wrangler kv:namespace list Outputs a list of all KV namespaces associated with your account id.
168
+ wrangler kv:namespace delete Deletes a given namespace.
169
+
170
+ Flags:
171
+ -c, --config Path to .toml configuration file [string]
172
+ -e, --env Environment to use for operations and .env files [string]
173
+ -h, --help Show help [boolean]
174
+ -v, --version Show version number [boolean]"
175
+ `);
176
+ });
177
+
178
+ it("no subcommand 'kv:key' should display a list of available subcommands", async () => {
179
+ await runWrangler("kv:key");
180
+ await endEventLoop();
181
+ expect(std.out).toMatchInlineSnapshot(`
182
+ "wrangler kv:key
183
+
184
+ 🔑 Individually manage Workers KV key-value pairs
185
+
186
+ Commands:
187
+ wrangler kv:key put <key> [value] Writes a single key/value pair to the given namespace.
188
+ wrangler kv:key list Outputs a list of all keys in a given namespace.
189
+ wrangler kv:key get <key> Reads a single value by key from the given namespace.
190
+ wrangler kv:key delete <key> Removes a single key value pair from the given namespace.
191
+
192
+ Flags:
193
+ -c, --config Path to .toml configuration file [string]
194
+ -e, --env Environment to use for operations and .env files [string]
195
+ -h, --help Show help [boolean]
196
+ -v, --version Show version number [boolean]"
197
+ `);
198
+ });
199
+
200
+ it("no subcommand 'kv:bulk' should display a list of available subcommands", async () => {
201
+ await runWrangler("kv:bulk");
202
+ await endEventLoop();
203
+ expect(std.out).toMatchInlineSnapshot(`
204
+ "wrangler kv:bulk
205
+
206
+ 💪 Interact with multiple Workers KV key-value pairs at once
207
+
208
+ Commands:
209
+ wrangler kv:bulk put <filename> Upload multiple key-value pairs to a namespace
210
+ wrangler kv:bulk delete <filename> Delete multiple key-value pairs from a namespace
211
+
212
+ Flags:
213
+ -c, --config Path to .toml configuration file [string]
214
+ -e, --env Environment to use for operations and .env files [string]
215
+ -h, --help Show help [boolean]
216
+ -v, --version Show version number [boolean]"
217
+ `);
218
+ });
219
+
220
+ it("no subcommand 'r2' should display a list of available subcommands", async () => {
221
+ await runWrangler("r2");
222
+ await endEventLoop();
223
+ expect(std.out).toMatchInlineSnapshot(`
224
+ "wrangler r2
225
+
226
+ 📦 Interact with an R2 store
227
+
228
+ Commands:
229
+ wrangler r2 object Manage R2 objects
230
+ wrangler r2 bucket Manage R2 buckets
231
+
232
+ Flags:
233
+ -c, --config Path to .toml configuration file [string]
234
+ -e, --env Environment to use for operations and .env files [string]
235
+ -h, --help Show help [boolean]
236
+ -v, --version Show version number [boolean]"
237
+ `);
238
+ });
239
+ });
240
+
241
+ it("should print a deprecation message for 'build' and then try to run `publish --dry-run --outdir`", async () => {
242
+ writeWranglerToml({
243
+ main: "index.js",
244
+ });
245
+ writeWorkerSource();
246
+ await runWrangler("build");
247
+ await endEventLoop();
248
+ expect(std.out).toMatchInlineSnapshot(`
249
+ "▲ [WARNING] Deprecation: \`wrangler build\` has been deprecated.
250
+
251
+ Please refer to https://developers.cloudflare.com/workers/wrangler/migration/deprecations/#build
252
+ for more information.
253
+ Attempting to run \`wrangler publish --dry-run --outdir=dist\` for you instead:
254
+
255
+
256
+ Total Upload: xx KiB / gzip: xx KiB
257
+ --dry-run: exiting now."
258
+ `);
259
+ });
252
260
  });
253
261
 
254
262
  function endEventLoop() {
255
- return new Promise((resolve) => setImmediate(resolve));
263
+ return new Promise((resolve) => setImmediate(resolve));
256
264
  }