tool-db 2.2.0 → 2.5.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 (507) hide show
  1. package/README.md +1 -201
  2. package/lib/adapters-base/networkAdapter.ts +215 -0
  3. package/lib/adapters-base/storageAdapter.ts +35 -0
  4. package/lib/adapters-base/userAdapter.ts +49 -0
  5. package/lib/crdt/baseCrdt.ts +21 -0
  6. package/lib/crdt/counterCrdt.ts +111 -0
  7. package/lib/crdt/listCrdt.ts +190 -0
  8. package/lib/crdt/mapCrdt.ts +119 -0
  9. package/{dist/index.d.ts → lib/index.ts} +16 -16
  10. package/lib/logger.ts +30 -0
  11. package/lib/messageHandlers/handleCrdtGet.ts +29 -0
  12. package/lib/messageHandlers/handleCrdtPut.ts +118 -0
  13. package/lib/messageHandlers/handleGet.ts +29 -0
  14. package/lib/messageHandlers/handlePing.ts +40 -0
  15. package/lib/messageHandlers/handlePong.ts +30 -0
  16. package/lib/messageHandlers/handlePut.ts +54 -0
  17. package/lib/messageHandlers/handleQuery.ts +25 -0
  18. package/lib/messageHandlers/handleSubscribe.ts +46 -0
  19. package/lib/server.ts +7 -0
  20. package/lib/shared.ts +5 -0
  21. package/lib/toolDbAnonSignIn.ts +5 -0
  22. package/lib/toolDbClientOnMessage.ts +75 -0
  23. package/lib/toolDbCrdtGet.ts +82 -0
  24. package/lib/toolDbCrdtPut.ts +77 -0
  25. package/lib/toolDbGet.ts +80 -0
  26. package/lib/toolDbKeysSignIn.ts +16 -0
  27. package/lib/toolDbPut.ts +83 -0
  28. package/lib/toolDbQueryKeys.ts +64 -0
  29. package/lib/toolDbSignIn.ts +31 -0
  30. package/lib/toolDbSignUp.ts +71 -0
  31. package/lib/toolDbSubscribe.ts +53 -0
  32. package/lib/toolDbVerificationWrapper.ts +55 -0
  33. package/lib/tooldb.ts +314 -0
  34. package/lib/types/message.ts +133 -0
  35. package/lib/types/tooldb.ts +89 -0
  36. package/lib/utils/catchReturn.ts +4 -0
  37. package/lib/utils/encoding/arrayBufferToHex.ts +18 -0
  38. package/lib/utils/encoding/arrayBufferToString.ts +8 -0
  39. package/lib/utils/encoding/hexToArrayBuffer.ts +13 -0
  40. package/lib/utils/encoding/hexToString.ts +8 -0
  41. package/lib/utils/encoding/hexToUint8.ts +5 -0
  42. package/lib/utils/encoding/stringToArrayBuffer.ts +8 -0
  43. package/lib/utils/getPeerSignature.ts +12 -0
  44. package/lib/utils/getTimestamp.ts +3 -0
  45. package/lib/utils/proofOfWork.ts +16 -0
  46. package/lib/utils/randomAnimal.ts +77 -0
  47. package/lib/utils/sha1.ts +7 -0
  48. package/lib/utils/sha256.ts +7 -0
  49. package/lib/utils/textRandom.ts +11 -0
  50. package/lib/utils/uniq.ts +3 -0
  51. package/lib/utils/verifyMessage.ts +88 -0
  52. package/lib/utils/verifyPeer.ts +15 -0
  53. package/package.json +31 -69
  54. package/tsconfig.json +10 -72
  55. package/.eslintrc.json +0 -74
  56. package/.github/workflows/main.yml +0 -29
  57. package/babel.config.js +0 -6
  58. package/bundle.js +0 -1
  59. package/custom-test-env.js +0 -28
  60. package/dist/__tests__ copy/base64.d.ts +0 -1
  61. package/dist/__tests__ copy/base64.js +0 -61
  62. package/dist/__tests__ copy/base64.js.map +0 -1
  63. package/dist/__tests__ copy/encryption.d.ts +0 -1
  64. package/dist/__tests__ copy/encryption.js +0 -68
  65. package/dist/__tests__ copy/encryption.js.map +0 -1
  66. package/dist/__tests__ copy/keys.d.ts +0 -1
  67. package/dist/__tests__ copy/keys.js +0 -238
  68. package/dist/__tests__ copy/keys.js.map +0 -1
  69. package/dist/__tests__ copy/network.d.ts +0 -1
  70. package/dist/__tests__ copy/network.js +0 -206
  71. package/dist/__tests__ copy/network.js.map +0 -1
  72. package/dist/__tests__ copy/pow.d.ts +0 -1
  73. package/dist/__tests__ copy/pow.js +0 -25
  74. package/dist/__tests__ copy/pow.js.map +0 -1
  75. package/dist/__tests__ copy/sha1.d.ts +0 -1
  76. package/dist/__tests__ copy/sha1.js +0 -16
  77. package/dist/__tests__ copy/sha1.js.map +0 -1
  78. package/dist/__tests__ copy/sha256.d.ts +0 -1
  79. package/dist/__tests__ copy/sha256.js +0 -16
  80. package/dist/__tests__ copy/sha256.js.map +0 -1
  81. package/dist/__tests__ copy/textRandom.d.ts +0 -1
  82. package/dist/__tests__ copy/textRandom.js +0 -17
  83. package/dist/__tests__ copy/textRandom.js.map +0 -1
  84. package/dist/bundle.js +0 -69086
  85. package/dist/chain/Block.d.ts +0 -29
  86. package/dist/chain/Block.js +0 -142
  87. package/dist/chain/Block.js.map +0 -1
  88. package/dist/chain/ToolChain.d.ts +0 -27
  89. package/dist/chain/ToolChain.js +0 -253
  90. package/dist/chain/ToolChain.js.map +0 -1
  91. package/dist/chain/Tx.d.ts +0 -50
  92. package/dist/chain/Tx.js +0 -54
  93. package/dist/chain/Tx.js.map +0 -1
  94. package/dist/chain/Wallet.d.ts +0 -9
  95. package/dist/chain/Wallet.js +0 -37
  96. package/dist/chain/Wallet.js.map +0 -1
  97. package/dist/chain/isValidChain.d.ts +0 -1
  98. package/dist/chain/isValidChain.js +0 -37
  99. package/dist/chain/isValidChain.js.map +0 -1
  100. package/dist/chain/mempool.d.ts +0 -0
  101. package/dist/chain/mempool.js +0 -2
  102. package/dist/chain/mempool.js.map +0 -1
  103. package/dist/crdt/baseCrdt.d.ts +0 -9
  104. package/dist/crdt/baseCrdt.js +0 -27
  105. package/dist/crdt/baseCrdt.js.map +0 -1
  106. package/dist/crdt/counterCrdt.d.ts +0 -30
  107. package/dist/crdt/counterCrdt.js +0 -124
  108. package/dist/crdt/counterCrdt.js.map +0 -1
  109. package/dist/crdt/listCrdt.d.ts +0 -42
  110. package/dist/crdt/listCrdt.js +0 -177
  111. package/dist/crdt/listCrdt.js.map +0 -1
  112. package/dist/crdt/mapCrdt.d.ts +0 -32
  113. package/dist/crdt/mapCrdt.js +0 -136
  114. package/dist/crdt/mapCrdt.js.map +0 -1
  115. package/dist/getCrypto.d.ts +0 -1
  116. package/dist/getCrypto.js +0 -10
  117. package/dist/getCrypto.js.map +0 -1
  118. package/dist/index.js +0 -99
  119. package/dist/index.js.map +0 -1
  120. package/dist/infuraFilecoin.d.ts +0 -0
  121. package/dist/infuraFilecoin.js +0 -2
  122. package/dist/infuraFilecoin.js.map +0 -1
  123. package/dist/loadCrdtDocument.d.ts +0 -3
  124. package/dist/loadCrdtDocument.js +0 -38
  125. package/dist/loadCrdtDocument.js.map +0 -1
  126. package/dist/makeTx.d.ts +0 -1
  127. package/dist/makeTx.js +0 -27
  128. package/dist/makeTx.js.map +0 -1
  129. package/dist/messageHandlers/handleCrdt.d.ts +0 -3
  130. package/dist/messageHandlers/handleCrdt.js +0 -11
  131. package/dist/messageHandlers/handleCrdt.js.map +0 -1
  132. package/dist/messageHandlers/handleCrdtGet.d.ts +0 -3
  133. package/dist/messageHandlers/handleCrdtGet.js +0 -32
  134. package/dist/messageHandlers/handleCrdtGet.js.map +0 -1
  135. package/dist/messageHandlers/handleCrdtPut.d.ts +0 -3
  136. package/dist/messageHandlers/handleCrdtPut.js +0 -88
  137. package/dist/messageHandlers/handleCrdtPut.js.map +0 -1
  138. package/dist/messageHandlers/handleGet.d.ts +0 -3
  139. package/dist/messageHandlers/handleGet.js +0 -31
  140. package/dist/messageHandlers/handleGet.js.map +0 -1
  141. package/dist/messageHandlers/handleJoin.d.ts +0 -3
  142. package/dist/messageHandlers/handleJoin.js +0 -36
  143. package/dist/messageHandlers/handleJoin.js.map +0 -1
  144. package/dist/messageHandlers/handlePing.d.ts +0 -3
  145. package/dist/messageHandlers/handlePing.js +0 -27
  146. package/dist/messageHandlers/handlePing.js.map +0 -1
  147. package/dist/messageHandlers/handlePong.d.ts +0 -3
  148. package/dist/messageHandlers/handlePong.js +0 -34
  149. package/dist/messageHandlers/handlePong.js.map +0 -1
  150. package/dist/messageHandlers/handlePut.d.ts +0 -3
  151. package/dist/messageHandlers/handlePut.js +0 -53
  152. package/dist/messageHandlers/handlePut.js.map +0 -1
  153. package/dist/messageHandlers/handleQuery.d.ts +0 -3
  154. package/dist/messageHandlers/handleQuery.js +0 -18
  155. package/dist/messageHandlers/handleQuery.js.map +0 -1
  156. package/dist/messageHandlers/handleServers.d.ts +0 -3
  157. package/dist/messageHandlers/handleServers.js +0 -23
  158. package/dist/messageHandlers/handleServers.js.map +0 -1
  159. package/dist/messageHandlers/handleSubscribe.d.ts +0 -3
  160. package/dist/messageHandlers/handleSubscribe.js +0 -43
  161. package/dist/messageHandlers/handleSubscribe.js.map +0 -1
  162. package/dist/server.d.ts +0 -1
  163. package/dist/server.js +0 -12
  164. package/dist/server.js.map +0 -1
  165. package/dist/shared.d.ts +0 -2
  166. package/dist/shared.js +0 -7
  167. package/dist/shared.js.map +0 -1
  168. package/dist/test.d.ts +0 -1
  169. package/dist/test.js +0 -17
  170. package/dist/test.js.map +0 -1
  171. package/dist/toolChainServer.d.ts +0 -8
  172. package/dist/toolChainServer.js +0 -60
  173. package/dist/toolChainServer.js.map +0 -1
  174. package/dist/toolDbAnonSignIn.d.ts +0 -2
  175. package/dist/toolDbAnonSignIn.js +0 -7
  176. package/dist/toolDbAnonSignIn.js.map +0 -1
  177. package/dist/toolDbClientOnMessage.d.ts +0 -3
  178. package/dist/toolDbClientOnMessage.js +0 -62
  179. package/dist/toolDbClientOnMessage.js.map +0 -1
  180. package/dist/toolDbCrdtGet.d.ts +0 -11
  181. package/dist/toolDbCrdtGet.js +0 -80
  182. package/dist/toolDbCrdtGet.js.map +0 -1
  183. package/dist/toolDbCrdtPut.d.ts +0 -11
  184. package/dist/toolDbCrdtPut.js +0 -68
  185. package/dist/toolDbCrdtPut.js.map +0 -1
  186. package/dist/toolDbGet.d.ts +0 -9
  187. package/dist/toolDbGet.js +0 -78
  188. package/dist/toolDbGet.js.map +0 -1
  189. package/dist/toolDbGetPubKey.d.ts +0 -2
  190. package/dist/toolDbGetPubKey.js +0 -18
  191. package/dist/toolDbGetPubKey.js.map +0 -1
  192. package/dist/toolDbKeysSignIn.d.ts +0 -2
  193. package/dist/toolDbKeysSignIn.js +0 -12
  194. package/dist/toolDbKeysSignIn.js.map +0 -1
  195. package/dist/toolDbNetwork.d.ts +0 -20
  196. package/dist/toolDbNetwork.js +0 -193
  197. package/dist/toolDbNetwork.js.map +0 -1
  198. package/dist/toolDbNetworkAdapter.d.ts +0 -57
  199. package/dist/toolDbNetworkAdapter.js +0 -192
  200. package/dist/toolDbNetworkAdapter.js.map +0 -1
  201. package/dist/toolDbPut.d.ts +0 -10
  202. package/dist/toolDbPut.js +0 -70
  203. package/dist/toolDbPut.js.map +0 -1
  204. package/dist/toolDbQueryKeys.d.ts +0 -8
  205. package/dist/toolDbQueryKeys.js +0 -69
  206. package/dist/toolDbQueryKeys.js.map +0 -1
  207. package/dist/toolDbSignIn.d.ts +0 -2
  208. package/dist/toolDbSignIn.js +0 -28
  209. package/dist/toolDbSignIn.js.map +0 -1
  210. package/dist/toolDbSignUp.d.ts +0 -3
  211. package/dist/toolDbSignUp.js +0 -97
  212. package/dist/toolDbSignUp.js.map +0 -1
  213. package/dist/toolDbSubscribe.d.ts +0 -8
  214. package/dist/toolDbSubscribe.js +0 -46
  215. package/dist/toolDbSubscribe.js.map +0 -1
  216. package/dist/toolDbVerificationWrapper.d.ts +0 -2
  217. package/dist/toolDbVerificationWrapper.js +0 -93
  218. package/dist/toolDbVerificationWrapper.js.map +0 -1
  219. package/dist/toolDbWeb3User.d.ts +0 -20
  220. package/dist/toolDbWeb3User.js +0 -75
  221. package/dist/toolDbWeb3User.js.map +0 -1
  222. package/dist/toolDbWebrtc.d.ts +0 -65
  223. package/dist/toolDbWebrtc.js +0 -489
  224. package/dist/toolDbWebrtc.js.map +0 -1
  225. package/dist/toolDbWebsocket.d.ts +0 -19
  226. package/dist/toolDbWebsocket.js +0 -193
  227. package/dist/toolDbWebsocket.js.map +0 -1
  228. package/dist/toolchain.d.ts +0 -1
  229. package/dist/toolchain.js +0 -8
  230. package/dist/toolchain.js.map +0 -1
  231. package/dist/tooldb.d.ts +0 -107
  232. package/dist/tooldb.js +0 -261
  233. package/dist/tooldb.js.map +0 -1
  234. package/dist/types/graph.d.ts +0 -0
  235. package/dist/types/graph.js +0 -2
  236. package/dist/types/graph.js.map +0 -1
  237. package/dist/types/message.d.ts +0 -106
  238. package/dist/types/message.js +0 -17
  239. package/dist/types/message.js.map +0 -1
  240. package/dist/types/tooldb.d.ts +0 -102
  241. package/dist/types/tooldb.js +0 -36
  242. package/dist/types/tooldb.js.map +0 -1
  243. package/dist/utils/arrayBufferToBase64.d.ts +0 -1
  244. package/dist/utils/arrayBufferToBase64.js +0 -12
  245. package/dist/utils/arrayBufferToBase64.js.map +0 -1
  246. package/dist/utils/arrayBufferToHex.d.ts +0 -1
  247. package/dist/utils/arrayBufferToHex.js +0 -19
  248. package/dist/utils/arrayBufferToHex.js.map +0 -1
  249. package/dist/utils/arrayBufferToString.d.ts +0 -1
  250. package/dist/utils/arrayBufferToString.js +0 -12
  251. package/dist/utils/arrayBufferToString.js.map +0 -1
  252. package/dist/utils/base64ToArrayBuffer.d.ts +0 -1
  253. package/dist/utils/base64ToArrayBuffer.js +0 -12
  254. package/dist/utils/base64ToArrayBuffer.js.map +0 -1
  255. package/dist/utils/base64ToBinaryChange.d.ts +0 -2
  256. package/dist/utils/base64ToBinaryChange.js +0 -18
  257. package/dist/utils/base64ToBinaryChange.js.map +0 -1
  258. package/dist/utils/base64ToBinaryDocument.d.ts +0 -2
  259. package/dist/utils/base64ToBinaryDocument.js +0 -18
  260. package/dist/utils/base64ToBinaryDocument.js.map +0 -1
  261. package/dist/utils/base64ToHex.d.ts +0 -1
  262. package/dist/utils/base64ToHex.js +0 -13
  263. package/dist/utils/base64ToHex.js.map +0 -1
  264. package/dist/utils/base64ToUint8.d.ts +0 -1
  265. package/dist/utils/base64ToUint8.js +0 -17
  266. package/dist/utils/base64ToUint8.js.map +0 -1
  267. package/dist/utils/catchReturn.d.ts +0 -1
  268. package/dist/utils/catchReturn.js +0 -8
  269. package/dist/utils/catchReturn.js.map +0 -1
  270. package/dist/utils/crypto/base64KeyToHex.d.ts +0 -1
  271. package/dist/utils/crypto/base64KeyToHex.js +0 -24
  272. package/dist/utils/crypto/base64KeyToHex.js.map +0 -1
  273. package/dist/utils/crypto/base64PublicKeyToHex.d.ts +0 -1
  274. package/dist/utils/crypto/base64PublicKeyToHex.js +0 -22
  275. package/dist/utils/crypto/base64PublicKeyToHex.js.map +0 -1
  276. package/dist/utils/crypto/decodeKeyString.d.ts +0 -1
  277. package/dist/utils/crypto/decodeKeyString.js +0 -12
  278. package/dist/utils/crypto/decodeKeyString.js.map +0 -1
  279. package/dist/utils/crypto/decryptData.d.ts +0 -1
  280. package/dist/utils/crypto/decryptData.js +0 -28
  281. package/dist/utils/crypto/decryptData.js.map +0 -1
  282. package/dist/utils/crypto/decryptWithPass.d.ts +0 -1
  283. package/dist/utils/crypto/decryptWithPass.js +0 -22
  284. package/dist/utils/crypto/decryptWithPass.js.map +0 -1
  285. package/dist/utils/crypto/deriveSecret.d.ts +0 -1
  286. package/dist/utils/crypto/deriveSecret.js +0 -18
  287. package/dist/utils/crypto/deriveSecret.js.map +0 -1
  288. package/dist/utils/crypto/encodeKeyString.d.ts +0 -1
  289. package/dist/utils/crypto/encodeKeyString.js +0 -12
  290. package/dist/utils/crypto/encodeKeyString.js.map +0 -1
  291. package/dist/utils/crypto/encryptData.d.ts +0 -1
  292. package/dist/utils/crypto/encryptData.js +0 -25
  293. package/dist/utils/crypto/encryptData.js.map +0 -1
  294. package/dist/utils/crypto/encryptWithPass.d.ts +0 -1
  295. package/dist/utils/crypto/encryptWithPass.js +0 -22
  296. package/dist/utils/crypto/encryptWithPass.js.map +0 -1
  297. package/dist/utils/crypto/exportKey.d.ts +0 -1
  298. package/dist/utils/crypto/exportKey.js +0 -14
  299. package/dist/utils/crypto/exportKey.js.map +0 -1
  300. package/dist/utils/crypto/exportKeyAsHex.d.ts +0 -1
  301. package/dist/utils/crypto/exportKeyAsHex.js +0 -18
  302. package/dist/utils/crypto/exportKeyAsHex.js.map +0 -1
  303. package/dist/utils/crypto/generateKeyFromPassword.d.ts +0 -1
  304. package/dist/utils/crypto/generateKeyFromPassword.js +0 -25
  305. package/dist/utils/crypto/generateKeyFromPassword.js.map +0 -1
  306. package/dist/utils/crypto/generateKeyPair.d.ts +0 -1
  307. package/dist/utils/crypto/generateKeyPair.js +0 -17
  308. package/dist/utils/crypto/generateKeyPair.js.map +0 -1
  309. package/dist/utils/crypto/generateKeysComb.d.ts +0 -4
  310. package/dist/utils/crypto/generateKeysComb.js +0 -60
  311. package/dist/utils/crypto/generateKeysComb.js.map +0 -1
  312. package/dist/utils/crypto/importKey.d.ts +0 -1
  313. package/dist/utils/crypto/importKey.js +0 -23
  314. package/dist/utils/crypto/importKey.js.map +0 -1
  315. package/dist/utils/crypto/loadKeysComb.d.ts +0 -5
  316. package/dist/utils/crypto/loadKeysComb.js +0 -90
  317. package/dist/utils/crypto/loadKeysComb.js.map +0 -1
  318. package/dist/utils/crypto/loadSignKeys.d.ts +0 -2
  319. package/dist/utils/crypto/loadSignKeys.js +0 -78
  320. package/dist/utils/crypto/loadSignKeys.js.map +0 -1
  321. package/dist/utils/crypto/recoverPubKey.d.ts +0 -1
  322. package/dist/utils/crypto/recoverPubKey.js +0 -33
  323. package/dist/utils/crypto/recoverPubKey.js.map +0 -1
  324. package/dist/utils/crypto/recoverPubKeyFromPrivate.d.ts +0 -1
  325. package/dist/utils/crypto/recoverPubKeyFromPrivate.js +0 -16
  326. package/dist/utils/crypto/recoverPubKeyFromPrivate.js.map +0 -1
  327. package/dist/utils/crypto/saveKeysComb.d.ts +0 -2
  328. package/dist/utils/crypto/saveKeysComb.js +0 -75
  329. package/dist/utils/crypto/saveKeysComb.js.map +0 -1
  330. package/dist/utils/crypto/saveSignKeys.d.ts +0 -2
  331. package/dist/utils/crypto/saveSignKeys.js +0 -67
  332. package/dist/utils/crypto/saveSignKeys.js.map +0 -1
  333. package/dist/utils/crypto/verifyData.d.ts +0 -1
  334. package/dist/utils/crypto/verifyData.js +0 -20
  335. package/dist/utils/crypto/verifyData.js.map +0 -1
  336. package/dist/utils/encoding/arrayBufferToBase64.d.ts +0 -1
  337. package/dist/utils/encoding/arrayBufferToBase64.js +0 -12
  338. package/dist/utils/encoding/arrayBufferToBase64.js.map +0 -1
  339. package/dist/utils/encoding/arrayBufferToHex.d.ts +0 -1
  340. package/dist/utils/encoding/arrayBufferToHex.js +0 -19
  341. package/dist/utils/encoding/arrayBufferToHex.js.map +0 -1
  342. package/dist/utils/encoding/arrayBufferToString.d.ts +0 -1
  343. package/dist/utils/encoding/arrayBufferToString.js +0 -12
  344. package/dist/utils/encoding/arrayBufferToString.js.map +0 -1
  345. package/dist/utils/encoding/base64ToArrayBuffer.d.ts +0 -1
  346. package/dist/utils/encoding/base64ToArrayBuffer.js +0 -12
  347. package/dist/utils/encoding/base64ToArrayBuffer.js.map +0 -1
  348. package/dist/utils/encoding/base64ToBinaryChange.d.ts +0 -2
  349. package/dist/utils/encoding/base64ToBinaryChange.js +0 -18
  350. package/dist/utils/encoding/base64ToBinaryChange.js.map +0 -1
  351. package/dist/utils/encoding/base64ToBinaryDocument.d.ts +0 -2
  352. package/dist/utils/encoding/base64ToBinaryDocument.js +0 -18
  353. package/dist/utils/encoding/base64ToBinaryDocument.js.map +0 -1
  354. package/dist/utils/encoding/base64ToHex.d.ts +0 -1
  355. package/dist/utils/encoding/base64ToHex.js +0 -13
  356. package/dist/utils/encoding/base64ToHex.js.map +0 -1
  357. package/dist/utils/encoding/base64ToUint8.d.ts +0 -1
  358. package/dist/utils/encoding/base64ToUint8.js +0 -17
  359. package/dist/utils/encoding/base64ToUint8.js.map +0 -1
  360. package/dist/utils/encoding/fromBase64.d.ts +0 -1
  361. package/dist/utils/encoding/fromBase64.js +0 -7
  362. package/dist/utils/encoding/fromBase64.js.map +0 -1
  363. package/dist/utils/encoding/hexToArrayBuffer.d.ts +0 -1
  364. package/dist/utils/encoding/hexToArrayBuffer.js +0 -15
  365. package/dist/utils/encoding/hexToArrayBuffer.js.map +0 -1
  366. package/dist/utils/encoding/hexToBase64.d.ts +0 -1
  367. package/dist/utils/encoding/hexToBase64.js +0 -12
  368. package/dist/utils/encoding/hexToBase64.js.map +0 -1
  369. package/dist/utils/encoding/hexToString.d.ts +0 -1
  370. package/dist/utils/encoding/hexToString.js +0 -12
  371. package/dist/utils/encoding/hexToString.js.map +0 -1
  372. package/dist/utils/encoding/hexToUint8.d.ts +0 -1
  373. package/dist/utils/encoding/hexToUint8.js +0 -11
  374. package/dist/utils/encoding/hexToUint8.js.map +0 -1
  375. package/dist/utils/encoding/stringToArrayBuffer.d.ts +0 -1
  376. package/dist/utils/encoding/stringToArrayBuffer.js +0 -12
  377. package/dist/utils/encoding/stringToArrayBuffer.js.map +0 -1
  378. package/dist/utils/encoding/toBase64.d.ts +0 -1
  379. package/dist/utils/encoding/toBase64.js +0 -7
  380. package/dist/utils/encoding/toBase64.js.map +0 -1
  381. package/dist/utils/encoding/uint8ArrayToHex.d.ts +0 -1
  382. package/dist/utils/encoding/uint8ArrayToHex.js +0 -7
  383. package/dist/utils/encoding/uint8ArrayToHex.js.map +0 -1
  384. package/dist/utils/encoding/uint8ToBase64.d.ts +0 -1
  385. package/dist/utils/encoding/uint8ToBase64.js +0 -15
  386. package/dist/utils/encoding/uint8ToBase64.js.map +0 -1
  387. package/dist/utils/fromBase64.d.ts +0 -1
  388. package/dist/utils/fromBase64.js +0 -7
  389. package/dist/utils/fromBase64.js.map +0 -1
  390. package/dist/utils/generateIv.d.ts +0 -1
  391. package/dist/utils/generateIv.js +0 -12
  392. package/dist/utils/generateIv.js.map +0 -1
  393. package/dist/utils/getPeerSignature.d.ts +0 -2
  394. package/dist/utils/getPeerSignature.js +0 -12
  395. package/dist/utils/getPeerSignature.js.map +0 -1
  396. package/dist/utils/getTimestamp.d.ts +0 -1
  397. package/dist/utils/getTimestamp.js +0 -7
  398. package/dist/utils/getTimestamp.js.map +0 -1
  399. package/dist/utils/hexToArrayBuffer.d.ts +0 -1
  400. package/dist/utils/hexToArrayBuffer.js +0 -15
  401. package/dist/utils/hexToArrayBuffer.js.map +0 -1
  402. package/dist/utils/hexToBase64.d.ts +0 -1
  403. package/dist/utils/hexToBase64.js +0 -12
  404. package/dist/utils/hexToBase64.js.map +0 -1
  405. package/dist/utils/hexToString.d.ts +0 -1
  406. package/dist/utils/hexToString.js +0 -12
  407. package/dist/utils/hexToString.js.map +0 -1
  408. package/dist/utils/hexToUint8.d.ts +0 -1
  409. package/dist/utils/hexToUint8.js +0 -8
  410. package/dist/utils/hexToUint8.js.map +0 -1
  411. package/dist/utils/indexedb.d.ts +0 -2
  412. package/dist/utils/indexedb.js +0 -116
  413. package/dist/utils/indexedb.js.map +0 -1
  414. package/dist/utils/leveldb.d.ts +0 -2
  415. package/dist/utils/leveldb.js +0 -85
  416. package/dist/utils/leveldb.js.map +0 -1
  417. package/dist/utils/proofOfWork.d.ts +0 -4
  418. package/dist/utils/proofOfWork.js +0 -19
  419. package/dist/utils/proofOfWork.js.map +0 -1
  420. package/dist/utils/randomAnimal.d.ts +0 -1
  421. package/dist/utils/randomAnimal.js +0 -77
  422. package/dist/utils/randomAnimal.js.map +0 -1
  423. package/dist/utils/sha1.d.ts +0 -1
  424. package/dist/utils/sha1.js +0 -13
  425. package/dist/utils/sha1.js.map +0 -1
  426. package/dist/utils/sha256.d.ts +0 -3
  427. package/dist/utils/sha256.js +0 -13
  428. package/dist/utils/sha256.js.map +0 -1
  429. package/dist/utils/signData.d.ts +0 -1
  430. package/dist/utils/signData.js +0 -19
  431. package/dist/utils/signData.js.map +0 -1
  432. package/dist/utils/stringToArrayBuffer.d.ts +0 -1
  433. package/dist/utils/stringToArrayBuffer.js +0 -12
  434. package/dist/utils/stringToArrayBuffer.js.map +0 -1
  435. package/dist/utils/textRandom.d.ts +0 -1
  436. package/dist/utils/textRandom.js +0 -15
  437. package/dist/utils/textRandom.js.map +0 -1
  438. package/dist/utils/toBase64.d.ts +0 -1
  439. package/dist/utils/toBase64.js +0 -7
  440. package/dist/utils/toBase64.js.map +0 -1
  441. package/dist/utils/uint8ArrayToHex.d.ts +0 -2
  442. package/dist/utils/uint8ArrayToHex.js +0 -7
  443. package/dist/utils/uint8ArrayToHex.js.map +0 -1
  444. package/dist/utils/uint8ToBase64.d.ts +0 -2
  445. package/dist/utils/uint8ToBase64.js +0 -15
  446. package/dist/utils/uint8ToBase64.js.map +0 -1
  447. package/dist/utils/verifyMessage.d.ts +0 -9
  448. package/dist/utils/verifyMessage.js +0 -129
  449. package/dist/utils/verifyMessage.js.map +0 -1
  450. package/dist/utils/verifyPeer.d.ts +0 -3
  451. package/dist/utils/verifyPeer.js +0 -18
  452. package/dist/utils/verifyPeer.js.map +0 -1
  453. package/jest.config.ts +0 -195
  454. package/jest.setup.js +0 -0
  455. package/test-alice/000663.ldb +0 -0
  456. package/test-alice/000665.ldb +0 -0
  457. package/test-alice/000668.ldb +0 -0
  458. package/test-alice/000669.log +0 -0
  459. package/test-alice/CURRENT +0 -1
  460. package/test-alice/LOCK +0 -0
  461. package/test-alice/LOG +0 -5
  462. package/test-alice/LOG.old +0 -5
  463. package/test-alice/MANIFEST-000667 +0 -0
  464. package/test-alice-speed/000035.log +0 -0
  465. package/test-alice-speed/000036.ldb +0 -0
  466. package/test-alice-speed/CURRENT +0 -1
  467. package/test-alice-speed/LOCK +0 -0
  468. package/test-alice-speed/LOG +0 -13
  469. package/test-alice-speed/LOG.old +0 -5
  470. package/test-alice-speed/MANIFEST-000033 +0 -0
  471. package/test-bob/000665.ldb +0 -0
  472. package/test-bob/000667.ldb +0 -0
  473. package/test-bob/000668.log +0 -0
  474. package/test-bob/CURRENT +0 -1
  475. package/test-bob/LOCK +0 -0
  476. package/test-bob/LOG +0 -5
  477. package/test-bob/LOG.old +0 -14
  478. package/test-bob/MANIFEST-000666 +0 -0
  479. package/test-node-a/000663.ldb +0 -0
  480. package/test-node-a/000665.ldb +0 -0
  481. package/test-node-a/000668.ldb +0 -0
  482. package/test-node-a/000669.log +0 -0
  483. package/test-node-a/CURRENT +0 -1
  484. package/test-node-a/LOCK +0 -0
  485. package/test-node-a/LOG +0 -5
  486. package/test-node-a/LOG.old +0 -5
  487. package/test-node-a/MANIFEST-000667 +0 -0
  488. package/test-node-b/000663.ldb +0 -0
  489. package/test-node-b/000665.ldb +0 -0
  490. package/test-node-b/000668.ldb +0 -0
  491. package/test-node-b/000669.log +0 -0
  492. package/test-node-b/CURRENT +0 -1
  493. package/test-node-b/LOCK +0 -0
  494. package/test-node-b/LOG +0 -5
  495. package/test-node-b/LOG.old +0 -5
  496. package/test-node-b/MANIFEST-000667 +0 -0
  497. package/test-verify-a/000026.ldb +0 -0
  498. package/test-verify-a/000029.ldb +0 -0
  499. package/test-verify-a/000031.ldb +0 -0
  500. package/test-verify-a/000033.ldb +0 -0
  501. package/test-verify-a/000250.log +0 -0
  502. package/test-verify-a/CURRENT +0 -1
  503. package/test-verify-a/LOCK +0 -0
  504. package/test-verify-a/LOG +0 -3
  505. package/test-verify-a/LOG.old +0 -3
  506. package/test-verify-a/MANIFEST-000249 +0 -0
  507. package/toolDbLibP2p.ts +0 -206
@@ -1,37 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- var Block_1 = __importStar(require("./Block"));
23
- function isValidChain(chain) {
24
- if ((0, Block_1.decodeBlock)(chain[0]).height !== 0)
25
- return false;
26
- for (var i = 1; i < chain.length; i++) {
27
- var block = (0, Block_1.decodeBlock)(chain[i]);
28
- var lastBlock = (0, Block_1.decodeBlock)(chain[i - 1]);
29
- if (block.lastHash !== lastBlock.hash ||
30
- block.hash !== Block_1.default.blockHash(block)) {
31
- return false;
32
- }
33
- }
34
- return true;
35
- }
36
- exports.default = isValidChain;
37
- //# sourceMappingURL=isValidChain.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isValidChain.js","sourceRoot":"","sources":["../../src/chain/isValidChain.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,+CAA6C;AAE7C,SAAwB,YAAY,CAAC,KAAe;IAClD,IAAI,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAErD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,IAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAM,SAAS,GAAG,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAE5C,IACE,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI;YACjC,KAAK,CAAC,IAAI,KAAK,eAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EACrC;YACA,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAhBD,+BAgBC"}
File without changes
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=mempool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mempool.js","sourceRoot":"","sources":["../../src/chain/mempool.ts"],"names":[],"mappings":""}
@@ -1,9 +0,0 @@
1
- export declare const CRDT_MAP = "MAP";
2
- export declare const CRDT_LIST = "LIST";
3
- export declare const CRDT_COUNTER = "COUNTER";
4
- export default class BaseCrdt<T = any, Changes = any, Value = any> {
5
- type: string;
6
- mergeChanges(changes: Changes[]): void;
7
- getChanges(): Changes[];
8
- get value(): Value;
9
- }
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CRDT_COUNTER = exports.CRDT_LIST = exports.CRDT_MAP = void 0;
4
- exports.CRDT_MAP = "MAP";
5
- exports.CRDT_LIST = "LIST";
6
- exports.CRDT_COUNTER = "COUNTER";
7
- var BaseCrdt = /** @class */ (function () {
8
- function BaseCrdt() {
9
- this.type = "";
10
- }
11
- BaseCrdt.prototype.mergeChanges = function (changes) {
12
- //
13
- };
14
- BaseCrdt.prototype.getChanges = function () {
15
- return [];
16
- };
17
- Object.defineProperty(BaseCrdt.prototype, "value", {
18
- get: function () {
19
- return "";
20
- },
21
- enumerable: false,
22
- configurable: true
23
- });
24
- return BaseCrdt;
25
- }());
26
- exports.default = BaseCrdt;
27
- //# sourceMappingURL=baseCrdt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"baseCrdt.js","sourceRoot":"","sources":["../../src/crdt/baseCrdt.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG,KAAK,CAAC;AAEjB,QAAA,SAAS,GAAG,MAAM,CAAC;AAEnB,QAAA,YAAY,GAAG,SAAS,CAAC;AAEtC;IAAA;QACS,SAAI,GAAW,EAAE,CAAC;IAa3B,CAAC;IAXQ,+BAAY,GAAnB,UAAoB,OAAkB;QACpC,EAAE;IACJ,CAAC;IAEM,6BAAU,GAAjB;QACE,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,sBAAI,2BAAK;aAAT;YACE,OAAO,EAAS,CAAC;QACnB,CAAC;;;OAAA;IACH,eAAC;AAAD,CAAC,AAdD,IAcC"}
@@ -1,30 +0,0 @@
1
- import BaseCrdt from "./baseCrdt";
2
- export declare type CounterOperations = "ADD" | "SUB";
3
- export interface ChangeCounterBase {
4
- t: CounterOperations;
5
- v: number;
6
- a: string;
7
- i: number;
8
- }
9
- export interface AddCounterChange extends ChangeCounterBase {
10
- t: "ADD";
11
- }
12
- export interface SubCounterChange extends ChangeCounterBase {
13
- t: "SUB";
14
- }
15
- export declare type CounterChanges = AddCounterChange | SubCounterChange;
16
- export default class CounterCrdt<T> extends BaseCrdt<number, CounterChanges, number> {
17
- type: string;
18
- _changes: CounterChanges[];
19
- private _author;
20
- private _value;
21
- private _lastUpdateSize;
22
- constructor(author: string, changes?: CounterChanges[]);
23
- changesSort(a: CounterChanges, b: CounterChanges): 0 | 1 | -1;
24
- calculate(): void;
25
- get value(): number;
26
- mergeChanges(newChanges: CounterChanges[]): void;
27
- getChanges(): CounterChanges[];
28
- ADD(value: number): void;
29
- SUB(value: number): void;
30
- }
@@ -1,124 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
- if (k2 === undefined) k2 = k;
19
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
- Object.defineProperty(exports, "__esModule", { value: true });
37
- var baseCrdt_1 = __importStar(require("./baseCrdt"));
38
- var CounterCrdt = /** @class */ (function (_super) {
39
- __extends(CounterCrdt, _super);
40
- function CounterCrdt(author, changes) {
41
- var _this = _super.call(this) || this;
42
- _this.type = baseCrdt_1.CRDT_LIST;
43
- _this._changes = [];
44
- _this._author = "";
45
- _this._value = 0;
46
- _this._lastUpdateSize = 0;
47
- _this._author = author;
48
- if (changes) {
49
- _this.mergeChanges(changes);
50
- }
51
- _this.calculate();
52
- return _this;
53
- }
54
- CounterCrdt.prototype.changesSort = function (a, b) {
55
- if (a.i > b.i)
56
- return 1;
57
- if (a.i < b.i)
58
- return -1;
59
- return 0; // Should never be equal!
60
- };
61
- CounterCrdt.prototype.calculate = function () {
62
- var temp = 0;
63
- // Only update if we have new changes
64
- if (Object.values(this._changes).length !== this._lastUpdateSize) {
65
- this._changes.sort(this.changesSort).forEach(function (change) {
66
- if (change.t === "ADD") {
67
- temp += change.v;
68
- }
69
- else if (change.t === "SUB") {
70
- temp -= change.v;
71
- }
72
- });
73
- this._value = temp;
74
- }
75
- };
76
- Object.defineProperty(CounterCrdt.prototype, "value", {
77
- get: function () {
78
- this.calculate();
79
- return this._value;
80
- },
81
- enumerable: false,
82
- configurable: true
83
- });
84
- CounterCrdt.prototype.mergeChanges = function (newChanges) {
85
- var _this = this;
86
- newChanges.forEach(function (change) {
87
- // Filter by author and index
88
- var filtered = _this._changes.filter(function (c) { return c.i === change.i && c.a === change.a && c.t === change.t; });
89
- // Only add if there are not matches
90
- if (filtered.length === 0) {
91
- _this._changes.push(change);
92
- }
93
- });
94
- this.calculate();
95
- };
96
- CounterCrdt.prototype.getChanges = function () {
97
- return this._changes;
98
- };
99
- CounterCrdt.prototype.ADD = function (value) {
100
- var _this = this;
101
- var ourChanges = this._changes.filter(function (c) { return c.a === _this._author; });
102
- this._changes.push({
103
- t: "ADD",
104
- v: value,
105
- a: this._author,
106
- i: ourChanges.length,
107
- });
108
- this.calculate();
109
- };
110
- CounterCrdt.prototype.SUB = function (value) {
111
- var _this = this;
112
- var ourChanges = this._changes.filter(function (c) { return c.a === _this._author; });
113
- this._changes.push({
114
- t: "SUB",
115
- v: value,
116
- a: this._author,
117
- i: ourChanges.length,
118
- });
119
- this.calculate();
120
- };
121
- return CounterCrdt;
122
- }(baseCrdt_1.default));
123
- exports.default = CounterCrdt;
124
- //# sourceMappingURL=counterCrdt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"counterCrdt.js","sourceRoot":"","sources":["../../src/crdt/counterCrdt.ts"],"names":[],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- import BaseCrdt from "./baseCrdt";
2
- export declare type ListOperations = "INS" | "DEL";
3
- export interface ChangeListBase<T> {
4
- t: ListOperations;
5
- i: string;
6
- }
7
- export interface InsListChange<T> extends ChangeListBase<T> {
8
- t: "INS";
9
- v: T;
10
- p: string | undefined;
11
- n: string | undefined;
12
- }
13
- export interface DelListChange<T> extends ChangeListBase<T> {
14
- t: "DEL";
15
- v: string;
16
- }
17
- export declare type ListChanges<T> = InsListChange<T> | DelListChange<T>;
18
- interface ListTempCursor<T> {
19
- value: T;
20
- index: string;
21
- tomb: boolean;
22
- prev: string | undefined;
23
- next: string | undefined;
24
- }
25
- export default class ListCrdt<T> extends BaseCrdt<T, ListChanges<T>, T[]> {
26
- type: string;
27
- _changes: ListChanges<T>[];
28
- private _author;
29
- private _value;
30
- _tempValues: ListTempCursor<T>[];
31
- private _lastUpdateSize;
32
- constructor(author: string, changes?: ListChanges<T>[]);
33
- changesSort(a: ListChanges<T>, b: ListChanges<T>): 0 | 1 | -1;
34
- calculate(): void;
35
- get value(): T[];
36
- mergeChanges(newChanges: ListChanges<T>[]): void;
37
- getChanges(): ListChanges<T>[];
38
- INS(value: T, index: number): void;
39
- PUSH(value: T): void;
40
- DEL(index: number): void;
41
- }
42
- export {};
@@ -1,177 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
- if (k2 === undefined) k2 = k;
19
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
- Object.defineProperty(exports, "__esModule", { value: true });
37
- var baseCrdt_1 = __importStar(require("./baseCrdt"));
38
- var ListCrdt = /** @class */ (function (_super) {
39
- __extends(ListCrdt, _super);
40
- function ListCrdt(author, changes) {
41
- var _this = _super.call(this) || this;
42
- _this.type = baseCrdt_1.CRDT_LIST;
43
- _this._changes = [];
44
- _this._author = "";
45
- _this._value = [];
46
- _this._tempValues = [];
47
- _this._lastUpdateSize = 0;
48
- _this._author = author;
49
- if (changes) {
50
- _this.mergeChanges(changes);
51
- }
52
- _this.calculate();
53
- return _this;
54
- }
55
- ListCrdt.prototype.changesSort = function (a, b) {
56
- if (a.i > b.i)
57
- return 1;
58
- if (a.i < b.i)
59
- return -1;
60
- return 0; // Should never be equal!
61
- };
62
- ListCrdt.prototype.calculate = function () {
63
- var temp = [];
64
- // Only update if we have new changes
65
- if (Object.values(this._changes).length !== this._lastUpdateSize) {
66
- this._changes.sort(this.changesSort).forEach(function (change) {
67
- if (change.t === "INS") {
68
- var poisitionToInsert = 0;
69
- if (change.p) {
70
- poisitionToInsert = temp.findIndex(function (v) { return v.index === change.p; }) + 1;
71
- }
72
- else if (change.n) {
73
- poisitionToInsert = temp.findIndex(function (v) { return v.index === change.n; });
74
- }
75
- var cursorValue = {
76
- value: change.v,
77
- index: change.i,
78
- tomb: false,
79
- prev: change.p,
80
- next: change.n,
81
- };
82
- temp.splice(poisitionToInsert, 0, cursorValue);
83
- }
84
- else if (change.t === "DEL") {
85
- var poisitionToInsert = temp.findIndex(function (v) { return v.index === change.v; });
86
- temp[poisitionToInsert].tomb = true;
87
- }
88
- });
89
- this._lastUpdateSize = Object.values(temp).length;
90
- this._tempValues = temp;
91
- this._value = temp.filter(function (v) { return !v.tomb; }).map(function (v) { return v.value; });
92
- }
93
- };
94
- Object.defineProperty(ListCrdt.prototype, "value", {
95
- get: function () {
96
- this.calculate();
97
- return this._value;
98
- },
99
- enumerable: false,
100
- configurable: true
101
- });
102
- ListCrdt.prototype.mergeChanges = function (newChanges) {
103
- var _this = this;
104
- newChanges.forEach(function (change) {
105
- // Filter by author and index
106
- var filtered = _this._changes.filter(function (c) { return c.i === change.i && c.t === change.t && c.v === change.v; });
107
- // Only add if there are not matches
108
- if (filtered.length === 0) {
109
- _this._changes.push(change);
110
- }
111
- });
112
- this.calculate();
113
- };
114
- ListCrdt.prototype.getChanges = function () {
115
- return this._changes;
116
- };
117
- ListCrdt.prototype.INS = function (value, index) {
118
- var _this = this;
119
- var filterTombs = this._tempValues.filter(function (v) { return !v.tomb; });
120
- var currentPrev = undefined;
121
- var currentNext = undefined;
122
- if (filterTombs.length !== 0) {
123
- var currentIndex_1 = filterTombs[index].index;
124
- var currentIndexPosition = this._tempValues.findIndex(function (v) { return v.index === currentIndex_1; });
125
- currentPrev = this._tempValues[currentIndexPosition - 1];
126
- currentNext = this._tempValues[currentIndexPosition];
127
- }
128
- var ourChanges = this._changes.filter(function (c) {
129
- return c.i.startsWith(_this._author);
130
- });
131
- this._changes.push({
132
- t: "INS",
133
- p: currentPrev === null || currentPrev === void 0 ? void 0 : currentPrev.index,
134
- n: currentNext === null || currentNext === void 0 ? void 0 : currentNext.index,
135
- v: value,
136
- i: this._author + "-" + ("" + ourChanges.length).padStart(8, "0"),
137
- });
138
- this.calculate();
139
- };
140
- ListCrdt.prototype.PUSH = function (value) {
141
- var _this = this;
142
- var _a;
143
- var filterTombs = this._tempValues.filter(function (v) { return !v.tomb; });
144
- var currentIndex = (_a = filterTombs[filterTombs.length - 1]) === null || _a === void 0 ? void 0 : _a.index;
145
- var currentIndexPosition = this._tempValues.findIndex(function (v) { return v.index === currentIndex; });
146
- var currentPrev = this._tempValues[currentIndexPosition];
147
- var ourChanges = this._changes.filter(function (c) {
148
- return c.i.startsWith(_this._author);
149
- });
150
- this._changes.push({
151
- t: "INS",
152
- p: currentPrev === null || currentPrev === void 0 ? void 0 : currentPrev.index,
153
- n: undefined,
154
- v: value,
155
- i: this._author + "-" + ("" + ourChanges.length).padStart(8, "0"),
156
- });
157
- this.calculate();
158
- };
159
- ListCrdt.prototype.DEL = function (index) {
160
- var _this = this;
161
- var currentIndex = this._tempValues.filter(function (v) { return !v.tomb; })[index].index;
162
- var currentIndexPosition = this._tempValues.findIndex(function (v) { return v.index === currentIndex; });
163
- var current = this._tempValues[currentIndexPosition];
164
- var ourChanges = this._changes.filter(function (c) {
165
- return c.i.startsWith(_this._author);
166
- });
167
- this._changes.push({
168
- t: "DEL",
169
- v: current.index,
170
- i: this._author + "-" + ("" + ourChanges.length).padStart(8, "0"),
171
- });
172
- this.calculate();
173
- };
174
- return ListCrdt;
175
- }(baseCrdt_1.default));
176
- exports.default = ListCrdt;
177
- //# sourceMappingURL=listCrdt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"listCrdt.js","sourceRoot":"","sources":["../../src/crdt/listCrdt.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- import BaseCrdt from "./baseCrdt";
2
- export declare type MapOperations = "SET" | "DEL";
3
- export interface ChangeMapBase<T> {
4
- t: MapOperations;
5
- a: string;
6
- k: string;
7
- i: number;
8
- }
9
- export interface SetMapChange<T> extends ChangeMapBase<T> {
10
- t: "SET";
11
- v: T;
12
- }
13
- export interface DelMapChange<T> extends ChangeMapBase<T> {
14
- t: "DEL";
15
- }
16
- export declare type MapChanges<T> = SetMapChange<T> | DelMapChange<T>;
17
- export default class MapCrdt<T> extends BaseCrdt<T, MapChanges<T>, Record<string, T>> {
18
- type: string;
19
- private _changes;
20
- private _author;
21
- private _value;
22
- private _keyIndex;
23
- private _lastUpdateSize;
24
- constructor(author: string, changes?: MapChanges<T>[]);
25
- changesSort(a: MapChanges<T>, b: MapChanges<T>): 0 | 1 | -1;
26
- calculate(): void;
27
- get value(): Record<string, T>;
28
- mergeChanges(newChanges: MapChanges<T>[]): void;
29
- getChanges(): MapChanges<T>[];
30
- SET(key: string, value: T): void;
31
- DEL(key: string): void;
32
- }
@@ -1,136 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
- if (k2 === undefined) k2 = k;
19
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
- Object.defineProperty(exports, "__esModule", { value: true });
37
- var baseCrdt_1 = __importStar(require("./baseCrdt"));
38
- var MapCrdt = /** @class */ (function (_super) {
39
- __extends(MapCrdt, _super);
40
- function MapCrdt(author, changes) {
41
- var _this = _super.call(this) || this;
42
- _this.type = baseCrdt_1.CRDT_MAP;
43
- _this._changes = [];
44
- _this._author = "";
45
- _this._value = {};
46
- _this._keyIndex = {};
47
- _this._lastUpdateSize = 0;
48
- _this._author = author;
49
- if (changes) {
50
- _this.mergeChanges(changes);
51
- }
52
- _this.calculate();
53
- return _this;
54
- }
55
- MapCrdt.prototype.changesSort = function (a, b) {
56
- if (a.i < b.i)
57
- return -1;
58
- if (a.i > b.i)
59
- return 1;
60
- if (a.t === "SET" && b.t === "DEL")
61
- return -1;
62
- if (a.t === "DEL" && b.t === "SET")
63
- return 1;
64
- if (a.a < b.a)
65
- return -1;
66
- if (a.a > b.a)
67
- return 1;
68
- return 0; // Should never be equal!
69
- };
70
- MapCrdt.prototype.calculate = function () {
71
- var _this = this;
72
- var temp = {};
73
- // Only update if we have new changes
74
- if (Object.values(this._changes).length !== this._lastUpdateSize) {
75
- this._changes.sort(this.changesSort).forEach(function (change) {
76
- // Here we apply the model properties
77
- // Since this is a KV store we dont need much logic,
78
- // except for the sorting of the changes. Then we just apply them.
79
- if (change.t === "SET") {
80
- temp[change.k] = change.v;
81
- }
82
- else if (change.t === "DEL") {
83
- delete temp[change.k];
84
- }
85
- _this._keyIndex[change.k] = change.i;
86
- });
87
- this._lastUpdateSize = Object.values(temp).length;
88
- this._value = temp;
89
- }
90
- };
91
- Object.defineProperty(MapCrdt.prototype, "value", {
92
- get: function () {
93
- this.calculate();
94
- return this._value;
95
- },
96
- enumerable: false,
97
- configurable: true
98
- });
99
- MapCrdt.prototype.mergeChanges = function (newChanges) {
100
- var _this = this;
101
- newChanges.forEach(function (change) {
102
- // Filter by author and index
103
- var filtered = _this._changes.filter(function (c) { return c.i === change.i && c.a === change.a && c.t === change.t; });
104
- // Only add if there are not matches
105
- if (filtered.length === 0) {
106
- _this._changes.push(change);
107
- }
108
- });
109
- this.calculate();
110
- };
111
- MapCrdt.prototype.getChanges = function () {
112
- return this._changes;
113
- };
114
- MapCrdt.prototype.SET = function (key, value) {
115
- this._keyIndex[key] = (this._keyIndex[key] || 0) + 1;
116
- this._changes.push({
117
- t: "SET",
118
- k: key,
119
- a: this._author,
120
- v: value,
121
- i: this._keyIndex[key],
122
- });
123
- };
124
- MapCrdt.prototype.DEL = function (key) {
125
- this._keyIndex[key] = (this._keyIndex[key] || 0) + 1;
126
- this._changes.push({
127
- t: "DEL",
128
- k: key,
129
- a: this._author,
130
- i: this._keyIndex[key],
131
- });
132
- };
133
- return MapCrdt;
134
- }(baseCrdt_1.default));
135
- exports.default = MapCrdt;
136
- //# sourceMappingURL=mapCrdt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mapCrdt.js","sourceRoot":"","sources":["../../src/crdt/mapCrdt.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export default function getCrypto(this: any): typeof window.crypto;