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.
Files changed (149) hide show
  1. package/README.md +7 -1
  2. package/bin/wrangler.js +111 -57
  3. package/miniflare-dist/index.mjs +9 -2
  4. package/package.json +156 -154
  5. package/src/__tests__/config-cache-without-cache-dir.test.ts +38 -0
  6. package/src/__tests__/config-cache.test.ts +30 -24
  7. package/src/__tests__/configuration.test.ts +3935 -3476
  8. package/src/__tests__/dev.test.tsx +1128 -979
  9. package/src/__tests__/guess-worker-format.test.ts +68 -68
  10. package/src/__tests__/helpers/cmd-shim.d.ts +6 -6
  11. package/src/__tests__/helpers/faye-websocket.d.ts +4 -4
  12. package/src/__tests__/helpers/mock-account-id.ts +24 -24
  13. package/src/__tests__/helpers/mock-bin.ts +20 -20
  14. package/src/__tests__/helpers/mock-cfetch.ts +92 -92
  15. package/src/__tests__/helpers/mock-console.ts +49 -39
  16. package/src/__tests__/helpers/mock-dialogs.ts +94 -71
  17. package/src/__tests__/helpers/mock-http-server.ts +30 -30
  18. package/src/__tests__/helpers/mock-istty.ts +65 -18
  19. package/src/__tests__/helpers/mock-kv.ts +26 -26
  20. package/src/__tests__/helpers/mock-oauth-flow.ts +223 -228
  21. package/src/__tests__/helpers/mock-process.ts +39 -0
  22. package/src/__tests__/helpers/mock-stdin.ts +82 -77
  23. package/src/__tests__/helpers/mock-web-socket.ts +21 -21
  24. package/src/__tests__/helpers/run-in-tmp.ts +27 -27
  25. package/src/__tests__/helpers/run-wrangler.ts +8 -8
  26. package/src/__tests__/helpers/write-worker-source.ts +16 -16
  27. package/src/__tests__/helpers/write-wrangler-toml.ts +9 -9
  28. package/src/__tests__/https-options.test.ts +104 -104
  29. package/src/__tests__/index.test.ts +239 -234
  30. package/src/__tests__/init.test.ts +1605 -1250
  31. package/src/__tests__/jest.setup.ts +63 -33
  32. package/src/__tests__/kv.test.ts +1128 -1011
  33. package/src/__tests__/logger.test.ts +100 -74
  34. package/src/__tests__/package-manager.test.ts +303 -303
  35. package/src/__tests__/pages.test.ts +1152 -652
  36. package/src/__tests__/parse.test.ts +252 -252
  37. package/src/__tests__/publish.test.ts +6371 -5622
  38. package/src/__tests__/pubsub.test.ts +367 -0
  39. package/src/__tests__/r2.test.ts +133 -133
  40. package/src/__tests__/route.test.ts +18 -18
  41. package/src/__tests__/secret.test.ts +382 -377
  42. package/src/__tests__/tail.test.ts +530 -530
  43. package/src/__tests__/user.test.ts +123 -111
  44. package/src/__tests__/whoami.test.tsx +198 -117
  45. package/src/__tests__/worker-namespace.test.ts +327 -0
  46. package/src/abort.d.ts +1 -1
  47. package/src/api/dev.ts +49 -0
  48. package/src/api/index.ts +1 -0
  49. package/src/bundle-reporter.tsx +29 -0
  50. package/src/bundle.ts +157 -149
  51. package/src/cfetch/index.ts +80 -80
  52. package/src/cfetch/internal.ts +90 -83
  53. package/src/cli.ts +21 -7
  54. package/src/config/config.ts +204 -195
  55. package/src/config/diagnostics.ts +61 -61
  56. package/src/config/environment.ts +390 -357
  57. package/src/config/index.ts +206 -193
  58. package/src/config/validation-helpers.ts +366 -366
  59. package/src/config/validation.ts +1573 -1376
  60. package/src/config-cache.ts +79 -41
  61. package/src/create-worker-preview.ts +206 -136
  62. package/src/create-worker-upload-form.ts +247 -238
  63. package/src/dev/dev-vars.ts +13 -13
  64. package/src/dev/dev.tsx +329 -307
  65. package/src/dev/local.tsx +304 -275
  66. package/src/dev/remote.tsx +366 -224
  67. package/src/dev/use-esbuild.ts +126 -91
  68. package/src/dev.tsx +538 -0
  69. package/src/dialogs.tsx +97 -97
  70. package/src/durable.ts +87 -87
  71. package/src/entry.ts +234 -228
  72. package/src/environment-variables.ts +23 -23
  73. package/src/errors.ts +6 -6
  74. package/src/generate.ts +33 -0
  75. package/src/git-client.ts +42 -0
  76. package/src/https-options.ts +79 -79
  77. package/src/index.tsx +1775 -2763
  78. package/src/init.ts +549 -0
  79. package/src/inspect.ts +593 -593
  80. package/src/intl-polyfill.d.ts +123 -123
  81. package/src/is-interactive.ts +12 -0
  82. package/src/kv.ts +277 -277
  83. package/src/logger.ts +46 -39
  84. package/src/miniflare-cli/enum-keys.ts +8 -8
  85. package/src/miniflare-cli/index.ts +42 -31
  86. package/src/miniflare-cli/request-context.ts +18 -18
  87. package/src/module-collection.ts +212 -212
  88. package/src/open-in-browser.ts +4 -6
  89. package/src/package-manager.ts +123 -123
  90. package/src/pages/build.tsx +202 -0
  91. package/src/pages/constants.ts +7 -0
  92. package/src/pages/deployments.tsx +101 -0
  93. package/src/pages/dev.tsx +964 -0
  94. package/src/pages/functions/buildPlugin.ts +105 -0
  95. package/src/pages/functions/buildWorker.ts +151 -0
  96. package/{pages → src/pages}/functions/filepath-routing.test.ts +113 -113
  97. package/src/pages/functions/filepath-routing.ts +189 -0
  98. package/src/pages/functions/identifiers.ts +78 -0
  99. package/src/pages/functions/routes.ts +151 -0
  100. package/src/pages/index.tsx +84 -0
  101. package/src/pages/projects.tsx +157 -0
  102. package/src/pages/publish.tsx +335 -0
  103. package/src/pages/types.ts +40 -0
  104. package/src/pages/upload.tsx +384 -0
  105. package/src/pages/utils.ts +12 -0
  106. package/src/parse.ts +202 -138
  107. package/src/paths.ts +6 -6
  108. package/src/preview.ts +31 -0
  109. package/src/proxy.ts +400 -402
  110. package/src/publish.ts +667 -621
  111. package/src/pubsub/index.ts +286 -0
  112. package/src/pubsub/pubsub-commands.tsx +577 -0
  113. package/src/r2.ts +19 -19
  114. package/src/selfsigned.d.ts +23 -23
  115. package/src/sites.tsx +271 -225
  116. package/src/tail/filters.ts +108 -108
  117. package/src/tail/index.ts +217 -217
  118. package/src/tail/printing.ts +45 -45
  119. package/src/update-check.ts +11 -11
  120. package/src/user/choose-account.tsx +60 -0
  121. package/src/user/env-vars.ts +46 -0
  122. package/src/user/generate-auth-url.ts +33 -0
  123. package/src/user/generate-random-state.ts +16 -0
  124. package/src/user/index.ts +3 -0
  125. package/src/user/user.tsx +1161 -0
  126. package/src/whoami.tsx +61 -42
  127. package/src/worker-namespace.ts +190 -0
  128. package/src/worker.ts +110 -100
  129. package/src/zones.ts +39 -36
  130. package/templates/checked-fetch.js +17 -0
  131. package/templates/new-worker-scheduled.js +3 -3
  132. package/templates/new-worker-scheduled.ts +15 -15
  133. package/templates/new-worker.js +3 -3
  134. package/templates/new-worker.ts +15 -15
  135. package/templates/no-op-worker.js +10 -0
  136. package/templates/pages-template-plugin.ts +155 -0
  137. package/templates/pages-template-worker.ts +161 -0
  138. package/templates/static-asset-facade.js +31 -31
  139. package/templates/tsconfig.json +95 -95
  140. package/wrangler-dist/cli.js +55383 -54138
  141. package/pages/functions/buildPlugin.ts +0 -105
  142. package/pages/functions/buildWorker.ts +0 -151
  143. package/pages/functions/filepath-routing.ts +0 -189
  144. package/pages/functions/identifiers.ts +0 -78
  145. package/pages/functions/routes.ts +0 -156
  146. package/pages/functions/template-plugin.ts +0 -147
  147. package/pages/functions/template-worker.ts +0 -143
  148. package/src/pages.tsx +0 -2093
  149. package/src/user.tsx +0 -1214
@@ -17,12 +17,12 @@
17
17
  * CLI description or see the documentation for `ApiFilter`.
18
18
  */
19
19
  export type TailCLIFilters = {
20
- status?: ("ok" | "error" | "canceled")[];
21
- header?: string;
22
- method?: string[];
23
- search?: string;
24
- samplingRate?: number;
25
- clientIp?: string[];
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
- | SamplingRateFilter
37
- | OutcomeFilter
38
- | MethodFilter
39
- | HeaderFilter
40
- | ClientIPFilter
41
- | QueryFilter;
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
- sampling_rate: number;
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
- outcome: Outcome[];
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
- | "ok"
65
- | "canceled"
66
- | "exception"
67
- | "exceededCpu"
68
- | "unknown";
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
- method: string[];
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
- 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
- };
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
- client_ip: string[];
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
- query: string;
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
- filters: TailAPIFilter[];
124
- debug: boolean;
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
- cliFilters: TailCLIFilters,
137
- debug: boolean
136
+ cliFilters: TailCLIFilters,
137
+ debug: boolean
138
138
  ): TailFilterMessage {
139
- const apiFilters: TailAPIFilter[] = [];
139
+ const apiFilters: TailAPIFilter[] = [];
140
140
 
141
- if (cliFilters.samplingRate) {
142
- apiFilters.push(parseSamplingRate(cliFilters.samplingRate));
143
- }
141
+ if (cliFilters.samplingRate) {
142
+ apiFilters.push(parseSamplingRate(cliFilters.samplingRate));
143
+ }
144
144
 
145
- if (cliFilters.status) {
146
- apiFilters.push(parseOutcome(cliFilters.status));
147
- }
145
+ if (cliFilters.status) {
146
+ apiFilters.push(parseOutcome(cliFilters.status));
147
+ }
148
148
 
149
- if (cliFilters.method) {
150
- apiFilters.push(parseMethod(cliFilters.method));
151
- }
149
+ if (cliFilters.method) {
150
+ apiFilters.push(parseMethod(cliFilters.method));
151
+ }
152
152
 
153
- if (cliFilters.header) {
154
- apiFilters.push(parseHeader(cliFilters.header));
155
- }
153
+ if (cliFilters.header) {
154
+ apiFilters.push(parseHeader(cliFilters.header));
155
+ }
156
156
 
157
- if (cliFilters.clientIp) {
158
- apiFilters.push(parseIP(cliFilters.clientIp));
159
- }
157
+ if (cliFilters.clientIp) {
158
+ apiFilters.push(parseIP(cliFilters.clientIp));
159
+ }
160
160
 
161
- if (cliFilters.search) {
162
- apiFilters.push(parseQuery(cliFilters.search));
163
- }
161
+ if (cliFilters.search) {
162
+ apiFilters.push(parseQuery(cliFilters.search));
163
+ }
164
164
 
165
- return {
166
- filters: apiFilters,
167
- debug,
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
- 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
- }
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
- return { sampling_rate };
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
- statuses: ("ok" | "error" | "canceled")[]
196
+ statuses: ("ok" | "error" | "canceled")[]
197
197
  ): OutcomeFilter {
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
- };
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
- return { method };
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
- const [headerKey, headerQuery] = header.split(":", 2);
247
-
248
- return {
249
- header: {
250
- key: headerKey.trim(),
251
- query: headerQuery?.trim(),
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
- return { client_ip };
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
- return { query };
278
+ return { query };
279
279
  }