@vex-chat/libvex 1.1.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 (149) hide show
  1. package/README.md +104 -41
  2. package/dist/Client.d.ts +473 -560
  3. package/dist/Client.d.ts.map +1 -0
  4. package/dist/Client.js +1486 -1551
  5. package/dist/Client.js.map +1 -1
  6. package/dist/Storage.d.ts +111 -0
  7. package/dist/Storage.d.ts.map +1 -0
  8. package/dist/Storage.js +2 -0
  9. package/dist/Storage.js.map +1 -0
  10. package/dist/__tests__/harness/memory-storage.d.ts +29 -27
  11. package/dist/__tests__/harness/memory-storage.d.ts.map +1 -0
  12. package/dist/__tests__/harness/memory-storage.js +120 -109
  13. package/dist/__tests__/harness/memory-storage.js.map +1 -1
  14. package/dist/codec.d.ts +44 -0
  15. package/dist/codec.d.ts.map +1 -0
  16. package/dist/codec.js +51 -0
  17. package/dist/codec.js.map +1 -0
  18. package/dist/codecs.d.ts +201 -0
  19. package/dist/codecs.d.ts.map +1 -0
  20. package/dist/codecs.js +67 -0
  21. package/dist/codecs.js.map +1 -0
  22. package/dist/index.d.ts +6 -5
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +1 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/keystore/memory.d.ts +5 -4
  27. package/dist/keystore/memory.d.ts.map +1 -0
  28. package/dist/keystore/memory.js +9 -7
  29. package/dist/keystore/memory.js.map +1 -1
  30. package/dist/keystore/node.d.ts +8 -6
  31. package/dist/keystore/node.d.ts.map +1 -0
  32. package/dist/keystore/node.js +47 -22
  33. package/dist/keystore/node.js.map +1 -1
  34. package/dist/preset/common.d.ts +7 -0
  35. package/dist/preset/common.d.ts.map +1 -0
  36. package/dist/preset/common.js +2 -0
  37. package/dist/preset/common.js.map +1 -0
  38. package/dist/preset/node.d.ts +4 -7
  39. package/dist/preset/node.d.ts.map +1 -0
  40. package/dist/preset/node.js +4 -11
  41. package/dist/preset/node.js.map +1 -1
  42. package/dist/preset/test.d.ts +4 -5
  43. package/dist/preset/test.d.ts.map +1 -0
  44. package/dist/preset/test.js +3 -20
  45. package/dist/preset/test.js.map +1 -1
  46. package/dist/storage/node.d.ts +3 -3
  47. package/dist/storage/node.d.ts.map +1 -0
  48. package/dist/storage/node.js +4 -10
  49. package/dist/storage/node.js.map +1 -1
  50. package/dist/storage/schema.d.ts +55 -54
  51. package/dist/storage/schema.d.ts.map +1 -0
  52. package/dist/storage/sqlite.d.ts +41 -28
  53. package/dist/storage/sqlite.d.ts.map +1 -0
  54. package/dist/storage/sqlite.js +339 -297
  55. package/dist/storage/sqlite.js.map +1 -1
  56. package/dist/transport/types.d.ts +17 -16
  57. package/dist/transport/types.d.ts.map +1 -0
  58. package/dist/transport/websocket.d.ts +26 -0
  59. package/dist/transport/websocket.d.ts.map +1 -0
  60. package/dist/transport/websocket.js +83 -0
  61. package/dist/transport/websocket.js.map +1 -0
  62. package/dist/types/crypto.d.ts +38 -0
  63. package/dist/types/crypto.d.ts.map +1 -0
  64. package/dist/types/crypto.js +9 -0
  65. package/dist/types/crypto.js.map +1 -0
  66. package/dist/types/identity.d.ts +22 -0
  67. package/dist/types/identity.d.ts.map +1 -0
  68. package/dist/types/identity.js +6 -0
  69. package/dist/types/identity.js.map +1 -0
  70. package/dist/types/index.d.ts +3 -0
  71. package/dist/types/index.d.ts.map +1 -0
  72. package/dist/types/index.js +2 -0
  73. package/dist/types/index.js.map +1 -0
  74. package/dist/utils/capitalize.d.ts +1 -0
  75. package/dist/utils/capitalize.d.ts.map +1 -0
  76. package/dist/utils/formatBytes.d.ts +1 -0
  77. package/dist/utils/formatBytes.d.ts.map +1 -0
  78. package/dist/utils/formatBytes.js +3 -1
  79. package/dist/utils/formatBytes.js.map +1 -1
  80. package/dist/utils/sqlSessionToCrypto.d.ts +4 -2
  81. package/dist/utils/sqlSessionToCrypto.d.ts.map +1 -0
  82. package/dist/utils/sqlSessionToCrypto.js +5 -5
  83. package/dist/utils/sqlSessionToCrypto.js.map +1 -1
  84. package/dist/utils/uint8uuid.d.ts +1 -4
  85. package/dist/utils/uint8uuid.d.ts.map +1 -0
  86. package/dist/utils/uint8uuid.js +1 -7
  87. package/dist/utils/uint8uuid.js.map +1 -1
  88. package/package.json +74 -91
  89. package/src/Client.ts +3086 -0
  90. package/{dist/IStorage.d.ts → src/Storage.ts} +70 -62
  91. package/src/__tests__/codec.test.ts +256 -0
  92. package/src/__tests__/ghost.png +0 -0
  93. package/src/__tests__/harness/fixtures.ts +22 -0
  94. package/src/__tests__/harness/memory-storage.ts +254 -0
  95. package/src/__tests__/harness/platform-transports.ts +4 -0
  96. package/src/__tests__/harness/poison-node-imports.ts +107 -0
  97. package/src/__tests__/harness/shared-suite.ts +426 -0
  98. package/src/__tests__/platform-browser.test.ts +14 -0
  99. package/src/__tests__/platform-node.test.ts +9 -0
  100. package/src/__tests__/triggered.png +0 -0
  101. package/src/codec.ts +68 -0
  102. package/src/codecs.ts +101 -0
  103. package/src/index.ts +40 -0
  104. package/src/keystore/memory.ts +30 -0
  105. package/src/keystore/node.ts +102 -0
  106. package/src/preset/common.ts +7 -0
  107. package/src/preset/node.ts +18 -0
  108. package/src/preset/test.ts +20 -0
  109. package/src/storage/node.ts +22 -0
  110. package/src/storage/schema.ts +94 -0
  111. package/src/storage/sqlite.ts +655 -0
  112. package/src/transport/types.ts +22 -0
  113. package/src/transport/websocket.ts +106 -0
  114. package/src/types/crypto.ts +42 -0
  115. package/src/types/identity.ts +23 -0
  116. package/src/types/index.ts +9 -0
  117. package/src/utils/capitalize.ts +6 -0
  118. package/src/utils/formatBytes.ts +15 -0
  119. package/src/utils/sqlSessionToCrypto.ts +16 -0
  120. package/src/utils/uint8uuid.ts +7 -0
  121. package/dist/IStorage.js +0 -2
  122. package/dist/IStorage.js.map +0 -1
  123. package/dist/keystore/types.d.ts +0 -4
  124. package/dist/keystore/types.js +0 -2
  125. package/dist/keystore/types.js.map +0 -1
  126. package/dist/preset/expo.d.ts +0 -2
  127. package/dist/preset/expo.js +0 -39
  128. package/dist/preset/expo.js.map +0 -1
  129. package/dist/preset/tauri.d.ts +0 -2
  130. package/dist/preset/tauri.js +0 -36
  131. package/dist/preset/tauri.js.map +0 -1
  132. package/dist/preset/types.d.ts +0 -14
  133. package/dist/preset/types.js +0 -2
  134. package/dist/preset/types.js.map +0 -1
  135. package/dist/storage/expo.d.ts +0 -3
  136. package/dist/storage/expo.js +0 -18
  137. package/dist/storage/expo.js.map +0 -1
  138. package/dist/storage/tauri.d.ts +0 -3
  139. package/dist/storage/tauri.js +0 -21
  140. package/dist/storage/tauri.js.map +0 -1
  141. package/dist/transport/browser.d.ts +0 -17
  142. package/dist/transport/browser.js +0 -56
  143. package/dist/transport/browser.js.map +0 -1
  144. package/dist/utils/constants.d.ts +0 -8
  145. package/dist/utils/constants.js +0 -9
  146. package/dist/utils/constants.js.map +0 -1
  147. package/dist/utils/createLogger.d.ts +0 -5
  148. package/dist/utils/createLogger.js +0 -27
  149. package/dist/utils/createLogger.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vex-chat/libvex",
3
- "version": "1.1.0",
3
+ "version": "4.0.0",
4
4
  "description": "Library for communicating with xchat server.",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -9,140 +9,116 @@
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
- },
18
- "./preset/tauri": {
19
- "types": "./dist/preset/tauri.d.ts",
20
- "import": "./dist/preset/tauri.js"
21
- },
22
- "./preset/expo": {
23
- "types": "./dist/preset/expo.d.ts",
24
- "import": "./dist/preset/expo.js"
17
+ "import": "./dist/preset/node.js",
18
+ "default": "./dist/preset/node.js"
25
19
  },
26
20
  "./preset/test": {
27
21
  "types": "./dist/preset/test.d.ts",
28
- "import": "./dist/preset/test.js"
22
+ "import": "./dist/preset/test.js",
23
+ "default": "./dist/preset/test.js"
29
24
  },
30
25
  "./storage/node": {
31
26
  "types": "./dist/storage/node.d.ts",
32
- "import": "./dist/storage/node.js"
33
- },
34
- "./storage/tauri": {
35
- "types": "./dist/storage/tauri.d.ts",
36
- "import": "./dist/storage/tauri.js"
37
- },
38
- "./storage/expo": {
39
- "types": "./dist/storage/expo.d.ts",
40
- "import": "./dist/storage/expo.js"
27
+ "import": "./dist/storage/node.js",
28
+ "default": "./dist/storage/node.js"
41
29
  },
42
30
  "./storage/sqlite": {
43
31
  "types": "./dist/storage/sqlite.d.ts",
44
- "import": "./dist/storage/sqlite.js"
32
+ "import": "./dist/storage/sqlite.js",
33
+ "default": "./dist/storage/sqlite.js"
45
34
  },
46
35
  "./storage/schema": {
47
36
  "types": "./dist/storage/schema.d.ts",
48
- "import": "./dist/storage/schema.js"
37
+ "import": "./dist/storage/schema.js",
38
+ "default": "./dist/storage/schema.js"
49
39
  },
50
40
  "./keystore/node": {
51
41
  "types": "./dist/keystore/node.d.ts",
52
- "import": "./dist/keystore/node.js"
42
+ "import": "./dist/keystore/node.js",
43
+ "default": "./dist/keystore/node.js"
53
44
  },
54
45
  "./keystore/memory": {
55
46
  "types": "./dist/keystore/memory.d.ts",
56
- "import": "./dist/keystore/memory.js"
47
+ "import": "./dist/keystore/memory.js",
48
+ "default": "./dist/keystore/memory.js"
57
49
  }
58
50
  },
59
51
  "files": [
60
- "dist"
52
+ "dist",
53
+ "src",
54
+ "LICENSE"
61
55
  ],
62
56
  "author": "Extra <extrahash@protonmail.com>",
63
57
  "license": "AGPL-3.0-or-later",
64
58
  "engines": {
65
- "node": ">=24.0.0"
59
+ "node": ">=24.0.0",
60
+ "npm": ">=10.0.0"
66
61
  },
62
+ "packageManager": "npm@10.9.2",
67
63
  "scripts": {
68
- "build": "rimraf dist && tsc",
64
+ "preinstall": "npx only-allow npm",
65
+ "build": "rimraf dist && tsc -p tsconfig.build.json",
69
66
  "format": "prettier --write .",
70
67
  "format:check": "prettier --check .",
71
68
  "lint": "eslint src/",
72
69
  "lint:fix": "eslint src/ --fix",
70
+ "lint:pkg": "publint --strict",
71
+ "lint:pkgjson": "npx npm-package-json-lint .",
72
+ "lint:types": "attw --pack . --ignore-rules cjs-resolves-to-esm no-resolution",
73
+ "lint:api": "api-extractor run --local --verbose",
73
74
  "prepare": "husky",
74
75
  "prepack": "npm run build",
75
76
  "docs": "npx typedoc --options typedoc.json",
76
- "test": "vitest run --silent",
77
- "test:node": "vitest run -c vitest.config.node.ts",
78
- "test:browser": "vitest run -c vitest.config.browser.ts"
77
+ "test": "vitest run --project unit --silent",
78
+ "test:e2e": "vitest run --project node --project browser --silent",
79
+ "license:check": "npx @onebeyond/license-checker scan --allowOnly MIT ISC BSD-2-Clause BSD-3-Clause Apache-2.0 0BSD MPL-2.0 CC0-1.0 CC-BY-4.0 Unlicense BlueOak-1.0.0 Python-2.0 Zlib PSF-2.0 Artistic-2.0 AGPL-3.0-or-later WTFPL --ignoreRootPackageLicense --disableReport"
79
80
  },
80
81
  "devDependencies": {
81
- "@tauri-apps/plugin-sql": "^2.4.0",
82
- "@types/better-sqlite3": "^7.6.13",
83
- "@types/btoa": "^1.2.3",
84
- "@types/ed2curve": "^0.2.4",
85
- "@types/node": "^24.12.2",
86
- "@types/object-hash": "^1.3.4",
87
- "@types/uuid": "^8.3.0",
88
- "@types/ws": "^8.5.10",
89
- "@typescript-eslint/eslint-plugin": "^8.57.1",
90
- "@typescript-eslint/parser": "^8.57.1",
91
- "better-sqlite3": "^11.0.0",
92
- "dotenv": "^8.2.0",
93
- "eslint": "^10.1.0",
94
- "eslint-config-prettier": "^9.0.0",
95
- "expo-sqlite": "^14.0.6",
96
- "husky": "^9.1.7",
97
- "kysely-dialect-tauri": "^1.2.1",
98
- "lint-staged": "^16.3.2",
99
- "prettier": "^3.2.0",
100
- "rimraf": "^6.1.3",
101
- "typedoc": "^0.28.0",
102
- "typescript": "^6.0.2",
103
- "vitest": "^3.0.0"
104
- },
105
- "overrides": {
106
- "@types/ws": "^8.5.10"
82
+ "@arethetypeswrong/cli": "0.18.2",
83
+ "@changesets/cli": "2.30.0",
84
+ "@microsoft/api-extractor": "7.58.2",
85
+ "@types/better-sqlite3": "7.6.13",
86
+ "@types/ed2curve": "0.2.4",
87
+ "@types/node": "24.12.2",
88
+ "@types/uuid": "11.0.0",
89
+ "@vitest/eslint-plugin": "1.6.15",
90
+ "better-sqlite3": "11.10.0",
91
+ "eslint": "10.2.0",
92
+ "eslint-config-prettier": "10.1.8",
93
+ "eslint-plugin-perfectionist": "5.8.0",
94
+ "fast-check": "4.6.0",
95
+ "husky": "9.1.7",
96
+ "lint-staged": "16.4.0",
97
+ "prettier": "3.8.2",
98
+ "publint": "0.3.18",
99
+ "rimraf": "6.1.3",
100
+ "type-coverage": "2.29.7",
101
+ "typedoc": "0.28.18",
102
+ "typescript": "6.0.2",
103
+ "typescript-eslint": "8.58.1",
104
+ "vitest": "3.2.4"
107
105
  },
108
106
  "dependencies": {
109
- "@extrahash/sleep": "^1.0.0",
110
- "@vex-chat/crypto": "^1.1.1",
111
- "@vex-chat/types": "^1.0.1",
112
- "axios": "^1.7.0",
113
- "eventemitter3": "^5.0.4",
114
- "kysely": "^0.28.15",
107
+ "@vex-chat/crypto": "2.0.0",
108
+ "@vex-chat/types": "2.0.0",
109
+ "axios": "1.15.0",
110
+ "eventemitter3": "5.0.4",
111
+ "kysely": "0.28.16",
115
112
  "msgpackr": "1.11.8",
116
- "object-hash": "^2.1.1",
117
- "parse-duration": "^2.0.0",
118
- "picocolors": "^1.1.1",
119
- "tweetnacl": "^1.0.3",
120
- "uuid": "^8.3.1",
121
- "winston": "^3.3.3",
122
- "ws": "^8.17.0"
113
+ "uuid": "13.0.0",
114
+ "zod": "4.3.6"
123
115
  },
124
116
  "peerDependencies": {
125
- "@tauri-apps/plugin-sql": ">=2.0.0",
126
- "better-sqlite3": ">=11.0.0",
127
- "expo-sqlite": ">=14.0.0",
128
- "kysely-dialect-tauri": ">=1.2.0",
129
- "kysely-expo": ">=5.0.0"
117
+ "better-sqlite3": ">=11.0.0"
130
118
  },
131
119
  "peerDependenciesMeta": {
132
- "@tauri-apps/plugin-sql": {
133
- "optional": true
134
- },
135
120
  "better-sqlite3": {
136
121
  "optional": true
137
- },
138
- "expo-sqlite": {
139
- "optional": true
140
- },
141
- "kysely-dialect-tauri": {
142
- "optional": true
143
- },
144
- "kysely-expo": {
145
- "optional": true
146
122
  }
147
123
  },
148
124
  "directories": {
@@ -150,20 +126,27 @@
150
126
  },
151
127
  "repository": {
152
128
  "type": "git",
153
- "url": "git+https://github.com/vex-chat/vex-js.git"
129
+ "url": "git+https://github.com/vex-protocol/libvex-js.git"
154
130
  },
155
131
  "bugs": {
156
- "url": "https://github.com/vex-chat/vex-js/issues"
132
+ "url": "https://github.com/vex-protocol/libvex-js/issues"
157
133
  },
158
- "homepage": "https://github.com/vex-chat/vex-js#readme",
134
+ "homepage": "https://github.com/vex-protocol/libvex-js#readme",
159
135
  "publishConfig": {
160
136
  "access": "public",
161
137
  "registry": "https://registry.npmjs.org/"
162
138
  },
163
139
  "lint-staged": {
164
- "*.ts": [
140
+ "src/**/*.ts": [
165
141
  "eslint --fix",
166
142
  "prettier --write"
143
+ ],
144
+ "*.{json,md}": [
145
+ "prettier --write"
167
146
  ]
147
+ },
148
+ "typeCoverage": {
149
+ "atLeast": 95,
150
+ "ignoreCatch": true
168
151
  }
169
152
  }