wrangler 0.0.0-bbfb6a96 → 0.0.0-bc6c6861

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 (229) hide show
  1. package/README.md +3 -3
  2. package/bin/wrangler.js +10 -2
  3. package/miniflare-dist/index.mjs +60 -57
  4. package/package.json +25 -18
  5. package/src/__tests__/api-dev.test.ts +65 -36
  6. package/src/__tests__/api-devregistry.test.ts +121 -0
  7. package/src/__tests__/api.test.ts +27 -5
  8. package/src/__tests__/configuration.test.ts +366 -49
  9. package/src/__tests__/d1/d1.test.ts +82 -0
  10. package/src/__tests__/d1/execute.test.ts +66 -0
  11. package/src/__tests__/d1/migrate.test.ts +157 -0
  12. package/src/__tests__/d1/splitter.test.ts +255 -0
  13. package/src/__tests__/delete.test.ts +11 -2
  14. package/src/__tests__/deployments.test.ts +330 -52
  15. package/src/__tests__/dev.test.tsx +146 -82
  16. package/src/__tests__/generate.test.ts +11 -9
  17. package/src/__tests__/guess-worker-format.test.ts +35 -0
  18. package/src/__tests__/helpers/end-event-loop.ts +6 -0
  19. package/src/__tests__/helpers/mock-auth-domain.ts +20 -0
  20. package/src/__tests__/helpers/mock-console.ts +6 -0
  21. package/src/__tests__/helpers/mock-dialogs.ts +71 -85
  22. package/src/__tests__/helpers/mock-get-pages-upload-token.ts +25 -0
  23. package/src/__tests__/helpers/mock-get-zone-from-host.ts +8 -5
  24. package/src/__tests__/helpers/mock-known-routes.ts +7 -2
  25. package/src/__tests__/helpers/mock-kv.ts +29 -16
  26. package/src/__tests__/helpers/mock-oauth-flow.ts +99 -92
  27. package/src/__tests__/helpers/mock-process.ts +8 -13
  28. package/src/__tests__/helpers/mock-set-timeout.ts +16 -0
  29. package/src/__tests__/helpers/msw/blob-worker.cjs +19 -0
  30. package/src/__tests__/helpers/msw/handlers/deployments.ts +127 -26
  31. package/src/__tests__/helpers/msw/handlers/namespaces.ts +18 -41
  32. package/src/__tests__/helpers/msw/handlers/r2.ts +14 -34
  33. package/src/__tests__/helpers/msw/handlers/script.ts +9 -28
  34. package/src/__tests__/helpers/msw/handlers/user.ts +13 -24
  35. package/src/__tests__/helpers/msw/handlers/zones.ts +6 -8
  36. package/src/__tests__/helpers/msw/index.ts +32 -1
  37. package/src/__tests__/helpers/msw/read-file-sync.js +61 -0
  38. package/src/__tests__/helpers/string-dynamic-values-matcher.ts +28 -0
  39. package/src/__tests__/helpers/worker-scripts/parent-worker.js +4 -1
  40. package/src/__tests__/index.test.ts +90 -74
  41. package/src/__tests__/init.test.ts +909 -628
  42. package/src/__tests__/jest.setup.ts +19 -42
  43. package/src/__tests__/kv.test.ts +355 -231
  44. package/src/__tests__/logger.test.ts +68 -2
  45. package/src/__tests__/logout.test.ts +1 -1
  46. package/src/__tests__/metrics.test.ts +93 -50
  47. package/src/__tests__/middleware.scheduled.test.ts +42 -32
  48. package/src/__tests__/middleware.test.ts +212 -122
  49. package/src/__tests__/mtls-certificates.test.ts +588 -0
  50. package/src/__tests__/pages/deployment-list.test.ts +80 -0
  51. package/src/__tests__/pages/functions-build.test.ts +452 -0
  52. package/src/__tests__/pages/pages.test.ts +81 -0
  53. package/src/__tests__/pages/project-create.test.ts +63 -0
  54. package/src/__tests__/pages/project-list.test.ts +110 -0
  55. package/src/__tests__/pages/project-upload.test.ts +500 -0
  56. package/src/__tests__/pages/publish.test.ts +2864 -0
  57. package/src/__tests__/pages-deployment-tail.test.ts +72 -1
  58. package/src/__tests__/parse.test.ts +106 -0
  59. package/src/__tests__/publish.test.ts +1494 -791
  60. package/src/__tests__/pubsub.test.ts +18 -12
  61. package/src/__tests__/queues.test.ts +42 -32
  62. package/src/__tests__/r2.test.ts +37 -56
  63. package/src/__tests__/secret.test.ts +179 -130
  64. package/src/__tests__/tail.test.ts +78 -19
  65. package/src/__tests__/test-old-node-version.js +3 -3
  66. package/src/__tests__/traverse-module-graph.test.ts +220 -0
  67. package/src/__tests__/tsconfig-sanity.ts +12 -0
  68. package/src/__tests__/tsconfig.json +8 -0
  69. package/src/__tests__/tsconfig.tsbuildinfo +1 -0
  70. package/src/__tests__/type-generation.test.ts +1 -0
  71. package/src/__tests__/user.test.ts +7 -18
  72. package/src/__tests__/whoami.test.tsx +8 -114
  73. package/src/__tests__/worker-namespace.test.ts +83 -69
  74. package/src/api/dev.ts +167 -61
  75. package/src/api/index.ts +10 -1
  76. package/src/api/mtls-certificate.ts +148 -0
  77. package/src/api/pages/create-worker-bundle-contents.ts +76 -0
  78. package/src/api/pages/index.ts +5 -0
  79. package/src/api/pages/publish.tsx +355 -0
  80. package/src/bundle.ts +110 -25
  81. package/src/cfetch/index.ts +0 -2
  82. package/src/cfetch/internal.ts +16 -21
  83. package/src/cli.ts +4 -4
  84. package/src/config/config.ts +14 -7
  85. package/src/config/environment.ts +57 -16
  86. package/src/config/index.ts +69 -23
  87. package/src/config/validation-helpers.ts +1 -1
  88. package/src/config/validation.ts +199 -9
  89. package/src/create-worker-preview.ts +19 -8
  90. package/src/create-worker-upload-form.ts +39 -5
  91. package/src/d1/backups.tsx +36 -40
  92. package/src/d1/create.tsx +26 -21
  93. package/src/d1/{delete.tsx → delete.ts} +7 -10
  94. package/src/d1/execute.tsx +170 -165
  95. package/src/d1/index.ts +5 -6
  96. package/src/d1/list.tsx +22 -10
  97. package/src/d1/migrations/apply.tsx +92 -64
  98. package/src/d1/migrations/create.tsx +31 -29
  99. package/src/d1/migrations/helpers.ts +63 -38
  100. package/src/d1/migrations/list.tsx +47 -31
  101. package/src/d1/migrations/options.ts +7 -2
  102. package/src/d1/options.ts +3 -3
  103. package/src/d1/splitter.ts +161 -0
  104. package/src/d1/{types.tsx → types.ts} +1 -0
  105. package/src/d1/utils.ts +2 -1
  106. package/src/delete.ts +8 -16
  107. package/src/deployments.ts +333 -42
  108. package/src/deprecated/index.ts +8 -302
  109. package/src/dev/dev.tsx +7 -21
  110. package/src/dev/local.tsx +34 -34
  111. package/src/dev/remote.tsx +32 -3
  112. package/src/dev/start-server.ts +36 -37
  113. package/src/dev/use-esbuild.ts +13 -14
  114. package/src/dev/validate-dev-props.ts +9 -0
  115. package/src/{dev-registry.tsx → dev-registry.ts} +2 -1
  116. package/src/dev.tsx +113 -109
  117. package/src/dialogs.ts +136 -0
  118. package/src/dispatch-namespace.ts +21 -17
  119. package/src/docs/index.ts +97 -0
  120. package/src/entry.ts +19 -11
  121. package/src/environment-variables/factory.ts +88 -0
  122. package/src/environment-variables/misc-variables.ts +30 -0
  123. package/src/generate/index.ts +298 -0
  124. package/src/{index.tsx → index.ts} +126 -56
  125. package/src/init.ts +249 -195
  126. package/src/inspect.ts +16 -1
  127. package/src/jest.d.ts +4 -0
  128. package/src/kv/index.ts +15 -17
  129. package/src/logger.ts +32 -5
  130. package/src/metrics/metrics-config.ts +1 -1
  131. package/src/metrics/send-event.ts +4 -1
  132. package/src/miniflare-cli/assets.ts +24 -15
  133. package/src/miniflare-cli/index.ts +2 -6
  134. package/src/miniflare-cli/tsconfig.json +9 -0
  135. package/src/miniflare-cli/tsconfig.tsbuildinfo +1 -0
  136. package/src/miniflare-cli/types.ts +11 -0
  137. package/src/module-collection.ts +91 -25
  138. package/src/mtls-certificate/cli.ts +155 -0
  139. package/src/pages/build.ts +410 -0
  140. package/src/pages/buildFunctions.ts +140 -0
  141. package/src/pages/{deployment-tails.tsx → deployment-tails.ts} +7 -10
  142. package/src/pages/deployments.tsx +9 -9
  143. package/src/pages/{dev.tsx → dev.ts} +142 -139
  144. package/src/pages/errors.ts +1 -0
  145. package/src/pages/functions/buildPlugin.ts +60 -54
  146. package/src/pages/functions/buildWorker.ts +158 -33
  147. package/src/pages/functions/tsconfig.json +8 -0
  148. package/src/pages/functions/tsconfig.tsbuildinfo +1 -0
  149. package/src/pages/{functions.tsx → functions.ts} +8 -4
  150. package/src/pages/{index.tsx → index.ts} +3 -3
  151. package/src/pages/projects.tsx +12 -22
  152. package/src/pages/publish.tsx +43 -227
  153. package/src/pages/types.ts +5 -0
  154. package/src/pages/upload.tsx +57 -14
  155. package/src/pages/utils.ts +1 -1
  156. package/src/parse.ts +23 -1
  157. package/src/paths.ts +1 -1
  158. package/src/publish/index.ts +20 -16
  159. package/src/publish/publish.ts +69 -45
  160. package/src/pubsub/{pubsub-commands.tsx → pubsub-commands.ts} +19 -20
  161. package/src/queues/cli/commands/consumer/add.ts +24 -24
  162. package/src/queues/cli/commands/consumer/index.ts +3 -6
  163. package/src/queues/cli/commands/consumer/remove.ts +11 -18
  164. package/src/queues/cli/commands/create.ts +8 -8
  165. package/src/queues/cli/commands/delete.ts +8 -8
  166. package/src/queues/cli/commands/index.ts +3 -4
  167. package/src/queues/cli/commands/list.ts +8 -8
  168. package/src/queues/client.ts +1 -0
  169. package/src/r2/helpers.ts +1 -0
  170. package/src/r2/index.ts +28 -28
  171. package/src/secret/index.ts +13 -16
  172. package/src/{sites.tsx → sites.ts} +1 -1
  173. package/src/tail/createTail.ts +28 -1
  174. package/src/tail/filters.ts +1 -1
  175. package/src/tail/index.ts +8 -11
  176. package/src/tail/printing.ts +15 -0
  177. package/src/traverse-module-graph.ts +53 -0
  178. package/src/tsconfig-sanity.ts +16 -0
  179. package/src/type-generation.ts +1 -1
  180. package/src/user/access.ts +0 -1
  181. package/src/user/auth-variables.ts +113 -0
  182. package/src/user/choose-account.tsx +1 -31
  183. package/src/user/index.ts +0 -1
  184. package/src/user/{user.tsx → user.ts} +112 -77
  185. package/src/utils/render.ts +93 -0
  186. package/src/{whoami.tsx → whoami.ts} +37 -71
  187. package/src/worker.ts +24 -1
  188. package/src/yargs-types.ts +18 -5
  189. package/templates/__tests__/tsconfig-sanity.ts +12 -0
  190. package/templates/__tests__/tsconfig.json +8 -0
  191. package/templates/__tests__/tsconfig.tsbuildinfo +1 -0
  192. package/templates/checked-fetch.js +9 -3
  193. package/templates/d1-beta-facade.js +42 -3
  194. package/templates/facade.d.ts +14 -0
  195. package/templates/first-party-worker-module-facade.ts +4 -3
  196. package/templates/format-dev-errors.ts +8 -6
  197. package/templates/gitignore +1 -0
  198. package/templates/init-tests/test-jest-new-worker.js +3 -5
  199. package/templates/init-tests/test-vitest-new-worker.js +3 -5
  200. package/templates/init-tests/test-vitest-new-worker.ts +25 -0
  201. package/templates/middleware/loader-modules.ts +2 -2
  202. package/templates/middleware/loader-sw.ts +6 -0
  203. package/templates/middleware/middleware-miniflare3-json-error.ts +17 -5
  204. package/templates/new-worker.ts +3 -0
  205. package/templates/pages-dev-pipeline.ts +4 -1
  206. package/templates/pages-shim.ts +4 -1
  207. package/templates/pages-template-plugin.ts +19 -10
  208. package/templates/serve-static-assets.ts +17 -14
  209. package/templates/service-bindings-module-facade.js +1 -0
  210. package/templates/tsconfig-sanity.ts +11 -0
  211. package/templates/tsconfig.init.json +105 -0
  212. package/templates/tsconfig.json +5 -103
  213. package/templates/tsconfig.tsbuildinfo +1 -0
  214. package/wrangler-dist/cli.d.ts +805 -72
  215. package/wrangler-dist/cli.js +125148 -137617
  216. package/wrangler-dist/wasm-sync.wasm +0 -0
  217. package/src/__tests__/api-devregistry.test.js +0 -56
  218. package/src/__tests__/d1.test.ts +0 -80
  219. package/src/__tests__/dialogs.test.tsx +0 -40
  220. package/src/__tests__/helpers/mock-cfetch.ts +0 -333
  221. package/src/__tests__/pages.test.ts +0 -2442
  222. package/src/dialogs.tsx +0 -168
  223. package/src/environment-variables.ts +0 -50
  224. package/src/pages/build.tsx +0 -270
  225. package/src/user/env-vars.ts +0 -46
  226. /package/src/{bundle-reporter.tsx → bundle-reporter.ts} +0 -0
  227. /package/src/d1/migrations/{index.tsx → index.ts} +0 -0
  228. /package/src/dev/{get-local-persistence-path.tsx → get-local-persistence-path.ts} +0 -0
  229. /package/src/pages/{hash.tsx → hash.ts} +0 -0
package/README.md CHANGED
@@ -1,12 +1,12 @@
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.
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-legacy.
10
10
 
11
11
  `wrangler` is a command line tool for building [Cloudflare Workers](https://workers.cloudflare.com/).
12
12
 
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
  );
@@ -93,7 +93,15 @@ function runDelegatedWrangler() {
93
93
  } = JSON.parse(fs.readFileSync(packageJsonPath));
94
94
  const resolvedBinaryPath = path.resolve(packageJsonPath, "..", binaryPath);
95
95
 
96
- debug(`Delegating to locally-installed version of wrangler @ v${version}`);
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
+ );
97
105
 
98
106
  // this call to `spawn` is simpler because the delegated version will do all
99
107
  // of the other work.
@@ -130,41 +130,43 @@ var init_environment_polyfills = __esm({
130
130
 
131
131
  // ../pages-shared/environment-polyfills/miniflare-tre.ts
132
132
  var miniflare_tre_exports = {};
133
- import {
134
- fetch as miniflareFetch,
135
- Headers as MiniflareHeaders,
136
- Request as MiniflareRequest,
137
- Response as MiniflareResponse
138
- } from "@miniflare/tre";
133
+ __export(miniflare_tre_exports, {
134
+ default: () => miniflare_tre_default
135
+ });
136
+ var miniflare_tre_default;
139
137
  var init_miniflare_tre = __esm({
140
138
  "../pages-shared/environment-polyfills/miniflare-tre.ts"() {
141
139
  init_environment_polyfills();
142
- polyfill({
143
- fetch: miniflareFetch,
144
- Headers: MiniflareHeaders,
145
- Request: MiniflareRequest,
146
- Response: MiniflareResponse
147
- });
140
+ miniflare_tre_default = async () => {
141
+ const mf = await import("@miniflare/tre");
142
+ polyfill({
143
+ fetch: mf.fetch,
144
+ Headers: mf.Headers,
145
+ Request: mf.Request,
146
+ Response: mf.Response
147
+ });
148
+ };
148
149
  }
149
150
  });
150
151
 
151
152
  // ../pages-shared/environment-polyfills/miniflare.ts
152
153
  var miniflare_exports = {};
153
- import {
154
- fetch as miniflareFetch2,
155
- Headers as MiniflareHeaders2,
156
- Request as MiniflareRequest2,
157
- Response as MiniflareResponse2
158
- } from "@miniflare/core";
154
+ __export(miniflare_exports, {
155
+ default: () => miniflare_default
156
+ });
157
+ var miniflare_default;
159
158
  var init_miniflare = __esm({
160
159
  "../pages-shared/environment-polyfills/miniflare.ts"() {
161
160
  init_environment_polyfills();
162
- polyfill({
163
- fetch: miniflareFetch2,
164
- Headers: MiniflareHeaders2,
165
- Request: MiniflareRequest2,
166
- Response: MiniflareResponse2
167
- });
161
+ miniflare_default = async () => {
162
+ const mf = await import("@miniflare/core");
163
+ polyfill({
164
+ fetch: mf.fetch,
165
+ Headers: mf.Headers,
166
+ Request: mf.Request,
167
+ Response: mf.Response
168
+ });
169
+ };
168
170
  }
169
171
  });
170
172
 
@@ -439,7 +441,11 @@ async function generateHandler({
439
441
  async function generateResponse() {
440
442
  const match = staticRedirectsMatcher() || generateRedirectsMatcher()({ request })[0];
441
443
  if (match) {
442
- return getResponseFromMatch(match, url);
444
+ if (match.status === 200) {
445
+ pathname = new URL(match.to, request.url).pathname;
446
+ } else {
447
+ return getResponseFromMatch(match, url);
448
+ }
443
449
  }
444
450
  if (!request.method.match(/^(get|head)$/i)) {
445
451
  return new MethodNotAllowedResponse();
@@ -667,7 +673,7 @@ async function generateHandler({
667
673
  return new HTMLRewriter().on("body", {
668
674
  element(e) {
669
675
  e.append(
670
- `<!-- Cloudflare Pages Analytics --><script defer src='https://static.cloudflareinsights.com/beacon.min.js' data-cf-beacon='{"token": "${metadata.analytics?.token}"}'><\/script><!-- Cloudflare Pages Analytics -->`,
676
+ `<!-- Cloudflare Pages Analytics --><script defer src='https://static.cloudflareinsights.com/beacon.min.js' data-cf-beacon='{"token": "${metadata.analytics?.token}"}'></script><!-- Cloudflare Pages Analytics -->`,
671
677
  { html: true }
672
678
  );
673
679
  }
@@ -786,8 +792,8 @@ import {
786
792
  Log as MiniflareLog,
787
793
  LogLevel as MiniflareLogLevel,
788
794
  Miniflare,
789
- Request as MiniflareRequest3,
790
- Response as MiniflareResponse3
795
+ Request as MiniflareRequest,
796
+ Response as MiniflareResponse
791
797
  } from "miniflare";
792
798
 
793
799
  // ../../node_modules/yargs/lib/platform-shims/esm.mjs
@@ -5613,7 +5619,7 @@ import { join } from "node:path";
5613
5619
  var REDIRECTS_VERSION = 1;
5614
5620
  var HEADERS_VERSION = 2;
5615
5621
  var ANALYTICS_VERSION = 1;
5616
- var PERMITTED_STATUS_CODES = /* @__PURE__ */ new Set([301, 302, 303, 307, 308]);
5622
+ var PERMITTED_STATUS_CODES = /* @__PURE__ */ new Set([200, 301, 302, 303, 307, 308]);
5617
5623
  var HEADER_SEPARATOR = ":";
5618
5624
  var MAX_LINE_LENGTH = 2e3;
5619
5625
  var MAX_HEADER_RULES = 100;
@@ -5992,7 +5998,7 @@ function parseRedirects(input) {
5992
5998
  invalid.push({
5993
5999
  line,
5994
6000
  lineNumber: i + 1,
5995
- message: `Valid status codes are 301, 302 (default), 303, 307, or 308. Got ${str_status}.`
6001
+ message: `Valid status codes are 200, 301, 302 (default), 303, 307, or 308. Got ${str_status}.`
5996
6002
  });
5997
6003
  continue;
5998
6004
  }
@@ -6005,6 +6011,19 @@ function parseRedirects(input) {
6005
6011
  continue;
6006
6012
  }
6007
6013
  seen_paths.add(from);
6014
+ if (status === 200) {
6015
+ const [proxyTo, error] = validateUrl(to, true, true, true);
6016
+ if (error) {
6017
+ invalid.push({
6018
+ line,
6019
+ lineNumber: i + 1,
6020
+ message: `Proxy (200) redirects can only point to relative paths. Got ${to}`
6021
+ });
6022
+ continue;
6023
+ }
6024
+ rules.push({ from, to: proxyTo, status, lineNumber: i + 1 });
6025
+ continue;
6026
+ }
6008
6027
  rules.push({ from, to, status, lineNumber: i + 1 });
6009
6028
  }
6010
6029
  return {
@@ -6017,7 +6036,7 @@ function parseRedirects(input) {
6017
6036
  var import_mime = __toESM(require_mime());
6018
6037
  import { watch } from "chokidar";
6019
6038
 
6020
- // src/pages/hash.tsx
6039
+ // src/pages/hash.ts
6021
6040
  import { readFileSync as readFileSync4 } from "node:fs";
6022
6041
  import { extname as extname2 } from "node:path";
6023
6042
  import { hash as blake3hash } from "blake3-wasm";
@@ -6066,11 +6085,8 @@ async function generateASSETSBinding(options) {
6066
6085
  };
6067
6086
  }
6068
6087
  async function generateAssetsFetch(directory, log, tre) {
6069
- if (tre) {
6070
- await Promise.resolve().then(() => (init_miniflare_tre(), miniflare_tre_exports));
6071
- } else {
6072
- await Promise.resolve().then(() => (init_miniflare(), miniflare_exports));
6073
- }
6088
+ const polyfill2 = tre ? (await Promise.resolve().then(() => (init_miniflare_tre(), miniflare_tre_exports))).default : (await Promise.resolve().then(() => (init_miniflare(), miniflare_exports))).default;
6089
+ await polyfill2();
6074
6090
  const miniflare = tre ? await import("@miniflare/tre") : await import("@miniflare/core");
6075
6091
  const Request = miniflare.Request;
6076
6092
  const { generateHandler: generateHandler2, parseQualityWeightedList: parseQualityWeightedList2 } = await Promise.resolve().then(() => (init_handler(), handler_exports));
@@ -6153,7 +6169,7 @@ async function generateAssetsFetch(directory, log, tre) {
6153
6169
  const filepath = assetKeyEntryMap.get(assetKey);
6154
6170
  if (!filepath) {
6155
6171
  throw new Error(
6156
- "Could not fetch asset. Please file an issue on GitHub (https://github.com/cloudflare/wrangler2/issues/new/choose) with reproduction steps."
6172
+ "Could not fetch asset. Please file an issue on GitHub (https://github.com/cloudflare/workers-sdk/issues/new/choose) with reproduction steps."
6157
6173
  );
6158
6174
  }
6159
6175
  const body = readFileSync5(filepath);
@@ -6214,7 +6230,7 @@ async function main() {
6214
6230
  if (logLevelString === "LOG")
6215
6231
  logLevelString = "INFO";
6216
6232
  const logLevel = MiniflareLogLevel[logLevelString];
6217
- config.log = logLevel === MiniflareLogLevel.NONE ? new MiniflareNoOpLog() : new MiniflareLog(logLevel, config.logOptions);
6233
+ config.log = logLevel === MiniflareLogLevel.NONE ? new MiniflareNoOpLog() : new MiniflareLog(logLevel);
6218
6234
  if (logLevel === MiniflareLogLevel.DEBUG) {
6219
6235
  console.log("MINIFLARE OPTIONS:\n", JSON.stringify(config, null, 2));
6220
6236
  }
@@ -6234,12 +6250,12 @@ async function main() {
6234
6250
  namespace.get = (id) => {
6235
6251
  const stub = new DurableObjectStub(factory, id);
6236
6252
  stub.fetch = (...reqArgs) => {
6237
- const requestFromArgs = new MiniflareRequest3(...reqArgs);
6253
+ const requestFromArgs = new MiniflareRequest(...reqArgs);
6238
6254
  const url = new URL(requestFromArgs.url);
6239
6255
  url.host = host;
6240
6256
  if (port !== void 0)
6241
6257
  url.port = port.toString();
6242
- const request = new MiniflareRequest3(
6258
+ const request = new MiniflareRequest(
6243
6259
  url.toString(),
6244
6260
  requestFromArgs
6245
6261
  );
@@ -6299,7 +6315,7 @@ async function main() {
6299
6315
  }`,
6300
6316
  serviceBindings: {
6301
6317
  DO: async (request) => {
6302
- request = new MiniflareRequest3(request);
6318
+ request = new MiniflareRequest(request);
6303
6319
  const name = request.headers.get("x-miniflare-durable-object-name");
6304
6320
  const idString = request.headers.get(
6305
6321
  "x-miniflare-durable-object-id"
@@ -6307,7 +6323,7 @@ async function main() {
6307
6323
  request.headers.delete("x-miniflare-durable-object-name");
6308
6324
  request.headers.delete("x-miniflare-durable-object-id");
6309
6325
  if (!name || !idString) {
6310
- return new MiniflareResponse3(
6326
+ return new MiniflareResponse(
6311
6327
  "[durable-object-proxy-err] Missing `x-miniflare-durable-object-name` or `x-miniflare-durable-object-id` headers.",
6312
6328
  { status: 400 }
6313
6329
  );
@@ -6315,14 +6331,14 @@ async function main() {
6315
6331
  const namespace = await mf?.getDurableObjectNamespace(name);
6316
6332
  const id = namespace?.idFromString(idString);
6317
6333
  if (!id) {
6318
- return new MiniflareResponse3(
6334
+ return new MiniflareResponse(
6319
6335
  "[durable-object-proxy-err] Could not generate an ID. Possibly due to a mismatched DO name and ID?",
6320
6336
  { status: 500 }
6321
6337
  );
6322
6338
  }
6323
6339
  const stub = namespace?.get(id);
6324
6340
  if (!stub) {
6325
- return new MiniflareResponse3(
6341
+ return new MiniflareResponse(
6326
6342
  "[durable-object-proxy-err] Could not generate a stub. Possibly due to a mismatched DO name and ID?",
6327
6343
  { status: 500 }
6328
6344
  );
@@ -6350,16 +6366,3 @@ async function main() {
6350
6366
  }
6351
6367
  }
6352
6368
  await main();
6353
- /**
6354
- * @fileoverview Main entrypoint for libraries using yargs-parser in Node.js
6355
- * CJS and ESM environments.
6356
- *
6357
- * @license
6358
- * Copyright (c) 2016, Contributors
6359
- * SPDX-License-Identifier: ISC
6360
- */
6361
- /**
6362
- * @license
6363
- * Copyright (c) 2016, Contributors
6364
- * SPDX-License-Identifier: ISC
6365
- */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wrangler",
3
- "version": "0.0.0-bbfb6a96",
3
+ "version": "0.0.0-bc6c6861",
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",
@@ -57,15 +57,17 @@
57
57
  "assert-git-version": "node -r esbuild-register scripts/assert-git-version.ts",
58
58
  "build": "npm run clean && npm run bundle && npm run emit-types",
59
59
  "bundle": "node -r esbuild-register scripts/bundle.ts",
60
- "check:type": "tsc",
60
+ "check:type": "node -r esbuild-register scripts/tsc-all.ts",
61
61
  "clean": "rimraf wrangler-dist miniflare-dist emitted-types",
62
62
  "dev": "npm run clean && concurrently -c black,blue --kill-others-on-fail false 'npm run bundle -- --watch' 'npm run check:type -- --watch --preserveWatchOutput'",
63
63
  "emit-types": "tsc -p tsconfig.emit.json && node -r esbuild-register scripts/emit-types.ts",
64
64
  "prepublishOnly": "SOURCEMAPS=false npm run build",
65
65
  "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",
66
+ "test": "npm run assert-git-version && jest",
67
67
  "test-watch": "npm run test -- --runInBand --testTimeout=50000 --watch",
68
- "test:ci": "npm run test -- --verbose=true --coverage"
68
+ "test:ci": "npm run test -- --coverage",
69
+ "test:debug": "npm run test -- --silent=false --verbose=true",
70
+ "test:e2e": "vitest --no-threads ./e2e"
69
71
  },
70
72
  "jest": {
71
73
  "coverageReporters": [
@@ -82,7 +84,7 @@
82
84
  "setupFilesAfterEnv": [
83
85
  "<rootDir>/src/__tests__/jest.setup.ts"
84
86
  ],
85
- "testRegex": ".*.(test|spec)\\.[jt]sx?$",
87
+ "testRegex": "src/__tests__/.*\\.(test|spec)\\.[jt]sx?$",
86
88
  "testTimeout": 30000,
87
89
  "transform": {
88
90
  "^.+\\.c?(t|j)sx?$": [
@@ -100,13 +102,13 @@
100
102
  "@cloudflare/kv-asset-handler": "^0.2.0",
101
103
  "@esbuild-plugins/node-globals-polyfill": "^0.1.1",
102
104
  "@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",
105
+ "@miniflare/core": "2.13.0",
106
+ "@miniflare/d1": "2.13.0",
107
+ "@miniflare/durable-objects": "2.13.0",
106
108
  "blake3-wasm": "^2.1.5",
107
109
  "chokidar": "^3.5.3",
108
- "esbuild": "0.14.51",
109
- "miniflare": "2.10.0",
110
+ "esbuild": "0.16.3",
111
+ "miniflare": "2.13.0",
110
112
  "nanoid": "^3.3.3",
111
113
  "path-to-regexp": "^6.2.0",
112
114
  "selfsigned": "^2.0.1",
@@ -115,11 +117,10 @@
115
117
  },
116
118
  "devDependencies": {
117
119
  "@cloudflare/types": "^6.18.4",
118
- "@databases/split-sql-query": "^1.0.3",
119
- "@databases/sql": "^3.2.0",
120
+ "@cloudflare/workers-types": "^4.20221111.1",
120
121
  "@iarna/toml": "^3.0.0",
121
122
  "@microsoft/api-extractor": "^7.28.3",
122
- "@miniflare/tre": "^3.0.0-next.8",
123
+ "@miniflare/tre": "3.0.0-next.12",
123
124
  "@types/better-sqlite3": "^7.6.0",
124
125
  "@types/busboy": "^1.5.0",
125
126
  "@types/command-exists": "^1.2.0",
@@ -136,6 +137,8 @@
136
137
  "@types/yargs": "^17.0.10",
137
138
  "@webcontainer/env": "^1.0.1",
138
139
  "body-parser": "^1.20.0",
140
+ "chalk": "^2.4.2",
141
+ "cli-table3": "^0.6.3",
139
142
  "clipboardy": "^3.0.0",
140
143
  "cmd-shim": "^4.1.0",
141
144
  "command-exists": "^1.2.9",
@@ -173,16 +176,20 @@
173
176
  "remove-accents-esm": "^0.0.1",
174
177
  "semiver": "^1.1.0",
175
178
  "serve-static": "^1.15.0",
179
+ "shellac": "^0.7.3",
176
180
  "signal-exit": "^3.0.7",
181
+ "strip-ansi": "^7.0.1",
177
182
  "supports-color": "^9.2.2",
178
183
  "timeago.js": "^4.0.2",
179
184
  "tmp-promise": "^3.0.3",
180
185
  "ts-dedent": "^2.2.0",
181
- "undici": "^5.11.0",
186
+ "undici": "5.20.0",
182
187
  "update-check": "^1.5.4",
188
+ "vitest": "^0.29.2",
183
189
  "ws": "^8.5.0",
184
190
  "xdg-app-paths": "^7.3.0",
185
- "yargs": "^17.4.1"
191
+ "yargs": "^17.4.1",
192
+ "yoga-layout": "file:../../vendor/yoga-layout-2.0.0-beta.1.tgz"
186
193
  },
187
194
  "optionalDependencies": {
188
195
  "fsevents": "~2.3.2"
@@ -5,12 +5,16 @@ import { runInTempDir } from "./helpers/run-in-tmp";
5
5
 
6
6
  jest.unmock("undici");
7
7
 
8
- describe.skip("unstable_dev", () => {
8
+ describe("unstable_dev", () => {
9
9
  it("should return Hello World", async () => {
10
10
  const worker = await unstable_dev(
11
11
  "src/__tests__/helpers/worker-scripts/hello-world-worker.js",
12
- {},
13
- { disableExperimentalWarning: true }
12
+ {
13
+ experimental: {
14
+ disableExperimentalWarning: true,
15
+ disableDevRegistry: true,
16
+ },
17
+ }
14
18
  );
15
19
  const resp = await worker.fetch();
16
20
  if (resp) {
@@ -23,8 +27,12 @@ describe.skip("unstable_dev", () => {
23
27
  it("should return the port that the server started on (1)", async () => {
24
28
  const worker = await unstable_dev(
25
29
  "src/__tests__/helpers/worker-scripts/hello-world-worker.js",
26
- {},
27
- { disableExperimentalWarning: true }
30
+ {
31
+ experimental: {
32
+ disableExperimentalWarning: true,
33
+ disableDevRegistry: true,
34
+ },
35
+ }
28
36
  );
29
37
  expect(worker.port).toBeGreaterThan(0);
30
38
  await worker.stop();
@@ -33,8 +41,13 @@ describe.skip("unstable_dev", () => {
33
41
  it("should return the port that the server started on (2)", async () => {
34
42
  const worker = await unstable_dev(
35
43
  "src/__tests__/helpers/worker-scripts/hello-world-worker.js",
36
- { port: 9191 },
37
- { disableExperimentalWarning: true }
44
+ {
45
+ port: 9191,
46
+ experimental: {
47
+ disableExperimentalWarning: true,
48
+ disableDevRegistry: true,
49
+ },
50
+ }
38
51
  );
39
52
  expect(worker.port).toBe(9191);
40
53
  await worker.stop();
@@ -45,8 +58,13 @@ describe("unstable dev fetch input protocol", () => {
45
58
  it("should use http localProtocol", async () => {
46
59
  const worker = await unstable_dev(
47
60
  "src/__tests__/helpers/worker-scripts/hello-world-worker.js",
48
- { localProtocol: "http" },
49
- { disableExperimentalWarning: true }
61
+ {
62
+ localProtocol: "http",
63
+ experimental: {
64
+ disableExperimentalWarning: true,
65
+ disableDevRegistry: true,
66
+ },
67
+ }
50
68
  );
51
69
  const res = await worker.fetch();
52
70
  if (res) {
@@ -59,8 +77,13 @@ describe("unstable dev fetch input protocol", () => {
59
77
  it("should use undefined localProtocol", async () => {
60
78
  const worker = await unstable_dev(
61
79
  "src/__tests__/helpers/worker-scripts/hello-world-worker.js",
62
- { localProtocol: undefined },
63
- { disableExperimentalWarning: true }
80
+ {
81
+ localProtocol: undefined,
82
+ experimental: {
83
+ disableExperimentalWarning: true,
84
+ disableDevRegistry: true,
85
+ },
86
+ }
64
87
  );
65
88
  const res = await worker.fetch();
66
89
  if (res) {
@@ -91,11 +114,13 @@ describe("unstable dev fetch input parsing", () => {
91
114
  `;
92
115
  fs.writeFileSync("index.js", scriptContent);
93
116
  const port = 21213;
94
- const worker = await unstable_dev(
95
- "index.js",
96
- { port },
97
- { disableExperimentalWarning: true }
98
- );
117
+ const worker = await unstable_dev("index.js", {
118
+ port,
119
+ experimental: {
120
+ disableExperimentalWarning: true,
121
+ disableDevRegistry: true,
122
+ },
123
+ });
99
124
  const req = new Request("http://0.0.0.0:21213/test", {
100
125
  method: "POST",
101
126
  });
@@ -119,11 +144,12 @@ describe("unstable dev fetch input parsing", () => {
119
144
  };
120
145
  `;
121
146
  fs.writeFileSync("index.js", scriptContent);
122
- const worker = await unstable_dev(
123
- "index.js",
124
- {},
125
- { disableExperimentalWarning: true }
126
- );
147
+ const worker = await unstable_dev("index.js", {
148
+ experimental: {
149
+ disableExperimentalWarning: true,
150
+ disableDevRegistry: true,
151
+ },
152
+ });
127
153
  const url = new URL("http://localhost:80/test");
128
154
  const resp = await worker.fetch(url);
129
155
  let text;
@@ -145,11 +171,12 @@ describe("unstable dev fetch input parsing", () => {
145
171
  };
146
172
  `;
147
173
  fs.writeFileSync("index.js", scriptContent);
148
- const worker = await unstable_dev(
149
- "index.js",
150
- {},
151
- { disableExperimentalWarning: true }
152
- );
174
+ const worker = await unstable_dev("index.js", {
175
+ experimental: {
176
+ disableExperimentalWarning: true,
177
+ disableDevRegistry: true,
178
+ },
179
+ });
153
180
  const resp = await worker.fetch("http://example.com/test");
154
181
  let text;
155
182
  if (resp) text = await resp.text();
@@ -170,11 +197,12 @@ describe("unstable dev fetch input parsing", () => {
170
197
  };
171
198
  `;
172
199
  fs.writeFileSync("index.js", scriptContent);
173
- const worker = await unstable_dev(
174
- "index.js",
175
- {},
176
- { disableExperimentalWarning: true }
177
- );
200
+ const worker = await unstable_dev("index.js", {
201
+ experimental: {
202
+ disableExperimentalWarning: true,
203
+ disableDevRegistry: true,
204
+ },
205
+ });
178
206
  const resp = await worker.fetch("/test");
179
207
  let text;
180
208
  if (resp) text = await resp.text();
@@ -195,11 +223,12 @@ describe("unstable dev fetch input parsing", () => {
195
223
  };
196
224
  `;
197
225
  fs.writeFileSync("index.js", scriptContent);
198
- const worker = await unstable_dev(
199
- "index.js",
200
- {},
201
- { disableExperimentalWarning: true }
202
- );
226
+ const worker = await unstable_dev("index.js", {
227
+ experimental: {
228
+ disableExperimentalWarning: true,
229
+ disableDevRegistry: true,
230
+ },
231
+ });
203
232
  const resp = await worker.fetch("");
204
233
  let text;
205
234
  if (resp) text = await resp.text();