wrangler 0.0.0-e6c71262 → 0.0.0-e6ddf8a7

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 (316) hide show
  1. package/README.md +10 -12
  2. package/bin/wrangler.js +13 -74
  3. package/package.json +210 -199
  4. package/templates/__tests__/tsconfig.json +1 -1
  5. package/templates/checked-fetch.js +10 -3
  6. package/templates/facade.d.ts +4 -1
  7. package/templates/middleware/common.ts +9 -4
  8. package/templates/middleware/loader-modules.ts +64 -11
  9. package/templates/middleware/loader-sw.ts +2 -7
  10. package/templates/middleware/middleware-d1-beta.d.ts +3 -0
  11. package/templates/middleware/middleware-miniflare3-json-error.ts +1 -0
  12. package/templates/middleware/middleware-multiworker-dev.d.ts +4 -0
  13. package/templates/middleware/middleware-multiworker-dev.ts +68 -0
  14. package/templates/middleware/middleware-serve-static-assets.d.ts +6 -0
  15. package/templates/middleware/middleware-serve-static-assets.ts +56 -0
  16. package/templates/modules-watch-stub.js +4 -0
  17. package/templates/new-worker-scheduled.ts +1 -1
  18. package/templates/new-worker.ts +1 -1
  19. package/templates/pages-shim.ts +0 -3
  20. package/templates/pages-template-plugin.ts +12 -2
  21. package/templates/pages-template-worker.ts +11 -2
  22. package/templates/tsconfig.json +1 -1
  23. package/wrangler-dist/cli.d.ts +264 -195
  24. package/wrangler-dist/cli.js +90041 -92345
  25. package/wrangler-dist/wasm-sync.wasm +0 -0
  26. package/import_meta_url.js +0 -3
  27. package/miniflare-config-stubs/.env.empty +0 -0
  28. package/miniflare-config-stubs/package.empty.json +0 -1
  29. package/miniflare-config-stubs/wrangler.empty.toml +0 -0
  30. package/miniflare-dist/index.mjs +0 -6442
  31. package/src/__tests__/access.test.ts +0 -25
  32. package/src/__tests__/api-dev.test.ts +0 -238
  33. package/src/__tests__/api-devregistry.test.ts +0 -121
  34. package/src/__tests__/api.test.ts +0 -102
  35. package/src/__tests__/config-cache-without-cache-dir.test.ts +0 -38
  36. package/src/__tests__/config-cache.test.ts +0 -42
  37. package/src/__tests__/configuration.test.ts +0 -4671
  38. package/src/__tests__/constellation.test.ts +0 -371
  39. package/src/__tests__/d1/d1.test.ts +0 -82
  40. package/src/__tests__/d1/execute.test.ts +0 -66
  41. package/src/__tests__/d1/migrate.test.ts +0 -257
  42. package/src/__tests__/d1/splitter.test.ts +0 -255
  43. package/src/__tests__/delete.test.ts +0 -272
  44. package/src/__tests__/deployments.test.ts +0 -369
  45. package/src/__tests__/dev.test.tsx +0 -1617
  46. package/src/__tests__/generate.test.ts +0 -254
  47. package/src/__tests__/get-host-from-url.test.ts +0 -16
  48. package/src/__tests__/guess-worker-format.test.ts +0 -120
  49. package/src/__tests__/helpers/clipboardy-mock.js +0 -4
  50. package/src/__tests__/helpers/cmd-shim.d.ts +0 -11
  51. package/src/__tests__/helpers/end-event-loop.ts +0 -6
  52. package/src/__tests__/helpers/mock-account-id.ts +0 -48
  53. package/src/__tests__/helpers/mock-auth-domain.ts +0 -20
  54. package/src/__tests__/helpers/mock-bin.ts +0 -36
  55. package/src/__tests__/helpers/mock-console.ts +0 -112
  56. package/src/__tests__/helpers/mock-dialogs.ts +0 -139
  57. package/src/__tests__/helpers/mock-get-pages-upload-token.ts +0 -25
  58. package/src/__tests__/helpers/mock-get-zone-from-host.ts +0 -11
  59. package/src/__tests__/helpers/mock-http-server.ts +0 -46
  60. package/src/__tests__/helpers/mock-istty.ts +0 -74
  61. package/src/__tests__/helpers/mock-known-routes.ts +0 -12
  62. package/src/__tests__/helpers/mock-kv.ts +0 -46
  63. package/src/__tests__/helpers/mock-oauth-flow.ts +0 -263
  64. package/src/__tests__/helpers/mock-process.ts +0 -34
  65. package/src/__tests__/helpers/mock-set-timeout.ts +0 -16
  66. package/src/__tests__/helpers/mock-stdin.ts +0 -108
  67. package/src/__tests__/helpers/mock-web-socket.ts +0 -29
  68. package/src/__tests__/helpers/msw/blob-worker.cjs +0 -19
  69. package/src/__tests__/helpers/msw/handlers/access.ts +0 -13
  70. package/src/__tests__/helpers/msw/handlers/deployments.ts +0 -160
  71. package/src/__tests__/helpers/msw/handlers/namespaces.ts +0 -81
  72. package/src/__tests__/helpers/msw/handlers/oauth.ts +0 -31
  73. package/src/__tests__/helpers/msw/handlers/r2.ts +0 -60
  74. package/src/__tests__/helpers/msw/handlers/script.ts +0 -56
  75. package/src/__tests__/helpers/msw/handlers/user.ts +0 -52
  76. package/src/__tests__/helpers/msw/handlers/zones.ts +0 -20
  77. package/src/__tests__/helpers/msw/index.ts +0 -52
  78. package/src/__tests__/helpers/msw/read-file-sync.js +0 -61
  79. package/src/__tests__/helpers/run-in-tmp.ts +0 -38
  80. package/src/__tests__/helpers/run-wrangler.ts +0 -16
  81. package/src/__tests__/helpers/string-dynamic-values-matcher.ts +0 -28
  82. package/src/__tests__/helpers/worker-scripts/child-wrangler.toml +0 -1
  83. package/src/__tests__/helpers/worker-scripts/hello-world-worker.js +0 -5
  84. package/src/__tests__/helpers/worker-scripts/hello-world-wrangler.toml +0 -1
  85. package/src/__tests__/helpers/worker-scripts/parent-worker.js +0 -11
  86. package/src/__tests__/helpers/worker-scripts/parent-wrangler.toml +0 -5
  87. package/src/__tests__/helpers/write-worker-source.ts +0 -31
  88. package/src/__tests__/helpers/write-wrangler-toml.ts +0 -17
  89. package/src/__tests__/https-options.test.ts +0 -163
  90. package/src/__tests__/index.test.ts +0 -282
  91. package/src/__tests__/init.test.ts +0 -3419
  92. package/src/__tests__/jest.setup.ts +0 -179
  93. package/src/__tests__/kv.test.ts +0 -1799
  94. package/src/__tests__/logger.test.ts +0 -207
  95. package/src/__tests__/logout.test.ts +0 -47
  96. package/src/__tests__/metrics.test.ts +0 -493
  97. package/src/__tests__/middleware.scheduled.test.ts +0 -145
  98. package/src/__tests__/middleware.test.ts +0 -816
  99. package/src/__tests__/mtls-certificates.test.ts +0 -589
  100. package/src/__tests__/package-manager.test.ts +0 -353
  101. package/src/__tests__/pages/deployment-list.test.ts +0 -80
  102. package/src/__tests__/pages/functions-build.test.ts +0 -528
  103. package/src/__tests__/pages/pages.test.ts +0 -81
  104. package/src/__tests__/pages/project-create.test.ts +0 -63
  105. package/src/__tests__/pages/project-list.test.ts +0 -110
  106. package/src/__tests__/pages/project-upload.test.ts +0 -500
  107. package/src/__tests__/pages/publish.test.ts +0 -2864
  108. package/src/__tests__/pages-deployment-tail.test.ts +0 -957
  109. package/src/__tests__/parse.test.ts +0 -436
  110. package/src/__tests__/paths.test.ts +0 -39
  111. package/src/__tests__/publish.test.ts +0 -8849
  112. package/src/__tests__/pubsub.test.ts +0 -496
  113. package/src/__tests__/queues.test.ts +0 -532
  114. package/src/__tests__/r2.test.ts +0 -374
  115. package/src/__tests__/route.test.ts +0 -45
  116. package/src/__tests__/secret.test.ts +0 -693
  117. package/src/__tests__/tail.test.ts +0 -989
  118. package/src/__tests__/test-old-node-version.js +0 -31
  119. package/src/__tests__/traverse-module-graph.test.ts +0 -220
  120. package/src/__tests__/tsconfig-sanity.ts +0 -12
  121. package/src/__tests__/tsconfig.json +0 -8
  122. package/src/__tests__/tsconfig.tsbuildinfo +0 -1
  123. package/src/__tests__/type-generation.test.ts +0 -234
  124. package/src/__tests__/unstableDev.test.ts +0 -61
  125. package/src/__tests__/user.test.ts +0 -118
  126. package/src/__tests__/utils-collectKeyValues.test.ts +0 -47
  127. package/src/__tests__/validate-dev-props.test.ts +0 -56
  128. package/src/__tests__/version.test.ts +0 -35
  129. package/src/__tests__/whoami.test.tsx +0 -172
  130. package/src/__tests__/worker-namespace.test.ts +0 -340
  131. package/src/abort.d.ts +0 -3
  132. package/src/api/dev.ts +0 -321
  133. package/src/api/index.ts +0 -11
  134. package/src/api/mtls-certificate.ts +0 -148
  135. package/src/api/pages/create-worker-bundle-contents.ts +0 -79
  136. package/src/api/pages/index.ts +0 -5
  137. package/src/api/pages/publish.tsx +0 -371
  138. package/src/bundle-reporter.ts +0 -68
  139. package/src/bundle.ts +0 -929
  140. package/src/cfetch/index.ts +0 -158
  141. package/src/cfetch/internal.ts +0 -263
  142. package/src/cli.ts +0 -28
  143. package/src/config/README.md +0 -107
  144. package/src/config/config.ts +0 -282
  145. package/src/config/diagnostics.ts +0 -80
  146. package/src/config/environment.ts +0 -650
  147. package/src/config/index.ts +0 -424
  148. package/src/config/validation-helpers.ts +0 -597
  149. package/src/config/validation.ts +0 -2457
  150. package/src/config-cache.ts +0 -85
  151. package/src/constellation/createProject.tsx +0 -51
  152. package/src/constellation/deleteProject.ts +0 -51
  153. package/src/constellation/deleteProjectModel.ts +0 -76
  154. package/src/constellation/index.ts +0 -75
  155. package/src/constellation/listCatalog.tsx +0 -35
  156. package/src/constellation/listModel.tsx +0 -49
  157. package/src/constellation/listProject.tsx +0 -28
  158. package/src/constellation/listRuntime.tsx +0 -28
  159. package/src/constellation/options.ts +0 -17
  160. package/src/constellation/types.ts +0 -17
  161. package/src/constellation/uploadModel.tsx +0 -84
  162. package/src/constellation/utils.ts +0 -90
  163. package/src/create-worker-preview.ts +0 -293
  164. package/src/create-worker-upload-form.ts +0 -380
  165. package/src/d1/backups.tsx +0 -219
  166. package/src/d1/constants.ts +0 -5
  167. package/src/d1/create.tsx +0 -102
  168. package/src/d1/delete.ts +0 -53
  169. package/src/d1/execute.tsx +0 -371
  170. package/src/d1/formatTimeAgo.ts +0 -14
  171. package/src/d1/index.ts +0 -100
  172. package/src/d1/list.tsx +0 -62
  173. package/src/d1/migrations/apply.tsx +0 -235
  174. package/src/d1/migrations/create.tsx +0 -79
  175. package/src/d1/migrations/helpers.ts +0 -171
  176. package/src/d1/migrations/index.ts +0 -3
  177. package/src/d1/migrations/list.tsx +0 -95
  178. package/src/d1/migrations/options.ts +0 -23
  179. package/src/d1/options.ts +0 -22
  180. package/src/d1/splitter.ts +0 -161
  181. package/src/d1/types.ts +0 -32
  182. package/src/d1/utils.ts +0 -49
  183. package/src/delete.ts +0 -100
  184. package/src/deployments.ts +0 -368
  185. package/src/deprecated/index.ts +0 -144
  186. package/src/dev/dev-vars.ts +0 -39
  187. package/src/dev/dev.tsx +0 -605
  188. package/src/dev/get-local-persistence-path.ts +0 -31
  189. package/src/dev/local.tsx +0 -952
  190. package/src/dev/remote.tsx +0 -635
  191. package/src/dev/start-server.ts +0 -545
  192. package/src/dev/use-esbuild.ts +0 -215
  193. package/src/dev/validate-dev-props.ts +0 -40
  194. package/src/dev-registry.ts +0 -213
  195. package/src/dev.tsx +0 -937
  196. package/src/dialogs.ts +0 -136
  197. package/src/dispatch-namespace.ts +0 -211
  198. package/src/docs/helpers.ts +0 -50
  199. package/src/docs/index.ts +0 -54
  200. package/src/durable.ts +0 -102
  201. package/src/entry.ts +0 -344
  202. package/src/environment-variables/factory.ts +0 -89
  203. package/src/environment-variables/misc-variables.ts +0 -30
  204. package/src/errors.ts +0 -11
  205. package/src/generate/index.ts +0 -304
  206. package/src/git-client.ts +0 -135
  207. package/src/global-wrangler-config-path.ts +0 -26
  208. package/src/https-options.ts +0 -127
  209. package/src/index.ts +0 -769
  210. package/src/init.ts +0 -1123
  211. package/src/inspect.ts +0 -883
  212. package/src/intl-polyfill.d.ts +0 -139
  213. package/src/is-ci.ts +0 -14
  214. package/src/is-interactive.ts +0 -16
  215. package/src/jest.d.ts +0 -4
  216. package/src/kv/helpers.ts +0 -433
  217. package/src/kv/index.ts +0 -594
  218. package/src/logger.ts +0 -123
  219. package/src/metrics/index.ts +0 -5
  220. package/src/metrics/metrics-config.ts +0 -239
  221. package/src/metrics/metrics-dispatcher.ts +0 -96
  222. package/src/metrics/metrics-usage-headers.ts +0 -24
  223. package/src/metrics/send-event.ts +0 -99
  224. package/src/miniflare-cli/README.md +0 -30
  225. package/src/miniflare-cli/assets.ts +0 -251
  226. package/src/miniflare-cli/index.ts +0 -210
  227. package/src/miniflare-cli/request-context.ts +0 -40
  228. package/src/miniflare-cli/tsconfig.json +0 -9
  229. package/src/miniflare-cli/tsconfig.tsbuildinfo +0 -1
  230. package/src/miniflare-cli/types.ts +0 -11
  231. package/src/module-collection.ts +0 -333
  232. package/src/mtls-certificate/cli.ts +0 -155
  233. package/src/open-in-browser.ts +0 -17
  234. package/src/package-manager.ts +0 -219
  235. package/src/pages/build.ts +0 -423
  236. package/src/pages/buildFunctions.ts +0 -140
  237. package/src/pages/constants.ts +0 -18
  238. package/src/pages/deployment-tails.ts +0 -281
  239. package/src/pages/deployments.tsx +0 -84
  240. package/src/pages/dev.ts +0 -734
  241. package/src/pages/errors.ts +0 -67
  242. package/src/pages/functions/buildPlugin.ts +0 -114
  243. package/src/pages/functions/buildWorker.ts +0 -350
  244. package/src/pages/functions/filepath-routing.test.ts +0 -234
  245. package/src/pages/functions/filepath-routing.ts +0 -189
  246. package/src/pages/functions/identifiers.ts +0 -78
  247. package/src/pages/functions/routes-consolidation.test.ts +0 -250
  248. package/src/pages/functions/routes-consolidation.ts +0 -73
  249. package/src/pages/functions/routes-transformation.test.ts +0 -282
  250. package/src/pages/functions/routes-transformation.ts +0 -115
  251. package/src/pages/functions/routes-validation.test.ts +0 -403
  252. package/src/pages/functions/routes-validation.ts +0 -202
  253. package/src/pages/functions/routes.ts +0 -151
  254. package/src/pages/functions/tsconfig.json +0 -8
  255. package/src/pages/functions/tsconfig.tsbuildinfo +0 -1
  256. package/src/pages/functions.ts +0 -86
  257. package/src/pages/hash.ts +0 -13
  258. package/src/pages/index.ts +0 -102
  259. package/src/pages/projects.tsx +0 -159
  260. package/src/pages/prompt-select-project.tsx +0 -31
  261. package/src/pages/publish.tsx +0 -267
  262. package/src/pages/types.ts +0 -46
  263. package/src/pages/upload.tsx +0 -469
  264. package/src/pages/utils.ts +0 -23
  265. package/src/parse.ts +0 -308
  266. package/src/paths.ts +0 -71
  267. package/src/proxy.ts +0 -694
  268. package/src/publish/index.ts +0 -274
  269. package/src/publish/publish.ts +0 -1067
  270. package/src/pubsub/index.ts +0 -286
  271. package/src/pubsub/pubsub-commands.ts +0 -623
  272. package/src/queues/cli/commands/consumer/add.ts +0 -71
  273. package/src/queues/cli/commands/consumer/index.ts +0 -19
  274. package/src/queues/cli/commands/consumer/remove.ts +0 -31
  275. package/src/queues/cli/commands/create.ts +0 -25
  276. package/src/queues/cli/commands/delete.ts +0 -26
  277. package/src/queues/cli/commands/index.ts +0 -35
  278. package/src/queues/cli/commands/list.ts +0 -25
  279. package/src/queues/client.ts +0 -136
  280. package/src/queues/utils.ts +0 -18
  281. package/src/r2/constants.ts +0 -4
  282. package/src/r2/helpers.ts +0 -132
  283. package/src/r2/index.ts +0 -289
  284. package/src/routes.ts +0 -140
  285. package/src/secret/index.ts +0 -379
  286. package/src/selfsigned.d.ts +0 -29
  287. package/src/sites.ts +0 -484
  288. package/src/tail/createTail.ts +0 -415
  289. package/src/tail/filters.ts +0 -277
  290. package/src/tail/index.ts +0 -211
  291. package/src/tail/printing.ts +0 -132
  292. package/src/traverse-module-graph.ts +0 -54
  293. package/src/tsconfig-sanity.ts +0 -16
  294. package/src/type-generation.ts +0 -187
  295. package/src/update-check.ts +0 -19
  296. package/src/user/access.ts +0 -68
  297. package/src/user/auth-variables.ts +0 -113
  298. package/src/user/choose-account.tsx +0 -39
  299. package/src/user/generate-auth-url.ts +0 -33
  300. package/src/user/generate-random-state.ts +0 -16
  301. package/src/user/index.ts +0 -2
  302. package/src/user/user.ts +0 -1234
  303. package/src/utils/collectKeyValues.ts +0 -14
  304. package/src/utils/render.ts +0 -93
  305. package/src/whoami.ts +0 -135
  306. package/src/worker.ts +0 -294
  307. package/src/yargs-types.ts +0 -37
  308. package/src/zones.ts +0 -191
  309. package/templates/__tests__/tsconfig.tsbuildinfo +0 -1
  310. package/templates/d1-beta-facade.js +0 -244
  311. package/templates/first-party-worker-module-facade.ts +0 -19
  312. package/templates/format-dev-errors.ts +0 -34
  313. package/templates/serve-static-assets.ts +0 -66
  314. package/templates/service-bindings-module-facade.js +0 -55
  315. package/templates/service-bindings-sw-facade.js +0 -42
  316. package/templates/tsconfig.tsbuildinfo +0 -1
package/src/dialogs.ts DELETED
@@ -1,136 +0,0 @@
1
- import chalk from "chalk";
2
- import prompts from "prompts";
3
- import { CI } from "./is-ci";
4
- import isInteractive from "./is-interactive";
5
- import { logger } from "./logger";
6
-
7
- // TODO: Use this function across the codebase.
8
- function isNonInteractiveOrCI(): boolean {
9
- return !isInteractive() || CI.isCI();
10
- }
11
-
12
- export class NoDefaultValueProvided extends Error {
13
- constructor() {
14
- // This is user-facing, so make the message something understandable
15
- // It _should_ always be caught and replaced with a more descriptive error
16
- // but this is fine as a fallback.
17
- super("This command cannot be run in a non-interactive context");
18
- Object.setPrototypeOf(this, new.target.prototype);
19
- }
20
- }
21
-
22
- interface ConfirmOptions {
23
- defaultValue?: boolean;
24
- }
25
-
26
- export async function confirm(
27
- text: string,
28
- { defaultValue = true }: ConfirmOptions = {}
29
- ): Promise<boolean> {
30
- if (isNonInteractiveOrCI()) {
31
- logger.log(`? ${text}`);
32
- logger.log(
33
- `🤖 ${chalk.dim(
34
- "Using default value in non-interactive context:"
35
- )} ${chalk.white.bold(defaultValue ? "yes" : "no")}`
36
- );
37
- return defaultValue;
38
- }
39
- const { value } = await prompts({
40
- type: "confirm",
41
- name: "value",
42
- message: text,
43
- initial: defaultValue,
44
- onState: (state) => {
45
- if (state.aborted) {
46
- process.nextTick(() => {
47
- process.exit(1);
48
- });
49
- }
50
- },
51
- });
52
- return value;
53
- }
54
-
55
- interface PromptOptions {
56
- defaultValue?: string;
57
- isSecret?: boolean;
58
- }
59
-
60
- export async function prompt(
61
- text: string,
62
- options: PromptOptions = {}
63
- ): Promise<string> {
64
- if (isNonInteractiveOrCI()) {
65
- if (options?.defaultValue === undefined) {
66
- throw new NoDefaultValueProvided();
67
- }
68
- logger.log(`? ${text}`);
69
- logger.log(
70
- `🤖 ${chalk.dim(
71
- "Using default value in non-interactive context:"
72
- )} ${chalk.white.bold(options.defaultValue)}`
73
- );
74
- return options.defaultValue;
75
- }
76
- const { value } = await prompts({
77
- type: "text",
78
- name: "value",
79
- message: text,
80
- initial: options?.defaultValue,
81
- style: options?.isSecret ? "password" : "default",
82
- onState: (state) => {
83
- if (state.aborted) {
84
- process.nextTick(() => {
85
- process.exit(1);
86
- });
87
- }
88
- },
89
- });
90
- return value;
91
- }
92
-
93
- interface SelectOptions<Values> {
94
- choices: SelectOption<Values>[];
95
- defaultOption?: number;
96
- }
97
-
98
- interface SelectOption<Values> {
99
- title: string;
100
- description?: string;
101
- value: Values;
102
- }
103
-
104
- export async function select<Values extends string>(
105
- text: string,
106
- options: SelectOptions<Values>
107
- ): Promise<Values> {
108
- if (isNonInteractiveOrCI()) {
109
- if (options?.defaultOption === undefined) {
110
- throw new NoDefaultValueProvided();
111
- }
112
- logger.log(`? ${text}`);
113
- logger.log(
114
- `🤖 ${chalk.dim(
115
- "Using default value in non-interactive context:"
116
- )} ${chalk.white.bold(options.choices[options.defaultOption].title)}`
117
- );
118
- return options.choices[options.defaultOption].value;
119
- }
120
-
121
- const { value } = await prompts({
122
- type: "select",
123
- name: "value",
124
- message: text,
125
- choices: options.choices,
126
- initial: options.defaultOption,
127
- onState: (state) => {
128
- if (state.aborted) {
129
- process.nextTick(() => {
130
- process.exit(1);
131
- });
132
- }
133
- },
134
- });
135
- return value;
136
- }
@@ -1,211 +0,0 @@
1
- import { fetchResult } from "./cfetch";
2
- import { readConfig } from "./config";
3
- import { logger } from "./logger";
4
- import * as metrics from "./metrics";
5
- import { requireAuth } from "./user";
6
- import { printWranglerBanner } from ".";
7
- import type { CommonYargsArgv, CommonYargsOptions } from "./yargs-types";
8
- import type { CommandModule } from "yargs";
9
-
10
- type Namespace = {
11
- namespace_id: string;
12
- namespace_name: string;
13
- created_on: string;
14
- created_by: string;
15
- modified_on: string;
16
- modified_by: string;
17
- };
18
-
19
- // Supporting Workers For Platforms
20
- // More details at https://blog.cloudflare.com/workers-for-platforms/
21
-
22
- /**
23
- * Create a dynamic dispatch namespace.
24
- */
25
- async function createWorkerNamespace(accountId: string, name: string) {
26
- const namespace = await fetchResult<Namespace>(
27
- `/accounts/${accountId}/workers/dispatch/namespaces`,
28
- {
29
- method: "POST",
30
- headers: {
31
- "Content-Type": "application/json",
32
- },
33
- body: JSON.stringify({ name }),
34
- }
35
- );
36
- logger.log(
37
- `Created dispatch namespace "${name}" with ID "${namespace.namespace_id}"`
38
- );
39
- }
40
-
41
- /**
42
- * Delete a dynamic dispatch namespace.
43
- */
44
- async function deleteWorkerNamespace(accountId: string, name: string) {
45
- await fetchResult(
46
- `/accounts/${accountId}/workers/dispatch/namespaces/${name}`,
47
- { method: "DELETE" }
48
- );
49
- logger.log(`Deleted dispatch namespace "${name}"`);
50
- }
51
-
52
- /**
53
- * List all created dynamic dispatch namespaces for an account
54
- */
55
- async function listWorkerNamespaces(accountId: string) {
56
- logger.log(
57
- await fetchResult<Namespace>(
58
- `/accounts/${accountId}/workers/dispatch/namespaces`,
59
- {
60
- headers: {
61
- "Content-Type": "application/json",
62
- },
63
- }
64
- )
65
- );
66
- }
67
-
68
- /**
69
- * Get info for a specific dynamic dispatch namespace
70
- */
71
- async function getWorkerNamespaceInfo(accountId: string, name: string) {
72
- logger.log(
73
- await fetchResult<Namespace>(
74
- `/accounts/${accountId}/workers/dispatch/namespaces/${name}`,
75
- {
76
- headers: {
77
- "Content-Type": "application/json",
78
- },
79
- }
80
- )
81
- );
82
- }
83
-
84
- /**
85
- * Rename a dynamic dispatch namespace
86
- */
87
- async function renameWorkerNamespace(
88
- accountId: string,
89
- oldName: string,
90
- newName: string
91
- ) {
92
- void printWranglerBanner();
93
-
94
- await fetchResult(
95
- `/accounts/${accountId}/workers/dispatch/namespaces/${oldName}`,
96
- {
97
- method: "PUT",
98
- headers: {
99
- "Content-Type": "application/json",
100
- },
101
- body: JSON.stringify({ name: newName }),
102
- }
103
- );
104
- logger.log(`Renamed dispatch namespace "${oldName}" to "${newName}"`);
105
- }
106
-
107
- export function workerNamespaceCommands(
108
- workerNamespaceYargs: CommonYargsArgv,
109
- subHelp: CommandModule<CommonYargsOptions, CommonYargsOptions>
110
- ) {
111
- return workerNamespaceYargs
112
- .command(subHelp)
113
- .command(
114
- "list",
115
- "List all dispatch namespaces",
116
- (args) => args,
117
- async (args) => {
118
- const config = readConfig(args.config, args);
119
- const accountId = await requireAuth(config);
120
- await listWorkerNamespaces(accountId);
121
- await metrics.sendMetricsEvent("list dispatch namespaces", {
122
- sendMetrics: config.send_metrics,
123
- });
124
- }
125
- )
126
- .command(
127
- "get <name>",
128
- "Get information about a dispatch namespace",
129
- (yargs) => {
130
- return yargs.positional("name", {
131
- describe: "Name of the dispatch namespace",
132
- type: "string",
133
- demandOption: true,
134
- });
135
- },
136
- async (args) => {
137
- const config = readConfig(args.config, args);
138
- const accountId = await requireAuth(config);
139
- await getWorkerNamespaceInfo(accountId, args.name);
140
- await metrics.sendMetricsEvent("view dispatch namespace", {
141
- sendMetrics: config.send_metrics,
142
- });
143
- }
144
- )
145
- .command(
146
- "create <name>",
147
- "Create a dispatch namespace",
148
- (yargs) => {
149
- return yargs.positional("name", {
150
- describe: "Name of the dispatch namespace",
151
- type: "string",
152
- demandOption: true,
153
- });
154
- },
155
- async (args) => {
156
- await printWranglerBanner();
157
- const config = readConfig(args.config, args);
158
- const accountId = await requireAuth(config);
159
- await createWorkerNamespace(accountId, args.name);
160
- await metrics.sendMetricsEvent("create dispatch namespace", {
161
- sendMetrics: config.send_metrics,
162
- });
163
- }
164
- )
165
- .command(
166
- "delete <name>",
167
- "Delete a dispatch namespace",
168
- (yargs) => {
169
- return yargs.positional("name", {
170
- describe: "Name of the dispatch namespace",
171
- type: "string",
172
- demandOption: true,
173
- });
174
- },
175
- async (args) => {
176
- await printWranglerBanner();
177
- const config = readConfig(args.config, args);
178
- const accountId = await requireAuth(config);
179
- await deleteWorkerNamespace(accountId, args.name);
180
- await metrics.sendMetricsEvent("delete dispatch namespace", {
181
- sendMetrics: config.send_metrics,
182
- });
183
- }
184
- )
185
- .command(
186
- "rename <old-name> <new-name>",
187
- "Rename a dispatch namespace",
188
- (yargs) => {
189
- return yargs
190
- .positional("old-name", {
191
- describe: "Name of the dispatch namespace",
192
- type: "string",
193
- demandOption: true,
194
- })
195
- .positional("new-name", {
196
- describe: "New name of the dispatch namespace",
197
- type: "string",
198
- demandOption: true,
199
- });
200
- },
201
- async (args) => {
202
- await printWranglerBanner();
203
- const config = readConfig(args.config, args);
204
- const accountId = await requireAuth(config);
205
- await renameWorkerNamespace(accountId, args.oldName, args.newName);
206
- await metrics.sendMetricsEvent("rename dispatch namespace", {
207
- sendMetrics: config.send_metrics,
208
- });
209
- }
210
- );
211
- }
@@ -1,50 +0,0 @@
1
- import assert from "node:assert";
2
- import { fetch } from "undici";
3
- import { logger } from "../logger";
4
-
5
- // The ALGOLIA_APP_ID and ALGOLIA_PUBLIC_KEY are provided at esbuild time as a `define` for production and beta releases.
6
- // Otherwise it is left undefined, which disables search.
7
- declare const ALGOLIA_APP_ID: string;
8
- declare const ALGOLIA_PUBLIC_KEY: string;
9
-
10
- export async function runSearch(searchTerm: string) {
11
- const id = ALGOLIA_APP_ID;
12
- const index = "developers-cloudflare2";
13
- const key = ALGOLIA_PUBLIC_KEY;
14
- const params = new URLSearchParams({
15
- query: searchTerm,
16
- hitsPerPage: "1",
17
- getRankingInfo: "0",
18
- });
19
-
20
- assert(id, "Missing Algolia App ID");
21
- assert(key, "Missing Algolia Key");
22
-
23
- const searchResp = await fetch(
24
- `https://${id}-dsn.algolia.net/1/indexes/${index}/query`,
25
- {
26
- method: "POST",
27
- body: JSON.stringify({
28
- params: params.toString(),
29
- }),
30
- headers: {
31
- "X-Algolia-API-Key": key,
32
- "X-Algolia-Application-Id": id,
33
- },
34
- }
35
- );
36
- if (!searchResp.ok) {
37
- logger.error(`Could not search the docs. Please try again later.`);
38
- return;
39
- }
40
- const searchData = (await searchResp.json()) as { hits: { url: string }[] };
41
- logger.debug("searchData: ", searchData);
42
- if (searchData.hits[0]) {
43
- return searchData.hits[0].url;
44
- } else {
45
- logger.error(
46
- `Could not find docs for: ${searchTerm}. Please try again with another search term.`
47
- );
48
- return;
49
- }
50
- }
package/src/docs/index.ts DELETED
@@ -1,54 +0,0 @@
1
- import { printWranglerBanner } from "..";
2
- import { readConfig } from "../config";
3
- import { logger } from "../logger";
4
- import * as metrics from "../metrics";
5
- import openInBrowser from "../open-in-browser";
6
- import { runSearch } from "./helpers";
7
- import type {
8
- CommonYargsArgv,
9
- StrictYargsOptionsToInterface,
10
- } from "../yargs-types";
11
-
12
- export function docsOptions(yargs: CommonYargsArgv) {
13
- return yargs
14
- .positional("command", {
15
- describe: "Enter the wrangler command you want to know more about",
16
- type: "string",
17
- array: true,
18
- })
19
- .option("yes", {
20
- alias: "y",
21
- type: "boolean",
22
- description: "Takes you to the docs, even if search fails",
23
- });
24
- }
25
-
26
- export async function docsHandler(
27
- args: StrictYargsOptionsToInterface<typeof docsOptions>
28
- ) {
29
- //if no command is provided, open the docs homepage
30
- //or, if a command IS provided, but we can't find anything, open the docs homepage
31
- let urlToOpen =
32
- args.yes || !args.command || args.command.length === 0
33
- ? "https://developers.cloudflare.com/workers/wrangler/commands/"
34
- : "";
35
-
36
- if (args.command && args.command.length > 0) {
37
- const searchTerm = args.command.join(" ");
38
- const searchResult = await runSearch(searchTerm);
39
-
40
- urlToOpen = searchResult ?? urlToOpen;
41
- }
42
-
43
- if (!urlToOpen) {
44
- return;
45
- }
46
- await printWranglerBanner();
47
-
48
- logger.log(`Opening a link in your default browser: ${urlToOpen}`);
49
- await openInBrowser(urlToOpen);
50
- const config = readConfig(undefined, args);
51
- await metrics.sendMetricsEvent("view docs", {
52
- sendMetrics: config.send_metrics,
53
- });
54
- }
package/src/durable.ts DELETED
@@ -1,102 +0,0 @@
1
- import assert from "node:assert";
2
- import { fetchResult } from "./cfetch";
3
- import { logger } from "./logger";
4
- import type { Config } from "./config";
5
- import type { CfWorkerInit } from "./worker";
6
-
7
- /**
8
- * For a given Worker + migrations config, figure out which migrations
9
- * to upload based on the current migration tag of the deployed Worker.
10
- */
11
- export async function getMigrationsToUpload(
12
- scriptName: string,
13
- props: {
14
- accountId: string | undefined;
15
- config: Config;
16
- legacyEnv: boolean | undefined;
17
- env: string | undefined;
18
- }
19
- ): Promise<CfWorkerInit["migrations"]> {
20
- const { config, accountId } = props;
21
-
22
- assert(accountId, "Missing accountId");
23
- // if config.migrations
24
- let migrations;
25
- if (config.migrations.length > 0) {
26
- // get current migration tag
27
- type ScriptData = { id: string; migration_tag?: string };
28
- let script: ScriptData | undefined;
29
- if (!props.legacyEnv) {
30
- try {
31
- if (props.env) {
32
- const scriptData = await fetchResult<{
33
- script: ScriptData;
34
- }>(
35
- `/accounts/${accountId}/workers/services/${scriptName}/environments/${props.env}`
36
- );
37
- script = scriptData.script;
38
- } else {
39
- const scriptData = await fetchResult<{
40
- default_environment: {
41
- script: ScriptData;
42
- };
43
- }>(`/accounts/${accountId}/workers/services/${scriptName}`);
44
- script = scriptData.default_environment.script;
45
- }
46
- } catch (err) {
47
- if (
48
- ![
49
- 10090, // corresponds to workers.api.error.service_not_found, so the script wasn't previously published at all
50
- 10092, // workers.api.error.environment_not_found, so the script wasn't published to this environment yet
51
- ].includes((err as { code: number }).code)
52
- ) {
53
- throw err;
54
- }
55
- // else it's a 404, no script found, and we can proceed
56
- }
57
- } else {
58
- const scripts = await fetchResult<ScriptData[]>(
59
- `/accounts/${accountId}/workers/scripts`
60
- );
61
- script = scripts.find(({ id }) => id === scriptName);
62
- }
63
-
64
- if (script?.migration_tag) {
65
- // was already published once
66
- const scriptMigrationTag = script.migration_tag;
67
- const foundIndex = config.migrations.findIndex(
68
- (migration) => migration.tag === scriptMigrationTag
69
- );
70
- if (foundIndex === -1) {
71
- logger.warn(
72
- `The published script ${scriptName} has a migration tag "${script.migration_tag}, which was not found in wrangler.toml. You may have already deleted it. Applying all available migrations to the script...`
73
- );
74
- migrations = {
75
- old_tag: script.migration_tag,
76
- new_tag: config.migrations[config.migrations.length - 1].tag,
77
- steps: config.migrations.map(({ tag: _tag, ...rest }) => rest),
78
- };
79
- } else {
80
- if (foundIndex !== config.migrations.length - 1) {
81
- // there are new migrations to send up
82
- migrations = {
83
- old_tag: script.migration_tag,
84
- new_tag: config.migrations[config.migrations.length - 1].tag,
85
- steps: config.migrations
86
- .slice(foundIndex + 1)
87
- .map(({ tag: _tag, ...rest }) => rest),
88
- };
89
- }
90
- // else, we're up to date, no migrations to send
91
- }
92
- } else {
93
- // first time publishing durable objects to this script,
94
- // so we send all the migrations
95
- migrations = {
96
- new_tag: config.migrations[config.migrations.length - 1].tag,
97
- steps: config.migrations.map(({ tag: _tag, ...rest }) => rest),
98
- };
99
- }
100
- }
101
- return migrations;
102
- }