wrangler 0.0.0-e3278fa → 0.0.0-e33294b0

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 (322) hide show
  1. package/README.md +24 -4
  2. package/bin/wrangler.js +170 -62
  3. package/kv-asset-handler.js +1 -0
  4. package/miniflare-dist/index.mjs +1499 -34
  5. package/package.json +193 -153
  6. package/src/__tests__/access.test.ts +25 -0
  7. package/src/__tests__/api-dev.test.ts +238 -0
  8. package/src/__tests__/api-devregistry.test.js +64 -0
  9. package/src/__tests__/api.test.ts +80 -0
  10. package/src/__tests__/config-cache-without-cache-dir.test.ts +38 -0
  11. package/src/__tests__/config-cache.test.ts +30 -24
  12. package/src/__tests__/configuration.test.ts +4222 -3397
  13. package/src/__tests__/d1/d1.test.ts +82 -0
  14. package/src/__tests__/d1/execute.test.ts +64 -0
  15. package/src/__tests__/d1/migrate.test.ts +155 -0
  16. package/src/__tests__/d1/splitter.test.ts +255 -0
  17. package/src/__tests__/delete.test.ts +266 -0
  18. package/src/__tests__/deployments.test.ts +129 -0
  19. package/src/__tests__/dev.test.tsx +1560 -956
  20. package/src/__tests__/generate.test.ts +238 -0
  21. package/src/__tests__/get-host-from-url.test.ts +16 -0
  22. package/src/__tests__/guess-worker-format.test.ts +68 -68
  23. package/src/__tests__/helpers/cmd-shim.d.ts +6 -6
  24. package/src/__tests__/helpers/end-event-loop.ts +6 -0
  25. package/src/__tests__/helpers/mock-account-id.ts +24 -24
  26. package/src/__tests__/helpers/mock-auth-domain.ts +20 -0
  27. package/src/__tests__/helpers/mock-bin.ts +20 -20
  28. package/src/__tests__/helpers/mock-console.ts +58 -39
  29. package/src/__tests__/helpers/mock-dialogs.ts +88 -79
  30. package/src/__tests__/helpers/mock-get-pages-upload-token.ts +25 -0
  31. package/src/__tests__/helpers/mock-get-zone-from-host.ts +11 -0
  32. package/src/__tests__/helpers/mock-http-server.ts +30 -30
  33. package/src/__tests__/helpers/mock-istty.ts +65 -18
  34. package/src/__tests__/helpers/mock-known-routes.ts +12 -0
  35. package/src/__tests__/helpers/mock-kv.ts +41 -28
  36. package/src/__tests__/helpers/mock-oauth-flow.ts +241 -233
  37. package/src/__tests__/helpers/mock-process.ts +34 -0
  38. package/src/__tests__/helpers/mock-set-timeout.ts +16 -0
  39. package/src/__tests__/helpers/mock-stdin.ts +82 -77
  40. package/src/__tests__/helpers/mock-web-socket.ts +21 -21
  41. package/src/__tests__/helpers/msw/blob-worker.cjs +19 -0
  42. package/src/__tests__/helpers/msw/handlers/access.ts +13 -0
  43. package/src/__tests__/helpers/msw/handlers/deployments.ts +93 -0
  44. package/src/__tests__/helpers/msw/handlers/namespaces.ts +81 -0
  45. package/src/__tests__/helpers/msw/handlers/oauth.ts +31 -0
  46. package/src/__tests__/helpers/msw/handlers/r2.ts +60 -0
  47. package/src/__tests__/helpers/msw/handlers/script.ts +56 -0
  48. package/src/__tests__/helpers/msw/handlers/user.ts +52 -0
  49. package/src/__tests__/helpers/msw/handlers/zones.ts +20 -0
  50. package/src/__tests__/helpers/msw/index.ts +50 -0
  51. package/src/__tests__/helpers/msw/read-file-sync.js +61 -0
  52. package/src/__tests__/helpers/run-in-tmp.ts +27 -28
  53. package/src/__tests__/helpers/run-wrangler.ts +8 -8
  54. package/src/__tests__/helpers/string-dynamic-values-matcher.ts +28 -0
  55. package/src/__tests__/helpers/worker-scripts/child-wrangler.toml +1 -0
  56. package/src/__tests__/helpers/worker-scripts/hello-world-worker.js +5 -0
  57. package/src/__tests__/helpers/worker-scripts/hello-world-wrangler.toml +1 -0
  58. package/src/__tests__/helpers/worker-scripts/parent-worker.js +8 -0
  59. package/src/__tests__/helpers/worker-scripts/parent-wrangler.toml +5 -0
  60. package/src/__tests__/helpers/write-worker-source.ts +16 -16
  61. package/src/__tests__/helpers/write-wrangler-toml.ts +9 -9
  62. package/src/__tests__/https-options.test.ts +142 -109
  63. package/src/__tests__/index.test.ts +254 -236
  64. package/src/__tests__/init.test.ts +3135 -1608
  65. package/src/__tests__/jest.setup.ts +148 -50
  66. package/src/__tests__/kv.test.ts +1789 -1471
  67. package/src/__tests__/logger.test.ts +100 -74
  68. package/src/__tests__/logout.test.ts +47 -0
  69. package/src/__tests__/metrics.test.ts +493 -0
  70. package/src/__tests__/middleware.scheduled.test.ts +145 -0
  71. package/src/__tests__/middleware.test.ts +815 -0
  72. package/src/__tests__/mtls-certificates.test.ts +585 -0
  73. package/src/__tests__/package-manager.test.ts +303 -303
  74. package/src/__tests__/pages/deployment-list.test.ts +78 -0
  75. package/src/__tests__/pages/functions-build.test.ts +402 -0
  76. package/src/__tests__/pages/pages.test.ts +81 -0
  77. package/src/__tests__/pages/project-create.test.ts +63 -0
  78. package/src/__tests__/pages/project-list.test.ts +108 -0
  79. package/src/__tests__/pages/project-upload.test.ts +481 -0
  80. package/src/__tests__/pages/publish.test.ts +2745 -0
  81. package/src/__tests__/pages-deployment-tail.test.ts +955 -0
  82. package/src/__tests__/parse.test.ts +358 -252
  83. package/src/__tests__/paths.test.ts +39 -0
  84. package/src/__tests__/publish.test.ts +8023 -5629
  85. package/src/__tests__/pubsub.test.ts +493 -0
  86. package/src/__tests__/queues.test.ts +529 -0
  87. package/src/__tests__/r2.test.ts +369 -228
  88. package/src/__tests__/route.test.ts +18 -18
  89. package/src/__tests__/secret.test.ts +681 -469
  90. package/src/__tests__/tail.test.ts +835 -567
  91. package/src/__tests__/test-old-node-version.js +31 -0
  92. package/src/__tests__/tsconfig-sanity.ts +12 -0
  93. package/src/__tests__/tsconfig.json +8 -0
  94. package/src/__tests__/tsconfig.tsbuildinfo +1 -0
  95. package/src/__tests__/type-generation.test.ts +233 -0
  96. package/src/__tests__/user.test.ts +107 -120
  97. package/src/__tests__/utils-collectKeyValues.test.ts +47 -0
  98. package/src/__tests__/validate-dev-props.test.ts +56 -0
  99. package/src/__tests__/version.test.ts +35 -0
  100. package/src/__tests__/whoami.test.tsx +165 -132
  101. package/src/__tests__/worker-namespace.test.ts +339 -0
  102. package/src/abort.d.ts +1 -1
  103. package/src/api/dev.ts +328 -0
  104. package/src/api/index.ts +11 -0
  105. package/src/api/mtls-certificate.ts +148 -0
  106. package/src/api/pages/create-worker-bundle-contents.ts +75 -0
  107. package/src/api/pages/index.ts +5 -0
  108. package/src/api/pages/publish.tsx +368 -0
  109. package/src/bundle-reporter.ts +68 -0
  110. package/src/bundle.ts +839 -160
  111. package/src/cfetch/index.ts +120 -83
  112. package/src/cfetch/internal.ts +208 -92
  113. package/src/cli.ts +23 -8
  114. package/src/config/config.ts +244 -196
  115. package/src/config/diagnostics.ts +61 -61
  116. package/src/config/environment.ts +523 -357
  117. package/src/config/index.ts +346 -196
  118. package/src/config/validation-helpers.ts +379 -366
  119. package/src/config/validation.ts +2026 -1367
  120. package/src/config-cache.ts +81 -41
  121. package/src/create-worker-preview.ts +239 -142
  122. package/src/create-worker-upload-form.ts +318 -238
  123. package/src/d1/backups.tsx +215 -0
  124. package/src/d1/constants.ts +2 -0
  125. package/src/d1/create.tsx +64 -0
  126. package/src/d1/delete.ts +53 -0
  127. package/src/d1/execute.tsx +354 -0
  128. package/src/d1/formatTimeAgo.ts +14 -0
  129. package/src/d1/index.ts +100 -0
  130. package/src/d1/list.tsx +60 -0
  131. package/src/d1/migrations/apply.tsx +206 -0
  132. package/src/d1/migrations/create.tsx +76 -0
  133. package/src/d1/migrations/helpers.ts +172 -0
  134. package/src/d1/migrations/index.ts +3 -0
  135. package/src/d1/migrations/list.tsx +92 -0
  136. package/src/d1/migrations/options.ts +23 -0
  137. package/src/d1/options.ts +22 -0
  138. package/src/d1/splitter.ts +161 -0
  139. package/src/d1/types.ts +25 -0
  140. package/src/d1/utils.ts +49 -0
  141. package/src/delete.ts +100 -0
  142. package/src/deployments.ts +116 -0
  143. package/src/deprecated/index.ts +144 -0
  144. package/src/dev/dev-vars.ts +20 -17
  145. package/src/dev/dev.tsx +533 -345
  146. package/src/dev/get-local-persistence-path.ts +31 -0
  147. package/src/dev/local.tsx +903 -302
  148. package/src/dev/remote.tsx +620 -225
  149. package/src/dev/start-server.ts +538 -0
  150. package/src/dev/use-esbuild.ts +184 -97
  151. package/src/dev/validate-dev-props.ts +31 -0
  152. package/src/dev-registry.ts +201 -0
  153. package/src/dev.tsx +914 -0
  154. package/src/dialogs.ts +136 -0
  155. package/src/dispatch-namespace.ts +211 -0
  156. package/src/docs/index.ts +97 -0
  157. package/src/durable.ts +87 -87
  158. package/src/entry.ts +236 -230
  159. package/src/environment-variables/factory.ts +88 -0
  160. package/src/environment-variables/misc-variables.ts +30 -0
  161. package/src/errors.ts +6 -6
  162. package/src/generate/index.ts +298 -0
  163. package/src/git-client.ts +135 -0
  164. package/src/global-wrangler-config-path.ts +26 -0
  165. package/src/https-options.ts +84 -80
  166. package/src/index.ts +705 -0
  167. package/src/init.ts +1022 -0
  168. package/src/inspect.ts +698 -593
  169. package/src/intl-polyfill.d.ts +123 -123
  170. package/src/is-ci.ts +14 -0
  171. package/src/is-interactive.ts +16 -0
  172. package/src/jest.d.ts +4 -0
  173. package/src/kv/helpers.ts +430 -0
  174. package/src/kv/index.ts +594 -0
  175. package/src/logger.ts +80 -42
  176. package/src/metrics/index.ts +5 -0
  177. package/src/metrics/metrics-config.ts +239 -0
  178. package/src/metrics/metrics-dispatcher.ts +96 -0
  179. package/src/metrics/metrics-usage-headers.ts +24 -0
  180. package/src/metrics/send-event.ts +98 -0
  181. package/src/miniflare-cli/assets.ts +250 -0
  182. package/src/miniflare-cli/index.ts +202 -33
  183. package/src/miniflare-cli/request-context.ts +18 -18
  184. package/src/miniflare-cli/tsconfig.json +9 -0
  185. package/src/miniflare-cli/tsconfig.tsbuildinfo +1 -0
  186. package/src/miniflare-cli/types.ts +11 -0
  187. package/src/module-collection.ts +221 -212
  188. package/src/mtls-certificate/cli.ts +155 -0
  189. package/src/open-in-browser.ts +4 -6
  190. package/src/package-manager.ts +173 -128
  191. package/src/pages/build.ts +232 -0
  192. package/src/pages/buildFunctions.ts +130 -0
  193. package/src/pages/constants.ts +18 -0
  194. package/src/pages/deployment-tails.ts +281 -0
  195. package/src/pages/deployments.tsx +86 -0
  196. package/src/pages/dev.ts +716 -0
  197. package/src/pages/errors.ts +66 -0
  198. package/src/pages/functions/buildPlugin.ts +90 -0
  199. package/src/pages/functions/buildWorker.ts +288 -0
  200. package/{pages → src/pages}/functions/filepath-routing.test.ts +113 -113
  201. package/src/pages/functions/filepath-routing.ts +189 -0
  202. package/src/pages/functions/identifiers.ts +78 -0
  203. package/src/pages/functions/routes-consolidation.test.ts +250 -0
  204. package/src/pages/functions/routes-consolidation.ts +73 -0
  205. package/src/pages/functions/routes-transformation.test.ts +282 -0
  206. package/src/pages/functions/routes-transformation.ts +115 -0
  207. package/src/pages/functions/routes-validation.test.ts +403 -0
  208. package/src/pages/functions/routes-validation.ts +202 -0
  209. package/src/pages/functions/routes.ts +151 -0
  210. package/src/pages/functions/tsconfig.json +8 -0
  211. package/src/pages/functions/tsconfig.tsbuildinfo +1 -0
  212. package/src/pages/functions.ts +86 -0
  213. package/src/pages/hash.ts +13 -0
  214. package/src/pages/index.ts +102 -0
  215. package/src/pages/projects.tsx +162 -0
  216. package/src/pages/prompt-select-project.tsx +31 -0
  217. package/src/pages/publish.tsx +276 -0
  218. package/src/pages/types.ts +46 -0
  219. package/src/pages/upload.tsx +449 -0
  220. package/src/pages/utils.ts +23 -0
  221. package/src/parse.ts +232 -126
  222. package/src/paths.ts +53 -8
  223. package/src/proxy.ts +623 -407
  224. package/src/publish/index.ts +274 -0
  225. package/src/publish/publish.ts +1065 -0
  226. package/src/pubsub/index.ts +286 -0
  227. package/src/pubsub/pubsub-commands.ts +623 -0
  228. package/src/queues/cli/commands/consumer/add.ts +65 -0
  229. package/src/queues/cli/commands/consumer/index.ts +19 -0
  230. package/src/queues/cli/commands/consumer/remove.ts +31 -0
  231. package/src/queues/cli/commands/create.ts +25 -0
  232. package/src/queues/cli/commands/delete.ts +26 -0
  233. package/src/queues/cli/commands/index.ts +35 -0
  234. package/src/queues/cli/commands/list.ts +25 -0
  235. package/src/queues/client.ts +135 -0
  236. package/src/queues/utils.ts +18 -0
  237. package/src/r2/constants.ts +4 -0
  238. package/src/r2/helpers.ts +131 -0
  239. package/src/r2/index.ts +289 -0
  240. package/src/routes.ts +140 -0
  241. package/src/secret/index.ts +375 -0
  242. package/src/selfsigned.d.ts +23 -23
  243. package/src/sites.ts +372 -0
  244. package/src/tail/createTail.ts +406 -0
  245. package/src/tail/filters.ts +109 -111
  246. package/src/tail/index.ts +208 -296
  247. package/src/tail/printing.ts +101 -46
  248. package/src/tsconfig-sanity.ts +16 -0
  249. package/src/type-generation.ts +181 -0
  250. package/src/update-check.ts +11 -11
  251. package/src/user/access.ts +68 -0
  252. package/src/user/auth-variables.ts +113 -0
  253. package/src/user/choose-account.tsx +39 -0
  254. package/src/user/generate-auth-url.ts +33 -0
  255. package/src/user/generate-random-state.ts +16 -0
  256. package/src/user/index.ts +2 -0
  257. package/src/user/user.ts +1233 -0
  258. package/src/utils/collectKeyValues.ts +14 -0
  259. package/src/whoami.ts +135 -0
  260. package/src/worker.ts +183 -107
  261. package/src/yargs-types.ts +37 -0
  262. package/src/zones.ts +158 -40
  263. package/templates/__tests__/pages-dev-util.test.ts +128 -0
  264. package/templates/__tests__/tsconfig-sanity.ts +12 -0
  265. package/templates/__tests__/tsconfig.json +8 -0
  266. package/templates/__tests__/tsconfig.tsbuildinfo +1 -0
  267. package/templates/checked-fetch.js +23 -0
  268. package/templates/d1-beta-facade.js +241 -0
  269. package/templates/facade.d.ts +14 -0
  270. package/templates/first-party-worker-module-facade.ts +19 -0
  271. package/templates/format-dev-errors.ts +34 -0
  272. package/templates/init-tests/test-jest-new-worker.js +23 -0
  273. package/templates/init-tests/test-vitest-new-worker.js +24 -0
  274. package/templates/init-tests/test-vitest-new-worker.ts +25 -0
  275. package/templates/middleware/common.ts +62 -0
  276. package/templates/middleware/loader-modules.ts +84 -0
  277. package/templates/middleware/loader-sw.ts +233 -0
  278. package/templates/middleware/middleware-miniflare3-json-error.ts +20 -0
  279. package/templates/middleware/middleware-pretty-error.ts +40 -0
  280. package/templates/middleware/middleware-scheduled.ts +15 -0
  281. package/templates/new-worker-scheduled.js +3 -3
  282. package/templates/new-worker-scheduled.ts +15 -15
  283. package/templates/new-worker.js +3 -3
  284. package/templates/new-worker.ts +18 -15
  285. package/templates/no-op-worker.js +10 -0
  286. package/templates/pages-dev-pipeline.ts +31 -0
  287. package/templates/pages-dev-util.ts +52 -0
  288. package/templates/pages-shim.ts +12 -0
  289. package/templates/pages-template-plugin.ts +176 -0
  290. package/templates/pages-template-worker.ts +189 -0
  291. package/templates/serve-static-assets.ts +66 -0
  292. package/templates/service-bindings-module-facade.js +55 -0
  293. package/templates/service-bindings-sw-facade.js +42 -0
  294. package/templates/tsconfig-sanity.ts +11 -0
  295. package/templates/tsconfig.init.json +106 -0
  296. package/templates/tsconfig.json +6 -103
  297. package/templates/tsconfig.tsbuildinfo +1 -0
  298. package/wrangler-dist/cli.d.ts +1108 -0
  299. package/wrangler-dist/cli.js +109524 -90537
  300. package/wrangler-dist/wasm-sync.wasm +0 -0
  301. package/pages/functions/buildPlugin.ts +0 -105
  302. package/pages/functions/buildWorker.ts +0 -151
  303. package/pages/functions/filepath-routing.ts +0 -189
  304. package/pages/functions/identifiers.ts +0 -78
  305. package/pages/functions/routes.ts +0 -156
  306. package/pages/functions/template-plugin.ts +0 -147
  307. package/pages/functions/template-worker.ts +0 -143
  308. package/src/__tests__/helpers/faye-websocket.d.ts +0 -6
  309. package/src/__tests__/helpers/mock-cfetch.ts +0 -211
  310. package/src/__tests__/pages.test.ts +0 -754
  311. package/src/dialogs.tsx +0 -135
  312. package/src/environment-variables.ts +0 -35
  313. package/src/index.tsx +0 -2846
  314. package/src/kv.ts +0 -408
  315. package/src/miniflare-cli/enum-keys.ts +0 -17
  316. package/src/pages.tsx +0 -2093
  317. package/src/publish.ts +0 -716
  318. package/src/r2.ts +0 -50
  319. package/src/sites.tsx +0 -326
  320. package/src/user.tsx +0 -1214
  321. package/src/whoami.tsx +0 -71
  322. package/templates/static-asset-facade.js +0 -43
package/package.json CHANGED
@@ -1,155 +1,195 @@
1
1
  {
2
- "name": "wrangler",
3
- "version": "0.0.0-e3278fa",
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/wrangler2/issues"
13
- },
14
- "homepage": "https://github.com/cloudflare/wrangler2#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
- "@cloudflare/kv-asset-handler": "^0.2.0",
40
- "@esbuild-plugins/node-globals-polyfill": "^0.1.1",
41
- "@esbuild-plugins/node-modules-polyfill": "^0.1.4",
42
- "blake3-wasm": "^2.1.5",
43
- "esbuild": "0.14.34",
44
- "miniflare": "^2.5.0",
45
- "nanoid": "^3.3.3",
46
- "path-to-regexp": "^6.2.0",
47
- "selfsigned": "^2.0.1",
48
- "semiver": "^1.1.0",
49
- "xxhash-wasm": "^1.0.1"
50
- },
51
- "optionalDependencies": {
52
- "fsevents": "~2.3.2"
53
- },
54
- "devDependencies": {
55
- "@iarna/toml": "^3.0.0",
56
- "@types/command-exists": "^1.2.0",
57
- "@types/glob-to-regexp": "0.4.1",
58
- "@types/mime": "^2.0.3",
59
- "@types/prompts": "^2.0.14",
60
- "@types/react": "^17.0.37",
61
- "@types/serve-static": "^1.13.10",
62
- "@types/signal-exit": "^3.0.1",
63
- "@types/supports-color": "^8.1.1",
64
- "@types/ws": "^8.5.3",
65
- "@types/yargs": "^17.0.10",
66
- "@webcontainer/env": "^1.0.1",
67
- "chokidar": "^3.5.3",
68
- "clipboardy": "^3.0.0",
69
- "cmd-shim": "^4.1.0",
70
- "command-exists": "^1.2.9",
71
- "devtools-protocol": "^0.0.955664",
72
- "dotenv": "^16.0.0",
73
- "execa": "^6.1.0",
74
- "faye-websocket": "^0.11.4",
75
- "finalhandler": "^1.2.0",
76
- "find-up": "^6.3.0",
77
- "get-port": "^6.1.2",
78
- "glob-to-regexp": "0.4.1",
79
- "http-terminator": "^3.2.0",
80
- "ignore": "^5.2.0",
81
- "ink": "^3.2.0",
82
- "ink-select-input": "^4.2.1",
83
- "ink-spinner": "^4.0.3",
84
- "ink-table": "^3.0.0",
85
- "ink-testing-library": "^2.1.0",
86
- "ink-text-input": "^4.0.3",
87
- "jest-fetch-mock": "^3.0.3",
88
- "jest-websocket-mock": "^2.3.0",
89
- "mime": "^3.0.0",
90
- "open": "^8.4.0",
91
- "p-queue": "^7.2.0",
92
- "pretty-bytes": "^6.0.0",
93
- "prompts": "^2.4.2",
94
- "react": "^17.0.2",
95
- "react-error-boundary": "^3.1.4",
96
- "serve-static": "^1.15.0",
97
- "signal-exit": "^3.0.7",
98
- "supports-color": "^9.2.2",
99
- "timeago.js": "^4.0.2",
100
- "tmp-promise": "^3.0.3",
101
- "ts-dedent": "^2.2.0",
102
- "undici": "^5.3.0",
103
- "update-check": "^1.5.4",
104
- "ws": "^8.5.0",
105
- "yargs": "^17.4.1"
106
- },
107
- "files": [
108
- "src",
109
- "bin",
110
- "pages",
111
- "miniflare-config-stubs",
112
- "miniflare-dist",
113
- "wrangler-dist",
114
- "templates",
115
- "vendor",
116
- "import_meta_url.js",
117
- "Cloudflare_CA.pem"
118
- ],
119
- "scripts": {
120
- "clean": "rm -rf wrangler-dist miniflare-dist",
121
- "check:type": "tsc",
122
- "bundle": "node -r esbuild-register scripts/bundle.ts",
123
- "build": "npm run clean && npm run bundle",
124
- "prepublishOnly": "SOURCEMAPS=false npm run build",
125
- "start": "npm run bundle && NODE_OPTIONS=--enable-source-maps ./bin/wrangler.js",
126
- "test": "jest --silent=false --verbose=true",
127
- "test-watch": "npm run test -- --runInBand --testTimeout=50000 --watch"
128
- },
129
- "engines": {
130
- "node": ">=16.7.0"
131
- },
132
- "jest": {
133
- "restoreMocks": true,
134
- "testTimeout": 30000,
135
- "testRegex": ".*.(test|spec)\\.[jt]sx?$",
136
- "transformIgnorePatterns": [
137
- "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)"
138
- ],
139
- "moduleNameMapper": {
140
- "clipboardy": "<rootDir>/src/__tests__/helpers/clipboardy-mock.js",
141
- "miniflare/cli": "<rootDir>/../../node_modules/miniflare/dist/src/cli.js"
142
- },
143
- "transform": {
144
- "^.+\\.c?(t|j)sx?$": [
145
- "esbuild-jest",
146
- {
147
- "sourcemap": true
148
- }
149
- ]
150
- },
151
- "setupFilesAfterEnv": [
152
- "<rootDir>/src/__tests__/jest.setup.ts"
153
- ]
154
- }
2
+ "name": "wrangler",
3
+ "version": "0.0.0-e33294b0",
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/workers-sdk#readme",
28
+ "bugs": {
29
+ "url": "https://github.com/cloudflare/workers-sdk/issues"
30
+ },
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "https://github.com/cloudflare/workers-sdk.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": "node -r esbuild-register scripts/tsc-all.ts",
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.12.0",
104
+ "@miniflare/d1": "2.12.0",
105
+ "@miniflare/durable-objects": "2.12.0",
106
+ "blake3-wasm": "^2.1.5",
107
+ "chokidar": "^3.5.3",
108
+ "esbuild": "0.16.3",
109
+ "miniflare": "2.12.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
+ "@cloudflare/workers-types": "^4.20221111.1",
119
+ "@iarna/toml": "^3.0.0",
120
+ "@microsoft/api-extractor": "^7.28.3",
121
+ "@miniflare/tre": "^3.0.0-next.8",
122
+ "@types/better-sqlite3": "^7.6.0",
123
+ "@types/busboy": "^1.5.0",
124
+ "@types/command-exists": "^1.2.0",
125
+ "@types/express": "^4.17.13",
126
+ "@types/glob-to-regexp": "0.4.1",
127
+ "@types/javascript-time-ago": "^2.0.3",
128
+ "@types/mime": "^2.0.3",
129
+ "@types/prompts": "^2.0.14",
130
+ "@types/react": "^17.0.37",
131
+ "@types/serve-static": "^1.13.10",
132
+ "@types/signal-exit": "^3.0.1",
133
+ "@types/supports-color": "^8.1.1",
134
+ "@types/ws": "^8.5.3",
135
+ "@types/yargs": "^17.0.10",
136
+ "@webcontainer/env": "^1.0.1",
137
+ "body-parser": "^1.20.0",
138
+ "chalk": "^2.4.2",
139
+ "cli-table3": "^0.6.3",
140
+ "clipboardy": "^3.0.0",
141
+ "cmd-shim": "^4.1.0",
142
+ "command-exists": "^1.2.9",
143
+ "concurrently": "^7.2.2",
144
+ "devtools-protocol": "^0.0.955664",
145
+ "dotenv": "^16.0.0",
146
+ "execa": "^6.1.0",
147
+ "express": "^4.18.1",
148
+ "finalhandler": "^1.2.0",
149
+ "find-up": "^6.3.0",
150
+ "get-port": "^6.1.2",
151
+ "glob-to-regexp": "0.4.1",
152
+ "http-terminator": "^3.2.0",
153
+ "ignore": "^5.2.0",
154
+ "ink": "^3.2.0",
155
+ "ink-select-input": "^4.2.1",
156
+ "ink-spinner": "^4.0.3",
157
+ "ink-table": "^3.0.0",
158
+ "ink-testing-library": "^2.1.0",
159
+ "ink-text-input": "^4.0.3",
160
+ "is-ci": "^3.0.1",
161
+ "javascript-time-ago": "^2.5.4",
162
+ "jest-fetch-mock": "^3.0.3",
163
+ "jest-websocket-mock": "^2.3.0",
164
+ "mime": "^3.0.0",
165
+ "minimatch": "^5.1.0",
166
+ "msw": "^0.49.1",
167
+ "npx-import": "^1.1.3",
168
+ "open": "^8.4.0",
169
+ "p-queue": "^7.2.0",
170
+ "pretty-bytes": "^6.0.0",
171
+ "prompts": "^2.4.2",
172
+ "react": "^17.0.2",
173
+ "react-error-boundary": "^3.1.4",
174
+ "remove-accents-esm": "^0.0.1",
175
+ "semiver": "^1.1.0",
176
+ "serve-static": "^1.15.0",
177
+ "signal-exit": "^3.0.7",
178
+ "supports-color": "^9.2.2",
179
+ "timeago.js": "^4.0.2",
180
+ "tmp-promise": "^3.0.3",
181
+ "ts-dedent": "^2.2.0",
182
+ "undici": "5.11.0",
183
+ "update-check": "^1.5.4",
184
+ "ws": "^8.5.0",
185
+ "xdg-app-paths": "^7.3.0",
186
+ "yargs": "^17.4.1",
187
+ "yoga-layout": "file:../../vendor/yoga-layout-2.0.0-beta.1.tgz"
188
+ },
189
+ "optionalDependencies": {
190
+ "fsevents": "~2.3.2"
191
+ },
192
+ "engines": {
193
+ "node": ">=16.13.0"
194
+ }
155
195
  }
@@ -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,238 @@
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("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
+ experimental: {
14
+ disableExperimentalWarning: true,
15
+ disableDevRegistry: true,
16
+ },
17
+ }
18
+ );
19
+ const resp = await worker.fetch();
20
+ if (resp) {
21
+ const text = await resp.text();
22
+ expect(text).toMatchInlineSnapshot(`"Hello World!"`);
23
+ }
24
+ await worker.stop();
25
+ });
26
+
27
+ it("should return the port that the server started on (1)", async () => {
28
+ const worker = await unstable_dev(
29
+ "src/__tests__/helpers/worker-scripts/hello-world-worker.js",
30
+ {
31
+ experimental: {
32
+ disableExperimentalWarning: true,
33
+ disableDevRegistry: true,
34
+ },
35
+ }
36
+ );
37
+ expect(worker.port).toBeGreaterThan(0);
38
+ await worker.stop();
39
+ });
40
+
41
+ it("should return the port that the server started on (2)", async () => {
42
+ const worker = await unstable_dev(
43
+ "src/__tests__/helpers/worker-scripts/hello-world-worker.js",
44
+ {
45
+ port: 9191,
46
+ experimental: {
47
+ disableExperimentalWarning: true,
48
+ disableDevRegistry: true,
49
+ },
50
+ }
51
+ );
52
+ expect(worker.port).toBe(9191);
53
+ await worker.stop();
54
+ });
55
+ });
56
+
57
+ describe("unstable dev fetch input protocol", () => {
58
+ it("should use http localProtocol", async () => {
59
+ const worker = await unstable_dev(
60
+ "src/__tests__/helpers/worker-scripts/hello-world-worker.js",
61
+ {
62
+ localProtocol: "http",
63
+ experimental: {
64
+ disableExperimentalWarning: true,
65
+ disableDevRegistry: true,
66
+ },
67
+ }
68
+ );
69
+ const res = await worker.fetch();
70
+ if (res) {
71
+ const text = await res.text();
72
+ expect(text).toMatchInlineSnapshot(`"Hello World!"`);
73
+ }
74
+ await worker.stop();
75
+ });
76
+
77
+ it("should use undefined localProtocol", async () => {
78
+ const worker = await unstable_dev(
79
+ "src/__tests__/helpers/worker-scripts/hello-world-worker.js",
80
+ {
81
+ localProtocol: undefined,
82
+ experimental: {
83
+ disableExperimentalWarning: true,
84
+ disableDevRegistry: true,
85
+ },
86
+ }
87
+ );
88
+ const res = await worker.fetch();
89
+ if (res) {
90
+ const text = await res.text();
91
+ expect(text).toMatchInlineSnapshot(`"Hello World!"`);
92
+ }
93
+ await worker.stop();
94
+ });
95
+ });
96
+
97
+ describe("unstable dev fetch input parsing", () => {
98
+ runInTempDir();
99
+
100
+ it("should pass in a request object unchanged", async () => {
101
+ const scriptContent = `
102
+ export default {
103
+ fetch(request, env, ctx) {
104
+ const url = new URL(request.url);
105
+ if (url.pathname === "/test") {
106
+ if (request.method === "POST") {
107
+ return new Response("requestPOST");
108
+ }
109
+ return new Response("requestGET");
110
+ }
111
+ return new Response('Hello world');
112
+ }
113
+ };
114
+ `;
115
+ fs.writeFileSync("index.js", scriptContent);
116
+ const port = 21213;
117
+ const worker = await unstable_dev("index.js", {
118
+ port,
119
+ experimental: {
120
+ disableExperimentalWarning: true,
121
+ disableDevRegistry: true,
122
+ },
123
+ });
124
+ const req = new Request("http://0.0.0.0:21213/test", {
125
+ method: "POST",
126
+ });
127
+ const resp = await worker.fetch(req);
128
+ let text;
129
+ if (resp) text = await resp.text();
130
+ expect(text).toMatchInlineSnapshot(`"requestPOST"`);
131
+ await worker.stop();
132
+ });
133
+
134
+ it("should strip back to pathname for URL objects", async () => {
135
+ const scriptContent = `
136
+ export default {
137
+ fetch(request, env, ctx) {
138
+ const url = new URL(request.url);
139
+ if (url.pathname === "/test") {
140
+ return new Response("request");
141
+ }
142
+ return new Response('Hello world');
143
+ }
144
+ };
145
+ `;
146
+ fs.writeFileSync("index.js", scriptContent);
147
+ const worker = await unstable_dev("index.js", {
148
+ experimental: {
149
+ disableExperimentalWarning: true,
150
+ disableDevRegistry: true,
151
+ },
152
+ });
153
+ const url = new URL("http://localhost:80/test");
154
+ const resp = await worker.fetch(url);
155
+ let text;
156
+ if (resp) text = await resp.text();
157
+ expect(text).toMatchInlineSnapshot(`"request"`);
158
+ await worker.stop();
159
+ });
160
+
161
+ it("should allow full url passed in string, and stripped back to pathname", async () => {
162
+ const scriptContent = `
163
+ export default {
164
+ fetch(request, env, ctx) {
165
+ const url = new URL(request.url);
166
+ if (url.pathname === "/test") {
167
+ return new Response("request");
168
+ }
169
+ return new Response('Hello world');
170
+ }
171
+ };
172
+ `;
173
+ fs.writeFileSync("index.js", scriptContent);
174
+ const worker = await unstable_dev("index.js", {
175
+ experimental: {
176
+ disableExperimentalWarning: true,
177
+ disableDevRegistry: true,
178
+ },
179
+ });
180
+ const resp = await worker.fetch("http://example.com/test");
181
+ let text;
182
+ if (resp) text = await resp.text();
183
+ expect(text).toMatchInlineSnapshot(`"request"`);
184
+ await worker.stop();
185
+ });
186
+
187
+ it("should allow pathname to be passed in", async () => {
188
+ const scriptContent = `
189
+ export default {
190
+ fetch(request, env, ctx) {
191
+ const url = new URL(request.url);
192
+ if (url.pathname === "/test") {
193
+ return new Response("request");
194
+ }
195
+ return new Response('Hello world');
196
+ }
197
+ };
198
+ `;
199
+ fs.writeFileSync("index.js", scriptContent);
200
+ const worker = await unstable_dev("index.js", {
201
+ experimental: {
202
+ disableExperimentalWarning: true,
203
+ disableDevRegistry: true,
204
+ },
205
+ });
206
+ const resp = await worker.fetch("/test");
207
+ let text;
208
+ if (resp) text = await resp.text();
209
+ expect(text).toMatchInlineSnapshot(`"request"`);
210
+ await worker.stop();
211
+ });
212
+
213
+ it("should allow no input be passed in", async () => {
214
+ const scriptContent = `
215
+ export default {
216
+ fetch(request, env, ctx) {
217
+ const url = new URL(request.url);
218
+ if (url.pathname === "/test") {
219
+ return new Response("request");
220
+ }
221
+ return new Response('Hello world');
222
+ }
223
+ };
224
+ `;
225
+ fs.writeFileSync("index.js", scriptContent);
226
+ const worker = await unstable_dev("index.js", {
227
+ experimental: {
228
+ disableExperimentalWarning: true,
229
+ disableDevRegistry: true,
230
+ },
231
+ });
232
+ const resp = await worker.fetch("");
233
+ let text;
234
+ if (resp) text = await resp.text();
235
+ expect(text).toMatchInlineSnapshot(`"Hello world"`);
236
+ await worker.stop();
237
+ });
238
+ });