wrangler 0.0.0-e88a54e → 0.0.0-e8e684c7

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 (222) hide show
  1. package/Cloudflare_CA.pem +18 -0
  2. package/README.md +51 -14
  3. package/bin/wrangler.js +161 -29
  4. package/kv-asset-handler.js +1 -0
  5. package/miniflare-dist/index.mjs +5484 -21
  6. package/package.json +173 -143
  7. package/src/__tests__/config-cache-without-cache-dir.test.ts +38 -0
  8. package/src/__tests__/config-cache.test.ts +42 -0
  9. package/src/__tests__/configuration.test.ts +4016 -2786
  10. package/src/__tests__/dev.test.tsx +1305 -483
  11. package/src/__tests__/generate.test.ts +91 -0
  12. package/src/__tests__/guess-worker-format.test.ts +75 -48
  13. package/src/__tests__/helpers/cmd-shim.d.ts +6 -6
  14. package/src/__tests__/helpers/mock-account-id.ts +24 -24
  15. package/src/__tests__/helpers/mock-bin.ts +20 -20
  16. package/src/__tests__/helpers/mock-cfetch.ts +182 -93
  17. package/src/__tests__/helpers/mock-console.ts +59 -32
  18. package/src/__tests__/helpers/mock-dialogs.ts +121 -33
  19. package/src/__tests__/helpers/mock-get-zone-from-host.ts +8 -0
  20. package/src/__tests__/helpers/mock-http-server.ts +46 -0
  21. package/src/__tests__/helpers/mock-istty.ts +74 -0
  22. package/src/__tests__/helpers/mock-known-routes.ts +7 -0
  23. package/src/__tests__/helpers/mock-kv.ts +26 -26
  24. package/src/__tests__/helpers/mock-oauth-flow.ts +250 -0
  25. package/src/__tests__/helpers/mock-process.ts +39 -0
  26. package/src/__tests__/helpers/mock-stdin.ts +82 -77
  27. package/src/__tests__/helpers/mock-web-socket.ts +21 -21
  28. package/src/__tests__/helpers/run-in-tmp.ts +28 -22
  29. package/src/__tests__/helpers/run-wrangler.ts +8 -8
  30. package/src/__tests__/helpers/write-worker-source.ts +31 -0
  31. package/src/__tests__/helpers/write-wrangler-toml.ts +9 -9
  32. package/src/__tests__/https-options.test.ts +144 -108
  33. package/src/__tests__/index.test.ts +229 -975
  34. package/src/__tests__/init.test.ts +2170 -0
  35. package/src/__tests__/jest.setup.ts +122 -34
  36. package/src/__tests__/kv.test.ts +1376 -1087
  37. package/src/__tests__/logger.test.ts +141 -0
  38. package/src/__tests__/metrics.test.ts +450 -0
  39. package/src/__tests__/package-manager.test.ts +312 -165
  40. package/src/__tests__/pages.test.ts +1270 -39
  41. package/src/__tests__/parse.test.ts +253 -245
  42. package/src/__tests__/publish.test.ts +6878 -2627
  43. package/src/__tests__/pubsub.test.ts +367 -0
  44. package/src/__tests__/r2.test.ts +328 -190
  45. package/src/__tests__/route.test.ts +22 -22
  46. package/src/__tests__/secret.test.ts +474 -407
  47. package/src/__tests__/tail.test.ts +679 -441
  48. package/src/__tests__/test-old-node-version.js +31 -0
  49. package/src/__tests__/user.test.ts +155 -0
  50. package/src/__tests__/validate-dev-props.test.ts +56 -0
  51. package/src/__tests__/version.test.ts +35 -0
  52. package/src/__tests__/whoami.test.tsx +276 -87
  53. package/src/__tests__/worker-namespace.test.ts +329 -0
  54. package/src/abort.d.ts +3 -0
  55. package/src/api/dev.ts +93 -0
  56. package/src/api/index.ts +1 -0
  57. package/src/bundle-reporter.tsx +29 -0
  58. package/src/bundle.ts +441 -110
  59. package/src/cfetch/index.ts +83 -66
  60. package/src/cfetch/internal.ts +251 -92
  61. package/src/cli.ts +22 -14
  62. package/src/config/README.md +1 -1
  63. package/src/config/config.ts +224 -179
  64. package/src/config/diagnostics.ts +61 -61
  65. package/src/config/environment.ts +430 -311
  66. package/src/config/index.ts +227 -38
  67. package/src/config/validation-helpers.ts +414 -303
  68. package/src/config/validation.ts +1745 -973
  69. package/src/config-cache.ts +85 -0
  70. package/src/create-worker-preview.ts +209 -118
  71. package/src/create-worker-upload-form.ts +275 -201
  72. package/src/dev/dev-vars.ts +36 -0
  73. package/src/dev/dev.tsx +488 -307
  74. package/src/dev/local.tsx +427 -210
  75. package/src/dev/remote.tsx +407 -188
  76. package/src/dev/use-esbuild.ts +156 -78
  77. package/src/dev/validate-dev-props.ts +31 -0
  78. package/src/dev-registry.tsx +160 -0
  79. package/src/dev.tsx +696 -0
  80. package/src/dialogs.tsx +115 -57
  81. package/src/dispatch-namespace.ts +206 -0
  82. package/src/durable.ts +102 -0
  83. package/src/entry.ts +267 -147
  84. package/src/environment-variables.ts +25 -23
  85. package/src/errors.ts +11 -0
  86. package/src/faye-websocket.d.ts +6 -0
  87. package/src/generate.ts +131 -0
  88. package/src/git-client.ts +42 -0
  89. package/src/global-wrangler-config-path.ts +26 -0
  90. package/src/https-options.ts +85 -80
  91. package/src/index.tsx +2191 -2304
  92. package/src/init.ts +622 -0
  93. package/src/inspect.ts +687 -557
  94. package/src/intl-polyfill.d.ts +139 -0
  95. package/src/is-ci.ts +14 -0
  96. package/src/is-interactive.ts +12 -0
  97. package/src/kv.ts +353 -242
  98. package/src/logger.ts +73 -0
  99. package/src/metrics/index.ts +5 -0
  100. package/src/metrics/metrics-config.ts +239 -0
  101. package/src/metrics/metrics-dispatcher.ts +96 -0
  102. package/src/metrics/metrics-usage-headers.ts +24 -0
  103. package/src/metrics/send-event.ts +92 -0
  104. package/src/miniflare-cli/assets.ts +554 -0
  105. package/src/miniflare-cli/enum-keys.ts +8 -8
  106. package/src/miniflare-cli/index.ts +199 -29
  107. package/src/miniflare-cli/request-context.ts +40 -0
  108. package/src/module-collection.ts +213 -213
  109. package/src/open-in-browser.ts +8 -16
  110. package/src/package-manager.ts +183 -90
  111. package/src/pages/build.tsx +238 -0
  112. package/src/pages/constants.ts +12 -0
  113. package/src/pages/deployments.tsx +106 -0
  114. package/src/pages/dev.tsx +528 -0
  115. package/src/pages/errors.ts +22 -0
  116. package/src/pages/functions/buildPlugin.ts +109 -0
  117. package/src/pages/functions/buildWorker.ts +155 -0
  118. package/src/pages/functions/filepath-routing.test.ts +234 -0
  119. package/src/pages/functions/filepath-routing.ts +189 -0
  120. package/src/pages/functions/identifiers.ts +78 -0
  121. package/src/pages/functions/routes-consolidation.test.ts +250 -0
  122. package/src/pages/functions/routes-consolidation.ts +73 -0
  123. package/src/pages/functions/routes-transformation.test.ts +271 -0
  124. package/src/pages/functions/routes-transformation.ts +122 -0
  125. package/src/pages/functions/routes.ts +151 -0
  126. package/src/pages/functions.tsx +96 -0
  127. package/src/pages/index.tsx +94 -0
  128. package/src/pages/projects.tsx +169 -0
  129. package/src/pages/publish.tsx +391 -0
  130. package/src/pages/types.ts +49 -0
  131. package/src/pages/upload.tsx +413 -0
  132. package/src/pages/utils.ts +12 -0
  133. package/src/parse.ts +224 -121
  134. package/src/paths.ts +6 -6
  135. package/src/preview.ts +31 -0
  136. package/src/proxy.ts +416 -370
  137. package/src/publish.ts +796 -321
  138. package/src/pubsub/index.ts +286 -0
  139. package/src/pubsub/pubsub-commands.tsx +623 -0
  140. package/src/r2.ts +100 -19
  141. package/src/selfsigned.d.ts +23 -23
  142. package/src/sites.tsx +281 -189
  143. package/src/tail/filters.ts +111 -109
  144. package/src/tail/index.ts +230 -217
  145. package/src/tail/printing.ts +92 -47
  146. package/src/update-check.ts +19 -0
  147. package/src/user/choose-account.tsx +69 -0
  148. package/src/user/env-vars.ts +46 -0
  149. package/src/user/generate-auth-url.ts +33 -0
  150. package/src/user/generate-random-state.ts +16 -0
  151. package/src/user/index.ts +3 -0
  152. package/src/user/user.tsx +1191 -0
  153. package/src/whoami.tsx +142 -42
  154. package/src/worker.ts +135 -94
  155. package/src/zones.ts +167 -0
  156. package/templates/checked-fetch.js +17 -0
  157. package/templates/first-party-worker-module-facade.ts +18 -0
  158. package/templates/format-dev-errors.ts +32 -0
  159. package/templates/gitignore +171 -0
  160. package/templates/new-worker-scheduled.js +17 -0
  161. package/templates/new-worker-scheduled.ts +32 -0
  162. package/templates/new-worker.js +3 -3
  163. package/templates/new-worker.ts +18 -3
  164. package/templates/no-op-worker.js +10 -0
  165. package/templates/pages-shim.ts +9 -0
  166. package/templates/pages-template-plugin.ts +167 -0
  167. package/templates/pages-template-worker.ts +172 -0
  168. package/templates/serve-static-assets.ts +63 -0
  169. package/templates/service-bindings-module-facade.js +54 -0
  170. package/templates/service-bindings-sw-facade.js +42 -0
  171. package/templates/tsconfig.json +95 -95
  172. package/wrangler-dist/cli.d.ts +338 -0
  173. package/wrangler-dist/cli.js +124611 -112403
  174. package/miniflare-dist/index.mjs.map +0 -7
  175. package/pages/functions/buildWorker.ts +0 -62
  176. package/pages/functions/filepath-routing.test.ts +0 -223
  177. package/pages/functions/filepath-routing.ts +0 -181
  178. package/pages/functions/identifiers.ts +0 -78
  179. package/pages/functions/routes.ts +0 -151
  180. package/pages/functions/template-worker.ts +0 -130
  181. package/src/__tests__/dev2.test.tsx +0 -154
  182. package/src/__tests__/helpers/faye-websocket.d.ts +0 -6
  183. package/src/__tests__/logout.test.ts +0 -52
  184. package/src/__tests__/sentry.test.ts +0 -146
  185. package/src/pages.tsx +0 -1047
  186. package/src/reporting.ts +0 -131
  187. package/src/user.tsx +0 -1118
  188. package/templates/static-asset-facade.js +0 -47
  189. package/vendor/@cloudflare/kv-asset-handler/CHANGELOG.md +0 -332
  190. package/vendor/@cloudflare/kv-asset-handler/LICENSE_APACHE +0 -176
  191. package/vendor/@cloudflare/kv-asset-handler/LICENSE_MIT +0 -25
  192. package/vendor/@cloudflare/kv-asset-handler/README.md +0 -245
  193. package/vendor/@cloudflare/kv-asset-handler/dist/index.d.ts +0 -32
  194. package/vendor/@cloudflare/kv-asset-handler/dist/index.js +0 -354
  195. package/vendor/@cloudflare/kv-asset-handler/dist/mocks.d.ts +0 -13
  196. package/vendor/@cloudflare/kv-asset-handler/dist/mocks.js +0 -148
  197. package/vendor/@cloudflare/kv-asset-handler/dist/test/getAssetFromKV.d.ts +0 -1
  198. package/vendor/@cloudflare/kv-asset-handler/dist/test/getAssetFromKV.js +0 -436
  199. package/vendor/@cloudflare/kv-asset-handler/dist/test/mapRequestToAsset.d.ts +0 -1
  200. package/vendor/@cloudflare/kv-asset-handler/dist/test/mapRequestToAsset.js +0 -40
  201. package/vendor/@cloudflare/kv-asset-handler/dist/test/serveSinglePageApp.d.ts +0 -1
  202. package/vendor/@cloudflare/kv-asset-handler/dist/test/serveSinglePageApp.js +0 -42
  203. package/vendor/@cloudflare/kv-asset-handler/dist/types.d.ts +0 -26
  204. package/vendor/@cloudflare/kv-asset-handler/dist/types.js +0 -31
  205. package/vendor/@cloudflare/kv-asset-handler/package.json +0 -52
  206. package/vendor/@cloudflare/kv-asset-handler/src/index.ts +0 -296
  207. package/vendor/@cloudflare/kv-asset-handler/src/mocks.ts +0 -136
  208. package/vendor/@cloudflare/kv-asset-handler/src/test/getAssetFromKV.ts +0 -464
  209. package/vendor/@cloudflare/kv-asset-handler/src/test/mapRequestToAsset.ts +0 -33
  210. package/vendor/@cloudflare/kv-asset-handler/src/test/serveSinglePageApp.ts +0 -42
  211. package/vendor/@cloudflare/kv-asset-handler/src/types.ts +0 -39
  212. package/vendor/wrangler-mime/CHANGELOG.md +0 -289
  213. package/vendor/wrangler-mime/LICENSE +0 -21
  214. package/vendor/wrangler-mime/Mime.js +0 -97
  215. package/vendor/wrangler-mime/README.md +0 -187
  216. package/vendor/wrangler-mime/cli.js +0 -46
  217. package/vendor/wrangler-mime/index.js +0 -4
  218. package/vendor/wrangler-mime/lite.js +0 -4
  219. package/vendor/wrangler-mime/package.json +0 -52
  220. package/vendor/wrangler-mime/types/other.js +0 -1
  221. package/vendor/wrangler-mime/types/standard.js +0 -1
  222. package/wrangler-dist/cli.js.map +0 -7
@@ -1,53 +1,55 @@
1
1
  import { findUpSync } from "find-up";
2
+ import { logger } from "../logger";
2
3
  import { parseTOML, readFileSync } from "../parse";
3
4
  import { normalizeAndValidateConfig } from "./validation";
5
+ import type { CfWorkerInit } from "../worker";
4
6
  import type { Config, RawConfig } from "./config";
5
7
 
6
8
  export type {
7
- Config,
8
- RawConfig,
9
- ConfigFields,
10
- DevConfig,
11
- RawDevConfig,
9
+ Config,
10
+ RawConfig,
11
+ ConfigFields,
12
+ DevConfig,
13
+ RawDevConfig,
12
14
  } from "./config";
13
15
  export type {
14
- Environment,
15
- RawEnvironment,
16
- ConfigModuleRuleType,
16
+ Environment,
17
+ RawEnvironment,
18
+ ConfigModuleRuleType,
17
19
  } from "./environment";
18
20
 
19
21
  /**
20
22
  * Get the Wrangler configuration; read it from the give `configPath` if available.
21
23
  */
22
24
  export function readConfig(
23
- configPath: string | undefined,
24
- envName: string | undefined
25
+ configPath: string | undefined,
26
+ args: unknown
25
27
  ): Config {
26
- let rawConfig: RawConfig = {};
27
- if (!configPath) {
28
- configPath = findWranglerToml();
29
- }
30
-
31
- // Load the configuration from disk if available
32
- if (configPath) {
33
- rawConfig = parseTOML(readFileSync(configPath), configPath);
34
- }
35
-
36
- // Process the top-level configuration.
37
- const { config, diagnostics } = normalizeAndValidateConfig(
38
- rawConfig,
39
- configPath,
40
- envName
41
- );
42
-
43
- if (diagnostics.hasWarnings()) {
44
- console.warn(diagnostics.renderWarnings());
45
- }
46
- if (diagnostics.hasErrors()) {
47
- throw new Error(diagnostics.renderErrors());
48
- }
49
-
50
- return config;
28
+ let rawConfig: RawConfig = {};
29
+ if (!configPath) {
30
+ configPath = findWranglerToml();
31
+ }
32
+
33
+ // Load the configuration from disk if available
34
+ if (configPath) {
35
+ rawConfig = parseTOML(readFileSync(configPath), configPath);
36
+ }
37
+
38
+ // Process the top-level configuration.
39
+ const { config, diagnostics } = normalizeAndValidateConfig(
40
+ rawConfig,
41
+ configPath,
42
+ args
43
+ );
44
+
45
+ if (diagnostics.hasWarnings()) {
46
+ logger.warn(diagnostics.renderWarnings());
47
+ }
48
+ if (diagnostics.hasErrors()) {
49
+ throw new Error(diagnostics.renderErrors());
50
+ }
51
+
52
+ return config;
51
53
  }
52
54
 
53
55
  /**
@@ -55,8 +57,195 @@ export function readConfig(
55
57
  * from the current working directory.
56
58
  */
57
59
  export function findWranglerToml(
58
- referencePath: string = process.cwd()
60
+ referencePath: string = process.cwd()
59
61
  ): string | undefined {
60
- const configPath = findUpSync("wrangler.toml", { cwd: referencePath });
61
- return configPath;
62
+ const configPath = findUpSync("wrangler.toml", { cwd: referencePath });
63
+ return configPath;
64
+ }
65
+
66
+ /**
67
+ * Print all the bindings a worker using a given config would have access to
68
+ */
69
+ export function printBindings(bindings: CfWorkerInit["bindings"]) {
70
+ const truncate = (item: string | Record<string, unknown>) => {
71
+ const s = typeof item === "string" ? item : JSON.stringify(item);
72
+ const maxLength = 40;
73
+ if (s.length < maxLength) {
74
+ return s;
75
+ }
76
+
77
+ return `${s.substring(0, maxLength - 3)}...`;
78
+ };
79
+
80
+ const output: { type: string; entries: { key: string; value: string }[] }[] =
81
+ [];
82
+
83
+ const {
84
+ data_blobs,
85
+ durable_objects,
86
+ kv_namespaces,
87
+ r2_buckets,
88
+ logfwdr,
89
+ services,
90
+ text_blobs,
91
+ unsafe,
92
+ vars,
93
+ wasm_modules,
94
+ dispatch_namespaces,
95
+ } = bindings;
96
+
97
+ if (data_blobs !== undefined && Object.keys(data_blobs).length > 0) {
98
+ output.push({
99
+ type: "Data Blobs",
100
+ entries: Object.entries(data_blobs).map(([key, value]) => ({
101
+ key,
102
+ value: truncate(value),
103
+ })),
104
+ });
105
+ }
106
+
107
+ if (durable_objects !== undefined && durable_objects.bindings.length > 0) {
108
+ output.push({
109
+ type: "Durable Objects",
110
+ entries: durable_objects.bindings.map(
111
+ ({ name, class_name, script_name, environment }) => {
112
+ let value = class_name;
113
+ if (script_name) {
114
+ value += ` (defined in ${script_name})`;
115
+ }
116
+ if (environment) {
117
+ value += ` - ${environment}`;
118
+ }
119
+
120
+ return {
121
+ key: name,
122
+ value,
123
+ };
124
+ }
125
+ ),
126
+ });
127
+ }
128
+
129
+ if (kv_namespaces !== undefined && kv_namespaces.length > 0) {
130
+ output.push({
131
+ type: "KV Namespaces",
132
+ entries: kv_namespaces.map(({ binding, id }) => {
133
+ return {
134
+ key: binding,
135
+ value: id,
136
+ };
137
+ }),
138
+ });
139
+ }
140
+
141
+ if (r2_buckets !== undefined && r2_buckets.length > 0) {
142
+ output.push({
143
+ type: "R2 Buckets",
144
+ entries: r2_buckets.map(({ binding, bucket_name }) => {
145
+ return {
146
+ key: binding,
147
+ value: bucket_name,
148
+ };
149
+ }),
150
+ });
151
+ }
152
+
153
+ if (logfwdr !== undefined && logfwdr.bindings.length > 0) {
154
+ output.push({
155
+ type: "logfwdr",
156
+ entries: logfwdr.bindings.map((binding) => {
157
+ return {
158
+ key: binding.name,
159
+ value: binding.destination,
160
+ };
161
+ }),
162
+ });
163
+ }
164
+
165
+ if (services !== undefined && services.length > 0) {
166
+ output.push({
167
+ type: "Services",
168
+ entries: services.map(({ binding, service, environment }) => {
169
+ let value = service;
170
+ if (environment) {
171
+ value += ` - ${environment}`;
172
+ }
173
+
174
+ return {
175
+ key: binding,
176
+ value,
177
+ };
178
+ }),
179
+ });
180
+ }
181
+
182
+ if (text_blobs !== undefined && Object.keys(text_blobs).length > 0) {
183
+ output.push({
184
+ type: "Text Blobs",
185
+ entries: Object.entries(text_blobs).map(([key, value]) => ({
186
+ key,
187
+ value: truncate(value),
188
+ })),
189
+ });
190
+ }
191
+
192
+ if (unsafe !== undefined && unsafe.length > 0) {
193
+ output.push({
194
+ type: "Unsafe",
195
+ entries: unsafe.map(({ name, type }) => ({
196
+ key: type,
197
+ value: name,
198
+ })),
199
+ });
200
+ }
201
+
202
+ if (vars !== undefined && Object.keys(vars).length > 0) {
203
+ output.push({
204
+ type: "Vars",
205
+ entries: Object.entries(vars).map(([key, value]) => ({
206
+ key,
207
+ value: `"${truncate(`${value}`)}"`,
208
+ })),
209
+ });
210
+ }
211
+
212
+ if (wasm_modules !== undefined && Object.keys(wasm_modules).length > 0) {
213
+ output.push({
214
+ type: "Wasm Modules",
215
+ entries: Object.entries(wasm_modules).map(([key, value]) => ({
216
+ key,
217
+ value: truncate(value),
218
+ })),
219
+ });
220
+ }
221
+
222
+ if (dispatch_namespaces !== undefined && dispatch_namespaces.length > 0) {
223
+ output.push({
224
+ type: "dispatch namespaces",
225
+ entries: dispatch_namespaces.map(({ binding, namespace }) => {
226
+ return {
227
+ key: binding,
228
+ value: namespace,
229
+ };
230
+ }),
231
+ });
232
+ }
233
+
234
+ if (output.length === 0) {
235
+ return;
236
+ }
237
+
238
+ const message = [
239
+ `Your worker has access to the following bindings:`,
240
+ ...output
241
+ .map((bindingGroup) => {
242
+ return [
243
+ `- ${bindingGroup.type}:`,
244
+ bindingGroup.entries.map(({ key, value }) => ` - ${key}: ${value}`),
245
+ ];
246
+ })
247
+ .flat(2),
248
+ ].join("\n");
249
+
250
+ logger.log(message);
62
251
  }