@vex-chat/libvex 1.0.1 → 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.
- package/dist/Client.d.ts +25 -15
- package/dist/Client.js +210 -159
- package/dist/Client.js.map +1 -1
- package/dist/IStorage.d.ts +1 -1
- package/dist/IStorage.js +1 -1
- package/dist/IStorage.js.map +1 -1
- package/dist/__tests__/harness/memory-storage.d.ts +45 -0
- package/dist/__tests__/harness/memory-storage.js +181 -0
- package/dist/__tests__/harness/memory-storage.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/keystore/memory.d.ts +11 -0
- package/dist/keystore/memory.js +18 -0
- package/dist/keystore/memory.js.map +1 -0
- package/dist/keystore/node.d.ts +10 -0
- package/dist/keystore/node.js +64 -0
- package/dist/keystore/node.js.map +1 -0
- package/dist/keystore/types.d.ts +4 -0
- package/dist/keystore/types.js +2 -0
- package/dist/keystore/types.js.map +1 -0
- package/dist/preset/expo.d.ts +2 -0
- package/dist/preset/expo.js +39 -0
- package/dist/preset/expo.js.map +1 -0
- package/dist/preset/node.d.ts +12 -0
- package/dist/preset/node.js +17 -0
- package/dist/preset/node.js.map +1 -0
- package/dist/preset/tauri.d.ts +2 -0
- package/dist/preset/tauri.js +36 -0
- package/dist/preset/tauri.js.map +1 -0
- package/dist/preset/test.d.ts +10 -0
- package/dist/preset/test.js +29 -0
- package/dist/preset/test.js.map +1 -0
- package/dist/preset/types.d.ts +14 -0
- package/dist/preset/types.js +2 -0
- package/dist/preset/types.js.map +1 -0
- package/dist/storage/expo.d.ts +3 -0
- package/dist/storage/expo.js +18 -0
- package/dist/storage/expo.js.map +1 -0
- package/dist/storage/node.d.ts +3 -0
- package/dist/storage/node.js +24 -0
- package/dist/storage/node.js.map +1 -0
- package/dist/storage/schema.d.ts +76 -0
- package/dist/storage/schema.js +2 -0
- package/dist/storage/schema.js.map +1 -0
- package/dist/{Storage.d.ts → storage/sqlite.d.ts} +19 -21
- package/dist/storage/sqlite.js +488 -0
- package/dist/storage/sqlite.js.map +1 -0
- package/dist/storage/tauri.d.ts +3 -0
- package/dist/storage/tauri.js +21 -0
- package/dist/storage/tauri.js.map +1 -0
- package/dist/transport/browser.d.ts +17 -0
- package/dist/transport/browser.js +56 -0
- package/dist/transport/browser.js.map +1 -0
- package/dist/transport/types.d.ts +20 -0
- package/dist/transport/types.js +2 -0
- package/dist/transport/types.js.map +1 -0
- package/dist/utils/createLogger.js +1 -8
- package/dist/utils/createLogger.js.map +1 -1
- package/package.json +100 -16
- package/dist/Storage.js +0 -444
- package/dist/Storage.js.map +0 -1
package/dist/Client.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { IChannel, IDevice, IEmoji, IFileResponse, IFileSQL, IInvite, IPermission, IServer, ISessionSQL } from "@vex-chat/types";
|
|
2
2
|
import { AxiosError } from "axios";
|
|
3
|
-
import { EventEmitter } from "
|
|
3
|
+
import { EventEmitter } from "eventemitter3";
|
|
4
|
+
import type { IClientAdapters } from "./transport/types.js";
|
|
4
5
|
import type { IStorage } from "./IStorage.js";
|
|
5
6
|
/**
|
|
6
7
|
* IMessage is a chat message.
|
|
@@ -176,7 +177,7 @@ export interface IMe {
|
|
|
176
177
|
/** Returns metadata for the currently authenticated device. */
|
|
177
178
|
device: () => IDevice;
|
|
178
179
|
/** Uploads and sets a new avatar image for the current user. */
|
|
179
|
-
setAvatar: (avatar:
|
|
180
|
+
setAvatar: (avatar: Uint8Array) => Promise<void>;
|
|
180
181
|
}
|
|
181
182
|
/**
|
|
182
183
|
* @ignore
|
|
@@ -292,7 +293,7 @@ export interface IDevices {
|
|
|
292
293
|
*/
|
|
293
294
|
export interface IFiles {
|
|
294
295
|
/** Uploads and encrypts a file. */
|
|
295
|
-
create: (file:
|
|
296
|
+
create: (file: Uint8Array) => Promise<[IFileSQL, string]>;
|
|
296
297
|
/** Downloads and decrypts a file using a file ID and key. */
|
|
297
298
|
retrieve: (fileID: string, key: string) => Promise<IFileResponse | null>;
|
|
298
299
|
}
|
|
@@ -301,7 +302,7 @@ export interface IFiles {
|
|
|
301
302
|
*/
|
|
302
303
|
export interface IEmojis {
|
|
303
304
|
/** Uploads a custom emoji to a server. */
|
|
304
|
-
create: (emoji:
|
|
305
|
+
create: (emoji: Uint8Array, name: string, serverID: string) => Promise<IEmoji | null>;
|
|
305
306
|
/** Lists emojis available on a server. */
|
|
306
307
|
retrieveList: (serverID: string) => Promise<IEmoji[]>;
|
|
307
308
|
/** Fetches one emoji's metadata by ID. */
|
|
@@ -340,6 +341,10 @@ export interface IClientOptions {
|
|
|
340
341
|
unsafeHttp?: boolean;
|
|
341
342
|
/** Whether local message history should be persisted by default storage. */
|
|
342
343
|
saveHistory?: boolean;
|
|
344
|
+
/** Platform-specific adapters (WebSocket + Logger). When omitted, defaults to Node.js ws. */
|
|
345
|
+
adapters?: IClientAdapters;
|
|
346
|
+
/** Platform label for device registration (e.g. "ios", "macos", "linux"). */
|
|
347
|
+
deviceName?: string;
|
|
343
348
|
}
|
|
344
349
|
export declare interface Client {
|
|
345
350
|
/**
|
|
@@ -518,17 +523,17 @@ export declare interface Client {
|
|
|
518
523
|
*/
|
|
519
524
|
export declare class Client extends EventEmitter {
|
|
520
525
|
/**
|
|
521
|
-
*
|
|
526
|
+
* Encrypts a secret key with a password.
|
|
522
527
|
*
|
|
523
528
|
* Pass-through utility from `@vex-chat/crypto`.
|
|
524
529
|
*/
|
|
525
|
-
static
|
|
530
|
+
static encryptKeyData: (password: string, keyToSave: string, iterationOverride?: number) => Uint8Array;
|
|
526
531
|
/**
|
|
527
|
-
*
|
|
532
|
+
* Decrypts a secret key from encrypted data produced by encryptKeyData().
|
|
528
533
|
*
|
|
529
534
|
* Pass-through utility from `@vex-chat/crypto`.
|
|
530
535
|
*/
|
|
531
|
-
static
|
|
536
|
+
static decryptKeyData: (keyData: Uint8Array, password: string) => string;
|
|
532
537
|
/**
|
|
533
538
|
* Creates and initializes a client in one step.
|
|
534
539
|
*
|
|
@@ -641,6 +646,7 @@ export declare class Client extends EventEmitter {
|
|
|
641
646
|
private dbPath;
|
|
642
647
|
private conn;
|
|
643
648
|
private host;
|
|
649
|
+
private adapters;
|
|
644
650
|
private firstMailFetch;
|
|
645
651
|
private signKeys;
|
|
646
652
|
private idKeys;
|
|
@@ -653,7 +659,7 @@ export declare class Client extends EventEmitter {
|
|
|
653
659
|
private isAlive;
|
|
654
660
|
private reading;
|
|
655
661
|
private fetchingMail;
|
|
656
|
-
private
|
|
662
|
+
private ax;
|
|
657
663
|
private log;
|
|
658
664
|
private pingInterval;
|
|
659
665
|
private mailInterval?;
|
|
@@ -661,6 +667,7 @@ export declare class Client extends EventEmitter {
|
|
|
661
667
|
private token;
|
|
662
668
|
private forwarded;
|
|
663
669
|
private prefixes;
|
|
670
|
+
private options?;
|
|
664
671
|
private constructor();
|
|
665
672
|
/**
|
|
666
673
|
* Returns the current HTTP API origin with protocol.
|
|
@@ -680,7 +687,7 @@ export declare class Client extends EventEmitter {
|
|
|
680
687
|
*/
|
|
681
688
|
getKeys(): IKeys;
|
|
682
689
|
/**
|
|
683
|
-
* Authenticates with username/password and stores the auth token
|
|
690
|
+
* Authenticates with username/password and stores the Bearer auth token.
|
|
684
691
|
*
|
|
685
692
|
* @param username Account username.
|
|
686
693
|
* @param password Account password.
|
|
@@ -694,9 +701,14 @@ export declare class Client extends EventEmitter {
|
|
|
694
701
|
*/
|
|
695
702
|
login(username: string, password: string): Promise<Error | null>;
|
|
696
703
|
/**
|
|
697
|
-
*
|
|
698
|
-
*
|
|
704
|
+
* Authenticates using the device's Ed25519 signing key.
|
|
705
|
+
* No password needed — proves possession of the private key via
|
|
706
|
+
* challenge-response. Issues a short-lived (1-hour) JWT.
|
|
707
|
+
*
|
|
708
|
+
* Used by auto-login when stored credentials have a deviceKey
|
|
709
|
+
* but no valid session.
|
|
699
710
|
*/
|
|
711
|
+
loginWithDeviceKey(deviceID?: string): Promise<Error | null>;
|
|
700
712
|
/**
|
|
701
713
|
* Returns details about the currently authenticated session.
|
|
702
714
|
*
|
|
@@ -718,7 +730,7 @@ export declare class Client extends EventEmitter {
|
|
|
718
730
|
*/
|
|
719
731
|
logout(): Promise<void>;
|
|
720
732
|
/**
|
|
721
|
-
* Connects your device to the chat. You must have
|
|
733
|
+
* Connects your device to the chat. You must have a valid Bearer token.
|
|
722
734
|
* You can check whoami() to see before calling connect().
|
|
723
735
|
*/
|
|
724
736
|
connect(): Promise<void>;
|
|
@@ -742,8 +754,6 @@ export declare class Client extends EventEmitter {
|
|
|
742
754
|
private retrieveEmojiByID;
|
|
743
755
|
private leaveServer;
|
|
744
756
|
private kickUser;
|
|
745
|
-
private addCookie;
|
|
746
|
-
private getCookies;
|
|
747
757
|
private uploadEmoji;
|
|
748
758
|
private retrieveOrCreateDevice;
|
|
749
759
|
private registerDevice;
|