@decentnetwork/peer 0.1.78 → 0.1.79

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.
@@ -54,6 +54,7 @@ export declare class FileTransferManager {
54
54
  }): string | null;
55
55
  accept(friendId: string, fileNumber: number): void;
56
56
  cancel(friendId: string, fileNumber: number, isSending: boolean): void;
57
+ cancelByFileId(friendId: string, fileIdHex: string, isSending: boolean): boolean;
57
58
  handlePacket(friendId: string, packetId: number, payload: Uint8Array): boolean;
58
59
  clearFriend(friendId: string): void;
59
60
  }
@@ -311,6 +311,20 @@ export class FileTransferManager {
311
311
  else
312
312
  this.#endRecv(friendId, fileNumber);
313
313
  }
314
+ // Cancel by content fileId (hex) — the daemon/UI tracks transfers by fileId,
315
+ // not the internal fileNumber, so it can stop a specific in-flight transfer.
316
+ cancelByFileId(friendId, fileIdHex, isSending) {
317
+ const inner = (isSending ? this.#sending : this.#receiving).get(friendId);
318
+ if (!inner)
319
+ return false;
320
+ for (const [fileNumber, st] of inner) {
321
+ if (hex(st.fileId) === fileIdHex) {
322
+ this.cancel(friendId, fileNumber, isSending);
323
+ return true;
324
+ }
325
+ }
326
+ return false;
327
+ }
314
328
  handlePacket(friendId, packetId, payload) {
315
329
  if (packetId === PACKET_ID_FILE_SENDREQUEST) {
316
330
  this.#onSendRequest(friendId, payload);
package/dist/peer.d.ts CHANGED
@@ -111,6 +111,8 @@ export declare class Peer {
111
111
  acceptFile(userid: string, fileNumber: number): void;
112
112
  /** Cancel a transfer (isSending = true if we're the sender). */
113
113
  cancelFile(userid: string, fileNumber: number, isSending?: boolean): void;
114
+ /** Cancel an in-flight transfer by its content fileId (hex). Returns true if found. */
115
+ cancelFileById(userid: string, fileId: string, isSending?: boolean): boolean;
114
116
  /** Incoming file offer: { friendId, fileNumber, fileId, name, size, kind }. */
115
117
  onFile(cb: (offer: {
116
118
  friendId: string;
package/dist/peer.js CHANGED
@@ -1032,6 +1032,8 @@ export class Peer {
1032
1032
  acceptFile(userid, fileNumber) { this.#fileTransfer.accept(userid, fileNumber); }
1033
1033
  /** Cancel a transfer (isSending = true if we're the sender). */
1034
1034
  cancelFile(userid, fileNumber, isSending = false) { this.#fileTransfer.cancel(userid, fileNumber, isSending); }
1035
+ /** Cancel an in-flight transfer by its content fileId (hex). Returns true if found. */
1036
+ cancelFileById(userid, fileId, isSending = false) { return this.#fileTransfer.cancelByFileId(userid, fileId, isSending); }
1035
1037
  /** Incoming file offer: { friendId, fileNumber, fileId, name, size, kind }. */
1036
1038
  onFile(cb) { this.#events.on("file-offer", cb); }
1037
1039
  /** Transfer progress: { friendId, fileId, received, total, sending? }. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decentnetwork/peer",
3
- "version": "0.1.78",
3
+ "version": "0.1.79",
4
4
  "description": "Pure TypeScript port of Elastos Carrier (toxcore-derived) P2P messaging. DHT, onion routing, TCP relay, FlatBuffers app payloads, Express offline relay. Wire-compatible with iOS Beagle and the Carrier C SDK.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",