wrangler 0.0.0-e464fcdb → 0.0.0-e4a8591e7

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 (329) hide show
  1. package/README.md +15 -13
  2. package/bin/wrangler.js +13 -102
  3. package/config-schema.json +3074 -0
  4. package/package.json +196 -199
  5. package/templates/__tests__/tsconfig.json +1 -1
  6. package/templates/checked-fetch.js +11 -4
  7. package/templates/facade.d.ts +7 -2
  8. package/templates/gitignore +2 -4
  9. package/templates/init-tests/test-vitest-new-worker.js +1 -1
  10. package/templates/init-tests/test-vitest-new-worker.ts +1 -1
  11. package/templates/middleware/common.ts +9 -4
  12. package/templates/middleware/loader-modules.ts +94 -44
  13. package/templates/middleware/loader-sw.ts +6 -10
  14. package/templates/middleware/middleware-ensure-req-body-drained.ts +18 -0
  15. package/templates/middleware/middleware-mock-analytics-engine.d.ts +3 -0
  16. package/templates/middleware/middleware-mock-analytics-engine.ts +30 -0
  17. package/templates/middleware/middleware-scheduled.ts +15 -1
  18. package/templates/middleware/middleware-serve-static-assets.d.ts +6 -0
  19. package/templates/middleware/middleware-serve-static-assets.ts +56 -0
  20. package/templates/modules-watch-stub.js +4 -0
  21. package/templates/new-worker-scheduled.ts +1 -1
  22. package/templates/new-worker.ts +1 -1
  23. package/templates/pages-dev-pipeline.ts +2 -1
  24. package/templates/pages-dev-util.ts +4 -1
  25. package/templates/pages-shim.ts +0 -3
  26. package/templates/pages-template-plugin.ts +14 -4
  27. package/templates/pages-template-worker.ts +12 -3
  28. package/templates/startDevWorker/InspectorProxyWorker.ts +664 -0
  29. package/templates/startDevWorker/ProxyWorker.ts +336 -0
  30. package/templates/tsconfig.init.json +4 -87
  31. package/templates/tsconfig.json +1 -1
  32. package/wrangler-dist/InspectorProxyWorker.js +464 -0
  33. package/wrangler-dist/InspectorProxyWorker.js.map +6 -0
  34. package/wrangler-dist/ProxyWorker.js +241 -0
  35. package/wrangler-dist/ProxyWorker.js.map +6 -0
  36. package/wrangler-dist/cli.d.ts +25115 -291
  37. package/wrangler-dist/cli.js +189092 -124777
  38. package/wrangler-dist/wasm-sync.wasm +0 -0
  39. package/Cloudflare_CA.pem +0 -18
  40. package/import_meta_url.js +0 -3
  41. package/miniflare-config-stubs/.env.empty +0 -0
  42. package/miniflare-config-stubs/package.empty.json +0 -1
  43. package/miniflare-config-stubs/wrangler.empty.toml +0 -0
  44. package/miniflare-dist/index.mjs +0 -6442
  45. package/src/__tests__/access.test.ts +0 -25
  46. package/src/__tests__/api-dev.test.ts +0 -238
  47. package/src/__tests__/api-devregistry.test.ts +0 -121
  48. package/src/__tests__/api.test.ts +0 -102
  49. package/src/__tests__/config-cache-without-cache-dir.test.ts +0 -38
  50. package/src/__tests__/config-cache.test.ts +0 -42
  51. package/src/__tests__/configuration.test.ts +0 -4509
  52. package/src/__tests__/constellation.test.ts +0 -371
  53. package/src/__tests__/d1/d1.test.ts +0 -82
  54. package/src/__tests__/d1/execute.test.ts +0 -66
  55. package/src/__tests__/d1/migrate.test.ts +0 -257
  56. package/src/__tests__/d1/splitter.test.ts +0 -255
  57. package/src/__tests__/delete.test.ts +0 -272
  58. package/src/__tests__/deployments.test.ts +0 -369
  59. package/src/__tests__/dev.test.tsx +0 -1617
  60. package/src/__tests__/generate.test.ts +0 -237
  61. package/src/__tests__/get-host-from-url.test.ts +0 -16
  62. package/src/__tests__/guess-worker-format.test.ts +0 -120
  63. package/src/__tests__/helpers/clipboardy-mock.js +0 -4
  64. package/src/__tests__/helpers/cmd-shim.d.ts +0 -11
  65. package/src/__tests__/helpers/end-event-loop.ts +0 -6
  66. package/src/__tests__/helpers/mock-account-id.ts +0 -48
  67. package/src/__tests__/helpers/mock-auth-domain.ts +0 -20
  68. package/src/__tests__/helpers/mock-bin.ts +0 -36
  69. package/src/__tests__/helpers/mock-console.ts +0 -112
  70. package/src/__tests__/helpers/mock-dialogs.ts +0 -139
  71. package/src/__tests__/helpers/mock-get-pages-upload-token.ts +0 -25
  72. package/src/__tests__/helpers/mock-get-zone-from-host.ts +0 -11
  73. package/src/__tests__/helpers/mock-http-server.ts +0 -46
  74. package/src/__tests__/helpers/mock-istty.ts +0 -74
  75. package/src/__tests__/helpers/mock-known-routes.ts +0 -12
  76. package/src/__tests__/helpers/mock-kv.ts +0 -46
  77. package/src/__tests__/helpers/mock-oauth-flow.ts +0 -263
  78. package/src/__tests__/helpers/mock-process.ts +0 -34
  79. package/src/__tests__/helpers/mock-set-timeout.ts +0 -16
  80. package/src/__tests__/helpers/mock-stdin.ts +0 -108
  81. package/src/__tests__/helpers/mock-web-socket.ts +0 -29
  82. package/src/__tests__/helpers/msw/blob-worker.cjs +0 -19
  83. package/src/__tests__/helpers/msw/handlers/access.ts +0 -13
  84. package/src/__tests__/helpers/msw/handlers/deployments.ts +0 -160
  85. package/src/__tests__/helpers/msw/handlers/namespaces.ts +0 -81
  86. package/src/__tests__/helpers/msw/handlers/oauth.ts +0 -31
  87. package/src/__tests__/helpers/msw/handlers/r2.ts +0 -60
  88. package/src/__tests__/helpers/msw/handlers/script.ts +0 -56
  89. package/src/__tests__/helpers/msw/handlers/user.ts +0 -52
  90. package/src/__tests__/helpers/msw/handlers/zones.ts +0 -20
  91. package/src/__tests__/helpers/msw/index.ts +0 -52
  92. package/src/__tests__/helpers/msw/read-file-sync.js +0 -61
  93. package/src/__tests__/helpers/run-in-tmp.ts +0 -38
  94. package/src/__tests__/helpers/run-wrangler.ts +0 -16
  95. package/src/__tests__/helpers/string-dynamic-values-matcher.ts +0 -28
  96. package/src/__tests__/helpers/worker-scripts/child-wrangler.toml +0 -1
  97. package/src/__tests__/helpers/worker-scripts/hello-world-worker.js +0 -5
  98. package/src/__tests__/helpers/worker-scripts/hello-world-wrangler.toml +0 -1
  99. package/src/__tests__/helpers/worker-scripts/parent-worker.js +0 -11
  100. package/src/__tests__/helpers/worker-scripts/parent-wrangler.toml +0 -5
  101. package/src/__tests__/helpers/write-worker-source.ts +0 -31
  102. package/src/__tests__/helpers/write-wrangler-toml.ts +0 -17
  103. package/src/__tests__/https-options.test.ts +0 -163
  104. package/src/__tests__/index.test.ts +0 -282
  105. package/src/__tests__/init.test.ts +0 -3196
  106. package/src/__tests__/jest.setup.ts +0 -179
  107. package/src/__tests__/kv.test.ts +0 -1799
  108. package/src/__tests__/logger.test.ts +0 -207
  109. package/src/__tests__/logout.test.ts +0 -47
  110. package/src/__tests__/metrics.test.ts +0 -493
  111. package/src/__tests__/middleware.scheduled.test.ts +0 -145
  112. package/src/__tests__/middleware.test.ts +0 -816
  113. package/src/__tests__/mtls-certificates.test.ts +0 -589
  114. package/src/__tests__/package-manager.test.ts +0 -353
  115. package/src/__tests__/pages/deployment-list.test.ts +0 -80
  116. package/src/__tests__/pages/functions-build.test.ts +0 -452
  117. package/src/__tests__/pages/pages.test.ts +0 -81
  118. package/src/__tests__/pages/project-create.test.ts +0 -63
  119. package/src/__tests__/pages/project-list.test.ts +0 -110
  120. package/src/__tests__/pages/project-upload.test.ts +0 -500
  121. package/src/__tests__/pages/publish.test.ts +0 -2864
  122. package/src/__tests__/pages-deployment-tail.test.ts +0 -955
  123. package/src/__tests__/parse.test.ts +0 -436
  124. package/src/__tests__/paths.test.ts +0 -39
  125. package/src/__tests__/publish.test.ts +0 -8849
  126. package/src/__tests__/pubsub.test.ts +0 -496
  127. package/src/__tests__/queues.test.ts +0 -532
  128. package/src/__tests__/r2.test.ts +0 -374
  129. package/src/__tests__/route.test.ts +0 -45
  130. package/src/__tests__/secret.test.ts +0 -693
  131. package/src/__tests__/tail.test.ts +0 -958
  132. package/src/__tests__/test-old-node-version.js +0 -31
  133. package/src/__tests__/traverse-module-graph.test.ts +0 -220
  134. package/src/__tests__/tsconfig-sanity.ts +0 -12
  135. package/src/__tests__/tsconfig.json +0 -8
  136. package/src/__tests__/tsconfig.tsbuildinfo +0 -1
  137. package/src/__tests__/type-generation.test.ts +0 -234
  138. package/src/__tests__/user.test.ts +0 -118
  139. package/src/__tests__/utils-collectKeyValues.test.ts +0 -47
  140. package/src/__tests__/validate-dev-props.test.ts +0 -56
  141. package/src/__tests__/version.test.ts +0 -35
  142. package/src/__tests__/whoami.test.tsx +0 -172
  143. package/src/__tests__/worker-namespace.test.ts +0 -340
  144. package/src/abort.d.ts +0 -3
  145. package/src/api/dev.ts +0 -316
  146. package/src/api/index.ts +0 -11
  147. package/src/api/mtls-certificate.ts +0 -148
  148. package/src/api/pages/create-worker-bundle-contents.ts +0 -76
  149. package/src/api/pages/index.ts +0 -5
  150. package/src/api/pages/publish.tsx +0 -355
  151. package/src/bundle-reporter.ts +0 -68
  152. package/src/bundle.ts +0 -908
  153. package/src/cfetch/index.ts +0 -158
  154. package/src/cfetch/internal.ts +0 -258
  155. package/src/cli.ts +0 -28
  156. package/src/config/README.md +0 -107
  157. package/src/config/config.ts +0 -282
  158. package/src/config/diagnostics.ts +0 -80
  159. package/src/config/environment.ts +0 -618
  160. package/src/config/index.ts +0 -403
  161. package/src/config/validation-helpers.ts +0 -597
  162. package/src/config/validation.ts +0 -2342
  163. package/src/config-cache.ts +0 -85
  164. package/src/constellation/createProject.tsx +0 -51
  165. package/src/constellation/deleteProject.ts +0 -51
  166. package/src/constellation/deleteProjectModel.ts +0 -68
  167. package/src/constellation/index.ts +0 -75
  168. package/src/constellation/listCatalog.tsx +0 -35
  169. package/src/constellation/listModel.tsx +0 -41
  170. package/src/constellation/listProject.tsx +0 -28
  171. package/src/constellation/listRuntime.tsx +0 -28
  172. package/src/constellation/options.ts +0 -17
  173. package/src/constellation/types.ts +0 -17
  174. package/src/constellation/uploadModel.tsx +0 -64
  175. package/src/constellation/utils.ts +0 -90
  176. package/src/create-worker-preview.ts +0 -293
  177. package/src/create-worker-upload-form.ts +0 -359
  178. package/src/d1/backups.tsx +0 -219
  179. package/src/d1/constants.ts +0 -6
  180. package/src/d1/create.tsx +0 -103
  181. package/src/d1/delete.ts +0 -53
  182. package/src/d1/execute.tsx +0 -371
  183. package/src/d1/formatTimeAgo.ts +0 -14
  184. package/src/d1/index.ts +0 -100
  185. package/src/d1/list.tsx +0 -62
  186. package/src/d1/migrations/apply.tsx +0 -235
  187. package/src/d1/migrations/create.tsx +0 -79
  188. package/src/d1/migrations/helpers.ts +0 -171
  189. package/src/d1/migrations/index.ts +0 -3
  190. package/src/d1/migrations/list.tsx +0 -95
  191. package/src/d1/migrations/options.ts +0 -23
  192. package/src/d1/options.ts +0 -22
  193. package/src/d1/splitter.ts +0 -161
  194. package/src/d1/types.ts +0 -32
  195. package/src/d1/utils.ts +0 -49
  196. package/src/delete.ts +0 -100
  197. package/src/deployments.ts +0 -368
  198. package/src/deprecated/index.ts +0 -144
  199. package/src/dev/dev-vars.ts +0 -39
  200. package/src/dev/dev.tsx +0 -600
  201. package/src/dev/get-local-persistence-path.ts +0 -31
  202. package/src/dev/local.tsx +0 -948
  203. package/src/dev/remote.tsx +0 -632
  204. package/src/dev/start-server.ts +0 -534
  205. package/src/dev/use-esbuild.ts +0 -203
  206. package/src/dev/validate-dev-props.ts +0 -40
  207. package/src/dev-registry.ts +0 -202
  208. package/src/dev.tsx +0 -929
  209. package/src/dialogs.ts +0 -136
  210. package/src/dispatch-namespace.ts +0 -211
  211. package/src/docs/helpers.ts +0 -50
  212. package/src/docs/index.ts +0 -54
  213. package/src/durable.ts +0 -102
  214. package/src/entry.ts +0 -337
  215. package/src/environment-variables/factory.ts +0 -89
  216. package/src/environment-variables/misc-variables.ts +0 -30
  217. package/src/errors.ts +0 -11
  218. package/src/generate/index.ts +0 -298
  219. package/src/git-client.ts +0 -135
  220. package/src/global-wrangler-config-path.ts +0 -26
  221. package/src/https-options.ts +0 -127
  222. package/src/index.ts +0 -768
  223. package/src/init.ts +0 -1032
  224. package/src/inspect.ts +0 -782
  225. package/src/intl-polyfill.d.ts +0 -139
  226. package/src/is-ci.ts +0 -14
  227. package/src/is-interactive.ts +0 -16
  228. package/src/jest.d.ts +0 -4
  229. package/src/kv/helpers.ts +0 -433
  230. package/src/kv/index.ts +0 -594
  231. package/src/logger.ts +0 -123
  232. package/src/metrics/index.ts +0 -5
  233. package/src/metrics/metrics-config.ts +0 -239
  234. package/src/metrics/metrics-dispatcher.ts +0 -96
  235. package/src/metrics/metrics-usage-headers.ts +0 -24
  236. package/src/metrics/send-event.ts +0 -99
  237. package/src/miniflare-cli/README.md +0 -30
  238. package/src/miniflare-cli/assets.ts +0 -251
  239. package/src/miniflare-cli/index.ts +0 -210
  240. package/src/miniflare-cli/request-context.ts +0 -40
  241. package/src/miniflare-cli/tsconfig.json +0 -9
  242. package/src/miniflare-cli/tsconfig.tsbuildinfo +0 -1
  243. package/src/miniflare-cli/types.ts +0 -11
  244. package/src/module-collection.ts +0 -333
  245. package/src/mtls-certificate/cli.ts +0 -155
  246. package/src/open-in-browser.ts +0 -17
  247. package/src/package-manager.ts +0 -219
  248. package/src/pages/build.ts +0 -410
  249. package/src/pages/buildFunctions.ts +0 -140
  250. package/src/pages/constants.ts +0 -18
  251. package/src/pages/deployment-tails.ts +0 -281
  252. package/src/pages/deployments.tsx +0 -84
  253. package/src/pages/dev.ts +0 -716
  254. package/src/pages/errors.ts +0 -67
  255. package/src/pages/functions/buildPlugin.ts +0 -113
  256. package/src/pages/functions/buildWorker.ts +0 -291
  257. package/src/pages/functions/filepath-routing.test.ts +0 -234
  258. package/src/pages/functions/filepath-routing.ts +0 -189
  259. package/src/pages/functions/identifiers.ts +0 -78
  260. package/src/pages/functions/routes-consolidation.test.ts +0 -250
  261. package/src/pages/functions/routes-consolidation.ts +0 -73
  262. package/src/pages/functions/routes-transformation.test.ts +0 -282
  263. package/src/pages/functions/routes-transformation.ts +0 -115
  264. package/src/pages/functions/routes-validation.test.ts +0 -403
  265. package/src/pages/functions/routes-validation.ts +0 -202
  266. package/src/pages/functions/routes.ts +0 -151
  267. package/src/pages/functions/tsconfig.json +0 -8
  268. package/src/pages/functions/tsconfig.tsbuildinfo +0 -1
  269. package/src/pages/functions.ts +0 -86
  270. package/src/pages/hash.ts +0 -13
  271. package/src/pages/index.ts +0 -102
  272. package/src/pages/projects.tsx +0 -159
  273. package/src/pages/prompt-select-project.tsx +0 -31
  274. package/src/pages/publish.tsx +0 -267
  275. package/src/pages/types.ts +0 -46
  276. package/src/pages/upload.tsx +0 -469
  277. package/src/pages/utils.ts +0 -23
  278. package/src/parse.ts +0 -308
  279. package/src/paths.ts +0 -71
  280. package/src/proxy.ts +0 -694
  281. package/src/publish/index.ts +0 -274
  282. package/src/publish/publish.ts +0 -1060
  283. package/src/pubsub/index.ts +0 -286
  284. package/src/pubsub/pubsub-commands.ts +0 -623
  285. package/src/queues/cli/commands/consumer/add.ts +0 -71
  286. package/src/queues/cli/commands/consumer/index.ts +0 -19
  287. package/src/queues/cli/commands/consumer/remove.ts +0 -31
  288. package/src/queues/cli/commands/create.ts +0 -25
  289. package/src/queues/cli/commands/delete.ts +0 -26
  290. package/src/queues/cli/commands/index.ts +0 -35
  291. package/src/queues/cli/commands/list.ts +0 -25
  292. package/src/queues/client.ts +0 -136
  293. package/src/queues/utils.ts +0 -18
  294. package/src/r2/constants.ts +0 -4
  295. package/src/r2/helpers.ts +0 -132
  296. package/src/r2/index.ts +0 -289
  297. package/src/routes.ts +0 -140
  298. package/src/secret/index.ts +0 -376
  299. package/src/selfsigned.d.ts +0 -29
  300. package/src/sites.ts +0 -484
  301. package/src/tail/createTail.ts +0 -406
  302. package/src/tail/filters.ts +0 -277
  303. package/src/tail/index.ts +0 -211
  304. package/src/tail/printing.ts +0 -122
  305. package/src/traverse-module-graph.ts +0 -53
  306. package/src/tsconfig-sanity.ts +0 -16
  307. package/src/type-generation.ts +0 -181
  308. package/src/update-check.ts +0 -19
  309. package/src/user/access.ts +0 -68
  310. package/src/user/auth-variables.ts +0 -113
  311. package/src/user/choose-account.tsx +0 -39
  312. package/src/user/generate-auth-url.ts +0 -33
  313. package/src/user/generate-random-state.ts +0 -16
  314. package/src/user/index.ts +0 -2
  315. package/src/user/user.ts +0 -1234
  316. package/src/utils/collectKeyValues.ts +0 -14
  317. package/src/utils/render.ts +0 -93
  318. package/src/whoami.ts +0 -135
  319. package/src/worker.ts +0 -274
  320. package/src/yargs-types.ts +0 -37
  321. package/src/zones.ts +0 -191
  322. package/templates/__tests__/tsconfig.tsbuildinfo +0 -1
  323. package/templates/d1-beta-facade.js +0 -244
  324. package/templates/first-party-worker-module-facade.ts +0 -19
  325. package/templates/format-dev-errors.ts +0 -34
  326. package/templates/serve-static-assets.ts +0 -66
  327. package/templates/service-bindings-module-facade.js +0 -55
  328. package/templates/service-bindings-sw-facade.js +0 -42
  329. package/templates/tsconfig.tsbuildinfo +0 -1
package/src/r2/index.ts DELETED
@@ -1,289 +0,0 @@
1
- import * as fs from "node:fs";
2
- import * as stream from "node:stream";
3
-
4
- import prettyBytes from "pretty-bytes";
5
- import { readConfig } from "../config";
6
- import { FatalError } from "../errors";
7
- import { CommandLineArgsError, printWranglerBanner } from "../index";
8
- import { logger } from "../logger";
9
- import * as metrics from "../metrics";
10
- import { requireAuth } from "../user";
11
- import { MAX_UPLOAD_SIZE } from "./constants";
12
- import {
13
- bucketAndKeyFromObjectPath,
14
- createR2Bucket,
15
- deleteR2Bucket,
16
- deleteR2Object,
17
- getR2Object,
18
- listR2Buckets,
19
- putR2Object,
20
- } from "./helpers";
21
-
22
- import type { CommonYargsArgv } from "../yargs-types";
23
- import type { Readable } from "node:stream";
24
-
25
- export function r2(r2Yargs: CommonYargsArgv) {
26
- return r2Yargs
27
- .command("object", "Manage R2 objects", (r2ObjectYargs) => {
28
- return r2ObjectYargs
29
- .command(
30
- "get <objectPath>",
31
- "Fetch an object from an R2 bucket",
32
- (objectArgs) => {
33
- return objectArgs
34
- .positional("objectPath", {
35
- describe:
36
- "The source object path in the form of {bucket}/{key}",
37
- type: "string",
38
- })
39
- .option("file", {
40
- describe: "The destination file to create",
41
- alias: "f",
42
- conflicts: "pipe",
43
- requiresArg: true,
44
- type: "string",
45
- })
46
- .option("pipe", {
47
- describe:
48
- "Enables the file to be piped to a destination, rather than specified with the --file option",
49
- alias: "p",
50
- conflicts: "file",
51
- type: "boolean",
52
- });
53
- },
54
- async (objectGetYargs) => {
55
- const config = readConfig(objectGetYargs.config, objectGetYargs);
56
- const accountId = await requireAuth(config);
57
- const { objectPath, pipe } = objectGetYargs;
58
- const { bucket, key } = bucketAndKeyFromObjectPath(objectPath);
59
-
60
- let file = objectGetYargs.file;
61
- if (!file && !pipe) {
62
- file = key;
63
- }
64
- if (!pipe) {
65
- await printWranglerBanner();
66
- logger.log(`Downloading "${key}" from "${bucket}".`);
67
- }
68
- const input = await getR2Object(accountId, bucket, key);
69
- const output = file ? fs.createWriteStream(file) : process.stdout;
70
- await new Promise<void>((resolve, reject) => {
71
- stream.pipeline(input, output, (err: unknown) => {
72
- err ? reject(err) : resolve();
73
- });
74
- });
75
- if (!pipe) logger.log("Download complete.");
76
- }
77
- )
78
- .command(
79
- "put <objectPath>",
80
- "Create an object in an R2 bucket",
81
- (Objectyargs) => {
82
- return Objectyargs.positional("objectPath", {
83
- describe:
84
- "The destination object path in the form of {bucket}/{key}",
85
- type: "string",
86
- })
87
- .option("file", {
88
- describe: "The path of the file to upload",
89
- alias: "f",
90
- conflicts: "pipe",
91
- requiresArg: true,
92
- type: "string",
93
- })
94
- .option("pipe", {
95
- describe:
96
- "Enables the file to be piped in, rather than specified with the --file option",
97
- alias: "p",
98
- conflicts: "file",
99
- type: "boolean",
100
- })
101
- .option("content-type", {
102
- describe:
103
- "A standard MIME type describing the format of the object data",
104
- alias: "ct",
105
- requiresArg: true,
106
- type: "string",
107
- })
108
- .option("content-disposition", {
109
- describe: "Specifies presentational information for the object",
110
- alias: "cd",
111
- requiresArg: true,
112
- type: "string",
113
- })
114
- .option("content-encoding", {
115
- describe:
116
- "Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field",
117
- alias: "ce",
118
- requiresArg: true,
119
- type: "string",
120
- })
121
- .option("content-language", {
122
- describe: "The language the content is in",
123
- alias: "cl",
124
- requiresArg: true,
125
- type: "string",
126
- })
127
- .option("cache-control", {
128
- describe:
129
- "Specifies caching behavior along the request/reply chain",
130
- alias: "cc",
131
- requiresArg: true,
132
- type: "string",
133
- })
134
- .option("expires", {
135
- describe:
136
- "The date and time at which the object is no longer cacheable",
137
- alias: "e",
138
- requiresArg: true,
139
- type: "string",
140
- });
141
- },
142
- async (objectPutYargs) => {
143
- await printWranglerBanner();
144
-
145
- const config = readConfig(objectPutYargs.config, objectPutYargs);
146
- const accountId = await requireAuth(config);
147
- const { objectPath, file, pipe, ...options } = objectPutYargs;
148
- const { bucket, key } = bucketAndKeyFromObjectPath(objectPath);
149
- if (!file && !pipe) {
150
- throw new CommandLineArgsError(
151
- "Either the --file or --pipe options are required."
152
- );
153
- }
154
- let object: Readable | Buffer;
155
- let objectSize: number;
156
- if (file) {
157
- object = fs.createReadStream(file);
158
- const stats = fs.statSync(file);
159
- objectSize = stats.size;
160
- } else {
161
- object = await new Promise<Buffer>((resolve, reject) => {
162
- const stdin = process.stdin;
163
- const chunks = Array<Buffer>();
164
- stdin.on("data", (chunk) => chunks.push(chunk));
165
- stdin.on("end", () => resolve(Buffer.concat(chunks)));
166
- stdin.on("error", (err) =>
167
- reject(
168
- new CommandLineArgsError(
169
- `Could not pipe. Reason: "${err.message}"`
170
- )
171
- )
172
- );
173
- });
174
- objectSize = object.byteLength;
175
- }
176
-
177
- if (objectSize > MAX_UPLOAD_SIZE) {
178
- throw new FatalError(
179
- `Error: Wrangler only supports uploading files up to ${prettyBytes(
180
- MAX_UPLOAD_SIZE
181
- )} in size\n${key} is ${prettyBytes(objectSize)} in size`,
182
- 1
183
- );
184
- }
185
-
186
- logger.log(`Creating object "${key}" in bucket "${bucket}".`);
187
- await putR2Object(accountId, bucket, key, object, {
188
- ...options,
189
- "content-length": `${objectSize}`,
190
- });
191
- logger.log("Upload complete.");
192
- }
193
- )
194
- .command(
195
- "delete <objectPath>",
196
- "Delete an object in an R2 bucket",
197
- (objectDeleteYargs) => {
198
- return objectDeleteYargs.positional("objectPath", {
199
- describe:
200
- "The destination object path in the form of {bucket}/{key}",
201
- type: "string",
202
- });
203
- },
204
- async (args) => {
205
- const { objectPath } = args;
206
- await printWranglerBanner();
207
-
208
- const config = readConfig(args.config, args);
209
- const accountId = await requireAuth(config);
210
- const { bucket, key } = bucketAndKeyFromObjectPath(objectPath);
211
- logger.log(`Deleting object "${key}" from bucket "${bucket}".`);
212
-
213
- await deleteR2Object(accountId, bucket, key);
214
- logger.log("Delete complete.");
215
- }
216
- );
217
- })
218
-
219
- .command("bucket", "Manage R2 buckets", (r2BucketYargs) => {
220
- r2BucketYargs.command(
221
- "create <name>",
222
- "Create a new R2 bucket",
223
- (yargs) => {
224
- return yargs.positional("name", {
225
- describe: "The name of the new bucket",
226
- type: "string",
227
- demandOption: true,
228
- });
229
- },
230
- async (args) => {
231
- await printWranglerBanner();
232
-
233
- const config = readConfig(args.config, args);
234
-
235
- const accountId = await requireAuth(config);
236
-
237
- logger.log(`Creating bucket ${args.name}.`);
238
- await createR2Bucket(accountId, args.name);
239
- logger.log(`Created bucket ${args.name}.`);
240
- await metrics.sendMetricsEvent("create r2 bucket", {
241
- sendMetrics: config.send_metrics,
242
- });
243
- }
244
- );
245
-
246
- r2BucketYargs.command(
247
- "list",
248
- "List R2 buckets",
249
- (listArgs) => listArgs,
250
- async (args) => {
251
- const config = readConfig(args.config, args);
252
-
253
- const accountId = await requireAuth(config);
254
-
255
- logger.log(JSON.stringify(await listR2Buckets(accountId), null, 2));
256
- await metrics.sendMetricsEvent("list r2 buckets", {
257
- sendMetrics: config.send_metrics,
258
- });
259
- }
260
- );
261
-
262
- r2BucketYargs.command(
263
- "delete <name>",
264
- "Delete an R2 bucket",
265
- (yargs) => {
266
- return yargs.positional("name", {
267
- describe: "The name of the bucket to delete",
268
- type: "string",
269
- demandOption: true,
270
- });
271
- },
272
- async (args) => {
273
- await printWranglerBanner();
274
-
275
- const config = readConfig(args.config, args);
276
-
277
- const accountId = await requireAuth(config);
278
-
279
- logger.log(`Deleting bucket ${args.name}.`);
280
- await deleteR2Bucket(accountId, args.name);
281
- logger.log(`Deleted bucket ${args.name}.`);
282
- await metrics.sendMetricsEvent("delete r2 bucket", {
283
- sendMetrics: config.send_metrics,
284
- });
285
- }
286
- );
287
- return r2BucketYargs;
288
- });
289
- }
package/src/routes.ts DELETED
@@ -1,140 +0,0 @@
1
- import chalk from "chalk";
2
- import { fetchResult } from "./cfetch";
3
- import { confirm, prompt } from "./dialogs";
4
- import { logger } from "./logger";
5
-
6
- export async function getWorkersDevSubdomain(
7
- accountId: string
8
- ): Promise<string> {
9
- try {
10
- // note: API docs say that this field is "name", but they're lying.
11
- const { subdomain } = await fetchResult<{ subdomain: string }>(
12
- `/accounts/${accountId}/workers/subdomain`
13
- );
14
- return subdomain;
15
- } catch (e) {
16
- const error = e as { code?: number };
17
- if (typeof error === "object" && !!error && error.code === 10007) {
18
- // 10007 error code: not found
19
- // https://api.cloudflare.com/#worker-subdomain-get-subdomain
20
-
21
- logger.warn(
22
- "You need to register a workers.dev subdomain before publishing to workers.dev"
23
- );
24
-
25
- const wantsToRegister = await confirm(
26
- "Would you like to register a workers.dev subdomain now?"
27
- );
28
- if (!wantsToRegister) {
29
- const solutionMessage =
30
- "You can either publish your worker to one or more routes by specifying them in wrangler.toml, or register a workers.dev subdomain here:";
31
- const onboardingLink = `https://dash.cloudflare.com/${accountId}/workers/onboarding`;
32
-
33
- throw new Error(`${solutionMessage}\n${onboardingLink}`);
34
- }
35
-
36
- return await registerSubdomain(accountId);
37
- } else {
38
- throw e;
39
- }
40
- }
41
- }
42
-
43
- async function registerSubdomain(accountId: string): Promise<string> {
44
- let subdomain: string | undefined;
45
-
46
- while (subdomain === undefined) {
47
- const potentialName = await prompt(
48
- "What would you like your workers.dev subdomain to be? It will be accessible at https://<subdomain>.workers.dev"
49
- );
50
-
51
- if (!/^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$/.test(potentialName)) {
52
- logger.warn(
53
- `${potentialName} is invalid, please choose another subdomain.`
54
- );
55
- continue;
56
- }
57
-
58
- try {
59
- await fetchResult<{ subdomain: string }>(
60
- `/accounts/${accountId}/workers/subdomains/${potentialName}`
61
- );
62
- } catch (err) {
63
- const subdomainAvailabilityCheckError = err as { code?: number };
64
-
65
- if (
66
- typeof subdomainAvailabilityCheckError === "object" &&
67
- !!subdomainAvailabilityCheckError
68
- ) {
69
- if (subdomainAvailabilityCheckError.code === 10032) {
70
- // oddly enough, this is a `subdomain_unavailable` error, meaning...that the subdomain
71
- // doesn't exist. and we can register it. this is exactly how the dashboard does it.
72
- } else if (subdomainAvailabilityCheckError.code === 10031) {
73
- logger.error(
74
- "Subdomain is unavailable, please try a different subdomain"
75
- );
76
-
77
- continue;
78
- } else {
79
- logger.error("An unexpected error occurred, please try again.");
80
-
81
- continue;
82
- }
83
- }
84
- }
85
-
86
- const ok = await confirm(
87
- `Creating a workers.dev subdomain for your account at ${chalk.blue(
88
- chalk.underline(`https://${potentialName}.workers.dev`)
89
- )}. Ok to proceed?`
90
- );
91
- if (!ok) {
92
- const solutionMessage =
93
- "You can either publish your worker to one or more routes by specifying them in wrangler.toml, or register a workers.dev subdomain here:";
94
- const onboardingLink = `https://dash.cloudflare.com/${accountId}/workers/onboarding`;
95
-
96
- throw new Error(`${solutionMessage}\n${onboardingLink}`);
97
- }
98
-
99
- try {
100
- const result = await fetchResult<{ subdomain: string }>(
101
- `/accounts/${accountId}/workers/subdomain`,
102
- {
103
- method: "PUT",
104
- body: JSON.stringify({ subdomain: potentialName }),
105
- }
106
- );
107
-
108
- subdomain = result.subdomain;
109
- } catch (err) {
110
- const subdomainCreationError = err as { code?: number };
111
- if (
112
- typeof subdomainCreationError === "object" &&
113
- !!subdomainCreationError &&
114
- subdomainCreationError.code !== undefined
115
- ) {
116
- switch (subdomainCreationError.code) {
117
- case 10031:
118
- logger.error(
119
- "Subdomain is unavailable, please try a different subdomain."
120
- );
121
- break;
122
- default:
123
- logger.error("An unexpected error occurred, please try again.");
124
- break;
125
- }
126
- }
127
- }
128
- }
129
-
130
- logger.log("Success! It may take a few minutes for DNS records to update.");
131
- logger.log(
132
- `Visit ${chalk.blue(
133
- chalk.underline(
134
- `https://dash.cloudflare.com/${accountId}/workers/subdomain`
135
- )
136
- )} to edit your workers.dev subdomain`
137
- );
138
-
139
- return subdomain;
140
- }