@vex-chat/libvex 2.0.0 → 4.0.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.
Files changed (68) hide show
  1. package/README.md +3 -2
  2. package/dist/Client.d.ts +83 -59
  3. package/dist/Client.d.ts.map +1 -1
  4. package/dist/Client.js +143 -272
  5. package/dist/Client.js.map +1 -1
  6. package/dist/Storage.d.ts +3 -3
  7. package/dist/codec.d.ts +4 -4
  8. package/dist/codec.d.ts.map +1 -1
  9. package/dist/codec.js +4 -4
  10. package/dist/codec.js.map +1 -1
  11. package/dist/index.d.ts +2 -3
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/keystore/node.d.ts +2 -1
  15. package/dist/keystore/node.d.ts.map +1 -1
  16. package/dist/keystore/node.js +9 -3
  17. package/dist/keystore/node.js.map +1 -1
  18. package/dist/preset/common.d.ts +1 -3
  19. package/dist/preset/common.d.ts.map +1 -1
  20. package/dist/preset/node.d.ts +1 -2
  21. package/dist/preset/node.d.ts.map +1 -1
  22. package/dist/preset/node.js +3 -7
  23. package/dist/preset/node.js.map +1 -1
  24. package/dist/preset/test.d.ts +0 -1
  25. package/dist/preset/test.d.ts.map +1 -1
  26. package/dist/preset/test.js +1 -15
  27. package/dist/preset/test.js.map +1 -1
  28. package/dist/storage/node.d.ts +1 -2
  29. package/dist/storage/node.d.ts.map +1 -1
  30. package/dist/storage/node.js +2 -8
  31. package/dist/storage/node.js.map +1 -1
  32. package/dist/storage/sqlite.d.ts +11 -3
  33. package/dist/storage/sqlite.d.ts.map +1 -1
  34. package/dist/storage/sqlite.js +36 -33
  35. package/dist/storage/sqlite.js.map +1 -1
  36. package/dist/transport/types.d.ts +0 -6
  37. package/dist/transport/types.d.ts.map +1 -1
  38. package/dist/types/crypto.d.ts +5 -2
  39. package/dist/types/crypto.d.ts.map +1 -1
  40. package/dist/types/crypto.js +2 -2
  41. package/dist/types/identity.d.ts +6 -1
  42. package/dist/types/identity.d.ts.map +1 -1
  43. package/dist/types/identity.js +1 -1
  44. package/package.json +20 -12
  45. package/src/Client.ts +206 -424
  46. package/src/Storage.ts +3 -3
  47. package/src/__tests__/codec.test.ts +26 -21
  48. package/src/__tests__/harness/platform-transports.ts +2 -15
  49. package/src/__tests__/harness/poison-node-imports.ts +0 -1
  50. package/src/__tests__/harness/shared-suite.ts +0 -20
  51. package/src/__tests__/platform-browser.test.ts +5 -10
  52. package/src/__tests__/platform-node.test.ts +1 -2
  53. package/src/codec.ts +4 -4
  54. package/src/index.ts +9 -2
  55. package/src/keystore/node.ts +14 -3
  56. package/src/preset/common.ts +1 -7
  57. package/src/preset/node.ts +3 -19
  58. package/src/preset/test.ts +1 -18
  59. package/src/storage/node.ts +2 -13
  60. package/src/storage/sqlite.ts +44 -65
  61. package/src/transport/types.ts +0 -7
  62. package/src/types/crypto.ts +5 -2
  63. package/src/types/identity.ts +6 -1
  64. package/dist/utils/createLogger.d.ts +0 -6
  65. package/dist/utils/createLogger.d.ts.map +0 -1
  66. package/dist/utils/createLogger.js +0 -27
  67. package/dist/utils/createLogger.js.map +0 -1
  68. package/src/utils/createLogger.ts +0 -37
@@ -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;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAYpD,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,MAAM,GAChB,OAAO,CAeT"}
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,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CASrE"}
@@ -5,19 +5,13 @@ import BetterSqlite3 from "better-sqlite3";
5
5
  */
6
6
  import { Kysely, SqliteDialect } from "kysely";
7
7
  import { SqliteStorage } from "./sqlite.js";
8
- export function createNodeStorage(dbPath, SK, logger) {
8
+ export function createNodeStorage(dbPath, SK) {
9
9
  const db = new Kysely({
10
10
  dialect: new SqliteDialect({
11
11
  database: new BetterSqlite3(dbPath),
12
12
  }),
13
13
  });
14
- const log = logger ?? {
15
- debug() { },
16
- error() { },
17
- info() { },
18
- warn() { },
19
- };
20
- const storage = new SqliteStorage(db, SK, log);
14
+ const storage = new SqliteStorage(db, SK);
21
15
  void storage.init();
22
16
  return storage;
23
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/storage/node.ts"],"names":[],"mappings":"AAIA,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,EAAU,EACV,MAAe;IAEf,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,MAAM,GAAG,GAAW,MAAM,IAAI;QAC1B,KAAK,KAAI,CAAC;QACV,KAAK,KAAI,CAAC;QACV,IAAI,KAAI,CAAC;QACT,IAAI,KAAI,CAAC;KACZ,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/C,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;IACpB,OAAO,OAAO,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/storage/node.ts"],"names":[],"mappings":"AAGA,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,CAAC,MAAc,EAAE,EAAU;IACxD,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,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1C,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;IACpB,OAAO,OAAO,CAAC;AACnB,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import type { Message } from "../index.js";
2
2
  import type { Storage } from "../Storage.js";
3
- import type { Logger } from "../transport/types.js";
4
3
  import type { PreKeysCrypto, SessionCrypto, UnsavedPreKey } from "../types/index.js";
5
4
  import type { ClientDatabase } from "./schema.js";
6
5
  import type { Device, PreKeysSQL, SessionSQL } from "@vex-chat/types";
@@ -11,8 +10,7 @@ export declare class SqliteStorage extends EventEmitter implements Storage {
11
10
  private closing;
12
11
  private readonly db;
13
12
  private readonly idKeys;
14
- private readonly log;
15
- constructor(db: Kysely<ClientDatabase>, SK: string, logger: Logger);
13
+ constructor(db: Kysely<ClientDatabase>, SK: string);
16
14
  close(): Promise<void>;
17
15
  deleteHistory(channelOrUserID: string): Promise<void>;
18
16
  deleteMessage(mailID: string): Promise<void>;
@@ -37,8 +35,18 @@ export declare class SqliteStorage extends EventEmitter implements Storage {
37
35
  private decryptMessages;
38
36
  private deviceRowToDevice;
39
37
  private isDuplicateError;
38
+ /**
39
+ * Encrypt a hex-encoded secret for at-rest storage.
40
+ * Returns hex(nonce || ciphertext) where nonce is 24 random bytes.
41
+ */
42
+ private sealHex;
40
43
  private sessionRowToSQL;
41
44
  private sqlToCrypto;
45
+ /**
46
+ * Decrypt a value produced by sealHex().
47
+ * Expects hex(nonce || ciphertext), returns the original hex string.
48
+ */
49
+ private unsealHex;
42
50
  private untilReady;
43
51
  }
44
52
  //# sourceMappingURL=sqlite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/storage/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EACR,aAAa,EACb,aAAa,EACb,aAAa,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACR,cAAc,EAIjB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAsBrC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,qBAAa,aAAc,SAAQ,YAAa,YAAW,OAAO;IACvD,KAAK,UAAS;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAyB;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAEjB,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAgB5D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,aAAa,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBrD,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa5C,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa9C,cAAc,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAgBvC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAcnD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAkBtD,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAiCrD,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC;IA6B3D,UAAU,IAAI,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC;IAyB3C,oBAAoB,CACtB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC;IAwB1B,qBAAqB,CACvB,SAAS,EAAE,UAAU,GACtB,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC;IA2B1B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmFrB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBjD,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAO7B,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BzC,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA4C5C,WAAW,CACb,OAAO,EAAE,aAAa,EAAE,EACxB,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC,UAAU,EAAE,CAAC;IAsClB,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCrD,OAAO,CAAC,eAAe;IAsCvB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,WAAW;YAYL,UAAU;CAa3B"}
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/storage/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EACR,aAAa,EACb,aAAa,EACb,aAAa,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACR,cAAc,EAIjB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAuBrC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,qBAAa,aAAc,SAAQ,YAAa,YAAW,OAAO;IACvD,KAAK,UAAS;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAyB;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAErB,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,MAAM;IAe5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,aAAa,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBrD,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5C,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU9C,cAAc,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAavC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAcnD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAetD,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IA8BrD,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC;IAyB3D,UAAU,IAAI,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC;IAqB3C,oBAAoB,CACtB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC;IAoB1B,qBAAqB,CACvB,SAAS,EAAE,UAAU,GACtB,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC;IAqB1B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkFrB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAajD,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAO7B,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BzC,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAyC5C,WAAW,CACb,OAAO,EAAE,aAAa,EAAE,EACxB,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC,UAAU,EAAE,CAAC;IAqClB,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BrD,OAAO,CAAC,eAAe;IAsCvB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,gBAAgB;IAUxB;;;OAGG;IACH,OAAO,CAAC,OAAO;IAaf,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,WAAW;IAYnB;;;OAGG;IACH,OAAO,CAAC,SAAS;YAWH,UAAU;CAa3B"}
@@ -8,18 +8,16 @@
8
8
  * This replaces three separate storage classes (Storage.ts, TauriStorage,
9
9
  * ExpoStorage) with a single implementation.
10
10
  */
11
- import { xBoxKeyPairFromSecret, XKeyConvert, xSecretbox, xSecretboxOpen, xSignKeyPairFromSecret, XUtils, } from "@vex-chat/crypto";
11
+ import { xBoxKeyPairFromSecret, XKeyConvert, xMakeNonce, xSecretbox, xSecretboxOpen, xSignKeyPairFromSecret, XUtils, } from "@vex-chat/crypto";
12
12
  import { EventEmitter } from "eventemitter3";
13
13
  export class SqliteStorage extends EventEmitter {
14
14
  ready = false;
15
15
  closing = false;
16
16
  db;
17
17
  idKeys;
18
- log;
19
- constructor(db, SK, logger) {
18
+ constructor(db, SK) {
20
19
  super();
21
20
  this.db = db;
22
- this.log = logger;
23
21
  const idKeys = XKeyConvert.convertKeyPair(xSignKeyPairFromSecret(XUtils.decodeHex(SK)));
24
22
  if (!idKeys) {
25
23
  throw new Error("Can't convert SK!");
@@ -29,7 +27,6 @@ export class SqliteStorage extends EventEmitter {
29
27
  // ── Lifecycle ────────────────────────────────────────────────────────────
30
28
  async close() {
31
29
  this.closing = true;
32
- this.log.info("Closing database.");
33
30
  await this.db.destroy();
34
31
  }
35
32
  async deleteHistory(channelOrUserID) {
@@ -51,7 +48,6 @@ export class SqliteStorage extends EventEmitter {
51
48
  // ── Messages ─────────────────────────────────────────────────────────────
52
49
  async deleteMessage(mailID) {
53
50
  if (this.closing) {
54
- this.log.warn("Database is closing, deleteMessage() will not complete.");
55
51
  return;
56
52
  }
57
53
  await this.db
@@ -61,7 +57,6 @@ export class SqliteStorage extends EventEmitter {
61
57
  }
62
58
  async deleteOneTimeKey(index) {
63
59
  if (this.closing) {
64
- this.log.warn("Database is closing, deleteOneTimeKey() will not complete.");
65
60
  return;
66
61
  }
67
62
  await this.db
@@ -71,7 +66,6 @@ export class SqliteStorage extends EventEmitter {
71
66
  }
72
67
  async getAllSessions() {
73
68
  if (this.closing) {
74
- this.log.warn("Database is closing, getAllSessions() will not complete.");
75
69
  return [];
76
70
  }
77
71
  const rows = await this.db
@@ -95,7 +89,6 @@ export class SqliteStorage extends EventEmitter {
95
89
  }
96
90
  async getGroupHistory(channelID) {
97
91
  if (this.closing) {
98
- this.log.warn("Database is closing, getGroupHistory() will not complete.");
99
92
  return [];
100
93
  }
101
94
  const messages = await this.db
@@ -108,7 +101,6 @@ export class SqliteStorage extends EventEmitter {
108
101
  }
109
102
  async getMessageHistory(userID) {
110
103
  if (this.closing) {
111
- this.log.warn("Database is closing, getMessageHistory() will not complete.");
112
104
  return [];
113
105
  }
114
106
  const messages = await this.db
@@ -134,7 +126,6 @@ export class SqliteStorage extends EventEmitter {
134
126
  async getOneTimeKey(index) {
135
127
  await this.untilReady();
136
128
  if (this.closing) {
137
- this.log.warn("Database is closing, getOneTimeKey() will not complete.");
138
129
  return null;
139
130
  }
140
131
  const rows = await this.db
@@ -144,36 +135,32 @@ export class SqliteStorage extends EventEmitter {
144
135
  .execute();
145
136
  const otkInfo = rows[0];
146
137
  if (!otkInfo) {
147
- this.log.debug("getOneTimeKey() => " + JSON.stringify(null));
148
138
  return null;
149
139
  }
150
140
  return {
151
141
  index: otkInfo.index,
152
- keyPair: xBoxKeyPairFromSecret(XUtils.decodeHex(otkInfo.privateKey)),
142
+ keyPair: xBoxKeyPairFromSecret(XUtils.decodeHex(this.unsealHex(otkInfo.privateKey))),
153
143
  signature: XUtils.decodeHex(otkInfo.signature),
154
144
  };
155
145
  }
156
146
  async getPreKeys() {
157
147
  await this.untilReady();
158
148
  if (this.closing) {
159
- this.log.warn("Database is closing, getPreKeys() will not complete.");
160
149
  return null;
161
150
  }
162
151
  const rows = await this.db.selectFrom("preKeys").selectAll().execute();
163
152
  const preKeyInfo = rows[0];
164
153
  if (!preKeyInfo) {
165
- this.log.debug("getPreKeys() => " + JSON.stringify(null));
166
154
  return null;
167
155
  }
168
156
  return {
169
157
  index: preKeyInfo.index,
170
- keyPair: xBoxKeyPairFromSecret(XUtils.decodeHex(preKeyInfo.privateKey)),
158
+ keyPair: xBoxKeyPairFromSecret(XUtils.decodeHex(this.unsealHex(preKeyInfo.privateKey))),
171
159
  signature: XUtils.decodeHex(preKeyInfo.signature),
172
160
  };
173
161
  }
174
162
  async getSessionByDeviceID(deviceID) {
175
163
  if (this.closing) {
176
- this.log.warn("Database is closing, getSessionByDeviceID() will not complete.");
177
164
  return null;
178
165
  }
179
166
  const rows = await this.db
@@ -185,14 +172,12 @@ export class SqliteStorage extends EventEmitter {
185
172
  .execute();
186
173
  const sessionRow = rows[0];
187
174
  if (!sessionRow) {
188
- this.log.debug("getSession() => " + JSON.stringify(null));
189
175
  return null;
190
176
  }
191
177
  return this.sqlToCrypto(this.sessionRowToSQL(sessionRow));
192
178
  }
193
179
  async getSessionByPublicKey(publicKey) {
194
180
  if (this.closing) {
195
- this.log.warn("Database is closing, getSessionByPublicKey() will not complete.");
196
181
  return null;
197
182
  }
198
183
  const hex = XUtils.encodeHex(publicKey);
@@ -204,13 +189,11 @@ export class SqliteStorage extends EventEmitter {
204
189
  .execute();
205
190
  const sessionRow = rows[0];
206
191
  if (!sessionRow) {
207
- this.log.warn(`getSessionByPublicKey(${hex}) => ${JSON.stringify(null)}`);
208
192
  return null;
209
193
  }
210
194
  return this.sqlToCrypto(this.sessionRowToSQL(sessionRow));
211
195
  }
212
196
  async init() {
213
- this.log.info("Initializing database tables.");
214
197
  try {
215
198
  await this.db.schema
216
199
  .createTable("messages")
@@ -282,7 +265,6 @@ export class SqliteStorage extends EventEmitter {
282
265
  }
283
266
  async markSessionUsed(sessionID) {
284
267
  if (this.closing) {
285
- this.log.warn("Database is closing, markSessionUsed() will not complete.");
286
268
  return;
287
269
  }
288
270
  await this.db
@@ -294,7 +276,6 @@ export class SqliteStorage extends EventEmitter {
294
276
  // ── PreKeys / OneTimeKeys ────────────────────────────────────────────────
295
277
  async markSessionVerified(sessionID) {
296
278
  if (this.closing) {
297
- this.log.warn("Database is closing, markSessionVerified() will not complete.");
298
279
  return;
299
280
  }
300
281
  await this.db
@@ -314,7 +295,6 @@ export class SqliteStorage extends EventEmitter {
314
295
  }
315
296
  async saveDevice(device) {
316
297
  if (this.closing) {
317
- this.log.warn("Database is closing, saveDevice() will not complete.");
318
298
  return;
319
299
  }
320
300
  try {
@@ -332,7 +312,7 @@ export class SqliteStorage extends EventEmitter {
332
312
  }
333
313
  catch (err) {
334
314
  if (this.isDuplicateError(err)) {
335
- this.log.warn("Attempted to insert duplicate deviceID");
315
+ // duplicate deviceID ignore
336
316
  }
337
317
  else {
338
318
  throw err;
@@ -342,7 +322,6 @@ export class SqliteStorage extends EventEmitter {
342
322
  // ── Devices ──────────────────────────────────────────────────────────────
343
323
  async saveMessage(message) {
344
324
  if (this.closing) {
345
- this.log.warn("Database is closing, saveMessage() will not complete.");
346
325
  return;
347
326
  }
348
327
  // Encrypt plaintext with our idkey before saving to disk
@@ -368,7 +347,7 @@ export class SqliteStorage extends EventEmitter {
368
347
  }
369
348
  catch (err) {
370
349
  if (this.isDuplicateError(err)) {
371
- this.log.warn("Duplicate nonce in message table.");
350
+ // duplicate nonce ignore
372
351
  }
373
352
  else {
374
353
  throw err;
@@ -378,7 +357,6 @@ export class SqliteStorage extends EventEmitter {
378
357
  async savePreKeys(preKeys, oneTime) {
379
358
  await this.untilReady();
380
359
  if (this.closing) {
381
- this.log.warn("Database is closing, savePreKeys() will not complete.");
382
360
  return [];
383
361
  }
384
362
  const table = oneTime ? "oneTimeKeys" : "preKeys";
@@ -387,7 +365,7 @@ export class SqliteStorage extends EventEmitter {
387
365
  const row = await this.db
388
366
  .insertInto(table)
389
367
  .values({
390
- privateKey: XUtils.encodeHex(preKey.keyPair.secretKey),
368
+ privateKey: this.sealHex(XUtils.encodeHex(preKey.keyPair.secretKey)),
391
369
  publicKey: XUtils.encodeHex(preKey.keyPair.publicKey),
392
370
  signature: XUtils.encodeHex(preKey.signature),
393
371
  })
@@ -407,7 +385,6 @@ export class SqliteStorage extends EventEmitter {
407
385
  // ── Purge ────────────────────────────────────────────────────────────────
408
386
  async saveSession(session) {
409
387
  if (this.closing) {
410
- this.log.warn("Database is closing, saveSession() will not complete.");
411
388
  return;
412
389
  }
413
390
  try {
@@ -420,7 +397,7 @@ export class SqliteStorage extends EventEmitter {
420
397
  mode: session.mode,
421
398
  publicKey: session.publicKey,
422
399
  sessionID: session.sessionID,
423
- SK: session.SK,
400
+ SK: this.sealHex(session.SK),
424
401
  userID: session.userID,
425
402
  verified: session.verified ? 1 : 0,
426
403
  })
@@ -428,7 +405,7 @@ export class SqliteStorage extends EventEmitter {
428
405
  }
429
406
  catch (err) {
430
407
  if (this.isDuplicateError(err)) {
431
- this.log.warn("Attempted to insert duplicate SK");
408
+ // duplicate SK ignore
432
409
  }
433
410
  else {
434
411
  throw err;
@@ -485,6 +462,18 @@ export class SqliteStorage extends EventEmitter {
485
462
  }
486
463
  return false;
487
464
  }
465
+ /**
466
+ * Encrypt a hex-encoded secret for at-rest storage.
467
+ * Returns hex(nonce || ciphertext) where nonce is 24 random bytes.
468
+ */
469
+ sealHex(plainHex) {
470
+ const nonce = xMakeNonce();
471
+ const ct = xSecretbox(XUtils.decodeHex(plainHex), nonce, this.idKeys.secretKey);
472
+ const sealed = new Uint8Array(nonce.length + ct.length);
473
+ sealed.set(nonce);
474
+ sealed.set(ct, nonce.length);
475
+ return XUtils.encodeHex(sealed);
476
+ }
488
477
  sessionRowToSQL(row) {
489
478
  return {
490
479
  deviceID: row.deviceID,
@@ -493,7 +482,7 @@ export class SqliteStorage extends EventEmitter {
493
482
  mode: row.mode === "initiator" ? "initiator" : "receiver",
494
483
  publicKey: row.publicKey,
495
484
  sessionID: row.sessionID,
496
- SK: row.SK,
485
+ SK: this.unsealHex(row.SK),
497
486
  userID: row.userID,
498
487
  verified: row.verified !== 0,
499
488
  };
@@ -509,6 +498,20 @@ export class SqliteStorage extends EventEmitter {
509
498
  userID: session.userID,
510
499
  };
511
500
  }
501
+ /**
502
+ * Decrypt a value produced by sealHex().
503
+ * Expects hex(nonce || ciphertext), returns the original hex string.
504
+ */
505
+ unsealHex(sealed) {
506
+ const bytes = XUtils.decodeHex(sealed);
507
+ const nonce = bytes.slice(0, 24);
508
+ const ct = bytes.slice(24);
509
+ const plain = xSecretboxOpen(ct, nonce, this.idKeys.secretKey);
510
+ if (!plain) {
511
+ throw new Error("Failed to decrypt sealed column value.");
512
+ }
513
+ return XUtils.encodeHex(plain);
514
+ }
512
515
  async untilReady() {
513
516
  if (this.ready)
514
517
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/storage/sqlite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/storage/sqlite.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,3 @@
1
- export interface Logger {
2
- debug(message: string, ...args: unknown[]): void;
3
- error(message: string, ...args: unknown[]): void;
4
- info(message: string, ...args: unknown[]): void;
5
- warn(message: string, ...args: unknown[]): void;
6
- }
7
1
  export type WebSocketEvent = keyof WebSocketEventMap;
8
2
  export interface WebSocketEventMap {
9
3
  close: [];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/transport/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACnB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CACnD;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC;AAErD,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,EAAE,CAAC;IACV,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtB,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC5B,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,aAAa;IAC1B,KAAK,IAAI,IAAI,CAAC;IACd,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACzD,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IAC5D,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAC;IAClE,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACxD,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3D,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAC;IACjE,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,IAAI,IAAI,CAAC;CACtB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/transport/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC;AAErD,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,EAAE,CAAC;IACV,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtB,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC5B,IAAI,EAAE,EAAE,CAAC;CACZ;AAED,MAAM,WAAW,aAAa;IAC1B,KAAK,IAAI,IAAI,CAAC;IACd,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACzD,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IAC5D,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAC;IAClE,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACxD,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3D,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAC;IACjE,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,IAAI,IAAI,CAAC;CACtB"}
@@ -1,10 +1,11 @@
1
1
  /**
2
- * SDK-internal crypto types. These were moved from @vex-chat/types
2
+ * SDK-internal crypto types. These were moved from `@vex-chat/types`
3
3
  * because they are only used by the SDK, never by the server.
4
4
  *
5
- * The KeyPair shape matches tweetnacl's nacl.BoxKeyPair without
5
+ * The KeyPair shape matches tweetnacl's `nacl.BoxKeyPair` without
6
6
  * importing from tweetnacl — future WASM migration only changes this file.
7
7
  */
8
+ /** A NaCl box key pair (Curve25519 public + secret). */
8
9
  export interface KeyPair {
9
10
  publicKey: Uint8Array;
10
11
  secretKey: Uint8Array;
@@ -13,12 +14,14 @@ export interface KeyPair {
13
14
  export interface PreKeysCrypto extends UnsavedPreKey {
14
15
  index: number;
15
16
  }
17
+ /** In-memory representation of an encryption session (not yet persisted to SQL). */
16
18
  export interface SessionCrypto {
17
19
  fingerprint: Uint8Array;
18
20
  lastUsed: string;
19
21
  mode: "initiator" | "receiver";
20
22
  publicKey: Uint8Array;
21
23
  sessionID: string;
24
+ /** Shared secret key derived during X3DH. */
22
25
  SK: Uint8Array;
23
26
  userID: string;
24
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/types/crypto.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,OAAO;IACpB,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,UAAU,CAAC;CACzB;AAED,iEAAiE;AACjE,MAAM,WAAW,aAAc,SAAQ,aAAa;IAChD,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC1B,WAAW,EAAE,UAAU,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC;IAC/B,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,UAAU,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,+CAA+C;AAC/C,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,aAAa,CAAC;CAC1B"}
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/types/crypto.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,wDAAwD;AACxD,MAAM,WAAW,OAAO;IACpB,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,UAAU,CAAC;CACzB;AAED,iEAAiE;AACjE,MAAM,WAAW,aAAc,SAAQ,aAAa;IAChD,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,oFAAoF;AACpF,MAAM,WAAW,aAAa;IAC1B,WAAW,EAAE,UAAU,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC;IAC/B,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,EAAE,EAAE,UAAU,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,+CAA+C;AAC/C,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,aAAa,CAAC;CAC1B"}
@@ -1,8 +1,8 @@
1
1
  /**
2
- * SDK-internal crypto types. These were moved from @vex-chat/types
2
+ * SDK-internal crypto types. These were moved from `@vex-chat/types`
3
3
  * because they are only used by the SDK, never by the server.
4
4
  *
5
- * The KeyPair shape matches tweetnacl's nacl.BoxKeyPair without
5
+ * The KeyPair shape matches tweetnacl's `nacl.BoxKeyPair` without
6
6
  * importing from tweetnacl — future WASM migration only changes this file.
7
7
  */
8
8
  export {};
@@ -1,12 +1,17 @@
1
1
  /**
2
- * SDK credential storage types. Moved from @vex-chat/types
2
+ * SDK credential storage types. Moved from `@vex-chat/types`
3
3
  * because only the SDK and app consumers use them.
4
4
  */
5
+ /**
6
+ * Persistent credential store used by apps to save/load login state
7
+ * (e.g. Keychain on macOS, SecureStorage on mobile).
8
+ */
5
9
  export interface KeyStore {
6
10
  clear(username: string): Promise<void>;
7
11
  load(username?: string): Promise<null | StoredCredentials>;
8
12
  save(creds: StoredCredentials): Promise<void>;
9
13
  }
14
+ /** Credentials persisted between sessions for auto-login. */
10
15
  export interface StoredCredentials {
11
16
  deviceID: string;
12
17
  deviceKey: string;
@@ -1 +1 @@
1
- {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/types/identity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,QAAQ;IACrB,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,iBAAiB,CAAC,CAAC;IAC3D,IAAI,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/types/identity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACrB,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,iBAAiB,CAAC,CAAC;IAC3D,IAAI,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;AAED,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACpB"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * SDK credential storage types. Moved from @vex-chat/types
2
+ * SDK credential storage types. Moved from `@vex-chat/types`
3
3
  * because only the SDK and app consumers use them.
4
4
  */
5
5
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vex-chat/libvex",
3
- "version": "2.0.0",
3
+ "version": "4.0.0",
4
4
  "description": "Library for communicating with xchat server.",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -9,35 +9,43 @@
9
9
  "exports": {
10
10
  ".": {
11
11
  "types": "./dist/index.d.ts",
12
- "import": "./dist/index.js"
12
+ "import": "./dist/index.js",
13
+ "default": "./dist/index.js"
13
14
  },
14
15
  "./preset/node": {
15
16
  "types": "./dist/preset/node.d.ts",
16
- "import": "./dist/preset/node.js"
17
+ "import": "./dist/preset/node.js",
18
+ "default": "./dist/preset/node.js"
17
19
  },
18
20
  "./preset/test": {
19
21
  "types": "./dist/preset/test.d.ts",
20
- "import": "./dist/preset/test.js"
22
+ "import": "./dist/preset/test.js",
23
+ "default": "./dist/preset/test.js"
21
24
  },
22
25
  "./storage/node": {
23
26
  "types": "./dist/storage/node.d.ts",
24
- "import": "./dist/storage/node.js"
27
+ "import": "./dist/storage/node.js",
28
+ "default": "./dist/storage/node.js"
25
29
  },
26
30
  "./storage/sqlite": {
27
31
  "types": "./dist/storage/sqlite.d.ts",
28
- "import": "./dist/storage/sqlite.js"
32
+ "import": "./dist/storage/sqlite.js",
33
+ "default": "./dist/storage/sqlite.js"
29
34
  },
30
35
  "./storage/schema": {
31
36
  "types": "./dist/storage/schema.d.ts",
32
- "import": "./dist/storage/schema.js"
37
+ "import": "./dist/storage/schema.js",
38
+ "default": "./dist/storage/schema.js"
33
39
  },
34
40
  "./keystore/node": {
35
41
  "types": "./dist/keystore/node.d.ts",
36
- "import": "./dist/keystore/node.js"
42
+ "import": "./dist/keystore/node.js",
43
+ "default": "./dist/keystore/node.js"
37
44
  },
38
45
  "./keystore/memory": {
39
46
  "types": "./dist/keystore/memory.d.ts",
40
- "import": "./dist/keystore/memory.js"
47
+ "import": "./dist/keystore/memory.js",
48
+ "default": "./dist/keystore/memory.js"
41
49
  }
42
50
  },
43
51
  "files": [
@@ -60,6 +68,7 @@
60
68
  "lint": "eslint src/",
61
69
  "lint:fix": "eslint src/ --fix",
62
70
  "lint:pkg": "publint --strict",
71
+ "lint:pkgjson": "npx npm-package-json-lint .",
63
72
  "lint:types": "attw --pack . --ignore-rules cjs-resolves-to-esm no-resolution",
64
73
  "lint:api": "api-extractor run --local --verbose",
65
74
  "prepare": "husky",
@@ -76,7 +85,7 @@
76
85
  "@types/better-sqlite3": "7.6.13",
77
86
  "@types/ed2curve": "0.2.4",
78
87
  "@types/node": "24.12.2",
79
- "@types/uuid": "8.3.4",
88
+ "@types/uuid": "11.0.0",
80
89
  "@vitest/eslint-plugin": "1.6.15",
81
90
  "better-sqlite3": "11.10.0",
82
91
  "eslint": "10.2.0",
@@ -101,8 +110,7 @@
101
110
  "eventemitter3": "5.0.4",
102
111
  "kysely": "0.28.16",
103
112
  "msgpackr": "1.11.8",
104
- "uuid": "8.3.2",
105
- "winston": "3.19.0",
113
+ "uuid": "13.0.0",
106
114
  "zod": "4.3.6"
107
115
  },
108
116
  "peerDependencies": {