@metamask/snap-networks-utils 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (360) hide show
  1. package/CHANGELOG.md +63 -1
  2. package/README.md +4 -10
  3. package/dist/index.cjs +102 -5
  4. package/dist/index.cjs.map +1 -1
  5. package/dist/index.d.cts +51 -2
  6. package/dist/index.d.cts.map +1 -1
  7. package/dist/index.d.mts +51 -2
  8. package/dist/index.d.mts.map +1 -1
  9. package/dist/index.mjs +32 -1
  10. package/dist/index.mjs.map +1 -1
  11. package/dist/providers/assets/AssetsProvider.cjs +36 -18
  12. package/dist/providers/assets/AssetsProvider.cjs.map +1 -1
  13. package/dist/providers/assets/AssetsProvider.d.cts +30 -2
  14. package/dist/providers/assets/AssetsProvider.d.cts.map +1 -1
  15. package/dist/providers/assets/AssetsProvider.d.mts +30 -2
  16. package/dist/providers/assets/AssetsProvider.d.mts.map +1 -1
  17. package/dist/providers/assets/AssetsProvider.mjs +36 -18
  18. package/dist/providers/assets/AssetsProvider.mjs.map +1 -1
  19. package/dist/providers/remote-feature-flags/RemoteFeatureFlagsProvider.cjs +4 -17
  20. package/dist/providers/remote-feature-flags/RemoteFeatureFlagsProvider.cjs.map +1 -1
  21. package/dist/providers/remote-feature-flags/RemoteFeatureFlagsProvider.mjs +4 -17
  22. package/dist/providers/remote-feature-flags/RemoteFeatureFlagsProvider.mjs.map +1 -1
  23. package/dist/services/analytics/AnalyticsService.cjs +225 -0
  24. package/dist/services/analytics/AnalyticsService.cjs.map +1 -0
  25. package/dist/services/analytics/AnalyticsService.d.cts +175 -0
  26. package/dist/services/analytics/AnalyticsService.d.cts.map +1 -0
  27. package/dist/services/analytics/AnalyticsService.d.mts +175 -0
  28. package/dist/services/analytics/AnalyticsService.d.mts.map +1 -0
  29. package/dist/services/analytics/AnalyticsService.mjs +221 -0
  30. package/dist/services/analytics/AnalyticsService.mjs.map +1 -0
  31. package/dist/ui/ActionHeader/ActionHeader.cjs +23 -0
  32. package/dist/ui/ActionHeader/ActionHeader.cjs.map +1 -0
  33. package/dist/ui/ActionHeader/ActionHeader.d.cts +27 -0
  34. package/dist/ui/ActionHeader/ActionHeader.d.cts.map +1 -0
  35. package/dist/ui/ActionHeader/ActionHeader.d.mts +27 -0
  36. package/dist/ui/ActionHeader/ActionHeader.d.mts.map +1 -0
  37. package/dist/ui/ActionHeader/ActionHeader.mjs +19 -0
  38. package/dist/ui/ActionHeader/ActionHeader.mjs.map +1 -0
  39. package/dist/ui/Asset/Asset.cjs +68 -0
  40. package/dist/ui/Asset/Asset.cjs.map +1 -0
  41. package/dist/ui/Asset/Asset.d.cts +83 -0
  42. package/dist/ui/Asset/Asset.d.cts.map +1 -0
  43. package/dist/ui/Asset/Asset.d.mts +83 -0
  44. package/dist/ui/Asset/Asset.d.mts.map +1 -0
  45. package/dist/ui/Asset/Asset.mjs +60 -0
  46. package/dist/ui/Asset/Asset.mjs.map +1 -0
  47. package/dist/ui/Asset/question-mark.svg +3 -0
  48. package/dist/ui/EstimatedChanges/EstimatedChanges.cjs +57 -0
  49. package/dist/ui/EstimatedChanges/EstimatedChanges.cjs.map +1 -0
  50. package/dist/ui/EstimatedChanges/EstimatedChanges.d.cts +50 -0
  51. package/dist/ui/EstimatedChanges/EstimatedChanges.d.cts.map +1 -0
  52. package/dist/ui/EstimatedChanges/EstimatedChanges.d.mts +50 -0
  53. package/dist/ui/EstimatedChanges/EstimatedChanges.d.mts.map +1 -0
  54. package/dist/ui/EstimatedChanges/EstimatedChanges.mjs +53 -0
  55. package/dist/ui/EstimatedChanges/EstimatedChanges.mjs.map +1 -0
  56. package/dist/ui/TransactionAlert/TransactionAlert.cjs +72 -0
  57. package/dist/ui/TransactionAlert/TransactionAlert.cjs.map +1 -0
  58. package/dist/ui/TransactionAlert/TransactionAlert.d.cts +58 -0
  59. package/dist/ui/TransactionAlert/TransactionAlert.d.cts.map +1 -0
  60. package/dist/ui/TransactionAlert/TransactionAlert.d.mts +58 -0
  61. package/dist/ui/TransactionAlert/TransactionAlert.d.mts.map +1 -0
  62. package/dist/ui/TransactionAlert/TransactionAlert.mjs +68 -0
  63. package/dist/ui/TransactionAlert/TransactionAlert.mjs.map +1 -0
  64. package/dist/utils/async/async.cjs +95 -0
  65. package/dist/utils/async/async.cjs.map +1 -0
  66. package/dist/utils/async/async.d.cts +51 -0
  67. package/dist/utils/async/async.d.cts.map +1 -0
  68. package/dist/utils/async/async.d.mts +51 -0
  69. package/dist/utils/async/async.d.mts.map +1 -0
  70. package/dist/utils/async/async.mjs +88 -0
  71. package/dist/utils/async/async.mjs.map +1 -0
  72. package/dist/utils/buildUrl/buildUrl.cjs +54 -0
  73. package/dist/utils/buildUrl/buildUrl.cjs.map +1 -0
  74. package/dist/utils/buildUrl/buildUrl.d.cts +15 -0
  75. package/dist/utils/buildUrl/buildUrl.d.cts.map +1 -0
  76. package/dist/utils/buildUrl/buildUrl.d.mts +15 -0
  77. package/dist/utils/buildUrl/buildUrl.d.mts.map +1 -0
  78. package/dist/utils/buildUrl/buildUrl.mjs +51 -0
  79. package/dist/utils/buildUrl/buildUrl.mjs.map +1 -0
  80. package/dist/utils/cache/InMemoryCache.cjs +134 -0
  81. package/dist/utils/cache/InMemoryCache.cjs.map +1 -0
  82. package/dist/utils/cache/InMemoryCache.d.cts +29 -0
  83. package/dist/utils/cache/InMemoryCache.d.cts.map +1 -0
  84. package/dist/utils/cache/InMemoryCache.d.mts +29 -0
  85. package/dist/utils/cache/InMemoryCache.d.mts.map +1 -0
  86. package/dist/utils/cache/InMemoryCache.mjs +130 -0
  87. package/dist/utils/cache/InMemoryCache.mjs.map +1 -0
  88. package/dist/utils/cache/StateCache.cjs +193 -0
  89. package/dist/utils/cache/StateCache.cjs.map +1 -0
  90. package/dist/utils/cache/StateCache.d.cts +96 -0
  91. package/dist/utils/cache/StateCache.d.cts.map +1 -0
  92. package/dist/utils/cache/StateCache.d.mts +96 -0
  93. package/dist/utils/cache/StateCache.d.mts.map +1 -0
  94. package/dist/utils/cache/StateCache.mjs +189 -0
  95. package/dist/utils/cache/StateCache.mjs.map +1 -0
  96. package/dist/utils/cache/types.cjs +3 -0
  97. package/dist/utils/cache/types.cjs.map +1 -0
  98. package/dist/utils/cache/types.d.cts +99 -0
  99. package/dist/utils/cache/types.d.cts.map +1 -0
  100. package/dist/utils/cache/types.d.mts +99 -0
  101. package/dist/utils/cache/types.d.mts.map +1 -0
  102. package/dist/utils/cache/types.mjs +2 -0
  103. package/dist/utils/cache/types.mjs.map +1 -0
  104. package/dist/utils/cache/useCache.cjs +82 -0
  105. package/dist/utils/cache/useCache.cjs.map +1 -0
  106. package/dist/utils/cache/useCache.d.cts +57 -0
  107. package/dist/utils/cache/useCache.d.cts.map +1 -0
  108. package/dist/utils/cache/useCache.d.mts +57 -0
  109. package/dist/utils/cache/useCache.d.mts.map +1 -0
  110. package/dist/utils/cache/useCache.mjs +78 -0
  111. package/dist/utils/cache/useCache.mjs.map +1 -0
  112. package/dist/utils/cache/useCacheUntil.cjs +80 -0
  113. package/dist/utils/cache/useCacheUntil.cjs.map +1 -0
  114. package/dist/utils/cache/useCacheUntil.d.cts +54 -0
  115. package/dist/utils/cache/useCacheUntil.d.cts.map +1 -0
  116. package/dist/utils/cache/useCacheUntil.d.mts +54 -0
  117. package/dist/utils/cache/useCacheUntil.d.mts.map +1 -0
  118. package/dist/utils/cache/useCacheUntil.mjs +76 -0
  119. package/dist/utils/cache/useCacheUntil.mjs.map +1 -0
  120. package/dist/utils/config/BaseConfigProvider.cjs +62 -0
  121. package/dist/utils/config/BaseConfigProvider.cjs.map +1 -0
  122. package/dist/utils/config/BaseConfigProvider.d.cts +54 -0
  123. package/dist/utils/config/BaseConfigProvider.d.cts.map +1 -0
  124. package/dist/utils/config/BaseConfigProvider.d.mts +54 -0
  125. package/dist/utils/config/BaseConfigProvider.d.mts.map +1 -0
  126. package/dist/utils/config/BaseConfigProvider.mjs +58 -0
  127. package/dist/utils/config/BaseConfigProvider.mjs.map +1 -0
  128. package/dist/utils/config/envStructs.cjs +69 -0
  129. package/dist/utils/config/envStructs.cjs.map +1 -0
  130. package/dist/utils/config/envStructs.d.cts +57 -0
  131. package/dist/utils/config/envStructs.d.cts.map +1 -0
  132. package/dist/utils/config/envStructs.d.mts +57 -0
  133. package/dist/utils/config/envStructs.d.mts.map +1 -0
  134. package/dist/utils/config/envStructs.mjs +61 -0
  135. package/dist/utils/config/envStructs.mjs.map +1 -0
  136. package/dist/utils/config/environmentStruct.cjs +19 -0
  137. package/dist/utils/config/environmentStruct.cjs.map +1 -0
  138. package/dist/utils/config/environmentStruct.d.cts +20 -0
  139. package/dist/utils/config/environmentStruct.d.cts.map +1 -0
  140. package/dist/utils/config/environmentStruct.d.mts +20 -0
  141. package/dist/utils/config/environmentStruct.d.mts.map +1 -0
  142. package/dist/utils/config/environmentStruct.mjs +16 -0
  143. package/dist/utils/config/environmentStruct.mjs.map +1 -0
  144. package/dist/utils/config/logLevelStruct.cjs +14 -0
  145. package/dist/utils/config/logLevelStruct.cjs.map +1 -0
  146. package/dist/utils/config/logLevelStruct.d.cts +17 -0
  147. package/dist/utils/config/logLevelStruct.d.cts.map +1 -0
  148. package/dist/utils/config/logLevelStruct.d.mts +17 -0
  149. package/dist/utils/config/logLevelStruct.d.mts.map +1 -0
  150. package/dist/utils/config/logLevelStruct.mjs +11 -0
  151. package/dist/utils/config/logLevelStruct.mjs.map +1 -0
  152. package/dist/utils/config/parseEnv.cjs +30 -0
  153. package/dist/utils/config/parseEnv.cjs.map +1 -0
  154. package/dist/utils/config/parseEnv.d.cts +19 -0
  155. package/dist/utils/config/parseEnv.d.cts.map +1 -0
  156. package/dist/utils/config/parseEnv.d.mts +19 -0
  157. package/dist/utils/config/parseEnv.d.mts.map +1 -0
  158. package/dist/utils/config/parseEnv.mjs +26 -0
  159. package/dist/utils/config/parseEnv.mjs.map +1 -0
  160. package/dist/utils/dedupe/InFlightCoalescer.cjs +28 -0
  161. package/dist/utils/dedupe/InFlightCoalescer.cjs.map +1 -0
  162. package/dist/utils/dedupe/InFlightCoalescer.d.cts +12 -0
  163. package/dist/utils/dedupe/InFlightCoalescer.d.cts.map +1 -0
  164. package/dist/utils/dedupe/InFlightCoalescer.d.mts +12 -0
  165. package/dist/utils/dedupe/InFlightCoalescer.d.mts.map +1 -0
  166. package/dist/utils/dedupe/InFlightCoalescer.mjs +24 -0
  167. package/dist/utils/dedupe/InFlightCoalescer.mjs.map +1 -0
  168. package/dist/utils/errors/errors.cjs +44 -0
  169. package/dist/utils/errors/errors.cjs.map +1 -0
  170. package/dist/utils/errors/errors.d.cts +37 -0
  171. package/dist/utils/errors/errors.d.cts.map +1 -0
  172. package/dist/utils/errors/errors.d.mts +37 -0
  173. package/dist/utils/errors/errors.d.mts.map +1 -0
  174. package/dist/utils/errors/errors.mjs +40 -0
  175. package/dist/utils/errors/errors.mjs.map +1 -0
  176. package/dist/utils/errors/index.cjs +18 -0
  177. package/dist/utils/errors/index.cjs.map +1 -0
  178. package/dist/utils/errors/index.d.cts +10 -0
  179. package/dist/utils/errors/index.d.cts.map +1 -0
  180. package/dist/utils/errors/index.d.mts +10 -0
  181. package/dist/utils/errors/index.d.mts.map +1 -0
  182. package/dist/utils/errors/index.mjs +6 -0
  183. package/dist/utils/errors/index.mjs.map +1 -0
  184. package/dist/utils/errors/snapRpcError.cjs +33 -0
  185. package/dist/utils/errors/snapRpcError.cjs.map +1 -0
  186. package/dist/utils/errors/snapRpcError.d.cts +11 -0
  187. package/dist/utils/errors/snapRpcError.d.cts.map +1 -0
  188. package/dist/utils/errors/snapRpcError.d.mts +11 -0
  189. package/dist/utils/errors/snapRpcError.d.mts.map +1 -0
  190. package/dist/utils/errors/snapRpcError.mjs +30 -0
  191. package/dist/utils/errors/snapRpcError.mjs.map +1 -0
  192. package/dist/utils/errors/stringifyReason.cjs +36 -0
  193. package/dist/utils/errors/stringifyReason.cjs.map +1 -0
  194. package/dist/utils/errors/stringifyReason.d.cts +15 -0
  195. package/dist/utils/errors/stringifyReason.d.cts.map +1 -0
  196. package/dist/utils/errors/stringifyReason.d.mts +15 -0
  197. package/dist/utils/errors/stringifyReason.d.mts.map +1 -0
  198. package/dist/utils/errors/stringifyReason.mjs +33 -0
  199. package/dist/utils/errors/stringifyReason.mjs.map +1 -0
  200. package/dist/utils/errors/syncError.cjs +98 -0
  201. package/dist/utils/errors/syncError.cjs.map +1 -0
  202. package/dist/utils/errors/syncError.d.cts +60 -0
  203. package/dist/utils/errors/syncError.d.cts.map +1 -0
  204. package/dist/utils/errors/syncError.d.mts +60 -0
  205. package/dist/utils/errors/syncError.d.mts.map +1 -0
  206. package/dist/utils/errors/syncError.mjs +92 -0
  207. package/dist/utils/errors/syncError.mjs.map +1 -0
  208. package/dist/utils/errors/trackError.cjs +76 -0
  209. package/dist/utils/errors/trackError.cjs.map +1 -0
  210. package/dist/utils/errors/trackError.d.cts +64 -0
  211. package/dist/utils/errors/trackError.d.cts.map +1 -0
  212. package/dist/utils/errors/trackError.d.mts +64 -0
  213. package/dist/utils/errors/trackError.d.mts.map +1 -0
  214. package/dist/utils/errors/trackError.mjs +72 -0
  215. package/dist/utils/errors/trackError.mjs.map +1 -0
  216. package/dist/utils/handlers/wrapSnapHandlers.cjs +57 -0
  217. package/dist/utils/handlers/wrapSnapHandlers.cjs.map +1 -0
  218. package/dist/utils/handlers/wrapSnapHandlers.d.cts +74 -0
  219. package/dist/utils/handlers/wrapSnapHandlers.d.cts.map +1 -0
  220. package/dist/utils/handlers/wrapSnapHandlers.d.mts +74 -0
  221. package/dist/utils/handlers/wrapSnapHandlers.d.mts.map +1 -0
  222. package/dist/utils/handlers/wrapSnapHandlers.mjs +53 -0
  223. package/dist/utils/handlers/wrapSnapHandlers.mjs.map +1 -0
  224. package/dist/utils/keyringAccount/keyringAccount.cjs +25 -0
  225. package/dist/utils/keyringAccount/keyringAccount.cjs.map +1 -0
  226. package/dist/utils/keyringAccount/keyringAccount.d.cts +29 -0
  227. package/dist/utils/keyringAccount/keyringAccount.d.cts.map +1 -0
  228. package/dist/utils/keyringAccount/keyringAccount.d.mts +29 -0
  229. package/dist/utils/keyringAccount/keyringAccount.d.mts.map +1 -0
  230. package/dist/utils/keyringAccount/keyringAccount.mjs +22 -0
  231. package/dist/utils/keyringAccount/keyringAccount.mjs.map +1 -0
  232. package/dist/utils/logger/Logger.cjs +140 -0
  233. package/dist/utils/logger/Logger.cjs.map +1 -0
  234. package/dist/utils/logger/Logger.d.cts +118 -0
  235. package/dist/utils/logger/Logger.d.cts.map +1 -0
  236. package/dist/utils/logger/Logger.d.mts +118 -0
  237. package/dist/utils/logger/Logger.d.mts.map +1 -0
  238. package/dist/utils/logger/Logger.mjs +136 -0
  239. package/dist/utils/logger/Logger.mjs.map +1 -0
  240. package/dist/utils/logger/__mocks__/Logger.cjs +26 -0
  241. package/dist/utils/logger/__mocks__/Logger.cjs.map +1 -0
  242. package/dist/utils/logger/__mocks__/Logger.d.cts +3 -0
  243. package/dist/utils/logger/__mocks__/Logger.d.cts.map +1 -0
  244. package/dist/utils/logger/__mocks__/Logger.d.mts +3 -0
  245. package/dist/utils/logger/__mocks__/Logger.d.mts.map +1 -0
  246. package/dist/utils/logger/__mocks__/Logger.mjs +23 -0
  247. package/dist/utils/logger/__mocks__/Logger.mjs.map +1 -0
  248. package/dist/utils/originPermissions/createOriginPermissions.cjs +30 -0
  249. package/dist/utils/originPermissions/createOriginPermissions.cjs.map +1 -0
  250. package/dist/utils/originPermissions/createOriginPermissions.d.cts +24 -0
  251. package/dist/utils/originPermissions/createOriginPermissions.d.cts.map +1 -0
  252. package/dist/utils/originPermissions/createOriginPermissions.d.mts +24 -0
  253. package/dist/utils/originPermissions/createOriginPermissions.d.mts.map +1 -0
  254. package/dist/utils/originPermissions/createOriginPermissions.mjs +26 -0
  255. package/dist/utils/originPermissions/createOriginPermissions.mjs.map +1 -0
  256. package/dist/utils/originPermissions/validateOrigin.cjs +23 -0
  257. package/dist/utils/originPermissions/validateOrigin.cjs.map +1 -0
  258. package/dist/utils/originPermissions/validateOrigin.d.cts +10 -0
  259. package/dist/utils/originPermissions/validateOrigin.d.cts.map +1 -0
  260. package/dist/utils/originPermissions/validateOrigin.d.mts +10 -0
  261. package/dist/utils/originPermissions/validateOrigin.d.mts.map +1 -0
  262. package/dist/utils/originPermissions/validateOrigin.mjs +19 -0
  263. package/dist/utils/originPermissions/validateOrigin.mjs.map +1 -0
  264. package/dist/utils/proofOfOwnership/proofOfOwnership.cjs +89 -0
  265. package/dist/utils/proofOfOwnership/proofOfOwnership.cjs.map +1 -0
  266. package/dist/utils/proofOfOwnership/proofOfOwnership.d.cts +143 -0
  267. package/dist/utils/proofOfOwnership/proofOfOwnership.d.cts.map +1 -0
  268. package/dist/utils/proofOfOwnership/proofOfOwnership.d.mts +143 -0
  269. package/dist/utils/proofOfOwnership/proofOfOwnership.d.mts.map +1 -0
  270. package/dist/utils/proofOfOwnership/proofOfOwnership.mjs +85 -0
  271. package/dist/utils/proofOfOwnership/proofOfOwnership.mjs.map +1 -0
  272. package/dist/utils/safeMerge/safeMerge.cjs +26 -0
  273. package/dist/utils/safeMerge/safeMerge.cjs.map +1 -0
  274. package/dist/utils/safeMerge/safeMerge.d.cts +17 -0
  275. package/dist/utils/safeMerge/safeMerge.d.cts.map +1 -0
  276. package/dist/utils/safeMerge/safeMerge.d.mts +17 -0
  277. package/dist/utils/safeMerge/safeMerge.d.mts.map +1 -0
  278. package/dist/utils/safeMerge/safeMerge.mjs +22 -0
  279. package/dist/utils/safeMerge/safeMerge.mjs.map +1 -0
  280. package/dist/utils/sanitize/sanitize.cjs +42 -0
  281. package/dist/utils/sanitize/sanitize.cjs.map +1 -0
  282. package/dist/utils/sanitize/sanitize.d.cts +15 -0
  283. package/dist/utils/sanitize/sanitize.d.cts.map +1 -0
  284. package/dist/utils/sanitize/sanitize.d.mts +15 -0
  285. package/dist/utils/sanitize/sanitize.d.mts.map +1 -0
  286. package/dist/utils/sanitize/sanitize.mjs +38 -0
  287. package/dist/utils/sanitize/sanitize.mjs.map +1 -0
  288. package/dist/utils/serialization/serialization.cjs +73 -0
  289. package/dist/utils/serialization/serialization.cjs.map +1 -0
  290. package/dist/utils/serialization/serialization.d.cts +19 -0
  291. package/dist/utils/serialization/serialization.d.cts.map +1 -0
  292. package/dist/utils/serialization/serialization.d.mts +19 -0
  293. package/dist/utils/serialization/serialization.d.mts.map +1 -0
  294. package/dist/utils/serialization/serialization.mjs +69 -0
  295. package/dist/utils/serialization/serialization.mjs.map +1 -0
  296. package/dist/utils/serialization/types.cjs +3 -0
  297. package/dist/utils/serialization/types.cjs.map +1 -0
  298. package/dist/utils/serialization/types.d.cts +8 -0
  299. package/dist/utils/serialization/types.d.cts.map +1 -0
  300. package/dist/utils/serialization/types.d.mts +8 -0
  301. package/dist/utils/serialization/types.d.mts.map +1 -0
  302. package/dist/utils/serialization/types.mjs +2 -0
  303. package/dist/utils/serialization/types.mjs.map +1 -0
  304. package/dist/utils/state/IStateManager.cjs +3 -0
  305. package/dist/utils/state/IStateManager.cjs.map +1 -0
  306. package/dist/utils/state/IStateManager.d.cts +69 -0
  307. package/dist/utils/state/IStateManager.d.cts.map +1 -0
  308. package/dist/utils/state/IStateManager.d.mts +69 -0
  309. package/dist/utils/state/IStateManager.d.mts.map +1 -0
  310. package/dist/utils/state/IStateManager.mjs +2 -0
  311. package/dist/utils/state/IStateManager.mjs.map +1 -0
  312. package/dist/utils/state/InMemoryState.cjs +41 -0
  313. package/dist/utils/state/InMemoryState.cjs.map +1 -0
  314. package/dist/utils/state/InMemoryState.d.cts +18 -0
  315. package/dist/utils/state/InMemoryState.d.cts.map +1 -0
  316. package/dist/utils/state/InMemoryState.d.mts +18 -0
  317. package/dist/utils/state/InMemoryState.d.mts.map +1 -0
  318. package/dist/utils/state/InMemoryState.mjs +38 -0
  319. package/dist/utils/state/InMemoryState.mjs.map +1 -0
  320. package/dist/utils/state/State.cjs +159 -0
  321. package/dist/utils/state/State.cjs.map +1 -0
  322. package/dist/utils/state/State.d.cts +25 -0
  323. package/dist/utils/state/State.d.cts.map +1 -0
  324. package/dist/utils/state/State.d.mts +25 -0
  325. package/dist/utils/state/State.d.mts.map +1 -0
  326. package/dist/utils/state/State.mjs +156 -0
  327. package/dist/utils/state/State.mjs.map +1 -0
  328. package/dist/utils/transactionType/transactionType.cjs +32 -0
  329. package/dist/utils/transactionType/transactionType.cjs.map +1 -0
  330. package/dist/utils/transactionType/transactionType.d.cts +17 -0
  331. package/dist/utils/transactionType/transactionType.d.cts.map +1 -0
  332. package/dist/utils/transactionType/transactionType.d.mts +17 -0
  333. package/dist/utils/transactionType/transactionType.d.mts.map +1 -0
  334. package/dist/utils/transactionType/transactionType.mjs +28 -0
  335. package/dist/utils/transactionType/transactionType.mjs.map +1 -0
  336. package/dist/utils/urlStruct/urlStruct.cjs +96 -0
  337. package/dist/utils/urlStruct/urlStruct.cjs.map +1 -0
  338. package/dist/utils/urlStruct/urlStruct.d.cts +25 -0
  339. package/dist/utils/urlStruct/urlStruct.d.cts.map +1 -0
  340. package/dist/utils/urlStruct/urlStruct.d.mts +25 -0
  341. package/dist/utils/urlStruct/urlStruct.d.mts.map +1 -0
  342. package/dist/utils/urlStruct/urlStruct.mjs +93 -0
  343. package/dist/utils/urlStruct/urlStruct.mjs.map +1 -0
  344. package/dist/utils/uuidStruct/uuidStruct.cjs +12 -0
  345. package/dist/utils/uuidStruct/uuidStruct.cjs.map +1 -0
  346. package/dist/utils/uuidStruct/uuidStruct.d.cts +8 -0
  347. package/dist/utils/uuidStruct/uuidStruct.d.cts.map +1 -0
  348. package/dist/utils/uuidStruct/uuidStruct.d.mts +8 -0
  349. package/dist/utils/uuidStruct/uuidStruct.d.mts.map +1 -0
  350. package/dist/utils/uuidStruct/uuidStruct.mjs +9 -0
  351. package/dist/utils/uuidStruct/uuidStruct.mjs.map +1 -0
  352. package/package.json +33 -13
  353. package/dist/logger.cjs +0 -57
  354. package/dist/logger.cjs.map +0 -1
  355. package/dist/logger.d.cts +0 -30
  356. package/dist/logger.d.cts.map +0 -1
  357. package/dist/logger.d.mts +0 -30
  358. package/dist/logger.d.mts.map +0 -1
  359. package/dist/logger.mjs +0 -53
  360. package/dist/logger.mjs.map +0 -1
@@ -0,0 +1,37 @@
1
+ import type { Logger } from "../logger/Logger.cjs";
2
+ import type { SnapRpcError } from "./snapRpcError.cjs";
3
+ /**
4
+ * Sends an error to the snap's tracking transport (e.g. `snap_trackError`).
5
+ * Whether to invoke this for a given error in a given context is the caller's decision.
6
+ */
7
+ export type TrackErrorFn = (error: unknown) => Promise<string | undefined>;
8
+ /**
9
+ * Converts a caught value into an error suitable for Snap RPC responses.
10
+ */
11
+ export type NormalizeErrorFn = (error: unknown) => SnapRpcError;
12
+ /**
13
+ * Normalizes an unknown caught value into a Snap RPC error.
14
+ *
15
+ * Preserves existing Snap RPC errors; otherwise wraps the value in {@link SnapError}.
16
+ *
17
+ * @param error - The caught value.
18
+ * @returns A Snap RPC error.
19
+ */
20
+ export declare function normalizeError(error: unknown): SnapRpcError;
21
+ export type LogErrorFn = Logger['error'];
22
+ export type CreateWithCatchAndThrowSnapErrorOptions = {
23
+ logError: LogErrorFn;
24
+ trackError: TrackErrorFn;
25
+ normalizeErrorFn?: NormalizeErrorFn;
26
+ };
27
+ /**
28
+ * Creates a handler-boundary error wrapper wired with logger, tracking, and optional error normalization.
29
+ *
30
+ * @param options - Logger, error-tracking transport, and optional custom normalizer.
31
+ * @param options.logError - Logger method used to record the normalized error.
32
+ * @param options.trackError - Snap-specific Sentry transport.
33
+ * @param options.normalizeErrorFn - Optional error normalizer; defaults to {@link normalizeError}.
34
+ * @returns A function that catches errors, tracks them, logs, and rethrows as Snap RPC errors.
35
+ */
36
+ export declare function createWithCatchAndThrowSnapError({ logError, trackError, normalizeErrorFn, }: CreateWithCatchAndThrowSnapErrorOptions): <ResponseT>(fn: () => Promise<ResponseT>, logErrorOverride?: LogErrorFn) => Promise<ResponseT>;
37
+ //# sourceMappingURL=errors.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.cts","sourceRoot":"","sources":["../../../src/utils/errors/errors.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,6BAAyB;AAE/C,OAAO,KAAK,EAAE,YAAY,EAAE,2BAAuB;AAEnD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;AAE3E;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,YAAY,CAAC;AAEhE;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAI3D;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAEzC,MAAM,MAAM,uCAAuC,GAAG;IACpD,QAAQ,EAAE,UAAU,CAAC;IACrB,UAAU,EAAE,YAAY,CAAC;IACzB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAAC,EAC/C,QAAQ,EACR,UAAU,EACV,gBAAiC,GAClC,EAAE,uCAAuC,GAAG,CAAC,SAAS,EACrD,EAAE,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,EAC5B,gBAAgB,CAAC,EAAE,UAAU,KAC1B,OAAO,CAAC,SAAS,CAAC,CAWtB"}
@@ -0,0 +1,37 @@
1
+ import type { Logger } from "../logger/Logger.mjs";
2
+ import type { SnapRpcError } from "./snapRpcError.mjs";
3
+ /**
4
+ * Sends an error to the snap's tracking transport (e.g. `snap_trackError`).
5
+ * Whether to invoke this for a given error in a given context is the caller's decision.
6
+ */
7
+ export type TrackErrorFn = (error: unknown) => Promise<string | undefined>;
8
+ /**
9
+ * Converts a caught value into an error suitable for Snap RPC responses.
10
+ */
11
+ export type NormalizeErrorFn = (error: unknown) => SnapRpcError;
12
+ /**
13
+ * Normalizes an unknown caught value into a Snap RPC error.
14
+ *
15
+ * Preserves existing Snap RPC errors; otherwise wraps the value in {@link SnapError}.
16
+ *
17
+ * @param error - The caught value.
18
+ * @returns A Snap RPC error.
19
+ */
20
+ export declare function normalizeError(error: unknown): SnapRpcError;
21
+ export type LogErrorFn = Logger['error'];
22
+ export type CreateWithCatchAndThrowSnapErrorOptions = {
23
+ logError: LogErrorFn;
24
+ trackError: TrackErrorFn;
25
+ normalizeErrorFn?: NormalizeErrorFn;
26
+ };
27
+ /**
28
+ * Creates a handler-boundary error wrapper wired with logger, tracking, and optional error normalization.
29
+ *
30
+ * @param options - Logger, error-tracking transport, and optional custom normalizer.
31
+ * @param options.logError - Logger method used to record the normalized error.
32
+ * @param options.trackError - Snap-specific Sentry transport.
33
+ * @param options.normalizeErrorFn - Optional error normalizer; defaults to {@link normalizeError}.
34
+ * @returns A function that catches errors, tracks them, logs, and rethrows as Snap RPC errors.
35
+ */
36
+ export declare function createWithCatchAndThrowSnapError({ logError, trackError, normalizeErrorFn, }: CreateWithCatchAndThrowSnapErrorOptions): <ResponseT>(fn: () => Promise<ResponseT>, logErrorOverride?: LogErrorFn) => Promise<ResponseT>;
37
+ //# sourceMappingURL=errors.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.mts","sourceRoot":"","sources":["../../../src/utils/errors/errors.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,6BAAyB;AAE/C,OAAO,KAAK,EAAE,YAAY,EAAE,2BAAuB;AAEnD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;AAE3E;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,YAAY,CAAC;AAEhE;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAI3D;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAEzC,MAAM,MAAM,uCAAuC,GAAG;IACpD,QAAQ,EAAE,UAAU,CAAC;IACrB,UAAU,EAAE,YAAY,CAAC;IACzB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAAC,EAC/C,QAAQ,EACR,UAAU,EACV,gBAAiC,GAClC,EAAE,uCAAuC,GAAG,CAAC,SAAS,EACrD,EAAE,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,EAC5B,gBAAgB,CAAC,EAAE,UAAU,KAC1B,OAAO,CAAC,SAAS,CAAC,CAWtB"}
@@ -0,0 +1,40 @@
1
+ import { SnapError, getErrorMessage } from "@metamask/snaps-sdk";
2
+ import { isSnapRpcError } from "./snapRpcError.mjs";
3
+ /**
4
+ * Normalizes an unknown caught value into a Snap RPC error.
5
+ *
6
+ * Preserves existing Snap RPC errors; otherwise wraps the value in {@link SnapError}.
7
+ *
8
+ * @param error - The caught value.
9
+ * @returns A Snap RPC error.
10
+ */
11
+ export function normalizeError(error) {
12
+ return isSnapRpcError(error)
13
+ ? error
14
+ : new SnapError(error instanceof Error ? error : getErrorMessage(error));
15
+ }
16
+ /**
17
+ * Creates a handler-boundary error wrapper wired with logger, tracking, and optional error normalization.
18
+ *
19
+ * @param options - Logger, error-tracking transport, and optional custom normalizer.
20
+ * @param options.logError - Logger method used to record the normalized error.
21
+ * @param options.trackError - Snap-specific Sentry transport.
22
+ * @param options.normalizeErrorFn - Optional error normalizer; defaults to {@link normalizeError}.
23
+ * @returns A function that catches errors, tracks them, logs, and rethrows as Snap RPC errors.
24
+ */
25
+ export function createWithCatchAndThrowSnapError({ logError, trackError, normalizeErrorFn = normalizeError, }) {
26
+ return (fn, logErrorOverride) => withCatchAndThrowSnapErrorHandler(logErrorOverride ?? logError, trackError, normalizeErrorFn, fn);
27
+ }
28
+ async function withCatchAndThrowSnapErrorHandler(logError, trackError, normalizeErrorFn, fn) {
29
+ try {
30
+ return await fn();
31
+ }
32
+ catch (unknownError) {
33
+ await trackError(unknownError);
34
+ const error = normalizeErrorFn(unknownError);
35
+ logError({ error }, `[SnapError] ${JSON.stringify(error.toJSON(), null, 2)}`);
36
+ // eslint-disable-next-line @typescript-eslint/only-throw-error -- Snap RPC errors are the handler boundary surface
37
+ throw error;
38
+ }
39
+ }
40
+ //# sourceMappingURL=errors.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.mjs","sourceRoot":"","sources":["../../../src/utils/errors/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,4BAA4B;AAGjE,OAAO,EAAE,cAAc,EAAE,2BAAuB;AAchD;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,cAAc,CAAC,KAAK,CAAC;QAC1B,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,IAAI,SAAS,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7E,CAAC;AAUD;;;;;;;;GAQG;AACH,MAAM,UAAU,gCAAgC,CAAC,EAC/C,QAAQ,EACR,UAAU,EACV,gBAAgB,GAAG,cAAc,GACO;IAIxC,OAAO,CACL,EAA4B,EAC5B,gBAA6B,EACT,EAAE,CACtB,iCAAiC,CAC/B,gBAAgB,IAAI,QAAQ,EAC5B,UAAU,EACV,gBAAgB,EAChB,EAAE,CACH,CAAC;AACN,CAAC;AAED,KAAK,UAAU,iCAAiC,CAC9C,QAAoB,EACpB,UAAwB,EACxB,gBAAkC,EAClC,EAA4B;IAE5B,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,YAAY,EAAE,CAAC;QACtB,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC;QAE/B,MAAM,KAAK,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAE7C,QAAQ,CACN,EAAE,KAAK,EAAE,EACT,eAAe,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CACzD,CAAC;QAEF,mHAAmH;QACnH,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC","sourcesContent":["import { SnapError, getErrorMessage } from '@metamask/snaps-sdk';\n\nimport type { Logger } from '../logger/Logger';\nimport { isSnapRpcError } from './snapRpcError';\nimport type { SnapRpcError } from './snapRpcError';\n\n/**\n * Sends an error to the snap's tracking transport (e.g. `snap_trackError`).\n * Whether to invoke this for a given error in a given context is the caller's decision.\n */\nexport type TrackErrorFn = (error: unknown) => Promise<string | undefined>;\n\n/**\n * Converts a caught value into an error suitable for Snap RPC responses.\n */\nexport type NormalizeErrorFn = (error: unknown) => SnapRpcError;\n\n/**\n * Normalizes an unknown caught value into a Snap RPC error.\n *\n * Preserves existing Snap RPC errors; otherwise wraps the value in {@link SnapError}.\n *\n * @param error - The caught value.\n * @returns A Snap RPC error.\n */\nexport function normalizeError(error: unknown): SnapRpcError {\n return isSnapRpcError(error)\n ? error\n : new SnapError(error instanceof Error ? error : getErrorMessage(error));\n}\n\nexport type LogErrorFn = Logger['error'];\n\nexport type CreateWithCatchAndThrowSnapErrorOptions = {\n logError: LogErrorFn;\n trackError: TrackErrorFn;\n normalizeErrorFn?: NormalizeErrorFn;\n};\n\n/**\n * Creates a handler-boundary error wrapper wired with logger, tracking, and optional error normalization.\n *\n * @param options - Logger, error-tracking transport, and optional custom normalizer.\n * @param options.logError - Logger method used to record the normalized error.\n * @param options.trackError - Snap-specific Sentry transport.\n * @param options.normalizeErrorFn - Optional error normalizer; defaults to {@link normalizeError}.\n * @returns A function that catches errors, tracks them, logs, and rethrows as Snap RPC errors.\n */\nexport function createWithCatchAndThrowSnapError({\n logError,\n trackError,\n normalizeErrorFn = normalizeError,\n}: CreateWithCatchAndThrowSnapErrorOptions): <ResponseT>(\n fn: () => Promise<ResponseT>,\n logErrorOverride?: LogErrorFn,\n) => Promise<ResponseT> {\n return <ResponseT>(\n fn: () => Promise<ResponseT>,\n logErrorOverride?: LogErrorFn,\n ): Promise<ResponseT> =>\n withCatchAndThrowSnapErrorHandler(\n logErrorOverride ?? logError,\n trackError,\n normalizeErrorFn,\n fn,\n );\n}\n\nasync function withCatchAndThrowSnapErrorHandler<ResponseT>(\n logError: LogErrorFn,\n trackError: TrackErrorFn,\n normalizeErrorFn: NormalizeErrorFn,\n fn: () => Promise<ResponseT>,\n): Promise<ResponseT> {\n try {\n return await fn();\n } catch (unknownError) {\n await trackError(unknownError);\n\n const error = normalizeErrorFn(unknownError);\n\n logError(\n { error },\n `[SnapError] ${JSON.stringify(error.toJSON(), null, 2)}`,\n );\n\n // eslint-disable-next-line @typescript-eslint/only-throw-error -- Snap RPC errors are the handler boundary surface\n throw error;\n }\n}\n"]}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isSnapRpcError = exports.stringifyReason = exports.normalizeError = exports.createWithCatchAndThrowSnapError = exports.getSyncFailuresFromSettledResult = exports.formatAccountSyncFailures = exports.SynchronizationError = exports.createTrackError = exports.createSnapErrorHandling = void 0;
4
+ var trackError_1 = require("./trackError.cjs");
5
+ Object.defineProperty(exports, "createSnapErrorHandling", { enumerable: true, get: function () { return trackError_1.createSnapErrorHandling; } });
6
+ Object.defineProperty(exports, "createTrackError", { enumerable: true, get: function () { return trackError_1.createTrackError; } });
7
+ var syncError_1 = require("./syncError.cjs");
8
+ Object.defineProperty(exports, "SynchronizationError", { enumerable: true, get: function () { return syncError_1.SynchronizationError; } });
9
+ Object.defineProperty(exports, "formatAccountSyncFailures", { enumerable: true, get: function () { return syncError_1.formatAccountSyncFailures; } });
10
+ Object.defineProperty(exports, "getSyncFailuresFromSettledResult", { enumerable: true, get: function () { return syncError_1.getSyncFailuresFromSettledResult; } });
11
+ var errors_1 = require("./errors.cjs");
12
+ Object.defineProperty(exports, "createWithCatchAndThrowSnapError", { enumerable: true, get: function () { return errors_1.createWithCatchAndThrowSnapError; } });
13
+ Object.defineProperty(exports, "normalizeError", { enumerable: true, get: function () { return errors_1.normalizeError; } });
14
+ var stringifyReason_1 = require("./stringifyReason.cjs");
15
+ Object.defineProperty(exports, "stringifyReason", { enumerable: true, get: function () { return stringifyReason_1.stringifyReason; } });
16
+ var snapRpcError_1 = require("./snapRpcError.cjs");
17
+ Object.defineProperty(exports, "isSnapRpcError", { enumerable: true, get: function () { return snapRpcError_1.isSnapRpcError; } });
18
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../../src/utils/errors/index.ts"],"names":[],"mappings":";;;AAAA,+CAAyE;AAAhE,qHAAA,uBAAuB,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AAClD,6CAIqB;AAHnB,iHAAA,oBAAoB,OAAA;AACpB,sHAAA,yBAAyB,OAAA;AACzB,6HAAA,gCAAgC,OAAA;AAGlC,uCAA4E;AAAnE,0HAAA,gCAAgC,OAAA;AAAE,wGAAA,cAAc,OAAA;AACzD,yDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,mDAAgD;AAAvC,8GAAA,cAAc,OAAA","sourcesContent":["export { createSnapErrorHandling, createTrackError } from './trackError';\nexport {\n SynchronizationError,\n formatAccountSyncFailures,\n getSyncFailuresFromSettledResult,\n} from './syncError';\nexport type { AccountSyncFailure } from './syncError';\nexport { createWithCatchAndThrowSnapError, normalizeError } from './errors';\nexport { stringifyReason } from './stringifyReason';\nexport { isSnapRpcError } from './snapRpcError';\nexport type {\n CreateSnapErrorHandlingOptions,\n CreateTrackErrorOptions,\n PrepareErrorForTrackingFn,\n ShouldTrackErrorFn,\n SnapTrackErrorRequest,\n TrackErrorCapableProvider,\n} from './trackError';\nexport type {\n CreateWithCatchAndThrowSnapErrorOptions,\n LogErrorFn,\n NormalizeErrorFn,\n TrackErrorFn,\n} from './errors';\nexport type { SnapRpcError } from './snapRpcError';\n"]}
@@ -0,0 +1,10 @@
1
+ export { createSnapErrorHandling, createTrackError } from "./trackError.cjs";
2
+ export { SynchronizationError, formatAccountSyncFailures, getSyncFailuresFromSettledResult, } from "./syncError.cjs";
3
+ export type { AccountSyncFailure } from "./syncError.cjs";
4
+ export { createWithCatchAndThrowSnapError, normalizeError } from "./errors.cjs";
5
+ export { stringifyReason } from "./stringifyReason.cjs";
6
+ export { isSnapRpcError } from "./snapRpcError.cjs";
7
+ export type { CreateSnapErrorHandlingOptions, CreateTrackErrorOptions, PrepareErrorForTrackingFn, ShouldTrackErrorFn, SnapTrackErrorRequest, TrackErrorCapableProvider, } from "./trackError.cjs";
8
+ export type { CreateWithCatchAndThrowSnapErrorOptions, LogErrorFn, NormalizeErrorFn, TrackErrorFn, } from "./errors.cjs";
9
+ export type { SnapRpcError } from "./snapRpcError.cjs";
10
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../../src/utils/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,yBAAqB;AACzE,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,gCAAgC,GACjC,wBAAoB;AACrB,YAAY,EAAE,kBAAkB,EAAE,wBAAoB;AACtD,OAAO,EAAE,gCAAgC,EAAE,cAAc,EAAE,qBAAiB;AAC5E,OAAO,EAAE,eAAe,EAAE,8BAA0B;AACpD,OAAO,EAAE,cAAc,EAAE,2BAAuB;AAChD,YAAY,EACV,8BAA8B,EAC9B,uBAAuB,EACvB,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,GAC1B,yBAAqB;AACtB,YAAY,EACV,uCAAuC,EACvC,UAAU,EACV,gBAAgB,EAChB,YAAY,GACb,qBAAiB;AAClB,YAAY,EAAE,YAAY,EAAE,2BAAuB"}
@@ -0,0 +1,10 @@
1
+ export { createSnapErrorHandling, createTrackError } from "./trackError.mjs";
2
+ export { SynchronizationError, formatAccountSyncFailures, getSyncFailuresFromSettledResult, } from "./syncError.mjs";
3
+ export type { AccountSyncFailure } from "./syncError.mjs";
4
+ export { createWithCatchAndThrowSnapError, normalizeError } from "./errors.mjs";
5
+ export { stringifyReason } from "./stringifyReason.mjs";
6
+ export { isSnapRpcError } from "./snapRpcError.mjs";
7
+ export type { CreateSnapErrorHandlingOptions, CreateTrackErrorOptions, PrepareErrorForTrackingFn, ShouldTrackErrorFn, SnapTrackErrorRequest, TrackErrorCapableProvider, } from "./trackError.mjs";
8
+ export type { CreateWithCatchAndThrowSnapErrorOptions, LogErrorFn, NormalizeErrorFn, TrackErrorFn, } from "./errors.mjs";
9
+ export type { SnapRpcError } from "./snapRpcError.mjs";
10
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../src/utils/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,yBAAqB;AACzE,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,gCAAgC,GACjC,wBAAoB;AACrB,YAAY,EAAE,kBAAkB,EAAE,wBAAoB;AACtD,OAAO,EAAE,gCAAgC,EAAE,cAAc,EAAE,qBAAiB;AAC5E,OAAO,EAAE,eAAe,EAAE,8BAA0B;AACpD,OAAO,EAAE,cAAc,EAAE,2BAAuB;AAChD,YAAY,EACV,8BAA8B,EAC9B,uBAAuB,EACvB,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,GAC1B,yBAAqB;AACtB,YAAY,EACV,uCAAuC,EACvC,UAAU,EACV,gBAAgB,EAChB,YAAY,GACb,qBAAiB;AAClB,YAAY,EAAE,YAAY,EAAE,2BAAuB"}
@@ -0,0 +1,6 @@
1
+ export { createSnapErrorHandling, createTrackError } from "./trackError.mjs";
2
+ export { SynchronizationError, formatAccountSyncFailures, getSyncFailuresFromSettledResult } from "./syncError.mjs";
3
+ export { createWithCatchAndThrowSnapError, normalizeError } from "./errors.mjs";
4
+ export { stringifyReason } from "./stringifyReason.mjs";
5
+ export { isSnapRpcError } from "./snapRpcError.mjs";
6
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../src/utils/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,yBAAqB;AACzE,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,gCAAgC,EACjC,wBAAoB;AAErB,OAAO,EAAE,gCAAgC,EAAE,cAAc,EAAE,qBAAiB;AAC5E,OAAO,EAAE,eAAe,EAAE,8BAA0B;AACpD,OAAO,EAAE,cAAc,EAAE,2BAAuB","sourcesContent":["export { createSnapErrorHandling, createTrackError } from './trackError';\nexport {\n SynchronizationError,\n formatAccountSyncFailures,\n getSyncFailuresFromSettledResult,\n} from './syncError';\nexport type { AccountSyncFailure } from './syncError';\nexport { createWithCatchAndThrowSnapError, normalizeError } from './errors';\nexport { stringifyReason } from './stringifyReason';\nexport { isSnapRpcError } from './snapRpcError';\nexport type {\n CreateSnapErrorHandlingOptions,\n CreateTrackErrorOptions,\n PrepareErrorForTrackingFn,\n ShouldTrackErrorFn,\n SnapTrackErrorRequest,\n TrackErrorCapableProvider,\n} from './trackError';\nexport type {\n CreateWithCatchAndThrowSnapErrorOptions,\n LogErrorFn,\n NormalizeErrorFn,\n TrackErrorFn,\n} from './errors';\nexport type { SnapRpcError } from './snapRpcError';\n"]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isSnapRpcError = isSnapRpcError;
4
+ const snaps_sdk_1 = require("@metamask/snaps-sdk");
5
+ const SNAP_RPC_ERROR_TYPES = [
6
+ snaps_sdk_1.SnapError,
7
+ snaps_sdk_1.MethodNotFoundError,
8
+ snaps_sdk_1.UserRejectedRequestError,
9
+ snaps_sdk_1.MethodNotSupportedError,
10
+ snaps_sdk_1.ParseError,
11
+ snaps_sdk_1.ResourceNotFoundError,
12
+ snaps_sdk_1.ResourceUnavailableError,
13
+ snaps_sdk_1.TransactionRejected,
14
+ snaps_sdk_1.ChainDisconnectedError,
15
+ snaps_sdk_1.DisconnectedError,
16
+ snaps_sdk_1.UnauthorizedError,
17
+ snaps_sdk_1.UnsupportedMethodError,
18
+ snaps_sdk_1.InternalError,
19
+ snaps_sdk_1.InvalidInputError,
20
+ snaps_sdk_1.InvalidParamsError,
21
+ snaps_sdk_1.InvalidRequestError,
22
+ snaps_sdk_1.LimitExceededError,
23
+ ];
24
+ /**
25
+ * Determines if the given error is a Snap RPC error.
26
+ *
27
+ * @param error - The error instance to be checked.
28
+ * @returns A boolean indicating whether the error is a Snap RPC error.
29
+ */
30
+ function isSnapRpcError(error) {
31
+ return SNAP_RPC_ERROR_TYPES.some((errType) => error instanceof errType);
32
+ }
33
+ //# sourceMappingURL=snapRpcError.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapRpcError.cjs","sourceRoot":"","sources":["../../../src/utils/errors/snapRpcError.ts"],"names":[],"mappings":";;AAkEA,wCAEC;AApED,mDAkB6B;AAsB7B,MAAM,oBAAoB,GAAG;IAC3B,qBAAS;IACT,+BAAmB;IACnB,oCAAwB;IACxB,mCAAuB;IACvB,sBAAU;IACV,iCAAqB;IACrB,oCAAwB;IACxB,+BAAmB;IACnB,kCAAsB;IACtB,6BAAiB;IACjB,6BAAiB;IACjB,kCAAsB;IACtB,yBAAa;IACb,6BAAiB;IACjB,8BAAkB;IAClB,+BAAmB;IACnB,8BAAkB;CACV,CAAC;AAEX;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,KAAsB;IACnD,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,YAAY,OAAO,CAAC,CAAC;AAC1E,CAAC","sourcesContent":["import {\n MethodNotFoundError,\n ParseError,\n ResourceNotFoundError,\n ResourceUnavailableError,\n ChainDisconnectedError,\n TransactionRejected,\n DisconnectedError,\n InternalError,\n UnauthorizedError,\n UnsupportedMethodError,\n InvalidInputError,\n InvalidParamsError,\n InvalidRequestError,\n LimitExceededError,\n SnapError,\n MethodNotSupportedError,\n UserRejectedRequestError,\n} from '@metamask/snaps-sdk';\n\n/** Union of Snap RPC error instance types (for type narrowing). */\nexport type SnapRpcError =\n | InstanceType<typeof SnapError>\n | InstanceType<typeof MethodNotFoundError>\n | InstanceType<typeof UserRejectedRequestError>\n | InstanceType<typeof MethodNotSupportedError>\n | InstanceType<typeof ParseError>\n | InstanceType<typeof ResourceNotFoundError>\n | InstanceType<typeof ResourceUnavailableError>\n | InstanceType<typeof TransactionRejected>\n | InstanceType<typeof ChainDisconnectedError>\n | InstanceType<typeof DisconnectedError>\n | InstanceType<typeof UnauthorizedError>\n | InstanceType<typeof UnsupportedMethodError>\n | InstanceType<typeof InternalError>\n | InstanceType<typeof InvalidInputError>\n | InstanceType<typeof InvalidParamsError>\n | InstanceType<typeof InvalidRequestError>\n | InstanceType<typeof LimitExceededError>;\n\nconst SNAP_RPC_ERROR_TYPES = [\n SnapError,\n MethodNotFoundError,\n UserRejectedRequestError,\n MethodNotSupportedError,\n ParseError,\n ResourceNotFoundError,\n ResourceUnavailableError,\n TransactionRejected,\n ChainDisconnectedError,\n DisconnectedError,\n UnauthorizedError,\n UnsupportedMethodError,\n InternalError,\n InvalidInputError,\n InvalidParamsError,\n InvalidRequestError,\n LimitExceededError,\n] as const;\n\n/**\n * Determines if the given error is a Snap RPC error.\n *\n * @param error - The error instance to be checked.\n * @returns A boolean indicating whether the error is a Snap RPC error.\n */\nexport function isSnapRpcError(error: Error | unknown): error is SnapRpcError {\n return SNAP_RPC_ERROR_TYPES.some((errType) => error instanceof errType);\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import { MethodNotFoundError, ParseError, ResourceNotFoundError, ResourceUnavailableError, ChainDisconnectedError, TransactionRejected, DisconnectedError, InternalError, UnauthorizedError, UnsupportedMethodError, InvalidInputError, InvalidParamsError, InvalidRequestError, LimitExceededError, SnapError, MethodNotSupportedError, UserRejectedRequestError } from "@metamask/snaps-sdk";
2
+ /** Union of Snap RPC error instance types (for type narrowing). */
3
+ export type SnapRpcError = InstanceType<typeof SnapError> | InstanceType<typeof MethodNotFoundError> | InstanceType<typeof UserRejectedRequestError> | InstanceType<typeof MethodNotSupportedError> | InstanceType<typeof ParseError> | InstanceType<typeof ResourceNotFoundError> | InstanceType<typeof ResourceUnavailableError> | InstanceType<typeof TransactionRejected> | InstanceType<typeof ChainDisconnectedError> | InstanceType<typeof DisconnectedError> | InstanceType<typeof UnauthorizedError> | InstanceType<typeof UnsupportedMethodError> | InstanceType<typeof InternalError> | InstanceType<typeof InvalidInputError> | InstanceType<typeof InvalidParamsError> | InstanceType<typeof InvalidRequestError> | InstanceType<typeof LimitExceededError>;
4
+ /**
5
+ * Determines if the given error is a Snap RPC error.
6
+ *
7
+ * @param error - The error instance to be checked.
8
+ * @returns A boolean indicating whether the error is a Snap RPC error.
9
+ */
10
+ export declare function isSnapRpcError(error: Error | unknown): error is SnapRpcError;
11
+ //# sourceMappingURL=snapRpcError.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapRpcError.d.cts","sourceRoot":"","sources":["../../../src/utils/errors/snapRpcError.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,EACT,uBAAuB,EACvB,wBAAwB,EACzB,4BAA4B;AAE7B,mEAAmE;AACnE,MAAM,MAAM,YAAY,GACpB,YAAY,CAAC,OAAO,SAAS,CAAC,GAC9B,YAAY,CAAC,OAAO,mBAAmB,CAAC,GACxC,YAAY,CAAC,OAAO,wBAAwB,CAAC,GAC7C,YAAY,CAAC,OAAO,uBAAuB,CAAC,GAC5C,YAAY,CAAC,OAAO,UAAU,CAAC,GAC/B,YAAY,CAAC,OAAO,qBAAqB,CAAC,GAC1C,YAAY,CAAC,OAAO,wBAAwB,CAAC,GAC7C,YAAY,CAAC,OAAO,mBAAmB,CAAC,GACxC,YAAY,CAAC,OAAO,sBAAsB,CAAC,GAC3C,YAAY,CAAC,OAAO,iBAAiB,CAAC,GACtC,YAAY,CAAC,OAAO,iBAAiB,CAAC,GACtC,YAAY,CAAC,OAAO,sBAAsB,CAAC,GAC3C,YAAY,CAAC,OAAO,aAAa,CAAC,GAClC,YAAY,CAAC,OAAO,iBAAiB,CAAC,GACtC,YAAY,CAAC,OAAO,kBAAkB,CAAC,GACvC,YAAY,CAAC,OAAO,mBAAmB,CAAC,GACxC,YAAY,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAsB5C;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,IAAI,YAAY,CAE5E"}
@@ -0,0 +1,11 @@
1
+ import { MethodNotFoundError, ParseError, ResourceNotFoundError, ResourceUnavailableError, ChainDisconnectedError, TransactionRejected, DisconnectedError, InternalError, UnauthorizedError, UnsupportedMethodError, InvalidInputError, InvalidParamsError, InvalidRequestError, LimitExceededError, SnapError, MethodNotSupportedError, UserRejectedRequestError } from "@metamask/snaps-sdk";
2
+ /** Union of Snap RPC error instance types (for type narrowing). */
3
+ export type SnapRpcError = InstanceType<typeof SnapError> | InstanceType<typeof MethodNotFoundError> | InstanceType<typeof UserRejectedRequestError> | InstanceType<typeof MethodNotSupportedError> | InstanceType<typeof ParseError> | InstanceType<typeof ResourceNotFoundError> | InstanceType<typeof ResourceUnavailableError> | InstanceType<typeof TransactionRejected> | InstanceType<typeof ChainDisconnectedError> | InstanceType<typeof DisconnectedError> | InstanceType<typeof UnauthorizedError> | InstanceType<typeof UnsupportedMethodError> | InstanceType<typeof InternalError> | InstanceType<typeof InvalidInputError> | InstanceType<typeof InvalidParamsError> | InstanceType<typeof InvalidRequestError> | InstanceType<typeof LimitExceededError>;
4
+ /**
5
+ * Determines if the given error is a Snap RPC error.
6
+ *
7
+ * @param error - The error instance to be checked.
8
+ * @returns A boolean indicating whether the error is a Snap RPC error.
9
+ */
10
+ export declare function isSnapRpcError(error: Error | unknown): error is SnapRpcError;
11
+ //# sourceMappingURL=snapRpcError.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapRpcError.d.mts","sourceRoot":"","sources":["../../../src/utils/errors/snapRpcError.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,EACT,uBAAuB,EACvB,wBAAwB,EACzB,4BAA4B;AAE7B,mEAAmE;AACnE,MAAM,MAAM,YAAY,GACpB,YAAY,CAAC,OAAO,SAAS,CAAC,GAC9B,YAAY,CAAC,OAAO,mBAAmB,CAAC,GACxC,YAAY,CAAC,OAAO,wBAAwB,CAAC,GAC7C,YAAY,CAAC,OAAO,uBAAuB,CAAC,GAC5C,YAAY,CAAC,OAAO,UAAU,CAAC,GAC/B,YAAY,CAAC,OAAO,qBAAqB,CAAC,GAC1C,YAAY,CAAC,OAAO,wBAAwB,CAAC,GAC7C,YAAY,CAAC,OAAO,mBAAmB,CAAC,GACxC,YAAY,CAAC,OAAO,sBAAsB,CAAC,GAC3C,YAAY,CAAC,OAAO,iBAAiB,CAAC,GACtC,YAAY,CAAC,OAAO,iBAAiB,CAAC,GACtC,YAAY,CAAC,OAAO,sBAAsB,CAAC,GAC3C,YAAY,CAAC,OAAO,aAAa,CAAC,GAClC,YAAY,CAAC,OAAO,iBAAiB,CAAC,GACtC,YAAY,CAAC,OAAO,kBAAkB,CAAC,GACvC,YAAY,CAAC,OAAO,mBAAmB,CAAC,GACxC,YAAY,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAsB5C;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,IAAI,YAAY,CAE5E"}
@@ -0,0 +1,30 @@
1
+ import { MethodNotFoundError, ParseError, ResourceNotFoundError, ResourceUnavailableError, ChainDisconnectedError, TransactionRejected, DisconnectedError, InternalError, UnauthorizedError, UnsupportedMethodError, InvalidInputError, InvalidParamsError, InvalidRequestError, LimitExceededError, SnapError, MethodNotSupportedError, UserRejectedRequestError } from "@metamask/snaps-sdk";
2
+ const SNAP_RPC_ERROR_TYPES = [
3
+ SnapError,
4
+ MethodNotFoundError,
5
+ UserRejectedRequestError,
6
+ MethodNotSupportedError,
7
+ ParseError,
8
+ ResourceNotFoundError,
9
+ ResourceUnavailableError,
10
+ TransactionRejected,
11
+ ChainDisconnectedError,
12
+ DisconnectedError,
13
+ UnauthorizedError,
14
+ UnsupportedMethodError,
15
+ InternalError,
16
+ InvalidInputError,
17
+ InvalidParamsError,
18
+ InvalidRequestError,
19
+ LimitExceededError,
20
+ ];
21
+ /**
22
+ * Determines if the given error is a Snap RPC error.
23
+ *
24
+ * @param error - The error instance to be checked.
25
+ * @returns A boolean indicating whether the error is a Snap RPC error.
26
+ */
27
+ export function isSnapRpcError(error) {
28
+ return SNAP_RPC_ERROR_TYPES.some((errType) => error instanceof errType);
29
+ }
30
+ //# sourceMappingURL=snapRpcError.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapRpcError.mjs","sourceRoot":"","sources":["../../../src/utils/errors/snapRpcError.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,EACT,uBAAuB,EACvB,wBAAwB,EACzB,4BAA4B;AAsB7B,MAAM,oBAAoB,GAAG;IAC3B,SAAS;IACT,mBAAmB;IACnB,wBAAwB;IACxB,uBAAuB;IACvB,UAAU;IACV,qBAAqB;IACrB,wBAAwB;IACxB,mBAAmB;IACnB,sBAAsB;IACtB,iBAAiB;IACjB,iBAAiB;IACjB,sBAAsB;IACtB,aAAa;IACb,iBAAiB;IACjB,kBAAkB;IAClB,mBAAmB;IACnB,kBAAkB;CACV,CAAC;AAEX;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAAsB;IACnD,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,YAAY,OAAO,CAAC,CAAC;AAC1E,CAAC","sourcesContent":["import {\n MethodNotFoundError,\n ParseError,\n ResourceNotFoundError,\n ResourceUnavailableError,\n ChainDisconnectedError,\n TransactionRejected,\n DisconnectedError,\n InternalError,\n UnauthorizedError,\n UnsupportedMethodError,\n InvalidInputError,\n InvalidParamsError,\n InvalidRequestError,\n LimitExceededError,\n SnapError,\n MethodNotSupportedError,\n UserRejectedRequestError,\n} from '@metamask/snaps-sdk';\n\n/** Union of Snap RPC error instance types (for type narrowing). */\nexport type SnapRpcError =\n | InstanceType<typeof SnapError>\n | InstanceType<typeof MethodNotFoundError>\n | InstanceType<typeof UserRejectedRequestError>\n | InstanceType<typeof MethodNotSupportedError>\n | InstanceType<typeof ParseError>\n | InstanceType<typeof ResourceNotFoundError>\n | InstanceType<typeof ResourceUnavailableError>\n | InstanceType<typeof TransactionRejected>\n | InstanceType<typeof ChainDisconnectedError>\n | InstanceType<typeof DisconnectedError>\n | InstanceType<typeof UnauthorizedError>\n | InstanceType<typeof UnsupportedMethodError>\n | InstanceType<typeof InternalError>\n | InstanceType<typeof InvalidInputError>\n | InstanceType<typeof InvalidParamsError>\n | InstanceType<typeof InvalidRequestError>\n | InstanceType<typeof LimitExceededError>;\n\nconst SNAP_RPC_ERROR_TYPES = [\n SnapError,\n MethodNotFoundError,\n UserRejectedRequestError,\n MethodNotSupportedError,\n ParseError,\n ResourceNotFoundError,\n ResourceUnavailableError,\n TransactionRejected,\n ChainDisconnectedError,\n DisconnectedError,\n UnauthorizedError,\n UnsupportedMethodError,\n InternalError,\n InvalidInputError,\n InvalidParamsError,\n InvalidRequestError,\n LimitExceededError,\n] as const;\n\n/**\n * Determines if the given error is a Snap RPC error.\n *\n * @param error - The error instance to be checked.\n * @returns A boolean indicating whether the error is a Snap RPC error.\n */\nexport function isSnapRpcError(error: Error | unknown): error is SnapRpcError {\n return SNAP_RPC_ERROR_TYPES.some((errType) => error instanceof errType);\n}\n"]}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stringifyReason = stringifyReason;
4
+ /**
5
+ * Stringifies a rejection reason without ever throwing: `String(reason)`
6
+ * throws when the reason has a hostile `toString`/`Symbol.toPrimitive`. If the
7
+ * reason is an error with a `cause`, the cause is appended, so the wrapped
8
+ * failure (e.g. the underlying network error) is part of the reported reason.
9
+ *
10
+ * Intended for building human-readable failure reasons (e.g. for
11
+ * `AccountSyncFailure.reason`), where wrapper errors would otherwise hide the
12
+ * original failure behind a generic message.
13
+ *
14
+ * @param reason - The rejection reason to stringify.
15
+ * @returns The reason as a string, or a placeholder when stringification fails.
16
+ */
17
+ function stringifyReason(reason) {
18
+ try {
19
+ if (!(reason instanceof Error)) {
20
+ return String(reason);
21
+ }
22
+ const message = String(reason);
23
+ const { cause } = reason;
24
+ if (cause === null || cause === undefined) {
25
+ return message;
26
+ }
27
+ // Deliberately permissive: any cause detail is worth reporting, and a
28
+ // pathological value still ends up as the placeholder via the outer catch.
29
+ // eslint-disable-next-line @typescript-eslint/no-base-to-string
30
+ return `${message} (${String(cause)})`;
31
+ }
32
+ catch {
33
+ return 'Unknown error';
34
+ }
35
+ }
36
+ //# sourceMappingURL=stringifyReason.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stringifyReason.cjs","sourceRoot":"","sources":["../../../src/utils/errors/stringifyReason.ts"],"names":[],"mappings":";;AAaA,0CAoBC;AAjCD;;;;;;;;;;;;GAYG;AACH,SAAgB,eAAe,CAAC,MAAe;IAC7C,IAAI,CAAC;QACH,IAAI,CAAC,CAAC,MAAM,YAAY,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QAEzB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,sEAAsE;QACtE,2EAA2E;QAC3E,gEAAgE;QAChE,OAAO,GAAG,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,eAAe,CAAC;IACzB,CAAC;AACH,CAAC","sourcesContent":["/**\n * Stringifies a rejection reason without ever throwing: `String(reason)`\n * throws when the reason has a hostile `toString`/`Symbol.toPrimitive`. If the\n * reason is an error with a `cause`, the cause is appended, so the wrapped\n * failure (e.g. the underlying network error) is part of the reported reason.\n *\n * Intended for building human-readable failure reasons (e.g. for\n * `AccountSyncFailure.reason`), where wrapper errors would otherwise hide the\n * original failure behind a generic message.\n *\n * @param reason - The rejection reason to stringify.\n * @returns The reason as a string, or a placeholder when stringification fails.\n */\nexport function stringifyReason(reason: unknown): string {\n try {\n if (!(reason instanceof Error)) {\n return String(reason);\n }\n\n const message = String(reason);\n const { cause } = reason;\n\n if (cause === null || cause === undefined) {\n return message;\n }\n\n // Deliberately permissive: any cause detail is worth reporting, and a\n // pathological value still ends up as the placeholder via the outer catch.\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n return `${message} (${String(cause)})`;\n } catch {\n return 'Unknown error';\n }\n}\n"]}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Stringifies a rejection reason without ever throwing: `String(reason)`
3
+ * throws when the reason has a hostile `toString`/`Symbol.toPrimitive`. If the
4
+ * reason is an error with a `cause`, the cause is appended, so the wrapped
5
+ * failure (e.g. the underlying network error) is part of the reported reason.
6
+ *
7
+ * Intended for building human-readable failure reasons (e.g. for
8
+ * `AccountSyncFailure.reason`), where wrapper errors would otherwise hide the
9
+ * original failure behind a generic message.
10
+ *
11
+ * @param reason - The rejection reason to stringify.
12
+ * @returns The reason as a string, or a placeholder when stringification fails.
13
+ */
14
+ export declare function stringifyReason(reason: unknown): string;
15
+ //# sourceMappingURL=stringifyReason.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stringifyReason.d.cts","sourceRoot":"","sources":["../../../src/utils/errors/stringifyReason.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAoBvD"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Stringifies a rejection reason without ever throwing: `String(reason)`
3
+ * throws when the reason has a hostile `toString`/`Symbol.toPrimitive`. If the
4
+ * reason is an error with a `cause`, the cause is appended, so the wrapped
5
+ * failure (e.g. the underlying network error) is part of the reported reason.
6
+ *
7
+ * Intended for building human-readable failure reasons (e.g. for
8
+ * `AccountSyncFailure.reason`), where wrapper errors would otherwise hide the
9
+ * original failure behind a generic message.
10
+ *
11
+ * @param reason - The rejection reason to stringify.
12
+ * @returns The reason as a string, or a placeholder when stringification fails.
13
+ */
14
+ export declare function stringifyReason(reason: unknown): string;
15
+ //# sourceMappingURL=stringifyReason.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stringifyReason.d.mts","sourceRoot":"","sources":["../../../src/utils/errors/stringifyReason.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAoBvD"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Stringifies a rejection reason without ever throwing: `String(reason)`
3
+ * throws when the reason has a hostile `toString`/`Symbol.toPrimitive`. If the
4
+ * reason is an error with a `cause`, the cause is appended, so the wrapped
5
+ * failure (e.g. the underlying network error) is part of the reported reason.
6
+ *
7
+ * Intended for building human-readable failure reasons (e.g. for
8
+ * `AccountSyncFailure.reason`), where wrapper errors would otherwise hide the
9
+ * original failure behind a generic message.
10
+ *
11
+ * @param reason - The rejection reason to stringify.
12
+ * @returns The reason as a string, or a placeholder when stringification fails.
13
+ */
14
+ export function stringifyReason(reason) {
15
+ try {
16
+ if (!(reason instanceof Error)) {
17
+ return String(reason);
18
+ }
19
+ const message = String(reason);
20
+ const { cause } = reason;
21
+ if (cause === null || cause === undefined) {
22
+ return message;
23
+ }
24
+ // Deliberately permissive: any cause detail is worth reporting, and a
25
+ // pathological value still ends up as the placeholder via the outer catch.
26
+ // eslint-disable-next-line @typescript-eslint/no-base-to-string
27
+ return `${message} (${String(cause)})`;
28
+ }
29
+ catch {
30
+ return 'Unknown error';
31
+ }
32
+ }
33
+ //# sourceMappingURL=stringifyReason.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stringifyReason.mjs","sourceRoot":"","sources":["../../../src/utils/errors/stringifyReason.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAAC,MAAe;IAC7C,IAAI,CAAC;QACH,IAAI,CAAC,CAAC,MAAM,YAAY,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QAEzB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,sEAAsE;QACtE,2EAA2E;QAC3E,gEAAgE;QAChE,OAAO,GAAG,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,eAAe,CAAC;IACzB,CAAC;AACH,CAAC","sourcesContent":["/**\n * Stringifies a rejection reason without ever throwing: `String(reason)`\n * throws when the reason has a hostile `toString`/`Symbol.toPrimitive`. If the\n * reason is an error with a `cause`, the cause is appended, so the wrapped\n * failure (e.g. the underlying network error) is part of the reported reason.\n *\n * Intended for building human-readable failure reasons (e.g. for\n * `AccountSyncFailure.reason`), where wrapper errors would otherwise hide the\n * original failure behind a generic message.\n *\n * @param reason - The rejection reason to stringify.\n * @returns The reason as a string, or a placeholder when stringification fails.\n */\nexport function stringifyReason(reason: unknown): string {\n try {\n if (!(reason instanceof Error)) {\n return String(reason);\n }\n\n const message = String(reason);\n const { cause } = reason;\n\n if (cause === null || cause === undefined) {\n return message;\n }\n\n // Deliberately permissive: any cause detail is worth reporting, and a\n // pathological value still ends up as the placeholder via the outer catch.\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n return `${message} (${String(cause)})`;\n } catch {\n return 'Unknown error';\n }\n}\n"]}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SynchronizationError = void 0;
4
+ exports.getSyncFailuresFromSettledResult = getSyncFailuresFromSettledResult;
5
+ exports.formatAccountSyncFailures = formatAccountSyncFailures;
6
+ const stringifyReason_1 = require("./stringifyReason.cjs");
7
+ /**
8
+ * Maps settled synchronization results to account synchronization failures:
9
+ * each rejection is attributed to the account ID at the same index
10
+ * (`Promise.allSettled` preserves order).
11
+ *
12
+ * Rejection reasons are stringified with {@link stringifyReason}, so wrapped
13
+ * errors report their cause as well.
14
+ *
15
+ * @param results - The settled synchronization results.
16
+ * @param accountIds - The account IDs, in the same order as `results`.
17
+ * @returns The collected failures, in results order.
18
+ */
19
+ function getSyncFailuresFromSettledResult(results, accountIds) {
20
+ const failures = [];
21
+ results.forEach((result, index) => {
22
+ const accountId = accountIds[index];
23
+ if (accountId && result.status === 'rejected') {
24
+ failures.push({
25
+ accountId,
26
+ reason: (0, stringifyReason_1.stringifyReason)(result.reason),
27
+ });
28
+ }
29
+ });
30
+ return failures;
31
+ }
32
+ /**
33
+ * Maximum number of characters kept from each failure reason. Reasons can be
34
+ * arbitrarily long (e.g. full network error messages), so they are truncated
35
+ * to keep the error message readable in Sentry.
36
+ */
37
+ const MAX_REASON_LENGTH = 300;
38
+ /**
39
+ * Maximum number of failures listed in the error message. When more accounts
40
+ * fail, the remaining ones are summarized with a `+N more` suffix.
41
+ */
42
+ const MAX_LISTED_FAILURES = 10;
43
+ /**
44
+ * Formats account synchronization failures as a compact, single-line summary.
45
+ *
46
+ * The summary is intended to be embedded in the error message of a
47
+ * `SynchronizationError`: error tracking via `snap_trackError` serializes only
48
+ * the error's `name`, `message`, `stack`, and `cause`, so any details stored in
49
+ * other properties (e.g. a `data` field) are lost before reaching Sentry.
50
+ *
51
+ * @param failures - The account synchronization failures to format.
52
+ * @returns A single-line summary of the failures, truncated to keep the
53
+ * message readable.
54
+ */
55
+ function formatAccountSyncFailures(failures) {
56
+ const listed = failures.slice(0, MAX_LISTED_FAILURES);
57
+ const details = listed.map((failure) => {
58
+ const reason = failure.reason.length > MAX_REASON_LENGTH
59
+ ? `${failure.reason.slice(0, MAX_REASON_LENGTH)}…`
60
+ : failure.reason;
61
+ return `${failure.accountId}: ${reason}`;
62
+ });
63
+ const remaining = failures.length - listed.length;
64
+ const suffix = remaining > 0 ? `; +${remaining} more` : '';
65
+ return `${details.join('; ')}${suffix}`;
66
+ }
67
+ /**
68
+ * Error thrown when one or more accounts fail to synchronize.
69
+ *
70
+ * The failure details are embedded in the message (not only in a property) so
71
+ * that they survive error tracking: `snap_trackError` serializes only the
72
+ * error's `name`, `message`, `stack`, and `cause`.
73
+ */
74
+ class SynchronizationError extends Error {
75
+ /**
76
+ * The structured list of account synchronization failures. Useful for logs;
77
+ * note that it is not preserved by error tracking.
78
+ */
79
+ failures;
80
+ /**
81
+ * Construct a new synchronization error.
82
+ *
83
+ * @param message - The error message, e.g. `'Account synchronization failures'`.
84
+ * @param failures - The per-account failures to append to the message.
85
+ * @param options - Additional error options.
86
+ * @param options.cause - The underlying error that caused the synchronization failure, if any.
87
+ */
88
+ constructor(message, failures = [], options) {
89
+ const details = failures.length > 0
90
+ ? ` (${failures.length} failed): ${formatAccountSyncFailures(failures)}`
91
+ : '';
92
+ super(`${message}${details}`, options);
93
+ this.name = 'SynchronizationError';
94
+ this.failures = failures;
95
+ }
96
+ }
97
+ exports.SynchronizationError = SynchronizationError;
98
+ //# sourceMappingURL=syncError.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncError.cjs","sourceRoot":"","sources":["../../../src/utils/errors/syncError.ts"],"names":[],"mappings":";;;AAyBA,4EAiBC;AA2BD,8DAiBC;AAtFD,2DAAoD;AAapD;;;;;;;;;;;GAWG;AACH,SAAgB,gCAAgC,CAC9C,OAAwC,EACxC,UAAoB;IAEpB,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAE1C,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAChC,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC9C,QAAQ,CAAC,IAAI,CAAC;gBACZ,SAAS;gBACT,MAAM,EAAE,IAAA,iCAAe,EAAC,MAAM,CAAC,MAAM,CAAC;aACvC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B;;;GAGG;AACH,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B;;;;;;;;;;;GAWG;AACH,SAAgB,yBAAyB,CACvC,QAA8B;IAE9B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACrC,MAAM,MAAM,GACV,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB;YACvC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,GAAG;YAClD,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QAErB,OAAO,GAAG,OAAO,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAClD,MAAM,MAAM,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,SAAS,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAE3D,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC;AAC1C,CAAC;AAED;;;;;;GAMG;AACH,MAAa,oBAAqB,SAAQ,KAAK;IAC7C;;;OAGG;IACM,QAAQ,CAAuB;IAExC;;;;;;;OAOG;IACH,YACE,OAAe,EACf,WAAiC,EAAE,EACnC,OAAsB;QAEtB,MAAM,OAAO,GACX,QAAQ,CAAC,MAAM,GAAG,CAAC;YACjB,CAAC,CAAC,KAAK,QAAQ,CAAC,MAAM,aAAa,yBAAyB,CAAC,QAAQ,CAAC,EAAE;YACxE,CAAC,CAAC,EAAE,CAAC;QAET,KAAK,CAAC,GAAG,OAAO,GAAG,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AA7BD,oDA6BC","sourcesContent":["import { stringifyReason } from './stringifyReason';\n\n/**\n * A single account synchronization failure, with enough context to understand\n * which account failed and why.\n */\nexport type AccountSyncFailure = {\n /** The ID of the account that failed to synchronize. */\n accountId: string;\n /** The failure reason, as a human-readable string. */\n reason: string;\n};\n\n/**\n * Maps settled synchronization results to account synchronization failures:\n * each rejection is attributed to the account ID at the same index\n * (`Promise.allSettled` preserves order).\n *\n * Rejection reasons are stringified with {@link stringifyReason}, so wrapped\n * errors report their cause as well.\n *\n * @param results - The settled synchronization results.\n * @param accountIds - The account IDs, in the same order as `results`.\n * @returns The collected failures, in results order.\n */\nexport function getSyncFailuresFromSettledResult(\n results: PromiseSettledResult<unknown>[],\n accountIds: string[],\n): AccountSyncFailure[] {\n const failures: AccountSyncFailure[] = [];\n\n results.forEach((result, index) => {\n const accountId = accountIds[index];\n if (accountId && result.status === 'rejected') {\n failures.push({\n accountId,\n reason: stringifyReason(result.reason),\n });\n }\n });\n\n return failures;\n}\n\n/**\n * Maximum number of characters kept from each failure reason. Reasons can be\n * arbitrarily long (e.g. full network error messages), so they are truncated\n * to keep the error message readable in Sentry.\n */\nconst MAX_REASON_LENGTH = 300;\n\n/**\n * Maximum number of failures listed in the error message. When more accounts\n * fail, the remaining ones are summarized with a `+N more` suffix.\n */\nconst MAX_LISTED_FAILURES = 10;\n\n/**\n * Formats account synchronization failures as a compact, single-line summary.\n *\n * The summary is intended to be embedded in the error message of a\n * `SynchronizationError`: error tracking via `snap_trackError` serializes only\n * the error's `name`, `message`, `stack`, and `cause`, so any details stored in\n * other properties (e.g. a `data` field) are lost before reaching Sentry.\n *\n * @param failures - The account synchronization failures to format.\n * @returns A single-line summary of the failures, truncated to keep the\n * message readable.\n */\nexport function formatAccountSyncFailures(\n failures: AccountSyncFailure[],\n): string {\n const listed = failures.slice(0, MAX_LISTED_FAILURES);\n const details = listed.map((failure) => {\n const reason =\n failure.reason.length > MAX_REASON_LENGTH\n ? `${failure.reason.slice(0, MAX_REASON_LENGTH)}…`\n : failure.reason;\n\n return `${failure.accountId}: ${reason}`;\n });\n\n const remaining = failures.length - listed.length;\n const suffix = remaining > 0 ? `; +${remaining} more` : '';\n\n return `${details.join('; ')}${suffix}`;\n}\n\n/**\n * Error thrown when one or more accounts fail to synchronize.\n *\n * The failure details are embedded in the message (not only in a property) so\n * that they survive error tracking: `snap_trackError` serializes only the\n * error's `name`, `message`, `stack`, and `cause`.\n */\nexport class SynchronizationError extends Error {\n /**\n * The structured list of account synchronization failures. Useful for logs;\n * note that it is not preserved by error tracking.\n */\n readonly failures: AccountSyncFailure[];\n\n /**\n * Construct a new synchronization error.\n *\n * @param message - The error message, e.g. `'Account synchronization failures'`.\n * @param failures - The per-account failures to append to the message.\n * @param options - Additional error options.\n * @param options.cause - The underlying error that caused the synchronization failure, if any.\n */\n constructor(\n message: string,\n failures: AccountSyncFailure[] = [],\n options?: ErrorOptions,\n ) {\n const details =\n failures.length > 0\n ? ` (${failures.length} failed): ${formatAccountSyncFailures(failures)}`\n : '';\n\n super(`${message}${details}`, options);\n this.name = 'SynchronizationError';\n this.failures = failures;\n }\n}\n"]}