@ledgerhq/context-module 1.16.0 → 1.17.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 (286) hide show
  1. package/lib/cjs/package.json +2 -3
  2. package/lib/cjs/src/DefaultContextModule.js +1 -1
  3. package/lib/cjs/src/DefaultContextModule.js.map +3 -3
  4. package/lib/cjs/src/account-ownership/data/AccountOwnershipDataSource.js +2 -0
  5. package/lib/cjs/src/account-ownership/data/AccountOwnershipDataSource.js.map +7 -0
  6. package/lib/cjs/src/account-ownership/data/AccountOwnershipError.js +2 -0
  7. package/lib/cjs/src/account-ownership/data/AccountOwnershipError.js.map +7 -0
  8. package/lib/cjs/src/account-ownership/data/HttpAccountOwnershipDataSource.js +2 -0
  9. package/lib/cjs/src/account-ownership/data/HttpAccountOwnershipDataSource.js.map +7 -0
  10. package/lib/cjs/src/account-ownership/data/HttpAccountOwnershipDataSource.test.js +2 -0
  11. package/lib/cjs/src/account-ownership/data/HttpAccountOwnershipDataSource.test.js.map +7 -0
  12. package/lib/cjs/src/account-ownership/data/dto/AccountOwnershipDto.js +2 -0
  13. package/lib/cjs/src/account-ownership/data/dto/AccountOwnershipDto.js.map +7 -0
  14. package/lib/cjs/src/account-ownership/di/accountOwnershipModuleFactory.js +2 -0
  15. package/lib/cjs/src/account-ownership/di/accountOwnershipModuleFactory.js.map +7 -0
  16. package/lib/cjs/src/account-ownership/di/accountOwnershipTypes.js +2 -0
  17. package/lib/cjs/src/account-ownership/di/accountOwnershipTypes.js.map +7 -0
  18. package/lib/cjs/src/account-ownership/domain/AccountOwnershipContextLoader.js +2 -0
  19. package/lib/cjs/src/account-ownership/domain/AccountOwnershipContextLoader.js.map +7 -0
  20. package/lib/cjs/src/account-ownership/domain/AccountOwnershipContextLoader.test.js +2 -0
  21. package/lib/cjs/src/account-ownership/domain/AccountOwnershipContextLoader.test.js.map +7 -0
  22. package/lib/cjs/src/calldata/data/HttpCalldataDescriptorDataSource.js +1 -1
  23. package/lib/cjs/src/calldata/data/HttpCalldataDescriptorDataSource.js.map +3 -3
  24. package/lib/cjs/src/calldata/data/HttpCalldataDescriptorDataSource.test.js +1 -1
  25. package/lib/cjs/src/calldata/data/HttpCalldataDescriptorDataSource.test.js.map +3 -3
  26. package/lib/cjs/src/calldata/di/calldataModuleFactory.js +1 -1
  27. package/lib/cjs/src/calldata/di/calldataModuleFactory.js.map +3 -3
  28. package/lib/cjs/src/di.js +1 -1
  29. package/lib/cjs/src/di.js.map +3 -3
  30. package/lib/cjs/src/dynamic-network/data/HttpDynamicNetworkDataSource.js +1 -1
  31. package/lib/cjs/src/dynamic-network/data/HttpDynamicNetworkDataSource.js.map +3 -3
  32. package/lib/cjs/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.js +1 -1
  33. package/lib/cjs/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.js.map +3 -3
  34. package/lib/cjs/src/external-plugin/data/HttpExternalPluginDataSource.js +1 -1
  35. package/lib/cjs/src/external-plugin/data/HttpExternalPluginDataSource.js.map +3 -3
  36. package/lib/cjs/src/external-plugin/data/HttpExternalPluginDataSource.test.js +1 -1
  37. package/lib/cjs/src/external-plugin/data/HttpExternalPluginDataSource.test.js.map +3 -3
  38. package/lib/cjs/src/gated-signing/data/HttpGatedDescriptorDataSource.js +1 -1
  39. package/lib/cjs/src/gated-signing/data/HttpGatedDescriptorDataSource.js.map +3 -3
  40. package/lib/cjs/src/gated-signing/data/HttpGatedDescriptorDataSource.test.js +1 -1
  41. package/lib/cjs/src/gated-signing/data/HttpGatedDescriptorDataSource.test.js.map +3 -3
  42. package/lib/cjs/src/index.js +1 -1
  43. package/lib/cjs/src/index.js.map +2 -2
  44. package/lib/cjs/src/network/di/networkModuleFactory.js +2 -0
  45. package/lib/cjs/src/network/di/networkModuleFactory.js.map +7 -0
  46. package/lib/cjs/src/network/di/networkTypes.js +2 -0
  47. package/lib/cjs/src/network/di/networkTypes.js.map +7 -0
  48. package/lib/cjs/src/nft/data/HttpNftDataSource.js +1 -1
  49. package/lib/cjs/src/nft/data/HttpNftDataSource.js.map +3 -3
  50. package/lib/cjs/src/nft/data/HttpNftDataSource.test.js +1 -1
  51. package/lib/cjs/src/nft/data/HttpNftDataSource.test.js.map +3 -3
  52. package/lib/cjs/src/pki/data/HttpPkiCertificateDataSource.js +1 -1
  53. package/lib/cjs/src/pki/data/HttpPkiCertificateDataSource.js.map +3 -3
  54. package/lib/cjs/src/pki/data/HttpPkiCertificateDataSource.test.js +1 -1
  55. package/lib/cjs/src/pki/data/HttpPkiCertificateDataSource.test.js.map +3 -3
  56. package/lib/cjs/src/proxy/data/HttpProxyDataSource.js +1 -1
  57. package/lib/cjs/src/proxy/data/HttpProxyDataSource.js.map +3 -3
  58. package/lib/cjs/src/proxy/data/HttpProxyDataSource.test.js +1 -1
  59. package/lib/cjs/src/proxy/data/HttpProxyDataSource.test.js.map +3 -3
  60. package/lib/cjs/src/proxy/data/HttpSafeProxyDataSource.js +1 -1
  61. package/lib/cjs/src/proxy/data/HttpSafeProxyDataSource.js.map +3 -3
  62. package/lib/cjs/src/proxy/data/HttpSafeProxyDataSource.test.js +1 -1
  63. package/lib/cjs/src/proxy/data/HttpSafeProxyDataSource.test.js.map +3 -3
  64. package/lib/cjs/src/proxy/di/proxyModuleFactory.test.js +1 -1
  65. package/lib/cjs/src/proxy/di/proxyModuleFactory.test.js.map +3 -3
  66. package/lib/cjs/src/reporter/data/BlindSigningReporterDatasource.js +1 -1
  67. package/lib/cjs/src/reporter/data/BlindSigningReporterDatasource.js.map +1 -1
  68. package/lib/cjs/src/reporter/data/HttpBlindSigningReporterDatasource.js +1 -1
  69. package/lib/cjs/src/reporter/data/HttpBlindSigningReporterDatasource.js.map +3 -3
  70. package/lib/cjs/src/reporter/data/HttpBlindSigningReporterDatasource.test.js +1 -1
  71. package/lib/cjs/src/reporter/data/HttpBlindSigningReporterDatasource.test.js.map +3 -3
  72. package/lib/cjs/src/safe/data/HttpSafeAccountDataSource.js +1 -1
  73. package/lib/cjs/src/safe/data/HttpSafeAccountDataSource.js.map +3 -3
  74. package/lib/cjs/src/safe/data/HttpSafeAccountDataSource.test.js +1 -1
  75. package/lib/cjs/src/safe/data/HttpSafeAccountDataSource.test.js.map +3 -3
  76. package/lib/cjs/src/shared/model/ClearSignContext.js +1 -1
  77. package/lib/cjs/src/shared/model/ClearSignContext.js.map +2 -2
  78. package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.js +1 -1
  79. package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.js.map +3 -3
  80. package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js +1 -1
  81. package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js.map +3 -3
  82. package/lib/cjs/src/solanaLifi/data/HttpSolanaLifiDataSource.js +1 -1
  83. package/lib/cjs/src/solanaLifi/data/HttpSolanaLifiDataSource.js.map +3 -3
  84. package/lib/cjs/src/solanaLifi/data/HttpSolanaLifiDataSource.test.js +1 -1
  85. package/lib/cjs/src/solanaLifi/data/HttpSolanaLifiDataSource.test.js.map +3 -3
  86. package/lib/cjs/src/solanaToken/data/HttpSolanaTokenDataSource.js +1 -1
  87. package/lib/cjs/src/solanaToken/data/HttpSolanaTokenDataSource.js.map +3 -3
  88. package/lib/cjs/src/solanaToken/data/HttpSolanaTokenDataSource.test.js +6 -6
  89. package/lib/cjs/src/solanaToken/data/HttpSolanaTokenDataSource.test.js.map +3 -3
  90. package/lib/cjs/src/token/data/HttpTokenDataSource.js +1 -1
  91. package/lib/cjs/src/token/data/HttpTokenDataSource.js.map +3 -3
  92. package/lib/cjs/src/token/data/HttpTokenDataSource.test.js +1 -1
  93. package/lib/cjs/src/token/data/HttpTokenDataSource.test.js.map +3 -3
  94. package/lib/cjs/src/transaction-check/data/HttpTransactionCheckDataSource.js +1 -1
  95. package/lib/cjs/src/transaction-check/data/HttpTransactionCheckDataSource.js.map +3 -3
  96. package/lib/cjs/src/transaction-check/data/HttpTransactionCheckDataSource.test.js +1 -1
  97. package/lib/cjs/src/transaction-check/data/HttpTransactionCheckDataSource.test.js.map +3 -3
  98. package/lib/cjs/src/transaction-check/data/HttpTypedDataCheckDataSource.js +1 -1
  99. package/lib/cjs/src/transaction-check/data/HttpTypedDataCheckDataSource.js.map +3 -3
  100. package/lib/cjs/src/transaction-check/data/HttpTypedDataCheckDataSource.test.js +1 -1
  101. package/lib/cjs/src/transaction-check/data/HttpTypedDataCheckDataSource.test.js.map +3 -3
  102. package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.js +1 -1
  103. package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.js.map +3 -3
  104. package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.test.js +1 -1
  105. package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.test.js.map +3 -3
  106. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.js +1 -1
  107. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.js.map +3 -3
  108. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.test.js +1 -1
  109. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.test.js.map +3 -3
  110. package/lib/esm/package.json +2 -3
  111. package/lib/esm/src/DefaultContextModule.js +1 -1
  112. package/lib/esm/src/DefaultContextModule.js.map +3 -3
  113. package/lib/esm/src/account-ownership/data/AccountOwnershipDataSource.js +1 -0
  114. package/lib/esm/src/account-ownership/data/AccountOwnershipDataSource.js.map +7 -0
  115. package/lib/esm/src/account-ownership/data/AccountOwnershipError.js +2 -0
  116. package/lib/esm/src/account-ownership/data/AccountOwnershipError.js.map +7 -0
  117. package/lib/esm/src/account-ownership/data/HttpAccountOwnershipDataSource.js +2 -0
  118. package/lib/esm/src/account-ownership/data/HttpAccountOwnershipDataSource.js.map +7 -0
  119. package/lib/esm/src/account-ownership/data/HttpAccountOwnershipDataSource.test.js +2 -0
  120. package/lib/esm/src/account-ownership/data/HttpAccountOwnershipDataSource.test.js.map +7 -0
  121. package/lib/esm/src/account-ownership/data/dto/AccountOwnershipDto.js +1 -0
  122. package/lib/esm/src/account-ownership/data/dto/AccountOwnershipDto.js.map +7 -0
  123. package/lib/esm/src/account-ownership/di/accountOwnershipModuleFactory.js +2 -0
  124. package/lib/esm/src/account-ownership/di/accountOwnershipModuleFactory.js.map +7 -0
  125. package/lib/esm/src/account-ownership/di/accountOwnershipTypes.js +2 -0
  126. package/lib/esm/src/account-ownership/di/accountOwnershipTypes.js.map +7 -0
  127. package/lib/esm/src/account-ownership/domain/AccountOwnershipContextLoader.js +2 -0
  128. package/lib/esm/src/account-ownership/domain/AccountOwnershipContextLoader.js.map +7 -0
  129. package/lib/esm/src/account-ownership/domain/AccountOwnershipContextLoader.test.js +2 -0
  130. package/lib/esm/src/account-ownership/domain/AccountOwnershipContextLoader.test.js.map +7 -0
  131. package/lib/esm/src/calldata/data/HttpCalldataDescriptorDataSource.js +1 -1
  132. package/lib/esm/src/calldata/data/HttpCalldataDescriptorDataSource.js.map +3 -3
  133. package/lib/esm/src/calldata/data/HttpCalldataDescriptorDataSource.test.js +1 -1
  134. package/lib/esm/src/calldata/data/HttpCalldataDescriptorDataSource.test.js.map +3 -3
  135. package/lib/esm/src/calldata/di/calldataModuleFactory.js +1 -1
  136. package/lib/esm/src/calldata/di/calldataModuleFactory.js.map +3 -3
  137. package/lib/esm/src/di.js +1 -1
  138. package/lib/esm/src/di.js.map +3 -3
  139. package/lib/esm/src/dynamic-network/data/HttpDynamicNetworkDataSource.js +1 -1
  140. package/lib/esm/src/dynamic-network/data/HttpDynamicNetworkDataSource.js.map +3 -3
  141. package/lib/esm/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.js +1 -1
  142. package/lib/esm/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.js.map +3 -3
  143. package/lib/esm/src/external-plugin/data/HttpExternalPluginDataSource.js +1 -1
  144. package/lib/esm/src/external-plugin/data/HttpExternalPluginDataSource.js.map +3 -3
  145. package/lib/esm/src/external-plugin/data/HttpExternalPluginDataSource.test.js +1 -1
  146. package/lib/esm/src/external-plugin/data/HttpExternalPluginDataSource.test.js.map +3 -3
  147. package/lib/esm/src/gated-signing/data/HttpGatedDescriptorDataSource.js +1 -1
  148. package/lib/esm/src/gated-signing/data/HttpGatedDescriptorDataSource.js.map +3 -3
  149. package/lib/esm/src/gated-signing/data/HttpGatedDescriptorDataSource.test.js +1 -1
  150. package/lib/esm/src/gated-signing/data/HttpGatedDescriptorDataSource.test.js.map +3 -3
  151. package/lib/esm/src/index.js +1 -1
  152. package/lib/esm/src/index.js.map +2 -2
  153. package/lib/esm/src/network/di/networkModuleFactory.js +2 -0
  154. package/lib/esm/src/network/di/networkModuleFactory.js.map +7 -0
  155. package/lib/esm/src/network/di/networkTypes.js +2 -0
  156. package/lib/esm/src/network/di/networkTypes.js.map +7 -0
  157. package/lib/esm/src/nft/data/HttpNftDataSource.js +1 -1
  158. package/lib/esm/src/nft/data/HttpNftDataSource.js.map +3 -3
  159. package/lib/esm/src/nft/data/HttpNftDataSource.test.js +1 -1
  160. package/lib/esm/src/nft/data/HttpNftDataSource.test.js.map +3 -3
  161. package/lib/esm/src/pki/data/HttpPkiCertificateDataSource.js +1 -1
  162. package/lib/esm/src/pki/data/HttpPkiCertificateDataSource.js.map +3 -3
  163. package/lib/esm/src/pki/data/HttpPkiCertificateDataSource.test.js +1 -1
  164. package/lib/esm/src/pki/data/HttpPkiCertificateDataSource.test.js.map +3 -3
  165. package/lib/esm/src/proxy/data/HttpProxyDataSource.js +1 -1
  166. package/lib/esm/src/proxy/data/HttpProxyDataSource.js.map +3 -3
  167. package/lib/esm/src/proxy/data/HttpProxyDataSource.test.js +1 -1
  168. package/lib/esm/src/proxy/data/HttpProxyDataSource.test.js.map +3 -3
  169. package/lib/esm/src/proxy/data/HttpSafeProxyDataSource.js +1 -1
  170. package/lib/esm/src/proxy/data/HttpSafeProxyDataSource.js.map +3 -3
  171. package/lib/esm/src/proxy/data/HttpSafeProxyDataSource.test.js +1 -1
  172. package/lib/esm/src/proxy/data/HttpSafeProxyDataSource.test.js.map +3 -3
  173. package/lib/esm/src/proxy/di/proxyModuleFactory.test.js +1 -1
  174. package/lib/esm/src/proxy/di/proxyModuleFactory.test.js.map +3 -3
  175. package/lib/esm/src/reporter/data/HttpBlindSigningReporterDatasource.js +1 -1
  176. package/lib/esm/src/reporter/data/HttpBlindSigningReporterDatasource.js.map +3 -3
  177. package/lib/esm/src/reporter/data/HttpBlindSigningReporterDatasource.test.js +1 -1
  178. package/lib/esm/src/reporter/data/HttpBlindSigningReporterDatasource.test.js.map +3 -3
  179. package/lib/esm/src/safe/data/HttpSafeAccountDataSource.js +1 -1
  180. package/lib/esm/src/safe/data/HttpSafeAccountDataSource.js.map +3 -3
  181. package/lib/esm/src/safe/data/HttpSafeAccountDataSource.test.js +1 -1
  182. package/lib/esm/src/safe/data/HttpSafeAccountDataSource.test.js.map +3 -3
  183. package/lib/esm/src/shared/model/ClearSignContext.js +1 -1
  184. package/lib/esm/src/shared/model/ClearSignContext.js.map +2 -2
  185. package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.js +1 -1
  186. package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.js.map +3 -3
  187. package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js +1 -1
  188. package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js.map +3 -3
  189. package/lib/esm/src/solanaLifi/data/HttpSolanaLifiDataSource.js +1 -1
  190. package/lib/esm/src/solanaLifi/data/HttpSolanaLifiDataSource.js.map +3 -3
  191. package/lib/esm/src/solanaLifi/data/HttpSolanaLifiDataSource.test.js +1 -1
  192. package/lib/esm/src/solanaLifi/data/HttpSolanaLifiDataSource.test.js.map +3 -3
  193. package/lib/esm/src/solanaToken/data/HttpSolanaTokenDataSource.js +1 -1
  194. package/lib/esm/src/solanaToken/data/HttpSolanaTokenDataSource.js.map +3 -3
  195. package/lib/esm/src/solanaToken/data/HttpSolanaTokenDataSource.test.js +6 -6
  196. package/lib/esm/src/solanaToken/data/HttpSolanaTokenDataSource.test.js.map +3 -3
  197. package/lib/esm/src/token/data/HttpTokenDataSource.js +1 -1
  198. package/lib/esm/src/token/data/HttpTokenDataSource.js.map +3 -3
  199. package/lib/esm/src/token/data/HttpTokenDataSource.test.js +1 -1
  200. package/lib/esm/src/token/data/HttpTokenDataSource.test.js.map +3 -3
  201. package/lib/esm/src/transaction-check/data/HttpTransactionCheckDataSource.js +1 -1
  202. package/lib/esm/src/transaction-check/data/HttpTransactionCheckDataSource.js.map +3 -3
  203. package/lib/esm/src/transaction-check/data/HttpTransactionCheckDataSource.test.js +1 -1
  204. package/lib/esm/src/transaction-check/data/HttpTransactionCheckDataSource.test.js.map +3 -3
  205. package/lib/esm/src/transaction-check/data/HttpTypedDataCheckDataSource.js +1 -1
  206. package/lib/esm/src/transaction-check/data/HttpTypedDataCheckDataSource.js.map +3 -3
  207. package/lib/esm/src/transaction-check/data/HttpTypedDataCheckDataSource.test.js +1 -1
  208. package/lib/esm/src/transaction-check/data/HttpTypedDataCheckDataSource.test.js.map +3 -3
  209. package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.js +1 -1
  210. package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.js.map +3 -3
  211. package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.test.js +1 -1
  212. package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.test.js.map +3 -3
  213. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.js +1 -1
  214. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.js.map +3 -3
  215. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.test.js +1 -1
  216. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.test.js.map +3 -3
  217. package/lib/types/src/DefaultContextModule.d.ts.map +1 -1
  218. package/lib/types/src/account-ownership/data/AccountOwnershipDataSource.d.ts +17 -0
  219. package/lib/types/src/account-ownership/data/AccountOwnershipDataSource.d.ts.map +1 -0
  220. package/lib/types/src/account-ownership/data/AccountOwnershipError.d.ts +17 -0
  221. package/lib/types/src/account-ownership/data/AccountOwnershipError.d.ts.map +1 -0
  222. package/lib/types/src/account-ownership/data/HttpAccountOwnershipDataSource.d.ts +30 -0
  223. package/lib/types/src/account-ownership/data/HttpAccountOwnershipDataSource.d.ts.map +1 -0
  224. package/lib/types/src/account-ownership/data/HttpAccountOwnershipDataSource.test.d.ts +2 -0
  225. package/lib/types/src/account-ownership/data/HttpAccountOwnershipDataSource.test.d.ts.map +1 -0
  226. package/lib/types/src/account-ownership/data/dto/AccountOwnershipDto.d.ts +6 -0
  227. package/lib/types/src/account-ownership/data/dto/AccountOwnershipDto.d.ts.map +1 -0
  228. package/lib/types/src/account-ownership/di/accountOwnershipModuleFactory.d.ts +3 -0
  229. package/lib/types/src/account-ownership/di/accountOwnershipModuleFactory.d.ts.map +1 -0
  230. package/lib/types/src/account-ownership/di/accountOwnershipTypes.d.ts +5 -0
  231. package/lib/types/src/account-ownership/di/accountOwnershipTypes.d.ts.map +1 -0
  232. package/lib/types/src/account-ownership/domain/AccountOwnershipContextLoader.d.ts +20 -0
  233. package/lib/types/src/account-ownership/domain/AccountOwnershipContextLoader.d.ts.map +1 -0
  234. package/lib/types/src/account-ownership/domain/AccountOwnershipContextLoader.test.d.ts +2 -0
  235. package/lib/types/src/account-ownership/domain/AccountOwnershipContextLoader.test.d.ts.map +1 -0
  236. package/lib/types/src/calldata/data/HttpCalldataDescriptorDataSource.d.ts +3 -1
  237. package/lib/types/src/calldata/data/HttpCalldataDescriptorDataSource.d.ts.map +1 -1
  238. package/lib/types/src/calldata/di/calldataModuleFactory.d.ts.map +1 -1
  239. package/lib/types/src/di.d.ts.map +1 -1
  240. package/lib/types/src/dynamic-network/data/HttpDynamicNetworkDataSource.d.ts +3 -1
  241. package/lib/types/src/dynamic-network/data/HttpDynamicNetworkDataSource.d.ts.map +1 -1
  242. package/lib/types/src/external-plugin/data/HttpExternalPluginDataSource.d.ts +3 -1
  243. package/lib/types/src/external-plugin/data/HttpExternalPluginDataSource.d.ts.map +1 -1
  244. package/lib/types/src/gated-signing/data/HttpGatedDescriptorDataSource.d.ts +3 -1
  245. package/lib/types/src/gated-signing/data/HttpGatedDescriptorDataSource.d.ts.map +1 -1
  246. package/lib/types/src/index.d.ts +4 -0
  247. package/lib/types/src/index.d.ts.map +1 -1
  248. package/lib/types/src/network/di/networkModuleFactory.d.ts +4 -0
  249. package/lib/types/src/network/di/networkModuleFactory.d.ts.map +1 -0
  250. package/lib/types/src/network/di/networkTypes.d.ts +4 -0
  251. package/lib/types/src/network/di/networkTypes.d.ts.map +1 -0
  252. package/lib/types/src/nft/data/HttpNftDataSource.d.ts +3 -1
  253. package/lib/types/src/nft/data/HttpNftDataSource.d.ts.map +1 -1
  254. package/lib/types/src/pki/data/HttpPkiCertificateDataSource.d.ts +4 -1
  255. package/lib/types/src/pki/data/HttpPkiCertificateDataSource.d.ts.map +1 -1
  256. package/lib/types/src/proxy/data/HttpProxyDataSource.d.ts +3 -1
  257. package/lib/types/src/proxy/data/HttpProxyDataSource.d.ts.map +1 -1
  258. package/lib/types/src/proxy/data/HttpSafeProxyDataSource.d.ts +3 -1
  259. package/lib/types/src/proxy/data/HttpSafeProxyDataSource.d.ts.map +1 -1
  260. package/lib/types/src/reporter/data/BlindSigningReporterDatasource.d.ts +7 -1
  261. package/lib/types/src/reporter/data/BlindSigningReporterDatasource.d.ts.map +1 -1
  262. package/lib/types/src/reporter/data/HttpBlindSigningReporterDatasource.d.ts +3 -1
  263. package/lib/types/src/reporter/data/HttpBlindSigningReporterDatasource.d.ts.map +1 -1
  264. package/lib/types/src/safe/data/HttpSafeAccountDataSource.d.ts +3 -1
  265. package/lib/types/src/safe/data/HttpSafeAccountDataSource.d.ts.map +1 -1
  266. package/lib/types/src/shared/model/ClearSignContext.d.ts +2 -1
  267. package/lib/types/src/shared/model/ClearSignContext.d.ts.map +1 -1
  268. package/lib/types/src/solana/data/HttpSolanaOwnerInfoDataSource.d.ts +3 -1
  269. package/lib/types/src/solana/data/HttpSolanaOwnerInfoDataSource.d.ts.map +1 -1
  270. package/lib/types/src/solanaLifi/data/HttpSolanaLifiDataSource.d.ts +3 -2
  271. package/lib/types/src/solanaLifi/data/HttpSolanaLifiDataSource.d.ts.map +1 -1
  272. package/lib/types/src/solanaToken/data/HttpSolanaTokenDataSource.d.ts +3 -1
  273. package/lib/types/src/solanaToken/data/HttpSolanaTokenDataSource.d.ts.map +1 -1
  274. package/lib/types/src/token/data/HttpTokenDataSource.d.ts +3 -1
  275. package/lib/types/src/token/data/HttpTokenDataSource.d.ts.map +1 -1
  276. package/lib/types/src/transaction-check/data/HttpTransactionCheckDataSource.d.ts +3 -1
  277. package/lib/types/src/transaction-check/data/HttpTransactionCheckDataSource.d.ts.map +1 -1
  278. package/lib/types/src/transaction-check/data/HttpTypedDataCheckDataSource.d.ts +3 -1
  279. package/lib/types/src/transaction-check/data/HttpTypedDataCheckDataSource.d.ts.map +1 -1
  280. package/lib/types/src/trusted-name/data/HttpTrustedNameDataSource.d.ts +3 -1
  281. package/lib/types/src/trusted-name/data/HttpTrustedNameDataSource.d.ts.map +1 -1
  282. package/lib/types/src/typed-data/data/HttpTypedDataDataSource.d.ts +3 -1
  283. package/lib/types/src/typed-data/data/HttpTypedDataDataSource.d.ts.map +1 -1
  284. package/lib/types/src/typed-data/data/HttpTypedDataDataSource.test.d.ts.map +1 -1
  285. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  286. package/package.json +5 -6
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/pki/data/HttpPkiCertificateDataSource.test.ts"],
4
- "sourcesContent": ["import axios from \"axios\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { type ContextModuleServiceConfig } from \"@/config/model/ContextModuleConfig\";\nimport { HttpPkiCertificateDataSource } from \"@/pki/data/HttpPkiCertificateDataSource\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport { type PkiCertificateInfo } from \"@/pki/model/PkiCertificateInfo\";\n\nvi.mock(\"axios\");\n\ndescribe(\"HttpPkiCertificateDataSource\", () => {\n const config = {\n cal: {\n url: \"https://cal.com\",\n mode: \"test\",\n branch: \"main\",\n },\n } as ContextModuleServiceConfig;\n\n describe(\"fetchCertificate\", () => {\n it(\"should return certificate\", async () => {\n // GIVEN\n const pkiCertificateInfo: PkiCertificateInfo = {\n targetDevice: \"targetDevice\",\n keyUsage: KeyUsage.Calldata,\n keyId: \"keyId\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: [\n {\n descriptor: {\n data: \"01020304\",\n signatures: {\n test: \"05060708\",\n },\n },\n },\n ],\n });\n\n // WHEN\n const result = await new HttpPkiCertificateDataSource(\n config,\n ).fetchCertificate(pkiCertificateInfo);\n\n // THEN\n expect(result).toEqual(\n Right({\n keyUsageNumber: 11,\n payload: new Uint8Array([\n 0x01, 0x02, 0x03, 0x04, 0x15, 0x04, 0x05, 0x06, 0x07, 0x08,\n ]),\n }),\n );\n });\n\n it(\"should return an error when certificate is not found\", async () => {\n // GIVEN\n const pkiCertificateInfo: PkiCertificateInfo = {\n targetDevice: \"targetDevice\",\n keyUsage: KeyUsage.Calldata,\n keyId: \"keyId\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: [],\n });\n\n // WHEN\n const result = await new HttpPkiCertificateDataSource(\n config,\n ).fetchCertificate(pkiCertificateInfo);\n\n // THEN\n expect(result).toEqual(\n Left(\n Error(\n \"[ContextModule] HttpPkiCertificateDataSource: failed to fetch PKI for given descriptor\",\n ),\n ),\n );\n });\n\n it(\"should return an error when axios request fails\", async () => {\n // GIVEN\n const pkiCertificateInfo: PkiCertificateInfo = {\n targetDevice: \"targetDevice\",\n keyUsage: KeyUsage.Calldata,\n keyId: \"keyId\",\n };\n vi.spyOn(axios, \"request\").mockRejectedValue(new Error(\"error\"));\n\n // WHEN\n const result = await new HttpPkiCertificateDataSource(\n config,\n ).fetchCertificate(pkiCertificateInfo);\n\n // THEN\n expect(result).toEqual(\n Left(\n Error(\n \"[ContextModule] HttpPkiCertificateDataSource: failed to fetch PKI for given descriptor\",\n ),\n ),\n );\n });\n\n it(\"should return an error when payload cannot be generated\", async () => {\n // GIVEN\n const pkiCertificateInfo: PkiCertificateInfo = {\n targetDevice: \"targetDevice\",\n keyUsage: KeyUsage.Calldata,\n keyId: \"keyId\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: [\n {\n descriptor: {\n data: \"corrupteddata\",\n signatures: {\n test: \"05060708\",\n },\n },\n },\n ],\n });\n\n // WHEN\n const result = await new HttpPkiCertificateDataSource(\n config,\n ).fetchCertificate(pkiCertificateInfo);\n\n // THEN\n expect(result).toEqual(\n Left(\n Error(\n \"[ContextModule] HttpPkiCertificateDataSource: Cannot generate payload from fetched PKI Certificate\",\n ),\n ),\n );\n });\n });\n});\n"],
5
- "mappings": "wdAAA,IAAAA,EAAkB,oBAClBC,EAA4B,qBAG5BC,EAA6C,mDAC7CC,EAAyB,gCAGzB,GAAG,KAAK,OAAO,EAEf,SAAS,+BAAgC,IAAM,CAC7C,MAAMC,EAAS,CACb,IAAK,CACH,IAAK,kBACL,KAAM,OACN,OAAQ,MACV,CACF,EAEA,SAAS,mBAAoB,IAAM,CACjC,GAAG,4BAA6B,SAAY,CAE1C,MAAMC,EAAyC,CAC7C,aAAc,eACd,SAAU,WAAS,SACnB,MAAO,OACT,EACA,GAAG,MAAM,EAAAC,QAAO,SAAS,EAAE,kBAAkB,CAC3C,OAAQ,IACR,KAAM,CACJ,CACE,WAAY,CACV,KAAM,WACN,WAAY,CACV,KAAM,UACR,CACF,CACF,CACF,CACF,CAAC,EAGD,MAAMC,EAAS,MAAM,IAAI,+BACvBH,CACF,EAAE,iBAAiBC,CAAkB,EAGrC,OAAOE,CAAM,EAAE,WACb,SAAM,CACJ,eAAgB,GAChB,QAAS,IAAI,WAAW,CACtB,EAAM,EAAM,EAAM,EAAM,GAAM,EAAM,EAAM,EAAM,EAAM,CACxD,CAAC,CACH,CAAC,CACH,CACF,CAAC,EAED,GAAG,uDAAwD,SAAY,CAErE,MAAMF,EAAyC,CAC7C,aAAc,eACd,SAAU,WAAS,SACnB,MAAO,OACT,EACA,GAAG,MAAM,EAAAC,QAAO,SAAS,EAAE,kBAAkB,CAC3C,OAAQ,IACR,KAAM,CAAC,CACT,CAAC,EAGD,MAAMC,EAAS,MAAM,IAAI,+BACvBH,CACF,EAAE,iBAAiBC,CAAkB,EAGrC,OAAOE,CAAM,EAAE,WACb,QACE,MACE,wFACF,CACF,CACF,CACF,CAAC,EAED,GAAG,kDAAmD,SAAY,CAEhE,MAAMF,EAAyC,CAC7C,aAAc,eACd,SAAU,WAAS,SACnB,MAAO,OACT,EACA,GAAG,MAAM,EAAAC,QAAO,SAAS,EAAE,kBAAkB,IAAI,MAAM,OAAO,CAAC,EAG/D,MAAMC,EAAS,MAAM,IAAI,+BACvBH,CACF,EAAE,iBAAiBC,CAAkB,EAGrC,OAAOE,CAAM,EAAE,WACb,QACE,MACE,wFACF,CACF,CACF,CACF,CAAC,EAED,GAAG,0DAA2D,SAAY,CAExE,MAAMF,EAAyC,CAC7C,aAAc,eACd,SAAU,WAAS,SACnB,MAAO,OACT,EACA,GAAG,MAAM,EAAAC,QAAO,SAAS,EAAE,kBAAkB,CAC3C,OAAQ,IACR,KAAM,CACJ,CACE,WAAY,CACV,KAAM,gBACN,WAAY,CACV,KAAM,UACR,CACF,CACF,CACF,CACF,CAAC,EAGD,MAAMC,EAAS,MAAM,IAAI,+BACvBH,CACF,EAAE,iBAAiBC,CAAkB,EAGrC,OAAOE,CAAM,EAAE,WACb,QACE,MACE,oGACF,CACF,CACF,CACF,CAAC,CACH,CAAC,CACH,CAAC",
6
- "names": ["import_axios", "import_purify_ts", "import_HttpPkiCertificateDataSource", "import_KeyUsage", "config", "pkiCertificateInfo", "axios", "result"]
4
+ "sourcesContent": ["import { type DmkNetworkClient } from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { type ContextModuleServiceConfig } from \"@/config/model/ContextModuleConfig\";\nimport { HttpPkiCertificateDataSource } from \"@/pki/data/HttpPkiCertificateDataSource\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport { type PkiCertificateInfo } from \"@/pki/model/PkiCertificateInfo\";\n\ndescribe(\"HttpPkiCertificateDataSource\", () => {\n const config = {\n cal: {\n url: \"https://cal.com\",\n mode: \"test\",\n branch: \"main\",\n },\n } as ContextModuleServiceConfig;\n\n let httpMock: { get: ReturnType<typeof vi.fn> };\n let datasource: HttpPkiCertificateDataSource;\n\n beforeEach(() => {\n vi.clearAllMocks();\n httpMock = { get: vi.fn() };\n datasource = new HttpPkiCertificateDataSource(\n config,\n httpMock as unknown as DmkNetworkClient,\n );\n });\n\n describe(\"fetchCertificate\", () => {\n it(\"should return certificate\", async () => {\n // GIVEN\n const pkiCertificateInfo: PkiCertificateInfo = {\n targetDevice: \"targetDevice\",\n keyUsage: KeyUsage.Calldata,\n keyId: \"keyId\",\n };\n httpMock.get.mockResolvedValue([\n {\n descriptor: {\n data: \"01020304\",\n signatures: {\n test: \"05060708\",\n },\n },\n },\n ]);\n\n // WHEN\n const result = await datasource.fetchCertificate(pkiCertificateInfo);\n\n // THEN\n expect(result).toEqual(\n Right({\n keyUsageNumber: 11,\n payload: new Uint8Array([\n 0x01, 0x02, 0x03, 0x04, 0x15, 0x04, 0x05, 0x06, 0x07, 0x08,\n ]),\n }),\n );\n });\n\n it(\"should call the network client with the expected URL and params\", async () => {\n // GIVEN\n const pkiCertificateInfo: PkiCertificateInfo = {\n targetDevice: \"targetDevice\",\n keyUsage: KeyUsage.Calldata,\n keyId: \"keyId\",\n };\n httpMock.get.mockResolvedValue([]);\n\n // WHEN\n await datasource.fetchCertificate(pkiCertificateInfo);\n\n // THEN\n expect(httpMock.get).toHaveBeenCalledWith(\n \"https://cal.com/certificates\",\n {\n params: {\n output: \"descriptor\",\n target_device: \"targetDevice\",\n latest: true,\n public_key_id: \"keyId\",\n public_key_usage: KeyUsage.Calldata,\n },\n },\n );\n });\n\n it(\"should return an error when certificate is not found\", async () => {\n // GIVEN\n const pkiCertificateInfo: PkiCertificateInfo = {\n targetDevice: \"targetDevice\",\n keyUsage: KeyUsage.Calldata,\n keyId: \"keyId\",\n };\n httpMock.get.mockResolvedValue([]);\n\n // WHEN\n const result = await datasource.fetchCertificate(pkiCertificateInfo);\n\n // THEN\n expect(result).toEqual(\n Left(\n Error(\n \"[ContextModule] HttpPkiCertificateDataSource: failed to fetch PKI for given descriptor\",\n ),\n ),\n );\n });\n\n it(\"should return an error when network client throws\", async () => {\n // GIVEN\n const pkiCertificateInfo: PkiCertificateInfo = {\n targetDevice: \"targetDevice\",\n keyUsage: KeyUsage.Calldata,\n keyId: \"keyId\",\n };\n httpMock.get.mockRejectedValue(new Error(\"error\"));\n\n // WHEN\n const result = await datasource.fetchCertificate(pkiCertificateInfo);\n\n // THEN\n expect(result).toEqual(\n Left(\n Error(\n \"[ContextModule] HttpPkiCertificateDataSource: failed to fetch PKI for given descriptor\",\n ),\n ),\n );\n });\n\n it(\"should return an error when payload cannot be generated\", async () => {\n // GIVEN\n const pkiCertificateInfo: PkiCertificateInfo = {\n targetDevice: \"targetDevice\",\n keyUsage: KeyUsage.Calldata,\n keyId: \"keyId\",\n };\n httpMock.get.mockResolvedValue([\n {\n descriptor: {\n data: \"corrupteddata\",\n signatures: {\n test: \"05060708\",\n },\n },\n },\n ]);\n\n // WHEN\n const result = await datasource.fetchCertificate(pkiCertificateInfo);\n\n // THEN\n expect(result).toEqual(\n Left(\n Error(\n \"[ContextModule] HttpPkiCertificateDataSource: Cannot generate payload from fetched PKI Certificate\",\n ),\n ),\n );\n });\n });\n});\n"],
5
+ "mappings": "aACA,IAAAA,EAA4B,qBAG5BC,EAA6C,mDAC7CC,EAAyB,gCAGzB,SAAS,+BAAgC,IAAM,CAC7C,MAAMC,EAAS,CACb,IAAK,CACH,IAAK,kBACL,KAAM,OACN,OAAQ,MACV,CACF,EAEA,IAAIC,EACAC,EAEJ,WAAW,IAAM,CACf,GAAG,cAAc,EACjBD,EAAW,CAAE,IAAK,GAAG,GAAG,CAAE,EAC1BC,EAAa,IAAI,+BACfF,EACAC,CACF,CACF,CAAC,EAED,SAAS,mBAAoB,IAAM,CACjC,GAAG,4BAA6B,SAAY,CAE1C,MAAME,EAAyC,CAC7C,aAAc,eACd,SAAU,WAAS,SACnB,MAAO,OACT,EACAF,EAAS,IAAI,kBAAkB,CAC7B,CACE,WAAY,CACV,KAAM,WACN,WAAY,CACV,KAAM,UACR,CACF,CACF,CACF,CAAC,EAGD,MAAMG,EAAS,MAAMF,EAAW,iBAAiBC,CAAkB,EAGnE,OAAOC,CAAM,EAAE,WACb,SAAM,CACJ,eAAgB,GAChB,QAAS,IAAI,WAAW,CACtB,EAAM,EAAM,EAAM,EAAM,GAAM,EAAM,EAAM,EAAM,EAAM,CACxD,CAAC,CACH,CAAC,CACH,CACF,CAAC,EAED,GAAG,kEAAmE,SAAY,CAEhF,MAAMD,EAAyC,CAC7C,aAAc,eACd,SAAU,WAAS,SACnB,MAAO,OACT,EACAF,EAAS,IAAI,kBAAkB,CAAC,CAAC,EAGjC,MAAMC,EAAW,iBAAiBC,CAAkB,EAGpD,OAAOF,EAAS,GAAG,EAAE,qBACnB,+BACA,CACE,OAAQ,CACN,OAAQ,aACR,cAAe,eACf,OAAQ,GACR,cAAe,QACf,iBAAkB,WAAS,QAC7B,CACF,CACF,CACF,CAAC,EAED,GAAG,uDAAwD,SAAY,CAErE,MAAME,EAAyC,CAC7C,aAAc,eACd,SAAU,WAAS,SACnB,MAAO,OACT,EACAF,EAAS,IAAI,kBAAkB,CAAC,CAAC,EAGjC,MAAMG,EAAS,MAAMF,EAAW,iBAAiBC,CAAkB,EAGnE,OAAOC,CAAM,EAAE,WACb,QACE,MACE,wFACF,CACF,CACF,CACF,CAAC,EAED,GAAG,oDAAqD,SAAY,CAElE,MAAMD,EAAyC,CAC7C,aAAc,eACd,SAAU,WAAS,SACnB,MAAO,OACT,EACAF,EAAS,IAAI,kBAAkB,IAAI,MAAM,OAAO,CAAC,EAGjD,MAAMG,EAAS,MAAMF,EAAW,iBAAiBC,CAAkB,EAGnE,OAAOC,CAAM,EAAE,WACb,QACE,MACE,wFACF,CACF,CACF,CACF,CAAC,EAED,GAAG,0DAA2D,SAAY,CAExE,MAAMD,EAAyC,CAC7C,aAAc,eACd,SAAU,WAAS,SACnB,MAAO,OACT,EACAF,EAAS,IAAI,kBAAkB,CAC7B,CACE,WAAY,CACV,KAAM,gBACN,WAAY,CACV,KAAM,UACR,CACF,CACF,CACF,CAAC,EAGD,MAAMG,EAAS,MAAMF,EAAW,iBAAiBC,CAAkB,EAGnE,OAAOC,CAAM,EAAE,WACb,QACE,MACE,oGACF,CACF,CACF,CACF,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["import_purify_ts", "import_HttpPkiCertificateDataSource", "import_KeyUsage", "config", "httpMock", "datasource", "pkiCertificateInfo", "result"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var h=Object.create;var m=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var I=Object.getPrototypeOf,$=Object.prototype.hasOwnProperty;var S=(o,e)=>{for(var r in e)m(o,r,{get:e[r],enumerable:!0})},f=(o,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of A(e))!$.call(o,t)&&t!==r&&m(o,t,{get:()=>e[t],enumerable:!(n=y(e,t))||n.enumerable});return o};var c=(o,e,r)=>(r=o!=null?h(I(o)):{},f(e||!o||!o.__esModule?m(r,"default",{value:o,enumerable:!0}):r,o)),M=o=>f(m({},"__esModule",{value:!0}),o),g=(o,e,r,n)=>{for(var t=n>1?void 0:n?y(e,r):e,i=o.length-1,s;i>=0;i--)(s=o[i])&&(t=(n?s(e,r,t):s(t))||t);return n&&t&&m(e,r,t),t},x=(o,e)=>(r,n)=>e(r,n,o);var N={};S(N,{HttpProxyDataSource:()=>d});module.exports=M(N);var D=c(require("axios")),l=require("inversify"),a=require("purify-ts"),u=require("../../config/di/configTypes"),E=require("../../pki/model/KeyId"),P=require("../../pki/model/KeyUsage"),p=require("../../shared/constant/HttpHeaders"),C=c(require("../../../package.json"));let d=class{constructor(e){this.config=e}async getProxyImplementationAddress({proxyAddress:e,chainId:r,challenge:n,calldata:t}){let i;try{i=(await D.default.request({method:"POST",url:`${this.config.metadataServiceDomain.url}/v2/ethereum/${r}/contract/proxy/delegate`,headers:{[p.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${C.default.version}`,[p.LEDGER_ORIGIN_TOKEN_HEADER]:this.config.originToken},data:{proxy:e,data:t,challenge:n}})).data}catch{return(0,a.Left)(new Error("[ContextModule] HttpProxyDataSource: Failed to fetch delegate proxy"))}return i?this.isProxyDelegateCallDto(i)?i.addresses[0]?(0,a.Right)({implementationAddress:i.addresses[0],signedDescriptor:i.signedDescriptor,keyId:E.KeyId.DomainMetadataKey,keyUsage:P.KeyUsage.TrustedName}):(0,a.Left)(new Error(`[ContextModule] HttpProxyDataSource: No implementation address found for proxy ${e} on chain ${r}`)):(0,a.Left)(new Error(`[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${e} on chain ${r}`)):(0,a.Left)(new Error(`[ContextModule] HttpProxyDataSource: No data received for proxy ${e} on chain ${r}`))}isProxyDelegateCallDto(e){return typeof e=="object"&&e!==null&&"addresses"in e&&"signedDescriptor"in e&&Array.isArray(e.addresses)&&e.addresses.every(r=>typeof r=="string")&&typeof e.signedDescriptor=="string"}};d=g([(0,l.injectable)(),x(0,(0,l.inject)(u.configTypes.Config))],d);0&&(module.exports={HttpProxyDataSource});
1
+ "use strict";var d=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var P=(o,e)=>{for(var r in e)d(o,r,{get:e[r],enumerable:!0})},h=(o,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of u(e))!C.call(o,t)&&t!==r&&d(o,t,{get:()=>e[t],enumerable:!(i=y(e,t))||i.enumerable});return o};var w=o=>h(d({},"__esModule",{value:!0}),o),f=(o,e,r,i)=>{for(var t=i>1?void 0:i?y(e,r):e,n=o.length-1,l;n>=0;n--)(l=o[n])&&(t=(i?l(e,r,t):l(t))||t);return i&&t&&d(e,r,t),t},p=(o,e)=>(r,i)=>e(r,i,o);var k={};P(k,{HttpProxyDataSource:()=>s});module.exports=w(k);var m=require("inversify"),a=require("purify-ts"),c=require("../../config/di/configTypes"),g=require("../../network/di/networkTypes"),x=require("../../pki/model/KeyId"),D=require("../../pki/model/KeyUsage");let s=class{constructor(e,r){this.config=e;this.http=r}async getProxyImplementationAddress({proxyAddress:e,chainId:r,challenge:i,calldata:t}){let n;try{n=await this.http.post(`${this.config.metadataServiceDomain.url}/v2/ethereum/${r}/contract/proxy/delegate`,{proxy:e,data:t,challenge:i})}catch{return(0,a.Left)(new Error("[ContextModule] HttpProxyDataSource: Failed to fetch delegate proxy"))}return n?this.isProxyDelegateCallDto(n)?n.addresses[0]?(0,a.Right)({implementationAddress:n.addresses[0],signedDescriptor:n.signedDescriptor,keyId:x.KeyId.DomainMetadataKey,keyUsage:D.KeyUsage.TrustedName}):(0,a.Left)(new Error(`[ContextModule] HttpProxyDataSource: No implementation address found for proxy ${e} on chain ${r}`)):(0,a.Left)(new Error(`[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${e} on chain ${r}`)):(0,a.Left)(new Error(`[ContextModule] HttpProxyDataSource: No data received for proxy ${e} on chain ${r}`))}isProxyDelegateCallDto(e){return typeof e=="object"&&e!==null&&"addresses"in e&&"signedDescriptor"in e&&Array.isArray(e.addresses)&&e.addresses.every(r=>typeof r=="string")&&typeof e.signedDescriptor=="string"}};s=f([(0,m.injectable)(),p(0,(0,m.inject)(c.configTypes.Config)),p(1,(0,m.inject)(g.networkTypes.NetworkClient))],s);0&&(module.exports={HttpProxyDataSource});
2
2
  //# sourceMappingURL=HttpProxyDataSource.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/proxy/data/HttpProxyDataSource.ts"],
4
- "sourcesContent": ["import axios from \"axios\";\nimport { inject, injectable } from \"inversify\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport { type ContextModuleServiceConfig } from \"@/config/model/ContextModuleConfig\";\nimport { KeyId } from \"@/pki/model/KeyId\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport {\n LEDGER_CLIENT_VERSION_HEADER,\n LEDGER_ORIGIN_TOKEN_HEADER,\n} from \"@/shared/constant/HttpHeaders\";\nimport PACKAGE from \"@root/package.json\";\n\nimport { ProxyDelegateCallDto } from \"./dto/ProxyDelegateCallDto\";\nimport {\n GetProxyImplementationAddressParam,\n ProxyDataSource,\n ProxyImplementationAddress,\n} from \"./ProxyDataSource\";\n\n@injectable()\nexport class HttpProxyDataSource implements ProxyDataSource {\n constructor(\n @inject(configTypes.Config)\n private readonly config: ContextModuleServiceConfig,\n ) {}\n\n async getProxyImplementationAddress({\n proxyAddress,\n chainId,\n challenge,\n calldata,\n }: GetProxyImplementationAddressParam): Promise<\n Either<Error, ProxyImplementationAddress>\n > {\n let dto: ProxyDelegateCallDto | undefined;\n try {\n const response = await axios.request<ProxyDelegateCallDto>({\n method: \"POST\",\n url: `${this.config.metadataServiceDomain.url}/v2/ethereum/${chainId}/contract/proxy/delegate`,\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n [LEDGER_ORIGIN_TOKEN_HEADER]: this.config.originToken,\n },\n data: {\n proxy: proxyAddress,\n data: calldata,\n challenge,\n },\n });\n dto = response.data;\n } catch (_error) {\n return Left(\n new Error(\n `[ContextModule] HttpProxyDataSource: Failed to fetch delegate proxy`,\n ),\n );\n }\n\n if (!dto) {\n return Left(\n new Error(\n `[ContextModule] HttpProxyDataSource: No data received for proxy ${proxyAddress} on chain ${chainId}`,\n ),\n );\n }\n\n if (!this.isProxyDelegateCallDto(dto)) {\n return Left(\n new Error(\n `[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${proxyAddress} on chain ${chainId}`,\n ),\n );\n }\n\n if (!dto.addresses[0]) {\n return Left(\n new Error(\n `[ContextModule] HttpProxyDataSource: No implementation address found for proxy ${proxyAddress} on chain ${chainId}`,\n ),\n );\n }\n\n return Right({\n implementationAddress: dto.addresses[0],\n signedDescriptor: dto.signedDescriptor,\n keyId: KeyId.DomainMetadataKey,\n keyUsage: KeyUsage.TrustedName,\n });\n }\n\n /**\n * Type guard to validate ProxyDelegateCallDto\n */\n private isProxyDelegateCallDto(\n value: unknown,\n ): value is ProxyDelegateCallDto {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"addresses\" in value &&\n \"signedDescriptor\" in value &&\n Array.isArray(value.addresses) &&\n value.addresses.every((address) => typeof address === \"string\") &&\n typeof value.signedDescriptor === \"string\"\n );\n }\n}\n"],
5
- "mappings": "qtBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAkB,oBAClBC,EAAmC,qBACnCC,EAAoC,qBAEpCC,EAA4B,mCAE5BC,EAAsB,6BACtBC,EAAyB,gCACzBC,EAGO,yCACPC,EAAoB,iCAUb,IAAMC,EAAN,KAAqD,CAC1D,YAEmBC,EACjB,CADiB,YAAAA,CAChB,CAEH,MAAM,8BAA8B,CAClC,aAAAC,EACA,QAAAC,EACA,UAAAC,EACA,SAAAC,CACF,EAEE,CACA,IAAIC,EACJ,GAAI,CAcFA,GAbiB,MAAM,EAAAC,QAAM,QAA8B,CACzD,OAAQ,OACR,IAAK,GAAG,KAAK,OAAO,sBAAsB,GAAG,gBAAgBJ,CAAO,2BACpE,QAAS,CACP,CAAC,8BAA4B,EAAG,kBAAkB,EAAAK,QAAQ,OAAO,GACjE,CAAC,4BAA0B,EAAG,KAAK,OAAO,WAC5C,EACA,KAAM,CACJ,MAAON,EACP,KAAMG,EACN,UAAAD,CACF,CACF,CAAC,GACc,IACjB,MAAiB,CACf,SAAO,QACL,IAAI,MACF,qEACF,CACF,CACF,CAEA,OAAKE,EAQA,KAAK,uBAAuBA,CAAG,EAQ/BA,EAAI,UAAU,CAAC,KAQb,SAAM,CACX,sBAAuBA,EAAI,UAAU,CAAC,EACtC,iBAAkBA,EAAI,iBACtB,MAAO,QAAM,kBACb,SAAU,WAAS,WACrB,CAAC,KAZQ,QACL,IAAI,MACF,kFAAkFJ,CAAY,aAAaC,CAAO,EACpH,CACF,KAZO,QACL,IAAI,MACF,8FAA8FD,CAAY,aAAaC,CAAO,EAChI,CACF,KAZO,QACL,IAAI,MACF,mEAAmED,CAAY,aAAaC,CAAO,EACrG,CACF,CAyBJ,CAKQ,uBACNM,EAC+B,CAC/B,OACE,OAAOA,GAAU,UACjBA,IAAU,MACV,cAAeA,GACf,qBAAsBA,GACtB,MAAM,QAAQA,EAAM,SAAS,GAC7BA,EAAM,UAAU,MAAOC,GAAY,OAAOA,GAAY,QAAQ,GAC9D,OAAOD,EAAM,kBAAqB,QAEtC,CACF,EAtFaT,EAANW,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,cAAY,MAAM,IAFjBZ",
6
- "names": ["HttpProxyDataSource_exports", "__export", "HttpProxyDataSource", "__toCommonJS", "import_axios", "import_inversify", "import_purify_ts", "import_configTypes", "import_KeyId", "import_KeyUsage", "import_HttpHeaders", "import_package", "HttpProxyDataSource", "config", "proxyAddress", "chainId", "challenge", "calldata", "dto", "axios", "PACKAGE", "value", "address", "__decorateClass", "__decorateParam"]
4
+ "sourcesContent": ["import { DmkNetworkClient } from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport { type ContextModuleServiceConfig } from \"@/config/model/ContextModuleConfig\";\nimport { networkTypes } from \"@/network/di/networkTypes\";\nimport { KeyId } from \"@/pki/model/KeyId\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\n\nimport { ProxyDelegateCallDto } from \"./dto/ProxyDelegateCallDto\";\nimport {\n GetProxyImplementationAddressParam,\n ProxyDataSource,\n ProxyImplementationAddress,\n} from \"./ProxyDataSource\";\n\n@injectable()\nexport class HttpProxyDataSource implements ProxyDataSource {\n constructor(\n @inject(configTypes.Config)\n private readonly config: ContextModuleServiceConfig,\n @inject(networkTypes.NetworkClient)\n private readonly http: DmkNetworkClient,\n ) {}\n\n async getProxyImplementationAddress({\n proxyAddress,\n chainId,\n challenge,\n calldata,\n }: GetProxyImplementationAddressParam): Promise<\n Either<Error, ProxyImplementationAddress>\n > {\n let dto: ProxyDelegateCallDto | undefined;\n try {\n dto = (await this.http.post(\n `${this.config.metadataServiceDomain.url}/v2/ethereum/${chainId}/contract/proxy/delegate`,\n {\n proxy: proxyAddress,\n data: calldata,\n challenge,\n },\n )) as ProxyDelegateCallDto;\n } catch (_error) {\n return Left(\n new Error(\n `[ContextModule] HttpProxyDataSource: Failed to fetch delegate proxy`,\n ),\n );\n }\n\n if (!dto) {\n return Left(\n new Error(\n `[ContextModule] HttpProxyDataSource: No data received for proxy ${proxyAddress} on chain ${chainId}`,\n ),\n );\n }\n\n if (!this.isProxyDelegateCallDto(dto)) {\n return Left(\n new Error(\n `[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${proxyAddress} on chain ${chainId}`,\n ),\n );\n }\n\n if (!dto.addresses[0]) {\n return Left(\n new Error(\n `[ContextModule] HttpProxyDataSource: No implementation address found for proxy ${proxyAddress} on chain ${chainId}`,\n ),\n );\n }\n\n return Right({\n implementationAddress: dto.addresses[0],\n signedDescriptor: dto.signedDescriptor,\n keyId: KeyId.DomainMetadataKey,\n keyUsage: KeyUsage.TrustedName,\n });\n }\n\n /**\n * Type guard to validate ProxyDelegateCallDto\n */\n private isProxyDelegateCallDto(\n value: unknown,\n ): value is ProxyDelegateCallDto {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"addresses\" in value &&\n \"signedDescriptor\" in value &&\n Array.isArray(value.addresses) &&\n value.addresses.every((address) => typeof address === \"string\") &&\n typeof value.signedDescriptor === \"string\"\n );\n }\n}\n"],
5
+ "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAAmC,qBACnCC,EAAoC,qBAEpCC,EAA4B,mCAE5BC,EAA6B,qCAC7BC,EAAsB,6BACtBC,EAAyB,gCAUlB,IAAMC,EAAN,KAAqD,CAC1D,YAEmBC,EAEAC,EACjB,CAHiB,YAAAD,EAEA,UAAAC,CAChB,CAEH,MAAM,8BAA8B,CAClC,aAAAC,EACA,QAAAC,EACA,UAAAC,EACA,SAAAC,CACF,EAEE,CACA,IAAIC,EACJ,GAAI,CACFA,EAAO,MAAM,KAAK,KAAK,KACrB,GAAG,KAAK,OAAO,sBAAsB,GAAG,gBAAgBH,CAAO,2BAC/D,CACE,MAAOD,EACP,KAAMG,EACN,UAAAD,CACF,CACF,CACF,MAAiB,CACf,SAAO,QACL,IAAI,MACF,qEACF,CACF,CACF,CAEA,OAAKE,EAQA,KAAK,uBAAuBA,CAAG,EAQ/BA,EAAI,UAAU,CAAC,KAQb,SAAM,CACX,sBAAuBA,EAAI,UAAU,CAAC,EACtC,iBAAkBA,EAAI,iBACtB,MAAO,QAAM,kBACb,SAAU,WAAS,WACrB,CAAC,KAZQ,QACL,IAAI,MACF,kFAAkFJ,CAAY,aAAaC,CAAO,EACpH,CACF,KAZO,QACL,IAAI,MACF,8FAA8FD,CAAY,aAAaC,CAAO,EAChI,CACF,KAZO,QACL,IAAI,MACF,mEAAmED,CAAY,aAAaC,CAAO,EACrG,CACF,CAyBJ,CAKQ,uBACNI,EAC+B,CAC/B,OACE,OAAOA,GAAU,UACjBA,IAAU,MACV,cAAeA,GACf,qBAAsBA,GACtB,MAAM,QAAQA,EAAM,SAAS,GAC7BA,EAAM,UAAU,MAAOC,GAAY,OAAOA,GAAY,QAAQ,GAC9D,OAAOD,EAAM,kBAAqB,QAEtC,CACF,EAlFaR,EAANU,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,cAAY,MAAM,GAEzBA,EAAA,eAAO,eAAa,aAAa,IAJzBX",
6
+ "names": ["HttpProxyDataSource_exports", "__export", "HttpProxyDataSource", "__toCommonJS", "import_inversify", "import_purify_ts", "import_configTypes", "import_networkTypes", "import_KeyId", "import_KeyUsage", "HttpProxyDataSource", "config", "http", "proxyAddress", "chainId", "challenge", "calldata", "dto", "value", "address", "__decorateClass", "__decorateParam"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var m=Object.create;var p=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty;var w=(a,e,s,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of g(e))!v.call(a,r)&&r!==s&&p(a,r,{get:()=>e[r],enumerable:!(t=h(e,r))||t.enumerable});return a};var u=(a,e,s)=>(s=a!=null?m(f(a)):{},w(e||!a||!a.__esModule?p(s,"default",{value:a,enumerable:!0}):s,a));var o=u(require("axios")),c=require("../../pki/model/KeyId"),l=require("../../pki/model/KeyUsage"),i=require("../../shared/constant/HttpHeaders"),x=u(require("../../../package.json")),y=require("./HttpProxyDataSource");vi.mock("axios");const d={metadataServiceDomain:{url:"https://metadata.api.live.ledger.com"},originToken:"test-origin-token"};describe("HttpProxyDataSource",()=>{let a;beforeAll(()=>{a=new y.HttpProxyDataSource(d),vi.clearAllMocks()}),beforeEach(()=>{vi.clearAllMocks()});const e={proxyAddress:"0x1234567890123456789012345678901234567890",chainId:1,challenge:"test-challenge",calldata:"0xabcdef"},s={addresses:["0x9876543210987654321098765432109876543210"],signedDescriptor:"signed-descriptor-data"};describe("getProxyImplementationAddress",()=>{it("should call axios with correct URL, headers, and data",async()=>{const t=`context-module/${x.default.version}`,r=vi.fn(()=>Promise.resolve({data:s}));vi.spyOn(o.default,"request").mockImplementation(r),await a.getProxyImplementationAddress(e),expect(r).toHaveBeenCalledWith({method:"POST",url:`${d.metadataServiceDomain.url}/v2/ethereum/${e.chainId}/contract/proxy/delegate`,headers:{[i.LEDGER_CLIENT_VERSION_HEADER]:t,[i.LEDGER_ORIGIN_TOKEN_HEADER]:d.originToken},data:{proxy:e.proxyAddress,data:e.calldata,challenge:e.challenge}})}),it("should return Right with proxy implementation data when request succeeds with valid DTO",async()=>{vi.spyOn(o.default,"request").mockResolvedValue({data:s});const t=await a.getProxyImplementationAddress(e);expect(t.isRight()).toBe(!0),expect(t.extract()).toEqual({implementationAddress:s.addresses[0],signedDescriptor:s.signedDescriptor,keyId:c.KeyId.DomainMetadataKey,keyUsage:l.KeyUsage.TrustedName})}),it("should return Right with first address when multiple addresses are provided",async()=>{const t={addresses:["0x9876543210987654321098765432109876543210","0x1111111111111111111111111111111111111111"],signedDescriptor:"signed-descriptor-data"};vi.spyOn(o.default,"request").mockResolvedValue({data:t});const r=await a.getProxyImplementationAddress(e);expect(r.isRight()).toBe(!0),expect(r.extract()).toEqual({implementationAddress:t.addresses[0],signedDescriptor:t.signedDescriptor,keyId:c.KeyId.DomainMetadataKey,keyUsage:l.KeyUsage.TrustedName})}),it("should return Left with error when axios throws an error",async()=>{vi.spyOn(o.default,"request").mockRejectedValue(new Error("Network error"));const t=await a.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error("[ContextModule] HttpProxyDataSource: Failed to fetch delegate proxy"))}),it("should return Left with error when response data is undefined",async()=>{vi.spyOn(o.default,"request").mockResolvedValue({data:void 0});const t=await a.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: No data received for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when response data is null",async()=>{vi.spyOn(o.default,"request").mockResolvedValue({data:null});const t=await a.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: No data received for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when addresses field is missing",async()=>{const{addresses:t,...r}=s;vi.spyOn(o.default,"request").mockResolvedValue({data:r});const n=await a.getProxyImplementationAddress(e);expect(n.isLeft()).toBe(!0),expect(n.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when signedDescriptor is missing",async()=>{const{signedDescriptor:t,...r}=s;vi.spyOn(o.default,"request").mockResolvedValue({data:r});const n=await a.getProxyImplementationAddress(e);expect(n.isLeft()).toBe(!0),expect(n.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when addresses is not an array",async()=>{const t={...s,addresses:"not-an-array"};vi.spyOn(o.default,"request").mockResolvedValue({data:t});const r=await a.getProxyImplementationAddress(e);expect(r.isLeft()).toBe(!0),expect(r.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when addresses array contains non-string values",async()=>{const t={...s,addresses:[123,"valid-address"]};vi.spyOn(o.default,"request").mockResolvedValue({data:t});const r=await a.getProxyImplementationAddress(e);expect(r.isLeft()).toBe(!0),expect(r.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when signedDescriptor is not a string",async()=>{const t={...s,signedDescriptor:123};vi.spyOn(o.default,"request").mockResolvedValue({data:t});const r=await a.getProxyImplementationAddress(e);expect(r.isLeft()).toBe(!0),expect(r.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when addresses array is empty",async()=>{const t={addresses:[],signedDescriptor:"signed-descriptor-data"};vi.spyOn(o.default,"request").mockResolvedValue({data:t});const r=await a.getProxyImplementationAddress(e);expect(r.isLeft()).toBe(!0),expect(r.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: No implementation address found for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when response is not an object",async()=>{vi.spyOn(o.default,"request").mockResolvedValue({data:"not an object"});const t=await a.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should handle different chainId values correctly",async()=>{const t={...e,chainId:137};vi.spyOn(o.default,"request").mockResolvedValue({data:s});const r=await a.getProxyImplementationAddress(t);expect(r.isRight()).toBe(!0),expect(o.default.request).toHaveBeenCalledWith(expect.objectContaining({url:`${d.metadataServiceDomain.url}/v2/ethereum/137/contract/proxy/delegate`}))}),it("should handle different proxy addresses correctly",async()=>{const t="0xabcdefabcdefabcdefabcdefabcdefabcdefabcd",r={...e,proxyAddress:t};vi.spyOn(o.default,"request").mockResolvedValue({data:s});const n=await a.getProxyImplementationAddress(r);expect(n.isRight()).toBe(!0),expect(o.default.request).toHaveBeenCalledWith(expect.objectContaining({data:expect.objectContaining({proxy:t})}))}),it("should handle different calldata values correctly",async()=>{const t="0x123456789abcdef",r={...e,calldata:t};vi.spyOn(o.default,"request").mockResolvedValue({data:s});const n=await a.getProxyImplementationAddress(r);expect(n.isRight()).toBe(!0),expect(o.default.request).toHaveBeenCalledWith(expect.objectContaining({data:expect.objectContaining({data:t})}))}),it("should pass challenge parameter correctly",async()=>{const t="custom-challenge-string",r={...e,challenge:t};vi.spyOn(o.default,"request").mockResolvedValue({data:s});const n=await a.getProxyImplementationAddress(r);expect(n.isRight()).toBe(!0),expect(o.default.request).toHaveBeenCalledWith(expect.objectContaining({data:expect.objectContaining({challenge:t})}))})})});
1
+ "use strict";var i=require("../../pki/model/KeyId"),c=require("../../pki/model/KeyUsage"),l=require("./HttpProxyDataSource");const d={metadataServiceDomain:{url:"https://metadata.api.live.ledger.com"},originToken:"test-origin-token"};describe("HttpProxyDataSource",()=>{let a,r;beforeEach(()=>{vi.clearAllMocks(),r={post:vi.fn()},a=new l.HttpProxyDataSource(d,r)});const e={proxyAddress:"0x1234567890123456789012345678901234567890",chainId:1,challenge:"test-challenge",calldata:"0xabcdef"},s={addresses:["0x9876543210987654321098765432109876543210"],signedDescriptor:"signed-descriptor-data"};describe("getProxyImplementationAddress",()=>{it("should call network client post with correct URL and body",async()=>{r.post.mockResolvedValue(s),await a.getProxyImplementationAddress(e),expect(r.post).toHaveBeenCalledWith(`${d.metadataServiceDomain.url}/v2/ethereum/${e.chainId}/contract/proxy/delegate`,{proxy:e.proxyAddress,data:e.calldata,challenge:e.challenge})}),it("should return Right with proxy implementation data when request succeeds with valid DTO",async()=>{r.post.mockResolvedValue(s);const t=await a.getProxyImplementationAddress(e);expect(t.isRight()).toBe(!0),expect(t.extract()).toEqual({implementationAddress:s.addresses[0],signedDescriptor:s.signedDescriptor,keyId:i.KeyId.DomainMetadataKey,keyUsage:c.KeyUsage.TrustedName})}),it("should return Right with first address when multiple addresses are provided",async()=>{const t={addresses:["0x9876543210987654321098765432109876543210","0x1111111111111111111111111111111111111111"],signedDescriptor:"signed-descriptor-data"};r.post.mockResolvedValue(t);const o=await a.getProxyImplementationAddress(e);expect(o.isRight()).toBe(!0),expect(o.extract()).toEqual({implementationAddress:t.addresses[0],signedDescriptor:t.signedDescriptor,keyId:i.KeyId.DomainMetadataKey,keyUsage:c.KeyUsage.TrustedName})}),it("should return Left with error when network client throws",async()=>{r.post.mockRejectedValue(new Error("Network error"));const t=await a.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error("[ContextModule] HttpProxyDataSource: Failed to fetch delegate proxy"))}),it("should return Left with error when response data is undefined",async()=>{r.post.mockResolvedValue(void 0);const t=await a.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: No data received for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when response data is null",async()=>{r.post.mockResolvedValue(null);const t=await a.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: No data received for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when addresses field is missing",async()=>{const{addresses:t,...o}=s;r.post.mockResolvedValue(o);const n=await a.getProxyImplementationAddress(e);expect(n.isLeft()).toBe(!0),expect(n.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when signedDescriptor is missing",async()=>{const{signedDescriptor:t,...o}=s;r.post.mockResolvedValue(o);const n=await a.getProxyImplementationAddress(e);expect(n.isLeft()).toBe(!0),expect(n.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when addresses is not an array",async()=>{const t={...s,addresses:"not-an-array"};r.post.mockResolvedValue(t);const o=await a.getProxyImplementationAddress(e);expect(o.isLeft()).toBe(!0),expect(o.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when addresses array contains non-string values",async()=>{const t={...s,addresses:[123,"valid-address"]};r.post.mockResolvedValue(t);const o=await a.getProxyImplementationAddress(e);expect(o.isLeft()).toBe(!0),expect(o.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when signedDescriptor is not a string",async()=>{const t={...s,signedDescriptor:123};r.post.mockResolvedValue(t);const o=await a.getProxyImplementationAddress(e);expect(o.isLeft()).toBe(!0),expect(o.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when addresses array is empty",async()=>{const t={addresses:[],signedDescriptor:"signed-descriptor-data"};r.post.mockResolvedValue(t);const o=await a.getProxyImplementationAddress(e);expect(o.isLeft()).toBe(!0),expect(o.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: No implementation address found for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when response is not an object",async()=>{r.post.mockResolvedValue("not an object");const t=await a.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should handle different chainId values correctly",async()=>{const t={...e,chainId:137};r.post.mockResolvedValue(s);const o=await a.getProxyImplementationAddress(t);expect(o.isRight()).toBe(!0),expect(r.post).toHaveBeenCalledWith(`${d.metadataServiceDomain.url}/v2/ethereum/137/contract/proxy/delegate`,expect.anything())}),it("should handle different proxy addresses correctly",async()=>{const t="0xabcdefabcdefabcdefabcdefabcdefabcdefabcd",o={...e,proxyAddress:t};r.post.mockResolvedValue(s);const n=await a.getProxyImplementationAddress(o);expect(n.isRight()).toBe(!0),expect(r.post).toHaveBeenCalledWith(expect.any(String),expect.objectContaining({proxy:t}))}),it("should handle different calldata values correctly",async()=>{const t="0x123456789abcdef",o={...e,calldata:t};r.post.mockResolvedValue(s);const n=await a.getProxyImplementationAddress(o);expect(n.isRight()).toBe(!0),expect(r.post).toHaveBeenCalledWith(expect.any(String),expect.objectContaining({data:t}))}),it("should pass challenge parameter correctly",async()=>{const t="custom-challenge-string",o={...e,challenge:t};r.post.mockResolvedValue(s);const n=await a.getProxyImplementationAddress(o);expect(n.isRight()).toBe(!0),expect(r.post).toHaveBeenCalledWith(expect.any(String),expect.objectContaining({challenge:t}))})})});
2
2
  //# sourceMappingURL=HttpProxyDataSource.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/proxy/data/HttpProxyDataSource.test.ts"],
4
- "sourcesContent": ["import axios from \"axios\";\n\nimport { type ContextModuleServiceConfig } from \"@/config/model/ContextModuleConfig\";\nimport { KeyId } from \"@/pki/model/KeyId\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport {\n LEDGER_CLIENT_VERSION_HEADER,\n LEDGER_ORIGIN_TOKEN_HEADER,\n} from \"@/shared/constant/HttpHeaders\";\nimport PACKAGE from \"@root/package.json\";\n\nimport { type ProxyDelegateCallDto } from \"./dto/ProxyDelegateCallDto\";\nimport { HttpProxyDataSource } from \"./HttpProxyDataSource\";\nimport { type ProxyDataSource } from \"./ProxyDataSource\";\n\nvi.mock(\"axios\");\n\nconst config = {\n metadataServiceDomain: {\n url: \"https://metadata.api.live.ledger.com\",\n },\n originToken: \"test-origin-token\",\n} as ContextModuleServiceConfig;\n\ndescribe(\"HttpProxyDataSource\", () => {\n let datasource: ProxyDataSource;\n\n beforeAll(() => {\n datasource = new HttpProxyDataSource(config);\n vi.clearAllMocks();\n });\n\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n const validParams = {\n proxyAddress: \"0x1234567890123456789012345678901234567890\",\n chainId: 1,\n challenge: \"test-challenge\",\n calldata: \"0xabcdef\",\n };\n\n const validDto: ProxyDelegateCallDto = {\n addresses: [\"0x9876543210987654321098765432109876543210\"],\n signedDescriptor: \"signed-descriptor-data\",\n };\n\n describe(\"getProxyImplementationAddress\", () => {\n it(\"should call axios with correct URL, headers, and data\", async () => {\n // GIVEN\n const version = `context-module/${PACKAGE.version}`;\n const requestSpy = vi.fn(() => Promise.resolve({ data: validDto }));\n vi.spyOn(axios, \"request\").mockImplementation(requestSpy);\n\n // WHEN\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(requestSpy).toHaveBeenCalledWith({\n method: \"POST\",\n url: `${config.metadataServiceDomain.url}/v2/ethereum/${validParams.chainId}/contract/proxy/delegate`,\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: version,\n [LEDGER_ORIGIN_TOKEN_HEADER]: config.originToken,\n },\n data: {\n proxy: validParams.proxyAddress,\n data: validParams.calldata,\n challenge: validParams.challenge,\n },\n });\n });\n\n it(\"should return Right with proxy implementation data when request succeeds with valid DTO\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: validDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(result.extract()).toEqual({\n implementationAddress: validDto.addresses[0],\n signedDescriptor: validDto.signedDescriptor,\n keyId: KeyId.DomainMetadataKey,\n keyUsage: KeyUsage.TrustedName,\n });\n });\n\n it(\"should return Right with first address when multiple addresses are provided\", async () => {\n // GIVEN\n const dtoWithMultipleAddresses: ProxyDelegateCallDto = {\n addresses: [\n \"0x9876543210987654321098765432109876543210\",\n \"0x1111111111111111111111111111111111111111\",\n ],\n signedDescriptor: \"signed-descriptor-data\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({\n data: dtoWithMultipleAddresses,\n });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(result.extract()).toEqual({\n implementationAddress: dtoWithMultipleAddresses.addresses[0],\n signedDescriptor: dtoWithMultipleAddresses.signedDescriptor,\n keyId: KeyId.DomainMetadataKey,\n keyUsage: KeyUsage.TrustedName,\n });\n });\n\n it(\"should return Left with error when axios throws an error\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockRejectedValue(new Error(\"Network error\"));\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n \"[ContextModule] HttpProxyDataSource: Failed to fetch delegate proxy\",\n ),\n );\n });\n\n it(\"should return Left with error when response data is undefined\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: undefined });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: No data received for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when response data is null\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: null });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: No data received for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when addresses field is missing\", async () => {\n // GIVEN\n const { addresses: _, ...invalidDto } = validDto;\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when signedDescriptor is missing\", async () => {\n // GIVEN\n const { signedDescriptor: _, ...invalidDto } = validDto;\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when addresses is not an array\", async () => {\n // GIVEN\n const invalidDto = { ...validDto, addresses: \"not-an-array\" };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when addresses array contains non-string values\", async () => {\n // GIVEN\n const invalidDto = { ...validDto, addresses: [123, \"valid-address\"] };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when signedDescriptor is not a string\", async () => {\n // GIVEN\n const invalidDto = { ...validDto, signedDescriptor: 123 };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when addresses array is empty\", async () => {\n // GIVEN\n const invalidDto: ProxyDelegateCallDto = {\n addresses: [],\n signedDescriptor: \"signed-descriptor-data\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: No implementation address found for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when response is not an object\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: \"not an object\" });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should handle different chainId values correctly\", async () => {\n // GIVEN\n const paramsWithDifferentChainId = { ...validParams, chainId: 137 };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: validDto });\n\n // WHEN\n const result = await datasource.getProxyImplementationAddress(\n paramsWithDifferentChainId,\n );\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n url: `${config.metadataServiceDomain.url}/v2/ethereum/137/contract/proxy/delegate`,\n }),\n );\n });\n\n it(\"should handle different proxy addresses correctly\", async () => {\n // GIVEN\n const differentProxyAddress =\n \"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd\";\n const paramsWithDifferentAddress = {\n ...validParams,\n proxyAddress: differentProxyAddress,\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: validDto });\n\n // WHEN\n const result = await datasource.getProxyImplementationAddress(\n paramsWithDifferentAddress,\n );\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n data: expect.objectContaining({\n proxy: differentProxyAddress,\n }),\n }),\n );\n });\n\n it(\"should handle different calldata values correctly\", async () => {\n // GIVEN\n const customCalldata = \"0x123456789abcdef\";\n const paramsWithCustomCalldata = {\n ...validParams,\n calldata: customCalldata,\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: validDto });\n\n // WHEN\n const result = await datasource.getProxyImplementationAddress(\n paramsWithCustomCalldata,\n );\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n data: expect.objectContaining({\n data: customCalldata,\n }),\n }),\n );\n });\n\n it(\"should pass challenge parameter correctly\", async () => {\n // GIVEN\n const customChallenge = \"custom-challenge-string\";\n const paramsWithCustomChallenge = {\n ...validParams,\n challenge: customChallenge,\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: validDto });\n\n // WHEN\n const result = await datasource.getProxyImplementationAddress(\n paramsWithCustomChallenge,\n );\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n data: expect.objectContaining({\n challenge: customChallenge,\n }),\n }),\n );\n });\n });\n});\n"],
5
- "mappings": "wdAAA,IAAAA,EAAkB,oBAGlBC,EAAsB,6BACtBC,EAAyB,gCACzBC,EAGO,yCACPC,EAAoB,iCAGpBC,EAAoC,iCAGpC,GAAG,KAAK,OAAO,EAEf,MAAMC,EAAS,CACb,sBAAuB,CACrB,IAAK,sCACP,EACA,YAAa,mBACf,EAEA,SAAS,sBAAuB,IAAM,CACpC,IAAIC,EAEJ,UAAU,IAAM,CACdA,EAAa,IAAI,sBAAoBD,CAAM,EAC3C,GAAG,cAAc,CACnB,CAAC,EAED,WAAW,IAAM,CACf,GAAG,cAAc,CACnB,CAAC,EAED,MAAME,EAAc,CAClB,aAAc,6CACd,QAAS,EACT,UAAW,iBACX,SAAU,UACZ,EAEMC,EAAiC,CACrC,UAAW,CAAC,4CAA4C,EACxD,iBAAkB,wBACpB,EAEA,SAAS,gCAAiC,IAAM,CAC9C,GAAG,wDAAyD,SAAY,CAEtE,MAAMC,EAAU,kBAAkB,EAAAC,QAAQ,OAAO,GAC3CC,EAAa,GAAG,GAAG,IAAM,QAAQ,QAAQ,CAAE,KAAMH,CAAS,CAAC,CAAC,EAClE,GAAG,MAAM,EAAAI,QAAO,SAAS,EAAE,mBAAmBD,CAAU,EAGxD,MAAML,EAAW,8BAA8BC,CAAW,EAG1D,OAAOI,CAAU,EAAE,qBAAqB,CACtC,OAAQ,OACR,IAAK,GAAGN,EAAO,sBAAsB,GAAG,gBAAgBE,EAAY,OAAO,2BAC3E,QAAS,CACP,CAAC,8BAA4B,EAAGE,EAChC,CAAC,4BAA0B,EAAGJ,EAAO,WACvC,EACA,KAAM,CACJ,MAAOE,EAAY,aACnB,KAAMA,EAAY,SAClB,UAAWA,EAAY,SACzB,CACF,CAAC,CACH,CAAC,EAED,GAAG,0FAA2F,SAAY,CAExG,GAAG,MAAM,EAAAK,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAMJ,CAAS,CAAC,EAG/D,MAAMK,EACJ,MAAMP,EAAW,8BAA8BC,CAAW,EAG5D,OAAOM,EAAO,QAAQ,CAAC,EAAE,KAAK,EAAI,EAClC,OAAOA,EAAO,QAAQ,CAAC,EAAE,QAAQ,CAC/B,sBAAuBL,EAAS,UAAU,CAAC,EAC3C,iBAAkBA,EAAS,iBAC3B,MAAO,QAAM,kBACb,SAAU,WAAS,WACrB,CAAC,CACH,CAAC,EAED,GAAG,8EAA+E,SAAY,CAE5F,MAAMM,EAAiD,CACrD,UAAW,CACT,6CACA,4CACF,EACA,iBAAkB,wBACpB,EACA,GAAG,MAAM,EAAAF,QAAO,SAAS,EAAE,kBAAkB,CAC3C,KAAME,CACR,CAAC,EAGD,MAAMD,EACJ,MAAMP,EAAW,8BAA8BC,CAAW,EAG5D,OAAOM,EAAO,QAAQ,CAAC,EAAE,KAAK,EAAI,EAClC,OAAOA,EAAO,QAAQ,CAAC,EAAE,QAAQ,CAC/B,sBAAuBC,EAAyB,UAAU,CAAC,EAC3D,iBAAkBA,EAAyB,iBAC3C,MAAO,QAAM,kBACb,SAAU,WAAS,WACrB,CAAC,CACH,CAAC,EAED,GAAG,2DAA4D,SAAY,CAEzE,GAAG,MAAM,EAAAF,QAAO,SAAS,EAAE,kBAAkB,IAAI,MAAM,eAAe,CAAC,EAGvE,MAAMC,EACJ,MAAMP,EAAW,8BAA8BC,CAAW,EAG5D,OAAOM,EAAO,OAAO,CAAC,EAAE,KAAK,EAAI,EACjC,OAAOA,EAAO,QAAQ,CAAC,EAAE,QACvB,IAAI,MACF,qEACF,CACF,CACF,CAAC,EAED,GAAG,gEAAiE,SAAY,CAE9E,GAAG,MAAM,EAAAD,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAM,MAAU,CAAC,EAGhE,MAAMC,EACJ,MAAMP,EAAW,8BAA8BC,CAAW,EAG5D,OAAOM,EAAO,OAAO,CAAC,EAAE,KAAK,EAAI,EACjC,OAAOA,EAAO,QAAQ,CAAC,EAAE,QACvB,IAAI,MACF,mEAAmEN,EAAY,YAAY,aAAaA,EAAY,OAAO,EAC7H,CACF,CACF,CAAC,EAED,GAAG,2DAA4D,SAAY,CAEzE,GAAG,MAAM,EAAAK,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAM,IAAK,CAAC,EAG3D,MAAMC,EACJ,MAAMP,EAAW,8BAA8BC,CAAW,EAG5D,OAAOM,EAAO,OAAO,CAAC,EAAE,KAAK,EAAI,EACjC,OAAOA,EAAO,QAAQ,CAAC,EAAE,QACvB,IAAI,MACF,mEAAmEN,EAAY,YAAY,aAAaA,EAAY,OAAO,EAC7H,CACF,CACF,CAAC,EAED,GAAG,gEAAiE,SAAY,CAE9E,KAAM,CAAE,UAAWQ,EAAG,GAAGC,CAAW,EAAIR,EACxC,GAAG,MAAM,EAAAI,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAMI,CAAW,CAAC,EAGjE,MAAMH,EACJ,MAAMP,EAAW,8BAA8BC,CAAW,EAG5D,OAAOM,EAAO,OAAO,CAAC,EAAE,KAAK,EAAI,EACjC,OAAOA,EAAO,QAAQ,CAAC,EAAE,QACvB,IAAI,MACF,8FAA8FN,EAAY,YAAY,aAAaA,EAAY,OAAO,EACxJ,CACF,CACF,CAAC,EAED,GAAG,iEAAkE,SAAY,CAE/E,KAAM,CAAE,iBAAkBQ,EAAG,GAAGC,CAAW,EAAIR,EAC/C,GAAG,MAAM,EAAAI,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAMI,CAAW,CAAC,EAGjE,MAAMH,EACJ,MAAMP,EAAW,8BAA8BC,CAAW,EAG5D,OAAOM,EAAO,OAAO,CAAC,EAAE,KAAK,EAAI,EACjC,OAAOA,EAAO,QAAQ,CAAC,EAAE,QACvB,IAAI,MACF,8FAA8FN,EAAY,YAAY,aAAaA,EAAY,OAAO,EACxJ,CACF,CACF,CAAC,EAED,GAAG,+DAAgE,SAAY,CAE7E,MAAMS,EAAa,CAAE,GAAGR,EAAU,UAAW,cAAe,EAC5D,GAAG,MAAM,EAAAI,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAMI,CAAW,CAAC,EAGjE,MAAMH,EACJ,MAAMP,EAAW,8BAA8BC,CAAW,EAG5D,OAAOM,EAAO,OAAO,CAAC,EAAE,KAAK,EAAI,EACjC,OAAOA,EAAO,QAAQ,CAAC,EAAE,QACvB,IAAI,MACF,8FAA8FN,EAAY,YAAY,aAAaA,EAAY,OAAO,EACxJ,CACF,CACF,CAAC,EAED,GAAG,gFAAiF,SAAY,CAE9F,MAAMS,EAAa,CAAE,GAAGR,EAAU,UAAW,CAAC,IAAK,eAAe,CAAE,EACpE,GAAG,MAAM,EAAAI,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAMI,CAAW,CAAC,EAGjE,MAAMH,EACJ,MAAMP,EAAW,8BAA8BC,CAAW,EAG5D,OAAOM,EAAO,OAAO,CAAC,EAAE,KAAK,EAAI,EACjC,OAAOA,EAAO,QAAQ,CAAC,EAAE,QACvB,IAAI,MACF,8FAA8FN,EAAY,YAAY,aAAaA,EAAY,OAAO,EACxJ,CACF,CACF,CAAC,EAED,GAAG,sEAAuE,SAAY,CAEpF,MAAMS,EAAa,CAAE,GAAGR,EAAU,iBAAkB,GAAI,EACxD,GAAG,MAAM,EAAAI,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAMI,CAAW,CAAC,EAGjE,MAAMH,EACJ,MAAMP,EAAW,8BAA8BC,CAAW,EAG5D,OAAOM,EAAO,OAAO,CAAC,EAAE,KAAK,EAAI,EACjC,OAAOA,EAAO,QAAQ,CAAC,EAAE,QACvB,IAAI,MACF,8FAA8FN,EAAY,YAAY,aAAaA,EAAY,OAAO,EACxJ,CACF,CACF,CAAC,EAED,GAAG,8DAA+D,SAAY,CAE5E,MAAMS,EAAmC,CACvC,UAAW,CAAC,EACZ,iBAAkB,wBACpB,EACA,GAAG,MAAM,EAAAJ,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAMI,CAAW,CAAC,EAGjE,MAAMH,EACJ,MAAMP,EAAW,8BAA8BC,CAAW,EAG5D,OAAOM,EAAO,OAAO,CAAC,EAAE,KAAK,EAAI,EACjC,OAAOA,EAAO,QAAQ,CAAC,EAAE,QACvB,IAAI,MACF,kFAAkFN,EAAY,YAAY,aAAaA,EAAY,OAAO,EAC5I,CACF,CACF,CAAC,EAED,GAAG,+DAAgE,SAAY,CAE7E,GAAG,MAAM,EAAAK,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAM,eAAgB,CAAC,EAGtE,MAAMC,EACJ,MAAMP,EAAW,8BAA8BC,CAAW,EAG5D,OAAOM,EAAO,OAAO,CAAC,EAAE,KAAK,EAAI,EACjC,OAAOA,EAAO,QAAQ,CAAC,EAAE,QACvB,IAAI,MACF,8FAA8FN,EAAY,YAAY,aAAaA,EAAY,OAAO,EACxJ,CACF,CACF,CAAC,EAED,GAAG,mDAAoD,SAAY,CAEjE,MAAMU,EAA6B,CAAE,GAAGV,EAAa,QAAS,GAAI,EAClE,GAAG,MAAM,EAAAK,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAMJ,CAAS,CAAC,EAG/D,MAAMK,EAAS,MAAMP,EAAW,8BAC9BW,CACF,EAGA,OAAOJ,EAAO,QAAQ,CAAC,EAAE,KAAK,EAAI,EAClC,OAAO,EAAAD,QAAM,OAAO,EAAE,qBACpB,OAAO,iBAAiB,CACtB,IAAK,GAAGP,EAAO,sBAAsB,GAAG,0CAC1C,CAAC,CACH,CACF,CAAC,EAED,GAAG,oDAAqD,SAAY,CAElE,MAAMa,EACJ,6CACIC,EAA6B,CACjC,GAAGZ,EACH,aAAcW,CAChB,EACA,GAAG,MAAM,EAAAN,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAMJ,CAAS,CAAC,EAG/D,MAAMK,EAAS,MAAMP,EAAW,8BAC9Ba,CACF,EAGA,OAAON,EAAO,QAAQ,CAAC,EAAE,KAAK,EAAI,EAClC,OAAO,EAAAD,QAAM,OAAO,EAAE,qBACpB,OAAO,iBAAiB,CACtB,KAAM,OAAO,iBAAiB,CAC5B,MAAOM,CACT,CAAC,CACH,CAAC,CACH,CACF,CAAC,EAED,GAAG,oDAAqD,SAAY,CAElE,MAAME,EAAiB,oBACjBC,EAA2B,CAC/B,GAAGd,EACH,SAAUa,CACZ,EACA,GAAG,MAAM,EAAAR,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAMJ,CAAS,CAAC,EAG/D,MAAMK,EAAS,MAAMP,EAAW,8BAC9Be,CACF,EAGA,OAAOR,EAAO,QAAQ,CAAC,EAAE,KAAK,EAAI,EAClC,OAAO,EAAAD,QAAM,OAAO,EAAE,qBACpB,OAAO,iBAAiB,CACtB,KAAM,OAAO,iBAAiB,CAC5B,KAAMQ,CACR,CAAC,CACH,CAAC,CACH,CACF,CAAC,EAED,GAAG,4CAA6C,SAAY,CAE1D,MAAME,EAAkB,0BAClBC,EAA4B,CAChC,GAAGhB,EACH,UAAWe,CACb,EACA,GAAG,MAAM,EAAAV,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAMJ,CAAS,CAAC,EAG/D,MAAMK,EAAS,MAAMP,EAAW,8BAC9BiB,CACF,EAGA,OAAOV,EAAO,QAAQ,CAAC,EAAE,KAAK,EAAI,EAClC,OAAO,EAAAD,QAAM,OAAO,EAAE,qBACpB,OAAO,iBAAiB,CACtB,KAAM,OAAO,iBAAiB,CAC5B,UAAWU,CACb,CAAC,CACH,CAAC,CACH,CACF,CAAC,CACH,CAAC,CACH,CAAC",
6
- "names": ["import_axios", "import_KeyId", "import_KeyUsage", "import_HttpHeaders", "import_package", "import_HttpProxyDataSource", "config", "datasource", "validParams", "validDto", "version", "PACKAGE", "requestSpy", "axios", "result", "dtoWithMultipleAddresses", "_", "invalidDto", "paramsWithDifferentChainId", "differentProxyAddress", "paramsWithDifferentAddress", "customCalldata", "paramsWithCustomCalldata", "customChallenge", "paramsWithCustomChallenge"]
4
+ "sourcesContent": ["import { type DmkNetworkClient } from \"@ledgerhq/device-management-kit\";\n\nimport { type ContextModuleServiceConfig } from \"@/config/model/ContextModuleConfig\";\nimport { KeyId } from \"@/pki/model/KeyId\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\n\nimport { type ProxyDelegateCallDto } from \"./dto/ProxyDelegateCallDto\";\nimport { HttpProxyDataSource } from \"./HttpProxyDataSource\";\nimport { type ProxyDataSource } from \"./ProxyDataSource\";\n\nconst config = {\n metadataServiceDomain: {\n url: \"https://metadata.api.live.ledger.com\",\n },\n originToken: \"test-origin-token\",\n} as ContextModuleServiceConfig;\n\ndescribe(\"HttpProxyDataSource\", () => {\n let datasource: ProxyDataSource;\n let httpMock: { post: ReturnType<typeof vi.fn> };\n\n beforeEach(() => {\n vi.clearAllMocks();\n httpMock = { post: vi.fn() };\n datasource = new HttpProxyDataSource(\n config,\n httpMock as unknown as DmkNetworkClient,\n );\n });\n\n const validParams = {\n proxyAddress: \"0x1234567890123456789012345678901234567890\",\n chainId: 1,\n challenge: \"test-challenge\",\n calldata: \"0xabcdef\",\n };\n\n const validDto: ProxyDelegateCallDto = {\n addresses: [\"0x9876543210987654321098765432109876543210\"],\n signedDescriptor: \"signed-descriptor-data\",\n };\n\n describe(\"getProxyImplementationAddress\", () => {\n it(\"should call network client post with correct URL and body\", async () => {\n // GIVEN\n httpMock.post.mockResolvedValue(validDto);\n\n // WHEN\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(httpMock.post).toHaveBeenCalledWith(\n `${config.metadataServiceDomain.url}/v2/ethereum/${validParams.chainId}/contract/proxy/delegate`,\n {\n proxy: validParams.proxyAddress,\n data: validParams.calldata,\n challenge: validParams.challenge,\n },\n );\n });\n\n it(\"should return Right with proxy implementation data when request succeeds with valid DTO\", async () => {\n // GIVEN\n httpMock.post.mockResolvedValue(validDto);\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(result.extract()).toEqual({\n implementationAddress: validDto.addresses[0],\n signedDescriptor: validDto.signedDescriptor,\n keyId: KeyId.DomainMetadataKey,\n keyUsage: KeyUsage.TrustedName,\n });\n });\n\n it(\"should return Right with first address when multiple addresses are provided\", async () => {\n // GIVEN\n const dtoWithMultipleAddresses: ProxyDelegateCallDto = {\n addresses: [\n \"0x9876543210987654321098765432109876543210\",\n \"0x1111111111111111111111111111111111111111\",\n ],\n signedDescriptor: \"signed-descriptor-data\",\n };\n httpMock.post.mockResolvedValue(dtoWithMultipleAddresses);\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(result.extract()).toEqual({\n implementationAddress: dtoWithMultipleAddresses.addresses[0],\n signedDescriptor: dtoWithMultipleAddresses.signedDescriptor,\n keyId: KeyId.DomainMetadataKey,\n keyUsage: KeyUsage.TrustedName,\n });\n });\n\n it(\"should return Left with error when network client throws\", async () => {\n // GIVEN\n httpMock.post.mockRejectedValue(new Error(\"Network error\"));\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n \"[ContextModule] HttpProxyDataSource: Failed to fetch delegate proxy\",\n ),\n );\n });\n\n it(\"should return Left with error when response data is undefined\", async () => {\n // GIVEN\n httpMock.post.mockResolvedValue(undefined);\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: No data received for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when response data is null\", async () => {\n // GIVEN\n httpMock.post.mockResolvedValue(null);\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: No data received for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when addresses field is missing\", async () => {\n // GIVEN\n const { addresses: _, ...invalidDto } = validDto;\n httpMock.post.mockResolvedValue(invalidDto);\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when signedDescriptor is missing\", async () => {\n // GIVEN\n const { signedDescriptor: _, ...invalidDto } = validDto;\n httpMock.post.mockResolvedValue(invalidDto);\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when addresses is not an array\", async () => {\n // GIVEN\n const invalidDto = { ...validDto, addresses: \"not-an-array\" };\n httpMock.post.mockResolvedValue(invalidDto);\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when addresses array contains non-string values\", async () => {\n // GIVEN\n const invalidDto = { ...validDto, addresses: [123, \"valid-address\"] };\n httpMock.post.mockResolvedValue(invalidDto);\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when signedDescriptor is not a string\", async () => {\n // GIVEN\n const invalidDto = { ...validDto, signedDescriptor: 123 };\n httpMock.post.mockResolvedValue(invalidDto);\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when addresses array is empty\", async () => {\n // GIVEN\n const invalidDto: ProxyDelegateCallDto = {\n addresses: [],\n signedDescriptor: \"signed-descriptor-data\",\n };\n httpMock.post.mockResolvedValue(invalidDto);\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: No implementation address found for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when response is not an object\", async () => {\n // GIVEN\n httpMock.post.mockResolvedValue(\"not an object\");\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should handle different chainId values correctly\", async () => {\n // GIVEN\n const paramsWithDifferentChainId = { ...validParams, chainId: 137 };\n httpMock.post.mockResolvedValue(validDto);\n\n // WHEN\n const result = await datasource.getProxyImplementationAddress(\n paramsWithDifferentChainId,\n );\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(httpMock.post).toHaveBeenCalledWith(\n `${config.metadataServiceDomain.url}/v2/ethereum/137/contract/proxy/delegate`,\n expect.anything(),\n );\n });\n\n it(\"should handle different proxy addresses correctly\", async () => {\n // GIVEN\n const differentProxyAddress =\n \"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd\";\n const paramsWithDifferentAddress = {\n ...validParams,\n proxyAddress: differentProxyAddress,\n };\n httpMock.post.mockResolvedValue(validDto);\n\n // WHEN\n const result = await datasource.getProxyImplementationAddress(\n paramsWithDifferentAddress,\n );\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(httpMock.post).toHaveBeenCalledWith(\n expect.any(String),\n expect.objectContaining({\n proxy: differentProxyAddress,\n }),\n );\n });\n\n it(\"should handle different calldata values correctly\", async () => {\n // GIVEN\n const customCalldata = \"0x123456789abcdef\";\n const paramsWithCustomCalldata = {\n ...validParams,\n calldata: customCalldata,\n };\n httpMock.post.mockResolvedValue(validDto);\n\n // WHEN\n const result = await datasource.getProxyImplementationAddress(\n paramsWithCustomCalldata,\n );\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(httpMock.post).toHaveBeenCalledWith(\n expect.any(String),\n expect.objectContaining({\n data: customCalldata,\n }),\n );\n });\n\n it(\"should pass challenge parameter correctly\", async () => {\n // GIVEN\n const customChallenge = \"custom-challenge-string\";\n const paramsWithCustomChallenge = {\n ...validParams,\n challenge: customChallenge,\n };\n httpMock.post.mockResolvedValue(validDto);\n\n // WHEN\n const result = await datasource.getProxyImplementationAddress(\n paramsWithCustomChallenge,\n );\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(httpMock.post).toHaveBeenCalledWith(\n expect.any(String),\n expect.objectContaining({\n challenge: customChallenge,\n }),\n );\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_KeyId", "import_KeyUsage", "import_HttpProxyDataSource", "config", "datasource", "httpMock", "validParams", "validDto", "result", "dtoWithMultipleAddresses", "_", "invalidDto", "paramsWithDifferentChainId", "differentProxyAddress", "paramsWithDifferentAddress", "customCalldata", "paramsWithCustomCalldata", "customChallenge", "paramsWithCustomChallenge"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var D=Object.create;var d=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var S=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var k=(t,e)=>{for(var o in e)d(t,o,{get:e[o],enumerable:!0})},c=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of P(e))!h.call(t,r)&&r!==o&&d(t,r,{get:()=>e[r],enumerable:!(n=f(e,r))||n.enumerable});return t};var x=(t,e,o)=>(o=t!=null?D(S(t)):{},c(e||!t||!t.__esModule?d(o,"default",{value:t,enumerable:!0}):o,t)),C=t=>c(d({},"__esModule",{value:!0}),t),g=(t,e,o,n)=>{for(var r=n>1?void 0:n?f(e,o):e,s=t.length-1,y;s>=0;s--)(y=t[s])&&(r=(n?y(e,o,r):y(r))||r);return n&&r&&d(e,o,r),r},A=(t,e)=>(o,n)=>e(o,n,t);var G={};k(G,{HttpSafeProxyDataSource:()=>m});module.exports=C(G);var E=x(require("axios")),p=require("inversify"),i=require("purify-ts"),l=require("../../config/di/configTypes"),a=require("../../shared/constant/HttpHeaders"),I=x(require("../../../package.json"));let m=class{constructor(e){this.config=e}async getProxyImplementationAddress({proxyAddress:e,chainId:o,challenge:n}){let r;try{r=(await E.default.request({method:"GET",url:`${this.config.metadataServiceDomain.url}/v3/ethereum/${o}/contract/proxy/${e}`,headers:{[a.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${I.default.version}`,[a.LEDGER_ORIGIN_TOKEN_HEADER]:this.config.originToken},params:{challenge:n,resolver:"SAFE_GATEWAY"}})).data}catch{return(0,i.Left)(new Error("[ContextModule] HttpSafeProxyDataSource: Failed to fetch safe proxy implementation"))}return r?this.isSafeProxyImplementationAddressDto(r)?(0,i.Right)({implementationAddress:r.implementationAddress,signedDescriptor:r.signedDescriptor,keyId:r.keyId,keyUsage:r.keyUsage}):(0,i.Left)(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e} on chain ${o}`)):(0,i.Left)(new Error(`[ContextModule] HttpSafeProxyDataSource: No data received for proxy ${e} on chain ${o}`))}isSafeProxyImplementationAddressDto(e){return typeof e=="object"&&e!==null&&"proxyAddress"in e&&"implementationAddress"in e&&"standard"in e&&"signedDescriptor"in e&&"providedBy"in e&&"keyId"in e&&"keyUsage"in e&&typeof e.proxyAddress=="string"&&typeof e.implementationAddress=="string"&&typeof e.standard=="string"&&typeof e.signedDescriptor=="string"&&typeof e.providedBy=="string"&&typeof e.keyId=="string"&&typeof e.keyUsage=="string"}};m=g([(0,p.injectable)(),A(0,(0,p.inject)(l.configTypes.Config))],m);0&&(module.exports={HttpSafeProxyDataSource});
1
+ "use strict";var p=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var P=(o,e)=>{for(var r in e)p(o,r,{get:e[r],enumerable:!0})},k=(o,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of l(e))!A.call(o,t)&&t!==r&&p(o,t,{get:()=>e[t],enumerable:!(n=f(e,t))||n.enumerable});return o};var D=o=>k(p({},"__esModule",{value:!0}),o),c=(o,e,r,n)=>{for(var t=n>1?void 0:n?f(e,r):e,d=o.length-1,a;d>=0;d--)(a=o[d])&&(t=(n?a(e,r,t):a(t))||t);return n&&t&&p(e,r,t),t},y=(o,e)=>(r,n)=>e(r,n,o);var I={};P(I,{HttpSafeProxyDataSource:()=>s});module.exports=D(I);var m=require("inversify"),i=require("purify-ts"),g=require("../../config/di/configTypes"),x=require("../../network/di/networkTypes");let s=class{constructor(e,r){this.config=e;this.http=r}async getProxyImplementationAddress({proxyAddress:e,chainId:r,challenge:n}){let t;try{t=await this.http.get(`${this.config.metadataServiceDomain.url}/v3/ethereum/${r}/contract/proxy/${e}`,{params:{challenge:n,resolver:"SAFE_GATEWAY"}})}catch{return(0,i.Left)(new Error("[ContextModule] HttpSafeProxyDataSource: Failed to fetch safe proxy implementation"))}return t?this.isSafeProxyImplementationAddressDto(t)?(0,i.Right)({implementationAddress:t.implementationAddress,signedDescriptor:t.signedDescriptor,keyId:t.keyId,keyUsage:t.keyUsage}):(0,i.Left)(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e} on chain ${r}`)):(0,i.Left)(new Error(`[ContextModule] HttpSafeProxyDataSource: No data received for proxy ${e} on chain ${r}`))}isSafeProxyImplementationAddressDto(e){return typeof e=="object"&&e!==null&&"proxyAddress"in e&&"implementationAddress"in e&&"standard"in e&&"signedDescriptor"in e&&"providedBy"in e&&"keyId"in e&&"keyUsage"in e&&typeof e.proxyAddress=="string"&&typeof e.implementationAddress=="string"&&typeof e.standard=="string"&&typeof e.signedDescriptor=="string"&&typeof e.providedBy=="string"&&typeof e.keyId=="string"&&typeof e.keyUsage=="string"}};s=c([(0,m.injectable)(),y(0,(0,m.inject)(g.configTypes.Config)),y(1,(0,m.inject)(x.networkTypes.NetworkClient))],s);0&&(module.exports={HttpSafeProxyDataSource});
2
2
  //# sourceMappingURL=HttpSafeProxyDataSource.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/proxy/data/HttpSafeProxyDataSource.ts"],
4
- "sourcesContent": ["import axios from \"axios\";\nimport { inject, injectable } from \"inversify\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport { type ContextModuleServiceConfig } from \"@/config/model/ContextModuleConfig\";\nimport {\n LEDGER_CLIENT_VERSION_HEADER,\n LEDGER_ORIGIN_TOKEN_HEADER,\n} from \"@/shared/constant/HttpHeaders\";\nimport PACKAGE from \"@root/package.json\";\n\nimport { SafeProxyImplementationAddressDto } from \"./dto/SafeProxyImplementationAddressDto\";\nimport {\n GetProxyImplementationAddressParam,\n type ProxyDataSource,\n ProxyImplementationAddress,\n} from \"./ProxyDataSource\";\n\n@injectable()\nexport class HttpSafeProxyDataSource implements ProxyDataSource {\n constructor(\n @inject(configTypes.Config)\n private readonly config: ContextModuleServiceConfig,\n ) {}\n\n async getProxyImplementationAddress({\n proxyAddress,\n chainId,\n challenge,\n }: GetProxyImplementationAddressParam): Promise<\n Either<Error, ProxyImplementationAddress>\n > {\n let dto: SafeProxyImplementationAddressDto | undefined;\n try {\n const response = await axios.request<SafeProxyImplementationAddressDto>({\n method: \"GET\",\n url: `${this.config.metadataServiceDomain.url}/v3/ethereum/${chainId}/contract/proxy/${proxyAddress}`,\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n [LEDGER_ORIGIN_TOKEN_HEADER]: this.config.originToken,\n },\n params: {\n challenge,\n resolver: \"SAFE_GATEWAY\",\n },\n });\n dto = response.data;\n } catch (_error) {\n return Left(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Failed to fetch safe proxy implementation`,\n ),\n );\n }\n\n if (!dto) {\n return Left(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: No data received for proxy ${proxyAddress} on chain ${chainId}`,\n ),\n );\n }\n\n if (!this.isSafeProxyImplementationAddressDto(dto)) {\n return Left(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${proxyAddress} on chain ${chainId}`,\n ),\n );\n }\n\n return Right({\n implementationAddress: dto.implementationAddress,\n signedDescriptor: dto.signedDescriptor,\n keyId: dto.keyId,\n keyUsage: dto.keyUsage,\n });\n }\n\n /**\n * Type guard to validate SafeProxyImplementationAddressDto\n */\n private isSafeProxyImplementationAddressDto(\n value: unknown,\n ): value is SafeProxyImplementationAddressDto {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"proxyAddress\" in value &&\n \"implementationAddress\" in value &&\n \"standard\" in value &&\n \"signedDescriptor\" in value &&\n \"providedBy\" in value &&\n \"keyId\" in value &&\n \"keyUsage\" in value &&\n typeof value.proxyAddress === \"string\" &&\n typeof value.implementationAddress === \"string\" &&\n typeof value.standard === \"string\" &&\n typeof value.signedDescriptor === \"string\" &&\n typeof value.providedBy === \"string\" &&\n typeof value.keyId === \"string\" &&\n typeof value.keyUsage === \"string\"\n );\n }\n}\n"],
5
- "mappings": "qtBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAkB,oBAClBC,EAAmC,qBACnCC,EAAoC,qBAEpCC,EAA4B,mCAE5BC,EAGO,yCACPC,EAAoB,iCAUb,IAAMC,EAAN,KAAyD,CAC9D,YAEmBC,EACjB,CADiB,YAAAA,CAChB,CAEH,MAAM,8BAA8B,CAClC,aAAAC,EACA,QAAAC,EACA,UAAAC,CACF,EAEE,CACA,IAAIC,EACJ,GAAI,CAaFA,GAZiB,MAAM,EAAAC,QAAM,QAA2C,CACtE,OAAQ,MACR,IAAK,GAAG,KAAK,OAAO,sBAAsB,GAAG,gBAAgBH,CAAO,mBAAmBD,CAAY,GACnG,QAAS,CACP,CAAC,8BAA4B,EAAG,kBAAkB,EAAAK,QAAQ,OAAO,GACjE,CAAC,4BAA0B,EAAG,KAAK,OAAO,WAC5C,EACA,OAAQ,CACN,UAAAH,EACA,SAAU,cACZ,CACF,CAAC,GACc,IACjB,MAAiB,CACf,SAAO,QACL,IAAI,MACF,oFACF,CACF,CACF,CAEA,OAAKC,EAQA,KAAK,oCAAoCA,CAAG,KAQ1C,SAAM,CACX,sBAAuBA,EAAI,sBAC3B,iBAAkBA,EAAI,iBACtB,MAAOA,EAAI,MACX,SAAUA,EAAI,QAChB,CAAC,KAZQ,QACL,IAAI,MACF,yFAAyFH,CAAY,aAAaC,CAAO,EAC3H,CACF,KAZO,QACL,IAAI,MACF,uEAAuED,CAAY,aAAaC,CAAO,EACzG,CACF,CAiBJ,CAKQ,oCACNK,EAC4C,CAC5C,OACE,OAAOA,GAAU,UACjBA,IAAU,MACV,iBAAkBA,GAClB,0BAA2BA,GAC3B,aAAcA,GACd,qBAAsBA,GACtB,eAAgBA,GAChB,UAAWA,GACX,aAAcA,GACd,OAAOA,EAAM,cAAiB,UAC9B,OAAOA,EAAM,uBAA0B,UACvC,OAAOA,EAAM,UAAa,UAC1B,OAAOA,EAAM,kBAAqB,UAClC,OAAOA,EAAM,YAAe,UAC5B,OAAOA,EAAM,OAAU,UACvB,OAAOA,EAAM,UAAa,QAE9B,CACF,EArFaR,EAANS,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,cAAY,MAAM,IAFjBV",
6
- "names": ["HttpSafeProxyDataSource_exports", "__export", "HttpSafeProxyDataSource", "__toCommonJS", "import_axios", "import_inversify", "import_purify_ts", "import_configTypes", "import_HttpHeaders", "import_package", "HttpSafeProxyDataSource", "config", "proxyAddress", "chainId", "challenge", "dto", "axios", "PACKAGE", "value", "__decorateClass", "__decorateParam"]
4
+ "sourcesContent": ["import { DmkNetworkClient } from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport { type ContextModuleServiceConfig } from \"@/config/model/ContextModuleConfig\";\nimport { networkTypes } from \"@/network/di/networkTypes\";\n\nimport { SafeProxyImplementationAddressDto } from \"./dto/SafeProxyImplementationAddressDto\";\nimport {\n GetProxyImplementationAddressParam,\n type ProxyDataSource,\n ProxyImplementationAddress,\n} from \"./ProxyDataSource\";\n\n@injectable()\nexport class HttpSafeProxyDataSource implements ProxyDataSource {\n constructor(\n @inject(configTypes.Config)\n private readonly config: ContextModuleServiceConfig,\n @inject(networkTypes.NetworkClient)\n private readonly http: DmkNetworkClient,\n ) {}\n\n async getProxyImplementationAddress({\n proxyAddress,\n chainId,\n challenge,\n }: GetProxyImplementationAddressParam): Promise<\n Either<Error, ProxyImplementationAddress>\n > {\n let dto: SafeProxyImplementationAddressDto | undefined;\n try {\n dto = (await this.http.get(\n `${this.config.metadataServiceDomain.url}/v3/ethereum/${chainId}/contract/proxy/${proxyAddress}`,\n {\n params: {\n challenge,\n resolver: \"SAFE_GATEWAY\",\n },\n },\n )) as SafeProxyImplementationAddressDto;\n } catch (_error) {\n return Left(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Failed to fetch safe proxy implementation`,\n ),\n );\n }\n\n if (!dto) {\n return Left(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: No data received for proxy ${proxyAddress} on chain ${chainId}`,\n ),\n );\n }\n\n if (!this.isSafeProxyImplementationAddressDto(dto)) {\n return Left(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${proxyAddress} on chain ${chainId}`,\n ),\n );\n }\n\n return Right({\n implementationAddress: dto.implementationAddress,\n signedDescriptor: dto.signedDescriptor,\n keyId: dto.keyId,\n keyUsage: dto.keyUsage,\n });\n }\n\n /**\n * Type guard to validate SafeProxyImplementationAddressDto\n */\n private isSafeProxyImplementationAddressDto(\n value: unknown,\n ): value is SafeProxyImplementationAddressDto {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"proxyAddress\" in value &&\n \"implementationAddress\" in value &&\n \"standard\" in value &&\n \"signedDescriptor\" in value &&\n \"providedBy\" in value &&\n \"keyId\" in value &&\n \"keyUsage\" in value &&\n typeof value.proxyAddress === \"string\" &&\n typeof value.implementationAddress === \"string\" &&\n typeof value.standard === \"string\" &&\n typeof value.signedDescriptor === \"string\" &&\n typeof value.providedBy === \"string\" &&\n typeof value.keyId === \"string\" &&\n typeof value.keyUsage === \"string\"\n );\n }\n}\n"],
5
+ "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAAmC,qBACnCC,EAAoC,qBAEpCC,EAA4B,mCAE5BC,EAA6B,qCAUtB,IAAMC,EAAN,KAAyD,CAC9D,YAEmBC,EAEAC,EACjB,CAHiB,YAAAD,EAEA,UAAAC,CAChB,CAEH,MAAM,8BAA8B,CAClC,aAAAC,EACA,QAAAC,EACA,UAAAC,CACF,EAEE,CACA,IAAIC,EACJ,GAAI,CACFA,EAAO,MAAM,KAAK,KAAK,IACrB,GAAG,KAAK,OAAO,sBAAsB,GAAG,gBAAgBF,CAAO,mBAAmBD,CAAY,GAC9F,CACE,OAAQ,CACN,UAAAE,EACA,SAAU,cACZ,CACF,CACF,CACF,MAAiB,CACf,SAAO,QACL,IAAI,MACF,oFACF,CACF,CACF,CAEA,OAAKC,EAQA,KAAK,oCAAoCA,CAAG,KAQ1C,SAAM,CACX,sBAAuBA,EAAI,sBAC3B,iBAAkBA,EAAI,iBACtB,MAAOA,EAAI,MACX,SAAUA,EAAI,QAChB,CAAC,KAZQ,QACL,IAAI,MACF,yFAAyFH,CAAY,aAAaC,CAAO,EAC3H,CACF,KAZO,QACL,IAAI,MACF,uEAAuED,CAAY,aAAaC,CAAO,EACzG,CACF,CAiBJ,CAKQ,oCACNG,EAC4C,CAC5C,OACE,OAAOA,GAAU,UACjBA,IAAU,MACV,iBAAkBA,GAClB,0BAA2BA,GAC3B,aAAcA,GACd,qBAAsBA,GACtB,eAAgBA,GAChB,UAAWA,GACX,aAAcA,GACd,OAAOA,EAAM,cAAiB,UAC9B,OAAOA,EAAM,uBAA0B,UACvC,OAAOA,EAAM,UAAa,UAC1B,OAAOA,EAAM,kBAAqB,UAClC,OAAOA,EAAM,YAAe,UAC5B,OAAOA,EAAM,OAAU,UACvB,OAAOA,EAAM,UAAa,QAE9B,CACF,EAnFaP,EAANQ,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,cAAY,MAAM,GAEzBA,EAAA,eAAO,eAAa,aAAa,IAJzBT",
6
+ "names": ["HttpSafeProxyDataSource_exports", "__export", "HttpSafeProxyDataSource", "__toCommonJS", "import_inversify", "import_purify_ts", "import_configTypes", "import_networkTypes", "HttpSafeProxyDataSource", "config", "http", "proxyAddress", "chainId", "challenge", "dto", "value", "__decorateClass", "__decorateParam"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var x=Object.create;var c=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var h=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var v=(o,e,s,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of m(e))!f.call(o,r)&&r!==s&&c(o,r,{get:()=>e[r],enumerable:!(t=y(e,r))||t.enumerable});return o};var l=(o,e,s)=>(s=o!=null?x(h(o)):{},v(e||!o||!o.__esModule?c(s,"default",{value:o,enumerable:!0}):s,o));var a=l(require("axios")),d=require("../../shared/constant/HttpHeaders"),p=l(require("../../../package.json")),u=require("./HttpSafeProxyDataSource");vi.mock("axios");const i={metadataServiceDomain:{url:"https://metadata.api.live.ledger.com"},originToken:"test-origin-token"};describe("HttpSafeProxyDataSource",()=>{let o;beforeAll(()=>{o=new u.HttpSafeProxyDataSource(i),vi.clearAllMocks()}),beforeEach(()=>{vi.clearAllMocks()});const e={proxyAddress:"0x1234567890123456789012345678901234567890",chainId:1,challenge:"test-challenge",calldata:"0xabcdef"},s={proxyAddress:"0x1234567890123456789012345678901234567890",implementationAddress:"0x9876543210987654321098765432109876543210",standard:"EIP-1967",signedDescriptor:"signed-descriptor-data",providedBy:"SAFE_GATEWAY",keyId:"testKeyId",keyUsage:"testKeyUsage"};describe("getProxyImplementationAddress",()=>{it("should call axios with correct URL, headers, and parameters",async()=>{const t=`context-module/${p.default.version}`,r=vi.fn(()=>Promise.resolve({data:s}));vi.spyOn(a.default,"request").mockImplementation(r),await o.getProxyImplementationAddress(e),expect(r).toHaveBeenCalledWith({method:"GET",url:`${i.metadataServiceDomain.url}/v3/ethereum/${e.chainId}/contract/proxy/${e.proxyAddress}`,headers:{[d.LEDGER_CLIENT_VERSION_HEADER]:t,[d.LEDGER_ORIGIN_TOKEN_HEADER]:i.originToken},params:{challenge:e.challenge,resolver:"SAFE_GATEWAY"}})}),it("should return Right with proxy implementation data when request succeeds with valid DTO",async()=>{vi.spyOn(a.default,"request").mockResolvedValue({data:s});const t=await o.getProxyImplementationAddress(e);expect(t.isRight()).toBe(!0),expect(t.extract()).toEqual({implementationAddress:s.implementationAddress,signedDescriptor:s.signedDescriptor,keyId:"testKeyId",keyUsage:"testKeyUsage"})}),it("should return Left with error when axios throws an error",async()=>{vi.spyOn(a.default,"request").mockRejectedValue(new Error("Network error"));const t=await o.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error("[ContextModule] HttpSafeProxyDataSource: Failed to fetch safe proxy implementation"))}),it("should return Left with error when response data is undefined",async()=>{vi.spyOn(a.default,"request").mockResolvedValue({data:void 0});const t=await o.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: No data received for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when response data is null",async()=>{vi.spyOn(a.default,"request").mockResolvedValue({data:null});const t=await o.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: No data received for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when proxyAddress is missing",async()=>{const{proxyAddress:t,...r}=s;vi.spyOn(a.default,"request").mockResolvedValue({data:r});const n=await o.getProxyImplementationAddress(e);expect(n.isLeft()).toBe(!0),expect(n.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when implementationAddress is missing",async()=>{const{implementationAddress:t,...r}=s;vi.spyOn(a.default,"request").mockResolvedValue({data:r});const n=await o.getProxyImplementationAddress(e);expect(n.isLeft()).toBe(!0),expect(n.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when standard is missing",async()=>{const{standard:t,...r}=s;vi.spyOn(a.default,"request").mockResolvedValue({data:r});const n=await o.getProxyImplementationAddress(e);expect(n.isLeft()).toBe(!0),expect(n.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when signedDescriptor is missing",async()=>{const{signedDescriptor:t,...r}=s;vi.spyOn(a.default,"request").mockResolvedValue({data:r});const n=await o.getProxyImplementationAddress(e);expect(n.isLeft()).toBe(!0),expect(n.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when providedBy is missing",async()=>{const{providedBy:t,...r}=s;vi.spyOn(a.default,"request").mockResolvedValue({data:r});const n=await o.getProxyImplementationAddress(e);expect(n.isLeft()).toBe(!0),expect(n.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when proxyAddress is not a string",async()=>{const t={...s,proxyAddress:123};vi.spyOn(a.default,"request").mockResolvedValue({data:t});const r=await o.getProxyImplementationAddress(e);expect(r.isLeft()).toBe(!0),expect(r.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when implementationAddress is not a string",async()=>{const t={...s,implementationAddress:null};vi.spyOn(a.default,"request").mockResolvedValue({data:t});const r=await o.getProxyImplementationAddress(e);expect(r.isLeft()).toBe(!0),expect(r.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when standard is not a string",async()=>{const t={...s,standard:[]};vi.spyOn(a.default,"request").mockResolvedValue({data:t});const r=await o.getProxyImplementationAddress(e);expect(r.isLeft()).toBe(!0),expect(r.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when signedDescriptor is not a string",async()=>{const t={...s,signedDescriptor:{}};vi.spyOn(a.default,"request").mockResolvedValue({data:t});const r=await o.getProxyImplementationAddress(e);expect(r.isLeft()).toBe(!0),expect(r.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when providedBy is not a string",async()=>{const t={...s,providedBy:!0};vi.spyOn(a.default,"request").mockResolvedValue({data:t});const r=await o.getProxyImplementationAddress(e);expect(r.isLeft()).toBe(!0),expect(r.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when response is not an object",async()=>{vi.spyOn(a.default,"request").mockResolvedValue({data:"not an object"});const t=await o.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when response is null",async()=>{vi.spyOn(a.default,"request").mockResolvedValue({data:null});const t=await o.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: No data received for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should handle different chainId values correctly",async()=>{const t={...e,chainId:137};vi.spyOn(a.default,"request").mockResolvedValue({data:s});const r=await o.getProxyImplementationAddress(t);expect(r.isRight()).toBe(!0),expect(a.default.request).toHaveBeenCalledWith(expect.objectContaining({url:`${i.metadataServiceDomain.url}/v3/ethereum/137/contract/proxy/${e.proxyAddress}`}))}),it("should handle different proxy addresses correctly",async()=>{const t="0xabcdefabcdefabcdefabcdefabcdefabcdefabcd",r={...e,proxyAddress:t};vi.spyOn(a.default,"request").mockResolvedValue({data:s});const n=await o.getProxyImplementationAddress(r);expect(n.isRight()).toBe(!0),expect(a.default.request).toHaveBeenCalledWith(expect.objectContaining({url:`${i.metadataServiceDomain.url}/v3/ethereum/${e.chainId}/contract/proxy/${t}`}))}),it("should pass challenge parameter correctly",async()=>{const t="custom-challenge-string",r={...e,challenge:t};vi.spyOn(a.default,"request").mockResolvedValue({data:s});const n=await o.getProxyImplementationAddress(r);expect(n.isRight()).toBe(!0),expect(a.default.request).toHaveBeenCalledWith(expect.objectContaining({params:{challenge:t,resolver:"SAFE_GATEWAY"}}))})})});
1
+ "use strict";var d=require("./HttpSafeProxyDataSource");const i={metadataServiceDomain:{url:"https://metadata.api.live.ledger.com"},originToken:"test-origin-token"};describe("HttpSafeProxyDataSource",()=>{let a,o;beforeEach(()=>{vi.clearAllMocks(),o={get:vi.fn()},a=new d.HttpSafeProxyDataSource(i,o)});const e={proxyAddress:"0x1234567890123456789012345678901234567890",chainId:1,challenge:"test-challenge",calldata:"0xabcdef"},n={proxyAddress:"0x1234567890123456789012345678901234567890",implementationAddress:"0x9876543210987654321098765432109876543210",standard:"EIP-1967",signedDescriptor:"signed-descriptor-data",providedBy:"SAFE_GATEWAY",keyId:"testKeyId",keyUsage:"testKeyUsage"};describe("getProxyImplementationAddress",()=>{it("should call the network client with correct URL and parameters",async()=>{o.get.mockResolvedValue(n),await a.getProxyImplementationAddress(e),expect(o.get).toHaveBeenCalledWith(`${i.metadataServiceDomain.url}/v3/ethereum/${e.chainId}/contract/proxy/${e.proxyAddress}`,{params:{challenge:e.challenge,resolver:"SAFE_GATEWAY"}})}),it("should return Right with proxy implementation data when request succeeds with valid DTO",async()=>{o.get.mockResolvedValue(n);const t=await a.getProxyImplementationAddress(e);expect(t.isRight()).toBe(!0),expect(t.extract()).toEqual({implementationAddress:n.implementationAddress,signedDescriptor:n.signedDescriptor,keyId:"testKeyId",keyUsage:"testKeyUsage"})}),it("should return Left with error when network client throws",async()=>{o.get.mockRejectedValue(new Error("Network error"));const t=await a.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error("[ContextModule] HttpSafeProxyDataSource: Failed to fetch safe proxy implementation"))}),it("should return Left with error when response data is undefined",async()=>{o.get.mockResolvedValue(void 0);const t=await a.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: No data received for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when response data is null",async()=>{o.get.mockResolvedValue(null);const t=await a.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: No data received for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when proxyAddress is missing",async()=>{const{proxyAddress:t,...r}=n;o.get.mockResolvedValue(r);const s=await a.getProxyImplementationAddress(e);expect(s.isLeft()).toBe(!0),expect(s.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when implementationAddress is missing",async()=>{const{implementationAddress:t,...r}=n;o.get.mockResolvedValue(r);const s=await a.getProxyImplementationAddress(e);expect(s.isLeft()).toBe(!0),expect(s.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when standard is missing",async()=>{const{standard:t,...r}=n;o.get.mockResolvedValue(r);const s=await a.getProxyImplementationAddress(e);expect(s.isLeft()).toBe(!0),expect(s.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when signedDescriptor is missing",async()=>{const{signedDescriptor:t,...r}=n;o.get.mockResolvedValue(r);const s=await a.getProxyImplementationAddress(e);expect(s.isLeft()).toBe(!0),expect(s.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when providedBy is missing",async()=>{const{providedBy:t,...r}=n;o.get.mockResolvedValue(r);const s=await a.getProxyImplementationAddress(e);expect(s.isLeft()).toBe(!0),expect(s.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when proxyAddress is not a string",async()=>{const t={...n,proxyAddress:123};o.get.mockResolvedValue(t);const r=await a.getProxyImplementationAddress(e);expect(r.isLeft()).toBe(!0),expect(r.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when implementationAddress is not a string",async()=>{const t={...n,implementationAddress:null};o.get.mockResolvedValue(t);const r=await a.getProxyImplementationAddress(e);expect(r.isLeft()).toBe(!0),expect(r.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when standard is not a string",async()=>{const t={...n,standard:[]};o.get.mockResolvedValue(t);const r=await a.getProxyImplementationAddress(e);expect(r.isLeft()).toBe(!0),expect(r.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when signedDescriptor is not a string",async()=>{const t={...n,signedDescriptor:{}};o.get.mockResolvedValue(t);const r=await a.getProxyImplementationAddress(e);expect(r.isLeft()).toBe(!0),expect(r.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when providedBy is not a string",async()=>{const t={...n,providedBy:!0};o.get.mockResolvedValue(t);const r=await a.getProxyImplementationAddress(e);expect(r.isLeft()).toBe(!0),expect(r.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when response is not an object",async()=>{o.get.mockResolvedValue("not an object");const t=await a.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when response is null",async()=>{o.get.mockResolvedValue(null);const t=await a.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: No data received for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should handle different chainId values correctly",async()=>{const t={...e,chainId:137};o.get.mockResolvedValue(n);const r=await a.getProxyImplementationAddress(t);expect(r.isRight()).toBe(!0),expect(o.get).toHaveBeenCalledWith(`${i.metadataServiceDomain.url}/v3/ethereum/137/contract/proxy/${e.proxyAddress}`,expect.anything())}),it("should handle different proxy addresses correctly",async()=>{const t="0xabcdefabcdefabcdefabcdefabcdefabcdefabcd",r={...e,proxyAddress:t};o.get.mockResolvedValue(n);const s=await a.getProxyImplementationAddress(r);expect(s.isRight()).toBe(!0),expect(o.get).toHaveBeenCalledWith(`${i.metadataServiceDomain.url}/v3/ethereum/${e.chainId}/contract/proxy/${t}`,expect.anything())}),it("should pass challenge parameter correctly",async()=>{const t="custom-challenge-string",r={...e,challenge:t};o.get.mockResolvedValue(n);const s=await a.getProxyImplementationAddress(r);expect(s.isRight()).toBe(!0),expect(o.get).toHaveBeenCalledWith(expect.any(String),{params:{challenge:t,resolver:"SAFE_GATEWAY"}})})})});
2
2
  //# sourceMappingURL=HttpSafeProxyDataSource.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/proxy/data/HttpSafeProxyDataSource.test.ts"],
4
- "sourcesContent": ["import axios from \"axios\";\n\nimport { type ContextModuleServiceConfig } from \"@/config/model/ContextModuleConfig\";\nimport {\n LEDGER_CLIENT_VERSION_HEADER,\n LEDGER_ORIGIN_TOKEN_HEADER,\n} from \"@/shared/constant/HttpHeaders\";\nimport PACKAGE from \"@root/package.json\";\n\nimport { type SafeProxyImplementationAddressDto } from \"./dto/SafeProxyImplementationAddressDto\";\nimport { HttpSafeProxyDataSource } from \"./HttpSafeProxyDataSource\";\nimport { type ProxyDataSource } from \"./ProxyDataSource\";\n\nvi.mock(\"axios\");\n\nconst config = {\n metadataServiceDomain: {\n url: \"https://metadata.api.live.ledger.com\",\n },\n originToken: \"test-origin-token\",\n} as ContextModuleServiceConfig;\n\ndescribe(\"HttpSafeProxyDataSource\", () => {\n let datasource: ProxyDataSource;\n\n beforeAll(() => {\n datasource = new HttpSafeProxyDataSource(config);\n vi.clearAllMocks();\n });\n\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n const validParams = {\n proxyAddress: \"0x1234567890123456789012345678901234567890\",\n chainId: 1,\n challenge: \"test-challenge\",\n calldata: \"0xabcdef\",\n };\n\n const validDto: SafeProxyImplementationAddressDto = {\n proxyAddress: \"0x1234567890123456789012345678901234567890\",\n implementationAddress: \"0x9876543210987654321098765432109876543210\",\n standard: \"EIP-1967\",\n signedDescriptor: \"signed-descriptor-data\",\n providedBy: \"SAFE_GATEWAY\",\n keyId: \"testKeyId\",\n keyUsage: \"testKeyUsage\",\n };\n\n describe(\"getProxyImplementationAddress\", () => {\n it(\"should call axios with correct URL, headers, and parameters\", async () => {\n // GIVEN\n const version = `context-module/${PACKAGE.version}`;\n const requestSpy = vi.fn(() => Promise.resolve({ data: validDto }));\n vi.spyOn(axios, \"request\").mockImplementation(requestSpy);\n\n // WHEN\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(requestSpy).toHaveBeenCalledWith({\n method: \"GET\",\n url: `${config.metadataServiceDomain.url}/v3/ethereum/${validParams.chainId}/contract/proxy/${validParams.proxyAddress}`,\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: version,\n [LEDGER_ORIGIN_TOKEN_HEADER]: config.originToken,\n },\n params: {\n challenge: validParams.challenge,\n resolver: \"SAFE_GATEWAY\",\n },\n });\n });\n\n it(\"should return Right with proxy implementation data when request succeeds with valid DTO\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: validDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(result.extract()).toEqual({\n implementationAddress: validDto.implementationAddress,\n signedDescriptor: validDto.signedDescriptor,\n keyId: \"testKeyId\",\n keyUsage: \"testKeyUsage\",\n });\n });\n\n it(\"should return Left with error when axios throws an error\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockRejectedValue(new Error(\"Network error\"));\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n \"[ContextModule] HttpSafeProxyDataSource: Failed to fetch safe proxy implementation\",\n ),\n );\n });\n\n it(\"should return Left with error when response data is undefined\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: undefined });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: No data received for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when response data is null\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: null });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: No data received for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when proxyAddress is missing\", async () => {\n // GIVEN\n const { proxyAddress: _, ...invalidDto } = validDto;\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when implementationAddress is missing\", async () => {\n // GIVEN\n const { implementationAddress: _, ...invalidDto } = validDto;\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when standard is missing\", async () => {\n // GIVEN\n const { standard: _, ...invalidDto } = validDto;\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when signedDescriptor is missing\", async () => {\n // GIVEN\n const { signedDescriptor: _, ...invalidDto } = validDto;\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when providedBy is missing\", async () => {\n // GIVEN\n const { providedBy: _, ...invalidDto } = validDto;\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when proxyAddress is not a string\", async () => {\n // GIVEN\n const invalidDto = { ...validDto, proxyAddress: 123 };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when implementationAddress is not a string\", async () => {\n // GIVEN\n const invalidDto = { ...validDto, implementationAddress: null };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when standard is not a string\", async () => {\n // GIVEN\n const invalidDto = { ...validDto, standard: [] };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when signedDescriptor is not a string\", async () => {\n // GIVEN\n const invalidDto = { ...validDto, signedDescriptor: {} };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when providedBy is not a string\", async () => {\n // GIVEN\n const invalidDto = { ...validDto, providedBy: true };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when response is not an object\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: \"not an object\" });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when response is null\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: null });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: No data received for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should handle different chainId values correctly\", async () => {\n // GIVEN\n const paramsWithDifferentChainId = { ...validParams, chainId: 137 };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: validDto });\n\n // WHEN\n const result = await datasource.getProxyImplementationAddress(\n paramsWithDifferentChainId,\n );\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n url: `${config.metadataServiceDomain.url}/v3/ethereum/137/contract/proxy/${validParams.proxyAddress}`,\n }),\n );\n });\n\n it(\"should handle different proxy addresses correctly\", async () => {\n // GIVEN\n const differentProxyAddress =\n \"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd\";\n const paramsWithDifferentAddress = {\n ...validParams,\n proxyAddress: differentProxyAddress,\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: validDto });\n\n // WHEN\n const result = await datasource.getProxyImplementationAddress(\n paramsWithDifferentAddress,\n );\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n url: `${config.metadataServiceDomain.url}/v3/ethereum/${validParams.chainId}/contract/proxy/${differentProxyAddress}`,\n }),\n );\n });\n\n it(\"should pass challenge parameter correctly\", async () => {\n // GIVEN\n const customChallenge = \"custom-challenge-string\";\n const paramsWithCustomChallenge = {\n ...validParams,\n challenge: customChallenge,\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: validDto });\n\n // WHEN\n const result = await datasource.getProxyImplementationAddress(\n paramsWithCustomChallenge,\n );\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n params: {\n challenge: customChallenge,\n resolver: \"SAFE_GATEWAY\",\n },\n }),\n );\n });\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["import_axios", "import_HttpHeaders", "import_package", "import_HttpSafeProxyDataSource", "config", "datasource", "validParams", "validDto", "version", "PACKAGE", "requestSpy", "axios", "result", "_", "invalidDto", "paramsWithDifferentChainId", "differentProxyAddress", "paramsWithDifferentAddress", "customChallenge", "paramsWithCustomChallenge"]
4
+ "sourcesContent": ["import { type DmkNetworkClient } from \"@ledgerhq/device-management-kit\";\n\nimport { type ContextModuleServiceConfig } from \"@/config/model/ContextModuleConfig\";\n\nimport { type SafeProxyImplementationAddressDto } from \"./dto/SafeProxyImplementationAddressDto\";\nimport { HttpSafeProxyDataSource } from \"./HttpSafeProxyDataSource\";\nimport { type ProxyDataSource } from \"./ProxyDataSource\";\n\nconst config = {\n metadataServiceDomain: {\n url: \"https://metadata.api.live.ledger.com\",\n },\n originToken: \"test-origin-token\",\n} as ContextModuleServiceConfig;\n\ndescribe(\"HttpSafeProxyDataSource\", () => {\n let datasource: ProxyDataSource;\n let httpMock: { get: ReturnType<typeof vi.fn> };\n\n beforeEach(() => {\n vi.clearAllMocks();\n httpMock = { get: vi.fn() };\n datasource = new HttpSafeProxyDataSource(\n config,\n httpMock as unknown as DmkNetworkClient,\n );\n });\n\n const validParams = {\n proxyAddress: \"0x1234567890123456789012345678901234567890\",\n chainId: 1,\n challenge: \"test-challenge\",\n calldata: \"0xabcdef\",\n };\n\n const validDto: SafeProxyImplementationAddressDto = {\n proxyAddress: \"0x1234567890123456789012345678901234567890\",\n implementationAddress: \"0x9876543210987654321098765432109876543210\",\n standard: \"EIP-1967\",\n signedDescriptor: \"signed-descriptor-data\",\n providedBy: \"SAFE_GATEWAY\",\n keyId: \"testKeyId\",\n keyUsage: \"testKeyUsage\",\n };\n\n describe(\"getProxyImplementationAddress\", () => {\n it(\"should call the network client with correct URL and parameters\", async () => {\n // GIVEN\n httpMock.get.mockResolvedValue(validDto);\n\n // WHEN\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(httpMock.get).toHaveBeenCalledWith(\n `${config.metadataServiceDomain.url}/v3/ethereum/${validParams.chainId}/contract/proxy/${validParams.proxyAddress}`,\n {\n params: {\n challenge: validParams.challenge,\n resolver: \"SAFE_GATEWAY\",\n },\n },\n );\n });\n\n it(\"should return Right with proxy implementation data when request succeeds with valid DTO\", async () => {\n // GIVEN\n httpMock.get.mockResolvedValue(validDto);\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(result.extract()).toEqual({\n implementationAddress: validDto.implementationAddress,\n signedDescriptor: validDto.signedDescriptor,\n keyId: \"testKeyId\",\n keyUsage: \"testKeyUsage\",\n });\n });\n\n it(\"should return Left with error when network client throws\", async () => {\n // GIVEN\n httpMock.get.mockRejectedValue(new Error(\"Network error\"));\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n \"[ContextModule] HttpSafeProxyDataSource: Failed to fetch safe proxy implementation\",\n ),\n );\n });\n\n it(\"should return Left with error when response data is undefined\", async () => {\n // GIVEN\n httpMock.get.mockResolvedValue(undefined);\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: No data received for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when response data is null\", async () => {\n // GIVEN\n httpMock.get.mockResolvedValue(null);\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: No data received for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when proxyAddress is missing\", async () => {\n // GIVEN\n const { proxyAddress: _, ...invalidDto } = validDto;\n httpMock.get.mockResolvedValue(invalidDto);\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when implementationAddress is missing\", async () => {\n // GIVEN\n const { implementationAddress: _, ...invalidDto } = validDto;\n httpMock.get.mockResolvedValue(invalidDto);\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when standard is missing\", async () => {\n // GIVEN\n const { standard: _, ...invalidDto } = validDto;\n httpMock.get.mockResolvedValue(invalidDto);\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when signedDescriptor is missing\", async () => {\n // GIVEN\n const { signedDescriptor: _, ...invalidDto } = validDto;\n httpMock.get.mockResolvedValue(invalidDto);\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when providedBy is missing\", async () => {\n // GIVEN\n const { providedBy: _, ...invalidDto } = validDto;\n httpMock.get.mockResolvedValue(invalidDto);\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when proxyAddress is not a string\", async () => {\n // GIVEN\n const invalidDto = { ...validDto, proxyAddress: 123 };\n httpMock.get.mockResolvedValue(invalidDto);\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when implementationAddress is not a string\", async () => {\n // GIVEN\n const invalidDto = { ...validDto, implementationAddress: null };\n httpMock.get.mockResolvedValue(invalidDto);\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when standard is not a string\", async () => {\n // GIVEN\n const invalidDto = { ...validDto, standard: [] };\n httpMock.get.mockResolvedValue(invalidDto);\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when signedDescriptor is not a string\", async () => {\n // GIVEN\n const invalidDto = { ...validDto, signedDescriptor: {} };\n httpMock.get.mockResolvedValue(invalidDto);\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when providedBy is not a string\", async () => {\n // GIVEN\n const invalidDto = { ...validDto, providedBy: true };\n httpMock.get.mockResolvedValue(invalidDto);\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when response is not an object\", async () => {\n // GIVEN\n httpMock.get.mockResolvedValue(\"not an object\");\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when response is null\", async () => {\n // GIVEN\n httpMock.get.mockResolvedValue(null);\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: No data received for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should handle different chainId values correctly\", async () => {\n // GIVEN\n const paramsWithDifferentChainId = { ...validParams, chainId: 137 };\n httpMock.get.mockResolvedValue(validDto);\n\n // WHEN\n const result = await datasource.getProxyImplementationAddress(\n paramsWithDifferentChainId,\n );\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(httpMock.get).toHaveBeenCalledWith(\n `${config.metadataServiceDomain.url}/v3/ethereum/137/contract/proxy/${validParams.proxyAddress}`,\n expect.anything(),\n );\n });\n\n it(\"should handle different proxy addresses correctly\", async () => {\n // GIVEN\n const differentProxyAddress =\n \"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd\";\n const paramsWithDifferentAddress = {\n ...validParams,\n proxyAddress: differentProxyAddress,\n };\n httpMock.get.mockResolvedValue(validDto);\n\n // WHEN\n const result = await datasource.getProxyImplementationAddress(\n paramsWithDifferentAddress,\n );\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(httpMock.get).toHaveBeenCalledWith(\n `${config.metadataServiceDomain.url}/v3/ethereum/${validParams.chainId}/contract/proxy/${differentProxyAddress}`,\n expect.anything(),\n );\n });\n\n it(\"should pass challenge parameter correctly\", async () => {\n // GIVEN\n const customChallenge = \"custom-challenge-string\";\n const paramsWithCustomChallenge = {\n ...validParams,\n challenge: customChallenge,\n };\n httpMock.get.mockResolvedValue(validDto);\n\n // WHEN\n const result = await datasource.getProxyImplementationAddress(\n paramsWithCustomChallenge,\n );\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(httpMock.get).toHaveBeenCalledWith(expect.any(String), {\n params: { challenge: customChallenge, resolver: \"SAFE_GATEWAY\" },\n });\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_HttpSafeProxyDataSource", "config", "datasource", "httpMock", "validParams", "validDto", "result", "_", "invalidDto", "paramsWithDifferentChainId", "differentProxyAddress", "paramsWithDifferentAddress", "customChallenge", "paramsWithCustomChallenge"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var i=require("inversify"),d=require("../../config/di/configTypes"),s=require("../../pki/di/pkiTypes"),n=require("../../proxy/data/HttpProxyDataSource"),u=require("../../proxy/data/HttpSafeProxyDataSource"),c=require("../../proxy/domain/ProxyContextFieldLoader"),a=require("./proxyModuleFactory"),r=require("./proxyTypes");describe("proxyModuleFactory",()=>{let o;const x={metadataServiceDomain:{url:"https://metadata.api.live.ledger.com"},originToken:"test-origin-token"},p={loadCertificate:vi.fn()};beforeEach(()=>{o=new i.Container,o.bind(d.configTypes.Config).toConstantValue(x),o.bind(s.pkiTypes.PkiCertificateLoader).toConstantValue(p)}),describe("when datasource config is undefined",()=>{it("should bind HttpProxyDataSource as the default ProxyDataSource",()=>{const e=(0,a.proxyModuleFactory)();o.load(e);const t=o.get(r.proxyTypes.ProxyDataSource);expect(t).toBeInstanceOf(n.HttpProxyDataSource)}),it("should bind ProxyContextFieldLoader",()=>{const e=(0,a.proxyModuleFactory)();o.load(e);const t=o.get(r.proxyTypes.ProxyContextFieldLoader);expect(t).toBeInstanceOf(c.ProxyContextFieldLoader)})}),describe("when datasource.proxy is 'safe'",()=>{it("should bind HttpSafeProxyDataSource as the ProxyDataSource",()=>{const e=(0,a.proxyModuleFactory)({proxy:"safe"});o.load(e);const t=o.get(r.proxyTypes.ProxyDataSource);expect(t).toBeInstanceOf(u.HttpSafeProxyDataSource)}),it("should bind ProxyContextFieldLoader",()=>{const e=(0,a.proxyModuleFactory)({proxy:"safe"});o.load(e);const t=o.get(r.proxyTypes.ProxyContextFieldLoader);expect(t).toBeInstanceOf(c.ProxyContextFieldLoader)})}),describe("when datasource.proxy is 'default'",()=>{it("should bind HttpProxyDataSource as the ProxyDataSource",()=>{const e=(0,a.proxyModuleFactory)({proxy:"default"});o.load(e);const t=o.get(r.proxyTypes.ProxyDataSource);expect(t).toBeInstanceOf(n.HttpProxyDataSource)})}),describe("when datasource has no proxy set",()=>{it("should bind HttpProxyDataSource as the default ProxyDataSource",()=>{const e=(0,a.proxyModuleFactory)({});o.load(e);const t=o.get(r.proxyTypes.ProxyDataSource);expect(t).toBeInstanceOf(n.HttpProxyDataSource)})}),describe("when datasource.proxy is an unexpected value",()=>{it("should bind HttpProxyDataSource as the default ProxyDataSource",()=>{const e=(0,a.proxyModuleFactory)({proxy:"unknown"});o.load(e);const t=o.get(r.proxyTypes.ProxyDataSource);expect(t).toBeInstanceOf(n.HttpProxyDataSource)})})});
1
+ "use strict";var c=require("inversify"),d=require("../../config/di/configTypes"),s=require("../../network/di/networkTypes"),u=require("../../pki/di/pkiTypes"),n=require("../../proxy/data/HttpProxyDataSource"),x=require("../../proxy/data/HttpSafeProxyDataSource"),i=require("../../proxy/domain/ProxyContextFieldLoader"),r=require("./proxyModuleFactory"),a=require("./proxyTypes");describe("proxyModuleFactory",()=>{let o;const p={metadataServiceDomain:{url:"https://metadata.api.live.ledger.com"},originToken:"test-origin-token"},l={loadCertificate:vi.fn()};beforeEach(()=>{o=new c.Container,o.bind(d.configTypes.Config).toConstantValue(p),o.bind(u.pkiTypes.PkiCertificateLoader).toConstantValue(l),o.bind(s.networkTypes.NetworkClient).toConstantValue({get:vi.fn(),post:vi.fn()})}),describe("when datasource config is undefined",()=>{it("should bind HttpProxyDataSource as the default ProxyDataSource",()=>{const e=(0,r.proxyModuleFactory)();o.load(e);const t=o.get(a.proxyTypes.ProxyDataSource);expect(t).toBeInstanceOf(n.HttpProxyDataSource)}),it("should bind ProxyContextFieldLoader",()=>{const e=(0,r.proxyModuleFactory)();o.load(e);const t=o.get(a.proxyTypes.ProxyContextFieldLoader);expect(t).toBeInstanceOf(i.ProxyContextFieldLoader)})}),describe("when datasource.proxy is 'safe'",()=>{it("should bind HttpSafeProxyDataSource as the ProxyDataSource",()=>{const e=(0,r.proxyModuleFactory)({proxy:"safe"});o.load(e);const t=o.get(a.proxyTypes.ProxyDataSource);expect(t).toBeInstanceOf(x.HttpSafeProxyDataSource)}),it("should bind ProxyContextFieldLoader",()=>{const e=(0,r.proxyModuleFactory)({proxy:"safe"});o.load(e);const t=o.get(a.proxyTypes.ProxyContextFieldLoader);expect(t).toBeInstanceOf(i.ProxyContextFieldLoader)})}),describe("when datasource.proxy is 'default'",()=>{it("should bind HttpProxyDataSource as the ProxyDataSource",()=>{const e=(0,r.proxyModuleFactory)({proxy:"default"});o.load(e);const t=o.get(a.proxyTypes.ProxyDataSource);expect(t).toBeInstanceOf(n.HttpProxyDataSource)})}),describe("when datasource has no proxy set",()=>{it("should bind HttpProxyDataSource as the default ProxyDataSource",()=>{const e=(0,r.proxyModuleFactory)({});o.load(e);const t=o.get(a.proxyTypes.ProxyDataSource);expect(t).toBeInstanceOf(n.HttpProxyDataSource)})}),describe("when datasource.proxy is an unexpected value",()=>{it("should bind HttpProxyDataSource as the default ProxyDataSource",()=>{const e=(0,r.proxyModuleFactory)({proxy:"unknown"});o.load(e);const t=o.get(a.proxyTypes.ProxyDataSource);expect(t).toBeInstanceOf(n.HttpProxyDataSource)})})});
2
2
  //# sourceMappingURL=proxyModuleFactory.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/proxy/di/proxyModuleFactory.test.ts"],
4
- "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport { type ContextModuleServiceConfig } from \"@/config/model/ContextModuleConfig\";\nimport { pkiTypes } from \"@/pki/di/pkiTypes\";\nimport { type PkiCertificateLoader } from \"@/pki/domain/PkiCertificateLoader\";\nimport { HttpProxyDataSource } from \"@/proxy/data/HttpProxyDataSource\";\nimport { HttpSafeProxyDataSource } from \"@/proxy/data/HttpSafeProxyDataSource\";\nimport { ProxyContextFieldLoader } from \"@/proxy/domain/ProxyContextFieldLoader\";\n\nimport { proxyModuleFactory } from \"./proxyModuleFactory\";\nimport { proxyTypes } from \"./proxyTypes\";\n\ndescribe(\"proxyModuleFactory\", () => {\n let container: Container;\n const mockConfig: ContextModuleServiceConfig = {\n metadataServiceDomain: {\n url: \"https://metadata.api.live.ledger.com\",\n },\n originToken: \"test-origin-token\",\n } as ContextModuleServiceConfig;\n\n const mockPkiCertificateLoader: PkiCertificateLoader = {\n loadCertificate: vi.fn(),\n };\n\n beforeEach(() => {\n container = new Container();\n container.bind(configTypes.Config).toConstantValue(mockConfig);\n container\n .bind(pkiTypes.PkiCertificateLoader)\n .toConstantValue(mockPkiCertificateLoader);\n });\n\n describe(\"when datasource config is undefined\", () => {\n it(\"should bind HttpProxyDataSource as the default ProxyDataSource\", () => {\n const module = proxyModuleFactory();\n container.load(module);\n\n const proxyDataSource = container.get(proxyTypes.ProxyDataSource);\n expect(proxyDataSource).toBeInstanceOf(HttpProxyDataSource);\n });\n\n it(\"should bind ProxyContextFieldLoader\", () => {\n const module = proxyModuleFactory();\n container.load(module);\n\n const proxyContextFieldLoader = container.get(\n proxyTypes.ProxyContextFieldLoader,\n );\n expect(proxyContextFieldLoader).toBeInstanceOf(ProxyContextFieldLoader);\n });\n });\n\n describe(\"when datasource.proxy is 'safe'\", () => {\n it(\"should bind HttpSafeProxyDataSource as the ProxyDataSource\", () => {\n const module = proxyModuleFactory({ proxy: \"safe\" });\n container.load(module);\n\n const proxyDataSource = container.get(proxyTypes.ProxyDataSource);\n expect(proxyDataSource).toBeInstanceOf(HttpSafeProxyDataSource);\n });\n\n it(\"should bind ProxyContextFieldLoader\", () => {\n const module = proxyModuleFactory({ proxy: \"safe\" });\n container.load(module);\n\n const proxyContextFieldLoader = container.get(\n proxyTypes.ProxyContextFieldLoader,\n );\n expect(proxyContextFieldLoader).toBeInstanceOf(ProxyContextFieldLoader);\n });\n });\n\n describe(\"when datasource.proxy is 'default'\", () => {\n it(\"should bind HttpProxyDataSource as the ProxyDataSource\", () => {\n const module = proxyModuleFactory({ proxy: \"default\" });\n container.load(module);\n\n const proxyDataSource = container.get(proxyTypes.ProxyDataSource);\n expect(proxyDataSource).toBeInstanceOf(HttpProxyDataSource);\n });\n });\n\n describe(\"when datasource has no proxy set\", () => {\n it(\"should bind HttpProxyDataSource as the default ProxyDataSource\", () => {\n const module = proxyModuleFactory({});\n container.load(module);\n\n const proxyDataSource = container.get(proxyTypes.ProxyDataSource);\n expect(proxyDataSource).toBeInstanceOf(HttpProxyDataSource);\n });\n });\n\n describe(\"when datasource.proxy is an unexpected value\", () => {\n it(\"should bind HttpProxyDataSource as the default ProxyDataSource\", () => {\n const module = proxyModuleFactory({\n proxy: \"unknown\" as unknown as \"safe\" | \"default\",\n });\n container.load(module);\n\n const proxyDataSource = container.get(proxyTypes.ProxyDataSource);\n expect(proxyDataSource).toBeInstanceOf(HttpProxyDataSource);\n });\n });\n});\n"],
5
- "mappings": "aAAA,IAAAA,EAA0B,qBAE1BC,EAA4B,mCAE5BC,EAAyB,6BAEzBC,EAAoC,4CACpCC,EAAwC,gDACxCC,EAAwC,kDAExCC,EAAmC,gCACnCC,EAA2B,wBAE3B,SAAS,qBAAsB,IAAM,CACnC,IAAIC,EACJ,MAAMC,EAAyC,CAC7C,sBAAuB,CACrB,IAAK,sCACP,EACA,YAAa,mBACf,EAEMC,EAAiD,CACrD,gBAAiB,GAAG,GAAG,CACzB,EAEA,WAAW,IAAM,CACfF,EAAY,IAAI,YAChBA,EAAU,KAAK,cAAY,MAAM,EAAE,gBAAgBC,CAAU,EAC7DD,EACG,KAAK,WAAS,oBAAoB,EAClC,gBAAgBE,CAAwB,CAC7C,CAAC,EAED,SAAS,sCAAuC,IAAM,CACpD,GAAG,iEAAkE,IAAM,CACzE,MAAMC,KAAS,sBAAmB,EAClCH,EAAU,KAAKG,CAAM,EAErB,MAAMC,EAAkBJ,EAAU,IAAI,aAAW,eAAe,EAChE,OAAOI,CAAe,EAAE,eAAe,qBAAmB,CAC5D,CAAC,EAED,GAAG,sCAAuC,IAAM,CAC9C,MAAMD,KAAS,sBAAmB,EAClCH,EAAU,KAAKG,CAAM,EAErB,MAAME,EAA0BL,EAAU,IACxC,aAAW,uBACb,EACA,OAAOK,CAAuB,EAAE,eAAe,yBAAuB,CACxE,CAAC,CACH,CAAC,EAED,SAAS,kCAAmC,IAAM,CAChD,GAAG,6DAA8D,IAAM,CACrE,MAAMF,KAAS,sBAAmB,CAAE,MAAO,MAAO,CAAC,EACnDH,EAAU,KAAKG,CAAM,EAErB,MAAMC,EAAkBJ,EAAU,IAAI,aAAW,eAAe,EAChE,OAAOI,CAAe,EAAE,eAAe,yBAAuB,CAChE,CAAC,EAED,GAAG,sCAAuC,IAAM,CAC9C,MAAMD,KAAS,sBAAmB,CAAE,MAAO,MAAO,CAAC,EACnDH,EAAU,KAAKG,CAAM,EAErB,MAAME,EAA0BL,EAAU,IACxC,aAAW,uBACb,EACA,OAAOK,CAAuB,EAAE,eAAe,yBAAuB,CACxE,CAAC,CACH,CAAC,EAED,SAAS,qCAAsC,IAAM,CACnD,GAAG,yDAA0D,IAAM,CACjE,MAAMF,KAAS,sBAAmB,CAAE,MAAO,SAAU,CAAC,EACtDH,EAAU,KAAKG,CAAM,EAErB,MAAMC,EAAkBJ,EAAU,IAAI,aAAW,eAAe,EAChE,OAAOI,CAAe,EAAE,eAAe,qBAAmB,CAC5D,CAAC,CACH,CAAC,EAED,SAAS,mCAAoC,IAAM,CACjD,GAAG,iEAAkE,IAAM,CACzE,MAAMD,KAAS,sBAAmB,CAAC,CAAC,EACpCH,EAAU,KAAKG,CAAM,EAErB,MAAMC,EAAkBJ,EAAU,IAAI,aAAW,eAAe,EAChE,OAAOI,CAAe,EAAE,eAAe,qBAAmB,CAC5D,CAAC,CACH,CAAC,EAED,SAAS,+CAAgD,IAAM,CAC7D,GAAG,iEAAkE,IAAM,CACzE,MAAMD,KAAS,sBAAmB,CAChC,MAAO,SACT,CAAC,EACDH,EAAU,KAAKG,CAAM,EAErB,MAAMC,EAAkBJ,EAAU,IAAI,aAAW,eAAe,EAChE,OAAOI,CAAe,EAAE,eAAe,qBAAmB,CAC5D,CAAC,CACH,CAAC,CACH,CAAC",
6
- "names": ["import_inversify", "import_configTypes", "import_pkiTypes", "import_HttpProxyDataSource", "import_HttpSafeProxyDataSource", "import_ProxyContextFieldLoader", "import_proxyModuleFactory", "import_proxyTypes", "container", "mockConfig", "mockPkiCertificateLoader", "module", "proxyDataSource", "proxyContextFieldLoader"]
4
+ "sourcesContent": ["import { type DmkNetworkClient } from \"@ledgerhq/device-management-kit\";\nimport { Container } from \"inversify\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport { type ContextModuleServiceConfig } from \"@/config/model/ContextModuleConfig\";\nimport { networkTypes } from \"@/network/di/networkTypes\";\nimport { pkiTypes } from \"@/pki/di/pkiTypes\";\nimport { type PkiCertificateLoader } from \"@/pki/domain/PkiCertificateLoader\";\nimport { HttpProxyDataSource } from \"@/proxy/data/HttpProxyDataSource\";\nimport { HttpSafeProxyDataSource } from \"@/proxy/data/HttpSafeProxyDataSource\";\nimport { ProxyContextFieldLoader } from \"@/proxy/domain/ProxyContextFieldLoader\";\n\nimport { proxyModuleFactory } from \"./proxyModuleFactory\";\nimport { proxyTypes } from \"./proxyTypes\";\n\ndescribe(\"proxyModuleFactory\", () => {\n let container: Container;\n const mockConfig: ContextModuleServiceConfig = {\n metadataServiceDomain: {\n url: \"https://metadata.api.live.ledger.com\",\n },\n originToken: \"test-origin-token\",\n } as ContextModuleServiceConfig;\n\n const mockPkiCertificateLoader: PkiCertificateLoader = {\n loadCertificate: vi.fn(),\n };\n\n beforeEach(() => {\n container = new Container();\n container.bind(configTypes.Config).toConstantValue(mockConfig);\n container\n .bind(pkiTypes.PkiCertificateLoader)\n .toConstantValue(mockPkiCertificateLoader);\n container.bind(networkTypes.NetworkClient).toConstantValue({\n get: vi.fn(),\n post: vi.fn(),\n } as unknown as DmkNetworkClient);\n });\n\n describe(\"when datasource config is undefined\", () => {\n it(\"should bind HttpProxyDataSource as the default ProxyDataSource\", () => {\n const module = proxyModuleFactory();\n container.load(module);\n\n const proxyDataSource = container.get(proxyTypes.ProxyDataSource);\n expect(proxyDataSource).toBeInstanceOf(HttpProxyDataSource);\n });\n\n it(\"should bind ProxyContextFieldLoader\", () => {\n const module = proxyModuleFactory();\n container.load(module);\n\n const proxyContextFieldLoader = container.get(\n proxyTypes.ProxyContextFieldLoader,\n );\n expect(proxyContextFieldLoader).toBeInstanceOf(ProxyContextFieldLoader);\n });\n });\n\n describe(\"when datasource.proxy is 'safe'\", () => {\n it(\"should bind HttpSafeProxyDataSource as the ProxyDataSource\", () => {\n const module = proxyModuleFactory({ proxy: \"safe\" });\n container.load(module);\n\n const proxyDataSource = container.get(proxyTypes.ProxyDataSource);\n expect(proxyDataSource).toBeInstanceOf(HttpSafeProxyDataSource);\n });\n\n it(\"should bind ProxyContextFieldLoader\", () => {\n const module = proxyModuleFactory({ proxy: \"safe\" });\n container.load(module);\n\n const proxyContextFieldLoader = container.get(\n proxyTypes.ProxyContextFieldLoader,\n );\n expect(proxyContextFieldLoader).toBeInstanceOf(ProxyContextFieldLoader);\n });\n });\n\n describe(\"when datasource.proxy is 'default'\", () => {\n it(\"should bind HttpProxyDataSource as the ProxyDataSource\", () => {\n const module = proxyModuleFactory({ proxy: \"default\" });\n container.load(module);\n\n const proxyDataSource = container.get(proxyTypes.ProxyDataSource);\n expect(proxyDataSource).toBeInstanceOf(HttpProxyDataSource);\n });\n });\n\n describe(\"when datasource has no proxy set\", () => {\n it(\"should bind HttpProxyDataSource as the default ProxyDataSource\", () => {\n const module = proxyModuleFactory({});\n container.load(module);\n\n const proxyDataSource = container.get(proxyTypes.ProxyDataSource);\n expect(proxyDataSource).toBeInstanceOf(HttpProxyDataSource);\n });\n });\n\n describe(\"when datasource.proxy is an unexpected value\", () => {\n it(\"should bind HttpProxyDataSource as the default ProxyDataSource\", () => {\n const module = proxyModuleFactory({\n proxy: \"unknown\" as unknown as \"safe\" | \"default\",\n });\n container.load(module);\n\n const proxyDataSource = container.get(proxyTypes.ProxyDataSource);\n expect(proxyDataSource).toBeInstanceOf(HttpProxyDataSource);\n });\n });\n});\n"],
5
+ "mappings": "aACA,IAAAA,EAA0B,qBAE1BC,EAA4B,mCAE5BC,EAA6B,qCAC7BC,EAAyB,6BAEzBC,EAAoC,4CACpCC,EAAwC,gDACxCC,EAAwC,kDAExCC,EAAmC,gCACnCC,EAA2B,wBAE3B,SAAS,qBAAsB,IAAM,CACnC,IAAIC,EACJ,MAAMC,EAAyC,CAC7C,sBAAuB,CACrB,IAAK,sCACP,EACA,YAAa,mBACf,EAEMC,EAAiD,CACrD,gBAAiB,GAAG,GAAG,CACzB,EAEA,WAAW,IAAM,CACfF,EAAY,IAAI,YAChBA,EAAU,KAAK,cAAY,MAAM,EAAE,gBAAgBC,CAAU,EAC7DD,EACG,KAAK,WAAS,oBAAoB,EAClC,gBAAgBE,CAAwB,EAC3CF,EAAU,KAAK,eAAa,aAAa,EAAE,gBAAgB,CACzD,IAAK,GAAG,GAAG,EACX,KAAM,GAAG,GAAG,CACd,CAAgC,CAClC,CAAC,EAED,SAAS,sCAAuC,IAAM,CACpD,GAAG,iEAAkE,IAAM,CACzE,MAAMG,KAAS,sBAAmB,EAClCH,EAAU,KAAKG,CAAM,EAErB,MAAMC,EAAkBJ,EAAU,IAAI,aAAW,eAAe,EAChE,OAAOI,CAAe,EAAE,eAAe,qBAAmB,CAC5D,CAAC,EAED,GAAG,sCAAuC,IAAM,CAC9C,MAAMD,KAAS,sBAAmB,EAClCH,EAAU,KAAKG,CAAM,EAErB,MAAME,EAA0BL,EAAU,IACxC,aAAW,uBACb,EACA,OAAOK,CAAuB,EAAE,eAAe,yBAAuB,CACxE,CAAC,CACH,CAAC,EAED,SAAS,kCAAmC,IAAM,CAChD,GAAG,6DAA8D,IAAM,CACrE,MAAMF,KAAS,sBAAmB,CAAE,MAAO,MAAO,CAAC,EACnDH,EAAU,KAAKG,CAAM,EAErB,MAAMC,EAAkBJ,EAAU,IAAI,aAAW,eAAe,EAChE,OAAOI,CAAe,EAAE,eAAe,yBAAuB,CAChE,CAAC,EAED,GAAG,sCAAuC,IAAM,CAC9C,MAAMD,KAAS,sBAAmB,CAAE,MAAO,MAAO,CAAC,EACnDH,EAAU,KAAKG,CAAM,EAErB,MAAME,EAA0BL,EAAU,IACxC,aAAW,uBACb,EACA,OAAOK,CAAuB,EAAE,eAAe,yBAAuB,CACxE,CAAC,CACH,CAAC,EAED,SAAS,qCAAsC,IAAM,CACnD,GAAG,yDAA0D,IAAM,CACjE,MAAMF,KAAS,sBAAmB,CAAE,MAAO,SAAU,CAAC,EACtDH,EAAU,KAAKG,CAAM,EAErB,MAAMC,EAAkBJ,EAAU,IAAI,aAAW,eAAe,EAChE,OAAOI,CAAe,EAAE,eAAe,qBAAmB,CAC5D,CAAC,CACH,CAAC,EAED,SAAS,mCAAoC,IAAM,CACjD,GAAG,iEAAkE,IAAM,CACzE,MAAMD,KAAS,sBAAmB,CAAC,CAAC,EACpCH,EAAU,KAAKG,CAAM,EAErB,MAAMC,EAAkBJ,EAAU,IAAI,aAAW,eAAe,EAChE,OAAOI,CAAe,EAAE,eAAe,qBAAmB,CAC5D,CAAC,CACH,CAAC,EAED,SAAS,+CAAgD,IAAM,CAC7D,GAAG,iEAAkE,IAAM,CACzE,MAAMD,KAAS,sBAAmB,CAChC,MAAO,SACT,CAAC,EACDH,EAAU,KAAKG,CAAM,EAErB,MAAMC,EAAkBJ,EAAU,IAAI,aAAW,eAAe,EAChE,OAAOI,CAAe,EAAE,eAAe,qBAAmB,CAC5D,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["import_inversify", "import_configTypes", "import_networkTypes", "import_pkiTypes", "import_HttpProxyDataSource", "import_HttpSafeProxyDataSource", "import_ProxyContextFieldLoader", "import_proxyModuleFactory", "import_proxyTypes", "container", "mockConfig", "mockPkiCertificateLoader", "module", "proxyDataSource", "proxyContextFieldLoader"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var t=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var p=(i,n,g,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let e of l(n))!d.call(i,e)&&e!==g&&t(i,e,{get:()=>n[e],enumerable:!(r=o(n,e))||r.enumerable});return i};var a=i=>p(t({},"__esModule",{value:!0}),i);var s={};module.exports=a(s);
1
+ "use strict";var t=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var d=(i,n,g,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let e of l(n))!p.call(i,e)&&e!==g&&t(i,e,{get:()=>n[e],enumerable:!(r=o(n,e))||r.enumerable});return i};var s=i=>d(t({},"__esModule",{value:!0}),i);var a={};module.exports=s(a);
2
2
  //# sourceMappingURL=BlindSigningReporterDatasource.js.map