@interncom/diplomatic 0.1.0 → 0.1.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.
package/dist/client.d.ts CHANGED
@@ -2,9 +2,9 @@ import DiplomaticClientAPI from "./shared/client";
2
2
  import { IClock } from "./shared/clock";
3
3
  import { Status } from "./shared/consts";
4
4
  import { EncodedMessage } from "./shared/message";
5
- import { EntityID, HostHandle, ICrypto, IHostConnectionInfo, IInsertParams, IMessageHead, ITransport, IUpsertParams, MasterSeed } from "./shared/types";
5
+ import { EntityID, HostHandle, ICrypto, IHostConnectionInfo, IInsertParams, IMessageHead, IStateManager, ITransport, IUpsertParams, MasterSeed } from "./shared/types";
6
6
  import { ValStat } from "./shared/valstat";
7
- import { IClient, IDiplomaticClientState, IDiplomaticClientXferState, IHostRow, IStateEmitter, IStateManager, IStore } from "./types";
7
+ import { IClient, IDiplomaticClientState, IDiplomaticClientXferState, IStateEmitter, IStore } from "./types";
8
8
  export declare class SyncClient<Handle extends HostHandle> implements IClient<Handle> {
9
9
  private clock;
10
10
  private state;
@@ -16,7 +16,7 @@ export declare class SyncClient<Handle extends HostHandle> implements IClient<Ha
16
16
  private currentSync;
17
17
  clientState: IStateEmitter<IDiplomaticClientState>;
18
18
  xferState: IStateEmitter<IDiplomaticClientXferState>;
19
- constructor(clock: IClock, state: IStateManager, store: IStore<Handle>, transport: (host: IHostRow<Handle>) => ITransport, crypto?: ICrypto, forceSkewHandlingByDefault?: boolean);
19
+ constructor(clock: IClock, state: IStateManager, store: IStore<Handle>, transport: (host: IHostConnectionInfo<Handle>) => ITransport, crypto?: ICrypto, forceSkewHandlingByDefault?: boolean);
20
20
  private readonly SYNC_DEBOUNCE_DELAY_MS;
21
21
  private syncTimeout;
22
22
  setSeed(seed: MasterSeed): Promise<void>;
@@ -37,8 +37,9 @@ export declare class SyncClient<Handle extends HostHandle> implements IClient<Ha
37
37
  }) => Promise<Status>;
38
38
  private scheduleSync;
39
39
  export(filename: string): Promise<Status.Success | import("./shared/valstat").StatusNOK>;
40
- link(host: IHostConnectionInfo<Handle>): Promise<void>;
40
+ link(host: IHostConnectionInfo<Handle>, connect?: boolean): Promise<void>;
41
41
  unlink(label: string): Promise<void>;
42
- connect(listen?: boolean): Promise<void>;
42
+ private connectToHost;
43
+ connect(listen?: boolean, sync?: boolean): Promise<void>;
43
44
  disconnect: () => Promise<void>;
44
45
  }
@@ -15,9 +15,15 @@ export interface IDateRange {
15
15
  }
16
16
  export type EntitiesQuery = {
17
17
  type: string;
18
- gid?: GroupID;
19
- pid?: EntityID;
20
- updatedBetween?: IDateRange;
18
+ } | {
19
+ type: string;
20
+ gid: GroupID;
21
+ } | {
22
+ type: string;
23
+ pid: EntityID;
24
+ } | {
25
+ type: string;
26
+ updatedBetween: IDateRange;
21
27
  };
22
28
  export interface IEntDB {
23
29
  apply: (ops: IOp[]) => Promise<{
@@ -26,7 +32,7 @@ export interface IEntDB {
26
32
  }>;
27
33
  clear: () => Promise<Status>;
28
34
  getEnt<T>(eid: EntityID): Promise<ValStat<IEntity<T> | undefined>>;
29
- getEntities<T>({ type, gid, pid, updatedBetween }: EntitiesQuery): Promise<ValStat<IEntity<T>[]>>;
35
+ getEntities<T>(query: EntitiesQuery): Promise<ValStat<IEntity<T>[]>>;
30
36
  countEntities({ type }: {
31
37
  type: string;
32
38
  }): Promise<ValStat<number>>;
@@ -25,3 +25,4 @@ export declare class EntIDB implements IEntDB {
25
25
  type: string;
26
26
  }): Promise<ValStat<number>>;
27
27
  }
28
+ export declare function openEntIDB(): Promise<EntIDB>;
package/dist/events.d.ts CHANGED
@@ -1,11 +1,5 @@
1
1
  import { IStateEmitter } from "./types";
2
- type TypedListener<T> = (data: T) => void;
3
- export declare class TypedEventEmitter<T> {
4
- private listeners;
5
- addEventListener(eventType: string, listener: TypedListener<T>): () => void;
6
- removeEventListener(eventType: string, listener: TypedListener<T>): void;
7
- emit(eventType: string, data: T): void;
8
- }
2
+ import { TypedEventEmitter } from "./shared/events";
9
3
  export declare class StateEmitter<T> implements IStateEmitter<T> {
10
4
  private getter;
11
5
  static eventName: string;
@@ -15,4 +9,3 @@ export declare class StateEmitter<T> implements IStateEmitter<T> {
15
9
  emit(): Promise<void>;
16
10
  listen(func: (state: T) => void): () => void;
17
11
  }
18
- export {};
package/dist/index.d.ts CHANGED
@@ -1,24 +1,26 @@
1
1
  import { SyncClient } from "./client";
2
2
  import libsodiumCrypto from "./crypto";
3
3
  import { EntitiesQuery, entStateManager, IEntDB, IEntity, nullEntDB } from "./entdb/entdb";
4
- import { EntIDB } from "./entdb/idb";
4
+ import { EntIDB, openEntIDB } from "./entdb/idb";
5
5
  import { EntDBMemory } from "./entdb/memory";
6
- import { useClientState, useClientXferState, useSyncOnResume } from "./react/useClient";
6
+ import { useClient, useClientState, useClientXferState, useSyncOnResume } from "./react/useClient";
7
7
  import useStateWatcher, { useStateWatcherSuspense } from "./react/useStateWatcher";
8
8
  import { btoh, htob } from "./shared/binary";
9
9
  import { Clock } from "./shared/clock";
10
- import { genSingletonEID } from "./shared/codecs/eid";
10
+ import { Decoder, Encoder } from "./shared/codec";
11
+ import { eidCodec, genSingletonEID } from "./shared/codecs/eid";
11
12
  import { Status } from "./shared/consts";
12
13
  import { HTTPTransport } from "./shared/http";
13
- import { EntityID, GroupID, type IOp, MasterSeed } from "./shared/types";
14
+ import { TypedEventEmitter } from "./shared/events";
15
+ import { EntityID, GroupID, IMessage, IMutateOp, type IOp, IStateManager, MasterSeed } from "./shared/types";
14
16
  import { nullStateManager, StateManager } from "./state";
15
17
  import { IDBStore, openIDBStore } from "./stores/idb/store";
16
18
  import { MemoryStore } from "./stores/memory/store";
17
- import type { IDiplomaticClientState, IHostRow, IStateManager, IStore } from "./types";
18
- export declare const hostHTTPTransport: (host: IHostRow<URL>) => HTTPTransport;
19
- export declare function genWebClient(stateMgr: StateManager, url: URL): Promise<{
19
+ import { SingletonStateManager } from "./shared/singleton";
20
+ import type { Applier, IDiplomaticClientState, IStore, IStoredMessage, IStoredMessageData } from "./types";
21
+ export declare function genWebClient(stateMgr: IStateManager, url: URL): Promise<{
20
22
  client: SyncClient<URL>;
21
23
  setSeed: (seedHex: string) => Promise<void>;
22
24
  }>;
23
- export { btoh, Clock, EntDBMemory, EntIDB, EntitiesQuery, EntityID, entStateManager, genSingletonEID, GroupID, htob, HTTPTransport, IDBStore, IEntDB, IEntity, IStateManager, IStore, libsodiumCrypto, MasterSeed, MemoryStore, nullEntDB, nullStateManager, openIDBStore, StateManager, Status, SyncClient, useClientState, useClientXferState, useStateWatcher, useStateWatcherSuspense, useSyncOnResume, };
24
- export type { IDiplomaticClientState, IOp };
25
+ export { btoh, Clock, Decoder, eidCodec, Encoder, EntDBMemory, EntIDB, EntitiesQuery, EntityID, entStateManager, genSingletonEID, GroupID, htob, HTTPTransport, IDBStore, IEntDB, IEntity, IStore, libsodiumCrypto, 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, IStoredMessage, IStoredMessageData, };