@rndmjoker/proton-mcp 0.4.7 → 0.4.12

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.
Files changed (105) hide show
  1. package/README.md +69 -21
  2. package/dist/bridge/certificate.d.ts +33 -1
  3. package/dist/bridge/certificate.js +82 -9
  4. package/dist/bridge/certificate.js.map +1 -1
  5. package/dist/bridge/connection.js +31 -6
  6. package/dist/bridge/connection.js.map +1 -1
  7. package/dist/bridge/errors.d.ts +8 -0
  8. package/dist/bridge/errors.js +28 -3
  9. package/dist/bridge/errors.js.map +1 -1
  10. package/dist/config.d.ts +6 -0
  11. package/dist/config.js +1 -0
  12. package/dist/config.js.map +1 -1
  13. package/dist/credentials/availability.d.ts +5 -0
  14. package/dist/credentials/availability.js +7 -0
  15. package/dist/credentials/availability.js.map +1 -1
  16. package/dist/credentials/encrypted-file.js +7 -2
  17. package/dist/credentials/encrypted-file.js.map +1 -1
  18. package/dist/credentials/keyring.d.ts +12 -2
  19. package/dist/credentials/keyring.js +44 -6
  20. package/dist/credentials/keyring.js.map +1 -1
  21. package/dist/credentials/plain-file.js +8 -2
  22. package/dist/credentials/plain-file.js.map +1 -1
  23. package/dist/credentials/session-bus.d.ts +38 -0
  24. package/dist/credentials/session-bus.js +68 -0
  25. package/dist/credentials/session-bus.js.map +1 -0
  26. package/dist/credentials/store.d.ts +5 -1
  27. package/dist/credentials/store.js.map +1 -1
  28. package/dist/in-flight.d.ts +6 -3
  29. package/dist/in-flight.js +6 -3
  30. package/dist/in-flight.js.map +1 -1
  31. package/dist/mail/actions.d.ts +0 -2
  32. package/dist/mail/actions.js +8 -7
  33. package/dist/mail/actions.js.map +1 -1
  34. package/dist/mail/attachments.d.ts +12 -2
  35. package/dist/mail/attachments.js +19 -11
  36. package/dist/mail/attachments.js.map +1 -1
  37. package/dist/mail/compose.d.ts +70 -15
  38. package/dist/mail/compose.js +147 -11
  39. package/dist/mail/compose.js.map +1 -1
  40. package/dist/mail/drafts.d.ts +28 -2
  41. package/dist/mail/drafts.js +91 -21
  42. package/dist/mail/drafts.js.map +1 -1
  43. package/dist/mail/ids.d.ts +10 -0
  44. package/dist/mail/ids.js +16 -4
  45. package/dist/mail/ids.js.map +1 -1
  46. package/dist/mail/labels.js +9 -4
  47. package/dist/mail/labels.js.map +1 -1
  48. package/dist/mail/messages.d.ts +50 -10
  49. package/dist/mail/messages.js +94 -6
  50. package/dist/mail/messages.js.map +1 -1
  51. package/dist/mail/saved-attachments.d.ts +128 -0
  52. package/dist/mail/saved-attachments.js +448 -0
  53. package/dist/mail/saved-attachments.js.map +1 -0
  54. package/dist/mail/search.d.ts +73 -5
  55. package/dist/mail/search.js +150 -27
  56. package/dist/mail/search.js.map +1 -1
  57. package/dist/mail/send.js +24 -9
  58. package/dist/mail/send.js.map +1 -1
  59. package/dist/mail/uid-search.d.ts +17 -0
  60. package/dist/mail/uid-search.js +25 -0
  61. package/dist/mail/uid-search.js.map +1 -0
  62. package/dist/mime/filenames.d.ts +24 -0
  63. package/dist/mime/filenames.js +58 -0
  64. package/dist/mime/filenames.js.map +1 -0
  65. package/dist/mime/parts.d.ts +34 -0
  66. package/dist/mime/parts.js +92 -0
  67. package/dist/mime/parts.js.map +1 -0
  68. package/dist/server.js +39 -8
  69. package/dist/server.js.map +1 -1
  70. package/dist/session.d.ts +15 -3
  71. package/dist/session.js +35 -8
  72. package/dist/session.js.map +1 -1
  73. package/dist/tools/actions.js +2 -1
  74. package/dist/tools/actions.js.map +1 -1
  75. package/dist/tools/confirm.js +47 -11
  76. package/dist/tools/confirm.js.map +1 -1
  77. package/dist/tools/drafts.d.ts +3 -0
  78. package/dist/tools/drafts.js +31 -10
  79. package/dist/tools/drafts.js.map +1 -1
  80. package/dist/tools/format.d.ts +8 -0
  81. package/dist/tools/format.js +44 -6
  82. package/dist/tools/format.js.map +1 -1
  83. package/dist/tools/guidance.js +27 -3
  84. package/dist/tools/guidance.js.map +1 -1
  85. package/dist/tools/messages.js +41 -13
  86. package/dist/tools/messages.js.map +1 -1
  87. package/dist/tools/pending-view.d.ts +7 -0
  88. package/dist/tools/pending-view.js +4 -1
  89. package/dist/tools/pending-view.js.map +1 -1
  90. package/dist/tools/saved.d.ts +15 -0
  91. package/dist/tools/saved.js +107 -0
  92. package/dist/tools/saved.js.map +1 -0
  93. package/dist/tools/send.js +12 -4
  94. package/dist/tools/send.js.map +1 -1
  95. package/dist/web/layout.js +2 -0
  96. package/dist/web/layout.js.map +1 -1
  97. package/dist/web/pages.js +1 -0
  98. package/dist/web/pages.js.map +1 -1
  99. package/dist/web/pending.d.ts +4 -0
  100. package/dist/web/pending.js +32 -4
  101. package/dist/web/pending.js.map +1 -1
  102. package/dist/web/server.d.ts +16 -5
  103. package/dist/web/server.js +12 -8
  104. package/dist/web/server.js.map +1 -1
  105. package/package.json +21 -18
@@ -40,6 +40,7 @@
40
40
  */
41
41
  import type { Connection } from '../bridge/connection.js';
42
42
  import { type ListResult } from './messages.js';
43
+ import type { MarkupLevel } from './markup.js';
43
44
  import { type Draft, type Recipient } from './compose.js';
44
45
  /** The one mailbox this module writes to. */
45
46
  export declare const DRAFTS = "Drafts";
@@ -57,6 +58,16 @@ export interface DraftInput {
57
58
  subject?: string | undefined;
58
59
  text?: string | undefined;
59
60
  html?: string | undefined;
61
+ /**
62
+ * How much markup the body may carry. Absent means `standard`.
63
+ *
64
+ * This field was missing while every draft tool already declared it in its
65
+ * input schema, so a caller asking for `extended` was validated against
66
+ * `standard` and refused with a message naming the level it had just asked
67
+ * for. Because a variable rather than an object literal is passed in, excess
68
+ * property checking never flagged it.
69
+ */
70
+ markupLevel?: MarkupLevel | undefined;
60
71
  }
61
72
  export interface DraftResult {
62
73
  messageId: string;
@@ -66,8 +77,19 @@ export interface DraftResult {
66
77
  bcc: Recipient[];
67
78
  /** Its uid in "Drafts". Valid until the draft is replaced. */
68
79
  uid: number;
69
- /** Set when a whole message was carried along, as with a forward. */
70
- carriedAttachments?: string[];
80
+ /**
81
+ * Set when a whole message was carried along, as with a forward.
82
+ *
83
+ * Two things, kept apart because they were confused up to 0.4.11: the one
84
+ * file this server attached, and the attachments travelling inside it. The
85
+ * answer used to name the first as if it were the second.
86
+ */
87
+ attachedOriginal?: {
88
+ filename: string;
89
+ carries: string[];
90
+ };
91
+ /** Files that were stored with the draft and stay with it. */
92
+ keptFiles?: string[];
71
93
  }
72
94
  /** Creates a draft from scratch. */
73
95
  export declare function createDraft(connection: Connection, readOnly: boolean, fromAddress: string, input: DraftInput): Promise<DraftResult>;
@@ -94,12 +116,14 @@ export declare function buildReplyDraft(connection: Connection, fromAddress: str
94
116
  all?: boolean;
95
117
  mailbox?: string;
96
118
  html?: string;
119
+ markupLevel?: MarkupLevel;
97
120
  }): Promise<Draft>;
98
121
  /** Prepares a reply and stores it as a draft. */
99
122
  export declare function replyDraft(connection: Connection, readOnly: boolean, fromAddress: string, messageId: string, text: string, options?: {
100
123
  all?: boolean;
101
124
  mailbox?: string;
102
125
  html?: string;
126
+ markupLevel?: MarkupLevel;
103
127
  }): Promise<DraftResult>;
104
128
  /**
105
129
  * Prepares a forward as a draft.
@@ -112,11 +136,13 @@ export declare function replyDraft(connection: Connection, readOnly: boolean, fr
112
136
  export declare function buildForwardDraft(connection: Connection, fromAddress: string, messageId: string, to: string[], text: string, options?: {
113
137
  mailbox?: string;
114
138
  html?: string;
139
+ markupLevel?: MarkupLevel;
115
140
  }): Promise<Draft>;
116
141
  /** Prepares a forward and stores it as a draft. */
117
142
  export declare function forwardDraft(connection: Connection, readOnly: boolean, fromAddress: string, messageId: string, to: string[], text: string, options?: {
118
143
  mailbox?: string;
119
144
  html?: string;
145
+ markupLevel?: MarkupLevel;
120
146
  }): Promise<DraftResult>;
121
147
  /** The drafts that are there. Reading only. */
122
148
  export declare function listDrafts(connection: Connection, options?: {
@@ -41,8 +41,10 @@
41
41
  import { BridgeError } from '../bridge/errors.js';
42
42
  import { normaliseMessageId, findByMessageId } from './ids.js';
43
43
  import { getMessage, listMessages } from './messages.js';
44
- import { htmlToText } from '../mime/parse.js';
45
- import { buildMessage, mintMessageId, parseRecipient, parseRecipients, escapeHtml, prefixSubject, quote, quoteAsHtml, quoteBody, } from './compose.js';
44
+ import { htmlToText, parseMessage } from '../mime/parse.js';
45
+ import { readParts } from '../mime/parts.js';
46
+ import { forwardedFileName } from '../mime/filenames.js';
47
+ import { allRecipients, assertDeliverable, buildMessage, FORWARD_HEADER, mintMessageId, parseRecipient, parseRecipients, escapeHtml, prefixSubject, quote, quoteAsHtml, quoteBody, } from './compose.js';
46
48
  /** The one mailbox this module writes to. */
47
49
  export const DRAFTS = 'Drafts';
48
50
  /**
@@ -104,6 +106,24 @@ async function findDraft(connection, messageId) {
104
106
  return { uid, flags: message && message.flags ? message.flags : new Set() };
105
107
  });
106
108
  }
109
+ /**
110
+ * A stored draft as it lies in Drafts.
111
+ *
112
+ * The headers are read as everywhere else. Body and files come from readParts
113
+ * rather than from mailparser, which writes a forwarded original into the body
114
+ * and rewrites every cid: picture, so that what came back was not what had
115
+ * been stored. See src/mime/parts.ts.
116
+ */
117
+ async function readStored(connection, uid) {
118
+ const source = await connection.withMailbox(DRAFTS, async (client) => {
119
+ const message = await client.fetchOne(String(uid), { source: true }, { uid: true });
120
+ return message && message.source ? message.source : undefined;
121
+ });
122
+ if (!source) {
123
+ throw new BridgeError(`The draft could not be read from "${DRAFTS}". It may have been sent or moved in the meantime.`);
124
+ }
125
+ return { message: await parseMessage(source), parts: await readParts(source) };
126
+ }
107
127
  /** Writes a built message into Drafts and describes what was stored. */
108
128
  async function store(connection, draft) {
109
129
  const raw = await buildMessage(draft, { keepBcc: true });
@@ -134,6 +154,7 @@ export async function createDraft(connection, readOnly, fromAddress, input) {
134
154
  text: input.html !== undefined ? htmlToText(input.html) : (input.text ?? ''),
135
155
  messageId: mintMessageId(from.address),
136
156
  ...(input.html !== undefined ? { html: input.html } : {}),
157
+ ...(input.markupLevel !== undefined ? { markupLevel: input.markupLevel } : {}),
137
158
  };
138
159
  const raw = await buildMessage(draft, { keepBcc: true });
139
160
  const uid = await appendDraft(connection, raw);
@@ -172,7 +193,7 @@ export async function updateDraft(connection, readOnly, fromAddress, messageId,
172
193
  throw new BridgeError(`The message ${id} is in "${DRAFTS}" but does not carry the draft flag, so it is not treated ` +
173
194
  'as a draft. Refusing to replace it, because replacing means deleting the old version.');
174
195
  }
175
- const current = await getMessage(connection, id, { hint: DRAFTS });
196
+ const { message: current, parts } = await readStored(connection, existing.uid);
176
197
  const from = parseRecipient(fromAddress);
177
198
  const draft = {
178
199
  from,
@@ -183,9 +204,15 @@ export async function updateDraft(connection, readOnly, fromAddress, messageId,
183
204
  // only ever true for a draft this server wrote.
184
205
  bcc: changes.bcc === undefined ? current.bcc : parseRecipients(changes.bcc),
185
206
  subject: changes.subject === undefined ? current.subject : changes.subject,
186
- ...markupOf(changes, current),
207
+ ...bodyOf(changes, parts),
187
208
  messageId: id,
209
+ // Kept whatever happens to the body. No tool removes a file from a draft,
210
+ // so none may disappear as a side effect of changing the text.
211
+ ...(parts.files.length ? { carriedFiles: parts.files } : {}),
188
212
  };
213
+ // The recipients carried over were read back from the stored draft rather
214
+ // than typed, and have not been through parseRecipient.
215
+ allRecipients(draft).forEach(assertDeliverable);
189
216
  const raw = await buildMessage(draft, { keepBcc: true });
190
217
  const uid = await appendDraft(connection, raw);
191
218
  await connection.withMailbox(DRAFTS, async (client, status) => {
@@ -201,6 +228,7 @@ export async function updateDraft(connection, readOnly, fromAddress, messageId,
201
228
  cc: draft.cc,
202
229
  bcc: draft.bcc,
203
230
  uid,
231
+ ...(parts.files.length ? { keptFiles: parts.files.map((file) => file.filename) } : {}),
204
232
  };
205
233
  }
206
234
  /**
@@ -211,14 +239,27 @@ export async function updateDraft(connection, readOnly, fromAddress, messageId,
211
239
  * what was there, markup included, which is what makes changing only the
212
240
  * subject of a formatted draft leave the formatting alone.
213
241
  */
214
- function markupOf(changes, current) {
215
- if (changes.html !== undefined)
216
- return { text: htmlToText(changes.html), html: changes.html };
242
+ /**
243
+ * The body of an updated draft, and the level it is held to.
244
+ *
245
+ * The level travels with the body rather than beside it: a caller replacing the
246
+ * markup states which level the new markup is meant for, and one that only
247
+ * changes the subject keeps the stored body without a level, which means
248
+ * `standard`. A level carried over onto markup nobody re-stated would be a
249
+ * permission granted by an earlier call.
250
+ */
251
+ function bodyOf(changes, stored) {
252
+ if (changes.html !== undefined) {
253
+ const level = changes.markupLevel !== undefined ? { markupLevel: changes.markupLevel } : {};
254
+ return { text: htmlToText(changes.html), html: changes.html, ...level };
255
+ }
217
256
  if (changes.text !== undefined)
218
257
  return { text: changes.text };
219
- return current.html !== undefined
220
- ? { text: current.text, html: current.html }
221
- : { text: current.text };
258
+ // Nothing restated: the stored body stays as it was, quote and all, and is
259
+ // not checked again. See Draft.storedHtml for why it cannot be.
260
+ return stored.html !== undefined
261
+ ? { text: htmlToText(stored.html), storedHtml: stored.html }
262
+ : { text: (stored.text ?? '').trim() };
222
263
  }
223
264
  /**
224
265
  * The body of a reply, with the original quoted below it.
@@ -298,6 +339,7 @@ export async function buildReplyDraft(connection, fromAddress, messageId, text,
298
339
  subject: prefixSubject(original.subject, 'Re'),
299
340
  ...body,
300
341
  messageId: mintMessageId(from.address),
342
+ ...(options.markupLevel !== undefined ? { markupLevel: options.markupLevel } : {}),
301
343
  ...(thread.messageId ? { inReplyTo: thread.messageId } : {}),
302
344
  references: [...thread.references, ...(thread.messageId ? [thread.messageId] : [])],
303
345
  };
@@ -309,13 +351,19 @@ export async function replyDraft(connection, readOnly, fromAddress, messageId, t
309
351
  const draft = await buildReplyDraft(connection, fromAddress, messageId, text, options);
310
352
  return store(connection, draft);
311
353
  }
312
- /** The uid of a message inside one mailbox. */
354
+ /**
355
+ * The uid of a message inside one mailbox.
356
+ *
357
+ * findByMessageId rather than a search written out here, because it makes the
358
+ * second attempt without the angle brackets and verifies every hit of it. Real
359
+ * mail carries unbracketed identifiers, and without the fallback this threw
360
+ * "the message is no longer in Drafts" for a message that had not moved.
361
+ */
313
362
  async function uidOf(connection, path, messageId) {
314
363
  const uid = await connection.withMailbox(path, async (client, status) => {
315
364
  if (status.messages === 0)
316
365
  return undefined;
317
- const hits = await client.search({ header: { 'message-id': messageId } }, { uid: true });
318
- return Array.isArray(hits) && hits.length ? Math.max(...hits) : undefined;
366
+ return findByMessageId(client, messageId);
319
367
  });
320
368
  if (uid === undefined) {
321
369
  throw new BridgeError(`The message ${messageId} is no longer in "${path}".`);
@@ -341,11 +389,14 @@ export async function buildForwardDraft(connection, fromAddress, messageId, to,
341
389
  }
342
390
  const header = [
343
391
  '',
344
- '---------- Forwarded message ----------',
392
+ FORWARD_HEADER,
345
393
  `From: ${original.from.map((f) => (f.name ? `${f.name} <${f.address}>` : f.address)).join(', ')}`,
346
394
  `Date: ${original.date ? original.date.toISOString().slice(0, 16).replace('T', ' ') : 'unknown'}`,
347
395
  `Subject: ${original.subject || '(no subject)'}`,
348
396
  `To: ${original.to.map((t) => t.address).join(', ') || '(none)'}`,
397
+ // Two, so that a blank line parts the head from the original's first line.
398
+ // With one the two ran together, seen on 2026-11-02.
399
+ '',
349
400
  '',
350
401
  ].join('\n');
351
402
  const draft = {
@@ -357,7 +408,7 @@ export async function buildForwardDraft(connection, fromAddress, messageId, to,
357
408
  ...(options.html === undefined
358
409
  ? { text: `${text}\n${header}${original.text}` }
359
410
  : (() => {
360
- const head = `<p>---------- Forwarded message ----------<br>` +
411
+ const head = `<p>${FORWARD_HEADER}<br>` +
361
412
  `From: ${escapeHtml(original.from.map((f) => (f.name ? `${f.name} <${f.address}>` : f.address)).join(', '))}<br>` +
362
413
  `Date: ${escapeHtml(original.date ? original.date.toISOString().slice(0, 16).replace('T', ' ') : 'unknown')}<br>` +
363
414
  `Subject: ${escapeHtml(original.subject || '(no subject)')}<br>` +
@@ -372,6 +423,7 @@ export async function buildForwardDraft(connection, fromAddress, messageId, to,
372
423
  };
373
424
  })()),
374
425
  messageId: mintMessageId(from.address),
426
+ ...(options.markupLevel !== undefined ? { markupLevel: options.markupLevel } : {}),
375
427
  };
376
428
  // Only when there is something a quoted body would lose.
377
429
  if (original.attachments.length > 0) {
@@ -382,8 +434,9 @@ export async function buildForwardDraft(connection, fromAddress, messageId, to,
382
434
  });
383
435
  if (source) {
384
436
  draft.attachedMessage = {
385
- filename: `${(original.subject || 'message').replace(/[^\w. -]/g, '_').slice(0, 60)}.eml`,
437
+ filename: forwardedFileName(original.subject),
386
438
  raw: source,
439
+ carries: original.attachments.map((attachment) => attachment.filename),
387
440
  };
388
441
  }
389
442
  }
@@ -395,7 +448,13 @@ export async function forwardDraft(connection, readOnly, fromAddress, messageId,
395
448
  const draft = await buildForwardDraft(connection, fromAddress, messageId, to, text, options);
396
449
  const stored = await store(connection, draft);
397
450
  return draft.attachedMessage
398
- ? { ...stored, carriedAttachments: [draft.attachedMessage.filename] }
451
+ ? {
452
+ ...stored,
453
+ attachedOriginal: {
454
+ filename: draft.attachedMessage.filename,
455
+ carries: draft.attachedMessage.carries ?? [],
456
+ },
457
+ }
399
458
  : stored;
400
459
  }
401
460
  /** The drafts that are there. Reading only. */
@@ -428,22 +487,33 @@ export async function readDraftForSending(connection, fromAddress, messageId) {
428
487
  throw new BridgeError(`The message ${id} is in "${DRAFTS}" but does not carry the draft flag, so it is not a ` +
429
488
  'draft. Refusing to send it.');
430
489
  }
431
- const stored = await getMessage(connection, id, { hint: DRAFTS });
490
+ const { message: stored, parts } = await readStored(connection, existing.uid);
432
491
  if (stored.to.length === 0 && stored.cc.length === 0 && stored.bcc.length === 0) {
433
492
  throw new BridgeError(`The draft ${id} has no recipient, so there is nobody to send it to. Add one with ` +
434
493
  'update_draft first.');
435
494
  }
495
+ // A stored draft may have been written anywhere, in Proton itself included,
496
+ // so its recipients are held to the same rule as typed ones before the
497
+ // confirmation shows them.
498
+ for (const recipient of [...stored.to, ...stored.cc, ...stored.bcc])
499
+ assertDeliverable(recipient);
436
500
  return {
437
501
  from: parseRecipient(fromAddress),
438
502
  to: stored.to,
439
503
  cc: stored.cc,
440
504
  bcc: stored.bcc,
441
505
  subject: stored.subject,
442
- text: stored.text,
506
+ text: parts.html !== undefined ? htmlToText(parts.html) : (parts.text ?? '').trim(),
443
507
  messageId: id,
444
508
  // A draft written as markup is sent as the markup it was. Converting it to
445
- // text and back would deliver something its author never wrote.
446
- ...(stored.html !== undefined ? { html: stored.html } : {}),
509
+ // text and back would deliver something its author never wrote. It goes
510
+ // out as it was stored, without the check composed markup goes through,
511
+ // which is what Draft.storedHtml explains.
512
+ ...(parts.html !== undefined ? { storedHtml: parts.html } : {}),
513
+ // Its files too, the forwarded original among them. Up to 0.4.11 they were
514
+ // dropped here, and a forward sent from a draft went out without the
515
+ // message it forwarded.
516
+ ...(parts.files.length ? { carriedFiles: parts.files } : {}),
447
517
  };
448
518
  }
449
519
  //# sourceMappingURL=drafts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"drafts.js","sourceRoot":"","sources":["../../src/mail/drafts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drafts.js","sourceRoot":"","sources":["../../src/mail/drafts.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,16 @@ import type { ImapFlow } from 'imapflow';
13
13
  import type { Connection } from '../bridge/connection.js';
14
14
  /** Mailbox that holds every message, including trash. The fallback for lookups. */
15
15
  export declare const ALL_MAIL = "All Mail";
16
+ /**
17
+ * The trash, which is what deleting means here.
18
+ *
19
+ * Lives beside ALL_MAIL rather than in actions.ts, where it used to, because
20
+ * both the reading and the writing side need it now: a listing of "All Mail"
21
+ * says which of its entries are in the trash, and reaching from messages.ts
22
+ * into actions.ts would be a new edge from reading into writing for the sake of
23
+ * one string.
24
+ */
25
+ export declare const TRASH = "Trash";
16
26
  /**
17
27
  * Brings a Message-ID into the shape the IMAP header uses.
18
28
  *
package/dist/mail/ids.js CHANGED
@@ -10,8 +10,19 @@
10
10
  * being moved between two calls of a conversation.
11
11
  */
12
12
  import { BridgeError } from '../bridge/errors.js';
13
+ import { searchUids } from './uid-search.js';
13
14
  /** Mailbox that holds every message, including trash. The fallback for lookups. */
14
15
  export const ALL_MAIL = 'All Mail';
16
+ /**
17
+ * The trash, which is what deleting means here.
18
+ *
19
+ * Lives beside ALL_MAIL rather than in actions.ts, where it used to, because
20
+ * both the reading and the writing side need it now: a listing of "All Mail"
21
+ * says which of its entries are in the trash, and reaching from messages.ts
22
+ * into actions.ts would be a new edge from reading into writing for the sake of
23
+ * one string.
24
+ */
25
+ export const TRASH = 'Trash';
15
26
  /**
16
27
  * Brings a Message-ID into the shape the IMAP header uses.
17
28
  *
@@ -90,15 +101,16 @@ async function carriesId(client, uid, bare) {
90
101
  * empty, so nothing normal pays for it.
91
102
  */
92
103
  export async function findByMessageId(client, messageId) {
93
- const exact = await client.search({ header: { 'message-id': messageId } }, { uid: true });
94
- if (exact && exact.length > 0) {
104
+ const what = `the message ${messageId}`;
105
+ const exact = await searchUids(client, { header: { 'message-id': messageId } }, what);
106
+ if (exact.length > 0) {
95
107
  // Several hits mean duplicates of the same message inside one mailbox.
96
108
  // The highest UID is the most recent copy.
97
109
  return Math.max(...exact);
98
110
  }
99
111
  const bare = bareForm(messageId);
100
- const loose = await client.search({ header: { 'message-id': bare } }, { uid: true });
101
- if (!loose || loose.length === 0)
112
+ const loose = await searchUids(client, { header: { 'message-id': bare } }, what);
113
+ if (loose.length === 0)
102
114
  return undefined;
103
115
  // Newest first, so a duplicate resolves to the more recent copy like above.
104
116
  for (const uid of [...loose].sort((a, b) => b - a)) {
@@ -1 +1 @@
1
- {"version":3,"file":"ids.js","sourceRoot":"","sources":["../../src/mail/ids.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ids.js","sourceRoot":"","sources":["../../src/mail/ids.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@
22
22
  * folder deletes mail. That guard is the most important line in this file.
23
23
  */
24
24
  import { BridgeError } from '../bridge/errors.js';
25
- import { normaliseMessageId, resolveMessageId } from './ids.js';
25
+ import { normaliseMessageId, findByMessageId, resolveMessageId } from './ids.js';
26
26
  /** The prefix Proton exposes labels under. Anything else is not a label. */
27
27
  export const LABEL_PREFIX = 'Labels/';
28
28
  /**
@@ -124,14 +124,19 @@ export async function removeLabel(connection, readOnly, messageId, label) {
124
124
  // is pointless anyway.
125
125
  if (status.messages === 0)
126
126
  return false;
127
- const hits = await client.search({ header: { 'message-id': id } }, { uid: true });
128
- if (!Array.isArray(hits) || hits.length === 0)
127
+ // findByMessageId rather than a search written out here: it makes the
128
+ // second attempt without the angle brackets and verifies every hit of it.
129
+ // Real mail carries unbracketed identifiers, and without the fallback this
130
+ // reported wasApplied: false for a label that was applied - which reads as
131
+ // "it was not set" rather than "it was not found".
132
+ const uid = await findByMessageId(client, id);
133
+ if (uid === undefined)
129
134
  return false;
130
135
  // Guarded again, immediately before the expunge. The path cannot have
131
136
  // changed between the check above and here, but this is the line that
132
137
  // deletes, and it should not depend on a check twenty lines away.
133
138
  assertLabelMailbox(status.path);
134
- await client.messageDelete(String(Math.max(...hits)), { uid: true });
139
+ await client.messageDelete(String(uid), { uid: true });
135
140
  return true;
136
141
  });
137
142
  return { messageId: id, label: path, path, wasApplied };
@@ -1 +1 @@
1
- {"version":3,"file":"labels.js","sourceRoot":"","sources":["../../src/mail/labels.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"labels.js","sourceRoot":"","sources":["../../src/mail/labels.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,20 @@ export interface MessageHeader {
27
27
  draft: boolean;
28
28
  /** Whether the message carries attachments other than Proton's own key. */
29
29
  hasAttachments: boolean;
30
+ /**
31
+ * Set only when listing "All Mail", and only for the messages that are in the
32
+ * trash.
33
+ *
34
+ * "All Mail" holds every message including the discarded ones, so a listing of
35
+ * it looked the same whether a message was filed or thrown away. An assistant
36
+ * reported three drafts waiting in Drafts; they were in the trash and Drafts
37
+ * was empty. The `draft` mark is a flag rather than a place, and it stays on a
38
+ * draft wherever it goes - which makes "draft" read as "in Drafts".
39
+ *
40
+ * Absent elsewhere on purpose: every other listing names its mailbox in the
41
+ * first line, so there is nothing to disambiguate.
42
+ */
43
+ inTrash?: boolean;
30
44
  }
31
45
  /**
32
46
  * What the ordering step cost.
@@ -54,8 +68,8 @@ export interface ListResult {
54
68
  ordering: OrderingCost;
55
69
  }
56
70
  export declare function toAddresses(list: Array<{
57
- name?: string;
58
- address?: string;
71
+ name?: string | undefined;
72
+ address?: string | undefined;
59
73
  }> | undefined): Address[];
60
74
  /**
61
75
  * Guesses from the body structure whether real attachments are present.
@@ -70,6 +84,14 @@ export interface OrderEntry {
70
84
  uid: number;
71
85
  date: Date | undefined;
72
86
  }
87
+ /**
88
+ * The date of an envelope, or nothing when there is none that can be used.
89
+ *
90
+ * imapflow hands out the header text itself, not a Date, when it cannot read
91
+ * the date, and calling getTime() on that text throws. Such a message is
92
+ * treated as one without a date, which puts it at the end of a listing.
93
+ */
94
+ export declare function envelopeDate(value: Date | string | false | undefined): Date | undefined;
73
95
  /**
74
96
  * Reads nothing but the date of each message.
75
97
  *
@@ -87,6 +109,21 @@ export interface OrderEntry {
87
109
  * the very thing this ordering exists to survive.
88
110
  */
89
111
  export declare function fetchDates(client: ImapFlow, uids: number[]): Promise<OrderEntry[]>;
112
+ /** What a search compares itself, read from the same envelope as the date. */
113
+ export interface EnvelopeEntry extends OrderEntry {
114
+ /** Decoded by imapflow, unlike the raw header the Bridge searches. */
115
+ subject: string;
116
+ from: Address[];
117
+ to: Address[];
118
+ }
119
+ /**
120
+ * The date of each message, and the decoded subject, sender and recipients.
121
+ *
122
+ * Costs the same as fetchDates: both read the envelope, this one keeps more of
123
+ * it. A search needs those fields because the Bridge compares its text against
124
+ * the header as stored, encoded, see searchMessages.
125
+ */
126
+ export declare function fetchEnvelopes(client: ImapFlow, uids: number[]): Promise<EnvelopeEntry[]>;
90
127
  /**
91
128
  * Puts messages newest first and returns their UIDs in that order.
92
129
  *
@@ -100,14 +137,6 @@ export declare function fetchDates(client: ImapFlow, uids: number[]): Promise<Or
100
137
  * land somewhere definite rather than wherever undefined comparisons put them.
101
138
  */
102
139
  export declare function orderNewestFirst(entries: OrderEntry[]): number[];
103
- /**
104
- * Reads the headers for a set of UIDs, keeping the order they were given in.
105
- *
106
- * Shared by listing and searching, so both produce identical entries. The
107
- * caller has already selected the mailbox and narrowed the UIDs down to one
108
- * page: fetching headers for a whole result set would defeat the purpose, since
109
- * a common word matched 6803 messages in the measured mailbox.
110
- */
111
140
  export declare function fetchHeaders(client: ImapFlow, uids: number[]): Promise<MessageHeader[]>;
112
141
  export interface ListOptions {
113
142
  /** How many messages to return. Capped at MAX_LIST_LIMIT. */
@@ -134,6 +163,17 @@ export interface ListOptions {
134
163
  * `ordering` rather than hidden.
135
164
  */
136
165
  export declare function listMessages(connection: Connection, path: string, options?: ListOptions): Promise<ListResult>;
166
+ /**
167
+ * Marks the entries of an "All Mail" page that are in the trash.
168
+ *
169
+ * Outside the withMailbox above rather than inside it, and not by choice: a
170
+ * mailbox is held under a lock for the duration of the operation, so a second
171
+ * withMailbox nested in the first would wait for a lock its own frame holds.
172
+ */
173
+ export declare function withTrashMarks<T extends {
174
+ path: string;
175
+ headers: MessageHeader[];
176
+ }>(connection: Connection, result: T): Promise<T>;
137
177
  export interface FullMessage extends ParsedMessage {
138
178
  /** The mailbox the message was read from. */
139
179
  path: string;