@ledgerhq/dmk-ledger-wallet 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (580) hide show
  1. package/lib/cjs/api/command/OsUpdate/Backup/BackupAppStorageCommand.js +2 -0
  2. package/lib/cjs/api/command/OsUpdate/Backup/BackupAppStorageCommand.js.map +7 -0
  3. package/lib/cjs/api/command/OsUpdate/Backup/BackupAppStorageCommand.test.js +2 -0
  4. package/lib/cjs/api/command/OsUpdate/Backup/BackupAppStorageCommand.test.js.map +7 -0
  5. package/lib/cjs/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.js +2 -0
  6. package/lib/cjs/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.js.map +7 -0
  7. package/lib/cjs/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.test.js +2 -0
  8. package/lib/cjs/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.test.js.map +7 -0
  9. package/lib/cjs/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.js +2 -0
  10. package/lib/cjs/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.js.map +7 -0
  11. package/lib/cjs/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.test.js +2 -0
  12. package/lib/cjs/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.test.js.map +7 -0
  13. package/lib/cjs/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.js +2 -0
  14. package/lib/cjs/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.js.map +7 -0
  15. package/lib/cjs/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.test.js +2 -0
  16. package/lib/cjs/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.test.js.map +7 -0
  17. package/lib/cjs/api/command/OsUpdate/Restore/RequestMasterConsentCommand.js +2 -0
  18. package/lib/cjs/api/command/OsUpdate/Restore/RequestMasterConsentCommand.js.map +7 -0
  19. package/lib/cjs/api/command/OsUpdate/Restore/RequestMasterConsentCommand.test.js +2 -0
  20. package/lib/cjs/api/command/OsUpdate/Restore/RequestMasterConsentCommand.test.js.map +7 -0
  21. package/lib/cjs/api/command/OsUpdate/Restore/RestoreAppStorageCommand.js +2 -0
  22. package/lib/cjs/api/command/OsUpdate/Restore/RestoreAppStorageCommand.js.map +7 -0
  23. package/lib/cjs/api/command/OsUpdate/Restore/RestoreAppStorageCommand.test.js +2 -0
  24. package/lib/cjs/api/command/OsUpdate/Restore/RestoreAppStorageCommand.test.js.map +7 -0
  25. package/lib/cjs/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.js +2 -0
  26. package/lib/cjs/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.js.map +7 -0
  27. package/lib/cjs/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.test.js +2 -0
  28. package/lib/cjs/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.test.js.map +7 -0
  29. package/lib/cjs/api/device-action/OsUpdate/Backup/CreateBackupDeviceActionErrors.js +2 -0
  30. package/lib/cjs/api/device-action/OsUpdate/Backup/CreateBackupDeviceActionErrors.js.map +7 -0
  31. package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage.js +2 -0
  32. package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage.js.map +7 -0
  33. package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage.test.js +2 -0
  34. package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage.test.js.map +7 -0
  35. package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen.js +2 -0
  36. package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen.js.map +7 -0
  37. package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen.test.js +2 -0
  38. package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen.test.js.map +7 -0
  39. package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded.js +2 -0
  40. package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded.js.map +7 -0
  41. package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded.test.js +2 -0
  42. package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded.test.js.map +7 -0
  43. package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/GetLanguageId.js +2 -0
  44. package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/GetLanguageId.js.map +7 -0
  45. package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/GetLanguageId.test.js +2 -0
  46. package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/GetLanguageId.test.js.map +7 -0
  47. package/lib/cjs/api/device-action/OsUpdate/Backup/types.js +2 -0
  48. package/lib/cjs/api/device-action/OsUpdate/Backup/types.js.map +7 -0
  49. package/lib/cjs/api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction.js +2 -0
  50. package/lib/cjs/api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction.js.map +7 -0
  51. package/lib/cjs/api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction.test.js +2 -0
  52. package/lib/cjs/api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction.test.js.map +7 -0
  53. package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/DeleteLanguagePack.js +2 -0
  54. package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/DeleteLanguagePack.js.map +7 -0
  55. package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/DeleteLanguagePack.test.js +2 -0
  56. package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/DeleteLanguagePack.test.js.map +7 -0
  57. package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/GetCustomLockScreenInfo.js +2 -0
  58. package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/GetCustomLockScreenInfo.js.map +7 -0
  59. package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/GetCustomLockScreenInfo.test.js +2 -0
  60. package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/GetCustomLockScreenInfo.test.js.map +7 -0
  61. package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/RemoveCustomLockScreen.js +2 -0
  62. package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/RemoveCustomLockScreen.js.map +7 -0
  63. package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/RemoveCustomLockScreen.test.js +2 -0
  64. package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/RemoveCustomLockScreen.test.js.map +7 -0
  65. package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/UninstallApp.js +2 -0
  66. package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/UninstallApp.js.map +7 -0
  67. package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/UninstallApp.test.js +2 -0
  68. package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/UninstallApp.test.js.map +7 -0
  69. package/lib/cjs/api/device-action/OsUpdate/CleanDevice/types.js +2 -0
  70. package/lib/cjs/api/device-action/OsUpdate/CleanDevice/types.js.map +7 -0
  71. package/lib/cjs/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction.js +2 -0
  72. package/lib/cjs/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction.js.map +7 -0
  73. package/lib/cjs/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction.test.js +2 -0
  74. package/lib/cjs/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction.test.js.map +7 -0
  75. package/lib/cjs/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceActionErrors.js +2 -0
  76. package/lib/cjs/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceActionErrors.js.map +7 -0
  77. package/lib/cjs/api/device-action/OsUpdate/Resolve/Substeps/ResolveOsUpdatePath.js +2 -0
  78. package/lib/cjs/api/device-action/OsUpdate/Resolve/Substeps/ResolveOsUpdatePath.js.map +7 -0
  79. package/lib/cjs/api/device-action/OsUpdate/Resolve/Substeps/ResolveOsUpdatePath.test.js +2 -0
  80. package/lib/cjs/api/device-action/OsUpdate/Resolve/Substeps/ResolveOsUpdatePath.test.js.map +7 -0
  81. package/lib/cjs/api/device-action/OsUpdate/Resolve/types.js +2 -0
  82. package/lib/cjs/api/device-action/OsUpdate/Resolve/types.js.map +7 -0
  83. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction.js +2 -0
  84. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction.js.map +7 -0
  85. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction.test.js +2 -0
  86. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction.test.js.map +7 -0
  87. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceActionErrors.js +2 -0
  88. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceActionErrors.js.map +7 -0
  89. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/CommitRestoreAppStorage.js +2 -0
  90. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/CommitRestoreAppStorage.js.map +7 -0
  91. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/CommitRestoreAppStorage.test.js +2 -0
  92. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/CommitRestoreAppStorage.test.js.map +7 -0
  93. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/InitRestoreAppStorage.js +2 -0
  94. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/InitRestoreAppStorage.js.map +7 -0
  95. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/InitRestoreAppStorage.test.js +2 -0
  96. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/InitRestoreAppStorage.test.js.map +7 -0
  97. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/RestoreAppStorage.js +2 -0
  98. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/RestoreAppStorage.js.map +7 -0
  99. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/RestoreAppStorage.test.js +2 -0
  100. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/RestoreAppStorage.test.js.map +7 -0
  101. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/types.js +2 -0
  102. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/types.js.map +7 -0
  103. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction.js +2 -0
  104. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction.js.map +7 -0
  105. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction.test.js +2 -0
  106. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction.test.js.map +7 -0
  107. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceActionErrors.js +2 -0
  108. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceActionErrors.js.map +7 -0
  109. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/GetIsOnboarded.js +2 -0
  110. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/GetIsOnboarded.js.map +7 -0
  111. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/GetIsOnboarded.test.js +2 -0
  112. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/GetIsOnboarded.test.js.map +7 -0
  113. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallLanguagePackage.js +2 -0
  114. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallLanguagePackage.js.map +7 -0
  115. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallLanguagePackage.test.js +2 -0
  116. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallLanguagePackage.test.js.map +7 -0
  117. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallOrUpdateApps.js +2 -0
  118. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallOrUpdateApps.js.map +7 -0
  119. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallOrUpdateApps.test.js +2 -0
  120. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallOrUpdateApps.test.js.map +7 -0
  121. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RequestMasterConsent.js +2 -0
  122. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RequestMasterConsent.js.map +7 -0
  123. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RequestMasterConsent.test.js +2 -0
  124. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RequestMasterConsent.test.js.map +7 -0
  125. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RestoreAppsStorage.js +2 -0
  126. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RestoreAppsStorage.js.map +7 -0
  127. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RestoreAppsStorage.test.js +2 -0
  128. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RestoreAppsStorage.test.js.map +7 -0
  129. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/UploadCustomLockScreen.js +2 -0
  130. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/UploadCustomLockScreen.js.map +7 -0
  131. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/UploadCustomLockScreen.test.js +2 -0
  132. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/UploadCustomLockScreen.test.js.map +7 -0
  133. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/types.js +2 -0
  134. package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/types.js.map +7 -0
  135. package/lib/cjs/api/device-action/OsUpdate/Shared/OsUpdateDeviceActionErrors.js +2 -0
  136. package/lib/cjs/api/device-action/OsUpdate/Shared/OsUpdateDeviceActionErrors.js.map +7 -0
  137. package/lib/cjs/api/device-action/OsUpdate/Shared/OsUpdateUtils.js +2 -0
  138. package/lib/cjs/api/device-action/OsUpdate/Shared/OsUpdateUtils.js.map +7 -0
  139. package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/GetOsVersion.js +2 -0
  140. package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/GetOsVersion.js.map +7 -0
  141. package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/GetOsVersion.test.js +2 -0
  142. package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/GetOsVersion.test.js.map +7 -0
  143. package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/GoToDashboard.js +2 -0
  144. package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/GoToDashboard.js.map +7 -0
  145. package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/GoToDashboard.test.js +2 -0
  146. package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/GoToDashboard.test.js.map +7 -0
  147. package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps.js +2 -0
  148. package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps.js.map +7 -0
  149. package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps.test.js +2 -0
  150. package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps.test.js.map +7 -0
  151. package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion.js +2 -0
  152. package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion.js.map +7 -0
  153. package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion.test.js +2 -0
  154. package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion.test.js.map +7 -0
  155. package/lib/cjs/api/device-action/OsUpdate/Shared/types.js +2 -0
  156. package/lib/cjs/api/device-action/OsUpdate/Shared/types.js.map +7 -0
  157. package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction.js +2 -0
  158. package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction.js.map +7 -0
  159. package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction.test.js +2 -0
  160. package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction.test.js.map +7 -0
  161. package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceActionErrors.js +2 -0
  162. package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceActionErrors.js.map +7 -0
  163. package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/Substeps/FlashMcu.js +2 -0
  164. package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/Substeps/FlashMcu.js.map +7 -0
  165. package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/Substeps/FlashMcu.test.js +2 -0
  166. package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/Substeps/FlashMcu.test.js.map +7 -0
  167. package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/Substeps/ResolveMcuVersion.js +2 -0
  168. package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/Substeps/ResolveMcuVersion.js.map +7 -0
  169. package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/Substeps/ResolveMcuVersion.test.js +2 -0
  170. package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/Substeps/ResolveMcuVersion.test.js.map +7 -0
  171. package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/types.js +2 -0
  172. package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/types.js.map +7 -0
  173. package/lib/cjs/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.js +2 -0
  174. package/lib/cjs/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.js.map +7 -0
  175. package/lib/cjs/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.test.js +2 -0
  176. package/lib/cjs/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.test.js.map +7 -0
  177. package/lib/cjs/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.js +2 -0
  178. package/lib/cjs/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.js.map +7 -0
  179. package/lib/cjs/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.test.js +2 -0
  180. package/lib/cjs/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.test.js.map +7 -0
  181. package/lib/cjs/api/device-action/OsUpdate/Update/InstallOsUpdate/types.js +2 -0
  182. package/lib/cjs/api/device-action/OsUpdate/Update/InstallOsUpdate/types.js.map +7 -0
  183. package/lib/cjs/api/task/OsUpdate/Backup/BackupAppStorageTask.js +2 -0
  184. package/lib/cjs/api/task/OsUpdate/Backup/BackupAppStorageTask.js.map +7 -0
  185. package/lib/cjs/api/task/OsUpdate/Backup/BackupAppStorageTask.test.js +2 -0
  186. package/lib/cjs/api/task/OsUpdate/Backup/BackupAppStorageTask.test.js.map +7 -0
  187. package/lib/cjs/api/task/OsUpdate/Restore/RestoreAppStorageTask.js +2 -0
  188. package/lib/cjs/api/task/OsUpdate/Restore/RestoreAppStorageTask.js.map +7 -0
  189. package/lib/cjs/api/task/OsUpdate/Restore/RestoreAppStorageTask.test.js +2 -0
  190. package/lib/cjs/api/task/OsUpdate/Restore/RestoreAppStorageTask.test.js.map +7 -0
  191. package/lib/cjs/index.js +1 -1
  192. package/lib/cjs/index.js.map +3 -3
  193. package/lib/cjs/package.json +5 -2
  194. package/lib/esm/api/command/OsUpdate/Backup/BackupAppStorageCommand.js +2 -0
  195. package/lib/esm/api/command/OsUpdate/Backup/BackupAppStorageCommand.js.map +7 -0
  196. package/lib/esm/api/command/OsUpdate/Backup/BackupAppStorageCommand.test.js +2 -0
  197. package/lib/esm/api/command/OsUpdate/Backup/BackupAppStorageCommand.test.js.map +7 -0
  198. package/lib/esm/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.js +2 -0
  199. package/lib/esm/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.js.map +7 -0
  200. package/lib/esm/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.test.js +2 -0
  201. package/lib/esm/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.test.js.map +7 -0
  202. package/lib/esm/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.js +2 -0
  203. package/lib/esm/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.js.map +7 -0
  204. package/lib/esm/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.test.js +2 -0
  205. package/lib/esm/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.test.js.map +7 -0
  206. package/lib/esm/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.js +2 -0
  207. package/lib/esm/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.js.map +7 -0
  208. package/lib/esm/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.test.js +2 -0
  209. package/lib/esm/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.test.js.map +7 -0
  210. package/lib/esm/api/command/OsUpdate/Restore/RequestMasterConsentCommand.js +2 -0
  211. package/lib/esm/api/command/OsUpdate/Restore/RequestMasterConsentCommand.js.map +7 -0
  212. package/lib/esm/api/command/OsUpdate/Restore/RequestMasterConsentCommand.test.js +2 -0
  213. package/lib/esm/api/command/OsUpdate/Restore/RequestMasterConsentCommand.test.js.map +7 -0
  214. package/lib/esm/api/command/OsUpdate/Restore/RestoreAppStorageCommand.js +2 -0
  215. package/lib/esm/api/command/OsUpdate/Restore/RestoreAppStorageCommand.js.map +7 -0
  216. package/lib/esm/api/command/OsUpdate/Restore/RestoreAppStorageCommand.test.js +2 -0
  217. package/lib/esm/api/command/OsUpdate/Restore/RestoreAppStorageCommand.test.js.map +7 -0
  218. package/lib/esm/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.js +2 -0
  219. package/lib/esm/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.js.map +7 -0
  220. package/lib/esm/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.test.js +2 -0
  221. package/lib/esm/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.test.js.map +7 -0
  222. package/lib/esm/api/device-action/OsUpdate/Backup/CreateBackupDeviceActionErrors.js +2 -0
  223. package/lib/esm/api/device-action/OsUpdate/Backup/CreateBackupDeviceActionErrors.js.map +7 -0
  224. package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage.js +2 -0
  225. package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage.js.map +7 -0
  226. package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage.test.js +2 -0
  227. package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage.test.js.map +7 -0
  228. package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen.js +2 -0
  229. package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen.js.map +7 -0
  230. package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen.test.js +2 -0
  231. package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen.test.js.map +7 -0
  232. package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded.js +2 -0
  233. package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded.js.map +7 -0
  234. package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded.test.js +2 -0
  235. package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded.test.js.map +7 -0
  236. package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/GetLanguageId.js +2 -0
  237. package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/GetLanguageId.js.map +7 -0
  238. package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/GetLanguageId.test.js +2 -0
  239. package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/GetLanguageId.test.js.map +7 -0
  240. package/lib/esm/api/device-action/OsUpdate/Backup/types.js +2 -0
  241. package/lib/esm/api/device-action/OsUpdate/Backup/types.js.map +7 -0
  242. package/lib/esm/api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction.js +2 -0
  243. package/lib/esm/api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction.js.map +7 -0
  244. package/lib/esm/api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction.test.js +2 -0
  245. package/lib/esm/api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction.test.js.map +7 -0
  246. package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/DeleteLanguagePack.js +2 -0
  247. package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/DeleteLanguagePack.js.map +7 -0
  248. package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/DeleteLanguagePack.test.js +2 -0
  249. package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/DeleteLanguagePack.test.js.map +7 -0
  250. package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/GetCustomLockScreenInfo.js +2 -0
  251. package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/GetCustomLockScreenInfo.js.map +7 -0
  252. package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/GetCustomLockScreenInfo.test.js +2 -0
  253. package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/GetCustomLockScreenInfo.test.js.map +7 -0
  254. package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/RemoveCustomLockScreen.js +2 -0
  255. package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/RemoveCustomLockScreen.js.map +7 -0
  256. package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/RemoveCustomLockScreen.test.js +2 -0
  257. package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/RemoveCustomLockScreen.test.js.map +7 -0
  258. package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/UninstallApp.js +2 -0
  259. package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/UninstallApp.js.map +7 -0
  260. package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/UninstallApp.test.js +2 -0
  261. package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/UninstallApp.test.js.map +7 -0
  262. package/lib/esm/api/device-action/OsUpdate/CleanDevice/types.js +2 -0
  263. package/lib/esm/api/device-action/OsUpdate/CleanDevice/types.js.map +7 -0
  264. package/lib/esm/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction.js +2 -0
  265. package/lib/esm/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction.js.map +7 -0
  266. package/lib/esm/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction.test.js +2 -0
  267. package/lib/esm/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction.test.js.map +7 -0
  268. package/lib/esm/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceActionErrors.js +2 -0
  269. package/lib/esm/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceActionErrors.js.map +7 -0
  270. package/lib/esm/api/device-action/OsUpdate/Resolve/Substeps/ResolveOsUpdatePath.js +2 -0
  271. package/lib/esm/api/device-action/OsUpdate/Resolve/Substeps/ResolveOsUpdatePath.js.map +7 -0
  272. package/lib/esm/api/device-action/OsUpdate/Resolve/Substeps/ResolveOsUpdatePath.test.js +2 -0
  273. package/lib/esm/api/device-action/OsUpdate/Resolve/Substeps/ResolveOsUpdatePath.test.js.map +7 -0
  274. package/lib/esm/api/device-action/OsUpdate/Resolve/types.js +2 -0
  275. package/lib/esm/api/device-action/OsUpdate/Resolve/types.js.map +7 -0
  276. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction.js +2 -0
  277. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction.js.map +7 -0
  278. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction.test.js +2 -0
  279. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction.test.js.map +7 -0
  280. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceActionErrors.js +2 -0
  281. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceActionErrors.js.map +7 -0
  282. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/CommitRestoreAppStorage.js +2 -0
  283. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/CommitRestoreAppStorage.js.map +7 -0
  284. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/CommitRestoreAppStorage.test.js +2 -0
  285. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/CommitRestoreAppStorage.test.js.map +7 -0
  286. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/InitRestoreAppStorage.js +2 -0
  287. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/InitRestoreAppStorage.js.map +7 -0
  288. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/InitRestoreAppStorage.test.js +2 -0
  289. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/InitRestoreAppStorage.test.js.map +7 -0
  290. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/RestoreAppStorage.js +2 -0
  291. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/RestoreAppStorage.js.map +7 -0
  292. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/RestoreAppStorage.test.js +2 -0
  293. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/RestoreAppStorage.test.js.map +7 -0
  294. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/types.js +2 -0
  295. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/types.js.map +7 -0
  296. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction.js +2 -0
  297. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction.js.map +7 -0
  298. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction.test.js +2 -0
  299. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction.test.js.map +7 -0
  300. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceActionErrors.js +2 -0
  301. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceActionErrors.js.map +7 -0
  302. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/GetIsOnboarded.js +2 -0
  303. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/GetIsOnboarded.js.map +7 -0
  304. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/GetIsOnboarded.test.js +2 -0
  305. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/GetIsOnboarded.test.js.map +7 -0
  306. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallLanguagePackage.js +2 -0
  307. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallLanguagePackage.js.map +7 -0
  308. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallLanguagePackage.test.js +2 -0
  309. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallLanguagePackage.test.js.map +7 -0
  310. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallOrUpdateApps.js +2 -0
  311. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallOrUpdateApps.js.map +7 -0
  312. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallOrUpdateApps.test.js +2 -0
  313. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallOrUpdateApps.test.js.map +7 -0
  314. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RequestMasterConsent.js +2 -0
  315. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RequestMasterConsent.js.map +7 -0
  316. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RequestMasterConsent.test.js +2 -0
  317. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RequestMasterConsent.test.js.map +7 -0
  318. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RestoreAppsStorage.js +2 -0
  319. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RestoreAppsStorage.js.map +7 -0
  320. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RestoreAppsStorage.test.js +2 -0
  321. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RestoreAppsStorage.test.js.map +7 -0
  322. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/UploadCustomLockScreen.js +2 -0
  323. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/UploadCustomLockScreen.js.map +7 -0
  324. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/UploadCustomLockScreen.test.js +2 -0
  325. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/UploadCustomLockScreen.test.js.map +7 -0
  326. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/types.js +2 -0
  327. package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/types.js.map +7 -0
  328. package/lib/esm/api/device-action/OsUpdate/Shared/OsUpdateDeviceActionErrors.js +2 -0
  329. package/lib/esm/api/device-action/OsUpdate/Shared/OsUpdateDeviceActionErrors.js.map +7 -0
  330. package/lib/esm/api/device-action/OsUpdate/Shared/OsUpdateUtils.js +2 -0
  331. package/lib/esm/api/device-action/OsUpdate/Shared/OsUpdateUtils.js.map +7 -0
  332. package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/GetOsVersion.js +2 -0
  333. package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/GetOsVersion.js.map +7 -0
  334. package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/GetOsVersion.test.js +2 -0
  335. package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/GetOsVersion.test.js.map +7 -0
  336. package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/GoToDashboard.js +2 -0
  337. package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/GoToDashboard.js.map +7 -0
  338. package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/GoToDashboard.test.js +2 -0
  339. package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/GoToDashboard.test.js.map +7 -0
  340. package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps.js +2 -0
  341. package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps.js.map +7 -0
  342. package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps.test.js +2 -0
  343. package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps.test.js.map +7 -0
  344. package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion.js +2 -0
  345. package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion.js.map +7 -0
  346. package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion.test.js +2 -0
  347. package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion.test.js.map +7 -0
  348. package/lib/esm/api/device-action/OsUpdate/Shared/types.js +1 -0
  349. package/lib/esm/api/device-action/OsUpdate/Shared/types.js.map +7 -0
  350. package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction.js +2 -0
  351. package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction.js.map +7 -0
  352. package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction.test.js +2 -0
  353. package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction.test.js.map +7 -0
  354. package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceActionErrors.js +2 -0
  355. package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceActionErrors.js.map +7 -0
  356. package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/Substeps/FlashMcu.js +2 -0
  357. package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/Substeps/FlashMcu.js.map +7 -0
  358. package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/Substeps/FlashMcu.test.js +2 -0
  359. package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/Substeps/FlashMcu.test.js.map +7 -0
  360. package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/Substeps/ResolveMcuVersion.js +2 -0
  361. package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/Substeps/ResolveMcuVersion.js.map +7 -0
  362. package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/Substeps/ResolveMcuVersion.test.js +2 -0
  363. package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/Substeps/ResolveMcuVersion.test.js.map +7 -0
  364. package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/types.js +2 -0
  365. package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/types.js.map +7 -0
  366. package/lib/esm/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.js +2 -0
  367. package/lib/esm/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.js.map +7 -0
  368. package/lib/esm/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.test.js +2 -0
  369. package/lib/esm/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.test.js.map +7 -0
  370. package/lib/esm/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.js +2 -0
  371. package/lib/esm/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.js.map +7 -0
  372. package/lib/esm/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.test.js +2 -0
  373. package/lib/esm/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.test.js.map +7 -0
  374. package/lib/esm/api/device-action/OsUpdate/Update/InstallOsUpdate/types.js +2 -0
  375. package/lib/esm/api/device-action/OsUpdate/Update/InstallOsUpdate/types.js.map +7 -0
  376. package/lib/esm/api/task/OsUpdate/Backup/BackupAppStorageTask.js +2 -0
  377. package/lib/esm/api/task/OsUpdate/Backup/BackupAppStorageTask.js.map +7 -0
  378. package/lib/esm/api/task/OsUpdate/Backup/BackupAppStorageTask.test.js +2 -0
  379. package/lib/esm/api/task/OsUpdate/Backup/BackupAppStorageTask.test.js.map +7 -0
  380. package/lib/esm/api/task/OsUpdate/Restore/RestoreAppStorageTask.js +2 -0
  381. package/lib/esm/api/task/OsUpdate/Restore/RestoreAppStorageTask.js.map +7 -0
  382. package/lib/esm/api/task/OsUpdate/Restore/RestoreAppStorageTask.test.js +2 -0
  383. package/lib/esm/api/task/OsUpdate/Restore/RestoreAppStorageTask.test.js.map +7 -0
  384. package/lib/esm/index.js +1 -1
  385. package/lib/esm/index.js.map +3 -3
  386. package/lib/esm/package.json +5 -2
  387. package/lib/types/api/command/OsUpdate/Backup/BackupAppStorageCommand.d.ts +18 -0
  388. package/lib/types/api/command/OsUpdate/Backup/BackupAppStorageCommand.d.ts.map +1 -0
  389. package/lib/types/api/command/OsUpdate/Backup/BackupAppStorageCommand.test.d.ts +2 -0
  390. package/lib/types/api/command/OsUpdate/Backup/BackupAppStorageCommand.test.d.ts.map +1 -0
  391. package/lib/types/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.d.ts +26 -0
  392. package/lib/types/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.d.ts.map +1 -0
  393. package/lib/types/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.test.d.ts +2 -0
  394. package/lib/types/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.test.d.ts.map +1 -0
  395. package/lib/types/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.d.ts +14 -0
  396. package/lib/types/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.d.ts.map +1 -0
  397. package/lib/types/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.test.d.ts +2 -0
  398. package/lib/types/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.test.d.ts.map +1 -0
  399. package/lib/types/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.d.ts +20 -0
  400. package/lib/types/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.d.ts.map +1 -0
  401. package/lib/types/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.test.d.ts +2 -0
  402. package/lib/types/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.test.d.ts.map +1 -0
  403. package/lib/types/api/command/OsUpdate/Restore/RequestMasterConsentCommand.d.ts +24 -0
  404. package/lib/types/api/command/OsUpdate/Restore/RequestMasterConsentCommand.d.ts.map +1 -0
  405. package/lib/types/api/command/OsUpdate/Restore/RequestMasterConsentCommand.test.d.ts +2 -0
  406. package/lib/types/api/command/OsUpdate/Restore/RequestMasterConsentCommand.test.d.ts.map +1 -0
  407. package/lib/types/api/command/OsUpdate/Restore/RestoreAppStorageCommand.d.ts +19 -0
  408. package/lib/types/api/command/OsUpdate/Restore/RestoreAppStorageCommand.d.ts.map +1 -0
  409. package/lib/types/api/command/OsUpdate/Restore/RestoreAppStorageCommand.test.d.ts +2 -0
  410. package/lib/types/api/command/OsUpdate/Restore/RestoreAppStorageCommand.test.d.ts.map +1 -0
  411. package/lib/types/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.d.ts +6 -0
  412. package/lib/types/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.d.ts.map +1 -0
  413. package/lib/types/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.test.d.ts +2 -0
  414. package/lib/types/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.test.d.ts.map +1 -0
  415. package/lib/types/api/device-action/OsUpdate/Backup/CreateBackupDeviceActionErrors.d.ts +18 -0
  416. package/lib/types/api/device-action/OsUpdate/Backup/CreateBackupDeviceActionErrors.d.ts.map +1 -0
  417. package/lib/types/api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage.d.ts +14 -0
  418. package/lib/types/api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage.d.ts.map +1 -0
  419. package/lib/types/api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage.test.d.ts +2 -0
  420. package/lib/types/api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage.test.d.ts.map +1 -0
  421. package/lib/types/api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen.d.ts +6 -0
  422. package/lib/types/api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen.d.ts.map +1 -0
  423. package/lib/types/api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen.test.d.ts +2 -0
  424. package/lib/types/api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen.test.d.ts.map +1 -0
  425. package/lib/types/api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded.d.ts +8 -0
  426. package/lib/types/api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded.d.ts.map +1 -0
  427. package/lib/types/api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded.test.d.ts +2 -0
  428. package/lib/types/api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded.test.d.ts.map +1 -0
  429. package/lib/types/api/device-action/OsUpdate/Backup/Substeps/GetLanguageId.d.ts +8 -0
  430. package/lib/types/api/device-action/OsUpdate/Backup/Substeps/GetLanguageId.d.ts.map +1 -0
  431. package/lib/types/api/device-action/OsUpdate/Backup/Substeps/GetLanguageId.test.d.ts +2 -0
  432. package/lib/types/api/device-action/OsUpdate/Backup/Substeps/GetLanguageId.test.d.ts.map +1 -0
  433. package/lib/types/api/device-action/OsUpdate/Backup/types.d.ts +43 -0
  434. package/lib/types/api/device-action/OsUpdate/Backup/types.d.ts.map +1 -0
  435. package/lib/types/api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction.d.ts +6 -0
  436. package/lib/types/api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction.d.ts.map +1 -0
  437. package/lib/types/api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction.test.d.ts +2 -0
  438. package/lib/types/api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction.test.d.ts.map +1 -0
  439. package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/DeleteLanguagePack.d.ts +7 -0
  440. package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/DeleteLanguagePack.d.ts.map +1 -0
  441. package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/DeleteLanguagePack.test.d.ts +2 -0
  442. package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/DeleteLanguagePack.test.d.ts.map +1 -0
  443. package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/GetCustomLockScreenInfo.d.ts +6 -0
  444. package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/GetCustomLockScreenInfo.d.ts.map +1 -0
  445. package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/GetCustomLockScreenInfo.test.d.ts +2 -0
  446. package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/GetCustomLockScreenInfo.test.d.ts.map +1 -0
  447. package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/RemoveCustomLockScreen.d.ts +6 -0
  448. package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/RemoveCustomLockScreen.d.ts.map +1 -0
  449. package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/RemoveCustomLockScreen.test.d.ts +2 -0
  450. package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/RemoveCustomLockScreen.test.d.ts.map +1 -0
  451. package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/UninstallApp.d.ts +5 -0
  452. package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/UninstallApp.d.ts.map +1 -0
  453. package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/UninstallApp.test.d.ts +2 -0
  454. package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/UninstallApp.test.d.ts.map +1 -0
  455. package/lib/types/api/device-action/OsUpdate/CleanDevice/types.d.ts +33 -0
  456. package/lib/types/api/device-action/OsUpdate/CleanDevice/types.d.ts.map +1 -0
  457. package/lib/types/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction.d.ts +6 -0
  458. package/lib/types/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction.d.ts.map +1 -0
  459. package/lib/types/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction.test.d.ts +2 -0
  460. package/lib/types/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction.test.d.ts.map +1 -0
  461. package/lib/types/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceActionErrors.d.ts +9 -0
  462. package/lib/types/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceActionErrors.d.ts.map +1 -0
  463. package/lib/types/api/device-action/OsUpdate/Resolve/Substeps/ResolveOsUpdatePath.d.ts +14 -0
  464. package/lib/types/api/device-action/OsUpdate/Resolve/Substeps/ResolveOsUpdatePath.d.ts.map +1 -0
  465. package/lib/types/api/device-action/OsUpdate/Resolve/Substeps/ResolveOsUpdatePath.test.d.ts +2 -0
  466. package/lib/types/api/device-action/OsUpdate/Resolve/Substeps/ResolveOsUpdatePath.test.d.ts.map +1 -0
  467. package/lib/types/api/device-action/OsUpdate/Resolve/types.d.ts +29 -0
  468. package/lib/types/api/device-action/OsUpdate/Resolve/types.d.ts.map +1 -0
  469. package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction.d.ts +6 -0
  470. package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction.d.ts.map +1 -0
  471. package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction.test.d.ts +2 -0
  472. package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction.test.d.ts.map +1 -0
  473. package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceActionErrors.d.ts +18 -0
  474. package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceActionErrors.d.ts.map +1 -0
  475. package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/CommitRestoreAppStorage.d.ts +8 -0
  476. package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/CommitRestoreAppStorage.d.ts.map +1 -0
  477. package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/CommitRestoreAppStorage.test.d.ts +2 -0
  478. package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/CommitRestoreAppStorage.test.d.ts.map +1 -0
  479. package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/InitRestoreAppStorage.d.ts +15 -0
  480. package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/InitRestoreAppStorage.d.ts.map +1 -0
  481. package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/InitRestoreAppStorage.test.d.ts +2 -0
  482. package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/InitRestoreAppStorage.test.d.ts.map +1 -0
  483. package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/RestoreAppStorage.d.ts +13 -0
  484. package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/RestoreAppStorage.d.ts.map +1 -0
  485. package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/RestoreAppStorage.test.d.ts +2 -0
  486. package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/RestoreAppStorage.test.d.ts.map +1 -0
  487. package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/types.d.ts +48 -0
  488. package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/types.d.ts.map +1 -0
  489. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction.d.ts +6 -0
  490. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction.d.ts.map +1 -0
  491. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction.test.d.ts +2 -0
  492. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction.test.d.ts.map +1 -0
  493. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceActionErrors.d.ts +13 -0
  494. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceActionErrors.d.ts.map +1 -0
  495. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/GetIsOnboarded.d.ts +11 -0
  496. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/GetIsOnboarded.d.ts.map +1 -0
  497. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/GetIsOnboarded.test.d.ts +2 -0
  498. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/GetIsOnboarded.test.d.ts.map +1 -0
  499. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallLanguagePackage.d.ts +5 -0
  500. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallLanguagePackage.d.ts.map +1 -0
  501. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallLanguagePackage.test.d.ts +2 -0
  502. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallLanguagePackage.test.d.ts.map +1 -0
  503. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallOrUpdateApps.d.ts +5 -0
  504. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallOrUpdateApps.d.ts.map +1 -0
  505. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallOrUpdateApps.test.d.ts +2 -0
  506. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallOrUpdateApps.test.d.ts.map +1 -0
  507. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RequestMasterConsent.d.ts +17 -0
  508. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RequestMasterConsent.d.ts.map +1 -0
  509. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RequestMasterConsent.test.d.ts +2 -0
  510. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RequestMasterConsent.test.d.ts.map +1 -0
  511. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RestoreAppsStorage.d.ts +6 -0
  512. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RestoreAppsStorage.d.ts.map +1 -0
  513. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RestoreAppsStorage.test.d.ts +2 -0
  514. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RestoreAppsStorage.test.d.ts.map +1 -0
  515. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/UploadCustomLockScreen.d.ts +6 -0
  516. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/UploadCustomLockScreen.d.ts.map +1 -0
  517. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/UploadCustomLockScreen.test.d.ts +2 -0
  518. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/UploadCustomLockScreen.test.d.ts.map +1 -0
  519. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/types.d.ts +55 -0
  520. package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/types.d.ts.map +1 -0
  521. package/lib/types/api/device-action/OsUpdate/Shared/OsUpdateDeviceActionErrors.d.ts +7 -0
  522. package/lib/types/api/device-action/OsUpdate/Shared/OsUpdateDeviceActionErrors.d.ts.map +1 -0
  523. package/lib/types/api/device-action/OsUpdate/Shared/OsUpdateUtils.d.ts +3 -0
  524. package/lib/types/api/device-action/OsUpdate/Shared/OsUpdateUtils.d.ts.map +1 -0
  525. package/lib/types/api/device-action/OsUpdate/Shared/Substeps/GetOsVersion.d.ts +8 -0
  526. package/lib/types/api/device-action/OsUpdate/Shared/Substeps/GetOsVersion.d.ts.map +1 -0
  527. package/lib/types/api/device-action/OsUpdate/Shared/Substeps/GetOsVersion.test.d.ts +2 -0
  528. package/lib/types/api/device-action/OsUpdate/Shared/Substeps/GetOsVersion.test.d.ts.map +1 -0
  529. package/lib/types/api/device-action/OsUpdate/Shared/Substeps/GoToDashboard.d.ts +5 -0
  530. package/lib/types/api/device-action/OsUpdate/Shared/Substeps/GoToDashboard.d.ts.map +1 -0
  531. package/lib/types/api/device-action/OsUpdate/Shared/Substeps/GoToDashboard.test.d.ts +2 -0
  532. package/lib/types/api/device-action/OsUpdate/Shared/Substeps/GoToDashboard.test.d.ts.map +1 -0
  533. package/lib/types/api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps.d.ts +5 -0
  534. package/lib/types/api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps.d.ts.map +1 -0
  535. package/lib/types/api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps.test.d.ts +2 -0
  536. package/lib/types/api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps.test.d.ts.map +1 -0
  537. package/lib/types/api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion.d.ts +5 -0
  538. package/lib/types/api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion.d.ts.map +1 -0
  539. package/lib/types/api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion.test.d.ts +2 -0
  540. package/lib/types/api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion.test.d.ts.map +1 -0
  541. package/lib/types/api/device-action/OsUpdate/Shared/types.d.ts +36 -0
  542. package/lib/types/api/device-action/OsUpdate/Shared/types.d.ts.map +1 -0
  543. package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction.d.ts +6 -0
  544. package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction.d.ts.map +1 -0
  545. package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction.test.d.ts +2 -0
  546. package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction.test.d.ts.map +1 -0
  547. package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceActionErrors.d.ts +14 -0
  548. package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceActionErrors.d.ts.map +1 -0
  549. package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/Substeps/FlashMcu.d.ts +12 -0
  550. package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/Substeps/FlashMcu.d.ts.map +1 -0
  551. package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/Substeps/FlashMcu.test.d.ts +2 -0
  552. package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/Substeps/FlashMcu.test.d.ts.map +1 -0
  553. package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/Substeps/ResolveMcuVersion.d.ts +15 -0
  554. package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/Substeps/ResolveMcuVersion.d.ts.map +1 -0
  555. package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/Substeps/ResolveMcuVersion.test.d.ts +2 -0
  556. package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/Substeps/ResolveMcuVersion.test.d.ts.map +1 -0
  557. package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/types.d.ts +28 -0
  558. package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/types.d.ts.map +1 -0
  559. package/lib/types/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.d.ts +6 -0
  560. package/lib/types/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.d.ts.map +1 -0
  561. package/lib/types/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.test.d.ts +2 -0
  562. package/lib/types/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.test.d.ts.map +1 -0
  563. package/lib/types/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.d.ts +17 -0
  564. package/lib/types/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.d.ts.map +1 -0
  565. package/lib/types/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.test.d.ts +2 -0
  566. package/lib/types/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.test.d.ts.map +1 -0
  567. package/lib/types/api/device-action/OsUpdate/Update/InstallOsUpdate/types.d.ts +29 -0
  568. package/lib/types/api/device-action/OsUpdate/Update/InstallOsUpdate/types.d.ts.map +1 -0
  569. package/lib/types/api/task/OsUpdate/Backup/BackupAppStorageTask.d.ts +19 -0
  570. package/lib/types/api/task/OsUpdate/Backup/BackupAppStorageTask.d.ts.map +1 -0
  571. package/lib/types/api/task/OsUpdate/Backup/BackupAppStorageTask.test.d.ts +2 -0
  572. package/lib/types/api/task/OsUpdate/Backup/BackupAppStorageTask.test.d.ts.map +1 -0
  573. package/lib/types/api/task/OsUpdate/Restore/RestoreAppStorageTask.d.ts +14 -0
  574. package/lib/types/api/task/OsUpdate/Restore/RestoreAppStorageTask.d.ts.map +1 -0
  575. package/lib/types/api/task/OsUpdate/Restore/RestoreAppStorageTask.test.d.ts +2 -0
  576. package/lib/types/api/task/OsUpdate/Restore/RestoreAppStorageTask.test.d.ts.map +1 -0
  577. package/lib/types/index.d.ts +23 -0
  578. package/lib/types/index.d.ts.map +1 -1
  579. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  580. package/package.json +8 -5
@@ -0,0 +1,2 @@
1
+ "use strict";var n=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var C=(a,r)=>{for(var t in r)n(a,t,{get:r[t],enumerable:!0})},g=(a,r,t,p)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of c(r))!u.call(a,o)&&o!==t&&n(a,o,{get:()=>r[o],enumerable:!(p=s(r,o))||p.enumerable});return a};var i=a=>g(n({},"__esModule",{value:!0}),a);var A={};C(A,{BACKUP_APP_STORAGE_ERRORS:()=>d,BackupAppStorageCommand:()=>l,BackupAppStorageCommandError:()=>m});module.exports=i(A);var e=require("@ledgerhq/device-management-kit");const d={5123:{message:"Invalid context. Get info must be called."},5419:{message:"Failed to generate AES key."},"541a":{message:"Internal error, crypto operation failed."},"541b":{message:"Internal error, failed to compute AES CMAC."},"541c":{message:"Failed to encrypt the app storage backup."},"622f":{message:"Invalid device state, recovery mode."},6642:{message:"Invalid backup state, backup already performed."}};class m extends e.DeviceExchangeError{constructor(r){super({tag:"BackupAppStorageCommandError",...r})}}class l{name="BackupAppStorage";header={cla:224,ins:107,p1:0,p2:0};getApdu(){return new e.ApduBuilder(this.header).build()}parseResponse(r){const t=new e.ApduParser(r);if(!e.CommandUtils.isSuccessResponse(r)){const o=t.encodeToHexaString(r.statusCode);return(0,e.isCommandErrorCode)(o,d)?(0,e.CommandResultFactory)({error:new m({...d[o],errorCode:o})}):(0,e.CommandResultFactory)({error:e.GlobalCommandErrorHandler.handle(r)})}const p=t.extractFieldByLength(t.getUnparsedRemainingLength());return p===void 0?(0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Failed to extract app storage data chunk")}):(0,e.CommandResultFactory)({data:{chunkData:p,chunkSize:p.length}})}}0&&(module.exports={BACKUP_APP_STORAGE_ERRORS,BackupAppStorageCommand,BackupAppStorageCommandError});
2
+ //# sourceMappingURL=BackupAppStorageCommand.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/api/command/OsUpdate/Backup/BackupAppStorageCommand.ts"],
4
+ "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandErrorArgs,\n type CommandErrors,\n type CommandResult,\n CommandResultFactory,\n CommandUtils,\n DeviceExchangeError,\n GlobalCommandErrorHandler,\n InvalidStatusWordError,\n isCommandErrorCode,\n} from \"@ledgerhq/device-management-kit\";\n\nexport type BackupAppStorageCommandResponse = {\n chunkData: Uint8Array;\n chunkSize: number;\n};\n\nexport type BackupAppStorageCommandErrorCodes =\n | \"5123\"\n | \"5419\"\n | \"541a\"\n | \"541b\"\n | \"541c\"\n | \"622f\"\n | \"6642\";\n\nexport const BACKUP_APP_STORAGE_ERRORS: CommandErrors<BackupAppStorageCommandErrorCodes> =\n {\n \"5123\": { message: \"Invalid context. Get info must be called.\" },\n \"5419\": { message: \"Failed to generate AES key.\" },\n \"541a\": { message: \"Internal error, crypto operation failed.\" },\n \"541b\": { message: \"Internal error, failed to compute AES CMAC.\" },\n \"541c\": { message: \"Failed to encrypt the app storage backup.\" },\n \"622f\": { message: \"Invalid device state, recovery mode.\" },\n \"6642\": { message: \"Invalid backup state, backup already performed.\" },\n };\n\nexport class BackupAppStorageCommandError extends DeviceExchangeError<BackupAppStorageCommandErrorCodes> {\n constructor(args: CommandErrorArgs<BackupAppStorageCommandErrorCodes>) {\n super({ tag: \"BackupAppStorageCommandError\", ...args });\n }\n}\n\nexport type BackupAppStorageCommandResult = CommandResult<\n BackupAppStorageCommandResponse,\n BackupAppStorageCommandErrorCodes\n>;\n\nexport class BackupAppStorageCommand\n implements\n Command<\n BackupAppStorageCommandResponse,\n void,\n BackupAppStorageCommandErrorCodes\n >\n{\n readonly name = \"BackupAppStorage\";\n\n private readonly header = {\n cla: 0xe0,\n ins: 0x6b,\n p1: 0x00,\n p2: 0x00,\n };\n\n getApdu(): Apdu {\n return new ApduBuilder(this.header).build();\n }\n\n parseResponse(apduResponse: ApduResponse): BackupAppStorageCommandResult {\n const parser = new ApduParser(apduResponse);\n\n if (!CommandUtils.isSuccessResponse(apduResponse)) {\n const errorCode = parser.encodeToHexaString(apduResponse.statusCode);\n if (isCommandErrorCode(errorCode, BACKUP_APP_STORAGE_ERRORS)) {\n return CommandResultFactory({\n error: new BackupAppStorageCommandError({\n ...BACKUP_APP_STORAGE_ERRORS[errorCode],\n errorCode,\n }),\n });\n }\n return CommandResultFactory({\n error: GlobalCommandErrorHandler.handle(apduResponse),\n });\n }\n\n const appStorageDataChunk = parser.extractFieldByLength(\n parser.getUnparsedRemainingLength(),\n );\n\n if (appStorageDataChunk === undefined) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"Failed to extract app storage data chunk\",\n ),\n });\n }\n\n return CommandResultFactory({\n data: {\n chunkData: appStorageDataChunk,\n chunkSize: appStorageDataChunk.length,\n },\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,+BAAAE,EAAA,4BAAAC,EAAA,iCAAAC,IAAA,eAAAC,EAAAL,GAAA,IAAAM,EAeO,2CAgBA,MAAMJ,EACX,CACE,KAAQ,CAAE,QAAS,2CAA4C,EAC/D,KAAQ,CAAE,QAAS,6BAA8B,EACjD,OAAQ,CAAE,QAAS,0CAA2C,EAC9D,OAAQ,CAAE,QAAS,6CAA8C,EACjE,OAAQ,CAAE,QAAS,2CAA4C,EAC/D,OAAQ,CAAE,QAAS,sCAAuC,EAC1D,KAAQ,CAAE,QAAS,iDAAkD,CACvE,EAEK,MAAME,UAAqC,qBAAuD,CACvG,YAAYG,EAA2D,CACrE,MAAM,CAAE,IAAK,+BAAgC,GAAGA,CAAK,CAAC,CACxD,CACF,CAOO,MAAMJ,CAOb,CACW,KAAO,mBAEC,OAAS,CACxB,IAAK,IACL,IAAK,IACL,GAAI,EACJ,GAAI,CACN,EAEA,SAAgB,CACd,OAAO,IAAI,cAAY,KAAK,MAAM,EAAE,MAAM,CAC5C,CAEA,cAAcK,EAA2D,CACvE,MAAMC,EAAS,IAAI,aAAWD,CAAY,EAE1C,GAAI,CAAC,eAAa,kBAAkBA,CAAY,EAAG,CACjD,MAAME,EAAYD,EAAO,mBAAmBD,EAAa,UAAU,EACnE,SAAI,sBAAmBE,EAAWR,CAAyB,KAClD,wBAAqB,CAC1B,MAAO,IAAIE,EAA6B,CACtC,GAAGF,EAA0BQ,CAAS,EACtC,UAAAA,CACF,CAAC,CACH,CAAC,KAEI,wBAAqB,CAC1B,MAAO,4BAA0B,OAAOF,CAAY,CACtD,CAAC,CACH,CAEA,MAAMG,EAAsBF,EAAO,qBACjCA,EAAO,2BAA2B,CACpC,EAEA,OAAIE,IAAwB,UACnB,wBAAqB,CAC1B,MAAO,IAAI,yBACT,0CACF,CACF,CAAC,KAGI,wBAAqB,CAC1B,KAAM,CACJ,UAAWA,EACX,UAAWA,EAAoB,MACjC,CACF,CAAC,CACH,CACF",
6
+ "names": ["BackupAppStorageCommand_exports", "__export", "BACKUP_APP_STORAGE_ERRORS", "BackupAppStorageCommand", "BackupAppStorageCommandError", "__toCommonJS", "import_device_management_kit", "args", "apduResponse", "parser", "errorCode", "appStorageDataChunk"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var a=require("@ledgerhq/device-management-kit"),s=require("./BackupAppStorageCommand");describe("BackupAppStorageCommand",()=>{describe("Name",()=>{it("name should be 'BackupAppStorage'",()=>{const e=new s.BackupAppStorageCommand().name;expect(e).toBe("BackupAppStorage")})}),describe("Command",()=>{it("should return the correct APDU for backing up app storage",()=>{const t=Uint8Array.from([224,107,0,0,0]),e=new s.BackupAppStorageCommand().getApdu();expect(e.getRawApdu()).toEqual(t)})}),describe("Success response",()=>{it("should return the app storage data chunk as a hex string",()=>{const t=Uint8Array.from([144,0]),e=new a.ApduResponse({statusCode:t,data:Uint8Array.from([171,205,239,1,35])}),o=new s.BackupAppStorageCommand().parseResponse(e);expect((0,a.isSuccessCommandResult)(o)).toBe(!0),expect(o).toEqual({data:{chunkData:Uint8Array.from([171,205,239,1,35]),chunkSize:5},status:"SUCCESS"})})}),describe("Error response",()=>{it.each([{description:"get info was not called first",statusCode:[81,35],expectedMessage:"Invalid context. Get info must be called."},{description:"AES key generation fails",statusCode:[84,25],expectedMessage:"Failed to generate AES key."},{description:"crypto operation fails",statusCode:[84,26],expectedMessage:"Internal error, crypto operation failed."},{description:"AES CMAC computation fails",statusCode:[84,27],expectedMessage:"Internal error, failed to compute AES CMAC."},{description:"encryption of backup fails",statusCode:[84,28],expectedMessage:"Failed to encrypt the app storage backup."},{description:"device is in recovery mode",statusCode:[98,47],expectedMessage:"Invalid device state, recovery mode."},{description:"backup was already performed",statusCode:[102,66],expectedMessage:"Invalid backup state, backup already performed."},{description:"error code is not specific to BackupStorageCommand (global error)",statusCode:[85,21],expectedMessage:"Device is locked."}])("should return error when $description",({statusCode:t,expectedMessage:e})=>{const o=new a.ApduResponse({statusCode:Uint8Array.from(t),data:new Uint8Array([])}),r=new s.BackupAppStorageCommand().parseResponse(o);expect((0,a.isSuccessCommandResult)(r)).toBe(!1),expect(r.error.message).toBe(e)})})});
2
+ //# sourceMappingURL=BackupAppStorageCommand.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/api/command/OsUpdate/Backup/BackupAppStorageCommand.test.ts"],
4
+ "sourcesContent": ["import {\n ApduResponse,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { BackupAppStorageCommand } from \"./BackupAppStorageCommand\";\n\ndescribe(\"BackupAppStorageCommand\", () => {\n describe(\"Name\", () => {\n it(\"name should be 'BackupAppStorage'\", () => {\n // ARRANGE\n const command = new BackupAppStorageCommand();\n\n // ACT\n const name = command.name;\n\n // ASSERT\n expect(name).toBe(\"BackupAppStorage\");\n });\n });\n\n describe(\"Command\", () => {\n it(\"should return the correct APDU for backing up app storage\", () => {\n // ARRANGE\n const expectedApdu = Uint8Array.from([0xe0, 0x6b, 0x00, 0x00, 0x00]);\n\n // ACT\n const apdu = new BackupAppStorageCommand().getApdu();\n\n // ASSERT\n expect(apdu.getRawApdu()).toEqual(expectedApdu);\n });\n });\n\n describe(\"Success response\", () => {\n it(\"should return the app storage data chunk as a hex string\", () => {\n // ARRANGE\n const statusCode = Uint8Array.from([0x90, 0x00]);\n const response = new ApduResponse({\n statusCode,\n data: Uint8Array.from([0xab, 0xcd, 0xef, 0x01, 0x23]),\n });\n\n // ACT\n const result = new BackupAppStorageCommand().parseResponse(response);\n\n // ASSERT\n expect(isSuccessCommandResult(result)).toBe(true);\n expect(result).toEqual({\n data: {\n chunkData: Uint8Array.from([0xab, 0xcd, 0xef, 0x01, 0x23]),\n chunkSize: 5,\n },\n status: \"SUCCESS\",\n });\n });\n });\n\n describe(\"Error response\", () => {\n it.each([\n {\n description: \"get info was not called first\",\n statusCode: [0x51, 0x23],\n expectedMessage: \"Invalid context. Get info must be called.\",\n },\n {\n description: \"AES key generation fails\",\n statusCode: [0x54, 0x19],\n expectedMessage: \"Failed to generate AES key.\",\n },\n {\n description: \"crypto operation fails\",\n statusCode: [0x54, 0x1a],\n expectedMessage: \"Internal error, crypto operation failed.\",\n },\n {\n description: \"AES CMAC computation fails\",\n statusCode: [0x54, 0x1b],\n expectedMessage: \"Internal error, failed to compute AES CMAC.\",\n },\n {\n description: \"encryption of backup fails\",\n statusCode: [0x54, 0x1c],\n expectedMessage: \"Failed to encrypt the app storage backup.\",\n },\n {\n description: \"device is in recovery mode\",\n statusCode: [0x62, 0x2f],\n expectedMessage: \"Invalid device state, recovery mode.\",\n },\n {\n description: \"backup was already performed\",\n statusCode: [0x66, 0x42],\n expectedMessage: \"Invalid backup state, backup already performed.\",\n },\n {\n description:\n \"error code is not specific to BackupStorageCommand (global error)\",\n statusCode: [0x55, 0x15],\n expectedMessage: \"Device is locked.\",\n },\n ])(\n \"should return error when $description\",\n ({ statusCode, expectedMessage }) => {\n // ARRANGE\n const response = new ApduResponse({\n statusCode: Uint8Array.from(statusCode),\n data: new Uint8Array([]),\n });\n\n // ACT\n const result = new BackupAppStorageCommand().parseResponse(response);\n\n // ASSERT\n expect(isSuccessCommandResult(result)).toBe(false);\n expect((result as unknown as { error: Error }).error.message).toBe(\n expectedMessage,\n );\n },\n );\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAGO,2CAEPC,EAAwC,qCAExC,SAAS,0BAA2B,IAAM,CACxC,SAAS,OAAQ,IAAM,CACrB,GAAG,oCAAqC,IAAM,CAK5C,MAAMC,EAHU,IAAI,0BAAwB,EAGvB,KAGrB,OAAOA,CAAI,EAAE,KAAK,kBAAkB,CACtC,CAAC,CACH,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,GAAG,4DAA6D,IAAM,CAEpE,MAAMC,EAAe,WAAW,KAAK,CAAC,IAAM,IAAM,EAAM,EAAM,CAAI,CAAC,EAG7DC,EAAO,IAAI,0BAAwB,EAAE,QAAQ,EAGnD,OAAOA,EAAK,WAAW,CAAC,EAAE,QAAQD,CAAY,CAChD,CAAC,CACH,CAAC,EAED,SAAS,mBAAoB,IAAM,CACjC,GAAG,2DAA4D,IAAM,CAEnE,MAAME,EAAa,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACzCC,EAAW,IAAI,eAAa,CAChC,WAAAD,EACA,KAAM,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,EAAM,EAAI,CAAC,CACtD,CAAC,EAGKE,EAAS,IAAI,0BAAwB,EAAE,cAAcD,CAAQ,EAGnE,UAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,EAChD,OAAOA,CAAM,EAAE,QAAQ,CACrB,KAAM,CACJ,UAAW,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,EAAM,EAAI,CAAC,EACzD,UAAW,CACb,EACA,OAAQ,SACV,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,iBAAkB,IAAM,CAC/B,GAAG,KAAK,CACN,CACE,YAAa,gCACb,WAAY,CAAC,GAAM,EAAI,EACvB,gBAAiB,2CACnB,EACA,CACE,YAAa,2BACb,WAAY,CAAC,GAAM,EAAI,EACvB,gBAAiB,6BACnB,EACA,CACE,YAAa,yBACb,WAAY,CAAC,GAAM,EAAI,EACvB,gBAAiB,0CACnB,EACA,CACE,YAAa,6BACb,WAAY,CAAC,GAAM,EAAI,EACvB,gBAAiB,6CACnB,EACA,CACE,YAAa,6BACb,WAAY,CAAC,GAAM,EAAI,EACvB,gBAAiB,2CACnB,EACA,CACE,YAAa,6BACb,WAAY,CAAC,GAAM,EAAI,EACvB,gBAAiB,sCACnB,EACA,CACE,YAAa,+BACb,WAAY,CAAC,IAAM,EAAI,EACvB,gBAAiB,iDACnB,EACA,CACE,YACE,oEACF,WAAY,CAAC,GAAM,EAAI,EACvB,gBAAiB,mBACnB,CACF,CAAC,EACC,wCACA,CAAC,CAAE,WAAAF,EAAY,gBAAAG,CAAgB,IAAM,CAEnC,MAAMF,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAKD,CAAU,EACtC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EAGKE,EAAS,IAAI,0BAAwB,EAAE,cAAcD,CAAQ,EAGnE,UAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,EACjD,OAAQA,EAAuC,MAAM,OAAO,EAAE,KAC5DC,CACF,CACF,CACF,CACF,CAAC,CACH,CAAC",
6
+ "names": ["import_device_management_kit", "import_BackupAppStorageCommand", "name", "expectedApdu", "apdu", "statusCode", "response", "result", "expectedMessage"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var m=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var f=(t,r)=>{for(var o in r)m(t,o,{get:r[o],enumerable:!0})},u=(t,r,o,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of A(r))!c.call(t,a)&&a!==o&&m(t,a,{get:()=>r[a],enumerable:!(n=l(r,a))||n.enumerable});return t};var I=t=>u(m({},"__esModule",{value:!0}),t);var G={};f(G,{GET_APP_STORAGE_INFO_ERRORS:()=>d,GetAppStorageInfoCommand:()=>x,GetAppStorageInfoCommandError:()=>S});module.exports=I(G);var e=require("@ledgerhq/device-management-kit");const d={5123:{message:"Application not found."},"662f":{message:"Device is in recovery mode."},"670a":{message:"Invalid application name length, two chars minimum."}};class S extends e.DeviceExchangeError{constructor(r){super({tag:"GetAppStorageInfoCommandError",...r})}}class x{constructor(r){this.args=r}name="GetAppStorageInfo";header={cla:224,ins:106,p1:0,p2:0};getApdu(){const{appName:r}=this.args;return new e.ApduBuilder(this.header).addAsciiStringToData(r).build()}parseResponse(r){const o=new e.ApduParser(r);if(!e.CommandUtils.isSuccessResponse(r)){const s=o.encodeToHexaString(r.statusCode);return(0,e.isCommandErrorCode)(s,d)?(0,e.CommandResultFactory)({error:new S({...d[s],errorCode:s})}):(0,e.CommandResultFactory)({error:e.GlobalCommandErrorHandler.handle(r)})}const n=o.extract32BitUInt();if(n===void 0)return(0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Failed to extract app storage size")});let a="",i=!1,g=!1,C="";if(n!==0){const s=o.extract32BitUInt();if(s===void 0)return(0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Failed to extract app storage version")});a=s.toString(16);const p=o.extract16BitUInt();if(p===void 0)return(0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Failed to extract app storage properties")});i=(p&1)===1,g=(p&2)===2,C=o.encodeToHexaString(o.extractFieldByLength(32))}return(0,e.CommandResultFactory)({data:{storageSize:n,storageVersion:a,hasSettings:i,hasData:g,storageHash:C}})}}0&&(module.exports={GET_APP_STORAGE_INFO_ERRORS,GetAppStorageInfoCommand,GetAppStorageInfoCommandError});
2
+ //# sourceMappingURL=GetAppStorageInfoCommand.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.ts"],
4
+ "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandErrorArgs,\n type CommandErrors,\n type CommandResult,\n CommandResultFactory,\n CommandUtils,\n DeviceExchangeError,\n GlobalCommandErrorHandler,\n InvalidStatusWordError,\n isCommandErrorCode,\n} from \"@ledgerhq/device-management-kit\";\n\nexport type GetAppStorageInfoCommandArgs = {\n appName: string;\n};\n\nexport type GetAppStorageInfoCommandResponse = {\n storageSize: number;\n storageVersion: string;\n hasSettings: boolean;\n hasData: boolean;\n storageHash: string;\n};\n\nexport type GetAppStorageInfoCommandErrorCodes = \"5123\" | \"662f\" | \"670a\";\n\nexport const GET_APP_STORAGE_INFO_ERRORS: CommandErrors<GetAppStorageInfoCommandErrorCodes> =\n {\n \"5123\": { message: \"Application not found.\" },\n \"662f\": { message: \"Device is in recovery mode.\" },\n \"670a\": { message: \"Invalid application name length, two chars minimum.\" },\n };\n\nexport class GetAppStorageInfoCommandError extends DeviceExchangeError<GetAppStorageInfoCommandErrorCodes> {\n constructor(args: CommandErrorArgs<GetAppStorageInfoCommandErrorCodes>) {\n super({ tag: \"GetAppStorageInfoCommandError\", ...args });\n }\n}\n\nexport type GetAppStorageInfoCommandResult = CommandResult<\n GetAppStorageInfoCommandResponse,\n GetAppStorageInfoCommandErrorCodes\n>;\n\nexport class GetAppStorageInfoCommand\n implements\n Command<\n GetAppStorageInfoCommandResponse,\n GetAppStorageInfoCommandArgs,\n GetAppStorageInfoCommandErrorCodes\n >\n{\n readonly name = \"GetAppStorageInfo\";\n\n private readonly header = {\n cla: 0xe0,\n ins: 0x6a,\n p1: 0x00,\n p2: 0x00,\n };\n\n constructor(private readonly args: GetAppStorageInfoCommandArgs) {}\n\n getApdu(): Apdu {\n const { appName } = this.args;\n return new ApduBuilder(this.header).addAsciiStringToData(appName).build();\n }\n\n parseResponse(apduResponse: ApduResponse): GetAppStorageInfoCommandResult {\n const parser = new ApduParser(apduResponse);\n if (!CommandUtils.isSuccessResponse(apduResponse)) {\n const errorCode = parser.encodeToHexaString(apduResponse.statusCode);\n if (isCommandErrorCode(errorCode, GET_APP_STORAGE_INFO_ERRORS)) {\n return CommandResultFactory({\n error: new GetAppStorageInfoCommandError({\n ...GET_APP_STORAGE_INFO_ERRORS[errorCode],\n errorCode,\n }),\n });\n }\n return CommandResultFactory({\n error: GlobalCommandErrorHandler.handle(apduResponse),\n });\n }\n\n const appStorageSize = parser.extract32BitUInt();\n if (appStorageSize === undefined) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Failed to extract app storage size\"),\n });\n }\n\n let appStorageVersion = \"\";\n let hasAppStorageSettings = false;\n let hasAppStorageData = false;\n let hash = \"\";\n\n if (appStorageSize !== 0) {\n const appStorageVersionNumber = parser.extract32BitUInt();\n if (appStorageVersionNumber === undefined) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"Failed to extract app storage version\",\n ),\n });\n }\n appStorageVersion = appStorageVersionNumber.toString(16);\n /**\n * The properties byte is a bitfield with the following structure:\n * - Bit 0: hasSettings\n * - Bit 1: hasData\n */\n const appStorageProperties = parser.extract16BitUInt();\n if (appStorageProperties === undefined) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"Failed to extract app storage properties\",\n ),\n });\n }\n\n hasAppStorageSettings = (appStorageProperties & 1) === 1;\n hasAppStorageData = (appStorageProperties & 2) === 2;\n hash = parser.encodeToHexaString(parser.extractFieldByLength(0x20));\n }\n\n return CommandResultFactory({\n data: {\n storageSize: appStorageSize,\n storageVersion: appStorageVersion,\n hasSettings: hasAppStorageSettings,\n hasData: hasAppStorageData,\n storageHash: hash,\n },\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iCAAAE,EAAA,6BAAAC,EAAA,kCAAAC,IAAA,eAAAC,EAAAL,GAAA,IAAAM,EAeO,2CAgBA,MAAMJ,EACX,CACE,KAAQ,CAAE,QAAS,wBAAyB,EAC5C,OAAQ,CAAE,QAAS,6BAA8B,EACjD,OAAQ,CAAE,QAAS,qDAAsD,CAC3E,EAEK,MAAME,UAAsC,qBAAwD,CACzG,YAAYG,EAA4D,CACtE,MAAM,CAAE,IAAK,gCAAiC,GAAGA,CAAK,CAAC,CACzD,CACF,CAOO,MAAMJ,CAOb,CAUE,YAA6BI,EAAoC,CAApC,UAAAA,CAAqC,CATzD,KAAO,oBAEC,OAAS,CACxB,IAAK,IACL,IAAK,IACL,GAAI,EACJ,GAAI,CACN,EAIA,SAAgB,CACd,KAAM,CAAE,QAAAC,CAAQ,EAAI,KAAK,KACzB,OAAO,IAAI,cAAY,KAAK,MAAM,EAAE,qBAAqBA,CAAO,EAAE,MAAM,CAC1E,CAEA,cAAcC,EAA4D,CACxE,MAAMC,EAAS,IAAI,aAAWD,CAAY,EAC1C,GAAI,CAAC,eAAa,kBAAkBA,CAAY,EAAG,CACjD,MAAME,EAAYD,EAAO,mBAAmBD,EAAa,UAAU,EACnE,SAAI,sBAAmBE,EAAWT,CAA2B,KACpD,wBAAqB,CAC1B,MAAO,IAAIE,EAA8B,CACvC,GAAGF,EAA4BS,CAAS,EACxC,UAAAA,CACF,CAAC,CACH,CAAC,KAEI,wBAAqB,CAC1B,MAAO,4BAA0B,OAAOF,CAAY,CACtD,CAAC,CACH,CAEA,MAAMG,EAAiBF,EAAO,iBAAiB,EAC/C,GAAIE,IAAmB,OACrB,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,oCAAoC,CACxE,CAAC,EAGH,IAAIC,EAAoB,GACpBC,EAAwB,GACxBC,EAAoB,GACpBC,EAAO,GAEX,GAAIJ,IAAmB,EAAG,CACxB,MAAMK,EAA0BP,EAAO,iBAAiB,EACxD,GAAIO,IAA4B,OAC9B,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBACT,uCACF,CACF,CAAC,EAEHJ,EAAoBI,EAAwB,SAAS,EAAE,EAMvD,MAAMC,EAAuBR,EAAO,iBAAiB,EACrD,GAAIQ,IAAyB,OAC3B,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBACT,0CACF,CACF,CAAC,EAGHJ,GAAyBI,EAAuB,KAAO,EACvDH,GAAqBG,EAAuB,KAAO,EACnDF,EAAON,EAAO,mBAAmBA,EAAO,qBAAqB,EAAI,CAAC,CACpE,CAEA,SAAO,wBAAqB,CAC1B,KAAM,CACJ,YAAaE,EACb,eAAgBC,EAChB,YAAaC,EACb,QAASC,EACT,YAAaC,CACf,CACF,CAAC,CACH,CACF",
6
+ "names": ["GetAppStorageInfoCommand_exports", "__export", "GET_APP_STORAGE_INFO_ERRORS", "GetAppStorageInfoCommand", "GetAppStorageInfoCommandError", "__toCommonJS", "import_device_management_kit", "args", "appName", "apduResponse", "parser", "errorCode", "appStorageSize", "appStorageVersion", "hasAppStorageSettings", "hasAppStorageData", "hash", "appStorageVersionNumber", "appStorageProperties"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("@ledgerhq/device-management-kit"),s=require("./GetAppStorageInfoCommand");describe("GetAppStorageInfoCommand",()=>{describe("Name",()=>{it("name should be 'GetAppStorageInfo'",()=>{const t=new s.GetAppStorageInfoCommand({appName:"MyApp"}).name;expect(t).toBe("GetAppStorageInfo")})}),describe("Command",()=>{it("should return the correct APDU for getting the app storage info",()=>{const r=Uint8Array.from([224,106,0,0,5,77,121,65,112,112]),t=new s.GetAppStorageInfoCommand({appName:"MyApp"}).getApdu();expect(t.getRawApdu()).toEqual(r)})}),describe("Success response",()=>{it("should return correct app storage info when app storage size is not 0",()=>{const r=Uint8Array.from([144,0]),t=new e.ApduResponse({statusCode:r,data:Uint8Array.from([0,0,0,1,0,0,0,1,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1])}),a=new s.GetAppStorageInfoCommand({appName:"MyApp"}).parseResponse(t);expect((0,e.isSuccessCommandResult)(a)).toBe(!0),expect(a).toEqual({data:{storageSize:1,storageVersion:"1",hasSettings:!0,hasData:!0,storageHash:"0000000000000000000000000000000000000000000000000000000000000001"},status:"SUCCESS"})}),it("should return correct app storage info when app storage size is 0",()=>{const r=Uint8Array.from([144,0]),t=new e.ApduResponse({statusCode:r,data:Uint8Array.from([0,0,0,0])}),a=new s.GetAppStorageInfoCommand({appName:"MyApp"}).parseResponse(t);expect((0,e.isSuccessCommandResult)(a)).toBe(!0),expect(a).toEqual({data:{storageSize:0,storageVersion:"",hasSettings:!1,hasData:!1,storageHash:""},status:"SUCCESS"})})}),describe("Error response",()=>{it.each([{description:"application is not found",statusCode:[81,35],expectedMessage:"Application not found."},{description:"device is in recovery mode",statusCode:[102,47],expectedMessage:"Device is in recovery mode."},{description:"application name length is invalid",statusCode:[103,10],expectedMessage:"Invalid application name length, two chars minimum."},{description:"error code is not specific to GetAppStorageInfoCommand (global error)",statusCode:[85,21],expectedMessage:"Device is locked."}])("should return error when $description",({statusCode:r,expectedMessage:t})=>{const a=new e.ApduResponse({statusCode:Uint8Array.from(r),data:new Uint8Array([])}),o=new s.GetAppStorageInfoCommand({appName:"MyApp"}).parseResponse(a);expect((0,e.isSuccessCommandResult)(o)).toBe(!1),expect(o.error.message).toBe(t)}),it.each([{description:"app storage size extraction fails",data:new Uint8Array([]),expectedOriginalMessage:"Failed to extract app storage size"},{description:"app storage version extraction fails",data:Uint8Array.from([0,0,0,1]),expectedOriginalMessage:"Failed to extract app storage version"},{description:"app storage properties extraction fails",data:Uint8Array.from([0,0,0,1,0,0,0,1]),expectedOriginalMessage:"Failed to extract app storage properties"}])("should return error when $description",({data:r,expectedOriginalMessage:t})=>{const a=new e.ApduResponse({statusCode:Uint8Array.from([144,0]),data:r}),o=new s.GetAppStorageInfoCommand({appName:"MyApp"}).parseResponse(a);expect((0,e.isSuccessCommandResult)(o)).toBe(!1),expect(o.error).toBeInstanceOf(e.InvalidStatusWordError),expect(o.error.originalError?.message).toBe(t)})})});
2
+ //# sourceMappingURL=GetAppStorageInfoCommand.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.test.ts"],
4
+ "sourcesContent": ["import {\n ApduResponse,\n InvalidStatusWordError,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { GetAppStorageInfoCommand } from \"./GetAppStorageInfoCommand\";\n\ndescribe(\"GetAppStorageInfoCommand\", () => {\n describe(\"Name\", () => {\n it(\"name should be 'GetAppStorageInfo'\", () => {\n // ARRANGE\n const command = new GetAppStorageInfoCommand({ appName: \"MyApp\" });\n\n // ACT\n const name = command.name;\n\n // ASSERT\n expect(name).toBe(\"GetAppStorageInfo\");\n });\n });\n\n describe(\"Command\", () => {\n it(\"should return the correct APDU for getting the app storage info\", () => {\n // ARRANGE\n const expectedApdu = Uint8Array.from([\n 0xe0, 0x6a, 0x00, 0x00, 0x05, 0x4d, 0x79, 0x41, 0x70, 0x70,\n ]);\n\n // ACT\n const apdu = new GetAppStorageInfoCommand({ appName: \"MyApp\" }).getApdu();\n\n // ASSERT\n expect(apdu.getRawApdu()).toEqual(expectedApdu);\n });\n });\n\n describe(\"Success response\", () => {\n it(\"should return correct app storage info when app storage size is not 0\", () => {\n // ARRANGE\n const statusCode = Uint8Array.from([0x90, 0x00]);\n const response = new ApduResponse({\n statusCode,\n data: Uint8Array.from([\n // appStorageSize (32-bit BE) = 1\n 0x00, 0x00, 0x00, 0x01,\n // appStorageVersion (32-bit BE) = 1\n 0x00, 0x00, 0x00, 0x01,\n // appStorageProperties (16-bit BE) = 0x0003 (bits 0 and 1 set)\n 0x00, 0x03,\n // appStorageHash (32 bytes)\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,\n ]),\n });\n\n // ACT\n const result = new GetAppStorageInfoCommand({\n appName: \"MyApp\",\n }).parseResponse(response);\n\n // ASSERT\n expect(isSuccessCommandResult(result)).toBe(true);\n expect(result).toEqual({\n data: {\n storageSize: 1,\n storageVersion: \"1\",\n hasSettings: true,\n hasData: true,\n storageHash:\n \"0000000000000000000000000000000000000000000000000000000000000001\",\n },\n status: \"SUCCESS\",\n });\n });\n\n it(\"should return correct app storage info when app storage size is 0\", () => {\n // ARRANGE\n const statusCode = Uint8Array.from([0x90, 0x00]);\n const response = new ApduResponse({\n statusCode,\n data: Uint8Array.from([\n // appStorageSize (32-bit BE) = 0\n 0x00, 0x00, 0x00, 0x00,\n ]),\n });\n\n // ACT\n const result = new GetAppStorageInfoCommand({\n appName: \"MyApp\",\n }).parseResponse(response);\n\n // ASSERT\n expect(isSuccessCommandResult(result)).toBe(true);\n expect(result).toEqual({\n data: {\n storageSize: 0,\n storageVersion: \"\",\n hasSettings: false,\n hasData: false,\n storageHash: \"\",\n },\n status: \"SUCCESS\",\n });\n });\n });\n\n describe(\"Error response\", () => {\n it.each([\n {\n description: \"application is not found\",\n statusCode: [0x51, 0x23],\n expectedMessage: \"Application not found.\",\n },\n {\n description: \"device is in recovery mode\",\n statusCode: [0x66, 0x2f],\n expectedMessage: \"Device is in recovery mode.\",\n },\n {\n description: \"application name length is invalid\",\n statusCode: [0x67, 0x0a],\n expectedMessage: \"Invalid application name length, two chars minimum.\",\n },\n {\n description:\n \"error code is not specific to GetAppStorageInfoCommand (global error)\",\n statusCode: [0x55, 0x15],\n expectedMessage: \"Device is locked.\",\n },\n ])(\n \"should return error when $description\",\n ({ statusCode, expectedMessage }) => {\n // ARRANGE\n const response = new ApduResponse({\n statusCode: Uint8Array.from(statusCode),\n data: new Uint8Array([]),\n });\n\n // ACT\n const result = new GetAppStorageInfoCommand({\n appName: \"MyApp\",\n }).parseResponse(response);\n\n // ASSERT\n expect(isSuccessCommandResult(result)).toBe(false);\n expect((result as unknown as { error: Error }).error.message).toBe(\n expectedMessage,\n );\n },\n );\n\n it.each([\n {\n description: \"app storage size extraction fails\",\n data: new Uint8Array([]),\n expectedOriginalMessage: \"Failed to extract app storage size\",\n },\n {\n description: \"app storage version extraction fails\",\n data: Uint8Array.from([0x00, 0x00, 0x00, 0x01]),\n expectedOriginalMessage: \"Failed to extract app storage version\",\n },\n {\n description: \"app storage properties extraction fails\",\n data: Uint8Array.from([0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01]),\n expectedOriginalMessage: \"Failed to extract app storage properties\",\n },\n ])(\n \"should return error when $description\",\n ({ data, expectedOriginalMessage }) => {\n // ARRANGE\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data,\n });\n\n // ACT\n const result = new GetAppStorageInfoCommand({\n appName: \"MyApp\",\n }).parseResponse(response);\n\n // ASSERT\n expect(isSuccessCommandResult(result)).toBe(false);\n expect(\n (result as unknown as { error: InvalidStatusWordError }).error,\n ).toBeInstanceOf(InvalidStatusWordError);\n expect(\n (result as unknown as { error: InvalidStatusWordError }).error\n .originalError?.message,\n ).toBe(expectedOriginalMessage);\n },\n );\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_device_management_kit", "import_GetAppStorageInfoCommand", "name", "expectedApdu", "apdu", "statusCode", "response", "result", "expectedMessage", "data", "expectedOriginalMessage"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var s=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var l=(o,e)=>{for(var t in e)s(o,t,{get:e[t],enumerable:!0})},g=(o,e,t,m)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of C(e))!i.call(o,a)&&a!==t&&s(o,a,{get:()=>e[a],enumerable:!(m=p(e,a))||m.enumerable});return o};var R=o=>g(s({},"__esModule",{value:!0}),o);var A={};l(A,{COMMIT_RESTORE_APP_STORAGE_ERRORS:()=>d,CommitRestoreAppStorageCommand:()=>u,CommitRestoreAppStorageCommandError:()=>n});module.exports=R(A);var r=require("@ledgerhq/device-management-kit");const d={5123:{message:"Invalid context, restore init must be called first."},5419:{message:"Internal error, crypto operation failed."},"541b":{message:"Failed to verify backup authenticity."},"662f":{message:"Invalid device state, recovery mode."},6734:{message:"Invalid size of the restored app storage."}};class n extends r.DeviceExchangeError{constructor(e){super({tag:"CommitRestoreAppStorageCommandError",...e})}}class u{name="CommitRestoreAppStorage";header={cla:224,ins:110,p1:0,p2:0};getApdu(){return new r.ApduBuilder(this.header).build()}parseResponse(e){const t=new r.ApduParser(e);if(!r.CommandUtils.isSuccessResponse(e)){const m=t.encodeToHexaString(e.statusCode);return(0,r.isCommandErrorCode)(m,d)?(0,r.CommandResultFactory)({error:new n({...d[m],errorCode:m})}):(0,r.CommandResultFactory)({error:r.GlobalCommandErrorHandler.handle(e)})}return(0,r.CommandResultFactory)({data:void 0})}}0&&(module.exports={COMMIT_RESTORE_APP_STORAGE_ERRORS,CommitRestoreAppStorageCommand,CommitRestoreAppStorageCommandError});
2
+ //# sourceMappingURL=CommitRestoreAppStorageCommand.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.ts"],
4
+ "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandErrorArgs,\n type CommandErrors,\n type CommandResult,\n CommandResultFactory,\n CommandUtils,\n DeviceExchangeError,\n GlobalCommandErrorHandler,\n isCommandErrorCode,\n} from \"@ledgerhq/device-management-kit\";\n\nexport type CommitRestoreAppStorageCommandErrorCodes =\n | \"5123\"\n | \"5419\"\n | \"541b\"\n | \"662f\"\n | \"6734\";\n\nexport const COMMIT_RESTORE_APP_STORAGE_ERRORS: CommandErrors<CommitRestoreAppStorageCommandErrorCodes> =\n {\n \"5123\": { message: \"Invalid context, restore init must be called first.\" },\n \"5419\": { message: \"Internal error, crypto operation failed.\" },\n \"541b\": { message: \"Failed to verify backup authenticity.\" },\n \"662f\": { message: \"Invalid device state, recovery mode.\" },\n \"6734\": { message: \"Invalid size of the restored app storage.\" },\n };\n\nexport class CommitRestoreAppStorageCommandError extends DeviceExchangeError<CommitRestoreAppStorageCommandErrorCodes> {\n constructor(\n args: CommandErrorArgs<CommitRestoreAppStorageCommandErrorCodes>,\n ) {\n super({ tag: \"CommitRestoreAppStorageCommandError\", ...args });\n }\n}\n\nexport type CommitRestoreAppStorageCommandResult = CommandResult<\n void,\n CommitRestoreAppStorageCommandErrorCodes\n>;\n\nexport class CommitRestoreAppStorageCommand\n implements Command<void, void, CommitRestoreAppStorageCommandErrorCodes>\n{\n readonly name = \"CommitRestoreAppStorage\";\n\n private readonly header = {\n cla: 0xe0,\n ins: 0x6e,\n p1: 0x00,\n p2: 0x00,\n };\n\n getApdu(): Apdu {\n return new ApduBuilder(this.header).build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommitRestoreAppStorageCommandResult {\n const parser = new ApduParser(apduResponse);\n if (!CommandUtils.isSuccessResponse(apduResponse)) {\n const errorCode = parser.encodeToHexaString(apduResponse.statusCode);\n if (isCommandErrorCode(errorCode, COMMIT_RESTORE_APP_STORAGE_ERRORS)) {\n return CommandResultFactory({\n error: new CommitRestoreAppStorageCommandError({\n ...COMMIT_RESTORE_APP_STORAGE_ERRORS[errorCode],\n errorCode,\n }),\n });\n }\n return CommandResultFactory({\n error: GlobalCommandErrorHandler.handle(apduResponse),\n });\n }\n\n return CommandResultFactory({\n data: undefined,\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uCAAAE,EAAA,mCAAAC,EAAA,wCAAAC,IAAA,eAAAC,EAAAL,GAAA,IAAAM,EAcO,2CASA,MAAMJ,EACX,CACE,KAAQ,CAAE,QAAS,qDAAsD,EACzE,KAAQ,CAAE,QAAS,0CAA2C,EAC9D,OAAQ,CAAE,QAAS,uCAAwC,EAC3D,OAAQ,CAAE,QAAS,sCAAuC,EAC1D,KAAQ,CAAE,QAAS,2CAA4C,CACjE,EAEK,MAAME,UAA4C,qBAA8D,CACrH,YACEG,EACA,CACA,MAAM,CAAE,IAAK,sCAAuC,GAAGA,CAAK,CAAC,CAC/D,CACF,CAOO,MAAMJ,CAEb,CACW,KAAO,0BAEC,OAAS,CACxB,IAAK,IACL,IAAK,IACL,GAAI,EACJ,GAAI,CACN,EAEA,SAAgB,CACd,OAAO,IAAI,cAAY,KAAK,MAAM,EAAE,MAAM,CAC5C,CAEA,cACEK,EACsC,CACtC,MAAMC,EAAS,IAAI,aAAWD,CAAY,EAC1C,GAAI,CAAC,eAAa,kBAAkBA,CAAY,EAAG,CACjD,MAAME,EAAYD,EAAO,mBAAmBD,EAAa,UAAU,EACnE,SAAI,sBAAmBE,EAAWR,CAAiC,KAC1D,wBAAqB,CAC1B,MAAO,IAAIE,EAAoC,CAC7C,GAAGF,EAAkCQ,CAAS,EAC9C,UAAAA,CACF,CAAC,CACH,CAAC,KAEI,wBAAqB,CAC1B,MAAO,4BAA0B,OAAOF,CAAY,CACtD,CAAC,CACH,CAEA,SAAO,wBAAqB,CAC1B,KAAM,MACR,CAAC,CACH,CACF",
6
+ "names": ["CommitRestoreAppStorageCommand_exports", "__export", "COMMIT_RESTORE_APP_STORAGE_ERRORS", "CommitRestoreAppStorageCommand", "CommitRestoreAppStorageCommandError", "__toCommonJS", "import_device_management_kit", "args", "apduResponse", "parser", "errorCode"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var s=require("@ledgerhq/device-management-kit"),o=require("./CommitRestoreAppStorageCommand");describe("CommitRestoreAppStorageCommand",()=>{describe("Name",()=>{it("name should be 'CommitRestoreAppStorage'",()=>{const e=new o.CommitRestoreAppStorageCommand().name;expect(e).toBe("CommitRestoreAppStorage")})}),describe("Command",()=>{it("should return the correct APDU for committing an app storage restore",()=>{const t=Uint8Array.from([224,110,0,0,0]),e=new o.CommitRestoreAppStorageCommand().getApdu();expect(e.getRawApdu()).toEqual(t)})}),describe("Success response",()=>{it("should return a success result",()=>{const t=new s.ApduResponse({statusCode:Uint8Array.from([144,0]),data:new Uint8Array([])}),e=new o.CommitRestoreAppStorageCommand().parseResponse(t);expect((0,s.isSuccessCommandResult)(e)).toBe(!0),expect(e).toEqual({data:void 0,status:"SUCCESS"})})}),describe("Error response",()=>{it.each([{description:"restore init has not been called",statusCode:[81,35],expectedMessage:"Invalid context, restore init must be called first."},{description:"crypto operation failed",statusCode:[84,25],expectedMessage:"Internal error, crypto operation failed."},{description:"backup authenticity verification failed",statusCode:[84,27],expectedMessage:"Failed to verify backup authenticity."},{description:"device is in recovery mode",statusCode:[102,47],expectedMessage:"Invalid device state, recovery mode."},{description:"restored app storage size is invalid",statusCode:[103,52],expectedMessage:"Invalid size of the restored app storage."},{description:"error code is not specific to CommitRestoreAppStorageCommand (global error)",statusCode:[85,21],expectedMessage:"Device is locked."}])("should return error when $description",({statusCode:t,expectedMessage:e})=>{const a=new s.ApduResponse({statusCode:Uint8Array.from(t),data:new Uint8Array([])}),r=new o.CommitRestoreAppStorageCommand().parseResponse(a);expect((0,s.isSuccessCommandResult)(r)).toBe(!1),expect(r.error.message).toBe(e)})})});
2
+ //# sourceMappingURL=CommitRestoreAppStorageCommand.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.test.ts"],
4
+ "sourcesContent": ["import {\n ApduResponse,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { CommitRestoreAppStorageCommand } from \"./CommitRestoreAppStorageCommand\";\n\ndescribe(\"CommitRestoreAppStorageCommand\", () => {\n describe(\"Name\", () => {\n it(\"name should be 'CommitRestoreAppStorage'\", () => {\n // ARRANGE\n const command = new CommitRestoreAppStorageCommand();\n\n // ACT\n const name = command.name;\n\n // ASSERT\n expect(name).toBe(\"CommitRestoreAppStorage\");\n });\n });\n\n describe(\"Command\", () => {\n it(\"should return the correct APDU for committing an app storage restore\", () => {\n // ARRANGE\n const expectedApdu = Uint8Array.from([0xe0, 0x6e, 0x00, 0x00, 0x00]);\n\n // ACT\n const apdu = new CommitRestoreAppStorageCommand().getApdu();\n\n // ASSERT\n expect(apdu.getRawApdu()).toEqual(expectedApdu);\n });\n });\n\n describe(\"Success response\", () => {\n it(\"should return a success result\", () => {\n // ARRANGE\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array([]),\n });\n\n // ACT\n const result = new CommitRestoreAppStorageCommand().parseResponse(\n response,\n );\n\n // ASSERT\n expect(isSuccessCommandResult(result)).toBe(true);\n expect(result).toEqual({\n data: undefined,\n status: \"SUCCESS\",\n });\n });\n });\n\n describe(\"Error response\", () => {\n it.each([\n {\n description: \"restore init has not been called\",\n statusCode: [0x51, 0x23],\n expectedMessage: \"Invalid context, restore init must be called first.\",\n },\n {\n description: \"crypto operation failed\",\n statusCode: [0x54, 0x19],\n expectedMessage: \"Internal error, crypto operation failed.\",\n },\n {\n description: \"backup authenticity verification failed\",\n statusCode: [0x54, 0x1b],\n expectedMessage: \"Failed to verify backup authenticity.\",\n },\n {\n description: \"device is in recovery mode\",\n statusCode: [0x66, 0x2f],\n expectedMessage: \"Invalid device state, recovery mode.\",\n },\n {\n description: \"restored app storage size is invalid\",\n statusCode: [0x67, 0x34],\n expectedMessage: \"Invalid size of the restored app storage.\",\n },\n {\n description:\n \"error code is not specific to CommitRestoreAppStorageCommand (global error)\",\n statusCode: [0x55, 0x15],\n expectedMessage: \"Device is locked.\",\n },\n ])(\n \"should return error when $description\",\n ({ statusCode, expectedMessage }) => {\n // ARRANGE\n const response = new ApduResponse({\n statusCode: Uint8Array.from(statusCode),\n data: new Uint8Array([]),\n });\n\n // ACT\n const result = new CommitRestoreAppStorageCommand().parseResponse(\n response,\n );\n\n // ASSERT\n expect(isSuccessCommandResult(result)).toBe(false);\n expect((result as unknown as { error: Error }).error.message).toBe(\n expectedMessage,\n );\n },\n );\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAGO,2CAEPC,EAA+C,4CAE/C,SAAS,iCAAkC,IAAM,CAC/C,SAAS,OAAQ,IAAM,CACrB,GAAG,2CAA4C,IAAM,CAKnD,MAAMC,EAHU,IAAI,iCAA+B,EAG9B,KAGrB,OAAOA,CAAI,EAAE,KAAK,yBAAyB,CAC7C,CAAC,CACH,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,GAAG,uEAAwE,IAAM,CAE/E,MAAMC,EAAe,WAAW,KAAK,CAAC,IAAM,IAAM,EAAM,EAAM,CAAI,CAAC,EAG7DC,EAAO,IAAI,iCAA+B,EAAE,QAAQ,EAG1D,OAAOA,EAAK,WAAW,CAAC,EAAE,QAAQD,CAAY,CAChD,CAAC,CACH,CAAC,EAED,SAAS,mBAAoB,IAAM,CACjC,GAAG,iCAAkC,IAAM,CAEzC,MAAME,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EAGKC,EAAS,IAAI,iCAA+B,EAAE,cAClDD,CACF,EAGA,UAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,EAChD,OAAOA,CAAM,EAAE,QAAQ,CACrB,KAAM,OACN,OAAQ,SACV,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,iBAAkB,IAAM,CAC/B,GAAG,KAAK,CACN,CACE,YAAa,mCACb,WAAY,CAAC,GAAM,EAAI,EACvB,gBAAiB,qDACnB,EACA,CACE,YAAa,0BACb,WAAY,CAAC,GAAM,EAAI,EACvB,gBAAiB,0CACnB,EACA,CACE,YAAa,0CACb,WAAY,CAAC,GAAM,EAAI,EACvB,gBAAiB,uCACnB,EACA,CACE,YAAa,6BACb,WAAY,CAAC,IAAM,EAAI,EACvB,gBAAiB,sCACnB,EACA,CACE,YAAa,uCACb,WAAY,CAAC,IAAM,EAAI,EACvB,gBAAiB,2CACnB,EACA,CACE,YACE,8EACF,WAAY,CAAC,GAAM,EAAI,EACvB,gBAAiB,mBACnB,CACF,CAAC,EACC,wCACA,CAAC,CAAE,WAAAC,EAAY,gBAAAC,CAAgB,IAAM,CAEnC,MAAMH,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAKE,CAAU,EACtC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EAGKD,EAAS,IAAI,iCAA+B,EAAE,cAClDD,CACF,EAGA,UAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,EACjD,OAAQA,EAAuC,MAAM,OAAO,EAAE,KAC5DE,CACF,CACF,CACF,CACF,CAAC,CACH,CAAC",
6
+ "names": ["import_device_management_kit", "import_CommitRestoreAppStorageCommand", "name", "expectedApdu", "apdu", "response", "result", "statusCode", "expectedMessage"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var s=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var C=(o,e)=>{for(var t in e)s(o,t,{get:e[t],enumerable:!0})},A=(o,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of i(e))!g.call(o,n)&&n!==t&&s(o,n,{get:()=>e[n],enumerable:!(a=d(e,n))||a.enumerable});return o};var l=o=>A(s({},"__esModule",{value:!0}),o);var u={};C(u,{INIT_RESTORE_APP_STORAGE_ERRORS:()=>p,InitRestoreAppStorageCommand:()=>c,InitRestoreAppStorageCommandError:()=>m});module.exports=l(u);var r=require("@ledgerhq/device-management-kit");const p={5123:{message:"Application not found."},"662f":{message:"Invalid device state, recovery mode."},5501:{message:"Invalid consent, user rejected."},5502:{message:"Invalid consent, pin is not set."},"670a":{message:"Invalid application name length, two chars minimum."},6733:{message:"Invalid backup length value."}};class m extends r.DeviceExchangeError{constructor(e){super({tag:"InitRestoreAppStorageCommandError",...e})}}class c{constructor(e){this.args=e}name="InitRestoreAppStorage";header={cla:224,ins:108,p1:0,p2:0};getApdu(){const{appName:e,appStorageDataLength:t}=this.args;return new r.ApduBuilder(this.header).add32BitUIntToData(t).addAsciiStringToData(e).build()}parseResponse(e){const t=new r.ApduParser(e);if(!r.CommandUtils.isSuccessResponse(e)){const a=t.encodeToHexaString(e.statusCode);return(0,r.isCommandErrorCode)(a,p)?(0,r.CommandResultFactory)({error:new m({...p[a],errorCode:a})}):(0,r.CommandResultFactory)({error:r.GlobalCommandErrorHandler.handle(e)})}return(0,r.CommandResultFactory)({data:void 0})}}0&&(module.exports={INIT_RESTORE_APP_STORAGE_ERRORS,InitRestoreAppStorageCommand,InitRestoreAppStorageCommandError});
2
+ //# sourceMappingURL=InitRestoreAppStorageCommand.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.ts"],
4
+ "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandErrorArgs,\n type CommandErrors,\n type CommandResult,\n CommandResultFactory,\n CommandUtils,\n DeviceExchangeError,\n GlobalCommandErrorHandler,\n isCommandErrorCode,\n} from \"@ledgerhq/device-management-kit\";\n\nexport type InitRestoreAppStorageCommandArgs = {\n appName: string;\n appStorageDataLength: number;\n};\n\nexport type InitRestoreAppStorageCommandErrorCodes =\n | \"5123\"\n | \"662f\"\n | \"5501\"\n | \"5502\"\n | \"670a\"\n | \"6733\";\n\nexport const INIT_RESTORE_APP_STORAGE_ERRORS: CommandErrors<InitRestoreAppStorageCommandErrorCodes> =\n {\n \"5123\": { message: \"Application not found.\" },\n \"662f\": { message: \"Invalid device state, recovery mode.\" },\n \"5501\": { message: \"Invalid consent, user rejected.\" },\n \"5502\": { message: \"Invalid consent, pin is not set.\" },\n \"670a\": { message: \"Invalid application name length, two chars minimum.\" },\n \"6733\": { message: \"Invalid backup length value.\" },\n };\n\nexport class InitRestoreAppStorageCommandError extends DeviceExchangeError<InitRestoreAppStorageCommandErrorCodes> {\n constructor(args: CommandErrorArgs<InitRestoreAppStorageCommandErrorCodes>) {\n super({ tag: \"InitRestoreAppStorageCommandError\", ...args });\n }\n}\n\nexport type InitRestoreAppStorageCommandResult = CommandResult<\n void,\n InitRestoreAppStorageCommandErrorCodes\n>;\n\nexport class InitRestoreAppStorageCommand\n implements\n Command<\n void,\n InitRestoreAppStorageCommandArgs,\n InitRestoreAppStorageCommandErrorCodes\n >\n{\n readonly name = \"InitRestoreAppStorage\";\n\n private readonly header = {\n cla: 0xe0,\n ins: 0x6c,\n p1: 0x00,\n p2: 0x00,\n };\n\n constructor(private readonly args: InitRestoreAppStorageCommandArgs) {}\n\n getApdu(): Apdu {\n const { appName, appStorageDataLength } = this.args;\n return new ApduBuilder(this.header)\n .add32BitUIntToData(appStorageDataLength)\n .addAsciiStringToData(appName)\n .build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): InitRestoreAppStorageCommandResult {\n const parser = new ApduParser(apduResponse);\n if (!CommandUtils.isSuccessResponse(apduResponse)) {\n const errorCode = parser.encodeToHexaString(apduResponse.statusCode);\n if (isCommandErrorCode(errorCode, INIT_RESTORE_APP_STORAGE_ERRORS)) {\n return CommandResultFactory({\n error: new InitRestoreAppStorageCommandError({\n ...INIT_RESTORE_APP_STORAGE_ERRORS[errorCode],\n errorCode,\n }),\n });\n }\n return CommandResultFactory({\n error: GlobalCommandErrorHandler.handle(apduResponse),\n });\n }\n\n return CommandResultFactory({\n data: undefined,\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qCAAAE,EAAA,iCAAAC,EAAA,sCAAAC,IAAA,eAAAC,EAAAL,GAAA,IAAAM,EAcO,2CAeA,MAAMJ,EACX,CACE,KAAQ,CAAE,QAAS,wBAAyB,EAC5C,OAAQ,CAAE,QAAS,sCAAuC,EAC1D,KAAQ,CAAE,QAAS,iCAAkC,EACrD,KAAQ,CAAE,QAAS,kCAAmC,EACtD,OAAQ,CAAE,QAAS,qDAAsD,EACzE,KAAQ,CAAE,QAAS,8BAA+B,CACpD,EAEK,MAAME,UAA0C,qBAA4D,CACjH,YAAYG,EAAgE,CAC1E,MAAM,CAAE,IAAK,oCAAqC,GAAGA,CAAK,CAAC,CAC7D,CACF,CAOO,MAAMJ,CAOb,CAUE,YAA6BI,EAAwC,CAAxC,UAAAA,CAAyC,CAT7D,KAAO,wBAEC,OAAS,CACxB,IAAK,IACL,IAAK,IACL,GAAI,EACJ,GAAI,CACN,EAIA,SAAgB,CACd,KAAM,CAAE,QAAAC,EAAS,qBAAAC,CAAqB,EAAI,KAAK,KAC/C,OAAO,IAAI,cAAY,KAAK,MAAM,EAC/B,mBAAmBA,CAAoB,EACvC,qBAAqBD,CAAO,EAC5B,MAAM,CACX,CAEA,cACEE,EACoC,CACpC,MAAMC,EAAS,IAAI,aAAWD,CAAY,EAC1C,GAAI,CAAC,eAAa,kBAAkBA,CAAY,EAAG,CACjD,MAAME,EAAYD,EAAO,mBAAmBD,EAAa,UAAU,EACnE,SAAI,sBAAmBE,EAAWV,CAA+B,KACxD,wBAAqB,CAC1B,MAAO,IAAIE,EAAkC,CAC3C,GAAGF,EAAgCU,CAAS,EAC5C,UAAAA,CACF,CAAC,CACH,CAAC,KAEI,wBAAqB,CAC1B,MAAO,4BAA0B,OAAOF,CAAY,CACtD,CAAC,CACH,CAEA,SAAO,wBAAqB,CAC1B,KAAM,MACR,CAAC,CACH,CACF",
6
+ "names": ["InitRestoreAppStorageCommand_exports", "__export", "INIT_RESTORE_APP_STORAGE_ERRORS", "InitRestoreAppStorageCommand", "InitRestoreAppStorageCommandError", "__toCommonJS", "import_device_management_kit", "args", "appName", "appStorageDataLength", "apduResponse", "parser", "errorCode"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var s=require("@ledgerhq/device-management-kit"),a=require("./InitRestoreAppStorageCommand");describe("InitRestoreAppStorageCommand",()=>{describe("Name",()=>{it("name should be 'InitRestoreAppStorage'",()=>{const e=new a.InitRestoreAppStorageCommand({appName:"MyApp",appStorageDataLength:10}).name;expect(e).toBe("InitRestoreAppStorage")})}),describe("Command",()=>{it("should return the correct APDU for initializing an app storage restore",()=>{const t=Uint8Array.from([224,108,0,0,9,0,0,0,10,77,121,65,112,112]),e=new a.InitRestoreAppStorageCommand({appName:"MyApp",appStorageDataLength:10}).getApdu();expect(e.getRawApdu()).toEqual(t)})}),describe("Success response",()=>{it("should return a success result",()=>{const t=new s.ApduResponse({statusCode:Uint8Array.from([144,0]),data:new Uint8Array([])}),e=new a.InitRestoreAppStorageCommand({appName:"MyApp",appStorageDataLength:10}).parseResponse(t);expect((0,s.isSuccessCommandResult)(e)).toBe(!0),expect(e).toEqual({data:void 0,status:"SUCCESS"})})}),describe("Error response",()=>{it.each([{description:"application is not found",statusCode:[81,35],expectedMessage:"Application not found."},{description:"device is in recovery mode",statusCode:[102,47],expectedMessage:"Invalid device state, recovery mode."},{description:"user rejected the consent",statusCode:[85,1],expectedMessage:"Invalid consent, user rejected."},{description:"pin is not set",statusCode:[85,2],expectedMessage:"Invalid consent, pin is not set."},{description:"application name length is invalid",statusCode:[103,10],expectedMessage:"Invalid application name length, two chars minimum."},{description:"backup length value is invalid",statusCode:[103,51],expectedMessage:"Invalid backup length value."},{description:"error code is not specific to InitRestoreAppStorageCommand (global error)",statusCode:[85,21],expectedMessage:"Device is locked."}])("should return error when $description",({statusCode:t,expectedMessage:e})=>{const n=new s.ApduResponse({statusCode:Uint8Array.from(t),data:new Uint8Array([])}),o=new a.InitRestoreAppStorageCommand({appName:"MyApp",appStorageDataLength:10}).parseResponse(n);expect((0,s.isSuccessCommandResult)(o)).toBe(!1),expect(o.error.message).toBe(e)})})});
2
+ //# sourceMappingURL=InitRestoreAppStorageCommand.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.test.ts"],
4
+ "sourcesContent": ["import {\n ApduResponse,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { InitRestoreAppStorageCommand } from \"./InitRestoreAppStorageCommand\";\n\ndescribe(\"InitRestoreAppStorageCommand\", () => {\n describe(\"Name\", () => {\n it(\"name should be 'InitRestoreAppStorage'\", () => {\n // ARRANGE\n const command = new InitRestoreAppStorageCommand({\n appName: \"MyApp\",\n appStorageDataLength: 10,\n });\n\n // ACT\n const name = command.name;\n\n // ASSERT\n expect(name).toBe(\"InitRestoreAppStorage\");\n });\n });\n\n describe(\"Command\", () => {\n it(\"should return the correct APDU for initializing an app storage restore\", () => {\n // ARRANGE\n const expectedApdu = Uint8Array.from([\n 0xe0, 0x6c, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0a, 0x4d, 0x79, 0x41,\n 0x70, 0x70,\n ]);\n\n // ACT\n const apdu = new InitRestoreAppStorageCommand({\n appName: \"MyApp\",\n appStorageDataLength: 10,\n }).getApdu();\n\n // ASSERT\n expect(apdu.getRawApdu()).toEqual(expectedApdu);\n });\n });\n\n describe(\"Success response\", () => {\n it(\"should return a success result\", () => {\n // ARRANGE\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array([]),\n });\n\n // ACT\n const result = new InitRestoreAppStorageCommand({\n appName: \"MyApp\",\n appStorageDataLength: 10,\n }).parseResponse(response);\n\n // ASSERT\n expect(isSuccessCommandResult(result)).toBe(true);\n expect(result).toEqual({\n data: undefined,\n status: \"SUCCESS\",\n });\n });\n });\n\n describe(\"Error response\", () => {\n it.each([\n {\n description: \"application is not found\",\n statusCode: [0x51, 0x23],\n expectedMessage: \"Application not found.\",\n },\n {\n description: \"device is in recovery mode\",\n statusCode: [0x66, 0x2f],\n expectedMessage: \"Invalid device state, recovery mode.\",\n },\n {\n description: \"user rejected the consent\",\n statusCode: [0x55, 0x01],\n expectedMessage: \"Invalid consent, user rejected.\",\n },\n {\n description: \"pin is not set\",\n statusCode: [0x55, 0x02],\n expectedMessage: \"Invalid consent, pin is not set.\",\n },\n {\n description: \"application name length is invalid\",\n statusCode: [0x67, 0x0a],\n expectedMessage: \"Invalid application name length, two chars minimum.\",\n },\n {\n description: \"backup length value is invalid\",\n statusCode: [0x67, 0x33],\n expectedMessage: \"Invalid backup length value.\",\n },\n {\n description:\n \"error code is not specific to InitRestoreAppStorageCommand (global error)\",\n statusCode: [0x55, 0x15],\n expectedMessage: \"Device is locked.\",\n },\n ])(\n \"should return error when $description\",\n ({ statusCode, expectedMessage }) => {\n // ARRANGE\n const response = new ApduResponse({\n statusCode: Uint8Array.from(statusCode),\n data: new Uint8Array([]),\n });\n\n // ACT\n const result = new InitRestoreAppStorageCommand({\n appName: \"MyApp\",\n appStorageDataLength: 10,\n }).parseResponse(response);\n\n // ASSERT\n expect(isSuccessCommandResult(result)).toBe(false);\n expect((result as unknown as { error: Error }).error.message).toBe(\n expectedMessage,\n );\n },\n );\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAGO,2CAEPC,EAA6C,0CAE7C,SAAS,+BAAgC,IAAM,CAC7C,SAAS,OAAQ,IAAM,CACrB,GAAG,yCAA0C,IAAM,CAQjD,MAAMC,EANU,IAAI,+BAA6B,CAC/C,QAAS,QACT,qBAAsB,EACxB,CAAC,EAGoB,KAGrB,OAAOA,CAAI,EAAE,KAAK,uBAAuB,CAC3C,CAAC,CACH,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,GAAG,yEAA0E,IAAM,CAEjF,MAAMC,EAAe,WAAW,KAAK,CACnC,IAAM,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAM,GAAM,IAAM,GAClE,IAAM,GACR,CAAC,EAGKC,EAAO,IAAI,+BAA6B,CAC5C,QAAS,QACT,qBAAsB,EACxB,CAAC,EAAE,QAAQ,EAGX,OAAOA,EAAK,WAAW,CAAC,EAAE,QAAQD,CAAY,CAChD,CAAC,CACH,CAAC,EAED,SAAS,mBAAoB,IAAM,CACjC,GAAG,iCAAkC,IAAM,CAEzC,MAAME,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EAGKC,EAAS,IAAI,+BAA6B,CAC9C,QAAS,QACT,qBAAsB,EACxB,CAAC,EAAE,cAAcD,CAAQ,EAGzB,UAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,EAChD,OAAOA,CAAM,EAAE,QAAQ,CACrB,KAAM,OACN,OAAQ,SACV,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,iBAAkB,IAAM,CAC/B,GAAG,KAAK,CACN,CACE,YAAa,2BACb,WAAY,CAAC,GAAM,EAAI,EACvB,gBAAiB,wBACnB,EACA,CACE,YAAa,6BACb,WAAY,CAAC,IAAM,EAAI,EACvB,gBAAiB,sCACnB,EACA,CACE,YAAa,4BACb,WAAY,CAAC,GAAM,CAAI,EACvB,gBAAiB,iCACnB,EACA,CACE,YAAa,iBACb,WAAY,CAAC,GAAM,CAAI,EACvB,gBAAiB,kCACnB,EACA,CACE,YAAa,qCACb,WAAY,CAAC,IAAM,EAAI,EACvB,gBAAiB,qDACnB,EACA,CACE,YAAa,iCACb,WAAY,CAAC,IAAM,EAAI,EACvB,gBAAiB,8BACnB,EACA,CACE,YACE,4EACF,WAAY,CAAC,GAAM,EAAI,EACvB,gBAAiB,mBACnB,CACF,CAAC,EACC,wCACA,CAAC,CAAE,WAAAC,EAAY,gBAAAC,CAAgB,IAAM,CAEnC,MAAMH,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAKE,CAAU,EACtC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EAGKD,EAAS,IAAI,+BAA6B,CAC9C,QAAS,QACT,qBAAsB,EACxB,CAAC,EAAE,cAAcD,CAAQ,EAGzB,UAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,EACjD,OAAQA,EAAuC,MAAM,OAAO,EAAE,KAC5DE,CACF,CACF,CACF,CACF,CAAC,CACH,CAAC",
6
+ "names": ["import_device_management_kit", "import_InitRestoreAppStorageCommand", "name", "expectedApdu", "apdu", "response", "result", "statusCode", "expectedMessage"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var a=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var E=(t,e)=>{for(var n in e)a(t,n,{get:e[n],enumerable:!0})},c=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of i(e))!l.call(t,o)&&o!==n&&a(t,o,{get:()=>e[o],enumerable:!(s=p(e,o))||s.enumerable});return t};var g=t=>c(a({},"__esModule",{value:!0}),t);var A={};E(A,{MASTER_CONSENT_SUPPORTED_DEVICE_MODEL_IDS:()=>u,REQUEST_MASTER_CONSENT_ERRORS:()=>d,RequestMasterConsentCommand:()=>b,RequestMasterConsentCommandError:()=>C,isMasterConsentSupported:()=>R});module.exports=g(A);var r=require("@ledgerhq/device-management-kit");const u=new Set([r.DeviceModelId.STAX,r.DeviceModelId.FLEX,r.DeviceModelId.APEX]);function R(t){return u.has(t)}const d={5501:{message:"Consent failed"},5502:{message:"PIN not validated"}},m=(t,e)=>{if(!Number.isInteger(e)||e<0||e>255)throw new r.InvalidArgumentError(`${t} must be an integer between 0 and 255`)};class C extends r.DeviceExchangeError{constructor(e){super({tag:"RequestMasterConsentCommandError",...e})}}class b{name="RequestMasterConsent";args;header={cla:224,ins:111,p1:0,p2:0};constructor(e){m("appNumber",e.appNumber),m("appStorageNumber",e.appStorageNumber),this.args=e}getApdu(){const e={cla:this.header.cla,ins:this.header.ins,p1:this.header.p1,p2:this.header.p2};return new r.ApduBuilder(e).add8BitUIntToData(this.args.languagePackConsentEnabled?0:1).add8BitUIntToData(this.args.lockScreenPictureConsentEnabled?0:1).add8BitUIntToData(this.args.appNumber).add8BitUIntToData(this.args.appStorageNumber).build()}parseResponse(e){const n=new r.ApduParser(e);if(!r.CommandUtils.isSuccessResponse(e)){const s=n.encodeToHexaString(e.statusCode);return(0,r.isCommandErrorCode)(s,d)?(0,r.CommandResultFactory)({error:new C({...d[s],errorCode:s})}):(0,r.CommandResultFactory)({error:r.GlobalCommandErrorHandler.handle(e)})}return(0,r.CommandResultFactory)({data:void 0})}}0&&(module.exports={MASTER_CONSENT_SUPPORTED_DEVICE_MODEL_IDS,REQUEST_MASTER_CONSENT_ERRORS,RequestMasterConsentCommand,RequestMasterConsentCommandError,isMasterConsentSupported});
2
+ //# sourceMappingURL=RequestMasterConsentCommand.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/api/command/OsUpdate/Restore/RequestMasterConsentCommand.ts"],
4
+ "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandErrorArgs,\n type CommandErrors,\n type CommandResult,\n CommandResultFactory,\n CommandUtils,\n DeviceExchangeError,\n DeviceModelId,\n GlobalCommandErrorHandler,\n InvalidArgumentError,\n isCommandErrorCode,\n} from \"@ledgerhq/device-management-kit\";\n\nexport const MASTER_CONSENT_SUPPORTED_DEVICE_MODEL_IDS: Set<DeviceModelId> =\n new Set([DeviceModelId.STAX, DeviceModelId.FLEX, DeviceModelId.APEX]);\n\nexport function isMasterConsentSupported(\n deviceModelId: DeviceModelId,\n): boolean {\n return MASTER_CONSENT_SUPPORTED_DEVICE_MODEL_IDS.has(deviceModelId);\n}\n\nexport type RequestMasterConsentCommandArgs = {\n languagePackConsentEnabled: boolean;\n lockScreenPictureConsentEnabled: boolean;\n appNumber: number;\n appStorageNumber: number;\n};\nexport type RequestMasterConsentCommandErrorCodes = \"5501\" | \"5502\";\n\nexport type RequestMasterConsentCommandResult = CommandResult<\n void,\n RequestMasterConsentCommandErrorCodes\n>;\nexport const REQUEST_MASTER_CONSENT_ERRORS: CommandErrors<RequestMasterConsentCommandErrorCodes> =\n {\n \"5501\": { message: \"Consent failed\" },\n \"5502\": { message: \"PIN not validated\" },\n };\n\nconst assert8BitUInt = (name: string, value: number) => {\n if (!Number.isInteger(value) || value < 0x00 || value > 0xff) {\n throw new InvalidArgumentError(\n `${name} must be an integer between 0 and 255`,\n );\n }\n};\n\nexport class RequestMasterConsentCommandError extends DeviceExchangeError<RequestMasterConsentCommandErrorCodes> {\n constructor(args: CommandErrorArgs<RequestMasterConsentCommandErrorCodes>) {\n super({ tag: \"RequestMasterConsentCommandError\", ...args });\n }\n}\n\nexport class RequestMasterConsentCommand\n implements\n Command<\n void,\n RequestMasterConsentCommandArgs,\n RequestMasterConsentCommandErrorCodes\n >\n{\n readonly name = \"RequestMasterConsent\";\n\n readonly args: RequestMasterConsentCommandArgs;\n\n private readonly header = {\n cla: 0xe0,\n ins: 0x6f,\n p1: 0x00,\n p2: 0x00,\n };\n\n constructor(args: RequestMasterConsentCommandArgs) {\n assert8BitUInt(\"appNumber\", args.appNumber);\n assert8BitUInt(\"appStorageNumber\", args.appStorageNumber);\n this.args = args;\n }\n\n getApdu(): Apdu {\n const apduArgs: ApduBuilderArgs = {\n cla: this.header.cla,\n ins: this.header.ins,\n p1: this.header.p1,\n p2: this.header.p2,\n };\n return new ApduBuilder(apduArgs)\n .add8BitUIntToData(this.args.languagePackConsentEnabled ? 0x00 : 0x01)\n .add8BitUIntToData(\n this.args.lockScreenPictureConsentEnabled ? 0x00 : 0x01,\n )\n .add8BitUIntToData(this.args.appNumber)\n .add8BitUIntToData(this.args.appStorageNumber)\n .build();\n }\n\n parseResponse(apduResponse: ApduResponse): RequestMasterConsentCommandResult {\n const parser = new ApduParser(apduResponse);\n if (!CommandUtils.isSuccessResponse(apduResponse)) {\n const errorCode = parser.encodeToHexaString(apduResponse.statusCode);\n if (isCommandErrorCode(errorCode, REQUEST_MASTER_CONSENT_ERRORS)) {\n return CommandResultFactory({\n error: new RequestMasterConsentCommandError({\n ...REQUEST_MASTER_CONSENT_ERRORS[errorCode],\n errorCode,\n }),\n });\n }\n return CommandResultFactory({\n error: GlobalCommandErrorHandler.handle(apduResponse),\n });\n }\n\n return CommandResultFactory({\n data: undefined,\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,+CAAAE,EAAA,kCAAAC,EAAA,gCAAAC,EAAA,qCAAAC,EAAA,6BAAAC,IAAA,eAAAC,EAAAP,GAAA,IAAAQ,EAiBO,2CAEA,MAAMN,EACX,IAAI,IAAI,CAAC,gBAAc,KAAM,gBAAc,KAAM,gBAAc,IAAI,CAAC,EAE/D,SAASI,EACdG,EACS,CACT,OAAOP,EAA0C,IAAIO,CAAa,CACpE,CAcO,MAAMN,EACX,CACE,KAAQ,CAAE,QAAS,gBAAiB,EACpC,KAAQ,CAAE,QAAS,mBAAoB,CACzC,EAEIO,EAAiB,CAACC,EAAcC,IAAkB,CACtD,GAAI,CAAC,OAAO,UAAUA,CAAK,GAAKA,EAAQ,GAAQA,EAAQ,IACtD,MAAM,IAAI,uBACR,GAAGD,CAAI,uCACT,CAEJ,EAEO,MAAMN,UAAyC,qBAA2D,CAC/G,YAAYQ,EAA+D,CACzE,MAAM,CAAE,IAAK,mCAAoC,GAAGA,CAAK,CAAC,CAC5D,CACF,CAEO,MAAMT,CAOb,CACW,KAAO,uBAEP,KAEQ,OAAS,CACxB,IAAK,IACL,IAAK,IACL,GAAI,EACJ,GAAI,CACN,EAEA,YAAYS,EAAuC,CACjDH,EAAe,YAAaG,EAAK,SAAS,EAC1CH,EAAe,mBAAoBG,EAAK,gBAAgB,EACxD,KAAK,KAAOA,CACd,CAEA,SAAgB,CACd,MAAMC,EAA4B,CAChC,IAAK,KAAK,OAAO,IACjB,IAAK,KAAK,OAAO,IACjB,GAAI,KAAK,OAAO,GAChB,GAAI,KAAK,OAAO,EAClB,EACA,OAAO,IAAI,cAAYA,CAAQ,EAC5B,kBAAkB,KAAK,KAAK,2BAA6B,EAAO,CAAI,EACpE,kBACC,KAAK,KAAK,gCAAkC,EAAO,CACrD,EACC,kBAAkB,KAAK,KAAK,SAAS,EACrC,kBAAkB,KAAK,KAAK,gBAAgB,EAC5C,MAAM,CACX,CAEA,cAAcC,EAA+D,CAC3E,MAAMC,EAAS,IAAI,aAAWD,CAAY,EAC1C,GAAI,CAAC,eAAa,kBAAkBA,CAAY,EAAG,CACjD,MAAME,EAAYD,EAAO,mBAAmBD,EAAa,UAAU,EACnE,SAAI,sBAAmBE,EAAWd,CAA6B,KACtD,wBAAqB,CAC1B,MAAO,IAAIE,EAAiC,CAC1C,GAAGF,EAA8Bc,CAAS,EAC1C,UAAAA,CACF,CAAC,CACH,CAAC,KAEI,wBAAqB,CAC1B,MAAO,4BAA0B,OAAOF,CAAY,CACtD,CAAC,CACH,CAEA,SAAO,wBAAqB,CAC1B,KAAM,MACR,CAAC,CACH,CACF",
6
+ "names": ["RequestMasterConsentCommand_exports", "__export", "MASTER_CONSENT_SUPPORTED_DEVICE_MODEL_IDS", "REQUEST_MASTER_CONSENT_ERRORS", "RequestMasterConsentCommand", "RequestMasterConsentCommandError", "isMasterConsentSupported", "__toCommonJS", "import_device_management_kit", "deviceModelId", "assert8BitUInt", "name", "value", "args", "apduArgs", "apduResponse", "parser", "errorCode"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("@ledgerhq/device-management-kit"),t=require("./RequestMasterConsentCommand");describe("RequestMasterConsentCommand",()=>{describe("Name",()=>{it("name should be 'RequestMasterConsent'",()=>{const r=new t.RequestMasterConsentCommand({languagePackConsentEnabled:!0,lockScreenPictureConsentEnabled:!0,appNumber:1,appStorageNumber:1});expect(r.name).toBe("RequestMasterConsent")})}),describe("Command",()=>{it("should return the correct APDU for requesting master consent",()=>{const r=new t.RequestMasterConsentCommand({languagePackConsentEnabled:!0,lockScreenPictureConsentEnabled:!0,appNumber:1,appStorageNumber:1}),n=Uint8Array.from([224,111,0,0,4,0,0,1,1]),a=r.getApdu();expect(a.getRawApdu()).toEqual(n)}),it.each([{field:"appNumber",args:{appNumber:-1,appStorageNumber:1}},{field:"appNumber",args:{appNumber:256,appStorageNumber:1}},{field:"appNumber",args:{appNumber:1.5,appStorageNumber:1}},{field:"appStorageNumber",args:{appNumber:1,appStorageNumber:-1}},{field:"appStorageNumber",args:{appNumber:1,appStorageNumber:256}},{field:"appStorageNumber",args:{appNumber:1,appStorageNumber:1.5}}])("should throw when $field is not an 8-bit unsigned integer",({field:r,args:n})=>{const a=`${r} must be an integer between 0 and 255`;let o;try{new t.RequestMasterConsentCommand({languagePackConsentEnabled:!0,lockScreenPictureConsentEnabled:!0,...n})}catch(s){o=s}expect(o).toBeInstanceOf(e.InvalidArgumentError),expect(o.originalError.message).toBe(a)}),it.each([e.DeviceModelId.STAX,e.DeviceModelId.FLEX,e.DeviceModelId.APEX])("should return true for %s",r=>{expect((0,t.isMasterConsentSupported)(r)).toBe(!0)}),it.each([e.DeviceModelId.NANO_X,e.DeviceModelId.NANO_SP])("should return false for %s",r=>{expect((0,t.isMasterConsentSupported)(r)).toBe(!1)})}),describe("Success response",()=>{it("should return the correct response",()=>{const r=new t.RequestMasterConsentCommand({languagePackConsentEnabled:!0,lockScreenPictureConsentEnabled:!0,appNumber:1,appStorageNumber:1}),n={data:void 0,status:"SUCCESS"},a=r.parseResponse(new e.ApduResponse({statusCode:Uint8Array.from([144,0]),data:Uint8Array.from([])}));expect((0,e.isSuccessCommandResult)(a)).toBe(!0),expect(a).toEqual(n)})}),describe("Error response",()=>{it("should return a RequestMasterConsentCommandError for status 0x5501",()=>{const r=new t.RequestMasterConsentCommand({languagePackConsentEnabled:!0,lockScreenPictureConsentEnabled:!0,appNumber:1,appStorageNumber:1}),n=(0,e.CommandResultFactory)({error:new t.RequestMasterConsentCommandError({message:"Consent failed",errorCode:"5501"})}),a=r.parseResponse(new e.ApduResponse({statusCode:Uint8Array.from([85,1]),data:Uint8Array.from([])}));expect(a).toEqual(n)}),it("should return a RequestMasterConsentCommandError for status 0x5502",()=>{const r=new t.RequestMasterConsentCommand({languagePackConsentEnabled:!0,lockScreenPictureConsentEnabled:!0,appNumber:1,appStorageNumber:1}),n=(0,e.CommandResultFactory)({error:new t.RequestMasterConsentCommandError({message:"PIN not validated",errorCode:"5502"})}),a=r.parseResponse(new e.ApduResponse({statusCode:Uint8Array.from([85,2]),data:Uint8Array.from([])}));expect(a).toEqual(n)})})});
2
+ //# sourceMappingURL=RequestMasterConsentCommand.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/api/command/OsUpdate/Restore/RequestMasterConsentCommand.test.ts"],
4
+ "sourcesContent": ["import {\n ApduResponse,\n CommandResultFactory,\n DeviceModelId,\n InvalidArgumentError,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport {\n isMasterConsentSupported,\n RequestMasterConsentCommand,\n RequestMasterConsentCommandError,\n} from \"./RequestMasterConsentCommand\";\n\ndescribe(\"RequestMasterConsentCommand\", () => {\n describe(\"Name\", () => {\n it(\"name should be 'RequestMasterConsent'\", () => {\n // ACT\n const command = new RequestMasterConsentCommand({\n languagePackConsentEnabled: true,\n lockScreenPictureConsentEnabled: true,\n appNumber: 1,\n appStorageNumber: 1,\n });\n\n // ASSERT\n expect(command.name).toBe(\"RequestMasterConsent\");\n });\n });\n\n describe(\"Command\", () => {\n it(\"should return the correct APDU for requesting master consent\", () => {\n // ARRANGE\n const command = new RequestMasterConsentCommand({\n languagePackConsentEnabled: true,\n lockScreenPictureConsentEnabled: true,\n appNumber: 1,\n appStorageNumber: 1,\n });\n const expectedApdu = Uint8Array.from([\n 0xe0, 0x6f, 0x00, 0x00, 0x04, 0x00, 0x00, 0x01, 0x01,\n ]);\n\n // ACT\n const apdu = command.getApdu();\n\n // ASSERT\n expect(apdu.getRawApdu()).toEqual(expectedApdu);\n });\n\n it.each([\n {\n field: \"appNumber\",\n args: { appNumber: -1, appStorageNumber: 1 },\n },\n {\n field: \"appNumber\",\n args: { appNumber: 256, appStorageNumber: 1 },\n },\n {\n field: \"appNumber\",\n args: { appNumber: 1.5, appStorageNumber: 1 },\n },\n {\n field: \"appStorageNumber\",\n args: { appNumber: 1, appStorageNumber: -1 },\n },\n {\n field: \"appStorageNumber\",\n args: { appNumber: 1, appStorageNumber: 256 },\n },\n {\n field: \"appStorageNumber\",\n args: { appNumber: 1, appStorageNumber: 1.5 },\n },\n ])(\n \"should throw when $field is not an 8-bit unsigned integer\",\n ({ field, args }) => {\n const expectedErrorMessage = `${field} must be an integer between 0 and 255`;\n\n // ACT\n let caughtError: unknown;\n try {\n new RequestMasterConsentCommand({\n languagePackConsentEnabled: true,\n lockScreenPictureConsentEnabled: true,\n ...args,\n });\n } catch (error) {\n caughtError = error;\n }\n\n // ASSERT\n expect(caughtError).toBeInstanceOf(InvalidArgumentError);\n expect(\n (caughtError as InvalidArgumentError).originalError.message,\n ).toBe(expectedErrorMessage);\n },\n );\n\n it.each([DeviceModelId.STAX, DeviceModelId.FLEX, DeviceModelId.APEX])(\n \"should return true for %s\",\n (deviceModelId) => {\n expect(isMasterConsentSupported(deviceModelId)).toBe(true);\n },\n );\n\n it.each([DeviceModelId.NANO_X, DeviceModelId.NANO_SP])(\n \"should return false for %s\",\n (deviceModelId) => {\n expect(isMasterConsentSupported(deviceModelId)).toBe(false);\n },\n );\n });\n\n describe(\"Success response\", () => {\n it(\"should return the correct response\", () => {\n // ARRANGE\n const command = new RequestMasterConsentCommand({\n languagePackConsentEnabled: true,\n lockScreenPictureConsentEnabled: true,\n appNumber: 1,\n appStorageNumber: 1,\n });\n const expectedResult = {\n data: undefined,\n status: \"SUCCESS\",\n };\n\n // ACT\n const result = command.parseResponse(\n new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: Uint8Array.from([]),\n }),\n );\n // ASSERT\n expect(isSuccessCommandResult(result)).toBe(true);\n expect(result).toEqual(expectedResult);\n });\n });\n\n describe(\"Error response\", () => {\n it(\"should return a RequestMasterConsentCommandError for status 0x5501\", () => {\n // ARRANGE\n const command = new RequestMasterConsentCommand({\n languagePackConsentEnabled: true,\n lockScreenPictureConsentEnabled: true,\n appNumber: 1,\n appStorageNumber: 1,\n });\n const expectedResult = CommandResultFactory({\n error: new RequestMasterConsentCommandError({\n message: \"Consent failed\",\n errorCode: \"5501\",\n }),\n });\n\n // ACT\n const commandResult = command.parseResponse(\n new ApduResponse({\n statusCode: Uint8Array.from([0x55, 0x01]),\n data: Uint8Array.from([]),\n }),\n );\n\n // ASSERT\n expect(commandResult).toEqual(expectedResult);\n });\n\n it(\"should return a RequestMasterConsentCommandError for status 0x5502\", () => {\n // ARRANGE\n const command = new RequestMasterConsentCommand({\n languagePackConsentEnabled: true,\n lockScreenPictureConsentEnabled: true,\n appNumber: 1,\n appStorageNumber: 1,\n });\n const expectedResult = CommandResultFactory({\n error: new RequestMasterConsentCommandError({\n message: \"PIN not validated\",\n errorCode: \"5502\",\n }),\n });\n\n // ACT\n const commandResult = command.parseResponse(\n new ApduResponse({\n statusCode: Uint8Array.from([0x55, 0x02]),\n data: Uint8Array.from([]),\n }),\n );\n\n // ASSERT\n expect(commandResult).toEqual(expectedResult);\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_device_management_kit", "import_RequestMasterConsentCommand", "command", "expectedApdu", "apdu", "field", "args", "expectedErrorMessage", "caughtError", "error", "deviceModelId", "expectedResult", "result", "commandResult"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var d=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var i=(o,e)=>{for(var a in e)d(o,a,{get:e[a],enumerable:!0})},l=(o,e,a,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of g(e))!C.call(o,s)&&s!==a&&d(o,s,{get:()=>e[s],enumerable:!(t=p(e,s))||t.enumerable});return o};var A=o=>l(d({},"__esModule",{value:!0}),o);var R={};i(R,{RESTORE_APP_STORAGE_ERRORS:()=>n,RestoreAppStorageCommand:()=>u,RestoreAppStorageCommandError:()=>m});module.exports=A(R);var r=require("@ledgerhq/device-management-kit");const n={5123:{message:"Invalid context, Restore Init must be called first."},5419:{message:"Failed to generate AES key."},"541a":{message:"Failed to decrypt the app storage backup."},"662f":{message:"Invalid device state, recovery mode."},6643:{message:"Invalid restore state, restore already performed."},6734:{message:"Invalid chunk length."},"684a":{message:"Invalid backup, app storage header is not valid."}};class m extends r.DeviceExchangeError{constructor(e){super({tag:"RestoreAppStorageCommandError",...e})}}class u{constructor(e){this.args=e}name="RestoreAppStorage";header={cla:224,ins:109,p1:0,p2:0};getApdu(){const{chunkData:e}=this.args;return new r.ApduBuilder(this.header).addBufferToData(e).build()}parseResponse(e){const a=new r.ApduParser(e);if(!r.CommandUtils.isSuccessResponse(e)){const t=a.encodeToHexaString(e.statusCode);return(0,r.isCommandErrorCode)(t,n)?(0,r.CommandResultFactory)({error:new m({...n[t],errorCode:t})}):(0,r.CommandResultFactory)({error:r.GlobalCommandErrorHandler.handle(e)})}return(0,r.CommandResultFactory)({data:void 0})}}0&&(module.exports={RESTORE_APP_STORAGE_ERRORS,RestoreAppStorageCommand,RestoreAppStorageCommandError});
2
+ //# sourceMappingURL=RestoreAppStorageCommand.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/api/command/OsUpdate/Restore/RestoreAppStorageCommand.ts"],
4
+ "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandErrorArgs,\n type CommandErrors,\n type CommandResult,\n CommandResultFactory,\n CommandUtils,\n DeviceExchangeError,\n GlobalCommandErrorHandler,\n isCommandErrorCode,\n} from \"@ledgerhq/device-management-kit\";\n\nexport type RestoreAppStorageCommandArgs = {\n chunkData: Uint8Array;\n};\n\nexport type RestoreAppStorageCommandErrorCodes =\n | \"5123\"\n | \"5419\"\n | \"541a\"\n | \"662f\"\n | \"6643\"\n | \"6734\"\n | \"684a\";\n\nexport const RESTORE_APP_STORAGE_ERRORS: CommandErrors<RestoreAppStorageCommandErrorCodes> =\n {\n \"5123\": { message: \"Invalid context, Restore Init must be called first.\" },\n \"5419\": { message: \"Failed to generate AES key.\" },\n \"541a\": { message: \"Failed to decrypt the app storage backup.\" },\n \"662f\": { message: \"Invalid device state, recovery mode.\" },\n \"6643\": { message: \"Invalid restore state, restore already performed.\" },\n \"6734\": { message: \"Invalid chunk length.\" },\n \"684a\": { message: \"Invalid backup, app storage header is not valid.\" },\n };\n\nexport class RestoreAppStorageCommandError extends DeviceExchangeError<RestoreAppStorageCommandErrorCodes> {\n constructor(args: CommandErrorArgs<RestoreAppStorageCommandErrorCodes>) {\n super({ tag: \"RestoreAppStorageCommandError\", ...args });\n }\n}\n\nexport type RestoreAppStorageCommandResult = CommandResult<\n void,\n RestoreAppStorageCommandErrorCodes\n>;\n\nexport class RestoreAppStorageCommand\n implements\n Command<\n void,\n RestoreAppStorageCommandArgs,\n RestoreAppStorageCommandErrorCodes\n >\n{\n readonly name = \"RestoreAppStorage\";\n\n private readonly header = {\n cla: 0xe0,\n ins: 0x6d,\n p1: 0x00,\n p2: 0x00,\n };\n\n constructor(private readonly args: RestoreAppStorageCommandArgs) {}\n\n getApdu(): Apdu {\n const { chunkData } = this.args;\n return new ApduBuilder(this.header).addBufferToData(chunkData).build();\n }\n\n parseResponse(apduResponse: ApduResponse): RestoreAppStorageCommandResult {\n const parser = new ApduParser(apduResponse);\n if (!CommandUtils.isSuccessResponse(apduResponse)) {\n const errorCode = parser.encodeToHexaString(apduResponse.statusCode);\n if (isCommandErrorCode(errorCode, RESTORE_APP_STORAGE_ERRORS)) {\n return CommandResultFactory({\n error: new RestoreAppStorageCommandError({\n ...RESTORE_APP_STORAGE_ERRORS[errorCode],\n errorCode,\n }),\n });\n }\n return CommandResultFactory({\n error: GlobalCommandErrorHandler.handle(apduResponse),\n });\n }\n\n return CommandResultFactory({\n data: undefined,\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,EAAA,6BAAAC,EAAA,kCAAAC,IAAA,eAAAC,EAAAL,GAAA,IAAAM,EAcO,2CAeA,MAAMJ,EACX,CACE,KAAQ,CAAE,QAAS,qDAAsD,EACzE,KAAQ,CAAE,QAAS,6BAA8B,EACjD,OAAQ,CAAE,QAAS,2CAA4C,EAC/D,OAAQ,CAAE,QAAS,sCAAuC,EAC1D,KAAQ,CAAE,QAAS,mDAAoD,EACvE,KAAQ,CAAE,QAAS,uBAAwB,EAC3C,OAAQ,CAAE,QAAS,kDAAmD,CACxE,EAEK,MAAME,UAAsC,qBAAwD,CACzG,YAAYG,EAA4D,CACtE,MAAM,CAAE,IAAK,gCAAiC,GAAGA,CAAK,CAAC,CACzD,CACF,CAOO,MAAMJ,CAOb,CAUE,YAA6BI,EAAoC,CAApC,UAAAA,CAAqC,CATzD,KAAO,oBAEC,OAAS,CACxB,IAAK,IACL,IAAK,IACL,GAAI,EACJ,GAAI,CACN,EAIA,SAAgB,CACd,KAAM,CAAE,UAAAC,CAAU,EAAI,KAAK,KAC3B,OAAO,IAAI,cAAY,KAAK,MAAM,EAAE,gBAAgBA,CAAS,EAAE,MAAM,CACvE,CAEA,cAAcC,EAA4D,CACxE,MAAMC,EAAS,IAAI,aAAWD,CAAY,EAC1C,GAAI,CAAC,eAAa,kBAAkBA,CAAY,EAAG,CACjD,MAAME,EAAYD,EAAO,mBAAmBD,EAAa,UAAU,EACnE,SAAI,sBAAmBE,EAAWT,CAA0B,KACnD,wBAAqB,CAC1B,MAAO,IAAIE,EAA8B,CACvC,GAAGF,EAA2BS,CAAS,EACvC,UAAAA,CACF,CAAC,CACH,CAAC,KAEI,wBAAqB,CAC1B,MAAO,4BAA0B,OAAOF,CAAY,CACtD,CAAC,CACH,CAEA,SAAO,wBAAqB,CAC1B,KAAM,MACR,CAAC,CACH,CACF",
6
+ "names": ["RestoreAppStorageCommand_exports", "__export", "RESTORE_APP_STORAGE_ERRORS", "RestoreAppStorageCommand", "RestoreAppStorageCommandError", "__toCommonJS", "import_device_management_kit", "args", "chunkData", "apduResponse", "parser", "errorCode"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var r=require("@ledgerhq/device-management-kit"),s=require("./RestoreAppStorageCommand");describe("RestoreAppStorageCommand",()=>{describe("Name",()=>{it("name should be 'RestoreAppStorage'",()=>{const e=new s.RestoreAppStorageCommand({chunkData:Uint8Array.from([1,2,3])}).name;expect(e).toBe("RestoreAppStorage")})}),describe("Command",()=>{it("should return the correct APDU for restoring an app storage chunk",()=>{const t=Uint8Array.from([224,109,0,0,3,1,2,3]),e=new s.RestoreAppStorageCommand({chunkData:Uint8Array.from([1,2,3])}).getApdu();expect(e.getRawApdu()).toEqual(t)})}),describe("Success response",()=>{it("should return a success result",()=>{const t=new r.ApduResponse({statusCode:Uint8Array.from([144,0]),data:new Uint8Array([])}),e=new s.RestoreAppStorageCommand({chunkData:Uint8Array.from([1,2,3])}).parseResponse(t);expect((0,r.isSuccessCommandResult)(e)).toBe(!0),expect(e).toEqual({data:void 0,status:"SUCCESS"})})}),describe("Error response",()=>{it.each([{description:"restore init has not been called",statusCode:[81,35],expectedMessage:"Invalid context, Restore Init must be called first."},{description:"AES key generation failed",statusCode:[84,25],expectedMessage:"Failed to generate AES key."},{description:"decryption failed",statusCode:[84,26],expectedMessage:"Failed to decrypt the app storage backup."},{description:"device is in recovery mode",statusCode:[102,47],expectedMessage:"Invalid device state, recovery mode."},{description:"restore has already been performed",statusCode:[102,67],expectedMessage:"Invalid restore state, restore already performed."},{description:"chunk length is invalid",statusCode:[103,52],expectedMessage:"Invalid chunk length."},{description:"app storage header is invalid",statusCode:[104,74],expectedMessage:"Invalid backup, app storage header is not valid."},{description:"error code is not specific to RestoreAppStorageCommand (global error)",statusCode:[85,21],expectedMessage:"Device is locked."}])("should return error when $description",({statusCode:t,expectedMessage:e})=>{const o=new r.ApduResponse({statusCode:Uint8Array.from(t),data:new Uint8Array([])}),a=new s.RestoreAppStorageCommand({chunkData:Uint8Array.from([1,2,3])}).parseResponse(o);expect((0,r.isSuccessCommandResult)(a)).toBe(!1),expect(a.error.message).toBe(e)})})});
2
+ //# sourceMappingURL=RestoreAppStorageCommand.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/api/command/OsUpdate/Restore/RestoreAppStorageCommand.test.ts"],
4
+ "sourcesContent": ["import {\n ApduResponse,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { RestoreAppStorageCommand } from \"./RestoreAppStorageCommand\";\n\ndescribe(\"RestoreAppStorageCommand\", () => {\n describe(\"Name\", () => {\n it(\"name should be 'RestoreAppStorage'\", () => {\n // ARRANGE\n const command = new RestoreAppStorageCommand({\n chunkData: Uint8Array.from([0x01, 0x02, 0x03]),\n });\n\n // ACT\n const name = command.name;\n\n // ASSERT\n expect(name).toBe(\"RestoreAppStorage\");\n });\n });\n\n describe(\"Command\", () => {\n it(\"should return the correct APDU for restoring an app storage chunk\", () => {\n // ARRANGE\n const expectedApdu = Uint8Array.from([\n 0xe0, 0x6d, 0x00, 0x00, 0x03, 0x01, 0x02, 0x03,\n ]);\n\n // ACT\n const apdu = new RestoreAppStorageCommand({\n chunkData: Uint8Array.from([0x01, 0x02, 0x03]),\n }).getApdu();\n\n // ASSERT\n expect(apdu.getRawApdu()).toEqual(expectedApdu);\n });\n });\n\n describe(\"Success response\", () => {\n it(\"should return a success result\", () => {\n // ARRANGE\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array([]),\n });\n\n // ACT\n const result = new RestoreAppStorageCommand({\n chunkData: Uint8Array.from([0x01, 0x02, 0x03]),\n }).parseResponse(response);\n\n // ASSERT\n expect(isSuccessCommandResult(result)).toBe(true);\n expect(result).toEqual({\n data: undefined,\n status: \"SUCCESS\",\n });\n });\n });\n\n describe(\"Error response\", () => {\n it.each([\n {\n description: \"restore init has not been called\",\n statusCode: [0x51, 0x23],\n expectedMessage: \"Invalid context, Restore Init must be called first.\",\n },\n {\n description: \"AES key generation failed\",\n statusCode: [0x54, 0x19],\n expectedMessage: \"Failed to generate AES key.\",\n },\n {\n description: \"decryption failed\",\n statusCode: [0x54, 0x1a],\n expectedMessage: \"Failed to decrypt the app storage backup.\",\n },\n {\n description: \"device is in recovery mode\",\n statusCode: [0x66, 0x2f],\n expectedMessage: \"Invalid device state, recovery mode.\",\n },\n {\n description: \"restore has already been performed\",\n statusCode: [0x66, 0x43],\n expectedMessage: \"Invalid restore state, restore already performed.\",\n },\n {\n description: \"chunk length is invalid\",\n statusCode: [0x67, 0x34],\n expectedMessage: \"Invalid chunk length.\",\n },\n {\n description: \"app storage header is invalid\",\n statusCode: [0x68, 0x4a],\n expectedMessage: \"Invalid backup, app storage header is not valid.\",\n },\n {\n description:\n \"error code is not specific to RestoreAppStorageCommand (global error)\",\n statusCode: [0x55, 0x15],\n expectedMessage: \"Device is locked.\",\n },\n ])(\n \"should return error when $description\",\n ({ statusCode, expectedMessage }) => {\n // ARRANGE\n const response = new ApduResponse({\n statusCode: Uint8Array.from(statusCode),\n data: new Uint8Array([]),\n });\n\n // ACT\n const result = new RestoreAppStorageCommand({\n chunkData: Uint8Array.from([0x01, 0x02, 0x03]),\n }).parseResponse(response);\n\n // ASSERT\n expect(isSuccessCommandResult(result)).toBe(false);\n expect((result as unknown as { error: Error }).error.message).toBe(\n expectedMessage,\n );\n },\n );\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAGO,2CAEPC,EAAyC,sCAEzC,SAAS,2BAA4B,IAAM,CACzC,SAAS,OAAQ,IAAM,CACrB,GAAG,qCAAsC,IAAM,CAO7C,MAAMC,EALU,IAAI,2BAAyB,CAC3C,UAAW,WAAW,KAAK,CAAC,EAAM,EAAM,CAAI,CAAC,CAC/C,CAAC,EAGoB,KAGrB,OAAOA,CAAI,EAAE,KAAK,mBAAmB,CACvC,CAAC,CACH,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,GAAG,oEAAqE,IAAM,CAE5E,MAAMC,EAAe,WAAW,KAAK,CACnC,IAAM,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,CAC5C,CAAC,EAGKC,EAAO,IAAI,2BAAyB,CACxC,UAAW,WAAW,KAAK,CAAC,EAAM,EAAM,CAAI,CAAC,CAC/C,CAAC,EAAE,QAAQ,EAGX,OAAOA,EAAK,WAAW,CAAC,EAAE,QAAQD,CAAY,CAChD,CAAC,CACH,CAAC,EAED,SAAS,mBAAoB,IAAM,CACjC,GAAG,iCAAkC,IAAM,CAEzC,MAAME,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EAGKC,EAAS,IAAI,2BAAyB,CAC1C,UAAW,WAAW,KAAK,CAAC,EAAM,EAAM,CAAI,CAAC,CAC/C,CAAC,EAAE,cAAcD,CAAQ,EAGzB,UAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,EAChD,OAAOA,CAAM,EAAE,QAAQ,CACrB,KAAM,OACN,OAAQ,SACV,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,iBAAkB,IAAM,CAC/B,GAAG,KAAK,CACN,CACE,YAAa,mCACb,WAAY,CAAC,GAAM,EAAI,EACvB,gBAAiB,qDACnB,EACA,CACE,YAAa,4BACb,WAAY,CAAC,GAAM,EAAI,EACvB,gBAAiB,6BACnB,EACA,CACE,YAAa,oBACb,WAAY,CAAC,GAAM,EAAI,EACvB,gBAAiB,2CACnB,EACA,CACE,YAAa,6BACb,WAAY,CAAC,IAAM,EAAI,EACvB,gBAAiB,sCACnB,EACA,CACE,YAAa,qCACb,WAAY,CAAC,IAAM,EAAI,EACvB,gBAAiB,mDACnB,EACA,CACE,YAAa,0BACb,WAAY,CAAC,IAAM,EAAI,EACvB,gBAAiB,uBACnB,EACA,CACE,YAAa,gCACb,WAAY,CAAC,IAAM,EAAI,EACvB,gBAAiB,kDACnB,EACA,CACE,YACE,wEACF,WAAY,CAAC,GAAM,EAAI,EACvB,gBAAiB,mBACnB,CACF,CAAC,EACC,wCACA,CAAC,CAAE,WAAAC,EAAY,gBAAAC,CAAgB,IAAM,CAEnC,MAAMH,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAKE,CAAU,EACtC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EAGKD,EAAS,IAAI,2BAAyB,CAC1C,UAAW,WAAW,KAAK,CAAC,EAAM,EAAM,CAAI,CAAC,CAC/C,CAAC,EAAE,cAAcD,CAAQ,EAGzB,UAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,EACjD,OAAQA,EAAuC,MAAM,OAAO,EAAE,KAC5DE,CACF,CACF,CACF,CACF,CAAC,CACH,CAAC",
6
+ "names": ["import_device_management_kit", "import_RestoreAppStorageCommand", "name", "expectedApdu", "apdu", "response", "result", "statusCode", "expectedMessage"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var c=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var I=(o,r)=>{for(var e in r)c(o,e,{get:r[e],enumerable:!0})},E=(o,r,e,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of h(r))!C.call(o,s)&&s!==e&&c(o,s,{get:()=>r[s],enumerable:!(t=A(r,s))||t.enumerable});return o};var v=o=>E(c({},"__esModule",{value:!0}),o);var V={};I(V,{CreateBackupDeviceAction:()=>f});module.exports=v(V);var i=require("@ledgerhq/device-management-kit"),u=require("purify-ts"),a=require("xstate"),p=require("../../../customLockScreenUtils/screenSpecs"),l=require("../../../device-action/OsUpdate/Backup/Substeps/BackupAppsStorage"),d=require("../../../device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen"),g=require("../../../device-action/OsUpdate/Backup/Substeps/GetIsOnboarded"),m=require("../../../device-action/OsUpdate/Backup/Substeps/GetLanguageId"),n=require("../../../device-action/OsUpdate/Backup/types"),k=require("../../../device-action/OsUpdate/Shared/Substeps/GoToDashboard"),S=require("../../../device-action/OsUpdate/Shared/Substeps/ListInstalledApps"),D=require("../../../device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion");class f extends i.XStateDeviceAction{makeStateMachine(r){return(0,a.setup)({types:{input:{},output:{},context:{}},actors:{waitForAppAndVersion:(0,D.waitForAppAndVersion)(r,this.input.unlockTimeout),goToDashboard:(0,k.goToDashboard)(r,this.input.unlockTimeout),getIsOnboarded:(0,a.fromPromise)((0,g.getIsOnboarded)(r)),getLanguageId:(0,a.fromPromise)((0,m.getLanguageId)(r)),listInstalledApps:(0,S.listInstalledApps)(r,this.input.unlockTimeout),downloadCustomLockScreen:(0,d.downloadCustomLockScreenDevice)(r,this.input.unlockTimeout,!0),backupAppsStorage:(0,a.fromPromise)((0,l.backupAppsStorage)(r,this.getLoggerFactory(r)))},guards:{isDeviceOnDashboard:({context:e})=>(0,i.isDashboardName)(e._internalState.currentApp),isDeviceOnboarded:({context:e})=>e._internalState.isDeviceOnboarded,isCustomLockScreenFeatureSupported:()=>(0,p.isCustomLockScreenSupported)(r.getDeviceModel().id),hasError:({context:e})=>e._internalState.error!==null},actions:{assignErrorFromEvent:(0,a.assign)({_internalState:e=>({...e.context._internalState,error:e.event.error})})}}).createMachine({id:"CreateBackupDeviceAction",initial:"WaitForAppAndVersion",context:({input:e})=>({input:{unlockTimeout:e.unlockTimeout},intermediateValue:{requiredUserInteraction:i.UserInteractionRequired.None,step:n.CreateBackupSteps.Idle},_internalState:{error:null,currentApp:null,isDeviceOnboarded:!1,languageId:void 0,installedApps:[],backupApps:[],clsHexImage:void 0}}),states:{WaitForAppAndVersion:{entry:(0,a.assign)({intermediateValue:e=>({...e.context.intermediateValue,step:n.CreateBackupSteps.WaitForAppAndVersion})}),invoke:{src:"waitForAppAndVersion",input:({context:e})=>({unlockTimeout:e.input.unlockTimeout}),onSnapshot:{actions:(0,a.assign)({intermediateValue:e=>({...e.event.snapshot.context.intermediateValue,step:e.context.intermediateValue.step})})},onDone:{actions:(0,a.assign)({_internalState:e=>e.event.output.caseOf({Left:t=>({...e.context._internalState,error:t}),Right:t=>({...e.context._internalState,currentApp:t.name})})}),target:"CheckIfDeviceIsOnDashboard"},onError:{actions:"assignErrorFromEvent",target:"Error"}}},CheckIfDeviceIsOnDashboard:{always:[{guard:"hasError",target:"Error"},{guard:"isDeviceOnDashboard",target:"GetIsOnboarded"},{target:"GoToDashboard"}]},GoToDashboard:{entry:(0,a.assign)({intermediateValue:e=>({...e.context.intermediateValue,step:n.CreateBackupSteps.GoToDashboard})}),invoke:{src:"goToDashboard",input:({context:e})=>({unlockTimeout:e.input.unlockTimeout}),onSnapshot:{actions:(0,a.assign)({intermediateValue:e=>({...e.event.snapshot.context.intermediateValue,step:e.context.intermediateValue.step})})},onDone:{actions:(0,a.assign)({_internalState:e=>e.event.output.caseOf({Left:t=>({...e.context._internalState,error:t}),Right:()=>e.context._internalState})}),target:"CheckGoToDashboard"},onError:{actions:"assignErrorFromEvent",target:"Error"}}},CheckGoToDashboard:{always:[{guard:"hasError",target:"Error"},{target:"WaitForAppAndVersion"}]},GetIsOnboarded:{entry:(0,a.assign)({intermediateValue:e=>({...e.context.intermediateValue,step:n.CreateBackupSteps.GetIsOnboarded})}),invoke:{src:"getIsOnboarded",onDone:{actions:(0,a.assign)({_internalState:e=>e.event.output.caseOf({Left:t=>({...e.context._internalState,error:t}),Right:t=>({...e.context._internalState,isDeviceOnboarded:t})})}),target:"CheckGetIsOnboarded"},onError:{actions:"assignErrorFromEvent",target:"Error"}}},CheckGetIsOnboarded:{always:[{guard:"hasError",target:"Error"},{target:"GetLanguage"}]},GetLanguage:{entry:(0,a.assign)({intermediateValue:e=>({...e.context.intermediateValue,step:n.CreateBackupSteps.GetLanguage})}),invoke:{src:"getLanguageId",onDone:{actions:(0,a.assign)({_internalState:e=>e.event.output.caseOf({Left:t=>({...e.context._internalState,error:t}),Right:t=>({...e.context._internalState,languageId:t})})}),target:"CheckGetLanguage"},onError:{actions:"assignErrorFromEvent",target:"Error"}}},CheckGetLanguage:{always:[{guard:"hasError",target:"Error"},{target:"CheckIfDeviceIsOnboarded"}]},CheckIfDeviceIsOnboarded:{always:[{guard:"isDeviceOnboarded",target:"ListInstalledApps"},{target:"Success"}]},ListInstalledApps:{entry:(0,a.assign)({intermediateValue:e=>({...e.context.intermediateValue,step:n.CreateBackupSteps.ListInstalledApps})}),invoke:{src:"listInstalledApps",input:({context:e})=>({unlockTimeout:e.input.unlockTimeout}),onSnapshot:{actions:(0,a.assign)({intermediateValue:e=>({...e.event.snapshot.context.intermediateValue,step:e.context.intermediateValue.step})})},onDone:{actions:(0,a.assign)({_internalState:e=>e.event.output.caseOf({Left:t=>({...e.context._internalState,error:t}),Right:t=>({...e.context._internalState,installedApps:t.installedApps.filter(s=>s.name!=="")})})}),target:"CheckListInstalledApps"},onError:{actions:"assignErrorFromEvent",target:"Error"}}},CheckListInstalledApps:{always:[{guard:"hasError",target:"Error"},{target:"BackupAppsStorage"}]},BackupAppsStorage:{entry:(0,a.assign)({intermediateValue:e=>({...e.context.intermediateValue,step:n.CreateBackupSteps.BackupAppsStorage})}),invoke:{src:"backupAppsStorage",input:({context:e})=>({installedApps:e._internalState.installedApps}),onDone:{actions:(0,a.assign)({_internalState:e=>e.event.output.caseOf({Left:t=>({...e.context._internalState,error:t}),Right:t=>({...e.context._internalState,backupApps:t})})}),target:"CheckBackupAppsStorage"},onError:{actions:"assignErrorFromEvent",target:"Error"}}},CheckBackupAppsStorage:{always:[{guard:"hasError",target:"Error"},{target:"CheckIfDeviceSupportCustomLockScreenFeature"}]},CheckIfDeviceSupportCustomLockScreenFeature:{always:[{guard:"isCustomLockScreenFeatureSupported",target:"DownloadCustomLockScreen"},{target:"Success"}]},DownloadCustomLockScreen:{entry:(0,a.assign)({intermediateValue:e=>({...e.context.intermediateValue,step:n.CreateBackupSteps.DownloadCustomLockScreen})}),invoke:{src:"downloadCustomLockScreen",input:({context:e})=>({unlockTimeout:e.input.unlockTimeout,allowedEmpty:!0}),onSnapshot:{actions:(0,a.assign)({intermediateValue:e=>({...e.event.snapshot.context.intermediateValue,step:e.context.intermediateValue.step})})},onDone:{actions:(0,a.assign)({_internalState:e=>e.event.output.caseOf({Left:t=>({...e.context._internalState,error:t}),Right:t=>({...e.context._internalState,clsHexImage:"imageData"in t&&t.imageData.length>0?(0,i.bufferToHexaString)(t.imageData,!0):void 0})})}),target:"CheckDownloadCustomLockScreen"},onError:{actions:"assignErrorFromEvent",target:"Error"}}},CheckDownloadCustomLockScreen:{always:[{guard:"hasError",target:"Error"},{target:"Success"}]},Success:{type:"final"},Error:{type:"final"}},output:({context:e})=>e._internalState.error!==null?(0,u.Left)(e._internalState.error):(0,u.Right)({languageId:e._internalState.languageId,installedApps:e._internalState.backupApps,clsHexImage:e._internalState.clsHexImage,createdAt:new Date})})}}0&&(module.exports={CreateBackupDeviceAction});
2
+ //# sourceMappingURL=CreateBackupDeviceAction.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.ts"],
4
+ "sourcesContent": ["import {\n bufferToHexaString,\n type DeviceActionStateMachine,\n type InternalApi,\n isDashboardName,\n type StateMachineTypes,\n UserInteractionRequired,\n XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport { isCustomLockScreenSupported } from \"@api/customLockScreenUtils/screenSpecs\";\nimport { backupAppsStorage } from \"@api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage\";\nimport { downloadCustomLockScreenDevice } from \"@api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen\";\nimport { getIsOnboarded } from \"@api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded\";\nimport { getLanguageId } from \"@api/device-action/OsUpdate/Backup/Substeps/GetLanguageId\";\nimport {\n type CreateBackupDAError,\n type CreateBackupDAInput,\n type CreateBackupDAIntermediateValue,\n type CreateBackupDAInternalState,\n type CreateBackupDAOutput,\n CreateBackupSteps,\n} from \"@api/device-action/OsUpdate/Backup/types\";\nimport { goToDashboard } from \"@api/device-action/OsUpdate/Shared/Substeps/GoToDashboard\";\nimport { listInstalledApps } from \"@api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps\";\nimport { waitForAppAndVersion } from \"@api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion\";\n\nexport class CreateBackupDeviceAction extends XStateDeviceAction<\n CreateBackupDAOutput,\n CreateBackupDAInput,\n CreateBackupDAError,\n CreateBackupDAIntermediateValue,\n CreateBackupDAInternalState\n> {\n protected override makeStateMachine(\n internalAPI: InternalApi,\n ): DeviceActionStateMachine<\n CreateBackupDAOutput,\n CreateBackupDAInput,\n CreateBackupDAError,\n CreateBackupDAIntermediateValue,\n CreateBackupDAInternalState\n > {\n type types = StateMachineTypes<\n CreateBackupDAOutput,\n CreateBackupDAInput,\n CreateBackupDAError,\n CreateBackupDAIntermediateValue,\n CreateBackupDAInternalState\n >;\n\n return setup({\n types: {\n input: {} as types[\"input\"],\n output: {} as types[\"output\"],\n context: {} as types[\"context\"],\n } as types,\n actors: {\n waitForAppAndVersion: waitForAppAndVersion(\n internalAPI,\n this.input.unlockTimeout,\n ),\n goToDashboard: goToDashboard(internalAPI, this.input.unlockTimeout),\n getIsOnboarded: fromPromise(getIsOnboarded(internalAPI)),\n getLanguageId: fromPromise(getLanguageId(internalAPI)),\n listInstalledApps: listInstalledApps(\n internalAPI,\n this.input.unlockTimeout,\n ),\n downloadCustomLockScreen: downloadCustomLockScreenDevice(\n internalAPI,\n this.input.unlockTimeout,\n true,\n ),\n backupAppsStorage: fromPromise(\n backupAppsStorage(internalAPI, this.getLoggerFactory(internalAPI)),\n ),\n },\n guards: {\n isDeviceOnDashboard: ({ context }) =>\n isDashboardName(context._internalState.currentApp),\n isDeviceOnboarded: ({ context }) =>\n context._internalState.isDeviceOnboarded,\n isCustomLockScreenFeatureSupported: () =>\n isCustomLockScreenSupported(internalAPI.getDeviceModel().id),\n hasError: ({ context }) => context._internalState.error !== null,\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: should never happen\n }),\n }),\n },\n }).createMachine({\n id: \"CreateBackupDeviceAction\",\n initial: \"WaitForAppAndVersion\",\n context: ({ input }) => ({\n input: {\n unlockTimeout: input.unlockTimeout,\n },\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: CreateBackupSteps.Idle,\n },\n _internalState: {\n error: null,\n currentApp: null,\n isDeviceOnboarded: false,\n languageId: undefined,\n installedApps: [],\n backupApps: [],\n clsHexImage: undefined,\n },\n }),\n states: {\n WaitForAppAndVersion: {\n entry: assign({\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n step: CreateBackupSteps.WaitForAppAndVersion,\n }),\n }),\n invoke: {\n src: \"waitForAppAndVersion\",\n input: ({ context }) => ({\n unlockTimeout: context.input.unlockTimeout,\n }),\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) => ({\n ..._.event.snapshot.context.intermediateValue,\n step: _.context.intermediateValue.step,\n }),\n }),\n },\n onDone: {\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<CreateBackupDAInternalState>({\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n Right: (output) => ({\n ..._.context._internalState,\n currentApp: output.name,\n }),\n });\n },\n }),\n target: \"CheckIfDeviceIsOnDashboard\",\n },\n onError: {\n actions: \"assignErrorFromEvent\",\n target: \"Error\",\n },\n },\n },\n CheckIfDeviceIsOnDashboard: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n guard: \"isDeviceOnDashboard\",\n target: \"GetIsOnboarded\",\n },\n {\n target: \"GoToDashboard\",\n },\n ],\n },\n GoToDashboard: {\n entry: assign({\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n step: CreateBackupSteps.GoToDashboard,\n }),\n }),\n invoke: {\n src: \"goToDashboard\",\n input: ({ context }) => ({\n unlockTimeout: context.input.unlockTimeout,\n }),\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) => ({\n ..._.event.snapshot.context.intermediateValue,\n step: _.context.intermediateValue.step,\n }),\n }),\n },\n onDone: {\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<CreateBackupDAInternalState>({\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n Right: () => _.context._internalState,\n });\n },\n }),\n target: \"CheckGoToDashboard\",\n },\n onError: {\n actions: \"assignErrorFromEvent\",\n target: \"Error\",\n },\n },\n },\n CheckGoToDashboard: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n target: \"WaitForAppAndVersion\",\n },\n ],\n },\n GetIsOnboarded: {\n entry: assign({\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n step: CreateBackupSteps.GetIsOnboarded,\n }),\n }),\n invoke: {\n src: \"getIsOnboarded\",\n onDone: {\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<CreateBackupDAInternalState>({\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n Right: (isDeviceOnboarded) => ({\n ..._.context._internalState,\n isDeviceOnboarded,\n }),\n });\n },\n }),\n target: \"CheckGetIsOnboarded\",\n },\n onError: {\n actions: \"assignErrorFromEvent\",\n target: \"Error\",\n },\n },\n },\n CheckGetIsOnboarded: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n target: \"GetLanguage\",\n },\n ],\n },\n GetLanguage: {\n entry: assign({\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n step: CreateBackupSteps.GetLanguage,\n }),\n }),\n invoke: {\n src: \"getLanguageId\",\n onDone: {\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<CreateBackupDAInternalState>({\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n Right: (languageId) => ({\n ..._.context._internalState,\n languageId,\n }),\n });\n },\n }),\n target: \"CheckGetLanguage\",\n },\n onError: {\n actions: \"assignErrorFromEvent\",\n target: \"Error\",\n },\n },\n },\n CheckGetLanguage: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n target: \"CheckIfDeviceIsOnboarded\",\n },\n ],\n },\n CheckIfDeviceIsOnboarded: {\n always: [\n {\n guard: \"isDeviceOnboarded\",\n target: \"ListInstalledApps\",\n },\n {\n target: \"Success\",\n },\n ],\n },\n ListInstalledApps: {\n entry: assign({\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n step: CreateBackupSteps.ListInstalledApps,\n }),\n }),\n invoke: {\n src: \"listInstalledApps\",\n input: ({ context }) => ({\n unlockTimeout: context.input.unlockTimeout,\n }),\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) => ({\n ..._.event.snapshot.context.intermediateValue,\n step: _.context.intermediateValue.step,\n }),\n }),\n },\n onDone: {\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<CreateBackupDAInternalState>({\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n Right: (output) => ({\n ..._.context._internalState,\n installedApps: output.installedApps.filter(\n (app) => app.name !== \"\",\n ),\n }),\n });\n },\n }),\n target: \"CheckListInstalledApps\",\n },\n onError: {\n actions: \"assignErrorFromEvent\",\n target: \"Error\",\n },\n },\n },\n CheckListInstalledApps: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n target: \"BackupAppsStorage\",\n },\n ],\n },\n BackupAppsStorage: {\n entry: assign({\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n step: CreateBackupSteps.BackupAppsStorage,\n }),\n }),\n invoke: {\n src: \"backupAppsStorage\",\n input: ({ context }) => ({\n installedApps: context._internalState.installedApps,\n }),\n onDone: {\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<CreateBackupDAInternalState>({\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n Right: (backupApps) => ({\n ..._.context._internalState,\n backupApps,\n }),\n });\n },\n }),\n target: \"CheckBackupAppsStorage\",\n },\n onError: {\n actions: \"assignErrorFromEvent\",\n target: \"Error\",\n },\n },\n },\n CheckBackupAppsStorage: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n target: \"CheckIfDeviceSupportCustomLockScreenFeature\",\n },\n ],\n },\n CheckIfDeviceSupportCustomLockScreenFeature: {\n always: [\n {\n guard: \"isCustomLockScreenFeatureSupported\",\n target: \"DownloadCustomLockScreen\",\n },\n {\n target: \"Success\",\n },\n ],\n },\n DownloadCustomLockScreen: {\n entry: assign({\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n step: CreateBackupSteps.DownloadCustomLockScreen,\n }),\n }),\n invoke: {\n src: \"downloadCustomLockScreen\",\n input: ({ context }) => ({\n unlockTimeout: context.input.unlockTimeout,\n allowedEmpty: true,\n }),\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) => ({\n ..._.event.snapshot.context.intermediateValue,\n step: _.context.intermediateValue.step,\n }),\n }),\n },\n onDone: {\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<CreateBackupDAInternalState>({\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n Right: (output) => ({\n ..._.context._internalState,\n clsHexImage:\n \"imageData\" in output && output.imageData.length > 0\n ? bufferToHexaString(output.imageData, true)\n : undefined,\n }),\n });\n },\n }),\n target: \"CheckDownloadCustomLockScreen\",\n },\n onError: {\n actions: \"assignErrorFromEvent\",\n target: \"Error\",\n },\n },\n },\n CheckDownloadCustomLockScreen: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n target: \"Success\",\n },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: ({ context }) => {\n if (context._internalState.error !== null) {\n return Left(context._internalState.error);\n }\n return Right({\n languageId: context._internalState.languageId,\n installedApps: context._internalState.backupApps,\n clsHexImage: context._internalState.clsHexImage,\n createdAt: new Date(),\n });\n },\n });\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["CreateBackupDeviceAction_exports", "__export", "CreateBackupDeviceAction", "__toCommonJS", "import_device_management_kit", "import_purify_ts", "import_xstate", "import_screenSpecs", "import_BackupAppsStorage", "import_DownloadCustomLockScreen", "import_GetIsOnboarded", "import_GetLanguageId", "import_types", "import_GoToDashboard", "import_ListInstalledApps", "import_WaitForAppAndVersion", "internalAPI", "context", "_", "input", "error", "output", "isDeviceOnboarded", "languageId", "app", "backupApps"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var s=require("@ledgerhq/device-management-kit"),r=require("purify-ts"),I=require("xstate"),i=require("../../../device-action/__test-utils__/makeInternalApi"),d=require("../../../device-action/__test-utils__/testDeviceActionStates"),E=require("../../../device-action/OsUpdate/Backup/CreateBackupDeviceAction"),f=require("../../../device-action/OsUpdate/Backup/CreateBackupDeviceActionErrors"),h=require("../../../device-action/OsUpdate/Backup/Substeps/BackupAppsStorage"),V=require("../../../device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen"),F=require("../../../device-action/OsUpdate/Backup/Substeps/GetIsOnboarded"),B=require("../../../device-action/OsUpdate/Backup/Substeps/GetLanguageId"),e=require("../../../device-action/OsUpdate/Backup/types"),G=require("../../../device-action/OsUpdate/Shared/Substeps/GoToDashboard"),b=require("../../../device-action/OsUpdate/Shared/Substeps/ListInstalledApps"),C=require("../../../device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion");vi.mock("@api/device-action/OsUpdate/Backup/Substeps/GetLanguageId");vi.mock("@api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded");vi.mock("@api/device-action/OsUpdate/Shared/Substeps/GoToDashboard");vi.mock("@api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps");vi.mock("@api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion");vi.mock("@api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen");vi.mock("@api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage");const t=p=>({status:s.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:s.UserInteractionRequired.None,step:p}}),w=p=>({status:s.DeviceActionStatus.Completed,output:{...p,createdAt:expect.any(Date)}}),L=p=>({status:s.DeviceActionStatus.Error,error:p}),R=p=>(0,I.createMachine)({initial:"ready",states:{ready:{after:{0:"done"},entry:(0,I.assign)({intermediateValue:()=>({requiredUserInteraction:s.UserInteractionRequired.None})})},done:{type:"final"}},output:p}),S=p=>R(()=>p);describe("BackupDeviceAction",()=>{const{getDeviceModel:p}=(0,i.makeDeviceActionInternalApiMock)();beforeEach(()=>{vi.resetAllMocks()});const A=(o="BOLOS")=>vi.mocked(C.waitForAppAndVersion).mockReturnValue(S((0,r.Right)({name:o,version:"1.0.0"}))),T=o=>{const n=[...o];vi.mocked(C.waitForAppAndVersion).mockReturnValue(R(()=>(0,r.Right)({name:n.shift()??"BOLOS",version:"1.0.0"})))},c=()=>vi.mocked(G.goToDashboard).mockReturnValue(S((0,r.Right)(void 0))),u=(o=!0)=>vi.mocked(F.getIsOnboarded).mockReturnValue(()=>Promise.resolve((0,r.Right)(o))),m=()=>vi.mocked(B.getLanguageId).mockReturnValue(()=>Promise.resolve((0,r.Right)(1))),k=()=>vi.mocked(b.listInstalledApps).mockReturnValue(S((0,r.Right)({installedApps:[{name:"TestApp",hash:"abc",hash_code_data:"code",flags:0}]}))),v=()=>vi.mocked(h.backupAppsStorage).mockReturnValue(()=>Promise.resolve((0,r.Right)([{appName:"TestApp",data:"0xappData"}]))),D=()=>vi.mocked(V.downloadCustomLockScreenDevice).mockReturnValue(S((0,r.Right)({imageData:new Uint8Array([1,2]),imageHash:"0102"}))),O=()=>p.mockReturnValue({id:s.DeviceModelId.STAX}),y=()=>p.mockReturnValue({id:s.DeviceModelId.NANO_X}),l=()=>new E.CreateBackupDeviceAction({input:{unlockTimeout:3e4}});describe("Success",()=>{it("should complete the full backup flow for a CLS-supported device",()=>new Promise((o,n)=>{A(),c(),u(),m(),k(),v(),D(),O();const a=[t(e.CreateBackupSteps.WaitForAppAndVersion),t(e.CreateBackupSteps.WaitForAppAndVersion),t(e.CreateBackupSteps.GetIsOnboarded),t(e.CreateBackupSteps.GetLanguage),t(e.CreateBackupSteps.ListInstalledApps),t(e.CreateBackupSteps.ListInstalledApps),t(e.CreateBackupSteps.BackupAppsStorage),t(e.CreateBackupSteps.DownloadCustomLockScreen),t(e.CreateBackupSteps.DownloadCustomLockScreen),w({languageId:1,installedApps:[{appName:"TestApp",data:"0xappData"}],clsHexImage:"0x0102"})];(0,d.testDeviceActionStates)(l(),a,(0,i.makeDeviceActionInternalApiMock)(),{onDone:o,onError:n})})),it("should skip ListInstalledApps and DownloadCustomLockScreen when device is unseeded",()=>new Promise((o,n)=>{A(),c(),u(!1),m(),k(),v(),D();const a=[t(e.CreateBackupSteps.WaitForAppAndVersion),t(e.CreateBackupSteps.WaitForAppAndVersion),t(e.CreateBackupSteps.GetIsOnboarded),t(e.CreateBackupSteps.GetLanguage),w({languageId:1,installedApps:[],clsHexImage:void 0})];(0,d.testDeviceActionStates)(l(),a,(0,i.makeDeviceActionInternalApiMock)(),{onDone:o,onError:n})})),it("should skip DownloadCustomLockScreen for devices that do not support CLS",()=>new Promise((o,n)=>{A(),c(),u(),m(),k(),v(),D(),y();const a=[t(e.CreateBackupSteps.WaitForAppAndVersion),t(e.CreateBackupSteps.WaitForAppAndVersion),t(e.CreateBackupSteps.GetIsOnboarded),t(e.CreateBackupSteps.GetLanguage),t(e.CreateBackupSteps.ListInstalledApps),t(e.CreateBackupSteps.ListInstalledApps),t(e.CreateBackupSteps.BackupAppsStorage),w({languageId:1,installedApps:[{appName:"TestApp",data:"0xappData"}],clsHexImage:void 0})];(0,d.testDeviceActionStates)(l(),a,(0,i.makeDeviceActionInternalApiMock)(),{onDone:o,onError:n})})),it("should go to dashboard and wait for app and version again when an app is open",()=>new Promise((o,n)=>{T(["Bitcoin","BOLOS"]),c(),u(),m(),k(),v(),D(),y();const a=[t(e.CreateBackupSteps.WaitForAppAndVersion),t(e.CreateBackupSteps.WaitForAppAndVersion),t(e.CreateBackupSteps.GoToDashboard),t(e.CreateBackupSteps.GoToDashboard),t(e.CreateBackupSteps.WaitForAppAndVersion),t(e.CreateBackupSteps.WaitForAppAndVersion),t(e.CreateBackupSteps.GetIsOnboarded),t(e.CreateBackupSteps.GetLanguage),t(e.CreateBackupSteps.ListInstalledApps),t(e.CreateBackupSteps.ListInstalledApps),t(e.CreateBackupSteps.BackupAppsStorage),w({languageId:1,installedApps:[{appName:"TestApp",data:"0xappData"}],clsHexImage:void 0})];(0,d.testDeviceActionStates)(l(),a,(0,i.makeDeviceActionInternalApiMock)(),{onDone:o,onError:n})}))}),describe("Error",()=>{it("should go to Error when getLanguageId returns Left",()=>new Promise((o,n)=>{A(),c(),u(),k();const a=new f.GetLanguageIdError(new Error("command failed"));vi.mocked(B.getLanguageId).mockReturnValue(()=>Promise.resolve((0,r.Left)(a)));const g=[t(e.CreateBackupSteps.WaitForAppAndVersion),t(e.CreateBackupSteps.WaitForAppAndVersion),t(e.CreateBackupSteps.GetIsOnboarded),t(e.CreateBackupSteps.GetLanguage),L(a)];(0,d.testDeviceActionStates)(l(),g,(0,i.makeDeviceActionInternalApiMock)(),{onDone:o,onError:n})})),it("should go to Error when listInstalledApps returns Left",()=>new Promise((o,n)=>{A(),c(),u(),m();const a=new s.UnknownDAError("listInstalledApps failed");vi.mocked(b.listInstalledApps).mockReturnValue(S((0,r.Left)(a)));const g=[t(e.CreateBackupSteps.WaitForAppAndVersion),t(e.CreateBackupSteps.WaitForAppAndVersion),t(e.CreateBackupSteps.GetIsOnboarded),t(e.CreateBackupSteps.GetLanguage),t(e.CreateBackupSteps.ListInstalledApps),t(e.CreateBackupSteps.ListInstalledApps),L(a)];(0,d.testDeviceActionStates)(l(),g,(0,i.makeDeviceActionInternalApiMock)(),{onDone:o,onError:n})})),it("should go to Error when backupAppsStorage returns Left",()=>new Promise((o,n)=>{A(),c(),u(),m(),k(),D();const a=new f.BackupAppsStorageError(new Error("storage failed"));vi.mocked(h.backupAppsStorage).mockReturnValue(()=>Promise.resolve((0,r.Left)(a)));const g=[t(e.CreateBackupSteps.WaitForAppAndVersion),t(e.CreateBackupSteps.WaitForAppAndVersion),t(e.CreateBackupSteps.GetIsOnboarded),t(e.CreateBackupSteps.GetLanguage),t(e.CreateBackupSteps.ListInstalledApps),t(e.CreateBackupSteps.ListInstalledApps),t(e.CreateBackupSteps.BackupAppsStorage),L(a)];(0,d.testDeviceActionStates)(l(),g,(0,i.makeDeviceActionInternalApiMock)(),{onDone:o,onError:n})})),it("should go to Error when downloadCustomLockScreenDevice returns Left",()=>new Promise((o,n)=>{A(),c(),u(),m(),k(),v(),O();const a=new s.UnknownDAError("downloadCLS failed");vi.mocked(V.downloadCustomLockScreenDevice).mockReturnValue(S((0,r.Left)(a)));const g=[t(e.CreateBackupSteps.WaitForAppAndVersion),t(e.CreateBackupSteps.WaitForAppAndVersion),t(e.CreateBackupSteps.GetIsOnboarded),t(e.CreateBackupSteps.GetLanguage),t(e.CreateBackupSteps.ListInstalledApps),t(e.CreateBackupSteps.ListInstalledApps),t(e.CreateBackupSteps.BackupAppsStorage),t(e.CreateBackupSteps.DownloadCustomLockScreen),t(e.CreateBackupSteps.DownloadCustomLockScreen),L(a)];(0,d.testDeviceActionStates)(l(),g,(0,i.makeDeviceActionInternalApiMock)(),{onDone:o,onError:n})}))})});
2
+ //# sourceMappingURL=CreateBackupDeviceAction.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.test.ts"],
4
+ "sourcesContent": ["import {\n DeviceActionStatus,\n DeviceModelId,\n type TransportDeviceModel,\n UnknownDAError,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Either, Left, Right } from \"purify-ts\";\nimport { assign, createMachine } from \"xstate\";\n\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport { testDeviceActionStates } from \"@api/device-action/__test-utils__/testDeviceActionStates\";\nimport { CreateBackupDeviceAction } from \"@api/device-action/OsUpdate/Backup/CreateBackupDeviceAction\";\nimport {\n BackupAppsStorageError,\n GetLanguageIdError,\n} from \"@api/device-action/OsUpdate/Backup/CreateBackupDeviceActionErrors\";\nimport { backupAppsStorage } from \"@api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage\";\nimport { downloadCustomLockScreenDevice } from \"@api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen\";\nimport { getIsOnboarded } from \"@api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded\";\nimport { getLanguageId } from \"@api/device-action/OsUpdate/Backup/Substeps/GetLanguageId\";\nimport {\n type Backup,\n type CreateBackupDAError,\n type CreateBackupDAState,\n CreateBackupSteps,\n} from \"@api/device-action/OsUpdate/Backup/types\";\nimport { goToDashboard } from \"@api/device-action/OsUpdate/Shared/Substeps/GoToDashboard\";\nimport { listInstalledApps } from \"@api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps\";\nimport { waitForAppAndVersion } from \"@api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion\";\n\nvi.mock(\"@api/device-action/OsUpdate/Backup/Substeps/GetLanguageId\");\nvi.mock(\"@api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded\");\nvi.mock(\"@api/device-action/OsUpdate/Shared/Substeps/GoToDashboard\");\nvi.mock(\"@api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps\");\nvi.mock(\"@api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion\");\nvi.mock(\"@api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen\");\nvi.mock(\"@api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage\");\n\n// \u2500\u2500\u2500 State builders \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nconst pendingState = (step: CreateBackupSteps): CreateBackupDAState => ({\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step,\n },\n});\n\nconst completedState = (\n output: Omit<Backup, \"createdAt\">,\n): CreateBackupDAState => ({\n status: DeviceActionStatus.Completed,\n output: {\n ...output,\n createdAt: expect.any(Date) as Date,\n },\n});\n\nconst errorState = (error: CreateBackupDAError): CreateBackupDAState => ({\n status: DeviceActionStatus.Error,\n error,\n});\n\n// \u2500\u2500\u2500 Mock actor factory \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n//\n// Creates a minimal XState machine that immediately completes (after 0 ms) with\n// the given Either output. The machine exposes the `intermediateValue` shape\n// required by the parent's `onSnapshot` handler.\n\nconst createMockActorMachineFromOutput = (\n output: () => Either<unknown, unknown>,\n) =>\n createMachine({\n initial: \"ready\",\n states: {\n ready: {\n after: { 0: \"done\" },\n entry: assign({\n intermediateValue: () => ({\n requiredUserInteraction: UserInteractionRequired.None,\n }),\n }),\n },\n done: { type: \"final\" },\n },\n output,\n });\n\nconst createMockActorMachine = (output: Either<unknown, unknown>) =>\n createMockActorMachineFromOutput(() => output);\n\n// \u2500\u2500\u2500 Fixtures \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n// \u2500\u2500\u2500 Tests \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\ndescribe(\"BackupDeviceAction\", () => {\n const { getDeviceModel: getDeviceModelMock } =\n makeDeviceActionInternalApiMock();\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n // \u2500\u2500\u2500 Setup helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n const setupWaitForAppAndVersion = (appName = \"BOLOS\") =>\n vi.mocked(waitForAppAndVersion).mockReturnValue(\n createMockActorMachine(\n Right({\n name: appName,\n version: \"1.0.0\",\n }),\n ) as unknown as ReturnType<typeof waitForAppAndVersion>,\n );\n\n const setupWaitForAppAndVersionSequence = (appNames: string[]) => {\n const remainingAppNames = [...appNames];\n vi.mocked(waitForAppAndVersion).mockReturnValue(\n createMockActorMachineFromOutput(() =>\n Right({\n name: remainingAppNames.shift() ?? \"BOLOS\",\n version: \"1.0.0\",\n }),\n ) as unknown as ReturnType<typeof waitForAppAndVersion>,\n );\n };\n\n const setupGoToDashboard = () =>\n vi\n .mocked(goToDashboard)\n .mockReturnValue(\n createMockActorMachine(Right(undefined)) as unknown as ReturnType<\n typeof goToDashboard\n >,\n );\n\n const setupGetIsOnboarded = (isDeviceOnboarded = true) =>\n vi\n .mocked(getIsOnboarded)\n .mockReturnValue(() => Promise.resolve(Right(isDeviceOnboarded)));\n\n const setupGetLanguageId = () =>\n vi.mocked(getLanguageId).mockReturnValue(() => Promise.resolve(Right(1)));\n\n const setupListInstalledApps = () =>\n vi.mocked(listInstalledApps).mockReturnValue(\n createMockActorMachine(\n Right({\n installedApps: [\n { name: \"TestApp\", hash: \"abc\", hash_code_data: \"code\", flags: 0 },\n ],\n }),\n ) as unknown as ReturnType<typeof listInstalledApps>,\n );\n\n const setupBackupAppsStorage = () =>\n vi\n .mocked(backupAppsStorage)\n .mockReturnValue(() =>\n Promise.resolve(Right([{ appName: \"TestApp\", data: \"0xappData\" }])),\n );\n\n const setupDownloadCls = () =>\n vi\n .mocked(downloadCustomLockScreenDevice)\n .mockReturnValue(\n createMockActorMachine(\n Right({ imageData: new Uint8Array([0x01, 0x02]), imageHash: \"0102\" }),\n ) as unknown as ReturnType<typeof downloadCustomLockScreenDevice>,\n );\n\n const setupStaxModel = () =>\n getDeviceModelMock.mockReturnValue({\n id: DeviceModelId.STAX,\n } as TransportDeviceModel);\n\n const setupNanoXModel = () =>\n getDeviceModelMock.mockReturnValue({\n id: DeviceModelId.NANO_X,\n } as TransportDeviceModel);\n\n const makeDeviceAction = () =>\n new CreateBackupDeviceAction({\n input: {\n unlockTimeout: 30_000,\n },\n });\n\n // \u2500\u2500\u2500 Success \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n describe(\"Success\", () => {\n it(\"should complete the full backup flow for a CLS-supported device\", () =>\n new Promise<void>((resolve, reject) => {\n setupWaitForAppAndVersion();\n setupGoToDashboard();\n setupGetIsOnboarded();\n setupGetLanguageId();\n setupListInstalledApps();\n setupBackupAppsStorage();\n setupDownloadCls();\n setupStaxModel();\n\n // State transitions:\n // GetLanguage \u2192 ListInstalledApps (\u00D72: enter + onSnapshot)\n // \u2192 BackupAppsStorage \u2192 DownloadCustomLockScreen (\u00D72: enter + onSnapshot) \u2192 Success\n const expectedStates: CreateBackupDAState[] = [\n pendingState(CreateBackupSteps.WaitForAppAndVersion),\n pendingState(CreateBackupSteps.WaitForAppAndVersion),\n pendingState(CreateBackupSteps.GetIsOnboarded),\n pendingState(CreateBackupSteps.GetLanguage),\n pendingState(CreateBackupSteps.ListInstalledApps),\n pendingState(CreateBackupSteps.ListInstalledApps),\n pendingState(CreateBackupSteps.BackupAppsStorage),\n pendingState(CreateBackupSteps.DownloadCustomLockScreen),\n pendingState(CreateBackupSteps.DownloadCustomLockScreen),\n completedState({\n languageId: 1,\n installedApps: [{ appName: \"TestApp\", data: \"0xappData\" }],\n clsHexImage: \"0x0102\",\n }),\n ];\n\n testDeviceActionStates(\n makeDeviceAction(),\n expectedStates,\n makeDeviceActionInternalApiMock(),\n { onDone: resolve, onError: reject },\n );\n }));\n\n it(\"should skip ListInstalledApps and DownloadCustomLockScreen when device is unseeded\", () =>\n new Promise<void>((resolve, reject) => {\n setupWaitForAppAndVersion();\n setupGoToDashboard();\n setupGetIsOnboarded(false);\n setupGetLanguageId();\n setupListInstalledApps(); // registered in actors but never invoked (always guard fires first)\n setupBackupAppsStorage(); // registered in actors but never invoked\n setupDownloadCls(); // registered in actors but never invoked\n\n // CheckIfDeviceIsOnboarded.isDeviceOnboarded false \u2192 jumps directly to Success\n const expectedStates: CreateBackupDAState[] = [\n pendingState(CreateBackupSteps.WaitForAppAndVersion),\n pendingState(CreateBackupSteps.WaitForAppAndVersion),\n pendingState(CreateBackupSteps.GetIsOnboarded),\n pendingState(CreateBackupSteps.GetLanguage),\n completedState({\n languageId: 1,\n installedApps: [],\n clsHexImage: undefined,\n }),\n ];\n\n testDeviceActionStates(\n makeDeviceAction(),\n expectedStates,\n makeDeviceActionInternalApiMock(),\n { onDone: resolve, onError: reject },\n );\n }));\n\n it(\"should skip DownloadCustomLockScreen for devices that do not support CLS\", () =>\n new Promise<void>((resolve, reject) => {\n setupWaitForAppAndVersion();\n setupGoToDashboard();\n setupGetIsOnboarded();\n setupGetLanguageId();\n setupListInstalledApps();\n setupBackupAppsStorage();\n setupDownloadCls(); // registered in actors but never invoked (always guard fires first)\n setupNanoXModel();\n\n // CheckIfDeviceSupportCustomLockScreenFeature.isCustomLockScreenFeatureSupported false \u2192 Success\n const expectedStates: CreateBackupDAState[] = [\n pendingState(CreateBackupSteps.WaitForAppAndVersion),\n pendingState(CreateBackupSteps.WaitForAppAndVersion),\n pendingState(CreateBackupSteps.GetIsOnboarded),\n pendingState(CreateBackupSteps.GetLanguage),\n pendingState(CreateBackupSteps.ListInstalledApps),\n pendingState(CreateBackupSteps.ListInstalledApps),\n pendingState(CreateBackupSteps.BackupAppsStorage),\n completedState({\n languageId: 1,\n installedApps: [{ appName: \"TestApp\", data: \"0xappData\" }],\n clsHexImage: undefined,\n }),\n ];\n\n testDeviceActionStates(\n makeDeviceAction(),\n expectedStates,\n makeDeviceActionInternalApiMock(),\n { onDone: resolve, onError: reject },\n );\n }));\n\n it(\"should go to dashboard and wait for app and version again when an app is open\", () =>\n new Promise<void>((resolve, reject) => {\n setupWaitForAppAndVersionSequence([\"Bitcoin\", \"BOLOS\"]);\n setupGoToDashboard();\n setupGetIsOnboarded();\n setupGetLanguageId();\n setupListInstalledApps();\n setupBackupAppsStorage();\n setupDownloadCls(); // registered in actors but never invoked (always guard fires first)\n setupNanoXModel();\n\n const expectedStates: CreateBackupDAState[] = [\n pendingState(CreateBackupSteps.WaitForAppAndVersion),\n pendingState(CreateBackupSteps.WaitForAppAndVersion),\n pendingState(CreateBackupSteps.GoToDashboard),\n pendingState(CreateBackupSteps.GoToDashboard),\n pendingState(CreateBackupSteps.WaitForAppAndVersion),\n pendingState(CreateBackupSteps.WaitForAppAndVersion),\n pendingState(CreateBackupSteps.GetIsOnboarded),\n pendingState(CreateBackupSteps.GetLanguage),\n pendingState(CreateBackupSteps.ListInstalledApps),\n pendingState(CreateBackupSteps.ListInstalledApps),\n pendingState(CreateBackupSteps.BackupAppsStorage),\n completedState({\n languageId: 1,\n installedApps: [{ appName: \"TestApp\", data: \"0xappData\" }],\n clsHexImage: undefined,\n }),\n ];\n\n testDeviceActionStates(\n makeDeviceAction(),\n expectedStates,\n makeDeviceActionInternalApiMock(),\n { onDone: resolve, onError: reject },\n );\n }));\n });\n\n // \u2500\u2500\u2500 Error \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n describe(\"Error\", () => {\n it(\"should go to Error when getLanguageId returns Left\", () =>\n new Promise<void>((resolve, reject) => {\n setupWaitForAppAndVersion();\n setupGoToDashboard();\n setupGetIsOnboarded();\n setupListInstalledApps(); // registered in actors but never invoked (always hasError guard fires first)\n const error = new GetLanguageIdError(new Error(\"command failed\"));\n vi.mocked(getLanguageId).mockReturnValue(() =>\n Promise.resolve(Left(error)),\n );\n\n // getLanguageId Left \u2192 CheckIfDeviceIsOnboarded.hasError \u2192 Error\n const expectedStates: CreateBackupDAState[] = [\n pendingState(CreateBackupSteps.WaitForAppAndVersion),\n pendingState(CreateBackupSteps.WaitForAppAndVersion),\n pendingState(CreateBackupSteps.GetIsOnboarded),\n pendingState(CreateBackupSteps.GetLanguage),\n errorState(error),\n ];\n\n testDeviceActionStates(\n makeDeviceAction(),\n expectedStates,\n makeDeviceActionInternalApiMock(),\n { onDone: resolve, onError: reject },\n );\n }));\n\n it(\"should go to Error when listInstalledApps returns Left\", () =>\n new Promise<void>((resolve, reject) => {\n setupWaitForAppAndVersion();\n setupGoToDashboard();\n setupGetIsOnboarded();\n setupGetLanguageId();\n const error = new UnknownDAError(\"listInstalledApps failed\");\n vi.mocked(listInstalledApps).mockReturnValue(\n createMockActorMachine(Left(error)) as unknown as ReturnType<\n typeof listInstalledApps\n >,\n );\n\n // listInstalledApps Left \u2192 BackupAppsStorage.always hasError \u2192 Error\n const expectedStates: CreateBackupDAState[] = [\n pendingState(CreateBackupSteps.WaitForAppAndVersion),\n pendingState(CreateBackupSteps.WaitForAppAndVersion),\n pendingState(CreateBackupSteps.GetIsOnboarded),\n pendingState(CreateBackupSteps.GetLanguage),\n pendingState(CreateBackupSteps.ListInstalledApps),\n pendingState(CreateBackupSteps.ListInstalledApps),\n errorState(error),\n ];\n\n testDeviceActionStates(\n makeDeviceAction(),\n expectedStates,\n makeDeviceActionInternalApiMock(),\n { onDone: resolve, onError: reject },\n );\n }));\n\n it(\"should go to Error when backupAppsStorage returns Left\", () =>\n new Promise<void>((resolve, reject) => {\n setupWaitForAppAndVersion();\n setupGoToDashboard();\n setupGetIsOnboarded();\n setupGetLanguageId();\n setupListInstalledApps();\n setupDownloadCls(); // registered in actors but never invoked (always hasError guard fires first)\n const error = new BackupAppsStorageError(new Error(\"storage failed\"));\n vi.mocked(backupAppsStorage).mockReturnValue(() =>\n Promise.resolve(Left(error)),\n );\n\n // backupAppsStorage Left \u2192 CheckIfDeviceSupportCustomLockScreenFeature.hasError \u2192 Error\n const expectedStates: CreateBackupDAState[] = [\n pendingState(CreateBackupSteps.WaitForAppAndVersion),\n pendingState(CreateBackupSteps.WaitForAppAndVersion),\n pendingState(CreateBackupSteps.GetIsOnboarded),\n pendingState(CreateBackupSteps.GetLanguage),\n pendingState(CreateBackupSteps.ListInstalledApps),\n pendingState(CreateBackupSteps.ListInstalledApps),\n pendingState(CreateBackupSteps.BackupAppsStorage),\n errorState(error),\n ];\n\n testDeviceActionStates(\n makeDeviceAction(),\n expectedStates,\n makeDeviceActionInternalApiMock(),\n { onDone: resolve, onError: reject },\n );\n }));\n\n it(\"should go to Error when downloadCustomLockScreenDevice returns Left\", () =>\n new Promise<void>((resolve, reject) => {\n setupWaitForAppAndVersion();\n setupGoToDashboard();\n setupGetIsOnboarded();\n setupGetLanguageId();\n setupListInstalledApps();\n setupBackupAppsStorage();\n setupStaxModel();\n const error = new UnknownDAError(\"downloadCLS failed\");\n vi.mocked(downloadCustomLockScreenDevice).mockReturnValue(\n createMockActorMachine(Left(error)) as unknown as ReturnType<\n typeof downloadCustomLockScreenDevice\n >,\n );\n\n // downloadCustomLockScreen Left \u2192 CheckDownloadCustomLockScreen.hasError \u2192 Error\n const expectedStates: CreateBackupDAState[] = [\n pendingState(CreateBackupSteps.WaitForAppAndVersion),\n pendingState(CreateBackupSteps.WaitForAppAndVersion),\n pendingState(CreateBackupSteps.GetIsOnboarded),\n pendingState(CreateBackupSteps.GetLanguage),\n pendingState(CreateBackupSteps.ListInstalledApps),\n pendingState(CreateBackupSteps.ListInstalledApps),\n pendingState(CreateBackupSteps.BackupAppsStorage),\n pendingState(CreateBackupSteps.DownloadCustomLockScreen),\n pendingState(CreateBackupSteps.DownloadCustomLockScreen),\n errorState(error),\n ];\n\n testDeviceActionStates(\n makeDeviceAction(),\n expectedStates,\n makeDeviceActionInternalApiMock(),\n { onDone: resolve, onError: reject },\n );\n }));\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_device_management_kit", "import_purify_ts", "import_xstate", "import_makeInternalApi", "import_testDeviceActionStates", "import_CreateBackupDeviceAction", "import_CreateBackupDeviceActionErrors", "import_BackupAppsStorage", "import_DownloadCustomLockScreen", "import_GetIsOnboarded", "import_GetLanguageId", "import_types", "import_GoToDashboard", "import_ListInstalledApps", "import_WaitForAppAndVersion", "pendingState", "step", "completedState", "output", "errorState", "error", "createMockActorMachineFromOutput", "createMockActorMachine", "getDeviceModelMock", "setupWaitForAppAndVersion", "appName", "setupWaitForAppAndVersionSequence", "appNames", "remainingAppNames", "setupGoToDashboard", "setupGetIsOnboarded", "isDeviceOnboarded", "setupGetLanguageId", "setupListInstalledApps", "setupBackupAppsStorage", "setupDownloadCls", "setupStaxModel", "setupNanoXModel", "makeDeviceAction", "resolve", "reject", "expectedStates"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var a=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var E=(o,r)=>{for(var e in r)a(o,e,{get:r[e],enumerable:!0})},g=(o,r,e,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of i(r))!p.call(o,n)&&n!==e&&a(o,n,{get:()=>r[n],enumerable:!(t=s(r,n))||t.enumerable});return o};var l=o=>g(a({},"__esModule",{value:!0}),o);var k={};E(k,{BackupAppsStorageError:()=>d,GetIsOnboardedError:()=>c,GetLanguageIdError:()=>u});module.exports=l(k);class u{_tag="GetLanguageIdError";originalError;constructor(r){this.originalError=r}}class c{_tag="GetIsOnboardedError";originalError;constructor(r){this.originalError=r}}class d{_tag="BackupAppsStorageError";originalError;constructor(r){this.originalError=r}}0&&(module.exports={BackupAppsStorageError,GetIsOnboardedError,GetLanguageIdError});
2
+ //# sourceMappingURL=CreateBackupDeviceActionErrors.js.map