wrangler 0.0.0-e5d3690 → 0.0.0-e60dc909

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 (345) hide show
  1. package/Cloudflare_CA.pem +18 -0
  2. package/README.md +47 -14
  3. package/bin/wrangler.js +180 -28
  4. package/kv-asset-handler.js +1 -0
  5. package/miniflare-dist/index.mjs +6364 -0
  6. package/package.json +193 -127
  7. package/src/__tests__/access.test.ts +25 -0
  8. package/src/__tests__/api-dev.test.ts +238 -0
  9. package/src/__tests__/api-devregistry.test.js +64 -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 +4163 -0
  14. package/src/__tests__/d1/d1.test.ts +123 -0
  15. package/src/__tests__/d1/splitter.test.ts +255 -0
  16. package/src/__tests__/delete.test.ts +266 -0
  17. package/src/__tests__/deployments.test.ts +105 -0
  18. package/src/__tests__/dev.test.tsx +1582 -63
  19. package/src/__tests__/generate.test.ts +238 -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-auth-domain.ts +20 -0
  26. package/src/__tests__/helpers/mock-bin.ts +36 -0
  27. package/src/__tests__/helpers/mock-cfetch.ts +278 -0
  28. package/src/__tests__/helpers/mock-console.ts +106 -0
  29. package/src/__tests__/helpers/mock-dialogs.ts +137 -0
  30. package/src/__tests__/helpers/mock-get-zone-from-host.ts +8 -0
  31. package/src/__tests__/helpers/mock-http-server.ts +46 -0
  32. package/src/__tests__/helpers/mock-istty.ts +74 -0
  33. package/src/__tests__/helpers/mock-known-routes.ts +7 -0
  34. package/src/__tests__/helpers/mock-kv.ts +33 -0
  35. package/src/__tests__/helpers/mock-oauth-flow.ts +271 -0
  36. package/src/__tests__/helpers/mock-process.ts +34 -0
  37. package/src/__tests__/helpers/mock-stdin.ts +108 -0
  38. package/src/__tests__/helpers/mock-web-socket.ts +29 -0
  39. package/src/__tests__/helpers/msw/blob-worker.cjs +19 -0
  40. package/src/__tests__/helpers/msw/handlers/access.ts +13 -0
  41. package/src/__tests__/helpers/msw/handlers/deployments.ts +59 -0
  42. package/src/__tests__/helpers/msw/handlers/namespaces.ts +104 -0
  43. package/src/__tests__/helpers/msw/handlers/oauth.ts +31 -0
  44. package/src/__tests__/helpers/msw/handlers/r2.ts +80 -0
  45. package/src/__tests__/helpers/msw/handlers/script.ts +75 -0
  46. package/src/__tests__/helpers/msw/handlers/user.ts +63 -0
  47. package/src/__tests__/helpers/msw/handlers/zones.ts +22 -0
  48. package/src/__tests__/helpers/msw/index.ts +21 -0
  49. package/src/__tests__/helpers/msw/read-file-sync.js +61 -0
  50. package/src/__tests__/helpers/run-in-tmp.ts +38 -0
  51. package/src/__tests__/helpers/run-wrangler.ts +16 -0
  52. package/src/__tests__/helpers/worker-scripts/child-wrangler.toml +1 -0
  53. package/src/__tests__/helpers/worker-scripts/hello-world-worker.js +5 -0
  54. package/src/__tests__/helpers/worker-scripts/hello-world-wrangler.toml +1 -0
  55. package/src/__tests__/helpers/worker-scripts/parent-worker.js +8 -0
  56. package/src/__tests__/helpers/worker-scripts/parent-wrangler.toml +5 -0
  57. package/src/__tests__/helpers/write-worker-source.ts +31 -0
  58. package/src/__tests__/helpers/write-wrangler-toml.ts +17 -0
  59. package/src/__tests__/https-options.test.ts +163 -0
  60. package/src/__tests__/index.test.ts +265 -286
  61. package/src/__tests__/init.test.ts +3175 -0
  62. package/src/__tests__/jest.setup.ts +190 -14
  63. package/src/__tests__/kv.test.ts +1780 -1191
  64. package/src/__tests__/logger.test.ts +141 -0
  65. package/src/__tests__/logout.test.ts +47 -0
  66. package/src/__tests__/metrics.test.ts +493 -0
  67. package/src/__tests__/middleware.scheduled.test.ts +145 -0
  68. package/src/__tests__/middleware.test.ts +750 -0
  69. package/src/__tests__/package-manager.test.ts +353 -0
  70. package/src/__tests__/pages-deployment-tail.test.ts +884 -0
  71. package/src/__tests__/pages.test.ts +2899 -0
  72. package/src/__tests__/parse.test.ts +330 -0
  73. package/src/__tests__/paths.test.ts +39 -0
  74. package/src/__tests__/publish.test.ts +7740 -643
  75. package/src/__tests__/pubsub.test.ts +490 -0
  76. package/src/__tests__/queues.test.ts +522 -0
  77. package/src/__tests__/r2.test.ts +393 -0
  78. package/src/__tests__/route.test.ts +45 -0
  79. package/src/__tests__/secret.test.ts +701 -0
  80. package/src/__tests__/tail.test.ts +905 -0
  81. package/src/__tests__/test-old-node-version.js +31 -0
  82. package/src/__tests__/tsconfig-sanity.ts +12 -0
  83. package/src/__tests__/tsconfig.json +8 -0
  84. package/src/__tests__/tsconfig.tsbuildinfo +1 -0
  85. package/src/__tests__/type-generation.test.ts +233 -0
  86. package/src/__tests__/user.test.ts +129 -0
  87. package/src/__tests__/utils-collectKeyValues.test.ts +47 -0
  88. package/src/__tests__/validate-dev-props.test.ts +56 -0
  89. package/src/__tests__/version.test.ts +35 -0
  90. package/src/__tests__/whoami.test.tsx +179 -126
  91. package/src/__tests__/worker-namespace.test.ts +326 -0
  92. package/src/abort.d.ts +3 -0
  93. package/src/api/dev.ts +247 -0
  94. package/src/api/index.ts +2 -0
  95. package/src/bundle-reporter.ts +68 -0
  96. package/src/bundle.ts +823 -0
  97. package/src/cfetch/index.ts +127 -79
  98. package/src/cfetch/internal.ts +238 -48
  99. package/src/cli.ts +25 -6
  100. package/src/config/README.md +107 -0
  101. package/src/config/config.ts +275 -0
  102. package/src/config/diagnostics.ts +80 -0
  103. package/src/config/environment.ts +577 -0
  104. package/src/config/index.ts +358 -0
  105. package/src/config/validation-helpers.ts +597 -0
  106. package/src/config/validation.ts +2151 -0
  107. package/src/config-cache.ts +85 -0
  108. package/src/create-worker-preview.ts +282 -0
  109. package/src/create-worker-upload-form.ts +325 -0
  110. package/src/d1/backups.tsx +223 -0
  111. package/src/d1/constants.ts +2 -0
  112. package/src/d1/create.tsx +63 -0
  113. package/src/d1/delete.ts +56 -0
  114. package/src/d1/execute.tsx +323 -0
  115. package/src/d1/formatTimeAgo.ts +14 -0
  116. package/src/d1/index.ts +101 -0
  117. package/src/d1/list.tsx +48 -0
  118. package/src/d1/migrations/apply.tsx +197 -0
  119. package/src/d1/migrations/create.tsx +77 -0
  120. package/src/d1/migrations/helpers.ts +147 -0
  121. package/src/d1/migrations/index.ts +3 -0
  122. package/src/d1/migrations/list.tsx +79 -0
  123. package/src/d1/migrations/options.ts +18 -0
  124. package/src/d1/options.ts +22 -0
  125. package/src/d1/splitter.ts +161 -0
  126. package/src/d1/types.ts +24 -0
  127. package/src/d1/utils.ts +48 -0
  128. package/src/delete.ts +103 -0
  129. package/src/deployments.ts +83 -0
  130. package/src/deprecated/index.ts +145 -0
  131. package/src/dev/dev-vars.ts +39 -0
  132. package/src/dev/dev.tsx +614 -0
  133. package/src/dev/get-local-persistence-path.ts +31 -0
  134. package/src/dev/local.tsx +932 -0
  135. package/src/dev/remote.tsx +630 -0
  136. package/src/dev/start-server.ts +543 -0
  137. package/src/dev/use-esbuild.ts +204 -0
  138. package/src/dev/validate-dev-props.ts +31 -0
  139. package/src/dev-registry.ts +201 -0
  140. package/src/dev.tsx +927 -757
  141. package/src/dialogs.ts +136 -0
  142. package/src/dispatch-namespace.ts +207 -0
  143. package/src/docs/index.ts +97 -0
  144. package/src/durable.ts +102 -0
  145. package/src/entry.ts +329 -0
  146. package/src/environment-variables/factory.ts +88 -0
  147. package/src/environment-variables/misc-variables.ts +30 -0
  148. package/src/errors.ts +11 -0
  149. package/src/generate/index.ts +300 -0
  150. package/src/git-client.ts +135 -0
  151. package/src/global-wrangler-config-path.ts +26 -0
  152. package/src/https-options.ts +127 -0
  153. package/src/index.ts +694 -0
  154. package/src/init.ts +1024 -0
  155. package/src/inspect.ts +720 -496
  156. package/src/intl-polyfill.d.ts +139 -0
  157. package/src/is-ci.ts +14 -0
  158. package/src/is-interactive.ts +16 -0
  159. package/src/jest.d.ts +4 -0
  160. package/src/kv/helpers.ts +430 -0
  161. package/src/kv/index.ts +596 -0
  162. package/src/logger.ts +104 -0
  163. package/src/metrics/index.ts +5 -0
  164. package/src/metrics/metrics-config.ts +239 -0
  165. package/src/metrics/metrics-dispatcher.ts +96 -0
  166. package/src/metrics/metrics-usage-headers.ts +24 -0
  167. package/src/metrics/send-event.ts +97 -0
  168. package/src/miniflare-cli/README.md +30 -0
  169. package/src/miniflare-cli/assets.ts +250 -0
  170. package/src/miniflare-cli/index.ts +210 -0
  171. package/src/miniflare-cli/request-context.ts +40 -0
  172. package/src/miniflare-cli/tsconfig.json +9 -0
  173. package/src/miniflare-cli/tsconfig.tsbuildinfo +1 -0
  174. package/src/miniflare-cli/types.ts +11 -0
  175. package/src/module-collection.ts +256 -53
  176. package/src/open-in-browser.ts +17 -0
  177. package/src/package-manager.ts +219 -0
  178. package/src/pages/build.ts +270 -0
  179. package/src/pages/constants.ts +18 -0
  180. package/src/pages/deployment-tails.ts +284 -0
  181. package/src/pages/deployments.tsx +84 -0
  182. package/src/pages/dev.ts +711 -0
  183. package/src/pages/errors.ts +66 -0
  184. package/src/pages/functions/buildPlugin.ts +107 -0
  185. package/src/pages/functions/buildWorker.ts +166 -0
  186. package/src/pages/functions/filepath-routing.test.ts +234 -0
  187. package/src/pages/functions/filepath-routing.ts +189 -0
  188. package/src/pages/functions/identifiers.ts +78 -0
  189. package/src/pages/functions/routes-consolidation.test.ts +250 -0
  190. package/src/pages/functions/routes-consolidation.ts +73 -0
  191. package/src/pages/functions/routes-transformation.test.ts +282 -0
  192. package/src/pages/functions/routes-transformation.ts +115 -0
  193. package/src/pages/functions/routes-validation.test.ts +403 -0
  194. package/src/pages/functions/routes-validation.ts +202 -0
  195. package/src/pages/functions/routes.ts +151 -0
  196. package/src/pages/functions/tsconfig.json +8 -0
  197. package/src/pages/functions/tsconfig.tsbuildinfo +1 -0
  198. package/src/pages/functions.ts +82 -0
  199. package/src/pages/hash.ts +13 -0
  200. package/src/pages/index.ts +102 -0
  201. package/src/pages/projects.tsx +167 -0
  202. package/src/pages/prompt-select-project.tsx +31 -0
  203. package/src/pages/publish.tsx +462 -0
  204. package/src/pages/types.ts +41 -0
  205. package/src/pages/upload.tsx +447 -0
  206. package/src/pages/utils.ts +23 -0
  207. package/src/parse.ts +286 -0
  208. package/src/paths.ts +71 -0
  209. package/src/proxy.ts +646 -254
  210. package/src/publish/index.ts +270 -0
  211. package/src/publish/publish.ts +1038 -0
  212. package/src/pubsub/index.ts +286 -0
  213. package/src/pubsub/pubsub-commands.ts +624 -0
  214. package/src/queues/cli/commands/consumer/add.ts +71 -0
  215. package/src/queues/cli/commands/consumer/index.ts +22 -0
  216. package/src/queues/cli/commands/consumer/remove.ts +38 -0
  217. package/src/queues/cli/commands/create.ts +25 -0
  218. package/src/queues/cli/commands/delete.ts +26 -0
  219. package/src/queues/cli/commands/index.ts +36 -0
  220. package/src/queues/cli/commands/list.ts +25 -0
  221. package/src/queues/client.ts +135 -0
  222. package/src/queues/utils.ts +18 -0
  223. package/src/r2/constants.ts +4 -0
  224. package/src/r2/helpers.ts +131 -0
  225. package/src/r2/index.ts +289 -0
  226. package/src/routes.ts +140 -0
  227. package/src/secret/index.ts +379 -0
  228. package/src/selfsigned.d.ts +29 -0
  229. package/src/sites.ts +372 -0
  230. package/src/tail/createTail.ts +379 -0
  231. package/src/tail/filters.ts +277 -0
  232. package/src/tail/index.ts +213 -0
  233. package/src/tail/printing.ts +107 -0
  234. package/src/tsconfig-sanity.ts +16 -0
  235. package/src/type-generation.ts +181 -0
  236. package/src/update-check.ts +19 -0
  237. package/src/user/access.ts +68 -0
  238. package/src/user/auth-variables.ts +113 -0
  239. package/src/user/choose-account.tsx +39 -0
  240. package/src/user/generate-auth-url.ts +33 -0
  241. package/src/user/generate-random-state.ts +16 -0
  242. package/src/user/index.ts +2 -0
  243. package/src/user/user.ts +1232 -0
  244. package/src/utils/collectKeyValues.ts +14 -0
  245. package/src/whoami.ts +135 -0
  246. package/src/worker.ts +251 -0
  247. package/src/yargs-types.ts +24 -0
  248. package/src/zones.ts +191 -0
  249. package/templates/__tests__/pages-dev-util.test.ts +128 -0
  250. package/templates/__tests__/tsconfig-sanity.ts +12 -0
  251. package/templates/__tests__/tsconfig.json +8 -0
  252. package/templates/__tests__/tsconfig.tsbuildinfo +1 -0
  253. package/templates/checked-fetch.js +17 -0
  254. package/templates/d1-beta-facade.js +241 -0
  255. package/templates/facade.d.ts +14 -0
  256. package/templates/first-party-worker-module-facade.ts +19 -0
  257. package/templates/format-dev-errors.ts +33 -0
  258. package/templates/gitignore +171 -0
  259. package/templates/init-tests/test-jest-new-worker.js +23 -0
  260. package/templates/init-tests/test-vitest-new-worker.js +24 -0
  261. package/templates/init-tests/test-vitest-new-worker.ts +25 -0
  262. package/templates/middleware/common.ts +62 -0
  263. package/templates/middleware/loader-modules.ts +82 -0
  264. package/templates/middleware/loader-sw.ts +233 -0
  265. package/templates/middleware/middleware-miniflare3-json-error.ts +20 -0
  266. package/templates/middleware/middleware-pretty-error.ts +40 -0
  267. package/templates/middleware/middleware-scheduled.ts +15 -0
  268. package/templates/new-worker-scheduled.js +17 -0
  269. package/templates/new-worker-scheduled.ts +32 -0
  270. package/templates/new-worker.js +15 -0
  271. package/templates/new-worker.ts +30 -0
  272. package/templates/no-op-worker.js +10 -0
  273. package/templates/pages-dev-pipeline.ts +31 -0
  274. package/templates/pages-dev-util.ts +52 -0
  275. package/templates/pages-shim.ts +12 -0
  276. package/templates/pages-template-plugin.ts +176 -0
  277. package/templates/pages-template-worker.ts +189 -0
  278. package/templates/serve-static-assets.ts +65 -0
  279. package/templates/service-bindings-module-facade.js +54 -0
  280. package/templates/service-bindings-sw-facade.js +42 -0
  281. package/templates/tsconfig-sanity.ts +11 -0
  282. package/templates/tsconfig.init.json +106 -0
  283. package/templates/tsconfig.json +8 -0
  284. package/templates/tsconfig.tsbuildinfo +1 -0
  285. package/wrangler-dist/cli.d.ts +906 -0
  286. package/wrangler-dist/cli.js +134115 -114092
  287. package/wrangler-dist/wasm-sync.wasm +0 -0
  288. package/pages/functions/buildWorker.ts +0 -62
  289. package/pages/functions/filepath-routing.test.ts +0 -39
  290. package/pages/functions/filepath-routing.ts +0 -228
  291. package/pages/functions/identifiers.ts +0 -78
  292. package/pages/functions/routes.ts +0 -158
  293. package/pages/functions/template-worker.ts +0 -136
  294. package/src/__tests__/mock-cfetch.ts +0 -173
  295. package/src/__tests__/mock-dialogs.ts +0 -65
  296. package/src/__tests__/run-in-tmp.ts +0 -19
  297. package/src/__tests__/run-wrangler.ts +0 -32
  298. package/src/api/form_data.ts +0 -131
  299. package/src/api/preview.ts +0 -128
  300. package/src/api/worker.ts +0 -155
  301. package/src/config.ts +0 -646
  302. package/src/dialogs.tsx +0 -77
  303. package/src/index.tsx +0 -1975
  304. package/src/kv.tsx +0 -276
  305. package/src/pages.tsx +0 -1040
  306. package/src/publish.ts +0 -382
  307. package/src/sites.tsx +0 -243
  308. package/src/tail.tsx +0 -73
  309. package/src/user.tsx +0 -1019
  310. package/src/whoami.tsx +0 -69
  311. package/static-asset-facade.js +0 -47
  312. package/vendor/@cloudflare/kv-asset-handler/CHANGELOG.md +0 -332
  313. package/vendor/@cloudflare/kv-asset-handler/LICENSE_APACHE +0 -176
  314. package/vendor/@cloudflare/kv-asset-handler/LICENSE_MIT +0 -25
  315. package/vendor/@cloudflare/kv-asset-handler/README.md +0 -245
  316. package/vendor/@cloudflare/kv-asset-handler/dist/index.d.ts +0 -32
  317. package/vendor/@cloudflare/kv-asset-handler/dist/index.js +0 -354
  318. package/vendor/@cloudflare/kv-asset-handler/dist/mocks.d.ts +0 -13
  319. package/vendor/@cloudflare/kv-asset-handler/dist/mocks.js +0 -148
  320. package/vendor/@cloudflare/kv-asset-handler/dist/test/getAssetFromKV.d.ts +0 -1
  321. package/vendor/@cloudflare/kv-asset-handler/dist/test/getAssetFromKV.js +0 -436
  322. package/vendor/@cloudflare/kv-asset-handler/dist/test/mapRequestToAsset.d.ts +0 -1
  323. package/vendor/@cloudflare/kv-asset-handler/dist/test/mapRequestToAsset.js +0 -40
  324. package/vendor/@cloudflare/kv-asset-handler/dist/test/serveSinglePageApp.d.ts +0 -1
  325. package/vendor/@cloudflare/kv-asset-handler/dist/test/serveSinglePageApp.js +0 -42
  326. package/vendor/@cloudflare/kv-asset-handler/dist/types.d.ts +0 -26
  327. package/vendor/@cloudflare/kv-asset-handler/dist/types.js +0 -31
  328. package/vendor/@cloudflare/kv-asset-handler/package.json +0 -52
  329. package/vendor/@cloudflare/kv-asset-handler/src/index.ts +0 -296
  330. package/vendor/@cloudflare/kv-asset-handler/src/mocks.ts +0 -136
  331. package/vendor/@cloudflare/kv-asset-handler/src/test/getAssetFromKV.ts +0 -464
  332. package/vendor/@cloudflare/kv-asset-handler/src/test/mapRequestToAsset.ts +0 -33
  333. package/vendor/@cloudflare/kv-asset-handler/src/test/serveSinglePageApp.ts +0 -42
  334. package/vendor/@cloudflare/kv-asset-handler/src/types.ts +0 -39
  335. package/vendor/wrangler-mime/CHANGELOG.md +0 -289
  336. package/vendor/wrangler-mime/LICENSE +0 -21
  337. package/vendor/wrangler-mime/Mime.js +0 -97
  338. package/vendor/wrangler-mime/README.md +0 -187
  339. package/vendor/wrangler-mime/cli.js +0 -46
  340. package/vendor/wrangler-mime/index.js +0 -4
  341. package/vendor/wrangler-mime/lite.js +0 -4
  342. package/vendor/wrangler-mime/package.json +0 -52
  343. package/vendor/wrangler-mime/types/other.js +0 -1
  344. package/vendor/wrangler-mime/types/standard.js +0 -1
  345. 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
+ }