wrangler 0.0.0-e64812e → 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 (374) hide show
  1. package/README.md +24 -4
  2. package/bin/wrangler.js +170 -62
  3. package/kv-asset-handler.js +1 -0
  4. package/miniflare-dist/index.mjs +1637 -81
  5. package/package.json +198 -152
  6. package/src/__tests__/access.test.ts +25 -0
  7. package/src/__tests__/api-dev.test.ts +238 -0
  8. package/src/__tests__/api-devregistry.test.ts +121 -0
  9. package/src/__tests__/api.test.ts +102 -0
  10. package/src/__tests__/config-cache-without-cache-dir.test.ts +38 -0
  11. package/src/__tests__/config-cache.test.ts +30 -24
  12. package/src/__tests__/configuration.test.ts +4660 -3363
  13. package/src/__tests__/constellation.test.ts +371 -0
  14. package/src/__tests__/d1/d1.test.ts +82 -0
  15. package/src/__tests__/d1/execute.test.ts +66 -0
  16. package/src/__tests__/d1/migrate.test.ts +257 -0
  17. package/src/__tests__/d1/splitter.test.ts +255 -0
  18. package/src/__tests__/delete.test.ts +272 -0
  19. package/src/__tests__/deployments.test.ts +369 -0
  20. package/src/__tests__/dev.test.tsx +1589 -952
  21. package/src/__tests__/generate.test.ts +254 -0
  22. package/src/__tests__/get-host-from-url.test.ts +16 -0
  23. package/src/__tests__/guess-worker-format.test.ts +103 -68
  24. package/src/__tests__/helpers/cmd-shim.d.ts +6 -6
  25. package/src/__tests__/helpers/end-event-loop.ts +6 -0
  26. package/src/__tests__/helpers/mock-account-id.ts +24 -24
  27. package/src/__tests__/helpers/mock-auth-domain.ts +20 -0
  28. package/src/__tests__/helpers/mock-bin.ts +20 -20
  29. package/src/__tests__/helpers/mock-console.ts +64 -39
  30. package/src/__tests__/helpers/mock-dialogs.ts +88 -79
  31. package/src/__tests__/helpers/mock-get-pages-upload-token.ts +25 -0
  32. package/src/__tests__/helpers/mock-get-zone-from-host.ts +11 -0
  33. package/src/__tests__/helpers/mock-http-server.ts +30 -30
  34. package/src/__tests__/helpers/mock-istty.ts +65 -18
  35. package/src/__tests__/helpers/mock-known-routes.ts +12 -0
  36. package/src/__tests__/helpers/mock-kv.ts +41 -28
  37. package/src/__tests__/helpers/mock-oauth-flow.ts +241 -233
  38. package/src/__tests__/helpers/mock-process.ts +34 -0
  39. package/src/__tests__/helpers/mock-set-timeout.ts +16 -0
  40. package/src/__tests__/helpers/mock-stdin.ts +82 -77
  41. package/src/__tests__/helpers/mock-web-socket.ts +21 -21
  42. package/src/__tests__/helpers/msw/blob-worker.cjs +19 -0
  43. package/src/__tests__/helpers/msw/handlers/access.ts +13 -0
  44. package/src/__tests__/helpers/msw/handlers/deployments.ts +160 -0
  45. package/src/__tests__/helpers/msw/handlers/namespaces.ts +81 -0
  46. package/src/__tests__/helpers/msw/handlers/oauth.ts +31 -0
  47. package/src/__tests__/helpers/msw/handlers/r2.ts +60 -0
  48. package/src/__tests__/helpers/msw/handlers/script.ts +56 -0
  49. package/src/__tests__/helpers/msw/handlers/user.ts +52 -0
  50. package/src/__tests__/helpers/msw/handlers/zones.ts +20 -0
  51. package/src/__tests__/helpers/msw/index.ts +52 -0
  52. package/src/__tests__/helpers/msw/read-file-sync.js +61 -0
  53. package/src/__tests__/helpers/run-in-tmp.ts +27 -28
  54. package/src/__tests__/helpers/run-wrangler.ts +8 -8
  55. package/src/__tests__/helpers/string-dynamic-values-matcher.ts +28 -0
  56. package/src/__tests__/helpers/worker-scripts/child-wrangler.toml +1 -0
  57. package/src/__tests__/helpers/worker-scripts/hello-world-worker.js +5 -0
  58. package/src/__tests__/helpers/worker-scripts/hello-world-wrangler.toml +1 -0
  59. package/src/__tests__/helpers/worker-scripts/parent-worker.js +11 -0
  60. package/src/__tests__/helpers/worker-scripts/parent-wrangler.toml +5 -0
  61. package/src/__tests__/helpers/write-worker-source.ts +16 -16
  62. package/src/__tests__/helpers/write-wrangler-toml.ts +9 -9
  63. package/src/__tests__/https-options.test.ts +142 -109
  64. package/src/__tests__/index.test.ts +262 -236
  65. package/src/__tests__/init.test.ts +3388 -1603
  66. package/src/__tests__/jest.setup.ts +152 -50
  67. package/src/__tests__/kv.test.ts +1789 -1471
  68. package/src/__tests__/logger.test.ts +167 -75
  69. package/src/__tests__/logout.test.ts +47 -0
  70. package/src/__tests__/metrics.test.ts +493 -0
  71. package/src/__tests__/middleware.scheduled.test.ts +145 -0
  72. package/src/__tests__/middleware.test.ts +816 -0
  73. package/src/__tests__/mtls-certificates.test.ts +589 -0
  74. package/src/__tests__/package-manager.test.ts +303 -303
  75. package/src/__tests__/pages/deployment-list.test.ts +80 -0
  76. package/src/__tests__/pages/functions-build.test.ts +528 -0
  77. package/src/__tests__/pages/pages.test.ts +81 -0
  78. package/src/__tests__/pages/project-create.test.ts +63 -0
  79. package/src/__tests__/pages/project-list.test.ts +110 -0
  80. package/src/__tests__/pages/project-upload.test.ts +500 -0
  81. package/src/__tests__/pages/publish.test.ts +2864 -0
  82. package/src/__tests__/pages-deployment-tail.test.ts +957 -0
  83. package/src/__tests__/parse.test.ts +358 -252
  84. package/src/__tests__/paths.test.ts +39 -0
  85. package/src/__tests__/publish.test.ts +8736 -5355
  86. package/src/__tests__/pubsub.test.ts +496 -0
  87. package/src/__tests__/queues.test.ts +532 -0
  88. package/src/__tests__/r2.test.ts +369 -228
  89. package/src/__tests__/route.test.ts +18 -18
  90. package/src/__tests__/secret.test.ts +681 -469
  91. package/src/__tests__/tail.test.ts +866 -567
  92. package/src/__tests__/test-old-node-version.js +31 -0
  93. package/src/__tests__/traverse-module-graph.test.ts +220 -0
  94. package/src/__tests__/tsconfig-sanity.ts +12 -0
  95. package/src/__tests__/tsconfig.json +8 -0
  96. package/src/__tests__/tsconfig.tsbuildinfo +1 -0
  97. package/src/__tests__/type-generation.test.ts +234 -0
  98. package/src/__tests__/unstableDev.test.ts +61 -0
  99. package/src/__tests__/user.test.ts +107 -120
  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 +165 -98
  104. package/src/__tests__/worker-namespace.test.ts +340 -0
  105. package/src/abort.d.ts +1 -1
  106. package/src/api/dev.ts +321 -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 +79 -0
  110. package/src/api/pages/index.ts +5 -0
  111. package/src/api/pages/publish.tsx +371 -0
  112. package/src/bundle-reporter.ts +68 -0
  113. package/src/bundle.ts +890 -161
  114. package/src/cfetch/index.ts +120 -83
  115. package/src/cfetch/internal.ts +215 -97
  116. package/src/cli.ts +23 -8
  117. package/src/config/config.ts +244 -196
  118. package/src/config/diagnostics.ts +61 -61
  119. package/src/config/environment.ts +587 -357
  120. package/src/config/index.ts +395 -196
  121. package/src/config/validation-helpers.ts +379 -357
  122. package/src/config/validation.ts +2285 -1367
  123. package/src/config-cache.ts +81 -41
  124. package/src/constellation/createProject.tsx +51 -0
  125. package/src/constellation/deleteProject.ts +51 -0
  126. package/src/constellation/deleteProjectModel.ts +76 -0
  127. package/src/constellation/index.ts +75 -0
  128. package/src/constellation/listCatalog.tsx +35 -0
  129. package/src/constellation/listModel.tsx +49 -0
  130. package/src/constellation/listProject.tsx +28 -0
  131. package/src/constellation/listRuntime.tsx +28 -0
  132. package/src/constellation/options.ts +17 -0
  133. package/src/constellation/types.ts +17 -0
  134. package/src/constellation/uploadModel.tsx +84 -0
  135. package/src/constellation/utils.ts +90 -0
  136. package/src/create-worker-preview.ts +250 -142
  137. package/src/create-worker-upload-form.ts +364 -238
  138. package/src/d1/backups.tsx +219 -0
  139. package/src/d1/constants.ts +5 -0
  140. package/src/d1/create.tsx +102 -0
  141. package/src/d1/delete.ts +53 -0
  142. package/src/d1/execute.tsx +371 -0
  143. package/src/d1/formatTimeAgo.ts +14 -0
  144. package/src/d1/index.ts +100 -0
  145. package/src/d1/list.tsx +62 -0
  146. package/src/d1/migrations/apply.tsx +235 -0
  147. package/src/d1/migrations/create.tsx +79 -0
  148. package/src/d1/migrations/helpers.ts +171 -0
  149. package/src/d1/migrations/index.ts +3 -0
  150. package/src/d1/migrations/list.tsx +95 -0
  151. package/src/d1/migrations/options.ts +23 -0
  152. package/src/d1/options.ts +22 -0
  153. package/src/d1/splitter.ts +161 -0
  154. package/src/d1/types.ts +32 -0
  155. package/src/d1/utils.ts +49 -0
  156. package/src/delete.ts +100 -0
  157. package/src/deployments.ts +368 -0
  158. package/src/deprecated/index.ts +144 -0
  159. package/src/dev/dev-vars.ts +20 -17
  160. package/src/dev/dev.tsx +538 -352
  161. package/src/dev/get-local-persistence-path.ts +31 -0
  162. package/src/dev/local.tsx +932 -298
  163. package/src/dev/remote.tsx +623 -215
  164. package/src/dev/start-server.ts +545 -0
  165. package/src/dev/use-esbuild.ts +194 -97
  166. package/src/dev/validate-dev-props.ts +40 -0
  167. package/src/dev-registry.ts +213 -0
  168. package/src/dev.tsx +937 -0
  169. package/src/dialogs.ts +136 -0
  170. package/src/dispatch-namespace.ts +211 -0
  171. package/src/docs/helpers.ts +50 -0
  172. package/src/docs/index.ts +54 -0
  173. package/src/durable.ts +87 -87
  174. package/src/entry.ts +253 -231
  175. package/src/environment-variables/factory.ts +89 -0
  176. package/src/environment-variables/misc-variables.ts +30 -0
  177. package/src/errors.ts +6 -6
  178. package/src/generate/index.ts +304 -0
  179. package/src/git-client.ts +135 -0
  180. package/src/global-wrangler-config-path.ts +26 -0
  181. package/src/https-options.ts +84 -80
  182. package/src/index.ts +769 -0
  183. package/src/init.ts +1123 -0
  184. package/src/inspect.ts +816 -595
  185. package/src/intl-polyfill.d.ts +123 -123
  186. package/src/is-ci.ts +14 -0
  187. package/src/is-interactive.ts +16 -0
  188. package/src/jest.d.ts +4 -0
  189. package/src/kv/helpers.ts +433 -0
  190. package/src/kv/index.ts +594 -0
  191. package/src/logger.ts +100 -43
  192. package/src/metrics/index.ts +5 -0
  193. package/src/metrics/metrics-config.ts +239 -0
  194. package/src/metrics/metrics-dispatcher.ts +96 -0
  195. package/src/metrics/metrics-usage-headers.ts +24 -0
  196. package/src/metrics/send-event.ts +99 -0
  197. package/src/miniflare-cli/assets.ts +251 -0
  198. package/src/miniflare-cli/index.ts +202 -33
  199. package/src/miniflare-cli/request-context.ts +18 -18
  200. package/src/miniflare-cli/tsconfig.json +9 -0
  201. package/src/miniflare-cli/tsconfig.tsbuildinfo +1 -0
  202. package/src/miniflare-cli/types.ts +11 -0
  203. package/src/module-collection.ts +290 -215
  204. package/src/mtls-certificate/cli.ts +155 -0
  205. package/src/open-in-browser.ts +4 -6
  206. package/src/package-manager.ts +173 -128
  207. package/src/pages/build.ts +423 -0
  208. package/src/pages/buildFunctions.ts +140 -0
  209. package/src/pages/constants.ts +18 -0
  210. package/src/pages/deployment-tails.ts +281 -0
  211. package/src/pages/deployments.tsx +84 -0
  212. package/src/pages/dev.ts +734 -0
  213. package/src/pages/errors.ts +67 -0
  214. package/src/pages/functions/buildPlugin.ts +114 -0
  215. package/src/pages/functions/buildWorker.ts +350 -0
  216. package/{pages → src/pages}/functions/filepath-routing.test.ts +113 -113
  217. package/src/pages/functions/filepath-routing.ts +189 -0
  218. package/src/pages/functions/identifiers.ts +78 -0
  219. package/src/pages/functions/routes-consolidation.test.ts +250 -0
  220. package/src/pages/functions/routes-consolidation.ts +73 -0
  221. package/src/pages/functions/routes-transformation.test.ts +282 -0
  222. package/src/pages/functions/routes-transformation.ts +115 -0
  223. package/src/pages/functions/routes-validation.test.ts +403 -0
  224. package/src/pages/functions/routes-validation.ts +202 -0
  225. package/src/pages/functions/routes.ts +151 -0
  226. package/src/pages/functions/tsconfig.json +8 -0
  227. package/src/pages/functions/tsconfig.tsbuildinfo +1 -0
  228. package/src/pages/functions.ts +86 -0
  229. package/src/pages/hash.ts +13 -0
  230. package/src/pages/index.ts +102 -0
  231. package/src/pages/projects.tsx +159 -0
  232. package/src/pages/prompt-select-project.tsx +31 -0
  233. package/src/pages/publish.tsx +267 -0
  234. package/src/pages/types.ts +46 -0
  235. package/src/pages/upload.tsx +469 -0
  236. package/src/pages/utils.ts +23 -0
  237. package/src/parse.ts +232 -126
  238. package/src/paths.ts +53 -8
  239. package/src/proxy.ts +623 -394
  240. package/src/publish/index.ts +274 -0
  241. package/src/publish/publish.ts +1067 -0
  242. package/src/pubsub/index.ts +286 -0
  243. package/src/pubsub/pubsub-commands.ts +623 -0
  244. package/src/queues/cli/commands/consumer/add.ts +71 -0
  245. package/src/queues/cli/commands/consumer/index.ts +19 -0
  246. package/src/queues/cli/commands/consumer/remove.ts +31 -0
  247. package/src/queues/cli/commands/create.ts +25 -0
  248. package/src/queues/cli/commands/delete.ts +26 -0
  249. package/src/queues/cli/commands/index.ts +35 -0
  250. package/src/queues/cli/commands/list.ts +25 -0
  251. package/src/queues/client.ts +136 -0
  252. package/src/queues/utils.ts +18 -0
  253. package/src/r2/constants.ts +4 -0
  254. package/src/r2/helpers.ts +132 -0
  255. package/src/r2/index.ts +289 -0
  256. package/src/routes.ts +140 -0
  257. package/src/secret/index.ts +379 -0
  258. package/src/selfsigned.d.ts +23 -23
  259. package/src/sites.ts +484 -0
  260. package/src/tail/createTail.ts +415 -0
  261. package/src/tail/filters.ts +109 -111
  262. package/src/tail/index.ts +208 -296
  263. package/src/tail/printing.ts +116 -51
  264. package/src/traverse-module-graph.ts +54 -0
  265. package/src/tsconfig-sanity.ts +16 -0
  266. package/src/type-generation.ts +187 -0
  267. package/src/update-check.ts +11 -11
  268. package/src/user/access.ts +68 -0
  269. package/src/user/auth-variables.ts +113 -0
  270. package/src/user/choose-account.tsx +39 -0
  271. package/src/user/generate-auth-url.ts +33 -0
  272. package/src/user/generate-random-state.ts +16 -0
  273. package/src/user/index.ts +2 -0
  274. package/src/user/user.ts +1234 -0
  275. package/src/utils/collectKeyValues.ts +14 -0
  276. package/src/utils/render.ts +93 -0
  277. package/src/whoami.ts +135 -0
  278. package/src/worker.ts +220 -106
  279. package/src/yargs-types.ts +37 -0
  280. package/src/zones.ts +191 -0
  281. package/templates/__tests__/pages-dev-util.test.ts +128 -0
  282. package/templates/__tests__/tsconfig-sanity.ts +12 -0
  283. package/templates/__tests__/tsconfig.json +8 -0
  284. package/templates/__tests__/tsconfig.tsbuildinfo +1 -0
  285. package/templates/checked-fetch.js +23 -0
  286. package/templates/d1-beta-facade.js +244 -0
  287. package/templates/facade.d.ts +14 -0
  288. package/templates/first-party-worker-module-facade.ts +19 -0
  289. package/templates/format-dev-errors.ts +34 -0
  290. package/templates/gitignore +1 -0
  291. package/templates/init-tests/test-jest-new-worker.js +23 -0
  292. package/templates/init-tests/test-vitest-new-worker.js +24 -0
  293. package/templates/init-tests/test-vitest-new-worker.ts +25 -0
  294. package/templates/middleware/common.ts +62 -0
  295. package/templates/middleware/loader-modules.ts +84 -0
  296. package/templates/middleware/loader-sw.ts +233 -0
  297. package/templates/middleware/middleware-miniflare3-json-error.ts +32 -0
  298. package/templates/middleware/middleware-pretty-error.ts +40 -0
  299. package/templates/middleware/middleware-scheduled.ts +15 -0
  300. package/templates/new-worker-scheduled.js +3 -3
  301. package/templates/new-worker-scheduled.ts +15 -15
  302. package/templates/new-worker.js +3 -3
  303. package/templates/new-worker.ts +18 -15
  304. package/templates/no-op-worker.js +10 -0
  305. package/templates/pages-dev-pipeline.ts +31 -0
  306. package/templates/pages-dev-util.ts +55 -0
  307. package/templates/pages-shim.ts +12 -0
  308. package/templates/pages-template-plugin.ts +180 -0
  309. package/templates/pages-template-worker.ts +189 -0
  310. package/templates/serve-static-assets.ts +66 -0
  311. package/templates/service-bindings-module-facade.js +55 -0
  312. package/templates/service-bindings-sw-facade.js +42 -0
  313. package/templates/tsconfig-sanity.ts +11 -0
  314. package/templates/tsconfig.init.json +105 -0
  315. package/templates/tsconfig.json +6 -103
  316. package/templates/tsconfig.tsbuildinfo +1 -0
  317. package/wrangler-dist/cli.d.ts +1673 -0
  318. package/wrangler-dist/cli.js +119141 -91468
  319. package/wrangler-dist/wasm-sync.wasm +0 -0
  320. package/pages/functions/buildPlugin.ts +0 -105
  321. package/pages/functions/buildWorker.ts +0 -151
  322. package/pages/functions/filepath-routing.ts +0 -189
  323. package/pages/functions/identifiers.ts +0 -78
  324. package/pages/functions/routes.ts +0 -156
  325. package/pages/functions/template-plugin.ts +0 -147
  326. package/pages/functions/template-worker.ts +0 -143
  327. package/src/__tests__/helpers/faye-websocket.d.ts +0 -6
  328. package/src/__tests__/helpers/mock-cfetch.ts +0 -211
  329. package/src/__tests__/pages.test.ts +0 -754
  330. package/src/dialogs.tsx +0 -135
  331. package/src/environment-variables.ts +0 -35
  332. package/src/index.tsx +0 -2864
  333. package/src/kv.ts +0 -408
  334. package/src/miniflare-cli/enum-keys.ts +0 -17
  335. package/src/pages.tsx +0 -2038
  336. package/src/publish.ts +0 -583
  337. package/src/r2.ts +0 -50
  338. package/src/sites.tsx +0 -295
  339. package/src/user.tsx +0 -1203
  340. package/src/whoami.tsx +0 -70
  341. package/templates/static-asset-facade.js +0 -47
  342. package/vendor/@cloudflare/kv-asset-handler/CHANGELOG.md +0 -332
  343. package/vendor/@cloudflare/kv-asset-handler/LICENSE_APACHE +0 -176
  344. package/vendor/@cloudflare/kv-asset-handler/LICENSE_MIT +0 -25
  345. package/vendor/@cloudflare/kv-asset-handler/README.md +0 -245
  346. package/vendor/@cloudflare/kv-asset-handler/dist/index.d.ts +0 -32
  347. package/vendor/@cloudflare/kv-asset-handler/dist/index.js +0 -354
  348. package/vendor/@cloudflare/kv-asset-handler/dist/mocks.d.ts +0 -13
  349. package/vendor/@cloudflare/kv-asset-handler/dist/mocks.js +0 -148
  350. package/vendor/@cloudflare/kv-asset-handler/dist/test/getAssetFromKV.d.ts +0 -1
  351. package/vendor/@cloudflare/kv-asset-handler/dist/test/getAssetFromKV.js +0 -436
  352. package/vendor/@cloudflare/kv-asset-handler/dist/test/mapRequestToAsset.d.ts +0 -1
  353. package/vendor/@cloudflare/kv-asset-handler/dist/test/mapRequestToAsset.js +0 -40
  354. package/vendor/@cloudflare/kv-asset-handler/dist/test/serveSinglePageApp.d.ts +0 -1
  355. package/vendor/@cloudflare/kv-asset-handler/dist/test/serveSinglePageApp.js +0 -42
  356. package/vendor/@cloudflare/kv-asset-handler/dist/types.d.ts +0 -26
  357. package/vendor/@cloudflare/kv-asset-handler/dist/types.js +0 -31
  358. package/vendor/@cloudflare/kv-asset-handler/package.json +0 -52
  359. package/vendor/@cloudflare/kv-asset-handler/src/index.ts +0 -296
  360. package/vendor/@cloudflare/kv-asset-handler/src/mocks.ts +0 -136
  361. package/vendor/@cloudflare/kv-asset-handler/src/test/getAssetFromKV.ts +0 -464
  362. package/vendor/@cloudflare/kv-asset-handler/src/test/mapRequestToAsset.ts +0 -33
  363. package/vendor/@cloudflare/kv-asset-handler/src/test/serveSinglePageApp.ts +0 -42
  364. package/vendor/@cloudflare/kv-asset-handler/src/types.ts +0 -39
  365. package/vendor/wrangler-mime/CHANGELOG.md +0 -289
  366. package/vendor/wrangler-mime/LICENSE +0 -21
  367. package/vendor/wrangler-mime/Mime.js +0 -97
  368. package/vendor/wrangler-mime/README.md +0 -187
  369. package/vendor/wrangler-mime/cli.js +0 -46
  370. package/vendor/wrangler-mime/index.js +0 -4
  371. package/vendor/wrangler-mime/lite.js +0 -4
  372. package/vendor/wrangler-mime/package.json +0 -52
  373. package/vendor/wrangler-mime/types/other.js +0 -1
  374. package/vendor/wrangler-mime/types/standard.js +0 -1
@@ -1,4 +1,5 @@
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.
@@ -17,218 +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
24
  export type Config = ConfigFields<DevConfig> & Environment;
24
25
 
25
26
  export type RawConfig = Partial<ConfigFields<RawDevConfig>> &
26
- RawEnvironment &
27
- DeprecatedConfigFields &
28
- EnvironmentMap;
27
+ RawEnvironment &
28
+ DeprecatedConfigFields &
29
+ EnvironmentMap;
29
30
 
30
31
  export interface ConfigFields<Dev extends RawDevConfig> {
31
- configPath: string | undefined;
32
-
33
- /**
34
- * A boolean to enable "legacy" style wrangler environments (from wrangler 1).
35
- * These have been superseded by Services, but there may be projects that won't
36
- * (or can't) use them. If you're using a legacy environment, you can set this
37
- * to `true` to enable it.
38
- */
39
- legacy_env: boolean;
40
-
41
- /**
42
- * Options to configure the development server that your worker will use.
43
- */
44
- dev: Dev;
45
-
46
- /**
47
- * A list of migrations that should be uploaded with your Worker.
48
- *
49
- * These define changes in your Durable Object declarations.
50
- *
51
- * More details at https://developers.cloudflare.com/workers/learning/using-durable-objects#configuring-durable-object-classes-with-migrations
52
- *
53
- * @default `[]`
54
- */
55
- migrations: {
56
- /** A unique identifier for this migration. */
57
- tag: string;
58
- /** The new Durable Objects being defined. */
59
- new_classes?: string[];
60
- /** The Durable Objects being renamed. */
61
- renamed_classes?: {
62
- from: string;
63
- to: string;
64
- }[];
65
- /** The Durable Objects being removed. */
66
- deleted_classes?: string[];
67
- }[];
68
-
69
- /**
70
- * The definition of a Worker Site, a feature that lets you upload
71
- * static assets with your Worker.
72
- *
73
- * More details at https://developers.cloudflare.com/workers/platform/sites
74
- */
75
- site:
76
- | {
77
- /**
78
- * The directory containing your static assets.
79
- *
80
- * It must be a path relative to your wrangler.toml file.
81
- * Example: bucket = "./public"
82
- *
83
- * If there is a `site` field then it must contain this `bucket` field.
84
- */
85
- bucket: string;
86
-
87
- /**
88
- * The location of your Worker script.
89
- *
90
- * @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.
91
- * @breaking
92
- */
93
- "entry-point"?: string;
94
-
95
- /**
96
- * An exclusive list of .gitignore-style patterns that match file
97
- * or directory names from your bucket location. Only matched
98
- * items will be uploaded. Example: include = ["upload_dir"]
99
- *
100
- * @optional
101
- * @default `[]`
102
- */
103
- include?: string[];
104
-
105
- /**
106
- * A list of .gitignore-style patterns that match files or
107
- * directories in your bucket that should be excluded from
108
- * uploads. Example: exclude = ["ignore_dir"]
109
- *
110
- * @optional
111
- * @default `[]`
112
- */
113
- exclude?: string[];
114
- }
115
- | undefined;
116
-
117
- /**
118
- * A list of wasm modules that your worker should be bound to. This is
119
- * the "legacy" way of binding to a wasm module. ES module workers should
120
- * do proper module imports.
121
- */
122
- wasm_modules:
123
- | {
124
- [key: string]: string;
125
- }
126
- | undefined;
127
-
128
- /**
129
- * A list of text files that your worker should be bound to. This is
130
- * the "legacy" way of binding to a text file. ES module workers should
131
- * do proper module imports.
132
- */
133
- text_blobs:
134
- | {
135
- [key: string]: string;
136
- }
137
- | undefined;
138
-
139
- /**
140
- * A list of data files that your worker should be bound to. This is
141
- * the "legacy" way of binding to a data file. ES module workers should
142
- * do proper module imports.
143
- */
144
- data_blobs:
145
- | {
146
- [key: string]: string;
147
- }
148
- | undefined;
32
+ configPath: string | undefined;
33
+
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;
41
+
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;
49
+
50
+ /**
51
+ * Options to configure the development server that your worker will use.
52
+ */
53
+ dev: Dev;
54
+
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
+ }[];
77
+
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;
95
+
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;
103
+
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[];
113
+
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;
125
+
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
+
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
+
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
+
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;
149
184
  }
150
185
 
151
186
  export interface DevConfig {
152
- /**
153
- * IP address for the local dev server to listen on,
154
- *
155
- * @default `localhost`
156
- */
157
- ip: string;
158
-
159
- /**
160
- * Port for the local dev server to listen on
161
- *
162
- * @default `8787`
163
- */
164
- port: number | undefined;
165
-
166
- /**
167
- * Protocol that local wrangler dev server listens to requests on.
168
- *
169
- * @default `http`
170
- */
171
- local_protocol: "http" | "https";
172
-
173
- /**
174
- * Protocol that wrangler dev forwards requests on
175
- *
176
- * Setting this to `http` is not currently implemented.
177
- * See https://github.com/cloudflare/wrangler2/issues/583
178
- *
179
- * @default `https`
180
- * @todo this needs to be implemented https://github.com/cloudflare/wrangler2/issues/583
181
- */
182
- upstream_protocol: "https" | "http";
183
-
184
- /**
185
- * Host to forward requests to, defaults to the host of the first route of project
186
- */
187
- host: Config["route"];
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;
200
+
201
+ /**
202
+ * Port for the local dev server's inspector to listen on
203
+ *
204
+ * @default `9229`
205
+ */
206
+ inspector_port: number | undefined;
207
+
208
+ /**
209
+ * Protocol that local wrangler dev server listens to requests on.
210
+ *
211
+ * @default `http`
212
+ */
213
+ local_protocol: "http" | "https";
214
+
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";
225
+
226
+ /**
227
+ * Host to forward requests to, defaults to the host of the first route of project
228
+ */
229
+ host: string | undefined;
188
230
  }
189
231
 
190
232
  export type RawDevConfig = Partial<DevConfig>;
191
233
 
192
234
  export interface DeprecatedConfigFields {
193
- /**
194
- * The project "type". A holdover from wrangler 1.x.
195
- * Valid values were "webpack", "javascript", and "rust".
196
- *
197
- * @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.
198
- * @breaking
199
- */
200
- type?: "webpack" | "javascript" | "rust";
201
-
202
- /**
203
- * Path to the webpack config to use when building your worker.
204
- * A holdover from wrangler 1.x, used with `type: "webpack"`.
205
- *
206
- * @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.
207
- * @breaking
208
- */
209
- webpack_config?: string;
210
-
211
- /**
212
- * Configuration only used by a standalone use of the miniflare binary.
213
- * @deprecated
214
- */
215
- miniflare?: unknown;
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";
243
+
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;
252
+
253
+ /**
254
+ * Configuration only used by a standalone use of the miniflare binary.
255
+ * @deprecated
256
+ */
257
+ miniflare?: unknown;
216
258
  }
217
259
 
218
260
  interface EnvironmentMap {
219
- /**
220
- * The `env` section defines overrides for the configuration for different environments.
221
- *
222
- * All environment fields can be specified at the top level of the config indicating the default environment settings.
223
- *
224
- * - Some fields are inherited and overridable in each environment.
225
- * - But some are not inherited and must be explicitly specified in every environment, if they are specified at the top level.
226
- *
227
- * For more information, see the documentation at https://developers.cloudflare.com/workers/cli-wrangler/configuration#environments
228
- *
229
- * @default `{}`
230
- */
231
- env?: {
232
- [envName: string]: RawEnvironment;
233
- };
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
+ };
234
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
  }