bun-types 1.3.2-canary.20251105T140650 → 1.3.2

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 (370) hide show
  1. package/bun.d.ts +102 -6
  2. package/docs/README.md +28 -0
  3. package/docs/bundler/bytecode.mdx +465 -0
  4. package/docs/bundler/{css.md → css.mdx} +97 -101
  5. package/docs/bundler/esbuild.mdx +253 -0
  6. package/docs/bundler/{executables.md → executables.mdx} +130 -221
  7. package/docs/bundler/fullstack.mdx +1064 -0
  8. package/docs/bundler/{hmr.md → hot-reloading.mdx} +74 -79
  9. package/docs/bundler/{html.md → html-static.mdx} +148 -111
  10. package/docs/bundler/index.mdx +1499 -0
  11. package/docs/bundler/loaders.mdx +356 -0
  12. package/docs/bundler/{macros.md → macros.mdx} +83 -84
  13. package/docs/bundler/minifier.mdx +1306 -0
  14. package/docs/bundler/plugins.mdx +411 -0
  15. package/docs/feedback.mdx +85 -0
  16. package/docs/guides/binary/{arraybuffer-to-array.md → arraybuffer-to-array.mdx} +3 -1
  17. package/docs/guides/binary/{arraybuffer-to-blob.md → arraybuffer-to-blob.mdx} +3 -1
  18. package/docs/guides/binary/{arraybuffer-to-buffer.md → arraybuffer-to-buffer.mdx} +3 -1
  19. package/docs/guides/binary/{arraybuffer-to-string.md → arraybuffer-to-string.mdx} +3 -1
  20. package/docs/guides/binary/{arraybuffer-to-typedarray.md → arraybuffer-to-typedarray.mdx} +3 -1
  21. package/docs/guides/binary/{blob-to-arraybuffer.md → blob-to-arraybuffer.mdx} +3 -1
  22. package/docs/guides/binary/{blob-to-dataview.md → blob-to-dataview.mdx} +3 -1
  23. package/docs/guides/binary/{blob-to-stream.md → blob-to-stream.mdx} +3 -1
  24. package/docs/guides/binary/{blob-to-string.md → blob-to-string.mdx} +3 -1
  25. package/docs/guides/binary/{blob-to-typedarray.md → blob-to-typedarray.mdx} +3 -1
  26. package/docs/guides/binary/{buffer-to-arraybuffer.md → buffer-to-arraybuffer.mdx} +3 -1
  27. package/docs/guides/binary/{buffer-to-blob.md → buffer-to-blob.mdx} +3 -1
  28. package/docs/guides/binary/{buffer-to-readablestream.md → buffer-to-readablestream.mdx} +3 -1
  29. package/docs/guides/binary/{buffer-to-string.md → buffer-to-string.mdx} +3 -1
  30. package/docs/guides/binary/{buffer-to-typedarray.md → buffer-to-typedarray.mdx} +3 -1
  31. package/docs/guides/binary/{dataview-to-string.md → dataview-to-string.mdx} +3 -1
  32. package/docs/guides/binary/{typedarray-to-arraybuffer.md → typedarray-to-arraybuffer.mdx} +3 -1
  33. package/docs/guides/binary/{typedarray-to-blob.md → typedarray-to-blob.mdx} +3 -1
  34. package/docs/guides/binary/{typedarray-to-buffer.md → typedarray-to-buffer.mdx} +3 -1
  35. package/docs/guides/binary/{typedarray-to-dataview.md → typedarray-to-dataview.mdx} +3 -1
  36. package/docs/guides/binary/{typedarray-to-readablestream.md → typedarray-to-readablestream.mdx} +3 -1
  37. package/docs/guides/binary/{typedarray-to-string.md → typedarray-to-string.mdx} +3 -1
  38. package/docs/guides/deployment/aws-lambda.mdx +204 -0
  39. package/docs/guides/deployment/digital-ocean.mdx +161 -0
  40. package/docs/guides/deployment/google-cloud-run.mdx +197 -0
  41. package/docs/guides/deployment/{railway.md → railway.mdx} +42 -54
  42. package/docs/guides/deployment/render.mdx +82 -0
  43. package/docs/guides/deployment/vercel.mdx +99 -0
  44. package/docs/guides/ecosystem/{astro.md → astro.mdx} +16 -6
  45. package/docs/guides/ecosystem/{discordjs.md → discordjs.mdx} +21 -18
  46. package/docs/guides/ecosystem/{docker.md → docker.mdx} +25 -14
  47. package/docs/guides/ecosystem/{drizzle.md → drizzle.mdx} +32 -22
  48. package/docs/guides/ecosystem/{edgedb.md → edgedb.mdx} +63 -34
  49. package/docs/guides/ecosystem/{elysia.md → elysia.mdx} +11 -11
  50. package/docs/guides/ecosystem/{express.md → express.mdx} +12 -9
  51. package/docs/guides/ecosystem/{hono.md → hono.mdx} +16 -8
  52. package/docs/guides/ecosystem/{mongoose.md → mongoose.mdx} +26 -21
  53. package/docs/guides/ecosystem/{neon-drizzle.md → neon-drizzle.mdx} +49 -35
  54. package/docs/guides/ecosystem/{neon-serverless-postgres.md → neon-serverless-postgres.mdx} +16 -11
  55. package/docs/guides/ecosystem/{nextjs.md → nextjs.mdx} +18 -10
  56. package/docs/guides/ecosystem/{nuxt.md → nuxt.mdx} +45 -11
  57. package/docs/guides/ecosystem/{pm2.md → pm2.mdx} +7 -9
  58. package/docs/guides/ecosystem/prisma-postgres.mdx +169 -0
  59. package/docs/guides/ecosystem/prisma.mdx +164 -0
  60. package/docs/guides/ecosystem/{qwik.md → qwik.mdx} +18 -11
  61. package/docs/guides/ecosystem/{react.md → react.mdx} +9 -7
  62. package/docs/guides/ecosystem/{remix.md → remix.mdx} +45 -26
  63. package/docs/guides/ecosystem/{sentry.md → sentry.mdx} +7 -5
  64. package/docs/guides/ecosystem/{solidstart.md → solidstart.mdx} +21 -13
  65. package/docs/guides/ecosystem/{ssr-react.md → ssr-react.mdx} +9 -11
  66. package/docs/guides/ecosystem/{stric.md → stric.mdx} +16 -17
  67. package/docs/guides/ecosystem/{sveltekit.md → sveltekit.mdx} +42 -29
  68. package/docs/guides/ecosystem/{systemd.md → systemd.mdx} +27 -26
  69. package/docs/guides/ecosystem/upstash.mdx +87 -0
  70. package/docs/guides/ecosystem/{vite.md → vite.mdx} +20 -14
  71. package/docs/guides/html-rewriter/{extract-links.md → extract-links.mdx} +11 -7
  72. package/docs/guides/html-rewriter/{extract-social-meta.md → extract-social-meta.mdx} +6 -2
  73. package/docs/guides/http/{cluster.md → cluster.mdx} +10 -7
  74. package/docs/guides/http/{fetch-unix.md → fetch-unix.mdx} +5 -3
  75. package/docs/guides/http/{fetch.md → fetch.mdx} +5 -3
  76. package/docs/guides/http/{file-uploads.md → file-uploads.mdx} +18 -15
  77. package/docs/guides/http/{hot.md → hot.mdx} +9 -7
  78. package/docs/guides/http/{proxy.md → proxy.mdx} +7 -5
  79. package/docs/guides/http/{server.md → server.mdx} +4 -2
  80. package/docs/guides/http/{simple.md → simple.mdx} +4 -2
  81. package/docs/guides/http/{stream-file.md → stream-file.mdx} +6 -4
  82. package/docs/guides/http/{stream-iterator.md → stream-iterator.mdx} +5 -3
  83. package/docs/guides/http/{stream-node-streams-in-bun.md → stream-node-streams-in-bun.mdx} +4 -2
  84. package/docs/guides/http/{tls.md → tls.mdx} +5 -3
  85. package/docs/guides/index.mdx +10 -0
  86. package/docs/guides/install/{add-dev.md → add-dev.mdx} +8 -6
  87. package/docs/guides/install/add-git.mdx +38 -0
  88. package/docs/guides/install/{add-optional.md → add-optional.mdx} +7 -5
  89. package/docs/guides/install/{add-peer.md → add-peer.mdx} +13 -11
  90. package/docs/guides/install/{add-tarball.md → add-tarball.mdx} +7 -5
  91. package/docs/guides/install/{add.md → add.mdx} +12 -10
  92. package/docs/guides/install/{azure-artifacts.md → azure-artifacts.mdx} +15 -12
  93. package/docs/guides/{runtime/cicd.md → install/cicd.mdx} +13 -13
  94. package/docs/guides/install/{custom-registry.md → custom-registry.mdx} +6 -4
  95. package/docs/guides/install/{from-npm-install-to-bun-install.md → from-npm-install-to-bun-install.mdx} +50 -34
  96. package/docs/guides/install/{git-diff-bun-lockfile.md → git-diff-bun-lockfile.mdx} +14 -11
  97. package/docs/guides/install/{jfrog-artifactory.md → jfrog-artifactory.mdx} +4 -4
  98. package/docs/guides/install/{npm-alias.md → npm-alias.mdx} +6 -4
  99. package/docs/guides/install/{registry-scope.md → registry-scope.mdx} +6 -4
  100. package/docs/guides/install/{trusted.md → trusted.mdx} +22 -18
  101. package/docs/guides/install/{workspaces.md → workspaces.mdx} +13 -13
  102. package/docs/guides/install/{yarnlock.md → yarnlock.mdx} +15 -9
  103. package/docs/guides/process/{argv.md → argv.mdx} +17 -9
  104. package/docs/guides/process/{ctrl-c.md → ctrl-c.mdx} +4 -2
  105. package/docs/guides/process/{ipc.md → ipc.mdx} +13 -10
  106. package/docs/guides/process/{nanoseconds.md → nanoseconds.mdx} +3 -1
  107. package/docs/guides/process/{os-signals.md → os-signals.mdx} +3 -1
  108. package/docs/guides/process/{spawn-stderr.md → spawn-stderr.mdx} +4 -1
  109. package/docs/guides/process/{spawn-stdout.md → spawn-stdout.mdx} +3 -1
  110. package/docs/guides/process/{spawn.md → spawn.mdx} +3 -1
  111. package/docs/guides/process/{stdin.md → stdin.mdx} +15 -7
  112. package/docs/guides/read-file/{arraybuffer.md → arraybuffer.mdx} +5 -3
  113. package/docs/guides/read-file/{buffer.md → buffer.mdx} +4 -2
  114. package/docs/guides/read-file/{exists.md → exists.mdx} +4 -2
  115. package/docs/guides/read-file/{json.md → json.mdx} +4 -2
  116. package/docs/guides/read-file/{mime.md → mime.mdx} +3 -1
  117. package/docs/guides/read-file/{stream.md → stream.mdx} +3 -1
  118. package/docs/guides/read-file/{string.md → string.mdx} +3 -1
  119. package/docs/guides/read-file/{uint8array.md → uint8array.mdx} +3 -1
  120. package/docs/guides/read-file/{watch.md → watch.mdx} +6 -8
  121. package/docs/guides/runtime/{build-time-constants.md → build-time-constants.mdx} +24 -22
  122. package/docs/guides/{install/cicd.md → runtime/cicd.mdx} +11 -7
  123. package/docs/guides/runtime/{codesign-macos-executable.md → codesign-macos-executable.mdx} +14 -9
  124. package/docs/guides/runtime/{define-constant.md → define-constant.mdx} +20 -16
  125. package/docs/guides/runtime/{delete-directory.md → delete-directory.mdx} +5 -3
  126. package/docs/guides/runtime/{delete-file.md → delete-file.mdx} +4 -2
  127. package/docs/guides/runtime/{heap-snapshot.md → heap-snapshot.mdx} +5 -3
  128. package/docs/guides/runtime/{import-html.md → import-html.mdx} +4 -2
  129. package/docs/guides/runtime/{import-json.md → import-json.mdx} +6 -4
  130. package/docs/guides/runtime/{import-toml.md → import-toml.mdx} +5 -3
  131. package/docs/guides/runtime/{import-yaml.md → import-yaml.mdx} +9 -7
  132. package/docs/guides/runtime/{read-env.md → read-env.mdx} +10 -5
  133. package/docs/guides/runtime/{set-env.md → set-env.mdx} +14 -10
  134. package/docs/guides/runtime/{shell.md → shell.mdx} +6 -4
  135. package/docs/guides/runtime/{timezone.md → timezone.mdx} +10 -7
  136. package/docs/guides/runtime/{tsconfig-paths.md → tsconfig-paths.mdx} +5 -3
  137. package/docs/guides/runtime/{typescript.md → typescript.mdx} +8 -6
  138. package/docs/guides/runtime/{vscode-debugger.md → vscode-debugger.mdx} +12 -11
  139. package/docs/guides/runtime/{web-debugger.md → web-debugger.mdx} +39 -18
  140. package/docs/guides/streams/{node-readable-to-arraybuffer.md → node-readable-to-arraybuffer.mdx} +3 -1
  141. package/docs/guides/streams/{node-readable-to-blob.md → node-readable-to-blob.mdx} +3 -1
  142. package/docs/guides/streams/{node-readable-to-json.md → node-readable-to-json.mdx} +3 -1
  143. package/docs/guides/streams/{node-readable-to-string.md → node-readable-to-string.mdx} +3 -1
  144. package/docs/guides/streams/{node-readable-to-uint8array.md → node-readable-to-uint8array.mdx} +3 -1
  145. package/docs/guides/streams/{to-array.md → to-array.mdx} +3 -1
  146. package/docs/guides/streams/{to-arraybuffer.md → to-arraybuffer.mdx} +3 -1
  147. package/docs/guides/streams/{to-blob.md → to-blob.mdx} +3 -1
  148. package/docs/guides/streams/{to-buffer.md → to-buffer.mdx} +3 -1
  149. package/docs/guides/streams/{to-json.md → to-json.mdx} +4 -2
  150. package/docs/guides/streams/{to-string.md → to-string.mdx} +3 -1
  151. package/docs/guides/streams/{to-typedarray.md → to-typedarray.mdx} +3 -1
  152. package/docs/guides/test/{bail.md → bail.mdx} +7 -5
  153. package/docs/guides/test/{coverage-threshold.md → coverage-threshold.mdx} +14 -7
  154. package/docs/guides/test/{coverage.md → coverage.mdx} +9 -4
  155. package/docs/guides/test/{happy-dom.md → happy-dom.mdx} +13 -8
  156. package/docs/guides/test/{migrate-from-jest.md → migrate-from-jest.mdx} +19 -37
  157. package/docs/guides/test/{mock-clock.md → mock-clock.mdx} +3 -1
  158. package/docs/guides/test/{mock-functions.md → mock-functions.mdx} +7 -5
  159. package/docs/guides/test/{rerun-each.md → rerun-each.mdx} +5 -3
  160. package/docs/guides/test/{run-tests.md → run-tests.mdx} +16 -11
  161. package/docs/guides/test/{skip-tests.md → skip-tests.mdx} +8 -4
  162. package/docs/guides/test/{snapshot.md → snapshot.mdx} +20 -13
  163. package/docs/guides/test/spy-on.mdx +49 -0
  164. package/docs/guides/test/{svelte-test.md → svelte-test.mdx} +16 -23
  165. package/docs/guides/test/{testing-library.md → testing-library.mdx} +18 -17
  166. package/docs/guides/test/{timeout.md → timeout.mdx} +5 -3
  167. package/docs/guides/test/{todo-tests.md → todo-tests.mdx} +13 -6
  168. package/docs/guides/test/{update-snapshots.md → update-snapshots.mdx} +9 -6
  169. package/docs/guides/test/{watch-mode.md → watch-mode.mdx} +9 -4
  170. package/docs/guides/util/{base64.md → base64.mdx} +3 -1
  171. package/docs/guides/util/{deep-equals.md → deep-equals.mdx} +5 -3
  172. package/docs/guides/util/{deflate.md → deflate.mdx} +3 -1
  173. package/docs/guides/util/{detect-bun.md → detect-bun.mdx} +3 -1
  174. package/docs/guides/util/{entrypoint.md → entrypoint.mdx} +4 -2
  175. package/docs/guides/util/{escape-html.md → escape-html.mdx} +3 -1
  176. package/docs/guides/util/{file-url-to-path.md → file-url-to-path.mdx} +3 -1
  177. package/docs/guides/util/{gzip.md → gzip.mdx} +3 -1
  178. package/docs/guides/util/{hash-a-password.md → hash-a-password.mdx} +3 -1
  179. package/docs/guides/util/{import-meta-dir.md → import-meta-dir.mdx} +4 -2
  180. package/docs/guides/util/{import-meta-file.md → import-meta-file.mdx} +4 -2
  181. package/docs/guides/util/{import-meta-path.md → import-meta-path.mdx} +4 -2
  182. package/docs/guides/util/{javascript-uuid.md → javascript-uuid.mdx} +3 -1
  183. package/docs/guides/util/{main.md → main.mdx} +19 -8
  184. package/docs/guides/util/{path-to-file-url.md → path-to-file-url.mdx} +3 -1
  185. package/docs/guides/util/{sleep.md → sleep.mdx} +3 -1
  186. package/docs/guides/util/{version.md → version.mdx} +6 -4
  187. package/docs/guides/util/{which-path-to-executable-bin.md → which-path-to-executable-bin.mdx} +4 -2
  188. package/docs/guides/websocket/{compression.md → compression.mdx} +5 -3
  189. package/docs/guides/websocket/{context.md → context.mdx} +9 -12
  190. package/docs/guides/websocket/{pubsub.md → pubsub.mdx} +5 -6
  191. package/docs/guides/websocket/{simple.md → simple.mdx} +5 -3
  192. package/docs/guides/write-file/{append.md → append.mdx} +3 -1
  193. package/docs/guides/write-file/{basic.md → basic.mdx} +3 -1
  194. package/docs/guides/write-file/{blob.md → blob.mdx} +3 -1
  195. package/docs/guides/write-file/{cat.md → cat.mdx} +4 -2
  196. package/docs/guides/write-file/{file-cp.md → file-cp.mdx} +3 -1
  197. package/docs/guides/write-file/{filesink.md → filesink.mdx} +3 -1
  198. package/docs/guides/write-file/{response.md → response.mdx} +3 -1
  199. package/docs/guides/write-file/{stdout.md → stdout.mdx} +3 -1
  200. package/docs/guides/write-file/{stream.md → stream.mdx} +3 -1
  201. package/docs/guides/write-file/{unlink.md → unlink.mdx} +3 -1
  202. package/docs/{index.md → index.mdx} +97 -41
  203. package/docs/installation.mdx +365 -0
  204. package/docs/{cli/bunx.md → pm/bunx.mdx} +25 -31
  205. package/docs/{install/catalogs.md → pm/catalogs.mdx} +18 -24
  206. package/docs/{cli/add.md → pm/cli/add.mdx} +61 -55
  207. package/docs/{install/audit.md → pm/cli/audit.mdx} +11 -8
  208. package/docs/{cli/install.md → pm/cli/install.mdx} +208 -81
  209. package/docs/{cli/link.md → pm/cli/link.mdx} +27 -19
  210. package/docs/{cli/outdated.md → pm/cli/outdated.mdx} +119 -12
  211. package/docs/{install/patch.md → pm/cli/patch.mdx} +25 -15
  212. package/docs/{cli/pm.md → pm/cli/pm.mdx} +96 -62
  213. package/docs/{cli/publish.md → pm/cli/publish.mdx} +38 -35
  214. package/docs/pm/cli/remove.mdx +16 -0
  215. package/docs/{cli/update.md → pm/cli/update.mdx} +26 -15
  216. package/docs/{cli/why.md → pm/cli/why.mdx} +27 -10
  217. package/docs/{cli/filter.md → pm/filter.mdx} +26 -14
  218. package/docs/{install/cache.md → pm/global-cache.mdx} +25 -12
  219. package/docs/{install/isolated.md → pm/isolated-installs.mdx} +32 -24
  220. package/docs/{install/lifecycle.md → pm/lifecycle.mdx} +20 -9
  221. package/docs/{install/lockfile.md → pm/lockfile.mdx} +18 -12
  222. package/docs/{install/npmrc.md → pm/npmrc.mdx} +30 -24
  223. package/docs/{install/overrides.md → pm/overrides.mdx} +47 -37
  224. package/docs/{install/registries.md → pm/scopes-registries.mdx} +8 -3
  225. package/docs/{install/security-scanner-api.md → pm/security-scanner-api.mdx} +22 -8
  226. package/docs/{install/workspaces.md → pm/workspaces.mdx} +17 -22
  227. package/docs/project/{benchmarking.md → benchmarking.mdx} +26 -11
  228. package/docs/project/{bindgen.md → bindgen.mdx} +12 -14
  229. package/docs/project/{building-windows.md → building-windows.mdx} +18 -47
  230. package/docs/project/{contributing.md → contributing.mdx} +56 -60
  231. package/docs/project/feedback.mdx +20 -0
  232. package/docs/project/license.mdx +78 -0
  233. package/docs/project/roadmap.mdx +8 -0
  234. package/docs/quickstart.mdx +240 -0
  235. package/docs/runtime/{autoimport.md → auto-install.mdx} +34 -31
  236. package/docs/{api/binary-data.md → runtime/binary-data.mdx} +77 -269
  237. package/docs/runtime/bun-apis.mdx +59 -0
  238. package/docs/runtime/{bunfig.md → bunfig.mdx} +95 -225
  239. package/docs/{api/cc.md → runtime/c-compiler.mdx} +16 -9
  240. package/docs/{api/spawn.md → runtime/child-process.mdx} +69 -119
  241. package/docs/{api/color.md → runtime/color.mdx} +6 -1
  242. package/docs/{api/console.md → runtime/console.mdx} +17 -7
  243. package/docs/{api/cookie.md → runtime/cookies.mdx} +24 -19
  244. package/docs/runtime/{debugger.md → debugger.mdx} +61 -51
  245. package/docs/runtime/environment-variables.mdx +214 -0
  246. package/docs/{api/ffi.md → runtime/ffi.mdx} +53 -45
  247. package/docs/{api/file-io.md → runtime/file-io.mdx} +41 -101
  248. package/docs/{api/file-system-router.md → runtime/file-system-router.mdx} +8 -2
  249. package/docs/{bundler/loaders.md → runtime/file-types.mdx} +56 -112
  250. package/docs/{api/glob.md → runtime/glob.mdx} +4 -1
  251. package/docs/runtime/globals.mdx +72 -0
  252. package/docs/{api/hashing.md → runtime/hashing.mdx} +18 -22
  253. package/docs/{api/html-rewriter.md → runtime/html-rewriter.mdx} +36 -30
  254. package/docs/runtime/http/cookies.mdx +79 -0
  255. package/docs/runtime/http/error-handling.mdx +40 -0
  256. package/docs/runtime/http/metrics.mdx +36 -0
  257. package/docs/runtime/http/routing.mdx +289 -0
  258. package/docs/runtime/http/server.mdx +647 -0
  259. package/docs/runtime/http/tls.mdx +101 -0
  260. package/docs/{api/websockets.md → runtime/http/websockets.mdx} +62 -231
  261. package/docs/{cli/run.md → runtime/index.mdx} +70 -108
  262. package/docs/runtime/jsx.mdx +115 -0
  263. package/docs/runtime/{modules.md → module-resolution.mdx} +83 -61
  264. package/docs/{api/dns.md → runtime/networking/dns.mdx} +23 -22
  265. package/docs/{api/fetch.md → runtime/networking/fetch.mdx} +10 -5
  266. package/docs/{api/tcp.md → runtime/networking/tcp.mdx} +59 -41
  267. package/docs/{api/udp.md → runtime/networking/udp.mdx} +14 -8
  268. package/docs/{api/node-api.md → runtime/node-api.mdx} +5 -0
  269. package/docs/runtime/{nodejs-apis.md → nodejs-compat.mdx} +9 -4
  270. package/docs/{bundler/plugins.md → runtime/plugins.mdx} +17 -61
  271. package/docs/{api/redis.md → runtime/redis.mdx} +65 -80
  272. package/docs/{api/s3.md → runtime/s3.mdx} +79 -66
  273. package/docs/{api/secrets.md → runtime/secrets.mdx} +27 -10
  274. package/docs/{api/semver.md → runtime/semver.mdx} +9 -4
  275. package/docs/runtime/{shell.md → shell.mdx} +52 -20
  276. package/docs/{api/sql.md → runtime/sql.mdx} +129 -99
  277. package/docs/{api/sqlite.md → runtime/sqlite.mdx} +162 -157
  278. package/docs/{api/streams.md → runtime/streams.mdx} +33 -31
  279. package/docs/{cli/bun-create.md → runtime/templating/create.mdx} +74 -143
  280. package/docs/{cli/init.md → runtime/templating/init.mdx} +24 -51
  281. package/docs/{api/transpiler.md → runtime/transpiler.mdx} +50 -38
  282. package/docs/{typescript.md → runtime/typescript.mdx} +7 -2
  283. package/docs/{api/utils.md → runtime/utils.mdx} +81 -50
  284. package/docs/runtime/{hot.md → watch-mode.mdx} +53 -37
  285. package/docs/runtime/web-apis.mdx +29 -0
  286. package/docs/{api/workers.md → runtime/workers.mdx} +28 -22
  287. package/docs/{api/yaml.md → runtime/yaml.mdx} +33 -232
  288. package/docs/snippets/cli/add.mdx +166 -0
  289. package/docs/snippets/cli/build.mdx +196 -0
  290. package/docs/snippets/cli/feedback.mdx +17 -0
  291. package/docs/snippets/cli/init.mdx +84 -0
  292. package/docs/snippets/cli/install.mdx +173 -0
  293. package/docs/snippets/cli/link.mdx +163 -0
  294. package/docs/snippets/cli/outdated.mdx +140 -0
  295. package/docs/snippets/cli/patch.mdx +171 -0
  296. package/docs/snippets/cli/publish.mdx +198 -0
  297. package/docs/snippets/cli/remove.mdx +146 -0
  298. package/docs/snippets/cli/run.mdx +293 -0
  299. package/docs/snippets/cli/test.mdx +100 -0
  300. package/docs/snippets/cli/update.mdx +144 -0
  301. package/docs/snippets/product-card.mdx +32 -0
  302. package/docs/snippets/product-tiles.mdx +94 -0
  303. package/docs/test/code-coverage.mdx +409 -0
  304. package/docs/test/configuration.mdx +467 -0
  305. package/docs/test/{time.md → dates-times.mdx} +23 -20
  306. package/docs/test/{discovery.md → discovery.mdx} +15 -10
  307. package/docs/test/dom.mdx +226 -0
  308. package/docs/{cli/test.md → test/index.mdx} +77 -94
  309. package/docs/test/lifecycle.mdx +348 -0
  310. package/docs/test/mocks.mdx +637 -0
  311. package/docs/test/{reporters.md → reporters.mdx} +15 -15
  312. package/docs/test/runtime-behavior.mdx +342 -0
  313. package/docs/test/snapshots.mdx +434 -0
  314. package/docs/test/writing-tests.mdx +635 -0
  315. package/docs/typescript.mdx +54 -0
  316. package/package.json +8 -6
  317. package/test.d.ts +2 -2
  318. package/docs/api/file.md +0 -19
  319. package/docs/api/globals.md +0 -387
  320. package/docs/api/http.md +0 -1408
  321. package/docs/api/import-meta.md +0 -69
  322. package/docs/benchmarks.md +0 -120
  323. package/docs/bun-flavored-toml.md +0 -42
  324. package/docs/bundler/css_modules.md +0 -145
  325. package/docs/bundler/fullstack.md +0 -418
  326. package/docs/bundler/index.md +0 -1735
  327. package/docs/bundler/intro.md +0 -75
  328. package/docs/bundler/vs-esbuild.md +0 -1127
  329. package/docs/cli/bun-completions.md +0 -3
  330. package/docs/cli/bun-install.md +0 -349
  331. package/docs/cli/bun-upgrade.md +0 -39
  332. package/docs/cli/info.md +0 -65
  333. package/docs/cli/patch-commit.md +0 -11
  334. package/docs/cli/remove.md +0 -7
  335. package/docs/cli/unlink.md +0 -9
  336. package/docs/contributing/upgrading-webkit.md +0 -57
  337. package/docs/ecosystem/elysia.md +0 -24
  338. package/docs/ecosystem/express.md +0 -37
  339. package/docs/ecosystem/hono.md +0 -18
  340. package/docs/ecosystem/react.md +0 -65
  341. package/docs/ecosystem/stric.md +0 -38
  342. package/docs/guides/ecosystem/prisma.md +0 -141
  343. package/docs/guides/ecosystem/render.md +0 -79
  344. package/docs/guides/install/add-git.md +0 -36
  345. package/docs/guides/test/spy-on.md +0 -46
  346. package/docs/install/index.md +0 -248
  347. package/docs/installation.md +0 -327
  348. package/docs/project/asan.md +0 -124
  349. package/docs/project/internals/build-process-for-ci.md +0 -75
  350. package/docs/project/licensing.md +0 -73
  351. package/docs/project/roadmap.md +0 -87
  352. package/docs/quickstart.md +0 -157
  353. package/docs/runtime/bun-apis.md +0 -207
  354. package/docs/runtime/env.md +0 -253
  355. package/docs/runtime/index.md +0 -312
  356. package/docs/runtime/jsx.md +0 -385
  357. package/docs/runtime/loaders.md +0 -130
  358. package/docs/runtime/plugins.md +0 -561
  359. package/docs/runtime/typescript.md +0 -139
  360. package/docs/runtime/web-apis.md +0 -128
  361. package/docs/test/configuration.md +0 -154
  362. package/docs/test/coverage.md +0 -142
  363. package/docs/test/dom.md +0 -75
  364. package/docs/test/examples/concurrent-test-glob.md +0 -132
  365. package/docs/test/hot.md +0 -15
  366. package/docs/test/lifecycle.md +0 -81
  367. package/docs/test/mocks.md +0 -313
  368. package/docs/test/runtime-behavior.md +0 -95
  369. package/docs/test/snapshots.md +0 -68
  370. package/docs/test/writing.md +0 -825
@@ -1,40 +1,50 @@
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.
1
+ ---
2
+ title: "bun install"
3
+ description: "Install packages with Bun's fast package manager"
4
+ ---
2
5
 
3
- {% callout %}
6
+ import Install from "/snippets/cli/install.mdx";
4
7
 
5
- **⚡️ 25x faster** — Switch from `npm install` to `bun install` in any Node.js project to make your installations up to 25x faster.
8
+ ## Basic Usage
6
9
 
7
- {% image src="https://user-images.githubusercontent.com/709451/147004342-571b6123-17a9-49a2-8bfd-dcfc5204047e.png" height="200" /%}
10
+ ```bash terminal icon="terminal"
11
+ bun install react
12
+ bun install react@19.1.1 # specific version
13
+ bun install react@latest # specific tag
14
+ ```
8
15
 
9
- {% /callout %}
16
+ 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.
10
17
 
11
- {% callout %}
18
+ <Note>
12
19
 
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.
20
+ **⚡️ 25x faster** — Switch from `npm install` to `bun install` in any Node.js project to make your installations up to 25x faster.
14
21
 
15
- For more details, see [Package manager > Global cache](https://bun.com/docs/install/cache).
22
+ <Frame>
23
+ ![Bun installation speed
24
+ comparison](https://user-images.githubusercontent.com/709451/147004342-571b6123-17a9-49a2-8bfd-dcfc5204047e.png)
25
+ </Frame>
16
26
 
17
- {% /callout %}
27
+ </Note>
18
28
 
19
- {% details summary="For Linux users" %}
29
+ <Accordion title="For Linux users">
20
30
  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
31
 
22
32
  If you're using Ubuntu 20.04, here's how to install a [newer kernel](https://wiki.ubuntu.com/Kernel/LTSEnablementStack):
23
33
 
24
- ```bash
34
+ ```bash terminal icon="terminal"
25
35
  # If this returns a version >= 5.6, you don't need to do anything
26
- $ uname -r
36
+ uname -r
27
37
 
28
38
  # Install the official Ubuntu hardware enablement kernel
29
- $ sudo apt install --install-recommends linux-generic-hwe-20.04
39
+ sudo apt install --install-recommends linux-generic-hwe-20.04
30
40
  ```
31
41
 
32
- {% /details %}
42
+ </Accordion>
33
43
 
34
44
  To install all dependencies of a project:
35
45
 
36
- ```bash
37
- $ bun install
46
+ ```bash terminal icon="terminal"
47
+ bun install
38
48
  ```
39
49
 
40
50
  Running `bun install` will:
@@ -43,89 +53,105 @@ Running `bun install` will:
43
53
  - **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
54
  - **Write** a `bun.lock` lockfile to the project root.
45
55
 
56
+ ---
57
+
46
58
  ## Logging
47
59
 
48
60
  To modify logging verbosity:
49
61
 
50
- ```bash
51
- $ bun install --verbose # debug logging
52
- $ bun install --silent # no logging
62
+ ```bash terminal icon="terminal"
63
+ bun install --verbose # debug logging
64
+ bun install --silent # no logging
53
65
  ```
54
66
 
67
+ ---
68
+
55
69
  ## Lifecycle scripts
56
70
 
57
71
  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
72
 
59
73
  To tell Bun to allow lifecycle scripts for a particular package, add the package to `trustedDependencies` in your package.json.
60
74
 
61
- ```json-diff
62
- {
63
- "name": "my-app",
64
- "version": "1.0.0",
65
- + "trustedDependencies": ["my-trusted-package"]
66
- }
75
+ ```json package.json icon="file-json"
76
+ {
77
+ "name": "my-app",
78
+ "version": "1.0.0",
79
+ "trustedDependencies": ["my-trusted-package"] // [!code ++]
80
+ }
67
81
  ```
68
82
 
69
83
  Then re-install the package. Bun will read this field and run lifecycle scripts for `my-trusted-package`.
70
84
 
71
85
  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
86
 
73
- ```bash
74
- $ bun install --concurrent-scripts 5
87
+ ```bash terminal icon="terminal"
88
+ bun install --concurrent-scripts 5
75
89
  ```
76
90
 
91
+ ---
92
+
77
93
  ## Workspaces
78
94
 
79
- Bun supports `"workspaces"` in package.json. For complete documentation refer to [Package manager > Workspaces](https://bun.com/docs/install/workspaces).
95
+ Bun supports `"workspaces"` in package.json. For complete documentation refer to [Package manager > Workspaces](/pm/workspaces).
80
96
 
81
- ```json#package.json
97
+ ```json package.json icon="file-json"
82
98
  {
83
99
  "name": "my-app",
84
100
  "version": "1.0.0",
85
- "workspaces": ["packages/*"],
101
+ "workspaces": ["packages/*"], // [!code ++]
86
102
  "dependencies": {
87
103
  "preact": "^10.5.13"
88
104
  }
89
105
  }
90
106
  ```
91
107
 
108
+ ---
109
+
92
110
  ## Installing dependencies for specific packages
93
111
 
94
112
  In a monorepo, you can install the dependencies for a subset of packages using the `--filter` flag.
95
113
 
96
- ```bash
114
+ ```bash terminal icon="terminal"
97
115
  # Install dependencies for all workspaces except `pkg-c`
98
- $ bun install --filter '!pkg-c'
116
+ bun install --filter '!pkg-c'
99
117
 
100
118
  # Install dependencies for only `pkg-a` in `./packages/pkg-a`
101
- $ bun install --filter './packages/pkg-a'
119
+ bun install --filter './packages/pkg-a'
102
120
  ```
103
121
 
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)
122
+ For more information on filtering with `bun install`, refer to [Package Manager > Filtering](/pm/filter#bun-install-and-bun-outdated)
123
+
124
+ ---
105
125
 
106
126
  ## Overrides and resolutions
107
127
 
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.
128
+ 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](/pm/overrides) for complete documentation.
109
129
 
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
- }
130
+ ```json package.json file="file-json"
131
+ {
132
+ "name": "my-app",
133
+ "dependencies": {
134
+ "foo": "^2.0.0"
135
+ },
136
+ "overrides": {
137
+ // [!code ++]
138
+ "bar": "~4.4.0" // [!code ++]
139
+ } // [!code ++]
140
+ }
120
141
  ```
121
142
 
143
+ ---
144
+
122
145
  ## Global packages
123
146
 
124
147
  To install a package globally, use the `-g`/`--global` flag. Typically this is used for installing command-line tools.
125
148
 
126
- ```bash
127
- $ bun install --global cowsay # or `bun install -g cowsay`
128
- $ cowsay "Bun!"
149
+ ```bash terminal icon="terminal"
150
+ bun install --global cowsay # or `bun install -g cowsay`
151
+ cowsay "Bun!"
152
+ ```
153
+
154
+ ```txt
129
155
  ______
130
156
  < Bun! >
131
157
  ------
@@ -136,49 +162,57 @@ $ cowsay "Bun!"
136
162
  || ||
137
163
  ```
138
164
 
165
+ ---
166
+
139
167
  ## Production mode
140
168
 
141
169
  To install in production mode (i.e. without `devDependencies` or `optionalDependencies`):
142
170
 
143
- ```bash
144
- $ bun install --production
171
+ ```bash terminal icon="terminal"
172
+ bun install --production
145
173
  ```
146
174
 
147
175
  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
176
 
149
- ```bash
150
- $ bun install --frozen-lockfile
177
+ ```bash terminal icon="terminal"
178
+ bun install --frozen-lockfile
151
179
  ```
152
180
 
153
- For more information on Bun's lockfile `bun.lock`, refer to [Package manager > Lockfile](https://bun.com/docs/install/lockfile).
181
+ For more information on Bun's lockfile `bun.lock`, refer to [Package manager > Lockfile](/pm/lockfile).
182
+
183
+ ---
154
184
 
155
185
  ## Omitting dependencies
156
186
 
157
187
  To omit dev, peer, or optional dependencies use the `--omit` flag.
158
188
 
159
- ```bash
189
+ ```bash terminal icon="terminal"
160
190
  # Exclude "devDependencies" from the installation. This will apply to the
161
191
  # root package and workspaces if they exist. Transitive dependencies will
162
192
  # not have "devDependencies".
163
- $ bun install --omit dev
193
+ bun install --omit dev
164
194
 
165
195
  # Install only dependencies from "dependencies"
166
- $ bun install --omit=dev --omit=peer --omit=optional
196
+ bun install --omit=dev --omit=peer --omit=optional
167
197
  ```
168
198
 
199
+ ---
200
+
169
201
  ## Dry run
170
202
 
171
203
  To perform a dry run (i.e. don't actually install anything):
172
204
 
173
- ```bash
174
- $ bun install --dry-run
205
+ ```bash terminal icon="terminal"
206
+ bun install --dry-run
175
207
  ```
176
208
 
209
+ ---
210
+
177
211
  ## Non-npm dependencies
178
212
 
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).
213
+ 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](/pm/cli/add).
180
214
 
181
- ```json#package.json
215
+ ```json package.json icon="file-json"
182
216
  {
183
217
  "dependencies": {
184
218
  "dayjs": "git+https://github.com/iamkun/dayjs.git",
@@ -191,6 +225,8 @@ Bun supports installing dependencies from Git, GitHub, and local or remotely-hos
191
225
  }
192
226
  ```
193
227
 
228
+ ---
229
+
194
230
  ## Installation strategies
195
231
 
196
232
  Bun supports two package installation strategies that determine how dependencies are organized in `node_modules`:
@@ -199,40 +235,36 @@ Bun supports two package installation strategies that determine how dependencies
199
235
 
200
236
  The traditional npm/Yarn approach that flattens dependencies into a shared `node_modules` directory:
201
237
 
202
- ```bash
203
- $ bun install --linker hoisted
238
+ ```bash terminal icon="terminal"
239
+ bun install --linker hoisted
204
240
  ```
205
241
 
206
242
  ### Isolated installs
207
243
 
208
244
  A pnpm-like approach that creates strict dependency isolation to prevent phantom dependencies:
209
245
 
210
- ```bash
211
- $ bun install --linker isolated
246
+ ```bash terminal icon="terminal"
247
+ bun install --linker isolated
212
248
  ```
213
249
 
214
250
  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
251
 
216
- For complete documentation on isolated installs, refer to [Package manager > Isolated installs](https://bun.com/docs/install/isolated).
217
-
218
- ## Disk efficiency
252
+ For complete documentation on isolated installs, refer to [Package manager > Isolated installs](/pm/isolated-installs).
219
253
 
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).
254
+ ---
223
255
 
224
256
  ## Minimum release age
225
257
 
226
258
  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
259
 
228
- ```bash
260
+ ```bash terminal icon="terminal"
229
261
  # Only install package versions published at least 3 days ago
230
- $ bun add @types/bun --minimum-release-age 259200 # seconds
262
+ bun add @types/bun --minimum-release-age 259200 # seconds
231
263
  ```
232
264
 
233
265
  You can also configure this in `bunfig.toml`:
234
266
 
235
- ```toml
267
+ ```toml bunfig.toml icon="settings"
236
268
  [install]
237
269
  # Only install package versions published at least 3 days ago
238
270
  minimumReleaseAge = 259200 # seconds
@@ -251,13 +283,15 @@ When the minimum age filter is active:
251
283
  - Exact version requests (like `package@1.1.1`) still respect the age gate but bypass the stability check
252
284
  - Versions without a `time` field are treated as passing the age check (npm registry should always provide timestamps)
253
285
 
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).
286
+ For more advanced security scanning, including integration with services & custom filtering, see [Package manager > Security Scanner API](/pm/security-scanner-api).
287
+
288
+ ---
255
289
 
256
290
  ## Configuration
257
291
 
258
292
  The default behavior of `bun install` can be configured in `bunfig.toml`. The default values are shown below.
259
293
 
260
- ```toml
294
+ ```toml bunfig.toml icon="settings"
261
295
  [install]
262
296
 
263
297
  # whether to install optionalDependencies
@@ -285,19 +319,23 @@ dryRun = false
285
319
  concurrentScripts = 16 # (cpu count or GOMAXPROCS) x2
286
320
 
287
321
  # installation strategy: "hoisted" or "isolated"
288
- # default: "hoisted"
322
+ # default: "hoisted" (for single-project projects)
323
+ # default: "isolated" (for monorepo projects)
289
324
  linker = "hoisted"
290
325
 
326
+
291
327
  # minimum age config
292
328
  minimumReleaseAge = 259200 # seconds
293
329
  minimumReleaseAgeExcludes = ["@types/node", "typescript"]
294
330
  ```
295
331
 
332
+ ---
333
+
296
334
  ## CI/CD
297
335
 
298
336
  Use the official [`oven-sh/setup-bun`](https://github.com/oven-sh/setup-bun) action to install `bun` in a GitHub Actions pipeline:
299
337
 
300
- ```yaml#.github/workflows/release.yml
338
+ ```yaml .github/workflows/release.yml icon="file-code"
301
339
  name: bun-types
302
340
  jobs:
303
341
  build:
@@ -316,15 +354,15 @@ jobs:
316
354
 
317
355
  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
356
 
319
- ```bash
320
- $ bun ci
357
+ ```bash terminal icon="terminal"
358
+ bun ci
321
359
  ```
322
360
 
323
361
  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
362
 
325
363
  And instead of running `bun install`, run `bun ci`.
326
364
 
327
- ```yaml#.github/workflows/release.yml
365
+ ```yaml .github/workflows/release.yml icon="file-code"
328
366
  name: bun-types
329
367
  jobs:
330
368
  build:
@@ -341,4 +379,93 @@ jobs:
341
379
  run: bun run build
342
380
  ```
343
381
 
344
- {% bunCLIUsage command="install" /%}
382
+ ## pnpm migration
383
+
384
+ 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.
385
+
386
+ ```bash terminal icon="terminal"
387
+ bun install
388
+ ```
389
+
390
+ **Note**: Migration only runs when `bun.lock` is absent. There is currently no opt-out flag for pnpm migration.
391
+
392
+ The migration process handles:
393
+
394
+ ### Lockfile Migration
395
+
396
+ - Converts `pnpm-lock.yaml` to `bun.lock` format
397
+ - Preserves package versions and resolution information
398
+ - Maintains dependency relationships and peer dependencies
399
+ - Handles patched dependencies with integrity hashes
400
+
401
+ ### Workspace Configuration
402
+
403
+ When a `pnpm-workspace.yaml` file exists, Bun migrates workspace settings to your root `package.json`:
404
+
405
+ ```yaml pnpm-workspace.yaml icon="file-code"
406
+ packages:
407
+ - "apps/*"
408
+ - "packages/*"
409
+
410
+ catalog:
411
+ react: ^18.0.0
412
+ typescript: ^5.0.0
413
+
414
+ catalogs:
415
+ build:
416
+ webpack: ^5.0.0
417
+ babel: ^7.0.0
418
+ ```
419
+
420
+ The workspace packages list and catalogs are moved to the `workspaces` field in `package.json`:
421
+
422
+ ```json package.json icon="file-json"
423
+ {
424
+ "workspaces": {
425
+ "packages": ["apps/*", "packages/*"],
426
+ "catalog": {
427
+ "react": "^18.0.0",
428
+ "typescript": "^5.0.0"
429
+ },
430
+ "catalogs": {
431
+ "build": {
432
+ "webpack": "^5.0.0",
433
+ "babel": "^7.0.0"
434
+ }
435
+ }
436
+ }
437
+ }
438
+ ```
439
+
440
+ ### Catalog Dependencies
441
+
442
+ Dependencies using pnpm's `catalog:` protocol are preserved:
443
+
444
+ ```json package.json icon="file-json"
445
+ {
446
+ "dependencies": {
447
+ "react": "catalog:",
448
+ "webpack": "catalog:build"
449
+ }
450
+ }
451
+ ```
452
+
453
+ ### Configuration Migration
454
+
455
+ The following pnpm configuration is migrated from both `pnpm-lock.yaml` and `pnpm-workspace.yaml`:
456
+
457
+ - **Overrides**: Moved from `pnpm.overrides` to root-level `overrides` in `package.json`
458
+ - **Patched Dependencies**: Moved from `pnpm.patchedDependencies` to root-level `patchedDependencies` in `package.json`
459
+ - **Workspace Overrides**: Applied from `pnpm-workspace.yaml` to root `package.json`
460
+
461
+ ### Requirements
462
+
463
+ - Requires pnpm lockfile version 7 or higher
464
+ - Workspace packages must have a `name` field in their `package.json`
465
+ - All catalog entries referenced by dependencies must exist in the catalogs definition
466
+
467
+ After migration, you can safely remove `pnpm-lock.yaml` and `pnpm-workspace.yaml` files.
468
+
469
+ ---
470
+
471
+ <Install />
@@ -1,13 +1,19 @@
1
+ ---
2
+ title: "bun link"
3
+ description: "Link local packages for development"
4
+ ---
5
+
6
+ import Link from "/snippets/cli/link.mdx";
7
+
1
8
  Use `bun link` in a local directory to register the current package as a "linkable" package.
2
9
 
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
10
+ ```bash terminal icon="terminal"
11
+ cd /path/to/cool-pkg
12
+ cat package.json
13
+ bun link
14
+ ```
15
+
16
+ ```txt
11
17
  bun link v1.x (7416672e)
12
18
  Success! Registered "cool-pkg"
13
19
 
@@ -20,21 +26,23 @@ Or add it in dependencies in your package.json file:
20
26
 
21
27
  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
28
 
23
- ```bash
24
- $ cd /path/to/my-app
25
- $ bun link cool-pkg
29
+ ```bash terminal icon="terminal"
30
+ cd /path/to/my-app
31
+ bun link cool-pkg
26
32
  ```
27
33
 
28
34
  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
35
 
30
- ```json-diff
31
- {
32
- "name": "my-app",
33
- "version": "1.0.0",
34
- "dependencies": {
35
- + "cool-pkg": "link:cool-pkg"
36
- }
36
+ ```json package.json icon="file-json"
37
+ {
38
+ "name": "my-app",
39
+ "version": "1.0.0",
40
+ "dependencies": {
41
+ "cool-pkg": "link:cool-pkg" // [!code ++]
37
42
  }
43
+ }
38
44
  ```
39
45
 
40
- {% bunCLIUsage command="link" /%}
46
+ ---
47
+
48
+ <Link />