wrangler 0.0.0-e3990bbf → 0.0.0-e3a57616

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.
package/bin/wrangler.js CHANGED
@@ -76,6 +76,11 @@ Consider using a Node.js version manager such as https://volta.sh/ or https://gi
76
76
  if (process.send) {
77
77
  process.send(message);
78
78
  }
79
+ })
80
+ .on("disconnect", () => {
81
+ if (process.disconnect) {
82
+ process.disconnect();
83
+ }
79
84
  });
80
85
  }
81
86
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wrangler",
3
- "version": "0.0.0-e3990bbf",
3
+ "version": "0.0.0-e3a57616",
4
4
  "description": "Command-line interface for all things Cloudflare Workers",
5
5
  "keywords": [
6
6
  "wrangler",
@@ -75,8 +75,12 @@
75
75
  ]
76
76
  },
77
77
  "transformIgnorePatterns": [
78
- "node_modules/.pnpm/(?!find-up|locate-path|p-locate|p-limit|p-timeout|p-queue|yocto-queue|path-exists|execa|strip-final-newline|npm-run-path|path-key|onetime|mimic-fn|human-signals|is-stream|get-port|supports-color|pretty-bytes|npx-import)"
79
- ]
78
+ "node_modules/.pnpm/(?!find-up|locate-path|p-locate|p-limit|p-timeout|p-queue|yocto-queue|path-exists|execa|strip-final-newline|npm-run-path|path-key|onetime|mimic-fn|human-signals|is-stream|get-port|supports-color|pretty-bytes)"
79
+ ],
80
+ "snapshotFormat": {
81
+ "escapeString": true,
82
+ "printBasicPrototype": true
83
+ }
80
84
  },
81
85
  "dependencies": {
82
86
  "@cloudflare/kv-asset-handler": "^0.2.0",
@@ -85,20 +89,26 @@
85
89
  "blake3-wasm": "^2.1.5",
86
90
  "chokidar": "^3.5.3",
87
91
  "esbuild": "0.17.19",
88
- "miniflare": "3.20230904.0",
89
92
  "nanoid": "^3.3.3",
90
93
  "path-to-regexp": "^6.2.0",
94
+ "resolve": "^1.22.8",
95
+ "resolve.exports": "^2.0.2",
91
96
  "selfsigned": "^2.0.1",
92
- "source-map": "^0.7.4",
93
- "xxhash-wasm": "^1.0.1"
97
+ "source-map": "0.6.1",
98
+ "xxhash-wasm": "^1.0.1",
99
+ "miniflare": "3.20231218.3"
94
100
  },
95
101
  "devDependencies": {
102
+ "@cloudflare/ai": "^1.0.35",
96
103
  "@cloudflare/eslint-config-worker": "*",
97
104
  "@cloudflare/types": "^6.18.4",
98
- "@cloudflare/workers-types": "^4.20230724.0",
105
+ "@cloudflare/workers-types": "^4.20230914.0",
106
+ "@cspotcode/source-map-support": "0.8.1",
99
107
  "@iarna/toml": "^3.0.0",
100
108
  "@microsoft/api-extractor": "^7.28.3",
101
- "@types/better-sqlite3": "^7.6.0",
109
+ "@sentry/node": "^7.86.0",
110
+ "@sentry/types": "^7.86.0",
111
+ "@sentry/utils": "^7.86.0",
102
112
  "@types/body-parser": "^1.19.2",
103
113
  "@types/busboy": "^1.5.0",
104
114
  "@types/command-exists": "^1.2.0",
@@ -106,12 +116,16 @@
106
116
  "@types/glob-to-regexp": "0.4.1",
107
117
  "@types/is-ci": "^3.0.0",
108
118
  "@types/javascript-time-ago": "^2.0.3",
119
+ "@types/jest": "^29.5.5",
109
120
  "@types/mime": "^2.0.3",
110
121
  "@types/minimatch": "^5.1.2",
111
122
  "@types/prompts": "^2.0.14",
112
123
  "@types/react": "^17.0.37",
124
+ "@types/resolve": "^1.20.6",
113
125
  "@types/serve-static": "^1.13.10",
126
+ "@types/shell-quote": "^1.7.2",
114
127
  "@types/signal-exit": "^3.0.1",
128
+ "@types/source-map-support": "^0.5.7",
115
129
  "@types/supports-color": "^8.1.1",
116
130
  "@types/ws": "^8.5.3",
117
131
  "@types/yargs": "^17.0.10",
@@ -125,6 +139,7 @@
125
139
  "concurrently": "^7.2.2",
126
140
  "devtools-protocol": "^0.0.955664",
127
141
  "dotenv": "^16.0.0",
142
+ "esbuild-jest": "0.5.0",
128
143
  "execa": "^6.1.0",
129
144
  "express": "^4.18.1",
130
145
  "finalhandler": "^1.2.0",
@@ -132,6 +147,7 @@
132
147
  "get-port": "^6.1.2",
133
148
  "glob-to-regexp": "0.4.1",
134
149
  "http-terminator": "^3.2.0",
150
+ "https-proxy-agent": "7.0.2",
135
151
  "ignore": "^5.2.0",
136
152
  "ink": "^3.2.0",
137
153
  "ink-select-input": "^4.2.1",
@@ -141,12 +157,12 @@
141
157
  "ink-text-input": "^4.0.3",
142
158
  "is-ci": "^3.0.1",
143
159
  "javascript-time-ago": "^2.5.4",
160
+ "jest": "^29.7.0",
144
161
  "jest-fetch-mock": "^3.0.3",
145
- "jest-websocket-mock": "^2.3.0",
162
+ "jest-websocket-mock": "^2.5.0",
146
163
  "mime": "^3.0.0",
147
164
  "minimatch": "^5.1.0",
148
165
  "msw": "^0.49.1",
149
- "npx-import": "^1.1.3",
150
166
  "open": "^8.4.0",
151
167
  "p-queue": "^7.2.0",
152
168
  "patch-console": "^1.0.0",
@@ -157,28 +173,31 @@
157
173
  "remove-accents-esm": "^0.0.1",
158
174
  "semiver": "^1.1.0",
159
175
  "serve-static": "^1.15.0",
176
+ "shell-quote": "^1.8.1",
160
177
  "shellac": "^0.8.0",
161
178
  "signal-exit": "^3.0.7",
162
179
  "strip-ansi": "^7.0.1",
163
180
  "supports-color": "^9.2.2",
164
181
  "timeago.js": "^4.0.2",
165
- "tmp-promise": "^3.0.3",
166
182
  "ts-dedent": "^2.2.0",
167
- "undici": "5.20.0",
183
+ "undici": "5.28.2",
168
184
  "update-check": "^1.5.4",
169
- "vitest": "^0.31.0",
170
185
  "ws": "^8.5.0",
171
- "xdg-app-paths": "^7.3.0",
172
- "yargs": "^17.4.1",
186
+ "xdg-app-paths": "^8.3.0",
187
+ "yargs": "^17.7.2",
173
188
  "yoga-layout": "file:../../vendor/yoga-layout-2.0.0-beta.1.tgz",
174
- "@cloudflare/pages-shared": "^0.9.0",
189
+ "@cloudflare/cli": "1.1.1",
190
+ "@cloudflare/pages-shared": "^0.11.8",
175
191
  "@cloudflare/workers-tsconfig": "0.0.0"
176
192
  },
177
193
  "optionalDependencies": {
178
194
  "fsevents": "~2.3.2"
179
195
  },
180
196
  "engines": {
181
- "node": ">=16.13.0"
197
+ "node": ">=16.17.0"
198
+ },
199
+ "workers-sdk": {
200
+ "prerelease": true
182
201
  },
183
202
  "scripts": {
184
203
  "assert-git-version": "node -r esbuild-register scripts/assert-git-version.ts",
@@ -187,14 +206,14 @@
187
206
  "check:lint": "eslint .",
188
207
  "check:type": "tsc",
189
208
  "clean": "rimraf wrangler-dist miniflare-dist emitted-types",
190
- "dev": "pnpm run clean && concurrently -c black,blue --kill-others-on-fail false 'pnpm run bundle --watch' 'pnpm run check:type --watch --preserveWatchOutput'",
209
+ "dev": "pnpm run clean && concurrently -c black,blue --kill-others-on-fail false \"pnpm run bundle --watch\" \"pnpm run check:type --watch --preserveWatchOutput\"",
191
210
  "emit-types": "tsc -p tsconfig.emit.json && node -r esbuild-register scripts/emit-types.ts",
192
211
  "start": "pnpm run bundle && cross-env NODE_OPTIONS=--enable-source-maps ./bin/wrangler.js",
193
212
  "test": "pnpm run assert-git-version && jest",
194
213
  "test:ci": "pnpm run test --coverage",
195
214
  "test:debug": "pnpm run test --silent=false --verbose=true",
196
- "test:e2e": "vitest --test-timeout 240000 --single-thread --dir ./e2e run",
197
- "test:watch": "pnpm run test --runInBand --testTimeout=50000 --watch",
215
+ "test:e2e": "vitest --test-timeout 240000 --single-thread --dir ./e2e --retry 2 run",
216
+ "test:watch": "pnpm run test --testTimeout=50000 --watch",
198
217
  "type:tests": "tsc -p ./src/__tests__/tsconfig.json && tsc -p ./e2e/tsconfig.json"
199
218
  }
200
219
  }
@@ -1,5 +1,5 @@
1
+ import { afterAll, beforeAll, describe, expect, it } from "vitest";
1
2
  import { unstable_dev } from "wrangler";
2
- import { describe, expect, it, beforeAll, afterAll } from "vitest";
3
3
 
4
4
  describe("Worker", () => {
5
5
  let worker;
@@ -1,6 +1,6 @@
1
+ import { afterAll, beforeAll, describe, expect, it } from "vitest";
1
2
  import { unstable_dev } from "wrangler";
2
3
  import type { UnstableDevWorker } from "wrangler";
3
- import { describe, expect, it, beforeAll, afterAll } from "vitest";
4
4
 
5
5
  describe("Worker", () => {
6
6
  let worker: UnstableDevWorker;
@@ -4,15 +4,14 @@
4
4
  // // through wrangler, or we can potentially let users directly add them as a sort
5
5
  // // of "plugin" system.
6
6
 
7
+ import worker from "__ENTRY_POINT__";
7
8
  import {
8
- Dispatcher,
9
- Middleware,
10
9
  __facade_invoke__,
11
10
  __facade_register__,
11
+ Dispatcher,
12
+ Middleware,
12
13
  } from "./common";
13
14
 
14
- import worker from "__ENTRY_POINT__";
15
-
16
15
  // We need to preserve all of the exports from the worker
17
16
  export * from "__ENTRY_POINT__";
18
17
 
@@ -1,12 +1,13 @@
1
1
  import {
2
+ __facade_invoke__,
3
+ __facade_register__,
4
+ __facade_registerInternal__,
2
5
  Awaitable,
3
6
  Dispatcher,
4
7
  IncomingRequest,
5
8
  Middleware,
6
- __facade_invoke__,
7
- __facade_register__,
8
- __facade_registerInternal__,
9
9
  } from "./common";
10
+
10
11
  export { __facade_register__, __facade_registerInternal__ };
11
12
 
12
13
  // Miniflare 2's `EventTarget` follows the spec and doesn't allow exceptions to
@@ -4,6 +4,42 @@
4
4
  import { workers } from "config:middleware/multiworker-dev";
5
5
  import type { WorkerRegistry } from "../../src/dev-registry";
6
6
 
7
+ class Fetcher {
8
+ #name: string;
9
+ #details: WorkerRegistry[string];
10
+ constructor(name: string, details: WorkerRegistry[string]) {
11
+ this.#name = name;
12
+ this.#details = details;
13
+ }
14
+
15
+ async fetch(...reqArgs: Parameters<Fetcher["fetch"]>) {
16
+ const reqFromArgs = new Request(...reqArgs);
17
+ if (this.#details.headers) {
18
+ for (const [key, value] of Object.entries(this.#details.headers)) {
19
+ // In remote mode, you need to add a couple of headers
20
+ // to make sure it's talking to the 'dev' preview session
21
+ // (much like wrangler dev already does via proxy.ts)
22
+ reqFromArgs.headers.set(key, value);
23
+ }
24
+ return (env[this.#name] as Fetcher).fetch(reqFromArgs);
25
+ }
26
+
27
+ const url = new URL(reqFromArgs.url);
28
+ if (this.#details.protocol !== undefined) {
29
+ url.protocol = this.#details.protocol;
30
+ }
31
+ if (this.#details.host !== undefined) {
32
+ url.host = this.#details.host;
33
+ }
34
+ if (this.#details.port !== undefined) {
35
+ url.port = this.#details.port.toString();
36
+ }
37
+
38
+ const request = new Request(url.toString(), reqFromArgs);
39
+ return fetch(request);
40
+ }
41
+ }
42
+
7
43
  export function wrap(env: Record<string, unknown>) {
8
44
  const facadeEnv = { ...env };
9
45
  // For every Worker definition that's available,
@@ -14,34 +50,7 @@ export function wrap(env: Record<string, unknown>) {
14
50
 
15
51
  for (const [name, details] of Object.entries(workers as WorkerRegistry)) {
16
52
  if (details) {
17
- facadeEnv[name] = {
18
- async fetch(...reqArgs: Parameters<Fetcher["fetch"]>) {
19
- const reqFromArgs = new Request(...reqArgs);
20
- if (details.headers) {
21
- for (const [key, value] of Object.entries(details.headers)) {
22
- // In remote mode, you need to add a couple of headers
23
- // to make sure it's talking to the 'dev' preview session
24
- // (much like wrangler dev already does via proxy.ts)
25
- reqFromArgs.headers.set(key, value);
26
- }
27
- return (env[name] as Fetcher).fetch(reqFromArgs);
28
- }
29
-
30
- const url = new URL(reqFromArgs.url);
31
- if (details.protocol !== undefined) {
32
- url.protocol = details.protocol;
33
- }
34
- if (details.host !== undefined) {
35
- url.host = details.host;
36
- }
37
- if (details.port !== undefined) {
38
- url.port = details.port.toString();
39
- }
40
-
41
- const request = new Request(url.toString(), reqFromArgs);
42
- return fetch(request);
43
- },
44
- };
53
+ facadeEnv[name] = new Fetcher(name, details);
45
54
  } else {
46
55
  // This means there's no dev binding available.
47
56
  // Let's use whatever's available, or put a shim with a message.
@@ -1,18 +1,18 @@
1
1
  /// <reference path="middleware-serve-static-assets.d.ts"/>
2
2
 
3
+ import manifest from "__STATIC_CONTENT_MANIFEST";
3
4
  import {
4
5
  getAssetFromKV,
5
- NotFoundError,
6
6
  MethodNotAllowedError,
7
+ NotFoundError,
7
8
  serveSinglePageApp,
8
9
  } from "@cloudflare/kv-asset-handler";
10
+ import { cacheControl, spaMode } from "config:middleware/serve-static-assets";
11
+ import type { Middleware } from "./common";
9
12
  import type { Options } from "@cloudflare/kv-asset-handler";
10
- import { spaMode, cacheControl } from "config:middleware/serve-static-assets";
11
13
  import type * as kvAssetHandler from "@cloudflare/kv-asset-handler";
12
- import manifest from "__STATIC_CONTENT_MANIFEST";
13
- const ASSET_MANIFEST = JSON.parse(manifest);
14
14
 
15
- import type { Middleware } from "./common";
15
+ const ASSET_MANIFEST = JSON.parse(manifest);
16
16
 
17
17
  const staticAssets: Middleware = async (request, env, _ctx, middlewareCtx) => {
18
18
  let options: Partial<Options> = {
@@ -0,0 +1,4 @@
1
+ // `esbuild` doesn't support returning `watch*` options from `onStart()`
2
+ // plugin callbacks. Instead, we define an empty virtual module that is
3
+ // imported by this injected file. Importing the module registers watchers.
4
+ import "wrangler:modules-watch";
@@ -1,8 +1,9 @@
1
1
  // @ts-ignore entry point will get replaced
2
2
  import worker from "__ENTRY_POINT__";
3
+ import { isRoutingRuleMatch } from "./pages-dev-util";
4
+
3
5
  // @ts-ignore entry point will get replaced
4
6
  export * from "__ENTRY_POINT__";
5
- import { isRoutingRuleMatch } from "./pages-dev-util";
6
7
 
7
8
  // @ts-ignore routes are injected
8
9
  const routes = __ROUTES__;