Skip to content

Commit

Permalink
enable opt-in live attachments export feature
Browse files Browse the repository at this point in the history
* the feature can only be used if the network connection is "online" and a user is "signed-in" into the email account since live attachments loading and decrypting will be happening (attachments not stored in the local database)
  • Loading branch information
vladimiry committed Jul 26, 2020
1 parent 3480dd2 commit 09b131d
Show file tree
Hide file tree
Showing 35 changed files with 811 additions and 333 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ The way of verifying that the installation packages attached to the [releases](h
- :gear: **Reproducible builds**.
- :gear: **Cross platform**. The app works on Linux/OSX/Windows platforms.
- :mag_right: **Full-text search**. Enabled with [v2.2.0](https:/vladimiry/ElectronMail/releases/tag/v2.2.0) release. See the respective [issue](https:/vladimiry/ElectronMail/issues/92) for details.
- :package: **Offline access to the email messages** (only emails body content, not the attachments). The [local store](https://user-images.githubusercontent.com/1560781/51189497-382a6c00-18f1-11e9-9b9a-baa63f0c0ff4.gif) feature enables storing your messages in the encrypted `database.bin` file, so you could view your messages offline, perform a full-text search against them and export them to EML files. Enabled since [v2.0.0](https:/vladimiry/ElectronMail/releases/tag/v2.0.0) release.
- :package: **Offline access to the email messages** (only emails body content stored locally but not the attachments). The [local store](https://user-images.githubusercontent.com/1560781/51189497-382a6c00-18f1-11e9-9b9a-baa63f0c0ff4.gif) feature enables storing your messages in the encrypted `database.bin` file, so you could view your messages offline, perform a full-text search against them and export them to EML files. Enabled since [v2.0.0](https:/vladimiry/ElectronMail/releases/tag/v2.0.0) release.
- :mailbox: **Multi accounts** support per each email provider including supporting individual [entry point domains](https:/vladimiry/ElectronMail/issues/29).
- :unlock: **Automatic login into the app** with a remembered master password using [keytar](https:/atom/node-keytar) module ([keep me signed in](images/keep-me-signed-in.png) feature).
- :unlock: **Automatic login into the email accounts**, including filling [2FA tokens](https:/vladimiry/ElectronMail/issues/10). Two auto-login delay scenarios supported in order to make it harder to correlate the identities, see the respective [issue](https:/vladimiry/ElectronMail/issues/121).
Expand All @@ -41,8 +41,8 @@ The way of verifying that the installation packages attached to the [releases](h
- :gear: **Starting minimized to tray**.
- :gear: **Closing to tray**.
- :gear: **Switchable accounts handle buttons positioning** (`top` , `left`, `left-thin`). See details in [#36](https:/vladimiry/ElectronMail/issues/36) and [#175](https:/vladimiry/ElectronMail/issues/175). Demo screenshots placed in the [images](images) folder (specifically [this](images/controls-view-modes-(top-left-left_thing).gif) image).
- :package: **Batch emails export** to EML files (only emails body content, not the attachments). Feature released with [v2.0.0-beta.4](https:/vladimiry/ElectronMail/releases/tag/v2.0.0-beta.4) version, requires `local messages store` feature to be enabled ([how to enable](https:/vladimiry/ElectronMail/releases/tag/v2.0.0-beta.1)).
- :closed_lock_with_key: **Built-in/prepackaged web clients**. The built-in web clients are built from source code, see respective official [Protonmail](https:/ProtonMail/WebClient) repository. See [79](https:/vladimiry/ElectronMail/issues/79) and [80](https:/vladimiry/ElectronMail/issues/80) issues for details.
- :package: **Batch emails export** to EML files (attachments can optionally be exported in online/live mode). Feature released with [v2.0.0-beta.4](https:/vladimiry/ElectronMail/releases/tag/v2.0.0-beta.4) version, requires `local messages store` feature to be enabled ([how to enable](https:/vladimiry/ElectronMail/releases/tag/v2.0.0-beta.1)).
- :closed_lock_with_key: **Built-in/prepackaged web clients**. The prepackaged with the app proton web clients assembled from source code, see the respective [official repositories](https:/ProtonMail/). See [79](https:/vladimiry/ElectronMail/issues/79) and [80](https:/vladimiry/ElectronMail/issues/80) issues for details.
- :gear: **Configuring proxy per account** support. Enabled since [v3.0.0](https:/vladimiry/ElectronMail/releases/tag/v3.0.0) release. See [113](https:/vladimiry/ElectronMail/issues/113) and [120](https:/vladimiry/ElectronMail/issues/120) issues for details.
- :pencil: **Spell Checking**.

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "electron-mail",
"description": "Unofficial ProtonMail Desktop App",
"version": "4.6.1",
"version": "4.7.0",
"author": "Vladimir Yakovlev <[email protected]>",
"license": "MIT",
"homepage": "https:/vladimiry/ElectronMail",
Expand Down
6 changes: 4 additions & 2 deletions src/@types/globals.d.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {Observable, Subject} from "rxjs";
import {Observable, Subject, Subscriber} from "rxjs";

import {BuildEnvironment} from "webpack-configs/model";

Expand All @@ -13,10 +13,12 @@ declare global {
T extends Promise<infer U2> ? U2 :
T extends Observable<infer U3> ? U3 :
T extends Subject<infer U3> ? U3 :
T;
T extends Subscriber<infer U3> ? U3 :
T;

type Mutable<T> = import("ts-essentials").Writable<T>;

// TODO add "DeepNoExtraProperties" type
type NoExtraProperties<T, U extends T = T> = U & Impossible<Exclude<keyof U, keyof T>>;

type StrictOmit<T, K extends keyof T> = import("ts-essentials").StrictOmit<T, K>;
Expand Down
2 changes: 2 additions & 0 deletions src/electron-main/__test__/api/index.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ interface TestContext {
| "applySavedProtonBackendSession"
| "changeSpellCheckLocale"
| "dbExport"
| "dbExportMailAttachmentsNotification"
| "dbFullTextSearch"
| "dbGetAccountDataView"
| "dbGetAccountMail"
Expand All @@ -57,6 +58,7 @@ interface TestContext {
| "resolveSavedProtonClientSession"
| "saveProtonSession"
| "selectAccount"
| "selectPath"
| "spellCheck"
| "staticInit"
| "toggleBrowserWindow"
Expand Down
232 changes: 0 additions & 232 deletions src/electron-main/api/endpoints-builders/database/export.ts

This file was deleted.

Loading

0 comments on commit 09b131d

Please sign in to comment.