@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.
- package/lib/cjs/api/command/OsUpdate/Backup/BackupAppStorageCommand.js +2 -0
- package/lib/cjs/api/command/OsUpdate/Backup/BackupAppStorageCommand.js.map +7 -0
- package/lib/cjs/api/command/OsUpdate/Backup/BackupAppStorageCommand.test.js +2 -0
- package/lib/cjs/api/command/OsUpdate/Backup/BackupAppStorageCommand.test.js.map +7 -0
- package/lib/cjs/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.js +2 -0
- package/lib/cjs/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.js.map +7 -0
- package/lib/cjs/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.test.js +2 -0
- package/lib/cjs/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.test.js.map +7 -0
- package/lib/cjs/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.js +2 -0
- package/lib/cjs/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.js.map +7 -0
- package/lib/cjs/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.test.js +2 -0
- package/lib/cjs/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.test.js.map +7 -0
- package/lib/cjs/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.js +2 -0
- package/lib/cjs/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.js.map +7 -0
- package/lib/cjs/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.test.js +2 -0
- package/lib/cjs/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.test.js.map +7 -0
- package/lib/cjs/api/command/OsUpdate/Restore/RequestMasterConsentCommand.js +2 -0
- package/lib/cjs/api/command/OsUpdate/Restore/RequestMasterConsentCommand.js.map +7 -0
- package/lib/cjs/api/command/OsUpdate/Restore/RequestMasterConsentCommand.test.js +2 -0
- package/lib/cjs/api/command/OsUpdate/Restore/RequestMasterConsentCommand.test.js.map +7 -0
- package/lib/cjs/api/command/OsUpdate/Restore/RestoreAppStorageCommand.js +2 -0
- package/lib/cjs/api/command/OsUpdate/Restore/RestoreAppStorageCommand.js.map +7 -0
- package/lib/cjs/api/command/OsUpdate/Restore/RestoreAppStorageCommand.test.js +2 -0
- package/lib/cjs/api/command/OsUpdate/Restore/RestoreAppStorageCommand.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Backup/CreateBackupDeviceActionErrors.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Backup/CreateBackupDeviceActionErrors.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/GetLanguageId.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/GetLanguageId.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/GetLanguageId.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Backup/Substeps/GetLanguageId.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Backup/types.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Backup/types.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/DeleteLanguagePack.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/DeleteLanguagePack.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/DeleteLanguagePack.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/DeleteLanguagePack.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/GetCustomLockScreenInfo.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/GetCustomLockScreenInfo.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/GetCustomLockScreenInfo.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/GetCustomLockScreenInfo.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/RemoveCustomLockScreen.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/RemoveCustomLockScreen.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/RemoveCustomLockScreen.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/RemoveCustomLockScreen.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/UninstallApp.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/UninstallApp.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/UninstallApp.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/CleanDevice/Substeps/UninstallApp.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/CleanDevice/types.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/CleanDevice/types.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceActionErrors.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceActionErrors.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Resolve/Substeps/ResolveOsUpdatePath.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Resolve/Substeps/ResolveOsUpdatePath.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Resolve/Substeps/ResolveOsUpdatePath.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Resolve/Substeps/ResolveOsUpdatePath.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Resolve/types.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Resolve/types.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceActionErrors.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceActionErrors.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/CommitRestoreAppStorage.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/CommitRestoreAppStorage.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/CommitRestoreAppStorage.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/CommitRestoreAppStorage.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/InitRestoreAppStorage.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/InitRestoreAppStorage.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/InitRestoreAppStorage.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/InitRestoreAppStorage.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/RestoreAppStorage.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/RestoreAppStorage.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/RestoreAppStorage.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/RestoreAppStorage.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/types.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreAppsStorage/types.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceActionErrors.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceActionErrors.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/GetIsOnboarded.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/GetIsOnboarded.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/GetIsOnboarded.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/GetIsOnboarded.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallLanguagePackage.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallLanguagePackage.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallLanguagePackage.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallLanguagePackage.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallOrUpdateApps.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallOrUpdateApps.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallOrUpdateApps.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallOrUpdateApps.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RequestMasterConsent.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RequestMasterConsent.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RequestMasterConsent.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RequestMasterConsent.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RestoreAppsStorage.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RestoreAppsStorage.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RestoreAppsStorage.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RestoreAppsStorage.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/UploadCustomLockScreen.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/UploadCustomLockScreen.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/UploadCustomLockScreen.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/UploadCustomLockScreen.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/types.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Restore/RestoreBackup/types.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Shared/OsUpdateDeviceActionErrors.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Shared/OsUpdateDeviceActionErrors.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Shared/OsUpdateUtils.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Shared/OsUpdateUtils.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/GetOsVersion.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/GetOsVersion.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/GetOsVersion.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/GetOsVersion.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/GoToDashboard.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/GoToDashboard.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/GoToDashboard.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/GoToDashboard.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Shared/types.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Shared/types.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceActionErrors.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceActionErrors.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/Substeps/FlashMcu.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/Substeps/FlashMcu.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/Substeps/FlashMcu.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/Substeps/FlashMcu.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/Substeps/ResolveMcuVersion.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/Substeps/ResolveMcuVersion.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/Substeps/ResolveMcuVersion.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/Substeps/ResolveMcuVersion.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/types.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/FlashMcu/types.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.test.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.test.js.map +7 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/InstallOsUpdate/types.js +2 -0
- package/lib/cjs/api/device-action/OsUpdate/Update/InstallOsUpdate/types.js.map +7 -0
- package/lib/cjs/api/task/OsUpdate/Backup/BackupAppStorageTask.js +2 -0
- package/lib/cjs/api/task/OsUpdate/Backup/BackupAppStorageTask.js.map +7 -0
- package/lib/cjs/api/task/OsUpdate/Backup/BackupAppStorageTask.test.js +2 -0
- package/lib/cjs/api/task/OsUpdate/Backup/BackupAppStorageTask.test.js.map +7 -0
- package/lib/cjs/api/task/OsUpdate/Restore/RestoreAppStorageTask.js +2 -0
- package/lib/cjs/api/task/OsUpdate/Restore/RestoreAppStorageTask.js.map +7 -0
- package/lib/cjs/api/task/OsUpdate/Restore/RestoreAppStorageTask.test.js +2 -0
- package/lib/cjs/api/task/OsUpdate/Restore/RestoreAppStorageTask.test.js.map +7 -0
- package/lib/cjs/index.js +1 -1
- package/lib/cjs/index.js.map +3 -3
- package/lib/cjs/package.json +5 -2
- package/lib/esm/api/command/OsUpdate/Backup/BackupAppStorageCommand.js +2 -0
- package/lib/esm/api/command/OsUpdate/Backup/BackupAppStorageCommand.js.map +7 -0
- package/lib/esm/api/command/OsUpdate/Backup/BackupAppStorageCommand.test.js +2 -0
- package/lib/esm/api/command/OsUpdate/Backup/BackupAppStorageCommand.test.js.map +7 -0
- package/lib/esm/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.js +2 -0
- package/lib/esm/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.js.map +7 -0
- package/lib/esm/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.test.js +2 -0
- package/lib/esm/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.test.js.map +7 -0
- package/lib/esm/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.js +2 -0
- package/lib/esm/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.js.map +7 -0
- package/lib/esm/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.test.js +2 -0
- package/lib/esm/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.test.js.map +7 -0
- package/lib/esm/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.js +2 -0
- package/lib/esm/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.js.map +7 -0
- package/lib/esm/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.test.js +2 -0
- package/lib/esm/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.test.js.map +7 -0
- package/lib/esm/api/command/OsUpdate/Restore/RequestMasterConsentCommand.js +2 -0
- package/lib/esm/api/command/OsUpdate/Restore/RequestMasterConsentCommand.js.map +7 -0
- package/lib/esm/api/command/OsUpdate/Restore/RequestMasterConsentCommand.test.js +2 -0
- package/lib/esm/api/command/OsUpdate/Restore/RequestMasterConsentCommand.test.js.map +7 -0
- package/lib/esm/api/command/OsUpdate/Restore/RestoreAppStorageCommand.js +2 -0
- package/lib/esm/api/command/OsUpdate/Restore/RestoreAppStorageCommand.js.map +7 -0
- package/lib/esm/api/command/OsUpdate/Restore/RestoreAppStorageCommand.test.js +2 -0
- package/lib/esm/api/command/OsUpdate/Restore/RestoreAppStorageCommand.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Backup/CreateBackupDeviceActionErrors.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Backup/CreateBackupDeviceActionErrors.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/GetLanguageId.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/GetLanguageId.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/GetLanguageId.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Backup/Substeps/GetLanguageId.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Backup/types.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Backup/types.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/DeleteLanguagePack.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/DeleteLanguagePack.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/DeleteLanguagePack.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/DeleteLanguagePack.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/GetCustomLockScreenInfo.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/GetCustomLockScreenInfo.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/GetCustomLockScreenInfo.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/GetCustomLockScreenInfo.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/RemoveCustomLockScreen.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/RemoveCustomLockScreen.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/RemoveCustomLockScreen.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/RemoveCustomLockScreen.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/UninstallApp.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/UninstallApp.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/UninstallApp.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/CleanDevice/Substeps/UninstallApp.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/CleanDevice/types.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/CleanDevice/types.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceActionErrors.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceActionErrors.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Resolve/Substeps/ResolveOsUpdatePath.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Resolve/Substeps/ResolveOsUpdatePath.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Resolve/Substeps/ResolveOsUpdatePath.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Resolve/Substeps/ResolveOsUpdatePath.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Resolve/types.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Resolve/types.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceActionErrors.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceActionErrors.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/CommitRestoreAppStorage.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/CommitRestoreAppStorage.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/CommitRestoreAppStorage.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/CommitRestoreAppStorage.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/InitRestoreAppStorage.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/InitRestoreAppStorage.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/InitRestoreAppStorage.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/InitRestoreAppStorage.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/RestoreAppStorage.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/RestoreAppStorage.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/RestoreAppStorage.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/RestoreAppStorage.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/types.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreAppsStorage/types.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceActionErrors.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceActionErrors.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/GetIsOnboarded.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/GetIsOnboarded.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/GetIsOnboarded.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/GetIsOnboarded.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallLanguagePackage.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallLanguagePackage.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallLanguagePackage.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallLanguagePackage.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallOrUpdateApps.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallOrUpdateApps.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallOrUpdateApps.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallOrUpdateApps.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RequestMasterConsent.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RequestMasterConsent.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RequestMasterConsent.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RequestMasterConsent.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RestoreAppsStorage.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RestoreAppsStorage.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RestoreAppsStorage.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RestoreAppsStorage.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/UploadCustomLockScreen.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/UploadCustomLockScreen.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/UploadCustomLockScreen.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/UploadCustomLockScreen.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/types.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Restore/RestoreBackup/types.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Shared/OsUpdateDeviceActionErrors.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Shared/OsUpdateDeviceActionErrors.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Shared/OsUpdateUtils.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Shared/OsUpdateUtils.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/GetOsVersion.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/GetOsVersion.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/GetOsVersion.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/GetOsVersion.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/GoToDashboard.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/GoToDashboard.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/GoToDashboard.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/GoToDashboard.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Shared/types.js +1 -0
- package/lib/esm/api/device-action/OsUpdate/Shared/types.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceActionErrors.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceActionErrors.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/Substeps/FlashMcu.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/Substeps/FlashMcu.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/Substeps/FlashMcu.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/Substeps/FlashMcu.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/Substeps/ResolveMcuVersion.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/Substeps/ResolveMcuVersion.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/Substeps/ResolveMcuVersion.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/Substeps/ResolveMcuVersion.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/types.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Update/FlashMcu/types.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.test.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.test.js.map +7 -0
- package/lib/esm/api/device-action/OsUpdate/Update/InstallOsUpdate/types.js +2 -0
- package/lib/esm/api/device-action/OsUpdate/Update/InstallOsUpdate/types.js.map +7 -0
- package/lib/esm/api/task/OsUpdate/Backup/BackupAppStorageTask.js +2 -0
- package/lib/esm/api/task/OsUpdate/Backup/BackupAppStorageTask.js.map +7 -0
- package/lib/esm/api/task/OsUpdate/Backup/BackupAppStorageTask.test.js +2 -0
- package/lib/esm/api/task/OsUpdate/Backup/BackupAppStorageTask.test.js.map +7 -0
- package/lib/esm/api/task/OsUpdate/Restore/RestoreAppStorageTask.js +2 -0
- package/lib/esm/api/task/OsUpdate/Restore/RestoreAppStorageTask.js.map +7 -0
- package/lib/esm/api/task/OsUpdate/Restore/RestoreAppStorageTask.test.js +2 -0
- package/lib/esm/api/task/OsUpdate/Restore/RestoreAppStorageTask.test.js.map +7 -0
- package/lib/esm/index.js +1 -1
- package/lib/esm/index.js.map +3 -3
- package/lib/esm/package.json +5 -2
- package/lib/types/api/command/OsUpdate/Backup/BackupAppStorageCommand.d.ts +18 -0
- package/lib/types/api/command/OsUpdate/Backup/BackupAppStorageCommand.d.ts.map +1 -0
- package/lib/types/api/command/OsUpdate/Backup/BackupAppStorageCommand.test.d.ts +2 -0
- package/lib/types/api/command/OsUpdate/Backup/BackupAppStorageCommand.test.d.ts.map +1 -0
- package/lib/types/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.d.ts +26 -0
- package/lib/types/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.d.ts.map +1 -0
- package/lib/types/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.test.d.ts +2 -0
- package/lib/types/api/command/OsUpdate/Backup/GetAppStorageInfoCommand.test.d.ts.map +1 -0
- package/lib/types/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.d.ts +14 -0
- package/lib/types/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.d.ts.map +1 -0
- package/lib/types/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.test.d.ts +2 -0
- package/lib/types/api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand.test.d.ts.map +1 -0
- package/lib/types/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.d.ts +20 -0
- package/lib/types/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.d.ts.map +1 -0
- package/lib/types/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.test.d.ts +2 -0
- package/lib/types/api/command/OsUpdate/Restore/InitRestoreAppStorageCommand.test.d.ts.map +1 -0
- package/lib/types/api/command/OsUpdate/Restore/RequestMasterConsentCommand.d.ts +24 -0
- package/lib/types/api/command/OsUpdate/Restore/RequestMasterConsentCommand.d.ts.map +1 -0
- package/lib/types/api/command/OsUpdate/Restore/RequestMasterConsentCommand.test.d.ts +2 -0
- package/lib/types/api/command/OsUpdate/Restore/RequestMasterConsentCommand.test.d.ts.map +1 -0
- package/lib/types/api/command/OsUpdate/Restore/RestoreAppStorageCommand.d.ts +19 -0
- package/lib/types/api/command/OsUpdate/Restore/RestoreAppStorageCommand.d.ts.map +1 -0
- package/lib/types/api/command/OsUpdate/Restore/RestoreAppStorageCommand.test.d.ts +2 -0
- package/lib/types/api/command/OsUpdate/Restore/RestoreAppStorageCommand.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.d.ts +6 -0
- package/lib/types/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Backup/CreateBackupDeviceAction.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Backup/CreateBackupDeviceActionErrors.d.ts +18 -0
- package/lib/types/api/device-action/OsUpdate/Backup/CreateBackupDeviceActionErrors.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage.d.ts +14 -0
- package/lib/types/api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Backup/Substeps/BackupAppsStorage.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen.d.ts +6 -0
- package/lib/types/api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Backup/Substeps/DownloadCustomLockScreen.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded.d.ts +8 -0
- package/lib/types/api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Backup/Substeps/GetIsOnboarded.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Backup/Substeps/GetLanguageId.d.ts +8 -0
- package/lib/types/api/device-action/OsUpdate/Backup/Substeps/GetLanguageId.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Backup/Substeps/GetLanguageId.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Backup/Substeps/GetLanguageId.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Backup/types.d.ts +43 -0
- package/lib/types/api/device-action/OsUpdate/Backup/types.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction.d.ts +6 -0
- package/lib/types/api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/DeleteLanguagePack.d.ts +7 -0
- package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/DeleteLanguagePack.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/DeleteLanguagePack.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/DeleteLanguagePack.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/GetCustomLockScreenInfo.d.ts +6 -0
- package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/GetCustomLockScreenInfo.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/GetCustomLockScreenInfo.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/GetCustomLockScreenInfo.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/RemoveCustomLockScreen.d.ts +6 -0
- package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/RemoveCustomLockScreen.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/RemoveCustomLockScreen.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/RemoveCustomLockScreen.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/UninstallApp.d.ts +5 -0
- package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/UninstallApp.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/UninstallApp.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/CleanDevice/Substeps/UninstallApp.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/CleanDevice/types.d.ts +33 -0
- package/lib/types/api/device-action/OsUpdate/CleanDevice/types.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction.d.ts +6 -0
- package/lib/types/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceActionErrors.d.ts +9 -0
- package/lib/types/api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceActionErrors.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Resolve/Substeps/ResolveOsUpdatePath.d.ts +14 -0
- package/lib/types/api/device-action/OsUpdate/Resolve/Substeps/ResolveOsUpdatePath.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Resolve/Substeps/ResolveOsUpdatePath.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Resolve/Substeps/ResolveOsUpdatePath.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Resolve/types.d.ts +29 -0
- package/lib/types/api/device-action/OsUpdate/Resolve/types.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction.d.ts +6 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceActionErrors.d.ts +18 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceActionErrors.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/CommitRestoreAppStorage.d.ts +8 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/CommitRestoreAppStorage.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/CommitRestoreAppStorage.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/CommitRestoreAppStorage.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/InitRestoreAppStorage.d.ts +15 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/InitRestoreAppStorage.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/InitRestoreAppStorage.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/InitRestoreAppStorage.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/RestoreAppStorage.d.ts +13 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/RestoreAppStorage.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/RestoreAppStorage.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/Substeps/RestoreAppStorage.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/types.d.ts +48 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreAppsStorage/types.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction.d.ts +6 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceActionErrors.d.ts +13 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceActionErrors.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/GetIsOnboarded.d.ts +11 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/GetIsOnboarded.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/GetIsOnboarded.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/GetIsOnboarded.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallLanguagePackage.d.ts +5 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallLanguagePackage.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallLanguagePackage.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallLanguagePackage.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallOrUpdateApps.d.ts +5 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallOrUpdateApps.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallOrUpdateApps.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/InstallOrUpdateApps.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RequestMasterConsent.d.ts +17 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RequestMasterConsent.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RequestMasterConsent.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RequestMasterConsent.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RestoreAppsStorage.d.ts +6 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RestoreAppsStorage.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RestoreAppsStorage.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/RestoreAppsStorage.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/UploadCustomLockScreen.d.ts +6 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/UploadCustomLockScreen.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/UploadCustomLockScreen.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/Substeps/UploadCustomLockScreen.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/types.d.ts +55 -0
- package/lib/types/api/device-action/OsUpdate/Restore/RestoreBackup/types.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Shared/OsUpdateDeviceActionErrors.d.ts +7 -0
- package/lib/types/api/device-action/OsUpdate/Shared/OsUpdateDeviceActionErrors.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Shared/OsUpdateUtils.d.ts +3 -0
- package/lib/types/api/device-action/OsUpdate/Shared/OsUpdateUtils.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Shared/Substeps/GetOsVersion.d.ts +8 -0
- package/lib/types/api/device-action/OsUpdate/Shared/Substeps/GetOsVersion.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Shared/Substeps/GetOsVersion.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Shared/Substeps/GetOsVersion.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Shared/Substeps/GoToDashboard.d.ts +5 -0
- package/lib/types/api/device-action/OsUpdate/Shared/Substeps/GoToDashboard.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Shared/Substeps/GoToDashboard.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Shared/Substeps/GoToDashboard.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps.d.ts +5 -0
- package/lib/types/api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Shared/Substeps/ListInstalledApps.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion.d.ts +5 -0
- package/lib/types/api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Shared/types.d.ts +36 -0
- package/lib/types/api/device-action/OsUpdate/Shared/types.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction.d.ts +6 -0
- package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceActionErrors.d.ts +14 -0
- package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceActionErrors.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/Substeps/FlashMcu.d.ts +12 -0
- package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/Substeps/FlashMcu.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/Substeps/FlashMcu.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/Substeps/FlashMcu.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/Substeps/ResolveMcuVersion.d.ts +15 -0
- package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/Substeps/ResolveMcuVersion.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/Substeps/ResolveMcuVersion.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/Substeps/ResolveMcuVersion.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/types.d.ts +28 -0
- package/lib/types/api/device-action/OsUpdate/Update/FlashMcu/types.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.d.ts +6 -0
- package/lib/types/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.d.ts +17 -0
- package/lib/types/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.test.d.ts +2 -0
- package/lib/types/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.test.d.ts.map +1 -0
- package/lib/types/api/device-action/OsUpdate/Update/InstallOsUpdate/types.d.ts +29 -0
- package/lib/types/api/device-action/OsUpdate/Update/InstallOsUpdate/types.d.ts.map +1 -0
- package/lib/types/api/task/OsUpdate/Backup/BackupAppStorageTask.d.ts +19 -0
- package/lib/types/api/task/OsUpdate/Backup/BackupAppStorageTask.d.ts.map +1 -0
- package/lib/types/api/task/OsUpdate/Backup/BackupAppStorageTask.test.d.ts +2 -0
- package/lib/types/api/task/OsUpdate/Backup/BackupAppStorageTask.test.d.ts.map +1 -0
- package/lib/types/api/task/OsUpdate/Restore/RestoreAppStorageTask.d.ts +14 -0
- package/lib/types/api/task/OsUpdate/Restore/RestoreAppStorageTask.d.ts.map +1 -0
- package/lib/types/api/task/OsUpdate/Restore/RestoreAppStorageTask.test.d.ts +2 -0
- package/lib/types/api/task/OsUpdate/Restore/RestoreAppStorageTask.test.d.ts.map +1 -0
- package/lib/types/index.d.ts +23 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
- package/package.json +8 -5
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../../src/api/device-action/OsUpdate/Update/FlashMcu/types.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n type DeviceActionState,\n type DeviceLockedError,\n type GetOsVersionResponse,\n type SecureChannelError,\n type UnknownDAError,\n type UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type FinalFirmware } from \"@api/device-action/OsUpdate/Shared/types\";\n\nimport { type FlashMcuDAErrors } from \"./FlashMcuDeviceActionErrors\";\n\nexport type FlashMcuDAInput = {\n finalFirmware: FinalFirmware;\n};\n\nexport type SecureChannelFlashMcuDAErrors =\n | SecureChannelError\n | DeviceLockedError\n | UnknownDAError;\n\nexport type FlashMcuDAError = FlashMcuDAErrors | SecureChannelFlashMcuDAErrors;\n\nexport type FlashMcuDARequiredInteraction = UserInteractionRequired.None;\n\nexport type FlashMcuDAIntermediateValue = {\n requiredUserInteraction: FlashMcuDARequiredInteraction;\n step: FlashMcuSteps;\n progress?: number;\n};\n\nexport type FlashMcuDAInternalState = {\n error: FlashMcuDAError | null;\n deviceInfo: GetOsVersionResponse | null;\n version: string | null;\n bootloaderPollAttempts: number;\n};\n\nexport type FlashMcuDAState = DeviceActionState<\n void,\n FlashMcuDAError,\n FlashMcuDAIntermediateValue\n>;\n\nexport enum FlashMcuSteps {\n Idle = \"idle\",\n GetDeviceInfo = \"getDeviceInfo\",\n ResolveMcuVersion = \"resolveMcuVersion\",\n FlashMcuOrBootloader = \"flashMcuOrBootloader\",\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,IAAA,eAAAC,EAAAH,GA6CO,IAAKE,OACVA,EAAA,KAAO,OACPA,EAAA,cAAgB,gBAChBA,EAAA,kBAAoB,oBACpBA,EAAA,qBAAuB,uBAJbA,OAAA",
|
|
6
|
+
"names": ["types_exports", "__export", "FlashMcuSteps", "__toCommonJS"]
|
|
7
|
+
}
|
package/lib/cjs/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var c=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var g=(o,n)=>{for(var e in n)c(o,e,{get:n[e],enumerable:!0})},S=(o,n,e,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of h(n))!f.call(o,i)&&i!==e&&c(o,i,{get:()=>n[i],enumerable:!(t=v(n,i))||t.enumerable});return o};var A=o=>S(c({},"__esModule",{value:!0}),o);var w={};g(w,{InstallOsUpdateDeviceAction:()=>E});module.exports=A(w);var a=require("@ledgerhq/device-management-kit"),l=require("purify-ts"),r=require("xstate"),d=require("../../../../device-action/OsUpdate/Shared/Substeps/GetOsVersion"),m=require("../../../../device-action/OsUpdate/Shared/Substeps/GoToDashboard"),I=require("../../../../device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion"),D=require("./Substeps/InstallFirmware"),s=require("./types");class E extends a.XStateDeviceAction{makeStateMachine(n){return(0,r.setup)({types:{input:{},output:{},context:{}},actors:{waitForAppAndVersion:(0,I.waitForAppAndVersion)(n,this.input.unlockTimeout),goToDashboard:(0,m.goToDashboard)(n,this.input.unlockTimeout),getDeviceInfo:(0,r.fromPromise)((0,d.getOsVersion)(n)),installFirmware:(0,r.fromObservable)((0,D.installFirmware)(n))},guards:{isDeviceOnDashboard:({context:e})=>(0,a.isDashboardName)(e._internalState.currentApp),isDeviceInOsuMode:({context:e})=>e._internalState.deviceInfo?.isOsu===!0,hasError:({context:e})=>e._internalState.error!==null},actions:{assignErrorFromEvent:(0,r.assign)({_internalState:e=>({...e.context._internalState,error:e.event.error})})}}).createMachine({id:"InstallOsUpdateDeviceAction",initial:"WaitForAppAndVersion",context:({input:e})=>({input:{osUpdate:e.osUpdate,unlockTimeout:e.unlockTimeout},intermediateValue:{requiredUserInteraction:a.UserInteractionRequired.None,step:s.InstallOsUpdateSteps.Idle},_internalState:{error:null,currentApp:null,deviceInfo:null}}),states:{WaitForAppAndVersion:{entry:(0,r.assign)({intermediateValue:e=>({...e.context.intermediateValue,step:s.InstallOsUpdateSteps.WaitForAppAndVersion})}),invoke:{src:"waitForAppAndVersion",input:({context:e})=>({unlockTimeout:e.input.unlockTimeout}),onSnapshot:{actions:(0,r.assign)({intermediateValue:e=>({...e.event.snapshot.context.intermediateValue,step:e.context.intermediateValue.step})})},onDone:{actions:(0,r.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:"GetDeviceInfo"},{target:"GoToDashboard"}]},GoToDashboard:{entry:(0,r.assign)({intermediateValue:e=>({...e.context.intermediateValue,step:s.InstallOsUpdateSteps.GoToDashboard})}),invoke:{src:"goToDashboard",input:({context:e})=>({unlockTimeout:e.input.unlockTimeout}),onSnapshot:{actions:(0,r.assign)({intermediateValue:e=>({...e.event.snapshot.context.intermediateValue,step:e.context.intermediateValue.step})})},onDone:{actions:(0,r.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"}]},GetDeviceInfo:{entry:(0,r.assign)({intermediateValue:e=>({...e.context.intermediateValue,step:s.InstallOsUpdateSteps.GetDeviceInfo})}),invoke:{src:"getDeviceInfo",onDone:{actions:(0,r.assign)({_internalState:e=>e.event.output.caseOf({Left:t=>({...e.context._internalState,error:t}),Right:t=>({...e.context._internalState,deviceInfo:t})})}),target:"CheckGetDeviceInfo"},onError:{actions:"assignErrorFromEvent",target:"Error"}}},CheckGetDeviceInfo:{always:[{guard:"hasError",target:"Error"},{guard:"isDeviceInOsuMode",target:"InstallFinalFirmware"},{target:"InstallOsuFirmware"}]},InstallOsuFirmware:{entry:(0,r.assign)({intermediateValue:e=>({...e.context.intermediateValue,step:s.InstallOsUpdateSteps.InstallFirmware})}),invoke:{id:"installOsuFirmware",src:"installFirmware",input:({context:e})=>{const{osuFirmware:t}=e.input.osUpdate;return{deviceInfo:e._internalState.deviceInfo,firmware:{perso:t.perso,firmware:t.firmware,firmwareKey:t.firmwareKey}}},onSnapshot:{actions:(0,r.assign)({intermediateValue:e=>{switch(e.event.snapshot.context?.type){case a.SecureChannelEventType.PermissionRequested:return{...e.context.intermediateValue,requiredUserInteraction:a.UserInteractionRequired.AllowSecureConnection};case a.SecureChannelEventType.PermissionGranted:return{...e.context.intermediateValue,requiredUserInteraction:a.UserInteractionRequired.None};case a.SecureChannelEventType.Progress:{const{progress:t,index:i,total:u}=e.event.snapshot.context.payload;let p=e.context.intermediateValue.requiredUserInteraction;return i===u-2&&(p=a.UserInteractionRequired.AllowInstallFirmware),i===u-1&&(p=a.UserInteractionRequired.None),{...e.context.intermediateValue,progress:t,requiredUserInteraction:p}}default:return{...e.context.intermediateValue}}},_internalState:e=>e.event.snapshot.context?.type===a.SecureChannelEventType.Error?{...e.context._internalState,error:e.event.snapshot.context.error.mapUpdateFirmwareDAErrors()}:e.context._internalState})},onDone:{target:"CheckInstallFirmware"},onError:{actions:"assignErrorFromEvent",target:"Error"}},exit:(0,r.assign)({intermediateValue:e=>({...e.context.intermediateValue,requiredUserInteraction:a.UserInteractionRequired.None})})},InstallFinalFirmware:{entry:(0,r.assign)({intermediateValue:e=>({...e.context.intermediateValue,step:s.InstallOsUpdateSteps.InstallFirmware})}),invoke:{id:"installFinalFirmware",src:"installFirmware",input:({context:e})=>{const{finalFirmware:t}=e.input.osUpdate;return{deviceInfo:e._internalState.deviceInfo,firmware:{perso:t.perso,firmware:t.firmware,firmwareKey:t.firmwareKey}}},onSnapshot:{actions:(0,r.assign)({intermediateValue:e=>e.event.snapshot.context?.type===a.SecureChannelEventType.Progress?{...e.context.intermediateValue,progress:e.event.snapshot.context.payload.progress}:{...e.context.intermediateValue},_internalState:e=>e.event.snapshot.context?.type===a.SecureChannelEventType.Error?{...e.context._internalState,error:e.event.snapshot.context.error.mapUpdateFirmwareDAErrors()}:e.context._internalState})},onDone:{target:"CheckInstallFirmware"},onError:{actions:"assignErrorFromEvent",target:"Error"}}},CheckInstallFirmware:{always:[{guard:"hasError",target:"Error"},{target:"Success"}]},Success:{type:"final"},Error:{type:"final"}},output:({context:e})=>e._internalState.error!==null?(0,l.Left)(e._internalState.error):(0,l.Right)(void 0)})}}0&&(module.exports={InstallOsUpdateDeviceAction});
|
|
2
|
+
//# sourceMappingURL=InstallOsUpdateDeviceAction.js.map
|
package/lib/cjs/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../../src/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n type DeviceActionStateMachine,\n type InternalApi,\n isDashboardName,\n SecureChannelEventType,\n type StateMachineTypes,\n UserInteractionRequired,\n XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\nimport { assign, fromObservable, fromPromise, setup } from \"xstate\";\n\nimport { getOsVersion } from \"@api/device-action/OsUpdate/Shared/Substeps/GetOsVersion\";\nimport { goToDashboard } from \"@api/device-action/OsUpdate/Shared/Substeps/GoToDashboard\";\nimport { waitForAppAndVersion } from \"@api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion\";\n\nimport { installFirmware } from \"./Substeps/InstallFirmware\";\nimport {\n type InstallOsUpdateDAError,\n type InstallOsUpdateDAInput,\n type InstallOsUpdateDAIntermediateValue,\n type InstallOsUpdateDAInternalState,\n InstallOsUpdateSteps,\n} from \"./types\";\n\nexport class InstallOsUpdateDeviceAction extends XStateDeviceAction<\n void,\n InstallOsUpdateDAInput,\n InstallOsUpdateDAError,\n InstallOsUpdateDAIntermediateValue,\n InstallOsUpdateDAInternalState\n> {\n protected override makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n void,\n InstallOsUpdateDAInput,\n InstallOsUpdateDAError,\n InstallOsUpdateDAIntermediateValue,\n InstallOsUpdateDAInternalState\n > {\n type types = StateMachineTypes<\n void,\n InstallOsUpdateDAInput,\n InstallOsUpdateDAError,\n InstallOsUpdateDAIntermediateValue,\n InstallOsUpdateDAInternalState\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 getDeviceInfo: fromPromise(getOsVersion(internalApi)),\n installFirmware: fromObservable(installFirmware(internalApi)),\n },\n guards: {\n isDeviceOnDashboard: ({ context }) =>\n isDashboardName(context._internalState.currentApp),\n isDeviceInOsuMode: ({ context }) =>\n context._internalState.deviceInfo?.isOsu === true,\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: \"InstallOsUpdateDeviceAction\",\n initial: \"WaitForAppAndVersion\",\n context: ({ input }) => ({\n input: {\n osUpdate: input.osUpdate,\n unlockTimeout: input.unlockTimeout,\n },\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: InstallOsUpdateSteps.Idle,\n },\n _internalState: {\n error: null,\n currentApp: null,\n deviceInfo: null,\n },\n }),\n states: {\n WaitForAppAndVersion: {\n entry: assign({\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n step: InstallOsUpdateSteps.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 _.event.output.caseOf<InstallOsUpdateDAInternalState>({\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n Right: (getAppAndVersionResponse) => ({\n ..._.context._internalState,\n currentApp: getAppAndVersionResponse.name,\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: \"GetDeviceInfo\",\n },\n {\n target: \"GoToDashboard\",\n },\n ],\n },\n GoToDashboard: {\n entry: assign({\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n step: InstallOsUpdateSteps.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 _.event.output.caseOf<InstallOsUpdateDAInternalState>({\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n Right: () => _.context._internalState,\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 GetDeviceInfo: {\n entry: assign({\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n step: InstallOsUpdateSteps.GetDeviceInfo,\n }),\n }),\n invoke: {\n src: \"getDeviceInfo\",\n onDone: {\n actions: assign({\n _internalState: (_) =>\n _.event.output.caseOf<InstallOsUpdateDAInternalState>({\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n Right: (getOsVersionResponse) => ({\n ..._.context._internalState,\n deviceInfo: getOsVersionResponse,\n }),\n }),\n }),\n target: \"CheckGetDeviceInfo\",\n },\n onError: {\n actions: \"assignErrorFromEvent\",\n target: \"Error\",\n },\n },\n },\n CheckGetDeviceInfo: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n guard: \"isDeviceInOsuMode\",\n target: \"InstallFinalFirmware\",\n },\n {\n target: \"InstallOsuFirmware\",\n },\n ],\n },\n InstallOsuFirmware: {\n entry: assign({\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n step: InstallOsUpdateSteps.InstallFirmware,\n }),\n }),\n invoke: {\n id: \"installOsuFirmware\",\n src: \"installFirmware\",\n input: ({ context }) => {\n const { osuFirmware } = context.input.osUpdate;\n return {\n deviceInfo: context._internalState.deviceInfo!,\n firmware: {\n perso: osuFirmware.perso,\n firmware: osuFirmware.firmware,\n firmwareKey: osuFirmware.firmwareKey,\n },\n };\n },\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) => {\n switch (_.event.snapshot.context?.type) {\n case SecureChannelEventType.PermissionRequested:\n return {\n ..._.context.intermediateValue,\n requiredUserInteraction:\n UserInteractionRequired.AllowSecureConnection,\n };\n case SecureChannelEventType.PermissionGranted:\n return {\n ..._.context.intermediateValue,\n requiredUserInteraction: UserInteractionRequired.None,\n };\n case SecureChannelEventType.Progress: {\n const { progress, index, total } =\n _.event.snapshot.context.payload;\n\n let requiredUserInteraction =\n _.context.intermediateValue.requiredUserInteraction;\n\n // The penultimate APDU of the bulk transfer blocks on a device\n // confirmation before the install can complete.\n if (index === total - 2) {\n requiredUserInteraction =\n UserInteractionRequired.AllowInstallFirmware;\n }\n\n if (index === total - 1) {\n requiredUserInteraction = UserInteractionRequired.None;\n }\n\n return {\n ..._.context.intermediateValue,\n progress,\n requiredUserInteraction,\n };\n }\n default:\n return { ..._.context.intermediateValue };\n }\n },\n _internalState: (_) => {\n if (\n _.event.snapshot.context?.type ===\n SecureChannelEventType.Error\n ) {\n return {\n ..._.context._internalState,\n error:\n _.event.snapshot.context.error.mapUpdateFirmwareDAErrors(),\n };\n }\n return _.context._internalState;\n },\n }),\n },\n onDone: {\n target: \"CheckInstallFirmware\",\n },\n onError: {\n actions: \"assignErrorFromEvent\",\n target: \"Error\",\n },\n },\n exit: assign({\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n requiredUserInteraction: UserInteractionRequired.None,\n }),\n }),\n },\n InstallFinalFirmware: {\n entry: assign({\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n step: InstallOsUpdateSteps.InstallFirmware,\n }),\n }),\n invoke: {\n id: \"installFinalFirmware\",\n src: \"installFirmware\",\n input: ({ context }) => {\n const { finalFirmware } = context.input.osUpdate;\n return {\n deviceInfo: context._internalState.deviceInfo!,\n firmware: {\n perso: finalFirmware.perso,\n firmware: finalFirmware.firmware!,\n firmwareKey: finalFirmware.firmwareKey!,\n },\n };\n },\n onSnapshot: {\n actions: assign({\n // The device already granted the secure connection before\n // rebooting into the OSU, and the final firmware installs\n // without any further confirmation, so the bulk exchange only\n // reports progress here.\n intermediateValue: (_) =>\n _.event.snapshot.context?.type ===\n SecureChannelEventType.Progress\n ? {\n ..._.context.intermediateValue,\n progress: _.event.snapshot.context.payload.progress,\n }\n : { ..._.context.intermediateValue },\n _internalState: (_) => {\n if (\n _.event.snapshot.context?.type ===\n SecureChannelEventType.Error\n ) {\n return {\n ..._.context._internalState,\n error:\n _.event.snapshot.context.error.mapUpdateFirmwareDAErrors(),\n };\n }\n return _.context._internalState;\n },\n }),\n },\n onDone: {\n target: \"CheckInstallFirmware\",\n },\n onError: {\n actions: \"assignErrorFromEvent\",\n target: \"Error\",\n },\n },\n },\n CheckInstallFirmware: {\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 context._internalState.error !== null\n ? Left(context._internalState.error)\n : Right(undefined),\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["InstallOsUpdateDeviceAction_exports", "__export", "InstallOsUpdateDeviceAction", "__toCommonJS", "import_device_management_kit", "import_purify_ts", "import_xstate", "import_GetOsVersion", "import_GoToDashboard", "import_WaitForAppAndVersion", "import_InstallFirmware", "import_types", "internalApi", "context", "_", "input", "error", "getAppAndVersionResponse", "getOsVersionResponse", "osuFirmware", "progress", "index", "total", "requiredUserInteraction", "finalFirmware"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var o=require("@ledgerhq/device-management-kit"),c=require("purify-ts"),w=require("rxjs"),S=require("xstate"),i=require("../../../../device-action/__test-utils__/makeInternalApi"),l=require("../../../../device-action/__test-utils__/testDeviceActionStates"),O=require("../../../../device-action/OsUpdate/Shared/OsUpdateDeviceActionErrors"),D=require("../../../../device-action/OsUpdate/Shared/Substeps/GetOsVersion"),y=require("../../../../device-action/OsUpdate/Shared/Substeps/GoToDashboard"),I=require("../../../../device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion"),U=require("../../../../device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction"),g=require("../../../../device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware"),e=require("../../../../device-action/OsUpdate/Update/InstallOsUpdate/types");vi.mock("@api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion");vi.mock("@api/device-action/OsUpdate/Shared/Substeps/GoToDashboard");vi.mock("@api/device-action/OsUpdate/Shared/Substeps/GetOsVersion");vi.mock("@api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware");const r=(a,F={})=>({status:o.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:o.UserInteractionRequired.None,step:a,...F}}),h=()=>({status:o.DeviceActionStatus.Completed,output:void 0}),f=a=>({status:o.DeviceActionStatus.Error,error:a}),k=a=>(0,S.createMachine)({initial:"ready",states:{ready:{after:{0:"done"},entry:(0,S.assign)({intermediateValue:()=>({requiredUserInteraction:o.UserInteractionRequired.None})})},done:{type:"final"}},output:a}),v=a=>k(()=>a);describe("InstallOsUpdateDeviceAction",()=>{const a={isBootloader:!1,isOsu:!1,targetId:857735172,seTargetId:857735172,mcuTargetId:void 0,seVersion:"1.3.0",seFlags:new Uint8Array([230,0,0,0]),mcuSephVersion:"5.24",mcuBootloaderVersion:"0.48",hwVersion:"00",langId:0,recoverState:void 0,secureElementFlags:{isPinValidated:!0,hasMcuSerialNumber:!0,hasValidCertificate:!0,isCustomAuthorityConnectionAllowed:!1,isSecureConnectionAllowed:!1,isOnboarded:!0,isMcuCodeSigned:!0,isInRecoveryMode:!1}},F={osuFirmware:{id:200,notes:"Update notes",perso:"perso",firmware:"osu",firmwareKey:"osu-key",hash:"osu-hash",nextFinalFirmware:300},finalFirmware:{id:300,version:"1.4.0",perso:"perso",firmware:"final",firmwareKey:"final-key",hash:"final-hash",bytes:123,mcuVersions:[1]},shouldFlashMcu:!1};beforeEach(()=>{vi.resetAllMocks()});const u=(t="BOLOS")=>vi.mocked(I.waitForAppAndVersion).mockReturnValue(v((0,c.Right)({name:t,version:"1.0.0"}))),E=t=>{const n=[...t];vi.mocked(I.waitForAppAndVersion).mockReturnValue(k(()=>(0,c.Right)({name:n.shift()??"BOLOS",version:"1.0.0"})))},V=(t=(0,c.Right)(void 0))=>vi.mocked(y.goToDashboard).mockReturnValue(v(t)),m=(t=(0,c.Right)(a))=>vi.mocked(D.getOsVersion).mockReturnValue(()=>Promise.resolve(t)),A=(t=(0,w.of)())=>{const n=vi.fn().mockReturnValue(t);return vi.mocked(g.installFirmware).mockReturnValue(n),n},p=()=>new U.InstallOsUpdateDeviceAction({input:{osUpdate:F,unlockTimeout:3e4}});describe("Success",()=>{it("Should install the OSU firmware when the device is not in OSU mode",()=>new Promise((t,n)=>{u(),m();const s=A(),d=[r(e.InstallOsUpdateSteps.WaitForAppAndVersion),r(e.InstallOsUpdateSteps.WaitForAppAndVersion),r(e.InstallOsUpdateSteps.GetDeviceInfo),r(e.InstallOsUpdateSteps.InstallFirmware),r(e.InstallOsUpdateSteps.InstallFirmware),h()];(0,l.testDeviceActionStates)(p(),d,(0,i.makeDeviceActionInternalApiMock)(),{onDone:()=>{expect(s).toHaveBeenCalledWith(expect.objectContaining({input:{deviceInfo:a,firmware:{perso:"perso",firmware:"osu",firmwareKey:"osu-key"}}})),t()},onError:n})})),it("Should install the final firmware when the device is in OSU mode",()=>new Promise((t,n)=>{u(),m((0,c.Right)({...a,isOsu:!0}));const s=A(),d=[r(e.InstallOsUpdateSteps.WaitForAppAndVersion),r(e.InstallOsUpdateSteps.WaitForAppAndVersion),r(e.InstallOsUpdateSteps.GetDeviceInfo),r(e.InstallOsUpdateSteps.InstallFirmware),r(e.InstallOsUpdateSteps.InstallFirmware),h()];(0,l.testDeviceActionStates)(p(),d,(0,i.makeDeviceActionInternalApiMock)(),{onDone:()=>{expect(s).toHaveBeenCalledWith(expect.objectContaining({input:{deviceInfo:{...a,isOsu:!0},firmware:{perso:"perso",firmware:"final",firmwareKey:"final-key"}}})),t()},onError:n})})),it("Should only track progress while installing the final firmware",()=>new Promise((t,n)=>{u(),m((0,c.Right)({...a,isOsu:!0})),A((0,w.of)({type:o.SecureChannelEventType.PermissionRequested},{type:o.SecureChannelEventType.Progress,payload:{progress:.5,index:0,total:2}},{type:o.SecureChannelEventType.Progress,payload:{progress:1,index:1,total:2}}));const s=[r(e.InstallOsUpdateSteps.WaitForAppAndVersion),r(e.InstallOsUpdateSteps.WaitForAppAndVersion),r(e.InstallOsUpdateSteps.GetDeviceInfo),r(e.InstallOsUpdateSteps.InstallFirmware),r(e.InstallOsUpdateSteps.InstallFirmware),r(e.InstallOsUpdateSteps.InstallFirmware),r(e.InstallOsUpdateSteps.InstallFirmware,{progress:.5}),r(e.InstallOsUpdateSteps.InstallFirmware,{progress:1}),h()];(0,l.testDeviceActionStates)(p(),s,(0,i.makeDeviceActionInternalApiMock)(),{onDone:t,onError:n})})),it("Should go to dashboard and wait for app and version again when an app is open",()=>new Promise((t,n)=>{E(["Bitcoin","BOLOS"]),V(),m(),A();const s=[r(e.InstallOsUpdateSteps.WaitForAppAndVersion),r(e.InstallOsUpdateSteps.WaitForAppAndVersion),r(e.InstallOsUpdateSteps.GoToDashboard),r(e.InstallOsUpdateSteps.GoToDashboard),r(e.InstallOsUpdateSteps.WaitForAppAndVersion),r(e.InstallOsUpdateSteps.WaitForAppAndVersion),r(e.InstallOsUpdateSteps.GetDeviceInfo),r(e.InstallOsUpdateSteps.InstallFirmware),r(e.InstallOsUpdateSteps.InstallFirmware),h()];(0,l.testDeviceActionStates)(p(),s,(0,i.makeDeviceActionInternalApiMock)(),{onDone:t,onError:n})})),it("Should request the secure connection permission then clear it once granted while installing the OSU",()=>new Promise((t,n)=>{u(),m(),A((0,w.of)({type:o.SecureChannelEventType.PermissionRequested},{type:o.SecureChannelEventType.PermissionGranted}));const s=[r(e.InstallOsUpdateSteps.WaitForAppAndVersion),r(e.InstallOsUpdateSteps.WaitForAppAndVersion),r(e.InstallOsUpdateSteps.GetDeviceInfo),r(e.InstallOsUpdateSteps.InstallFirmware),r(e.InstallOsUpdateSteps.InstallFirmware),r(e.InstallOsUpdateSteps.InstallFirmware,{requiredUserInteraction:o.UserInteractionRequired.AllowSecureConnection}),r(e.InstallOsUpdateSteps.InstallFirmware),h()];(0,l.testDeviceActionStates)(p(),s,(0,i.makeDeviceActionInternalApiMock)(),{onDone:t,onError:n})})),it("Should report progress and request install confirmation on the last OSU APDU",()=>new Promise((t,n)=>{u(),m(),A((0,w.of)({type:o.SecureChannelEventType.Progress,payload:{progress:.99,index:0,total:2}},{type:o.SecureChannelEventType.Progress,payload:{progress:1,index:1,total:2}}));const s=[r(e.InstallOsUpdateSteps.WaitForAppAndVersion),r(e.InstallOsUpdateSteps.WaitForAppAndVersion),r(e.InstallOsUpdateSteps.GetDeviceInfo),r(e.InstallOsUpdateSteps.InstallFirmware),r(e.InstallOsUpdateSteps.InstallFirmware),r(e.InstallOsUpdateSteps.InstallFirmware,{progress:.99,requiredUserInteraction:o.UserInteractionRequired.AllowInstallFirmware}),r(e.InstallOsUpdateSteps.InstallFirmware,{progress:1,requiredUserInteraction:o.UserInteractionRequired.None}),h()];(0,l.testDeviceActionStates)(p(),s,(0,i.makeDeviceActionInternalApiMock)(),{onDone:t,onError:n})}))}),describe("Error",()=>{it("Should go to Error when waitForAppAndVersion returns Left",()=>new Promise((t,n)=>{const s=new o.UnknownDAError("waitForAppAndVersion failed");vi.mocked(I.waitForAppAndVersion).mockReturnValue(v((0,c.Left)(s)));const d=[r(e.InstallOsUpdateSteps.WaitForAppAndVersion),r(e.InstallOsUpdateSteps.WaitForAppAndVersion),f(s)];(0,l.testDeviceActionStates)(p(),d,(0,i.makeDeviceActionInternalApiMock)(),{onDone:t,onError:n})})),it("Should go to Error when goToDashboard returns Left",()=>new Promise((t,n)=>{u("Bitcoin");const s=new o.UnknownDAError("goToDashboard failed");V((0,c.Left)(s));const d=[r(e.InstallOsUpdateSteps.WaitForAppAndVersion),r(e.InstallOsUpdateSteps.WaitForAppAndVersion),r(e.InstallOsUpdateSteps.GoToDashboard),r(e.InstallOsUpdateSteps.GoToDashboard),f(s)];(0,l.testDeviceActionStates)(p(),d,(0,i.makeDeviceActionInternalApiMock)(),{onDone:t,onError:n})})),it("Should go to Error when getOsVersion returns Left",()=>new Promise((t,n)=>{u();const s=new O.GetOsVersionError(new Error("command failed"));m((0,c.Left)(s));const d=[r(e.InstallOsUpdateSteps.WaitForAppAndVersion),r(e.InstallOsUpdateSteps.WaitForAppAndVersion),r(e.InstallOsUpdateSteps.GetDeviceInfo),f(s)];(0,l.testDeviceActionStates)(p(),d,(0,i.makeDeviceActionInternalApiMock)(),{onDone:t,onError:n})})),it("Should map a secure channel error event to a device action error",()=>new Promise((t,n)=>{u(),m(),A((0,w.of)({type:o.SecureChannelEventType.Error,error:new o.SecureChannelError("install failed")}));const s=[r(e.InstallOsUpdateSteps.WaitForAppAndVersion),r(e.InstallOsUpdateSteps.WaitForAppAndVersion),r(e.InstallOsUpdateSteps.GetDeviceInfo),r(e.InstallOsUpdateSteps.InstallFirmware),r(e.InstallOsUpdateSteps.InstallFirmware),r(e.InstallOsUpdateSteps.InstallFirmware),f(new o.UnknownDAError)];(0,l.testDeviceActionStates)(p(),s,(0,i.makeDeviceActionInternalApiMock)(),{onDone:t,onError:n})})),it("Should go to Error when the secure channel connection cannot be opened",()=>new Promise((t,n)=>{u(),m();const s=new o.UnknownDAError("Invalid WebSocket connection");A(new w.Observable(W=>{W.error(s)}));const d=[r(e.InstallOsUpdateSteps.WaitForAppAndVersion),r(e.InstallOsUpdateSteps.WaitForAppAndVersion),r(e.InstallOsUpdateSteps.GetDeviceInfo),r(e.InstallOsUpdateSteps.InstallFirmware),r(e.InstallOsUpdateSteps.InstallFirmware),f(s)];(0,l.testDeviceActionStates)(p(),d,(0,i.makeDeviceActionInternalApiMock)(),{onDone:t,onError:n})}))})});
|
|
2
|
+
//# sourceMappingURL=InstallOsUpdateDeviceAction.test.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../../src/api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction.test.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n DeviceActionStatus,\n type GetOsVersionResponse,\n SecureChannelError,\n SecureChannelEventType,\n UnknownDAError,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Either, Left, Right } from \"purify-ts\";\nimport { Observable, of } from \"rxjs\";\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 { GetOsVersionError } from \"@api/device-action/OsUpdate/Shared/OsUpdateDeviceActionErrors\";\nimport { getOsVersion } from \"@api/device-action/OsUpdate/Shared/Substeps/GetOsVersion\";\nimport { goToDashboard } from \"@api/device-action/OsUpdate/Shared/Substeps/GoToDashboard\";\nimport { waitForAppAndVersion } from \"@api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion\";\nimport { type OsUpdate } from \"@api/device-action/OsUpdate/Shared/types\";\nimport { InstallOsUpdateDeviceAction } from \"@api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction\";\nimport { installFirmware } from \"@api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware\";\nimport {\n type InstallOsUpdateDAError,\n type InstallOsUpdateDARequiredInteraction,\n type InstallOsUpdateDAState,\n InstallOsUpdateSteps,\n} from \"@api/device-action/OsUpdate/Update/InstallOsUpdate/types\";\n\nvi.mock(\"@api/device-action/OsUpdate/Shared/Substeps/WaitForAppAndVersion\");\nvi.mock(\"@api/device-action/OsUpdate/Shared/Substeps/GoToDashboard\");\nvi.mock(\"@api/device-action/OsUpdate/Shared/Substeps/GetOsVersion\");\nvi.mock(\n \"@api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware\",\n);\n\nconst pendingState = (\n step: InstallOsUpdateSteps,\n intermediateValue: {\n requiredUserInteraction?: InstallOsUpdateDARequiredInteraction;\n progress?: number;\n } = {},\n): InstallOsUpdateDAState => ({\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step,\n ...intermediateValue,\n },\n});\n\nconst completedState = (): InstallOsUpdateDAState => ({\n status: DeviceActionStatus.Completed,\n output: undefined,\n});\n\nconst errorState = (error: InstallOsUpdateDAError): InstallOsUpdateDAState => ({\n status: DeviceActionStatus.Error,\n error,\n});\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\ndescribe(\"InstallOsUpdateDeviceAction\", () => {\n const getOsVersionResponse = {\n isBootloader: false,\n isOsu: false,\n targetId: 0x33200004,\n seTargetId: 0x33200004,\n mcuTargetId: undefined,\n seVersion: \"1.3.0\",\n seFlags: new Uint8Array([0xe6, 0x00, 0x00, 0x00]),\n mcuSephVersion: \"5.24\",\n mcuBootloaderVersion: \"0.48\",\n hwVersion: \"00\",\n langId: 0,\n recoverState: undefined,\n secureElementFlags: {\n isPinValidated: true,\n hasMcuSerialNumber: true,\n hasValidCertificate: true,\n isCustomAuthorityConnectionAllowed: false,\n isSecureConnectionAllowed: false,\n isOnboarded: true,\n isMcuCodeSigned: true,\n isInRecoveryMode: false,\n },\n } satisfies GetOsVersionResponse;\n\n const osUpdate = {\n osuFirmware: {\n id: 200,\n notes: \"Update notes\",\n perso: \"perso\",\n firmware: \"osu\",\n firmwareKey: \"osu-key\",\n hash: \"osu-hash\",\n nextFinalFirmware: 300,\n },\n finalFirmware: {\n id: 300,\n version: \"1.4.0\",\n perso: \"perso\",\n firmware: \"final\",\n firmwareKey: \"final-key\",\n hash: \"final-hash\",\n bytes: 123,\n mcuVersions: [1],\n },\n shouldFlashMcu: false,\n } satisfies OsUpdate;\n\n type SecureChannelEvents = ReturnType<ReturnType<typeof installFirmware>>;\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\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 output: Either<unknown, unknown> = Right(undefined),\n ) =>\n vi\n .mocked(goToDashboard)\n .mockReturnValue(\n createMockActorMachine(output) as unknown as ReturnType<\n typeof goToDashboard\n >,\n );\n\n const setupGetOsVersion = (\n result: Either<unknown, GetOsVersionResponse> = Right(getOsVersionResponse),\n ) =>\n vi\n .mocked(getOsVersion)\n .mockReturnValue(\n () =>\n Promise.resolve(result) as ReturnType<\n ReturnType<typeof getOsVersion>\n >,\n );\n\n const setupInstallFirmware = (events: SecureChannelEvents = of()) => {\n const handler = vi.fn().mockReturnValue(events);\n vi.mocked(installFirmware).mockReturnValue(handler);\n return handler;\n };\n\n const makeDeviceAction = () =>\n new InstallOsUpdateDeviceAction({\n input: {\n osUpdate,\n unlockTimeout: 30_000,\n },\n });\n\n describe(\"Success\", () => {\n it(\"Should install the OSU firmware when the device is not in OSU mode\", () =>\n new Promise<void>((resolve, reject) => {\n setupWaitForAppAndVersion();\n setupGetOsVersion();\n const installFirmwareHandler = setupInstallFirmware();\n\n const expectedStates: InstallOsUpdateDAState[] = [\n pendingState(InstallOsUpdateSteps.WaitForAppAndVersion),\n pendingState(InstallOsUpdateSteps.WaitForAppAndVersion),\n pendingState(InstallOsUpdateSteps.GetDeviceInfo),\n pendingState(InstallOsUpdateSteps.InstallFirmware),\n pendingState(InstallOsUpdateSteps.InstallFirmware),\n completedState(),\n ];\n\n testDeviceActionStates(\n makeDeviceAction(),\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: () => {\n expect(installFirmwareHandler).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n deviceInfo: getOsVersionResponse,\n firmware: {\n perso: \"perso\",\n firmware: \"osu\",\n firmwareKey: \"osu-key\",\n },\n },\n }),\n );\n resolve();\n },\n onError: reject,\n },\n );\n }));\n\n it(\"Should install the final firmware when the device is in OSU mode\", () =>\n new Promise<void>((resolve, reject) => {\n setupWaitForAppAndVersion();\n setupGetOsVersion(Right({ ...getOsVersionResponse, isOsu: true }));\n const installFirmwareHandler = setupInstallFirmware();\n\n const expectedStates: InstallOsUpdateDAState[] = [\n pendingState(InstallOsUpdateSteps.WaitForAppAndVersion),\n pendingState(InstallOsUpdateSteps.WaitForAppAndVersion),\n pendingState(InstallOsUpdateSteps.GetDeviceInfo),\n pendingState(InstallOsUpdateSteps.InstallFirmware),\n pendingState(InstallOsUpdateSteps.InstallFirmware),\n completedState(),\n ];\n\n testDeviceActionStates(\n makeDeviceAction(),\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: () => {\n expect(installFirmwareHandler).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n deviceInfo: { ...getOsVersionResponse, isOsu: true },\n firmware: {\n perso: \"perso\",\n firmware: \"final\",\n firmwareKey: \"final-key\",\n },\n },\n }),\n );\n resolve();\n },\n onError: reject,\n },\n );\n }));\n\n it(\"Should only track progress while installing the final firmware\", () =>\n new Promise<void>((resolve, reject) => {\n setupWaitForAppAndVersion();\n setupGetOsVersion(Right({ ...getOsVersionResponse, isOsu: true }));\n setupInstallFirmware(\n of(\n { type: SecureChannelEventType.PermissionRequested },\n {\n type: SecureChannelEventType.Progress,\n payload: { progress: 0.5, index: 0, total: 2 },\n },\n {\n type: SecureChannelEventType.Progress,\n payload: { progress: 1, index: 1, total: 2 },\n },\n ) as SecureChannelEvents,\n );\n\n const expectedStates: InstallOsUpdateDAState[] = [\n pendingState(InstallOsUpdateSteps.WaitForAppAndVersion),\n pendingState(InstallOsUpdateSteps.WaitForAppAndVersion),\n pendingState(InstallOsUpdateSteps.GetDeviceInfo),\n pendingState(InstallOsUpdateSteps.InstallFirmware),\n pendingState(InstallOsUpdateSteps.InstallFirmware),\n pendingState(InstallOsUpdateSteps.InstallFirmware),\n pendingState(InstallOsUpdateSteps.InstallFirmware, { progress: 0.5 }),\n pendingState(InstallOsUpdateSteps.InstallFirmware, { progress: 1 }),\n completedState(),\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 setupGetOsVersion();\n setupInstallFirmware();\n\n const expectedStates: InstallOsUpdateDAState[] = [\n pendingState(InstallOsUpdateSteps.WaitForAppAndVersion),\n pendingState(InstallOsUpdateSteps.WaitForAppAndVersion),\n pendingState(InstallOsUpdateSteps.GoToDashboard),\n pendingState(InstallOsUpdateSteps.GoToDashboard),\n pendingState(InstallOsUpdateSteps.WaitForAppAndVersion),\n pendingState(InstallOsUpdateSteps.WaitForAppAndVersion),\n pendingState(InstallOsUpdateSteps.GetDeviceInfo),\n pendingState(InstallOsUpdateSteps.InstallFirmware),\n pendingState(InstallOsUpdateSteps.InstallFirmware),\n completedState(),\n ];\n\n testDeviceActionStates(\n makeDeviceAction(),\n expectedStates,\n makeDeviceActionInternalApiMock(),\n { onDone: resolve, onError: reject },\n );\n }));\n\n it(\"Should request the secure connection permission then clear it once granted while installing the OSU\", () =>\n new Promise<void>((resolve, reject) => {\n setupWaitForAppAndVersion();\n setupGetOsVersion();\n setupInstallFirmware(\n of(\n { type: SecureChannelEventType.PermissionRequested },\n { type: SecureChannelEventType.PermissionGranted },\n ) as SecureChannelEvents,\n );\n\n const expectedStates: InstallOsUpdateDAState[] = [\n pendingState(InstallOsUpdateSteps.WaitForAppAndVersion),\n pendingState(InstallOsUpdateSteps.WaitForAppAndVersion),\n pendingState(InstallOsUpdateSteps.GetDeviceInfo),\n pendingState(InstallOsUpdateSteps.InstallFirmware),\n pendingState(InstallOsUpdateSteps.InstallFirmware),\n pendingState(InstallOsUpdateSteps.InstallFirmware, {\n requiredUserInteraction:\n UserInteractionRequired.AllowSecureConnection,\n }),\n pendingState(InstallOsUpdateSteps.InstallFirmware),\n completedState(),\n ];\n\n testDeviceActionStates(\n makeDeviceAction(),\n expectedStates,\n makeDeviceActionInternalApiMock(),\n { onDone: resolve, onError: reject },\n );\n }));\n\n it(\"Should report progress and request install confirmation on the last OSU APDU\", () =>\n new Promise<void>((resolve, reject) => {\n setupWaitForAppAndVersion();\n setupGetOsVersion();\n setupInstallFirmware(\n of(\n {\n type: SecureChannelEventType.Progress,\n payload: { progress: 0.99, index: 0, total: 2 },\n },\n {\n type: SecureChannelEventType.Progress,\n payload: { progress: 1, index: 1, total: 2 },\n },\n ) as SecureChannelEvents,\n );\n\n const expectedStates: InstallOsUpdateDAState[] = [\n pendingState(InstallOsUpdateSteps.WaitForAppAndVersion),\n pendingState(InstallOsUpdateSteps.WaitForAppAndVersion),\n pendingState(InstallOsUpdateSteps.GetDeviceInfo),\n pendingState(InstallOsUpdateSteps.InstallFirmware),\n pendingState(InstallOsUpdateSteps.InstallFirmware),\n pendingState(InstallOsUpdateSteps.InstallFirmware, {\n progress: 0.99,\n requiredUserInteraction:\n UserInteractionRequired.AllowInstallFirmware,\n }),\n pendingState(InstallOsUpdateSteps.InstallFirmware, {\n progress: 1,\n requiredUserInteraction: UserInteractionRequired.None,\n }),\n completedState(),\n ];\n\n testDeviceActionStates(\n makeDeviceAction(),\n expectedStates,\n makeDeviceActionInternalApiMock(),\n { onDone: resolve, onError: reject },\n );\n }));\n });\n\n describe(\"Error\", () => {\n it(\"Should go to Error when waitForAppAndVersion returns Left\", () =>\n new Promise<void>((resolve, reject) => {\n const error = new UnknownDAError(\"waitForAppAndVersion failed\");\n vi.mocked(waitForAppAndVersion).mockReturnValue(\n createMockActorMachine(Left(error)) as unknown as ReturnType<\n typeof waitForAppAndVersion\n >,\n );\n\n const expectedStates: InstallOsUpdateDAState[] = [\n pendingState(InstallOsUpdateSteps.WaitForAppAndVersion),\n pendingState(InstallOsUpdateSteps.WaitForAppAndVersion),\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 goToDashboard returns Left\", () =>\n new Promise<void>((resolve, reject) => {\n setupWaitForAppAndVersion(\"Bitcoin\");\n const error = new UnknownDAError(\"goToDashboard failed\");\n setupGoToDashboard(Left(error));\n\n const expectedStates: InstallOsUpdateDAState[] = [\n pendingState(InstallOsUpdateSteps.WaitForAppAndVersion),\n pendingState(InstallOsUpdateSteps.WaitForAppAndVersion),\n pendingState(InstallOsUpdateSteps.GoToDashboard),\n pendingState(InstallOsUpdateSteps.GoToDashboard),\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 getOsVersion returns Left\", () =>\n new Promise<void>((resolve, reject) => {\n setupWaitForAppAndVersion();\n const error = new GetOsVersionError(new Error(\"command failed\"));\n setupGetOsVersion(Left(error));\n\n const expectedStates: InstallOsUpdateDAState[] = [\n pendingState(InstallOsUpdateSteps.WaitForAppAndVersion),\n pendingState(InstallOsUpdateSteps.WaitForAppAndVersion),\n pendingState(InstallOsUpdateSteps.GetDeviceInfo),\n errorState(error),\n ];\n\n testDeviceActionStates(\n makeDeviceAction(),\n expectedStates,\n makeDeviceActionInternalApiMock(),\n { onDone: resolve, onError: reject },\n );\n }));\n\n it(\"Should map a secure channel error event to a device action error\", () =>\n new Promise<void>((resolve, reject) => {\n setupWaitForAppAndVersion();\n setupGetOsVersion();\n setupInstallFirmware(\n of({\n type: SecureChannelEventType.Error,\n error: new SecureChannelError(\"install failed\"),\n }) as SecureChannelEvents,\n );\n\n const expectedStates: InstallOsUpdateDAState[] = [\n pendingState(InstallOsUpdateSteps.WaitForAppAndVersion),\n pendingState(InstallOsUpdateSteps.WaitForAppAndVersion),\n pendingState(InstallOsUpdateSteps.GetDeviceInfo),\n pendingState(InstallOsUpdateSteps.InstallFirmware),\n pendingState(InstallOsUpdateSteps.InstallFirmware),\n pendingState(InstallOsUpdateSteps.InstallFirmware),\n errorState(new UnknownDAError()),\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 the secure channel connection cannot be opened\", () =>\n new Promise<void>((resolve, reject) => {\n setupWaitForAppAndVersion();\n setupGetOsVersion();\n const error = new UnknownDAError(\"Invalid WebSocket connection\");\n setupInstallFirmware(\n new Observable((subscriber) => {\n subscriber.error(error);\n }) as SecureChannelEvents,\n );\n\n const expectedStates: InstallOsUpdateDAState[] = [\n pendingState(InstallOsUpdateSteps.WaitForAppAndVersion),\n pendingState(InstallOsUpdateSteps.WaitForAppAndVersion),\n pendingState(InstallOsUpdateSteps.GetDeviceInfo),\n pendingState(InstallOsUpdateSteps.InstallFirmware),\n pendingState(InstallOsUpdateSteps.InstallFirmware),\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_rxjs", "import_xstate", "import_makeInternalApi", "import_testDeviceActionStates", "import_OsUpdateDeviceActionErrors", "import_GetOsVersion", "import_GoToDashboard", "import_WaitForAppAndVersion", "import_InstallOsUpdateDeviceAction", "import_InstallFirmware", "import_types", "pendingState", "step", "intermediateValue", "completedState", "errorState", "error", "createMockActorMachineFromOutput", "output", "createMockActorMachine", "getOsVersionResponse", "osUpdate", "setupWaitForAppAndVersion", "appName", "setupWaitForAppAndVersionSequence", "appNames", "remainingAppNames", "setupGoToDashboard", "setupGetOsVersion", "result", "setupInstallFirmware", "events", "handler", "makeDeviceAction", "resolve", "reject", "installFirmwareHandler", "expectedStates", "subscriber"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var t=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var p=(r,e)=>{for(var a in e)t(r,a,{get:e[a],enumerable:!0})},c=(r,e,a,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of o(e))!m.call(r,n)&&n!==a&&t(r,n,{get:()=>e[n],enumerable:!(s=i(e,n))||s.enumerable});return r};var w=r=>c(t({},"__esModule",{value:!0}),r);var u={};p(u,{installFirmware:()=>I});module.exports=w(u);var l=require("@ledgerhq/device-management-kit");const I=r=>({input:e})=>new l.ConnectToSecureChannelTask(r,{connection:r.getSecureChannelService().updateFirmware(e.deviceInfo,e.firmware)}).run();0&&(module.exports={installFirmware});
|
|
2
|
+
//# sourceMappingURL=InstallFirmware.js.map
|
package/lib/cjs/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../../../src/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n ConnectToSecureChannelTask,\n type GetOsVersionResponse,\n type InternalApi,\n} from \"@ledgerhq/device-management-kit\";\n\nexport type FirmwareToInstall = {\n perso: string;\n firmware: string;\n firmwareKey: string;\n};\n\ntype InstallFirmwareHandlerArgs = {\n input: {\n deviceInfo: GetOsVersionResponse;\n firmware: FirmwareToInstall;\n };\n};\n\ntype SecureChannelEvents = ReturnType<ConnectToSecureChannelTask[\"run\"]>;\n\ntype InstallFirmwareHandler = (\n args: InstallFirmwareHandlerArgs,\n) => SecureChannelEvents;\n\nexport const installFirmware =\n (internalApi: InternalApi): InstallFirmwareHandler =>\n ({ input }: InstallFirmwareHandlerArgs): SecureChannelEvents =>\n new ConnectToSecureChannelTask(internalApi, {\n connection: internalApi\n .getSecureChannelService()\n .updateFirmware(input.deviceInfo, input.firmware),\n }).run();\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAIO,2CAqBA,MAAMF,EACVG,GACD,CAAC,CAAE,MAAAC,CAAM,IACP,IAAI,6BAA2BD,EAAa,CAC1C,WAAYA,EACT,wBAAwB,EACxB,eAAeC,EAAM,WAAYA,EAAM,QAAQ,CACpD,CAAC,EAAE,IAAI",
|
|
6
|
+
"names": ["InstallFirmware_exports", "__export", "installFirmware", "__toCommonJS", "import_device_management_kit", "internalApi", "input"]
|
|
7
|
+
}
|
package/lib/cjs/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.test.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var n=require("purify-ts"),o=require("../../../../../device-action/__test-utils__/makeInternalApi"),a=require("../../../../../device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware");describe("InstallFirmware",()=>{const r=(0,o.makeDeviceActionInternalApiMock)(),{getSecureChannelService:s}=r,i={isBootloader:!1,isOsu:!1,targetId:857735172,seTargetId:857735172,mcuTargetId:void 0,seVersion:"1.3.0",seFlags:new Uint8Array([230,0,0,0]),mcuSephVersion:"5.24",mcuBootloaderVersion:"0.48",hwVersion:"00",langId:0,recoverState:void 0,secureElementFlags:{isPinValidated:!0,hasMcuSerialNumber:!0,hasValidCertificate:!0,isCustomAuthorityConnectionAllowed:!1,isSecureConnectionAllowed:!1,isOnboarded:!0,isMcuCodeSigned:!0,isInRecoveryMode:!1}},e=vi.fn();beforeEach(()=>{vi.resetAllMocks(),e.mockReturnValue((0,n.Right)({})),s.mockReturnValue({updateFirmware:e})}),it("Should open a secure channel with the OSU firmware payload",()=>{const t={perso:"perso",firmware:"osu",firmwareKey:"osu-key"};(0,a.installFirmware)(r)({input:{deviceInfo:i,firmware:t}}),expect(e).toHaveBeenCalledWith(i,t)})});
|
|
2
|
+
//# sourceMappingURL=InstallFirmware.test.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../../../src/api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware.test.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n type GetOsVersionResponse,\n type InternalApi,\n} from \"@ledgerhq/device-management-kit\";\nimport { Right } from \"purify-ts\";\n\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport { installFirmware } from \"@api/device-action/OsUpdate/Update/InstallOsUpdate/Substeps/InstallFirmware\";\n\ndescribe(\"InstallFirmware\", () => {\n const apiMock = makeDeviceActionInternalApiMock();\n const { getSecureChannelService: getSecureChannelServiceMock } = apiMock;\n\n const deviceInfo = {\n isBootloader: false,\n isOsu: false,\n targetId: 0x33200004,\n seTargetId: 0x33200004,\n mcuTargetId: undefined,\n seVersion: \"1.3.0\",\n seFlags: new Uint8Array([0xe6, 0x00, 0x00, 0x00]),\n mcuSephVersion: \"5.24\",\n mcuBootloaderVersion: \"0.48\",\n hwVersion: \"00\",\n langId: 0,\n recoverState: undefined,\n secureElementFlags: {\n isPinValidated: true,\n hasMcuSerialNumber: true,\n hasValidCertificate: true,\n isCustomAuthorityConnectionAllowed: false,\n isSecureConnectionAllowed: false,\n isOnboarded: true,\n isMcuCodeSigned: true,\n isInRecoveryMode: false,\n },\n } satisfies GetOsVersionResponse;\n\n const updateFirmwareMock = vi.fn();\n\n beforeEach(() => {\n vi.resetAllMocks();\n updateFirmwareMock.mockReturnValue(Right({}));\n getSecureChannelServiceMock.mockReturnValue({\n updateFirmware: updateFirmwareMock,\n } as unknown as ReturnType<InternalApi[\"getSecureChannelService\"]>);\n });\n\n it(\"Should open a secure channel with the OSU firmware payload\", () => {\n const firmware = {\n perso: \"perso\",\n firmware: \"osu\",\n firmwareKey: \"osu-key\",\n };\n\n installFirmware(apiMock)({ input: { deviceInfo, firmware } });\n\n expect(updateFirmwareMock).toHaveBeenCalledWith(deviceInfo, firmware);\n });\n});\n"],
|
|
5
|
+
"mappings": "aAIA,IAAAA,EAAsB,qBAEtBC,EAAgD,6DAChDC,EAAgC,uFAEhC,SAAS,kBAAmB,IAAM,CAChC,MAAMC,KAAU,mCAAgC,EAC1C,CAAE,wBAAyBC,CAA4B,EAAID,EAE3DE,EAAa,CACjB,aAAc,GACd,MAAO,GACP,SAAU,UACV,WAAY,UACZ,YAAa,OACb,UAAW,QACX,QAAS,IAAI,WAAW,CAAC,IAAM,EAAM,EAAM,CAAI,CAAC,EAChD,eAAgB,OAChB,qBAAsB,OACtB,UAAW,KACX,OAAQ,EACR,aAAc,OACd,mBAAoB,CAClB,eAAgB,GAChB,mBAAoB,GACpB,oBAAqB,GACrB,mCAAoC,GACpC,0BAA2B,GAC3B,YAAa,GACb,gBAAiB,GACjB,iBAAkB,EACpB,CACF,EAEMC,EAAqB,GAAG,GAAG,EAEjC,WAAW,IAAM,CACf,GAAG,cAAc,EACjBA,EAAmB,mBAAgB,SAAM,CAAC,CAAC,CAAC,EAC5CF,EAA4B,gBAAgB,CAC1C,eAAgBE,CAClB,CAAkE,CACpE,CAAC,EAED,GAAG,6DAA8D,IAAM,CACrE,MAAMC,EAAW,CACf,MAAO,QACP,SAAU,MACV,YAAa,SACf,KAEA,mBAAgBJ,CAAO,EAAE,CAAE,MAAO,CAAE,WAAAE,EAAY,SAAAE,CAAS,CAAE,CAAC,EAE5D,OAAOD,CAAkB,EAAE,qBAAqBD,EAAYE,CAAQ,CACtE,CAAC,CACH,CAAC",
|
|
6
|
+
"names": ["import_purify_ts", "import_makeInternalApi", "import_InstallFirmware", "apiMock", "getSecureChannelServiceMock", "deviceInfo", "updateFirmwareMock", "firmware"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var a=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var l=(r,e)=>{for(var n in e)a(r,n,{get:e[n],enumerable:!0})},D=(r,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of d(e))!A.call(r,t)&&t!==n&&a(r,t,{get:()=>e[t],enumerable:!(i=s(e,t))||i.enumerable});return r};var c=r=>D(a({},"__esModule",{value:!0}),r);var u={};l(u,{InstallOsUpdateSteps:()=>p});module.exports=c(u);var p=(o=>(o.Idle="idle",o.WaitForAppAndVersion="waitForAppAndVersion",o.GoToDashboard="goToDashboard",o.GetDeviceInfo="getDeviceInfo",o.InstallFirmware="installFirmware",o))(p||{});0&&(module.exports={InstallOsUpdateSteps});
|
|
2
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../../src/api/device-action/OsUpdate/Update/InstallOsUpdate/types.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n type DeviceActionState,\n type DeviceLockedError,\n type GetOsVersionResponse,\n type GoToDashboardDAError,\n type GoToDashboardDARequiredInteraction,\n type OutOfMemoryDAError,\n type RefusedByUserDAError,\n type SecureChannelError,\n type UnknownDAError,\n type UserInteractionRequired,\n type WaitForAppAndVersionDAError,\n type WaitForAppAndVersionDARequiredInteraction,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type GetOsVersionError } from \"@api/device-action/OsUpdate/Shared/OsUpdateDeviceActionErrors\";\nimport { type OsUpdate } from \"@api/device-action/OsUpdate/Shared/types\";\n\nexport type InstallOsUpdateDAInput = {\n osUpdate: OsUpdate;\n unlockTimeout: number;\n};\n\nexport type SecureChannelUpdateFirmwareDAErrors =\n | SecureChannelError\n | OutOfMemoryDAError\n | DeviceLockedError\n | RefusedByUserDAError\n | UnknownDAError;\n\nexport type InstallOsUpdateDAError =\n | WaitForAppAndVersionDAError\n | GoToDashboardDAError\n | GetOsVersionError\n | SecureChannelUpdateFirmwareDAErrors;\n\nexport type InstallOsUpdateDARequiredInteraction =\n | WaitForAppAndVersionDARequiredInteraction\n | GoToDashboardDARequiredInteraction\n | UserInteractionRequired.None\n | UserInteractionRequired.UnlockDevice\n | UserInteractionRequired.AllowSecureConnection\n | UserInteractionRequired.AllowInstallFirmware;\n\nexport type InstallOsUpdateDAIntermediateValue = {\n requiredUserInteraction: InstallOsUpdateDARequiredInteraction;\n step: InstallOsUpdateSteps;\n progress?: number;\n};\n\nexport type InstallOsUpdateDAInternalState = {\n error: InstallOsUpdateDAError | null;\n currentApp: string | null;\n deviceInfo: GetOsVersionResponse | null;\n};\n\nexport type InstallOsUpdateDAState = DeviceActionState<\n void,\n InstallOsUpdateDAError,\n InstallOsUpdateDAIntermediateValue\n>;\n\nexport enum InstallOsUpdateSteps {\n Idle = \"idle\",\n WaitForAppAndVersion = \"waitForAppAndVersion\",\n GoToDashboard = \"goToDashboard\",\n GetDeviceInfo = \"getDeviceInfo\",\n InstallFirmware = \"installFirmware\",\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,IAAA,eAAAC,EAAAH,GA8DO,IAAKE,OACVA,EAAA,KAAO,OACPA,EAAA,qBAAuB,uBACvBA,EAAA,cAAgB,gBAChBA,EAAA,cAAgB,gBAChBA,EAAA,gBAAkB,kBALRA,OAAA",
|
|
6
|
+
"names": ["types_exports", "__export", "InstallOsUpdateSteps", "__toCommonJS"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var g=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var A=(o,r)=>{for(var a in r)g(o,a,{get:r[a],enumerable:!0})},C=(o,r,a,p)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of k(r))!l.call(o,t)&&t!==a&&g(o,t,{get:()=>r[t],enumerable:!(p=S(r,t))||p.enumerable});return o};var y=o=>C(g({},"__esModule",{value:!0}),o);var B={};A(B,{BackupAppStorageTask:()=>f});module.exports=y(B);var e=require("@ledgerhq/device-management-kit"),i=require("../../../command/OsUpdate/Backup/BackupAppStorageCommand"),m=require("../../../command/OsUpdate/Backup/GetAppStorageInfoCommand");class f{constructor(r,a,p){this.args=r;this.api=a;this.logger=p}async run(){this.logger.debug("[run] Starting BackupAppStorageTask",{data:{appName:this.args.appName}});const{appName:r}=this.args,a=await this.api.sendCommand(new m.GetAppStorageInfoCommand({appName:r}));if(!(0,e.isSuccessCommandResult)(a))return this.logger.debug("[run] Failed to get app storage info",{data:{error:a.error}}),(0,e.DmkResultFactory)({error:a.error});const{storageSize:p}=a.data;let t=0,n=new Uint8Array(0);for(;t<p;){const s=await this.api.sendCommand(new i.BackupAppStorageCommand);if(!(0,e.isSuccessCommandResult)(s))return this.logger.debug("[run] Failed to backup app storage",{data:{error:s.error}}),(0,e.DmkResultFactory)({error:s.error});const{chunkData:d,chunkSize:c}=s.data;n=Uint8Array.from([...n,...d]),t+=c}const u=(0,e.bufferToHexaString)(n);return this.logger.debug("[run] App storage data backed up successfully",{data:{appStorageData:u}}),(0,e.DmkResultFactory)({data:{appStorageData:u}})}}0&&(module.exports={BackupAppStorageTask});
|
|
2
|
+
//# sourceMappingURL=BackupAppStorageTask.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/api/task/OsUpdate/Backup/BackupAppStorageTask.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n bufferToHexaString,\n type CommandErrorResult,\n type DmkResult,\n DmkResultFactory,\n type HexaString,\n type InternalApi,\n isSuccessCommandResult,\n type LoggerPublisherService,\n} from \"@ledgerhq/device-management-kit\";\n\nimport {\n BackupAppStorageCommand,\n type BackupAppStorageCommandErrorCodes,\n} from \"@api/command/OsUpdate/Backup/BackupAppStorageCommand\";\nimport {\n GetAppStorageInfoCommand,\n type GetAppStorageInfoCommandErrorCodes,\n} from \"@api/command/OsUpdate/Backup/GetAppStorageInfoCommand\";\n\nexport type BackupAppStorageTaskArgs = {\n appName: string;\n};\n\nexport type BackupAppStorageTaskResponse = {\n appStorageData: HexaString;\n};\n\nexport type BackupAppStorageTaskErrorCodes =\n | GetAppStorageInfoCommandErrorCodes\n | BackupAppStorageCommandErrorCodes;\n\nexport type BackupAppStorageTaskError =\n | CommandErrorResult<GetAppStorageInfoCommandErrorCodes>[\"error\"]\n | CommandErrorResult<BackupAppStorageCommandErrorCodes>[\"error\"];\n\nexport class BackupAppStorageTask {\n constructor(\n private readonly args: BackupAppStorageTaskArgs,\n private readonly api: InternalApi,\n private readonly logger: LoggerPublisherService,\n ) {}\n\n public async run(): Promise<\n DmkResult<BackupAppStorageTaskResponse, BackupAppStorageTaskError>\n > {\n this.logger.debug(\"[run] Starting BackupAppStorageTask\", {\n data: {\n appName: this.args.appName,\n },\n });\n\n const { appName } = this.args;\n\n const getAppStorageInfo = await this.api.sendCommand(\n new GetAppStorageInfoCommand({\n appName,\n }),\n );\n\n if (!isSuccessCommandResult(getAppStorageInfo)) {\n this.logger.debug(\"[run] Failed to get app storage info\", {\n data: { error: getAppStorageInfo.error },\n });\n return DmkResultFactory({\n error: getAppStorageInfo.error,\n });\n }\n\n const { storageSize } = getAppStorageInfo.data;\n let offset = 0;\n let appStorageDataBytes = new Uint8Array(0);\n\n while (offset < storageSize) {\n const backupStorage = await this.api.sendCommand(\n new BackupAppStorageCommand(),\n );\n if (!isSuccessCommandResult(backupStorage)) {\n this.logger.debug(\"[run] Failed to backup app storage\", {\n data: { error: backupStorage.error },\n });\n return DmkResultFactory({\n error: backupStorage.error,\n });\n }\n\n const { chunkData, chunkSize } = backupStorage.data;\n appStorageDataBytes = Uint8Array.from([\n ...appStorageDataBytes,\n ...chunkData,\n ]);\n offset += chunkSize;\n }\n\n const appStorageData = bufferToHexaString(appStorageDataBytes);\n this.logger.debug(\"[run] App storage data backed up successfully\", {\n data: {\n appStorageData,\n },\n });\n\n return DmkResultFactory({\n data: {\n appStorageData,\n },\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CAEPC,EAGO,gEACPC,EAGO,iEAkBA,MAAMJ,CAAqB,CAChC,YACmBK,EACAC,EACAC,EACjB,CAHiB,UAAAF,EACA,SAAAC,EACA,YAAAC,CAChB,CAEH,MAAa,KAEX,CACA,KAAK,OAAO,MAAM,sCAAuC,CACvD,KAAM,CACJ,QAAS,KAAK,KAAK,OACrB,CACF,CAAC,EAED,KAAM,CAAE,QAAAC,CAAQ,EAAI,KAAK,KAEnBC,EAAoB,MAAM,KAAK,IAAI,YACvC,IAAI,2BAAyB,CAC3B,QAAAD,CACF,CAAC,CACH,EAEA,GAAI,IAAC,0BAAuBC,CAAiB,EAC3C,YAAK,OAAO,MAAM,uCAAwC,CACxD,KAAM,CAAE,MAAOA,EAAkB,KAAM,CACzC,CAAC,KACM,oBAAiB,CACtB,MAAOA,EAAkB,KAC3B,CAAC,EAGH,KAAM,CAAE,YAAAC,CAAY,EAAID,EAAkB,KAC1C,IAAIE,EAAS,EACTC,EAAsB,IAAI,WAAW,CAAC,EAE1C,KAAOD,EAASD,GAAa,CAC3B,MAAMG,EAAgB,MAAM,KAAK,IAAI,YACnC,IAAI,yBACN,EACA,GAAI,IAAC,0BAAuBA,CAAa,EACvC,YAAK,OAAO,MAAM,qCAAsC,CACtD,KAAM,CAAE,MAAOA,EAAc,KAAM,CACrC,CAAC,KACM,oBAAiB,CACtB,MAAOA,EAAc,KACvB,CAAC,EAGH,KAAM,CAAE,UAAAC,EAAW,UAAAC,CAAU,EAAIF,EAAc,KAC/CD,EAAsB,WAAW,KAAK,CACpC,GAAGA,EACH,GAAGE,CACL,CAAC,EACDH,GAAUI,CACZ,CAEA,MAAMC,KAAiB,sBAAmBJ,CAAmB,EAC7D,YAAK,OAAO,MAAM,gDAAiD,CACjE,KAAM,CACJ,eAAAI,CACF,CACF,CAAC,KAEM,oBAAiB,CACtB,KAAM,CACJ,eAAAA,CACF,CACF,CAAC,CACH,CACF",
|
|
6
|
+
"names": ["BackupAppStorageTask_exports", "__export", "BackupAppStorageTask", "__toCommonJS", "import_device_management_kit", "import_BackupAppStorageCommand", "import_GetAppStorageInfoCommand", "args", "api", "logger", "appName", "getAppStorageInfo", "storageSize", "offset", "appStorageDataBytes", "backupStorage", "chunkData", "chunkSize", "appStorageData"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("@ledgerhq/device-management-kit"),p=require("../../../command/OsUpdate/Backup/BackupAppStorageCommand"),c=require("../../../command/OsUpdate/Backup/GetAppStorageInfoCommand"),n=require("./BackupAppStorageTask");describe("BackupAppStorageTask",()=>{let o,t;const s=vi.fn();beforeEach(()=>{vi.clearAllMocks(),o={sendCommand:s},t={debug:vi.fn()}}),describe("Success",()=>{it("should backup app storage data successfully",async()=>{const r=new n.BackupAppStorageTask({appName:"MyApp"},o,t);s.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{storageSize:15}})).mockResolvedValueOnce((0,e.CommandResultFactory)({data:{chunkData:new Uint8Array([1,35,69,103,137]),chunkSize:5}})).mockResolvedValueOnce((0,e.CommandResultFactory)({data:{chunkData:new Uint8Array([10,11,12,13,14]),chunkSize:5}})).mockResolvedValueOnce((0,e.CommandResultFactory)({data:{chunkData:new Uint8Array([15,16,17,18,19]),chunkSize:5}}));const a=await r.run();expect((0,e.isSuccessDmkResult)(a)).toBe(!0),expect(a.data.appStorageData).toBe("0x01234567890a0b0c0d0e0f10111213")})}),describe("Error",()=>{it("should return error when getting app storage info fails",async()=>{const r=new n.BackupAppStorageTask({appName:"MyApp"},o,t);s.mockResolvedValueOnce((0,e.CommandResultFactory)({error:new c.GetAppStorageInfoCommandError({message:"Application not found.",errorCode:"5123"})}));const a=await r.run();expect(a).toStrictEqual((0,e.DmkResultFactory)({error:new c.GetAppStorageInfoCommandError({message:"Application not found.",errorCode:"5123"})}))}),it("should return error when backing up app storage data fails",async()=>{const r=new n.BackupAppStorageTask({appName:"MyApp"},o,t);s.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{storageSize:100}})).mockResolvedValueOnce((0,e.CommandResultFactory)({error:new p.BackupAppStorageCommandError({message:"Failed to backup app storage data.",errorCode:"541c"})}));const a=await r.run();expect((0,e.isSuccessDmkResult)(a)).toBe(!1),expect(a.error).toBeInstanceOf(p.BackupAppStorageCommandError),expect(a.error.message).toBe("Failed to backup app storage data.")})})});
|
|
2
|
+
//# sourceMappingURL=BackupAppStorageTask.test.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/api/task/OsUpdate/Backup/BackupAppStorageTask.test.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n CommandResultFactory,\n DmkResultFactory,\n type InternalApi,\n isSuccessDmkResult,\n type LoggerPublisherService,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { BackupAppStorageCommandError } from \"@api/command/OsUpdate/Backup/BackupAppStorageCommand\";\nimport { GetAppStorageInfoCommandError } from \"@api/command/OsUpdate/Backup/GetAppStorageInfoCommand\";\n\nimport {\n BackupAppStorageTask,\n type BackupAppStorageTaskResponse,\n} from \"./BackupAppStorageTask\";\n\ndescribe(\"BackupAppStorageTask\", () => {\n let api: InternalApi;\n let logger: LoggerPublisherService;\n const sendCommand = vi.fn();\n\n beforeEach(() => {\n vi.clearAllMocks();\n api = {\n sendCommand,\n } as unknown as InternalApi;\n logger = {\n debug: vi.fn(),\n } as unknown as LoggerPublisherService;\n });\n\n describe(\"Success\", () => {\n it(\"should backup app storage data successfully\", async () => {\n // ARRANGE\n const task = new BackupAppStorageTask(\n {\n appName: \"MyApp\",\n },\n api,\n logger,\n );\n\n sendCommand\n .mockResolvedValueOnce(\n CommandResultFactory({ data: { storageSize: 15 } }),\n )\n .mockResolvedValueOnce(\n CommandResultFactory({\n data: {\n chunkData: new Uint8Array([0x01, 0x23, 0x45, 0x67, 0x89]),\n chunkSize: 5,\n },\n }),\n )\n .mockResolvedValueOnce(\n CommandResultFactory({\n data: {\n chunkData: new Uint8Array([0x0a, 0x0b, 0x0c, 0x0d, 0x0e]),\n chunkSize: 5,\n },\n }),\n )\n .mockResolvedValueOnce(\n CommandResultFactory({\n data: {\n chunkData: new Uint8Array([0x0f, 0x10, 0x11, 0x12, 0x13]),\n chunkSize: 5,\n },\n }),\n );\n\n // ACT\n const result = await task.run();\n\n // ASSERT\n expect(isSuccessDmkResult(result)).toBe(true);\n expect(\n (result as { data: BackupAppStorageTaskResponse }).data.appStorageData,\n ).toBe(\"0x01234567890a0b0c0d0e0f10111213\");\n });\n });\n\n describe(\"Error\", () => {\n it(\"should return error when getting app storage info fails\", async () => {\n // ARRANGE\n const task = new BackupAppStorageTask(\n {\n appName: \"MyApp\",\n },\n api,\n logger,\n );\n\n sendCommand.mockResolvedValueOnce(\n CommandResultFactory({\n error: new GetAppStorageInfoCommandError({\n message: \"Application not found.\",\n errorCode: \"5123\",\n }),\n }),\n );\n\n // ACT\n const result = await task.run();\n\n // ASSERT\n expect(result).toStrictEqual(\n DmkResultFactory({\n error: new GetAppStorageInfoCommandError({\n message: \"Application not found.\",\n errorCode: \"5123\",\n }),\n }),\n );\n });\n\n it(\"should return error when backing up app storage data fails\", async () => {\n // ARRANGE\n const task = new BackupAppStorageTask(\n {\n appName: \"MyApp\",\n },\n api,\n logger,\n );\n\n sendCommand\n .mockResolvedValueOnce(\n CommandResultFactory({ data: { storageSize: 100 } }),\n )\n .mockResolvedValueOnce(\n CommandResultFactory({\n error: new BackupAppStorageCommandError({\n message: \"Failed to backup app storage data.\",\n errorCode: \"541c\",\n }),\n }),\n );\n\n // ACT\n const result = await task.run();\n\n // ASSERT\n expect(isSuccessDmkResult(result)).toBe(false);\n expect(\n (result as { error: BackupAppStorageCommandError }).error,\n ).toBeInstanceOf(BackupAppStorageCommandError);\n expect(\n (result as { error: BackupAppStorageCommandError }).error.message,\n ).toBe(\"Failed to backup app storage data.\");\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "aAAA,IAAAA,EAMO,2CAEPC,EAA6C,gEAC7CC,EAA8C,iEAE9CC,EAGO,kCAEP,SAAS,uBAAwB,IAAM,CACrC,IAAIC,EACAC,EACJ,MAAMC,EAAc,GAAG,GAAG,EAE1B,WAAW,IAAM,CACf,GAAG,cAAc,EACjBF,EAAM,CACJ,YAAAE,CACF,EACAD,EAAS,CACP,MAAO,GAAG,GAAG,CACf,CACF,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,GAAG,8CAA+C,SAAY,CAE5D,MAAME,EAAO,IAAI,uBACf,CACE,QAAS,OACX,EACAH,EACAC,CACF,EAEAC,EACG,yBACC,wBAAqB,CAAE,KAAM,CAAE,YAAa,EAAG,CAAE,CAAC,CACpD,EACC,yBACC,wBAAqB,CACnB,KAAM,CACJ,UAAW,IAAI,WAAW,CAAC,EAAM,GAAM,GAAM,IAAM,GAAI,CAAC,EACxD,UAAW,CACb,CACF,CAAC,CACH,EACC,yBACC,wBAAqB,CACnB,KAAM,CACJ,UAAW,IAAI,WAAW,CAAC,GAAM,GAAM,GAAM,GAAM,EAAI,CAAC,EACxD,UAAW,CACb,CACF,CAAC,CACH,EACC,yBACC,wBAAqB,CACnB,KAAM,CACJ,UAAW,IAAI,WAAW,CAAC,GAAM,GAAM,GAAM,GAAM,EAAI,CAAC,EACxD,UAAW,CACb,CACF,CAAC,CACH,EAGF,MAAME,EAAS,MAAMD,EAAK,IAAI,EAG9B,UAAO,sBAAmBC,CAAM,CAAC,EAAE,KAAK,EAAI,EAC5C,OACGA,EAAkD,KAAK,cAC1D,EAAE,KAAK,kCAAkC,CAC3C,CAAC,CACH,CAAC,EAED,SAAS,QAAS,IAAM,CACtB,GAAG,0DAA2D,SAAY,CAExE,MAAMD,EAAO,IAAI,uBACf,CACE,QAAS,OACX,EACAH,EACAC,CACF,EAEAC,EAAY,yBACV,wBAAqB,CACnB,MAAO,IAAI,gCAA8B,CACvC,QAAS,yBACT,UAAW,MACb,CAAC,CACH,CAAC,CACH,EAGA,MAAME,EAAS,MAAMD,EAAK,IAAI,EAG9B,OAAOC,CAAM,EAAE,iBACb,oBAAiB,CACf,MAAO,IAAI,gCAA8B,CACvC,QAAS,yBACT,UAAW,MACb,CAAC,CACH,CAAC,CACH,CACF,CAAC,EAED,GAAG,6DAA8D,SAAY,CAE3E,MAAMD,EAAO,IAAI,uBACf,CACE,QAAS,OACX,EACAH,EACAC,CACF,EAEAC,EACG,yBACC,wBAAqB,CAAE,KAAM,CAAE,YAAa,GAAI,CAAE,CAAC,CACrD,EACC,yBACC,wBAAqB,CACnB,MAAO,IAAI,+BAA6B,CACtC,QAAS,qCACT,UAAW,MACb,CAAC,CACH,CAAC,CACH,EAGF,MAAME,EAAS,MAAMD,EAAK,IAAI,EAG9B,UAAO,sBAAmBC,CAAM,CAAC,EAAE,KAAK,EAAK,EAC7C,OACGA,EAAmD,KACtD,EAAE,eAAe,8BAA4B,EAC7C,OACGA,EAAmD,MAAM,OAC5D,EAAE,KAAK,oCAAoC,CAC7C,CAAC,CACH,CAAC,CACH,CAAC",
|
|
6
|
+
"names": ["import_device_management_kit", "import_BackupAppStorageCommand", "import_GetAppStorageInfoCommand", "import_BackupAppStorageTask", "api", "logger", "sendCommand", "task", "result"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var p=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var u=(o,r)=>{for(var e in r)p(o,e,{get:r[e],enumerable:!0})},d=(o,r,e,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of i(r))!l.call(o,t)&&t!==e&&p(o,t,{get:()=>r[t],enumerable:!(s=n(r,t))||s.enumerable});return o};var m=o=>d(p({},"__esModule",{value:!0}),o);var c={};u(c,{RestoreAppStorageTask:()=>A});module.exports=m(c);var a=require("@ledgerhq/device-management-kit"),g=require("../../../command/OsUpdate/Restore/RestoreAppStorageCommand");class A{constructor(r,e,s){this.args=r;this.api=e;this.logger=s}async run(){const{appStorageData:r}=this.args;this.logger.debug("[run] Starting RestoreAppStorageTask",{data:{appStorageDataLength:r.length}});let e=0;for(;e<r.length;){const s=r.subarray(e,e+a.APDU_MAX_PAYLOAD),t=await this.api.sendCommand(new g.RestoreAppStorageCommand({chunkData:s}));if(!(0,a.isSuccessCommandResult)(t))return this.logger.debug("[run] Failed to restore app storage chunk",{data:{error:t.error}}),(0,a.DmkResultFactory)({error:t.error});e+=s.length}return this.logger.debug("[run] App storage data restored successfully"),(0,a.DmkResultFactory)({data:void 0})}}0&&(module.exports={RestoreAppStorageTask});
|
|
2
|
+
//# sourceMappingURL=RestoreAppStorageTask.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/api/task/OsUpdate/Restore/RestoreAppStorageTask.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n APDU_MAX_PAYLOAD,\n type CommandErrorResult,\n type DmkResult,\n DmkResultFactory,\n type InternalApi,\n isSuccessCommandResult,\n type LoggerPublisherService,\n} from \"@ledgerhq/device-management-kit\";\n\nimport {\n RestoreAppStorageCommand,\n type RestoreAppStorageCommandErrorCodes,\n} from \"@api/command/OsUpdate/Restore/RestoreAppStorageCommand\";\n\nexport type RestoreAppStorageTaskArgs = {\n appStorageData: Uint8Array;\n};\n\nexport type RestoreAppStorageTaskError =\n CommandErrorResult<RestoreAppStorageCommandErrorCodes>[\"error\"];\n\nexport class RestoreAppStorageTask {\n constructor(\n private readonly args: RestoreAppStorageTaskArgs,\n private readonly api: InternalApi,\n private readonly logger: LoggerPublisherService,\n ) {}\n\n public async run(): Promise<DmkResult<void, RestoreAppStorageTaskError>> {\n const { appStorageData } = this.args;\n\n this.logger.debug(\"[run] Starting RestoreAppStorageTask\", {\n data: {\n appStorageDataLength: appStorageData.length,\n },\n });\n\n let offset = 0;\n\n while (offset < appStorageData.length) {\n const chunkData = appStorageData.subarray(\n offset,\n offset + APDU_MAX_PAYLOAD,\n );\n\n const restoreAppStorage = await this.api.sendCommand(\n new RestoreAppStorageCommand({ chunkData }),\n );\n\n if (!isSuccessCommandResult(restoreAppStorage)) {\n this.logger.debug(\"[run] Failed to restore app storage chunk\", {\n data: { error: restoreAppStorage.error },\n });\n return DmkResultFactory({\n error: restoreAppStorage.error,\n });\n }\n\n offset += chunkData.length;\n }\n\n this.logger.debug(\"[run] App storage data restored successfully\");\n\n return DmkResultFactory({\n data: undefined,\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,2BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAQO,2CAEPC,EAGO,kEASA,MAAMH,CAAsB,CACjC,YACmBI,EACAC,EACAC,EACjB,CAHiB,UAAAF,EACA,SAAAC,EACA,YAAAC,CAChB,CAEH,MAAa,KAA4D,CACvE,KAAM,CAAE,eAAAC,CAAe,EAAI,KAAK,KAEhC,KAAK,OAAO,MAAM,uCAAwC,CACxD,KAAM,CACJ,qBAAsBA,EAAe,MACvC,CACF,CAAC,EAED,IAAIC,EAAS,EAEb,KAAOA,EAASD,EAAe,QAAQ,CACrC,MAAME,EAAYF,EAAe,SAC/BC,EACAA,EAAS,kBACX,EAEME,EAAoB,MAAM,KAAK,IAAI,YACvC,IAAI,2BAAyB,CAAE,UAAAD,CAAU,CAAC,CAC5C,EAEA,GAAI,IAAC,0BAAuBC,CAAiB,EAC3C,YAAK,OAAO,MAAM,4CAA6C,CAC7D,KAAM,CAAE,MAAOA,EAAkB,KAAM,CACzC,CAAC,KACM,oBAAiB,CACtB,MAAOA,EAAkB,KAC3B,CAAC,EAGHF,GAAUC,EAAU,MACtB,CAEA,YAAK,OAAO,MAAM,8CAA8C,KAEzD,oBAAiB,CACtB,KAAM,MACR,CAAC,CACH,CACF",
|
|
6
|
+
"names": ["RestoreAppStorageTask_exports", "__export", "RestoreAppStorageTask", "__toCommonJS", "import_device_management_kit", "import_RestoreAppStorageCommand", "args", "api", "logger", "appStorageData", "offset", "chunkData", "restoreAppStorage"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var i=require("@ledgerhq/device-management-kit"),e=require("@ledgerhq/device-management-kit"),l=require("../../../command/OsUpdate/Restore/RestoreAppStorageCommand"),c=require("./RestoreAppStorageTask");describe("RestoreAppStorageTask",()=>{let r,s;const t=vi.fn();beforeEach(()=>{vi.clearAllMocks(),r={sendCommand:t},s={debug:vi.fn()}}),describe("Success",()=>{it("should send a single chunk when the data fits in one APDU",async()=>{const a=Uint8Array.from([1,2,3]),n=new c.RestoreAppStorageTask({appStorageData:a},r,s);t.mockResolvedValueOnce((0,e.CommandResultFactory)({data:void 0}));const o=await n.run();expect((0,e.isSuccessDmkResult)(o)).toBe(!0),expect(t).toHaveBeenCalledTimes(1),expect(t).toHaveBeenCalledWith(expect.objectContaining({args:{chunkData:a}}))}),it("should split the data into several chunks when it does not fit in a single APDU",async()=>{const a=new Uint8Array(i.APDU_MAX_PAYLOAD+45).map((d,p)=>p%256),n=new c.RestoreAppStorageTask({appStorageData:a},r,s);t.mockResolvedValueOnce((0,e.CommandResultFactory)({data:void 0})).mockResolvedValueOnce((0,e.CommandResultFactory)({data:void 0}));const o=await n.run();expect((0,e.isSuccessDmkResult)(o)).toBe(!0),expect(t).toHaveBeenCalledTimes(2),expect(t).toHaveBeenNthCalledWith(1,expect.objectContaining({args:{chunkData:a.slice(0,i.APDU_MAX_PAYLOAD)}})),expect(t).toHaveBeenNthCalledWith(2,expect.objectContaining({args:{chunkData:a.slice(i.APDU_MAX_PAYLOAD)}}))}),it("should not send any command when the data is empty",async()=>{const n=await new c.RestoreAppStorageTask({appStorageData:new Uint8Array(0)},r,s).run();expect((0,e.isSuccessDmkResult)(n)).toBe(!0),expect(t).not.toHaveBeenCalled()})}),describe("Error",()=>{it("should return error when restoring a chunk fails",async()=>{const a=Uint8Array.from([1,2,3]),n=new c.RestoreAppStorageTask({appStorageData:a},r,s);t.mockResolvedValueOnce((0,e.CommandResultFactory)({error:new l.RestoreAppStorageCommandError({message:"Failed to decrypt the app storage backup.",errorCode:"541a"})}));const o=await n.run();expect(o).toStrictEqual((0,e.DmkResultFactory)({error:new l.RestoreAppStorageCommandError({message:"Failed to decrypt the app storage backup.",errorCode:"541a"})}))}),it("should stop sending chunks as soon as one fails",async()=>{const a=new Uint8Array(i.APDU_MAX_PAYLOAD+10),n=new c.RestoreAppStorageTask({appStorageData:a},r,s);t.mockResolvedValueOnce((0,e.CommandResultFactory)({error:new l.RestoreAppStorageCommandError({message:"Invalid chunk length.",errorCode:"6734"})}));const o=await n.run();expect((0,e.isSuccessDmkResult)(o)).toBe(!1),expect(t).toHaveBeenCalledTimes(1)})})});
|
|
2
|
+
//# sourceMappingURL=RestoreAppStorageTask.test.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/api/task/OsUpdate/Restore/RestoreAppStorageTask.test.ts"],
|
|
4
|
+
"sourcesContent": ["import { APDU_MAX_PAYLOAD } from \"@ledgerhq/device-management-kit\";\nimport {\n CommandResultFactory,\n DmkResultFactory,\n type InternalApi,\n isSuccessDmkResult,\n type LoggerPublisherService,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { RestoreAppStorageCommandError } from \"@api/command/OsUpdate/Restore/RestoreAppStorageCommand\";\n\nimport { RestoreAppStorageTask } from \"./RestoreAppStorageTask\";\n\ndescribe(\"RestoreAppStorageTask\", () => {\n let api: InternalApi;\n let logger: LoggerPublisherService;\n const sendCommand = vi.fn();\n\n beforeEach(() => {\n vi.clearAllMocks();\n api = {\n sendCommand,\n } as unknown as InternalApi;\n logger = {\n debug: vi.fn(),\n } as unknown as LoggerPublisherService;\n });\n\n describe(\"Success\", () => {\n it(\"should send a single chunk when the data fits in one APDU\", async () => {\n // ARRANGE\n const appStorageData = Uint8Array.from([0x01, 0x02, 0x03]);\n const task = new RestoreAppStorageTask({ appStorageData }, api, logger);\n\n sendCommand.mockResolvedValueOnce(\n CommandResultFactory({ data: undefined }),\n );\n\n // ACT\n const result = await task.run();\n\n // ASSERT\n expect(isSuccessDmkResult(result)).toBe(true);\n expect(sendCommand).toHaveBeenCalledTimes(1);\n expect(sendCommand).toHaveBeenCalledWith(\n expect.objectContaining({\n args: { chunkData: appStorageData },\n }),\n );\n });\n\n it(\"should split the data into several chunks when it does not fit in a single APDU\", async () => {\n // ARRANGE\n const appStorageData = new Uint8Array(APDU_MAX_PAYLOAD + 45).map(\n (_, i) => i % 256,\n );\n const task = new RestoreAppStorageTask({ appStorageData }, api, logger);\n\n sendCommand\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }));\n\n // ACT\n const result = await task.run();\n\n // ASSERT\n expect(isSuccessDmkResult(result)).toBe(true);\n expect(sendCommand).toHaveBeenCalledTimes(2);\n expect(sendCommand).toHaveBeenNthCalledWith(\n 1,\n expect.objectContaining({\n args: { chunkData: appStorageData.slice(0, APDU_MAX_PAYLOAD) },\n }),\n );\n expect(sendCommand).toHaveBeenNthCalledWith(\n 2,\n expect.objectContaining({\n args: { chunkData: appStorageData.slice(APDU_MAX_PAYLOAD) },\n }),\n );\n });\n\n it(\"should not send any command when the data is empty\", async () => {\n // ARRANGE\n const task = new RestoreAppStorageTask(\n { appStorageData: new Uint8Array(0) },\n api,\n logger,\n );\n\n // ACT\n const result = await task.run();\n\n // ASSERT\n expect(isSuccessDmkResult(result)).toBe(true);\n expect(sendCommand).not.toHaveBeenCalled();\n });\n });\n\n describe(\"Error\", () => {\n it(\"should return error when restoring a chunk fails\", async () => {\n // ARRANGE\n const appStorageData = Uint8Array.from([0x01, 0x02, 0x03]);\n const task = new RestoreAppStorageTask({ appStorageData }, api, logger);\n\n sendCommand.mockResolvedValueOnce(\n CommandResultFactory({\n error: new RestoreAppStorageCommandError({\n message: \"Failed to decrypt the app storage backup.\",\n errorCode: \"541a\",\n }),\n }),\n );\n\n // ACT\n const result = await task.run();\n\n // ASSERT\n expect(result).toStrictEqual(\n DmkResultFactory({\n error: new RestoreAppStorageCommandError({\n message: \"Failed to decrypt the app storage backup.\",\n errorCode: \"541a\",\n }),\n }),\n );\n });\n\n it(\"should stop sending chunks as soon as one fails\", async () => {\n // ARRANGE\n const appStorageData = new Uint8Array(APDU_MAX_PAYLOAD + 10);\n const task = new RestoreAppStorageTask({ appStorageData }, api, logger);\n\n sendCommand.mockResolvedValueOnce(\n CommandResultFactory({\n error: new RestoreAppStorageCommandError({\n message: \"Invalid chunk length.\",\n errorCode: \"6734\",\n }),\n }),\n );\n\n // ACT\n const result = await task.run();\n\n // ASSERT\n expect(isSuccessDmkResult(result)).toBe(false);\n expect(sendCommand).toHaveBeenCalledTimes(1);\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_device_management_kit", "import_RestoreAppStorageCommand", "import_RestoreAppStorageTask", "api", "logger", "sendCommand", "appStorageData", "task", "result", "_", "i"]
|
|
7
|
+
}
|
package/lib/cjs/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var i=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var P=(t,o)=>{for(var s in o)i(t,s,{get:o[s],enumerable:!0})},V=(t,o,s,u)=>{if(o&&typeof o=="object"||typeof o=="function")for(let p of G(o))!w.call(t,p)&&p!==s&&i(t,p,{get:()=>o[p],enumerable:!(u=M(o,p))||u.enumerable});return t};var T=t=>V(i({},"__esModule",{value:!0}),t);var z={};P(z,{BackupAppStorageCommand:()=>R.BackupAppStorageCommand,BackupAppStorageTask:()=>h.BackupAppStorageTask,CleanDeviceDeviceAction:()=>y.CleanDeviceDeviceAction,CommitRestoreAppStorageCommand:()=>c.CommitRestoreAppStorageCommand,CommitRestoreAppStorageCommandError:()=>c.CommitRestoreAppStorageCommandError,CreateBackupDeviceAction:()=>f.CreateBackupDeviceAction,CustomLockScreenDeviceInternalErrorDAError:()=>e.CustomLockScreenDeviceInternalErrorDAError,DeviceInRecoveryModeDAError:()=>e.DeviceInRecoveryModeDAError,DownloadCustomLockScreenDeviceAction:()=>k.DownloadCustomLockScreenDeviceAction,FlashMcuDeviceAction:()=>O.FlashMcuDeviceAction,GetAppStorageInfoCommand:()=>I.GetAppStorageInfoCommand,GetCustomLockScreenInfoDeviceAction:()=>v.GetCustomLockScreenInfoDeviceAction,ImageCropError:()=>a.ImageCropError,ImageResizeError:()=>a.ImageResizeError,ImageSizeLoadingError:()=>a.ImageSizeLoadingError,InitRestoreAppStorageCommand:()=>n.InitRestoreAppStorageCommand,InitRestoreAppStorageCommandError:()=>n.InitRestoreAppStorageCommandError,InstallOsUpdateDeviceAction:()=>E.InstallOsUpdateDeviceAction,InvalidCustomLockScreenImageDataDAError:()=>e.InvalidCustomLockScreenImageDataDAError,InvalidCustomLockScreenStateDAError:()=>e.InvalidCustomLockScreenStateDAError,NoCustomLockScreenImageDAError:()=>e.NoCustomLockScreenImageDAError,RemoveCustomLockScreenDeviceAction:()=>B.RemoveCustomLockScreenDeviceAction,RequestMasterConsentCommand:()=>g.RequestMasterConsentCommand,ResolveOsUpdatePathDeviceAction:()=>x.ResolveOsUpdatePathDeviceAction,RestoreAppStorageCommand:()=>m.RestoreAppStorageCommand,RestoreAppStorageCommandError:()=>m.RestoreAppStorageCommandError,RestoreAppStorageTask:()=>q.RestoreAppStorageTask,RestoreAppsStorageDeviceAction:()=>L.RestoreAppsStorageDeviceAction,RestoreBackupDeviceAction:()=>U.RestoreBackupDeviceAction,UploadCustomLockScreenDeviceAction:()=>F.UploadCustomLockScreenDeviceAction,centerCropResizeImage:()=>S.centerCropResizeImage,decodeImageFromDevice:()=>d.decodeImageFromDevice,encodeImageForDevice:()=>A.encodeImageForDevice,getScreenSpecs:()=>r.getScreenSpecs,getScreenVisibleAreaDimensions:()=>r.getScreenVisibleAreaDimensions,isCustomLockScreenSupported:()=>r.isCustomLockScreenSupported,loadImageFromFile:()=>D.loadImageFromFile,processImage:()=>C.convertToGrayscale,renderPixelDataToImage:()=>l.renderPixelDataToImage});module.exports=T(z);var d=require("./api/customLockScreenUtils/codec/decodeImageFromDevice"),A=require("./api/customLockScreenUtils/codec/encodeImageForDevice"),D=require("./api/customLockScreenUtils/fit/canvasUtils"),S=require("./api/customLockScreenUtils/fit/imageFit"),C=require("./api/customLockScreenUtils/grayscale/grayscaleDithering"),l=require("./api/customLockScreenUtils/grayscale/pixelDataRenderer"),r=require("./api/customLockScreenUtils/screenSpecs"),a=require("./api/customLockScreenUtils/types"),e=require("./api/device-action/customLockScreenDeviceActionErrors"),R=require("./api/command/OsUpdate/Backup/BackupAppStorageCommand"),I=require("./api/command/OsUpdate/Backup/GetAppStorageInfoCommand"),c=require("./api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand"),n=require("./api/command/OsUpdate/Restore/InitRestoreAppStorageCommand"),g=require("./api/command/OsUpdate/Restore/RequestMasterConsentCommand"),m=require("./api/command/OsUpdate/Restore/RestoreAppStorageCommand"),k=require("./api/device-action/DownloadCustomLockScreen/DownloadCustomLockScreenDeviceAction"),v=require("./api/device-action/GetCustomLockScreenInfo/GetCustomLockScreenInfoDeviceAction"),f=require("./api/device-action/OsUpdate/Backup/CreateBackupDeviceAction"),y=require("./api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction"),x=require("./api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction"),L=require("./api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction"),U=require("./api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction"),O=require("./api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction"),E=require("./api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction"),B=require("./api/device-action/RemoveCustomLockScreen/RemoveCustomLockScreenDeviceAction"),F=require("./api/device-action/UploadCustomLockScreen/UploadCustomLockScreenDeviceAction"),h=require("./api/task/OsUpdate/Backup/BackupAppStorageTask"),q=require("./api/task/OsUpdate/Restore/RestoreAppStorageTask");0&&(module.exports={BackupAppStorageCommand,BackupAppStorageTask,CleanDeviceDeviceAction,CommitRestoreAppStorageCommand,CommitRestoreAppStorageCommandError,CreateBackupDeviceAction,CustomLockScreenDeviceInternalErrorDAError,DeviceInRecoveryModeDAError,DownloadCustomLockScreenDeviceAction,FlashMcuDeviceAction,GetAppStorageInfoCommand,GetCustomLockScreenInfoDeviceAction,ImageCropError,ImageResizeError,ImageSizeLoadingError,InitRestoreAppStorageCommand,InitRestoreAppStorageCommandError,InstallOsUpdateDeviceAction,InvalidCustomLockScreenImageDataDAError,InvalidCustomLockScreenStateDAError,NoCustomLockScreenImageDAError,RemoveCustomLockScreenDeviceAction,RequestMasterConsentCommand,ResolveOsUpdatePathDeviceAction,RestoreAppStorageCommand,RestoreAppStorageCommandError,RestoreAppStorageTask,RestoreAppsStorageDeviceAction,RestoreBackupDeviceAction,UploadCustomLockScreenDeviceAction,centerCropResizeImage,decodeImageFromDevice,encodeImageForDevice,getScreenSpecs,getScreenVisibleAreaDimensions,isCustomLockScreenSupported,loadImageFromFile,processImage,renderPixelDataToImage});
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["// Custom Lock Screen Utilities - Codec (device binary format)\nexport type { DecodeImageFromDeviceResult } from \"./api/customLockScreenUtils/codec/decodeImageFromDevice\";\nexport { decodeImageFromDevice } from \"./api/customLockScreenUtils/codec/decodeImageFromDevice\";\nexport type { EncodeImageForDeviceArgs } from \"./api/customLockScreenUtils/codec/encodeImageForDevice\";\nexport { encodeImageForDevice } from \"./api/customLockScreenUtils/codec/encodeImageForDevice\";\n\n// Custom Lock Screen Utilities - Fit (resize/crop to screen)\n// Note: These functions require a Web runtime environment (browser)\nexport { loadImageFromFile } from \"./api/customLockScreenUtils/fit/canvasUtils\";\nexport { centerCropResizeImage } from \"./api/customLockScreenUtils/fit/imageFit\";\n\n// Custom Lock Screen Utilities - Grayscale (color conversion & dithering)\n// Note: These functions require a Web runtime environment (browser)\nexport { convertToGrayscale as processImage } from \"./api/customLockScreenUtils/grayscale/grayscaleDithering\";\nexport { renderPixelDataToImage } from \"./api/customLockScreenUtils/grayscale/pixelDataRenderer\";\n\n// Custom Lock Screen Utilities - Screen Specs\nexport type {\n CLSSupportedDeviceModelId,\n ScreenSpecs,\n} from \"./api/customLockScreenUtils/screenSpecs\";\nexport {\n getScreenSpecs,\n getScreenVisibleAreaDimensions,\n isCustomLockScreenSupported,\n} from \"./api/customLockScreenUtils/screenSpecs\";\n\n// Custom Lock Screen Utilities - Types\nexport type {\n CenteredResult,\n DitheringAlgorithm,\n ImageDimensions,\n ProcessImageArgs,\n ProcessorResult,\n RenderPixelDataToImageArgs,\n RenderPixelDataToImageResult,\n} from \"./api/customLockScreenUtils/types\";\nexport {\n ImageCropError,\n ImageResizeError,\n ImageSizeLoadingError,\n} from \"./api/customLockScreenUtils/types\";\nexport {\n CustomLockScreenDeviceInternalErrorDAError,\n DeviceInRecoveryModeDAError,\n type DownloadCommandsDAError,\n InvalidCustomLockScreenImageDataDAError,\n InvalidCustomLockScreenStateDAError,\n NoCustomLockScreenImageDAError,\n type RemoveCommandDAError,\n type UploadCommandsDAError,\n} from \"./api/device-action/customLockScreenDeviceActionErrors\";\n\n// Device Actions\nexport { DownloadCustomLockScreenDeviceAction } from \"./api/device-action/DownloadCustomLockScreen/DownloadCustomLockScreenDeviceAction\";\nexport type {\n DownloadCustomLockScreenDAError,\n DownloadCustomLockScreenDAInput,\n DownloadCustomLockScreenDAIntermediateValue,\n DownloadCustomLockScreenDAOutput,\n DownloadCustomLockScreenDARequiredInteraction,\n DownloadCustomLockScreenDAState,\n} from \"./api/device-action/DownloadCustomLockScreen/types\";\nexport { GetCustomLockScreenInfoDeviceAction } from \"./api/device-action/GetCustomLockScreenInfo/GetCustomLockScreenInfoDeviceAction\";\nexport type {\n GetCustomLockScreenInfoDAError,\n GetCustomLockScreenInfoDAInput,\n GetCustomLockScreenInfoDAIntermediateValue,\n GetCustomLockScreenInfoDAOutput,\n GetCustomLockScreenInfoDARequiredInteraction,\n GetCustomLockScreenInfoDAState,\n} from \"./api/device-action/GetCustomLockScreenInfo/types\";\nexport { RemoveCustomLockScreenDeviceAction } from \"./api/device-action/RemoveCustomLockScreen/RemoveCustomLockScreenDeviceAction\";\nexport type {\n RemoveCustomLockScreenDAError,\n RemoveCustomLockScreenDAInput,\n RemoveCustomLockScreenDAIntermediateValue,\n RemoveCustomLockScreenDAOutput,\n RemoveCustomLockScreenDARequiredInteraction,\n RemoveCustomLockScreenDAState,\n} from \"./api/device-action/RemoveCustomLockScreen/types\";\nexport type {\n UploadCustomLockScreenDAError,\n UploadCustomLockScreenDAInput,\n UploadCustomLockScreenDAIntermediateValue,\n UploadCustomLockScreenDAOutput,\n UploadCustomLockScreenDARequiredInteraction,\n UploadCustomLockScreenDAState,\n} from \"./api/device-action/UploadCustomLockScreen/types\";\nexport { UploadCustomLockScreenDeviceAction } from \"./api/device-action/UploadCustomLockScreen/UploadCustomLockScreenDeviceAction\";\n"],
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,
|
|
6
|
-
"names": ["index_exports", "__export", "__toCommonJS", "import_decodeImageFromDevice", "import_encodeImageForDevice", "import_canvasUtils", "import_imageFit", "import_grayscaleDithering", "import_pixelDataRenderer", "import_screenSpecs", "import_types", "import_customLockScreenDeviceActionErrors", "import_DownloadCustomLockScreenDeviceAction", "import_GetCustomLockScreenInfoDeviceAction", "import_RemoveCustomLockScreenDeviceAction", "import_UploadCustomLockScreenDeviceAction"]
|
|
4
|
+
"sourcesContent": ["// Custom Lock Screen Utilities - Codec (device binary format)\nexport type { DecodeImageFromDeviceResult } from \"./api/customLockScreenUtils/codec/decodeImageFromDevice\";\nexport { decodeImageFromDevice } from \"./api/customLockScreenUtils/codec/decodeImageFromDevice\";\nexport type { EncodeImageForDeviceArgs } from \"./api/customLockScreenUtils/codec/encodeImageForDevice\";\nexport { encodeImageForDevice } from \"./api/customLockScreenUtils/codec/encodeImageForDevice\";\n\n// Custom Lock Screen Utilities - Fit (resize/crop to screen)\n// Note: These functions require a Web runtime environment (browser)\nexport { loadImageFromFile } from \"./api/customLockScreenUtils/fit/canvasUtils\";\nexport { centerCropResizeImage } from \"./api/customLockScreenUtils/fit/imageFit\";\n\n// Custom Lock Screen Utilities - Grayscale (color conversion & dithering)\n// Note: These functions require a Web runtime environment (browser)\nexport { convertToGrayscale as processImage } from \"./api/customLockScreenUtils/grayscale/grayscaleDithering\";\nexport { renderPixelDataToImage } from \"./api/customLockScreenUtils/grayscale/pixelDataRenderer\";\n\n// Custom Lock Screen Utilities - Screen Specs\nexport type {\n CLSSupportedDeviceModelId,\n ScreenSpecs,\n} from \"./api/customLockScreenUtils/screenSpecs\";\nexport {\n getScreenSpecs,\n getScreenVisibleAreaDimensions,\n isCustomLockScreenSupported,\n} from \"./api/customLockScreenUtils/screenSpecs\";\n\n// Custom Lock Screen Utilities - Types\nexport type {\n CenteredResult,\n DitheringAlgorithm,\n ImageDimensions,\n ProcessImageArgs,\n ProcessorResult,\n RenderPixelDataToImageArgs,\n RenderPixelDataToImageResult,\n} from \"./api/customLockScreenUtils/types\";\nexport {\n ImageCropError,\n ImageResizeError,\n ImageSizeLoadingError,\n} from \"./api/customLockScreenUtils/types\";\nexport {\n CustomLockScreenDeviceInternalErrorDAError,\n DeviceInRecoveryModeDAError,\n type DownloadCommandsDAError,\n InvalidCustomLockScreenImageDataDAError,\n InvalidCustomLockScreenStateDAError,\n NoCustomLockScreenImageDAError,\n type RemoveCommandDAError,\n type UploadCommandsDAError,\n} from \"./api/device-action/customLockScreenDeviceActionErrors\";\n\n// Device Actions\nexport {\n BackupAppStorageCommand,\n type BackupAppStorageCommandErrorCodes,\n type BackupAppStorageCommandResponse,\n type BackupAppStorageCommandResult,\n} from \"./api/command/OsUpdate/Backup/BackupAppStorageCommand\";\nexport {\n GetAppStorageInfoCommand,\n type GetAppStorageInfoCommandArgs,\n type GetAppStorageInfoCommandErrorCodes,\n type GetAppStorageInfoCommandResponse,\n type GetAppStorageInfoCommandResult,\n} from \"./api/command/OsUpdate/Backup/GetAppStorageInfoCommand\";\nexport {\n CommitRestoreAppStorageCommand,\n CommitRestoreAppStorageCommandError,\n type CommitRestoreAppStorageCommandErrorCodes,\n type CommitRestoreAppStorageCommandResult,\n} from \"./api/command/OsUpdate/Restore/CommitRestoreAppStorageCommand\";\nexport {\n InitRestoreAppStorageCommand,\n type InitRestoreAppStorageCommandArgs,\n InitRestoreAppStorageCommandError,\n type InitRestoreAppStorageCommandErrorCodes,\n type InitRestoreAppStorageCommandResult,\n} from \"./api/command/OsUpdate/Restore/InitRestoreAppStorageCommand\";\nexport {\n RequestMasterConsentCommand,\n type RequestMasterConsentCommandArgs,\n type RequestMasterConsentCommandErrorCodes,\n type RequestMasterConsentCommandResult,\n} from \"./api/command/OsUpdate/Restore/RequestMasterConsentCommand\";\nexport {\n RestoreAppStorageCommand,\n type RestoreAppStorageCommandArgs,\n RestoreAppStorageCommandError,\n type RestoreAppStorageCommandErrorCodes,\n type RestoreAppStorageCommandResult,\n} from \"./api/command/OsUpdate/Restore/RestoreAppStorageCommand\";\nexport { DownloadCustomLockScreenDeviceAction } from \"./api/device-action/DownloadCustomLockScreen/DownloadCustomLockScreenDeviceAction\";\nexport type {\n DownloadCustomLockScreenDAError,\n DownloadCustomLockScreenDAInput,\n DownloadCustomLockScreenDAIntermediateValue,\n DownloadCustomLockScreenDAOutput,\n DownloadCustomLockScreenDARequiredInteraction,\n DownloadCustomLockScreenDAState,\n} from \"./api/device-action/DownloadCustomLockScreen/types\";\nexport { GetCustomLockScreenInfoDeviceAction } from \"./api/device-action/GetCustomLockScreenInfo/GetCustomLockScreenInfoDeviceAction\";\nexport type {\n GetCustomLockScreenInfoDAError,\n GetCustomLockScreenInfoDAInput,\n GetCustomLockScreenInfoDAIntermediateValue,\n GetCustomLockScreenInfoDAOutput,\n GetCustomLockScreenInfoDARequiredInteraction,\n GetCustomLockScreenInfoDAState,\n} from \"./api/device-action/GetCustomLockScreenInfo/types\";\nexport { CreateBackupDeviceAction } from \"./api/device-action/OsUpdate/Backup/CreateBackupDeviceAction\";\nexport type {\n CreateBackupDAError,\n CreateBackupDAInput,\n CreateBackupDAIntermediateValue,\n CreateBackupDAOutput,\n CreateBackupDARequiredInteraction,\n CreateBackupDAState,\n CreateBackupSteps,\n} from \"./api/device-action/OsUpdate/Backup/types\";\nexport { CleanDeviceDeviceAction } from \"./api/device-action/OsUpdate/CleanDevice/CleanDeviceDeviceAction\";\nexport type {\n CleanDeviceDAError,\n CleanDeviceDAInput,\n CleanDeviceDAIntermediateValue,\n CleanDeviceDAOutput,\n CleanDeviceDARequiredInteraction,\n CleanDeviceDAState,\n} from \"./api/device-action/OsUpdate/CleanDevice/types\";\nexport { ResolveOsUpdatePathDeviceAction } from \"./api/device-action/OsUpdate/Resolve/ResolveOsUpdatePathDeviceAction\";\nexport type {\n ResolveOsUpdatePathDAError,\n ResolveOsUpdatePathDAInput,\n ResolveOsUpdatePathDAIntermediateValue,\n ResolveOsUpdatePathDAOutput,\n ResolveOsUpdatePathDARequiredInteraction,\n ResolveOsUpdatePathDAState,\n ResolveOsUpdatePathSteps,\n} from \"./api/device-action/OsUpdate/Resolve/types\";\nexport { RestoreAppsStorageDeviceAction } from \"./api/device-action/OsUpdate/Restore/RestoreAppsStorage/RestoreAppsStorageDeviceAction\";\nexport type {\n RestoreAppsStorageDAError,\n RestoreAppsStorageDAInput,\n RestoreAppsStorageDAIntermediateValue,\n RestoreAppsStorageDAOutput,\n RestoreAppsStorageDARequiredInteraction,\n RestoreAppsStorageDAState,\n RestoreAppsStorageSteps,\n RestoreAppStorageResult,\n} from \"./api/device-action/OsUpdate/Restore/RestoreAppsStorage/types\";\nexport { RestoreBackupDeviceAction } from \"./api/device-action/OsUpdate/Restore/RestoreBackup/RestoreBackupDeviceAction\";\nexport type {\n RestoreAppResult,\n RestoreBackupDAError,\n RestoreBackupDAInput,\n RestoreBackupDAIntermediateValue,\n RestoreBackupDAOutput,\n RestoreBackupDARequiredInteraction,\n RestoreBackupDAState,\n RestoreBackupSteps,\n} from \"./api/device-action/OsUpdate/Restore/RestoreBackup/types\";\nexport type {\n BaseFirmware,\n FinalFirmware,\n McuFirmware,\n OsuFirmware,\n OsUpdate,\n} from \"./api/device-action/OsUpdate/Shared/types\";\nexport { FlashMcuDeviceAction } from \"./api/device-action/OsUpdate/Update/FlashMcu/FlashMcuDeviceAction\";\nexport type {\n FlashMcuDAError,\n FlashMcuDAInput,\n FlashMcuDAIntermediateValue,\n FlashMcuDARequiredInteraction,\n FlashMcuDAState,\n FlashMcuSteps,\n} from \"./api/device-action/OsUpdate/Update/FlashMcu/types\";\nexport { InstallOsUpdateDeviceAction } from \"./api/device-action/OsUpdate/Update/InstallOsUpdate/InstallOsUpdateDeviceAction\";\nexport type {\n InstallOsUpdateDAError,\n InstallOsUpdateDAInput,\n InstallOsUpdateDAIntermediateValue,\n InstallOsUpdateDARequiredInteraction,\n InstallOsUpdateDAState,\n InstallOsUpdateSteps,\n} from \"./api/device-action/OsUpdate/Update/InstallOsUpdate/types\";\nexport { RemoveCustomLockScreenDeviceAction } from \"./api/device-action/RemoveCustomLockScreen/RemoveCustomLockScreenDeviceAction\";\nexport type {\n RemoveCustomLockScreenDAError,\n RemoveCustomLockScreenDAInput,\n RemoveCustomLockScreenDAIntermediateValue,\n RemoveCustomLockScreenDAOutput,\n RemoveCustomLockScreenDARequiredInteraction,\n RemoveCustomLockScreenDAState,\n} from \"./api/device-action/RemoveCustomLockScreen/types\";\nexport type {\n UploadCustomLockScreenDAError,\n UploadCustomLockScreenDAInput,\n UploadCustomLockScreenDAIntermediateValue,\n UploadCustomLockScreenDAOutput,\n UploadCustomLockScreenDARequiredInteraction,\n UploadCustomLockScreenDAState,\n} from \"./api/device-action/UploadCustomLockScreen/types\";\nexport { UploadCustomLockScreenDeviceAction } from \"./api/device-action/UploadCustomLockScreen/UploadCustomLockScreenDeviceAction\";\nexport { BackupAppStorageTask } from \"./api/task/OsUpdate/Backup/BackupAppStorageTask\";\nexport {\n RestoreAppStorageTask,\n type RestoreAppStorageTaskArgs,\n type RestoreAppStorageTaskError,\n} from \"./api/task/OsUpdate/Restore/RestoreAppStorageTask\";\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,00EAAAE,EAAAF,GAEA,IAAAG,EAAsC,mEAEtCC,EAAqC,kEAIrCC,EAAkC,uDAClCC,EAAsC,oDAItCC,EAAmD,oEACnDC,EAAuC,mEAOvCC,EAIO,mDAYPC,EAIO,6CACPC,EASO,kEAGPC,EAKO,iEACPC,EAMO,kEACPC,EAKO,yEACPC,EAMO,uEACPC,EAKO,sEACPC,EAMO,mEACPC,EAAqD,6FASrDC,EAAoD,2FASpDC,EAAyC,wEAUzCC,EAAwC,4EASxCC,EAAgD,gFAUhDC,EAA+C,kGAW/CC,EAA0C,wFAkB1CC,EAAqC,6EASrCC,EAA4C,2FAS5CC,EAAmD,yFAiBnDC,EAAmD,yFACnDC,EAAqC,2DACrCC,EAIO",
|
|
6
|
+
"names": ["index_exports", "__export", "__toCommonJS", "import_decodeImageFromDevice", "import_encodeImageForDevice", "import_canvasUtils", "import_imageFit", "import_grayscaleDithering", "import_pixelDataRenderer", "import_screenSpecs", "import_types", "import_customLockScreenDeviceActionErrors", "import_BackupAppStorageCommand", "import_GetAppStorageInfoCommand", "import_CommitRestoreAppStorageCommand", "import_InitRestoreAppStorageCommand", "import_RequestMasterConsentCommand", "import_RestoreAppStorageCommand", "import_DownloadCustomLockScreenDeviceAction", "import_GetCustomLockScreenInfoDeviceAction", "import_CreateBackupDeviceAction", "import_CleanDeviceDeviceAction", "import_ResolveOsUpdatePathDeviceAction", "import_RestoreAppsStorageDeviceAction", "import_RestoreBackupDeviceAction", "import_FlashMcuDeviceAction", "import_InstallOsUpdateDeviceAction", "import_RemoveCustomLockScreenDeviceAction", "import_UploadCustomLockScreenDeviceAction", "import_BackupAppStorageTask", "import_RestoreAppStorageTask"]
|
|
7
7
|
}
|
package/lib/cjs/package.json
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"dependencies": {
|
|
3
|
-
"@ledgerhq/signer-utils": "^1.
|
|
3
|
+
"@ledgerhq/signer-utils": "^1.3.0",
|
|
4
4
|
"pako": "^2.1.0",
|
|
5
5
|
"purify-ts": "catalog:",
|
|
6
|
+
"rxjs": "catalog:",
|
|
7
|
+
"semver": "catalog:",
|
|
6
8
|
"xstate": "catalog:"
|
|
7
9
|
},
|
|
8
10
|
"devDependencies": {
|
|
@@ -13,6 +15,7 @@
|
|
|
13
15
|
"@ledgerhq/tsconfig-dsdk": "workspace:^",
|
|
14
16
|
"@ledgerhq/vitest-config-dmk": "workspace:^",
|
|
15
17
|
"@types/pako": "^2.0.3",
|
|
18
|
+
"@types/semver": "catalog:",
|
|
16
19
|
"ts-node": "catalog:"
|
|
17
20
|
},
|
|
18
21
|
"exports": {
|
|
@@ -56,5 +59,5 @@
|
|
|
56
59
|
"watch:builds": "pnpm ldmk-tool watch --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
|
|
57
60
|
"watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\""
|
|
58
61
|
},
|
|
59
|
-
"version": "0.
|
|
62
|
+
"version": "0.4.0"
|
|
60
63
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{ApduBuilder as d,ApduParser as m,CommandResultFactory as r,CommandUtils as s,DeviceExchangeError as c,GlobalCommandErrorHandler as u,InvalidStatusWordError as C,isCommandErrorCode as g}from"@ledgerhq/device-management-kit";const p={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 i extends c{constructor(e){super({tag:"BackupAppStorageCommandError",...e})}}class A{name="BackupAppStorage";header={cla:224,ins:107,p1:0,p2:0};getApdu(){return new d(this.header).build()}parseResponse(e){const a=new m(e);if(!s.isSuccessResponse(e)){const t=a.encodeToHexaString(e.statusCode);return g(t,p)?r({error:new i({...p[t],errorCode:t})}):r({error:u.handle(e)})}const o=a.extractFieldByLength(a.getUnparsedRemainingLength());return o===void 0?r({error:new C("Failed to extract app storage data chunk")}):r({data:{chunkData:o,chunkSize:o.length}})}}export{p as BACKUP_APP_STORAGE_ERRORS,A as BackupAppStorageCommand,i as 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": "AAAA,OAEE,eAAAA,EACA,cAAAC,EAMA,wBAAAC,EACA,gBAAAC,EACA,uBAAAC,EACA,6BAAAC,EACA,0BAAAC,EACA,sBAAAC,MACK,kCAgBA,MAAMC,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,MAAMC,UAAqCL,CAAuD,CACvG,YAAYM,EAA2D,CACrE,MAAM,CAAE,IAAK,+BAAgC,GAAGA,CAAK,CAAC,CACxD,CACF,CAOO,MAAMC,CAOb,CACW,KAAO,mBAEC,OAAS,CACxB,IAAK,IACL,IAAK,IACL,GAAI,EACJ,GAAI,CACN,EAEA,SAAgB,CACd,OAAO,IAAIX,EAAY,KAAK,MAAM,EAAE,MAAM,CAC5C,CAEA,cAAcY,EAA2D,CACvE,MAAMC,EAAS,IAAIZ,EAAWW,CAAY,EAE1C,GAAI,CAACT,EAAa,kBAAkBS,CAAY,EAAG,CACjD,MAAME,EAAYD,EAAO,mBAAmBD,EAAa,UAAU,EACnE,OAAIL,EAAmBO,EAAWN,CAAyB,EAClDN,EAAqB,CAC1B,MAAO,IAAIO,EAA6B,CACtC,GAAGD,EAA0BM,CAAS,EACtC,UAAAA,CACF,CAAC,CACH,CAAC,EAEIZ,EAAqB,CAC1B,MAAOG,EAA0B,OAAOO,CAAY,CACtD,CAAC,CACH,CAEA,MAAMG,EAAsBF,EAAO,qBACjCA,EAAO,2BAA2B,CACpC,EAEA,OAAIE,IAAwB,OACnBb,EAAqB,CAC1B,MAAO,IAAII,EACT,0CACF,CACF,CAAC,EAGIJ,EAAqB,CAC1B,KAAM,CACJ,UAAWa,EACX,UAAWA,EAAoB,MACjC,CACF,CAAC,CACH,CACF",
|
|
6
|
+
"names": ["ApduBuilder", "ApduParser", "CommandResultFactory", "CommandUtils", "DeviceExchangeError", "GlobalCommandErrorHandler", "InvalidStatusWordError", "isCommandErrorCode", "BACKUP_APP_STORAGE_ERRORS", "BackupAppStorageCommandError", "args", "BackupAppStorageCommand", "apduResponse", "parser", "errorCode", "appStorageDataChunk"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{ApduResponse as r,isSuccessCommandResult as c}from"@ledgerhq/device-management-kit";import{BackupAppStorageCommand as s}from"./BackupAppStorageCommand";describe("BackupAppStorageCommand",()=>{describe("Name",()=>{it("name should be 'BackupAppStorage'",()=>{const e=new s().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().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 r({statusCode:t,data:Uint8Array.from([171,205,239,1,35])}),a=new s().parseResponse(e);expect(c(a)).toBe(!0),expect(a).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 a=new r({statusCode:Uint8Array.from(t),data:new Uint8Array([])}),o=new s().parseResponse(a);expect(c(o)).toBe(!1),expect(o.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,OACE,gBAAAA,EACA,0BAAAC,MACK,kCAEP,OAAS,2BAAAC,MAA+B,4BAExC,SAAS,0BAA2B,IAAM,CACxC,SAAS,OAAQ,IAAM,CACrB,GAAG,oCAAqC,IAAM,CAK5C,MAAMC,EAHU,IAAID,EAAwB,EAGvB,KAGrB,OAAOC,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,IAAIH,EAAwB,EAAE,QAAQ,EAGnD,OAAOG,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,IAAIP,EAAa,CAChC,WAAAM,EACA,KAAM,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,EAAM,EAAI,CAAC,CACtD,CAAC,EAGKE,EAAS,IAAIN,EAAwB,EAAE,cAAcK,CAAQ,EAGnE,OAAON,EAAuBO,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,IAAIP,EAAa,CAChC,WAAY,WAAW,KAAKM,CAAU,EACtC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EAGKE,EAAS,IAAIN,EAAwB,EAAE,cAAcK,CAAQ,EAGnE,OAAON,EAAuBO,CAAM,CAAC,EAAE,KAAK,EAAK,EACjD,OAAQA,EAAuC,MAAM,OAAO,EAAE,KAC5DC,CACF,CACF,CACF,CACF,CAAC,CACH,CAAC",
|
|
6
|
+
"names": ["ApduResponse", "isSuccessCommandResult", "BackupAppStorageCommand", "name", "expectedApdu", "apdu", "statusCode", "response", "result", "expectedMessage"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{ApduBuilder as S,ApduParser as l,CommandResultFactory as t,CommandUtils as A,DeviceExchangeError as c,GlobalCommandErrorHandler as f,InvalidStatusWordError as s,isCommandErrorCode as u}from"@ledgerhq/device-management-kit";const g={5123:{message:"Application not found."},"662f":{message:"Device is in recovery mode."},"670a":{message:"Invalid application name length, two chars minimum."}};class I extends c{constructor(e){super({tag:"GetAppStorageInfoCommandError",...e})}}class G{constructor(e){this.args=e}name="GetAppStorageInfo";header={cla:224,ins:106,p1:0,p2:0};getApdu(){const{appName:e}=this.args;return new S(this.header).addAsciiStringToData(e).build()}parseResponse(e){const r=new l(e);if(!A.isSuccessResponse(e)){const o=r.encodeToHexaString(e.statusCode);return u(o,g)?t({error:new I({...g[o],errorCode:o})}):t({error:f.handle(e)})}const a=r.extract32BitUInt();if(a===void 0)return t({error:new s("Failed to extract app storage size")});let p="",m=!1,d=!1,i="";if(a!==0){const o=r.extract32BitUInt();if(o===void 0)return t({error:new s("Failed to extract app storage version")});p=o.toString(16);const n=r.extract16BitUInt();if(n===void 0)return t({error:new s("Failed to extract app storage properties")});m=(n&1)===1,d=(n&2)===2,i=r.encodeToHexaString(r.extractFieldByLength(32))}return t({data:{storageSize:a,storageVersion:p,hasSettings:m,hasData:d,storageHash:i}})}}export{g as GET_APP_STORAGE_INFO_ERRORS,G as GetAppStorageInfoCommand,I as 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": "AAAA,OAEE,eAAAA,EACA,cAAAC,EAMA,wBAAAC,EACA,gBAAAC,EACA,uBAAAC,EACA,6BAAAC,EACA,0BAAAC,EACA,sBAAAC,MACK,kCAgBA,MAAMC,EACX,CACE,KAAQ,CAAE,QAAS,wBAAyB,EAC5C,OAAQ,CAAE,QAAS,6BAA8B,EACjD,OAAQ,CAAE,QAAS,qDAAsD,CAC3E,EAEK,MAAMC,UAAsCL,CAAwD,CACzG,YAAYM,EAA4D,CACtE,MAAM,CAAE,IAAK,gCAAiC,GAAGA,CAAK,CAAC,CACzD,CACF,CAOO,MAAMC,CAOb,CAUE,YAA6BD,EAAoC,CAApC,UAAAA,CAAqC,CATzD,KAAO,oBAEC,OAAS,CACxB,IAAK,IACL,IAAK,IACL,GAAI,EACJ,GAAI,CACN,EAIA,SAAgB,CACd,KAAM,CAAE,QAAAE,CAAQ,EAAI,KAAK,KACzB,OAAO,IAAIZ,EAAY,KAAK,MAAM,EAAE,qBAAqBY,CAAO,EAAE,MAAM,CAC1E,CAEA,cAAcC,EAA4D,CACxE,MAAMC,EAAS,IAAIb,EAAWY,CAAY,EAC1C,GAAI,CAACV,EAAa,kBAAkBU,CAAY,EAAG,CACjD,MAAME,EAAYD,EAAO,mBAAmBD,EAAa,UAAU,EACnE,OAAIN,EAAmBQ,EAAWP,CAA2B,EACpDN,EAAqB,CAC1B,MAAO,IAAIO,EAA8B,CACvC,GAAGD,EAA4BO,CAAS,EACxC,UAAAA,CACF,CAAC,CACH,CAAC,EAEIb,EAAqB,CAC1B,MAAOG,EAA0B,OAAOQ,CAAY,CACtD,CAAC,CACH,CAEA,MAAMG,EAAiBF,EAAO,iBAAiB,EAC/C,GAAIE,IAAmB,OACrB,OAAOd,EAAqB,CAC1B,MAAO,IAAII,EAAuB,oCAAoC,CACxE,CAAC,EAGH,IAAIW,EAAoB,GACpBC,EAAwB,GACxBC,EAAoB,GACpBC,EAAO,GAEX,GAAIJ,IAAmB,EAAG,CACxB,MAAMK,EAA0BP,EAAO,iBAAiB,EACxD,GAAIO,IAA4B,OAC9B,OAAOnB,EAAqB,CAC1B,MAAO,IAAII,EACT,uCACF,CACF,CAAC,EAEHW,EAAoBI,EAAwB,SAAS,EAAE,EAMvD,MAAMC,EAAuBR,EAAO,iBAAiB,EACrD,GAAIQ,IAAyB,OAC3B,OAAOpB,EAAqB,CAC1B,MAAO,IAAII,EACT,0CACF,CACF,CAAC,EAGHY,GAAyBI,EAAuB,KAAO,EACvDH,GAAqBG,EAAuB,KAAO,EACnDF,EAAON,EAAO,mBAAmBA,EAAO,qBAAqB,EAAI,CAAC,CACpE,CAEA,OAAOZ,EAAqB,CAC1B,KAAM,CACJ,YAAac,EACb,eAAgBC,EAChB,YAAaC,EACb,QAASC,EACT,YAAaC,CACf,CACF,CAAC,CACH,CACF",
|
|
6
|
+
"names": ["ApduBuilder", "ApduParser", "CommandResultFactory", "CommandUtils", "DeviceExchangeError", "GlobalCommandErrorHandler", "InvalidStatusWordError", "isCommandErrorCode", "GET_APP_STORAGE_INFO_ERRORS", "GetAppStorageInfoCommandError", "args", "GetAppStorageInfoCommand", "appName", "apduResponse", "parser", "errorCode", "appStorageSize", "appStorageVersion", "hasAppStorageSettings", "hasAppStorageData", "hash", "appStorageVersionNumber", "appStorageProperties"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{ApduResponse as o,InvalidStatusWordError as p,isSuccessCommandResult as n}from"@ledgerhq/device-management-kit";import{GetAppStorageInfoCommand as s}from"./GetAppStorageInfoCommand";describe("GetAppStorageInfoCommand",()=>{describe("Name",()=>{it("name should be 'GetAppStorageInfo'",()=>{const e=new s({appName:"MyApp"}).name;expect(e).toBe("GetAppStorageInfo")})}),describe("Command",()=>{it("should return the correct APDU for getting the app storage info",()=>{const t=Uint8Array.from([224,106,0,0,5,77,121,65,112,112]),e=new s({appName:"MyApp"}).getApdu();expect(e.getRawApdu()).toEqual(t)})}),describe("Success response",()=>{it("should return correct app storage info when app storage size is not 0",()=>{const t=Uint8Array.from([144,0]),e=new o({statusCode:t,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])}),r=new s({appName:"MyApp"}).parseResponse(e);expect(n(r)).toBe(!0),expect(r).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 t=Uint8Array.from([144,0]),e=new o({statusCode:t,data:Uint8Array.from([0,0,0,0])}),r=new s({appName:"MyApp"}).parseResponse(e);expect(n(r)).toBe(!0),expect(r).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:t,expectedMessage:e})=>{const r=new o({statusCode:Uint8Array.from(t),data:new Uint8Array([])}),a=new s({appName:"MyApp"}).parseResponse(r);expect(n(a)).toBe(!1),expect(a.error.message).toBe(e)}),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:t,expectedOriginalMessage:e})=>{const r=new o({statusCode:Uint8Array.from([144,0]),data:t}),a=new s({appName:"MyApp"}).parseResponse(r);expect(n(a)).toBe(!1),expect(a.error).toBeInstanceOf(p),expect(a.error.originalError?.message).toBe(e)})})});
|
|
2
|
+
//# sourceMappingURL=GetAppStorageInfoCommand.test.js.map
|