@helia/bitswap 4.0.6 → 4.0.7

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.
@@ -16,6 +16,7 @@ interface ProviderPeer {
16
16
  peerId: CID;
17
17
  router: string;
18
18
  toString(): string;
19
+ fallback: boolean;
19
20
  }
20
21
  declare class BitswapSession extends AbstractSession<ProviderPeer, BitswapWantProgressEvents> {
21
22
  readonly name = "bitswap-session";
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAS,MAAM,cAAc,CAAA;AAErD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAEtC,OAAO,KAAK,EAAmB,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAC5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,QAAQ,CAAA;IAClB,MAAM,EAAE,eAAe,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,UAAU,YAAY;IACpB,MAAM,EAAE,GAAG,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,IAAI,MAAM,CAAA;CACnB;AAED,cAAM,cAAe,SAAQ,eAAe,CAAC,YAAY,EAAE,yBAAyB,CAAC;IACnF,SAAgB,IAAI,qBAAoB;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;gBAElB,UAAU,EAAE,wBAAwB,EAAE,IAAI,EAAE,oBAAoB;IAWvE,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAoB1F,gBAAgB,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,YAAY,CAAC;IAU7F,WAAW,CAAE,QAAQ,EAAE,YAAY,GAAG,UAAU,GAAG,MAAM;IAIzD,MAAM,CAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,GAAG,OAAO;IAI5D,iBAAiB,CAAE,QAAQ,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAwB5I,8BAA8B,CAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,CAAC,yBAAyB,CAAC,GAAG,IAAI;CAYnI;AAED,wBAAgB,oBAAoB,CAAE,UAAU,EAAE,wBAAwB,EAAE,IAAI,EAAE,oBAAoB,GAAG,cAAc,CAEtH"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAS,MAAM,cAAc,CAAA;AAErD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAEtC,OAAO,KAAK,EAAmB,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAC5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,QAAQ,CAAA;IAClB,MAAM,EAAE,eAAe,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,UAAU,YAAY;IACpB,MAAM,EAAE,GAAG,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,IAAI,MAAM,CAAA;IAClB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,cAAM,cAAe,SAAQ,eAAe,CAAC,YAAY,EAAE,yBAAyB,CAAC;IACnF,SAAgB,IAAI,qBAAoB;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;gBAElB,UAAU,EAAE,wBAAwB,EAAE,IAAI,EAAE,oBAAoB;IAWvE,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAwB1F,gBAAgB,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,YAAY,CAAC;IAW7F,WAAW,CAAE,QAAQ,EAAE,YAAY,GAAG,UAAU,GAAG,MAAM;IAIzD,MAAM,CAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,GAAG,OAAO;IAI5D,iBAAiB,CAAE,QAAQ,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IA0B5I,8BAA8B,CAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,CAAC,yBAAyB,CAAC,GAAG,IAAI;CAanI;AAED,wBAAgB,oBAAoB,CAAE,UAAU,EAAE,wBAAwB,EAAE,IAAI,EAAE,oBAAoB,GAAG,cAAc,CAEtH"}
@@ -1,3 +1,4 @@
1
+ import { NoEvictionError } from '@helia/interface';
1
2
  import { AbstractSession, isCID } from '@helia/utils';
2
3
  import { peerIdFromCID } from '@libp2p/peer-id';
3
4
  import { CID } from 'multiformats/cid';
@@ -17,6 +18,9 @@ class BitswapSession extends AbstractSession {
17
18
  this.libp2p = components.libp2p;
18
19
  }
19
20
  async queryProvider(cid, provider, options) {
21
+ if (options.signal?.aborted === true) {
22
+ throw new NoEvictionError(`Signal to want session block for CID ${cid} from peer ${provider} was aborted prior to want`);
23
+ }
20
24
  const peerId = peerIdFromCID(provider.peerId);
21
25
  this.log('sending WANT-BLOCK for %c to %p', cid, peerId);
22
26
  const result = await this.wantList.wantSessionBlock(cid, peerId, options);
@@ -34,7 +38,8 @@ class BitswapSession extends AbstractSession {
34
38
  yield {
35
39
  peerId: provider.id,
36
40
  router: provider.router,
37
- toString: () => `Bitswap(${provider.id})`
41
+ toString: () => `Bitswap(${provider.id})`,
42
+ fallback: provider.fallback
38
43
  };
39
44
  }
40
45
  }
@@ -49,7 +54,8 @@ class BitswapSession extends AbstractSession {
49
54
  return {
50
55
  peerId: provider,
51
56
  router,
52
- toString: () => `Bitswap(${provider})`
57
+ toString: () => `Bitswap(${provider})`,
58
+ fallback: false
53
59
  };
54
60
  }
55
61
  if (await this.libp2p.isDialable(provider) === false) {
@@ -60,7 +66,8 @@ class BitswapSession extends AbstractSession {
60
66
  return {
61
67
  peerId: connection.remotePeer.toCID(),
62
68
  router,
63
- toString: () => `Bitswap(${connection.remotePeer})`
69
+ toString: () => `Bitswap(${connection.remotePeer})`,
70
+ fallback: false
64
71
  };
65
72
  }
66
73
  catch { }
@@ -72,7 +79,8 @@ class BitswapSession extends AbstractSession {
72
79
  provider: {
73
80
  id: provider.peerId,
74
81
  multiaddrs: [],
75
- router: provider.router
82
+ router: provider.router,
83
+ fallback: provider.fallback
76
84
  },
77
85
  router: provider.router
78
86
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helia/bitswap",
3
- "version": "4.0.6",
3
+ "version": "4.0.7",
4
4
  "description": "JavaScript implementation of the Bitswap data exchange protocol used by Helia",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/ipfs/helia/tree/main/packages/bitswap#readme",
@@ -52,9 +52,9 @@
52
52
  "docs": "aegir docs"
53
53
  },
54
54
  "dependencies": {
55
- "@helia/interface": "^7.1.0",
56
- "@helia/libp2p": "^1.0.6",
57
- "@helia/utils": "^3.0.4",
55
+ "@helia/interface": "^7.1.1",
56
+ "@helia/libp2p": "^1.0.7",
57
+ "@helia/utils": "^3.0.5",
58
58
  "@libp2p/interface": "^3.2.3",
59
59
  "@libp2p/logger": "^6.2.8",
60
60
  "@libp2p/peer-collections": "^7.0.21",
package/src/session.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { NoEvictionError } from '@helia/interface'
1
2
  import { AbstractSession, isCID } from '@helia/utils'
2
3
  import { peerIdFromCID } from '@libp2p/peer-id'
3
4
  import { CID } from 'multiformats/cid'
@@ -20,6 +21,7 @@ interface ProviderPeer {
20
21
  peerId: CID
21
22
  router: string
22
23
  toString(): string
24
+ fallback: boolean
23
25
  }
24
26
 
25
27
  class BitswapSession extends AbstractSession<ProviderPeer, BitswapWantProgressEvents> {
@@ -40,6 +42,10 @@ class BitswapSession extends AbstractSession<ProviderPeer, BitswapWantProgressEv
40
42
  }
41
43
 
42
44
  async queryProvider (cid: CID, provider: ProviderPeer, options: AbortOptions): Promise<Uint8Array> {
45
+ if (options.signal?.aborted === true) {
46
+ throw new NoEvictionError(`Signal to want session block for CID ${cid} from peer ${provider} was aborted prior to want`)
47
+ }
48
+
43
49
  const peerId = peerIdFromCID(provider.peerId)
44
50
 
45
51
  this.log('sending WANT-BLOCK for %c to %p', cid, peerId)
@@ -64,7 +70,8 @@ class BitswapSession extends AbstractSession<ProviderPeer, BitswapWantProgressEv
64
70
  yield {
65
71
  peerId: provider.id,
66
72
  router: provider.router,
67
- toString: () => `Bitswap(${provider.id})`
73
+ toString: () => `Bitswap(${provider.id})`,
74
+ fallback: provider.fallback
68
75
  }
69
76
  }
70
77
  }
@@ -82,7 +89,8 @@ class BitswapSession extends AbstractSession<ProviderPeer, BitswapWantProgressEv
82
89
  return {
83
90
  peerId: provider,
84
91
  router,
85
- toString: () => `Bitswap(${provider})`
92
+ toString: () => `Bitswap(${provider})`,
93
+ fallback: false
86
94
  }
87
95
  }
88
96
 
@@ -96,7 +104,8 @@ class BitswapSession extends AbstractSession<ProviderPeer, BitswapWantProgressEv
96
104
  return {
97
105
  peerId: connection.remotePeer.toCID(),
98
106
  router,
99
- toString: () => `Bitswap(${connection.remotePeer})`
107
+ toString: () => `Bitswap(${connection.remotePeer})`,
108
+ fallback: false
100
109
  }
101
110
  } catch {}
102
111
  }
@@ -108,7 +117,8 @@ class BitswapSession extends AbstractSession<ProviderPeer, BitswapWantProgressEv
108
117
  provider: {
109
118
  id: provider.peerId,
110
119
  multiaddrs: [],
111
- router: provider.router
120
+ router: provider.router,
121
+ fallback: provider.fallback
112
122
  },
113
123
  router: provider.router
114
124
  }))