bun-types 1.3.2-canary.20251105T140650 → 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 (308) hide show
  1. package/docs/README.md +28 -0
  2. package/package.json +1 -1
  3. package/docs/api/binary-data.md +0 -1038
  4. package/docs/api/cc.md +0 -197
  5. package/docs/api/color.md +0 -262
  6. package/docs/api/console.md +0 -57
  7. package/docs/api/cookie.md +0 -449
  8. package/docs/api/dns.md +0 -110
  9. package/docs/api/fetch.md +0 -463
  10. package/docs/api/ffi.md +0 -557
  11. package/docs/api/file-io.md +0 -366
  12. package/docs/api/file-system-router.md +0 -112
  13. package/docs/api/file.md +0 -19
  14. package/docs/api/glob.md +0 -178
  15. package/docs/api/globals.md +0 -387
  16. package/docs/api/hashing.md +0 -319
  17. package/docs/api/html-rewriter.md +0 -334
  18. package/docs/api/http.md +0 -1408
  19. package/docs/api/import-meta.md +0 -69
  20. package/docs/api/node-api.md +0 -14
  21. package/docs/api/redis.md +0 -597
  22. package/docs/api/s3.md +0 -850
  23. package/docs/api/secrets.md +0 -319
  24. package/docs/api/semver.md +0 -52
  25. package/docs/api/spawn.md +0 -582
  26. package/docs/api/sql.md +0 -1374
  27. package/docs/api/sqlite.md +0 -694
  28. package/docs/api/streams.md +0 -230
  29. package/docs/api/tcp.md +0 -221
  30. package/docs/api/transpiler.md +0 -276
  31. package/docs/api/udp.md +0 -123
  32. package/docs/api/utils.md +0 -891
  33. package/docs/api/websockets.md +0 -573
  34. package/docs/api/workers.md +0 -322
  35. package/docs/api/yaml.md +0 -668
  36. package/docs/benchmarks.md +0 -120
  37. package/docs/bun-flavored-toml.md +0 -42
  38. package/docs/bundler/css.md +0 -1028
  39. package/docs/bundler/css_modules.md +0 -145
  40. package/docs/bundler/executables.md +0 -626
  41. package/docs/bundler/fullstack.md +0 -418
  42. package/docs/bundler/hmr.md +0 -234
  43. package/docs/bundler/html.md +0 -349
  44. package/docs/bundler/index.md +0 -1735
  45. package/docs/bundler/intro.md +0 -75
  46. package/docs/bundler/loaders.md +0 -410
  47. package/docs/bundler/macros.md +0 -329
  48. package/docs/bundler/plugins.md +0 -449
  49. package/docs/bundler/vs-esbuild.md +0 -1127
  50. package/docs/cli/add.md +0 -173
  51. package/docs/cli/bun-completions.md +0 -3
  52. package/docs/cli/bun-create.md +0 -338
  53. package/docs/cli/bun-install.md +0 -349
  54. package/docs/cli/bun-upgrade.md +0 -39
  55. package/docs/cli/bunx.md +0 -89
  56. package/docs/cli/filter.md +0 -90
  57. package/docs/cli/info.md +0 -65
  58. package/docs/cli/init.md +0 -85
  59. package/docs/cli/install.md +0 -344
  60. package/docs/cli/link.md +0 -40
  61. package/docs/cli/outdated.md +0 -90
  62. package/docs/cli/patch-commit.md +0 -11
  63. package/docs/cli/pm.md +0 -285
  64. package/docs/cli/publish.md +0 -120
  65. package/docs/cli/remove.md +0 -7
  66. package/docs/cli/run.md +0 -261
  67. package/docs/cli/test.md +0 -397
  68. package/docs/cli/unlink.md +0 -9
  69. package/docs/cli/update.md +0 -129
  70. package/docs/cli/why.md +0 -67
  71. package/docs/contributing/upgrading-webkit.md +0 -57
  72. package/docs/ecosystem/elysia.md +0 -24
  73. package/docs/ecosystem/express.md +0 -37
  74. package/docs/ecosystem/hono.md +0 -18
  75. package/docs/ecosystem/react.md +0 -65
  76. package/docs/ecosystem/stric.md +0 -38
  77. package/docs/guides/binary/arraybuffer-to-array.md +0 -27
  78. package/docs/guides/binary/arraybuffer-to-blob.md +0 -24
  79. package/docs/guides/binary/arraybuffer-to-buffer.md +0 -25
  80. package/docs/guides/binary/arraybuffer-to-string.md +0 -15
  81. package/docs/guides/binary/arraybuffer-to-typedarray.md +0 -39
  82. package/docs/guides/binary/blob-to-arraybuffer.md +0 -14
  83. package/docs/guides/binary/blob-to-dataview.md +0 -14
  84. package/docs/guides/binary/blob-to-stream.md +0 -14
  85. package/docs/guides/binary/blob-to-string.md +0 -15
  86. package/docs/guides/binary/blob-to-typedarray.md +0 -14
  87. package/docs/guides/binary/buffer-to-arraybuffer.md +0 -14
  88. package/docs/guides/binary/buffer-to-blob.md +0 -14
  89. package/docs/guides/binary/buffer-to-readablestream.md +0 -41
  90. package/docs/guides/binary/buffer-to-string.md +0 -25
  91. package/docs/guides/binary/buffer-to-typedarray.md +0 -14
  92. package/docs/guides/binary/dataview-to-string.md +0 -15
  93. package/docs/guides/binary/typedarray-to-arraybuffer.md +0 -25
  94. package/docs/guides/binary/typedarray-to-blob.md +0 -16
  95. package/docs/guides/binary/typedarray-to-buffer.md +0 -14
  96. package/docs/guides/binary/typedarray-to-dataview.md +0 -14
  97. package/docs/guides/binary/typedarray-to-readablestream.md +0 -41
  98. package/docs/guides/binary/typedarray-to-string.md +0 -16
  99. package/docs/guides/deployment/railway.md +0 -157
  100. package/docs/guides/ecosystem/astro.md +0 -72
  101. package/docs/guides/ecosystem/discordjs.md +0 -77
  102. package/docs/guides/ecosystem/docker.md +0 -140
  103. package/docs/guides/ecosystem/drizzle.md +0 -185
  104. package/docs/guides/ecosystem/edgedb.md +0 -228
  105. package/docs/guides/ecosystem/elysia.md +0 -31
  106. package/docs/guides/ecosystem/express.md +0 -40
  107. package/docs/guides/ecosystem/hono.md +0 -39
  108. package/docs/guides/ecosystem/mongoose.md +0 -87
  109. package/docs/guides/ecosystem/neon-drizzle.md +0 -220
  110. package/docs/guides/ecosystem/neon-serverless-postgres.md +0 -55
  111. package/docs/guides/ecosystem/nextjs.md +0 -49
  112. package/docs/guides/ecosystem/nuxt.md +0 -56
  113. package/docs/guides/ecosystem/pm2.md +0 -57
  114. package/docs/guides/ecosystem/prisma.md +0 -141
  115. package/docs/guides/ecosystem/qwik.md +0 -107
  116. package/docs/guides/ecosystem/react.md +0 -50
  117. package/docs/guides/ecosystem/remix.md +0 -78
  118. package/docs/guides/ecosystem/render.md +0 -79
  119. package/docs/guides/ecosystem/sentry.md +0 -52
  120. package/docs/guides/ecosystem/solidstart.md +0 -58
  121. package/docs/guides/ecosystem/ssr-react.md +0 -51
  122. package/docs/guides/ecosystem/stric.md +0 -55
  123. package/docs/guides/ecosystem/sveltekit.md +0 -125
  124. package/docs/guides/ecosystem/systemd.md +0 -113
  125. package/docs/guides/ecosystem/vite.md +0 -71
  126. package/docs/guides/html-rewriter/extract-links.md +0 -68
  127. package/docs/guides/html-rewriter/extract-social-meta.md +0 -93
  128. package/docs/guides/http/cluster.md +0 -66
  129. package/docs/guides/http/fetch-unix.md +0 -33
  130. package/docs/guides/http/fetch.md +0 -24
  131. package/docs/guides/http/file-uploads.md +0 -94
  132. package/docs/guides/http/hot.md +0 -26
  133. package/docs/guides/http/proxy.md +0 -24
  134. package/docs/guides/http/server.md +0 -46
  135. package/docs/guides/http/simple.md +0 -18
  136. package/docs/guides/http/stream-file.md +0 -48
  137. package/docs/guides/http/stream-iterator.md +0 -47
  138. package/docs/guides/http/stream-node-streams-in-bun.md +0 -20
  139. package/docs/guides/http/tls.md +0 -30
  140. package/docs/guides/install/add-dev.md +0 -26
  141. package/docs/guides/install/add-git.md +0 -36
  142. package/docs/guides/install/add-optional.md +0 -25
  143. package/docs/guides/install/add-peer.md +0 -43
  144. package/docs/guides/install/add-tarball.md +0 -33
  145. package/docs/guides/install/add.md +0 -42
  146. package/docs/guides/install/azure-artifacts.md +0 -73
  147. package/docs/guides/install/cicd.md +0 -41
  148. package/docs/guides/install/custom-registry.md +0 -30
  149. package/docs/guides/install/from-npm-install-to-bun-install.md +0 -214
  150. package/docs/guides/install/git-diff-bun-lockfile.md +0 -44
  151. package/docs/guides/install/jfrog-artifactory.md +0 -28
  152. package/docs/guides/install/npm-alias.md +0 -23
  153. package/docs/guides/install/registry-scope.md +0 -38
  154. package/docs/guides/install/trusted.md +0 -46
  155. package/docs/guides/install/workspaces.md +0 -70
  156. package/docs/guides/install/yarnlock.md +0 -44
  157. package/docs/guides/process/argv.md +0 -58
  158. package/docs/guides/process/ctrl-c.md +0 -16
  159. package/docs/guides/process/ipc.md +0 -66
  160. package/docs/guides/process/nanoseconds.md +0 -13
  161. package/docs/guides/process/os-signals.md +0 -39
  162. package/docs/guides/process/spawn-stderr.md +0 -31
  163. package/docs/guides/process/spawn-stdout.md +0 -26
  164. package/docs/guides/process/spawn.md +0 -41
  165. package/docs/guides/process/stdin.md +0 -54
  166. package/docs/guides/read-file/arraybuffer.md +0 -28
  167. package/docs/guides/read-file/buffer.md +0 -19
  168. package/docs/guides/read-file/exists.md +0 -16
  169. package/docs/guides/read-file/json.md +0 -17
  170. package/docs/guides/read-file/mime.md +0 -20
  171. package/docs/guides/read-file/stream.md +0 -26
  172. package/docs/guides/read-file/string.md +0 -22
  173. package/docs/guides/read-file/uint8array.md +0 -21
  174. package/docs/guides/read-file/watch.md +0 -68
  175. package/docs/guides/runtime/build-time-constants.md +0 -293
  176. package/docs/guides/runtime/cicd.md +0 -43
  177. package/docs/guides/runtime/codesign-macos-executable.md +0 -56
  178. package/docs/guides/runtime/define-constant.md +0 -145
  179. package/docs/guides/runtime/delete-directory.md +0 -37
  180. package/docs/guides/runtime/delete-file.md +0 -19
  181. package/docs/guides/runtime/heap-snapshot.md +0 -26
  182. package/docs/guides/runtime/import-html.md +0 -15
  183. package/docs/guides/runtime/import-json.md +0 -44
  184. package/docs/guides/runtime/import-toml.md +0 -30
  185. package/docs/guides/runtime/import-yaml.md +0 -102
  186. package/docs/guides/runtime/read-env.md +0 -32
  187. package/docs/guides/runtime/set-env.md +0 -47
  188. package/docs/guides/runtime/shell.md +0 -40
  189. package/docs/guides/runtime/timezone.md +0 -35
  190. package/docs/guides/runtime/tsconfig-paths.md +0 -29
  191. package/docs/guides/runtime/typescript.md +0 -49
  192. package/docs/guides/runtime/vscode-debugger.md +0 -47
  193. package/docs/guides/runtime/web-debugger.md +0 -82
  194. package/docs/guides/streams/node-readable-to-arraybuffer.md +0 -11
  195. package/docs/guides/streams/node-readable-to-blob.md +0 -11
  196. package/docs/guides/streams/node-readable-to-json.md +0 -12
  197. package/docs/guides/streams/node-readable-to-string.md +0 -12
  198. package/docs/guides/streams/node-readable-to-uint8array.md +0 -11
  199. package/docs/guides/streams/to-array.md +0 -14
  200. package/docs/guides/streams/to-arraybuffer.md +0 -14
  201. package/docs/guides/streams/to-blob.md +0 -14
  202. package/docs/guides/streams/to-buffer.md +0 -15
  203. package/docs/guides/streams/to-json.md +0 -14
  204. package/docs/guides/streams/to-string.md +0 -14
  205. package/docs/guides/streams/to-typedarray.md +0 -22
  206. package/docs/guides/test/bail.md +0 -22
  207. package/docs/guides/test/coverage-threshold.md +0 -60
  208. package/docs/guides/test/coverage.md +0 -44
  209. package/docs/guides/test/happy-dom.md +0 -68
  210. package/docs/guides/test/migrate-from-jest.md +0 -143
  211. package/docs/guides/test/mock-clock.md +0 -48
  212. package/docs/guides/test/mock-functions.md +0 -68
  213. package/docs/guides/test/rerun-each.md +0 -14
  214. package/docs/guides/test/run-tests.md +0 -111
  215. package/docs/guides/test/skip-tests.md +0 -39
  216. package/docs/guides/test/snapshot.md +0 -95
  217. package/docs/guides/test/spy-on.md +0 -46
  218. package/docs/guides/test/svelte-test.md +0 -120
  219. package/docs/guides/test/testing-library.md +0 -92
  220. package/docs/guides/test/timeout.md +0 -15
  221. package/docs/guides/test/todo-tests.md +0 -67
  222. package/docs/guides/test/update-snapshots.md +0 -46
  223. package/docs/guides/test/watch-mode.md +0 -19
  224. package/docs/guides/util/base64.md +0 -15
  225. package/docs/guides/util/deep-equals.md +0 -39
  226. package/docs/guides/util/deflate.md +0 -18
  227. package/docs/guides/util/detect-bun.md +0 -23
  228. package/docs/guides/util/entrypoint.md +0 -17
  229. package/docs/guides/util/escape-html.md +0 -22
  230. package/docs/guides/util/file-url-to-path.md +0 -14
  231. package/docs/guides/util/gzip.md +0 -18
  232. package/docs/guides/util/hash-a-password.md +0 -54
  233. package/docs/guides/util/import-meta-dir.md +0 -13
  234. package/docs/guides/util/import-meta-file.md +0 -13
  235. package/docs/guides/util/import-meta-path.md +0 -13
  236. package/docs/guides/util/javascript-uuid.md +0 -23
  237. package/docs/guides/util/main.md +0 -32
  238. package/docs/guides/util/path-to-file-url.md +0 -14
  239. package/docs/guides/util/sleep.md +0 -22
  240. package/docs/guides/util/version.md +0 -21
  241. package/docs/guides/util/which-path-to-executable-bin.md +0 -15
  242. package/docs/guides/websocket/compression.md +0 -31
  243. package/docs/guides/websocket/context.md +0 -77
  244. package/docs/guides/websocket/pubsub.md +0 -41
  245. package/docs/guides/websocket/simple.md +0 -33
  246. package/docs/guides/write-file/append.md +0 -52
  247. package/docs/guides/write-file/basic.md +0 -44
  248. package/docs/guides/write-file/blob.md +0 -28
  249. package/docs/guides/write-file/cat.md +0 -17
  250. package/docs/guides/write-file/file-cp.md +0 -16
  251. package/docs/guides/write-file/filesink.md +0 -52
  252. package/docs/guides/write-file/response.md +0 -17
  253. package/docs/guides/write-file/stdout.md +0 -21
  254. package/docs/guides/write-file/stream.md +0 -17
  255. package/docs/guides/write-file/unlink.md +0 -16
  256. package/docs/index.md +0 -77
  257. package/docs/install/audit.md +0 -57
  258. package/docs/install/cache.md +0 -59
  259. package/docs/install/catalogs.md +0 -298
  260. package/docs/install/index.md +0 -248
  261. package/docs/install/isolated.md +0 -197
  262. package/docs/install/lifecycle.md +0 -46
  263. package/docs/install/lockfile.md +0 -58
  264. package/docs/install/npmrc.md +0 -105
  265. package/docs/install/overrides.md +0 -73
  266. package/docs/install/patch.md +0 -59
  267. package/docs/install/registries.md +0 -30
  268. package/docs/install/security-scanner-api.md +0 -81
  269. package/docs/install/workspaces.md +0 -114
  270. package/docs/installation.md +0 -327
  271. package/docs/project/asan.md +0 -124
  272. package/docs/project/benchmarking.md +0 -203
  273. package/docs/project/bindgen.md +0 -225
  274. package/docs/project/building-windows.md +0 -162
  275. package/docs/project/contributing.md +0 -347
  276. package/docs/project/internals/build-process-for-ci.md +0 -75
  277. package/docs/project/licensing.md +0 -73
  278. package/docs/project/roadmap.md +0 -87
  279. package/docs/quickstart.md +0 -157
  280. package/docs/runtime/autoimport.md +0 -94
  281. package/docs/runtime/bun-apis.md +0 -207
  282. package/docs/runtime/bunfig.md +0 -772
  283. package/docs/runtime/debugger.md +0 -325
  284. package/docs/runtime/env.md +0 -253
  285. package/docs/runtime/hot.md +0 -145
  286. package/docs/runtime/index.md +0 -312
  287. package/docs/runtime/jsx.md +0 -385
  288. package/docs/runtime/loaders.md +0 -130
  289. package/docs/runtime/modules.md +0 -320
  290. package/docs/runtime/nodejs-apis.md +0 -463
  291. package/docs/runtime/plugins.md +0 -561
  292. package/docs/runtime/shell.md +0 -605
  293. package/docs/runtime/typescript.md +0 -139
  294. package/docs/runtime/web-apis.md +0 -128
  295. package/docs/test/configuration.md +0 -154
  296. package/docs/test/coverage.md +0 -142
  297. package/docs/test/discovery.md +0 -85
  298. package/docs/test/dom.md +0 -75
  299. package/docs/test/examples/concurrent-test-glob.md +0 -132
  300. package/docs/test/hot.md +0 -15
  301. package/docs/test/lifecycle.md +0 -81
  302. package/docs/test/mocks.md +0 -313
  303. package/docs/test/reporters.md +0 -117
  304. package/docs/test/runtime-behavior.md +0 -95
  305. package/docs/test/snapshots.md +0 -68
  306. package/docs/test/time.md +0 -126
  307. package/docs/test/writing.md +0 -825
  308. package/docs/typescript.md +0 -53
package/docs/cli/init.md DELETED
@@ -1,85 +0,0 @@
1
- Scaffold an empty Bun project with the interactive `bun init` command.
2
-
3
- ```bash
4
- $ bun init
5
-
6
- ? Select a project template - Press return to submit.
7
- ❯ Blank
8
- React
9
- Library
10
-
11
- ✓ Select a project template: Blank
12
-
13
- + .gitignore
14
- + index.ts
15
- + tsconfig.json (for editor autocomplete)
16
- + README.md
17
-
18
- To get started, run:
19
-
20
- bun run index.ts
21
-
22
- bun install v1.3.2-canary.20251105T140650
23
-
24
- + @types/bun@1.3.2-canary.20251105T140650
25
- + typescript@5.9.2
26
-
27
- 7 packages installed
28
- ```
29
-
30
- Press `enter` to accept the default answer for each prompt, or pass the `-y` flag to auto-accept the defaults.
31
-
32
- {% details summary="How `bun init` works" %}
33
-
34
- `bun init` is a quick way to start a blank project with Bun. It guesses with sane defaults and is non-destructive when run multiple times.
35
-
36
- ![Demo](https://user-images.githubusercontent.com/709451/183006613-271960a3-ff22-4f7c-83f5-5e18f684c836.gif)
37
-
38
- It creates:
39
-
40
- - a `package.json` file with a name that defaults to the current directory name
41
- - a `tsconfig.json` file or a `jsconfig.json` file, depending if the entry point is a TypeScript file or not
42
- - an entry point which defaults to `index.ts` unless any of `index.{tsx, jsx, js, mts, mjs}` exist or the `package.json` specifies a `module` or `main` field
43
- - a `README.md` file
44
-
45
- AI Agent rules (disable with `$BUN_AGENT_RULE_DISABLED=1`):
46
-
47
- - a `CLAUDE.md` file when Claude CLI is detected (disable with `CLAUDE_CODE_AGENT_RULE_DISABLED` env var)
48
- - a `.cursor/rules/*.mdc` file to guide [Cursor AI](https://cursor.sh) to use Bun instead of Node.js and npm when Cursor is detected
49
-
50
- If you pass `-y` or `--yes`, it will assume you want to continue without asking questions.
51
-
52
- At the end, it runs `bun install` to install `@types/bun`.
53
-
54
- {% /details %}
55
-
56
- {% bunCLIUsage command="init" /%}
57
-
58
- ## React
59
-
60
- The `--react` flag will scaffold a React project:
61
-
62
- ```bash
63
- $ bun init --react
64
- ```
65
-
66
- The `--react` flag accepts the following values:
67
-
68
- - `tailwind` - Scaffold a React project with Tailwind CSS
69
- - `shadcn` - Scaffold a React project with Shadcn/UI and Tailwind CSS
70
-
71
- ### React + TailwindCSS
72
-
73
- This will create a React project with Tailwind CSS configured with Bun's bundler and dev server.
74
-
75
- ```bash
76
- $ bun init --react=tailwind
77
- ```
78
-
79
- ### React + @shadcn/ui
80
-
81
- This will create a React project with shadcn/ui and Tailwind CSS configured with Bun's bundler and dev server.
82
-
83
- ```bash
84
- $ bun init --react=shadcn
85
- ```
@@ -1,344 +0,0 @@
1
- The `bun` CLI contains a Node.js-compatible package manager designed to be a dramatically faster replacement for `npm`, `yarn`, and `pnpm`. It's a standalone tool that will work in pre-existing Node.js projects; if your project has a `package.json`, `bun install` can help you speed up your workflow.
2
-
3
- {% callout %}
4
-
5
- **⚡️ 25x faster** — Switch from `npm install` to `bun install` in any Node.js project to make your installations up to 25x faster.
6
-
7
- {% image src="https://user-images.githubusercontent.com/709451/147004342-571b6123-17a9-49a2-8bfd-dcfc5204047e.png" height="200" /%}
8
-
9
- {% /callout %}
10
-
11
- {% callout %}
12
-
13
- **💾 Disk efficient** — Bun install stores all packages in a global cache (`~/.bun/install/cache/`) and creates hardlinks (Linux) or copy-on-write clones (macOS) to `node_modules`. This means duplicate packages across projects point to the same underlying data, taking up virtually no extra disk space.
14
-
15
- For more details, see [Package manager > Global cache](https://bun.com/docs/install/cache).
16
-
17
- {% /callout %}
18
-
19
- {% details summary="For Linux users" %}
20
- The recommended minimum Linux Kernel version is 5.6. If you're on Linux kernel 5.1 - 5.5, `bun install` will work, but HTTP requests will be slow due to a lack of support for io_uring's `connect()` operation.
21
-
22
- If you're using Ubuntu 20.04, here's how to install a [newer kernel](https://wiki.ubuntu.com/Kernel/LTSEnablementStack):
23
-
24
- ```bash
25
- # If this returns a version >= 5.6, you don't need to do anything
26
- $ uname -r
27
-
28
- # Install the official Ubuntu hardware enablement kernel
29
- $ sudo apt install --install-recommends linux-generic-hwe-20.04
30
- ```
31
-
32
- {% /details %}
33
-
34
- To install all dependencies of a project:
35
-
36
- ```bash
37
- $ bun install
38
- ```
39
-
40
- Running `bun install` will:
41
-
42
- - **Install** all `dependencies`, `devDependencies`, and `optionalDependencies`. Bun will install `peerDependencies` by default.
43
- - **Run** your project's `{pre|post}install` and `{pre|post}prepare` scripts at the appropriate time. For security reasons Bun _does not execute_ lifecycle scripts of installed dependencies.
44
- - **Write** a `bun.lock` lockfile to the project root.
45
-
46
- ## Logging
47
-
48
- To modify logging verbosity:
49
-
50
- ```bash
51
- $ bun install --verbose # debug logging
52
- $ bun install --silent # no logging
53
- ```
54
-
55
- ## Lifecycle scripts
56
-
57
- Unlike other npm clients, Bun does not execute arbitrary lifecycle scripts like `postinstall` for installed dependencies. Executing arbitrary scripts represents a potential security risk.
58
-
59
- To tell Bun to allow lifecycle scripts for a particular package, add the package to `trustedDependencies` in your package.json.
60
-
61
- ```json-diff
62
- {
63
- "name": "my-app",
64
- "version": "1.0.0",
65
- + "trustedDependencies": ["my-trusted-package"]
66
- }
67
- ```
68
-
69
- Then re-install the package. Bun will read this field and run lifecycle scripts for `my-trusted-package`.
70
-
71
- Lifecycle scripts will run in parallel during installation. To adjust the maximum number of concurrent scripts, use the `--concurrent-scripts` flag. The default is two times the reported cpu count or GOMAXPROCS.
72
-
73
- ```bash
74
- $ bun install --concurrent-scripts 5
75
- ```
76
-
77
- ## Workspaces
78
-
79
- Bun supports `"workspaces"` in package.json. For complete documentation refer to [Package manager > Workspaces](https://bun.com/docs/install/workspaces).
80
-
81
- ```json#package.json
82
- {
83
- "name": "my-app",
84
- "version": "1.0.0",
85
- "workspaces": ["packages/*"],
86
- "dependencies": {
87
- "preact": "^10.5.13"
88
- }
89
- }
90
- ```
91
-
92
- ## Installing dependencies for specific packages
93
-
94
- In a monorepo, you can install the dependencies for a subset of packages using the `--filter` flag.
95
-
96
- ```bash
97
- # Install dependencies for all workspaces except `pkg-c`
98
- $ bun install --filter '!pkg-c'
99
-
100
- # Install dependencies for only `pkg-a` in `./packages/pkg-a`
101
- $ bun install --filter './packages/pkg-a'
102
- ```
103
-
104
- For more information on filtering with `bun install`, refer to [Package Manager > Filtering](https://bun.com/docs/cli/filter#bun-install-and-bun-outdated)
105
-
106
- ## Overrides and resolutions
107
-
108
- Bun supports npm's `"overrides"` and Yarn's `"resolutions"` in `package.json`. These are mechanisms for specifying a version range for _metadependencies_—the dependencies of your dependencies. Refer to [Package manager > Overrides and resolutions](https://bun.com/docs/install/overrides) for complete documentation.
109
-
110
- ```json-diff#package.json
111
- {
112
- "name": "my-app",
113
- "dependencies": {
114
- "foo": "^2.0.0"
115
- },
116
- + "overrides": {
117
- + "bar": "~4.4.0"
118
- + }
119
- }
120
- ```
121
-
122
- ## Global packages
123
-
124
- To install a package globally, use the `-g`/`--global` flag. Typically this is used for installing command-line tools.
125
-
126
- ```bash
127
- $ bun install --global cowsay # or `bun install -g cowsay`
128
- $ cowsay "Bun!"
129
- ______
130
- < Bun! >
131
- ------
132
- \ ^__^
133
- \ (oo)\_______
134
- (__)\ )\/\
135
- ||----w |
136
- || ||
137
- ```
138
-
139
- ## Production mode
140
-
141
- To install in production mode (i.e. without `devDependencies` or `optionalDependencies`):
142
-
143
- ```bash
144
- $ bun install --production
145
- ```
146
-
147
- For reproducible installs, use `--frozen-lockfile`. This will install the exact versions of each package specified in the lockfile. If your `package.json` disagrees with `bun.lock`, Bun will exit with an error. The lockfile will not be updated.
148
-
149
- ```bash
150
- $ bun install --frozen-lockfile
151
- ```
152
-
153
- For more information on Bun's lockfile `bun.lock`, refer to [Package manager > Lockfile](https://bun.com/docs/install/lockfile).
154
-
155
- ## Omitting dependencies
156
-
157
- To omit dev, peer, or optional dependencies use the `--omit` flag.
158
-
159
- ```bash
160
- # Exclude "devDependencies" from the installation. This will apply to the
161
- # root package and workspaces if they exist. Transitive dependencies will
162
- # not have "devDependencies".
163
- $ bun install --omit dev
164
-
165
- # Install only dependencies from "dependencies"
166
- $ bun install --omit=dev --omit=peer --omit=optional
167
- ```
168
-
169
- ## Dry run
170
-
171
- To perform a dry run (i.e. don't actually install anything):
172
-
173
- ```bash
174
- $ bun install --dry-run
175
- ```
176
-
177
- ## Non-npm dependencies
178
-
179
- Bun supports installing dependencies from Git, GitHub, and local or remotely-hosted tarballs. For complete documentation refer to [Package manager > Git, GitHub, and tarball dependencies](https://bun.com/docs/cli/add).
180
-
181
- ```json#package.json
182
- {
183
- "dependencies": {
184
- "dayjs": "git+https://github.com/iamkun/dayjs.git",
185
- "lodash": "git+ssh://github.com/lodash/lodash.git#4.17.21",
186
- "moment": "git@github.com:moment/moment.git",
187
- "zod": "github:colinhacks/zod",
188
- "react": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
189
- "bun-types": "npm:@types/bun"
190
- }
191
- }
192
- ```
193
-
194
- ## Installation strategies
195
-
196
- Bun supports two package installation strategies that determine how dependencies are organized in `node_modules`:
197
-
198
- ### Hoisted installs (default for single projects)
199
-
200
- The traditional npm/Yarn approach that flattens dependencies into a shared `node_modules` directory:
201
-
202
- ```bash
203
- $ bun install --linker hoisted
204
- ```
205
-
206
- ### Isolated installs
207
-
208
- A pnpm-like approach that creates strict dependency isolation to prevent phantom dependencies:
209
-
210
- ```bash
211
- $ bun install --linker isolated
212
- ```
213
-
214
- Isolated installs create a central package store in `node_modules/.bun/` with symlinks in the top-level `node_modules`. This ensures packages can only access their declared dependencies.
215
-
216
- For complete documentation on isolated installs, refer to [Package manager > Isolated installs](https://bun.com/docs/install/isolated).
217
-
218
- ## Disk efficiency
219
-
220
- Bun uses a global cache at `~/.bun/install/cache/` to minimize disk usage. Packages are stored once and linked to `node_modules` using hardlinks (Linux/Windows) or copy-on-write (macOS), so duplicate packages across projects don't consume additional disk space.
221
-
222
- For complete documentation refer to [Package manager > Global cache](https://bun.com/docs/install/cache).
223
-
224
- ## Minimum release age
225
-
226
- To protect against supply chain attacks where malicious packages are quickly published, you can configure a minimum age requirement for npm packages. Package versions published more recently than the specified threshold (in seconds) will be filtered out during installation.
227
-
228
- ```bash
229
- # Only install package versions published at least 3 days ago
230
- $ bun add @types/bun --minimum-release-age 259200 # seconds
231
- ```
232
-
233
- You can also configure this in `bunfig.toml`:
234
-
235
- ```toml
236
- [install]
237
- # Only install package versions published at least 3 days ago
238
- minimumReleaseAge = 259200 # seconds
239
-
240
- # Exclude trusted packages from the age gate
241
- minimumReleaseAgeExcludes = ["@types/node", "typescript"]
242
- ```
243
-
244
- When the minimum age filter is active:
245
-
246
- - Only affects new package resolution - existing packages in `bun.lock` remain unchanged
247
- - All dependencies (direct and transitive) are filtered to meet the age requirement when being resolved
248
- - When versions are blocked by the age gate, a stability check detects rapid bugfix patterns
249
- - If multiple versions were published close together just outside your age gate, it extends the filter to skip those potentially unstable versions and selects an older, more mature version
250
- - Searches up to 7 days after the age gate, however if still finding rapid releases it ignores stability check
251
- - Exact version requests (like `package@1.1.1`) still respect the age gate but bypass the stability check
252
- - Versions without a `time` field are treated as passing the age check (npm registry should always provide timestamps)
253
-
254
- For more advanced security scanning, including integration with services & custom filtering, see [Package manager > Security Scanner API](https://bun.com/docs/install/security-scanner-api).
255
-
256
- ## Configuration
257
-
258
- The default behavior of `bun install` can be configured in `bunfig.toml`. The default values are shown below.
259
-
260
- ```toml
261
- [install]
262
-
263
- # whether to install optionalDependencies
264
- optional = true
265
-
266
- # whether to install devDependencies
267
- dev = true
268
-
269
- # whether to install peerDependencies
270
- peer = true
271
-
272
- # equivalent to `--production` flag
273
- production = false
274
-
275
- # equivalent to `--save-text-lockfile` flag
276
- saveTextLockfile = false
277
-
278
- # equivalent to `--frozen-lockfile` flag
279
- frozenLockfile = false
280
-
281
- # equivalent to `--dry-run` flag
282
- dryRun = false
283
-
284
- # equivalent to `--concurrent-scripts` flag
285
- concurrentScripts = 16 # (cpu count or GOMAXPROCS) x2
286
-
287
- # installation strategy: "hoisted" or "isolated"
288
- # default: "hoisted"
289
- linker = "hoisted"
290
-
291
- # minimum age config
292
- minimumReleaseAge = 259200 # seconds
293
- minimumReleaseAgeExcludes = ["@types/node", "typescript"]
294
- ```
295
-
296
- ## CI/CD
297
-
298
- Use the official [`oven-sh/setup-bun`](https://github.com/oven-sh/setup-bun) action to install `bun` in a GitHub Actions pipeline:
299
-
300
- ```yaml#.github/workflows/release.yml
301
- name: bun-types
302
- jobs:
303
- build:
304
- name: build-app
305
- runs-on: ubuntu-latest
306
- steps:
307
- - name: Checkout repo
308
- uses: actions/checkout@v4
309
- - name: Install bun
310
- uses: oven-sh/setup-bun@v2
311
- - name: Install dependencies
312
- run: bun install
313
- - name: Build app
314
- run: bun run build
315
- ```
316
-
317
- For CI/CD environments that want to enforce reproducible builds, use `bun ci` to fail the build if the package.json is out of sync with the lockfile:
318
-
319
- ```bash
320
- $ bun ci
321
- ```
322
-
323
- This is equivalent to `bun install --frozen-lockfile`. It installs exact versions from `bun.lock` and fails if `package.json` doesn't match the lockfile. To use `bun ci` or `bun install --frozen-lockfile`, you must commit `bun.lock` to version control.
324
-
325
- And instead of running `bun install`, run `bun ci`.
326
-
327
- ```yaml#.github/workflows/release.yml
328
- name: bun-types
329
- jobs:
330
- build:
331
- name: build-app
332
- runs-on: ubuntu-latest
333
- steps:
334
- - name: Checkout repo
335
- uses: actions/checkout@v4
336
- - name: Install bun
337
- uses: oven-sh/setup-bun@v2
338
- - name: Install dependencies
339
- run: bun ci
340
- - name: Build app
341
- run: bun run build
342
- ```
343
-
344
- {% bunCLIUsage command="install" /%}
package/docs/cli/link.md DELETED
@@ -1,40 +0,0 @@
1
- Use `bun link` in a local directory to register the current package as a "linkable" package.
2
-
3
- ```bash
4
- $ cd /path/to/cool-pkg
5
- $ cat package.json
6
- {
7
- "name": "cool-pkg",
8
- "version": "1.0.0"
9
- }
10
- $ bun link
11
- bun link v1.x (7416672e)
12
- Success! Registered "cool-pkg"
13
-
14
- To use cool-pkg in a project, run:
15
- bun link cool-pkg
16
-
17
- Or add it in dependencies in your package.json file:
18
- "cool-pkg": "link:cool-pkg"
19
- ```
20
-
21
- This package can now be "linked" into other projects using `bun link cool-pkg`. This will create a symlink in the `node_modules` directory of the target project, pointing to the local directory.
22
-
23
- ```bash
24
- $ cd /path/to/my-app
25
- $ bun link cool-pkg
26
- ```
27
-
28
- In addition, the `--save` flag can be used to add `cool-pkg` to the `dependencies` field of your app's package.json with a special version specifier that tells Bun to load from the registered local directory instead of installing from `npm`:
29
-
30
- ```json-diff
31
- {
32
- "name": "my-app",
33
- "version": "1.0.0",
34
- "dependencies": {
35
- + "cool-pkg": "link:cool-pkg"
36
- }
37
- }
38
- ```
39
-
40
- {% bunCLIUsage command="link" /%}
@@ -1,90 +0,0 @@
1
- Use `bun outdated` to check for outdated dependencies in your project. This command displays a table of dependencies that have newer versions available.
2
-
3
- {% bunOutdatedTerminal displayGlob="" filter="" glob="" /%}
4
-
5
- ## Version Information
6
-
7
- The output table shows three version columns:
8
-
9
- - **Current**: The version currently installed
10
- - **Update**: The latest version that satisfies your package.json version range
11
- - **Latest**: The latest version published to the registry
12
-
13
- ### Dependency Filters
14
-
15
- `bun outdated` supports searching for outdated dependencies by package names and glob patterns.
16
-
17
- To check if specific dependencies are outdated, pass the package names as positional arguments:
18
-
19
- {% bunOutdatedTerminal displayGlob="eslint-plugin-security eslint-plugin-sonarjs" glob="eslint-plugin-*" /%}
20
-
21
- You can also pass glob patterns to check for outdated packages:
22
-
23
- {% bunOutdatedTerminal displayGlob="'eslint*'" glob="eslint*" /%}
24
-
25
- For example, to check for outdated `@types/*` packages:
26
-
27
- {% bunOutdatedTerminal displayGlob="'@types/*'" glob="@types/*" /%}
28
-
29
- Or to exclude all `@types/*` packages:
30
-
31
- {% bunOutdatedTerminal displayGlob="'!@types/*'" glob="!@types/*" /%}
32
-
33
- ### Workspace Filters
34
-
35
- Use the `--filter` flag to check for outdated dependencies in a different workspace package:
36
-
37
- {% bunOutdatedTerminal glob="t*" filter="@monorepo/types" /%}
38
-
39
- You can pass multiple `--filter` flags to check multiple workspaces:
40
-
41
- {% bunOutdatedTerminal glob="{e,t}*" displayGlob="--filter @monorepo/types --filter @monorepo/cli" /%}
42
-
43
- You can also pass glob patterns to filter by workspace names:
44
-
45
- {% bunOutdatedTerminal glob="{e,t}*" displayGlob="--filter='@monorepo/{types,cli}'" /%}
46
-
47
- ### Catalog Dependencies
48
-
49
- `bun outdated` supports checking catalog dependencies defined in `package.json`:
50
-
51
- ```sh
52
- $ bun outdated -r
53
- ┌────────────────────┬─────────┬─────────┬─────────┬────────────────────────────────┐
54
- │ Package │ Current │ Update │ Latest │ Workspace │
55
- ├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
56
- │ body-parser │ 1.19.0 │ 1.19.0 │ 2.2.0 │ @test/shared │
57
- ├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
58
- │ cors │ 2.8.0 │ 2.8.0 │ 2.8.5 │ @test/shared │
59
- ├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
60
- │ chalk │ 4.0.0 │ 4.0.0 │ 5.6.2 │ @test/utils │
61
- ├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
62
- │ uuid │ 8.0.0 │ 8.0.0 │ 13.0.0 │ @test/utils │
63
- ├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
64
- │ axios │ 0.21.0 │ 0.21.0 │ 1.12.2 │ catalog (@test/app) │
65
- ├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
66
- │ lodash │ 4.17.15 │ 4.17.15 │ 4.17.21 │ catalog (@test/app, @test/app) │
67
- ├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
68
- │ react │ 17.0.0 │ 17.0.0 │ 19.1.1 │ catalog (@test/app) │
69
- ├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
70
- │ react-dom │ 17.0.0 │ 17.0.0 │ 19.1.1 │ catalog (@test/app) │
71
- ├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
72
- │ express │ 4.17.0 │ 4.17.0 │ 5.1.0 │ catalog (@test/shared) │
73
- ├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
74
- │ moment │ 2.24.0 │ 2.24.0 │ 2.30.1 │ catalog (@test/utils) │
75
- ├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
76
- │ @types/node (dev) │ 14.0.0 │ 14.0.0 │ 24.5.2 │ @test/shared │
77
- ├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
78
- │ @types/react (dev) │ 17.0.0 │ 17.0.0 │ 19.1.15 │ catalog:testing (@test/app) │
79
- ├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
80
- │ eslint (dev) │ 7.0.0 │ 7.0.0 │ 9.36.0 │ catalog:testing (@test/app) │
81
- ├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
82
- │ typescript (dev) │ 4.9.5 │ 4.9.5 │ 5.9.2 │ catalog:build (@test/app) │
83
- ├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
84
- │ jest (dev) │ 26.0.0 │ 26.0.0 │ 30.2.0 │ catalog:testing (@test/shared) │
85
- ├────────────────────┼─────────┼─────────┼─────────┼────────────────────────────────┤
86
- │ prettier (dev) │ 2.0.0 │ 2.0.0 │ 3.6.2 │ catalog:build (@test/utils) │
87
- └────────────────────┴─────────┴─────────┴─────────┴────────────────────────────────┘
88
- ```
89
-
90
- {% bunCLIUsage command="outdated" /%}
@@ -1,11 +0,0 @@
1
- An alias for `bun patch --commit` to maintain compatibility with pnpm.
2
-
3
- To get started with patch, first prepare the package for patching with [`bun patch <pkg>`](https://bun.com/docs/install/patch).
4
-
5
- ### `--patches-dir`
6
-
7
- By default, `bun patch-commit` will use the `patches` directory in the temporary directory.
8
-
9
- You can specify a different directory with the `--patches-dir` flag.
10
-
11
- {% bunCLIUsage command="patch-commit" /%}