wrangler 0.0.0-d165b741 → 0.0.0-d199ffbc

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 (260) hide show
  1. package/README.md +7 -9
  2. package/bin/wrangler.js +19 -65
  3. package/package.json +27 -24
  4. package/templates/__tests__/tsconfig-sanity.ts +12 -0
  5. package/templates/__tests__/tsconfig.json +8 -0
  6. package/templates/checked-fetch.js +10 -4
  7. package/templates/facade.d.ts +17 -0
  8. package/templates/gitignore +1 -0
  9. package/templates/init-tests/test-jest-new-worker.js +3 -5
  10. package/templates/init-tests/test-vitest-new-worker.js +3 -5
  11. package/templates/init-tests/test-vitest-new-worker.ts +25 -0
  12. package/templates/middleware/common.ts +9 -4
  13. package/templates/middleware/loader-modules.ts +52 -9
  14. package/templates/middleware/loader-sw.ts +47 -32
  15. package/templates/middleware/middleware-d1-beta.d.ts +3 -0
  16. package/templates/{d1-beta-facade.js → middleware/middleware-d1-beta.ts} +106 -58
  17. package/templates/middleware/middleware-miniflare3-json-error.ts +32 -0
  18. package/templates/middleware/middleware-multiworker-dev.d.ts +4 -0
  19. package/templates/middleware/middleware-multiworker-dev.ts +59 -0
  20. package/templates/middleware/middleware-serve-static-assets.d.ts +6 -0
  21. package/templates/middleware/middleware-serve-static-assets.ts +56 -0
  22. package/templates/new-worker-scheduled.ts +1 -1
  23. package/templates/new-worker.ts +4 -1
  24. package/templates/pages-dev-pipeline.ts +4 -1
  25. package/templates/pages-dev-util.ts +4 -1
  26. package/templates/pages-shim.ts +1 -1
  27. package/templates/pages-template-plugin.ts +31 -12
  28. package/templates/pages-template-worker.ts +11 -2
  29. package/templates/tsconfig-sanity.ts +11 -0
  30. package/templates/tsconfig.init.json +105 -0
  31. package/templates/tsconfig.json +5 -103
  32. package/wrangler-dist/cli.d.ts +906 -71
  33. package/wrangler-dist/cli.js +133383 -147347
  34. package/wrangler-dist/wasm-sync.wasm +0 -0
  35. package/import_meta_url.js +0 -3
  36. package/miniflare-config-stubs/.env.empty +0 -0
  37. package/miniflare-config-stubs/package.empty.json +0 -1
  38. package/miniflare-config-stubs/wrangler.empty.toml +0 -0
  39. package/miniflare-dist/index.mjs +0 -6316
  40. package/src/__tests__/access.test.ts +0 -25
  41. package/src/__tests__/api-dev.test.ts +0 -209
  42. package/src/__tests__/api-devregistry.test.js +0 -56
  43. package/src/__tests__/api.test.ts +0 -80
  44. package/src/__tests__/config-cache-without-cache-dir.test.ts +0 -38
  45. package/src/__tests__/config-cache.test.ts +0 -42
  46. package/src/__tests__/configuration.test.ts +0 -3981
  47. package/src/__tests__/d1.test.ts +0 -74
  48. package/src/__tests__/delete.test.ts +0 -230
  49. package/src/__tests__/deployments.test.ts +0 -91
  50. package/src/__tests__/dev.test.tsx +0 -1509
  51. package/src/__tests__/dialogs.test.tsx +0 -40
  52. package/src/__tests__/generate.test.ts +0 -235
  53. package/src/__tests__/get-host-from-url.test.ts +0 -16
  54. package/src/__tests__/guess-worker-format.test.ts +0 -85
  55. package/src/__tests__/helpers/clipboardy-mock.js +0 -4
  56. package/src/__tests__/helpers/cmd-shim.d.ts +0 -11
  57. package/src/__tests__/helpers/mock-account-id.ts +0 -48
  58. package/src/__tests__/helpers/mock-bin.ts +0 -36
  59. package/src/__tests__/helpers/mock-cfetch.ts +0 -333
  60. package/src/__tests__/helpers/mock-console.ts +0 -106
  61. package/src/__tests__/helpers/mock-dialogs.ts +0 -153
  62. package/src/__tests__/helpers/mock-get-zone-from-host.ts +0 -8
  63. package/src/__tests__/helpers/mock-http-server.ts +0 -46
  64. package/src/__tests__/helpers/mock-istty.ts +0 -74
  65. package/src/__tests__/helpers/mock-known-routes.ts +0 -7
  66. package/src/__tests__/helpers/mock-kv.ts +0 -33
  67. package/src/__tests__/helpers/mock-oauth-flow.ts +0 -252
  68. package/src/__tests__/helpers/mock-process.ts +0 -39
  69. package/src/__tests__/helpers/mock-stdin.ts +0 -108
  70. package/src/__tests__/helpers/mock-web-socket.ts +0 -29
  71. package/src/__tests__/helpers/msw/handlers/access.ts +0 -13
  72. package/src/__tests__/helpers/msw/handlers/deployments.ts +0 -59
  73. package/src/__tests__/helpers/msw/handlers/namespaces.ts +0 -104
  74. package/src/__tests__/helpers/msw/handlers/oauth.ts +0 -36
  75. package/src/__tests__/helpers/msw/handlers/r2.ts +0 -80
  76. package/src/__tests__/helpers/msw/handlers/script.ts +0 -75
  77. package/src/__tests__/helpers/msw/handlers/user.ts +0 -63
  78. package/src/__tests__/helpers/msw/handlers/zones.ts +0 -22
  79. package/src/__tests__/helpers/msw/index.ts +0 -21
  80. package/src/__tests__/helpers/run-in-tmp.ts +0 -38
  81. package/src/__tests__/helpers/run-wrangler.ts +0 -16
  82. package/src/__tests__/helpers/worker-scripts/child-wrangler.toml +0 -1
  83. package/src/__tests__/helpers/worker-scripts/hello-world-worker.js +0 -5
  84. package/src/__tests__/helpers/worker-scripts/hello-world-wrangler.toml +0 -1
  85. package/src/__tests__/helpers/worker-scripts/parent-worker.js +0 -8
  86. package/src/__tests__/helpers/worker-scripts/parent-wrangler.toml +0 -5
  87. package/src/__tests__/helpers/write-worker-source.ts +0 -31
  88. package/src/__tests__/helpers/write-wrangler-toml.ts +0 -17
  89. package/src/__tests__/https-options.test.ts +0 -163
  90. package/src/__tests__/index.test.ts +0 -262
  91. package/src/__tests__/init.test.ts +0 -2900
  92. package/src/__tests__/jest.setup.ts +0 -202
  93. package/src/__tests__/kv.test.ts +0 -1675
  94. package/src/__tests__/logger.test.ts +0 -141
  95. package/src/__tests__/metrics.test.ts +0 -450
  96. package/src/__tests__/middleware.scheduled.test.ts +0 -135
  97. package/src/__tests__/middleware.test.ts +0 -726
  98. package/src/__tests__/package-manager.test.ts +0 -353
  99. package/src/__tests__/pages.test.ts +0 -2387
  100. package/src/__tests__/parse.test.ts +0 -330
  101. package/src/__tests__/paths.test.ts +0 -39
  102. package/src/__tests__/publish.test.ts +0 -7633
  103. package/src/__tests__/pubsub.test.ts +0 -370
  104. package/src/__tests__/queues.test.ts +0 -371
  105. package/src/__tests__/r2.test.ts +0 -393
  106. package/src/__tests__/route.test.ts +0 -45
  107. package/src/__tests__/secret.test.ts +0 -644
  108. package/src/__tests__/tail.test.ts +0 -800
  109. package/src/__tests__/test-old-node-version.js +0 -31
  110. package/src/__tests__/type-generation.test.ts +0 -225
  111. package/src/__tests__/user.test.ts +0 -155
  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 -278
  116. package/src/__tests__/worker-namespace.test.ts +0 -326
  117. package/src/abort.d.ts +0 -3
  118. package/src/api/dev.ts +0 -208
  119. package/src/api/index.ts +0 -2
  120. package/src/bundle-reporter.tsx +0 -68
  121. package/src/bundle.ts +0 -815
  122. package/src/cfetch/index.ts +0 -160
  123. package/src/cfetch/internal.ts +0 -263
  124. package/src/cli.ts +0 -28
  125. package/src/config/README.md +0 -107
  126. package/src/config/config.ts +0 -275
  127. package/src/config/diagnostics.ts +0 -80
  128. package/src/config/environment.ts +0 -561
  129. package/src/config/index.ts +0 -334
  130. package/src/config/validation-helpers.ts +0 -597
  131. package/src/config/validation.ts +0 -2103
  132. package/src/config-cache.ts +0 -85
  133. package/src/create-worker-preview.ts +0 -282
  134. package/src/create-worker-upload-form.ts +0 -316
  135. package/src/d1/backups.tsx +0 -218
  136. package/src/d1/constants.ts +0 -2
  137. package/src/d1/create.tsx +0 -63
  138. package/src/d1/delete.tsx +0 -56
  139. package/src/d1/execute.tsx +0 -344
  140. package/src/d1/formatTimeAgo.ts +0 -14
  141. package/src/d1/index.ts +0 -99
  142. package/src/d1/list.tsx +0 -48
  143. package/src/d1/migrations.tsx +0 -446
  144. package/src/d1/options.ts +0 -22
  145. package/src/d1/types.tsx +0 -24
  146. package/src/d1/utils.ts +0 -48
  147. package/src/delete.ts +0 -108
  148. package/src/deployments.ts +0 -73
  149. package/src/deprecated/index.ts +0 -438
  150. package/src/dev/dev-vars.ts +0 -39
  151. package/src/dev/dev.tsx +0 -587
  152. package/src/dev/get-local-persistence-path.tsx +0 -31
  153. package/src/dev/local.tsx +0 -746
  154. package/src/dev/remote.tsx +0 -603
  155. package/src/dev/start-server.ts +0 -519
  156. package/src/dev/use-esbuild.ts +0 -204
  157. package/src/dev/validate-dev-props.ts +0 -31
  158. package/src/dev-registry.tsx +0 -201
  159. package/src/dev.tsx +0 -868
  160. package/src/dialogs.tsx +0 -169
  161. package/src/dispatch-namespace.ts +0 -207
  162. package/src/durable.ts +0 -102
  163. package/src/entry.ts +0 -329
  164. package/src/environment-variables.ts +0 -50
  165. package/src/errors.ts +0 -11
  166. package/src/git-client.ts +0 -124
  167. package/src/global-wrangler-config-path.ts +0 -26
  168. package/src/https-options.ts +0 -127
  169. package/src/index.tsx +0 -683
  170. package/src/init.ts +0 -970
  171. package/src/inspect.ts +0 -767
  172. package/src/intl-polyfill.d.ts +0 -139
  173. package/src/is-ci.ts +0 -14
  174. package/src/is-interactive.ts +0 -16
  175. package/src/kv/helpers.ts +0 -430
  176. package/src/kv/index.ts +0 -596
  177. package/src/logger.ts +0 -92
  178. package/src/metrics/index.ts +0 -5
  179. package/src/metrics/metrics-config.ts +0 -239
  180. package/src/metrics/metrics-dispatcher.ts +0 -96
  181. package/src/metrics/metrics-usage-headers.ts +0 -24
  182. package/src/metrics/send-event.ts +0 -94
  183. package/src/miniflare-cli/README.md +0 -30
  184. package/src/miniflare-cli/assets.ts +0 -215
  185. package/src/miniflare-cli/index.ts +0 -213
  186. package/src/miniflare-cli/request-context.ts +0 -40
  187. package/src/module-collection.ts +0 -267
  188. package/src/open-in-browser.ts +0 -17
  189. package/src/package-manager.ts +0 -219
  190. package/src/pages/build.tsx +0 -270
  191. package/src/pages/constants.ts +0 -18
  192. package/src/pages/deployments.tsx +0 -106
  193. package/src/pages/dev.tsx +0 -708
  194. package/src/pages/errors.ts +0 -66
  195. package/src/pages/functions/buildPlugin.ts +0 -106
  196. package/src/pages/functions/buildWorker.ts +0 -165
  197. package/src/pages/functions/filepath-routing.test.ts +0 -234
  198. package/src/pages/functions/filepath-routing.ts +0 -189
  199. package/src/pages/functions/identifiers.ts +0 -78
  200. package/src/pages/functions/routes-consolidation.test.ts +0 -250
  201. package/src/pages/functions/routes-consolidation.ts +0 -73
  202. package/src/pages/functions/routes-transformation.test.ts +0 -282
  203. package/src/pages/functions/routes-transformation.ts +0 -115
  204. package/src/pages/functions/routes-validation.test.ts +0 -403
  205. package/src/pages/functions/routes-validation.ts +0 -202
  206. package/src/pages/functions/routes.ts +0 -151
  207. package/src/pages/functions.tsx +0 -82
  208. package/src/pages/hash.tsx +0 -13
  209. package/src/pages/index.tsx +0 -94
  210. package/src/pages/projects.tsx +0 -169
  211. package/src/pages/publish.tsx +0 -446
  212. package/src/pages/types.ts +0 -49
  213. package/src/pages/upload.tsx +0 -425
  214. package/src/pages/utils.ts +0 -12
  215. package/src/parse.ts +0 -286
  216. package/src/paths.ts +0 -71
  217. package/src/proxy.ts +0 -689
  218. package/src/publish/index.ts +0 -270
  219. package/src/publish/publish.ts +0 -1035
  220. package/src/pubsub/index.ts +0 -286
  221. package/src/pubsub/pubsub-commands.tsx +0 -624
  222. package/src/queues/cli/commands/consumer/add.ts +0 -71
  223. package/src/queues/cli/commands/consumer/index.ts +0 -22
  224. package/src/queues/cli/commands/consumer/remove.ts +0 -38
  225. package/src/queues/cli/commands/create.ts +0 -25
  226. package/src/queues/cli/commands/delete.ts +0 -26
  227. package/src/queues/cli/commands/index.ts +0 -33
  228. package/src/queues/cli/commands/list.ts +0 -25
  229. package/src/queues/client.ts +0 -135
  230. package/src/r2/constants.ts +0 -4
  231. package/src/r2/helpers.ts +0 -131
  232. package/src/r2/index.ts +0 -289
  233. package/src/routes.ts +0 -140
  234. package/src/secret/index.ts +0 -378
  235. package/src/selfsigned.d.ts +0 -29
  236. package/src/sites.tsx +0 -372
  237. package/src/tail/createTail.ts +0 -315
  238. package/src/tail/filters.ts +0 -277
  239. package/src/tail/index.ts +0 -214
  240. package/src/tail/printing.ts +0 -107
  241. package/src/type-generation.ts +0 -173
  242. package/src/update-check.ts +0 -19
  243. package/src/user/access.ts +0 -69
  244. package/src/user/choose-account.tsx +0 -69
  245. package/src/user/env-vars.ts +0 -46
  246. package/src/user/generate-auth-url.ts +0 -33
  247. package/src/user/generate-random-state.ts +0 -16
  248. package/src/user/index.ts +0 -3
  249. package/src/user/user.tsx +0 -1192
  250. package/src/utils/collectKeyValues.ts +0 -14
  251. package/src/whoami.tsx +0 -169
  252. package/src/worker.ts +0 -245
  253. package/src/yargs-types.ts +0 -20
  254. package/src/zones.ts +0 -191
  255. package/templates/experimental-local-cache-stubs.js +0 -27
  256. package/templates/first-party-worker-module-facade.ts +0 -18
  257. package/templates/format-dev-errors.ts +0 -32
  258. package/templates/serve-static-assets.ts +0 -63
  259. package/templates/service-bindings-module-facade.js +0 -54
  260. package/templates/service-bindings-sw-facade.js +0 -42
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
 
@@ -63,7 +61,7 @@ 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
 
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
  );
@@ -62,77 +62,23 @@ Consider using a Node.js version manager such as https://volta.sh/ or https://gi
62
62
  ...process.argv.slice(2),
63
63
  ],
64
64
  {
65
- stdio: "inherit",
65
+ stdio: ["inherit", "inherit", "inherit", "ipc"],
66
66
  env: {
67
67
  ...process.env,
68
68
  NODE_EXTRA_CA_CERTS: pathToCACerts,
69
69
  },
70
70
  }
71
- ).on("exit", (code) =>
72
- process.exit(code === undefined || code === null ? 0 : code)
73
- );
74
- }
75
-
76
- /**
77
- * Runs a locally-installed version of wrangler, delegating from this version.
78
- * @throws {MODULE_NOT_FOUND} if there isn't a locally installed version of wrangler.
79
- */
80
- function runDelegatedWrangler() {
81
- const packageJsonPath = require.resolve("wrangler/package.json", {
82
- paths: [process.cwd()],
83
- });
84
- const {
85
- bin: { wrangler: binaryPath },
86
- version,
87
- } = JSON.parse(fs.readFileSync(packageJsonPath));
88
- const resolvedBinaryPath = path.resolve(packageJsonPath, "..", binaryPath);
89
-
90
- debug(`Delegating to locally-installed version of wrangler @ v${version}`);
91
-
92
- // this call to `spawn` is simpler because the delegated version will do all
93
- // of the other work.
94
- return spawn(
95
- process.execPath,
96
- [resolvedBinaryPath, ...process.argv.slice(2)],
97
- {
98
- stdio: "inherit",
99
- }
100
- ).on("exit", (code) =>
101
- process.exit(code === undefined || code === null ? 0 : code)
102
- );
103
- }
104
-
105
- /**
106
- * Indicates if this invocation of `wrangler` should delegate
107
- * to a locally-installed version.
108
- */
109
- function shouldDelegate() {
110
- try {
111
- // `require.resolve` will throw if it can't find
112
- // a locally-installed version of `wrangler`
113
- const delegatedPackageJson = require.resolve("wrangler/package.json", {
114
- paths: [process.cwd()],
71
+ )
72
+ .on("exit", (code) =>
73
+ process.exit(code === undefined || code === null ? 0 : code)
74
+ )
75
+ .on("message", (message) => {
76
+ if (process.send) {
77
+ process.send(message);
78
+ }
115
79
  });
116
- const thisPackageJson = path.resolve(__dirname, "..", "package.json");
117
- // if it's the same path, then we're already a local install -- no need to delegate
118
- return thisPackageJson !== delegatedPackageJson;
119
- } catch (e) {
120
- // there's no local version to delegate to -- `require.resolve` threw
121
- return false;
122
- }
123
80
  }
124
81
 
125
- async function main() {
126
- wranglerProcess = shouldDelegate() ? runDelegatedWrangler() : runWrangler();
127
- }
128
-
129
- process.on("SIGINT", () => {
130
- wranglerProcess && wranglerProcess.kill();
131
- });
132
- process.on("SIGTERM", () => {
133
- wranglerProcess && wranglerProcess.kill();
134
- });
135
-
136
82
  // semiver implementation via https://github.com/lukeed/semiver/blob/ae7eebe6053c96be63032b14fb0b68e2553fcac4/src/index.js
137
83
 
138
84
  /**
@@ -165,4 +111,12 @@ function semiver(a, b, bool) {
165
111
 
166
112
  // end semiver implementation
167
113
 
168
- 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-d165b741",
3
+ "version": "0.0.0-d199ffbc",
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",
56
+ "check:lint": "eslint .",
60
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,7 +82,7 @@
82
82
  "setupFilesAfterEnv": [
83
83
  "<rootDir>/src/__tests__/jest.setup.ts"
84
84
  ],
85
- "testRegex": ".*.(test|spec)\\.[jt]sx?$",
85
+ "testRegex": "src/__tests__/.*\\.(test|spec)\\.[jt]sx?$",
86
86
  "testTimeout": 30000,
87
87
  "transform": {
88
88
  "^.+\\.c?(t|j)sx?$": [
@@ -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.10.0",
104
- "@miniflare/d1": "2.10.0",
105
- "@miniflare/durable-objects": "2.10.0",
106
103
  "blake3-wasm": "^2.1.5",
107
104
  "chokidar": "^3.5.3",
108
- "esbuild": "0.14.51",
109
- "miniflare": "2.10.0",
105
+ "esbuild": "0.16.3",
106
+ "miniflare": "^3.0.1",
110
107
  "nanoid": "^3.3.3",
111
108
  "path-to-regexp": "^6.2.0",
112
109
  "selfsigned": "^2.0.1",
@@ -114,12 +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
- "@databases/split-sql-query": "^1.0.3",
119
- "@databases/sql": "^3.2.0",
116
+ "@cloudflare/workers-tsconfig": "*",
117
+ "@cloudflare/workers-types": "^4.20230511.0",
120
118
  "@iarna/toml": "^3.0.0",
121
119
  "@microsoft/api-extractor": "^7.28.3",
122
- "@miniflare/tre": "^3.0.0-next.5",
123
120
  "@types/better-sqlite3": "^7.6.0",
124
121
  "@types/busboy": "^1.5.0",
125
122
  "@types/command-exists": "^1.2.0",
@@ -134,8 +131,10 @@
134
131
  "@types/supports-color": "^8.1.1",
135
132
  "@types/ws": "^8.5.3",
136
133
  "@types/yargs": "^17.0.10",
137
- "@webcontainer/env": "^1.0.1",
134
+ "@webcontainer/env": "^1.1.0",
138
135
  "body-parser": "^1.20.0",
136
+ "chalk": "^2.4.2",
137
+ "cli-table3": "^0.6.3",
139
138
  "clipboardy": "^3.0.0",
140
139
  "cmd-shim": "^4.1.0",
141
140
  "command-exists": "^1.2.9",
@@ -162,7 +161,7 @@
162
161
  "jest-websocket-mock": "^2.3.0",
163
162
  "mime": "^3.0.0",
164
163
  "minimatch": "^5.1.0",
165
- "msw": "^0.47.1",
164
+ "msw": "^0.49.1",
166
165
  "npx-import": "^1.1.3",
167
166
  "open": "^8.4.0",
168
167
  "p-queue": "^7.2.0",
@@ -173,16 +172,20 @@
173
172
  "remove-accents-esm": "^0.0.1",
174
173
  "semiver": "^1.1.0",
175
174
  "serve-static": "^1.15.0",
175
+ "shellac": "^0.8.0",
176
176
  "signal-exit": "^3.0.7",
177
+ "strip-ansi": "^7.0.1",
177
178
  "supports-color": "^9.2.2",
178
179
  "timeago.js": "^4.0.2",
179
180
  "tmp-promise": "^3.0.3",
180
181
  "ts-dedent": "^2.2.0",
181
- "undici": "^5.11.0",
182
+ "undici": "5.20.0",
182
183
  "update-check": "^1.5.4",
184
+ "vitest": "^0.31.0",
183
185
  "ws": "^8.5.0",
184
186
  "xdg-app-paths": "^7.3.0",
185
- "yargs": "^17.4.1"
187
+ "yargs": "^17.4.1",
188
+ "yoga-layout": "file:../../vendor/yoga-layout-2.0.0-beta.1.tgz"
186
189
  },
187
190
  "optionalDependencies": {
188
191
  "fsevents": "~2.3.2"
@@ -0,0 +1,12 @@
1
+ // `@types/node` should be included
2
+ Buffer.from("test");
3
+
4
+ // `@types/jest` should be included
5
+ test("test");
6
+
7
+ // @ts-expect-error `@cloudflare/workers-types` should NOT be included
8
+ const _handler: ExportedHandler = {};
9
+ // @ts-expect-error `@cloudflare/workers-types` should NOT be included
10
+ new HTMLRewriter();
11
+
12
+ export {};
@@ -0,0 +1,8 @@
1
+ {
2
+ "extends": "@cloudflare/workers-tsconfig/tsconfig.json",
3
+ "compilerOptions": {
4
+ "types": ["node", "jest"]
5
+ },
6
+ "include": ["**/*.ts"],
7
+ "exclude": []
8
+ }
@@ -1,15 +1,21 @@
1
1
  const urls = new Set();
2
2
 
3
3
  export function checkedFetch(request, init) {
4
- const url = new URL(
5
- (typeof request === "string" ? new Request(request, init) : request).url
6
- );
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
+ );
7
13
  if (url.port && url.port !== "443" && url.protocol === "https:") {
8
14
  if (!urls.has(url.toString())) {
9
15
  urls.add(url.toString());
10
16
  console.warn(
11
17
  `WARNING: known issue with \`fetch()\` requests to custom HTTPS ports in published Workers:\n` +
12
- ` - ${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`
13
19
  );
14
20
  }
15
21
  }
@@ -0,0 +1,17 @@
1
+ declare module "__ENTRY_POINT__" {
2
+ import type { Middleware } from "./middleware/common";
3
+ const worker: ExportedHandler & {
4
+ middleware?: Middleware[];
5
+ envWrappers: ((env: Record<string, unknown>) => Record<string, unknown>)[];
6
+ };
7
+ export default worker;
8
+ }
9
+
10
+ declare module "__KV_ASSET_HANDLER__" {
11
+ export * from "@cloudflare/kv-asset-handler";
12
+ }
13
+
14
+ declare module "__STATIC_CONTENT_MANIFEST" {
15
+ const manifest: string;
16
+ export default manifest;
17
+ }
@@ -169,3 +169,4 @@ dist
169
169
  # wrangler project
170
170
 
171
171
  .dev.vars
172
+ .wrangler/
@@ -4,11 +4,9 @@ describe("Worker", () => {
4
4
  let worker;
5
5
 
6
6
  beforeAll(async () => {
7
- worker = await unstable_dev(
8
- "src/index.js",
9
- {},
10
- { disableExperimentalWarning: true }
11
- );
7
+ worker = await unstable_dev("src/index.js", {
8
+ experimental: { disableExperimentalWarning: true },
9
+ });
12
10
  });
13
11
 
14
12
  afterAll(async () => {
@@ -5,11 +5,9 @@ describe("Worker", () => {
5
5
  let worker;
6
6
 
7
7
  beforeAll(async () => {
8
- worker = await unstable_dev(
9
- "src/index.js",
10
- {},
11
- { disableExperimentalWarning: true }
12
- );
8
+ worker = await unstable_dev("src/index.js", {
9
+ experimental: { disableExperimentalWarning: true },
10
+ });
13
11
  });
14
12
 
15
13
  afterAll(async () => {
@@ -0,0 +1,25 @@
1
+ import { unstable_dev } from "wrangler";
2
+ import type { UnstableDevWorker } from "wrangler";
3
+ import { describe, expect, it, beforeAll, afterAll } from "vitest";
4
+
5
+ describe("Worker", () => {
6
+ let worker: UnstableDevWorker;
7
+
8
+ beforeAll(async () => {
9
+ worker = await unstable_dev("src/index.ts", {
10
+ experimental: { disableExperimentalWarning: true },
11
+ });
12
+ });
13
+
14
+ afterAll(async () => {
15
+ await worker.stop();
16
+ });
17
+
18
+ it("should return Hello World", async () => {
19
+ const resp = await worker.fetch();
20
+ if (resp) {
21
+ const text = await resp.text();
22
+ expect(text).toMatchInlineSnapshot(`"Hello World!"`);
23
+ }
24
+ });
25
+ });
@@ -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,
@@ -11,11 +11,9 @@ import {
11
11
  __facade_register__,
12
12
  } from "./common";
13
13
 
14
- // @ts-expect-error We'll swap in the entry point during build
15
14
  import worker from "__ENTRY_POINT__";
16
15
 
17
16
  // We need to preserve all of the exports from the worker
18
- // @ts-expect-error We'll swap in the entry point during build
19
17
  export * from "__ENTRY_POINT__";
20
18
 
21
19
  class __Facade_ScheduledController__ implements ScheduledController {
@@ -38,13 +36,54 @@ class __Facade_ScheduledController__ implements ScheduledController {
38
36
  }
39
37
  }
40
38
 
41
- const __facade_modules_fetch__: Middleware = function (request, env, ctx) {
42
- 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.");
43
46
  return worker.fetch(request, env, ctx);
44
47
  };
45
48
 
46
- const facade: ExportedHandler<unknown> = {
47
- 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" | "fetch"
66
+ >;
67
+
68
+ const facade: ExportedHandler<unknown> & MissingExportHandlers = {
69
+ ...(worker.tail && {
70
+ tail: maskHandlerEnv(worker.tail),
71
+ }),
72
+ ...(worker.trace && {
73
+ trace: maskHandlerEnv(worker.trace),
74
+ }),
75
+ ...(worker.scheduled && {
76
+ scheduled: maskHandlerEnv(worker.scheduled),
77
+ }),
78
+ ...(worker.queue && {
79
+ queue: maskHandlerEnv(worker.queue),
80
+ }),
81
+ ...(worker.test && {
82
+ test: maskHandlerEnv(worker.test),
83
+ }),
84
+
85
+ fetch(request, rawEnv, ctx) {
86
+ const env = getMaskedEnv(rawEnv);
48
87
  // Get the chain of middleware from the worker object
49
88
  if (worker.middleware && worker.middleware.length > 0) {
50
89
  for (const middleware of worker.middleware) {
@@ -73,12 +112,16 @@ const facade: ExportedHandler<unknown> = {
73
112
  // We didn't have any middleware so we can skip the invocation chain,
74
113
  // and just call the fetch handler directly
75
114
 
76
- // We "don't care" if this is undefined as we want to have the same behaviour
115
+ // We "don't care" if this is undefined as we want to have the same behavior
77
116
  // as if the worker completely bypassed middleware.
78
- return worker.fetch!(request, env, ctx);
117
+ return __facade_modules_fetch__(request, env, ctx);
79
118
  }
80
119
  },
81
- scheduled: worker.scheduled,
82
120
  };
83
121
 
122
+ type HandlerFn<D, R> = (data: D, env: unknown, ctx: ExecutionContext) => R;
123
+ function maskHandlerEnv<D, R>(handler: HandlerFn<D, R>): HandlerFn<D, R> {
124
+ return (data, env, ctx) => handler(data, getMaskedEnv(env), ctx);
125
+ }
126
+
84
127
  export default facade;