diff --git a/backup/src/jsMain/kotlin/com/wire/backup/dump/BackupExportResult.kt b/backup/src/jsMain/kotlin/com/wire/backup/dump/BackupExportResult.kt index 018c3d18c0..c46e881ee2 100644 --- a/backup/src/jsMain/kotlin/com/wire/backup/dump/BackupExportResult.kt +++ b/backup/src/jsMain/kotlin/com/wire/backup/dump/BackupExportResult.kt @@ -17,9 +17,13 @@ */ package com.wire.backup.dump +import org.khronos.webgl.Uint8Array + @JsExport public sealed class BackupExportResult { - public class Success(public val bytes: ByteArray) : BackupExportResult() + public class Success( + public val bytes: Uint8Array + ) : BackupExportResult() public sealed class Failure(public val message: String) : BackupExportResult() { /** * Represents an I/O error that occurs during an export process. diff --git a/backup/src/jsMain/kotlin/com/wire/backup/dump/MPBackupExporter.kt b/backup/src/jsMain/kotlin/com/wire/backup/dump/MPBackupExporter.kt index 09cdddcead..f483fc5a10 100644 --- a/backup/src/jsMain/kotlin/com/wire/backup/dump/MPBackupExporter.kt +++ b/backup/src/jsMain/kotlin/com/wire/backup/dump/MPBackupExporter.kt @@ -72,7 +72,7 @@ public actual class MPBackupExporter( when (val result = finalize(password, output)) { is ExportResult.Failure.IOError -> BackupExportResult.Failure.IOError(result.message) is ExportResult.Failure.ZipError -> BackupExportResult.Failure.ZipError(result.message) - ExportResult.Success -> BackupExportResult.Success(output.readByteArray()) + ExportResult.Success -> BackupExportResult.Success(output.readByteArray().toUByteArray().toUInt8Array()) } } } diff --git a/backup/src/jsMain/kotlin/com/wire/backup/ingest/MPBackupImporter.kt b/backup/src/jsMain/kotlin/com/wire/backup/ingest/MPBackupImporter.kt index 6aff20ced1..ddf1a69635 100644 --- a/backup/src/jsMain/kotlin/com/wire/backup/ingest/MPBackupImporter.kt +++ b/backup/src/jsMain/kotlin/com/wire/backup/ingest/MPBackupImporter.kt @@ -42,15 +42,15 @@ import kotlin.js.Promise public actual class MPBackupImporter : CommonMPBackupImporter() { private val inMemoryUnencryptedBuffer = Buffer() - public fun peekFileData(data: ByteArray): Promise = GlobalScope.promise { + public fun peekFileData(data: Uint8Array): Promise = GlobalScope.promise { val buffer = Buffer() - buffer.write(data) + buffer.write(data.toUByteArray().toByteArray()) peekBackup(buffer) } - public fun importFromFileData(data: ByteArray, passphrase: String?): Promise = GlobalScope.promise { + public fun importFromFileData(data: Uint8Array, passphrase: String?): Promise = GlobalScope.promise { val buffer = Buffer() - buffer.write(data) + buffer.write(data.toUByteArray().toByteArray()) importBackup(buffer, passphrase) } diff --git a/samples/src/jsMain/kotlin/samples/backup/BackupSamplesJs.kt b/samples/src/jsMain/kotlin/samples/backup/BackupSamplesJs.kt index 420cef8884..0587fc2794 100644 --- a/samples/src/jsMain/kotlin/samples/backup/BackupSamplesJs.kt +++ b/samples/src/jsMain/kotlin/samples/backup/BackupSamplesJs.kt @@ -22,6 +22,7 @@ import com.wire.backup.ingest.BackupPeekResult import com.wire.backup.ingest.MPBackupImporter import com.wire.backup.ingest.isCreatedBySameUser import kotlinx.coroutines.await +import org.khronos.webgl.Uint8Array object BackupSamplesJs : BackupSamples() { @@ -51,7 +52,7 @@ object BackupSamplesJs : BackupSamples() { println("Backup created file. Raw binary data: $fileData") } - suspend fun peekBackup(data: ByteArray) { + suspend fun peekBackup(data: Uint8Array) { // Peek into backup file val importer = MPBackupImporter()