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 +5 -0
- package/package.json +39 -20
- package/templates/init-tests/test-vitest-new-worker.js +1 -1
- package/templates/init-tests/test-vitest-new-worker.ts +1 -1
- package/templates/middleware/loader-modules.ts +3 -4
- package/templates/middleware/loader-sw.ts +4 -3
- package/templates/middleware/middleware-multiworker-dev.ts +37 -28
- package/templates/middleware/middleware-serve-static-assets.ts +5 -5
- package/templates/modules-watch-stub.js +4 -0
- package/templates/pages-dev-pipeline.ts +2 -1
- package/templates/startDevWorker/InspectorProxyWorker.ts +654 -0
- package/templates/startDevWorker/ProxyWorker.ts +252 -0
- package/wrangler-dist/InspectorProxyWorker.js +460 -0
- package/wrangler-dist/InspectorProxyWorker.js.map +6 -0
- package/wrangler-dist/ProxyWorker.js +186 -0
- package/wrangler-dist/ProxyWorker.js.map +6 -0
- package/wrangler-dist/cli.d.ts +22224 -165
- package/wrangler-dist/cli.js +77091 -59230
package/bin/wrangler.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wrangler",
|
|
3
|
-
"version": "0.0.0-
|
|
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
|
|
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": "
|
|
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.
|
|
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
|
-
"@
|
|
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.
|
|
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.
|
|
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": "^
|
|
172
|
-
"yargs": "^17.
|
|
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/
|
|
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.
|
|
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
|
|
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 --
|
|
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,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
|
-
|
|
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> = {
|
|
@@ -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__;
|