@interncom/diplomatic 0.2.0 → 0.2.2

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.
@@ -18,5 +18,10 @@ export default class DiplomaticClientAPI<Handle extends HostHandle> {
18
18
  peek: (lastSeq: number) => Promise<ValStat<import("./codecs/peekItem.ts").IBagPeekItem[]>>;
19
19
  push: (bags: IBag[]) => Promise<ValStat<import("./codecs/pushItem.ts").IBagPushItem[]>>;
20
20
  pull: (seqs: number[]) => Promise<ValStat<import("./codecs/pullItem.ts").IBagPullItem[]>>;
21
- listen: (recv: PushReceiver) => Promise<Status>;
21
+ listen: (recv: PushReceiver, onDisconnect?: () => void, onConnect?: () => void) => Promise<Status>;
22
+ /** Returns whether this client has an active connection to its host.
23
+ * If a push listener is active, reports the listener's connected state.
24
+ * Otherwise (listen=false), reports true if registered.
25
+ */
26
+ isConnected(): boolean;
22
27
  }
@@ -6,6 +6,6 @@ export declare class WebsocketListener implements IPushListener {
6
6
  private websocket?;
7
7
  constructor(url: URL);
8
8
  connected(): boolean;
9
- connect(authTS: IAuthTimestamp, recv: PushReceiver, onDisconnect: () => void): Promise<Status>;
9
+ connect(authTS: IAuthTimestamp, recv: PushReceiver, onDisconnect?: () => void, onConnect?: () => void): Promise<Status>;
10
10
  disconnect(): void;
11
11
  }
@@ -115,7 +115,7 @@ export interface IPushNotifier {
115
115
  push(pubKey: PublicKey, data: Uint8Array): void;
116
116
  }
117
117
  export interface IPushListener {
118
- connect(authTS: IAuthTimestamp, recv: PushReceiver, onDisconnect: () => void): Promise<Status>;
118
+ connect(authTS: IAuthTimestamp, recv: PushReceiver, onDisconnect?: () => void, onConnect?: () => void): Promise<Status>;
119
119
  connected(): boolean;
120
120
  disconnect(): void;
121
121
  }
@@ -20,7 +20,8 @@ export declare class CLIClient<Handle extends HostHandle> {
20
20
  pull(seqs: number[]): Promise<ValStat<IBagPullItem[]>>;
21
21
  open(peekItem: IBagPeekItem, pullItem: IBagPullItem): Promise<ValStat<IOpenBag>>;
22
22
  upsertSingletonSync(type: string, body: Uint8Array): Promise<Status>;
23
- listen(onNotification: (bytes: Uint8Array) => Promise<Status>): Promise<Status>;
23
+ listen(onNotification: (bytes: Uint8Array) => Promise<Status>, onDisconnect?: () => void, onConnect?: () => void): Promise<Status>;
24
+ isConnected(): boolean;
24
25
  }
25
26
  export declare function initCLI<Handle extends URL>({ seed, host, transport }: {
26
27
  seed: MasterSeed;
@@ -10,9 +10,9 @@ import { Clock } from "./shared/clock";
10
10
  import { Decoder, Encoder } from "./shared/codec";
11
11
  import { eidCodec, genSingletonEID } from "./shared/codecs/eid";
12
12
  import { Status } from "./shared/consts";
13
- import { HTTPTransport } from "./shared/http";
13
+ import { hostHTTPTransport, HTTPTransport } from "./shared/http";
14
14
  import { TypedEventEmitter } from "./shared/events";
15
- import { EntityID, GroupID, IMessage, IMutateOp, type IOp, IStateManager, MasterSeed } from "./shared/types";
15
+ import { EntityID, GroupID, HostHandle, IHostConnectionInfo, IMessage, IMutateOp, type IOp, IStateManager, ITransport, MasterSeed, ICrypto } from "./shared/types";
16
16
  import { nullStateManager, StateManager } from "./state";
17
17
  import { IDBStore, openIDBStore } from "./stores/idb/store";
18
18
  import { MemoryStore } from "./stores/memory/store";
@@ -22,5 +22,5 @@ export declare function genWebClient(stateMgr: IStateManager, url: URL): Promise
22
22
  client: SyncClient<URL>;
23
23
  setSeed: (seedHex: string) => Promise<void>;
24
24
  }>;
25
- export { btoh, Clock, crypto, Decoder, eidCodec, Encoder, EntDBMemory, EntIDB, EntitiesQuery, EntityID, entStateManager, genSingletonEID, GroupID, htob, HTTPTransport, IDBStore, IEntDB, IEntity, IStore, MasterSeed, MemoryStore, nullEntDB, nullStateManager, openEntIDB, openIDBStore, SingletonStateManager, StateManager, Status, SyncClient, TypedEventEmitter, useClient, useClientState, useClientXferState, useStateWatcher, useStateWatcherSuspense, useSyncOnResume, };
26
- export type { Applier, IDiplomaticClientState, IMessage, IMutateOp, IOp, IStateManager, IStoredMessage, IStoredMessageData, };
25
+ export { btoh, Clock, crypto, Decoder, eidCodec, Encoder, EntDBMemory, EntIDB, EntitiesQuery, EntityID, entStateManager, genSingletonEID, GroupID, hostHTTPTransport, htob, HTTPTransport, IDBStore, IEntDB, IEntity, IStore, MasterSeed, MemoryStore, nullEntDB, nullStateManager, openEntIDB, openIDBStore, SingletonStateManager, StateManager, Status, SyncClient, TypedEventEmitter, useClient, useClientState, useClientXferState, useStateWatcher, useStateWatcherSuspense, useSyncOnResume, };
26
+ export type { Applier, HostHandle, ICrypto, IDiplomaticClientState, IHostConnectionInfo, IMessage, IMutateOp, IOp, IStateManager, IStoredMessage, IStoredMessageData, ITransport, };