@ledgerhq/device-trusted-app-kit-ledger-keyring-protocol 0.0.0-multisig-20250822145545 → 0.0.0-web-ble-29-08---20250829104351

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 (467) hide show
  1. package/lib/cjs/api/LedgerKeyringProtocol.js +1 -1
  2. package/lib/cjs/api/LedgerKeyringProtocol.js.map +1 -1
  3. package/lib/cjs/api/LedgerKeyringProtocolBuilder.js +1 -1
  4. package/lib/cjs/api/LedgerKeyringProtocolBuilder.js.map +3 -3
  5. package/lib/cjs/api/app-binder/AddToTrustchainDeviceActionTypes.js.map +2 -2
  6. package/lib/cjs/api/app-binder/AuthenticateDeviceActionTypes.js.map +1 -1
  7. package/lib/cjs/api/{model → app-binder}/Errors.js.map +1 -1
  8. package/lib/cjs/api/app-binder/GetAppNameCommandTypes.js +2 -0
  9. package/lib/cjs/api/app-binder/GetAppNameCommandTypes.js.map +7 -0
  10. package/lib/cjs/api/app-binder/GetSeedIdCommandTypes.js +2 -0
  11. package/lib/cjs/api/app-binder/GetSeedIdCommandTypes.js.map +7 -0
  12. package/lib/cjs/api/app-binder/GetVersionCommandTypes.js +1 -1
  13. package/lib/cjs/api/app-binder/GetVersionCommandTypes.js.map +1 -1
  14. package/lib/cjs/api/app-binder/InitCommandTypes.js +2 -0
  15. package/lib/cjs/api/app-binder/InitCommandTypes.js.map +7 -0
  16. package/lib/cjs/api/app-binder/KeypairFromBytes.js +2 -0
  17. package/lib/cjs/api/app-binder/KeypairFromBytes.js.map +7 -0
  18. package/lib/cjs/api/app-binder/LKRPTypes.js +2 -0
  19. package/lib/cjs/api/app-binder/LKRPTypes.js.map +7 -0
  20. package/lib/cjs/api/app-binder/ParseStreamBlockCommandCommandTypes.js +2 -0
  21. package/lib/cjs/api/app-binder/ParseStreamBlockCommandCommandTypes.js.map +7 -0
  22. package/lib/cjs/api/app-binder/ParseStreamBlockHeaderCommandTypes.js +2 -0
  23. package/lib/cjs/api/app-binder/ParseStreamBlockHeaderCommandTypes.js.map +7 -0
  24. package/lib/cjs/api/app-binder/ParseStreamBlockSignatureTypes.js +2 -0
  25. package/lib/cjs/api/app-binder/ParseStreamBlockSignatureTypes.js.map +7 -0
  26. package/lib/cjs/api/app-binder/SetTrustedMemberTypes.js +2 -0
  27. package/lib/cjs/api/app-binder/SetTrustedMemberTypes.js.map +7 -0
  28. package/lib/cjs/api/app-binder/SignBlockCommandTypes.js +2 -0
  29. package/lib/cjs/api/app-binder/SignBlockCommandTypes.js.map +7 -0
  30. package/lib/cjs/api/app-binder/SignBlockHeaderCommandTypes.js +2 -0
  31. package/lib/cjs/api/app-binder/SignBlockHeaderCommandTypes.js.map +7 -0
  32. package/lib/cjs/api/app-binder/SignBlockSignatureCommandTypes.js +2 -0
  33. package/lib/cjs/api/app-binder/SignBlockSignatureCommandTypes.js.map +7 -0
  34. package/lib/cjs/api/app-binder/SignBlockSingleCommandTypes.js +2 -0
  35. package/lib/cjs/api/app-binder/SignBlockSingleCommandTypes.js.map +7 -0
  36. package/lib/cjs/api/index.js +1 -1
  37. package/lib/cjs/api/index.js.map +2 -2
  38. package/lib/cjs/internal/DefaultLedgerKeyringProtocol.js +1 -1
  39. package/lib/cjs/internal/DefaultLedgerKeyringProtocol.js.map +3 -3
  40. package/lib/cjs/internal/app-binder/LedgerKeyringProtocolBinder.js +1 -1
  41. package/lib/cjs/internal/app-binder/LedgerKeyringProtocolBinder.js.map +3 -3
  42. package/lib/cjs/internal/app-binder/command/GetAppNameCommand.js +1 -1
  43. package/lib/cjs/internal/app-binder/command/GetAppNameCommand.js.map +2 -2
  44. package/lib/cjs/internal/app-binder/command/GetSeedIdCommand.js +1 -1
  45. package/lib/cjs/internal/app-binder/command/GetSeedIdCommand.js.map +3 -3
  46. package/lib/cjs/internal/app-binder/command/GetSeedIdCommand.test.js +2 -2
  47. package/lib/cjs/internal/app-binder/command/GetSeedIdCommand.test.js.map +3 -3
  48. package/lib/cjs/internal/app-binder/command/GetVersionCommand.js.map +2 -2
  49. package/lib/cjs/internal/app-binder/command/InitCommand.js +1 -1
  50. package/lib/cjs/internal/app-binder/command/InitCommand.js.map +2 -2
  51. package/lib/cjs/internal/app-binder/command/InitCommand.test.js +1 -1
  52. package/lib/cjs/internal/app-binder/command/InitCommand.test.js.map +2 -2
  53. package/lib/cjs/internal/app-binder/command/ParseBlockSignatureCommand.js +1 -1
  54. package/lib/cjs/internal/app-binder/command/ParseBlockSignatureCommand.js.map +2 -2
  55. package/lib/cjs/internal/app-binder/command/ParseBlockSignatureCommand.test.js +1 -1
  56. package/lib/cjs/internal/app-binder/command/ParseBlockSignatureCommand.test.js.map +2 -2
  57. package/lib/cjs/internal/app-binder/command/ParseStreamBlockCommand.js.map +2 -2
  58. package/lib/cjs/internal/app-binder/command/ParseStreamBlockCommand.test.js +1 -1
  59. package/lib/cjs/internal/app-binder/command/ParseStreamBlockCommand.test.js.map +2 -2
  60. package/lib/cjs/internal/app-binder/command/ParseStreamBlockHeader.js +1 -1
  61. package/lib/cjs/internal/app-binder/command/ParseStreamBlockHeader.js.map +2 -2
  62. package/lib/cjs/internal/app-binder/command/ParseStreamBlockHeader.test.js.map +2 -2
  63. package/lib/cjs/internal/app-binder/command/SetTrustedMemberCommand.js +1 -1
  64. package/lib/cjs/internal/app-binder/command/SetTrustedMemberCommand.js.map +2 -2
  65. package/lib/cjs/internal/app-binder/command/SetTrustedMemberCommand.test.js.map +2 -2
  66. package/lib/cjs/internal/app-binder/command/SignBlockHeader.js +1 -1
  67. package/lib/cjs/internal/app-binder/command/SignBlockHeader.js.map +2 -2
  68. package/lib/cjs/internal/app-binder/command/SignBlockHeader.test.js +1 -1
  69. package/lib/cjs/internal/app-binder/command/SignBlockHeader.test.js.map +2 -2
  70. package/lib/cjs/internal/app-binder/command/SignBlockSignatureCommand.js +1 -1
  71. package/lib/cjs/internal/app-binder/command/SignBlockSignatureCommand.js.map +2 -2
  72. package/lib/cjs/internal/app-binder/command/SignBlockSignatureCommand.test.js +1 -1
  73. package/lib/cjs/internal/app-binder/command/SignBlockSignatureCommand.test.js.map +2 -2
  74. package/lib/cjs/internal/app-binder/command/SignBlockSingleCommand.js +1 -1
  75. package/lib/cjs/internal/app-binder/command/SignBlockSingleCommand.js.map +2 -2
  76. package/lib/cjs/internal/app-binder/command/SignBlockSingleCommand.test.js +1 -1
  77. package/lib/cjs/internal/app-binder/command/SignBlockSingleCommand.test.js.map +2 -2
  78. package/lib/cjs/internal/app-binder/device-action/AddToTrustchainDeviceAction.js +1 -1
  79. package/lib/cjs/internal/app-binder/device-action/AddToTrustchainDeviceAction.js.map +3 -3
  80. package/lib/cjs/internal/app-binder/device-action/AuthenticateWithDeviceDeviceAction.js +1 -1
  81. package/lib/cjs/internal/app-binder/device-action/AuthenticateWithDeviceDeviceAction.js.map +2 -2
  82. package/lib/cjs/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.js +1 -1
  83. package/lib/cjs/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.js.map +2 -2
  84. package/lib/cjs/internal/app-binder/device-action/models/AuthenticateWithDeviceDeviceActionTypes.js +1 -1
  85. package/lib/cjs/internal/app-binder/device-action/models/AuthenticateWithDeviceDeviceActionTypes.js.map +1 -1
  86. package/lib/cjs/internal/app-binder/device-action/models/AuthenticateWithKeypairDeviceActionTypes.js +1 -1
  87. package/lib/cjs/internal/app-binder/device-action/models/AuthenticateWithKeypairDeviceActionTypes.js.map +1 -1
  88. package/lib/cjs/internal/app-binder/task/ExtractEncryptionKeyTask.js +1 -1
  89. package/lib/cjs/internal/app-binder/task/ExtractEncryptionKeyTask.js.map +3 -3
  90. package/lib/cjs/internal/app-binder/task/InitTask.js +1 -1
  91. package/lib/cjs/internal/app-binder/task/InitTask.js.map +3 -3
  92. package/lib/cjs/internal/app-binder/task/ParseStreamToDeviceTask.js +1 -1
  93. package/lib/cjs/internal/app-binder/task/ParseStreamToDeviceTask.js.map +3 -3
  94. package/lib/cjs/internal/app-binder/task/SignBlockTask.js +1 -1
  95. package/lib/cjs/internal/app-binder/task/SignBlockTask.js.map +3 -3
  96. package/lib/cjs/internal/app-binder/task/SignChallengeWithKeypairTask.js +1 -1
  97. package/lib/cjs/internal/app-binder/task/SignChallengeWithKeypairTask.js.map +3 -3
  98. package/lib/cjs/internal/app-binder/task/SignChallengeWithKeypairTask.test.js +1 -1
  99. package/lib/cjs/internal/app-binder/task/SignChallengeWithKeypairTask.test.js.map +3 -3
  100. package/lib/cjs/internal/app-binder/task/utils/TrustedProperties.js +1 -1
  101. package/lib/cjs/internal/app-binder/task/utils/TrustedProperties.js.map +2 -2
  102. package/lib/cjs/internal/di.js +1 -1
  103. package/lib/cjs/internal/di.js.map +3 -3
  104. package/lib/cjs/internal/externalTypes.js +1 -1
  105. package/lib/cjs/internal/externalTypes.js.map +2 -2
  106. package/lib/cjs/internal/lkrp-datasource/data/HttpLKRPDataSource.js +1 -1
  107. package/lib/cjs/internal/lkrp-datasource/data/HttpLKRPDataSource.js.map +2 -2
  108. package/lib/cjs/internal/lkrp-datasource/data/HttpLKRPDataSource.test.js +1 -1
  109. package/lib/cjs/internal/lkrp-datasource/data/HttpLKRPDataSource.test.js.map +2 -2
  110. package/lib/cjs/internal/lkrp-datasource/data/LKRPDataSource.js.map +1 -1
  111. package/lib/cjs/internal/use-cases/authentication/AuthenticateUseCase.js +1 -1
  112. package/lib/cjs/internal/use-cases/authentication/AuthenticateUseCase.js.map +2 -2
  113. package/lib/cjs/internal/use-cases/authentication/DecryptDataUseCase.js +1 -1
  114. package/lib/cjs/internal/use-cases/authentication/DecryptDataUseCase.js.map +3 -3
  115. package/lib/cjs/internal/use-cases/authentication/EncryptDataUseCase.js +1 -1
  116. package/lib/cjs/internal/use-cases/authentication/EncryptDataUseCase.js.map +3 -3
  117. package/lib/cjs/internal/utils/LKRPBlock.js +4 -4
  118. package/lib/cjs/internal/utils/LKRPBlock.js.map +3 -3
  119. package/lib/cjs/internal/utils/LKRPBlock.test.js +3 -3
  120. package/lib/cjs/internal/utils/LKRPBlock.test.js.map +3 -3
  121. package/lib/cjs/internal/utils/LKRPBlockStream.js +2 -2
  122. package/lib/cjs/internal/utils/LKRPBlockStream.js.map +3 -3
  123. package/lib/cjs/internal/utils/LKRPBlockStream.test.js +2 -2
  124. package/lib/cjs/internal/utils/LKRPBlockStream.test.js.map +3 -3
  125. package/lib/cjs/internal/utils/LKRPCommand.js +2 -2
  126. package/lib/cjs/internal/utils/LKRPCommand.js.map +3 -3
  127. package/lib/cjs/internal/utils/LKRPCommand.test.js +1 -1
  128. package/lib/cjs/internal/utils/LKRPCommand.test.js.map +2 -2
  129. package/lib/cjs/internal/utils/TLVBuilder.js +2 -0
  130. package/lib/cjs/internal/utils/TLVBuilder.js.map +7 -0
  131. package/lib/cjs/internal/utils/TLVParser.js +1 -1
  132. package/lib/cjs/internal/utils/TLVParser.js.map +3 -3
  133. package/lib/cjs/internal/utils/TLVParser.test.js +1 -1
  134. package/lib/cjs/internal/utils/TLVParser.test.js.map +2 -2
  135. package/lib/cjs/internal/utils/crypto.js +2 -0
  136. package/lib/cjs/internal/utils/crypto.js.map +7 -0
  137. package/lib/cjs/internal/utils/hex.js +2 -0
  138. package/lib/cjs/internal/utils/hex.js.map +7 -0
  139. package/lib/cjs/internal/utils/required.js +1 -1
  140. package/lib/cjs/internal/utils/required.js.map +2 -2
  141. package/lib/cjs/package.json +2 -2
  142. package/lib/esm/api/LedgerKeyringProtocolBuilder.js +1 -1
  143. package/lib/esm/api/LedgerKeyringProtocolBuilder.js.map +3 -3
  144. package/lib/esm/api/app-binder/AddToTrustchainDeviceActionTypes.js.map +2 -2
  145. package/lib/esm/api/app-binder/AuthenticateDeviceActionTypes.js.map +1 -1
  146. package/lib/esm/api/{model → app-binder}/Errors.js.map +1 -1
  147. package/lib/esm/api/app-binder/GetAppNameCommandTypes.js +1 -0
  148. package/lib/esm/api/app-binder/GetSeedIdCommandTypes.js +1 -0
  149. package/lib/esm/api/app-binder/GetSeedIdCommandTypes.js.map +7 -0
  150. package/lib/esm/api/app-binder/InitCommandTypes.js +1 -0
  151. package/lib/esm/api/app-binder/InitCommandTypes.js.map +7 -0
  152. package/lib/esm/api/app-binder/KeypairFromBytes.js +2 -0
  153. package/lib/esm/api/app-binder/KeypairFromBytes.js.map +7 -0
  154. package/lib/esm/api/app-binder/LKRPTypes.js +2 -0
  155. package/lib/esm/api/app-binder/LKRPTypes.js.map +7 -0
  156. package/lib/esm/api/app-binder/ParseStreamBlockCommandCommandTypes.js +1 -0
  157. package/lib/esm/api/app-binder/ParseStreamBlockCommandCommandTypes.js.map +7 -0
  158. package/lib/esm/api/app-binder/ParseStreamBlockHeaderCommandTypes.js +1 -0
  159. package/lib/esm/api/app-binder/ParseStreamBlockHeaderCommandTypes.js.map +7 -0
  160. package/lib/esm/api/app-binder/ParseStreamBlockSignatureTypes.js +1 -0
  161. package/lib/esm/api/app-binder/ParseStreamBlockSignatureTypes.js.map +7 -0
  162. package/lib/esm/api/app-binder/SetTrustedMemberTypes.js +1 -0
  163. package/lib/esm/api/app-binder/SetTrustedMemberTypes.js.map +7 -0
  164. package/lib/esm/api/app-binder/SignBlockCommandTypes.js +1 -0
  165. package/lib/esm/api/app-binder/SignBlockCommandTypes.js.map +7 -0
  166. package/lib/esm/api/app-binder/SignBlockHeaderCommandTypes.js +1 -0
  167. package/lib/esm/api/app-binder/SignBlockHeaderCommandTypes.js.map +7 -0
  168. package/lib/esm/api/app-binder/SignBlockSignatureCommandTypes.js +1 -0
  169. package/lib/esm/api/app-binder/SignBlockSignatureCommandTypes.js.map +7 -0
  170. package/lib/esm/api/app-binder/SignBlockSingleCommandTypes.js +1 -0
  171. package/lib/esm/api/app-binder/SignBlockSingleCommandTypes.js.map +7 -0
  172. package/lib/esm/api/index.js +1 -1
  173. package/lib/esm/api/index.js.map +2 -2
  174. package/lib/esm/internal/DefaultLedgerKeyringProtocol.js +1 -1
  175. package/lib/esm/internal/DefaultLedgerKeyringProtocol.js.map +3 -3
  176. package/lib/esm/internal/app-binder/LedgerKeyringProtocolBinder.js +1 -1
  177. package/lib/esm/internal/app-binder/LedgerKeyringProtocolBinder.js.map +3 -3
  178. package/lib/esm/internal/app-binder/command/GetAppNameCommand.js +1 -1
  179. package/lib/esm/internal/app-binder/command/GetAppNameCommand.js.map +2 -2
  180. package/lib/esm/internal/app-binder/command/GetSeedIdCommand.js +1 -1
  181. package/lib/esm/internal/app-binder/command/GetSeedIdCommand.js.map +3 -3
  182. package/lib/esm/internal/app-binder/command/GetSeedIdCommand.test.js +1 -1
  183. package/lib/esm/internal/app-binder/command/GetSeedIdCommand.test.js.map +3 -3
  184. package/lib/esm/internal/app-binder/command/GetVersionCommand.js.map +2 -2
  185. package/lib/esm/internal/app-binder/command/InitCommand.js +1 -1
  186. package/lib/esm/internal/app-binder/command/InitCommand.js.map +2 -2
  187. package/lib/esm/internal/app-binder/command/InitCommand.test.js +1 -1
  188. package/lib/esm/internal/app-binder/command/InitCommand.test.js.map +2 -2
  189. package/lib/esm/internal/app-binder/command/ParseBlockSignatureCommand.js +1 -1
  190. package/lib/esm/internal/app-binder/command/ParseBlockSignatureCommand.js.map +2 -2
  191. package/lib/esm/internal/app-binder/command/ParseBlockSignatureCommand.test.js +1 -1
  192. package/lib/esm/internal/app-binder/command/ParseBlockSignatureCommand.test.js.map +2 -2
  193. package/lib/esm/internal/app-binder/command/ParseStreamBlockCommand.js.map +2 -2
  194. package/lib/esm/internal/app-binder/command/ParseStreamBlockCommand.test.js +1 -1
  195. package/lib/esm/internal/app-binder/command/ParseStreamBlockCommand.test.js.map +2 -2
  196. package/lib/esm/internal/app-binder/command/ParseStreamBlockHeader.js +1 -1
  197. package/lib/esm/internal/app-binder/command/ParseStreamBlockHeader.js.map +2 -2
  198. package/lib/esm/internal/app-binder/command/ParseStreamBlockHeader.test.js.map +2 -2
  199. package/lib/esm/internal/app-binder/command/SetTrustedMemberCommand.js +1 -1
  200. package/lib/esm/internal/app-binder/command/SetTrustedMemberCommand.js.map +2 -2
  201. package/lib/esm/internal/app-binder/command/SetTrustedMemberCommand.test.js +1 -1
  202. package/lib/esm/internal/app-binder/command/SetTrustedMemberCommand.test.js.map +2 -2
  203. package/lib/esm/internal/app-binder/command/SignBlockHeader.js +1 -1
  204. package/lib/esm/internal/app-binder/command/SignBlockHeader.js.map +2 -2
  205. package/lib/esm/internal/app-binder/command/SignBlockHeader.test.js +1 -1
  206. package/lib/esm/internal/app-binder/command/SignBlockHeader.test.js.map +2 -2
  207. package/lib/esm/internal/app-binder/command/SignBlockSignatureCommand.js +1 -1
  208. package/lib/esm/internal/app-binder/command/SignBlockSignatureCommand.js.map +2 -2
  209. package/lib/esm/internal/app-binder/command/SignBlockSignatureCommand.test.js +1 -1
  210. package/lib/esm/internal/app-binder/command/SignBlockSignatureCommand.test.js.map +2 -2
  211. package/lib/esm/internal/app-binder/command/SignBlockSingleCommand.js +1 -1
  212. package/lib/esm/internal/app-binder/command/SignBlockSingleCommand.js.map +2 -2
  213. package/lib/esm/internal/app-binder/command/SignBlockSingleCommand.test.js +1 -1
  214. package/lib/esm/internal/app-binder/command/SignBlockSingleCommand.test.js.map +2 -2
  215. package/lib/esm/internal/app-binder/device-action/AddToTrustchainDeviceAction.js +1 -1
  216. package/lib/esm/internal/app-binder/device-action/AddToTrustchainDeviceAction.js.map +3 -3
  217. package/lib/esm/internal/app-binder/device-action/AuthenticateWithDeviceDeviceAction.js +1 -1
  218. package/lib/esm/internal/app-binder/device-action/AuthenticateWithDeviceDeviceAction.js.map +2 -2
  219. package/lib/esm/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.js +1 -1
  220. package/lib/esm/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.js.map +2 -2
  221. package/lib/esm/internal/app-binder/task/ExtractEncryptionKeyTask.js +1 -1
  222. package/lib/esm/internal/app-binder/task/ExtractEncryptionKeyTask.js.map +3 -3
  223. package/lib/esm/internal/app-binder/task/InitTask.js +1 -1
  224. package/lib/esm/internal/app-binder/task/InitTask.js.map +3 -3
  225. package/lib/esm/internal/app-binder/task/ParseStreamToDeviceTask.js +1 -1
  226. package/lib/esm/internal/app-binder/task/ParseStreamToDeviceTask.js.map +3 -3
  227. package/lib/esm/internal/app-binder/task/SignBlockTask.js +1 -1
  228. package/lib/esm/internal/app-binder/task/SignBlockTask.js.map +3 -3
  229. package/lib/esm/internal/app-binder/task/SignChallengeWithKeypairTask.js +1 -1
  230. package/lib/esm/internal/app-binder/task/SignChallengeWithKeypairTask.js.map +3 -3
  231. package/lib/esm/internal/app-binder/task/SignChallengeWithKeypairTask.test.js +1 -1
  232. package/lib/esm/internal/app-binder/task/SignChallengeWithKeypairTask.test.js.map +3 -3
  233. package/lib/esm/internal/app-binder/task/utils/TrustedProperties.js +1 -1
  234. package/lib/esm/internal/app-binder/task/utils/TrustedProperties.js.map +2 -2
  235. package/lib/esm/internal/di.js +1 -1
  236. package/lib/esm/internal/di.js.map +3 -3
  237. package/lib/esm/internal/externalTypes.js +1 -1
  238. package/lib/esm/internal/externalTypes.js.map +2 -2
  239. package/lib/esm/internal/lkrp-datasource/data/HttpLKRPDataSource.js +1 -1
  240. package/lib/esm/internal/lkrp-datasource/data/HttpLKRPDataSource.js.map +2 -2
  241. package/lib/esm/internal/lkrp-datasource/data/HttpLKRPDataSource.test.js +1 -1
  242. package/lib/esm/internal/lkrp-datasource/data/HttpLKRPDataSource.test.js.map +2 -2
  243. package/lib/esm/internal/use-cases/authentication/AuthenticateUseCase.js +1 -1
  244. package/lib/esm/internal/use-cases/authentication/AuthenticateUseCase.js.map +2 -2
  245. package/lib/esm/internal/use-cases/authentication/DecryptDataUseCase.js +1 -1
  246. package/lib/esm/internal/use-cases/authentication/DecryptDataUseCase.js.map +3 -3
  247. package/lib/esm/internal/use-cases/authentication/EncryptDataUseCase.js +1 -1
  248. package/lib/esm/internal/use-cases/authentication/EncryptDataUseCase.js.map +3 -3
  249. package/lib/esm/internal/utils/LKRPBlock.js +3 -3
  250. package/lib/esm/internal/utils/LKRPBlock.js.map +3 -3
  251. package/lib/esm/internal/utils/LKRPBlock.test.js +2 -2
  252. package/lib/esm/internal/utils/LKRPBlock.test.js.map +3 -3
  253. package/lib/esm/internal/utils/LKRPBlockStream.js +2 -2
  254. package/lib/esm/internal/utils/LKRPBlockStream.js.map +3 -3
  255. package/lib/esm/internal/utils/LKRPBlockStream.test.js +1 -1
  256. package/lib/esm/internal/utils/LKRPBlockStream.test.js.map +3 -3
  257. package/lib/esm/internal/utils/LKRPCommand.js +2 -2
  258. package/lib/esm/internal/utils/LKRPCommand.js.map +3 -3
  259. package/lib/esm/internal/utils/LKRPCommand.test.js +1 -1
  260. package/lib/esm/internal/utils/LKRPCommand.test.js.map +2 -2
  261. package/lib/esm/internal/utils/TLVBuilder.js +2 -0
  262. package/lib/esm/internal/utils/TLVBuilder.js.map +7 -0
  263. package/lib/esm/internal/utils/TLVParser.js +1 -1
  264. package/lib/esm/internal/utils/TLVParser.js.map +3 -3
  265. package/lib/esm/internal/utils/TLVParser.test.js +1 -1
  266. package/lib/esm/internal/utils/TLVParser.test.js.map +2 -2
  267. package/lib/esm/internal/utils/crypto.js +2 -0
  268. package/lib/esm/internal/utils/crypto.js.map +7 -0
  269. package/lib/esm/internal/utils/hex.js +2 -0
  270. package/lib/esm/internal/utils/hex.js.map +7 -0
  271. package/lib/esm/internal/utils/required.js +1 -1
  272. package/lib/esm/internal/utils/required.js.map +2 -2
  273. package/lib/esm/package.json +2 -2
  274. package/lib/types/api/LedgerKeyringProtocol.d.ts +2 -2
  275. package/lib/types/api/LedgerKeyringProtocol.d.ts.map +1 -1
  276. package/lib/types/api/LedgerKeyringProtocolBuilder.d.ts +1 -4
  277. package/lib/types/api/LedgerKeyringProtocolBuilder.d.ts.map +1 -1
  278. package/lib/types/api/app-binder/AddToTrustchainDeviceActionTypes.d.ts +4 -8
  279. package/lib/types/api/app-binder/AddToTrustchainDeviceActionTypes.d.ts.map +1 -1
  280. package/lib/types/api/app-binder/AuthenticateDeviceActionTypes.d.ts +2 -2
  281. package/lib/types/api/app-binder/AuthenticateDeviceActionTypes.d.ts.map +1 -1
  282. package/lib/types/api/app-binder/Errors.d.ts.map +1 -0
  283. package/lib/types/api/app-binder/GetAppNameCommandTypes.d.ts +5 -0
  284. package/lib/types/api/app-binder/GetAppNameCommandTypes.d.ts.map +1 -0
  285. package/lib/types/api/app-binder/GetSeedIdCommandTypes.d.ts +14 -0
  286. package/lib/types/api/app-binder/GetSeedIdCommandTypes.d.ts.map +1 -0
  287. package/lib/types/api/app-binder/GetVersionCommandTypes.d.ts +1 -0
  288. package/lib/types/api/app-binder/GetVersionCommandTypes.d.ts.map +1 -1
  289. package/lib/types/api/app-binder/InitCommandTypes.d.ts +5 -0
  290. package/lib/types/api/app-binder/InitCommandTypes.d.ts.map +1 -0
  291. package/lib/types/api/app-binder/KeypairFromBytes.d.ts +11 -0
  292. package/lib/types/api/app-binder/KeypairFromBytes.d.ts.map +1 -0
  293. package/lib/types/api/{model/Permissions.d.ts → app-binder/LKRPTypes.d.ts} +19 -1
  294. package/lib/types/api/app-binder/LKRPTypes.d.ts.map +1 -0
  295. package/lib/types/api/app-binder/ParseStreamBlockCommandCommandTypes.d.ts +6 -0
  296. package/lib/types/api/app-binder/ParseStreamBlockCommandCommandTypes.d.ts.map +1 -0
  297. package/lib/types/api/app-binder/ParseStreamBlockHeaderCommandTypes.d.ts +5 -0
  298. package/lib/types/api/app-binder/ParseStreamBlockHeaderCommandTypes.d.ts.map +1 -0
  299. package/lib/types/api/app-binder/ParseStreamBlockSignatureTypes.d.ts +5 -0
  300. package/lib/types/api/app-binder/ParseStreamBlockSignatureTypes.d.ts.map +1 -0
  301. package/lib/types/api/app-binder/SetTrustedMemberTypes.d.ts +6 -0
  302. package/lib/types/api/app-binder/SetTrustedMemberTypes.d.ts.map +1 -0
  303. package/lib/types/api/app-binder/SignBlockCommandTypes.d.ts +9 -0
  304. package/lib/types/api/app-binder/SignBlockCommandTypes.d.ts.map +1 -0
  305. package/lib/types/api/app-binder/SignBlockHeaderCommandTypes.d.ts +6 -0
  306. package/lib/types/api/app-binder/SignBlockHeaderCommandTypes.d.ts.map +1 -0
  307. package/lib/types/api/app-binder/SignBlockSignatureCommandTypes.d.ts +6 -0
  308. package/lib/types/api/app-binder/SignBlockSignatureCommandTypes.d.ts.map +1 -0
  309. package/lib/types/api/app-binder/SignBlockSingleCommandTypes.d.ts +5 -0
  310. package/lib/types/api/app-binder/SignBlockSingleCommandTypes.d.ts.map +1 -0
  311. package/lib/types/api/index.d.ts +2 -10
  312. package/lib/types/api/index.d.ts.map +1 -1
  313. package/lib/types/internal/DefaultLedgerKeyringProtocol.d.ts +4 -6
  314. package/lib/types/internal/DefaultLedgerKeyringProtocol.d.ts.map +1 -1
  315. package/lib/types/internal/app-binder/LedgerKeyringProtocolBinder.d.ts +4 -7
  316. package/lib/types/internal/app-binder/LedgerKeyringProtocolBinder.d.ts.map +1 -1
  317. package/lib/types/internal/app-binder/command/GetAppNameCommand.d.ts +1 -4
  318. package/lib/types/internal/app-binder/command/GetAppNameCommand.d.ts.map +1 -1
  319. package/lib/types/internal/app-binder/command/GetSeedIdCommand.d.ts +1 -13
  320. package/lib/types/internal/app-binder/command/GetSeedIdCommand.d.ts.map +1 -1
  321. package/lib/types/internal/app-binder/command/GetVersionCommand.d.ts +1 -2
  322. package/lib/types/internal/app-binder/command/GetVersionCommand.d.ts.map +1 -1
  323. package/lib/types/internal/app-binder/command/InitCommand.d.ts +1 -4
  324. package/lib/types/internal/app-binder/command/InitCommand.d.ts.map +1 -1
  325. package/lib/types/internal/app-binder/command/ParseBlockSignatureCommand.d.ts +1 -4
  326. package/lib/types/internal/app-binder/command/ParseBlockSignatureCommand.d.ts.map +1 -1
  327. package/lib/types/internal/app-binder/command/ParseStreamBlockCommand.d.ts +1 -5
  328. package/lib/types/internal/app-binder/command/ParseStreamBlockCommand.d.ts.map +1 -1
  329. package/lib/types/internal/app-binder/command/ParseStreamBlockHeader.d.ts +1 -4
  330. package/lib/types/internal/app-binder/command/ParseStreamBlockHeader.d.ts.map +1 -1
  331. package/lib/types/internal/app-binder/command/SetTrustedMemberCommand.d.ts +1 -5
  332. package/lib/types/internal/app-binder/command/SetTrustedMemberCommand.d.ts.map +1 -1
  333. package/lib/types/internal/app-binder/command/SignBlockHeader.d.ts +1 -5
  334. package/lib/types/internal/app-binder/command/SignBlockHeader.d.ts.map +1 -1
  335. package/lib/types/internal/app-binder/command/SignBlockSignatureCommand.d.ts +1 -5
  336. package/lib/types/internal/app-binder/command/SignBlockSignatureCommand.d.ts.map +1 -1
  337. package/lib/types/internal/app-binder/command/SignBlockSingleCommand.d.ts +1 -4
  338. package/lib/types/internal/app-binder/command/SignBlockSingleCommand.d.ts.map +1 -1
  339. package/lib/types/internal/app-binder/device-action/AddToTrustchainDeviceAction.d.ts +4 -8
  340. package/lib/types/internal/app-binder/device-action/AddToTrustchainDeviceAction.d.ts.map +1 -1
  341. package/lib/types/internal/app-binder/device-action/AuthenticateWithDeviceDeviceAction.d.ts +2 -5
  342. package/lib/types/internal/app-binder/device-action/AuthenticateWithDeviceDeviceAction.d.ts.map +1 -1
  343. package/lib/types/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.d.ts +2 -5
  344. package/lib/types/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.d.ts.map +1 -1
  345. package/lib/types/internal/app-binder/device-action/models/AuthenticateWithDeviceDeviceActionTypes.d.ts +2 -5
  346. package/lib/types/internal/app-binder/device-action/models/AuthenticateWithDeviceDeviceActionTypes.d.ts.map +1 -1
  347. package/lib/types/internal/app-binder/device-action/models/AuthenticateWithKeypairDeviceActionTypes.d.ts +2 -5
  348. package/lib/types/internal/app-binder/device-action/models/AuthenticateWithKeypairDeviceActionTypes.d.ts.map +1 -1
  349. package/lib/types/internal/app-binder/task/ExtractEncryptionKeyTask.d.ts +7 -4
  350. package/lib/types/internal/app-binder/task/ExtractEncryptionKeyTask.d.ts.map +1 -1
  351. package/lib/types/internal/app-binder/task/InitTask.d.ts +3 -5
  352. package/lib/types/internal/app-binder/task/InitTask.d.ts.map +1 -1
  353. package/lib/types/internal/app-binder/task/ParseStreamToDeviceTask.d.ts +1 -1
  354. package/lib/types/internal/app-binder/task/ParseStreamToDeviceTask.d.ts.map +1 -1
  355. package/lib/types/internal/app-binder/task/SignBlockTask.d.ts +8 -11
  356. package/lib/types/internal/app-binder/task/SignBlockTask.d.ts.map +1 -1
  357. package/lib/types/internal/app-binder/task/SignChallengeWithKeypairTask.d.ts +3 -5
  358. package/lib/types/internal/app-binder/task/SignChallengeWithKeypairTask.d.ts.map +1 -1
  359. package/lib/types/internal/app-binder/task/utils/TrustedProperties.d.ts +1 -1
  360. package/lib/types/internal/app-binder/task/utils/TrustedProperties.d.ts.map +1 -1
  361. package/lib/types/internal/di.d.ts +1 -3
  362. package/lib/types/internal/di.d.ts.map +1 -1
  363. package/lib/types/internal/externalTypes.d.ts +0 -1
  364. package/lib/types/internal/externalTypes.d.ts.map +1 -1
  365. package/lib/types/internal/lkrp-datasource/data/HttpLKRPDataSource.d.ts +2 -2
  366. package/lib/types/internal/lkrp-datasource/data/HttpLKRPDataSource.d.ts.map +1 -1
  367. package/lib/types/internal/lkrp-datasource/data/LKRPDataSource.d.ts +2 -2
  368. package/lib/types/internal/lkrp-datasource/data/LKRPDataSource.d.ts.map +1 -1
  369. package/lib/types/internal/use-cases/authentication/AuthenticateUseCase.d.ts +2 -3
  370. package/lib/types/internal/use-cases/authentication/AuthenticateUseCase.d.ts.map +1 -1
  371. package/lib/types/internal/use-cases/authentication/DecryptDataUseCase.d.ts +1 -4
  372. package/lib/types/internal/use-cases/authentication/DecryptDataUseCase.d.ts.map +1 -1
  373. package/lib/types/internal/use-cases/authentication/EncryptDataUseCase.d.ts +1 -4
  374. package/lib/types/internal/use-cases/authentication/EncryptDataUseCase.d.ts.map +1 -1
  375. package/lib/types/internal/utils/LKRPBlock.d.ts +1 -1
  376. package/lib/types/internal/utils/LKRPBlock.d.ts.map +1 -1
  377. package/lib/types/internal/utils/LKRPBlockStream.d.ts +3 -4
  378. package/lib/types/internal/utils/LKRPBlockStream.d.ts.map +1 -1
  379. package/lib/types/internal/utils/LKRPCommand.d.ts +1 -1
  380. package/lib/types/internal/utils/LKRPCommand.d.ts.map +1 -1
  381. package/lib/types/internal/utils/TLVBuilder.d.ts +15 -0
  382. package/lib/types/internal/utils/TLVBuilder.d.ts.map +1 -0
  383. package/lib/types/internal/utils/TLVParser.d.ts +1 -1
  384. package/lib/types/internal/utils/TLVParser.d.ts.map +1 -1
  385. package/lib/types/internal/utils/crypto.d.ts +19 -0
  386. package/lib/types/internal/utils/crypto.d.ts.map +1 -0
  387. package/lib/types/internal/utils/hex.d.ts +3 -0
  388. package/lib/types/internal/utils/hex.d.ts.map +1 -0
  389. package/lib/types/internal/utils/required.d.ts +1 -1
  390. package/lib/types/internal/utils/required.d.ts.map +1 -1
  391. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  392. package/package.json +5 -5
  393. package/lib/cjs/api/crypto/CryptoService.js +0 -2
  394. package/lib/cjs/api/crypto/CryptoService.js.map +0 -7
  395. package/lib/cjs/api/crypto/Key.js +0 -2
  396. package/lib/cjs/api/crypto/Key.js.map +0 -7
  397. package/lib/cjs/api/crypto/KeyPair.js +0 -2
  398. package/lib/cjs/api/crypto/KeyPair.js.map +0 -7
  399. package/lib/cjs/api/crypto/noble/NobleCryptoService.js +0 -2
  400. package/lib/cjs/api/crypto/noble/NobleCryptoService.js.map +0 -7
  401. package/lib/cjs/api/crypto/noble/NobleCryptoService.test.js +0 -2
  402. package/lib/cjs/api/crypto/noble/NobleCryptoService.test.js.map +0 -7
  403. package/lib/cjs/api/crypto/noble/NobleKey.js +0 -2
  404. package/lib/cjs/api/crypto/noble/NobleKey.js.map +0 -7
  405. package/lib/cjs/api/crypto/noble/NobleKey.test.js +0 -2
  406. package/lib/cjs/api/crypto/noble/NobleKey.test.js.map +0 -7
  407. package/lib/cjs/api/crypto/noble/NobleKeyPair.js +0 -2
  408. package/lib/cjs/api/crypto/noble/NobleKeyPair.js.map +0 -7
  409. package/lib/cjs/api/crypto/noble/NobleKeyPair.test.js +0 -2
  410. package/lib/cjs/api/crypto/noble/NobleKeyPair.test.js.map +0 -7
  411. package/lib/cjs/api/model/Env.js +0 -2
  412. package/lib/cjs/api/model/Env.js.map +0 -7
  413. package/lib/cjs/api/model/JWT.js +0 -2
  414. package/lib/cjs/api/model/JWT.js.map +0 -7
  415. package/lib/cjs/api/model/Permissions.js +0 -2
  416. package/lib/cjs/api/model/Permissions.js.map +0 -7
  417. package/lib/esm/api/crypto/CryptoService.js +0 -2
  418. package/lib/esm/api/crypto/CryptoService.js.map +0 -7
  419. package/lib/esm/api/crypto/Key.js +0 -2
  420. package/lib/esm/api/crypto/Key.js.map +0 -7
  421. package/lib/esm/api/crypto/KeyPair.js +0 -2
  422. package/lib/esm/api/crypto/KeyPair.js.map +0 -7
  423. package/lib/esm/api/crypto/noble/NobleCryptoService.js +0 -2
  424. package/lib/esm/api/crypto/noble/NobleCryptoService.js.map +0 -7
  425. package/lib/esm/api/crypto/noble/NobleCryptoService.test.js +0 -2
  426. package/lib/esm/api/crypto/noble/NobleCryptoService.test.js.map +0 -7
  427. package/lib/esm/api/crypto/noble/NobleKey.js +0 -2
  428. package/lib/esm/api/crypto/noble/NobleKey.js.map +0 -7
  429. package/lib/esm/api/crypto/noble/NobleKey.test.js +0 -2
  430. package/lib/esm/api/crypto/noble/NobleKey.test.js.map +0 -7
  431. package/lib/esm/api/crypto/noble/NobleKeyPair.js +0 -2
  432. package/lib/esm/api/crypto/noble/NobleKeyPair.js.map +0 -7
  433. package/lib/esm/api/crypto/noble/NobleKeyPair.test.js +0 -2
  434. package/lib/esm/api/crypto/noble/NobleKeyPair.test.js.map +0 -7
  435. package/lib/esm/api/model/Env.js +0 -2
  436. package/lib/esm/api/model/Env.js.map +0 -7
  437. package/lib/esm/api/model/JWT.js +0 -1
  438. package/lib/esm/api/model/Permissions.js +0 -2
  439. package/lib/esm/api/model/Permissions.js.map +0 -7
  440. package/lib/types/api/crypto/CryptoService.d.ts +0 -22
  441. package/lib/types/api/crypto/CryptoService.d.ts.map +0 -1
  442. package/lib/types/api/crypto/Key.d.ts +0 -7
  443. package/lib/types/api/crypto/Key.d.ts.map +0 -1
  444. package/lib/types/api/crypto/KeyPair.d.ts +0 -12
  445. package/lib/types/api/crypto/KeyPair.d.ts.map +0 -1
  446. package/lib/types/api/crypto/noble/NobleCryptoService.d.ts +0 -13
  447. package/lib/types/api/crypto/noble/NobleCryptoService.d.ts.map +0 -1
  448. package/lib/types/api/crypto/noble/NobleCryptoService.test.d.ts +0 -2
  449. package/lib/types/api/crypto/noble/NobleCryptoService.test.d.ts.map +0 -1
  450. package/lib/types/api/crypto/noble/NobleKey.d.ts +0 -11
  451. package/lib/types/api/crypto/noble/NobleKey.d.ts.map +0 -1
  452. package/lib/types/api/crypto/noble/NobleKey.test.d.ts +0 -2
  453. package/lib/types/api/crypto/noble/NobleKey.test.d.ts.map +0 -1
  454. package/lib/types/api/crypto/noble/NobleKeyPair.d.ts +0 -17
  455. package/lib/types/api/crypto/noble/NobleKeyPair.d.ts.map +0 -1
  456. package/lib/types/api/crypto/noble/NobleKeyPair.test.d.ts +0 -2
  457. package/lib/types/api/crypto/noble/NobleKeyPair.test.d.ts.map +0 -1
  458. package/lib/types/api/model/Env.d.ts +0 -5
  459. package/lib/types/api/model/Env.d.ts.map +0 -1
  460. package/lib/types/api/model/Errors.d.ts.map +0 -1
  461. package/lib/types/api/model/JWT.d.ts +0 -9
  462. package/lib/types/api/model/JWT.d.ts.map +0 -1
  463. package/lib/types/api/model/Permissions.d.ts.map +0 -1
  464. /package/lib/cjs/api/{model → app-binder}/Errors.js +0 -0
  465. /package/lib/esm/api/{model → app-binder}/Errors.js +0 -0
  466. /package/lib/esm/api/{model/JWT.js.map → app-binder/GetAppNameCommandTypes.js.map} +0 -0
  467. /package/lib/types/api/{model → app-binder}/Errors.d.ts +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/GetSeedIdCommand.test.ts"],
4
- "sourcesContent": ["import {\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { hexaStringToBuffer } from \"@ledgerhq/device-management-kit\";\n\nimport { GetSeedIdCommand } from \"./GetSeedIdCommand\";\n\ndescribe(\"GetSeedIdCommand\", () => {\n const mockedChallenge = \"01020304\";\n\n it(\"should build the correct APDU\", () => {\n // GIVEN\n const command = new GetSeedIdCommand({\n challengeTLV: mockedChallenge,\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n const challengeBytes = hexaStringToBuffer(mockedChallenge)!;\n expect(apdu.getRawApdu()).toEqual(\n Uint8Array.from([\n 0xe0, // CLA\n 0x05, // INS\n 0x00, // P1\n 0x00, // P2\n challengeBytes.length, // Lc\n ...challengeBytes, // CData\n ]),\n );\n });\n\n it(\"should parse the response correctly\", () => {\n // GIVEN\n const command = new GetSeedIdCommand({\n challengeTLV: mockedChallenge,\n });\n const mockedResponse = hexaStringToBuffer(\n `\n 01 02 03\n 06\n 05 06 07 08 09 0a\n 05\n 16 17 18 19 1a\n 1b\n 01 02 03\n 07\n 20 21 22 23 24 25 26\n 05\n 2e 2f 30 31 32\n 12 13 14\n `.replace(/\\s+/g, \"\"), // (the last three bytes should be ignored)\n )!;\n\n // WHEN\n const result = command.parseResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: mockedResponse,\n });\n\n // THEN\n expect(result).toStrictEqual(\n CommandResultFactory({\n data: {\n credential: {\n version: 1,\n curveId: 2,\n signAlgorithm: 3,\n publicKey: \"05060708090a\",\n },\n signature: \"161718191a\",\n attestation: \"1b0102030720212223242526052e2f303132\",\n },\n }),\n );\n });\n\n it(\"should parsing error response\", () => {\n // GIVEN\n const command = new GetSeedIdCommand({\n challengeTLV: mockedChallenge,\n });\n const mockedResponse = hexaStringToBuffer(\n `\n 01 02 03\n 06\n 05\n 05\n 16 17 18 19 1a\n 1b\n 01 02 03\n 07\n 20 21 22 23 24 25 26\n 05\n 2e 2f 30 31 32\n `.replace(/\\s+/g, \"\"),\n )!;\n\n // WHEN\n const result = command.parseResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: mockedResponse,\n });\n\n // THEN\n expect(result).toStrictEqual(\n CommandResultFactory({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n error: expect.any(InvalidStatusWordError), // (That's not an assignment to `any` maybe an eslint bug)\n }),\n );\n });\n});\n"],
5
- "mappings": "aAAA,IAAAA,EAGO,2CACPA,EAAmC,2CAEnCC,EAAiC,8BAEjC,SAAS,mBAAoB,IAAM,CACjC,MAAMC,EAAkB,WAExB,GAAG,gCAAiC,IAAM,CAOxC,MAAMC,EALU,IAAI,mBAAiB,CACnC,aAAcD,CAChB,CAAC,EAGoB,QAAQ,EAGvBE,KAAiB,sBAAmBF,CAAe,EACzD,OAAOC,EAAK,WAAW,CAAC,EAAE,QACxB,WAAW,KAAK,CACd,IACA,EACA,EACA,EACAC,EAAe,OACf,GAAGA,CACL,CAAC,CACH,CACF,CAAC,EAED,GAAG,sCAAuC,IAAM,CAE9C,MAAMC,EAAU,IAAI,mBAAiB,CACnC,aAAcH,CAChB,CAAC,EACKI,KAAiB,sBACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAaE,QAAQ,OAAQ,EAAE,CACtB,EAGMC,EAASF,EAAQ,cAAc,CACnC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAMC,CACR,CAAC,EAGD,OAAOC,CAAM,EAAE,iBACb,wBAAqB,CACnB,KAAM,CACJ,WAAY,CACV,QAAS,EACT,QAAS,EACT,cAAe,EACf,UAAW,cACb,EACA,UAAW,aACX,YAAa,sCACf,CACF,CAAC,CACH,CACF,CAAC,EAED,GAAG,gCAAiC,IAAM,CAExC,MAAMF,EAAU,IAAI,mBAAiB,CACnC,aAAcH,CAChB,CAAC,EACKI,KAAiB,sBACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAYE,QAAQ,OAAQ,EAAE,CACtB,EAGMC,EAASF,EAAQ,cAAc,CACnC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAMC,CACR,CAAC,EAGD,OAAOC,CAAM,EAAE,iBACb,wBAAqB,CAEnB,MAAO,OAAO,IAAI,wBAAsB,CAC1C,CAAC,CACH,CACF,CAAC,CACH,CAAC",
6
- "names": ["import_device_management_kit", "import_GetSeedIdCommand", "mockedChallenge", "apdu", "challengeBytes", "command", "mockedResponse", "result"]
4
+ "sourcesContent": ["import {\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { hexToBytes } from \"@internal/utils/hex\";\n\nimport { GetSeedIdCommand } from \"./GetSeedIdCommand\";\n\ndescribe(\"GetSeedIdCommand\", () => {\n const mockedChallenge = \"01020304\";\n\n it(\"should build the correct APDU\", () => {\n // GIVEN\n const command = new GetSeedIdCommand({\n challengeTLV: mockedChallenge,\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n const challengeBytes = hexToBytes(mockedChallenge);\n expect(apdu.getRawApdu()).toEqual(\n Uint8Array.from([\n 0xe0, // CLA\n 0x05, // INS\n 0x00, // P1\n 0x00, // P2\n challengeBytes.length, // Lc\n ...challengeBytes, // CData\n ]),\n );\n });\n\n it(\"should parse the response correctly\", () => {\n // GIVEN\n const command = new GetSeedIdCommand({\n challengeTLV: mockedChallenge,\n });\n const mockedResponse = hexToBytes(\n `\n 01 02 03\n 06\n 05 06 07 08 09 0a\n 05\n 16 17 18 19 1a\n 1b\n 01 02 03\n 07\n 20 21 22 23 24 25 26\n 05\n 2e 2f 30 31 32\n 12 13 14\n `.replace(/\\s+/g, \"\"), // (the last three bytes should be ignored)\n );\n\n // WHEN\n const result = command.parseResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: mockedResponse,\n });\n\n // THEN\n expect(result).toStrictEqual(\n CommandResultFactory({\n data: {\n credential: {\n version: 1,\n curveId: 2,\n signAlgorithm: 3,\n publicKey: \"05060708090a\",\n },\n signature: \"161718191a\",\n attestation: \"1b0102030720212223242526052e2f303132\",\n },\n }),\n );\n });\n\n it(\"should parsing error response\", () => {\n // GIVEN\n const command = new GetSeedIdCommand({\n challengeTLV: mockedChallenge,\n });\n const mockedResponse = hexToBytes(\n `\n 01 02 03\n 06\n 05\n 05\n 16 17 18 19 1a\n 1b\n 01 02 03\n 07\n 20 21 22 23 24 25 26\n 05\n 2e 2f 30 31 32\n `.replace(/\\s+/g, \"\"),\n );\n\n // WHEN\n const result = command.parseResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: mockedResponse,\n });\n\n // THEN\n expect(result).toStrictEqual(\n CommandResultFactory({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n error: expect.any(InvalidStatusWordError), // (That's not an assignment to `any` maybe an eslint bug)\n }),\n );\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAGO,2CAEPC,EAA2B,+BAE3BC,EAAiC,8BAEjC,SAAS,mBAAoB,IAAM,CACjC,MAAMC,EAAkB,WAExB,GAAG,gCAAiC,IAAM,CAOxC,MAAMC,EALU,IAAI,mBAAiB,CACnC,aAAcD,CAChB,CAAC,EAGoB,QAAQ,EAGvBE,KAAiB,cAAWF,CAAe,EACjD,OAAOC,EAAK,WAAW,CAAC,EAAE,QACxB,WAAW,KAAK,CACd,IACA,EACA,EACA,EACAC,EAAe,OACf,GAAGA,CACL,CAAC,CACH,CACF,CAAC,EAED,GAAG,sCAAuC,IAAM,CAE9C,MAAMC,EAAU,IAAI,mBAAiB,CACnC,aAAcH,CAChB,CAAC,EACKI,KAAiB,cACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAaE,QAAQ,OAAQ,EAAE,CACtB,EAGMC,EAASF,EAAQ,cAAc,CACnC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAMC,CACR,CAAC,EAGD,OAAOC,CAAM,EAAE,iBACb,wBAAqB,CACnB,KAAM,CACJ,WAAY,CACV,QAAS,EACT,QAAS,EACT,cAAe,EACf,UAAW,cACb,EACA,UAAW,aACX,YAAa,sCACf,CACF,CAAC,CACH,CACF,CAAC,EAED,GAAG,gCAAiC,IAAM,CAExC,MAAMF,EAAU,IAAI,mBAAiB,CACnC,aAAcH,CAChB,CAAC,EACKI,KAAiB,cACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAYE,QAAQ,OAAQ,EAAE,CACtB,EAGMC,EAASF,EAAQ,cAAc,CACnC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAMC,CACR,CAAC,EAGD,OAAOC,CAAM,EAAE,iBACb,wBAAqB,CAEnB,MAAO,OAAO,IAAI,wBAAsB,CAC1C,CAAC,CACH,CACF,CAAC,CACH,CAAC",
6
+ "names": ["import_device_management_kit", "import_hex", "import_GetSeedIdCommand", "mockedChallenge", "apdu", "challengeBytes", "command", "mockedResponse", "result"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/GetVersionCommand.ts"],
4
- "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport { type GetVersionCommandResponse } from \"@api/app-binder/GetVersionCommandTypes\";\n\nimport {\n LEDGER_SYNC_ERRORS,\n type LedgerKeyringProtocolErrorCodes,\n LedgerKeyringProtocolErrorFactory,\n} from \"./utils/ledgerKeyringProtocolErrors\";\n\nexport type GetVersionCommandArgs = undefined;\n\nexport class GetVersionCommand\n implements\n Command<\n GetVersionCommandResponse,\n GetVersionCommandArgs,\n LedgerKeyringProtocolErrorCodes\n >\n{\n private readonly errorHelper = new CommandErrorHelper<\n GetVersionCommandResponse,\n LedgerKeyringProtocolErrorCodes\n >(LEDGER_SYNC_ERRORS, LedgerKeyringProtocolErrorFactory);\n\n getApdu(): Apdu {\n const getVersionArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x03,\n p1: 0x00,\n p2: 0x00,\n };\n\n const builder = new ApduBuilder(getVersionArgs);\n return builder.build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<GetVersionCommandResponse, LedgerKeyringProtocolErrorCodes> {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n\n const version = parser.encodeToString(apduResponse.data);\n\n if (!version) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(`Version is missing`),\n });\n }\n\n return CommandResultFactory({\n data: { version },\n });\n });\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAUO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAItBC,EAIO,+CAIA,MAAML,CAOb,CACmB,YAAc,IAAI,qBAGjC,qBAAoB,mCAAiC,EAEvD,SAAgB,CACd,MAAMM,EAAkC,CACtC,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,EAGA,OADgB,IAAI,cAAYA,CAAc,EAC/B,MAAM,CACvB,CAEA,cACEC,EAC2E,CAC3E,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IAAM,CAGpB,MAAMC,EAFS,IAAI,aAAWD,CAAY,EAEnB,eAAeA,EAAa,IAAI,EAEvD,OAAKC,KAME,wBAAqB,CAC1B,KAAM,CAAE,QAAAA,CAAQ,CAClB,CAAC,KAPQ,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,oBAAoB,CACxD,CAAC,CAML,CAAC,CACH,CACF",
4
+ "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n type GetVersionCommandArgs,\n type GetVersionCommandResponse,\n} from \"@api/app-binder/GetVersionCommandTypes\";\n\nimport {\n LEDGER_SYNC_ERRORS,\n type LedgerKeyringProtocolErrorCodes,\n LedgerKeyringProtocolErrorFactory,\n} from \"./utils/ledgerKeyringProtocolErrors\";\n\nexport class GetVersionCommand\n implements\n Command<\n GetVersionCommandResponse,\n GetVersionCommandArgs,\n LedgerKeyringProtocolErrorCodes\n >\n{\n private readonly errorHelper = new CommandErrorHelper<\n GetVersionCommandResponse,\n LedgerKeyringProtocolErrorCodes\n >(LEDGER_SYNC_ERRORS, LedgerKeyringProtocolErrorFactory);\n\n getApdu(): Apdu {\n const getVersionArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x03,\n p1: 0x00,\n p2: 0x00,\n };\n\n const builder = new ApduBuilder(getVersionArgs);\n return builder.build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<GetVersionCommandResponse, LedgerKeyringProtocolErrorCodes> {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n\n const version = parser.encodeToString(apduResponse.data);\n\n if (!version) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(`Version is missing`),\n });\n }\n\n return CommandResultFactory({\n data: { version },\n });\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAUO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAOtBC,EAIO,+CAEA,MAAML,CAOb,CACmB,YAAc,IAAI,qBAGjC,qBAAoB,mCAAiC,EAEvD,SAAgB,CACd,MAAMM,EAAkC,CACtC,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,EAGA,OADgB,IAAI,cAAYA,CAAc,EAC/B,MAAM,CACvB,CAEA,cACEC,EAC2E,CAC3E,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IAAM,CAGpB,MAAMC,EAFS,IAAI,aAAWD,CAAY,EAEnB,eAAeA,EAAa,IAAI,EAEvD,OAAKC,KAME,wBAAqB,CAC1B,KAAM,CAAE,QAAAA,CAAQ,CAClB,CAAC,KAPQ,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,oBAAoB,CACxD,CAAC,CAML,CAAC,CACH,CACF",
6
6
  "names": ["GetVersionCommand_exports", "__export", "GetVersionCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_ledgerKeyringProtocolErrors", "getVersionArgs", "apduResponse", "version"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var a=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var y=(o,r)=>{for(var t in r)a(o,t,{get:r[t],enumerable:!0})},g=(o,r,t,m)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of l(r))!u.call(o,n)&&n!==t&&a(o,n,{get:()=>r[n],enumerable:!(m=i(r,n))||m.enumerable});return o};var C=o=>g(a({},"__esModule",{value:!0}),o);var R={};y(R,{InitCommand:()=>c});module.exports=C(R);var e=require("@ledgerhq/device-management-kit"),p=require("@ledgerhq/signer-utils"),s=require("purify-ts"),d=require("./utils/ledgerKeyringProtocolErrors");class c{constructor(r){this.args=r}errorHelper=new p.CommandErrorHelper(d.LEDGER_SYNC_ERRORS,d.LedgerKeyringProtocolErrorFactory);getApdu(){const{publicKey:r}=this.args;return new e.ApduBuilder({cla:224,ins:6,p1:0,p2:0}).addBufferToData(r).build()}parseResponse(r){return s.Maybe.fromNullable(this.errorHelper.getError(r)).orDefaultLazy(()=>new e.ApduParser(r).getUnparsedRemainingLength()!==0?(0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Unexpected response data for SetTrustedMemberCommand")}):(0,e.CommandResultFactory)({data:void 0}))}}0&&(module.exports={InitCommand});
1
+ "use strict";var m=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var g=(o,r)=>{for(var t in r)m(o,t,{get:r[t],enumerable:!0})},y=(o,r,t,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of l(r))!u.call(o,n)&&n!==t&&m(o,n,{get:()=>r[n],enumerable:!(a=i(r,n))||a.enumerable});return o};var C=o=>y(m({},"__esModule",{value:!0}),o);var R={};g(R,{InitCommand:()=>c});module.exports=C(R);var e=require("@ledgerhq/device-management-kit"),s=require("@ledgerhq/signer-utils"),p=require("purify-ts"),d=require("./utils/ledgerKeyringProtocolErrors");class c{constructor(r){this.args=r}errorHelper=new s.CommandErrorHelper(d.LEDGER_SYNC_ERRORS,d.LedgerKeyringProtocolErrorFactory);getApdu(){const{publicKey:r}=this.args;return new e.ApduBuilder({cla:224,ins:6,p1:0,p2:0}).addBufferToData(r).build()}parseResponse(r){return p.Maybe.fromNullable(this.errorHelper.getError(r)).orDefaultLazy(()=>new e.ApduParser(r).getUnparsedRemainingLength()!==0?(0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Unexpected response data for SetTrustedMemberCommand")}):(0,e.CommandResultFactory)({data:void 0}))}}0&&(module.exports={InitCommand});
2
2
  //# sourceMappingURL=InitCommand.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/InitCommand.ts"],
4
- "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n LEDGER_SYNC_ERRORS,\n type LedgerKeyringProtocolErrorCodes,\n LedgerKeyringProtocolErrorFactory,\n} from \"./utils/ledgerKeyringProtocolErrors\";\n\nexport type InitCommandResponse = void;\n\nexport type InitCommandArgs = {\n publicKey: Uint8Array;\n};\n\nexport class InitCommand\n implements\n Command<\n InitCommandResponse,\n InitCommandArgs,\n LedgerKeyringProtocolErrorCodes\n >\n{\n constructor(private readonly args: InitCommandArgs) {}\n\n private readonly errorHelper = new CommandErrorHelper<\n void,\n LedgerKeyringProtocolErrorCodes\n >(LEDGER_SYNC_ERRORS, LedgerKeyringProtocolErrorFactory);\n\n getApdu(): Apdu {\n const { publicKey } = this.args;\n\n return new ApduBuilder({ cla: 0xe0, ins: 0x06, p1: 0x00, p2: 0x00 })\n .addBufferToData(publicKey)\n .build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<InitCommandResponse, LedgerKeyringProtocolErrorCodes> {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n if (parser.getUnparsedRemainingLength() !== 0) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"Unexpected response data for SetTrustedMemberCommand\",\n ),\n });\n }\n return CommandResultFactory({ data: undefined });\n });\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAEtBC,EAIO,+CAQA,MAAML,CAOb,CACE,YAA6BM,EAAuB,CAAvB,UAAAA,CAAwB,CAEpC,YAAc,IAAI,qBAGjC,qBAAoB,mCAAiC,EAEvD,SAAgB,CACd,KAAM,CAAE,UAAAC,CAAU,EAAI,KAAK,KAE3B,OAAO,IAAI,cAAY,CAAE,IAAK,IAAM,IAAK,EAAM,GAAI,EAAM,GAAI,CAAK,CAAC,EAChE,gBAAgBA,CAAS,EACzB,MAAM,CACX,CAEA,cACEC,EACqE,CACrE,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IACC,IAAI,aAAWA,CAAY,EAC/B,2BAA2B,IAAM,KACnC,wBAAqB,CAC1B,MAAO,IAAI,yBACT,sDACF,CACF,CAAC,KAEI,wBAAqB,CAAE,KAAM,MAAU,CAAC,CAChD,CACH,CACF",
4
+ "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n type InitCommandArgs,\n type InitCommandResponse,\n} from \"@api/app-binder/InitCommandTypes\";\n\nimport {\n LEDGER_SYNC_ERRORS,\n type LedgerKeyringProtocolErrorCodes,\n LedgerKeyringProtocolErrorFactory,\n} from \"./utils/ledgerKeyringProtocolErrors\";\n\nexport class InitCommand\n implements\n Command<\n InitCommandResponse,\n InitCommandArgs,\n LedgerKeyringProtocolErrorCodes\n >\n{\n constructor(private readonly args: InitCommandArgs) {}\n\n private readonly errorHelper = new CommandErrorHelper<\n void,\n LedgerKeyringProtocolErrorCodes\n >(LEDGER_SYNC_ERRORS, LedgerKeyringProtocolErrorFactory);\n\n getApdu(): Apdu {\n const { publicKey } = this.args;\n\n return new ApduBuilder({ cla: 0xe0, ins: 0x06, p1: 0x00, p2: 0x00 })\n .addBufferToData(publicKey)\n .build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<InitCommandResponse, LedgerKeyringProtocolErrorCodes> {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n if (parser.getUnparsedRemainingLength() !== 0) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"Unexpected response data for SetTrustedMemberCommand\",\n ),\n });\n }\n return CommandResultFactory({ data: undefined });\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAOtBC,EAIO,+CAEA,MAAML,CAOb,CACE,YAA6BM,EAAuB,CAAvB,UAAAA,CAAwB,CAEpC,YAAc,IAAI,qBAGjC,qBAAoB,mCAAiC,EAEvD,SAAgB,CACd,KAAM,CAAE,UAAAC,CAAU,EAAI,KAAK,KAE3B,OAAO,IAAI,cAAY,CAAE,IAAK,IAAM,IAAK,EAAM,GAAI,EAAM,GAAI,CAAK,CAAC,EAChE,gBAAgBA,CAAS,EACzB,MAAM,CACX,CAEA,cACEC,EACqE,CACrE,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IACC,IAAI,aAAWA,CAAY,EAC/B,2BAA2B,IAAM,KACnC,wBAAqB,CAC1B,MAAO,IAAI,yBACT,sDACF,CACF,CAAC,KAEI,wBAAqB,CAAE,KAAM,MAAU,CAAC,CAChD,CACH,CACF",
6
6
  "names": ["InitCommand_exports", "__export", "InitCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_ledgerKeyringProtocolErrors", "args", "publicKey", "apduResponse"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var o=require("@ledgerhq/device-management-kit"),r=require("vitest"),n=require("./InitCommand");const d=Uint8Array.from([2,...Array(32).fill(0)]),c=Uint8Array.from([240,202,204,26]),a=()=>({publicKey:d});(0,r.describe)("InitCommand",()=>{(0,r.describe)("getApdu()",()=>{(0,r.it)("builds correct APDU",()=>{const t=new n.InitCommand(a()).getApdu(),e=Uint8Array.from([224,6,0,0,33,2,...new Array(32).fill(0)]);(0,r.expect)(t.getRawApdu()).toEqual(e)})}),(0,r.describe)("parseResponse()",()=>{(0,r.it)("returns success when no data and SW=0x9000",()=>{const s=new n.InitCommand(a()),t=new o.ApduResponse({statusCode:Uint8Array.from([144,0]),data:new Uint8Array([])}),e=s.parseResponse(t);(0,r.expect)((0,o.isSuccessCommandResult)(e)).toBe(!0),(0,o.isSuccessCommandResult)(e)&&(0,r.expect)(e.data).toBeUndefined()}),(0,r.it)("errors on unexpected trailing data",()=>{const s=new n.InitCommand(a()),t=new o.ApduResponse({statusCode:Uint8Array.from([144,0]),data:c}),e=s.parseResponse(t);(0,r.expect)((0,o.isSuccessCommandResult)(e)).toBe(!1),(0,o.isSuccessCommandResult)(e)||((0,r.expect)(e.error).toBeInstanceOf(o.InvalidStatusWordError),(0,r.expect)(e.error.originalError.message).toMatch("Unexpected response data"))}),(0,r.it)("maps SW errors to CommandResult error",()=>{const s=new n.InitCommand(a()),t=new o.ApduResponse({statusCode:Uint8Array.from([106,134]),data:new Uint8Array([])}),e=s.parseResponse(t);if((0,r.expect)((0,o.isSuccessCommandResult)(e)).toBe(!1),!(0,o.isSuccessCommandResult)(e))if("errorCode"in e.error)(0,r.expect)(e.error.errorCode).toEqual("6a86");else throw new Error("Unexpected error type: missing errorCode")})})});
1
+ "use strict";var o=require("@ledgerhq/device-management-kit"),r=require("vitest"),n=require("./InitCommand");const d=Uint8Array.from([2,...Array(32).fill(0)]),i=Uint8Array.from([240,202,204,26]),a=()=>({publicKey:d});(0,r.describe)("InitCommand",()=>{(0,r.describe)("getApdu()",()=>{(0,r.it)("builds correct APDU",()=>{const t=new n.InitCommand(a()).getApdu(),e=Uint8Array.from([224,6,0,0,33,2,...new Array(32).fill(0)]);(0,r.expect)(t.getRawApdu()).toEqual(e)})}),(0,r.describe)("parseResponse()",()=>{(0,r.it)("returns success when no data and SW=0x9000",()=>{const s=new n.InitCommand(a()),t=new o.ApduResponse({statusCode:Uint8Array.from([144,0]),data:new Uint8Array([])}),e=s.parseResponse(t);(0,r.expect)((0,o.isSuccessCommandResult)(e)).toBe(!0),(0,o.isSuccessCommandResult)(e)&&(0,r.expect)(e.data).toBeUndefined()}),(0,r.it)("errors on unexpected trailing data",()=>{const s=new n.InitCommand(a()),t=new o.ApduResponse({statusCode:Uint8Array.from([144,0]),data:i}),e=s.parseResponse(t);(0,r.expect)((0,o.isSuccessCommandResult)(e)).toBe(!1),(0,o.isSuccessCommandResult)(e)||((0,r.expect)(e.error).toBeInstanceOf(o.InvalidStatusWordError),(0,r.expect)(e.error.originalError.message).toMatch("Unexpected response data"))}),(0,r.it)("maps SW errors to CommandResult error",()=>{const s=new n.InitCommand(a()),t=new o.ApduResponse({statusCode:Uint8Array.from([106,134]),data:new Uint8Array([])}),e=s.parseResponse(t);if((0,r.expect)((0,o.isSuccessCommandResult)(e)).toBe(!1),!(0,o.isSuccessCommandResult)(e))if("errorCode"in e.error)(0,r.expect)(e.error.errorCode).toEqual("6a86");else throw new Error("Unexpected error type: missing errorCode")})})});
2
2
  //# sourceMappingURL=InitCommand.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/InitCommand.test.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport {\n ApduResponse,\n InvalidStatusWordError,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { describe, expect, it } from \"vitest\";\n\nimport { InitCommand, type InitCommandArgs } from \"./InitCommand\";\n\nconst DUMMY_PUBKEY_HEX = Uint8Array.from([0x02, ...Array(32).fill(0x00)]);\nconst PLACEHOLDER_BYTES = Uint8Array.from([0xf0, 0xca, 0xcc, 0x1a]);\n\nconst makeArgs = (): InitCommandArgs => ({ publicKey: DUMMY_PUBKEY_HEX });\n\ndescribe(\"InitCommand\", () => {\n describe(\"getApdu()\", () => {\n it(\"builds correct APDU\", () => {\n // given\n const cmd = new InitCommand(makeArgs());\n\n // when\n const apdu = cmd.getApdu();\n const expected = Uint8Array.from([\n 0xe0,\n 0x06,\n 0x00,\n 0x00,\n 0x21,\n 0x02,\n ...new Array(32).fill(0),\n ]);\n\n // then\n expect(apdu.getRawApdu()).toEqual(expected);\n });\n });\n\n describe(\"parseResponse()\", () => {\n it(\"returns success when no data and SW=0x9000\", () => {\n // given\n const cmd = new InitCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array([]),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toBeUndefined();\n }\n });\n\n it(\"errors on unexpected trailing data\", () => {\n // given\n const cmd = new InitCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: PLACEHOLDER_BYTES,\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect(result.error).toBeInstanceOf(InvalidStatusWordError);\n expect((result.error.originalError as Error).message).toMatch(\n \"Unexpected response data\",\n );\n }\n });\n\n it(\"maps SW errors to CommandResult error\", () => {\n // given\n const cmd = new InitCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6a, 0x86]),\n data: new Uint8Array([]),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n if (\"errorCode\" in result.error) {\n expect(result.error.errorCode).toEqual(\"6a86\");\n } else {\n throw new Error(\"Unexpected error type: missing errorCode\");\n }\n }\n });\n });\n});\n"],
5
- "mappings": "aACA,IAAAA,EAIO,2CACPC,EAAqC,kBAErCC,EAAkD,yBAElD,MAAMC,EAAmB,WAAW,KAAK,CAAC,EAAM,GAAG,MAAM,EAAE,EAAE,KAAK,CAAI,CAAC,CAAC,EAClEC,EAAoB,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,EAE5DC,EAAW,KAAwB,CAAE,UAAWF,CAAiB,MAEvE,YAAS,cAAe,IAAM,IAC5B,YAAS,YAAa,IAAM,IAC1B,MAAG,sBAAuB,IAAM,CAK9B,MAAMG,EAHM,IAAI,cAAYD,EAAS,CAAC,EAGrB,QAAQ,EACnBE,EAAW,WAAW,KAAK,CAC/B,IACA,EACA,EACA,EACA,GACA,EACA,GAAG,IAAI,MAAM,EAAE,EAAE,KAAK,CAAC,CACzB,CAAC,KAGD,UAAOD,EAAK,WAAW,CAAC,EAAE,QAAQC,CAAQ,CAC5C,CAAC,CACH,CAAC,KAED,YAAS,kBAAmB,IAAM,IAChC,MAAG,6CAA8C,IAAM,CAErD,MAAMC,EAAM,IAAI,cAAYH,EAAS,CAAC,EAChCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,cAAc,CAEtC,CAAC,KAED,MAAG,qCAAsC,IAAM,CAE7C,MAAMF,EAAM,IAAI,cAAYH,EAAS,CAAC,EAChCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAML,CACR,CAAC,EAGKM,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,KAC5C,0BAAuBA,CAAM,OAChC,UAAOA,EAAO,KAAK,EAAE,eAAe,wBAAsB,KAC1D,UAAQA,EAAO,MAAM,cAAwB,OAAO,EAAE,QACpD,0BACF,EAEJ,CAAC,KAED,MAAG,wCAAyC,IAAM,CAEhD,MAAMF,EAAM,IAAI,cAAYH,EAAS,CAAC,EAChCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,EAIzC,MADA,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,EAC7C,IAAC,0BAAuBA,CAAM,EAChC,GAAI,cAAeA,EAAO,SACxB,UAAOA,EAAO,MAAM,SAAS,EAAE,QAAQ,MAAM,MAE7C,OAAM,IAAI,MAAM,0CAA0C,CAGhE,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport {\n ApduResponse,\n InvalidStatusWordError,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { describe, expect, it } from \"vitest\";\n\nimport type { InitCommandArgs } from \"@api/app-binder/InitCommandTypes\";\n\nimport { InitCommand } from \"./InitCommand\";\n\nconst DUMMY_PUBKEY_HEX = Uint8Array.from([0x02, ...Array(32).fill(0x00)]);\nconst PLACEHOLDER_BYTES = Uint8Array.from([0xf0, 0xca, 0xcc, 0x1a]);\n\nconst makeArgs = (): InitCommandArgs => ({ publicKey: DUMMY_PUBKEY_HEX });\n\ndescribe(\"InitCommand\", () => {\n describe(\"getApdu()\", () => {\n it(\"builds correct APDU\", () => {\n // given\n const cmd = new InitCommand(makeArgs());\n\n // when\n const apdu = cmd.getApdu();\n const expected = Uint8Array.from([\n 0xe0,\n 0x06,\n 0x00,\n 0x00,\n 0x21,\n 0x02,\n ...new Array(32).fill(0),\n ]);\n\n // then\n expect(apdu.getRawApdu()).toEqual(expected);\n });\n });\n\n describe(\"parseResponse()\", () => {\n it(\"returns success when no data and SW=0x9000\", () => {\n // given\n const cmd = new InitCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array([]),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toBeUndefined();\n }\n });\n\n it(\"errors on unexpected trailing data\", () => {\n // given\n const cmd = new InitCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: PLACEHOLDER_BYTES,\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect(result.error).toBeInstanceOf(InvalidStatusWordError);\n expect((result.error.originalError as Error).message).toMatch(\n \"Unexpected response data\",\n );\n }\n });\n\n it(\"maps SW errors to CommandResult error\", () => {\n // given\n const cmd = new InitCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6a, 0x86]),\n data: new Uint8Array([]),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n if (\"errorCode\" in result.error) {\n expect(result.error.errorCode).toEqual(\"6a86\");\n } else {\n throw new Error(\"Unexpected error type: missing errorCode\");\n }\n }\n });\n });\n});\n"],
5
+ "mappings": "aACA,IAAAA,EAIO,2CACPC,EAAqC,kBAIrCC,EAA4B,yBAE5B,MAAMC,EAAmB,WAAW,KAAK,CAAC,EAAM,GAAG,MAAM,EAAE,EAAE,KAAK,CAAI,CAAC,CAAC,EAClEC,EAAoB,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,EAE5DC,EAAW,KAAwB,CAAE,UAAWF,CAAiB,MAEvE,YAAS,cAAe,IAAM,IAC5B,YAAS,YAAa,IAAM,IAC1B,MAAG,sBAAuB,IAAM,CAK9B,MAAMG,EAHM,IAAI,cAAYD,EAAS,CAAC,EAGrB,QAAQ,EACnBE,EAAW,WAAW,KAAK,CAC/B,IACA,EACA,EACA,EACA,GACA,EACA,GAAG,IAAI,MAAM,EAAE,EAAE,KAAK,CAAC,CACzB,CAAC,KAGD,UAAOD,EAAK,WAAW,CAAC,EAAE,QAAQC,CAAQ,CAC5C,CAAC,CACH,CAAC,KAED,YAAS,kBAAmB,IAAM,IAChC,MAAG,6CAA8C,IAAM,CAErD,MAAMC,EAAM,IAAI,cAAYH,EAAS,CAAC,EAChCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,cAAc,CAEtC,CAAC,KAED,MAAG,qCAAsC,IAAM,CAE7C,MAAMF,EAAM,IAAI,cAAYH,EAAS,CAAC,EAChCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAML,CACR,CAAC,EAGKM,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,KAC5C,0BAAuBA,CAAM,OAChC,UAAOA,EAAO,KAAK,EAAE,eAAe,wBAAsB,KAC1D,UAAQA,EAAO,MAAM,cAAwB,OAAO,EAAE,QACpD,0BACF,EAEJ,CAAC,KAED,MAAG,wCAAyC,IAAM,CAEhD,MAAMF,EAAM,IAAI,cAAYH,EAAS,CAAC,EAChCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,EAIzC,MADA,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,EAC7C,IAAC,0BAAuBA,CAAM,EAChC,GAAI,cAAeA,EAAO,SACxB,UAAOA,EAAO,MAAM,SAAS,EAAE,QAAQ,MAAM,MAE7C,OAAM,IAAI,MAAM,0CAA0C,CAGhE,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["import_device_management_kit", "import_vitest", "import_InitCommand", "DUMMY_PUBKEY_HEX", "PLACEHOLDER_BYTES", "makeArgs", "apdu", "expected", "cmd", "response", "result"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var d=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var u=(o,r)=>{for(var t in r)d(o,t,{get:r[t],enumerable:!0})},c=(o,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of l(r))!g.call(o,a)&&a!==t&&d(o,a,{get:()=>r[a],enumerable:!(n=i(r,a))||n.enumerable});return o};var y=o=>c(d({},"__esModule",{value:!0}),o);var P={};u(P,{ParseBlockSignatureCommand:()=>C});module.exports=y(P);var e=require("@ledgerhq/device-management-kit"),m=require("@ledgerhq/signer-utils"),p=require("purify-ts"),s=require("./utils/ledgerKeyringProtocolErrors");class C{constructor(r){this.args=r}errorHelper=new m.CommandErrorHelper(s.LEDGER_SYNC_ERRORS,s.LedgerKeyringProtocolErrorFactory);getApdu(){const{signature:r}=this.args;return new e.ApduBuilder({cla:224,ins:8,p1:2,p2:0}).addBufferToData(r).build()}parseResponse(r){return p.Maybe.fromNullable(this.errorHelper.getError(r)).orDefaultLazy(()=>{const t=new e.ApduParser(r),n=t.getUnparsedRemainingLength(),a=t.extractFieldByLength(n);return a?(0,e.CommandResultFactory)({data:a}):(0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("No data returned by ParseBlockSignatureCommand")})})}}0&&(module.exports={ParseBlockSignatureCommand});
1
+ "use strict";var m=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var u=(o,r)=>{for(var n in r)m(o,n,{get:r[n],enumerable:!0})},c=(o,r,n,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of l(r))!g.call(o,a)&&a!==n&&m(o,a,{get:()=>r[a],enumerable:!(t=i(r,a))||t.enumerable});return o};var y=o=>c(m({},"__esModule",{value:!0}),o);var P={};u(P,{ParseBlockSignatureCommand:()=>C});module.exports=y(P);var e=require("@ledgerhq/device-management-kit"),d=require("@ledgerhq/signer-utils"),p=require("purify-ts"),s=require("./utils/ledgerKeyringProtocolErrors");class C{constructor(r){this.args=r}errorHelper=new d.CommandErrorHelper(s.LEDGER_SYNC_ERRORS,s.LedgerKeyringProtocolErrorFactory);getApdu(){const{signature:r}=this.args;return new e.ApduBuilder({cla:224,ins:8,p1:2,p2:0}).addBufferToData(r).build()}parseResponse(r){return p.Maybe.fromNullable(this.errorHelper.getError(r)).orDefaultLazy(()=>{const n=new e.ApduParser(r),t=n.getUnparsedRemainingLength(),a=n.extractFieldByLength(t);return a?(0,e.CommandResultFactory)({data:a}):(0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("No data returned by ParseBlockSignatureCommand")})})}}0&&(module.exports={ParseBlockSignatureCommand});
2
2
  //# sourceMappingURL=ParseBlockSignatureCommand.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/ParseBlockSignatureCommand.ts"],
4
- "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n LEDGER_SYNC_ERRORS,\n type LedgerKeyringProtocolErrorCodes,\n LedgerKeyringProtocolErrorFactory,\n} from \"./utils/ledgerKeyringProtocolErrors\";\n\nexport type ParseBlockSignatureCommandResponse = Uint8Array;\n\nexport type ParseBlockSignatureCommandArgs = { signature: Uint8Array };\n\nexport class ParseBlockSignatureCommand\n implements\n Command<\n ParseBlockSignatureCommandResponse,\n ParseBlockSignatureCommandArgs,\n LedgerKeyringProtocolErrorCodes\n >\n{\n private readonly errorHelper = new CommandErrorHelper<\n ParseBlockSignatureCommandResponse,\n LedgerKeyringProtocolErrorCodes\n >(LEDGER_SYNC_ERRORS, LedgerKeyringProtocolErrorFactory);\n\n constructor(private readonly args: ParseBlockSignatureCommandArgs) {}\n\n getApdu(): Apdu {\n const { signature } = this.args;\n return (\n new ApduBuilder({\n cla: 0xe0,\n ins: 0x08,\n p1: 0x02,\n p2: 0x00,\n })\n // raw signature chunk\n .addBufferToData(signature)\n .build()\n );\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<\n ParseBlockSignatureCommandResponse,\n LedgerKeyringProtocolErrorCodes\n > {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n const remaining = parser.getUnparsedRemainingLength();\n const payload = parser.extractFieldByLength(remaining);\n if (!payload) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"No data returned by ParseBlockSignatureCommand\",\n ),\n });\n }\n return CommandResultFactory({ data: payload });\n });\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAEtBC,EAIO,+CAMA,MAAML,CAOb,CAME,YAA6BM,EAAsC,CAAtC,UAAAA,CAAuC,CALnD,YAAc,IAAI,qBAGjC,qBAAoB,mCAAiC,EAIvD,SAAgB,CACd,KAAM,CAAE,UAAAC,CAAU,EAAI,KAAK,KAC3B,OACE,IAAI,cAAY,CACd,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,CAAC,EAEE,gBAAgBA,CAAS,EACzB,MAAM,CAEb,CAEA,cACEC,EAIA,CACA,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAI,aAAWD,CAAY,EACpCE,EAAYD,EAAO,2BAA2B,EAC9CE,EAAUF,EAAO,qBAAqBC,CAAS,EACrD,OAAKC,KAOE,wBAAqB,CAAE,KAAMA,CAAQ,CAAC,KANpC,wBAAqB,CAC1B,MAAO,IAAI,yBACT,gDACF,CACF,CAAC,CAGL,CAAC,CACH,CACF",
4
+ "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n type ParseBlockSignatureCommandArgs,\n type ParseBlockSignatureCommandResponse,\n} from \"@api/app-binder/ParseStreamBlockSignatureTypes\";\n\nimport {\n LEDGER_SYNC_ERRORS,\n type LedgerKeyringProtocolErrorCodes,\n LedgerKeyringProtocolErrorFactory,\n} from \"./utils/ledgerKeyringProtocolErrors\";\n\nexport class ParseBlockSignatureCommand\n implements\n Command<\n ParseBlockSignatureCommandResponse,\n ParseBlockSignatureCommandArgs,\n LedgerKeyringProtocolErrorCodes\n >\n{\n private readonly errorHelper = new CommandErrorHelper<\n ParseBlockSignatureCommandResponse,\n LedgerKeyringProtocolErrorCodes\n >(LEDGER_SYNC_ERRORS, LedgerKeyringProtocolErrorFactory);\n\n constructor(private readonly args: ParseBlockSignatureCommandArgs) {}\n\n getApdu(): Apdu {\n const { signature } = this.args;\n return (\n new ApduBuilder({\n cla: 0xe0,\n ins: 0x08,\n p1: 0x02,\n p2: 0x00,\n })\n // raw signature chunk\n .addBufferToData(signature)\n .build()\n );\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<\n ParseBlockSignatureCommandResponse,\n LedgerKeyringProtocolErrorCodes\n > {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n const remaining = parser.getUnparsedRemainingLength();\n const payload = parser.extractFieldByLength(remaining);\n if (!payload) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"No data returned by ParseBlockSignatureCommand\",\n ),\n });\n }\n return CommandResultFactory({ data: payload });\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAOtBC,EAIO,+CAEA,MAAML,CAOb,CAME,YAA6BM,EAAsC,CAAtC,UAAAA,CAAuC,CALnD,YAAc,IAAI,qBAGjC,qBAAoB,mCAAiC,EAIvD,SAAgB,CACd,KAAM,CAAE,UAAAC,CAAU,EAAI,KAAK,KAC3B,OACE,IAAI,cAAY,CACd,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,CAAC,EAEE,gBAAgBA,CAAS,EACzB,MAAM,CAEb,CAEA,cACEC,EAIA,CACA,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAI,aAAWD,CAAY,EACpCE,EAAYD,EAAO,2BAA2B,EAC9CE,EAAUF,EAAO,qBAAqBC,CAAS,EACrD,OAAKC,KAOE,wBAAqB,CAAE,KAAMA,CAAQ,CAAC,KANpC,wBAAqB,CAC1B,MAAO,IAAI,yBACT,gDACF,CACF,CAAC,CAGL,CAAC,CACH,CACF",
6
6
  "names": ["ParseBlockSignatureCommand_exports", "__export", "ParseBlockSignatureCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_ledgerKeyringProtocolErrors", "args", "signature", "apduResponse", "parser", "remaining", "payload"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var t=require("@ledgerhq/device-management-kit"),r=require("vitest"),a=require("./ParseBlockSignatureCommand");const c=Uint8Array.from([10,11,12]),d=Uint8Array.from([240,202,204,26]);(0,r.describe)("ParseBlockSignatureCommand",()=>{const n=()=>({signature:c});(0,r.describe)("getApdu()",()=>{(0,r.it)("builds correct APDU for signature chunk",()=>{const e=new a.ParseBlockSignatureCommand(n()).getApdu().getRawApdu();(0,r.expect)(e).toEqual(Uint8Array.from([224,8,2,0,c.length,...c]))})}),(0,r.describe)("parseResponse()",()=>{(0,r.it)("returns raw TLV payload on success",()=>{const s=new a.ParseBlockSignatureCommand(n()),o=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:d}),e=s.parseResponse(o);(0,r.expect)((0,t.isSuccessCommandResult)(e)).toBe(!0),(0,t.isSuccessCommandResult)(e)&&(0,r.expect)(e.data).toEqual(d)}),(0,r.it)("maps SW errors to CommandResult error",()=>{const s=new a.ParseBlockSignatureCommand(n()),o=new t.ApduResponse({statusCode:Uint8Array.from([106,134]),data:new Uint8Array}),e=s.parseResponse(o);(0,r.expect)((0,t.isSuccessCommandResult)(e)).toBe(!1),(0,t.isSuccessCommandResult)(e)||(0,r.expect)(e.error.errorCode).toBe("6a86")}),(0,r.it)("errors when no TLV data returned",()=>{const s=new a.ParseBlockSignatureCommand(n()),o=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:new Uint8Array}),e=s.parseResponse(o);(0,r.expect)((0,t.isSuccessCommandResult)(e)).toBe(!0),(0,t.isSuccessCommandResult)(e)&&(0,r.expect)(e.data).toEqual(new Uint8Array([]))})})});
1
+ "use strict";var t=require("@ledgerhq/device-management-kit"),r=require("vitest"),a=require("./ParseBlockSignatureCommand");const c=Uint8Array.from([10,11,12]),m=Uint8Array.from([240,202,204,26]);(0,r.describe)("ParseBlockSignatureCommand",()=>{const n=()=>({signature:c});(0,r.describe)("getApdu()",()=>{(0,r.it)("builds correct APDU for signature chunk",()=>{const e=new a.ParseBlockSignatureCommand(n()).getApdu().getRawApdu();(0,r.expect)(e).toEqual(Uint8Array.from([224,8,2,0,c.length,...c]))})}),(0,r.describe)("parseResponse()",()=>{(0,r.it)("returns raw TLV payload on success",()=>{const s=new a.ParseBlockSignatureCommand(n()),o=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:m}),e=s.parseResponse(o);(0,r.expect)((0,t.isSuccessCommandResult)(e)).toBe(!0),(0,t.isSuccessCommandResult)(e)&&(0,r.expect)(e.data).toEqual(m)}),(0,r.it)("maps SW errors to CommandResult error",()=>{const s=new a.ParseBlockSignatureCommand(n()),o=new t.ApduResponse({statusCode:Uint8Array.from([106,134]),data:new Uint8Array}),e=s.parseResponse(o);(0,r.expect)((0,t.isSuccessCommandResult)(e)).toBe(!1),(0,t.isSuccessCommandResult)(e)||(0,r.expect)(e.error.errorCode).toBe("6a86")}),(0,r.it)("errors when no TLV data returned",()=>{const s=new a.ParseBlockSignatureCommand(n()),o=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:new Uint8Array}),e=s.parseResponse(o);(0,r.expect)((0,t.isSuccessCommandResult)(e)).toBe(!0),(0,t.isSuccessCommandResult)(e)&&(0,r.expect)(e.data).toEqual(new Uint8Array([]))})})});
2
2
  //# sourceMappingURL=ParseBlockSignatureCommand.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/ParseBlockSignatureCommand.test.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n ApduResponse,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { describe, expect, it } from \"vitest\";\n\nimport {\n ParseBlockSignatureCommand,\n type ParseBlockSignatureCommandArgs,\n} from \"./ParseBlockSignatureCommand\";\n\nconst DUMMY_SIGNATURE = Uint8Array.from([0x0a, 0x0b, 0x0c]);\n\nconst PLACEHOLDER_BYTES = Uint8Array.from([0xf0, 0xca, 0xcc, 0x1a]);\n\ndescribe(\"ParseBlockSignatureCommand\", () => {\n const makeArgs = (): ParseBlockSignatureCommandArgs => ({\n signature: DUMMY_SIGNATURE,\n });\n\n describe(\"getApdu()\", () => {\n it(\"builds correct APDU for signature chunk\", () => {\n // given\n const cmd = new ParseBlockSignatureCommand(makeArgs());\n\n // when\n const apdu = cmd.getApdu();\n const raw = apdu.getRawApdu();\n\n // then\n expect(raw).toEqual(\n Uint8Array.from([\n 0xe0,\n 0x08,\n 0x02,\n 0x00,\n DUMMY_SIGNATURE.length,\n ...DUMMY_SIGNATURE,\n ]),\n );\n });\n });\n\n describe(\"parseResponse()\", () => {\n it(\"returns raw TLV payload on success\", () => {\n // given\n const cmd = new ParseBlockSignatureCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: PLACEHOLDER_BYTES,\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toEqual(PLACEHOLDER_BYTES);\n }\n });\n\n it(\"maps SW errors to CommandResult error\", () => {\n // given\n const cmd = new ParseBlockSignatureCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6a, 0x86]),\n data: new Uint8Array(),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect((result.error as any).errorCode).toBe(\"6a86\");\n }\n });\n\n it(\"errors when no TLV data returned\", () => {\n // given\n const cmd = new ParseBlockSignatureCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array(),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toEqual(new Uint8Array([]));\n }\n });\n });\n});\n"],
5
- "mappings": "aAEA,IAAAA,EAGO,2CACPC,EAAqC,kBAErCC,EAGO,wCAEP,MAAMC,EAAkB,WAAW,KAAK,CAAC,GAAM,GAAM,EAAI,CAAC,EAEpDC,EAAoB,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,KAElE,YAAS,6BAA8B,IAAM,CAC3C,MAAMC,EAAW,KAAuC,CACtD,UAAWF,CACb,MAEA,YAAS,YAAa,IAAM,IAC1B,MAAG,0CAA2C,IAAM,CAMlD,MAAMG,EAJM,IAAI,6BAA2BD,EAAS,CAAC,EAGpC,QAAQ,EACR,WAAW,KAG5B,UAAOC,CAAG,EAAE,QACV,WAAW,KAAK,CACd,IACA,EACA,EACA,EACAH,EAAgB,OAChB,GAAGA,CACL,CAAC,CACH,CACF,CAAC,CACH,CAAC,KAED,YAAS,kBAAmB,IAAM,IAChC,MAAG,qCAAsC,IAAM,CAE7C,MAAMI,EAAM,IAAI,6BAA2BF,EAAS,CAAC,EAC/CG,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAMJ,CACR,CAAC,EAGKK,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,QAAQL,CAAiB,CAEjD,CAAC,KAED,MAAG,wCAAyC,IAAM,CAEhD,MAAMG,EAAM,IAAI,6BAA2BF,EAAS,CAAC,EAC/CG,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,UACZ,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,KAC5C,0BAAuBA,CAAM,MAChC,UAAQA,EAAO,MAAc,SAAS,EAAE,KAAK,MAAM,CAEvD,CAAC,KAED,MAAG,mCAAoC,IAAM,CAE3C,MAAMF,EAAM,IAAI,6BAA2BF,EAAS,CAAC,EAC/CG,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,UACZ,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,CAElD,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n ApduResponse,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { describe, expect, it } from \"vitest\";\n\nimport type { ParseBlockSignatureCommandArgs } from \"@api/app-binder/ParseStreamBlockSignatureTypes\";\n\nimport { ParseBlockSignatureCommand } from \"./ParseBlockSignatureCommand\";\n\nconst DUMMY_SIGNATURE = Uint8Array.from([0x0a, 0x0b, 0x0c]);\n\nconst PLACEHOLDER_BYTES = Uint8Array.from([0xf0, 0xca, 0xcc, 0x1a]);\n\ndescribe(\"ParseBlockSignatureCommand\", () => {\n const makeArgs = (): ParseBlockSignatureCommandArgs => ({\n signature: DUMMY_SIGNATURE,\n });\n\n describe(\"getApdu()\", () => {\n it(\"builds correct APDU for signature chunk\", () => {\n // given\n const cmd = new ParseBlockSignatureCommand(makeArgs());\n\n // when\n const apdu = cmd.getApdu();\n const raw = apdu.getRawApdu();\n\n // then\n expect(raw).toEqual(\n Uint8Array.from([\n 0xe0,\n 0x08,\n 0x02,\n 0x00,\n DUMMY_SIGNATURE.length,\n ...DUMMY_SIGNATURE,\n ]),\n );\n });\n });\n\n describe(\"parseResponse()\", () => {\n it(\"returns raw TLV payload on success\", () => {\n // given\n const cmd = new ParseBlockSignatureCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: PLACEHOLDER_BYTES,\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toEqual(PLACEHOLDER_BYTES);\n }\n });\n\n it(\"maps SW errors to CommandResult error\", () => {\n // given\n const cmd = new ParseBlockSignatureCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6a, 0x86]),\n data: new Uint8Array(),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect((result.error as any).errorCode).toBe(\"6a86\");\n }\n });\n\n it(\"errors when no TLV data returned\", () => {\n // given\n const cmd = new ParseBlockSignatureCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array(),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toEqual(new Uint8Array([]));\n }\n });\n });\n});\n"],
5
+ "mappings": "aAEA,IAAAA,EAGO,2CACPC,EAAqC,kBAIrCC,EAA2C,wCAE3C,MAAMC,EAAkB,WAAW,KAAK,CAAC,GAAM,GAAM,EAAI,CAAC,EAEpDC,EAAoB,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,KAElE,YAAS,6BAA8B,IAAM,CAC3C,MAAMC,EAAW,KAAuC,CACtD,UAAWF,CACb,MAEA,YAAS,YAAa,IAAM,IAC1B,MAAG,0CAA2C,IAAM,CAMlD,MAAMG,EAJM,IAAI,6BAA2BD,EAAS,CAAC,EAGpC,QAAQ,EACR,WAAW,KAG5B,UAAOC,CAAG,EAAE,QACV,WAAW,KAAK,CACd,IACA,EACA,EACA,EACAH,EAAgB,OAChB,GAAGA,CACL,CAAC,CACH,CACF,CAAC,CACH,CAAC,KAED,YAAS,kBAAmB,IAAM,IAChC,MAAG,qCAAsC,IAAM,CAE7C,MAAMI,EAAM,IAAI,6BAA2BF,EAAS,CAAC,EAC/CG,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAMJ,CACR,CAAC,EAGKK,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,QAAQL,CAAiB,CAEjD,CAAC,KAED,MAAG,wCAAyC,IAAM,CAEhD,MAAMG,EAAM,IAAI,6BAA2BF,EAAS,CAAC,EAC/CG,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,UACZ,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,KAC5C,0BAAuBA,CAAM,MAChC,UAAQA,EAAO,MAAc,SAAS,EAAE,KAAK,MAAM,CAEvD,CAAC,KAED,MAAG,mCAAoC,IAAM,CAE3C,MAAMF,EAAM,IAAI,6BAA2BF,EAAS,CAAC,EAC/CG,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,UACZ,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,CAElD,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["import_device_management_kit", "import_vitest", "import_ParseBlockSignatureCommand", "DUMMY_SIGNATURE", "PLACEHOLDER_BYTES", "makeArgs", "raw", "cmd", "response", "result"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/ParseStreamBlockCommand.ts"],
4
- "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n LEDGER_SYNC_ERRORS,\n type LedgerKeyringProtocolErrorCodes,\n LedgerKeyringProtocolErrorFactory,\n} from \"./utils/ledgerKeyringProtocolErrors\";\n\nexport type ParseSingleCommandArgs = {\n command: Uint8Array;\n outputTrustedParam?: boolean;\n};\n\nexport type ParseSingleCommandResponse = Uint8Array;\n\nexport class ParseSingleCommand\n implements\n Command<\n ParseSingleCommandResponse,\n ParseSingleCommandArgs,\n LedgerKeyringProtocolErrorCodes\n >\n{\n private readonly errorHelper = new CommandErrorHelper<\n ParseSingleCommandResponse,\n LedgerKeyringProtocolErrorCodes\n >(LEDGER_SYNC_ERRORS, LedgerKeyringProtocolErrorFactory);\n\n constructor(private readonly args: ParseSingleCommandArgs) {}\n\n getApdu(): Apdu {\n const { command, outputTrustedParam = true } = this.args;\n return (\n new ApduBuilder({\n cla: 0xe0,\n ins: 0x08,\n p1: 0x01,\n p2: outputTrustedParam ? 0x01 : 0x00,\n })\n // raw command chunk\n .addBufferToData(command)\n .build()\n );\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<\n ParseSingleCommandResponse,\n LedgerKeyringProtocolErrorCodes\n > {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n const remaining = parser.getUnparsedRemainingLength();\n const payload = parser.extractFieldByLength(remaining);\n if (!payload) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"No data returned by ParseSingleCommand\",\n ),\n });\n }\n return CommandResultFactory({ data: payload });\n });\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAEtBC,EAIO,+CASA,MAAML,CAOb,CAME,YAA6BM,EAA8B,CAA9B,UAAAA,CAA+B,CAL3C,YAAc,IAAI,qBAGjC,qBAAoB,mCAAiC,EAIvD,SAAgB,CACd,KAAM,CAAE,QAAAC,EAAS,mBAAAC,EAAqB,EAAK,EAAI,KAAK,KACpD,OACE,IAAI,cAAY,CACd,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAIA,EAAqB,EAAO,CAClC,CAAC,EAEE,gBAAgBD,CAAO,EACvB,MAAM,CAEb,CAEA,cACEE,EAIA,CACA,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAI,aAAWD,CAAY,EACpCE,EAAYD,EAAO,2BAA2B,EAC9CE,EAAUF,EAAO,qBAAqBC,CAAS,EACrD,OAAKC,KAOE,wBAAqB,CAAE,KAAMA,CAAQ,CAAC,KANpC,wBAAqB,CAC1B,MAAO,IAAI,yBACT,wCACF,CACF,CAAC,CAGL,CAAC,CACH,CACF",
4
+ "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n type ParseSingleCommandArgs,\n type ParseSingleCommandResponse,\n} from \"@api/app-binder/ParseStreamBlockCommandCommandTypes\";\n\nimport {\n LEDGER_SYNC_ERRORS,\n type LedgerKeyringProtocolErrorCodes,\n LedgerKeyringProtocolErrorFactory,\n} from \"./utils/ledgerKeyringProtocolErrors\";\n\nexport class ParseSingleCommand\n implements\n Command<\n ParseSingleCommandResponse,\n ParseSingleCommandArgs,\n LedgerKeyringProtocolErrorCodes\n >\n{\n private readonly errorHelper = new CommandErrorHelper<\n ParseSingleCommandResponse,\n LedgerKeyringProtocolErrorCodes\n >(LEDGER_SYNC_ERRORS, LedgerKeyringProtocolErrorFactory);\n\n constructor(private readonly args: ParseSingleCommandArgs) {}\n\n getApdu(): Apdu {\n const { command, outputTrustedParam = true } = this.args;\n return (\n new ApduBuilder({\n cla: 0xe0,\n ins: 0x08,\n p1: 0x01,\n p2: outputTrustedParam ? 0x01 : 0x00,\n })\n // raw command chunk\n .addBufferToData(command)\n .build()\n );\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<\n ParseSingleCommandResponse,\n LedgerKeyringProtocolErrorCodes\n > {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n const remaining = parser.getUnparsedRemainingLength();\n const payload = parser.extractFieldByLength(remaining);\n if (!payload) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"No data returned by ParseSingleCommand\",\n ),\n });\n }\n return CommandResultFactory({ data: payload });\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAOtBC,EAIO,+CAEA,MAAML,CAOb,CAME,YAA6BM,EAA8B,CAA9B,UAAAA,CAA+B,CAL3C,YAAc,IAAI,qBAGjC,qBAAoB,mCAAiC,EAIvD,SAAgB,CACd,KAAM,CAAE,QAAAC,EAAS,mBAAAC,EAAqB,EAAK,EAAI,KAAK,KACpD,OACE,IAAI,cAAY,CACd,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAIA,EAAqB,EAAO,CAClC,CAAC,EAEE,gBAAgBD,CAAO,EACvB,MAAM,CAEb,CAEA,cACEE,EAIA,CACA,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAI,aAAWD,CAAY,EACpCE,EAAYD,EAAO,2BAA2B,EAC9CE,EAAUF,EAAO,qBAAqBC,CAAS,EACrD,OAAKC,KAOE,wBAAqB,CAAE,KAAMA,CAAQ,CAAC,KANpC,wBAAqB,CAC1B,MAAO,IAAI,yBACT,wCACF,CACF,CAAC,CAGL,CAAC,CACH,CACF",
6
6
  "names": ["ParseStreamBlockCommand_exports", "__export", "ParseSingleCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_ledgerKeyringProtocolErrors", "args", "command", "outputTrustedParam", "apduResponse", "parser", "remaining", "payload"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var t=require("@ledgerhq/device-management-kit"),e=require("vitest"),o=require("./ParseStreamBlockCommand");const d=Uint8Array.from([1,2,3]),c=Uint8Array.from([240,202,204,26]);(0,e.describe)("ParseSingleCommand",()=>{const n=(s=!1)=>({command:d,outputTrustedParam:s});(0,e.describe)("getApdu()",()=>{(0,e.it)("builds correct APDU without trustedParam",()=>{const r=new o.ParseSingleCommand(n(!1)).getApdu().getRawApdu();(0,e.expect)(r).toEqual(Uint8Array.from([224,8,1,0,d.length,...d]))}),(0,e.it)("builds correct APDU with trustedParam",()=>{const r=new o.ParseSingleCommand(n(!0)).getApdu().getRawApdu();(0,e.expect)(r).toEqual(Uint8Array.from([224,8,1,1,d.length,...d]))})}),(0,e.describe)("parseResponse()",()=>{(0,e.it)("returns raw TLV payload on success",()=>{const s=new o.ParseSingleCommand(n()),a=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:c}),r=s.parseResponse(a);(0,e.expect)((0,t.isSuccessCommandResult)(r)).toBe(!0),(0,t.isSuccessCommandResult)(r)&&(0,e.expect)(r.data).toEqual(c)}),(0,e.it)("maps SW errors to CommandResult error",()=>{const s=new o.ParseSingleCommand(n()),a=new t.ApduResponse({statusCode:Uint8Array.from([106,134]),data:new Uint8Array}),r=s.parseResponse(a);(0,e.expect)((0,t.isSuccessCommandResult)(r)).toBe(!1),(0,t.isSuccessCommandResult)(r)||(0,e.expect)(r.error.errorCode).toBe("6a86")}),(0,e.it)("errors when no TLV data returned",()=>{const s=new o.ParseSingleCommand(n()),a=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:new Uint8Array}),r=s.parseResponse(a);(0,e.expect)((0,t.isSuccessCommandResult)(r)).toBe(!0),(0,t.isSuccessCommandResult)(r)&&(0,e.expect)(r.data).toEqual(new Uint8Array([]))})})});
1
+ "use strict";var t=require("@ledgerhq/device-management-kit"),e=require("vitest"),o=require("./ParseStreamBlockCommand");const m=Uint8Array.from([1,2,3]),d=Uint8Array.from([240,202,204,26]);(0,e.describe)("ParseSingleCommand",()=>{const n=(s=!1)=>({command:m,outputTrustedParam:s});(0,e.describe)("getApdu()",()=>{(0,e.it)("builds correct APDU without trustedParam",()=>{const r=new o.ParseSingleCommand(n(!1)).getApdu().getRawApdu();(0,e.expect)(r).toEqual(Uint8Array.from([224,8,1,0,m.length,...m]))}),(0,e.it)("builds correct APDU with trustedParam",()=>{const r=new o.ParseSingleCommand(n(!0)).getApdu().getRawApdu();(0,e.expect)(r).toEqual(Uint8Array.from([224,8,1,1,m.length,...m]))})}),(0,e.describe)("parseResponse()",()=>{(0,e.it)("returns raw TLV payload on success",()=>{const s=new o.ParseSingleCommand(n()),a=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:d}),r=s.parseResponse(a);(0,e.expect)((0,t.isSuccessCommandResult)(r)).toBe(!0),(0,t.isSuccessCommandResult)(r)&&(0,e.expect)(r.data).toEqual(d)}),(0,e.it)("maps SW errors to CommandResult error",()=>{const s=new o.ParseSingleCommand(n()),a=new t.ApduResponse({statusCode:Uint8Array.from([106,134]),data:new Uint8Array}),r=s.parseResponse(a);(0,e.expect)((0,t.isSuccessCommandResult)(r)).toBe(!1),(0,t.isSuccessCommandResult)(r)||(0,e.expect)(r.error.errorCode).toBe("6a86")}),(0,e.it)("errors when no TLV data returned",()=>{const s=new o.ParseSingleCommand(n()),a=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:new Uint8Array}),r=s.parseResponse(a);(0,e.expect)((0,t.isSuccessCommandResult)(r)).toBe(!0),(0,t.isSuccessCommandResult)(r)&&(0,e.expect)(r.data).toEqual(new Uint8Array([]))})})});
2
2
  //# sourceMappingURL=ParseStreamBlockCommand.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/ParseStreamBlockCommand.test.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n ApduResponse,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { describe, expect, it } from \"vitest\";\n\nimport {\n ParseSingleCommand,\n type ParseSingleCommandArgs,\n} from \"./ParseStreamBlockCommand\";\n\nconst DUMMY_COMMAND = Uint8Array.from([0x01, 0x02, 0x03]);\nconst PLACEHOLDER_BYTES = Uint8Array.from([0xf0, 0xca, 0xcc, 0x1a]);\n\ndescribe(\"ParseSingleCommand\", () => {\n const makeArgs = (outputTrustedParam = false): ParseSingleCommandArgs => ({\n command: DUMMY_COMMAND,\n outputTrustedParam,\n });\n\n describe(\"getApdu()\", () => {\n it(\"builds correct APDU without trustedParam\", () => {\n // given\n const cmd = new ParseSingleCommand(makeArgs(false));\n\n // when\n const apdu = cmd.getApdu();\n const raw = apdu.getRawApdu();\n\n // then\n expect(raw).toEqual(\n Uint8Array.from([\n 0xe0,\n 0x08,\n 0x01,\n 0x00,\n DUMMY_COMMAND.length,\n ...DUMMY_COMMAND,\n ]),\n );\n });\n\n it(\"builds correct APDU with trustedParam\", () => {\n // given\n const cmd = new ParseSingleCommand(makeArgs(true));\n\n // when\n const apdu = cmd.getApdu();\n const raw = apdu.getRawApdu();\n\n // then\n expect(raw).toEqual(\n Uint8Array.from([\n 0xe0,\n 0x08,\n 0x01,\n 0x01,\n DUMMY_COMMAND.length,\n ...DUMMY_COMMAND,\n ]),\n );\n });\n });\n\n describe(\"parseResponse()\", () => {\n it(\"returns raw TLV payload on success\", () => {\n // given\n const cmd = new ParseSingleCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: PLACEHOLDER_BYTES,\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toEqual(PLACEHOLDER_BYTES);\n }\n });\n\n it(\"maps SW errors to CommandResult error\", () => {\n // given\n const cmd = new ParseSingleCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6a, 0x86]),\n data: new Uint8Array(),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect((result.error as any).errorCode).toBe(\"6a86\");\n }\n });\n\n it(\"errors when no TLV data returned\", () => {\n // given\n const cmd = new ParseSingleCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array(),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toEqual(new Uint8Array([]));\n }\n });\n });\n});\n"],
5
- "mappings": "aAEA,IAAAA,EAGO,2CACPC,EAAqC,kBAErCC,EAGO,qCAEP,MAAMC,EAAgB,WAAW,KAAK,CAAC,EAAM,EAAM,CAAI,CAAC,EAClDC,EAAoB,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,KAElE,YAAS,qBAAsB,IAAM,CACnC,MAAMC,EAAW,CAACC,EAAqB,MAAmC,CACxE,QAASH,EACT,mBAAAG,CACF,MAEA,YAAS,YAAa,IAAM,IAC1B,MAAG,2CAA4C,IAAM,CAMnD,MAAMC,EAJM,IAAI,qBAAmBF,EAAS,EAAK,CAAC,EAGjC,QAAQ,EACR,WAAW,KAG5B,UAAOE,CAAG,EAAE,QACV,WAAW,KAAK,CACd,IACA,EACA,EACA,EACAJ,EAAc,OACd,GAAGA,CACL,CAAC,CACH,CACF,CAAC,KAED,MAAG,wCAAyC,IAAM,CAMhD,MAAMI,EAJM,IAAI,qBAAmBF,EAAS,EAAI,CAAC,EAGhC,QAAQ,EACR,WAAW,KAG5B,UAAOE,CAAG,EAAE,QACV,WAAW,KAAK,CACd,IACA,EACA,EACA,EACAJ,EAAc,OACd,GAAGA,CACL,CAAC,CACH,CACF,CAAC,CACH,CAAC,KAED,YAAS,kBAAmB,IAAM,IAChC,MAAG,qCAAsC,IAAM,CAE7C,MAAMK,EAAM,IAAI,qBAAmBH,EAAS,CAAC,EACvCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAML,CACR,CAAC,EAGKM,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,QAAQN,CAAiB,CAEjD,CAAC,KAED,MAAG,wCAAyC,IAAM,CAEhD,MAAMI,EAAM,IAAI,qBAAmBH,EAAS,CAAC,EACvCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,UACZ,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,KAC5C,0BAAuBA,CAAM,MAChC,UAAQA,EAAO,MAAc,SAAS,EAAE,KAAK,MAAM,CAEvD,CAAC,KAED,MAAG,mCAAoC,IAAM,CAE3C,MAAMF,EAAM,IAAI,qBAAmBH,EAAS,CAAC,EACvCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,UACZ,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,CAElD,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n ApduResponse,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { describe, expect, it } from \"vitest\";\n\nimport type { ParseSingleCommandArgs } from \"@api/app-binder/ParseStreamBlockCommandCommandTypes\";\n\nimport { ParseSingleCommand } from \"./ParseStreamBlockCommand\";\n\nconst DUMMY_COMMAND = Uint8Array.from([0x01, 0x02, 0x03]);\nconst PLACEHOLDER_BYTES = Uint8Array.from([0xf0, 0xca, 0xcc, 0x1a]);\n\ndescribe(\"ParseSingleCommand\", () => {\n const makeArgs = (outputTrustedParam = false): ParseSingleCommandArgs => ({\n command: DUMMY_COMMAND,\n outputTrustedParam,\n });\n\n describe(\"getApdu()\", () => {\n it(\"builds correct APDU without trustedParam\", () => {\n // given\n const cmd = new ParseSingleCommand(makeArgs(false));\n\n // when\n const apdu = cmd.getApdu();\n const raw = apdu.getRawApdu();\n\n // then\n expect(raw).toEqual(\n Uint8Array.from([\n 0xe0,\n 0x08,\n 0x01,\n 0x00,\n DUMMY_COMMAND.length,\n ...DUMMY_COMMAND,\n ]),\n );\n });\n\n it(\"builds correct APDU with trustedParam\", () => {\n // given\n const cmd = new ParseSingleCommand(makeArgs(true));\n\n // when\n const apdu = cmd.getApdu();\n const raw = apdu.getRawApdu();\n\n // then\n expect(raw).toEqual(\n Uint8Array.from([\n 0xe0,\n 0x08,\n 0x01,\n 0x01,\n DUMMY_COMMAND.length,\n ...DUMMY_COMMAND,\n ]),\n );\n });\n });\n\n describe(\"parseResponse()\", () => {\n it(\"returns raw TLV payload on success\", () => {\n // given\n const cmd = new ParseSingleCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: PLACEHOLDER_BYTES,\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toEqual(PLACEHOLDER_BYTES);\n }\n });\n\n it(\"maps SW errors to CommandResult error\", () => {\n // given\n const cmd = new ParseSingleCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6a, 0x86]),\n data: new Uint8Array(),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect((result.error as any).errorCode).toBe(\"6a86\");\n }\n });\n\n it(\"errors when no TLV data returned\", () => {\n // given\n const cmd = new ParseSingleCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array(),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toEqual(new Uint8Array([]));\n }\n });\n });\n});\n"],
5
+ "mappings": "aAEA,IAAAA,EAGO,2CACPC,EAAqC,kBAIrCC,EAAmC,qCAEnC,MAAMC,EAAgB,WAAW,KAAK,CAAC,EAAM,EAAM,CAAI,CAAC,EAClDC,EAAoB,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,KAElE,YAAS,qBAAsB,IAAM,CACnC,MAAMC,EAAW,CAACC,EAAqB,MAAmC,CACxE,QAASH,EACT,mBAAAG,CACF,MAEA,YAAS,YAAa,IAAM,IAC1B,MAAG,2CAA4C,IAAM,CAMnD,MAAMC,EAJM,IAAI,qBAAmBF,EAAS,EAAK,CAAC,EAGjC,QAAQ,EACR,WAAW,KAG5B,UAAOE,CAAG,EAAE,QACV,WAAW,KAAK,CACd,IACA,EACA,EACA,EACAJ,EAAc,OACd,GAAGA,CACL,CAAC,CACH,CACF,CAAC,KAED,MAAG,wCAAyC,IAAM,CAMhD,MAAMI,EAJM,IAAI,qBAAmBF,EAAS,EAAI,CAAC,EAGhC,QAAQ,EACR,WAAW,KAG5B,UAAOE,CAAG,EAAE,QACV,WAAW,KAAK,CACd,IACA,EACA,EACA,EACAJ,EAAc,OACd,GAAGA,CACL,CAAC,CACH,CACF,CAAC,CACH,CAAC,KAED,YAAS,kBAAmB,IAAM,IAChC,MAAG,qCAAsC,IAAM,CAE7C,MAAMK,EAAM,IAAI,qBAAmBH,EAAS,CAAC,EACvCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAML,CACR,CAAC,EAGKM,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,QAAQN,CAAiB,CAEjD,CAAC,KAED,MAAG,wCAAyC,IAAM,CAEhD,MAAMI,EAAM,IAAI,qBAAmBH,EAAS,CAAC,EACvCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,UACZ,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,KAC5C,0BAAuBA,CAAM,MAChC,UAAQA,EAAO,MAAc,SAAS,EAAE,KAAK,MAAM,CAEvD,CAAC,KAED,MAAG,mCAAoC,IAAM,CAE3C,MAAMF,EAAM,IAAI,qBAAmBH,EAAS,CAAC,EACvCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,UACZ,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,CAElD,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["import_device_management_kit", "import_vitest", "import_ParseStreamBlockCommand", "DUMMY_COMMAND", "PLACEHOLDER_BYTES", "makeArgs", "outputTrustedParam", "raw", "cmd", "response", "result"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var s=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var y=(o,r)=>{for(var t in r)s(o,t,{get:r[t],enumerable:!0})},g=(o,r,t,d)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of i(r))!c.call(o,a)&&a!==t&&s(o,a,{get:()=>r[a],enumerable:!(d=l(r,a))||d.enumerable});return o};var u=o=>g(s({},"__esModule",{value:!0}),o);var P={};y(P,{ParseBlockHeaderCommand:()=>C});module.exports=u(P);var e=require("@ledgerhq/device-management-kit"),m=require("@ledgerhq/signer-utils"),p=require("purify-ts"),n=require("./utils/ledgerKeyringProtocolErrors");class C{constructor(r){this.args=r}errorHelper=new m.CommandErrorHelper(n.LEDGER_SYNC_ERRORS,n.LedgerKeyringProtocolErrorFactory);getApdu(){const{header:r}=this.args;return new e.ApduBuilder({cla:224,ins:8,p1:0,p2:0}).addBufferToData(r).build()}parseResponse(r){return p.Maybe.fromNullable(this.errorHelper.getError(r)).orDefaultLazy(()=>{const t=new e.ApduParser(r),d=t.getUnparsedRemainingLength(),a=t.extractFieldByLength(d);return a?(0,e.CommandResultFactory)({data:a}):(0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("No data returned by parseBlockHeader")})})}}0&&(module.exports={ParseBlockHeaderCommand});
1
+ "use strict";var s=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var g=(o,r)=>{for(var d in r)s(o,d,{get:r[d],enumerable:!0})},u=(o,r,d,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of c(r))!i.call(o,a)&&a!==d&&s(o,a,{get:()=>r[a],enumerable:!(t=l(r,a))||t.enumerable});return o};var y=o=>u(s({},"__esModule",{value:!0}),o);var P={};g(P,{ParseBlockHeaderCommand:()=>C});module.exports=y(P);var e=require("@ledgerhq/device-management-kit"),m=require("@ledgerhq/signer-utils"),p=require("purify-ts"),n=require("./utils/ledgerKeyringProtocolErrors");class C{constructor(r){this.args=r}errorHelper=new m.CommandErrorHelper(n.LEDGER_SYNC_ERRORS,n.LedgerKeyringProtocolErrorFactory);getApdu(){const{header:r}=this.args;return new e.ApduBuilder({cla:224,ins:8,p1:0,p2:0}).addBufferToData(r).build()}parseResponse(r){return p.Maybe.fromNullable(this.errorHelper.getError(r)).orDefaultLazy(()=>{const d=new e.ApduParser(r),t=d.getUnparsedRemainingLength(),a=d.extractFieldByLength(t);return a?(0,e.CommandResultFactory)({data:a}):(0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("No data returned by parseBlockHeader")})})}}0&&(module.exports={ParseBlockHeaderCommand});
2
2
  //# sourceMappingURL=ParseStreamBlockHeader.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/ParseStreamBlockHeader.ts"],
4
- "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n LEDGER_SYNC_ERRORS,\n type LedgerKeyringProtocolErrorCodes,\n LedgerKeyringProtocolErrorFactory,\n} from \"./utils/ledgerKeyringProtocolErrors\";\n\nexport type ParseBlockHeaderCommandResponse = Uint8Array;\n\nexport type ParseBlockHeaderCommandArgs = {\n header: Uint8Array;\n};\n\nexport class ParseBlockHeaderCommand\n implements\n Command<\n ParseBlockHeaderCommandResponse,\n ParseBlockHeaderCommandArgs,\n LedgerKeyringProtocolErrorCodes\n >\n{\n private readonly errorHelper = new CommandErrorHelper<\n ParseBlockHeaderCommandResponse,\n LedgerKeyringProtocolErrorCodes\n >(LEDGER_SYNC_ERRORS, LedgerKeyringProtocolErrorFactory);\n\n constructor(private readonly args: ParseBlockHeaderCommandArgs) {}\n\n getApdu(): Apdu {\n const { header } = this.args;\n return (\n new ApduBuilder({ cla: 0xe0, ins: 0x08, p1: 0x00, p2: 0x00 })\n // raw block header\n .addBufferToData(header)\n .build()\n );\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<\n ParseBlockHeaderCommandResponse,\n LedgerKeyringProtocolErrorCodes\n > {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n const remaining = parser.getUnparsedRemainingLength();\n const payload = parser.extractFieldByLength(remaining);\n if (!payload) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"No data returned by parseBlockHeader\",\n ),\n });\n }\n return CommandResultFactory({ data: payload });\n });\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAEtBC,EAIO,+CAQA,MAAML,CAOb,CAME,YAA6BM,EAAmC,CAAnC,UAAAA,CAAoC,CALhD,YAAc,IAAI,qBAGjC,qBAAoB,mCAAiC,EAIvD,SAAgB,CACd,KAAM,CAAE,OAAAC,CAAO,EAAI,KAAK,KACxB,OACE,IAAI,cAAY,CAAE,IAAK,IAAM,IAAK,EAAM,GAAI,EAAM,GAAI,CAAK,CAAC,EAEzD,gBAAgBA,CAAM,EACtB,MAAM,CAEb,CAEA,cACEC,EAIA,CACA,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAI,aAAWD,CAAY,EACpCE,EAAYD,EAAO,2BAA2B,EAC9CE,EAAUF,EAAO,qBAAqBC,CAAS,EACrD,OAAKC,KAOE,wBAAqB,CAAE,KAAMA,CAAQ,CAAC,KANpC,wBAAqB,CAC1B,MAAO,IAAI,yBACT,sCACF,CACF,CAAC,CAGL,CAAC,CACH,CACF",
4
+ "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n type ParseBlockHeaderCommandArgs,\n type ParseBlockHeaderCommandResponse,\n} from \"@api/app-binder/ParseStreamBlockHeaderCommandTypes\";\n\nimport {\n LEDGER_SYNC_ERRORS,\n type LedgerKeyringProtocolErrorCodes,\n LedgerKeyringProtocolErrorFactory,\n} from \"./utils/ledgerKeyringProtocolErrors\";\n\nexport class ParseBlockHeaderCommand\n implements\n Command<\n ParseBlockHeaderCommandResponse,\n ParseBlockHeaderCommandArgs,\n LedgerKeyringProtocolErrorCodes\n >\n{\n private readonly errorHelper = new CommandErrorHelper<\n ParseBlockHeaderCommandResponse,\n LedgerKeyringProtocolErrorCodes\n >(LEDGER_SYNC_ERRORS, LedgerKeyringProtocolErrorFactory);\n\n constructor(private readonly args: ParseBlockHeaderCommandArgs) {}\n\n getApdu(): Apdu {\n const { header } = this.args;\n return (\n new ApduBuilder({ cla: 0xe0, ins: 0x08, p1: 0x00, p2: 0x00 })\n // raw block header\n .addBufferToData(header)\n .build()\n );\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<\n ParseBlockHeaderCommandResponse,\n LedgerKeyringProtocolErrorCodes\n > {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n const remaining = parser.getUnparsedRemainingLength();\n const payload = parser.extractFieldByLength(remaining);\n if (!payload) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"No data returned by parseBlockHeader\",\n ),\n });\n }\n return CommandResultFactory({ data: payload });\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAOtBC,EAIO,+CAEA,MAAML,CAOb,CAME,YAA6BM,EAAmC,CAAnC,UAAAA,CAAoC,CALhD,YAAc,IAAI,qBAGjC,qBAAoB,mCAAiC,EAIvD,SAAgB,CACd,KAAM,CAAE,OAAAC,CAAO,EAAI,KAAK,KACxB,OACE,IAAI,cAAY,CAAE,IAAK,IAAM,IAAK,EAAM,GAAI,EAAM,GAAI,CAAK,CAAC,EAEzD,gBAAgBA,CAAM,EACtB,MAAM,CAEb,CAEA,cACEC,EAIA,CACA,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAI,aAAWD,CAAY,EACpCE,EAAYD,EAAO,2BAA2B,EAC9CE,EAAUF,EAAO,qBAAqBC,CAAS,EACrD,OAAKC,KAOE,wBAAqB,CAAE,KAAMA,CAAQ,CAAC,KANpC,wBAAqB,CAC1B,MAAO,IAAI,yBACT,sCACF,CACF,CAAC,CAGL,CAAC,CACH,CACF",
6
6
  "names": ["ParseStreamBlockHeader_exports", "__export", "ParseBlockHeaderCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_ledgerKeyringProtocolErrors", "args", "header", "apduResponse", "parser", "remaining", "payload"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/ParseStreamBlockHeader.test.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n ApduResponse,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { describe, expect, it } from \"vitest\";\n\nimport {\n ParseBlockHeaderCommand,\n type ParseBlockHeaderCommandArgs,\n} from \"@internal/app-binder/command/ParseStreamBlockHeader\";\n\nconst HEADER_BYTES = Uint8Array.from([0xab, 0xad, 0xbe, 0xef]);\nconst TLV_PAYLOAD = Uint8Array.from([0xf0, 0xca, 0xcc, 0x1a]);\n\ndescribe(\"ParseBlockHeaderCommand\", () => {\n describe(\"getApdu()\", () => {\n it(\"should build the correct APDU for a given header\", () => {\n // given\n const args: ParseBlockHeaderCommandArgs = { header: HEADER_BYTES };\n const cmd = new ParseBlockHeaderCommand(args);\n\n // when\n const apdu = cmd.getApdu();\n const expected = Uint8Array.from([\n 0xe0,\n 0x08,\n 0x00,\n 0x00,\n HEADER_BYTES.length,\n ...HEADER_BYTES,\n ]);\n\n // then\n expect(apdu.getRawApdu()).toEqual(expected);\n });\n });\n\n describe(\"parseResponse()\", () => {\n it(\"should return the raw TLV payload on success\", () => {\n // given\n const args: ParseBlockHeaderCommandArgs = { header: HEADER_BYTES };\n const cmd = new ParseBlockHeaderCommand(args);\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: TLV_PAYLOAD,\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toEqual(TLV_PAYLOAD);\n }\n });\n\n it(\"should map SW errors to CommandResult errors\", () => {\n // given\n const args: ParseBlockHeaderCommandArgs = { header: HEADER_BYTES };\n const cmd = new ParseBlockHeaderCommand(args);\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6a, 0x86]),\n data: new Uint8Array(),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect((result.error as any).errorCode).toBe(\"6a86\");\n }\n });\n\n it(\"should handle empty-data payload correctly\", () => {\n // given\n const args: ParseBlockHeaderCommandArgs = { header: HEADER_BYTES };\n const cmd = new ParseBlockHeaderCommand(args);\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array([]),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toEqual(new Uint8Array([]));\n }\n });\n });\n});\n"],
5
- "mappings": "aAEA,IAAAA,EAGO,2CACPC,EAAqC,kBAErCC,EAGO,+DAEP,MAAMC,EAAe,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,GAAI,CAAC,EACvDC,EAAc,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,KAE5D,YAAS,0BAA2B,IAAM,IACxC,YAAS,YAAa,IAAM,IAC1B,MAAG,mDAAoD,IAAM,CAE3D,MAAMC,EAAoC,CAAE,OAAQF,CAAa,EAI3DG,EAHM,IAAI,0BAAwBD,CAAI,EAG3B,QAAQ,EACnBE,EAAW,WAAW,KAAK,CAC/B,IACA,EACA,EACA,EACAJ,EAAa,OACb,GAAGA,CACL,CAAC,KAGD,UAAOG,EAAK,WAAW,CAAC,EAAE,QAAQC,CAAQ,CAC5C,CAAC,CACH,CAAC,KAED,YAAS,kBAAmB,IAAM,IAChC,MAAG,+CAAgD,IAAM,CAEvD,MAAMF,EAAoC,CAAE,OAAQF,CAAa,EAC3DK,EAAM,IAAI,0BAAwBH,CAAI,EACtCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAML,CACR,CAAC,EAGKM,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,QAAQN,CAAW,CAE3C,CAAC,KAED,MAAG,+CAAgD,IAAM,CAEvD,MAAMC,EAAoC,CAAE,OAAQF,CAAa,EAC3DK,EAAM,IAAI,0BAAwBH,CAAI,EACtCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,UACZ,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,KAC5C,0BAAuBA,CAAM,MAChC,UAAQA,EAAO,MAAc,SAAS,EAAE,KAAK,MAAM,CAEvD,CAAC,KAED,MAAG,6CAA8C,IAAM,CAErD,MAAML,EAAoC,CAAE,OAAQF,CAAa,EAC3DK,EAAM,IAAI,0BAAwBH,CAAI,EACtCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,CAElD,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n ApduResponse,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { describe, expect, it } from \"vitest\";\n\nimport { type ParseBlockHeaderCommandArgs } from \"@api/app-binder/ParseStreamBlockHeaderCommandTypes\";\nimport { ParseBlockHeaderCommand } from \"@internal/app-binder/command/ParseStreamBlockHeader\";\n\nconst HEADER_BYTES = Uint8Array.from([0xab, 0xad, 0xbe, 0xef]);\nconst TLV_PAYLOAD = Uint8Array.from([0xf0, 0xca, 0xcc, 0x1a]);\n\ndescribe(\"ParseBlockHeaderCommand\", () => {\n describe(\"getApdu()\", () => {\n it(\"should build the correct APDU for a given header\", () => {\n // given\n const args: ParseBlockHeaderCommandArgs = { header: HEADER_BYTES };\n const cmd = new ParseBlockHeaderCommand(args);\n\n // when\n const apdu = cmd.getApdu();\n const expected = Uint8Array.from([\n 0xe0,\n 0x08,\n 0x00,\n 0x00,\n HEADER_BYTES.length,\n ...HEADER_BYTES,\n ]);\n\n // then\n expect(apdu.getRawApdu()).toEqual(expected);\n });\n });\n\n describe(\"parseResponse()\", () => {\n it(\"should return the raw TLV payload on success\", () => {\n // given\n const args: ParseBlockHeaderCommandArgs = { header: HEADER_BYTES };\n const cmd = new ParseBlockHeaderCommand(args);\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: TLV_PAYLOAD,\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toEqual(TLV_PAYLOAD);\n }\n });\n\n it(\"should map SW errors to CommandResult errors\", () => {\n // given\n const args: ParseBlockHeaderCommandArgs = { header: HEADER_BYTES };\n const cmd = new ParseBlockHeaderCommand(args);\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6a, 0x86]),\n data: new Uint8Array(),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect((result.error as any).errorCode).toBe(\"6a86\");\n }\n });\n\n it(\"should handle empty-data payload correctly\", () => {\n // given\n const args: ParseBlockHeaderCommandArgs = { header: HEADER_BYTES };\n const cmd = new ParseBlockHeaderCommand(args);\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array([]),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toEqual(new Uint8Array([]));\n }\n });\n });\n});\n"],
5
+ "mappings": "aAEA,IAAAA,EAGO,2CACPC,EAAqC,kBAGrCC,EAAwC,+DAExC,MAAMC,EAAe,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,GAAI,CAAC,EACvDC,EAAc,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,KAE5D,YAAS,0BAA2B,IAAM,IACxC,YAAS,YAAa,IAAM,IAC1B,MAAG,mDAAoD,IAAM,CAE3D,MAAMC,EAAoC,CAAE,OAAQF,CAAa,EAI3DG,EAHM,IAAI,0BAAwBD,CAAI,EAG3B,QAAQ,EACnBE,EAAW,WAAW,KAAK,CAC/B,IACA,EACA,EACA,EACAJ,EAAa,OACb,GAAGA,CACL,CAAC,KAGD,UAAOG,EAAK,WAAW,CAAC,EAAE,QAAQC,CAAQ,CAC5C,CAAC,CACH,CAAC,KAED,YAAS,kBAAmB,IAAM,IAChC,MAAG,+CAAgD,IAAM,CAEvD,MAAMF,EAAoC,CAAE,OAAQF,CAAa,EAC3DK,EAAM,IAAI,0BAAwBH,CAAI,EACtCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAML,CACR,CAAC,EAGKM,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,QAAQN,CAAW,CAE3C,CAAC,KAED,MAAG,+CAAgD,IAAM,CAEvD,MAAMC,EAAoC,CAAE,OAAQF,CAAa,EAC3DK,EAAM,IAAI,0BAAwBH,CAAI,EACtCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,UACZ,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,KAC5C,0BAAuBA,CAAM,MAChC,UAAQA,EAAO,MAAc,SAAS,EAAE,KAAK,MAAM,CAEvD,CAAC,KAED,MAAG,6CAA8C,IAAM,CAErD,MAAML,EAAoC,CAAE,OAAQF,CAAa,EAC3DK,EAAM,IAAI,0BAAwBH,CAAI,EACtCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,CAElD,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["import_device_management_kit", "import_vitest", "import_ParseStreamBlockHeader", "HEADER_BYTES", "TLV_PAYLOAD", "args", "apdu", "expected", "cmd", "response", "result"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var m=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var y=(o,e)=>{for(var t in e)m(o,t,{get:e[t],enumerable:!0})},C=(o,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let d of l(e))!g.call(o,d)&&d!==t&&m(o,d,{get:()=>e[d],enumerable:!(n=i(e,d))||n.enumerable});return o};var T=o=>C(m({},"__esModule",{value:!0}),o);var c={};y(c,{SetTrustedMemberCommand:()=>b});module.exports=T(c);var r=require("@ledgerhq/device-management-kit"),s=require("@ledgerhq/signer-utils"),p=require("purify-ts"),u=require("../../models/Tags"),a=require("./utils/ledgerKeyringProtocolErrors");class b{constructor(e){this.args=e}errorHelper=new s.CommandErrorHelper(a.LEDGER_SYNC_ERRORS,a.LedgerKeyringProtocolErrorFactory);getApdu(){const{iv:e,memberTlv:t}=this.args;return new r.ApduBuilder({cla:224,ins:9,p1:0,p2:0}).add8BitUIntToData(u.TPTags.IV).add8BitUIntToData(e.length).addBufferToData(e).addBufferToData(t).build()}parseResponse(e){return p.Maybe.fromNullable(this.errorHelper.getError(e)).orDefaultLazy(()=>new r.ApduParser(e).getUnparsedRemainingLength()!==0?(0,r.CommandResultFactory)({error:new r.InvalidStatusWordError("Unexpected response data for SetTrustedMemberCommand")}):(0,r.CommandResultFactory)({data:void 0}))}}0&&(module.exports={SetTrustedMemberCommand});
1
+ "use strict";var a=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var C=(o,e)=>{for(var t in e)a(o,t,{get:e[t],enumerable:!0})},y=(o,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let d of l(e))!g.call(o,d)&&d!==t&&a(o,d,{get:()=>e[d],enumerable:!(n=i(e,d))||n.enumerable});return o};var T=o=>y(a({},"__esModule",{value:!0}),o);var c={};C(c,{SetTrustedMemberCommand:()=>f});module.exports=T(c);var r=require("@ledgerhq/device-management-kit"),s=require("@ledgerhq/signer-utils"),p=require("purify-ts"),u=require("../../models/Tags"),m=require("./utils/ledgerKeyringProtocolErrors");class f{constructor(e){this.args=e}errorHelper=new s.CommandErrorHelper(m.LEDGER_SYNC_ERRORS,m.LedgerKeyringProtocolErrorFactory);getApdu(){const{iv:e,memberTlv:t}=this.args;return new r.ApduBuilder({cla:224,ins:9,p1:0,p2:0}).add8BitUIntToData(u.TPTags.IV).add8BitUIntToData(e.length).addBufferToData(e).addBufferToData(t).build()}parseResponse(e){return p.Maybe.fromNullable(this.errorHelper.getError(e)).orDefaultLazy(()=>new r.ApduParser(e).getUnparsedRemainingLength()!==0?(0,r.CommandResultFactory)({error:new r.InvalidStatusWordError("Unexpected response data for SetTrustedMemberCommand")}):(0,r.CommandResultFactory)({data:void 0}))}}0&&(module.exports={SetTrustedMemberCommand});
2
2
  //# sourceMappingURL=SetTrustedMemberCommand.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/SetTrustedMemberCommand.ts"],
4
- "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport { TPTags } from \"@internal/models/Tags\";\n\nimport {\n LEDGER_SYNC_ERRORS,\n type LedgerKeyringProtocolErrorCodes,\n LedgerKeyringProtocolErrorFactory,\n} from \"./utils/ledgerKeyringProtocolErrors\";\n\nexport type SetTrustedMemberCommandResponse = void;\n\nexport type SetTrustedMemberCommandArgs = {\n readonly iv: Uint8Array;\n readonly memberTlv: Uint8Array;\n};\n\nexport class SetTrustedMemberCommand\n implements\n Command<\n SetTrustedMemberCommandResponse,\n SetTrustedMemberCommandArgs,\n LedgerKeyringProtocolErrorCodes\n >\n{\n private readonly errorHelper = new CommandErrorHelper<\n SetTrustedMemberCommandResponse,\n LedgerKeyringProtocolErrorCodes\n >(LEDGER_SYNC_ERRORS, LedgerKeyringProtocolErrorFactory);\n\n constructor(private readonly args: SetTrustedMemberCommandArgs) {}\n\n getApdu(): Apdu {\n const { iv, memberTlv } = this.args;\n return (\n new ApduBuilder({ cla: 0xe0, ins: 0x09, p1: 0x00, p2: 0x00 })\n // tag for IV\n .add8BitUIntToData(TPTags.IV)\n // IV length\n .add8BitUIntToData(iv.length)\n // IV bytes\n .addBufferToData(iv)\n // TrustedMember bytes\n .addBufferToData(memberTlv)\n .build()\n );\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<\n SetTrustedMemberCommandResponse,\n LedgerKeyringProtocolErrorCodes\n > {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n if (parser.getUnparsedRemainingLength() !== 0) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"Unexpected response data for SetTrustedMemberCommand\",\n ),\n });\n }\n return CommandResultFactory({ data: undefined });\n });\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAEtBC,EAAuB,iCAEvBC,EAIO,+CASA,MAAMN,CAOb,CAME,YAA6BO,EAAmC,CAAnC,UAAAA,CAAoC,CALhD,YAAc,IAAI,qBAGjC,qBAAoB,mCAAiC,EAIvD,SAAgB,CACd,KAAM,CAAE,GAAAC,EAAI,UAAAC,CAAU,EAAI,KAAK,KAC/B,OACE,IAAI,cAAY,CAAE,IAAK,IAAM,IAAK,EAAM,GAAI,EAAM,GAAI,CAAK,CAAC,EAEzD,kBAAkB,SAAO,EAAE,EAE3B,kBAAkBD,EAAG,MAAM,EAE3B,gBAAgBA,CAAE,EAElB,gBAAgBC,CAAS,EACzB,MAAM,CAEb,CAEA,cACEC,EAIA,CACA,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IACC,IAAI,aAAWA,CAAY,EAC/B,2BAA2B,IAAM,KACnC,wBAAqB,CAC1B,MAAO,IAAI,yBACT,sDACF,CACF,CAAC,KAEI,wBAAqB,CAAE,KAAM,MAAU,CAAC,CAChD,CACH,CACF",
4
+ "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n type SetTrustedMemberCommandArgs,\n type SetTrustedMemberCommandResponse,\n} from \"@api/app-binder/SetTrustedMemberTypes\";\nimport { TPTags } from \"@internal/models/Tags\";\n\nimport {\n LEDGER_SYNC_ERRORS,\n type LedgerKeyringProtocolErrorCodes,\n LedgerKeyringProtocolErrorFactory,\n} from \"./utils/ledgerKeyringProtocolErrors\";\n\nexport class SetTrustedMemberCommand\n implements\n Command<\n SetTrustedMemberCommandResponse,\n SetTrustedMemberCommandArgs,\n LedgerKeyringProtocolErrorCodes\n >\n{\n private readonly errorHelper = new CommandErrorHelper<\n SetTrustedMemberCommandResponse,\n LedgerKeyringProtocolErrorCodes\n >(LEDGER_SYNC_ERRORS, LedgerKeyringProtocolErrorFactory);\n\n constructor(private readonly args: SetTrustedMemberCommandArgs) {}\n\n getApdu(): Apdu {\n const { iv, memberTlv } = this.args;\n return (\n new ApduBuilder({ cla: 0xe0, ins: 0x09, p1: 0x00, p2: 0x00 })\n // tag for IV\n .add8BitUIntToData(TPTags.IV)\n // IV length\n .add8BitUIntToData(iv.length)\n // IV bytes\n .addBufferToData(iv)\n // TrustedMember bytes\n .addBufferToData(memberTlv)\n .build()\n );\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<\n SetTrustedMemberCommandResponse,\n LedgerKeyringProtocolErrorCodes\n > {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n if (parser.getUnparsedRemainingLength() !== 0) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"Unexpected response data for SetTrustedMemberCommand\",\n ),\n });\n }\n return CommandResultFactory({ data: undefined });\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAMtBC,EAAuB,iCAEvBC,EAIO,+CAEA,MAAMN,CAOb,CAME,YAA6BO,EAAmC,CAAnC,UAAAA,CAAoC,CALhD,YAAc,IAAI,qBAGjC,qBAAoB,mCAAiC,EAIvD,SAAgB,CACd,KAAM,CAAE,GAAAC,EAAI,UAAAC,CAAU,EAAI,KAAK,KAC/B,OACE,IAAI,cAAY,CAAE,IAAK,IAAM,IAAK,EAAM,GAAI,EAAM,GAAI,CAAK,CAAC,EAEzD,kBAAkB,SAAO,EAAE,EAE3B,kBAAkBD,EAAG,MAAM,EAE3B,gBAAgBA,CAAE,EAElB,gBAAgBC,CAAS,EACzB,MAAM,CAEb,CAEA,cACEC,EAIA,CACA,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IACC,IAAI,aAAWA,CAAY,EAC/B,2BAA2B,IAAM,KACnC,wBAAqB,CAC1B,MAAO,IAAI,yBACT,sDACF,CACF,CAAC,KAEI,wBAAqB,CAAE,KAAM,MAAU,CAAC,CAChD,CACH,CACF",
6
6
  "names": ["SetTrustedMemberCommand_exports", "__export", "SetTrustedMemberCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_Tags", "import_ledgerKeyringProtocolErrors", "args", "iv", "memberTlv", "apduResponse"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/SetTrustedMemberCommand.test.ts"],
4
- "sourcesContent": ["import {\n ApduResponse,\n InvalidStatusWordError,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { describe, expect, it } from \"vitest\";\n\nimport {\n SetTrustedMemberCommand,\n type SetTrustedMemberCommandArgs,\n} from \"./SetTrustedMemberCommand\";\n\nconst PLACEHOLDER_BYTES = Uint8Array.from([0xf0, 0xca, 0xcc, 0x1a]);\n\ndescribe(\"SetTrustedMemberCommand\", () => {\n const makeArgs = (): SetTrustedMemberCommandArgs => ({\n iv: PLACEHOLDER_BYTES,\n memberTlv: PLACEHOLDER_BYTES,\n });\n\n describe(\"getApdu()\", () => {\n it(\"builds correct APDU\", () => {\n // given\n const cmd = new SetTrustedMemberCommand(makeArgs());\n\n // when\n const apdu = cmd.getApdu();\n const expected = Uint8Array.from(\n [\n [0xe0, 0x09, 0x00, 0x00, 0x0a], // CLA, INS, P1, P2, Lc\n [0x00, 0x04, 0xf0, 0xca, 0xcc, 0x1a], // IV\n [0xf0, 0xca, 0xcc, 0x1a], // Member\n ].flat(),\n );\n\n // then\n expect(apdu.getRawApdu()).toEqual(expected);\n });\n });\n\n describe(\"parseResponse()\", () => {\n it(\"returns success when no data and SW=0x9000\", () => {\n // given\n const cmd = new SetTrustedMemberCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array([]),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toEqual(undefined);\n }\n });\n\n it(\"returns error on unexpected trailing data\", () => {\n // given\n const cmd = new SetTrustedMemberCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: Uint8Array.from([0x01, 0x02]),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect(result.error).toBeInstanceOf(InvalidStatusWordError);\n expect((result.error.originalError as Error)?.message).toMatch(\n \"Unexpected response data\",\n );\n }\n });\n\n it(\"maps SW errors to CommandResult error\", () => {\n // given\n const cmd = new SetTrustedMemberCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6a, 0x86]),\n data: new Uint8Array([]),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n if (\"errorCode\" in result.error) {\n expect(result.error.errorCode).toEqual(\"6a86\");\n } else {\n throw new Error(\n \"Unexpected error type: errorCode property is missing\",\n );\n }\n }\n });\n });\n});\n"],
5
- "mappings": "aAAA,IAAAA,EAIO,2CACPC,EAAqC,kBAErCC,EAGO,qCAEP,MAAMC,EAAoB,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,KAElE,YAAS,0BAA2B,IAAM,CACxC,MAAMC,EAAW,KAAoC,CACnD,GAAID,EACJ,UAAWA,CACb,MAEA,YAAS,YAAa,IAAM,IAC1B,MAAG,sBAAuB,IAAM,CAK9B,MAAME,EAHM,IAAI,0BAAwBD,EAAS,CAAC,EAGjC,QAAQ,EACnBE,EAAW,WAAW,KAC1B,CACE,CAAC,IAAM,EAAM,EAAM,EAAM,EAAI,EAC7B,CAAC,EAAM,EAAM,IAAM,IAAM,IAAM,EAAI,EACnC,CAAC,IAAM,IAAM,IAAM,EAAI,CACzB,EAAE,KAAK,CACT,KAGA,UAAOD,EAAK,WAAW,CAAC,EAAE,QAAQC,CAAQ,CAC5C,CAAC,CACH,CAAC,KAED,YAAS,kBAAmB,IAAM,IAChC,MAAG,6CAA8C,IAAM,CAErD,MAAMC,EAAM,IAAI,0BAAwBH,EAAS,CAAC,EAC5CI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,QAAQ,MAAS,CAEzC,CAAC,KAED,MAAG,4CAA6C,IAAM,CAEpD,MAAMF,EAAM,IAAI,0BAAwBH,EAAS,CAAC,EAC5CI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,WAAW,KAAK,CAAC,EAAM,CAAI,CAAC,CACpC,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,KAC5C,0BAAuBA,CAAM,OAChC,UAAOA,EAAO,KAAK,EAAE,eAAe,wBAAsB,KAC1D,UAAQA,EAAO,MAAM,eAAyB,OAAO,EAAE,QACrD,0BACF,EAEJ,CAAC,KAED,MAAG,wCAAyC,IAAM,CAEhD,MAAMF,EAAM,IAAI,0BAAwBH,EAAS,CAAC,EAC5CI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,EAIzC,MADA,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,EAC7C,IAAC,0BAAuBA,CAAM,EAChC,GAAI,cAAeA,EAAO,SACxB,UAAOA,EAAO,MAAM,SAAS,EAAE,QAAQ,MAAM,MAE7C,OAAM,IAAI,MACR,sDACF,CAGN,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import {\n ApduResponse,\n InvalidStatusWordError,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { describe, expect, it } from \"vitest\";\n\nimport type { SetTrustedMemberCommandArgs } from \"@api/app-binder/SetTrustedMemberTypes\";\n\nimport { SetTrustedMemberCommand } from \"./SetTrustedMemberCommand\";\n\nconst PLACEHOLDER_BYTES = Uint8Array.from([0xf0, 0xca, 0xcc, 0x1a]);\n\ndescribe(\"SetTrustedMemberCommand\", () => {\n const makeArgs = (): SetTrustedMemberCommandArgs => ({\n iv: PLACEHOLDER_BYTES,\n memberTlv: PLACEHOLDER_BYTES,\n });\n\n describe(\"getApdu()\", () => {\n it(\"builds correct APDU\", () => {\n // given\n const cmd = new SetTrustedMemberCommand(makeArgs());\n\n // when\n const apdu = cmd.getApdu();\n const expected = Uint8Array.from(\n [\n [0xe0, 0x09, 0x00, 0x00, 0x0a], // CLA, INS, P1, P2, Lc\n [0x00, 0x04, 0xf0, 0xca, 0xcc, 0x1a], // IV\n [0xf0, 0xca, 0xcc, 0x1a], // Member\n ].flat(),\n );\n\n // then\n expect(apdu.getRawApdu()).toEqual(expected);\n });\n });\n\n describe(\"parseResponse()\", () => {\n it(\"returns success when no data and SW=0x9000\", () => {\n // given\n const cmd = new SetTrustedMemberCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array([]),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toEqual(undefined);\n }\n });\n\n it(\"returns error on unexpected trailing data\", () => {\n // given\n const cmd = new SetTrustedMemberCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: Uint8Array.from([0x01, 0x02]),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect(result.error).toBeInstanceOf(InvalidStatusWordError);\n expect((result.error.originalError as Error)?.message).toMatch(\n \"Unexpected response data\",\n );\n }\n });\n\n it(\"maps SW errors to CommandResult error\", () => {\n // given\n const cmd = new SetTrustedMemberCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6a, 0x86]),\n data: new Uint8Array([]),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n if (\"errorCode\" in result.error) {\n expect(result.error.errorCode).toEqual(\"6a86\");\n } else {\n throw new Error(\n \"Unexpected error type: errorCode property is missing\",\n );\n }\n }\n });\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAIO,2CACPC,EAAqC,kBAIrCC,EAAwC,qCAExC,MAAMC,EAAoB,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,KAElE,YAAS,0BAA2B,IAAM,CACxC,MAAMC,EAAW,KAAoC,CACnD,GAAID,EACJ,UAAWA,CACb,MAEA,YAAS,YAAa,IAAM,IAC1B,MAAG,sBAAuB,IAAM,CAK9B,MAAME,EAHM,IAAI,0BAAwBD,EAAS,CAAC,EAGjC,QAAQ,EACnBE,EAAW,WAAW,KAC1B,CACE,CAAC,IAAM,EAAM,EAAM,EAAM,EAAI,EAC7B,CAAC,EAAM,EAAM,IAAM,IAAM,IAAM,EAAI,EACnC,CAAC,IAAM,IAAM,IAAM,EAAI,CACzB,EAAE,KAAK,CACT,KAGA,UAAOD,EAAK,WAAW,CAAC,EAAE,QAAQC,CAAQ,CAC5C,CAAC,CACH,CAAC,KAED,YAAS,kBAAmB,IAAM,IAChC,MAAG,6CAA8C,IAAM,CAErD,MAAMC,EAAM,IAAI,0BAAwBH,EAAS,CAAC,EAC5CI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,QAAQ,MAAS,CAEzC,CAAC,KAED,MAAG,4CAA6C,IAAM,CAEpD,MAAMF,EAAM,IAAI,0BAAwBH,EAAS,CAAC,EAC5CI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,WAAW,KAAK,CAAC,EAAM,CAAI,CAAC,CACpC,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,KAC5C,0BAAuBA,CAAM,OAChC,UAAOA,EAAO,KAAK,EAAE,eAAe,wBAAsB,KAC1D,UAAQA,EAAO,MAAM,eAAyB,OAAO,EAAE,QACrD,0BACF,EAEJ,CAAC,KAED,MAAG,wCAAyC,IAAM,CAEhD,MAAMF,EAAM,IAAI,0BAAwBH,EAAS,CAAC,EAC5CI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,EAIzC,MADA,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,EAC7C,IAAC,0BAAuBA,CAAM,EAChC,GAAI,cAAeA,EAAO,SACxB,UAAOA,EAAO,MAAM,SAAS,EAAE,QAAQ,MAAM,MAE7C,OAAM,IAAI,MACR,sDACF,CAGN,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["import_device_management_kit", "import_vitest", "import_SetTrustedMemberCommand", "PLACEHOLDER_BYTES", "makeArgs", "apdu", "expected", "cmd", "response", "result"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var s=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var C=(n,r)=>{for(var e in r)s(n,e,{get:r[e],enumerable:!0})},f=(n,r,e,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of u(r))!y.call(n,a)&&a!==e&&s(n,a,{get:()=>r[a],enumerable:!(t=c(r,a))||t.enumerable});return n};var A=n=>f(s({},"__esModule",{value:!0}),n);var E={};C(E,{ISSUER_PLACEHOLDER_TLV:()=>g,SignBlockHeaderCommand:()=>R});module.exports=A(E);var o=require("@ledgerhq/device-management-kit"),p=require("@ledgerhq/signer-utils"),l=require("purify-ts"),d=require("../../models/Tags"),m=require("./utils/ledgerKeyringProtocolErrors");const i=[3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],g=Uint8Array.from([d.GeneralTags.PublicKey,i.length,...i]);class R{constructor(r){this.args=r}errorHelper=new p.CommandErrorHelper(m.LEDGER_SYNC_ERRORS,m.LedgerKeyringProtocolErrorFactory);getApdu(){const{parent:r,commandCount:e}=this.args,t=Uint8Array.from([d.GeneralTags.Hash,r.length,...r]);return new o.ApduBuilder({cla:224,ins:7,p1:0,p2:0}).addBufferToData(Uint8Array.from([d.GeneralTags.Int,1,1])).addBufferToData(Uint8Array.from(t)).addBufferToData(g).addBufferToData(Uint8Array.from([d.GeneralTags.Int,1,e])).build()}parseResponse(r){return l.Maybe.fromNullable(this.errorHelper.getError(r)).orDefaultLazy(()=>{const e=new o.ApduParser(r),t=e.getUnparsedRemainingLength(),a=e.extractFieldByLength(t);return a?(0,o.CommandResultFactory)({data:a}):(0,o.CommandResultFactory)({error:new o.InvalidStatusWordError("No data returned by SignBlockHeaderCommand")})})}}0&&(module.exports={ISSUER_PLACEHOLDER_TLV,SignBlockHeaderCommand});
1
+ "use strict";var s=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var C=(n,r)=>{for(var e in r)s(n,e,{get:r[e],enumerable:!0})},f=(n,r,e,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of y(r))!u.call(n,a)&&a!==e&&s(n,a,{get:()=>r[a],enumerable:!(t=c(r,a))||t.enumerable});return n};var R=n=>f(s({},"__esModule",{value:!0}),n);var E={};C(E,{ISSUER_PLACEHOLDER_TLV:()=>g,SignBlockHeaderCommand:()=>A});module.exports=R(E);var o=require("@ledgerhq/device-management-kit"),p=require("@ledgerhq/signer-utils"),l=require("purify-ts"),d=require("../../models/Tags"),m=require("./utils/ledgerKeyringProtocolErrors");const i=[3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],g=Uint8Array.from([d.GeneralTags.PublicKey,i.length,...i]);class A{constructor(r){this.args=r}errorHelper=new p.CommandErrorHelper(m.LEDGER_SYNC_ERRORS,m.LedgerKeyringProtocolErrorFactory);getApdu(){const{parent:r,commandCount:e}=this.args,t=Uint8Array.from([d.GeneralTags.Hash,r.length,...r]);return new o.ApduBuilder({cla:224,ins:7,p1:0,p2:0}).addBufferToData(Uint8Array.from([d.GeneralTags.Int,1,1])).addBufferToData(Uint8Array.from(t)).addBufferToData(g).addBufferToData(Uint8Array.from([d.GeneralTags.Int,1,e])).build()}parseResponse(r){return l.Maybe.fromNullable(this.errorHelper.getError(r)).orDefaultLazy(()=>{const e=new o.ApduParser(r),t=e.getUnparsedRemainingLength(),a=e.extractFieldByLength(t);return a?(0,o.CommandResultFactory)({data:a}):(0,o.CommandResultFactory)({error:new o.InvalidStatusWordError("No data returned by SignBlockHeaderCommand")})})}}0&&(module.exports={ISSUER_PLACEHOLDER_TLV,SignBlockHeaderCommand});
2
2
  //# sourceMappingURL=SignBlockHeader.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/SignBlockHeader.ts"],
4
- "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport { GeneralTags } from \"@internal/models/Tags\";\n\nimport {\n LEDGER_SYNC_ERRORS,\n type LedgerKeyringProtocolErrorCodes,\n LedgerKeyringProtocolErrorFactory,\n} from \"./utils/ledgerKeyringProtocolErrors\";\n\nexport interface SignBlockHeaderCommandArgs {\n parent: Uint8Array;\n commandCount: number;\n}\n\nexport type SignBlockHeaderCommandResponse = Uint8Array;\n\nconst ISSUER_PLACEHOLDER = [\n 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0,\n];\nexport const ISSUER_PLACEHOLDER_TLV = Uint8Array.from([\n GeneralTags.PublicKey,\n ISSUER_PLACEHOLDER.length,\n ...ISSUER_PLACEHOLDER,\n]);\n\nexport class SignBlockHeaderCommand\n implements\n Command<\n SignBlockHeaderCommandResponse,\n SignBlockHeaderCommandArgs,\n LedgerKeyringProtocolErrorCodes\n >\n{\n private readonly errorHelper = new CommandErrorHelper<\n SignBlockHeaderCommandResponse,\n LedgerKeyringProtocolErrorCodes\n >(LEDGER_SYNC_ERRORS, LedgerKeyringProtocolErrorFactory);\n\n constructor(private readonly args: SignBlockHeaderCommandArgs) {}\n\n getApdu(): Apdu {\n const { parent, commandCount } = this.args;\n const parentTlv = Uint8Array.from([\n GeneralTags.Hash,\n parent.length,\n ...parent,\n ]);\n\n return new ApduBuilder({\n cla: 0xe0,\n ins: 0x07,\n p1: 0x00,\n p2: 0x00,\n })\n .addBufferToData(Uint8Array.from([GeneralTags.Int, 1, 1])) // Version 1\n .addBufferToData(Uint8Array.from(parentTlv)) // Parent block hash\n .addBufferToData(ISSUER_PLACEHOLDER_TLV) // Placeholder for issuer public key (will be replaced by the device)\n .addBufferToData(Uint8Array.from([GeneralTags.Int, 1, commandCount])) // Command count\n .build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<\n SignBlockHeaderCommandResponse,\n LedgerKeyringProtocolErrorCodes\n > {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n const remaining = parser.getUnparsedRemainingLength();\n const payload = parser.extractFieldByLength(remaining);\n if (!payload) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"No data returned by SignBlockHeaderCommand\",\n ),\n });\n }\n return CommandResultFactory({ data: payload });\n });\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,4BAAAE,EAAA,2BAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAEtBC,EAA4B,iCAE5BC,EAIO,+CASP,MAAMC,EAAqB,CACzB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC3E,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CACpB,EACaR,EAAyB,WAAW,KAAK,CACpD,cAAY,UACZQ,EAAmB,OACnB,GAAGA,CACL,CAAC,EAEM,MAAMP,CAOb,CAME,YAA6BQ,EAAkC,CAAlC,UAAAA,CAAmC,CAL/C,YAAc,IAAI,qBAGjC,qBAAoB,mCAAiC,EAIvD,SAAgB,CACd,KAAM,CAAE,OAAAC,EAAQ,aAAAC,CAAa,EAAI,KAAK,KAChCC,EAAY,WAAW,KAAK,CAChC,cAAY,KACZF,EAAO,OACP,GAAGA,CACL,CAAC,EAED,OAAO,IAAI,cAAY,CACrB,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,CAAC,EACE,gBAAgB,WAAW,KAAK,CAAC,cAAY,IAAK,EAAG,CAAC,CAAC,CAAC,EACxD,gBAAgB,WAAW,KAAKE,CAAS,CAAC,EAC1C,gBAAgBZ,CAAsB,EACtC,gBAAgB,WAAW,KAAK,CAAC,cAAY,IAAK,EAAGW,CAAY,CAAC,CAAC,EACnE,MAAM,CACX,CAEA,cACEE,EAIA,CACA,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAI,aAAWD,CAAY,EACpCE,EAAYD,EAAO,2BAA2B,EAC9CE,EAAUF,EAAO,qBAAqBC,CAAS,EACrD,OAAKC,KAOE,wBAAqB,CAAE,KAAMA,CAAQ,CAAC,KANpC,wBAAqB,CAC1B,MAAO,IAAI,yBACT,4CACF,CACF,CAAC,CAGL,CAAC,CACH,CACF",
4
+ "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n type SignBlockHeaderCommandArgs,\n type SignBlockHeaderCommandResponse,\n} from \"@api/app-binder/SignBlockHeaderCommandTypes\";\nimport { GeneralTags } from \"@internal/models/Tags\";\n\nimport {\n LEDGER_SYNC_ERRORS,\n type LedgerKeyringProtocolErrorCodes,\n LedgerKeyringProtocolErrorFactory,\n} from \"./utils/ledgerKeyringProtocolErrors\";\n\nconst ISSUER_PLACEHOLDER = [\n 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0,\n];\nexport const ISSUER_PLACEHOLDER_TLV = Uint8Array.from([\n GeneralTags.PublicKey,\n ISSUER_PLACEHOLDER.length,\n ...ISSUER_PLACEHOLDER,\n]);\n\nexport class SignBlockHeaderCommand\n implements\n Command<\n SignBlockHeaderCommandResponse,\n SignBlockHeaderCommandArgs,\n LedgerKeyringProtocolErrorCodes\n >\n{\n private readonly errorHelper = new CommandErrorHelper<\n SignBlockHeaderCommandResponse,\n LedgerKeyringProtocolErrorCodes\n >(LEDGER_SYNC_ERRORS, LedgerKeyringProtocolErrorFactory);\n\n constructor(private readonly args: SignBlockHeaderCommandArgs) {}\n\n getApdu(): Apdu {\n const { parent, commandCount } = this.args;\n const parentTlv = Uint8Array.from([\n GeneralTags.Hash,\n parent.length,\n ...parent,\n ]);\n\n return new ApduBuilder({\n cla: 0xe0,\n ins: 0x07,\n p1: 0x00,\n p2: 0x00,\n })\n .addBufferToData(Uint8Array.from([GeneralTags.Int, 1, 1])) // Version 1\n .addBufferToData(Uint8Array.from(parentTlv)) // Parent block hash\n .addBufferToData(ISSUER_PLACEHOLDER_TLV) // Placeholder for issuer public key (will be replaced by the device)\n .addBufferToData(Uint8Array.from([GeneralTags.Int, 1, commandCount])) // Command count\n .build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<\n SignBlockHeaderCommandResponse,\n LedgerKeyringProtocolErrorCodes\n > {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n const remaining = parser.getUnparsedRemainingLength();\n const payload = parser.extractFieldByLength(remaining);\n if (!payload) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"No data returned by SignBlockHeaderCommand\",\n ),\n });\n }\n return CommandResultFactory({ data: payload });\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,4BAAAE,EAAA,2BAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAMtBC,EAA4B,iCAE5BC,EAIO,+CAEP,MAAMC,EAAqB,CACzB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC3E,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CACpB,EACaR,EAAyB,WAAW,KAAK,CACpD,cAAY,UACZQ,EAAmB,OACnB,GAAGA,CACL,CAAC,EAEM,MAAMP,CAOb,CAME,YAA6BQ,EAAkC,CAAlC,UAAAA,CAAmC,CAL/C,YAAc,IAAI,qBAGjC,qBAAoB,mCAAiC,EAIvD,SAAgB,CACd,KAAM,CAAE,OAAAC,EAAQ,aAAAC,CAAa,EAAI,KAAK,KAChCC,EAAY,WAAW,KAAK,CAChC,cAAY,KACZF,EAAO,OACP,GAAGA,CACL,CAAC,EAED,OAAO,IAAI,cAAY,CACrB,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,CAAC,EACE,gBAAgB,WAAW,KAAK,CAAC,cAAY,IAAK,EAAG,CAAC,CAAC,CAAC,EACxD,gBAAgB,WAAW,KAAKE,CAAS,CAAC,EAC1C,gBAAgBZ,CAAsB,EACtC,gBAAgB,WAAW,KAAK,CAAC,cAAY,IAAK,EAAGW,CAAY,CAAC,CAAC,EACnE,MAAM,CACX,CAEA,cACEE,EAIA,CACA,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAI,aAAWD,CAAY,EACpCE,EAAYD,EAAO,2BAA2B,EAC9CE,EAAUF,EAAO,qBAAqBC,CAAS,EACrD,OAAKC,KAOE,wBAAqB,CAAE,KAAMA,CAAQ,CAAC,KANpC,wBAAqB,CAC1B,MAAO,IAAI,yBACT,4CACF,CACF,CAAC,CAGL,CAAC,CACH,CACF",
6
6
  "names": ["SignBlockHeader_exports", "__export", "ISSUER_PLACEHOLDER_TLV", "SignBlockHeaderCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_Tags", "import_ledgerKeyringProtocolErrors", "ISSUER_PLACEHOLDER", "args", "parent", "commandCount", "parentTlv", "apduResponse", "parser", "remaining", "payload"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var n=require("@ledgerhq/device-management-kit"),o=require("vitest"),m=require("../../models/Tags"),a=require("./SignBlockHeader");const c=3,d=Uint8Array.from([240,202,204,26]),p=Uint8Array.from([m.GeneralTags.Int,1,1,m.GeneralTags.Hash,4,...d,...a.ISSUER_PLACEHOLDER_TLV,m.GeneralTags.Int,1,c]),i=Uint8Array.from([240,202,204,26]),l=Uint8Array.from([0,i.length,...i]),g=Uint8Array.from([129,i.length,...i]),u=new Uint8Array([...l,...g]);(0,o.describe)("SignBlockHeaderCommand",()=>{(0,o.describe)("getApdu()",()=>{(0,o.it)("should build the correct APDU for a parent hash and a commands count",()=>{const r={parent:d,commandCount:c},t=new a.SignBlockHeaderCommand(r).getApdu(),e=Uint8Array.from([224,7,0,0,p.length,...p]);(0,o.expect)(t.getRawApdu()).toEqual(e)})}),(0,o.describe)("parseResponse()",()=>{(0,o.it)("should return raw payload on success",()=>{const r={parent:d,commandCount:c},s=new a.SignBlockHeaderCommand(r),t=new n.ApduResponse({statusCode:Uint8Array.from([144,0]),data:u}),e=s.parseResponse(t);if((0,o.expect)((0,n.isSuccessCommandResult)(e)).toBe(!0),(0,n.isSuccessCommandResult)(e)){const A=e.data;(0,o.expect)(A).toEqual(u)}}),(0,o.it)("should map SW errors to CommandResult errors",()=>{const r={parent:d,commandCount:c},s=new a.SignBlockHeaderCommand(r),t=new n.ApduResponse({statusCode:Uint8Array.from([106,134]),data:new Uint8Array}),e=s.parseResponse(t);(0,o.expect)((0,n.isSuccessCommandResult)(e)).toBe(!1),(0,n.isSuccessCommandResult)(e)||(0,o.expect)(e.error.errorCode).toBe("6a86")}),(0,o.it)("should error if no data is returned",()=>{const r={parent:d,commandCount:c},s=new a.SignBlockHeaderCommand(r),t=new n.ApduResponse({statusCode:Uint8Array.from([144,0]),data:new Uint8Array}),e=s.parseResponse(t);(0,o.expect)((0,n.isSuccessCommandResult)(e)).toBe(!0),(0,n.isSuccessCommandResult)(e)&&(0,o.expect)(e.data).toEqual(new Uint8Array([]))})})});
1
+ "use strict";var e=require("@ledgerhq/device-management-kit"),o=require("vitest"),d=require("../../models/Tags"),a=require("./SignBlockHeader");const c=3,m=Uint8Array.from([240,202,204,26]),p=Uint8Array.from([d.GeneralTags.Int,1,1,d.GeneralTags.Hash,4,...m,...a.ISSUER_PLACEHOLDER_TLV,d.GeneralTags.Int,1,c]),i=Uint8Array.from([240,202,204,26]),l=Uint8Array.from([0,i.length,...i]),g=Uint8Array.from([129,i.length,...i]),u=new Uint8Array([...l,...g]);(0,o.describe)("SignBlockHeaderCommand",()=>{(0,o.describe)("getApdu()",()=>{(0,o.it)("should build the correct APDU for a parent hash and a commands count",()=>{const n={parent:m,commandCount:c},t=new a.SignBlockHeaderCommand(n).getApdu(),r=Uint8Array.from([224,7,0,0,p.length,...p]);(0,o.expect)(t.getRawApdu()).toEqual(r)})}),(0,o.describe)("parseResponse()",()=>{(0,o.it)("should return raw payload on success",()=>{const n={parent:m,commandCount:c},s=new a.SignBlockHeaderCommand(n),t=new e.ApduResponse({statusCode:Uint8Array.from([144,0]),data:u}),r=s.parseResponse(t);if((0,o.expect)((0,e.isSuccessCommandResult)(r)).toBe(!0),(0,e.isSuccessCommandResult)(r)){const A=r.data;(0,o.expect)(A).toEqual(u)}}),(0,o.it)("should map SW errors to CommandResult errors",()=>{const n={parent:m,commandCount:c},s=new a.SignBlockHeaderCommand(n),t=new e.ApduResponse({statusCode:Uint8Array.from([106,134]),data:new Uint8Array}),r=s.parseResponse(t);(0,o.expect)((0,e.isSuccessCommandResult)(r)).toBe(!1),(0,e.isSuccessCommandResult)(r)||(0,o.expect)(r.error.errorCode).toBe("6a86")}),(0,o.it)("should error if no data is returned",()=>{const n={parent:m,commandCount:c},s=new a.SignBlockHeaderCommand(n),t=new e.ApduResponse({statusCode:Uint8Array.from([144,0]),data:new Uint8Array}),r=s.parseResponse(t);(0,o.expect)((0,e.isSuccessCommandResult)(r)).toBe(!0),(0,e.isSuccessCommandResult)(r)&&(0,o.expect)(r.data).toEqual(new Uint8Array([]))})})});
2
2
  //# sourceMappingURL=SignBlockHeader.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/SignBlockHeader.test.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n ApduResponse,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { describe, expect, it } from \"vitest\";\n\nimport { GeneralTags } from \"@internal/models/Tags\";\n\nimport {\n ISSUER_PLACEHOLDER_TLV,\n SignBlockHeaderCommand,\n type SignBlockHeaderCommandArgs,\n type SignBlockHeaderCommandResponse,\n} from \"./SignBlockHeader\";\n\nconst COMMAND_COUNT = 3;\nconst PARENT_BYTES = Uint8Array.from([0xf0, 0xca, 0xcc, 0x1a]);\nconst HEADER_BYTES = Uint8Array.from([\n ...[GeneralTags.Int, 1, 1], // version 1\n ...[GeneralTags.Hash, 4, ...PARENT_BYTES], // Parent hash\n ...ISSUER_PLACEHOLDER_TLV,\n ...[GeneralTags.Int, 1, COMMAND_COUNT], // command count\n]);\nconst TLV_VALUE = Uint8Array.from([0xf0, 0xca, 0xcc, 0x1a]);\nconst IV_TLV = Uint8Array.from([0x00, TLV_VALUE.length, ...TLV_VALUE]);\nconst ISSUER_TLV = Uint8Array.from([0x81, TLV_VALUE.length, ...TLV_VALUE]);\nconst FULL_TLV_PAYLOAD = new Uint8Array([...IV_TLV, ...ISSUER_TLV]);\n\ndescribe(\"SignBlockHeaderCommand\", () => {\n describe(\"getApdu()\", () => {\n it(\"should build the correct APDU for a parent hash and a commands count\", () => {\n // given\n const args: SignBlockHeaderCommandArgs = {\n parent: PARENT_BYTES,\n commandCount: COMMAND_COUNT,\n };\n const cmd = new SignBlockHeaderCommand(args);\n\n // when\n const apdu = cmd.getApdu();\n const expected = Uint8Array.from([\n 0xe0,\n 0x07,\n 0x00,\n 0x00,\n HEADER_BYTES.length,\n ...HEADER_BYTES,\n ]);\n\n // then\n expect(apdu.getRawApdu()).toEqual(expected);\n });\n });\n\n describe(\"parseResponse()\", () => {\n it(\"should return raw payload on success\", () => {\n // given\n const args: SignBlockHeaderCommandArgs = {\n parent: PARENT_BYTES,\n commandCount: COMMAND_COUNT,\n };\n const cmd = new SignBlockHeaderCommand(args);\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: FULL_TLV_PAYLOAD,\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n const res: SignBlockHeaderCommandResponse = result.data;\n expect(res).toEqual(FULL_TLV_PAYLOAD);\n }\n });\n\n it(\"should map SW errors to CommandResult errors\", () => {\n // given\n const args: SignBlockHeaderCommandArgs = {\n parent: PARENT_BYTES,\n commandCount: COMMAND_COUNT,\n };\n const cmd = new SignBlockHeaderCommand(args);\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6a, 0x86]),\n data: new Uint8Array(),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect((result.error as any).errorCode).toBe(\"6a86\");\n }\n });\n\n it(\"should error if no data is returned\", () => {\n // given\n const args: SignBlockHeaderCommandArgs = {\n parent: PARENT_BYTES,\n commandCount: COMMAND_COUNT,\n };\n const cmd = new SignBlockHeaderCommand(args);\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array(),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toEqual(new Uint8Array([]));\n }\n });\n });\n});\n"],
5
- "mappings": "aAEA,IAAAA,EAGO,2CACPC,EAAqC,kBAErCC,EAA4B,iCAE5BC,EAKO,6BAEP,MAAMC,EAAgB,EAChBC,EAAe,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,EACvDC,EAAe,WAAW,KAAK,CAC/B,cAAY,IAAK,EAAG,EACpB,cAAY,KAAM,EAAG,GAAGD,EAC5B,GAAG,yBACC,cAAY,IAAK,EAAGD,CAC1B,CAAC,EACKG,EAAY,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,EACpDC,EAAS,WAAW,KAAK,CAAC,EAAMD,EAAU,OAAQ,GAAGA,CAAS,CAAC,EAC/DE,EAAa,WAAW,KAAK,CAAC,IAAMF,EAAU,OAAQ,GAAGA,CAAS,CAAC,EACnEG,EAAmB,IAAI,WAAW,CAAC,GAAGF,EAAQ,GAAGC,CAAU,CAAC,KAElE,YAAS,yBAA0B,IAAM,IACvC,YAAS,YAAa,IAAM,IAC1B,MAAG,uEAAwE,IAAM,CAE/E,MAAME,EAAmC,CACvC,OAAQN,EACR,aAAcD,CAChB,EAIMQ,EAHM,IAAI,yBAAuBD,CAAI,EAG1B,QAAQ,EACnBE,EAAW,WAAW,KAAK,CAC/B,IACA,EACA,EACA,EACAP,EAAa,OACb,GAAGA,CACL,CAAC,KAGD,UAAOM,EAAK,WAAW,CAAC,EAAE,QAAQC,CAAQ,CAC5C,CAAC,CACH,CAAC,KAED,YAAS,kBAAmB,IAAM,IAChC,MAAG,uCAAwC,IAAM,CAE/C,MAAMF,EAAmC,CACvC,OAAQN,EACR,aAAcD,CAChB,EACMU,EAAM,IAAI,yBAAuBH,CAAI,EACrCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAML,CACR,CAAC,EAGKM,EAASF,EAAI,cAAcC,CAAQ,EAIzC,MADA,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,EAAG,CAClC,MAAMC,EAAsCD,EAAO,QACnD,UAAOC,CAAG,EAAE,QAAQP,CAAgB,CACtC,CACF,CAAC,KAED,MAAG,+CAAgD,IAAM,CAEvD,MAAMC,EAAmC,CACvC,OAAQN,EACR,aAAcD,CAChB,EACMU,EAAM,IAAI,yBAAuBH,CAAI,EACrCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,UACZ,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,KAC5C,0BAAuBA,CAAM,MAChC,UAAQA,EAAO,MAAc,SAAS,EAAE,KAAK,MAAM,CAEvD,CAAC,KAED,MAAG,sCAAuC,IAAM,CAE9C,MAAML,EAAmC,CACvC,OAAQN,EACR,aAAcD,CAChB,EACMU,EAAM,IAAI,yBAAuBH,CAAI,EACrCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,UACZ,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,CAElD,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n ApduResponse,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { describe, expect, it } from \"vitest\";\n\nimport {\n type SignBlockHeaderCommandArgs,\n type SignBlockHeaderCommandResponse,\n} from \"@api/app-binder/SignBlockHeaderCommandTypes\";\nimport { GeneralTags } from \"@internal/models/Tags\";\n\nimport {\n ISSUER_PLACEHOLDER_TLV,\n SignBlockHeaderCommand,\n} from \"./SignBlockHeader\";\n\nconst COMMAND_COUNT = 3;\nconst PARENT_BYTES = Uint8Array.from([0xf0, 0xca, 0xcc, 0x1a]);\nconst HEADER_BYTES = Uint8Array.from([\n ...[GeneralTags.Int, 1, 1], // version 1\n ...[GeneralTags.Hash, 4, ...PARENT_BYTES], // Parent hash\n ...ISSUER_PLACEHOLDER_TLV,\n ...[GeneralTags.Int, 1, COMMAND_COUNT], // command count\n]);\nconst TLV_VALUE = Uint8Array.from([0xf0, 0xca, 0xcc, 0x1a]);\nconst IV_TLV = Uint8Array.from([0x00, TLV_VALUE.length, ...TLV_VALUE]);\nconst ISSUER_TLV = Uint8Array.from([0x81, TLV_VALUE.length, ...TLV_VALUE]);\nconst FULL_TLV_PAYLOAD = new Uint8Array([...IV_TLV, ...ISSUER_TLV]);\n\ndescribe(\"SignBlockHeaderCommand\", () => {\n describe(\"getApdu()\", () => {\n it(\"should build the correct APDU for a parent hash and a commands count\", () => {\n // given\n const args: SignBlockHeaderCommandArgs = {\n parent: PARENT_BYTES,\n commandCount: COMMAND_COUNT,\n };\n const cmd = new SignBlockHeaderCommand(args);\n\n // when\n const apdu = cmd.getApdu();\n const expected = Uint8Array.from([\n 0xe0,\n 0x07,\n 0x00,\n 0x00,\n HEADER_BYTES.length,\n ...HEADER_BYTES,\n ]);\n\n // then\n expect(apdu.getRawApdu()).toEqual(expected);\n });\n });\n\n describe(\"parseResponse()\", () => {\n it(\"should return raw payload on success\", () => {\n // given\n const args: SignBlockHeaderCommandArgs = {\n parent: PARENT_BYTES,\n commandCount: COMMAND_COUNT,\n };\n const cmd = new SignBlockHeaderCommand(args);\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: FULL_TLV_PAYLOAD,\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n const res: SignBlockHeaderCommandResponse = result.data;\n expect(res).toEqual(FULL_TLV_PAYLOAD);\n }\n });\n\n it(\"should map SW errors to CommandResult errors\", () => {\n // given\n const args: SignBlockHeaderCommandArgs = {\n parent: PARENT_BYTES,\n commandCount: COMMAND_COUNT,\n };\n const cmd = new SignBlockHeaderCommand(args);\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6a, 0x86]),\n data: new Uint8Array(),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect((result.error as any).errorCode).toBe(\"6a86\");\n }\n });\n\n it(\"should error if no data is returned\", () => {\n // given\n const args: SignBlockHeaderCommandArgs = {\n parent: PARENT_BYTES,\n commandCount: COMMAND_COUNT,\n };\n const cmd = new SignBlockHeaderCommand(args);\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array(),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toEqual(new Uint8Array([]));\n }\n });\n });\n});\n"],
5
+ "mappings": "aAEA,IAAAA,EAGO,2CACPC,EAAqC,kBAMrCC,EAA4B,iCAE5BC,EAGO,6BAEP,MAAMC,EAAgB,EAChBC,EAAe,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,EACvDC,EAAe,WAAW,KAAK,CAC/B,cAAY,IAAK,EAAG,EACpB,cAAY,KAAM,EAAG,GAAGD,EAC5B,GAAG,yBACC,cAAY,IAAK,EAAGD,CAC1B,CAAC,EACKG,EAAY,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,EACpDC,EAAS,WAAW,KAAK,CAAC,EAAMD,EAAU,OAAQ,GAAGA,CAAS,CAAC,EAC/DE,EAAa,WAAW,KAAK,CAAC,IAAMF,EAAU,OAAQ,GAAGA,CAAS,CAAC,EACnEG,EAAmB,IAAI,WAAW,CAAC,GAAGF,EAAQ,GAAGC,CAAU,CAAC,KAElE,YAAS,yBAA0B,IAAM,IACvC,YAAS,YAAa,IAAM,IAC1B,MAAG,uEAAwE,IAAM,CAE/E,MAAME,EAAmC,CACvC,OAAQN,EACR,aAAcD,CAChB,EAIMQ,EAHM,IAAI,yBAAuBD,CAAI,EAG1B,QAAQ,EACnBE,EAAW,WAAW,KAAK,CAC/B,IACA,EACA,EACA,EACAP,EAAa,OACb,GAAGA,CACL,CAAC,KAGD,UAAOM,EAAK,WAAW,CAAC,EAAE,QAAQC,CAAQ,CAC5C,CAAC,CACH,CAAC,KAED,YAAS,kBAAmB,IAAM,IAChC,MAAG,uCAAwC,IAAM,CAE/C,MAAMF,EAAmC,CACvC,OAAQN,EACR,aAAcD,CAChB,EACMU,EAAM,IAAI,yBAAuBH,CAAI,EACrCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAML,CACR,CAAC,EAGKM,EAASF,EAAI,cAAcC,CAAQ,EAIzC,MADA,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,EAAG,CAClC,MAAMC,EAAsCD,EAAO,QACnD,UAAOC,CAAG,EAAE,QAAQP,CAAgB,CACtC,CACF,CAAC,KAED,MAAG,+CAAgD,IAAM,CAEvD,MAAMC,EAAmC,CACvC,OAAQN,EACR,aAAcD,CAChB,EACMU,EAAM,IAAI,yBAAuBH,CAAI,EACrCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,UACZ,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,KAC5C,0BAAuBA,CAAM,MAChC,UAAQA,EAAO,MAAc,SAAS,EAAE,KAAK,MAAM,CAEvD,CAAC,KAED,MAAG,sCAAuC,IAAM,CAE9C,MAAML,EAAmC,CACvC,OAAQN,EACR,aAAcD,CAChB,EACMU,EAAM,IAAI,yBAAuBH,CAAI,EACrCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,UACZ,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,CAElD,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["import_device_management_kit", "import_vitest", "import_Tags", "import_SignBlockHeader", "COMMAND_COUNT", "PARENT_BYTES", "HEADER_BYTES", "TLV_VALUE", "IV_TLV", "ISSUER_TLV", "FULL_TLV_PAYLOAD", "args", "apdu", "expected", "cmd", "response", "result", "res"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var d=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var S=Object.prototype.hasOwnProperty;var C=(o,r)=>{for(var t in r)d(o,t,{get:r[t],enumerable:!0})},R=(o,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of y(r))!S.call(o,n)&&n!==t&&d(o,n,{get:()=>r[n],enumerable:!(i=c(r,n))||i.enumerable});return o};var f=o=>R(d({},"__esModule",{value:!0}),o);var E={};C(E,{SignBlockSignatureCommand:()=>A});module.exports=f(E);var e=require("@ledgerhq/device-management-kit"),m=require("@ledgerhq/signer-utils"),l=require("purify-ts"),s=require("./utils/ledgerKeyringProtocolErrors");class A{errorHelper=new m.CommandErrorHelper(s.LEDGER_SYNC_ERRORS,s.LedgerKeyringProtocolErrorFactory);constructor(){}getApdu(){return new e.ApduBuilder({cla:224,ins:7,p1:2,p2:0}).build()}parseResponse(r){return l.Maybe.fromNullable(this.errorHelper.getError(r)).orDefaultLazy(()=>{const t=new e.ApduParser(r),i=t.getUnparsedRemainingLength(),n=t.extractFieldByLength(i);if(!n)return(0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("No data returned by SignBlockSignatureCommand")});if(n.length<2)return(0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Invalid response: missing signature length or reserved byte")});const g=n[0];if(g===void 0)return(0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Invalid response: unable to read signature length")});const a=g;if(n.length<2+a)return(0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Signature length out of bounds")});const u=n.slice(1,1+a),p=n.slice(1+a+1);return(0,e.CommandResultFactory)({data:{signature:u,deviceSessionKey:p}})})}}0&&(module.exports={SignBlockSignatureCommand});
1
+ "use strict";var d=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var S=Object.prototype.hasOwnProperty;var C=(n,r)=>{for(var t in r)d(n,t,{get:r[t],enumerable:!0})},R=(n,r,t,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of y(r))!S.call(n,o)&&o!==t&&d(n,o,{get:()=>r[o],enumerable:!(s=c(r,o))||s.enumerable});return n};var f=n=>R(d({},"__esModule",{value:!0}),n);var B={};C(B,{SignBlockSignatureCommand:()=>E});module.exports=f(B);var e=require("@ledgerhq/device-management-kit"),m=require("@ledgerhq/signer-utils"),l=require("purify-ts"),a=require("./utils/ledgerKeyringProtocolErrors");class E{errorHelper=new m.CommandErrorHelper(a.LEDGER_SYNC_ERRORS,a.LedgerKeyringProtocolErrorFactory);constructor(){}getApdu(){return new e.ApduBuilder({cla:224,ins:7,p1:2,p2:0}).build()}parseResponse(r){return l.Maybe.fromNullable(this.errorHelper.getError(r)).orDefaultLazy(()=>{const t=new e.ApduParser(r),s=t.getUnparsedRemainingLength(),o=t.extractFieldByLength(s);if(!o)return(0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("No data returned by SignBlockSignatureCommand")});if(o.length<2)return(0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Invalid response: missing signature length or reserved byte")});const g=o[0];if(g===void 0)return(0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Invalid response: unable to read signature length")});const i=g;if(o.length<2+i)return(0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Signature length out of bounds")});const u=o.slice(1,1+i),p=o.slice(1+i+1);return(0,e.CommandResultFactory)({data:{signature:u,deviceSessionKey:p}})})}}0&&(module.exports={SignBlockSignatureCommand});
2
2
  //# sourceMappingURL=SignBlockSignatureCommand.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/SignBlockSignatureCommand.ts"],
4
- "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n LEDGER_SYNC_ERRORS,\n type LedgerKeyringProtocolErrorCodes,\n LedgerKeyringProtocolErrorFactory,\n} from \"./utils/ledgerKeyringProtocolErrors\";\n\nexport type SignBlockSignatureCommandArgs = Record<string, never>;\n\nexport interface SignBlockSignatureCommandResponse {\n signature: Uint8Array;\n deviceSessionKey: Uint8Array;\n}\n\nexport class SignBlockSignatureCommand\n implements\n Command<\n SignBlockSignatureCommandResponse,\n SignBlockSignatureCommandArgs,\n LedgerKeyringProtocolErrorCodes\n >\n{\n private readonly errorHelper = new CommandErrorHelper<\n SignBlockSignatureCommandResponse,\n LedgerKeyringProtocolErrorCodes\n >(LEDGER_SYNC_ERRORS, LedgerKeyringProtocolErrorFactory);\n\n constructor() {}\n\n getApdu(): Apdu {\n return new ApduBuilder({\n cla: 0xe0,\n ins: 0x07,\n p1: 0x02,\n p2: 0x00,\n }).build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<\n SignBlockSignatureCommandResponse,\n LedgerKeyringProtocolErrorCodes\n > {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n const rem = parser.getUnparsedRemainingLength();\n const data = parser.extractFieldByLength(rem);\n if (!data) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"No data returned by SignBlockSignatureCommand\",\n ),\n });\n }\n\n if (data.length < 2) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"Invalid response: missing signature length or reserved byte\",\n ),\n });\n }\n\n const raw = data[0];\n if (raw === undefined) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"Invalid response: unable to read signature length\",\n ),\n });\n }\n\n const sigLen = raw;\n if (data.length < 2 + sigLen) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Signature length out of bounds\"),\n });\n }\n\n const signature = data.slice(1, 1 + sigLen);\n const deviceSessionKey = data.slice(1 + sigLen + 1);\n\n return CommandResultFactory({ data: { signature, deviceSessionKey } });\n });\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,+BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAEtBC,EAIO,+CASA,MAAML,CAOb,CACmB,YAAc,IAAI,qBAGjC,qBAAoB,mCAAiC,EAEvD,aAAc,CAAC,CAEf,SAAgB,CACd,OAAO,IAAI,cAAY,CACrB,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,CAAC,EAAE,MAAM,CACX,CAEA,cACEM,EAIA,CACA,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAI,aAAWD,CAAY,EACpCE,EAAMD,EAAO,2BAA2B,EACxCE,EAAOF,EAAO,qBAAqBC,CAAG,EAC5C,GAAI,CAACC,EACH,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBACT,+CACF,CACF,CAAC,EAGH,GAAIA,EAAK,OAAS,EAChB,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBACT,6DACF,CACF,CAAC,EAGH,MAAMC,EAAMD,EAAK,CAAC,EAClB,GAAIC,IAAQ,OACV,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBACT,mDACF,CACF,CAAC,EAGH,MAAMC,EAASD,EACf,GAAID,EAAK,OAAS,EAAIE,EACpB,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,gCAAgC,CACpE,CAAC,EAGH,MAAMC,EAAYH,EAAK,MAAM,EAAG,EAAIE,CAAM,EACpCE,EAAmBJ,EAAK,MAAM,EAAIE,EAAS,CAAC,EAElD,SAAO,wBAAqB,CAAE,KAAM,CAAE,UAAAC,EAAW,iBAAAC,CAAiB,CAAE,CAAC,CACvE,CAAC,CACH,CACF",
4
+ "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n type SignBlockSignatureCommandArgs,\n type SignBlockSignatureCommandResponse,\n} from \"@api/app-binder/SignBlockSignatureCommandTypes\";\n\nimport {\n LEDGER_SYNC_ERRORS,\n type LedgerKeyringProtocolErrorCodes,\n LedgerKeyringProtocolErrorFactory,\n} from \"./utils/ledgerKeyringProtocolErrors\";\n\nexport class SignBlockSignatureCommand\n implements\n Command<\n SignBlockSignatureCommandResponse,\n SignBlockSignatureCommandArgs,\n LedgerKeyringProtocolErrorCodes\n >\n{\n private readonly errorHelper = new CommandErrorHelper<\n SignBlockSignatureCommandResponse,\n LedgerKeyringProtocolErrorCodes\n >(LEDGER_SYNC_ERRORS, LedgerKeyringProtocolErrorFactory);\n\n constructor() {}\n\n getApdu(): Apdu {\n return new ApduBuilder({\n cla: 0xe0,\n ins: 0x07,\n p1: 0x02,\n p2: 0x00,\n }).build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<\n SignBlockSignatureCommandResponse,\n LedgerKeyringProtocolErrorCodes\n > {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n const rem = parser.getUnparsedRemainingLength();\n const data = parser.extractFieldByLength(rem);\n if (!data) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"No data returned by SignBlockSignatureCommand\",\n ),\n });\n }\n\n if (data.length < 2) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"Invalid response: missing signature length or reserved byte\",\n ),\n });\n }\n\n const raw = data[0];\n if (raw === undefined) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"Invalid response: unable to read signature length\",\n ),\n });\n }\n\n const sigLen = raw;\n if (data.length < 2 + sigLen) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Signature length out of bounds\"),\n });\n }\n\n const signature = data.slice(1, 1 + sigLen);\n const deviceSessionKey = data.slice(1 + sigLen + 1);\n\n return CommandResultFactory({ data: { signature, deviceSessionKey } });\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,+BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAOtBC,EAIO,+CAEA,MAAML,CAOb,CACmB,YAAc,IAAI,qBAGjC,qBAAoB,mCAAiC,EAEvD,aAAc,CAAC,CAEf,SAAgB,CACd,OAAO,IAAI,cAAY,CACrB,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,CAAC,EAAE,MAAM,CACX,CAEA,cACEM,EAIA,CACA,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAI,aAAWD,CAAY,EACpCE,EAAMD,EAAO,2BAA2B,EACxCE,EAAOF,EAAO,qBAAqBC,CAAG,EAC5C,GAAI,CAACC,EACH,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBACT,+CACF,CACF,CAAC,EAGH,GAAIA,EAAK,OAAS,EAChB,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBACT,6DACF,CACF,CAAC,EAGH,MAAMC,EAAMD,EAAK,CAAC,EAClB,GAAIC,IAAQ,OACV,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBACT,mDACF,CACF,CAAC,EAGH,MAAMC,EAASD,EACf,GAAID,EAAK,OAAS,EAAIE,EACpB,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,gCAAgC,CACpE,CAAC,EAGH,MAAMC,EAAYH,EAAK,MAAM,EAAG,EAAIE,CAAM,EACpCE,EAAmBJ,EAAK,MAAM,EAAIE,EAAS,CAAC,EAElD,SAAO,wBAAqB,CAAE,KAAM,CAAE,UAAAC,EAAW,iBAAAC,CAAiB,CAAE,CAAC,CACvE,CAAC,CACH,CACF",
6
6
  "names": ["SignBlockSignatureCommand_exports", "__export", "SignBlockSignatureCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_ledgerKeyringProtocolErrors", "apduResponse", "parser", "rem", "data", "raw", "sigLen", "signature", "deviceSessionKey"]
7
7
  }