wrangler 0.0.0-e2f9bb2 → 0.0.0-e30d1013

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 (295) hide show
  1. package/Cloudflare_CA.pem +18 -0
  2. package/README.md +26 -4
  3. package/bin/wrangler.js +154 -34
  4. package/kv-asset-handler.js +1 -0
  5. package/miniflare-dist/index.mjs +1451 -21
  6. package/package.json +191 -148
  7. package/src/__tests__/access.test.ts +25 -0
  8. package/src/__tests__/api-dev.test.ts +209 -0
  9. package/src/__tests__/api-devregistry.test.js +56 -0
  10. package/src/__tests__/api.test.ts +80 -0
  11. package/src/__tests__/config-cache-without-cache-dir.test.ts +38 -0
  12. package/src/__tests__/config-cache.test.ts +30 -24
  13. package/src/__tests__/configuration.test.ts +3970 -3114
  14. package/src/__tests__/d1.test.ts +74 -0
  15. package/src/__tests__/delete.test.ts +230 -0
  16. package/src/__tests__/deployments.test.ts +91 -0
  17. package/src/__tests__/dev.test.tsx +1484 -737
  18. package/src/__tests__/dialogs.test.tsx +40 -0
  19. package/src/__tests__/generate.test.ts +235 -0
  20. package/src/__tests__/get-host-from-url.test.ts +16 -0
  21. package/src/__tests__/guess-worker-format.test.ts +68 -68
  22. package/src/__tests__/helpers/cmd-shim.d.ts +6 -6
  23. package/src/__tests__/helpers/mock-account-id.ts +24 -24
  24. package/src/__tests__/helpers/mock-bin.ts +20 -20
  25. package/src/__tests__/helpers/mock-cfetch.ts +216 -94
  26. package/src/__tests__/helpers/mock-console.ts +58 -39
  27. package/src/__tests__/helpers/mock-dialogs.ts +115 -51
  28. package/src/__tests__/helpers/mock-get-zone-from-host.ts +8 -0
  29. package/src/__tests__/helpers/mock-http-server.ts +30 -30
  30. package/src/__tests__/helpers/mock-istty.ts +65 -18
  31. package/src/__tests__/helpers/mock-known-routes.ts +7 -0
  32. package/src/__tests__/helpers/mock-kv.ts +27 -27
  33. package/src/__tests__/helpers/mock-oauth-flow.ts +225 -228
  34. package/src/__tests__/helpers/mock-process.ts +39 -0
  35. package/src/__tests__/helpers/mock-stdin.ts +82 -77
  36. package/src/__tests__/helpers/mock-web-socket.ts +21 -21
  37. package/src/__tests__/helpers/msw/handlers/access.ts +13 -0
  38. package/src/__tests__/helpers/msw/handlers/deployments.ts +59 -0
  39. package/src/__tests__/helpers/msw/handlers/namespaces.ts +104 -0
  40. package/src/__tests__/helpers/msw/handlers/oauth.ts +36 -0
  41. package/src/__tests__/helpers/msw/handlers/r2.ts +80 -0
  42. package/src/__tests__/helpers/msw/handlers/script.ts +75 -0
  43. package/src/__tests__/helpers/msw/handlers/user.ts +63 -0
  44. package/src/__tests__/helpers/msw/handlers/zones.ts +22 -0
  45. package/src/__tests__/helpers/msw/index.ts +21 -0
  46. package/src/__tests__/helpers/run-in-tmp.ts +27 -28
  47. package/src/__tests__/helpers/run-wrangler.ts +8 -8
  48. package/src/__tests__/helpers/worker-scripts/child-wrangler.toml +1 -0
  49. package/src/__tests__/helpers/worker-scripts/hello-world-worker.js +5 -0
  50. package/src/__tests__/helpers/worker-scripts/hello-world-wrangler.toml +1 -0
  51. package/src/__tests__/helpers/worker-scripts/parent-worker.js +8 -0
  52. package/src/__tests__/helpers/worker-scripts/parent-wrangler.toml +5 -0
  53. package/src/__tests__/helpers/write-worker-source.ts +16 -16
  54. package/src/__tests__/helpers/write-wrangler-toml.ts +9 -9
  55. package/src/__tests__/https-options.test.ts +142 -109
  56. package/src/__tests__/index.test.ts +244 -231
  57. package/src/__tests__/init.test.ts +2872 -1014
  58. package/src/__tests__/jest.setup.ts +163 -30
  59. package/src/__tests__/kv.test.ts +1660 -1439
  60. package/src/__tests__/logger.test.ts +100 -74
  61. package/src/__tests__/metrics.test.ts +450 -0
  62. package/src/__tests__/middleware.scheduled.test.ts +135 -0
  63. package/src/__tests__/middleware.test.ts +726 -0
  64. package/src/__tests__/package-manager.test.ts +312 -165
  65. package/src/__tests__/pages.test.ts +2380 -322
  66. package/src/__tests__/parse.test.ts +253 -245
  67. package/src/__tests__/paths.test.ts +39 -0
  68. package/src/__tests__/publish.test.ts +7536 -4778
  69. package/src/__tests__/pubsub.test.ts +370 -0
  70. package/src/__tests__/queues.test.ts +371 -0
  71. package/src/__tests__/r2.test.ts +388 -209
  72. package/src/__tests__/route.test.ts +18 -18
  73. package/src/__tests__/secret.test.ts +624 -426
  74. package/src/__tests__/tail.test.ts +677 -567
  75. package/src/__tests__/test-old-node-version.js +31 -0
  76. package/src/__tests__/type-generation.test.ts +225 -0
  77. package/src/__tests__/user.test.ts +140 -116
  78. package/src/__tests__/utils-collectKeyValues.test.ts +47 -0
  79. package/src/__tests__/validate-dev-props.test.ts +56 -0
  80. package/src/__tests__/version.test.ts +35 -0
  81. package/src/__tests__/whoami.test.tsx +264 -91
  82. package/src/__tests__/worker-namespace.test.ts +326 -0
  83. package/src/abort.d.ts +3 -0
  84. package/src/api/dev.ts +208 -0
  85. package/src/api/index.ts +2 -0
  86. package/src/bundle-reporter.tsx +68 -0
  87. package/src/bundle.ts +781 -135
  88. package/src/cfetch/index.ts +123 -67
  89. package/src/cfetch/internal.ts +216 -90
  90. package/src/cli.ts +23 -8
  91. package/src/config/config.ts +236 -195
  92. package/src/config/diagnostics.ts +61 -61
  93. package/src/config/environment.ts +506 -339
  94. package/src/config/index.ts +309 -38
  95. package/src/config/validation-helpers.ts +379 -357
  96. package/src/config/validation.ts +1942 -1263
  97. package/src/config-cache.ts +81 -41
  98. package/src/create-worker-preview.ts +239 -132
  99. package/src/create-worker-upload-form.ts +300 -224
  100. package/src/d1/backups.tsx +218 -0
  101. package/src/d1/constants.ts +2 -0
  102. package/src/d1/create.tsx +63 -0
  103. package/src/d1/delete.tsx +56 -0
  104. package/src/d1/execute.tsx +344 -0
  105. package/src/d1/formatTimeAgo.ts +14 -0
  106. package/src/d1/index.ts +99 -0
  107. package/src/d1/list.tsx +48 -0
  108. package/src/d1/migrations.tsx +446 -0
  109. package/src/d1/options.ts +22 -0
  110. package/src/d1/types.tsx +24 -0
  111. package/src/d1/utils.ts +48 -0
  112. package/src/delete.ts +108 -0
  113. package/src/deployments.ts +77 -0
  114. package/src/deprecated/index.ts +438 -0
  115. package/src/dev/dev-vars.ts +20 -17
  116. package/src/dev/dev.tsx +522 -353
  117. package/src/dev/get-local-persistence-path.tsx +31 -0
  118. package/src/dev/local.tsx +726 -292
  119. package/src/dev/remote.tsx +591 -201
  120. package/src/dev/start-server.ts +519 -0
  121. package/src/dev/use-esbuild.ts +183 -97
  122. package/src/dev/validate-dev-props.ts +31 -0
  123. package/src/dev-registry.tsx +201 -0
  124. package/src/dev.tsx +868 -0
  125. package/src/dialogs.tsx +147 -65
  126. package/src/dispatch-namespace.ts +207 -0
  127. package/src/durable.ts +102 -0
  128. package/src/entry.ts +248 -186
  129. package/src/environment-variables.ts +38 -23
  130. package/src/errors.ts +6 -6
  131. package/src/git-client.ts +124 -0
  132. package/src/global-wrangler-config-path.ts +26 -0
  133. package/src/https-options.ts +84 -80
  134. package/src/index.tsx +632 -2564
  135. package/src/init.ts +970 -0
  136. package/src/inspect.ts +706 -562
  137. package/src/intl-polyfill.d.ts +123 -123
  138. package/src/is-ci.ts +14 -0
  139. package/src/is-interactive.ts +16 -0
  140. package/src/kv/helpers.ts +430 -0
  141. package/src/kv/index.ts +596 -0
  142. package/src/logger.ts +67 -41
  143. package/src/metrics/index.ts +5 -0
  144. package/src/metrics/metrics-config.ts +239 -0
  145. package/src/metrics/metrics-dispatcher.ts +96 -0
  146. package/src/metrics/metrics-usage-headers.ts +24 -0
  147. package/src/metrics/send-event.ts +94 -0
  148. package/src/miniflare-cli/assets.ts +215 -0
  149. package/src/miniflare-cli/index.ts +205 -33
  150. package/src/miniflare-cli/request-context.ts +18 -18
  151. package/src/module-collection.ts +221 -212
  152. package/src/open-in-browser.ts +5 -14
  153. package/src/package-manager.ts +182 -90
  154. package/src/pages/build.tsx +270 -0
  155. package/src/pages/constants.ts +18 -0
  156. package/src/pages/deployments.tsx +106 -0
  157. package/src/pages/dev.tsx +708 -0
  158. package/src/pages/errors.ts +66 -0
  159. package/src/pages/functions/buildPlugin.ts +106 -0
  160. package/src/pages/functions/buildWorker.ts +165 -0
  161. package/{pages → src/pages}/functions/filepath-routing.test.ts +113 -113
  162. package/src/pages/functions/filepath-routing.ts +189 -0
  163. package/src/pages/functions/identifiers.ts +78 -0
  164. package/src/pages/functions/routes-consolidation.test.ts +250 -0
  165. package/src/pages/functions/routes-consolidation.ts +73 -0
  166. package/src/pages/functions/routes-transformation.test.ts +282 -0
  167. package/src/pages/functions/routes-transformation.ts +115 -0
  168. package/src/pages/functions/routes-validation.test.ts +403 -0
  169. package/src/pages/functions/routes-validation.ts +202 -0
  170. package/src/pages/functions/routes.ts +151 -0
  171. package/src/pages/functions.tsx +82 -0
  172. package/src/pages/hash.tsx +13 -0
  173. package/src/pages/index.tsx +94 -0
  174. package/src/pages/projects.tsx +169 -0
  175. package/src/pages/publish.tsx +446 -0
  176. package/src/pages/types.ts +49 -0
  177. package/src/pages/upload.tsx +425 -0
  178. package/src/pages/utils.ts +12 -0
  179. package/src/parse.ts +223 -120
  180. package/src/paths.ts +53 -8
  181. package/src/proxy.ts +623 -388
  182. package/src/publish/index.ts +270 -0
  183. package/src/publish/publish.ts +1035 -0
  184. package/src/pubsub/index.ts +286 -0
  185. package/src/pubsub/pubsub-commands.tsx +624 -0
  186. package/src/queues/cli/commands/consumer/add.ts +71 -0
  187. package/src/queues/cli/commands/consumer/index.ts +22 -0
  188. package/src/queues/cli/commands/consumer/remove.ts +38 -0
  189. package/src/queues/cli/commands/create.ts +25 -0
  190. package/src/queues/cli/commands/delete.ts +26 -0
  191. package/src/queues/cli/commands/index.ts +33 -0
  192. package/src/queues/cli/commands/list.ts +25 -0
  193. package/src/queues/client.ts +135 -0
  194. package/src/r2/constants.ts +4 -0
  195. package/src/r2/helpers.ts +131 -0
  196. package/src/r2/index.ts +289 -0
  197. package/src/routes.ts +140 -0
  198. package/src/secret/index.ts +378 -0
  199. package/src/selfsigned.d.ts +23 -23
  200. package/src/sites.tsx +281 -202
  201. package/src/tail/createTail.ts +315 -0
  202. package/src/tail/filters.ts +108 -110
  203. package/src/tail/index.ts +211 -296
  204. package/src/tail/printing.ts +86 -46
  205. package/src/type-generation.ts +173 -0
  206. package/src/update-check.ts +11 -11
  207. package/src/user/access.ts +69 -0
  208. package/src/user/choose-account.tsx +69 -0
  209. package/src/user/env-vars.ts +46 -0
  210. package/src/user/generate-auth-url.ts +33 -0
  211. package/src/user/generate-random-state.ts +16 -0
  212. package/src/user/index.ts +3 -0
  213. package/src/user/user.tsx +1192 -0
  214. package/src/utils/collectKeyValues.ts +14 -0
  215. package/src/whoami.tsx +141 -42
  216. package/src/worker.ts +174 -101
  217. package/src/yargs-types.ts +20 -0
  218. package/src/zones.ts +191 -0
  219. package/templates/__tests__/pages-dev-util.test.ts +128 -0
  220. package/templates/checked-fetch.js +17 -0
  221. package/templates/d1-beta-facade.js +196 -0
  222. package/templates/experimental-local-cache-stubs.js +27 -0
  223. package/templates/first-party-worker-module-facade.ts +18 -0
  224. package/templates/format-dev-errors.ts +32 -0
  225. package/templates/init-tests/test-jest-new-worker.js +25 -0
  226. package/templates/init-tests/test-vitest-new-worker.js +26 -0
  227. package/templates/middleware/common.ts +62 -0
  228. package/templates/middleware/loader-modules.ts +84 -0
  229. package/templates/middleware/loader-sw.ts +213 -0
  230. package/templates/middleware/middleware-pretty-error.ts +40 -0
  231. package/templates/middleware/middleware-scheduled.ts +15 -0
  232. package/templates/new-worker-scheduled.js +17 -0
  233. package/templates/new-worker-scheduled.ts +32 -0
  234. package/templates/new-worker.js +3 -3
  235. package/templates/new-worker.ts +18 -3
  236. package/templates/no-op-worker.js +10 -0
  237. package/templates/pages-dev-pipeline.ts +28 -0
  238. package/templates/pages-dev-util.ts +52 -0
  239. package/templates/pages-shim.ts +9 -0
  240. package/templates/pages-template-plugin.ts +171 -0
  241. package/templates/pages-template-worker.ts +189 -0
  242. package/templates/serve-static-assets.ts +63 -0
  243. package/templates/service-bindings-module-facade.js +54 -0
  244. package/templates/service-bindings-sw-facade.js +42 -0
  245. package/templates/tsconfig.json +96 -95
  246. package/wrangler-dist/cli.d.ts +891 -0
  247. package/wrangler-dist/cli.js +101091 -50509
  248. package/pages/functions/buildPlugin.ts +0 -92
  249. package/pages/functions/buildWorker.ts +0 -138
  250. package/pages/functions/filepath-routing.ts +0 -189
  251. package/pages/functions/identifiers.ts +0 -78
  252. package/pages/functions/routes.ts +0 -156
  253. package/pages/functions/template-plugin.ts +0 -146
  254. package/pages/functions/template-worker.ts +0 -143
  255. package/src/__tests__/helpers/faye-websocket.d.ts +0 -6
  256. package/src/kv.ts +0 -319
  257. package/src/miniflare-cli/enum-keys.ts +0 -17
  258. package/src/pages.tsx +0 -1866
  259. package/src/publish.ts +0 -469
  260. package/src/r2.ts +0 -50
  261. package/src/user.tsx +0 -1193
  262. package/templates/static-asset-facade.js +0 -47
  263. package/vendor/@cloudflare/kv-asset-handler/CHANGELOG.md +0 -332
  264. package/vendor/@cloudflare/kv-asset-handler/LICENSE_APACHE +0 -176
  265. package/vendor/@cloudflare/kv-asset-handler/LICENSE_MIT +0 -25
  266. package/vendor/@cloudflare/kv-asset-handler/README.md +0 -245
  267. package/vendor/@cloudflare/kv-asset-handler/dist/index.d.ts +0 -32
  268. package/vendor/@cloudflare/kv-asset-handler/dist/index.js +0 -354
  269. package/vendor/@cloudflare/kv-asset-handler/dist/mocks.d.ts +0 -13
  270. package/vendor/@cloudflare/kv-asset-handler/dist/mocks.js +0 -148
  271. package/vendor/@cloudflare/kv-asset-handler/dist/test/getAssetFromKV.d.ts +0 -1
  272. package/vendor/@cloudflare/kv-asset-handler/dist/test/getAssetFromKV.js +0 -436
  273. package/vendor/@cloudflare/kv-asset-handler/dist/test/mapRequestToAsset.d.ts +0 -1
  274. package/vendor/@cloudflare/kv-asset-handler/dist/test/mapRequestToAsset.js +0 -40
  275. package/vendor/@cloudflare/kv-asset-handler/dist/test/serveSinglePageApp.d.ts +0 -1
  276. package/vendor/@cloudflare/kv-asset-handler/dist/test/serveSinglePageApp.js +0 -42
  277. package/vendor/@cloudflare/kv-asset-handler/dist/types.d.ts +0 -26
  278. package/vendor/@cloudflare/kv-asset-handler/dist/types.js +0 -31
  279. package/vendor/@cloudflare/kv-asset-handler/package.json +0 -52
  280. package/vendor/@cloudflare/kv-asset-handler/src/index.ts +0 -296
  281. package/vendor/@cloudflare/kv-asset-handler/src/mocks.ts +0 -136
  282. package/vendor/@cloudflare/kv-asset-handler/src/test/getAssetFromKV.ts +0 -464
  283. package/vendor/@cloudflare/kv-asset-handler/src/test/mapRequestToAsset.ts +0 -33
  284. package/vendor/@cloudflare/kv-asset-handler/src/test/serveSinglePageApp.ts +0 -42
  285. package/vendor/@cloudflare/kv-asset-handler/src/types.ts +0 -39
  286. package/vendor/wrangler-mime/CHANGELOG.md +0 -289
  287. package/vendor/wrangler-mime/LICENSE +0 -21
  288. package/vendor/wrangler-mime/Mime.js +0 -97
  289. package/vendor/wrangler-mime/README.md +0 -187
  290. package/vendor/wrangler-mime/cli.js +0 -46
  291. package/vendor/wrangler-mime/index.js +0 -4
  292. package/vendor/wrangler-mime/lite.js +0 -4
  293. package/vendor/wrangler-mime/package.json +0 -52
  294. package/vendor/wrangler-mime/types/other.js +0 -1
  295. package/vendor/wrangler-mime/types/standard.js +0 -1
package/package.json CHANGED
@@ -1,150 +1,193 @@
1
1
  {
2
- "name": "wrangler",
3
- "version": "0.0.0-e2f9bb2",
4
- "author": "wrangler@cloudflare.com",
5
- "description": "Command-line interface for all things Cloudflare Workers",
6
- "bin": {
7
- "wrangler": "./bin/wrangler.js",
8
- "wrangler2": "./bin/wrangler.js"
9
- },
10
- "license": "MIT OR Apache-2.0",
11
- "bugs": {
12
- "url": "https://github.com/cloudflare/wrangler/issues"
13
- },
14
- "homepage": "https://github.com/cloudflare/wrangler#readme",
15
- "keywords": [
16
- "wrangler",
17
- "cloudflare",
18
- "workers",
19
- "cloudflare workers",
20
- "edge",
21
- "compute",
22
- "serverless",
23
- "serverless application",
24
- "serverless module",
25
- "wasm",
26
- "web",
27
- "assembly",
28
- "webassembly",
29
- "rust",
30
- "emscripten",
31
- "rust",
32
- "typescript",
33
- "graphql",
34
- "router",
35
- "http",
36
- "cli"
37
- ],
38
- "dependencies": {
39
- "@esbuild-plugins/node-globals-polyfill": "^0.1.1",
40
- "@esbuild-plugins/node-modules-polyfill": "^0.1.4",
41
- "blake3-wasm": "^2.1.5",
42
- "esbuild": "0.14.34",
43
- "miniflare": "2.4.0",
44
- "nanoid": "^3.3.3",
45
- "path-to-regexp": "^6.2.0",
46
- "selfsigned": "^2.0.1",
47
- "semiver": "^1.1.0",
48
- "xxhash-wasm": "^1.0.1"
49
- },
50
- "optionalDependencies": {
51
- "fsevents": "~2.3.2"
52
- },
53
- "devDependencies": {
54
- "@iarna/toml": "^3.0.0",
55
- "@types/command-exists": "^1.2.0",
56
- "@types/glob-to-regexp": "0.4.1",
57
- "@types/mime": "^2.0.3",
58
- "@types/prompts": "^2.0.14",
59
- "@types/react": "^17.0.37",
60
- "@types/serve-static": "^1.13.10",
61
- "@types/signal-exit": "^3.0.1",
62
- "@types/supports-color": "^8.1.1",
63
- "@types/ws": "^8.5.3",
64
- "@types/yargs": "^17.0.10",
65
- "chokidar": "^3.5.3",
66
- "clipboardy": "^3.0.0",
67
- "cmd-shim": "^4.1.0",
68
- "command-exists": "^1.2.9",
69
- "devtools-protocol": "^0.0.955664",
70
- "dotenv": "^16.0.0",
71
- "execa": "^6.1.0",
72
- "faye-websocket": "^0.11.4",
73
- "finalhandler": "^1.2.0",
74
- "find-up": "^6.3.0",
75
- "get-port": "^6.1.2",
76
- "glob-to-regexp": "0.4.1",
77
- "ignore": "^5.2.0",
78
- "ink": "^3.2.0",
79
- "ink-select-input": "^4.2.1",
80
- "ink-spinner": "^4.0.3",
81
- "ink-table": "^3.0.0",
82
- "ink-testing-library": "^2.1.0",
83
- "ink-text-input": "^4.0.3",
84
- "jest-fetch-mock": "^3.0.3",
85
- "jest-websocket-mock": "^2.3.0",
86
- "mime": "^3.0.0",
87
- "open": "^8.4.0",
88
- "pretty-bytes": "^6.0.0",
89
- "prompts": "^2.4.2",
90
- "react": "^17.0.2",
91
- "react-error-boundary": "^3.1.4",
92
- "serve-static": "^1.15.0",
93
- "signal-exit": "^3.0.7",
94
- "supports-color": "^9.2.2",
95
- "timeago.js": "^4.0.2",
96
- "tmp-promise": "^3.0.3",
97
- "ts-dedent": "^2.2.0",
98
- "undici": "^4.15.1",
99
- "update-check": "^1.5.4",
100
- "ws": "^8.5.0",
101
- "yargs": "^17.4.1"
102
- },
103
- "files": [
104
- "src",
105
- "bin",
106
- "pages",
107
- "miniflare-config-stubs",
108
- "miniflare-dist",
109
- "wrangler-dist",
110
- "templates",
111
- "vendor",
112
- "import_meta_url.js"
113
- ],
114
- "scripts": {
115
- "clean": "rm -rf wrangler-dist miniflare-dist",
116
- "check:type": "tsc",
117
- "bundle": "node -r esbuild-register scripts/bundle.ts",
118
- "build": "npm run clean && npm run bundle",
119
- "prepublishOnly": "SOURCEMAPS=false npm run build",
120
- "start": "npm run bundle && NODE_OPTIONS=--enable-source-maps ./bin/wrangler.js",
121
- "test": "jest --silent=false --verbose=true",
122
- "test-watch": "npm run test -- --runInBand --testTimeout=50000 --watch"
123
- },
124
- "engines": {
125
- "node": ">=16.7.0"
126
- },
127
- "jest": {
128
- "restoreMocks": true,
129
- "testTimeout": 30000,
130
- "testRegex": ".*.(test|spec)\\.[jt]sx?$",
131
- "transformIgnorePatterns": [
132
- "node_modules/(?!find-up|locate-path|p-locate|p-limit|yocto-queue|path-exists|execa|strip-final-newline|npm-run-path|path-key|onetime|mimic-fn|human-signals|is-stream|get-port|supports-color|pretty-bytes)"
133
- ],
134
- "moduleNameMapper": {
135
- "clipboardy": "<rootDir>/src/__tests__/helpers/clipboardy-mock.js",
136
- "miniflare/cli": "<rootDir>/../../node_modules/miniflare/dist/src/cli.js"
137
- },
138
- "transform": {
139
- "^.+\\.c?(t|j)sx?$": [
140
- "esbuild-jest",
141
- {
142
- "sourcemap": true
143
- }
144
- ]
145
- },
146
- "setupFilesAfterEnv": [
147
- "<rootDir>/src/__tests__/jest.setup.ts"
148
- ]
149
- }
2
+ "name": "wrangler",
3
+ "version": "0.0.0-e30d1013",
4
+ "description": "Command-line interface for all things Cloudflare Workers",
5
+ "keywords": [
6
+ "wrangler",
7
+ "cloudflare",
8
+ "workers",
9
+ "cloudflare workers",
10
+ "edge",
11
+ "compute",
12
+ "serverless",
13
+ "serverless application",
14
+ "serverless module",
15
+ "wasm",
16
+ "web",
17
+ "assembly",
18
+ "webassembly",
19
+ "rust",
20
+ "emscripten",
21
+ "typescript",
22
+ "graphql",
23
+ "router",
24
+ "http",
25
+ "cli"
26
+ ],
27
+ "homepage": "https://github.com/cloudflare/wrangler2#readme",
28
+ "bugs": {
29
+ "url": "https://github.com/cloudflare/wrangler2/issues"
30
+ },
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "https://github.com/cloudflare/wrangler2.git",
34
+ "directory": "packages/wrangler"
35
+ },
36
+ "license": "MIT OR Apache-2.0",
37
+ "author": "wrangler@cloudflare.com",
38
+ "main": "wrangler-dist/cli.js",
39
+ "types": "wrangler-dist/cli.d.ts",
40
+ "bin": {
41
+ "wrangler": "./bin/wrangler.js",
42
+ "wrangler2": "./bin/wrangler.js"
43
+ },
44
+ "files": [
45
+ "src",
46
+ "bin",
47
+ "miniflare-config-stubs",
48
+ "miniflare-dist",
49
+ "wrangler-dist",
50
+ "templates",
51
+ "vendor",
52
+ "import_meta_url.js",
53
+ "kv-asset-handler.js",
54
+ "Cloudflare_CA.pem"
55
+ ],
56
+ "scripts": {
57
+ "assert-git-version": "node -r esbuild-register scripts/assert-git-version.ts",
58
+ "build": "npm run clean && npm run bundle && npm run emit-types",
59
+ "bundle": "node -r esbuild-register scripts/bundle.ts",
60
+ "check:type": "tsc",
61
+ "clean": "rimraf wrangler-dist miniflare-dist emitted-types",
62
+ "dev": "npm run clean && concurrently -c black,blue --kill-others-on-fail false 'npm run bundle -- --watch' 'npm run check:type -- --watch --preserveWatchOutput'",
63
+ "emit-types": "tsc -p tsconfig.emit.json && node -r esbuild-register scripts/emit-types.ts",
64
+ "prepublishOnly": "SOURCEMAPS=false npm run build",
65
+ "start": "npm run bundle && cross-env NODE_OPTIONS=--enable-source-maps ./bin/wrangler.js",
66
+ "test": "npm run assert-git-version && jest --silent=false --verbose=true",
67
+ "test-watch": "npm run test -- --runInBand --testTimeout=50000 --watch",
68
+ "test:ci": "npm run test -- --verbose=true --coverage"
69
+ },
70
+ "jest": {
71
+ "coverageReporters": [
72
+ "json",
73
+ "html",
74
+ "text",
75
+ "cobertura"
76
+ ],
77
+ "moduleNameMapper": {
78
+ "clipboardy": "<rootDir>/src/__tests__/helpers/clipboardy-mock.js",
79
+ "miniflare/cli": "<rootDir>/../../node_modules/miniflare/dist/src/cli.js"
80
+ },
81
+ "restoreMocks": true,
82
+ "setupFilesAfterEnv": [
83
+ "<rootDir>/src/__tests__/jest.setup.ts"
84
+ ],
85
+ "testRegex": ".*.(test|spec)\\.[jt]sx?$",
86
+ "testTimeout": 30000,
87
+ "transform": {
88
+ "^.+\\.c?(t|j)sx?$": [
89
+ "esbuild-jest",
90
+ {
91
+ "sourcemap": true
92
+ }
93
+ ]
94
+ },
95
+ "transformIgnorePatterns": [
96
+ "node_modules/(?!find-up|locate-path|p-locate|p-limit|p-timeout|p-queue|yocto-queue|path-exists|execa|strip-final-newline|npm-run-path|path-key|onetime|mimic-fn|human-signals|is-stream|get-port|supports-color|pretty-bytes|npx-import)"
97
+ ]
98
+ },
99
+ "dependencies": {
100
+ "@cloudflare/kv-asset-handler": "^0.2.0",
101
+ "@esbuild-plugins/node-globals-polyfill": "^0.1.1",
102
+ "@esbuild-plugins/node-modules-polyfill": "^0.1.4",
103
+ "@miniflare/core": "2.10.0",
104
+ "@miniflare/d1": "2.10.0",
105
+ "@miniflare/durable-objects": "2.10.0",
106
+ "blake3-wasm": "^2.1.5",
107
+ "chokidar": "^3.5.3",
108
+ "esbuild": "0.14.51",
109
+ "miniflare": "2.10.0",
110
+ "nanoid": "^3.3.3",
111
+ "path-to-regexp": "^6.2.0",
112
+ "selfsigned": "^2.0.1",
113
+ "source-map": "^0.7.4",
114
+ "xxhash-wasm": "^1.0.1"
115
+ },
116
+ "devDependencies": {
117
+ "@cloudflare/types": "^6.18.4",
118
+ "@databases/split-sql-query": "^1.0.3",
119
+ "@databases/sql": "^3.2.0",
120
+ "@iarna/toml": "^3.0.0",
121
+ "@microsoft/api-extractor": "^7.28.3",
122
+ "@miniflare/tre": "^3.0.0-next.5",
123
+ "@types/better-sqlite3": "^7.6.0",
124
+ "@types/busboy": "^1.5.0",
125
+ "@types/command-exists": "^1.2.0",
126
+ "@types/express": "^4.17.13",
127
+ "@types/glob-to-regexp": "0.4.1",
128
+ "@types/javascript-time-ago": "^2.0.3",
129
+ "@types/mime": "^2.0.3",
130
+ "@types/prompts": "^2.0.14",
131
+ "@types/react": "^17.0.37",
132
+ "@types/serve-static": "^1.13.10",
133
+ "@types/signal-exit": "^3.0.1",
134
+ "@types/supports-color": "^8.1.1",
135
+ "@types/ws": "^8.5.3",
136
+ "@types/yargs": "^17.0.10",
137
+ "@webcontainer/env": "^1.0.1",
138
+ "body-parser": "^1.20.0",
139
+ "clipboardy": "^3.0.0",
140
+ "cmd-shim": "^4.1.0",
141
+ "command-exists": "^1.2.9",
142
+ "concurrently": "^7.2.2",
143
+ "devtools-protocol": "^0.0.955664",
144
+ "dotenv": "^16.0.0",
145
+ "execa": "^6.1.0",
146
+ "express": "^4.18.1",
147
+ "finalhandler": "^1.2.0",
148
+ "find-up": "^6.3.0",
149
+ "get-port": "^6.1.2",
150
+ "glob-to-regexp": "0.4.1",
151
+ "http-terminator": "^3.2.0",
152
+ "ignore": "^5.2.0",
153
+ "ink": "^3.2.0",
154
+ "ink-select-input": "^4.2.1",
155
+ "ink-spinner": "^4.0.3",
156
+ "ink-table": "^3.0.0",
157
+ "ink-testing-library": "^2.1.0",
158
+ "ink-text-input": "^4.0.3",
159
+ "is-ci": "^3.0.1",
160
+ "javascript-time-ago": "^2.5.4",
161
+ "jest-fetch-mock": "^3.0.3",
162
+ "jest-websocket-mock": "^2.3.0",
163
+ "mime": "^3.0.0",
164
+ "minimatch": "^5.1.0",
165
+ "msw": "^0.47.1",
166
+ "npx-import": "^1.1.3",
167
+ "open": "^8.4.0",
168
+ "p-queue": "^7.2.0",
169
+ "pretty-bytes": "^6.0.0",
170
+ "prompts": "^2.4.2",
171
+ "react": "^17.0.2",
172
+ "react-error-boundary": "^3.1.4",
173
+ "remove-accents-esm": "^0.0.1",
174
+ "semiver": "^1.1.0",
175
+ "serve-static": "^1.15.0",
176
+ "signal-exit": "^3.0.7",
177
+ "supports-color": "^9.2.2",
178
+ "timeago.js": "^4.0.2",
179
+ "tmp-promise": "^3.0.3",
180
+ "ts-dedent": "^2.2.0",
181
+ "undici": "^5.11.0",
182
+ "update-check": "^1.5.4",
183
+ "ws": "^8.5.0",
184
+ "xdg-app-paths": "^7.3.0",
185
+ "yargs": "^17.4.1"
186
+ },
187
+ "optionalDependencies": {
188
+ "fsevents": "~2.3.2"
189
+ },
190
+ "engines": {
191
+ "node": ">=16.13.0"
192
+ }
150
193
  }
@@ -0,0 +1,25 @@
1
+ import { domainUsesAccess, getAccessToken } from "../user/access";
2
+ import { msw, mswAccessHandlers } from "./helpers/msw";
3
+
4
+ describe("access", () => {
5
+ beforeEach(() => {
6
+ msw.use(...mswAccessHandlers);
7
+ });
8
+
9
+ describe("basic", () => {
10
+ it("should correctly detect an access protected domain", async () => {
11
+ expect(await domainUsesAccess("access-protected.com")).toBeTruthy();
12
+ expect(await domainUsesAccess("not-access-protected.com")).toBeFalsy();
13
+ });
14
+ it("should not fail without cloudflared installed", async () => {
15
+ expect(await getAccessToken("not-access-protected.com")).toBeFalsy();
16
+ });
17
+ it("should error without cloudflared installed on an access protected domain", async () => {
18
+ await expect(getAccessToken("access-protected.com")).rejects.toEqual(
19
+ new Error(
20
+ "To use Wrangler with Cloudflare Access, please install `cloudflared` from https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/installation"
21
+ )
22
+ );
23
+ });
24
+ });
25
+ });
@@ -0,0 +1,209 @@
1
+ import * as fs from "node:fs";
2
+ import { Request } from "undici";
3
+ import { unstable_dev } from "../api";
4
+ import { runInTempDir } from "./helpers/run-in-tmp";
5
+
6
+ jest.unmock("undici");
7
+
8
+ describe.skip("unstable_dev", () => {
9
+ it("should return Hello World", async () => {
10
+ const worker = await unstable_dev(
11
+ "src/__tests__/helpers/worker-scripts/hello-world-worker.js",
12
+ {},
13
+ { disableExperimentalWarning: true }
14
+ );
15
+ const resp = await worker.fetch();
16
+ if (resp) {
17
+ const text = await resp.text();
18
+ expect(text).toMatchInlineSnapshot(`"Hello World!"`);
19
+ }
20
+ await worker.stop();
21
+ });
22
+
23
+ it("should return the port that the server started on (1)", async () => {
24
+ const worker = await unstable_dev(
25
+ "src/__tests__/helpers/worker-scripts/hello-world-worker.js",
26
+ {},
27
+ { disableExperimentalWarning: true }
28
+ );
29
+ expect(worker.port).toBeGreaterThan(0);
30
+ await worker.stop();
31
+ });
32
+
33
+ it("should return the port that the server started on (2)", async () => {
34
+ const worker = await unstable_dev(
35
+ "src/__tests__/helpers/worker-scripts/hello-world-worker.js",
36
+ { port: 9191 },
37
+ { disableExperimentalWarning: true }
38
+ );
39
+ expect(worker.port).toBe(9191);
40
+ await worker.stop();
41
+ });
42
+ });
43
+
44
+ describe("unstable dev fetch input protocol", () => {
45
+ it("should use http localProtocol", async () => {
46
+ const worker = await unstable_dev(
47
+ "src/__tests__/helpers/worker-scripts/hello-world-worker.js",
48
+ { localProtocol: "http" },
49
+ { disableExperimentalWarning: true }
50
+ );
51
+ const res = await worker.fetch();
52
+ if (res) {
53
+ const text = await res.text();
54
+ expect(text).toMatchInlineSnapshot(`"Hello World!"`);
55
+ }
56
+ await worker.stop();
57
+ });
58
+
59
+ it("should use undefined localProtocol", async () => {
60
+ const worker = await unstable_dev(
61
+ "src/__tests__/helpers/worker-scripts/hello-world-worker.js",
62
+ { localProtocol: undefined },
63
+ { disableExperimentalWarning: true }
64
+ );
65
+ const res = await worker.fetch();
66
+ if (res) {
67
+ const text = await res.text();
68
+ expect(text).toMatchInlineSnapshot(`"Hello World!"`);
69
+ }
70
+ await worker.stop();
71
+ });
72
+ });
73
+
74
+ describe("unstable dev fetch input parsing", () => {
75
+ runInTempDir();
76
+
77
+ it("should pass in a request object unchanged", async () => {
78
+ const scriptContent = `
79
+ export default {
80
+ fetch(request, env, ctx) {
81
+ const url = new URL(request.url);
82
+ if (url.pathname === "/test") {
83
+ if (request.method === "POST") {
84
+ return new Response("requestPOST");
85
+ }
86
+ return new Response("requestGET");
87
+ }
88
+ return new Response('Hello world');
89
+ }
90
+ };
91
+ `;
92
+ fs.writeFileSync("index.js", scriptContent);
93
+ const port = 21213;
94
+ const worker = await unstable_dev(
95
+ "index.js",
96
+ { port },
97
+ { disableExperimentalWarning: true }
98
+ );
99
+ const req = new Request("http://0.0.0.0:21213/test", {
100
+ method: "POST",
101
+ });
102
+ const resp = await worker.fetch(req);
103
+ let text;
104
+ if (resp) text = await resp.text();
105
+ expect(text).toMatchInlineSnapshot(`"requestPOST"`);
106
+ await worker.stop();
107
+ });
108
+
109
+ it("should strip back to pathname for URL objects", async () => {
110
+ const scriptContent = `
111
+ export default {
112
+ fetch(request, env, ctx) {
113
+ const url = new URL(request.url);
114
+ if (url.pathname === "/test") {
115
+ return new Response("request");
116
+ }
117
+ return new Response('Hello world');
118
+ }
119
+ };
120
+ `;
121
+ fs.writeFileSync("index.js", scriptContent);
122
+ const worker = await unstable_dev(
123
+ "index.js",
124
+ {},
125
+ { disableExperimentalWarning: true }
126
+ );
127
+ const url = new URL("http://localhost:80/test");
128
+ const resp = await worker.fetch(url);
129
+ let text;
130
+ if (resp) text = await resp.text();
131
+ expect(text).toMatchInlineSnapshot(`"request"`);
132
+ await worker.stop();
133
+ });
134
+
135
+ it("should allow full url passed in string, and stripped back to pathname", async () => {
136
+ const scriptContent = `
137
+ export default {
138
+ fetch(request, env, ctx) {
139
+ const url = new URL(request.url);
140
+ if (url.pathname === "/test") {
141
+ return new Response("request");
142
+ }
143
+ return new Response('Hello world');
144
+ }
145
+ };
146
+ `;
147
+ fs.writeFileSync("index.js", scriptContent);
148
+ const worker = await unstable_dev(
149
+ "index.js",
150
+ {},
151
+ { disableExperimentalWarning: true }
152
+ );
153
+ const resp = await worker.fetch("http://example.com/test");
154
+ let text;
155
+ if (resp) text = await resp.text();
156
+ expect(text).toMatchInlineSnapshot(`"request"`);
157
+ await worker.stop();
158
+ });
159
+
160
+ it("should allow pathname to be passed in", async () => {
161
+ const scriptContent = `
162
+ export default {
163
+ fetch(request, env, ctx) {
164
+ const url = new URL(request.url);
165
+ if (url.pathname === "/test") {
166
+ return new Response("request");
167
+ }
168
+ return new Response('Hello world');
169
+ }
170
+ };
171
+ `;
172
+ fs.writeFileSync("index.js", scriptContent);
173
+ const worker = await unstable_dev(
174
+ "index.js",
175
+ {},
176
+ { disableExperimentalWarning: true }
177
+ );
178
+ const resp = await worker.fetch("/test");
179
+ let text;
180
+ if (resp) text = await resp.text();
181
+ expect(text).toMatchInlineSnapshot(`"request"`);
182
+ await worker.stop();
183
+ });
184
+
185
+ it("should allow no input be passed in", async () => {
186
+ const scriptContent = `
187
+ export default {
188
+ fetch(request, env, ctx) {
189
+ const url = new URL(request.url);
190
+ if (url.pathname === "/test") {
191
+ return new Response("request");
192
+ }
193
+ return new Response('Hello world');
194
+ }
195
+ };
196
+ `;
197
+ fs.writeFileSync("index.js", scriptContent);
198
+ const worker = await unstable_dev(
199
+ "index.js",
200
+ {},
201
+ { disableExperimentalWarning: true }
202
+ );
203
+ const resp = await worker.fetch("");
204
+ let text;
205
+ if (resp) text = await resp.text();
206
+ expect(text).toMatchInlineSnapshot(`"Hello world"`);
207
+ await worker.stop();
208
+ });
209
+ });
@@ -0,0 +1,56 @@
1
+ import { unstable_dev } from "../api";
2
+ import { fetch } from "undici";
3
+
4
+ // jest.unmock("undici");
5
+
6
+ /**
7
+ * a huge caveat to how testing multi-worker scripts works:
8
+ * you can't shutdown the first worker you spun up, or it'll kill the devRegistry
9
+ */
10
+ describe.skip("multi-worker testing", () => {
11
+ let childWorker;
12
+ let parentWorker;
13
+
14
+ beforeAll(async () => {
15
+ childWorker = await unstable_dev(
16
+ "src/__tests__/helpers/worker-scripts/hello-world-worker.js",
17
+ { config: "src/__tests__/helpers/worker-scripts/child-wrangler.toml" },
18
+ { disableExperimentalWarning: true }
19
+ );
20
+ parentWorker = await unstable_dev(
21
+ "src/__tests__/helpers/worker-scripts/parent-worker.js",
22
+ { config: "src/__tests__/helpers/worker-scripts/parent-wrangler.toml" },
23
+ { disableExperimentalWarning: true }
24
+ );
25
+ });
26
+
27
+ afterAll(async () => {
28
+ await childWorker.stop();
29
+ await parentWorker.stop();
30
+ });
31
+
32
+ it("parentWorker and childWorker should be added devRegistry", async () => {
33
+ const resp = await fetch("http://localhost:6284/workers");
34
+ if (resp) {
35
+ const parsedResp = await resp.json();
36
+ expect(parsedResp.parent).toBeTruthy();
37
+ expect(parsedResp.child).toBeTruthy();
38
+ }
39
+ });
40
+
41
+ it("childWorker should return Hello World itself", async () => {
42
+ const resp = await childWorker.fetch();
43
+ if (resp) {
44
+ const text = await resp.text();
45
+ expect(text).toMatchInlineSnapshot(`"Hello World!"`);
46
+ }
47
+ });
48
+
49
+ it("parentWorker should return Hello World by invoking the child worker", async () => {
50
+ const resp = await parentWorker.fetch();
51
+ if (resp) {
52
+ const parsedResp = await resp.text();
53
+ expect(parsedResp).toEqual("Parent worker sees: Hello World!");
54
+ }
55
+ });
56
+ });