@ledgerhq/device-management-kit 0.0.0-signer-eth-plugin-fix-20250331141239 → 0.0.0-sol-signer-20251203164116

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 (942) hide show
  1. package/README.md +43 -6
  2. package/lib/cjs/package.json +46 -42
  3. package/lib/cjs/src/api/DeviceManagementKit.js +1 -1
  4. package/lib/cjs/src/api/DeviceManagementKit.js.map +3 -3
  5. package/lib/cjs/src/api/DeviceManagementKit.test.js +1 -1
  6. package/lib/cjs/src/api/DeviceManagementKit.test.js.map +3 -3
  7. package/lib/cjs/src/api/DeviceManagementKitBuilder.js +1 -1
  8. package/lib/cjs/src/api/DeviceManagementKitBuilder.js.map +2 -2
  9. package/lib/cjs/src/api/DmkConfig.js +1 -1
  10. package/lib/cjs/src/api/DmkConfig.js.map +1 -1
  11. package/lib/cjs/src/api/apdu/utils/ByteArrayBuilder.js +1 -1
  12. package/lib/cjs/src/api/apdu/utils/ByteArrayBuilder.js.map +3 -3
  13. package/lib/cjs/src/api/apdu/utils/ByteArrayBuilder.test.js +1 -1
  14. package/lib/cjs/src/api/apdu/utils/ByteArrayBuilder.test.js.map +2 -2
  15. package/lib/cjs/src/api/apdu/utils/ByteArrayParser.js +1 -1
  16. package/lib/cjs/src/api/apdu/utils/ByteArrayParser.js.map +3 -3
  17. package/lib/cjs/src/api/command/Command.js +1 -1
  18. package/lib/cjs/src/api/command/Command.js.map +1 -1
  19. package/lib/cjs/src/api/command/Errors.js +1 -1
  20. package/lib/cjs/src/api/command/Errors.js.map +3 -3
  21. package/lib/cjs/src/api/command/di/commandModule.js +1 -1
  22. package/lib/cjs/src/api/command/di/commandModule.js.map +3 -3
  23. package/lib/cjs/src/api/command/di/commandModule.test.js +1 -1
  24. package/lib/cjs/src/api/command/di/commandModule.test.js.map +2 -2
  25. package/lib/cjs/src/api/command/model/CommandResult.js +1 -1
  26. package/lib/cjs/src/api/command/model/CommandResult.js.map +2 -2
  27. package/lib/cjs/src/api/command/os/CloseAppCommand.js +1 -1
  28. package/lib/cjs/src/api/command/os/CloseAppCommand.js.map +2 -2
  29. package/lib/cjs/src/api/command/os/CloseAppCommand.test.js +1 -1
  30. package/lib/cjs/src/api/command/os/CloseAppCommand.test.js.map +2 -2
  31. package/lib/cjs/src/api/command/os/GetAppAndVersionCommand.js +1 -1
  32. package/lib/cjs/src/api/command/os/GetAppAndVersionCommand.js.map +2 -2
  33. package/lib/cjs/src/api/command/os/GetAppAndVersionCommand.test.js +1 -1
  34. package/lib/cjs/src/api/command/os/GetAppAndVersionCommand.test.js.map +2 -2
  35. package/lib/cjs/src/api/command/os/GetBatteryStatusCommand.js +1 -1
  36. package/lib/cjs/src/api/command/os/GetBatteryStatusCommand.js.map +2 -2
  37. package/lib/cjs/src/api/command/os/GetBatteryStatusCommand.test.js +1 -1
  38. package/lib/cjs/src/api/command/os/GetBatteryStatusCommand.test.js.map +3 -3
  39. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.js +2 -0
  40. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.js.map +7 -0
  41. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.test.js +2 -0
  42. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.test.js.map +7 -0
  43. package/lib/cjs/src/api/command/os/GetOsVersionCommand.js +1 -1
  44. package/lib/cjs/src/api/command/os/GetOsVersionCommand.js.map +3 -3
  45. package/lib/cjs/src/api/command/os/GetOsVersionCommand.test.js +1 -1
  46. package/lib/cjs/src/api/command/os/GetOsVersionCommand.test.js.map +3 -3
  47. package/lib/cjs/src/api/command/os/ListAppsCommand.js +1 -1
  48. package/lib/cjs/src/api/command/os/ListAppsCommand.js.map +2 -2
  49. package/lib/cjs/src/api/command/os/ListAppsCommand.test.js +1 -1
  50. package/lib/cjs/src/api/command/os/ListAppsCommand.test.js.map +2 -2
  51. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.js +2 -0
  52. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.js.map +7 -0
  53. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.test.js +2 -0
  54. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.test.js.map +7 -0
  55. package/lib/cjs/src/api/command/os/LoadCertificateCommand.js +1 -1
  56. package/lib/cjs/src/api/command/os/LoadCertificateCommand.js.map +2 -2
  57. package/lib/cjs/src/api/command/os/LoadCertificateCommand.test.js +1 -1
  58. package/lib/cjs/src/api/command/os/LoadCertificateCommand.test.js.map +3 -3
  59. package/lib/cjs/src/api/command/os/OpenAppCommand.js +1 -1
  60. package/lib/cjs/src/api/command/os/OpenAppCommand.js.map +2 -2
  61. package/lib/cjs/src/api/command/os/OpenAppCommand.test.js +1 -1
  62. package/lib/cjs/src/api/command/os/OpenAppCommand.test.js.map +2 -2
  63. package/lib/cjs/src/api/command/os/__mocks__/GetOsVersionCommand.js +1 -1
  64. package/lib/cjs/src/api/command/os/__mocks__/GetOsVersionCommand.js.map +2 -2
  65. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.js +1 -1
  66. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.js.map +3 -3
  67. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.test.js +1 -1
  68. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.test.js.map +2 -2
  69. package/lib/cjs/src/api/command/utils/CommandUtils.js +1 -1
  70. package/lib/cjs/src/api/command/utils/CommandUtils.js.map +3 -3
  71. package/lib/cjs/src/api/command/utils/CommandUtils.test.js +1 -1
  72. package/lib/cjs/src/api/command/utils/CommandUtils.test.js.map +3 -3
  73. package/lib/cjs/src/api/command/utils/GlobalCommandError.js +1 -1
  74. package/lib/cjs/src/api/command/utils/GlobalCommandError.js.map +2 -2
  75. package/lib/cjs/src/api/device/DeviceModel.js +1 -1
  76. package/lib/cjs/src/api/device/DeviceModel.js.map +2 -2
  77. package/lib/cjs/src/api/device-action/DeviceAction.js +1 -1
  78. package/lib/cjs/src/api/device-action/DeviceAction.js.map +1 -1
  79. package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js +1 -1
  80. package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  81. package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js +1 -1
  82. package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js.map +3 -3
  83. package/lib/cjs/src/api/device-action/di/deviceActionModule.js +1 -1
  84. package/lib/cjs/src/api/device-action/di/deviceActionModule.js.map +3 -3
  85. package/lib/cjs/src/api/device-action/di/deviceActionModule.test.js +1 -1
  86. package/lib/cjs/src/api/device-action/di/deviceActionModule.test.js.map +2 -2
  87. package/lib/cjs/src/api/device-action/model/UserInteractionRequired.js +1 -1
  88. package/lib/cjs/src/api/device-action/model/UserInteractionRequired.js.map +2 -2
  89. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js +1 -1
  90. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js.map +2 -2
  91. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js +1 -1
  92. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js.map +2 -2
  93. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.js +1 -1
  94. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.js.map +1 -1
  95. package/lib/cjs/src/api/device-action/os/Errors.js +1 -1
  96. package/lib/cjs/src/api/device-action/os/Errors.js.map +3 -3
  97. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js +2 -0
  98. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js.map +7 -0
  99. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js +2 -0
  100. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js.map +7 -0
  101. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/types.js +2 -0
  102. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/types.js.map +7 -0
  103. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js +1 -1
  104. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js.map +3 -3
  105. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
  106. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +2 -2
  107. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.js +1 -1
  108. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.js.map +3 -3
  109. package/lib/cjs/src/api/device-action/os/GoToDashboard/types.js +1 -1
  110. package/lib/cjs/src/api/device-action/os/GoToDashboard/types.js.map +1 -1
  111. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js +2 -0
  112. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js.map +7 -0
  113. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js +2 -0
  114. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js.map +7 -0
  115. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/types.js +2 -0
  116. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/types.js.map +7 -0
  117. package/lib/cjs/src/api/device-action/os/ListApps/ListAppsDeviceAction.js +1 -1
  118. package/lib/cjs/src/api/device-action/os/ListApps/ListAppsDeviceAction.js.map +2 -2
  119. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js +1 -1
  120. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js.map +3 -3
  121. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js +1 -1
  122. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js.map +2 -2
  123. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/types.js +1 -1
  124. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/types.js.map +1 -1
  125. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js +2 -0
  126. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js.map +7 -0
  127. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js +2 -0
  128. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js.map +7 -0
  129. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/types.js +2 -0
  130. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/types.js.map +7 -0
  131. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js +1 -1
  132. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js.map +2 -2
  133. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js +1 -1
  134. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js.map +2 -2
  135. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.js +1 -1
  136. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.js.map +1 -1
  137. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.js +2 -0
  138. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.js.map +7 -0
  139. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.test.js +2 -0
  140. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.test.js.map +7 -0
  141. package/lib/cjs/src/api/device-action/task/GetApplicationsMetadataTask.js +2 -0
  142. package/lib/cjs/src/api/device-action/task/GetApplicationsMetadataTask.js.map +7 -0
  143. package/lib/cjs/src/api/device-action/task/GetApplicationsMetadataTask.test.js +2 -0
  144. package/lib/cjs/src/api/device-action/task/GetApplicationsMetadataTask.test.js.map +7 -0
  145. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.js +2 -0
  146. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.js.map +7 -0
  147. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.test.js +2 -0
  148. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.test.js.map +7 -0
  149. package/lib/cjs/src/api/device-action/task/PredictOutOfMemoryTask.js +2 -0
  150. package/lib/cjs/src/api/device-action/task/PredictOutOfMemoryTask.js.map +7 -0
  151. package/lib/cjs/src/api/device-action/task/PredictOutOfMemoryTask.test.js +2 -0
  152. package/lib/cjs/src/api/device-action/task/PredictOutOfMemoryTask.test.js.map +7 -0
  153. package/lib/cjs/src/api/device-action/xstate-utils/XStateDeviceAction.js +1 -1
  154. package/lib/cjs/src/api/device-action/xstate-utils/XStateDeviceAction.js.map +2 -2
  155. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.js +1 -1
  156. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.js.map +2 -2
  157. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.test.js +1 -1
  158. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.test.js.map +2 -2
  159. package/lib/cjs/src/api/device-model/model/DeviceModel.js +1 -1
  160. package/lib/cjs/src/api/device-model/model/DeviceModel.js.map +2 -2
  161. package/lib/cjs/src/api/device-model/model/DeviceModel.stub.js +1 -1
  162. package/lib/cjs/src/api/device-model/model/DeviceModel.stub.js.map +2 -2
  163. package/lib/cjs/src/api/device-session/DeviceSessionState.js +1 -1
  164. package/lib/cjs/src/api/device-session/DeviceSessionState.js.map +2 -2
  165. package/lib/cjs/src/api/index.js +1 -1
  166. package/lib/cjs/src/api/index.js.map +3 -3
  167. package/lib/cjs/src/api/logger-subscriber/service/ConsoleLogger.js +1 -1
  168. package/lib/cjs/src/api/logger-subscriber/service/ConsoleLogger.js.map +3 -3
  169. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js +1 -1
  170. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js.map +2 -2
  171. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/types.js.map +1 -1
  172. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js +1 -1
  173. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js.map +3 -3
  174. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/types.js +1 -1
  175. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/types.js.map +1 -1
  176. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js +1 -1
  177. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js.map +2 -2
  178. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/types.js +1 -1
  179. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/types.js.map +2 -2
  180. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js +1 -1
  181. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js.map +3 -3
  182. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/types.js +1 -1
  183. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/types.js.map +1 -1
  184. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.js +1 -1
  185. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.js.map +3 -3
  186. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js +1 -1
  187. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js.map +3 -3
  188. package/lib/cjs/src/api/secure-channel/task/types.js +1 -1
  189. package/lib/cjs/src/api/secure-channel/task/types.js.map +2 -2
  190. package/lib/cjs/src/api/secure-channel/utils.js +1 -1
  191. package/lib/cjs/src/api/secure-channel/utils.js.map +3 -3
  192. package/lib/cjs/src/api/secure-channel/utils.test.js +1 -1
  193. package/lib/cjs/src/api/secure-channel/utils.test.js.map +3 -3
  194. package/lib/cjs/src/api/transport/model/ConnectedDevice.js +1 -1
  195. package/lib/cjs/src/api/transport/model/ConnectedDevice.js.map +3 -3
  196. package/lib/cjs/src/api/transport/model/DeviceApduSender.js +2 -0
  197. package/lib/cjs/src/api/transport/model/DeviceApduSender.js.map +7 -0
  198. package/lib/cjs/src/api/transport/model/DeviceConnection.js +1 -1
  199. package/lib/cjs/src/api/transport/model/DeviceConnection.js.map +1 -1
  200. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.js +2 -0
  201. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.js.map +7 -0
  202. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.test.js +2 -0
  203. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.test.js.map +7 -0
  204. package/lib/cjs/src/api/transport/model/DiscoveredDevice.js.map +1 -1
  205. package/lib/cjs/src/api/transport/model/Errors.js +1 -1
  206. package/lib/cjs/src/api/transport/model/Errors.js.map +3 -3
  207. package/lib/cjs/src/api/transport/model/Transport.js.map +1 -1
  208. package/lib/cjs/src/api/transport/model/TransportConnectedDevice.js +1 -1
  209. package/lib/cjs/src/api/transport/model/TransportConnectedDevice.js.map +3 -3
  210. package/lib/cjs/src/api/types.js +1 -1
  211. package/lib/cjs/src/api/types.js.map +1 -1
  212. package/lib/cjs/src/api/utils/AppName.js +2 -0
  213. package/lib/cjs/src/api/utils/AppName.js.map +7 -0
  214. package/lib/cjs/src/api/utils/AppName.test.js +2 -0
  215. package/lib/cjs/src/api/utils/AppName.test.js.map +7 -0
  216. package/lib/cjs/src/api/utils/HexaString.js +1 -1
  217. package/lib/cjs/src/api/utils/HexaString.js.map +3 -3
  218. package/lib/cjs/src/api/utils/HexaString.test.js +1 -1
  219. package/lib/cjs/src/api/utils/HexaString.test.js.map +2 -2
  220. package/lib/cjs/src/di.js +1 -1
  221. package/lib/cjs/src/di.js.map +2 -2
  222. package/lib/cjs/src/internal/config/di/configModule.js +1 -1
  223. package/lib/cjs/src/internal/config/di/configModule.js.map +3 -3
  224. package/lib/cjs/src/internal/config/di/configModule.test.js +1 -1
  225. package/lib/cjs/src/internal/config/di/configModule.test.js.map +2 -2
  226. package/lib/cjs/src/internal/crypto/CryptoService.js +2 -0
  227. package/lib/cjs/src/internal/crypto/CryptoService.js.map +7 -0
  228. package/lib/cjs/src/internal/crypto/NobleCryptoService.js +2 -0
  229. package/lib/cjs/src/internal/crypto/NobleCryptoService.js.map +7 -0
  230. package/lib/cjs/src/internal/crypto/NobleCryptoService.test.js +2 -0
  231. package/lib/cjs/src/internal/crypto/NobleCryptoService.test.js.map +7 -0
  232. package/lib/cjs/src/internal/device-model/di/deviceModelModule.js +1 -1
  233. package/lib/cjs/src/internal/device-model/di/deviceModelModule.js.map +3 -3
  234. package/lib/cjs/src/internal/device-model/di/deviceModelModule.test.js +1 -1
  235. package/lib/cjs/src/internal/device-model/di/deviceModelModule.test.js.map +2 -2
  236. package/lib/cjs/src/internal/device-session/data/ApduResponseConst.js +1 -1
  237. package/lib/cjs/src/internal/device-session/data/ApduResponseConst.js.map +3 -3
  238. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.js +1 -1
  239. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.js.map +3 -3
  240. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.test.js +1 -1
  241. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.test.js.map +2 -2
  242. package/lib/cjs/src/internal/device-session/model/DevicePinger.js +1 -1
  243. package/lib/cjs/src/internal/device-session/model/DevicePinger.js.map +3 -3
  244. package/lib/cjs/src/internal/device-session/model/DeviceSession.js +1 -1
  245. package/lib/cjs/src/internal/device-session/model/DeviceSession.js.map +3 -3
  246. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.js +1 -1
  247. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.js.map +3 -3
  248. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.test.js +1 -1
  249. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.test.js.map +3 -3
  250. package/lib/cjs/src/internal/device-session/model/Frame.js +1 -1
  251. package/lib/cjs/src/internal/device-session/model/Frame.js.map +3 -3
  252. package/lib/cjs/src/internal/device-session/service/DefaultApduReceiverService.js +1 -1
  253. package/lib/cjs/src/internal/device-session/service/DefaultApduReceiverService.js.map +2 -2
  254. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.js +1 -1
  255. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.js.map +2 -2
  256. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.test.js +1 -1
  257. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.test.js.map +2 -2
  258. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.js +1 -1
  259. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.js.map +3 -3
  260. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.test.js +1 -1
  261. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.test.js.map +3 -3
  262. package/lib/cjs/src/internal/device-session/service/DeviceSessionService.js +1 -1
  263. package/lib/cjs/src/internal/device-session/service/DeviceSessionService.js.map +1 -1
  264. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.js +1 -1
  265. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.js.map +3 -3
  266. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.test.js +1 -1
  267. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.test.js.map +3 -3
  268. package/lib/cjs/src/internal/discovery/di/discoveryModule.js +1 -1
  269. package/lib/cjs/src/internal/discovery/di/discoveryModule.js.map +3 -3
  270. package/lib/cjs/src/internal/discovery/di/discoveryModule.test.js +1 -1
  271. package/lib/cjs/src/internal/discovery/di/discoveryModule.test.js.map +3 -3
  272. package/lib/cjs/src/internal/discovery/di/discoveryTypes.js +1 -1
  273. package/lib/cjs/src/internal/discovery/di/discoveryTypes.js.map +2 -2
  274. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.js +1 -1
  275. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.js.map +3 -3
  276. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js +1 -1
  277. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js.map +3 -3
  278. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.js +1 -1
  279. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.js.map +3 -3
  280. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.test.js +1 -1
  281. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.test.js.map +2 -2
  282. package/lib/cjs/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.js +1 -1
  283. package/lib/cjs/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.js.map +2 -2
  284. package/lib/cjs/src/internal/discovery/use-case/ReconnectUseCase.js +2 -0
  285. package/lib/cjs/src/internal/discovery/use-case/ReconnectUseCase.js.map +7 -0
  286. package/lib/cjs/src/internal/discovery/use-case/ReconnectUseCase.test.js +2 -0
  287. package/lib/cjs/src/internal/discovery/use-case/ReconnectUseCase.test.js.map +7 -0
  288. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.js +1 -1
  289. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.js.map +2 -2
  290. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js +1 -1
  291. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js.map +2 -2
  292. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.js +1 -1
  293. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.js.map +3 -3
  294. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js +1 -1
  295. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js.map +3 -3
  296. package/lib/cjs/src/internal/logger-publisher/di/loggerModule.js +1 -1
  297. package/lib/cjs/src/internal/logger-publisher/di/loggerModule.js.map +3 -3
  298. package/lib/cjs/src/internal/logger-publisher/di/loggerModule.test.js +1 -1
  299. package/lib/cjs/src/internal/logger-publisher/di/loggerModule.test.js.map +2 -2
  300. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.js +1 -1
  301. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.js.map +3 -3
  302. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js +1 -1
  303. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js.map +3 -3
  304. package/lib/cjs/src/internal/manager-api/data/ManagerApiDataSource.js +1 -1
  305. package/lib/cjs/src/internal/manager-api/data/ManagerApiDataSource.js.map +1 -1
  306. package/lib/cjs/src/internal/manager-api/data/ManagerApiDto.js +1 -1
  307. package/lib/cjs/src/internal/manager-api/data/ManagerApiDto.js.map +1 -1
  308. package/lib/cjs/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js +1 -1
  309. package/lib/cjs/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js.map +2 -2
  310. package/lib/cjs/src/internal/manager-api/di/managerApiModule.js +1 -1
  311. package/lib/cjs/src/internal/manager-api/di/managerApiModule.js.map +3 -3
  312. package/lib/cjs/src/internal/manager-api/di/managerApiModule.test.js +1 -1
  313. package/lib/cjs/src/internal/manager-api/di/managerApiModule.test.js.map +2 -2
  314. package/lib/cjs/src/internal/manager-api/di/managerApiTypes.js +1 -1
  315. package/lib/cjs/src/internal/manager-api/di/managerApiTypes.js.map +2 -2
  316. package/lib/cjs/src/internal/manager-api/model/Application.js +1 -1
  317. package/lib/cjs/src/internal/manager-api/model/Application.js.map +1 -1
  318. package/lib/cjs/src/internal/manager-api/model/Const.js +1 -1
  319. package/lib/cjs/src/internal/manager-api/model/Const.js.map +3 -3
  320. package/lib/cjs/src/internal/manager-api/model/Firmware.js +1 -1
  321. package/lib/cjs/src/internal/manager-api/model/Firmware.js.map +1 -1
  322. package/lib/cjs/src/internal/manager-api/model/Language.js +2 -0
  323. package/lib/cjs/src/internal/manager-api/model/Language.js.map +7 -0
  324. package/lib/cjs/src/internal/manager-api/model/Params.js +1 -1
  325. package/lib/cjs/src/internal/manager-api/model/Params.js.map +1 -1
  326. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.js +1 -1
  327. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.js.map +3 -3
  328. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.test.js +1 -1
  329. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.test.js.map +3 -3
  330. package/lib/cjs/src/internal/manager-api/service/ManagerApiService.js +1 -1
  331. package/lib/cjs/src/internal/manager-api/service/ManagerApiService.js.map +1 -1
  332. package/lib/cjs/src/internal/manager-api/use-case/SetProviderUseCase.js +2 -0
  333. package/lib/cjs/src/internal/manager-api/use-case/SetProviderUseCase.js.map +7 -0
  334. package/lib/cjs/src/internal/manager-api/use-case/SetProviderUseCase.test.js +2 -0
  335. package/lib/cjs/src/internal/manager-api/use-case/SetProviderUseCase.test.js.map +7 -0
  336. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.js +1 -1
  337. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.js.map +3 -3
  338. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.test.js +1 -1
  339. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.test.js.map +2 -2
  340. package/lib/cjs/src/internal/secure-channel/model/Errors.js +1 -1
  341. package/lib/cjs/src/internal/secure-channel/model/Errors.js.map +3 -3
  342. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.js +1 -1
  343. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.js.map +3 -3
  344. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.test.js +1 -1
  345. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.test.js.map +3 -3
  346. package/lib/cjs/src/internal/secure-channel/service/SecureChannelService.js +1 -1
  347. package/lib/cjs/src/internal/secure-channel/service/SecureChannelService.js.map +1 -1
  348. package/lib/cjs/src/internal/send/di/sendModule.js +1 -1
  349. package/lib/cjs/src/internal/send/di/sendModule.js.map +3 -3
  350. package/lib/cjs/src/internal/send/di/sendModule.test.js +1 -1
  351. package/lib/cjs/src/internal/send/di/sendModule.test.js.map +2 -2
  352. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.js +1 -1
  353. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.js.map +3 -3
  354. package/lib/cjs/src/internal/transport/di/transportModule.js +1 -1
  355. package/lib/cjs/src/internal/transport/di/transportModule.js.map +3 -3
  356. package/lib/cjs/src/internal/transport/di/transportModule.test.js +1 -1
  357. package/lib/cjs/src/internal/transport/di/transportModule.test.js.map +2 -2
  358. package/lib/cjs/src/internal/transport/service/DefaultTransportService.js +1 -1
  359. package/lib/cjs/src/internal/transport/service/DefaultTransportService.js.map +3 -3
  360. package/lib/cjs/src/internal/transport/service/TransportService.js +1 -1
  361. package/lib/cjs/src/internal/transport/service/TransportService.js.map +1 -1
  362. package/lib/cjs/src/internal/transport/service/__mocks__/DefaultTransportService.js +1 -1
  363. package/lib/cjs/src/internal/transport/service/__mocks__/DefaultTransportService.js.map +2 -2
  364. package/lib/esm/package.json +46 -42
  365. package/lib/esm/src/api/DeviceManagementKit.js +1 -1
  366. package/lib/esm/src/api/DeviceManagementKit.js.map +3 -3
  367. package/lib/esm/src/api/DeviceManagementKit.test.js +1 -1
  368. package/lib/esm/src/api/DeviceManagementKit.test.js.map +3 -3
  369. package/lib/esm/src/api/DeviceManagementKitBuilder.js +1 -1
  370. package/lib/esm/src/api/DeviceManagementKitBuilder.js.map +3 -3
  371. package/lib/esm/src/api/apdu/utils/ByteArrayBuilder.js +1 -1
  372. package/lib/esm/src/api/apdu/utils/ByteArrayBuilder.js.map +3 -3
  373. package/lib/esm/src/api/apdu/utils/ByteArrayBuilder.test.js +1 -1
  374. package/lib/esm/src/api/apdu/utils/ByteArrayBuilder.test.js.map +2 -2
  375. package/lib/esm/src/api/apdu/utils/ByteArrayParser.js +1 -1
  376. package/lib/esm/src/api/apdu/utils/ByteArrayParser.js.map +3 -3
  377. package/lib/esm/src/api/command/Errors.js +1 -1
  378. package/lib/esm/src/api/command/Errors.js.map +3 -3
  379. package/lib/esm/src/api/command/di/commandModule.js +1 -1
  380. package/lib/esm/src/api/command/di/commandModule.js.map +3 -3
  381. package/lib/esm/src/api/command/di/commandModule.test.js +1 -1
  382. package/lib/esm/src/api/command/di/commandModule.test.js.map +2 -2
  383. package/lib/esm/src/api/command/model/CommandResult.js.map +2 -2
  384. package/lib/esm/src/api/command/os/CloseAppCommand.js +1 -1
  385. package/lib/esm/src/api/command/os/CloseAppCommand.js.map +2 -2
  386. package/lib/esm/src/api/command/os/CloseAppCommand.test.js +1 -1
  387. package/lib/esm/src/api/command/os/CloseAppCommand.test.js.map +2 -2
  388. package/lib/esm/src/api/command/os/GetAppAndVersionCommand.js +1 -1
  389. package/lib/esm/src/api/command/os/GetAppAndVersionCommand.js.map +2 -2
  390. package/lib/esm/src/api/command/os/GetAppAndVersionCommand.test.js +1 -1
  391. package/lib/esm/src/api/command/os/GetAppAndVersionCommand.test.js.map +2 -2
  392. package/lib/esm/src/api/command/os/GetBatteryStatusCommand.js +1 -1
  393. package/lib/esm/src/api/command/os/GetBatteryStatusCommand.js.map +2 -2
  394. package/lib/esm/src/api/command/os/GetBatteryStatusCommand.test.js +1 -1
  395. package/lib/esm/src/api/command/os/GetBatteryStatusCommand.test.js.map +3 -3
  396. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.js +2 -0
  397. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.js.map +7 -0
  398. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.test.js +2 -0
  399. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.test.js.map +7 -0
  400. package/lib/esm/src/api/command/os/GetOsVersionCommand.js +1 -1
  401. package/lib/esm/src/api/command/os/GetOsVersionCommand.js.map +3 -3
  402. package/lib/esm/src/api/command/os/GetOsVersionCommand.test.js +1 -1
  403. package/lib/esm/src/api/command/os/GetOsVersionCommand.test.js.map +3 -3
  404. package/lib/esm/src/api/command/os/ListAppsCommand.js +1 -1
  405. package/lib/esm/src/api/command/os/ListAppsCommand.js.map +2 -2
  406. package/lib/esm/src/api/command/os/ListAppsCommand.test.js +1 -1
  407. package/lib/esm/src/api/command/os/ListAppsCommand.test.js.map +2 -2
  408. package/lib/esm/src/api/command/os/ListLanguagePackCommand.js +2 -0
  409. package/lib/esm/src/api/command/os/ListLanguagePackCommand.js.map +7 -0
  410. package/lib/esm/src/api/command/os/ListLanguagePackCommand.test.js +2 -0
  411. package/lib/esm/src/api/command/os/ListLanguagePackCommand.test.js.map +7 -0
  412. package/lib/esm/src/api/command/os/LoadCertificateCommand.js +1 -1
  413. package/lib/esm/src/api/command/os/LoadCertificateCommand.js.map +2 -2
  414. package/lib/esm/src/api/command/os/LoadCertificateCommand.test.js +1 -1
  415. package/lib/esm/src/api/command/os/LoadCertificateCommand.test.js.map +3 -3
  416. package/lib/esm/src/api/command/os/OpenAppCommand.js +1 -1
  417. package/lib/esm/src/api/command/os/OpenAppCommand.js.map +2 -2
  418. package/lib/esm/src/api/command/os/OpenAppCommand.test.js +1 -1
  419. package/lib/esm/src/api/command/os/OpenAppCommand.test.js.map +2 -2
  420. package/lib/esm/src/api/command/os/__mocks__/GetOsVersionCommand.js +1 -1
  421. package/lib/esm/src/api/command/os/__mocks__/GetOsVersionCommand.js.map +2 -2
  422. package/lib/esm/src/api/command/use-case/SendCommandUseCase.js +1 -1
  423. package/lib/esm/src/api/command/use-case/SendCommandUseCase.js.map +3 -3
  424. package/lib/esm/src/api/command/use-case/SendCommandUseCase.test.js +1 -1
  425. package/lib/esm/src/api/command/use-case/SendCommandUseCase.test.js.map +2 -2
  426. package/lib/esm/src/api/command/utils/CommandUtils.js +1 -1
  427. package/lib/esm/src/api/command/utils/CommandUtils.js.map +3 -3
  428. package/lib/esm/src/api/command/utils/CommandUtils.test.js +1 -1
  429. package/lib/esm/src/api/command/utils/CommandUtils.test.js.map +3 -3
  430. package/lib/esm/src/api/command/utils/GlobalCommandError.js +1 -1
  431. package/lib/esm/src/api/command/utils/GlobalCommandError.js.map +2 -2
  432. package/lib/esm/src/api/device/DeviceModel.js +1 -1
  433. package/lib/esm/src/api/device/DeviceModel.js.map +2 -2
  434. package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js +1 -1
  435. package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  436. package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js +1 -1
  437. package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js.map +3 -3
  438. package/lib/esm/src/api/device-action/di/deviceActionModule.js +1 -1
  439. package/lib/esm/src/api/device-action/di/deviceActionModule.js.map +3 -3
  440. package/lib/esm/src/api/device-action/di/deviceActionModule.test.js +1 -1
  441. package/lib/esm/src/api/device-action/di/deviceActionModule.test.js.map +2 -2
  442. package/lib/esm/src/api/device-action/model/UserInteractionRequired.js +1 -1
  443. package/lib/esm/src/api/device-action/model/UserInteractionRequired.js.map +2 -2
  444. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js +1 -1
  445. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js.map +2 -2
  446. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js +1 -1
  447. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js.map +2 -2
  448. package/lib/esm/src/api/device-action/os/Errors.js +1 -1
  449. package/lib/esm/src/api/device-action/os/Errors.js.map +3 -3
  450. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js +2 -0
  451. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js.map +7 -0
  452. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js +2 -0
  453. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js.map +7 -0
  454. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/types.js +1 -0
  455. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/types.js.map +7 -0
  456. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js +1 -1
  457. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js.map +3 -3
  458. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
  459. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +2 -2
  460. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.js +1 -1
  461. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.js.map +3 -3
  462. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js +2 -0
  463. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js.map +7 -0
  464. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js +2 -0
  465. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js.map +7 -0
  466. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/types.js +1 -0
  467. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/types.js.map +7 -0
  468. package/lib/esm/src/api/device-action/os/ListApps/ListAppsDeviceAction.js +1 -1
  469. package/lib/esm/src/api/device-action/os/ListApps/ListAppsDeviceAction.js.map +2 -2
  470. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js +1 -1
  471. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js.map +3 -3
  472. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js +1 -1
  473. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js.map +3 -3
  474. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js +2 -0
  475. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js.map +7 -0
  476. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js +2 -0
  477. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js.map +7 -0
  478. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/types.js +1 -0
  479. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/types.js.map +7 -0
  480. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js +1 -1
  481. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js.map +2 -2
  482. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js +1 -1
  483. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js.map +2 -2
  484. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.js +2 -0
  485. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.js.map +7 -0
  486. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.test.js +2 -0
  487. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.test.js.map +7 -0
  488. package/lib/esm/src/api/device-action/task/GetApplicationsMetadataTask.js +2 -0
  489. package/lib/esm/src/api/device-action/task/GetApplicationsMetadataTask.js.map +7 -0
  490. package/lib/esm/src/api/device-action/task/GetApplicationsMetadataTask.test.js +2 -0
  491. package/lib/esm/src/api/device-action/task/GetApplicationsMetadataTask.test.js.map +7 -0
  492. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.js +2 -0
  493. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.js.map +7 -0
  494. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.test.js +2 -0
  495. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.test.js.map +7 -0
  496. package/lib/esm/src/api/device-action/task/PredictOutOfMemoryTask.js +2 -0
  497. package/lib/esm/src/api/device-action/task/PredictOutOfMemoryTask.js.map +7 -0
  498. package/lib/esm/src/api/device-action/task/PredictOutOfMemoryTask.test.js +2 -0
  499. package/lib/esm/src/api/device-action/task/PredictOutOfMemoryTask.test.js.map +7 -0
  500. package/lib/esm/src/api/device-action/xstate-utils/XStateDeviceAction.js +1 -1
  501. package/lib/esm/src/api/device-action/xstate-utils/XStateDeviceAction.js.map +2 -2
  502. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.js +1 -1
  503. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.js.map +2 -2
  504. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.test.js +1 -1
  505. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.test.js.map +2 -2
  506. package/lib/esm/src/api/device-model/model/DeviceModel.js +1 -1
  507. package/lib/esm/src/api/device-model/model/DeviceModel.js.map +2 -2
  508. package/lib/esm/src/api/device-model/model/DeviceModel.stub.js +1 -1
  509. package/lib/esm/src/api/device-model/model/DeviceModel.stub.js.map +2 -2
  510. package/lib/esm/src/api/device-session/DeviceSessionState.js +1 -1
  511. package/lib/esm/src/api/device-session/DeviceSessionState.js.map +2 -2
  512. package/lib/esm/src/api/index.js +1 -1
  513. package/lib/esm/src/api/index.js.map +3 -3
  514. package/lib/esm/src/api/logger-subscriber/service/ConsoleLogger.js +1 -1
  515. package/lib/esm/src/api/logger-subscriber/service/ConsoleLogger.js.map +3 -3
  516. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js +1 -1
  517. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js.map +2 -2
  518. package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js +1 -1
  519. package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js.map +3 -3
  520. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js +1 -1
  521. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js.map +2 -2
  522. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/types.js +1 -1
  523. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/types.js.map +2 -2
  524. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js +1 -1
  525. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js.map +3 -3
  526. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.js +1 -1
  527. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.js.map +3 -3
  528. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js +1 -1
  529. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js.map +3 -3
  530. package/lib/esm/src/api/secure-channel/task/types.js +1 -1
  531. package/lib/esm/src/api/secure-channel/task/types.js.map +2 -2
  532. package/lib/esm/src/api/secure-channel/utils.js +1 -1
  533. package/lib/esm/src/api/secure-channel/utils.js.map +3 -3
  534. package/lib/esm/src/api/secure-channel/utils.test.js +1 -1
  535. package/lib/esm/src/api/secure-channel/utils.test.js.map +3 -3
  536. package/lib/esm/src/api/transport/model/ConnectedDevice.js +1 -1
  537. package/lib/esm/src/api/transport/model/ConnectedDevice.js.map +3 -3
  538. package/lib/esm/src/api/transport/model/DeviceApduSender.js +1 -0
  539. package/lib/esm/src/api/transport/model/DeviceApduSender.js.map +7 -0
  540. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.js +2 -0
  541. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.js.map +7 -0
  542. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.test.js +2 -0
  543. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.test.js.map +7 -0
  544. package/lib/esm/src/api/transport/model/Errors.js +1 -1
  545. package/lib/esm/src/api/transport/model/Errors.js.map +3 -3
  546. package/lib/esm/src/api/transport/model/TransportConnectedDevice.js +1 -1
  547. package/lib/esm/src/api/transport/model/TransportConnectedDevice.js.map +3 -3
  548. package/lib/esm/src/api/utils/AppName.js +2 -0
  549. package/lib/esm/src/api/utils/AppName.js.map +7 -0
  550. package/lib/esm/src/api/utils/AppName.test.js +2 -0
  551. package/lib/esm/src/api/utils/AppName.test.js.map +7 -0
  552. package/lib/esm/src/api/utils/HexaString.js +1 -1
  553. package/lib/esm/src/api/utils/HexaString.js.map +3 -3
  554. package/lib/esm/src/api/utils/HexaString.test.js +1 -1
  555. package/lib/esm/src/api/utils/HexaString.test.js.map +2 -2
  556. package/lib/esm/src/di.js +1 -1
  557. package/lib/esm/src/di.js.map +3 -3
  558. package/lib/esm/src/internal/config/di/configModule.js +1 -1
  559. package/lib/esm/src/internal/config/di/configModule.js.map +3 -3
  560. package/lib/esm/src/internal/config/di/configModule.test.js +1 -1
  561. package/lib/esm/src/internal/config/di/configModule.test.js.map +2 -2
  562. package/lib/esm/src/internal/crypto/CryptoService.js +1 -0
  563. package/lib/esm/src/internal/crypto/CryptoService.js.map +7 -0
  564. package/lib/esm/src/internal/crypto/NobleCryptoService.js +2 -0
  565. package/lib/esm/src/internal/crypto/NobleCryptoService.js.map +7 -0
  566. package/lib/esm/src/internal/crypto/NobleCryptoService.test.js +2 -0
  567. package/lib/esm/src/internal/crypto/NobleCryptoService.test.js.map +7 -0
  568. package/lib/esm/src/internal/device-model/di/deviceModelModule.js +1 -1
  569. package/lib/esm/src/internal/device-model/di/deviceModelModule.js.map +3 -3
  570. package/lib/esm/src/internal/device-model/di/deviceModelModule.test.js +1 -1
  571. package/lib/esm/src/internal/device-model/di/deviceModelModule.test.js.map +2 -2
  572. package/lib/esm/src/internal/device-session/data/ApduResponseConst.js +1 -1
  573. package/lib/esm/src/internal/device-session/data/ApduResponseConst.js.map +3 -3
  574. package/lib/esm/src/internal/device-session/di/deviceSessionModule.js +1 -1
  575. package/lib/esm/src/internal/device-session/di/deviceSessionModule.js.map +3 -3
  576. package/lib/esm/src/internal/device-session/di/deviceSessionModule.test.js +1 -1
  577. package/lib/esm/src/internal/device-session/di/deviceSessionModule.test.js.map +2 -2
  578. package/lib/esm/src/internal/device-session/model/DevicePinger.js +1 -1
  579. package/lib/esm/src/internal/device-session/model/DevicePinger.js.map +3 -3
  580. package/lib/esm/src/internal/device-session/model/DeviceSession.js +1 -1
  581. package/lib/esm/src/internal/device-session/model/DeviceSession.js.map +3 -3
  582. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.js +1 -1
  583. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.js.map +3 -3
  584. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.test.js +1 -1
  585. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.test.js.map +3 -3
  586. package/lib/esm/src/internal/device-session/model/Frame.js +1 -1
  587. package/lib/esm/src/internal/device-session/model/Frame.js.map +3 -3
  588. package/lib/esm/src/internal/device-session/service/DefaultApduReceiverService.js +1 -1
  589. package/lib/esm/src/internal/device-session/service/DefaultApduReceiverService.js.map +2 -2
  590. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.js +1 -1
  591. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.js.map +2 -2
  592. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.test.js +1 -1
  593. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.test.js.map +2 -2
  594. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.js +1 -1
  595. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.js.map +3 -3
  596. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.test.js +1 -1
  597. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.test.js.map +3 -3
  598. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.js +1 -1
  599. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.js.map +3 -3
  600. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.test.js +1 -1
  601. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.test.js.map +3 -3
  602. package/lib/esm/src/internal/discovery/di/discoveryModule.js +1 -1
  603. package/lib/esm/src/internal/discovery/di/discoveryModule.js.map +3 -3
  604. package/lib/esm/src/internal/discovery/di/discoveryModule.test.js +1 -1
  605. package/lib/esm/src/internal/discovery/di/discoveryModule.test.js.map +3 -3
  606. package/lib/esm/src/internal/discovery/di/discoveryTypes.js +1 -1
  607. package/lib/esm/src/internal/discovery/di/discoveryTypes.js.map +2 -2
  608. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.js +1 -1
  609. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.js.map +3 -3
  610. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.test.js +1 -1
  611. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.test.js.map +3 -3
  612. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.js +1 -1
  613. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.js.map +3 -3
  614. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.test.js +1 -1
  615. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.test.js.map +2 -2
  616. package/lib/esm/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.js +1 -1
  617. package/lib/esm/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.js.map +2 -2
  618. package/lib/esm/src/internal/discovery/use-case/ReconnectUseCase.js +2 -0
  619. package/lib/esm/src/internal/discovery/use-case/ReconnectUseCase.js.map +7 -0
  620. package/lib/esm/src/internal/discovery/use-case/ReconnectUseCase.test.js +2 -0
  621. package/lib/esm/src/internal/discovery/use-case/ReconnectUseCase.test.js.map +7 -0
  622. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.js +1 -1
  623. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.js.map +2 -2
  624. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js +1 -1
  625. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js.map +2 -2
  626. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.js +1 -1
  627. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.js.map +3 -3
  628. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js +1 -1
  629. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js.map +3 -3
  630. package/lib/esm/src/internal/logger-publisher/di/loggerModule.js +1 -1
  631. package/lib/esm/src/internal/logger-publisher/di/loggerModule.js.map +3 -3
  632. package/lib/esm/src/internal/logger-publisher/di/loggerModule.test.js +1 -1
  633. package/lib/esm/src/internal/logger-publisher/di/loggerModule.test.js.map +2 -2
  634. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.js +1 -1
  635. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.js.map +3 -3
  636. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js +1 -1
  637. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js.map +3 -3
  638. package/lib/esm/src/internal/manager-api/data/ManagerApiDto.js +1 -1
  639. package/lib/esm/src/internal/manager-api/data/ManagerApiDto.js.map +1 -1
  640. package/lib/esm/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js +1 -1
  641. package/lib/esm/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js.map +2 -2
  642. package/lib/esm/src/internal/manager-api/di/managerApiModule.js +1 -1
  643. package/lib/esm/src/internal/manager-api/di/managerApiModule.js.map +3 -3
  644. package/lib/esm/src/internal/manager-api/di/managerApiModule.test.js +1 -1
  645. package/lib/esm/src/internal/manager-api/di/managerApiModule.test.js.map +2 -2
  646. package/lib/esm/src/internal/manager-api/di/managerApiTypes.js +1 -1
  647. package/lib/esm/src/internal/manager-api/di/managerApiTypes.js.map +2 -2
  648. package/lib/esm/src/internal/manager-api/model/Application.js +1 -1
  649. package/lib/esm/src/internal/manager-api/model/Application.js.map +1 -1
  650. package/lib/esm/src/internal/manager-api/model/Const.js +1 -1
  651. package/lib/esm/src/internal/manager-api/model/Const.js.map +3 -3
  652. package/lib/esm/src/internal/manager-api/model/Language.js +1 -0
  653. package/lib/esm/src/internal/manager-api/model/Language.js.map +7 -0
  654. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.js +1 -1
  655. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.js.map +3 -3
  656. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.test.js +1 -1
  657. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.test.js.map +3 -3
  658. package/lib/esm/src/internal/manager-api/use-case/SetProviderUseCase.js +2 -0
  659. package/lib/esm/src/internal/manager-api/use-case/SetProviderUseCase.js.map +7 -0
  660. package/lib/esm/src/internal/manager-api/use-case/SetProviderUseCase.test.js +2 -0
  661. package/lib/esm/src/internal/manager-api/use-case/SetProviderUseCase.test.js.map +7 -0
  662. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.js +1 -1
  663. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.js.map +3 -3
  664. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.test.js +1 -1
  665. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.test.js.map +2 -2
  666. package/lib/esm/src/internal/secure-channel/model/Errors.js +1 -1
  667. package/lib/esm/src/internal/secure-channel/model/Errors.js.map +3 -3
  668. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.js.map +3 -3
  669. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.test.js +1 -1
  670. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.test.js.map +3 -3
  671. package/lib/esm/src/internal/send/di/sendModule.js +1 -1
  672. package/lib/esm/src/internal/send/di/sendModule.js.map +3 -3
  673. package/lib/esm/src/internal/send/di/sendModule.test.js +1 -1
  674. package/lib/esm/src/internal/send/di/sendModule.test.js.map +2 -2
  675. package/lib/esm/src/internal/send/use-case/SendApduUseCase.js +1 -1
  676. package/lib/esm/src/internal/send/use-case/SendApduUseCase.js.map +3 -3
  677. package/lib/esm/src/internal/transport/di/transportModule.js +1 -1
  678. package/lib/esm/src/internal/transport/di/transportModule.js.map +3 -3
  679. package/lib/esm/src/internal/transport/di/transportModule.test.js +1 -1
  680. package/lib/esm/src/internal/transport/di/transportModule.test.js.map +2 -2
  681. package/lib/esm/src/internal/transport/service/DefaultTransportService.js +1 -1
  682. package/lib/esm/src/internal/transport/service/DefaultTransportService.js.map +3 -3
  683. package/lib/esm/src/internal/transport/service/__mocks__/DefaultTransportService.js +1 -1
  684. package/lib/esm/src/internal/transport/service/__mocks__/DefaultTransportService.js.map +2 -2
  685. package/lib/types/src/api/DeviceManagementKit.d.ts +27 -1
  686. package/lib/types/src/api/DeviceManagementKit.d.ts.map +1 -1
  687. package/lib/types/src/api/DeviceManagementKitBuilder.d.ts.map +1 -1
  688. package/lib/types/src/api/DmkConfig.d.ts +2 -0
  689. package/lib/types/src/api/DmkConfig.d.ts.map +1 -1
  690. package/lib/types/src/api/apdu/utils/ApduBuilder.d.ts.map +1 -1
  691. package/lib/types/src/api/apdu/utils/ApduParser.d.ts.map +1 -1
  692. package/lib/types/src/api/apdu/utils/ByteArrayBuilder.d.ts +66 -0
  693. package/lib/types/src/api/apdu/utils/ByteArrayBuilder.d.ts.map +1 -1
  694. package/lib/types/src/api/apdu/utils/ByteArrayParser.d.ts +1 -0
  695. package/lib/types/src/api/apdu/utils/ByteArrayParser.d.ts.map +1 -1
  696. package/lib/types/src/api/command/Command.d.ts +4 -0
  697. package/lib/types/src/api/command/Command.d.ts.map +1 -1
  698. package/lib/types/src/api/command/Errors.d.ts +5 -0
  699. package/lib/types/src/api/command/Errors.d.ts.map +1 -1
  700. package/lib/types/src/api/command/di/commandModule.d.ts.map +1 -1
  701. package/lib/types/src/api/command/model/CommandResult.d.ts +3 -3
  702. package/lib/types/src/api/command/model/CommandResult.d.ts.map +1 -1
  703. package/lib/types/src/api/command/os/CloseAppCommand.d.ts +1 -0
  704. package/lib/types/src/api/command/os/CloseAppCommand.d.ts.map +1 -1
  705. package/lib/types/src/api/command/os/GetAppAndVersionCommand.d.ts +1 -0
  706. package/lib/types/src/api/command/os/GetAppAndVersionCommand.d.ts.map +1 -1
  707. package/lib/types/src/api/command/os/GetBatteryStatusCommand.d.ts +1 -0
  708. package/lib/types/src/api/command/os/GetBatteryStatusCommand.d.ts.map +1 -1
  709. package/lib/types/src/api/command/os/GetCustomImageSizeCommand.d.ts +17 -0
  710. package/lib/types/src/api/command/os/GetCustomImageSizeCommand.d.ts.map +1 -0
  711. package/lib/types/src/api/command/os/GetCustomImageSizeCommand.test.d.ts +2 -0
  712. package/lib/types/src/api/command/os/GetCustomImageSizeCommand.test.d.ts.map +1 -0
  713. package/lib/types/src/api/command/os/GetOsVersionCommand.d.ts +31 -2
  714. package/lib/types/src/api/command/os/GetOsVersionCommand.d.ts.map +1 -1
  715. package/lib/types/src/api/command/os/ListAppsCommand.d.ts +1 -0
  716. package/lib/types/src/api/command/os/ListAppsCommand.d.ts.map +1 -1
  717. package/lib/types/src/api/command/os/ListLanguagePackCommand.d.ts +25 -0
  718. package/lib/types/src/api/command/os/ListLanguagePackCommand.d.ts.map +1 -0
  719. package/lib/types/src/api/command/os/ListLanguagePackCommand.test.d.ts +2 -0
  720. package/lib/types/src/api/command/os/ListLanguagePackCommand.test.d.ts.map +1 -0
  721. package/lib/types/src/api/command/os/LoadCertificateCommand.d.ts +1 -0
  722. package/lib/types/src/api/command/os/LoadCertificateCommand.d.ts.map +1 -1
  723. package/lib/types/src/api/command/os/OpenAppCommand.d.ts +1 -0
  724. package/lib/types/src/api/command/os/OpenAppCommand.d.ts.map +1 -1
  725. package/lib/types/src/api/command/os/__mocks__/GetOsVersionCommand.d.ts.map +1 -1
  726. package/lib/types/src/api/command/use-case/SendCommandUseCase.d.ts +5 -1
  727. package/lib/types/src/api/command/use-case/SendCommandUseCase.d.ts.map +1 -1
  728. package/lib/types/src/api/command/utils/CommandErrors.d.ts.map +1 -1
  729. package/lib/types/src/api/command/utils/CommandUtils.d.ts +4 -0
  730. package/lib/types/src/api/command/utils/CommandUtils.d.ts.map +1 -1
  731. package/lib/types/src/api/command/utils/GlobalCommandError.d.ts +1 -1
  732. package/lib/types/src/api/command/utils/GlobalCommandError.d.ts.map +1 -1
  733. package/lib/types/src/api/device/DeviceModel.d.ts +2 -1
  734. package/lib/types/src/api/device/DeviceModel.d.ts.map +1 -1
  735. package/lib/types/src/api/device-action/DeviceAction.d.ts +3 -1
  736. package/lib/types/src/api/device-action/DeviceAction.d.ts.map +1 -1
  737. package/lib/types/src/api/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
  738. package/lib/types/src/api/device-action/__test-utils__/setupTestMachine.d.ts +5 -0
  739. package/lib/types/src/api/device-action/__test-utils__/setupTestMachine.d.ts.map +1 -1
  740. package/lib/types/src/api/device-action/di/deviceActionModule.d.ts.map +1 -1
  741. package/lib/types/src/api/device-action/model/UserInteractionRequired.d.ts +3 -1
  742. package/lib/types/src/api/device-action/model/UserInteractionRequired.d.ts.map +1 -1
  743. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.d.ts.map +1 -1
  744. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.d.ts +1 -1
  745. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.d.ts.map +1 -1
  746. package/lib/types/src/api/device-action/os/Errors.d.ts +25 -0
  747. package/lib/types/src/api/device-action/os/Errors.d.ts.map +1 -1
  748. package/lib/types/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.d.ts +58 -0
  749. package/lib/types/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.d.ts.map +1 -0
  750. package/lib/types/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.d.ts +2 -0
  751. package/lib/types/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.d.ts.map +1 -0
  752. package/lib/types/src/api/device-action/os/GetDeviceMetadata/types.d.ts +29 -0
  753. package/lib/types/src/api/device-action/os/GetDeviceMetadata/types.d.ts.map +1 -0
  754. package/lib/types/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.d.ts +1 -1
  755. package/lib/types/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.d.ts.map +1 -1
  756. package/lib/types/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.d.ts.map +1 -1
  757. package/lib/types/src/api/device-action/os/GoToDashboard/types.d.ts +3 -4
  758. package/lib/types/src/api/device-action/os/GoToDashboard/types.d.ts.map +1 -1
  759. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.d.ts +40 -0
  760. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.d.ts.map +1 -0
  761. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.d.ts +2 -0
  762. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.d.ts.map +1 -0
  763. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/types.d.ts +66 -0
  764. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/types.d.ts.map +1 -0
  765. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.d.ts.map +1 -1
  766. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/types.d.ts +0 -1
  767. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/types.d.ts.map +1 -1
  768. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.d.ts +15 -0
  769. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.d.ts.map +1 -0
  770. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.d.ts +2 -0
  771. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.d.ts.map +1 -0
  772. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/types.d.ts +25 -0
  773. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/types.d.ts.map +1 -0
  774. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.d.ts.map +1 -1
  775. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.d.ts +1 -1
  776. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.d.ts.map +1 -1
  777. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.d.ts +30 -0
  778. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.d.ts.map +1 -0
  779. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.test.d.ts +2 -0
  780. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.test.d.ts.map +1 -0
  781. package/lib/types/src/api/device-action/task/GetApplicationsMetadataTask.d.ts +31 -0
  782. package/lib/types/src/api/device-action/task/GetApplicationsMetadataTask.d.ts.map +1 -0
  783. package/lib/types/src/api/device-action/task/GetApplicationsMetadataTask.test.d.ts +2 -0
  784. package/lib/types/src/api/device-action/task/GetApplicationsMetadataTask.test.d.ts.map +1 -0
  785. package/lib/types/src/api/device-action/task/GetFirmwareMetadataTask.d.ts +18 -0
  786. package/lib/types/src/api/device-action/task/GetFirmwareMetadataTask.d.ts.map +1 -0
  787. package/lib/types/src/api/device-action/task/GetFirmwareMetadataTask.test.d.ts +2 -0
  788. package/lib/types/src/api/device-action/task/GetFirmwareMetadataTask.test.d.ts.map +1 -0
  789. package/lib/types/src/api/device-action/task/PredictOutOfMemoryTask.d.ts +21 -0
  790. package/lib/types/src/api/device-action/task/PredictOutOfMemoryTask.d.ts.map +1 -0
  791. package/lib/types/src/api/device-action/task/PredictOutOfMemoryTask.test.d.ts +2 -0
  792. package/lib/types/src/api/device-action/task/PredictOutOfMemoryTask.test.d.ts.map +1 -0
  793. package/lib/types/src/api/device-action/xstate-utils/XStateDeviceAction.d.ts +1 -0
  794. package/lib/types/src/api/device-action/xstate-utils/XStateDeviceAction.d.ts.map +1 -1
  795. package/lib/types/src/api/device-model/data/StaticDeviceModelDataSource.d.ts.map +1 -1
  796. package/lib/types/src/api/device-model/model/DeviceModel.d.ts +2 -0
  797. package/lib/types/src/api/device-model/model/DeviceModel.d.ts.map +1 -1
  798. package/lib/types/src/api/device-model/model/DeviceModel.stub.d.ts.map +1 -1
  799. package/lib/types/src/api/device-session/DeviceSessionState.d.ts +93 -0
  800. package/lib/types/src/api/device-session/DeviceSessionState.d.ts.map +1 -1
  801. package/lib/types/src/api/device-session/service/DefaultApduReceiverService.stub.d.ts.map +1 -1
  802. package/lib/types/src/api/device-session/service/DefaultApduSenderService.stub.d.ts.map +1 -1
  803. package/lib/types/src/api/index.d.ts +7 -2
  804. package/lib/types/src/api/index.d.ts.map +1 -1
  805. package/lib/types/src/api/logger-subscriber/service/ConsoleLogger.d.ts +1 -0
  806. package/lib/types/src/api/logger-subscriber/service/ConsoleLogger.d.ts.map +1 -1
  807. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.d.ts.map +1 -1
  808. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/types.d.ts +3 -1
  809. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/types.d.ts.map +1 -1
  810. package/lib/types/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.d.ts.map +1 -1
  811. package/lib/types/src/api/secure-channel/device-action/InstallApp/types.d.ts +3 -1
  812. package/lib/types/src/api/secure-channel/device-action/InstallApp/types.d.ts.map +1 -1
  813. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.d.ts.map +1 -1
  814. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/types.d.ts +3 -1
  815. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/types.d.ts.map +1 -1
  816. package/lib/types/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.d.ts.map +1 -1
  817. package/lib/types/src/api/secure-channel/device-action/UninstallApp/types.d.ts +3 -1
  818. package/lib/types/src/api/secure-channel/device-action/UninstallApp/types.d.ts.map +1 -1
  819. package/lib/types/src/api/secure-channel/task/ConnectToSecureChannelTask.d.ts +9 -2
  820. package/lib/types/src/api/secure-channel/task/ConnectToSecureChannelTask.d.ts.map +1 -1
  821. package/lib/types/src/api/secure-channel/task/types.d.ts +13 -1
  822. package/lib/types/src/api/secure-channel/task/types.d.ts.map +1 -1
  823. package/lib/types/src/api/secure-channel/utils.d.ts +14 -8
  824. package/lib/types/src/api/secure-channel/utils.d.ts.map +1 -1
  825. package/lib/types/src/api/transport/model/ConnectedDevice.d.ts +3 -2
  826. package/lib/types/src/api/transport/model/ConnectedDevice.d.ts.map +1 -1
  827. package/lib/types/src/api/transport/model/DeviceApduSender.d.ts +17 -0
  828. package/lib/types/src/api/transport/model/DeviceApduSender.d.ts.map +1 -0
  829. package/lib/types/src/api/transport/model/DeviceConnection.d.ts +2 -1
  830. package/lib/types/src/api/transport/model/DeviceConnection.d.ts.map +1 -1
  831. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.d.ts +63 -0
  832. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.d.ts.map +1 -0
  833. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.test.d.ts +2 -0
  834. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.test.d.ts.map +1 -0
  835. package/lib/types/src/api/transport/model/DiscoveredDevice.d.ts +1 -1
  836. package/lib/types/src/api/transport/model/DiscoveredDevice.d.ts.map +1 -1
  837. package/lib/types/src/api/transport/model/Errors.d.ts +27 -3
  838. package/lib/types/src/api/transport/model/Errors.d.ts.map +1 -1
  839. package/lib/types/src/api/transport/model/Transport.d.ts +1 -1
  840. package/lib/types/src/api/transport/model/Transport.d.ts.map +1 -1
  841. package/lib/types/src/api/transport/model/TransportConnectedDevice.d.ts +3 -1
  842. package/lib/types/src/api/transport/model/TransportConnectedDevice.d.ts.map +1 -1
  843. package/lib/types/src/api/types.d.ts +6 -2
  844. package/lib/types/src/api/types.d.ts.map +1 -1
  845. package/lib/types/src/api/utils/AppName.d.ts +2 -0
  846. package/lib/types/src/api/utils/AppName.d.ts.map +1 -0
  847. package/lib/types/src/api/utils/AppName.test.d.ts +2 -0
  848. package/lib/types/src/api/utils/AppName.test.d.ts.map +1 -0
  849. package/lib/types/src/api/utils/HexaString.d.ts +4 -3
  850. package/lib/types/src/api/utils/HexaString.d.ts.map +1 -1
  851. package/lib/types/src/di.d.ts.map +1 -1
  852. package/lib/types/src/internal/config/di/configModule.d.ts.map +1 -1
  853. package/lib/types/src/internal/crypto/CryptoService.d.ts +12 -0
  854. package/lib/types/src/internal/crypto/CryptoService.d.ts.map +1 -0
  855. package/lib/types/src/internal/crypto/NobleCryptoService.d.ts +8 -0
  856. package/lib/types/src/internal/crypto/NobleCryptoService.d.ts.map +1 -0
  857. package/lib/types/src/internal/crypto/NobleCryptoService.test.d.ts +2 -0
  858. package/lib/types/src/internal/crypto/NobleCryptoService.test.d.ts.map +1 -0
  859. package/lib/types/src/internal/device-model/di/deviceModelModule.d.ts.map +1 -1
  860. package/lib/types/src/internal/device-session/data/ApduResponseConst.d.ts +1 -0
  861. package/lib/types/src/internal/device-session/data/ApduResponseConst.d.ts.map +1 -1
  862. package/lib/types/src/internal/device-session/di/deviceSessionModule.d.ts.map +1 -1
  863. package/lib/types/src/internal/device-session/model/DevicePinger.d.ts +1 -1
  864. package/lib/types/src/internal/device-session/model/DevicePinger.d.ts.map +1 -1
  865. package/lib/types/src/internal/device-session/model/DeviceSession.d.ts +3 -1
  866. package/lib/types/src/internal/device-session/model/DeviceSession.d.ts.map +1 -1
  867. package/lib/types/src/internal/device-session/model/DeviceSession.stub.d.ts.map +1 -1
  868. package/lib/types/src/internal/device-session/model/DeviceSessionStateHandler.d.ts.map +1 -1
  869. package/lib/types/src/internal/device-session/model/Frame.d.ts.map +1 -1
  870. package/lib/types/src/internal/device-session/service/DefaultApduReceiverService.d.ts.map +1 -1
  871. package/lib/types/src/internal/device-session/service/DefaultDeviceSessionService.d.ts +7 -5
  872. package/lib/types/src/internal/device-session/service/DefaultDeviceSessionService.d.ts.map +1 -1
  873. package/lib/types/src/internal/device-session/service/DeviceSessionService.d.ts +28 -1
  874. package/lib/types/src/internal/device-session/service/DeviceSessionService.d.ts.map +1 -1
  875. package/lib/types/src/internal/device-session/use-case/CloseSessionsUseCase.d.ts +3 -1
  876. package/lib/types/src/internal/device-session/use-case/CloseSessionsUseCase.d.ts.map +1 -1
  877. package/lib/types/src/internal/device-session/utils/deviceSessionUtils.d.ts.map +1 -1
  878. package/lib/types/src/internal/discovery/di/discoveryModule.d.ts.map +1 -1
  879. package/lib/types/src/internal/discovery/di/discoveryTypes.d.ts +1 -0
  880. package/lib/types/src/internal/discovery/di/discoveryTypes.d.ts.map +1 -1
  881. package/lib/types/src/internal/discovery/use-case/ConnectUseCase.d.ts +3 -2
  882. package/lib/types/src/internal/discovery/use-case/ConnectUseCase.d.ts.map +1 -1
  883. package/lib/types/src/internal/discovery/use-case/DisconnectUseCase.d.ts.map +1 -1
  884. package/lib/types/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.d.ts +1 -1
  885. package/lib/types/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.d.ts.map +1 -1
  886. package/lib/types/src/internal/discovery/use-case/ReconnectUseCase.d.ts +32 -0
  887. package/lib/types/src/internal/discovery/use-case/ReconnectUseCase.d.ts.map +1 -0
  888. package/lib/types/src/internal/discovery/use-case/ReconnectUseCase.test.d.ts +2 -0
  889. package/lib/types/src/internal/discovery/use-case/ReconnectUseCase.test.d.ts.map +1 -0
  890. package/lib/types/src/internal/discovery/use-case/StartDiscoveringUseCase.d.ts +1 -1
  891. package/lib/types/src/internal/discovery/use-case/StartDiscoveringUseCase.d.ts.map +1 -1
  892. package/lib/types/src/internal/discovery/use-case/StopDiscoveringUseCase.d.ts +4 -2
  893. package/lib/types/src/internal/discovery/use-case/StopDiscoveringUseCase.d.ts.map +1 -1
  894. package/lib/types/src/internal/logger-publisher/di/loggerModule.d.ts.map +1 -1
  895. package/lib/types/src/internal/manager-api/data/AxiosManagerApiDataSource.d.ts +24 -5
  896. package/lib/types/src/internal/manager-api/data/AxiosManagerApiDataSource.d.ts.map +1 -1
  897. package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts +51 -6
  898. package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts.map +1 -1
  899. package/lib/types/src/internal/manager-api/data/ManagerApiDto.d.ts +104 -18
  900. package/lib/types/src/internal/manager-api/data/ManagerApiDto.d.ts.map +1 -1
  901. package/lib/types/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.d.ts +7 -0
  902. package/lib/types/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.d.ts.map +1 -1
  903. package/lib/types/src/internal/manager-api/di/managerApiModule.d.ts.map +1 -1
  904. package/lib/types/src/internal/manager-api/di/managerApiTypes.d.ts +1 -0
  905. package/lib/types/src/internal/manager-api/di/managerApiTypes.d.ts.map +1 -1
  906. package/lib/types/src/internal/manager-api/model/Application.d.ts +12 -12
  907. package/lib/types/src/internal/manager-api/model/Application.d.ts.map +1 -1
  908. package/lib/types/src/internal/manager-api/model/Const.d.ts +2 -0
  909. package/lib/types/src/internal/manager-api/model/Const.d.ts.map +1 -1
  910. package/lib/types/src/internal/manager-api/model/Firmware.d.ts +17 -3
  911. package/lib/types/src/internal/manager-api/model/Firmware.d.ts.map +1 -1
  912. package/lib/types/src/internal/manager-api/model/Language.d.ts +12 -0
  913. package/lib/types/src/internal/manager-api/model/Language.d.ts.map +1 -0
  914. package/lib/types/src/internal/manager-api/model/Params.d.ts +20 -6
  915. package/lib/types/src/internal/manager-api/model/Params.d.ts.map +1 -1
  916. package/lib/types/src/internal/manager-api/service/DefaultManagerApiService.d.ts +9 -3
  917. package/lib/types/src/internal/manager-api/service/DefaultManagerApiService.d.ts.map +1 -1
  918. package/lib/types/src/internal/manager-api/service/ManagerApiService.d.ts +42 -7
  919. package/lib/types/src/internal/manager-api/service/ManagerApiService.d.ts.map +1 -1
  920. package/lib/types/src/internal/manager-api/use-case/SetProviderUseCase.d.ts +13 -0
  921. package/lib/types/src/internal/manager-api/use-case/SetProviderUseCase.d.ts.map +1 -0
  922. package/lib/types/src/internal/manager-api/use-case/SetProviderUseCase.test.d.ts +2 -0
  923. package/lib/types/src/internal/manager-api/use-case/SetProviderUseCase.test.d.ts.map +1 -0
  924. package/lib/types/src/internal/secure-channel/di/secureChannelModule.d.ts.map +1 -1
  925. package/lib/types/src/internal/secure-channel/model/Errors.d.ts +22 -2
  926. package/lib/types/src/internal/secure-channel/model/Errors.d.ts.map +1 -1
  927. package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.d.ts +2 -2
  928. package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.d.ts.map +1 -1
  929. package/lib/types/src/internal/secure-channel/service/SecureChannelService.d.ts +3 -3
  930. package/lib/types/src/internal/secure-channel/service/SecureChannelService.d.ts.map +1 -1
  931. package/lib/types/src/internal/send/di/sendModule.d.ts.map +1 -1
  932. package/lib/types/src/internal/send/use-case/SendApduUseCase.d.ts +9 -1
  933. package/lib/types/src/internal/send/use-case/SendApduUseCase.d.ts.map +1 -1
  934. package/lib/types/src/internal/transport/di/transportModule.d.ts.map +1 -1
  935. package/lib/types/src/internal/transport/service/DefaultTransportService.d.ts +2 -0
  936. package/lib/types/src/internal/transport/service/DefaultTransportService.d.ts.map +1 -1
  937. package/lib/types/src/internal/transport/service/TransportService.d.ts +3 -1
  938. package/lib/types/src/internal/transport/service/TransportService.d.ts.map +1 -1
  939. package/lib/types/src/internal/transport/service/__mocks__/DefaultTransportService.d.ts +1 -0
  940. package/lib/types/src/internal/transport/service/__mocks__/DefaultTransportService.d.ts.map +1 -1
  941. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  942. package/package.json +43 -39
@@ -1,2 +1,2 @@
1
- "use strict";var o=require("../../command/model/CommandResult"),n=require("../../device-session/ApduResponse"),d=require("./GetAppAndVersionCommand");const i=Uint8Array.from([176,1,0,0,0]),x=Uint8Array.from([1,5,66,79,76,79,83,9,49,46,52,46,48,45,114,99,50,144,0]),a=Uint8Array.from([1,7,66,105,116,99,111,105,110,11,50,46,49,46,53,45,97,108,112,104,97,1,2,144,0]),c=Uint8Array.from([103,0]),p=Uint8Array.from([4,144,0]);describe("GetAppAndVersionCommand",()=>{let t;beforeEach(()=>{t=new d.GetAppAndVersionCommand}),describe("getApdu",()=>{it("should return the GetAppAndVersion APDU",()=>{const e=t.getApdu();expect(e.getRawApdu()).toStrictEqual(i)})}),describe("parseResponse",()=>{it("should parse the response when launching OS (dashboard)",()=>{const e=new n.ApduResponse({statusCode:x.slice(-2),data:x.slice(0,-2)}),s=t.parseResponse(e),r=(0,o.CommandResultFactory)({data:{name:"BOLOS",version:"1.4.0-rc2"}});expect(s).toStrictEqual(r)}),it("should parse the response when launching App",()=>{const e=new n.ApduResponse({statusCode:a.slice(-2),data:a.slice(0,-2)}),s=t.parseResponse(e),r=(0,o.CommandResultFactory)({data:{name:"Bitcoin",version:"2.1.5-alpha",flags:Uint8Array.from([2])}});expect(s).toStrictEqual(r)}),it("should throw an error if the command failed",()=>{const e=new n.ApduResponse({statusCode:c.slice(-2),data:c.slice(0,-2)}),s=t.parseResponse(e);expect((0,o.isSuccessCommandResult)(s)).toBeFalsy()}),it("should return an error if the response returned unsupported format",()=>{const e=new n.ApduResponse({statusCode:p.slice(-2),data:p.slice(0,-2)}),s=t.parseResponse(e);expect((0,o.isSuccessCommandResult)(s)).toBeFalsy()})})});
1
+ "use strict";var o=require("../../command/model/CommandResult"),n=require("../../device-session/ApduResponse"),d=require("./GetAppAndVersionCommand");const i=Uint8Array.from([176,1,0,0,0]),a=Uint8Array.from([1,5,66,79,76,79,83,9,49,46,52,46,48,45,114,99,50,144,0]),x=Uint8Array.from([1,7,66,105,116,99,111,105,110,11,50,46,49,46,53,45,97,108,112,104,97,1,2,144,0]),p=Uint8Array.from([103,0]),c=Uint8Array.from([4,144,0]);describe("GetAppAndVersionCommand",()=>{let t;beforeEach(()=>{t=new d.GetAppAndVersionCommand}),describe("name",()=>{it("should be 'getAppAndVersion'",()=>{expect(t.name).toBe("getAppAndVersion")})}),describe("getApdu",()=>{it("should return the GetAppAndVersion APDU",()=>{const e=t.getApdu();expect(e.getRawApdu()).toStrictEqual(i)})}),describe("parseResponse",()=>{it("should parse the response when launching OS (dashboard)",()=>{const e=new n.ApduResponse({statusCode:a.slice(-2),data:a.slice(0,-2)}),s=t.parseResponse(e),r=(0,o.CommandResultFactory)({data:{name:"BOLOS",version:"1.4.0-rc2"}});expect(s).toStrictEqual(r)}),it("should parse the response when launching App",()=>{const e=new n.ApduResponse({statusCode:x.slice(-2),data:x.slice(0,-2)}),s=t.parseResponse(e),r=(0,o.CommandResultFactory)({data:{name:"Bitcoin",version:"2.1.5-alpha",flags:Uint8Array.from([2])}});expect(s).toStrictEqual(r)}),it("should throw an error if the command failed",()=>{const e=new n.ApduResponse({statusCode:p.slice(-2),data:p.slice(0,-2)}),s=t.parseResponse(e);expect((0,o.isSuccessCommandResult)(s)).toBeFalsy()}),it("should return an error if the response returned unsupported format",()=>{const e=new n.ApduResponse({statusCode:c.slice(-2),data:c.slice(0,-2)}),s=t.parseResponse(e);expect((0,o.isSuccessCommandResult)(s)).toBeFalsy()})})});
2
2
  //# sourceMappingURL=GetAppAndVersionCommand.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/api/command/os/GetAppAndVersionCommand.test.ts"],
4
- "sourcesContent": ["import {\n CommandResultFactory,\n isSuccessCommandResult,\n} from \"@api/command/model/CommandResult\";\nimport { ApduResponse } from \"@api/device-session/ApduResponse\";\n\nimport { GetAppAndVersionCommand } from \"./GetAppAndVersionCommand\";\n\nconst GET_APP_AND_VERSION_APDU = Uint8Array.from([\n 0xb0, 0x01, 0x00, 0x00, 0x00,\n]);\n\nconst OS_RESPONSE_HEX = Uint8Array.from([\n 0x01, 0x05, 0x42, 0x4f, 0x4c, 0x4f, 0x53, 0x09, 0x31, 0x2e, 0x34, 0x2e, 0x30,\n 0x2d, 0x72, 0x63, 0x32, 0x90, 0x00,\n]);\n\nconst APP_RESPONSE_HEX = Uint8Array.from([\n 0x01, 0x07, 0x42, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x0b, 0x32, 0x2e, 0x31,\n 0x2e, 0x35, 0x2d, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x01, 0x02, 0x90, 0x00,\n]);\n\nconst FAILED_RESPONSE_HEX = Uint8Array.from([0x67, 0x00]);\n\nconst ERROR_RESPONSE_HEX = Uint8Array.from([0x04, 0x90, 0x00]);\n\ndescribe(\"GetAppAndVersionCommand\", () => {\n let command: GetAppAndVersionCommand;\n\n beforeEach(() => {\n command = new GetAppAndVersionCommand();\n });\n\n describe(\"getApdu\", () => {\n it(\"should return the GetAppAndVersion APDU\", () => {\n const apdu = command.getApdu();\n expect(apdu.getRawApdu()).toStrictEqual(GET_APP_AND_VERSION_APDU);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should parse the response when launching OS (dashboard)\", () => {\n const OS_RESPONSE = new ApduResponse({\n statusCode: OS_RESPONSE_HEX.slice(-2),\n data: OS_RESPONSE_HEX.slice(0, -2),\n });\n const parsed = command.parseResponse(OS_RESPONSE);\n const expected = CommandResultFactory({\n data: {\n name: \"BOLOS\",\n version: \"1.4.0-rc2\",\n },\n });\n expect(parsed).toStrictEqual(expected);\n });\n it(\"should parse the response when launching App\", () => {\n const APP_RESPONSE = new ApduResponse({\n statusCode: APP_RESPONSE_HEX.slice(-2),\n data: APP_RESPONSE_HEX.slice(0, -2),\n });\n const parsed = command.parseResponse(APP_RESPONSE);\n const expected = CommandResultFactory({\n data: {\n name: \"Bitcoin\",\n version: \"2.1.5-alpha\",\n flags: Uint8Array.from([2]),\n },\n });\n expect(parsed).toStrictEqual(expected);\n });\n it(\"should throw an error if the command failed\", () => {\n // given\n const FAILED_RESPONSE = new ApduResponse({\n statusCode: FAILED_RESPONSE_HEX.slice(-2),\n data: FAILED_RESPONSE_HEX.slice(0, -2),\n });\n // when\n const result = command.parseResponse(FAILED_RESPONSE);\n\n // then\n expect(isSuccessCommandResult(result)).toBeFalsy();\n });\n it(\"should return an error if the response returned unsupported format\", () => {\n // given\n const ERROR_RESPONSE = new ApduResponse({\n statusCode: ERROR_RESPONSE_HEX.slice(-2),\n data: ERROR_RESPONSE_HEX.slice(0, -2),\n });\n // when\n const response = command.parseResponse(ERROR_RESPONSE);\n\n // then\n expect(isSuccessCommandResult(response)).toBeFalsy();\n });\n });\n});\n"],
5
- "mappings": "aAAA,IAAAA,EAGO,4CACPC,EAA6B,4CAE7BC,EAAwC,qCAExC,MAAMC,EAA2B,WAAW,KAAK,CAC/C,IAAM,EAAM,EAAM,EAAM,CAC1B,CAAC,EAEKC,EAAkB,WAAW,KAAK,CACtC,EAAM,EAAM,GAAM,GAAM,GAAM,GAAM,GAAM,EAAM,GAAM,GAAM,GAAM,GAAM,GACxE,GAAM,IAAM,GAAM,GAAM,IAAM,CAChC,CAAC,EAEKC,EAAmB,WAAW,KAAK,CACvC,EAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GACxE,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,EAAM,EAAM,IAAM,CACpE,CAAC,EAEKC,EAAsB,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EAElDC,EAAqB,WAAW,KAAK,CAAC,EAAM,IAAM,CAAI,CAAC,EAE7D,SAAS,0BAA2B,IAAM,CACxC,IAAIC,EAEJ,WAAW,IAAM,CACfA,EAAU,IAAI,yBAChB,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,GAAG,0CAA2C,IAAM,CAClD,MAAMC,EAAOD,EAAQ,QAAQ,EAC7B,OAAOC,EAAK,WAAW,CAAC,EAAE,cAAcN,CAAwB,CAClE,CAAC,CACH,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,GAAG,0DAA2D,IAAM,CAClE,MAAMO,EAAc,IAAI,eAAa,CACnC,WAAYN,EAAgB,MAAM,EAAE,EACpC,KAAMA,EAAgB,MAAM,EAAG,EAAE,CACnC,CAAC,EACKO,EAASH,EAAQ,cAAcE,CAAW,EAC1CE,KAAW,wBAAqB,CACpC,KAAM,CACJ,KAAM,QACN,QAAS,WACX,CACF,CAAC,EACD,OAAOD,CAAM,EAAE,cAAcC,CAAQ,CACvC,CAAC,EACD,GAAG,+CAAgD,IAAM,CACvD,MAAMC,EAAe,IAAI,eAAa,CACpC,WAAYR,EAAiB,MAAM,EAAE,EACrC,KAAMA,EAAiB,MAAM,EAAG,EAAE,CACpC,CAAC,EACKM,EAASH,EAAQ,cAAcK,CAAY,EAC3CD,KAAW,wBAAqB,CACpC,KAAM,CACJ,KAAM,UACN,QAAS,cACT,MAAO,WAAW,KAAK,CAAC,CAAC,CAAC,CAC5B,CACF,CAAC,EACD,OAAOD,CAAM,EAAE,cAAcC,CAAQ,CACvC,CAAC,EACD,GAAG,8CAA+C,IAAM,CAEtD,MAAME,EAAkB,IAAI,eAAa,CACvC,WAAYR,EAAoB,MAAM,EAAE,EACxC,KAAMA,EAAoB,MAAM,EAAG,EAAE,CACvC,CAAC,EAEKS,EAASP,EAAQ,cAAcM,CAAe,EAGpD,UAAO,0BAAuBC,CAAM,CAAC,EAAE,UAAU,CACnD,CAAC,EACD,GAAG,qEAAsE,IAAM,CAE7E,MAAMC,EAAiB,IAAI,eAAa,CACtC,WAAYT,EAAmB,MAAM,EAAE,EACvC,KAAMA,EAAmB,MAAM,EAAG,EAAE,CACtC,CAAC,EAEKU,EAAWT,EAAQ,cAAcQ,CAAc,EAGrD,UAAO,0BAAuBC,CAAQ,CAAC,EAAE,UAAU,CACrD,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import {\n CommandResultFactory,\n isSuccessCommandResult,\n} from \"@api/command/model/CommandResult\";\nimport { ApduResponse } from \"@api/device-session/ApduResponse\";\n\nimport { GetAppAndVersionCommand } from \"./GetAppAndVersionCommand\";\n\nconst GET_APP_AND_VERSION_APDU = Uint8Array.from([\n 0xb0, 0x01, 0x00, 0x00, 0x00,\n]);\n\nconst OS_RESPONSE_HEX = Uint8Array.from([\n 0x01, 0x05, 0x42, 0x4f, 0x4c, 0x4f, 0x53, 0x09, 0x31, 0x2e, 0x34, 0x2e, 0x30,\n 0x2d, 0x72, 0x63, 0x32, 0x90, 0x00,\n]);\n\nconst APP_RESPONSE_HEX = Uint8Array.from([\n 0x01, 0x07, 0x42, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x0b, 0x32, 0x2e, 0x31,\n 0x2e, 0x35, 0x2d, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x01, 0x02, 0x90, 0x00,\n]);\n\nconst FAILED_RESPONSE_HEX = Uint8Array.from([0x67, 0x00]);\n\nconst ERROR_RESPONSE_HEX = Uint8Array.from([0x04, 0x90, 0x00]);\n\ndescribe(\"GetAppAndVersionCommand\", () => {\n let command: GetAppAndVersionCommand;\n\n beforeEach(() => {\n command = new GetAppAndVersionCommand();\n });\n\n describe(\"name\", () => {\n it(\"should be 'getAppAndVersion'\", () => {\n expect(command.name).toBe(\"getAppAndVersion\");\n });\n });\n\n describe(\"getApdu\", () => {\n it(\"should return the GetAppAndVersion APDU\", () => {\n const apdu = command.getApdu();\n expect(apdu.getRawApdu()).toStrictEqual(GET_APP_AND_VERSION_APDU);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should parse the response when launching OS (dashboard)\", () => {\n const OS_RESPONSE = new ApduResponse({\n statusCode: OS_RESPONSE_HEX.slice(-2),\n data: OS_RESPONSE_HEX.slice(0, -2),\n });\n const parsed = command.parseResponse(OS_RESPONSE);\n const expected = CommandResultFactory({\n data: {\n name: \"BOLOS\",\n version: \"1.4.0-rc2\",\n },\n });\n expect(parsed).toStrictEqual(expected);\n });\n it(\"should parse the response when launching App\", () => {\n const APP_RESPONSE = new ApduResponse({\n statusCode: APP_RESPONSE_HEX.slice(-2),\n data: APP_RESPONSE_HEX.slice(0, -2),\n });\n const parsed = command.parseResponse(APP_RESPONSE);\n const expected = CommandResultFactory({\n data: {\n name: \"Bitcoin\",\n version: \"2.1.5-alpha\",\n flags: Uint8Array.from([2]),\n },\n });\n expect(parsed).toStrictEqual(expected);\n });\n it(\"should throw an error if the command failed\", () => {\n // given\n const FAILED_RESPONSE = new ApduResponse({\n statusCode: FAILED_RESPONSE_HEX.slice(-2),\n data: FAILED_RESPONSE_HEX.slice(0, -2),\n });\n // when\n const result = command.parseResponse(FAILED_RESPONSE);\n\n // then\n expect(isSuccessCommandResult(result)).toBeFalsy();\n });\n it(\"should return an error if the response returned unsupported format\", () => {\n // given\n const ERROR_RESPONSE = new ApduResponse({\n statusCode: ERROR_RESPONSE_HEX.slice(-2),\n data: ERROR_RESPONSE_HEX.slice(0, -2),\n });\n // when\n const response = command.parseResponse(ERROR_RESPONSE);\n\n // then\n expect(isSuccessCommandResult(response)).toBeFalsy();\n });\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAGO,4CACPC,EAA6B,4CAE7BC,EAAwC,qCAExC,MAAMC,EAA2B,WAAW,KAAK,CAC/C,IAAM,EAAM,EAAM,EAAM,CAC1B,CAAC,EAEKC,EAAkB,WAAW,KAAK,CACtC,EAAM,EAAM,GAAM,GAAM,GAAM,GAAM,GAAM,EAAM,GAAM,GAAM,GAAM,GAAM,GACxE,GAAM,IAAM,GAAM,GAAM,IAAM,CAChC,CAAC,EAEKC,EAAmB,WAAW,KAAK,CACvC,EAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GACxE,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,EAAM,EAAM,IAAM,CACpE,CAAC,EAEKC,EAAsB,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EAElDC,EAAqB,WAAW,KAAK,CAAC,EAAM,IAAM,CAAI,CAAC,EAE7D,SAAS,0BAA2B,IAAM,CACxC,IAAIC,EAEJ,WAAW,IAAM,CACfA,EAAU,IAAI,yBAChB,CAAC,EAED,SAAS,OAAQ,IAAM,CACrB,GAAG,+BAAgC,IAAM,CACvC,OAAOA,EAAQ,IAAI,EAAE,KAAK,kBAAkB,CAC9C,CAAC,CACH,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,GAAG,0CAA2C,IAAM,CAClD,MAAMC,EAAOD,EAAQ,QAAQ,EAC7B,OAAOC,EAAK,WAAW,CAAC,EAAE,cAAcN,CAAwB,CAClE,CAAC,CACH,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,GAAG,0DAA2D,IAAM,CAClE,MAAMO,EAAc,IAAI,eAAa,CACnC,WAAYN,EAAgB,MAAM,EAAE,EACpC,KAAMA,EAAgB,MAAM,EAAG,EAAE,CACnC,CAAC,EACKO,EAASH,EAAQ,cAAcE,CAAW,EAC1CE,KAAW,wBAAqB,CACpC,KAAM,CACJ,KAAM,QACN,QAAS,WACX,CACF,CAAC,EACD,OAAOD,CAAM,EAAE,cAAcC,CAAQ,CACvC,CAAC,EACD,GAAG,+CAAgD,IAAM,CACvD,MAAMC,EAAe,IAAI,eAAa,CACpC,WAAYR,EAAiB,MAAM,EAAE,EACrC,KAAMA,EAAiB,MAAM,EAAG,EAAE,CACpC,CAAC,EACKM,EAASH,EAAQ,cAAcK,CAAY,EAC3CD,KAAW,wBAAqB,CACpC,KAAM,CACJ,KAAM,UACN,QAAS,cACT,MAAO,WAAW,KAAK,CAAC,CAAC,CAAC,CAC5B,CACF,CAAC,EACD,OAAOD,CAAM,EAAE,cAAcC,CAAQ,CACvC,CAAC,EACD,GAAG,8CAA+C,IAAM,CAEtD,MAAME,EAAkB,IAAI,eAAa,CACvC,WAAYR,EAAoB,MAAM,EAAE,EACxC,KAAMA,EAAoB,MAAM,EAAG,EAAE,CACvC,CAAC,EAEKS,EAASP,EAAQ,cAAcM,CAAe,EAGpD,UAAO,0BAAuBC,CAAM,CAAC,EAAE,UAAU,CACnD,CAAC,EACD,GAAG,qEAAsE,IAAM,CAE7E,MAAMC,EAAiB,IAAI,eAAa,CACtC,WAAYT,EAAmB,MAAM,EAAE,EACvC,KAAMA,EAAmB,MAAM,EAAG,EAAE,CACtC,CAAC,EAEKU,EAAWT,EAAQ,cAAcQ,CAAc,EAGrD,UAAO,0BAAuBC,CAAQ,CAAC,EAAE,UAAU,CACrD,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["import_CommandResult", "import_ApduResponse", "import_GetAppAndVersionCommand", "GET_APP_AND_VERSION_APDU", "OS_RESPONSE_HEX", "APP_RESPONSE_HEX", "FAILED_RESPONSE_HEX", "ERROR_RESPONSE_HEX", "command", "apdu", "OS_RESPONSE", "parsed", "expected", "APP_RESPONSE", "FAILED_RESPONSE", "result", "ERROR_RESPONSE", "response"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var p=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var B=Object.prototype.hasOwnProperty;var m=(a,t)=>{for(var s in t)p(a,s,{get:t[s],enumerable:!0})},c=(a,t,s,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of T(t))!B.call(a,o)&&o!==s&&p(a,o,{get:()=>t[o],enumerable:!(e=d(t,o))||e.enumerable});return a};var x=a=>c(p({},"__esModule",{value:!0}),a);var y={};m(y,{BatteryStatusType:()=>i,ChargingMode:()=>R,GetBatteryStatusCommand:()=>S});module.exports=x(y);var E=require("../../apdu/utils/ApduBuilder"),A=require("../../apdu/utils/ApduParser"),u=require("../../command/Errors"),n=require("../../command/model/CommandResult"),i=(r=>(r[r.BATTERY_PERCENTAGE=0]="BATTERY_PERCENTAGE",r[r.BATTERY_VOLTAGE=1]="BATTERY_VOLTAGE",r[r.BATTERY_TEMPERATURE=2]="BATTERY_TEMPERATURE",r[r.BATTERY_CURRENT=3]="BATTERY_CURRENT",r[r.BATTERY_FLAGS=4]="BATTERY_FLAGS",r))(i||{}),R=(e=>(e[e.NONE=0]="NONE",e[e.USB=1]="USB",e[e.QI=2]="QI",e))(R||{});class S{args;constructor(t){this.args=t}getApdu(){const t={cla:224,ins:16,p1:0,p2:this.args.statusType};return new E.ApduBuilder(t).build()}parseResponse(t){const s=new A.ApduParser(t);switch(this.args.statusType){case 0:{const e=s.extract8BitUInt();return e===void 0?(0,n.CommandResultFactory)({error:new u.InvalidBatteryDataError("Cannot parse APDU response")}):(0,n.CommandResultFactory)({data:e>100?-1:e})}case 1:{const e=s.extract16BitUInt();return e===void 0?(0,n.CommandResultFactory)({error:new u.InvalidBatteryDataError("Cannot parse APDU response")}):(0,n.CommandResultFactory)({data:e})}case 2:case 3:{const e=s.extract8BitUInt();return e===void 0?(0,n.CommandResultFactory)({error:new u.InvalidBatteryDataError("Cannot parse APDU response")}):(0,n.CommandResultFactory)({data:e<<24>>24})}case 4:{const e=s.extract32BitUInt();if(e===void 0)return(0,n.CommandResultFactory)({error:new u.InvalidBatteryDataError("Cannot parse APDU response")});const o=!!(e&8),r=!o&&!!(e&1);return(0,n.CommandResultFactory)({data:{charging:r?2:o?1:0,issueCharging:!!(e&16),issueTemperature:!!(e&32),issueBattery:!!(e&128)}})}default:return(0,n.CommandResultFactory)({error:new u.InvalidBatteryStatusTypeError("One or some case(s) not covered")})}}}0&&(module.exports={BatteryStatusType,ChargingMode,GetBatteryStatusCommand});
1
+ "use strict";var p=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var B=Object.prototype.hasOwnProperty;var m=(a,t)=>{for(var s in t)p(a,s,{get:t[s],enumerable:!0})},c=(a,t,s,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of T(t))!B.call(a,o)&&o!==s&&p(a,o,{get:()=>t[o],enumerable:!(e=R(t,o))||e.enumerable});return a};var S=a=>c(p({},"__esModule",{value:!0}),a);var y={};m(y,{BatteryStatusType:()=>i,ChargingMode:()=>d,GetBatteryStatusCommand:()=>x});module.exports=S(y);var E=require("../../apdu/utils/ApduBuilder"),A=require("../../apdu/utils/ApduParser"),u=require("../../command/Errors"),n=require("../../command/model/CommandResult"),i=(r=>(r[r.BATTERY_PERCENTAGE=0]="BATTERY_PERCENTAGE",r[r.BATTERY_VOLTAGE=1]="BATTERY_VOLTAGE",r[r.BATTERY_TEMPERATURE=2]="BATTERY_TEMPERATURE",r[r.BATTERY_CURRENT=3]="BATTERY_CURRENT",r[r.BATTERY_FLAGS=4]="BATTERY_FLAGS",r))(i||{}),d=(e=>(e[e.NONE=0]="NONE",e[e.USB=1]="USB",e[e.QI=2]="QI",e))(d||{});class x{name="getBatteryStatus";args;constructor(t){this.args=t}getApdu(){const t={cla:224,ins:16,p1:0,p2:this.args.statusType};return new E.ApduBuilder(t).build()}parseResponse(t){const s=new A.ApduParser(t);switch(this.args.statusType){case 0:{const e=s.extract8BitUInt();return e===void 0?(0,n.CommandResultFactory)({error:new u.InvalidBatteryDataError("Cannot parse APDU response")}):(0,n.CommandResultFactory)({data:e>100?-1:e})}case 1:{const e=s.extract16BitUInt();return e===void 0?(0,n.CommandResultFactory)({error:new u.InvalidBatteryDataError("Cannot parse APDU response")}):(0,n.CommandResultFactory)({data:e})}case 2:case 3:{const e=s.extract8BitUInt();return e===void 0?(0,n.CommandResultFactory)({error:new u.InvalidBatteryDataError("Cannot parse APDU response")}):(0,n.CommandResultFactory)({data:e<<24>>24})}case 4:{const e=s.extract32BitUInt();if(e===void 0)return(0,n.CommandResultFactory)({error:new u.InvalidBatteryDataError("Cannot parse APDU response")});const o=!!(e&8),r=!o&&!!(e&1);return(0,n.CommandResultFactory)({data:{charging:r?2:o?1:0,issueCharging:!!(e&16),issueTemperature:!!(e&32),issueBattery:!!(e&128)}})}default:return(0,n.CommandResultFactory)({error:new u.InvalidBatteryStatusTypeError("One or some case(s) not covered")})}}}0&&(module.exports={BatteryStatusType,ChargingMode,GetBatteryStatusCommand});
2
2
  //# sourceMappingURL=GetBatteryStatusCommand.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/api/command/os/GetBatteryStatusCommand.ts"],
4
- "sourcesContent": ["import { type Apdu } from \"@api/apdu/model/Apdu\";\nimport { ApduBuilder, type ApduBuilderArgs } from \"@api/apdu/utils/ApduBuilder\";\nimport { ApduParser } from \"@api/apdu/utils/ApduParser\";\nimport { type Command } from \"@api/command/Command\";\nimport {\n InvalidBatteryDataError,\n InvalidBatteryStatusTypeError,\n} from \"@api/command/Errors\";\nimport {\n type CommandResult,\n CommandResultFactory,\n} from \"@api/command/model/CommandResult\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\n\n/**\n * The type of battery information to retrieve.\n */\nexport enum BatteryStatusType {\n /**\n * The command response will be the battery percentage.\n */\n BATTERY_PERCENTAGE = 0x00,\n /**\n * The command response will be the battery voltage in mV.\n */\n BATTERY_VOLTAGE = 0x01,\n /**\n * The command response will be the battery temperature in degree celsius\n */\n BATTERY_TEMPERATURE = 0x02,\n /**\n * The command response will be the battery current in mA.\n */\n BATTERY_CURRENT = 0x03,\n /**\n * The command response will be the battery status (cf. `BatteryStatusFlags`)\n */\n BATTERY_FLAGS = 0x04,\n}\n\nexport enum ChargingMode {\n NONE = 0x00,\n USB = 0x01,\n QI = 0x02,\n}\n\nenum FlagMasks {\n CHARGING = 0x00000001,\n USB = 0x00000002,\n USB_POWERED = 0x00000008,\n BLE = 0x00000004,\n ISSUE_BATTERY = 0x00000080,\n ISSUE_CHARGING = 0x00000010,\n ISSUE_TEMPERATURE = 0x00000020,\n}\n\nexport type BatteryStatusFlags = {\n readonly charging: ChargingMode;\n readonly issueCharging: boolean;\n readonly issueTemperature: boolean;\n readonly issueBattery: boolean;\n};\n\n/**\n * The response type depends on the `statusType` parameter sent with the command,\n * cf. `BatteryStatusType`.\n */\nexport type GetBatteryStatusResponse = number | BatteryStatusFlags;\n\nexport type GetBatteryStatusArgs = {\n readonly statusType: BatteryStatusType;\n};\n\n/**\n * Command to get the battery status of the device.\n * The parameter statusType defines the type of information to retrieve, cf.\n * `BatteryStatusType`.\n *\n * WARNING: this command should not be sent within a logic of polling as it is\n * going to decrease the overall performance of the communication with the device.\n */\nexport class GetBatteryStatusCommand\n implements Command<GetBatteryStatusResponse, GetBatteryStatusArgs>\n{\n readonly args: GetBatteryStatusArgs;\n\n constructor(args: GetBatteryStatusArgs) {\n this.args = args;\n }\n\n getApdu(): Apdu {\n const getBatteryStatusArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x10,\n p1: 0x00,\n p2: this.args.statusType,\n };\n return new ApduBuilder(getBatteryStatusArgs).build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<GetBatteryStatusResponse> {\n const parser = new ApduParser(apduResponse);\n\n switch (this.args.statusType) {\n case BatteryStatusType.BATTERY_PERCENTAGE: {\n const percentage = parser.extract8BitUInt();\n if (percentage === undefined) {\n return CommandResultFactory({\n error: new InvalidBatteryDataError(\"Cannot parse APDU response\"),\n });\n }\n return CommandResultFactory({\n data: percentage > 100 ? -1 : percentage,\n });\n }\n case BatteryStatusType.BATTERY_VOLTAGE: {\n const data = parser.extract16BitUInt();\n if (data === undefined) {\n return CommandResultFactory({\n error: new InvalidBatteryDataError(\"Cannot parse APDU response\"),\n });\n }\n return CommandResultFactory({\n data,\n });\n }\n case BatteryStatusType.BATTERY_TEMPERATURE:\n case BatteryStatusType.BATTERY_CURRENT: {\n const data = parser.extract8BitUInt();\n if (data === undefined) {\n return CommandResultFactory({\n error: new InvalidBatteryDataError(\"Cannot parse APDU response\"),\n });\n }\n return CommandResultFactory({\n data: (data << 24) >> 24,\n });\n }\n case BatteryStatusType.BATTERY_FLAGS: {\n const flags = parser.extract32BitUInt();\n if (flags === undefined) {\n return CommandResultFactory({\n error: new InvalidBatteryDataError(\"Cannot parse APDU response\"),\n });\n }\n const chargingUSB = !!(flags & FlagMasks.USB_POWERED);\n const chargingQi = !chargingUSB && !!(flags & FlagMasks.CHARGING);\n return CommandResultFactory({\n data: {\n charging: chargingQi\n ? ChargingMode.QI\n : chargingUSB\n ? ChargingMode.USB\n : ChargingMode.NONE,\n issueCharging: !!(flags & FlagMasks.ISSUE_CHARGING),\n issueTemperature: !!(flags & FlagMasks.ISSUE_TEMPERATURE),\n issueBattery: !!(flags & FlagMasks.ISSUE_BATTERY),\n },\n });\n }\n default:\n return CommandResultFactory({\n error: new InvalidBatteryStatusTypeError(\n \"One or some case(s) not covered\",\n ),\n });\n }\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,EAAA,iBAAAC,EAAA,4BAAAC,IAAA,eAAAC,EAAAL,GACA,IAAAM,EAAkD,uCAClDC,EAA2B,sCAE3BC,EAGO,+BACPC,EAGO,4CAMKP,OAIVA,IAAA,mBAAqB,GAArB,qBAIAA,IAAA,gBAAkB,GAAlB,kBAIAA,IAAA,oBAAsB,GAAtB,sBAIAA,IAAA,gBAAkB,GAAlB,kBAIAA,IAAA,cAAgB,GAAhB,gBApBUA,OAAA,IAuBAC,OACVA,IAAA,KAAO,GAAP,OACAA,IAAA,IAAM,GAAN,MACAA,IAAA,GAAK,GAAL,KAHUA,OAAA,IAyCL,MAAMO,CAEb,CACW,KAET,YAAYC,EAA4B,CACtC,KAAK,KAAOA,CACd,CAEA,SAAgB,CACd,MAAMC,EAAwC,CAC5C,IAAK,IACL,IAAK,GACL,GAAI,EACJ,GAAI,KAAK,KAAK,UAChB,EACA,OAAO,IAAI,cAAYA,CAAoB,EAAE,MAAM,CACrD,CAEA,cACEC,EACyC,CACzC,MAAMC,EAAS,IAAI,aAAWD,CAAY,EAE1C,OAAQ,KAAK,KAAK,WAAY,CAC5B,IAAK,GAAsC,CACzC,MAAME,EAAaD,EAAO,gBAAgB,EAC1C,OAAIC,IAAe,UACV,wBAAqB,CAC1B,MAAO,IAAI,0BAAwB,4BAA4B,CACjE,CAAC,KAEI,wBAAqB,CAC1B,KAAMA,EAAa,IAAM,GAAKA,CAChC,CAAC,CACH,CACA,IAAK,GAAmC,CACtC,MAAMC,EAAOF,EAAO,iBAAiB,EACrC,OAAIE,IAAS,UACJ,wBAAqB,CAC1B,MAAO,IAAI,0BAAwB,4BAA4B,CACjE,CAAC,KAEI,wBAAqB,CAC1B,KAAAA,CACF,CAAC,CACH,CACA,IAAK,GACL,IAAK,GAAmC,CACtC,MAAMA,EAAOF,EAAO,gBAAgB,EACpC,OAAIE,IAAS,UACJ,wBAAqB,CAC1B,MAAO,IAAI,0BAAwB,4BAA4B,CACjE,CAAC,KAEI,wBAAqB,CAC1B,KAAOA,GAAQ,IAAO,EACxB,CAAC,CACH,CACA,IAAK,GAAiC,CACpC,MAAMC,EAAQH,EAAO,iBAAiB,EACtC,GAAIG,IAAU,OACZ,SAAO,wBAAqB,CAC1B,MAAO,IAAI,0BAAwB,4BAA4B,CACjE,CAAC,EAEH,MAAMC,EAAc,CAAC,EAAED,EAAQ,GACzBE,EAAa,CAACD,GAAe,CAAC,EAAED,EAAQ,GAC9C,SAAO,wBAAqB,CAC1B,KAAM,CACJ,SAAUE,EACN,EACAD,EACE,EACA,EACN,cAAe,CAAC,EAAED,EAAQ,IAC1B,iBAAkB,CAAC,EAAEA,EAAQ,IAC7B,aAAc,CAAC,EAAEA,EAAQ,IAC3B,CACF,CAAC,CACH,CACA,QACE,SAAO,wBAAqB,CAC1B,MAAO,IAAI,gCACT,iCACF,CACF,CAAC,CACL,CACF,CACF",
4
+ "sourcesContent": ["import { type Apdu } from \"@api/apdu/model/Apdu\";\nimport { ApduBuilder, type ApduBuilderArgs } from \"@api/apdu/utils/ApduBuilder\";\nimport { ApduParser } from \"@api/apdu/utils/ApduParser\";\nimport { type Command } from \"@api/command/Command\";\nimport {\n InvalidBatteryDataError,\n InvalidBatteryStatusTypeError,\n} from \"@api/command/Errors\";\nimport {\n type CommandResult,\n CommandResultFactory,\n} from \"@api/command/model/CommandResult\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\n\n/**\n * The type of battery information to retrieve.\n */\nexport enum BatteryStatusType {\n /**\n * The command response will be the battery percentage.\n */\n BATTERY_PERCENTAGE = 0x00,\n /**\n * The command response will be the battery voltage in mV.\n */\n BATTERY_VOLTAGE = 0x01,\n /**\n * The command response will be the battery temperature in degree celsius\n */\n BATTERY_TEMPERATURE = 0x02,\n /**\n * The command response will be the battery current in mA.\n */\n BATTERY_CURRENT = 0x03,\n /**\n * The command response will be the battery status (cf. `BatteryStatusFlags`)\n */\n BATTERY_FLAGS = 0x04,\n}\n\nexport enum ChargingMode {\n NONE = 0x00,\n USB = 0x01,\n QI = 0x02,\n}\n\nenum FlagMasks {\n CHARGING = 0x00000001,\n USB = 0x00000002,\n USB_POWERED = 0x00000008,\n BLE = 0x00000004,\n ISSUE_BATTERY = 0x00000080,\n ISSUE_CHARGING = 0x00000010,\n ISSUE_TEMPERATURE = 0x00000020,\n}\n\nexport type BatteryStatusFlags = {\n readonly charging: ChargingMode;\n readonly issueCharging: boolean;\n readonly issueTemperature: boolean;\n readonly issueBattery: boolean;\n};\n\n/**\n * The response type depends on the `statusType` parameter sent with the command,\n * cf. `BatteryStatusType`.\n */\nexport type GetBatteryStatusResponse = number | BatteryStatusFlags;\n\nexport type GetBatteryStatusArgs = {\n readonly statusType: BatteryStatusType;\n};\n\n/**\n * Command to get the battery status of the device.\n * The parameter statusType defines the type of information to retrieve, cf.\n * `BatteryStatusType`.\n *\n * WARNING: this command should not be sent within a logic of polling as it is\n * going to decrease the overall performance of the communication with the device.\n */\nexport class GetBatteryStatusCommand\n implements Command<GetBatteryStatusResponse, GetBatteryStatusArgs>\n{\n readonly name = \"getBatteryStatus\";\n readonly args: GetBatteryStatusArgs;\n\n constructor(args: GetBatteryStatusArgs) {\n this.args = args;\n }\n\n getApdu(): Apdu {\n const getBatteryStatusArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x10,\n p1: 0x00,\n p2: this.args.statusType,\n };\n return new ApduBuilder(getBatteryStatusArgs).build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<GetBatteryStatusResponse> {\n const parser = new ApduParser(apduResponse);\n\n switch (this.args.statusType) {\n case BatteryStatusType.BATTERY_PERCENTAGE: {\n const percentage = parser.extract8BitUInt();\n if (percentage === undefined) {\n return CommandResultFactory({\n error: new InvalidBatteryDataError(\"Cannot parse APDU response\"),\n });\n }\n return CommandResultFactory({\n data: percentage > 100 ? -1 : percentage,\n });\n }\n case BatteryStatusType.BATTERY_VOLTAGE: {\n const data = parser.extract16BitUInt();\n if (data === undefined) {\n return CommandResultFactory({\n error: new InvalidBatteryDataError(\"Cannot parse APDU response\"),\n });\n }\n return CommandResultFactory({\n data,\n });\n }\n case BatteryStatusType.BATTERY_TEMPERATURE:\n case BatteryStatusType.BATTERY_CURRENT: {\n const data = parser.extract8BitUInt();\n if (data === undefined) {\n return CommandResultFactory({\n error: new InvalidBatteryDataError(\"Cannot parse APDU response\"),\n });\n }\n return CommandResultFactory({\n data: (data << 24) >> 24,\n });\n }\n case BatteryStatusType.BATTERY_FLAGS: {\n const flags = parser.extract32BitUInt();\n if (flags === undefined) {\n return CommandResultFactory({\n error: new InvalidBatteryDataError(\"Cannot parse APDU response\"),\n });\n }\n const chargingUSB = !!(flags & FlagMasks.USB_POWERED);\n const chargingQi = !chargingUSB && !!(flags & FlagMasks.CHARGING);\n return CommandResultFactory({\n data: {\n charging: chargingQi\n ? ChargingMode.QI\n : chargingUSB\n ? ChargingMode.USB\n : ChargingMode.NONE,\n issueCharging: !!(flags & FlagMasks.ISSUE_CHARGING),\n issueTemperature: !!(flags & FlagMasks.ISSUE_TEMPERATURE),\n issueBattery: !!(flags & FlagMasks.ISSUE_BATTERY),\n },\n });\n }\n default:\n return CommandResultFactory({\n error: new InvalidBatteryStatusTypeError(\n \"One or some case(s) not covered\",\n ),\n });\n }\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,EAAA,iBAAAC,EAAA,4BAAAC,IAAA,eAAAC,EAAAL,GACA,IAAAM,EAAkD,uCAClDC,EAA2B,sCAE3BC,EAGO,+BACPC,EAGO,4CAMKP,OAIVA,IAAA,mBAAqB,GAArB,qBAIAA,IAAA,gBAAkB,GAAlB,kBAIAA,IAAA,oBAAsB,GAAtB,sBAIAA,IAAA,gBAAkB,GAAlB,kBAIAA,IAAA,cAAgB,GAAhB,gBApBUA,OAAA,IAuBAC,OACVA,IAAA,KAAO,GAAP,OACAA,IAAA,IAAM,GAAN,MACAA,IAAA,GAAK,GAAL,KAHUA,OAAA,IAyCL,MAAMO,CAEb,CACW,KAAO,mBACP,KAET,YAAYC,EAA4B,CACtC,KAAK,KAAOA,CACd,CAEA,SAAgB,CACd,MAAMC,EAAwC,CAC5C,IAAK,IACL,IAAK,GACL,GAAI,EACJ,GAAI,KAAK,KAAK,UAChB,EACA,OAAO,IAAI,cAAYA,CAAoB,EAAE,MAAM,CACrD,CAEA,cACEC,EACyC,CACzC,MAAMC,EAAS,IAAI,aAAWD,CAAY,EAE1C,OAAQ,KAAK,KAAK,WAAY,CAC5B,IAAK,GAAsC,CACzC,MAAME,EAAaD,EAAO,gBAAgB,EAC1C,OAAIC,IAAe,UACV,wBAAqB,CAC1B,MAAO,IAAI,0BAAwB,4BAA4B,CACjE,CAAC,KAEI,wBAAqB,CAC1B,KAAMA,EAAa,IAAM,GAAKA,CAChC,CAAC,CACH,CACA,IAAK,GAAmC,CACtC,MAAMC,EAAOF,EAAO,iBAAiB,EACrC,OAAIE,IAAS,UACJ,wBAAqB,CAC1B,MAAO,IAAI,0BAAwB,4BAA4B,CACjE,CAAC,KAEI,wBAAqB,CAC1B,KAAAA,CACF,CAAC,CACH,CACA,IAAK,GACL,IAAK,GAAmC,CACtC,MAAMA,EAAOF,EAAO,gBAAgB,EACpC,OAAIE,IAAS,UACJ,wBAAqB,CAC1B,MAAO,IAAI,0BAAwB,4BAA4B,CACjE,CAAC,KAEI,wBAAqB,CAC1B,KAAOA,GAAQ,IAAO,EACxB,CAAC,CACH,CACA,IAAK,GAAiC,CACpC,MAAMC,EAAQH,EAAO,iBAAiB,EACtC,GAAIG,IAAU,OACZ,SAAO,wBAAqB,CAC1B,MAAO,IAAI,0BAAwB,4BAA4B,CACjE,CAAC,EAEH,MAAMC,EAAc,CAAC,EAAED,EAAQ,GACzBE,EAAa,CAACD,GAAe,CAAC,EAAED,EAAQ,GAC9C,SAAO,wBAAqB,CAC1B,KAAM,CACJ,SAAUE,EACN,EACAD,EACE,EACA,EACN,cAAe,CAAC,EAAED,EAAQ,IAC1B,iBAAkB,CAAC,EAAEA,EAAQ,IAC7B,aAAc,CAAC,EAAEA,EAAQ,IAC3B,CACF,CAAC,CACH,CACA,QACE,SAAO,wBAAqB,CAC1B,MAAO,IAAI,gCACT,iCACF,CACF,CAAC,CACL,CACF,CACF",
6
6
  "names": ["GetBatteryStatusCommand_exports", "__export", "BatteryStatusType", "ChargingMode", "GetBatteryStatusCommand", "__toCommonJS", "import_ApduBuilder", "import_ApduParser", "import_Errors", "import_CommandResult", "GetBatteryStatusCommand", "args", "getBatteryStatusArgs", "apduResponse", "parser", "percentage", "data", "flags", "chargingUSB", "chargingQi"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var a=require("../../command/model/CommandResult"),r=require("../../device-session/ApduResponse"),t=require("./GetBatteryStatusCommand");const p=Uint8Array.from([224,16,0,0,0]),u=Uint8Array.from([224,16,0,1,0]),R=Uint8Array.from([224,16,0,2,0]),d=Uint8Array.from([224,16,0,3,0]),i=Uint8Array.from([224,16,0,4,0]),o=Uint8Array.from([55,144,0]),n=Uint8Array.from([15,255,144,0]),T=Uint8Array.from([16,144,0]),c=Uint8Array.from([0,0,0,15,144,0]),A=Uint8Array.from([103,0]);describe("GetBatteryStatus",()=>{describe("getApdu",()=>{it("should return the GetBatteryStatus APDU",()=>{expect(new t.GetBatteryStatusCommand({statusType:t.BatteryStatusType.BATTERY_PERCENTAGE}).getApdu().getRawApdu()).toStrictEqual(p),expect(new t.GetBatteryStatusCommand({statusType:t.BatteryStatusType.BATTERY_VOLTAGE}).getApdu().getRawApdu()).toStrictEqual(u),expect(new t.GetBatteryStatusCommand({statusType:t.BatteryStatusType.BATTERY_TEMPERATURE}).getApdu().getRawApdu()).toStrictEqual(R),expect(new t.GetBatteryStatusCommand({statusType:t.BatteryStatusType.BATTERY_CURRENT}).getApdu().getRawApdu()).toStrictEqual(d),expect(new t.GetBatteryStatusCommand({statusType:t.BatteryStatusType.BATTERY_FLAGS}).getApdu().getRawApdu()).toStrictEqual(i)})}),describe("parseResponse",()=>{it("should parse the response when querying percentage",()=>{const e=new r.ApduResponse({statusCode:o.slice(-2),data:o.slice(0,-2)}),s=new t.GetBatteryStatusCommand({statusType:t.BatteryStatusType.BATTERY_PERCENTAGE}).parseResponse(e);expect(s).toStrictEqual((0,a.CommandResultFactory)({data:55}))}),it("should parse the response when querying voltage",()=>{const e=new r.ApduResponse({statusCode:n.slice(-2),data:n.slice(0,-2)}),s=new t.GetBatteryStatusCommand({statusType:t.BatteryStatusType.BATTERY_VOLTAGE}).parseResponse(e);expect(s).toStrictEqual((0,a.CommandResultFactory)({data:4095}))}),it("should parse the response when querying temperature",()=>{const e=new r.ApduResponse({statusCode:T.slice(-2),data:T.slice(0,-2)}),s=new t.GetBatteryStatusCommand({statusType:t.BatteryStatusType.BATTERY_TEMPERATURE}).parseResponse(e);expect(s).toStrictEqual((0,a.CommandResultFactory)({data:16}))}),it("should parse the response when querying flags",()=>{const e=new r.ApduResponse({statusCode:c.slice(-2),data:c.slice(0,-2)}),s=new t.GetBatteryStatusCommand({statusType:t.BatteryStatusType.BATTERY_FLAGS}).parseResponse(e);expect(s).toStrictEqual((0,a.CommandResultFactory)({data:{charging:t.ChargingMode.USB,issueCharging:!1,issueTemperature:!1,issueBattery:!1}}))}),it("should return an error if the response returned unsupported format",()=>{const e=new r.ApduResponse({statusCode:A.slice(-2),data:A.slice(0,-2)}),s=new t.GetBatteryStatusCommand({statusType:t.BatteryStatusType.BATTERY_PERCENTAGE}).parseResponse(e);expect((0,a.isSuccessCommandResult)(s)).toBeFalsy()})})});
1
+ "use strict";var a=require("../../command/model/CommandResult"),r=require("../../device-session/ApduResponse"),t=require("./GetBatteryStatusCommand");const p=Uint8Array.from([224,16,0,0,0]),u=Uint8Array.from([224,16,0,1,0]),R=Uint8Array.from([224,16,0,2,0]),d=Uint8Array.from([224,16,0,3,0]),i=Uint8Array.from([224,16,0,4,0]),n=Uint8Array.from([55,144,0]),o=Uint8Array.from([15,255,144,0]),T=Uint8Array.from([16,144,0]),c=Uint8Array.from([0,0,0,15,144,0]),A=Uint8Array.from([103,0]);describe("GetBatteryStatus",()=>{describe("name",()=>{it("should be 'getBatteryStatus'",()=>{const e=new t.GetBatteryStatusCommand({statusType:t.BatteryStatusType.BATTERY_PERCENTAGE});expect(e.name).toBe("getBatteryStatus")})}),describe("getApdu",()=>{it("should return the GetBatteryStatus APDU",()=>{expect(new t.GetBatteryStatusCommand({statusType:t.BatteryStatusType.BATTERY_PERCENTAGE}).getApdu().getRawApdu()).toStrictEqual(p),expect(new t.GetBatteryStatusCommand({statusType:t.BatteryStatusType.BATTERY_VOLTAGE}).getApdu().getRawApdu()).toStrictEqual(u),expect(new t.GetBatteryStatusCommand({statusType:t.BatteryStatusType.BATTERY_TEMPERATURE}).getApdu().getRawApdu()).toStrictEqual(R),expect(new t.GetBatteryStatusCommand({statusType:t.BatteryStatusType.BATTERY_CURRENT}).getApdu().getRawApdu()).toStrictEqual(d),expect(new t.GetBatteryStatusCommand({statusType:t.BatteryStatusType.BATTERY_FLAGS}).getApdu().getRawApdu()).toStrictEqual(i)})}),describe("parseResponse",()=>{it("should parse the response when querying percentage",()=>{const e=new r.ApduResponse({statusCode:n.slice(-2),data:n.slice(0,-2)}),s=new t.GetBatteryStatusCommand({statusType:t.BatteryStatusType.BATTERY_PERCENTAGE}).parseResponse(e);expect(s).toStrictEqual((0,a.CommandResultFactory)({data:55}))}),it("should parse the response when querying voltage",()=>{const e=new r.ApduResponse({statusCode:o.slice(-2),data:o.slice(0,-2)}),s=new t.GetBatteryStatusCommand({statusType:t.BatteryStatusType.BATTERY_VOLTAGE}).parseResponse(e);expect(s).toStrictEqual((0,a.CommandResultFactory)({data:4095}))}),it("should parse the response when querying temperature",()=>{const e=new r.ApduResponse({statusCode:T.slice(-2),data:T.slice(0,-2)}),s=new t.GetBatteryStatusCommand({statusType:t.BatteryStatusType.BATTERY_TEMPERATURE}).parseResponse(e);expect(s).toStrictEqual((0,a.CommandResultFactory)({data:16}))}),it("should parse the response when querying flags",()=>{const e=new r.ApduResponse({statusCode:c.slice(-2),data:c.slice(0,-2)}),s=new t.GetBatteryStatusCommand({statusType:t.BatteryStatusType.BATTERY_FLAGS}).parseResponse(e);expect(s).toStrictEqual((0,a.CommandResultFactory)({data:{charging:t.ChargingMode.USB,issueCharging:!1,issueTemperature:!1,issueBattery:!1}}))}),it("should return an error if the response returned unsupported format",()=>{const e=new r.ApduResponse({statusCode:A.slice(-2),data:A.slice(0,-2)}),s=new t.GetBatteryStatusCommand({statusType:t.BatteryStatusType.BATTERY_PERCENTAGE}).parseResponse(e);expect((0,a.isSuccessCommandResult)(s)).toBeFalsy()})})});
2
2
  //# sourceMappingURL=GetBatteryStatusCommand.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/api/command/os/GetBatteryStatusCommand.test.ts"],
4
- "sourcesContent": ["import {\n CommandResultFactory,\n isSuccessCommandResult,\n} from \"@api/command/model/CommandResult\";\nimport { ApduResponse } from \"@api/device-session/ApduResponse\";\n\nimport {\n BatteryStatusType,\n ChargingMode,\n GetBatteryStatusCommand,\n} from \"./GetBatteryStatusCommand\";\n\nconst GET_BATTERY_STATUS_APDU_PERCENTAGE = Uint8Array.from([\n 0xe0, 0x10, 0x00, 0x00, 0x00,\n]);\nconst GET_BATTERY_STATUS_APDU_VOLTAGE = Uint8Array.from([\n 0xe0, 0x10, 0x00, 0x01, 0x00,\n]);\nconst GET_BATTERY_STATUS_APDU_TEMPERATURE = Uint8Array.from([\n 0xe0, 0x10, 0x00, 0x02, 0x00,\n]);\nconst GET_BATTERY_STATUS_APDU_CURRENT = Uint8Array.from([\n 0xe0, 0x10, 0x00, 0x03, 0x00,\n]);\nconst GET_BATTERY_STATUS_APDU_FLAGS = Uint8Array.from([\n 0xe0, 0x10, 0x00, 0x04, 0x00,\n]);\n\nconst PERCENTAGE_RESPONSE_HEX = Uint8Array.from([0x37, 0x90, 0x00]);\nconst VOLTAGE_RESPONSE_HEX = Uint8Array.from([0x0f, 0xff, 0x90, 0x00]);\nconst TEMPERATURE_RESPONSE_HEX = Uint8Array.from([0x10, 0x90, 0x00]);\nconst FLAGS_RESPONSE_HEX = Uint8Array.from([\n 0x00, 0x00, 0x00, 0x0f, 0x90, 0x00,\n]);\nconst FAILED_RESPONSE_HEX = Uint8Array.from([0x67, 0x00]);\n\ndescribe(\"GetBatteryStatus\", () => {\n describe(\"getApdu\", () => {\n it(\"should return the GetBatteryStatus APDU\", () => {\n expect(\n new GetBatteryStatusCommand({\n statusType: BatteryStatusType.BATTERY_PERCENTAGE,\n })\n .getApdu()\n .getRawApdu(),\n ).toStrictEqual(GET_BATTERY_STATUS_APDU_PERCENTAGE);\n expect(\n new GetBatteryStatusCommand({\n statusType: BatteryStatusType.BATTERY_VOLTAGE,\n })\n .getApdu()\n .getRawApdu(),\n ).toStrictEqual(GET_BATTERY_STATUS_APDU_VOLTAGE);\n expect(\n new GetBatteryStatusCommand({\n statusType: BatteryStatusType.BATTERY_TEMPERATURE,\n })\n .getApdu()\n .getRawApdu(),\n ).toStrictEqual(GET_BATTERY_STATUS_APDU_TEMPERATURE);\n expect(\n new GetBatteryStatusCommand({\n statusType: BatteryStatusType.BATTERY_CURRENT,\n })\n .getApdu()\n .getRawApdu(),\n ).toStrictEqual(GET_BATTERY_STATUS_APDU_CURRENT);\n expect(\n new GetBatteryStatusCommand({\n statusType: BatteryStatusType.BATTERY_FLAGS,\n })\n .getApdu()\n .getRawApdu(),\n ).toStrictEqual(GET_BATTERY_STATUS_APDU_FLAGS);\n });\n });\n describe(\"parseResponse\", () => {\n it(\"should parse the response when querying percentage\", () => {\n const PERCENTAGE_RESPONSE = new ApduResponse({\n statusCode: PERCENTAGE_RESPONSE_HEX.slice(-2),\n data: PERCENTAGE_RESPONSE_HEX.slice(0, -2),\n });\n const command = new GetBatteryStatusCommand({\n statusType: BatteryStatusType.BATTERY_PERCENTAGE,\n });\n const parsed = command.parseResponse(PERCENTAGE_RESPONSE);\n expect(parsed).toStrictEqual(CommandResultFactory({ data: 55 }));\n });\n it(\"should parse the response when querying voltage\", () => {\n const VOLTAGE_RESPONSE = new ApduResponse({\n statusCode: VOLTAGE_RESPONSE_HEX.slice(-2),\n data: VOLTAGE_RESPONSE_HEX.slice(0, -2),\n });\n const command = new GetBatteryStatusCommand({\n statusType: BatteryStatusType.BATTERY_VOLTAGE,\n });\n const parsed = command.parseResponse(VOLTAGE_RESPONSE);\n expect(parsed).toStrictEqual(CommandResultFactory({ data: 4095 }));\n });\n it(\"should parse the response when querying temperature\", () => {\n const TEMPERATURE_RESPONSE = new ApduResponse({\n statusCode: TEMPERATURE_RESPONSE_HEX.slice(-2),\n data: TEMPERATURE_RESPONSE_HEX.slice(0, -2),\n });\n const command = new GetBatteryStatusCommand({\n statusType: BatteryStatusType.BATTERY_TEMPERATURE,\n });\n const parsed = command.parseResponse(TEMPERATURE_RESPONSE);\n expect(parsed).toStrictEqual(CommandResultFactory({ data: 16 }));\n });\n it(\"should parse the response when querying flags\", () => {\n const FLAGS_RESPONSE = new ApduResponse({\n statusCode: FLAGS_RESPONSE_HEX.slice(-2),\n data: FLAGS_RESPONSE_HEX.slice(0, -2),\n });\n const command = new GetBatteryStatusCommand({\n statusType: BatteryStatusType.BATTERY_FLAGS,\n });\n const parsed = command.parseResponse(FLAGS_RESPONSE);\n expect(parsed).toStrictEqual(\n CommandResultFactory({\n data: {\n charging: ChargingMode.USB,\n issueCharging: false,\n issueTemperature: false,\n issueBattery: false,\n },\n }),\n );\n });\n it(\"should return an error if the response returned unsupported format\", () => {\n const FAILED_RESPONSE = new ApduResponse({\n statusCode: FAILED_RESPONSE_HEX.slice(-2),\n data: FAILED_RESPONSE_HEX.slice(0, -2),\n });\n const command = new GetBatteryStatusCommand({\n statusType: BatteryStatusType.BATTERY_PERCENTAGE,\n });\n const result = command.parseResponse(FAILED_RESPONSE);\n expect(isSuccessCommandResult(result)).toBeFalsy();\n });\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["import_CommandResult", "import_ApduResponse", "import_GetBatteryStatusCommand", "GET_BATTERY_STATUS_APDU_PERCENTAGE", "GET_BATTERY_STATUS_APDU_VOLTAGE", "GET_BATTERY_STATUS_APDU_TEMPERATURE", "GET_BATTERY_STATUS_APDU_CURRENT", "GET_BATTERY_STATUS_APDU_FLAGS", "PERCENTAGE_RESPONSE_HEX", "VOLTAGE_RESPONSE_HEX", "TEMPERATURE_RESPONSE_HEX", "FLAGS_RESPONSE_HEX", "FAILED_RESPONSE_HEX", "PERCENTAGE_RESPONSE", "parsed", "VOLTAGE_RESPONSE", "TEMPERATURE_RESPONSE", "FLAGS_RESPONSE", "FAILED_RESPONSE", "result"]
4
+ "sourcesContent": ["import {\n CommandResultFactory,\n isSuccessCommandResult,\n} from \"@api/command/model/CommandResult\";\nimport { ApduResponse } from \"@api/device-session/ApduResponse\";\n\nimport {\n BatteryStatusType,\n ChargingMode,\n GetBatteryStatusCommand,\n} from \"./GetBatteryStatusCommand\";\n\nconst GET_BATTERY_STATUS_APDU_PERCENTAGE = Uint8Array.from([\n 0xe0, 0x10, 0x00, 0x00, 0x00,\n]);\nconst GET_BATTERY_STATUS_APDU_VOLTAGE = Uint8Array.from([\n 0xe0, 0x10, 0x00, 0x01, 0x00,\n]);\nconst GET_BATTERY_STATUS_APDU_TEMPERATURE = Uint8Array.from([\n 0xe0, 0x10, 0x00, 0x02, 0x00,\n]);\nconst GET_BATTERY_STATUS_APDU_CURRENT = Uint8Array.from([\n 0xe0, 0x10, 0x00, 0x03, 0x00,\n]);\nconst GET_BATTERY_STATUS_APDU_FLAGS = Uint8Array.from([\n 0xe0, 0x10, 0x00, 0x04, 0x00,\n]);\n\nconst PERCENTAGE_RESPONSE_HEX = Uint8Array.from([0x37, 0x90, 0x00]);\nconst VOLTAGE_RESPONSE_HEX = Uint8Array.from([0x0f, 0xff, 0x90, 0x00]);\nconst TEMPERATURE_RESPONSE_HEX = Uint8Array.from([0x10, 0x90, 0x00]);\nconst FLAGS_RESPONSE_HEX = Uint8Array.from([\n 0x00, 0x00, 0x00, 0x0f, 0x90, 0x00,\n]);\nconst FAILED_RESPONSE_HEX = Uint8Array.from([0x67, 0x00]);\n\ndescribe(\"GetBatteryStatus\", () => {\n describe(\"name\", () => {\n it(\"should be 'getBatteryStatus'\", () => {\n const command = new GetBatteryStatusCommand({\n statusType: BatteryStatusType.BATTERY_PERCENTAGE,\n });\n expect(command.name).toBe(\"getBatteryStatus\");\n });\n });\n\n describe(\"getApdu\", () => {\n it(\"should return the GetBatteryStatus APDU\", () => {\n expect(\n new GetBatteryStatusCommand({\n statusType: BatteryStatusType.BATTERY_PERCENTAGE,\n })\n .getApdu()\n .getRawApdu(),\n ).toStrictEqual(GET_BATTERY_STATUS_APDU_PERCENTAGE);\n expect(\n new GetBatteryStatusCommand({\n statusType: BatteryStatusType.BATTERY_VOLTAGE,\n })\n .getApdu()\n .getRawApdu(),\n ).toStrictEqual(GET_BATTERY_STATUS_APDU_VOLTAGE);\n expect(\n new GetBatteryStatusCommand({\n statusType: BatteryStatusType.BATTERY_TEMPERATURE,\n })\n .getApdu()\n .getRawApdu(),\n ).toStrictEqual(GET_BATTERY_STATUS_APDU_TEMPERATURE);\n expect(\n new GetBatteryStatusCommand({\n statusType: BatteryStatusType.BATTERY_CURRENT,\n })\n .getApdu()\n .getRawApdu(),\n ).toStrictEqual(GET_BATTERY_STATUS_APDU_CURRENT);\n expect(\n new GetBatteryStatusCommand({\n statusType: BatteryStatusType.BATTERY_FLAGS,\n })\n .getApdu()\n .getRawApdu(),\n ).toStrictEqual(GET_BATTERY_STATUS_APDU_FLAGS);\n });\n });\n describe(\"parseResponse\", () => {\n it(\"should parse the response when querying percentage\", () => {\n const PERCENTAGE_RESPONSE = new ApduResponse({\n statusCode: PERCENTAGE_RESPONSE_HEX.slice(-2),\n data: PERCENTAGE_RESPONSE_HEX.slice(0, -2),\n });\n const command = new GetBatteryStatusCommand({\n statusType: BatteryStatusType.BATTERY_PERCENTAGE,\n });\n const parsed = command.parseResponse(PERCENTAGE_RESPONSE);\n expect(parsed).toStrictEqual(CommandResultFactory({ data: 55 }));\n });\n it(\"should parse the response when querying voltage\", () => {\n const VOLTAGE_RESPONSE = new ApduResponse({\n statusCode: VOLTAGE_RESPONSE_HEX.slice(-2),\n data: VOLTAGE_RESPONSE_HEX.slice(0, -2),\n });\n const command = new GetBatteryStatusCommand({\n statusType: BatteryStatusType.BATTERY_VOLTAGE,\n });\n const parsed = command.parseResponse(VOLTAGE_RESPONSE);\n expect(parsed).toStrictEqual(CommandResultFactory({ data: 4095 }));\n });\n it(\"should parse the response when querying temperature\", () => {\n const TEMPERATURE_RESPONSE = new ApduResponse({\n statusCode: TEMPERATURE_RESPONSE_HEX.slice(-2),\n data: TEMPERATURE_RESPONSE_HEX.slice(0, -2),\n });\n const command = new GetBatteryStatusCommand({\n statusType: BatteryStatusType.BATTERY_TEMPERATURE,\n });\n const parsed = command.parseResponse(TEMPERATURE_RESPONSE);\n expect(parsed).toStrictEqual(CommandResultFactory({ data: 16 }));\n });\n it(\"should parse the response when querying flags\", () => {\n const FLAGS_RESPONSE = new ApduResponse({\n statusCode: FLAGS_RESPONSE_HEX.slice(-2),\n data: FLAGS_RESPONSE_HEX.slice(0, -2),\n });\n const command = new GetBatteryStatusCommand({\n statusType: BatteryStatusType.BATTERY_FLAGS,\n });\n const parsed = command.parseResponse(FLAGS_RESPONSE);\n expect(parsed).toStrictEqual(\n CommandResultFactory({\n data: {\n charging: ChargingMode.USB,\n issueCharging: false,\n issueTemperature: false,\n issueBattery: false,\n },\n }),\n );\n });\n it(\"should return an error if the response returned unsupported format\", () => {\n const FAILED_RESPONSE = new ApduResponse({\n statusCode: FAILED_RESPONSE_HEX.slice(-2),\n data: FAILED_RESPONSE_HEX.slice(0, -2),\n });\n const command = new GetBatteryStatusCommand({\n statusType: BatteryStatusType.BATTERY_PERCENTAGE,\n });\n const result = command.parseResponse(FAILED_RESPONSE);\n expect(isSuccessCommandResult(result)).toBeFalsy();\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_CommandResult", "import_ApduResponse", "import_GetBatteryStatusCommand", "GET_BATTERY_STATUS_APDU_PERCENTAGE", "GET_BATTERY_STATUS_APDU_VOLTAGE", "GET_BATTERY_STATUS_APDU_TEMPERATURE", "GET_BATTERY_STATUS_APDU_CURRENT", "GET_BATTERY_STATUS_APDU_FLAGS", "PERCENTAGE_RESPONSE_HEX", "VOLTAGE_RESPONSE_HEX", "TEMPERATURE_RESPONSE_HEX", "FLAGS_RESPONSE_HEX", "FAILED_RESPONSE_HEX", "command", "PERCENTAGE_RESPONSE", "parsed", "VOLTAGE_RESPONSE", "TEMPERATURE_RESPONSE", "FLAGS_RESPONSE", "FAILED_RESPONSE", "result"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";var a=Object.defineProperty;var I=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var S=Object.prototype.hasOwnProperty;var f=(r,e)=>{for(var o in e)a(r,o,{get:e[o],enumerable:!0})},z=(r,e,o,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let m of E(e))!S.call(r,m)&&m!==o&&a(r,m,{get:()=>e[m],enumerable:!(t=I(e,m))||t.enumerable});return r};var G=r=>z(a({},"__esModule",{value:!0}),r);var y={};f(y,{GetCustomImageSizeCommand:()=>A,GetCustomImageSizeCommandError:()=>c});module.exports=G(y);var d=require("../../apdu/utils/ApduBuilder"),i=require("../../apdu/utils/ApduParser"),u=require("../../command/Errors"),s=require("../../command/model/CommandResult"),p=require("../../command/utils/CommandErrors"),C=require("../../command/utils/CommandUtils"),g=require("../../command/utils/GlobalCommandError"),l=require("../../Error");const n={"662e":{message:"Invalid state, no background image loaded."},"662f":{message:"Invalid state, device is in recovery mode."}};class c extends l.DeviceExchangeError{constructor({message:e,errorCode:o}){super({message:e,errorCode:o,tag:"GetCustomImageSizeCommandError"})}}class A{name="getCustomImageSize";getApdu(){const e={cla:224,ins:100,p1:0,p2:0};return new d.ApduBuilder(e).build()}parseResponse(e){const o=new i.ApduParser(e);if(!C.CommandUtils.isSuccessResponse(e)){const m=o.encodeToHexaString(e.statusCode);return(0,p.isCommandErrorCode)(m,n)?(0,s.CommandResultFactory)({error:new c({...n[m],errorCode:m})}):(0,s.CommandResultFactory)({error:g.GlobalCommandErrorHandler.handle(e)})}const t=o.extract32BitUInt();return t===void 0?(0,s.CommandResultFactory)({error:new u.InvalidStatusWordError("Didn't receive any size")}):(0,s.CommandResultFactory)({data:t})}}0&&(module.exports={GetCustomImageSizeCommand,GetCustomImageSizeCommandError});
2
+ //# sourceMappingURL=GetCustomImageSizeCommand.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/api/command/os/GetCustomImageSizeCommand.ts"],
4
+ "sourcesContent": ["import { type Apdu } from \"@api/apdu/model/Apdu\";\nimport { ApduBuilder, type ApduBuilderArgs } from \"@api/apdu/utils/ApduBuilder\";\nimport { ApduParser } from \"@api/apdu/utils/ApduParser\";\nimport { type Command } from \"@api/command/Command\";\nimport { InvalidStatusWordError } from \"@api/command/Errors\";\nimport {\n type CommandResult,\n CommandResultFactory,\n} from \"@api/command/model/CommandResult\";\nimport {\n type CommandErrors,\n isCommandErrorCode,\n} from \"@api/command/utils/CommandErrors\";\nimport { CommandUtils } from \"@api/command/utils/CommandUtils\";\nimport { GlobalCommandErrorHandler } from \"@api/command/utils/GlobalCommandError\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport { type CommandErrorArgs, DeviceExchangeError } from \"@api/Error\";\n\nexport type GetCustomImageSizeResponse = number;\n\nexport type GetCustomImageSizeErrorCodes = \"662e\" | \"662f\";\n\nconst IMAGE_SIZE_ERRORS: CommandErrors<GetCustomImageSizeErrorCodes> = {\n \"662e\": { message: \"Invalid state, no background image loaded.\" },\n \"662f\": { message: \"Invalid state, device is in recovery mode.\" },\n};\n\nexport type GetCustomImageSizeCommandResult = CommandResult<\n GetCustomImageSizeResponse,\n GetCustomImageSizeErrorCodes\n>;\n\nexport class GetCustomImageSizeCommandError extends DeviceExchangeError<GetCustomImageSizeErrorCodes> {\n constructor({\n message,\n errorCode,\n }: CommandErrorArgs<GetCustomImageSizeErrorCodes>) {\n super({ message, errorCode, tag: \"GetCustomImageSizeCommandError\" });\n }\n}\n\nexport class GetCustomImageSizeCommand\n implements\n Command<GetCustomImageSizeResponse, void, GetCustomImageSizeErrorCodes>\n{\n readonly name = \"getCustomImageSize\";\n\n getApdu(): Apdu {\n const apduArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x64,\n p1: 0x00,\n p2: 0x00,\n };\n return new ApduBuilder(apduArgs).build();\n }\n\n parseResponse(apduResponse: ApduResponse): GetCustomImageSizeCommandResult {\n const parser = new ApduParser(apduResponse);\n\n if (!CommandUtils.isSuccessResponse(apduResponse)) {\n const errorCode = parser.encodeToHexaString(apduResponse.statusCode);\n if (isCommandErrorCode(errorCode, IMAGE_SIZE_ERRORS)) {\n return CommandResultFactory({\n error: new GetCustomImageSizeCommandError({\n ...IMAGE_SIZE_ERRORS[errorCode],\n errorCode,\n }),\n });\n }\n return CommandResultFactory({\n error: GlobalCommandErrorHandler.handle(apduResponse),\n });\n }\n\n const size = parser.extract32BitUInt();\n if (size === undefined) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Didn't receive any size\"),\n });\n }\n\n return CommandResultFactory({\n data: size,\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,+BAAAE,EAAA,mCAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAAkD,uCAClDC,EAA2B,sCAE3BC,EAAuC,+BACvCC,EAGO,4CACPC,EAGO,4CACPC,EAA6B,2CAC7BC,EAA0C,iDAE1CC,EAA2D,sBAM3D,MAAMC,EAAiE,CACrE,OAAQ,CAAE,QAAS,4CAA6C,EAChE,OAAQ,CAAE,QAAS,4CAA6C,CAClE,EAOO,MAAMV,UAAuC,qBAAkD,CACpG,YAAY,CACV,QAAAW,EACA,UAAAC,CACF,EAAmD,CACjD,MAAM,CAAE,QAAAD,EAAS,UAAAC,EAAW,IAAK,gCAAiC,CAAC,CACrE,CACF,CAEO,MAAMb,CAGb,CACW,KAAO,qBAEhB,SAAgB,CACd,MAAMc,EAA4B,CAChC,IAAK,IACL,IAAK,IACL,GAAI,EACJ,GAAI,CACN,EACA,OAAO,IAAI,cAAYA,CAAQ,EAAE,MAAM,CACzC,CAEA,cAAcC,EAA6D,CACzE,MAAMC,EAAS,IAAI,aAAWD,CAAY,EAE1C,GAAI,CAAC,eAAa,kBAAkBA,CAAY,EAAG,CACjD,MAAMF,EAAYG,EAAO,mBAAmBD,EAAa,UAAU,EACnE,SAAI,sBAAmBF,EAAWF,CAAiB,KAC1C,wBAAqB,CAC1B,MAAO,IAAIV,EAA+B,CACxC,GAAGU,EAAkBE,CAAS,EAC9B,UAAAA,CACF,CAAC,CACH,CAAC,KAEI,wBAAqB,CAC1B,MAAO,4BAA0B,OAAOE,CAAY,CACtD,CAAC,CACH,CAEA,MAAME,EAAOD,EAAO,iBAAiB,EACrC,OAAIC,IAAS,UACJ,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,yBAAyB,CAC7D,CAAC,KAGI,wBAAqB,CAC1B,KAAMA,CACR,CAAC,CACH,CACF",
6
+ "names": ["GetCustomImageSizeCommand_exports", "__export", "GetCustomImageSizeCommand", "GetCustomImageSizeCommandError", "__toCommonJS", "import_ApduBuilder", "import_ApduParser", "import_Errors", "import_CommandResult", "import_CommandErrors", "import_CommandUtils", "import_GlobalCommandError", "import_Error", "IMAGE_SIZE_ERRORS", "message", "errorCode", "apduArgs", "apduResponse", "parser", "size"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var n=require("../../command/Errors"),r=require("../../command/model/CommandResult"),a=require("../../command/model/CommandResult"),i=require("../../command/os/GetCustomImageSizeCommand"),o=require("../../device-session/ApduResponse");const m=new Uint8Array([224,100,0,0,0]);describe("GetCustomImageSizeCommand",()=>{let t;beforeEach(()=>{t=new i.GetCustomImageSizeCommand}),describe("name",()=>{it("should be 'getCustomImageSize'",()=>{expect(t.name).toBe("getCustomImageSize")})}),it("should return the correct APDU",()=>{const e=t.getApdu();expect(e.getRawApdu()).toStrictEqual(m)}),it("should parse result successfully",()=>{const e=new o.ApduResponse({statusCode:new Uint8Array([144,0]),data:new Uint8Array([0,0,137,233])}),s=t.parseResponse(e);expect(s).toStrictEqual((0,r.CommandResultFactory)({data:35305}))}),it("should fail on invalid size",()=>{const e=new o.ApduResponse({statusCode:new Uint8Array([144,0]),data:new Uint8Array([233])}),s=t.parseResponse(e);expect(s).toStrictEqual((0,r.CommandResultFactory)({error:new n.InvalidStatusWordError("Didn't receive any size")}))}),it("should fail on device error",()=>{const e=new o.ApduResponse({statusCode:new Uint8Array([102,46]),data:new Uint8Array([])}),s=t.parseResponse(e);expect((0,a.isSuccessCommandResult)(s)).toBeFalsy()})});
2
+ //# sourceMappingURL=GetCustomImageSizeCommand.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/api/command/os/GetCustomImageSizeCommand.test.ts"],
4
+ "sourcesContent": ["import { InvalidStatusWordError } from \"@api/command/Errors\";\nimport { CommandResultFactory } from \"@api/command/model/CommandResult\";\nimport { isSuccessCommandResult } from \"@api/command/model/CommandResult\";\nimport { GetCustomImageSizeCommand } from \"@api/command/os/GetCustomImageSizeCommand\";\nimport { ApduResponse } from \"@api/device-session/ApduResponse\";\n\nconst IMAGE_SIZE_APDU = new Uint8Array([0xe0, 0x64, 0x00, 0x00, 0x00]);\n\ndescribe(\"GetCustomImageSizeCommand\", () => {\n let command: GetCustomImageSizeCommand;\n\n beforeEach(() => {\n command = new GetCustomImageSizeCommand();\n });\n\n describe(\"name\", () => {\n it(\"should be 'getCustomImageSize'\", () => {\n expect(command.name).toBe(\"getCustomImageSize\");\n });\n });\n\n it(\"should return the correct APDU\", () => {\n const apdu = command.getApdu();\n expect(apdu.getRawApdu()).toStrictEqual(IMAGE_SIZE_APDU);\n });\n\n it(\"should parse result successfully\", () => {\n const response: ApduResponse = new ApduResponse({\n statusCode: new Uint8Array([0x90, 0x00]),\n data: new Uint8Array([0x00, 0x00, 0x89, 0xe9]),\n });\n const result = command.parseResponse(response);\n expect(result).toStrictEqual(\n CommandResultFactory({\n data: 35305,\n }),\n );\n });\n\n it(\"should fail on invalid size\", () => {\n const response: ApduResponse = new ApduResponse({\n statusCode: new Uint8Array([0x90, 0x00]),\n data: new Uint8Array([0xe9]),\n });\n const result = command.parseResponse(response);\n expect(result).toStrictEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"Didn't receive any size\"),\n }),\n );\n });\n\n it(\"should fail on device error\", () => {\n const response: ApduResponse = new ApduResponse({\n statusCode: new Uint8Array([0x66, 0x2e]),\n data: new Uint8Array([]),\n });\n const result = command.parseResponse(response);\n expect(isSuccessCommandResult(result)).toBeFalsy();\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAAuC,+BACvCC,EAAqC,4CACrCA,EAAuC,4CACvCC,EAA0C,qDAC1CC,EAA6B,4CAE7B,MAAMC,EAAkB,IAAI,WAAW,CAAC,IAAM,IAAM,EAAM,EAAM,CAAI,CAAC,EAErE,SAAS,4BAA6B,IAAM,CAC1C,IAAIC,EAEJ,WAAW,IAAM,CACfA,EAAU,IAAI,2BAChB,CAAC,EAED,SAAS,OAAQ,IAAM,CACrB,GAAG,iCAAkC,IAAM,CACzC,OAAOA,EAAQ,IAAI,EAAE,KAAK,oBAAoB,CAChD,CAAC,CACH,CAAC,EAED,GAAG,iCAAkC,IAAM,CACzC,MAAMC,EAAOD,EAAQ,QAAQ,EAC7B,OAAOC,EAAK,WAAW,CAAC,EAAE,cAAcF,CAAe,CACzD,CAAC,EAED,GAAG,mCAAoC,IAAM,CAC3C,MAAMG,EAAyB,IAAI,eAAa,CAC9C,WAAY,IAAI,WAAW,CAAC,IAAM,CAAI,CAAC,EACvC,KAAM,IAAI,WAAW,CAAC,EAAM,EAAM,IAAM,GAAI,CAAC,CAC/C,CAAC,EACKC,EAASH,EAAQ,cAAcE,CAAQ,EAC7C,OAAOC,CAAM,EAAE,iBACb,wBAAqB,CACnB,KAAM,KACR,CAAC,CACH,CACF,CAAC,EAED,GAAG,8BAA+B,IAAM,CACtC,MAAMD,EAAyB,IAAI,eAAa,CAC9C,WAAY,IAAI,WAAW,CAAC,IAAM,CAAI,CAAC,EACvC,KAAM,IAAI,WAAW,CAAC,GAAI,CAAC,CAC7B,CAAC,EACKC,EAASH,EAAQ,cAAcE,CAAQ,EAC7C,OAAOC,CAAM,EAAE,iBACb,wBAAqB,CACnB,MAAO,IAAI,yBAAuB,yBAAyB,CAC7D,CAAC,CACH,CACF,CAAC,EAED,GAAG,8BAA+B,IAAM,CACtC,MAAMD,EAAyB,IAAI,eAAa,CAC9C,WAAY,IAAI,WAAW,CAAC,IAAM,EAAI,CAAC,EACvC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EACKC,EAASH,EAAQ,cAAcE,CAAQ,EAC7C,UAAO,0BAAuBC,CAAM,CAAC,EAAE,UAAU,CACnD,CAAC,CACH,CAAC",
6
+ "names": ["import_Errors", "import_CommandResult", "import_GetCustomImageSizeCommand", "import_ApduResponse", "IMAGE_SIZE_APDU", "command", "apdu", "response", "result"]
7
+ }
@@ -1,2 +1,2 @@
1
- "use strict";var s=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var C=(o,r)=>{for(var n in r)s(o,n,{get:r[n],enumerable:!0})},O=(o,r,n,e)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of E(r))!I.call(o,t)&&t!==n&&s(o,t,{get:()=>r[t],enumerable:!(e=F(r,t))||e.enumerable});return o};var R=o=>O(s({},"__esModule",{value:!0}),o);var v={};C(v,{GetOsVersionCommand:()=>G});module.exports=R(v);var l=require("../../apdu/utils/ApduBuilder"),c=require("../../apdu/utils/ApduParser"),d=require("../../command/model/CommandResult"),p=require("../../command/utils/CommandUtils"),g=require("../../command/utils/GlobalCommandError"),u=require("../../device/DeviceModel"),y=require("./SecureElementFlagsParser");class G{args=void 0;getApdu(){const r={cla:224,ins:1,p1:0,p2:0};return new l.ApduBuilder(r).build()}parseResponse(r,n){if(!p.CommandUtils.isSuccessResponse(r))return(0,d.CommandResultFactory)({error:g.GlobalCommandErrorHandler.handle(r)});const e=new c.ApduParser(r),t=parseInt(e.encodeToHexaString(e.extractFieldByLength(4)),16),V=e.encodeToString(e.extractFieldLVEncoded()),a=e.extractFieldLVEncoded()??new Uint8Array(0),x={...new y.SecureElementFlagsParser(a).generalDeviceState()},S=e.encodeToString(e.extractFieldLVEncoded()),f=e.encodeToString(e.extractFieldLVEncoded());let i="00";n===u.DeviceModelId.NANO_X&&(i=e.encodeToHexaString(e.extractFieldLVEncoded()));const A=e.encodeToHexaString(e.extractFieldLVEncoded()),m=e.encodeToHexaString(e.extractFieldLVEncoded());return(0,d.CommandResultFactory)({data:{targetId:t,seVersion:V,seFlags:a,mcuSephVersion:S,mcuBootloaderVersion:f,hwVersion:i,langId:A,recoverState:m||"0",secureElementFlags:x}})}}0&&(module.exports={GetOsVersionCommand});
1
+ "use strict";var g=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var B=Object.prototype.hasOwnProperty;var L=(d,r)=>{for(var n in r)g(d,n,{get:r[n],enumerable:!0})},R=(d,r,n,e)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of T(r))!B.call(d,s)&&s!==n&&g(d,s,{get:()=>r[s],enumerable:!(e=w(r,s))||e.enumerable});return d};var D=d=>R(g({},"__esModule",{value:!0}),d);var G={};L(G,{GetOsVersionCommand:()=>C});module.exports=D(G);var t=require("semver"),I=require("../../apdu/utils/ApduBuilder"),v=require("../../apdu/utils/ApduParser"),O=require("../../command/Errors"),c=require("../../command/model/CommandResult"),b=require("../../command/utils/CommandUtils"),F=require("../../command/utils/GlobalCommandError"),o=require("../../device/DeviceModel"),N=require("./SecureElementFlagsParser");class C{name="getOsVersion";args=void 0;getApdu(){const r={cla:224,ins:1,p1:0,p2:0};return new I.ApduBuilder(r).build()}parseResponse(r,n){if(!b.CommandUtils.isSuccessResponse(r))return(0,c.CommandResultFactory)({error:F.GlobalCommandErrorHandler.handle(r)});const e=new v.ApduParser(r),s=e.extract32BitUInt();if(s===void 0)return(0,c.CommandResultFactory)({error:new O.InvalidStatusWordError("Missing target ID in OS version")});let l=e.encodeToString(e.extractFieldLVEncoded()),m=e.extractFieldLVEncoded()??new Uint8Array(0);const E={...new N.SecureElementFlagsParser(m).generalDeviceState()};l||(l="0.0.0",m=new Uint8Array);const S=(s&4026531840)!==805306368,h=l.includes("-osu");let a="",y="",p="",f="",V,u,A,x;if(S){p=l,V=s;const i=e.extractFieldLVEncoded();i&&(i.length>=5?(a=e.encodeToString(i),u=parseInt(e.encodeToHexaString(e.extractFieldLVEncoded()),16)):u=parseInt(e.encodeToHexaString(i),16))}else{if(a=l,u=s,y=e.encodeToString(e.extractFieldLVEncoded()),this.isBootloaderVersionSupported(a,n)&&(p=e.encodeToString(e.extractFieldLVEncoded())),this.isHardwareVersionSupported(a,n)?f=e.encodeToHexaString(e.extractFieldLVEncoded()):f="00",this.isLocalizationSupported(a,n)){const i=e.extractFieldLVEncoded();i!==void 0&&(A=parseInt(e.encodeToHexaString(i),16))}if(this.isRecoverSupported(a,n)){const i=e.extractFieldLVEncoded();i!==void 0&&(x=parseInt(e.encodeToHexaString(i),16))}}return(0,c.CommandResultFactory)({data:{isBootloader:S,isOsu:h,targetId:s,seTargetId:u,mcuTargetId:V,seVersion:a,seFlags:m,mcuSephVersion:y,mcuBootloaderVersion:p,hwVersion:f,langId:A,recoverState:x,secureElementFlags:E}})}isBootloaderVersionSupported(r,n){const e=(0,t.coerce)(r)??"";switch(n){case o.DeviceModelId.NANO_S:case o.DeviceModelId.NANO_X:return(0,t.gte)(e,"2.0.0");default:return!0}}isHardwareVersionSupported(r,n){const e=(0,t.coerce)(r)??"";switch(n){case o.DeviceModelId.NANO_X:return(0,t.gte)(e,"2.0.0");default:return!1}}isLocalizationSupported(r,n){const e=(0,t.coerce)(r)??"";switch(n){case o.DeviceModelId.NANO_S:return!1;case o.DeviceModelId.NANO_SP:return(0,t.gte)(e,"1.1.0");case o.DeviceModelId.NANO_X:return(0,t.gte)(e,"2.1.0");default:return!0}}isRecoverSupported(r,n){const e=(0,t.coerce)(r)??"";switch(n){case o.DeviceModelId.NANO_S:return!1;case o.DeviceModelId.NANO_SP:return(0,t.gte)(e,"1.1.2");case o.DeviceModelId.NANO_X:return(0,t.gte)(e,"2.2.3");case o.DeviceModelId.STAX:return(0,t.gte)(e,"1.4.0");case o.DeviceModelId.FLEX:return(0,t.gte)(e,"1.0.1");default:return!0}}}0&&(module.exports={GetOsVersionCommand});
2
2
  //# sourceMappingURL=GetOsVersionCommand.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/api/command/os/GetOsVersionCommand.ts"],
4
- "sourcesContent": ["import { type Apdu } from \"@api/apdu/model/Apdu\";\nimport { ApduBuilder, type ApduBuilderArgs } from \"@api/apdu/utils/ApduBuilder\";\nimport { ApduParser } from \"@api/apdu/utils/ApduParser\";\nimport { type Command } from \"@api/command/Command\";\nimport {\n type CommandResult,\n CommandResultFactory,\n} from \"@api/command/model/CommandResult\";\nimport { CommandUtils } from \"@api/command/utils/CommandUtils\";\nimport { GlobalCommandErrorHandler } from \"@api/command/utils/GlobalCommandError\";\nimport { DeviceModelId } from \"@api/device/DeviceModel\";\nimport {\n type DeviceGeneralState,\n type EndorsementInformation,\n type OnboardingStatus,\n type WordsInformation,\n} from \"@api/device/SecureElementFlags\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\n\nimport { SecureElementFlagsParser } from \"./SecureElementFlagsParser\";\n\n/**\n * Response of the GetOsVersionCommand.\n */\nexport type GetOsVersionResponse = {\n /**\n * Target identifier.\n */\n readonly targetId: number;\n\n /**\n * Version of BOLOS on the secure element (SE).\n * {@link https://developers.ledger.com/docs/device-app/architecture/bolos/hardware-architecture | Hardware Architecture}\n */\n readonly seVersion: string;\n\n /**\n * Secure element flags.\n * Used to represent the current state of the secure element.\n */\n readonly seFlags: Uint8Array;\n\n /**\n * Version of the microcontroller unit (MCU) SEPH, which is the SE-MCU link protocol.\n * {@link https://developers.ledger.com/docs/device-app/architecture/bolos/hardware-architecture | Hardware Architecture}\n */\n readonly mcuSephVersion: string;\n\n /**\n * Version of the MCU bootloader.\n */\n readonly mcuBootloaderVersion: string;\n\n /**\n * Hardware revision version.\n * Only available for Ledger Nano X in which case it's \"00\" or \"01\".\n */\n readonly hwVersion: string;\n\n /**\n * Identifier of the installed language pack.\n * Can be one of:\n * - \"00\": English\n * - \"01\": French\n * - \"02\": Spanish\n */\n readonly langId: string; // [SHOULD] be an enum\n\n /**\n * State for Ledger Recover. // [SHOULD] Add more information about this field\n */\n readonly recoverState: string;\n\n /**\n * The parsed secure element flags.\n */\n readonly secureElementFlags: DeviceGeneralState &\n EndorsementInformation &\n WordsInformation &\n OnboardingStatus;\n};\n\nexport type GetOsVersionCommandResult = CommandResult<GetOsVersionResponse>;\n\n/**\n * Command to get information about the device firmware.\n */\nexport class GetOsVersionCommand implements Command<GetOsVersionResponse> {\n readonly args = undefined;\n\n getApdu(): Apdu {\n const getOsVersionApduArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x01,\n p1: 0x00,\n p2: 0x00,\n };\n return new ApduBuilder(getOsVersionApduArgs).build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n deviceModelId: DeviceModelId,\n ): GetOsVersionCommandResult {\n if (!CommandUtils.isSuccessResponse(apduResponse)) {\n return CommandResultFactory({\n error: GlobalCommandErrorHandler.handle(apduResponse),\n });\n }\n const parser = new ApduParser(apduResponse);\n\n const targetId = parseInt(\n parser.encodeToHexaString(parser.extractFieldByLength(4)),\n 16,\n );\n const seVersion = parser.encodeToString(parser.extractFieldLVEncoded());\n const seFlags = parser.extractFieldLVEncoded() ?? new Uint8Array(0);\n const seFlagsParser = new SecureElementFlagsParser(seFlags);\n // This is the parsed secure element flags.\n const secureElementFlags = { ...seFlagsParser.generalDeviceState() };\n\n const mcuSephVersion = parser.encodeToString(\n parser.extractFieldLVEncoded(),\n );\n const mcuBootloaderVersion = parser.encodeToString(\n parser.extractFieldLVEncoded(),\n );\n\n let hwVersion = \"00\";\n if (deviceModelId === DeviceModelId.NANO_X) {\n hwVersion = parser.encodeToHexaString(parser.extractFieldLVEncoded());\n }\n\n const langId = parser.encodeToHexaString(parser.extractFieldLVEncoded());\n const recoverState = parser.encodeToHexaString(\n parser.extractFieldLVEncoded(),\n );\n\n return CommandResultFactory({\n data: {\n targetId,\n seVersion,\n seFlags,\n mcuSephVersion,\n mcuBootloaderVersion,\n hwVersion,\n langId,\n recoverState: recoverState ? recoverState : \"0\",\n secureElementFlags,\n },\n });\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAAkD,uCAClDC,EAA2B,sCAE3BC,EAGO,4CACPC,EAA6B,2CAC7BC,EAA0C,iDAC1CC,EAA8B,mCAS9BC,EAAyC,sCAoElC,MAAMR,CAA6D,CAC/D,KAAO,OAEhB,SAAgB,CACd,MAAMS,EAAwC,CAC5C,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,EACA,OAAO,IAAI,cAAYA,CAAoB,EAAE,MAAM,CACrD,CAEA,cACEC,EACAC,EAC2B,CAC3B,GAAI,CAAC,eAAa,kBAAkBD,CAAY,EAC9C,SAAO,wBAAqB,CAC1B,MAAO,4BAA0B,OAAOA,CAAY,CACtD,CAAC,EAEH,MAAME,EAAS,IAAI,aAAWF,CAAY,EAEpCG,EAAW,SACfD,EAAO,mBAAmBA,EAAO,qBAAqB,CAAC,CAAC,EACxD,EACF,EACME,EAAYF,EAAO,eAAeA,EAAO,sBAAsB,CAAC,EAChEG,EAAUH,EAAO,sBAAsB,GAAK,IAAI,WAAW,CAAC,EAG5DI,EAAqB,CAAE,GAFP,IAAI,2BAAyBD,CAAO,EAEZ,mBAAmB,CAAE,EAE7DE,EAAiBL,EAAO,eAC5BA,EAAO,sBAAsB,CAC/B,EACMM,EAAuBN,EAAO,eAClCA,EAAO,sBAAsB,CAC/B,EAEA,IAAIO,EAAY,KACZR,IAAkB,gBAAc,SAClCQ,EAAYP,EAAO,mBAAmBA,EAAO,sBAAsB,CAAC,GAGtE,MAAMQ,EAASR,EAAO,mBAAmBA,EAAO,sBAAsB,CAAC,EACjES,EAAeT,EAAO,mBAC1BA,EAAO,sBAAsB,CAC/B,EAEA,SAAO,wBAAqB,CAC1B,KAAM,CACJ,SAAAC,EACA,UAAAC,EACA,QAAAC,EACA,eAAAE,EACA,qBAAAC,EACA,UAAAC,EACA,OAAAC,EACA,aAAcC,GAA8B,IAC5C,mBAAAL,CACF,CACF,CAAC,CACH,CACF",
6
- "names": ["GetOsVersionCommand_exports", "__export", "GetOsVersionCommand", "__toCommonJS", "import_ApduBuilder", "import_ApduParser", "import_CommandResult", "import_CommandUtils", "import_GlobalCommandError", "import_DeviceModel", "import_SecureElementFlagsParser", "getOsVersionApduArgs", "apduResponse", "deviceModelId", "parser", "targetId", "seVersion", "seFlags", "secureElementFlags", "mcuSephVersion", "mcuBootloaderVersion", "hwVersion", "langId", "recoverState"]
4
+ "sourcesContent": ["import { coerce, gte } from \"semver\";\n\nimport { type Apdu } from \"@api/apdu/model/Apdu\";\nimport { ApduBuilder, type ApduBuilderArgs } from \"@api/apdu/utils/ApduBuilder\";\nimport { ApduParser } from \"@api/apdu/utils/ApduParser\";\nimport { type Command } from \"@api/command/Command\";\nimport { InvalidStatusWordError } from \"@api/command/Errors\";\nimport {\n type CommandResult,\n CommandResultFactory,\n} from \"@api/command/model/CommandResult\";\nimport { CommandUtils } from \"@api/command/utils/CommandUtils\";\nimport { GlobalCommandErrorHandler } from \"@api/command/utils/GlobalCommandError\";\nimport { DeviceModelId } from \"@api/device/DeviceModel\";\nimport {\n type DeviceGeneralState,\n type EndorsementInformation,\n type OnboardingStatus,\n type WordsInformation,\n} from \"@api/device/SecureElementFlags\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\n\nimport { SecureElementFlagsParser } from \"./SecureElementFlagsParser\";\n\n/**\n * Response of the GetOsVersionCommand.\n */\nexport type GetOsVersionResponse = {\n /**\n * Indicated if the device is running in bootloader mode.\n * It can happens during a firmware update process.\n */\n readonly isBootloader: boolean;\n\n /**\n * Indicated if the device firmware is an OS Updater (OSU).\n * It can happens during a firmware update process.\n */\n readonly isOsu: boolean;\n\n /**\n * Target identifier.\n */\n readonly targetId: number;\n\n /**\n * Target identifier of the secure element.\n * Not always available when the device is in bootloader mode.\n */\n readonly seTargetId: number | undefined;\n\n /**\n * Target identifier of the microcontroller unit (MCU).\n * Only available when the device is in bootloader mode.\n */\n readonly mcuTargetId: number | undefined;\n\n /**\n * Version of BOLOS on the secure element (SE).\n * {@link https://developers.ledger.com/docs/device-app/architecture/bolos/hardware-architecture | Hardware Architecture}\n */\n readonly seVersion: string;\n\n /**\n * Secure element flags.\n * Used to represent the current state of the secure element.\n */\n readonly seFlags: Uint8Array;\n\n /**\n * Version of the microcontroller unit (MCU) SEPH, which is the SE-MCU link protocol.\n * {@link https://developers.ledger.com/docs/device-app/architecture/bolos/hardware-architecture | Hardware Architecture}\n */\n readonly mcuSephVersion: string;\n\n /**\n * Version of the MCU bootloader.\n */\n readonly mcuBootloaderVersion: string;\n\n /**\n * Hardware revision version.\n * Only available for Ledger Nano X in which case it's \"00\" or \"01\".\n */\n readonly hwVersion: string;\n\n /**\n * Identifier of the installed language pack.\n * Can be one of:\n * - \"00\": English\n * - \"01\": French\n * - \"02\": Spanish\n * - \"03\": Portuguese\n * - \"04\": German\n * - \"05\": Russian\n * - \"06\": Turkish\n */\n readonly langId: number | undefined;\n\n /**\n * State for Ledger Recover. // [SHOULD] Add more information about this field\n */\n readonly recoverState: number | undefined;\n\n /**\n * The parsed secure element flags.\n */\n readonly secureElementFlags: DeviceGeneralState &\n EndorsementInformation &\n WordsInformation &\n OnboardingStatus;\n};\n\nexport type GetOsVersionCommandResult = CommandResult<GetOsVersionResponse>;\n\n/**\n * Command to get information about the device firmware.\n */\nexport class GetOsVersionCommand implements Command<GetOsVersionResponse> {\n readonly name = \"getOsVersion\";\n readonly args = undefined;\n\n getApdu(): Apdu {\n const getOsVersionApduArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x01,\n p1: 0x00,\n p2: 0x00,\n };\n return new ApduBuilder(getOsVersionApduArgs).build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n deviceModelId: DeviceModelId,\n ): GetOsVersionCommandResult {\n if (!CommandUtils.isSuccessResponse(apduResponse)) {\n return CommandResultFactory({\n error: GlobalCommandErrorHandler.handle(apduResponse),\n });\n }\n const parser = new ApduParser(apduResponse);\n const targetId = parser.extract32BitUInt();\n if (targetId === undefined) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Missing target ID in OS version\"),\n });\n }\n\n let version = parser.encodeToString(parser.extractFieldLVEncoded());\n let seFlags = parser.extractFieldLVEncoded() ?? new Uint8Array(0);\n const seFlagsParser = new SecureElementFlagsParser(seFlags);\n // This is the parsed secure element flags.\n const secureElementFlags = { ...seFlagsParser.generalDeviceState() };\n\n // Handle old firmwares with no version\n if (!version) {\n version = \"0.0.0\";\n seFlags = new Uint8Array();\n }\n\n const isBootloader = (targetId & 0xf0000000) !== 0x30000000;\n const isOsu = version.includes(\"-osu\");\n let seVersion: string = \"\";\n let mcuSephVersion: string = \"\";\n let mcuBootloaderVersion: string = \"\";\n let hwVersion: string = \"\";\n let mcuTargetId: number | undefined = undefined;\n let seTargetId: number | undefined = undefined;\n let langId: number | undefined = undefined;\n let recoverState: number | undefined = undefined;\n\n if (isBootloader) {\n mcuBootloaderVersion = version;\n mcuTargetId = targetId;\n\n const seData = parser.extractFieldLVEncoded();\n if (seData) {\n if (seData.length >= 5) {\n // It means it's a version followed by the seTargetId\n seVersion = parser.encodeToString(seData);\n seTargetId = parseInt(\n parser.encodeToHexaString(parser.extractFieldLVEncoded()),\n 16,\n );\n } else {\n // It's the seTargetId\n seTargetId = parseInt(parser.encodeToHexaString(seData), 16);\n }\n }\n } else {\n seVersion = version;\n seTargetId = targetId;\n\n mcuSephVersion = parser.encodeToString(parser.extractFieldLVEncoded());\n\n if (this.isBootloaderVersionSupported(seVersion, deviceModelId)) {\n mcuBootloaderVersion = parser.encodeToString(\n parser.extractFieldLVEncoded(),\n );\n }\n\n if (this.isHardwareVersionSupported(seVersion, deviceModelId)) {\n hwVersion = parser.encodeToHexaString(parser.extractFieldLVEncoded());\n } else {\n hwVersion = \"00\";\n }\n\n if (this.isLocalizationSupported(seVersion, deviceModelId)) {\n const langIdBuffer = parser.extractFieldLVEncoded();\n if (langIdBuffer !== undefined) {\n langId = parseInt(parser.encodeToHexaString(langIdBuffer), 16);\n }\n }\n\n if (this.isRecoverSupported(seVersion, deviceModelId)) {\n const recoverStateBuffer = parser.extractFieldLVEncoded();\n if (recoverStateBuffer !== undefined) {\n recoverState = parseInt(\n parser.encodeToHexaString(recoverStateBuffer),\n 16,\n );\n }\n }\n }\n\n return CommandResultFactory({\n data: {\n isBootloader,\n isOsu,\n targetId,\n seTargetId,\n mcuTargetId,\n seVersion,\n seFlags,\n mcuSephVersion,\n mcuBootloaderVersion,\n hwVersion,\n langId,\n recoverState,\n secureElementFlags,\n },\n });\n }\n\n private isBootloaderVersionSupported(\n seVersion: string,\n deviceModelId: DeviceModelId,\n ): boolean {\n const version = coerce(seVersion) ?? \"\";\n switch (deviceModelId) {\n case DeviceModelId.NANO_S:\n case DeviceModelId.NANO_X:\n return gte(version, \"2.0.0\");\n default:\n return true;\n }\n }\n\n private isHardwareVersionSupported(\n seVersion: string,\n deviceModelId: DeviceModelId,\n ): boolean {\n const version = coerce(seVersion) ?? \"\";\n switch (deviceModelId) {\n case DeviceModelId.NANO_X:\n return gte(version, \"2.0.0\");\n default:\n return false;\n }\n }\n\n private isLocalizationSupported(\n seVersion: string,\n deviceModelId: DeviceModelId,\n ): boolean {\n const version = coerce(seVersion) ?? \"\";\n switch (deviceModelId) {\n case DeviceModelId.NANO_S:\n return false;\n case DeviceModelId.NANO_SP:\n return gte(version, \"1.1.0\");\n case DeviceModelId.NANO_X:\n return gte(version, \"2.1.0\");\n default:\n return true;\n }\n }\n\n private isRecoverSupported(\n seVersion: string,\n deviceModelId: DeviceModelId,\n ): boolean {\n const version = coerce(seVersion) ?? \"\";\n switch (deviceModelId) {\n case DeviceModelId.NANO_S:\n return false;\n case DeviceModelId.NANO_SP:\n return gte(version, \"1.1.2\");\n case DeviceModelId.NANO_X:\n return gte(version, \"2.2.3\");\n case DeviceModelId.STAX:\n return gte(version, \"1.4.0\");\n case DeviceModelId.FLEX:\n return gte(version, \"1.0.1\");\n default:\n return true;\n }\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["GetOsVersionCommand_exports", "__export", "GetOsVersionCommand", "__toCommonJS", "import_semver", "import_ApduBuilder", "import_ApduParser", "import_Errors", "import_CommandResult", "import_CommandUtils", "import_GlobalCommandError", "import_DeviceModel", "import_SecureElementFlagsParser", "getOsVersionApduArgs", "apduResponse", "deviceModelId", "parser", "targetId", "version", "seFlags", "secureElementFlags", "isBootloader", "isOsu", "seVersion", "mcuSephVersion", "mcuBootloaderVersion", "hwVersion", "mcuTargetId", "seTargetId", "langId", "recoverState", "seData", "langIdBuffer", "recoverStateBuffer"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var r=require("../../command/model/CommandResult"),x=require("../../device/DeviceModel"),o=require("../../device-session/ApduResponse"),n=require("./__mocks__/GetOsVersionCommand"),a=require("./GetOsVersionCommand");const d=Uint8Array.from([224,1,0,0,0]),c=Uint8Array.from([51,0,0,4,5,50,46,50,46,51,4,230,0,0,0,4,50,46,51,48,4,49,46,49,54,1,0,1,0,1,0,144,0]),p=new o.ApduResponse({statusCode:Uint8Array.from([144,0]),data:c}),i=Uint8Array.from([51,16,0,4,5,49,46,49,46,49,4,230,0,0,0,4,52,46,48,51,4,51,46,49,50,1,0,1,0,144,0]),m=new o.ApduResponse({statusCode:Uint8Array.from([144,0]),data:i}),S=Uint8Array.from([51,32,0,4,5,49,46,51,46,48,4,230,0,0,0,4,53,46,50,52,4,48,46,52,56,1,0,1,0,144,0]),A=new o.ApduResponse({statusCode:Uint8Array.from([144,0]),data:S});describe("GetOsVersionCommand",()=>{let t;beforeEach(()=>{t=new a.GetOsVersionCommand}),describe("getApdu",()=>{it("should return the GetOsVersion apdu",()=>{const e=t.getApdu();expect(e.getRawApdu()).toStrictEqual(d)})}),describe("parseResponse",()=>{describe("Nano X",()=>{it("should parse the LNX response",()=>{const e=t.parseResponse(p,x.DeviceModelId.NANO_X),s=(0,r.CommandResultFactory)({data:(0,n.getOsVersionCommandResponseMockBuilder)(x.DeviceModelId.NANO_X)});expect(e).toStrictEqual(s)})}),describe("Nano S Plus",()=>{it("should parse the LNSP response",()=>{const e=t.parseResponse(m,x.DeviceModelId.NANO_SP),s=(0,r.CommandResultFactory)({data:(0,n.getOsVersionCommandResponseMockBuilder)(x.DeviceModelId.NANO_SP)});expect(e).toStrictEqual(s)})}),describe("Stax",()=>{it("should parse the STAX response",()=>{const e=t.parseResponse(A,x.DeviceModelId.STAX),s=(0,r.CommandResultFactory)({data:(0,n.getOsVersionCommandResponseMockBuilder)(x.DeviceModelId.STAX)});expect(e).toStrictEqual(s)})}),describe("Error handling",()=>{it("should return an error if the response is not successful",()=>{const e=new o.ApduResponse({statusCode:Uint8Array.from([110,128]),data:Uint8Array.from([])}),s=t.parseResponse(e,x.DeviceModelId.NANO_S);expect((0,r.isSuccessCommandResult)(s)).toBeFalsy()})})})});
1
+ "use strict";var r=require("../../command/model/CommandResult"),s=require("../../device/DeviceModel"),o=require("../../device-session/ApduResponse"),a=require("./__mocks__/GetOsVersionCommand"),n=require("./GetOsVersionCommand");const d=Uint8Array.from([224,1,0,0,0]),i=Uint8Array.from([51,0,0,4,5,50,46,50,46,51,4,230,0,0,0,4,50,46,51,48,4,49,46,49,54,1,0,1,0,1,0,144,0]),c=new o.ApduResponse({statusCode:Uint8Array.from([144,0]),data:i}),u=Uint8Array.from([51,16,0,4,5,49,46,49,46,49,4,230,0,0,0,4,52,46,48,51,4,51,46,49,50,1,0,1,0,144,0]),l=new o.ApduResponse({statusCode:Uint8Array.from([144,0]),data:u}),p=Uint8Array.from([51,32,0,4,5,49,46,51,46,48,4,230,0,0,0,4,53,46,50,52,4,48,46,52,56,1,0,1,0,144,0]),m=new o.ApduResponse({statusCode:Uint8Array.from([144,0]),data:p}),O=Uint8Array.from([5,1,0,3,4,49,46,49,54,4,244,216,170,67,5,50,46,50,46,51,4,51,0,0,4,144,0]),S=new o.ApduResponse({statusCode:Uint8Array.from([144,0]),data:O}),A=Uint8Array.from([51,0,0,4,0,4,238,0,0,0,4,50,46,51,48,1,1,1,0,1,0,144,0]),f=new o.ApduResponse({statusCode:Uint8Array.from([144,0]),data:A});describe("GetOsVersionCommand",()=>{let x;beforeEach(()=>{x=new n.GetOsVersionCommand}),describe("name",()=>{it("should be 'getOsVersion'",()=>{expect(x.name).toBe("getOsVersion")})}),describe("getApdu",()=>{it("should return the GetOsVersion apdu",()=>{const e=x.getApdu();expect(e.getRawApdu()).toStrictEqual(d)})}),describe("parseResponse",()=>{describe("Nano X",()=>{it("should parse the LNX response",()=>{const e=x.parseResponse(c,s.DeviceModelId.NANO_X),t=(0,r.CommandResultFactory)({data:(0,a.getOsVersionCommandResponseMockBuilder)(s.DeviceModelId.NANO_X)});expect(e).toStrictEqual(t)})}),describe("Nano S Plus",()=>{it("should parse the LNSP response",()=>{const e=x.parseResponse(l,s.DeviceModelId.NANO_SP),t=(0,r.CommandResultFactory)({data:(0,a.getOsVersionCommandResponseMockBuilder)(s.DeviceModelId.NANO_SP)});expect(e).toStrictEqual(t)})}),describe("Stax",()=>{it("should parse the STAX response",()=>{const e=x.parseResponse(m,s.DeviceModelId.STAX),t=(0,r.CommandResultFactory)({data:(0,a.getOsVersionCommandResponseMockBuilder)(s.DeviceModelId.STAX)});expect(e).toStrictEqual(t)})}),describe("Bootloader",()=>{it("should parse the bootloader response",()=>{const e=x.parseResponse(S,s.DeviceModelId.STAX),t=(0,r.CommandResultFactory)({data:{isBootloader:!0,isOsu:!1,targetId:83951619,seTargetId:855638020,seVersion:"2.2.3",seFlags:new Uint8Array([244,216,170,67]),mcuTargetId:83951619,mcuSephVersion:"",mcuBootloaderVersion:"1.16",hwVersion:"",langId:void 0,recoverState:void 0,secureElementFlags:{isPinValidated:!0,hasMcuSerialNumber:!0,hasValidCertificate:!0,isCustomAuthorityConnectionAllowed:!0,isSecureConnectionAllowed:!1,isOnboarded:!0,isMcuCodeSigned:!1,isInRecoveryMode:!1}}});expect(e).toStrictEqual(t)})}),describe("Old firmware",()=>{it("should parse the old firmware response",()=>{const e=x.parseResponse(f,s.DeviceModelId.NANO_X),t=(0,r.CommandResultFactory)({data:{isBootloader:!1,isOsu:!1,targetId:855638020,seTargetId:855638020,seVersion:"0.0.0",seFlags:new Uint8Array,mcuTargetId:void 0,mcuSephVersion:"2.30",mcuBootloaderVersion:"",hwVersion:"00",langId:void 0,recoverState:void 0,secureElementFlags:{isPinValidated:!0,hasMcuSerialNumber:!0,hasValidCertificate:!0,isCustomAuthorityConnectionAllowed:!1,isSecureConnectionAllowed:!0,isOnboarded:!0,isMcuCodeSigned:!0,isInRecoveryMode:!1}}});expect(e).toStrictEqual(t)})}),describe("Error handling",()=>{it("should return an error if the response is not successful",()=>{const e=new o.ApduResponse({statusCode:Uint8Array.from([110,128]),data:Uint8Array.from([])}),t=x.parseResponse(e,s.DeviceModelId.NANO_S);expect((0,r.isSuccessCommandResult)(t)).toBeFalsy()})})})});
2
2
  //# sourceMappingURL=GetOsVersionCommand.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/api/command/os/GetOsVersionCommand.test.ts"],
4
- "sourcesContent": ["import {\n CommandResultFactory,\n isSuccessCommandResult,\n} from \"@api/command/model/CommandResult\";\nimport { DeviceModelId } from \"@api/device/DeviceModel\";\nimport { ApduResponse } from \"@api/device-session/ApduResponse\";\n\nimport { getOsVersionCommandResponseMockBuilder } from \"./__mocks__/GetOsVersionCommand\";\nimport { GetOsVersionCommand } from \"./GetOsVersionCommand\";\n\nconst GET_OS_VERSION_APDU = Uint8Array.from([0xe0, 0x01, 0x00, 0x00, 0x00]);\n\nconst LNX_RESPONSE_DATA_GOOD = Uint8Array.from([\n 0x33, 0x00, 0x00, 0x04, 0x05, 0x32, 0x2e, 0x32, 0x2e, 0x33, 0x04, 0xe6, 0x00,\n 0x00, 0x00, 0x04, 0x32, 0x2e, 0x33, 0x30, 0x04, 0x31, 0x2e, 0x31, 0x36, 0x01,\n 0x00, 0x01, 0x00, 0x01, 0x00, 0x90, 0x00,\n]);\nconst LNX_RESPONSE_GOOD = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: LNX_RESPONSE_DATA_GOOD,\n});\n\nconst LNSP_REPONSE_DATA_GOOD = Uint8Array.from([\n 0x33, 0x10, 0x00, 0x04, 0x05, 0x31, 0x2e, 0x31, 0x2e, 0x31, 0x04, 0xe6, 0x00,\n 0x00, 0x00, 0x04, 0x34, 0x2e, 0x30, 0x33, 0x04, 0x33, 0x2e, 0x31, 0x32, 0x01,\n 0x00, 0x01, 0x00, 0x90, 0x00,\n]);\nconst LNSP_RESPONSE_GOOD = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: LNSP_REPONSE_DATA_GOOD,\n});\n\nconst STAX_RESPONSE_DATA_GOOD = Uint8Array.from([\n 0x33, 0x20, 0x00, 0x04, 0x05, 0x31, 0x2e, 0x33, 0x2e, 0x30, 0x04, 0xe6, 0x00,\n 0x00, 0x00, 0x04, 0x35, 0x2e, 0x32, 0x34, 0x04, 0x30, 0x2e, 0x34, 0x38, 0x01,\n 0x00, 0x01, 0x00, 0x90, 0x00,\n]);\nconst STAX_RESPONSE_GOOD = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: STAX_RESPONSE_DATA_GOOD,\n});\n\ndescribe(\"GetOsVersionCommand\", () => {\n let command: GetOsVersionCommand;\n\n beforeEach(() => {\n command = new GetOsVersionCommand();\n });\n\n describe(\"getApdu\", () => {\n it(\"should return the GetOsVersion apdu\", () => {\n const apdu = command.getApdu();\n expect(apdu.getRawApdu()).toStrictEqual(GET_OS_VERSION_APDU);\n });\n });\n\n describe(\"parseResponse\", () => {\n describe(\"Nano X\", () => {\n it(\"should parse the LNX response\", () => {\n const parsed = command.parseResponse(\n LNX_RESPONSE_GOOD,\n DeviceModelId.NANO_X,\n );\n\n const expected = CommandResultFactory({\n data: getOsVersionCommandResponseMockBuilder(DeviceModelId.NANO_X),\n });\n\n expect(parsed).toStrictEqual(expected);\n });\n });\n\n describe(\"Nano S Plus\", () => {\n it(\"should parse the LNSP response\", () => {\n const parsed = command.parseResponse(\n LNSP_RESPONSE_GOOD,\n DeviceModelId.NANO_SP,\n );\n\n const expected = CommandResultFactory({\n data: getOsVersionCommandResponseMockBuilder(DeviceModelId.NANO_SP),\n });\n\n expect(parsed).toStrictEqual(expected);\n });\n });\n\n describe(\"Stax\", () => {\n it(\"should parse the STAX response\", () => {\n const parsed = command.parseResponse(\n STAX_RESPONSE_GOOD,\n DeviceModelId.STAX,\n );\n\n const expected = CommandResultFactory({\n data: getOsVersionCommandResponseMockBuilder(DeviceModelId.STAX),\n });\n\n expect(parsed).toStrictEqual(expected);\n });\n });\n\n describe(\"Error handling\", () => {\n it(\"should return an error if the response is not successful\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6e, 0x80]),\n data: Uint8Array.from([]),\n });\n const result = command.parseResponse(response, DeviceModelId.NANO_S);\n\n expect(isSuccessCommandResult(result)).toBeFalsy();\n });\n });\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["import_CommandResult", "import_DeviceModel", "import_ApduResponse", "import_GetOsVersionCommand", "GET_OS_VERSION_APDU", "LNX_RESPONSE_DATA_GOOD", "LNX_RESPONSE_GOOD", "LNSP_REPONSE_DATA_GOOD", "LNSP_RESPONSE_GOOD", "STAX_RESPONSE_DATA_GOOD", "STAX_RESPONSE_GOOD", "command", "apdu", "parsed", "expected", "response", "result"]
4
+ "sourcesContent": ["import {\n CommandResultFactory,\n isSuccessCommandResult,\n} from \"@api/command/model/CommandResult\";\nimport { DeviceModelId } from \"@api/device/DeviceModel\";\nimport { ApduResponse } from \"@api/device-session/ApduResponse\";\n\nimport { getOsVersionCommandResponseMockBuilder } from \"./__mocks__/GetOsVersionCommand\";\nimport { GetOsVersionCommand } from \"./GetOsVersionCommand\";\n\nconst GET_OS_VERSION_APDU = Uint8Array.from([0xe0, 0x01, 0x00, 0x00, 0x00]);\n\nconst LNX_RESPONSE_DATA_GOOD = Uint8Array.from([\n 0x33, 0x00, 0x00, 0x04, 0x05, 0x32, 0x2e, 0x32, 0x2e, 0x33, 0x04, 0xe6, 0x00,\n 0x00, 0x00, 0x04, 0x32, 0x2e, 0x33, 0x30, 0x04, 0x31, 0x2e, 0x31, 0x36, 0x01,\n 0x00, 0x01, 0x00, 0x01, 0x00, 0x90, 0x00,\n]);\nconst LNX_RESPONSE_GOOD = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: LNX_RESPONSE_DATA_GOOD,\n});\n\nconst LNSP_REPONSE_DATA_GOOD = Uint8Array.from([\n 0x33, 0x10, 0x00, 0x04, 0x05, 0x31, 0x2e, 0x31, 0x2e, 0x31, 0x04, 0xe6, 0x00,\n 0x00, 0x00, 0x04, 0x34, 0x2e, 0x30, 0x33, 0x04, 0x33, 0x2e, 0x31, 0x32, 0x01,\n 0x00, 0x01, 0x00, 0x90, 0x00,\n]);\nconst LNSP_RESPONSE_GOOD = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: LNSP_REPONSE_DATA_GOOD,\n});\n\nconst STAX_RESPONSE_DATA_GOOD = Uint8Array.from([\n 0x33, 0x20, 0x00, 0x04, 0x05, 0x31, 0x2e, 0x33, 0x2e, 0x30, 0x04, 0xe6, 0x00,\n 0x00, 0x00, 0x04, 0x35, 0x2e, 0x32, 0x34, 0x04, 0x30, 0x2e, 0x34, 0x38, 0x01,\n 0x00, 0x01, 0x00, 0x90, 0x00,\n]);\nconst STAX_RESPONSE_GOOD = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: STAX_RESPONSE_DATA_GOOD,\n});\n\nconst BL_RESPONSE_DATA_GOOD = Uint8Array.from([\n 0x05, 0x01, 0x00, 0x03, 0x04, 0x31, 0x2e, 0x31, 0x36, 0x04, 0xf4, 0xd8, 0xaa,\n 0x43, 0x05, 0x32, 0x2e, 0x32, 0x2e, 0x33, 0x04, 0x33, 0x00, 0x00, 0x04, 0x90,\n 0x00,\n]);\nconst BL_RESPONSE_GOOD = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: BL_RESPONSE_DATA_GOOD,\n});\n\nconst OLD_FM_RESPONSE_DATA_GOOD = Uint8Array.from([\n 0x33, 0x00, 0x00, 0x04, 0x00, 0x04, 0xee, 0x00, 0x00, 0x00, 0x04, 0x32, 0x2e,\n 0x33, 0x30, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x90, 0x00,\n]);\nconst OLD_FM_RESPONSE_GOOD = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: OLD_FM_RESPONSE_DATA_GOOD,\n});\n\ndescribe(\"GetOsVersionCommand\", () => {\n let command: GetOsVersionCommand;\n\n beforeEach(() => {\n command = new GetOsVersionCommand();\n });\n\n describe(\"name\", () => {\n it(\"should be 'getOsVersion'\", () => {\n expect(command.name).toBe(\"getOsVersion\");\n });\n });\n\n describe(\"getApdu\", () => {\n it(\"should return the GetOsVersion apdu\", () => {\n const apdu = command.getApdu();\n expect(apdu.getRawApdu()).toStrictEqual(GET_OS_VERSION_APDU);\n });\n });\n\n describe(\"parseResponse\", () => {\n describe(\"Nano X\", () => {\n it(\"should parse the LNX response\", () => {\n const parsed = command.parseResponse(\n LNX_RESPONSE_GOOD,\n DeviceModelId.NANO_X,\n );\n\n const expected = CommandResultFactory({\n data: getOsVersionCommandResponseMockBuilder(DeviceModelId.NANO_X),\n });\n\n expect(parsed).toStrictEqual(expected);\n });\n });\n\n describe(\"Nano S Plus\", () => {\n it(\"should parse the LNSP response\", () => {\n const parsed = command.parseResponse(\n LNSP_RESPONSE_GOOD,\n DeviceModelId.NANO_SP,\n );\n\n const expected = CommandResultFactory({\n data: getOsVersionCommandResponseMockBuilder(DeviceModelId.NANO_SP),\n });\n\n expect(parsed).toStrictEqual(expected);\n });\n });\n\n describe(\"Stax\", () => {\n it(\"should parse the STAX response\", () => {\n const parsed = command.parseResponse(\n STAX_RESPONSE_GOOD,\n DeviceModelId.STAX,\n );\n\n const expected = CommandResultFactory({\n data: getOsVersionCommandResponseMockBuilder(DeviceModelId.STAX),\n });\n\n expect(parsed).toStrictEqual(expected);\n });\n });\n\n describe(\"Bootloader\", () => {\n it(\"should parse the bootloader response\", () => {\n const parsed = command.parseResponse(\n BL_RESPONSE_GOOD,\n DeviceModelId.STAX,\n );\n\n const expected = CommandResultFactory({\n data: {\n isBootloader: true,\n isOsu: false,\n targetId: 83951619,\n seTargetId: 855638020,\n seVersion: \"2.2.3\",\n seFlags: new Uint8Array([0xf4, 0xd8, 0xaa, 0x43]),\n mcuTargetId: 83951619,\n mcuSephVersion: \"\",\n mcuBootloaderVersion: \"1.16\",\n hwVersion: \"\",\n langId: undefined,\n recoverState: undefined,\n secureElementFlags: {\n isPinValidated: true,\n hasMcuSerialNumber: true,\n hasValidCertificate: true,\n isCustomAuthorityConnectionAllowed: true,\n isSecureConnectionAllowed: false,\n isOnboarded: true,\n isMcuCodeSigned: false,\n isInRecoveryMode: false,\n },\n },\n });\n\n expect(parsed).toStrictEqual(expected);\n });\n });\n\n describe(\"Old firmware\", () => {\n it(\"should parse the old firmware response\", () => {\n const parsed = command.parseResponse(\n OLD_FM_RESPONSE_GOOD,\n DeviceModelId.NANO_X,\n );\n\n const expected = CommandResultFactory({\n data: {\n isBootloader: false,\n isOsu: false,\n targetId: 855638020,\n seTargetId: 855638020,\n seVersion: \"0.0.0\",\n seFlags: new Uint8Array(),\n mcuTargetId: undefined,\n mcuSephVersion: \"2.30\",\n mcuBootloaderVersion: \"\",\n hwVersion: \"00\",\n langId: undefined,\n recoverState: undefined,\n secureElementFlags: {\n isPinValidated: true,\n hasMcuSerialNumber: true,\n hasValidCertificate: true,\n isCustomAuthorityConnectionAllowed: false,\n isSecureConnectionAllowed: true,\n isOnboarded: true,\n isMcuCodeSigned: true,\n isInRecoveryMode: false,\n },\n },\n });\n\n expect(parsed).toStrictEqual(expected);\n });\n });\n\n describe(\"Error handling\", () => {\n it(\"should return an error if the response is not successful\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6e, 0x80]),\n data: Uint8Array.from([]),\n });\n const result = command.parseResponse(response, DeviceModelId.NANO_S);\n\n expect(isSuccessCommandResult(result)).toBeFalsy();\n });\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_CommandResult", "import_DeviceModel", "import_ApduResponse", "import_GetOsVersionCommand", "GET_OS_VERSION_APDU", "LNX_RESPONSE_DATA_GOOD", "LNX_RESPONSE_GOOD", "LNSP_REPONSE_DATA_GOOD", "LNSP_RESPONSE_GOOD", "STAX_RESPONSE_DATA_GOOD", "STAX_RESPONSE_GOOD", "BL_RESPONSE_DATA_GOOD", "BL_RESPONSE_GOOD", "OLD_FM_RESPONSE_DATA_GOOD", "OLD_FM_RESPONSE_GOOD", "command", "apdu", "parsed", "expected", "response", "result"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var n=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var f=(s,r)=>{for(var o in r)n(s,o,{get:r[o],enumerable:!0})},R=(s,r,o,e)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of E(r))!h.call(s,t)&&t!==o&&n(s,t,{get:()=>r[t],enumerable:!(e=y(r,t))||e.enumerable});return s};var B=s=>R(n({},"__esModule",{value:!0}),s);var H={};f(H,{ListAppsCommand:()=>S,ListAppsCommandError:()=>u});module.exports=B(H);var i=require("../../apdu/utils/ApduBuilder"),d=require("../../apdu/utils/ApduParser"),p=require("../../command/model/CommandResult"),m=require("../../command/utils/CommandErrors"),l=require("../../command/utils/CommandUtils"),A=require("../../command/utils/GlobalCommandError"),c=require("../../Error");const a={6624:{message:"Invalid state (List applications command must be sent)"}};class u extends c.DeviceExchangeError{constructor({message:r,errorCode:o}){super({message:r,errorCode:o,tag:"ListAppsCommandError"})}}class S{args;constructor(r={isContinue:!1}){this.args=r}getApdu(){const r={cla:224,ins:this.args.isContinue?223:222,p1:0,p2:0};return new i.ApduBuilder(r).build()}parseResponse(r){const o=[],e=new d.ApduParser(r);if(!l.CommandUtils.isSuccessResponse(r)){const t=e.encodeToHexaString(r.statusCode);return(0,m.isCommandErrorCode)(t,a)?(0,p.CommandResultFactory)({error:new u({...a[t],errorCode:t})}):(0,p.CommandResultFactory)({error:A.GlobalCommandErrorHandler.handle(r)})}if(r.data.length<=0)return(0,p.CommandResultFactory)({data:[]});for(e.extract8BitUInt();e.getUnparsedRemainingLength()>0;){const t=e.extract8BitUInt(),C=e.extract16BitUInt();e.extract16BitUInt();const g=e.encodeToHexaString(e.extractFieldByLength(32)),x=e.encodeToHexaString(e.extractFieldByLength(32)),L=e.encodeToString(e.extractFieldLVEncoded());o.push({appEntryLength:t,appSizeInBlocks:C,appCodeHash:g,appFullHash:x,appName:L})}return(0,p.CommandResultFactory)({data:o})}}0&&(module.exports={ListAppsCommand,ListAppsCommandError});
1
+ "use strict";var n=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var f=(s,r)=>{for(var o in r)n(s,o,{get:r[o],enumerable:!0})},R=(s,r,o,e)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of E(r))!h.call(s,t)&&t!==o&&n(s,t,{get:()=>r[t],enumerable:!(e=L(r,t))||e.enumerable});return s};var B=s=>R(n({},"__esModule",{value:!0}),s);var H={};f(H,{ListAppsCommand:()=>S,ListAppsCommandError:()=>u});module.exports=B(H);var i=require("../../apdu/utils/ApduBuilder"),d=require("../../apdu/utils/ApduParser"),p=require("../../command/model/CommandResult"),m=require("../../command/utils/CommandErrors"),l=require("../../command/utils/CommandUtils"),A=require("../../command/utils/GlobalCommandError"),c=require("../../Error");const a={6624:{message:"Invalid state (List applications command must be sent)"}};class u extends c.DeviceExchangeError{constructor({message:r,errorCode:o}){super({message:r,errorCode:o,tag:"ListAppsCommandError"})}}class S{name="listApps";args;constructor(r={isContinue:!1}){this.args=r}getApdu(){const r={cla:224,ins:this.args.isContinue?223:222,p1:0,p2:0};return new i.ApduBuilder(r).build()}parseResponse(r){const o=[],e=new d.ApduParser(r);if(!l.CommandUtils.isSuccessResponse(r)){const t=e.encodeToHexaString(r.statusCode);return(0,m.isCommandErrorCode)(t,a)?(0,p.CommandResultFactory)({error:new u({...a[t],errorCode:t})}):(0,p.CommandResultFactory)({error:A.GlobalCommandErrorHandler.handle(r)})}if(r.data.length<=0)return(0,p.CommandResultFactory)({data:[]});for(e.extract8BitUInt();e.getUnparsedRemainingLength()>0;){const t=e.extract8BitUInt(),C=e.extract16BitUInt();e.extract16BitUInt();const g=e.encodeToHexaString(e.extractFieldByLength(32)),x=e.encodeToHexaString(e.extractFieldByLength(32)),y=e.encodeToString(e.extractFieldLVEncoded());o.push({appEntryLength:t,appSizeInBlocks:C,appCodeHash:g,appFullHash:x,appName:y})}return(0,p.CommandResultFactory)({data:o})}}0&&(module.exports={ListAppsCommand,ListAppsCommandError});
2
2
  //# sourceMappingURL=ListAppsCommand.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/api/command/os/ListAppsCommand.ts"],
4
- "sourcesContent": ["import { type Apdu } from \"@api/apdu/model/Apdu\";\nimport { ApduBuilder, type ApduBuilderArgs } from \"@api/apdu/utils/ApduBuilder\";\nimport { ApduParser } from \"@api/apdu/utils/ApduParser\";\nimport { type Command } from \"@api/command/Command\";\nimport {\n type CommandResult,\n CommandResultFactory,\n} from \"@api/command/model/CommandResult\";\nimport {\n type CommandErrors,\n isCommandErrorCode,\n} from \"@api/command/utils/CommandErrors\";\nimport { CommandUtils } from \"@api/command/utils/CommandUtils\";\nimport { GlobalCommandErrorHandler } from \"@api/command/utils/GlobalCommandError\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport { type CommandErrorArgs, DeviceExchangeError } from \"@api/Error\";\n\nexport type AppResponse = {\n readonly appEntryLength: number;\n readonly appSizeInBlocks: number;\n readonly appCodeHash: string;\n readonly appFullHash: string;\n readonly appName: string;\n};\n\nexport type ListAppsResponse = AppResponse[];\n\nexport type ListAppsArgs = {\n readonly isContinue: boolean;\n};\n\nexport type ListAppsErrorCodes = \"6624\";\n\nconst LIST_APP_ERRORS: CommandErrors<ListAppsErrorCodes> = {\n \"6624\": { message: \"Invalid state (List applications command must be sent)\" },\n};\n\nexport type ListAppsCommandResult = CommandResult<\n ListAppsResponse,\n ListAppsErrorCodes\n>;\n\nexport class ListAppsCommandError extends DeviceExchangeError<ListAppsErrorCodes> {\n constructor({ message, errorCode }: CommandErrorArgs<ListAppsErrorCodes>) {\n super({ message, errorCode, tag: \"ListAppsCommandError\" });\n }\n}\n\nexport class ListAppsCommand\n implements Command<ListAppsResponse, ListAppsArgs, ListAppsErrorCodes>\n{\n readonly args: ListAppsArgs;\n\n constructor(args = { isContinue: false }) {\n this.args = args;\n }\n\n getApdu(): Apdu {\n const listAppApduArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: this.args.isContinue ? 0xdf : 0xde,\n p1: 0x00,\n p2: 0x00,\n };\n return new ApduBuilder(listAppApduArgs).build();\n }\n\n parseResponse(apduResponse: ApduResponse): ListAppsCommandResult {\n const res = [];\n const parser = new ApduParser(apduResponse);\n\n if (!CommandUtils.isSuccessResponse(apduResponse)) {\n const errorCode = parser.encodeToHexaString(apduResponse.statusCode);\n if (isCommandErrorCode(errorCode, LIST_APP_ERRORS)) {\n return CommandResultFactory({\n error: new ListAppsCommandError({\n ...LIST_APP_ERRORS[errorCode],\n errorCode,\n }),\n });\n }\n return CommandResultFactory({\n error: GlobalCommandErrorHandler.handle(apduResponse),\n });\n }\n\n if (apduResponse.data.length <= 0) {\n return CommandResultFactory({\n data: [],\n });\n }\n\n // [NOTE] version of parsing, not used for now, skipping 1 byte\n parser.extract8BitUInt()!;\n\n while (parser.getUnparsedRemainingLength() > 0) {\n const appEntryLength = parser.extract8BitUInt()!;\n const appSizeInBlocks = parser.extract16BitUInt()!;\n parser.extract16BitUInt()!; // Skip 2 bytes (flags, missing in doc for now)\n const appCodeHash = parser.encodeToHexaString(\n parser.extractFieldByLength(0x20), // 32 bytes\n );\n const appFullHash = parser.encodeToHexaString(\n parser.extractFieldByLength(0x20), // 32 bytes\n );\n\n const appName = parser.encodeToString(parser.extractFieldLVEncoded());\n\n res.push({\n appEntryLength,\n appSizeInBlocks,\n appCodeHash,\n appFullHash,\n appName,\n });\n }\n\n return CommandResultFactory({\n data: res,\n });\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,EAAA,yBAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAAkD,uCAClDC,EAA2B,sCAE3BC,EAGO,4CACPC,EAGO,4CACPC,EAA6B,2CAC7BC,EAA0C,iDAE1CC,EAA2D,sBAkB3D,MAAMC,EAAqD,CACzD,KAAQ,CAAE,QAAS,wDAAyD,CAC9E,EAOO,MAAMT,UAA6B,qBAAwC,CAChF,YAAY,CAAE,QAAAU,EAAS,UAAAC,CAAU,EAAyC,CACxE,MAAM,CAAE,QAAAD,EAAS,UAAAC,EAAW,IAAK,sBAAuB,CAAC,CAC3D,CACF,CAEO,MAAMZ,CAEb,CACW,KAET,YAAYa,EAAO,CAAE,WAAY,EAAM,EAAG,CACxC,KAAK,KAAOA,CACd,CAEA,SAAgB,CACd,MAAMC,EAAmC,CACvC,IAAK,IACL,IAAK,KAAK,KAAK,WAAa,IAAO,IACnC,GAAI,EACJ,GAAI,CACN,EACA,OAAO,IAAI,cAAYA,CAAe,EAAE,MAAM,CAChD,CAEA,cAAcC,EAAmD,CAC/D,MAAMC,EAAM,CAAC,EACPC,EAAS,IAAI,aAAWF,CAAY,EAE1C,GAAI,CAAC,eAAa,kBAAkBA,CAAY,EAAG,CACjD,MAAMH,EAAYK,EAAO,mBAAmBF,EAAa,UAAU,EACnE,SAAI,sBAAmBH,EAAWF,CAAe,KACxC,wBAAqB,CAC1B,MAAO,IAAIT,EAAqB,CAC9B,GAAGS,EAAgBE,CAAS,EAC5B,UAAAA,CACF,CAAC,CACH,CAAC,KAEI,wBAAqB,CAC1B,MAAO,4BAA0B,OAAOG,CAAY,CACtD,CAAC,CACH,CAEA,GAAIA,EAAa,KAAK,QAAU,EAC9B,SAAO,wBAAqB,CAC1B,KAAM,CAAC,CACT,CAAC,EAMH,IAFAE,EAAO,gBAAgB,EAEhBA,EAAO,2BAA2B,EAAI,GAAG,CAC9C,MAAMC,EAAiBD,EAAO,gBAAgB,EACxCE,EAAkBF,EAAO,iBAAiB,EAChDA,EAAO,iBAAiB,EACxB,MAAMG,EAAcH,EAAO,mBACzBA,EAAO,qBAAqB,EAAI,CAClC,EACMI,EAAcJ,EAAO,mBACzBA,EAAO,qBAAqB,EAAI,CAClC,EAEMK,EAAUL,EAAO,eAAeA,EAAO,sBAAsB,CAAC,EAEpED,EAAI,KAAK,CACP,eAAAE,EACA,gBAAAC,EACA,YAAAC,EACA,YAAAC,EACA,QAAAC,CACF,CAAC,CACH,CAEA,SAAO,wBAAqB,CAC1B,KAAMN,CACR,CAAC,CACH,CACF",
4
+ "sourcesContent": ["import { type Apdu } from \"@api/apdu/model/Apdu\";\nimport { ApduBuilder, type ApduBuilderArgs } from \"@api/apdu/utils/ApduBuilder\";\nimport { ApduParser } from \"@api/apdu/utils/ApduParser\";\nimport { type Command } from \"@api/command/Command\";\nimport {\n type CommandResult,\n CommandResultFactory,\n} from \"@api/command/model/CommandResult\";\nimport {\n type CommandErrors,\n isCommandErrorCode,\n} from \"@api/command/utils/CommandErrors\";\nimport { CommandUtils } from \"@api/command/utils/CommandUtils\";\nimport { GlobalCommandErrorHandler } from \"@api/command/utils/GlobalCommandError\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport { type CommandErrorArgs, DeviceExchangeError } from \"@api/Error\";\n\nexport type AppResponse = {\n readonly appEntryLength: number;\n readonly appSizeInBlocks: number;\n readonly appCodeHash: string;\n readonly appFullHash: string;\n readonly appName: string;\n};\n\nexport type ListAppsResponse = AppResponse[];\n\nexport type ListAppsArgs = {\n readonly isContinue: boolean;\n};\n\nexport type ListAppsErrorCodes = \"6624\";\n\nconst LIST_APP_ERRORS: CommandErrors<ListAppsErrorCodes> = {\n \"6624\": { message: \"Invalid state (List applications command must be sent)\" },\n};\n\nexport type ListAppsCommandResult = CommandResult<\n ListAppsResponse,\n ListAppsErrorCodes\n>;\n\nexport class ListAppsCommandError extends DeviceExchangeError<ListAppsErrorCodes> {\n constructor({ message, errorCode }: CommandErrorArgs<ListAppsErrorCodes>) {\n super({ message, errorCode, tag: \"ListAppsCommandError\" });\n }\n}\n\nexport class ListAppsCommand\n implements Command<ListAppsResponse, ListAppsArgs, ListAppsErrorCodes>\n{\n readonly name = \"listApps\";\n readonly args: ListAppsArgs;\n\n constructor(args = { isContinue: false }) {\n this.args = args;\n }\n\n getApdu(): Apdu {\n const listAppApduArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: this.args.isContinue ? 0xdf : 0xde,\n p1: 0x00,\n p2: 0x00,\n };\n return new ApduBuilder(listAppApduArgs).build();\n }\n\n parseResponse(apduResponse: ApduResponse): ListAppsCommandResult {\n const res = [];\n const parser = new ApduParser(apduResponse);\n\n if (!CommandUtils.isSuccessResponse(apduResponse)) {\n const errorCode = parser.encodeToHexaString(apduResponse.statusCode);\n if (isCommandErrorCode(errorCode, LIST_APP_ERRORS)) {\n return CommandResultFactory({\n error: new ListAppsCommandError({\n ...LIST_APP_ERRORS[errorCode],\n errorCode,\n }),\n });\n }\n return CommandResultFactory({\n error: GlobalCommandErrorHandler.handle(apduResponse),\n });\n }\n\n if (apduResponse.data.length <= 0) {\n return CommandResultFactory({\n data: [],\n });\n }\n\n // [NOTE] version of parsing, not used for now, skipping 1 byte\n parser.extract8BitUInt()!;\n\n while (parser.getUnparsedRemainingLength() > 0) {\n const appEntryLength = parser.extract8BitUInt()!;\n const appSizeInBlocks = parser.extract16BitUInt()!;\n parser.extract16BitUInt()!; // Skip 2 bytes (flags, missing in doc for now)\n const appCodeHash = parser.encodeToHexaString(\n parser.extractFieldByLength(0x20), // 32 bytes\n );\n const appFullHash = parser.encodeToHexaString(\n parser.extractFieldByLength(0x20), // 32 bytes\n );\n\n const appName = parser.encodeToString(parser.extractFieldLVEncoded());\n\n res.push({\n appEntryLength,\n appSizeInBlocks,\n appCodeHash,\n appFullHash,\n appName,\n });\n }\n\n return CommandResultFactory({\n data: res,\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,EAAA,yBAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAAkD,uCAClDC,EAA2B,sCAE3BC,EAGO,4CACPC,EAGO,4CACPC,EAA6B,2CAC7BC,EAA0C,iDAE1CC,EAA2D,sBAkB3D,MAAMC,EAAqD,CACzD,KAAQ,CAAE,QAAS,wDAAyD,CAC9E,EAOO,MAAMT,UAA6B,qBAAwC,CAChF,YAAY,CAAE,QAAAU,EAAS,UAAAC,CAAU,EAAyC,CACxE,MAAM,CAAE,QAAAD,EAAS,UAAAC,EAAW,IAAK,sBAAuB,CAAC,CAC3D,CACF,CAEO,MAAMZ,CAEb,CACW,KAAO,WACP,KAET,YAAYa,EAAO,CAAE,WAAY,EAAM,EAAG,CACxC,KAAK,KAAOA,CACd,CAEA,SAAgB,CACd,MAAMC,EAAmC,CACvC,IAAK,IACL,IAAK,KAAK,KAAK,WAAa,IAAO,IACnC,GAAI,EACJ,GAAI,CACN,EACA,OAAO,IAAI,cAAYA,CAAe,EAAE,MAAM,CAChD,CAEA,cAAcC,EAAmD,CAC/D,MAAMC,EAAM,CAAC,EACPC,EAAS,IAAI,aAAWF,CAAY,EAE1C,GAAI,CAAC,eAAa,kBAAkBA,CAAY,EAAG,CACjD,MAAMH,EAAYK,EAAO,mBAAmBF,EAAa,UAAU,EACnE,SAAI,sBAAmBH,EAAWF,CAAe,KACxC,wBAAqB,CAC1B,MAAO,IAAIT,EAAqB,CAC9B,GAAGS,EAAgBE,CAAS,EAC5B,UAAAA,CACF,CAAC,CACH,CAAC,KAEI,wBAAqB,CAC1B,MAAO,4BAA0B,OAAOG,CAAY,CACtD,CAAC,CACH,CAEA,GAAIA,EAAa,KAAK,QAAU,EAC9B,SAAO,wBAAqB,CAC1B,KAAM,CAAC,CACT,CAAC,EAMH,IAFAE,EAAO,gBAAgB,EAEhBA,EAAO,2BAA2B,EAAI,GAAG,CAC9C,MAAMC,EAAiBD,EAAO,gBAAgB,EACxCE,EAAkBF,EAAO,iBAAiB,EAChDA,EAAO,iBAAiB,EACxB,MAAMG,EAAcH,EAAO,mBACzBA,EAAO,qBAAqB,EAAI,CAClC,EACMI,EAAcJ,EAAO,mBACzBA,EAAO,qBAAqB,EAAI,CAClC,EAEMK,EAAUL,EAAO,eAAeA,EAAO,sBAAsB,CAAC,EAEpED,EAAI,KAAK,CACP,eAAAE,EACA,gBAAAC,EACA,YAAAC,EACA,YAAAC,EACA,QAAAC,CACF,CAAC,CACH,CAEA,SAAO,wBAAqB,CAC1B,KAAMN,CACR,CAAC,CACH,CACF",
6
6
  "names": ["ListAppsCommand_exports", "__export", "ListAppsCommand", "ListAppsCommandError", "__toCommonJS", "import_ApduBuilder", "import_ApduParser", "import_CommandResult", "import_CommandErrors", "import_CommandUtils", "import_GlobalCommandError", "import_Error", "LIST_APP_ERRORS", "message", "errorCode", "args", "listAppApduArgs", "apduResponse", "res", "parser", "appEntryLength", "appSizeInBlocks", "appCodeHash", "appFullHash", "appName"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var a=require("../../command/model/CommandResult"),t=require("../../device-session/ApduResponse"),r=require("./ListAppsCommand");const d=Uint8Array.from([224,222,0,0,0]),p=Uint8Array.from([224,223,0,0,0]),o=Uint8Array.from([1,77,0,19,202,80,162,37,158,3,169,137,73,84,31,243,218,241,134,41,163,15,177,105,175,24,210,113,43,168,184,41,111,241,197,49,15,165,169,126,255,168,22,115,123,175,73,99,90,66,53,112,18,115,75,144,158,39,150,212,231,241,75,44,205,156,164,118,40,52,7,66,105,116,99,111,105,110]),c=[{appEntryLength:77,appSizeInBlocks:19,appCodeHash:"a2259e03a98949541ff3daf18629a30fb169af18d2712ba8b8296ff1c5310fa5",appFullHash:"a97effa816737baf49635a42357012734b909e2796d4e7f14b2ccd9ca4762834",appName:"Bitcoin"}],f=Uint8Array.from([1,77,0,19,202,80,162,37,158,3,169,137,73,84,31,243,218,241,134,41,163,15,177,105,175,24,210,113,43,168,184,41,111,241,197,49,15,165,169,126,255,168,22,115,123,175,73,99,90,66,53,112,18,115,75,144,158,39,150,212,231,241,75,44,205,156,164,118,40,52,7,66,105,116,99,111,105,110,78,0,19,202,64,51,149,37,57,143,228,95,115,200,183,89,238,224,26,124,225,113,61,24,84,77,86,238,72,100,224,73,185,102,230,41,77,199,160,148,112,247,163,120,81,168,172,249,138,218,191,62,44,47,31,126,222,253,49,198,181,77,193,199,220,41,145,216,83,8,69,116,104,101,114,101,117,109]),n=[{appEntryLength:77,appSizeInBlocks:19,appCodeHash:"a2259e03a98949541ff3daf18629a30fb169af18d2712ba8b8296ff1c5310fa5",appFullHash:"a97effa816737baf49635a42357012734b909e2796d4e7f14b2ccd9ca4762834",appName:"Bitcoin"},{appEntryLength:78,appSizeInBlocks:19,appCodeHash:"339525398fe45f73c8b759eee01a7ce1713d18544d56ee4864e049b966e6294d",appFullHash:"c7a09470f7a37851a8acf98adabf3e2c2f1f7edefd31c6b54dc1c7dc2991d853",appName:"Ethereum"}],b=Uint8Array.from([1,77,0,1,202,64,220,134,34,156,121,10,224,62,185,19,9,238,28,148,96,10,109,223,73,10,157,105,11,251,10,47,2,2,14,187,76,31,180,194,230,27,174,27,171,43,115,71,223,59,59,26,47,217,241,251,175,251,58,165,248,170,35,62,210,191,170,188,193,62,7,80,111,108,121,103,111,110]),i=[{appEntryLength:77,appSizeInBlocks:1,appCodeHash:"dc86229c790ae03eb91309ee1c94600a6ddf490a9d690bfb0a2f02020ebb4c1f",appFullHash:"b4c2e61bae1bab2b7347df3b3b1a2fd9f1fbaffb3aa5f8aa233ed2bfaabcc13e",appName:"Polygon"}],u=Uint8Array.from([1,89,0,1,202,64,251,43,125,38,37,215,24,132,39,7,5,83,16,128,194,24,40,121,221,30,217,227,75,22,186,228,208,118,155,69,215,216,215,91,55,95,106,51,161,230,117,121,38,154,22,239,68,36,163,217,32,82,21,182,21,43,106,216,188,201,14,60,50,249,19,66,105,110,97,110,99,101,32,83,109,97,114,116,32,67,104,97,105,110,76,0,14,202,0,254,230,25,86,26,175,67,41,98,12,2,216,72,142,63,117,164,53,51,23,34,245,97,21,121,247,83,151,128,148,209,20,204,191,178,86,114,154,158,40,116,183,35,214,76,228,135,243,87,239,167,22,178,208,205,52,152,151,233,110,116,32,42,202,6,83,111,108,97,110,97]),A=[{appEntryLength:89,appSizeInBlocks:1,appCodeHash:"fb2b7d2625d71884270705531080c2182879dd1ed9e34b16bae4d0769b45d7d8",appFullHash:"d75b375f6a33a1e67579269a16ef4424a3d9205215b6152b6ad8bcc90e3c32f9",appName:"Binance Smart Chain"},{appEntryLength:76,appSizeInBlocks:14,appCodeHash:"fee619561aaf4329620c02d8488e3f75a435331722f5611579f753978094d114",appFullHash:"ccbfb256729a9e2874b723d64ce487f357efa716b2d0cd349897e96e74202aca",appName:"Solana"}];describe("ListAppCommand",()=>{let e;describe("first list app command",()=>{beforeEach(()=>{e=new r.ListAppsCommand}),describe("getApdu",()=>{it("should return the ListApp APDU",()=>{const x=e.getApdu();expect(x.getRawApdu()).toStrictEqual(d)})}),describe("parseResponse",()=>{it("should parse the response with no apps",()=>{const x=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:new Uint8Array});expect(e.parseResponse(x)).toStrictEqual((0,a.CommandResultFactory)({data:[]}))}),it("should parse the response with 1 app",()=>{const x=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:o});expect(e.parseResponse(x)).toStrictEqual((0,a.CommandResultFactory)({data:c}))}),it("should parse the response with 2 apps",()=>{const x=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:f});expect(e.parseResponse(x)).toStrictEqual((0,a.CommandResultFactory)({data:n}))})}),describe("errors",()=>{it("should return error command result if the response status code is not success",()=>{const x=new t.ApduResponse({statusCode:Uint8Array.from([106,130]),data:new Uint8Array}),s=e.parseResponse(x);expect((0,a.isSuccessCommandResult)(s)).toBe(!1)}),it("should return an error",()=>{const x=new t.ApduResponse({statusCode:Uint8Array.from([85,1]),data:new Uint8Array}),s=e.parseResponse(x);expect((0,a.isSuccessCommandResult)(s)).toBe(!1)})})}),describe("continue list app command",()=>{beforeEach(()=>{e=new r.ListAppsCommand({isContinue:!0})}),describe("getApdu",()=>{it("should return the Continue ListApp APDU",()=>{const x=e.getApdu();expect(x.getRawApdu()).toStrictEqual(p)})}),describe("parseResponse",()=>{it("should parse the response with 1 app",()=>{const x=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:b});expect(e.parseResponse(x)).toStrictEqual((0,a.CommandResultFactory)({data:i}))}),it("should parse the response with 2 apps",()=>{const x=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:u});expect(e.parseResponse(x)).toStrictEqual((0,a.CommandResultFactory)({data:A}))}),it("should parse the response when reaching the end of the list",()=>{const x=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:new Uint8Array});expect(e.parseResponse(x)).toStrictEqual((0,a.CommandResultFactory)({data:[]}))})}),describe("errors",()=>{it("should throw if ListApp wasn't called before",()=>{const x=new t.ApduResponse({statusCode:Uint8Array.from([102,36]),data:new Uint8Array}),s=e.parseResponse(x);expect((0,a.isSuccessCommandResult)(s)).toBe(!1),expect(s.error).toBeInstanceOf(r.ListAppsCommandError)})})})});
1
+ "use strict";var a=require("../../command/model/CommandResult"),t=require("../../device-session/ApduResponse"),r=require("./ListAppsCommand");const p=Uint8Array.from([224,222,0,0,0]),d=Uint8Array.from([224,223,0,0,0]),o=Uint8Array.from([1,77,0,19,202,80,162,37,158,3,169,137,73,84,31,243,218,241,134,41,163,15,177,105,175,24,210,113,43,168,184,41,111,241,197,49,15,165,169,126,255,168,22,115,123,175,73,99,90,66,53,112,18,115,75,144,158,39,150,212,231,241,75,44,205,156,164,118,40,52,7,66,105,116,99,111,105,110]),c=[{appEntryLength:77,appSizeInBlocks:19,appCodeHash:"a2259e03a98949541ff3daf18629a30fb169af18d2712ba8b8296ff1c5310fa5",appFullHash:"a97effa816737baf49635a42357012734b909e2796d4e7f14b2ccd9ca4762834",appName:"Bitcoin"}],f=Uint8Array.from([1,77,0,19,202,80,162,37,158,3,169,137,73,84,31,243,218,241,134,41,163,15,177,105,175,24,210,113,43,168,184,41,111,241,197,49,15,165,169,126,255,168,22,115,123,175,73,99,90,66,53,112,18,115,75,144,158,39,150,212,231,241,75,44,205,156,164,118,40,52,7,66,105,116,99,111,105,110,78,0,19,202,64,51,149,37,57,143,228,95,115,200,183,89,238,224,26,124,225,113,61,24,84,77,86,238,72,100,224,73,185,102,230,41,77,199,160,148,112,247,163,120,81,168,172,249,138,218,191,62,44,47,31,126,222,253,49,198,181,77,193,199,220,41,145,216,83,8,69,116,104,101,114,101,117,109]),n=[{appEntryLength:77,appSizeInBlocks:19,appCodeHash:"a2259e03a98949541ff3daf18629a30fb169af18d2712ba8b8296ff1c5310fa5",appFullHash:"a97effa816737baf49635a42357012734b909e2796d4e7f14b2ccd9ca4762834",appName:"Bitcoin"},{appEntryLength:78,appSizeInBlocks:19,appCodeHash:"339525398fe45f73c8b759eee01a7ce1713d18544d56ee4864e049b966e6294d",appFullHash:"c7a09470f7a37851a8acf98adabf3e2c2f1f7edefd31c6b54dc1c7dc2991d853",appName:"Ethereum"}],b=Uint8Array.from([1,77,0,1,202,64,220,134,34,156,121,10,224,62,185,19,9,238,28,148,96,10,109,223,73,10,157,105,11,251,10,47,2,2,14,187,76,31,180,194,230,27,174,27,171,43,115,71,223,59,59,26,47,217,241,251,175,251,58,165,248,170,35,62,210,191,170,188,193,62,7,80,111,108,121,103,111,110]),i=[{appEntryLength:77,appSizeInBlocks:1,appCodeHash:"dc86229c790ae03eb91309ee1c94600a6ddf490a9d690bfb0a2f02020ebb4c1f",appFullHash:"b4c2e61bae1bab2b7347df3b3b1a2fd9f1fbaffb3aa5f8aa233ed2bfaabcc13e",appName:"Polygon"}],u=Uint8Array.from([1,89,0,1,202,64,251,43,125,38,37,215,24,132,39,7,5,83,16,128,194,24,40,121,221,30,217,227,75,22,186,228,208,118,155,69,215,216,215,91,55,95,106,51,161,230,117,121,38,154,22,239,68,36,163,217,32,82,21,182,21,43,106,216,188,201,14,60,50,249,19,66,105,110,97,110,99,101,32,83,109,97,114,116,32,67,104,97,105,110,76,0,14,202,0,254,230,25,86,26,175,67,41,98,12,2,216,72,142,63,117,164,53,51,23,34,245,97,21,121,247,83,151,128,148,209,20,204,191,178,86,114,154,158,40,116,183,35,214,76,228,135,243,87,239,167,22,178,208,205,52,152,151,233,110,116,32,42,202,6,83,111,108,97,110,97]),A=[{appEntryLength:89,appSizeInBlocks:1,appCodeHash:"fb2b7d2625d71884270705531080c2182879dd1ed9e34b16bae4d0769b45d7d8",appFullHash:"d75b375f6a33a1e67579269a16ef4424a3d9205215b6152b6ad8bcc90e3c32f9",appName:"Binance Smart Chain"},{appEntryLength:76,appSizeInBlocks:14,appCodeHash:"fee619561aaf4329620c02d8488e3f75a435331722f5611579f753978094d114",appFullHash:"ccbfb256729a9e2874b723d64ce487f357efa716b2d0cd349897e96e74202aca",appName:"Solana"}];describe("ListAppCommand",()=>{let e;describe("name",()=>{it("should be 'listApps'",()=>{expect(new r.ListAppsCommand().name).toBe("listApps")})}),describe("first list app command",()=>{beforeEach(()=>{e=new r.ListAppsCommand}),describe("getApdu",()=>{it("should return the ListApp APDU",()=>{const x=e.getApdu();expect(x.getRawApdu()).toStrictEqual(p)})}),describe("parseResponse",()=>{it("should parse the response with no apps",()=>{const x=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:new Uint8Array});expect(e.parseResponse(x)).toStrictEqual((0,a.CommandResultFactory)({data:[]}))}),it("should parse the response with 1 app",()=>{const x=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:o});expect(e.parseResponse(x)).toStrictEqual((0,a.CommandResultFactory)({data:c}))}),it("should parse the response with 2 apps",()=>{const x=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:f});expect(e.parseResponse(x)).toStrictEqual((0,a.CommandResultFactory)({data:n}))})}),describe("errors",()=>{it("should return error command result if the response status code is not success",()=>{const x=new t.ApduResponse({statusCode:Uint8Array.from([106,130]),data:new Uint8Array}),s=e.parseResponse(x);expect((0,a.isSuccessCommandResult)(s)).toBe(!1)}),it("should return an error",()=>{const x=new t.ApduResponse({statusCode:Uint8Array.from([85,1]),data:new Uint8Array}),s=e.parseResponse(x);expect((0,a.isSuccessCommandResult)(s)).toBe(!1)})})}),describe("continue list app command",()=>{beforeEach(()=>{e=new r.ListAppsCommand({isContinue:!0})}),describe("getApdu",()=>{it("should return the Continue ListApp APDU",()=>{const x=e.getApdu();expect(x.getRawApdu()).toStrictEqual(d)})}),describe("parseResponse",()=>{it("should parse the response with 1 app",()=>{const x=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:b});expect(e.parseResponse(x)).toStrictEqual((0,a.CommandResultFactory)({data:i}))}),it("should parse the response with 2 apps",()=>{const x=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:u});expect(e.parseResponse(x)).toStrictEqual((0,a.CommandResultFactory)({data:A}))}),it("should parse the response when reaching the end of the list",()=>{const x=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:new Uint8Array});expect(e.parseResponse(x)).toStrictEqual((0,a.CommandResultFactory)({data:[]}))})}),describe("errors",()=>{it("should throw if ListApp wasn't called before",()=>{const x=new t.ApduResponse({statusCode:Uint8Array.from([102,36]),data:new Uint8Array}),s=e.parseResponse(x);expect((0,a.isSuccessCommandResult)(s)).toBe(!1),expect(s.error).toBeInstanceOf(r.ListAppsCommandError)})})})});
2
2
  //# sourceMappingURL=ListAppsCommand.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/api/command/os/ListAppsCommand.test.ts"],
4
- "sourcesContent": ["import {\n type CommandErrorResult,\n CommandResultFactory,\n isSuccessCommandResult,\n} from \"@api/command/model/CommandResult\";\nimport { ApduResponse } from \"@api/device-session/ApduResponse\";\n\nimport {\n ListAppsCommand,\n ListAppsCommandError,\n type ListAppsErrorCodes,\n} from \"./ListAppsCommand\";\n\n// [NOTE] EXAMPLES CREATED USING A NANO X\n\nconst LIST_APP_APDU = Uint8Array.from([0xe0, 0xde, 0x00, 0x00, 0x00]);\nconst CONTINUE_LIST_APP_ADPU = Uint8Array.from([0xe0, 0xdf, 0x00, 0x00, 0x00]);\n\n// only BITCOIN installed\nconst LIST_APP_RESPONSE_1_APP = Uint8Array.from([\n 0x01, 0x4d, 0x00, 0x13, 0xca, 0x50, 0xa2, 0x25, 0x9e, 0x03, 0xa9, 0x89, 0x49,\n 0x54, 0x1f, 0xf3, 0xda, 0xf1, 0x86, 0x29, 0xa3, 0x0f, 0xb1, 0x69, 0xaf, 0x18,\n 0xd2, 0x71, 0x2b, 0xa8, 0xb8, 0x29, 0x6f, 0xf1, 0xc5, 0x31, 0x0f, 0xa5, 0xa9,\n 0x7e, 0xff, 0xa8, 0x16, 0x73, 0x7b, 0xaf, 0x49, 0x63, 0x5a, 0x42, 0x35, 0x70,\n 0x12, 0x73, 0x4b, 0x90, 0x9e, 0x27, 0x96, 0xd4, 0xe7, 0xf1, 0x4b, 0x2c, 0xcd,\n 0x9c, 0xa4, 0x76, 0x28, 0x34, 0x07, 0x42, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e,\n]);\nconst LIST_APP_RESPONSE_1_APP_EXPECTED = [\n {\n appEntryLength: 77,\n appSizeInBlocks: 19,\n appCodeHash:\n \"a2259e03a98949541ff3daf18629a30fb169af18d2712ba8b8296ff1c5310fa5\",\n appFullHash:\n \"a97effa816737baf49635a42357012734b909e2796d4e7f14b2ccd9ca4762834\",\n appName: \"Bitcoin\",\n },\n];\n\n// BITCOIN & ETHEREUM installed\nconst LIST_APP_RESPONSE_2_APPS = Uint8Array.from([\n 0x01, 0x4d, 0x00, 0x13, 0xca, 0x50, 0xa2, 0x25, 0x9e, 0x03, 0xa9, 0x89, 0x49,\n 0x54, 0x1f, 0xf3, 0xda, 0xf1, 0x86, 0x29, 0xa3, 0x0f, 0xb1, 0x69, 0xaf, 0x18,\n 0xd2, 0x71, 0x2b, 0xa8, 0xb8, 0x29, 0x6f, 0xf1, 0xc5, 0x31, 0x0f, 0xa5, 0xa9,\n 0x7e, 0xff, 0xa8, 0x16, 0x73, 0x7b, 0xaf, 0x49, 0x63, 0x5a, 0x42, 0x35, 0x70,\n 0x12, 0x73, 0x4b, 0x90, 0x9e, 0x27, 0x96, 0xd4, 0xe7, 0xf1, 0x4b, 0x2c, 0xcd,\n 0x9c, 0xa4, 0x76, 0x28, 0x34, 0x07, 0x42, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e,\n 0x4e, 0x00, 0x13, 0xca, 0x40, 0x33, 0x95, 0x25, 0x39, 0x8f, 0xe4, 0x5f, 0x73,\n 0xc8, 0xb7, 0x59, 0xee, 0xe0, 0x1a, 0x7c, 0xe1, 0x71, 0x3d, 0x18, 0x54, 0x4d,\n 0x56, 0xee, 0x48, 0x64, 0xe0, 0x49, 0xb9, 0x66, 0xe6, 0x29, 0x4d, 0xc7, 0xa0,\n 0x94, 0x70, 0xf7, 0xa3, 0x78, 0x51, 0xa8, 0xac, 0xf9, 0x8a, 0xda, 0xbf, 0x3e,\n 0x2c, 0x2f, 0x1f, 0x7e, 0xde, 0xfd, 0x31, 0xc6, 0xb5, 0x4d, 0xc1, 0xc7, 0xdc,\n 0x29, 0x91, 0xd8, 0x53, 0x08, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d,\n]);\nconst LIST_APP_RESPONSE_2_APPS_EXPECTED = [\n {\n appEntryLength: 77,\n appSizeInBlocks: 19,\n appCodeHash:\n \"a2259e03a98949541ff3daf18629a30fb169af18d2712ba8b8296ff1c5310fa5\",\n appFullHash:\n \"a97effa816737baf49635a42357012734b909e2796d4e7f14b2ccd9ca4762834\",\n appName: \"Bitcoin\",\n },\n {\n appEntryLength: 78,\n appSizeInBlocks: 19,\n appCodeHash:\n \"339525398fe45f73c8b759eee01a7ce1713d18544d56ee4864e049b966e6294d\",\n appFullHash:\n \"c7a09470f7a37851a8acf98adabf3e2c2f1f7edefd31c6b54dc1c7dc2991d853\",\n appName: \"Ethereum\",\n },\n];\n\n// POLYGON as the last installed app\nconst LIST_APP_RESPONSE_CONTINUE_1_APP = Uint8Array.from([\n 0x01, 0x4d, 0x00, 0x01, 0xca, 0x40, 0xdc, 0x86, 0x22, 0x9c, 0x79, 0x0a, 0xe0,\n 0x3e, 0xb9, 0x13, 0x09, 0xee, 0x1c, 0x94, 0x60, 0x0a, 0x6d, 0xdf, 0x49, 0x0a,\n 0x9d, 0x69, 0x0b, 0xfb, 0x0a, 0x2f, 0x02, 0x02, 0x0e, 0xbb, 0x4c, 0x1f, 0xb4,\n 0xc2, 0xe6, 0x1b, 0xae, 0x1b, 0xab, 0x2b, 0x73, 0x47, 0xdf, 0x3b, 0x3b, 0x1a,\n 0x2f, 0xd9, 0xf1, 0xfb, 0xaf, 0xfb, 0x3a, 0xa5, 0xf8, 0xaa, 0x23, 0x3e, 0xd2,\n 0xbf, 0xaa, 0xbc, 0xc1, 0x3e, 0x07, 0x50, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e,\n]);\nconst LIST_APP_RESPONSE_CONTINUE_1_APP_EXPECTED = [\n {\n appEntryLength: 77,\n appSizeInBlocks: 1,\n appCodeHash:\n \"dc86229c790ae03eb91309ee1c94600a6ddf490a9d690bfb0a2f02020ebb4c1f\",\n appFullHash:\n \"b4c2e61bae1bab2b7347df3b3b1a2fd9f1fbaffb3aa5f8aa233ed2bfaabcc13e\",\n appName: \"Polygon\",\n },\n];\n\n// BINANCE SMART CHAIN & SOLANA installed\nconst LIST_APP_RESPONSE_CONTINUE_2_APPS = Uint8Array.from([\n 0x01, 0x59, 0x00, 0x01, 0xca, 0x40, 0xfb, 0x2b, 0x7d, 0x26, 0x25, 0xd7, 0x18,\n 0x84, 0x27, 0x07, 0x05, 0x53, 0x10, 0x80, 0xc2, 0x18, 0x28, 0x79, 0xdd, 0x1e,\n 0xd9, 0xe3, 0x4b, 0x16, 0xba, 0xe4, 0xd0, 0x76, 0x9b, 0x45, 0xd7, 0xd8, 0xd7,\n 0x5b, 0x37, 0x5f, 0x6a, 0x33, 0xa1, 0xe6, 0x75, 0x79, 0x26, 0x9a, 0x16, 0xef,\n 0x44, 0x24, 0xa3, 0xd9, 0x20, 0x52, 0x15, 0xb6, 0x15, 0x2b, 0x6a, 0xd8, 0xbc,\n 0xc9, 0x0e, 0x3c, 0x32, 0xf9, 0x13, 0x42, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x65,\n 0x20, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x20, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x4c,\n 0x00, 0x0e, 0xca, 0x00, 0xfe, 0xe6, 0x19, 0x56, 0x1a, 0xaf, 0x43, 0x29, 0x62,\n 0x0c, 0x02, 0xd8, 0x48, 0x8e, 0x3f, 0x75, 0xa4, 0x35, 0x33, 0x17, 0x22, 0xf5,\n 0x61, 0x15, 0x79, 0xf7, 0x53, 0x97, 0x80, 0x94, 0xd1, 0x14, 0xcc, 0xbf, 0xb2,\n 0x56, 0x72, 0x9a, 0x9e, 0x28, 0x74, 0xb7, 0x23, 0xd6, 0x4c, 0xe4, 0x87, 0xf3,\n 0x57, 0xef, 0xa7, 0x16, 0xb2, 0xd0, 0xcd, 0x34, 0x98, 0x97, 0xe9, 0x6e, 0x74,\n 0x20, 0x2a, 0xca, 0x06, 0x53, 0x6f, 0x6c, 0x61, 0x6e, 0x61,\n]);\nconst LIST_APP_RESPONSE_CONTINUE_2_APPS_EXPECTED = [\n {\n appEntryLength: 89,\n appSizeInBlocks: 1,\n appCodeHash:\n \"fb2b7d2625d71884270705531080c2182879dd1ed9e34b16bae4d0769b45d7d8\",\n appFullHash:\n \"d75b375f6a33a1e67579269a16ef4424a3d9205215b6152b6ad8bcc90e3c32f9\",\n appName: \"Binance Smart Chain\",\n },\n {\n appEntryLength: 76,\n appSizeInBlocks: 14,\n appCodeHash:\n \"fee619561aaf4329620c02d8488e3f75a435331722f5611579f753978094d114\",\n appFullHash:\n \"ccbfb256729a9e2874b723d64ce487f357efa716b2d0cd349897e96e74202aca\",\n appName: \"Solana\",\n },\n];\n\ndescribe(\"ListAppCommand\", () => {\n let command: ListAppsCommand;\n\n describe(\"first list app command\", () => {\n beforeEach(() => {\n command = new ListAppsCommand();\n });\n\n describe(\"getApdu\", () => {\n it(\"should return the ListApp APDU\", () => {\n const apdu = command.getApdu();\n expect(apdu.getRawApdu()).toStrictEqual(LIST_APP_APDU);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should parse the response with no apps\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array(),\n });\n\n expect(command.parseResponse(response)).toStrictEqual(\n CommandResultFactory({ data: [] }),\n );\n });\n\n it(\"should parse the response with 1 app\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: LIST_APP_RESPONSE_1_APP,\n });\n\n expect(command.parseResponse(response)).toStrictEqual(\n CommandResultFactory({ data: LIST_APP_RESPONSE_1_APP_EXPECTED }),\n );\n });\n\n it(\"should parse the response with 2 apps\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: LIST_APP_RESPONSE_2_APPS,\n });\n\n expect(command.parseResponse(response)).toStrictEqual(\n CommandResultFactory({ data: LIST_APP_RESPONSE_2_APPS_EXPECTED }),\n );\n });\n });\n\n describe(\"errors\", () => {\n it(\"should return error command result if the response status code is not success\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6a, 0x82]),\n data: new Uint8Array(),\n });\n const result = command.parseResponse(response);\n\n expect(isSuccessCommandResult(result)).toBe(false);\n });\n\n it(\"should return an error\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x55, 0x01]),\n data: new Uint8Array(),\n });\n\n // when\n const result = command.parseResponse(response);\n\n expect(isSuccessCommandResult(result)).toBe(false);\n });\n });\n });\n\n describe(\"continue list app command\", () => {\n beforeEach(() => {\n command = new ListAppsCommand({ isContinue: true });\n });\n\n describe(\"getApdu\", () => {\n it(\"should return the Continue ListApp APDU\", () => {\n const apdu = command.getApdu();\n expect(apdu.getRawApdu()).toStrictEqual(CONTINUE_LIST_APP_ADPU);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should parse the response with 1 app\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: LIST_APP_RESPONSE_CONTINUE_1_APP,\n });\n\n expect(command.parseResponse(response)).toStrictEqual(\n CommandResultFactory({\n data: LIST_APP_RESPONSE_CONTINUE_1_APP_EXPECTED,\n }),\n );\n });\n\n it(\"should parse the response with 2 apps\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: LIST_APP_RESPONSE_CONTINUE_2_APPS,\n });\n\n expect(command.parseResponse(response)).toStrictEqual(\n CommandResultFactory({\n data: LIST_APP_RESPONSE_CONTINUE_2_APPS_EXPECTED,\n }),\n );\n });\n\n it(\"should parse the response when reaching the end of the list\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array(),\n });\n\n expect(command.parseResponse(response)).toStrictEqual(\n CommandResultFactory({ data: [] }),\n );\n });\n });\n\n describe(\"errors\", () => {\n it(\"should throw if ListApp wasn't called before\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x66, 0x24]),\n data: new Uint8Array(),\n });\n const result = command.parseResponse(\n response,\n ) as CommandErrorResult<ListAppsErrorCodes>;\n\n expect(isSuccessCommandResult(result)).toBe(false);\n expect(result.error).toBeInstanceOf(ListAppsCommandError);\n });\n });\n });\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n type CommandErrorResult,\n CommandResultFactory,\n isSuccessCommandResult,\n} from \"@api/command/model/CommandResult\";\nimport { ApduResponse } from \"@api/device-session/ApduResponse\";\n\nimport {\n ListAppsCommand,\n ListAppsCommandError,\n type ListAppsErrorCodes,\n} from \"./ListAppsCommand\";\n\n// [NOTE] EXAMPLES CREATED USING A NANO X\n\nconst LIST_APP_APDU = Uint8Array.from([0xe0, 0xde, 0x00, 0x00, 0x00]);\nconst CONTINUE_LIST_APP_ADPU = Uint8Array.from([0xe0, 0xdf, 0x00, 0x00, 0x00]);\n\n// only BITCOIN installed\nconst LIST_APP_RESPONSE_1_APP = Uint8Array.from([\n 0x01, 0x4d, 0x00, 0x13, 0xca, 0x50, 0xa2, 0x25, 0x9e, 0x03, 0xa9, 0x89, 0x49,\n 0x54, 0x1f, 0xf3, 0xda, 0xf1, 0x86, 0x29, 0xa3, 0x0f, 0xb1, 0x69, 0xaf, 0x18,\n 0xd2, 0x71, 0x2b, 0xa8, 0xb8, 0x29, 0x6f, 0xf1, 0xc5, 0x31, 0x0f, 0xa5, 0xa9,\n 0x7e, 0xff, 0xa8, 0x16, 0x73, 0x7b, 0xaf, 0x49, 0x63, 0x5a, 0x42, 0x35, 0x70,\n 0x12, 0x73, 0x4b, 0x90, 0x9e, 0x27, 0x96, 0xd4, 0xe7, 0xf1, 0x4b, 0x2c, 0xcd,\n 0x9c, 0xa4, 0x76, 0x28, 0x34, 0x07, 0x42, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e,\n]);\nconst LIST_APP_RESPONSE_1_APP_EXPECTED = [\n {\n appEntryLength: 77,\n appSizeInBlocks: 19,\n appCodeHash:\n \"a2259e03a98949541ff3daf18629a30fb169af18d2712ba8b8296ff1c5310fa5\",\n appFullHash:\n \"a97effa816737baf49635a42357012734b909e2796d4e7f14b2ccd9ca4762834\",\n appName: \"Bitcoin\",\n },\n];\n\n// BITCOIN & ETHEREUM installed\nconst LIST_APP_RESPONSE_2_APPS = Uint8Array.from([\n 0x01, 0x4d, 0x00, 0x13, 0xca, 0x50, 0xa2, 0x25, 0x9e, 0x03, 0xa9, 0x89, 0x49,\n 0x54, 0x1f, 0xf3, 0xda, 0xf1, 0x86, 0x29, 0xa3, 0x0f, 0xb1, 0x69, 0xaf, 0x18,\n 0xd2, 0x71, 0x2b, 0xa8, 0xb8, 0x29, 0x6f, 0xf1, 0xc5, 0x31, 0x0f, 0xa5, 0xa9,\n 0x7e, 0xff, 0xa8, 0x16, 0x73, 0x7b, 0xaf, 0x49, 0x63, 0x5a, 0x42, 0x35, 0x70,\n 0x12, 0x73, 0x4b, 0x90, 0x9e, 0x27, 0x96, 0xd4, 0xe7, 0xf1, 0x4b, 0x2c, 0xcd,\n 0x9c, 0xa4, 0x76, 0x28, 0x34, 0x07, 0x42, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e,\n 0x4e, 0x00, 0x13, 0xca, 0x40, 0x33, 0x95, 0x25, 0x39, 0x8f, 0xe4, 0x5f, 0x73,\n 0xc8, 0xb7, 0x59, 0xee, 0xe0, 0x1a, 0x7c, 0xe1, 0x71, 0x3d, 0x18, 0x54, 0x4d,\n 0x56, 0xee, 0x48, 0x64, 0xe0, 0x49, 0xb9, 0x66, 0xe6, 0x29, 0x4d, 0xc7, 0xa0,\n 0x94, 0x70, 0xf7, 0xa3, 0x78, 0x51, 0xa8, 0xac, 0xf9, 0x8a, 0xda, 0xbf, 0x3e,\n 0x2c, 0x2f, 0x1f, 0x7e, 0xde, 0xfd, 0x31, 0xc6, 0xb5, 0x4d, 0xc1, 0xc7, 0xdc,\n 0x29, 0x91, 0xd8, 0x53, 0x08, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d,\n]);\nconst LIST_APP_RESPONSE_2_APPS_EXPECTED = [\n {\n appEntryLength: 77,\n appSizeInBlocks: 19,\n appCodeHash:\n \"a2259e03a98949541ff3daf18629a30fb169af18d2712ba8b8296ff1c5310fa5\",\n appFullHash:\n \"a97effa816737baf49635a42357012734b909e2796d4e7f14b2ccd9ca4762834\",\n appName: \"Bitcoin\",\n },\n {\n appEntryLength: 78,\n appSizeInBlocks: 19,\n appCodeHash:\n \"339525398fe45f73c8b759eee01a7ce1713d18544d56ee4864e049b966e6294d\",\n appFullHash:\n \"c7a09470f7a37851a8acf98adabf3e2c2f1f7edefd31c6b54dc1c7dc2991d853\",\n appName: \"Ethereum\",\n },\n];\n\n// POLYGON as the last installed app\nconst LIST_APP_RESPONSE_CONTINUE_1_APP = Uint8Array.from([\n 0x01, 0x4d, 0x00, 0x01, 0xca, 0x40, 0xdc, 0x86, 0x22, 0x9c, 0x79, 0x0a, 0xe0,\n 0x3e, 0xb9, 0x13, 0x09, 0xee, 0x1c, 0x94, 0x60, 0x0a, 0x6d, 0xdf, 0x49, 0x0a,\n 0x9d, 0x69, 0x0b, 0xfb, 0x0a, 0x2f, 0x02, 0x02, 0x0e, 0xbb, 0x4c, 0x1f, 0xb4,\n 0xc2, 0xe6, 0x1b, 0xae, 0x1b, 0xab, 0x2b, 0x73, 0x47, 0xdf, 0x3b, 0x3b, 0x1a,\n 0x2f, 0xd9, 0xf1, 0xfb, 0xaf, 0xfb, 0x3a, 0xa5, 0xf8, 0xaa, 0x23, 0x3e, 0xd2,\n 0xbf, 0xaa, 0xbc, 0xc1, 0x3e, 0x07, 0x50, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e,\n]);\nconst LIST_APP_RESPONSE_CONTINUE_1_APP_EXPECTED = [\n {\n appEntryLength: 77,\n appSizeInBlocks: 1,\n appCodeHash:\n \"dc86229c790ae03eb91309ee1c94600a6ddf490a9d690bfb0a2f02020ebb4c1f\",\n appFullHash:\n \"b4c2e61bae1bab2b7347df3b3b1a2fd9f1fbaffb3aa5f8aa233ed2bfaabcc13e\",\n appName: \"Polygon\",\n },\n];\n\n// BINANCE SMART CHAIN & SOLANA installed\nconst LIST_APP_RESPONSE_CONTINUE_2_APPS = Uint8Array.from([\n 0x01, 0x59, 0x00, 0x01, 0xca, 0x40, 0xfb, 0x2b, 0x7d, 0x26, 0x25, 0xd7, 0x18,\n 0x84, 0x27, 0x07, 0x05, 0x53, 0x10, 0x80, 0xc2, 0x18, 0x28, 0x79, 0xdd, 0x1e,\n 0xd9, 0xe3, 0x4b, 0x16, 0xba, 0xe4, 0xd0, 0x76, 0x9b, 0x45, 0xd7, 0xd8, 0xd7,\n 0x5b, 0x37, 0x5f, 0x6a, 0x33, 0xa1, 0xe6, 0x75, 0x79, 0x26, 0x9a, 0x16, 0xef,\n 0x44, 0x24, 0xa3, 0xd9, 0x20, 0x52, 0x15, 0xb6, 0x15, 0x2b, 0x6a, 0xd8, 0xbc,\n 0xc9, 0x0e, 0x3c, 0x32, 0xf9, 0x13, 0x42, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x65,\n 0x20, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x20, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x4c,\n 0x00, 0x0e, 0xca, 0x00, 0xfe, 0xe6, 0x19, 0x56, 0x1a, 0xaf, 0x43, 0x29, 0x62,\n 0x0c, 0x02, 0xd8, 0x48, 0x8e, 0x3f, 0x75, 0xa4, 0x35, 0x33, 0x17, 0x22, 0xf5,\n 0x61, 0x15, 0x79, 0xf7, 0x53, 0x97, 0x80, 0x94, 0xd1, 0x14, 0xcc, 0xbf, 0xb2,\n 0x56, 0x72, 0x9a, 0x9e, 0x28, 0x74, 0xb7, 0x23, 0xd6, 0x4c, 0xe4, 0x87, 0xf3,\n 0x57, 0xef, 0xa7, 0x16, 0xb2, 0xd0, 0xcd, 0x34, 0x98, 0x97, 0xe9, 0x6e, 0x74,\n 0x20, 0x2a, 0xca, 0x06, 0x53, 0x6f, 0x6c, 0x61, 0x6e, 0x61,\n]);\nconst LIST_APP_RESPONSE_CONTINUE_2_APPS_EXPECTED = [\n {\n appEntryLength: 89,\n appSizeInBlocks: 1,\n appCodeHash:\n \"fb2b7d2625d71884270705531080c2182879dd1ed9e34b16bae4d0769b45d7d8\",\n appFullHash:\n \"d75b375f6a33a1e67579269a16ef4424a3d9205215b6152b6ad8bcc90e3c32f9\",\n appName: \"Binance Smart Chain\",\n },\n {\n appEntryLength: 76,\n appSizeInBlocks: 14,\n appCodeHash:\n \"fee619561aaf4329620c02d8488e3f75a435331722f5611579f753978094d114\",\n appFullHash:\n \"ccbfb256729a9e2874b723d64ce487f357efa716b2d0cd349897e96e74202aca\",\n appName: \"Solana\",\n },\n];\n\ndescribe(\"ListAppCommand\", () => {\n let command: ListAppsCommand;\n\n describe(\"name\", () => {\n it(\"should be 'listApps'\", () => {\n expect(new ListAppsCommand().name).toBe(\"listApps\");\n });\n });\n\n describe(\"first list app command\", () => {\n beforeEach(() => {\n command = new ListAppsCommand();\n });\n\n describe(\"getApdu\", () => {\n it(\"should return the ListApp APDU\", () => {\n const apdu = command.getApdu();\n expect(apdu.getRawApdu()).toStrictEqual(LIST_APP_APDU);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should parse the response with no apps\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array(),\n });\n\n expect(command.parseResponse(response)).toStrictEqual(\n CommandResultFactory({ data: [] }),\n );\n });\n\n it(\"should parse the response with 1 app\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: LIST_APP_RESPONSE_1_APP,\n });\n\n expect(command.parseResponse(response)).toStrictEqual(\n CommandResultFactory({ data: LIST_APP_RESPONSE_1_APP_EXPECTED }),\n );\n });\n\n it(\"should parse the response with 2 apps\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: LIST_APP_RESPONSE_2_APPS,\n });\n\n expect(command.parseResponse(response)).toStrictEqual(\n CommandResultFactory({ data: LIST_APP_RESPONSE_2_APPS_EXPECTED }),\n );\n });\n });\n\n describe(\"errors\", () => {\n it(\"should return error command result if the response status code is not success\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6a, 0x82]),\n data: new Uint8Array(),\n });\n const result = command.parseResponse(response);\n\n expect(isSuccessCommandResult(result)).toBe(false);\n });\n\n it(\"should return an error\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x55, 0x01]),\n data: new Uint8Array(),\n });\n\n // when\n const result = command.parseResponse(response);\n\n expect(isSuccessCommandResult(result)).toBe(false);\n });\n });\n });\n\n describe(\"continue list app command\", () => {\n beforeEach(() => {\n command = new ListAppsCommand({ isContinue: true });\n });\n\n describe(\"getApdu\", () => {\n it(\"should return the Continue ListApp APDU\", () => {\n const apdu = command.getApdu();\n expect(apdu.getRawApdu()).toStrictEqual(CONTINUE_LIST_APP_ADPU);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should parse the response with 1 app\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: LIST_APP_RESPONSE_CONTINUE_1_APP,\n });\n\n expect(command.parseResponse(response)).toStrictEqual(\n CommandResultFactory({\n data: LIST_APP_RESPONSE_CONTINUE_1_APP_EXPECTED,\n }),\n );\n });\n\n it(\"should parse the response with 2 apps\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: LIST_APP_RESPONSE_CONTINUE_2_APPS,\n });\n\n expect(command.parseResponse(response)).toStrictEqual(\n CommandResultFactory({\n data: LIST_APP_RESPONSE_CONTINUE_2_APPS_EXPECTED,\n }),\n );\n });\n\n it(\"should parse the response when reaching the end of the list\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array(),\n });\n\n expect(command.parseResponse(response)).toStrictEqual(\n CommandResultFactory({ data: [] }),\n );\n });\n });\n\n describe(\"errors\", () => {\n it(\"should throw if ListApp wasn't called before\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x66, 0x24]),\n data: new Uint8Array(),\n });\n const result = command.parseResponse(\n response,\n ) as CommandErrorResult<ListAppsErrorCodes>;\n\n expect(isSuccessCommandResult(result)).toBe(false);\n expect(result.error).toBeInstanceOf(ListAppsCommandError);\n });\n });\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_CommandResult", "import_ApduResponse", "import_ListAppsCommand", "LIST_APP_APDU", "CONTINUE_LIST_APP_ADPU", "LIST_APP_RESPONSE_1_APP", "LIST_APP_RESPONSE_1_APP_EXPECTED", "LIST_APP_RESPONSE_2_APPS", "LIST_APP_RESPONSE_2_APPS_EXPECTED", "LIST_APP_RESPONSE_CONTINUE_1_APP", "LIST_APP_RESPONSE_CONTINUE_1_APP_EXPECTED", "LIST_APP_RESPONSE_CONTINUE_2_APPS", "LIST_APP_RESPONSE_CONTINUE_2_APPS_EXPECTED", "command", "apdu", "response", "result"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";var d=Object.defineProperty;var P=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var R=(a,r)=>{for(var e in r)d(a,e,{get:r[e],enumerable:!0})},I=(a,r,e,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of x(r))!y.call(a,o)&&o!==e&&d(a,o,{get:()=>r[o],enumerable:!(n=P(r,o))||n.enumerable});return a};var S=a=>I(d({},"__esModule",{value:!0}),a);var B={};R(B,{ListLanguagePackCommand:()=>b,ListLanguagePackCommandError:()=>A});module.exports=S(B);var p=require("../../apdu/utils/ApduBuilder"),c=require("../../apdu/utils/ApduParser"),i=require("../../command/Errors"),t=require("../../command/model/CommandResult"),L=require("../../command/utils/CommandErrors"),l=require("../../command/utils/CommandUtils"),C=require("../../command/utils/GlobalCommandError"),f=require("../../Error"),m=require("../../utils/HexaString");const g={"662d":{message:"Invalid LIST_ARG, first command must be sent with P1_LIST_LANGUAGE_PACKS_FIRST."}};class A extends f.DeviceExchangeError{constructor({message:r,errorCode:e}){super({message:r,errorCode:e,tag:"ListLanguagePackCommandError"})}}class b{constructor(r){this.args=r}name="listLanguagePack";getApdu(){const r={cla:224,ins:52,p1:this.args.firstChunk?0:1,p2:0};return new p.ApduBuilder(r).build()}parseResponse(r){const e=new c.ApduParser(r);if(!l.CommandUtils.isSuccessResponse(r)){const s=e.encodeToHexaString(r.statusCode);return(0,L.isCommandErrorCode)(s,g)?(0,t.CommandResultFactory)({error:new A({...g[s],errorCode:s})}):(0,t.CommandResultFactory)({error:C.GlobalCommandErrorHandler.handle(r)})}if(e.extract8BitUInt()===void 0)return(0,t.CommandResultFactory)({data:void 0});e.extract8BitUInt();const o=e.extractFieldLVEncoded();if(o===void 0)return(0,t.CommandResultFactory)({error:new i.InvalidStatusWordError("Failed to get language pack id")});const u=e.extractFieldLVEncoded();if(u===void 0)return(0,t.CommandResultFactory)({error:new i.InvalidStatusWordError("Failed to get language pack size")});const k=parseInt((0,m.bufferToHexaString)(o),16),E=parseInt((0,m.bufferToHexaString)(u),16);return(0,t.CommandResultFactory)({data:{id:k,size:E}})}}0&&(module.exports={ListLanguagePackCommand,ListLanguagePackCommandError});
2
+ //# sourceMappingURL=ListLanguagePackCommand.js.map