@bobfrankston/mailx 1.0.12 → 1.0.13
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/bin/mailx.js +47 -29
- package/client/app.js +93 -13
- package/client/components/folder-tree.js +84 -3
- package/client/components/message-list.js +134 -8
- package/client/components/message-viewer.js +130 -13
- package/client/compose/compose.html +4 -4
- package/client/compose/compose.js +53 -34
- package/client/index.html +33 -9
- package/client/lib/api-client.js +102 -30
- package/client/lib/mailxapi.js +123 -0
- package/client/package.json +1 -1
- package/client/styles/components.css +188 -15
- package/client/styles/layout.css +2 -1
- package/killmail.cmd +6 -0
- package/launch.ps1 +47 -5
- package/launcher/bin/mailx-app.exe +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Breadcrumbs +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Crashpad/metadata +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Crashpad/settings.dat +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Crashpad/throttle_store.dat +1 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/CrashpadMetrics-active.pma +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/BrowsingTopicsSiteData +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Cache/No_Vary_Search/journal.baj +1 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/DIPS +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/DashTrackerDatabase +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/EdgeJourneys/EdgeJourneys.db +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Extension Rules/LOCK +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Extension Rules/LOG +3 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Extension Rules/MANIFEST-000001 +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Extension Scripts/LOCK +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Extension Scripts/LOG +3 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Extension Scripts/MANIFEST-000001 +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Extension State/LOCK +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Extension State/LOG +3 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Extension State/MANIFEST-000001 +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/ExtensionActivityComp +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/ExtensionActivityEdge +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Favicons +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/History +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/History-journal +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/IndexedDB/devtools_devtools_0.indexeddb.leveldb/LOCK +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/IndexedDB/devtools_devtools_0.indexeddb.leveldb/LOG +3 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/IndexedDB/devtools_devtools_0.indexeddb.leveldb/MANIFEST-000001 +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Local Storage/leveldb/LOCK +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Local Storage/leveldb/LOG +3 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Local Storage/leveldb/MANIFEST-000001 +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Login Data +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Login Data For Account +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Network/Cookies +0 -0
- NEL +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Network/Trust Tokens +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Network Action Predictor +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Preferences +1 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Safe Browsing Network/Safe Browsing Cookies +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/ServerCertificate +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Session Storage/LOCK +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Session Storage/LOG +3 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Session Storage/MANIFEST-000001 +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Shared Dictionary/db +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/SharedStorage +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Shortcuts +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Site Characteristics Database/LOCK +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Site Characteristics Database/LOG +3 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Site Characteristics Database/MANIFEST-000001 +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Sync Data/LevelDB/LOCK +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Sync Data/LevelDB/LOG +3 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Sync Data/LevelDB/MANIFEST-000001 +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Top Sites +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Vpn Tokens +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Web Data +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Web Data-journal +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/WebStorage/QuotaManager +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/WebStorage/QuotaManager-journal +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/heavy_ad_intervention_opt_out.db +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/shared_proto_db/LOCK +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/shared_proto_db/LOG +3 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/shared_proto_db/MANIFEST-000001 +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/shared_proto_db/metadata/LOCK +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/shared_proto_db/metadata/LOG +3 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/shared_proto_db/metadata/MANIFEST-000001 +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/DeferredBrowserMetrics/BrowserMetrics-69CAD063-BE24.pma +0 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Local State +1 -0
- package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Variations +1 -0
- package/launcher/bin/mailx-app.old.exe +0 -0
- package/package.json +1 -1
- package/packages/mailx-api/index.js +79 -26
- package/packages/mailx-core/index.d.ts +129 -0
- package/packages/mailx-core/index.js +323 -0
- package/packages/mailx-core/ipc.d.ts +13 -0
- package/packages/mailx-core/ipc.js +56 -0
- package/packages/mailx-core/package.json +18 -0
- package/packages/mailx-imap/index.d.ts +5 -1
- package/packages/mailx-imap/index.js +76 -14
- package/packages/mailx-server/index.js +42 -31
- package/packages/mailx-server/package.json +1 -2
- package/packages/mailx-settings/index.d.ts +1 -1
- package/packages/mailx-settings/index.js +21 -12
- package/packages/mailx-store/db.d.ts +5 -1
- package/packages/mailx-store/db.js +64 -12
- package/packages/mailx-store/file-store.d.ts +2 -8
- package/packages/mailx-store/file-store.js +7 -31
- package/packages/mailx-types/index.d.ts +3 -1
- package/.tswalk.json +0 -7396
- package/launcher/release.cmd +0 -4
- package/mailx.json +0 -9
- package/packages/mailx-api/node_modules/nodemailer/.ncurc.js +0 -9
- package/packages/mailx-api/node_modules/nodemailer/.prettierignore +0 -8
- package/packages/mailx-api/node_modules/nodemailer/.prettierrc +0 -12
- package/packages/mailx-api/node_modules/nodemailer/.prettierrc.js +0 -10
- package/packages/mailx-api/node_modules/nodemailer/.release-please-config.json +0 -9
- package/packages/mailx-api/node_modules/nodemailer/LICENSE +0 -16
- package/packages/mailx-api/node_modules/nodemailer/README.md +0 -86
- package/packages/mailx-api/node_modules/nodemailer/SECURITY.txt +0 -22
- package/packages/mailx-api/node_modules/nodemailer/eslint.config.js +0 -88
- package/packages/mailx-api/node_modules/nodemailer/lib/addressparser/index.js +0 -383
- package/packages/mailx-api/node_modules/nodemailer/lib/base64/index.js +0 -139
- package/packages/mailx-api/node_modules/nodemailer/lib/dkim/index.js +0 -253
- package/packages/mailx-api/node_modules/nodemailer/lib/dkim/message-parser.js +0 -155
- package/packages/mailx-api/node_modules/nodemailer/lib/dkim/relaxed-body.js +0 -154
- package/packages/mailx-api/node_modules/nodemailer/lib/dkim/sign.js +0 -117
- package/packages/mailx-api/node_modules/nodemailer/lib/fetch/cookies.js +0 -281
- package/packages/mailx-api/node_modules/nodemailer/lib/fetch/index.js +0 -280
- package/packages/mailx-api/node_modules/nodemailer/lib/json-transport/index.js +0 -82
- package/packages/mailx-api/node_modules/nodemailer/lib/mail-composer/index.js +0 -629
- package/packages/mailx-api/node_modules/nodemailer/lib/mailer/index.js +0 -441
- package/packages/mailx-api/node_modules/nodemailer/lib/mailer/mail-message.js +0 -316
- package/packages/mailx-api/node_modules/nodemailer/lib/mime-funcs/index.js +0 -625
- package/packages/mailx-api/node_modules/nodemailer/lib/mime-funcs/mime-types.js +0 -2113
- package/packages/mailx-api/node_modules/nodemailer/lib/mime-node/index.js +0 -1316
- package/packages/mailx-api/node_modules/nodemailer/lib/mime-node/last-newline.js +0 -33
- package/packages/mailx-api/node_modules/nodemailer/lib/mime-node/le-unix.js +0 -43
- package/packages/mailx-api/node_modules/nodemailer/lib/mime-node/le-windows.js +0 -52
- package/packages/mailx-api/node_modules/nodemailer/lib/nodemailer.js +0 -157
- package/packages/mailx-api/node_modules/nodemailer/lib/punycode/index.js +0 -460
- package/packages/mailx-api/node_modules/nodemailer/lib/qp/index.js +0 -227
- package/packages/mailx-api/node_modules/nodemailer/lib/sendmail-transport/index.js +0 -210
- package/packages/mailx-api/node_modules/nodemailer/lib/ses-transport/index.js +0 -234
- package/packages/mailx-api/node_modules/nodemailer/lib/shared/index.js +0 -754
- package/packages/mailx-api/node_modules/nodemailer/lib/smtp-connection/data-stream.js +0 -108
- package/packages/mailx-api/node_modules/nodemailer/lib/smtp-connection/http-proxy-client.js +0 -143
- package/packages/mailx-api/node_modules/nodemailer/lib/smtp-connection/index.js +0 -1870
- package/packages/mailx-api/node_modules/nodemailer/lib/smtp-pool/index.js +0 -652
- package/packages/mailx-api/node_modules/nodemailer/lib/smtp-pool/pool-resource.js +0 -259
- package/packages/mailx-api/node_modules/nodemailer/lib/smtp-transport/index.js +0 -421
- package/packages/mailx-api/node_modules/nodemailer/lib/stream-transport/index.js +0 -135
- package/packages/mailx-api/node_modules/nodemailer/lib/well-known/index.js +0 -47
- package/packages/mailx-api/node_modules/nodemailer/lib/well-known/services.json +0 -611
- package/packages/mailx-api/node_modules/nodemailer/lib/xoauth2/index.js +0 -427
- package/packages/mailx-api/node_modules/nodemailer/package.json +0 -47
- package/packages/mailx-imap/node_modules/nodemailer/.ncurc.js +0 -9
- package/packages/mailx-imap/node_modules/nodemailer/.prettierignore +0 -8
- package/packages/mailx-imap/node_modules/nodemailer/.prettierrc +0 -12
- package/packages/mailx-imap/node_modules/nodemailer/.prettierrc.js +0 -10
- package/packages/mailx-imap/node_modules/nodemailer/.release-please-config.json +0 -9
- package/packages/mailx-imap/node_modules/nodemailer/LICENSE +0 -16
- package/packages/mailx-imap/node_modules/nodemailer/README.md +0 -86
- package/packages/mailx-imap/node_modules/nodemailer/SECURITY.txt +0 -22
- package/packages/mailx-imap/node_modules/nodemailer/eslint.config.js +0 -88
- package/packages/mailx-imap/node_modules/nodemailer/lib/addressparser/index.js +0 -383
- package/packages/mailx-imap/node_modules/nodemailer/lib/base64/index.js +0 -139
- package/packages/mailx-imap/node_modules/nodemailer/lib/dkim/index.js +0 -253
- package/packages/mailx-imap/node_modules/nodemailer/lib/dkim/message-parser.js +0 -155
- package/packages/mailx-imap/node_modules/nodemailer/lib/dkim/relaxed-body.js +0 -154
- package/packages/mailx-imap/node_modules/nodemailer/lib/dkim/sign.js +0 -117
- package/packages/mailx-imap/node_modules/nodemailer/lib/fetch/cookies.js +0 -281
- package/packages/mailx-imap/node_modules/nodemailer/lib/fetch/index.js +0 -280
- package/packages/mailx-imap/node_modules/nodemailer/lib/json-transport/index.js +0 -82
- package/packages/mailx-imap/node_modules/nodemailer/lib/mail-composer/index.js +0 -629
- package/packages/mailx-imap/node_modules/nodemailer/lib/mailer/index.js +0 -441
- package/packages/mailx-imap/node_modules/nodemailer/lib/mailer/mail-message.js +0 -316
- package/packages/mailx-imap/node_modules/nodemailer/lib/mime-funcs/index.js +0 -625
- package/packages/mailx-imap/node_modules/nodemailer/lib/mime-funcs/mime-types.js +0 -2113
- package/packages/mailx-imap/node_modules/nodemailer/lib/mime-node/index.js +0 -1316
- package/packages/mailx-imap/node_modules/nodemailer/lib/mime-node/last-newline.js +0 -33
- package/packages/mailx-imap/node_modules/nodemailer/lib/mime-node/le-unix.js +0 -43
- package/packages/mailx-imap/node_modules/nodemailer/lib/mime-node/le-windows.js +0 -52
- package/packages/mailx-imap/node_modules/nodemailer/lib/nodemailer.js +0 -157
- package/packages/mailx-imap/node_modules/nodemailer/lib/punycode/index.js +0 -460
- package/packages/mailx-imap/node_modules/nodemailer/lib/qp/index.js +0 -227
- package/packages/mailx-imap/node_modules/nodemailer/lib/sendmail-transport/index.js +0 -210
- package/packages/mailx-imap/node_modules/nodemailer/lib/ses-transport/index.js +0 -234
- package/packages/mailx-imap/node_modules/nodemailer/lib/shared/index.js +0 -754
- package/packages/mailx-imap/node_modules/nodemailer/lib/smtp-connection/data-stream.js +0 -108
- package/packages/mailx-imap/node_modules/nodemailer/lib/smtp-connection/http-proxy-client.js +0 -143
- package/packages/mailx-imap/node_modules/nodemailer/lib/smtp-connection/index.js +0 -1870
- package/packages/mailx-imap/node_modules/nodemailer/lib/smtp-pool/index.js +0 -652
- package/packages/mailx-imap/node_modules/nodemailer/lib/smtp-pool/pool-resource.js +0 -259
- package/packages/mailx-imap/node_modules/nodemailer/lib/smtp-transport/index.js +0 -421
- package/packages/mailx-imap/node_modules/nodemailer/lib/stream-transport/index.js +0 -135
- package/packages/mailx-imap/node_modules/nodemailer/lib/well-known/index.js +0 -47
- package/packages/mailx-imap/node_modules/nodemailer/lib/well-known/services.json +0 -611
- package/packages/mailx-imap/node_modules/nodemailer/lib/xoauth2/index.js +0 -427
- package/packages/mailx-imap/node_modules/nodemailer/package.json +0 -47
- package/packages/mailx-send/node_modules/nodemailer/.ncurc.js +0 -9
- package/packages/mailx-send/node_modules/nodemailer/.prettierignore +0 -8
- package/packages/mailx-send/node_modules/nodemailer/.prettierrc +0 -12
- package/packages/mailx-send/node_modules/nodemailer/.prettierrc.js +0 -10
- package/packages/mailx-send/node_modules/nodemailer/.release-please-config.json +0 -9
- package/packages/mailx-send/node_modules/nodemailer/LICENSE +0 -16
- package/packages/mailx-send/node_modules/nodemailer/README.md +0 -86
- package/packages/mailx-send/node_modules/nodemailer/SECURITY.txt +0 -22
- package/packages/mailx-send/node_modules/nodemailer/eslint.config.js +0 -88
- package/packages/mailx-send/node_modules/nodemailer/lib/addressparser/index.js +0 -383
- package/packages/mailx-send/node_modules/nodemailer/lib/base64/index.js +0 -139
- package/packages/mailx-send/node_modules/nodemailer/lib/dkim/index.js +0 -253
- package/packages/mailx-send/node_modules/nodemailer/lib/dkim/message-parser.js +0 -155
- package/packages/mailx-send/node_modules/nodemailer/lib/dkim/relaxed-body.js +0 -154
- package/packages/mailx-send/node_modules/nodemailer/lib/dkim/sign.js +0 -117
- package/packages/mailx-send/node_modules/nodemailer/lib/fetch/cookies.js +0 -281
- package/packages/mailx-send/node_modules/nodemailer/lib/fetch/index.js +0 -280
- package/packages/mailx-send/node_modules/nodemailer/lib/json-transport/index.js +0 -82
- package/packages/mailx-send/node_modules/nodemailer/lib/mail-composer/index.js +0 -629
- package/packages/mailx-send/node_modules/nodemailer/lib/mailer/index.js +0 -441
- package/packages/mailx-send/node_modules/nodemailer/lib/mailer/mail-message.js +0 -316
- package/packages/mailx-send/node_modules/nodemailer/lib/mime-funcs/index.js +0 -625
- package/packages/mailx-send/node_modules/nodemailer/lib/mime-funcs/mime-types.js +0 -2113
- package/packages/mailx-send/node_modules/nodemailer/lib/mime-node/index.js +0 -1316
- package/packages/mailx-send/node_modules/nodemailer/lib/mime-node/last-newline.js +0 -33
- package/packages/mailx-send/node_modules/nodemailer/lib/mime-node/le-unix.js +0 -43
- package/packages/mailx-send/node_modules/nodemailer/lib/mime-node/le-windows.js +0 -52
- package/packages/mailx-send/node_modules/nodemailer/lib/nodemailer.js +0 -157
- package/packages/mailx-send/node_modules/nodemailer/lib/punycode/index.js +0 -460
- package/packages/mailx-send/node_modules/nodemailer/lib/qp/index.js +0 -227
- package/packages/mailx-send/node_modules/nodemailer/lib/sendmail-transport/index.js +0 -210
- package/packages/mailx-send/node_modules/nodemailer/lib/ses-transport/index.js +0 -234
- package/packages/mailx-send/node_modules/nodemailer/lib/shared/index.js +0 -754
- package/packages/mailx-send/node_modules/nodemailer/lib/smtp-connection/data-stream.js +0 -108
- package/packages/mailx-send/node_modules/nodemailer/lib/smtp-connection/http-proxy-client.js +0 -143
- package/packages/mailx-send/node_modules/nodemailer/lib/smtp-connection/index.js +0 -1870
- package/packages/mailx-send/node_modules/nodemailer/lib/smtp-pool/index.js +0 -652
- package/packages/mailx-send/node_modules/nodemailer/lib/smtp-pool/pool-resource.js +0 -259
- package/packages/mailx-send/node_modules/nodemailer/lib/smtp-transport/index.js +0 -421
- package/packages/mailx-send/node_modules/nodemailer/lib/stream-transport/index.js +0 -135
- package/packages/mailx-send/node_modules/nodemailer/lib/well-known/index.js +0 -47
- package/packages/mailx-send/node_modules/nodemailer/lib/well-known/services.json +0 -611
- package/packages/mailx-send/node_modules/nodemailer/lib/xoauth2/index.js +0 -427
- package/packages/mailx-send/node_modules/nodemailer/package.json +0 -47
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mailxapi — IPC bridge injected into WebView by the Rust launcher.
|
|
3
|
+
* Follows the msgapi pattern: callNode → Promise → _mailxapiResolve/Reject.
|
|
4
|
+
*
|
|
5
|
+
* When running in a browser (no IPC), this file is not loaded.
|
|
6
|
+
* api-client.ts auto-detects and falls back to HTTP fetch.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
(function() {
|
|
10
|
+
"use strict";
|
|
11
|
+
|
|
12
|
+
var _callbacks = {};
|
|
13
|
+
var _callbackId = 0;
|
|
14
|
+
var _eventHandlers = [];
|
|
15
|
+
|
|
16
|
+
function callNode(action, params) {
|
|
17
|
+
var id = String(++_callbackId);
|
|
18
|
+
return new Promise(function(resolve, reject) {
|
|
19
|
+
var timer = setTimeout(function() {
|
|
20
|
+
delete _callbacks[id];
|
|
21
|
+
reject(new Error("mailxapi timeout: " + action));
|
|
22
|
+
}, 30000);
|
|
23
|
+
_callbacks[id] = { resolve: resolve, reject: reject, timer: timer };
|
|
24
|
+
var msg = Object.assign({ _action: action, _cbid: id }, params || {});
|
|
25
|
+
if (window.ipc && window.ipc.postMessage) {
|
|
26
|
+
window.ipc.postMessage(JSON.stringify(msg));
|
|
27
|
+
} else {
|
|
28
|
+
// Fallback: should not happen in WebView
|
|
29
|
+
clearTimeout(timer);
|
|
30
|
+
delete _callbacks[id];
|
|
31
|
+
reject(new Error("No IPC channel available"));
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Called by Rust to resolve promises
|
|
37
|
+
window._mailxapiResolve = function(id, value) {
|
|
38
|
+
var cb = _callbacks[id];
|
|
39
|
+
if (!cb) return;
|
|
40
|
+
delete _callbacks[id];
|
|
41
|
+
clearTimeout(cb.timer);
|
|
42
|
+
cb.resolve(value);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
// Called by Rust to reject promises
|
|
46
|
+
window._mailxapiReject = function(id, error) {
|
|
47
|
+
var cb = _callbacks[id];
|
|
48
|
+
if (!cb) return;
|
|
49
|
+
delete _callbacks[id];
|
|
50
|
+
clearTimeout(cb.timer);
|
|
51
|
+
cb.reject(new Error(error));
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
// Called by Rust to push events (new mail, sync progress, etc.)
|
|
55
|
+
window._mailxapiEvent = function(event) {
|
|
56
|
+
for (var i = 0; i < _eventHandlers.length; i++) {
|
|
57
|
+
try { _eventHandlers[i](event); } catch(e) { /* ignore */ }
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
window.mailxapi = {
|
|
62
|
+
isApp: true,
|
|
63
|
+
platform: "webview2",
|
|
64
|
+
|
|
65
|
+
// Accounts
|
|
66
|
+
getAccounts: function() { return callNode("getAccounts"); },
|
|
67
|
+
getFolders: function(accountId) { return callNode("getFolders", { accountId: accountId }); },
|
|
68
|
+
|
|
69
|
+
// Messages
|
|
70
|
+
getMessages: function(accountId, folderId, page, pageSize) {
|
|
71
|
+
return callNode("getMessages", { accountId: accountId, folderId: folderId, page: page, pageSize: pageSize });
|
|
72
|
+
},
|
|
73
|
+
getUnifiedInbox: function(page, pageSize) {
|
|
74
|
+
return callNode("getUnifiedInbox", { page: page, pageSize: pageSize });
|
|
75
|
+
},
|
|
76
|
+
getMessage: function(accountId, uid, allowRemote) {
|
|
77
|
+
return callNode("getMessage", { accountId: accountId, uid: uid, allowRemote: allowRemote });
|
|
78
|
+
},
|
|
79
|
+
|
|
80
|
+
// Actions
|
|
81
|
+
updateFlags: function(accountId, uid, flags) {
|
|
82
|
+
return callNode("updateFlags", { accountId: accountId, uid: uid, flags: flags });
|
|
83
|
+
},
|
|
84
|
+
deleteMessage: function(accountId, uid) {
|
|
85
|
+
return callNode("deleteMessage", { accountId: accountId, uid: uid });
|
|
86
|
+
},
|
|
87
|
+
undeleteMessage: function(accountId, uid, folderId) {
|
|
88
|
+
return callNode("undeleteMessage", { accountId: accountId, uid: uid, folderId: folderId });
|
|
89
|
+
},
|
|
90
|
+
|
|
91
|
+
// Compose
|
|
92
|
+
sendMessage: function(msg) { return callNode("sendMessage", msg); },
|
|
93
|
+
saveDraft: function(params) { return callNode("saveDraft", params); },
|
|
94
|
+
deleteDraft: function(accountId, draftUid) {
|
|
95
|
+
return callNode("deleteDraft", { accountId: accountId, draftUid: draftUid });
|
|
96
|
+
},
|
|
97
|
+
|
|
98
|
+
// Search
|
|
99
|
+
searchMessages: function(query, page, pageSize) {
|
|
100
|
+
return callNode("searchMessages", { query: query, page: page, pageSize: pageSize });
|
|
101
|
+
},
|
|
102
|
+
searchContacts: function(query) {
|
|
103
|
+
return callNode("searchContacts", { query: query });
|
|
104
|
+
},
|
|
105
|
+
|
|
106
|
+
// Sync
|
|
107
|
+
syncAll: function() { return callNode("syncAll"); },
|
|
108
|
+
getSyncPending: function() { return callNode("getSyncPending"); },
|
|
109
|
+
|
|
110
|
+
// Settings
|
|
111
|
+
allowRemoteContent: function(type, value) {
|
|
112
|
+
return callNode("allowRemoteContent", { type: type, value: value });
|
|
113
|
+
},
|
|
114
|
+
getSettings: function() { return callNode("getSettings"); },
|
|
115
|
+
saveSettings: function(data) { return callNode("saveSettingsData", data); },
|
|
116
|
+
getVersion: function() { return callNode("getVersion"); },
|
|
117
|
+
|
|
118
|
+
// Events
|
|
119
|
+
onEvent: function(handler) { _eventHandlers.push(handler); },
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
window.dispatchEvent(new CustomEvent("mailxapiready"));
|
|
123
|
+
})();
|
package/client/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
align-items: center;
|
|
8
8
|
justify-content: space-between;
|
|
9
9
|
padding: 0 var(--gap-sm);
|
|
10
|
-
background:
|
|
10
|
+
background: var(--color-brand);
|
|
11
11
|
border-bottom: 1px solid var(--color-border);
|
|
12
12
|
gap: var(--gap-sm);
|
|
13
13
|
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
border: none;
|
|
27
27
|
border-radius: var(--radius-sm);
|
|
28
28
|
background: transparent;
|
|
29
|
-
color: var(--color-
|
|
29
|
+
color: var(--color-brand-dark);
|
|
30
30
|
font-size: var(--font-size-sm);
|
|
31
|
-
font-weight:
|
|
31
|
+
font-weight: 700;
|
|
32
32
|
cursor: pointer;
|
|
33
33
|
white-space: nowrap;
|
|
34
34
|
|
|
@@ -99,9 +99,9 @@
|
|
|
99
99
|
align-items: center;
|
|
100
100
|
gap: var(--gap-xs);
|
|
101
101
|
padding: var(--gap-xs) var(--gap-sm);
|
|
102
|
-
font-weight:
|
|
103
|
-
font-size: var(--font-size-
|
|
104
|
-
color: var(--color-
|
|
102
|
+
font-weight: 700;
|
|
103
|
+
font-size: var(--font-size-base);
|
|
104
|
+
color: var(--color-brand-dark);
|
|
105
105
|
text-transform: uppercase;
|
|
106
106
|
letter-spacing: 0.05em;
|
|
107
107
|
cursor: pointer;
|
|
@@ -130,7 +130,8 @@
|
|
|
130
130
|
padding: var(--gap-xs) var(--gap-sm) var(--gap-xs) var(--gap-lg);
|
|
131
131
|
cursor: pointer;
|
|
132
132
|
font-size: var(--font-size-base);
|
|
133
|
-
|
|
133
|
+
font-weight: 600;
|
|
134
|
+
color: var(--color-brand-dark);
|
|
134
135
|
border-radius: 0;
|
|
135
136
|
|
|
136
137
|
&:hover { background: var(--color-bg-hover); }
|
|
@@ -150,18 +151,57 @@
|
|
|
150
151
|
text-align: center;
|
|
151
152
|
}
|
|
152
153
|
|
|
154
|
+
.ft-badge-outbox {
|
|
155
|
+
background: oklch(0.55 0.18 25);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.ft-filter {
|
|
159
|
+
padding: 2px var(--gap-xs);
|
|
160
|
+
border-bottom: 1px solid var(--color-border);
|
|
161
|
+
background: var(--color-bg-surface);
|
|
162
|
+
flex-shrink: 0;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.ft-filter input {
|
|
166
|
+
width: 100%;
|
|
167
|
+
padding: 2px var(--gap-sm);
|
|
168
|
+
border: 1px solid var(--color-border);
|
|
169
|
+
border-radius: var(--radius-sm);
|
|
170
|
+
background: var(--color-bg);
|
|
171
|
+
color: var(--color-text);
|
|
172
|
+
font-size: var(--font-size-sm);
|
|
173
|
+
outline: none;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.ft-filter input:focus { border-color: var(--color-accent); }
|
|
177
|
+
|
|
178
|
+
.ft-folder.ft-filter-hidden,
|
|
179
|
+
.ft-account.ft-filter-hidden,
|
|
180
|
+
.ft-account-header.ft-filter-hidden { display: none; }
|
|
181
|
+
|
|
153
182
|
.folder-loading {
|
|
154
183
|
padding: var(--gap-lg);
|
|
155
184
|
color: var(--color-text-muted);
|
|
156
185
|
font-size: var(--font-size-sm);
|
|
157
186
|
}
|
|
158
187
|
|
|
188
|
+
.ft-folder.drop-target {
|
|
189
|
+
background: var(--color-accent);
|
|
190
|
+
color: white;
|
|
191
|
+
outline: 2px solid var(--color-brand-dark);
|
|
192
|
+
outline-offset: -2px;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.ml-row.dragging {
|
|
196
|
+
opacity: 0.5;
|
|
197
|
+
}
|
|
198
|
+
|
|
159
199
|
/* ── Message List ── */
|
|
160
200
|
|
|
161
201
|
.message-list {
|
|
162
202
|
display: grid;
|
|
163
203
|
grid-template-columns: 1.2em minmax(120px, 200px) auto 1fr;
|
|
164
|
-
grid-template-rows: auto 1fr;
|
|
204
|
+
grid-template-rows: auto auto 1fr;
|
|
165
205
|
column-gap: var(--gap-sm);
|
|
166
206
|
overflow: hidden;
|
|
167
207
|
border-right: 1px solid var(--color-border);
|
|
@@ -187,6 +227,30 @@
|
|
|
187
227
|
font-size: var(--font-size-sm);
|
|
188
228
|
}
|
|
189
229
|
|
|
230
|
+
.ml-filter {
|
|
231
|
+
grid-column: 1 / -1;
|
|
232
|
+
padding: 2px var(--gap-xs);
|
|
233
|
+
border-bottom: 1px solid var(--color-border);
|
|
234
|
+
background: var(--color-bg-surface);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
.ml-filter input {
|
|
238
|
+
width: 100%;
|
|
239
|
+
padding: 2px var(--gap-sm);
|
|
240
|
+
border: 1px solid var(--color-border);
|
|
241
|
+
border-radius: var(--radius-sm);
|
|
242
|
+
background: var(--color-bg);
|
|
243
|
+
color: var(--color-text);
|
|
244
|
+
font-size: var(--font-size-sm);
|
|
245
|
+
outline: none;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
.ml-filter input:focus {
|
|
249
|
+
border-color: var(--color-accent);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.ml-row.filter-hidden { display: none; }
|
|
253
|
+
|
|
190
254
|
.ml-header {
|
|
191
255
|
display: grid;
|
|
192
256
|
grid-template-columns: subgrid;
|
|
@@ -195,8 +259,8 @@
|
|
|
195
259
|
border-bottom: 1px solid var(--color-border);
|
|
196
260
|
background: var(--color-bg-toolbar);
|
|
197
261
|
font-size: var(--font-size-sm);
|
|
198
|
-
font-weight:
|
|
199
|
-
color: var(--color-
|
|
262
|
+
font-weight: 700;
|
|
263
|
+
color: var(--color-brand-dark);
|
|
200
264
|
user-select: none;
|
|
201
265
|
|
|
202
266
|
.ml-col { cursor: pointer; &:hover { color: var(--color-text); } }
|
|
@@ -219,10 +283,11 @@
|
|
|
219
283
|
border-bottom: 1px solid color-mix(in oklch, var(--color-border) 50%, transparent);
|
|
220
284
|
cursor: pointer;
|
|
221
285
|
font-size: var(--font-size-base);
|
|
286
|
+
color: var(--color-text);
|
|
222
287
|
align-items: baseline;
|
|
223
288
|
|
|
224
289
|
&:hover { background: var(--color-bg-hover); }
|
|
225
|
-
&.selected { background: var(--color-
|
|
290
|
+
&.selected { background: var(--color-brand); color: var(--color-brand-dark); font-weight: 600; }
|
|
226
291
|
&.unread {
|
|
227
292
|
font-weight: 600;
|
|
228
293
|
color: var(--color-unread);
|
|
@@ -282,21 +347,91 @@
|
|
|
282
347
|
font-size: var(--font-size-sm);
|
|
283
348
|
line-height: 1.5;
|
|
284
349
|
|
|
350
|
+
.mv-header-top { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--gap-sm); }
|
|
351
|
+
.mv-header-info { flex: 1; min-width: 0; }
|
|
352
|
+
.mv-header-actions { display: flex; align-items: center; gap: var(--gap-xs); flex-shrink: 0; }
|
|
285
353
|
.mv-from { font-weight: 600; }
|
|
286
354
|
.mv-to { color: var(--color-text-muted); }
|
|
287
355
|
.mv-subject { font-size: var(--font-size-lg); font-weight: 600; margin-top: var(--gap-xs); }
|
|
288
356
|
.mv-date { color: var(--color-text-muted); font-size: var(--font-size-sm); }
|
|
357
|
+
.mv-unsubscribe {
|
|
358
|
+
font-size: var(--font-size-sm);
|
|
359
|
+
color: var(--color-danger);
|
|
360
|
+
cursor: pointer;
|
|
361
|
+
text-decoration: underline;
|
|
362
|
+
white-space: nowrap;
|
|
363
|
+
}
|
|
364
|
+
.mv-action {
|
|
365
|
+
font-size: var(--font-size-sm);
|
|
366
|
+
padding: 2px 6px;
|
|
367
|
+
border: 1px solid var(--color-border);
|
|
368
|
+
border-radius: var(--radius-sm);
|
|
369
|
+
background: transparent;
|
|
370
|
+
color: var(--color-text-muted);
|
|
371
|
+
cursor: pointer;
|
|
372
|
+
white-space: nowrap;
|
|
373
|
+
}
|
|
374
|
+
.mv-action:hover { background: var(--color-bg-hover); color: var(--color-text); }
|
|
375
|
+
.mv-action-primary {
|
|
376
|
+
background: var(--color-brand-dark) !important;
|
|
377
|
+
color: white !important;
|
|
378
|
+
border-color: var(--color-brand-dark) !important;
|
|
379
|
+
}
|
|
380
|
+
.mv-action-primary:hover { opacity: 0.85; }
|
|
289
381
|
}
|
|
290
382
|
|
|
291
383
|
.mv-remote-banner {
|
|
384
|
+
background: oklch(0.45 0.12 60);
|
|
385
|
+
color: white;
|
|
386
|
+
font-size: var(--font-size-sm);
|
|
387
|
+
font-weight: 600;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
.mv-rb-summary {
|
|
292
391
|
display: flex;
|
|
293
392
|
align-items: center;
|
|
294
393
|
gap: var(--gap-sm);
|
|
295
394
|
padding: var(--gap-xs) var(--gap-md);
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
395
|
+
cursor: pointer;
|
|
396
|
+
flex-wrap: wrap;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
.mv-rb-toggle {
|
|
400
|
+
font-size: 0.8em;
|
|
401
|
+
width: 1em;
|
|
402
|
+
display: inline-block;
|
|
403
|
+
flex-shrink: 0;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
.mv-rb-buttons {
|
|
407
|
+
display: flex;
|
|
408
|
+
flex-wrap: wrap;
|
|
409
|
+
gap: var(--gap-xs);
|
|
410
|
+
margin-left: auto;
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
.mv-rb-details {
|
|
414
|
+
padding: var(--gap-xs) var(--gap-md) var(--gap-sm);
|
|
415
|
+
border-top: 1px solid rgba(255,255,255,0.2);
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
.mv-rb-info {
|
|
419
|
+
font-weight: 400;
|
|
420
|
+
line-height: 1.6;
|
|
421
|
+
margin-bottom: var(--gap-sm);
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
.mv-rb-actions {
|
|
425
|
+
display: flex;
|
|
426
|
+
flex-wrap: wrap;
|
|
427
|
+
gap: var(--gap-xs);
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
.mv-rb-label {
|
|
431
|
+
color: rgba(255,255,255,0.7);
|
|
299
432
|
font-weight: 600;
|
|
433
|
+
display: inline-block;
|
|
434
|
+
min-width: 6em;
|
|
300
435
|
}
|
|
301
436
|
|
|
302
437
|
.mv-remote-banner button {
|
|
@@ -307,6 +442,7 @@
|
|
|
307
442
|
color: white;
|
|
308
443
|
font-size: var(--font-size-sm);
|
|
309
444
|
cursor: pointer;
|
|
445
|
+
font-weight: 600;
|
|
310
446
|
}
|
|
311
447
|
|
|
312
448
|
.mv-remote-banner button:hover {
|
|
@@ -315,7 +451,7 @@
|
|
|
315
451
|
|
|
316
452
|
.mv-body {
|
|
317
453
|
flex: 1;
|
|
318
|
-
overflow
|
|
454
|
+
overflow: hidden;
|
|
319
455
|
background: var(--color-bg-surface);
|
|
320
456
|
|
|
321
457
|
iframe {
|
|
@@ -359,3 +495,40 @@
|
|
|
359
495
|
font-size: var(--font-size-sm);
|
|
360
496
|
color: var(--color-text-muted);
|
|
361
497
|
}
|
|
498
|
+
|
|
499
|
+
/* ── Startup Overlay ── */
|
|
500
|
+
|
|
501
|
+
.startup-overlay {
|
|
502
|
+
position: fixed;
|
|
503
|
+
inset: var(--toolbar-height) 0 var(--statusbar-height) 0;
|
|
504
|
+
display: flex;
|
|
505
|
+
align-items: center;
|
|
506
|
+
justify-content: center;
|
|
507
|
+
background: var(--color-bg);
|
|
508
|
+
z-index: 100;
|
|
509
|
+
transition: opacity 0.3s ease;
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
.startup-overlay.hidden {
|
|
513
|
+
opacity: 0;
|
|
514
|
+
pointer-events: none;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
.startup-content {
|
|
518
|
+
text-align: center;
|
|
519
|
+
color: var(--color-text);
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
.startup-spinner {
|
|
523
|
+
width: 32px;
|
|
524
|
+
height: 32px;
|
|
525
|
+
margin: 0 auto var(--gap-md);
|
|
526
|
+
border: 3px solid var(--color-border);
|
|
527
|
+
border-top-color: var(--color-brand-dark);
|
|
528
|
+
border-radius: 50%;
|
|
529
|
+
animation: spin 1s linear infinite;
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
#startup-status {
|
|
533
|
+
font-size: var(--font-size-lg);
|
|
534
|
+
}
|
package/client/styles/layout.css
CHANGED
|
@@ -24,7 +24,8 @@ body {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
.toolbar { grid-area: toolbar; }
|
|
27
|
-
.folder-
|
|
27
|
+
.folder-panel { grid-area: folders; display: flex; flex-direction: column; overflow: hidden; }
|
|
28
|
+
.folder-tree { flex: 1; overflow-y: auto; }
|
|
28
29
|
.main-area { grid-area: main; }
|
|
29
30
|
.status-bar { grid-area: status; }
|
|
30
31
|
|
package/killmail.cmd
ADDED
package/launch.ps1
CHANGED
|
@@ -1,20 +1,62 @@
|
|
|
1
1
|
# Launch mailx email client
|
|
2
2
|
#
|
|
3
|
-
# Usage: launch.ps1 [-dev] [-prod] [-restart]
|
|
3
|
+
# Usage: launch.ps1 [-dev] [-prod] [-restart] [-clear]
|
|
4
4
|
# -dev (default) Start server with --watch for auto-restart on file changes
|
|
5
5
|
# -prod Start server without --watch
|
|
6
6
|
# -restart Kill existing server on port 9333 before starting
|
|
7
|
+
# -clear Clear WebView2 cache before launching (fixes blank window issues)
|
|
7
8
|
#
|
|
8
9
|
# The launcher starts the Node server (if not running) and opens a WebView2 window.
|
|
9
10
|
# Server: http://localhost:9333
|
|
10
11
|
# Log: mailx.log
|
|
11
12
|
# Data: ~/.mailx/ (DB, store, settings pointer)
|
|
12
13
|
|
|
13
|
-
#
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
# Clear WebView2 cache if requested
|
|
15
|
+
if ("-clear" -in $args) {
|
|
16
|
+
$wv2dir = "$PSScriptRoot\launcher\bin\mailx-app.exe.WebView2"
|
|
17
|
+
if (Test-Path $wv2dir) {
|
|
18
|
+
Write-Host "Clearing WebView2 cache..."
|
|
19
|
+
Remove-Item -Recurse -Force $wv2dir
|
|
20
|
+
}
|
|
21
|
+
# Remove -clear from args passed to exe
|
|
22
|
+
$args = $args | Where-Object { $_ -ne "-clear" }
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
# Check if mailx-app is already running
|
|
26
|
+
$existing = Get-Process -Name "mailx-app" -ErrorAction SilentlyContinue
|
|
27
|
+
if ($existing -and ("-restart" -notin $args)) {
|
|
28
|
+
Write-Host "mailx is already running (PID $($existing.Id)). Use -restart to force."
|
|
29
|
+
# Try to bring the existing window to front
|
|
30
|
+
Add-Type @"
|
|
31
|
+
using System;
|
|
32
|
+
using System.Runtime.InteropServices;
|
|
33
|
+
public class Win32 {
|
|
34
|
+
[DllImport("user32.dll")] public static extern bool SetForegroundWindow(IntPtr hWnd);
|
|
35
|
+
[DllImport("user32.dll")] public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
|
|
36
|
+
}
|
|
37
|
+
"@
|
|
38
|
+
$hwnd = $existing.MainWindowHandle
|
|
39
|
+
if ($hwnd -ne [IntPtr]::Zero) {
|
|
40
|
+
[Win32]::ShowWindow($hwnd, 9) | Out-Null # SW_RESTORE
|
|
41
|
+
[Win32]::SetForegroundWindow($hwnd) | Out-Null
|
|
42
|
+
}
|
|
43
|
+
exit 0
|
|
17
44
|
}
|
|
45
|
+
|
|
46
|
+
# Copy latest release build to bin/ if newer
|
|
47
|
+
$release = "$PSScriptRoot\launcher\target\release\mailx-app.exe"
|
|
48
|
+
$bin = "$PSScriptRoot\launcher\bin\mailx-app.exe"
|
|
49
|
+
if ((Test-Path $release) -and (Test-Path $bin)) {
|
|
50
|
+
if ((Get-Item $release).LastWriteTime -gt (Get-Item $bin).LastWriteTime) {
|
|
51
|
+
Write-Host "Updating launcher binary..."
|
|
52
|
+
Copy-Item $release $bin -Force -ErrorAction SilentlyContinue
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
# Try pre-built binary first, then release, then debug
|
|
57
|
+
$exe = $bin
|
|
58
|
+
if (-not (Test-Path $exe)) { $exe = $release }
|
|
59
|
+
if (-not (Test-Path $exe)) { $exe = "$PSScriptRoot\launcher\target\debug\mailx-app.exe" }
|
|
18
60
|
if (-not (Test-Path $exe)) {
|
|
19
61
|
Write-Host "Launcher not found. Run: launcher\build.cmd"
|
|
20
62
|
exit 1
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
level=none expiry=0
|
|
Binary file
|
package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Cache/No_Vary_Search/journal.baj
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
$F~
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
2026/03/30-12:46:48.817 6494 Reusing MANIFEST Y:\dev\email\mailx\launcher\bin\mailx-app.exe.WebView2\EBWebView\Default\Extension Rules/MANIFEST-000001
|
|
2
|
+
2026/03/30-12:46:48.821 6494 Recovering log #3
|
|
3
|
+
2026/03/30-12:46:48.823 6494 Reusing old log Y:\dev\email\mailx\launcher\bin\mailx-app.exe.WebView2\EBWebView\Default\Extension Rules/000003.log
|
|
Binary file
|
|
File without changes
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
2026/03/30-12:46:49.347 6494 Reusing MANIFEST Y:\dev\email\mailx\launcher\bin\mailx-app.exe.WebView2\EBWebView\Default\Extension Scripts/MANIFEST-000001
|
|
2
|
+
2026/03/30-12:46:49.351 6494 Recovering log #3
|
|
3
|
+
2026/03/30-12:46:49.353 6494 Reusing old log Y:\dev\email\mailx\launcher\bin\mailx-app.exe.WebView2\EBWebView\Default\Extension Scripts/000003.log
|
package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Extension Scripts/MANIFEST-000001
ADDED
|
Binary file
|
|
File without changes
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
2026/03/30-12:46:49.520 6494 Reusing MANIFEST Y:\dev\email\mailx\launcher\bin\mailx-app.exe.WebView2\EBWebView\Default\Extension State/MANIFEST-000001
|
|
2
|
+
2026/03/30-12:46:49.525 6494 Recovering log #3
|
|
3
|
+
2026/03/30-12:46:49.529 6494 Reusing old log Y:\dev\email\mailx\launcher\bin\mailx-app.exe.WebView2\EBWebView\Default\Extension State/000003.log
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
2026/03/30-13:02:28.120 1a28 Reusing MANIFEST Y:\dev\email\mailx\launcher\bin\mailx-app.exe.WebView2\EBWebView\Default\IndexedDB\devtools_devtools_0.indexeddb.leveldb/MANIFEST-000001
|
|
2
|
+
2026/03/30-13:02:28.168 1a28 Recovering log #3
|
|
3
|
+
2026/03/30-13:02:28.190 1a28 Reusing old log Y:\dev\email\mailx\launcher\bin\mailx-app.exe.WebView2\EBWebView\Default\IndexedDB\devtools_devtools_0.indexeddb.leveldb/000003.log
|
|
Binary file
|
|
File without changes
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
2026/03/30-12:46:49.225 c2c Reusing MANIFEST Y:\dev\email\mailx\launcher\bin\mailx-app.exe.WebView2\EBWebView\Default\Local Storage\leveldb/MANIFEST-000001
|
|
2
|
+
2026/03/30-12:46:49.311 c2c Recovering log #3
|
|
3
|
+
2026/03/30-12:46:49.348 c2c Reusing old log Y:\dev\email\mailx\launcher\bin\mailx-app.exe.WebView2\EBWebView\Default\Local Storage\leveldb/000003.log
|
package/launcher/bin/mailx-app.exe.WebView2/EBWebView/Default/Local Storage/leveldb/MANIFEST-000001
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
NEL
ADDED
|
Binary file
|
|
Binary file
|