bun-types 1.3.2-canary.20251104T140728 → 1.3.2-canary.20251106T140813

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 (312) hide show
  1. package/bun.d.ts +4 -4
  2. package/docs/README.md +28 -0
  3. package/globals.d.ts +0 -1
  4. package/overrides.d.ts +45 -15
  5. package/package.json +1 -1
  6. package/test.d.ts +1 -1
  7. package/docs/api/binary-data.md +0 -1038
  8. package/docs/api/cc.md +0 -197
  9. package/docs/api/color.md +0 -262
  10. package/docs/api/console.md +0 -57
  11. package/docs/api/cookie.md +0 -449
  12. package/docs/api/dns.md +0 -110
  13. package/docs/api/fetch.md +0 -463
  14. package/docs/api/ffi.md +0 -557
  15. package/docs/api/file-io.md +0 -366
  16. package/docs/api/file-system-router.md +0 -112
  17. package/docs/api/file.md +0 -19
  18. package/docs/api/glob.md +0 -178
  19. package/docs/api/globals.md +0 -387
  20. package/docs/api/hashing.md +0 -319
  21. package/docs/api/html-rewriter.md +0 -334
  22. package/docs/api/http.md +0 -1408
  23. package/docs/api/import-meta.md +0 -69
  24. package/docs/api/node-api.md +0 -14
  25. package/docs/api/redis.md +0 -597
  26. package/docs/api/s3.md +0 -850
  27. package/docs/api/secrets.md +0 -319
  28. package/docs/api/semver.md +0 -52
  29. package/docs/api/spawn.md +0 -582
  30. package/docs/api/sql.md +0 -1374
  31. package/docs/api/sqlite.md +0 -694
  32. package/docs/api/streams.md +0 -230
  33. package/docs/api/tcp.md +0 -221
  34. package/docs/api/transpiler.md +0 -276
  35. package/docs/api/udp.md +0 -123
  36. package/docs/api/utils.md +0 -891
  37. package/docs/api/websockets.md +0 -573
  38. package/docs/api/workers.md +0 -322
  39. package/docs/api/yaml.md +0 -668
  40. package/docs/benchmarks.md +0 -120
  41. package/docs/bun-flavored-toml.md +0 -42
  42. package/docs/bundler/css.md +0 -1028
  43. package/docs/bundler/css_modules.md +0 -145
  44. package/docs/bundler/executables.md +0 -626
  45. package/docs/bundler/fullstack.md +0 -418
  46. package/docs/bundler/hmr.md +0 -234
  47. package/docs/bundler/html.md +0 -349
  48. package/docs/bundler/index.md +0 -1735
  49. package/docs/bundler/intro.md +0 -75
  50. package/docs/bundler/loaders.md +0 -410
  51. package/docs/bundler/macros.md +0 -329
  52. package/docs/bundler/plugins.md +0 -449
  53. package/docs/bundler/vs-esbuild.md +0 -1127
  54. package/docs/cli/add.md +0 -173
  55. package/docs/cli/bun-completions.md +0 -3
  56. package/docs/cli/bun-create.md +0 -338
  57. package/docs/cli/bun-install.md +0 -349
  58. package/docs/cli/bun-upgrade.md +0 -39
  59. package/docs/cli/bunx.md +0 -89
  60. package/docs/cli/filter.md +0 -90
  61. package/docs/cli/info.md +0 -65
  62. package/docs/cli/init.md +0 -85
  63. package/docs/cli/install.md +0 -344
  64. package/docs/cli/link.md +0 -40
  65. package/docs/cli/outdated.md +0 -90
  66. package/docs/cli/patch-commit.md +0 -11
  67. package/docs/cli/pm.md +0 -285
  68. package/docs/cli/publish.md +0 -120
  69. package/docs/cli/remove.md +0 -7
  70. package/docs/cli/run.md +0 -261
  71. package/docs/cli/test.md +0 -397
  72. package/docs/cli/unlink.md +0 -9
  73. package/docs/cli/update.md +0 -129
  74. package/docs/cli/why.md +0 -67
  75. package/docs/contributing/upgrading-webkit.md +0 -57
  76. package/docs/ecosystem/elysia.md +0 -24
  77. package/docs/ecosystem/express.md +0 -37
  78. package/docs/ecosystem/hono.md +0 -18
  79. package/docs/ecosystem/react.md +0 -65
  80. package/docs/ecosystem/stric.md +0 -38
  81. package/docs/guides/binary/arraybuffer-to-array.md +0 -27
  82. package/docs/guides/binary/arraybuffer-to-blob.md +0 -24
  83. package/docs/guides/binary/arraybuffer-to-buffer.md +0 -25
  84. package/docs/guides/binary/arraybuffer-to-string.md +0 -15
  85. package/docs/guides/binary/arraybuffer-to-typedarray.md +0 -39
  86. package/docs/guides/binary/blob-to-arraybuffer.md +0 -14
  87. package/docs/guides/binary/blob-to-dataview.md +0 -14
  88. package/docs/guides/binary/blob-to-stream.md +0 -14
  89. package/docs/guides/binary/blob-to-string.md +0 -15
  90. package/docs/guides/binary/blob-to-typedarray.md +0 -14
  91. package/docs/guides/binary/buffer-to-arraybuffer.md +0 -14
  92. package/docs/guides/binary/buffer-to-blob.md +0 -14
  93. package/docs/guides/binary/buffer-to-readablestream.md +0 -41
  94. package/docs/guides/binary/buffer-to-string.md +0 -25
  95. package/docs/guides/binary/buffer-to-typedarray.md +0 -14
  96. package/docs/guides/binary/dataview-to-string.md +0 -15
  97. package/docs/guides/binary/typedarray-to-arraybuffer.md +0 -25
  98. package/docs/guides/binary/typedarray-to-blob.md +0 -16
  99. package/docs/guides/binary/typedarray-to-buffer.md +0 -14
  100. package/docs/guides/binary/typedarray-to-dataview.md +0 -14
  101. package/docs/guides/binary/typedarray-to-readablestream.md +0 -41
  102. package/docs/guides/binary/typedarray-to-string.md +0 -16
  103. package/docs/guides/deployment/railway.md +0 -157
  104. package/docs/guides/ecosystem/astro.md +0 -72
  105. package/docs/guides/ecosystem/discordjs.md +0 -77
  106. package/docs/guides/ecosystem/docker.md +0 -140
  107. package/docs/guides/ecosystem/drizzle.md +0 -185
  108. package/docs/guides/ecosystem/edgedb.md +0 -228
  109. package/docs/guides/ecosystem/elysia.md +0 -31
  110. package/docs/guides/ecosystem/express.md +0 -40
  111. package/docs/guides/ecosystem/hono.md +0 -39
  112. package/docs/guides/ecosystem/mongoose.md +0 -87
  113. package/docs/guides/ecosystem/neon-drizzle.md +0 -220
  114. package/docs/guides/ecosystem/neon-serverless-postgres.md +0 -55
  115. package/docs/guides/ecosystem/nextjs.md +0 -49
  116. package/docs/guides/ecosystem/nuxt.md +0 -56
  117. package/docs/guides/ecosystem/pm2.md +0 -57
  118. package/docs/guides/ecosystem/prisma.md +0 -141
  119. package/docs/guides/ecosystem/qwik.md +0 -107
  120. package/docs/guides/ecosystem/react.md +0 -50
  121. package/docs/guides/ecosystem/remix.md +0 -78
  122. package/docs/guides/ecosystem/render.md +0 -79
  123. package/docs/guides/ecosystem/sentry.md +0 -52
  124. package/docs/guides/ecosystem/solidstart.md +0 -58
  125. package/docs/guides/ecosystem/ssr-react.md +0 -51
  126. package/docs/guides/ecosystem/stric.md +0 -55
  127. package/docs/guides/ecosystem/sveltekit.md +0 -125
  128. package/docs/guides/ecosystem/systemd.md +0 -113
  129. package/docs/guides/ecosystem/vite.md +0 -71
  130. package/docs/guides/html-rewriter/extract-links.md +0 -68
  131. package/docs/guides/html-rewriter/extract-social-meta.md +0 -93
  132. package/docs/guides/http/cluster.md +0 -66
  133. package/docs/guides/http/fetch-unix.md +0 -33
  134. package/docs/guides/http/fetch.md +0 -24
  135. package/docs/guides/http/file-uploads.md +0 -94
  136. package/docs/guides/http/hot.md +0 -26
  137. package/docs/guides/http/proxy.md +0 -24
  138. package/docs/guides/http/server.md +0 -46
  139. package/docs/guides/http/simple.md +0 -18
  140. package/docs/guides/http/stream-file.md +0 -48
  141. package/docs/guides/http/stream-iterator.md +0 -47
  142. package/docs/guides/http/stream-node-streams-in-bun.md +0 -20
  143. package/docs/guides/http/tls.md +0 -30
  144. package/docs/guides/install/add-dev.md +0 -26
  145. package/docs/guides/install/add-git.md +0 -36
  146. package/docs/guides/install/add-optional.md +0 -25
  147. package/docs/guides/install/add-peer.md +0 -43
  148. package/docs/guides/install/add-tarball.md +0 -33
  149. package/docs/guides/install/add.md +0 -42
  150. package/docs/guides/install/azure-artifacts.md +0 -73
  151. package/docs/guides/install/cicd.md +0 -41
  152. package/docs/guides/install/custom-registry.md +0 -30
  153. package/docs/guides/install/from-npm-install-to-bun-install.md +0 -214
  154. package/docs/guides/install/git-diff-bun-lockfile.md +0 -44
  155. package/docs/guides/install/jfrog-artifactory.md +0 -28
  156. package/docs/guides/install/npm-alias.md +0 -23
  157. package/docs/guides/install/registry-scope.md +0 -38
  158. package/docs/guides/install/trusted.md +0 -46
  159. package/docs/guides/install/workspaces.md +0 -70
  160. package/docs/guides/install/yarnlock.md +0 -44
  161. package/docs/guides/process/argv.md +0 -58
  162. package/docs/guides/process/ctrl-c.md +0 -16
  163. package/docs/guides/process/ipc.md +0 -66
  164. package/docs/guides/process/nanoseconds.md +0 -13
  165. package/docs/guides/process/os-signals.md +0 -39
  166. package/docs/guides/process/spawn-stderr.md +0 -31
  167. package/docs/guides/process/spawn-stdout.md +0 -26
  168. package/docs/guides/process/spawn.md +0 -41
  169. package/docs/guides/process/stdin.md +0 -54
  170. package/docs/guides/read-file/arraybuffer.md +0 -28
  171. package/docs/guides/read-file/buffer.md +0 -19
  172. package/docs/guides/read-file/exists.md +0 -16
  173. package/docs/guides/read-file/json.md +0 -17
  174. package/docs/guides/read-file/mime.md +0 -20
  175. package/docs/guides/read-file/stream.md +0 -26
  176. package/docs/guides/read-file/string.md +0 -22
  177. package/docs/guides/read-file/uint8array.md +0 -21
  178. package/docs/guides/read-file/watch.md +0 -68
  179. package/docs/guides/runtime/build-time-constants.md +0 -293
  180. package/docs/guides/runtime/cicd.md +0 -43
  181. package/docs/guides/runtime/codesign-macos-executable.md +0 -56
  182. package/docs/guides/runtime/define-constant.md +0 -145
  183. package/docs/guides/runtime/delete-directory.md +0 -37
  184. package/docs/guides/runtime/delete-file.md +0 -19
  185. package/docs/guides/runtime/heap-snapshot.md +0 -26
  186. package/docs/guides/runtime/import-html.md +0 -15
  187. package/docs/guides/runtime/import-json.md +0 -44
  188. package/docs/guides/runtime/import-toml.md +0 -30
  189. package/docs/guides/runtime/import-yaml.md +0 -102
  190. package/docs/guides/runtime/read-env.md +0 -32
  191. package/docs/guides/runtime/set-env.md +0 -47
  192. package/docs/guides/runtime/shell.md +0 -40
  193. package/docs/guides/runtime/timezone.md +0 -35
  194. package/docs/guides/runtime/tsconfig-paths.md +0 -29
  195. package/docs/guides/runtime/typescript.md +0 -49
  196. package/docs/guides/runtime/vscode-debugger.md +0 -47
  197. package/docs/guides/runtime/web-debugger.md +0 -82
  198. package/docs/guides/streams/node-readable-to-arraybuffer.md +0 -11
  199. package/docs/guides/streams/node-readable-to-blob.md +0 -11
  200. package/docs/guides/streams/node-readable-to-json.md +0 -12
  201. package/docs/guides/streams/node-readable-to-string.md +0 -12
  202. package/docs/guides/streams/node-readable-to-uint8array.md +0 -11
  203. package/docs/guides/streams/to-array.md +0 -14
  204. package/docs/guides/streams/to-arraybuffer.md +0 -14
  205. package/docs/guides/streams/to-blob.md +0 -14
  206. package/docs/guides/streams/to-buffer.md +0 -15
  207. package/docs/guides/streams/to-json.md +0 -14
  208. package/docs/guides/streams/to-string.md +0 -14
  209. package/docs/guides/streams/to-typedarray.md +0 -22
  210. package/docs/guides/test/bail.md +0 -22
  211. package/docs/guides/test/coverage-threshold.md +0 -60
  212. package/docs/guides/test/coverage.md +0 -44
  213. package/docs/guides/test/happy-dom.md +0 -68
  214. package/docs/guides/test/migrate-from-jest.md +0 -143
  215. package/docs/guides/test/mock-clock.md +0 -48
  216. package/docs/guides/test/mock-functions.md +0 -68
  217. package/docs/guides/test/rerun-each.md +0 -14
  218. package/docs/guides/test/run-tests.md +0 -111
  219. package/docs/guides/test/skip-tests.md +0 -39
  220. package/docs/guides/test/snapshot.md +0 -95
  221. package/docs/guides/test/spy-on.md +0 -46
  222. package/docs/guides/test/svelte-test.md +0 -120
  223. package/docs/guides/test/testing-library.md +0 -92
  224. package/docs/guides/test/timeout.md +0 -15
  225. package/docs/guides/test/todo-tests.md +0 -67
  226. package/docs/guides/test/update-snapshots.md +0 -46
  227. package/docs/guides/test/watch-mode.md +0 -19
  228. package/docs/guides/util/base64.md +0 -15
  229. package/docs/guides/util/deep-equals.md +0 -39
  230. package/docs/guides/util/deflate.md +0 -18
  231. package/docs/guides/util/detect-bun.md +0 -23
  232. package/docs/guides/util/entrypoint.md +0 -17
  233. package/docs/guides/util/escape-html.md +0 -22
  234. package/docs/guides/util/file-url-to-path.md +0 -14
  235. package/docs/guides/util/gzip.md +0 -18
  236. package/docs/guides/util/hash-a-password.md +0 -54
  237. package/docs/guides/util/import-meta-dir.md +0 -13
  238. package/docs/guides/util/import-meta-file.md +0 -13
  239. package/docs/guides/util/import-meta-path.md +0 -13
  240. package/docs/guides/util/javascript-uuid.md +0 -23
  241. package/docs/guides/util/main.md +0 -32
  242. package/docs/guides/util/path-to-file-url.md +0 -14
  243. package/docs/guides/util/sleep.md +0 -22
  244. package/docs/guides/util/version.md +0 -21
  245. package/docs/guides/util/which-path-to-executable-bin.md +0 -15
  246. package/docs/guides/websocket/compression.md +0 -31
  247. package/docs/guides/websocket/context.md +0 -77
  248. package/docs/guides/websocket/pubsub.md +0 -41
  249. package/docs/guides/websocket/simple.md +0 -33
  250. package/docs/guides/write-file/append.md +0 -52
  251. package/docs/guides/write-file/basic.md +0 -44
  252. package/docs/guides/write-file/blob.md +0 -28
  253. package/docs/guides/write-file/cat.md +0 -17
  254. package/docs/guides/write-file/file-cp.md +0 -16
  255. package/docs/guides/write-file/filesink.md +0 -52
  256. package/docs/guides/write-file/response.md +0 -17
  257. package/docs/guides/write-file/stdout.md +0 -21
  258. package/docs/guides/write-file/stream.md +0 -17
  259. package/docs/guides/write-file/unlink.md +0 -16
  260. package/docs/index.md +0 -77
  261. package/docs/install/audit.md +0 -57
  262. package/docs/install/cache.md +0 -59
  263. package/docs/install/catalogs.md +0 -298
  264. package/docs/install/index.md +0 -248
  265. package/docs/install/isolated.md +0 -197
  266. package/docs/install/lifecycle.md +0 -46
  267. package/docs/install/lockfile.md +0 -58
  268. package/docs/install/npmrc.md +0 -105
  269. package/docs/install/overrides.md +0 -73
  270. package/docs/install/patch.md +0 -59
  271. package/docs/install/registries.md +0 -30
  272. package/docs/install/security-scanner-api.md +0 -81
  273. package/docs/install/workspaces.md +0 -114
  274. package/docs/installation.md +0 -327
  275. package/docs/project/asan.md +0 -124
  276. package/docs/project/benchmarking.md +0 -203
  277. package/docs/project/bindgen.md +0 -225
  278. package/docs/project/building-windows.md +0 -162
  279. package/docs/project/contributing.md +0 -347
  280. package/docs/project/internals/build-process-for-ci.md +0 -75
  281. package/docs/project/licensing.md +0 -73
  282. package/docs/project/roadmap.md +0 -87
  283. package/docs/quickstart.md +0 -157
  284. package/docs/runtime/autoimport.md +0 -94
  285. package/docs/runtime/bun-apis.md +0 -207
  286. package/docs/runtime/bunfig.md +0 -772
  287. package/docs/runtime/debugger.md +0 -325
  288. package/docs/runtime/env.md +0 -253
  289. package/docs/runtime/hot.md +0 -145
  290. package/docs/runtime/index.md +0 -312
  291. package/docs/runtime/jsx.md +0 -385
  292. package/docs/runtime/loaders.md +0 -130
  293. package/docs/runtime/modules.md +0 -320
  294. package/docs/runtime/nodejs-apis.md +0 -463
  295. package/docs/runtime/plugins.md +0 -561
  296. package/docs/runtime/shell.md +0 -605
  297. package/docs/runtime/typescript.md +0 -139
  298. package/docs/runtime/web-apis.md +0 -128
  299. package/docs/test/configuration.md +0 -154
  300. package/docs/test/coverage.md +0 -142
  301. package/docs/test/discovery.md +0 -85
  302. package/docs/test/dom.md +0 -75
  303. package/docs/test/examples/concurrent-test-glob.md +0 -132
  304. package/docs/test/hot.md +0 -15
  305. package/docs/test/lifecycle.md +0 -81
  306. package/docs/test/mocks.md +0 -313
  307. package/docs/test/reporters.md +0 -117
  308. package/docs/test/runtime-behavior.md +0 -95
  309. package/docs/test/snapshots.md +0 -68
  310. package/docs/test/time.md +0 -126
  311. package/docs/test/writing.md +0 -825
  312. package/docs/typescript.md +0 -53
@@ -1,349 +0,0 @@
1
- ### `bun install`
2
-
3
- bun install is a fast package manager & npm client.
4
-
5
- bun install can be configured via `bunfig.toml`, environment variables, and CLI flags.
6
-
7
- #### Configuring `bun install` with `bunfig.toml`
8
-
9
- `bunfig.toml` is searched for in the following paths on `bun install`, `bun remove`, and `bun add`:
10
-
11
- 1. `$XDG_CONFIG_HOME/.bunfig.toml` or `$HOME/.bunfig.toml`
12
- 2. `./bunfig.toml`
13
-
14
- If both are found, the results are merged together.
15
-
16
- Configuring with `bunfig.toml` is optional. Bun tries to be zero configuration in general, but that's not always possible.
17
-
18
- ```toml
19
- # Using scoped packages with bun install
20
- [install.scopes]
21
-
22
- # Scope name The value can be a URL string or an object
23
- "@mybigcompany" = { token = "123456", url = "https://registry.mybigcompany.com" }
24
- # URL is optional and falls back to the default registry
25
-
26
- # The "@" in the scope is optional
27
- mybigcompany2 = { token = "123456" }
28
-
29
- # Environment variables can be referenced as a string that starts with $ and it will be replaced
30
- mybigcompany3 = { token = "$npm_config_token" }
31
-
32
- # Setting username and password turns it into a Basic Auth header by taking base64("username:password")
33
- mybigcompany4 = { username = "myusername", password = "$npm_config_password", url = "https://registry.yarnpkg.com/" }
34
- # You can set username and password in the registry URL. This is the same as above.
35
- mybigcompany5 = "https://username:password@registry.yarnpkg.com/"
36
-
37
- # You can set a token for a registry URL:
38
- mybigcompany6 = "https://:$NPM_CONFIG_TOKEN@registry.yarnpkg.com/"
39
-
40
- [install]
41
- # Default registry
42
- # can be a URL string or an object
43
- registry = "https://registry.yarnpkg.com/"
44
- # as an object
45
- #registry = { url = "https://registry.yarnpkg.com/", token = "123456" }
46
-
47
- # Install for production? This is the equivalent to the "--production" CLI argument
48
- production = false
49
-
50
- # Save a text-based lockfile? This is equivalent to the "--save-text-lockfile" CLI argument
51
- saveTextLockfile = false
52
-
53
- # Disallow changes to lockfile? This is the equivalent to the "--frozen-lockfile" CLI argument
54
- frozenLockfile = false
55
-
56
- # Don't actually install
57
- dryRun = true
58
-
59
- # Install optionalDependencies (default: true)
60
- # Setting this to false is equivalent to the `--omit=optional` CLI argument
61
- optional = true
62
-
63
- # Install local devDependencies (default: true)
64
- # Setting this to false is equivalent to the `--omit=dev` CLI argument
65
- dev = true
66
-
67
- # Install peerDependencies (default: true)
68
- # Setting this to false is equivalent to the `--omit=peer` CLI argument
69
- peer = true
70
-
71
- # Max number of concurrent lifecycle scripts (default: (cpu count or GOMAXPROCS) x2)
72
- concurrentScripts = 16
73
-
74
- # When using `bun install -g`, install packages here
75
- globalDir = "~/.bun/install/global"
76
-
77
- # When using `bun install -g`, link package bins here
78
- globalBinDir = "~/.bun/bin"
79
-
80
- # cache-related configuration
81
- [install.cache]
82
- # The directory to use for the cache
83
- dir = "~/.bun/install/cache"
84
-
85
- # Don't load from the global cache.
86
- # Note: Bun may still write to node_modules/.cache
87
- disable = false
88
-
89
-
90
- # Always resolve the latest versions from the registry
91
- disableManifest = false
92
-
93
-
94
- # Lockfile-related configuration
95
- [install.lockfile]
96
-
97
- # Print a yarn v1 lockfile
98
- # Note: it does not load the lockfile, it just converts bun.lock into a yarn.lock
99
- print = "yarn"
100
-
101
- # Save the lockfile to disk
102
- save = true
103
-
104
- ```
105
-
106
- If it's easier to read as TypeScript types:
107
-
108
- ```ts
109
- export interface Root {
110
- install: Install;
111
- }
112
-
113
- export interface Install {
114
- scopes: Scopes;
115
- registry: Registry;
116
- production: boolean;
117
- saveTextLockfile: boolean;
118
- frozenLockfile: boolean;
119
- dryRun: boolean;
120
- optional: boolean;
121
- dev: boolean;
122
- peer: boolean;
123
- globalDir: string;
124
- globalBinDir: string;
125
- cache: Cache;
126
- lockfile: Lockfile;
127
- logLevel: "debug" | "error" | "warn";
128
- }
129
-
130
- type Registry =
131
- | string
132
- | {
133
- url?: string;
134
- token?: string;
135
- username?: string;
136
- password?: string;
137
- };
138
-
139
- type Scopes = Record<string, Registry>;
140
-
141
- export interface Cache {
142
- dir: string;
143
- disable: boolean;
144
- disableManifest: boolean;
145
- }
146
-
147
- export interface Lockfile {
148
- print?: "yarn";
149
- save: boolean;
150
- }
151
- ```
152
-
153
- ## Configuring with environment variables
154
-
155
- Environment variables have a higher priority than `bunfig.toml`.
156
-
157
- | Name | Description |
158
- | -------------------------------- | ------------------------------------------------------------- |
159
- | BUN_CONFIG_REGISTRY | Set an npm registry (default: <https://registry.npmjs.org>) |
160
- | BUN_CONFIG_TOKEN | Set an auth token (currently does nothing) |
161
- | BUN_CONFIG_YARN_LOCKFILE | Save a Yarn v1-style yarn.lock |
162
- | BUN_CONFIG_LINK_NATIVE_BINS | Point `bin` in package.json to a platform-specific dependency |
163
- | BUN_CONFIG_SKIP_SAVE_LOCKFILE | Don’t save a lockfile |
164
- | BUN_CONFIG_SKIP_LOAD_LOCKFILE | Don’t load a lockfile |
165
- | BUN_CONFIG_SKIP_INSTALL_PACKAGES | Don’t install any packages |
166
-
167
- Bun always tries to use the fastest available installation method for the target platform. On macOS, that’s `clonefile` and on Linux, that’s `hardlink`. You can change which installation method is used with the `--backend` flag. When unavailable or on error, `clonefile` and `hardlink` fallsback to a platform-specific implementation of copying files.
168
-
169
- Bun stores installed packages from npm in `~/.bun/install/cache/${name}@${version}`. Note that if the semver version has a `build` or a `pre` tag, it is replaced with a hash of that value instead. This is to reduce the chances of errors from long file paths, but unfortunately complicates figuring out where a package was installed on disk.
170
-
171
- When the `node_modules` folder exists, before installing, Bun checks if the `"name"` and `"version"` in `package/package.json` in the expected node_modules folder matches the expected `name` and `version`. This is how it determines whether it should install. It uses a custom JSON parser which stops parsing as soon as it finds `"name"` and `"version"`.
172
-
173
- When a `bun.lock` doesn’t exist or `package.json` has changed dependencies, tarballs are downloaded & extracted eagerly while resolving.
174
-
175
- When a `bun.lock` exists and `package.json` hasn’t changed, Bun downloads missing dependencies lazily. If the package with a matching `name` & `version` already exists in the expected location within `node_modules`, Bun won’t attempt to download the tarball.
176
-
177
- ## Platform-specific dependencies?
178
-
179
- bun stores normalized `cpu` and `os` values from npm in the lockfile, along with the resolved packages. It skips downloading, extracting, and installing packages disabled for the current target at runtime. This means the lockfile won't change between platforms/architectures even if the packages ultimately installed do change.
180
-
181
- ### `--cpu` and `--os` flags
182
-
183
- You can override the target platform for package selection:
184
-
185
- ```bash
186
- bun install --cpu=x64 --os=linux
187
- ```
188
-
189
- This installs packages for the specified platform instead of the current system. Useful for cross-platform builds or when preparing deployments for different environments.
190
-
191
- **Accepted values for `--cpu`**: `arm64`, `x64`, `ia32`, `ppc64`, `s390x`
192
-
193
- **Accepted values for `--os`**: `linux`, `darwin`, `win32`, `freebsd`, `openbsd`, `sunos`, `aix`
194
-
195
- ## Peer dependencies?
196
-
197
- Peer dependencies are handled similarly to yarn. `bun install` will automatically install peer dependencies. If the dependency is marked optional in `peerDependenciesMeta`, an existing dependency will be chosen if possible.
198
-
199
- ## Lockfile
200
-
201
- `bun.lock` is Bun’s lockfile format. See [our blogpost about the text lockfile](https://bun.com/blog/bun-lock-text-lockfile).
202
-
203
- Prior to Bun 1.2, the lockfile was binary and called `bun.lockb`. Old lockfiles can be upgraded to the new format by running `bun install --save-text-lockfile --frozen-lockfile --lockfile-only`, and then deleting `bun.lockb`.
204
-
205
- ## Cache
206
-
207
- To delete the cache:
208
-
209
- ```bash
210
- $ rm -rf ~/.bun/install/cache
211
- ```
212
-
213
- ## Platform-specific backends
214
-
215
- `bun install` uses different system calls to install dependencies depending on the platform. This is a performance optimization. You can force a specific backend with the `--backend` flag.
216
-
217
- **`hardlink`** is the default backend on Linux. Benchmarking showed it to be the fastest on Linux.
218
-
219
- ```bash
220
- $ rm -rf node_modules
221
- $ bun install --backend hardlink
222
- ```
223
-
224
- **`clonefile`** is the default backend on macOS. Benchmarking showed it to be the fastest on macOS. It is only available on macOS.
225
-
226
- ```bash
227
- $ rm -rf node_modules
228
- $ bun install --backend clonefile
229
- ```
230
-
231
- **`clonefile_each_dir`** is similar to `clonefile`, except it clones each file individually per directory. It is only available on macOS and tends to perform slower than `clonefile`. Unlike `clonefile`, this does not recursively clone subdirectories in one system call.
232
-
233
- ```bash
234
- $ rm -rf node_modules
235
- $ bun install --backend clonefile_each_dir
236
- ```
237
-
238
- **`copyfile`** is the fallback used when any of the above fail, and is the slowest. on macOS, it uses `fcopyfile()` and on linux it uses `copy_file_range()`.
239
-
240
- ```bash
241
- $ rm -rf node_modules
242
- $ bun install --backend copyfile
243
- ```
244
-
245
- **`symlink`** is typically only used for `file:` dependencies (and eventually `link:`) internally. To prevent infinite loops, it skips symlinking the `node_modules` folder.
246
-
247
- If you install with `--backend=symlink`, Node.js won't resolve node_modules of dependencies unless each dependency has its own node_modules folder or you pass `--preserve-symlinks` to `node` or `bun`. See [Node.js documentation on `--preserve-symlinks`](https://nodejs.org/api/cli.html#--preserve-symlinks).
248
-
249
- ```bash
250
- $ rm -rf node_modules
251
- $ bun install --backend symlink
252
- $ bun --preserve-symlinks ./my-file.js
253
- $ node --preserve-symlinks ./my-file.js # https://nodejs.org/api/cli.html#--preserve-symlinks
254
- ```
255
-
256
- ## npm registry metadata
257
-
258
- bun uses a binary format for caching NPM registry responses. This loads much faster than JSON and tends to be smaller on disk.
259
- You will see these files in `~/.bun/install/cache/*.npm`. The filename pattern is `${hash(packageName)}.npm`. It’s a hash so that extra directories don’t need to be created for scoped packages.
260
-
261
- Bun's usage of `Cache-Control` ignores `Age`. This improves performance, but means bun may be about 5 minutes out of date to receive the latest package version metadata from npm.
262
-
263
- ## pnpm migration
264
-
265
- Bun automatically migrates projects from pnpm to bun. When a `pnpm-lock.yaml` file is detected and no `bun.lock` file exists, Bun will automatically migrate the lockfile to `bun.lock` during installation. The original `pnpm-lock.yaml` file remains unmodified.
266
-
267
- ```bash
268
- bun install
269
- ```
270
-
271
- **Note**: Migration only runs when `bun.lock` is absent. There is currently no opt-out flag for pnpm migration.
272
-
273
- The migration process handles:
274
-
275
- ### Lockfile Migration
276
-
277
- - Converts `pnpm-lock.yaml` to `bun.lock` format
278
- - Preserves package versions and resolution information
279
- - Maintains dependency relationships and peer dependencies
280
- - Handles patched dependencies with integrity hashes
281
-
282
- ### Workspace Configuration
283
-
284
- When a `pnpm-workspace.yaml` file exists, Bun migrates workspace settings to your root `package.json`:
285
-
286
- ```yaml
287
- # pnpm-workspace.yaml
288
- packages:
289
- - "apps/*"
290
- - "packages/*"
291
-
292
- catalog:
293
- react: ^18.0.0
294
- typescript: ^5.0.0
295
-
296
- catalogs:
297
- build:
298
- webpack: ^5.0.0
299
- babel: ^7.0.0
300
- ```
301
-
302
- The workspace packages list and catalogs are moved to the `workspaces` field in `package.json`:
303
-
304
- ```json
305
- {
306
- "workspaces": {
307
- "packages": ["apps/*", "packages/*"],
308
- "catalog": {
309
- "react": "^18.0.0",
310
- "typescript": "^5.0.0"
311
- },
312
- "catalogs": {
313
- "build": {
314
- "webpack": "^5.0.0",
315
- "babel": "^7.0.0"
316
- }
317
- }
318
- }
319
- }
320
- ```
321
-
322
- ### Catalog Dependencies
323
-
324
- Dependencies using pnpm's `catalog:` protocol are preserved:
325
-
326
- ```json
327
- {
328
- "dependencies": {
329
- "react": "catalog:",
330
- "webpack": "catalog:build"
331
- }
332
- }
333
- ```
334
-
335
- ### Configuration Migration
336
-
337
- The following pnpm configuration is migrated from both `pnpm-lock.yaml` and `pnpm-workspace.yaml`:
338
-
339
- - **Overrides**: Moved from `pnpm.overrides` to root-level `overrides` in `package.json`
340
- - **Patched Dependencies**: Moved from `pnpm.patchedDependencies` to root-level `patchedDependencies` in `package.json`
341
- - **Workspace Overrides**: Applied from `pnpm-workspace.yaml` to root `package.json`
342
-
343
- ### Requirements
344
-
345
- - Requires pnpm lockfile version 7 or higher
346
- - Workspace packages must have a `name` field in their `package.json`
347
- - All catalog entries referenced by dependencies must exist in the catalogs definition
348
-
349
- After migration, you can safely remove `pnpm-lock.yaml` and `pnpm-workspace.yaml` files.
@@ -1,39 +0,0 @@
1
- To upgrade Bun, run `bun upgrade`.
2
-
3
- It automatically downloads the latest version of Bun and overwrites the currently-running version.
4
-
5
- This works by checking the latest version of Bun in [bun-releases-for-updater](https://github.com/Jarred-Sumner/bun-releases-for-updater/releases) and unzipping it using the system-provided `unzip` library (so that Gatekeeper works on macOS)
6
-
7
- If for any reason you run into issues, you can also use the curl install script:
8
-
9
- ```bash
10
- $ curl https://bun.com/install | bash
11
- ```
12
-
13
- It will still work when Bun is already installed.
14
-
15
- Bun is distributed as a single binary file, so you can also do this manually:
16
-
17
- - Download the latest version of Bun for your platform in [bun-releases-for-updater](https://github.com/Jarred-Sumner/bun-releases-for-updater/releases/latest) (`darwin` == macOS)
18
- - Unzip the folder
19
- - Move the `bun` binary to `~/.bun/bin` (or anywhere)
20
-
21
- ## `--canary`
22
-
23
- [Canary](https://github.com/oven-sh/bun/releases/tag/canary) builds are generated on every commit.
24
-
25
- To install a [canary](https://github.com/oven-sh/bun/releases/tag/canary) build of Bun, run:
26
-
27
- ```bash
28
- $ bun upgrade --canary
29
- ```
30
-
31
- This flag is not persistent (though that might change in the future). If you want to always run the canary build of Bun, set the `BUN_CANARY` environment variable to `1` in your shell's startup script.
32
-
33
- This will download the release zip from https://github.com/oven-sh/bun/releases/tag/canary.
34
-
35
- To revert to the latest published version of Bun, run:
36
-
37
- ```bash
38
- $ bun upgrade
39
- ```
package/docs/cli/bunx.md DELETED
@@ -1,89 +0,0 @@
1
- {% callout %}
2
- **Note** — `bunx` is an alias for `bun x`. The `bunx` CLI will be auto-installed when you install `bun`.
3
- {% /callout %}
4
-
5
- Use `bunx` to auto-install and run packages from `npm`. It's Bun's equivalent of `npx` or `yarn dlx`.
6
-
7
- ```bash
8
- $ bunx cowsay "Hello world!"
9
- ```
10
-
11
- {% callout %}
12
- ⚡️ **Speed** — With Bun's fast startup times, `bunx` is [roughly 100x faster](https://twitter.com/jarredsumner/status/1606163655527059458) than `npx` for locally installed packages.
13
- {% /callout %}
14
-
15
- Packages can declare executables in the `"bin"` field of their `package.json`. These are known as _package executables_ or _package binaries_.
16
-
17
- ```jsonc#package.json
18
- {
19
- // ... other fields
20
- "name": "my-cli",
21
- "bin": {
22
- "my-cli": "dist/index.js"
23
- }
24
- }
25
- ```
26
-
27
- These executables are commonly plain JavaScript files marked with a [shebang line](<https://en.wikipedia.org/wiki/Shebang_(Unix)>) to indicate which program should be used to execute them. The following file indicates that it should be executed with `node`.
28
-
29
- ```js#dist/index.js
30
- #!/usr/bin/env node
31
-
32
- console.log("Hello world!");
33
- ```
34
-
35
- These executables can be run with `bunx`,
36
-
37
- ```bash
38
- $ bunx my-cli
39
- ```
40
-
41
- As with `npx`, `bunx` will check for a locally installed package first, then fall back to auto-installing the package from `npm`. Installed packages will be stored in Bun's global cache for future use.
42
-
43
- ## Arguments and flags
44
-
45
- To pass additional command-line flags and arguments through to the executable, place them after the executable name.
46
-
47
- ```bash
48
- $ bunx my-cli --foo bar
49
- ```
50
-
51
- ## Shebangs
52
-
53
- By default, Bun respects shebangs. If an executable is marked with `#!/usr/bin/env node`, Bun will spin up a `node` process to execute the file. However, in some cases it may be desirable to run executables using Bun's runtime, even if the executable indicates otherwise. To do so, include the `--bun` flag.
54
-
55
- ```bash
56
- $ bunx --bun my-cli
57
- ```
58
-
59
- The `--bun` flag must occur _before_ the executable name. Flags that appear _after_ the name are passed through to the executable.
60
-
61
- ```bash
62
- $ bunx --bun my-cli # good
63
- $ bunx my-cli --bun # bad
64
- ```
65
-
66
- ## Package flag
67
-
68
- **`--package <pkg>` or `-p <pkg>`** - Run binary from specific package. Useful when binary name differs from package name:
69
-
70
- ```bash
71
- bunx -p renovate renovate-config-validator
72
- bunx --package @angular/cli ng
73
- ```
74
-
75
- To force bun to always be used with a script, use a shebang.
76
-
77
- ```
78
- #!/usr/bin/env bun
79
- ```
80
-
81
- <!-- ## Environment variables
82
-
83
- Bun automatically loads environment variables from `.env` files before running a file, script, or executable. The following files are checked, in order:
84
-
85
- 1. `.env.local` (first)
86
- 2. `NODE_ENV` === `"production"` ? `.env.production` : `.env.development`
87
- 3. `.env`
88
-
89
- To debug environment variables, run `bun --print process.env` to view a list of resolved environment variables. -->
@@ -1,90 +0,0 @@
1
- The `--filter` (or `-F`) flag is used for selecting packages by pattern in a monorepo. Patterns can be used to match package names or package paths, with full glob syntax support.
2
-
3
- Currently `--filter` is supported by `bun install` and `bun outdated`, and can also be used to run scripts for multiple packages at once.
4
-
5
- ## Matching
6
-
7
- ### Package Name `--filter <pattern>`
8
-
9
- Name patterns select packages based on the package name, as specified in `package.json`. For example, if you have packages `pkg-a`, `pkg-b` and `other`, you can match all packages with `*`, only `pkg-a` and `pkg-b` with `pkg*`, and a specific package by providing the full name of the package.
10
-
11
- ### Package Path `--filter ./<glob>`
12
-
13
- Path patterns are specified by starting the pattern with `./`, and will select all packages in directories that match the pattern. For example, to match all packages in subdirectories of `packages`, you can use `--filter './packages/**'`. To match a package located in `packages/foo`, use `--filter ./packages/foo`.
14
-
15
- ## `bun install` and `bun outdated`
16
-
17
- Both `bun install` and `bun outdated` support the `--filter` flag.
18
-
19
- `bun install` by default will install dependencies for all packages in the monorepo. To install dependencies for specific packages, use `--filter`.
20
-
21
- Given a monorepo with workspaces `pkg-a`, `pkg-b`, and `pkg-c` under `./packages`:
22
-
23
- ```bash
24
- # Install dependencies for all workspaces except `pkg-c`
25
- $ bun install --filter '!pkg-c'
26
-
27
- # Install dependencies for packages in `./packages` (`pkg-a`, `pkg-b`, `pkg-c`)
28
- $ bun install --filter './packages/*'
29
-
30
- # Save as above, but exclude the root package.json
31
- $ bun install --filter '!./' --filter './packages/*'
32
- ```
33
-
34
- Similarly, `bun outdated` will display outdated dependencies for all packages in the monorepo, and `--filter` can be used to restrict the command to a subset of the packages:
35
-
36
- ```bash
37
- # Display outdated dependencies for workspaces starting with `pkg-`
38
- $ bun outdated --filter 'pkg-*'
39
-
40
- # Display outdated dependencies for only the root package.json
41
- $ bun outdated --filter './'
42
- ```
43
-
44
- For more information on both these commands, see [`bun install`](https://bun.com/docs/cli/install) and [`bun outdated`](https://bun.com/docs/cli/outdated).
45
-
46
- ## Running scripts with `--filter`
47
-
48
- Use the `--filter` flag to execute scripts in multiple packages at once:
49
-
50
- ```bash
51
- bun --filter <pattern> <script>
52
- ```
53
-
54
- Say you have a monorepo with two packages: `packages/api` and `packages/frontend`, both with a `dev` script that will start a local development server. Normally, you would have to open two separate terminal tabs, cd into each package directory, and run `bun dev`:
55
-
56
- ```bash
57
- cd packages/api
58
- bun dev
59
-
60
- # in another terminal
61
- cd packages/frontend
62
- bun dev
63
- ```
64
-
65
- Using `--filter`, you can run the `dev` script in both packages at once:
66
-
67
- ```bash
68
- bun --filter '*' dev
69
- ```
70
-
71
- Both commands will be run in parallel, and you will see a nice terminal UI showing their respective outputs:
72
- ![Terminal Output](https://github.com/oven-sh/bun/assets/48869301/2a103e42-9921-4c33-948f-a1ad6e6bac71)
73
-
74
- ### Running scripts in workspaces
75
-
76
- Filters respect your [workspace configuration](https://bun.com/docs/install/workspaces): If you have a `package.json` file that specifies which packages are part of the workspace,
77
- `--filter` will be restricted to only these packages. Also, in a workspace you can use `--filter` to run scripts in packages that are located anywhere in the workspace:
78
-
79
- ```bash
80
- # Packages
81
- # src/foo
82
- # src/bar
83
-
84
- # in src/bar: runs myscript in src/foo, no need to cd!
85
- bun run --filter foo myscript
86
- ```
87
-
88
- ### Dependency Order
89
-
90
- Bun will respect package dependency order when running scripts. Say you have a package `foo` that depends on another package `bar` in your workspace, and both packages have a `build` script. When you run `bun --filter '*' build`, you will notice that `foo` will only start running once `bar` is done.
package/docs/cli/info.md DELETED
@@ -1,65 +0,0 @@
1
- `bun info` displays package metadata from the npm registry.
2
-
3
- ## Usage
4
-
5
- ```bash
6
- $ bun info react
7
- ```
8
-
9
- This will display information about the `react` package, including its latest version, description, homepage, dependencies, and more.
10
-
11
- ## Viewing specific versions
12
-
13
- To view information about a specific version:
14
-
15
- ```bash
16
- $ bun info react@18.0.0
17
- ```
18
-
19
- ## Viewing specific properties
20
-
21
- You can also query specific properties from the package metadata:
22
-
23
- ```bash
24
- $ bun info react version
25
- $ bun info react dependencies
26
- $ bun info react repository.url
27
- ```
28
-
29
- ## JSON output
30
-
31
- To get the output in JSON format, use the `--json` flag:
32
-
33
- ```bash
34
- $ bun info react --json
35
- ```
36
-
37
- ## Alias
38
-
39
- `bun pm view` is an alias for `bun info`:
40
-
41
- ```bash
42
- $ bun pm view react # equivalent to: bun info react
43
- ```
44
-
45
- ## Examples
46
-
47
- ```bash
48
- # View basic package information
49
- $ bun info is-number
50
-
51
- # View a specific version
52
- $ bun info is-number@7.0.0
53
-
54
- # View all available versions
55
- $ bun info is-number versions
56
-
57
- # View package dependencies
58
- $ bun info express dependencies
59
-
60
- # View package homepage
61
- $ bun info lodash homepage
62
-
63
- # Get JSON output
64
- $ bun info react --json
65
- ```