wrangler 0.0.0-e6733a3 → 0.0.0-e6c71262

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 (380) 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 +6442 -0
  6. package/package.json +198 -124
  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.ts +121 -0
  10. package/src/__tests__/api.test.ts +102 -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 +4671 -0
  14. package/src/__tests__/constellation.test.ts +371 -0
  15. package/src/__tests__/d1/d1.test.ts +82 -0
  16. package/src/__tests__/d1/execute.test.ts +66 -0
  17. package/src/__tests__/d1/migrate.test.ts +257 -0
  18. package/src/__tests__/d1/splitter.test.ts +255 -0
  19. package/src/__tests__/delete.test.ts +272 -0
  20. package/src/__tests__/deployments.test.ts +369 -0
  21. package/src/__tests__/dev.test.tsx +1613 -62
  22. package/src/__tests__/generate.test.ts +254 -0
  23. package/src/__tests__/get-host-from-url.test.ts +16 -0
  24. package/src/__tests__/guess-worker-format.test.ts +120 -0
  25. package/src/__tests__/helpers/cmd-shim.d.ts +11 -0
  26. package/src/__tests__/helpers/end-event-loop.ts +6 -0
  27. package/src/__tests__/helpers/mock-account-id.ts +48 -0
  28. package/src/__tests__/helpers/mock-auth-domain.ts +20 -0
  29. package/src/__tests__/helpers/mock-bin.ts +36 -0
  30. package/src/__tests__/helpers/mock-console.ts +112 -0
  31. package/src/__tests__/helpers/mock-dialogs.ts +139 -0
  32. package/src/__tests__/helpers/mock-get-pages-upload-token.ts +25 -0
  33. package/src/__tests__/helpers/mock-get-zone-from-host.ts +11 -0
  34. package/src/__tests__/helpers/mock-http-server.ts +46 -0
  35. package/src/__tests__/helpers/mock-istty.ts +74 -0
  36. package/src/__tests__/helpers/mock-known-routes.ts +12 -0
  37. package/src/__tests__/helpers/mock-kv.ts +46 -0
  38. package/src/__tests__/helpers/mock-oauth-flow.ts +263 -0
  39. package/src/__tests__/helpers/mock-process.ts +34 -0
  40. package/src/__tests__/helpers/mock-set-timeout.ts +16 -0
  41. package/src/__tests__/helpers/mock-stdin.ts +108 -0
  42. package/src/__tests__/helpers/mock-web-socket.ts +29 -0
  43. package/src/__tests__/helpers/msw/blob-worker.cjs +19 -0
  44. package/src/__tests__/helpers/msw/handlers/access.ts +13 -0
  45. package/src/__tests__/helpers/msw/handlers/deployments.ts +160 -0
  46. package/src/__tests__/helpers/msw/handlers/namespaces.ts +81 -0
  47. package/src/__tests__/helpers/msw/handlers/oauth.ts +31 -0
  48. package/src/__tests__/helpers/msw/handlers/r2.ts +60 -0
  49. package/src/__tests__/helpers/msw/handlers/script.ts +56 -0
  50. package/src/__tests__/helpers/msw/handlers/user.ts +52 -0
  51. package/src/__tests__/helpers/msw/handlers/zones.ts +20 -0
  52. package/src/__tests__/helpers/msw/index.ts +52 -0
  53. package/src/__tests__/helpers/msw/read-file-sync.js +61 -0
  54. package/src/__tests__/helpers/run-in-tmp.ts +38 -0
  55. package/src/__tests__/helpers/run-wrangler.ts +16 -0
  56. package/src/__tests__/helpers/string-dynamic-values-matcher.ts +28 -0
  57. package/src/__tests__/helpers/worker-scripts/child-wrangler.toml +1 -0
  58. package/src/__tests__/helpers/worker-scripts/hello-world-worker.js +5 -0
  59. package/src/__tests__/helpers/worker-scripts/hello-world-wrangler.toml +1 -0
  60. package/src/__tests__/helpers/worker-scripts/parent-worker.js +11 -0
  61. package/src/__tests__/helpers/worker-scripts/parent-wrangler.toml +5 -0
  62. package/src/__tests__/helpers/write-worker-source.ts +31 -0
  63. package/src/__tests__/helpers/write-wrangler-toml.ts +17 -0
  64. package/src/__tests__/https-options.test.ts +163 -0
  65. package/src/__tests__/index.test.ts +279 -284
  66. package/src/__tests__/init.test.ts +3419 -0
  67. package/src/__tests__/jest.setup.ts +173 -16
  68. package/src/__tests__/kv.test.ts +1794 -1093
  69. package/src/__tests__/logger.test.ts +207 -0
  70. package/src/__tests__/logout.test.ts +47 -0
  71. package/src/__tests__/metrics.test.ts +493 -0
  72. package/src/__tests__/middleware.scheduled.test.ts +145 -0
  73. package/src/__tests__/middleware.test.ts +816 -0
  74. package/src/__tests__/mtls-certificates.test.ts +589 -0
  75. package/src/__tests__/package-manager.test.ts +353 -0
  76. package/src/__tests__/pages/deployment-list.test.ts +80 -0
  77. package/src/__tests__/pages/functions-build.test.ts +528 -0
  78. package/src/__tests__/pages/pages.test.ts +81 -0
  79. package/src/__tests__/pages/project-create.test.ts +63 -0
  80. package/src/__tests__/pages/project-list.test.ts +110 -0
  81. package/src/__tests__/pages/project-upload.test.ts +500 -0
  82. package/src/__tests__/pages/publish.test.ts +2864 -0
  83. package/src/__tests__/pages-deployment-tail.test.ts +957 -0
  84. package/src/__tests__/parse.test.ts +436 -0
  85. package/src/__tests__/paths.test.ts +39 -0
  86. package/src/__tests__/publish.test.ts +8849 -0
  87. package/src/__tests__/pubsub.test.ts +496 -0
  88. package/src/__tests__/queues.test.ts +532 -0
  89. package/src/__tests__/r2.test.ts +374 -0
  90. package/src/__tests__/route.test.ts +45 -0
  91. package/src/__tests__/secret.test.ts +693 -0
  92. package/src/__tests__/tail.test.ts +989 -0
  93. package/src/__tests__/test-old-node-version.js +31 -0
  94. package/src/__tests__/traverse-module-graph.test.ts +220 -0
  95. package/src/__tests__/tsconfig-sanity.ts +12 -0
  96. package/src/__tests__/tsconfig.json +8 -0
  97. package/src/__tests__/tsconfig.tsbuildinfo +1 -0
  98. package/src/__tests__/type-generation.test.ts +234 -0
  99. package/src/__tests__/unstableDev.test.ts +61 -0
  100. package/src/__tests__/user.test.ts +118 -0
  101. package/src/__tests__/utils-collectKeyValues.test.ts +47 -0
  102. package/src/__tests__/validate-dev-props.test.ts +56 -0
  103. package/src/__tests__/version.test.ts +35 -0
  104. package/src/__tests__/whoami.test.tsx +172 -0
  105. package/src/__tests__/worker-namespace.test.ts +340 -0
  106. package/src/abort.d.ts +3 -0
  107. package/src/api/dev.ts +321 -0
  108. package/src/api/index.ts +11 -0
  109. package/src/api/mtls-certificate.ts +148 -0
  110. package/src/api/pages/create-worker-bundle-contents.ts +79 -0
  111. package/src/api/pages/index.ts +5 -0
  112. package/src/api/pages/publish.tsx +371 -0
  113. package/src/bundle-reporter.ts +68 -0
  114. package/src/bundle.ts +929 -0
  115. package/src/cfetch/index.ts +127 -71
  116. package/src/cfetch/internal.ts +240 -46
  117. package/src/cli.ts +25 -6
  118. package/src/config/README.md +107 -0
  119. package/src/config/config.ts +282 -0
  120. package/src/config/diagnostics.ts +80 -0
  121. package/src/config/environment.ts +650 -0
  122. package/src/config/index.ts +424 -0
  123. package/src/config/validation-helpers.ts +597 -0
  124. package/src/config/validation.ts +2457 -0
  125. package/src/config-cache.ts +85 -0
  126. package/src/constellation/createProject.tsx +51 -0
  127. package/src/constellation/deleteProject.ts +51 -0
  128. package/src/constellation/deleteProjectModel.ts +76 -0
  129. package/src/constellation/index.ts +75 -0
  130. package/src/constellation/listCatalog.tsx +35 -0
  131. package/src/constellation/listModel.tsx +49 -0
  132. package/src/constellation/listProject.tsx +28 -0
  133. package/src/constellation/listRuntime.tsx +28 -0
  134. package/src/constellation/options.ts +17 -0
  135. package/src/constellation/types.ts +17 -0
  136. package/src/constellation/uploadModel.tsx +84 -0
  137. package/src/constellation/utils.ts +90 -0
  138. package/src/create-worker-preview.ts +293 -0
  139. package/src/create-worker-upload-form.ts +380 -0
  140. package/src/d1/backups.tsx +219 -0
  141. package/src/d1/constants.ts +5 -0
  142. package/src/d1/create.tsx +102 -0
  143. package/src/d1/delete.ts +53 -0
  144. package/src/d1/execute.tsx +371 -0
  145. package/src/d1/formatTimeAgo.ts +14 -0
  146. package/src/d1/index.ts +100 -0
  147. package/src/d1/list.tsx +62 -0
  148. package/src/d1/migrations/apply.tsx +235 -0
  149. package/src/d1/migrations/create.tsx +79 -0
  150. package/src/d1/migrations/helpers.ts +171 -0
  151. package/src/d1/migrations/index.ts +3 -0
  152. package/src/d1/migrations/list.tsx +95 -0
  153. package/src/d1/migrations/options.ts +23 -0
  154. package/src/d1/options.ts +22 -0
  155. package/src/d1/splitter.ts +161 -0
  156. package/src/d1/types.ts +32 -0
  157. package/src/d1/utils.ts +49 -0
  158. package/src/delete.ts +100 -0
  159. package/src/deployments.ts +368 -0
  160. package/src/deprecated/index.ts +144 -0
  161. package/src/dev/dev-vars.ts +39 -0
  162. package/src/dev/dev.tsx +605 -0
  163. package/src/dev/get-local-persistence-path.ts +31 -0
  164. package/src/dev/local.tsx +952 -0
  165. package/src/dev/remote.tsx +635 -0
  166. package/src/dev/start-server.ts +545 -0
  167. package/src/dev/use-esbuild.ts +215 -0
  168. package/src/dev/validate-dev-props.ts +40 -0
  169. package/src/dev-registry.ts +213 -0
  170. package/src/dev.tsx +918 -752
  171. package/src/dialogs.ts +136 -0
  172. package/src/dispatch-namespace.ts +211 -0
  173. package/src/docs/helpers.ts +50 -0
  174. package/src/docs/index.ts +54 -0
  175. package/src/durable.ts +102 -0
  176. package/src/entry.ts +344 -0
  177. package/src/environment-variables/factory.ts +89 -0
  178. package/src/environment-variables/misc-variables.ts +30 -0
  179. package/src/errors.ts +11 -0
  180. package/src/generate/index.ts +304 -0
  181. package/src/git-client.ts +135 -0
  182. package/src/global-wrangler-config-path.ts +26 -0
  183. package/src/https-options.ts +127 -0
  184. package/src/index.ts +769 -0
  185. package/src/init.ts +1123 -0
  186. package/src/inspect.ts +836 -477
  187. package/src/intl-polyfill.d.ts +139 -0
  188. package/src/is-ci.ts +14 -0
  189. package/src/is-interactive.ts +16 -0
  190. package/src/jest.d.ts +4 -0
  191. package/src/kv/helpers.ts +433 -0
  192. package/src/kv/index.ts +594 -0
  193. package/src/logger.ts +123 -0
  194. package/src/metrics/index.ts +5 -0
  195. package/src/metrics/metrics-config.ts +239 -0
  196. package/src/metrics/metrics-dispatcher.ts +96 -0
  197. package/src/metrics/metrics-usage-headers.ts +24 -0
  198. package/src/metrics/send-event.ts +99 -0
  199. package/src/miniflare-cli/README.md +30 -0
  200. package/src/miniflare-cli/assets.ts +251 -0
  201. package/src/miniflare-cli/index.ts +210 -0
  202. package/src/miniflare-cli/request-context.ts +40 -0
  203. package/src/miniflare-cli/tsconfig.json +9 -0
  204. package/src/miniflare-cli/tsconfig.tsbuildinfo +1 -0
  205. package/src/miniflare-cli/types.ts +11 -0
  206. package/src/module-collection.ts +322 -53
  207. package/src/mtls-certificate/cli.ts +155 -0
  208. package/src/open-in-browser.ts +17 -0
  209. package/src/package-manager.ts +219 -0
  210. package/src/pages/build.ts +423 -0
  211. package/src/pages/buildFunctions.ts +140 -0
  212. package/src/pages/constants.ts +18 -0
  213. package/src/pages/deployment-tails.ts +281 -0
  214. package/src/pages/deployments.tsx +84 -0
  215. package/src/pages/dev.ts +734 -0
  216. package/src/pages/errors.ts +67 -0
  217. package/src/pages/functions/buildPlugin.ts +114 -0
  218. package/src/pages/functions/buildWorker.ts +350 -0
  219. package/src/pages/functions/filepath-routing.test.ts +234 -0
  220. package/src/pages/functions/filepath-routing.ts +189 -0
  221. package/src/pages/functions/identifiers.ts +78 -0
  222. package/src/pages/functions/routes-consolidation.test.ts +250 -0
  223. package/src/pages/functions/routes-consolidation.ts +73 -0
  224. package/src/pages/functions/routes-transformation.test.ts +282 -0
  225. package/src/pages/functions/routes-transformation.ts +115 -0
  226. package/src/pages/functions/routes-validation.test.ts +403 -0
  227. package/src/pages/functions/routes-validation.ts +202 -0
  228. package/src/pages/functions/routes.ts +151 -0
  229. package/src/pages/functions/tsconfig.json +8 -0
  230. package/src/pages/functions/tsconfig.tsbuildinfo +1 -0
  231. package/src/pages/functions.ts +86 -0
  232. package/src/pages/hash.ts +13 -0
  233. package/src/pages/index.ts +102 -0
  234. package/src/pages/projects.tsx +159 -0
  235. package/src/pages/prompt-select-project.tsx +31 -0
  236. package/src/pages/publish.tsx +267 -0
  237. package/src/pages/types.ts +46 -0
  238. package/src/pages/upload.tsx +469 -0
  239. package/src/pages/utils.ts +23 -0
  240. package/src/parse.ts +308 -0
  241. package/src/paths.ts +71 -0
  242. package/src/proxy.ts +652 -252
  243. package/src/publish/index.ts +274 -0
  244. package/src/publish/publish.ts +1067 -0
  245. package/src/pubsub/index.ts +286 -0
  246. package/src/pubsub/pubsub-commands.ts +623 -0
  247. package/src/queues/cli/commands/consumer/add.ts +71 -0
  248. package/src/queues/cli/commands/consumer/index.ts +19 -0
  249. package/src/queues/cli/commands/consumer/remove.ts +31 -0
  250. package/src/queues/cli/commands/create.ts +25 -0
  251. package/src/queues/cli/commands/delete.ts +26 -0
  252. package/src/queues/cli/commands/index.ts +35 -0
  253. package/src/queues/cli/commands/list.ts +25 -0
  254. package/src/queues/client.ts +136 -0
  255. package/src/queues/utils.ts +18 -0
  256. package/src/r2/constants.ts +4 -0
  257. package/src/r2/helpers.ts +132 -0
  258. package/src/r2/index.ts +289 -0
  259. package/src/routes.ts +140 -0
  260. package/src/secret/index.ts +379 -0
  261. package/src/selfsigned.d.ts +29 -0
  262. package/src/sites.ts +484 -0
  263. package/src/tail/createTail.ts +415 -0
  264. package/src/tail/filters.ts +277 -0
  265. package/src/tail/index.ts +211 -0
  266. package/src/tail/printing.ts +132 -0
  267. package/src/traverse-module-graph.ts +54 -0
  268. package/src/tsconfig-sanity.ts +16 -0
  269. package/src/type-generation.ts +187 -0
  270. package/src/update-check.ts +19 -0
  271. package/src/user/access.ts +68 -0
  272. package/src/user/auth-variables.ts +113 -0
  273. package/src/user/choose-account.tsx +39 -0
  274. package/src/user/generate-auth-url.ts +33 -0
  275. package/src/user/generate-random-state.ts +16 -0
  276. package/src/user/index.ts +2 -0
  277. package/src/user/user.ts +1234 -0
  278. package/src/utils/collectKeyValues.ts +14 -0
  279. package/src/utils/render.ts +93 -0
  280. package/src/whoami.ts +135 -0
  281. package/src/worker.ts +294 -0
  282. package/src/yargs-types.ts +37 -0
  283. package/src/zones.ts +191 -0
  284. package/templates/__tests__/pages-dev-util.test.ts +128 -0
  285. package/templates/__tests__/tsconfig-sanity.ts +12 -0
  286. package/templates/__tests__/tsconfig.json +8 -0
  287. package/templates/__tests__/tsconfig.tsbuildinfo +1 -0
  288. package/templates/checked-fetch.js +23 -0
  289. package/templates/d1-beta-facade.js +244 -0
  290. package/templates/facade.d.ts +14 -0
  291. package/templates/first-party-worker-module-facade.ts +19 -0
  292. package/templates/format-dev-errors.ts +34 -0
  293. package/templates/gitignore +172 -0
  294. package/templates/init-tests/test-jest-new-worker.js +23 -0
  295. package/templates/init-tests/test-vitest-new-worker.js +24 -0
  296. package/templates/init-tests/test-vitest-new-worker.ts +25 -0
  297. package/templates/middleware/common.ts +62 -0
  298. package/templates/middleware/loader-modules.ts +84 -0
  299. package/templates/middleware/loader-sw.ts +233 -0
  300. package/templates/middleware/middleware-miniflare3-json-error.ts +32 -0
  301. package/templates/middleware/middleware-pretty-error.ts +40 -0
  302. package/templates/middleware/middleware-scheduled.ts +15 -0
  303. package/templates/new-worker-scheduled.js +17 -0
  304. package/templates/new-worker-scheduled.ts +32 -0
  305. package/templates/new-worker.js +15 -0
  306. package/templates/new-worker.ts +33 -0
  307. package/templates/no-op-worker.js +10 -0
  308. package/templates/pages-dev-pipeline.ts +31 -0
  309. package/templates/pages-dev-util.ts +55 -0
  310. package/templates/pages-shim.ts +12 -0
  311. package/templates/pages-template-plugin.ts +180 -0
  312. package/templates/pages-template-worker.ts +189 -0
  313. package/templates/serve-static-assets.ts +66 -0
  314. package/templates/service-bindings-module-facade.js +55 -0
  315. package/templates/service-bindings-sw-facade.js +42 -0
  316. package/templates/tsconfig-sanity.ts +11 -0
  317. package/templates/tsconfig.init.json +105 -0
  318. package/templates/tsconfig.json +8 -0
  319. package/templates/tsconfig.tsbuildinfo +1 -0
  320. package/wrangler-dist/cli.d.ts +1673 -0
  321. package/wrangler-dist/cli.js +144054 -113972
  322. package/wrangler-dist/wasm-sync.wasm +0 -0
  323. package/pages/functions/buildWorker.ts +0 -62
  324. package/pages/functions/filepath-routing.test.ts +0 -39
  325. package/pages/functions/filepath-routing.ts +0 -221
  326. package/pages/functions/identifiers.ts +0 -78
  327. package/pages/functions/routes.ts +0 -158
  328. package/pages/functions/template-worker.ts +0 -144
  329. package/src/__tests__/mock-cfetch.ts +0 -171
  330. package/src/__tests__/mock-dialogs.ts +0 -65
  331. package/src/__tests__/run-in-tmp.ts +0 -19
  332. package/src/__tests__/run-wrangler.ts +0 -32
  333. package/src/api/form_data.ts +0 -131
  334. package/src/api/preview.ts +0 -128
  335. package/src/api/worker.ts +0 -155
  336. package/src/config.ts +0 -487
  337. package/src/dialogs.tsx +0 -77
  338. package/src/index.tsx +0 -1974
  339. package/src/kv.tsx +0 -267
  340. package/src/pages.tsx +0 -1031
  341. package/src/publish.ts +0 -358
  342. package/src/sites.tsx +0 -114
  343. package/src/tail.tsx +0 -73
  344. package/src/user.tsx +0 -1025
  345. package/static-asset-facade.js +0 -47
  346. package/vendor/@cloudflare/kv-asset-handler/CHANGELOG.md +0 -332
  347. package/vendor/@cloudflare/kv-asset-handler/LICENSE_APACHE +0 -176
  348. package/vendor/@cloudflare/kv-asset-handler/LICENSE_MIT +0 -25
  349. package/vendor/@cloudflare/kv-asset-handler/README.md +0 -245
  350. package/vendor/@cloudflare/kv-asset-handler/dist/index.d.ts +0 -32
  351. package/vendor/@cloudflare/kv-asset-handler/dist/index.js +0 -354
  352. package/vendor/@cloudflare/kv-asset-handler/dist/mocks.d.ts +0 -13
  353. package/vendor/@cloudflare/kv-asset-handler/dist/mocks.js +0 -148
  354. package/vendor/@cloudflare/kv-asset-handler/dist/test/getAssetFromKV.d.ts +0 -1
  355. package/vendor/@cloudflare/kv-asset-handler/dist/test/getAssetFromKV.js +0 -436
  356. package/vendor/@cloudflare/kv-asset-handler/dist/test/mapRequestToAsset.d.ts +0 -1
  357. package/vendor/@cloudflare/kv-asset-handler/dist/test/mapRequestToAsset.js +0 -40
  358. package/vendor/@cloudflare/kv-asset-handler/dist/test/serveSinglePageApp.d.ts +0 -1
  359. package/vendor/@cloudflare/kv-asset-handler/dist/test/serveSinglePageApp.js +0 -42
  360. package/vendor/@cloudflare/kv-asset-handler/dist/types.d.ts +0 -26
  361. package/vendor/@cloudflare/kv-asset-handler/dist/types.js +0 -31
  362. package/vendor/@cloudflare/kv-asset-handler/package.json +0 -52
  363. package/vendor/@cloudflare/kv-asset-handler/src/index.ts +0 -296
  364. package/vendor/@cloudflare/kv-asset-handler/src/mocks.ts +0 -136
  365. package/vendor/@cloudflare/kv-asset-handler/src/test/getAssetFromKV.ts +0 -464
  366. package/vendor/@cloudflare/kv-asset-handler/src/test/mapRequestToAsset.ts +0 -33
  367. package/vendor/@cloudflare/kv-asset-handler/src/test/serveSinglePageApp.ts +0 -42
  368. package/vendor/@cloudflare/kv-asset-handler/src/types.ts +0 -39
  369. package/vendor/wrangler-mime/CHANGELOG.md +0 -289
  370. package/vendor/wrangler-mime/LICENSE +0 -21
  371. package/vendor/wrangler-mime/Mime.js +0 -97
  372. package/vendor/wrangler-mime/README.md +0 -187
  373. package/vendor/wrangler-mime/cli.js +0 -46
  374. package/vendor/wrangler-mime/index.js +0 -4
  375. package/vendor/wrangler-mime/lite.js +0 -4
  376. package/vendor/wrangler-mime/package.json +0 -52
  377. package/vendor/wrangler-mime/types/other.js +0 -1
  378. package/vendor/wrangler-mime/types/standard.js +0 -1
  379. package/wrangler-dist/cli.js.map +0 -7
  380. /package/src/__tests__/{clipboardy-mock.js → helpers/clipboardy-mock.js} +0 -0
@@ -0,0 +1,274 @@
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 {
17
+ CommonYargsArgv,
18
+ StrictYargsOptionsToInterface,
19
+ } from "../yargs-types";
20
+
21
+ export function publishOptions(yargs: CommonYargsArgv) {
22
+ return (
23
+ yargs
24
+ .positional("script", {
25
+ describe: "The path to an entry point for your worker",
26
+ type: "string",
27
+ requiresArg: true,
28
+ })
29
+ .option("name", {
30
+ describe: "Name of the worker",
31
+ type: "string",
32
+ requiresArg: true,
33
+ })
34
+ // We want to have a --no-bundle flag, but yargs requires that
35
+ // we also have a --bundle flag (that it adds the --no to by itself)
36
+ // So we make a --bundle flag, but hide it, and then add a --no-bundle flag
37
+ // that's visible to the user but doesn't "do" anything.
38
+ .option("bundle", {
39
+ describe: "Run wrangler's compilation step before publishing",
40
+ type: "boolean",
41
+ hidden: true,
42
+ })
43
+ .option("no-bundle", {
44
+ describe: "Skip internal build steps and directly publish Worker",
45
+ type: "boolean",
46
+ default: false,
47
+ })
48
+ .option("outdir", {
49
+ describe: "Output directory for the bundled worker",
50
+ type: "string",
51
+ requiresArg: true,
52
+ })
53
+ .option("format", {
54
+ choices: ["modules", "service-worker"] as const,
55
+ describe: "Choose an entry type",
56
+ deprecated: true,
57
+ hidden: true,
58
+ })
59
+ .option("compatibility-date", {
60
+ describe: "Date to use for compatibility checks",
61
+ type: "string",
62
+ requiresArg: true,
63
+ })
64
+ .option("compatibility-flags", {
65
+ describe: "Flags to use for compatibility checks",
66
+ alias: "compatibility-flag",
67
+ type: "string",
68
+ requiresArg: true,
69
+ array: true,
70
+ })
71
+ .option("latest", {
72
+ describe: "Use the latest version of the worker runtime",
73
+ type: "boolean",
74
+ default: false,
75
+ })
76
+ .option("experimental-public", {
77
+ describe: "Static assets to be served",
78
+ type: "string",
79
+ requiresArg: true,
80
+ deprecated: true,
81
+ hidden: true,
82
+ })
83
+ .option("public", {
84
+ describe: "Static assets to be served",
85
+ type: "string",
86
+ requiresArg: true,
87
+ deprecated: true,
88
+ hidden: true,
89
+ })
90
+ .option("assets", {
91
+ describe: "Static assets to be served",
92
+ type: "string",
93
+ requiresArg: true,
94
+ })
95
+ .option("site", {
96
+ describe: "Root folder of static assets for Workers Sites",
97
+ type: "string",
98
+ requiresArg: true,
99
+ })
100
+ .option("site-include", {
101
+ describe:
102
+ "Array of .gitignore-style patterns that match file or directory names from the sites directory. Only matched items will be uploaded.",
103
+ type: "string",
104
+ requiresArg: true,
105
+ array: true,
106
+ })
107
+ .option("site-exclude", {
108
+ describe:
109
+ "Array of .gitignore-style patterns that match file or directory names from the sites directory. Matched items will not be uploaded.",
110
+ type: "string",
111
+ requiresArg: true,
112
+ array: true,
113
+ })
114
+ .option("var", {
115
+ describe:
116
+ "A key-value pair to be injected into the script as a variable",
117
+ type: "string",
118
+ requiresArg: true,
119
+ array: true,
120
+ })
121
+ .option("define", {
122
+ describe: "A key-value pair to be substituted in the script",
123
+ type: "string",
124
+ requiresArg: true,
125
+ array: true,
126
+ })
127
+ .option("triggers", {
128
+ describe: "cron schedules to attach",
129
+ alias: ["schedule", "schedules"],
130
+ type: "string",
131
+ requiresArg: true,
132
+ array: true,
133
+ })
134
+ .option("routes", {
135
+ describe: "Routes to upload",
136
+ alias: "route",
137
+ type: "string",
138
+ requiresArg: true,
139
+ array: true,
140
+ })
141
+ .option("jsx-factory", {
142
+ describe: "The function that is called for each JSX element",
143
+ type: "string",
144
+ requiresArg: true,
145
+ })
146
+ .option("jsx-fragment", {
147
+ describe: "The function that is called for each JSX fragment",
148
+ type: "string",
149
+ requiresArg: true,
150
+ })
151
+ .option("tsconfig", {
152
+ describe: "Path to a custom tsconfig.json file",
153
+ type: "string",
154
+ requiresArg: true,
155
+ })
156
+ .option("minify", {
157
+ describe: "Minify the Worker",
158
+ type: "boolean",
159
+ })
160
+ .option("node-compat", {
161
+ describe: "Enable Node.js compatibility",
162
+ type: "boolean",
163
+ })
164
+ .option("dry-run", {
165
+ describe: "Don't actually publish",
166
+ type: "boolean",
167
+ })
168
+ .option("keep-vars", {
169
+ describe:
170
+ "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.",
171
+ default: false,
172
+ type: "boolean",
173
+ })
174
+ .option("legacy-env", {
175
+ type: "boolean",
176
+ describe: "Use legacy environments",
177
+ hidden: true,
178
+ })
179
+ .option("logpush", {
180
+ type: "boolean",
181
+ describe:
182
+ "Send Trace Events from this worker to Workers Logpush.\nThis will not configure a corresponding Logpush job automatically.",
183
+ })
184
+ );
185
+ }
186
+
187
+ export async function publishHandler(
188
+ args: StrictYargsOptionsToInterface<typeof publishOptions>
189
+ ) {
190
+ await printWranglerBanner();
191
+
192
+ const configPath =
193
+ args.config || (args.script && findWranglerToml(path.dirname(args.script)));
194
+ const config = readConfig(configPath, args);
195
+ const entry = await getEntry(args, config, "publish");
196
+ await metrics.sendMetricsEvent(
197
+ "deploy worker script",
198
+ {
199
+ usesTypeScript: /\.tsx?$/.test(entry.file),
200
+ },
201
+ {
202
+ sendMetrics: config.send_metrics,
203
+ }
204
+ );
205
+
206
+ if (args.public) {
207
+ throw new Error("The --public field has been renamed to --assets");
208
+ }
209
+ if (args.experimentalPublic) {
210
+ throw new Error(
211
+ "The --experimental-public field has been renamed to --assets"
212
+ );
213
+ }
214
+
215
+ if ((args.assets || config.assets) && (args.site || config.site)) {
216
+ throw new Error("Cannot use Assets and Workers Sites in the same Worker.");
217
+ }
218
+
219
+ if (args.assets) {
220
+ logger.warn(
221
+ "The --assets argument is experimental and may change or break at any time"
222
+ );
223
+ }
224
+ if (args.latest) {
225
+ logger.warn(
226
+ "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"
227
+ );
228
+ }
229
+
230
+ const cliVars = collectKeyValues(args.var);
231
+ const cliDefines = collectKeyValues(args.define);
232
+
233
+ const accountId = args.dryRun ? undefined : await requireAuth(config);
234
+
235
+ const assetPaths =
236
+ args.assets || config.assets
237
+ ? getAssetPaths(config, args.assets)
238
+ : getSiteAssetPaths(
239
+ config,
240
+ args.site,
241
+ args.siteInclude,
242
+ args.siteExclude
243
+ );
244
+
245
+ await publish({
246
+ config,
247
+ accountId,
248
+ name: getScriptName(args, config),
249
+ rules: getRules(config),
250
+ entry,
251
+ env: args.env,
252
+ compatibilityDate: args.latest
253
+ ? new Date().toISOString().substring(0, 10)
254
+ : args.compatibilityDate,
255
+ compatibilityFlags: args.compatibilityFlags,
256
+ vars: cliVars,
257
+ defines: cliDefines,
258
+ triggers: args.triggers,
259
+ jsxFactory: args.jsxFactory,
260
+ jsxFragment: args.jsxFragment,
261
+ tsconfig: args.tsconfig,
262
+ routes: args.routes,
263
+ assetPaths,
264
+ legacyEnv: isLegacyEnv(config),
265
+ minify: args.minify,
266
+ nodeCompat: args.nodeCompat,
267
+ isWorkersSite: Boolean(args.site || config.site),
268
+ outDir: args.outdir,
269
+ dryRun: args.dryRun,
270
+ noBundle: !(args.bundle ?? !config.no_bundle),
271
+ keepVars: args.keepVars,
272
+ logpush: args.logpush,
273
+ });
274
+ }