@marcfargas/go-easy 0.3.0 → 0.4.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,44 @@
1
1
  # @marcfargas/go-easy
2
2
 
3
+ ## 0.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#3](https://github.com/marcfargas/go-easy/pull/3) [`5a516d5`](https://github.com/marcfargas/go-easy/commit/5a516d5bc8662a2ae9ff4b45bc3cac4c0f8b9e99) Thanks [@marcfargas](https://github.com/marcfargas)! - Add `--format=text`, `--format=html`, and `--format=sane-html` to `go-gmail get` — extract message body directly without parsing the full JSON response.
8
+
9
+ - `--format=text` — plain text body
10
+ - `--format=html` — raw HTML body
11
+ - `--format=sane-html` — HTML with `<script>`, event handlers, `javascript:` hrefs, and `data:` image URIs stripped (safe to render)
12
+
13
+ All formats support `--output=<path>` and `--b64encode`, matching the existing `--format=eml` contract.
14
+
15
+ New library export: `sanitizeEmailHtml(html)` from `@marcfargas/go-easy/gmail`.
16
+ New dependency: `sanitize-html`.
17
+
18
+ - [#3](https://github.com/marcfargas/go-easy/pull/3) [`5a516d5`](https://github.com/marcfargas/go-easy/commit/5a516d5bc8662a2ae9ff4b45bc3cac4c0f8b9e99) Thanks [@marcfargas](https://github.com/marcfargas)! - Add `--format=eml` for `go-gmail get` and `--format=mbox` for `go-gmail thread` — download raw RFC 2822 email or full thread as mbox.
19
+
20
+ New output modes work with `--output=<path>` (write to file) and `--b64encode` (base64 JSON, agent-safe), or pipe raw bytes directly to stdout.
21
+
22
+ This also fixes retrieval of `message/rfc822` embedded attachments (forwarded .eml files) which previously failed with "Invalid attachment token" — `--format=eml` returns the complete outer message via Gmail's `format=raw` API, bypassing the broken `attachments.get` endpoint.
23
+
24
+ New library exports: `getMessageRaw(auth, messageId)`, `getThreadMbox(auth, threadId, fromAddress)`.
25
+
26
+ ### Patch Changes
27
+
28
+ - [#3](https://github.com/marcfargas/go-easy/pull/3) [`5a516d5`](https://github.com/marcfargas/go-easy/commit/5a516d5bc8662a2ae9ff4b45bc3cac4c0f8b9e99) Thanks [@marcfargas](https://github.com/marcfargas)! - Internal code quality improvements — no behaviour changes.
29
+
30
+ - Extract `gmailApi` and `handleApiError` to `src/gmail/api.ts` (eliminates duplication between `index.ts` and `raw.ts`)
31
+ - Extract `parseFlags` and `readBodyFlags` to `src/bin/gmail-flags.ts` (enables proper test imports)
32
+ - Extract `serializeMimePart()` MIME helper (eliminates copy-paste between `buildMimeMessage` and `buildForwardMime`)
33
+ - Remove unused `lookup` import from `helpers.ts`
34
+ - Fix `handleRawOutput` return type annotation
35
+
36
+ ## 0.3.1
37
+
38
+ ### Patch Changes
39
+
40
+ - Fix encoding of non-ASCII display names in email address headers (From, To, Cc, Bcc). Characters like "Júlia" were corrupted due to missing RFC 2047 encoding — now properly encoded as `=?UTF-8?B?...?=`.
41
+
3
42
  ## 0.3.0
4
43
 
5
44
  ### Minor Changes
@@ -0,0 +1,12 @@
1
+ /** Parse --key=value flags from args */
2
+ export declare function parseFlags(args: string[]): Record<string, string>;
3
+ /**
4
+ * Read body content from file flags.
5
+ * Returns { body?, html?, markdown? } for SendOptions.
6
+ */
7
+ export declare function readBodyFlags(flags: Record<string, string>): {
8
+ body?: string;
9
+ html?: string;
10
+ markdown?: string;
11
+ };
12
+ //# sourceMappingURL=gmail-flags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gmail-flags.d.ts","sourceRoot":"","sources":["../../src/bin/gmail-flags.ts"],"names":[],"mappings":"AAEA,wCAAwC;AACxC,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASjE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAcA"}
@@ -0,0 +1,30 @@
1
+ import { readFileSync } from 'node:fs';
2
+ /** Parse --key=value flags from args */
3
+ export function parseFlags(args) {
4
+ const flags = {};
5
+ for (const arg of args) {
6
+ const match = arg.match(/^--([^=]+)(?:=(.*))?$/s);
7
+ if (match) {
8
+ flags[match[1]] = match[2] ?? 'true';
9
+ }
10
+ }
11
+ return flags;
12
+ }
13
+ /**
14
+ * Read body content from file flags.
15
+ * Returns { body?, html?, markdown? } for SendOptions.
16
+ */
17
+ export function readBodyFlags(flags) {
18
+ const result = {};
19
+ if (flags['body-text-file']) {
20
+ result.body = readFileSync(flags['body-text-file'], 'utf-8');
21
+ }
22
+ if (flags['body-html-file']) {
23
+ result.html = readFileSync(flags['body-html-file'], 'utf-8');
24
+ }
25
+ if (flags['body-md-file']) {
26
+ result.markdown = readFileSync(flags['body-md-file'], 'utf-8');
27
+ }
28
+ return result;
29
+ }
30
+ //# sourceMappingURL=gmail-flags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gmail-flags.js","sourceRoot":"","sources":["../../src/bin/gmail-flags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,wCAAwC;AACxC,MAAM,UAAU,UAAU,CAAC,IAAc;IACvC,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAClD,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;QACvC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAA6B;IAKzD,MAAM,MAAM,GAAwD,EAAE,CAAC;IAEvE,IAAI,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/dist/bin/gmail.js CHANGED
@@ -21,10 +21,11 @@
21
21
  * Destructive operations (send, reply, forward, sendDraft) require --confirm flag.
22
22
  * Without --confirm, the command shows what WOULD happen and exits.
23
23
  */
24
- import { readFileSync } from 'node:fs';
24
+ import { writeFileSync } from 'node:fs';
25
25
  import { getAuth } from '../auth.js';
26
26
  import { setSafetyContext } from '../safety.js';
27
27
  import * as gmail from '../gmail/index.js';
28
+ import { parseFlags, readBodyFlags } from './gmail-flags.js';
28
29
  const args = process.argv.slice(2);
29
30
  function usage() {
30
31
  console.log(JSON.stringify({
@@ -32,8 +33,8 @@ function usage() {
32
33
  message: 'go-gmail <account> <command> [args...]',
33
34
  commands: {
34
35
  search: 'go-gmail <account> search "<query>" [--max=N] [--page-token=<token>]',
35
- get: 'go-gmail <account> get <messageId>',
36
- thread: 'go-gmail <account> thread <threadId>',
36
+ get: 'go-gmail <account> get <messageId> [--format=eml|text|html|sane-html] [--output=<path>] [--b64encode]',
37
+ thread: 'go-gmail <account> thread <threadId> [--format=mbox] [--output=<path>] [--b64encode]',
37
38
  labels: 'go-gmail <account> labels',
38
39
  send: 'go-gmail <account> send --to=<addr> --subject="..." --body-text-file=body.txt [--cc=<addr>] [--bcc=<addr>] [--confirm]',
39
40
  reply: 'go-gmail <account> reply <messageId> --body-text-file=reply.txt [--reply-all] --confirm',
@@ -53,37 +54,35 @@ function usage() {
53
54
  }, null, 2));
54
55
  process.exit(1);
55
56
  }
56
- /** Parse --key=value flags from args */
57
- function parseFlags(args) {
58
- const flags = {};
59
- for (const arg of args) {
60
- const match = arg.match(/^--([^=]+)(?:=(.*))?$/s);
61
- if (match) {
62
- flags[match[1]] = match[2] ?? 'true';
63
- }
64
- }
65
- return flags;
66
- }
67
57
  /** Get positional args (non-flag) */
68
58
  function positional(args) {
69
59
  return args.filter((a) => !a.startsWith('--'));
70
60
  }
71
61
  /**
72
- * Read body content from file flags.
73
- * Returns { body?, html?, markdown? } for SendOptions.
62
+ * Handle output for --format=eml / --format=mbox / --format=text / --format=html / --format=sane-html.
63
+ *
64
+ * Three output modes:
65
+ * --output=<path> Write bytes to file → JSON { ok, format, path, bytes }
66
+ * --b64encode Emit JSON { format, data: "<base64>", bytes } to stdout
67
+ * (neither) Write content directly to stdout (pipe-friendly, non-JSON)
68
+ *
69
+ * Returns the JSON result object when writing to file or b64, or undefined
70
+ * when writing raw to stdout (caller must not JSON.stringify again).
74
71
  */
75
- function readBodyFlags(flags) {
76
- const result = {};
77
- if (flags['body-text-file']) {
78
- result.body = readFileSync(flags['body-text-file'], 'utf-8');
79
- }
80
- if (flags['body-html-file']) {
81
- result.html = readFileSync(flags['body-html-file'], 'utf-8');
72
+ function handleRawOutput(buf, format, flags) {
73
+ const outputPath = flags['output'];
74
+ const b64encode = 'b64encode' in flags;
75
+ if (outputPath) {
76
+ writeFileSync(outputPath, buf);
77
+ return { ok: true, format, path: outputPath, bytes: buf.length };
82
78
  }
83
- if (flags['body-md-file']) {
84
- result.markdown = readFileSync(flags['body-md-file'], 'utf-8');
79
+ if (b64encode) {
80
+ return { format, data: buf.toString('base64'), bytes: buf.length };
85
81
  }
86
- return result;
82
+ // Raw bytes to stdout — intentionally non-JSON for pipe usage:
83
+ // go-gmail <account> get <id> --format=eml > message.eml
84
+ process.stdout.write(buf);
85
+ return undefined; // caller must not call JSON.stringify
87
86
  }
88
87
  async function main() {
89
88
  if (args.length < 2)
@@ -124,15 +123,51 @@ async function main() {
124
123
  pageToken: flags['page-token'],
125
124
  });
126
125
  break;
127
- case 'get':
126
+ case 'get': {
128
127
  if (!pos[0])
129
128
  usage();
130
- result = await gmail.getMessage(auth, pos[0]);
129
+ const fmt = flags.format;
130
+ if (fmt === 'eml') {
131
+ const buf = await gmail.getMessageRaw(auth, pos[0]);
132
+ result = handleRawOutput(buf, 'eml', flags);
133
+ if (result === undefined)
134
+ return; // already written to stdout
135
+ }
136
+ else if (fmt === 'text' || fmt === 'html' || fmt === 'sane-html') {
137
+ const msg = await gmail.getMessage(auth, pos[0]);
138
+ let content;
139
+ if (fmt === 'text') {
140
+ content = msg.body.text ?? '';
141
+ }
142
+ else if (fmt === 'html') {
143
+ content = msg.body.html ?? '';
144
+ }
145
+ else {
146
+ // sane-html: sanitize before output
147
+ content = gmail.sanitizeEmailHtml(msg.body.html ?? '');
148
+ }
149
+ result = handleRawOutput(Buffer.from(content, 'utf-8'), fmt, flags);
150
+ if (result === undefined)
151
+ return; // already written to stdout
152
+ }
153
+ else {
154
+ result = await gmail.getMessage(auth, pos[0]);
155
+ }
131
156
  break;
157
+ }
132
158
  case 'thread':
133
159
  if (!pos[0])
134
160
  usage();
135
- result = await gmail.getThread(auth, pos[0]);
161
+ if (flags.format === 'mbox') {
162
+ const fromAddress = await gmail.getProfile(auth);
163
+ const buf = await gmail.getThreadMbox(auth, pos[0], fromAddress);
164
+ result = handleRawOutput(buf, 'mbox', flags);
165
+ if (result === undefined)
166
+ return; // already written to stdout
167
+ }
168
+ else {
169
+ result = await gmail.getThread(auth, pos[0]);
170
+ }
136
171
  break;
137
172
  case 'labels':
138
173
  result = await gmail.listLabels(auth);
@@ -1 +1 @@
1
- {"version":3,"file":"gmail.js","sourceRoot":"","sources":["../../src/bin/gmail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gmail.js","sourceRoot":"","sources":["../../src/bin/gmail.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { OAuth2Client } from 'google-auth-library';
2
+ /** Get a Gmail API client instance */
3
+ export declare function gmailApi(auth: OAuth2Client): import("@googleapis/gmail").gmail_v1.Gmail;
4
+ /** Wrap Google API errors into our error types */
5
+ export declare function handleApiError(err: unknown, context: string): never;
6
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/gmail/api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,sCAAsC;AACtC,wBAAgB,QAAQ,CAAC,IAAI,EAAE,YAAY,8CAE1C;AAED,kDAAkD;AAClD,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAUnE"}
@@ -0,0 +1,18 @@
1
+ import { gmail } from '@googleapis/gmail';
2
+ import { GoEasyError, NotFoundError, QuotaError } from '../errors.js';
3
+ /** Get a Gmail API client instance */
4
+ export function gmailApi(auth) {
5
+ return gmail({ version: 'v1', auth });
6
+ }
7
+ /** Wrap Google API errors into our error types */
8
+ export function handleApiError(err, context) {
9
+ if (err instanceof GoEasyError)
10
+ throw err;
11
+ const gErr = err;
12
+ if (gErr.code === 404)
13
+ throw new NotFoundError('message', context, err);
14
+ if (gErr.code === 429)
15
+ throw new QuotaError('gmail', err);
16
+ throw new GoEasyError(`Gmail ${context}: ${gErr.message ?? 'Unknown error'}`, 'GMAIL_ERROR', err);
17
+ }
18
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/gmail/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEtE,sCAAsC;AACtC,MAAM,UAAU,QAAQ,CAAC,IAAkB;IACzC,OAAO,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,cAAc,CAAC,GAAY,EAAE,OAAe;IAC1D,IAAI,GAAG,YAAY,WAAW;QAAE,MAAM,GAAG,CAAC;IAC1C,MAAM,IAAI,GAAG,GAA0C,CAAC;IACxD,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG;QAAE,MAAM,IAAI,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IACxE,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG;QAAE,MAAM,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC1D,MAAM,IAAI,WAAW,CACnB,SAAS,OAAO,KAAK,IAAI,CAAC,OAAO,IAAI,eAAe,EAAE,EACtD,aAAa,EACb,GAAG,CACJ,CAAC;AACJ,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Gmail body format helpers.
3
+ *
4
+ * sanitizeEmailHtml — strips dangerous HTML from email bodies while preserving
5
+ * visual structure (layout, inline styles, tables, images) needed for correct
6
+ * rendering. Used for --format=sane-html.
7
+ */
8
+ /**
9
+ * Sanitize an HTML email body for safe rendering/storage.
10
+ *
11
+ * What is stripped:
12
+ * - <script>, <iframe>, <object>, <embed>, <form>, <input>, <button>
13
+ * - All event handler attributes (onclick, onload, onerror, …)
14
+ * - javascript: and data: URIs in href/src
15
+ * - <meta> and <link> tags (no external resource loading)
16
+ *
17
+ * What is kept:
18
+ * - All structural and formatting tags (div, p, table, span, …)
19
+ * - style attributes (needed for email layout — not executable)
20
+ * - class, id, align, width, height, bgcolor (common email layout attrs)
21
+ * - <a href> with http/https/mailto schemes only
22
+ * - <img src> with http/https/cid schemes (cid: for inline attachments)
23
+ * - Tables with colspan/rowspan/border/cellpadding
24
+ * - Legacy <font> and <center> tags (common in older email templates)
25
+ */
26
+ export declare function sanitizeEmailHtml(html: string): string;
27
+ //# sourceMappingURL=formats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formats.d.ts","sourceRoot":"","sources":["../../src/gmail/formats.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAuEtD"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Gmail body format helpers.
3
+ *
4
+ * sanitizeEmailHtml — strips dangerous HTML from email bodies while preserving
5
+ * visual structure (layout, inline styles, tables, images) needed for correct
6
+ * rendering. Used for --format=sane-html.
7
+ */
8
+ import sanitizeHtml from 'sanitize-html';
9
+ /**
10
+ * Sanitize an HTML email body for safe rendering/storage.
11
+ *
12
+ * What is stripped:
13
+ * - <script>, <iframe>, <object>, <embed>, <form>, <input>, <button>
14
+ * - All event handler attributes (onclick, onload, onerror, …)
15
+ * - javascript: and data: URIs in href/src
16
+ * - <meta> and <link> tags (no external resource loading)
17
+ *
18
+ * What is kept:
19
+ * - All structural and formatting tags (div, p, table, span, …)
20
+ * - style attributes (needed for email layout — not executable)
21
+ * - class, id, align, width, height, bgcolor (common email layout attrs)
22
+ * - <a href> with http/https/mailto schemes only
23
+ * - <img src> with http/https/cid schemes (cid: for inline attachments)
24
+ * - Tables with colspan/rowspan/border/cellpadding
25
+ * - Legacy <font> and <center> tags (common in older email templates)
26
+ */
27
+ export function sanitizeEmailHtml(html) {
28
+ return sanitizeHtml(html, {
29
+ allowedTags: [
30
+ // Document skeleton (sanitize-html strips html/head/body content but keeps children)
31
+ 'html', 'head', 'body',
32
+ // Sectioning
33
+ 'div', 'span', 'section', 'article', 'header', 'footer', 'main', 'nav', 'aside',
34
+ // Headings
35
+ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',
36
+ // Text blocks
37
+ 'p', 'pre', 'blockquote', 'code', 'kbd', 'samp',
38
+ // Inline text
39
+ 'b', 'strong', 'i', 'em', 'u', 's', 'del', 'ins', 'mark', 'small', 'sub', 'sup',
40
+ 'abbr', 'cite', 'q', 'time', 'var',
41
+ // Line / separator
42
+ 'br', 'hr', 'wbr',
43
+ // Links & media
44
+ 'a', 'img',
45
+ // Lists
46
+ 'ul', 'ol', 'li', 'dl', 'dt', 'dd',
47
+ // Tables (essential for most HTML email layouts)
48
+ 'table', 'thead', 'tbody', 'tfoot', 'tr', 'th', 'td', 'caption', 'col', 'colgroup',
49
+ // Figures
50
+ 'figure', 'figcaption',
51
+ // Legacy email tags
52
+ 'center', 'font',
53
+ // Title (harmless, sometimes in email <head>)
54
+ 'title',
55
+ ],
56
+ allowedAttributes: {
57
+ // Layout and style attributes accepted on any tag
58
+ '*': ['style', 'class', 'id', 'dir', 'lang',
59
+ 'align', 'valign', 'width', 'height',
60
+ 'bgcolor', 'color', 'border'],
61
+ // Links: only safe schemes; open in new tab is fine, rel=noopener is added below
62
+ 'a': ['href', 'title', 'target', 'rel', 'name'],
63
+ // Images: src controlled via allowedSchemesByTag
64
+ 'img': ['src', 'alt', 'title', 'width', 'height', 'border'],
65
+ // Table layout attributes
66
+ 'table': ['cellpadding', 'cellspacing', 'summary', 'rules', 'frame'],
67
+ 'td': ['colspan', 'rowspan', 'headers', 'abbr', 'scope'],
68
+ 'th': ['colspan', 'rowspan', 'headers', 'abbr', 'scope'],
69
+ 'col': ['span'],
70
+ 'colgroup': ['span'],
71
+ // Legacy font tag
72
+ 'font': ['face', 'size', 'color'],
73
+ },
74
+ // Allow http/https/mailto everywhere; data:/javascript: are implicitly denied
75
+ allowedSchemes: ['http', 'https', 'mailto'],
76
+ allowedSchemesByTag: {
77
+ // cid: is used for inline (embedded) email attachments — safe, no network request
78
+ img: ['http', 'https', 'cid'],
79
+ },
80
+ // Safely rewrite <a target="_blank"> to also include rel="noopener noreferrer"
81
+ transformTags: {
82
+ a: (tagName, attribs) => {
83
+ const rel = attribs.target === '_blank'
84
+ ? 'noopener noreferrer'
85
+ : (attribs.rel ?? '');
86
+ return { tagName, attribs: { ...attribs, ...(rel ? { rel } : {}) } };
87
+ },
88
+ },
89
+ });
90
+ }
91
+ //# sourceMappingURL=formats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formats.js","sourceRoot":"","sources":["../../src/gmail/formats.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,17 @@ export declare function base64UrlEncode(data: string | Buffer): string;
37
37
  * Returns the value unchanged if it's pure ASCII.
38
38
  */
39
39
  export declare function rfc2047Encode(value: string): string;
40
+ /**
41
+ * RFC 2047 encode the display name portion of a single email address.
42
+ * "Júlia Fargas <julia@example.com>" → "=?UTF-8?B?...?= <julia@example.com>"
43
+ * Plain addresses like "julia@example.com" are returned unchanged.
44
+ */
45
+ export declare function rfc2047EncodeAddress(address: string): string;
46
+ /**
47
+ * RFC 2047 encode a comma-separated list of email addresses.
48
+ * Each display name is encoded individually if it contains non-ASCII chars.
49
+ */
50
+ export declare function rfc2047EncodeAddressList(addresses: string): string;
40
51
  /**
41
52
  * Parse a raw Gmail API message into our GmailMessage shape.
42
53
  */
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/gmail/helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9F;;GAEG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,QAAQ,CAAC,wBAAwB,EAAE,GAAG,SAAS,EACxD,IAAI,EAAE,MAAM,GACX,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAMxD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,QAAQ,CAAC,kBAAkB,GAAG,SAAS,GAC/C,cAAc,EAAE,CAsBlB;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,QAAQ,CAAC,kBAAkB,GAAG,SAAS,GAC/C;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAoBlC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAG7D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,cAAc,GAAG,YAAY,CAoBvE;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,EACjB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,OAAO,CAAC,MAAM,CAAC,CA2FjB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,YAAY,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9C,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACrC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CA0FjB"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/gmail/helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9F;;GAEG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,QAAQ,CAAC,wBAAwB,EAAE,GAAG,SAAS,EACxD,IAAI,EAAE,MAAM,GACX,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAMxD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,QAAQ,CAAC,kBAAkB,GAAG,SAAS,GAC/C,cAAc,EAAE,CAsBlB;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,QAAQ,CAAC,kBAAkB,GAAG,SAAS,GAC/C;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAoBlC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAG7D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAW5D;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAMlE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,cAAc,GAAG,YAAY,CAoBvE;AAsBD;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,EACjB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,OAAO,CAAC,MAAM,CAAC,CAoFjB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,YAAY,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9C,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACrC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAmFjB"}
@@ -94,6 +94,35 @@ export function rfc2047Encode(value) {
94
94
  const encoded = Buffer.from(value, 'utf-8').toString('base64');
95
95
  return `=?UTF-8?B?${encoded}?=`;
96
96
  }
97
+ /**
98
+ * RFC 2047 encode the display name portion of a single email address.
99
+ * "Júlia Fargas <julia@example.com>" → "=?UTF-8?B?...?= <julia@example.com>"
100
+ * Plain addresses like "julia@example.com" are returned unchanged.
101
+ */
102
+ export function rfc2047EncodeAddress(address) {
103
+ const trimmed = address.trim();
104
+ // Match "Display Name <email@example.com>" or "\"Display Name\" <email>"
105
+ const match = trimmed.match(/^"?(.+?)"?\s*<([^>]+)>$/);
106
+ if (match) {
107
+ const [, displayName, email] = match;
108
+ const encodedName = rfc2047Encode(displayName.trim());
109
+ return `${encodedName} <${email}>`;
110
+ }
111
+ // Just an email address, no encoding needed
112
+ return trimmed;
113
+ }
114
+ /**
115
+ * RFC 2047 encode a comma-separated list of email addresses.
116
+ * Each display name is encoded individually if it contains non-ASCII chars.
117
+ */
118
+ export function rfc2047EncodeAddressList(addresses) {
119
+ if (!addresses)
120
+ return addresses;
121
+ return addresses
122
+ .split(',')
123
+ .map((a) => rfc2047EncodeAddress(a))
124
+ .join(', ');
125
+ }
97
126
  /**
98
127
  * Parse a raw Gmail API message into our GmailMessage shape.
99
128
  */
@@ -116,6 +145,20 @@ export function parseMessage(raw) {
116
145
  ...(rfc822MessageId ? { rfc822MessageId } : {}),
117
146
  };
118
147
  }
148
+ /**
149
+ * Serialize a single MIME attachment part.
150
+ * Used by both buildMimeMessage (file paths → Buffers) and buildForwardMime (Buffers).
151
+ */
152
+ function serializeMimePart(boundary, filename, mimeType, data) {
153
+ return [
154
+ `--${boundary}`,
155
+ `Content-Type: ${mimeType}; name="${filename}"`,
156
+ 'Content-Transfer-Encoding: base64',
157
+ `Content-Disposition: attachment; filename="${filename}"`,
158
+ '',
159
+ data.toString('base64'),
160
+ ];
161
+ }
119
162
  /**
120
163
  * Build a MIME message string from SendOptions.
121
164
  * Supports plain text, HTML multipart, and file attachments.
@@ -136,10 +179,10 @@ export async function buildMimeMessage(from, opts, extraHeaders) {
136
179
  const hasAttachments = opts.attachments && opts.attachments.length > 0;
137
180
  const hasHtml = !!opts.html;
138
181
  let headers = [
139
- `From: ${from}`,
140
- `To: ${to}`,
141
- ...(cc ? [`Cc: ${cc}`] : []),
142
- ...(bcc ? [`Bcc: ${bcc}`] : []),
182
+ `From: ${rfc2047EncodeAddress(from)}`,
183
+ `To: ${rfc2047EncodeAddressList(to)}`,
184
+ ...(cc ? [`Cc: ${rfc2047EncodeAddressList(cc)}`] : []),
185
+ ...(bcc ? [`Bcc: ${rfc2047EncodeAddressList(bcc)}`] : []),
143
186
  `Subject: ${rfc2047Encode(opts.subject)}`,
144
187
  'MIME-Version: 1.0',
145
188
  ];
@@ -177,7 +220,7 @@ export async function buildMimeMessage(from, opts, extraHeaders) {
177
220
  const filename = basename(filePath);
178
221
  // Simple MIME type detection
179
222
  const mimeType = guessMimeType(filename);
180
- parts.push(`--${boundary}`, `Content-Type: ${mimeType}; name="${filename}"`, 'Content-Transfer-Encoding: base64', `Content-Disposition: attachment; filename="${filename}"`, '', content.toString('base64'));
223
+ parts.push(...serializeMimePart(boundary, filename, mimeType, content));
181
224
  }
182
225
  parts.push(`--${boundary}--`);
183
226
  return parts.join('\r\n');
@@ -228,8 +271,8 @@ export async function buildForwardMime(from, to, subject, userBody, originalBody
228
271
  ].join('\r\n')
229
272
  : undefined;
230
273
  let headers = [
231
- `From: ${from}`,
232
- `To: ${to}`,
274
+ `From: ${rfc2047EncodeAddress(from)}`,
275
+ `To: ${rfc2047EncodeAddressList(to)}`,
233
276
  `Subject: ${rfc2047Encode(subject)}`,
234
277
  'MIME-Version: 1.0',
235
278
  ];
@@ -268,7 +311,7 @@ export async function buildForwardMime(from, to, subject, userBody, originalBody
268
311
  }
269
312
  // Buffer attachments
270
313
  for (const att of bufferAttachments) {
271
- parts.push(`--${boundary}`, `Content-Type: ${att.mimeType}; name="${att.filename}"`, 'Content-Transfer-Encoding: base64', `Content-Disposition: attachment; filename="${att.filename}"`, '', att.data.toString('base64'));
314
+ parts.push(...serializeMimePart(boundary, att.filename, att.mimeType, att.data));
272
315
  }
273
316
  parts.push(`--${boundary}--`);
274
317
  return parts.join('\r\n');
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/gmail/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/gmail/helpers.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,8 @@
7
7
  import type { OAuth2Client } from 'google-auth-library';
8
8
  import type { GmailMessage, GmailThread, GmailDraft, ListResult, WriteResult, SearchOptions, SendOptions, ReplyOptions, ForwardOptions, BatchLabelOptions } from './types.js';
9
9
  export type { GmailMessage, GmailThread, GmailDraft, ListResult, WriteResult, SearchOptions, SendOptions, ReplyOptions, ForwardOptions, BatchLabelOptions, };
10
+ export { getMessageRaw, getThreadMbox } from './raw.js';
11
+ export { sanitizeEmailHtml } from './formats.js';
10
12
  export { markdownToHtml } from './markdown.js';
11
13
  /**
12
14
  * Get the authenticated user's email address.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gmail/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKxD,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,UAAU,EACV,UAAU,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,YAAY,EACZ,cAAc,EACd,iBAAiB,EAElB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,YAAY,EACZ,WAAW,EACX,UAAU,EACV,UAAU,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,YAAY,EACZ,cAAc,EACd,iBAAiB,GAClB,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAsC/C;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAIpE;AAED;;;;;;;GAOG;AACH,wBAAsB,MAAM,CAC1B,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAkCnC;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,CAAC,CAavB;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC,CAoBtB;AAED;;;;GAIG;AACH,wBAAsB,IAAI,CACxB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,WAAW,CAAC,CAiCtB;AAED;;;;GAIG;AACH,wBAAsB,KAAK,CACzB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,WAAW,CAAC,CA0DtB;AAED;;;;;;;;;GASG;AACH,wBAAsB,OAAO,CAC3B,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,WAAW,CAAC,CAoGtB;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,WAAW,CAAC,CAqBtB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAa5D;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,WAAW,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAC/E,OAAO,CAAC,UAAU,CAAC,CAyBrB;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,CAAC,CAwBtB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,YAAY,EAClB,UAAU,SAAK,EACf,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CA+BjC;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAgBjB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gmail/index.ts"],"names":[],"mappings":"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"}
@@ -4,11 +4,13 @@
4
4
  * All functions take an OAuth2Client as first argument.
5
5
  * Use `getAuth('gmail', 'account@email.com')` from the auth module.
6
6
  */
7
- import { gmail } from '@googleapis/gmail';
8
7
  import { guardOperation } from '../safety.js';
9
- import { NotFoundError, QuotaError, GoEasyError } from '../errors.js';
8
+ import { GoEasyError } from '../errors.js';
10
9
  import { parseMessage, buildMimeMessage, buildForwardMime, base64UrlEncode } from './helpers.js';
11
10
  import { markdownToHtml } from './markdown.js';
11
+ import { gmailApi, handleApiError } from './api.js';
12
+ export { getMessageRaw, getThreadMbox } from './raw.js';
13
+ export { sanitizeEmailHtml } from './formats.js';
12
14
  export { markdownToHtml } from './markdown.js';
13
15
  /**
14
16
  * Resolve markdown field to html. If html is already set, markdown is ignored.
@@ -24,21 +26,6 @@ function resolveMarkdown(opts) {
24
26
  }
25
27
  return opts;
26
28
  }
27
- /** Get a Gmail API client instance */
28
- function gmailApi(auth) {
29
- return gmail({ version: 'v1', auth });
30
- }
31
- /** Wrap Google API errors into our error types */
32
- function handleApiError(err, context) {
33
- if (err instanceof GoEasyError)
34
- throw err;
35
- const gErr = err;
36
- if (gErr.code === 404)
37
- throw new NotFoundError('message', context, err);
38
- if (gErr.code === 429)
39
- throw new QuotaError('gmail', err);
40
- throw new GoEasyError(`Gmail ${context}: ${gErr.message ?? 'Unknown error'}`, 'GMAIL_ERROR', err);
41
- }
42
29
  /**
43
30
  * Get the authenticated user's email address.
44
31
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/gmail/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/gmail/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Gmail raw message export — RFC 2822 / mbox format.
3
+ *
4
+ * Uses Gmail API `format=raw` to fetch the complete wire-format message.
5
+ * This works for all messages including those with embedded message/rfc822
6
+ * attachments that fail with the attachments.get endpoint.
7
+ */
8
+ import type { OAuth2Client } from 'google-auth-library';
9
+ /**
10
+ * Fetch a single message as raw RFC 2822 bytes.
11
+ *
12
+ * Uses `format=raw` which returns the complete wire-format message including
13
+ * all headers, body parts, and embedded attachments. This is the reliable
14
+ * path for message/rfc822 embedded emails and nested attachments.
15
+ */
16
+ export declare function getMessageRaw(auth: OAuth2Client, messageId: string): Promise<Buffer>;
17
+ /**
18
+ * Fetch all messages in a thread as a single mbox file (Buffer).
19
+ *
20
+ * The mbox format is the standard for storing multiple RFC 2822 messages in
21
+ * one file. Each message is preceded by a "From " envelope line and separated
22
+ * from the next by a blank line. Lines in the message body starting with
23
+ * "From " are escaped with ">" (mboxo quoting).
24
+ *
25
+ * @param fromAddress - Used for the mbox envelope "From " line (typically the
26
+ * authenticated account's email address).
27
+ */
28
+ export declare function getThreadMbox(auth: OAuth2Client, threadId: string, fromAddress: string): Promise<Buffer>;
29
+ //# sourceMappingURL=raw.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raw.d.ts","sourceRoot":"","sources":["../../src/gmail/raw.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAIxD;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CA0DjB"}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Gmail raw message export — RFC 2822 / mbox format.
3
+ *
4
+ * Uses Gmail API `format=raw` to fetch the complete wire-format message.
5
+ * This works for all messages including those with embedded message/rfc822
6
+ * attachments that fail with the attachments.get endpoint.
7
+ */
8
+ import { GoEasyError } from '../errors.js';
9
+ import { gmailApi, handleApiError } from './api.js';
10
+ /**
11
+ * Fetch a single message as raw RFC 2822 bytes.
12
+ *
13
+ * Uses `format=raw` which returns the complete wire-format message including
14
+ * all headers, body parts, and embedded attachments. This is the reliable
15
+ * path for message/rfc822 embedded emails and nested attachments.
16
+ */
17
+ export async function getMessageRaw(auth, messageId) {
18
+ const api = gmailApi(auth);
19
+ try {
20
+ const res = await api.users.messages.get({
21
+ userId: 'me',
22
+ id: messageId,
23
+ format: 'raw',
24
+ });
25
+ const raw = res.data.raw;
26
+ if (!raw)
27
+ throw new GoEasyError('No raw data returned by API', 'GMAIL_ERROR');
28
+ return Buffer.from(raw, 'base64url');
29
+ }
30
+ catch (err) {
31
+ handleApiError(err, `getMessage(raw) ${messageId}`);
32
+ }
33
+ }
34
+ /**
35
+ * Fetch all messages in a thread as a single mbox file (Buffer).
36
+ *
37
+ * The mbox format is the standard for storing multiple RFC 2822 messages in
38
+ * one file. Each message is preceded by a "From " envelope line and separated
39
+ * from the next by a blank line. Lines in the message body starting with
40
+ * "From " are escaped with ">" (mboxo quoting).
41
+ *
42
+ * @param fromAddress - Used for the mbox envelope "From " line (typically the
43
+ * authenticated account's email address).
44
+ */
45
+ export async function getThreadMbox(auth, threadId, fromAddress) {
46
+ const api = gmailApi(auth);
47
+ // Get thread message IDs (minimal format — no body data, just IDs + internalDate)
48
+ let messageIds;
49
+ let internalDates;
50
+ try {
51
+ const res = await api.users.threads.get({
52
+ userId: 'me',
53
+ id: threadId,
54
+ format: 'minimal',
55
+ });
56
+ const messages = res.data.messages ?? [];
57
+ if (messages.length === 0) {
58
+ throw new GoEasyError(`Thread ${threadId} has no messages`, 'GMAIL_ERROR');
59
+ }
60
+ messageIds = messages.map((m) => m.id);
61
+ internalDates = Object.fromEntries(messages.map((m) => [m.id, m.internalDate ?? '0']));
62
+ }
63
+ catch (err) {
64
+ handleApiError(err, `getThread(minimal) ${threadId}`);
65
+ }
66
+ // Fetch all messages raw in parallel
67
+ const rawMessages = await Promise.all(messageIds.map(async (id) => {
68
+ try {
69
+ const res = await api.users.messages.get({
70
+ userId: 'me',
71
+ id,
72
+ format: 'raw',
73
+ });
74
+ const raw = res.data.raw;
75
+ if (!raw)
76
+ throw new GoEasyError(`No raw data for message ${id}`, 'GMAIL_ERROR');
77
+ return { id, raw: Buffer.from(raw, 'base64url'), internalDate: internalDates[id] };
78
+ }
79
+ catch (err) {
80
+ handleApiError(err, `getMessage(raw) ${id}`);
81
+ }
82
+ }));
83
+ // Assemble mbox
84
+ const parts = [];
85
+ for (const msg of rawMessages) {
86
+ const envelopeLine = buildMboxEnvelopeLine(fromAddress, msg.internalDate);
87
+ const body = mboxEscape(normalizeLf(msg.raw));
88
+ parts.push(Buffer.from(envelopeLine + '\n', 'utf-8'), body, Buffer.from('\n', 'utf-8') // blank line separator between messages
89
+ );
90
+ }
91
+ return Buffer.concat(parts);
92
+ }
93
+ // ---------------------------------------------------------------------------
94
+ // Helpers
95
+ // ---------------------------------------------------------------------------
96
+ /**
97
+ * Build the mbox "From " envelope line.
98
+ *
99
+ * Format: `From <sender> <ctime-date>\n`
100
+ * The date is derived from Gmail's `internalDate` (milliseconds since epoch).
101
+ */
102
+ function buildMboxEnvelopeLine(fromAddress, internalDateMs) {
103
+ const ms = parseInt(internalDateMs, 10);
104
+ const date = isNaN(ms) ? new Date() : new Date(ms);
105
+ // ctime format: "Thu Jan 1 00:00:00 1970" — fixed-width, UTC
106
+ const ctime = formatCtime(date);
107
+ return `From ${fromAddress} ${ctime}`;
108
+ }
109
+ /**
110
+ * Format a Date as ctime (e.g. "Thu Jan 1 00:00:00 1970"), UTC.
111
+ * This is the format expected in mbox envelope lines.
112
+ */
113
+ function formatCtime(date) {
114
+ const days = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
115
+ const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
116
+ 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
117
+ const day = days[date.getUTCDay()];
118
+ const mon = months[date.getUTCMonth()];
119
+ const d = String(date.getUTCDate()).padStart(2, ' '); // space-pad day
120
+ const hh = String(date.getUTCHours()).padStart(2, '0');
121
+ const mm = String(date.getUTCMinutes()).padStart(2, '0');
122
+ const ss = String(date.getUTCSeconds()).padStart(2, '0');
123
+ const yyyy = date.getUTCFullYear();
124
+ return `${day} ${mon} ${d} ${hh}:${mm}:${ss} ${yyyy}`;
125
+ }
126
+ /**
127
+ * Normalize CRLF line endings to LF.
128
+ * RFC 2822 messages use CRLF; mbox traditionally uses LF.
129
+ */
130
+ function normalizeLf(buf) {
131
+ // Replace \r\n with \n
132
+ // Process as string only if the buffer is valid UTF-8/ASCII for the headers.
133
+ // Binary parts (attachments) may not be valid UTF-8, but CRLF sequences in
134
+ // them are safe to convert: 0x0D 0x0A → 0x0A.
135
+ const bytes = buf;
136
+ const out = [];
137
+ for (let i = 0; i < bytes.length; i++) {
138
+ if (bytes[i] === 0x0d && i + 1 < bytes.length && bytes[i + 1] === 0x0a) {
139
+ // Skip the CR, keep the LF on next iteration
140
+ continue;
141
+ }
142
+ out.push(bytes[i]);
143
+ }
144
+ return Buffer.from(out);
145
+ }
146
+ /**
147
+ * Apply mboxo escaping: prefix any line starting with "From " with ">".
148
+ * This prevents mbox parsers from treating message body lines as envelope separators.
149
+ *
150
+ * Operates on the LF-normalized message (call normalizeLf first).
151
+ */
152
+ function mboxEscape(buf) {
153
+ const text = buf.toString('binary'); // binary to preserve byte values
154
+ const lines = text.split('\n');
155
+ const escaped = lines.map((line) => line.startsWith('From ') ? '>' + line : line);
156
+ return Buffer.from(escaped.join('\n'), 'binary');
157
+ }
158
+ //# sourceMappingURL=raw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raw.js","sourceRoot":"","sources":["../../src/gmail/raw.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marcfargas/go-easy",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Google APIs made easy — Gmail, Drive, Calendar for AI agents and humans",
5
5
  "type": "module",
6
6
  "exports": {
@@ -68,6 +68,7 @@
68
68
  "@changesets/changelog-github": "^0.5.2",
69
69
  "@changesets/cli": "^2.29.8",
70
70
  "@types/node": "^22.0.0",
71
+ "@types/sanitize-html": "^2.16.0",
71
72
  "typescript": "^5.7.0",
72
73
  "vitest": "^3.0.0"
73
74
  },
@@ -77,6 +78,7 @@
77
78
  "@googleapis/gmail": "^16.1.1",
78
79
  "@googleapis/tasks": "^12.0.0",
79
80
  "google-auth-library": "^10.5.0",
80
- "marked": "^17.0.1"
81
+ "marked": "^17.0.1",
82
+ "sanitize-html": "^2.17.1"
81
83
  }
82
84
  }
@@ -64,16 +64,65 @@ Use `nextPageToken` from a previous response as `--page-token` to fetch the next
64
64
  #### get
65
65
  Get a single message by ID.
66
66
  ```bash
67
+ # Default: structured JSON
67
68
  npx go-gmail <account> get <messageId>
69
+
70
+ # Plain text body only (stdout)
71
+ npx go-gmail <account> get <messageId> --format=text
72
+
73
+ # Raw HTML body only (stdout)
74
+ npx go-gmail <account> get <messageId> --format=html
75
+
76
+ # Sanitized HTML — scripts/events/javascript: URIs stripped, safe to render
77
+ npx go-gmail <account> get <messageId> --format=sane-html
78
+
79
+ # Raw RFC 2822 message (pipe-friendly)
80
+ npx go-gmail <account> get <messageId> --format=eml > message.eml
81
+
82
+ # Any format: write to file → JSON { ok, format, path, bytes }
83
+ npx go-gmail <account> get <messageId> --format=sane-html --output=body.html
84
+
85
+ # Any format: base64 in JSON (agent-safe, no shell redirection)
86
+ npx go-gmail <account> get <messageId> --format=text --b64encode
87
+ # → { "format": "text", "data": "<base64>", "bytes": 1234 }
68
88
  ```
69
- Returns: `GmailMessage`
89
+
90
+ | `--format` | Output | Source |
91
+ |------------|--------|--------|
92
+ | *(default)* | `GmailMessage` JSON | `getMessage()` |
93
+ | `text` | Plain text body | `body.text` |
94
+ | `html` | Raw HTML body | `body.html` |
95
+ | `sane-html` | Sanitized HTML — XSS-safe | `sanitizeEmailHtml(body.html)` |
96
+ | `eml` | Full RFC 2822 message bytes | `getMessageRaw()` |
97
+
98
+ **`sane-html` strips:** `<script>`, `<iframe>`, `<object>`, `<form>`, event handlers
99
+ (`onclick`, `onerror`, …), `javascript:` hrefs, `data:` image URIs. Keeps layout,
100
+ tables, `style` attributes, `cid:` images (inline attachments).
101
+
102
+ **`eml` note:** uses Gmail's `format=raw` API, which reliably returns the complete
103
+ wire-format message including embedded `message/rfc822` attachments that fail with
104
+ the `attachment` command.
70
105
 
71
106
  #### thread
72
107
  Get a full thread (conversation) by ID.
73
108
  ```bash
74
109
  npx go-gmail <account> thread <threadId>
110
+
111
+ # Download full thread as mbox file
112
+ npx go-gmail <account> thread <threadId> --format=mbox --output=thread.mbox
113
+ # → { "ok": true, "format": "mbox", "path": "thread.mbox", "bytes": 12483 }
114
+
115
+ # Raw mbox bytes to stdout
116
+ npx go-gmail <account> thread <threadId> --format=mbox > thread.mbox
117
+
118
+ # Base64-encoded mbox in JSON (agent-safe)
119
+ npx go-gmail <account> thread <threadId> --format=mbox --b64encode
120
+ # → { "format": "mbox", "data": "<base64>", "bytes": 12483 }
75
121
  ```
76
- Returns: `GmailThread` `{ id, snippet, messages: GmailMessage[] }`
122
+ Returns: `GmailThread` (default) or mbox file (with `--format=mbox`)
123
+
124
+ The mbox format contains all messages in RFC 2822 format with standard mbox envelope
125
+ lines (`From sender date`). Compatible with Thunderbird, mutt, and any mbox-capable client.
77
126
 
78
127
  #### labels
79
128
  List all labels.
@@ -267,6 +316,7 @@ import { getAuth } from '@marcfargas/go-easy/auth';
267
316
  import { search, getMessage, getThread, send, reply, forward,
268
317
  createDraft, sendDraft, listDrafts, listLabels,
269
318
  batchModifyLabels, getAttachmentContent, getProfile,
319
+ getMessageRaw, getThreadMbox, sanitizeEmailHtml,
270
320
  markdownToHtml
271
321
  } from '@marcfargas/go-easy/gmail';
272
322
  import { setSafetyContext } from '@marcfargas/go-easy';
@@ -380,6 +430,15 @@ if (drafts.nextPageToken) {
380
430
  // Attachments
381
431
  const content = await getAttachmentContent(auth, 'msgId', 'attId');
382
432
  // content is a Buffer
433
+
434
+ // Raw RFC 2822 message (works for all messages, including those with
435
+ // embedded message/rfc822 attachments that fail getAttachmentContent)
436
+ const raw: Buffer = await getMessageRaw(auth, 'msgId');
437
+ fs.writeFileSync('message.eml', raw);
438
+
439
+ // Full thread as mbox (all messages, RFC 2822, with envelope lines)
440
+ const mbox: Buffer = await getThreadMbox(auth, 'threadId', 'me@example.com');
441
+ fs.writeFileSync('thread.mbox', mbox);
383
442
  ```
384
443
 
385
444
  ## Gmail Query Syntax (for search)