@trap_stevo/filetide 0.0.86 → 0.0.87

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.
@@ -1845,14 +1845,33 @@ class FileTideAnchor {
1845
1845
  }
1846
1846
  }
1847
1847
  handleClientTransferBarrierResponse(senderTide, data) {
1848
- console.log(`[FileTide ~ Anchor] Checking ${data.recipientID}'s transfer barrier for transfer ~ ${data.transferID}...`);
1848
+ console.log(`[FileTide ~ Anchor] Checking ${data?.recipientID}'s transfer barrier for transfer ~ ${data?.transferID}...`);
1849
1849
  try {
1850
- const recipientConnectionID = FileTideAnchorClientManager.getOnlineClient(data.recipientID).id;
1851
- const senderConnectionID = FileTideAnchorClientManager.getOnlineClient(data.clientID).id;
1850
+ if (!data || !data.clientID || !data.recipientID || !data.transferID) {
1851
+ console.log(`[FileTide ~ Anchor Barrier] ~ Invalid transfer barrier request.`);
1852
+ return;
1853
+ }
1854
+ const recipientDetails = FileTideAnchorClientManager.getOnlineClient(data.recipientID);
1855
+ const senderDetails = FileTideAnchorClientManager.getOnlineClient(data.clientID);
1856
+ if (!recipientDetails || !senderDetails) {
1857
+ console.log(!senderDetails ? `[FileTide ~ Anchor Barrier] ~ Sender ~ ${data.clientID} not online.` : `[FileTide ~ Anchor Barrier] ~ Recipient ~ ${data.recipientID} not online.`);
1858
+ const senderClient = senderDetails ? this.getClientFromID(senderDetails.id) : null;
1859
+ if (senderClient) {
1860
+ this.anchor.emitToTide(senderClient.tideID, "transfer-barrier-response", false);
1861
+ }
1862
+ this.currentTransferBarrierTransfers.delete(data.transferID);
1863
+ return;
1864
+ }
1865
+ const recipientConnectionID = recipientDetails.id;
1866
+ const senderConnectionID = senderDetails.id;
1852
1867
  const senderClient = this.getClientFromID(senderConnectionID);
1853
1868
  const client = this.getClientFromID(recipientConnectionID);
1854
1869
  if (!client || !senderClient) {
1855
- console.log(`[FileTide ~ Anchor Barrier] ~ Both, recipient and sender connection authorization required.`);
1870
+ console.log(`[FileTide ~ Anchor Barrier] ~ Both recipient and sender connection authorization required.`);
1871
+ if (senderClient) {
1872
+ this.anchor.emitToTide(senderClient.tideID, "transfer-barrier-response", false);
1873
+ }
1874
+ this.currentTransferBarrierTransfers.delete(data.transferID);
1856
1875
  return;
1857
1876
  }
1858
1877
  this.anchor.emitToTide(client.tideID, "queue-incoming-transfer", {
@@ -1955,10 +1974,17 @@ class FileTideAnchor {
1955
1974
  ...data
1956
1975
  });
1957
1976
  }).catch(error => {
1977
+ this.currentTransferBarrierTransfers.delete(data.transferID);
1958
1978
  console.error(`[FileTide ~ Anchor Barrier] ~ ${error.message}`);
1979
+ const currentSenderDetails = FileTideAnchorClientManager.getOnlineClient(data.clientID);
1980
+ const currentSenderClient = currentSenderDetails ? this.getClientFromID(currentSenderDetails.id) : null;
1981
+ if (currentSenderClient) {
1982
+ this.anchor.emitToTide(currentSenderClient.tideID, "transfer-barrier-response", false);
1983
+ }
1959
1984
  });
1960
1985
  return;
1961
1986
  } catch (error) {
1987
+ this.currentTransferBarrierTransfers.delete(data?.transferID);
1962
1988
  console.error(`[FileTide ~ Anchor Barrier] ~ `, error);
1963
1989
  return;
1964
1990
  }
@@ -1997,12 +2023,6 @@ class FileTideAnchor {
1997
2023
  const recipientDetails = data.recipientName ? FileTideAnchorClientManager.getOnlineClient(data.recipientName) : null;
1998
2024
  const senderClient = senderDetails ? this.getClientFromID(senderDetails.id) : null;
1999
2025
  const recipientClient = recipientDetails ? this.getClientFromID(recipientDetails.id) : null;
2000
-
2001
- /*
2002
- * Sender progress reflects receiver-confirmed persistence,
2003
- * not merely Anchor forwarding. This keeps the sender's
2004
- * tracking aligned with the authoritative receiver state.
2005
- */
2006
2026
  if (senderClient) {
2007
2027
  this.anchor.emitToTide(senderClient.tideID, "transfer-status", {
2008
2028
  transferId: data.transferId,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trap_stevo/filetide",
3
- "version": "0.0.86",
3
+ "version": "0.0.87",
4
4
  "description": "Revolutionizing real-time file transfer with seamless, instant communication across any device. Deliver files instantly, regardless of platform, and experience unparalleled speed and control in managing transfers. Elevate your file-sharing capabilities with a tool designed for precision, efficiency, and effortless connectivity.",
5
5
  "main": "dist/cjs/FileTide.js",
6
6
  "scripts": {