wrangler 0.0.0-e7cf0caa → 0.0.0-e7ea6005c

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 (315) hide show
  1. package/README.md +15 -13
  2. package/bin/wrangler.js +13 -102
  3. package/config-schema.json +3126 -0
  4. package/package.json +198 -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 +25101 -246
  37. package/wrangler-dist/cli.js +192565 -125621
  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 -6368
  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__/d1/d1.test.ts +0 -82
  53. package/src/__tests__/d1/execute.test.ts +0 -66
  54. package/src/__tests__/d1/migrate.test.ts +0 -157
  55. package/src/__tests__/d1/splitter.test.ts +0 -255
  56. package/src/__tests__/delete.test.ts +0 -272
  57. package/src/__tests__/deployments.test.ts +0 -369
  58. package/src/__tests__/dev.test.tsx +0 -1617
  59. package/src/__tests__/generate.test.ts +0 -237
  60. package/src/__tests__/get-host-from-url.test.ts +0 -16
  61. package/src/__tests__/guess-worker-format.test.ts +0 -120
  62. package/src/__tests__/helpers/clipboardy-mock.js +0 -4
  63. package/src/__tests__/helpers/cmd-shim.d.ts +0 -11
  64. package/src/__tests__/helpers/end-event-loop.ts +0 -6
  65. package/src/__tests__/helpers/mock-account-id.ts +0 -48
  66. package/src/__tests__/helpers/mock-auth-domain.ts +0 -20
  67. package/src/__tests__/helpers/mock-bin.ts +0 -36
  68. package/src/__tests__/helpers/mock-console.ts +0 -112
  69. package/src/__tests__/helpers/mock-dialogs.ts +0 -139
  70. package/src/__tests__/helpers/mock-get-pages-upload-token.ts +0 -25
  71. package/src/__tests__/helpers/mock-get-zone-from-host.ts +0 -11
  72. package/src/__tests__/helpers/mock-http-server.ts +0 -46
  73. package/src/__tests__/helpers/mock-istty.ts +0 -74
  74. package/src/__tests__/helpers/mock-known-routes.ts +0 -12
  75. package/src/__tests__/helpers/mock-kv.ts +0 -46
  76. package/src/__tests__/helpers/mock-oauth-flow.ts +0 -263
  77. package/src/__tests__/helpers/mock-process.ts +0 -34
  78. package/src/__tests__/helpers/mock-set-timeout.ts +0 -16
  79. package/src/__tests__/helpers/mock-stdin.ts +0 -108
  80. package/src/__tests__/helpers/mock-web-socket.ts +0 -29
  81. package/src/__tests__/helpers/msw/blob-worker.cjs +0 -19
  82. package/src/__tests__/helpers/msw/handlers/access.ts +0 -13
  83. package/src/__tests__/helpers/msw/handlers/deployments.ts +0 -160
  84. package/src/__tests__/helpers/msw/handlers/namespaces.ts +0 -81
  85. package/src/__tests__/helpers/msw/handlers/oauth.ts +0 -31
  86. package/src/__tests__/helpers/msw/handlers/r2.ts +0 -60
  87. package/src/__tests__/helpers/msw/handlers/script.ts +0 -56
  88. package/src/__tests__/helpers/msw/handlers/user.ts +0 -52
  89. package/src/__tests__/helpers/msw/handlers/zones.ts +0 -20
  90. package/src/__tests__/helpers/msw/index.ts +0 -52
  91. package/src/__tests__/helpers/msw/read-file-sync.js +0 -61
  92. package/src/__tests__/helpers/run-in-tmp.ts +0 -38
  93. package/src/__tests__/helpers/run-wrangler.ts +0 -16
  94. package/src/__tests__/helpers/string-dynamic-values-matcher.ts +0 -28
  95. package/src/__tests__/helpers/worker-scripts/child-wrangler.toml +0 -1
  96. package/src/__tests__/helpers/worker-scripts/hello-world-worker.js +0 -5
  97. package/src/__tests__/helpers/worker-scripts/hello-world-wrangler.toml +0 -1
  98. package/src/__tests__/helpers/worker-scripts/parent-worker.js +0 -11
  99. package/src/__tests__/helpers/worker-scripts/parent-wrangler.toml +0 -5
  100. package/src/__tests__/helpers/write-worker-source.ts +0 -31
  101. package/src/__tests__/helpers/write-wrangler-toml.ts +0 -17
  102. package/src/__tests__/https-options.test.ts +0 -163
  103. package/src/__tests__/index.test.ts +0 -280
  104. package/src/__tests__/init.test.ts +0 -3196
  105. package/src/__tests__/jest.setup.ts +0 -179
  106. package/src/__tests__/kv.test.ts +0 -1799
  107. package/src/__tests__/logger.test.ts +0 -207
  108. package/src/__tests__/logout.test.ts +0 -47
  109. package/src/__tests__/metrics.test.ts +0 -493
  110. package/src/__tests__/middleware.scheduled.test.ts +0 -145
  111. package/src/__tests__/middleware.test.ts +0 -816
  112. package/src/__tests__/mtls-certificates.test.ts +0 -588
  113. package/src/__tests__/package-manager.test.ts +0 -353
  114. package/src/__tests__/pages/deployment-list.test.ts +0 -80
  115. package/src/__tests__/pages/functions-build.test.ts +0 -452
  116. package/src/__tests__/pages/pages.test.ts +0 -81
  117. package/src/__tests__/pages/project-create.test.ts +0 -63
  118. package/src/__tests__/pages/project-list.test.ts +0 -110
  119. package/src/__tests__/pages/project-upload.test.ts +0 -500
  120. package/src/__tests__/pages/publish.test.ts +0 -2864
  121. package/src/__tests__/pages-deployment-tail.test.ts +0 -955
  122. package/src/__tests__/parse.test.ts +0 -436
  123. package/src/__tests__/paths.test.ts +0 -39
  124. package/src/__tests__/publish.test.ts +0 -8423
  125. package/src/__tests__/pubsub.test.ts +0 -496
  126. package/src/__tests__/queues.test.ts +0 -532
  127. package/src/__tests__/r2.test.ts +0 -374
  128. package/src/__tests__/route.test.ts +0 -45
  129. package/src/__tests__/secret.test.ts +0 -693
  130. package/src/__tests__/tail.test.ts +0 -958
  131. package/src/__tests__/test-old-node-version.js +0 -31
  132. package/src/__tests__/traverse-module-graph.test.ts +0 -220
  133. package/src/__tests__/tsconfig-sanity.ts +0 -12
  134. package/src/__tests__/tsconfig.json +0 -8
  135. package/src/__tests__/tsconfig.tsbuildinfo +0 -1
  136. package/src/__tests__/type-generation.test.ts +0 -234
  137. package/src/__tests__/user.test.ts +0 -118
  138. package/src/__tests__/utils-collectKeyValues.test.ts +0 -47
  139. package/src/__tests__/validate-dev-props.test.ts +0 -56
  140. package/src/__tests__/version.test.ts +0 -35
  141. package/src/__tests__/whoami.test.tsx +0 -172
  142. package/src/__tests__/worker-namespace.test.ts +0 -340
  143. package/src/abort.d.ts +0 -3
  144. package/src/api/dev.ts +0 -316
  145. package/src/api/index.ts +0 -11
  146. package/src/api/mtls-certificate.ts +0 -148
  147. package/src/api/pages/create-worker-bundle-contents.ts +0 -76
  148. package/src/api/pages/index.ts +0 -5
  149. package/src/api/pages/publish.tsx +0 -355
  150. package/src/bundle-reporter.ts +0 -68
  151. package/src/bundle.ts +0 -908
  152. package/src/cfetch/index.ts +0 -158
  153. package/src/cfetch/internal.ts +0 -258
  154. package/src/cli.ts +0 -28
  155. package/src/config/README.md +0 -107
  156. package/src/config/config.ts +0 -282
  157. package/src/config/diagnostics.ts +0 -80
  158. package/src/config/environment.ts +0 -618
  159. package/src/config/index.ts +0 -403
  160. package/src/config/validation-helpers.ts +0 -597
  161. package/src/config/validation.ts +0 -2342
  162. package/src/config-cache.ts +0 -85
  163. package/src/create-worker-preview.ts +0 -293
  164. package/src/create-worker-upload-form.ts +0 -359
  165. package/src/d1/backups.tsx +0 -219
  166. package/src/d1/constants.ts +0 -2
  167. package/src/d1/create.tsx +0 -68
  168. package/src/d1/delete.ts +0 -53
  169. package/src/d1/execute.tsx +0 -357
  170. package/src/d1/formatTimeAgo.ts +0 -14
  171. package/src/d1/index.ts +0 -100
  172. package/src/d1/list.tsx +0 -60
  173. package/src/d1/migrations/apply.tsx +0 -212
  174. package/src/d1/migrations/create.tsx +0 -79
  175. package/src/d1/migrations/helpers.ts +0 -172
  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 -25
  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 -600
  188. package/src/dev/get-local-persistence-path.ts +0 -31
  189. package/src/dev/local.tsx +0 -920
  190. package/src/dev/remote.tsx +0 -632
  191. package/src/dev/start-server.ts +0 -534
  192. package/src/dev/use-esbuild.ts +0 -203
  193. package/src/dev/validate-dev-props.ts +0 -40
  194. package/src/dev-registry.ts +0 -202
  195. package/src/dev.tsx +0 -929
  196. package/src/dialogs.ts +0 -136
  197. package/src/dispatch-namespace.ts +0 -211
  198. package/src/docs/index.ts +0 -97
  199. package/src/durable.ts +0 -102
  200. package/src/entry.ts +0 -337
  201. package/src/environment-variables/factory.ts +0 -88
  202. package/src/environment-variables/misc-variables.ts +0 -30
  203. package/src/errors.ts +0 -11
  204. package/src/generate/index.ts +0 -298
  205. package/src/git-client.ts +0 -135
  206. package/src/global-wrangler-config-path.ts +0 -26
  207. package/src/https-options.ts +0 -127
  208. package/src/index.ts +0 -758
  209. package/src/init.ts +0 -1032
  210. package/src/inspect.ts +0 -782
  211. package/src/intl-polyfill.d.ts +0 -139
  212. package/src/is-ci.ts +0 -14
  213. package/src/is-interactive.ts +0 -16
  214. package/src/jest.d.ts +0 -4
  215. package/src/kv/helpers.ts +0 -430
  216. package/src/kv/index.ts +0 -594
  217. package/src/logger.ts +0 -119
  218. package/src/metrics/index.ts +0 -5
  219. package/src/metrics/metrics-config.ts +0 -239
  220. package/src/metrics/metrics-dispatcher.ts +0 -96
  221. package/src/metrics/metrics-usage-headers.ts +0 -24
  222. package/src/metrics/send-event.ts +0 -99
  223. package/src/miniflare-cli/README.md +0 -30
  224. package/src/miniflare-cli/assets.ts +0 -251
  225. package/src/miniflare-cli/index.ts +0 -210
  226. package/src/miniflare-cli/request-context.ts +0 -40
  227. package/src/miniflare-cli/tsconfig.json +0 -9
  228. package/src/miniflare-cli/tsconfig.tsbuildinfo +0 -1
  229. package/src/miniflare-cli/types.ts +0 -11
  230. package/src/module-collection.ts +0 -333
  231. package/src/mtls-certificate/cli.ts +0 -155
  232. package/src/open-in-browser.ts +0 -17
  233. package/src/package-manager.ts +0 -219
  234. package/src/pages/build.ts +0 -410
  235. package/src/pages/buildFunctions.ts +0 -140
  236. package/src/pages/constants.ts +0 -18
  237. package/src/pages/deployment-tails.ts +0 -281
  238. package/src/pages/deployments.tsx +0 -84
  239. package/src/pages/dev.ts +0 -716
  240. package/src/pages/errors.ts +0 -67
  241. package/src/pages/functions/buildPlugin.ts +0 -113
  242. package/src/pages/functions/buildWorker.ts +0 -291
  243. package/src/pages/functions/filepath-routing.test.ts +0 -234
  244. package/src/pages/functions/filepath-routing.ts +0 -189
  245. package/src/pages/functions/identifiers.ts +0 -78
  246. package/src/pages/functions/routes-consolidation.test.ts +0 -250
  247. package/src/pages/functions/routes-consolidation.ts +0 -73
  248. package/src/pages/functions/routes-transformation.test.ts +0 -282
  249. package/src/pages/functions/routes-transformation.ts +0 -115
  250. package/src/pages/functions/routes-validation.test.ts +0 -403
  251. package/src/pages/functions/routes-validation.ts +0 -202
  252. package/src/pages/functions/routes.ts +0 -151
  253. package/src/pages/functions/tsconfig.json +0 -8
  254. package/src/pages/functions/tsconfig.tsbuildinfo +0 -1
  255. package/src/pages/functions.ts +0 -86
  256. package/src/pages/hash.ts +0 -13
  257. package/src/pages/index.ts +0 -102
  258. package/src/pages/projects.tsx +0 -159
  259. package/src/pages/prompt-select-project.tsx +0 -31
  260. package/src/pages/publish.tsx +0 -267
  261. package/src/pages/types.ts +0 -46
  262. package/src/pages/upload.tsx +0 -469
  263. package/src/pages/utils.ts +0 -23
  264. package/src/parse.ts +0 -308
  265. package/src/paths.ts +0 -71
  266. package/src/proxy.ts +0 -694
  267. package/src/publish/index.ts +0 -274
  268. package/src/publish/publish.ts +0 -1060
  269. package/src/pubsub/index.ts +0 -286
  270. package/src/pubsub/pubsub-commands.ts +0 -623
  271. package/src/queues/cli/commands/consumer/add.ts +0 -71
  272. package/src/queues/cli/commands/consumer/index.ts +0 -19
  273. package/src/queues/cli/commands/consumer/remove.ts +0 -31
  274. package/src/queues/cli/commands/create.ts +0 -25
  275. package/src/queues/cli/commands/delete.ts +0 -26
  276. package/src/queues/cli/commands/index.ts +0 -35
  277. package/src/queues/cli/commands/list.ts +0 -25
  278. package/src/queues/client.ts +0 -136
  279. package/src/queues/utils.ts +0 -18
  280. package/src/r2/constants.ts +0 -4
  281. package/src/r2/helpers.ts +0 -132
  282. package/src/r2/index.ts +0 -289
  283. package/src/routes.ts +0 -140
  284. package/src/secret/index.ts +0 -376
  285. package/src/selfsigned.d.ts +0 -29
  286. package/src/sites.ts +0 -372
  287. package/src/tail/createTail.ts +0 -406
  288. package/src/tail/filters.ts +0 -277
  289. package/src/tail/index.ts +0 -211
  290. package/src/tail/printing.ts +0 -122
  291. package/src/traverse-module-graph.ts +0 -53
  292. package/src/tsconfig-sanity.ts +0 -16
  293. package/src/type-generation.ts +0 -181
  294. package/src/update-check.ts +0 -19
  295. package/src/user/access.ts +0 -68
  296. package/src/user/auth-variables.ts +0 -113
  297. package/src/user/choose-account.tsx +0 -39
  298. package/src/user/generate-auth-url.ts +0 -33
  299. package/src/user/generate-random-state.ts +0 -16
  300. package/src/user/index.ts +0 -2
  301. package/src/user/user.ts +0 -1233
  302. package/src/utils/collectKeyValues.ts +0 -14
  303. package/src/utils/render.ts +0 -93
  304. package/src/whoami.ts +0 -135
  305. package/src/worker.ts +0 -274
  306. package/src/yargs-types.ts +0 -37
  307. package/src/zones.ts +0 -191
  308. package/templates/__tests__/tsconfig.tsbuildinfo +0 -1
  309. package/templates/d1-beta-facade.js +0 -244
  310. package/templates/first-party-worker-module-facade.ts +0 -19
  311. package/templates/format-dev-errors.ts +0 -34
  312. package/templates/serve-static-assets.ts +0 -66
  313. package/templates/service-bindings-module-facade.js +0 -55
  314. package/templates/service-bindings-sw-facade.js +0 -42
  315. package/templates/tsconfig.tsbuildinfo +0 -1
@@ -1,588 +0,0 @@
1
- import { writeFileSync } from "fs";
2
- import { rest } from "msw";
3
- import {
4
- uploadMTlsCertificateFromFs,
5
- uploadMTlsCertificate,
6
- listMTlsCertificates,
7
- deleteMTlsCertificate,
8
- getMTlsCertificate,
9
- getMTlsCertificateByName,
10
- } from "../api";
11
- import { mockAccountId, mockApiToken } from "./helpers/mock-account-id";
12
- import { mockConsoleMethods } from "./helpers/mock-console";
13
- import { mockConfirm } from "./helpers/mock-dialogs";
14
- import { useMockIsTTY } from "./helpers/mock-istty";
15
- import { msw } from "./helpers/msw";
16
- import { runInTempDir } from "./helpers/run-in-tmp";
17
- import { runWrangler } from "./helpers/run-wrangler";
18
- import type { MTlsCertificateResponse } from "../api/mtls-certificate";
19
-
20
- describe("wrangler", () => {
21
- const accountId = "1a2b3c4d";
22
- mockAccountId();
23
- mockApiToken();
24
- runInTempDir();
25
- const { setIsTTY } = useMockIsTTY();
26
- const std = mockConsoleMethods();
27
-
28
- beforeEach(() => {
29
- setIsTTY(true);
30
- });
31
-
32
- function mockPostMTlsCertificate(
33
- resp: Partial<MTlsCertificateResponse> = {}
34
- ) {
35
- const config = { calls: 0 };
36
- msw.use(
37
- rest.post(
38
- "*/accounts/:accountId/mtls_certificates",
39
- async (request, response, context) => {
40
- config.calls++;
41
-
42
- const body = await request.json();
43
- return response.once(
44
- context.json({
45
- success: true,
46
- errors: [],
47
- messages: [],
48
- result: {
49
- id: "1234",
50
- name: body.name,
51
- certificates: body.certificates,
52
- issuer: "example.com...",
53
- uploaded_on: now.toISOString(),
54
- expires_on: oneYearLater.toISOString(),
55
- ...resp,
56
- },
57
- })
58
- );
59
- }
60
- )
61
- );
62
- return config;
63
- }
64
-
65
- function mockGetMTlsCertificates(
66
- certs: Partial<MTlsCertificateResponse>[] | undefined = undefined
67
- ) {
68
- const config = { calls: 0 };
69
- msw.use(
70
- rest.get(
71
- "*/accounts/:accountId/mtls_certificates",
72
- async (request, response, context) => {
73
- config.calls++;
74
-
75
- return response.once(
76
- context.json({
77
- success: true,
78
- errors: [],
79
- messages: [],
80
- result:
81
- typeof certs === "undefined"
82
- ? [
83
- {
84
- id: "1234",
85
- name: "cert one",
86
- certificates: "BEGIN CERTIFICATE...",
87
- issuer: "example.com...",
88
- uploaded_on: now.toISOString(),
89
- expires_on: oneYearLater.toISOString(),
90
- },
91
- {
92
- id: "5678",
93
- name: "cert two",
94
- certificates: "BEGIN CERTIFICATE...",
95
- issuer: "example.com...",
96
- uploaded_on: now.toISOString(),
97
- expires_on: oneYearLater.toISOString(),
98
- },
99
- ]
100
- : certs,
101
- })
102
- );
103
- }
104
- )
105
- );
106
- return config;
107
- }
108
-
109
- function mockGetMTlsCertificate(resp: Partial<MTlsCertificateResponse> = {}) {
110
- const config = { calls: 0 };
111
- msw.use(
112
- rest.get(
113
- "*/accounts/:accountId/mtls_certificates/:certId",
114
- async (request, response, context) => {
115
- config.calls++;
116
-
117
- return response.once(
118
- context.json({
119
- success: true,
120
- errors: [],
121
- messages: [],
122
- result: {
123
- id: "1234",
124
- certificates: "BEGIN CERTIFICATE...",
125
- issuer: "example.com...",
126
- uploaded_on: now.toISOString(),
127
- expires_on: oneYearLater.toISOString(),
128
- ...resp,
129
- },
130
- })
131
- );
132
- }
133
- )
134
- );
135
- return config;
136
- }
137
-
138
- function mockDeleteMTlsCertificate() {
139
- const config = { calls: 0 };
140
- msw.use(
141
- rest.delete(
142
- "*/accounts/:accountId/mtls_certificates/:certId",
143
- async (request, response, context) => {
144
- config.calls++;
145
-
146
- return response.once(
147
- context.json({
148
- success: true,
149
- errors: [],
150
- messages: [],
151
- result: null,
152
- })
153
- );
154
- }
155
- )
156
- );
157
- return config;
158
- }
159
-
160
- const now = new Date();
161
- const oneYearLater = new Date(now);
162
- oneYearLater.setFullYear(now.getFullYear() + 1);
163
-
164
- describe("mtls-certificates", () => {
165
- describe("api", () => {
166
- describe("uploadMTlsCertificate", () => {
167
- it("should call mtls_certificates upload endpoint", async () => {
168
- const mock = mockPostMTlsCertificate({
169
- id: "1234",
170
- issuer: "example.com...",
171
- uploaded_on: now.toISOString(),
172
- expires_on: oneYearLater.toISOString(),
173
- });
174
-
175
- const cert = await uploadMTlsCertificate(accountId, {
176
- certificateChain: "BEGIN CERTIFICATE...",
177
- privateKey: "BEGIN PRIVATE KEY...",
178
- name: "my_cert",
179
- });
180
-
181
- expect(cert.id).toEqual("1234");
182
- expect(cert.issuer).toEqual("example.com...");
183
- expect(cert.expires_on).toEqual(oneYearLater.toISOString());
184
-
185
- expect(mock.calls).toEqual(1);
186
- });
187
- });
188
-
189
- describe("uploadMTlsCertificateFromFs", () => {
190
- it("should fail to read cert and key files when missing", async () => {
191
- await expect(
192
- uploadMTlsCertificateFromFs(accountId, {
193
- certificateChainFilename: "cert.pem",
194
- privateKeyFilename: "key.pem",
195
- name: "my_cert",
196
- })
197
- ).rejects.toMatchInlineSnapshot(
198
- `[ParseError: Could not read file: cert.pem]`
199
- );
200
- });
201
-
202
- it("should read cert and key from disk and call mtls_certificates upload endpoint", async () => {
203
- const mock = mockPostMTlsCertificate({
204
- id: "1234",
205
- issuer: "example.com...",
206
- });
207
-
208
- writeFileSync("cert.pem", "BEGIN CERTIFICATE...");
209
- writeFileSync("key.pem", "BEGIN PRIVATE KEY...");
210
-
211
- const cert = await uploadMTlsCertificateFromFs(accountId, {
212
- certificateChainFilename: "cert.pem",
213
- privateKeyFilename: "key.pem",
214
- name: "my_cert",
215
- });
216
-
217
- expect(cert.id).toEqual("1234");
218
- expect(cert.issuer).toEqual("example.com...");
219
- expect(cert.expires_on).toEqual(oneYearLater.toISOString());
220
-
221
- expect(mock.calls).toEqual(1);
222
- });
223
- });
224
-
225
- describe("listMTlsCertificates", () => {
226
- it("should call mtls_certificates list endpoint", async () => {
227
- const mock = mockGetMTlsCertificates([
228
- {
229
- id: "1234",
230
- name: "cert one",
231
- certificates: "BEGIN CERTIFICATE...",
232
- issuer: "example.com...",
233
- uploaded_on: now.toISOString(),
234
- expires_on: oneYearLater.toISOString(),
235
- },
236
- {
237
- id: "5678",
238
- name: "cert two",
239
- certificates: "BEGIN CERTIFICATE...",
240
- issuer: "example.com...",
241
- uploaded_on: now.toISOString(),
242
- expires_on: oneYearLater.toISOString(),
243
- },
244
- ]);
245
-
246
- const certs = await listMTlsCertificates(accountId, {});
247
-
248
- expect(certs).toHaveLength(2);
249
-
250
- expect(certs[0].id).toEqual("1234");
251
- expect(certs[0].name).toEqual("cert one");
252
-
253
- expect(certs[1].id).toEqual("5678");
254
- expect(certs[1].name).toEqual("cert two");
255
-
256
- expect(mock.calls).toEqual(1);
257
- });
258
- });
259
-
260
- describe("getMTlsCertificate", () => {
261
- it("calls get mtls_certificates endpoint", async () => {
262
- const mock = mockGetMTlsCertificate({
263
- id: "1234",
264
- name: "cert one",
265
- certificates: "BEGIN CERTIFICATE...",
266
- issuer: "example.com...",
267
- uploaded_on: now.toISOString(),
268
- expires_on: oneYearLater.toISOString(),
269
- });
270
-
271
- const cert = await getMTlsCertificate(accountId, "1234");
272
-
273
- expect(cert.id).toEqual("1234");
274
- expect(cert.issuer).toEqual("example.com...");
275
- expect(cert.expires_on).toEqual(oneYearLater.toISOString());
276
-
277
- expect(mock.calls).toEqual(1);
278
- });
279
- });
280
-
281
- describe("getMTlsCertificateByName", () => {
282
- it("calls list mtls_certificates endpoint with name", async () => {
283
- const mock = mockGetMTlsCertificates([
284
- {
285
- id: "1234",
286
- name: "cert one",
287
- certificates: "BEGIN CERTIFICATE...",
288
- issuer: "example.com...",
289
- uploaded_on: now.toISOString(),
290
- expires_on: oneYearLater.toISOString(),
291
- },
292
- ]);
293
-
294
- const cert = await getMTlsCertificateByName(accountId, "cert one");
295
-
296
- expect(cert.id).toEqual("1234");
297
- expect(cert.issuer).toEqual("example.com...");
298
- expect(cert.expires_on).toEqual(oneYearLater.toISOString());
299
-
300
- expect(mock.calls).toEqual(1);
301
- });
302
-
303
- it("errors when a certificate cannot be found", async () => {
304
- const mock = mockGetMTlsCertificates([]);
305
-
306
- await expect(
307
- getMTlsCertificateByName(accountId, "cert one")
308
- ).rejects.toMatchInlineSnapshot(
309
- `[Error: certificate not found with name "cert one"]`
310
- );
311
-
312
- expect(mock.calls).toEqual(1);
313
- });
314
-
315
- it("errors when multiple certificates are found", async () => {
316
- const mock = mockGetMTlsCertificates([
317
- {
318
- id: "1234",
319
- name: "cert one",
320
- certificates: "BEGIN CERTIFICATE...",
321
- issuer: "example.com...",
322
- uploaded_on: now.toISOString(),
323
- expires_on: oneYearLater.toISOString(),
324
- },
325
- {
326
- id: "5678",
327
- name: "cert one",
328
- certificates: "BEGIN CERTIFICATE...",
329
- issuer: "example.com...",
330
- uploaded_on: now.toISOString(),
331
- expires_on: oneYearLater.toISOString(),
332
- },
333
- ]);
334
-
335
- await expect(
336
- getMTlsCertificateByName(accountId, "cert one")
337
- ).rejects.toMatchInlineSnapshot(
338
- `[Error: multiple certificates found with name "cert one"]`
339
- );
340
-
341
- expect(mock.calls).toEqual(1);
342
- });
343
- });
344
-
345
- describe("deleteMTlsCertificate", () => {
346
- test("calls delete mts_certificates endpoint", async () => {
347
- const mock = mockDeleteMTlsCertificate();
348
-
349
- await deleteMTlsCertificate(accountId, "1234");
350
-
351
- expect(mock.calls).toEqual(1);
352
- });
353
- });
354
- });
355
-
356
- describe("commands", () => {
357
- describe("help", () => {
358
- it("should show the correct help text", async () => {
359
- await runWrangler("mtls-certifiate --help");
360
- expect(std.err).toMatchInlineSnapshot(`""`);
361
- expect(std.out).toMatchInlineSnapshot(`
362
- "wrangler
363
-
364
- Commands:
365
- wrangler docs [command] 📚 Open wrangler's docs in your browser
366
- wrangler init [name] 📥 Initialize a basic Worker project, including a wrangler.toml file
367
- wrangler generate [name] [template] ✨ Generate a new Worker project from an existing Worker template. See https://github.com/cloudflare/templates
368
- wrangler dev [script] 👂 Start a local server for developing your worker
369
- wrangler publish [script] 🆙 Publish your Worker to Cloudflare.
370
- wrangler delete [script] 🗑 Delete your Worker from Cloudflare.
371
- wrangler tail [worker] 🦚 Starts a log tailing session for a published Worker.
372
- wrangler secret 🤫 Generate a secret that can be referenced in a Worker
373
- wrangler secret:bulk <json> 🗄️ Bulk upload secrets for a Worker
374
- wrangler kv:namespace 🗂️ Interact with your Workers KV Namespaces
375
- wrangler kv:key 🔑 Individually manage Workers KV key-value pairs
376
- wrangler kv:bulk 💪 Interact with multiple Workers KV key-value pairs at once
377
- wrangler pages ⚡️ Configure Cloudflare Pages
378
- wrangler queues 🇶 Configure Workers Queues
379
- wrangler r2 📦 Interact with an R2 store
380
- wrangler dispatch-namespace 📦 Interact with a dispatch namespace
381
- wrangler d1 🗄 Interact with a D1 database
382
- wrangler pubsub 📮 Interact and manage Pub/Sub Brokers
383
- wrangler mtls-certificate 🪪 Manage certificates used for mTLS connections
384
- wrangler login 🔓 Login to Cloudflare
385
- wrangler logout 🚪 Logout from Cloudflare
386
- wrangler whoami 🕵️ Retrieve your user info and test your auth config
387
- wrangler types 📝 Generate types from bindings & module rules in config
388
- wrangler deployments 🚢 List and view details for deployments
389
- wrangler rollback [deployment-id] 🔙 Rollback a deployment
390
-
391
- Flags:
392
- -j, --experimental-json-config Experimental: Support wrangler.json [boolean]
393
- -c, --config Path to .toml configuration file [string]
394
- -e, --env Environment to use for operations and .env files [string]
395
- -h, --help Show help [boolean]
396
- -v, --version Show version number [boolean]
397
-
398
- 🚧\`wrangler rollback\` is a beta command. Please report any issues to https://github.com/cloudflare/workers-sdk/issues/new/choose"
399
- `);
400
- });
401
- });
402
-
403
- describe("upload", () => {
404
- test("uploads certificate and key from file", async () => {
405
- writeFileSync("cert.pem", "BEGIN CERTIFICATE...");
406
- writeFileSync("key.pem", "BEGIN PRIVATE KEY...");
407
-
408
- mockPostMTlsCertificate();
409
-
410
- await runWrangler(
411
- "mtls-certificate upload --cert cert.pem --key key.pem"
412
- );
413
-
414
- expect(std.err).toMatchInlineSnapshot(`""`);
415
- expect(std.out).toEqual(
416
- `Uploading mTLS Certificate...
417
- Success! Uploaded mTLS Certificate
418
- ID: 1234
419
- Issuer: example.com...
420
- Expires on ${oneYearLater.toLocaleDateString()}`
421
- );
422
- });
423
-
424
- test("uploads certificate and key from file with name", async () => {
425
- writeFileSync("cert.pem", "BEGIN CERTIFICATE...");
426
- writeFileSync("key.pem", "BEGIN PRIVATE KEY...");
427
-
428
- mockPostMTlsCertificate();
429
-
430
- await runWrangler(
431
- "mtls-certificate upload --cert cert.pem --key key.pem --name my-cert"
432
- );
433
-
434
- expect(std.err).toMatchInlineSnapshot(`""`);
435
- expect(std.out).toEqual(
436
- `Uploading mTLS Certificate my-cert...
437
- Success! Uploaded mTLS Certificate my-cert
438
- ID: 1234
439
- Issuer: example.com...
440
- Expires on ${oneYearLater.toLocaleDateString()}`
441
- );
442
- });
443
- });
444
-
445
- describe("list", () => {
446
- it("should list certificates", async () => {
447
- mockGetMTlsCertificates();
448
-
449
- await runWrangler("mtls-certificate list");
450
-
451
- expect(std.err).toMatchInlineSnapshot(`""`);
452
- expect(std.out).toEqual(
453
- `ID: 1234
454
- Name: cert one
455
- Issuer: example.com...
456
- Created on: ${now.toLocaleDateString()}
457
- Expires on: ${oneYearLater.toLocaleDateString()}
458
-
459
-
460
- ID: 5678
461
- Name: cert two
462
- Issuer: example.com...
463
- Created on: ${now.toLocaleDateString()}
464
- Expires on: ${oneYearLater.toLocaleDateString()}
465
-
466
- `
467
- );
468
- });
469
- });
470
-
471
- describe("delete", () => {
472
- it("should require --id or --name", async () => {
473
- await runWrangler("mtls-certificate delete");
474
-
475
- expect(std.err).toMatchInlineSnapshot(`
476
- "X [ERROR] Error: must provide --id or --name.
477
-
478
- "
479
- `);
480
- expect(std.out).toMatchInlineSnapshot(`""`);
481
- });
482
-
483
- it("should require not providing --id and --name", async () => {
484
- await runWrangler("mtls-certificate delete --id 1234 --name mycert");
485
-
486
- expect(std.err).toMatchInlineSnapshot(`
487
- "X [ERROR] Error: can't provide both --id and --name.
488
-
489
- "
490
- `);
491
- expect(std.out).toMatchInlineSnapshot(`""`);
492
- });
493
-
494
- it("should delete certificate by id", async () => {
495
- mockGetMTlsCertificate({ name: "my-cert" });
496
- mockDeleteMTlsCertificate();
497
-
498
- mockConfirm({
499
- text: `Are you sure you want to delete certificate 1234 (my-cert)?`,
500
- result: true,
501
- });
502
-
503
- await runWrangler("mtls-certificate delete --id 1234");
504
-
505
- expect(std.err).toMatchInlineSnapshot(`""`);
506
- expect(std.out).toMatchInlineSnapshot(
507
- `"Deleted certificate 1234 (my-cert) successfully"`
508
- );
509
- });
510
-
511
- it("should delete certificate by name", async () => {
512
- mockGetMTlsCertificates([{ id: "1234", name: "my-cert" }]);
513
- mockDeleteMTlsCertificate();
514
-
515
- mockConfirm({
516
- text: `Are you sure you want to delete certificate 1234 (my-cert)?`,
517
- result: true,
518
- });
519
-
520
- await runWrangler("mtls-certificate delete --name my-cert");
521
-
522
- expect(std.err).toMatchInlineSnapshot(`""`);
523
- expect(std.out).toMatchInlineSnapshot(
524
- `"Deleted certificate 1234 (my-cert) successfully"`
525
- );
526
- });
527
-
528
- it("should not delete when certificate cannot be found by name", async () => {
529
- mockGetMTlsCertificates([]);
530
-
531
- await expect(
532
- runWrangler("mtls-certificate delete --name my-cert")
533
- ).rejects.toMatchInlineSnapshot(
534
- `[Error: certificate not found with name "my-cert"]`
535
- );
536
- expect(std.out).toMatchInlineSnapshot(`
537
- "
538
- If you think this is a bug then please create an issue at https://github.com/cloudflare/workers-sdk/issues/new/choose"
539
- `);
540
- });
541
-
542
- it("should not delete when many certificates are found by name", async () => {
543
- mockGetMTlsCertificates([
544
- {
545
- id: "1234",
546
- name: "cert one",
547
- certificates: "BEGIN CERTIFICATE...",
548
- issuer: "example.com...",
549
- uploaded_on: now.toISOString(),
550
- expires_on: oneYearLater.toISOString(),
551
- },
552
- {
553
- id: "5678",
554
- name: "cert one",
555
- certificates: "BEGIN CERTIFICATE...",
556
- issuer: "example.com...",
557
- uploaded_on: now.toISOString(),
558
- expires_on: oneYearLater.toISOString(),
559
- },
560
- ]);
561
-
562
- await expect(
563
- runWrangler("mtls-certificate delete --name my-cert")
564
- ).rejects.toMatchInlineSnapshot(
565
- `[Error: multiple certificates found with name "my-cert"]`
566
- );
567
- expect(std.out).toMatchInlineSnapshot(`
568
- "
569
- If you think this is a bug then please create an issue at https://github.com/cloudflare/workers-sdk/issues/new/choose"
570
- `);
571
- });
572
-
573
- it("should not delete when confirmation fails", async () => {
574
- mockGetMTlsCertificate({ id: "1234" });
575
-
576
- mockConfirm({
577
- text: `Are you sure you want to delete certificate 1234?`,
578
- result: false,
579
- });
580
-
581
- await runWrangler("mtls-certificate delete --id 1234");
582
- expect(std.err).toMatchInlineSnapshot(`""`);
583
- expect(std.out).toMatchInlineSnapshot(`"Not deleting"`);
584
- });
585
- });
586
- });
587
- });
588
- });