@enbox/dwn-clients 0.2.0 → 0.2.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.
@@ -88,6 +88,10 @@ export class HttpDwnRpcClient {
88
88
  maxDelayMs: (_c = retryOptions === null || retryOptions === void 0 ? void 0 : retryOptions.maxDelayMs) !== null && _c !== void 0 ? _c : DEFAULT_MAX_DELAY_MS,
89
89
  };
90
90
  }
91
+ /** Detects whether the current runtime is Bun (vs a browser). */
92
+ static isBunRuntime() {
93
+ return typeof globalThis.Bun !== 'undefined';
94
+ }
91
95
  get transportProtocols() { return ['http:', 'https:']; }
92
96
  sendDwnRequest(request) {
93
97
  return __awaiter(this, void 0, void 0, function* () {
@@ -106,11 +110,23 @@ export class HttpDwnRpcClient {
106
110
  };
107
111
  if (request.data) {
108
112
  requestHeaders['content-type'] = 'application/octet-stream';
109
- fetchOpts.body = request.data;
110
- // Browsers require `duplex: 'half'` when the fetch body is a ReadableStream.
111
- // The sync-push path sends record data as a raw stream (see sync-messages.ts).
112
- // TypeScript's built-in RequestInit does not include `duplex` yet.
113
- fetchOpts.duplex = 'half';
113
+ let requestBody = request.data;
114
+ if (requestBody instanceof ReadableStream) {
115
+ // Bun's fetch currently fails on some ReadableStream uploads in the sync push path.
116
+ // Buffer to a Blob in Bun to avoid the broken path. In browsers, keep the stream
117
+ // and set `duplex: 'half'` which the Fetch spec requires for streaming request bodies.
118
+ // See: https://developer.chrome.com/docs/capabilities/web-apis/fetch-streaming-requests
119
+ if (HttpDwnRpcClient.isBunRuntime()) {
120
+ const bodyBytes = yield DataStream.toBytes(requestBody);
121
+ requestBody = new Blob([bodyBytes], { type: 'application/octet-stream' });
122
+ }
123
+ else {
124
+ // Browsers require `duplex: 'half'` when the fetch body is a ReadableStream.
125
+ // TypeScript's built-in RequestInit does not include `duplex` yet.
126
+ fetchOpts.duplex = 'half';
127
+ }
128
+ }
129
+ fetchOpts.body = requestBody;
114
130
  }
115
131
  const resp = yield this.fetchWithRetry(request.dwnUrl, fetchOpts);
116
132
  // After retries are exhausted, a 429 means we're still rate-limited.
@@ -1 +1 @@
1
- {"version":3,"file":"http-dwn-rpc-client.js","sourceRoot":"","sources":["../../src/http-dwn-rpc-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-dwn-rpc-client.js","sourceRoot":"","sources":["../../src/http-dwn-rpc-client.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,8 @@ export declare class HttpDwnRpcClient implements DwnRpc {
22
22
  private serverInfoCache;
23
23
  private _retryOptions;
24
24
  constructor(serverInfoCache?: DwnServerInfoCache, retryOptions?: HttpRetryOptions);
25
+ /** Detects whether the current runtime is Bun (vs a browser). */
26
+ static isBunRuntime(): boolean;
25
27
  get transportProtocols(): string[];
26
28
  sendDwnRequest(request: DwnRpcRequest): Promise<DwnRpcResponse>;
27
29
  getServerInfo(dwnUrl: string): Promise<ServerInfo>;
@@ -1 +1 @@
1
- {"version":3,"file":"http-dwn-rpc-client.d.ts","sourceRoot":"","sources":["../../src/http-dwn-rpc-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AA2B7E;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAsDF;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,MAAM;IAC7C,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,aAAa,CAA6B;gBAEtC,eAAe,CAAC,EAAE,kBAAkB,EAAE,YAAY,CAAC,EAAE,gBAAgB;IASjF,IAAI,kBAAkB,IAAI,MAAM,EAAE,CAAgC;IAE5D,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IA2F/D,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA8CxD;;;;OAIG;YACW,cAAc;CAgD7B"}
1
+ {"version":3,"file":"http-dwn-rpc-client.d.ts","sourceRoot":"","sources":["../../src/http-dwn-rpc-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AA2B7E;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAsDF;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,MAAM;IAC7C,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,aAAa,CAA6B;gBAEtC,eAAe,CAAC,EAAE,kBAAkB,EAAE,YAAY,CAAC,EAAE,gBAAgB;IASjF,iEAAiE;IACjE,MAAM,CAAC,YAAY,IAAI,OAAO;IAI9B,IAAI,kBAAkB,IAAI,MAAM,EAAE,CAAgC;IAE5D,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAuG/D,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA8CxD;;;;OAIG;YACW,cAAc;CAgD7B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enbox/dwn-clients",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "type": "module",
5
5
  "main": "./dist/esm/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -48,7 +48,7 @@
48
48
  "dependencies": {
49
49
  "@enbox/common": "0.1.0",
50
50
  "@enbox/crypto": "0.1.0",
51
- "@enbox/dwn-sdk-js": "0.2.0",
51
+ "@enbox/dwn-sdk-js": "0.2.1",
52
52
  "ms": "2.1.3"
53
53
  },
54
54
  "devDependencies": {
@@ -111,6 +111,11 @@ export class HttpDwnRpcClient implements DwnRpc {
111
111
  };
112
112
  }
113
113
 
114
+ /** Detects whether the current runtime is Bun (vs a browser). */
115
+ static isBunRuntime(): boolean {
116
+ return typeof (globalThis as Record<string, unknown>).Bun !== 'undefined';
117
+ }
118
+
114
119
  get transportProtocols(): string[] { return ['http:', 'https:']; }
115
120
 
116
121
  async sendDwnRequest(request: DwnRpcRequest): Promise<DwnRpcResponse> {
@@ -131,12 +136,24 @@ export class HttpDwnRpcClient implements DwnRpc {
131
136
 
132
137
  if (request.data) {
133
138
  requestHeaders['content-type'] = 'application/octet-stream';
134
- fetchOpts.body = request.data;
139
+ let requestBody = request.data;
140
+
141
+ if (requestBody instanceof ReadableStream) {
142
+ // Bun's fetch currently fails on some ReadableStream uploads in the sync push path.
143
+ // Buffer to a Blob in Bun to avoid the broken path. In browsers, keep the stream
144
+ // and set `duplex: 'half'` which the Fetch spec requires for streaming request bodies.
145
+ // See: https://developer.chrome.com/docs/capabilities/web-apis/fetch-streaming-requests
146
+ if (HttpDwnRpcClient.isBunRuntime()) {
147
+ const bodyBytes = await DataStream.toBytes(requestBody as ReadableStream<Uint8Array>);
148
+ requestBody = new Blob([bodyBytes as BlobPart], { type: 'application/octet-stream' });
149
+ } else {
150
+ // Browsers require `duplex: 'half'` when the fetch body is a ReadableStream.
151
+ // TypeScript's built-in RequestInit does not include `duplex` yet.
152
+ (fetchOpts as Record<string, unknown>).duplex = 'half';
153
+ }
154
+ }
135
155
 
136
- // Browsers require `duplex: 'half'` when the fetch body is a ReadableStream.
137
- // The sync-push path sends record data as a raw stream (see sync-messages.ts).
138
- // TypeScript's built-in RequestInit does not include `duplex` yet.
139
- (fetchOpts as Record<string, unknown>).duplex = 'half';
156
+ fetchOpts.body = requestBody;
140
157
  }
141
158
 
142
159
  const resp = await this.fetchWithRetry(request.dwnUrl, fetchOpts);