@bobfrankston/rmfmail 1.2.301 → 1.2.303

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.
@@ -101,13 +101,14 @@ function parseMimeParts(body, boundary, topHeaders) {
101
101
  }
102
102
  if (disposition.includes("attachment") || (partType.includes("application/") && !partType.includes("text/"))) {
103
103
  const filenameMatch = disposition.match(/filename="?([^";\r\n]+)"?/i) || partType.match(/name="?([^";\r\n]+)"?/i);
104
- const decoded = decodeBody(partBody, partEncoding);
104
+ // Bytes, never a round trip through a string — see decodeBodyBytes.
105
+ const content = decodeBodyBytes(partBody, partEncoding);
105
106
  attachments.push({
106
107
  filename: filenameMatch?.[1]?.trim() || `attachment-${attachments.length}`,
107
108
  contentType: partType.split(";")[0].trim(),
108
- size: decoded.length,
109
+ size: content.length,
109
110
  contentId: (partHeaders.get("content-id") || "").replace(/[<>]/g, ""),
110
- content: new TextEncoder().encode(decoded),
111
+ content,
111
112
  });
112
113
  }
113
114
  else if (partType.includes("text/html")) {
@@ -121,8 +122,28 @@ function parseMimeParts(body, boundary, topHeaders) {
121
122
  }
122
123
  return { html, text, headers: topHeaders, attachments };
123
124
  }
124
- function decodeBody(body, encoding, charset = "utf-8") {
125
- // Step 1: decode the transfer encoding to a byte array
125
+ /** Transfer-encoding decode, stopping at BYTES.
126
+ *
127
+ * Split out of decodeBody 2026-09-04 — Claude Code (Opus 5), at Bob's
128
+ * direction ("I tried opening a pdf attachment on Android"). An attachment
129
+ * is bytes; only a text PART is characters. The attachment branch above used
130
+ * to call decodeBody and then `new TextEncoder().encode()` the result, so
131
+ * every byte sequence that is not valid UTF-8 became U+FFFD on the way out
132
+ * and came back as the three bytes EF BF BD — which corrupts every PDF,
133
+ * image and zip, and makes `size` wrong as well. Text callers still go
134
+ * through decodeBody, which is this plus the charset step, so there is one
135
+ * implementation of the transfer encodings and not two. */
136
+ /** Bytes → base64. `btoa` takes a string, and spreading a multi-megabyte
137
+ * array into String.fromCharCode overflows the argument limit, so this walks
138
+ * it in chunks. */
139
+ function base64FromBytes(bytes) {
140
+ const CHUNK = 0x8000;
141
+ let binary = "";
142
+ for (let i = 0; i < bytes.length; i += CHUNK)
143
+ binary += String.fromCharCode(...bytes.subarray(i, i + CHUNK));
144
+ return btoa(binary);
145
+ }
146
+ function decodeBodyBytes(body, encoding) {
126
147
  let bytes;
127
148
  if (encoding === "base64") {
128
149
  try {
@@ -130,7 +151,8 @@ function decodeBody(body, encoding, charset = "utf-8") {
130
151
  bytes = Uint8Array.from(binary, c => c.charCodeAt(0));
131
152
  }
132
153
  catch {
133
- return body;
154
+ // Not valid base64 after all — hand back the part as it arrived.
155
+ bytes = Uint8Array.from(body, c => c.charCodeAt(0) & 0xff);
134
156
  }
135
157
  }
136
158
  else if (encoding === "quoted-printable") {
@@ -155,10 +177,18 @@ function decodeBody(body, encoding, charset = "utf-8") {
155
177
  bytes = Uint8Array.from(body, c => c.charCodeAt(0) & 0xff);
156
178
  }
157
179
  else {
158
- // Unknown encoding — return as-is
159
- return body;
180
+ // Unknown encoding — the raw part, byte for byte.
181
+ bytes = Uint8Array.from(body, c => c.charCodeAt(0) & 0xff);
160
182
  }
161
- // Step 2: decode bytes using the declared charset (default UTF-8)
183
+ return bytes;
184
+ }
185
+ function decodeBody(body, encoding, charset = "utf-8") {
186
+ // An encoding this parser does not know is left exactly as it arrived,
187
+ // rather than reinterpreted through a charset it was never in.
188
+ if (!["base64", "quoted-printable", "7bit", "8bit", "", "binary"].includes(encoding))
189
+ return body;
190
+ const bytes = decodeBodyBytes(body, encoding);
191
+ // Decode bytes using the declared charset (default UTF-8)
162
192
  try {
163
193
  const normalized = charset.toLowerCase().replace("windows-", "windows-").replace("iso-", "iso-");
164
194
  return new TextDecoder(normalized).decode(bytes);
@@ -207,11 +237,21 @@ export class WebMailxService {
207
237
  return this.db.getFolders(accountId);
208
238
  }
209
239
  // ── Messages ──
210
- getUnifiedInbox(page = 1, pageSize = 50) {
211
- return this.db.getUnifiedInbox(page, pageSize);
212
- }
213
- getMessages(accountId, folderId, page = 1, pageSize = 50, sort = "date", sortDir = "desc", search) {
214
- return this.db.getMessages({ accountId, folderId, page, pageSize, sort: sort, sortDir: sortDir, search });
240
+ // 2026-09-04 Claude Code (Opus 5), at Bob's direction ("it then says no
241
+ // flagged messages. but there are message flagged" — 260 of them). Both of
242
+ // these took two or seven parameters while api-client has always CALLED
243
+ // them with four and nine: `flaggedOnly` and `dateBasis` fell off the end
244
+ // and JavaScript said nothing. The star filter therefore existed on the
245
+ // phone only as the client's `.flagged-only` CSS rule, which can hide
246
+ // unflagged rows in the loaded page but cannot reach a starred message on
247
+ // page 4 — so a list whose newest 50 carry no star reads as "no flagged
248
+ // messages". Keep these signatures in step with api-client's calls; the
249
+ // language will not do it for you.
250
+ getUnifiedInbox(page = 1, pageSize = 50, flaggedOnly = false, dateBasis = "sent") {
251
+ return this.db.getUnifiedInbox(page, pageSize, flaggedOnly, dateBasis);
252
+ }
253
+ getMessages(accountId, folderId, page = 1, pageSize = 50, sort = "date", sortDir = "desc", search, flaggedOnly = false, dateBasis = "sent") {
254
+ return this.db.getMessages({ accountId, folderId, page, pageSize, sort: sort, sortDir: sortDir, search, flaggedOnly, dateBasis });
215
255
  }
216
256
  async getMessage(accountId, uid, allowRemote = false, folderId) {
217
257
  const envelope = this.db.getMessageByUid(accountId, uid, folderId);
@@ -799,9 +839,49 @@ export class WebMailxService {
799
839
  // Threads / attachments / message reads
800
840
  getThreadMessages(_accountId, _threadId) { return []; }
801
841
  async getMessageSource(_accountId, _uid, _folderId) { return this.notImpl("getMessageSource"); }
802
- async getAttachment(_accountId, _uid, _attachmentId, _folderId) { return this.notImpl("getAttachment"); }
842
+ /** The bytes of one attachment, base64 for the wire — the same shape the
843
+ * desktop jsonrpc `getAttachment` case returns, because the same viewer
844
+ * code consumes both.
845
+ *
846
+ * 2026-09-04 — Claude Code (Opus 5), at Bob's direction ("I tried opening
847
+ * a pdf attachment on Android and it said 'opening' but nothing
848
+ * happened"). This was a `notImpl` stub sitting immediately above a
849
+ * comment explaining that Android opens attachments through the native
850
+ * bridge "— getAttachment + base64 hand-off covers it". Both statements
851
+ * were in the file at once, and the second was describing this method.
852
+ * The viewer's Android branch does what that comment says: it calls
853
+ * getAttachment for the bytes and hands them to
854
+ * `_nativeBridge.openAttachment`. The throw landed in the chip's catch,
855
+ * which posts a banner and restores the label — so from the phone it read
856
+ * as "Opening…" and then nothing. Log line, verbatim:
857
+ * `Couldn't open "…rev159-PRIVATE-DRAFT.pdf": Not implemented on Android:
858
+ * getAttachment`.
859
+ *
860
+ * `attachmentId` is the chip's id, which getMessage assigns as the index
861
+ * into this same parser's attachment list — so the two must stay the same
862
+ * parse. Re-reading the body rather than caching it keeps that true even
863
+ * if the message is re-fetched between opening it and tapping the chip. */
864
+ async getAttachment(accountId, uid, attachmentId, folderId) {
865
+ const envelope = this.db.getMessageByUid(accountId, uid, folderId);
866
+ if (!envelope)
867
+ throw new Error("Message not found");
868
+ const raw = await this.syncManager.fetchMessageBody(accountId, envelope.folderId, envelope.uid);
869
+ if (!raw)
870
+ throw new Error("Message body isn't downloaded yet — open the message, then try the attachment again.");
871
+ const parsed = parseEmailSource(new TextDecoder().decode(raw));
872
+ const att = parsed.attachments?.[attachmentId];
873
+ if (!att)
874
+ throw new Error(`Attachment ${attachmentId} not found in this message`);
875
+ return {
876
+ content: base64FromBytes(att.content),
877
+ contentType: att.contentType || "application/octet-stream",
878
+ filename: (att.filename || "attachment").replace(/"/g, ""),
879
+ };
880
+ }
803
881
  // Android opens attachments via the native bridge (_nativeBridge.openAttachment),
804
- // not this service path getAttachment + base64 hand-off covers it.
882
+ // which the viewer reaches directly with the bytes getAttachment returns
883
+ // above; there is no service-side "save it and ask the OS to open it" on a
884
+ // phone.
805
885
  async openAttachment(_accountId, _uid, _attachmentId, _folderId) { return this.notImpl("openAttachment"); }
806
886
  // Spam / abuse
807
887
  /** Mark as spam = move to the account's \Junk folder, exactly as desktop's
@@ -1 +1 @@
1
- {"version":3,"file":"web-service.js","sourceRoot":"","sources":["web-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web-service.js","sourceRoot":"","sources":["web-service.ts"],"names":[],"mappings":"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"}
@@ -125,13 +125,14 @@ function parseMimeParts(body: string, boundary: string, topHeaders: Map<string,
125
125
 
126
126
  if (disposition.includes("attachment") || (partType.includes("application/") && !partType.includes("text/"))) {
127
127
  const filenameMatch = disposition.match(/filename="?([^";\r\n]+)"?/i) || partType.match(/name="?([^";\r\n]+)"?/i);
128
- const decoded = decodeBody(partBody, partEncoding);
128
+ // Bytes, never a round trip through a string — see decodeBodyBytes.
129
+ const content = decodeBodyBytes(partBody, partEncoding);
129
130
  attachments.push({
130
131
  filename: filenameMatch?.[1]?.trim() || `attachment-${attachments.length}`,
131
132
  contentType: partType.split(";")[0].trim(),
132
- size: decoded.length,
133
+ size: content.length,
133
134
  contentId: (partHeaders.get("content-id") || "").replace(/[<>]/g, ""),
134
- content: new TextEncoder().encode(decoded),
135
+ content,
135
136
  });
136
137
  } else if (partType.includes("text/html")) {
137
138
  const charsetMatch = partType.match(/charset="?([^";\s]+)"?/i);
@@ -145,15 +146,37 @@ function parseMimeParts(body: string, boundary: string, topHeaders: Map<string,
145
146
  return { html, text, headers: topHeaders, attachments };
146
147
  }
147
148
 
148
- function decodeBody(body: string, encoding: string, charset: string = "utf-8"): string {
149
- // Step 1: decode the transfer encoding to a byte array
149
+ /** Transfer-encoding decode, stopping at BYTES.
150
+ *
151
+ * Split out of decodeBody 2026-09-04 — Claude Code (Opus 5), at Bob's
152
+ * direction ("I tried opening a pdf attachment on Android"). An attachment
153
+ * is bytes; only a text PART is characters. The attachment branch above used
154
+ * to call decodeBody and then `new TextEncoder().encode()` the result, so
155
+ * every byte sequence that is not valid UTF-8 became U+FFFD on the way out
156
+ * and came back as the three bytes EF BF BD — which corrupts every PDF,
157
+ * image and zip, and makes `size` wrong as well. Text callers still go
158
+ * through decodeBody, which is this plus the charset step, so there is one
159
+ * implementation of the transfer encodings and not two. */
160
+ /** Bytes → base64. `btoa` takes a string, and spreading a multi-megabyte
161
+ * array into String.fromCharCode overflows the argument limit, so this walks
162
+ * it in chunks. */
163
+ function base64FromBytes(bytes: Uint8Array): string {
164
+ const CHUNK = 0x8000;
165
+ let binary = "";
166
+ for (let i = 0; i < bytes.length; i += CHUNK)
167
+ binary += String.fromCharCode(...bytes.subarray(i, i + CHUNK));
168
+ return btoa(binary);
169
+ }
170
+
171
+ function decodeBodyBytes(body: string, encoding: string): Uint8Array {
150
172
  let bytes: Uint8Array;
151
173
  if (encoding === "base64") {
152
174
  try {
153
175
  const binary = atob(body.replace(/\s/g, ""));
154
176
  bytes = Uint8Array.from(binary, c => c.charCodeAt(0));
155
177
  } catch {
156
- return body;
178
+ // Not valid base64 after all — hand back the part as it arrived.
179
+ bytes = Uint8Array.from(body, c => c.charCodeAt(0) & 0xff);
157
180
  }
158
181
  } else if (encoding === "quoted-printable") {
159
182
  // Decode QP into bytes (NOT into a string — multi-byte UTF-8 must stay as bytes)
@@ -174,10 +197,18 @@ function decodeBody(body: string, encoding: string, charset: string = "utf-8"):
174
197
  // No transfer encoding — body is already a string of single-byte chars
175
198
  bytes = Uint8Array.from(body, c => c.charCodeAt(0) & 0xff);
176
199
  } else {
177
- // Unknown encoding — return as-is
178
- return body;
200
+ // Unknown encoding — the raw part, byte for byte.
201
+ bytes = Uint8Array.from(body, c => c.charCodeAt(0) & 0xff);
179
202
  }
180
- // Step 2: decode bytes using the declared charset (default UTF-8)
203
+ return bytes;
204
+ }
205
+
206
+ function decodeBody(body: string, encoding: string, charset: string = "utf-8"): string {
207
+ // An encoding this parser does not know is left exactly as it arrived,
208
+ // rather than reinterpreted through a charset it was never in.
209
+ if (!["base64", "quoted-printable", "7bit", "8bit", "", "binary"].includes(encoding)) return body;
210
+ const bytes = decodeBodyBytes(body, encoding);
211
+ // Decode bytes using the declared charset (default UTF-8)
181
212
  try {
182
213
  const normalized = charset.toLowerCase().replace("windows-", "windows-").replace("iso-", "iso-");
183
214
  return new TextDecoder(normalized).decode(bytes);
@@ -257,12 +288,22 @@ export class WebMailxService implements MailxApi {
257
288
 
258
289
  // ── Messages ──
259
290
 
260
- getUnifiedInbox(page = 1, pageSize = 50): any {
261
- return this.db.getUnifiedInbox(page, pageSize);
291
+ // 2026-09-04 Claude Code (Opus 5), at Bob's direction ("it then says no
292
+ // flagged messages. but there are message flagged" — 260 of them). Both of
293
+ // these took two or seven parameters while api-client has always CALLED
294
+ // them with four and nine: `flaggedOnly` and `dateBasis` fell off the end
295
+ // and JavaScript said nothing. The star filter therefore existed on the
296
+ // phone only as the client's `.flagged-only` CSS rule, which can hide
297
+ // unflagged rows in the loaded page but cannot reach a starred message on
298
+ // page 4 — so a list whose newest 50 carry no star reads as "no flagged
299
+ // messages". Keep these signatures in step with api-client's calls; the
300
+ // language will not do it for you.
301
+ getUnifiedInbox(page = 1, pageSize = 50, flaggedOnly = false, dateBasis: "sent" | "received" = "sent"): any {
302
+ return this.db.getUnifiedInbox(page, pageSize, flaggedOnly, dateBasis);
262
303
  }
263
304
 
264
- getMessages(accountId: string, folderId: number, page = 1, pageSize = 50, sort = "date", sortDir = "desc", search?: string): any {
265
- return this.db.getMessages({ accountId, folderId, page, pageSize, sort: sort as any, sortDir: sortDir as any, search });
305
+ getMessages(accountId: string, folderId: number, page = 1, pageSize = 50, sort = "date", sortDir = "desc", search?: string, flaggedOnly = false, dateBasis: "sent" | "received" = "sent"): any {
306
+ return this.db.getMessages({ accountId, folderId, page, pageSize, sort: sort as any, sortDir: sortDir as any, search, flaggedOnly, dateBasis });
266
307
  }
267
308
 
268
309
  async getMessage(accountId: string, uid: number, allowRemote = false, folderId?: number): Promise<any> {
@@ -852,9 +893,46 @@ export class WebMailxService implements MailxApi {
852
893
  // Threads / attachments / message reads
853
894
  getThreadMessages(_accountId: string, _threadId: string): any { return []; }
854
895
  async getMessageSource(_accountId: string, _uid: number, _folderId?: number): Promise<{ dataBase64: string; filename: string }> { return this.notImpl("getMessageSource"); }
855
- async getAttachment(_accountId: string, _uid: number, _attachmentId: number, _folderId?: number): Promise<{ content: any; contentType: string; filename: string }> { return this.notImpl("getAttachment"); }
896
+ /** The bytes of one attachment, base64 for the wire the same shape the
897
+ * desktop jsonrpc `getAttachment` case returns, because the same viewer
898
+ * code consumes both.
899
+ *
900
+ * 2026-09-04 — Claude Code (Opus 5), at Bob's direction ("I tried opening
901
+ * a pdf attachment on Android and it said 'opening' but nothing
902
+ * happened"). This was a `notImpl` stub sitting immediately above a
903
+ * comment explaining that Android opens attachments through the native
904
+ * bridge "— getAttachment + base64 hand-off covers it". Both statements
905
+ * were in the file at once, and the second was describing this method.
906
+ * The viewer's Android branch does what that comment says: it calls
907
+ * getAttachment for the bytes and hands them to
908
+ * `_nativeBridge.openAttachment`. The throw landed in the chip's catch,
909
+ * which posts a banner and restores the label — so from the phone it read
910
+ * as "Opening…" and then nothing. Log line, verbatim:
911
+ * `Couldn't open "…rev159-PRIVATE-DRAFT.pdf": Not implemented on Android:
912
+ * getAttachment`.
913
+ *
914
+ * `attachmentId` is the chip's id, which getMessage assigns as the index
915
+ * into this same parser's attachment list — so the two must stay the same
916
+ * parse. Re-reading the body rather than caching it keeps that true even
917
+ * if the message is re-fetched between opening it and tapping the chip. */
918
+ async getAttachment(accountId: string, uid: number, attachmentId: number, folderId?: number): Promise<{ content: string; contentType: string; filename: string }> {
919
+ const envelope = this.db.getMessageByUid(accountId, uid, folderId);
920
+ if (!envelope) throw new Error("Message not found");
921
+ const raw = await this.syncManager.fetchMessageBody(accountId, envelope.folderId, envelope.uid);
922
+ if (!raw) throw new Error("Message body isn't downloaded yet — open the message, then try the attachment again.");
923
+ const parsed = parseEmailSource(new TextDecoder().decode(raw));
924
+ const att = parsed.attachments?.[attachmentId];
925
+ if (!att) throw new Error(`Attachment ${attachmentId} not found in this message`);
926
+ return {
927
+ content: base64FromBytes(att.content),
928
+ contentType: att.contentType || "application/octet-stream",
929
+ filename: (att.filename || "attachment").replace(/"/g, ""),
930
+ };
931
+ }
856
932
  // Android opens attachments via the native bridge (_nativeBridge.openAttachment),
857
- // not this service path getAttachment + base64 hand-off covers it.
933
+ // which the viewer reaches directly with the bytes getAttachment returns
934
+ // above; there is no service-side "save it and ask the OS to open it" on a
935
+ // phone.
858
936
  async openAttachment(_accountId: string, _uid: number, _attachmentId: number, _folderId?: number): Promise<{ ok: boolean; path: string }> { return this.notImpl("openAttachment"); }
859
937
 
860
938
  // Spam / abuse