@bobfrankston/rmfmail 1.0.467
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/README.md +429 -0
- package/bin/build-icon-ico.js +283 -0
- package/bin/lean-accounts.js +172 -0
- package/bin/mailx.js +1580 -0
- package/bin/mailx.js.map +1 -0
- package/bin/mailx.ts +1549 -0
- package/bin/postinstall.js +39 -0
- package/bin/postinstall.js.map +1 -0
- package/bin/postinstall.ts +41 -0
- package/bin/tsconfig.json +10 -0
- package/client/.gitattributes +10 -0
- package/client/.msger-window.json +1 -0
- package/client/android.html +226 -0
- package/client/app.js +3400 -0
- package/client/app.js.map +1 -0
- package/client/app.ts +3190 -0
- package/client/components/address-book.js +199 -0
- package/client/components/address-book.js.map +1 -0
- package/client/components/address-book.ts +204 -0
- package/client/components/alarms.js +299 -0
- package/client/components/alarms.js.map +1 -0
- package/client/components/alarms.ts +276 -0
- package/client/components/calendar-sidebar.js +508 -0
- package/client/components/calendar-sidebar.js.map +1 -0
- package/client/components/calendar-sidebar.ts +474 -0
- package/client/components/calendar.js +217 -0
- package/client/components/calendar.js.map +1 -0
- package/client/components/calendar.ts +211 -0
- package/client/components/context-menu.js +80 -0
- package/client/components/context-menu.js.map +1 -0
- package/client/components/context-menu.ts +95 -0
- package/client/components/folder-picker.js +119 -0
- package/client/components/folder-picker.js.map +1 -0
- package/client/components/folder-picker.ts +127 -0
- package/client/components/folder-tree.js +1093 -0
- package/client/components/folder-tree.js.map +1 -0
- package/client/components/folder-tree.ts +1069 -0
- package/client/components/message-list.js +1140 -0
- package/client/components/message-list.js.map +1 -0
- package/client/components/message-list.ts +1129 -0
- package/client/components/message-viewer.js +1291 -0
- package/client/components/message-viewer.js.map +1 -0
- package/client/components/message-viewer.ts +1257 -0
- package/client/components/outbox-view.js +104 -0
- package/client/components/outbox-view.js.map +1 -0
- package/client/components/outbox-view.ts +102 -0
- package/client/components/tasks.js +261 -0
- package/client/components/tasks.js.map +1 -0
- package/client/components/tasks.ts +234 -0
- package/client/compose/compose.css +560 -0
- package/client/compose/compose.html +52 -0
- package/client/compose/compose.js +1289 -0
- package/client/compose/compose.js.map +1 -0
- package/client/compose/compose.ts +1231 -0
- package/client/compose/editor.js +616 -0
- package/client/compose/editor.js.map +1 -0
- package/client/compose/editor.ts +599 -0
- package/client/compose/ghost-text.js +122 -0
- package/client/compose/ghost-text.js.map +1 -0
- package/client/compose/ghost-text.ts +140 -0
- package/client/favicon.svg +11 -0
- package/client/icon.ico +0 -0
- package/client/icon.png +0 -0
- package/client/index.html +230 -0
- package/client/lib/android-bootstrap.js +9 -0
- package/client/lib/android-bootstrap.js.map +1 -0
- package/client/lib/android-bootstrap.ts +9 -0
- package/client/lib/api-client.js +378 -0
- package/client/lib/api-client.js.map +1 -0
- package/client/lib/api-client.ts +439 -0
- package/client/lib/local-service.js +603 -0
- package/client/lib/local-service.js.map +1 -0
- package/client/lib/local-service.ts +646 -0
- package/client/lib/local-store.js +214 -0
- package/client/lib/local-store.js.map +1 -0
- package/client/lib/local-store.ts +283 -0
- package/client/lib/mailxapi.js +304 -0
- package/client/lib/message-state.js +132 -0
- package/client/lib/message-state.js.map +1 -0
- package/client/lib/message-state.ts +160 -0
- package/client/package.json +16 -0
- package/client/styles/components.css +2049 -0
- package/client/styles/layout.css +332 -0
- package/client/styles/variables.css +85 -0
- package/client/tsconfig.json +19 -0
- package/package.json +124 -0
- package/packages/mailx-api/.gitattributes +10 -0
- package/packages/mailx-api/index.d.ts +10 -0
- package/packages/mailx-api/index.d.ts.map +1 -0
- package/packages/mailx-api/index.js +322 -0
- package/packages/mailx-api/index.js.map +1 -0
- package/packages/mailx-api/index.ts +283 -0
- package/packages/mailx-api/package.json +27 -0
- package/packages/mailx-api/tsconfig.json +9 -0
- package/packages/mailx-api/tsconfig.tsbuildinfo +1 -0
- package/packages/mailx-compose/.gitattributes +10 -0
- package/packages/mailx-compose/index.d.ts +21 -0
- package/packages/mailx-compose/index.d.ts.map +1 -0
- package/packages/mailx-compose/index.js +61 -0
- package/packages/mailx-compose/index.js.map +1 -0
- package/packages/mailx-compose/index.ts +85 -0
- package/packages/mailx-compose/package.json +18 -0
- package/packages/mailx-compose/tsconfig.json +9 -0
- package/packages/mailx-core/index.d.ts +139 -0
- package/packages/mailx-core/index.d.ts.map +1 -0
- package/packages/mailx-core/index.js +403 -0
- package/packages/mailx-core/index.js.map +1 -0
- package/packages/mailx-core/index.ts +424 -0
- package/packages/mailx-core/ipc.d.ts +13 -0
- package/packages/mailx-core/ipc.d.ts.map +1 -0
- package/packages/mailx-core/ipc.js +56 -0
- package/packages/mailx-core/ipc.js.map +1 -0
- package/packages/mailx-core/ipc.ts +62 -0
- package/packages/mailx-core/package.json +18 -0
- package/packages/mailx-core/tsconfig.json +9 -0
- package/packages/mailx-host/.gitattributes +10 -0
- package/packages/mailx-host/index.d.ts +21 -0
- package/packages/mailx-host/index.d.ts.map +1 -0
- package/packages/mailx-host/index.js +29 -0
- package/packages/mailx-host/index.js.map +1 -0
- package/packages/mailx-host/index.ts +38 -0
- package/packages/mailx-host/package.json +23 -0
- package/packages/mailx-host/tsconfig.json +9 -0
- package/packages/mailx-host/types-shim.d.ts +14 -0
- package/packages/mailx-imap/.gitattributes +10 -0
- package/packages/mailx-imap/index.d.ts +442 -0
- package/packages/mailx-imap/index.d.ts.map +1 -0
- package/packages/mailx-imap/index.js +3684 -0
- package/packages/mailx-imap/index.js.map +1 -0
- package/packages/mailx-imap/index.ts +3652 -0
- package/packages/mailx-imap/package-lock.json +131 -0
- package/packages/mailx-imap/package.json +28 -0
- package/packages/mailx-imap/providers/gmail-api.d.ts +8 -0
- package/packages/mailx-imap/providers/gmail-api.d.ts.map +1 -0
- package/packages/mailx-imap/providers/gmail-api.js +8 -0
- package/packages/mailx-imap/providers/gmail-api.js.map +1 -0
- package/packages/mailx-imap/providers/gmail-api.ts +8 -0
- package/packages/mailx-imap/providers/outlook-api.ts +7 -0
- package/packages/mailx-imap/providers/types.d.ts +9 -0
- package/packages/mailx-imap/providers/types.d.ts.map +1 -0
- package/packages/mailx-imap/providers/types.js +9 -0
- package/packages/mailx-imap/providers/types.js.map +1 -0
- package/packages/mailx-imap/providers/types.ts +9 -0
- package/packages/mailx-imap/tsconfig.json +9 -0
- package/packages/mailx-imap/tsconfig.tsbuildinfo +1 -0
- package/packages/mailx-send/.gitattributes +10 -0
- package/packages/mailx-send/README.md +217 -0
- package/packages/mailx-send/cli-queue.d.ts +11 -0
- package/packages/mailx-send/cli-queue.d.ts.map +1 -0
- package/packages/mailx-send/cli-queue.js +59 -0
- package/packages/mailx-send/cli-queue.js.map +1 -0
- package/packages/mailx-send/cli-queue.ts +62 -0
- package/packages/mailx-send/cli-send.d.ts +17 -0
- package/packages/mailx-send/cli-send.d.ts.map +1 -0
- package/packages/mailx-send/cli-send.js +75 -0
- package/packages/mailx-send/cli-send.js.map +1 -0
- package/packages/mailx-send/cli-send.ts +83 -0
- package/packages/mailx-send/cli.d.ts +22 -0
- package/packages/mailx-send/cli.d.ts.map +1 -0
- package/packages/mailx-send/cli.js +115 -0
- package/packages/mailx-send/cli.js.map +1 -0
- package/packages/mailx-send/cli.ts +126 -0
- package/packages/mailx-send/index.d.ts +77 -0
- package/packages/mailx-send/index.d.ts.map +1 -0
- package/packages/mailx-send/index.js +264 -0
- package/packages/mailx-send/index.js.map +1 -0
- package/packages/mailx-send/index.ts +333 -0
- package/packages/mailx-send/mailsend/README.md +133 -0
- package/packages/mailx-send/mailsend/cli.d.ts +12 -0
- package/packages/mailx-send/mailsend/cli.d.ts.map +1 -0
- package/packages/mailx-send/mailsend/cli.js +70 -0
- package/packages/mailx-send/mailsend/cli.js.map +1 -0
- package/packages/mailx-send/mailsend/cli.ts +81 -0
- package/packages/mailx-send/mailsend/index.d.ts +77 -0
- package/packages/mailx-send/mailsend/index.d.ts.map +1 -0
- package/packages/mailx-send/mailsend/index.js +264 -0
- package/packages/mailx-send/mailsend/index.js.map +1 -0
- package/packages/mailx-send/mailsend/index.ts +333 -0
- package/packages/mailx-send/mailsend/package-lock.json +65 -0
- package/packages/mailx-send/mailsend/package.json +26 -0
- package/packages/mailx-send/mailsend/tsconfig.json +21 -0
- package/packages/mailx-send/package-lock.json +65 -0
- package/packages/mailx-send/package.json +37 -0
- package/packages/mailx-send/tsconfig.json +21 -0
- package/packages/mailx-server/.gitattributes +10 -0
- package/packages/mailx-server/index.d.ts +8 -0
- package/packages/mailx-server/index.d.ts.map +1 -0
- package/packages/mailx-server/index.js +397 -0
- package/packages/mailx-server/index.js.map +1 -0
- package/packages/mailx-server/index.ts +429 -0
- package/packages/mailx-server/package.json +28 -0
- package/packages/mailx-server/tsconfig.json +9 -0
- package/packages/mailx-server/tsconfig.tsbuildinfo +1 -0
- package/packages/mailx-service/google-sync.d.ts +96 -0
- package/packages/mailx-service/google-sync.d.ts.map +1 -0
- package/packages/mailx-service/google-sync.js +153 -0
- package/packages/mailx-service/google-sync.js.map +1 -0
- package/packages/mailx-service/google-sync.ts +238 -0
- package/packages/mailx-service/index.d.ts +366 -0
- package/packages/mailx-service/index.d.ts.map +1 -0
- package/packages/mailx-service/index.js +2589 -0
- package/packages/mailx-service/index.js.map +1 -0
- package/packages/mailx-service/index.ts +2512 -0
- package/packages/mailx-service/jsonrpc.d.ts +25 -0
- package/packages/mailx-service/jsonrpc.d.ts.map +1 -0
- package/packages/mailx-service/jsonrpc.js +238 -0
- package/packages/mailx-service/jsonrpc.js.map +1 -0
- package/packages/mailx-service/jsonrpc.ts +268 -0
- package/packages/mailx-service/package.json +22 -0
- package/packages/mailx-service/tsconfig.json +9 -0
- package/packages/mailx-settings/.gitattributes +10 -0
- package/packages/mailx-settings/cloud.d.ts +47 -0
- package/packages/mailx-settings/cloud.d.ts.map +1 -0
- package/packages/mailx-settings/cloud.js +408 -0
- package/packages/mailx-settings/cloud.js.map +1 -0
- package/packages/mailx-settings/cloud.ts +393 -0
- package/packages/mailx-settings/index.d.ts +140 -0
- package/packages/mailx-settings/index.d.ts.map +1 -0
- package/packages/mailx-settings/index.js +872 -0
- package/packages/mailx-settings/index.js.map +1 -0
- package/packages/mailx-settings/index.ts +908 -0
- package/packages/mailx-settings/package.json +20 -0
- package/packages/mailx-settings/tsconfig.json +9 -0
- package/packages/mailx-settings/tsconfig.tsbuildinfo +1 -0
- package/packages/mailx-store/.gitattributes +10 -0
- package/packages/mailx-store/db.d.ts +346 -0
- package/packages/mailx-store/db.d.ts.map +1 -0
- package/packages/mailx-store/db.js +1796 -0
- package/packages/mailx-store/db.js.map +1 -0
- package/packages/mailx-store/db.ts +2007 -0
- package/packages/mailx-store/file-store.d.ts +36 -0
- package/packages/mailx-store/file-store.d.ts.map +1 -0
- package/packages/mailx-store/file-store.js +80 -0
- package/packages/mailx-store/file-store.js.map +1 -0
- package/packages/mailx-store/file-store.ts +82 -0
- package/packages/mailx-store/index.d.ts +7 -0
- package/packages/mailx-store/index.d.ts.map +1 -0
- package/packages/mailx-store/index.js +7 -0
- package/packages/mailx-store/index.js.map +1 -0
- package/packages/mailx-store/index.ts +7 -0
- package/packages/mailx-store/package.json +19 -0
- package/packages/mailx-store/tsconfig.json +9 -0
- package/packages/mailx-store/tsconfig.tsbuildinfo +1 -0
- package/packages/mailx-store-web/android-bootstrap.d.ts +16 -0
- package/packages/mailx-store-web/android-bootstrap.d.ts.map +1 -0
- package/packages/mailx-store-web/android-bootstrap.js +1247 -0
- package/packages/mailx-store-web/android-bootstrap.js.map +1 -0
- package/packages/mailx-store-web/android-bootstrap.ts +1262 -0
- package/packages/mailx-store-web/db.d.ts +132 -0
- package/packages/mailx-store-web/db.d.ts.map +1 -0
- package/packages/mailx-store-web/db.js +642 -0
- package/packages/mailx-store-web/db.js.map +1 -0
- package/packages/mailx-store-web/db.ts +756 -0
- package/packages/mailx-store-web/gmail-api-web.d.ts +11 -0
- package/packages/mailx-store-web/gmail-api-web.d.ts.map +1 -0
- package/packages/mailx-store-web/gmail-api-web.js +11 -0
- package/packages/mailx-store-web/gmail-api-web.js.map +1 -0
- package/packages/mailx-store-web/gmail-api-web.ts +11 -0
- package/packages/mailx-store-web/imap-web-provider.d.ts +33 -0
- package/packages/mailx-store-web/imap-web-provider.d.ts.map +1 -0
- package/packages/mailx-store-web/imap-web-provider.js +140 -0
- package/packages/mailx-store-web/imap-web-provider.js.map +1 -0
- package/packages/mailx-store-web/imap-web-provider.ts +156 -0
- package/packages/mailx-store-web/index.d.ts +10 -0
- package/packages/mailx-store-web/index.d.ts.map +1 -0
- package/packages/mailx-store-web/index.js +10 -0
- package/packages/mailx-store-web/index.js.map +1 -0
- package/packages/mailx-store-web/index.ts +10 -0
- package/packages/mailx-store-web/main-thread-host.d.ts +15 -0
- package/packages/mailx-store-web/main-thread-host.d.ts.map +1 -0
- package/packages/mailx-store-web/main-thread-host.js +292 -0
- package/packages/mailx-store-web/main-thread-host.js.map +1 -0
- package/packages/mailx-store-web/main-thread-host.ts +322 -0
- package/packages/mailx-store-web/package.json +23 -0
- package/packages/mailx-store-web/provider-types.d.ts +7 -0
- package/packages/mailx-store-web/provider-types.d.ts.map +1 -0
- package/packages/mailx-store-web/provider-types.js +7 -0
- package/packages/mailx-store-web/provider-types.js.map +1 -0
- package/packages/mailx-store-web/provider-types.ts +7 -0
- package/packages/mailx-store-web/sql-wasm-esm.js +10 -0
- package/packages/mailx-store-web/sql.js.d.ts +29 -0
- package/packages/mailx-store-web/sync-manager.d.ts +68 -0
- package/packages/mailx-store-web/sync-manager.d.ts.map +1 -0
- package/packages/mailx-store-web/sync-manager.js +506 -0
- package/packages/mailx-store-web/sync-manager.js.map +1 -0
- package/packages/mailx-store-web/sync-manager.ts +508 -0
- package/packages/mailx-store-web/tsconfig.json +10 -0
- package/packages/mailx-store-web/web-jsonrpc.d.ts +20 -0
- package/packages/mailx-store-web/web-jsonrpc.d.ts.map +1 -0
- package/packages/mailx-store-web/web-jsonrpc.js +102 -0
- package/packages/mailx-store-web/web-jsonrpc.js.map +1 -0
- package/packages/mailx-store-web/web-jsonrpc.ts +116 -0
- package/packages/mailx-store-web/web-message-store.d.ts +16 -0
- package/packages/mailx-store-web/web-message-store.d.ts.map +1 -0
- package/packages/mailx-store-web/web-message-store.js +89 -0
- package/packages/mailx-store-web/web-message-store.js.map +1 -0
- package/packages/mailx-store-web/web-message-store.ts +97 -0
- package/packages/mailx-store-web/web-service.d.ts +111 -0
- package/packages/mailx-store-web/web-service.d.ts.map +1 -0
- package/packages/mailx-store-web/web-service.js +542 -0
- package/packages/mailx-store-web/web-service.js.map +1 -0
- package/packages/mailx-store-web/web-service.ts +616 -0
- package/packages/mailx-store-web/web-settings.d.ts +83 -0
- package/packages/mailx-store-web/web-settings.d.ts.map +1 -0
- package/packages/mailx-store-web/web-settings.js +491 -0
- package/packages/mailx-store-web/web-settings.js.map +1 -0
- package/packages/mailx-store-web/web-settings.ts +522 -0
- package/packages/mailx-store-web/worker-bundle.js +6838 -0
- package/packages/mailx-store-web/worker-entry.d.ts +8 -0
- package/packages/mailx-store-web/worker-entry.d.ts.map +1 -0
- package/packages/mailx-store-web/worker-entry.js +187 -0
- package/packages/mailx-store-web/worker-entry.js.map +1 -0
- package/packages/mailx-store-web/worker-entry.ts +215 -0
- package/packages/mailx-store-web/worker-tcp-transport.d.ts +28 -0
- package/packages/mailx-store-web/worker-tcp-transport.d.ts.map +1 -0
- package/packages/mailx-store-web/worker-tcp-transport.js +98 -0
- package/packages/mailx-store-web/worker-tcp-transport.js.map +1 -0
- package/packages/mailx-store-web/worker-tcp-transport.ts +101 -0
- package/packages/mailx-types/.gitattributes +10 -0
- package/packages/mailx-types/index.d.ts +319 -0
- package/packages/mailx-types/index.d.ts.map +1 -0
- package/packages/mailx-types/index.js +243 -0
- package/packages/mailx-types/index.js.map +1 -0
- package/packages/mailx-types/index.ts +498 -0
- package/packages/mailx-types/package.json +16 -0
- package/packages/mailx-types/tsconfig.json +9 -0
- package/packages/mailx-types/tsconfig.tsbuildinfo +1 -0
- package/todo.json +13 -0
- package/tsconfig.base.json +31 -0
- package/tsconfig.json +9 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["./index.ts"],"version":"5.9.2"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @bobfrankston/mailx-compose
|
|
3
|
+
* Compose message logic — builds prefilled compose data for reply/forward.
|
|
4
|
+
* UI lives in client/compose/; this package has the shared logic.
|
|
5
|
+
*/
|
|
6
|
+
import type { Message, EmailAddress } from "@bobfrankston/mailx-types";
|
|
7
|
+
export type ComposeMode = "new" | "reply" | "replyAll" | "forward";
|
|
8
|
+
/** Data passed to the compose window via query params or postMessage */
|
|
9
|
+
export interface ComposeInit {
|
|
10
|
+
mode: ComposeMode;
|
|
11
|
+
accountId: string;
|
|
12
|
+
to: EmailAddress[];
|
|
13
|
+
cc: EmailAddress[];
|
|
14
|
+
subject: string;
|
|
15
|
+
bodyHtml: string;
|
|
16
|
+
inReplyTo: string;
|
|
17
|
+
references: string[];
|
|
18
|
+
}
|
|
19
|
+
/** Build compose init data from an original message and mode */
|
|
20
|
+
export declare function buildComposeInit(mode: ComposeMode, accountId: string, original?: Message): ComposeInit;
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAkB,MAAM,2BAA2B,CAAC;AAEvF,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;AAEnE,wEAAwE;AACxE,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,YAAY,EAAE,CAAC;IACnB,EAAE,EAAE,YAAY,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,gEAAgE;AAChE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,WAAW,CA0CtG"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @bobfrankston/mailx-compose
|
|
3
|
+
* Compose message logic — builds prefilled compose data for reply/forward.
|
|
4
|
+
* UI lives in client/compose/; this package has the shared logic.
|
|
5
|
+
*/
|
|
6
|
+
/** Build compose init data from an original message and mode */
|
|
7
|
+
export function buildComposeInit(mode, accountId, original) {
|
|
8
|
+
const init = {
|
|
9
|
+
mode,
|
|
10
|
+
accountId,
|
|
11
|
+
to: [],
|
|
12
|
+
cc: [],
|
|
13
|
+
subject: "",
|
|
14
|
+
bodyHtml: "",
|
|
15
|
+
inReplyTo: "",
|
|
16
|
+
references: [],
|
|
17
|
+
};
|
|
18
|
+
if (!original)
|
|
19
|
+
return init;
|
|
20
|
+
const rePrefix = /^(re|fwd?):\s*/i;
|
|
21
|
+
const cleanSubject = original.subject.replace(rePrefix, "");
|
|
22
|
+
switch (mode) {
|
|
23
|
+
case "reply":
|
|
24
|
+
init.to = [original.from];
|
|
25
|
+
init.subject = `Re: ${cleanSubject}`;
|
|
26
|
+
init.bodyHtml = quoteBody(original);
|
|
27
|
+
init.inReplyTo = original.messageId;
|
|
28
|
+
init.references = [...original.references, original.messageId];
|
|
29
|
+
break;
|
|
30
|
+
case "replyAll":
|
|
31
|
+
init.to = [original.from, ...original.to.filter(a => a.address !== original.from.address)];
|
|
32
|
+
init.cc = original.cc || [];
|
|
33
|
+
init.subject = `Re: ${cleanSubject}`;
|
|
34
|
+
init.bodyHtml = quoteBody(original);
|
|
35
|
+
init.inReplyTo = original.messageId;
|
|
36
|
+
init.references = [...original.references, original.messageId];
|
|
37
|
+
break;
|
|
38
|
+
case "forward":
|
|
39
|
+
init.subject = `Fwd: ${cleanSubject}`;
|
|
40
|
+
init.bodyHtml = forwardBody(original);
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
return init;
|
|
44
|
+
}
|
|
45
|
+
function quoteBody(msg) {
|
|
46
|
+
const date = new Date(msg.date).toLocaleString();
|
|
47
|
+
const from = msg.from.name ? `${msg.from.name} <${msg.from.address}>` : msg.from.address;
|
|
48
|
+
const body = msg.bodyHtml || `<pre>${escapeHtml(msg.bodyText)}</pre>`;
|
|
49
|
+
return `<br><div class="reply"><p>On ${date}, ${escapeHtml(from)} wrote:</p><blockquote>${body}</blockquote></div>`;
|
|
50
|
+
}
|
|
51
|
+
function forwardBody(msg) {
|
|
52
|
+
const date = new Date(msg.date).toLocaleString();
|
|
53
|
+
const from = msg.from.name ? `${msg.from.name} <${msg.from.address}>` : msg.from.address;
|
|
54
|
+
const to = msg.to.map(a => a.name ? `${a.name} <${a.address}>` : a.address).join(", ");
|
|
55
|
+
const body = msg.bodyHtml || `<pre>${escapeHtml(msg.bodyText)}</pre>`;
|
|
56
|
+
return `<br><div class="reply"><p>---------- Forwarded message ----------<br>From: ${escapeHtml(from)}<br>Date: ${date}<br>Subject: ${escapeHtml(msg.subject)}<br>To: ${escapeHtml(to)}</p>${body}</div>`;
|
|
57
|
+
}
|
|
58
|
+
function escapeHtml(s) {
|
|
59
|
+
return s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @bobfrankston/mailx-compose
|
|
3
|
+
* Compose message logic — builds prefilled compose data for reply/forward.
|
|
4
|
+
* UI lives in client/compose/; this package has the shared logic.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { Message, EmailAddress, ComposeMessage } from "@bobfrankston/mailx-types";
|
|
8
|
+
|
|
9
|
+
export type ComposeMode = "new" | "reply" | "replyAll" | "forward";
|
|
10
|
+
|
|
11
|
+
/** Data passed to the compose window via query params or postMessage */
|
|
12
|
+
export interface ComposeInit {
|
|
13
|
+
mode: ComposeMode;
|
|
14
|
+
accountId: string;
|
|
15
|
+
to: EmailAddress[];
|
|
16
|
+
cc: EmailAddress[];
|
|
17
|
+
subject: string;
|
|
18
|
+
bodyHtml: string;
|
|
19
|
+
inReplyTo: string;
|
|
20
|
+
references: string[];
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/** Build compose init data from an original message and mode */
|
|
24
|
+
export function buildComposeInit(mode: ComposeMode, accountId: string, original?: Message): ComposeInit {
|
|
25
|
+
const init: ComposeInit = {
|
|
26
|
+
mode,
|
|
27
|
+
accountId,
|
|
28
|
+
to: [],
|
|
29
|
+
cc: [],
|
|
30
|
+
subject: "",
|
|
31
|
+
bodyHtml: "",
|
|
32
|
+
inReplyTo: "",
|
|
33
|
+
references: [],
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
if (!original) return init;
|
|
37
|
+
|
|
38
|
+
const rePrefix = /^(re|fwd?):\s*/i;
|
|
39
|
+
const cleanSubject = original.subject.replace(rePrefix, "");
|
|
40
|
+
|
|
41
|
+
switch (mode) {
|
|
42
|
+
case "reply":
|
|
43
|
+
init.to = [original.from];
|
|
44
|
+
init.subject = `Re: ${cleanSubject}`;
|
|
45
|
+
init.bodyHtml = quoteBody(original);
|
|
46
|
+
init.inReplyTo = original.messageId;
|
|
47
|
+
init.references = [...original.references, original.messageId];
|
|
48
|
+
break;
|
|
49
|
+
|
|
50
|
+
case "replyAll":
|
|
51
|
+
init.to = [original.from, ...original.to.filter(a => a.address !== original.from.address)];
|
|
52
|
+
init.cc = original.cc || [];
|
|
53
|
+
init.subject = `Re: ${cleanSubject}`;
|
|
54
|
+
init.bodyHtml = quoteBody(original);
|
|
55
|
+
init.inReplyTo = original.messageId;
|
|
56
|
+
init.references = [...original.references, original.messageId];
|
|
57
|
+
break;
|
|
58
|
+
|
|
59
|
+
case "forward":
|
|
60
|
+
init.subject = `Fwd: ${cleanSubject}`;
|
|
61
|
+
init.bodyHtml = forwardBody(original);
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return init;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function quoteBody(msg: Message): string {
|
|
69
|
+
const date = new Date(msg.date).toLocaleString();
|
|
70
|
+
const from = msg.from.name ? `${msg.from.name} <${msg.from.address}>` : msg.from.address;
|
|
71
|
+
const body = msg.bodyHtml || `<pre>${escapeHtml(msg.bodyText)}</pre>`;
|
|
72
|
+
return `<br><div class="reply"><p>On ${date}, ${escapeHtml(from)} wrote:</p><blockquote>${body}</blockquote></div>`;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function forwardBody(msg: Message): string {
|
|
76
|
+
const date = new Date(msg.date).toLocaleString();
|
|
77
|
+
const from = msg.from.name ? `${msg.from.name} <${msg.from.address}>` : msg.from.address;
|
|
78
|
+
const to = msg.to.map(a => a.name ? `${a.name} <${a.address}>` : a.address).join(", ");
|
|
79
|
+
const body = msg.bodyHtml || `<pre>${escapeHtml(msg.bodyText)}</pre>`;
|
|
80
|
+
return `<br><div class="reply"><p>---------- Forwarded message ----------<br>From: ${escapeHtml(from)}<br>Date: ${date}<br>Subject: ${escapeHtml(msg.subject)}<br>To: ${escapeHtml(to)}</p>${body}</div>`;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function escapeHtml(s: string): string {
|
|
84
|
+
return s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
85
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@bobfrankston/mailx-compose",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"types": "index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "tsc"
|
|
9
|
+
},
|
|
10
|
+
"license": "ISC",
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"@bobfrankston/mailx-types": "file:../mailx-types"
|
|
13
|
+
},
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "https://github.com/BobFrankston/mailx-compose.git"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @bobfrankston/mailx-core
|
|
3
|
+
* Core mail functions — callable directly via IPC or wrapped by Express.
|
|
4
|
+
* No HTTP, no Express, no WebSocket. Just plain async functions.
|
|
5
|
+
*/
|
|
6
|
+
import { MailxDB } from "@bobfrankston/mailx-store";
|
|
7
|
+
import { ImapManager } from "@bobfrankston/mailx-imap";
|
|
8
|
+
import type { ComposeMessage } from "@bobfrankston/mailx-types";
|
|
9
|
+
declare let db: MailxDB;
|
|
10
|
+
declare let imapManager: ImapManager;
|
|
11
|
+
export declare function onEvent(handler: (event: any) => void): void;
|
|
12
|
+
export declare function initialize(transportFactory?: any): Promise<void>;
|
|
13
|
+
export declare function shutdown(): Promise<void>;
|
|
14
|
+
export declare function getAccounts(): {
|
|
15
|
+
id: string;
|
|
16
|
+
name: string;
|
|
17
|
+
email: string;
|
|
18
|
+
lastSync: number;
|
|
19
|
+
}[];
|
|
20
|
+
export declare function getFolders(params: {
|
|
21
|
+
accountId: string;
|
|
22
|
+
}): import("@bobfrankston/mailx-types").Folder[];
|
|
23
|
+
export declare function getMessages(params: {
|
|
24
|
+
accountId: string;
|
|
25
|
+
folderId: number;
|
|
26
|
+
page?: number;
|
|
27
|
+
pageSize?: number;
|
|
28
|
+
sort?: string;
|
|
29
|
+
sortDir?: string;
|
|
30
|
+
search?: string;
|
|
31
|
+
flaggedOnly?: boolean;
|
|
32
|
+
}): import("@bobfrankston/mailx-types").PagedResult<import("@bobfrankston/mailx-types").MessageEnvelope>;
|
|
33
|
+
export declare function getUnifiedInbox(params: {
|
|
34
|
+
page?: number;
|
|
35
|
+
pageSize?: number;
|
|
36
|
+
}): import("@bobfrankston/mailx-types").PagedResult<import("@bobfrankston/mailx-types").MessageEnvelope>;
|
|
37
|
+
export declare function getMessage(params: {
|
|
38
|
+
accountId: string;
|
|
39
|
+
uid: number;
|
|
40
|
+
allowRemote?: boolean;
|
|
41
|
+
folderId?: number;
|
|
42
|
+
}): Promise<{
|
|
43
|
+
bodyHtml: string;
|
|
44
|
+
bodyText: string;
|
|
45
|
+
hasRemoteContent: boolean;
|
|
46
|
+
remoteAllowed: boolean;
|
|
47
|
+
attachments: any[];
|
|
48
|
+
deliveredTo: string;
|
|
49
|
+
returnPath: string;
|
|
50
|
+
listUnsubscribe: string;
|
|
51
|
+
listUnsubscribeMail: string;
|
|
52
|
+
listUnsubscribeHttp: string;
|
|
53
|
+
listUnsubscribeOneClick: boolean;
|
|
54
|
+
emlPath: string;
|
|
55
|
+
id: number;
|
|
56
|
+
accountId: string;
|
|
57
|
+
folderId: number;
|
|
58
|
+
folderName?: string;
|
|
59
|
+
uid: number;
|
|
60
|
+
uuid?: string;
|
|
61
|
+
messageId: string;
|
|
62
|
+
inReplyTo: string;
|
|
63
|
+
references: string[];
|
|
64
|
+
threadId?: string;
|
|
65
|
+
date: number;
|
|
66
|
+
subject: string;
|
|
67
|
+
from: import("@bobfrankston/mailx-types").EmailAddress;
|
|
68
|
+
to: import("@bobfrankston/mailx-types").EmailAddress[];
|
|
69
|
+
cc: import("@bobfrankston/mailx-types").EmailAddress[];
|
|
70
|
+
flags: string[];
|
|
71
|
+
size: number;
|
|
72
|
+
hasAttachments: boolean;
|
|
73
|
+
preview: string;
|
|
74
|
+
bodyPath?: string;
|
|
75
|
+
providerId?: string;
|
|
76
|
+
pending?: boolean;
|
|
77
|
+
}>;
|
|
78
|
+
export declare function updateFlags(params: {
|
|
79
|
+
accountId: string;
|
|
80
|
+
uid: number;
|
|
81
|
+
flags: string[];
|
|
82
|
+
}): Promise<void>;
|
|
83
|
+
export declare function deleteMessage(params: {
|
|
84
|
+
accountId: string;
|
|
85
|
+
uid: number;
|
|
86
|
+
}): Promise<void>;
|
|
87
|
+
export declare function undeleteMessage(params: {
|
|
88
|
+
accountId: string;
|
|
89
|
+
uid: number;
|
|
90
|
+
folderId: number;
|
|
91
|
+
}): Promise<void>;
|
|
92
|
+
export declare function sendMessage(params: ComposeMessage): Promise<void>;
|
|
93
|
+
export declare function saveDraft(params: {
|
|
94
|
+
accountId: string;
|
|
95
|
+
subject: string;
|
|
96
|
+
bodyHtml: string;
|
|
97
|
+
bodyText: string;
|
|
98
|
+
to: string;
|
|
99
|
+
cc: string;
|
|
100
|
+
previousDraftUid?: number;
|
|
101
|
+
}): Promise<number>;
|
|
102
|
+
export declare function deleteDraft(params: {
|
|
103
|
+
accountId: string;
|
|
104
|
+
draftUid: number;
|
|
105
|
+
}): Promise<void>;
|
|
106
|
+
export declare function searchMessages(params: {
|
|
107
|
+
query: string;
|
|
108
|
+
page?: number;
|
|
109
|
+
pageSize?: number;
|
|
110
|
+
}): import("@bobfrankston/mailx-types").PagedResult<import("@bobfrankston/mailx-types").MessageEnvelope>;
|
|
111
|
+
export declare function searchContacts(params: {
|
|
112
|
+
query: string;
|
|
113
|
+
}): {
|
|
114
|
+
name: string;
|
|
115
|
+
email: string;
|
|
116
|
+
source: string;
|
|
117
|
+
useCount: number;
|
|
118
|
+
}[];
|
|
119
|
+
export declare function syncAll(): Promise<void>;
|
|
120
|
+
export declare function getSyncPending(): {
|
|
121
|
+
pending: number;
|
|
122
|
+
};
|
|
123
|
+
export declare function allowRemoteContent(params: {
|
|
124
|
+
type: string;
|
|
125
|
+
value: string;
|
|
126
|
+
}): Promise<void>;
|
|
127
|
+
export declare function getSettings(): import("@bobfrankston/mailx-types").MailxSettings;
|
|
128
|
+
export declare function saveSettingsData(data: any): void;
|
|
129
|
+
export declare function rebuildSearchIndex(): number;
|
|
130
|
+
export declare function seedContacts(): number;
|
|
131
|
+
export declare function syncGoogleContacts(): Promise<void>;
|
|
132
|
+
export declare function getVersion(): {
|
|
133
|
+
server: string;
|
|
134
|
+
client: string;
|
|
135
|
+
};
|
|
136
|
+
/** Dispatch an action by name — used by IPC and Express wrapper */
|
|
137
|
+
export declare function dispatch(action: string, params?: any): Promise<any>;
|
|
138
|
+
export { db, imapManager };
|
|
139
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
|