wrangler 0.0.0-e6c9c5c0 → 0.0.0-e72a5794

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 (283) hide show
  1. package/README.md +12 -14
  2. package/bin/wrangler.js +10 -76
  3. package/package.json +24 -23
  4. package/templates/__tests__/tsconfig.json +1 -1
  5. package/templates/checked-fetch.js +19 -4
  6. package/templates/facade.d.ts +4 -1
  7. package/templates/gitignore +1 -0
  8. package/templates/middleware/common.ts +9 -4
  9. package/templates/middleware/loader-modules.ts +64 -11
  10. package/templates/middleware/loader-sw.ts +2 -7
  11. package/templates/middleware/middleware-d1-beta.d.ts +3 -0
  12. package/templates/{d1-beta-facade.js → middleware/middleware-d1-beta.ts} +87 -84
  13. package/templates/middleware/middleware-miniflare3-json-error.ts +17 -5
  14. package/templates/middleware/middleware-multiworker-dev.d.ts +4 -0
  15. package/templates/middleware/middleware-multiworker-dev.ts +59 -0
  16. package/templates/middleware/middleware-serve-static-assets.d.ts +6 -0
  17. package/templates/middleware/middleware-serve-static-assets.ts +56 -0
  18. package/templates/new-worker-scheduled.ts +1 -1
  19. package/templates/new-worker.ts +4 -1
  20. package/templates/pages-dev-util.ts +4 -1
  21. package/templates/pages-shim.ts +0 -3
  22. package/templates/pages-template-plugin.ts +19 -5
  23. package/templates/pages-template-worker.ts +11 -2
  24. package/templates/tsconfig.init.json +1 -2
  25. package/templates/tsconfig.json +1 -1
  26. package/wrangler-dist/cli.d.ts +780 -82
  27. package/wrangler-dist/cli.js +79958 -74868
  28. package/import_meta_url.js +0 -3
  29. package/miniflare-config-stubs/.env.empty +0 -0
  30. package/miniflare-config-stubs/package.empty.json +0 -1
  31. package/miniflare-config-stubs/wrangler.empty.toml +0 -0
  32. package/miniflare-dist/index.mjs +0 -6364
  33. package/src/__tests__/access.test.ts +0 -25
  34. package/src/__tests__/api-dev.test.ts +0 -238
  35. package/src/__tests__/api-devregistry.test.js +0 -64
  36. package/src/__tests__/api.test.ts +0 -80
  37. package/src/__tests__/config-cache-without-cache-dir.test.ts +0 -38
  38. package/src/__tests__/config-cache.test.ts +0 -42
  39. package/src/__tests__/configuration.test.ts +0 -4163
  40. package/src/__tests__/d1/d1.test.ts +0 -127
  41. package/src/__tests__/d1/splitter.test.ts +0 -255
  42. package/src/__tests__/delete.test.ts +0 -266
  43. package/src/__tests__/deployments.test.ts +0 -105
  44. package/src/__tests__/dev.test.tsx +0 -1586
  45. package/src/__tests__/generate.test.ts +0 -238
  46. package/src/__tests__/get-host-from-url.test.ts +0 -16
  47. package/src/__tests__/guess-worker-format.test.ts +0 -85
  48. package/src/__tests__/helpers/clipboardy-mock.js +0 -4
  49. package/src/__tests__/helpers/cmd-shim.d.ts +0 -11
  50. package/src/__tests__/helpers/mock-account-id.ts +0 -48
  51. package/src/__tests__/helpers/mock-auth-domain.ts +0 -20
  52. package/src/__tests__/helpers/mock-bin.ts +0 -36
  53. package/src/__tests__/helpers/mock-console.ts +0 -106
  54. package/src/__tests__/helpers/mock-dialogs.ts +0 -139
  55. package/src/__tests__/helpers/mock-get-zone-from-host.ts +0 -11
  56. package/src/__tests__/helpers/mock-http-server.ts +0 -46
  57. package/src/__tests__/helpers/mock-istty.ts +0 -74
  58. package/src/__tests__/helpers/mock-known-routes.ts +0 -12
  59. package/src/__tests__/helpers/mock-kv.ts +0 -46
  60. package/src/__tests__/helpers/mock-oauth-flow.ts +0 -263
  61. package/src/__tests__/helpers/mock-process.ts +0 -34
  62. package/src/__tests__/helpers/mock-stdin.ts +0 -108
  63. package/src/__tests__/helpers/mock-web-socket.ts +0 -29
  64. package/src/__tests__/helpers/msw/blob-worker.cjs +0 -19
  65. package/src/__tests__/helpers/msw/handlers/access.ts +0 -13
  66. package/src/__tests__/helpers/msw/handlers/deployments.ts +0 -69
  67. package/src/__tests__/helpers/msw/handlers/namespaces.ts +0 -81
  68. package/src/__tests__/helpers/msw/handlers/oauth.ts +0 -31
  69. package/src/__tests__/helpers/msw/handlers/r2.ts +0 -60
  70. package/src/__tests__/helpers/msw/handlers/script.ts +0 -56
  71. package/src/__tests__/helpers/msw/handlers/user.ts +0 -52
  72. package/src/__tests__/helpers/msw/handlers/zones.ts +0 -20
  73. package/src/__tests__/helpers/msw/index.ts +0 -50
  74. package/src/__tests__/helpers/msw/read-file-sync.js +0 -61
  75. package/src/__tests__/helpers/run-in-tmp.ts +0 -38
  76. package/src/__tests__/helpers/run-wrangler.ts +0 -16
  77. package/src/__tests__/helpers/worker-scripts/child-wrangler.toml +0 -1
  78. package/src/__tests__/helpers/worker-scripts/hello-world-worker.js +0 -5
  79. package/src/__tests__/helpers/worker-scripts/hello-world-wrangler.toml +0 -1
  80. package/src/__tests__/helpers/worker-scripts/parent-worker.js +0 -8
  81. package/src/__tests__/helpers/worker-scripts/parent-wrangler.toml +0 -5
  82. package/src/__tests__/helpers/write-worker-source.ts +0 -31
  83. package/src/__tests__/helpers/write-wrangler-toml.ts +0 -17
  84. package/src/__tests__/https-options.test.ts +0 -163
  85. package/src/__tests__/index.test.ts +0 -268
  86. package/src/__tests__/init.test.ts +0 -3164
  87. package/src/__tests__/jest.setup.ts +0 -175
  88. package/src/__tests__/kv.test.ts +0 -1788
  89. package/src/__tests__/logger.test.ts +0 -141
  90. package/src/__tests__/logout.test.ts +0 -47
  91. package/src/__tests__/metrics.test.ts +0 -493
  92. package/src/__tests__/middleware.scheduled.test.ts +0 -145
  93. package/src/__tests__/middleware.test.ts +0 -750
  94. package/src/__tests__/package-manager.test.ts +0 -353
  95. package/src/__tests__/pages-deployment-tail.test.ts +0 -955
  96. package/src/__tests__/pages.test.ts +0 -2898
  97. package/src/__tests__/parse.test.ts +0 -330
  98. package/src/__tests__/paths.test.ts +0 -39
  99. package/src/__tests__/publish.test.ts +0 -8117
  100. package/src/__tests__/pubsub.test.ts +0 -490
  101. package/src/__tests__/queues.test.ts +0 -522
  102. package/src/__tests__/r2.test.ts +0 -369
  103. package/src/__tests__/route.test.ts +0 -45
  104. package/src/__tests__/secret.test.ts +0 -693
  105. package/src/__tests__/tail.test.ts +0 -958
  106. package/src/__tests__/test-old-node-version.js +0 -31
  107. package/src/__tests__/tsconfig-sanity.ts +0 -12
  108. package/src/__tests__/tsconfig.json +0 -8
  109. package/src/__tests__/tsconfig.tsbuildinfo +0 -1
  110. package/src/__tests__/type-generation.test.ts +0 -233
  111. package/src/__tests__/user.test.ts +0 -118
  112. package/src/__tests__/utils-collectKeyValues.test.ts +0 -47
  113. package/src/__tests__/validate-dev-props.test.ts +0 -56
  114. package/src/__tests__/version.test.ts +0 -35
  115. package/src/__tests__/whoami.test.tsx +0 -172
  116. package/src/__tests__/worker-namespace.test.ts +0 -334
  117. package/src/abort.d.ts +0 -3
  118. package/src/api/dev.ts +0 -259
  119. package/src/api/index.ts +0 -3
  120. package/src/api/pages/index.ts +0 -5
  121. package/src/api/pages/publish.tsx +0 -321
  122. package/src/bundle-reporter.ts +0 -68
  123. package/src/bundle.ts +0 -875
  124. package/src/cfetch/index.ts +0 -158
  125. package/src/cfetch/internal.ts +0 -258
  126. package/src/cli.ts +0 -28
  127. package/src/config/README.md +0 -107
  128. package/src/config/config.ts +0 -275
  129. package/src/config/diagnostics.ts +0 -80
  130. package/src/config/environment.ts +0 -579
  131. package/src/config/index.ts +0 -358
  132. package/src/config/validation-helpers.ts +0 -597
  133. package/src/config/validation.ts +0 -2151
  134. package/src/config-cache.ts +0 -85
  135. package/src/create-worker-preview.ts +0 -282
  136. package/src/create-worker-upload-form.ts +0 -325
  137. package/src/d1/backups.tsx +0 -219
  138. package/src/d1/constants.ts +0 -2
  139. package/src/d1/create.tsx +0 -63
  140. package/src/d1/delete.ts +0 -56
  141. package/src/d1/execute.tsx +0 -323
  142. package/src/d1/formatTimeAgo.ts +0 -14
  143. package/src/d1/index.ts +0 -101
  144. package/src/d1/list.tsx +0 -48
  145. package/src/d1/migrations/apply.tsx +0 -197
  146. package/src/d1/migrations/create.tsx +0 -77
  147. package/src/d1/migrations/helpers.ts +0 -147
  148. package/src/d1/migrations/index.ts +0 -3
  149. package/src/d1/migrations/list.tsx +0 -79
  150. package/src/d1/migrations/options.ts +0 -18
  151. package/src/d1/options.ts +0 -22
  152. package/src/d1/splitter.ts +0 -161
  153. package/src/d1/types.ts +0 -24
  154. package/src/d1/utils.ts +0 -48
  155. package/src/delete.ts +0 -103
  156. package/src/deployments.ts +0 -93
  157. package/src/deprecated/index.ts +0 -145
  158. package/src/dev/dev-vars.ts +0 -39
  159. package/src/dev/dev.tsx +0 -614
  160. package/src/dev/get-local-persistence-path.ts +0 -31
  161. package/src/dev/local.tsx +0 -923
  162. package/src/dev/remote.tsx +0 -632
  163. package/src/dev/start-server.ts +0 -538
  164. package/src/dev/use-esbuild.ts +0 -205
  165. package/src/dev/validate-dev-props.ts +0 -31
  166. package/src/dev-registry.ts +0 -201
  167. package/src/dev.tsx +0 -949
  168. package/src/dialogs.ts +0 -136
  169. package/src/dispatch-namespace.ts +0 -207
  170. package/src/docs/index.ts +0 -98
  171. package/src/durable.ts +0 -102
  172. package/src/entry.ts +0 -328
  173. package/src/environment-variables/factory.ts +0 -88
  174. package/src/environment-variables/misc-variables.ts +0 -30
  175. package/src/errors.ts +0 -11
  176. package/src/generate/index.ts +0 -300
  177. package/src/git-client.ts +0 -135
  178. package/src/global-wrangler-config-path.ts +0 -26
  179. package/src/https-options.ts +0 -127
  180. package/src/index.ts +0 -694
  181. package/src/init.ts +0 -1024
  182. package/src/inspect.ts +0 -767
  183. package/src/intl-polyfill.d.ts +0 -139
  184. package/src/is-ci.ts +0 -14
  185. package/src/is-interactive.ts +0 -16
  186. package/src/jest.d.ts +0 -4
  187. package/src/kv/helpers.ts +0 -430
  188. package/src/kv/index.ts +0 -596
  189. package/src/logger.ts +0 -104
  190. package/src/metrics/index.ts +0 -5
  191. package/src/metrics/metrics-config.ts +0 -239
  192. package/src/metrics/metrics-dispatcher.ts +0 -96
  193. package/src/metrics/metrics-usage-headers.ts +0 -24
  194. package/src/metrics/send-event.ts +0 -98
  195. package/src/miniflare-cli/README.md +0 -30
  196. package/src/miniflare-cli/assets.ts +0 -250
  197. package/src/miniflare-cli/index.ts +0 -210
  198. package/src/miniflare-cli/request-context.ts +0 -40
  199. package/src/miniflare-cli/tsconfig.json +0 -9
  200. package/src/miniflare-cli/tsconfig.tsbuildinfo +0 -1
  201. package/src/miniflare-cli/types.ts +0 -11
  202. package/src/module-collection.ts +0 -267
  203. package/src/open-in-browser.ts +0 -17
  204. package/src/package-manager.ts +0 -219
  205. package/src/pages/build.ts +0 -150
  206. package/src/pages/buildFunctions.ts +0 -129
  207. package/src/pages/constants.ts +0 -18
  208. package/src/pages/deployment-tails.ts +0 -284
  209. package/src/pages/deployments.tsx +0 -84
  210. package/src/pages/dev.ts +0 -716
  211. package/src/pages/errors.ts +0 -66
  212. package/src/pages/functions/buildPlugin.ts +0 -90
  213. package/src/pages/functions/buildWorker.ts +0 -288
  214. package/src/pages/functions/filepath-routing.test.ts +0 -234
  215. package/src/pages/functions/filepath-routing.ts +0 -189
  216. package/src/pages/functions/identifiers.ts +0 -78
  217. package/src/pages/functions/routes-consolidation.test.ts +0 -250
  218. package/src/pages/functions/routes-consolidation.ts +0 -73
  219. package/src/pages/functions/routes-transformation.test.ts +0 -282
  220. package/src/pages/functions/routes-transformation.ts +0 -115
  221. package/src/pages/functions/routes-validation.test.ts +0 -403
  222. package/src/pages/functions/routes-validation.ts +0 -202
  223. package/src/pages/functions/routes.ts +0 -151
  224. package/src/pages/functions/tsconfig.json +0 -8
  225. package/src/pages/functions/tsconfig.tsbuildinfo +0 -1
  226. package/src/pages/functions.ts +0 -82
  227. package/src/pages/hash.ts +0 -13
  228. package/src/pages/index.ts +0 -102
  229. package/src/pages/projects.tsx +0 -167
  230. package/src/pages/prompt-select-project.tsx +0 -31
  231. package/src/pages/publish.tsx +0 -263
  232. package/src/pages/types.ts +0 -41
  233. package/src/pages/upload.tsx +0 -447
  234. package/src/pages/utils.ts +0 -23
  235. package/src/parse.ts +0 -286
  236. package/src/paths.ts +0 -71
  237. package/src/proxy.ts +0 -694
  238. package/src/publish/index.ts +0 -270
  239. package/src/publish/publish.ts +0 -1064
  240. package/src/pubsub/index.ts +0 -286
  241. package/src/pubsub/pubsub-commands.ts +0 -624
  242. package/src/queues/cli/commands/consumer/add.ts +0 -71
  243. package/src/queues/cli/commands/consumer/index.ts +0 -22
  244. package/src/queues/cli/commands/consumer/remove.ts +0 -38
  245. package/src/queues/cli/commands/create.ts +0 -25
  246. package/src/queues/cli/commands/delete.ts +0 -26
  247. package/src/queues/cli/commands/index.ts +0 -36
  248. package/src/queues/cli/commands/list.ts +0 -25
  249. package/src/queues/client.ts +0 -135
  250. package/src/queues/utils.ts +0 -18
  251. package/src/r2/constants.ts +0 -4
  252. package/src/r2/helpers.ts +0 -131
  253. package/src/r2/index.ts +0 -289
  254. package/src/routes.ts +0 -140
  255. package/src/secret/index.ts +0 -379
  256. package/src/selfsigned.d.ts +0 -29
  257. package/src/sites.ts +0 -372
  258. package/src/tail/createTail.ts +0 -406
  259. package/src/tail/filters.ts +0 -277
  260. package/src/tail/index.ts +0 -213
  261. package/src/tail/printing.ts +0 -122
  262. package/src/tsconfig-sanity.ts +0 -16
  263. package/src/type-generation.ts +0 -181
  264. package/src/update-check.ts +0 -19
  265. package/src/user/access.ts +0 -68
  266. package/src/user/auth-variables.ts +0 -113
  267. package/src/user/choose-account.tsx +0 -39
  268. package/src/user/generate-auth-url.ts +0 -33
  269. package/src/user/generate-random-state.ts +0 -16
  270. package/src/user/index.ts +0 -2
  271. package/src/user/user.ts +0 -1232
  272. package/src/utils/collectKeyValues.ts +0 -14
  273. package/src/whoami.ts +0 -135
  274. package/src/worker.ts +0 -251
  275. package/src/yargs-types.ts +0 -24
  276. package/src/zones.ts +0 -191
  277. package/templates/__tests__/tsconfig.tsbuildinfo +0 -1
  278. package/templates/first-party-worker-module-facade.ts +0 -19
  279. package/templates/format-dev-errors.ts +0 -33
  280. package/templates/serve-static-assets.ts +0 -65
  281. package/templates/service-bindings-module-facade.js +0 -54
  282. package/templates/service-bindings-sw-facade.js +0 -42
  283. package/templates/tsconfig.tsbuildinfo +0 -1
package/README.md CHANGED
@@ -1,13 +1,11 @@
1
1
  <h1 align="center"> ⛅️ wrangler </h1>
2
2
  <section align="center" id="shieldio-badges">
3
3
  <a href="https://www.npmjs.com/package/wrangler"><img alt="npm" src="https://img.shields.io/npm/dw/wrangler?style=flat-square"></a>
4
- <img alt="GitHub contributors" src="https://img.shields.io/github/contributors/cloudflare/wrangler2?style=flat-square">
5
- <img alt="GitHub commit activity (branch)" src="https://img.shields.io/github/commit-activity/w/cloudflare/wrangler2/main?style=flat-square">
4
+ <img alt="GitHub contributors" src="https://img.shields.io/github/contributors/cloudflare/workers-sdk?style=flat-square">
5
+ <img alt="GitHub commit activity (branch)" src="https://img.shields.io/github/commit-activity/w/cloudflare/workers-sdk/main?style=flat-square">
6
6
  <a href="https://discord.gg/CloudflareDev"><img alt="Discord" src="https://img.shields.io/discord/595317990191398933?color=%23F48120&style=flat-square"></a>
7
7
  </section>
8
8
 
9
- > This package is for wrangler v2.x, released first in May 2022. If you're looking for v1.x of the `@cloudflare/wrangler` package, visit https://www.npmjs.com/package/@cloudflare/wrangler / https://github.com/cloudflare/wrangler.
10
-
11
9
  `wrangler` is a command line tool for building [Cloudflare Workers](https://workers.cloudflare.com/).
12
10
 
13
11
  ## Quick Start
@@ -17,8 +15,8 @@
17
15
  echo "export default { fetch() { return new Response('hello world') } }" > index.js
18
16
  # try it out
19
17
  npx wrangler dev index.js
20
- # and then publish it
21
- npx wrangler publish index.js --name my-worker
18
+ # and then deploy it
19
+ npx wrangler deploy index.js --name my-worker
22
20
  # visit https://my-worker.<your workers subdomain>.workers.dev
23
21
  ```
24
22
 
@@ -26,10 +24,10 @@ npx wrangler publish index.js --name my-worker
26
24
 
27
25
  ```bash
28
26
  # Generate a new project
29
- npx wrangler init my-worker
27
+ npx wrangler init my-worker --no-delegate-c3
30
28
  # try it out
31
29
  cd my-worker && npm run start
32
- # and then publish it
30
+ # and then deploy it
33
31
  npm run deploy
34
32
  ```
35
33
 
@@ -43,15 +41,15 @@ $ npm install wrangler --save-dev
43
41
 
44
42
  Wrangler is configured via a `wrangler.toml` file in the project root. When utilizing the `wrangler init` command, a `wrangler.toml` file will be created for you.
45
43
 
46
- example:
44
+ Example:
47
45
 
48
46
  ```toml
49
- main = "./src/index.ts" # init w/ TypeScript
50
47
  name = "my-worker"
51
- compatibility_date = "YYY-MM-DD"
48
+ main = "./src/index.ts" # init w/ TypeScript
49
+ compatibility_date = "YYYY-MM-DD"
52
50
  ```
53
51
 
54
- for more detailed information about configuration, see the [documentation](https://developers.cloudflare.com/workers/cli-wrangler/configuration)
52
+ For more detailed information about configuration, refer to the [documentation](https://developers.cloudflare.com/workers/wrangler/configuration/).
55
53
 
56
54
  ## Commands
57
55
 
@@ -63,11 +61,11 @@ Creates a Worker project. For details on configuration keys and values, refer to
63
61
 
64
62
  Start a local development server, with live reloading and devtools.
65
63
 
66
- ### `wrangler publish`
64
+ ### `wrangler deploy`
67
65
 
68
66
  Publish the given script to the worldwide Cloudflare network.
69
67
 
70
- For more commands and options, refer to the [documentation](https://developers.cloudflare.com/workers/cli-wrangler/commands).
68
+ For more commands and options, refer to the [documentation](https://developers.cloudflare.com/workers/wrangler/commands/).
71
69
 
72
70
  ## Pages
73
71
 
package/bin/wrangler.js CHANGED
@@ -20,7 +20,7 @@ function runWrangler() {
20
20
  // Note Volta and nvm are also recommended in the official docs:
21
21
  // https://developers.cloudflare.com/workers/get-started/guide#2-install-the-workers-cli
22
22
  console.error(
23
- `Wrangler requires at least node.js v${MIN_NODE_VERSION}. You are using v${process.versions.node}. Please update your version of node.js.
23
+ `Wrangler requires at least Node.js v${MIN_NODE_VERSION}. You are using v${process.versions.node}. Please update your version of Node.js.
24
24
 
25
25
  Consider using a Node.js version manager such as https://volta.sh/ or https://github.com/nvm-sh/nvm.`
26
26
  );
@@ -79,80 +79,6 @@ Consider using a Node.js version manager such as https://volta.sh/ or https://gi
79
79
  });
80
80
  }
81
81
 
82
- /**
83
- * Runs a locally-installed version of wrangler, delegating from this version.
84
- * @throws {MODULE_NOT_FOUND} if there isn't a locally installed version of wrangler.
85
- */
86
- function runDelegatedWrangler() {
87
- const packageJsonPath = require.resolve("wrangler/package.json", {
88
- paths: [process.cwd()],
89
- });
90
- const {
91
- bin: { wrangler: binaryPath },
92
- version,
93
- } = JSON.parse(fs.readFileSync(packageJsonPath));
94
- const resolvedBinaryPath = path.resolve(packageJsonPath, "..", binaryPath);
95
-
96
- // Make sure the user knows we're delegating to a different installation
97
- const currentPackageJsonPath = path.resolve(__dirname, "..", "package.json");
98
- const currentPackage = JSON.parse(fs.readFileSync(currentPackageJsonPath));
99
- const argv = process.argv.slice(2).join(" ");
100
- console.log(
101
- `Delegating to locally-installed wrangler@${version} over global wrangler@${currentPackage.version}...
102
- Run \`npx wrangler ${argv}\` to use the local version directly.
103
- `
104
- );
105
-
106
- // this call to `spawn` is simpler because the delegated version will do all
107
- // of the other work.
108
- return spawn(
109
- process.execPath,
110
- [resolvedBinaryPath, ...process.argv.slice(2)],
111
- {
112
- stdio: ["inherit", "inherit", "inherit", "ipc"],
113
- }
114
- )
115
- .on("exit", (code) =>
116
- process.exit(code === undefined || code === null ? 0 : code)
117
- )
118
- .on("message", (message) => {
119
- if (process.send) {
120
- process.send(message);
121
- }
122
- });
123
- }
124
-
125
- /**
126
- * Indicates if this invocation of `wrangler` should delegate
127
- * to a locally-installed version.
128
- */
129
- function shouldDelegate() {
130
- try {
131
- // `require.resolve` will throw if it can't find
132
- // a locally-installed version of `wrangler`
133
- const delegatedPackageJson = require.resolve("wrangler/package.json", {
134
- paths: [process.cwd()],
135
- });
136
- const thisPackageJson = path.resolve(__dirname, "..", "package.json");
137
- // if it's the same path, then we're already a local install -- no need to delegate
138
- return thisPackageJson !== delegatedPackageJson;
139
- } catch (e) {
140
- // there's no local version to delegate to -- `require.resolve` threw
141
- return false;
142
- }
143
- }
144
-
145
- async function main() {
146
- wranglerProcess = shouldDelegate() ? runDelegatedWrangler() : runWrangler();
147
- }
148
-
149
- process.on("SIGINT", () => {
150
- wranglerProcess && wranglerProcess.kill();
151
- });
152
- process.on("SIGTERM", () => {
153
- wranglerProcess && wranglerProcess.kill();
154
- });
155
-
156
82
  // semiver implementation via https://github.com/lukeed/semiver/blob/ae7eebe6053c96be63032b14fb0b68e2553fcac4/src/index.js
157
83
 
158
84
  /**
@@ -185,4 +111,12 @@ function semiver(a, b, bool) {
185
111
 
186
112
  // end semiver implementation
187
113
 
188
- void main();
114
+ if (module === require.main) {
115
+ wranglerProcess = runWrangler();
116
+ process.on("SIGINT", () => {
117
+ wranglerProcess && wranglerProcess.kill();
118
+ });
119
+ process.on("SIGTERM", () => {
120
+ wranglerProcess && wranglerProcess.kill();
121
+ });
122
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wrangler",
3
- "version": "0.0.0-e6c9c5c0",
3
+ "version": "0.0.0-e72a5794",
4
4
  "description": "Command-line interface for all things Cloudflare Workers",
5
5
  "keywords": [
6
6
  "wrangler",
@@ -24,13 +24,13 @@
24
24
  "http",
25
25
  "cli"
26
26
  ],
27
- "homepage": "https://github.com/cloudflare/wrangler2#readme",
27
+ "homepage": "https://github.com/cloudflare/workers-sdk#readme",
28
28
  "bugs": {
29
- "url": "https://github.com/cloudflare/wrangler2/issues"
29
+ "url": "https://github.com/cloudflare/workers-sdk/issues"
30
30
  },
31
31
  "repository": {
32
32
  "type": "git",
33
- "url": "https://github.com/cloudflare/wrangler2.git",
33
+ "url": "https://github.com/cloudflare/workers-sdk.git",
34
34
  "directory": "packages/wrangler"
35
35
  },
36
36
  "license": "MIT OR Apache-2.0",
@@ -42,14 +42,10 @@
42
42
  "wrangler2": "./bin/wrangler.js"
43
43
  },
44
44
  "files": [
45
- "src",
46
45
  "bin",
47
- "miniflare-config-stubs",
48
46
  "miniflare-dist",
49
47
  "wrangler-dist",
50
48
  "templates",
51
- "vendor",
52
- "import_meta_url.js",
53
49
  "kv-asset-handler.js",
54
50
  "Cloudflare_CA.pem"
55
51
  ],
@@ -57,15 +53,19 @@
57
53
  "assert-git-version": "node -r esbuild-register scripts/assert-git-version.ts",
58
54
  "build": "npm run clean && npm run bundle && npm run emit-types",
59
55
  "bundle": "node -r esbuild-register scripts/bundle.ts",
60
- "check:type": "node -r esbuild-register scripts/tsc-all.ts",
56
+ "check:lint": "eslint .",
57
+ "check:type": "tsc",
61
58
  "clean": "rimraf wrangler-dist miniflare-dist emitted-types",
62
59
  "dev": "npm run clean && concurrently -c black,blue --kill-others-on-fail false 'npm run bundle -- --watch' 'npm run check:type -- --watch --preserveWatchOutput'",
63
60
  "emit-types": "tsc -p tsconfig.emit.json && node -r esbuild-register scripts/emit-types.ts",
64
61
  "prepublishOnly": "SOURCEMAPS=false npm run build",
65
62
  "start": "npm run bundle && cross-env NODE_OPTIONS=--enable-source-maps ./bin/wrangler.js",
66
- "test": "npm run assert-git-version && jest --silent=false --verbose=true",
67
- "test-watch": "npm run test -- --runInBand --testTimeout=50000 --watch",
68
- "test:ci": "npm run test -- --verbose=true --coverage"
63
+ "test": "npm run assert-git-version && jest",
64
+ "test:ci": "npm run test -- --coverage",
65
+ "test:debug": "npm run test -- --silent=false --verbose=true",
66
+ "test:e2e": "vitest --test-timeout 240000 --single-thread --dir ./e2e run",
67
+ "test:watch": "npm run test -- --runInBand --testTimeout=50000 --watch",
68
+ "type:tests": "tsc -p ./src/__tests__/tsconfig.json && tsc -p ./e2e/tsconfig.json"
69
69
  },
70
70
  "jest": {
71
71
  "coverageReporters": [
@@ -82,8 +82,8 @@
82
82
  "setupFilesAfterEnv": [
83
83
  "<rootDir>/src/__tests__/jest.setup.ts"
84
84
  ],
85
- "testRegex": ".*.(test|spec)\\.[jt]sx?$",
86
- "testTimeout": 30000,
85
+ "testRegex": "src/__tests__/.*\\.(test|spec)\\.[jt]sx?$",
86
+ "testTimeout": 50000,
87
87
  "transform": {
88
88
  "^.+\\.c?(t|j)sx?$": [
89
89
  "esbuild-jest",
@@ -100,13 +100,10 @@
100
100
  "@cloudflare/kv-asset-handler": "^0.2.0",
101
101
  "@esbuild-plugins/node-globals-polyfill": "^0.1.1",
102
102
  "@esbuild-plugins/node-modules-polyfill": "^0.1.4",
103
- "@miniflare/core": "2.11.0",
104
- "@miniflare/d1": "2.11.0",
105
- "@miniflare/durable-objects": "2.11.0",
106
103
  "blake3-wasm": "^2.1.5",
107
104
  "chokidar": "^3.5.3",
108
- "esbuild": "0.14.51",
109
- "miniflare": "2.11.0",
105
+ "esbuild": "0.16.3",
106
+ "miniflare": "3.20230717.0",
110
107
  "nanoid": "^3.3.3",
111
108
  "path-to-regexp": "^6.2.0",
112
109
  "selfsigned": "^2.0.1",
@@ -114,11 +111,12 @@
114
111
  "xxhash-wasm": "^1.0.1"
115
112
  },
116
113
  "devDependencies": {
114
+ "@cloudflare/eslint-config-worker": "*",
117
115
  "@cloudflare/types": "^6.18.4",
118
- "@cloudflare/workers-types": "^4.20221111.1",
116
+ "@cloudflare/workers-tsconfig": "*",
117
+ "@cloudflare/workers-types": "^4.20230717.0",
119
118
  "@iarna/toml": "^3.0.0",
120
119
  "@microsoft/api-extractor": "^7.28.3",
121
- "@miniflare/tre": "^3.0.0-next.8",
122
120
  "@types/better-sqlite3": "^7.6.0",
123
121
  "@types/busboy": "^1.5.0",
124
122
  "@types/command-exists": "^1.2.0",
@@ -133,7 +131,7 @@
133
131
  "@types/supports-color": "^8.1.1",
134
132
  "@types/ws": "^8.5.3",
135
133
  "@types/yargs": "^17.0.10",
136
- "@webcontainer/env": "^1.0.1",
134
+ "@webcontainer/env": "^1.1.0",
137
135
  "body-parser": "^1.20.0",
138
136
  "chalk": "^2.4.2",
139
137
  "cli-table3": "^0.6.3",
@@ -174,13 +172,16 @@
174
172
  "remove-accents-esm": "^0.0.1",
175
173
  "semiver": "^1.1.0",
176
174
  "serve-static": "^1.15.0",
175
+ "shellac": "^0.8.0",
177
176
  "signal-exit": "^3.0.7",
177
+ "strip-ansi": "^7.0.1",
178
178
  "supports-color": "^9.2.2",
179
179
  "timeago.js": "^4.0.2",
180
180
  "tmp-promise": "^3.0.3",
181
181
  "ts-dedent": "^2.2.0",
182
- "undici": "5.11.0",
182
+ "undici": "5.20.0",
183
183
  "update-check": "^1.5.4",
184
+ "vitest": "^0.31.0",
184
185
  "ws": "^8.5.0",
185
186
  "xdg-app-paths": "^7.3.0",
186
187
  "yargs": "^17.4.1",
@@ -1,5 +1,5 @@
1
1
  {
2
- "extends": "../../tsconfig.json",
2
+ "extends": "@cloudflare/workers-tsconfig/tsconfig.json",
3
3
  "compilerOptions": {
4
4
  "types": ["node", "jest"]
5
5
  },
@@ -1,15 +1,30 @@
1
1
  const urls = new Set();
2
2
 
3
- export function checkedFetch(request, init) {
4
- const url = new URL(new Request(request, init).url);
3
+ function checkURL(request, init) {
4
+ const url =
5
+ request instanceof URL
6
+ ? request
7
+ : new URL(
8
+ (typeof request === "string"
9
+ ? new Request(request, init)
10
+ : request
11
+ ).url
12
+ );
5
13
  if (url.port && url.port !== "443" && url.protocol === "https:") {
6
14
  if (!urls.has(url.toString())) {
7
15
  urls.add(url.toString());
8
16
  console.warn(
9
17
  `WARNING: known issue with \`fetch()\` requests to custom HTTPS ports in published Workers:\n` +
10
- ` - ${url.toString()} - the custom port will be ignored when the Worker is published using the \`wrangler publish\` command.\n`
18
+ ` - ${url.toString()} - the custom port will be ignored when the Worker is published using the \`wrangler deploy\` command.\n`
11
19
  );
12
20
  }
13
21
  }
14
- return globalThis.fetch(request, init);
15
22
  }
23
+
24
+ globalThis.fetch = new Proxy(globalThis.fetch, {
25
+ apply(target, thisArg, argArray) {
26
+ const [request, init] = argArray;
27
+ checkURL(request, init);
28
+ return Reflect.apply(target, thisArg, argArray);
29
+ },
30
+ });
@@ -1,6 +1,9 @@
1
1
  declare module "__ENTRY_POINT__" {
2
2
  import type { Middleware } from "./middleware/common";
3
- const worker: ExportedHandler & { middleware?: Middleware[] };
3
+ const worker: ExportedHandler & {
4
+ middleware?: Middleware[];
5
+ envWrappers: ((env: Record<string, unknown>) => Record<string, unknown>)[];
6
+ };
4
7
  export default worker;
5
8
  }
6
9
 
@@ -169,3 +169,4 @@ dist
169
169
  # wrangler project
170
170
 
171
171
  .dev.vars
172
+ .wrangler/
@@ -5,13 +5,18 @@ export type Dispatcher = (
5
5
  init: { cron?: string }
6
6
  ) => Awaitable<void>;
7
7
 
8
+ export type IncomingRequest = Request<
9
+ unknown,
10
+ IncomingRequestCfProperties<unknown>
11
+ >;
12
+
8
13
  export interface MiddlewareContext {
9
14
  dispatch: Dispatcher;
10
- next(request: Request, env: any): Awaitable<Response>;
15
+ next(request: IncomingRequest, env: any): Awaitable<Response>;
11
16
  }
12
17
 
13
18
  export type Middleware = (
14
- request: Request,
19
+ request: IncomingRequest,
15
20
  env: any,
16
21
  ctx: ExecutionContext,
17
22
  middlewareCtx: MiddlewareContext
@@ -32,7 +37,7 @@ export function __facade_registerInternal__(
32
37
  }
33
38
 
34
39
  function __facade_invokeChain__(
35
- request: Request,
40
+ request: IncomingRequest,
36
41
  env: any,
37
42
  ctx: ExecutionContext,
38
43
  dispatch: Dispatcher,
@@ -49,7 +54,7 @@ function __facade_invokeChain__(
49
54
  }
50
55
 
51
56
  export function __facade_invoke__(
52
- request: Request,
57
+ request: IncomingRequest,
53
58
  env: any,
54
59
  ctx: ExecutionContext,
55
60
  dispatch: Dispatcher,
@@ -36,17 +36,68 @@ class __Facade_ScheduledController__ implements ScheduledController {
36
36
  }
37
37
  }
38
38
 
39
- const __facade_modules_fetch__: Middleware = function (request, env, ctx) {
40
- if (worker.fetch === undefined) throw new Error("No fetch handler!"); // TODO: proper error message
39
+ const __facade_modules_fetch__: ExportedHandlerFetchHandler = function (
40
+ request,
41
+ env,
42
+ ctx
43
+ ) {
44
+ if (worker.fetch === undefined)
45
+ throw new Error("Handler does not export a fetch() function.");
41
46
  return worker.fetch(request, env, ctx);
42
47
  };
43
48
 
44
- const facade: ExportedHandler<unknown> = {
45
- fetch(request, env, ctx) {
49
+ function getMaskedEnv(rawEnv: unknown) {
50
+ let env = rawEnv as Record<string, unknown>;
51
+ if (worker.envWrappers && worker.envWrappers.length > 0) {
52
+ for (const wrapFn of worker.envWrappers) {
53
+ env = wrapFn(env);
54
+ }
55
+ }
56
+ return env;
57
+ }
58
+
59
+ /**
60
+ * This type is here to cause a type error if a new export handler is added to
61
+ * `ExportHandler` without it being included in the `facade` below.
62
+ */
63
+ type MissingExportHandlers = Omit<
64
+ Required<ExportedHandler>,
65
+ "tail" | "trace" | "scheduled" | "queue" | "test" | "email" | "fetch"
66
+ >;
67
+
68
+ let registeredMiddleware = false;
69
+
70
+ const facade: ExportedHandler<unknown> & MissingExportHandlers = {
71
+ ...(worker.tail && {
72
+ tail: maskHandlerEnv(worker.tail),
73
+ }),
74
+ ...(worker.trace && {
75
+ trace: maskHandlerEnv(worker.trace),
76
+ }),
77
+ ...(worker.scheduled && {
78
+ scheduled: maskHandlerEnv(worker.scheduled),
79
+ }),
80
+ ...(worker.queue && {
81
+ queue: maskHandlerEnv(worker.queue),
82
+ }),
83
+ ...(worker.test && {
84
+ test: maskHandlerEnv(worker.test),
85
+ }),
86
+ ...(worker.email && {
87
+ email: maskHandlerEnv(worker.email),
88
+ }),
89
+
90
+ fetch(request, rawEnv, ctx) {
91
+ const env = getMaskedEnv(rawEnv);
46
92
  // Get the chain of middleware from the worker object
47
93
  if (worker.middleware && worker.middleware.length > 0) {
48
- for (const middleware of worker.middleware) {
49
- __facade_register__(middleware);
94
+ // Make sure we only register middleware once:
95
+ // https://github.com/cloudflare/workers-sdk/issues/2386#issuecomment-1614715911
96
+ if (!registeredMiddleware) {
97
+ registeredMiddleware = true;
98
+ for (const middleware of worker.middleware) {
99
+ __facade_register__(middleware);
100
+ }
50
101
  }
51
102
 
52
103
  const __facade_modules_dispatch__: Dispatcher = function (type, init) {
@@ -71,14 +122,16 @@ const facade: ExportedHandler<unknown> = {
71
122
  // We didn't have any middleware so we can skip the invocation chain,
72
123
  // and just call the fetch handler directly
73
124
 
74
- // We "don't care" if this is undefined as we want to have the same behaviour
125
+ // We "don't care" if this is undefined as we want to have the same behavior
75
126
  // as if the worker completely bypassed middleware.
76
- return worker.fetch!(request, env, ctx);
127
+ return __facade_modules_fetch__(request, env, ctx);
77
128
  }
78
129
  },
79
- scheduled: worker.scheduled,
80
- queue: worker.queue,
81
- trace: worker.trace,
82
130
  };
83
131
 
132
+ type HandlerFn<D, R> = (data: D, env: unknown, ctx: ExecutionContext) => R;
133
+ function maskHandlerEnv<D, R>(handler: HandlerFn<D, R>): HandlerFn<D, R> {
134
+ return (data, env, ctx) => handler(data, getMaskedEnv(env), ctx);
135
+ }
136
+
84
137
  export default facade;
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  Awaitable,
3
3
  Dispatcher,
4
+ IncomingRequest,
4
5
  Middleware,
5
6
  __facade_invoke__,
6
7
  __facade_register__,
@@ -183,8 +184,6 @@ __facade__originalAddEventListener__("fetch", (event) => {
183
184
  });
184
185
 
185
186
  __FACADE_EVENT_TARGET__.dispatchEvent(facadeEvent);
186
- // @ts-expect-error `waitUntil` types are currently broken, blocked on
187
- // https://github.com/cloudflare/workerd/pull/191
188
187
  event.waitUntil(Promise.all(facadeEvent[__facade_waitUntil__]));
189
188
  }
190
189
  };
@@ -197,8 +196,6 @@ __facade__originalAddEventListener__("fetch", (event) => {
197
196
 
198
197
  __FACADE_EVENT_TARGET__.dispatchEvent(facadeEvent);
199
198
  facadeEvent[__facade_dispatched__] = true;
200
- // @ts-expect-error `waitUntil` types are currently broken, blocked on
201
- // https://github.com/cloudflare/workerd/pull/191
202
199
  event.waitUntil(Promise.all(facadeEvent[__facade_waitUntil__]));
203
200
 
204
201
  const response = facadeEvent[__facade_response__];
@@ -210,7 +207,7 @@ __facade__originalAddEventListener__("fetch", (event) => {
210
207
 
211
208
  event.respondWith(
212
209
  __facade_invoke__(
213
- event.request,
210
+ event.request as IncomingRequest,
214
211
  globalThis,
215
212
  ctx,
216
213
  __facade_sw_dispatch__,
@@ -227,7 +224,5 @@ __facade__originalAddEventListener__("scheduled", (event) => {
227
224
  });
228
225
 
229
226
  __FACADE_EVENT_TARGET__.dispatchEvent(facadeEvent);
230
- // @ts-expect-error `waitUntil` types are currently broken, blocked on
231
- // https://github.com/cloudflare/workerd/pull/191
232
227
  event.waitUntil(Promise.all(facadeEvent[__facade_waitUntil__]));
233
228
  });
@@ -0,0 +1,3 @@
1
+ declare module "config:middleware/d1-beta" {
2
+ export const D1_IMPORTS: string[];
3
+ }