wrangler 0.0.0-e41c7e41 → 0.0.0-e44f496a8

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 (272) hide show
  1. package/README.md +17 -15
  2. package/bin/wrangler.js +24 -93
  3. package/config-schema.json +3126 -0
  4. package/package.json +198 -192
  5. package/templates/__tests__/tsconfig-sanity.ts +12 -0
  6. package/templates/__tests__/tsconfig.json +8 -0
  7. package/templates/checked-fetch.js +19 -6
  8. package/templates/facade.d.ts +19 -0
  9. package/templates/gitignore +2 -3
  10. package/templates/init-tests/test-jest-new-worker.js +3 -5
  11. package/templates/init-tests/test-vitest-new-worker.js +4 -6
  12. package/templates/init-tests/test-vitest-new-worker.ts +25 -0
  13. package/templates/middleware/common.ts +9 -4
  14. package/templates/middleware/loader-modules.ts +94 -44
  15. package/templates/middleware/loader-sw.ts +6 -4
  16. package/templates/middleware/middleware-ensure-req-body-drained.ts +18 -0
  17. package/templates/middleware/middleware-miniflare3-json-error.ts +17 -5
  18. package/templates/middleware/middleware-mock-analytics-engine.d.ts +3 -0
  19. package/templates/middleware/middleware-mock-analytics-engine.ts +30 -0
  20. package/templates/middleware/middleware-scheduled.ts +15 -1
  21. package/templates/middleware/middleware-serve-static-assets.d.ts +6 -0
  22. package/templates/middleware/middleware-serve-static-assets.ts +56 -0
  23. package/templates/modules-watch-stub.js +4 -0
  24. package/templates/new-worker-scheduled.ts +1 -1
  25. package/templates/new-worker.ts +4 -1
  26. package/templates/pages-dev-pipeline.ts +6 -2
  27. package/templates/pages-dev-util.ts +4 -1
  28. package/templates/pages-shim.ts +1 -1
  29. package/templates/pages-template-plugin.ts +33 -14
  30. package/templates/pages-template-worker.ts +12 -3
  31. package/templates/startDevWorker/InspectorProxyWorker.ts +664 -0
  32. package/templates/startDevWorker/ProxyWorker.ts +336 -0
  33. package/templates/tsconfig-sanity.ts +11 -0
  34. package/templates/tsconfig.init.json +22 -0
  35. package/templates/tsconfig.json +5 -103
  36. package/wrangler-dist/InspectorProxyWorker.js +464 -0
  37. package/wrangler-dist/InspectorProxyWorker.js.map +6 -0
  38. package/wrangler-dist/ProxyWorker.js +241 -0
  39. package/wrangler-dist/ProxyWorker.js.map +6 -0
  40. package/wrangler-dist/cli.d.ts +26122 -519
  41. package/wrangler-dist/cli.js +174096 -118298
  42. package/wrangler-dist/wasm-sync.wasm +0 -0
  43. package/Cloudflare_CA.pem +0 -18
  44. package/import_meta_url.js +0 -3
  45. package/miniflare-config-stubs/.env.empty +0 -0
  46. package/miniflare-config-stubs/package.empty.json +0 -1
  47. package/miniflare-config-stubs/wrangler.empty.toml +0 -0
  48. package/miniflare-dist/index.mjs +0 -6316
  49. package/src/__tests__/access.test.ts +0 -25
  50. package/src/__tests__/api-dev.test.ts +0 -209
  51. package/src/__tests__/api-devregistry.test.js +0 -56
  52. package/src/__tests__/api.test.ts +0 -80
  53. package/src/__tests__/config-cache-without-cache-dir.test.ts +0 -38
  54. package/src/__tests__/config-cache.test.ts +0 -42
  55. package/src/__tests__/configuration.test.ts +0 -3981
  56. package/src/__tests__/d1.test.ts +0 -80
  57. package/src/__tests__/delete.test.ts +0 -230
  58. package/src/__tests__/deployments.test.ts +0 -91
  59. package/src/__tests__/dev.test.tsx +0 -1536
  60. package/src/__tests__/dialogs.test.tsx +0 -40
  61. package/src/__tests__/generate.test.ts +0 -235
  62. package/src/__tests__/get-host-from-url.test.ts +0 -16
  63. package/src/__tests__/guess-worker-format.test.ts +0 -85
  64. package/src/__tests__/helpers/clipboardy-mock.js +0 -4
  65. package/src/__tests__/helpers/cmd-shim.d.ts +0 -11
  66. package/src/__tests__/helpers/mock-account-id.ts +0 -48
  67. package/src/__tests__/helpers/mock-bin.ts +0 -36
  68. package/src/__tests__/helpers/mock-cfetch.ts +0 -333
  69. package/src/__tests__/helpers/mock-console.ts +0 -106
  70. package/src/__tests__/helpers/mock-dialogs.ts +0 -153
  71. package/src/__tests__/helpers/mock-get-zone-from-host.ts +0 -8
  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 -7
  75. package/src/__tests__/helpers/mock-kv.ts +0 -33
  76. package/src/__tests__/helpers/mock-oauth-flow.ts +0 -252
  77. package/src/__tests__/helpers/mock-process.ts +0 -39
  78. package/src/__tests__/helpers/mock-stdin.ts +0 -108
  79. package/src/__tests__/helpers/mock-web-socket.ts +0 -29
  80. package/src/__tests__/helpers/msw/handlers/access.ts +0 -13
  81. package/src/__tests__/helpers/msw/handlers/deployments.ts +0 -59
  82. package/src/__tests__/helpers/msw/handlers/namespaces.ts +0 -104
  83. package/src/__tests__/helpers/msw/handlers/oauth.ts +0 -36
  84. package/src/__tests__/helpers/msw/handlers/r2.ts +0 -80
  85. package/src/__tests__/helpers/msw/handlers/script.ts +0 -75
  86. package/src/__tests__/helpers/msw/handlers/user.ts +0 -63
  87. package/src/__tests__/helpers/msw/handlers/zones.ts +0 -22
  88. package/src/__tests__/helpers/msw/index.ts +0 -21
  89. package/src/__tests__/helpers/run-in-tmp.ts +0 -38
  90. package/src/__tests__/helpers/run-wrangler.ts +0 -16
  91. package/src/__tests__/helpers/worker-scripts/child-wrangler.toml +0 -1
  92. package/src/__tests__/helpers/worker-scripts/hello-world-worker.js +0 -5
  93. package/src/__tests__/helpers/worker-scripts/hello-world-wrangler.toml +0 -1
  94. package/src/__tests__/helpers/worker-scripts/parent-worker.js +0 -8
  95. package/src/__tests__/helpers/worker-scripts/parent-wrangler.toml +0 -5
  96. package/src/__tests__/helpers/write-worker-source.ts +0 -31
  97. package/src/__tests__/helpers/write-wrangler-toml.ts +0 -17
  98. package/src/__tests__/https-options.test.ts +0 -163
  99. package/src/__tests__/index.test.ts +0 -264
  100. package/src/__tests__/init.test.ts +0 -2900
  101. package/src/__tests__/jest.setup.ts +0 -202
  102. package/src/__tests__/kv.test.ts +0 -1675
  103. package/src/__tests__/logger.test.ts +0 -141
  104. package/src/__tests__/metrics.test.ts +0 -450
  105. package/src/__tests__/middleware.scheduled.test.ts +0 -135
  106. package/src/__tests__/middleware.test.ts +0 -726
  107. package/src/__tests__/package-manager.test.ts +0 -353
  108. package/src/__tests__/pages-deployment-tail.test.ts +0 -820
  109. package/src/__tests__/pages.test.ts +0 -2442
  110. package/src/__tests__/parse.test.ts +0 -330
  111. package/src/__tests__/paths.test.ts +0 -39
  112. package/src/__tests__/publish.test.ts +0 -7633
  113. package/src/__tests__/pubsub.test.ts +0 -370
  114. package/src/__tests__/queues.test.ts +0 -371
  115. package/src/__tests__/r2.test.ts +0 -393
  116. package/src/__tests__/route.test.ts +0 -45
  117. package/src/__tests__/secret.test.ts +0 -644
  118. package/src/__tests__/tail.test.ts +0 -800
  119. package/src/__tests__/test-old-node-version.js +0 -31
  120. package/src/__tests__/type-generation.test.ts +0 -226
  121. package/src/__tests__/user.test.ts +0 -155
  122. package/src/__tests__/utils-collectKeyValues.test.ts +0 -47
  123. package/src/__tests__/validate-dev-props.test.ts +0 -56
  124. package/src/__tests__/version.test.ts +0 -35
  125. package/src/__tests__/whoami.test.tsx +0 -278
  126. package/src/__tests__/worker-namespace.test.ts +0 -326
  127. package/src/abort.d.ts +0 -3
  128. package/src/api/dev.ts +0 -210
  129. package/src/api/index.ts +0 -2
  130. package/src/bundle-reporter.tsx +0 -68
  131. package/src/bundle.ts +0 -823
  132. package/src/cfetch/index.ts +0 -160
  133. package/src/cfetch/internal.ts +0 -263
  134. package/src/cli.ts +0 -28
  135. package/src/config/README.md +0 -107
  136. package/src/config/config.ts +0 -275
  137. package/src/config/diagnostics.ts +0 -80
  138. package/src/config/environment.ts +0 -561
  139. package/src/config/index.ts +0 -334
  140. package/src/config/validation-helpers.ts +0 -597
  141. package/src/config/validation.ts +0 -2103
  142. package/src/config-cache.ts +0 -85
  143. package/src/create-worker-preview.ts +0 -282
  144. package/src/create-worker-upload-form.ts +0 -316
  145. package/src/d1/backups.tsx +0 -218
  146. package/src/d1/constants.ts +0 -2
  147. package/src/d1/create.tsx +0 -63
  148. package/src/d1/delete.tsx +0 -56
  149. package/src/d1/execute.tsx +0 -352
  150. package/src/d1/formatTimeAgo.ts +0 -14
  151. package/src/d1/index.ts +0 -99
  152. package/src/d1/list.tsx +0 -48
  153. package/src/d1/migrations.tsx +0 -446
  154. package/src/d1/options.ts +0 -22
  155. package/src/d1/types.tsx +0 -24
  156. package/src/d1/utils.ts +0 -48
  157. package/src/delete.ts +0 -108
  158. package/src/deployments.ts +0 -77
  159. package/src/deprecated/index.ts +0 -438
  160. package/src/dev/dev-vars.ts +0 -39
  161. package/src/dev/dev.tsx +0 -590
  162. package/src/dev/get-local-persistence-path.tsx +0 -31
  163. package/src/dev/local.tsx +0 -886
  164. package/src/dev/remote.tsx +0 -603
  165. package/src/dev/start-server.ts +0 -538
  166. package/src/dev/use-esbuild.ts +0 -204
  167. package/src/dev/validate-dev-props.ts +0 -31
  168. package/src/dev-registry.tsx +0 -201
  169. package/src/dev.tsx +0 -905
  170. package/src/dialogs.tsx +0 -168
  171. package/src/dispatch-namespace.ts +0 -207
  172. package/src/durable.ts +0 -102
  173. package/src/entry.ts +0 -329
  174. package/src/environment-variables.ts +0 -50
  175. package/src/errors.ts +0 -11
  176. package/src/git-client.ts +0 -124
  177. package/src/global-wrangler-config-path.ts +0 -26
  178. package/src/https-options.ts +0 -127
  179. package/src/index.tsx +0 -682
  180. package/src/init.ts +0 -970
  181. package/src/inspect.ts +0 -767
  182. package/src/intl-polyfill.d.ts +0 -139
  183. package/src/is-ci.ts +0 -14
  184. package/src/is-interactive.ts +0 -16
  185. package/src/kv/helpers.ts +0 -430
  186. package/src/kv/index.ts +0 -596
  187. package/src/logger.ts +0 -92
  188. package/src/metrics/index.ts +0 -5
  189. package/src/metrics/metrics-config.ts +0 -239
  190. package/src/metrics/metrics-dispatcher.ts +0 -96
  191. package/src/metrics/metrics-usage-headers.ts +0 -24
  192. package/src/metrics/send-event.ts +0 -96
  193. package/src/miniflare-cli/README.md +0 -30
  194. package/src/miniflare-cli/assets.ts +0 -215
  195. package/src/miniflare-cli/index.ts +0 -213
  196. package/src/miniflare-cli/request-context.ts +0 -40
  197. package/src/module-collection.ts +0 -267
  198. package/src/open-in-browser.ts +0 -17
  199. package/src/package-manager.ts +0 -219
  200. package/src/pages/build.tsx +0 -270
  201. package/src/pages/constants.ts +0 -18
  202. package/src/pages/deployment-tails.tsx +0 -284
  203. package/src/pages/deployments.tsx +0 -84
  204. package/src/pages/dev.tsx +0 -708
  205. package/src/pages/errors.ts +0 -66
  206. package/src/pages/functions/buildPlugin.ts +0 -107
  207. package/src/pages/functions/buildWorker.ts +0 -166
  208. package/src/pages/functions/filepath-routing.test.ts +0 -234
  209. package/src/pages/functions/filepath-routing.ts +0 -189
  210. package/src/pages/functions/identifiers.ts +0 -78
  211. package/src/pages/functions/routes-consolidation.test.ts +0 -250
  212. package/src/pages/functions/routes-consolidation.ts +0 -73
  213. package/src/pages/functions/routes-transformation.test.ts +0 -282
  214. package/src/pages/functions/routes-transformation.ts +0 -115
  215. package/src/pages/functions/routes-validation.test.ts +0 -403
  216. package/src/pages/functions/routes-validation.ts +0 -202
  217. package/src/pages/functions/routes.ts +0 -151
  218. package/src/pages/functions.tsx +0 -82
  219. package/src/pages/hash.tsx +0 -13
  220. package/src/pages/index.tsx +0 -102
  221. package/src/pages/projects.tsx +0 -169
  222. package/src/pages/prompt-select-project.tsx +0 -31
  223. package/src/pages/publish.tsx +0 -451
  224. package/src/pages/types.ts +0 -41
  225. package/src/pages/upload.tsx +0 -426
  226. package/src/pages/utils.ts +0 -23
  227. package/src/parse.ts +0 -286
  228. package/src/paths.ts +0 -71
  229. package/src/proxy.ts +0 -689
  230. package/src/publish/index.ts +0 -270
  231. package/src/publish/publish.ts +0 -1035
  232. package/src/pubsub/index.ts +0 -286
  233. package/src/pubsub/pubsub-commands.tsx +0 -624
  234. package/src/queues/cli/commands/consumer/add.ts +0 -71
  235. package/src/queues/cli/commands/consumer/index.ts +0 -22
  236. package/src/queues/cli/commands/consumer/remove.ts +0 -38
  237. package/src/queues/cli/commands/create.ts +0 -25
  238. package/src/queues/cli/commands/delete.ts +0 -26
  239. package/src/queues/cli/commands/index.ts +0 -33
  240. package/src/queues/cli/commands/list.ts +0 -25
  241. package/src/queues/client.ts +0 -135
  242. package/src/r2/constants.ts +0 -4
  243. package/src/r2/helpers.ts +0 -131
  244. package/src/r2/index.ts +0 -289
  245. package/src/routes.ts +0 -140
  246. package/src/secret/index.ts +0 -378
  247. package/src/selfsigned.d.ts +0 -29
  248. package/src/sites.tsx +0 -372
  249. package/src/tail/createTail.ts +0 -379
  250. package/src/tail/filters.ts +0 -277
  251. package/src/tail/index.ts +0 -214
  252. package/src/tail/printing.ts +0 -107
  253. package/src/type-generation.ts +0 -173
  254. package/src/update-check.ts +0 -19
  255. package/src/user/access.ts +0 -69
  256. package/src/user/choose-account.tsx +0 -69
  257. package/src/user/env-vars.ts +0 -46
  258. package/src/user/generate-auth-url.ts +0 -33
  259. package/src/user/generate-random-state.ts +0 -16
  260. package/src/user/index.ts +0 -3
  261. package/src/user/user.tsx +0 -1192
  262. package/src/utils/collectKeyValues.ts +0 -14
  263. package/src/whoami.tsx +0 -169
  264. package/src/worker.ts +0 -245
  265. package/src/yargs-types.ts +0 -24
  266. package/src/zones.ts +0 -191
  267. package/templates/d1-beta-facade.js +0 -205
  268. package/templates/first-party-worker-module-facade.ts +0 -18
  269. package/templates/format-dev-errors.ts +0 -32
  270. package/templates/serve-static-assets.ts +0 -63
  271. package/templates/service-bindings-module-facade.js +0 -54
  272. package/templates/service-bindings-sw-facade.js +0 -42
@@ -1,378 +0,0 @@
1
- import path from "node:path";
2
- import { fetchResult } from "../cfetch";
3
- import { readConfig } from "../config";
4
- import { createWorkerUploadForm } from "../create-worker-upload-form";
5
- import { confirm, prompt } from "../dialogs";
6
- import {
7
- getLegacyScriptName,
8
- isLegacyEnv,
9
- printWranglerBanner,
10
- } from "../index";
11
- import { logger } from "../logger";
12
- import * as metrics from "../metrics";
13
- import { parseJSON, readFileSync } from "../parse";
14
- import { requireAuth } from "../user";
15
-
16
- import type { ConfigPath } from "../index";
17
- import type {
18
- CommonYargsOptions,
19
- YargsOptionsToInterface,
20
- } from "../yargs-types";
21
- import type { Argv } from "yargs";
22
-
23
- export const secret = (secretYargs: Argv<CommonYargsOptions>) => {
24
- return secretYargs
25
- .option("legacy-env", {
26
- type: "boolean",
27
- describe: "Use legacy environments",
28
- hidden: true,
29
- })
30
- .command(
31
- "put <key>",
32
- "Create or update a secret variable for a Worker",
33
- (yargs) => {
34
- return yargs
35
- .positional("key", {
36
- describe: "The variable name to be accessible in the Worker",
37
- type: "string",
38
- })
39
- .option("name", {
40
- describe: "Name of the Worker",
41
- type: "string",
42
- requiresArg: true,
43
- });
44
- },
45
- async (args) => {
46
- await printWranglerBanner();
47
- const config = readConfig(args.config as ConfigPath, args);
48
-
49
- const scriptName = getLegacyScriptName(args, config);
50
- if (!scriptName) {
51
- throw new Error(
52
- "Required Worker name missing. Please specify the Worker name in wrangler.toml, or pass it as an argument with `--name <worker-name>`"
53
- );
54
- }
55
-
56
- const accountId = await requireAuth(config);
57
-
58
- const isInteractive = process.stdin.isTTY;
59
- const secretValue = trimTrailingWhitespace(
60
- isInteractive
61
- ? await prompt("Enter a secret value:", "password")
62
- : await readFromStdin()
63
- );
64
-
65
- logger.log(
66
- `🌀 Creating the secret for the Worker "${scriptName}" ${
67
- args.env && !isLegacyEnv(config) ? `(${args.env})` : ""
68
- }`
69
- );
70
-
71
- async function submitSecret() {
72
- const url =
73
- !args.env || isLegacyEnv(config)
74
- ? `/accounts/${accountId}/workers/scripts/${scriptName}/secrets`
75
- : `/accounts/${accountId}/workers/services/${scriptName}/environments/${args.env}/secrets`;
76
-
77
- return await fetchResult(url, {
78
- method: "PUT",
79
- headers: { "Content-Type": "application/json" },
80
- body: JSON.stringify({
81
- name: args.key,
82
- text: secretValue,
83
- type: "secret_text",
84
- }),
85
- });
86
- }
87
-
88
- const createDraftWorker = async () => {
89
- // TODO: log a warning
90
- await fetchResult(
91
- !isLegacyEnv(config) && args.env
92
- ? `/accounts/${accountId}/workers/services/${scriptName}/environments/${args.env}`
93
- : `/accounts/${accountId}/workers/scripts/${scriptName}`,
94
- {
95
- method: "PUT",
96
- body: createWorkerUploadForm({
97
- name: scriptName,
98
- main: {
99
- name: scriptName,
100
- content: `export default { fetch() {} }`,
101
- type: "esm",
102
- },
103
- bindings: {
104
- kv_namespaces: [],
105
- vars: {},
106
- durable_objects: { bindings: [] },
107
- queues: [],
108
- r2_buckets: [],
109
- d1_databases: [],
110
- services: [],
111
- wasm_modules: {},
112
- text_blobs: {},
113
- data_blobs: {},
114
- dispatch_namespaces: [],
115
- logfwdr: { schema: undefined, bindings: [] },
116
- unsafe: [],
117
- },
118
- modules: [],
119
- migrations: undefined,
120
- compatibility_date: undefined,
121
- compatibility_flags: undefined,
122
- usage_model: undefined,
123
- keepVars: false, // this doesn't matter since it's a new script anyway
124
- logpush: false,
125
- }),
126
- }
127
- );
128
- };
129
-
130
- function isMissingWorkerError(e: unknown): e is { code: 10007 } {
131
- return (
132
- typeof e === "object" &&
133
- e !== null &&
134
- (e as { code: number }).code === 10007
135
- );
136
- }
137
-
138
- try {
139
- await submitSecret();
140
- await metrics.sendMetricsEvent("create encrypted variable", {
141
- sendMetrics: config.send_metrics,
142
- });
143
- } catch (e) {
144
- if (isMissingWorkerError(e)) {
145
- // create a draft worker and try again
146
- await createDraftWorker();
147
- await submitSecret();
148
- // TODO: delete the draft worker if this failed too?
149
- } else {
150
- throw e;
151
- }
152
- }
153
-
154
- logger.log(`✨ Success! Uploaded secret ${args.key}`);
155
- }
156
- )
157
- .command(
158
- "delete <key>",
159
- "Delete a secret variable from a Worker",
160
- async (yargs) => {
161
- await printWranglerBanner();
162
- return yargs
163
- .positional("key", {
164
- describe: "The variable name to be accessible in the Worker",
165
- type: "string",
166
- })
167
- .option("name", {
168
- describe: "Name of the Worker",
169
- type: "string",
170
- requiresArg: true,
171
- });
172
- },
173
- async (args) => {
174
- const config = readConfig(args.config as ConfigPath, args);
175
-
176
- const scriptName = getLegacyScriptName(args, config);
177
- if (!scriptName) {
178
- throw new Error(
179
- "Required Worker name missing. Please specify the Worker name in wrangler.toml, or pass it as an argument with `--name <worker-name>`"
180
- );
181
- }
182
-
183
- const accountId = await requireAuth(config);
184
-
185
- if (
186
- await confirm(
187
- `Are you sure you want to permanently delete the secret ${
188
- args.key
189
- } on the Worker ${scriptName}${
190
- args.env && !isLegacyEnv(config) ? ` (${args.env})` : ""
191
- }?`
192
- )
193
- ) {
194
- logger.log(
195
- `🌀 Deleting the secret ${args.key} on the Worker ${scriptName}${
196
- args.env && !isLegacyEnv(config) ? ` (${args.env})` : ""
197
- }`
198
- );
199
-
200
- const url =
201
- !args.env || isLegacyEnv(config)
202
- ? `/accounts/${accountId}/workers/scripts/${scriptName}/secrets`
203
- : `/accounts/${accountId}/workers/services/${scriptName}/environments/${args.env}/secrets`;
204
-
205
- await fetchResult(`${url}/${args.key}`, { method: "DELETE" });
206
- await metrics.sendMetricsEvent("delete encrypted variable", {
207
- sendMetrics: config.send_metrics,
208
- });
209
- logger.log(`✨ Success! Deleted secret ${args.key}`);
210
- }
211
- }
212
- )
213
- .command(
214
- "list",
215
- "List all secrets for a Worker",
216
- (yargs) => {
217
- return yargs.option("name", {
218
- describe: "Name of the Worker",
219
- type: "string",
220
- requiresArg: true,
221
- });
222
- },
223
- async (args) => {
224
- const config = readConfig(args.config as ConfigPath, args);
225
-
226
- const scriptName = getLegacyScriptName(args, config);
227
- if (!scriptName) {
228
- throw new Error(
229
- "Required Worker name missing. Please specify the Worker name in wrangler.toml, or pass it as an argument with `--name <worker-name>`"
230
- );
231
- }
232
-
233
- const accountId = await requireAuth(config);
234
-
235
- const url =
236
- !args.env || isLegacyEnv(config)
237
- ? `/accounts/${accountId}/workers/scripts/${scriptName}/secrets`
238
- : `/accounts/${accountId}/workers/services/${scriptName}/environments/${args.env}/secrets`;
239
-
240
- logger.log(JSON.stringify(await fetchResult(url), null, " "));
241
- await metrics.sendMetricsEvent("list encrypted variables", {
242
- sendMetrics: config.send_metrics,
243
- });
244
- }
245
- );
246
- };
247
-
248
- export const secretBulkOptions = (yargs: Argv<CommonYargsOptions>) => {
249
- return yargs
250
- .positional("json", {
251
- describe: `The JSON file of key-value pairs to upload, in form {"key": value, ...}`,
252
- type: "string",
253
- demandOption: "true",
254
- })
255
- .option("name", {
256
- describe: "Name of the Worker",
257
- type: "string",
258
- requiresArg: true,
259
- });
260
- };
261
-
262
- /**
263
- * Remove trailing white space from inputs.
264
- * Matching Wrangler legacy behavior with handling inputs
265
- */
266
- function trimTrailingWhitespace(str: string) {
267
- return str.trimEnd();
268
- }
269
-
270
- /**
271
- * Get a promise to the streamed input from stdin.
272
- *
273
- * This function can be used to grab the incoming stream of data from, say,
274
- * piping the output of another process into the wrangler process.
275
- */
276
- function readFromStdin(): Promise<string> {
277
- return new Promise((resolve, reject) => {
278
- const stdin = process.stdin;
279
- const chunks: string[] = [];
280
-
281
- // When there is data ready to be read, the `readable` event will be triggered.
282
- // In the handler for `readable` we call `read()` over and over until all the available data has been read.
283
- stdin.on("readable", () => {
284
- let chunk;
285
- while (null !== (chunk = stdin.read())) {
286
- chunks.push(chunk);
287
- }
288
- });
289
-
290
- // When the streamed data is complete the `end` event will be triggered.
291
- // In the handler for `end` we join the chunks together and resolve the promise.
292
- stdin.on("end", () => {
293
- resolve(chunks.join(""));
294
- });
295
-
296
- // If there is an `error` event then the handler will reject the promise.
297
- stdin.on("error", (err) => {
298
- reject(err);
299
- });
300
- });
301
- }
302
-
303
- type SecretBulkArgs = YargsOptionsToInterface<typeof secretBulkOptions>;
304
-
305
- export const secretBulkHandler = async (secretBulkArgs: SecretBulkArgs) => {
306
- await printWranglerBanner();
307
- const config = readConfig(
308
- secretBulkArgs.config as ConfigPath,
309
- secretBulkArgs
310
- );
311
-
312
- const scriptName = getLegacyScriptName(secretBulkArgs, config);
313
- if (!scriptName) {
314
- throw new Error(
315
- "Required Worker name missing. Please specify the Worker name in wrangler.toml, or pass it as an argument with `--name <worker-name>`"
316
- );
317
- }
318
-
319
- const accountId = await requireAuth(config);
320
-
321
- logger.log(
322
- `🌀 Creating the secrets for the Worker "${scriptName}" ${
323
- secretBulkArgs.env && !isLegacyEnv(config)
324
- ? `(${secretBulkArgs.env})`
325
- : ""
326
- }`
327
- );
328
- const jsonFilePath = path.resolve(secretBulkArgs.json);
329
- const content = parseJSON<Record<string, string>>(
330
- readFileSync(jsonFilePath),
331
- jsonFilePath
332
- );
333
- for (const key in content) {
334
- if (typeof content[key] !== "string") {
335
- throw new Error(
336
- `The value for ${key} in ${jsonFilePath} is not a string.`
337
- );
338
- }
339
- }
340
-
341
- const url =
342
- !secretBulkArgs.env || isLegacyEnv(config)
343
- ? `/accounts/${accountId}/workers/scripts/${scriptName}/secrets`
344
- : `/accounts/${accountId}/workers/services/${scriptName}/environments/${secretBulkArgs.env}/secrets`;
345
- // Until we have a bulk route for secrets, we need to make a request for each key/value pair
346
- const bulkOutcomes = await Promise.all(
347
- Object.entries(content).map(async ([key, value]) => {
348
- return fetchResult(url, {
349
- method: "PUT",
350
- headers: { "Content-Type": "application/json" },
351
- body: JSON.stringify({
352
- name: key,
353
- text: value,
354
- type: "secret_text",
355
- }),
356
- })
357
- .then(() => {
358
- logger.log(`✨ Successfully created secret for key: ${key}`);
359
- return true;
360
- })
361
- .catch((e) => {
362
- logger.error(
363
- `🚨 Error uploading secret for key: ${key}:
364
- ${e.message}`
365
- );
366
- return false;
367
- });
368
- })
369
- );
370
- const successes = bulkOutcomes.filter((outcome) => outcome).length;
371
- const failures = bulkOutcomes.length - successes;
372
- logger.log("");
373
- logger.log("Finished processing secrets JSON file:");
374
- logger.log(`✨ ${successes} secrets successfully uploaded`);
375
- if (failures > 0) {
376
- logger.log(`🚨 ${failures} secrets failed to upload`);
377
- }
378
- };
@@ -1,29 +0,0 @@
1
- declare module "selfsigned" {
2
- import type { pki } from "node-forge";
3
-
4
- export type Attributes = pki.CertificateField[];
5
-
6
- export interface Options {
7
- days?: number;
8
- keySize?: number;
9
- extensions?: unknown[];
10
- algorithm?: string;
11
- pkcs7?: boolean;
12
- clientCertificate?: boolean;
13
- clientCertificateCN?: string;
14
- }
15
-
16
- export interface Certificate {
17
- private: string;
18
- public: string;
19
- cert: string;
20
- fingerprint: string;
21
- }
22
-
23
- export function generate(attrs?: Attributes, options?: Options): Certificate;
24
- export function generate(
25
- attrs: Attributes,
26
- options: Options,
27
- callback: (err: Error, certificate: Certificate) => void
28
- ): void;
29
- }