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