nostr-double-ratchet 0.0.28 → 0.0.29

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/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  * Invites for securely exchanging session keys
5
5
  * Breaking changes are likely
6
6
  * Stable version on [NPM](https://www.npmjs.com/package/nostr-double-ratchet)
7
- * check out [tests](./tests/) for usage
7
+ * check out [tests](https://github.com/mmalmi/nostr-double-ratchet/tree/master/tests) for usage
8
8
  * [Documentation](https://nostr-double-ratchet.iris.to/)
9
9
  * [Source code](https://github.com/mmalmi/nostr-double-ratchet)
10
10
 
package/dist/Invite.d.ts CHANGED
@@ -16,11 +16,11 @@ export declare class Invite {
16
16
  sharedSecret: string;
17
17
  inviter: string;
18
18
  inviterEphemeralPrivateKey?: Uint8Array | undefined;
19
- label?: string | undefined;
19
+ deviceId?: string | undefined;
20
20
  maxUses?: number | undefined;
21
21
  usedBy: string[];
22
- constructor(inviterEphemeralPublicKey: string, sharedSecret: string, inviter: string, inviterEphemeralPrivateKey?: Uint8Array | undefined, label?: string | undefined, maxUses?: number | undefined, usedBy?: string[]);
23
- static createNew(inviter: string, label?: string, maxUses?: number): Invite;
22
+ constructor(inviterEphemeralPublicKey: string, sharedSecret: string, inviter: string, inviterEphemeralPrivateKey?: Uint8Array | undefined, deviceId?: string | undefined, maxUses?: number | undefined, usedBy?: string[]);
23
+ static createNew(inviter: string, deviceId?: string, maxUses?: number): Invite;
24
24
  static fromUrl(url: string): Invite;
25
25
  static deserialize(json: string): Invite;
26
26
  static fromEvent(event: VerifiedEvent): Invite;
@@ -33,12 +33,13 @@ export declare class Invite {
33
33
  * Invite parameters are in the URL's hash so they are not sent to the server.
34
34
  */
35
35
  getUrl(root?: string): string;
36
- getEvent(deviceName: string): UnsignedEvent;
36
+ getEvent(): UnsignedEvent;
37
37
  /**
38
38
  * Called by the invitee. Accepts the invite and creates a new session with the inviter.
39
39
  *
40
- * @param inviteeSecretKey - The invitee's secret key or a signing function
41
40
  * @param nostrSubscribe - A function to subscribe to Nostr events
41
+ * @param inviteePublicKey - The invitee's public key
42
+ * @param encryptor - The invitee's secret key or a signing/encrypt function
42
43
  * @returns An object containing the new session and an event to be published
43
44
  *
44
45
  * 1. Inner event: No signature, content encrypted with DH(inviter, invitee).
@@ -1 +1 @@
1
- {"version":3,"file":"Invite.d.ts","sourceRoot":"","sources":["../src/Invite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyD,aAAa,EAAE,aAAa,EAAuB,MAAM,aAAa,CAAC;AACvI,OAAO,EAAqB,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAwB,MAAM,SAAS,CAAC;AAEjI,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAQvC;;;;;;;;;GASG;AACH,qBAAa,MAAM;IAEJ,yBAAyB,EAAE,MAAM;IACjC,YAAY,EAAE,MAAM;IACpB,OAAO,EAAE,MAAM;IACf,0BAA0B,CAAC,EAAE,UAAU;IACvC,KAAK,CAAC,EAAE,MAAM;IACd,OAAO,CAAC,EAAE,MAAM;IAChB,MAAM,EAAE,MAAM,EAAE;gBANhB,yBAAyB,EAAE,MAAM,EACjC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,0BAA0B,CAAC,EAAE,UAAU,YAAA,EACvC,KAAK,CAAC,EAAE,MAAM,YAAA,EACd,OAAO,CAAC,EAAE,MAAM,YAAA,EAChB,MAAM,GAAE,MAAM,EAAO;IAIhC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM;IAiB3E,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IA2BnC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAaxC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM;IA4B9C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,WAAW;IAsB1G;;OAEG;IACH,SAAS,IAAI,MAAM;IAYnB;;OAEG;IACH,MAAM,CAAC,IAAI,SAAoB;IAW/B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa;IAkB3C;;;;;;;;;;;;;;OAcG;IACG,MAAM,CACR,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,UAAU,GAAG,eAAe,GACxC,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,aAAa,CAAA;KAAE,CAAC;IAsCtD,MAAM,CAAC,SAAS,EAAE,UAAU,GAAG,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,WAAW;CA0C3J"}
1
+ {"version":3,"file":"Invite.d.ts","sourceRoot":"","sources":["../src/Invite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyD,aAAa,EAAE,aAAa,EAAuB,MAAM,aAAa,CAAC;AACvI,OAAO,EAAqB,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAwB,MAAM,SAAS,CAAC;AAEjI,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAQvC;;;;;;;;;GASG;AACH,qBAAa,MAAM;IAEJ,yBAAyB,EAAE,MAAM;IACjC,YAAY,EAAE,MAAM;IACpB,OAAO,EAAE,MAAM;IACf,0BAA0B,CAAC,EAAE,UAAU;IACvC,QAAQ,CAAC,EAAE,MAAM;IACjB,OAAO,CAAC,EAAE,MAAM;IAChB,MAAM,EAAE,MAAM,EAAE;gBANhB,yBAAyB,EAAE,MAAM,EACjC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,0BAA0B,CAAC,EAAE,UAAU,YAAA,EACvC,QAAQ,CAAC,EAAE,MAAM,YAAA,EACjB,OAAO,CAAC,EAAE,MAAM,YAAA,EAChB,MAAM,GAAE,MAAM,EAAO;IAIhC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM;IAiB9E,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IA2BnC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAaxC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM;IAkC9C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,WAAW;IAoB1G;;OAEG;IACH,SAAS,IAAI,MAAM;IAYnB;;OAEG;IACH,MAAM,CAAC,IAAI,SAAoB;IAW/B,QAAQ,IAAI,aAAa;IAkBzB;;;;;;;;;;;;;;;OAeG;IACG,MAAM,CACR,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,UAAU,GAAG,eAAe,GACxC,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,aAAa,CAAA;KAAE,CAAC;IAsCtD,MAAM,CAAC,SAAS,EAAE,UAAU,GAAG,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,WAAW;CA0C3J"}
package/dist/Session.d.ts CHANGED
@@ -18,9 +18,9 @@ export declare class Session {
18
18
  constructor(nostrSubscribe: NostrSubscribe, state: SessionState);
19
19
  /**
20
20
  * Initializes a new secure communication session
21
- * @param nostrSubscribe Function to subscribe to Nostr events. Make sure it deduplicates events (doesnt return the same event twice), otherwise you'll see decryption errors!
22
- * @param theirNextNostrPublicKey The public key of the other party
23
- * @param ourCurrentPrivateKey Our current private key for Nostr
21
+ * @param nostrSubscribe Function to subscribe to Nostr events. Make sure it deduplicates events (doesn't return the same event twice), otherwise you'll see decryption errors!
22
+ * @param theirEphemeralNostrPublicKey The ephemeral public key of the other party for the initial handshake
23
+ * @param ourEphemeralNostrPrivateKey Our ephemeral private key for the initial handshake
24
24
  * @param isInitiator Whether we are initiating the conversation (true) or responding (false)
25
25
  * @param sharedSecret Initial shared secret for securing the first message chain
26
26
  * @param name Optional name for the session (for debugging)
@@ -1,23 +1,38 @@
1
1
  import { NostrPublish, NostrSubscribe, Rumor } from "./types";
2
2
  import { Invite } from "./Invite";
3
+ import { StorageAdapter } from "./StorageAdapter";
3
4
  export default class SessionManager {
4
5
  private userRecords;
5
6
  private nostrSubscribe;
6
7
  private nostrPublish;
7
8
  private ourIdentityKey;
8
9
  private inviteUnsubscribes;
9
- private ownDeviceInvites;
10
- constructor(ourIdentityKey: Uint8Array, nostrSubscribe: NostrSubscribe, nostrPublish: NostrPublish);
10
+ private deviceId;
11
+ private invite?;
12
+ private storage;
13
+ constructor(ourIdentityKey: Uint8Array, deviceId: string, nostrSubscribe: NostrSubscribe, nostrPublish: NostrPublish, storage?: StorageAdapter);
14
+ private _initialised;
15
+ /**
16
+ * Perform asynchronous initialisation steps: create (or load) our invite,
17
+ * publish it, hydrate sessions from storage and subscribe to new invites.
18
+ * Can be awaited by callers that need deterministic readiness.
19
+ */
20
+ init(): Promise<void>;
21
+ private loadSessions;
22
+ private saveSession;
23
+ getDeviceId(): string;
24
+ getInvite(): Invite;
11
25
  sendText(recipientIdentityKey: string, text: string): Promise<import("nostr-tools").VerifiedEvent[]>;
12
26
  sendEvent(recipientIdentityKey: string, event: Partial<Rumor>): Promise<import("nostr-tools").VerifiedEvent[]>;
13
27
  listenToUser(userPubkey: string): void;
14
28
  stopListeningToUser(userPubkey: string): void;
15
29
  private internalSubscriptions;
16
- onEvent(callback: (_event: Rumor) => void): () => void;
30
+ onEvent(callback: (event: Rumor) => void): () => void;
17
31
  close(): void;
18
- createOwnDeviceInvite(deviceName: string, label?: string, maxUses?: number): Invite;
19
- removeOwnDevice(deviceName: string): void;
20
- getOwnDeviceInvites(): Map<string, Invite | null>;
21
- getActiveOwnDeviceInvites(): Map<string, Invite>;
32
+ /**
33
+ * Accept an invite as our own device, persist the session, and publish the acceptance event.
34
+ * Used for multi-device flows where a user adds a new device.
35
+ */
36
+ acceptOwnInvite(invite: Invite): Promise<void>;
22
37
  }
23
38
  //# sourceMappingURL=SessionManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../src/SessionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAE,cAAc,EAAE,KAAK,EAAe,MAAM,SAAS,CAAA;AAE7F,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAGjC,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,OAAO,CAAC,WAAW,CAAqC;IACxD,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,cAAc,CAAY;IAClC,OAAO,CAAC,kBAAkB,CAAsC;IAChE,OAAO,CAAC,gBAAgB,CAAwC;gBAEpD,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY;IAO5F,QAAQ,CAAC,oBAAoB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAQnD,SAAS,CAAC,oBAAoB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;IA8BnE,YAAY,CAAC,UAAU,EAAE,MAAM;IAmC/B,mBAAmB,CAAC,UAAU,EAAE,MAAM;IAStC,OAAO,CAAC,qBAAqB,CAA0C;IAEvE,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,KAAK,IAAI;IAkBzC,KAAK;IAkBL,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM;IAOnF,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIzC,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAIjD,yBAAyB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;CASnD"}
1
+ {"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../src/SessionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAE,cAAc,EAAE,KAAK,EAAe,MAAM,SAAS,CAAA;AAE7F,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,OAAO,EAAE,cAAc,EAA0B,MAAM,kBAAkB,CAAA;AAIzE,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,OAAO,CAAC,WAAW,CAAqC;IACxD,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,cAAc,CAAY;IAClC,OAAO,CAAC,kBAAkB,CAAsC;IAChE,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,MAAM,CAAC,CAAQ;IACvB,OAAO,CAAC,OAAO,CAAgB;gBAG3B,cAAc,EAAE,UAAU,EAC1B,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,YAAY,EAC1B,OAAO,GAAE,cAA6C;IAc1D,OAAO,CAAC,YAAY,CAAQ;IAE5B;;;;OAIG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YA2FpB,YAAY;YAiCZ,WAAW;IAOzB,WAAW,IAAI,MAAM;IAIrB,SAAS,IAAI,MAAM;IAOb,QAAQ,CAAC,oBAAoB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAQnD,SAAS,CAAC,oBAAoB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;IA+BnE,YAAY,CAAC,UAAU,EAAE,MAAM;IAoC/B,mBAAmB,CAAC,UAAU,EAAE,MAAM;IAStC,OAAO,CAAC,qBAAqB,CAAyC;IAEtE,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI;IAkBxC,KAAK;IAiBL;;;OAGG;IACU,eAAe,CAAC,MAAM,EAAE,MAAM;CAgB9C"}
@@ -0,0 +1,18 @@
1
+ export interface StorageAdapter {
2
+ /** Retrieve a value by key. */
3
+ get<T = unknown>(key: string): Promise<T | undefined>;
4
+ /** Store a value by key. */
5
+ put<T = unknown>(key: string, value: T): Promise<void>;
6
+ /** Delete a stored value by key. */
7
+ del(key: string): Promise<void>;
8
+ /** List all keys that start with the given prefix. */
9
+ list(prefix?: string): Promise<string[]>;
10
+ }
11
+ export declare class InMemoryStorageAdapter implements StorageAdapter {
12
+ private store;
13
+ get<T = unknown>(key: string): Promise<T | undefined>;
14
+ put<T = unknown>(key: string, value: T): Promise<void>;
15
+ del(key: string): Promise<void>;
16
+ list(prefix?: string): Promise<string[]>;
17
+ }
18
+ //# sourceMappingURL=StorageAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StorageAdapter.d.ts","sourceRoot":"","sources":["../src/StorageAdapter.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,cAAc;IAC7B,+BAA+B;IAC/B,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;IACrD,4BAA4B;IAC5B,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,oCAAoC;IACpC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B,sDAAsD;IACtD,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;CACzC;AAED,qBAAa,sBAAuB,YAAW,cAAc;IAC3D,OAAO,CAAC,KAAK,CAA6B;IAEpC,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAIrD,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/B,IAAI,CAAC,MAAM,SAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAO3C"}
@@ -10,15 +10,6 @@ export declare class UserRecord {
10
10
  private deviceRecords;
11
11
  private isStale;
12
12
  private staleTimestamp?;
13
- /**
14
- * Temporary store for sessions when the corresponding deviceId is unknown.
15
- *
16
- * SessionManager currently operates at a per-user granularity (it is not
17
- * yet aware of individual devices). Until full Sesame device handling is
18
- * implemented we keep sessions in this simple list so that
19
- * SessionManager.getActiveSessions / getAllSessions work as expected.
20
- */
21
- private extraSessions;
22
13
  constructor(_userId: string, _nostrSubscribe: NostrSubscribe);
23
14
  /**
24
15
  * Adds or updates a device record for this user
@@ -56,12 +47,6 @@ export declare class UserRecord {
56
47
  * Cleanup when destroying the user record
57
48
  */
58
49
  close(): void;
59
- /**
60
- * Add a session without associating it with a specific device.
61
- * This is mainly used by SessionManager which does not yet keep track of
62
- * device identifiers. The session will be considered active.
63
- */
64
- addSession(session: Session): void;
65
50
  /**
66
51
  * Return all sessions that are currently considered *active*.
67
52
  * For now this means any session in a non-stale device record as well as
@@ -74,5 +59,11 @@ export declare class UserRecord {
74
59
  * listeners to existing sessions.
75
60
  */
76
61
  getAllSessions(): Session[];
62
+ /**
63
+ * Unified helper that either associates the session with a device record
64
+ * (if deviceId provided **and** the record exists) or falls back to the
65
+ * legacy extraSessions list.
66
+ */
67
+ upsertSession(deviceId: string | undefined, session: Session): void;
77
68
  }
78
69
  //# sourceMappingURL=UserRecord.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserRecord.d.ts","sourceRoot":"","sources":["../src/UserRecord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAUzC;;;GAGG;AACH,qBAAa,UAAU;IAeZ,OAAO,EAAE,MAAM;IACtB,OAAO,CAAC,eAAe;IAfzB,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa,CAAiB;gBAG7B,OAAO,EAAE,MAAM,EACd,eAAe,EAAE,cAAc;IAIzC;;OAEG;IACI,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAanE;;OAEG;IACI,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAe9D;;OAEG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAuBhE;;OAEG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQ9C;;OAEG;IACI,aAAa,IAAI,IAAI;IAK5B;;OAEG;IACI,gBAAgB,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAQnD;;OAEG;IACI,aAAa,CAClB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,UAAU,EACxB,oBAAoB,EAAE,UAAU,EAChC,WAAW,EAAE,OAAO,EACpB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO;IAmBV;;OAEG;IACI,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAyBlD;;OAEG;IACI,KAAK,IAAI,IAAI;IAYpB;;;;OAIG;IACI,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIzC;;;;OAIG;IACI,iBAAiB,IAAI,OAAO,EAAE;IAYrC;;;;OAIG;IACI,cAAc,IAAI,OAAO,EAAE;CAYnC"}
1
+ {"version":3,"file":"UserRecord.d.ts","sourceRoot":"","sources":["../src/UserRecord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAUzC;;;GAGG;AACH,qBAAa,UAAU;IAMZ,OAAO,EAAE,MAAM;IACtB,OAAO,CAAC,eAAe;IANzB,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,cAAc,CAAC,CAAS;gBAGvB,OAAO,EAAE,MAAM,EACd,eAAe,EAAE,cAAc;IAIzC;;OAEG;IACI,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAanE;;OAEG;IACI,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAI9D;;OAEG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAuBhE;;OAEG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQ9C;;OAEG;IACI,aAAa,IAAI,IAAI;IAK5B;;OAEG;IACI,gBAAgB,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAQnD;;OAEG;IACI,aAAa,CAClB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,UAAU,EACxB,oBAAoB,EAAE,UAAU,EAChC,WAAW,EAAE,OAAO,EACpB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO;IAmBV;;OAEG;IACI,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAyBlD;;OAEG;IACI,KAAK,IAAI,IAAI;IAYpB;;;;OAIG;IACI,iBAAiB,IAAI,OAAO,EAAE;IAYrC;;;;OAIG;IACI,cAAc,IAAI,OAAO,EAAE;IAalC;;;;OAIG;IACI,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO;CAsBpE"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
- export * from "./Session.ts";
1
+ export * from "./Session";
2
2
  export * from "./Invite";
3
3
  export * from "./types";
4
4
  export * from "./utils";
5
+ export * from "./SessionManager";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,kBAAkB,CAAA"}