wrangler 0.0.0-e6733a3 → 0.0.0-e7a0cd5b

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 (302) hide show
  1. package/Cloudflare_CA.pem +18 -0
  2. package/README.md +47 -14
  3. package/bin/wrangler.js +160 -28
  4. package/kv-asset-handler.js +1 -0
  5. package/miniflare-dist/index.mjs +6316 -0
  6. package/package.json +190 -124
  7. package/src/__tests__/access.test.ts +25 -0
  8. package/src/__tests__/api-dev.test.ts +209 -0
  9. package/src/__tests__/api-devregistry.test.js +57 -0
  10. package/src/__tests__/api.test.ts +80 -0
  11. package/src/__tests__/config-cache-without-cache-dir.test.ts +38 -0
  12. package/src/__tests__/config-cache.test.ts +42 -0
  13. package/src/__tests__/configuration.test.ts +4028 -0
  14. package/src/__tests__/d1.test.ts +72 -0
  15. package/src/__tests__/delete.test.ts +230 -0
  16. package/src/__tests__/deployments.test.ts +95 -0
  17. package/src/__tests__/dev.test.tsx +1505 -62
  18. package/src/__tests__/dialogs.test.tsx +40 -0
  19. package/src/__tests__/generate.test.ts +235 -0
  20. package/src/__tests__/get-host-from-url.test.ts +16 -0
  21. package/src/__tests__/guess-worker-format.test.ts +85 -0
  22. package/src/__tests__/{clipboardy-mock.js → helpers/clipboardy-mock.js} +0 -0
  23. package/src/__tests__/helpers/cmd-shim.d.ts +11 -0
  24. package/src/__tests__/helpers/mock-account-id.ts +48 -0
  25. package/src/__tests__/helpers/mock-bin.ts +36 -0
  26. package/src/__tests__/helpers/mock-cfetch.ts +333 -0
  27. package/src/__tests__/helpers/mock-console.ts +106 -0
  28. package/src/__tests__/helpers/mock-dialogs.ts +153 -0
  29. package/src/__tests__/helpers/mock-get-zone-from-host.ts +8 -0
  30. package/src/__tests__/helpers/mock-http-server.ts +46 -0
  31. package/src/__tests__/helpers/mock-istty.ts +74 -0
  32. package/src/__tests__/helpers/mock-known-routes.ts +7 -0
  33. package/src/__tests__/helpers/mock-kv.ts +33 -0
  34. package/src/__tests__/helpers/mock-oauth-flow.ts +252 -0
  35. package/src/__tests__/helpers/mock-process.ts +39 -0
  36. package/src/__tests__/helpers/mock-stdin.ts +108 -0
  37. package/src/__tests__/helpers/mock-web-socket.ts +29 -0
  38. package/src/__tests__/helpers/msw/handlers/access.ts +13 -0
  39. package/src/__tests__/helpers/msw/handlers/deployments.ts +59 -0
  40. package/src/__tests__/helpers/msw/handlers/namespaces.ts +104 -0
  41. package/src/__tests__/helpers/msw/handlers/oauth.ts +36 -0
  42. package/src/__tests__/helpers/msw/handlers/r2.ts +80 -0
  43. package/src/__tests__/helpers/msw/handlers/script.ts +75 -0
  44. package/src/__tests__/helpers/msw/handlers/user.ts +63 -0
  45. package/src/__tests__/helpers/msw/handlers/zones.ts +22 -0
  46. package/src/__tests__/helpers/msw/index.ts +21 -0
  47. package/src/__tests__/helpers/run-in-tmp.ts +38 -0
  48. package/src/__tests__/helpers/run-wrangler.ts +16 -0
  49. package/src/__tests__/helpers/worker-scripts/child-wrangler.toml +1 -0
  50. package/src/__tests__/helpers/worker-scripts/hello-world-worker.js +5 -0
  51. package/src/__tests__/helpers/worker-scripts/hello-world-wrangler.toml +1 -0
  52. package/src/__tests__/helpers/worker-scripts/parent-worker.js +8 -0
  53. package/src/__tests__/helpers/worker-scripts/parent-wrangler.toml +5 -0
  54. package/src/__tests__/helpers/write-worker-source.ts +31 -0
  55. package/src/__tests__/helpers/write-wrangler-toml.ts +17 -0
  56. package/src/__tests__/https-options.test.ts +163 -0
  57. package/src/__tests__/index.test.ts +259 -284
  58. package/src/__tests__/init.test.ts +2900 -0
  59. package/src/__tests__/jest.setup.ts +190 -10
  60. package/src/__tests__/kv.test.ts +1668 -1091
  61. package/src/__tests__/logger.test.ts +141 -0
  62. package/src/__tests__/metrics.test.ts +450 -0
  63. package/src/__tests__/middleware.scheduled.test.ts +135 -0
  64. package/src/__tests__/middleware.test.ts +726 -0
  65. package/src/__tests__/package-manager.test.ts +353 -0
  66. package/src/__tests__/pages.test.ts +2223 -0
  67. package/src/__tests__/parse.test.ts +330 -0
  68. package/src/__tests__/paths.test.ts +39 -0
  69. package/src/__tests__/publish.test.ts +7660 -0
  70. package/src/__tests__/pubsub.test.ts +370 -0
  71. package/src/__tests__/queues.test.ts +371 -0
  72. package/src/__tests__/r2.test.ts +376 -0
  73. package/src/__tests__/route.test.ts +45 -0
  74. package/src/__tests__/secret.test.ts +644 -0
  75. package/src/__tests__/tail.test.ts +800 -0
  76. package/src/__tests__/test-old-node-version.js +31 -0
  77. package/src/__tests__/type-generation.test.ts +217 -0
  78. package/src/__tests__/user.test.ts +155 -0
  79. package/src/__tests__/utils-collectKeyValues.test.ts +47 -0
  80. package/src/__tests__/validate-dev-props.test.ts +56 -0
  81. package/src/__tests__/version.test.ts +35 -0
  82. package/src/__tests__/whoami.test.tsx +278 -0
  83. package/src/__tests__/worker-namespace.test.ts +326 -0
  84. package/src/abort.d.ts +3 -0
  85. package/src/api/dev.ts +208 -0
  86. package/src/api/index.ts +2 -0
  87. package/src/bundle-reporter.tsx +68 -0
  88. package/src/bundle.ts +785 -0
  89. package/src/cfetch/index.ts +128 -70
  90. package/src/cfetch/internal.ts +240 -46
  91. package/src/cli.ts +25 -6
  92. package/src/config/README.md +107 -0
  93. package/src/config/config.ts +275 -0
  94. package/src/config/diagnostics.ts +80 -0
  95. package/src/config/environment.ts +563 -0
  96. package/src/config/index.ts +342 -0
  97. package/src/config/validation-helpers.ts +597 -0
  98. package/src/config/validation.ts +2113 -0
  99. package/src/config-cache.ts +85 -0
  100. package/src/create-worker-preview.ts +282 -0
  101. package/src/create-worker-upload-form.ts +321 -0
  102. package/src/d1/backups.tsx +218 -0
  103. package/src/d1/create.tsx +54 -0
  104. package/src/d1/delete.tsx +56 -0
  105. package/src/d1/execute.tsx +299 -0
  106. package/src/d1/formatTimeAgo.ts +14 -0
  107. package/src/d1/index.ts +76 -0
  108. package/src/d1/list.tsx +48 -0
  109. package/src/d1/options.ts +12 -0
  110. package/src/d1/types.tsx +14 -0
  111. package/src/d1/utils.ts +39 -0
  112. package/src/delete.ts +108 -0
  113. package/src/deployments.ts +74 -0
  114. package/src/deprecated/index.ts +438 -0
  115. package/src/dev/dev-vars.ts +39 -0
  116. package/src/dev/dev.tsx +587 -0
  117. package/src/dev/get-local-persistence-path.tsx +31 -0
  118. package/src/dev/local.tsx +717 -0
  119. package/src/dev/remote.tsx +603 -0
  120. package/src/dev/start-server.ts +513 -0
  121. package/src/dev/use-esbuild.ts +204 -0
  122. package/src/dev/validate-dev-props.ts +31 -0
  123. package/src/dev-registry.tsx +201 -0
  124. package/src/dev.tsx +848 -750
  125. package/src/dialogs.tsx +146 -60
  126. package/src/dispatch-namespace.ts +207 -0
  127. package/src/durable.ts +102 -0
  128. package/src/entry.ts +329 -0
  129. package/src/environment-variables.ts +50 -0
  130. package/src/errors.ts +11 -0
  131. package/src/git-client.ts +124 -0
  132. package/src/global-wrangler-config-path.ts +26 -0
  133. package/src/https-options.ts +127 -0
  134. package/src/index.tsx +669 -1959
  135. package/src/init.ts +970 -0
  136. package/src/inspect.ts +720 -477
  137. package/src/intl-polyfill.d.ts +139 -0
  138. package/src/is-ci.ts +14 -0
  139. package/src/is-interactive.ts +16 -0
  140. package/src/kv/helpers.ts +430 -0
  141. package/src/kv/index.ts +596 -0
  142. package/src/logger.ts +92 -0
  143. package/src/metrics/index.ts +5 -0
  144. package/src/metrics/metrics-config.ts +239 -0
  145. package/src/metrics/metrics-dispatcher.ts +96 -0
  146. package/src/metrics/metrics-usage-headers.ts +24 -0
  147. package/src/metrics/send-event.ts +94 -0
  148. package/src/miniflare-cli/README.md +30 -0
  149. package/src/miniflare-cli/assets.ts +215 -0
  150. package/src/miniflare-cli/index.ts +213 -0
  151. package/src/miniflare-cli/request-context.ts +40 -0
  152. package/src/module-collection.ts +256 -53
  153. package/src/open-in-browser.ts +17 -0
  154. package/src/package-manager.ts +219 -0
  155. package/src/pages/build.tsx +238 -0
  156. package/src/pages/constants.ts +18 -0
  157. package/src/pages/deployments.tsx +106 -0
  158. package/src/pages/dev.tsx +693 -0
  159. package/src/pages/errors.ts +66 -0
  160. package/src/pages/functions/buildPlugin.ts +110 -0
  161. package/src/pages/functions/buildWorker.ts +156 -0
  162. package/src/pages/functions/filepath-routing.test.ts +234 -0
  163. package/src/pages/functions/filepath-routing.ts +189 -0
  164. package/src/pages/functions/identifiers.ts +78 -0
  165. package/src/pages/functions/routes-consolidation.test.ts +250 -0
  166. package/src/pages/functions/routes-consolidation.ts +73 -0
  167. package/src/pages/functions/routes-transformation.test.ts +282 -0
  168. package/src/pages/functions/routes-transformation.ts +115 -0
  169. package/src/pages/functions/routes-validation.test.ts +403 -0
  170. package/src/pages/functions/routes-validation.ts +202 -0
  171. package/src/pages/functions/routes.ts +151 -0
  172. package/src/pages/functions.tsx +82 -0
  173. package/src/pages/hash.tsx +13 -0
  174. package/src/pages/index.tsx +94 -0
  175. package/src/pages/projects.tsx +169 -0
  176. package/src/pages/publish.tsx +436 -0
  177. package/src/pages/types.ts +49 -0
  178. package/src/pages/upload.tsx +425 -0
  179. package/src/pages/utils.ts +12 -0
  180. package/src/parse.ts +286 -0
  181. package/src/paths.ts +71 -0
  182. package/src/proxy.ts +647 -252
  183. package/src/publish/index.ts +270 -0
  184. package/src/publish/publish.ts +1035 -0
  185. package/src/pubsub/index.ts +286 -0
  186. package/src/pubsub/pubsub-commands.tsx +624 -0
  187. package/src/queues/cli/commands/consumer/add.ts +71 -0
  188. package/src/queues/cli/commands/consumer/index.ts +22 -0
  189. package/src/queues/cli/commands/consumer/remove.ts +38 -0
  190. package/src/queues/cli/commands/create.ts +25 -0
  191. package/src/queues/cli/commands/delete.ts +26 -0
  192. package/src/queues/cli/commands/index.ts +33 -0
  193. package/src/queues/cli/commands/list.ts +25 -0
  194. package/src/queues/client.ts +135 -0
  195. package/src/r2/helpers.ts +131 -0
  196. package/src/r2/index.ts +277 -0
  197. package/src/routes.ts +140 -0
  198. package/src/secret/index.ts +379 -0
  199. package/src/selfsigned.d.ts +29 -0
  200. package/src/sites.tsx +357 -99
  201. package/src/tail/createTail.ts +315 -0
  202. package/src/tail/filters.ts +277 -0
  203. package/src/tail/index.ts +214 -0
  204. package/src/tail/printing.ts +107 -0
  205. package/src/type-generation.ts +159 -0
  206. package/src/update-check.ts +19 -0
  207. package/src/user/access.ts +69 -0
  208. package/src/user/choose-account.tsx +69 -0
  209. package/src/user/env-vars.ts +46 -0
  210. package/src/user/generate-auth-url.ts +33 -0
  211. package/src/user/generate-random-state.ts +16 -0
  212. package/src/user/index.ts +3 -0
  213. package/src/user/user.tsx +1192 -0
  214. package/src/utils/collectKeyValues.ts +14 -0
  215. package/src/whoami.tsx +169 -0
  216. package/src/worker.ts +242 -0
  217. package/src/yargs-types.ts +20 -0
  218. package/src/zones.ts +191 -0
  219. package/templates/__tests__/pages-dev-util.test.ts +128 -0
  220. package/templates/checked-fetch.js +17 -0
  221. package/templates/d1-beta-facade.js +174 -0
  222. package/templates/experimental-local-cache-stubs.js +27 -0
  223. package/templates/first-party-worker-module-facade.ts +18 -0
  224. package/templates/format-dev-errors.ts +32 -0
  225. package/templates/gitignore +171 -0
  226. package/templates/init-tests/test-jest-new-worker.js +25 -0
  227. package/templates/init-tests/test-vitest-new-worker.js +26 -0
  228. package/templates/middleware/common.ts +62 -0
  229. package/templates/middleware/loader-modules.ts +84 -0
  230. package/templates/middleware/loader-sw.ts +213 -0
  231. package/templates/middleware/middleware-pretty-error.ts +40 -0
  232. package/templates/middleware/middleware-scheduled.ts +15 -0
  233. package/templates/new-worker-scheduled.js +17 -0
  234. package/templates/new-worker-scheduled.ts +32 -0
  235. package/templates/new-worker.js +15 -0
  236. package/templates/new-worker.ts +30 -0
  237. package/templates/no-op-worker.js +10 -0
  238. package/templates/pages-dev-pipeline.ts +28 -0
  239. package/templates/pages-dev-util.ts +52 -0
  240. package/templates/pages-shim.ts +9 -0
  241. package/templates/pages-template-plugin.ts +171 -0
  242. package/templates/pages-template-worker.ts +189 -0
  243. package/templates/serve-static-assets.ts +63 -0
  244. package/templates/service-bindings-module-facade.js +54 -0
  245. package/templates/service-bindings-sw-facade.js +42 -0
  246. package/templates/tsconfig.json +106 -0
  247. package/wrangler-dist/cli.d.ts +892 -0
  248. package/wrangler-dist/cli.js +142402 -103276
  249. package/pages/functions/buildWorker.ts +0 -62
  250. package/pages/functions/filepath-routing.test.ts +0 -39
  251. package/pages/functions/filepath-routing.ts +0 -221
  252. package/pages/functions/identifiers.ts +0 -78
  253. package/pages/functions/routes.ts +0 -158
  254. package/pages/functions/template-worker.ts +0 -144
  255. package/src/__tests__/mock-cfetch.ts +0 -171
  256. package/src/__tests__/mock-dialogs.ts +0 -65
  257. package/src/__tests__/run-in-tmp.ts +0 -19
  258. package/src/__tests__/run-wrangler.ts +0 -32
  259. package/src/api/form_data.ts +0 -131
  260. package/src/api/preview.ts +0 -128
  261. package/src/api/worker.ts +0 -155
  262. package/src/config.ts +0 -487
  263. package/src/kv.tsx +0 -267
  264. package/src/pages.tsx +0 -1031
  265. package/src/publish.ts +0 -358
  266. package/src/tail.tsx +0 -73
  267. package/src/user.tsx +0 -1025
  268. package/static-asset-facade.js +0 -47
  269. package/vendor/@cloudflare/kv-asset-handler/CHANGELOG.md +0 -332
  270. package/vendor/@cloudflare/kv-asset-handler/LICENSE_APACHE +0 -176
  271. package/vendor/@cloudflare/kv-asset-handler/LICENSE_MIT +0 -25
  272. package/vendor/@cloudflare/kv-asset-handler/README.md +0 -245
  273. package/vendor/@cloudflare/kv-asset-handler/dist/index.d.ts +0 -32
  274. package/vendor/@cloudflare/kv-asset-handler/dist/index.js +0 -354
  275. package/vendor/@cloudflare/kv-asset-handler/dist/mocks.d.ts +0 -13
  276. package/vendor/@cloudflare/kv-asset-handler/dist/mocks.js +0 -148
  277. package/vendor/@cloudflare/kv-asset-handler/dist/test/getAssetFromKV.d.ts +0 -1
  278. package/vendor/@cloudflare/kv-asset-handler/dist/test/getAssetFromKV.js +0 -436
  279. package/vendor/@cloudflare/kv-asset-handler/dist/test/mapRequestToAsset.d.ts +0 -1
  280. package/vendor/@cloudflare/kv-asset-handler/dist/test/mapRequestToAsset.js +0 -40
  281. package/vendor/@cloudflare/kv-asset-handler/dist/test/serveSinglePageApp.d.ts +0 -1
  282. package/vendor/@cloudflare/kv-asset-handler/dist/test/serveSinglePageApp.js +0 -42
  283. package/vendor/@cloudflare/kv-asset-handler/dist/types.d.ts +0 -26
  284. package/vendor/@cloudflare/kv-asset-handler/dist/types.js +0 -31
  285. package/vendor/@cloudflare/kv-asset-handler/package.json +0 -52
  286. package/vendor/@cloudflare/kv-asset-handler/src/index.ts +0 -296
  287. package/vendor/@cloudflare/kv-asset-handler/src/mocks.ts +0 -136
  288. package/vendor/@cloudflare/kv-asset-handler/src/test/getAssetFromKV.ts +0 -464
  289. package/vendor/@cloudflare/kv-asset-handler/src/test/mapRequestToAsset.ts +0 -33
  290. package/vendor/@cloudflare/kv-asset-handler/src/test/serveSinglePageApp.ts +0 -42
  291. package/vendor/@cloudflare/kv-asset-handler/src/types.ts +0 -39
  292. package/vendor/wrangler-mime/CHANGELOG.md +0 -289
  293. package/vendor/wrangler-mime/LICENSE +0 -21
  294. package/vendor/wrangler-mime/Mime.js +0 -97
  295. package/vendor/wrangler-mime/README.md +0 -187
  296. package/vendor/wrangler-mime/cli.js +0 -46
  297. package/vendor/wrangler-mime/index.js +0 -4
  298. package/vendor/wrangler-mime/lite.js +0 -4
  299. package/vendor/wrangler-mime/package.json +0 -52
  300. package/vendor/wrangler-mime/types/other.js +0 -1
  301. package/vendor/wrangler-mime/types/standard.js +0 -1
  302. package/wrangler-dist/cli.js.map +0 -7
@@ -0,0 +1,270 @@
1
+ import path from "node:path";
2
+ import { findWranglerToml, readConfig } from "../config";
3
+ import { getEntry } from "../entry";
4
+ import {
5
+ getRules,
6
+ getScriptName,
7
+ isLegacyEnv,
8
+ printWranglerBanner,
9
+ } from "../index";
10
+ import { logger } from "../logger";
11
+ import * as metrics from "../metrics";
12
+ import { getAssetPaths, getSiteAssetPaths } from "../sites";
13
+ import { requireAuth } from "../user";
14
+ import { collectKeyValues } from "../utils/collectKeyValues";
15
+ import publish from "./publish";
16
+ import type { ConfigPath } from "../index";
17
+ import type {
18
+ CommonYargsOptions,
19
+ YargsOptionsToInterface,
20
+ } from "../yargs-types";
21
+ import type { Argv, ArgumentsCamelCase } from "yargs";
22
+
23
+ export function publishOptions(yargs: Argv<CommonYargsOptions>) {
24
+ return (
25
+ yargs
26
+ .positional("script", {
27
+ describe: "The path to an entry point for your worker",
28
+ type: "string",
29
+ requiresArg: true,
30
+ })
31
+ .option("name", {
32
+ describe: "Name of the worker",
33
+ type: "string",
34
+ requiresArg: true,
35
+ })
36
+ // We want to have a --no-bundle flag, but yargs requires that
37
+ // we also have a --bundle flag (that it adds the --no to by itself)
38
+ // So we make a --bundle flag, but hide it, and then add a --no-bundle flag
39
+ // that's visible to the user but doesn't "do" anything.
40
+ .option("bundle", {
41
+ describe: "Run wrangler's compilation step before publishing",
42
+ type: "boolean",
43
+ hidden: true,
44
+ })
45
+ .option("no-bundle", {
46
+ describe: "Skip internal build steps and directly publish Worker",
47
+ type: "boolean",
48
+ default: false,
49
+ })
50
+ .option("outdir", {
51
+ describe: "Output directory for the bundled worker",
52
+ type: "string",
53
+ requiresArg: true,
54
+ })
55
+ .option("format", {
56
+ choices: ["modules", "service-worker"] as const,
57
+ describe: "Choose an entry type",
58
+ deprecated: true,
59
+ hidden: true,
60
+ })
61
+ .option("compatibility-date", {
62
+ describe: "Date to use for compatibility checks",
63
+ type: "string",
64
+ requiresArg: true,
65
+ })
66
+ .option("compatibility-flags", {
67
+ describe: "Flags to use for compatibility checks",
68
+ alias: "compatibility-flag",
69
+ type: "string",
70
+ requiresArg: true,
71
+ array: true,
72
+ })
73
+ .option("latest", {
74
+ describe: "Use the latest version of the worker runtime",
75
+ type: "boolean",
76
+ default: false,
77
+ })
78
+ .option("experimental-public", {
79
+ describe: "Static assets to be served",
80
+ type: "string",
81
+ requiresArg: true,
82
+ deprecated: true,
83
+ hidden: true,
84
+ })
85
+ .option("assets", {
86
+ describe: "Static assets to be served",
87
+ type: "string",
88
+ requiresArg: true,
89
+ })
90
+ .option("site", {
91
+ describe: "Root folder of static assets for Workers Sites",
92
+ type: "string",
93
+ requiresArg: true,
94
+ })
95
+ .option("site-include", {
96
+ describe:
97
+ "Array of .gitignore-style patterns that match file or directory names from the sites directory. Only matched items will be uploaded.",
98
+ type: "string",
99
+ requiresArg: true,
100
+ array: true,
101
+ })
102
+ .option("site-exclude", {
103
+ describe:
104
+ "Array of .gitignore-style patterns that match file or directory names from the sites directory. Matched items will not be uploaded.",
105
+ type: "string",
106
+ requiresArg: true,
107
+ array: true,
108
+ })
109
+ .option("var", {
110
+ describe:
111
+ "A key-value pair to be injected into the script as a variable",
112
+ type: "string",
113
+ requiresArg: true,
114
+ array: true,
115
+ })
116
+ .option("define", {
117
+ describe: "A key-value pair to be substituted in the script",
118
+ type: "string",
119
+ requiresArg: true,
120
+ array: true,
121
+ })
122
+ .option("triggers", {
123
+ describe: "cron schedules to attach",
124
+ alias: ["schedule", "schedules"],
125
+ type: "string",
126
+ requiresArg: true,
127
+ array: true,
128
+ })
129
+ .option("routes", {
130
+ describe: "Routes to upload",
131
+ alias: "route",
132
+ type: "string",
133
+ requiresArg: true,
134
+ array: true,
135
+ })
136
+ .option("jsx-factory", {
137
+ describe: "The function that is called for each JSX element",
138
+ type: "string",
139
+ requiresArg: true,
140
+ })
141
+ .option("jsx-fragment", {
142
+ describe: "The function that is called for each JSX fragment",
143
+ type: "string",
144
+ requiresArg: true,
145
+ })
146
+ .option("tsconfig", {
147
+ describe: "Path to a custom tsconfig.json file",
148
+ type: "string",
149
+ requiresArg: true,
150
+ })
151
+ .option("minify", {
152
+ describe: "Minify the Worker",
153
+ type: "boolean",
154
+ })
155
+ .option("node-compat", {
156
+ describe: "Enable node.js compatibility",
157
+ type: "boolean",
158
+ })
159
+ .option("dry-run", {
160
+ describe: "Don't actually publish",
161
+ type: "boolean",
162
+ })
163
+ .option("keep-vars", {
164
+ describe:
165
+ "Stop wrangler from deleting vars that are not present in the wrangler.toml\nBy default Wrangler will remove all vars and replace them with those found in the wrangler.toml configuration.\nIf your development approach is to modify vars after deployment via the dashboard you may wish to set this flag.",
166
+ default: false,
167
+ type: "boolean",
168
+ })
169
+ .option("legacy-env", {
170
+ type: "boolean",
171
+ describe: "Use legacy environments",
172
+ hidden: true,
173
+ })
174
+ .option("logpush", {
175
+ type: "boolean",
176
+ describe:
177
+ "Send Trace Events from this worker to Workers Logpush.\nThis will not configure a corresponding Logpush job automatically.",
178
+ })
179
+ );
180
+ }
181
+
182
+ type PublishArgs = YargsOptionsToInterface<typeof publishOptions>;
183
+
184
+ export async function publishHandler(args: ArgumentsCamelCase<PublishArgs>) {
185
+ await printWranglerBanner();
186
+
187
+ const configPath =
188
+ (args.config as ConfigPath) ||
189
+ (args.script && findWranglerToml(path.dirname(args.script)));
190
+ const config = readConfig(configPath, args);
191
+ const entry = await getEntry(args, config, "publish");
192
+ await metrics.sendMetricsEvent(
193
+ "deploy worker script",
194
+ {
195
+ usesTypeScript: /\.tsx?$/.test(entry.file),
196
+ },
197
+ {
198
+ sendMetrics: config.send_metrics,
199
+ }
200
+ );
201
+
202
+ if (args.public) {
203
+ throw new Error("The --public field has been renamed to --assets");
204
+ }
205
+ if (args["experimental-public"]) {
206
+ throw new Error(
207
+ "The --experimental-public field has been renamed to --assets"
208
+ );
209
+ }
210
+
211
+ if ((args.assets || config.assets) && (args.site || config.site)) {
212
+ throw new Error("Cannot use Assets and Workers Sites in the same Worker.");
213
+ }
214
+
215
+ if (args.assets) {
216
+ logger.warn(
217
+ "The --assets argument is experimental and may change or break at any time"
218
+ );
219
+ }
220
+ if (args.latest) {
221
+ logger.warn(
222
+ "Using the latest version of the Workers runtime. To silence this warning, please choose a specific version of the runtime with --compatibility-date, or add a compatibility_date to your wrangler.toml.\n"
223
+ );
224
+ }
225
+
226
+ const cliVars = collectKeyValues(args.var);
227
+ const cliDefines = collectKeyValues(args.define);
228
+
229
+ const accountId = args.dryRun ? undefined : await requireAuth(config);
230
+
231
+ const assetPaths =
232
+ args.assets || config.assets
233
+ ? getAssetPaths(config, args.assets)
234
+ : getSiteAssetPaths(
235
+ config,
236
+ args.site,
237
+ args.siteInclude,
238
+ args.siteExclude
239
+ );
240
+
241
+ await publish({
242
+ config,
243
+ accountId,
244
+ name: getScriptName(args, config),
245
+ rules: getRules(config),
246
+ entry,
247
+ env: args.env,
248
+ compatibilityDate: args.latest
249
+ ? new Date().toISOString().substring(0, 10)
250
+ : args["compatibility-date"],
251
+ compatibilityFlags: args["compatibility-flags"],
252
+ vars: cliVars,
253
+ defines: cliDefines,
254
+ triggers: args.triggers,
255
+ jsxFactory: args["jsx-factory"],
256
+ jsxFragment: args["jsx-fragment"],
257
+ tsconfig: args.tsconfig,
258
+ routes: args.routes,
259
+ assetPaths,
260
+ legacyEnv: isLegacyEnv(config),
261
+ minify: args.minify,
262
+ nodeCompat: args.nodeCompat,
263
+ isWorkersSite: Boolean(args.site || config.site),
264
+ outDir: args.outdir,
265
+ dryRun: args.dryRun,
266
+ noBundle: !(args.bundle ?? !config.no_bundle),
267
+ keepVars: args.keepVars,
268
+ logpush: args.logpush,
269
+ });
270
+ }