@tezos-x/octez.connect-core 4.8.3 → 4.8.5

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 (453) hide show
  1. package/README.md +18 -4
  2. package/dist/cjs/MockAnalytics.js.map +1 -1
  3. package/dist/cjs/MockWindow.js.map +1 -1
  4. package/dist/cjs/Serializer.js.map +1 -1
  5. package/dist/cjs/clients/beacon-client/BeaconClient.d.ts +1 -2
  6. package/dist/cjs/clients/beacon-client/BeaconClient.js +4 -5
  7. package/dist/cjs/clients/beacon-client/BeaconClient.js.map +1 -1
  8. package/dist/cjs/clients/beacon-client/BeaconClientOptions.js.map +1 -1
  9. package/dist/cjs/clients/client/Client.d.ts +6 -1
  10. package/dist/cjs/clients/client/Client.js +17 -4
  11. package/dist/cjs/clients/client/Client.js.map +1 -1
  12. package/dist/cjs/clients/client/ClientOptions.js.map +1 -1
  13. package/dist/cjs/constants.js +1 -1
  14. package/dist/cjs/constants.js.map +1 -1
  15. package/dist/cjs/debug.js.map +1 -1
  16. package/dist/cjs/errors/AbortedBeaconError.js.map +1 -1
  17. package/dist/cjs/errors/BeaconError.js.map +1 -1
  18. package/dist/cjs/errors/BroadcastBeaconError.js.map +1 -1
  19. package/dist/cjs/errors/EncryptionTypeNotSupportedBeaconError.js.map +1 -1
  20. package/dist/cjs/errors/NetworkNotSupportedBeaconError.js.map +1 -1
  21. package/dist/cjs/errors/NoAddressBeaconError.js.map +1 -1
  22. package/dist/cjs/errors/NoPrivateKeyBeaconError.js.map +1 -1
  23. package/dist/cjs/errors/NotGrantedBeaconError.js.map +1 -1
  24. package/dist/cjs/errors/ParametersInvalidBeaconError.js.map +1 -1
  25. package/dist/cjs/{src/errors/AbortedBeaconError.d.ts → errors/PeerUnreachableBeaconError.d.ts} +1 -1
  26. package/dist/cjs/errors/PeerUnreachableBeaconError.js +17 -0
  27. package/dist/cjs/errors/PeerUnreachableBeaconError.js.map +1 -0
  28. package/dist/cjs/errors/SignatureTypeNotSupportedBeaconError.js.map +1 -1
  29. package/dist/cjs/errors/TooManyOperationsBeaconError.js.map +1 -1
  30. package/dist/cjs/errors/TransactionInvalidBeaconError.js.map +1 -1
  31. package/dist/cjs/errors/UnknownBeaconError.js.map +1 -1
  32. package/dist/cjs/errors/get-error.js +3 -0
  33. package/dist/cjs/errors/get-error.js.map +1 -1
  34. package/dist/cjs/index.d.ts +2 -1
  35. package/dist/cjs/index.js +3 -1
  36. package/dist/cjs/index.js.map +1 -1
  37. package/dist/cjs/managers/AccountManager.js.map +1 -1
  38. package/dist/cjs/managers/AppMetadataManager.js.map +1 -1
  39. package/dist/cjs/managers/PeerManager.js.map +1 -1
  40. package/dist/cjs/managers/PermissionManager.js.map +1 -1
  41. package/dist/cjs/managers/PermissionValidator.js.map +1 -1
  42. package/dist/cjs/managers/StorageManager.js.map +1 -1
  43. package/dist/cjs/migrations/migrate-0.7.0.js.map +1 -1
  44. package/dist/cjs/migrations/migrations.js.map +1 -1
  45. package/dist/cjs/storage/ChromeStorage.js +6 -13
  46. package/dist/cjs/storage/ChromeStorage.js.map +1 -1
  47. package/dist/cjs/storage/IndexedDBStorage.js +8 -1
  48. package/dist/cjs/storage/IndexedDBStorage.js.map +1 -1
  49. package/dist/cjs/storage/LocalStorage.js +5 -16
  50. package/dist/cjs/storage/LocalStorage.js.map +1 -1
  51. package/dist/cjs/storage/StorageValidator.js.map +1 -1
  52. package/dist/cjs/storage/WCStorage.d.ts +1 -2
  53. package/dist/cjs/storage/WCStorage.js +40 -19
  54. package/dist/cjs/storage/WCStorage.js.map +1 -1
  55. package/dist/cjs/storage/getStorage.js.map +1 -1
  56. package/dist/cjs/storage/storage-normalization.d.ts +9 -0
  57. package/dist/cjs/storage/storage-normalization.js +135 -0
  58. package/dist/cjs/storage/storage-normalization.js.map +1 -0
  59. package/dist/cjs/transports/Transport.js +6 -2
  60. package/dist/cjs/transports/Transport.js.map +1 -1
  61. package/dist/cjs/transports/clients/ClientEvents.js.map +1 -1
  62. package/dist/cjs/transports/clients/CommunicationClient.d.ts +1 -1
  63. package/dist/cjs/transports/clients/CommunicationClient.js +6 -7
  64. package/dist/cjs/transports/clients/CommunicationClient.js.map +1 -1
  65. package/dist/cjs/transports/clients/MessageBasedClient.d.ts +1 -1
  66. package/dist/cjs/transports/clients/MessageBasedClient.js.map +1 -1
  67. package/dist/cjs/utils/Logger.js.map +1 -1
  68. package/dist/cjs/utils/assert-never.js.map +1 -1
  69. package/dist/cjs/utils/get-account-identifier.js.map +1 -1
  70. package/dist/cjs/utils/get-sender-id.js.map +1 -1
  71. package/dist/cjs/utils/multi-tab-channel.d.ts +1 -0
  72. package/dist/cjs/utils/multi-tab-channel.js +15 -0
  73. package/dist/cjs/utils/multi-tab-channel.js.map +1 -1
  74. package/dist/esm/MockAnalytics.js.map +1 -1
  75. package/dist/esm/MockWindow.js.map +1 -1
  76. package/dist/esm/Serializer.js.map +1 -1
  77. package/dist/esm/clients/beacon-client/BeaconClient.d.ts +1 -2
  78. package/dist/esm/clients/beacon-client/BeaconClient.js +1 -2
  79. package/dist/esm/clients/beacon-client/BeaconClient.js.map +1 -1
  80. package/dist/esm/clients/beacon-client/BeaconClientOptions.js.map +1 -1
  81. package/dist/esm/clients/client/Client.d.ts +6 -1
  82. package/dist/esm/clients/client/Client.js +17 -4
  83. package/dist/esm/clients/client/Client.js.map +1 -1
  84. package/dist/esm/clients/client/ClientOptions.js.map +1 -1
  85. package/dist/esm/constants.js +1 -1
  86. package/dist/esm/constants.js.map +1 -1
  87. package/dist/esm/debug.js.map +1 -1
  88. package/dist/esm/errors/AbortedBeaconError.js.map +1 -1
  89. package/dist/esm/errors/BeaconError.js.map +1 -1
  90. package/dist/esm/errors/BroadcastBeaconError.js.map +1 -1
  91. package/dist/esm/errors/EncryptionTypeNotSupportedBeaconError.js.map +1 -1
  92. package/dist/esm/errors/NetworkNotSupportedBeaconError.js.map +1 -1
  93. package/dist/esm/errors/NoAddressBeaconError.js.map +1 -1
  94. package/dist/esm/errors/NoPrivateKeyBeaconError.js.map +1 -1
  95. package/dist/esm/errors/NotGrantedBeaconError.js.map +1 -1
  96. package/dist/esm/errors/ParametersInvalidBeaconError.js.map +1 -1
  97. package/dist/{cjs/src/errors/BroadcastBeaconError.d.ts → esm/errors/PeerUnreachableBeaconError.d.ts} +1 -1
  98. package/dist/esm/errors/PeerUnreachableBeaconError.js +13 -0
  99. package/dist/esm/errors/PeerUnreachableBeaconError.js.map +1 -0
  100. package/dist/esm/errors/SignatureTypeNotSupportedBeaconError.js.map +1 -1
  101. package/dist/esm/errors/TooManyOperationsBeaconError.js.map +1 -1
  102. package/dist/esm/errors/TransactionInvalidBeaconError.js.map +1 -1
  103. package/dist/esm/errors/UnknownBeaconError.js.map +1 -1
  104. package/dist/esm/errors/get-error.js +3 -0
  105. package/dist/esm/errors/get-error.js.map +1 -1
  106. package/dist/esm/index.d.ts +2 -1
  107. package/dist/esm/index.js +2 -1
  108. package/dist/esm/index.js.map +1 -1
  109. package/dist/esm/managers/AccountManager.js.map +1 -1
  110. package/dist/esm/managers/AppMetadataManager.js.map +1 -1
  111. package/dist/esm/managers/PeerManager.js.map +1 -1
  112. package/dist/esm/managers/PermissionManager.js.map +1 -1
  113. package/dist/esm/managers/PermissionValidator.js.map +1 -1
  114. package/dist/esm/managers/StorageManager.js.map +1 -1
  115. package/dist/esm/migrations/migrate-0.7.0.js.map +1 -1
  116. package/dist/esm/migrations/migrations.js.map +1 -1
  117. package/dist/esm/storage/ChromeStorage.js +6 -13
  118. package/dist/esm/storage/ChromeStorage.js.map +1 -1
  119. package/dist/esm/storage/IndexedDBStorage.js +8 -1
  120. package/dist/esm/storage/IndexedDBStorage.js.map +1 -1
  121. package/dist/esm/storage/LocalStorage.js +6 -17
  122. package/dist/esm/storage/LocalStorage.js.map +1 -1
  123. package/dist/esm/storage/StorageValidator.js.map +1 -1
  124. package/dist/esm/storage/WCStorage.d.ts +1 -2
  125. package/dist/esm/storage/WCStorage.js +40 -17
  126. package/dist/esm/storage/WCStorage.js.map +1 -1
  127. package/dist/esm/storage/getStorage.js.map +1 -1
  128. package/dist/esm/storage/storage-normalization.d.ts +9 -0
  129. package/dist/esm/storage/storage-normalization.js +128 -0
  130. package/dist/esm/storage/storage-normalization.js.map +1 -0
  131. package/dist/esm/transports/Transport.js +6 -2
  132. package/dist/esm/transports/Transport.js.map +1 -1
  133. package/dist/esm/transports/clients/ClientEvents.js.map +1 -1
  134. package/dist/esm/transports/clients/CommunicationClient.d.ts +1 -1
  135. package/dist/esm/transports/clients/CommunicationClient.js +1 -2
  136. package/dist/esm/transports/clients/CommunicationClient.js.map +1 -1
  137. package/dist/esm/transports/clients/MessageBasedClient.d.ts +1 -1
  138. package/dist/esm/transports/clients/MessageBasedClient.js.map +1 -1
  139. package/dist/esm/utils/Logger.js.map +1 -1
  140. package/dist/esm/utils/assert-never.js.map +1 -1
  141. package/dist/esm/utils/get-account-identifier.js.map +1 -1
  142. package/dist/esm/utils/get-sender-id.js.map +1 -1
  143. package/dist/esm/utils/multi-tab-channel.d.ts +1 -0
  144. package/dist/esm/utils/multi-tab-channel.js +13 -0
  145. package/dist/esm/utils/multi-tab-channel.js.map +1 -1
  146. package/package.json +12 -12
  147. package/LICENCE +0 -19
  148. package/dist/cjs/package.json +0 -46
  149. package/dist/cjs/src/MockAnalytics.d.ts +0 -4
  150. package/dist/cjs/src/MockAnalytics.js +0 -11
  151. package/dist/cjs/src/MockAnalytics.js.map +0 -1
  152. package/dist/cjs/src/MockWindow.d.ts +0 -14
  153. package/dist/cjs/src/MockWindow.js +0 -39
  154. package/dist/cjs/src/MockWindow.js.map +0 -1
  155. package/dist/cjs/src/Serializer.d.ts +0 -21
  156. package/dist/cjs/src/Serializer.js +0 -69
  157. package/dist/cjs/src/Serializer.js.map +0 -1
  158. package/dist/cjs/src/clients/beacon-client/BeaconClient.d.ts +0 -53
  159. package/dist/cjs/src/clients/beacon-client/BeaconClient.js +0 -111
  160. package/dist/cjs/src/clients/beacon-client/BeaconClient.js.map +0 -1
  161. package/dist/cjs/src/clients/beacon-client/BeaconClientOptions.d.ts +0 -26
  162. package/dist/cjs/src/clients/beacon-client/BeaconClientOptions.js +0 -3
  163. package/dist/cjs/src/clients/beacon-client/BeaconClientOptions.js.map +0 -1
  164. package/dist/cjs/src/clients/client/Client.d.ts +0 -106
  165. package/dist/cjs/src/clients/client/Client.js +0 -305
  166. package/dist/cjs/src/clients/client/Client.js.map +0 -1
  167. package/dist/cjs/src/clients/client/ClientOptions.d.ts +0 -42
  168. package/dist/cjs/src/clients/client/ClientOptions.js +0 -3
  169. package/dist/cjs/src/clients/client/ClientOptions.js.map +0 -1
  170. package/dist/cjs/src/constants.d.ts +0 -8
  171. package/dist/cjs/src/constants.js +0 -12
  172. package/dist/cjs/src/constants.js.map +0 -1
  173. package/dist/cjs/src/debug.d.ts +0 -2
  174. package/dist/cjs/src/debug.js +0 -17
  175. package/dist/cjs/src/debug.js.map +0 -1
  176. package/dist/cjs/src/errors/AbortedBeaconError.js +0 -18
  177. package/dist/cjs/src/errors/AbortedBeaconError.js.map +0 -1
  178. package/dist/cjs/src/errors/BeaconError.d.ts +0 -18
  179. package/dist/cjs/src/errors/BeaconError.js +0 -25
  180. package/dist/cjs/src/errors/BeaconError.js.map +0 -1
  181. package/dist/cjs/src/errors/BroadcastBeaconError.js +0 -18
  182. package/dist/cjs/src/errors/BroadcastBeaconError.js.map +0 -1
  183. package/dist/cjs/src/errors/EncryptionTypeNotSupportedBeaconError.d.ts +0 -3
  184. package/dist/cjs/src/errors/EncryptionTypeNotSupportedBeaconError.js +0 -18
  185. package/dist/cjs/src/errors/EncryptionTypeNotSupportedBeaconError.js.map +0 -1
  186. package/dist/cjs/src/errors/NetworkNotSupportedBeaconError.d.ts +0 -9
  187. package/dist/cjs/src/errors/NetworkNotSupportedBeaconError.js +0 -18
  188. package/dist/cjs/src/errors/NetworkNotSupportedBeaconError.js.map +0 -1
  189. package/dist/cjs/src/errors/NoAddressBeaconError.d.ts +0 -9
  190. package/dist/cjs/src/errors/NoAddressBeaconError.js +0 -18
  191. package/dist/cjs/src/errors/NoAddressBeaconError.js.map +0 -1
  192. package/dist/cjs/src/errors/NoPrivateKeyBeaconError.d.ts +0 -9
  193. package/dist/cjs/src/errors/NoPrivateKeyBeaconError.js +0 -18
  194. package/dist/cjs/src/errors/NoPrivateKeyBeaconError.js.map +0 -1
  195. package/dist/cjs/src/errors/NotGrantedBeaconError.d.ts +0 -9
  196. package/dist/cjs/src/errors/NotGrantedBeaconError.js +0 -18
  197. package/dist/cjs/src/errors/NotGrantedBeaconError.js.map +0 -1
  198. package/dist/cjs/src/errors/ParametersInvalidBeaconError.d.ts +0 -9
  199. package/dist/cjs/src/errors/ParametersInvalidBeaconError.js +0 -18
  200. package/dist/cjs/src/errors/ParametersInvalidBeaconError.js.map +0 -1
  201. package/dist/cjs/src/errors/SignatureTypeNotSupportedBeaconError.d.ts +0 -9
  202. package/dist/cjs/src/errors/SignatureTypeNotSupportedBeaconError.js +0 -18
  203. package/dist/cjs/src/errors/SignatureTypeNotSupportedBeaconError.js.map +0 -1
  204. package/dist/cjs/src/errors/TooManyOperationsBeaconError.d.ts +0 -9
  205. package/dist/cjs/src/errors/TooManyOperationsBeaconError.js +0 -18
  206. package/dist/cjs/src/errors/TooManyOperationsBeaconError.js.map +0 -1
  207. package/dist/cjs/src/errors/TransactionInvalidBeaconError.d.ts +0 -14
  208. package/dist/cjs/src/errors/TransactionInvalidBeaconError.js +0 -23
  209. package/dist/cjs/src/errors/TransactionInvalidBeaconError.js.map +0 -1
  210. package/dist/cjs/src/errors/UnknownBeaconError.d.ts +0 -9
  211. package/dist/cjs/src/errors/UnknownBeaconError.js +0 -18
  212. package/dist/cjs/src/errors/UnknownBeaconError.js.map +0 -1
  213. package/dist/cjs/src/errors/error-codes.d.ts +0 -170
  214. package/dist/cjs/src/errors/error-codes.js +0 -108
  215. package/dist/cjs/src/errors/error-codes.js.map +0 -1
  216. package/dist/cjs/src/errors/get-error.d.ts +0 -8
  217. package/dist/cjs/src/errors/get-error.js +0 -53
  218. package/dist/cjs/src/errors/get-error.js.map +0 -1
  219. package/dist/cjs/src/index.d.ts +0 -58
  220. package/dist/cjs/src/index.js +0 -119
  221. package/dist/cjs/src/index.js.map +0 -1
  222. package/dist/cjs/src/managers/AccountManager.d.ts +0 -18
  223. package/dist/cjs/src/managers/AccountManager.js +0 -73
  224. package/dist/cjs/src/managers/AccountManager.js.map +0 -1
  225. package/dist/cjs/src/managers/AppMetadataManager.d.ts +0 -16
  226. package/dist/cjs/src/managers/AppMetadataManager.js +0 -57
  227. package/dist/cjs/src/managers/AppMetadataManager.js.map +0 -1
  228. package/dist/cjs/src/managers/PeerManager.d.ts +0 -18
  229. package/dist/cjs/src/managers/PeerManager.js +0 -61
  230. package/dist/cjs/src/managers/PeerManager.js.map +0 -1
  231. package/dist/cjs/src/managers/PermissionManager.d.ts +0 -17
  232. package/dist/cjs/src/managers/PermissionManager.js +0 -64
  233. package/dist/cjs/src/managers/PermissionManager.js.map +0 -1
  234. package/dist/cjs/src/managers/PermissionValidator.d.ts +0 -16
  235. package/dist/cjs/src/managers/PermissionValidator.js +0 -58
  236. package/dist/cjs/src/managers/PermissionValidator.js.map +0 -1
  237. package/dist/cjs/src/managers/StorageManager.d.ts +0 -18
  238. package/dist/cjs/src/managers/StorageManager.js +0 -72
  239. package/dist/cjs/src/managers/StorageManager.js.map +0 -1
  240. package/dist/cjs/src/message-protocol.d.ts +0 -2
  241. package/dist/cjs/src/message-protocol.js +0 -12
  242. package/dist/cjs/src/message-protocol.js.map +0 -1
  243. package/dist/cjs/src/migrations/migrate-0.7.0.d.ts +0 -20
  244. package/dist/cjs/src/migrations/migrate-0.7.0.js +0 -44
  245. package/dist/cjs/src/migrations/migrate-0.7.0.js.map +0 -1
  246. package/dist/cjs/src/migrations/migrations.d.ts +0 -2
  247. package/dist/cjs/src/migrations/migrations.js +0 -44
  248. package/dist/cjs/src/migrations/migrations.js.map +0 -1
  249. package/dist/cjs/src/storage/ChromeStorage.d.ts +0 -19
  250. package/dist/cjs/src/storage/ChromeStorage.js +0 -77
  251. package/dist/cjs/src/storage/ChromeStorage.js.map +0 -1
  252. package/dist/cjs/src/storage/IndexedDBStorage.d.ts +0 -65
  253. package/dist/cjs/src/storage/IndexedDBStorage.js +0 -230
  254. package/dist/cjs/src/storage/IndexedDBStorage.js.map +0 -1
  255. package/dist/cjs/src/storage/LocalStorage.d.ts +0 -21
  256. package/dist/cjs/src/storage/LocalStorage.js +0 -92
  257. package/dist/cjs/src/storage/LocalStorage.js.map +0 -1
  258. package/dist/cjs/src/storage/StorageValidator.d.ts +0 -12
  259. package/dist/cjs/src/storage/StorageValidator.js +0 -110
  260. package/dist/cjs/src/storage/StorageValidator.js.map +0 -1
  261. package/dist/cjs/src/storage/WCStorage.d.ts +0 -15
  262. package/dist/cjs/src/storage/WCStorage.js +0 -84
  263. package/dist/cjs/src/storage/WCStorage.js.map +0 -1
  264. package/dist/cjs/src/storage/getStorage.d.ts +0 -5
  265. package/dist/cjs/src/storage/getStorage.js +0 -34
  266. package/dist/cjs/src/storage/getStorage.js.map +0 -1
  267. package/dist/cjs/src/transports/Transport.d.ts +0 -85
  268. package/dist/cjs/src/transports/Transport.js +0 -171
  269. package/dist/cjs/src/transports/Transport.js.map +0 -1
  270. package/dist/cjs/src/transports/clients/ClientEvents.d.ts +0 -6
  271. package/dist/cjs/src/transports/clients/ClientEvents.js +0 -3
  272. package/dist/cjs/src/transports/clients/ClientEvents.js.map +0 -1
  273. package/dist/cjs/src/transports/clients/CommunicationClient.d.ts +0 -47
  274. package/dist/cjs/src/transports/clients/CommunicationClient.js +0 -86
  275. package/dist/cjs/src/transports/clients/CommunicationClient.js.map +0 -1
  276. package/dist/cjs/src/transports/clients/MessageBasedClient.d.ts +0 -56
  277. package/dist/cjs/src/transports/clients/MessageBasedClient.js +0 -110
  278. package/dist/cjs/src/transports/clients/MessageBasedClient.js.map +0 -1
  279. package/dist/cjs/src/utils/Logger.d.ts +0 -33
  280. package/dist/cjs/src/utils/Logger.js +0 -98
  281. package/dist/cjs/src/utils/Logger.js.map +0 -1
  282. package/dist/cjs/src/utils/assert-never.d.ts +0 -6
  283. package/dist/cjs/src/utils/assert-never.js +0 -14
  284. package/dist/cjs/src/utils/assert-never.js.map +0 -1
  285. package/dist/cjs/src/utils/diagnostics.d.ts +0 -38
  286. package/dist/cjs/src/utils/diagnostics.js +0 -208
  287. package/dist/cjs/src/utils/diagnostics.js.map +0 -1
  288. package/dist/cjs/src/utils/get-account-identifier.d.ts +0 -10
  289. package/dist/cjs/src/utils/get-account-identifier.js +0 -39
  290. package/dist/cjs/src/utils/get-account-identifier.js.map +0 -1
  291. package/dist/cjs/src/utils/get-sender-id.d.ts +0 -8
  292. package/dist/cjs/src/utils/get-sender-id.js +0 -34
  293. package/dist/cjs/src/utils/get-sender-id.js.map +0 -1
  294. package/dist/cjs/src/utils/message-utils.d.ts +0 -2
  295. package/dist/cjs/src/utils/message-utils.js +0 -13
  296. package/dist/cjs/src/utils/message-utils.js.map +0 -1
  297. package/dist/cjs/src/utils/multi-tab-channel.d.ts +0 -17
  298. package/dist/cjs/src/utils/multi-tab-channel.js +0 -85
  299. package/dist/cjs/src/utils/multi-tab-channel.js.map +0 -1
  300. package/dist/esm/package.json +0 -46
  301. package/dist/esm/src/MockAnalytics.d.ts +0 -4
  302. package/dist/esm/src/MockAnalytics.js +0 -7
  303. package/dist/esm/src/MockAnalytics.js.map +0 -1
  304. package/dist/esm/src/MockWindow.d.ts +0 -14
  305. package/dist/esm/src/MockWindow.js +0 -35
  306. package/dist/esm/src/MockWindow.js.map +0 -1
  307. package/dist/esm/src/Serializer.d.ts +0 -21
  308. package/dist/esm/src/Serializer.js +0 -50
  309. package/dist/esm/src/Serializer.js.map +0 -1
  310. package/dist/esm/src/clients/beacon-client/BeaconClient.d.ts +0 -53
  311. package/dist/esm/src/clients/beacon-client/BeaconClient.js +0 -103
  312. package/dist/esm/src/clients/beacon-client/BeaconClient.js.map +0 -1
  313. package/dist/esm/src/clients/beacon-client/BeaconClientOptions.d.ts +0 -26
  314. package/dist/esm/src/clients/beacon-client/BeaconClientOptions.js +0 -2
  315. package/dist/esm/src/clients/beacon-client/BeaconClientOptions.js.map +0 -1
  316. package/dist/esm/src/clients/client/Client.d.ts +0 -106
  317. package/dist/esm/src/clients/client/Client.js +0 -260
  318. package/dist/esm/src/clients/client/Client.js.map +0 -1
  319. package/dist/esm/src/clients/client/ClientOptions.d.ts +0 -42
  320. package/dist/esm/src/clients/client/ClientOptions.js +0 -2
  321. package/dist/esm/src/clients/client/ClientOptions.js.map +0 -1
  322. package/dist/esm/src/constants.d.ts +0 -8
  323. package/dist/esm/src/constants.js +0 -9
  324. package/dist/esm/src/constants.js.map +0 -1
  325. package/dist/esm/src/debug.d.ts +0 -2
  326. package/dist/esm/src/debug.js +0 -12
  327. package/dist/esm/src/debug.js.map +0 -1
  328. package/dist/esm/src/errors/AbortedBeaconError.d.ts +0 -9
  329. package/dist/esm/src/errors/AbortedBeaconError.js +0 -14
  330. package/dist/esm/src/errors/AbortedBeaconError.js.map +0 -1
  331. package/dist/esm/src/errors/BeaconError.d.ts +0 -18
  332. package/dist/esm/src/errors/BeaconError.js +0 -24
  333. package/dist/esm/src/errors/BeaconError.js.map +0 -1
  334. package/dist/esm/src/errors/BroadcastBeaconError.d.ts +0 -9
  335. package/dist/esm/src/errors/BroadcastBeaconError.js +0 -14
  336. package/dist/esm/src/errors/BroadcastBeaconError.js.map +0 -1
  337. package/dist/esm/src/errors/EncryptionTypeNotSupportedBeaconError.d.ts +0 -3
  338. package/dist/esm/src/errors/EncryptionTypeNotSupportedBeaconError.js +0 -18
  339. package/dist/esm/src/errors/EncryptionTypeNotSupportedBeaconError.js.map +0 -1
  340. package/dist/esm/src/errors/NetworkNotSupportedBeaconError.d.ts +0 -9
  341. package/dist/esm/src/errors/NetworkNotSupportedBeaconError.js +0 -14
  342. package/dist/esm/src/errors/NetworkNotSupportedBeaconError.js.map +0 -1
  343. package/dist/esm/src/errors/NoAddressBeaconError.d.ts +0 -9
  344. package/dist/esm/src/errors/NoAddressBeaconError.js +0 -14
  345. package/dist/esm/src/errors/NoAddressBeaconError.js.map +0 -1
  346. package/dist/esm/src/errors/NoPrivateKeyBeaconError.d.ts +0 -9
  347. package/dist/esm/src/errors/NoPrivateKeyBeaconError.js +0 -14
  348. package/dist/esm/src/errors/NoPrivateKeyBeaconError.js.map +0 -1
  349. package/dist/esm/src/errors/NotGrantedBeaconError.d.ts +0 -9
  350. package/dist/esm/src/errors/NotGrantedBeaconError.js +0 -14
  351. package/dist/esm/src/errors/NotGrantedBeaconError.js.map +0 -1
  352. package/dist/esm/src/errors/ParametersInvalidBeaconError.d.ts +0 -9
  353. package/dist/esm/src/errors/ParametersInvalidBeaconError.js +0 -14
  354. package/dist/esm/src/errors/ParametersInvalidBeaconError.js.map +0 -1
  355. package/dist/esm/src/errors/SignatureTypeNotSupportedBeaconError.d.ts +0 -9
  356. package/dist/esm/src/errors/SignatureTypeNotSupportedBeaconError.js +0 -14
  357. package/dist/esm/src/errors/SignatureTypeNotSupportedBeaconError.js.map +0 -1
  358. package/dist/esm/src/errors/TooManyOperationsBeaconError.d.ts +0 -9
  359. package/dist/esm/src/errors/TooManyOperationsBeaconError.js +0 -14
  360. package/dist/esm/src/errors/TooManyOperationsBeaconError.js.map +0 -1
  361. package/dist/esm/src/errors/TransactionInvalidBeaconError.d.ts +0 -14
  362. package/dist/esm/src/errors/TransactionInvalidBeaconError.js +0 -20
  363. package/dist/esm/src/errors/TransactionInvalidBeaconError.js.map +0 -1
  364. package/dist/esm/src/errors/UnknownBeaconError.d.ts +0 -9
  365. package/dist/esm/src/errors/UnknownBeaconError.js +0 -14
  366. package/dist/esm/src/errors/UnknownBeaconError.js.map +0 -1
  367. package/dist/esm/src/errors/error-codes.d.ts +0 -170
  368. package/dist/esm/src/errors/error-codes.js +0 -111
  369. package/dist/esm/src/errors/error-codes.js.map +0 -1
  370. package/dist/esm/src/errors/get-error.d.ts +0 -8
  371. package/dist/esm/src/errors/get-error.js +0 -49
  372. package/dist/esm/src/errors/get-error.js.map +0 -1
  373. package/dist/esm/src/index.d.ts +0 -58
  374. package/dist/esm/src/index.js +0 -73
  375. package/dist/esm/src/index.js.map +0 -1
  376. package/dist/esm/src/managers/AccountManager.d.ts +0 -18
  377. package/dist/esm/src/managers/AccountManager.js +0 -44
  378. package/dist/esm/src/managers/AccountManager.js.map +0 -1
  379. package/dist/esm/src/managers/AppMetadataManager.d.ts +0 -16
  380. package/dist/esm/src/managers/AppMetadataManager.js +0 -32
  381. package/dist/esm/src/managers/AppMetadataManager.js.map +0 -1
  382. package/dist/esm/src/managers/PeerManager.d.ts +0 -18
  383. package/dist/esm/src/managers/PeerManager.js +0 -34
  384. package/dist/esm/src/managers/PeerManager.js.map +0 -1
  385. package/dist/esm/src/managers/PermissionManager.d.ts +0 -17
  386. package/dist/esm/src/managers/PermissionManager.js +0 -37
  387. package/dist/esm/src/managers/PermissionManager.js.map +0 -1
  388. package/dist/esm/src/managers/PermissionValidator.d.ts +0 -16
  389. package/dist/esm/src/managers/PermissionValidator.js +0 -43
  390. package/dist/esm/src/managers/PermissionValidator.js.map +0 -1
  391. package/dist/esm/src/managers/StorageManager.d.ts +0 -18
  392. package/dist/esm/src/managers/StorageManager.js +0 -50
  393. package/dist/esm/src/managers/StorageManager.js.map +0 -1
  394. package/dist/esm/src/message-protocol.d.ts +0 -2
  395. package/dist/esm/src/message-protocol.js +0 -7
  396. package/dist/esm/src/message-protocol.js.map +0 -1
  397. package/dist/esm/src/migrations/migrate-0.7.0.d.ts +0 -20
  398. package/dist/esm/src/migrations/migrate-0.7.0.js +0 -31
  399. package/dist/esm/src/migrations/migrate-0.7.0.js.map +0 -1
  400. package/dist/esm/src/migrations/migrations.d.ts +0 -2
  401. package/dist/esm/src/migrations/migrations.js +0 -31
  402. package/dist/esm/src/migrations/migrations.js.map +0 -1
  403. package/dist/esm/src/storage/ChromeStorage.d.ts +0 -19
  404. package/dist/esm/src/storage/ChromeStorage.js +0 -54
  405. package/dist/esm/src/storage/ChromeStorage.js.map +0 -1
  406. package/dist/esm/src/storage/IndexedDBStorage.d.ts +0 -65
  407. package/dist/esm/src/storage/IndexedDBStorage.js +0 -212
  408. package/dist/esm/src/storage/IndexedDBStorage.js.map +0 -1
  409. package/dist/esm/src/storage/LocalStorage.d.ts +0 -21
  410. package/dist/esm/src/storage/LocalStorage.js +0 -70
  411. package/dist/esm/src/storage/LocalStorage.js.map +0 -1
  412. package/dist/esm/src/storage/StorageValidator.d.ts +0 -12
  413. package/dist/esm/src/storage/StorageValidator.js +0 -96
  414. package/dist/esm/src/storage/StorageValidator.js.map +0 -1
  415. package/dist/esm/src/storage/WCStorage.d.ts +0 -15
  416. package/dist/esm/src/storage/WCStorage.js +0 -64
  417. package/dist/esm/src/storage/WCStorage.js.map +0 -1
  418. package/dist/esm/src/storage/getStorage.d.ts +0 -5
  419. package/dist/esm/src/storage/getStorage.js +0 -21
  420. package/dist/esm/src/storage/getStorage.js.map +0 -1
  421. package/dist/esm/src/transports/Transport.d.ts +0 -85
  422. package/dist/esm/src/transports/Transport.js +0 -149
  423. package/dist/esm/src/transports/Transport.js.map +0 -1
  424. package/dist/esm/src/transports/clients/ClientEvents.d.ts +0 -6
  425. package/dist/esm/src/transports/clients/ClientEvents.js +0 -2
  426. package/dist/esm/src/transports/clients/ClientEvents.js.map +0 -1
  427. package/dist/esm/src/transports/clients/CommunicationClient.d.ts +0 -47
  428. package/dist/esm/src/transports/clients/CommunicationClient.js +0 -63
  429. package/dist/esm/src/transports/clients/CommunicationClient.js.map +0 -1
  430. package/dist/esm/src/transports/clients/MessageBasedClient.d.ts +0 -56
  431. package/dist/esm/src/transports/clients/MessageBasedClient.js +0 -84
  432. package/dist/esm/src/transports/clients/MessageBasedClient.js.map +0 -1
  433. package/dist/esm/src/utils/Logger.d.ts +0 -33
  434. package/dist/esm/src/utils/Logger.js +0 -92
  435. package/dist/esm/src/utils/Logger.js.map +0 -1
  436. package/dist/esm/src/utils/assert-never.d.ts +0 -6
  437. package/dist/esm/src/utils/assert-never.js +0 -11
  438. package/dist/esm/src/utils/assert-never.js.map +0 -1
  439. package/dist/esm/src/utils/diagnostics.d.ts +0 -38
  440. package/dist/esm/src/utils/diagnostics.js +0 -183
  441. package/dist/esm/src/utils/diagnostics.js.map +0 -1
  442. package/dist/esm/src/utils/get-account-identifier.d.ts +0 -10
  443. package/dist/esm/src/utils/get-account-identifier.js +0 -23
  444. package/dist/esm/src/utils/get-account-identifier.js.map +0 -1
  445. package/dist/esm/src/utils/get-sender-id.d.ts +0 -8
  446. package/dist/esm/src/utils/get-sender-id.js +0 -18
  447. package/dist/esm/src/utils/get-sender-id.js.map +0 -1
  448. package/dist/esm/src/utils/message-utils.d.ts +0 -2
  449. package/dist/esm/src/utils/message-utils.js +0 -9
  450. package/dist/esm/src/utils/message-utils.js.map +0 -1
  451. package/dist/esm/src/utils/multi-tab-channel.d.ts +0 -17
  452. package/dist/esm/src/utils/multi-tab-channel.js +0 -66
  453. package/dist/esm/src/utils/multi-tab-channel.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionValidator.js","sourceRoot":"","sources":["../../../src/managers/PermissionValidator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sEAKqC;AACrC,4EAAsE;AAEtE;;;;GAIG;AACH,MAAa,mBAAmB;IAC9B;;;;;;OAMG;IACI,MAAM,CAAO,aAAa,CAC/B,OAAsB,EACtB,MAA6D,EAC7D,MAAyC;;YAEzC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrB,KAAK,uCAAiB,CAAC,iBAAiB,CAAC;gBACzC,KAAK,uCAAiB,CAAC,gBAAgB,CAAC,CAAC,CAAC;oBACxC,OAAO,IAAI,CAAA;gBACb,CAAC;gBACD,KAAK,uCAAiB,CAAC,gBAAgB,CAAC,CAAC,CAAC;oBACxC,MAAM,iBAAiB,GAAW,MAAM,IAAA,6CAAoB,EAC1D,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,OAAO,CAChB,CAAA;oBAED,MAAM,UAAU,GAAiC,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAA;oBAChF,IAAI,CAAC,UAAU,EAAE,CAAC;wBAChB,OAAO,KAAK,CAAA;oBACd,CAAC;oBAED,OAAO,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,qCAAe,CAAC,iBAAiB,CAAC,CAAA;gBACtE,CAAC;gBACD,KAAK,uCAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBAC1C,MAAM,WAAW,GAAuB,MAAM,MAAM,EAAE,CAAA;oBACtD,MAAM,mBAAmB,GAAuB,WAAW,CAAC,MAAM,CAChE,CAAC,UAA4B,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,KAAK,OAAO,CAAC,aAAa,CAC/E,CAAA;oBAED,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACrC,OAAO,KAAK,CAAA;oBACd,CAAC;oBAED,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,UAA4B,EAAE,EAAE,CAC/D,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,qCAAe,CAAC,IAAI,CAAC,CACjD,CAAA;gBACH,CAAC;gBACD;oBACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;YAC1C,CAAC;QACH,CAAC;KAAA;CACF;AAjDD,kDAiDC"}
1
+ {"version":3,"file":"PermissionValidator.js","sourceRoot":"","sources":["../../../src/managers/PermissionValidator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sEAKqC;AACrC,4EAAsE;AAEtE;;;;GAIG;AACH,MAAa,mBAAmB;IAC9B;;;;;;OAMG;IACI,MAAM,CAAO,aAAa,CAC/B,OAAsB,EACtB,MAA6D,EAC7D,MAAyC;;YAEzC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrB,KAAK,uCAAiB,CAAC,iBAAiB,CAAC;gBACzC,KAAK,uCAAiB,CAAC,gBAAgB,CAAC,CAAC,CAAC;oBACxC,OAAO,IAAI,CAAA;gBACb,CAAC;gBACD,KAAK,uCAAiB,CAAC,gBAAgB,CAAC,CAAC,CAAC;oBACxC,MAAM,iBAAiB,GAAW,MAAM,IAAA,6CAAoB,EAC1D,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,OAAO,CAChB,CAAA;oBAED,MAAM,UAAU,GAAiC,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAA;oBAChF,IAAI,CAAC,UAAU,EAAE,CAAC;wBAChB,OAAO,KAAK,CAAA;oBACd,CAAC;oBAED,OAAO,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,qCAAe,CAAC,iBAAiB,CAAC,CAAA;gBACtE,CAAC;gBACD,KAAK,uCAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBAC1C,MAAM,WAAW,GAAuB,MAAM,MAAM,EAAE,CAAA;oBACtD,MAAM,mBAAmB,GAAuB,WAAW,CAAC,MAAM,CAChE,CAAC,UAA4B,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,KAAK,OAAO,CAAC,aAAa,CAC/E,CAAA;oBAED,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACrC,OAAO,KAAK,CAAA;oBACd,CAAC;oBAED,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,UAA4B,EAAE,EAAE,CAC/D,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,qCAAe,CAAC,IAAI,CAAC,CACjD,CAAA;gBACH,CAAC;gBACD;oBACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;YAC1C,CAAC;QACH,CAAC;KAAA;CACF;AAjDD,kDAiDC","sourcesContent":["import {\n BeaconMessage,\n BeaconMessageType,\n PermissionScope,\n PermissionEntity\n} from '@tezos-x/octez.connect-types'\nimport { getAccountIdentifier } from '../utils/get-account-identifier'\n\n/**\n * @internalapi\n *\n * The PermissionValidator is used to check if permissions for a certain message type have been given\n */\nexport class PermissionValidator {\n /**\n * Check if permissions were given for a certain message type.\n *\n * PermissionRequest and BroadcastRequest will always return true.\n *\n * @param message octez.connect message\n */\n public static async hasPermission(\n message: BeaconMessage,\n getOne: (id: string) => Promise<PermissionEntity | undefined>,\n getAll: () => Promise<PermissionEntity[]>\n ): Promise<boolean> {\n switch (message.type) {\n case BeaconMessageType.PermissionRequest:\n case BeaconMessageType.BroadcastRequest: {\n return true\n }\n case BeaconMessageType.OperationRequest: {\n const accountIdentifier: string = await getAccountIdentifier(\n message.sourceAddress,\n message.network\n )\n\n const permission: PermissionEntity | undefined = await getOne(accountIdentifier)\n if (!permission) {\n return false\n }\n\n return permission.scopes.includes(PermissionScope.OPERATION_REQUEST)\n }\n case BeaconMessageType.SignPayloadRequest: {\n const permissions: PermissionEntity[] = await getAll()\n const filteredPermissions: PermissionEntity[] = permissions.filter(\n (permission: PermissionEntity) => permission.address === message.sourceAddress\n )\n\n if (filteredPermissions.length === 0) {\n return false\n }\n\n return filteredPermissions.some((permission: PermissionEntity) =>\n permission.scopes.includes(PermissionScope.SIGN)\n )\n }\n default:\n throw new Error('Message not handled')\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"StorageManager.js","sourceRoot":"","sources":["../../../src/managers/StorageManager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA,wDAAwD;AACxD,SAAS,YAAY,CAAI,KAAQ;IAC/B,8DAA8D;IAC9D,OAAO,KAAY,CAAA;AACrB,CAAC;AACD,uDAAuD;AAEvD;;;;GAIG;AACH,MAAa,cAAc;IAczB,YAAY,OAAgB,EAAE,UAAa;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAEY,MAAM;;;YACjB,OAAO,MAAA,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,mCAAI,EAAE,CAAA;QACxD,CAAC;KAAA;IAEY,MAAM,CACjB,SAAmE;;YAEnE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAExD,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC/C,CAAC;KAAA;IAEY,MAAM;6DACjB,OAA2C,EAC3C,SAAmE,EACnE,YAAqB,IAAI;YAEzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAExD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5C,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACtC,CAAC;iBAAM,IAAI,SAAS,EAAE,CAAC;gBACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzC,IAAI,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzC,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAA;oBACvB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QACpD,CAAC;KAAA;IAEY,MAAM,CACjB,SAAmE;;YAEnE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAExD,MAAM,gBAAgB,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;YAEtF,8DAA8D;YAC9D,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAuB,CAAC,CAAA;QACnE,CAAC;KAAA;IAEY,SAAS;;YACpB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC7C,CAAC;KAAA;CACF;AAjED,wCAiEC"}
1
+ {"version":3,"file":"StorageManager.js","sourceRoot":"","sources":["../../../src/managers/StorageManager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA,wDAAwD;AACxD,SAAS,YAAY,CAAI,KAAQ;IAC/B,8DAA8D;IAC9D,OAAO,KAAY,CAAA;AACrB,CAAC;AACD,uDAAuD;AAEvD;;;;GAIG;AACH,MAAa,cAAc;IAczB,YAAY,OAAgB,EAAE,UAAa;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAEY,MAAM;;;YACjB,OAAO,MAAA,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,mCAAI,EAAE,CAAA;QACxD,CAAC;KAAA;IAEY,MAAM,CACjB,SAAmE;;YAEnE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAExD,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC/C,CAAC;KAAA;IAEY,MAAM;6DACjB,OAA2C,EAC3C,SAAmE,EACnE,YAAqB,IAAI;YAEzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAExD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5C,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACtC,CAAC;iBAAM,IAAI,SAAS,EAAE,CAAC;gBACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzC,IAAI,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzC,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAA;oBACvB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QACpD,CAAC;KAAA;IAEY,MAAM,CACjB,SAAmE;;YAEnE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAExD,MAAM,gBAAgB,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;YAEtF,8DAA8D;YAC9D,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAuB,CAAC,CAAA;QACnE,CAAC;KAAA;IAEY,SAAS;;YACpB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC7C,CAAC;KAAA;CACF;AAjED,wCAiEC","sourcesContent":["import { StorageKey, Storage, StorageKeyReturnType } from '@tezos-x/octez.connect-types'\n\n/** Type workaround for https://github.com/Microsoft/TypeScript/issues/7294#issuecomment-465794460 */\nexport type ArrayElem<A> = A extends (infer Elem)[] ? Elem : never\n\n/* eslint-disable prefer-arrow/prefer-arrow-functions */\nfunction fixArrayType<T>(array: T): ArrayElem<T>[] {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return array as any\n}\n/* eslint-enable prefer-arrow/prefer-arrow-functions */\n\n/**\n * @internalapi\n *\n * The StorageManager provides CRUD functionality for specific entities and persists them to the provided storage.\n */\nexport class StorageManager<\n T extends\n | StorageKey.ACCOUNTS\n | StorageKey.APP_METADATA_LIST\n | StorageKey.PERMISSION_LIST\n | StorageKey.TRANSPORT_P2P_PEERS_DAPP\n | StorageKey.TRANSPORT_P2P_PEERS_WALLET\n | StorageKey.TRANSPORT_POSTMESSAGE_PEERS_DAPP\n | StorageKey.TRANSPORT_POSTMESSAGE_PEERS_WALLET\n | StorageKey.TRANSPORT_WALLETCONNECT_PEERS_DAPP\n> {\n private readonly storage: Storage\n private readonly storageKey: T\n\n constructor(storage: Storage, storageKey: T) {\n this.storage = storage\n this.storageKey = storageKey\n }\n\n public async getAll(): Promise<StorageKeyReturnType[T]> {\n return (await this.storage.get(this.storageKey)) ?? []\n }\n\n public async getOne(\n predicate: (element: ArrayElem<StorageKeyReturnType[T]>) => boolean\n ): Promise<ArrayElem<StorageKeyReturnType[T]> | undefined> {\n const entities = await this.storage.get(this.storageKey)\n\n return fixArrayType(entities).find(predicate)\n }\n\n public async addOne(\n element: ArrayElem<StorageKeyReturnType[T]>,\n predicate: (element: ArrayElem<StorageKeyReturnType[T]>) => boolean,\n overwrite: boolean = true\n ): Promise<void> {\n const entities = await this.storage.get(this.storageKey)\n\n if (!fixArrayType(entities).some(predicate)) {\n fixArrayType(entities).push(element)\n } else if (overwrite) {\n for (let i = 0; i < entities.length; i++) {\n if (predicate(fixArrayType(entities)[i])) {\n entities[i] = element\n }\n }\n }\n\n return this.storage.set(this.storageKey, entities)\n }\n\n public async remove(\n predicate: (element: ArrayElem<StorageKeyReturnType[T]>) => boolean\n ): Promise<void> {\n const entities = await this.storage.get(this.storageKey)\n\n const filteredEntities = fixArrayType(entities).filter((entity) => !predicate(entity))\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return this.storage.set(this.storageKey, filteredEntities as any)\n }\n\n public async removeAll(): Promise<void> {\n return this.storage.delete(this.storageKey)\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"migrate-0.7.0.js","sourceRoot":"","sources":["../../../src/migrations/migrate-0.7.0.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sEAQqC;AAsB9B,MAAM,aAAa,GAAG,CAAO,OAAgB,EAAiB,EAAE;IACrE,sBAAsB;IACtB,MAAM,YAAY,GAAkB,MAAM,OAAO,CAAC,GAAG,CAAC,gCAAU,CAAC,QAAQ,CAAC,CAAA;IAC1E,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;QACnC,8DAA8D;QAC9D,MAAM,cAAc,GAAmB,WAAkB,CAAA;QAEzD,0BAA0B;QAC1B,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;YAC1B,WAAW,CAAC,SAAS,GAAG,cAAc,CAAC,MAAM,CAAA;YAC7C,OAAQ,cAAsB,CAAC,MAAM,CAAA;QACvC,CAAC;QACD,8BAA8B;QAC9B,WAAW,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAA;IAC1E,CAAC,CAAC,CAAA;IACF,MAAM,OAAO,CAAC,GAAG,CAAC,gCAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IAEpD,mBAAmB;IACnB,MAAM,kBAAkB,GAAwB,MAAM,OAAO,CAAC,GAAG,CAC/D,gCAAU,CAAC,wBAAwB,CACpC,CAAA;IACD,kBAAkB,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;QACzC,8DAA8D;QAC9D,MAAM,oBAAoB,GAAyB,WAAkB,CAAA;QACrE,0BAA0B;QAC1B,IAAI,oBAAoB,CAAC,MAAM,EAAE,CAAC;YAChC,WAAW,CAAC,SAAS,GAAG,oBAAoB,CAAC,MAAM,CAAA;YACnD,OAAQ,oBAA4B,CAAC,MAAM,CAAA;QAC7C,CAAC;IACH,CAAC,CAAC,CAAA;IACF,MAAM,OAAO,CAAC,GAAG,CAAC,gCAAU,CAAC,wBAAwB,EAAE,kBAAkB,CAAC,CAAA;IAE1E,MAAM,OAAO,CAAC,GAAG,CAAC,gCAAU,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAA;AAC3D,CAAC,CAAA,CAAA;AAjCY,QAAA,aAAa,iBAiCzB"}
1
+ {"version":3,"file":"migrate-0.7.0.js","sourceRoot":"","sources":["../../../src/migrations/migrate-0.7.0.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sEAQqC;AAsB9B,MAAM,aAAa,GAAG,CAAO,OAAgB,EAAiB,EAAE;IACrE,sBAAsB;IACtB,MAAM,YAAY,GAAkB,MAAM,OAAO,CAAC,GAAG,CAAC,gCAAU,CAAC,QAAQ,CAAC,CAAA;IAC1E,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;QACnC,8DAA8D;QAC9D,MAAM,cAAc,GAAmB,WAAkB,CAAA;QAEzD,0BAA0B;QAC1B,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;YAC1B,WAAW,CAAC,SAAS,GAAG,cAAc,CAAC,MAAM,CAAA;YAC7C,OAAQ,cAAsB,CAAC,MAAM,CAAA;QACvC,CAAC;QACD,8BAA8B;QAC9B,WAAW,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAA;IAC1E,CAAC,CAAC,CAAA;IACF,MAAM,OAAO,CAAC,GAAG,CAAC,gCAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IAEpD,mBAAmB;IACnB,MAAM,kBAAkB,GAAwB,MAAM,OAAO,CAAC,GAAG,CAC/D,gCAAU,CAAC,wBAAwB,CACpC,CAAA;IACD,kBAAkB,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;QACzC,8DAA8D;QAC9D,MAAM,oBAAoB,GAAyB,WAAkB,CAAA;QACrE,0BAA0B;QAC1B,IAAI,oBAAoB,CAAC,MAAM,EAAE,CAAC;YAChC,WAAW,CAAC,SAAS,GAAG,oBAAoB,CAAC,MAAM,CAAA;YACnD,OAAQ,oBAA4B,CAAC,MAAM,CAAA;QAC7C,CAAC;IACH,CAAC,CAAC,CAAA;IACF,MAAM,OAAO,CAAC,GAAG,CAAC,gCAAU,CAAC,wBAAwB,EAAE,kBAAkB,CAAC,CAAA;IAE1E,MAAM,OAAO,CAAC,GAAG,CAAC,gCAAU,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAA;AAC3D,CAAC,CAAA,CAAA;AAjCY,QAAA,aAAa,iBAiCzB","sourcesContent":["import {\n PermissionScope,\n AccountIdentifier,\n Origin,\n Network,\n P2PPairingRequest,\n StorageKey,\n AccountInfo\n} from '@tezos-x/octez.connect-types'\n\nexport interface AccountInfoOld {\n accountIdentifier: AccountIdentifier\n beaconId: string\n origin: {\n type: Origin\n id: string\n }\n address: string\n pubkey: string\n network: Network\n scopes: PermissionScope[]\n connectedAt: Date\n}\n\nexport interface P2PPairingRequestOld {\n name: string\n pubKey: string\n relayServer: string\n}\n\nexport const migrate_0_7_0 = async (storage: Storage): Promise<void> => {\n // Migrate AccountInfo\n const accountInfos: AccountInfo[] = await storage.get(StorageKey.ACCOUNTS)\n accountInfos.forEach((accountInfo) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const accountInfoOld: AccountInfoOld = accountInfo as any\n\n // pubKey is now publicKey\n if (accountInfoOld.pubkey) {\n accountInfo.publicKey = accountInfoOld.pubkey\n delete (accountInfoOld as any).pubkey\n }\n // connectedAt is now a number\n accountInfo.connectedAt = new Date(accountInfoOld.connectedAt).getTime()\n })\n await storage.set(StorageKey.ACCOUNTS, accountInfos)\n\n // Migrate P2PPeers\n const P2PPairingRequests: P2PPairingRequest[] = await storage.get(\n StorageKey.TRANSPORT_P2P_PEERS_DAPP\n )\n P2PPairingRequests.forEach((p2pPairInfo) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const P2PPairingRequestOld: P2PPairingRequestOld = p2pPairInfo as any\n // pubKey is now publicKey\n if (P2PPairingRequestOld.pubKey) {\n p2pPairInfo.publicKey = P2PPairingRequestOld.pubKey\n delete (P2PPairingRequestOld as any).pubKey\n }\n })\n await storage.set(StorageKey.TRANSPORT_P2P_PEERS_DAPP, P2PPairingRequests)\n\n await storage.set(StorageKey.BEACON_SDK_VERSION, '0.7.0')\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/migrations/migrations.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAA0C;AAC1C,sEAAkE;AAClE,mDAA+C;AAE/C,MAAM,UAAU,GAAyB;IACvC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC;IAC1B,CAAC,OAAO,EAAE,6BAAa,CAAC;CACzB,CAAA;AAED,uBAAuB;AAChB,MAAM,OAAO,GAAG,CAAO,OAAgB,EAAiB,EAAE;IAC/D,MAAM,cAAc,GAAuB,MAAM,OAAO,CAAC,GAAG,CAAC,gCAAU,CAAC,kBAAkB,CAAC,CAAA;IAE3F,mCAAmC;IACnC,IAAI,cAAc,IAAI,cAAc,KAAK,uBAAW,EAAE,CAAC;QACrD,OAAM;IACR,CAAC;IAED,IAAI,YAAY,GAAG,KAAK,CAAA;IACxB,KAAK,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,UAAU,EAAE,CAAC;QACpD,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;YAC/B,YAAY,GAAG,IAAI,CAAA;QACrB,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,MAAM,eAAe,CAAC,OAAO,CAAC,CAAA;YAChC,CAAC;YAAC,OAAO,cAAc,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,iBAAiB,OAAO,UAAU,EAAE,cAAc,CAAC,CAAA;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,gCAAU,CAAC,kBAAkB,EAAE,uBAAW,CAAC,CAAA;AAC/D,CAAC,CAAA,CAAA;AAxBY,QAAA,OAAO,WAwBnB"}
1
+ {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/migrations/migrations.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAA0C;AAC1C,sEAAkE;AAClE,mDAA+C;AAE/C,MAAM,UAAU,GAAyB;IACvC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC;IAC1B,CAAC,OAAO,EAAE,6BAAa,CAAC;CACzB,CAAA;AAED,uBAAuB;AAChB,MAAM,OAAO,GAAG,CAAO,OAAgB,EAAiB,EAAE;IAC/D,MAAM,cAAc,GAAuB,MAAM,OAAO,CAAC,GAAG,CAAC,gCAAU,CAAC,kBAAkB,CAAC,CAAA;IAE3F,mCAAmC;IACnC,IAAI,cAAc,IAAI,cAAc,KAAK,uBAAW,EAAE,CAAC;QACrD,OAAM;IACR,CAAC;IAED,IAAI,YAAY,GAAG,KAAK,CAAA;IACxB,KAAK,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,UAAU,EAAE,CAAC;QACpD,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;YAC/B,YAAY,GAAG,IAAI,CAAA;QACrB,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,MAAM,eAAe,CAAC,OAAO,CAAC,CAAA;YAChC,CAAC;YAAC,OAAO,cAAc,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,iBAAiB,OAAO,UAAU,EAAE,cAAc,CAAC,CAAA;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,gCAAU,CAAC,kBAAkB,EAAE,uBAAW,CAAC,CAAA;AAC/D,CAAC,CAAA,CAAA;AAxBY,QAAA,OAAO,WAwBnB","sourcesContent":["import { SDK_VERSION } from '../constants'\nimport { Storage, StorageKey } from '@tezos-x/octez.connect-types'\nimport { migrate_0_7_0 } from './migrate-0.7.0'\n\nconst migrations: [string, Function][] = [\n ['0.6.0', () => undefined],\n ['0.7.0', migrate_0_7_0]\n]\n\n// This is not used yet\nexport const migrate = async (storage: Storage): Promise<void> => {\n const lastSdkVersion: string | undefined = await storage.get(StorageKey.BEACON_SDK_VERSION)\n\n // Skip if we are on latest version\n if (lastSdkVersion && lastSdkVersion === SDK_VERSION) {\n return\n }\n\n let addMigration = false\n for (const [version, migrationMethod] of migrations) {\n if (version === lastSdkVersion) {\n addMigration = true\n }\n\n if (addMigration) {\n try {\n await migrationMethod(storage)\n } catch (migrationError) {\n console.log(`Migration for ${version} failed!`, migrationError)\n }\n }\n }\n\n await storage.set(StorageKey.BEACON_SDK_VERSION, SDK_VERSION)\n}\n"]}
@@ -10,7 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ChromeStorage = void 0;
13
- const octez_connect_types_1 = require("@tezos-x/octez.connect-types");
13
+ const storage_normalization_1 = require("./storage-normalization");
14
14
  /**
15
15
  * @internalapi
16
16
  *
@@ -30,23 +30,16 @@ class ChromeStorage {
30
30
  return __awaiter(this, void 0, void 0, function* () {
31
31
  return new Promise((resolve) => {
32
32
  chrome.storage.local.get(null, (storageContent) => {
33
- if (storageContent[key]) {
34
- resolve(storageContent[key]);
35
- }
36
- else {
37
- if (typeof octez_connect_types_1.defaultValues[key] === 'object') {
38
- resolve(JSON.parse(JSON.stringify(octez_connect_types_1.defaultValues[key])));
39
- }
40
- else {
41
- resolve(octez_connect_types_1.defaultValues[key]);
42
- }
43
- }
33
+ resolve((0, storage_normalization_1.normalizeParsedStoredValue)(key, storageContent[key]));
44
34
  });
45
35
  });
46
36
  });
47
37
  }
48
38
  set(key, value) {
49
39
  return __awaiter(this, void 0, void 0, function* () {
40
+ if (value === undefined) {
41
+ return this.delete(key);
42
+ }
50
43
  return new Promise((resolve) => {
51
44
  chrome.storage.local.set({ [key]: value }, () => {
52
45
  resolve();
@@ -57,7 +50,7 @@ class ChromeStorage {
57
50
  delete(key) {
58
51
  return __awaiter(this, void 0, void 0, function* () {
59
52
  return new Promise((resolve) => {
60
- chrome.storage.local.set({ [key]: undefined }, () => {
53
+ chrome.storage.local.remove(String(key), () => {
61
54
  resolve();
62
55
  });
63
56
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ChromeStorage.js","sourceRoot":"","sources":["../../../src/storage/ChromeStorage.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sEAAuG;AAEvG;;;;GAIG;AACH,MAAa,aAAa;IACjB,MAAM,CAAO,WAAW;;YAC7B,OAAO,CACL,OAAO,MAAM,KAAK,WAAW;gBAC7B,OAAO,MAAM,KAAK,WAAW;gBAC7B,OAAO,CAAC,MAAM,CAAC;gBACf,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;gBACvB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAC3B,CAAA;QACH,CAAC;KAAA;IAEY,GAAG,CAAuB,GAAM;;YAC3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,cAAc,EAAE,EAAE;oBAChD,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;wBACxB,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAA;oBAC9B,CAAC;yBAAM,CAAC;wBACN,IAAI,OAAO,mCAAa,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;4BAC3C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,mCAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;wBACzD,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,mCAAa,CAAC,GAAG,CAAC,CAAC,CAAA;wBAC7B,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC;KAAA;IAEY,GAAG,CAAuB,GAAM,EAAE,KAA8B;;YAC3E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE;oBAC9C,OAAO,EAAE,CAAA;gBACX,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC;KAAA;IAEY,MAAM,CAAuB,GAAM;;YAC9C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE;oBAClD,OAAO,EAAE,CAAA;gBACX,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC;KAAA;IAEY,yBAAyB,CACpC,SAKQ;;YAER,OAAO;QACT,CAAC;KAAA;IAEM,cAAc,CAAC,GAAW;QAC/B,OAAO,GAAG,CAAA;IACZ,CAAC;CACF;AAzDD,sCAyDC"}
1
+ {"version":3,"file":"ChromeStorage.js","sourceRoot":"","sources":["../../../src/storage/ChromeStorage.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,mEAAoE;AAEpE;;;;GAIG;AACH,MAAa,aAAa;IACjB,MAAM,CAAO,WAAW;;YAC7B,OAAO,CACL,OAAO,MAAM,KAAK,WAAW;gBAC7B,OAAO,MAAM,KAAK,WAAW;gBAC7B,OAAO,CAAC,MAAM,CAAC;gBACf,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;gBACvB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAC3B,CAAA;QACH,CAAC;KAAA;IAEY,GAAG,CAAuB,GAAM;;YAC3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,cAA6C,EAAE,EAAE;oBAC/E,OAAO,CAAC,IAAA,kDAA0B,EAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBAC/D,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC;KAAA;IAEY,GAAG,CAAuB,GAAM,EAAE,KAA8B;;YAC3E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACzB,CAAC;YAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE;oBAC9C,OAAO,EAAE,CAAA;gBACX,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC;KAAA;IAEY,MAAM,CAAuB,GAAM;;YAC9C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE;oBAC5C,OAAO,EAAE,CAAA;gBACX,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC;KAAA;IAEY,yBAAyB,CACpC,SAKQ;;YAER,OAAO;QACT,CAAC;KAAA;IAEM,cAAc,CAAC,GAAW;QAC/B,OAAO,GAAG,CAAA;IACZ,CAAC;CACF;AArDD,sCAqDC","sourcesContent":["import { Storage, StorageKey, StorageKeyReturnType } from '@tezos-x/octez.connect-types'\nimport { normalizeParsedStoredValue } from './storage-normalization'\n\n/**\n * @internalapi\n *\n * A storage that can be used in chrome extensions\n */\nexport class ChromeStorage implements Storage {\n public static async isSupported(): Promise<boolean> {\n return (\n typeof window !== 'undefined' &&\n typeof chrome !== 'undefined' &&\n Boolean(chrome) &&\n Boolean(chrome.runtime) &&\n Boolean(chrome.runtime.id)\n )\n }\n\n public async get<K extends StorageKey>(key: K): Promise<StorageKeyReturnType[K]> {\n return new Promise((resolve) => {\n chrome.storage.local.get(null, (storageContent: Partial<StorageKeyReturnType>) => {\n resolve(normalizeParsedStoredValue(key, storageContent[key]))\n })\n })\n }\n\n public async set<K extends StorageKey>(key: K, value: StorageKeyReturnType[K]): Promise<void> {\n if (value === undefined) {\n return this.delete(key)\n }\n\n return new Promise((resolve) => {\n chrome.storage.local.set({ [key]: value }, () => {\n resolve()\n })\n })\n }\n\n public async delete<K extends StorageKey>(key: K): Promise<void> {\n return new Promise((resolve) => {\n chrome.storage.local.remove(String(key), () => {\n resolve()\n })\n })\n }\n\n public async subscribeToStorageChanged(\n _callback: (arg: {\n eventType: 'storageCleared' | 'entryModified'\n key: string | null\n oldValue: string | null\n newValue: string | null\n }) => {}\n ): Promise<void> {\n // TODO\n }\n\n public getPrefixedKey(key: string): string {\n return key\n }\n}\n"]}
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.IndexedDBStorage = void 0;
13
13
  const octez_connect_types_1 = require("@tezos-x/octez.connect-types");
14
14
  const Logger_1 = require("../utils/Logger");
15
+ const storage_normalization_1 = require("./storage-normalization");
15
16
  const logger = new Logger_1.Logger('IndexedDBStorage');
16
17
  class IndexedDBStorage extends octez_connect_types_1.Storage {
17
18
  /**
@@ -113,13 +114,19 @@ class IndexedDBStorage extends octez_connect_types_1.Storage {
113
114
  });
114
115
  }
115
116
  get(key, storeName = this.storeNames[0]) {
116
- return this.transaction('readonly', storeName, (store) => new Promise((resolve, reject) => {
117
+ const storedValue = this.transaction('readonly', storeName, (store) => new Promise((resolve, reject) => {
117
118
  const getRequest = store.get(key);
118
119
  getRequest.onsuccess = () => resolve(getRequest.result);
119
120
  getRequest.onerror = () => reject(getRequest.error);
120
121
  }));
122
+ return (0, storage_normalization_1.isStorageKey)(key)
123
+ ? storedValue.then((value) => (0, storage_normalization_1.normalizeParsedStoredValue)(key, value))
124
+ : storedValue;
121
125
  }
122
126
  set(key, value, storeName = this.storeNames[0]) {
127
+ if (value === undefined) {
128
+ return this.delete(key, storeName);
129
+ }
123
130
  return this.transaction('readwrite', storeName, (store) => new Promise((resolve, reject) => {
124
131
  const putRequest = store.put(value, key);
125
132
  putRequest.onsuccess = () => resolve();
@@ -1 +1 @@
1
- {"version":3,"file":"IndexedDBStorage.js","sourceRoot":"","sources":["../../../src/storage/IndexedDBStorage.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sEAAwF;AACxF,4CAAwC;AAExC,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,kBAAkB,CAAC,CAAA;AAE7C,MAAa,gBAAiB,SAAQ,6BAAO;IAI3C;;;;OAIG;IACH,YACmB,SAAiB,8BAA8B,EAC/C,aAAuB,CAAC,iBAAiB,CAAC;QAE3D,KAAK,EAAE,CAAA;QAHU,WAAM,GAAN,MAAM,CAAyC;QAC/C,eAAU,GAAV,UAAU,CAAgC;QAVrD,OAAE,GAAuB,IAAI,CAAA;QAC7B,gBAAW,GAAY,IAAI,CAAA;QAYjC,IAAI,CAAC,MAAM,EAAE;aACV,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;aAC5B,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;IAC9C,CAAC;IAEO,oBAAoB;QAC1B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,WAAW,IAAI,MAAM,EAAE,CAAC;YAC3D,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,yCAAyC,CAAC,CAAA;YAC7E,OAAO,IAAI,CAAA;QACb,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,6CAA6C,CAAC,CAAA;YACnF,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAEa,MAAM;;YAClB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAA;gBAC9C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACtB,MAAM,CAAC,6BAA6B,CAAC,CAAA;oBACrC,OAAM;gBACR,CAAC;gBAED,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAE/C,WAAW,CAAC,eAAe,GAAG,GAAG,EAAE;oBACjC,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAA;oBAC7B,oCAAoC;oBACpC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;wBACpC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;4BAC7C,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAA;wBACjC,CAAC;oBACH,CAAC,CAAC,CAAA;gBACJ,CAAC,CAAA;gBAED,WAAW,CAAC,SAAS,GAAG,CAAC,KAAU,EAAE,EAAE;oBACrC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,MAAqB,CAAA;oBAC7C,0DAA0D;oBAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAC1C,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,CACxD,CAAA;oBACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7B,EAAE,CAAC,KAAK,EAAE,CAAA;wBACV,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,GAAG,CAAC,CAAA;wBACjC,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;wBAE9D,cAAc,CAAC,eAAe,GAAG,GAAG,EAAE;4BACpC,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAA;4BACxC,aAAa,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;gCAClC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oCACrD,UAAU,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAA;gCACzC,CAAC;4BACH,CAAC,CAAC,CAAA;wBACJ,CAAC,CAAA;wBAED,cAAc,CAAC,SAAS,GAAG,CAAC,KAAU,EAAE,EAAE;4BACxC,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,MAAqB,CAAA;4BAC5C,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;wBAClB,CAAC,CAAA;wBAED,cAAc,CAAC,OAAO,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;oBACrE,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;wBACZ,OAAO,CAAC,EAAE,CAAC,CAAA;oBACb,CAAC;gBACH,CAAC,CAAA;gBAED,WAAW,CAAC,OAAO,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAClE,CAAC,CAAC,CAAA;QACJ,CAAC;KAAA;IAED;;;;;OAKG;IACW,WAAW,CACvB,IAAwB,EACxB,SAAiB,EACjB,SAAgD;;YAEhD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;;gBACrC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACtB,MAAM,CAAC,6BAA6B,CAAC,CAAA;oBACrC,OAAM;gBACR,CAAC;gBAED,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,EAAE,0CAAE,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA,EAAE,CAAC;oBACnD,MAAM,CAAC,GAAG,SAAS,sBAAsB,IAAI,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA;oBAC7D,OAAM;gBACR,CAAC;gBAED,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;gBACxD,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;gBACtD,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACpD,CAAC,CAAC,CAAA;QACJ,CAAC;KAAA;IAQM,GAAG,CAAC,GAAwB,EAAE,YAAoB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,WAAW,CACrB,UAAU,EACV,SAAS,EACT,CAAC,KAAK,EAAE,EAAE,CACR,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACjC,UAAU,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YACvD,UAAU,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACrD,CAAC,CAAC,CACL,CAAA;IACH,CAAC;IAWM,GAAG,CACR,GAAwB,EACxB,KAAU,EACV,YAAoB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAEtC,OAAO,IAAI,CAAC,WAAW,CACrB,WAAW,EACX,SAAS,EACT,CAAC,KAAK,EAAE,EAAE,CACR,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YACxC,UAAU,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAA;YACtC,UAAU,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACrD,CAAC,CAAC,CACL,CAAA;IACH,CAAC;IAOM,MAAM,CAAC,GAAwB,EAAE,YAAoB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC,WAAW,CACrB,WAAW,EACX,SAAS,EACT,CAAC,KAAK,EAAE,EAAE,CACR,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9B,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACvC,aAAa,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAA;YACzC,aAAa,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC3D,CAAC,CAAC,CACL,CAAA;IACH,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,SAAkB;QAC9B,OAAO,IAAI,CAAC,WAAW,CACrB,UAAU,EACV,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAC/B,CAAC,KAAK,EAAE,EAAE,CACR,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9B,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,EAAE,CAAA;YACpC,aAAa,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;YAC7D,aAAa,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC3D,CAAC,CAAC,CACL,CAAA;IACH,CAAC;IAED;;OAEG;IACI,UAAU,CAAC,SAAkB;QAClC,OAAO,IAAI,CAAC,WAAW,CACrB,UAAU,EACV,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAC/B,CAAC,KAAK,EAAE,EAAE,CACR,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9B,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,EAAE,CAAA;YAC5C,iBAAiB,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;YACrE,iBAAiB,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;QACnE,CAAC,CAAC,CACL,CAAA;IACH,CAAC;IAED;;OAEG;IACI,UAAU,CAAC,SAAkB;QAClC,OAAO,IAAI,CAAC,WAAW,CACrB,WAAW,EACX,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAC/B,CAAC,KAAK,EAAE,EAAE,CACR,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9B,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;YAClC,YAAY,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAA;YACxC,YAAY,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QACzD,CAAC,CAAC,CACL,CAAA;IACH,CAAC;IAED,cAAc,CAAuB,GAAM;QACzC,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAA;QACnC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,yBAAyB,CACvB,QAKQ;QAER,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAA;QACjD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED;;;;;;OAMG;IACU,SAAS;6DACpB,YAAoB,EACpB,eAAuB,EACvB,WAAqB,EAAE,EACvB,kBAA0B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAE5C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtB,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAA;gBACrD,OAAM;YACR,CAAC;YAED,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YAEpD,eAAe,CAAC,OAAO,GAAG,CAAC,KAAU,EAAE,EAAE;gBACvC,MAAM,IAAI,KAAK,CAAC,mCAAmC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;YAC1E,CAAC,CAAA;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAClE,eAAe,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAE,KAAK,CAAC,MAA2B,CAAC,MAAM,CAAC,CAAA;gBACzF,eAAe,CAAC,OAAO,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtE,CAAC,CAAC,CAAA;YAEF,qFAAqF;YACrF,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,eAAe,EAAE,CAAO,WAAW,EAAE,EAAE;gBACxE,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,EAAE,CAAA;gBAC1C,MAAM,iBAAiB,GAAG,WAAW,CAAC,UAAU,EAAE,CAAA;gBAElD,aAAa,CAAC,SAAS,GAAG,GAAS,EAAE;oBACnC,iBAAiB,CAAC,SAAS,GAAG,GAAS,EAAE;wBACvC,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAA;wBAClC,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAA;wBAErC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;4BACzD,MAAM,CAAC,KAAK,CAAC,GAAG,eAAe,eAAe,IAAI,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA;4BAClE,OAAM;wBACR,CAAC;wBAED,MAAM,iBAAiB,GAAG,QAAQ,CAAC,WAAW,CAAC,eAAe,EAAE,WAAW,CAAC,CAAA;wBAC5E,MAAM,WAAW,GAAG,iBAAiB,CAAC,WAAW,CAAC,eAAe,CAAC,CAAA;wBAElE,IAAI;6BACD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;6BACnD,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;4BACtB,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAA;wBACpC,CAAC,CAAC,CAAA;wBAEJ,iBAAiB,CAAC,OAAO,GAAG,CAAC,KAAU,EAAE,EAAE;4BACzC,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;wBACzD,CAAC,CAAA;oBACH,CAAC,CAAA,CAAA;gBACH,CAAC,CAAA,CAAA;gBACD,iBAAiB,CAAC,OAAO,GAAG,GAAG,EAAE;oBAC/B,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAA;gBAC5E,CAAC,CAAA;gBACD,aAAa,CAAC,OAAO,GAAG,GAAG,EAAE;oBAC3B,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;gBACpE,CAAC,CAAA;YACH,CAAC,CAAA,CAAC,CAAA;QACJ,CAAC;KAAA;CACF;AAnTD,4CAmTC"}
1
+ {"version":3,"file":"IndexedDBStorage.js","sourceRoot":"","sources":["../../../src/storage/IndexedDBStorage.ts"],"names":[],"mappings":"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","sourcesContent":["import { Storage, StorageKey, StorageKeyReturnType } from '@tezos-x/octez.connect-types'\nimport { Logger } from '../utils/Logger'\nimport { isStorageKey, normalizeParsedStoredValue } from './storage-normalization'\n\nconst logger = new Logger('IndexedDBStorage')\n\nexport class IndexedDBStorage extends Storage {\n private db: IDBDatabase | null = null\n private isSupported: boolean = true\n\n /**\n * @param dbName Name of the database.\n * @param storeNames An array of object store names to create in the database.\n * The first store in the array will be used as the default if none is specified.\n */\n constructor(\n private readonly dbName: string = 'WALLET_CONNECT_V2_INDEXED_DB',\n private readonly storeNames: string[] = ['keyvaluestorage']\n ) {\n super()\n this.initDB()\n .then((db) => (this.db = db))\n .catch((err) => logger.error(err.message))\n }\n\n private isIndexedDBSupported() {\n if (typeof window !== 'undefined' && 'indexedDB' in window) {\n logger.log('isIndexedDBSupported', 'IndexedDB is supported in this browser.')\n return true\n } else {\n logger.error('isIndexedDBSupported', 'IndexedDB is not supported in this browser.')\n return false\n }\n }\n\n private async initDB(): Promise<IDBDatabase> {\n return new Promise((resolve, reject) => {\n this.isSupported = this.isIndexedDBSupported()\n if (!this.isSupported) {\n reject('IndexedDB is not supported.')\n return\n }\n\n const openRequest = indexedDB.open(this.dbName)\n\n openRequest.onupgradeneeded = () => {\n const db = openRequest.result\n // Create all required object stores\n this.storeNames.forEach((storeName) => {\n if (!db.objectStoreNames.contains(storeName)) {\n db.createObjectStore(storeName)\n }\n })\n }\n\n openRequest.onsuccess = (event: any) => {\n const db = event.target.result as IDBDatabase\n // Check if all stores exist – if not, perform an upgrade.\n const missingStores = this.storeNames.filter(\n (storeName) => !db.objectStoreNames.contains(storeName)\n )\n if (missingStores.length > 0) {\n db.close()\n const newVersion = db.version + 1\n const upgradeRequest = indexedDB.open(this.dbName, newVersion)\n\n upgradeRequest.onupgradeneeded = () => {\n const upgradedDB = upgradeRequest.result\n missingStores.forEach((storeName) => {\n if (!upgradedDB.objectStoreNames.contains(storeName)) {\n upgradedDB.createObjectStore(storeName)\n }\n })\n }\n\n upgradeRequest.onsuccess = (event: any) => {\n this.db = event.target.result as IDBDatabase\n resolve(this.db)\n }\n\n upgradeRequest.onerror = (event: any) => reject(event.target.error)\n } else {\n this.db = db\n resolve(db)\n }\n }\n\n openRequest.onerror = (event: any) => reject(event.target.error)\n })\n }\n\n /**\n * Performs a transaction on the given object store.\n * @param mode Transaction mode.\n * @param storeName The name of the object store.\n * @param operation The operation to perform with the object store.\n */\n private async transaction<T>(\n mode: IDBTransactionMode,\n storeName: string,\n operation: (store: IDBObjectStore) => Promise<T>\n ): Promise<T> {\n return new Promise((resolve, reject) => {\n if (!this.isSupported) {\n reject('IndexedDB is not supported.')\n return\n }\n\n if (!this.db?.objectStoreNames.contains(storeName)) {\n reject(`${storeName} not found. error: ${new Error().stack}`)\n return\n }\n\n const transaction = this.db.transaction(storeName, mode)\n const objectStore = transaction.objectStore(storeName)\n operation(objectStore).then(resolve).catch(reject)\n })\n }\n\n /**\n * Retrieves a value by key from the specified object store.\n * If no store is specified, the default (first in the list) is used.\n */\n public get<K extends StorageKey>(key: K, storeName?: string): Promise<StorageKeyReturnType[K]>\n public get(key: string, storeName?: string): Promise<string | undefined>\n public get(key: StorageKey | string, storeName: string = this.storeNames[0]): Promise<any> {\n const storedValue = this.transaction(\n 'readonly',\n storeName,\n (store) =>\n new Promise((resolve, reject) => {\n const getRequest = store.get(key)\n getRequest.onsuccess = () => resolve(getRequest.result)\n getRequest.onerror = () => reject(getRequest.error)\n })\n )\n\n return isStorageKey(key)\n ? storedValue.then((value) => normalizeParsedStoredValue(key, value))\n : storedValue\n }\n\n /**\n * Stores a key/value pair in the specified object store.\n */\n public set<K extends StorageKey>(\n key: K,\n value: StorageKeyReturnType[K],\n storeName?: string\n ): Promise<void>\n public set(key: string, value: string, storeName?: string): Promise<void>\n public set(\n key: StorageKey | string,\n value: any,\n storeName: string = this.storeNames[0]\n ): Promise<void> {\n if (value === undefined) {\n return this.delete(key, storeName)\n }\n\n return this.transaction(\n 'readwrite',\n storeName,\n (store) =>\n new Promise((resolve, reject) => {\n const putRequest = store.put(value, key)\n putRequest.onsuccess = () => resolve()\n putRequest.onerror = () => reject(putRequest.error)\n })\n )\n }\n\n /**\n * Deletes an entry by key from the specified object store.\n */\n public delete<K extends StorageKey>(key: K, storeName?: string): Promise<void>\n public delete(key: string, storeName?: string): Promise<void>\n public delete(key: StorageKey | string, storeName: string = this.storeNames[0]): Promise<void> {\n return this.transaction(\n 'readwrite',\n storeName,\n (store) =>\n new Promise((resolve, reject) => {\n const deleteRequest = store.delete(key)\n deleteRequest.onsuccess = () => resolve()\n deleteRequest.onerror = () => reject(deleteRequest.error)\n })\n )\n }\n\n /**\n * Retrieves all values from the specified object store.\n */\n public getAll(storeName?: string): Promise<string[]> {\n return this.transaction(\n 'readonly',\n storeName || this.storeNames[0],\n (store) =>\n new Promise((resolve, reject) => {\n const getAllRequest = store.getAll()\n getAllRequest.onsuccess = () => resolve(getAllRequest.result)\n getAllRequest.onerror = () => reject(getAllRequest.error)\n })\n )\n }\n\n /**\n * Retrieves all keys from the specified object store.\n */\n public getAllKeys(storeName?: string): Promise<IDBValidKey[]> {\n return this.transaction(\n 'readonly',\n storeName || this.storeNames[0],\n (store) =>\n new Promise((resolve, reject) => {\n const getAllKeysRequest = store.getAllKeys()\n getAllKeysRequest.onsuccess = () => resolve(getAllKeysRequest.result)\n getAllKeysRequest.onerror = () => reject(getAllKeysRequest.error)\n })\n )\n }\n\n /**\n * Clears all entries from the specified object store.\n */\n public clearStore(storeName?: string): Promise<void> {\n return this.transaction(\n 'readwrite',\n storeName || this.storeNames[0],\n (store) =>\n new Promise((resolve, reject) => {\n const clearRequest = store.clear()\n clearRequest.onsuccess = () => resolve()\n clearRequest.onerror = () => reject(clearRequest.error)\n })\n )\n }\n\n getPrefixedKey<K extends StorageKey>(key: K): string {\n logger.debug('getPrefixedKey', key)\n throw new Error('Method not implemented.')\n }\n\n subscribeToStorageChanged(\n callback: (arg: {\n eventType: 'storageCleared' | 'entryModified'\n key: string | null\n oldValue: string | null\n newValue: string | null\n }) => {}\n ): Promise<void> {\n logger.debug('subscribeToStorageEvent', callback)\n throw new Error('Method not implemented.')\n }\n\n /**\n * Copies all key/value pairs from the source store into a target store.\n * @param targetDBName Name of the target database.\n * @param targetStoreName Name of the target object store.\n * @param skipKeys Keys to skip.\n * @param sourceStoreName (Optional) Source store name – defaults to the default store.\n */\n public async fillStore(\n targetDBName: string,\n targetStoreName: string,\n skipKeys: string[] = [],\n sourceStoreName: string = this.storeNames[0]\n ): Promise<void> {\n if (!this.isSupported) {\n logger.error('fillStore', 'IndexedDB not supported.')\n return\n }\n\n const targetDBRequest = indexedDB.open(targetDBName)\n\n targetDBRequest.onerror = (event: any) => {\n throw new Error(`Failed to open target database: ${event.target.error}`)\n }\n\n const targetDB = await new Promise<IDBDatabase>((resolve, reject) => {\n targetDBRequest.onsuccess = (event) => resolve((event.target as IDBOpenDBRequest).result)\n targetDBRequest.onerror = (event: any) => reject(event.target.error)\n })\n\n // Copy items from the source store to the target store, skipping any specified keys.\n await this.transaction('readonly', sourceStoreName, async (sourceStore) => {\n const getAllRequest = sourceStore.getAll()\n const getAllKeysRequest = sourceStore.getAllKeys()\n\n getAllRequest.onsuccess = async () => {\n getAllKeysRequest.onsuccess = async () => {\n const items = getAllRequest.result\n const keys = getAllKeysRequest.result\n\n if (!targetDB.objectStoreNames.contains(targetStoreName)) {\n logger.error(`${targetStoreName} not found. ${new Error().stack}`)\n return\n }\n\n const targetTransaction = targetDB.transaction(targetStoreName, 'readwrite')\n const targetStore = targetTransaction.objectStore(targetStoreName)\n\n keys\n .filter((key) => !skipKeys.includes(key.toString()))\n .forEach((key, index) => {\n targetStore.put(items[index], key)\n })\n\n targetTransaction.onerror = (event: any) => {\n logger.error('Transaction error: ', event.target.error)\n }\n }\n }\n getAllKeysRequest.onerror = () => {\n logger.error('Failed to getAllKeys from source:', getAllKeysRequest.error)\n }\n getAllRequest.onerror = () => {\n logger.error('Failed to getAll from source:', getAllRequest.error)\n }\n })\n }\n}\n"]}
@@ -11,6 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.LocalStorage = void 0;
13
13
  const octez_connect_types_1 = require("@tezos-x/octez.connect-types");
14
+ const storage_normalization_1 = require("./storage-normalization");
14
15
  /**
15
16
  * @internalapi
16
17
  *
@@ -29,26 +30,14 @@ class LocalStorage extends octez_connect_types_1.Storage {
29
30
  get(key) {
30
31
  return __awaiter(this, void 0, void 0, function* () {
31
32
  const value = localStorage.getItem(this.getPrefixedKey(key));
32
- if (!value) {
33
- if (typeof octez_connect_types_1.defaultValues[key] === 'object') {
34
- return JSON.parse(JSON.stringify(octez_connect_types_1.defaultValues[key]));
35
- }
36
- else {
37
- return octez_connect_types_1.defaultValues[key];
38
- }
39
- }
40
- else {
41
- try {
42
- return JSON.parse(value);
43
- }
44
- catch (jsonParseError) {
45
- return value; // TODO: Validate storage
46
- }
47
- }
33
+ return (0, storage_normalization_1.normalizeStoredValue)(key, value);
48
34
  });
49
35
  }
50
36
  set(key, value) {
51
37
  return __awaiter(this, void 0, void 0, function* () {
38
+ if (value === undefined) {
39
+ return this.delete(key);
40
+ }
52
41
  if (typeof value === 'string') {
53
42
  return localStorage.setItem(this.getPrefixedKey(key), value);
54
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LocalStorage.js","sourceRoot":"","sources":["../../../src/storage/LocalStorage.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sEAAuG;AAEvG;;;;GAIG;AACH,MAAa,YAAa,SAAQ,6BAAO;IACvC,YAA6B,MAAe;QAC1C,KAAK,EAAE,CAAA;QADoB,WAAM,GAAN,MAAM,CAAS;IAE5C,CAAC;IACM,MAAM,CAAO,WAAW;;YAC7B,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;QAChG,CAAC;KAAA;IAEY,GAAG,CAAuB,GAAM;;YAC3C,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAA;YAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,IAAI,OAAO,mCAAa,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;oBAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,mCAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBACvD,CAAC;qBAAM,CAAC;oBACN,OAAO,mCAAa,CAAC,GAAG,CAAC,CAAA;gBAC3B,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC;oBACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBAC1B,CAAC;gBAAC,OAAO,cAAc,EAAE,CAAC;oBACxB,OAAO,KAAgC,CAAA,CAAC,yBAAyB;gBACnE,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAEY,GAAG,CAAuB,GAAM,EAAE,KAA8B;;YAC3E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;YAC9D,CAAC;iBAAM,CAAC;gBACN,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;YAC9E,CAAC;QACH,CAAC;KAAA;IAEY,MAAM,CAAuB,GAAM;;YAC9C,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC3E,CAAC;KAAA;IAEY,yBAAyB,CACpC,QAKQ;;YAER,MAAM,CAAC,gBAAgB,CACrB,SAAS,EACT,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;oBACf,QAAQ,CAAC;wBACP,SAAS,EAAE,gBAAgB;wBAC3B,GAAG,EAAE,IAAI;wBACT,QAAQ,EAAE,IAAI;wBACd,QAAQ,EAAE,IAAI;qBACf,CAAC,CAAA;gBACJ,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC;wBACP,SAAS,EAAE,eAAe;wBAC1B,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC;wBACnC,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;qBACzB,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC,EACD,KAAK,CACN,CAAA;QACH,CAAC;KAAA;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;AAvED,oCAuEC"}
1
+ {"version":3,"file":"LocalStorage.js","sourceRoot":"","sources":["../../../src/storage/LocalStorage.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sEAAwF;AACxF,mEAA8D;AAE9D;;;;GAIG;AACH,MAAa,YAAa,SAAQ,6BAAO;IACvC,YAA6B,MAAe;QAC1C,KAAK,EAAE,CAAA;QADoB,WAAM,GAAN,MAAM,CAAS;IAE5C,CAAC;IACM,MAAM,CAAO,WAAW;;YAC7B,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;QAChG,CAAC;KAAA;IAEY,GAAG,CAAuB,GAAM;;YAC3C,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAA;YAE5D,OAAO,IAAA,4CAAoB,EAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACzC,CAAC;KAAA;IAEY,GAAG,CAAuB,GAAM,EAAE,KAA8B;;YAC3E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACzB,CAAC;YAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;YAC9D,CAAC;iBAAM,CAAC;gBACN,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;YAC9E,CAAC;QACH,CAAC;KAAA;IAEY,MAAM,CAAuB,GAAM;;YAC9C,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC3E,CAAC;KAAA;IAEY,yBAAyB,CACpC,QAKQ;;YAER,MAAM,CAAC,gBAAgB,CACrB,SAAS,EACT,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;oBACf,QAAQ,CAAC;wBACP,SAAS,EAAE,gBAAgB;wBAC3B,GAAG,EAAE,IAAI;wBACT,QAAQ,EAAE,IAAI;wBACd,QAAQ,EAAE,IAAI;qBACf,CAAC,CAAA;gBACJ,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC;wBACP,SAAS,EAAE,eAAe;wBAC1B,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC;wBACnC,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;qBACzB,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC,EACD,KAAK,CACN,CAAA;QACH,CAAC;KAAA;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;AAhED,oCAgEC","sourcesContent":["import { Storage, StorageKey, StorageKeyReturnType } from '@tezos-x/octez.connect-types'\nimport { normalizeStoredValue } from './storage-normalization'\n\n/**\n * @internalapi\n *\n * A storage that can be used in the browser\n */\nexport class LocalStorage extends Storage {\n constructor(private readonly prefix?: string) {\n super()\n }\n public static async isSupported(): Promise<boolean> {\n return Promise.resolve(Boolean(typeof window !== 'undefined') && Boolean(window.localStorage))\n }\n\n public async get<K extends StorageKey>(key: K): Promise<StorageKeyReturnType[K]> {\n const value = localStorage.getItem(this.getPrefixedKey(key))\n\n return normalizeStoredValue(key, value)\n }\n\n public async set<K extends StorageKey>(key: K, value: StorageKeyReturnType[K]): Promise<void> {\n if (value === undefined) {\n return this.delete(key)\n }\n\n if (typeof value === 'string') {\n return localStorage.setItem(this.getPrefixedKey(key), value)\n } else {\n return localStorage.setItem(this.getPrefixedKey(key), JSON.stringify(value))\n }\n }\n\n public async delete<K extends StorageKey>(key: K): Promise<void> {\n return Promise.resolve(localStorage.removeItem(this.getPrefixedKey(key)))\n }\n\n public async subscribeToStorageChanged(\n callback: (arg: {\n eventType: 'storageCleared' | 'entryModified'\n key: string | null\n oldValue: string | null\n newValue: string | null\n }) => {}\n ): Promise<void> {\n window.addEventListener(\n 'storage',\n (event) => {\n if (!event.key) {\n callback({\n eventType: 'storageCleared',\n key: null,\n oldValue: null,\n newValue: null\n })\n } else {\n callback({\n eventType: 'entryModified',\n key: this.getPrefixedKey(event.key),\n oldValue: event.oldValue,\n newValue: event.newValue\n })\n }\n },\n false\n )\n }\n\n public getPrefixedKey(key: string): string {\n return this.prefix ? `${this.prefix}-${key}` : key\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"StorageValidator.js","sourceRoot":"","sources":["../../../src/storage/StorageValidator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StorageValidator.js","sourceRoot":"","sources":["../../../src/storage/StorageValidator.ts"],"names":[],"mappings":"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","sourcesContent":["import { Storage, StorageKey } from '@tezos-x/octez.connect-types'\n\nexport class StorageValidator {\n constructor(private readonly storage: Storage) {}\n\n private validateNumber(param: any) {\n return typeof param === 'number' && !isNaN(param)\n }\n\n private validateText(param: any) {\n return typeof param === 'string'\n }\n\n private validateBoolean(param: any) {\n return typeof param === 'boolean'\n }\n\n private validateArray(param: any) {\n return Array.isArray(param)\n }\n private objHasProperty(obj: any, path: string) {\n if (!obj) return false // Return false if the object is null or undefined\n\n const properties = path.split('.') // Split the path into individual properties\n\n let current = obj\n for (const property of properties) {\n // If the property doesn't exist, return false\n if (!current.hasOwnProperty(property)) {\n return false\n }\n // Move to the next level in the path\n current = current[property]\n }\n return true\n }\n\n private innerValidate(value: any, type: 'num' | 'str' | 'bol' | 'obj' | 'arr', prop?: string) {\n if (!value) {\n return true\n }\n\n switch (type) {\n case 'num':\n return this.validateNumber(value)\n case 'str':\n return this.validateText(value)\n case 'bol':\n return this.validateBoolean(value)\n case 'obj':\n return this.objHasProperty(value, prop!)\n case 'arr':\n return this.validateArray(value)\n default:\n return false\n }\n }\n\n async validate(): Promise<boolean> {\n if (!this.innerValidate(await this.storage.get(StorageKey.BEACON_SDK_VERSION), 'str')) {\n return false\n }\n if (!this.innerValidate(await this.storage.get(StorageKey.MATRIX_SELECTED_NODE), 'str')) {\n return false\n }\n if (!this.innerValidate(await this.storage.get(StorageKey.MULTI_NODE_SETUP_DONE), 'bol')) {\n return false\n }\n if (!this.innerValidate(await this.storage.get(StorageKey.TRANSPORT_P2P_PEERS_DAPP), 'arr')) {\n return false\n }\n if (!this.innerValidate(await this.storage.get(StorageKey.TRANSPORT_P2P_PEERS_WALLET), 'arr')) {\n return false\n }\n if (\n !this.innerValidate(\n await this.storage.get(StorageKey.TRANSPORT_POSTMESSAGE_PEERS_DAPP),\n 'arr'\n )\n ) {\n return false\n }\n if (\n !this.innerValidate(\n await this.storage.get(StorageKey.TRANSPORT_POSTMESSAGE_PEERS_WALLET),\n 'arr'\n )\n ) {\n return false\n }\n if (\n !this.innerValidate(\n await this.storage.get(StorageKey.TRANSPORT_WALLETCONNECT_PEERS_DAPP),\n 'arr'\n )\n ) {\n return false\n }\n if (!this.innerValidate(await this.storage.get(StorageKey.ACCOUNTS), 'arr')) {\n return false\n }\n if (!this.innerValidate(await this.storage.get(StorageKey.APP_METADATA_LIST), 'arr')) {\n return false\n }\n if (!this.innerValidate(await this.storage.get(StorageKey.PERMISSION_LIST), 'arr')) {\n return false\n }\n if (!this.innerValidate(await this.storage.get(StorageKey.ACTIVE_ACCOUNT), 'str')) {\n return false\n }\n if (\n !this.innerValidate(await this.storage.get(StorageKey.LAST_SELECTED_WALLET), 'obj', 'key')\n ) {\n return false\n }\n\n return true\n }\n}\n"]}
@@ -1,7 +1,6 @@
1
1
  export declare class WCStorage {
2
- private readonly localStorage;
3
2
  private readonly indexedDB;
4
- private channel;
3
+ private readonly channel;
5
4
  onMessageHandler: ((type: string) => void) | undefined;
6
5
  onErrorHandler: ((data: any) => void) | undefined;
7
6
  constructor();
@@ -13,9 +13,41 @@ exports.WCStorage = void 0;
13
13
  const octez_connect_types_1 = require("@tezos-x/octez.connect-types");
14
14
  const LocalStorage_1 = require("./LocalStorage");
15
15
  const IndexedDBStorage_1 = require("./IndexedDBStorage");
16
+ const parseStorageArray = (value) => {
17
+ try {
18
+ return JSON.parse(value);
19
+ }
20
+ catch (_a) {
21
+ return undefined;
22
+ }
23
+ };
24
+ const hasNonEmptyWalletConnectStorageValue = (value) => {
25
+ if (!value) {
26
+ return false;
27
+ }
28
+ const parsedValue = parseStorageArray(value);
29
+ return Array.isArray(parsedValue) && parsedValue.length > 0;
30
+ };
31
+ const isWalletConnectLocalStorageKey = (key, name) => {
32
+ if (!key.includes('wc@2:')) {
33
+ return false;
34
+ }
35
+ return name ? key.endsWith(name) : true;
36
+ };
37
+ // WalletConnect owns its prefix; Airgap's StorageKey enum does not match WC's emitted key shape.
38
+ const getWalletConnectLocalStorageKeys = (name) => {
39
+ const keys = [];
40
+ for (let i = 0; i < localStorage.length; i++) {
41
+ const key = localStorage.key(i);
42
+ if (key && isWalletConnectLocalStorageKey(key, name)) {
43
+ keys.push(key);
44
+ }
45
+ }
46
+ return keys;
47
+ };
48
+ const hasNonEmptyWalletConnectLocalStorageEntries = (name) => getWalletConnectLocalStorageKeys(name).some((key) => { var _a; return hasNonEmptyWalletConnectStorageValue((_a = localStorage.getItem(key)) !== null && _a !== void 0 ? _a : undefined); });
16
49
  class WCStorage {
17
50
  constructor() {
18
- this.localStorage = new LocalStorage_1.LocalStorage();
19
51
  this.indexedDB = new IndexedDBStorage_1.IndexedDBStorage();
20
52
  this.channel = new BroadcastChannel('WALLET_CONNECT_V2_INDEXED_DB');
21
53
  this.channel.onmessage = this.onMessage.bind(this);
@@ -33,26 +65,24 @@ class WCStorage {
33
65
  }
34
66
  hasPairings() {
35
67
  return __awaiter(this, void 0, void 0, function* () {
36
- var _a, _b;
37
- const pairings = (_a = (yield this.indexedDB.get(octez_connect_types_1.StorageKey.WC_2_CORE_PAIRING))) !== null && _a !== void 0 ? _a : '[]';
38
- if (pairings.length) {
68
+ const pairings = yield this.indexedDB.get(octez_connect_types_1.StorageKey.WC_2_CORE_PAIRING);
69
+ if (hasNonEmptyWalletConnectStorageValue(pairings)) {
39
70
  return true;
40
71
  }
41
72
  if (yield LocalStorage_1.LocalStorage.isSupported()) {
42
- return ((_b = (yield this.localStorage.get(octez_connect_types_1.StorageKey.WC_2_CORE_PAIRING))) !== null && _b !== void 0 ? _b : '[]') !== '[]';
73
+ return hasNonEmptyWalletConnectLocalStorageEntries('pairing');
43
74
  }
44
75
  return false;
45
76
  });
46
77
  }
47
78
  hasSessions() {
48
79
  return __awaiter(this, void 0, void 0, function* () {
49
- var _a, _b;
50
- const sessions = (_a = (yield this.indexedDB.get(octez_connect_types_1.StorageKey.WC_2_CLIENT_SESSION))) !== null && _a !== void 0 ? _a : '[]';
51
- if (sessions.length) {
80
+ const sessions = yield this.indexedDB.get(octez_connect_types_1.StorageKey.WC_2_CLIENT_SESSION);
81
+ if (hasNonEmptyWalletConnectStorageValue(sessions)) {
52
82
  return true;
53
83
  }
54
84
  if (yield LocalStorage_1.LocalStorage.isSupported()) {
55
- return ((_b = (yield this.localStorage.get(octez_connect_types_1.StorageKey.WC_2_CLIENT_SESSION))) !== null && _b !== void 0 ? _b : '[]') !== '[]';
85
+ return hasNonEmptyWalletConnectLocalStorageEntries('session');
56
86
  }
57
87
  return false;
58
88
  });
@@ -66,16 +96,7 @@ class WCStorage {
66
96
  return __awaiter(this, void 0, void 0, function* () {
67
97
  yield this.indexedDB.clearStore();
68
98
  if (yield LocalStorage_1.LocalStorage.isSupported()) {
69
- yield Promise.all([
70
- this.localStorage.delete(octez_connect_types_1.StorageKey.WC_2_CLIENT_SESSION),
71
- this.localStorage.delete(octez_connect_types_1.StorageKey.WC_2_CORE_PAIRING),
72
- this.localStorage.delete(octez_connect_types_1.StorageKey.WC_2_CORE_KEYCHAIN),
73
- this.localStorage.delete(octez_connect_types_1.StorageKey.WC_2_CORE_MESSAGES),
74
- this.localStorage.delete(octez_connect_types_1.StorageKey.WC_2_CLIENT_PROPOSAL),
75
- this.localStorage.delete(octez_connect_types_1.StorageKey.WC_2_CORE_SUBSCRIPTION),
76
- this.localStorage.delete(octez_connect_types_1.StorageKey.WC_2_CORE_HISTORY),
77
- this.localStorage.delete(octez_connect_types_1.StorageKey.WC_2_CORE_EXPIRER)
78
- ]);
99
+ getWalletConnectLocalStorageKeys().forEach((key) => localStorage.removeItem(key));
79
100
  }
80
101
  });
81
102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WCStorage.js","sourceRoot":"","sources":["../../../src/storage/WCStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WCStorage.js","sourceRoot":"","sources":["../../../src/storage/WCStorage.ts"],"names":[],"mappings":"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","sourcesContent":["import { StorageKey } from '@tezos-x/octez.connect-types'\nimport { LocalStorage } from './LocalStorage'\nimport { IndexedDBStorage } from './IndexedDBStorage'\n\nconst parseStorageArray = (value: string): unknown => {\n try {\n return JSON.parse(value)\n } catch {\n return undefined\n }\n}\n\nconst hasNonEmptyWalletConnectStorageValue = (value: string | undefined): boolean => {\n if (!value) {\n return false\n }\n\n const parsedValue = parseStorageArray(value)\n\n return Array.isArray(parsedValue) && parsedValue.length > 0\n}\n\nconst isWalletConnectLocalStorageKey = (key: string, name?: string): boolean => {\n if (!key.includes('wc@2:')) {\n return false\n }\n\n return name ? key.endsWith(name) : true\n}\n\n// WalletConnect owns its prefix; Airgap's StorageKey enum does not match WC's emitted key shape.\nconst getWalletConnectLocalStorageKeys = (name?: string): string[] => {\n const keys: string[] = []\n\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i)\n\n if (key && isWalletConnectLocalStorageKey(key, name)) {\n keys.push(key)\n }\n }\n\n return keys\n}\n\nconst hasNonEmptyWalletConnectLocalStorageEntries = (name: string): boolean =>\n getWalletConnectLocalStorageKeys(name).some((key) =>\n hasNonEmptyWalletConnectStorageValue(localStorage.getItem(key) ?? undefined)\n )\n\nexport class WCStorage {\n private readonly indexedDB = new IndexedDBStorage()\n private readonly channel: BroadcastChannel = new BroadcastChannel('WALLET_CONNECT_V2_INDEXED_DB')\n onMessageHandler: ((type: string) => void) | undefined\n onErrorHandler: ((data: any) => void) | undefined\n\n constructor() {\n this.channel.onmessage = this.onMessage.bind(this)\n this.channel.onmessageerror = this.onError.bind(this)\n }\n\n private onMessage(message: MessageEvent) {\n this.onMessageHandler && this.onMessageHandler(message.data.type)\n }\n\n private onError({ data }: MessageEvent) {\n this.onErrorHandler && this.onErrorHandler(data)\n }\n\n notify(type: string) {\n this.channel?.postMessage({ type })\n }\n\n async hasPairings() {\n const pairings = await this.indexedDB.get(StorageKey.WC_2_CORE_PAIRING)\n\n if (hasNonEmptyWalletConnectStorageValue(pairings)) {\n return true\n }\n\n if (await LocalStorage.isSupported()) {\n return hasNonEmptyWalletConnectLocalStorageEntries('pairing')\n }\n\n return false\n }\n\n async hasSessions() {\n const sessions = await this.indexedDB.get(StorageKey.WC_2_CLIENT_SESSION)\n\n if (hasNonEmptyWalletConnectStorageValue(sessions)) {\n return true\n }\n\n if (await LocalStorage.isSupported()) {\n return hasNonEmptyWalletConnectLocalStorageEntries('session')\n }\n\n return false\n }\n\n backup() {\n this.indexedDB\n .fillStore('beacon', 'bug_report', [StorageKey.WC_2_CORE_KEYCHAIN])\n .catch((error) => console.error(error.message))\n }\n\n async resetState() {\n await this.indexedDB.clearStore()\n\n if (await LocalStorage.isSupported()) {\n getWalletConnectLocalStorageKeys().forEach((key) => localStorage.removeItem(key))\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getStorage.js","sourceRoot":"","sources":["../../../src/storage/getStorage.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAAwC;AAExC,mDAA+C;AAC/C,iDAA6C;AAE7C,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,SAAS,CAAC,CAAA;AAEpC;;GAEG;AACI,MAAM,UAAU,GAA2B,GAA2B,EAAE;IAC7E,IAAI,MAAM,6BAAa,CAAC,WAAW,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAA;QAEhD,OAAO,IAAI,6BAAa,EAAE,CAAA;IAC5B,CAAC;SAAM,IAAI,MAAM,2BAAY,CAAC,WAAW,EAAE,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAA;QAE/C,OAAO,IAAI,2BAAY,EAAE,CAAA;IAC3B,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC9C,CAAC;AACH,CAAC,CAAA,CAAA;AAZY,QAAA,UAAU,cAYtB"}
1
+ {"version":3,"file":"getStorage.js","sourceRoot":"","sources":["../../../src/storage/getStorage.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAAwC;AAExC,mDAA+C;AAC/C,iDAA6C;AAE7C,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,SAAS,CAAC,CAAA;AAEpC;;GAEG;AACI,MAAM,UAAU,GAA2B,GAA2B,EAAE;IAC7E,IAAI,MAAM,6BAAa,CAAC,WAAW,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAA;QAEhD,OAAO,IAAI,6BAAa,EAAE,CAAA;IAC5B,CAAC;SAAM,IAAI,MAAM,2BAAY,CAAC,WAAW,EAAE,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAA;QAE/C,OAAO,IAAI,2BAAY,EAAE,CAAA;IAC3B,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC9C,CAAC;AACH,CAAC,CAAA,CAAA;AAZY,QAAA,UAAU,cAYtB","sourcesContent":["import { Logger } from '../utils/Logger'\nimport { Storage } from '@tezos-x/octez.connect-types'\nimport { ChromeStorage } from './ChromeStorage'\nimport { LocalStorage } from './LocalStorage'\n\nconst logger = new Logger('STORAGE')\n\n/**\n * Get a supported storage on this platform\n */\nexport const getStorage: () => Promise<Storage> = async (): Promise<Storage> => {\n if (await ChromeStorage.isSupported()) {\n logger.log('getStorage', 'USING CHROME STORAGE')\n\n return new ChromeStorage()\n } else if (await LocalStorage.isSupported()) {\n logger.log('getStorage', 'USING LOCAL STORAGE')\n\n return new LocalStorage()\n } else {\n throw new Error('no storage type supported')\n }\n}\n"]}
@@ -0,0 +1,9 @@
1
+ import { StorageKey, StorageKeyReturnType } from '@tezos-x/octez.connect-types';
2
+ export declare const ARRAY_STORAGE_KEYS: Set<StorageKey>;
3
+ export declare const BOOLEAN_STORAGE_KEYS: Set<StorageKey>;
4
+ export declare const OBJECT_STORAGE_KEYS: Set<StorageKey>;
5
+ export declare const STRING_STORAGE_KEYS: Set<StorageKey>;
6
+ export declare const normalizeParsedStoredValue: <K extends StorageKey>(key: K, value: unknown) => StorageKeyReturnType[K];
7
+ export declare const normalizeStoredValue: <K extends StorageKey>(key: K, rawValue: string | null | undefined) => StorageKeyReturnType[K];
8
+ export declare const isStorageKey: (key: string) => key is StorageKey;
9
+ export declare const assertStorageKeyNormalizationIsExhaustive: (expectedStorageKeys?: readonly string[]) => void;
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertStorageKeyNormalizationIsExhaustive = exports.isStorageKey = exports.normalizeStoredValue = exports.normalizeParsedStoredValue = exports.STRING_STORAGE_KEYS = exports.OBJECT_STORAGE_KEYS = exports.BOOLEAN_STORAGE_KEYS = exports.ARRAY_STORAGE_KEYS = void 0;
4
+ const octez_connect_types_1 = require("@tezos-x/octez.connect-types");
5
+ exports.ARRAY_STORAGE_KEYS = new Set([
6
+ octez_connect_types_1.StorageKey.TRANSPORT_P2P_PEERS_DAPP,
7
+ octez_connect_types_1.StorageKey.TRANSPORT_P2P_PEERS_WALLET,
8
+ octez_connect_types_1.StorageKey.TRANSPORT_POSTMESSAGE_PEERS_DAPP,
9
+ octez_connect_types_1.StorageKey.TRANSPORT_POSTMESSAGE_PEERS_WALLET,
10
+ octez_connect_types_1.StorageKey.TRANSPORT_WALLETCONNECT_PEERS_DAPP,
11
+ octez_connect_types_1.StorageKey.ACCOUNTS,
12
+ octez_connect_types_1.StorageKey.PUSH_TOKENS,
13
+ octez_connect_types_1.StorageKey.APP_METADATA_LIST,
14
+ octez_connect_types_1.StorageKey.PERMISSION_LIST,
15
+ octez_connect_types_1.StorageKey.ONGOING_PROOF_OF_EVENT_CHALLENGES
16
+ ]);
17
+ exports.BOOLEAN_STORAGE_KEYS = new Set([
18
+ octez_connect_types_1.StorageKey.MULTI_NODE_SETUP_DONE,
19
+ octez_connect_types_1.StorageKey.ENABLE_METRICS
20
+ ]);
21
+ exports.OBJECT_STORAGE_KEYS = new Set([
22
+ octez_connect_types_1.StorageKey.LAST_SELECTED_WALLET,
23
+ octez_connect_types_1.StorageKey.MATRIX_PRESERVED_STATE,
24
+ octez_connect_types_1.StorageKey.MATRIX_PEER_ROOM_IDS
25
+ ]);
26
+ exports.STRING_STORAGE_KEYS = new Set([
27
+ octez_connect_types_1.StorageKey.ACTIVE_ACCOUNT,
28
+ octez_connect_types_1.StorageKey.BEACON_SDK_SECRET_SEED,
29
+ octez_connect_types_1.StorageKey.BEACON_LAST_ERROR,
30
+ octez_connect_types_1.StorageKey.BEACON_SDK_VERSION,
31
+ octez_connect_types_1.StorageKey.MATRIX_SELECTED_NODE,
32
+ octez_connect_types_1.StorageKey.USER_ID,
33
+ octez_connect_types_1.StorageKey.WC_INIT_ERROR,
34
+ octez_connect_types_1.StorageKey.WC_2_CLIENT_SESSION,
35
+ octez_connect_types_1.StorageKey.WC_2_CORE_PAIRING,
36
+ octez_connect_types_1.StorageKey.WC_2_CORE_KEYCHAIN,
37
+ octez_connect_types_1.StorageKey.WC_2_CORE_MESSAGES,
38
+ octez_connect_types_1.StorageKey.WC_2_CLIENT_PROPOSAL,
39
+ octez_connect_types_1.StorageKey.WC_2_CORE_SUBSCRIPTION,
40
+ octez_connect_types_1.StorageKey.WC_2_CORE_HISTORY,
41
+ octez_connect_types_1.StorageKey.WC_2_CORE_EXPIRER
42
+ ]);
43
+ const SENTINEL_STRINGS = new Set(['undefined', 'null']);
44
+ const CLASSIFIED_STORAGE_KEYS = [
45
+ ...exports.ARRAY_STORAGE_KEYS,
46
+ ...exports.BOOLEAN_STORAGE_KEYS,
47
+ ...exports.OBJECT_STORAGE_KEYS,
48
+ ...exports.STRING_STORAGE_KEYS
49
+ ];
50
+ const STORAGE_KEY_VALUES = new Set(Object.values(octez_connect_types_1.StorageKey));
51
+ const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
52
+ const defaultValue = (key) => {
53
+ const value = octez_connect_types_1.defaultValues[key];
54
+ return (isRecord(value) || Array.isArray(value) ? JSON.parse(JSON.stringify(value)) : value);
55
+ };
56
+ const parseStringifiedString = (rawValue) => {
57
+ try {
58
+ return JSON.parse(rawValue);
59
+ }
60
+ catch (_a) {
61
+ return undefined;
62
+ }
63
+ };
64
+ const parseStoredValue = (rawValue) => {
65
+ try {
66
+ return JSON.parse(rawValue);
67
+ }
68
+ catch (_a) {
69
+ return rawValue;
70
+ }
71
+ };
72
+ const normalizeRawStringValue = (key, rawValue) => {
73
+ // STRING keys are SDK-controlled identifiers and serialized WalletConnect blobs, not free-form text.
74
+ if (!rawValue.startsWith('"')) {
75
+ return rawValue;
76
+ }
77
+ const parsedValue = parseStringifiedString(rawValue);
78
+ if (typeof parsedValue !== 'string' || !parsedValue || SENTINEL_STRINGS.has(parsedValue)) {
79
+ return defaultValue(key);
80
+ }
81
+ return parsedValue;
82
+ };
83
+ const formatKeys = (keys) => keys.length === 0 ? 'none' : keys.join(', ');
84
+ const normalizeParsedStoredValue = (key, value) => {
85
+ if (value === undefined ||
86
+ value === null ||
87
+ (typeof value === 'string' && (!value || SENTINEL_STRINGS.has(value)))) {
88
+ return defaultValue(key);
89
+ }
90
+ if (exports.ARRAY_STORAGE_KEYS.has(key)) {
91
+ return (Array.isArray(value) ? value : defaultValue(key));
92
+ }
93
+ if (exports.BOOLEAN_STORAGE_KEYS.has(key)) {
94
+ return (typeof value === 'boolean' ? value : defaultValue(key));
95
+ }
96
+ if (exports.OBJECT_STORAGE_KEYS.has(key)) {
97
+ return (isRecord(value) ? value : defaultValue(key));
98
+ }
99
+ if (exports.STRING_STORAGE_KEYS.has(key)) {
100
+ return (typeof value === 'string' ? value : defaultValue(key));
101
+ }
102
+ return defaultValue(key);
103
+ };
104
+ exports.normalizeParsedStoredValue = normalizeParsedStoredValue;
105
+ // LocalStorage exposes raw strings; Chrome and IndexedDB expose already-decoded JS values.
106
+ const normalizeStoredValue = (key, rawValue) => {
107
+ if (!rawValue || SENTINEL_STRINGS.has(rawValue)) {
108
+ return defaultValue(key);
109
+ }
110
+ if (exports.STRING_STORAGE_KEYS.has(key)) {
111
+ return normalizeRawStringValue(key, rawValue);
112
+ }
113
+ return (0, exports.normalizeParsedStoredValue)(key, parseStoredValue(rawValue));
114
+ };
115
+ exports.normalizeStoredValue = normalizeStoredValue;
116
+ const isStorageKey = (key) => STORAGE_KEY_VALUES.has(key);
117
+ exports.isStorageKey = isStorageKey;
118
+ const assertStorageKeyNormalizationIsExhaustive = (expectedStorageKeys = Object.values(octez_connect_types_1.StorageKey)) => {
119
+ const expectedKeys = new Set(expectedStorageKeys);
120
+ const classifiedKeyValues = new Set(CLASSIFIED_STORAGE_KEYS);
121
+ const missingKeys = expectedStorageKeys.filter((key) => !classifiedKeyValues.has(key));
122
+ const extraKeys = CLASSIFIED_STORAGE_KEYS.filter((key) => !expectedKeys.has(key));
123
+ const duplicateKeys = CLASSIFIED_STORAGE_KEYS.filter((key, index) => CLASSIFIED_STORAGE_KEYS.indexOf(key) !== index);
124
+ if (missingKeys.length > 0 || extraKeys.length > 0 || duplicateKeys.length > 0) {
125
+ throw new Error([
126
+ 'Storage normalization keys are not exhaustive.',
127
+ `Missing: ${formatKeys(missingKeys)}.`,
128
+ `Extra: ${formatKeys(extraKeys)}.`,
129
+ `Duplicate: ${formatKeys(duplicateKeys)}.`
130
+ ].join(' '));
131
+ }
132
+ };
133
+ exports.assertStorageKeyNormalizationIsExhaustive = assertStorageKeyNormalizationIsExhaustive;
134
+ (0, exports.assertStorageKeyNormalizationIsExhaustive)();
135
+ //# sourceMappingURL=storage-normalization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-normalization.js","sourceRoot":"","sources":["../../../src/storage/storage-normalization.ts"],"names":[],"mappings":"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","sourcesContent":["import { StorageKey, StorageKeyReturnType, defaultValues } from '@tezos-x/octez.connect-types'\n\nexport const ARRAY_STORAGE_KEYS = new Set<StorageKey>([\n StorageKey.TRANSPORT_P2P_PEERS_DAPP,\n StorageKey.TRANSPORT_P2P_PEERS_WALLET,\n StorageKey.TRANSPORT_POSTMESSAGE_PEERS_DAPP,\n StorageKey.TRANSPORT_POSTMESSAGE_PEERS_WALLET,\n StorageKey.TRANSPORT_WALLETCONNECT_PEERS_DAPP,\n StorageKey.ACCOUNTS,\n StorageKey.PUSH_TOKENS,\n StorageKey.APP_METADATA_LIST,\n StorageKey.PERMISSION_LIST,\n StorageKey.ONGOING_PROOF_OF_EVENT_CHALLENGES\n])\n\nexport const BOOLEAN_STORAGE_KEYS = new Set<StorageKey>([\n StorageKey.MULTI_NODE_SETUP_DONE,\n StorageKey.ENABLE_METRICS\n])\n\nexport const OBJECT_STORAGE_KEYS = new Set<StorageKey>([\n StorageKey.LAST_SELECTED_WALLET,\n StorageKey.MATRIX_PRESERVED_STATE,\n StorageKey.MATRIX_PEER_ROOM_IDS\n])\n\nexport const STRING_STORAGE_KEYS = new Set<StorageKey>([\n StorageKey.ACTIVE_ACCOUNT,\n StorageKey.BEACON_SDK_SECRET_SEED,\n StorageKey.BEACON_LAST_ERROR,\n StorageKey.BEACON_SDK_VERSION,\n StorageKey.MATRIX_SELECTED_NODE,\n StorageKey.USER_ID,\n StorageKey.WC_INIT_ERROR,\n StorageKey.WC_2_CLIENT_SESSION,\n StorageKey.WC_2_CORE_PAIRING,\n StorageKey.WC_2_CORE_KEYCHAIN,\n StorageKey.WC_2_CORE_MESSAGES,\n StorageKey.WC_2_CLIENT_PROPOSAL,\n StorageKey.WC_2_CORE_SUBSCRIPTION,\n StorageKey.WC_2_CORE_HISTORY,\n StorageKey.WC_2_CORE_EXPIRER\n])\n\nconst SENTINEL_STRINGS = new Set(['undefined', 'null'])\nconst CLASSIFIED_STORAGE_KEYS = [\n ...ARRAY_STORAGE_KEYS,\n ...BOOLEAN_STORAGE_KEYS,\n ...OBJECT_STORAGE_KEYS,\n ...STRING_STORAGE_KEYS\n]\nconst STORAGE_KEY_VALUES = new Set<string>(Object.values(StorageKey))\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value)\n\nconst defaultValue = <K extends StorageKey>(key: K): StorageKeyReturnType[K] => {\n const value = defaultValues[key]\n\n return (\n isRecord(value) || Array.isArray(value) ? JSON.parse(JSON.stringify(value)) : value\n ) as StorageKeyReturnType[K]\n}\n\nconst parseStringifiedString = (rawValue: string): unknown => {\n try {\n return JSON.parse(rawValue)\n } catch {\n return undefined\n }\n}\n\nconst parseStoredValue = (rawValue: string): unknown => {\n try {\n return JSON.parse(rawValue)\n } catch {\n return rawValue\n }\n}\n\nconst normalizeRawStringValue = <K extends StorageKey>(\n key: K,\n rawValue: string\n): StorageKeyReturnType[K] => {\n // STRING keys are SDK-controlled identifiers and serialized WalletConnect blobs, not free-form text.\n if (!rawValue.startsWith('\"')) {\n return rawValue as StorageKeyReturnType[K]\n }\n\n const parsedValue = parseStringifiedString(rawValue)\n\n if (typeof parsedValue !== 'string' || !parsedValue || SENTINEL_STRINGS.has(parsedValue)) {\n return defaultValue(key)\n }\n\n return parsedValue as StorageKeyReturnType[K]\n}\n\nconst formatKeys = (keys: readonly string[]): string =>\n keys.length === 0 ? 'none' : keys.join(', ')\n\nexport const normalizeParsedStoredValue = <K extends StorageKey>(\n key: K,\n value: unknown\n): StorageKeyReturnType[K] => {\n if (\n value === undefined ||\n value === null ||\n (typeof value === 'string' && (!value || SENTINEL_STRINGS.has(value)))\n ) {\n return defaultValue(key)\n }\n\n if (ARRAY_STORAGE_KEYS.has(key)) {\n return (Array.isArray(value) ? value : defaultValue(key)) as StorageKeyReturnType[K]\n }\n\n if (BOOLEAN_STORAGE_KEYS.has(key)) {\n return (typeof value === 'boolean' ? value : defaultValue(key)) as StorageKeyReturnType[K]\n }\n\n if (OBJECT_STORAGE_KEYS.has(key)) {\n return (isRecord(value) ? value : defaultValue(key)) as StorageKeyReturnType[K]\n }\n\n if (STRING_STORAGE_KEYS.has(key)) {\n return (typeof value === 'string' ? value : defaultValue(key)) as StorageKeyReturnType[K]\n }\n\n return defaultValue(key)\n}\n\n// LocalStorage exposes raw strings; Chrome and IndexedDB expose already-decoded JS values.\nexport const normalizeStoredValue = <K extends StorageKey>(\n key: K,\n rawValue: string | null | undefined\n): StorageKeyReturnType[K] => {\n if (!rawValue || SENTINEL_STRINGS.has(rawValue)) {\n return defaultValue(key)\n }\n\n if (STRING_STORAGE_KEYS.has(key)) {\n return normalizeRawStringValue(key, rawValue)\n }\n\n return normalizeParsedStoredValue(key, parseStoredValue(rawValue))\n}\n\nexport const isStorageKey = (key: string): key is StorageKey => STORAGE_KEY_VALUES.has(key)\n\nexport const assertStorageKeyNormalizationIsExhaustive = (\n expectedStorageKeys: readonly string[] = Object.values(StorageKey)\n): void => {\n const expectedKeys = new Set(expectedStorageKeys)\n const classifiedKeyValues = new Set<string>(CLASSIFIED_STORAGE_KEYS)\n const missingKeys = expectedStorageKeys.filter((key) => !classifiedKeyValues.has(key))\n const extraKeys = CLASSIFIED_STORAGE_KEYS.filter((key) => !expectedKeys.has(key))\n const duplicateKeys = CLASSIFIED_STORAGE_KEYS.filter(\n (key, index) => CLASSIFIED_STORAGE_KEYS.indexOf(key) !== index\n )\n\n if (missingKeys.length > 0 || extraKeys.length > 0 || duplicateKeys.length > 0) {\n throw new Error(\n [\n 'Storage normalization keys are not exhaustive.',\n `Missing: ${formatKeys(missingKeys)}.`,\n `Extra: ${formatKeys(extraKeys)}.`,\n `Duplicate: ${formatKeys(duplicateKeys)}.`\n ].join(' ')\n )\n }\n}\n\nassertStorageKeyNormalizationIsExhaustive()\n"]}