@vex-chat/libvex 5.2.0 → 5.3.1
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/CLA.md +38 -0
- package/LICENSE-COMMERCIAL +10 -0
- package/LICENSING.md +15 -0
- package/README.md +8 -2
- package/dist/Client.d.ts +39 -3
- package/dist/Client.d.ts.map +1 -1
- package/dist/Client.js +961 -480
- package/dist/Client.js.map +1 -1
- package/dist/Storage.d.ts +5 -0
- package/dist/Storage.d.ts.map +1 -1
- package/dist/Storage.js +5 -0
- package/dist/Storage.js.map +1 -1
- package/dist/__tests__/harness/memory-storage.d.ts +7 -2
- package/dist/__tests__/harness/memory-storage.d.ts.map +1 -1
- package/dist/__tests__/harness/memory-storage.js +44 -29
- package/dist/__tests__/harness/memory-storage.js.map +1 -1
- package/dist/codec.d.ts +9 -9
- package/dist/codec.d.ts.map +1 -1
- package/dist/codec.js +17 -19
- package/dist/codec.js.map +1 -1
- package/dist/codecs.d.ts +5 -0
- package/dist/codecs.d.ts.map +1 -1
- package/dist/codecs.js +5 -0
- package/dist/codecs.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/keystore/memory.d.ts +5 -0
- package/dist/keystore/memory.d.ts.map +1 -1
- package/dist/keystore/memory.js +5 -0
- package/dist/keystore/memory.js.map +1 -1
- package/dist/keystore/node.d.ts +5 -0
- package/dist/keystore/node.d.ts.map +1 -1
- package/dist/keystore/node.js +16 -8
- package/dist/keystore/node.js.map +1 -1
- package/dist/preset/common.d.ts +5 -0
- package/dist/preset/common.d.ts.map +1 -1
- package/dist/preset/common.js +5 -0
- package/dist/preset/common.js.map +1 -1
- package/dist/preset/node.d.ts +5 -0
- package/dist/preset/node.d.ts.map +1 -1
- package/dist/preset/node.js +9 -1
- package/dist/preset/node.js.map +1 -1
- package/dist/preset/test.d.ts +5 -0
- package/dist/preset/test.d.ts.map +1 -1
- package/dist/preset/test.js +9 -1
- package/dist/preset/test.js.map +1 -1
- package/dist/storage/node/http-agents.d.ts +5 -0
- package/dist/storage/node/http-agents.d.ts.map +1 -1
- package/dist/storage/node/http-agents.js +5 -0
- package/dist/storage/node/http-agents.js.map +1 -1
- package/dist/storage/node.d.ts +6 -1
- package/dist/storage/node.d.ts.map +1 -1
- package/dist/storage/node.js +7 -4
- package/dist/storage/node.js.map +1 -1
- package/dist/storage/schema.d.ts +5 -0
- package/dist/storage/schema.d.ts.map +1 -1
- package/dist/storage/schema.js +5 -0
- package/dist/storage/schema.js.map +1 -1
- package/dist/storage/sqlite.d.ts +22 -4
- package/dist/storage/sqlite.d.ts.map +1 -1
- package/dist/storage/sqlite.js +172 -98
- package/dist/storage/sqlite.js.map +1 -1
- package/dist/transport/types.d.ts +5 -0
- package/dist/transport/types.d.ts.map +1 -1
- package/dist/transport/types.js +5 -0
- package/dist/transport/types.js.map +1 -1
- package/dist/transport/websocket.d.ts +5 -0
- package/dist/transport/websocket.d.ts.map +1 -1
- package/dist/transport/websocket.js +5 -0
- package/dist/transport/websocket.js.map +1 -1
- package/dist/types/crypto.d.ts +5 -0
- package/dist/types/crypto.d.ts.map +1 -1
- package/dist/types/crypto.js +3 -5
- package/dist/types/crypto.js.map +1 -1
- package/dist/types/identity.d.ts +5 -0
- package/dist/types/identity.d.ts.map +1 -1
- package/dist/types/identity.js +3 -2
- package/dist/types/identity.js.map +1 -1
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -1
- package/dist/utils/capitalize.d.ts +5 -0
- package/dist/utils/capitalize.d.ts.map +1 -1
- package/dist/utils/capitalize.js +5 -0
- package/dist/utils/capitalize.js.map +1 -1
- package/dist/utils/fipsMailExtra.d.ts +30 -0
- package/dist/utils/fipsMailExtra.d.ts.map +1 -0
- package/dist/utils/fipsMailExtra.js +114 -0
- package/dist/utils/fipsMailExtra.js.map +1 -0
- package/dist/utils/formatBytes.d.ts +5 -0
- package/dist/utils/formatBytes.d.ts.map +1 -1
- package/dist/utils/formatBytes.js +5 -0
- package/dist/utils/formatBytes.js.map +1 -1
- package/dist/utils/resolveAtRestAesKey.d.ts +13 -0
- package/dist/utils/resolveAtRestAesKey.d.ts.map +1 -0
- package/dist/utils/resolveAtRestAesKey.js +26 -0
- package/dist/utils/resolveAtRestAesKey.js.map +1 -0
- package/dist/utils/sqlSessionToCrypto.d.ts +5 -0
- package/dist/utils/sqlSessionToCrypto.d.ts.map +1 -1
- package/dist/utils/sqlSessionToCrypto.js +5 -0
- package/dist/utils/sqlSessionToCrypto.js.map +1 -1
- package/dist/utils/uint8uuid.d.ts +5 -0
- package/dist/utils/uint8uuid.d.ts.map +1 -1
- package/dist/utils/uint8uuid.js +5 -0
- package/dist/utils/uint8uuid.js.map +1 -1
- package/package.json +14 -4
- package/src/Client.ts +1239 -619
- package/src/Storage.ts +6 -0
- package/src/__tests__/codec.test.ts +6 -0
- package/src/__tests__/harness/fixtures.ts +6 -0
- package/src/__tests__/harness/memory-storage.ts +72 -52
- package/src/__tests__/harness/platform-transports.ts +6 -0
- package/src/__tests__/harness/poison-node-imports.ts +6 -0
- package/src/__tests__/harness/shared-suite.ts +288 -124
- package/src/__tests__/platform-browser.test.ts +15 -1
- package/src/__tests__/platform-node.test.ts +17 -3
- package/src/codec.ts +21 -8
- package/src/codecs.ts +6 -0
- package/src/index.ts +6 -0
- package/src/keystore/memory.ts +6 -0
- package/src/keystore/node.ts +27 -13
- package/src/preset/common.ts +6 -0
- package/src/preset/node.ts +14 -1
- package/src/preset/test.ts +14 -1
- package/src/storage/node/http-agents.ts +6 -0
- package/src/storage/node.ts +11 -4
- package/src/storage/schema.ts +6 -0
- package/src/storage/sqlite.ts +208 -135
- package/src/transport/types.ts +6 -0
- package/src/transport/websocket.ts +6 -0
- package/src/types/crypto.ts +6 -0
- package/src/types/identity.ts +6 -0
- package/src/types/index.ts +6 -0
- package/src/utils/capitalize.ts +6 -0
- package/src/utils/fipsMailExtra.ts +164 -0
- package/src/utils/formatBytes.ts +6 -0
- package/src/utils/resolveAtRestAesKey.ts +39 -0
- package/src/utils/sqlSessionToCrypto.ts +6 -0
- package/src/utils/uint8uuid.ts +6 -0
package/dist/codec.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-2026 Vex Heavy Industries LLC
|
|
3
|
+
* Licensed under AGPL-3.0. See LICENSE for details.
|
|
4
|
+
* Commercial licenses available at vex.wtf
|
|
5
|
+
*/
|
|
1
6
|
/**
|
|
2
7
|
* Type-safe codec factory for msgpack encode/decode with optional Zod validation.
|
|
3
8
|
*
|
|
@@ -28,17 +33,12 @@ export declare function createCodec<T extends z.ZodType>(schema: T): {
|
|
|
28
33
|
/** Validate against the schema, then encode to msgpack. */
|
|
29
34
|
encodeSafe: (msg: z.core.output<T>) => Uint8Array;
|
|
30
35
|
};
|
|
31
|
-
declare function decode(data: Uint8Array): unknown;
|
|
32
36
|
/**
|
|
33
|
-
*
|
|
34
|
-
* (
|
|
35
|
-
* XMLHttpRequest.send() corruption (axios issue #4068).
|
|
37
|
+
* Raw msgpack encode/decode without schema validation.
|
|
38
|
+
* (Wrappers avoid API Extractor ae-forgotten-export on internal helpers.)
|
|
36
39
|
*/
|
|
37
|
-
declare function encode(value: unknown): Uint8Array;
|
|
38
|
-
/** Raw msgpack encode/decode without schema validation. */
|
|
39
40
|
export declare const msgpack: {
|
|
40
|
-
decode:
|
|
41
|
-
encode:
|
|
41
|
+
decode: (data: Uint8Array) => unknown;
|
|
42
|
+
encode: (value: unknown) => Uint8Array;
|
|
42
43
|
};
|
|
43
|
-
export {};
|
|
44
44
|
//# sourceMappingURL=codec.d.ts.map
|
package/dist/codec.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAMhC;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAGlD,2DAA2D;mBAC5C,UAAU;
|
|
1
|
+
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAMhC;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAGlD,2DAA2D;mBAC5C,UAAU;IAGzB,mEAAmE;uBAChD,UAAU;IAG7B,yBAAyB;uCACL,UAAU;IAE9B,2DAA2D;2CACnC,UAAU;EAKzC;AAqBD;;;GAGG;AACH,eAAO,MAAM,OAAO;mBACD,UAAU,KAAG,OAAO;oBACnB,OAAO,KAAG,UAAU;CACvC,CAAC"}
|
package/dist/codec.js
CHANGED
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* import { MailWSSchema } from "@vex-chat/types";
|
|
6
|
-
* const MailCodec = createCodec(MailWSSchema);
|
|
7
|
-
*
|
|
8
|
-
* // SDK/Apps (trusted internal) — fast, typed, no Zod overhead:
|
|
9
|
-
* const msg = MailCodec.decode(data);
|
|
10
|
-
*
|
|
11
|
-
* // Spire (trust boundary) — validates at runtime:
|
|
12
|
-
* const msg = MailCodec.decodeSafe(data);
|
|
2
|
+
* Copyright (c) 2020-2026 Vex Heavy Industries LLC
|
|
3
|
+
* Licensed under AGPL-3.0. See LICENSE for details.
|
|
4
|
+
* Commercial licenses available at vex.wtf
|
|
13
5
|
*/
|
|
14
6
|
import { Packr } from "msgpackr";
|
|
15
7
|
const _packr = new Packr({ moreTypes: false, useRecords: false });
|
|
@@ -22,19 +14,19 @@ const _packr = new Packr({ moreTypes: false, useRecords: false });
|
|
|
22
14
|
export function createCodec(schema) {
|
|
23
15
|
return {
|
|
24
16
|
/** Decode msgpack data and validate against the schema. */
|
|
25
|
-
decode: (data) => schema.parse(
|
|
17
|
+
decode: (data) => schema.parse(msgpackDecode(data)),
|
|
26
18
|
/** Alias for decode — both paths validate. Kept for API compat. */
|
|
27
|
-
decodeSafe: (data) => schema.parse(
|
|
19
|
+
decodeSafe: (data) => schema.parse(msgpackDecode(data)),
|
|
28
20
|
/** Encode to msgpack. */
|
|
29
|
-
encode: (msg) =>
|
|
21
|
+
encode: (msg) => msgpackEncode(msg),
|
|
30
22
|
/** Validate against the schema, then encode to msgpack. */
|
|
31
23
|
encodeSafe: (msg) => {
|
|
32
24
|
schema.parse(msg);
|
|
33
|
-
return
|
|
25
|
+
return msgpackEncode(msg);
|
|
34
26
|
},
|
|
35
27
|
};
|
|
36
28
|
}
|
|
37
|
-
function
|
|
29
|
+
function msgpackDecode(data) {
|
|
38
30
|
return _packr.decode(data);
|
|
39
31
|
}
|
|
40
32
|
/**
|
|
@@ -42,10 +34,16 @@ function decode(data) {
|
|
|
42
34
|
* (not a subarray of the internal pool buffer) to avoid browser
|
|
43
35
|
* XMLHttpRequest.send() corruption (axios issue #4068).
|
|
44
36
|
*/
|
|
45
|
-
function
|
|
37
|
+
function msgpackEncode(value) {
|
|
46
38
|
const packed = _packr.encode(value);
|
|
47
39
|
return new Uint8Array(packed.buffer.slice(packed.byteOffset, packed.byteOffset + packed.byteLength));
|
|
48
40
|
}
|
|
49
|
-
/**
|
|
50
|
-
|
|
41
|
+
/**
|
|
42
|
+
* Raw msgpack encode/decode without schema validation.
|
|
43
|
+
* (Wrappers avoid API Extractor ae-forgotten-export on internal helpers.)
|
|
44
|
+
*/
|
|
45
|
+
export const msgpack = {
|
|
46
|
+
decode: (data) => msgpackDecode(data),
|
|
47
|
+
encode: (value) => msgpackEncode(value),
|
|
48
|
+
};
|
|
51
49
|
//# sourceMappingURL=codec.js.map
|
package/dist/codec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkBH,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;AAElE;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAsB,MAAS;IAEtD,OAAO;QACH,2DAA2D;QAC3D,MAAM,EAAE,CAAC,IAAgB,EAAO,EAAE,CAC9B,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAQ;QAE5C,mEAAmE;QACnE,UAAU,EAAE,CAAC,IAAgB,EAAO,EAAE,CAClC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAQ;QAE5C,yBAAyB;QACzB,MAAM,EAAE,CAAC,GAAQ,EAAc,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC;QAEpD,2DAA2D;QAC3D,UAAU,EAAE,CAAC,GAAQ,EAAc,EAAE;YACjC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClB,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;KACJ,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAAC,IAAgB;IACnC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAY,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,KAAc;IACjC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpC,OAAO,IAAI,UAAU,CACjB,MAAM,CAAC,MAAM,CAAC,KAAK,CACf,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CACxC,CACJ,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACnB,MAAM,EAAE,CAAC,IAAgB,EAAW,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;IAC1D,MAAM,EAAE,CAAC,KAAc,EAAc,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC;CAC/D,CAAC"}
|
package/dist/codecs.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-2026 Vex Heavy Industries LLC
|
|
3
|
+
* Licensed under AGPL-3.0. See LICENSE for details.
|
|
4
|
+
* Commercial licenses available at vex.wtf
|
|
5
|
+
*/
|
|
1
6
|
export declare const UserCodec: {
|
|
2
7
|
decode: (data: Uint8Array) => import("@vex-chat/types").User;
|
|
3
8
|
decodeSafe: (data: Uint8Array) => import("@vex-chat/types").User;
|
package/dist/codecs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codecs.d.ts","sourceRoot":"","sources":["../src/codecs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"codecs.d.ts","sourceRoot":"","sources":["../src/codecs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA8BH,eAAO,MAAM,SAAS;;;;;CAA0B,CAAC;AACjD,eAAO,MAAM,WAAW;;;;;CAA4B,CAAC;AACrD,eAAO,MAAM,WAAW;;;;;CAA4B,CAAC;AACrD,eAAO,MAAM,YAAY;;;;;CAA6B,CAAC;AACvD,eAAO,MAAM,eAAe;;;;;CAAgC,CAAC;AAC7D,eAAO,MAAM,WAAW;;;;;CAA4B,CAAC;AACrD,eAAO,MAAM,UAAU;;;;;CAA2B,CAAC;AACnD,eAAO,MAAM,YAAY;;;;;CAA6B,CAAC;AACvD,eAAO,MAAM,gBAAgB;;;;;CAAiC,CAAC;AAC/D,eAAO,MAAM,cAAc;;;;;CAA+B,CAAC;AAI3D,eAAO,MAAM,cAAc;;;;;CAAmC,CAAC;AAC/D,eAAO,MAAM,gBAAgB;;;;;CAAqC,CAAC;AACnE,eAAO,MAAM,gBAAgB;;;;;CAAqC,CAAC;AACnE,eAAO,MAAM,iBAAiB;;;;;CAAsC,CAAC;AACrE,eAAO,MAAM,oBAAoB;;;;;CAAyC,CAAC;AAC3E,eAAO,MAAM,gBAAgB;;;;;CAAqC,CAAC;AACnE,eAAO,MAAM,eAAe;;;;;CAAoC,CAAC;AAIjE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;CAEhC,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;CAK7B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;CAKhC,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;CAKvB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;CAA+C,CAAC;AAI1E;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EACzB,KAAK,EAAE;IAAE,UAAU,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,CAAC,CAAA;CAAE;AAC9C;;;GAGG;AACH,IAAI,EAAE,OAAO,GACd,CAAC,CAQH"}
|
package/dist/codecs.js
CHANGED
package/dist/codecs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codecs.js","sourceRoot":"","sources":["../src/codecs.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EACH,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,EACb,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,UAAU,GACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,+EAA+E;AAE/E,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;AACjD,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC;AAE3D,+EAA+E;AAE/E,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;AACrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC3E,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AAEjE,+EAA+E;AAE/E,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAC3C,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACxC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CACxC,CAAC,CAAC,MAAM,CAAC;IACL,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,UAAU;CACnB,CAAC,CACL,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAC3C,CAAC,CAAC,MAAM,CAAC;IACL,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;CAC1B,CAAC,CACL,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAClC,CAAC,CAAC,MAAM,CAAC;IACL,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,IAAI,EAAE,UAAU;CACnB,CAAC,CACL,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AAE1E,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,UAAU,WAAW,CACvB,KAA8C;AAC9C;;;GAGG;AACH,IAAa;IAEb,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;AAC9E,CAAC"}
|
|
1
|
+
{"version":3,"file":"codecs.js","sourceRoot":"","sources":["../src/codecs.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-2026 Vex Heavy Industries LLC
|
|
3
|
+
* Licensed under AGPL-3.0. See LICENSE for details.
|
|
4
|
+
* Commercial licenses available at vex.wtf
|
|
5
|
+
*/
|
|
1
6
|
export { Client } from "./Client.js";
|
|
2
7
|
export type { Channel, Channels, ClientEvents, ClientOptions, Device, Devices, Emojis, FileProgress, FileRes, Files, Invites, Keys, Me, Message, Messages, Moderation, Permission, Permissions, Server, Servers, Session, Sessions, User, Users, VexFile, } from "./Client.js";
|
|
3
8
|
export { createCodec, msgpack } from "./codec.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EACR,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,MAAM,EACN,OAAO,EACP,MAAM,EACN,YAAY,EACZ,OAAO,EACP,KAAK,EACL,OAAO,EACP,IAAI,EACJ,EAAE,EACF,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,WAAW,EACX,MAAM,EACN,OAAO,EACP,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,OAAO,GACV,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAClD,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EACR,OAAO,EACP,QAAQ,EACR,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,aAAa,GAChB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EACR,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,MAAM,EACN,OAAO,EACP,MAAM,EACN,YAAY,EACZ,OAAO,EACP,KAAK,EACL,OAAO,EACP,IAAI,EACJ,EAAE,EACF,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,WAAW,EACX,MAAM,EACN,OAAO,EACP,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,OAAO,GACV,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAClD,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EACR,OAAO,EACP,QAAQ,EACR,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,aAAa,GAChB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-2026 Vex Heavy Industries LLC
|
|
3
|
+
* Licensed under AGPL-3.0. See LICENSE for details.
|
|
4
|
+
* Commercial licenses available at vex.wtf
|
|
5
|
+
*/
|
|
1
6
|
export { Client } from "./Client.js";
|
|
2
7
|
export { createCodec, msgpack } from "./codec.js";
|
|
3
8
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AA4BrC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AA4BrC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-2026 Vex Heavy Industries LLC
|
|
3
|
+
* Licensed under AGPL-3.0. See LICENSE for details.
|
|
4
|
+
* Commercial licenses available at vex.wtf
|
|
5
|
+
*/
|
|
1
6
|
/**
|
|
2
7
|
* In-memory KeyStore for testing and ephemeral sessions.
|
|
3
8
|
* No persistence — credentials are lost when the process exits.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/keystore/memory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAErE,qBAAa,cAAe,YAAW,QAAQ;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwC;IAE9D,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtC,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAW1D,IAAI,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CAIhD"}
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/keystore/memory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAErE,qBAAa,cAAe,YAAW,QAAQ;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwC;IAE9D,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtC,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAW1D,IAAI,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CAIhD"}
|
package/dist/keystore/memory.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/keystore/memory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/keystore/memory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,MAAM,OAAO,cAAc;IACN,KAAK,GAAG,IAAI,GAAG,EAA6B,CAAC;IAE9D,KAAK,CAAC,QAAgB;QAClB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,IAAI,CAAC,QAAiB;QAClB,IAAI,QAAQ,EAAE,CAAC;YACX,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC;QAC7D,CAAC;QACD,6CAA6C;QAC7C,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACzC,OAAO,OAAO,CAAC,OAAO,CAClB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CACpE,CAAC;IACN,CAAC;IAED,IAAI,CAAC,KAAwB;QACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;CACJ"}
|
package/dist/keystore/node.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-2026 Vex Heavy Industries LLC
|
|
3
|
+
* Licensed under AGPL-3.0. See LICENSE for details.
|
|
4
|
+
* Commercial licenses available at vex.wtf
|
|
5
|
+
*/
|
|
1
6
|
import type { KeyStore, StoredCredentials } from "../types/index.js";
|
|
2
7
|
export declare class NodeKeyStore implements KeyStore {
|
|
3
8
|
private readonly dir;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/keystore/node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAarE,qBAAa,YAAa,YAAW,QAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,UAAU,EAAE,MAAM,EAAE,GAAG,GAAE,MAAY;IAWjD,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAStC,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/keystore/node.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAarE,qBAAa,YAAa,YAAW,QAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,UAAU,EAAE,MAAM,EAAE,GAAG,GAAE,MAAY;IAWjD,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAStC,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAuBpD,IAAI,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IASnD,OAAO,CAAC,QAAQ;YAIF,QAAQ;CAwBzB"}
|
package/dist/keystore/node.js
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-2026 Vex Heavy Industries LLC
|
|
3
|
+
* Licensed under AGPL-3.0. See LICENSE for details.
|
|
4
|
+
* Commercial licenses available at vex.wtf
|
|
5
|
+
*/
|
|
1
6
|
import * as fs from "node:fs";
|
|
2
7
|
import * as path from "node:path";
|
|
3
8
|
/**
|
|
@@ -6,7 +11,7 @@ import * as path from "node:path";
|
|
|
6
11
|
* Stores credentials as encrypted files on disk using XUtils.encryptKeyData.
|
|
7
12
|
* Node-only — imports node:fs.
|
|
8
13
|
*/
|
|
9
|
-
import { XUtils } from "@vex-chat/crypto";
|
|
14
|
+
import { getCryptoProfile, XUtils } from "@vex-chat/crypto";
|
|
10
15
|
export class NodeKeyStore {
|
|
11
16
|
dir;
|
|
12
17
|
passphrase;
|
|
@@ -29,7 +34,7 @@ export class NodeKeyStore {
|
|
|
29
34
|
}
|
|
30
35
|
load(username) {
|
|
31
36
|
if (username) {
|
|
32
|
-
return
|
|
37
|
+
return this.readFile(this.filePath(username));
|
|
33
38
|
}
|
|
34
39
|
// Find most recent .vex file in the directory
|
|
35
40
|
try {
|
|
@@ -46,25 +51,28 @@ export class NodeKeyStore {
|
|
|
46
51
|
const newest = files[0];
|
|
47
52
|
if (!newest)
|
|
48
53
|
return Promise.resolve(null);
|
|
49
|
-
return
|
|
54
|
+
return this.readFile(path.join(this.dir, newest.name));
|
|
50
55
|
}
|
|
51
56
|
catch {
|
|
52
57
|
return Promise.resolve(null);
|
|
53
58
|
}
|
|
54
59
|
}
|
|
55
|
-
save(creds) {
|
|
60
|
+
async save(creds) {
|
|
56
61
|
const data = JSON.stringify(creds);
|
|
57
|
-
const encrypted =
|
|
62
|
+
const encrypted = getCryptoProfile() === "fips"
|
|
63
|
+
? await XUtils.encryptKeyDataAsync(this.passphrase, data)
|
|
64
|
+
: XUtils.encryptKeyData(this.passphrase, data);
|
|
58
65
|
fs.writeFileSync(this.filePath(creds.username), encrypted);
|
|
59
|
-
return Promise.resolve();
|
|
60
66
|
}
|
|
61
67
|
filePath(username) {
|
|
62
68
|
return path.join(this.dir, `${username}.vex`);
|
|
63
69
|
}
|
|
64
|
-
readFile(filePath) {
|
|
70
|
+
async readFile(filePath) {
|
|
65
71
|
try {
|
|
66
72
|
const data = fs.readFileSync(filePath);
|
|
67
|
-
const decrypted =
|
|
73
|
+
const decrypted = getCryptoProfile() === "fips"
|
|
74
|
+
? await XUtils.decryptKeyDataAsync(new Uint8Array(data), this.passphrase)
|
|
75
|
+
: XUtils.decryptKeyData(new Uint8Array(data), this.passphrase);
|
|
68
76
|
const parsed = JSON.parse(decrypted);
|
|
69
77
|
if (isStoredCredentials(parsed)) {
|
|
70
78
|
return parsed;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/keystore/node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/keystore/node.ts"],"names":[],"mappings":"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"}
|
package/dist/preset/common.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-2026 Vex Heavy Industries LLC
|
|
3
|
+
* Licensed under AGPL-3.0. See LICENSE for details.
|
|
4
|
+
* Commercial licenses available at vex.wtf
|
|
5
|
+
*/
|
|
1
6
|
import type { Storage } from "../Storage.js";
|
|
2
7
|
/** Internal preset interface used by nodePreset and testPreset. */
|
|
3
8
|
export interface PlatformPreset {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/preset/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,mEAAmE;AACnE,MAAM,WAAW,cAAc;IAC3B,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpE,UAAU,EAAE,MAAM,CAAC;CACtB"}
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/preset/common.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,mEAAmE;AACnE,MAAM,WAAW,cAAc;IAC3B,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpE,UAAU,EAAE,MAAM,CAAC;CACtB"}
|
package/dist/preset/common.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/preset/common.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/preset/common.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
package/dist/preset/node.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/preset/node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/preset/node.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH;;;;;GAKG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAgB,UAAU,IAAI,cAAc,CAe3C"}
|
package/dist/preset/node.js
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-2026 Vex Heavy Industries LLC
|
|
3
|
+
* Licensed under AGPL-3.0. See LICENSE for details.
|
|
4
|
+
* Commercial licenses available at vex.wtf
|
|
5
|
+
*/
|
|
1
6
|
export function nodePreset() {
|
|
2
7
|
return {
|
|
3
8
|
async createStorage(dbName, privateKey) {
|
|
9
|
+
const { getCryptoProfile } = await import("@vex-chat/crypto");
|
|
4
10
|
const { createNodeStorage } = await import("../storage/node.js");
|
|
5
|
-
|
|
11
|
+
const { resolveAtRestAesKeyFromSignKeyHex } = await import("../utils/resolveAtRestAesKey.js");
|
|
12
|
+
const atRest = await resolveAtRestAesKeyFromSignKeyHex(privateKey, getCryptoProfile());
|
|
13
|
+
return createNodeStorage(dbName, atRest);
|
|
6
14
|
},
|
|
7
15
|
deviceName: process.platform,
|
|
8
16
|
};
|
package/dist/preset/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/preset/node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/preset/node.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,MAAM,UAAU,UAAU;IACtB,OAAO;QACH,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU;YAClC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC9D,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;YACjE,MAAM,EAAE,iCAAiC,EAAE,GACvC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,MAAM,iCAAiC,CAClD,UAAU,EACV,gBAAgB,EAAE,CACrB,CAAC;YACF,OAAO,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;QACD,UAAU,EAAE,OAAO,CAAC,QAAQ;KAC/B,CAAC;AACN,CAAC"}
|
package/dist/preset/test.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/preset/test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAgB,UAAU,IAAI,cAAc,
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/preset/test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAgB,UAAU,IAAI,cAAc,CAkB3C"}
|
package/dist/preset/test.js
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-2026 Vex Heavy Industries LLC
|
|
3
|
+
* Licensed under AGPL-3.0. See LICENSE for details.
|
|
4
|
+
* Commercial licenses available at vex.wtf
|
|
5
|
+
*/
|
|
1
6
|
export function testPreset() {
|
|
2
7
|
return {
|
|
3
8
|
async createStorage(_dbName, privateKey) {
|
|
9
|
+
const { getCryptoProfile } = await import("@vex-chat/crypto");
|
|
10
|
+
const { resolveAtRestAesKeyFromSignKeyHex } = await import("../utils/resolveAtRestAesKey.js");
|
|
4
11
|
const { MemoryStorage } = await import("../__tests__/harness/memory-storage.js");
|
|
5
|
-
const
|
|
12
|
+
const atRest = await resolveAtRestAesKeyFromSignKeyHex(privateKey, getCryptoProfile());
|
|
13
|
+
const storage = new MemoryStorage(atRest);
|
|
6
14
|
await storage.init();
|
|
7
15
|
return storage;
|
|
8
16
|
},
|
package/dist/preset/test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/preset/test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/preset/test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,MAAM,UAAU,UAAU;IACtB,OAAO;QACH,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU;YACnC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC9D,MAAM,EAAE,iCAAiC,EAAE,GACvC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;YACpD,MAAM,EAAE,aAAa,EAAE,GACnB,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,MAAM,iCAAiC,CAClD,UAAU,EACV,gBAAgB,EAAE,CACrB,CAAC;YACF,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,UAAU,EAAE,MAAM;KACrB,CAAC;AACN,CAAC"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-2026 Vex Heavy Industries LLC
|
|
3
|
+
* Licensed under AGPL-3.0. See LICENSE for details.
|
|
4
|
+
* Commercial licenses available at vex.wtf
|
|
5
|
+
*/
|
|
1
6
|
import type { AxiosInstance } from "axios";
|
|
2
7
|
/**
|
|
3
8
|
* Node-only HTTP(S) agents for libvex axios — lives under `storage/node/` so the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-agents.d.ts","sourceRoot":"","sources":["../../../src/storage/node/http-agents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C;;;GAGG;AACH,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;CACnC;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,CAKxD;AAED,wBAAgB,uBAAuB,CACnC,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,iBAAiB,GAC1B,IAAI,CAGN;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAGrE"}
|
|
1
|
+
{"version":3,"file":"http-agents.d.ts","sourceRoot":"","sources":["../../../src/storage/node/http-agents.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C;;;GAGG;AACH,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;CACnC;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,CAKxD;AAED,wBAAgB,uBAAuB,CACnC,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,iBAAiB,GAC1B,IAAI,CAGN;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAGrE"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-2026 Vex Heavy Industries LLC
|
|
3
|
+
* Licensed under AGPL-3.0. See LICENSE for details.
|
|
4
|
+
* Commercial licenses available at vex.wtf
|
|
5
|
+
*/
|
|
1
6
|
/**
|
|
2
7
|
* Node-only HTTP(S) agents for libvex axios — lives under `storage/node/` so the
|
|
3
8
|
* platform-guard plugin allows `node:http` / `node:https` (see poison-node-imports).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-agents.js","sourceRoot":"","sources":["../../../src/storage/node/http-agents.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"http-agents.js","sourceRoot":"","sources":["../../../src/storage/node/http-agents.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;GAGG;AACH,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AAOxC,MAAM,UAAU,oBAAoB;IAChC,OAAO;QACH,IAAI,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC7C,KAAK,EAAE,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;KAClD,CAAC;AACN,CAAC;AAED,MAAM,UAAU,uBAAuB,CACnC,QAAuB,EACvB,MAAyB;IAEzB,QAAQ,CAAC,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC;IAC1C,QAAQ,CAAC,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAyB;IAC3D,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IACtB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;AAC3B,CAAC"}
|
package/dist/storage/node.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-2026 Vex Heavy Industries LLC
|
|
3
|
+
* Licensed under AGPL-3.0. See LICENSE for details.
|
|
4
|
+
* Commercial licenses available at vex.wtf
|
|
5
|
+
*/
|
|
1
6
|
import type { Storage } from "../Storage.js";
|
|
2
|
-
export declare function createNodeStorage(dbPath: string,
|
|
7
|
+
export declare function createNodeStorage(dbPath: string, atRestAesKey: Uint8Array): Storage;
|
|
3
8
|
//# sourceMappingURL=node.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/storage/node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAY7C,wBAAgB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/storage/node.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAY7C,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,UAAU,GACzB,OAAO,CAOT"}
|
package/dist/storage/node.js
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-2026 Vex Heavy Industries LLC
|
|
3
|
+
* Licensed under AGPL-3.0. See LICENSE for details.
|
|
4
|
+
* Commercial licenses available at vex.wtf
|
|
5
|
+
*/
|
|
1
6
|
import BetterSqlite3 from "better-sqlite3";
|
|
2
7
|
/**
|
|
3
8
|
* Node.js storage factory — creates SqliteStorage with better-sqlite3 dialect.
|
|
@@ -5,14 +10,12 @@ import BetterSqlite3 from "better-sqlite3";
|
|
|
5
10
|
*/
|
|
6
11
|
import { Kysely, SqliteDialect } from "kysely";
|
|
7
12
|
import { SqliteStorage } from "./sqlite.js";
|
|
8
|
-
export function createNodeStorage(dbPath,
|
|
13
|
+
export function createNodeStorage(dbPath, atRestAesKey) {
|
|
9
14
|
const db = new Kysely({
|
|
10
15
|
dialect: new SqliteDialect({
|
|
11
16
|
database: new BetterSqlite3(dbPath),
|
|
12
17
|
}),
|
|
13
18
|
});
|
|
14
|
-
|
|
15
|
-
void storage.init();
|
|
16
|
-
return storage;
|
|
19
|
+
return new SqliteStorage(db, atRestAesKey);
|
|
17
20
|
}
|
|
18
21
|
//# sourceMappingURL=node.js.map
|
package/dist/storage/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/storage/node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/storage/node.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,aAAa,MAAM,gBAAgB,CAAC;AAC3C;;;GAGG;AACH,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,UAAU,iBAAiB,CAC7B,MAAc,EACd,YAAwB;IAExB,MAAM,EAAE,GAAG,IAAI,MAAM,CAAiB;QAClC,OAAO,EAAE,IAAI,aAAa,CAAC;YACvB,QAAQ,EAAE,IAAI,aAAa,CAAC,MAAM,CAAC;SACtC,CAAC;KACL,CAAC,CAAC;IACH,OAAO,IAAI,aAAa,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;AAC/C,CAAC"}
|
package/dist/storage/schema.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/storage/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/storage/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/storage/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/storage/schema.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/storage/schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
package/dist/storage/sqlite.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-2026 Vex Heavy Industries LLC
|
|
3
|
+
* Licensed under AGPL-3.0. See LICENSE for details.
|
|
4
|
+
* Commercial licenses available at vex.wtf
|
|
5
|
+
*/
|
|
1
6
|
import type { Message } from "../index.js";
|
|
2
7
|
import type { Storage } from "../Storage.js";
|
|
3
8
|
import type { PreKeysCrypto, SessionCrypto, UnsavedPreKey } from "../types/index.js";
|
|
@@ -8,9 +13,17 @@ import { EventEmitter } from "eventemitter3";
|
|
|
8
13
|
export declare class SqliteStorage extends EventEmitter implements Storage {
|
|
9
14
|
ready: boolean;
|
|
10
15
|
private closing;
|
|
16
|
+
/** Shared across concurrent `init()` callers; `close()` awaits it before `destroy()`. */
|
|
17
|
+
private initInFlight;
|
|
11
18
|
private readonly db;
|
|
12
|
-
|
|
13
|
-
|
|
19
|
+
/** 32-byte AES-256 (or nacl) key for local at-rest `secretbox` (see `XUtils.deriveLocalAtRestAesKey`). */
|
|
20
|
+
private readonly atRestAesKey;
|
|
21
|
+
constructor(db: Kysely<ClientDatabase>, atRestAesKey: Uint8Array);
|
|
22
|
+
/**
|
|
23
|
+
* Read `closing` where TypeScript would incorrectly assume it cannot
|
|
24
|
+
* become true after an earlier guard (e.g. across `await`).
|
|
25
|
+
*/
|
|
26
|
+
private isClosingNow;
|
|
14
27
|
close(): Promise<void>;
|
|
15
28
|
deleteHistory(channelOrUserID: string): Promise<void>;
|
|
16
29
|
deleteMessage(mailID: string): Promise<void>;
|
|
@@ -32,15 +45,20 @@ export declare class SqliteStorage extends EventEmitter implements Storage {
|
|
|
32
45
|
saveMessage(message: Message): Promise<void>;
|
|
33
46
|
savePreKeys(preKeys: UnsavedPreKey[], oneTime: boolean): Promise<PreKeysSQL[]>;
|
|
34
47
|
saveSession(session: SessionSQL): Promise<void>;
|
|
35
|
-
private
|
|
48
|
+
private decryptMessagesAsync;
|
|
36
49
|
private deviceRowToDevice;
|
|
37
50
|
private isDuplicateError;
|
|
51
|
+
/**
|
|
52
|
+
* After `close` runs, Kysely / better-sqlite3 can reject with this if a
|
|
53
|
+
* message handler is still in flight.
|
|
54
|
+
*/
|
|
55
|
+
private isTornDownError;
|
|
38
56
|
/**
|
|
39
57
|
* Encrypt a hex-encoded secret for at-rest storage.
|
|
40
58
|
* Returns hex(nonce || ciphertext) where nonce is 24 random bytes.
|
|
41
59
|
*/
|
|
42
60
|
private sealHex;
|
|
43
|
-
private
|
|
61
|
+
private sessionRowToSQLAsync;
|
|
44
62
|
private sqlToCrypto;
|
|
45
63
|
/**
|
|
46
64
|
* Decrypt a value produced by sealHex().
|