wrangler 0.0.0-fb43821 → 0.0.0-fbfc24d7

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 (221) hide show
  1. package/Cloudflare_CA.pem +18 -0
  2. package/README.md +51 -14
  3. package/bin/wrangler.js +160 -28
  4. package/kv-asset-handler.js +1 -0
  5. package/miniflare-dist/index.mjs +5542 -0
  6. package/package.json +172 -113
  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 +4026 -0
  10. package/src/__tests__/dev.test.tsx +1316 -0
  11. package/src/__tests__/generate.test.ts +91 -0
  12. package/src/__tests__/guess-worker-format.test.ts +85 -0
  13. package/src/__tests__/{clipboardy-mock.js → helpers/clipboardy-mock.js} +0 -0
  14. package/src/__tests__/helpers/cmd-shim.d.ts +11 -0
  15. package/src/__tests__/helpers/mock-account-id.ts +48 -0
  16. package/src/__tests__/helpers/mock-bin.ts +36 -0
  17. package/src/__tests__/helpers/mock-cfetch.ts +296 -0
  18. package/src/__tests__/helpers/mock-console.ts +97 -0
  19. package/src/__tests__/helpers/mock-dialogs.ts +153 -0
  20. package/src/__tests__/helpers/mock-get-zone-from-host.ts +8 -0
  21. package/src/__tests__/helpers/mock-http-server.ts +46 -0
  22. package/src/__tests__/helpers/mock-istty.ts +74 -0
  23. package/src/__tests__/helpers/mock-known-routes.ts +7 -0
  24. package/src/__tests__/helpers/mock-kv.ts +33 -0
  25. package/src/__tests__/helpers/mock-oauth-flow.ts +250 -0
  26. package/src/__tests__/helpers/mock-process.ts +39 -0
  27. package/src/__tests__/helpers/mock-stdin.ts +108 -0
  28. package/src/__tests__/helpers/mock-web-socket.ts +29 -0
  29. package/src/__tests__/helpers/run-in-tmp.ts +38 -0
  30. package/src/__tests__/helpers/run-wrangler.ts +16 -0
  31. package/src/__tests__/helpers/write-worker-source.ts +31 -0
  32. package/src/__tests__/helpers/write-wrangler-toml.ts +17 -0
  33. package/src/__tests__/https-options.test.ts +163 -0
  34. package/src/__tests__/index.test.ts +242 -419
  35. package/src/__tests__/init.test.ts +2170 -0
  36. package/src/__tests__/jest.setup.ts +157 -0
  37. package/src/__tests__/kv.test.ts +1671 -0
  38. package/src/__tests__/logger.test.ts +141 -0
  39. package/src/__tests__/metrics.test.ts +450 -0
  40. package/src/__tests__/package-manager.test.ts +353 -0
  41. package/src/__tests__/pages.test.ts +1275 -0
  42. package/src/__tests__/parse.test.ts +330 -0
  43. package/src/__tests__/publish.test.ts +6903 -0
  44. package/src/__tests__/pubsub.test.ts +367 -0
  45. package/src/__tests__/r2.test.ts +336 -0
  46. package/src/__tests__/route.test.ts +45 -0
  47. package/src/__tests__/secret.test.ts +492 -0
  48. package/src/__tests__/tail.test.ts +802 -0
  49. package/src/__tests__/test-old-node-version.js +31 -0
  50. package/src/__tests__/user.test.ts +155 -0
  51. package/src/__tests__/validate-dev-props.test.ts +56 -0
  52. package/src/__tests__/version.test.ts +35 -0
  53. package/src/__tests__/whoami.test.tsx +289 -0
  54. package/src/__tests__/worker-namespace.test.ts +329 -0
  55. package/src/abort.d.ts +3 -0
  56. package/src/api/dev.ts +93 -0
  57. package/src/api/index.ts +1 -0
  58. package/src/bundle-reporter.tsx +29 -0
  59. package/src/bundle.ts +473 -0
  60. package/src/cfetch/index.ts +121 -0
  61. package/src/cfetch/internal.ts +237 -0
  62. package/src/cli.ts +25 -8
  63. package/src/config/README.md +107 -0
  64. package/src/config/config.ts +263 -0
  65. package/src/config/diagnostics.ts +80 -0
  66. package/src/config/environment.ts +485 -0
  67. package/src/config/index.ts +251 -0
  68. package/src/config/validation-helpers.ts +597 -0
  69. package/src/config/validation.ts +1862 -0
  70. package/src/config-cache.ts +85 -0
  71. package/src/create-worker-preview.ts +257 -0
  72. package/src/create-worker-upload-form.ts +288 -0
  73. package/src/dev/dev-vars.ts +36 -0
  74. package/src/dev/dev.tsx +545 -0
  75. package/src/dev/local.tsx +449 -0
  76. package/src/dev/remote.tsx +421 -0
  77. package/src/dev/use-esbuild.ts +178 -0
  78. package/src/dev/validate-dev-props.ts +31 -0
  79. package/src/dev-registry.tsx +160 -0
  80. package/src/dev.tsx +612 -764
  81. package/src/dialogs.tsx +117 -59
  82. package/src/dispatch-namespace.ts +206 -0
  83. package/src/durable.ts +102 -0
  84. package/src/entry.ts +328 -0
  85. package/src/environment-variables.ts +35 -0
  86. package/src/errors.ts +11 -0
  87. package/src/faye-websocket.d.ts +6 -0
  88. package/src/generate.ts +131 -0
  89. package/src/git-client.ts +42 -0
  90. package/src/global-wrangler-config-path.ts +26 -0
  91. package/src/https-options.ts +127 -0
  92. package/src/index.tsx +2213 -1857
  93. package/src/init.ts +622 -0
  94. package/src/inspect.ts +747 -0
  95. package/src/intl-polyfill.d.ts +139 -0
  96. package/src/is-ci.ts +14 -0
  97. package/src/is-interactive.ts +12 -0
  98. package/src/kv.ts +430 -0
  99. package/src/logger.ts +73 -0
  100. package/src/metrics/index.ts +5 -0
  101. package/src/metrics/metrics-config.ts +239 -0
  102. package/src/metrics/metrics-dispatcher.ts +96 -0
  103. package/src/metrics/metrics-usage-headers.ts +24 -0
  104. package/src/metrics/send-event.ts +92 -0
  105. package/src/miniflare-cli/README.md +30 -0
  106. package/src/miniflare-cli/assets.ts +554 -0
  107. package/src/miniflare-cli/enum-keys.ts +17 -0
  108. package/src/miniflare-cli/index.ts +207 -0
  109. package/src/miniflare-cli/request-context.ts +40 -0
  110. package/src/module-collection.ts +247 -53
  111. package/src/open-in-browser.ts +17 -0
  112. package/src/package-manager.ts +219 -0
  113. package/src/pages/build.tsx +238 -0
  114. package/src/pages/constants.ts +12 -0
  115. package/src/pages/deployments.tsx +106 -0
  116. package/src/pages/dev.tsx +528 -0
  117. package/src/pages/errors.ts +22 -0
  118. package/src/pages/functions/buildPlugin.ts +109 -0
  119. package/src/pages/functions/buildWorker.ts +155 -0
  120. package/src/pages/functions/filepath-routing.test.ts +234 -0
  121. package/src/pages/functions/filepath-routing.ts +189 -0
  122. package/src/pages/functions/identifiers.ts +78 -0
  123. package/src/pages/functions/routes-consolidation.test.ts +250 -0
  124. package/src/pages/functions/routes-consolidation.ts +73 -0
  125. package/src/pages/functions/routes-transformation.test.ts +271 -0
  126. package/src/pages/functions/routes-transformation.ts +122 -0
  127. package/src/pages/functions/routes.ts +151 -0
  128. package/src/pages/functions.tsx +96 -0
  129. package/src/pages/index.tsx +94 -0
  130. package/src/pages/projects.tsx +169 -0
  131. package/src/pages/publish.tsx +391 -0
  132. package/src/pages/types.ts +49 -0
  133. package/src/pages/upload.tsx +413 -0
  134. package/src/pages/utils.ts +12 -0
  135. package/src/parse.ts +286 -0
  136. package/src/paths.ts +26 -0
  137. package/src/preview.ts +31 -0
  138. package/src/proxy.ts +486 -0
  139. package/src/publish.ts +796 -335
  140. package/src/pubsub/index.ts +286 -0
  141. package/src/pubsub/pubsub-commands.tsx +623 -0
  142. package/src/r2.ts +131 -0
  143. package/src/selfsigned.d.ts +29 -0
  144. package/src/sites.tsx +357 -100
  145. package/src/tail/filters.ts +281 -0
  146. package/src/tail/index.ts +312 -0
  147. package/src/tail/printing.ts +107 -0
  148. package/src/update-check.ts +19 -0
  149. package/src/user/choose-account.tsx +69 -0
  150. package/src/user/env-vars.ts +46 -0
  151. package/src/user/generate-auth-url.ts +33 -0
  152. package/src/user/generate-random-state.ts +16 -0
  153. package/src/user/index.ts +3 -0
  154. package/src/user/user.tsx +1191 -0
  155. package/src/whoami.tsx +169 -0
  156. package/src/worker.ts +203 -0
  157. package/src/zones.ts +167 -0
  158. package/templates/checked-fetch.js +17 -0
  159. package/templates/first-party-worker-module-facade.ts +18 -0
  160. package/templates/format-dev-errors.ts +32 -0
  161. package/templates/gitignore +171 -0
  162. package/templates/new-worker-scheduled.js +17 -0
  163. package/templates/new-worker-scheduled.ts +32 -0
  164. package/templates/new-worker.js +15 -0
  165. package/templates/new-worker.ts +30 -0
  166. package/templates/no-op-worker.js +10 -0
  167. package/templates/pages-shim.ts +9 -0
  168. package/templates/pages-template-plugin.ts +167 -0
  169. package/templates/pages-template-worker.ts +172 -0
  170. package/templates/serve-static-assets.ts +63 -0
  171. package/templates/service-bindings-module-facade.js +54 -0
  172. package/templates/service-bindings-sw-facade.js +42 -0
  173. package/templates/tsconfig.json +105 -0
  174. package/wrangler-dist/cli.d.ts +338 -0
  175. package/wrangler-dist/cli.js +127880 -101761
  176. package/src/__tests__/mock-cfetch.js +0 -42
  177. package/src/api/form_data.ts +0 -141
  178. package/src/api/inspect.ts +0 -430
  179. package/src/api/preview.ts +0 -128
  180. package/src/api/worker.ts +0 -161
  181. package/src/cfetch.ts +0 -72
  182. package/src/config.ts +0 -122
  183. package/src/kv.tsx +0 -211
  184. package/src/pages.tsx +0 -818
  185. package/src/tail.tsx +0 -71
  186. package/src/user.tsx +0 -1029
  187. package/static-asset-facade.js +0 -47
  188. package/vendor/@cloudflare/kv-asset-handler/CHANGELOG.md +0 -332
  189. package/vendor/@cloudflare/kv-asset-handler/LICENSE_APACHE +0 -176
  190. package/vendor/@cloudflare/kv-asset-handler/LICENSE_MIT +0 -25
  191. package/vendor/@cloudflare/kv-asset-handler/README.md +0 -245
  192. package/vendor/@cloudflare/kv-asset-handler/dist/index.d.ts +0 -32
  193. package/vendor/@cloudflare/kv-asset-handler/dist/index.js +0 -354
  194. package/vendor/@cloudflare/kv-asset-handler/dist/mocks.d.ts +0 -13
  195. package/vendor/@cloudflare/kv-asset-handler/dist/mocks.js +0 -148
  196. package/vendor/@cloudflare/kv-asset-handler/dist/test/getAssetFromKV.d.ts +0 -1
  197. package/vendor/@cloudflare/kv-asset-handler/dist/test/getAssetFromKV.js +0 -436
  198. package/vendor/@cloudflare/kv-asset-handler/dist/test/mapRequestToAsset.d.ts +0 -1
  199. package/vendor/@cloudflare/kv-asset-handler/dist/test/mapRequestToAsset.js +0 -40
  200. package/vendor/@cloudflare/kv-asset-handler/dist/test/serveSinglePageApp.d.ts +0 -1
  201. package/vendor/@cloudflare/kv-asset-handler/dist/test/serveSinglePageApp.js +0 -42
  202. package/vendor/@cloudflare/kv-asset-handler/dist/types.d.ts +0 -26
  203. package/vendor/@cloudflare/kv-asset-handler/dist/types.js +0 -31
  204. package/vendor/@cloudflare/kv-asset-handler/package.json +0 -52
  205. package/vendor/@cloudflare/kv-asset-handler/src/index.ts +0 -296
  206. package/vendor/@cloudflare/kv-asset-handler/src/mocks.ts +0 -136
  207. package/vendor/@cloudflare/kv-asset-handler/src/test/getAssetFromKV.ts +0 -464
  208. package/vendor/@cloudflare/kv-asset-handler/src/test/mapRequestToAsset.ts +0 -33
  209. package/vendor/@cloudflare/kv-asset-handler/src/test/serveSinglePageApp.ts +0 -42
  210. package/vendor/@cloudflare/kv-asset-handler/src/types.ts +0 -39
  211. package/vendor/wrangler-mime/CHANGELOG.md +0 -289
  212. package/vendor/wrangler-mime/LICENSE +0 -21
  213. package/vendor/wrangler-mime/Mime.js +0 -97
  214. package/vendor/wrangler-mime/README.md +0 -187
  215. package/vendor/wrangler-mime/cli.js +0 -46
  216. package/vendor/wrangler-mime/index.js +0 -4
  217. package/vendor/wrangler-mime/lite.js +0 -4
  218. package/vendor/wrangler-mime/package.json +0 -52
  219. package/vendor/wrangler-mime/types/other.js +0 -1
  220. package/vendor/wrangler-mime/types/standard.js +0 -1
  221. package/wrangler-dist/cli.js.map +0 -7
@@ -0,0 +1,329 @@
1
+ import { mockAccountId, mockApiToken } from "./helpers/mock-account-id";
2
+ import { setMockResponse, unsetAllMocks } from "./helpers/mock-cfetch";
3
+ import { mockConsoleMethods } from "./helpers/mock-console";
4
+ import { runInTempDir } from "./helpers/run-in-tmp";
5
+ import { runWrangler } from "./helpers/run-wrangler";
6
+
7
+ describe("dispatch-namespace", () => {
8
+ runInTempDir();
9
+ const std = mockConsoleMethods();
10
+ mockAccountId();
11
+ mockApiToken();
12
+
13
+ afterEach(() => {
14
+ unsetAllMocks();
15
+ });
16
+
17
+ it("should should display a list of available subcommands, for dispatch-namespace with no subcommand", async () => {
18
+ await runWrangler("dispatch-namespace");
19
+
20
+ // wait a tick for the help menu to be printed
21
+ await new Promise((resolve) => setImmediate(resolve));
22
+
23
+ expect(std).toMatchInlineSnapshot(`
24
+ Object {
25
+ "debug": "",
26
+ "err": "",
27
+ "out": "wrangler dispatch-namespace
28
+
29
+ 📦 Interact with a dispatch namespace
30
+
31
+ Commands:
32
+ wrangler dispatch-namespace list List all dispatch namespaces
33
+ wrangler dispatch-namespace get <name> Get information about a dispatch namespace
34
+ wrangler dispatch-namespace create <name> Create a dispatch namespace
35
+ wrangler dispatch-namespace delete <name> Delete a dispatch namespace
36
+ wrangler dispatch-namespace rename <old-name> <new-name> Rename a dispatch namespace
37
+
38
+ Flags:
39
+ -c, --config Path to .toml configuration file [string]
40
+ -h, --help Show help [boolean]
41
+ -v, --version Show version number [boolean]",
42
+ "warn": "",
43
+ }
44
+ `);
45
+ });
46
+
47
+ describe("create namespace", () => {
48
+ function mockCreateRequest(expectedName: string) {
49
+ const requests = { count: 0 };
50
+ setMockResponse(
51
+ "/accounts/:accountId/workers/dispatch/namespaces",
52
+ ([_url], init) => {
53
+ requests.count += 1;
54
+
55
+ const incomingText = init.body?.toString() || "";
56
+ const { name: namespace_name } = JSON.parse(incomingText);
57
+
58
+ expect(init.method).toBe("POST");
59
+ expect(namespace_name).toEqual(expectedName);
60
+
61
+ return {
62
+ namespace_id: "some-namespace-id",
63
+ namespace_name: "namespace-name",
64
+ created_on: "2022-06-29T14:30:08.16152Z",
65
+ created_by: "1fc1df98cc4420fe00367c3ab68c1639",
66
+ modified_on: "2022-06-29T14:30:08.16152Z",
67
+ modified_by: "1fc1df98cc4420fe00367c3ab68c1639",
68
+ };
69
+ }
70
+ );
71
+ return requests;
72
+ }
73
+
74
+ it("should display help for create", async () => {
75
+ await expect(
76
+ runWrangler("dispatch-namespace create")
77
+ ).rejects.toThrowErrorMatchingInlineSnapshot(
78
+ `"Not enough non-option arguments: got 0, need at least 1"`
79
+ );
80
+
81
+ expect(std.out).toMatchInlineSnapshot(`
82
+ "
83
+ wrangler dispatch-namespace create <name>
84
+
85
+ Create a dispatch namespace
86
+
87
+ Positionals:
88
+ name Name of the dispatch namespace [string] [required]
89
+
90
+ Flags:
91
+ -c, --config Path to .toml configuration file [string]
92
+ -h, --help Show help [boolean]
93
+ -v, --version Show version number [boolean]"
94
+ `);
95
+ });
96
+
97
+ it("should attempt to create the given namespace", async () => {
98
+ const namespaceName = "my-namespace";
99
+ const requests = mockCreateRequest(namespaceName);
100
+ await runWrangler(`dispatch-namespace create ${namespaceName}`);
101
+ expect(requests.count).toEqual(1);
102
+
103
+ expect(std.out).toMatchInlineSnapshot(
104
+ `"Created dispatch namespace \\"my-namespace\\" with ID \\"some-namespace-id\\""`
105
+ );
106
+ });
107
+ });
108
+
109
+ describe("delete namespace", () => {
110
+ function mockDeleteRequest(expectedName: string) {
111
+ const requests = { count: 0 };
112
+ setMockResponse(
113
+ "/accounts/:accountId/workers/dispatch/namespaces/:namespaceName",
114
+ ([_url, _, namespaceName], init) => {
115
+ requests.count += 1;
116
+
117
+ expect(init.method).toBe("DELETE");
118
+ expect(namespaceName).toEqual(expectedName);
119
+
120
+ return null;
121
+ }
122
+ );
123
+ return requests;
124
+ }
125
+
126
+ it("should display help for delete", async () => {
127
+ await expect(
128
+ runWrangler("dispatch-namespace create")
129
+ ).rejects.toThrowErrorMatchingInlineSnapshot(
130
+ `"Not enough non-option arguments: got 0, need at least 1"`
131
+ );
132
+
133
+ expect(std.out).toMatchInlineSnapshot(`
134
+ "
135
+ wrangler dispatch-namespace create <name>
136
+
137
+ Create a dispatch namespace
138
+
139
+ Positionals:
140
+ name Name of the dispatch namespace [string] [required]
141
+
142
+ Flags:
143
+ -c, --config Path to .toml configuration file [string]
144
+ -h, --help Show help [boolean]
145
+ -v, --version Show version number [boolean]"
146
+ `);
147
+ });
148
+
149
+ it("should try to delete the given namespace", async () => {
150
+ const namespaceName = "my-namespace";
151
+ const requests = mockDeleteRequest(namespaceName);
152
+ await runWrangler(`dispatch-namespace delete ${namespaceName}`);
153
+ expect(requests.count).toBe(1);
154
+
155
+ expect(std.out).toMatchInlineSnapshot(
156
+ `"Deleted dispatch namespace \\"my-namespace\\""`
157
+ );
158
+ });
159
+ });
160
+
161
+ describe("get namespace", () => {
162
+ function mockInfoRequest(expectedName: string) {
163
+ const requests = { count: 0 };
164
+ setMockResponse(
165
+ "/accounts/:accountId/workers/dispatch/namespaces/:namespaceName",
166
+ ([_url, _, namespaceName], _init) => {
167
+ requests.count += 1;
168
+
169
+ expect(namespaceName).toEqual(expectedName);
170
+
171
+ return {
172
+ namespace_id: "some-namespace-id",
173
+ namespace_name: "namespace-name",
174
+ created_on: "2022-06-29T14:30:08.16152Z",
175
+ created_by: "1fc1df98cc4420fe00367c3ab68c1639",
176
+ modified_on: "2022-06-29T14:30:08.16152Z",
177
+ modified_by: "1fc1df98cc4420fe00367c3ab68c1639",
178
+ };
179
+ }
180
+ );
181
+ return requests;
182
+ }
183
+
184
+ it("should display help for get", async () => {
185
+ await expect(
186
+ runWrangler("dispatch-namespace get")
187
+ ).rejects.toThrowErrorMatchingInlineSnapshot(
188
+ `"Not enough non-option arguments: got 0, need at least 1"`
189
+ );
190
+
191
+ expect(std.out).toMatchInlineSnapshot(`
192
+ "
193
+ wrangler dispatch-namespace get <name>
194
+
195
+ Get information about a dispatch namespace
196
+
197
+ Positionals:
198
+ name Name of the dispatch namespace [string] [required]
199
+
200
+ Flags:
201
+ -c, --config Path to .toml configuration file [string]
202
+ -h, --help Show help [boolean]
203
+ -v, --version Show version number [boolean]"
204
+ `);
205
+ });
206
+
207
+ it("should attempt to get info for the given namespace", async () => {
208
+ const namespaceName = "my-namespace";
209
+ const requests = mockInfoRequest(namespaceName);
210
+ await runWrangler(`dispatch-namespace get ${namespaceName}`);
211
+ expect(requests.count).toBe(1);
212
+
213
+ expect(std.out).toMatchInlineSnapshot(`
214
+ "{
215
+ namespace_id: 'some-namespace-id',
216
+ namespace_name: 'namespace-name',
217
+ created_on: '2022-06-29T14:30:08.16152Z',
218
+ created_by: '1fc1df98cc4420fe00367c3ab68c1639',
219
+ modified_on: '2022-06-29T14:30:08.16152Z',
220
+ modified_by: '1fc1df98cc4420fe00367c3ab68c1639'
221
+ }"
222
+ `);
223
+ });
224
+ });
225
+
226
+ describe("list namespaces", () => {
227
+ function mockListRequest() {
228
+ const requests = { count: 0 };
229
+ setMockResponse(
230
+ "/accounts/:accountId/workers/dispatch/namespaces",
231
+ ([_url, _, _page, _perPage], _init) => {
232
+ requests.count += 1;
233
+
234
+ return [
235
+ {
236
+ namespace_id: "some-namespace-id",
237
+ namespace_name: "namespace-name",
238
+ created_on: "2022-06-29T14:30:08.16152Z",
239
+ created_by: "1fc1df98cc4420fe00367c3ab68c1639",
240
+ modified_on: "2022-06-29T14:30:08.16152Z",
241
+ modified_by: "1fc1df98cc4420fe00367c3ab68c1639",
242
+ },
243
+ ];
244
+ }
245
+ );
246
+ return requests;
247
+ }
248
+
249
+ it("should list all namespaces", async () => {
250
+ const requests = mockListRequest();
251
+ await runWrangler("dispatch-namespace list");
252
+ expect(requests.count).toBe(1);
253
+ expect(std.out).toMatchInlineSnapshot(`
254
+ "[
255
+ {
256
+ namespace_id: 'some-namespace-id',
257
+ namespace_name: 'namespace-name',
258
+ created_on: '2022-06-29T14:30:08.16152Z',
259
+ created_by: '1fc1df98cc4420fe00367c3ab68c1639',
260
+ modified_on: '2022-06-29T14:30:08.16152Z',
261
+ modified_by: '1fc1df98cc4420fe00367c3ab68c1639'
262
+ }
263
+ ]"
264
+ `);
265
+ });
266
+ });
267
+
268
+ describe("rename namespace", () => {
269
+ function mockRenameRequest(expectedName: string) {
270
+ const requests = { count: 0 };
271
+ setMockResponse(
272
+ "/accounts/:accountId/workers/dispatch/namespaces/:namespaceName",
273
+ ([_url, _, namespaceName], init) => {
274
+ requests.count += 1;
275
+
276
+ expect(init.method).toEqual("PUT");
277
+ expect(namespaceName).toEqual(expectedName);
278
+
279
+ return {
280
+ namespace_id: "some-namespace-id",
281
+ namespace_name: "namespace-name",
282
+ created_on: "2022-06-29T14:30:08.16152Z",
283
+ created_by: "1fc1df98cc4420fe00367c3ab68c1639",
284
+ modified_on: "2022-06-29T14:30:08.16152Z",
285
+ modified_by: "1fc1df98cc4420fe00367c3ab68c1639",
286
+ };
287
+ }
288
+ );
289
+ return requests;
290
+ }
291
+
292
+ it("should display help for rename", async () => {
293
+ await expect(
294
+ runWrangler("dispatch-namespace rename")
295
+ ).rejects.toThrowErrorMatchingInlineSnapshot(
296
+ `"Not enough non-option arguments: got 0, need at least 2"`
297
+ );
298
+
299
+ expect(std.out).toMatchInlineSnapshot(`
300
+ "
301
+ wrangler dispatch-namespace rename <old-name> <new-name>
302
+
303
+ Rename a dispatch namespace
304
+
305
+ Positionals:
306
+ old-name Name of the dispatch namespace [string] [required]
307
+ new-name New name of the dispatch namespace [string] [required]
308
+
309
+ Flags:
310
+ -c, --config Path to .toml configuration file [string]
311
+ -h, --help Show help [boolean]
312
+ -v, --version Show version number [boolean]"
313
+ `);
314
+ });
315
+
316
+ it("should attempt to rename the given namespace", async () => {
317
+ const namespaceName = "my-namespace";
318
+ const newName = "new-namespace";
319
+ const requests = mockRenameRequest(namespaceName);
320
+ await runWrangler(
321
+ `dispatch-namespace rename ${namespaceName} ${newName}`
322
+ );
323
+ expect(requests.count).toBe(1);
324
+ expect(std.out).toMatchInlineSnapshot(
325
+ `"Renamed dispatch namespace \\"my-namespace\\" to \\"new-namespace\\""`
326
+ );
327
+ });
328
+ });
329
+ });
package/src/abort.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ declare interface AbortSignal {
2
+ addEventListener(event: "abort", handler: () => void);
3
+ }
package/src/api/dev.ts ADDED
@@ -0,0 +1,93 @@
1
+ import { startDev } from "../dev";
2
+ import { logger } from "../logger";
3
+
4
+ import type { EnablePagesAssetsServiceBindingOptions } from "../miniflare-cli";
5
+ import type { RequestInit, Response } from "undici";
6
+
7
+ interface DevOptions {
8
+ env?: string;
9
+ ip?: string;
10
+ port?: number;
11
+ inspectorPort?: number;
12
+ localProtocol?: "http" | "https";
13
+ assets?: string;
14
+ site?: string;
15
+ siteInclude?: string[];
16
+ siteExclude?: string[];
17
+ nodeCompat?: boolean;
18
+ compatibilityDate?: string;
19
+ compatibilityFlags?: string[];
20
+ experimentalEnableLocalPersistence?: boolean;
21
+ liveReload?: boolean;
22
+ watch?: boolean;
23
+ vars: {
24
+ [key: string]: unknown;
25
+ };
26
+ kv?: {
27
+ binding: string;
28
+ id: string;
29
+ preview_id?: string;
30
+ }[];
31
+ durableObjects?: {
32
+ name: string;
33
+ class_name: string;
34
+ script_name?: string | undefined;
35
+ environment?: string | undefined;
36
+ }[];
37
+ r2?: {
38
+ binding: string;
39
+ bucket_name: string;
40
+ preview_bucket_name?: string;
41
+ }[];
42
+ showInteractiveDevSession?: boolean;
43
+ logLevel?: "none" | "error" | "log" | "warn" | "debug";
44
+ logPrefix?: string;
45
+ inspect?: boolean;
46
+ forceLocal?: boolean;
47
+ enablePagesAssetsServiceBinding?: EnablePagesAssetsServiceBindingOptions;
48
+ _?: (string | number)[]; //yargs wants this
49
+ $0?: string; //yargs wants this
50
+ }
51
+ /**
52
+ * unstable_dev starts a wrangler dev server, and returns a promise that resolves with utility functions to interact with it.
53
+ * @param {string} script
54
+ * @param {DevOptions} options
55
+ */
56
+ export async function unstable_dev(
57
+ script: string,
58
+ options: DevOptions,
59
+ disableExperimentalWarning?: boolean
60
+ ) {
61
+ if (!disableExperimentalWarning) {
62
+ logger.warn(
63
+ `unstable_dev() is experimental\nunstable_dev()'s behaviour will likely change in future releases`
64
+ );
65
+ }
66
+
67
+ return new Promise<{
68
+ stop: () => void;
69
+ fetch: (init?: RequestInit) => Promise<Response | undefined>;
70
+ waitUntilExit: () => Promise<void>;
71
+ }>((resolve) => {
72
+ //lmao
73
+ return new Promise<Awaited<ReturnType<typeof startDev>>>((ready) => {
74
+ const devServer = startDev({
75
+ script: script,
76
+ inspect: false,
77
+ logLevel: "none",
78
+ showInteractiveDevSession: false,
79
+ _: [],
80
+ $0: "",
81
+ ...options,
82
+ local: true,
83
+ onReady: () => ready(devServer),
84
+ });
85
+ }).then((devServer) => {
86
+ resolve({
87
+ stop: devServer.stop,
88
+ fetch: devServer.fetch,
89
+ waitUntilExit: devServer.devReactElement.waitUntilExit,
90
+ });
91
+ });
92
+ });
93
+ }
@@ -0,0 +1 @@
1
+ export { unstable_dev } from "./dev";
@@ -0,0 +1,29 @@
1
+ import { Blob } from "node:buffer";
2
+ import { gzipSync } from "node:zlib";
3
+ import { logger } from "./logger";
4
+ import type { CfModule } from "./worker";
5
+
6
+ async function getSize(modules: CfModule[]) {
7
+ const gzipSize = gzipSync(
8
+ await new Blob(modules.map((file) => file.content)).arrayBuffer()
9
+ ).byteLength;
10
+ const aggregateSize = new Blob(modules.map((file) => file.content)).size;
11
+
12
+ return { size: aggregateSize, gzipSize };
13
+ }
14
+
15
+ export async function printBundleSize(
16
+ main: {
17
+ name: string;
18
+ content: string;
19
+ },
20
+ modules: CfModule[]
21
+ ) {
22
+ const { size, gzipSize } = await getSize([...modules, main]);
23
+
24
+ const bundleReport = `${(size / 1024).toFixed(2)} KiB / gzip: ${(
25
+ gzipSize / 1024
26
+ ).toFixed(2)} KiB`;
27
+
28
+ logger.log(`Total Upload: ${bundleReport}`);
29
+ }