wrangler 0.0.0-e452a04 → 0.0.0-e464fcdb

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 (379) hide show
  1. package/Cloudflare_CA.pem +18 -0
  2. package/README.md +47 -14
  3. package/bin/wrangler.js +181 -29
  4. package/kv-asset-handler.js +1 -0
  5. package/miniflare-dist/index.mjs +6442 -0
  6. package/package.json +198 -140
  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 +4501 -2209
  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 +1604 -392
  22. package/src/__tests__/generate.test.ts +237 -0
  23. package/src/__tests__/get-host-from-url.test.ts +16 -0
  24. package/src/__tests__/guess-worker-format.test.ts +113 -51
  25. package/src/__tests__/helpers/cmd-shim.d.ts +6 -6
  26. package/src/__tests__/helpers/end-event-loop.ts +6 -0
  27. package/src/__tests__/helpers/mock-account-id.ts +26 -22
  28. package/src/__tests__/helpers/mock-auth-domain.ts +20 -0
  29. package/src/__tests__/helpers/mock-bin.ts +20 -20
  30. package/src/__tests__/helpers/mock-console.ts +74 -32
  31. package/src/__tests__/helpers/mock-dialogs.ts +107 -33
  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 +42 -36
  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 +82 -77
  42. package/src/__tests__/helpers/mock-web-socket.ts +21 -21
  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 +29 -20
  55. package/src/__tests__/helpers/run-wrangler.ts +8 -8
  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 +9 -9
  64. package/src/__tests__/https-options.test.ts +144 -108
  65. package/src/__tests__/index.test.ts +266 -975
  66. package/src/__tests__/init.test.ts +3196 -0
  67. package/src/__tests__/jest.setup.ts +158 -48
  68. package/src/__tests__/kv.test.ts +1789 -1398
  69. package/src/__tests__/logger.test.ts +207 -0
  70. package/src/__tests__/logout.test.ts +41 -44
  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 +312 -165
  76. package/src/__tests__/pages/deployment-list.test.ts +80 -0
  77. package/src/__tests__/pages/functions-build.test.ts +452 -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 +955 -0
  84. package/src/__tests__/parse.test.ts +359 -245
  85. package/src/__tests__/paths.test.ts +39 -0
  86. package/src/__tests__/publish.test.ts +8796 -2199
  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 +369 -193
  90. package/src/__tests__/route.test.ts +22 -22
  91. package/src/__tests__/secret.test.ts +683 -415
  92. package/src/__tests__/tail.test.ts +838 -444
  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__/user.test.ts +118 -0
  100. package/src/__tests__/utils-collectKeyValues.test.ts +47 -0
  101. package/src/__tests__/validate-dev-props.test.ts +56 -0
  102. package/src/__tests__/version.test.ts +35 -0
  103. package/src/__tests__/whoami.test.tsx +167 -81
  104. package/src/__tests__/worker-namespace.test.ts +340 -0
  105. package/src/abort.d.ts +3 -0
  106. package/src/api/dev.ts +316 -0
  107. package/src/api/index.ts +11 -0
  108. package/src/api/mtls-certificate.ts +148 -0
  109. package/src/api/pages/create-worker-bundle-contents.ts +76 -0
  110. package/src/api/pages/index.ts +5 -0
  111. package/src/api/pages/publish.tsx +355 -0
  112. package/src/bundle-reporter.ts +68 -0
  113. package/src/bundle.ts +876 -110
  114. package/src/cfetch/index.ts +123 -69
  115. package/src/cfetch/internal.ts +217 -94
  116. package/src/cli.ts +23 -14
  117. package/src/config/README.md +7 -7
  118. package/src/config/config.ts +232 -229
  119. package/src/config/diagnostics.ts +61 -61
  120. package/src/config/environment.ts +569 -256
  121. package/src/config/index.ts +385 -34
  122. package/src/config/validation-helpers.ts +448 -239
  123. package/src/config/validation.ts +2227 -912
  124. package/src/config-cache.ts +85 -0
  125. package/src/constellation/createProject.tsx +51 -0
  126. package/src/constellation/deleteProject.ts +51 -0
  127. package/src/constellation/deleteProjectModel.ts +68 -0
  128. package/src/constellation/index.ts +75 -0
  129. package/src/constellation/listCatalog.tsx +35 -0
  130. package/src/constellation/listModel.tsx +41 -0
  131. package/src/constellation/listProject.tsx +28 -0
  132. package/src/constellation/listRuntime.tsx +28 -0
  133. package/src/constellation/options.ts +17 -0
  134. package/src/constellation/types.ts +17 -0
  135. package/src/constellation/uploadModel.tsx +64 -0
  136. package/src/constellation/utils.ts +90 -0
  137. package/src/create-worker-preview.ts +251 -124
  138. package/src/create-worker-upload-form.ts +343 -201
  139. package/src/d1/backups.tsx +219 -0
  140. package/src/d1/constants.ts +6 -0
  141. package/src/d1/create.tsx +103 -0
  142. package/src/d1/delete.ts +53 -0
  143. package/src/d1/execute.tsx +371 -0
  144. package/src/d1/formatTimeAgo.ts +14 -0
  145. package/src/d1/index.ts +100 -0
  146. package/src/d1/list.tsx +62 -0
  147. package/src/d1/migrations/apply.tsx +235 -0
  148. package/src/d1/migrations/create.tsx +79 -0
  149. package/src/d1/migrations/helpers.ts +171 -0
  150. package/src/d1/migrations/index.ts +3 -0
  151. package/src/d1/migrations/list.tsx +95 -0
  152. package/src/d1/migrations/options.ts +23 -0
  153. package/src/d1/options.ts +22 -0
  154. package/src/d1/splitter.ts +161 -0
  155. package/src/d1/types.ts +32 -0
  156. package/src/d1/utils.ts +49 -0
  157. package/src/delete.ts +100 -0
  158. package/src/deployments.ts +368 -0
  159. package/src/deprecated/index.ts +144 -0
  160. package/src/dev/dev-vars.ts +39 -0
  161. package/src/dev/dev.tsx +544 -301
  162. package/src/dev/get-local-persistence-path.ts +31 -0
  163. package/src/dev/local.tsx +934 -227
  164. package/src/dev/remote.tsx +621 -190
  165. package/src/dev/start-server.ts +534 -0
  166. package/src/dev/use-esbuild.ts +183 -80
  167. package/src/dev/validate-dev-props.ts +40 -0
  168. package/src/dev-registry.ts +202 -0
  169. package/src/dev.tsx +929 -0
  170. package/src/dialogs.ts +136 -0
  171. package/src/dispatch-namespace.ts +211 -0
  172. package/src/docs/helpers.ts +50 -0
  173. package/src/docs/index.ts +54 -0
  174. package/src/durable.ts +102 -0
  175. package/src/entry.ts +288 -110
  176. package/src/environment-variables/factory.ts +89 -0
  177. package/src/environment-variables/misc-variables.ts +30 -0
  178. package/src/errors.ts +11 -0
  179. package/src/generate/index.ts +298 -0
  180. package/src/git-client.ts +135 -0
  181. package/src/global-wrangler-config-path.ts +26 -0
  182. package/src/https-options.ts +85 -80
  183. package/src/index.ts +768 -0
  184. package/src/init.ts +1032 -0
  185. package/src/inspect.ts +722 -557
  186. package/src/intl-polyfill.d.ts +139 -0
  187. package/src/is-ci.ts +14 -0
  188. package/src/is-interactive.ts +16 -0
  189. package/src/jest.d.ts +4 -0
  190. package/src/kv/helpers.ts +433 -0
  191. package/src/kv/index.ts +594 -0
  192. package/src/logger.ts +123 -0
  193. package/src/metrics/index.ts +5 -0
  194. package/src/metrics/metrics-config.ts +239 -0
  195. package/src/metrics/metrics-dispatcher.ts +96 -0
  196. package/src/metrics/metrics-usage-headers.ts +24 -0
  197. package/src/metrics/send-event.ts +99 -0
  198. package/src/miniflare-cli/README.md +30 -0
  199. package/src/miniflare-cli/assets.ts +251 -0
  200. package/src/miniflare-cli/index.ts +210 -0
  201. package/src/miniflare-cli/request-context.ts +40 -0
  202. package/src/miniflare-cli/tsconfig.json +9 -0
  203. package/src/miniflare-cli/tsconfig.tsbuildinfo +1 -0
  204. package/src/miniflare-cli/types.ts +11 -0
  205. package/src/module-collection.ts +307 -227
  206. package/src/mtls-certificate/cli.ts +155 -0
  207. package/src/open-in-browser.ts +8 -16
  208. package/src/package-manager.ts +183 -90
  209. package/src/pages/build.ts +410 -0
  210. package/src/pages/buildFunctions.ts +140 -0
  211. package/src/pages/constants.ts +18 -0
  212. package/src/pages/deployment-tails.ts +281 -0
  213. package/src/pages/deployments.tsx +84 -0
  214. package/src/pages/dev.ts +716 -0
  215. package/src/pages/errors.ts +67 -0
  216. package/src/pages/functions/buildPlugin.ts +113 -0
  217. package/src/pages/functions/buildWorker.ts +291 -0
  218. package/src/pages/functions/filepath-routing.test.ts +234 -0
  219. package/src/pages/functions/filepath-routing.ts +189 -0
  220. package/src/pages/functions/identifiers.ts +78 -0
  221. package/src/pages/functions/routes-consolidation.test.ts +250 -0
  222. package/src/pages/functions/routes-consolidation.ts +73 -0
  223. package/src/pages/functions/routes-transformation.test.ts +282 -0
  224. package/src/pages/functions/routes-transformation.ts +115 -0
  225. package/src/pages/functions/routes-validation.test.ts +403 -0
  226. package/src/pages/functions/routes-validation.ts +202 -0
  227. package/src/pages/functions/routes.ts +151 -0
  228. package/src/pages/functions/tsconfig.json +8 -0
  229. package/src/pages/functions/tsconfig.tsbuildinfo +1 -0
  230. package/src/pages/functions.ts +86 -0
  231. package/src/pages/hash.ts +13 -0
  232. package/src/pages/index.ts +102 -0
  233. package/src/pages/projects.tsx +159 -0
  234. package/src/pages/prompt-select-project.tsx +31 -0
  235. package/src/pages/publish.tsx +267 -0
  236. package/src/pages/types.ts +46 -0
  237. package/src/pages/upload.tsx +469 -0
  238. package/src/pages/utils.ts +23 -0
  239. package/src/parse.ts +247 -122
  240. package/src/paths.ts +53 -8
  241. package/src/proxy.ts +629 -373
  242. package/src/publish/index.ts +274 -0
  243. package/src/publish/publish.ts +1060 -0
  244. package/src/pubsub/index.ts +286 -0
  245. package/src/pubsub/pubsub-commands.ts +623 -0
  246. package/src/queues/cli/commands/consumer/add.ts +71 -0
  247. package/src/queues/cli/commands/consumer/index.ts +19 -0
  248. package/src/queues/cli/commands/consumer/remove.ts +31 -0
  249. package/src/queues/cli/commands/create.ts +25 -0
  250. package/src/queues/cli/commands/delete.ts +26 -0
  251. package/src/queues/cli/commands/index.ts +35 -0
  252. package/src/queues/cli/commands/list.ts +25 -0
  253. package/src/queues/client.ts +136 -0
  254. package/src/queues/utils.ts +18 -0
  255. package/src/r2/constants.ts +4 -0
  256. package/src/r2/helpers.ts +132 -0
  257. package/src/r2/index.ts +289 -0
  258. package/src/routes.ts +140 -0
  259. package/src/secret/index.ts +376 -0
  260. package/src/selfsigned.d.ts +23 -23
  261. package/src/sites.ts +484 -0
  262. package/src/tail/createTail.ts +406 -0
  263. package/src/tail/filters.ts +109 -111
  264. package/src/tail/index.ts +208 -296
  265. package/src/tail/printing.ts +107 -47
  266. package/src/traverse-module-graph.ts +53 -0
  267. package/src/tsconfig-sanity.ts +16 -0
  268. package/src/type-generation.ts +181 -0
  269. package/src/update-check.ts +19 -0
  270. package/src/user/access.ts +68 -0
  271. package/src/user/auth-variables.ts +113 -0
  272. package/src/user/choose-account.tsx +39 -0
  273. package/src/user/generate-auth-url.ts +33 -0
  274. package/src/user/generate-random-state.ts +16 -0
  275. package/src/user/index.ts +2 -0
  276. package/src/user/user.ts +1234 -0
  277. package/src/utils/collectKeyValues.ts +14 -0
  278. package/src/utils/render.ts +93 -0
  279. package/src/whoami.ts +135 -0
  280. package/src/worker.ts +211 -100
  281. package/src/yargs-types.ts +37 -0
  282. package/src/zones.ts +191 -0
  283. package/templates/__tests__/pages-dev-util.test.ts +128 -0
  284. package/templates/__tests__/tsconfig-sanity.ts +12 -0
  285. package/templates/__tests__/tsconfig.json +8 -0
  286. package/templates/__tests__/tsconfig.tsbuildinfo +1 -0
  287. package/templates/checked-fetch.js +23 -0
  288. package/templates/d1-beta-facade.js +244 -0
  289. package/templates/facade.d.ts +14 -0
  290. package/templates/first-party-worker-module-facade.ts +19 -0
  291. package/templates/format-dev-errors.ts +34 -0
  292. package/templates/gitignore +172 -0
  293. package/templates/init-tests/test-jest-new-worker.js +23 -0
  294. package/templates/init-tests/test-vitest-new-worker.js +24 -0
  295. package/templates/init-tests/test-vitest-new-worker.ts +25 -0
  296. package/templates/middleware/common.ts +62 -0
  297. package/templates/middleware/loader-modules.ts +84 -0
  298. package/templates/middleware/loader-sw.ts +233 -0
  299. package/templates/middleware/middleware-miniflare3-json-error.ts +32 -0
  300. package/templates/middleware/middleware-pretty-error.ts +40 -0
  301. package/templates/middleware/middleware-scheduled.ts +15 -0
  302. package/templates/new-worker-scheduled.js +17 -0
  303. package/templates/new-worker-scheduled.ts +32 -0
  304. package/templates/new-worker.js +3 -3
  305. package/templates/new-worker.ts +21 -3
  306. package/templates/no-op-worker.js +10 -0
  307. package/templates/pages-dev-pipeline.ts +31 -0
  308. package/templates/pages-dev-util.ts +52 -0
  309. package/templates/pages-shim.ts +12 -0
  310. package/templates/pages-template-plugin.ts +180 -0
  311. package/templates/pages-template-worker.ts +189 -0
  312. package/templates/serve-static-assets.ts +66 -0
  313. package/templates/service-bindings-module-facade.js +55 -0
  314. package/templates/service-bindings-sw-facade.js +42 -0
  315. package/templates/tsconfig-sanity.ts +11 -0
  316. package/templates/tsconfig.init.json +105 -0
  317. package/templates/tsconfig.json +6 -103
  318. package/templates/tsconfig.tsbuildinfo +1 -0
  319. package/wrangler-dist/cli.d.ts +1641 -0
  320. package/wrangler-dist/cli.js +146057 -132724
  321. package/wrangler-dist/wasm-sync.wasm +0 -0
  322. package/pages/functions/buildWorker.ts +0 -62
  323. package/pages/functions/filepath-routing.test.ts +0 -123
  324. package/pages/functions/filepath-routing.ts +0 -178
  325. package/pages/functions/identifiers.ts +0 -78
  326. package/pages/functions/routes.ts +0 -151
  327. package/pages/functions/template-worker.ts +0 -130
  328. package/src/__tests__/dev2.test.tsx +0 -152
  329. package/src/__tests__/helpers/faye-websocket.d.ts +0 -6
  330. package/src/__tests__/helpers/mock-cfetch.ts +0 -207
  331. package/src/__tests__/helpers/mock-user.ts +0 -27
  332. package/src/__tests__/pages.test.ts +0 -44
  333. package/src/__tests__/sentry.test.ts +0 -146
  334. package/src/dialogs.tsx +0 -77
  335. package/src/environment-variables.ts +0 -33
  336. package/src/index.tsx +0 -2329
  337. package/src/kv/index.tsx +0 -339
  338. package/src/pages.tsx +0 -1045
  339. package/src/publish.ts +0 -352
  340. package/src/r2.ts +0 -50
  341. package/src/reporting.ts +0 -131
  342. package/src/sites.tsx +0 -238
  343. package/src/user.tsx +0 -1065
  344. package/src/whoami.tsx +0 -69
  345. package/templates/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
@@ -1,9 +1,10 @@
1
1
  import type { Environment, RawEnvironment } from "./environment";
2
+ import type { CamelCaseKey } from "yargs";
2
3
 
3
4
  /**
4
5
  * This is the static type definition for the configuration object.
5
6
  *
6
- * It reflects the configuration that you can write in wrangler.toml,
7
+ * It reflects a normalized and validated version of the configuration that you can write in wrangler.toml,
7
8
  * and optionally augment with arguments passed directly to wrangler.
8
9
  *
9
10
  * For more information about the configuration object, see the
@@ -17,263 +18,265 @@ import type { Environment, RawEnvironment } from "./environment";
17
18
  *
18
19
  * Legend for the annotations:
19
20
  *
20
- * - `@breaking`: the deprecation/optionality is a breaking change from wrangler 1.
21
+ * - `@breaking`: the deprecation/optionality is a breaking change from Wrangler v1.
21
22
  * - `@todo`: there's more work to be done (with details attached).
22
23
  */
23
- export type Config = ConfigFields<Environment, DevConfig> & Environment;
24
+ export type Config = ConfigFields<DevConfig> & Environment;
24
25
 
25
- export type RawConfig = Partial<ConfigFields<RawEnvironment, RawDevConfig>> &
26
- RawEnvironment &
27
- DeprecatedConfigFields;
26
+ export type RawConfig = Partial<ConfigFields<RawDevConfig>> &
27
+ RawEnvironment &
28
+ DeprecatedConfigFields &
29
+ EnvironmentMap;
28
30
 
29
- export interface ConfigFields<
30
- Env extends RawEnvironment,
31
- Dev extends RawDevConfig
32
- > {
33
- configPath: string | undefined;
31
+ export interface ConfigFields<Dev extends RawDevConfig> {
32
+ configPath: string | undefined;
34
33
 
35
- /**
36
- * The entrypoint/path to the JavaScript file that will be executed.
37
- */
38
- main: string | undefined;
34
+ /**
35
+ * A boolean to enable "legacy" style wrangler environments (from Wrangler v1).
36
+ * These have been superseded by Services, but there may be projects that won't
37
+ * (or can't) use them. If you're using a legacy environment, you can set this
38
+ * to `true` to enable it.
39
+ */
40
+ legacy_env: boolean;
39
41
 
40
- /**
41
- * A boolean to enable "legacy" style wrangler environments (from wrangler 1).
42
- * These have been superseded by Services, but there may be projects that won't
43
- * (or can't) use them. If you're using a legacy environment, you can set this
44
- * to `true` to enable it.
45
- */
46
- legacy_env: boolean;
42
+ /**
43
+ * Whether Wrangler should send usage metrics to Cloudflare for this project.
44
+ *
45
+ * When defined this will override any user settings.
46
+ * Otherwise, Wrangler will use the user's preference.
47
+ */
48
+ send_metrics: boolean | undefined;
47
49
 
48
- /**
49
- * The `env` section defines overrides for the configuration for different environments.
50
- *
51
- * All environment fields can be specified at the top level of the config indicating the default environment settings.
52
- *
53
- * - Some fields are inherited and overridable in each environment.
54
- * - But some are not inherited and must be explicitly specified in every environment, if they are specified at the top level.
55
- *
56
- * For more information, see the documentation at https://developers.cloudflare.com/workers/cli-wrangler/configuration#environments
57
- *
58
- * @default `{}`
59
- */
60
- env: {
61
- [envName: string]: Env;
62
- };
50
+ /**
51
+ * Options to configure the development server that your worker will use.
52
+ */
53
+ dev: Dev;
63
54
 
64
- /**
65
- * Options to configure the development server that your worker will use.
66
- */
67
- dev: Dev;
55
+ /**
56
+ * A list of migrations that should be uploaded with your Worker.
57
+ *
58
+ * These define changes in your Durable Object declarations.
59
+ *
60
+ * More details at https://developers.cloudflare.com/workers/learning/using-durable-objects#configuring-durable-object-classes-with-migrations
61
+ *
62
+ * @default `[]`
63
+ */
64
+ migrations: {
65
+ /** A unique identifier for this migration. */
66
+ tag: string;
67
+ /** The new Durable Objects being defined. */
68
+ new_classes?: string[];
69
+ /** The Durable Objects being renamed. */
70
+ renamed_classes?: {
71
+ from: string;
72
+ to: string;
73
+ }[];
74
+ /** The Durable Objects being removed. */
75
+ deleted_classes?: string[];
76
+ }[];
68
77
 
69
- /**
70
- * A list of migrations that should be uploaded with your Worker.
71
- *
72
- * These define changes in your Durable Object declarations.
73
- *
74
- * More details at https://developers.cloudflare.com/workers/learning/using-durable-objects#configuring-durable-object-classes-with-migrations
75
- *
76
- * @default `[]`
77
- */
78
- migrations: {
79
- /** A unique identifier for this migration. */
80
- tag: string;
81
- /** The new Durable Objects being defined. */
82
- new_classes?: string[];
83
- /** The Durable Objects being renamed. */
84
- renamed_classes?: {
85
- from: string;
86
- to: string;
87
- }[];
88
- /** The Durable Objects being removed. */
89
- deleted_classes?: string[];
90
- }[];
78
+ /**
79
+ * The definition of a Worker Site, a feature that lets you upload
80
+ * static assets with your Worker.
81
+ *
82
+ * More details at https://developers.cloudflare.com/workers/platform/sites
83
+ */
84
+ site:
85
+ | {
86
+ /**
87
+ * The directory containing your static assets.
88
+ *
89
+ * It must be a path relative to your wrangler.toml file.
90
+ * Example: bucket = "./public"
91
+ *
92
+ * If there is a `site` field then it must contain this `bucket` field.
93
+ */
94
+ bucket: string;
91
95
 
92
- /**
93
- * The definition of a Worker Site, a feature that lets you upload
94
- * static assets with your Worker.
95
- *
96
- * More details at https://developers.cloudflare.com/workers/platform/sites
97
- */
98
- site:
99
- | {
100
- /**
101
- * The directory containing your static assets.
102
- *
103
- * It must be a path relative to your wrangler.toml file.
104
- * Example: bucket = "./public"
105
- *
106
- * If there is a `site` field then it must contain this `bucket` field.
107
- */
108
- bucket: string;
96
+ /**
97
+ * The location of your Worker script.
98
+ *
99
+ * @deprecated DO NOT use this (it's a holdover from Wrangler v1.x). Either use the top level `main` field, or pass the path to your entry file as a command line argument.
100
+ * @breaking
101
+ */
102
+ "entry-point"?: string;
109
103
 
110
- /**
111
- * The location of your Worker script.
112
- *
113
- * @deprecated DO NOT use this (it's a holdover from wrangler 1.x). Either use the top level `main` field, or pass the path to your entry file as a command line argument.
114
- * @breaking
115
- */
116
- "entry-point"?: string;
104
+ /**
105
+ * An exclusive list of .gitignore-style patterns that match file
106
+ * or directory names from your bucket location. Only matched
107
+ * items will be uploaded. Example: include = ["upload_dir"]
108
+ *
109
+ * @optional
110
+ * @default `[]`
111
+ */
112
+ include?: string[];
117
113
 
118
- /**
119
- * An exclusive list of .gitignore-style patterns that match file
120
- * or directory names from your bucket location. Only matched
121
- * items will be uploaded. Example: include = ["upload_dir"]
122
- *
123
- * @optional
124
- * @default `[]`
125
- */
126
- include?: string[];
114
+ /**
115
+ * A list of .gitignore-style patterns that match files or
116
+ * directories in your bucket that should be excluded from
117
+ * uploads. Example: exclude = ["ignore_dir"]
118
+ *
119
+ * @optional
120
+ * @default `[]`
121
+ */
122
+ exclude?: string[];
123
+ }
124
+ | undefined;
127
125
 
128
- /**
129
- * A list of .gitignore-style patterns that match files or
130
- * directories in your bucket that should be excluded from
131
- * uploads. Example: exclude = ["ignore_dir"]
132
- *
133
- * @optional
134
- * @default `[]`
135
- */
136
- exclude?: string[];
137
- }
138
- | undefined;
126
+ /**
127
+ * Serve a folder of static assets with your Worker, without any additional code.
128
+ * This can either be a string, or an object with additional config fields.
129
+ */
130
+ assets:
131
+ | {
132
+ bucket: string;
133
+ include: string[];
134
+ exclude: string[];
135
+ browser_TTL: number | undefined;
136
+ serve_single_page_app: boolean;
137
+ }
138
+ | undefined;
139
139
 
140
- /**
141
- * A list of wasm modules that your worker should be bound to. This is
142
- * the "legacy" way of binding to a wasm module. ES module workers should
143
- * do proper module imports.
144
- */
145
- wasm_modules:
146
- | {
147
- [key: string]: string;
148
- }
149
- | undefined;
140
+ /**
141
+ * A list of wasm modules that your worker should be bound to. This is
142
+ * the "legacy" way of binding to a wasm module. ES module workers should
143
+ * do proper module imports.
144
+ */
145
+ wasm_modules:
146
+ | {
147
+ [key: string]: string;
148
+ }
149
+ | undefined;
150
150
 
151
- /**
152
- * A list of text files that your worker should be bound to. This is
153
- * the "legacy" way of binding to a text file. ES module workers should
154
- * do proper module imports.
155
- */
156
- text_blobs:
157
- | {
158
- [key: string]: string;
159
- }
160
- | undefined;
151
+ /**
152
+ * A list of text files that your worker should be bound to. This is
153
+ * the "legacy" way of binding to a text file. ES module workers should
154
+ * do proper module imports.
155
+ */
156
+ text_blobs:
157
+ | {
158
+ [key: string]: string;
159
+ }
160
+ | undefined;
161
161
 
162
- /**
163
- * Configures a custom build step to be run by Wrangler when building your Worker.
164
- *
165
- * Refer to the [custom builds documentation](https://developers.cloudflare.com/workers/cli-wrangler/configuration#build)
166
- * for more details.
167
- *
168
- * @default {}
169
- */
170
- build: {
171
- /** The command used to build your Worker. On Linux and macOS, the command is executed in the `sh` shell and the `cmd` shell for Windows. The `&&` and `||` shell operators may be used. */
172
- command?: string;
173
- /** The directory in which the command is executed. */
174
- cwd?: string;
175
- /** The directory to watch for changes while using wrangler dev, defaults to the current working directory */
176
- watch_dir?: string;
177
- /**
178
- * Deprecated field previously used to configure the build and upload of the script.
179
- * @deprecated
180
- */
181
- upload?: DeprecatedUpload;
182
- };
162
+ /**
163
+ * A list of data files that your worker should be bound to. This is
164
+ * the "legacy" way of binding to a data file. ES module workers should
165
+ * do proper module imports.
166
+ */
167
+ data_blobs:
168
+ | {
169
+ [key: string]: string;
170
+ }
171
+ | undefined;
172
+
173
+ /**
174
+ * By default, wrangler.toml is the source of truth for your environment configuration, like a terraform file.
175
+ *
176
+ * If you change your vars in the dashboard, wrangler *will* override/delete them on its next publish.
177
+ *
178
+ * If you want to keep your dashboard vars when wrangler deploys, set this field to true.
179
+ *
180
+ * @default false
181
+ * @nonInheritable
182
+ */
183
+ keep_vars?: boolean;
183
184
  }
184
185
 
185
186
  export interface DevConfig {
186
- /**
187
- * IP address for the local dev server to listen on,
188
- *
189
- * @default `127.0.0.1`
190
- * @todo this needs to be implemented
191
- */
192
- ip: string;
187
+ /**
188
+ * IP address for the local dev server to listen on,
189
+ *
190
+ * @default `0.0.0.0`
191
+ */
192
+ ip: string;
193
+
194
+ /**
195
+ * Port for the local dev server to listen on
196
+ *
197
+ * @default `8787`
198
+ */
199
+ port: number | undefined;
193
200
 
194
- /**
195
- * Port for the local dev server to listen on
196
- *
197
- * @default `8787`
198
- */
199
- port: number;
201
+ /**
202
+ * Port for the local dev server's inspector to listen on
203
+ *
204
+ * @default `9229`
205
+ */
206
+ inspector_port: number | undefined;
200
207
 
201
- /**
202
- * Protocol that local wrangler dev server listens to requests on.
203
- *
204
- * @default `http`
205
- * @todo this needs to be implemented
206
- */
207
- local_protocol: "http" | "https";
208
+ /**
209
+ * Protocol that local wrangler dev server listens to requests on.
210
+ *
211
+ * @default `http`
212
+ */
213
+ local_protocol: "http" | "https";
208
214
 
209
- /**
210
- * Protocol that wrangler dev forwards requests on
211
- *
212
- * Setting this to `http` is not currently implemented.
213
- * See https://github.com/cloudflare/wrangler2/issues/583
214
- *
215
- * @default `https`
216
- */
217
- upstream_protocol: "https" | "http";
215
+ /**
216
+ * Protocol that wrangler dev forwards requests on
217
+ *
218
+ * Setting this to `http` is not currently implemented.
219
+ * See https://github.com/cloudflare/workers-sdk/issues/583
220
+ *
221
+ * @default `https`
222
+ * @todo this needs to be implemented https://github.com/cloudflare/workers-sdk/issues/583
223
+ */
224
+ upstream_protocol: "https" | "http";
218
225
 
219
- /**
220
- * Host to forward requests to, defaults to the zone of project
221
- */
222
- host: string | undefined;
226
+ /**
227
+ * Host to forward requests to, defaults to the host of the first route of project
228
+ */
229
+ host: string | undefined;
223
230
  }
224
231
 
225
232
  export type RawDevConfig = Partial<DevConfig>;
226
233
 
227
234
  export interface DeprecatedConfigFields {
228
- /**
229
- * The project "type". A holdover from wrangler 1.x.
230
- * Valid values were "webpack", "javascript", and "rust".
231
- *
232
- * @deprecated DO NOT USE THIS. Most common features now work out of the box with wrangler, including modules, jsx, typescript, etc. If you need anything more, use a custom build.
233
- * @breaking
234
- */
235
- type?: "webpack" | "javascript" | "rust";
235
+ /**
236
+ * The project "type". A holdover from Wrangler v1.x.
237
+ * Valid values were "webpack", "javascript", and "rust".
238
+ *
239
+ * @deprecated DO NOT USE THIS. Most common features now work out of the box with wrangler, including modules, jsx, typescript, etc. If you need anything more, use a custom build.
240
+ * @breaking
241
+ */
242
+ type?: "webpack" | "javascript" | "rust";
236
243
 
237
- /**
238
- * Path to the webpack config to use when building your worker.
239
- * A holdover from wrangler 1.x, used with `type: "webpack"`.
240
- *
241
- * @deprecated DO NOT USE THIS. Most common features now work out of the box with wrangler, including modules, jsx, typescript, etc. If you need anything more, use a custom build.
242
- * @breaking
243
- */
244
- webpack_config?: string;
245
- }
244
+ /**
245
+ * Path to the webpack config to use when building your worker.
246
+ * A holdover from Wrangler v1.x, used with `type: "webpack"`.
247
+ *
248
+ * @deprecated DO NOT USE THIS. Most common features now work out of the box with wrangler, including modules, jsx, typescript, etc. If you need anything more, use a custom build.
249
+ * @breaking
250
+ */
251
+ webpack_config?: string;
246
252
 
247
- /**
248
- * Deprecated upload configuration.
249
- */
250
- export interface DeprecatedUpload {
251
- /**
252
- * The format of the Worker script.
253
- *
254
- * @deprecated We infer the format automatically now.
255
- */
256
- format?: "modules" | "service-worker";
257
-
258
- /**
259
- * The directory you wish to upload your worker from,
260
- * relative to the wrangler.toml file.
261
- *
262
- * Defaults to the directory containing the wrangler.toml file.
263
- *
264
- * @deprecated
265
- */
266
- dir?: string;
267
-
268
- /**
269
- * The path to the Worker script, relative to `upload.dir`.
270
- *
271
- * @deprecated This will be replaced by a command line argument.
272
- */
273
- main?: string;
253
+ /**
254
+ * Configuration only used by a standalone use of the miniflare binary.
255
+ * @deprecated
256
+ */
257
+ miniflare?: unknown;
258
+ }
274
259
 
275
- /**
276
- * @deprecated This is now defined at the top level `rules` field.
277
- */
278
- rules?: Environment["rules"];
260
+ interface EnvironmentMap {
261
+ /**
262
+ * The `env` section defines overrides for the configuration for different environments.
263
+ *
264
+ * All environment fields can be specified at the top level of the config indicating the default environment settings.
265
+ *
266
+ * - Some fields are inherited and overridable in each environment.
267
+ * - But some are not inherited and must be explicitly specified in every environment, if they are specified at the top level.
268
+ *
269
+ * For more information, see the documentation at https://developers.cloudflare.com/workers/cli-wrangler/configuration#environments
270
+ *
271
+ * @default `{}`
272
+ */
273
+ env?: {
274
+ [envName: string]: RawEnvironment;
275
+ };
279
276
  }
277
+
278
+ // API dev only passes in camel-cased versions of keys, so ensure
279
+ // only camel-cased keys are used
280
+ export type OnlyCamelCase<T = Record<string, never>> = {
281
+ [key in keyof T as CamelCaseKey<key>]: T[key];
282
+ };
@@ -5,76 +5,76 @@
5
5
  * You can check whether the overall tree has errors or warnings, and you can render a string representation of the errors or warnings.
6
6
  */
7
7
  export class Diagnostics {
8
- errors: string[] = [];
9
- warnings: string[] = [];
10
- children: Diagnostics[] = [];
8
+ errors: string[] = [];
9
+ warnings: string[] = [];
10
+ children: Diagnostics[] = [];
11
11
 
12
- /**
13
- * Create a new Diagnostics object.
14
- * @param description A general description of this collection of messages.
15
- */
16
- constructor(public description: string) {}
12
+ /**
13
+ * Create a new Diagnostics object.
14
+ * @param description A general description of this collection of messages.
15
+ */
16
+ constructor(public description: string) {}
17
17
 
18
- /**
19
- * Merge the given `diagnostics` into this as a child.
20
- */
21
- addChild(diagnostics: Diagnostics): void {
22
- if (diagnostics.hasErrors() || diagnostics.hasWarnings()) {
23
- this.children.push(diagnostics);
24
- }
25
- }
18
+ /**
19
+ * Merge the given `diagnostics` into this as a child.
20
+ */
21
+ addChild(diagnostics: Diagnostics): void {
22
+ if (diagnostics.hasErrors() || diagnostics.hasWarnings()) {
23
+ this.children.push(diagnostics);
24
+ }
25
+ }
26
26
 
27
- /** Does this or any of its children have errors. */
28
- hasErrors(): boolean {
29
- if (this.errors.length > 0) {
30
- return true;
31
- } else {
32
- return this.children.some((child) => child.hasErrors());
33
- }
34
- }
27
+ /** Does this or any of its children have errors. */
28
+ hasErrors(): boolean {
29
+ if (this.errors.length > 0) {
30
+ return true;
31
+ } else {
32
+ return this.children.some((child) => child.hasErrors());
33
+ }
34
+ }
35
35
 
36
- /** Render the errors of this and all its children. */
37
- renderErrors(): string {
38
- return this.render("errors");
39
- }
36
+ /** Render the errors of this and all its children. */
37
+ renderErrors(): string {
38
+ return this.render("errors");
39
+ }
40
40
 
41
- /** Does this or any of its children have warnings. */
42
- hasWarnings(): boolean {
43
- if (this.warnings.length > 0) {
44
- return true;
45
- } else {
46
- return this.children.some((child) => child.hasWarnings());
47
- }
48
- }
41
+ /** Does this or any of its children have warnings. */
42
+ hasWarnings(): boolean {
43
+ if (this.warnings.length > 0) {
44
+ return true;
45
+ } else {
46
+ return this.children.some((child) => child.hasWarnings());
47
+ }
48
+ }
49
49
 
50
- /** Render the warnings of this and all its children. */
51
- renderWarnings(): string {
52
- return this.render("warnings");
53
- }
50
+ /** Render the warnings of this and all its children. */
51
+ renderWarnings(): string {
52
+ return this.render("warnings");
53
+ }
54
54
 
55
- private render(field: "errors" | "warnings"): string {
56
- const hasMethod = field === "errors" ? "hasErrors" : "hasWarnings";
57
- return indentText(
58
- `${this.description}\n` +
59
- // Output all the fields (errors or warnings) at this level
60
- this[field].map((message) => `- ${indentText(message)}`).join("\n") +
61
- // Output all the child diagnostics at the next level
62
- this.children
63
- .map((child) =>
64
- child[hasMethod]() ? "\n- " + child.render(field) : ""
65
- )
66
- .filter((output) => output !== "")
67
- .join("\n")
68
- );
69
- }
55
+ private render(field: "errors" | "warnings"): string {
56
+ const hasMethod = field === "errors" ? "hasErrors" : "hasWarnings";
57
+ return indentText(
58
+ `${this.description}\n` +
59
+ // Output all the fields (errors or warnings) at this level
60
+ this[field].map((message) => `- ${indentText(message)}`).join("\n") +
61
+ // Output all the child diagnostics at the next level
62
+ this.children
63
+ .map((child) =>
64
+ child[hasMethod]() ? "\n- " + child.render(field) : ""
65
+ )
66
+ .filter((output) => output !== "")
67
+ .join("\n")
68
+ );
69
+ }
70
70
  }
71
71
 
72
72
  /** Indent all the but the first line by two spaces. */
73
73
  function indentText(str: string): string {
74
- return str
75
- .split("\n")
76
- .map((line, index) =>
77
- (index === 0 ? line : ` ${line}`).replace(/^\s*$/, "")
78
- )
79
- .join("\n");
74
+ return str
75
+ .split("\n")
76
+ .map((line, index) =>
77
+ (index === 0 ? line : ` ${line}`).replace(/^\s*$/, "")
78
+ )
79
+ .join("\n");
80
80
  }