@bobfrankston/rmfmail 1.0.701 → 1.0.703

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.
@@ -207,6 +207,11 @@ export class ImapManager extends EventEmitter {
207
207
  private accountErrorShown = new Set<string>();
208
208
  private syncing = false;
209
209
  private inboxSyncing = false;
210
+ /** Wall-clock of ImapManager construction. Used by the lazy-folder-sync
211
+ * gate so non-priority folders defer their first-sync until ~3 min
212
+ * past startup, when the event loop has quieted down. Each restart
213
+ * resets this; the gate auto-lifts as time passes. */
214
+ private _startupAt: number = Date.now();
210
215
  /** Use native IMAP client instead of imapflow. Set to true to enable. */
211
216
  useNativeClient = false;
212
217
  // Connection management: see withConnection() below.
@@ -1769,12 +1774,35 @@ export class ImapManager extends EventEmitter {
1769
1774
  // timeout abandons a stalled command instead of waiting out
1770
1775
  // Dovecot's 300s server-side inactivity timer; the next sync tick
1771
1776
  // retries on a fresh socket.
1772
- const remaining = folders.filter(f => f.specialUse !== "inbox");
1777
+ // 2026-05-13: defer first-sync of non-priority folders by default
1778
+ // (C119 lazy folder sync). On bobma with 90+ folders, doing a
1779
+ // first-sync of every folder on every startup hammers the IMAP
1780
+ // socket buffer and pegs the daemon's event loop processing
1781
+ // FETCH literals — user clicks get a 20+ second IPC delay
1782
+ // because no IPC can squeeze in between FETCH chunks. Now: only
1783
+ // special-use folders (Sent/Drafts/Archive/Junk/Trash) + folders
1784
+ // mailx has previously seen (highestUid > 0, i.e. tracked
1785
+ // across the prior session) sync automatically. First-sync of
1786
+ // a "never-touched" non-special folder is deferred until the
1787
+ // user opens that folder (on-demand syncFolder call) or until
1788
+ // ~3 minutes after startup when the event loop is quiet.
1789
+ const STARTUP_LAZY_DELAY_MS = 3 * 60 * 1000;
1790
+ const startupQuietPoint = (this._startupAt || 0) + STARTUP_LAZY_DELAY_MS;
1791
+ const isLazyEligible = (f: any): boolean => {
1792
+ if (f.specialUse && priorityOrder.includes(f.specialUse)) return false;
1793
+ if (this.db.getHighestUid(accountId, f.id) > 0) return false;
1794
+ return true;
1795
+ };
1796
+ const remaining = folders.filter(f => f.specialUse !== "inbox" && !(isLazyEligible(f) && Date.now() < startupQuietPoint));
1773
1797
  remaining.sort((a, b) => {
1774
1798
  const pa = priorityOrder.indexOf(a.specialUse || "") >= 0 ? priorityOrder.indexOf(a.specialUse || "") : 5;
1775
1799
  const pb = priorityOrder.indexOf(b.specialUse || "") >= 0 ? priorityOrder.indexOf(b.specialUse || "") : 5;
1776
1800
  return pa - pb;
1777
1801
  });
1802
+ const deferredCount = folders.filter(f => f.specialUse !== "inbox" && isLazyEligible(f) && Date.now() < startupQuietPoint).length;
1803
+ if (deferredCount > 0) {
1804
+ console.log(` [sync] ${accountId}: deferring first-sync of ${deferredCount} non-priority folder(s) until ${new Date(startupQuietPoint).toLocaleTimeString()} or user opens them`);
1805
+ }
1778
1806
 
1779
1807
  const CONCURRENCY = 2;
1780
1808
  // First-sync of a fresh account on a cold Dovecot is dominated by
@@ -0,0 +1,116 @@
1
+ {
2
+ "name": "@bobfrankston/mailx-imap",
3
+ "version": "0.1.12",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "../../../../projects/oauth/oauthsupport": {
8
+ "name": "@bobfrankston/oauthsupport",
9
+ "version": "1.0.25",
10
+ "license": "MIT",
11
+ "devDependencies": {
12
+ "@types/node": "^25.2.1"
13
+ },
14
+ "engines": {
15
+ "node": ">=18.0.0"
16
+ }
17
+ },
18
+ "../../../MailApps/iflow-direct": {
19
+ "name": "@bobfrankston/iflow-direct",
20
+ "version": "0.1.27",
21
+ "license": "ISC",
22
+ "dependencies": {
23
+ "@bobfrankston/tcp-transport": "file:../tcp-transport"
24
+ },
25
+ "devDependencies": {
26
+ "@types/node": "^25.6.0"
27
+ }
28
+ },
29
+ "../../../MailApps/mailx-sync": {
30
+ "name": "@bobfrankston/mailx-sync",
31
+ "version": "0.1.10",
32
+ "license": "ISC",
33
+ "dependencies": {
34
+ "@bobfrankston/iflow-direct": "file:../iflow-direct",
35
+ "@bobfrankston/tcp-transport": "file:../tcp-transport"
36
+ },
37
+ "devDependencies": {
38
+ "@types/node": "^25.6.0"
39
+ }
40
+ },
41
+ "../../../MailApps/smtp-direct": {
42
+ "name": "@bobfrankston/smtp-direct",
43
+ "version": "0.1.5",
44
+ "license": "ISC",
45
+ "dependencies": {
46
+ "@bobfrankston/tcp-transport": "file:../tcp-transport"
47
+ },
48
+ "devDependencies": {
49
+ "@types/node": "^25.6.0"
50
+ }
51
+ },
52
+ "../../../MailApps/tcp-transport": {
53
+ "name": "@bobfrankston/tcp-transport",
54
+ "version": "0.1.5",
55
+ "license": "ISC",
56
+ "devDependencies": {
57
+ "@types/node": "^25.6.0"
58
+ }
59
+ },
60
+ "../../app/packages/mailx-settings": {
61
+ "name": "@bobfrankston/mailx-settings",
62
+ "version": "0.1.6",
63
+ "license": "ISC",
64
+ "dependencies": {
65
+ "@bobfrankston/mailx-types": "file:../mailx-types",
66
+ "jsonc-parser": "^3.3.1"
67
+ }
68
+ },
69
+ "../../app/packages/mailx-store": {
70
+ "name": "@bobfrankston/mailx-store",
71
+ "version": "0.1.5",
72
+ "license": "ISC",
73
+ "dependencies": {
74
+ "@bobfrankston/mailx-settings": "file:../mailx-settings",
75
+ "@bobfrankston/mailx-types": "file:../mailx-types"
76
+ }
77
+ },
78
+ "../../app/packages/mailx-types": {
79
+ "name": "@bobfrankston/mailx-types",
80
+ "version": "0.1.5",
81
+ "license": "ISC"
82
+ },
83
+ "node_modules/@bobfrankston/iflow-direct": {
84
+ "resolved": "../../../MailApps/iflow-direct",
85
+ "link": true
86
+ },
87
+ "node_modules/@bobfrankston/mailx-settings": {
88
+ "resolved": "../../app/packages/mailx-settings",
89
+ "link": true
90
+ },
91
+ "node_modules/@bobfrankston/mailx-store": {
92
+ "resolved": "../../app/packages/mailx-store",
93
+ "link": true
94
+ },
95
+ "node_modules/@bobfrankston/mailx-sync": {
96
+ "resolved": "../../../MailApps/mailx-sync",
97
+ "link": true
98
+ },
99
+ "node_modules/@bobfrankston/mailx-types": {
100
+ "resolved": "../../app/packages/mailx-types",
101
+ "link": true
102
+ },
103
+ "node_modules/@bobfrankston/oauthsupport": {
104
+ "resolved": "../../../../projects/oauth/oauthsupport",
105
+ "link": true
106
+ },
107
+ "node_modules/@bobfrankston/smtp-direct": {
108
+ "resolved": "../../../MailApps/smtp-direct",
109
+ "link": true
110
+ },
111
+ "node_modules/@bobfrankston/tcp-transport": {
112
+ "resolved": "../../../MailApps/tcp-transport",
113
+ "link": true
114
+ }
115
+ }
116
+ }
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@bobfrankston/mailx-imap",
3
- "version": "0.1.43",
3
+ "version": "0.1.44",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@bobfrankston/mailx-imap",
9
- "version": "0.1.43",
9
+ "version": "0.1.44",
10
10
  "license": "ISC",
11
11
  "dependencies": {
12
12
  "@bobfrankston/iflow-direct": "^0.1.27",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/mailx-imap",
3
- "version": "0.1.43",
3
+ "version": "0.1.44",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -64,53 +64,30 @@ export interface Folder {
64
64
  unreadCount: number;
65
65
  children: Folder[]; /** Nested subfolders */
66
66
  }
67
- /** Branded string type for IMAP system + custom flags. The brand is purely
68
- * compile-time — at runtime an `ImapFlag` is just a `string`. The brand
69
- * forces callers to go through `FLAG.*` constants or `asFlag()` rather
70
- * than scattering `"\\Seen"` literals through the codebase, which makes
71
- * typos like `"\Seen"` (single backslash) impossible to slip past tsc.
72
- *
73
- * System flags are the RFC 3501 set: `\Seen`, `\Flagged`, `\Deleted`,
74
- * `\Draft`, `\Answered`, `\Recent`. Custom flags (Gmail labels, server
75
- * keywords like `$Forwarded`, `$Junk`, `NonJunk`) also flow through this
76
- * type via `asFlag(s)`. */
77
- export type ImapFlag = string & {
78
- readonly __imapFlag: unique symbol;
79
- };
80
- /** System IMAP flags per RFC 3501. Use these constants everywhere instead
81
- * of the `"\\Seen"` literal — a typo (`"\Seen"`, `"\\seen"`, `"Seen"`)
82
- * silently bypasses every flag check, producing the "I clicked read but
83
- * it still shows unread" class of bug. */
84
- export declare const FLAG: {
85
- readonly SEEN: ImapFlag;
86
- readonly FLAGGED: ImapFlag;
87
- readonly DELETED: ImapFlag;
88
- readonly DRAFT: ImapFlag;
89
- readonly ANSWERED: ImapFlag;
90
- readonly RECENT: ImapFlag;
91
- };
92
- /** Cast an arbitrary flag string (Gmail label, custom server keyword) to
93
- * `ImapFlag` for storage in a `ImapFlag[]` array. No runtime check — the
94
- * caller is asserting the string is a valid flag token (no whitespace,
95
- * no parentheses, etc.). */
96
- export declare function asFlag(s: string): ImapFlag;
97
- /** Flag predicates and immutable mutators. Use these instead of inlining
98
- * `flags.includes("\\Seen")` / `flags.filter(f => f !== "\\Seen")` etc.
99
- * Predicate calls are read-only; mutator calls return a NEW array so the
100
- * caller can `msg.flags = withFlag(msg.flags, FLAG.SEEN)` safely. */
101
- export declare const flagOps: {
102
- has(flags: readonly string[] | undefined, f: ImapFlag): boolean;
103
- isSeen(flags: readonly string[] | undefined): boolean;
104
- isFlagged(flags: readonly string[] | undefined): boolean;
105
- isAnswered(flags: readonly string[] | undefined): boolean;
106
- isDraft(flags: readonly string[] | undefined): boolean;
107
- /** Return flags with `f` added (dedup). */
108
- add(flags: readonly string[] | undefined, f: ImapFlag): string[];
109
- /** Return flags with `f` removed. */
110
- remove(flags: readonly string[] | undefined, f: ImapFlag): string[];
111
- /** Return flags with `f` toggled to `state` (true=present, false=absent). */
112
- set(flags: readonly string[] | undefined, f: ImapFlag, state: boolean): string[];
113
- };
67
+ interface FlagBearing {
68
+ flags: string[];
69
+ }
70
+ export declare const seenOf: (m: {
71
+ flags?: readonly string[];
72
+ }) => boolean;
73
+ export declare const flaggedOf: (m: {
74
+ flags?: readonly string[];
75
+ }) => boolean;
76
+ export declare const answeredOf: (m: {
77
+ flags?: readonly string[];
78
+ }) => boolean;
79
+ export declare const draftOf: (m: {
80
+ flags?: readonly string[];
81
+ }) => boolean;
82
+ export declare const deletedOf: (m: {
83
+ flags?: readonly string[];
84
+ }) => boolean;
85
+ export declare const setSeen: (m: FlagBearing, state: boolean) => void;
86
+ export declare const setFlagged: (m: FlagBearing, state: boolean) => void;
87
+ export declare const setAnswered: (m: FlagBearing, state: boolean) => void;
88
+ export declare const setDraft: (m: FlagBearing, state: boolean) => void;
89
+ export declare const toggleSeen: (m: FlagBearing) => void;
90
+ export declare const toggleFlagged: (m: FlagBearing) => void;
114
91
  /** Email address with optional display name */
115
92
  export interface EmailAddress {
116
93
  name: string; /** Display name, may be empty */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
@@ -12,60 +12,50 @@ export { CONTACT_RULES } from "./contact-rules.js";
12
12
  // send time. Both desktop and Android send paths consume this expander
13
13
  // against contacts.jsonc → groups.
14
14
  export { expandRecipients, splitRecipients, isAddressToken, extractAddress, } from "./groups.js";
15
- /** System IMAP flags per RFC 3501. Use these constants everywhere instead
16
- * of the `"\\Seen"` literal — a typo (`"\Seen"`, `"\\seen"`, `"Seen"`)
17
- * silently bypasses every flag check, producing the "I clicked read but
18
- * it still shows unread" class of bug. */
19
- export const FLAG = {
20
- SEEN: "\\Seen",
21
- FLAGGED: "\\Flagged",
22
- DELETED: "\\Deleted",
23
- DRAFT: "\\Draft",
24
- ANSWERED: "\\Answered",
25
- RECENT: "\\Recent",
26
- };
27
- /** Cast an arbitrary flag string (Gmail label, custom server keyword) to
28
- * `ImapFlag` for storage in a `ImapFlag[]` array. No runtime check — the
29
- * caller is asserting the string is a valid flag token (no whitespace,
30
- * no parentheses, etc.). */
31
- export function asFlag(s) {
32
- return s;
15
+ // ── Message flag state ──
16
+ //
17
+ // External API surface for the IMAP system flags. The literal strings
18
+ // (`"\\Seen"`, `"\\Flagged"`, etc.) live ONLY inside this module — every
19
+ // caller speaks in terms of named predicates (`seenOf(msg)`) and verbs
20
+ // (`setSeen(msg, true)`, `toggleSeen(msg)`). That keeps a typo like
21
+ // `"\Seen"` (single backslash) from silently bypassing flag checks
22
+ // elsewhere, and removes the "two-API leak" of having both `FLAG.SEEN`
23
+ // constants AND verb helpers exposed simultaneously.
24
+ //
25
+ // These work against any object with a mutable `flags: string[]`
26
+ // property — `MessageEnvelope`, `Message`, and the row's `msg` reference
27
+ // all qualify. The verbs return `void` and mutate `msg.flags` in place
28
+ // (replacing the array with a fresh one so listeners observing
29
+ // reference identity, e.g. message-state, still re-render). Pure
30
+ // predicate calls (`seenOf`, `flaggedOf`) don't mutate.
31
+ const _SEEN = "\\Seen";
32
+ const _FLAGGED = "\\Flagged";
33
+ const _ANSWERED = "\\Answered";
34
+ const _DRAFT = "\\Draft";
35
+ const _DELETED = "\\Deleted";
36
+ function _has(msg, flag) {
37
+ return !!msg.flags && msg.flags.includes(flag);
38
+ }
39
+ function _set(msg, flag, state) {
40
+ const present = (msg.flags || []).includes(flag);
41
+ if (state === present)
42
+ return;
43
+ const next = state
44
+ ? [...(msg.flags || []), flag]
45
+ : (msg.flags || []).filter(f => f !== flag);
46
+ msg.flags = next;
33
47
  }
34
- /** Flag predicates and immutable mutators. Use these instead of inlining
35
- * `flags.includes("\\Seen")` / `flags.filter(f => f !== "\\Seen")` etc.
36
- * Predicate calls are read-only; mutator calls return a NEW array so the
37
- * caller can `msg.flags = withFlag(msg.flags, FLAG.SEEN)` safely. */
38
- export const flagOps = {
39
- has(flags, f) {
40
- return !!flags && flags.includes(f);
41
- },
42
- isSeen(flags) {
43
- return flagOps.has(flags, FLAG.SEEN);
44
- },
45
- isFlagged(flags) {
46
- return flagOps.has(flags, FLAG.FLAGGED);
47
- },
48
- isAnswered(flags) {
49
- return flagOps.has(flags, FLAG.ANSWERED);
50
- },
51
- isDraft(flags) {
52
- return flagOps.has(flags, FLAG.DRAFT);
53
- },
54
- /** Return flags with `f` added (dedup). */
55
- add(flags, f) {
56
- const set = new Set(flags || []);
57
- set.add(f);
58
- return Array.from(set);
59
- },
60
- /** Return flags with `f` removed. */
61
- remove(flags, f) {
62
- return (flags || []).filter(x => x !== f);
63
- },
64
- /** Return flags with `f` toggled to `state` (true=present, false=absent). */
65
- set(flags, f, state) {
66
- return state ? flagOps.add(flags, f) : flagOps.remove(flags, f);
67
- },
68
- };
48
+ export const seenOf = (m) => _has(m, _SEEN);
49
+ export const flaggedOf = (m) => _has(m, _FLAGGED);
50
+ export const answeredOf = (m) => _has(m, _ANSWERED);
51
+ export const draftOf = (m) => _has(m, _DRAFT);
52
+ export const deletedOf = (m) => _has(m, _DELETED);
53
+ export const setSeen = (m, state) => _set(m, _SEEN, state);
54
+ export const setFlagged = (m, state) => _set(m, _FLAGGED, state);
55
+ export const setAnswered = (m, state) => _set(m, _ANSWERED, state);
56
+ export const setDraft = (m, state) => _set(m, _DRAFT, state);
57
+ export const toggleSeen = (m) => _set(m, _SEEN, !_has(m, _SEEN));
58
+ export const toggleFlagged = (m) => _set(m, _FLAGGED, !_has(m, _FLAGGED));
69
59
  // ── Shared Utilities ──
70
60
  // Pure functions used by both desktop (mailx-service) and Android (web-service).
71
61
  // Kept here to avoid duplication — both platforms import from mailx-types.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
@@ -85,76 +85,56 @@ export interface Folder {
85
85
  children: Folder[]; /** Nested subfolders */
86
86
  }
87
87
 
88
- // ── IMAP Flags ──
89
-
90
- /** Branded string type for IMAP system + custom flags. The brand is purely
91
- * compile-time at runtime an `ImapFlag` is just a `string`. The brand
92
- * forces callers to go through `FLAG.*` constants or `asFlag()` rather
93
- * than scattering `"\\Seen"` literals through the codebase, which makes
94
- * typos like `"\Seen"` (single backslash) impossible to slip past tsc.
95
- *
96
- * System flags are the RFC 3501 set: `\Seen`, `\Flagged`, `\Deleted`,
97
- * `\Draft`, `\Answered`, `\Recent`. Custom flags (Gmail labels, server
98
- * keywords like `$Forwarded`, `$Junk`, `NonJunk`) also flow through this
99
- * type via `asFlag(s)`. */
100
- export type ImapFlag = string & { readonly __imapFlag: unique symbol };
101
-
102
- /** System IMAP flags per RFC 3501. Use these constants everywhere instead
103
- * of the `"\\Seen"` literal — a typo (`"\Seen"`, `"\\seen"`, `"Seen"`)
104
- * silently bypasses every flag check, producing the "I clicked read but
105
- * it still shows unread" class of bug. */
106
- export const FLAG = {
107
- SEEN: "\\Seen" as ImapFlag,
108
- FLAGGED: "\\Flagged" as ImapFlag,
109
- DELETED: "\\Deleted" as ImapFlag,
110
- DRAFT: "\\Draft" as ImapFlag,
111
- ANSWERED: "\\Answered" as ImapFlag,
112
- RECENT: "\\Recent" as ImapFlag,
113
- } as const;
114
-
115
- /** Cast an arbitrary flag string (Gmail label, custom server keyword) to
116
- * `ImapFlag` for storage in a `ImapFlag[]` array. No runtime check — the
117
- * caller is asserting the string is a valid flag token (no whitespace,
118
- * no parentheses, etc.). */
119
- export function asFlag(s: string): ImapFlag {
120
- return s as ImapFlag;
88
+ // ── Message flag state ──
89
+ //
90
+ // External API surface for the IMAP system flags. The literal strings
91
+ // (`"\\Seen"`, `"\\Flagged"`, etc.) live ONLY inside this module every
92
+ // caller speaks in terms of named predicates (`seenOf(msg)`) and verbs
93
+ // (`setSeen(msg, true)`, `toggleSeen(msg)`). That keeps a typo like
94
+ // `"\Seen"` (single backslash) from silently bypassing flag checks
95
+ // elsewhere, and removes the "two-API leak" of having both `FLAG.SEEN`
96
+ // constants AND verb helpers exposed simultaneously.
97
+ //
98
+ // These work against any object with a mutable `flags: string[]`
99
+ // property `MessageEnvelope`, `Message`, and the row's `msg` reference
100
+ // all qualify. The verbs return `void` and mutate `msg.flags` in place
101
+ // (replacing the array with a fresh one so listeners observing
102
+ // reference identity, e.g. message-state, still re-render). Pure
103
+ // predicate calls (`seenOf`, `flaggedOf`) don't mutate.
104
+
105
+ const _SEEN = "\\Seen";
106
+ const _FLAGGED = "\\Flagged";
107
+ const _ANSWERED = "\\Answered";
108
+ const _DRAFT = "\\Draft";
109
+ const _DELETED = "\\Deleted";
110
+
111
+ interface FlagBearing { flags: string[]; }
112
+
113
+ function _has(msg: FlagBearing | { flags?: readonly string[] }, flag: string): boolean {
114
+ return !!msg.flags && msg.flags.includes(flag);
115
+ }
116
+ function _set(msg: FlagBearing, flag: string, state: boolean): void {
117
+ const present = (msg.flags || []).includes(flag);
118
+ if (state === present) return;
119
+ const next = state
120
+ ? [...(msg.flags || []), flag]
121
+ : (msg.flags || []).filter(f => f !== flag);
122
+ msg.flags = next;
121
123
  }
122
124
 
123
- /** Flag predicates and immutable mutators. Use these instead of inlining
124
- * `flags.includes("\\Seen")` / `flags.filter(f => f !== "\\Seen")` etc.
125
- * Predicate calls are read-only; mutator calls return a NEW array so the
126
- * caller can `msg.flags = withFlag(msg.flags, FLAG.SEEN)` safely. */
127
- export const flagOps = {
128
- has(flags: readonly string[] | undefined, f: ImapFlag): boolean {
129
- return !!flags && flags.includes(f);
130
- },
131
- isSeen(flags: readonly string[] | undefined): boolean {
132
- return flagOps.has(flags, FLAG.SEEN);
133
- },
134
- isFlagged(flags: readonly string[] | undefined): boolean {
135
- return flagOps.has(flags, FLAG.FLAGGED);
136
- },
137
- isAnswered(flags: readonly string[] | undefined): boolean {
138
- return flagOps.has(flags, FLAG.ANSWERED);
139
- },
140
- isDraft(flags: readonly string[] | undefined): boolean {
141
- return flagOps.has(flags, FLAG.DRAFT);
142
- },
143
- /** Return flags with `f` added (dedup). */
144
- add(flags: readonly string[] | undefined, f: ImapFlag): string[] {
145
- const set = new Set<string>(flags || []);
146
- set.add(f);
147
- return Array.from(set);
148
- },
149
- /** Return flags with `f` removed. */
150
- remove(flags: readonly string[] | undefined, f: ImapFlag): string[] {
151
- return (flags || []).filter(x => x !== f);
152
- },
153
- /** Return flags with `f` toggled to `state` (true=present, false=absent). */
154
- set(flags: readonly string[] | undefined, f: ImapFlag, state: boolean): string[] {
155
- return state ? flagOps.add(flags, f) : flagOps.remove(flags, f);
156
- },
157
- };
125
+ export const seenOf = (m: { flags?: readonly string[] }): boolean => _has(m, _SEEN);
126
+ export const flaggedOf = (m: { flags?: readonly string[] }): boolean => _has(m, _FLAGGED);
127
+ export const answeredOf = (m: { flags?: readonly string[] }): boolean => _has(m, _ANSWERED);
128
+ export const draftOf = (m: { flags?: readonly string[] }): boolean => _has(m, _DRAFT);
129
+ export const deletedOf = (m: { flags?: readonly string[] }): boolean => _has(m, _DELETED);
130
+
131
+ export const setSeen = (m: FlagBearing, state: boolean): void => _set(m, _SEEN, state);
132
+ export const setFlagged = (m: FlagBearing, state: boolean): void => _set(m, _FLAGGED, state);
133
+ export const setAnswered = (m: FlagBearing, state: boolean): void => _set(m, _ANSWERED, state);
134
+ export const setDraft = (m: FlagBearing, state: boolean): void => _set(m, _DRAFT, state);
135
+
136
+ export const toggleSeen = (m: FlagBearing): void => _set(m, _SEEN, !_has(m, _SEEN));
137
+ export const toggleFlagged = (m: FlagBearing): void => _set(m, _FLAGGED, !_has(m, _FLAGGED));
158
138
 
159
139
  // ── Message Types ──
160
140
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/mailx-types",
3
- "version": "0.1.11",
3
+ "version": "0.1.12",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",