@gethashd/bytecave-browser 1.0.3 → 1.0.4

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.
@@ -5979,10 +5979,9 @@ var ByteCaveClient = class {
5979
5979
  connectionTimeout: 3e4,
5980
5980
  ...config
5981
5981
  };
5982
- if (config.relayPeers && config.relayPeers.length > 0) {
5983
- const relayHttpUrl = config.relayPeers[0];
5984
- this.relayDiscovery = new RelayDiscovery(relayHttpUrl);
5985
- console.log("[ByteCave] Using relay HTTP URL for peer discovery:", relayHttpUrl);
5982
+ if (config.relayHttpUrl) {
5983
+ this.relayDiscovery = new RelayDiscovery(config.relayHttpUrl);
5984
+ console.log("[ByteCave] Using relay HTTP URL for peer discovery:", config.relayHttpUrl);
5986
5985
  }
5987
5986
  if (config.vaultNodeRegistryAddress && config.rpcUrl) {
5988
5987
  this.contractDiscovery = new ContractDiscovery(config.vaultNodeRegistryAddress, config.rpcUrl);
@@ -6004,8 +6003,12 @@ var ByteCaveClient = class {
6004
6003
  console.log("[ByteCave] Using direct node addresses:", this.config.directNodeAddrs);
6005
6004
  bootstrapPeers.push(...this.config.directNodeAddrs);
6006
6005
  }
6006
+ if (this.config.relayPeers && this.config.relayPeers.length > 0) {
6007
+ console.log("[ByteCave] Using relay peers for circuit relay:", this.config.relayPeers);
6008
+ bootstrapPeers.push(...this.config.relayPeers);
6009
+ }
6007
6010
  if (bootstrapPeers.length === 0) {
6008
- console.warn("[ByteCave] No direct node addresses configured - will rely on relay peer discovery");
6011
+ console.warn("[ByteCave] No peers configured - will rely on contract discovery only");
6009
6012
  }
6010
6013
  console.log("[ByteCave] Bootstrap peers:", bootstrapPeers);
6011
6014
  this.node = await createLibp2p({
@@ -6671,6 +6674,7 @@ function ByteCaveProvider({
6671
6674
  rpcUrl,
6672
6675
  appId,
6673
6676
  relayPeers = [],
6677
+ relayHttpUrl,
6674
6678
  directNodeAddrs = []
6675
6679
  }) {
6676
6680
  const [connectionState, setConnectionState] = useState("disconnected");
@@ -6713,6 +6717,7 @@ function ByteCaveProvider({
6713
6717
  appId,
6714
6718
  directNodeAddrs,
6715
6719
  relayPeers,
6720
+ relayHttpUrl,
6716
6721
  maxPeers: 10,
6717
6722
  connectionTimeout: 3e4
6718
6723
  });
package/dist/index.cjs CHANGED
@@ -6032,10 +6032,9 @@ var ByteCaveClient = class {
6032
6032
  connectionTimeout: 3e4,
6033
6033
  ...config
6034
6034
  };
6035
- if (config.relayPeers && config.relayPeers.length > 0) {
6036
- const relayHttpUrl = config.relayPeers[0];
6037
- this.relayDiscovery = new RelayDiscovery(relayHttpUrl);
6038
- console.log("[ByteCave] Using relay HTTP URL for peer discovery:", relayHttpUrl);
6035
+ if (config.relayHttpUrl) {
6036
+ this.relayDiscovery = new RelayDiscovery(config.relayHttpUrl);
6037
+ console.log("[ByteCave] Using relay HTTP URL for peer discovery:", config.relayHttpUrl);
6039
6038
  }
6040
6039
  if (config.vaultNodeRegistryAddress && config.rpcUrl) {
6041
6040
  this.contractDiscovery = new ContractDiscovery(config.vaultNodeRegistryAddress, config.rpcUrl);
@@ -6057,8 +6056,12 @@ var ByteCaveClient = class {
6057
6056
  console.log("[ByteCave] Using direct node addresses:", this.config.directNodeAddrs);
6058
6057
  bootstrapPeers.push(...this.config.directNodeAddrs);
6059
6058
  }
6059
+ if (this.config.relayPeers && this.config.relayPeers.length > 0) {
6060
+ console.log("[ByteCave] Using relay peers for circuit relay:", this.config.relayPeers);
6061
+ bootstrapPeers.push(...this.config.relayPeers);
6062
+ }
6060
6063
  if (bootstrapPeers.length === 0) {
6061
- console.warn("[ByteCave] No direct node addresses configured - will rely on relay peer discovery");
6064
+ console.warn("[ByteCave] No peers configured - will rely on contract discovery only");
6062
6065
  }
6063
6066
  console.log("[ByteCave] Bootstrap peers:", bootstrapPeers);
6064
6067
  this.node = await (0, import_libp2p.createLibp2p)({
@@ -6724,6 +6727,7 @@ function ByteCaveProvider({
6724
6727
  rpcUrl,
6725
6728
  appId,
6726
6729
  relayPeers = [],
6730
+ relayHttpUrl,
6727
6731
  directNodeAddrs = []
6728
6732
  }) {
6729
6733
  const [connectionState, setConnectionState] = (0, import_react.useState)("disconnected");
@@ -6766,6 +6770,7 @@ function ByteCaveProvider({
6766
6770
  appId,
6767
6771
  directNodeAddrs,
6768
6772
  relayPeers,
6773
+ relayHttpUrl,
6769
6774
  maxPeers: 10,
6770
6775
  connectionTimeout: 3e4
6771
6776
  });
package/dist/index.js CHANGED
@@ -13,7 +13,7 @@ import {
13
13
  useHashdImage,
14
14
  useHashdMedia,
15
15
  useHashdUrl
16
- } from "./chunk-O56JMOMV.js";
16
+ } from "./chunk-6R5YCAYU.js";
17
17
  import {
18
18
  clearHashdCache,
19
19
  createHashdUrl,
@@ -52,8 +52,9 @@ interface ByteCaveProviderProps {
52
52
  rpcUrl: string;
53
53
  appId: string;
54
54
  relayPeers?: string[];
55
+ relayHttpUrl?: string;
55
56
  directNodeAddrs?: string[];
56
57
  }
57
- export declare function ByteCaveProvider({ children, vaultNodeRegistryAddress, contentRegistryAddress, rpcUrl, appId, relayPeers, directNodeAddrs }: ByteCaveProviderProps): React.JSX.Element;
58
+ export declare function ByteCaveProvider({ children, vaultNodeRegistryAddress, contentRegistryAddress, rpcUrl, appId, relayPeers, relayHttpUrl, directNodeAddrs }: ByteCaveProviderProps): React.JSX.Element;
58
59
  export declare function useByteCaveContext(): ByteCaveContextValue;
59
60
  export {};
@@ -8,7 +8,7 @@ import {
8
8
  useHashdImage,
9
9
  useHashdMedia,
10
10
  useHashdUrl
11
- } from "../chunk-O56JMOMV.js";
11
+ } from "../chunk-6R5YCAYU.js";
12
12
  import "../chunk-EEZWRIUI.js";
13
13
  export {
14
14
  HashdAudio,
package/dist/types.d.ts CHANGED
@@ -8,6 +8,7 @@ export interface ByteCaveConfig {
8
8
  appId: string;
9
9
  directNodeAddrs?: string[];
10
10
  relayPeers?: string[];
11
+ relayHttpUrl?: string;
11
12
  maxPeers?: number;
12
13
  connectionTimeout?: number;
13
14
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gethashd/bytecave-browser",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "ByteCave browser client for WebRTC P2P connections to storage nodes",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",
package/src/client.ts CHANGED
@@ -48,12 +48,10 @@ export class ByteCaveClient {
48
48
  ...config
49
49
  };
50
50
 
51
- // Initialize relay discovery using HTTP URLs from relayPeers
52
- if (config.relayPeers && config.relayPeers.length > 0) {
53
- // Use first relay HTTP URL for peer discovery
54
- const relayHttpUrl = config.relayPeers[0];
55
- this.relayDiscovery = new RelayDiscovery(relayHttpUrl);
56
- console.log('[ByteCave] Using relay HTTP URL for peer discovery:', relayHttpUrl);
51
+ // Initialize relay discovery using HTTP URL if provided
52
+ if (config.relayHttpUrl) {
53
+ this.relayDiscovery = new RelayDiscovery(config.relayHttpUrl);
54
+ console.log('[ByteCave] Using relay HTTP URL for peer discovery:', config.relayHttpUrl);
57
55
  }
58
56
 
59
57
  // Initialize contract discovery if contract address is provided
@@ -83,8 +81,14 @@ export class ByteCaveClient {
83
81
  bootstrapPeers.push(...this.config.directNodeAddrs);
84
82
  }
85
83
 
84
+ // Add relay peers for circuit relay connections
85
+ if (this.config.relayPeers && this.config.relayPeers.length > 0) {
86
+ console.log('[ByteCave] Using relay peers for circuit relay:', this.config.relayPeers);
87
+ bootstrapPeers.push(...this.config.relayPeers);
88
+ }
89
+
86
90
  if (bootstrapPeers.length === 0) {
87
- console.warn('[ByteCave] No direct node addresses configured - will rely on relay peer discovery');
91
+ console.warn('[ByteCave] No peers configured - will rely on contract discovery only');
88
92
  }
89
93
 
90
94
  console.log('[ByteCave] Bootstrap peers:', bootstrapPeers);
package/src/provider.tsx CHANGED
@@ -55,6 +55,7 @@ interface ByteCaveProviderProps {
55
55
  rpcUrl: string;
56
56
  appId: string;
57
57
  relayPeers?: string[];
58
+ relayHttpUrl?: string;
58
59
  directNodeAddrs?: string[];
59
60
  }
60
61
 
@@ -67,6 +68,7 @@ export function ByteCaveProvider({
67
68
  rpcUrl,
68
69
  appId,
69
70
  relayPeers = [],
71
+ relayHttpUrl,
70
72
  directNodeAddrs = []
71
73
  }: ByteCaveProviderProps) {
72
74
  const [connectionState, setConnectionState] = useState<ConnectionState>('disconnected');
@@ -117,6 +119,7 @@ export function ByteCaveProvider({
117
119
  appId,
118
120
  directNodeAddrs,
119
121
  relayPeers,
122
+ relayHttpUrl,
120
123
  maxPeers: 10,
121
124
  connectionTimeout: 30000
122
125
  });
package/src/types.ts CHANGED
@@ -8,7 +8,8 @@ export interface ByteCaveConfig {
8
8
  rpcUrl?: string; // Optional - required if vaultNodeRegistryAddress is provided
9
9
  appId: string; // Application identifier for storage authorization
10
10
  directNodeAddrs?: string[]; // Direct node multiaddrs for WebRTC connections (no relay)
11
- relayPeers?: string[]; // Relay HTTP URLs (e.g., http://localhost:9090) for peer discovery
11
+ relayPeers?: string[]; // Relay node multiaddrs for circuit relay (e.g., /ip4/127.0.0.1/tcp/4002/ws/p2p/...)
12
+ relayHttpUrl?: string; // Optional - Relay HTTP URL for instant peer discovery (e.g., http://localhost:9090)
12
13
  maxPeers?: number;
13
14
  connectionTimeout?: number;
14
15
  }