bun-types 1.2.18-canary.20250627T140644 → 1.2.18-canary.20250628T140543

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.
package/bun.d.ts CHANGED
@@ -346,6 +346,17 @@ declare module "bun" {
346
346
 
347
347
  type WorkerType = "classic" | "module";
348
348
 
349
+ /**
350
+ * This type-only interface is identical at runtime to {@link ReadableStream},
351
+ * and exists to document types that do not exist yet in libdom.
352
+ */
353
+ interface BunReadableStream<T = any> extends ReadableStream<T> {
354
+ text(): Promise<string>;
355
+ bytes(): Promise<Uint8Array>;
356
+ json(): Promise<any>;
357
+ blob(): Promise<Blob>;
358
+ }
359
+
349
360
  interface AbstractWorker {
350
361
  /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/error_event) */
351
362
  onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null;
@@ -1242,7 +1253,7 @@ declare module "bun" {
1242
1253
  */
1243
1254
  writer(options?: { highWaterMark?: number }): FileSink;
1244
1255
 
1245
- readonly readable: ReadableStream;
1256
+ readonly readable: BunReadableStream;
1246
1257
 
1247
1258
  // TODO: writable: WritableStream;
1248
1259
 
@@ -6767,7 +6778,7 @@ declare module "bun" {
6767
6778
  *
6768
6779
  * For stdout and stdin you may pass:
6769
6780
  *
6770
- * - `"pipe"`, `undefined`: The process will have a {@link ReadableStream} for standard output/error
6781
+ * - `"pipe"`, `undefined`: The process will have a {@link BunReadableStream} for standard output/error
6771
6782
  * - `"ignore"`, `null`: The process will have no standard output/error
6772
6783
  * - `"inherit"`: The process will inherit the standard output/error of the current process
6773
6784
  * - `ArrayBufferView`: The process write to the preallocated buffer. Not implemented.
@@ -6793,7 +6804,7 @@ declare module "bun" {
6793
6804
  /**
6794
6805
  * The file descriptor for the standard output. It may be:
6795
6806
  *
6796
- * - `"pipe"`, `undefined`: The process will have a {@link ReadableStream} for standard output/error
6807
+ * - `"pipe"`, `undefined`: The process will have a {@link BunReadableStream} for standard output/error
6797
6808
  * - `"ignore"`, `null`: The process will have no standard output/error
6798
6809
  * - `"inherit"`: The process will inherit the standard output/error of the current process
6799
6810
  * - `ArrayBufferView`: The process write to the preallocated buffer. Not implemented.
@@ -6805,7 +6816,7 @@ declare module "bun" {
6805
6816
  /**
6806
6817
  * The file descriptor for the standard error. It may be:
6807
6818
  *
6808
- * - `"pipe"`, `undefined`: The process will have a {@link ReadableStream} for standard output/error
6819
+ * - `"pipe"`, `undefined`: The process will have a {@link BunReadableStream} for standard output/error
6809
6820
  * - `"ignore"`, `null`: The process will have no standard output/error
6810
6821
  * - `"inherit"`: The process will inherit the standard output/error of the current process
6811
6822
  * - `ArrayBufferView`: The process write to the preallocated buffer. Not implemented.
@@ -6968,7 +6979,7 @@ declare module "bun" {
6968
6979
  type ReadableIO = ReadableStream<Uint8Array> | number | undefined;
6969
6980
 
6970
6981
  type ReadableToIO<X extends Readable> = X extends "pipe" | undefined
6971
- ? ReadableStream<Uint8Array>
6982
+ ? BunReadableStream
6972
6983
  : X extends BunFile | ArrayBufferView | number
6973
6984
  ? number
6974
6985
  : undefined;
package/docs/api/fetch.md CHANGED
@@ -337,7 +337,7 @@ This will print the request and response headers to your terminal:
337
337
  ```sh
338
338
  [fetch] > HTTP/1.1 GET http://example.com/
339
339
  [fetch] > Connection: keep-alive
340
- [fetch] > User-Agent: Bun/1.2.18-canary.20250627T140644
340
+ [fetch] > User-Agent: Bun/1.2.18-canary.20250628T140543
341
341
  [fetch] > Accept: */*
342
342
  [fetch] > Host: example.com
343
343
  [fetch] > Accept-Encoding: gzip, deflate, br
package/docs/api/s3.md CHANGED
@@ -160,7 +160,8 @@ const writer = s3file.writer({
160
160
  partSize: 5 * 1024 * 1024,
161
161
  });
162
162
  for (let i = 0; i < 10; i++) {
163
- await writer.write(bigFile);
163
+ writer.write(bigFile);
164
+ await writer.flush();
164
165
  }
165
166
  await writer.end();
166
167
  ```
package/docs/api/spawn.md CHANGED
@@ -34,7 +34,7 @@ const proc = Bun.spawn(["cat"], {
34
34
  ),
35
35
  });
36
36
 
37
- const text = await new Response(proc.stdout).text();
37
+ const text = await proc.stdout.text();
38
38
  console.log(text); // "const input = "hello world".repeat(400); ..."
39
39
  ```
40
40
 
@@ -113,14 +113,34 @@ proc.stdin.flush();
113
113
  proc.stdin.end();
114
114
  ```
115
115
 
116
+ Passing a `ReadableStream` to `stdin` lets you pipe data from a JavaScript `ReadableStream` directly to the subprocess's input:
117
+
118
+ ```ts
119
+ const stream = new ReadableStream({
120
+ start(controller) {
121
+ controller.enqueue("Hello from ");
122
+ controller.enqueue("ReadableStream!");
123
+ controller.close();
124
+ },
125
+ });
126
+
127
+ const proc = Bun.spawn(["cat"], {
128
+ stdin: stream,
129
+ stdout: "pipe",
130
+ });
131
+
132
+ const output = await new Response(proc.stdout).text();
133
+ console.log(output); // "Hello from ReadableStream!"
134
+ ```
135
+
116
136
  ## Output streams
117
137
 
118
138
  You can read results from the subprocess via the `stdout` and `stderr` properties. By default these are instances of `ReadableStream`.
119
139
 
120
140
  ```ts
121
141
  const proc = Bun.spawn(["bun", "--version"]);
122
- const text = await new Response(proc.stdout).text();
123
- console.log(text); // => "1.2.18-canary.20250627T140644"
142
+ const text = await proc.stdout.text();
143
+ console.log(text); // => "1.2.18-canary.20250628T140543\n"
124
144
  ```
125
145
 
126
146
  Configure the output stream by passing one of the following values to `stdout/stderr`:
@@ -7,7 +7,7 @@ Use `bun publish` to publish a package to the npm registry.
7
7
  $ bun publish
8
8
 
9
9
  ## Output
10
- bun publish v1.2.18-canary.20250627T140644 (ca7428e9)
10
+ bun publish v1.2.18-canary.20250628T140543 (ca7428e9)
11
11
 
12
12
  packed 203B package.json
13
13
  packed 224B README.md
@@ -9,7 +9,7 @@ $ bunx nuxi init my-nuxt-app
9
9
  ✔ Which package manager would you like to use?
10
10
  bun
11
11
  ◐ Installing dependencies...
12
- bun install v1.2.18-canary.20250627T140644 (16b4bf34)
12
+ bun install v1.2.18-canary.20250628T140543 (16b4bf34)
13
13
  + @nuxt/devtools@0.8.2
14
14
  + nuxt@3.7.0
15
15
  785 packages installed [2.67s]
@@ -30,7 +30,7 @@ $ bun add @prisma/client
30
30
  We'll use the Prisma CLI with `bunx` to initialize our schema and migration directory. For simplicity we'll be using an in-memory SQLite database.
31
31
 
32
32
  ```bash
33
- $ bunx prisma init --datasource-provider sqlite
33
+ $ bunx --bun prisma init --datasource-provider sqlite
34
34
  ```
35
35
 
36
36
  ---
@@ -15,7 +15,7 @@ This will add the package to `peerDependencies` in `package.json`.
15
15
  ```json-diff
16
16
  {
17
17
  "peerDependencies": {
18
- + "@types/bun": "^1.2.18-canary.20250627T140644"
18
+ + "@types/bun": "^1.2.18-canary.20250628T140543"
19
19
  }
20
20
  }
21
21
  ```
@@ -27,7 +27,7 @@ Running `bun install` will install peer dependencies by default, unless marked o
27
27
  ```json-diff
28
28
  {
29
29
  "peerDependencies": {
30
- "@types/bun": "^1.2.18-canary.20250627T140644"
30
+ "@types/bun": "^1.2.18-canary.20250628T140543"
31
31
  },
32
32
  "peerDependenciesMeta": {
33
33
  + "@types/bun": {
@@ -97,7 +97,7 @@ $ bun update
97
97
  $ bun update @types/bun --latest
98
98
 
99
99
  # Update a dependency to a specific version
100
- $ bun update @types/bun@1.2.18-canary.20250627T140644
100
+ $ bun update @types/bun@1.2.18-canary.20250628T140543
101
101
 
102
102
  # Update all dependencies to the latest versions
103
103
  $ bun update --latest
@@ -13,14 +13,14 @@ proc.stderr; // => ReadableStream
13
13
 
14
14
  ---
15
15
 
16
- To read `stderr` until the child process exits, use the [`Bun.readableStreamToText()`](https://bun.sh/docs/api/utils#bun-readablestreamto) convenience function.
16
+ To read `stderr` until the child process exits, use .text()
17
17
 
18
18
  ```ts
19
19
  const proc = Bun.spawn(["echo", "hello"], {
20
20
  stderr: "pipe",
21
21
  });
22
22
 
23
- const errors: string = await Bun.readableStreamToText(proc.stderr);
23
+ const errors: string = await proc.stderr.text();
24
24
  if (errors) {
25
25
  // handle errors
26
26
  }
@@ -7,7 +7,7 @@ When using [`Bun.spawn()`](https://bun.sh/docs/api/spawn), the `stdout` of the c
7
7
  ```ts
8
8
  const proc = Bun.spawn(["echo", "hello"]);
9
9
 
10
- const output = await new Response(proc.stdout).text();
10
+ const output = await proc.stdout.text();
11
11
  output; // => "hello"
12
12
  ```
13
13
 
@@ -32,8 +32,8 @@ By default, the `stdout` of the child process can be consumed as a `ReadableStre
32
32
  ```ts
33
33
  const proc = Bun.spawn(["echo", "hello"]);
34
34
 
35
- const output = await new Response(proc.stdout).text();
36
- output; // => "hello"
35
+ const output = await proc.stdout.text();
36
+ output; // => "hello\n"
37
37
  ```
38
38
 
39
39
  ---
@@ -21,7 +21,7 @@ Here's what the output of a typical test run looks like. In this case, there are
21
21
 
22
22
  ```sh
23
23
  $ bun test
24
- bun test v1.2.18-canary.20250627T140644 (9c68abdb)
24
+ bun test v1.2.18-canary.20250628T140543 (9c68abdb)
25
25
 
26
26
  test.test.js:
27
27
  ✓ add [0.87ms]
@@ -47,7 +47,7 @@ To only run certain test files, pass a positional argument to `bun test`. The ru
47
47
 
48
48
  ```sh
49
49
  $ bun test test3
50
- bun test v1.2.18-canary.20250627T140644 (9c68abdb)
50
+ bun test v1.2.18-canary.20250628T140543 (9c68abdb)
51
51
 
52
52
  test3.test.js:
53
53
  ✓ add [1.40ms]
@@ -85,7 +85,7 @@ Adding `-t add` will only run tests with "add" in the name. This works with test
85
85
 
86
86
  ```sh
87
87
  $ bun test -t add
88
- bun test v1.2.18-canary.20250627T140644 (9c68abdb)
88
+ bun test v1.2.18-canary.20250628T140543 (9c68abdb)
89
89
 
90
90
  test.test.js:
91
91
  ✓ add [1.79ms]
@@ -18,7 +18,7 @@ The first time this test is executed, Bun will evaluate the value passed into `e
18
18
 
19
19
  ```sh
20
20
  $ bun test test/snap
21
- bun test v1.2.18-canary.20250627T140644 (9c68abdb)
21
+ bun test v1.2.18-canary.20250628T140543 (9c68abdb)
22
22
 
23
23
  test/snap.test.ts:
24
24
  ✓ snapshot [1.48ms]
@@ -61,7 +61,7 @@ Later, when this test file is executed again, Bun will read the snapshot file an
61
61
 
62
62
  ```sh
63
63
  $ bun test
64
- bun test v1.2.18-canary.20250627T140644 (9c68abdb)
64
+ bun test v1.2.18-canary.20250628T140543 (9c68abdb)
65
65
 
66
66
  test/snap.test.ts:
67
67
  ✓ snapshot [1.05ms]
@@ -78,7 +78,7 @@ To update snapshots, use the `--update-snapshots` flag.
78
78
 
79
79
  ```sh
80
80
  $ bun test --update-snapshots
81
- bun test v1.2.18-canary.20250627T140644 (9c68abdb)
81
+ bun test v1.2.18-canary.20250628T140543 (9c68abdb)
82
82
 
83
83
  test/snap.test.ts:
84
84
  ✓ snapshot [0.86ms]
@@ -29,7 +29,7 @@ To regenerate snapshots, use the `--update-snapshots` flag.
29
29
 
30
30
  ```sh
31
31
  $ bun test --update-snapshots
32
- bun test v1.2.18-canary.20250627T140644 (9c68abdb)
32
+ bun test v1.2.18-canary.20250628T140543 (9c68abdb)
33
33
 
34
34
  test/snap.test.ts:
35
35
  ✓ snapshot [0.86ms]
@@ -5,7 +5,7 @@ name: Get the current Bun version
5
5
  Get the current version of Bun in a semver format.
6
6
 
7
7
  ```ts#index.ts
8
- Bun.version; // => "1.2.18-canary.20250627T140644"
8
+ Bun.version; // => "1.2.18-canary.20250628T140543"
9
9
  ```
10
10
 
11
11
  ---
@@ -14,7 +14,7 @@ Kernel version 5.6 or higher is strongly recommended, but the minimum is 5.1. Us
14
14
  ```bash#macOS/Linux_(curl)
15
15
  $ curl -fsSL https://bun.sh/install | bash # for macOS, Linux, and WSL
16
16
  # to install a specific version
17
- $ curl -fsSL https://bun.sh/install | bash -s "bun-v1.2.18-canary.20250627T140644"
17
+ $ curl -fsSL https://bun.sh/install | bash -s "bun-v1.2.18-canary.20250628T140543"
18
18
  ```
19
19
 
20
20
  ```bash#npm
@@ -189,10 +189,10 @@ Since Bun is a single binary, you can install older versions of Bun by re-runnin
189
189
 
190
190
  ### Installing a specific version of Bun on Linux/Mac
191
191
 
192
- To install a specific version of Bun, you can pass the git tag of the version you want to install to the install script, such as `bun-v1.2.0` or `bun-v1.2.18-canary.20250627T140644`.
192
+ To install a specific version of Bun, you can pass the git tag of the version you want to install to the install script, such as `bun-v1.2.0` or `bun-v1.2.18-canary.20250628T140543`.
193
193
 
194
194
  ```sh
195
- $ curl -fsSL https://bun.sh/install | bash -s "bun-v1.2.18-canary.20250627T140644"
195
+ $ curl -fsSL https://bun.sh/install | bash -s "bun-v1.2.18-canary.20250628T140543"
196
196
  ```
197
197
 
198
198
  ### Installing a specific version of Bun on Windows
@@ -201,7 +201,7 @@ On Windows, you can install a specific version of Bun by passing the version num
201
201
 
202
202
  ```sh
203
203
  # PowerShell:
204
- $ iex "& {$(irm https://bun.sh/install.ps1)} -Version 1.2.18-canary.20250627T140644"
204
+ $ iex "& {$(irm https://bun.sh/install.ps1)} -Version 1.2.18-canary.20250628T140543"
205
205
  ```
206
206
 
207
207
  ## Downloading Bun binaries directly
@@ -353,6 +353,8 @@ dryRun = false
353
353
 
354
354
  To configure the directory where Bun puts globally installed packages.
355
355
 
356
+ Environment variable: `BUN_INSTALL_GLOBAL_DIR`
357
+
356
358
  ```toml
357
359
  [install]
358
360
  # where `bun install --global` installs packages
@@ -363,6 +365,8 @@ globalDir = "~/.bun/install/global"
363
365
 
364
366
  To configure the directory where Bun installs globally installed binaries and CLIs.
365
367
 
368
+ Environment variable: `BUN_INSTALL_BIN`
369
+
366
370
  ```toml
367
371
  # where globally-installed package bins are linked
368
372
  globalBinDir = "~/.bun/bin"
@@ -124,11 +124,11 @@ await fetch("https://example.com", {
124
124
  This prints the `fetch` request as a single-line `curl` command to let you copy-paste into your terminal to replicate the request.
125
125
 
126
126
  ```sh
127
- [fetch] $ curl --http1.1 "https://example.com/" -X POST -H "content-type: application/json" -H "Connection: keep-alive" -H "User-Agent: Bun/1.2.18-canary.20250627T140644" -H "Accept: */*" -H "Host: example.com" -H "Accept-Encoding: gzip, deflate, br" --compressed -H "Content-Length: 13" --data-raw "{\"foo\":\"bar\"}"
127
+ [fetch] $ curl --http1.1 "https://example.com/" -X POST -H "content-type: application/json" -H "Connection: keep-alive" -H "User-Agent: Bun/1.2.18-canary.20250628T140543" -H "Accept: */*" -H "Host: example.com" -H "Accept-Encoding: gzip, deflate, br" --compressed -H "Content-Length: 13" --data-raw "{\"foo\":\"bar\"}"
128
128
  [fetch] > HTTP/1.1 POST https://example.com/
129
129
  [fetch] > content-type: application/json
130
130
  [fetch] > Connection: keep-alive
131
- [fetch] > User-Agent: Bun/1.2.18-canary.20250627T140644
131
+ [fetch] > User-Agent: Bun/1.2.18-canary.20250628T140543
132
132
  [fetch] > Accept: */*
133
133
  [fetch] > Host: example.com
134
134
  [fetch] > Accept-Encoding: gzip, deflate, br
@@ -170,7 +170,7 @@ This prints the following to the console:
170
170
  [fetch] > HTTP/1.1 POST https://example.com/
171
171
  [fetch] > content-type: application/json
172
172
  [fetch] > Connection: keep-alive
173
- [fetch] > User-Agent: Bun/1.2.18-canary.20250627T140644
173
+ [fetch] > User-Agent: Bun/1.2.18-canary.20250628T140543
174
174
  [fetch] > Accept: */*
175
175
  [fetch] > Host: example.com
176
176
  [fetch] > Accept-Encoding: gzip, deflate, br
package/docs/test/dom.md CHANGED
@@ -55,7 +55,7 @@ Let's run this test with `bun test`:
55
55
 
56
56
  ```bash
57
57
  $ bun test
58
- bun test v1.2.18-canary.20250627T140644
58
+ bun test v1.2.18-canary.20250628T140543
59
59
 
60
60
  dom.test.ts:
61
61
  ✓ dom test [0.82ms]
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.2.18-canary.20250627T140644",
2
+ "version": "1.2.18-canary.20250628T140543",
3
3
  "name": "bun-types",
4
4
  "license": "MIT",
5
5
  "types": "./index.d.ts",