wrangler 2.0.12 → 2.0.16
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/README.md +7 -1
- package/bin/wrangler.js +111 -57
- package/miniflare-dist/index.mjs +9 -2
- package/package.json +156 -154
- package/src/__tests__/config-cache-without-cache-dir.test.ts +38 -0
- package/src/__tests__/config-cache.test.ts +30 -24
- package/src/__tests__/configuration.test.ts +3935 -3476
- package/src/__tests__/dev.test.tsx +1128 -979
- package/src/__tests__/guess-worker-format.test.ts +68 -68
- package/src/__tests__/helpers/cmd-shim.d.ts +6 -6
- package/src/__tests__/helpers/faye-websocket.d.ts +4 -4
- package/src/__tests__/helpers/mock-account-id.ts +24 -24
- package/src/__tests__/helpers/mock-bin.ts +20 -20
- package/src/__tests__/helpers/mock-cfetch.ts +92 -92
- package/src/__tests__/helpers/mock-console.ts +49 -39
- package/src/__tests__/helpers/mock-dialogs.ts +94 -71
- package/src/__tests__/helpers/mock-http-server.ts +30 -30
- package/src/__tests__/helpers/mock-istty.ts +65 -18
- package/src/__tests__/helpers/mock-kv.ts +26 -26
- package/src/__tests__/helpers/mock-oauth-flow.ts +223 -228
- package/src/__tests__/helpers/mock-process.ts +39 -0
- package/src/__tests__/helpers/mock-stdin.ts +82 -77
- package/src/__tests__/helpers/mock-web-socket.ts +21 -21
- package/src/__tests__/helpers/run-in-tmp.ts +27 -27
- package/src/__tests__/helpers/run-wrangler.ts +8 -8
- package/src/__tests__/helpers/write-worker-source.ts +16 -16
- package/src/__tests__/helpers/write-wrangler-toml.ts +9 -9
- package/src/__tests__/https-options.test.ts +104 -104
- package/src/__tests__/index.test.ts +239 -234
- package/src/__tests__/init.test.ts +1605 -1250
- package/src/__tests__/jest.setup.ts +63 -33
- package/src/__tests__/kv.test.ts +1128 -1011
- package/src/__tests__/logger.test.ts +100 -74
- package/src/__tests__/package-manager.test.ts +303 -303
- package/src/__tests__/pages.test.ts +1152 -652
- package/src/__tests__/parse.test.ts +252 -252
- package/src/__tests__/publish.test.ts +6371 -5622
- package/src/__tests__/pubsub.test.ts +367 -0
- package/src/__tests__/r2.test.ts +133 -133
- package/src/__tests__/route.test.ts +18 -18
- package/src/__tests__/secret.test.ts +382 -377
- package/src/__tests__/tail.test.ts +530 -530
- package/src/__tests__/user.test.ts +123 -111
- package/src/__tests__/whoami.test.tsx +198 -117
- package/src/__tests__/worker-namespace.test.ts +327 -0
- package/src/abort.d.ts +1 -1
- package/src/api/dev.ts +49 -0
- package/src/api/index.ts +1 -0
- package/src/bundle-reporter.tsx +29 -0
- package/src/bundle.ts +157 -149
- package/src/cfetch/index.ts +80 -80
- package/src/cfetch/internal.ts +90 -83
- package/src/cli.ts +21 -7
- package/src/config/config.ts +204 -195
- package/src/config/diagnostics.ts +61 -61
- package/src/config/environment.ts +390 -357
- package/src/config/index.ts +206 -193
- package/src/config/validation-helpers.ts +366 -366
- package/src/config/validation.ts +1573 -1376
- package/src/config-cache.ts +79 -41
- package/src/create-worker-preview.ts +206 -136
- package/src/create-worker-upload-form.ts +247 -238
- package/src/dev/dev-vars.ts +13 -13
- package/src/dev/dev.tsx +329 -307
- package/src/dev/local.tsx +304 -275
- package/src/dev/remote.tsx +366 -224
- package/src/dev/use-esbuild.ts +126 -91
- package/src/dev.tsx +538 -0
- package/src/dialogs.tsx +97 -97
- package/src/durable.ts +87 -87
- package/src/entry.ts +234 -228
- package/src/environment-variables.ts +23 -23
- package/src/errors.ts +6 -6
- package/src/generate.ts +33 -0
- package/src/git-client.ts +42 -0
- package/src/https-options.ts +79 -79
- package/src/index.tsx +1775 -2763
- package/src/init.ts +549 -0
- package/src/inspect.ts +593 -593
- package/src/intl-polyfill.d.ts +123 -123
- package/src/is-interactive.ts +12 -0
- package/src/kv.ts +277 -277
- package/src/logger.ts +46 -39
- package/src/miniflare-cli/enum-keys.ts +8 -8
- package/src/miniflare-cli/index.ts +42 -31
- package/src/miniflare-cli/request-context.ts +18 -18
- package/src/module-collection.ts +212 -212
- package/src/open-in-browser.ts +4 -6
- package/src/package-manager.ts +123 -123
- package/src/pages/build.tsx +202 -0
- package/src/pages/constants.ts +7 -0
- package/src/pages/deployments.tsx +101 -0
- package/src/pages/dev.tsx +964 -0
- package/src/pages/functions/buildPlugin.ts +105 -0
- package/src/pages/functions/buildWorker.ts +151 -0
- package/{pages → src/pages}/functions/filepath-routing.test.ts +113 -113
- package/src/pages/functions/filepath-routing.ts +189 -0
- package/src/pages/functions/identifiers.ts +78 -0
- package/src/pages/functions/routes.ts +151 -0
- package/src/pages/index.tsx +84 -0
- package/src/pages/projects.tsx +157 -0
- package/src/pages/publish.tsx +335 -0
- package/src/pages/types.ts +40 -0
- package/src/pages/upload.tsx +384 -0
- package/src/pages/utils.ts +12 -0
- package/src/parse.ts +202 -138
- package/src/paths.ts +6 -6
- package/src/preview.ts +31 -0
- package/src/proxy.ts +400 -402
- package/src/publish.ts +667 -621
- package/src/pubsub/index.ts +286 -0
- package/src/pubsub/pubsub-commands.tsx +577 -0
- package/src/r2.ts +19 -19
- package/src/selfsigned.d.ts +23 -23
- package/src/sites.tsx +271 -225
- package/src/tail/filters.ts +108 -108
- package/src/tail/index.ts +217 -217
- package/src/tail/printing.ts +45 -45
- package/src/update-check.ts +11 -11
- package/src/user/choose-account.tsx +60 -0
- package/src/user/env-vars.ts +46 -0
- package/src/user/generate-auth-url.ts +33 -0
- package/src/user/generate-random-state.ts +16 -0
- package/src/user/index.ts +3 -0
- package/src/user/user.tsx +1161 -0
- package/src/whoami.tsx +61 -42
- package/src/worker-namespace.ts +190 -0
- package/src/worker.ts +110 -100
- package/src/zones.ts +39 -36
- package/templates/checked-fetch.js +17 -0
- package/templates/new-worker-scheduled.js +3 -3
- package/templates/new-worker-scheduled.ts +15 -15
- package/templates/new-worker.js +3 -3
- package/templates/new-worker.ts +15 -15
- package/templates/no-op-worker.js +10 -0
- package/templates/pages-template-plugin.ts +155 -0
- package/templates/pages-template-worker.ts +161 -0
- package/templates/static-asset-facade.js +31 -31
- package/templates/tsconfig.json +95 -95
- package/wrangler-dist/cli.js +55383 -54138
- package/pages/functions/buildPlugin.ts +0 -105
- package/pages/functions/buildWorker.ts +0 -151
- package/pages/functions/filepath-routing.ts +0 -189
- package/pages/functions/identifiers.ts +0 -78
- package/pages/functions/routes.ts +0 -156
- package/pages/functions/template-plugin.ts +0 -147
- package/pages/functions/template-worker.ts +0 -143
- package/src/pages.tsx +0 -2093
- package/src/user.tsx +0 -1214
package/src/tail/filters.ts
CHANGED
|
@@ -17,12 +17,12 @@
|
|
|
17
17
|
* CLI description or see the documentation for `ApiFilter`.
|
|
18
18
|
*/
|
|
19
19
|
export type TailCLIFilters = {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
status?: ("ok" | "error" | "canceled")[];
|
|
21
|
+
header?: string;
|
|
22
|
+
method?: string[];
|
|
23
|
+
search?: string;
|
|
24
|
+
samplingRate?: number;
|
|
25
|
+
clientIp?: string[];
|
|
26
26
|
};
|
|
27
27
|
|
|
28
28
|
/**
|
|
@@ -33,12 +33,12 @@ export type TailCLIFilters = {
|
|
|
33
33
|
* TailAPIFilter to be the union of those types.
|
|
34
34
|
*/
|
|
35
35
|
export type TailAPIFilter =
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
36
|
+
| SamplingRateFilter
|
|
37
|
+
| OutcomeFilter
|
|
38
|
+
| MethodFilter
|
|
39
|
+
| HeaderFilter
|
|
40
|
+
| ClientIPFilter
|
|
41
|
+
| QueryFilter;
|
|
42
42
|
|
|
43
43
|
/**
|
|
44
44
|
* Filters logs based on a given sampling rate.
|
|
@@ -46,14 +46,14 @@ export type TailAPIFilter =
|
|
|
46
46
|
* logs through.
|
|
47
47
|
*/
|
|
48
48
|
type SamplingRateFilter = {
|
|
49
|
-
|
|
49
|
+
sampling_rate: number;
|
|
50
50
|
};
|
|
51
51
|
|
|
52
52
|
/**
|
|
53
53
|
* Filters logs based on the outcome of the worker's event handler.
|
|
54
54
|
*/
|
|
55
55
|
type OutcomeFilter = {
|
|
56
|
-
|
|
56
|
+
outcome: Outcome[];
|
|
57
57
|
};
|
|
58
58
|
|
|
59
59
|
/**
|
|
@@ -61,18 +61,18 @@ type OutcomeFilter = {
|
|
|
61
61
|
* (exception, exceededCpu, and unknown) are considered errors
|
|
62
62
|
*/
|
|
63
63
|
export type Outcome =
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
64
|
+
| "ok"
|
|
65
|
+
| "canceled"
|
|
66
|
+
| "exception"
|
|
67
|
+
| "exceededCpu"
|
|
68
|
+
| "unknown";
|
|
69
69
|
|
|
70
70
|
/**
|
|
71
71
|
* Filters logs based on the HTTP method used for the request
|
|
72
72
|
* that triggered the worker.
|
|
73
73
|
*/
|
|
74
74
|
type MethodFilter = {
|
|
75
|
-
|
|
75
|
+
method: string[];
|
|
76
76
|
};
|
|
77
77
|
|
|
78
78
|
/**
|
|
@@ -80,21 +80,21 @@ type MethodFilter = {
|
|
|
80
80
|
* triggered the worker.
|
|
81
81
|
*/
|
|
82
82
|
type HeaderFilter = {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
83
|
+
header: {
|
|
84
|
+
/**
|
|
85
|
+
* Filters on the header "key", e.g. "X-CLOUDFLARE-HEADER"
|
|
86
|
+
* or "X-CUSTOM-HEADER"
|
|
87
|
+
*/
|
|
88
|
+
key: string;
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Filters on the header "value", e.g. if this is set to
|
|
92
|
+
* "filter-for-me" and the "key" is "X-SHOULD-LOG", only
|
|
93
|
+
* events triggered by requests with the header
|
|
94
|
+
* "X-SHOULD-LOG:filter-for-me" will be logged.
|
|
95
|
+
*/
|
|
96
|
+
query?: string;
|
|
97
|
+
};
|
|
98
98
|
};
|
|
99
99
|
|
|
100
100
|
/**
|
|
@@ -103,7 +103,7 @@ type HeaderFilter = {
|
|
|
103
103
|
* address that is running `wrangler tail`
|
|
104
104
|
*/
|
|
105
105
|
type ClientIPFilter = {
|
|
106
|
-
|
|
106
|
+
client_ip: string[];
|
|
107
107
|
};
|
|
108
108
|
|
|
109
109
|
/**
|
|
@@ -112,7 +112,7 @@ type ClientIPFilter = {
|
|
|
112
112
|
* that don't will be discarded by the tail worker.
|
|
113
113
|
*/
|
|
114
114
|
type QueryFilter = {
|
|
115
|
-
|
|
115
|
+
query: string;
|
|
116
116
|
};
|
|
117
117
|
|
|
118
118
|
/**
|
|
@@ -120,8 +120,8 @@ type QueryFilter = {
|
|
|
120
120
|
* filters and a debug flag.
|
|
121
121
|
*/
|
|
122
122
|
export type TailFilterMessage = {
|
|
123
|
-
|
|
124
|
-
|
|
123
|
+
filters: TailAPIFilter[];
|
|
124
|
+
debug: boolean;
|
|
125
125
|
};
|
|
126
126
|
|
|
127
127
|
/**
|
|
@@ -133,39 +133,39 @@ export type TailFilterMessage = {
|
|
|
133
133
|
* @returns A filter message ready to be sent to the tail worker
|
|
134
134
|
*/
|
|
135
135
|
export function translateCLICommandToFilterMessage(
|
|
136
|
-
|
|
137
|
-
|
|
136
|
+
cliFilters: TailCLIFilters,
|
|
137
|
+
debug: boolean
|
|
138
138
|
): TailFilterMessage {
|
|
139
|
-
|
|
139
|
+
const apiFilters: TailAPIFilter[] = [];
|
|
140
140
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
141
|
+
if (cliFilters.samplingRate) {
|
|
142
|
+
apiFilters.push(parseSamplingRate(cliFilters.samplingRate));
|
|
143
|
+
}
|
|
144
144
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
145
|
+
if (cliFilters.status) {
|
|
146
|
+
apiFilters.push(parseOutcome(cliFilters.status));
|
|
147
|
+
}
|
|
148
148
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
149
|
+
if (cliFilters.method) {
|
|
150
|
+
apiFilters.push(parseMethod(cliFilters.method));
|
|
151
|
+
}
|
|
152
152
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
153
|
+
if (cliFilters.header) {
|
|
154
|
+
apiFilters.push(parseHeader(cliFilters.header));
|
|
155
|
+
}
|
|
156
156
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
157
|
+
if (cliFilters.clientIp) {
|
|
158
|
+
apiFilters.push(parseIP(cliFilters.clientIp));
|
|
159
|
+
}
|
|
160
160
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
161
|
+
if (cliFilters.search) {
|
|
162
|
+
apiFilters.push(parseQuery(cliFilters.search));
|
|
163
|
+
}
|
|
164
164
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
165
|
+
return {
|
|
166
|
+
filters: apiFilters,
|
|
167
|
+
debug,
|
|
168
|
+
};
|
|
169
169
|
}
|
|
170
170
|
|
|
171
171
|
/**
|
|
@@ -176,13 +176,13 @@ export function translateCLICommandToFilterMessage(
|
|
|
176
176
|
* @returns a SamplingRateFilter for use with the API
|
|
177
177
|
*/
|
|
178
178
|
function parseSamplingRate(sampling_rate: number): SamplingRateFilter {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
179
|
+
if (sampling_rate <= 0 || sampling_rate >= 1) {
|
|
180
|
+
throw new Error(
|
|
181
|
+
"A sampling rate must be between 0 and 1 in order to have any effect.\nFor example, a sampling rate of 0.25 means 25% of events will be logged."
|
|
182
|
+
);
|
|
183
|
+
}
|
|
184
184
|
|
|
185
|
-
|
|
185
|
+
return { sampling_rate };
|
|
186
186
|
}
|
|
187
187
|
|
|
188
188
|
/**
|
|
@@ -193,34 +193,34 @@ function parseSamplingRate(sampling_rate: number): SamplingRateFilter {
|
|
|
193
193
|
* @returns an OutcomeFilter for use with the API
|
|
194
194
|
*/
|
|
195
195
|
function parseOutcome(
|
|
196
|
-
|
|
196
|
+
statuses: ("ok" | "error" | "canceled")[]
|
|
197
197
|
): OutcomeFilter {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
198
|
+
const outcomes = new Set<Outcome>();
|
|
199
|
+
|
|
200
|
+
for (const status of statuses) {
|
|
201
|
+
switch (status) {
|
|
202
|
+
case "ok":
|
|
203
|
+
outcomes.add("ok");
|
|
204
|
+
break;
|
|
205
|
+
|
|
206
|
+
case "canceled":
|
|
207
|
+
outcomes.add("canceled");
|
|
208
|
+
break;
|
|
209
|
+
|
|
210
|
+
case "error":
|
|
211
|
+
outcomes.add("exception");
|
|
212
|
+
outcomes.add("exceededCpu");
|
|
213
|
+
outcomes.add("unknown");
|
|
214
|
+
break;
|
|
215
|
+
|
|
216
|
+
default:
|
|
217
|
+
break;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
return {
|
|
222
|
+
outcome: Array.from(outcomes),
|
|
223
|
+
};
|
|
224
224
|
}
|
|
225
225
|
|
|
226
226
|
/**
|
|
@@ -231,7 +231,7 @@ function parseOutcome(
|
|
|
231
231
|
* @returns a MethodFilter for use with the API
|
|
232
232
|
*/
|
|
233
233
|
function parseMethod(method: string[]): MethodFilter {
|
|
234
|
-
|
|
234
|
+
return { method };
|
|
235
235
|
}
|
|
236
236
|
|
|
237
237
|
/**
|
|
@@ -243,14 +243,14 @@ function parseMethod(method: string[]): MethodFilter {
|
|
|
243
243
|
* @returns a HeaderFilter for use with the API
|
|
244
244
|
*/
|
|
245
245
|
function parseHeader(header: string): HeaderFilter {
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
246
|
+
const [headerKey, headerQuery] = header.split(":", 2);
|
|
247
|
+
|
|
248
|
+
return {
|
|
249
|
+
header: {
|
|
250
|
+
key: headerKey.trim(),
|
|
251
|
+
query: headerQuery?.trim(),
|
|
252
|
+
},
|
|
253
|
+
};
|
|
254
254
|
}
|
|
255
255
|
|
|
256
256
|
/**
|
|
@@ -263,7 +263,7 @@ function parseHeader(header: string): HeaderFilter {
|
|
|
263
263
|
* @returns a ClientIPFilter for use with the API
|
|
264
264
|
*/
|
|
265
265
|
function parseIP(client_ip: string[]): ClientIPFilter {
|
|
266
|
-
|
|
266
|
+
return { client_ip };
|
|
267
267
|
}
|
|
268
268
|
|
|
269
269
|
/**
|
|
@@ -275,5 +275,5 @@ function parseIP(client_ip: string[]): ClientIPFilter {
|
|
|
275
275
|
* @returns a QueryFilter for use with the API
|
|
276
276
|
*/
|
|
277
277
|
function parseQuery(query: string): QueryFilter {
|
|
278
|
-
|
|
278
|
+
return { query };
|
|
279
279
|
}
|