wrangler 0.0.0-e6e1daba → 0.0.0-e7cf0caa

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 (101) hide show
  1. package/bin/wrangler.js +1 -1
  2. package/miniflare-dist/index.mjs +1 -1
  3. package/package.json +14 -9
  4. package/src/__tests__/api-devregistry.test.ts +121 -0
  5. package/src/__tests__/api.test.ts +27 -5
  6. package/src/__tests__/configuration.test.ts +294 -18
  7. package/src/__tests__/d1/execute.test.ts +3 -1
  8. package/src/__tests__/d1/migrate.test.ts +2 -0
  9. package/src/__tests__/delete.test.ts +6 -0
  10. package/src/__tests__/deployments.test.ts +335 -95
  11. package/src/__tests__/dev.test.tsx +87 -57
  12. package/src/__tests__/generate.test.ts +3 -4
  13. package/src/__tests__/helpers/mock-console.ts +6 -0
  14. package/src/__tests__/helpers/msw/handlers/deployments.ts +70 -3
  15. package/src/__tests__/helpers/msw/index.ts +4 -2
  16. package/src/__tests__/helpers/worker-scripts/parent-worker.js +4 -1
  17. package/src/__tests__/index.test.ts +10 -4
  18. package/src/__tests__/init.test.ts +136 -104
  19. package/src/__tests__/jest.setup.ts +4 -0
  20. package/src/__tests__/kv.test.ts +9 -9
  21. package/src/__tests__/logger.test.ts +68 -2
  22. package/src/__tests__/middleware.scheduled.test.ts +2 -2
  23. package/src/__tests__/middleware.test.ts +4 -3
  24. package/src/__tests__/mtls-certificates.test.ts +5 -2
  25. package/src/__tests__/pages/deployment-list.test.ts +2 -0
  26. package/src/__tests__/pages/functions-build.test.ts +91 -41
  27. package/src/__tests__/pages/project-list.test.ts +2 -0
  28. package/src/__tests__/pages/project-upload.test.ts +43 -24
  29. package/src/__tests__/pages/publish.test.ts +267 -148
  30. package/src/__tests__/publish.test.ts +420 -164
  31. package/src/__tests__/pubsub.test.ts +3 -0
  32. package/src/__tests__/queues.test.ts +5 -2
  33. package/src/__tests__/test-old-node-version.js +3 -3
  34. package/src/__tests__/traverse-module-graph.test.ts +220 -0
  35. package/src/__tests__/tsconfig.tsbuildinfo +1 -1
  36. package/src/__tests__/type-generation.test.ts +1 -0
  37. package/src/__tests__/user.test.ts +1 -1
  38. package/src/__tests__/worker-namespace.test.ts +1 -0
  39. package/src/api/dev.ts +10 -22
  40. package/src/api/pages/create-worker-bundle-contents.ts +1 -0
  41. package/src/api/pages/publish.tsx +38 -51
  42. package/src/bundle.ts +44 -13
  43. package/src/config/environment.ts +36 -4
  44. package/src/config/index.ts +30 -2
  45. package/src/config/validation-helpers.ts +1 -1
  46. package/src/config/validation.ts +149 -5
  47. package/src/create-worker-upload-form.ts +28 -3
  48. package/src/d1/backups.tsx +15 -11
  49. package/src/d1/create.tsx +20 -16
  50. package/src/d1/execute.tsx +22 -19
  51. package/src/d1/list.tsx +2 -2
  52. package/src/d1/migrations/apply.tsx +35 -29
  53. package/src/d1/migrations/create.tsx +15 -12
  54. package/src/d1/migrations/list.tsx +10 -7
  55. package/src/deployments.ts +260 -8
  56. package/src/dev/dev.tsx +4 -4
  57. package/src/dev/local.tsx +14 -16
  58. package/src/dev/start-server.ts +12 -16
  59. package/src/dev/use-esbuild.ts +11 -13
  60. package/src/dev/validate-dev-props.ts +9 -0
  61. package/src/dev-registry.ts +2 -1
  62. package/src/dev.tsx +28 -13
  63. package/src/entry.ts +18 -8
  64. package/src/generate/index.ts +2 -2
  65. package/src/index.ts +76 -23
  66. package/src/init.ts +144 -134
  67. package/src/logger.ts +18 -3
  68. package/src/metrics/send-event.ts +2 -1
  69. package/src/miniflare-cli/index.ts +1 -1
  70. package/src/miniflare-cli/tsconfig.tsbuildinfo +1 -1
  71. package/src/module-collection.ts +91 -25
  72. package/src/pages/build.ts +277 -99
  73. package/src/pages/buildFunctions.ts +20 -10
  74. package/src/pages/deployments.tsx +3 -5
  75. package/src/pages/dev.ts +21 -21
  76. package/src/pages/errors.ts +1 -0
  77. package/src/pages/functions/buildPlugin.ts +57 -34
  78. package/src/pages/functions/buildWorker.ts +34 -31
  79. package/src/pages/functions/tsconfig.tsbuildinfo +1 -1
  80. package/src/pages/projects.tsx +2 -5
  81. package/src/pages/publish.tsx +1 -10
  82. package/src/pages/upload.tsx +29 -9
  83. package/src/paths.ts +1 -1
  84. package/src/publish/index.ts +1 -1
  85. package/src/publish/publish.ts +29 -34
  86. package/src/queues/cli/commands/consumer/add.ts +6 -0
  87. package/src/queues/client.ts +1 -0
  88. package/src/secret/index.ts +2 -1
  89. package/src/traverse-module-graph.ts +53 -0
  90. package/src/type-generation.ts +1 -1
  91. package/src/user/user.ts +1 -1
  92. package/src/utils/render.ts +93 -0
  93. package/src/worker.ts +18 -1
  94. package/templates/d1-beta-facade.js +5 -2
  95. package/templates/gitignore +1 -0
  96. package/templates/middleware/middleware-miniflare3-json-error.ts +17 -5
  97. package/templates/tsconfig.init.json +1 -2
  98. package/templates/tsconfig.tsbuildinfo +1 -1
  99. package/wrangler-dist/cli.d.ts +33 -13
  100. package/wrangler-dist/cli.js +20732 -19984
  101. package/src/__tests__/api-devregistry.test.js +0 -64
@@ -25,6 +25,7 @@ describe("wrangler", () => {
25
25
  Object {
26
26
  "debug": "",
27
27
  "err": "",
28
+ "info": "",
28
29
  "out": "wrangler pubsub
29
30
 
30
31
  📮 Interact and manage Pub/Sub Brokers
@@ -55,6 +56,7 @@ describe("wrangler", () => {
55
56
  Object {
56
57
  "debug": "",
57
58
  "err": "",
59
+ "info": "",
58
60
  "out": "wrangler pubsub namespace
59
61
 
60
62
  Manage your Pub/Sub Namespaces
@@ -171,6 +173,7 @@ describe("wrangler", () => {
171
173
  Object {
172
174
  "debug": "",
173
175
  "err": "",
176
+ "info": "",
174
177
  "out": "wrangler pubsub broker
175
178
 
176
179
  Interact with your Pub/Sub Brokers
@@ -351,7 +351,8 @@ describe("wrangler", () => {
351
351
  --batch-size Maximum number of messages per batch [number]
352
352
  --batch-timeout Maximum number of seconds to wait to fill a batch with messages [number]
353
353
  --message-retries Maximum number of retries for each message [number]
354
- --dead-letter-queue Queue to send messages that failed to be consumed [string]"
354
+ --dead-letter-queue Queue to send messages that failed to be consumed [string]
355
+ --max-concurrency The maximum number of concurrent consumer Worker invocations. Must be a positive integer [number]"
355
356
  `);
356
357
  });
357
358
 
@@ -363,6 +364,7 @@ describe("wrangler", () => {
363
364
  batch_size: undefined,
364
365
  max_retries: undefined,
365
366
  max_wait_time_ms: undefined,
367
+ max_concurrency: undefined,
366
368
  },
367
369
  dead_letter_queue: undefined,
368
370
  };
@@ -382,13 +384,14 @@ describe("wrangler", () => {
382
384
  batch_size: 20,
383
385
  max_retries: 3,
384
386
  max_wait_time_ms: 10 * 1000,
387
+ max_concurrency: 3,
385
388
  },
386
389
  dead_letter_queue: "myDLQ",
387
390
  };
388
391
  mockPostRequest("testQueue", expectedBody);
389
392
 
390
393
  await runWrangler(
391
- "queues consumer add testQueue testScript --env myEnv --batch-size 20 --batch-timeout 10 --message-retries 3 --dead-letter-queue myDLQ"
394
+ "queues consumer add testQueue testScript --env myEnv --batch-size 20 --batch-timeout 10 --message-retries 3 --max-concurrency 3 --dead-letter-queue myDLQ"
392
395
  );
393
396
  expect(std.out).toMatchInlineSnapshot(`
394
397
  "Adding consumer to queue testQueue.
@@ -1,4 +1,4 @@
1
- // this test has to be run with a version of node.js older than 16.13 to pass
1
+ // this test has to be run with a version of Node.js older than 16.13 to pass
2
2
 
3
3
  const { spawn } = require("child_process");
4
4
  const path = require("path");
@@ -11,7 +11,7 @@ const wranglerProcess = spawn(
11
11
  { stdio: "pipe" }
12
12
  );
13
13
 
14
- const messageToMatch = "Wrangler requires at least node.js v16.13.0";
14
+ const messageToMatch = "Wrangler requires at least Node.js v16.13.0";
15
15
 
16
16
  wranglerProcess.once("exit", (code) => {
17
17
  try {
@@ -25,7 +25,7 @@ wranglerProcess.once("exit", (code) => {
25
25
  } catch (err) {
26
26
  console.error("Error:", err);
27
27
  throw new Error(
28
- "This test has to be run with a version of node.js under 16.13 to pass"
28
+ "This test has to be run with a version of Node.js under 16.13 to pass"
29
29
  );
30
30
  }
31
31
  });
@@ -0,0 +1,220 @@
1
+ import { mkdir, writeFile } from "fs/promises";
2
+ import path from "path";
3
+ import dedent from "ts-dedent";
4
+ import traverseModuleGraph from "../traverse-module-graph";
5
+ import { runInTempDir } from "./helpers/run-in-tmp";
6
+ import type { ConfigModuleRuleType } from "../config";
7
+
8
+ /*
9
+ * This file contains inline comments with the word "javascript"
10
+ * This signals to a compatible editor extension that the template string
11
+ * contents should be syntax-highlighted as JavaScript. One such extension
12
+ * is zjcompt.es6-string-javascript, but there are others.
13
+ */
14
+
15
+ describe("traverse module graph", () => {
16
+ runInTempDir();
17
+
18
+ it("should not detect JS without module rules", async () => {
19
+ await writeFile(
20
+ "./index.js",
21
+ dedent/* javascript */ `
22
+ import { HELLO } from "./other.js"
23
+ export default {
24
+ async fetch(request) {
25
+ return new Response(HELLO)
26
+ }
27
+ }
28
+ `
29
+ );
30
+ await writeFile(
31
+ "./other.js",
32
+ dedent/* javascript */ `
33
+ export const HELLO = "WORLD"
34
+ `
35
+ );
36
+
37
+ const bundle = await traverseModuleGraph(
38
+ {
39
+ file: path.join(process.cwd(), "./index.js"),
40
+ directory: process.cwd(),
41
+ format: "modules",
42
+ moduleRoot: process.cwd(),
43
+ },
44
+ []
45
+ );
46
+
47
+ expect(bundle.modules).toStrictEqual([]);
48
+ });
49
+
50
+ it.each([
51
+ ["ESModule", "esm"],
52
+ ["CommonJS", "commonjs"],
53
+ ])("should detect JS as %s", async (type, format) => {
54
+ await writeFile(
55
+ "./index.js",
56
+ dedent/* javascript */ `
57
+ import { HELLO } from "./other.js"
58
+ export default {
59
+ async fetch(request) {
60
+ return new Response(HELLO)
61
+ }
62
+ }
63
+ `
64
+ );
65
+ await writeFile(
66
+ "./other.js",
67
+ dedent/* javascript */ `
68
+ export const HELLO = "WORLD"
69
+ `
70
+ );
71
+
72
+ const bundle = await traverseModuleGraph(
73
+ {
74
+ file: path.join(process.cwd(), "./index.js"),
75
+ directory: process.cwd(),
76
+ format: "modules",
77
+ moduleRoot: process.cwd(),
78
+ },
79
+ [{ type: type as ConfigModuleRuleType, globs: ["**/*.js"] }]
80
+ );
81
+
82
+ expect(bundle.modules[0].type).toStrictEqual(format);
83
+ });
84
+
85
+ it("should not resolve JS outside the module root", async () => {
86
+ await mkdir("./src/nested", { recursive: true });
87
+ await writeFile(
88
+ "./src/nested/index.js",
89
+ dedent/* javascript */ `
90
+ import { HELLO } from "../other.js"
91
+ export default {
92
+ async fetch(request) {
93
+ return new Response(HELLO)
94
+ }
95
+ }
96
+ `
97
+ );
98
+ await writeFile(
99
+ "./src/other.js",
100
+ dedent/* javascript */ `
101
+ export const HELLO = "WORLD"
102
+ `
103
+ );
104
+
105
+ const bundle = await traverseModuleGraph(
106
+ {
107
+ file: path.join(process.cwd(), "./src/nested/index.js"),
108
+ directory: path.join(process.cwd(), "./src/nested"),
109
+ format: "modules",
110
+ // The default module root is dirname(file)
111
+ moduleRoot: path.join(process.cwd(), "./src/nested"),
112
+ },
113
+ [{ type: "ESModule", globs: ["**/*.js"] }]
114
+ );
115
+
116
+ expect(bundle.modules).toStrictEqual([]);
117
+ });
118
+
119
+ it("should resolve JS with module root", async () => {
120
+ await mkdir("./src/nested", { recursive: true });
121
+ await writeFile(
122
+ "./src/nested/index.js",
123
+ dedent/* javascript */ `
124
+ import { HELLO } from "../other.js"
125
+ export default {
126
+ async fetch(request) {
127
+ return new Response(HELLO)
128
+ }
129
+ }
130
+ `
131
+ );
132
+ await writeFile(
133
+ "./src/other.js",
134
+ dedent/* javascript */ `
135
+ export const HELLO = "WORLD"
136
+ `
137
+ );
138
+
139
+ const bundle = await traverseModuleGraph(
140
+ {
141
+ file: path.join(process.cwd(), "./src/nested/index.js"),
142
+ directory: path.join(process.cwd(), "./src/nested"),
143
+ format: "modules",
144
+ // The default module root is dirname(file)
145
+ moduleRoot: path.join(process.cwd(), "./src"),
146
+ },
147
+ [{ type: "ESModule", globs: ["**/*.js"] }]
148
+ );
149
+
150
+ expect(bundle.modules[0].name).toStrictEqual("other.js");
151
+ });
152
+
153
+ it("should ignore files not matched by glob", async () => {
154
+ await mkdir("./src/nested", { recursive: true });
155
+ await writeFile(
156
+ "./src/nested/index.js",
157
+ dedent/* javascript */ `
158
+ import { HELLO } from "../other.js"
159
+ export default {
160
+ async fetch(request) {
161
+ return new Response(HELLO)
162
+ }
163
+ }
164
+ `
165
+ );
166
+ await writeFile(
167
+ "./src/other.js",
168
+ dedent/* javascript */ `
169
+ export const HELLO = "WORLD"
170
+ `
171
+ );
172
+
173
+ const bundle = await traverseModuleGraph(
174
+ {
175
+ file: path.join(process.cwd(), "./src/nested/index.js"),
176
+ directory: path.join(process.cwd(), "./src/nested"),
177
+ format: "modules",
178
+ // The default module root is dirname(file)
179
+ moduleRoot: path.join(process.cwd(), "./src"),
180
+ },
181
+ [{ type: "ESModule", globs: ["**/*.mjs"] }]
182
+ );
183
+
184
+ expect(bundle.modules.length).toStrictEqual(0);
185
+ });
186
+
187
+ it("should resolve files that match the default rules", async () => {
188
+ await mkdir("./src", { recursive: true });
189
+ await writeFile(
190
+ "./src/index.js",
191
+ dedent/* javascript */ `
192
+ import HELLO from "../other.txt"
193
+ export default {
194
+ async fetch(request) {
195
+ return new Response(HELLO)
196
+ }
197
+ }
198
+ `
199
+ );
200
+ await writeFile(
201
+ "./src/other.txt",
202
+ dedent/* javascript */ `
203
+ export const HELLO = "WORLD"
204
+ `
205
+ );
206
+
207
+ const bundle = await traverseModuleGraph(
208
+ {
209
+ file: path.join(process.cwd(), "./src/index.js"),
210
+ directory: path.join(process.cwd(), "./src"),
211
+ format: "modules",
212
+ // The default module root is dirname(file)
213
+ moduleRoot: path.join(process.cwd(), "./src"),
214
+ },
215
+ []
216
+ );
217
+
218
+ expect(bundle.modules[0].name).toStrictEqual("other.txt");
219
+ });
220
+ });