@peerbit/react 0.0.49 → 0.1.0-369b236

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.
@@ -1,42 +1,82 @@
1
+ import type { PeerId } from "@libp2p/interface";
1
2
  import type { Multiaddr } from "@multiformats/multiaddr";
3
+ import type { CanonicalClient, CanonicalOpenAdapter, CanonicalOpenMode, ConnectServiceWorkerOptions, ConnectWindowOptions } from "@peerbit/canonical-client";
4
+ import type { Identity, PublicSignKey } from "@peerbit/crypto";
2
5
  import { Ed25519Keypair } from "@peerbit/crypto";
3
6
  import type { Indices } from "@peerbit/indexer-interface";
4
- import type { ProgramClient } from "@peerbit/program";
7
+ import type { Address, OpenOptions, Program } from "@peerbit/program";
5
8
  import * as React from "react";
6
9
  import type { JSX } from "react";
7
10
  export declare class ClientBusyError extends Error {
8
11
  constructor(message: string);
9
12
  }
10
13
  export type ConnectionStatus = "disconnected" | "connected" | "connecting" | "failed";
11
- /** Discriminated union for PeerContext */
12
- export type IPeerContext = (ProxyPeerContext | NodePeerContext) & {
13
- error?: Error;
14
+ export type PeerbitLike = {
15
+ peerId: PeerId;
16
+ identity: Identity<PublicSignKey>;
17
+ getMultiaddrs: () => Multiaddr[];
18
+ dial: (address: string | Multiaddr | Multiaddr[]) => Promise<boolean>;
19
+ hangUp: (address: PeerId | PublicSignKey | string | Multiaddr) => Promise<void>;
20
+ start: () => Promise<void>;
21
+ stop: () => Promise<void>;
22
+ bootstrap?: (addresses?: string[] | Multiaddr[]) => Promise<void>;
23
+ open: <S extends Program<any>>(storeOrAddress: S | Address | string, options?: OpenOptions<S>) => Promise<S>;
14
24
  };
15
- export interface ProxyPeerContext {
16
- type: "proxy";
17
- peer: ProgramClient | undefined;
18
- promise: Promise<void> | undefined;
19
- loading: boolean;
20
- status: ConnectionStatus;
21
- persisted: boolean | undefined;
22
- /** Present only in proxy (iframe) mode */
23
- targetOrigin: string;
24
- }
25
- export interface NodePeerContext {
26
- type: "node";
27
- peer: ProgramClient | undefined;
25
+ export type PeerRuntime = "node" | "canonical";
26
+ export type NodePeerProviderConfig = {
27
+ runtime: "node";
28
+ network: "local" | "remote" | NetworkOption;
29
+ waitForConnected?: boolean | "in-flight";
30
+ keypair?: Ed25519Keypair;
31
+ singleton?: boolean;
32
+ indexer?: (directory?: string) => Promise<Indices> | Indices;
33
+ inMemory?: boolean;
34
+ };
35
+ export type CanonicalPeerProviderConfig = {
36
+ runtime: "canonical";
37
+ transport: {
38
+ kind: "service-worker";
39
+ options: ConnectServiceWorkerOptions;
40
+ } | {
41
+ kind: "shared-worker";
42
+ worker: SharedWorker | (() => SharedWorker) | {
43
+ url: string | URL;
44
+ name?: string;
45
+ type?: WorkerOptions["type"];
46
+ };
47
+ } | {
48
+ kind: "window";
49
+ options?: ConnectWindowOptions;
50
+ } | {
51
+ kind: "custom";
52
+ connect: () => Promise<CanonicalClient>;
53
+ };
54
+ open?: {
55
+ adapters?: CanonicalOpenAdapter[];
56
+ mode?: CanonicalOpenMode;
57
+ };
58
+ keepAlive?: false | Parameters<CanonicalClient["startKeepAlive"]>[0];
59
+ };
60
+ export type PeerProviderEnv = {
61
+ inIframe: boolean;
62
+ };
63
+ export type PeerProviderConfig = NodePeerProviderConfig | CanonicalPeerProviderConfig;
64
+ export type PeerProviderConfigSelector = PeerProviderConfig | ((env: PeerProviderEnv) => PeerProviderConfig);
65
+ export type IPeerContext = {
66
+ runtime: PeerRuntime;
67
+ peer: PeerbitLike | undefined;
28
68
  promise: Promise<void> | undefined;
29
69
  loading: boolean;
30
70
  status: ConnectionStatus;
31
- persisted: boolean | undefined;
32
- tabIndex: number;
33
- }
71
+ persisted?: boolean;
72
+ tabIndex?: number;
73
+ error?: Error;
74
+ canonical?: {
75
+ client: CanonicalClient;
76
+ };
77
+ };
34
78
  export declare const PeerContext: React.Context<IPeerContext>;
35
79
  export declare const usePeer: () => IPeerContext;
36
- type IFrameOptions = {
37
- type: "proxy";
38
- targetOrigin: string;
39
- };
40
80
  /**
41
81
  * Network configuration for the node client.
42
82
  *
@@ -51,26 +91,9 @@ export type NetworkOption = {
51
91
  type?: "explicit";
52
92
  bootstrap: (Multiaddr | string)[];
53
93
  };
54
- type NodeOptions = {
55
- type?: "node";
56
- network: "local" | "remote" | NetworkOption;
57
- waitForConnnected?: boolean | "in-flight";
58
- keypair?: Ed25519Keypair;
59
- host?: boolean;
60
- singleton?: boolean;
61
- indexer?: (directory?: string) => Promise<Indices> | Indices;
62
- };
63
- type TopOptions = NodeOptions & {
64
- inMemory?: boolean;
65
- };
66
- type TopAndIframeOptions = {
67
- iframe: IFrameOptions | NodeOptions;
68
- top: TopOptions;
69
- };
70
- type WithChildren = {
94
+ export type PeerProviderProps = {
95
+ config: PeerProviderConfigSelector;
71
96
  children: JSX.Element;
72
97
  };
73
- type PeerOptions = (TopAndIframeOptions | TopOptions) & WithChildren;
74
- export declare const PeerProvider: (options: PeerOptions) => import("react/jsx-runtime").JSX.Element;
75
- export {};
98
+ export declare const PeerProvider: ({ config, children }: PeerProviderProps) => import("react/jsx-runtime").JSX.Element;
76
99
  //# sourceMappingURL=usePeer.d.ts.map
@@ -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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"}