@ledgerhq/context-module 0.0.0-develop-20250912001204 → 0.0.0-develop-20250916001143

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (312) hide show
  1. package/lib/cjs/package.json +1 -1
  2. package/lib/cjs/src/ContextModule.js +1 -1
  3. package/lib/cjs/src/ContextModule.js.map +1 -1
  4. package/lib/cjs/src/DefaultContextModule.js +1 -1
  5. package/lib/cjs/src/DefaultContextModule.js.map +3 -3
  6. package/lib/cjs/src/DefaultContextModule.test.js +1 -1
  7. package/lib/cjs/src/DefaultContextModule.test.js.map +2 -2
  8. package/lib/cjs/src/di.js +1 -1
  9. package/lib/cjs/src/di.js.map +3 -3
  10. package/lib/cjs/src/dynamic-network/domain/DynamicNetworkContextLoader.js +1 -1
  11. package/lib/cjs/src/dynamic-network/domain/DynamicNetworkContextLoader.js.map +3 -3
  12. package/lib/cjs/src/dynamic-network/domain/DynamicNetworkContextLoader.test.js +1 -1
  13. package/lib/cjs/src/dynamic-network/domain/DynamicNetworkContextLoader.test.js.map +3 -3
  14. package/lib/cjs/src/index.js +1 -1
  15. package/lib/cjs/src/index.js.map +2 -2
  16. package/lib/cjs/src/nft/di/nftModuleFactory.js +1 -1
  17. package/lib/cjs/src/nft/di/nftModuleFactory.js.map +3 -3
  18. package/lib/cjs/src/nft/di/nftTypes.js +1 -1
  19. package/lib/cjs/src/nft/di/nftTypes.js.map +2 -2
  20. package/lib/cjs/src/nft/domain/NftContextFieldLoader.js +2 -0
  21. package/lib/cjs/src/nft/domain/NftContextFieldLoader.js.map +7 -0
  22. package/lib/cjs/src/nft/domain/NftContextFieldLoader.test.js +2 -0
  23. package/lib/cjs/src/nft/domain/NftContextFieldLoader.test.js.map +7 -0
  24. package/lib/cjs/src/nft/domain/NftContextLoader.js +1 -1
  25. package/lib/cjs/src/nft/domain/NftContextLoader.js.map +3 -3
  26. package/lib/cjs/src/nft/domain/NftContextLoader.test.js +1 -1
  27. package/lib/cjs/src/nft/domain/NftContextLoader.test.js.map +3 -3
  28. package/lib/cjs/src/proxy/data/HttpProxyDataSource.js.map +7 -0
  29. package/lib/cjs/src/proxy/data/HttpProxyDataSource.test.js.map +7 -0
  30. package/lib/cjs/src/{transaction → proxy}/data/dto/ProxyDelegateCallDto.js.map +1 -1
  31. package/lib/cjs/src/{transaction → proxy}/data/dto/ProxyImplementationAddressDto.js.map +1 -1
  32. package/lib/cjs/src/proxy/di/proxyModuleFactory.js +2 -0
  33. package/lib/cjs/src/proxy/di/proxyModuleFactory.js.map +7 -0
  34. package/lib/cjs/src/proxy/di/proxyTypes.js +2 -0
  35. package/lib/cjs/src/proxy/di/proxyTypes.js.map +7 -0
  36. package/lib/cjs/src/proxy/domain/ProxyContextFieldLoader.js +2 -0
  37. package/lib/cjs/src/proxy/domain/ProxyContextFieldLoader.js.map +7 -0
  38. package/lib/cjs/src/proxy/domain/ProxyContextFieldLoader.test.js +2 -0
  39. package/lib/cjs/src/proxy/domain/ProxyContextFieldLoader.test.js.map +7 -0
  40. package/lib/cjs/src/{transaction → proxy}/model/ProxyDelegateCall.js.map +1 -1
  41. package/lib/cjs/src/{transaction → proxy}/model/ProxyImplementationAddress.js.map +1 -1
  42. package/lib/cjs/src/shared/domain/ContextFieldLoader.js +2 -0
  43. package/lib/cjs/src/shared/domain/ContextFieldLoader.js.map +7 -0
  44. package/lib/cjs/src/shared/domain/ContextLoader.js +1 -1
  45. package/lib/cjs/src/shared/domain/ContextLoader.js.map +1 -1
  46. package/lib/cjs/src/shared/model/ClearSignContext.js +1 -1
  47. package/lib/cjs/src/shared/model/ClearSignContext.js.map +3 -3
  48. package/lib/cjs/src/shared/model/TransactionContext.js +1 -1
  49. package/lib/cjs/src/shared/model/TransactionContext.js.map +1 -1
  50. package/lib/cjs/src/shared/model/TransactionFieldContext.js +2 -0
  51. package/lib/cjs/src/shared/model/TransactionFieldContext.js.map +7 -0
  52. package/lib/cjs/src/shared/model/TransactionSubset.js +1 -1
  53. package/lib/cjs/src/shared/model/TransactionSubset.js.map +1 -1
  54. package/lib/cjs/src/shared/model/TypedDataClearSignContext.js +1 -1
  55. package/lib/cjs/src/shared/model/TypedDataClearSignContext.js.map +3 -3
  56. package/lib/cjs/src/shared/model/TypedDataContext.js +1 -1
  57. package/lib/cjs/src/shared/model/TypedDataContext.js.map +1 -1
  58. package/lib/cjs/src/token/di/tokenModuleFactory.js +1 -1
  59. package/lib/cjs/src/token/di/tokenModuleFactory.js.map +3 -3
  60. package/lib/cjs/src/token/di/tokenTypes.js +1 -1
  61. package/lib/cjs/src/token/di/tokenTypes.js.map +2 -2
  62. package/lib/cjs/src/token/domain/TokenContextFieldLoader.js +2 -0
  63. package/lib/cjs/src/token/domain/TokenContextFieldLoader.js.map +7 -0
  64. package/lib/cjs/src/token/domain/TokenContextFieldLoader.test.js +2 -0
  65. package/lib/cjs/src/token/domain/TokenContextFieldLoader.test.js.map +7 -0
  66. package/lib/cjs/src/token/domain/TokenContextLoader.js +1 -1
  67. package/lib/cjs/src/token/domain/TokenContextLoader.js.map +3 -3
  68. package/lib/cjs/src/token/domain/TokenContextLoader.test.js +1 -1
  69. package/lib/cjs/src/token/domain/TokenContextLoader.test.js.map +3 -3
  70. package/lib/cjs/src/transaction/data/HttpTransactionDataSource.js +1 -1
  71. package/lib/cjs/src/transaction/data/HttpTransactionDataSource.js.map +2 -2
  72. package/lib/cjs/src/transaction/data/HttpTransactionDataSource.test.js +1 -1
  73. package/lib/cjs/src/transaction/data/HttpTransactionDataSource.test.js.map +3 -3
  74. package/lib/cjs/src/transaction/data/dto/CalldataDto.js +1 -1
  75. package/lib/cjs/src/transaction/data/dto/CalldataDto.js.map +1 -1
  76. package/lib/cjs/src/transaction/di/transactionModuleFactory.js +1 -1
  77. package/lib/cjs/src/transaction/di/transactionModuleFactory.js.map +3 -3
  78. package/lib/cjs/src/transaction/di/transactionTypes.js +1 -1
  79. package/lib/cjs/src/transaction/di/transactionTypes.js.map +2 -2
  80. package/lib/cjs/src/transaction/domain/TransactionContextLoader.js +1 -1
  81. package/lib/cjs/src/transaction/domain/TransactionContextLoader.js.map +3 -3
  82. package/lib/cjs/src/transaction/domain/TransactionContextLoader.test.js +1 -1
  83. package/lib/cjs/src/transaction/domain/TransactionContextLoader.test.js.map +3 -3
  84. package/lib/cjs/src/trusted-name/di/trustedNameModuleFactory.js +1 -1
  85. package/lib/cjs/src/trusted-name/di/trustedNameModuleFactory.js.map +3 -3
  86. package/lib/cjs/src/trusted-name/di/trustedNameTypes.js +1 -1
  87. package/lib/cjs/src/trusted-name/di/trustedNameTypes.js.map +2 -2
  88. package/lib/cjs/src/trusted-name/domain/TrustedNameContextFieldLoader.js +2 -0
  89. package/lib/cjs/src/trusted-name/domain/TrustedNameContextFieldLoader.js.map +7 -0
  90. package/lib/cjs/src/trusted-name/domain/TrustedNameContextFieldLoader.test.js +2 -0
  91. package/lib/cjs/src/trusted-name/domain/TrustedNameContextFieldLoader.test.js.map +7 -0
  92. package/lib/cjs/src/trusted-name/domain/TrustedNameContextLoader.js +1 -1
  93. package/lib/cjs/src/trusted-name/domain/TrustedNameContextLoader.js.map +3 -3
  94. package/lib/cjs/src/trusted-name/domain/TrustedNameContextLoader.test.js +1 -1
  95. package/lib/cjs/src/trusted-name/domain/TrustedNameContextLoader.test.js.map +3 -3
  96. package/lib/cjs/src/typed-data/data/FiltersDto.js +1 -1
  97. package/lib/cjs/src/typed-data/data/FiltersDto.js.map +1 -1
  98. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.js +1 -1
  99. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.js.map +3 -3
  100. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.test.js +1 -1
  101. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.test.js.map +3 -3
  102. package/lib/cjs/src/typed-data/data/TypedDataDataSource.js +1 -1
  103. package/lib/cjs/src/typed-data/data/TypedDataDataSource.js.map +1 -1
  104. package/lib/cjs/src/typed-data/domain/DefaultTypedDataContextLoader.js +1 -1
  105. package/lib/cjs/src/typed-data/domain/DefaultTypedDataContextLoader.js.map +3 -3
  106. package/lib/cjs/src/typed-data/domain/DefaultTypedDataContextLoader.test.js +1 -1
  107. package/lib/cjs/src/typed-data/domain/DefaultTypedDataContextLoader.test.js.map +3 -3
  108. package/lib/esm/package.json +1 -1
  109. package/lib/esm/src/DefaultContextModule.js +1 -1
  110. package/lib/esm/src/DefaultContextModule.js.map +3 -3
  111. package/lib/esm/src/DefaultContextModule.test.js +1 -1
  112. package/lib/esm/src/DefaultContextModule.test.js.map +2 -2
  113. package/lib/esm/src/di.js +1 -1
  114. package/lib/esm/src/di.js.map +3 -3
  115. package/lib/esm/src/dynamic-network/domain/DynamicNetworkContextLoader.js +1 -1
  116. package/lib/esm/src/dynamic-network/domain/DynamicNetworkContextLoader.js.map +3 -3
  117. package/lib/esm/src/dynamic-network/domain/DynamicNetworkContextLoader.test.js +1 -1
  118. package/lib/esm/src/dynamic-network/domain/DynamicNetworkContextLoader.test.js.map +3 -3
  119. package/lib/esm/src/index.js +1 -1
  120. package/lib/esm/src/index.js.map +2 -2
  121. package/lib/esm/src/nft/di/nftModuleFactory.js +1 -1
  122. package/lib/esm/src/nft/di/nftModuleFactory.js.map +3 -3
  123. package/lib/esm/src/nft/di/nftTypes.js +1 -1
  124. package/lib/esm/src/nft/di/nftTypes.js.map +2 -2
  125. package/lib/esm/src/nft/domain/NftContextFieldLoader.js +2 -0
  126. package/lib/esm/src/nft/domain/NftContextFieldLoader.js.map +7 -0
  127. package/lib/esm/src/nft/domain/NftContextFieldLoader.test.js +2 -0
  128. package/lib/esm/src/nft/domain/NftContextFieldLoader.test.js.map +7 -0
  129. package/lib/esm/src/nft/domain/NftContextLoader.js +1 -1
  130. package/lib/esm/src/nft/domain/NftContextLoader.js.map +3 -3
  131. package/lib/esm/src/nft/domain/NftContextLoader.test.js +1 -1
  132. package/lib/esm/src/nft/domain/NftContextLoader.test.js.map +3 -3
  133. package/lib/esm/src/proxy/data/HttpProxyDataSource.js.map +7 -0
  134. package/lib/esm/src/proxy/data/HttpProxyDataSource.test.js.map +7 -0
  135. package/lib/esm/src/proxy/di/proxyModuleFactory.js +2 -0
  136. package/lib/esm/src/proxy/di/proxyModuleFactory.js.map +7 -0
  137. package/lib/esm/src/proxy/di/proxyTypes.js +2 -0
  138. package/lib/esm/src/proxy/di/proxyTypes.js.map +7 -0
  139. package/lib/esm/src/proxy/domain/ProxyContextFieldLoader.js +2 -0
  140. package/lib/esm/src/proxy/domain/ProxyContextFieldLoader.js.map +7 -0
  141. package/lib/esm/src/proxy/domain/ProxyContextFieldLoader.test.js +2 -0
  142. package/lib/esm/src/proxy/domain/ProxyContextFieldLoader.test.js.map +7 -0
  143. package/lib/esm/src/shared/domain/ContextFieldLoader.js +2 -0
  144. package/lib/esm/src/shared/domain/ContextFieldLoader.js.map +7 -0
  145. package/lib/esm/src/shared/model/ClearSignContext.js +1 -1
  146. package/lib/esm/src/shared/model/ClearSignContext.js.map +3 -3
  147. package/lib/esm/src/shared/model/TransactionFieldContext.js +1 -0
  148. package/lib/esm/src/shared/model/TransactionFieldContext.js.map +7 -0
  149. package/lib/esm/src/shared/model/TypedDataClearSignContext.js +1 -1
  150. package/lib/esm/src/shared/model/TypedDataClearSignContext.js.map +3 -3
  151. package/lib/esm/src/token/di/tokenModuleFactory.js +1 -1
  152. package/lib/esm/src/token/di/tokenModuleFactory.js.map +3 -3
  153. package/lib/esm/src/token/di/tokenTypes.js +1 -1
  154. package/lib/esm/src/token/di/tokenTypes.js.map +2 -2
  155. package/lib/esm/src/token/domain/TokenContextFieldLoader.js +2 -0
  156. package/lib/esm/src/token/domain/TokenContextFieldLoader.js.map +7 -0
  157. package/lib/esm/src/token/domain/TokenContextFieldLoader.test.js +2 -0
  158. package/lib/esm/src/token/domain/TokenContextFieldLoader.test.js.map +7 -0
  159. package/lib/esm/src/token/domain/TokenContextLoader.js +1 -1
  160. package/lib/esm/src/token/domain/TokenContextLoader.js.map +3 -3
  161. package/lib/esm/src/token/domain/TokenContextLoader.test.js +1 -1
  162. package/lib/esm/src/token/domain/TokenContextLoader.test.js.map +3 -3
  163. package/lib/esm/src/transaction/data/HttpTransactionDataSource.js +1 -1
  164. package/lib/esm/src/transaction/data/HttpTransactionDataSource.js.map +3 -3
  165. package/lib/esm/src/transaction/data/HttpTransactionDataSource.test.js +1 -1
  166. package/lib/esm/src/transaction/data/HttpTransactionDataSource.test.js.map +3 -3
  167. package/lib/esm/src/transaction/di/transactionModuleFactory.js +1 -1
  168. package/lib/esm/src/transaction/di/transactionModuleFactory.js.map +3 -3
  169. package/lib/esm/src/transaction/di/transactionTypes.js +1 -1
  170. package/lib/esm/src/transaction/di/transactionTypes.js.map +2 -2
  171. package/lib/esm/src/transaction/domain/TransactionContextLoader.js +1 -1
  172. package/lib/esm/src/transaction/domain/TransactionContextLoader.js.map +3 -3
  173. package/lib/esm/src/transaction/domain/TransactionContextLoader.test.js +1 -1
  174. package/lib/esm/src/transaction/domain/TransactionContextLoader.test.js.map +3 -3
  175. package/lib/esm/src/trusted-name/di/trustedNameModuleFactory.js +1 -1
  176. package/lib/esm/src/trusted-name/di/trustedNameModuleFactory.js.map +3 -3
  177. package/lib/esm/src/trusted-name/di/trustedNameTypes.js +1 -1
  178. package/lib/esm/src/trusted-name/di/trustedNameTypes.js.map +2 -2
  179. package/lib/esm/src/trusted-name/domain/TrustedNameContextFieldLoader.js +2 -0
  180. package/lib/esm/src/trusted-name/domain/TrustedNameContextFieldLoader.js.map +7 -0
  181. package/lib/esm/src/trusted-name/domain/TrustedNameContextFieldLoader.test.js +2 -0
  182. package/lib/esm/src/trusted-name/domain/TrustedNameContextFieldLoader.test.js.map +7 -0
  183. package/lib/esm/src/trusted-name/domain/TrustedNameContextLoader.js +1 -1
  184. package/lib/esm/src/trusted-name/domain/TrustedNameContextLoader.js.map +3 -3
  185. package/lib/esm/src/trusted-name/domain/TrustedNameContextLoader.test.js +1 -1
  186. package/lib/esm/src/trusted-name/domain/TrustedNameContextLoader.test.js.map +3 -3
  187. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.js +1 -1
  188. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.js.map +3 -3
  189. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.test.js +1 -1
  190. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.test.js.map +3 -3
  191. package/lib/esm/src/typed-data/domain/DefaultTypedDataContextLoader.js +1 -1
  192. package/lib/esm/src/typed-data/domain/DefaultTypedDataContextLoader.js.map +3 -3
  193. package/lib/esm/src/typed-data/domain/DefaultTypedDataContextLoader.test.js +1 -1
  194. package/lib/esm/src/typed-data/domain/DefaultTypedDataContextLoader.test.js.map +3 -3
  195. package/lib/types/src/ContextModule.d.ts +5 -3
  196. package/lib/types/src/ContextModule.d.ts.map +1 -1
  197. package/lib/types/src/DefaultContextModule.d.ts +5 -2
  198. package/lib/types/src/DefaultContextModule.d.ts.map +1 -1
  199. package/lib/types/src/di.d.ts.map +1 -1
  200. package/lib/types/src/dynamic-network/domain/DynamicNetworkContextLoader.d.ts +1 -2
  201. package/lib/types/src/dynamic-network/domain/DynamicNetworkContextLoader.d.ts.map +1 -1
  202. package/lib/types/src/index.d.ts +1 -0
  203. package/lib/types/src/index.d.ts.map +1 -1
  204. package/lib/types/src/nft/di/nftModuleFactory.d.ts.map +1 -1
  205. package/lib/types/src/nft/di/nftTypes.d.ts +1 -0
  206. package/lib/types/src/nft/di/nftTypes.d.ts.map +1 -1
  207. package/lib/types/src/nft/domain/NftContextFieldLoader.d.ts +11 -0
  208. package/lib/types/src/nft/domain/NftContextFieldLoader.d.ts.map +1 -0
  209. package/lib/types/src/nft/domain/NftContextFieldLoader.test.d.ts +2 -0
  210. package/lib/types/src/nft/domain/NftContextFieldLoader.test.d.ts.map +1 -0
  211. package/lib/types/src/nft/domain/NftContextLoader.d.ts +1 -2
  212. package/lib/types/src/nft/domain/NftContextLoader.d.ts.map +1 -1
  213. package/lib/types/src/{transaction → proxy}/data/HttpProxyDataSource.d.ts +2 -2
  214. package/lib/types/src/proxy/data/HttpProxyDataSource.d.ts.map +1 -0
  215. package/lib/types/src/proxy/data/HttpProxyDataSource.test.d.ts.map +1 -0
  216. package/lib/types/src/proxy/data/dto/ProxyDelegateCallDto.d.ts.map +1 -0
  217. package/lib/types/src/proxy/data/dto/ProxyImplementationAddressDto.d.ts.map +1 -0
  218. package/lib/types/src/proxy/di/proxyModuleFactory.d.ts +3 -0
  219. package/lib/types/src/proxy/di/proxyModuleFactory.d.ts.map +1 -0
  220. package/lib/types/src/proxy/di/proxyTypes.d.ts +5 -0
  221. package/lib/types/src/proxy/di/proxyTypes.d.ts.map +1 -0
  222. package/lib/types/src/proxy/domain/ProxyContextFieldLoader.d.ts +13 -0
  223. package/lib/types/src/proxy/domain/ProxyContextFieldLoader.d.ts.map +1 -0
  224. package/lib/types/src/proxy/domain/ProxyContextFieldLoader.test.d.ts +2 -0
  225. package/lib/types/src/proxy/domain/ProxyContextFieldLoader.test.d.ts.map +1 -0
  226. package/lib/types/src/proxy/model/ProxyDelegateCall.d.ts.map +1 -0
  227. package/lib/types/src/proxy/model/ProxyImplementationAddress.d.ts.map +1 -0
  228. package/lib/types/src/shared/domain/ContextFieldLoader.d.ts +13 -0
  229. package/lib/types/src/shared/domain/ContextFieldLoader.d.ts.map +1 -0
  230. package/lib/types/src/shared/domain/ContextLoader.d.ts +2 -1
  231. package/lib/types/src/shared/domain/ContextLoader.d.ts.map +1 -1
  232. package/lib/types/src/shared/model/ClearSignContext.d.ts +26 -8
  233. package/lib/types/src/shared/model/ClearSignContext.d.ts.map +1 -1
  234. package/lib/types/src/shared/model/TransactionContext.d.ts +0 -13
  235. package/lib/types/src/shared/model/TransactionContext.d.ts.map +1 -1
  236. package/lib/types/src/shared/model/TransactionFieldContext.d.ts +26 -0
  237. package/lib/types/src/shared/model/TransactionFieldContext.d.ts.map +1 -0
  238. package/lib/types/src/shared/model/TransactionSubset.d.ts +1 -0
  239. package/lib/types/src/shared/model/TransactionSubset.d.ts.map +1 -1
  240. package/lib/types/src/shared/model/TypedDataClearSignContext.d.ts +33 -1
  241. package/lib/types/src/shared/model/TypedDataClearSignContext.d.ts.map +1 -1
  242. package/lib/types/src/shared/model/TypedDataContext.d.ts +3 -0
  243. package/lib/types/src/shared/model/TypedDataContext.d.ts.map +1 -1
  244. package/lib/types/src/token/di/tokenModuleFactory.d.ts.map +1 -1
  245. package/lib/types/src/token/di/tokenTypes.d.ts +1 -0
  246. package/lib/types/src/token/di/tokenTypes.d.ts.map +1 -1
  247. package/lib/types/src/token/domain/TokenContextFieldLoader.d.ts +11 -0
  248. package/lib/types/src/token/domain/TokenContextFieldLoader.d.ts.map +1 -0
  249. package/lib/types/src/token/domain/TokenContextFieldLoader.test.d.ts +2 -0
  250. package/lib/types/src/token/domain/TokenContextFieldLoader.test.d.ts.map +1 -0
  251. package/lib/types/src/token/domain/TokenContextLoader.d.ts +1 -2
  252. package/lib/types/src/token/domain/TokenContextLoader.d.ts.map +1 -1
  253. package/lib/types/src/transaction/data/HttpTransactionDataSource.d.ts.map +1 -1
  254. package/lib/types/src/transaction/data/dto/CalldataDto.d.ts +10 -1
  255. package/lib/types/src/transaction/data/dto/CalldataDto.d.ts.map +1 -1
  256. package/lib/types/src/transaction/di/transactionModuleFactory.d.ts.map +1 -1
  257. package/lib/types/src/transaction/di/transactionTypes.d.ts +0 -1
  258. package/lib/types/src/transaction/di/transactionTypes.d.ts.map +1 -1
  259. package/lib/types/src/transaction/domain/TransactionContextLoader.d.ts +3 -3
  260. package/lib/types/src/transaction/domain/TransactionContextLoader.d.ts.map +1 -1
  261. package/lib/types/src/trusted-name/di/trustedNameModuleFactory.d.ts.map +1 -1
  262. package/lib/types/src/trusted-name/di/trustedNameTypes.d.ts +1 -0
  263. package/lib/types/src/trusted-name/di/trustedNameTypes.d.ts.map +1 -1
  264. package/lib/types/src/trusted-name/domain/TrustedNameContextFieldLoader.d.ts +11 -0
  265. package/lib/types/src/trusted-name/domain/TrustedNameContextFieldLoader.d.ts.map +1 -0
  266. package/lib/types/src/trusted-name/domain/TrustedNameContextFieldLoader.test.d.ts +2 -0
  267. package/lib/types/src/trusted-name/domain/TrustedNameContextFieldLoader.test.d.ts.map +1 -0
  268. package/lib/types/src/trusted-name/domain/TrustedNameContextLoader.d.ts +1 -2
  269. package/lib/types/src/trusted-name/domain/TrustedNameContextLoader.d.ts.map +1 -1
  270. package/lib/types/src/typed-data/data/FiltersDto.d.ts +32 -2
  271. package/lib/types/src/typed-data/data/FiltersDto.d.ts.map +1 -1
  272. package/lib/types/src/typed-data/data/HttpTypedDataDataSource.d.ts +3 -0
  273. package/lib/types/src/typed-data/data/HttpTypedDataDataSource.d.ts.map +1 -1
  274. package/lib/types/src/typed-data/data/HttpTypedDataDataSource.test.d.ts +1 -0
  275. package/lib/types/src/typed-data/data/HttpTypedDataDataSource.test.d.ts.map +1 -1
  276. package/lib/types/src/typed-data/data/TypedDataDataSource.d.ts +2 -1
  277. package/lib/types/src/typed-data/data/TypedDataDataSource.d.ts.map +1 -1
  278. package/lib/types/src/typed-data/domain/DefaultTypedDataContextLoader.d.ts +12 -1
  279. package/lib/types/src/typed-data/domain/DefaultTypedDataContextLoader.d.ts.map +1 -1
  280. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  281. package/package.json +4 -4
  282. package/lib/cjs/src/transaction/data/HttpProxyDataSource.js.map +0 -7
  283. package/lib/cjs/src/transaction/data/HttpProxyDataSource.test.js.map +0 -7
  284. package/lib/esm/src/transaction/data/HttpProxyDataSource.js.map +0 -7
  285. package/lib/esm/src/transaction/data/HttpProxyDataSource.test.js.map +0 -7
  286. package/lib/types/src/transaction/data/HttpProxyDataSource.d.ts.map +0 -1
  287. package/lib/types/src/transaction/data/HttpProxyDataSource.test.d.ts.map +0 -1
  288. package/lib/types/src/transaction/data/dto/ProxyDelegateCallDto.d.ts.map +0 -1
  289. package/lib/types/src/transaction/data/dto/ProxyImplementationAddressDto.d.ts.map +0 -1
  290. package/lib/types/src/transaction/model/ProxyDelegateCall.d.ts.map +0 -1
  291. package/lib/types/src/transaction/model/ProxyImplementationAddress.d.ts.map +0 -1
  292. /package/lib/cjs/src/{transaction → proxy}/data/HttpProxyDataSource.js +0 -0
  293. /package/lib/cjs/src/{transaction → proxy}/data/HttpProxyDataSource.test.js +0 -0
  294. /package/lib/cjs/src/{transaction → proxy}/data/dto/ProxyDelegateCallDto.js +0 -0
  295. /package/lib/cjs/src/{transaction → proxy}/data/dto/ProxyImplementationAddressDto.js +0 -0
  296. /package/lib/cjs/src/{transaction → proxy}/model/ProxyDelegateCall.js +0 -0
  297. /package/lib/cjs/src/{transaction → proxy}/model/ProxyImplementationAddress.js +0 -0
  298. /package/lib/esm/src/{transaction → proxy}/data/HttpProxyDataSource.js +0 -0
  299. /package/lib/esm/src/{transaction → proxy}/data/HttpProxyDataSource.test.js +0 -0
  300. /package/lib/esm/src/{transaction → proxy}/data/dto/ProxyDelegateCallDto.js +0 -0
  301. /package/lib/esm/src/{transaction → proxy}/data/dto/ProxyDelegateCallDto.js.map +0 -0
  302. /package/lib/esm/src/{transaction → proxy}/data/dto/ProxyImplementationAddressDto.js +0 -0
  303. /package/lib/esm/src/{transaction → proxy}/data/dto/ProxyImplementationAddressDto.js.map +0 -0
  304. /package/lib/esm/src/{transaction → proxy}/model/ProxyDelegateCall.js +0 -0
  305. /package/lib/esm/src/{transaction → proxy}/model/ProxyDelegateCall.js.map +0 -0
  306. /package/lib/esm/src/{transaction → proxy}/model/ProxyImplementationAddress.js +0 -0
  307. /package/lib/esm/src/{transaction → proxy}/model/ProxyImplementationAddress.js.map +0 -0
  308. /package/lib/types/src/{transaction → proxy}/data/HttpProxyDataSource.test.d.ts +0 -0
  309. /package/lib/types/src/{transaction → proxy}/data/dto/ProxyDelegateCallDto.d.ts +0 -0
  310. /package/lib/types/src/{transaction → proxy}/data/dto/ProxyImplementationAddressDto.d.ts +0 -0
  311. /package/lib/types/src/{transaction → proxy}/model/ProxyDelegateCall.d.ts +0 -0
  312. /package/lib/types/src/{transaction → proxy}/model/ProxyImplementationAddress.d.ts +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/context-module",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "private": false,
5
5
  "license": "Apache-2.0",
6
6
  "exports": {
@@ -1,2 +1,2 @@
1
- "use strict";var a=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var p=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of C(t))!x.call(e,o)&&o!==r&&a(e,o,{get:()=>t[o],enumerable:!(n=i(t,o))||n.enumerable});return e};var s=e=>p(a({},"__esModule",{value:!0}),e);var l={};module.exports=s(l);
1
+ "use strict";var a=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var p=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of C(t))!x.call(e,o)&&o!==r&&a(e,o,{get:()=>t[o],enumerable:!(n=i(t,o))||n.enumerable});return e};var l=e=>p(a({},"__esModule",{value:!0}),e);var m={};module.exports=l(m);
2
2
  //# sourceMappingURL=ContextModule.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/ContextModule.ts"],
4
- "sourcesContent": ["import { type ClearSignContext } from \"@/shared/model/ClearSignContext\";\n\nimport { type SolanaTransactionContext } from \"./shared/model/SolanaTransactionContext\";\nimport {\n type TransactionContext,\n type TransactionFieldContext,\n} from \"./shared/model/TransactionContext\";\nimport { type TypedDataClearSignContext } from \"./shared/model/TypedDataClearSignContext\";\nimport { type TypedDataContext } from \"./shared/model/TypedDataContext\";\nimport { type SolanaTransactionContextResult } from \"./solana/domain/solanaContextTypes\";\nimport { type Web3CheckContext } from \"./web3-check/domain/web3CheckTypes\";\n\nexport interface ContextModule {\n getContext(field: TransactionFieldContext): Promise<ClearSignContext>;\n getContexts(transaction: TransactionContext): Promise<ClearSignContext[]>;\n getTypedDataFilters(\n typedData: TypedDataContext,\n ): Promise<TypedDataClearSignContext>;\n getWeb3Checks(\n transactionContext: Web3CheckContext,\n ): Promise<ClearSignContext | null>;\n getSolanaContext(\n transactionContext: SolanaTransactionContext,\n ): Promise<SolanaTransactionContextResult>;\n}\n"],
4
+ "sourcesContent": ["import { type ClearSignContext } from \"@/shared/model/ClearSignContext\";\n\nimport { type ContextFieldLoaderKind } from \"./shared/domain/ContextFieldLoader\";\nimport { type SolanaTransactionContext } from \"./shared/model/SolanaTransactionContext\";\nimport { type TransactionContext } from \"./shared/model/TransactionContext\";\nimport { type TransactionFieldContext } from \"./shared/model/TransactionFieldContext\";\nimport { type TypedDataClearSignContext } from \"./shared/model/TypedDataClearSignContext\";\nimport { type TypedDataContext } from \"./shared/model/TypedDataContext\";\nimport { type SolanaTransactionContextResult } from \"./solana/domain/solanaContextTypes\";\nimport { type Web3CheckContext } from \"./web3-check/domain/web3CheckTypes\";\n\nexport interface ContextModule {\n getContexts(ctx: TransactionContext): Promise<ClearSignContext[]>;\n getFieldContext<T extends ContextFieldLoaderKind>(\n field: TransactionFieldContext<T>,\n ): Promise<ClearSignContext>;\n getTypedDataFilters(\n typedData: TypedDataContext,\n ): Promise<TypedDataClearSignContext>;\n getWeb3Checks(\n transactionContext: Web3CheckContext,\n ): Promise<ClearSignContext | null>;\n getSolanaContext(\n transactionContext: SolanaTransactionContext,\n ): Promise<SolanaTransactionContextResult>;\n}\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["ContextModule_exports", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var n=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var _=Object.prototype.hasOwnProperty;var g=(a,t)=>{for(var o in t)n(a,o,{get:t[o],enumerable:!0})},D=(a,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of T(t))!_.call(a,e)&&e!==o&&n(a,e,{get:()=>t[e],enumerable:!(r=h(t,e))||r.enumerable});return a};var k=a=>D(n({},"__esModule",{value:!0}),a);var b={};g(b,{DefaultContextModule:()=>S});module.exports=k(b);var p=require("purify-ts"),d=require("./dynamic-network/di/dynamicNetworkTypes"),s=require("./transaction/di/transactionTypes"),C=require("./trusted-name/di/trustedNameTypes"),m=require("./external-plugin/di/externalPluginTypes"),l=require("./nft/di/nftTypes"),i=require("./shared/model/ClearSignContext"),c=require("./solana/di/solanaContextTypes"),x=require("./token/di/tokenTypes"),y=require("./typed-data/di/typedDataTypes"),L=require("./uniswap/di/uniswapTypes"),f=require("./web3-check/di/web3CheckTypes"),u=require("./di");class S{_container;_loaders;_typedDataLoader;_web3CheckLoader;_solanaLoader;constructor(t){this._container=(0,u.makeContainer)({config:t}),this._loaders=t.defaultLoaders?this._getDefaultLoaders():[],this._loaders.push(...t.customLoaders),this._typedDataLoader=t.customTypedDataLoader??this._getDefaultTypedDataLoader(),this._web3CheckLoader=t.customWeb3CheckLoader??this._getWeb3CheckLoader(),this._solanaLoader=t.customSolanaLoader??this._getSolanaLoader()}_getDefaultLoaders(){return[this._container.get(m.externalPluginTypes.ExternalPluginContextLoader),this._container.get(C.trustedNameTypes.TrustedNameContextLoader),this._container.get(l.nftTypes.NftContextLoader),this._container.get(x.tokenTypes.TokenContextLoader),this._container.get(s.transactionTypes.TransactionContextLoader),this._container.get(L.uniswapTypes.UniswapContextLoader),this._container.get(d.dynamicNetworkTypes.DynamicNetworkContextLoader)]}_getDefaultTypedDataLoader(){return this._container.get(y.typedDataTypes.TypedDataContextLoader)}_getWeb3CheckLoader(){return this._container.get(f.web3CheckTypes.Web3CheckContextLoader)}_getSolanaLoader(){try{return this._container.get(c.solanaContextTypes.SolanaContextLoader)}catch{return{load:async t=>(0,p.Left)(new Error("[ContextModule] - DefaultContextModule: no SolanaContextLoader bound"))}}}async getContexts(t){const o=this._loaders.map(e=>e.load(t));return(await Promise.all(o)).flat()}async getContext(t){const o=this._loaders.filter(e=>e.loadField).map(e=>e.loadField(t));return(await Promise.all(o)).find(e=>e!==null)||{type:i.ClearSignContextType.ERROR,error:new Error(`Field type not supported: ${t.type}`)}}async getTypedDataFilters(t){return this._typedDataLoader.load(t)}async getWeb3Checks(t){return(await this._web3CheckLoader.load(t)).caseOf({Right:r=>({type:i.ClearSignContextType.WEB3_CHECK,payload:r.descriptor,certificate:r.certificate}),Left:()=>null})}async getSolanaContext(t){return await this._solanaLoader.load(t)}}0&&(module.exports={DefaultContextModule});
1
+ "use strict";var n=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var _=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var k=(o,e)=>{for(var t in e)n(o,t,{get:e[t],enumerable:!0})},D=(o,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of _(e))!g.call(o,r)&&r!==t&&n(o,r,{get:()=>e[r],enumerable:!(a=h(e,r))||a.enumerable});return o};var S=o=>D(n({},"__esModule",{value:!0}),o);var F={};k(F,{DefaultContextModule:()=>b});module.exports=S(F);var s=require("purify-ts"),l=require("./dynamic-network/di/dynamicNetworkTypes"),x=require("./transaction/di/transactionTypes"),i=require("./trusted-name/di/trustedNameTypes"),m=require("./external-plugin/di/externalPluginTypes"),d=require("./nft/di/nftTypes"),L=require("./proxy/di/proxyTypes"),C=require("./shared/model/ClearSignContext"),c=require("./solana/di/solanaContextTypes"),p=require("./token/di/tokenTypes"),y=require("./typed-data/di/typedDataTypes"),f=require("./uniswap/di/uniswapTypes"),T=require("./web3-check/di/web3CheckTypes"),u=require("./di");class b{_container;_loaders;_typedDataLoader;_web3CheckLoader;_solanaLoader;_fieldLoaders;constructor(e){this._container=(0,u.makeContainer)({config:e}),this._loaders=e.defaultLoaders?this._getDefaultLoaders():[],this._loaders.push(...e.customLoaders),this._typedDataLoader=e.customTypedDataLoader??this._getDefaultTypedDataLoader(),this._web3CheckLoader=e.customWeb3CheckLoader??this._getWeb3CheckLoader(),this._solanaLoader=e.customSolanaLoader??this._getSolanaLoader(),this._fieldLoaders=[this._container.get(d.nftTypes.NftContextFieldLoader),this._container.get(p.tokenTypes.TokenContextFieldLoader),this._container.get(i.trustedNameTypes.TrustedNameContextFieldLoader),this._container.get(L.proxyTypes.ProxyContextFieldLoader)]}_getDefaultLoaders(){return[this._container.get(m.externalPluginTypes.ExternalPluginContextLoader),this._container.get(i.trustedNameTypes.TrustedNameContextLoader),this._container.get(d.nftTypes.NftContextLoader),this._container.get(p.tokenTypes.TokenContextLoader),this._container.get(x.transactionTypes.TransactionContextLoader),this._container.get(f.uniswapTypes.UniswapContextLoader),this._container.get(l.dynamicNetworkTypes.DynamicNetworkContextLoader)]}_getDefaultTypedDataLoader(){return this._container.get(y.typedDataTypes.TypedDataContextLoader)}_getWeb3CheckLoader(){return this._container.get(T.web3CheckTypes.Web3CheckContextLoader)}_getSolanaLoader(){try{return this._container.get(c.solanaContextTypes.SolanaContextLoader)}catch{return{load:async e=>(0,s.Left)(new Error("[ContextModule] - DefaultContextModule: no SolanaContextLoader bound"))}}}async getContexts(e){const t=this._loaders.map(r=>r.load(e));return(await Promise.all(t)).flat()}getFieldContext(e){const t=this._fieldLoaders.find(a=>a.kind===e.kind);return t?t.loadField(e):Promise.resolve({type:C.ClearSignContextType.ERROR,error:new Error(`Loader not found for kind: ${e.kind}`)})}async getTypedDataFilters(e){return this._typedDataLoader.load(e)}async getWeb3Checks(e){return(await this._web3CheckLoader.load(e)).caseOf({Right:a=>({type:C.ClearSignContextType.WEB3_CHECK,payload:a.descriptor,certificate:a.certificate}),Left:()=>null})}async getSolanaContext(e){return await this._solanaLoader.load(e)}}0&&(module.exports={DefaultContextModule});
2
2
  //# sourceMappingURL=DefaultContextModule.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/DefaultContextModule.ts"],
4
- "sourcesContent": ["import { type Container } from \"inversify\";\nimport { Left } from \"purify-ts\";\n\nimport { dynamicNetworkTypes } from \"@/dynamic-network/di/dynamicNetworkTypes\";\nimport { type DynamicNetworkContextLoader } from \"@/dynamic-network/domain/DynamicNetworkContextLoader\";\nimport type { TypedDataClearSignContext } from \"@/shared/model/TypedDataClearSignContext\";\nimport type { TypedDataContext } from \"@/shared/model/TypedDataContext\";\nimport { transactionTypes } from \"@/transaction/di/transactionTypes\";\nimport { trustedNameTypes } from \"@/trusted-name/di/trustedNameTypes\";\n\nimport { type ContextModuleConfig } from \"./config/model/ContextModuleConfig\";\nimport { externalPluginTypes } from \"./external-plugin/di/externalPluginTypes\";\nimport { type ExternalPluginContextLoader } from \"./external-plugin/domain/ExternalPluginContextLoader\";\nimport { nftTypes } from \"./nft/di/nftTypes\";\nimport { type NftContextLoader } from \"./nft/domain/NftContextLoader\";\nimport { type ContextLoader } from \"./shared/domain/ContextLoader\";\nimport {\n type ClearSignContext,\n type ClearSignContextSuccess,\n ClearSignContextType,\n} from \"./shared/model/ClearSignContext\";\nimport { type SolanaTransactionContext } from \"./shared/model/SolanaTransactionContext\";\nimport {\n type TransactionContext,\n type TransactionFieldContext,\n} from \"./shared/model/TransactionContext\";\nimport { solanaContextTypes } from \"./solana/di/solanaContextTypes\";\nimport { type SolanaContextLoader } from \"./solana/domain/SolanaContextLoader\";\nimport { type SolanaTransactionContextResult } from \"./solana/domain/solanaContextTypes\";\nimport { tokenTypes } from \"./token/di/tokenTypes\";\nimport { type TokenContextLoader } from \"./token/domain/TokenContextLoader\";\nimport { type TransactionContextLoader } from \"./transaction/domain/TransactionContextLoader\";\nimport { type TrustedNameContextLoader } from \"./trusted-name/domain/TrustedNameContextLoader\";\nimport { typedDataTypes } from \"./typed-data/di/typedDataTypes\";\nimport type { TypedDataContextLoader } from \"./typed-data/domain/TypedDataContextLoader\";\nimport { uniswapTypes } from \"./uniswap/di/uniswapTypes\";\nimport { type UniswapContextLoader } from \"./uniswap/domain/UniswapContextLoader\";\nimport { web3CheckTypes } from \"./web3-check/di/web3CheckTypes\";\nimport { type Web3CheckContextLoader } from \"./web3-check/domain/Web3CheckContextLoader\";\nimport {\n type Web3CheckContext,\n type Web3Checks,\n} from \"./web3-check/domain/web3CheckTypes\";\nimport { type ContextModule } from \"./ContextModule\";\nimport { makeContainer } from \"./di\";\n\nexport class DefaultContextModule implements ContextModule {\n private _container: Container;\n private _loaders: ContextLoader[];\n private _typedDataLoader: TypedDataContextLoader;\n private _web3CheckLoader: Web3CheckContextLoader;\n private _solanaLoader: SolanaContextLoader;\n\n constructor(args: ContextModuleConfig) {\n this._container = makeContainer({ config: args });\n this._loaders = args.defaultLoaders ? this._getDefaultLoaders() : [];\n this._loaders.push(...args.customLoaders);\n this._typedDataLoader =\n args.customTypedDataLoader ?? this._getDefaultTypedDataLoader();\n this._web3CheckLoader =\n args.customWeb3CheckLoader ?? this._getWeb3CheckLoader();\n this._solanaLoader = args.customSolanaLoader ?? this._getSolanaLoader();\n }\n\n private _getDefaultLoaders(): ContextLoader[] {\n return [\n this._container.get<ExternalPluginContextLoader>(\n externalPluginTypes.ExternalPluginContextLoader,\n ),\n this._container.get<TrustedNameContextLoader>(\n trustedNameTypes.TrustedNameContextLoader,\n ),\n this._container.get<NftContextLoader>(nftTypes.NftContextLoader),\n this._container.get<TokenContextLoader>(tokenTypes.TokenContextLoader),\n this._container.get<TransactionContextLoader>(\n transactionTypes.TransactionContextLoader,\n ),\n this._container.get<UniswapContextLoader>(\n uniswapTypes.UniswapContextLoader,\n ),\n this._container.get<DynamicNetworkContextLoader>(\n dynamicNetworkTypes.DynamicNetworkContextLoader,\n ),\n ];\n }\n\n private _getDefaultTypedDataLoader(): TypedDataContextLoader {\n return this._container.get<TypedDataContextLoader>(\n typedDataTypes.TypedDataContextLoader,\n );\n }\n\n private _getWeb3CheckLoader(): Web3CheckContextLoader {\n return this._container.get<Web3CheckContextLoader>(\n web3CheckTypes.Web3CheckContextLoader,\n );\n }\n\n private _getSolanaLoader(): SolanaContextLoader {\n try {\n return this._container.get<SolanaContextLoader>(\n solanaContextTypes.SolanaContextLoader,\n );\n } catch {\n return {\n load: async (_ctx) =>\n Left(\n new Error(\n \"[ContextModule] - DefaultContextModule: no SolanaContextLoader bound\",\n ),\n ),\n };\n }\n }\n\n public async getContexts(\n transaction: TransactionContext,\n ): Promise<ClearSignContext[]> {\n const promises = this._loaders.map((fetcher) => fetcher.load(transaction));\n const responses = await Promise.all(promises);\n return responses.flat();\n }\n\n public async getContext(\n field: TransactionFieldContext,\n ): Promise<ClearSignContext> {\n const promises = this._loaders\n .filter((fetcher) => fetcher.loadField)\n .map((fetcher) => fetcher.loadField!(field));\n const responses = await Promise.all(promises);\n return (\n responses.find((resp) => resp !== null) || {\n type: ClearSignContextType.ERROR,\n error: new Error(`Field type not supported: ${field.type}`),\n }\n );\n }\n\n public async getTypedDataFilters(\n typedData: TypedDataContext,\n ): Promise<TypedDataClearSignContext> {\n return this._typedDataLoader.load(typedData);\n }\n\n public async getWeb3Checks(\n transactionContext: Web3CheckContext,\n ): Promise<ClearSignContextSuccess<ClearSignContextType.WEB3_CHECK> | null> {\n const web3Checks = await this._web3CheckLoader.load(transactionContext);\n\n return web3Checks.caseOf({\n Right: (checks: Web3Checks) => ({\n type: ClearSignContextType.WEB3_CHECK,\n payload: checks.descriptor,\n certificate: checks.certificate,\n }),\n Left: () => null,\n });\n }\n\n public async getSolanaContext(\n transactionContext: SolanaTransactionContext,\n ): Promise<SolanaTransactionContextResult> {\n return await this._solanaLoader.load(transactionContext);\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAAqB,qBAErBC,EAAoC,oDAIpCC,EAAiC,6CACjCC,EAAiC,8CAGjCC,EAAoC,oDAEpCC,EAAyB,6BAGzBC,EAIO,2CAMPC,EAAmC,0CAGnCC,EAA2B,iCAI3BC,EAA+B,0CAE/BC,EAA6B,qCAE7BC,EAA+B,0CAO/BC,EAA8B,gBAEvB,MAAMd,CAA8C,CACjD,WACA,SACA,iBACA,iBACA,cAER,YAAYe,EAA2B,CACrC,KAAK,cAAa,iBAAc,CAAE,OAAQA,CAAK,CAAC,EAChD,KAAK,SAAWA,EAAK,eAAiB,KAAK,mBAAmB,EAAI,CAAC,EACnE,KAAK,SAAS,KAAK,GAAGA,EAAK,aAAa,EACxC,KAAK,iBACHA,EAAK,uBAAyB,KAAK,2BAA2B,EAChE,KAAK,iBACHA,EAAK,uBAAyB,KAAK,oBAAoB,EACzD,KAAK,cAAgBA,EAAK,oBAAsB,KAAK,iBAAiB,CACxE,CAEQ,oBAAsC,CAC5C,MAAO,CACL,KAAK,WAAW,IACd,sBAAoB,2BACtB,EACA,KAAK,WAAW,IACd,mBAAiB,wBACnB,EACA,KAAK,WAAW,IAAsB,WAAS,gBAAgB,EAC/D,KAAK,WAAW,IAAwB,aAAW,kBAAkB,EACrE,KAAK,WAAW,IACd,mBAAiB,wBACnB,EACA,KAAK,WAAW,IACd,eAAa,oBACf,EACA,KAAK,WAAW,IACd,sBAAoB,2BACtB,CACF,CACF,CAEQ,4BAAqD,CAC3D,OAAO,KAAK,WAAW,IACrB,iBAAe,sBACjB,CACF,CAEQ,qBAA8C,CACpD,OAAO,KAAK,WAAW,IACrB,iBAAe,sBACjB,CACF,CAEQ,kBAAwC,CAC9C,GAAI,CACF,OAAO,KAAK,WAAW,IACrB,qBAAmB,mBACrB,CACF,MAAQ,CACN,MAAO,CACL,KAAM,MAAOC,MACX,QACE,IAAI,MACF,sEACF,CACF,CACJ,CACF,CACF,CAEA,MAAa,YACXC,EAC6B,CAC7B,MAAMC,EAAW,KAAK,SAAS,IAAKC,GAAYA,EAAQ,KAAKF,CAAW,CAAC,EAEzE,OADkB,MAAM,QAAQ,IAAIC,CAAQ,GAC3B,KAAK,CACxB,CAEA,MAAa,WACXE,EAC2B,CAC3B,MAAMF,EAAW,KAAK,SACnB,OAAQC,GAAYA,EAAQ,SAAS,EACrC,IAAKA,GAAYA,EAAQ,UAAWC,CAAK,CAAC,EAE7C,OADkB,MAAM,QAAQ,IAAIF,CAAQ,GAEhC,KAAMG,GAASA,IAAS,IAAI,GAAK,CACzC,KAAM,uBAAqB,MAC3B,MAAO,IAAI,MAAM,6BAA6BD,EAAM,IAAI,EAAE,CAC5D,CAEJ,CAEA,MAAa,oBACXE,EACoC,CACpC,OAAO,KAAK,iBAAiB,KAAKA,CAAS,CAC7C,CAEA,MAAa,cACXC,EAC0E,CAG1E,OAFmB,MAAM,KAAK,iBAAiB,KAAKA,CAAkB,GAEpD,OAAO,CACvB,MAAQC,IAAwB,CAC9B,KAAM,uBAAqB,WAC3B,QAASA,EAAO,WAChB,YAAaA,EAAO,WACtB,GACA,KAAM,IAAM,IACd,CAAC,CACH,CAEA,MAAa,iBACXD,EACyC,CACzC,OAAO,MAAM,KAAK,cAAc,KAAKA,CAAkB,CACzD,CACF",
6
- "names": ["DefaultContextModule_exports", "__export", "DefaultContextModule", "__toCommonJS", "import_purify_ts", "import_dynamicNetworkTypes", "import_transactionTypes", "import_trustedNameTypes", "import_externalPluginTypes", "import_nftTypes", "import_ClearSignContext", "import_solanaContextTypes", "import_tokenTypes", "import_typedDataTypes", "import_uniswapTypes", "import_web3CheckTypes", "import_di", "args", "_ctx", "transaction", "promises", "fetcher", "field", "resp", "typedData", "transactionContext", "checks"]
4
+ "sourcesContent": ["import { type Container } from \"inversify\";\nimport { Left } from \"purify-ts\";\n\nimport { dynamicNetworkTypes } from \"@/dynamic-network/di/dynamicNetworkTypes\";\nimport { type DynamicNetworkContextLoader } from \"@/dynamic-network/domain/DynamicNetworkContextLoader\";\nimport type { TypedDataClearSignContext } from \"@/shared/model/TypedDataClearSignContext\";\nimport type { TypedDataContext } from \"@/shared/model/TypedDataContext\";\nimport { transactionTypes } from \"@/transaction/di/transactionTypes\";\nimport { trustedNameTypes } from \"@/trusted-name/di/trustedNameTypes\";\n\nimport { type ContextModuleConfig } from \"./config/model/ContextModuleConfig\";\nimport { externalPluginTypes } from \"./external-plugin/di/externalPluginTypes\";\nimport { type ExternalPluginContextLoader } from \"./external-plugin/domain/ExternalPluginContextLoader\";\nimport { nftTypes } from \"./nft/di/nftTypes\";\nimport { type NftContextLoader } from \"./nft/domain/NftContextLoader\";\nimport { proxyTypes } from \"./proxy/di/proxyTypes\";\nimport {\n type ContextFieldLoader,\n type ContextFieldLoaderKind,\n} from \"./shared/domain/ContextFieldLoader\";\nimport { type ContextLoader } from \"./shared/domain/ContextLoader\";\nimport {\n type ClearSignContext,\n type ClearSignContextSuccess,\n ClearSignContextType,\n} from \"./shared/model/ClearSignContext\";\nimport { type SolanaTransactionContext } from \"./shared/model/SolanaTransactionContext\";\nimport { type TransactionContext } from \"./shared/model/TransactionContext\";\nimport { type TransactionFieldContext } from \"./shared/model/TransactionFieldContext\";\nimport { solanaContextTypes } from \"./solana/di/solanaContextTypes\";\nimport { type SolanaContextLoader } from \"./solana/domain/SolanaContextLoader\";\nimport { type SolanaTransactionContextResult } from \"./solana/domain/solanaContextTypes\";\nimport { tokenTypes } from \"./token/di/tokenTypes\";\nimport { type TokenContextLoader } from \"./token/domain/TokenContextLoader\";\nimport { type TransactionContextLoader } from \"./transaction/domain/TransactionContextLoader\";\nimport { type TrustedNameContextLoader } from \"./trusted-name/domain/TrustedNameContextLoader\";\nimport { typedDataTypes } from \"./typed-data/di/typedDataTypes\";\nimport type { TypedDataContextLoader } from \"./typed-data/domain/TypedDataContextLoader\";\nimport { uniswapTypes } from \"./uniswap/di/uniswapTypes\";\nimport { type UniswapContextLoader } from \"./uniswap/domain/UniswapContextLoader\";\nimport { web3CheckTypes } from \"./web3-check/di/web3CheckTypes\";\nimport { type Web3CheckContextLoader } from \"./web3-check/domain/Web3CheckContextLoader\";\nimport {\n type Web3CheckContext,\n type Web3Checks,\n} from \"./web3-check/domain/web3CheckTypes\";\nimport { type ContextModule } from \"./ContextModule\";\nimport { makeContainer } from \"./di\";\n\nexport class DefaultContextModule implements ContextModule {\n private _container: Container;\n private _loaders: ContextLoader[];\n private _typedDataLoader: TypedDataContextLoader;\n private _web3CheckLoader: Web3CheckContextLoader;\n private _solanaLoader: SolanaContextLoader;\n private _fieldLoaders: ContextFieldLoader<ContextFieldLoaderKind>[];\n\n constructor(args: ContextModuleConfig) {\n this._container = makeContainer({ config: args });\n this._loaders = args.defaultLoaders ? this._getDefaultLoaders() : [];\n this._loaders.push(...args.customLoaders);\n this._typedDataLoader =\n args.customTypedDataLoader ?? this._getDefaultTypedDataLoader();\n this._web3CheckLoader =\n args.customWeb3CheckLoader ?? this._getWeb3CheckLoader();\n this._solanaLoader = args.customSolanaLoader ?? this._getSolanaLoader();\n\n this._fieldLoaders = [\n this._container.get<ContextFieldLoader<ContextFieldLoaderKind.NFT>>(\n nftTypes.NftContextFieldLoader,\n ),\n this._container.get<ContextFieldLoader<ContextFieldLoaderKind.TOKEN>>(\n tokenTypes.TokenContextFieldLoader,\n ),\n this._container.get<\n ContextFieldLoader<ContextFieldLoaderKind.TRUSTED_NAME>\n >(trustedNameTypes.TrustedNameContextFieldLoader),\n this._container.get<\n ContextFieldLoader<ContextFieldLoaderKind.PROXY_DELEGATE_CALL>\n >(proxyTypes.ProxyContextFieldLoader),\n ];\n }\n\n private _getDefaultLoaders(): ContextLoader[] {\n return [\n this._container.get<ExternalPluginContextLoader>(\n externalPluginTypes.ExternalPluginContextLoader,\n ),\n this._container.get<TrustedNameContextLoader>(\n trustedNameTypes.TrustedNameContextLoader,\n ),\n this._container.get<NftContextLoader>(nftTypes.NftContextLoader),\n this._container.get<TokenContextLoader>(tokenTypes.TokenContextLoader),\n this._container.get<TransactionContextLoader>(\n transactionTypes.TransactionContextLoader,\n ),\n this._container.get<UniswapContextLoader>(\n uniswapTypes.UniswapContextLoader,\n ),\n this._container.get<DynamicNetworkContextLoader>(\n dynamicNetworkTypes.DynamicNetworkContextLoader,\n ),\n ];\n }\n\n private _getDefaultTypedDataLoader(): TypedDataContextLoader {\n return this._container.get<TypedDataContextLoader>(\n typedDataTypes.TypedDataContextLoader,\n );\n }\n\n private _getWeb3CheckLoader(): Web3CheckContextLoader {\n return this._container.get<Web3CheckContextLoader>(\n web3CheckTypes.Web3CheckContextLoader,\n );\n }\n\n private _getSolanaLoader(): SolanaContextLoader {\n try {\n return this._container.get<SolanaContextLoader>(\n solanaContextTypes.SolanaContextLoader,\n );\n } catch {\n return {\n load: async (_ctx) =>\n Left(\n new Error(\n \"[ContextModule] - DefaultContextModule: no SolanaContextLoader bound\",\n ),\n ),\n };\n }\n }\n\n public async getContexts(\n transaction: TransactionContext,\n ): Promise<ClearSignContext[]> {\n const promises = this._loaders.map((fetcher) => fetcher.load(transaction));\n const responses = await Promise.all(promises);\n return responses.flat();\n }\n\n public getFieldContext<T extends ContextFieldLoaderKind>(\n field: TransactionFieldContext<T>,\n ): Promise<ClearSignContext> {\n const loader = this._fieldLoaders.find((l) => l.kind === field.kind);\n if (!loader) {\n return Promise.resolve({\n type: ClearSignContextType.ERROR,\n error: new Error(`Loader not found for kind: ${field.kind}`),\n });\n }\n return loader.loadField(field);\n }\n\n public async getTypedDataFilters(\n typedData: TypedDataContext,\n ): Promise<TypedDataClearSignContext> {\n return this._typedDataLoader.load(typedData);\n }\n\n public async getWeb3Checks(\n transactionContext: Web3CheckContext,\n ): Promise<ClearSignContextSuccess<ClearSignContextType.WEB3_CHECK> | null> {\n const web3Checks = await this._web3CheckLoader.load(transactionContext);\n\n return web3Checks.caseOf({\n Right: (checks: Web3Checks) => ({\n type: ClearSignContextType.WEB3_CHECK,\n payload: checks.descriptor,\n certificate: checks.certificate,\n }),\n Left: () => null,\n });\n }\n\n public async getSolanaContext(\n transactionContext: SolanaTransactionContext,\n ): Promise<SolanaTransactionContextResult> {\n return await this._solanaLoader.load(transactionContext);\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAAqB,qBAErBC,EAAoC,oDAIpCC,EAAiC,6CACjCC,EAAiC,8CAGjCC,EAAoC,oDAEpCC,EAAyB,6BAEzBC,EAA2B,iCAM3BC,EAIO,2CAIPC,EAAmC,0CAGnCC,EAA2B,iCAI3BC,EAA+B,0CAE/BC,EAA6B,qCAE7BC,EAA+B,0CAO/BC,EAA8B,gBAEvB,MAAMf,CAA8C,CACjD,WACA,SACA,iBACA,iBACA,cACA,cAER,YAAYgB,EAA2B,CACrC,KAAK,cAAa,iBAAc,CAAE,OAAQA,CAAK,CAAC,EAChD,KAAK,SAAWA,EAAK,eAAiB,KAAK,mBAAmB,EAAI,CAAC,EACnE,KAAK,SAAS,KAAK,GAAGA,EAAK,aAAa,EACxC,KAAK,iBACHA,EAAK,uBAAyB,KAAK,2BAA2B,EAChE,KAAK,iBACHA,EAAK,uBAAyB,KAAK,oBAAoB,EACzD,KAAK,cAAgBA,EAAK,oBAAsB,KAAK,iBAAiB,EAEtE,KAAK,cAAgB,CACnB,KAAK,WAAW,IACd,WAAS,qBACX,EACA,KAAK,WAAW,IACd,aAAW,uBACb,EACA,KAAK,WAAW,IAEd,mBAAiB,6BAA6B,EAChD,KAAK,WAAW,IAEd,aAAW,uBAAuB,CACtC,CACF,CAEQ,oBAAsC,CAC5C,MAAO,CACL,KAAK,WAAW,IACd,sBAAoB,2BACtB,EACA,KAAK,WAAW,IACd,mBAAiB,wBACnB,EACA,KAAK,WAAW,IAAsB,WAAS,gBAAgB,EAC/D,KAAK,WAAW,IAAwB,aAAW,kBAAkB,EACrE,KAAK,WAAW,IACd,mBAAiB,wBACnB,EACA,KAAK,WAAW,IACd,eAAa,oBACf,EACA,KAAK,WAAW,IACd,sBAAoB,2BACtB,CACF,CACF,CAEQ,4BAAqD,CAC3D,OAAO,KAAK,WAAW,IACrB,iBAAe,sBACjB,CACF,CAEQ,qBAA8C,CACpD,OAAO,KAAK,WAAW,IACrB,iBAAe,sBACjB,CACF,CAEQ,kBAAwC,CAC9C,GAAI,CACF,OAAO,KAAK,WAAW,IACrB,qBAAmB,mBACrB,CACF,MAAQ,CACN,MAAO,CACL,KAAM,MAAOC,MACX,QACE,IAAI,MACF,sEACF,CACF,CACJ,CACF,CACF,CAEA,MAAa,YACXC,EAC6B,CAC7B,MAAMC,EAAW,KAAK,SAAS,IAAKC,GAAYA,EAAQ,KAAKF,CAAW,CAAC,EAEzE,OADkB,MAAM,QAAQ,IAAIC,CAAQ,GAC3B,KAAK,CACxB,CAEO,gBACLE,EAC2B,CAC3B,MAAMC,EAAS,KAAK,cAAc,KAAMC,GAAMA,EAAE,OAASF,EAAM,IAAI,EACnE,OAAKC,EAMEA,EAAO,UAAUD,CAAK,EALpB,QAAQ,QAAQ,CACrB,KAAM,uBAAqB,MAC3B,MAAO,IAAI,MAAM,8BAA8BA,EAAM,IAAI,EAAE,CAC7D,CAAC,CAGL,CAEA,MAAa,oBACXG,EACoC,CACpC,OAAO,KAAK,iBAAiB,KAAKA,CAAS,CAC7C,CAEA,MAAa,cACXC,EAC0E,CAG1E,OAFmB,MAAM,KAAK,iBAAiB,KAAKA,CAAkB,GAEpD,OAAO,CACvB,MAAQC,IAAwB,CAC9B,KAAM,uBAAqB,WAC3B,QAASA,EAAO,WAChB,YAAaA,EAAO,WACtB,GACA,KAAM,IAAM,IACd,CAAC,CACH,CAEA,MAAa,iBACXD,EACyC,CACzC,OAAO,MAAM,KAAK,cAAc,KAAKA,CAAkB,CACzD,CACF",
6
+ "names": ["DefaultContextModule_exports", "__export", "DefaultContextModule", "__toCommonJS", "import_purify_ts", "import_dynamicNetworkTypes", "import_transactionTypes", "import_trustedNameTypes", "import_externalPluginTypes", "import_nftTypes", "import_proxyTypes", "import_ClearSignContext", "import_solanaContextTypes", "import_tokenTypes", "import_typedDataTypes", "import_uniswapTypes", "import_web3CheckTypes", "import_di", "args", "_ctx", "transaction", "promises", "fetcher", "field", "loader", "l", "typedData", "transactionContext", "checks"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var r=require("@ledgerhq/device-management-kit"),s=require("purify-ts"),o=require("./DefaultContextModule");const d=()=>({load:vi.fn(),loadField:vi.fn()});describe("DefaultContextModule",()=>{const c={load:vi.fn()},a={customLoaders:[],defaultLoaders:!1,customTypedDataLoader:c,cal:{url:"https://cal/v1",mode:"prod",branch:"main"},web3checks:{url:"https://web3checks/v3"},metadataServiceDomain:{url:"https://metadata.com"},originToken:"originToken"};beforeEach(()=>{vi.restoreAllMocks()}),it("should initialize the context module with all the default loaders",async()=>{const t=await new o.DefaultContextModule(a).getContexts({});expect(t).toEqual([])}),it("should return an empty array when no loaders",async()=>{const t=await new o.DefaultContextModule(a).getContexts({});expect(t).toEqual([])}),it("should call all fetch method from metadata fetcher",async()=>{const e=d();await new o.DefaultContextModule({...a,customLoaders:[e,e]}).getContexts({}),expect(e.load).toHaveBeenCalledTimes(2)}),it("should return an array of context response",async()=>{const e=d(),t=[[{type:"provideERC20Info",payload:"payload1"}],[{type:"provideERC20Info",payload:"payload2"},{type:"plugin",payload:"payload3"}]];vi.spyOn(e,"load").mockResolvedValueOnce(t[0]).mockResolvedValueOnce(t[1]);const l=await new o.DefaultContextModule({...a,customLoaders:[e,e]}).getContexts({});expect(e.load).toHaveBeenCalledTimes(2),expect(l).toEqual(t.flat())}),it("should call the typed data loader",async()=>{await new o.DefaultContextModule({...a,customTypedDataLoader:c}).getTypedDataFilters({}),expect(c.load).toHaveBeenCalledTimes(1)}),it("should return a single context",async()=>{const e=d(),t=[null,{type:"token",payload:"payload"}];vi.spyOn(e,"loadField").mockResolvedValueOnce(t[0]).mockResolvedValueOnce(t[1]);const l=await new o.DefaultContextModule({...a,customLoaders:[e,{load:vi.fn()},e]}).getContext({type:"token"});expect(e.loadField).toHaveBeenCalledTimes(2),expect(l).toEqual({type:"token",payload:"payload"})}),it("should return a web3 check context",async()=>{const e=d();vi.spyOn(e,"load").mockResolvedValueOnce((0,s.Right)({descriptor:"payload"}));const n=await new o.DefaultContextModule({...a,customLoaders:[],customWeb3CheckLoader:e}).getWeb3Checks({deviceModelId:r.DeviceModelId.FLEX,from:"from",rawTx:"rawTx",chainId:1});expect(e.load).toHaveBeenCalledTimes(1),expect(n).toEqual({type:"web3Check",payload:"payload"})}),it("should return null if no web3 check context",async()=>{const e=d();vi.spyOn(e,"load").mockResolvedValue((0,s.Left)(new Error("error")));const n=await new o.DefaultContextModule({...a,customLoaders:[],customWeb3CheckLoader:e}).getWeb3Checks({deviceModelId:r.DeviceModelId.FLEX,from:"from",rawTx:"rawTx",chainId:1});expect(e.load).toHaveBeenCalledTimes(1),expect(n).toBeNull()}),it("context field not supported",async()=>{const e=d(),t=[null,null];vi.spyOn(e,"loadField").mockResolvedValueOnce(t[0]).mockResolvedValueOnce(t[1]);const l=await new o.DefaultContextModule({...a,customLoaders:[e,{load:vi.fn()},e]}).getContext({type:"token"});expect(e.loadField).toHaveBeenCalledTimes(2),expect(l).toEqual({type:"error",error:new Error("Field type not supported: token")})}),it("getField not implemented",async()=>{const t=await new o.DefaultContextModule({...a,customLoaders:[{load:vi.fn()}]}).getContext({type:"token"});expect(t).toEqual({type:"error",error:new Error("Field type not supported: token")})}),it("should throw an error if origin token is not provided",()=>{expect(()=>new o.DefaultContextModule({...a,originToken:void 0})).toThrow("Origin token is required")})});
1
+ "use strict";var r=require("@ledgerhq/device-management-kit"),l=require("purify-ts"),o=require("./DefaultContextModule");const d=()=>({load:vi.fn(),loadField:vi.fn()});describe("DefaultContextModule",()=>{const c={load:vi.fn()},a={customLoaders:[],defaultLoaders:!1,customTypedDataLoader:c,cal:{url:"https://cal/v1",mode:"prod",branch:"main"},web3checks:{url:"https://web3checks/v3"},metadataServiceDomain:{url:"https://metadata.com"},originToken:"originToken"};beforeEach(()=>{vi.restoreAllMocks()}),it("should initialize the context module with all the default loaders",async()=>{const t=await new o.DefaultContextModule(a).getContexts({});expect(t).toEqual([])}),it("should return an empty array when no loaders",async()=>{const t=await new o.DefaultContextModule(a).getContexts({});expect(t).toEqual([])}),it("should call all fetch method from metadata fetcher",async()=>{const e=d();await new o.DefaultContextModule({...a,customLoaders:[e,e]}).getContexts({}),expect(e.load).toHaveBeenCalledTimes(2)}),it("should return an array of context response",async()=>{const e=d(),t=[[{type:"provideERC20Info",payload:"payload1"}],[{type:"provideERC20Info",payload:"payload2"},{type:"plugin",payload:"payload3"}]];vi.spyOn(e,"load").mockResolvedValueOnce(t[0]).mockResolvedValueOnce(t[1]);const s=await new o.DefaultContextModule({...a,customLoaders:[e,e]}).getContexts({});expect(e.load).toHaveBeenCalledTimes(2),expect(s).toEqual(t.flat())}),it("should call the typed data loader",async()=>{await new o.DefaultContextModule({...a,customTypedDataLoader:c}).getTypedDataFilters({}),expect(c.load).toHaveBeenCalledTimes(1)}),it("should return a web3 check context",async()=>{const e=d();vi.spyOn(e,"load").mockResolvedValueOnce((0,l.Right)({descriptor:"payload"}));const n=await new o.DefaultContextModule({...a,customLoaders:[],customWeb3CheckLoader:e}).getWeb3Checks({deviceModelId:r.DeviceModelId.FLEX,from:"from",rawTx:"rawTx",chainId:1});expect(e.load).toHaveBeenCalledTimes(1),expect(n).toEqual({type:"web3Check",payload:"payload"})}),it("should return null if no web3 check context",async()=>{const e=d();vi.spyOn(e,"load").mockResolvedValue((0,l.Left)(new Error("error")));const n=await new o.DefaultContextModule({...a,customLoaders:[],customWeb3CheckLoader:e}).getWeb3Checks({deviceModelId:r.DeviceModelId.FLEX,from:"from",rawTx:"rawTx",chainId:1});expect(e.load).toHaveBeenCalledTimes(1),expect(n).toBeNull()}),it("should throw an error if origin token is not provided",()=>{expect(()=>new o.DefaultContextModule({...a,originToken:void 0})).toThrow("Origin token is required")})});
2
2
  //# sourceMappingURL=DefaultContextModule.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/DefaultContextModule.test.ts"],
4
- "sourcesContent": ["import { DeviceModelId } from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { type ContextModuleConfig } from \"./config/model/ContextModuleConfig\";\nimport {\n type TransactionContext,\n type TransactionFieldContext,\n} from \"./shared/model/TransactionContext\";\nimport { type TypedDataContext } from \"./shared/model/TypedDataContext\";\nimport type { TypedDataContextLoader } from \"./typed-data/domain/TypedDataContextLoader\";\nimport { DefaultContextModule } from \"./DefaultContextModule\";\n\nconst contextLoaderStubBuilder = () => {\n return { load: vi.fn(), loadField: vi.fn() };\n};\n\ndescribe(\"DefaultContextModule\", () => {\n const typedDataLoader: TypedDataContextLoader = { load: vi.fn() };\n const defaultContextModuleConfig: ContextModuleConfig = {\n customLoaders: [],\n defaultLoaders: false,\n customTypedDataLoader: typedDataLoader,\n cal: {\n url: \"https://cal/v1\",\n mode: \"prod\",\n branch: \"main\",\n },\n web3checks: {\n url: \"https://web3checks/v3\",\n },\n metadataServiceDomain: {\n url: \"https://metadata.com\",\n },\n originToken: \"originToken\",\n };\n\n beforeEach(() => {\n vi.restoreAllMocks();\n });\n\n it(\"should initialize the context module with all the default loaders\", async () => {\n const contextModule = new DefaultContextModule(defaultContextModuleConfig);\n\n const res = await contextModule.getContexts({} as TransactionContext);\n\n expect(res).toEqual([]);\n });\n\n it(\"should return an empty array when no loaders\", async () => {\n const contextModule = new DefaultContextModule(defaultContextModuleConfig);\n\n const res = await contextModule.getContexts({} as TransactionContext);\n\n expect(res).toEqual([]);\n });\n\n it(\"should call all fetch method from metadata fetcher\", async () => {\n const loader = contextLoaderStubBuilder();\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [loader, loader],\n });\n\n await contextModule.getContexts({} as TransactionContext);\n\n expect(loader.load).toHaveBeenCalledTimes(2);\n });\n\n it(\"should return an array of context response\", async () => {\n const loader = contextLoaderStubBuilder();\n const responses = [\n [{ type: \"provideERC20Info\", payload: \"payload1\" }],\n [\n { type: \"provideERC20Info\", payload: \"payload2\" },\n { type: \"plugin\", payload: \"payload3\" },\n ],\n ];\n vi.spyOn(loader, \"load\")\n .mockResolvedValueOnce(responses[0])\n .mockResolvedValueOnce(responses[1]);\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [loader, loader],\n });\n\n const res = await contextModule.getContexts({} as TransactionContext);\n\n expect(loader.load).toHaveBeenCalledTimes(2);\n expect(res).toEqual(responses.flat());\n });\n\n it(\"should call the typed data loader\", async () => {\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customTypedDataLoader: typedDataLoader,\n });\n\n await contextModule.getTypedDataFilters({} as TypedDataContext);\n\n expect(typedDataLoader.load).toHaveBeenCalledTimes(1);\n });\n\n it(\"should return a single context\", async () => {\n const loader = contextLoaderStubBuilder();\n const responses = [null, { type: \"token\", payload: \"payload\" }];\n vi.spyOn(loader, \"loadField\")\n .mockResolvedValueOnce(responses[0])\n .mockResolvedValueOnce(responses[1]);\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [loader, { load: vi.fn() }, loader],\n });\n\n const res = await contextModule.getContext({\n type: \"token\",\n } as TransactionFieldContext);\n\n expect(loader.loadField).toHaveBeenCalledTimes(2);\n expect(res).toEqual({ type: \"token\", payload: \"payload\" });\n });\n\n it(\"should return a web3 check context\", async () => {\n const loader = contextLoaderStubBuilder();\n vi.spyOn(loader, \"load\").mockResolvedValueOnce(\n Right({ descriptor: \"payload\" }),\n );\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [],\n customWeb3CheckLoader: loader,\n });\n\n const res = await contextModule.getWeb3Checks({\n deviceModelId: DeviceModelId.FLEX,\n from: \"from\",\n rawTx: \"rawTx\",\n chainId: 1,\n });\n\n expect(loader.load).toHaveBeenCalledTimes(1);\n expect(res).toEqual({ type: \"web3Check\", payload: \"payload\" });\n });\n\n it(\"should return null if no web3 check context\", async () => {\n const loader = contextLoaderStubBuilder();\n vi.spyOn(loader, \"load\").mockResolvedValue(Left(new Error(\"error\")));\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [],\n customWeb3CheckLoader: loader,\n });\n\n const res = await contextModule.getWeb3Checks({\n deviceModelId: DeviceModelId.FLEX,\n from: \"from\",\n rawTx: \"rawTx\",\n chainId: 1,\n });\n\n expect(loader.load).toHaveBeenCalledTimes(1);\n expect(res).toBeNull();\n });\n\n it(\"context field not supported\", async () => {\n const loader = contextLoaderStubBuilder();\n const responses = [null, null];\n vi.spyOn(loader, \"loadField\")\n .mockResolvedValueOnce(responses[0])\n .mockResolvedValueOnce(responses[1]);\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [loader, { load: vi.fn() }, loader],\n });\n\n const res = await contextModule.getContext({\n type: \"token\",\n } as TransactionFieldContext);\n\n expect(loader.loadField).toHaveBeenCalledTimes(2);\n expect(res).toEqual({\n type: \"error\",\n error: new Error(\"Field type not supported: token\"),\n });\n });\n\n it(\"getField not implemented\", async () => {\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [{ load: vi.fn() }],\n });\n\n const res = await contextModule.getContext({\n type: \"token\",\n } as TransactionFieldContext);\n\n expect(res).toEqual({\n type: \"error\",\n error: new Error(\"Field type not supported: token\"),\n });\n });\n\n it(\"should throw an error if origin token is not provided\", () => {\n expect(\n () =>\n new DefaultContextModule({\n ...defaultContextModuleConfig,\n originToken: undefined,\n }),\n ).toThrow(\"Origin token is required\");\n });\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { DeviceModelId } from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { type ContextModuleConfig } from \"./config/model/ContextModuleConfig\";\nimport { type TransactionContext } from \"./shared/model/TransactionContext\";\nimport { type TypedDataContext } from \"./shared/model/TypedDataContext\";\nimport type { TypedDataContextLoader } from \"./typed-data/domain/TypedDataContextLoader\";\nimport { DefaultContextModule } from \"./DefaultContextModule\";\n\nconst contextLoaderStubBuilder = () => {\n return { load: vi.fn(), loadField: vi.fn() };\n};\n\ndescribe(\"DefaultContextModule\", () => {\n const typedDataLoader: TypedDataContextLoader = { load: vi.fn() };\n const defaultContextModuleConfig: ContextModuleConfig = {\n customLoaders: [],\n defaultLoaders: false,\n customTypedDataLoader: typedDataLoader,\n cal: {\n url: \"https://cal/v1\",\n mode: \"prod\",\n branch: \"main\",\n },\n web3checks: {\n url: \"https://web3checks/v3\",\n },\n metadataServiceDomain: {\n url: \"https://metadata.com\",\n },\n originToken: \"originToken\",\n };\n\n beforeEach(() => {\n vi.restoreAllMocks();\n });\n\n it(\"should initialize the context module with all the default loaders\", async () => {\n const contextModule = new DefaultContextModule(defaultContextModuleConfig);\n\n const res = await contextModule.getContexts({} as TransactionContext);\n\n expect(res).toEqual([]);\n });\n\n it(\"should return an empty array when no loaders\", async () => {\n const contextModule = new DefaultContextModule(defaultContextModuleConfig);\n\n const res = await contextModule.getContexts({} as TransactionContext);\n\n expect(res).toEqual([]);\n });\n\n it(\"should call all fetch method from metadata fetcher\", async () => {\n const loader = contextLoaderStubBuilder();\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [loader, loader],\n });\n\n await contextModule.getContexts({} as TransactionContext);\n\n expect(loader.load).toHaveBeenCalledTimes(2);\n });\n\n it(\"should return an array of context response\", async () => {\n const loader = contextLoaderStubBuilder();\n const responses = [\n [{ type: \"provideERC20Info\", payload: \"payload1\" }],\n [\n { type: \"provideERC20Info\", payload: \"payload2\" },\n { type: \"plugin\", payload: \"payload3\" },\n ],\n ];\n vi.spyOn(loader, \"load\")\n .mockResolvedValueOnce(responses[0])\n .mockResolvedValueOnce(responses[1]);\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [loader, loader],\n });\n\n const res = await contextModule.getContexts({} as TransactionContext);\n\n expect(loader.load).toHaveBeenCalledTimes(2);\n expect(res).toEqual(responses.flat());\n });\n\n it(\"should call the typed data loader\", async () => {\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customTypedDataLoader: typedDataLoader,\n });\n\n await contextModule.getTypedDataFilters({} as TypedDataContext);\n\n expect(typedDataLoader.load).toHaveBeenCalledTimes(1);\n });\n\n it(\"should return a web3 check context\", async () => {\n const loader = contextLoaderStubBuilder();\n vi.spyOn(loader, \"load\").mockResolvedValueOnce(\n Right({ descriptor: \"payload\" }),\n );\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [],\n customWeb3CheckLoader: loader,\n });\n\n const res = await contextModule.getWeb3Checks({\n deviceModelId: DeviceModelId.FLEX,\n from: \"from\",\n rawTx: \"rawTx\",\n chainId: 1,\n });\n\n expect(loader.load).toHaveBeenCalledTimes(1);\n expect(res).toEqual({ type: \"web3Check\", payload: \"payload\" });\n });\n\n it(\"should return null if no web3 check context\", async () => {\n const loader = contextLoaderStubBuilder();\n vi.spyOn(loader, \"load\").mockResolvedValue(Left(new Error(\"error\")));\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [],\n customWeb3CheckLoader: loader,\n });\n\n const res = await contextModule.getWeb3Checks({\n deviceModelId: DeviceModelId.FLEX,\n from: \"from\",\n rawTx: \"rawTx\",\n chainId: 1,\n });\n\n expect(loader.load).toHaveBeenCalledTimes(1);\n expect(res).toBeNull();\n });\n\n it(\"should throw an error if origin token is not provided\", () => {\n expect(\n () =>\n new DefaultContextModule({\n ...defaultContextModuleConfig,\n originToken: undefined,\n }),\n ).toThrow(\"Origin token is required\");\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAA8B,2CAC9BC,EAA4B,qBAM5BC,EAAqC,kCAErC,MAAMC,EAA2B,KACxB,CAAE,KAAM,GAAG,GAAG,EAAG,UAAW,GAAG,GAAG,CAAE,GAG7C,SAAS,uBAAwB,IAAM,CACrC,MAAMC,EAA0C,CAAE,KAAM,GAAG,GAAG,CAAE,EAC1DC,EAAkD,CACtD,cAAe,CAAC,EAChB,eAAgB,GAChB,sBAAuBD,EACvB,IAAK,CACH,IAAK,iBACL,KAAM,OACN,OAAQ,MACV,EACA,WAAY,CACV,IAAK,uBACP,EACA,sBAAuB,CACrB,IAAK,sBACP,EACA,YAAa,aACf,EAEA,WAAW,IAAM,CACf,GAAG,gBAAgB,CACrB,CAAC,EAED,GAAG,oEAAqE,SAAY,CAGlF,MAAME,EAAM,MAFU,IAAI,uBAAqBD,CAA0B,EAEzC,YAAY,CAAC,CAAuB,EAEpE,OAAOC,CAAG,EAAE,QAAQ,CAAC,CAAC,CACxB,CAAC,EAED,GAAG,+CAAgD,SAAY,CAG7D,MAAMA,EAAM,MAFU,IAAI,uBAAqBD,CAA0B,EAEzC,YAAY,CAAC,CAAuB,EAEpE,OAAOC,CAAG,EAAE,QAAQ,CAAC,CAAC,CACxB,CAAC,EAED,GAAG,qDAAsD,SAAY,CACnE,MAAMC,EAASJ,EAAyB,EAMxC,MALsB,IAAI,uBAAqB,CAC7C,GAAGE,EACH,cAAe,CAACE,EAAQA,CAAM,CAChC,CAAC,EAEmB,YAAY,CAAC,CAAuB,EAExD,OAAOA,EAAO,IAAI,EAAE,sBAAsB,CAAC,CAC7C,CAAC,EAED,GAAG,6CAA8C,SAAY,CAC3D,MAAMA,EAASJ,EAAyB,EAClCK,EAAY,CAChB,CAAC,CAAE,KAAM,mBAAoB,QAAS,UAAW,CAAC,EAClD,CACE,CAAE,KAAM,mBAAoB,QAAS,UAAW,EAChD,CAAE,KAAM,SAAU,QAAS,UAAW,CACxC,CACF,EACA,GAAG,MAAMD,EAAQ,MAAM,EACpB,sBAAsBC,EAAU,CAAC,CAAC,EAClC,sBAAsBA,EAAU,CAAC,CAAC,EAMrC,MAAMF,EAAM,MALU,IAAI,uBAAqB,CAC7C,GAAGD,EACH,cAAe,CAACE,EAAQA,CAAM,CAChC,CAAC,EAE+B,YAAY,CAAC,CAAuB,EAEpE,OAAOA,EAAO,IAAI,EAAE,sBAAsB,CAAC,EAC3C,OAAOD,CAAG,EAAE,QAAQE,EAAU,KAAK,CAAC,CACtC,CAAC,EAED,GAAG,oCAAqC,SAAY,CAMlD,MALsB,IAAI,uBAAqB,CAC7C,GAAGH,EACH,sBAAuBD,CACzB,CAAC,EAEmB,oBAAoB,CAAC,CAAqB,EAE9D,OAAOA,EAAgB,IAAI,EAAE,sBAAsB,CAAC,CACtD,CAAC,EAED,GAAG,qCAAsC,SAAY,CACnD,MAAMG,EAASJ,EAAyB,EACxC,GAAG,MAAMI,EAAQ,MAAM,EAAE,yBACvB,SAAM,CAAE,WAAY,SAAU,CAAC,CACjC,EAOA,MAAMD,EAAM,MANU,IAAI,uBAAqB,CAC7C,GAAGD,EACH,cAAe,CAAC,EAChB,sBAAuBE,CACzB,CAAC,EAE+B,cAAc,CAC5C,cAAe,gBAAc,KAC7B,KAAM,OACN,MAAO,QACP,QAAS,CACX,CAAC,EAED,OAAOA,EAAO,IAAI,EAAE,sBAAsB,CAAC,EAC3C,OAAOD,CAAG,EAAE,QAAQ,CAAE,KAAM,YAAa,QAAS,SAAU,CAAC,CAC/D,CAAC,EAED,GAAG,8CAA+C,SAAY,CAC5D,MAAMC,EAASJ,EAAyB,EACxC,GAAG,MAAMI,EAAQ,MAAM,EAAE,qBAAkB,QAAK,IAAI,MAAM,OAAO,CAAC,CAAC,EAOnE,MAAMD,EAAM,MANU,IAAI,uBAAqB,CAC7C,GAAGD,EACH,cAAe,CAAC,EAChB,sBAAuBE,CACzB,CAAC,EAE+B,cAAc,CAC5C,cAAe,gBAAc,KAC7B,KAAM,OACN,MAAO,QACP,QAAS,CACX,CAAC,EAED,OAAOA,EAAO,IAAI,EAAE,sBAAsB,CAAC,EAC3C,OAAOD,CAAG,EAAE,SAAS,CACvB,CAAC,EAED,GAAG,wDAAyD,IAAM,CAChE,OACE,IACE,IAAI,uBAAqB,CACvB,GAAGD,EACH,YAAa,MACf,CAAC,CACL,EAAE,QAAQ,0BAA0B,CACtC,CAAC,CACH,CAAC",
6
6
  "names": ["import_device_management_kit", "import_purify_ts", "import_DefaultContextModule", "contextLoaderStubBuilder", "typedDataLoader", "defaultContextModuleConfig", "res", "loader", "responses"]
7
7
  }
package/lib/cjs/src/di.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var n=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var w=(r,o)=>{for(var e in o)n(r,e,{get:o[e],enumerable:!0})},A=(r,o,e,a)=>{if(o&&typeof o=="object"||typeof o=="function")for(let t of k(o))!x.call(r,t)&&t!==e&&n(r,t,{get:()=>o[t],enumerable:!(a=g(o,t))||a.enumerable});return r};var N=r=>A(n({},"__esModule",{value:!0}),r);var b={};w(b,{makeContainer:()=>P});module.exports=N(b);var m=require("inversify"),i=require("./config/di/configModuleFactory"),c=require("./dynamic-network/di/dynamicNetworkModuleFactory"),f=require("./external-plugin/di/externalPluginModuleFactory"),p=require("./nft/di/nftModuleFactory"),d=require("./pki/di/pkiModuleFactory"),l=require("./solana/di/SolanaContextModuleFactory"),u=require("./token/di/tokenModuleFactory"),y=require("./transaction/di/transactionModuleFactory"),M=require("./trusted-name/di/trustedNameModuleFactory"),F=require("./typed-data/di/typedDataModuleFactory"),C=require("./uniswap/di/uniswapModuleFactory"),s=require("./web3-check/di/web3CheckModuleFactory");const P=({config:r})=>{const o=new m.Container;return o.loadSync((0,i.configModuleFactory)(r),(0,f.externalPluginModuleFactory)(),(0,c.dynamicNetworkModuleFactory)(),(0,p.nftModuleFactory)(),(0,u.tokenModuleFactory)(),(0,y.transactionModuleFactory)(),(0,M.trustedNameModuleFactory)(),(0,F.typedDataModuleFactory)(),(0,d.nanoPkiModuleFactory)(),(0,C.uniswapModuleFactory)(),(0,s.web3CheckModuleFactory)(),(0,l.solanaContextModuleFactory)()),o};0&&(module.exports={makeContainer});
1
+ "use strict";var a=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var A=(r,o)=>{for(var e in o)a(r,e,{get:o[e],enumerable:!0})},N=(r,o,e,m)=>{if(o&&typeof o=="object"||typeof o=="function")for(let t of x(o))!w.call(r,t)&&t!==e&&a(r,t,{get:()=>o[t],enumerable:!(m=k(o,t))||m.enumerable});return r};var P=r=>N(a({},"__esModule",{value:!0}),r);var h={};A(h,{makeContainer:()=>b});module.exports=P(h);var n=require("inversify"),i=require("./config/di/configModuleFactory"),c=require("./dynamic-network/di/dynamicNetworkModuleFactory"),p=require("./external-plugin/di/externalPluginModuleFactory"),f=require("./nft/di/nftModuleFactory"),d=require("./pki/di/pkiModuleFactory"),l=require("./proxy/di/proxyModuleFactory"),u=require("./solana/di/SolanaContextModuleFactory"),y=require("./token/di/tokenModuleFactory"),M=require("./transaction/di/transactionModuleFactory"),F=require("./trusted-name/di/trustedNameModuleFactory"),C=require("./typed-data/di/typedDataModuleFactory"),s=require("./uniswap/di/uniswapModuleFactory"),g=require("./web3-check/di/web3CheckModuleFactory");const b=({config:r})=>{const o=new n.Container;return o.loadSync((0,i.configModuleFactory)(r),(0,p.externalPluginModuleFactory)(),(0,c.dynamicNetworkModuleFactory)(),(0,f.nftModuleFactory)(),(0,l.proxyModuleFactory)(),(0,y.tokenModuleFactory)(),(0,M.transactionModuleFactory)(),(0,F.trustedNameModuleFactory)(),(0,C.typedDataModuleFactory)(),(0,d.nanoPkiModuleFactory)(),(0,s.uniswapModuleFactory)(),(0,g.web3CheckModuleFactory)(),(0,u.solanaContextModuleFactory)()),o};0&&(module.exports={makeContainer});
2
2
  //# sourceMappingURL=di.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/di.ts"],
4
- "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { configModuleFactory } from \"@/config/di/configModuleFactory\";\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { dynamicNetworkModuleFactory } from \"@/dynamic-network/di/dynamicNetworkModuleFactory\";\nimport { externalPluginModuleFactory } from \"@/external-plugin/di/externalPluginModuleFactory\";\nimport { nftModuleFactory } from \"@/nft/di/nftModuleFactory\";\nimport { nanoPkiModuleFactory } from \"@/pki/di/pkiModuleFactory\";\nimport { solanaContextModuleFactory } from \"@/solana/di/SolanaContextModuleFactory\";\nimport { tokenModuleFactory } from \"@/token/di/tokenModuleFactory\";\nimport { transactionModuleFactory } from \"@/transaction/di/transactionModuleFactory\";\nimport { trustedNameModuleFactory } from \"@/trusted-name/di/trustedNameModuleFactory\";\nimport { typedDataModuleFactory } from \"@/typed-data/di/typedDataModuleFactory\";\nimport { uniswapModuleFactory } from \"@/uniswap/di/uniswapModuleFactory\";\nimport { web3CheckModuleFactory } from \"@/web3-check/di/web3CheckModuleFactory\";\n\ntype MakeContainerArgs = {\n config: ContextModuleConfig;\n};\n\nexport const makeContainer = ({ config }: MakeContainerArgs) => {\n const container = new Container();\n\n container.loadSync(\n configModuleFactory(config),\n externalPluginModuleFactory(),\n dynamicNetworkModuleFactory(),\n nftModuleFactory(),\n tokenModuleFactory(),\n transactionModuleFactory(),\n trustedNameModuleFactory(),\n typedDataModuleFactory(),\n nanoPkiModuleFactory(),\n uniswapModuleFactory(),\n web3CheckModuleFactory(),\n solanaContextModuleFactory(),\n );\n\n return container;\n};\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA0B,qBAE1BC,EAAoC,2CAEpCC,EAA4C,4DAC5CC,EAA4C,4DAC5CC,EAAiC,qCACjCC,EAAqC,qCACrCC,EAA2C,kDAC3CC,EAAmC,yCACnCC,EAAyC,qDACzCC,EAAyC,sDACzCC,EAAuC,kDACvCC,EAAqC,6CACrCC,EAAuC,kDAMhC,MAAMd,EAAgB,CAAC,CAAE,OAAAe,CAAO,IAAyB,CAC9D,MAAMC,EAAY,IAAI,YAEtB,OAAAA,EAAU,YACR,uBAAoBD,CAAM,KAC1B,+BAA4B,KAC5B,+BAA4B,KAC5B,oBAAiB,KACjB,sBAAmB,KACnB,4BAAyB,KACzB,4BAAyB,KACzB,0BAAuB,KACvB,wBAAqB,KACrB,wBAAqB,KACrB,0BAAuB,KACvB,8BAA2B,CAC7B,EAEOC,CACT",
6
- "names": ["di_exports", "__export", "makeContainer", "__toCommonJS", "import_inversify", "import_configModuleFactory", "import_dynamicNetworkModuleFactory", "import_externalPluginModuleFactory", "import_nftModuleFactory", "import_pkiModuleFactory", "import_SolanaContextModuleFactory", "import_tokenModuleFactory", "import_transactionModuleFactory", "import_trustedNameModuleFactory", "import_typedDataModuleFactory", "import_uniswapModuleFactory", "import_web3CheckModuleFactory", "config", "container"]
4
+ "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { configModuleFactory } from \"@/config/di/configModuleFactory\";\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { dynamicNetworkModuleFactory } from \"@/dynamic-network/di/dynamicNetworkModuleFactory\";\nimport { externalPluginModuleFactory } from \"@/external-plugin/di/externalPluginModuleFactory\";\nimport { nftModuleFactory } from \"@/nft/di/nftModuleFactory\";\nimport { nanoPkiModuleFactory } from \"@/pki/di/pkiModuleFactory\";\nimport { proxyModuleFactory } from \"@/proxy/di/proxyModuleFactory\";\nimport { solanaContextModuleFactory } from \"@/solana/di/SolanaContextModuleFactory\";\nimport { tokenModuleFactory } from \"@/token/di/tokenModuleFactory\";\nimport { transactionModuleFactory } from \"@/transaction/di/transactionModuleFactory\";\nimport { trustedNameModuleFactory } from \"@/trusted-name/di/trustedNameModuleFactory\";\nimport { typedDataModuleFactory } from \"@/typed-data/di/typedDataModuleFactory\";\nimport { uniswapModuleFactory } from \"@/uniswap/di/uniswapModuleFactory\";\nimport { web3CheckModuleFactory } from \"@/web3-check/di/web3CheckModuleFactory\";\n\ntype MakeContainerArgs = {\n config: ContextModuleConfig;\n};\n\nexport const makeContainer = ({ config }: MakeContainerArgs) => {\n const container = new Container();\n\n container.loadSync(\n configModuleFactory(config),\n externalPluginModuleFactory(),\n dynamicNetworkModuleFactory(),\n nftModuleFactory(),\n proxyModuleFactory(),\n tokenModuleFactory(),\n transactionModuleFactory(),\n trustedNameModuleFactory(),\n typedDataModuleFactory(),\n nanoPkiModuleFactory(),\n uniswapModuleFactory(),\n web3CheckModuleFactory(),\n solanaContextModuleFactory(),\n );\n\n return container;\n};\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA0B,qBAE1BC,EAAoC,2CAEpCC,EAA4C,4DAC5CC,EAA4C,4DAC5CC,EAAiC,qCACjCC,EAAqC,qCACrCC,EAAmC,yCACnCC,EAA2C,kDAC3CC,EAAmC,yCACnCC,EAAyC,qDACzCC,EAAyC,sDACzCC,EAAuC,kDACvCC,EAAqC,6CACrCC,EAAuC,kDAMhC,MAAMf,EAAgB,CAAC,CAAE,OAAAgB,CAAO,IAAyB,CAC9D,MAAMC,EAAY,IAAI,YAEtB,OAAAA,EAAU,YACR,uBAAoBD,CAAM,KAC1B,+BAA4B,KAC5B,+BAA4B,KAC5B,oBAAiB,KACjB,sBAAmB,KACnB,sBAAmB,KACnB,4BAAyB,KACzB,4BAAyB,KACzB,0BAAuB,KACvB,wBAAqB,KACrB,wBAAqB,KACrB,0BAAuB,KACvB,8BAA2B,CAC7B,EAEOC,CACT",
6
+ "names": ["di_exports", "__export", "makeContainer", "__toCommonJS", "import_inversify", "import_configModuleFactory", "import_dynamicNetworkModuleFactory", "import_externalPluginModuleFactory", "import_nftModuleFactory", "import_pkiModuleFactory", "import_proxyModuleFactory", "import_SolanaContextModuleFactory", "import_tokenModuleFactory", "import_transactionModuleFactory", "import_trustedNameModuleFactory", "import_typedDataModuleFactory", "import_uniswapModuleFactory", "import_web3CheckModuleFactory", "config", "container"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var s=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var I=(r,e)=>{for(var o in e)s(r,o,{get:e[o],enumerable:!0})},h=(r,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of D(e))!x.call(r,t)&&t!==o&&s(r,t,{get:()=>e[t],enumerable:!(i=p(e,t))||i.enumerable});return r};var w=r=>h(s({},"__esModule",{value:!0}),r),C=(r,e,o,i)=>{for(var t=i>1?void 0:i?p(e,o):e,n=r.length-1,a;n>=0;n--)(a=r[n])&&(t=(i?a(e,o,t):a(t))||t);return i&&t&&s(e,o,t),t},f=(r,e)=>(o,i)=>e(o,i,r);var M={};I(M,{DynamicNetworkContextLoader:()=>d});module.exports=w(M);var u=require("@ledgerhq/device-management-kit"),c=require("inversify"),g=require("../../config/di/configTypes"),y=require("../../dynamic-network/di/dynamicNetworkTypes"),S=require("../../pki/di/pkiTypes"),_=require("../../pki/model/KeyId"),k=require("../../pki/model/KeyUsage"),l=require("../../shared/model/ClearSignContext"),N=require("../../shared/utils/HexStringUtils");const v="15";let d=class{_networkDataSource;_config;_certificateLoader;constructor(e,o,i){this._networkDataSource=e,this._config=o,this._certificateLoader=i}async load(e){if(e.deviceModelId===u.DeviceModelId.NANO_S)return[];const o=await this._networkDataSource.getDynamicNetworkConfiguration(e.chainId),i=await this._certificateLoader.loadCertificate({keyId:_.KeyId.CalNetwork,keyUsage:k.KeyUsage.Network,targetDevice:e.deviceModelId});return o.caseOf({Left:()=>[],Right:t=>{const n=[],a=t.descriptors[e.deviceModelId];if(!a)return[];const m=a.signatures[this._config.cal.mode];if(!m)return[];const T=N.HexStringUtils.appendSignatureToPayload(a.data,m,v);return n.push({type:l.ClearSignContextType.DYNAMIC_NETWORK,payload:T,certificate:i}),a.icon&&n.push({type:l.ClearSignContextType.DYNAMIC_NETWORK_ICON,payload:a.icon}),n}})}loadField(e){return Promise.resolve(null)}};d=C([(0,c.injectable)(),f(0,(0,c.inject)(y.dynamicNetworkTypes.DynamicNetworkDataSource)),f(1,(0,c.inject)(g.configTypes.Config)),f(2,(0,c.inject)(S.pkiTypes.PkiCertificateLoader))],d);0&&(module.exports={DynamicNetworkContextLoader});
1
+ "use strict";var d=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var h=(r,e)=>{for(var o in e)d(r,o,{get:e[o],enumerable:!0})},w=(r,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of T(e))!I.call(r,t)&&t!==o&&d(r,t,{get:()=>e[t],enumerable:!(i=l(e,t))||i.enumerable});return r};var M=r=>w(d({},"__esModule",{value:!0}),r),C=(r,e,o,i)=>{for(var t=i>1?void 0:i?l(e,o):e,n=r.length-1,a;n>=0;n--)(a=r[n])&&(t=(i?a(e,o,t):a(t))||t);return i&&t&&d(e,o,t),t},s=(r,e)=>(o,i)=>e(o,i,r);var x={};h(x,{DynamicNetworkContextLoader:()=>f});module.exports=M(x);var y=require("@ledgerhq/device-management-kit"),c=require("inversify"),g=require("../../config/di/configTypes"),u=require("../../dynamic-network/di/dynamicNetworkTypes"),k=require("../../pki/di/pkiTypes"),S=require("../../pki/model/KeyId"),_=require("../../pki/model/KeyUsage"),p=require("../../shared/model/ClearSignContext"),N=require("../../shared/utils/HexStringUtils");const v="15";let f=class{_networkDataSource;_config;_certificateLoader;constructor(e,o,i){this._networkDataSource=e,this._config=o,this._certificateLoader=i}async load(e){if(e.deviceModelId===y.DeviceModelId.NANO_S)return[];const o=await this._networkDataSource.getDynamicNetworkConfiguration(e.chainId),i=await this._certificateLoader.loadCertificate({keyId:S.KeyId.CalNetwork,keyUsage:_.KeyUsage.Network,targetDevice:e.deviceModelId});return o.caseOf({Left:()=>[],Right:t=>{const n=[],a=t.descriptors[e.deviceModelId];if(!a)return[];const m=a.signatures[this._config.cal.mode];if(!m)return[];const D=N.HexStringUtils.appendSignatureToPayload(a.data,m,v);return n.push({type:p.ClearSignContextType.DYNAMIC_NETWORK,payload:D,certificate:i}),a.icon&&n.push({type:p.ClearSignContextType.DYNAMIC_NETWORK_ICON,payload:a.icon}),n}})}};f=C([(0,c.injectable)(),s(0,(0,c.inject)(u.dynamicNetworkTypes.DynamicNetworkDataSource)),s(1,(0,c.inject)(g.configTypes.Config)),s(2,(0,c.inject)(k.pkiTypes.PkiCertificateLoader))],f);0&&(module.exports={DynamicNetworkContextLoader});
2
2
  //# sourceMappingURL=DynamicNetworkContextLoader.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dynamic-network/domain/DynamicNetworkContextLoader.ts"],
4
- "sourcesContent": ["import { DeviceModelId } from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { type DynamicNetworkDataSource } from \"@/dynamic-network/data/DynamicNetworkDataSource\";\nimport { dynamicNetworkTypes } from \"@/dynamic-network/di/dynamicNetworkTypes\";\nimport { pkiTypes } from \"@/pki/di/pkiTypes\";\nimport { type PkiCertificateLoader } from \"@/pki/domain/PkiCertificateLoader\";\nimport { KeyId } from \"@/pki/model/KeyId\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport { ContextLoader } from \"@/shared/domain/ContextLoader\";\nimport {\n ClearSignContext,\n ClearSignContextType,\n} from \"@/shared/model/ClearSignContext\";\nimport {\n TransactionContext,\n TransactionFieldContext,\n} from \"@/shared/model/TransactionContext\";\nimport { HexStringUtils } from \"@/shared/utils/HexStringUtils\";\n\nconst NETWORK_SIGNATURE_TAG = \"15\";\n\n@injectable()\nexport class DynamicNetworkContextLoader implements ContextLoader {\n private readonly _networkDataSource: DynamicNetworkDataSource;\n private readonly _config: ContextModuleConfig;\n private readonly _certificateLoader: PkiCertificateLoader;\n\n constructor(\n @inject(dynamicNetworkTypes.DynamicNetworkDataSource)\n networkDataSource: DynamicNetworkDataSource,\n @inject(configTypes.Config)\n config: ContextModuleConfig,\n @inject(pkiTypes.PkiCertificateLoader)\n certificateLoader: PkiCertificateLoader,\n ) {\n this._networkDataSource = networkDataSource;\n this._config = config;\n this._certificateLoader = certificateLoader;\n }\n\n async load(ctx: TransactionContext): Promise<ClearSignContext[]> {\n if (ctx.deviceModelId === DeviceModelId.NANO_S) return [];\n\n const result = await this._networkDataSource.getDynamicNetworkConfiguration(\n ctx.chainId,\n );\n\n // Fetch certificate for the network configuration upfront\n const certificate = await this._certificateLoader.loadCertificate({\n keyId: KeyId.CalNetwork,\n keyUsage: KeyUsage.Network,\n targetDevice: ctx.deviceModelId,\n });\n\n return result.caseOf({\n Left: () => [],\n Right: (configuration) => {\n const contexts: ClearSignContext[] = [];\n const descriptor = configuration.descriptors[ctx.deviceModelId];\n\n if (!descriptor) {\n return [];\n }\n\n const signature = descriptor.signatures[this._config.cal.mode];\n\n if (!signature) {\n return [];\n }\n\n const configPayload = HexStringUtils.appendSignatureToPayload(\n descriptor.data,\n signature,\n NETWORK_SIGNATURE_TAG,\n );\n\n contexts.push({\n type: ClearSignContextType.DYNAMIC_NETWORK,\n payload: configPayload,\n certificate,\n });\n\n // Add icon if available in the descriptor\n if (descriptor.icon) {\n // Icons don't need signatures appended\n contexts.push({\n type: ClearSignContextType.DYNAMIC_NETWORK_ICON,\n payload: descriptor.icon,\n });\n }\n\n return contexts;\n },\n });\n }\n\n // Dynamic network context doesn't support field-level loading\n loadField(_field: TransactionFieldContext): Promise<ClearSignContext | null> {\n return Promise.resolve(null);\n }\n}\n"],
5
- "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA8B,2CAC9BC,EAAmC,qBAEnCC,EAA4B,mCAG5BC,EAAoC,oDACpCC,EAAyB,6BAEzBC,EAAsB,6BACtBC,EAAyB,gCAEzBC,EAGO,2CAKPC,EAA+B,yCAE/B,MAAMC,EAAwB,KAGvB,IAAMC,EAAN,KAA2D,CAC/C,mBACA,QACA,mBAEjB,YAEEC,EAEAC,EAEAC,EACA,CACA,KAAK,mBAAqBF,EAC1B,KAAK,QAAUC,EACf,KAAK,mBAAqBC,CAC5B,CAEA,MAAM,KAAKC,EAAsD,CAC/D,GAAIA,EAAI,gBAAkB,gBAAc,OAAQ,MAAO,CAAC,EAExD,MAAMC,EAAS,MAAM,KAAK,mBAAmB,+BAC3CD,EAAI,OACN,EAGME,EAAc,MAAM,KAAK,mBAAmB,gBAAgB,CAChE,MAAO,QAAM,WACb,SAAU,WAAS,QACnB,aAAcF,EAAI,aACpB,CAAC,EAED,OAAOC,EAAO,OAAO,CACnB,KAAM,IAAM,CAAC,EACb,MAAQE,GAAkB,CACxB,MAAMC,EAA+B,CAAC,EAChCC,EAAaF,EAAc,YAAYH,EAAI,aAAa,EAE9D,GAAI,CAACK,EACH,MAAO,CAAC,EAGV,MAAMC,EAAYD,EAAW,WAAW,KAAK,QAAQ,IAAI,IAAI,EAE7D,GAAI,CAACC,EACH,MAAO,CAAC,EAGV,MAAMC,EAAgB,iBAAe,yBACnCF,EAAW,KACXC,EACAX,CACF,EAEA,OAAAS,EAAS,KAAK,CACZ,KAAM,uBAAqB,gBAC3B,QAASG,EACT,YAAAL,CACF,CAAC,EAGGG,EAAW,MAEbD,EAAS,KAAK,CACZ,KAAM,uBAAqB,qBAC3B,QAASC,EAAW,IACtB,CAAC,EAGID,CACT,CACF,CAAC,CACH,CAGA,UAAUI,EAAmE,CAC3E,OAAO,QAAQ,QAAQ,IAAI,CAC7B,CACF,EA9EaZ,EAANa,EAAA,IADN,cAAW,EAOPC,EAAA,eAAO,sBAAoB,wBAAwB,GAEnDA,EAAA,eAAO,cAAY,MAAM,GAEzBA,EAAA,eAAO,WAAS,oBAAoB,IAV5Bd",
6
- "names": ["DynamicNetworkContextLoader_exports", "__export", "DynamicNetworkContextLoader", "__toCommonJS", "import_device_management_kit", "import_inversify", "import_configTypes", "import_dynamicNetworkTypes", "import_pkiTypes", "import_KeyId", "import_KeyUsage", "import_ClearSignContext", "import_HexStringUtils", "NETWORK_SIGNATURE_TAG", "DynamicNetworkContextLoader", "networkDataSource", "config", "certificateLoader", "ctx", "result", "certificate", "configuration", "contexts", "descriptor", "signature", "configPayload", "_field", "__decorateClass", "__decorateParam"]
4
+ "sourcesContent": ["import { DeviceModelId } from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { type DynamicNetworkDataSource } from \"@/dynamic-network/data/DynamicNetworkDataSource\";\nimport { dynamicNetworkTypes } from \"@/dynamic-network/di/dynamicNetworkTypes\";\nimport { pkiTypes } from \"@/pki/di/pkiTypes\";\nimport { type PkiCertificateLoader } from \"@/pki/domain/PkiCertificateLoader\";\nimport { KeyId } from \"@/pki/model/KeyId\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport { ContextLoader } from \"@/shared/domain/ContextLoader\";\nimport {\n ClearSignContext,\n ClearSignContextType,\n} from \"@/shared/model/ClearSignContext\";\nimport { TransactionContext } from \"@/shared/model/TransactionContext\";\nimport { HexStringUtils } from \"@/shared/utils/HexStringUtils\";\n\nconst NETWORK_SIGNATURE_TAG = \"15\";\n\n@injectable()\nexport class DynamicNetworkContextLoader implements ContextLoader {\n private readonly _networkDataSource: DynamicNetworkDataSource;\n private readonly _config: ContextModuleConfig;\n private readonly _certificateLoader: PkiCertificateLoader;\n\n constructor(\n @inject(dynamicNetworkTypes.DynamicNetworkDataSource)\n networkDataSource: DynamicNetworkDataSource,\n @inject(configTypes.Config)\n config: ContextModuleConfig,\n @inject(pkiTypes.PkiCertificateLoader)\n certificateLoader: PkiCertificateLoader,\n ) {\n this._networkDataSource = networkDataSource;\n this._config = config;\n this._certificateLoader = certificateLoader;\n }\n\n async load(ctx: TransactionContext): Promise<ClearSignContext[]> {\n if (ctx.deviceModelId === DeviceModelId.NANO_S) return [];\n\n const result = await this._networkDataSource.getDynamicNetworkConfiguration(\n ctx.chainId,\n );\n\n // Fetch certificate for the network configuration upfront\n const certificate = await this._certificateLoader.loadCertificate({\n keyId: KeyId.CalNetwork,\n keyUsage: KeyUsage.Network,\n targetDevice: ctx.deviceModelId,\n });\n\n return result.caseOf({\n Left: () => [],\n Right: (configuration) => {\n const contexts: ClearSignContext[] = [];\n const descriptor = configuration.descriptors[ctx.deviceModelId];\n\n if (!descriptor) {\n return [];\n }\n\n const signature = descriptor.signatures[this._config.cal.mode];\n\n if (!signature) {\n return [];\n }\n\n const configPayload = HexStringUtils.appendSignatureToPayload(\n descriptor.data,\n signature,\n NETWORK_SIGNATURE_TAG,\n );\n\n contexts.push({\n type: ClearSignContextType.DYNAMIC_NETWORK,\n payload: configPayload,\n certificate,\n });\n\n // Add icon if available in the descriptor\n if (descriptor.icon) {\n // Icons don't need signatures appended\n contexts.push({\n type: ClearSignContextType.DYNAMIC_NETWORK_ICON,\n payload: descriptor.icon,\n });\n }\n\n return contexts;\n },\n });\n }\n}\n"],
5
+ "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA8B,2CAC9BC,EAAmC,qBAEnCC,EAA4B,mCAG5BC,EAAoC,oDACpCC,EAAyB,6BAEzBC,EAAsB,6BACtBC,EAAyB,gCAEzBC,EAGO,2CAEPC,EAA+B,yCAE/B,MAAMC,EAAwB,KAGvB,IAAMC,EAAN,KAA2D,CAC/C,mBACA,QACA,mBAEjB,YAEEC,EAEAC,EAEAC,EACA,CACA,KAAK,mBAAqBF,EAC1B,KAAK,QAAUC,EACf,KAAK,mBAAqBC,CAC5B,CAEA,MAAM,KAAKC,EAAsD,CAC/D,GAAIA,EAAI,gBAAkB,gBAAc,OAAQ,MAAO,CAAC,EAExD,MAAMC,EAAS,MAAM,KAAK,mBAAmB,+BAC3CD,EAAI,OACN,EAGME,EAAc,MAAM,KAAK,mBAAmB,gBAAgB,CAChE,MAAO,QAAM,WACb,SAAU,WAAS,QACnB,aAAcF,EAAI,aACpB,CAAC,EAED,OAAOC,EAAO,OAAO,CACnB,KAAM,IAAM,CAAC,EACb,MAAQE,GAAkB,CACxB,MAAMC,EAA+B,CAAC,EAChCC,EAAaF,EAAc,YAAYH,EAAI,aAAa,EAE9D,GAAI,CAACK,EACH,MAAO,CAAC,EAGV,MAAMC,EAAYD,EAAW,WAAW,KAAK,QAAQ,IAAI,IAAI,EAE7D,GAAI,CAACC,EACH,MAAO,CAAC,EAGV,MAAMC,EAAgB,iBAAe,yBACnCF,EAAW,KACXC,EACAX,CACF,EAEA,OAAAS,EAAS,KAAK,CACZ,KAAM,uBAAqB,gBAC3B,QAASG,EACT,YAAAL,CACF,CAAC,EAGGG,EAAW,MAEbD,EAAS,KAAK,CACZ,KAAM,uBAAqB,qBAC3B,QAASC,EAAW,IACtB,CAAC,EAGID,CACT,CACF,CAAC,CACH,CACF,EAzEaR,EAANY,EAAA,IADN,cAAW,EAOPC,EAAA,eAAO,sBAAoB,wBAAwB,GAEnDA,EAAA,eAAO,cAAY,MAAM,GAEzBA,EAAA,eAAO,WAAS,oBAAoB,IAV5Bb",
6
+ "names": ["DynamicNetworkContextLoader_exports", "__export", "DynamicNetworkContextLoader", "__toCommonJS", "import_device_management_kit", "import_inversify", "import_configTypes", "import_dynamicNetworkTypes", "import_pkiTypes", "import_KeyId", "import_KeyUsage", "import_ClearSignContext", "import_HexStringUtils", "NETWORK_SIGNATURE_TAG", "DynamicNetworkContextLoader", "networkDataSource", "config", "certificateLoader", "ctx", "result", "certificate", "configuration", "contexts", "descriptor", "signature", "configPayload", "__decorateClass", "__decorateParam"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("@ledgerhq/device-management-kit"),n=require("purify-ts"),f=require("../../dynamic-network/domain/DynamicNetworkContextLoader"),m=require("../../pki/model/KeyId"),g=require("../../pki/model/KeyUsage"),d=require("../../shared/model/ClearSignContext");describe("DynamicNetworkContextLoader",()=>{const a={getDynamicNetworkConfiguration:vi.fn()},l={cal:{url:"https://crypto-assets-service.api.ledger.com",mode:"prod",branch:"main"},web3checks:{url:"https://web3checks.api.ledger.com"},metadataServiceDomain:{url:"https://metadata.api.ledger.com"},defaultLoaders:!0,customLoaders:[]},p={loadCertificate:vi.fn()},u={keyUsageNumber:1,payload:new Uint8Array([1,2,3])},c=new f.DynamicNetworkContextLoader(a,l,p),t=o=>({data:"",descriptorType:"",descriptorVersion:"",signatures:{prod:"",test:""},icon:void 0,...o});beforeEach(()=>{vi.restoreAllMocks(),vi.spyOn(p,"loadCertificate").mockResolvedValue(u)}),describe("load function",()=>{it("should return empty array when network data source returns error",async()=>{const o={chainId:1,deviceModelId:e.DeviceModelId.STAX,to:"0x123",data:"0x456",selector:"0x789"};vi.spyOn(a,"getDynamicNetworkConfiguration").mockResolvedValue((0,n.Left)(new Error("Network error")));const i=await c.load(o);expect(i).toEqual([]),expect(a.getDynamicNetworkConfiguration).toHaveBeenCalledWith(1)}),it("should return empty array when descriptor for device model is not found",async()=>{const o={chainId:1,deviceModelId:e.DeviceModelId.STAX,to:"0x123",data:"0x456",selector:"0x789"},i={id:"ethereum",descriptors:{[e.DeviceModelId.NANO_S]:t(),[e.DeviceModelId.NANO_SP]:t(),[e.DeviceModelId.NANO_X]:t(),[e.DeviceModelId.FLEX]:t({data:"0x0101",descriptorType:"network",descriptorVersion:"v1",signatures:{prod:"prod-sig",test:"test-sig"},icon:void 0})}};vi.spyOn(a,"getDynamicNetworkConfiguration").mockResolvedValue((0,n.Right)(i));const r=await c.load(o);expect(r).toEqual([])}),it("should return empty array when signature for mode is not found",async()=>{const o={chainId:1,deviceModelId:e.DeviceModelId.STAX,to:"0x123",data:"0x456",selector:"0x789"},i={id:"ethereum",descriptors:{[e.DeviceModelId.APEX]:t(),[e.DeviceModelId.NANO_S]:t(),[e.DeviceModelId.NANO_SP]:t(),[e.DeviceModelId.NANO_X]:t(),[e.DeviceModelId.FLEX]:t(),[e.DeviceModelId.STAX]:t({data:"0x0101",descriptorType:"network",descriptorVersion:"v1",signatures:{test:"test-sig"},icon:void 0})}};vi.spyOn(a,"getDynamicNetworkConfiguration").mockResolvedValue((0,n.Right)(i));const r=await c.load(o);expect(r).toEqual([])}),it("should return context with network configuration when all data is available",async()=>{const o={chainId:137,deviceModelId:e.DeviceModelId.STAX,to:"0x123",data:"0x456",selector:"0x789"},i={id:"polygon",descriptors:{[e.DeviceModelId.APEX]:t(),[e.DeviceModelId.NANO_S]:t(),[e.DeviceModelId.NANO_SP]:t(),[e.DeviceModelId.NANO_X]:t(),[e.DeviceModelId.FLEX]:t(),[e.DeviceModelId.STAX]:{data:"0x0101080201015101012308000000000000008952",descriptorType:"network",descriptorVersion:"v1",signatures:{prod:"3045022100cf42c039c16fc95dc97c09f15cdd93bed0e63ee45cf5c38c2b30bb8a3bc17f8d022053a96c9e51695c3c1c1a31f5cbf84bd6febadc97f4bb02bdc67cf3e24ad0c32d",test:"test-sig"},icon:void 0}}};vi.spyOn(a,"getDynamicNetworkConfiguration").mockResolvedValue((0,n.Right)(i));const r=await c.load(o);expect(r).toHaveLength(1),expect(r[0]).toMatchObject({type:d.ClearSignContextType.DYNAMIC_NETWORK,payload:expect.stringContaining("0x0101080201015101012308000000000000008952"),certificate:u}),expect(p.loadCertificate).toHaveBeenCalledWith({keyId:m.KeyId.CalNetwork,keyUsage:g.KeyUsage.Network,targetDevice:e.DeviceModelId.STAX})}),it("should include icon context when icon is available",async()=>{const o={chainId:1,deviceModelId:e.DeviceModelId.STAX,to:"0x123",data:"0x456",selector:"0x789"},i={id:"ethereum",descriptors:{[e.DeviceModelId.APEX]:t(),[e.DeviceModelId.NANO_S]:t(),[e.DeviceModelId.NANO_SP]:t(),[e.DeviceModelId.NANO_X]:t(),[e.DeviceModelId.FLEX]:t(),[e.DeviceModelId.STAX]:{data:"0x0101",descriptorType:"network",descriptorVersion:"v1",signatures:{prod:"prod-sig",test:"test-sig"},icon:"icon-hex-data"}}};vi.spyOn(a,"getDynamicNetworkConfiguration").mockResolvedValue((0,n.Right)(i));const r=await c.load(o);expect(r).toHaveLength(2),expect(r[0]).toMatchObject({type:d.ClearSignContextType.DYNAMIC_NETWORK,payload:expect.any(String),certificate:u}),expect(r[1]).toMatchObject({type:d.ClearSignContextType.DYNAMIC_NETWORK_ICON,payload:"icon-hex-data"})}),it("should handle multiple device models correctly",async()=>{const o={chainId:1,deviceModelId:e.DeviceModelId.FLEX,to:"0x123",data:"0x456",selector:"0x789"},i={id:"ethereum",descriptors:{[e.DeviceModelId.APEX]:t(),[e.DeviceModelId.NANO_S]:t(),[e.DeviceModelId.NANO_SP]:t(),[e.DeviceModelId.NANO_X]:t(),[e.DeviceModelId.FLEX]:{data:"0xFLEX",descriptorType:"network",descriptorVersion:"v1",signatures:{prod:"flex-prod-sig",test:"flex-test-sig"},icon:void 0},[e.DeviceModelId.STAX]:{data:"0xSTAX",descriptorType:"network",descriptorVersion:"v1",signatures:{prod:"stax-prod-sig",test:"stax-test-sig"},icon:void 0}}};vi.spyOn(a,"getDynamicNetworkConfiguration").mockResolvedValue((0,n.Right)(i));const r=await c.load(o);expect(r).toHaveLength(1);const s=r[0];s&&"payload"in s&&(expect(s.payload).toContain("0xFLEX"),expect(s.payload).toContain("flex-prod-sig"))}),it("should use test mode signature when configured",async()=>{const o=new f.DynamicNetworkContextLoader(a,{...l,cal:{...l.cal,mode:"test"}},p),i={chainId:1,deviceModelId:e.DeviceModelId.STAX,to:"0x123",data:"0x456",selector:"0x789"},r={id:"ethereum",descriptors:{[e.DeviceModelId.APEX]:t(),[e.DeviceModelId.NANO_S]:t(),[e.DeviceModelId.NANO_SP]:t(),[e.DeviceModelId.NANO_X]:t(),[e.DeviceModelId.FLEX]:t(),[e.DeviceModelId.STAX]:{data:"0x0101",descriptorType:"network",descriptorVersion:"v1",signatures:{prod:"prod-sig",test:"test-sig"},icon:void 0}}};vi.spyOn(a,"getDynamicNetworkConfiguration").mockResolvedValue((0,n.Right)(r));const s=await o.load(i);expect(s).toHaveLength(1);const y=s[0];y&&"payload"in y&&expect(y.payload).toContain("test-sig")})}),describe("loadField function",()=>{it("should always return null",async()=>{const o={type:d.ClearSignContextType.TOKEN,chainId:1,address:"0x123"},i=await c.loadField(o);expect(i).toBeNull()})})});
1
+ "use strict";var e=require("@ledgerhq/device-management-kit"),n=require("purify-ts"),y=require("../../dynamic-network/domain/DynamicNetworkContextLoader"),f=require("../../pki/model/KeyId"),g=require("../../pki/model/KeyUsage"),p=require("../../shared/model/ClearSignContext");describe("DynamicNetworkContextLoader",()=>{const a={getDynamicNetworkConfiguration:vi.fn()},l={cal:{url:"https://crypto-assets-service.api.ledger.com",mode:"prod",branch:"main"},web3checks:{url:"https://web3checks.api.ledger.com"},metadataServiceDomain:{url:"https://metadata.api.ledger.com"},defaultLoaders:!0,customLoaders:[]},d={loadCertificate:vi.fn()},u={keyUsageNumber:1,payload:new Uint8Array([1,2,3])},s=new y.DynamicNetworkContextLoader(a,l,d),t=o=>({data:"",descriptorType:"",descriptorVersion:"",signatures:{prod:"",test:""},icon:void 0,...o});beforeEach(()=>{vi.restoreAllMocks(),vi.spyOn(d,"loadCertificate").mockResolvedValue(u)}),describe("load function",()=>{it("should return empty array when network data source returns error",async()=>{const o={chainId:1,deviceModelId:e.DeviceModelId.STAX,to:"0x123",data:"0x456",selector:"0x789"};vi.spyOn(a,"getDynamicNetworkConfiguration").mockResolvedValue((0,n.Left)(new Error("Network error")));const i=await s.load(o);expect(i).toEqual([]),expect(a.getDynamicNetworkConfiguration).toHaveBeenCalledWith(1)}),it("should return empty array when descriptor for device model is not found",async()=>{const o={chainId:1,deviceModelId:e.DeviceModelId.STAX,to:"0x123",data:"0x456",selector:"0x789"},i={id:"ethereum",descriptors:{[e.DeviceModelId.NANO_S]:t(),[e.DeviceModelId.NANO_SP]:t(),[e.DeviceModelId.NANO_X]:t(),[e.DeviceModelId.FLEX]:t({data:"0x0101",descriptorType:"network",descriptorVersion:"v1",signatures:{prod:"prod-sig",test:"test-sig"},icon:void 0})}};vi.spyOn(a,"getDynamicNetworkConfiguration").mockResolvedValue((0,n.Right)(i));const r=await s.load(o);expect(r).toEqual([])}),it("should return empty array when signature for mode is not found",async()=>{const o={chainId:1,deviceModelId:e.DeviceModelId.STAX,to:"0x123",data:"0x456",selector:"0x789"},i={id:"ethereum",descriptors:{[e.DeviceModelId.APEX]:t(),[e.DeviceModelId.NANO_S]:t(),[e.DeviceModelId.NANO_SP]:t(),[e.DeviceModelId.NANO_X]:t(),[e.DeviceModelId.FLEX]:t(),[e.DeviceModelId.STAX]:t({data:"0x0101",descriptorType:"network",descriptorVersion:"v1",signatures:{test:"test-sig"},icon:void 0})}};vi.spyOn(a,"getDynamicNetworkConfiguration").mockResolvedValue((0,n.Right)(i));const r=await s.load(o);expect(r).toEqual([])}),it("should return context with network configuration when all data is available",async()=>{const o={chainId:137,deviceModelId:e.DeviceModelId.STAX,to:"0x123",data:"0x456",selector:"0x789"},i={id:"polygon",descriptors:{[e.DeviceModelId.APEX]:t(),[e.DeviceModelId.NANO_S]:t(),[e.DeviceModelId.NANO_SP]:t(),[e.DeviceModelId.NANO_X]:t(),[e.DeviceModelId.FLEX]:t(),[e.DeviceModelId.STAX]:{data:"0x0101080201015101012308000000000000008952",descriptorType:"network",descriptorVersion:"v1",signatures:{prod:"3045022100cf42c039c16fc95dc97c09f15cdd93bed0e63ee45cf5c38c2b30bb8a3bc17f8d022053a96c9e51695c3c1c1a31f5cbf84bd6febadc97f4bb02bdc67cf3e24ad0c32d",test:"test-sig"},icon:void 0}}};vi.spyOn(a,"getDynamicNetworkConfiguration").mockResolvedValue((0,n.Right)(i));const r=await s.load(o);expect(r).toHaveLength(1),expect(r[0]).toMatchObject({type:p.ClearSignContextType.DYNAMIC_NETWORK,payload:expect.stringContaining("0x0101080201015101012308000000000000008952"),certificate:u}),expect(d.loadCertificate).toHaveBeenCalledWith({keyId:f.KeyId.CalNetwork,keyUsage:g.KeyUsage.Network,targetDevice:e.DeviceModelId.STAX})}),it("should include icon context when icon is available",async()=>{const o={chainId:1,deviceModelId:e.DeviceModelId.STAX,to:"0x123",data:"0x456",selector:"0x789"},i={id:"ethereum",descriptors:{[e.DeviceModelId.APEX]:t(),[e.DeviceModelId.NANO_S]:t(),[e.DeviceModelId.NANO_SP]:t(),[e.DeviceModelId.NANO_X]:t(),[e.DeviceModelId.FLEX]:t(),[e.DeviceModelId.STAX]:{data:"0x0101",descriptorType:"network",descriptorVersion:"v1",signatures:{prod:"prod-sig",test:"test-sig"},icon:"icon-hex-data"}}};vi.spyOn(a,"getDynamicNetworkConfiguration").mockResolvedValue((0,n.Right)(i));const r=await s.load(o);expect(r).toHaveLength(2),expect(r[0]).toMatchObject({type:p.ClearSignContextType.DYNAMIC_NETWORK,payload:expect.any(String),certificate:u}),expect(r[1]).toMatchObject({type:p.ClearSignContextType.DYNAMIC_NETWORK_ICON,payload:"icon-hex-data"})}),it("should handle multiple device models correctly",async()=>{const o={chainId:1,deviceModelId:e.DeviceModelId.FLEX,to:"0x123",data:"0x456",selector:"0x789"},i={id:"ethereum",descriptors:{[e.DeviceModelId.APEX]:t(),[e.DeviceModelId.NANO_S]:t(),[e.DeviceModelId.NANO_SP]:t(),[e.DeviceModelId.NANO_X]:t(),[e.DeviceModelId.FLEX]:{data:"0xFLEX",descriptorType:"network",descriptorVersion:"v1",signatures:{prod:"flex-prod-sig",test:"flex-test-sig"},icon:void 0},[e.DeviceModelId.STAX]:{data:"0xSTAX",descriptorType:"network",descriptorVersion:"v1",signatures:{prod:"stax-prod-sig",test:"stax-test-sig"},icon:void 0}}};vi.spyOn(a,"getDynamicNetworkConfiguration").mockResolvedValue((0,n.Right)(i));const r=await s.load(o);expect(r).toHaveLength(1);const c=r[0];c&&"payload"in c&&(expect(c.payload).toContain("0xFLEX"),expect(c.payload).toContain("flex-prod-sig"))}),it("should use test mode signature when configured",async()=>{const o=new y.DynamicNetworkContextLoader(a,{...l,cal:{...l.cal,mode:"test"}},d),i={chainId:1,deviceModelId:e.DeviceModelId.STAX,to:"0x123",data:"0x456",selector:"0x789"},r={id:"ethereum",descriptors:{[e.DeviceModelId.APEX]:t(),[e.DeviceModelId.NANO_S]:t(),[e.DeviceModelId.NANO_SP]:t(),[e.DeviceModelId.NANO_X]:t(),[e.DeviceModelId.FLEX]:t(),[e.DeviceModelId.STAX]:{data:"0x0101",descriptorType:"network",descriptorVersion:"v1",signatures:{prod:"prod-sig",test:"test-sig"},icon:void 0}}};vi.spyOn(a,"getDynamicNetworkConfiguration").mockResolvedValue((0,n.Right)(r));const c=await o.load(i);expect(c).toHaveLength(1);const m=c[0];m&&"payload"in m&&expect(m.payload).toContain("test-sig")})})});
2
2
  //# sourceMappingURL=DynamicNetworkContextLoader.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dynamic-network/domain/DynamicNetworkContextLoader.test.ts"],
4
- "sourcesContent": ["import { DeviceModelId } from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { type DynamicNetworkDataSource } from \"@/dynamic-network/data/DynamicNetworkDataSource\";\nimport { DynamicNetworkContextLoader } from \"@/dynamic-network/domain/DynamicNetworkContextLoader\";\nimport {\n type DynamicNetworkConfiguration,\n type DynamicNetworkDescriptor,\n} from \"@/dynamic-network/model/DynamicNetworkConfiguration\";\nimport { type PkiCertificateLoader } from \"@/pki/domain/PkiCertificateLoader\";\nimport { KeyId } from \"@/pki/model/KeyId\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport { type PkiCertificate } from \"@/pki/model/PkiCertificate\";\nimport { ClearSignContextType } from \"@/shared/model/ClearSignContext\";\nimport {\n type TransactionContext,\n type TransactionFieldContext,\n} from \"@/shared/model/TransactionContext\";\n\ndescribe(\"DynamicNetworkContextLoader\", () => {\n const mockNetworkDataSource: DynamicNetworkDataSource = {\n getDynamicNetworkConfiguration: vi.fn(),\n };\n\n const mockConfig: ContextModuleConfig = {\n cal: {\n url: \"https://crypto-assets-service.api.ledger.com\",\n mode: \"prod\",\n branch: \"main\",\n },\n web3checks: {\n url: \"https://web3checks.api.ledger.com\",\n },\n metadataServiceDomain: {\n url: \"https://metadata.api.ledger.com\",\n },\n defaultLoaders: true,\n customLoaders: [],\n };\n\n const mockCertificateLoader: PkiCertificateLoader = {\n loadCertificate: vi.fn(),\n };\n\n const mockCertificate: PkiCertificate = {\n keyUsageNumber: 1,\n payload: new Uint8Array([0x01, 0x02, 0x03]),\n };\n\n const loader = new DynamicNetworkContextLoader(\n mockNetworkDataSource,\n mockConfig,\n mockCertificateLoader,\n );\n\n // Helper function to create a mock NetworkDescriptor\n const createMockDescriptor = (\n partial?: Partial<DynamicNetworkDescriptor>,\n ): DynamicNetworkDescriptor => ({\n data: \"\",\n descriptorType: \"\",\n descriptorVersion: \"\",\n signatures: {\n prod: \"\",\n test: \"\",\n },\n icon: undefined,\n ...partial,\n });\n\n beforeEach(() => {\n vi.restoreAllMocks();\n vi.spyOn(mockCertificateLoader, \"loadCertificate\").mockResolvedValue(\n mockCertificate,\n );\n });\n\n describe(\"load function\", () => {\n it(\"should return empty array when network data source returns error\", async () => {\n // GIVEN\n const transaction: TransactionContext = {\n chainId: 1,\n deviceModelId: DeviceModelId.STAX,\n to: \"0x123\",\n data: \"0x456\",\n selector: \"0x789\",\n };\n vi.spyOn(\n mockNetworkDataSource,\n \"getDynamicNetworkConfiguration\",\n ).mockResolvedValue(Left(new Error(\"Network error\")));\n\n // WHEN\n const result = await loader.load(transaction);\n\n // THEN\n expect(result).toEqual([]);\n expect(\n mockNetworkDataSource.getDynamicNetworkConfiguration,\n ).toHaveBeenCalledWith(1);\n });\n\n it(\"should return empty array when descriptor for device model is not found\", async () => {\n // GIVEN\n const transaction: TransactionContext = {\n chainId: 1,\n deviceModelId: DeviceModelId.STAX,\n to: \"0x123\",\n data: \"0x456\",\n selector: \"0x789\",\n };\n const networkConfig: DynamicNetworkConfiguration = {\n id: \"ethereum\",\n descriptors: {\n [DeviceModelId.NANO_S]: createMockDescriptor(),\n [DeviceModelId.NANO_SP]: createMockDescriptor(),\n [DeviceModelId.NANO_X]: createMockDescriptor(),\n // STAX descriptor is intentionally missing\n [DeviceModelId.FLEX]: createMockDescriptor({\n data: \"0x0101\",\n descriptorType: \"network\",\n descriptorVersion: \"v1\",\n signatures: {\n prod: \"prod-sig\",\n test: \"test-sig\",\n },\n icon: undefined,\n }),\n } as Record<DeviceModelId, DynamicNetworkDescriptor>,\n };\n vi.spyOn(\n mockNetworkDataSource,\n \"getDynamicNetworkConfiguration\",\n ).mockResolvedValue(Right(networkConfig));\n\n // WHEN\n const result = await loader.load(transaction);\n\n // THEN\n expect(result).toEqual([]);\n });\n\n it(\"should return empty array when signature for mode is not found\", async () => {\n // GIVEN\n const transaction: TransactionContext = {\n chainId: 1,\n deviceModelId: DeviceModelId.STAX,\n to: \"0x123\",\n data: \"0x456\",\n selector: \"0x789\",\n };\n const networkConfig: DynamicNetworkConfiguration = {\n id: \"ethereum\",\n descriptors: {\n [DeviceModelId.APEX]: createMockDescriptor(),\n [DeviceModelId.NANO_S]: createMockDescriptor(),\n [DeviceModelId.NANO_SP]: createMockDescriptor(),\n [DeviceModelId.NANO_X]: createMockDescriptor(),\n [DeviceModelId.FLEX]: createMockDescriptor(),\n [DeviceModelId.STAX]: createMockDescriptor({\n data: \"0x0101\",\n descriptorType: \"network\",\n descriptorVersion: \"v1\",\n signatures: {\n test: \"test-sig\",\n // Missing prod signature - intentionally partial\n } as { prod: string; test: string },\n icon: undefined,\n }),\n },\n };\n vi.spyOn(\n mockNetworkDataSource,\n \"getDynamicNetworkConfiguration\",\n ).mockResolvedValue(Right(networkConfig));\n\n // WHEN\n const result = await loader.load(transaction);\n\n // THEN\n expect(result).toEqual([]);\n });\n\n it(\"should return context with network configuration when all data is available\", async () => {\n // GIVEN\n const transaction: TransactionContext = {\n chainId: 137,\n deviceModelId: DeviceModelId.STAX,\n to: \"0x123\",\n data: \"0x456\",\n selector: \"0x789\",\n };\n const networkConfig: DynamicNetworkConfiguration = {\n id: \"polygon\",\n descriptors: {\n [DeviceModelId.APEX]: createMockDescriptor(),\n [DeviceModelId.NANO_S]: createMockDescriptor(),\n [DeviceModelId.NANO_SP]: createMockDescriptor(),\n [DeviceModelId.NANO_X]: createMockDescriptor(),\n [DeviceModelId.FLEX]: createMockDescriptor(),\n [DeviceModelId.STAX]: {\n data: \"0x0101080201015101012308000000000000008952\",\n descriptorType: \"network\",\n descriptorVersion: \"v1\",\n signatures: {\n prod: \"3045022100cf42c039c16fc95dc97c09f15cdd93bed0e63ee45cf5c38c2b30bb8a3bc17f8d022053a96c9e51695c3c1c1a31f5cbf84bd6febadc97f4bb02bdc67cf3e24ad0c32d\",\n test: \"test-sig\",\n },\n icon: undefined,\n },\n },\n };\n vi.spyOn(\n mockNetworkDataSource,\n \"getDynamicNetworkConfiguration\",\n ).mockResolvedValue(Right(networkConfig));\n\n // WHEN\n const result = await loader.load(transaction);\n\n // THEN\n expect(result).toHaveLength(1);\n expect(result[0]).toMatchObject({\n type: ClearSignContextType.DYNAMIC_NETWORK,\n payload: expect.stringContaining(\n \"0x0101080201015101012308000000000000008952\",\n ),\n certificate: mockCertificate,\n });\n expect(mockCertificateLoader.loadCertificate).toHaveBeenCalledWith({\n keyId: KeyId.CalNetwork,\n keyUsage: KeyUsage.Network,\n targetDevice: DeviceModelId.STAX,\n });\n });\n\n it(\"should include icon context when icon is available\", async () => {\n // GIVEN\n const transaction: TransactionContext = {\n chainId: 1,\n deviceModelId: DeviceModelId.STAX,\n to: \"0x123\",\n data: \"0x456\",\n selector: \"0x789\",\n };\n const networkConfig: DynamicNetworkConfiguration = {\n id: \"ethereum\",\n descriptors: {\n [DeviceModelId.APEX]: createMockDescriptor(),\n [DeviceModelId.NANO_S]: createMockDescriptor(),\n [DeviceModelId.NANO_SP]: createMockDescriptor(),\n [DeviceModelId.NANO_X]: createMockDescriptor(),\n [DeviceModelId.FLEX]: createMockDescriptor(),\n [DeviceModelId.STAX]: {\n data: \"0x0101\",\n descriptorType: \"network\",\n descriptorVersion: \"v1\",\n signatures: {\n prod: \"prod-sig\",\n test: \"test-sig\",\n },\n icon: \"icon-hex-data\",\n },\n },\n };\n vi.spyOn(\n mockNetworkDataSource,\n \"getDynamicNetworkConfiguration\",\n ).mockResolvedValue(Right(networkConfig));\n\n // WHEN\n const result = await loader.load(transaction);\n\n // THEN\n expect(result).toHaveLength(2);\n expect(result[0]).toMatchObject({\n type: ClearSignContextType.DYNAMIC_NETWORK,\n payload: expect.any(String),\n certificate: mockCertificate,\n });\n expect(result[1]).toMatchObject({\n type: ClearSignContextType.DYNAMIC_NETWORK_ICON,\n payload: \"icon-hex-data\",\n });\n });\n\n it(\"should handle multiple device models correctly\", async () => {\n // GIVEN\n const transaction: TransactionContext = {\n chainId: 1,\n deviceModelId: DeviceModelId.FLEX,\n to: \"0x123\",\n data: \"0x456\",\n selector: \"0x789\",\n };\n const networkConfig: DynamicNetworkConfiguration = {\n id: \"ethereum\",\n descriptors: {\n [DeviceModelId.APEX]: createMockDescriptor(),\n [DeviceModelId.NANO_S]: createMockDescriptor(),\n [DeviceModelId.NANO_SP]: createMockDescriptor(),\n [DeviceModelId.NANO_X]: createMockDescriptor(),\n [DeviceModelId.FLEX]: {\n data: \"0xFLEX\",\n descriptorType: \"network\",\n descriptorVersion: \"v1\",\n signatures: {\n prod: \"flex-prod-sig\",\n test: \"flex-test-sig\",\n },\n icon: undefined,\n },\n [DeviceModelId.STAX]: {\n data: \"0xSTAX\",\n descriptorType: \"network\",\n descriptorVersion: \"v1\",\n signatures: {\n prod: \"stax-prod-sig\",\n test: \"stax-test-sig\",\n },\n icon: undefined,\n },\n },\n };\n vi.spyOn(\n mockNetworkDataSource,\n \"getDynamicNetworkConfiguration\",\n ).mockResolvedValue(Right(networkConfig));\n\n // WHEN\n const result = await loader.load(transaction);\n\n // THEN\n expect(result).toHaveLength(1);\n const context = result[0];\n if (context && \"payload\" in context) {\n expect(context.payload).toContain(\"0xFLEX\");\n expect(context.payload).toContain(\"flex-prod-sig\");\n }\n });\n\n it(\"should use test mode signature when configured\", async () => {\n // GIVEN\n const testModeLoader = new DynamicNetworkContextLoader(\n mockNetworkDataSource,\n { ...mockConfig, cal: { ...mockConfig.cal, mode: \"test\" } },\n mockCertificateLoader,\n );\n const transaction: TransactionContext = {\n chainId: 1,\n deviceModelId: DeviceModelId.STAX,\n to: \"0x123\",\n data: \"0x456\",\n selector: \"0x789\",\n };\n const networkConfig: DynamicNetworkConfiguration = {\n id: \"ethereum\",\n descriptors: {\n [DeviceModelId.APEX]: createMockDescriptor(),\n [DeviceModelId.NANO_S]: createMockDescriptor(),\n [DeviceModelId.NANO_SP]: createMockDescriptor(),\n [DeviceModelId.NANO_X]: createMockDescriptor(),\n [DeviceModelId.FLEX]: createMockDescriptor(),\n [DeviceModelId.STAX]: {\n data: \"0x0101\",\n descriptorType: \"network\",\n descriptorVersion: \"v1\",\n signatures: {\n prod: \"prod-sig\",\n test: \"test-sig\",\n },\n icon: undefined,\n },\n },\n };\n vi.spyOn(\n mockNetworkDataSource,\n \"getDynamicNetworkConfiguration\",\n ).mockResolvedValue(Right(networkConfig));\n\n // WHEN\n const result = await testModeLoader.load(transaction);\n\n // THEN\n expect(result).toHaveLength(1);\n const context = result[0];\n if (context && \"payload\" in context) {\n expect(context.payload).toContain(\"test-sig\");\n }\n });\n });\n\n describe(\"loadField function\", () => {\n it(\"should always return null\", async () => {\n // GIVEN\n const field: TransactionFieldContext = {\n type: ClearSignContextType.TOKEN,\n chainId: 1,\n address: \"0x123\",\n };\n\n // WHEN\n const result = await loader.loadField(field);\n\n // THEN\n expect(result).toBeNull();\n });\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["import_device_management_kit", "import_purify_ts", "import_DynamicNetworkContextLoader", "import_KeyId", "import_KeyUsage", "import_ClearSignContext", "mockNetworkDataSource", "mockConfig", "mockCertificateLoader", "mockCertificate", "loader", "createMockDescriptor", "partial", "transaction", "result", "networkConfig", "context", "testModeLoader", "field"]
4
+ "sourcesContent": ["import { DeviceModelId } from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { type DynamicNetworkDataSource } from \"@/dynamic-network/data/DynamicNetworkDataSource\";\nimport { DynamicNetworkContextLoader } from \"@/dynamic-network/domain/DynamicNetworkContextLoader\";\nimport {\n type DynamicNetworkConfiguration,\n type DynamicNetworkDescriptor,\n} from \"@/dynamic-network/model/DynamicNetworkConfiguration\";\nimport { type PkiCertificateLoader } from \"@/pki/domain/PkiCertificateLoader\";\nimport { KeyId } from \"@/pki/model/KeyId\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport { type PkiCertificate } from \"@/pki/model/PkiCertificate\";\nimport { ClearSignContextType } from \"@/shared/model/ClearSignContext\";\nimport { type TransactionContext } from \"@/shared/model/TransactionContext\";\n\ndescribe(\"DynamicNetworkContextLoader\", () => {\n const mockNetworkDataSource: DynamicNetworkDataSource = {\n getDynamicNetworkConfiguration: vi.fn(),\n };\n\n const mockConfig: ContextModuleConfig = {\n cal: {\n url: \"https://crypto-assets-service.api.ledger.com\",\n mode: \"prod\",\n branch: \"main\",\n },\n web3checks: {\n url: \"https://web3checks.api.ledger.com\",\n },\n metadataServiceDomain: {\n url: \"https://metadata.api.ledger.com\",\n },\n defaultLoaders: true,\n customLoaders: [],\n };\n\n const mockCertificateLoader: PkiCertificateLoader = {\n loadCertificate: vi.fn(),\n };\n\n const mockCertificate: PkiCertificate = {\n keyUsageNumber: 1,\n payload: new Uint8Array([0x01, 0x02, 0x03]),\n };\n\n const loader = new DynamicNetworkContextLoader(\n mockNetworkDataSource,\n mockConfig,\n mockCertificateLoader,\n );\n\n // Helper function to create a mock NetworkDescriptor\n const createMockDescriptor = (\n partial?: Partial<DynamicNetworkDescriptor>,\n ): DynamicNetworkDescriptor => ({\n data: \"\",\n descriptorType: \"\",\n descriptorVersion: \"\",\n signatures: {\n prod: \"\",\n test: \"\",\n },\n icon: undefined,\n ...partial,\n });\n\n beforeEach(() => {\n vi.restoreAllMocks();\n vi.spyOn(mockCertificateLoader, \"loadCertificate\").mockResolvedValue(\n mockCertificate,\n );\n });\n\n describe(\"load function\", () => {\n it(\"should return empty array when network data source returns error\", async () => {\n // GIVEN\n const transaction: TransactionContext = {\n chainId: 1,\n deviceModelId: DeviceModelId.STAX,\n to: \"0x123\",\n data: \"0x456\",\n selector: \"0x789\",\n };\n vi.spyOn(\n mockNetworkDataSource,\n \"getDynamicNetworkConfiguration\",\n ).mockResolvedValue(Left(new Error(\"Network error\")));\n\n // WHEN\n const result = await loader.load(transaction);\n\n // THEN\n expect(result).toEqual([]);\n expect(\n mockNetworkDataSource.getDynamicNetworkConfiguration,\n ).toHaveBeenCalledWith(1);\n });\n\n it(\"should return empty array when descriptor for device model is not found\", async () => {\n // GIVEN\n const transaction: TransactionContext = {\n chainId: 1,\n deviceModelId: DeviceModelId.STAX,\n to: \"0x123\",\n data: \"0x456\",\n selector: \"0x789\",\n };\n const networkConfig: DynamicNetworkConfiguration = {\n id: \"ethereum\",\n descriptors: {\n [DeviceModelId.NANO_S]: createMockDescriptor(),\n [DeviceModelId.NANO_SP]: createMockDescriptor(),\n [DeviceModelId.NANO_X]: createMockDescriptor(),\n // STAX descriptor is intentionally missing\n [DeviceModelId.FLEX]: createMockDescriptor({\n data: \"0x0101\",\n descriptorType: \"network\",\n descriptorVersion: \"v1\",\n signatures: {\n prod: \"prod-sig\",\n test: \"test-sig\",\n },\n icon: undefined,\n }),\n } as Record<DeviceModelId, DynamicNetworkDescriptor>,\n };\n vi.spyOn(\n mockNetworkDataSource,\n \"getDynamicNetworkConfiguration\",\n ).mockResolvedValue(Right(networkConfig));\n\n // WHEN\n const result = await loader.load(transaction);\n\n // THEN\n expect(result).toEqual([]);\n });\n\n it(\"should return empty array when signature for mode is not found\", async () => {\n // GIVEN\n const transaction: TransactionContext = {\n chainId: 1,\n deviceModelId: DeviceModelId.STAX,\n to: \"0x123\",\n data: \"0x456\",\n selector: \"0x789\",\n };\n const networkConfig: DynamicNetworkConfiguration = {\n id: \"ethereum\",\n descriptors: {\n [DeviceModelId.APEX]: createMockDescriptor(),\n [DeviceModelId.NANO_S]: createMockDescriptor(),\n [DeviceModelId.NANO_SP]: createMockDescriptor(),\n [DeviceModelId.NANO_X]: createMockDescriptor(),\n [DeviceModelId.FLEX]: createMockDescriptor(),\n [DeviceModelId.STAX]: createMockDescriptor({\n data: \"0x0101\",\n descriptorType: \"network\",\n descriptorVersion: \"v1\",\n signatures: {\n test: \"test-sig\",\n // Missing prod signature - intentionally partial\n } as { prod: string; test: string },\n icon: undefined,\n }),\n },\n };\n vi.spyOn(\n mockNetworkDataSource,\n \"getDynamicNetworkConfiguration\",\n ).mockResolvedValue(Right(networkConfig));\n\n // WHEN\n const result = await loader.load(transaction);\n\n // THEN\n expect(result).toEqual([]);\n });\n\n it(\"should return context with network configuration when all data is available\", async () => {\n // GIVEN\n const transaction: TransactionContext = {\n chainId: 137,\n deviceModelId: DeviceModelId.STAX,\n to: \"0x123\",\n data: \"0x456\",\n selector: \"0x789\",\n };\n const networkConfig: DynamicNetworkConfiguration = {\n id: \"polygon\",\n descriptors: {\n [DeviceModelId.APEX]: createMockDescriptor(),\n [DeviceModelId.NANO_S]: createMockDescriptor(),\n [DeviceModelId.NANO_SP]: createMockDescriptor(),\n [DeviceModelId.NANO_X]: createMockDescriptor(),\n [DeviceModelId.FLEX]: createMockDescriptor(),\n [DeviceModelId.STAX]: {\n data: \"0x0101080201015101012308000000000000008952\",\n descriptorType: \"network\",\n descriptorVersion: \"v1\",\n signatures: {\n prod: \"3045022100cf42c039c16fc95dc97c09f15cdd93bed0e63ee45cf5c38c2b30bb8a3bc17f8d022053a96c9e51695c3c1c1a31f5cbf84bd6febadc97f4bb02bdc67cf3e24ad0c32d\",\n test: \"test-sig\",\n },\n icon: undefined,\n },\n },\n };\n vi.spyOn(\n mockNetworkDataSource,\n \"getDynamicNetworkConfiguration\",\n ).mockResolvedValue(Right(networkConfig));\n\n // WHEN\n const result = await loader.load(transaction);\n\n // THEN\n expect(result).toHaveLength(1);\n expect(result[0]).toMatchObject({\n type: ClearSignContextType.DYNAMIC_NETWORK,\n payload: expect.stringContaining(\n \"0x0101080201015101012308000000000000008952\",\n ),\n certificate: mockCertificate,\n });\n expect(mockCertificateLoader.loadCertificate).toHaveBeenCalledWith({\n keyId: KeyId.CalNetwork,\n keyUsage: KeyUsage.Network,\n targetDevice: DeviceModelId.STAX,\n });\n });\n\n it(\"should include icon context when icon is available\", async () => {\n // GIVEN\n const transaction: TransactionContext = {\n chainId: 1,\n deviceModelId: DeviceModelId.STAX,\n to: \"0x123\",\n data: \"0x456\",\n selector: \"0x789\",\n };\n const networkConfig: DynamicNetworkConfiguration = {\n id: \"ethereum\",\n descriptors: {\n [DeviceModelId.APEX]: createMockDescriptor(),\n [DeviceModelId.NANO_S]: createMockDescriptor(),\n [DeviceModelId.NANO_SP]: createMockDescriptor(),\n [DeviceModelId.NANO_X]: createMockDescriptor(),\n [DeviceModelId.FLEX]: createMockDescriptor(),\n [DeviceModelId.STAX]: {\n data: \"0x0101\",\n descriptorType: \"network\",\n descriptorVersion: \"v1\",\n signatures: {\n prod: \"prod-sig\",\n test: \"test-sig\",\n },\n icon: \"icon-hex-data\",\n },\n },\n };\n vi.spyOn(\n mockNetworkDataSource,\n \"getDynamicNetworkConfiguration\",\n ).mockResolvedValue(Right(networkConfig));\n\n // WHEN\n const result = await loader.load(transaction);\n\n // THEN\n expect(result).toHaveLength(2);\n expect(result[0]).toMatchObject({\n type: ClearSignContextType.DYNAMIC_NETWORK,\n payload: expect.any(String),\n certificate: mockCertificate,\n });\n expect(result[1]).toMatchObject({\n type: ClearSignContextType.DYNAMIC_NETWORK_ICON,\n payload: \"icon-hex-data\",\n });\n });\n\n it(\"should handle multiple device models correctly\", async () => {\n // GIVEN\n const transaction: TransactionContext = {\n chainId: 1,\n deviceModelId: DeviceModelId.FLEX,\n to: \"0x123\",\n data: \"0x456\",\n selector: \"0x789\",\n };\n const networkConfig: DynamicNetworkConfiguration = {\n id: \"ethereum\",\n descriptors: {\n [DeviceModelId.APEX]: createMockDescriptor(),\n [DeviceModelId.NANO_S]: createMockDescriptor(),\n [DeviceModelId.NANO_SP]: createMockDescriptor(),\n [DeviceModelId.NANO_X]: createMockDescriptor(),\n [DeviceModelId.FLEX]: {\n data: \"0xFLEX\",\n descriptorType: \"network\",\n descriptorVersion: \"v1\",\n signatures: {\n prod: \"flex-prod-sig\",\n test: \"flex-test-sig\",\n },\n icon: undefined,\n },\n [DeviceModelId.STAX]: {\n data: \"0xSTAX\",\n descriptorType: \"network\",\n descriptorVersion: \"v1\",\n signatures: {\n prod: \"stax-prod-sig\",\n test: \"stax-test-sig\",\n },\n icon: undefined,\n },\n },\n };\n vi.spyOn(\n mockNetworkDataSource,\n \"getDynamicNetworkConfiguration\",\n ).mockResolvedValue(Right(networkConfig));\n\n // WHEN\n const result = await loader.load(transaction);\n\n // THEN\n expect(result).toHaveLength(1);\n const context = result[0];\n if (context && \"payload\" in context) {\n expect(context.payload).toContain(\"0xFLEX\");\n expect(context.payload).toContain(\"flex-prod-sig\");\n }\n });\n\n it(\"should use test mode signature when configured\", async () => {\n // GIVEN\n const testModeLoader = new DynamicNetworkContextLoader(\n mockNetworkDataSource,\n { ...mockConfig, cal: { ...mockConfig.cal, mode: \"test\" } },\n mockCertificateLoader,\n );\n const transaction: TransactionContext = {\n chainId: 1,\n deviceModelId: DeviceModelId.STAX,\n to: \"0x123\",\n data: \"0x456\",\n selector: \"0x789\",\n };\n const networkConfig: DynamicNetworkConfiguration = {\n id: \"ethereum\",\n descriptors: {\n [DeviceModelId.APEX]: createMockDescriptor(),\n [DeviceModelId.NANO_S]: createMockDescriptor(),\n [DeviceModelId.NANO_SP]: createMockDescriptor(),\n [DeviceModelId.NANO_X]: createMockDescriptor(),\n [DeviceModelId.FLEX]: createMockDescriptor(),\n [DeviceModelId.STAX]: {\n data: \"0x0101\",\n descriptorType: \"network\",\n descriptorVersion: \"v1\",\n signatures: {\n prod: \"prod-sig\",\n test: \"test-sig\",\n },\n icon: undefined,\n },\n },\n };\n vi.spyOn(\n mockNetworkDataSource,\n \"getDynamicNetworkConfiguration\",\n ).mockResolvedValue(Right(networkConfig));\n\n // WHEN\n const result = await testModeLoader.load(transaction);\n\n // THEN\n expect(result).toHaveLength(1);\n const context = result[0];\n if (context && \"payload\" in context) {\n expect(context.payload).toContain(\"test-sig\");\n }\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_device_management_kit", "import_purify_ts", "import_DynamicNetworkContextLoader", "import_KeyId", "import_KeyUsage", "import_ClearSignContext", "mockNetworkDataSource", "mockConfig", "mockCertificateLoader", "mockCertificate", "loader", "createMockDescriptor", "partial", "transaction", "result", "networkConfig", "context", "testModeLoader"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var a=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var t=(f,e,p,x)=>{if(e&&typeof e=="object"||typeof e=="function")for(let m of c(e))!d.call(f,m)&&m!==p&&a(f,m,{get:()=>e[m],enumerable:!(x=b(e,m))||x.enumerable});return f},r=(f,e,p)=>(t(f,e,"default"),p&&t(p,e,"default"));var g=f=>t(a({},"__esModule",{value:!0}),f);var o={};module.exports=g(o);r(o,require("./config/model/ContextModuleConfig"),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/domain/DynamicNetworkContextLoader"),module.exports);r(o,require("./dynamic-network/model/DynamicNetworkConfiguration"),module.exports);r(o,require("./external-plugin/domain/ExternalPluginContextLoader"),module.exports);r(o,require("./nft/domain/NftContextLoader"),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("./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/TransactionContext"),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("./token/domain/TokenContextLoader"),module.exports);r(o,require("./trusted-name/domain/TrustedNameContextLoader"),module.exports);r(o,require("./web3-check/domain/Web3CheckContextLoader"),module.exports);r(o,require("./web3-check/domain/web3CheckTypes"),module.exports);0&&(module.exports={...require("./config/model/ContextModuleConfig"),...require("./ContextModule"),...require("./ContextModuleBuilder"),...require("./DefaultContextModule"),...require("./dynamic-network/domain/DynamicNetworkContextLoader"),...require("./dynamic-network/model/DynamicNetworkConfiguration"),...require("./external-plugin/domain/ExternalPluginContextLoader"),...require("./nft/domain/NftContextLoader"),...require("./pki/domain/PkiCertificateLoader"),...require("./pki/model/KeyId"),...require("./pki/model/KeyUsage"),...require("./pki/model/PkiCertificate"),...require("./pki/model/PkiCertificateInfo"),...require("./shared/domain/ContextLoader"),...require("./shared/model/ClearSignContext"),...require("./shared/model/GenericPath"),...require("./shared/model/TransactionContext"),...require("./shared/model/TransactionSubset"),...require("./shared/model/TypedDataClearSignContext"),...require("./shared/model/TypedDataContext"),...require("./token/domain/TokenContextLoader"),...require("./trusted-name/domain/TrustedNameContextLoader"),...require("./web3-check/domain/Web3CheckContextLoader"),...require("./web3-check/domain/web3CheckTypes")});
1
+ "use strict";var a=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var t=(f,e,p,x)=>{if(e&&typeof e=="object"||typeof e=="function")for(let m of c(e))!d.call(f,m)&&m!==p&&a(f,m,{get:()=>e[m],enumerable:!(x=b(e,m))||x.enumerable});return f},r=(f,e,p)=>(t(f,e,"default"),p&&t(p,e,"default"));var g=f=>t(a({},"__esModule",{value:!0}),f);var o={};module.exports=g(o);r(o,require("./config/model/ContextModuleConfig"),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/domain/DynamicNetworkContextLoader"),module.exports);r(o,require("./dynamic-network/model/DynamicNetworkConfiguration"),module.exports);r(o,require("./external-plugin/domain/ExternalPluginContextLoader"),module.exports);r(o,require("./nft/domain/NftContextLoader"),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("./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/TransactionContext"),module.exports);r(o,require("./shared/model/TransactionFieldContext"),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("./token/domain/TokenContextLoader"),module.exports);r(o,require("./trusted-name/domain/TrustedNameContextLoader"),module.exports);r(o,require("./web3-check/domain/Web3CheckContextLoader"),module.exports);r(o,require("./web3-check/domain/web3CheckTypes"),module.exports);0&&(module.exports={...require("./config/model/ContextModuleConfig"),...require("./ContextModule"),...require("./ContextModuleBuilder"),...require("./DefaultContextModule"),...require("./dynamic-network/domain/DynamicNetworkContextLoader"),...require("./dynamic-network/model/DynamicNetworkConfiguration"),...require("./external-plugin/domain/ExternalPluginContextLoader"),...require("./nft/domain/NftContextLoader"),...require("./pki/domain/PkiCertificateLoader"),...require("./pki/model/KeyId"),...require("./pki/model/KeyUsage"),...require("./pki/model/PkiCertificate"),...require("./pki/model/PkiCertificateInfo"),...require("./shared/domain/ContextLoader"),...require("./shared/model/ClearSignContext"),...require("./shared/model/GenericPath"),...require("./shared/model/TransactionContext"),...require("./shared/model/TransactionFieldContext"),...require("./shared/model/TransactionSubset"),...require("./shared/model/TypedDataClearSignContext"),...require("./shared/model/TypedDataContext"),...require("./token/domain/TokenContextLoader"),...require("./trusted-name/domain/TrustedNameContextLoader"),...require("./web3-check/domain/Web3CheckContextLoader"),...require("./web3-check/domain/web3CheckTypes")});
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 \"./config/model/ContextModuleConfig\";\nexport * from \"./ContextModule\";\nexport * from \"./ContextModuleBuilder\";\nexport * from \"./DefaultContextModule\";\nexport * from \"./dynamic-network/domain/DynamicNetworkContextLoader\";\nexport * from \"./dynamic-network/model/DynamicNetworkConfiguration\";\nexport * from \"./external-plugin/domain/ExternalPluginContextLoader\";\nexport * from \"./nft/domain/NftContextLoader\";\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 \"./shared/domain/ContextLoader\";\nexport * from \"./shared/model/ClearSignContext\";\nexport * from \"./shared/model/GenericPath\";\nexport * from \"./shared/model/TransactionContext\";\nexport * from \"./shared/model/TransactionSubset\";\nexport * from \"./shared/model/TypedDataClearSignContext\";\nexport * from \"./shared/model/TypedDataContext\";\nexport * from \"./token/domain/TokenContextLoader\";\nexport * from \"./trusted-name/domain/TrustedNameContextLoader\";\nexport * from \"./web3-check/domain/Web3CheckContextLoader\";\nexport * from \"./web3-check/domain/web3CheckTypes\";\n"],
5
- "mappings": "iaAAA,IAAAA,EAAA,kBAAAC,EAAAD,GAAAE,EAAAF,EAAc,8CAAd,gBACAE,EAAAF,EAAc,2BADd,gBAEAE,EAAAF,EAAc,kCAFd,gBAGAE,EAAAF,EAAc,kCAHd,gBAIAE,EAAAF,EAAc,gEAJd,gBAKAE,EAAAF,EAAc,+DALd,gBAMAE,EAAAF,EAAc,gEANd,gBAOAE,EAAAF,EAAc,yCAPd,gBAQAE,EAAAF,EAAc,6CARd,gBASAE,EAAAF,EAAc,6BATd,gBAUAE,EAAAF,EAAc,gCAVd,gBAWAE,EAAAF,EAAc,sCAXd,gBAYAE,EAAAF,EAAc,0CAZd,gBAaAE,EAAAF,EAAc,yCAbd,gBAcAE,EAAAF,EAAc,2CAdd,gBAeAE,EAAAF,EAAc,sCAfd,gBAgBAE,EAAAF,EAAc,6CAhBd,gBAiBAE,EAAAF,EAAc,4CAjBd,gBAkBAE,EAAAF,EAAc,oDAlBd,gBAmBAE,EAAAF,EAAc,2CAnBd,gBAoBAE,EAAAF,EAAc,6CApBd,gBAqBAE,EAAAF,EAAc,0DArBd,gBAsBAE,EAAAF,EAAc,sDAtBd,gBAuBAE,EAAAF,EAAc,8CAvBd",
4
+ "sourcesContent": ["export * from \"./config/model/ContextModuleConfig\";\nexport * from \"./ContextModule\";\nexport * from \"./ContextModuleBuilder\";\nexport * from \"./DefaultContextModule\";\nexport * from \"./dynamic-network/domain/DynamicNetworkContextLoader\";\nexport * from \"./dynamic-network/model/DynamicNetworkConfiguration\";\nexport * from \"./external-plugin/domain/ExternalPluginContextLoader\";\nexport * from \"./nft/domain/NftContextLoader\";\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 \"./shared/domain/ContextLoader\";\nexport * from \"./shared/model/ClearSignContext\";\nexport * from \"./shared/model/GenericPath\";\nexport * from \"./shared/model/TransactionContext\";\nexport * from \"./shared/model/TransactionFieldContext\";\nexport * from \"./shared/model/TransactionSubset\";\nexport * from \"./shared/model/TypedDataClearSignContext\";\nexport * from \"./shared/model/TypedDataContext\";\nexport * from \"./token/domain/TokenContextLoader\";\nexport * from \"./trusted-name/domain/TrustedNameContextLoader\";\nexport * from \"./web3-check/domain/Web3CheckContextLoader\";\nexport * from \"./web3-check/domain/web3CheckTypes\";\n"],
5
+ "mappings": "iaAAA,IAAAA,EAAA,kBAAAC,EAAAD,GAAAE,EAAAF,EAAc,8CAAd,gBACAE,EAAAF,EAAc,2BADd,gBAEAE,EAAAF,EAAc,kCAFd,gBAGAE,EAAAF,EAAc,kCAHd,gBAIAE,EAAAF,EAAc,gEAJd,gBAKAE,EAAAF,EAAc,+DALd,gBAMAE,EAAAF,EAAc,gEANd,gBAOAE,EAAAF,EAAc,yCAPd,gBAQAE,EAAAF,EAAc,6CARd,gBASAE,EAAAF,EAAc,6BATd,gBAUAE,EAAAF,EAAc,gCAVd,gBAWAE,EAAAF,EAAc,sCAXd,gBAYAE,EAAAF,EAAc,0CAZd,gBAaAE,EAAAF,EAAc,yCAbd,gBAcAE,EAAAF,EAAc,2CAdd,gBAeAE,EAAAF,EAAc,sCAfd,gBAgBAE,EAAAF,EAAc,6CAhBd,gBAiBAE,EAAAF,EAAc,kDAjBd,gBAkBAE,EAAAF,EAAc,4CAlBd,gBAmBAE,EAAAF,EAAc,oDAnBd,gBAoBAE,EAAAF,EAAc,2CApBd,gBAqBAE,EAAAF,EAAc,6CArBd,gBAsBAE,EAAAF,EAAc,0DAtBd,gBAuBAE,EAAAF,EAAc,sDAvBd,gBAwBAE,EAAAF,EAAc,8CAxBd",
6
6
  "names": ["src_exports", "__toCommonJS", "__reExport"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var f=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var N=Object.prototype.hasOwnProperty;var d=(t,o)=>{for(var e in o)f(t,e,{get:o[e],enumerable:!0})},x=(t,o,e,m)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of u(o))!N.call(t,r)&&r!==e&&f(t,r,{get:()=>o[r],enumerable:!(m=i(o,r))||m.enumerable});return t};var C=t=>x(f({},"__esModule",{value:!0}),t);var s={};d(s,{nftModuleFactory:()=>l});module.exports=C(s);var n=require("inversify"),p=require("../../nft/data/HttpNftDataSource"),a=require("../../nft/di/nftTypes"),c=require("../../nft/domain/NftContextLoader");const l=()=>new n.ContainerModule(({bind:t})=>{t(a.nftTypes.NftDataSource).to(p.HttpNftDataSource),t(a.nftTypes.NftContextLoader).to(c.NftContextLoader)});0&&(module.exports={nftModuleFactory});
1
+ "use strict";var a=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var c=(t,o)=>{for(var e in o)a(t,e,{get:o[e],enumerable:!0})},l=(t,o,e,m)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of x(o))!C.call(t,r)&&r!==e&&a(t,r,{get:()=>o[r],enumerable:!(m=N(o,r))||m.enumerable});return t};var u=t=>l(a({},"__esModule",{value:!0}),t);var F={};c(F,{nftModuleFactory:()=>L});module.exports=u(F);var n=require("inversify"),p=require("../../nft/data/HttpNftDataSource"),f=require("../../nft/di/nftTypes"),d=require("../../nft/domain/NftContextFieldLoader"),i=require("../../nft/domain/NftContextLoader");const L=()=>new n.ContainerModule(({bind:t})=>{t(f.nftTypes.NftDataSource).to(p.HttpNftDataSource),t(f.nftTypes.NftContextLoader).to(i.NftContextLoader),t(f.nftTypes.NftContextFieldLoader).to(d.NftContextFieldLoader)});0&&(module.exports={nftModuleFactory});
2
2
  //# sourceMappingURL=nftModuleFactory.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/nft/di/nftModuleFactory.ts"],
4
- "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { HttpNftDataSource } from \"@/nft/data/HttpNftDataSource\";\nimport { nftTypes } from \"@/nft/di/nftTypes\";\nimport { NftContextLoader } from \"@/nft/domain/NftContextLoader\";\n\nexport const nftModuleFactory = () =>\n new ContainerModule(({ bind }) => {\n bind(nftTypes.NftDataSource).to(HttpNftDataSource);\n bind(nftTypes.NftContextLoader).to(NftContextLoader);\n });\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAgC,qBAEhCC,EAAkC,wCAClCC,EAAyB,6BACzBC,EAAiC,yCAE1B,MAAML,EAAmB,IAC9B,IAAI,kBAAgB,CAAC,CAAE,KAAAM,CAAK,IAAM,CAChCA,EAAK,WAAS,aAAa,EAAE,GAAG,mBAAiB,EACjDA,EAAK,WAAS,gBAAgB,EAAE,GAAG,kBAAgB,CACrD,CAAC",
6
- "names": ["nftModuleFactory_exports", "__export", "nftModuleFactory", "__toCommonJS", "import_inversify", "import_HttpNftDataSource", "import_nftTypes", "import_NftContextLoader", "bind"]
4
+ "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { HttpNftDataSource } from \"@/nft/data/HttpNftDataSource\";\nimport { nftTypes } from \"@/nft/di/nftTypes\";\nimport { NftContextFieldLoader } from \"@/nft/domain/NftContextFieldLoader\";\nimport { NftContextLoader } from \"@/nft/domain/NftContextLoader\";\n\nexport const nftModuleFactory = () =>\n new ContainerModule(({ bind }) => {\n bind(nftTypes.NftDataSource).to(HttpNftDataSource);\n bind(nftTypes.NftContextLoader).to(NftContextLoader);\n bind(nftTypes.NftContextFieldLoader).to(NftContextFieldLoader);\n });\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAgC,qBAEhCC,EAAkC,wCAClCC,EAAyB,6BACzBC,EAAsC,8CACtCC,EAAiC,yCAE1B,MAAMN,EAAmB,IAC9B,IAAI,kBAAgB,CAAC,CAAE,KAAAO,CAAK,IAAM,CAChCA,EAAK,WAAS,aAAa,EAAE,GAAG,mBAAiB,EACjDA,EAAK,WAAS,gBAAgB,EAAE,GAAG,kBAAgB,EACnDA,EAAK,WAAS,qBAAqB,EAAE,GAAG,uBAAqB,CAC/D,CAAC",
6
+ "names": ["nftModuleFactory_exports", "__export", "nftModuleFactory", "__toCommonJS", "import_inversify", "import_HttpNftDataSource", "import_nftTypes", "import_NftContextFieldLoader", "import_NftContextLoader", "bind"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var r=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var x=(o,t)=>{for(var f in t)r(o,f,{get:t[f],enumerable:!0})},y=(o,t,f,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of S(t))!c.call(o,e)&&e!==f&&r(o,e,{get:()=>t[e],enumerable:!(a=n(t,e))||a.enumerable});return o};var b=o=>y(r({},"__esModule",{value:!0}),o);var l={};x(l,{nftTypes:()=>d});module.exports=b(l);const d={NftDataSource:Symbol.for("nftDataSource"),NftContextLoader:Symbol.for("nftContextLoader")};0&&(module.exports={nftTypes});
1
+ "use strict";var r=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var x=(o,t)=>{for(var f in t)r(o,f,{get:t[f],enumerable:!0})},S=(o,t,f,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of d(t))!l.call(o,e)&&e!==f&&r(o,e,{get:()=>t[e],enumerable:!(n=a(t,e))||n.enumerable});return o};var y=o=>S(r({},"__esModule",{value:!0}),o);var L={};x(L,{nftTypes:()=>C});module.exports=y(L);const C={NftDataSource:Symbol.for("nftDataSource"),NftContextLoader:Symbol.for("nftContextLoader"),NftContextFieldLoader:Symbol.for("nftContextFieldLoader")};0&&(module.exports={nftTypes});
2
2
  //# sourceMappingURL=nftTypes.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/nft/di/nftTypes.ts"],
4
- "sourcesContent": ["export const nftTypes = {\n NftDataSource: Symbol.for(\"nftDataSource\"),\n NftContextLoader: Symbol.for(\"nftContextLoader\"),\n};\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,cAAAE,IAAA,eAAAC,EAAAH,GAAO,MAAME,EAAW,CACtB,cAAe,OAAO,IAAI,eAAe,EACzC,iBAAkB,OAAO,IAAI,kBAAkB,CACjD",
4
+ "sourcesContent": ["export const nftTypes = {\n NftDataSource: Symbol.for(\"nftDataSource\"),\n NftContextLoader: Symbol.for(\"nftContextLoader\"),\n NftContextFieldLoader: Symbol.for(\"nftContextFieldLoader\"),\n};\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,cAAAE,IAAA,eAAAC,EAAAH,GAAO,MAAME,EAAW,CACtB,cAAe,OAAO,IAAI,eAAe,EACzC,iBAAkB,OAAO,IAAI,kBAAkB,EAC/C,sBAAuB,OAAO,IAAI,uBAAuB,CAC3D",
6
6
  "names": ["nftTypes_exports", "__export", "nftTypes", "__toCommonJS"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";var i=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var F=Object.prototype.hasOwnProperty;var S=(e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})},T=(e,t,r,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of x(t))!F.call(e,o)&&o!==r&&i(e,o,{get:()=>t[o],enumerable:!(a=s(t,o))||a.enumerable});return e};var u=e=>T(i({},"__esModule",{value:!0}),e),m=(e,t,r,a)=>{for(var o=a>1?void 0:a?s(t,r):t,p=e.length-1,c;p>=0;p--)(c=e[p])&&(o=(a?c(t,r,o):c(o))||o);return a&&o&&i(t,r,o),o},C=(e,t)=>(r,a)=>t(r,a,e);var g={};S(g,{NftContextFieldLoader:()=>n});module.exports=u(g);var d=require("inversify"),y=require("../../nft/di/nftTypes"),f=require("../../shared/domain/ContextFieldLoader"),l=require("../../shared/model/ClearSignContext");let n=class{constructor(t){this._dataSource=t}kind=f.ContextFieldLoaderKind.NFT;async loadField(t){return(await this._dataSource.getNftInfosPayload({address:t.address,chainId:t.chainId})).caseOf({Left:a=>({type:l.ClearSignContextType.ERROR,error:a}),Right:a=>({type:l.ClearSignContextType.NFT,payload:a})})}};n=m([(0,d.injectable)(),C(0,(0,d.inject)(y.nftTypes.NftDataSource))],n);0&&(module.exports={NftContextFieldLoader});
2
+ //# sourceMappingURL=NftContextFieldLoader.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/nft/domain/NftContextFieldLoader.ts"],
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport * as NftDataSource from \"@/nft/data/NftDataSource\";\nimport { nftTypes } from \"@/nft/di/nftTypes\";\nimport {\n type ContextFieldLoader,\n ContextFieldLoaderKind,\n} from \"@/shared/domain/ContextFieldLoader\";\nimport {\n type ClearSignContext,\n ClearSignContextType,\n} from \"@/shared/model/ClearSignContext\";\nimport { type TransactionFieldContext } from \"@/shared/model/TransactionFieldContext\";\n\n@injectable()\nexport class NftContextFieldLoader\n implements ContextFieldLoader<ContextFieldLoaderKind.NFT>\n{\n kind: ContextFieldLoaderKind.NFT = ContextFieldLoaderKind.NFT;\n\n constructor(\n @inject(nftTypes.NftDataSource)\n private _dataSource: NftDataSource.NftDataSource,\n ) {}\n\n async loadField(\n field: TransactionFieldContext<ContextFieldLoaderKind.NFT>,\n ): Promise<ClearSignContext> {\n const payload = await this._dataSource.getNftInfosPayload({\n address: field.address,\n chainId: field.chainId,\n });\n return payload.caseOf({\n Left: (error): ClearSignContext => ({\n type: ClearSignContextType.ERROR,\n error,\n }),\n Right: (value): ClearSignContext => ({\n type: ClearSignContextType.NFT,\n payload: value,\n }),\n });\n }\n}\n"],
5
+ "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,2BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,qBAGnCC,EAAyB,6BACzBC,EAGO,8CACPC,EAGO,2CAIA,IAAMC,EAAN,KAEP,CAGE,YAEUC,EACR,CADQ,iBAAAA,CACP,CALH,KAAmC,yBAAuB,IAO1D,MAAM,UACJC,EAC2B,CAK3B,OAJgB,MAAM,KAAK,YAAY,mBAAmB,CACxD,QAASA,EAAM,QACf,QAASA,EAAM,OACjB,CAAC,GACc,OAAO,CACpB,KAAOC,IAA6B,CAClC,KAAM,uBAAqB,MAC3B,MAAAA,CACF,GACA,MAAQC,IAA6B,CACnC,KAAM,uBAAqB,IAC3B,QAASA,CACX,EACF,CAAC,CACH,CACF,EA5BaJ,EAANK,EAAA,IADN,cAAW,EAOPC,EAAA,eAAO,WAAS,aAAa,IANrBN",
6
+ "names": ["NftContextFieldLoader_exports", "__export", "NftContextFieldLoader", "__toCommonJS", "import_inversify", "import_nftTypes", "import_ContextFieldLoader", "import_ClearSignContext", "NftContextFieldLoader", "_dataSource", "field", "error", "value", "__decorateClass", "__decorateParam"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var d=require("purify-ts"),i=require("../../nft/domain/NftContextFieldLoader"),l=require("../../shared/domain/ContextFieldLoader"),s=require("../../shared/model/ClearSignContext");describe("NftContextFieldLoader",()=>{const t={getNftInfosPayload:vi.fn(),getSetPluginPayload:vi.fn()},r=new i.NftContextFieldLoader(t),o={kind:l.ContextFieldLoaderKind.NFT,chainId:1,address:"0x1234567890abcdef"},n="0x123456789abcdef0";beforeEach(()=>{vi.resetAllMocks()}),describe("constructor",()=>{it("should initialize with correct kind",()=>{expect(r.kind).toBe(l.ContextFieldLoaderKind.NFT)})}),describe("loadField",()=>{it("should return error context when NFT data source fails",async()=>{const e=new Error("NFT data source error");vi.spyOn(t,"getNftInfosPayload").mockResolvedValue((0,d.Left)(e));const a=await r.loadField(o);expect(t.getNftInfosPayload).toHaveBeenCalledWith({address:o.address,chainId:o.chainId}),expect(a).toEqual({type:s.ClearSignContextType.ERROR,error:e})}),it("should return NFT context when successful",async()=>{vi.spyOn(t,"getNftInfosPayload").mockResolvedValue((0,d.Right)(n));const e=await r.loadField(o);expect(t.getNftInfosPayload).toHaveBeenCalledWith({address:o.address,chainId:o.chainId}),expect(e).toEqual({type:s.ClearSignContextType.NFT,payload:n})}),it("should handle different chain IDs and addresses correctly",async()=>{const e={...o,chainId:137,address:"0xdeadbeef"};vi.spyOn(t,"getNftInfosPayload").mockResolvedValue((0,d.Right)(n));const a=await r.loadField(e);expect(t.getNftInfosPayload).toHaveBeenCalledWith({address:"0xdeadbeef",chainId:137}),expect(a).toEqual({type:s.ClearSignContextType.NFT,payload:n})}),it("should preserve error message from NFT data source",async()=>{const e=new Error("Network timeout error");vi.spyOn(t,"getNftInfosPayload").mockResolvedValue((0,d.Left)(e));const a=await r.loadField(o);expect(a).toEqual({type:s.ClearSignContextType.ERROR,error:e})}),it("should handle empty NFT payload",async()=>{const e="";vi.spyOn(t,"getNftInfosPayload").mockResolvedValue((0,d.Right)(e));const a=await r.loadField(o);expect(a).toEqual({type:s.ClearSignContextType.NFT,payload:e})})})});
2
+ //# sourceMappingURL=NftContextFieldLoader.test.js.map