@tutao/node-mimimi 322.260120.0 → 324.260126.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tutao/node-mimimi",
3
- "version": "322.260120.0",
3
+ "version": "324.260126.1",
4
4
  "main": "./dist/binding.js",
5
5
  "types": "./dist/binding.d.ts",
6
6
  "napi": {
@@ -13,7 +13,7 @@
13
13
  },
14
14
  "license": "MIT",
15
15
  "devDependencies": {
16
- "@tutao/otest": "322.260120.0",
16
+ "@tutao/otest": "324.260126.1",
17
17
  "@napi-rs/cli": "3.0.0-alpha.68",
18
18
  "typescript": "5.8.3",
19
19
  "zx": "8.6.1"
@@ -30,8 +30,8 @@
30
30
  "version": "napi version"
31
31
  },
32
32
  "optionalDependencies": {
33
- "@tutao/node-mimimi-win32-x64-msvc": "322.260120.0",
34
- "@tutao/node-mimimi-linux-x64-gnu": "322.260120.0",
35
- "@tutao/node-mimimi-darwin-universal": "322.260120.0"
33
+ "@tutao/node-mimimi-win32-x64-msvc": "324.260126.1",
34
+ "@tutao/node-mimimi-linux-x64-gnu": "324.260126.1",
35
+ "@tutao/node-mimimi-darwin-universal": "324.260126.1"
36
36
  }
37
37
  }
@@ -91,6 +91,8 @@ pub enum PreparationError {
91
91
  NotAValidEmailFile,
92
92
  /// Can not write eml file to import dir
93
93
  EmlFileWriteFailure,
94
+ /// An import in a finalised state (Cancelled or Finished) cannot be resumed
95
+ FinalisedImportCannotBeResumed,
94
96
  }
95
97
 
96
98
  /// Unification of Imap & File IterationError
@@ -149,6 +151,7 @@ impl From<PreparationError> for napi::Error {
149
151
  PreparationError::FileReadError => "FileReadError",
150
152
  PreparationError::NotAValidEmailFile => "NotAValidEmailFile",
151
153
  PreparationError::EmlFileWriteFailure => "EmlFileWriteFailure",
154
+ PreparationError::FinalisedImportCannotBeResumed => "FinalisedImportCannotBeResumed",
152
155
  };
153
156
 
154
157
  napi::Error::from_reason(code)
package/src/importer.rs CHANGED
@@ -383,6 +383,14 @@ impl Importer {
383
383
  PreparationError::CannotLoadRemoteState
384
384
  })?;
385
385
 
386
+ // Import cannot be resumed if it was already cancelled or finished.
387
+ let import_is_cancelled_or_finished = remote_import_state.status
388
+ == ImportStatus::Canceled as i64
389
+ || remote_import_state.status == ImportStatus::Finished as i64;
390
+ if import_is_cancelled_or_finished {
391
+ return Err(PreparationError::FinalisedImportCannotBeResumed);
392
+ }
393
+
386
394
  let target_mailset = remote_import_state.targetFolder;
387
395
 
388
396
  let importer = Importer::initialize(
@@ -54,14 +54,22 @@ impl ImporterApi {
54
54
  None => Ok(None),
55
55
 
56
56
  Some(saved_id_tuple) => {
57
- let importer = Importer::resume_file_importer(
57
+ let importer_result = Importer::resume_file_importer(
58
58
  &mailbox_id,
59
59
  config_directory,
60
60
  target_owner_group,
61
61
  tuta_credentials,
62
62
  saved_id_tuple,
63
63
  )
64
- .await?;
64
+ .await;
65
+
66
+ let importer = match importer_result {
67
+ Ok(importer) => importer,
68
+ Err(preparation_error) => match preparation_error {
69
+ PreparationError::FinalisedImportCannotBeResumed => return Ok(None),
70
+ _ => return Err(preparation_error.into()),
71
+ },
72
+ };
65
73
 
66
74
  Ok(Some(ImporterApi {
67
75
  importer: Arc::new(importer),