@peerbit/react 1.0.11 → 1.1.0

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.
@@ -19,7 +19,13 @@ export type PeerbitLike = {
19
19
  hangUp: (address: PeerId | PublicSignKey | string | Multiaddr) => Promise<void>;
20
20
  start: () => Promise<void>;
21
21
  stop: () => Promise<void>;
22
- bootstrap?: (addresses?: string[] | Multiaddr[]) => Promise<void>;
22
+ bootstrap?: (addresses?: string[] | Multiaddr[]) => Promise<void | {
23
+ connectedPeerIds?: string[];
24
+ failures?: {
25
+ peerId?: string;
26
+ reason: string;
27
+ }[];
28
+ }>;
23
29
  open: <S extends Program<any>>(storeOrAddress: S | Address | string, options?: CanonicalOpenOptions<S>) => Promise<S>;
24
30
  };
25
31
  export type PeerRuntime = "node" | "canonical";
@@ -71,6 +77,11 @@ export type IPeerContext = {
71
77
  persisted?: boolean;
72
78
  tabIndex?: number;
73
79
  error?: Error;
80
+ warning?: {
81
+ type: "bootstrap-partial";
82
+ message: string;
83
+ failures: string[];
84
+ };
74
85
  canonical?: {
75
86
  client: CanonicalClient;
76
87
  };
@@ -1 +1 @@
1
- {"version":3,"file":"usePeer.d.ts","sourceRoot":"","sources":["../../src/usePeer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usePeer.d.ts","sourceRoot":"","sources":["../../src/usePeer.tsx"],"names":[],"mappings":"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"}
@@ -12,6 +12,19 @@ const keypairLog = log.newScope("keypair");
12
12
  const storageLog = log.newScope("storage");
13
13
  const clientLog = log.newScope("client");
14
14
  const bootstrapLog = log.newScope("bootstrap");
15
+ const hasBootstrapConnection = (peer, bootstrapPeerIds) => {
16
+ if (bootstrapPeerIds.size === 0) {
17
+ return false;
18
+ }
19
+ const connections = peer?.libp2p?.getConnections?.() ?? [];
20
+ for (const connection of connections) {
21
+ const remotePeer = connection?.remotePeer?.toString?.();
22
+ if (remotePeer && bootstrapPeerIds.has(remotePeer)) {
23
+ return true;
24
+ }
25
+ }
26
+ return false;
27
+ };
15
28
  const isInStandaloneMode = () => window.matchMedia("(display-mode: standalone)").matches ||
16
29
  (window.navigator["standalone"] ??
17
30
  false) ||
@@ -46,6 +59,7 @@ export const PeerProvider = ({ config, children }) => {
46
59
  const [connectionState, setConnectionState] = React.useState("disconnected");
47
60
  const [tabIndex, setTabIndex] = React.useState(undefined);
48
61
  const [error, setError] = React.useState(undefined);
62
+ const [warning, setWarning] = React.useState(undefined);
49
63
  const memo = React.useMemo(() => {
50
64
  return {
51
65
  runtime,
@@ -56,6 +70,7 @@ export const PeerProvider = ({ config, children }) => {
56
70
  persisted,
57
71
  tabIndex,
58
72
  error,
73
+ warning,
59
74
  canonical: canonicalClient ? { client: canonicalClient } : undefined,
60
75
  };
61
76
  }, [
@@ -68,6 +83,7 @@ export const PeerProvider = ({ config, children }) => {
68
83
  promise,
69
84
  runtime,
70
85
  tabIndex,
86
+ warning,
71
87
  ]);
72
88
  React.useEffect(() => {
73
89
  let unmounted = false;
@@ -79,6 +95,7 @@ export const PeerProvider = ({ config, children }) => {
79
95
  setConnectionState("connecting");
80
96
  setLoading(true);
81
97
  setError(undefined);
98
+ setWarning(undefined);
82
99
  const fn = async () => {
83
100
  if (selected.runtime === "canonical") {
84
101
  const { connectServiceWorker, connectSharedWorker, connectWindow, PeerbitCanonicalClient, } = await import("@peerbit/canonical-client");
@@ -128,7 +145,7 @@ export const PeerProvider = ({ config, children }) => {
128
145
  return;
129
146
  }
130
147
  const nodeOptions = selected;
131
- const [{ detectIncognito }, sodiumModule, { Peerbit }, { noise }, { yamux }, { webSockets }, { keys },] = await Promise.all([
148
+ const [{ detectIncognito }, sodiumModule, { Peerbit, getBootstrapPeerId, resolveBootstrapAddresses }, { noise }, { yamux }, { webSockets }, { keys },] = await Promise.all([
132
149
  import("detectincognitojs"),
133
150
  import("libsodium-wrappers"),
134
151
  import("peerbit"),
@@ -235,24 +252,31 @@ export const PeerProvider = ({ config, children }) => {
235
252
  indexer: nodeOptions.indexer,
236
253
  });
237
254
  newPeer = created;
255
+ closePeer = () => {
256
+ keepAliveRef.current = false;
257
+ void created?.stop?.().catch(() => { });
258
+ };
238
259
  window.__peerInfo = {
239
260
  peerHash: created?.identity?.publicKey?.hashcode?.(),
240
261
  persisted: persistedResolved,
241
262
  };
242
263
  window.dispatchEvent(new CustomEvent("peer:ready", { detail: window.__peerInfo }));
243
264
  const connectFn = async () => {
265
+ let bootstrapTargets = [];
244
266
  try {
245
267
  const network = nodeOptions.network;
268
+ let bootstrapResult = undefined;
246
269
  if (typeof network !== "string" &&
247
270
  network?.bootstrap !== undefined) {
248
271
  const list = network.bootstrap;
272
+ bootstrapTargets = list;
249
273
  if (list.length === 0) {
250
274
  bootstrapLog("offline: skipping relay dialing");
251
275
  }
252
276
  else {
253
277
  if (typeof created.bootstrap === "function") {
254
278
  bootstrapLog("bootstrapping explicit addresses", list);
255
- await created.bootstrap(list.map((addr) => typeof addr === "string" ? addr : addr.toString()));
279
+ bootstrapResult = await created.bootstrap(list.map((addr) => typeof addr === "string" ? addr : addr.toString()));
256
280
  }
257
281
  else {
258
282
  for (const addr of list) {
@@ -265,15 +289,55 @@ export const PeerProvider = ({ config, children }) => {
265
289
  (typeof network !== "string" && network?.type === "local")) {
266
290
  const localAddress = "/ip4/127.0.0.1/tcp/8002/ws/p2p/" +
267
291
  (await (await fetch("http://localhost:8082/peer/id")).text());
292
+ bootstrapTargets = [localAddress];
268
293
  bootstrapLog("dialing local address", localAddress);
269
294
  await created.dial(localAddress);
270
295
  }
271
296
  else {
272
- await created.bootstrap?.();
297
+ const resolvedBootstrapAddresses = (await resolveBootstrapAddresses?.()) ?? [];
298
+ bootstrapTargets = resolvedBootstrapAddresses;
299
+ bootstrapResult =
300
+ await created.bootstrap?.(resolvedBootstrapAddresses);
301
+ }
302
+ if ((bootstrapResult?.failures?.length ?? 0) > 0) {
303
+ const failureSummaries = bootstrapResult.failures.map((failure) => {
304
+ const target = failure.peerId ?? "unknown bootstrap target";
305
+ return `${target}: ${failure.reason}`;
306
+ });
307
+ const message = `Connected to ${bootstrapResult?.connectedPeerIds?.length ?? 0} bootstrap peer(s), ` +
308
+ `but failed to reach ${bootstrapResult?.failures?.length ?? 0} peer(s)`;
309
+ bootstrapLog("bootstrap partial warning", {
310
+ connectedPeerIds: bootstrapResult?.connectedPeerIds ?? [],
311
+ failures: failureSummaries,
312
+ });
313
+ console.warn(message, failureSummaries);
314
+ setWarning({
315
+ type: "bootstrap-partial",
316
+ message,
317
+ failures: failureSummaries,
318
+ });
273
319
  }
274
320
  setConnectionState("connected");
275
321
  }
276
322
  catch (err) {
323
+ const bootstrapPeerIds = new Set(bootstrapTargets
324
+ .map((address) => getBootstrapPeerId(address))
325
+ .filter((address) => !!address));
326
+ if (unmounted) {
327
+ bootstrapLog("ignoring bootstrap failure after unmount", {
328
+ error: err?.message ?? String(err),
329
+ bootstrapPeerIds: [...bootstrapPeerIds],
330
+ });
331
+ return;
332
+ }
333
+ if (hasBootstrapConnection(created, bootstrapPeerIds)) {
334
+ bootstrapLog("ignoring bootstrap failure with active bootstrap connection", {
335
+ error: err?.message ?? String(err),
336
+ bootstrapPeerIds: [...bootstrapPeerIds],
337
+ });
338
+ setConnectionState("connected");
339
+ return;
340
+ }
277
341
  console.error("Failed to bootstrap:", err);
278
342
  setConnectionState("failed");
279
343
  }
@@ -1 +1 @@
1
- {"version":3,"file":"usePeer.js","sourceRoot":"","sources":["../../src/usePeer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usePeer.js","sourceRoot":"","sources":["../../src/usePeer.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/react",
3
- "version": "1.0.11",
3
+ "version": "1.1.0",
4
4
  "description": "React bindings for Peerbit clients",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -54,11 +54,11 @@
54
54
  "uuid": "^10.0.0",
55
55
  "@peerbit/canonical-client": "1.1.11",
56
56
  "@peerbit/logger": "2.0.0",
57
+ "@peerbit/program": "6.0.8",
57
58
  "@peerbit/program-react": "0.4.11",
58
59
  "@peerbit/crypto": "3.0.1",
59
- "@peerbit/program": "6.0.8",
60
60
  "@peerbit/indexer-interface": "3.0.1",
61
- "peerbit": "5.0.11"
61
+ "peerbit": "5.1.0"
62
62
  },
63
63
  "devDependencies": {
64
64
  "@vitest/coverage-v8": "^4.0.12",
@@ -67,8 +67,10 @@
67
67
  "@types/libsodium-wrappers": "^0.7.14",
68
68
  "@types/node-localstorage": "^1.3.3",
69
69
  "@types/react": "^18.3.11",
70
+ "@types/react-dom": "^18.3.5",
70
71
  "chai": "^5.2.0",
71
72
  "node-localstorage": "^3.0.5",
73
+ "react-dom": "^19.1.0",
72
74
  "sinon": "^21.0.0",
73
75
  "vitest": "^4.0.12",
74
76
  "@peerbit/time": "3.0.0"
package/src/usePeer.tsx CHANGED
@@ -32,6 +32,25 @@ const storageLog = log.newScope("storage");
32
32
  const clientLog = log.newScope("client");
33
33
  const bootstrapLog = log.newScope("bootstrap");
34
34
 
35
+ const hasBootstrapConnection = (
36
+ peer: PeerbitLike,
37
+ bootstrapPeerIds: Set<string>,
38
+ ): boolean => {
39
+ if (bootstrapPeerIds.size === 0) {
40
+ return false;
41
+ }
42
+
43
+ const connections = (peer as any)?.libp2p?.getConnections?.() ?? [];
44
+ for (const connection of connections) {
45
+ const remotePeer = connection?.remotePeer?.toString?.();
46
+ if (remotePeer && bootstrapPeerIds.has(remotePeer)) {
47
+ return true;
48
+ }
49
+ }
50
+
51
+ return false;
52
+ };
53
+
35
54
  const isInStandaloneMode = () =>
36
55
  window.matchMedia("(display-mode: standalone)").matches ||
37
56
  ((window.navigator as unknown as Record<string, unknown>)["standalone"] ??
@@ -61,7 +80,15 @@ export type PeerbitLike = {
61
80
  ) => Promise<void>;
62
81
  start: () => Promise<void>;
63
82
  stop: () => Promise<void>;
64
- bootstrap?: (addresses?: string[] | Multiaddr[]) => Promise<void>;
83
+ bootstrap?: (
84
+ addresses?: string[] | Multiaddr[],
85
+ ) => Promise<
86
+ | void
87
+ | {
88
+ connectedPeerIds?: string[];
89
+ failures?: { peerId?: string; reason: string }[];
90
+ }
91
+ >;
65
92
  open: <S extends Program<any>>(
66
93
  storeOrAddress: S | Address | string,
67
94
  options?: CanonicalOpenOptions<S>,
@@ -125,6 +152,7 @@ export type IPeerContext = {
125
152
  persisted?: boolean;
126
153
  tabIndex?: number;
127
154
  error?: Error;
155
+ warning?: { type: "bootstrap-partial"; message: string; failures: string[] };
128
156
  canonical?: {
129
157
  client: CanonicalClient;
130
158
  };
@@ -184,6 +212,9 @@ export const PeerProvider = ({ config, children }: PeerProviderProps) => {
184
212
  React.useState<ConnectionStatus>("disconnected");
185
213
  const [tabIndex, setTabIndex] = React.useState<number | undefined>(undefined);
186
214
  const [error, setError] = React.useState<Error | undefined>(undefined);
215
+ const [warning, setWarning] = React.useState<
216
+ IPeerContext["warning"] | undefined
217
+ >(undefined);
187
218
 
188
219
  const memo = React.useMemo<IPeerContext>(() => {
189
220
  return {
@@ -195,6 +226,7 @@ export const PeerProvider = ({ config, children }: PeerProviderProps) => {
195
226
  persisted,
196
227
  tabIndex,
197
228
  error,
229
+ warning,
198
230
  canonical: canonicalClient ? { client: canonicalClient } : undefined,
199
231
  };
200
232
  }, [
@@ -207,6 +239,7 @@ export const PeerProvider = ({ config, children }: PeerProviderProps) => {
207
239
  promise,
208
240
  runtime,
209
241
  tabIndex,
242
+ warning,
210
243
  ]);
211
244
 
212
245
  React.useEffect(() => {
@@ -220,6 +253,7 @@ export const PeerProvider = ({ config, children }: PeerProviderProps) => {
220
253
  setConnectionState("connecting");
221
254
  setLoading(true);
222
255
  setError(undefined);
256
+ setWarning(undefined);
223
257
 
224
258
  const fn = async () => {
225
259
  if (selected.runtime === "canonical") {
@@ -283,7 +317,7 @@ export const PeerProvider = ({ config, children }: PeerProviderProps) => {
283
317
  const [
284
318
  { detectIncognito },
285
319
  sodiumModule,
286
- { Peerbit },
320
+ { Peerbit, getBootstrapPeerId, resolveBootstrapAddresses },
287
321
  { noise },
288
322
  { yamux },
289
323
  { webSockets },
@@ -402,6 +436,10 @@ export const PeerProvider = ({ config, children }: PeerProviderProps) => {
402
436
  });
403
437
 
404
438
  newPeer = created as unknown as PeerbitLike;
439
+ closePeer = () => {
440
+ keepAliveRef.current = false;
441
+ void (created as any)?.stop?.().catch(() => {});
442
+ };
405
443
 
406
444
  (window as any).__peerInfo = {
407
445
  peerHash: created?.identity?.publicKey?.hashcode?.(),
@@ -412,19 +450,28 @@ export const PeerProvider = ({ config, children }: PeerProviderProps) => {
412
450
  );
413
451
 
414
452
  const connectFn = async () => {
453
+ let bootstrapTargets: (Multiaddr | string)[] = [];
415
454
  try {
416
455
  const network = nodeOptions.network;
456
+ let bootstrapResult:
457
+ | void
458
+ | {
459
+ connectedPeerIds?: string[];
460
+ failures?: { peerId?: string; reason: string }[];
461
+ }
462
+ | undefined = undefined;
417
463
  if (
418
464
  typeof network !== "string" &&
419
465
  (network as any)?.bootstrap !== undefined
420
466
  ) {
421
467
  const list = (network as any).bootstrap as (Multiaddr | string)[];
468
+ bootstrapTargets = list;
422
469
  if (list.length === 0) {
423
470
  bootstrapLog("offline: skipping relay dialing");
424
471
  } else {
425
472
  if (typeof created.bootstrap === "function") {
426
473
  bootstrapLog("bootstrapping explicit addresses", list);
427
- await created.bootstrap(
474
+ bootstrapResult = await created.bootstrap(
428
475
  list.map((addr) =>
429
476
  typeof addr === "string" ? addr : addr.toString(),
430
477
  ),
@@ -442,13 +489,65 @@ export const PeerProvider = ({ config, children }: PeerProviderProps) => {
442
489
  const localAddress =
443
490
  "/ip4/127.0.0.1/tcp/8002/ws/p2p/" +
444
491
  (await (await fetch("http://localhost:8082/peer/id")).text());
492
+ bootstrapTargets = [localAddress];
445
493
  bootstrapLog("dialing local address", localAddress);
446
494
  await created.dial(localAddress);
447
- } else {
448
- await created.bootstrap?.();
495
+ } else {
496
+ const resolvedBootstrapAddresses =
497
+ (await resolveBootstrapAddresses?.()) ?? [];
498
+ bootstrapTargets = resolvedBootstrapAddresses;
499
+ bootstrapResult =
500
+ await created.bootstrap?.(resolvedBootstrapAddresses);
501
+ }
502
+ if ((bootstrapResult?.failures?.length ?? 0) > 0) {
503
+ const failureSummaries = bootstrapResult!.failures!.map((failure) => {
504
+ const target = failure.peerId ?? "unknown bootstrap target";
505
+ return `${target}: ${failure.reason}`;
506
+ });
507
+ const message =
508
+ `Connected to ${bootstrapResult?.connectedPeerIds?.length ?? 0} bootstrap peer(s), ` +
509
+ `but failed to reach ${bootstrapResult?.failures?.length ?? 0} peer(s)`;
510
+ bootstrapLog("bootstrap partial warning", {
511
+ connectedPeerIds: bootstrapResult?.connectedPeerIds ?? [],
512
+ failures: failureSummaries,
513
+ });
514
+ console.warn(message, failureSummaries);
515
+ setWarning({
516
+ type: "bootstrap-partial",
517
+ message,
518
+ failures: failureSummaries,
519
+ });
520
+ }
521
+ setConnectionState("connected");
522
+ } catch (err: any) {
523
+ const bootstrapPeerIds = new Set(
524
+ bootstrapTargets
525
+ .map((address) => getBootstrapPeerId(address))
526
+ .filter((address): address is string => !!address),
527
+ );
528
+ if (unmounted) {
529
+ bootstrapLog("ignoring bootstrap failure after unmount", {
530
+ error: err?.message ?? String(err),
531
+ bootstrapPeerIds: [...bootstrapPeerIds],
532
+ });
533
+ return;
534
+ }
535
+ if (
536
+ hasBootstrapConnection(
537
+ created as unknown as PeerbitLike,
538
+ bootstrapPeerIds,
539
+ )
540
+ ) {
541
+ bootstrapLog(
542
+ "ignoring bootstrap failure with active bootstrap connection",
543
+ {
544
+ error: err?.message ?? String(err),
545
+ bootstrapPeerIds: [...bootstrapPeerIds],
546
+ },
547
+ );
548
+ setConnectionState("connected");
549
+ return;
449
550
  }
450
- setConnectionState("connected");
451
- } catch (err: any) {
452
551
  console.error("Failed to bootstrap:", err);
453
552
  setConnectionState("failed");
454
553
  }