@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,2 +1,2 @@
1
- "use strict";var f=Object.create;var v=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,q=Object.prototype.hasOwnProperty;var k=(t,e,o,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of D(e))!q.call(t,i)&&i!==o&&v(t,i,{get:()=>e[i],enumerable:!(s=x(e,i))||s.enumerable});return t};var w=(t,e,o)=>(o=t!=null?f(E(t)):{},k(e||!t||!t.__esModule?v(o,"default",{value:t,enumerable:!0}):o,t));var a=w(require("axios")),n=require("purify-ts"),c=require("../../gated-signing/data/HttpGatedDescriptorDataSource"),p=require("../../shared/constant/HttpHeaders"),h=w(require("../../../package.json"));vi.mock("axios");describe("HttpGatedDescriptorDataSource",()=>{const t={cal:{url:"https://crypto-assets-service.api.ledger.com/v1",branch:"next",mode:"prod"},originToken:"test-origin-token"},e="0x1111111254fb6c44bac0bed2854e76f90643097d",o="0xa1251d75",s=1,i="010122020101222a30783131313131313235346662366334346261633062656432383534653736663930363433303937642308000000000000000140086131323531643735",l=[{gated_descriptors:{"0x1111111254fb6c44bac0bed2854e76f90643097d":{a1251d75:{network:"ethereum",chain_id:1,address:"0x1111111254fb6c44bac0bed2854e76f90643097d",selector:"a1251d75",version:"v1",descriptor:i,signatures:{prod:"00",test:"00"}}}}}],g=`${i}150100`;beforeEach(()=>{vi.clearAllMocks()}),describe("getGatedDescriptor",()=>{it("should return descriptor on successful request with correct URL and params",async()=>{vi.spyOn(a.default,"request").mockResolvedValue({status:200,data:l});const r=await new c.HttpGatedDescriptorDataSource(t).getGatedDescriptor({contractAddress:e,selector:o,chainId:s});expect(a.default.request).toHaveBeenCalledWith({method:"GET",url:"https://crypto-assets-service.api.ledger.com/v1/gated_dapps",params:{ref:"branch:next",output:"gated_descriptors,app,category",contracts:e,chain_id:s},headers:{[p.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${h.default.version}`,[p.LEDGER_ORIGIN_TOKEN_HEADER]:"test-origin-token"}}),expect(r).toEqual((0,n.Right)({signedDescriptor:g}))}),it("should find descriptor when API response has selector key without 0x prefix",async()=>{vi.spyOn(a.default,"request").mockResolvedValue({status:200,data:l});const r=await new c.HttpGatedDescriptorDataSource(t).getGatedDescriptor({contractAddress:e,selector:"0xa1251d75",chainId:s});expect(r).toEqual((0,n.Right)({signedDescriptor:g}))}),it("should return Left when response is not an array",async()=>{vi.spyOn(a.default,"request").mockResolvedValue({status:200,data:{gated_descriptors:{}}});const r=await new c.HttpGatedDescriptorDataSource(t).getGatedDescriptor({contractAddress:e,selector:o,chainId:s});expect(r).toEqual((0,n.Left)(new Error("[ContextModule] HttpGatedDescriptorDataSource: Invalid gated descriptors response")))}),it("should return Left when response is empty array",async()=>{vi.spyOn(a.default,"request").mockResolvedValue({status:200,data:[]});const r=await new c.HttpGatedDescriptorDataSource(t).getGatedDescriptor({contractAddress:e,selector:o,chainId:s});expect(r).toEqual((0,n.Left)(new Error("[ContextModule] HttpGatedDescriptorDataSource: Invalid gated descriptors response")))}),it("should return Left when no descriptor matches contract and selector",async()=>{vi.spyOn(a.default,"request").mockResolvedValue({status:200,data:[{gated_descriptors:{"0xothercontract":{a1251d75:{descriptor:"some-descriptor",network:"ethereum",chain_id:1,address:"0xother",selector:"a1251d75",version:"v1"}}}}]});const r=await new c.HttpGatedDescriptorDataSource(t).getGatedDescriptor({contractAddress:e,selector:o,chainId:s});expect(r).toEqual((0,n.Left)(new Error("[ContextModule] HttpGatedDescriptorDataSource: No gated descriptor for contract 0x1111111254fb6c44bac0bed2854e76f90643097d and selector 0xa1251d75")))}),it("should return Left when axios request fails",async()=>{vi.spyOn(a.default,"request").mockRejectedValue(new Error("Network error"));const r=await new c.HttpGatedDescriptorDataSource(t).getGatedDescriptor({contractAddress:e,selector:o,chainId:s});expect(r).toEqual((0,n.Left)(new Error("[ContextModule] HttpGatedDescriptorDataSource: Failed to fetch gated descriptors: Error: Network error")))}),it("should use config.cal.branch in ref param",async()=>{const r={...t,cal:{...t.cal,branch:"main"}};vi.spyOn(a.default,"request").mockResolvedValue({status:200,data:l}),await new c.HttpGatedDescriptorDataSource(r).getGatedDescriptor({contractAddress:e,selector:o,chainId:s}),expect(a.default.request).toHaveBeenCalledWith(expect.objectContaining({params:expect.objectContaining({ref:"branch:main"})}))}),describe("when response fails DTO validation",()=>{const r=new Error("[ContextModule] HttpGatedDescriptorDataSource: Invalid gated descriptors response");it("should return Left when array item has no gated_descriptors",async()=>{vi.spyOn(a.default,"request").mockResolvedValue({status:200,data:[{}]});const d=await new c.HttpGatedDescriptorDataSource(t).getGatedDescriptor({contractAddress:e,selector:o,chainId:s});expect(d).toEqual((0,n.Left)(r))}),it("should return Left when gated_descriptors is not an object",async()=>{vi.spyOn(a.default,"request").mockResolvedValue({status:200,data:[{gated_descriptors:"not-an-object"}]});const d=await new c.HttpGatedDescriptorDataSource(t).getGatedDescriptor({contractAddress:e,selector:o,chainId:s});expect(d).toEqual((0,n.Left)(r))}),it("should return Left when entry is missing required field (descriptor)",async()=>{vi.spyOn(a.default,"request").mockResolvedValue({status:200,data:[{gated_descriptors:{[e]:{a1251d75:{network:"ethereum",chain_id:1,address:e,selector:"a1251d75",version:"v1"}}}}]});const d=await new c.HttpGatedDescriptorDataSource(t).getGatedDescriptor({contractAddress:e,selector:o,chainId:s});expect(d).toEqual((0,n.Left)(r))}),it("should return Left when entry has wrong type for chain_id",async()=>{vi.spyOn(a.default,"request").mockResolvedValue({status:200,data:[{gated_descriptors:{[e]:{a1251d75:{network:"ethereum",chain_id:"1",address:e,selector:"a1251d75",version:"v1",descriptor:i,signatures:{prod:"00",test:"00"}}}}}]});const d=await new c.HttpGatedDescriptorDataSource(t).getGatedDescriptor({contractAddress:e,selector:o,chainId:s});expect(d).toEqual((0,n.Left)(r))}),it("should return Left when entry signatures contains non-string value",async()=>{vi.spyOn(a.default,"request").mockResolvedValue({status:200,data:[{gated_descriptors:{[e]:{a1251d75:{network:"ethereum",chain_id:1,address:e,selector:"a1251d75",version:"v1",descriptor:i,signatures:{prod:123}}}}}]});const d=await new c.HttpGatedDescriptorDataSource(t).getGatedDescriptor({contractAddress:e,selector:o,chainId:s});expect(d).toEqual((0,n.Left)(r))}),it("should return Left when array item is null",async()=>{vi.spyOn(a.default,"request").mockResolvedValue({status:200,data:[null]});const d=await new c.HttpGatedDescriptorDataSource(t).getGatedDescriptor({contractAddress:e,selector:o,chainId:s});expect(d).toEqual((0,n.Left)(r))}),it("should return Left when selectors map value is not an object",async()=>{vi.spyOn(a.default,"request").mockResolvedValue({status:200,data:[{gated_descriptors:{[e]:"not-a-selectors-map"}}]});const d=await new c.HttpGatedDescriptorDataSource(t).getGatedDescriptor({contractAddress:e,selector:o,chainId:s});expect(d).toEqual((0,n.Left)(r))})})}),describe("getGatedDescriptorForTypedData",()=>{const r="4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3",d="010122020101222a30783131313131313235346662366334346261633062656432383534653736663930363433303937642308000000000000000140086131323531643735",m=[{gated_descriptors:{[e]:{[r]:{network:"ethereum",chain_id:1,address:e,selector:"eip712",version:"v1",descriptor:d,signatures:{prod:"00",test:"00"}}}}}],y=`${d}150100`;it("should return descriptor on successful request when keyed by schema hash",async()=>{vi.spyOn(a.default,"request").mockResolvedValue({status:200,data:m});const u=await new c.HttpGatedDescriptorDataSource(t).getGatedDescriptorForTypedData({contractAddress:e,schemaHash:r,chainId:s});expect(a.default.request).toHaveBeenCalledWith({method:"GET",url:"https://crypto-assets-service.api.ledger.com/v1/gated_dapps",params:{ref:"branch:next",output:"gated_descriptors",contracts:e,chain_id:s},headers:{[p.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${h.default.version}`,[p.LEDGER_ORIGIN_TOKEN_HEADER]:"test-origin-token"}}),expect(u).toEqual((0,n.Right)({signedDescriptor:y}))}),it("should return Left when no descriptor matches contract and schema hash",async()=>{vi.spyOn(a.default,"request").mockResolvedValue({status:200,data:[{gated_descriptors:{[e]:{other_schema_hash:{descriptor:"some-descriptor",network:"ethereum",chain_id:1,address:e,selector:"eip712",version:"v1"}}}}]});const u=await new c.HttpGatedDescriptorDataSource(t).getGatedDescriptorForTypedData({contractAddress:e,schemaHash:r,chainId:s});expect(u).toEqual((0,n.Left)(new Error(`[ContextModule] HttpGatedDescriptorDataSource: No gated descriptor for contract ${e} and schema hash ${r}`)))}),it("should return Left when axios request fails",async()=>{vi.spyOn(a.default,"request").mockRejectedValue(new Error("Network error"));const u=await new c.HttpGatedDescriptorDataSource(t).getGatedDescriptorForTypedData({contractAddress:e,schemaHash:r,chainId:s});expect(u).toEqual((0,n.Left)(new Error("[ContextModule] HttpGatedDescriptorDataSource: Failed to fetch gated descriptors: Error: Network error")))})})});
1
+ "use strict";var a=require("purify-ts"),u=require("../../gated-signing/data/HttpGatedDescriptorDataSource");describe("HttpGatedDescriptorDataSource",()=>{const n={cal:{url:"https://crypto-assets-service.api.ledger.com/v1",branch:"next",mode:"prod"},originToken:"test-origin-token"},e="0x1111111254fb6c44bac0bed2854e76f90643097d",d="0xa1251d75",o=1,p="010122020101222a30783131313131313235346662366334346261633062656432383534653736663930363433303937642308000000000000000140086131323531643735",l=[{gated_descriptors:{"0x1111111254fb6c44bac0bed2854e76f90643097d":{a1251d75:{network:"ethereum",chain_id:1,address:"0x1111111254fb6c44bac0bed2854e76f90643097d",selector:"a1251d75",version:"v1",descriptor:p,signatures:{prod:"00",test:"00"}}}}}],g=`${p}150100`;let r,s;beforeEach(()=>{vi.clearAllMocks(),r={get:vi.fn()},s=new u.HttpGatedDescriptorDataSource(n,r)}),describe("getGatedDescriptor",()=>{it("should return descriptor on successful request with correct URL and params",async()=>{r.get.mockResolvedValue(l);const t=await s.getGatedDescriptor({contractAddress:e,selector:d,chainId:o});expect(r.get).toHaveBeenCalledWith(`${n.cal.url}/gated_dapps`,{params:{ref:"branch:next",output:"gated_descriptors,app,category",contracts:e,chain_id:o}}),expect(t).toEqual((0,a.Right)({signedDescriptor:g}))}),it("should find descriptor when API response has selector key without 0x prefix",async()=>{r.get.mockResolvedValue(l);const t=await s.getGatedDescriptor({contractAddress:e,selector:"0xa1251d75",chainId:o});expect(t).toEqual((0,a.Right)({signedDescriptor:g}))}),it("should return Left when response is not an array",async()=>{r.get.mockResolvedValue({gated_descriptors:{}});const t=await s.getGatedDescriptor({contractAddress:e,selector:d,chainId:o});expect(t).toEqual((0,a.Left)(new Error("[ContextModule] HttpGatedDescriptorDataSource: Invalid gated descriptors response")))}),it("should return Left when response is empty array",async()=>{r.get.mockResolvedValue([]);const t=await s.getGatedDescriptor({contractAddress:e,selector:d,chainId:o});expect(t).toEqual((0,a.Left)(new Error("[ContextModule] HttpGatedDescriptorDataSource: Invalid gated descriptors response")))}),it("should return Left when no descriptor matches contract and selector",async()=>{r.get.mockResolvedValue([{gated_descriptors:{"0xothercontract":{a1251d75:{descriptor:"some-descriptor",network:"ethereum",chain_id:1,address:"0xother",selector:"a1251d75",version:"v1"}}}}]);const t=await s.getGatedDescriptor({contractAddress:e,selector:d,chainId:o});expect(t).toEqual((0,a.Left)(new Error("[ContextModule] HttpGatedDescriptorDataSource: No gated descriptor for contract 0x1111111254fb6c44bac0bed2854e76f90643097d and selector 0xa1251d75")))}),it("should return Left when http.get request fails",async()=>{r.get.mockRejectedValue(new Error("Network error"));const t=await s.getGatedDescriptor({contractAddress:e,selector:d,chainId:o});expect(t).toEqual((0,a.Left)(new Error("[ContextModule] HttpGatedDescriptorDataSource: Failed to fetch gated descriptors: Error: Network error")))}),it("should use config.cal.branch in ref param",async()=>{const t={...n,cal:{...n.cal,branch:"main"}};r.get.mockResolvedValue(l),await new u.HttpGatedDescriptorDataSource(t,r).getGatedDescriptor({contractAddress:e,selector:d,chainId:o}),expect(r.get).toHaveBeenCalledWith(`${n.cal.url}/gated_dapps`,expect.objectContaining({params:expect.objectContaining({ref:"branch:main"})}))}),describe("when response fails DTO validation",()=>{const t=new Error("[ContextModule] HttpGatedDescriptorDataSource: Invalid gated descriptors response");it("should return Left when array item has no gated_descriptors",async()=>{r.get.mockResolvedValue([{}]);const c=await s.getGatedDescriptor({contractAddress:e,selector:d,chainId:o});expect(c).toEqual((0,a.Left)(t))}),it("should return Left when gated_descriptors is not an object",async()=>{r.get.mockResolvedValue([{gated_descriptors:"not-an-object"}]);const c=await s.getGatedDescriptor({contractAddress:e,selector:d,chainId:o});expect(c).toEqual((0,a.Left)(t))}),it("should return Left when entry is missing required field (descriptor)",async()=>{r.get.mockResolvedValue([{gated_descriptors:{[e]:{a1251d75:{network:"ethereum",chain_id:1,address:e,selector:"a1251d75",version:"v1"}}}}]);const c=await s.getGatedDescriptor({contractAddress:e,selector:d,chainId:o});expect(c).toEqual((0,a.Left)(t))}),it("should return Left when entry has wrong type for chain_id",async()=>{r.get.mockResolvedValue([{gated_descriptors:{[e]:{a1251d75:{network:"ethereum",chain_id:"1",address:e,selector:"a1251d75",version:"v1",descriptor:p,signatures:{prod:"00",test:"00"}}}}}]);const c=await s.getGatedDescriptor({contractAddress:e,selector:d,chainId:o});expect(c).toEqual((0,a.Left)(t))}),it("should return Left when entry signatures contains non-string value",async()=>{r.get.mockResolvedValue([{gated_descriptors:{[e]:{a1251d75:{network:"ethereum",chain_id:1,address:e,selector:"a1251d75",version:"v1",descriptor:p,signatures:{prod:123}}}}}]);const c=await s.getGatedDescriptor({contractAddress:e,selector:d,chainId:o});expect(c).toEqual((0,a.Left)(t))}),it("should return Left when array item is null",async()=>{r.get.mockResolvedValue([null]);const c=await s.getGatedDescriptor({contractAddress:e,selector:d,chainId:o});expect(c).toEqual((0,a.Left)(t))}),it("should return Left when selectors map value is not an object",async()=>{r.get.mockResolvedValue([{gated_descriptors:{[e]:"not-a-selectors-map"}}]);const c=await s.getGatedDescriptor({contractAddress:e,selector:d,chainId:o});expect(c).toEqual((0,a.Left)(t))})})}),describe("getGatedDescriptorForTypedData",()=>{const t="4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3",c="010122020101222a30783131313131313235346662366334346261633062656432383534653736663930363433303937642308000000000000000140086131323531643735",h=[{gated_descriptors:{[e]:{[t]:{network:"ethereum",chain_id:1,address:e,selector:"eip712",version:"v1",descriptor:c,signatures:{prod:"00",test:"00"}}}}}],w=`${c}150100`;it("should return descriptor on successful request when keyed by schema hash",async()=>{r.get.mockResolvedValue(h);const i=await s.getGatedDescriptorForTypedData({contractAddress:e,schemaHash:t,chainId:o});expect(r.get).toHaveBeenCalledWith(`${n.cal.url}/gated_dapps`,{params:{ref:"branch:next",output:"gated_descriptors",contracts:e,chain_id:o}}),expect(i).toEqual((0,a.Right)({signedDescriptor:w}))}),it("should return Left when no descriptor matches contract and schema hash",async()=>{r.get.mockResolvedValue([{gated_descriptors:{[e]:{other_schema_hash:{descriptor:"some-descriptor",network:"ethereum",chain_id:1,address:e,selector:"eip712",version:"v1"}}}}]);const i=await s.getGatedDescriptorForTypedData({contractAddress:e,schemaHash:t,chainId:o});expect(i).toEqual((0,a.Left)(new Error(`[ContextModule] HttpGatedDescriptorDataSource: No gated descriptor for contract ${e} and schema hash ${t}`)))}),it("should return Left when http.get request fails",async()=>{r.get.mockRejectedValue(new Error("Network error"));const i=await s.getGatedDescriptorForTypedData({contractAddress:e,schemaHash:t,chainId:o});expect(i).toEqual((0,a.Left)(new Error("[ContextModule] HttpGatedDescriptorDataSource: Failed to fetch gated descriptors: Error: Network error")))})})});
2
2
  //# sourceMappingURL=HttpGatedDescriptorDataSource.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/gated-signing/data/HttpGatedDescriptorDataSource.test.ts"],
4
- "sourcesContent": ["import axios from \"axios\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { type ContextModuleServiceConfig } from \"@/config/model/ContextModuleConfig\";\nimport { HttpGatedDescriptorDataSource } from \"@/gated-signing/data/HttpGatedDescriptorDataSource\";\nimport {\n LEDGER_CLIENT_VERSION_HEADER,\n LEDGER_ORIGIN_TOKEN_HEADER,\n} from \"@/shared/constant/HttpHeaders\";\nimport PACKAGE from \"@root/package.json\";\n\nvi.mock(\"axios\");\n\ndescribe(\"HttpGatedDescriptorDataSource\", () => {\n const config: ContextModuleServiceConfig = {\n cal: {\n url: \"https://crypto-assets-service.api.ledger.com/v1\",\n branch: \"next\",\n mode: \"prod\",\n },\n originToken: \"test-origin-token\",\n } as ContextModuleServiceConfig;\n\n const contractAddress = \"0x1111111254fb6c44bac0bed2854e76f90643097d\";\n const selector = \"0xa1251d75\";\n const chainId = 1;\n\n const descriptorPayload =\n \"010122020101222a30783131313131313235346662366334346261633062656432383534653736663930363433303937642308000000000000000140086131323531643735\";\n const validGatedDappsResponse = [\n {\n gated_descriptors: {\n \"0x1111111254fb6c44bac0bed2854e76f90643097d\": {\n a1251d75: {\n network: \"ethereum\",\n chain_id: 1,\n address: \"0x1111111254fb6c44bac0bed2854e76f90643097d\",\n selector: \"a1251d75\",\n version: \"v1\",\n descriptor: descriptorPayload,\n signatures: { prod: \"00\", test: \"00\" },\n },\n },\n },\n },\n ];\n // signedDescriptor = payload + SIGNATURE_TAG(\"15\") + length(01) + signature(\"00\")\n const expectedSignedDescriptor = `${descriptorPayload}150100`;\n\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n describe(\"getGatedDescriptor\", () => {\n it(\"should return descriptor on successful request with correct URL and params\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: validGatedDappsResponse,\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(axios.request).toHaveBeenCalledWith({\n method: \"GET\",\n url: \"https://crypto-assets-service.api.ledger.com/v1/gated_dapps\",\n params: {\n ref: \"branch:next\",\n output: \"gated_descriptors,app,category\",\n contracts: contractAddress,\n chain_id: chainId,\n },\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n [LEDGER_ORIGIN_TOKEN_HEADER]: \"test-origin-token\",\n },\n });\n expect(result).toEqual(\n Right({\n signedDescriptor: expectedSignedDescriptor,\n }),\n );\n });\n\n it(\"should find descriptor when API response has selector key without 0x prefix\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: validGatedDappsResponse,\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector: \"0xa1251d75\",\n chainId,\n });\n\n expect(result).toEqual(\n Right({\n signedDescriptor: expectedSignedDescriptor,\n }),\n );\n });\n\n it(\"should return Left when response is not an array\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: { gated_descriptors: {} },\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpGatedDescriptorDataSource: Invalid gated descriptors response\",\n ),\n ),\n );\n });\n\n it(\"should return Left when response is empty array\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: [],\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpGatedDescriptorDataSource: Invalid gated descriptors response\",\n ),\n ),\n );\n });\n\n it(\"should return Left when no descriptor matches contract and selector\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: [\n {\n gated_descriptors: {\n \"0xothercontract\": {\n a1251d75: {\n descriptor: \"some-descriptor\",\n network: \"ethereum\",\n chain_id: 1,\n address: \"0xother\",\n selector: \"a1251d75\",\n version: \"v1\",\n },\n },\n },\n },\n ],\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpGatedDescriptorDataSource: No gated descriptor for contract 0x1111111254fb6c44bac0bed2854e76f90643097d and selector 0xa1251d75\",\n ),\n ),\n );\n });\n\n it(\"should return Left when axios request fails\", async () => {\n vi.spyOn(axios, \"request\").mockRejectedValue(new Error(\"Network error\"));\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpGatedDescriptorDataSource: Failed to fetch gated descriptors: Error: Network error\",\n ),\n ),\n );\n });\n\n it(\"should use config.cal.branch in ref param\", async () => {\n const configMain: ContextModuleServiceConfig = {\n ...config,\n cal: { ...config.cal!, branch: \"main\" },\n } as ContextModuleServiceConfig;\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: validGatedDappsResponse,\n });\n\n await new HttpGatedDescriptorDataSource(configMain).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n params: expect.objectContaining({\n ref: \"branch:main\",\n }),\n }),\n );\n });\n\n describe(\"when response fails DTO validation\", () => {\n const invalidResponseError = new Error(\n \"[ContextModule] HttpGatedDescriptorDataSource: Invalid gated descriptors response\",\n );\n\n it(\"should return Left when array item has no gated_descriptors\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: [{}],\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n\n it(\"should return Left when gated_descriptors is not an object\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: [{ gated_descriptors: \"not-an-object\" }],\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n\n it(\"should return Left when entry is missing required field (descriptor)\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: [\n {\n gated_descriptors: {\n [contractAddress]: {\n a1251d75: {\n network: \"ethereum\",\n chain_id: 1,\n address: contractAddress,\n selector: \"a1251d75\",\n version: \"v1\",\n // descriptor missing\n },\n },\n },\n },\n ],\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n\n it(\"should return Left when entry has wrong type for chain_id\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: [\n {\n gated_descriptors: {\n [contractAddress]: {\n a1251d75: {\n network: \"ethereum\",\n chain_id: \"1\", // string instead of number\n address: contractAddress,\n selector: \"a1251d75\",\n version: \"v1\",\n descriptor: descriptorPayload,\n signatures: { prod: \"00\", test: \"00\" },\n },\n },\n },\n },\n ],\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n\n it(\"should return Left when entry signatures contains non-string value\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: [\n {\n gated_descriptors: {\n [contractAddress]: {\n a1251d75: {\n network: \"ethereum\",\n chain_id: 1,\n address: contractAddress,\n selector: \"a1251d75\",\n version: \"v1\",\n descriptor: descriptorPayload,\n signatures: { prod: 123 }, // number instead of string\n },\n },\n },\n },\n ],\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n\n it(\"should return Left when array item is null\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: [null],\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n\n it(\"should return Left when selectors map value is not an object\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: [\n {\n gated_descriptors: {\n [contractAddress]: \"not-a-selectors-map\",\n },\n },\n ],\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n });\n });\n\n describe(\"getGatedDescriptorForTypedData\", () => {\n const schemaHash =\n \"4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3\";\n const descriptorPayloadTypedData =\n \"010122020101222a30783131313131313235346662366334346261633062656432383534653736663930363433303937642308000000000000000140086131323531643735\";\n const validTypedDataResponse = [\n {\n gated_descriptors: {\n [contractAddress]: {\n [schemaHash]: {\n network: \"ethereum\",\n chain_id: 1,\n address: contractAddress,\n selector: \"eip712\",\n version: \"v1\",\n descriptor: descriptorPayloadTypedData,\n signatures: { prod: \"00\", test: \"00\" },\n },\n },\n },\n },\n ];\n const expectedSignedDescriptorTypedData = `${descriptorPayloadTypedData}150100`;\n\n it(\"should return descriptor on successful request when keyed by schema hash\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: validTypedDataResponse,\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptorForTypedData({\n contractAddress,\n schemaHash,\n chainId,\n });\n\n expect(axios.request).toHaveBeenCalledWith({\n method: \"GET\",\n url: \"https://crypto-assets-service.api.ledger.com/v1/gated_dapps\",\n params: {\n ref: \"branch:next\",\n output: \"gated_descriptors\",\n contracts: contractAddress,\n chain_id: chainId,\n },\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n [LEDGER_ORIGIN_TOKEN_HEADER]: \"test-origin-token\",\n },\n });\n expect(result).toEqual(\n Right({\n signedDescriptor: expectedSignedDescriptorTypedData,\n }),\n );\n });\n\n it(\"should return Left when no descriptor matches contract and schema hash\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: [\n {\n gated_descriptors: {\n [contractAddress]: {\n other_schema_hash: {\n descriptor: \"some-descriptor\",\n network: \"ethereum\",\n chain_id: 1,\n address: contractAddress,\n selector: \"eip712\",\n version: \"v1\",\n },\n },\n },\n },\n ],\n });\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptorForTypedData({\n contractAddress,\n schemaHash,\n chainId,\n });\n\n expect(result).toEqual(\n Left(\n new Error(\n `[ContextModule] HttpGatedDescriptorDataSource: No gated descriptor for contract ${contractAddress} and schema hash ${schemaHash}`,\n ),\n ),\n );\n });\n\n it(\"should return Left when axios request fails\", async () => {\n vi.spyOn(axios, \"request\").mockRejectedValue(new Error(\"Network error\"));\n\n const result = await new HttpGatedDescriptorDataSource(\n config,\n ).getGatedDescriptorForTypedData({\n contractAddress,\n schemaHash,\n chainId,\n });\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpGatedDescriptorDataSource: Failed to fetch gated descriptors: Error: Network error\",\n ),\n ),\n );\n });\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["import_axios", "import_purify_ts", "import_HttpGatedDescriptorDataSource", "import_HttpHeaders", "import_package", "config", "contractAddress", "selector", "chainId", "descriptorPayload", "validGatedDappsResponse", "expectedSignedDescriptor", "axios", "result", "PACKAGE", "configMain", "invalidResponseError", "schemaHash", "descriptorPayloadTypedData", "validTypedDataResponse", "expectedSignedDescriptorTypedData"]
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 { HttpGatedDescriptorDataSource } from \"@/gated-signing/data/HttpGatedDescriptorDataSource\";\n\ndescribe(\"HttpGatedDescriptorDataSource\", () => {\n const config: ContextModuleServiceConfig = {\n cal: {\n url: \"https://crypto-assets-service.api.ledger.com/v1\",\n branch: \"next\",\n mode: \"prod\",\n },\n originToken: \"test-origin-token\",\n } as ContextModuleServiceConfig;\n\n const contractAddress = \"0x1111111254fb6c44bac0bed2854e76f90643097d\";\n const selector = \"0xa1251d75\";\n const chainId = 1;\n\n const descriptorPayload =\n \"010122020101222a30783131313131313235346662366334346261633062656432383534653736663930363433303937642308000000000000000140086131323531643735\";\n const validGatedDappsResponse = [\n {\n gated_descriptors: {\n \"0x1111111254fb6c44bac0bed2854e76f90643097d\": {\n a1251d75: {\n network: \"ethereum\",\n chain_id: 1,\n address: \"0x1111111254fb6c44bac0bed2854e76f90643097d\",\n selector: \"a1251d75\",\n version: \"v1\",\n descriptor: descriptorPayload,\n signatures: { prod: \"00\", test: \"00\" },\n },\n },\n },\n },\n ];\n // signedDescriptor = payload + SIGNATURE_TAG(\"15\") + length(01) + signature(\"00\")\n const expectedSignedDescriptor = `${descriptorPayload}150100`;\n\n let httpMock: { get: ReturnType<typeof vi.fn> };\n let dataSource: HttpGatedDescriptorDataSource;\n\n beforeEach(() => {\n vi.clearAllMocks();\n httpMock = { get: vi.fn() };\n dataSource = new HttpGatedDescriptorDataSource(\n config,\n httpMock as unknown as DmkNetworkClient,\n );\n });\n\n describe(\"getGatedDescriptor\", () => {\n it(\"should return descriptor on successful request with correct URL and params\", async () => {\n httpMock.get.mockResolvedValue(validGatedDappsResponse);\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(httpMock.get).toHaveBeenCalledWith(\n `${config.cal.url}/gated_dapps`,\n {\n params: {\n ref: \"branch:next\",\n output: \"gated_descriptors,app,category\",\n contracts: contractAddress,\n chain_id: chainId,\n },\n },\n );\n expect(result).toEqual(\n Right({\n signedDescriptor: expectedSignedDescriptor,\n }),\n );\n });\n\n it(\"should find descriptor when API response has selector key without 0x prefix\", async () => {\n httpMock.get.mockResolvedValue(validGatedDappsResponse);\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector: \"0xa1251d75\",\n chainId,\n });\n\n expect(result).toEqual(\n Right({\n signedDescriptor: expectedSignedDescriptor,\n }),\n );\n });\n\n it(\"should return Left when response is not an array\", async () => {\n httpMock.get.mockResolvedValue({ gated_descriptors: {} });\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpGatedDescriptorDataSource: Invalid gated descriptors response\",\n ),\n ),\n );\n });\n\n it(\"should return Left when response is empty array\", async () => {\n httpMock.get.mockResolvedValue([]);\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpGatedDescriptorDataSource: Invalid gated descriptors response\",\n ),\n ),\n );\n });\n\n it(\"should return Left when no descriptor matches contract and selector\", async () => {\n httpMock.get.mockResolvedValue([\n {\n gated_descriptors: {\n \"0xothercontract\": {\n a1251d75: {\n descriptor: \"some-descriptor\",\n network: \"ethereum\",\n chain_id: 1,\n address: \"0xother\",\n selector: \"a1251d75\",\n version: \"v1\",\n },\n },\n },\n },\n ]);\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpGatedDescriptorDataSource: No gated descriptor for contract 0x1111111254fb6c44bac0bed2854e76f90643097d and selector 0xa1251d75\",\n ),\n ),\n );\n });\n\n it(\"should return Left when http.get request fails\", async () => {\n httpMock.get.mockRejectedValue(new Error(\"Network error\"));\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpGatedDescriptorDataSource: Failed to fetch gated descriptors: Error: Network error\",\n ),\n ),\n );\n });\n\n it(\"should use config.cal.branch in ref param\", async () => {\n const configMain: ContextModuleServiceConfig = {\n ...config,\n cal: { ...config.cal!, branch: \"main\" },\n } as ContextModuleServiceConfig;\n httpMock.get.mockResolvedValue(validGatedDappsResponse);\n\n const mainDataSource = new HttpGatedDescriptorDataSource(\n configMain,\n httpMock as unknown as DmkNetworkClient,\n );\n await mainDataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(httpMock.get).toHaveBeenCalledWith(\n `${config.cal.url}/gated_dapps`,\n expect.objectContaining({\n params: expect.objectContaining({ ref: \"branch:main\" }),\n }),\n );\n });\n\n describe(\"when response fails DTO validation\", () => {\n const invalidResponseError = new Error(\n \"[ContextModule] HttpGatedDescriptorDataSource: Invalid gated descriptors response\",\n );\n\n it(\"should return Left when array item has no gated_descriptors\", async () => {\n httpMock.get.mockResolvedValue([{}]);\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n\n it(\"should return Left when gated_descriptors is not an object\", async () => {\n httpMock.get.mockResolvedValue([\n { gated_descriptors: \"not-an-object\" },\n ]);\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n\n it(\"should return Left when entry is missing required field (descriptor)\", async () => {\n httpMock.get.mockResolvedValue([\n {\n gated_descriptors: {\n [contractAddress]: {\n a1251d75: {\n network: \"ethereum\",\n chain_id: 1,\n address: contractAddress,\n selector: \"a1251d75\",\n version: \"v1\",\n // descriptor missing\n },\n },\n },\n },\n ]);\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n\n it(\"should return Left when entry has wrong type for chain_id\", async () => {\n httpMock.get.mockResolvedValue([\n {\n gated_descriptors: {\n [contractAddress]: {\n a1251d75: {\n network: \"ethereum\",\n chain_id: \"1\", // string instead of number\n address: contractAddress,\n selector: \"a1251d75\",\n version: \"v1\",\n descriptor: descriptorPayload,\n signatures: { prod: \"00\", test: \"00\" },\n },\n },\n },\n },\n ]);\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n\n it(\"should return Left when entry signatures contains non-string value\", async () => {\n httpMock.get.mockResolvedValue([\n {\n gated_descriptors: {\n [contractAddress]: {\n a1251d75: {\n network: \"ethereum\",\n chain_id: 1,\n address: contractAddress,\n selector: \"a1251d75\",\n version: \"v1\",\n descriptor: descriptorPayload,\n signatures: { prod: 123 }, // number instead of string\n },\n },\n },\n },\n ]);\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n\n it(\"should return Left when array item is null\", async () => {\n httpMock.get.mockResolvedValue([null]);\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n\n it(\"should return Left when selectors map value is not an object\", async () => {\n httpMock.get.mockResolvedValue([\n {\n gated_descriptors: {\n [contractAddress]: \"not-a-selectors-map\",\n },\n },\n ]);\n\n const result = await dataSource.getGatedDescriptor({\n contractAddress,\n selector,\n chainId,\n });\n\n expect(result).toEqual(Left(invalidResponseError));\n });\n });\n });\n\n describe(\"getGatedDescriptorForTypedData\", () => {\n const schemaHash =\n \"4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3\";\n const descriptorPayloadTypedData =\n \"010122020101222a30783131313131313235346662366334346261633062656432383534653736663930363433303937642308000000000000000140086131323531643735\";\n const validTypedDataResponse = [\n {\n gated_descriptors: {\n [contractAddress]: {\n [schemaHash]: {\n network: \"ethereum\",\n chain_id: 1,\n address: contractAddress,\n selector: \"eip712\",\n version: \"v1\",\n descriptor: descriptorPayloadTypedData,\n signatures: { prod: \"00\", test: \"00\" },\n },\n },\n },\n },\n ];\n const expectedSignedDescriptorTypedData = `${descriptorPayloadTypedData}150100`;\n\n it(\"should return descriptor on successful request when keyed by schema hash\", async () => {\n httpMock.get.mockResolvedValue(validTypedDataResponse);\n\n const result = await dataSource.getGatedDescriptorForTypedData({\n contractAddress,\n schemaHash,\n chainId,\n });\n\n expect(httpMock.get).toHaveBeenCalledWith(\n `${config.cal.url}/gated_dapps`,\n {\n params: {\n ref: \"branch:next\",\n output: \"gated_descriptors\",\n contracts: contractAddress,\n chain_id: chainId,\n },\n },\n );\n expect(result).toEqual(\n Right({\n signedDescriptor: expectedSignedDescriptorTypedData,\n }),\n );\n });\n\n it(\"should return Left when no descriptor matches contract and schema hash\", async () => {\n httpMock.get.mockResolvedValue([\n {\n gated_descriptors: {\n [contractAddress]: {\n other_schema_hash: {\n descriptor: \"some-descriptor\",\n network: \"ethereum\",\n chain_id: 1,\n address: contractAddress,\n selector: \"eip712\",\n version: \"v1\",\n },\n },\n },\n },\n ]);\n\n const result = await dataSource.getGatedDescriptorForTypedData({\n contractAddress,\n schemaHash,\n chainId,\n });\n\n expect(result).toEqual(\n Left(\n new Error(\n `[ContextModule] HttpGatedDescriptorDataSource: No gated descriptor for contract ${contractAddress} and schema hash ${schemaHash}`,\n ),\n ),\n );\n });\n\n it(\"should return Left when http.get request fails\", async () => {\n httpMock.get.mockRejectedValue(new Error(\"Network error\"));\n\n const result = await dataSource.getGatedDescriptorForTypedData({\n contractAddress,\n schemaHash,\n chainId,\n });\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpGatedDescriptorDataSource: Failed to fetch gated descriptors: Error: Network error\",\n ),\n ),\n );\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_purify_ts", "import_HttpGatedDescriptorDataSource", "config", "contractAddress", "selector", "chainId", "descriptorPayload", "validGatedDappsResponse", "expectedSignedDescriptor", "httpMock", "dataSource", "result", "configMain", "invalidResponseError", "schemaHash", "descriptorPayloadTypedData", "validTypedDataResponse", "expectedSignedDescriptorTypedData"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var C=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var p=(t,e,f,m)=>{if(e&&typeof e=="object"||typeof e=="function")for(let x of l(e))!d.call(t,x)&&x!==f&&C(t,x,{get:()=>e[x],enumerable:!(m=n(e,x))||m.enumerable});return t},r=(t,e,f)=>(p(t,e,"default"),f&&p(f,e,"default"));var M=t=>p(C({},"__esModule",{value:!0}),t);var o={};module.exports=M(o);r(o,require("./calldata/data/CalldataDescriptorDataSource"),module.exports);r(o,require("./calldata/data/HttpCalldataDescriptorDataSource"),module.exports);r(o,require("./calldata/domain/CalldataContextLoader"),module.exports);r(o,require("./ContextModule"),module.exports);r(o,require("./ContextModuleBuilder"),module.exports);r(o,require("./DefaultContextModule"),module.exports);r(o,require("./dynamic-network/data/DynamicNetworkDataSource"),module.exports);r(o,require("./dynamic-network/data/HttpDynamicNetworkDataSource"),module.exports);r(o,require("./dynamic-network/domain/DynamicNetworkContextLoader"),module.exports);r(o,require("./dynamic-network/model/DynamicNetworkConfiguration"),module.exports);r(o,require("./external-plugin/data/ExternalPluginDataSource"),module.exports);r(o,require("./external-plugin/data/HttpExternalPluginDataSource"),module.exports);r(o,require("./external-plugin/domain/ExternalPluginContextLoader"),module.exports);r(o,require("./gated-signing/data/GatedDescriptorDataSource"),module.exports);r(o,require("./gated-signing/data/HttpGatedDescriptorDataSource"),module.exports);r(o,require("./gated-signing/domain/GatedSigningContextLoader"),module.exports);r(o,require("./gated-signing/domain/GatedSigningTypedDataContextLoader"),module.exports);r(o,require("./nft/data/HttpNftDataSource"),module.exports);r(o,require("./nft/data/NftDataSource"),module.exports);r(o,require("./nft/domain/NftContextFieldLoader"),module.exports);r(o,require("./nft/domain/NftContextLoader"),module.exports);r(o,require("./pki/data/HttpPkiCertificateDataSource"),module.exports);r(o,require("./pki/data/PkiCertificateDataSource"),module.exports);r(o,require("./pki/domain/DefaultPkiCertificateLoader"),module.exports);r(o,require("./pki/domain/PkiCertificateLoader"),module.exports);r(o,require("./pki/model/KeyId"),module.exports);r(o,require("./pki/model/KeyUsage"),module.exports);r(o,require("./pki/model/PkiCertificate"),module.exports);r(o,require("./pki/model/PkiCertificateInfo"),module.exports);r(o,require("./proxy/data/HttpProxyDataSource"),module.exports);r(o,require("./proxy/data/HttpSafeProxyDataSource"),module.exports);r(o,require("./proxy/data/ProxyDataSource"),module.exports);r(o,require("./proxy/domain/ProxyContextFieldLoader"),module.exports);r(o,require("./reporter/data/BlindSigningReporterDatasource"),module.exports);r(o,require("./reporter/data/HttpBlindSigningReporterDatasource"),module.exports);r(o,require("./reporter/domain/BlindSigningReporter"),module.exports);r(o,require("./reporter/domain/DefaultBlindSigningReporter"),module.exports);r(o,require("./reporter/model/BlindSigningEvent"),module.exports);r(o,require("./reporter/model/BlindSigningModelId"),module.exports);r(o,require("./shared/domain/ContextFieldLoader"),module.exports);r(o,require("./shared/domain/ContextLoader"),module.exports);r(o,require("./shared/model/ClearSignContext"),module.exports);r(o,require("./shared/model/GenericPath"),module.exports);r(o,require("./shared/model/SolanaContextTypes"),module.exports);r(o,require("./shared/model/TransactionSubset"),module.exports);r(o,require("./shared/model/TypedDataClearSignContext"),module.exports);r(o,require("./shared/model/TypedDataContext"),module.exports);r(o,require("./solana/data/HttpSolanaOwnerInfoDataSource"),module.exports);r(o,require("./solana/data/SolanaDataSource"),module.exports);r(o,require("./solana/domain/DefaultSolanaContextLoader"),module.exports);r(o,require("./solana/domain/SolanaContextLoader"),module.exports);r(o,require("./solana/domain/solanaContextTypes"),module.exports);r(o,require("./token/data/HttpTokenDataSource"),module.exports);r(o,require("./token/data/TokenDataSource"),module.exports);r(o,require("./token/domain/TokenContextFieldLoader"),module.exports);r(o,require("./token/domain/TokenContextLoader"),module.exports);r(o,require("./trusted-name/data/HttpTrustedNameDataSource"),module.exports);r(o,require("./trusted-name/data/TrustedNameDataSource"),module.exports);r(o,require("./trusted-name/domain/TrustedNameContextFieldLoader"),module.exports);r(o,require("./trusted-name/domain/TrustedNameContextLoader"),module.exports);r(o,require("./typed-data/data/HttpTypedDataDataSource"),module.exports);r(o,require("./typed-data/data/TypedDataDataSource"),module.exports);r(o,require("./typed-data/domain/DefaultTypedDataContextLoader"),module.exports);r(o,require("./typed-data/domain/TypedDataContextLoader"),module.exports);r(o,require("./typed-data/utils/getSchemaHash"),module.exports);r(o,require("./uniswap/data/AbiDecoderDataSource"),module.exports);r(o,require("./uniswap/data/CommandDecoderDataSource"),module.exports);r(o,require("./uniswap/data/DefaultCommandDecoderDataSource"),module.exports);r(o,require("./uniswap/data/EthersAbiDecoderDataSource"),module.exports);r(o,require("./uniswap/domain/UniswapContextLoader"),module.exports);0&&(module.exports={...require("./calldata/data/CalldataDescriptorDataSource"),...require("./calldata/data/HttpCalldataDescriptorDataSource"),...require("./calldata/domain/CalldataContextLoader"),...require("./ContextModule"),...require("./ContextModuleBuilder"),...require("./DefaultContextModule"),...require("./dynamic-network/data/DynamicNetworkDataSource"),...require("./dynamic-network/data/HttpDynamicNetworkDataSource"),...require("./dynamic-network/domain/DynamicNetworkContextLoader"),...require("./dynamic-network/model/DynamicNetworkConfiguration"),...require("./external-plugin/data/ExternalPluginDataSource"),...require("./external-plugin/data/HttpExternalPluginDataSource"),...require("./external-plugin/domain/ExternalPluginContextLoader"),...require("./gated-signing/data/GatedDescriptorDataSource"),...require("./gated-signing/data/HttpGatedDescriptorDataSource"),...require("./gated-signing/domain/GatedSigningContextLoader"),...require("./gated-signing/domain/GatedSigningTypedDataContextLoader"),...require("./nft/data/HttpNftDataSource"),...require("./nft/data/NftDataSource"),...require("./nft/domain/NftContextFieldLoader"),...require("./nft/domain/NftContextLoader"),...require("./pki/data/HttpPkiCertificateDataSource"),...require("./pki/data/PkiCertificateDataSource"),...require("./pki/domain/DefaultPkiCertificateLoader"),...require("./pki/domain/PkiCertificateLoader"),...require("./pki/model/KeyId"),...require("./pki/model/KeyUsage"),...require("./pki/model/PkiCertificate"),...require("./pki/model/PkiCertificateInfo"),...require("./proxy/data/HttpProxyDataSource"),...require("./proxy/data/HttpSafeProxyDataSource"),...require("./proxy/data/ProxyDataSource"),...require("./proxy/domain/ProxyContextFieldLoader"),...require("./reporter/data/BlindSigningReporterDatasource"),...require("./reporter/data/HttpBlindSigningReporterDatasource"),...require("./reporter/domain/BlindSigningReporter"),...require("./reporter/domain/DefaultBlindSigningReporter"),...require("./reporter/model/BlindSigningEvent"),...require("./reporter/model/BlindSigningModelId"),...require("./shared/domain/ContextFieldLoader"),...require("./shared/domain/ContextLoader"),...require("./shared/model/ClearSignContext"),...require("./shared/model/GenericPath"),...require("./shared/model/SolanaContextTypes"),...require("./shared/model/TransactionSubset"),...require("./shared/model/TypedDataClearSignContext"),...require("./shared/model/TypedDataContext"),...require("./solana/data/HttpSolanaOwnerInfoDataSource"),...require("./solana/data/SolanaDataSource"),...require("./solana/domain/DefaultSolanaContextLoader"),...require("./solana/domain/SolanaContextLoader"),...require("./solana/domain/solanaContextTypes"),...require("./token/data/HttpTokenDataSource"),...require("./token/data/TokenDataSource"),...require("./token/domain/TokenContextFieldLoader"),...require("./token/domain/TokenContextLoader"),...require("./trusted-name/data/HttpTrustedNameDataSource"),...require("./trusted-name/data/TrustedNameDataSource"),...require("./trusted-name/domain/TrustedNameContextFieldLoader"),...require("./trusted-name/domain/TrustedNameContextLoader"),...require("./typed-data/data/HttpTypedDataDataSource"),...require("./typed-data/data/TypedDataDataSource"),...require("./typed-data/domain/DefaultTypedDataContextLoader"),...require("./typed-data/domain/TypedDataContextLoader"),...require("./typed-data/utils/getSchemaHash"),...require("./uniswap/data/AbiDecoderDataSource"),...require("./uniswap/data/CommandDecoderDataSource"),...require("./uniswap/data/DefaultCommandDecoderDataSource"),...require("./uniswap/data/EthersAbiDecoderDataSource"),...require("./uniswap/domain/UniswapContextLoader")});
1
+ "use strict";var C=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var p=(t,e,f,m)=>{if(e&&typeof e=="object"||typeof e=="function")for(let x of l(e))!d.call(t,x)&&x!==f&&C(t,x,{get:()=>e[x],enumerable:!(m=n(e,x))||m.enumerable});return t},r=(t,e,f)=>(p(t,e,"default"),f&&p(f,e,"default"));var M=t=>p(C({},"__esModule",{value:!0}),t);var o={};module.exports=M(o);r(o,require("./account-ownership/data/AccountOwnershipDataSource"),module.exports);r(o,require("./account-ownership/data/AccountOwnershipError"),module.exports);r(o,require("./account-ownership/data/HttpAccountOwnershipDataSource"),module.exports);r(o,require("./account-ownership/domain/AccountOwnershipContextLoader"),module.exports);r(o,require("./calldata/data/CalldataDescriptorDataSource"),module.exports);r(o,require("./calldata/data/HttpCalldataDescriptorDataSource"),module.exports);r(o,require("./calldata/domain/CalldataContextLoader"),module.exports);r(o,require("./ContextModule"),module.exports);r(o,require("./ContextModuleBuilder"),module.exports);r(o,require("./DefaultContextModule"),module.exports);r(o,require("./dynamic-network/data/DynamicNetworkDataSource"),module.exports);r(o,require("./dynamic-network/data/HttpDynamicNetworkDataSource"),module.exports);r(o,require("./dynamic-network/domain/DynamicNetworkContextLoader"),module.exports);r(o,require("./dynamic-network/model/DynamicNetworkConfiguration"),module.exports);r(o,require("./external-plugin/data/ExternalPluginDataSource"),module.exports);r(o,require("./external-plugin/data/HttpExternalPluginDataSource"),module.exports);r(o,require("./external-plugin/domain/ExternalPluginContextLoader"),module.exports);r(o,require("./gated-signing/data/GatedDescriptorDataSource"),module.exports);r(o,require("./gated-signing/data/HttpGatedDescriptorDataSource"),module.exports);r(o,require("./gated-signing/domain/GatedSigningContextLoader"),module.exports);r(o,require("./gated-signing/domain/GatedSigningTypedDataContextLoader"),module.exports);r(o,require("./nft/data/HttpNftDataSource"),module.exports);r(o,require("./nft/data/NftDataSource"),module.exports);r(o,require("./nft/domain/NftContextFieldLoader"),module.exports);r(o,require("./nft/domain/NftContextLoader"),module.exports);r(o,require("./pki/data/HttpPkiCertificateDataSource"),module.exports);r(o,require("./pki/data/PkiCertificateDataSource"),module.exports);r(o,require("./pki/domain/DefaultPkiCertificateLoader"),module.exports);r(o,require("./pki/domain/PkiCertificateLoader"),module.exports);r(o,require("./pki/model/KeyId"),module.exports);r(o,require("./pki/model/KeyUsage"),module.exports);r(o,require("./pki/model/PkiCertificate"),module.exports);r(o,require("./pki/model/PkiCertificateInfo"),module.exports);r(o,require("./proxy/data/HttpProxyDataSource"),module.exports);r(o,require("./proxy/data/HttpSafeProxyDataSource"),module.exports);r(o,require("./proxy/data/ProxyDataSource"),module.exports);r(o,require("./proxy/domain/ProxyContextFieldLoader"),module.exports);r(o,require("./reporter/data/BlindSigningReporterDatasource"),module.exports);r(o,require("./reporter/data/HttpBlindSigningReporterDatasource"),module.exports);r(o,require("./reporter/domain/BlindSigningReporter"),module.exports);r(o,require("./reporter/domain/DefaultBlindSigningReporter"),module.exports);r(o,require("./reporter/model/BlindSigningEvent"),module.exports);r(o,require("./reporter/model/BlindSigningModelId"),module.exports);r(o,require("./shared/domain/ContextFieldLoader"),module.exports);r(o,require("./shared/domain/ContextLoader"),module.exports);r(o,require("./shared/model/ClearSignContext"),module.exports);r(o,require("./shared/model/GenericPath"),module.exports);r(o,require("./shared/model/SolanaContextTypes"),module.exports);r(o,require("./shared/model/TransactionSubset"),module.exports);r(o,require("./shared/model/TypedDataClearSignContext"),module.exports);r(o,require("./shared/model/TypedDataContext"),module.exports);r(o,require("./solana/data/HttpSolanaOwnerInfoDataSource"),module.exports);r(o,require("./solana/data/SolanaDataSource"),module.exports);r(o,require("./solana/domain/DefaultSolanaContextLoader"),module.exports);r(o,require("./solana/domain/SolanaContextLoader"),module.exports);r(o,require("./solana/domain/solanaContextTypes"),module.exports);r(o,require("./token/data/HttpTokenDataSource"),module.exports);r(o,require("./token/data/TokenDataSource"),module.exports);r(o,require("./token/domain/TokenContextFieldLoader"),module.exports);r(o,require("./token/domain/TokenContextLoader"),module.exports);r(o,require("./trusted-name/data/HttpTrustedNameDataSource"),module.exports);r(o,require("./trusted-name/data/TrustedNameDataSource"),module.exports);r(o,require("./trusted-name/domain/TrustedNameContextFieldLoader"),module.exports);r(o,require("./trusted-name/domain/TrustedNameContextLoader"),module.exports);r(o,require("./typed-data/data/HttpTypedDataDataSource"),module.exports);r(o,require("./typed-data/data/TypedDataDataSource"),module.exports);r(o,require("./typed-data/domain/DefaultTypedDataContextLoader"),module.exports);r(o,require("./typed-data/domain/TypedDataContextLoader"),module.exports);r(o,require("./typed-data/utils/getSchemaHash"),module.exports);r(o,require("./uniswap/data/AbiDecoderDataSource"),module.exports);r(o,require("./uniswap/data/CommandDecoderDataSource"),module.exports);r(o,require("./uniswap/data/DefaultCommandDecoderDataSource"),module.exports);r(o,require("./uniswap/data/EthersAbiDecoderDataSource"),module.exports);r(o,require("./uniswap/domain/UniswapContextLoader"),module.exports);0&&(module.exports={...require("./account-ownership/data/AccountOwnershipDataSource"),...require("./account-ownership/data/AccountOwnershipError"),...require("./account-ownership/data/HttpAccountOwnershipDataSource"),...require("./account-ownership/domain/AccountOwnershipContextLoader"),...require("./calldata/data/CalldataDescriptorDataSource"),...require("./calldata/data/HttpCalldataDescriptorDataSource"),...require("./calldata/domain/CalldataContextLoader"),...require("./ContextModule"),...require("./ContextModuleBuilder"),...require("./DefaultContextModule"),...require("./dynamic-network/data/DynamicNetworkDataSource"),...require("./dynamic-network/data/HttpDynamicNetworkDataSource"),...require("./dynamic-network/domain/DynamicNetworkContextLoader"),...require("./dynamic-network/model/DynamicNetworkConfiguration"),...require("./external-plugin/data/ExternalPluginDataSource"),...require("./external-plugin/data/HttpExternalPluginDataSource"),...require("./external-plugin/domain/ExternalPluginContextLoader"),...require("./gated-signing/data/GatedDescriptorDataSource"),...require("./gated-signing/data/HttpGatedDescriptorDataSource"),...require("./gated-signing/domain/GatedSigningContextLoader"),...require("./gated-signing/domain/GatedSigningTypedDataContextLoader"),...require("./nft/data/HttpNftDataSource"),...require("./nft/data/NftDataSource"),...require("./nft/domain/NftContextFieldLoader"),...require("./nft/domain/NftContextLoader"),...require("./pki/data/HttpPkiCertificateDataSource"),...require("./pki/data/PkiCertificateDataSource"),...require("./pki/domain/DefaultPkiCertificateLoader"),...require("./pki/domain/PkiCertificateLoader"),...require("./pki/model/KeyId"),...require("./pki/model/KeyUsage"),...require("./pki/model/PkiCertificate"),...require("./pki/model/PkiCertificateInfo"),...require("./proxy/data/HttpProxyDataSource"),...require("./proxy/data/HttpSafeProxyDataSource"),...require("./proxy/data/ProxyDataSource"),...require("./proxy/domain/ProxyContextFieldLoader"),...require("./reporter/data/BlindSigningReporterDatasource"),...require("./reporter/data/HttpBlindSigningReporterDatasource"),...require("./reporter/domain/BlindSigningReporter"),...require("./reporter/domain/DefaultBlindSigningReporter"),...require("./reporter/model/BlindSigningEvent"),...require("./reporter/model/BlindSigningModelId"),...require("./shared/domain/ContextFieldLoader"),...require("./shared/domain/ContextLoader"),...require("./shared/model/ClearSignContext"),...require("./shared/model/GenericPath"),...require("./shared/model/SolanaContextTypes"),...require("./shared/model/TransactionSubset"),...require("./shared/model/TypedDataClearSignContext"),...require("./shared/model/TypedDataContext"),...require("./solana/data/HttpSolanaOwnerInfoDataSource"),...require("./solana/data/SolanaDataSource"),...require("./solana/domain/DefaultSolanaContextLoader"),...require("./solana/domain/SolanaContextLoader"),...require("./solana/domain/solanaContextTypes"),...require("./token/data/HttpTokenDataSource"),...require("./token/data/TokenDataSource"),...require("./token/domain/TokenContextFieldLoader"),...require("./token/domain/TokenContextLoader"),...require("./trusted-name/data/HttpTrustedNameDataSource"),...require("./trusted-name/data/TrustedNameDataSource"),...require("./trusted-name/domain/TrustedNameContextFieldLoader"),...require("./trusted-name/domain/TrustedNameContextLoader"),...require("./typed-data/data/HttpTypedDataDataSource"),...require("./typed-data/data/TypedDataDataSource"),...require("./typed-data/domain/DefaultTypedDataContextLoader"),...require("./typed-data/domain/TypedDataContextLoader"),...require("./typed-data/utils/getSchemaHash"),...require("./uniswap/data/AbiDecoderDataSource"),...require("./uniswap/data/CommandDecoderDataSource"),...require("./uniswap/data/DefaultCommandDecoderDataSource"),...require("./uniswap/data/EthersAbiDecoderDataSource"),...require("./uniswap/domain/UniswapContextLoader")});
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/index.ts"],
4
- "sourcesContent": ["export * from \"./calldata/data/CalldataDescriptorDataSource\";\nexport * from \"./calldata/data/HttpCalldataDescriptorDataSource\";\nexport * from \"./calldata/domain/CalldataContextLoader\";\nexport type {\n ContextModuleCalBranch,\n ContextModuleCalConfig,\n ContextModuleCalMode,\n ContextModuleConfig,\n ContextModuleDatasourceConfig,\n ContextModuleMetadataServiceConfig,\n ContextModuleReporterConfig,\n ContextModuleWeb3ChecksConfig,\n} from \"./config/model/ContextModuleConfig\";\nexport * from \"./ContextModule\";\nexport * from \"./ContextModuleBuilder\";\nexport * from \"./DefaultContextModule\";\nexport * from \"./dynamic-network/data/DynamicNetworkDataSource\";\nexport * from \"./dynamic-network/data/HttpDynamicNetworkDataSource\";\nexport * from \"./dynamic-network/domain/DynamicNetworkContextLoader\";\nexport * from \"./dynamic-network/model/DynamicNetworkConfiguration\";\nexport * from \"./external-plugin/data/ExternalPluginDataSource\";\nexport * from \"./external-plugin/data/HttpExternalPluginDataSource\";\nexport * from \"./external-plugin/domain/ExternalPluginContextLoader\";\nexport * from \"./gated-signing/data/GatedDescriptorDataSource\";\nexport * from \"./gated-signing/data/HttpGatedDescriptorDataSource\";\nexport * from \"./gated-signing/domain/GatedSigningContextLoader\";\nexport * from \"./gated-signing/domain/GatedSigningTypedDataContextLoader\";\nexport * from \"./nft/data/HttpNftDataSource\";\nexport * from \"./nft/data/NftDataSource\";\nexport * from \"./nft/domain/NftContextFieldLoader\";\nexport * from \"./nft/domain/NftContextLoader\";\nexport * from \"./pki/data/HttpPkiCertificateDataSource\";\nexport * from \"./pki/data/PkiCertificateDataSource\";\nexport * from \"./pki/domain/DefaultPkiCertificateLoader\";\nexport * from \"./pki/domain/PkiCertificateLoader\";\nexport * from \"./pki/model/KeyId\";\nexport * from \"./pki/model/KeyUsage\";\nexport * from \"./pki/model/PkiCertificate\";\nexport * from \"./pki/model/PkiCertificateInfo\";\nexport * from \"./proxy/data/HttpProxyDataSource\";\nexport * from \"./proxy/data/HttpSafeProxyDataSource\";\nexport * from \"./proxy/data/ProxyDataSource\";\nexport * from \"./proxy/domain/ProxyContextFieldLoader\";\nexport * from \"./reporter/data/BlindSigningReporterDatasource\";\nexport * from \"./reporter/data/HttpBlindSigningReporterDatasource\";\nexport * from \"./reporter/domain/BlindSigningReporter\";\nexport * from \"./reporter/domain/DefaultBlindSigningReporter\";\nexport * from \"./reporter/model/BlindSigningEvent\";\nexport * from \"./reporter/model/BlindSigningModelId\";\nexport * from \"./shared/domain/ContextFieldLoader\";\nexport * from \"./shared/domain/ContextLoader\";\nexport * from \"./shared/model/ClearSignContext\";\nexport * from \"./shared/model/GenericPath\";\nexport * from \"./shared/model/SolanaContextTypes\";\nexport * from \"./shared/model/TransactionSubset\";\nexport * from \"./shared/model/TypedDataClearSignContext\";\nexport * from \"./shared/model/TypedDataContext\";\nexport * from \"./solana/data/HttpSolanaOwnerInfoDataSource\";\nexport * from \"./solana/data/SolanaDataSource\";\nexport * from \"./solana/domain/DefaultSolanaContextLoader\";\nexport * from \"./solana/domain/SolanaContextLoader\";\nexport * from \"./solana/domain/solanaContextTypes\";\nexport * from \"./token/data/HttpTokenDataSource\";\nexport * from \"./token/data/TokenDataSource\";\nexport * from \"./token/domain/TokenContextFieldLoader\";\nexport * from \"./token/domain/TokenContextLoader\";\nexport * from \"./trusted-name/data/HttpTrustedNameDataSource\";\nexport * from \"./trusted-name/data/TrustedNameDataSource\";\nexport * from \"./trusted-name/domain/TrustedNameContextFieldLoader\";\nexport * from \"./trusted-name/domain/TrustedNameContextLoader\";\nexport * from \"./typed-data/data/HttpTypedDataDataSource\";\nexport * from \"./typed-data/data/TypedDataDataSource\";\nexport * from \"./typed-data/domain/DefaultTypedDataContextLoader\";\nexport * from \"./typed-data/domain/TypedDataContextLoader\";\nexport * from \"./typed-data/utils/getSchemaHash\";\nexport * from \"./uniswap/data/AbiDecoderDataSource\";\nexport * from \"./uniswap/data/CommandDecoderDataSource\";\nexport * from \"./uniswap/data/DefaultCommandDecoderDataSource\";\nexport * from \"./uniswap/data/EthersAbiDecoderDataSource\";\nexport * from \"./uniswap/domain/UniswapContextLoader\";\n"],
5
- "mappings": "iaAAA,IAAAA,EAAA,kBAAAC,EAAAD,GAAAE,EAAAF,EAAc,wDAAd,gBACAE,EAAAF,EAAc,4DADd,gBAEAE,EAAAF,EAAc,mDAFd,gBAaAE,EAAAF,EAAc,2BAbd,gBAcAE,EAAAF,EAAc,kCAdd,gBAeAE,EAAAF,EAAc,kCAfd,gBAgBAE,EAAAF,EAAc,2DAhBd,gBAiBAE,EAAAF,EAAc,+DAjBd,gBAkBAE,EAAAF,EAAc,gEAlBd,gBAmBAE,EAAAF,EAAc,+DAnBd,gBAoBAE,EAAAF,EAAc,2DApBd,gBAqBAE,EAAAF,EAAc,+DArBd,gBAsBAE,EAAAF,EAAc,gEAtBd,gBAuBAE,EAAAF,EAAc,0DAvBd,gBAwBAE,EAAAF,EAAc,8DAxBd,gBAyBAE,EAAAF,EAAc,4DAzBd,gBA0BAE,EAAAF,EAAc,qEA1Bd,gBA2BAE,EAAAF,EAAc,wCA3Bd,gBA4BAE,EAAAF,EAAc,oCA5Bd,gBA6BAE,EAAAF,EAAc,8CA7Bd,gBA8BAE,EAAAF,EAAc,yCA9Bd,gBA+BAE,EAAAF,EAAc,mDA/Bd,gBAgCAE,EAAAF,EAAc,+CAhCd,gBAiCAE,EAAAF,EAAc,oDAjCd,gBAkCAE,EAAAF,EAAc,6CAlCd,gBAmCAE,EAAAF,EAAc,6BAnCd,gBAoCAE,EAAAF,EAAc,gCApCd,gBAqCAE,EAAAF,EAAc,sCArCd,gBAsCAE,EAAAF,EAAc,0CAtCd,gBAuCAE,EAAAF,EAAc,4CAvCd,gBAwCAE,EAAAF,EAAc,gDAxCd,gBAyCAE,EAAAF,EAAc,wCAzCd,gBA0CAE,EAAAF,EAAc,kDA1Cd,gBA2CAE,EAAAF,EAAc,0DA3Cd,gBA4CAE,EAAAF,EAAc,8DA5Cd,gBA6CAE,EAAAF,EAAc,kDA7Cd,gBA8CAE,EAAAF,EAAc,yDA9Cd,gBA+CAE,EAAAF,EAAc,8CA/Cd,gBAgDAE,EAAAF,EAAc,gDAhDd,gBAiDAE,EAAAF,EAAc,8CAjDd,gBAkDAE,EAAAF,EAAc,yCAlDd,gBAmDAE,EAAAF,EAAc,2CAnDd,gBAoDAE,EAAAF,EAAc,sCApDd,gBAqDAE,EAAAF,EAAc,6CArDd,gBAsDAE,EAAAF,EAAc,4CAtDd,gBAuDAE,EAAAF,EAAc,oDAvDd,gBAwDAE,EAAAF,EAAc,2CAxDd,gBAyDAE,EAAAF,EAAc,uDAzDd,gBA0DAE,EAAAF,EAAc,0CA1Dd,gBA2DAE,EAAAF,EAAc,sDA3Dd,gBA4DAE,EAAAF,EAAc,+CA5Dd,gBA6DAE,EAAAF,EAAc,8CA7Dd,gBA8DAE,EAAAF,EAAc,4CA9Dd,gBA+DAE,EAAAF,EAAc,wCA/Dd,gBAgEAE,EAAAF,EAAc,kDAhEd,gBAiEAE,EAAAF,EAAc,6CAjEd,gBAkEAE,EAAAF,EAAc,yDAlEd,gBAmEAE,EAAAF,EAAc,qDAnEd,gBAoEAE,EAAAF,EAAc,+DApEd,gBAqEAE,EAAAF,EAAc,0DArEd,gBAsEAE,EAAAF,EAAc,qDAtEd,gBAuEAE,EAAAF,EAAc,iDAvEd,gBAwEAE,EAAAF,EAAc,6DAxEd,gBAyEAE,EAAAF,EAAc,sDAzEd,gBA0EAE,EAAAF,EAAc,4CA1Ed,gBA2EAE,EAAAF,EAAc,+CA3Ed,gBA4EAE,EAAAF,EAAc,mDA5Ed,gBA6EAE,EAAAF,EAAc,0DA7Ed,gBA8EAE,EAAAF,EAAc,qDA9Ed,gBA+EAE,EAAAF,EAAc,iDA/Ed",
4
+ "sourcesContent": ["export * from \"./account-ownership/data/AccountOwnershipDataSource\";\nexport * from \"./account-ownership/data/AccountOwnershipError\";\nexport * from \"./account-ownership/data/HttpAccountOwnershipDataSource\";\nexport * from \"./account-ownership/domain/AccountOwnershipContextLoader\";\nexport * from \"./calldata/data/CalldataDescriptorDataSource\";\nexport * from \"./calldata/data/HttpCalldataDescriptorDataSource\";\nexport * from \"./calldata/domain/CalldataContextLoader\";\nexport type {\n ContextModuleCalBranch,\n ContextModuleCalConfig,\n ContextModuleCalMode,\n ContextModuleConfig,\n ContextModuleDatasourceConfig,\n ContextModuleMetadataServiceConfig,\n ContextModuleReporterConfig,\n ContextModuleWeb3ChecksConfig,\n} from \"./config/model/ContextModuleConfig\";\nexport * from \"./ContextModule\";\nexport * from \"./ContextModuleBuilder\";\nexport * from \"./DefaultContextModule\";\nexport * from \"./dynamic-network/data/DynamicNetworkDataSource\";\nexport * from \"./dynamic-network/data/HttpDynamicNetworkDataSource\";\nexport * from \"./dynamic-network/domain/DynamicNetworkContextLoader\";\nexport * from \"./dynamic-network/model/DynamicNetworkConfiguration\";\nexport * from \"./external-plugin/data/ExternalPluginDataSource\";\nexport * from \"./external-plugin/data/HttpExternalPluginDataSource\";\nexport * from \"./external-plugin/domain/ExternalPluginContextLoader\";\nexport * from \"./gated-signing/data/GatedDescriptorDataSource\";\nexport * from \"./gated-signing/data/HttpGatedDescriptorDataSource\";\nexport * from \"./gated-signing/domain/GatedSigningContextLoader\";\nexport * from \"./gated-signing/domain/GatedSigningTypedDataContextLoader\";\nexport * from \"./nft/data/HttpNftDataSource\";\nexport * from \"./nft/data/NftDataSource\";\nexport * from \"./nft/domain/NftContextFieldLoader\";\nexport * from \"./nft/domain/NftContextLoader\";\nexport * from \"./pki/data/HttpPkiCertificateDataSource\";\nexport * from \"./pki/data/PkiCertificateDataSource\";\nexport * from \"./pki/domain/DefaultPkiCertificateLoader\";\nexport * from \"./pki/domain/PkiCertificateLoader\";\nexport * from \"./pki/model/KeyId\";\nexport * from \"./pki/model/KeyUsage\";\nexport * from \"./pki/model/PkiCertificate\";\nexport * from \"./pki/model/PkiCertificateInfo\";\nexport * from \"./proxy/data/HttpProxyDataSource\";\nexport * from \"./proxy/data/HttpSafeProxyDataSource\";\nexport * from \"./proxy/data/ProxyDataSource\";\nexport * from \"./proxy/domain/ProxyContextFieldLoader\";\nexport * from \"./reporter/data/BlindSigningReporterDatasource\";\nexport * from \"./reporter/data/HttpBlindSigningReporterDatasource\";\nexport * from \"./reporter/domain/BlindSigningReporter\";\nexport * from \"./reporter/domain/DefaultBlindSigningReporter\";\nexport * from \"./reporter/model/BlindSigningEvent\";\nexport * from \"./reporter/model/BlindSigningModelId\";\nexport * from \"./shared/domain/ContextFieldLoader\";\nexport * from \"./shared/domain/ContextLoader\";\nexport * from \"./shared/model/ClearSignContext\";\nexport * from \"./shared/model/GenericPath\";\nexport * from \"./shared/model/SolanaContextTypes\";\nexport * from \"./shared/model/TransactionSubset\";\nexport * from \"./shared/model/TypedDataClearSignContext\";\nexport * from \"./shared/model/TypedDataContext\";\nexport * from \"./solana/data/HttpSolanaOwnerInfoDataSource\";\nexport * from \"./solana/data/SolanaDataSource\";\nexport * from \"./solana/domain/DefaultSolanaContextLoader\";\nexport * from \"./solana/domain/SolanaContextLoader\";\nexport * from \"./solana/domain/solanaContextTypes\";\nexport * from \"./token/data/HttpTokenDataSource\";\nexport * from \"./token/data/TokenDataSource\";\nexport * from \"./token/domain/TokenContextFieldLoader\";\nexport * from \"./token/domain/TokenContextLoader\";\nexport * from \"./trusted-name/data/HttpTrustedNameDataSource\";\nexport * from \"./trusted-name/data/TrustedNameDataSource\";\nexport * from \"./trusted-name/domain/TrustedNameContextFieldLoader\";\nexport * from \"./trusted-name/domain/TrustedNameContextLoader\";\nexport * from \"./typed-data/data/HttpTypedDataDataSource\";\nexport * from \"./typed-data/data/TypedDataDataSource\";\nexport * from \"./typed-data/domain/DefaultTypedDataContextLoader\";\nexport * from \"./typed-data/domain/TypedDataContextLoader\";\nexport * from \"./typed-data/utils/getSchemaHash\";\nexport * from \"./uniswap/data/AbiDecoderDataSource\";\nexport * from \"./uniswap/data/CommandDecoderDataSource\";\nexport * from \"./uniswap/data/DefaultCommandDecoderDataSource\";\nexport * from \"./uniswap/data/EthersAbiDecoderDataSource\";\nexport * from \"./uniswap/domain/UniswapContextLoader\";\n"],
5
+ "mappings": "iaAAA,IAAAA,EAAA,kBAAAC,EAAAD,GAAAE,EAAAF,EAAc,+DAAd,gBACAE,EAAAF,EAAc,0DADd,gBAEAE,EAAAF,EAAc,mEAFd,gBAGAE,EAAAF,EAAc,oEAHd,gBAIAE,EAAAF,EAAc,wDAJd,gBAKAE,EAAAF,EAAc,4DALd,gBAMAE,EAAAF,EAAc,mDANd,gBAiBAE,EAAAF,EAAc,2BAjBd,gBAkBAE,EAAAF,EAAc,kCAlBd,gBAmBAE,EAAAF,EAAc,kCAnBd,gBAoBAE,EAAAF,EAAc,2DApBd,gBAqBAE,EAAAF,EAAc,+DArBd,gBAsBAE,EAAAF,EAAc,gEAtBd,gBAuBAE,EAAAF,EAAc,+DAvBd,gBAwBAE,EAAAF,EAAc,2DAxBd,gBAyBAE,EAAAF,EAAc,+DAzBd,gBA0BAE,EAAAF,EAAc,gEA1Bd,gBA2BAE,EAAAF,EAAc,0DA3Bd,gBA4BAE,EAAAF,EAAc,8DA5Bd,gBA6BAE,EAAAF,EAAc,4DA7Bd,gBA8BAE,EAAAF,EAAc,qEA9Bd,gBA+BAE,EAAAF,EAAc,wCA/Bd,gBAgCAE,EAAAF,EAAc,oCAhCd,gBAiCAE,EAAAF,EAAc,8CAjCd,gBAkCAE,EAAAF,EAAc,yCAlCd,gBAmCAE,EAAAF,EAAc,mDAnCd,gBAoCAE,EAAAF,EAAc,+CApCd,gBAqCAE,EAAAF,EAAc,oDArCd,gBAsCAE,EAAAF,EAAc,6CAtCd,gBAuCAE,EAAAF,EAAc,6BAvCd,gBAwCAE,EAAAF,EAAc,gCAxCd,gBAyCAE,EAAAF,EAAc,sCAzCd,gBA0CAE,EAAAF,EAAc,0CA1Cd,gBA2CAE,EAAAF,EAAc,4CA3Cd,gBA4CAE,EAAAF,EAAc,gDA5Cd,gBA6CAE,EAAAF,EAAc,wCA7Cd,gBA8CAE,EAAAF,EAAc,kDA9Cd,gBA+CAE,EAAAF,EAAc,0DA/Cd,gBAgDAE,EAAAF,EAAc,8DAhDd,gBAiDAE,EAAAF,EAAc,kDAjDd,gBAkDAE,EAAAF,EAAc,yDAlDd,gBAmDAE,EAAAF,EAAc,8CAnDd,gBAoDAE,EAAAF,EAAc,gDApDd,gBAqDAE,EAAAF,EAAc,8CArDd,gBAsDAE,EAAAF,EAAc,yCAtDd,gBAuDAE,EAAAF,EAAc,2CAvDd,gBAwDAE,EAAAF,EAAc,sCAxDd,gBAyDAE,EAAAF,EAAc,6CAzDd,gBA0DAE,EAAAF,EAAc,4CA1Dd,gBA2DAE,EAAAF,EAAc,oDA3Dd,gBA4DAE,EAAAF,EAAc,2CA5Dd,gBA6DAE,EAAAF,EAAc,uDA7Dd,gBA8DAE,EAAAF,EAAc,0CA9Dd,gBA+DAE,EAAAF,EAAc,sDA/Dd,gBAgEAE,EAAAF,EAAc,+CAhEd,gBAiEAE,EAAAF,EAAc,8CAjEd,gBAkEAE,EAAAF,EAAc,4CAlEd,gBAmEAE,EAAAF,EAAc,wCAnEd,gBAoEAE,EAAAF,EAAc,kDApEd,gBAqEAE,EAAAF,EAAc,6CArEd,gBAsEAE,EAAAF,EAAc,yDAtEd,gBAuEAE,EAAAF,EAAc,qDAvEd,gBAwEAE,EAAAF,EAAc,+DAxEd,gBAyEAE,EAAAF,EAAc,0DAzEd,gBA0EAE,EAAAF,EAAc,qDA1Ed,gBA2EAE,EAAAF,EAAc,iDA3Ed,gBA4EAE,EAAAF,EAAc,6DA5Ed,gBA6EAE,EAAAF,EAAc,sDA7Ed,gBA8EAE,EAAAF,EAAc,4CA9Ed,gBA+EAE,EAAAF,EAAc,+CA/Ed,gBAgFAE,EAAAF,EAAc,mDAhFd,gBAiFAE,EAAAF,EAAc,0DAjFd,gBAkFAE,EAAAF,EAAc,qDAlFd,gBAmFAE,EAAAF,EAAc,iDAnFd",
6
6
  "names": ["src_exports", "__toCommonJS", "__reExport"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";var f=Object.create;var n=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var d=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty;var D=(o,e)=>{for(var t in e)n(o,t,{get:e[t],enumerable:!0})},E=(o,e,t,m)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of N(e))!u.call(o,r)&&r!==t&&n(o,r,{get:()=>e[r],enumerable:!(m=w(e,r))||m.enumerable});return o};var R=(o,e,t)=>(t=o!=null?f(d(o)):{},E(e||!o||!o.__esModule?n(t,"default",{value:o,enumerable:!0}):t,o)),_=o=>E(n({},"__esModule",{value:!0}),o);var s={};D(s,{networkModuleFactory:()=>a});module.exports=_(s);var C=require("@ledgerhq/device-management-kit"),k=require("inversify"),l=require("../../network/di/networkTypes"),i=require("../../shared/constant/HttpHeaders"),p=R(require("../../../package.json"));const a=o=>new k.ContainerModule(({bind:e})=>{e(l.networkTypes.NetworkClient).toConstantValue(new C.DmkNetworkClient({headers:{[i.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${p.default.version}`,...o.originToken&&{[i.LEDGER_ORIGIN_TOKEN_HEADER]:o.originToken}}}))});0&&(module.exports={networkModuleFactory});
2
+ //# sourceMappingURL=networkModuleFactory.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/network/di/networkModuleFactory.ts"],
4
+ "sourcesContent": ["import { DmkNetworkClient } from \"@ledgerhq/device-management-kit\";\nimport { ContainerModule } from \"inversify\";\n\nimport { type ContextModuleServiceConfig } from \"@/config/model/ContextModuleConfig\";\nimport { networkTypes } from \"@/network/di/networkTypes\";\nimport {\n LEDGER_CLIENT_VERSION_HEADER,\n LEDGER_ORIGIN_TOKEN_HEADER,\n} from \"@/shared/constant/HttpHeaders\";\nimport PACKAGE from \"@root/package.json\";\n\nexport const networkModuleFactory = (config: ContextModuleServiceConfig) =>\n new ContainerModule(({ bind }) => {\n bind<DmkNetworkClient>(networkTypes.NetworkClient).toConstantValue(\n new DmkNetworkClient({\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n ...(config.originToken && {\n [LEDGER_ORIGIN_TOKEN_HEADER]: config.originToken,\n }),\n },\n }),\n );\n });\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAiC,2CACjCC,EAAgC,qBAGhCC,EAA6B,qCAC7BC,EAGO,yCACPC,EAAoB,iCAEb,MAAMN,EAAwBO,GACnC,IAAI,kBAAgB,CAAC,CAAE,KAAAC,CAAK,IAAM,CAChCA,EAAuB,eAAa,aAAa,EAAE,gBACjD,IAAI,mBAAiB,CACnB,QAAS,CACP,CAAC,8BAA4B,EAAG,kBAAkB,EAAAC,QAAQ,OAAO,GACjE,GAAIF,EAAO,aAAe,CACxB,CAAC,4BAA0B,EAAGA,EAAO,WACvC,CACF,CACF,CAAC,CACH,CACF,CAAC",
6
+ "names": ["networkModuleFactory_exports", "__export", "networkModuleFactory", "__toCommonJS", "import_device_management_kit", "import_inversify", "import_networkTypes", "import_HttpHeaders", "import_package", "config", "bind", "PACKAGE"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var r=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var p=(o,e)=>{for(var n in e)r(o,n,{get:e[n],enumerable:!0})},s=(o,e,n,k)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of w(e))!i.call(o,t)&&t!==n&&r(o,t,{get:()=>e[t],enumerable:!(k=l(e,t))||k.enumerable});return o};var y=o=>s(r({},"__esModule",{value:!0}),o);var b={};p(b,{networkTypes:()=>C});module.exports=y(b);const C={NetworkClient:Symbol.for("networkClient")};0&&(module.exports={networkTypes});
2
+ //# sourceMappingURL=networkTypes.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/network/di/networkTypes.ts"],
4
+ "sourcesContent": ["export const networkTypes = {\n NetworkClient: Symbol.for(\"networkClient\"),\n};\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kBAAAE,IAAA,eAAAC,EAAAH,GAAO,MAAME,EAAe,CAC1B,cAAe,OAAO,IAAI,eAAe,CAC3C",
6
+ "names": ["networkTypes_exports", "__export", "networkTypes", "__toCommonJS"]
7
+ }
@@ -1,2 +1,2 @@
1
- "use strict";var x=Object.create;var s=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var S=Object.getPrototypeOf,G=Object.prototype.hasOwnProperty;var N=(e,t)=>{for(var o in t)s(e,o,{get:t[o],enumerable:!0})},g=(e,t,o,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of C(t))!G.call(e,r)&&r!==o&&s(e,r,{get:()=>t[r],enumerable:!(a=p(t,r))||a.enumerable});return e};var E=(e,t,o)=>(o=e!=null?x(S(e)):{},g(t||!e||!e.__esModule?s(o,"default",{value:e,enumerable:!0}):o,e)),v=e=>g(s({},"__esModule",{value:!0}),e),y=(e,t,o,a)=>{for(var r=a>1?void 0:a?p(t,o):t,l=e.length-1,d;l>=0;l--)(d=e[l])&&(r=(a?d(t,o,r):d(r))||r);return a&&r&&s(t,o,r),r},h=(e,t)=>(o,a)=>t(o,a,e);var D={};N(D,{HttpNftDataSource:()=>m});module.exports=v(D);var f=E(require("axios")),c=require("inversify"),n=require("purify-ts"),P=require("../../config/di/configTypes"),i=require("../../shared/constant/HttpHeaders"),u=E(require("../../../package.json"));let m=class{constructor(t){this.config=t}async getSetPluginPayload({chainId:t,address:o,selector:a}){try{const r=await f.default.request({method:"GET",url:`${this.config.metadataServiceDomain.url}/v1/ethereum/${t}/contracts/${o}/plugin-selector/${a}`,headers:{[i.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${u.default.version}`,[i.LEDGER_ORIGIN_TOKEN_HEADER]:this.config.originToken}});return r.data.payload?(0,n.Right)(r.data.payload):(0,n.Left)(new Error("[ContextModule] HttpNftDataSource: unexpected empty response"))}catch{return(0,n.Left)(new Error("[ContextModule] HttpNftDataSource: Failed to fetch set plugin payload"))}}async getNftInfosPayload({chainId:t,address:o}){try{const a=await f.default.request({method:"GET",url:`${this.config.metadataServiceDomain.url}/v1/ethereum/${t}/contracts/${o}`,headers:{[i.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${u.default.version}`,[i.LEDGER_ORIGIN_TOKEN_HEADER]:this.config.originToken}});return a.data.payload?(0,n.Right)(a.data.payload):(0,n.Left)(new Error("[ContextModule] HttpNftDataSource: no nft metadata"))}catch{return(0,n.Left)(new Error("[ContextModule] HttpNftDataSource: Failed to fetch nft informations"))}}};m=y([(0,c.injectable)(),h(0,(0,c.inject)(P.configTypes.Config))],m);0&&(module.exports={HttpNftDataSource});
1
+ "use strict";var s=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var P=(a,t)=>{for(var r in t)s(a,r,{get:t[r],enumerable:!0})},C=(a,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of y(t))!h.call(a,e)&&e!==r&&s(a,e,{get:()=>t[e],enumerable:!(o=f(t,e))||o.enumerable});return a};var w=a=>C(s({},"__esModule",{value:!0}),a),d=(a,t,r,o)=>{for(var e=o>1?void 0:o?f(t,r):t,m=a.length-1,c;m>=0;m--)(c=a[m])&&(e=(o?c(t,r,e):c(e))||e);return o&&e&&s(t,r,e),e},p=(a,t)=>(r,o)=>t(r,o,a);var S={};P(S,{HttpNftDataSource:()=>i});module.exports=w(S);var l=require("inversify"),n=require("purify-ts"),u=require("../../config/di/configTypes"),g=require("../../network/di/networkTypes");let i=class{constructor(t,r){this.config=t;this.http=r}async getSetPluginPayload({chainId:t,address:r,selector:o}){try{const e=await this.http.get(`${this.config.metadataServiceDomain.url}/v1/ethereum/${t}/contracts/${r}/plugin-selector/${o}`);return e.payload?(0,n.Right)(e.payload):(0,n.Left)(new Error("[ContextModule] HttpNftDataSource: unexpected empty response"))}catch{return(0,n.Left)(new Error("[ContextModule] HttpNftDataSource: Failed to fetch set plugin payload"))}}async getNftInfosPayload({chainId:t,address:r}){try{const o=await this.http.get(`${this.config.metadataServiceDomain.url}/v1/ethereum/${t}/contracts/${r}`);return o.payload?(0,n.Right)(o.payload):(0,n.Left)(new Error("[ContextModule] HttpNftDataSource: no nft metadata"))}catch{return(0,n.Left)(new Error("[ContextModule] HttpNftDataSource: Failed to fetch nft informations"))}}};i=d([(0,l.injectable)(),p(0,(0,l.inject)(u.configTypes.Config)),p(1,(0,l.inject)(g.networkTypes.NetworkClient))],i);0&&(module.exports={HttpNftDataSource});
2
2
  //# sourceMappingURL=HttpNftDataSource.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/nft/data/HttpNftDataSource.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 GetNftInformationsParams,\n GetSetPluginPayloadParams,\n NftDataSource,\n} from \"@/nft/data/NftDataSource\";\nimport {\n LEDGER_CLIENT_VERSION_HEADER,\n LEDGER_ORIGIN_TOKEN_HEADER,\n} from \"@/shared/constant/HttpHeaders\";\nimport PACKAGE from \"@root/package.json\";\n\n@injectable()\nexport class HttpNftDataSource implements NftDataSource {\n constructor(\n @inject(configTypes.Config)\n private readonly config: ContextModuleServiceConfig,\n ) {}\n\n public async getSetPluginPayload({\n chainId,\n address,\n selector,\n }: GetSetPluginPayloadParams): Promise<Either<Error, string>> {\n try {\n const response = await axios.request<{ payload: string }>({\n method: \"GET\",\n url: `${this.config.metadataServiceDomain.url}/v1/ethereum/${chainId}/contracts/${address}/plugin-selector/${selector}`,\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n [LEDGER_ORIGIN_TOKEN_HEADER]: this.config.originToken,\n },\n });\n\n return response.data.payload\n ? Right(response.data.payload)\n : Left(\n new Error(\n \"[ContextModule] HttpNftDataSource: unexpected empty response\",\n ),\n );\n } catch (_error) {\n return Left(\n new Error(\n \"[ContextModule] HttpNftDataSource: Failed to fetch set plugin payload\",\n ),\n );\n }\n }\n\n public async getNftInfosPayload({\n chainId,\n address,\n }: GetNftInformationsParams): Promise<Either<Error, string>> {\n try {\n const response = await axios.request<{ payload: string }>({\n method: \"GET\",\n url: `${this.config.metadataServiceDomain.url}/v1/ethereum/${chainId}/contracts/${address}`,\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n [LEDGER_ORIGIN_TOKEN_HEADER]: this.config.originToken,\n },\n });\n\n return response.data.payload\n ? Right(response.data.payload)\n : Left(new Error(\"[ContextModule] HttpNftDataSource: no nft metadata\"));\n } catch (_error) {\n return Left(\n new Error(\n \"[ContextModule] HttpNftDataSource: Failed to fetch nft informations\",\n ),\n );\n }\n }\n}\n"],
5
- "mappings": "qtBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAkB,oBAClBC,EAAmC,qBACnCC,EAAoC,qBAEpCC,EAA4B,mCAO5BC,EAGO,yCACPC,EAAoB,iCAGb,IAAMC,EAAN,KAAiD,CACtD,YAEmBC,EACjB,CADiB,YAAAA,CAChB,CAEH,MAAa,oBAAoB,CAC/B,QAAAC,EACA,QAAAC,EACA,SAAAC,CACF,EAA8D,CAC5D,GAAI,CACF,MAAMC,EAAW,MAAM,EAAAC,QAAM,QAA6B,CACxD,OAAQ,MACR,IAAK,GAAG,KAAK,OAAO,sBAAsB,GAAG,gBAAgBJ,CAAO,cAAcC,CAAO,oBAAoBC,CAAQ,GACrH,QAAS,CACP,CAAC,8BAA4B,EAAG,kBAAkB,EAAAG,QAAQ,OAAO,GACjE,CAAC,4BAA0B,EAAG,KAAK,OAAO,WAC5C,CACF,CAAC,EAED,OAAOF,EAAS,KAAK,WACjB,SAAMA,EAAS,KAAK,OAAO,KAC3B,QACE,IAAI,MACF,8DACF,CACF,CACN,MAAiB,CACf,SAAO,QACL,IAAI,MACF,uEACF,CACF,CACF,CACF,CAEA,MAAa,mBAAmB,CAC9B,QAAAH,EACA,QAAAC,CACF,EAA6D,CAC3D,GAAI,CACF,MAAME,EAAW,MAAM,EAAAC,QAAM,QAA6B,CACxD,OAAQ,MACR,IAAK,GAAG,KAAK,OAAO,sBAAsB,GAAG,gBAAgBJ,CAAO,cAAcC,CAAO,GACzF,QAAS,CACP,CAAC,8BAA4B,EAAG,kBAAkB,EAAAI,QAAQ,OAAO,GACjE,CAAC,4BAA0B,EAAG,KAAK,OAAO,WAC5C,CACF,CAAC,EAED,OAAOF,EAAS,KAAK,WACjB,SAAMA,EAAS,KAAK,OAAO,KAC3B,QAAK,IAAI,MAAM,oDAAoD,CAAC,CAC1E,MAAiB,CACf,SAAO,QACL,IAAI,MACF,qEACF,CACF,CACF,CACF,CACF,EA9DaL,EAANQ,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,cAAY,MAAM,IAFjBT",
6
- "names": ["HttpNftDataSource_exports", "__export", "HttpNftDataSource", "__toCommonJS", "import_axios", "import_inversify", "import_purify_ts", "import_configTypes", "import_HttpHeaders", "import_package", "HttpNftDataSource", "config", "chainId", "address", "selector", "response", "axios", "PACKAGE", "__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 {\n GetNftInformationsParams,\n GetSetPluginPayloadParams,\n NftDataSource,\n} from \"@/nft/data/NftDataSource\";\n\n@injectable()\nexport class HttpNftDataSource implements NftDataSource {\n constructor(\n @inject(configTypes.Config)\n private readonly config: ContextModuleServiceConfig,\n @inject(networkTypes.NetworkClient)\n private readonly http: DmkNetworkClient,\n ) {}\n\n public async getSetPluginPayload({\n chainId,\n address,\n selector,\n }: GetSetPluginPayloadParams): Promise<Either<Error, string>> {\n try {\n const data = (await this.http.get(\n `${this.config.metadataServiceDomain.url}/v1/ethereum/${chainId}/contracts/${address}/plugin-selector/${selector}`,\n )) as { payload: string };\n\n return data.payload\n ? Right(data.payload)\n : Left(\n new Error(\n \"[ContextModule] HttpNftDataSource: unexpected empty response\",\n ),\n );\n } catch (_error) {\n return Left(\n new Error(\n \"[ContextModule] HttpNftDataSource: Failed to fetch set plugin payload\",\n ),\n );\n }\n }\n\n public async getNftInfosPayload({\n chainId,\n address,\n }: GetNftInformationsParams): Promise<Either<Error, string>> {\n try {\n const data = (await this.http.get(\n `${this.config.metadataServiceDomain.url}/v1/ethereum/${chainId}/contracts/${address}`,\n )) as { payload: string };\n\n return data.payload\n ? Right(data.payload)\n : Left(new Error(\"[ContextModule] HttpNftDataSource: no nft metadata\"));\n } catch (_error) {\n return Left(\n new Error(\n \"[ContextModule] HttpNftDataSource: Failed to fetch nft informations\",\n ),\n );\n }\n }\n}\n"],
5
+ "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAAmC,qBACnCC,EAAoC,qBAEpCC,EAA4B,mCAE5BC,EAA6B,qCAQtB,IAAMC,EAAN,KAAiD,CACtD,YAEmBC,EAEAC,EACjB,CAHiB,YAAAD,EAEA,UAAAC,CAChB,CAEH,MAAa,oBAAoB,CAC/B,QAAAC,EACA,QAAAC,EACA,SAAAC,CACF,EAA8D,CAC5D,GAAI,CACF,MAAMC,EAAQ,MAAM,KAAK,KAAK,IAC5B,GAAG,KAAK,OAAO,sBAAsB,GAAG,gBAAgBH,CAAO,cAAcC,CAAO,oBAAoBC,CAAQ,EAClH,EAEA,OAAOC,EAAK,WACR,SAAMA,EAAK,OAAO,KAClB,QACE,IAAI,MACF,8DACF,CACF,CACN,MAAiB,CACf,SAAO,QACL,IAAI,MACF,uEACF,CACF,CACF,CACF,CAEA,MAAa,mBAAmB,CAC9B,QAAAH,EACA,QAAAC,CACF,EAA6D,CAC3D,GAAI,CACF,MAAME,EAAQ,MAAM,KAAK,KAAK,IAC5B,GAAG,KAAK,OAAO,sBAAsB,GAAG,gBAAgBH,CAAO,cAAcC,CAAO,EACtF,EAEA,OAAOE,EAAK,WACR,SAAMA,EAAK,OAAO,KAClB,QAAK,IAAI,MAAM,oDAAoD,CAAC,CAC1E,MAAiB,CACf,SAAO,QACL,IAAI,MACF,qEACF,CACF,CACF,CACF,CACF,EAtDaN,EAANO,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,cAAY,MAAM,GAEzBA,EAAA,eAAO,eAAa,aAAa,IAJzBR",
6
+ "names": ["HttpNftDataSource_exports", "__export", "HttpNftDataSource", "__toCommonJS", "import_inversify", "import_purify_ts", "import_configTypes", "import_networkTypes", "HttpNftDataSource", "config", "http", "chainId", "address", "selector", "data", "__decorateClass", "__decorateParam"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var p=Object.create;var c=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var m=(t,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of h(e))!f.call(t,n)&&n!==o&&c(t,n,{get:()=>e[n],enumerable:!(i=x(e,n))||i.enumerable});return t};var l=(t,e,o)=>(o=t!=null?p(y(t)):{},m(e||!t||!t.__esModule?c(o,"default",{value:t,enumerable:!0}):o,t));var a=l(require("axios")),r=require("../../shared/constant/HttpHeaders"),d=l(require("../../../package.json")),u=require("./HttpNftDataSource");vi.mock("axios");const s={web3checks:{url:"web3checksUrl"},metadataServiceDomain:{url:"https://nft.api.live.ledger.com"},originToken:"originToken"};describe("HttpNftDataSource",()=>{let t;beforeAll(()=>{t=new u.HttpNftDataSource(s),vi.clearAllMocks()}),it("should call axios with the ledger client version and origin Token header",async()=>{const e=`context-module/${d.default.version}`,o=vi.fn(()=>Promise.resolve({data:[]}));vi.spyOn(a.default,"request").mockImplementation(o),await t.getNftInfosPayload({address:"0x00",chainId:1}),await t.getSetPluginPayload({address:"0x00",chainId:1,selector:"0x00"}),expect(o).toHaveBeenNthCalledWith(1,expect.objectContaining({headers:{[r.LEDGER_CLIENT_VERSION_HEADER]:e,[r.LEDGER_ORIGIN_TOKEN_HEADER]:s.originToken}})),expect(o).toHaveBeenNthCalledWith(2,expect.objectContaining({headers:{[r.LEDGER_CLIENT_VERSION_HEADER]:e,[r.LEDGER_ORIGIN_TOKEN_HEADER]:s.originToken}}))}),describe("getNftInfosPayload",()=>{it("should return an error when axios throws an error",async()=>{vi.spyOn(a.default,"request").mockRejectedValue(new Error("error"));const e=await t.getNftInfosPayload({address:"0x00",chainId:1});expect(e.extract()).toEqual(new Error("[ContextModule] HttpNftDataSource: Failed to fetch nft informations"))}),it("should return an error when the response is empty",async()=>{const e={data:{}};vi.spyOn(a.default,"request").mockResolvedValue(e);const o=await t.getNftInfosPayload({address:"0x00",chainId:1});expect(o.extract()).toEqual(new Error("[ContextModule] HttpNftDataSource: no nft metadata"))}),it("should return the payload",async()=>{const e={data:{payload:"payload"}};vi.spyOn(a.default,"request").mockResolvedValue(e);const o=await t.getNftInfosPayload({address:"0x00",chainId:1});expect(o.extract()).toEqual("payload")})}),describe("getSetPluginPayload",()=>{it("should return an error when axios throws an error",async()=>{vi.spyOn(a.default,"request").mockRejectedValue(new Error("error"));const e=await t.getSetPluginPayload({address:"0x00",chainId:1,selector:"0x00"});expect(e.extract()).toEqual(new Error("[ContextModule] HttpNftDataSource: Failed to fetch set plugin payload"))}),it("should return an error when the response is empty",async()=>{const e={data:{}};vi.spyOn(a.default,"request").mockResolvedValue(e);const o=await t.getSetPluginPayload({address:"0x00",chainId:1,selector:"0x00"});expect(o.extract()).toEqual(new Error("[ContextModule] HttpNftDataSource: unexpected empty response"))}),it("should return the payload",async()=>{const e={data:{payload:"payload"}};vi.spyOn(a.default,"request").mockResolvedValue(e);const o=await t.getSetPluginPayload({address:"0x00",chainId:1,selector:"0x00"});expect(o.extract()).toEqual("payload")})})});
1
+ "use strict";var o=require("./HttpNftDataSource");const r={web3checks:{url:"web3checksUrl"},metadataServiceDomain:{url:"https://nft.api.live.ledger.com"},originToken:"originToken"};describe("HttpNftDataSource",()=>{let a,e;beforeEach(()=>{e={get:vi.fn()},a=new o.HttpNftDataSource(r,e)}),describe("getNftInfosPayload",()=>{it("should call the expected metadata service URL",async()=>{e.get.mockResolvedValue({payload:"payload"}),await a.getNftInfosPayload({address:"0x00",chainId:1}),expect(e.get).toHaveBeenCalledWith("https://nft.api.live.ledger.com/v1/ethereum/1/contracts/0x00")}),it("should return an error when the network client throws",async()=>{e.get.mockRejectedValue(new Error("error"));const t=await a.getNftInfosPayload({address:"0x00",chainId:1});expect(t.extract()).toEqual(new Error("[ContextModule] HttpNftDataSource: Failed to fetch nft informations"))}),it("should return an error when the response has no payload",async()=>{e.get.mockResolvedValue({});const t=await a.getNftInfosPayload({address:"0x00",chainId:1});expect(t.extract()).toEqual(new Error("[ContextModule] HttpNftDataSource: no nft metadata"))}),it("should return the payload",async()=>{e.get.mockResolvedValue({payload:"payload"});const t=await a.getNftInfosPayload({address:"0x00",chainId:1});expect(t.extract()).toEqual("payload")})}),describe("getSetPluginPayload",()=>{it("should call the expected metadata service URL",async()=>{e.get.mockResolvedValue({payload:"payload"}),await a.getSetPluginPayload({address:"0x00",chainId:1,selector:"0x00"}),expect(e.get).toHaveBeenCalledWith("https://nft.api.live.ledger.com/v1/ethereum/1/contracts/0x00/plugin-selector/0x00")}),it("should return an error when the network client throws",async()=>{e.get.mockRejectedValue(new Error("error"));const t=await a.getSetPluginPayload({address:"0x00",chainId:1,selector:"0x00"});expect(t.extract()).toEqual(new Error("[ContextModule] HttpNftDataSource: Failed to fetch set plugin payload"))}),it("should return an error when the response has no payload",async()=>{e.get.mockResolvedValue({});const t=await a.getSetPluginPayload({address:"0x00",chainId:1,selector:"0x00"});expect(t.extract()).toEqual(new Error("[ContextModule] HttpNftDataSource: unexpected empty response"))}),it("should return the payload",async()=>{e.get.mockResolvedValue({payload:"payload"});const t=await a.getSetPluginPayload({address:"0x00",chainId:1,selector:"0x00"});expect(t.extract()).toEqual("payload")})})});
2
2
  //# sourceMappingURL=HttpNftDataSource.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/nft/data/HttpNftDataSource.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 { HttpNftDataSource } from \"./HttpNftDataSource\";\nimport { type NftDataSource } from \"./NftDataSource\";\n\nvi.mock(\"axios\");\n\nconst config = {\n web3checks: {\n url: \"web3checksUrl\",\n },\n metadataServiceDomain: {\n url: \"https://nft.api.live.ledger.com\",\n },\n originToken: \"originToken\",\n} as ContextModuleServiceConfig;\ndescribe(\"HttpNftDataSource\", () => {\n let datasource: NftDataSource;\n\n beforeAll(() => {\n datasource = new HttpNftDataSource(config);\n vi.clearAllMocks();\n });\n\n it(\"should call axios with the ledger client version and origin Token header\", async () => {\n // GIVEN\n const version = `context-module/${PACKAGE.version}`;\n const requestSpy = vi.fn(() => Promise.resolve({ data: [] }));\n vi.spyOn(axios, \"request\").mockImplementation(requestSpy);\n\n // WHEN\n await datasource.getNftInfosPayload({ address: \"0x00\", chainId: 1 });\n await datasource.getSetPluginPayload({\n address: \"0x00\",\n chainId: 1,\n selector: \"0x00\",\n });\n\n // THEN\n expect(requestSpy).toHaveBeenNthCalledWith(\n 1,\n expect.objectContaining({\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: version,\n [LEDGER_ORIGIN_TOKEN_HEADER]: config.originToken,\n },\n }),\n );\n expect(requestSpy).toHaveBeenNthCalledWith(\n 2,\n expect.objectContaining({\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: version,\n [LEDGER_ORIGIN_TOKEN_HEADER]: config.originToken,\n },\n }),\n );\n });\n\n describe(\"getNftInfosPayload\", () => {\n it(\"should return an error when axios throws an error\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockRejectedValue(new Error(\"error\"));\n\n // WHEN\n const result = await datasource.getNftInfosPayload({\n address: \"0x00\",\n chainId: 1,\n });\n\n // THEN\n expect(result.extract()).toEqual(\n new Error(\n \"[ContextModule] HttpNftDataSource: Failed to fetch nft informations\",\n ),\n );\n });\n\n it(\"should return an error when the response is empty\", async () => {\n // GIVEN\n const response = { data: {} };\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getNftInfosPayload({\n address: \"0x00\",\n chainId: 1,\n });\n\n // THEN\n expect(result.extract()).toEqual(\n new Error(\"[ContextModule] HttpNftDataSource: no nft metadata\"),\n );\n });\n\n it(\"should return the payload\", async () => {\n // GIVEN\n const response = { data: { payload: \"payload\" } };\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getNftInfosPayload({\n address: \"0x00\",\n chainId: 1,\n });\n\n // THEN\n expect(result.extract()).toEqual(\"payload\");\n });\n });\n\n describe(\"getSetPluginPayload\", () => {\n it(\"should return an error when axios throws an error\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockRejectedValue(new Error(\"error\"));\n\n // WHEN\n const result = await datasource.getSetPluginPayload({\n address: \"0x00\",\n chainId: 1,\n selector: \"0x00\",\n });\n\n // THEN\n expect(result.extract()).toEqual(\n new Error(\n \"[ContextModule] HttpNftDataSource: Failed to fetch set plugin payload\",\n ),\n );\n });\n\n it(\"should return an error when the response is empty\", async () => {\n // GIVEN\n const response = { data: {} };\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getSetPluginPayload({\n address: \"0x00\",\n chainId: 1,\n selector: \"0x00\",\n });\n\n // THEN\n expect(result.extract()).toEqual(\n new Error(\n \"[ContextModule] HttpNftDataSource: unexpected empty response\",\n ),\n );\n });\n\n it(\"should return the payload\", async () => {\n // GIVEN\n const response = { data: { payload: \"payload\" } };\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getSetPluginPayload({\n address: \"0x00\",\n chainId: 1,\n selector: \"0x00\",\n });\n\n // THEN\n expect(result.extract()).toEqual(\"payload\");\n });\n });\n});\n"],
5
- "mappings": "wdAAA,IAAAA,EAAkB,oBAGlBC,EAGO,yCACPC,EAAoB,iCAEpBC,EAAkC,+BAGlC,GAAG,KAAK,OAAO,EAEf,MAAMC,EAAS,CACb,WAAY,CACV,IAAK,eACP,EACA,sBAAuB,CACrB,IAAK,iCACP,EACA,YAAa,aACf,EACA,SAAS,oBAAqB,IAAM,CAClC,IAAIC,EAEJ,UAAU,IAAM,CACdA,EAAa,IAAI,oBAAkBD,CAAM,EACzC,GAAG,cAAc,CACnB,CAAC,EAED,GAAG,2EAA4E,SAAY,CAEzF,MAAME,EAAU,kBAAkB,EAAAC,QAAQ,OAAO,GAC3CC,EAAa,GAAG,GAAG,IAAM,QAAQ,QAAQ,CAAE,KAAM,CAAC,CAAE,CAAC,CAAC,EAC5D,GAAG,MAAM,EAAAC,QAAO,SAAS,EAAE,mBAAmBD,CAAU,EAGxD,MAAMH,EAAW,mBAAmB,CAAE,QAAS,OAAQ,QAAS,CAAE,CAAC,EACnE,MAAMA,EAAW,oBAAoB,CACnC,QAAS,OACT,QAAS,EACT,SAAU,MACZ,CAAC,EAGD,OAAOG,CAAU,EAAE,wBACjB,EACA,OAAO,iBAAiB,CACtB,QAAS,CACP,CAAC,8BAA4B,EAAGF,EAChC,CAAC,4BAA0B,EAAGF,EAAO,WACvC,CACF,CAAC,CACH,EACA,OAAOI,CAAU,EAAE,wBACjB,EACA,OAAO,iBAAiB,CACtB,QAAS,CACP,CAAC,8BAA4B,EAAGF,EAChC,CAAC,4BAA0B,EAAGF,EAAO,WACvC,CACF,CAAC,CACH,CACF,CAAC,EAED,SAAS,qBAAsB,IAAM,CACnC,GAAG,oDAAqD,SAAY,CAElE,GAAG,MAAM,EAAAK,QAAO,SAAS,EAAE,kBAAkB,IAAI,MAAM,OAAO,CAAC,EAG/D,MAAMC,EAAS,MAAML,EAAW,mBAAmB,CACjD,QAAS,OACT,QAAS,CACX,CAAC,EAGD,OAAOK,EAAO,QAAQ,CAAC,EAAE,QACvB,IAAI,MACF,qEACF,CACF,CACF,CAAC,EAED,GAAG,oDAAqD,SAAY,CAElE,MAAMC,EAAW,CAAE,KAAM,CAAC,CAAE,EAC5B,GAAG,MAAM,EAAAF,QAAO,SAAS,EAAE,kBAAkBE,CAAQ,EAGrD,MAAMD,EAAS,MAAML,EAAW,mBAAmB,CACjD,QAAS,OACT,QAAS,CACX,CAAC,EAGD,OAAOK,EAAO,QAAQ,CAAC,EAAE,QACvB,IAAI,MAAM,oDAAoD,CAChE,CACF,CAAC,EAED,GAAG,4BAA6B,SAAY,CAE1C,MAAMC,EAAW,CAAE,KAAM,CAAE,QAAS,SAAU,CAAE,EAChD,GAAG,MAAM,EAAAF,QAAO,SAAS,EAAE,kBAAkBE,CAAQ,EAGrD,MAAMD,EAAS,MAAML,EAAW,mBAAmB,CACjD,QAAS,OACT,QAAS,CACX,CAAC,EAGD,OAAOK,EAAO,QAAQ,CAAC,EAAE,QAAQ,SAAS,CAC5C,CAAC,CACH,CAAC,EAED,SAAS,sBAAuB,IAAM,CACpC,GAAG,oDAAqD,SAAY,CAElE,GAAG,MAAM,EAAAD,QAAO,SAAS,EAAE,kBAAkB,IAAI,MAAM,OAAO,CAAC,EAG/D,MAAMC,EAAS,MAAML,EAAW,oBAAoB,CAClD,QAAS,OACT,QAAS,EACT,SAAU,MACZ,CAAC,EAGD,OAAOK,EAAO,QAAQ,CAAC,EAAE,QACvB,IAAI,MACF,uEACF,CACF,CACF,CAAC,EAED,GAAG,oDAAqD,SAAY,CAElE,MAAMC,EAAW,CAAE,KAAM,CAAC,CAAE,EAC5B,GAAG,MAAM,EAAAF,QAAO,SAAS,EAAE,kBAAkBE,CAAQ,EAGrD,MAAMD,EAAS,MAAML,EAAW,oBAAoB,CAClD,QAAS,OACT,QAAS,EACT,SAAU,MACZ,CAAC,EAGD,OAAOK,EAAO,QAAQ,CAAC,EAAE,QACvB,IAAI,MACF,8DACF,CACF,CACF,CAAC,EAED,GAAG,4BAA6B,SAAY,CAE1C,MAAMC,EAAW,CAAE,KAAM,CAAE,QAAS,SAAU,CAAE,EAChD,GAAG,MAAM,EAAAF,QAAO,SAAS,EAAE,kBAAkBE,CAAQ,EAGrD,MAAMD,EAAS,MAAML,EAAW,oBAAoB,CAClD,QAAS,OACT,QAAS,EACT,SAAU,MACZ,CAAC,EAGD,OAAOK,EAAO,QAAQ,CAAC,EAAE,QAAQ,SAAS,CAC5C,CAAC,CACH,CAAC,CACH,CAAC",
6
- "names": ["import_axios", "import_HttpHeaders", "import_package", "import_HttpNftDataSource", "config", "datasource", "version", "PACKAGE", "requestSpy", "axios", "result", "response"]
4
+ "sourcesContent": ["import { type DmkNetworkClient } from \"@ledgerhq/device-management-kit\";\n\nimport { type ContextModuleServiceConfig } from \"@/config/model/ContextModuleConfig\";\n\nimport { HttpNftDataSource } from \"./HttpNftDataSource\";\nimport { type NftDataSource } from \"./NftDataSource\";\n\nconst config = {\n web3checks: {\n url: \"web3checksUrl\",\n },\n metadataServiceDomain: {\n url: \"https://nft.api.live.ledger.com\",\n },\n originToken: \"originToken\",\n} as ContextModuleServiceConfig;\n\ndescribe(\"HttpNftDataSource\", () => {\n let datasource: NftDataSource;\n let httpMock: { get: ReturnType<typeof vi.fn> };\n\n beforeEach(() => {\n httpMock = { get: vi.fn() };\n datasource = new HttpNftDataSource(\n config,\n httpMock as unknown as DmkNetworkClient,\n );\n });\n\n describe(\"getNftInfosPayload\", () => {\n it(\"should call the expected metadata service URL\", async () => {\n httpMock.get.mockResolvedValue({ payload: \"payload\" });\n\n await datasource.getNftInfosPayload({ address: \"0x00\", chainId: 1 });\n\n expect(httpMock.get).toHaveBeenCalledWith(\n \"https://nft.api.live.ledger.com/v1/ethereum/1/contracts/0x00\",\n );\n });\n\n it(\"should return an error when the network client throws\", async () => {\n httpMock.get.mockRejectedValue(new Error(\"error\"));\n\n const result = await datasource.getNftInfosPayload({\n address: \"0x00\",\n chainId: 1,\n });\n\n expect(result.extract()).toEqual(\n new Error(\n \"[ContextModule] HttpNftDataSource: Failed to fetch nft informations\",\n ),\n );\n });\n\n it(\"should return an error when the response has no payload\", async () => {\n httpMock.get.mockResolvedValue({});\n\n const result = await datasource.getNftInfosPayload({\n address: \"0x00\",\n chainId: 1,\n });\n\n expect(result.extract()).toEqual(\n new Error(\"[ContextModule] HttpNftDataSource: no nft metadata\"),\n );\n });\n\n it(\"should return the payload\", async () => {\n httpMock.get.mockResolvedValue({ payload: \"payload\" });\n\n const result = await datasource.getNftInfosPayload({\n address: \"0x00\",\n chainId: 1,\n });\n\n expect(result.extract()).toEqual(\"payload\");\n });\n });\n\n describe(\"getSetPluginPayload\", () => {\n it(\"should call the expected metadata service URL\", async () => {\n httpMock.get.mockResolvedValue({ payload: \"payload\" });\n\n await datasource.getSetPluginPayload({\n address: \"0x00\",\n chainId: 1,\n selector: \"0x00\",\n });\n\n expect(httpMock.get).toHaveBeenCalledWith(\n \"https://nft.api.live.ledger.com/v1/ethereum/1/contracts/0x00/plugin-selector/0x00\",\n );\n });\n\n it(\"should return an error when the network client throws\", async () => {\n httpMock.get.mockRejectedValue(new Error(\"error\"));\n\n const result = await datasource.getSetPluginPayload({\n address: \"0x00\",\n chainId: 1,\n selector: \"0x00\",\n });\n\n expect(result.extract()).toEqual(\n new Error(\n \"[ContextModule] HttpNftDataSource: Failed to fetch set plugin payload\",\n ),\n );\n });\n\n it(\"should return an error when the response has no payload\", async () => {\n httpMock.get.mockResolvedValue({});\n\n const result = await datasource.getSetPluginPayload({\n address: \"0x00\",\n chainId: 1,\n selector: \"0x00\",\n });\n\n expect(result.extract()).toEqual(\n new Error(\n \"[ContextModule] HttpNftDataSource: unexpected empty response\",\n ),\n );\n });\n\n it(\"should return the payload\", async () => {\n httpMock.get.mockResolvedValue({ payload: \"payload\" });\n\n const result = await datasource.getSetPluginPayload({\n address: \"0x00\",\n chainId: 1,\n selector: \"0x00\",\n });\n\n expect(result.extract()).toEqual(\"payload\");\n });\n });\n});\n"],
5
+ "mappings": "aAIA,IAAAA,EAAkC,+BAGlC,MAAMC,EAAS,CACb,WAAY,CACV,IAAK,eACP,EACA,sBAAuB,CACrB,IAAK,iCACP,EACA,YAAa,aACf,EAEA,SAAS,oBAAqB,IAAM,CAClC,IAAIC,EACAC,EAEJ,WAAW,IAAM,CACfA,EAAW,CAAE,IAAK,GAAG,GAAG,CAAE,EAC1BD,EAAa,IAAI,oBACfD,EACAE,CACF,CACF,CAAC,EAED,SAAS,qBAAsB,IAAM,CACnC,GAAG,gDAAiD,SAAY,CAC9DA,EAAS,IAAI,kBAAkB,CAAE,QAAS,SAAU,CAAC,EAErD,MAAMD,EAAW,mBAAmB,CAAE,QAAS,OAAQ,QAAS,CAAE,CAAC,EAEnE,OAAOC,EAAS,GAAG,EAAE,qBACnB,8DACF,CACF,CAAC,EAED,GAAG,wDAAyD,SAAY,CACtEA,EAAS,IAAI,kBAAkB,IAAI,MAAM,OAAO,CAAC,EAEjD,MAAMC,EAAS,MAAMF,EAAW,mBAAmB,CACjD,QAAS,OACT,QAAS,CACX,CAAC,EAED,OAAOE,EAAO,QAAQ,CAAC,EAAE,QACvB,IAAI,MACF,qEACF,CACF,CACF,CAAC,EAED,GAAG,0DAA2D,SAAY,CACxED,EAAS,IAAI,kBAAkB,CAAC,CAAC,EAEjC,MAAMC,EAAS,MAAMF,EAAW,mBAAmB,CACjD,QAAS,OACT,QAAS,CACX,CAAC,EAED,OAAOE,EAAO,QAAQ,CAAC,EAAE,QACvB,IAAI,MAAM,oDAAoD,CAChE,CACF,CAAC,EAED,GAAG,4BAA6B,SAAY,CAC1CD,EAAS,IAAI,kBAAkB,CAAE,QAAS,SAAU,CAAC,EAErD,MAAMC,EAAS,MAAMF,EAAW,mBAAmB,CACjD,QAAS,OACT,QAAS,CACX,CAAC,EAED,OAAOE,EAAO,QAAQ,CAAC,EAAE,QAAQ,SAAS,CAC5C,CAAC,CACH,CAAC,EAED,SAAS,sBAAuB,IAAM,CACpC,GAAG,gDAAiD,SAAY,CAC9DD,EAAS,IAAI,kBAAkB,CAAE,QAAS,SAAU,CAAC,EAErD,MAAMD,EAAW,oBAAoB,CACnC,QAAS,OACT,QAAS,EACT,SAAU,MACZ,CAAC,EAED,OAAOC,EAAS,GAAG,EAAE,qBACnB,mFACF,CACF,CAAC,EAED,GAAG,wDAAyD,SAAY,CACtEA,EAAS,IAAI,kBAAkB,IAAI,MAAM,OAAO,CAAC,EAEjD,MAAMC,EAAS,MAAMF,EAAW,oBAAoB,CAClD,QAAS,OACT,QAAS,EACT,SAAU,MACZ,CAAC,EAED,OAAOE,EAAO,QAAQ,CAAC,EAAE,QACvB,IAAI,MACF,uEACF,CACF,CACF,CAAC,EAED,GAAG,0DAA2D,SAAY,CACxED,EAAS,IAAI,kBAAkB,CAAC,CAAC,EAEjC,MAAMC,EAAS,MAAMF,EAAW,oBAAoB,CAClD,QAAS,OACT,QAAS,EACT,SAAU,MACZ,CAAC,EAED,OAAOE,EAAO,QAAQ,CAAC,EAAE,QACvB,IAAI,MACF,8DACF,CACF,CACF,CAAC,EAED,GAAG,4BAA6B,SAAY,CAC1CD,EAAS,IAAI,kBAAkB,CAAE,QAAS,SAAU,CAAC,EAErD,MAAMC,EAAS,MAAMF,EAAW,oBAAoB,CAClD,QAAS,OACT,QAAS,EACT,SAAU,MACZ,CAAC,EAED,OAAOE,EAAO,QAAQ,CAAC,EAAE,QAAQ,SAAS,CAC5C,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["import_HttpNftDataSource", "config", "datasource", "httpMock", "result"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var D=Object.create;var n=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var _=Object.getPrototypeOf,S=Object.prototype.hasOwnProperty;var b=(t,e)=>{for(var r in e)n(t,r,{get:e[r],enumerable:!0})},m=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of M(e))!S.call(t,o)&&o!==r&&n(t,o,{get:()=>e[o],enumerable:!(i=d(e,o))||i.enumerable});return t};var u=(t,e,r)=>(r=t!=null?D(_(t)):{},m(e||!t||!t.__esModule?n(r,"default",{value:t,enumerable:!0}):r,t)),T=t=>m(n({},"__esModule",{value:!0}),t),g=(t,e,r,i)=>{for(var o=i>1?void 0:i?d(e,r):e,s=t.length-1,p;s>=0;s--)(p=t[s])&&(o=(i?p(e,r,o):p(o))||o);return i&&o&&n(e,r,o),o},C=(t,e)=>(r,i)=>e(r,i,t);var U={};b(U,{HttpPkiCertificateDataSource:()=>c});module.exports=T(U);var l=require("@ledgerhq/device-management-kit"),y=u(require("axios")),f=require("inversify"),a=require("purify-ts"),k=require("../../config/di/configTypes"),P=require("../../shared/constant/HttpHeaders"),h=require("../../shared/model/SignatureTags"),E=require("../../shared/utils/HexStringUtils"),R=require("../../shared/utils/KeyUsageMapper"),x=u(require("../../../package.json"));let c=class{constructor(e){this.config=e}async fetchCertificate(e){const r={output:"descriptor",target_device:e.targetDevice,latest:!0,public_key_id:e.keyId,public_key_usage:e.keyUsage};try{const i=await y.default.request({method:"GET",url:`${this.config.cal.url}/certificates`,params:r,headers:{[P.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${x.default.version}`}});if(i.status==200&&i.data!==void 0&&i.data.length>0&&this.isValidPkiCertificateResponse(i.data[0],this.config.cal.mode)){const o=(0,l.hexaStringToBuffer)(E.HexStringUtils.appendSignatureToPayload(i.data[0].descriptor.data,i.data[0].descriptor.signatures[this.config.cal.mode],h.SIGNATURE_TAG));if(!o)return(0,a.Left)(Error("[ContextModule] HttpPkiCertificateDataSource: Cannot generate payload from fetched PKI Certificate"));const s={payload:o,keyUsageNumber:R.KeyUsageMapper.mapKeyUsageForFirmware(e.keyUsage)};return(0,a.Right)(s)}else return(0,a.Left)(Error("[ContextModule] HttpPkiCertificateDataSource: failed to fetch PKI for given descriptor"))}catch{return(0,a.Left)(Error("[ContextModule] HttpPkiCertificateDataSource: failed to fetch PKI for given descriptor"))}}isValidPkiCertificateResponse(e,r){return typeof e=="object"&&e!==null&&"descriptor"in e&&typeof e.descriptor=="object"&&e.descriptor!==null&&"data"in e.descriptor&&typeof e.descriptor.data=="string"&&"signatures"in e.descriptor&&typeof e.descriptor.signatures=="object"&&e.descriptor.signatures!==null&&r in e.descriptor.signatures&&typeof e.descriptor.signatures[r]=="string"}};c=g([(0,f.injectable)(),C(0,(0,f.inject)(k.configTypes.Config))],c);0&&(module.exports={HttpPkiCertificateDataSource});
1
+ "use strict";var f=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var _=Object.prototype.hasOwnProperty;var R=(o,e)=>{for(var r in e)f(o,r,{get:e[r],enumerable:!0})},v=(o,e,r,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of P(e))!_.call(o,i)&&i!==r&&f(o,i,{get:()=>e[i],enumerable:!(t=u(e,i))||t.enumerable});return o};var x=o=>v(f({},"__esModule",{value:!0}),o),l=(o,e,r,t)=>{for(var i=t>1?void 0:t?u(e,r):e,s=o.length-1,p;s>=0;s--)(p=o[s])&&(i=(t?p(e,r,i):p(i))||i);return t&&i&&f(e,r,i),i},d=(o,e)=>(r,t)=>e(r,t,o);var M={};R(M,{HttpPkiCertificateDataSource:()=>n});module.exports=x(M);var m=require("@ledgerhq/device-management-kit"),c=require("inversify"),a=require("purify-ts"),g=require("../../config/di/configTypes"),y=require("../../network/di/networkTypes"),C=require("../../shared/model/SignatureTags"),k=require("../../shared/utils/HexStringUtils"),h=require("../../shared/utils/KeyUsageMapper");let n=class{constructor(e,r){this.config=e;this.http=r}async fetchCertificate(e){const r={output:"descriptor",target_device:e.targetDevice,latest:!0,public_key_id:e.keyId,public_key_usage:e.keyUsage};try{const t=await this.http.get(`${this.config.cal.url}/certificates`,{params:{output:r.output,target_device:r.target_device,latest:r.latest,public_key_id:r.public_key_id,public_key_usage:r.public_key_usage}});if(Array.isArray(t)&&t.length>0&&this.isValidPkiCertificateResponse(t[0],this.config.cal.mode)){const i=(0,m.hexaStringToBuffer)(k.HexStringUtils.appendSignatureToPayload(t[0].descriptor.data,t[0].descriptor.signatures[this.config.cal.mode],C.SIGNATURE_TAG));if(!i)return(0,a.Left)(Error("[ContextModule] HttpPkiCertificateDataSource: Cannot generate payload from fetched PKI Certificate"));const s={payload:i,keyUsageNumber:h.KeyUsageMapper.mapKeyUsageForFirmware(e.keyUsage)};return(0,a.Right)(s)}else return(0,a.Left)(Error("[ContextModule] HttpPkiCertificateDataSource: failed to fetch PKI for given descriptor"))}catch{return(0,a.Left)(Error("[ContextModule] HttpPkiCertificateDataSource: failed to fetch PKI for given descriptor"))}}isValidPkiCertificateResponse(e,r){if(!this.isRecord(e)||!this.isRecord(e.descriptor))return!1;const t=e.descriptor;return typeof t.data!="string"||!this.isRecord(t.signatures)?!1:typeof t.signatures[r]=="string"}isRecord(e){return typeof e=="object"&&e!==null}};n=l([(0,c.injectable)(),d(0,(0,c.inject)(g.configTypes.Config)),d(1,(0,c.inject)(y.networkTypes.NetworkClient))],n);0&&(module.exports={HttpPkiCertificateDataSource});
2
2
  //# sourceMappingURL=HttpPkiCertificateDataSource.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/pki/data/HttpPkiCertificateDataSource.ts"],
4
- "sourcesContent": ["import { hexaStringToBuffer } from \"@ledgerhq/device-management-kit\";\nimport axios from \"axios\";\nimport { inject, injectable } from \"inversify\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport type {\n ContextModuleCalMode,\n ContextModuleServiceConfig,\n} from \"@/config/model/ContextModuleConfig\";\nimport { PkiCertificate } from \"@/pki/model/PkiCertificate\";\nimport { PkiCertificateInfo } from \"@/pki/model/PkiCertificateInfo\";\nimport { LEDGER_CLIENT_VERSION_HEADER } from \"@/shared/constant/HttpHeaders\";\nimport { SIGNATURE_TAG } from \"@/shared/model/SignatureTags\";\nimport { HexStringUtils } from \"@/shared/utils/HexStringUtils\";\nimport { KeyUsageMapper } from \"@/shared/utils/KeyUsageMapper\";\nimport PACKAGE from \"@root/package.json\";\n\nimport { type PkiCertificateDataSource } from \"./PkiCertificateDataSource\";\nimport {\n type PkiCertificateRequestDto,\n type PkiCertificateResponseDto,\n} from \"./pkiDataSourceTypes\";\n\n@injectable()\nexport class HttpPkiCertificateDataSource implements PkiCertificateDataSource {\n constructor(\n @inject(configTypes.Config)\n private readonly config: ContextModuleServiceConfig,\n ) {}\n\n async fetchCertificate(\n pkiCertificateInfo: PkiCertificateInfo,\n ): Promise<Either<Error, PkiCertificate | undefined>> {\n const requestDto: PkiCertificateRequestDto = {\n output: \"descriptor\",\n target_device: pkiCertificateInfo.targetDevice,\n latest: true,\n public_key_id: pkiCertificateInfo.keyId,\n public_key_usage: pkiCertificateInfo.keyUsage,\n };\n\n try {\n const pkiCertificateResponse = await axios.request<\n PkiCertificateResponseDto[]\n >({\n method: \"GET\",\n url: `${this.config.cal.url}/certificates`,\n params: requestDto,\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n },\n });\n\n if (\n pkiCertificateResponse.status == 200 &&\n pkiCertificateResponse.data !== undefined &&\n pkiCertificateResponse.data.length > 0 &&\n this.isValidPkiCertificateResponse(\n pkiCertificateResponse.data[0],\n this.config.cal.mode,\n )\n ) {\n const payload = hexaStringToBuffer(\n HexStringUtils.appendSignatureToPayload(\n pkiCertificateResponse.data[0].descriptor.data,\n pkiCertificateResponse.data[0].descriptor.signatures[\n this.config.cal.mode\n ],\n SIGNATURE_TAG,\n ),\n );\n if (!payload) {\n return Left(\n Error(\n \"[ContextModule] HttpPkiCertificateDataSource: Cannot generate payload from fetched PKI Certificate\",\n ),\n );\n }\n const pkiCertificate: PkiCertificate = {\n payload: payload,\n keyUsageNumber: KeyUsageMapper.mapKeyUsageForFirmware(\n pkiCertificateInfo.keyUsage,\n ),\n };\n return Right(pkiCertificate);\n } else {\n return Left(\n Error(\n \"[ContextModule] HttpPkiCertificateDataSource: failed to fetch PKI for given descriptor\",\n ),\n );\n }\n } catch (_error) {\n return Left(\n Error(\n \"[ContextModule] HttpPkiCertificateDataSource: failed to fetch PKI for given descriptor\",\n ),\n );\n }\n }\n\n private isValidPkiCertificateResponse(\n value: unknown,\n mode: ContextModuleCalMode,\n ): value is PkiCertificateResponseDto {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"descriptor\" in value &&\n typeof value.descriptor === \"object\" &&\n value.descriptor !== null &&\n \"data\" in value.descriptor &&\n typeof value.descriptor.data === \"string\" &&\n \"signatures\" in value.descriptor &&\n typeof value.descriptor.signatures === \"object\" &&\n value.descriptor.signatures !== null &&\n mode in value.descriptor.signatures &&\n typeof (value.descriptor.signatures as Record<string, unknown>)[mode] ===\n \"string\"\n );\n }\n}\n"],
5
- "mappings": "qtBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,2CACnCC,EAAkB,oBAClBC,EAAmC,qBACnCC,EAAoC,qBAEpCC,EAA4B,mCAO5BC,EAA6C,yCAC7CC,EAA8B,wCAC9BC,EAA+B,yCAC/BC,EAA+B,yCAC/BC,EAAoB,iCASb,IAAMC,EAAN,KAAuE,CAC5E,YAEmBC,EACjB,CADiB,YAAAA,CAChB,CAEH,MAAM,iBACJC,EACoD,CACpD,MAAMC,EAAuC,CAC3C,OAAQ,aACR,cAAeD,EAAmB,aAClC,OAAQ,GACR,cAAeA,EAAmB,MAClC,iBAAkBA,EAAmB,QACvC,EAEA,GAAI,CACF,MAAME,EAAyB,MAAM,EAAAC,QAAM,QAEzC,CACA,OAAQ,MACR,IAAK,GAAG,KAAK,OAAO,IAAI,GAAG,gBAC3B,OAAQF,EACR,QAAS,CACP,CAAC,8BAA4B,EAAG,kBAAkB,EAAAG,QAAQ,OAAO,EACnE,CACF,CAAC,EAED,GACEF,EAAuB,QAAU,KACjCA,EAAuB,OAAS,QAChCA,EAAuB,KAAK,OAAS,GACrC,KAAK,8BACHA,EAAuB,KAAK,CAAC,EAC7B,KAAK,OAAO,IAAI,IAClB,EACA,CACA,MAAMG,KAAU,sBACd,iBAAe,yBACbH,EAAuB,KAAK,CAAC,EAAE,WAAW,KAC1CA,EAAuB,KAAK,CAAC,EAAE,WAAW,WACxC,KAAK,OAAO,IAAI,IAClB,EACA,eACF,CACF,EACA,GAAI,CAACG,EACH,SAAO,QACL,MACE,oGACF,CACF,EAEF,MAAMC,EAAiC,CACrC,QAASD,EACT,eAAgB,iBAAe,uBAC7BL,EAAmB,QACrB,CACF,EACA,SAAO,SAAMM,CAAc,CAC7B,KACE,UAAO,QACL,MACE,wFACF,CACF,CAEJ,MAAiB,CACf,SAAO,QACL,MACE,wFACF,CACF,CACF,CACF,CAEQ,8BACNC,EACAC,EACoC,CACpC,OACE,OAAOD,GAAU,UACjBA,IAAU,MACV,eAAgBA,GAChB,OAAOA,EAAM,YAAe,UAC5BA,EAAM,aAAe,MACrB,SAAUA,EAAM,YAChB,OAAOA,EAAM,WAAW,MAAS,UACjC,eAAgBA,EAAM,YACtB,OAAOA,EAAM,WAAW,YAAe,UACvCA,EAAM,WAAW,aAAe,MAChCC,KAAQD,EAAM,WAAW,YACzB,OAAQA,EAAM,WAAW,WAAuCC,CAAI,GAClE,QAEN,CACF,EAjGaV,EAANW,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,cAAY,MAAM,IAFjBZ",
6
- "names": ["HttpPkiCertificateDataSource_exports", "__export", "HttpPkiCertificateDataSource", "__toCommonJS", "import_device_management_kit", "import_axios", "import_inversify", "import_purify_ts", "import_configTypes", "import_HttpHeaders", "import_SignatureTags", "import_HexStringUtils", "import_KeyUsageMapper", "import_package", "HttpPkiCertificateDataSource", "config", "pkiCertificateInfo", "requestDto", "pkiCertificateResponse", "axios", "PACKAGE", "payload", "pkiCertificate", "value", "mode", "__decorateClass", "__decorateParam"]
4
+ "sourcesContent": ["import {\n DmkNetworkClient,\n hexaStringToBuffer,\n} 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 {\n ContextModuleCalMode,\n ContextModuleServiceConfig,\n} from \"@/config/model/ContextModuleConfig\";\nimport { networkTypes } from \"@/network/di/networkTypes\";\nimport { PkiCertificate } from \"@/pki/model/PkiCertificate\";\nimport { PkiCertificateInfo } from \"@/pki/model/PkiCertificateInfo\";\nimport { SIGNATURE_TAG } from \"@/shared/model/SignatureTags\";\nimport { HexStringUtils } from \"@/shared/utils/HexStringUtils\";\nimport { KeyUsageMapper } from \"@/shared/utils/KeyUsageMapper\";\n\nimport { type PkiCertificateDataSource } from \"./PkiCertificateDataSource\";\nimport {\n type PkiCertificateRequestDto,\n type PkiCertificateResponseDto,\n} from \"./pkiDataSourceTypes\";\n\n@injectable()\nexport class HttpPkiCertificateDataSource implements PkiCertificateDataSource {\n constructor(\n @inject(configTypes.Config)\n private readonly config: ContextModuleServiceConfig,\n @inject(networkTypes.NetworkClient)\n private readonly http: DmkNetworkClient,\n ) {}\n\n async fetchCertificate(\n pkiCertificateInfo: PkiCertificateInfo,\n ): Promise<Either<Error, PkiCertificate | undefined>> {\n const requestDto: PkiCertificateRequestDto = {\n output: \"descriptor\",\n target_device: pkiCertificateInfo.targetDevice,\n latest: true,\n public_key_id: pkiCertificateInfo.keyId,\n public_key_usage: pkiCertificateInfo.keyUsage,\n };\n\n try {\n const data = await this.http.get(`${this.config.cal.url}/certificates`, {\n params: {\n output: requestDto.output,\n target_device: requestDto.target_device,\n latest: requestDto.latest,\n public_key_id: requestDto.public_key_id,\n public_key_usage: requestDto.public_key_usage,\n },\n });\n\n if (\n Array.isArray(data) &&\n data.length > 0 &&\n this.isValidPkiCertificateResponse(data[0], this.config.cal.mode)\n ) {\n const payload = hexaStringToBuffer(\n HexStringUtils.appendSignatureToPayload(\n data[0].descriptor.data,\n data[0].descriptor.signatures[this.config.cal.mode],\n SIGNATURE_TAG,\n ),\n );\n if (!payload) {\n return Left(\n Error(\n \"[ContextModule] HttpPkiCertificateDataSource: Cannot generate payload from fetched PKI Certificate\",\n ),\n );\n }\n const pkiCertificate: PkiCertificate = {\n payload: payload,\n keyUsageNumber: KeyUsageMapper.mapKeyUsageForFirmware(\n pkiCertificateInfo.keyUsage,\n ),\n };\n return Right(pkiCertificate);\n } else {\n return Left(\n Error(\n \"[ContextModule] HttpPkiCertificateDataSource: failed to fetch PKI for given descriptor\",\n ),\n );\n }\n } catch (_error) {\n return Left(\n Error(\n \"[ContextModule] HttpPkiCertificateDataSource: failed to fetch PKI for given descriptor\",\n ),\n );\n }\n }\n\n private isValidPkiCertificateResponse(\n value: unknown,\n mode: ContextModuleCalMode,\n ): value is PkiCertificateResponseDto {\n if (!this.isRecord(value) || !this.isRecord(value[\"descriptor\"])) {\n return false;\n }\n const descriptor = value[\"descriptor\"];\n if (\n typeof descriptor[\"data\"] !== \"string\" ||\n !this.isRecord(descriptor[\"signatures\"])\n ) {\n return false;\n }\n return typeof descriptor[\"signatures\"][mode] === \"string\";\n }\n\n private isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null;\n }\n}\n"],
5
+ "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAGO,2CACPC,EAAmC,qBACnCC,EAAoC,qBAEpCC,EAA4B,mCAK5BC,EAA6B,qCAG7BC,EAA8B,wCAC9BC,EAA+B,yCAC/BC,EAA+B,yCASxB,IAAMC,EAAN,KAAuE,CAC5E,YAEmBC,EAEAC,EACjB,CAHiB,YAAAD,EAEA,UAAAC,CAChB,CAEH,MAAM,iBACJC,EACoD,CACpD,MAAMC,EAAuC,CAC3C,OAAQ,aACR,cAAeD,EAAmB,aAClC,OAAQ,GACR,cAAeA,EAAmB,MAClC,iBAAkBA,EAAmB,QACvC,EAEA,GAAI,CACF,MAAME,EAAO,MAAM,KAAK,KAAK,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,gBAAiB,CACtE,OAAQ,CACN,OAAQD,EAAW,OACnB,cAAeA,EAAW,cAC1B,OAAQA,EAAW,OACnB,cAAeA,EAAW,cAC1B,iBAAkBA,EAAW,gBAC/B,CACF,CAAC,EAED,GACE,MAAM,QAAQC,CAAI,GAClBA,EAAK,OAAS,GACd,KAAK,8BAA8BA,EAAK,CAAC,EAAG,KAAK,OAAO,IAAI,IAAI,EAChE,CACA,MAAMC,KAAU,sBACd,iBAAe,yBACbD,EAAK,CAAC,EAAE,WAAW,KACnBA,EAAK,CAAC,EAAE,WAAW,WAAW,KAAK,OAAO,IAAI,IAAI,EAClD,eACF,CACF,EACA,GAAI,CAACC,EACH,SAAO,QACL,MACE,oGACF,CACF,EAEF,MAAMC,EAAiC,CACrC,QAASD,EACT,eAAgB,iBAAe,uBAC7BH,EAAmB,QACrB,CACF,EACA,SAAO,SAAMI,CAAc,CAC7B,KACE,UAAO,QACL,MACE,wFACF,CACF,CAEJ,MAAiB,CACf,SAAO,QACL,MACE,wFACF,CACF,CACF,CACF,CAEQ,8BACNC,EACAC,EACoC,CACpC,GAAI,CAAC,KAAK,SAASD,CAAK,GAAK,CAAC,KAAK,SAASA,EAAM,UAAa,EAC7D,MAAO,GAET,MAAME,EAAaF,EAAM,WACzB,OACE,OAAOE,EAAW,MAAY,UAC9B,CAAC,KAAK,SAASA,EAAW,UAAa,EAEhC,GAEF,OAAOA,EAAW,WAAcD,CAAI,GAAM,QACnD,CAEQ,SAASD,EAAkD,CACjE,OAAO,OAAOA,GAAU,UAAYA,IAAU,IAChD,CACF,EA5FaR,EAANW,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,cAAY,MAAM,GAEzBA,EAAA,eAAO,eAAa,aAAa,IAJzBZ",
6
+ "names": ["HttpPkiCertificateDataSource_exports", "__export", "HttpPkiCertificateDataSource", "__toCommonJS", "import_device_management_kit", "import_inversify", "import_purify_ts", "import_configTypes", "import_networkTypes", "import_SignatureTags", "import_HexStringUtils", "import_KeyUsageMapper", "HttpPkiCertificateDataSource", "config", "http", "pkiCertificateInfo", "requestDto", "data", "payload", "pkiCertificate", "value", "mode", "descriptor", "__decorateClass", "__decorateParam"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var d=Object.create;var f=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var C=(t,e,a,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of l(e))!k.call(t,i)&&i!==a&&f(t,i,{get:()=>e[i],enumerable:!(s=u(e,i))||s.enumerable});return t};var y=(t,e,a)=>(a=t!=null?d(p(t)):{},C(e||!t||!t.__esModule?f(a,"default",{value:t,enumerable:!0}):a,t));var o=y(require("axios")),r=require("purify-ts"),c=require("../../pki/data/HttpPkiCertificateDataSource"),n=require("../../pki/model/KeyUsage");vi.mock("axios");describe("HttpPkiCertificateDataSource",()=>{const t={cal:{url:"https://cal.com",mode:"test",branch:"main"}};describe("fetchCertificate",()=>{it("should return certificate",async()=>{const e={targetDevice:"targetDevice",keyUsage:n.KeyUsage.Calldata,keyId:"keyId"};vi.spyOn(o.default,"request").mockResolvedValue({status:200,data:[{descriptor:{data:"01020304",signatures:{test:"05060708"}}}]});const a=await new c.HttpPkiCertificateDataSource(t).fetchCertificate(e);expect(a).toEqual((0,r.Right)({keyUsageNumber:11,payload:new Uint8Array([1,2,3,4,21,4,5,6,7,8])}))}),it("should return an error when certificate is not found",async()=>{const e={targetDevice:"targetDevice",keyUsage:n.KeyUsage.Calldata,keyId:"keyId"};vi.spyOn(o.default,"request").mockResolvedValue({status:200,data:[]});const a=await new c.HttpPkiCertificateDataSource(t).fetchCertificate(e);expect(a).toEqual((0,r.Left)(Error("[ContextModule] HttpPkiCertificateDataSource: failed to fetch PKI for given descriptor")))}),it("should return an error when axios request fails",async()=>{const e={targetDevice:"targetDevice",keyUsage:n.KeyUsage.Calldata,keyId:"keyId"};vi.spyOn(o.default,"request").mockRejectedValue(new Error("error"));const a=await new c.HttpPkiCertificateDataSource(t).fetchCertificate(e);expect(a).toEqual((0,r.Left)(Error("[ContextModule] HttpPkiCertificateDataSource: failed to fetch PKI for given descriptor")))}),it("should return an error when payload cannot be generated",async()=>{const e={targetDevice:"targetDevice",keyUsage:n.KeyUsage.Calldata,keyId:"keyId"};vi.spyOn(o.default,"request").mockResolvedValue({status:200,data:[{descriptor:{data:"corrupteddata",signatures:{test:"05060708"}}}]});const a=await new c.HttpPkiCertificateDataSource(t).fetchCertificate(e);expect(a).toEqual((0,r.Left)(Error("[ContextModule] HttpPkiCertificateDataSource: Cannot generate payload from fetched PKI Certificate")))})})});
1
+ "use strict";var c=require("purify-ts"),o=require("../../pki/data/HttpPkiCertificateDataSource"),i=require("../../pki/model/KeyUsage");describe("HttpPkiCertificateDataSource",()=>{const n={cal:{url:"https://cal.com",mode:"test",branch:"main"}};let t,r;beforeEach(()=>{vi.clearAllMocks(),t={get:vi.fn()},r=new o.HttpPkiCertificateDataSource(n,t)}),describe("fetchCertificate",()=>{it("should return certificate",async()=>{const e={targetDevice:"targetDevice",keyUsage:i.KeyUsage.Calldata,keyId:"keyId"};t.get.mockResolvedValue([{descriptor:{data:"01020304",signatures:{test:"05060708"}}}]);const a=await r.fetchCertificate(e);expect(a).toEqual((0,c.Right)({keyUsageNumber:11,payload:new Uint8Array([1,2,3,4,21,4,5,6,7,8])}))}),it("should call the network client with the expected URL and params",async()=>{const e={targetDevice:"targetDevice",keyUsage:i.KeyUsage.Calldata,keyId:"keyId"};t.get.mockResolvedValue([]),await r.fetchCertificate(e),expect(t.get).toHaveBeenCalledWith("https://cal.com/certificates",{params:{output:"descriptor",target_device:"targetDevice",latest:!0,public_key_id:"keyId",public_key_usage:i.KeyUsage.Calldata}})}),it("should return an error when certificate is not found",async()=>{const e={targetDevice:"targetDevice",keyUsage:i.KeyUsage.Calldata,keyId:"keyId"};t.get.mockResolvedValue([]);const a=await r.fetchCertificate(e);expect(a).toEqual((0,c.Left)(Error("[ContextModule] HttpPkiCertificateDataSource: failed to fetch PKI for given descriptor")))}),it("should return an error when network client throws",async()=>{const e={targetDevice:"targetDevice",keyUsage:i.KeyUsage.Calldata,keyId:"keyId"};t.get.mockRejectedValue(new Error("error"));const a=await r.fetchCertificate(e);expect(a).toEqual((0,c.Left)(Error("[ContextModule] HttpPkiCertificateDataSource: failed to fetch PKI for given descriptor")))}),it("should return an error when payload cannot be generated",async()=>{const e={targetDevice:"targetDevice",keyUsage:i.KeyUsage.Calldata,keyId:"keyId"};t.get.mockResolvedValue([{descriptor:{data:"corrupteddata",signatures:{test:"05060708"}}}]);const a=await r.fetchCertificate(e);expect(a).toEqual((0,c.Left)(Error("[ContextModule] HttpPkiCertificateDataSource: Cannot generate payload from fetched PKI Certificate")))})})});
2
2
  //# sourceMappingURL=HttpPkiCertificateDataSource.test.js.map