@tezos-x/octez.connect-core 0.9.0 → 4.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (312) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/constants.js +1 -1
  3. package/dist/cjs/package.json +46 -0
  4. package/dist/cjs/src/MockAnalytics.d.ts +4 -0
  5. package/dist/cjs/src/MockAnalytics.js +11 -0
  6. package/dist/cjs/src/MockAnalytics.js.map +1 -0
  7. package/dist/cjs/src/MockWindow.d.ts +14 -0
  8. package/dist/cjs/src/MockWindow.js +39 -0
  9. package/dist/cjs/src/MockWindow.js.map +1 -0
  10. package/dist/cjs/src/Serializer.d.ts +21 -0
  11. package/dist/cjs/src/Serializer.js +69 -0
  12. package/dist/cjs/src/Serializer.js.map +1 -0
  13. package/dist/cjs/src/clients/beacon-client/BeaconClient.d.ts +53 -0
  14. package/dist/cjs/src/clients/beacon-client/BeaconClient.js +111 -0
  15. package/dist/cjs/src/clients/beacon-client/BeaconClient.js.map +1 -0
  16. package/dist/cjs/src/clients/beacon-client/BeaconClientOptions.d.ts +26 -0
  17. package/dist/cjs/src/clients/beacon-client/BeaconClientOptions.js +3 -0
  18. package/dist/cjs/src/clients/beacon-client/BeaconClientOptions.js.map +1 -0
  19. package/dist/cjs/src/clients/client/Client.d.ts +106 -0
  20. package/dist/cjs/src/clients/client/Client.js +305 -0
  21. package/dist/cjs/src/clients/client/Client.js.map +1 -0
  22. package/dist/cjs/src/clients/client/ClientOptions.d.ts +42 -0
  23. package/dist/cjs/src/clients/client/ClientOptions.js +3 -0
  24. package/dist/cjs/src/clients/client/ClientOptions.js.map +1 -0
  25. package/dist/cjs/src/constants.d.ts +8 -0
  26. package/dist/cjs/src/constants.js +12 -0
  27. package/dist/cjs/src/constants.js.map +1 -0
  28. package/dist/cjs/src/debug.d.ts +2 -0
  29. package/dist/cjs/src/debug.js +17 -0
  30. package/dist/cjs/src/debug.js.map +1 -0
  31. package/dist/cjs/src/errors/AbortedBeaconError.d.ts +9 -0
  32. package/dist/cjs/src/errors/AbortedBeaconError.js +18 -0
  33. package/dist/cjs/src/errors/AbortedBeaconError.js.map +1 -0
  34. package/dist/cjs/src/errors/BeaconError.d.ts +18 -0
  35. package/dist/cjs/src/errors/BeaconError.js +25 -0
  36. package/dist/cjs/src/errors/BeaconError.js.map +1 -0
  37. package/dist/cjs/src/errors/BroadcastBeaconError.d.ts +9 -0
  38. package/dist/cjs/src/errors/BroadcastBeaconError.js +18 -0
  39. package/dist/cjs/src/errors/BroadcastBeaconError.js.map +1 -0
  40. package/dist/cjs/src/errors/EncryptionTypeNotSupportedBeaconError.d.ts +3 -0
  41. package/dist/cjs/src/errors/EncryptionTypeNotSupportedBeaconError.js +18 -0
  42. package/dist/cjs/src/errors/EncryptionTypeNotSupportedBeaconError.js.map +1 -0
  43. package/dist/cjs/src/errors/NetworkNotSupportedBeaconError.d.ts +9 -0
  44. package/dist/cjs/src/errors/NetworkNotSupportedBeaconError.js +18 -0
  45. package/dist/cjs/src/errors/NetworkNotSupportedBeaconError.js.map +1 -0
  46. package/dist/cjs/src/errors/NoAddressBeaconError.d.ts +9 -0
  47. package/dist/cjs/src/errors/NoAddressBeaconError.js +18 -0
  48. package/dist/cjs/src/errors/NoAddressBeaconError.js.map +1 -0
  49. package/dist/cjs/src/errors/NoPrivateKeyBeaconError.d.ts +9 -0
  50. package/dist/cjs/src/errors/NoPrivateKeyBeaconError.js +18 -0
  51. package/dist/cjs/src/errors/NoPrivateKeyBeaconError.js.map +1 -0
  52. package/dist/cjs/src/errors/NotGrantedBeaconError.d.ts +9 -0
  53. package/dist/cjs/src/errors/NotGrantedBeaconError.js +18 -0
  54. package/dist/cjs/src/errors/NotGrantedBeaconError.js.map +1 -0
  55. package/dist/cjs/src/errors/ParametersInvalidBeaconError.d.ts +9 -0
  56. package/dist/cjs/src/errors/ParametersInvalidBeaconError.js +18 -0
  57. package/dist/cjs/src/errors/ParametersInvalidBeaconError.js.map +1 -0
  58. package/dist/cjs/src/errors/SignatureTypeNotSupportedBeaconError.d.ts +9 -0
  59. package/dist/cjs/src/errors/SignatureTypeNotSupportedBeaconError.js +18 -0
  60. package/dist/cjs/src/errors/SignatureTypeNotSupportedBeaconError.js.map +1 -0
  61. package/dist/cjs/src/errors/TooManyOperationsBeaconError.d.ts +9 -0
  62. package/dist/cjs/src/errors/TooManyOperationsBeaconError.js +18 -0
  63. package/dist/cjs/src/errors/TooManyOperationsBeaconError.js.map +1 -0
  64. package/dist/cjs/src/errors/TransactionInvalidBeaconError.d.ts +14 -0
  65. package/dist/cjs/src/errors/TransactionInvalidBeaconError.js +23 -0
  66. package/dist/cjs/src/errors/TransactionInvalidBeaconError.js.map +1 -0
  67. package/dist/cjs/src/errors/UnknownBeaconError.d.ts +9 -0
  68. package/dist/cjs/src/errors/UnknownBeaconError.js +18 -0
  69. package/dist/cjs/src/errors/UnknownBeaconError.js.map +1 -0
  70. package/dist/cjs/src/errors/error-codes.d.ts +170 -0
  71. package/dist/cjs/src/errors/error-codes.js +108 -0
  72. package/dist/cjs/src/errors/error-codes.js.map +1 -0
  73. package/dist/cjs/src/errors/get-error.d.ts +8 -0
  74. package/dist/cjs/src/errors/get-error.js +53 -0
  75. package/dist/cjs/src/errors/get-error.js.map +1 -0
  76. package/dist/cjs/src/index.d.ts +58 -0
  77. package/dist/cjs/src/index.js +119 -0
  78. package/dist/cjs/src/index.js.map +1 -0
  79. package/dist/cjs/src/managers/AccountManager.d.ts +18 -0
  80. package/dist/cjs/src/managers/AccountManager.js +73 -0
  81. package/dist/cjs/src/managers/AccountManager.js.map +1 -0
  82. package/dist/cjs/src/managers/AppMetadataManager.d.ts +16 -0
  83. package/dist/cjs/src/managers/AppMetadataManager.js +57 -0
  84. package/dist/cjs/src/managers/AppMetadataManager.js.map +1 -0
  85. package/dist/cjs/src/managers/PeerManager.d.ts +18 -0
  86. package/dist/cjs/src/managers/PeerManager.js +61 -0
  87. package/dist/cjs/src/managers/PeerManager.js.map +1 -0
  88. package/dist/cjs/src/managers/PermissionManager.d.ts +17 -0
  89. package/dist/cjs/src/managers/PermissionManager.js +64 -0
  90. package/dist/cjs/src/managers/PermissionManager.js.map +1 -0
  91. package/dist/cjs/src/managers/PermissionValidator.d.ts +16 -0
  92. package/dist/cjs/src/managers/PermissionValidator.js +58 -0
  93. package/dist/cjs/src/managers/PermissionValidator.js.map +1 -0
  94. package/dist/cjs/src/managers/StorageManager.d.ts +18 -0
  95. package/dist/cjs/src/managers/StorageManager.js +72 -0
  96. package/dist/cjs/src/managers/StorageManager.js.map +1 -0
  97. package/dist/cjs/src/message-protocol.d.ts +2 -0
  98. package/dist/cjs/src/message-protocol.js +12 -0
  99. package/dist/cjs/src/message-protocol.js.map +1 -0
  100. package/dist/cjs/src/migrations/migrate-0.7.0.d.ts +20 -0
  101. package/dist/cjs/src/migrations/migrate-0.7.0.js +44 -0
  102. package/dist/cjs/src/migrations/migrate-0.7.0.js.map +1 -0
  103. package/dist/cjs/src/migrations/migrations.d.ts +2 -0
  104. package/dist/cjs/src/migrations/migrations.js +44 -0
  105. package/dist/cjs/src/migrations/migrations.js.map +1 -0
  106. package/dist/cjs/src/storage/ChromeStorage.d.ts +19 -0
  107. package/dist/cjs/src/storage/ChromeStorage.js +77 -0
  108. package/dist/cjs/src/storage/ChromeStorage.js.map +1 -0
  109. package/dist/cjs/src/storage/IndexedDBStorage.d.ts +65 -0
  110. package/dist/cjs/src/storage/IndexedDBStorage.js +230 -0
  111. package/dist/cjs/src/storage/IndexedDBStorage.js.map +1 -0
  112. package/dist/cjs/src/storage/LocalStorage.d.ts +21 -0
  113. package/dist/cjs/src/storage/LocalStorage.js +92 -0
  114. package/dist/cjs/src/storage/LocalStorage.js.map +1 -0
  115. package/dist/cjs/src/storage/StorageValidator.d.ts +12 -0
  116. package/dist/cjs/src/storage/StorageValidator.js +110 -0
  117. package/dist/cjs/src/storage/StorageValidator.js.map +1 -0
  118. package/dist/cjs/src/storage/WCStorage.d.ts +15 -0
  119. package/dist/cjs/src/storage/WCStorage.js +84 -0
  120. package/dist/cjs/src/storage/WCStorage.js.map +1 -0
  121. package/dist/cjs/src/storage/getStorage.d.ts +5 -0
  122. package/dist/cjs/src/storage/getStorage.js +34 -0
  123. package/dist/cjs/src/storage/getStorage.js.map +1 -0
  124. package/dist/cjs/src/transports/Transport.d.ts +85 -0
  125. package/dist/cjs/src/transports/Transport.js +171 -0
  126. package/dist/cjs/src/transports/Transport.js.map +1 -0
  127. package/dist/cjs/src/transports/clients/ClientEvents.d.ts +6 -0
  128. package/dist/cjs/src/transports/clients/ClientEvents.js +3 -0
  129. package/dist/cjs/src/transports/clients/ClientEvents.js.map +1 -0
  130. package/dist/cjs/src/transports/clients/CommunicationClient.d.ts +47 -0
  131. package/dist/cjs/src/transports/clients/CommunicationClient.js +86 -0
  132. package/dist/cjs/src/transports/clients/CommunicationClient.js.map +1 -0
  133. package/dist/cjs/src/transports/clients/MessageBasedClient.d.ts +56 -0
  134. package/dist/cjs/src/transports/clients/MessageBasedClient.js +110 -0
  135. package/dist/cjs/src/transports/clients/MessageBasedClient.js.map +1 -0
  136. package/dist/cjs/src/utils/Logger.d.ts +33 -0
  137. package/dist/cjs/src/utils/Logger.js +98 -0
  138. package/dist/cjs/src/utils/Logger.js.map +1 -0
  139. package/dist/cjs/src/utils/assert-never.d.ts +6 -0
  140. package/dist/cjs/src/utils/assert-never.js +14 -0
  141. package/dist/cjs/src/utils/assert-never.js.map +1 -0
  142. package/dist/cjs/src/utils/diagnostics.d.ts +38 -0
  143. package/dist/cjs/src/utils/diagnostics.js +208 -0
  144. package/dist/cjs/src/utils/diagnostics.js.map +1 -0
  145. package/dist/cjs/src/utils/get-account-identifier.d.ts +10 -0
  146. package/dist/cjs/src/utils/get-account-identifier.js +39 -0
  147. package/dist/cjs/src/utils/get-account-identifier.js.map +1 -0
  148. package/dist/cjs/src/utils/get-sender-id.d.ts +8 -0
  149. package/dist/cjs/src/utils/get-sender-id.js +34 -0
  150. package/dist/cjs/src/utils/get-sender-id.js.map +1 -0
  151. package/dist/cjs/src/utils/message-utils.d.ts +2 -0
  152. package/dist/cjs/src/utils/message-utils.js +13 -0
  153. package/dist/cjs/src/utils/message-utils.js.map +1 -0
  154. package/dist/cjs/src/utils/multi-tab-channel.d.ts +17 -0
  155. package/dist/cjs/src/utils/multi-tab-channel.js +85 -0
  156. package/dist/cjs/src/utils/multi-tab-channel.js.map +1 -0
  157. package/dist/esm/constants.js +1 -1
  158. package/dist/esm/package.json +46 -0
  159. package/dist/esm/src/MockAnalytics.d.ts +4 -0
  160. package/dist/esm/src/MockAnalytics.js +7 -0
  161. package/dist/esm/src/MockAnalytics.js.map +1 -0
  162. package/dist/esm/src/MockWindow.d.ts +14 -0
  163. package/dist/esm/src/MockWindow.js +35 -0
  164. package/dist/esm/src/MockWindow.js.map +1 -0
  165. package/dist/esm/src/Serializer.d.ts +21 -0
  166. package/dist/esm/src/Serializer.js +50 -0
  167. package/dist/esm/src/Serializer.js.map +1 -0
  168. package/dist/esm/src/clients/beacon-client/BeaconClient.d.ts +53 -0
  169. package/dist/esm/src/clients/beacon-client/BeaconClient.js +103 -0
  170. package/dist/esm/src/clients/beacon-client/BeaconClient.js.map +1 -0
  171. package/dist/esm/src/clients/beacon-client/BeaconClientOptions.d.ts +26 -0
  172. package/dist/esm/src/clients/beacon-client/BeaconClientOptions.js +2 -0
  173. package/dist/esm/src/clients/beacon-client/BeaconClientOptions.js.map +1 -0
  174. package/dist/esm/src/clients/client/Client.d.ts +106 -0
  175. package/dist/esm/src/clients/client/Client.js +260 -0
  176. package/dist/esm/src/clients/client/Client.js.map +1 -0
  177. package/dist/esm/src/clients/client/ClientOptions.d.ts +42 -0
  178. package/dist/esm/src/clients/client/ClientOptions.js +2 -0
  179. package/dist/esm/src/clients/client/ClientOptions.js.map +1 -0
  180. package/dist/esm/src/constants.d.ts +8 -0
  181. package/dist/esm/src/constants.js +9 -0
  182. package/dist/esm/src/constants.js.map +1 -0
  183. package/dist/esm/src/debug.d.ts +2 -0
  184. package/dist/esm/src/debug.js +12 -0
  185. package/dist/esm/src/debug.js.map +1 -0
  186. package/dist/esm/src/errors/AbortedBeaconError.d.ts +9 -0
  187. package/dist/esm/src/errors/AbortedBeaconError.js +14 -0
  188. package/dist/esm/src/errors/AbortedBeaconError.js.map +1 -0
  189. package/dist/esm/src/errors/BeaconError.d.ts +18 -0
  190. package/dist/esm/src/errors/BeaconError.js +24 -0
  191. package/dist/esm/src/errors/BeaconError.js.map +1 -0
  192. package/dist/esm/src/errors/BroadcastBeaconError.d.ts +9 -0
  193. package/dist/esm/src/errors/BroadcastBeaconError.js +14 -0
  194. package/dist/esm/src/errors/BroadcastBeaconError.js.map +1 -0
  195. package/dist/esm/src/errors/EncryptionTypeNotSupportedBeaconError.d.ts +3 -0
  196. package/dist/esm/src/errors/EncryptionTypeNotSupportedBeaconError.js +18 -0
  197. package/dist/esm/src/errors/EncryptionTypeNotSupportedBeaconError.js.map +1 -0
  198. package/dist/esm/src/errors/NetworkNotSupportedBeaconError.d.ts +9 -0
  199. package/dist/esm/src/errors/NetworkNotSupportedBeaconError.js +14 -0
  200. package/dist/esm/src/errors/NetworkNotSupportedBeaconError.js.map +1 -0
  201. package/dist/esm/src/errors/NoAddressBeaconError.d.ts +9 -0
  202. package/dist/esm/src/errors/NoAddressBeaconError.js +14 -0
  203. package/dist/esm/src/errors/NoAddressBeaconError.js.map +1 -0
  204. package/dist/esm/src/errors/NoPrivateKeyBeaconError.d.ts +9 -0
  205. package/dist/esm/src/errors/NoPrivateKeyBeaconError.js +14 -0
  206. package/dist/esm/src/errors/NoPrivateKeyBeaconError.js.map +1 -0
  207. package/dist/esm/src/errors/NotGrantedBeaconError.d.ts +9 -0
  208. package/dist/esm/src/errors/NotGrantedBeaconError.js +14 -0
  209. package/dist/esm/src/errors/NotGrantedBeaconError.js.map +1 -0
  210. package/dist/esm/src/errors/ParametersInvalidBeaconError.d.ts +9 -0
  211. package/dist/esm/src/errors/ParametersInvalidBeaconError.js +14 -0
  212. package/dist/esm/src/errors/ParametersInvalidBeaconError.js.map +1 -0
  213. package/dist/esm/src/errors/SignatureTypeNotSupportedBeaconError.d.ts +9 -0
  214. package/dist/esm/src/errors/SignatureTypeNotSupportedBeaconError.js +14 -0
  215. package/dist/esm/src/errors/SignatureTypeNotSupportedBeaconError.js.map +1 -0
  216. package/dist/esm/src/errors/TooManyOperationsBeaconError.d.ts +9 -0
  217. package/dist/esm/src/errors/TooManyOperationsBeaconError.js +14 -0
  218. package/dist/esm/src/errors/TooManyOperationsBeaconError.js.map +1 -0
  219. package/dist/esm/src/errors/TransactionInvalidBeaconError.d.ts +14 -0
  220. package/dist/esm/src/errors/TransactionInvalidBeaconError.js +20 -0
  221. package/dist/esm/src/errors/TransactionInvalidBeaconError.js.map +1 -0
  222. package/dist/esm/src/errors/UnknownBeaconError.d.ts +9 -0
  223. package/dist/esm/src/errors/UnknownBeaconError.js +14 -0
  224. package/dist/esm/src/errors/UnknownBeaconError.js.map +1 -0
  225. package/dist/esm/src/errors/error-codes.d.ts +170 -0
  226. package/dist/esm/src/errors/error-codes.js +111 -0
  227. package/dist/esm/src/errors/error-codes.js.map +1 -0
  228. package/dist/esm/src/errors/get-error.d.ts +8 -0
  229. package/dist/esm/src/errors/get-error.js +49 -0
  230. package/dist/esm/src/errors/get-error.js.map +1 -0
  231. package/dist/esm/src/index.d.ts +58 -0
  232. package/dist/esm/src/index.js +73 -0
  233. package/dist/esm/src/index.js.map +1 -0
  234. package/dist/esm/src/managers/AccountManager.d.ts +18 -0
  235. package/dist/esm/src/managers/AccountManager.js +44 -0
  236. package/dist/esm/src/managers/AccountManager.js.map +1 -0
  237. package/dist/esm/src/managers/AppMetadataManager.d.ts +16 -0
  238. package/dist/esm/src/managers/AppMetadataManager.js +32 -0
  239. package/dist/esm/src/managers/AppMetadataManager.js.map +1 -0
  240. package/dist/esm/src/managers/PeerManager.d.ts +18 -0
  241. package/dist/esm/src/managers/PeerManager.js +34 -0
  242. package/dist/esm/src/managers/PeerManager.js.map +1 -0
  243. package/dist/esm/src/managers/PermissionManager.d.ts +17 -0
  244. package/dist/esm/src/managers/PermissionManager.js +37 -0
  245. package/dist/esm/src/managers/PermissionManager.js.map +1 -0
  246. package/dist/esm/src/managers/PermissionValidator.d.ts +16 -0
  247. package/dist/esm/src/managers/PermissionValidator.js +43 -0
  248. package/dist/esm/src/managers/PermissionValidator.js.map +1 -0
  249. package/dist/esm/src/managers/StorageManager.d.ts +18 -0
  250. package/dist/esm/src/managers/StorageManager.js +50 -0
  251. package/dist/esm/src/managers/StorageManager.js.map +1 -0
  252. package/dist/esm/src/message-protocol.d.ts +2 -0
  253. package/dist/esm/src/message-protocol.js +7 -0
  254. package/dist/esm/src/message-protocol.js.map +1 -0
  255. package/dist/esm/src/migrations/migrate-0.7.0.d.ts +20 -0
  256. package/dist/esm/src/migrations/migrate-0.7.0.js +31 -0
  257. package/dist/esm/src/migrations/migrate-0.7.0.js.map +1 -0
  258. package/dist/esm/src/migrations/migrations.d.ts +2 -0
  259. package/dist/esm/src/migrations/migrations.js +31 -0
  260. package/dist/esm/src/migrations/migrations.js.map +1 -0
  261. package/dist/esm/src/storage/ChromeStorage.d.ts +19 -0
  262. package/dist/esm/src/storage/ChromeStorage.js +54 -0
  263. package/dist/esm/src/storage/ChromeStorage.js.map +1 -0
  264. package/dist/esm/src/storage/IndexedDBStorage.d.ts +65 -0
  265. package/dist/esm/src/storage/IndexedDBStorage.js +212 -0
  266. package/dist/esm/src/storage/IndexedDBStorage.js.map +1 -0
  267. package/dist/esm/src/storage/LocalStorage.d.ts +21 -0
  268. package/dist/esm/src/storage/LocalStorage.js +70 -0
  269. package/dist/esm/src/storage/LocalStorage.js.map +1 -0
  270. package/dist/esm/src/storage/StorageValidator.d.ts +12 -0
  271. package/dist/esm/src/storage/StorageValidator.js +96 -0
  272. package/dist/esm/src/storage/StorageValidator.js.map +1 -0
  273. package/dist/esm/src/storage/WCStorage.d.ts +15 -0
  274. package/dist/esm/src/storage/WCStorage.js +64 -0
  275. package/dist/esm/src/storage/WCStorage.js.map +1 -0
  276. package/dist/esm/src/storage/getStorage.d.ts +5 -0
  277. package/dist/esm/src/storage/getStorage.js +21 -0
  278. package/dist/esm/src/storage/getStorage.js.map +1 -0
  279. package/dist/esm/src/transports/Transport.d.ts +85 -0
  280. package/dist/esm/src/transports/Transport.js +149 -0
  281. package/dist/esm/src/transports/Transport.js.map +1 -0
  282. package/dist/esm/src/transports/clients/ClientEvents.d.ts +6 -0
  283. package/dist/esm/src/transports/clients/ClientEvents.js +2 -0
  284. package/dist/esm/src/transports/clients/ClientEvents.js.map +1 -0
  285. package/dist/esm/src/transports/clients/CommunicationClient.d.ts +47 -0
  286. package/dist/esm/src/transports/clients/CommunicationClient.js +63 -0
  287. package/dist/esm/src/transports/clients/CommunicationClient.js.map +1 -0
  288. package/dist/esm/src/transports/clients/MessageBasedClient.d.ts +56 -0
  289. package/dist/esm/src/transports/clients/MessageBasedClient.js +84 -0
  290. package/dist/esm/src/transports/clients/MessageBasedClient.js.map +1 -0
  291. package/dist/esm/src/utils/Logger.d.ts +33 -0
  292. package/dist/esm/src/utils/Logger.js +92 -0
  293. package/dist/esm/src/utils/Logger.js.map +1 -0
  294. package/dist/esm/src/utils/assert-never.d.ts +6 -0
  295. package/dist/esm/src/utils/assert-never.js +11 -0
  296. package/dist/esm/src/utils/assert-never.js.map +1 -0
  297. package/dist/esm/src/utils/diagnostics.d.ts +38 -0
  298. package/dist/esm/src/utils/diagnostics.js +183 -0
  299. package/dist/esm/src/utils/diagnostics.js.map +1 -0
  300. package/dist/esm/src/utils/get-account-identifier.d.ts +10 -0
  301. package/dist/esm/src/utils/get-account-identifier.js +23 -0
  302. package/dist/esm/src/utils/get-account-identifier.js.map +1 -0
  303. package/dist/esm/src/utils/get-sender-id.d.ts +8 -0
  304. package/dist/esm/src/utils/get-sender-id.js +18 -0
  305. package/dist/esm/src/utils/get-sender-id.js.map +1 -0
  306. package/dist/esm/src/utils/message-utils.d.ts +2 -0
  307. package/dist/esm/src/utils/message-utils.js +9 -0
  308. package/dist/esm/src/utils/message-utils.js.map +1 -0
  309. package/dist/esm/src/utils/multi-tab-channel.d.ts +17 -0
  310. package/dist/esm/src/utils/multi-tab-channel.js +66 -0
  311. package/dist/esm/src/utils/multi-tab-channel.js.map +1 -0
  312. package/package.json +4 -4
@@ -0,0 +1,212 @@
1
+ import { Storage } from '@tezos-x/octez.connect-types';
2
+ import { Logger } from '../utils/Logger';
3
+ const logger = new Logger('IndexedDBStorage');
4
+ export class IndexedDBStorage extends Storage {
5
+ dbName;
6
+ storeNames;
7
+ db = null;
8
+ isSupported = true;
9
+ /**
10
+ * @param dbName Name of the database.
11
+ * @param storeNames An array of object store names to create in the database.
12
+ * The first store in the array will be used as the default if none is specified.
13
+ */
14
+ constructor(dbName = 'WALLET_CONNECT_V2_INDEXED_DB', storeNames = ['keyvaluestorage']) {
15
+ super();
16
+ this.dbName = dbName;
17
+ this.storeNames = storeNames;
18
+ this.initDB()
19
+ .then((db) => (this.db = db))
20
+ .catch((err) => logger.error(err.message));
21
+ }
22
+ isIndexedDBSupported() {
23
+ if (typeof window !== 'undefined' && 'indexedDB' in window) {
24
+ logger.log('isIndexedDBSupported', 'IndexedDB is supported in this browser.');
25
+ return true;
26
+ }
27
+ else {
28
+ logger.error('isIndexedDBSupported', 'IndexedDB is not supported in this browser.');
29
+ return false;
30
+ }
31
+ }
32
+ async initDB() {
33
+ return new Promise((resolve, reject) => {
34
+ this.isSupported = this.isIndexedDBSupported();
35
+ if (!this.isSupported) {
36
+ reject('IndexedDB is not supported.');
37
+ return;
38
+ }
39
+ const openRequest = indexedDB.open(this.dbName);
40
+ openRequest.onupgradeneeded = () => {
41
+ const db = openRequest.result;
42
+ // Create all required object stores
43
+ this.storeNames.forEach((storeName) => {
44
+ if (!db.objectStoreNames.contains(storeName)) {
45
+ db.createObjectStore(storeName);
46
+ }
47
+ });
48
+ };
49
+ openRequest.onsuccess = (event) => {
50
+ const db = event.target.result;
51
+ // Check if all stores exist – if not, perform an upgrade.
52
+ const missingStores = this.storeNames.filter((storeName) => !db.objectStoreNames.contains(storeName));
53
+ if (missingStores.length > 0) {
54
+ db.close();
55
+ const newVersion = db.version + 1;
56
+ const upgradeRequest = indexedDB.open(this.dbName, newVersion);
57
+ upgradeRequest.onupgradeneeded = () => {
58
+ const upgradedDB = upgradeRequest.result;
59
+ missingStores.forEach((storeName) => {
60
+ if (!upgradedDB.objectStoreNames.contains(storeName)) {
61
+ upgradedDB.createObjectStore(storeName);
62
+ }
63
+ });
64
+ };
65
+ upgradeRequest.onsuccess = (event) => {
66
+ this.db = event.target.result;
67
+ resolve(this.db);
68
+ };
69
+ upgradeRequest.onerror = (event) => reject(event.target.error);
70
+ }
71
+ else {
72
+ this.db = db;
73
+ resolve(db);
74
+ }
75
+ };
76
+ openRequest.onerror = (event) => reject(event.target.error);
77
+ });
78
+ }
79
+ /**
80
+ * Performs a transaction on the given object store.
81
+ * @param mode Transaction mode.
82
+ * @param storeName The name of the object store.
83
+ * @param operation The operation to perform with the object store.
84
+ */
85
+ async transaction(mode, storeName, operation) {
86
+ return new Promise((resolve, reject) => {
87
+ if (!this.isSupported) {
88
+ reject('IndexedDB is not supported.');
89
+ return;
90
+ }
91
+ if (!this.db?.objectStoreNames.contains(storeName)) {
92
+ reject(`${storeName} not found. error: ${new Error().stack}`);
93
+ return;
94
+ }
95
+ const transaction = this.db.transaction(storeName, mode);
96
+ const objectStore = transaction.objectStore(storeName);
97
+ operation(objectStore).then(resolve).catch(reject);
98
+ });
99
+ }
100
+ get(key, storeName = this.storeNames[0]) {
101
+ return this.transaction('readonly', storeName, (store) => new Promise((resolve, reject) => {
102
+ const getRequest = store.get(key);
103
+ getRequest.onsuccess = () => resolve(getRequest.result);
104
+ getRequest.onerror = () => reject(getRequest.error);
105
+ }));
106
+ }
107
+ set(key, value, storeName = this.storeNames[0]) {
108
+ return this.transaction('readwrite', storeName, (store) => new Promise((resolve, reject) => {
109
+ const putRequest = store.put(value, key);
110
+ putRequest.onsuccess = () => resolve();
111
+ putRequest.onerror = () => reject(putRequest.error);
112
+ }));
113
+ }
114
+ delete(key, storeName = this.storeNames[0]) {
115
+ return this.transaction('readwrite', storeName, (store) => new Promise((resolve, reject) => {
116
+ const deleteRequest = store.delete(key);
117
+ deleteRequest.onsuccess = () => resolve();
118
+ deleteRequest.onerror = () => reject(deleteRequest.error);
119
+ }));
120
+ }
121
+ /**
122
+ * Retrieves all values from the specified object store.
123
+ */
124
+ getAll(storeName) {
125
+ return this.transaction('readonly', storeName || this.storeNames[0], (store) => new Promise((resolve, reject) => {
126
+ const getAllRequest = store.getAll();
127
+ getAllRequest.onsuccess = () => resolve(getAllRequest.result);
128
+ getAllRequest.onerror = () => reject(getAllRequest.error);
129
+ }));
130
+ }
131
+ /**
132
+ * Retrieves all keys from the specified object store.
133
+ */
134
+ getAllKeys(storeName) {
135
+ return this.transaction('readonly', storeName || this.storeNames[0], (store) => new Promise((resolve, reject) => {
136
+ const getAllKeysRequest = store.getAllKeys();
137
+ getAllKeysRequest.onsuccess = () => resolve(getAllKeysRequest.result);
138
+ getAllKeysRequest.onerror = () => reject(getAllKeysRequest.error);
139
+ }));
140
+ }
141
+ /**
142
+ * Clears all entries from the specified object store.
143
+ */
144
+ clearStore(storeName) {
145
+ return this.transaction('readwrite', storeName || this.storeNames[0], (store) => new Promise((resolve, reject) => {
146
+ const clearRequest = store.clear();
147
+ clearRequest.onsuccess = () => resolve();
148
+ clearRequest.onerror = () => reject(clearRequest.error);
149
+ }));
150
+ }
151
+ getPrefixedKey(key) {
152
+ logger.debug('getPrefixedKey', key);
153
+ throw new Error('Method not implemented.');
154
+ }
155
+ subscribeToStorageChanged(callback) {
156
+ logger.debug('subscribeToStorageEvent', callback);
157
+ throw new Error('Method not implemented.');
158
+ }
159
+ /**
160
+ * Copies all key/value pairs from the source store into a target store.
161
+ * @param targetDBName Name of the target database.
162
+ * @param targetStoreName Name of the target object store.
163
+ * @param skipKeys Keys to skip.
164
+ * @param sourceStoreName (Optional) Source store name – defaults to the default store.
165
+ */
166
+ async fillStore(targetDBName, targetStoreName, skipKeys = [], sourceStoreName = this.storeNames[0]) {
167
+ if (!this.isSupported) {
168
+ logger.error('fillStore', 'IndexedDB not supported.');
169
+ return;
170
+ }
171
+ const targetDBRequest = indexedDB.open(targetDBName);
172
+ targetDBRequest.onerror = (event) => {
173
+ throw new Error(`Failed to open target database: ${event.target.error}`);
174
+ };
175
+ const targetDB = await new Promise((resolve, reject) => {
176
+ targetDBRequest.onsuccess = (event) => resolve(event.target.result);
177
+ targetDBRequest.onerror = (event) => reject(event.target.error);
178
+ });
179
+ // Copy items from the source store to the target store, skipping any specified keys.
180
+ await this.transaction('readonly', sourceStoreName, async (sourceStore) => {
181
+ const getAllRequest = sourceStore.getAll();
182
+ const getAllKeysRequest = sourceStore.getAllKeys();
183
+ getAllRequest.onsuccess = async () => {
184
+ getAllKeysRequest.onsuccess = async () => {
185
+ const items = getAllRequest.result;
186
+ const keys = getAllKeysRequest.result;
187
+ if (!targetDB.objectStoreNames.contains(targetStoreName)) {
188
+ logger.error(`${targetStoreName} not found. ${new Error().stack}`);
189
+ return;
190
+ }
191
+ const targetTransaction = targetDB.transaction(targetStoreName, 'readwrite');
192
+ const targetStore = targetTransaction.objectStore(targetStoreName);
193
+ keys
194
+ .filter((key) => !skipKeys.includes(key.toString()))
195
+ .forEach((key, index) => {
196
+ targetStore.put(items[index], key);
197
+ });
198
+ targetTransaction.onerror = (event) => {
199
+ logger.error('Transaction error: ', event.target.error);
200
+ };
201
+ };
202
+ };
203
+ getAllKeysRequest.onerror = () => {
204
+ logger.error('Failed to getAllKeys from source:', getAllKeysRequest.error);
205
+ };
206
+ getAllRequest.onerror = () => {
207
+ logger.error('Failed to getAll from source:', getAllRequest.error);
208
+ };
209
+ });
210
+ }
211
+ }
212
+ //# sourceMappingURL=IndexedDBStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexedDBStorage.js","sourceRoot":"","sources":["../../../../src/storage/IndexedDBStorage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { Storage, StorageKey, StorageKeyReturnType } from '@tezos-x/octez.connect-types';
2
+ /**
3
+ * @internalapi
4
+ *
5
+ * A storage that can be used in the browser
6
+ */
7
+ export declare class LocalStorage extends Storage {
8
+ private readonly prefix?;
9
+ constructor(prefix?: string | undefined);
10
+ static isSupported(): Promise<boolean>;
11
+ get<K extends StorageKey>(key: K): Promise<StorageKeyReturnType[K]>;
12
+ set<K extends StorageKey>(key: K, value: StorageKeyReturnType[K]): Promise<void>;
13
+ delete<K extends StorageKey>(key: K): Promise<void>;
14
+ subscribeToStorageChanged(callback: (arg: {
15
+ eventType: 'storageCleared' | 'entryModified';
16
+ key: string | null;
17
+ oldValue: string | null;
18
+ newValue: string | null;
19
+ }) => {}): Promise<void>;
20
+ getPrefixedKey(key: string): string;
21
+ }
@@ -0,0 +1,70 @@
1
+ import { Storage, defaultValues } from '@tezos-x/octez.connect-types';
2
+ /**
3
+ * @internalapi
4
+ *
5
+ * A storage that can be used in the browser
6
+ */
7
+ export class LocalStorage extends Storage {
8
+ prefix;
9
+ constructor(prefix) {
10
+ super();
11
+ this.prefix = prefix;
12
+ }
13
+ static async isSupported() {
14
+ return Promise.resolve(Boolean(typeof window !== 'undefined') && Boolean(window.localStorage));
15
+ }
16
+ async get(key) {
17
+ const value = localStorage.getItem(this.getPrefixedKey(key));
18
+ if (!value) {
19
+ if (typeof defaultValues[key] === 'object') {
20
+ return JSON.parse(JSON.stringify(defaultValues[key]));
21
+ }
22
+ else {
23
+ return defaultValues[key];
24
+ }
25
+ }
26
+ else {
27
+ try {
28
+ return JSON.parse(value);
29
+ }
30
+ catch (jsonParseError) {
31
+ return value; // TODO: Validate storage
32
+ }
33
+ }
34
+ }
35
+ async set(key, value) {
36
+ if (typeof value === 'string') {
37
+ return localStorage.setItem(this.getPrefixedKey(key), value);
38
+ }
39
+ else {
40
+ return localStorage.setItem(this.getPrefixedKey(key), JSON.stringify(value));
41
+ }
42
+ }
43
+ async delete(key) {
44
+ return Promise.resolve(localStorage.removeItem(this.getPrefixedKey(key)));
45
+ }
46
+ async subscribeToStorageChanged(callback) {
47
+ window.addEventListener('storage', (event) => {
48
+ if (!event.key) {
49
+ callback({
50
+ eventType: 'storageCleared',
51
+ key: null,
52
+ oldValue: null,
53
+ newValue: null
54
+ });
55
+ }
56
+ else {
57
+ callback({
58
+ eventType: 'entryModified',
59
+ key: this.getPrefixedKey(event.key),
60
+ oldValue: event.oldValue,
61
+ newValue: event.newValue
62
+ });
63
+ }
64
+ }, false);
65
+ }
66
+ getPrefixedKey(key) {
67
+ return this.prefix ? `${this.prefix}-${key}` : key;
68
+ }
69
+ }
70
+ //# sourceMappingURL=LocalStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalStorage.js","sourceRoot":"","sources":["../../../../src/storage/LocalStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAoC,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAEvG;;;;GAIG;AACH,MAAM,OAAO,YAAa,SAAQ,OAAO;IACV;IAA7B,YAA6B,MAAe;QAC1C,KAAK,EAAE,CAAA;QADoB,WAAM,GAAN,MAAM,CAAS;IAE5C,CAAC;IACM,MAAM,CAAC,KAAK,CAAC,WAAW;QAC7B,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;IAChG,CAAC;IAEM,KAAK,CAAC,GAAG,CAAuB,GAAM;QAC3C,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAA;QAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACvD,CAAC;iBAAM,CAAC;gBACN,OAAO,aAAa,CAAC,GAAG,CAAC,CAAA;YAC3B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAC1B,CAAC;YAAC,OAAO,cAAc,EAAE,CAAC;gBACxB,OAAO,KAAgC,CAAA,CAAC,yBAAyB;YACnE,CAAC;QACH,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,GAAG,CAAuB,GAAM,EAAE,KAA8B;QAC3E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;QAC9D,CAAC;aAAM,CAAC;YACN,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;QAC9E,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,MAAM,CAAuB,GAAM;QAC9C,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAC3E,CAAC;IAEM,KAAK,CAAC,yBAAyB,CACpC,QAKQ;QAER,MAAM,CAAC,gBAAgB,CACrB,SAAS,EACT,CAAC,KAAK,EAAE,EAAE;YACR,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBACf,QAAQ,CAAC;oBACP,SAAS,EAAE,gBAAgB;oBAC3B,GAAG,EAAE,IAAI;oBACT,QAAQ,EAAE,IAAI;oBACd,QAAQ,EAAE,IAAI;iBACf,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC;oBACP,SAAS,EAAE,eAAe;oBAC1B,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC;oBACnC,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;iBACzB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC,EACD,KAAK,CACN,CAAA;IACH,CAAC;IAEM,cAAc,CAAC,GAAW;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;IACpD,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ import { Storage } from '@tezos-x/octez.connect-types';
2
+ export declare class StorageValidator {
3
+ private readonly storage;
4
+ constructor(storage: Storage);
5
+ private validateNumber;
6
+ private validateText;
7
+ private validateBoolean;
8
+ private validateArray;
9
+ private objHasProperty;
10
+ private innerValidate;
11
+ validate(): Promise<boolean>;
12
+ }
@@ -0,0 +1,96 @@
1
+ import { StorageKey } from '@tezos-x/octez.connect-types';
2
+ export class StorageValidator {
3
+ storage;
4
+ constructor(storage) {
5
+ this.storage = storage;
6
+ }
7
+ validateNumber(param) {
8
+ return typeof param === 'number' && !isNaN(param);
9
+ }
10
+ validateText(param) {
11
+ return typeof param === 'string';
12
+ }
13
+ validateBoolean(param) {
14
+ return typeof param === 'boolean';
15
+ }
16
+ validateArray(param) {
17
+ return Array.isArray(param);
18
+ }
19
+ objHasProperty(obj, path) {
20
+ if (!obj)
21
+ return false; // Return false if the object is null or undefined
22
+ const properties = path.split('.'); // Split the path into individual properties
23
+ let current = obj;
24
+ for (const property of properties) {
25
+ // If the property doesn't exist, return false
26
+ if (!current.hasOwnProperty(property)) {
27
+ return false;
28
+ }
29
+ // Move to the next level in the path
30
+ current = current[property];
31
+ }
32
+ return true;
33
+ }
34
+ innerValidate(value, type, prop) {
35
+ if (!value) {
36
+ return true;
37
+ }
38
+ switch (type) {
39
+ case 'num':
40
+ return this.validateNumber(value);
41
+ case 'str':
42
+ return this.validateText(value);
43
+ case 'bol':
44
+ return this.validateBoolean(value);
45
+ case 'obj':
46
+ return this.objHasProperty(value, prop);
47
+ case 'arr':
48
+ return this.validateArray(value);
49
+ default:
50
+ return false;
51
+ }
52
+ }
53
+ async validate() {
54
+ if (!this.innerValidate(await this.storage.get(StorageKey.BEACON_SDK_VERSION), 'str')) {
55
+ return false;
56
+ }
57
+ if (!this.innerValidate(await this.storage.get(StorageKey.MATRIX_SELECTED_NODE), 'str')) {
58
+ return false;
59
+ }
60
+ if (!this.innerValidate(await this.storage.get(StorageKey.MULTI_NODE_SETUP_DONE), 'bol')) {
61
+ return false;
62
+ }
63
+ if (!this.innerValidate(await this.storage.get(StorageKey.TRANSPORT_P2P_PEERS_DAPP), 'arr')) {
64
+ return false;
65
+ }
66
+ if (!this.innerValidate(await this.storage.get(StorageKey.TRANSPORT_P2P_PEERS_WALLET), 'arr')) {
67
+ return false;
68
+ }
69
+ if (!this.innerValidate(await this.storage.get(StorageKey.TRANSPORT_POSTMESSAGE_PEERS_DAPP), 'arr')) {
70
+ return false;
71
+ }
72
+ if (!this.innerValidate(await this.storage.get(StorageKey.TRANSPORT_POSTMESSAGE_PEERS_WALLET), 'arr')) {
73
+ return false;
74
+ }
75
+ if (!this.innerValidate(await this.storage.get(StorageKey.TRANSPORT_WALLETCONNECT_PEERS_DAPP), 'arr')) {
76
+ return false;
77
+ }
78
+ if (!this.innerValidate(await this.storage.get(StorageKey.ACCOUNTS), 'arr')) {
79
+ return false;
80
+ }
81
+ if (!this.innerValidate(await this.storage.get(StorageKey.APP_METADATA_LIST), 'arr')) {
82
+ return false;
83
+ }
84
+ if (!this.innerValidate(await this.storage.get(StorageKey.PERMISSION_LIST), 'arr')) {
85
+ return false;
86
+ }
87
+ if (!this.innerValidate(await this.storage.get(StorageKey.ACTIVE_ACCOUNT), 'str')) {
88
+ return false;
89
+ }
90
+ if (!this.innerValidate(await this.storage.get(StorageKey.LAST_SELECTED_WALLET), 'obj', 'key')) {
91
+ return false;
92
+ }
93
+ return true;
94
+ }
95
+ }
96
+ //# sourceMappingURL=StorageValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StorageValidator.js","sourceRoot":"","sources":["../../../../src/storage/StorageValidator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export declare class WCStorage {
2
+ private readonly localStorage;
3
+ private readonly indexedDB;
4
+ private channel;
5
+ onMessageHandler: ((type: string) => void) | undefined;
6
+ onErrorHandler: ((data: any) => void) | undefined;
7
+ constructor();
8
+ private onMessage;
9
+ private onError;
10
+ notify(type: string): void;
11
+ hasPairings(): Promise<boolean>;
12
+ hasSessions(): Promise<boolean>;
13
+ backup(): void;
14
+ resetState(): Promise<void>;
15
+ }
@@ -0,0 +1,64 @@
1
+ import { StorageKey } from '@tezos-x/octez.connect-types';
2
+ import { LocalStorage } from './LocalStorage';
3
+ import { IndexedDBStorage } from './IndexedDBStorage';
4
+ export class WCStorage {
5
+ localStorage = new LocalStorage();
6
+ indexedDB = new IndexedDBStorage();
7
+ channel = new BroadcastChannel('WALLET_CONNECT_V2_INDEXED_DB');
8
+ onMessageHandler;
9
+ onErrorHandler;
10
+ constructor() {
11
+ this.channel.onmessage = this.onMessage.bind(this);
12
+ this.channel.onmessageerror = this.onError.bind(this);
13
+ }
14
+ onMessage(message) {
15
+ this.onMessageHandler && this.onMessageHandler(message.data.type);
16
+ }
17
+ onError({ data }) {
18
+ this.onErrorHandler && this.onErrorHandler(data);
19
+ }
20
+ notify(type) {
21
+ this.channel?.postMessage({ type });
22
+ }
23
+ async hasPairings() {
24
+ const pairings = (await this.indexedDB.get(StorageKey.WC_2_CORE_PAIRING)) ?? '[]';
25
+ if (pairings.length) {
26
+ return true;
27
+ }
28
+ if (await LocalStorage.isSupported()) {
29
+ return ((await this.localStorage.get(StorageKey.WC_2_CORE_PAIRING)) ?? '[]') !== '[]';
30
+ }
31
+ return false;
32
+ }
33
+ async hasSessions() {
34
+ const sessions = (await this.indexedDB.get(StorageKey.WC_2_CLIENT_SESSION)) ?? '[]';
35
+ if (sessions.length) {
36
+ return true;
37
+ }
38
+ if (await LocalStorage.isSupported()) {
39
+ return ((await this.localStorage.get(StorageKey.WC_2_CLIENT_SESSION)) ?? '[]') !== '[]';
40
+ }
41
+ return false;
42
+ }
43
+ backup() {
44
+ this.indexedDB
45
+ .fillStore('beacon', 'bug_report', [StorageKey.WC_2_CORE_KEYCHAIN])
46
+ .catch((error) => console.error(error.message));
47
+ }
48
+ async resetState() {
49
+ await this.indexedDB.clearStore();
50
+ if (await LocalStorage.isSupported()) {
51
+ await Promise.all([
52
+ this.localStorage.delete(StorageKey.WC_2_CLIENT_SESSION),
53
+ this.localStorage.delete(StorageKey.WC_2_CORE_PAIRING),
54
+ this.localStorage.delete(StorageKey.WC_2_CORE_KEYCHAIN),
55
+ this.localStorage.delete(StorageKey.WC_2_CORE_MESSAGES),
56
+ this.localStorage.delete(StorageKey.WC_2_CLIENT_PROPOSAL),
57
+ this.localStorage.delete(StorageKey.WC_2_CORE_SUBSCRIPTION),
58
+ this.localStorage.delete(StorageKey.WC_2_CORE_HISTORY),
59
+ this.localStorage.delete(StorageKey.WC_2_CORE_EXPIRER)
60
+ ]);
61
+ }
62
+ }
63
+ }
64
+ //# sourceMappingURL=WCStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WCStorage.js","sourceRoot":"","sources":["../../../../src/storage/WCStorage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Storage } from '@tezos-x/octez.connect-types';
2
+ /**
3
+ * Get a supported storage on this platform
4
+ */
5
+ export declare const getStorage: () => Promise<Storage>;
@@ -0,0 +1,21 @@
1
+ import { Logger } from '../utils/Logger';
2
+ import { ChromeStorage } from './ChromeStorage';
3
+ import { LocalStorage } from './LocalStorage';
4
+ const logger = new Logger('STORAGE');
5
+ /**
6
+ * Get a supported storage on this platform
7
+ */
8
+ export const getStorage = async () => {
9
+ if (await ChromeStorage.isSupported()) {
10
+ logger.log('getStorage', 'USING CHROME STORAGE');
11
+ return new ChromeStorage();
12
+ }
13
+ else if (await LocalStorage.isSupported()) {
14
+ logger.log('getStorage', 'USING LOCAL STORAGE');
15
+ return new LocalStorage();
16
+ }
17
+ else {
18
+ throw new Error('no storage type supported');
19
+ }
20
+ };
21
+ //# sourceMappingURL=getStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getStorage.js","sourceRoot":"","sources":["../../../../src/storage/getStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,CAAA;AAEpC;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAA2B,KAAK,IAAsB,EAAE;IAC7E,IAAI,MAAM,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAA;QAEhD,OAAO,IAAI,aAAa,EAAE,CAAA;IAC5B,CAAC;SAAM,IAAI,MAAM,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAA;QAE/C,OAAO,IAAI,YAAY,EAAE,CAAA;IAC3B,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC9C,CAAC;AACH,CAAC,CAAA"}
@@ -0,0 +1,85 @@
1
+ import { TransportType, TransportStatus, PeerInfo, StorageKey, ConnectionContext } from '@tezos-x/octez.connect-types';
2
+ import { PeerManager } from '../managers/PeerManager';
3
+ import { CommunicationClient } from './clients/CommunicationClient';
4
+ import { ClientEvents } from './clients/ClientEvents';
5
+ /**
6
+ * @internalapi
7
+ *
8
+ *
9
+ */
10
+ export declare abstract class Transport<T extends PeerInfo = PeerInfo, K extends StorageKey.TRANSPORT_P2P_PEERS_DAPP | StorageKey.TRANSPORT_P2P_PEERS_WALLET | StorageKey.TRANSPORT_POSTMESSAGE_PEERS_DAPP | StorageKey.TRANSPORT_POSTMESSAGE_PEERS_WALLET | StorageKey.TRANSPORT_WALLETCONNECT_PEERS_DAPP = any, S extends CommunicationClient = any> {
11
+ /**
12
+ * The type of the transport
13
+ */
14
+ readonly type: TransportType;
15
+ /**
16
+ * The name of the app
17
+ */
18
+ readonly name: string;
19
+ /**
20
+ * The status of the transport
21
+ */
22
+ protected _isConnected: TransportStatus;
23
+ protected readonly peerManager: PeerManager<K>;
24
+ /**
25
+ * The client handling the encryption/decryption of messages
26
+ */
27
+ protected client: S;
28
+ /**
29
+ * The listener that will be invoked when a new peer is connected
30
+ */
31
+ protected newPeerListener?: (peer: T) => void;
32
+ setEventHandler(event: ClientEvents, fun: Function): void;
33
+ /**
34
+ * The listeners that will be notified when new messages are coming in
35
+ */
36
+ private listeners;
37
+ /**
38
+ * Return the status of the connection
39
+ */
40
+ get connectionStatus(): TransportStatus;
41
+ constructor(name: string, client: S, peerManager: PeerManager<K>);
42
+ /**
43
+ * Returns a promise that resolves to true if the transport is available, false if it is not
44
+ */
45
+ static isAvailable(): Promise<boolean>;
46
+ /**
47
+ * Connect the transport
48
+ */
49
+ connect(): Promise<void>;
50
+ /**
51
+ * Disconnect the transport
52
+ */
53
+ disconnect(): Promise<void>;
54
+ /**
55
+ * Send a message through the transport
56
+ *
57
+ * @param message The message to send
58
+ * @param recipient The recipient of the message
59
+ */
60
+ send(message: string, peer?: PeerInfo): Promise<void>;
61
+ /**
62
+ * Add a listener to be called when a new message is received
63
+ *
64
+ * @param listener The listener that will be registered
65
+ */
66
+ addListener(listener: (message: unknown, connectionInfo: ConnectionContext) => void): Promise<void>;
67
+ /**
68
+ * Remove a listener
69
+ *
70
+ * @param listener
71
+ */
72
+ removeListener(listener: (message: string, connectionInfo: ConnectionContext) => void): Promise<void>;
73
+ getPeers(): Promise<T[]>;
74
+ addPeer(newPeer: T, _sendPairingResponse?: boolean): Promise<void>;
75
+ removePeer(peerToBeRemoved: T): Promise<void>;
76
+ removeAllPeers(): Promise<void>;
77
+ /**
78
+ * Notify the listeners when a new message comes in
79
+ *
80
+ * @param message Message
81
+ * @param connectionInfo Context info about the connection
82
+ */
83
+ protected notifyListeners(message: unknown, connectionInfo: ConnectionContext): Promise<void>;
84
+ abstract listen(publicKey: string): Promise<void>;
85
+ }